aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDhravya <[email protected]>2024-03-30 21:58:21 -0700
committerDhravya <[email protected]>2024-03-30 21:58:21 -0700
commit5396e6ad4da541a2c9ffa8d7537956e9c517527c (patch)
tree9e518f122e6c985f3c28f6babcb2d21eb1c27554
parentadded messageposter button in page.tsx - to auto loginto extension (diff)
downloadsupermemory-5396e6ad4da541a2c9ffa8d7537956e9c517527c.tar.xz
supermemory-5396e6ad4da541a2c9ffa8d7537956e9c517527c.zip
don't run cf-ai-backend
-rw-r--r--apps/cf-ai-backend/package.json2
-rw-r--r--apps/extension/dist.zipbin150881 -> 0 bytes
-rw-r--r--apps/web/.next/app-build-manifest.json20
-rw-r--r--apps/web/.next/build-manifest.json19
-rw-r--r--apps/web/.next/react-loadable-manifest.json1
-rw-r--r--apps/web/.next/server/app-paths-manifest.json4
-rw-r--r--apps/web/.next/server/app/_not-found_client-reference-manifest.js1
-rw-r--r--apps/web/.next/server/app/page.js8638
-rw-r--r--apps/web/.next/server/app/page_client-reference-manifest.js1
-rw-r--r--apps/web/.next/server/middleware-build-manifest.js1
-rw-r--r--apps/web/.next/server/middleware-manifest.json49
-rw-r--r--apps/web/.next/server/middleware-react-loadable-manifest.js1
-rw-r--r--apps/web/.next/server/next-font-manifest.js1
-rw-r--r--apps/web/.next/server/next-font-manifest.json1
-rw-r--r--apps/web/.next/server/pages-manifest.json1
-rw-r--r--apps/web/.next/server/server-reference-manifest.js1
-rw-r--r--apps/web/.next/server/server-reference-manifest.json5
-rw-r--r--apps/web/.next/static/media/05a31a2ca4975f99-s.woff2bin10496 -> 0 bytes
-rw-r--r--apps/web/.next/static/media/513657b02c5c193f-s.woff2bin17612 -> 0 bytes
-rw-r--r--apps/web/.next/static/media/51ed15f9841b9f9d-s.woff2bin22524 -> 0 bytes
-rw-r--r--apps/web/.next/static/media/c9a5bc6a7c948fb0-s.p.woff2bin46552 -> 0 bytes
-rw-r--r--apps/web/.next/static/media/d6b16ce4a6175f26-s.woff2bin80044 -> 0 bytes
-rw-r--r--apps/web/.next/static/media/ec159349637c90ad-s.woff2bin27316 -> 0 bytes
-rw-r--r--apps/web/.next/static/media/fd4db3eb5472fc27-s.woff2bin12768 -> 0 bytes
-rw-r--r--apps/web/.next/trace45
-rw-r--r--apps/web/.next/types/app/layout.ts79
-rw-r--r--apps/web/.next/types/app/page.ts79
-rw-r--r--apps/web/.next/types/package.json1
-rw-r--r--package.json5
-rw-r--r--turbo.json2
30 files changed, 5 insertions, 8952 deletions
diff --git a/apps/cf-ai-backend/package.json b/apps/cf-ai-backend/package.json
index fae5fd2c..b60ea18b 100644
--- a/apps/cf-ai-backend/package.json
+++ b/apps/cf-ai-backend/package.json
@@ -12,4 +12,4 @@
"typescript": "^5.0.4",
"wrangler": "^3.0.0"
}
-} \ No newline at end of file
+}
diff --git a/apps/extension/dist.zip b/apps/extension/dist.zip
deleted file mode 100644
index b2f3293b..00000000
--- a/apps/extension/dist.zip
+++ /dev/null
Binary files differ
diff --git a/apps/web/.next/app-build-manifest.json b/apps/web/.next/app-build-manifest.json
deleted file mode 100644
index 8d157431..00000000
--- a/apps/web/.next/app-build-manifest.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "pages": {
- "/not-found": [
- "static/chunks/webpack.js",
- "static/chunks/main-app.js",
- "static/chunks/app/not-found.js"
- ],
- "/layout": [
- "static/chunks/webpack.js",
- "static/chunks/main-app.js",
- "static/css/app/layout.css",
- "static/chunks/app/layout.js"
- ],
- "/page": [
- "static/chunks/webpack.js",
- "static/chunks/main-app.js",
- "static/chunks/app/page.js"
- ]
- }
-} \ No newline at end of file
diff --git a/apps/web/.next/build-manifest.json b/apps/web/.next/build-manifest.json
deleted file mode 100644
index 018cb67f..00000000
--- a/apps/web/.next/build-manifest.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "polyfillFiles": [
- "static/chunks/polyfills.js"
- ],
- "devFiles": [],
- "ampDevFiles": [],
- "lowPriorityFiles": [
- "static/development/_buildManifest.js",
- "static/development/_ssgManifest.js"
- ],
- "rootMainFiles": [
- "static/chunks/webpack.js",
- "static/chunks/main-app.js"
- ],
- "pages": {
- "/_app": []
- },
- "ampFirstPages": []
-} \ No newline at end of file
diff --git a/apps/web/.next/react-loadable-manifest.json b/apps/web/.next/react-loadable-manifest.json
deleted file mode 100644
index 9e26dfee..00000000
--- a/apps/web/.next/react-loadable-manifest.json
+++ /dev/null
@@ -1 +0,0 @@
-{} \ No newline at end of file
diff --git a/apps/web/.next/server/app-paths-manifest.json b/apps/web/.next/server/app-paths-manifest.json
deleted file mode 100644
index 53352ef9..00000000
--- a/apps/web/.next/server/app-paths-manifest.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "/not-found": "app/not-found.js",
- "/page": "static/webpack/app/page.2a2c9169e80b5082.hot-update.js"
-} \ No newline at end of file
diff --git a/apps/web/.next/server/app/_not-found_client-reference-manifest.js b/apps/web/.next/server/app/_not-found_client-reference-manifest.js
deleted file mode 100644
index c4899a40..00000000
--- a/apps/web/.next/server/app/_not-found_client-reference-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{},"edgeSSRModuleMapping":{"(app-pages-browser)/../../node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/dev-root-not-found-boundary.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/MessagePoster.tsx":{"*":{"id":"(ssr)/./src/app/MessagePoster.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/QueryAI.tsx":{"*":{"id":"(ssr)/./src/components/QueryAI.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/image-component.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/image-component.js","name":"*","chunks":[],"async":false}}},"clientModules":{"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/dev-root-not-found-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/dev-root-not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/dev-root-not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":"(app-pages-browser)/../../node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx":{"id":"(app-pages-browser)/./src/app/MessagePoster.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx":{"id":"(app-pages-browser)/./src/components/QueryAI.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/image-component.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/image-component.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/image-component.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/image-component.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false}},"entryCSSFiles":{"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found":[],"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout":["static/css/app/layout.css"],"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page":[]}} \ No newline at end of file
diff --git a/apps/web/.next/server/app/page.js b/apps/web/.next/server/app/page.js
deleted file mode 100644
index d6d586e6..00000000
--- a/apps/web/.next/server/app/page.js
+++ /dev/null
@@ -1,8638 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/page"],{
-
-/***/ "node:async_hooks":
-/*!***********************************!*\
- !*** external "node:async_hooks" ***!
- \***********************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("node:async_hooks");
-
-/***/ }),
-
-/***/ "buffer":
-/*!******************************!*\
- !*** external "node:buffer" ***!
- \******************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("node:buffer");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":
-/*!****************************************************************************************************************************************************************!*\
- !*** ../../node_modules/next/font/google/target.css?{"path":"src/app/layout.tsx","import":"Inter","arguments":[{"subsets":["latin"]}],"variableName":"inter"} ***!
- \****************************************************************************************************************************************************************/
-/***/ ((module) => {
-
-eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'__Inter_aaf875', '__Inter_Fallback_aaf875'\",\"fontStyle\":\"normal\"},\n\t\"className\": \"__className_aaf875\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZm9udC9nb29nbGUvdGFyZ2V0LmNzcz97XCJwYXRoXCI6XCJzcmMvYXBwL2xheW91dC50c3hcIixcImltcG9ydFwiOlwiSW50ZXJcIixcImFyZ3VtZW50c1wiOlt7XCJzdWJzZXRzXCI6W1wibGF0aW5cIl19XSxcInZhcmlhYmxlTmFtZVwiOlwiaW50ZXJcIn0iLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLFdBQVcsZ0ZBQWdGO0FBQzNGO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2ZvbnQvZ29vZ2xlL3RhcmdldC5jc3M/YmRiMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBvcnRzXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0XCJzdHlsZVwiOiB7XCJmb250RmFtaWx5XCI6XCInX19JbnRlcl9hYWY4NzUnLCAnX19JbnRlcl9GYWxsYmFja19hYWY4NzUnXCIsXCJmb250U3R5bGVcIjpcIm5vcm1hbFwifSxcblx0XCJjbGFzc05hbWVcIjogXCJfX2NsYXNzTmFtZV9hYWY4NzVcIlxufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./src/app/page.tsx?__next_edge_ssr_entry__":
-/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./src/app/page.tsx?__next_edge_ssr_entry__ ***!
- \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRouter: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.AppRouter),\n/* harmony export */ GlobalError: () => (/* reexport safe */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ LayoutRouter: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.LayoutRouter),\n/* harmony export */ NotFoundBoundary: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.NotFoundBoundary),\n/* harmony export */ RenderFromTemplateContext: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.RenderFromTemplateContext),\n/* harmony export */ StaticGenerationSearchParamsBailoutProvider: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.StaticGenerationSearchParamsBailoutProvider),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ actionAsyncStorage: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.actionAsyncStorage),\n/* harmony export */ createSearchParamsBailoutProxy: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.createSearchParamsBailoutProxy),\n/* harmony export */ decodeAction: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.decodeAction),\n/* harmony export */ decodeFormState: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.decodeFormState),\n/* harmony export */ decodeReply: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.decodeReply),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ patchFetch: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.patchFetch),\n/* harmony export */ preconnect: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.preconnect),\n/* harmony export */ preloadFont: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.preloadFont),\n/* harmony export */ preloadStyle: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.preloadStyle),\n/* harmony export */ renderToReadableStream: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.renderToReadableStream),\n/* harmony export */ requestAsyncStorage: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.requestAsyncStorage),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ serverHooks: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.serverHooks),\n/* harmony export */ staticGenerationAsyncStorage: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.staticGenerationAsyncStorage),\n/* harmony export */ staticGenerationBailout: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.staticGenerationBailout),\n/* harmony export */ taintObjectReference: () => (/* reexport safe */ next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__.taintObjectReference),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/../../node_modules/next/dist/esm/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/../../node_modules/next/dist/esm/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/../../node_modules/next/dist/esm/server/app-render/entry-base.js\");\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(rsc)/./src/app/page.tsx\")), \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\"],\n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./src/app/favicon.ico?__next_metadata__ */ \"(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./src/app/favicon.ico?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [],\n twitter: [],\n manifest: undefined\n }\n }]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\")), \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/not-found.tsx */ \"(rsc)/./src/app/not-found.tsx\")), \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\"],\n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./src/app/favicon.ico?__next_metadata__ */ \"(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./src/app/favicon.ico?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [],\n twitter: [],\n manifest: undefined\n }\n }\n ]\n }.children;\nconst pages = [\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/page\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1hcHAtbG9hZGVyLmpzP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIS4vc3JjL2FwcC9wYWdlLnRzeD9fX25leHRfZWRnZV9zc3JfZW50cnlfXyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxhQUFhLHNCQUFzQjtBQUNpRTtBQUNyQztBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakMsdUJBQXVCLGdKQUEyRztBQUNsSTtBQUNBLG9DQUFvQywwZkFBcVE7QUFDelM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQSx5QkFBeUIsb0pBQTZHO0FBQ3RJLG9CQUFvQiwwSkFBZ0g7QUFDcEk7QUFDQSxvQ0FBb0MsMGZBQXFRO0FBQ3pTO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBQzZEO0FBQ3BGLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ3VEO0FBQ3ZEO0FBQ08sd0JBQXdCLDhHQUFrQjtBQUNqRDtBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2FwcC9wYWdlLnRzeD8zOWU4Il0sInNvdXJjZXNDb250ZW50IjpbIlwiVFVSQk9QQUNLIHsgdHJhbnNpdGlvbjogbmV4dC1zc3IgfVwiO1xuaW1wb3J0IHsgQXBwUGFnZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuLy8gV2UgaW5qZWN0IHRoZSB0cmVlIGFuZCBwYWdlcyBoZXJlIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRoZSByb3V0ZVxuLy8gbW9kdWxlLlxuY29uc3QgdHJlZSA9IHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJycsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgIHBhZ2U6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL3NyYy9hcHAvcGFnZS50c3hcIiksIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvYXBwcy93ZWIvc3JjL2FwcC9wYWdlLnRzeFwiXSxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgIGljb246IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPWZhdmljb24mc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMhL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvYXBwcy93ZWIvc3JjL2FwcC9mYXZpY29uLmljbz9fX25leHRfbWV0YWRhdGFfX1wiKSkuZGVmYXVsdChwcm9wcykpXSxcbiAgICBhcHBsZTogW10sXG4gICAgb3BlbkdyYXBoOiBbXSxcbiAgICB0d2l0dGVyOiBbXSxcbiAgICBtYW5pZmVzdDogdW5kZWZpbmVkXG4gIH1cbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgJ2xheW91dCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL3NyYy9hcHAvbGF5b3V0LnRzeFwiKSwgXCIvVXNlcnMvZGhyYXZ5YXNoYWgvRG9jdW1lbnRzL2NvZGUvYW55Y29udGV4dC9hcHBzL3dlYi9zcmMvYXBwL2xheW91dC50c3hcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvYXBwcy93ZWIvc3JjL2FwcC9ub3QtZm91bmQudHN4XCIpLCBcIi9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL3NyYy9hcHAvbm90LWZvdW5kLnRzeFwiXSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICBpY29uOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT1mYXZpY29uJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzIS9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL3NyYy9hcHAvZmF2aWNvbi5pY28/X19uZXh0X21ldGFkYXRhX19cIikpLmRlZmF1bHQocHJvcHMpKV0sXG4gICAgYXBwbGU6IFtdLFxuICAgIG9wZW5HcmFwaDogW10sXG4gICAgdHdpdHRlcjogW10sXG4gICAgbWFuaWZlc3Q6IHVuZGVmaW5lZFxuICB9XG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LmNoaWxkcmVuO1xuY29uc3QgcGFnZXMgPSBbXCIvVXNlcnMvZGhyYXZ5YXNoYWgvRG9jdW1lbnRzL2NvZGUvYW55Y29udGV4dC9hcHBzL3dlYi9zcmMvYXBwL3BhZ2UudHN4XCJdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvcGFnZVwiO1xuZXhwb3J0IGNvbnN0IF9fbmV4dF9hcHBfXyA9IHtcbiAgICByZXF1aXJlOiBfX25leHRfYXBwX3JlcXVpcmVfXyxcbiAgICBsb2FkQ2h1bms6IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fXG59O1xuZXhwb3J0ICogZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9lbnRyeS1iYXNlXCI7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBQYWdlUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICBwYWdlOiBcIi9wYWdlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9cIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIixcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfVxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./src/app/page.tsx?__next_edge_ssr_entry__\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/page\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIQ==\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!":
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{"absolute500Path":"","absoluteAppPath":"next/dist/pages/_app","absoluteDocumentPath":"next/dist/pages/_document","absoluteErrorPath":"next/dist/pages/_error","absolutePagePath":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx","buildId":"development","dev":true,"isServerComponent":true,"page":"/page","stringifiedConfig":"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIQ==","sriEnabled":false,"middlewareConfig":"e30="}! ***!
- \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ComponentMod: () => (/* binding */ ComponentMod),\n/* harmony export */ \"default\": () => (/* binding */ nHandler)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_web_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/web/globals */ \"(ssr)/../../node_modules/next/dist/esm/server/web/globals.js\");\n/* harmony import */ var next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/web/adapter */ \"(ssr)/../../node_modules/next/dist/esm/server/web/adapter.js\");\n/* harmony import */ var next_dist_build_webpack_loaders_next_edge_ssr_loader_render__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-edge-ssr-loader/render */ \"(ssr)/../../node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\");\n/* harmony import */ var next_dist_server_lib_incremental_cache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/lib/incremental-cache */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/index.js\");\n/* harmony import */ var next_dist_server_app_render_app_render__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/server/app-render/app-render */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/app-render.js\");\n/* harmony import */ var next_app_loader_name_app_2Fpage_page_2Fpage_appPaths_2Fpage_pagePath_private_next_app_dir_2Fpage_tsx_appDir_2FUsers_2Fdhravyashah_2FDocuments_2Fcode_2Fanycontext_2Fapps_2Fweb_2Fsrc_2Fapp_pageExtensions_tsx_pageExtensions_ts_pageExtensions_jsx_pageExtensions_js_rootDir_2FUsers_2Fdhravyashah_2FDocuments_2Fcode_2Fanycontext_2Fapps_2Fweb_isDev_true_tsconfigPath_tsconfig_json_basePath_assetPrefix_nextConfigOutput_preferredRegion_middlewareConfig_e30_3D_src_app_page_tsx_next_edge_ssr_entry___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./src/app/page.tsx?__next_edge_ssr_entry__ */ \"(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!./src/app/page.tsx?__next_edge_ssr_entry__\");\n/* harmony import */ var next_dist_lib_page_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/lib/page-types */ \"(ssr)/../../node_modules/next/dist/esm/lib/page-types.js\");\nvar _self___RSC_MANIFEST;\n\n\n\n\n\n\n\nconst incrementalCacheHandler = null\nconst Document = null;\nconst appMod = null;\nconst errorMod = null;\nconst error500Mod = null;\nconst sriEnabled = false\nconst isServerComponent = true\nconst dev = true\nconst serverActions = undefined\nconst nextConfig = {\"env\":{},\"webpack\":null,\"eslint\":{\"ignoreDuringBuilds\":false},\"typescript\":{\"ignoreBuildErrors\":false,\"tsconfigPath\":\"tsconfig.json\"},\"distDir\":\".next\",\"cleanDistDir\":true,\"assetPrefix\":\"\",\"cacheMaxMemorySize\":52428800,\"configOrigin\":\"next.config.mjs\",\"useFileSystemPublicRoutes\":true,\"generateEtags\":true,\"pageExtensions\":[\"tsx\",\"ts\",\"jsx\",\"js\"],\"poweredByHeader\":true,\"compress\":true,\"analyticsId\":\"\",\"images\":{\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"loaderFile\":\"\",\"domains\":[],\"disableStaticImages\":false,\"minimumCacheTTL\":60,\"formats\":[\"image/webp\"],\"dangerouslyAllowSVG\":false,\"contentSecurityPolicy\":\"script-src 'none'; frame-src 'none'; sandbox;\",\"contentDispositionType\":\"inline\",\"remotePatterns\":[],\"unoptimized\":false},\"devIndicators\":{\"buildActivity\":true,\"buildActivityPosition\":\"bottom-right\"},\"onDemandEntries\":{\"maxInactiveAge\":60000,\"pagesBufferLength\":5},\"amp\":{\"canonicalBase\":\"\"},\"basePath\":\"\",\"sassOptions\":{},\"trailingSlash\":false,\"i18n\":null,\"productionBrowserSourceMaps\":false,\"optimizeFonts\":true,\"excludeDefaultMomentLocales\":true,\"serverRuntimeConfig\":{},\"publicRuntimeConfig\":{},\"reactProductionProfiling\":false,\"reactStrictMode\":null,\"httpAgentOptions\":{\"keepAlive\":true},\"outputFileTracing\":true,\"staticPageGenerationTimeout\":60,\"swcMinify\":true,\"modularizeImports\":{\"@mui/icons-material\":{\"transform\":\"@mui/icons-material/{{member}}\"},\"lodash\":{\"transform\":\"lodash/{{member}}\"},\"next/server\":{\"transform\":\"next/dist/server/web/exports/{{ kebabCase member }}\"}},\"experimental\":{\"serverMinification\":true,\"serverSourceMaps\":false,\"caseSensitiveRoutes\":false,\"useDeploymentId\":false,\"useDeploymentIdServerActions\":false,\"clientRouterFilter\":true,\"clientRouterFilterRedirects\":false,\"fetchCacheKeyPrefix\":\"\",\"middlewarePrefetch\":\"flexible\",\"optimisticClientCache\":true,\"manualClientBasePath\":false,\"cpus\":9,\"memoryBasedWorkersCount\":false,\"isrFlushToDisk\":true,\"workerThreads\":false,\"optimizeCss\":false,\"nextScriptWorkers\":false,\"scrollRestoration\":false,\"externalDir\":false,\"disableOptimizedLoading\":false,\"gzipSize\":true,\"craCompat\":false,\"esmExternals\":true,\"fullySpecified\":false,\"outputFileTracingRoot\":\"\",\"swcTraceProfiling\":false,\"forceSwcTransforms\":false,\"largePageDataBytes\":128000,\"adjustFontFallbacks\":false,\"adjustFontFallbacksWithSizeAdjust\":false,\"typedRoutes\":false,\"instrumentationHook\":false,\"bundlePagesExternals\":false,\"parallelServerCompiles\":false,\"parallelServerBuildTraces\":false,\"ppr\":false,\"missingSuspenseWithCSRBailout\":true,\"optimizePackageImports\":[\"lucide-react\",\"date-fns\",\"lodash-es\",\"ramda\",\"antd\",\"react-bootstrap\",\"ahooks\",\"@ant-design/icons\",\"@headlessui/react\",\"@headlessui-float/react\",\"@heroicons/react/20/solid\",\"@heroicons/react/24/solid\",\"@heroicons/react/24/outline\",\"@visx/visx\",\"@tremor/react\",\"rxjs\",\"@mui/material\",\"@mui/icons-material\",\"recharts\",\"react-use\",\"@material-ui/core\",\"@material-ui/icons\",\"@tabler/icons-react\",\"mui-core\",\"react-icons/ai\",\"react-icons/bi\",\"react-icons/bs\",\"react-icons/cg\",\"react-icons/ci\",\"react-icons/di\",\"react-icons/fa\",\"react-icons/fa6\",\"react-icons/fc\",\"react-icons/fi\",\"react-icons/gi\",\"react-icons/go\",\"react-icons/gr\",\"react-icons/hi\",\"react-icons/hi2\",\"react-icons/im\",\"react-icons/io\",\"react-icons/io5\",\"react-icons/lia\",\"react-icons/lib\",\"react-icons/lu\",\"react-icons/md\",\"react-icons/pi\",\"react-icons/ri\",\"react-icons/rx\",\"react-icons/si\",\"react-icons/sl\",\"react-icons/tb\",\"react-icons/tfi\",\"react-icons/ti\",\"react-icons/vsc\",\"react-icons/wi\"]},\"configFile\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/next.config.mjs\",\"configFileName\":\"next.config.mjs\"}\nconst maybeJSONParse = (str)=>str ? JSON.parse(str) : undefined;\nconst buildManifest = self.__BUILD_MANIFEST;\nconst prerenderManifest = maybeJSONParse(self.__PRERENDER_MANIFEST);\nconst reactLoadableManifest = maybeJSONParse(self.__REACT_LOADABLE_MANIFEST);\nconst rscManifest = (_self___RSC_MANIFEST = self.__RSC_MANIFEST) == null ? void 0 : _self___RSC_MANIFEST[\"/page\"];\nconst rscServerManifest = maybeJSONParse(self.__RSC_SERVER_MANIFEST);\nconst subresourceIntegrityManifest = sriEnabled ? maybeJSONParse(self.__SUBRESOURCE_INTEGRITY_MANIFEST) : undefined;\nconst nextFontManifest = maybeJSONParse(self.__NEXT_FONT_MANIFEST);\nconst render = (0,next_dist_build_webpack_loaders_next_edge_ssr_loader_render__WEBPACK_IMPORTED_MODULE_2__.getRender)({\n pagesType: next_dist_lib_page_types__WEBPACK_IMPORTED_MODULE_6__.PAGE_TYPES.APP,\n dev,\n page: \"/page\",\n appMod,\n pageMod: next_app_loader_name_app_2Fpage_page_2Fpage_appPaths_2Fpage_pagePath_private_next_app_dir_2Fpage_tsx_appDir_2FUsers_2Fdhravyashah_2FDocuments_2Fcode_2Fanycontext_2Fapps_2Fweb_2Fsrc_2Fapp_pageExtensions_tsx_pageExtensions_ts_pageExtensions_jsx_pageExtensions_js_rootDir_2FUsers_2Fdhravyashah_2FDocuments_2Fcode_2Fanycontext_2Fapps_2Fweb_isDev_true_tsconfigPath_tsconfig_json_basePath_assetPrefix_nextConfigOutput_preferredRegion_middlewareConfig_e30_3D_src_app_page_tsx_next_edge_ssr_entry___WEBPACK_IMPORTED_MODULE_5__,\n errorMod,\n error500Mod,\n Document,\n buildManifest,\n prerenderManifest,\n renderToHTML: next_dist_server_app_render_app_render__WEBPACK_IMPORTED_MODULE_4__.renderToHTMLOrFlight,\n reactLoadableManifest,\n clientReferenceManifest: isServerComponent ? rscManifest : null,\n serverActionsManifest: isServerComponent ? rscServerManifest : null,\n serverActions: isServerComponent ? serverActions : undefined,\n subresourceIntegrityManifest,\n config: nextConfig,\n buildId: \"development\",\n nextFontManifest,\n incrementalCacheHandler\n});\nconst ComponentMod = next_app_loader_name_app_2Fpage_page_2Fpage_appPaths_2Fpage_pagePath_private_next_app_dir_2Fpage_tsx_appDir_2FUsers_2Fdhravyashah_2FDocuments_2Fcode_2Fanycontext_2Fapps_2Fweb_2Fsrc_2Fapp_pageExtensions_tsx_pageExtensions_ts_pageExtensions_jsx_pageExtensions_js_rootDir_2FUsers_2Fdhravyashah_2FDocuments_2Fcode_2Fanycontext_2Fapps_2Fweb_isDev_true_tsconfigPath_tsconfig_json_basePath_assetPrefix_nextConfigOutput_preferredRegion_middlewareConfig_e30_3D_src_app_page_tsx_next_edge_ssr_entry___WEBPACK_IMPORTED_MODULE_5__;\nfunction nHandler(opts) {\n return (0,next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_1__.adapter)({\n ...opts,\n IncrementalCache: next_dist_server_lib_incremental_cache__WEBPACK_IMPORTED_MODULE_3__.IncrementalCache,\n handler: render\n });\n}\n\n//# sourceMappingURL=edge-ssr-app.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1lZGdlLXNzci1sb2FkZXIvaW5kZXguanM/e1wiYWJzb2x1dGU1MDBQYXRoXCI6XCJcIixcImFic29sdXRlQXBwUGF0aFwiOlwibmV4dC9kaXN0L3BhZ2VzL19hcHBcIixcImFic29sdXRlRG9jdW1lbnRQYXRoXCI6XCJuZXh0L2Rpc3QvcGFnZXMvX2RvY3VtZW50XCIsXCJhYnNvbHV0ZUVycm9yUGF0aFwiOlwibmV4dC9kaXN0L3BhZ2VzL19lcnJvclwiLFwiYWJzb2x1dGVQYWdlUGF0aFwiOlwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvYXBwcy93ZWIvc3JjL2FwcC9wYWdlLnRzeFwiLFwiYnVpbGRJZFwiOlwiZGV2ZWxvcG1lbnRcIixcImRldlwiOnRydWUsXCJpc1NlcnZlckNvbXBvbmVudFwiOnRydWUsXCJwYWdlXCI6XCIvcGFnZVwiLFwic3RyaW5naWZpZWRDb25maWdcIjpcImV5SmxibllpT250OUxDSjNaV0p3WVdOcklqcHVkV3hzTENKbGMyeHBiblFpT25zaWFXZHViM0psUkhWeWFXNW5RblZwYkdSeklqcG1ZV3h6Wlgwc0luUjVjR1Z6WTNKcGNIUWlPbnNpYVdkdWIzSmxRblZwYkdSRmNuSnZjbk1pT21aaGJITmxMQ0owYzJOdmJtWnBaMUJoZEdnaU9pSjBjMk52Ym1acFp5NXFjMjl1SW4wc0ltUnBjM1JFYVhJaU9pSXVibVY0ZENJc0ltTnNaV0Z1UkdsemRFUnBjaUk2ZEhKMVpTd2lZWE56WlhSUWNtVm1hWGdpT2lJaUxDSmpZV05vWlUxaGVFMWxiVzl5ZVZOcGVtVWlPalV5TkRJNE9EQXdMQ0pqYjI1bWFXZFBjbWxuYVc0aU9pSnVaWGgwTG1OdmJtWnBaeTV0YW5NaUxDSjFjMlZHYVd4bFUzbHpkR1Z0VUhWaWJHbGpVbTkxZEdWeklqcDBjblZsTENKblpXNWxjbUYwWlVWMFlXZHpJanAwY25WbExDSndZV2RsUlhoMFpXNXphVzl1Y3lJNld5SjBjM2dpTENKMGN5SXNJbXB6ZUNJc0ltcHpJbDBzSW5CdmQyVnlaV1JDZVVobFlXUmxjaUk2ZEhKMVpTd2lZMjl0Y0hKbGMzTWlPblJ5ZFdVc0ltRnVZV3g1ZEdsamMwbGtJam9pSWl3aWFXMWhaMlZ6SWpwN0ltUmxkbWxqWlZOcGVtVnpJanBiTmpRd0xEYzFNQ3c0TWpnc01UQTRNQ3d4TWpBd0xERTVNakFzTWpBME9Dd3pPRFF3WFN3aWFXMWhaMlZUYVhwbGN5STZXekUyTERNeUxEUTRMRFkwTERrMkxERXlPQ3d5TlRZc016ZzBYU3dpY0dGMGFDSTZJaTlmYm1WNGRDOXBiV0ZuWlNJc0lteHZZV1JsY2lJNkltUmxabUYxYkhRaUxDSnNiMkZrWlhKR2FXeGxJam9pSWl3aVpHOXRZV2x1Y3lJNlcxMHNJbVJwYzJGaWJHVlRkR0YwYVdOSmJXRm5aWE1pT21aaGJITmxMQ0p0YVc1cGJYVnRRMkZqYUdWVVZFd2lPall3TENKbWIzSnRZWFJ6SWpwYkltbHRZV2RsTDNkbFluQWlYU3dpWkdGdVoyVnliM1Z6YkhsQmJHeHZkMU5XUnlJNlptRnNjMlVzSW1OdmJuUmxiblJUWldOMWNtbDBlVkJ2YkdsamVTSTZJbk5qY21sd2RDMXpjbU1nSjI1dmJtVW5PeUJtY21GdFpTMXpjbU1nSjI1dmJtVW5PeUJ6WVc1a1ltOTRPeUlzSW1OdmJuUmxiblJFYVhOd2IzTnBkR2x2YmxSNWNHVWlPaUpwYm14cGJtVWlMQ0p5WlcxdmRHVlFZWFIwWlhKdWN5STZXMTBzSW5WdWIzQjBhVzFwZW1Wa0lqcG1ZV3h6Wlgwc0ltUmxka2x1WkdsallYUnZjbk1pT25zaVluVnBiR1JCWTNScGRtbDBlU0k2ZEhKMVpTd2lZblZwYkdSQlkzUnBkbWwwZVZCdmMybDBhVzl1SWpvaVltOTBkRzl0TFhKcFoyaDBJbjBzSW05dVJHVnRZVzVrUlc1MGNtbGxjeUk2ZXlKdFlYaEpibUZqZEdsMlpVRm5aU0k2TmpBd01EQXNJbkJoWjJWelFuVm1abVZ5VEdWdVozUm9Jam8xZlN3aVlXMXdJanA3SW1OaGJtOXVhV05oYkVKaGMyVWlPaUlpZlN3aVltRnpaVkJoZEdnaU9pSWlMQ0p6WVhOelQzQjBhVzl1Y3lJNmUzMHNJblJ5WVdsc2FXNW5VMnhoYzJnaU9tWmhiSE5sTENKcE1UaHVJanB1ZFd4c0xDSndjbTlrZFdOMGFXOXVRbkp2ZDNObGNsTnZkWEpqWlUxaGNITWlPbVpoYkhObExDSnZjSFJwYldsNlpVWnZiblJ6SWpwMGNuVmxMQ0psZUdOc2RXUmxSR1ZtWVhWc2RFMXZiV1Z1ZEV4dlkyRnNaWE1pT25SeWRXVXNJbk5sY25abGNsSjFiblJwYldWRGIyNW1hV2NpT250OUxDSndkV0pzYVdOU2RXNTBhVzFsUTI5dVptbG5JanA3ZlN3aWNtVmhZM1JRY205a2RXTjBhVzl1VUhKdlptbHNhVzVuSWpwbVlXeHpaU3dpY21WaFkzUlRkSEpwWTNSTmIyUmxJanB1ZFd4c0xDSm9kSFJ3UVdkbGJuUlBjSFJwYjI1eklqcDdJbXRsWlhCQmJHbDJaU0k2ZEhKMVpYMHNJbTkxZEhCMWRFWnBiR1ZVY21GamFXNW5JanAwY25WbExDSnpkR0YwYVdOUVlXZGxSMlZ1WlhKaGRHbHZibFJwYldWdmRYUWlPall3TENKemQyTk5hVzVwWm5raU9uUnlkV1VzSW0xdlpIVnNZWEpwZW1WSmJYQnZjblJ6SWpwN0lrQnRkV2t2YVdOdmJuTXRiV0YwWlhKcFlXd2lPbnNpZEhKaGJuTm1iM0p0SWpvaVFHMTFhUzlwWTI5dWN5MXRZWFJsY21saGJDOTdlMjFsYldKbGNuMTlJbjBzSW14dlpHRnphQ0k2ZXlKMGNtRnVjMlp2Y20waU9pSnNiMlJoYzJndmUzdHRaVzFpWlhKOWZTSjlMQ0p1WlhoMEwzTmxjblpsY2lJNmV5SjBjbUZ1YzJadmNtMGlPaUp1WlhoMEwyUnBjM1F2YzJWeWRtVnlMM2RsWWk5bGVIQnZjblJ6TDN0N0lHdGxZbUZpUTJGelpTQnRaVzFpWlhJZ2ZYMGlmWDBzSW1WNGNHVnlhVzFsYm5SaGJDSTZleUp6WlhKMlpYSk5hVzVwWm1sallYUnBiMjRpT25SeWRXVXNJbk5sY25abGNsTnZkWEpqWlUxaGNITWlPbVpoYkhObExDSmpZWE5sVTJWdWMybDBhWFpsVW05MWRHVnpJanBtWVd4elpTd2lkWE5sUkdWd2JHOTViV1Z1ZEVsa0lqcG1ZV3h6WlN3aWRYTmxSR1Z3Ykc5NWJXVnVkRWxrVTJWeWRtVnlRV04wYVc5dWN5STZabUZzYzJVc0ltTnNhV1Z1ZEZKdmRYUmxja1pwYkhSbGNpSTZkSEoxWlN3aVkyeHBaVzUwVW05MWRHVnlSbWxzZEdWeVVtVmthWEpsWTNSeklqcG1ZV3h6WlN3aVptVjBZMmhEWVdOb1pVdGxlVkJ5WldacGVDSTZJaUlzSW0xcFpHUnNaWGRoY21WUWNtVm1aWFJqYUNJNkltWnNaWGhwWW14bElpd2liM0IwYVcxcGMzUnBZME5zYVdWdWRFTmhZMmhsSWpwMGNuVmxMQ0p0WVc1MVlXeERiR2xsYm5SQ1lYTmxVR0YwYUNJNlptRnNjMlVzSW1Od2RYTWlPamtzSW0xbGJXOXllVUpoYzJWa1YyOXlhMlZ5YzBOdmRXNTBJanBtWVd4elpTd2lhWE55Um14MWMyaFViMFJwYzJzaU9uUnlkV1VzSW5kdmNtdGxjbFJvY21WaFpITWlPbVpoYkhObExDSnZjSFJwYldsNlpVTnpjeUk2Wm1Gc2MyVXNJbTVsZUhSVFkzSnBjSFJYYjNKclpYSnpJanBtWVd4elpTd2ljMk55YjJ4c1VtVnpkRzl5WVhScGIyNGlPbVpoYkhObExDSmxlSFJsY201aGJFUnBjaUk2Wm1Gc2MyVXNJbVJwYzJGaWJHVlBjSFJwYldsNlpXUk1iMkZrYVc1bklqcG1ZV3h6WlN3aVozcHBjRk5wZW1VaU9uUnlkV1VzSW1OeVlVTnZiWEJoZENJNlptRnNjMlVzSW1WemJVVjRkR1Z5Ym1Gc2N5STZkSEoxWlN3aVpuVnNiSGxUY0dWamFXWnBaV1FpT21aaGJITmxMQ0p2ZFhSd2RYUkdhV3hsVkhKaFkybHVaMUp2YjNRaU9pSWlMQ0p6ZDJOVWNtRmpaVkJ5YjJacGJHbHVaeUk2Wm1Gc2MyVXNJbVp2Y21ObFUzZGpWSEpoYm5ObWIzSnRjeUk2Wm1Gc2MyVXNJbXhoY21kbFVHRm5aVVJoZEdGQ2VYUmxjeUk2TVRJNE1EQXdMQ0poWkdwMWMzUkdiMjUwUm1Gc2JHSmhZMnR6SWpwbVlXeHpaU3dpWVdScWRYTjBSbTl1ZEVaaGJHeGlZV05yYzFkcGRHaFRhWHBsUVdScWRYTjBJanBtWVd4elpTd2lkSGx3WldSU2IzVjBaWE1pT21aaGJITmxMQ0pwYm5OMGNuVnRaVzUwWVhScGIyNUliMjlySWpwbVlXeHpaU3dpWW5WdVpHeGxVR0ZuWlhORmVIUmxjbTVoYkhNaU9tWmhiSE5sTENKd1lYSmhiR3hsYkZObGNuWmxja052YlhCcGJHVnpJanBtWVd4elpTd2ljR0Z5WVd4c1pXeFRaWEoyWlhKQ2RXbHNaRlJ5WVdObGN5STZabUZzYzJVc0luQndjaUk2Wm1Gc2MyVXNJbTFwYzNOcGJtZFRkWE53Wlc1elpWZHBkR2hEVTFKQ1lXbHNiM1YwSWpwMGNuVmxMQ0p2Y0hScGJXbDZaVkJoWTJ0aFoyVkpiWEJ2Y25SeklqcGJJbXgxWTJsa1pTMXlaV0ZqZENJc0ltUmhkR1V0Wm01eklpd2liRzlrWVhOb0xXVnpJaXdpY21GdFpHRWlMQ0poYm5Sa0lpd2ljbVZoWTNRdFltOXZkSE4wY21Gd0lpd2lZV2h2YjJ0eklpd2lRR0Z1ZEMxa1pYTnBaMjR2YVdOdmJuTWlMQ0pBYUdWaFpHeGxjM04xYVM5eVpXRmpkQ0lzSWtCb1pXRmtiR1Z6YzNWcExXWnNiMkYwTDNKbFlXTjBJaXdpUUdobGNtOXBZMjl1Y3k5eVpXRmpkQzh5TUM5emIyeHBaQ0lzSWtCb1pYSnZhV052Ym5NdmNtVmhZM1F2TWpRdmMyOXNhV1FpTENKQWFHVnliMmxqYjI1ekwzSmxZV04wTHpJMEwyOTFkR3hwYm1VaUxDSkFkbWx6ZUM5MmFYTjRJaXdpUUhSeVpXMXZjaTl5WldGamRDSXNJbko0YW5NaUxDSkFiWFZwTDIxaGRHVnlhV0ZzSWl3aVFHMTFhUzlwWTI5dWN5MXRZWFJsY21saGJDSXNJbkpsWTJoaGNuUnpJaXdpY21WaFkzUXRkWE5sSWl3aVFHMWhkR1Z5YVdGc0xYVnBMMk52Y21VaUxDSkFiV0YwWlhKcFlXd3RkV2t2YVdOdmJuTWlMQ0pBZEdGaWJHVnlMMmxqYjI1ekxYSmxZV04wSWl3aWJYVnBMV052Y21VaUxDSnlaV0ZqZEMxcFkyOXVjeTloYVNJc0luSmxZV04wTFdsamIyNXpMMkpwSWl3aWNtVmhZM1F0YVdOdmJuTXZZbk1pTENKeVpXRmpkQzFwWTI5dWN5OWpaeUlzSW5KbFlXTjBMV2xqYjI1ekwyTnBJaXdpY21WaFkzUXRhV052Ym5NdlpHa2lMQ0p5WldGamRDMXBZMjl1Y3k5bVlTSXNJbkpsWVdOMExXbGpiMjV6TDJaaE5pSXNJbkpsWVdOMExXbGpiMjV6TDJaaklpd2ljbVZoWTNRdGFXTnZibk12Wm1raUxDSnlaV0ZqZEMxcFkyOXVjeTluYVNJc0luSmxZV04wTFdsamIyNXpMMmR2SWl3aWNtVmhZM1F0YVdOdmJuTXZaM0lpTENKeVpXRmpkQzFwWTI5dWN5OW9hU0lzSW5KbFlXTjBMV2xqYjI1ekwyaHBNaUlzSW5KbFlXTjBMV2xqYjI1ekwybHRJaXdpY21WaFkzUXRhV052Ym5NdmFXOGlMQ0p5WldGamRDMXBZMjl1Y3k5cGJ6VWlMQ0p5WldGamRDMXBZMjl1Y3k5c2FXRWlMQ0p5WldGamRDMXBZMjl1Y3k5c2FXSWlMQ0p5WldGamRDMXBZMjl1Y3k5c2RTSXNJbkpsWVdOMExXbGpiMjV6TDIxa0lpd2ljbVZoWTNRdGFXTnZibk12Y0draUxDSnlaV0ZqZEMxcFkyOXVjeTl5YVNJc0luSmxZV04wTFdsamIyNXpMM0o0SWl3aWNtVmhZM1F0YVdOdmJuTXZjMmtpTENKeVpXRmpkQzFwWTI5dWN5OXpiQ0lzSW5KbFlXTjBMV2xqYjI1ekwzUmlJaXdpY21WaFkzUXRhV052Ym5NdmRHWnBJaXdpY21WaFkzUXRhV052Ym5NdmRHa2lMQ0p5WldGamRDMXBZMjl1Y3k5MmMyTWlMQ0p5WldGamRDMXBZMjl1Y3k5M2FTSmRmU3dpWTI5dVptbG5SbWxzWlNJNklpOVZjMlZ5Y3k5a2FISmhkbmxoYzJoaGFDOUViMk4xYldWdWRITXZZMjlrWlM5aGJubGpiMjUwWlhoMEwyRndjSE12ZDJWaUwyNWxlSFF1WTI5dVptbG5MbTFxY3lJc0ltTnZibVpwWjBacGJHVk9ZVzFsSWpvaWJtVjRkQzVqYjI1bWFXY3ViV3B6SW4wPVwiLFwicGFnZXNUeXBlXCI6XCJhcHBcIixcImFwcERpckxvYWRlclwiOlwiYm1WNGRDMWhjSEF0Ykc5aFpHVnlQMjVoYldVOVlYQndKVEpHY0dGblpTWndZV2RsUFNVeVJuQmhaMlVtWVhCd1VHRjBhSE05SlRKR2NHRm5aU1p3WVdkbFVHRjBhRDF3Y21sMllYUmxMVzVsZUhRdFlYQndMV1JwY2lVeVJuQmhaMlV1ZEhONEptRndjRVJwY2owbE1rWlZjMlZ5Y3lVeVJtUm9jbUYyZVdGemFHRm9KVEpHUkc5amRXMWxiblJ6SlRKR1kyOWtaU1V5Um1GdWVXTnZiblJsZUhRbE1rWmhjSEJ6SlRKR2QyVmlKVEpHYzNKakpUSkdZWEJ3Sm5CaFoyVkZlSFJsYm5OcGIyNXpQWFJ6ZUNad1lXZGxSWGgwWlc1emFXOXVjejEwY3lad1lXZGxSWGgwWlc1emFXOXVjejFxYzNnbWNHRm5aVVY0ZEdWdWMybHZibk05YW5NbWNtOXZkRVJwY2owbE1rWlZjMlZ5Y3lVeVJtUm9jbUYyZVdGemFHRm9KVEpHUkc5amRXMWxiblJ6SlRKR1kyOWtaU1V5Um1GdWVXTnZiblJsZUhRbE1rWmhjSEJ6SlRKR2QyVmlKbWx6UkdWMlBYUnlkV1VtZEhOamIyNW1hV2RRWVhSb1BYUnpZMjl1Wm1sbkxtcHpiMjRtWW1GelpWQmhkR2c5Sm1GemMyVjBVSEpsWm1sNFBTWnVaWGgwUTI5dVptbG5UM1YwY0hWMFBTWndjbVZtWlhKeVpXUlNaV2RwYjI0OUptMXBaR1JzWlhkaGNtVkRiMjVtYVdjOVpUTXdKVE5FSVE9PVwiLFwic3JpRW5hYmxlZFwiOmZhbHNlLFwibWlkZGxld2FyZUNvbmZpZ1wiOlwiZTMwPVwifSEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDc0M7QUFDaUI7QUFDaUM7QUFDZDtBQUNvQjtBQUNvYjtBQUM1ZDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUSwwQkFBMEIsMkJBQTJCLGVBQWUseURBQXlELHdSQUF3Uix1VEFBdVQsa0JBQWtCLFFBQVEsNEVBQTRFLGtCQUFrQiw0REFBNEQsb0JBQW9CLDZDQUE2QyxRQUFRLG1CQUFtQiwrQkFBK0IsdUpBQXVKLHlCQUF5Qiw2RUFBNkUsaUJBQWlCLGlHQUFpRyx1QkFBdUIsbUNBQW1DLFFBQVEsRUFBRSxXQUFXLHNCQUFzQixRQUFRLEVBQUUsZ0JBQWdCLDZDQUE2QyxtQkFBbUIsR0FBRyxpQkFBaUIsaTZEQUFpNkQ7QUFDMS9HO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHNHQUFTO0FBQ3hCLGVBQWUsZ0VBQVU7QUFDekI7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNNLHFCQUFxQixzZ0JBQU87QUFDcEI7QUFDZixXQUFXLHFFQUFPO0FBQ2xCO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/ZWQ5NiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3NlbGZfX19SU0NfTUFOSUZFU1Q7XG5pbXBvcnQgXCJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9nbG9iYWxzXCI7XG5pbXBvcnQgeyBhZGFwdGVyIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvd2ViL2FkYXB0ZXJcIjtcbmltcG9ydCB7IGdldFJlbmRlciB9IGZyb20gXCJuZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZWRnZS1zc3ItbG9hZGVyL3JlbmRlclwiO1xuaW1wb3J0IHsgSW5jcmVtZW50YWxDYWNoZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9pbmNyZW1lbnRhbC1jYWNoZVwiO1xuaW1wb3J0IHsgcmVuZGVyVG9IVE1MT3JGbGlnaHQgYXMgcmVuZGVyVG9IVE1MIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9hcHAtcmVuZGVyXCI7XG5pbXBvcnQgKiBhcyBwYWdlTW9kIGZyb20gXCJuZXh0LWFwcC1sb2FkZXI/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWIlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWImaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0QhLi9zcmMvYXBwL3BhZ2UudHN4P19fbmV4dF9lZGdlX3Nzcl9lbnRyeV9fXCI7XG5pbXBvcnQgeyBQQUdFX1RZUEVTIH0gZnJvbSBcIm5leHQvZGlzdC9saWIvcGFnZS10eXBlc1wiO1xuY29uc3QgaW5jcmVtZW50YWxDYWNoZUhhbmRsZXIgPSBudWxsXG5jb25zdCBEb2N1bWVudCA9IG51bGw7XG5jb25zdCBhcHBNb2QgPSBudWxsO1xuY29uc3QgZXJyb3JNb2QgPSBudWxsO1xuY29uc3QgZXJyb3I1MDBNb2QgPSBudWxsO1xuY29uc3Qgc3JpRW5hYmxlZCA9IGZhbHNlXG5jb25zdCBpc1NlcnZlckNvbXBvbmVudCA9IHRydWVcbmNvbnN0IGRldiA9IHRydWVcbmNvbnN0IHNlcnZlckFjdGlvbnMgPSB1bmRlZmluZWRcbmNvbnN0IG5leHRDb25maWcgPSB7XCJlbnZcIjp7fSxcIndlYnBhY2tcIjpudWxsLFwiZXNsaW50XCI6e1wiaWdub3JlRHVyaW5nQnVpbGRzXCI6ZmFsc2V9LFwidHlwZXNjcmlwdFwiOntcImlnbm9yZUJ1aWxkRXJyb3JzXCI6ZmFsc2UsXCJ0c2NvbmZpZ1BhdGhcIjpcInRzY29uZmlnLmpzb25cIn0sXCJkaXN0RGlyXCI6XCIubmV4dFwiLFwiY2xlYW5EaXN0RGlyXCI6dHJ1ZSxcImFzc2V0UHJlZml4XCI6XCJcIixcImNhY2hlTWF4TWVtb3J5U2l6ZVwiOjUyNDI4ODAwLFwiY29uZmlnT3JpZ2luXCI6XCJuZXh0LmNvbmZpZy5tanNcIixcInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXNcIjp0cnVlLFwiZ2VuZXJhdGVFdGFnc1wiOnRydWUsXCJwYWdlRXh0ZW5zaW9uc1wiOltcInRzeFwiLFwidHNcIixcImpzeFwiLFwianNcIl0sXCJwb3dlcmVkQnlIZWFkZXJcIjp0cnVlLFwiY29tcHJlc3NcIjp0cnVlLFwiYW5hbHl0aWNzSWRcIjpcIlwiLFwiaW1hZ2VzXCI6e1wiZGV2aWNlU2l6ZXNcIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSxcImltYWdlU2l6ZXNcIjpbMTYsMzIsNDgsNjQsOTYsMTI4LDI1NiwzODRdLFwicGF0aFwiOlwiL19uZXh0L2ltYWdlXCIsXCJsb2FkZXJcIjpcImRlZmF1bHRcIixcImxvYWRlckZpbGVcIjpcIlwiLFwiZG9tYWluc1wiOltdLFwiZGlzYWJsZVN0YXRpY0ltYWdlc1wiOmZhbHNlLFwibWluaW11bUNhY2hlVFRMXCI6NjAsXCJmb3JtYXRzXCI6W1wiaW1hZ2Uvd2VicFwiXSxcImRhbmdlcm91c2x5QWxsb3dTVkdcIjpmYWxzZSxcImNvbnRlbnRTZWN1cml0eVBvbGljeVwiOlwic2NyaXB0LXNyYyAnbm9uZSc7IGZyYW1lLXNyYyAnbm9uZSc7IHNhbmRib3g7XCIsXCJjb250ZW50RGlzcG9zaXRpb25UeXBlXCI6XCJpbmxpbmVcIixcInJlbW90ZVBhdHRlcm5zXCI6W10sXCJ1bm9wdGltaXplZFwiOmZhbHNlfSxcImRldkluZGljYXRvcnNcIjp7XCJidWlsZEFjdGl2aXR5XCI6dHJ1ZSxcImJ1aWxkQWN0aXZpdHlQb3NpdGlvblwiOlwiYm90dG9tLXJpZ2h0XCJ9LFwib25EZW1hbmRFbnRyaWVzXCI6e1wibWF4SW5hY3RpdmVBZ2VcIjo2MDAwMCxcInBhZ2VzQnVmZmVyTGVuZ3RoXCI6NX0sXCJhbXBcIjp7XCJjYW5vbmljYWxCYXNlXCI6XCJcIn0sXCJiYXNlUGF0aFwiOlwiXCIsXCJzYXNzT3B0aW9uc1wiOnt9LFwidHJhaWxpbmdTbGFzaFwiOmZhbHNlLFwiaTE4blwiOm51bGwsXCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHNcIjpmYWxzZSxcIm9wdGltaXplRm9udHNcIjp0cnVlLFwiZXhjbHVkZURlZmF1bHRNb21lbnRMb2NhbGVzXCI6dHJ1ZSxcInNlcnZlclJ1bnRpbWVDb25maWdcIjp7fSxcInB1YmxpY1J1bnRpbWVDb25maWdcIjp7fSxcInJlYWN0UHJvZHVjdGlvblByb2ZpbGluZ1wiOmZhbHNlLFwicmVhY3RTdHJpY3RNb2RlXCI6bnVsbCxcImh0dHBBZ2VudE9wdGlvbnNcIjp7XCJrZWVwQWxpdmVcIjp0cnVlfSxcIm91dHB1dEZpbGVUcmFjaW5nXCI6dHJ1ZSxcInN0YXRpY1BhZ2VHZW5lcmF0aW9uVGltZW91dFwiOjYwLFwic3djTWluaWZ5XCI6dHJ1ZSxcIm1vZHVsYXJpemVJbXBvcnRzXCI6e1wiQG11aS9pY29ucy1tYXRlcmlhbFwiOntcInRyYW5zZm9ybVwiOlwiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19XCJ9LFwibG9kYXNoXCI6e1widHJhbnNmb3JtXCI6XCJsb2Rhc2gve3ttZW1iZXJ9fVwifSxcIm5leHQvc2VydmVyXCI6e1widHJhbnNmb3JtXCI6XCJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX1cIn19LFwiZXhwZXJpbWVudGFsXCI6e1wic2VydmVyTWluaWZpY2F0aW9uXCI6dHJ1ZSxcInNlcnZlclNvdXJjZU1hcHNcIjpmYWxzZSxcImNhc2VTZW5zaXRpdmVSb3V0ZXNcIjpmYWxzZSxcInVzZURlcGxveW1lbnRJZFwiOmZhbHNlLFwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9uc1wiOmZhbHNlLFwiY2xpZW50Um91dGVyRmlsdGVyXCI6dHJ1ZSxcImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0c1wiOmZhbHNlLFwiZmV0Y2hDYWNoZUtleVByZWZpeFwiOlwiXCIsXCJtaWRkbGV3YXJlUHJlZmV0Y2hcIjpcImZsZXhpYmxlXCIsXCJvcHRpbWlzdGljQ2xpZW50Q2FjaGVcIjp0cnVlLFwibWFudWFsQ2xpZW50QmFzZVBhdGhcIjpmYWxzZSxcImNwdXNcIjo5LFwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnRcIjpmYWxzZSxcImlzckZsdXNoVG9EaXNrXCI6dHJ1ZSxcIndvcmtlclRocmVhZHNcIjpmYWxzZSxcIm9wdGltaXplQ3NzXCI6ZmFsc2UsXCJuZXh0U2NyaXB0V29ya2Vyc1wiOmZhbHNlLFwic2Nyb2xsUmVzdG9yYXRpb25cIjpmYWxzZSxcImV4dGVybmFsRGlyXCI6ZmFsc2UsXCJkaXNhYmxlT3B0aW1pemVkTG9hZGluZ1wiOmZhbHNlLFwiZ3ppcFNpemVcIjp0cnVlLFwiY3JhQ29tcGF0XCI6ZmFsc2UsXCJlc21FeHRlcm5hbHNcIjp0cnVlLFwiZnVsbHlTcGVjaWZpZWRcIjpmYWxzZSxcIm91dHB1dEZpbGVUcmFjaW5nUm9vdFwiOlwiXCIsXCJzd2NUcmFjZVByb2ZpbGluZ1wiOmZhbHNlLFwiZm9yY2VTd2NUcmFuc2Zvcm1zXCI6ZmFsc2UsXCJsYXJnZVBhZ2VEYXRhQnl0ZXNcIjoxMjgwMDAsXCJhZGp1c3RGb250RmFsbGJhY2tzXCI6ZmFsc2UsXCJhZGp1c3RGb250RmFsbGJhY2tzV2l0aFNpemVBZGp1c3RcIjpmYWxzZSxcInR5cGVkUm91dGVzXCI6ZmFsc2UsXCJpbnN0cnVtZW50YXRpb25Ib29rXCI6ZmFsc2UsXCJidW5kbGVQYWdlc0V4dGVybmFsc1wiOmZhbHNlLFwicGFyYWxsZWxTZXJ2ZXJDb21waWxlc1wiOmZhbHNlLFwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlc1wiOmZhbHNlLFwicHByXCI6ZmFsc2UsXCJtaXNzaW5nU3VzcGVuc2VXaXRoQ1NSQmFpbG91dFwiOnRydWUsXCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzXCI6W1wibHVjaWRlLXJlYWN0XCIsXCJkYXRlLWZuc1wiLFwibG9kYXNoLWVzXCIsXCJyYW1kYVwiLFwiYW50ZFwiLFwicmVhY3QtYm9vdHN0cmFwXCIsXCJhaG9va3NcIixcIkBhbnQtZGVzaWduL2ljb25zXCIsXCJAaGVhZGxlc3N1aS9yZWFjdFwiLFwiQGhlYWRsZXNzdWktZmxvYXQvcmVhY3RcIixcIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWRcIixcIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWRcIixcIkBoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZVwiLFwiQHZpc3gvdmlzeFwiLFwiQHRyZW1vci9yZWFjdFwiLFwicnhqc1wiLFwiQG11aS9tYXRlcmlhbFwiLFwiQG11aS9pY29ucy1tYXRlcmlhbFwiLFwicmVjaGFydHNcIixcInJlYWN0LXVzZVwiLFwiQG1hdGVyaWFsLXVpL2NvcmVcIixcIkBtYXRlcmlhbC11aS9pY29uc1wiLFwiQHRhYmxlci9pY29ucy1yZWFjdFwiLFwibXVpLWNvcmVcIixcInJlYWN0LWljb25zL2FpXCIsXCJyZWFjdC1pY29ucy9iaVwiLFwicmVhY3QtaWNvbnMvYnNcIixcInJlYWN0LWljb25zL2NnXCIsXCJyZWFjdC1pY29ucy9jaVwiLFwicmVhY3QtaWNvbnMvZGlcIixcInJlYWN0LWljb25zL2ZhXCIsXCJyZWFjdC1pY29ucy9mYTZcIixcInJlYWN0LWljb25zL2ZjXCIsXCJyZWFjdC1pY29ucy9maVwiLFwicmVhY3QtaWNvbnMvZ2lcIixcInJlYWN0LWljb25zL2dvXCIsXCJyZWFjdC1pY29ucy9nclwiLFwicmVhY3QtaWNvbnMvaGlcIixcInJlYWN0LWljb25zL2hpMlwiLFwicmVhY3QtaWNvbnMvaW1cIixcInJlYWN0LWljb25zL2lvXCIsXCJyZWFjdC1pY29ucy9pbzVcIixcInJlYWN0LWljb25zL2xpYVwiLFwicmVhY3QtaWNvbnMvbGliXCIsXCJyZWFjdC1pY29ucy9sdVwiLFwicmVhY3QtaWNvbnMvbWRcIixcInJlYWN0LWljb25zL3BpXCIsXCJyZWFjdC1pY29ucy9yaVwiLFwicmVhY3QtaWNvbnMvcnhcIixcInJlYWN0LWljb25zL3NpXCIsXCJyZWFjdC1pY29ucy9zbFwiLFwicmVhY3QtaWNvbnMvdGJcIixcInJlYWN0LWljb25zL3RmaVwiLFwicmVhY3QtaWNvbnMvdGlcIixcInJlYWN0LWljb25zL3ZzY1wiLFwicmVhY3QtaWNvbnMvd2lcIl19LFwiY29uZmlnRmlsZVwiOlwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvYXBwcy93ZWIvbmV4dC5jb25maWcubWpzXCIsXCJjb25maWdGaWxlTmFtZVwiOlwibmV4dC5jb25maWcubWpzXCJ9XG5jb25zdCBtYXliZUpTT05QYXJzZSA9IChzdHIpPT5zdHIgPyBKU09OLnBhcnNlKHN0cikgOiB1bmRlZmluZWQ7XG5jb25zdCBidWlsZE1hbmlmZXN0ID0gc2VsZi5fX0JVSUxEX01BTklGRVNUO1xuY29uc3QgcHJlcmVuZGVyTWFuaWZlc3QgPSBtYXliZUpTT05QYXJzZShzZWxmLl9fUFJFUkVOREVSX01BTklGRVNUKTtcbmNvbnN0IHJlYWN0TG9hZGFibGVNYW5pZmVzdCA9IG1heWJlSlNPTlBhcnNlKHNlbGYuX19SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCk7XG5jb25zdCByc2NNYW5pZmVzdCA9IChfc2VsZl9fX1JTQ19NQU5JRkVTVCA9IHNlbGYuX19SU0NfTUFOSUZFU1QpID09IG51bGwgPyB2b2lkIDAgOiBfc2VsZl9fX1JTQ19NQU5JRkVTVFtcIi9wYWdlXCJdO1xuY29uc3QgcnNjU2VydmVyTWFuaWZlc3QgPSBtYXliZUpTT05QYXJzZShzZWxmLl9fUlNDX1NFUlZFUl9NQU5JRkVTVCk7XG5jb25zdCBzdWJyZXNvdXJjZUludGVncml0eU1hbmlmZXN0ID0gc3JpRW5hYmxlZCA/IG1heWJlSlNPTlBhcnNlKHNlbGYuX19TVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QpIDogdW5kZWZpbmVkO1xuY29uc3QgbmV4dEZvbnRNYW5pZmVzdCA9IG1heWJlSlNPTlBhcnNlKHNlbGYuX19ORVhUX0ZPTlRfTUFOSUZFU1QpO1xuY29uc3QgcmVuZGVyID0gZ2V0UmVuZGVyKHtcbiAgICBwYWdlc1R5cGU6IFBBR0VfVFlQRVMuQVBQLFxuICAgIGRldixcbiAgICBwYWdlOiBcIi9wYWdlXCIsXG4gICAgYXBwTW9kLFxuICAgIHBhZ2VNb2QsXG4gICAgZXJyb3JNb2QsXG4gICAgZXJyb3I1MDBNb2QsXG4gICAgRG9jdW1lbnQsXG4gICAgYnVpbGRNYW5pZmVzdCxcbiAgICBwcmVyZW5kZXJNYW5pZmVzdCxcbiAgICByZW5kZXJUb0hUTUwsXG4gICAgcmVhY3RMb2FkYWJsZU1hbmlmZXN0LFxuICAgIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBpc1NlcnZlckNvbXBvbmVudCA/IHJzY01hbmlmZXN0IDogbnVsbCxcbiAgICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3Q6IGlzU2VydmVyQ29tcG9uZW50ID8gcnNjU2VydmVyTWFuaWZlc3QgOiBudWxsLFxuICAgIHNlcnZlckFjdGlvbnM6IGlzU2VydmVyQ29tcG9uZW50ID8gc2VydmVyQWN0aW9ucyA6IHVuZGVmaW5lZCxcbiAgICBzdWJyZXNvdXJjZUludGVncml0eU1hbmlmZXN0LFxuICAgIGNvbmZpZzogbmV4dENvbmZpZyxcbiAgICBidWlsZElkOiBcImRldmVsb3BtZW50XCIsXG4gICAgbmV4dEZvbnRNYW5pZmVzdCxcbiAgICBpbmNyZW1lbnRhbENhY2hlSGFuZGxlclxufSk7XG5leHBvcnQgY29uc3QgQ29tcG9uZW50TW9kID0gcGFnZU1vZDtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5IYW5kbGVyKG9wdHMpIHtcbiAgICByZXR1cm4gYWRhcHRlcih7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIEluY3JlbWVudGFsQ2FjaGUsXG4gICAgICAgIGhhbmRsZXI6IHJlbmRlclxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lZGdlLXNzci1hcHAuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/page\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIQ==\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2FMessagePoster.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fcomponents%2FQueryAI.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fimage-component.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=true!":
-/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2FMessagePoster.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fcomponents%2FQueryAI.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fimage-component.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=true! ***!
- \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
-
-eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/MessagePoster.tsx */ \"(ssr)/./src/app/MessagePoster.tsx\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/QueryAI.tsx */ \"(ssr)/./src/components/QueryAI.tsx\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/client/image-component.js */ \"(ssr)/../../node_modules/next/dist/esm/client/image-component.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtY2xpZW50LWVudHJ5LWxvYWRlci5qcz9tb2R1bGVzPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWIlMkZzcmMlMkZhcHAlMkZNZXNzYWdlUG9zdGVyLnRzeCZtb2R1bGVzPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWIlMkZzcmMlMkZjb21wb25lbnRzJTJGUXVlcnlBSS50c3gmbW9kdWxlcz0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmVzbSUyRmNsaWVudCUyRmltYWdlLWNvbXBvbmVudC5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGZXNtJTJGc2hhcmVkJTJGbGliJTJGYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lLmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZkaHJhdnlhc2hhaCUyRkRvY3VtZW50cyUyRmNvZGUlMkZhbnljb250ZXh0JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZlc20lMkZzaGFyZWQlMkZsaWIlMkZob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGZXNtJTJGc2hhcmVkJTJGbGliJTJGc2VydmVyLWluc2VydGVkLWh0bWwuc2hhcmVkLXJ1bnRpbWUuanMmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGtLQUFvSDtBQUNwSCxvS0FBcUg7QUFDckgsZ09BQXNJO0FBQ3RJLDRRQUE0SjtBQUM1SixnUkFBOEo7QUFDOUoiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz8xY2UxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvYXBwcy93ZWIvc3JjL2FwcC9NZXNzYWdlUG9zdGVyLnRzeFwiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvYXBwcy93ZWIvc3JjL2NvbXBvbmVudHMvUXVlcnlBSS50c3hcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9pbWFnZS1jb21wb25lbnQuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZGhyYXZ5YXNoYWgvRG9jdW1lbnRzL2NvZGUvYW55Y29udGV4dC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZGhyYXZ5YXNoYWgvRG9jdW1lbnRzL2NvZGUvYW55Y29udGV4dC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3NlcnZlci1pbnNlcnRlZC1odG1sLnNoYXJlZC1ydW50aW1lLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2FMessagePoster.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fcomponents%2FQueryAI.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fimage-component.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=true!\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=true!":
-/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=true! ***!
- \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
-
-eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/client/components/app-router.js */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js */ \"(ssr)/../../node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/client/components/error-boundary.js */ \"(ssr)/../../node_modules/next/dist/esm/client/components/error-boundary.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/client/components/layout-router.js */ \"(ssr)/../../node_modules/next/dist/esm/client/components/layout-router.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/client/components/not-found-boundary.js */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/client/components/render-from-template-context.js */ \"(ssr)/../../node_modules/next/dist/esm/client/components/render-from-template-context.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtY2xpZW50LWVudHJ5LWxvYWRlci5qcz9tb2R1bGVzPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGZXNtJTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmFwcC1yb3V0ZXIuanMmbW9kdWxlcz0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmVzbSUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZkZXYtcm9vdC1ub3QtZm91bmQtYm91bmRhcnkuanMmbW9kdWxlcz0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmVzbSUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZlcnJvci1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGZXNtJTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmxheW91dC1yb3V0ZXIuanMmbW9kdWxlcz0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmVzbSUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZub3QtZm91bmQtYm91bmRhcnkuanMmbW9kdWxlcz0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmVzbSUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJm1vZHVsZXM9JTJGVXNlcnMlMkZkaHJhdnlhc2hhaCUyRkRvY3VtZW50cyUyRmNvZGUlMkZhbnljb250ZXh0JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZlc20lMkZjbGllbnQlMkZjb21wb25lbnRzJTJGc3RhdGljLWdlbmVyYXRpb24tc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJvdmlkZXIuanMmbW9kdWxlcz0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmVzbSUyRnNoYXJlZCUyRmxpYiUyRmFwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyZtb2R1bGVzPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGZXNtJTJGc2hhcmVkJTJGbGliJTJGaG9va3MtY2xpZW50LWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMmbW9kdWxlcz0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmVzbSUyRnNoYXJlZCUyRmxpYiUyRmxvYWRhYmxlLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMmbW9kdWxlcz0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmVzbSUyRnNoYXJlZCUyRmxpYiUyRnNlcnZlci1pbnNlcnRlZC1odG1sLnNoYXJlZC1ydW50aW1lLmpzJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSw0T0FBNEk7QUFDNUksOFFBQTZKO0FBQzdKLG9QQUFnSjtBQUNoSixrUEFBK0k7QUFDL0ksNFBBQW9KO0FBQ3BKLGdSQUE4SjtBQUM5SixzVEFBaUw7QUFDakwsNFFBQTRKO0FBQzVKLGdSQUE4SjtBQUM5Six3UUFBMEo7QUFDMUoiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz84NjdmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvZGV2LXJvb3Qtbm90LWZvdW5kLWJvdW5kYXJ5LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZGhyYXZ5YXNoYWgvRG9jdW1lbnRzL2NvZGUvYW55Y29udGV4dC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWJvdW5kYXJ5LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZGhyYXZ5YXNoYWgvRG9jdW1lbnRzL2NvZGUvYW55Y29udGV4dC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZGhyYXZ5YXNoYWgvRG9jdW1lbnRzL2NvZGUvYW55Y29udGV4dC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9zdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaG9va3MtY2xpZW50LWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvbG9hZGFibGUtY29udGV4dC5zaGFyZWQtcnVudGltZS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2RocmF2eWFzaGFoL0RvY3VtZW50cy9jb2RlL2FueWNvbnRleHQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5zaGFyZWQtcnVudGltZS5qc1wiKSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=true!\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&server=true!":
-/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&server=true! ***!
- \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ (() => {
-
-
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true!":
-/*!**********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true! ***!
- \**********************************************************************************************************/
-/***/ (() => {
-
-
-
-/***/ }),
-
-/***/ "(ssr)/./src/app/MessagePoster.tsx":
-/*!***********************************!*\
- !*** ./src/app/MessagePoster.tsx ***!
- \***********************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\nfunction MessagePoster({ jwt }) {\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (true) return;\n window.postMessage({\n jwt\n }, \"*\");\n }, [\n jwt\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>window.postMessage({\n jwt\n }, \"*\"),\n children: \"Send auth token to extension\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx\",\n lineNumber: 12,\n columnNumber: 5\n }, this);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MessagePoster);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL01lc3NhZ2VQb3N0ZXIudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRWtDO0FBRWxDLFNBQVNDLGNBQWMsRUFBRUMsR0FBRyxFQUFtQjtJQUM3Q0YsZ0RBQVNBLENBQUM7UUFDUixJQUFJLElBQWtCLEVBQWE7UUFDbkNHLE9BQU9DLFdBQVcsQ0FBQztZQUFFRjtRQUFJLEdBQUc7SUFDOUIsR0FBRztRQUFDQTtLQUFJO0lBRVIscUJBQ0UsOERBQUNHO1FBQU9DLFNBQVMsSUFBTUgsT0FBT0MsV0FBVyxDQUFDO2dCQUFFRjtZQUFJLEdBQUc7a0JBQU07Ozs7OztBQUk3RDtBQUVBLGlFQUFlRCxhQUFhQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9hcHAvTWVzc2FnZVBvc3Rlci50c3g/M2FiNiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gTWVzc2FnZVBvc3Rlcih7IGp3dCB9OiB7IGp3dDogc3RyaW5nIH0pIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcbiAgICB3aW5kb3cucG9zdE1lc3NhZ2UoeyBqd3QgfSwgJyonKTtcbiAgfSwgW2p3dF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiB3aW5kb3cucG9zdE1lc3NhZ2UoeyBqd3QgfSwgJyonKX0+XG4gICAgICBTZW5kIGF1dGggdG9rZW4gdG8gZXh0ZW5zaW9uXG4gICAgPC9idXR0b24+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VQb3N0ZXI7XG4iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwiTWVzc2FnZVBvc3RlciIsImp3dCIsIndpbmRvdyIsInBvc3RNZXNzYWdlIiwiYnV0dG9uIiwib25DbGljayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/app/MessagePoster.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./src/components/QueryAI.tsx":
-/*!************************************!*\
- !*** ./src/components/QueryAI.tsx ***!
- \************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _ui_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/label */ \"(ssr)/./src/components/ui/label.tsx\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _ui_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ui/input */ \"(ssr)/./src/components/ui/input.tsx\");\n/* harmony import */ var _ui_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ui/button */ \"(ssr)/./src/components/ui/button.tsx\");\n/* harmony import */ var _SearchResults__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SearchResults */ \"(ssr)/./src/components/SearchResults.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\nfunction QueryAI() {\n const [searchResults, setSearchResults] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n const [isAiLoading, setIsAiLoading] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [aiResponse, setAIResponse] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n const [toBeParsed, setToBeParsed] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n const handleStreamData = (newChunk)=>{\n // Append the new chunk to the existing data to be parsed\n setToBeParsed((prev)=>prev + newChunk);\n };\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{\n // Define a function to try parsing the accumulated data\n const tryParseAccumulatedData = ()=>{\n // Attempt to parse the \"toBeParsed\" state as JSON\n try {\n // Split the accumulated data by the known delimiter \"\\n\\n\"\n const parts = toBeParsed.split(\"\\n\\n\");\n let remainingData = \"\";\n // Process each part to extract JSON objects\n parts.forEach((part, index)=>{\n try {\n const parsedPart = JSON.parse(part.replace(\"data: \", \"\")); // Try to parse the part as JSON\n // If the part is the last one and couldn't be parsed, keep it to accumulate more data\n if (index === parts.length - 1 && !parsedPart) {\n remainingData = part;\n } else if (parsedPart && parsedPart.response) {\n // If the part is parsable and has the \"response\" field, update the AI response state\n setAIResponse((prev)=>prev + parsedPart.response);\n }\n } catch (error) {\n // If parsing fails and it's not the last part, it's a malformed JSON\n if (index !== parts.length - 1) {\n console.error(\"Malformed JSON part: \", part);\n } else {\n // If it's the last part, it may be incomplete, so keep it\n remainingData = part;\n }\n }\n });\n // Update the toBeParsed state to only contain the unparsed remainder\n if (remainingData !== toBeParsed) {\n setToBeParsed(remainingData);\n }\n } catch (error) {\n console.error(\"Error parsing accumulated data: \", error);\n }\n };\n // Call the parsing function if there's data to be parsed\n if (toBeParsed) {\n tryParseAccumulatedData();\n }\n }, [\n toBeParsed\n ]);\n const getSearchResults = async (e)=>{\n e.preventDefault();\n setIsAiLoading(true);\n const sourcesResponse = await fetch(`/api/query?sourcesOnly=true&q=${input}`);\n const sourcesInJson = await sourcesResponse.json();\n setSearchResults(sourcesInJson.ids);\n const response = await fetch(`/api/query?q=${input}`);\n if (response.body) {\n let reader = response.body.getReader();\n let decoder = new TextDecoder(\"utf-8\");\n let result = \"\";\n // @ts-ignore\n reader.read().then(function processText({ done, value }) {\n if (done) {\n // setSearchResults(JSON.parse(result.replace('data: ', '')));\n // setIsAiLoading(false);\n return;\n }\n handleStreamData(decoder.decode(value));\n return reader.read().then(processText);\n });\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-2xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: async (e)=>await getSearchResults(e),\n className: \"mt-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_label__WEBPACK_IMPORTED_MODULE_1__.Label, {\n htmlFor: \"searchInput\",\n children: \"Ask your SuperMemory\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx\",\n lineNumber: 108,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col md:flex-row md:w-full md:items-center space-y-2 md:space-y-0 md:space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_input__WEBPACK_IMPORTED_MODULE_3__.Input, {\n value: input,\n onChange: (e)=>setInput(e.target.value),\n placeholder: \"Search using AI... ✨\",\n id: \"searchInput\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx\",\n lineNumber: 110,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_button__WEBPACK_IMPORTED_MODULE_4__.Button, {\n disabled: isAiLoading,\n className: \"max-w-min md:w-full\",\n type: \"submit\",\n variant: \"default\",\n children: \"Ask AI\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx\",\n lineNumber: 116,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx\",\n lineNumber: 109,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx\",\n lineNumber: 107,\n columnNumber: 7\n }, this),\n searchResults && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_SearchResults__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n aiResponse: aiResponse,\n sources: searchResults\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx\",\n lineNumber: 128,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx\",\n lineNumber: 106,\n columnNumber: 5\n }, this);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (QueryAI);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUNDO1lBQzVCO1FBQ0Y7SUFDRjtJQUVBLHFCQUNFLDhEQUFDSTtRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0M7Z0JBQUtDLFVBQVUsT0FBT3RCLElBQU0sTUFBTUQsaUJBQWlCQztnQkFBSW9CLFdBQVU7O2tDQUNoRSw4REFBQ3pELDRDQUFLQTt3QkFBQzRELFNBQVE7a0NBQWM7Ozs7OztrQ0FDN0IsOERBQUNKO3dCQUFJQyxXQUFVOzswQ0FDYiw4REFBQ3JELDRDQUFLQTtnQ0FDSmtELE9BQU94QztnQ0FDUCtDLFVBQVUsQ0FBQ3hCLElBQU10QixTQUFTc0IsRUFBRXlCLE1BQU0sQ0FBQ1IsS0FBSztnQ0FDeENTLGFBQVk7Z0NBQ1pDLElBQUc7Ozs7OzswQ0FFTCw4REFBQzNELDhDQUFNQTtnQ0FDTDRELFVBQVV2RDtnQ0FDVitDLFdBQVU7Z0NBQ1ZTLE1BQUs7Z0NBQ0xDLFNBQVE7MENBQ1Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQU1KM0QsK0JBQ0MsOERBQUNGLHNEQUFhQTtnQkFBQ00sWUFBWUE7Z0JBQVl3RCxTQUFTNUQ7Ozs7Ozs7Ozs7OztBQUl4RDtBQUVBLGlFQUFlRCxPQUFPQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1F1ZXJ5QUkudHN4PzI5NzUiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gJy4vdWkvbGFiZWwnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJy4vdWkvaW5wdXQnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi91aS9idXR0b24nO1xuaW1wb3J0IFNlYXJjaFJlc3VsdHMgZnJvbSAnLi9TZWFyY2hSZXN1bHRzJztcblxuZnVuY3Rpb24gUXVlcnlBSSgpIHtcbiAgY29uc3QgW3NlYXJjaFJlc3VsdHMsIHNldFNlYXJjaFJlc3VsdHNdID0gdXNlU3RhdGU8c3RyaW5nW10+KFtdKTtcbiAgY29uc3QgW2lzQWlMb2FkaW5nLCBzZXRJc0FpTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgW2FpUmVzcG9uc2UsIHNldEFJUmVzcG9uc2VdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaW5wdXQsIHNldElucHV0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3RvQmVQYXJzZWQsIHNldFRvQmVQYXJzZWRdID0gdXNlU3RhdGUoJycpO1xuXG4gIGNvbnN0IGhhbmRsZVN0cmVhbURhdGEgPSAobmV3Q2h1bms6IHN0cmluZykgPT4ge1xuICAgIC8vIEFwcGVuZCB0aGUgbmV3IGNodW5rIHRvIHRoZSBleGlzdGluZyBkYXRhIHRvIGJlIHBhcnNlZFxuICAgIHNldFRvQmVQYXJzZWQoKHByZXYpID0+IHByZXYgKyBuZXdDaHVuayk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBEZWZpbmUgYSBmdW5jdGlvbiB0byB0cnkgcGFyc2luZyB0aGUgYWNjdW11bGF0ZWQgZGF0YVxuICAgIGNvbnN0IHRyeVBhcnNlQWNjdW11bGF0ZWREYXRhID0gKCkgPT4ge1xuICAgICAgLy8gQXR0ZW1wdCB0byBwYXJzZSB0aGUgXCJ0b0JlUGFyc2VkXCIgc3RhdGUgYXMgSlNPTlxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gU3BsaXQgdGhlIGFjY3VtdWxhdGVkIGRhdGEgYnkgdGhlIGtub3duIGRlbGltaXRlciBcIlxcblxcblwiXG4gICAgICAgIGNvbnN0IHBhcnRzID0gdG9CZVBhcnNlZC5zcGxpdCgnXFxuXFxuJyk7XG4gICAgICAgIGxldCByZW1haW5pbmdEYXRhID0gJyc7XG5cbiAgICAgICAgLy8gUHJvY2VzcyBlYWNoIHBhcnQgdG8gZXh0cmFjdCBKU09OIG9iamVjdHNcbiAgICAgICAgcGFydHMuZm9yRWFjaCgocGFydCwgaW5kZXgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkUGFydCA9IEpTT04ucGFyc2UocGFydC5yZXBsYWNlKCdkYXRhOiAnLCAnJykpOyAvLyBUcnkgdG8gcGFyc2UgdGhlIHBhcnQgYXMgSlNPTlxuXG4gICAgICAgICAgICAvLyBJZiB0aGUgcGFydCBpcyB0aGUgbGFzdCBvbmUgYW5kIGNvdWxkbid0IGJlIHBhcnNlZCwga2VlcCBpdCB0byAgYWNjdW11bGF0ZSBtb3JlIGRhdGFcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gcGFydHMubGVuZ3RoIC0gMSAmJiAhcGFyc2VkUGFydCkge1xuICAgICAgICAgICAgICByZW1haW5pbmdEYXRhID0gcGFydDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyc2VkUGFydCAmJiBwYXJzZWRQYXJ0LnJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgIC8vIElmIHRoZSBwYXJ0IGlzIHBhcnNhYmxlIGFuZCBoYXMgdGhlIFwicmVzcG9uc2VcIiBmaWVsZCwgdXBkYXRlIHRoZSBBSSByZXNwb25zZSBzdGF0ZVxuICAgICAgICAgICAgICBzZXRBSVJlc3BvbnNlKChwcmV2KSA9PiBwcmV2ICsgcGFyc2VkUGFydC5yZXNwb25zZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIElmIHBhcnNpbmcgZmFpbHMgYW5kIGl0J3Mgbm90IHRoZSBsYXN0IHBhcnQsIGl0J3MgYSBtYWxmb3JtZWQgSlNPTlxuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSBwYXJ0cy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ01hbGZvcm1lZCBKU09OIHBhcnQ6ICcsIHBhcnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gSWYgaXQncyB0aGUgbGFzdCBwYXJ0LCBpdCBtYXkgYmUgaW5jb21wbGV0ZSwgc28ga2VlcCBpdFxuICAgICAgICAgICAgICByZW1haW5pbmdEYXRhID0gcGFydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgdG9CZVBhcnNlZCBzdGF0ZSB0byBvbmx5IGNvbnRhaW4gdGhlIHVucGFyc2VkIHJlbWFpbmRlclxuICAgICAgICBpZiAocmVtYWluaW5nRGF0YSAhPT0gdG9CZVBhcnNlZCkge1xuICAgICAgICAgIHNldFRvQmVQYXJzZWQocmVtYWluaW5nRGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgYWNjdW11bGF0ZWQgZGF0YTogJywgZXJyb3IpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBDYWxsIHRoZSBwYXJzaW5nIGZ1bmN0aW9uIGlmIHRoZXJlJ3MgZGF0YSB0byBiZSBwYXJzZWRcbiAgICBpZiAodG9CZVBhcnNlZCkge1xuICAgICAgdHJ5UGFyc2VBY2N1bXVsYXRlZERhdGEoKTtcbiAgICB9XG4gIH0sIFt0b0JlUGFyc2VkXSk7XG5cbiAgY29uc3QgZ2V0U2VhcmNoUmVzdWx0cyA9IGFzeW5jIChlOiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTEZvcm1FbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBzZXRJc0FpTG9hZGluZyh0cnVlKTtcblxuICAgIGNvbnN0IHNvdXJjZXNSZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgYC9hcGkvcXVlcnk/c291cmNlc09ubHk9dHJ1ZSZxPSR7aW5wdXR9YCxcbiAgICApO1xuXG4gICAgY29uc3Qgc291cmNlc0luSnNvbiA9IChhd2FpdCBzb3VyY2VzUmVzcG9uc2UuanNvbigpKSBhcyB7XG4gICAgICBpZHM6IHN0cmluZ1tdO1xuICAgIH07XG5cbiAgICBzZXRTZWFyY2hSZXN1bHRzKHNvdXJjZXNJbkpzb24uaWRzKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hcGkvcXVlcnk/cT0ke2lucHV0fWApO1xuXG4gICAgaWYgKHJlc3BvbnNlLmJvZHkpIHtcbiAgICAgIGxldCByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpO1xuICAgICAgbGV0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jyk7XG4gICAgICBsZXQgcmVzdWx0ID0gJyc7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbiBwcm9jZXNzVGV4dCh7IGRvbmUsIHZhbHVlIH0pIHtcbiAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAvLyAgIHNldFNlYXJjaFJlc3VsdHMoSlNPTi5wYXJzZShyZXN1bHQucmVwbGFjZSgnZGF0YTogJywgJycpKSk7XG4gICAgICAgICAgLy8gICBzZXRJc0FpTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaGFuZGxlU3RyZWFtRGF0YShkZWNvZGVyLmRlY29kZSh2YWx1ZSkpO1xuXG4gICAgICAgIHJldHVybiByZWFkZXIucmVhZCgpLnRoZW4ocHJvY2Vzc1RleHQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctMnhsIG14LWF1dG9cIj5cbiAgICAgIDxmb3JtIG9uU3VibWl0PXthc3luYyAoZSkgPT4gYXdhaXQgZ2V0U2VhcmNoUmVzdWx0cyhlKX0gY2xhc3NOYW1lPVwibXQtOFwiPlxuICAgICAgICA8TGFiZWwgaHRtbEZvcj1cInNlYXJjaElucHV0XCI+QXNrIHlvdXIgU3VwZXJNZW1vcnk8L0xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgbWQ6dy1mdWxsIG1kOml0ZW1zLWNlbnRlciBzcGFjZS15LTIgbWQ6c3BhY2UteS0wIG1kOnNwYWNlLXgtMlwiPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgdmFsdWU9e2lucHV0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRJbnB1dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCB1c2luZyBBSS4uLiDinKhcIlxuICAgICAgICAgICAgaWQ9XCJzZWFyY2hJbnB1dFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBkaXNhYmxlZD17aXNBaUxvYWRpbmd9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJtYXgtdy1taW4gbWQ6dy1mdWxsXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgdmFyaWFudD1cImRlZmF1bHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEFzayBBSVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cblxuICAgICAge3NlYXJjaFJlc3VsdHMgJiYgKFxuICAgICAgICA8U2VhcmNoUmVzdWx0cyBhaVJlc3BvbnNlPXthaVJlc3BvbnNlfSBzb3VyY2VzPXtzZWFyY2hSZXN1bHRzfSAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUXVlcnlBSTtcbiJdLCJuYW1lcyI6WyJMYWJlbCIsIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJJbnB1dCIsIkJ1dHRvbiIsIlNlYXJjaFJlc3VsdHMiLCJRdWVyeUFJIiwic2VhcmNoUmVzdWx0cyIsInNldFNlYXJjaFJlc3VsdHMiLCJpc0FpTG9hZGluZyIsInNldElzQWlMb2FkaW5nIiwiYWlSZXNwb25zZSIsInNldEFJUmVzcG9uc2UiLCJpbnB1dCIsInNldElucHV0IiwidG9CZVBhcnNlZCIsInNldFRvQmVQYXJzZWQiLCJoYW5kbGVTdHJlYW1EYXRhIiwibmV3Q2h1bmsiLCJwcmV2IiwidHJ5UGFyc2VBY2N1bXVsYXRlZERhdGEiLCJwYXJ0cyIsInNwbGl0IiwicmVtYWluaW5nRGF0YSIsImZvckVhY2giLCJwYXJ0IiwiaW5kZXgiLCJwYXJzZWRQYXJ0IiwiSlNPTiIsInBhcnNlIiwicmVwbGFjZSIsImxlbmd0aCIsInJlc3BvbnNlIiwiZXJyb3IiLCJjb25zb2xlIiwiZ2V0U2VhcmNoUmVzdWx0cyIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInNvdXJjZXNSZXNwb25zZSIsImZldGNoIiwic291cmNlc0luSnNvbiIsImpzb24iLCJpZHMiLCJib2R5IiwicmVhZGVyIiwiZ2V0UmVhZGVyIiwiZGVjb2RlciIsIlRleHREZWNvZGVyIiwicmVzdWx0IiwicmVhZCIsInRoZW4iLCJwcm9jZXNzVGV4dCIsImRvbmUiLCJ2YWx1ZSIsImRlY29kZSIsImRpdiIsImNsYXNzTmFtZSIsImZvcm0iLCJvblN1Ym1pdCIsImh0bWxGb3IiLCJvbkNoYW5nZSIsInRhcmdldCIsInBsYWNlaG9sZGVyIiwiaWQiLCJkaXNhYmxlZCIsInR5cGUiLCJ2YXJpYW50Iiwic291cmNlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/QueryAI.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./src/components/SearchResults.tsx":
-/*!******************************************!*\
- !*** ./src/components/SearchResults.tsx ***!
- \******************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _ui_card__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/card */ \"(ssr)/./src/components/ui/card.tsx\");\n/* harmony import */ var react_markdown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-markdown */ \"(ssr)/../../node_modules/react-markdown/lib/index.js\");\n/* harmony import */ var remark_gfm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! remark-gfm */ \"(ssr)/../../node_modules/remark-gfm/lib/index.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nfunction SearchResults({ aiResponse, sources }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n backgroundImage: `linear-gradient(to right, #E5D9F2, #CDC1FF)`\n },\n className: \"w-full max-w-2xl mx-auto px-4 py-6 space-y-6 border mt-4 rounded-xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-start\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl text-black\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_markdown__WEBPACK_IMPORTED_MODULE_3__.Markdown, {\n remarkPlugins: [\n remark_gfm__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n ],\n children: aiResponse.replace(\"</s>\", \"\")\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx\",\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx\",\n lineNumber: 23,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6\",\n children: sources.map((value, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_card__WEBPACK_IMPORTED_MODULE_2__.Card, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_card__WEBPACK_IMPORTED_MODULE_2__.CardContent, {\n className: \"space-y-2\",\n children: value\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx\",\n lineNumber: 30,\n columnNumber: 13\n }, this)\n }, index, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx\",\n lineNumber: 29,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx\",\n lineNumber: 16,\n columnNumber: 5\n }, this);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SearchResults);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9TZWFyY2hSZXN1bHRzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUUwQjtBQUNvQjtBQUNSO0FBQ0o7QUFFbEMsU0FBU0ssY0FBYyxFQUNyQkMsVUFBVSxFQUNWQyxPQUFPLEVBSVI7SUFDQyxxQkFDRSw4REFBQ0M7UUFDQ0MsT0FBTztZQUNMQyxpQkFBaUIsQ0FBQywyQ0FBMkMsQ0FBQztRQUNoRTtRQUNBQyxXQUFVOzswQkFFViw4REFBQ0g7Z0JBQUlHLFdBQVU7MEJBQ2IsNEVBQUNIO29CQUFJRyxXQUFVOzhCQUNiLDRFQUFDUixvREFBUUE7d0JBQUNTLGVBQWU7NEJBQUNSLGtEQUFTQTt5QkFBQztrQ0FBR0UsV0FBV08sT0FBTyxDQUFDLFFBQVE7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBR3RFLDhEQUFDTDtnQkFBSUcsV0FBVTswQkFDWkosUUFBUU8sR0FBRyxDQUFDLENBQUNDLE9BQU9DLHNCQUNuQiw4REFBQ2YsMENBQUlBO2tDQUNILDRFQUFDQyxpREFBV0E7NEJBQUNTLFdBQVU7c0NBQWFJOzs7Ozs7dUJBRDNCQzs7Ozs7Ozs7Ozs7Ozs7OztBQU9yQjtBQUVBLGlFQUFlWCxhQUFhQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NlYXJjaFJlc3VsdHMudHN4PzE5OWYiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDYXJkLCBDYXJkQ29udGVudCB9IGZyb20gJy4vdWkvY2FyZCc7XG5pbXBvcnQgTWFya2Rvd24gZnJvbSAncmVhY3QtbWFya2Rvd24nO1xuaW1wb3J0IHJlbWFya0dmbSBmcm9tICdyZW1hcmstZ2ZtJ1xuXG5mdW5jdGlvbiBTZWFyY2hSZXN1bHRzKHtcbiAgYWlSZXNwb25zZSxcbiAgc291cmNlcyxcbn06IHtcbiAgYWlSZXNwb25zZTogc3RyaW5nO1xuICBzb3VyY2VzOiBzdHJpbmdbXTtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNFNUQ5RjIsICNDREMxRkYpYCxcbiAgICAgIH19XG4gICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctMnhsIG14LWF1dG8gcHgtNCBweS02IHNwYWNlLXktNiBib3JkZXIgbXQtNCByb3VuZGVkLXhsXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc3RhcnRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhsIHRleHQtYmxhY2tcIj5cbiAgICAgICAgICA8TWFya2Rvd24gcmVtYXJrUGx1Z2lucz17W3JlbWFya0dmbV19PnthaVJlc3BvbnNlLnJlcGxhY2UoJzwvcz4nLCAnJyl9PC9NYXJrZG93bj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNlwiPlxuICAgICAgICB7c291cmNlcy5tYXAoKHZhbHVlLCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxDYXJkIGtleT17aW5kZXh9PlxuICAgICAgICAgICAgPENhcmRDb250ZW50IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPnt2YWx1ZX08L0NhcmRDb250ZW50PlxuICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoUmVzdWx0cztcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNhcmQiLCJDYXJkQ29udGVudCIsIk1hcmtkb3duIiwicmVtYXJrR2ZtIiwiU2VhcmNoUmVzdWx0cyIsImFpUmVzcG9uc2UiLCJzb3VyY2VzIiwiZGl2Iiwic3R5bGUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJjbGFzc05hbWUiLCJyZW1hcmtQbHVnaW5zIiwicmVwbGFjZSIsIm1hcCIsInZhbHVlIiwiaW5kZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/SearchResults.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./src/components/ui/button.tsx":
-/*!**************************************!*\
- !*** ./src/components/ui/button.tsx ***!
- \**************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Button: () => (/* binding */ Button),\n/* harmony export */ buttonVariants: () => (/* binding */ buttonVariants)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(ssr)/../../node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(ssr)/../../node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n\n\n\n\n\nconst buttonVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-gray-950 dark:focus-visible:ring-gray-300\", {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\"\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n});\nconst Button = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, variant, size, asChild = false, ...props }, ref)=>{\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot : \"button\";\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(buttonVariants({\n variant,\n size,\n className\n })),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/button.tsx\",\n lineNumber: 46,\n columnNumber: 7\n }, undefined);\n});\nButton.displayName = \"Button\";\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy91aS9idXR0b24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUE4QjtBQUNhO0FBQ3NCO0FBRWpDO0FBRWhDLE1BQU1JLGlCQUFpQkYsNkRBQUdBLENBQ3hCLG9WQUNBO0lBQ0VHLFVBQVU7UUFDUkMsU0FBUztZQUNQQyxTQUFTO1lBQ1RDLGFBQ0U7WUFDRkMsU0FDRTtZQUNGQyxXQUNFO1lBQ0ZDLE9BQU87WUFDUEMsTUFBTTtRQUNSO1FBQ0FDLE1BQU07WUFDSk4sU0FBUztZQUNUTyxJQUFJO1lBQ0pDLElBQUk7WUFDSkMsTUFBTTtRQUNSO0lBQ0Y7SUFDQUMsaUJBQWlCO1FBQ2ZYLFNBQVM7UUFDVE8sTUFBTTtJQUNSO0FBQ0Y7QUFTRixNQUFNSyx1QkFBU2xCLDZDQUFnQixDQUM3QixDQUFDLEVBQUVvQixTQUFTLEVBQUVkLE9BQU8sRUFBRU8sSUFBSSxFQUFFUSxVQUFVLEtBQUssRUFBRSxHQUFHQyxPQUFPLEVBQUVDO0lBQ3hELE1BQU1DLE9BQU9ILFVBQVVwQixzREFBSUEsR0FBRztJQUM5QixxQkFDRSw4REFBQ3dCO1FBQ0NMLFdBQVdqQiw4Q0FBRUEsQ0FBQ0MsZUFBZTtZQUFFRTtZQUFTTztZQUFNTztRQUFVO1FBQ3hERyxLQUFLQTtRQUNKLEdBQUdELEtBQUs7Ozs7OztBQUdmO0FBRUZKLE9BQU9RLFdBQVcsR0FBRztBQUVZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL3VpL2J1dHRvbi50c3g/NmEwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiXG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSBcImNsYXNzLXZhcmlhbmNlLWF1dGhvcml0eVwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgYnV0dG9uVmFyaWFudHMgPSBjdmEoXG4gIFwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHJvdW5kZWQtbWQgdGV4dC1zbSBmb250LW1lZGl1bSByaW5nLW9mZnNldC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctZ3JheS05NTAgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCBkYXJrOnJpbmctb2Zmc2V0LWdyYXktOTUwIGRhcms6Zm9jdXMtdmlzaWJsZTpyaW5nLWdyYXktMzAwXCIsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiBcImJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgaG92ZXI6YmctcHJpbWFyeS85MFwiLFxuICAgICAgICBkZXN0cnVjdGl2ZTpcbiAgICAgICAgICBcImJnLWRlc3RydWN0aXZlIHRleHQtZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZCBob3ZlcjpiZy1kZXN0cnVjdGl2ZS85MFwiLFxuICAgICAgICBvdXRsaW5lOlxuICAgICAgICAgIFwiYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kXCIsXG4gICAgICAgIHNlY29uZGFyeTpcbiAgICAgICAgICBcImJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXNlY29uZGFyeS84MFwiLFxuICAgICAgICBnaG9zdDogXCJob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBsaW5rOiBcInRleHQtcHJpbWFyeSB1bmRlcmxpbmUtb2Zmc2V0LTQgaG92ZXI6dW5kZXJsaW5lXCIsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBkZWZhdWx0OiBcImgtMTAgcHgtNCBweS0yXCIsXG4gICAgICAgIHNtOiBcImgtOSByb3VuZGVkLW1kIHB4LTNcIixcbiAgICAgICAgbGc6IFwiaC0xMSByb3VuZGVkLW1kIHB4LThcIixcbiAgICAgICAgaWNvbjogXCJoLTEwIHctMTBcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IFwiZGVmYXVsdFwiLFxuICAgICAgc2l6ZTogXCJkZWZhdWx0XCIsXG4gICAgfSxcbiAgfVxuKVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvblByb3BzXG4gIGV4dGVuZHMgUmVhY3QuQnV0dG9uSFRNTEF0dHJpYnV0ZXM8SFRNTEJ1dHRvbkVsZW1lbnQ+LFxuICAgIFZhcmlhbnRQcm9wczx0eXBlb2YgYnV0dG9uVmFyaWFudHM+IHtcbiAgYXNDaGlsZD86IGJvb2xlYW5cbn1cblxuY29uc3QgQnV0dG9uID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MQnV0dG9uRWxlbWVudCwgQnV0dG9uUHJvcHM+KFxuICAoeyBjbGFzc05hbWUsIHZhcmlhbnQsIHNpemUsIGFzQ2hpbGQgPSBmYWxzZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgQ29tcCA9IGFzQ2hpbGQgPyBTbG90IDogXCJidXR0b25cIlxuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzTmFtZT17Y24oYnV0dG9uVmFyaWFudHMoeyB2YXJpYW50LCBzaXplLCBjbGFzc05hbWUgfSkpfVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICApXG4gIH1cbilcbkJ1dHRvbi5kaXNwbGF5TmFtZSA9IFwiQnV0dG9uXCJcblxuZXhwb3J0IHsgQnV0dG9uLCBidXR0b25WYXJpYW50cyB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTbG90IiwiY3ZhIiwiY24iLCJidXR0b25WYXJpYW50cyIsInZhcmlhbnRzIiwidmFyaWFudCIsImRlZmF1bHQiLCJkZXN0cnVjdGl2ZSIsIm91dGxpbmUiLCJzZWNvbmRhcnkiLCJnaG9zdCIsImxpbmsiLCJzaXplIiwic20iLCJsZyIsImljb24iLCJkZWZhdWx0VmFyaWFudHMiLCJCdXR0b24iLCJmb3J3YXJkUmVmIiwiY2xhc3NOYW1lIiwiYXNDaGlsZCIsInByb3BzIiwicmVmIiwiQ29tcCIsImJ1dHRvbiIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/button.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./src/components/ui/card.tsx":
-/*!************************************!*\
- !*** ./src/components/ui/card.tsx ***!
- \************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Card: () => (/* binding */ Card),\n/* harmony export */ CardContent: () => (/* binding */ CardContent),\n/* harmony export */ CardDescription: () => (/* binding */ CardDescription),\n/* harmony export */ CardFooter: () => (/* binding */ CardFooter),\n/* harmony export */ CardHeader: () => (/* binding */ CardHeader),\n/* harmony export */ CardTitle: () => (/* binding */ CardTitle)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n\n\n\nconst Card = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"rounded-lg border border-gray-200 bg-white text-gray-950 shadow-sm dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 9,\n columnNumber: 3\n }, undefined));\nCard.displayName = \"Card\";\nconst CardHeader = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col space-y-1.5 p-6\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 24,\n columnNumber: 3\n }, undefined));\nCardHeader.displayName = \"CardHeader\";\nconst CardTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-2xl font-semibold leading-none tracking-tight\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 36,\n columnNumber: 3\n }, undefined));\nCardTitle.displayName = \"CardTitle\";\nconst CardDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-sm text-gray-500 dark:text-gray-400\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 51,\n columnNumber: 3\n }, undefined));\nCardDescription.displayName = \"CardDescription\";\nconst CardContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"p-6 pt-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 63,\n columnNumber: 3\n }, undefined));\nCardContent.displayName = \"CardContent\";\nconst CardFooter = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex items-center p-6 pt-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 71,\n columnNumber: 3\n }, undefined));\nCardFooter.displayName = \"CardFooter\";\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy91aS9jYXJkLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE4QjtBQUVFO0FBRWhDLE1BQU1FLHFCQUFPRiw2Q0FBZ0IsQ0FHM0IsQ0FBQyxFQUFFSSxTQUFTLEVBQUUsR0FBR0MsT0FBTyxFQUFFQyxvQkFDMUIsOERBQUNDO1FBQ0NELEtBQUtBO1FBQ0xGLFdBQVdILDhDQUFFQSxDQUNYLDhIQUNBRztRQUVELEdBQUdDLEtBQUs7Ozs7OztBQUdiSCxLQUFLTSxXQUFXLEdBQUc7QUFFbkIsTUFBTUMsMkJBQWFULDZDQUFnQixDQUdqQyxDQUFDLEVBQUVJLFNBQVMsRUFBRSxHQUFHQyxPQUFPLEVBQUVDLG9CQUMxQiw4REFBQ0M7UUFDQ0QsS0FBS0E7UUFDTEYsV0FBV0gsOENBQUVBLENBQUMsaUNBQWlDRztRQUM5QyxHQUFHQyxLQUFLOzs7Ozs7QUFHYkksV0FBV0QsV0FBVyxHQUFHO0FBRXpCLE1BQU1FLDBCQUFZViw2Q0FBZ0IsQ0FHaEMsQ0FBQyxFQUFFSSxTQUFTLEVBQUUsR0FBR0MsT0FBTyxFQUFFQyxvQkFDMUIsOERBQUNLO1FBQ0NMLEtBQUtBO1FBQ0xGLFdBQVdILDhDQUFFQSxDQUNYLHNEQUNBRztRQUVELEdBQUdDLEtBQUs7Ozs7OztBQUdiSyxVQUFVRixXQUFXLEdBQUc7QUFFeEIsTUFBTUksZ0NBQWtCWiw2Q0FBZ0IsQ0FHdEMsQ0FBQyxFQUFFSSxTQUFTLEVBQUUsR0FBR0MsT0FBTyxFQUFFQyxvQkFDMUIsOERBQUNPO1FBQ0NQLEtBQUtBO1FBQ0xGLFdBQVdILDhDQUFFQSxDQUFDLDRDQUE0Q0c7UUFDekQsR0FBR0MsS0FBSzs7Ozs7O0FBR2JPLGdCQUFnQkosV0FBVyxHQUFHO0FBRTlCLE1BQU1NLDRCQUFjZCw2Q0FBZ0IsQ0FHbEMsQ0FBQyxFQUFFSSxTQUFTLEVBQUUsR0FBR0MsT0FBTyxFQUFFQyxvQkFDMUIsOERBQUNDO1FBQUlELEtBQUtBO1FBQUtGLFdBQVdILDhDQUFFQSxDQUFDLFlBQVlHO1FBQWEsR0FBR0MsS0FBSzs7Ozs7O0FBRWhFUyxZQUFZTixXQUFXLEdBQUc7QUFFMUIsTUFBTU8sMkJBQWFmLDZDQUFnQixDQUdqQyxDQUFDLEVBQUVJLFNBQVMsRUFBRSxHQUFHQyxPQUFPLEVBQUVDLG9CQUMxQiw4REFBQ0M7UUFDQ0QsS0FBS0E7UUFDTEYsV0FBV0gsOENBQUVBLENBQUMsOEJBQThCRztRQUMzQyxHQUFHQyxLQUFLOzs7Ozs7QUFHYlUsV0FBV1AsV0FBVyxHQUFHO0FBRXVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL3VpL2NhcmQudHN4P2U3ZDIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuXG5jb25zdCBDYXJkID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTERpdkVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8ZGl2XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWdyYXktMjAwIGJnLXdoaXRlIHRleHQtZ3JheS05NTAgc2hhZG93LXNtIGRhcms6Ym9yZGVyLWdyYXktODAwIGRhcms6YmctZ3JheS05NTAgZGFyazp0ZXh0LWdyYXktNTBcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkNhcmQuZGlzcGxheU5hbWUgPSBcIkNhcmRcIlxuXG5jb25zdCBDYXJkSGVhZGVyID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTERpdkVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8ZGl2XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcImZsZXggZmxleC1jb2wgc3BhY2UteS0xLjUgcC02XCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkNhcmRIZWFkZXIuZGlzcGxheU5hbWUgPSBcIkNhcmRIZWFkZXJcIlxuXG5jb25zdCBDYXJkVGl0bGUgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MUGFyYWdyYXBoRWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTEhlYWRpbmdFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8aDNcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIGxlYWRpbmctbm9uZSB0cmFja2luZy10aWdodFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQ2FyZFRpdGxlLmRpc3BsYXlOYW1lID0gXCJDYXJkVGl0bGVcIlxuXG5jb25zdCBDYXJkRGVzY3JpcHRpb24gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MUGFyYWdyYXBoRWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTFBhcmFncmFwaEVsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxwXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcInRleHQtc20gdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQ2FyZERlc2NyaXB0aW9uLmRpc3BsYXlOYW1lID0gXCJDYXJkRGVzY3JpcHRpb25cIlxuXG5jb25zdCBDYXJkQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIEhUTUxEaXZFbGVtZW50LFxuICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPGRpdiByZWY9e3JlZn0gY2xhc3NOYW1lPXtjbihcInAtNiBwdC0wXCIsIGNsYXNzTmFtZSl9IHsuLi5wcm9wc30gLz5cbikpXG5DYXJkQ29udGVudC5kaXNwbGF5TmFtZSA9IFwiQ2FyZENvbnRlbnRcIlxuXG5jb25zdCBDYXJkRm9vdGVyID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTERpdkVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8ZGl2XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcImZsZXggaXRlbXMtY2VudGVyIHAtNiBwdC0wXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkNhcmRGb290ZXIuZGlzcGxheU5hbWUgPSBcIkNhcmRGb290ZXJcIlxuXG5leHBvcnQgeyBDYXJkLCBDYXJkSGVhZGVyLCBDYXJkRm9vdGVyLCBDYXJkVGl0bGUsIENhcmREZXNjcmlwdGlvbiwgQ2FyZENvbnRlbnQgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY24iLCJDYXJkIiwiZm9yd2FyZFJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwicmVmIiwiZGl2IiwiZGlzcGxheU5hbWUiLCJDYXJkSGVhZGVyIiwiQ2FyZFRpdGxlIiwiaDMiLCJDYXJkRGVzY3JpcHRpb24iLCJwIiwiQ2FyZENvbnRlbnQiLCJDYXJkRm9vdGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/card.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./src/components/ui/input.tsx":
-/*!*************************************!*\
- !*** ./src/components/ui/input.tsx ***!
- \*************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Input: () => (/* binding */ Input)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n\n\n\nconst Input = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, type, ...props }, ref)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: type,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-10 w-full rounded-md border border-gray-200 bg-white px-3 py-2 text-sm ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-800 dark:bg-gray-950 dark:ring-offset-gray-950 dark:placeholder:text-gray-400 dark:focus-visible:ring-gray-300\", className),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/input.tsx\",\n lineNumber: 11,\n columnNumber: 7\n }, undefined);\n});\nInput.displayName = \"Input\";\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy91aS9pbnB1dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQThCO0FBRUU7QUFLaEMsTUFBTUUsc0JBQVFGLDZDQUFnQixDQUM1QixDQUFDLEVBQUVJLFNBQVMsRUFBRUMsSUFBSSxFQUFFLEdBQUdDLE9BQU8sRUFBRUM7SUFDOUIscUJBQ0UsOERBQUNDO1FBQ0NILE1BQU1BO1FBQ05ELFdBQVdILDhDQUFFQSxDQUNYLHFkQUNBRztRQUVGRyxLQUFLQTtRQUNKLEdBQUdELEtBQUs7Ozs7OztBQUdmO0FBRUZKLE1BQU1PLFdBQVcsR0FBRztBQUVKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL3VpL2lucHV0LnRzeD9jOTgzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFByb3BzXG4gIGV4dGVuZHMgUmVhY3QuSW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PiB7fVxuXG5jb25zdCBJbnB1dCA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTElucHV0RWxlbWVudCwgSW5wdXRQcm9wcz4oXG4gICh7IGNsYXNzTmFtZSwgdHlwZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwiZmxleCBoLTEwIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgcHgtMyBweS0yIHRleHQtc20gcmluZy1vZmZzZXQtd2hpdGUgZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IGZpbGU6dGV4dC1zbSBmaWxlOmZvbnQtbWVkaXVtIHBsYWNlaG9sZGVyOnRleHQtZ3JheS01MDAgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLWdyYXktOTUwIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCBkYXJrOmJvcmRlci1ncmF5LTgwMCBkYXJrOmJnLWdyYXktOTUwIGRhcms6cmluZy1vZmZzZXQtZ3JheS05NTAgZGFyazpwbGFjZWhvbGRlcjp0ZXh0LWdyYXktNDAwIGRhcms6Zm9jdXMtdmlzaWJsZTpyaW5nLWdyYXktMzAwXCIsXG4gICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICl9XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAvPlxuICAgIClcbiAgfVxuKVxuSW5wdXQuZGlzcGxheU5hbWUgPSBcIklucHV0XCJcblxuZXhwb3J0IHsgSW5wdXQgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY24iLCJJbnB1dCIsImZvcndhcmRSZWYiLCJjbGFzc05hbWUiLCJ0eXBlIiwicHJvcHMiLCJyZWYiLCJpbnB1dCIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/input.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./src/components/ui/label.tsx":
-/*!*************************************!*\
- !*** ./src/components/ui/label.tsx ***!
- \*************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Label: () => (/* binding */ Label)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-label */ \"(ssr)/../../node_modules/@radix-ui/react-label/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(ssr)/../../node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Label auto */ \n\n\n\n\nconst labelVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\");\nconst Label = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(labelVariants(), className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/label.tsx\",\n lineNumber: 18,\n columnNumber: 3\n }, undefined));\nLabel.displayName = _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__.Root.displayName;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy91aS9sYWJlbC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFOEI7QUFDeUI7QUFDVTtBQUVqQztBQUVoQyxNQUFNSSxnQkFBZ0JGLDZEQUFHQSxDQUN2QjtBQUdGLE1BQU1HLHNCQUFRTCw2Q0FBZ0IsQ0FJNUIsQ0FBQyxFQUFFTyxTQUFTLEVBQUUsR0FBR0MsT0FBTyxFQUFFQyxvQkFDMUIsOERBQUNSLHVEQUFtQjtRQUNsQlEsS0FBS0E7UUFDTEYsV0FBV0osOENBQUVBLENBQUNDLGlCQUFpQkc7UUFDOUIsR0FBR0MsS0FBSzs7Ozs7O0FBR2JILE1BQU1NLFdBQVcsR0FBR1YsdURBQW1CLENBQUNVLFdBQVc7QUFFbkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvdWkvbGFiZWwudHN4PzEzZWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIExhYmVsUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtbGFiZWxcIlxuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gXCJjbGFzcy12YXJpYW5jZS1hdXRob3JpdHlcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IGxhYmVsVmFyaWFudHMgPSBjdmEoXG4gIFwidGV4dC1zbSBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgcGVlci1kaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgcGVlci1kaXNhYmxlZDpvcGFjaXR5LTcwXCJcbilcblxuY29uc3QgTGFiZWwgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBMYWJlbFByaW1pdGl2ZS5Sb290PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBMYWJlbFByaW1pdGl2ZS5Sb290PiAmXG4gICAgVmFyaWFudFByb3BzPHR5cGVvZiBsYWJlbFZhcmlhbnRzPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8TGFiZWxQcmltaXRpdmUuUm9vdFxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24obGFiZWxWYXJpYW50cygpLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5MYWJlbC5kaXNwbGF5TmFtZSA9IExhYmVsUHJpbWl0aXZlLlJvb3QuZGlzcGxheU5hbWVcblxuZXhwb3J0IHsgTGFiZWwgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGFiZWxQcmltaXRpdmUiLCJjdmEiLCJjbiIsImxhYmVsVmFyaWFudHMiLCJMYWJlbCIsImZvcndhcmRSZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsInJlZiIsIlJvb3QiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/label.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./src/lib/utils.ts":
-/*!**************************!*\
- !*** ./src/lib/utils.ts ***!
- \**************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cn: () => (/* binding */ cn)\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(ssr)/../../node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var tailwind_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tailwind-merge */ \"(ssr)/../../node_modules/tailwind-merge/dist/bundle-mjs.mjs\");\n\n\nfunction cn(...inputs) {\n return (0,tailwind_merge__WEBPACK_IMPORTED_MODULE_1__.twMerge)((0,clsx__WEBPACK_IMPORTED_MODULE_0__.clsx)(inputs));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL3V0aWxzLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QztBQUNKO0FBRWpDLFNBQVNFLEdBQUcsR0FBR0MsTUFBb0I7SUFDeEMsT0FBT0YsdURBQU9BLENBQUNELDBDQUFJQSxDQUFDRztBQUN0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvbGliL3V0aWxzLnRzPzdjMWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDbGFzc1ZhbHVlLCBjbHN4IH0gZnJvbSBcImNsc3hcIlxuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gXCJ0YWlsd2luZC1tZXJnZVwiXG5cbmV4cG9ydCBmdW5jdGlvbiBjbiguLi5pbnB1dHM6IENsYXNzVmFsdWVbXSkge1xuICByZXR1cm4gdHdNZXJnZShjbHN4KGlucHV0cykpXG59XG4iXSwibmFtZXMiOlsiY2xzeCIsInR3TWVyZ2UiLCJjbiIsImlucHV0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/utils.ts\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/debug/src/browser.js":
-/*!***********************************************!*\
- !*** ../../node_modules/debug/src/browser.js ***!
- \***********************************************/
-/***/ ((module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/* eslint-env browser */ /**\n * This is the web browser implementation of `debug()`.\n */ \nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (()=>{\n let warned = false;\n return ()=>{\n if (!warned) {\n warned = true;\n console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\");\n }\n };\n})();\n/**\n * Colors.\n */ exports.colors = [\n \"#0000CC\",\n \"#0000FF\",\n \"#0033CC\",\n \"#0033FF\",\n \"#0066CC\",\n \"#0066FF\",\n \"#0099CC\",\n \"#0099FF\",\n \"#00CC00\",\n \"#00CC33\",\n \"#00CC66\",\n \"#00CC99\",\n \"#00CCCC\",\n \"#00CCFF\",\n \"#3300CC\",\n \"#3300FF\",\n \"#3333CC\",\n \"#3333FF\",\n \"#3366CC\",\n \"#3366FF\",\n \"#3399CC\",\n \"#3399FF\",\n \"#33CC00\",\n \"#33CC33\",\n \"#33CC66\",\n \"#33CC99\",\n \"#33CCCC\",\n \"#33CCFF\",\n \"#6600CC\",\n \"#6600FF\",\n \"#6633CC\",\n \"#6633FF\",\n \"#66CC00\",\n \"#66CC33\",\n \"#9900CC\",\n \"#9900FF\",\n \"#9933CC\",\n \"#9933FF\",\n \"#99CC00\",\n \"#99CC33\",\n \"#CC0000\",\n \"#CC0033\",\n \"#CC0066\",\n \"#CC0099\",\n \"#CC00CC\",\n \"#CC00FF\",\n \"#CC3300\",\n \"#CC3333\",\n \"#CC3366\",\n \"#CC3399\",\n \"#CC33CC\",\n \"#CC33FF\",\n \"#CC6600\",\n \"#CC6633\",\n \"#CC9900\",\n \"#CC9933\",\n \"#CCCC00\",\n \"#CCCC33\",\n \"#FF0000\",\n \"#FF0033\",\n \"#FF0066\",\n \"#FF0099\",\n \"#FF00CC\",\n \"#FF00FF\",\n \"#FF3300\",\n \"#FF3333\",\n \"#FF3366\",\n \"#FF3399\",\n \"#FF33CC\",\n \"#FF33FF\",\n \"#FF6600\",\n \"#FF6633\",\n \"#FF9900\",\n \"#FF9933\",\n \"#FFCC00\",\n \"#FFCC33\"\n];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */ // eslint-disable-next-line complexity\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (false) {}\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== \"undefined\" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return typeof document !== \"undefined\" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773\n false && (0) || // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== \"undefined\" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker\n typeof navigator !== \"undefined\" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */ function formatArgs(args) {\n args[0] = (this.useColors ? \"%c\" : \"\") + this.namespace + (this.useColors ? \" %c\" : \" \") + args[0] + (this.useColors ? \"%c \" : \" \") + \"+\" + module.exports.humanize(this.diff);\n if (!this.useColors) {\n return;\n }\n const c = \"color: \" + this.color;\n args.splice(1, 0, c, \"color: inherit\");\n // The final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n let index = 0;\n let lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, (match)=>{\n if (match === \"%%\") {\n return;\n }\n index++;\n if (match === \"%c\") {\n // We only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */ exports.log = console.debug || console.log || (()=>{});\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */ function save(namespaces) {\n try {\n if (namespaces) {\n exports.storage.setItem(\"debug\", namespaces);\n } else {\n exports.storage.removeItem(\"debug\");\n }\n } catch (error) {\n // Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */ function load() {\n let r;\n try {\n r = exports.storage.getItem(\"debug\");\n } catch (error) {\n // Swallow\n // XXX (@Qix-) should we be logging these?\n }\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== \"undefined\" && \"env\" in process) {\n r = process.env.DEBUG;\n }\n return r;\n}\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */ function localstorage() {\n try {\n // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n // The Browser also has localStorage in the global context.\n return localStorage;\n } catch (error) {\n // Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\nmodule.exports = __webpack_require__(/*! ./common */ \"(ssr)/../../node_modules/debug/src/common.js\")(exports);\nconst { formatters } = module.exports;\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */ formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (error) {\n return \"[UnexpectedJSONParseError]: \" + error.message;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9icm93c2VyLmpzIiwibWFwcGluZ3MiOiJBQUFBLHNCQUFzQixHQUV0Qjs7Q0FFQztBQUVEQSxrQkFBa0IsR0FBR0M7QUFDckJELFlBQVksR0FBR0U7QUFDZkYsWUFBWSxHQUFHRztBQUNmSCxpQkFBaUIsR0FBR0k7QUFDcEJKLGVBQWUsR0FBR007QUFDbEJOLGVBQWUsR0FBRyxDQUFDO0lBQ2xCLElBQUlRLFNBQVM7SUFFYixPQUFPO1FBQ04sSUFBSSxDQUFDQSxRQUFRO1lBQ1pBLFNBQVM7WUFDVEMsUUFBUUMsSUFBSSxDQUFDO1FBQ2Q7SUFDRDtBQUNEO0FBRUE7O0NBRUMsR0FFRFYsY0FBYyxHQUFHO0lBQ2hCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0E7QUFFRDs7Ozs7O0NBTUMsR0FFRCxzQ0FBc0M7QUFDdEMsU0FBU0k7SUFDUiw0RUFBNEU7SUFDNUUsMEVBQTBFO0lBQzFFLGFBQWE7SUFDYixJQUFJLEtBQWdILEVBQUUsRUFFckg7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxPQUFPWSxjQUFjLGVBQWVBLFVBQVVDLFNBQVMsSUFBSUQsVUFBVUMsU0FBUyxDQUFD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MENBQTBDO0lBQzNDO0FBQ0Q7QUFFQWQsT0FBT2hDLE9BQU8sR0FBR29ELG1CQUFPQSxDQUFDLGdFQUFZcEQ7QUFFckMsTUFBTSxFQUFDcUQsVUFBVSxFQUFDLEdBQUdyQixPQUFPaEMsT0FBTztBQUVuQzs7Q0FFQyxHQUVEcUQsV0FBV0MsQ0FBQyxHQUFHLFNBQVVDLENBQUM7SUFDekIsSUFBSTtRQUNILE9BQU9DLEtBQUtDLFNBQVMsQ0FBQ0Y7SUFDdkIsRUFBRSxPQUFPVCxPQUFPO1FBQ2YsT0FBTyxpQ0FBaUNBLE1BQU1ZLE9BQU87SUFDdEQ7QUFDRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9icm93c2VyLmpzPzMzMzkiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWVudiBicm93c2VyICovXG5cbi8qKlxuICogVGhpcyBpcyB0aGUgd2ViIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gb2YgYGRlYnVnKClgLlxuICovXG5cbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuZXhwb3J0cy5zdG9yYWdlID0gbG9jYWxzdG9yYWdlKCk7XG5leHBvcnRzLmRlc3Ryb3kgPSAoKCkgPT4ge1xuXHRsZXQgd2FybmVkID0gZmFsc2U7XG5cblx0cmV0dXJuICgpID0+IHtcblx0XHRpZiAoIXdhcm5lZCkge1xuXHRcdFx0d2FybmVkID0gdHJ1ZTtcblx0XHRcdGNvbnNvbGUud2FybignSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLicpO1xuXHRcdH1cblx0fTtcbn0pKCk7XG5cbi8qKlxuICogQ29sb3JzLlxuICovXG5cbmV4cG9ydHMuY29sb3JzID0gW1xuXHQnIzAwMDBDQycsXG5cdCcjMDAwMEZGJyxcblx0JyMwMDMzQ0MnLFxuXHQnIzAwMzNGRicsXG5cdCcjMDA2NkNDJyxcblx0JyMwMDY2RkYnLFxuXHQnIzAwOTlDQycsXG5cdCcjMDA5OUZGJyxcblx0JyMwMENDMDAnLFxuXHQnIzAwQ0MzMycsXG5cdCcjMDBDQzY2Jyxcblx0JyMwMENDOTknLFxuXHQnIzAwQ0NDQycsXG5cdCcjMDBDQ0ZGJyxcblx0JyMzMzAwQ0MnLFxuXHQnIzMzMDBGRicsXG5cdCcjMzMzM0NDJyxcblx0JyMzMzMzRkYnLFxuXHQnIzMzNjZDQycsXG5cdCcjMzM2NkZGJyxcblx0JyMzMzk5Q0MnLFxuXHQnIzMzOTlGRicsXG5cdCcjMzNDQzAwJyxcblx0JyMzM0NDMzMnLFxuXHQnIzMzQ0M2NicsXG5cdCcjMzNDQzk5Jyxcblx0JyMzM0NDQ0MnLFxuXHQnIzMzQ0NGRicsXG5cdCcjNjYwMENDJyxcblx0JyM2NjAwRkYnLFxuXHQnIzY2MzNDQycsXG5cdCcjNjYzM0ZGJyxcblx0JyM2NkNDMDAnLFxuXHQnIzY2Q0MzMycsXG5cdCcjOTkwMENDJyxcblx0JyM5OTAwRkYnLFxuXHQnIzk5MzNDQycsXG5cdCcjOTkzM0ZGJyxcblx0JyM5OUNDMDAnLFxuXHQnIzk5Q0MzMycsXG5cdCcjQ0MwMDAwJyxcblx0JyNDQzAwMzMnLFxuXHQnI0NDMDA2NicsXG5cdCcjQ0MwMDk5Jyxcblx0JyNDQzAwQ0MnLFxuXHQnI0NDMDBGRicsXG5cdCcjQ0MzMzAwJyxcblx0JyNDQzMzMzMnLFxuXHQnI0NDMzM2NicsXG5cdCcjQ0MzMzk5Jyxcblx0JyNDQzMzQ0MnLFxuXHQnI0NDMzNGRicsXG5cdCcjQ0M2NjAwJyxcblx0JyNDQzY2MzMnLFxuXHQnI0NDOTkwMCcsXG5cdCcjQ0M5OTMzJyxcblx0JyNDQ0NDMDAnLFxuXHQnI0NDQ0MzMycsXG5cdCcjRkYwMDAwJyxcblx0JyNGRjAwMzMnLFxuXHQnI0ZGMDA2NicsXG5cdCcjRkYwMDk5Jyxcblx0JyNGRjAwQ0MnLFxuXHQnI0ZGMDBGRicsXG5cdCcjRkYzMzAwJyxcblx0JyNGRjMzMzMnLFxuXHQnI0ZGMzM2NicsXG5cdCcjRkYzMzk5Jyxcblx0JyNGRjMzQ0MnLFxuXHQnI0ZGMzNGRicsXG5cdCcjRkY2NjAwJyxcblx0JyNGRjY2MzMnLFxuXHQnI0ZGOTkwMCcsXG5cdCcjRkY5OTMzJyxcblx0JyNGRkNDMDAnLFxuXHQnI0ZGQ0MzMydcbl07XG5cbi8qKlxuICogQ3VycmVudGx5IG9ubHkgV2ViS2l0LWJhc2VkIFdlYiBJbnNwZWN0b3JzLCBGaXJlZm94ID49IHYzMSxcbiAqIGFuZCB0aGUgRmlyZWJ1ZyBleHRlbnNpb24gKGFueSBGaXJlZm94IHZlcnNpb24pIGFyZSBrbm93blxuICogdG8gc3VwcG9ydCBcIiVjXCIgQ1NTIGN1c3RvbWl6YXRpb25zLlxuICpcbiAqIFRPRE86IGFkZCBhIGBsb2NhbFN0b3JhZ2VgIHZhcmlhYmxlIHRvIGV4cGxpY2l0bHkgZW5hYmxlL2Rpc2FibGUgY29sb3JzXG4gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmZ1bmN0aW9uIHVzZUNvbG9ycygpIHtcblx0Ly8gTkI6IEluIGFuIEVsZWN0cm9uIHByZWxvYWQgc2NyaXB0LCBkb2N1bWVudCB3aWxsIGJlIGRlZmluZWQgYnV0IG5vdCBmdWxseVxuXHQvLyBpbml0aWFsaXplZC4gU2luY2Ugd2Uga25vdyB3ZSdyZSBpbiBDaHJvbWUsIHdlJ2xsIGp1c3QgZGV0ZWN0IHRoaXMgY2FzZVxuXHQvLyBleHBsaWNpdGx5XG5cdGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cucHJvY2VzcyAmJiAod2luZG93LnByb2Nlc3MudHlwZSA9PT0gJ3JlbmRlcmVyJyB8fCB3aW5kb3cucHJvY2Vzcy5fX253anMpKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvLyBJbnRlcm5ldCBFeHBsb3JlciBhbmQgRWRnZSBkbyBub3Qgc3VwcG9ydCBjb2xvcnMuXG5cdGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcXC8oXFxkKykvKSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIElzIHdlYmtpdD8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTY0NTk2MDYvMzc2NzczXG5cdC8vIGRvY3VtZW50IGlzIHVuZGVmaW5lZCBpbiByZWFjdC1uYXRpdmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC1uYXRpdmUvcHVsbC8xNjMyXG5cdHJldHVybiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlKSB8fFxuXHRcdC8vIElzIGZpcmVidWc/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM5ODEyMC8zNzY3NzNcblx0XHQodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmNvbnNvbGUgJiYgKHdpbmRvdy5jb25zb2xlLmZpcmVidWcgfHwgKHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiAmJiB3aW5kb3cuY29uc29sZS50YWJsZSkpKSB8fFxuXHRcdC8vIElzIGZpcmVmb3ggPj0gdjMxP1xuXHRcdC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvV2ViX0NvbnNvbGUjU3R5bGluZ19tZXNzYWdlc1xuXHRcdCh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pICYmIHBhcnNlSW50KFJlZ0V4cC4kMSwgMTApID49IDMxKSB8fFxuXHRcdC8vIERvdWJsZSBjaGVjayB3ZWJraXQgaW4gdXNlckFnZW50IGp1c3QgaW4gY2FzZSB3ZSBhcmUgaW4gYSB3b3JrZXJcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XFwvKFxcZCspLykpO1xufVxuXG4vKipcbiAqIENvbG9yaXplIGxvZyBhcmd1bWVudHMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoYXJncykge1xuXHRhcmdzWzBdID0gKHRoaXMudXNlQ29sb3JzID8gJyVjJyA6ICcnKSArXG5cdFx0dGhpcy5uYW1lc3BhY2UgK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICcgJWMnIDogJyAnKSArXG5cdFx0YXJnc1swXSArXG5cdFx0KHRoaXMudXNlQ29sb3JzID8gJyVjICcgOiAnICcpICtcblx0XHQnKycgKyBtb2R1bGUuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpO1xuXG5cdGlmICghdGhpcy51c2VDb2xvcnMpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBjID0gJ2NvbG9yOiAnICsgdGhpcy5jb2xvcjtcblx0YXJncy5zcGxpY2UoMSwgMCwgYywgJ2NvbG9yOiBpbmhlcml0Jyk7XG5cblx0Ly8gVGhlIGZpbmFsIFwiJWNcIiBpcyBzb21ld2hhdCB0cmlja3ksIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgb3RoZXJcblx0Ly8gYXJndW1lbnRzIHBhc3NlZCBlaXRoZXIgYmVmb3JlIG9yIGFmdGVyIHRoZSAlYywgc28gd2UgbmVlZCB0b1xuXHQvLyBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGluZGV4IHRvIGluc2VydCB0aGUgQ1NTIGludG9cblx0bGV0IGluZGV4ID0gMDtcblx0bGV0IGxhc3RDID0gMDtcblx0YXJnc1swXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csIG1hdGNoID0+IHtcblx0XHRpZiAobWF0Y2ggPT09ICclJScpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aW5kZXgrKztcblx0XHRpZiAobWF0Y2ggPT09ICclYycpIHtcblx0XHRcdC8vIFdlIG9ubHkgYXJlIGludGVyZXN0ZWQgaW4gdGhlICpsYXN0KiAlY1xuXHRcdFx0Ly8gKHRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVkIHRoZWlyIG93bilcblx0XHRcdGxhc3RDID0gaW5kZXg7XG5cdFx0fVxuXHR9KTtcblxuXHRhcmdzLnNwbGljZShsYXN0QywgMCwgYyk7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5kZWJ1ZygpYCB3aGVuIGF2YWlsYWJsZS5cbiAqIE5vLW9wIHdoZW4gYGNvbnNvbGUuZGVidWdgIGlzIG5vdCBhIFwiZnVuY3Rpb25cIi5cbiAqIElmIGBjb25zb2xlLmRlYnVnYCBpcyBub3QgYXZhaWxhYmxlLCBmYWxscyBiYWNrXG4gKiB0byBgY29uc29sZS5sb2dgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbmV4cG9ydHMubG9nID0gY29uc29sZS5kZWJ1ZyB8fCBjb25zb2xlLmxvZyB8fCAoKCkgPT4ge30pO1xuXG4vKipcbiAqIFNhdmUgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG5cdHRyeSB7XG5cdFx0aWYgKG5hbWVzcGFjZXMpIHtcblx0XHRcdGV4cG9ydHMuc3RvcmFnZS5zZXRJdGVtKCdkZWJ1ZycsIG5hbWVzcGFjZXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2UucmVtb3ZlSXRlbSgnZGVidWcnKTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGxvYWQoKSB7XG5cdGxldCByO1xuXHR0cnkge1xuXHRcdHIgPSBleHBvcnRzLnN0b3JhZ2UuZ2V0SXRlbSgnZGVidWcnKTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cblxuXHQvLyBJZiBkZWJ1ZyBpc24ndCBzZXQgaW4gTFMsIGFuZCB3ZSdyZSBpbiBFbGVjdHJvbiwgdHJ5IHRvIGxvYWQgJERFQlVHXG5cdGlmICghciAmJiB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2VudicgaW4gcHJvY2Vzcykge1xuXHRcdHIgPSBwcm9jZXNzLmVudi5ERUJVRztcblx0fVxuXG5cdHJldHVybiByO1xufVxuXG4vKipcbiAqIExvY2Fsc3RvcmFnZSBhdHRlbXB0cyB0byByZXR1cm4gdGhlIGxvY2Fsc3RvcmFnZS5cbiAqXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNhZmFyaSB0aHJvd3NcbiAqIHdoZW4gYSB1c2VyIGRpc2FibGVzIGNvb2tpZXMvbG9jYWxzdG9yYWdlXG4gKiBhbmQgeW91IGF0dGVtcHQgdG8gYWNjZXNzIGl0LlxuICpcbiAqIEByZXR1cm4ge0xvY2FsU3RvcmFnZX1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGxvY2Fsc3RvcmFnZSgpIHtcblx0dHJ5IHtcblx0XHQvLyBUVk1MS2l0IChBcHBsZSBUViBKUyBSdW50aW1lKSBkb2VzIG5vdCBoYXZlIGEgd2luZG93IG9iamVjdCwganVzdCBsb2NhbFN0b3JhZ2UgaW4gdGhlIGdsb2JhbCBjb250ZXh0XG5cdFx0Ly8gVGhlIEJyb3dzZXIgYWxzbyBoYXMgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dC5cblx0XHRyZXR1cm4gbG9jYWxTdG9yYWdlO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY29tbW9uJykoZXhwb3J0cyk7XG5cbmNvbnN0IHtmb3JtYXR0ZXJzfSA9IG1vZHVsZS5leHBvcnRzO1xuXG4vKipcbiAqIE1hcCAlaiB0byBgSlNPTi5zdHJpbmdpZnkoKWAsIHNpbmNlIG5vIFdlYiBJbnNwZWN0b3JzIGRvIHRoYXQgYnkgZGVmYXVsdC5cbiAqL1xuXG5mb3JtYXR0ZXJzLmogPSBmdW5jdGlvbiAodikge1xuXHR0cnkge1xuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRyZXR1cm4gJ1tVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAnICsgZXJyb3IubWVzc2FnZTtcblx0fVxufTtcbiJdLCJuYW1lcyI6WyJleHBvcnRzIiwiZm9ybWF0QXJncyIsInNhdmUiLCJsb2FkIiwidXNlQ29sb3JzIiwic3RvcmFnZSIsImxvY2Fsc3RvcmFnZSIsImRlc3Ryb3kiLCJ3YXJuZWQiLCJjb25zb2xlIiwid2FybiIsImNvbG9ycyIsIndpbmRvdyIsInByb2Nlc3MiLCJ0eXBlIiwiX19ud2pzIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwidG9Mb3dlckNhc2UiLCJtYXRjaCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iiwic3R5bGUiLCJXZWJraXRBcHBlYXJhbmNlIiwiZmlyZWJ1ZyIsImV4Y2VwdGlvbiIsInRhYmxlIiwicGFyc2VJbnQiLCJSZWdFeHAiLCIkMSIsImFyZ3MiLCJuYW1lc3BhY2UiLCJtb2R1bGUiLCJodW1hbml6ZSIsImRpZmYiLCJjIiwiY29sb3IiLCJzcGxpY2UiLCJpbmRleCIsImxhc3RDIiwicmVwbGFjZSIsImxvZyIsImRlYnVnIiwibmFtZXNwYWNlcyIsInNldEl0ZW0iLCJyZW1vdmVJdGVtIiwiZXJyb3IiLCJyIiwiZ2V0SXRlbSIsImVudiIsIkRFQlVHIiwibG9jYWxTdG9yYWdlIiwicmVxdWlyZSIsImZvcm1hdHRlcnMiLCJqIiwidiIsIkpTT04iLCJzdHJpbmdpZnkiLCJtZXNzYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/debug/src/browser.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/debug/src/common.js":
-/*!**********************************************!*\
- !*** ../../node_modules/debug/src/common.js ***!
- \**********************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */ \nfunction setup(env) {\n createDebug.debug = createDebug;\n createDebug.default = createDebug;\n createDebug.coerce = coerce;\n createDebug.disable = disable;\n createDebug.enable = enable;\n createDebug.enabled = enabled;\n createDebug.humanize = __webpack_require__(/*! ms */ \"(ssr)/../../node_modules/ms/index.js\");\n createDebug.destroy = destroy;\n Object.keys(env).forEach((key)=>{\n createDebug[key] = env[key];\n });\n /**\n\t* The currently active debug mode names, and names to skip.\n\t*/ createDebug.names = [];\n createDebug.skips = [];\n /**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/ createDebug.formatters = {};\n /**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/ function selectColor(namespace) {\n let hash = 0;\n for(let i = 0; i < namespace.length; i++){\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n return createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n }\n createDebug.selectColor = selectColor;\n /**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/ function createDebug(namespace) {\n let prevTime;\n let enableOverride = null;\n let namespacesCache;\n let enabledCache;\n function debug(...args) {\n // Disabled?\n if (!debug.enabled) {\n return;\n }\n const self = debug;\n // Set `diff` timestamp\n const curr = Number(new Date());\n const ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n args[0] = createDebug.coerce(args[0]);\n if (typeof args[0] !== \"string\") {\n // Anything else let's inspect with %O\n args.unshift(\"%O\");\n }\n // Apply any `formatters` transformations\n let index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format)=>{\n // If we encounter an escaped % then don't increase the array index\n if (match === \"%%\") {\n return \"%\";\n }\n index++;\n const formatter = createDebug.formatters[format];\n if (typeof formatter === \"function\") {\n const val = args[index];\n match = formatter.call(self, val);\n // Now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n // Apply env-specific formatting (colors, etc.)\n createDebug.formatArgs.call(self, args);\n const logFn = self.log || createDebug.log;\n logFn.apply(self, args);\n }\n debug.namespace = namespace;\n debug.useColors = createDebug.useColors();\n debug.color = createDebug.selectColor(namespace);\n debug.extend = extend;\n debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n Object.defineProperty(debug, \"enabled\", {\n enumerable: true,\n configurable: false,\n get: ()=>{\n if (enableOverride !== null) {\n return enableOverride;\n }\n if (namespacesCache !== createDebug.namespaces) {\n namespacesCache = createDebug.namespaces;\n enabledCache = createDebug.enabled(namespace);\n }\n return enabledCache;\n },\n set: (v)=>{\n enableOverride = v;\n }\n });\n // Env-specific initialization logic for debug instances\n if (typeof createDebug.init === \"function\") {\n createDebug.init(debug);\n }\n return debug;\n }\n function extend(namespace, delimiter) {\n const newDebug = createDebug(this.namespace + (typeof delimiter === \"undefined\" ? \":\" : delimiter) + namespace);\n newDebug.log = this.log;\n return newDebug;\n }\n /**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/ function enable(namespaces) {\n createDebug.save(namespaces);\n createDebug.namespaces = namespaces;\n createDebug.names = [];\n createDebug.skips = [];\n let i;\n const split = (typeof namespaces === \"string\" ? namespaces : \"\").split(/[\\s,]+/);\n const len = split.length;\n for(i = 0; i < len; i++){\n if (!split[i]) {\n continue;\n }\n namespaces = split[i].replace(/\\*/g, \".*?\");\n if (namespaces[0] === \"-\") {\n createDebug.skips.push(new RegExp(\"^\" + namespaces.slice(1) + \"$\"));\n } else {\n createDebug.names.push(new RegExp(\"^\" + namespaces + \"$\"));\n }\n }\n }\n /**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/ function disable() {\n const namespaces = [\n ...createDebug.names.map(toNamespace),\n ...createDebug.skips.map(toNamespace).map((namespace)=>\"-\" + namespace)\n ].join(\",\");\n createDebug.enable(\"\");\n return namespaces;\n }\n /**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/ function enabled(name) {\n if (name[name.length - 1] === \"*\") {\n return true;\n }\n let i;\n let len;\n for(i = 0, len = createDebug.skips.length; i < len; i++){\n if (createDebug.skips[i].test(name)) {\n return false;\n }\n }\n for(i = 0, len = createDebug.names.length; i < len; i++){\n if (createDebug.names[i].test(name)) {\n return true;\n }\n }\n return false;\n }\n /**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/ function toNamespace(regexp) {\n return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\\.\\*\\?$/, \"*\");\n }\n /**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/ function coerce(val) {\n if (val instanceof Error) {\n return val.stack || val.message;\n }\n return val;\n }\n /**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/ function destroy() {\n console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\");\n }\n createDebug.enable(createDebug.load());\n return createDebug;\n}\nmodule.exports = setup;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9jb21tb24uanMiLCJtYXBwaW5ncyI6IkFBQ0E7OztDQUdDO0FBRUQsU0FBU0EsTUFBTUMsR0FBRztJQUNqQkMsWUFBWUMsS0FBSyxHQUFHRDtJQUNwQkEsWUFBWUUsT0FBTyxHQUFHRjtJQUN0QkEsWUFBWUcsTUFBTSxHQUFHQTtJQUNyQkgsWUFBWUksT0FBTyxHQUFHQTtJQUN0QkosWUFBWUssTUFBTSxHQUFHQTtJQUNyQkwsWUFBWU0sT0FBTyxHQUFHQTtJQUN0Qk4sWUFBWU8sUUFBUSxHQUFHQyxtQkFBT0EsQ0FBQztJQUMvQlIsWUFBWVMsT0FBTyxHQUFHQTtJQUV0QkMsT0FBT0MsSUFBSSxDQUFDWixLQUFLYSxPQUFPLENBQUNDLENBQUFBO1FBQ3hCYixXQUFXLENBQUNhLElBQUksR0FBR2QsR0FBRyxDQUFDYyxJQUFJO0lBQzVCO0lBRUE7O0NBRUEsR0FFQWIsWUFBWWMsS0FBSyxHQUFHLEVBQUU7SUFDdEJkLFlBQVllLEtBQUssR0FBRyxFQUFFO0lBRXRCOzs7O0NBSUEsR0FDQWYsWUFBWWdCLFVBQVUsR0FBRyxDQUFDO0lBRTFCOzs7OztDQUtBLEdBQ0EsU0FBU0MsWUFBWUMsU0FBUztRQUM3QixJQUFJQyxPQUFPO1FBRVgsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlGLFVBQVVHLE1BQU0sRUFBRUQsSUFBSztZQUMxQ0QsT0FBTyxDQUFFQSxRQUFRLEtBQUtBLE9BQVFELFVBQVVJLFVBQVUsQ0FBQ0Y7WUFDbkRELFFBQVEsR0FBRywyQkFBMkI7UUFDdkM7UUFFQSxPQUFPbkIsWUFBWXVCLE1BQU0sQ0FBQ0MsS0FBS0MsR0FBRyxDQUFDTixRQUFRbkIsWUFBWXVCLE1BQU0sQ0FBQ0YsTUFBTSxDQUFDO0lBQ3RFO0lBQ0FyQixZQUFZaUIsV0FBVyxHQUFHQTtJQUUxQjs7Ozs7O0NBTUEsR0FDQSxTQUFTakIsWUFBWWtCLFNBQVM7UUFDN0IsSUFBSVE7UUFDSixJQUFJQyxpQkFBaUI7UUFD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Q00sTUFBTSxFQUFFRCxJQUFJOEMsS0FBSzlDLElBQUs7WUFDekQsSUFBSXBCLFlBQVllLEtBQUssQ0FBQ0ssRUFBRSxDQUFDc0QsSUFBSSxDQUFDRCxPQUFPO2dCQUNwQyxPQUFPO1lBQ1I7UUFDRDtRQUVBLElBQUtyRCxJQUFJLEdBQUc4QyxNQUFNbEUsWUFBWWMsS0FBSyxDQUFDTyxNQUFNLEVBQUVELElBQUk4QyxLQUFLOUMsSUFBSztZQUN6RCxJQUFJcEIsWUFBWWMsS0FBSyxDQUFDTSxFQUFFLENBQUNzRCxJQUFJLENBQUNELE9BQU87Z0JBQ3BDLE9BQU87WUFDUjtRQUNEO1FBRUEsT0FBTztJQUNSO0lBRUE7Ozs7OztDQU1BLEdBQ0EsU0FBU0YsWUFBWUksTUFBTTtRQUMxQixPQUFPQSxPQUFPQyxRQUFRLEdBQ3BCQyxTQUFTLENBQUMsR0FBR0YsT0FBT0MsUUFBUSxHQUFHdkQsTUFBTSxHQUFHLEdBQ3hDbUIsT0FBTyxDQUFDLFdBQVc7SUFDdEI7SUFFQTs7Ozs7O0NBTUEsR0FDQSxTQUFTckMsT0FBT3lDLEdBQUc7UUFDbEIsSUFBSUEsZUFBZWtDLE9BQU87WUFDekIsT0FBT2xDLElBQUltQyxLQUFLLElBQUluQyxJQUFJb0MsT0FBTztRQUNoQztRQUNBLE9BQU9wQztJQUNSO0lBRUE7OztDQUdBLEdBQ0EsU0FBU25DO1FBQ1J3RSxRQUFRQyxJQUFJLENBQUM7SUFDZDtJQUVBbEYsWUFBWUssTUFBTSxDQUFDTCxZQUFZbUYsSUFBSTtJQUVuQyxPQUFPbkY7QUFDUjtBQUVBb0YsT0FBT0MsT0FBTyxHQUFHdkYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvY29tbW9uLmpzPzBmY2IiXSwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNvbW1vbiBsb2dpYyBmb3IgYm90aCB0aGUgTm9kZS5qcyBhbmQgd2ViIGJyb3dzZXJcbiAqIGltcGxlbWVudGF0aW9ucyBvZiBgZGVidWcoKWAuXG4gKi9cblxuZnVuY3Rpb24gc2V0dXAoZW52KSB7XG5cdGNyZWF0ZURlYnVnLmRlYnVnID0gY3JlYXRlRGVidWc7XG5cdGNyZWF0ZURlYnVnLmRlZmF1bHQgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuY29lcmNlID0gY29lcmNlO1xuXHRjcmVhdGVEZWJ1Zy5kaXNhYmxlID0gZGlzYWJsZTtcblx0Y3JlYXRlRGVidWcuZW5hYmxlID0gZW5hYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGVkID0gZW5hYmxlZDtcblx0Y3JlYXRlRGVidWcuaHVtYW5pemUgPSByZXF1aXJlKCdtcycpO1xuXHRjcmVhdGVEZWJ1Zy5kZXN0cm95ID0gZGVzdHJveTtcblxuXHRPYmplY3Qua2V5cyhlbnYpLmZvckVhY2goa2V5ID0+IHtcblx0XHRjcmVhdGVEZWJ1Z1trZXldID0gZW52W2tleV07XG5cdH0pO1xuXG5cdC8qKlxuXHQqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGRlYnVnIG1vZGUgbmFtZXMsIGFuZCBuYW1lcyB0byBza2lwLlxuXHQqL1xuXG5cdGNyZWF0ZURlYnVnLm5hbWVzID0gW107XG5cdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0LyoqXG5cdCogTWFwIG9mIHNwZWNpYWwgXCIlblwiIGhhbmRsaW5nIGZ1bmN0aW9ucywgZm9yIHRoZSBkZWJ1ZyBcImZvcm1hdFwiIGFyZ3VtZW50LlxuXHQqXG5cdCogVmFsaWQga2V5IG5hbWVzIGFyZSBhIHNpbmdsZSwgbG93ZXIgb3IgdXBwZXItY2FzZSBsZXR0ZXIsIGkuZS4gXCJuXCIgYW5kIFwiTlwiLlxuXHQqL1xuXHRjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzID0ge307XG5cblx0LyoqXG5cdCogU2VsZWN0cyBhIGNvbG9yIGZvciBhIGRlYnVnIG5hbWVzcGFjZVxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2UgVGhlIG5hbWVzcGFjZSBzdHJpbmcgZm9yIHRoZSBkZWJ1ZyBpbnN0YW5jZSB0byBiZSBjb2xvcmVkXG5cdCogQHJldHVybiB7TnVtYmVyfFN0cmluZ30gQW4gQU5TSSBjb2xvciBjb2RlIGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHNlbGVjdENvbG9yKG5hbWVzcGFjZSkge1xuXHRcdGxldCBoYXNoID0gMDtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXNwYWNlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBuYW1lc3BhY2UuY2hhckNvZGVBdChpKTtcblx0XHRcdGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNyZWF0ZURlYnVnLmNvbG9yc1tNYXRoLmFicyhoYXNoKSAlIGNyZWF0ZURlYnVnLmNvbG9ycy5sZW5ndGhdO1xuXHR9XG5cdGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yID0gc2VsZWN0Q29sb3I7XG5cblx0LyoqXG5cdCogQ3JlYXRlIGEgZGVidWdnZXIgd2l0aCB0aGUgZ2l2ZW4gYG5hbWVzcGFjZWAuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQHJldHVybiB7RnVuY3Rpb259XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gY3JlYXRlRGVidWcobmFtZXNwYWNlKSB7XG5cdFx0bGV0IHByZXZUaW1lO1xuXHRcdGxldCBlbmFibGVPdmVycmlkZSA9IG51bGw7XG5cdFx0bGV0IG5hbWVzcGFjZXNDYWNoZTtcblx0XHRsZXQgZW5hYmxlZENhY2hlO1xuXG5cdFx0ZnVuY3Rpb24gZGVidWcoLi4uYXJncykge1xuXHRcdFx0Ly8gRGlzYWJsZWQ/XG5cdFx0XHRpZiAoIWRlYnVnLmVuYWJsZWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBzZWxmID0gZGVidWc7XG5cblx0XHRcdC8vIFNldCBgZGlmZmAgdGltZXN0YW1wXG5cdFx0XHRjb25zdCBjdXJyID0gTnVtYmVyKG5ldyBEYXRlKCkpO1xuXHRcdFx0Y29uc3QgbXMgPSBjdXJyIC0gKHByZXZUaW1lIHx8IGN1cnIpO1xuXHRcdFx0c2VsZi5kaWZmID0gbXM7XG5cdFx0XHRzZWxmLnByZXYgPSBwcmV2VGltZTtcblx0XHRcdHNlbGYuY3VyciA9IGN1cnI7XG5cdFx0XHRwcmV2VGltZSA9IGN1cnI7XG5cblx0XHRcdGFyZ3NbMF0gPSBjcmVhdGVEZWJ1Zy5jb2VyY2UoYXJnc1swXSk7XG5cblx0XHRcdGlmICh0eXBlb2YgYXJnc1swXSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0Ly8gQW55dGhpbmcgZWxzZSBsZXQncyBpbnNwZWN0IHdpdGggJU9cblx0XHRcdFx0YXJncy51bnNoaWZ0KCclTycpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuXHRcdFx0bGV0IGluZGV4ID0gMDtcblx0XHRcdGFyZ3NbMF0gPSBhcmdzWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCAobWF0Y2gsIGZvcm1hdCkgPT4ge1xuXHRcdFx0XHQvLyBJZiB3ZSBlbmNvdW50ZXIgYW4gZXNjYXBlZCAlIHRoZW4gZG9uJ3QgaW5jcmVhc2UgdGhlIGFycmF5IGluZGV4XG5cdFx0XHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0XHRcdHJldHVybiAnJSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0aW5kZXgrKztcblx0XHRcdFx0Y29uc3QgZm9ybWF0dGVyID0gY3JlYXRlRGVidWcuZm9ybWF0dGVyc1tmb3JtYXRdO1xuXHRcdFx0XHRpZiAodHlwZW9mIGZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNvbnN0IHZhbCA9IGFyZ3NbaW5kZXhdO1xuXHRcdFx0XHRcdG1hdGNoID0gZm9ybWF0dGVyLmNhbGwoc2VsZiwgdmFsKTtcblxuXHRcdFx0XHRcdC8vIE5vdyB3ZSBuZWVkIHRvIHJlbW92ZSBgYXJnc1tpbmRleF1gIHNpbmNlIGl0J3MgaW5saW5lZCBpbiB0aGUgYGZvcm1hdGBcblx0XHRcdFx0XHRhcmdzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRcdFx0aW5kZXgtLTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gQXBwbHkgZW52LXNwZWNpZmljIGZvcm1hdHRpbmcgKGNvbG9ycywgZXRjLilcblx0XHRcdGNyZWF0ZURlYnVnLmZvcm1hdEFyZ3MuY2FsbChzZWxmLCBhcmdzKTtcblxuXHRcdFx0Y29uc3QgbG9nRm4gPSBzZWxmLmxvZyB8fCBjcmVhdGVEZWJ1Zy5sb2c7XG5cdFx0XHRsb2dGbi5hcHBseShzZWxmLCBhcmdzKTtcblx0XHR9XG5cblx0XHRkZWJ1Zy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG5cdFx0ZGVidWcudXNlQ29sb3JzID0gY3JlYXRlRGVidWcudXNlQ29sb3JzKCk7XG5cdFx0ZGVidWcuY29sb3IgPSBjcmVhdGVEZWJ1Zy5zZWxlY3RDb2xvcihuYW1lc3BhY2UpO1xuXHRcdGRlYnVnLmV4dGVuZCA9IGV4dGVuZDtcblx0XHRkZWJ1Zy5kZXN0cm95ID0gY3JlYXRlRGVidWcuZGVzdHJveTsgLy8gWFhYIFRlbXBvcmFyeS4gV2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuXG5cblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVidWcsICdlbmFibGVkJywge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG5cdFx0XHRnZXQ6ICgpID0+IHtcblx0XHRcdFx0aWYgKGVuYWJsZU92ZXJyaWRlICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVuYWJsZU92ZXJyaWRlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChuYW1lc3BhY2VzQ2FjaGUgIT09IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXMpIHtcblx0XHRcdFx0XHRuYW1lc3BhY2VzQ2FjaGUgPSBjcmVhdGVEZWJ1Zy5uYW1lc3BhY2VzO1xuXHRcdFx0XHRcdGVuYWJsZWRDYWNoZSA9IGNyZWF0ZURlYnVnLmVuYWJsZWQobmFtZXNwYWNlKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBlbmFibGVkQ2FjaGU7XG5cdFx0XHR9LFxuXHRcdFx0c2V0OiB2ID0+IHtcblx0XHRcdFx0ZW5hYmxlT3ZlcnJpZGUgPSB2O1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Ly8gRW52LXNwZWNpZmljIGluaXRpYWxpemF0aW9uIGxvZ2ljIGZvciBkZWJ1ZyBpbnN0YW5jZXNcblx0XHRpZiAodHlwZW9mIGNyZWF0ZURlYnVnLmluaXQgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGNyZWF0ZURlYnVnLmluaXQoZGVidWcpO1xuXHRcdH1cblxuXHRcdHJldHVybiBkZWJ1Zztcblx0fVxuXG5cdGZ1bmN0aW9uIGV4dGVuZChuYW1lc3BhY2UsIGRlbGltaXRlcikge1xuXHRcdGNvbnN0IG5ld0RlYnVnID0gY3JlYXRlRGVidWcodGhpcy5uYW1lc3BhY2UgKyAodHlwZW9mIGRlbGltaXRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnOicgOiBkZWxpbWl0ZXIpICsgbmFtZXNwYWNlKTtcblx0XHRuZXdEZWJ1Zy5sb2cgPSB0aGlzLmxvZztcblx0XHRyZXR1cm4gbmV3RGVidWc7XG5cdH1cblxuXHQvKipcblx0KiBFbmFibGVzIGEgZGVidWcgbW9kZSBieSBuYW1lc3BhY2VzLiBUaGlzIGNhbiBpbmNsdWRlIG1vZGVzXG5cdCogc2VwYXJhdGVkIGJ5IGEgY29sb24gYW5kIHdpbGRjYXJkcy5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZW5hYmxlKG5hbWVzcGFjZXMpIHtcblx0XHRjcmVhdGVEZWJ1Zy5zYXZlKG5hbWVzcGFjZXMpO1xuXHRcdGNyZWF0ZURlYnVnLm5hbWVzcGFjZXMgPSBuYW1lc3BhY2VzO1xuXG5cdFx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0XHRjcmVhdGVEZWJ1Zy5za2lwcyA9IFtdO1xuXG5cdFx0bGV0IGk7XG5cdFx0Y29uc3Qgc3BsaXQgPSAodHlwZW9mIG5hbWVzcGFjZXMgPT09ICdzdHJpbmcnID8gbmFtZXNwYWNlcyA6ICcnKS5zcGxpdCgvW1xccyxdKy8pO1xuXHRcdGNvbnN0IGxlbiA9IHNwbGl0Lmxlbmd0aDtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKCFzcGxpdFtpXSkge1xuXHRcdFx0XHQvLyBpZ25vcmUgZW1wdHkgc3RyaW5nc1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0bmFtZXNwYWNlcyA9IHNwbGl0W2ldLnJlcGxhY2UoL1xcKi9nLCAnLio/Jyk7XG5cblx0XHRcdGlmIChuYW1lc3BhY2VzWzBdID09PSAnLScpIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcuc2tpcHMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMuc2xpY2UoMSkgKyAnJCcpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNyZWF0ZURlYnVnLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzICsgJyQnKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG5cdCpcblx0KiBAcmV0dXJuIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBkaXNhYmxlKCkge1xuXHRcdGNvbnN0IG5hbWVzcGFjZXMgPSBbXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5uYW1lcy5tYXAodG9OYW1lc3BhY2UpLFxuXHRcdFx0Li4uY3JlYXRlRGVidWcuc2tpcHMubWFwKHRvTmFtZXNwYWNlKS5tYXAobmFtZXNwYWNlID0+ICctJyArIG5hbWVzcGFjZSlcblx0XHRdLmpvaW4oJywnKTtcblx0XHRjcmVhdGVEZWJ1Zy5lbmFibGUoJycpO1xuXHRcdHJldHVybiBuYW1lc3BhY2VzO1xuXHR9XG5cblx0LyoqXG5cdCogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVcblx0KiBAcmV0dXJuIHtCb29sZWFufVxuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGVuYWJsZWQobmFtZSkge1xuXHRcdGlmIChuYW1lW25hbWUubGVuZ3RoIC0gMV0gPT09ICcqJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0bGV0IGk7XG5cdFx0bGV0IGxlbjtcblxuXHRcdGZvciAoaSA9IDAsIGxlbiA9IGNyZWF0ZURlYnVnLnNraXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoY3JlYXRlRGVidWcuc2tpcHNbaV0udGVzdChuYW1lKSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcubmFtZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5uYW1lc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQqIENvbnZlcnQgcmVnZXhwIHRvIG5hbWVzcGFjZVxuXHQqXG5cdCogQHBhcmFtIHtSZWdFeHB9IHJlZ3hlcFxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHRvTmFtZXNwYWNlKHJlZ2V4cCkge1xuXHRcdHJldHVybiByZWdleHAudG9TdHJpbmcoKVxuXHRcdFx0LnN1YnN0cmluZygyLCByZWdleHAudG9TdHJpbmcoKS5sZW5ndGggLSAyKVxuXHRcdFx0LnJlcGxhY2UoL1xcLlxcKlxcPyQvLCAnKicpO1xuXHR9XG5cblx0LyoqXG5cdCogQ29lcmNlIGB2YWxgLlxuXHQqXG5cdCogQHBhcmFtIHtNaXhlZH0gdmFsXG5cdCogQHJldHVybiB7TWl4ZWR9XG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcblx0XHRpZiAodmFsIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdHJldHVybiB2YWwuc3RhY2sgfHwgdmFsLm1lc3NhZ2U7XG5cdFx0fVxuXHRcdHJldHVybiB2YWw7XG5cdH1cblxuXHQvKipcblx0KiBYWFggRE8gTk9UIFVTRS4gVGhpcyBpcyBhIHRlbXBvcmFyeSBzdHViIGZ1bmN0aW9uLlxuXHQqIFhYWCBJdCBXSUxMIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblx0Ki9cblx0ZnVuY3Rpb24gZGVzdHJveSgpIHtcblx0XHRjb25zb2xlLndhcm4oJ0luc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4nKTtcblx0fVxuXG5cdGNyZWF0ZURlYnVnLmVuYWJsZShjcmVhdGVEZWJ1Zy5sb2FkKCkpO1xuXG5cdHJldHVybiBjcmVhdGVEZWJ1Zztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXR1cDtcbiJdLCJuYW1lcyI6WyJzZXR1cCIsImVudiIsImNyZWF0ZURlYnVnIiwiZGVidWciLCJkZWZhdWx0IiwiY29lcmNlIiwiZGlzYWJsZSIsImVuYWJsZSIsImVuYWJsZWQiLCJodW1hbml6ZSIsInJlcXVpcmUiLCJkZXN0cm95IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJuYW1lcyIsInNraXBzIiwiZm9ybWF0dGVycyIsInNlbGVjdENvbG9yIiwibmFtZXNwYWNlIiwiaGFzaCIsImkiLCJsZW5ndGgiLCJjaGFyQ29kZUF0IiwiY29sb3JzIiwiTWF0aCIsImFicyIsInByZXZUaW1lIiwiZW5hYmxlT3ZlcnJpZGUiLCJuYW1lc3BhY2VzQ2FjaGUiLCJlbmFibGVkQ2FjaGUiLCJhcmdzIiwic2VsZiIsImN1cnIiLCJOdW1iZXIiLCJEYXRlIiwibXMiLCJkaWZmIiwicHJldiIsInVuc2hpZnQiLCJpbmRleCIsInJlcGxhY2UiLCJtYXRjaCIsImZvcm1hdCIsImZvcm1hdHRlciIsInZhbCIsImNhbGwiLCJzcGxpY2UiLCJmb3JtYXRBcmdzIiwibG9nRm4iLCJsb2ciLCJhcHBseSIsInVzZUNvbG9ycyIsImNvbG9yIiwiZXh0ZW5kIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwiZ2V0IiwibmFtZXNwYWNlcyIsInNldCIsInYiLCJpbml0IiwiZGVsaW1pdGVyIiwibmV3RGVidWciLCJzYXZlIiwic3BsaXQiLCJsZW4iLCJwdXNoIiwiUmVnRXhwIiwic2xpY2UiLCJtYXAiLCJ0b05hbWVzcGFjZSIsImpvaW4iLCJuYW1lIiwidGVzdCIsInJlZ2V4cCIsInRvU3RyaW5nIiwic3Vic3RyaW5nIiwiRXJyb3IiLCJzdGFjayIsIm1lc3NhZ2UiLCJjb25zb2xlIiwid2FybiIsImxvYWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/debug/src/common.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/inline-style-parser/index.js":
-/*!*******************************************************!*\
- !*** ../../node_modules/inline-style-parser/index.js ***!
- \*******************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\n\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n// strings\nvar NEWLINE = \"\\n\";\nvar FORWARD_SLASH = \"/\";\nvar ASTERISK = \"*\";\nvar EMPTY_STRING = \"\";\n// types\nvar TYPE_COMMENT = \"comment\";\nvar TYPE_DECLARATION = \"declaration\";\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */ module.exports = function(style, options) {\n if (typeof style !== \"string\") {\n throw new TypeError(\"First argument must be a string\");\n }\n if (!style) return [];\n options = options || {};\n /**\n * Positional.\n */ var lineno = 1;\n var column = 1;\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */ function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */ function position() {\n var start = {\n line: lineno,\n column: column\n };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */ function Position(start) {\n this.start = start;\n this.end = {\n line: lineno,\n column: column\n };\n this.source = options.source;\n }\n /**\n * Non-enumerable source string.\n */ Position.prototype.content = style;\n var errorsList = [];\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */ function error(msg) {\n var err = new Error(options.source + \":\" + lineno + \":\" + column + \": \" + msg);\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */ function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n /**\n * Parse whitespace.\n */ function whitespace() {\n match(WHITESPACE_REGEX);\n }\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */ function comments(rules) {\n var c;\n rules = rules || [];\n while(c = comment()){\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */ function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n var i = 2;\n while(EMPTY_STRING != style.charAt(i) && (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))){\n ++i;\n }\n i += 2;\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error(\"End of comment missing\");\n }\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */ function declaration() {\n var pos = position();\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n // val\n var val = match(VALUE_REGEX);\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING)) : EMPTY_STRING\n });\n // ;\n match(SEMICOLON_REGEX);\n return ret;\n }\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */ function declarations() {\n var decls = [];\n comments(decls);\n // declarations\n var decl;\n while(decl = declaration()){\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n return decls;\n }\n whitespace();\n return declarations();\n};\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */ function trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2lubGluZS1zdHlsZS1wYXJzZXIvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLHlFQUF5RTs7QUFDekUsSUFBSUEsZ0JBQWdCO0FBRXBCLElBQUlDLGdCQUFnQjtBQUNwQixJQUFJQyxtQkFBbUI7QUFFdkIsY0FBYztBQUNkLElBQUlDLGlCQUFpQjtBQUNyQixJQUFJQyxjQUFjO0FBQ2xCLElBQUlDLGNBQWM7QUFDbEIsSUFBSUMsa0JBQWtCO0FBRXRCLGtHQUFrRztBQUNsRyxJQUFJQyxhQUFhO0FBRWpCLFVBQVU7QUFDVixJQUFJQyxVQUFVO0FBQ2QsSUFBSUMsZ0JBQWdCO0FBQ3BCLElBQUlDLFdBQVc7QUFDZixJQUFJQyxlQUFlO0FBRW5CLFFBQVE7QUFDUixJQUFJQyxlQUFlO0FBQ25CLElBQUlDLG1CQUFtQjtBQUV2Qjs7Ozs7O0NBTUMsR0FDREMsT0FBT0MsT0FBTyxHQUFHLFNBQVVDLEtBQUssRUFBRUMsT0FBTztJQUN2QyxJQUFJLE9BQU9ELFVBQVUsVUFBVTtRQUM3QixNQUFNLElBQUlFLFVBQVU7SUFDdEI7SUFFQSxJQUFJLENBQUNGLE9BQU8sT0FBTyxFQUFFO0lBRXJCQyxVQUFVQSxXQUFXLENBQUM7SUFFdEI7O0dBRUMsR0FDRCxJQUFJRSxTQUFTO0lBQ2IsSUFBSUMsU0FBUztJQUViOzs7O0dBSUMsR0FDRCxTQUFTQyxlQUFlQyxHQUFHO1FBQ3pCLElBQUlDLFFBQVFELElBQUlFLEtBQUssQ0FBQ3ZCO1FBQ3RCLElBQUlzQixPQUFPSixVQUFVSSxNQUFNRSxNQUFNO1FBQ2pDLElBQUlDLElBQUlKLElBQUlLLFdBQVcsQ0FBQ25CO1FBQ3hCWSxTQUFTLENBQUNNLElBQUlKLElBQUlHLE1BQU0sR0FBR0MsSUFBSU4sU0FBU0UsSUFBSUcsTUFBTTtJQUNwRDtJQUVBOzs7O0dBSUMsR0FDRCxTQUFTRztRQUNQLElBQUlDLFFBQVE7WUFBRUMsTUFBTVg7WUFBUUMsUUFBUUE7UUFB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TUFBTU4sSUFBSTtZQUNaRSxNQUFNNUM7WUFDTmlELFVBQVVDLEtBQUtKLElBQUksQ0FBQyxFQUFFLENBQUNLLE9BQU8sQ0FBQ2hFLGVBQWVXO1lBQzlDc0QsT0FBT0wsTUFDSEcsS0FBS0gsR0FBRyxDQUFDLEVBQUUsQ0FBQ0ksT0FBTyxDQUFDaEUsZUFBZVcsaUJBQ25DQTtRQUNOO1FBRUEsSUFBSTtRQUNKYSxNQUFNbEI7UUFFTixPQUFPdUQ7SUFDVDtJQUVBOzs7O0dBSUMsR0FDRCxTQUFTSztRQUNQLElBQUlDLFFBQVEsRUFBRTtRQUVkaEIsU0FBU2dCO1FBRVQsZUFBZTtRQUNmLElBQUlDO1FBQ0osTUFBUUEsT0FBT1YsY0FBZ0I7WUFDN0IsSUFBSVUsU0FBUyxPQUFPO2dCQUNsQkQsTUFBTXJCLElBQUksQ0FBQ3NCO2dCQUNYakIsU0FBU2dCO1lBQ1g7UUFDRjtRQUVBLE9BQU9BO0lBQ1Q7SUFFQWxDO0lBQ0EsT0FBT2lDO0FBQ1Q7QUFFQTs7Ozs7Q0FLQyxHQUNELFNBQVNILEtBQUt6QyxHQUFHO0lBQ2YsT0FBT0EsTUFBTUEsSUFBSTBDLE9BQU8sQ0FBQ3pELFlBQVlJLGdCQUFnQkE7QUFDdkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9pbmxpbmUtc3R5bGUtcGFyc2VyL2luZGV4LmpzPzgwNTMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvZ3JhbW1hci5odG1sXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdmlzaW9ubWVkaWEvY3NzLXBhcnNlL3B1bGwvNDkjaXNzdWVjb21tZW50LTMwMDg4MDI3XG52YXIgQ09NTUVOVF9SRUdFWCA9IC9cXC9cXCpbXipdKlxcKisoW14vKl1bXipdKlxcKispKlxcLy9nO1xuXG52YXIgTkVXTElORV9SRUdFWCA9IC9cXG4vZztcbnZhciBXSElURVNQQUNFX1JFR0VYID0gL15cXHMqLztcblxuLy8gZGVjbGFyYXRpb25cbnZhciBQUk9QRVJUWV9SRUdFWCA9IC9eKFxcKj9bLSMvKlxcXFxcXHddKyhcXFtbMC05YS16Xy1dK1xcXSk/KVxccyovO1xudmFyIENPTE9OX1JFR0VYID0gL146XFxzKi87XG52YXIgVkFMVUVfUkVHRVggPSAvXigoPzonKD86XFxcXCd8LikqPyd8XCIoPzpcXFxcXCJ8LikqP1wifFxcKFteKV0qP1xcKXxbXn07XSkrKS87XG52YXIgU0VNSUNPTE9OX1JFR0VYID0gL15bO1xcc10qLztcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvU3RyaW5nL1RyaW0jUG9seWZpbGxcbnZhciBUUklNX1JFR0VYID0gL15cXHMrfFxccyskL2c7XG5cbi8vIHN0cmluZ3NcbnZhciBORVdMSU5FID0gJ1xcbic7XG52YXIgRk9SV0FSRF9TTEFTSCA9ICcvJztcbnZhciBBU1RFUklTSyA9ICcqJztcbnZhciBFTVBUWV9TVFJJTkcgPSAnJztcblxuLy8gdHlwZXNcbnZhciBUWVBFX0NPTU1FTlQgPSAnY29tbWVudCc7XG52YXIgVFlQRV9ERUNMQVJBVElPTiA9ICdkZWNsYXJhdGlvbic7XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0eWxlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdXG4gKiBAcmV0dXJuIHtPYmplY3RbXX1cbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn1cbiAqIEB0aHJvd3Mge0Vycm9yfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChzdHlsZSwgb3B0aW9ucykge1xuICBpZiAodHlwZW9mIHN0eWxlICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIGlmICghc3R5bGUpIHJldHVybiBbXTtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAvKipcbiAgICogUG9zaXRpb25hbC5cbiAgICovXG4gIHZhciBsaW5lbm8gPSAxO1xuICB2YXIgY29sdW1uID0gMTtcblxuICAvKipcbiAgICogVXBkYXRlIGxpbmVubyBhbmQgY29sdW1uIGJhc2VkIG9uIGBzdHJgLlxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVQb3NpdGlvbihzdHIpIHtcbiAgICB2YXIgbGluZXMgPSBzdHIubWF0Y2goTkVXTElORV9SRUdFWCk7XG4gICAgaWYgKGxpbmVzKSBsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgIHZhciBpID0gc3RyLmxhc3RJbmRleE9mKE5FV0xJTkUpO1xuICAgIGNvbHVtbiA9IH5pID8gc3RyLmxlbmd0aCAtIGkgOiBjb2x1bW4gKyBzdHIubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgcG9zaXRpb24gYW5kIHBhdGNoIGBub2RlLnBvc2l0aW9uYC5cbiAgICpcbiAgICogQHJldHVybiB7RnVuY3Rpb259XG4gICAqL1xuICBmdW5jdGlvbiBwb3NpdGlvbigpIHtcbiAgICB2YXIgc3RhcnQgPSB7IGxpbmU6IGxpbmVubywgY29sdW1uOiBjb2x1bW4gfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIG5vZGUucG9zaXRpb24gPSBuZXcgUG9zaXRpb24oc3RhcnQpO1xuICAgICAgd2hpdGVzcGFjZSgpO1xuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZSBwb3NpdGlvbiBpbmZvcm1hdGlvbiBmb3IgYSBub2RlLlxuICAgKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHByb3BlcnR5IHtPYmplY3R9IHN0YXJ0XG4gICAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBlbmRcbiAgICogQHByb3BlcnR5IHt1bmRlZmluZWR8U3RyaW5nfSBzb3VyY2VcbiAgICovXG4gIGZ1bmN0aW9uIFBvc2l0aW9uKHN0YXJ0KSB7XG4gICAgdGhpcy5zdGFydCA9IHN0YXJ0O1xuICAgIHRoaXMuZW5kID0geyBsaW5lOiBsaW5lbm8sIGNvbHVtbjogY29sdW1uIH07XG4gICAgdGhpcy5zb3VyY2UgPSBvcHRpb25zLnNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb24tZW51bWVyYWJsZSBzb3VyY2Ugc3RyaW5nLlxuICAgKi9cbiAgUG9zaXRpb24ucHJvdG90eXBlLmNvbnRlbnQgPSBzdHlsZTtcblxuICB2YXIgZXJyb3JzTGlzdCA9IFtdO1xuXG4gIC8qKlxuICAgKiBFcnJvciBgbXNnYC5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1zZ1xuICAgKiBAdGhyb3dzIHtFcnJvcn1cbiAgICovXG4gIGZ1bmN0aW9uIGVycm9yKG1zZykge1xuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICBvcHRpb25zLnNvdXJjZSArICc6JyArIGxpbmVubyArICc6JyArIGNvbHVtbiArICc6ICcgKyBtc2dcbiAgICApO1xuICAgIGVyci5yZWFzb24gPSBtc2c7XG4gICAgZXJyLmZpbGVuYW1lID0gb3B0aW9ucy5zb3VyY2U7XG4gICAgZXJyLmxpbmUgPSBsaW5lbm87XG4gICAgZXJyLmNvbHVtbiA9IGNvbHVtbjtcbiAgICBlcnIuc291cmNlID0gc3R5bGU7XG5cbiAgICBpZiAob3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGVycm9yc0xpc3QucHVzaChlcnIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoIGByZWAgYW5kIHJldHVybiBjYXB0dXJlcy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWdFeHB9IHJlXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZHxBcnJheX1cbiAgICovXG4gIGZ1bmN0aW9uIG1hdGNoKHJlKSB7XG4gICAgdmFyIG0gPSByZS5leGVjKHN0eWxlKTtcbiAgICBpZiAoIW0pIHJldHVybjtcbiAgICB2YXIgc3RyID0gbVswXTtcbiAgICB1cGRhdGVQb3NpdGlvbihzdHIpO1xuICAgIHN0eWxlID0gc3R5bGUuc2xpY2Uoc3RyLmxlbmd0aCk7XG4gICAgcmV0dXJuIG07XG4gIH1cblxuICAvKipcbiAgICogUGFyc2Ugd2hpdGVzcGFjZS5cbiAgICovXG4gIGZ1bmN0aW9uIHdoaXRlc3BhY2UoKSB7XG4gICAgbWF0Y2goV0hJVEVTUEFDRV9SRUdFWCk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgY29tbWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0W119IFtydWxlc11cbiAgICogQHJldHVybiB7T2JqZWN0W119XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50cyhydWxlcykge1xuICAgIHZhciBjO1xuICAgIHJ1bGVzID0gcnVsZXMgfHwgW107XG4gICAgd2hpbGUgKChjID0gY29tbWVudCgpKSkge1xuICAgICAgaWYgKGMgIT09IGZhbHNlKSB7XG4gICAgICAgIHJ1bGVzLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBjb21tZW50LlxuICAgKlxuICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAqIEB0aHJvd3Mge0Vycm9yfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tbWVudCgpIHtcbiAgICB2YXIgcG9zID0gcG9zaXRpb24oKTtcbiAgICBpZiAoRk9SV0FSRF9TTEFTSCAhPSBzdHlsZS5jaGFyQXQoMCkgfHwgQVNURVJJU0sgIT0gc3R5bGUuY2hhckF0KDEpKSByZXR1cm47XG5cbiAgICB2YXIgaSA9IDI7XG4gICAgd2hpbGUgKFxuICAgICAgRU1QVFlfU1RSSU5HICE9IHN0eWxlLmNoYXJBdChpKSAmJlxuICAgICAgKEFTVEVSSVNLICE9IHN0eWxlLmNoYXJBdChpKSB8fCBGT1JXQVJEX1NMQVNIICE9IHN0eWxlLmNoYXJBdChpICsgMSkpXG4gICAgKSB7XG4gICAgICArK2k7XG4gICAgfVxuICAgIGkgKz0gMjtcblxuICAgIGlmIChFTVBUWV9TVFJJTkcgPT09IHN0eWxlLmNoYXJBdChpIC0gMSkpIHtcbiAgICAgIHJldHVybiBlcnJvcignRW5kIG9mIGNvbW1lbnQgbWlzc2luZycpO1xuICAgIH1cblxuICAgIHZhciBzdHIgPSBzdHlsZS5zbGljZSgyLCBpIC0gMik7XG4gICAgY29sdW1uICs9IDI7XG4gICAgdXBkYXRlUG9zaXRpb24oc3RyKTtcbiAgICBzdHlsZSA9IHN0eWxlLnNsaWNlKGkpO1xuICAgIGNvbHVtbiArPSAyO1xuXG4gICAgcmV0dXJuIHBvcyh7XG4gICAgICB0eXBlOiBUWVBFX0NPTU1FTlQsXG4gICAgICBjb21tZW50OiBzdHJcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBkZWNsYXJhdGlvbi5cbiAgICpcbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKiBAdGhyb3dzIHtFcnJvcn1cbiAgICovXG4gIGZ1bmN0aW9uIGRlY2xhcmF0aW9uKCkge1xuICAgIHZhciBwb3MgPSBwb3NpdGlvbigpO1xuXG4gICAgLy8gcHJvcFxuICAgIHZhciBwcm9wID0gbWF0Y2goUFJPUEVSVFlfUkVHRVgpO1xuICAgIGlmICghcHJvcCkgcmV0dXJuO1xuICAgIGNvbW1lbnQoKTtcblxuICAgIC8vIDpcbiAgICBpZiAoIW1hdGNoKENPTE9OX1JFR0VYKSkgcmV0dXJuIGVycm9yKFwicHJvcGVydHkgbWlzc2luZyAnOidcIik7XG5cbiAgICAvLyB2YWxcbiAgICB2YXIgdmFsID0gbWF0Y2goVkFMVUVfUkVHRVgpO1xuXG4gICAgdmFyIHJldCA9IHBvcyh7XG4gICAgICB0eXBlOiBUWVBFX0RFQ0xBUkFUSU9OLFxuICAgICAgcHJvcGVydHk6IHRyaW0ocHJvcFswXS5yZXBsYWNlKENPTU1FTlRfUkVHRVgsIEVNUFRZX1NUUklORykpLFxuICAgICAgdmFsdWU6IHZhbFxuICAgICAgICA/IHRyaW0odmFsWzBdLnJlcGxhY2UoQ09NTUVOVF9SRUdFWCwgRU1QVFlfU1RSSU5HKSlcbiAgICAgICAgOiBFTVBUWV9TVFJJTkdcbiAgICB9KTtcblxuICAgIC8vIDtcbiAgICBtYXRjaChTRU1JQ09MT05fUkVHRVgpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBkZWNsYXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm4ge09iamVjdFtdfVxuICAgKi9cbiAgZnVuY3Rpb24gZGVjbGFyYXRpb25zKCkge1xuICAgIHZhciBkZWNscyA9IFtdO1xuXG4gICAgY29tbWVudHMoZGVjbHMpO1xuXG4gICAgLy8gZGVjbGFyYXRpb25zXG4gICAgdmFyIGRlY2w7XG4gICAgd2hpbGUgKChkZWNsID0gZGVjbGFyYXRpb24oKSkpIHtcbiAgICAgIGlmIChkZWNsICE9PSBmYWxzZSkge1xuICAgICAgICBkZWNscy5wdXNoKGRlY2wpO1xuICAgICAgICBjb21tZW50cyhkZWNscyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlY2xzO1xuICB9XG5cbiAgd2hpdGVzcGFjZSgpO1xuICByZXR1cm4gZGVjbGFyYXRpb25zKCk7XG59O1xuXG4vKipcbiAqIFRyaW0gYHN0cmAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiB0cmltKHN0cikge1xuICByZXR1cm4gc3RyID8gc3RyLnJlcGxhY2UoVFJJTV9SRUdFWCwgRU1QVFlfU1RSSU5HKSA6IEVNUFRZX1NUUklORztcbn1cbiJdLCJuYW1lcyI6WyJDT01NRU5UX1JFR0VYIiwiTkVXTElORV9SRUdFWCIsIldISVRFU1BBQ0VfUkVHRVgiLCJQUk9QRVJUWV9SRUdFWCIsIkNPTE9OX1JFR0VYIiwiVkFMVUVfUkVHRVgiLCJTRU1JQ09MT05fUkVHRVgiLCJUUklNX1JFR0VYIiwiTkVXTElORSIsIkZPUldBUkRfU0xBU0giLCJBU1RFUklTSyIsIkVNUFRZX1NUUklORyIsIlRZUEVfQ09NTUVOVCIsIlRZUEVfREVDTEFSQVRJT04iLCJtb2R1bGUiLCJleHBvcnRzIiwic3R5bGUiLCJvcHRpb25zIiwiVHlwZUVycm9yIiwibGluZW5vIiwiY29sdW1uIiwidXBkYXRlUG9zaXRpb24iLCJzdHIiLCJsaW5lcyIsIm1hdGNoIiwibGVuZ3RoIiwiaSIsImxhc3RJbmRleE9mIiwicG9zaXRpb24iLCJzdGFydCIsImxpbmUiLCJub2RlIiwiUG9zaXRpb24iLCJ3aGl0ZXNwYWNlIiwiZW5kIiwic291cmNlIiwicHJvdG90eXBlIiwiY29udGVudCIsImVycm9yc0xpc3QiLCJlcnJvciIsIm1zZyIsImVyciIsIkVycm9yIiwicmVhc29uIiwiZmlsZW5hbWUiLCJzaWxlbnQiLCJwdXNoIiwicmUiLCJtIiwiZXhlYyIsInNsaWNlIiwiY29tbWVudHMiLCJydWxlcyIsImMiLCJjb21tZW50IiwicG9zIiwiY2hhckF0IiwidHlwZSIsImRlY2xhcmF0aW9uIiwicHJvcCIsInZhbCIsInJldCIsInByb3BlcnR5IiwidHJpbSIsInJlcGxhY2UiLCJ2YWx1ZSIsImRlY2xhcmF0aW9ucyIsImRlY2xzIiwiZGVjbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/inline-style-parser/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/ms/index.js":
-/*!**************************************!*\
- !*** ../../node_modules/ms/index.js ***!
- \**************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("/**\n * Helpers.\n */ \nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */ module.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === \"string\" && val.length > 0) {\n return parse(val);\n } else if (type === \"number\" && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\"val is not a non-empty string or a valid number. val=\" + JSON.stringify(val));\n};\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */ function parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || \"ms\").toLowerCase();\n switch(type){\n case \"years\":\n case \"year\":\n case \"yrs\":\n case \"yr\":\n case \"y\":\n return n * y;\n case \"weeks\":\n case \"week\":\n case \"w\":\n return n * w;\n case \"days\":\n case \"day\":\n case \"d\":\n return n * d;\n case \"hours\":\n case \"hour\":\n case \"hrs\":\n case \"hr\":\n case \"h\":\n return n * h;\n case \"minutes\":\n case \"minute\":\n case \"mins\":\n case \"min\":\n case \"m\":\n return n * m;\n case \"seconds\":\n case \"second\":\n case \"secs\":\n case \"sec\":\n case \"s\":\n return n * s;\n case \"milliseconds\":\n case \"millisecond\":\n case \"msecs\":\n case \"msec\":\n case \"ms\":\n return n;\n default:\n return undefined;\n }\n}\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */ function fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + \"d\";\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + \"h\";\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + \"m\";\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + \"s\";\n }\n return ms + \"ms\";\n}\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */ function fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, \"day\");\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, \"hour\");\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, \"minute\");\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, \"second\");\n }\n return ms + \" ms\";\n}\n/**\n * Pluralization helper.\n */ function plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + \" \" + name + (isPlural ? \"s\" : \"\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21zL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBOztDQUVDO0FBRUQsSUFBSUEsSUFBSTtBQUNSLElBQUlDLElBQUlELElBQUk7QUFDWixJQUFJRSxJQUFJRCxJQUFJO0FBQ1osSUFBSUUsSUFBSUQsSUFBSTtBQUNaLElBQUlFLElBQUlELElBQUk7QUFDWixJQUFJRSxJQUFJRixJQUFJO0FBRVo7Ozs7Ozs7Ozs7OztDQVlDLEdBRURHLE9BQU9DLE9BQU8sR0FBRyxTQUFTQyxHQUFHLEVBQUVDLE9BQU87SUFDcENBLFVBQVVBLFdBQVcsQ0FBQztJQUN0QixJQUFJQyxPQUFPLE9BQU9GO0lBQ2xCLElBQUlFLFNBQVMsWUFBWUYsSUFBSUcsTUFBTSxHQUFHLEdBQUc7UUFDdkMsT0FBT0MsTUFBTUo7SUFDZixPQUFPLElBQUlFLFNBQVMsWUFBWUcsU0FBU0wsTUFBTTtRQUM3QyxPQUFPQyxRQUFRSyxJQUFJLEdBQUdDLFFBQVFQLE9BQU9RLFNBQVNSO0lBQ2hEO0lBQ0EsTUFBTSxJQUFJUyxNQUNSLDBEQUNFQyxLQUFLQyxTQUFTLENBQUNYO0FBRXJCO0FBRUE7Ozs7OztDQU1DLEdBRUQsU0FBU0ksTUFBTVEsR0FBRztJQUNoQkEsTUFBTUMsT0FBT0Q7SUFDYixJQUFJQSxJQUFJVCxNQUFNLEdBQUcsS0FBSztRQUNwQjtJQUNGO0lBQ0EsSUFBSVcsUUFBUSxtSUFBbUlDLElBQUksQ0FDakpIO0lBRUYsSUFBSSxDQUFDRSxPQUFPO1FBQ1Y7SUFDRjtJQUNBLElBQUlFLElBQUlDLFdBQVdILEtBQUssQ0FBQyxFQUFFO0lBQzNCLElBQUlaLE9BQU8sQ0FBQ1ksS0FBSyxDQUFDLEVBQUUsSUFBSSxJQUFHLEVBQUdJLFdBQVc7SUFDekMsT0FBUWhCO1FBQ04sS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7WUFDSCxPQUFPYyxJQUFJbkI7UUFDYixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7WUFDSCxPQUFPbUIsSUFBSXBCO1FBQ2IsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1lBQ0gsT0FBT29CLElBQUlyQjtRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1lBQ0gsT0FBT3FCLElBQUl0QjtRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1lBQ0gsT0FBT3NCLElBQUl2QjtRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1lBQ0gsT0FBT3VCLElBQUl4QjtRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1lBQ0gsT0FBT3dCO1FBQ1Q7WUFDRSxPQUFPRztJQUNYO0FBQ0Y7QUFFQTs7Ozs7O0NBTUMsR0FFRCxTQUFTWCxTQUFTWSxFQUFFO0lBQ2xCLElBQUlDLFFBQVFDLEtBQUtDLEdBQUcsQ0FBQ0g7SUFDckIsSUFBSUMsU0FBUzFCLEdBQUc7UUFDZCxPQUFPMkIsS0FBS0UsS0FBSyxDQUFDSixLQUFLekIsS0FBSztJQUM5QjtJQUNBLElBQUkwQixTQUFTM0IsR0FBRztRQUNkLE9BQU80QixLQUFLRSxLQUFLLENBQUNKLEtBQUsxQixLQUFLO0lBQzlCO0lBQ0EsSUFBSTJCLFNBQVM1QixHQUFHO1FBQ2QsT0FBTzZCLEtBQUtFLEtBQUssQ0FBQ0osS0FBSzNCLEtBQUs7SUFDOUI7SUFDQSxJQUFJNEIsU0FBUzdCLEdBQUc7UUFDZCxPQUFPOEIsS0FBS0UsS0FBSyxDQUFDSixLQUFLNUIsS0FBSztJQUM5QjtJQUNBLE9BQU80QixLQUFLO0FBQ2Q7QUFFQTs7Ozs7O0NBTUMsR0FFRCxTQUFTYixRQUFRYSxFQUFFO0lBQ2pCLElBQUlDLFFBQVFDLEtBQUtDLEdBQUcsQ0FBQ0g7SUFDckIsSUFBSUMsU0FBUzFCLEdBQUc7UUFDZCxPQUFPOEIsT0FBT0wsSUFBSUMsT0FBTzFCLEdBQUc7SUFDOUI7SUFDQSxJQUFJMEIsU0FBUzNCLEdBQUc7UUFDZCxPQUFPK0IsT0FBT0wsSUFBSUMsT0FBTzNCLEdBQUc7SUFDOUI7SUFDQSxJQUFJMkIsU0FBUzVCLEdBQUc7UUFDZCxPQUFPZ0MsT0FBT0wsSUFBSUMsT0FBTzVCLEdBQUc7SUFDOUI7SUFDQSxJQUFJNEIsU0FBUzdCLEdBQUc7UUFDZCxPQUFPaUMsT0FBT0wsSUFBSUMsT0FBTzdCLEdBQUc7SUFDOUI7SUFDQSxPQUFPNEIsS0FBSztBQUNkO0FBRUE7O0NBRUMsR0FFRCxTQUFTSyxPQUFPTCxFQUFFLEVBQUVDLEtBQUssRUFBRUwsQ0FBQyxFQUFFVSxJQUFJO0lBQ2hDLElBQUlDLFdBQVdOLFNBQVNMLElBQUk7SUFDNUIsT0FBT00sS0FBS0UsS0FBSyxDQUFDSixLQUFLSixLQUFLLE1BQU1VLE9BQVFDLENBQUFBLFdBQVcsTUFBTSxFQUFDO0FBQzlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbXMvaW5kZXguanM/YjQyNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhlbHBlcnMuXG4gKi9cblxudmFyIHMgPSAxMDAwO1xudmFyIG0gPSBzICogNjA7XG52YXIgaCA9IG0gKiA2MDtcbnZhciBkID0gaCAqIDI0O1xudmFyIHcgPSBkICogNztcbnZhciB5ID0gZCAqIDM2NS4yNTtcblxuLyoqXG4gKiBQYXJzZSBvciBmb3JtYXQgdGhlIGdpdmVuIGB2YWxgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGxvbmdgIHZlcmJvc2UgZm9ybWF0dGluZyBbZmFsc2VdXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB2YWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEB0aHJvd3Mge0Vycm9yfSB0aHJvdyBhbiBlcnJvciBpZiB2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIG51bWJlclxuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWwsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbDtcbiAgaWYgKHR5cGUgPT09ICdzdHJpbmcnICYmIHZhbC5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHBhcnNlKHZhbCk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUodmFsKSkge1xuICAgIHJldHVybiBvcHRpb25zLmxvbmcgPyBmbXRMb25nKHZhbCkgOiBmbXRTaG9ydCh2YWwpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAndmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD0nICtcbiAgICAgIEpTT04uc3RyaW5naWZ5KHZhbClcbiAgKTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGBzdHJgIGFuZCByZXR1cm4gbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlKHN0cikge1xuICBzdHIgPSBTdHJpbmcoc3RyKTtcbiAgaWYgKHN0ci5sZW5ndGggPiAxMDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG1hdGNoID0gL14oLT8oPzpcXGQrKT9cXC4/XFxkKykgKihtaWxsaXNlY29uZHM/fG1zZWNzP3xtc3xzZWNvbmRzP3xzZWNzP3xzfG1pbnV0ZXM/fG1pbnM/fG18aG91cnM/fGhycz98aHxkYXlzP3xkfHdlZWtzP3x3fHllYXJzP3x5cnM/fHkpPyQvaS5leGVjKFxuICAgIHN0clxuICApO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBuID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gIHZhciB0eXBlID0gKG1hdGNoWzJdIHx8ICdtcycpLnRvTG93ZXJDYXNlKCk7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3llYXJzJzpcbiAgICBjYXNlICd5ZWFyJzpcbiAgICBjYXNlICd5cnMnOlxuICAgIGNhc2UgJ3lyJzpcbiAgICBjYXNlICd5JzpcbiAgICAgIHJldHVybiBuICogeTtcbiAgICBjYXNlICd3ZWVrcyc6XG4gICAgY2FzZSAnd2Vlayc6XG4gICAgY2FzZSAndyc6XG4gICAgICByZXR1cm4gbiAqIHc7XG4gICAgY2FzZSAnZGF5cyc6XG4gICAgY2FzZSAnZGF5JzpcbiAgICBjYXNlICdkJzpcbiAgICAgIHJldHVybiBuICogZDtcbiAgICBjYXNlICdob3Vycyc6XG4gICAgY2FzZSAnaG91cic6XG4gICAgY2FzZSAnaHJzJzpcbiAgICBjYXNlICdocic6XG4gICAgY2FzZSAnaCc6XG4gICAgICByZXR1cm4gbiAqIGg7XG4gICAgY2FzZSAnbWludXRlcyc6XG4gICAgY2FzZSAnbWludXRlJzpcbiAgICBjYXNlICdtaW5zJzpcbiAgICBjYXNlICdtaW4nOlxuICAgIGNhc2UgJ20nOlxuICAgICAgcmV0dXJuIG4gKiBtO1xuICAgIGNhc2UgJ3NlY29uZHMnOlxuICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgY2FzZSAnc2Vjcyc6XG4gICAgY2FzZSAnc2VjJzpcbiAgICBjYXNlICdzJzpcbiAgICAgIHJldHVybiBuICogcztcbiAgICBjYXNlICdtaWxsaXNlY29uZHMnOlxuICAgIGNhc2UgJ21pbGxpc2Vjb25kJzpcbiAgICBjYXNlICdtc2Vjcyc6XG4gICAgY2FzZSAnbXNlYyc6XG4gICAgY2FzZSAnbXMnOlxuICAgICAgcmV0dXJuIG47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBTaG9ydCBmb3JtYXQgZm9yIGBtc2AuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG1zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBmbXRTaG9ydChtcykge1xuICB2YXIgbXNBYnMgPSBNYXRoLmFicyhtcyk7XG4gIGlmIChtc0FicyA+PSBkKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBkKSArICdkJztcbiAgfVxuICBpZiAobXNBYnMgPj0gaCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gaCkgKyAnaCc7XG4gIH1cbiAgaWYgKG1zQWJzID49IG0pIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIG0pICsgJ20nO1xuICB9XG4gIGlmIChtc0FicyA+PSBzKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBzKSArICdzJztcbiAgfVxuICByZXR1cm4gbXMgKyAnbXMnO1xufVxuXG4vKipcbiAqIExvbmcgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZm10TG9uZyhtcykge1xuICB2YXIgbXNBYnMgPSBNYXRoLmFicyhtcyk7XG4gIGlmIChtc0FicyA+PSBkKSB7XG4gICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIGQsICdkYXknKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gaCkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBoLCAnaG91cicpO1xuICB9XG4gIGlmIChtc0FicyA+PSBtKSB7XG4gICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIG0sICdtaW51dGUnKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gcykge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBzLCAnc2Vjb25kJyk7XG4gIH1cbiAgcmV0dXJuIG1zICsgJyBtcyc7XG59XG5cbi8qKlxuICogUGx1cmFsaXphdGlvbiBoZWxwZXIuXG4gKi9cblxuZnVuY3Rpb24gcGx1cmFsKG1zLCBtc0FicywgbiwgbmFtZSkge1xuICB2YXIgaXNQbHVyYWwgPSBtc0FicyA+PSBuICogMS41O1xuICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIG4pICsgJyAnICsgbmFtZSArIChpc1BsdXJhbCA/ICdzJyA6ICcnKTtcbn1cbiJdLCJuYW1lcyI6WyJzIiwibSIsImgiLCJkIiwidyIsInkiLCJtb2R1bGUiLCJleHBvcnRzIiwidmFsIiwib3B0aW9ucyIsInR5cGUiLCJsZW5ndGgiLCJwYXJzZSIsImlzRmluaXRlIiwibG9uZyIsImZtdExvbmciLCJmbXRTaG9ydCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0ciIsIlN0cmluZyIsIm1hdGNoIiwiZXhlYyIsIm4iLCJwYXJzZUZsb2F0IiwidG9Mb3dlckNhc2UiLCJ1bmRlZmluZWQiLCJtcyIsIm1zQWJzIiwiTWF0aCIsImFicyIsInJvdW5kIiwicGx1cmFsIiwibmFtZSIsImlzUGx1cmFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/ms/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js ***!
- \****************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all)=>{\n for(var name in all)__defProp(target, name, {\n get: all[name],\n enumerable: true\n });\n};\nvar __copyProps = (to, from, except, desc)=>{\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: ()=>from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n};\nvar __toCommonJS = (mod)=>__copyProps(__defProp({}, \"__esModule\", {\n value: true\n }), mod);\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: ()=>RequestCookies,\n ResponseCookies: ()=>ResponseCookies,\n parseCookie: ()=>parseCookie,\n parseSetCookie: ()=>parseSetCookie,\n stringifyCookie: ()=>stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n return `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)){\n if (!pair) continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [\n pair.slice(0, splitAt),\n pair.slice(splitAt + 1)\n ];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {}\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const { domain, expires, httponly, maxage, path, samesite, secure, priority } = Object.fromEntries(attributes.map(([key, value2])=>[\n key.toLowerCase(),\n value2\n ]));\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && {\n expires: new Date(expires)\n },\n ...httponly && {\n httpOnly: true\n },\n ...typeof maxage === \"string\" && {\n maxAge: Number(maxage)\n },\n path,\n ...samesite && {\n sameSite: parseSameSite(samesite)\n },\n ...secure && {\n secure: true\n },\n ...priority && {\n priority: parsePriority(priority)\n }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for(const key in t){\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\n \"strict\",\n \"lax\",\n \"none\"\n];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\n \"low\",\n \"medium\",\n \"high\"\n];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString) return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders){\n /** @internal */ this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed){\n this._parsed.set(name, {\n name,\n value\n });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */ get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value])=>value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n])=>n === name).map(([_, value])=>value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [\n args[0].name,\n args[0].value\n ] : args;\n const map = this._parsed;\n map.set(name, {\n name,\n value\n });\n this._headers.set(\"cookie\", Array.from(map).map(([_, value2])=>stringifyCookie(value2)).join(\"; \"));\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */ delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name)=>map.delete(name));\n this._headers.set(\"cookie\", Array.from(map).map(([_, value])=>stringifyCookie(value)).join(\"; \"));\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */ clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */ [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [\n ...this._parsed.values()\n ].map((v)=>`${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders){\n /** @internal */ this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings){\n const parsed = parseSetCookie(cookieString);\n if (parsed) this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */ get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */ getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c)=>c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */ set(...args) {\n const [name, value, cookie] = args.length === 1 ? [\n args[0].name,\n args[0].value,\n args[0]\n ] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({\n name,\n value,\n ...cookie\n }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */ delete(...args) {\n const [name, path, domain] = typeof args[0] === \"string\" ? [\n args[0]\n ] : [\n args[0].name,\n args[0].path,\n args[0].domain\n ];\n return this.set({\n name,\n path,\n domain,\n value: \"\",\n expires: /* @__PURE__ */ new Date(0)\n });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [\n ...this._parsed.values()\n ].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag){\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = {\n name: \"\",\n value: \"\"\n}) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixJQUFJQSxZQUFZQyxPQUFPQyxjQUFjO0FBQ3JDLElBQUlDLG1CQUFtQkYsT0FBT0csd0JBQXdCO0FBQ3RELElBQUlDLG9CQUFvQkosT0FBT0ssbUJBQW1CO0FBQ2xELElBQUlDLGVBQWVOLE9BQU9PLFNBQVMsQ0FBQ0MsY0FBYztBQUNsRCxJQUFJQyxXQUFXLENBQUNDLFFBQVFDO0lBQ3RCLElBQUssSUFBSUMsUUFBUUQsSUFDZlosVUFBVVcsUUFBUUUsTUFBTTtRQUFFQyxLQUFLRixHQUFHLENBQUNDLEtBQUs7UUFBRUUsWUFBWTtJQUFLO0FBQy9EO0FBQ0EsSUFBSUMsY0FBYyxDQUFDQyxJQUFJQyxNQUFNQyxRQUFRQztJQUNuQyxJQUFJRixRQUFRLE9BQU9BLFNBQVMsWUFBWSxPQUFPQSxTQUFTLFlBQVk7UUFDbEUsS0FBSyxJQUFJRyxPQUFPaEIsa0JBQWtCYSxNQUNoQyxJQUFJLENBQUNYLGFBQWFlLElBQUksQ0FBQ0wsSUFBSUksUUFBUUEsUUFBUUYsUUFDekNuQixVQUFVaUIsSUFBSUksS0FBSztZQUFFUCxLQUFLLElBQU1JLElBQUksQ0FBQ0csSUFBSTtZQUFFTixZQUFZLENBQUVLLENBQUFBLE9BQU9qQixpQkFBaUJlLE1BQU1HLElBQUcsS0FBTUQsS0FBS0wsVUFBVTtRQUFDO0lBQ3RIO0lBQ0EsT0FBT0U7QUFDVDtBQUNBLElBQUlNLGVBQWUsQ0FBQ0MsTUFBUVIsWUFBWWhCLFVBQVUsQ0FBQyxHQUFHLGNBQWM7UUFBRXlCLE9BQU87SUFBSyxJQUFJRDtBQUV0RixlQUFlO0FBQ2YsSUFBSUUsY0FBYyxDQUFDO0FBQ25CaEIsU0FBU2dCLGFBQWE7SUFDcEJDLGdCQUFnQixJQUFNQTtJQUN0QkMsaUJBQWlCLElBQU1BO0lBQ3ZCQyxhQUFhLElBQU1BO0lBQ25CQyxnQkFBZ0Is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QUFhckcsZ0JBQWdCTjtRQUNuQzBHLFFBQVFFLE1BQU0sQ0FBQyxjQUFjRDtJQUMvQjtBQUNGO0FBQ0EsU0FBU0osZ0JBQWdCN0UsU0FBUztJQUFFdEMsTUFBTTtJQUFJWSxPQUFPO0FBQUcsQ0FBQztJQUN2RCxJQUFJLE9BQU8wQixPQUFPYixPQUFPLEtBQUssVUFBVTtRQUN0Q2EsT0FBT2IsT0FBTyxHQUFHLElBQUlDLEtBQUtZLE9BQU9iLE9BQU87SUFDMUM7SUFDQSxJQUFJYSxPQUFPVixNQUFNLEVBQUU7UUFDakJVLE9BQU9iLE9BQU8sR0FBRyxJQUFJQyxLQUFLQSxLQUFLK0YsR0FBRyxLQUFLbkYsT0FBT1YsTUFBTSxHQUFHO0lBQ3pEO0lBQ0EsSUFBSVUsT0FBT2QsSUFBSSxLQUFLLFFBQVFjLE9BQU9kLElBQUksS0FBSyxLQUFLLEdBQUc7UUFDbERjLE9BQU9kLElBQUksR0FBRztJQUNoQjtJQUNBLE9BQU9jO0FBQ1Q7QUFDQSw2REFBNkQ7QUFDN0QsS0FBTW5CLENBQUFBLENBTU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzL2luZGV4LmpzPzRiMjciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBzcmNfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoc3JjX2V4cG9ydHMsIHtcbiAgUmVxdWVzdENvb2tpZXM6ICgpID0+IFJlcXVlc3RDb29raWVzLFxuICBSZXNwb25zZUNvb2tpZXM6ICgpID0+IFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWU6ICgpID0+IHBhcnNlQ29va2llLFxuICBwYXJzZVNldENvb2tpZTogKCkgPT4gcGFyc2VTZXRDb29raWUsXG4gIHN0cmluZ2lmeUNvb2tpZTogKCkgPT4gc3RyaW5naWZ5Q29va2llXG59KTtcbm1vZHVsZS5leHBvcnRzID0gX190b0NvbW1vbkpTKHNyY19leHBvcnRzKTtcblxuLy8gc3JjL3NlcmlhbGl6ZS50c1xuZnVuY3Rpb24gc3RyaW5naWZ5Q29va2llKGMpIHtcbiAgdmFyIF9hO1xuICBjb25zdCBhdHRycyA9IFtcbiAgICBcInBhdGhcIiBpbiBjICYmIGMucGF0aCAmJiBgUGF0aD0ke2MucGF0aH1gLFxuICAgIFwiZXhwaXJlc1wiIGluIGMgJiYgKGMuZXhwaXJlcyB8fCBjLmV4cGlyZXMgPT09IDApICYmIGBFeHBpcmVzPSR7KHR5cGVvZiBjLmV4cGlyZXMgPT09IFwibnVtYmVyXCIgPyBuZXcgRGF0ZShjLmV4cGlyZXMpIDogYy5leHBpcmVzKS50b1VUQ1N0cmluZygpfWAsXG4gICAgXCJtYXhBZ2VcIiBpbiBjICYmIHR5cGVvZiBjLm1heEFnZSA9PT0gXCJudW1iZXJcIiAmJiBgTWF4LUFnZT0ke2MubWF4QWdlfWAsXG4gICAgXCJkb21haW5cIiBpbiBjICYmIGMuZG9tYWluICYmIGBEb21haW49JHtjLmRvbWFpbn1gLFxuICAgIFwic2VjdXJlXCIgaW4gYyAmJiBjLnNlY3VyZSAmJiBcIlNlY3VyZVwiLFxuICAgIFwiaHR0cE9ubHlcIiBpbiBjICYmIGMuaHR0cE9ubHkgJiYgXCJIdHRwT25seVwiLFxuICAgIFwic2FtZVNpdGVcIiBpbiBjICYmIGMuc2FtZVNpdGUgJiYgYFNhbWVTaXRlPSR7Yy5zYW1lU2l0ZX1gLFxuICAgIFwicHJpb3JpdHlcIiBpbiBjICYmIGMucHJpb3JpdHkgJiYgYFByaW9yaXR5PSR7Yy5wcmlvcml0eX1gXG4gIF0uZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gYCR7Yy5uYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudCgoX2EgPSBjLnZhbHVlKSAhPSBudWxsID8gX2EgOiBcIlwiKX07ICR7YXR0cnMuam9pbihcIjsgXCIpfWA7XG59XG5mdW5jdGlvbiBwYXJzZUNvb2tpZShjb29raWUpIHtcbiAgY29uc3QgbWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgZm9yIChjb25zdCBwYWlyIG9mIGNvb2tpZS5zcGxpdCgvOyAqLykpIHtcbiAgICBpZiAoIXBhaXIpXG4gICAgICBjb250aW51ZTtcbiAgICBjb25zdCBzcGxpdEF0ID0gcGFpci5pbmRleE9mKFwiPVwiKTtcbiAgICBpZiAoc3BsaXRBdCA9PT0gLTEpIHtcbiAgICAgIG1hcC5zZXQocGFpciwgXCJ0cnVlXCIpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IFtwYWlyLnNsaWNlKDAsIHNwbGl0QXQpLCBwYWlyLnNsaWNlKHNwbGl0QXQgKyAxKV07XG4gICAgdHJ5IHtcbiAgICAgIG1hcC5zZXQoa2V5LCBkZWNvZGVVUklDb21wb25lbnQodmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogXCJ0cnVlXCIpKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1hcDtcbn1cbmZ1bmN0aW9uIHBhcnNlU2V0Q29va2llKHNldENvb2tpZSkge1xuICBpZiAoIXNldENvb2tpZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgY29uc3QgW1tuYW1lLCB2YWx1ZV0sIC4uLmF0dHJpYnV0ZXNdID0gcGFyc2VDb29raWUoc2V0Q29va2llKTtcbiAgY29uc3Qge1xuICAgIGRvbWFpbixcbiAgICBleHBpcmVzLFxuICAgIGh0dHBvbmx5LFxuICAgIG1heGFnZSxcbiAgICBwYXRoLFxuICAgIHNhbWVzaXRlLFxuICAgIHNlY3VyZSxcbiAgICBwcmlvcml0eVxuICB9ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIGF0dHJpYnV0ZXMubWFwKChba2V5LCB2YWx1ZTJdKSA9PiBba2V5LnRvTG93ZXJDYXNlKCksIHZhbHVlMl0pXG4gICk7XG4gIGNvbnN0IGNvb2tpZSA9IHtcbiAgICBuYW1lLFxuICAgIHZhbHVlOiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpLFxuICAgIGRvbWFpbixcbiAgICAuLi5leHBpcmVzICYmIHsgZXhwaXJlczogbmV3IERhdGUoZXhwaXJlcykgfSxcbiAgICAuLi5odHRwb25seSAmJiB7IGh0dHBPbmx5OiB0cnVlIH0sXG4gICAgLi4udHlwZW9mIG1heGFnZSA9PT0gXCJzdHJpbmdcIiAmJiB7IG1heEFnZTogTnVtYmVyKG1heGFnZSkgfSxcbiAgICBwYXRoLFxuICAgIC4uLnNhbWVzaXRlICYmIHsgc2FtZVNpdGU6IHBhcnNlU2FtZVNpdGUoc2FtZXNpdGUpIH0sXG4gICAgLi4uc2VjdXJlICYmIHsgc2VjdXJlOiB0cnVlIH0sXG4gICAgLi4ucHJpb3JpdHkgJiYgeyBwcmlvcml0eTogcGFyc2VQcmlvcml0eShwcmlvcml0eSkgfVxuICB9O1xuICByZXR1cm4gY29tcGFjdChjb29raWUpO1xufVxuZnVuY3Rpb24gY29tcGFjdCh0KSB7XG4gIGNvbnN0IG5ld1QgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdCkge1xuICAgIGlmICh0W2tleV0pIHtcbiAgICAgIG5ld1Rba2V5XSA9IHRba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1Q7XG59XG52YXIgU0FNRV9TSVRFID0gW1wic3RyaWN0XCIsIFwibGF4XCIsIFwibm9uZVwiXTtcbmZ1bmN0aW9uIHBhcnNlU2FtZVNpdGUoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gU0FNRV9TSVRFLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG52YXIgUFJJT1JJVFkgPSBbXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCJdO1xuZnVuY3Rpb24gcGFyc2VQcmlvcml0eShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBQUklPUklUWS5pbmNsdWRlcyhzdHJpbmcpID8gc3RyaW5nIDogdm9pZCAwO1xufVxuZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgaWYgKCFjb29raWVzU3RyaW5nKVxuICAgIHJldHVybiBbXTtcbiAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gIHZhciBwb3MgPSAwO1xuICB2YXIgc3RhcnQ7XG4gIHZhciBjaDtcbiAgdmFyIGxhc3RDb21tYTtcbiAgdmFyIG5leHRTdGFydDtcbiAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpIHtcbiAgICAgIHBvcyArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gIH1cbiAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgIHJldHVybiBjaCAhPT0gXCI9XCIgJiYgY2ggIT09IFwiO1wiICYmIGNoICE9PSBcIixcIjtcbiAgfVxuICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICBzdGFydCA9IHBvcztcbiAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICB3aGlsZSAoc2tpcFdoaXRlc3BhY2UoKSkge1xuICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgaWYgKGNoID09PSBcIixcIikge1xuICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgIHBvcyArPSAxO1xuICAgICAgICBza2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBub3RTcGVjaWFsQ2hhcigpKSB7XG4gICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09IFwiPVwiKSB7XG4gICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvb2tpZXNTdHJpbmdzO1xufVxuXG4vLyBzcmMvcmVxdWVzdC1jb29raWVzLnRzXG52YXIgUmVxdWVzdENvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlcXVlc3RIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzO1xuICAgIGNvbnN0IGhlYWRlciA9IHJlcXVlc3RIZWFkZXJzLmdldChcImNvb2tpZVwiKTtcbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvb2tpZShoZWFkZXIpO1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIHBhcnNlZCkge1xuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIGNvb2tpZXMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50XG4gICAqL1xuICBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLnNpemU7XG4gIH1cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KG5hbWUpO1xuICB9XG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogKF9hID0gYXJnc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm5hbWU7XG4gICAgcmV0dXJuIGFsbC5maWx0ZXIoKFtuXSkgPT4gbiA9PT0gbmFtZSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICBzZXQoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWVdIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCB7IG5hbWUsIHZhbHVlIH0pO1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KFxuICAgICAgXCJjb29raWVcIixcbiAgICAgIEFycmF5LmZyb20obWFwKS5tYXAoKFtfLCB2YWx1ZTJdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUyKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjb29raWVzIG1hdGNoaW5nIHRoZSBwYXNzZWQgbmFtZSBvciBuYW1lcyBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGRlbGV0ZShuYW1lcykge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBjb25zdCByZXN1bHQgPSAhQXJyYXkuaXNBcnJheShuYW1lcykgPyBtYXAuZGVsZXRlKG5hbWVzKSA6IG5hbWVzLm1hcCgobmFtZSkgPT4gbWFwLmRlbGV0ZShuYW1lKSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlXSkgPT4gc3RyaW5naWZ5Q29va2llKHZhbHVlKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIHRoZSBjb29raWVzIGluIHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5kZWxldGUoQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQua2V5cygpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgY29va2llcyBpbiB0aGUgcmVxdWVzdCBhcyBhIHN0cmluZyBmb3IgbG9nZ2luZ1xuICAgKi9cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVxdWVzdENvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKCh2KSA9PiBgJHt2Lm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHYudmFsdWUpfWApLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcblxuLy8gc3JjL3Jlc3BvbnNlLWNvb2tpZXMudHNcbnZhciBSZXNwb25zZUNvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlSGVhZGVycykge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLl9wYXJzZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIHRoaXMuX2hlYWRlcnMgPSByZXNwb25zZUhlYWRlcnM7XG4gICAgY29uc3Qgc2V0Q29va2llID0gKF9jID0gKF9iID0gKF9hID0gcmVzcG9uc2VIZWFkZXJzLmdldFNldENvb2tpZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzcG9uc2VIZWFkZXJzKSkgIT0gbnVsbCA/IF9iIDogcmVzcG9uc2VIZWFkZXJzLmdldChcInNldC1jb29raWVcIikpICE9IG51bGwgPyBfYyA6IFtdO1xuICAgIGNvbnN0IGNvb2tpZVN0cmluZ3MgPSBBcnJheS5pc0FycmF5KHNldENvb2tpZSkgPyBzZXRDb29raWUgOiBzcGxpdENvb2tpZXNTdHJpbmcoc2V0Q29va2llKTtcbiAgICBmb3IgKGNvbnN0IGNvb2tpZVN0cmluZyBvZiBjb29raWVTdHJpbmdzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVNldENvb2tpZShjb29raWVTdHJpbmcpO1xuICAgICAgaWYgKHBhcnNlZClcbiAgICAgICAgdGhpcy5fcGFyc2VkLnNldChwYXJzZWQubmFtZSwgcGFyc2VkKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0IENvb2tpZVN0b3JlI2dldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldCguLi5hcmdzKSB7XG4gICAgY29uc3Qga2V5ID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KGtleSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0QWxsIENvb2tpZVN0b3JlI2dldEFsbH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkLnZhbHVlcygpKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoYykgPT4gYy5uYW1lID09PSBrZXkpO1xuICB9XG4gIGhhcyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5oYXMobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtc2V0IENvb2tpZVN0b3JlI3NldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlLCBjb29raWVdID0gYXJncy5sZW5ndGggPT09IDEgPyBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnZhbHVlLCBhcmdzWzBdXSA6IGFyZ3M7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIG1hcC5zZXQobmFtZSwgbm9ybWFsaXplQ29va2llKHsgbmFtZSwgdmFsdWUsIC4uLmNvb2tpZSB9KSk7XG4gICAgcmVwbGFjZShtYXAsIHRoaXMuX2hlYWRlcnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWRlbGV0ZSBDb29raWVTdG9yZSNkZWxldGV9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBkZWxldGUoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCBwYXRoLCBkb21haW5dID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBbYXJnc1swXV0gOiBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnBhdGgsIGFyZ3NbMF0uZG9tYWluXTtcbiAgICByZXR1cm4gdGhpcy5zZXQoeyBuYW1lLCBwYXRoLCBkb21haW4sIHZhbHVlOiBcIlwiLCBleHBpcmVzOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoMCkgfSk7XG4gIH1cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVzcG9uc2VDb29raWVzICR7SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuX3BhcnNlZCkpfWA7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9wYXJzZWQudmFsdWVzKCldLm1hcChzdHJpbmdpZnlDb29raWUpLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcbmZ1bmN0aW9uIHJlcGxhY2UoYmFnLCBoZWFkZXJzKSB7XG4gIGhlYWRlcnMuZGVsZXRlKFwic2V0LWNvb2tpZVwiKTtcbiAgZm9yIChjb25zdCBbLCB2YWx1ZV0gb2YgYmFnKSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZSk7XG4gICAgaGVhZGVycy5hcHBlbmQoXCJzZXQtY29va2llXCIsIHNlcmlhbGl6ZWQpO1xuICB9XG59XG5mdW5jdGlvbiBub3JtYWxpemVDb29raWUoY29va2llID0geyBuYW1lOiBcIlwiLCB2YWx1ZTogXCJcIiB9KSB7XG4gIGlmICh0eXBlb2YgY29va2llLmV4cGlyZXMgPT09IFwibnVtYmVyXCIpIHtcbiAgICBjb29raWUuZXhwaXJlcyA9IG5ldyBEYXRlKGNvb2tpZS5leHBpcmVzKTtcbiAgfVxuICBpZiAoY29va2llLm1heEFnZSkge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIGNvb2tpZS5tYXhBZ2UgKiAxZTMpO1xuICB9XG4gIGlmIChjb29raWUucGF0aCA9PT0gbnVsbCB8fCBjb29raWUucGF0aCA9PT0gdm9pZCAwKSB7XG4gICAgY29va2llLnBhdGggPSBcIi9cIjtcbiAgfVxuICByZXR1cm4gY29va2llO1xufVxuLy8gQW5ub3RhdGUgdGhlIENvbW1vbkpTIGV4cG9ydCBuYW1lcyBmb3IgRVNNIGltcG9ydCBpbiBub2RlOlxuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gIFJlcXVlc3RDb29raWVzLFxuICBSZXNwb25zZUNvb2tpZXMsXG4gIHBhcnNlQ29va2llLFxuICBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llXG59KTtcbiJdLCJuYW1lcyI6WyJfX2RlZlByb3AiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl9fZ2V0T3duUHJvcERlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfX2dldE93blByb3BOYW1lcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJfX2hhc093blByb3AiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIl9fZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImdldCIsImVudW1lcmFibGUiLCJfX2NvcHlQcm9wcyIsInRvIiwiZnJvbSIsImV4Y2VwdCIsImRlc2MiLCJrZXkiLCJjYWxsIiwiX190b0NvbW1vbkpTIiwibW9kIiwidmFsdWUiLCJzcmNfZXhwb3J0cyIsIlJlcXVlc3RDb29raWVzIiwiUmVzcG9uc2VDb29raWVzIiwicGFyc2VDb29raWUiLCJwYXJzZVNldENvb2tpZSIsInN0cmluZ2lmeUNvb2tpZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjIiwiX2EiLCJhdHRycyIsInBhdGgiLCJleHBpcmVzIiwiRGF0ZSIsInRvVVRDU3RyaW5nIiwibWF4QWdlIiwiZG9tYWluIiwic2VjdXJlIiwiaHR0cE9ubHkiLCJzYW1lU2l0ZSIsInByaW9yaXR5IiwiZmlsdGVyIiwiQm9vbGVhbiIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJjb29raWUiLCJtYXAiLCJNYXAiLCJwYWlyIiwic3BsaXQiLCJzcGxpdEF0IiwiaW5kZXhPZiIsInNldCIsInNsaWNlIiwiZGVjb2RlVVJJQ29tcG9uZW50Iiwic2V0Q29va2llIiwiYXR0cmlidXRlcyIsImh0dHBvbmx5IiwibWF4YWdlIiwic2FtZXNpdGUiLCJmcm9tRW50cmllcyIsInZhbHVlMiIsInRvTG93ZXJDYXNlIiwiTnVtYmVyIiwicGFyc2VTYW1lU2l0ZSIsInBhcnNlUHJpb3JpdHkiLCJjb21wYWN0IiwidCIsIm5ld1QiLCJTQU1FX1NJVEUiLCJzdHJpbmciLCJpbmNsdWRlcyIsIlBSSU9SSVRZIiwic3BsaXRDb29raWVzU3RyaW5nIiwiY29va2llc1N0cmluZyIsImNvb2tpZXNTdHJpbmdzIiwicG9zIiwic3RhcnQiLCJjaCIsImxhc3RDb21tYSIsIm5leHRTdGFydCIsImNvb2tpZXNTZXBhcmF0b3JGb3VuZCIsInNraXBXaGl0ZXNwYWNlIiwibGVuZ3RoIiwidGVzdCIsImNoYXJBdCIsIm5vdFNwZWNpYWxDaGFyIiwicHVzaCIsInN1YnN0cmluZyIsImNvbnN0cnVjdG9yIiwicmVxdWVzdEhlYWRlcnMiLCJfcGFyc2VkIiwiX2hlYWRlcnMiLCJoZWFkZXIiLCJwYXJzZWQiLCJTeW1ib2wiLCJpdGVyYXRvciIsInNpemUiLCJhcmdzIiwiZ2V0QWxsIiwiQXJyYXkiLCJfIiwibiIsImhhcyIsImRlbGV0ZSIsIm5hbWVzIiwicmVzdWx0IiwiaXNBcnJheSIsImNsZWFyIiwia2V5cyIsImZvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b1N0cmluZyIsInZhbHVlcyIsInYiLCJyZXNwb25zZUhlYWRlcnMiLCJfYiIsIl9jIiwiZ2V0U2V0Q29va2llIiwiY29va2llU3RyaW5ncyIsImNvb2tpZVN0cmluZyIsIm5vcm1hbGl6ZUNvb2tpZSIsInJlcGxhY2UiLCJiYWciLCJoZWFkZXJzIiwic2VyaWFsaXplZCIsImFwcGVuZCIsIm5vdyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/@opentelemetry/api/index.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/@opentelemetry/api/index.js ***!
- \*************************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var e = {\n 491: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ContextAPI = void 0;\n const n = r(223);\n const a = r(172);\n const o = r(930);\n const i = \"context\";\n const c = new n.NoopContextManager;\n class ContextAPI {\n constructor(){}\n static getInstance() {\n if (!this._instance) {\n this._instance = new ContextAPI;\n }\n return this._instance;\n }\n setGlobalContextManager(e) {\n return (0, a.registerGlobal)(i, e, o.DiagAPI.instance());\n }\n active() {\n return this._getContextManager().active();\n }\n with(e, t, r, ...n) {\n return this._getContextManager().with(e, t, r, ...n);\n }\n bind(e, t) {\n return this._getContextManager().bind(e, t);\n }\n _getContextManager() {\n return (0, a.getGlobal)(i) || c;\n }\n disable() {\n this._getContextManager().disable();\n (0, a.unregisterGlobal)(i, o.DiagAPI.instance());\n }\n }\n t.ContextAPI = ContextAPI;\n },\n 930: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagAPI = void 0;\n const n = r(56);\n const a = r(912);\n const o = r(957);\n const i = r(172);\n const c = \"diag\";\n class DiagAPI {\n constructor(){\n function _logProxy(e) {\n return function(...t) {\n const r = (0, i.getGlobal)(\"diag\");\n if (!r) return;\n return r[e](...t);\n };\n }\n const e = this;\n const setLogger = (t, r = {\n logLevel: o.DiagLogLevel.INFO\n })=>{\n var n, c, s;\n if (t === e) {\n const t = new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");\n e.error((n = t.stack) !== null && n !== void 0 ? n : t.message);\n return false;\n }\n if (typeof r === \"number\") {\n r = {\n logLevel: r\n };\n }\n const u = (0, i.getGlobal)(\"diag\");\n const l = (0, a.createLogLevelDiagLogger)((c = r.logLevel) !== null && c !== void 0 ? c : o.DiagLogLevel.INFO, t);\n if (u && !r.suppressOverrideMessage) {\n const e = (s = (new Error).stack) !== null && s !== void 0 ? s : \"<failed to generate stacktrace>\";\n u.warn(`Current logger will be overwritten from ${e}`);\n l.warn(`Current logger will overwrite one already registered from ${e}`);\n }\n return (0, i.registerGlobal)(\"diag\", l, e, true);\n };\n e.setLogger = setLogger;\n e.disable = ()=>{\n (0, i.unregisterGlobal)(c, e);\n };\n e.createComponentLogger = (e)=>new n.DiagComponentLogger(e);\n e.verbose = _logProxy(\"verbose\");\n e.debug = _logProxy(\"debug\");\n e.info = _logProxy(\"info\");\n e.warn = _logProxy(\"warn\");\n e.error = _logProxy(\"error\");\n }\n static instance() {\n if (!this._instance) {\n this._instance = new DiagAPI;\n }\n return this._instance;\n }\n }\n t.DiagAPI = DiagAPI;\n },\n 653: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.MetricsAPI = void 0;\n const n = r(660);\n const a = r(172);\n const o = r(930);\n const i = \"metrics\";\n class MetricsAPI {\n constructor(){}\n static getInstance() {\n if (!this._instance) {\n this._instance = new MetricsAPI;\n }\n return this._instance;\n }\n setGlobalMeterProvider(e) {\n return (0, a.registerGlobal)(i, e, o.DiagAPI.instance());\n }\n getMeterProvider() {\n return (0, a.getGlobal)(i) || n.NOOP_METER_PROVIDER;\n }\n getMeter(e, t, r) {\n return this.getMeterProvider().getMeter(e, t, r);\n }\n disable() {\n (0, a.unregisterGlobal)(i, o.DiagAPI.instance());\n }\n }\n t.MetricsAPI = MetricsAPI;\n },\n 181: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.PropagationAPI = void 0;\n const n = r(172);\n const a = r(874);\n const o = r(194);\n const i = r(277);\n const c = r(369);\n const s = r(930);\n const u = \"propagation\";\n const l = new a.NoopTextMapPropagator;\n class PropagationAPI {\n constructor(){\n this.createBaggage = c.createBaggage;\n this.getBaggage = i.getBaggage;\n this.getActiveBaggage = i.getActiveBaggage;\n this.setBaggage = i.setBaggage;\n this.deleteBaggage = i.deleteBaggage;\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new PropagationAPI;\n }\n return this._instance;\n }\n setGlobalPropagator(e) {\n return (0, n.registerGlobal)(u, e, s.DiagAPI.instance());\n }\n inject(e, t, r = o.defaultTextMapSetter) {\n return this._getGlobalPropagator().inject(e, t, r);\n }\n extract(e, t, r = o.defaultTextMapGetter) {\n return this._getGlobalPropagator().extract(e, t, r);\n }\n fields() {\n return this._getGlobalPropagator().fields();\n }\n disable() {\n (0, n.unregisterGlobal)(u, s.DiagAPI.instance());\n }\n _getGlobalPropagator() {\n return (0, n.getGlobal)(u) || l;\n }\n }\n t.PropagationAPI = PropagationAPI;\n },\n 997: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceAPI = void 0;\n const n = r(172);\n const a = r(846);\n const o = r(139);\n const i = r(607);\n const c = r(930);\n const s = \"trace\";\n class TraceAPI {\n constructor(){\n this._proxyTracerProvider = new a.ProxyTracerProvider;\n this.wrapSpanContext = o.wrapSpanContext;\n this.isSpanContextValid = o.isSpanContextValid;\n this.deleteSpan = i.deleteSpan;\n this.getSpan = i.getSpan;\n this.getActiveSpan = i.getActiveSpan;\n this.getSpanContext = i.getSpanContext;\n this.setSpan = i.setSpan;\n this.setSpanContext = i.setSpanContext;\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new TraceAPI;\n }\n return this._instance;\n }\n setGlobalTracerProvider(e) {\n const t = (0, n.registerGlobal)(s, this._proxyTracerProvider, c.DiagAPI.instance());\n if (t) {\n this._proxyTracerProvider.setDelegate(e);\n }\n return t;\n }\n getTracerProvider() {\n return (0, n.getGlobal)(s) || this._proxyTracerProvider;\n }\n getTracer(e, t) {\n return this.getTracerProvider().getTracer(e, t);\n }\n disable() {\n (0, n.unregisterGlobal)(s, c.DiagAPI.instance());\n this._proxyTracerProvider = new a.ProxyTracerProvider;\n }\n }\n t.TraceAPI = TraceAPI;\n },\n 277: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.deleteBaggage = t.setBaggage = t.getActiveBaggage = t.getBaggage = void 0;\n const n = r(491);\n const a = r(780);\n const o = (0, a.createContextKey)(\"OpenTelemetry Baggage Key\");\n function getBaggage(e) {\n return e.getValue(o) || undefined;\n }\n t.getBaggage = getBaggage;\n function getActiveBaggage() {\n return getBaggage(n.ContextAPI.getInstance().active());\n }\n t.getActiveBaggage = getActiveBaggage;\n function setBaggage(e, t) {\n return e.setValue(o, t);\n }\n t.setBaggage = setBaggage;\n function deleteBaggage(e) {\n return e.deleteValue(o);\n }\n t.deleteBaggage = deleteBaggage;\n },\n 993: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.BaggageImpl = void 0;\n class BaggageImpl {\n constructor(e){\n this._entries = e ? new Map(e) : new Map;\n }\n getEntry(e) {\n const t = this._entries.get(e);\n if (!t) {\n return undefined;\n }\n return Object.assign({}, t);\n }\n getAllEntries() {\n return Array.from(this._entries.entries()).map(([e, t])=>[\n e,\n t\n ]);\n }\n setEntry(e, t) {\n const r = new BaggageImpl(this._entries);\n r._entries.set(e, t);\n return r;\n }\n removeEntry(e) {\n const t = new BaggageImpl(this._entries);\n t._entries.delete(e);\n return t;\n }\n removeEntries(...e) {\n const t = new BaggageImpl(this._entries);\n for (const r of e){\n t._entries.delete(r);\n }\n return t;\n }\n clear() {\n return new BaggageImpl;\n }\n }\n t.BaggageImpl = BaggageImpl;\n },\n 830: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.baggageEntryMetadataSymbol = void 0;\n t.baggageEntryMetadataSymbol = Symbol(\"BaggageEntryMetadata\");\n },\n 369: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.baggageEntryMetadataFromString = t.createBaggage = void 0;\n const n = r(930);\n const a = r(993);\n const o = r(830);\n const i = n.DiagAPI.instance();\n function createBaggage(e = {}) {\n return new a.BaggageImpl(new Map(Object.entries(e)));\n }\n t.createBaggage = createBaggage;\n function baggageEntryMetadataFromString(e) {\n if (typeof e !== \"string\") {\n i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);\n e = \"\";\n }\n return {\n __TYPE__: o.baggageEntryMetadataSymbol,\n toString () {\n return e;\n }\n };\n }\n t.baggageEntryMetadataFromString = baggageEntryMetadataFromString;\n },\n 67: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.context = void 0;\n const n = r(491);\n t.context = n.ContextAPI.getInstance();\n },\n 223: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopContextManager = void 0;\n const n = r(780);\n class NoopContextManager {\n active() {\n return n.ROOT_CONTEXT;\n }\n with(e, t, r, ...n) {\n return t.call(r, ...n);\n }\n bind(e, t) {\n return t;\n }\n enable() {\n return this;\n }\n disable() {\n return this;\n }\n }\n t.NoopContextManager = NoopContextManager;\n },\n 780: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ROOT_CONTEXT = t.createContextKey = void 0;\n function createContextKey(e) {\n return Symbol.for(e);\n }\n t.createContextKey = createContextKey;\n class BaseContext {\n constructor(e){\n const t = this;\n t._currentContext = e ? new Map(e) : new Map;\n t.getValue = (e)=>t._currentContext.get(e);\n t.setValue = (e, r)=>{\n const n = new BaseContext(t._currentContext);\n n._currentContext.set(e, r);\n return n;\n };\n t.deleteValue = (e)=>{\n const r = new BaseContext(t._currentContext);\n r._currentContext.delete(e);\n return r;\n };\n }\n }\n t.ROOT_CONTEXT = new BaseContext;\n },\n 506: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.diag = void 0;\n const n = r(930);\n t.diag = n.DiagAPI.instance();\n },\n 56: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagComponentLogger = void 0;\n const n = r(172);\n class DiagComponentLogger {\n constructor(e){\n this._namespace = e.namespace || \"DiagComponentLogger\";\n }\n debug(...e) {\n return logProxy(\"debug\", this._namespace, e);\n }\n error(...e) {\n return logProxy(\"error\", this._namespace, e);\n }\n info(...e) {\n return logProxy(\"info\", this._namespace, e);\n }\n warn(...e) {\n return logProxy(\"warn\", this._namespace, e);\n }\n verbose(...e) {\n return logProxy(\"verbose\", this._namespace, e);\n }\n }\n t.DiagComponentLogger = DiagComponentLogger;\n function logProxy(e, t, r) {\n const a = (0, n.getGlobal)(\"diag\");\n if (!a) {\n return;\n }\n r.unshift(t);\n return a[e](...r);\n }\n },\n 972: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagConsoleLogger = void 0;\n const r = [\n {\n n: \"error\",\n c: \"error\"\n },\n {\n n: \"warn\",\n c: \"warn\"\n },\n {\n n: \"info\",\n c: \"info\"\n },\n {\n n: \"debug\",\n c: \"debug\"\n },\n {\n n: \"verbose\",\n c: \"trace\"\n }\n ];\n class DiagConsoleLogger {\n constructor(){\n function _consoleFunc(e) {\n return function(...t) {\n if (console) {\n let r = console[e];\n if (typeof r !== \"function\") {\n r = console.log;\n }\n if (typeof r === \"function\") {\n return r.apply(console, t);\n }\n }\n };\n }\n for(let e = 0; e < r.length; e++){\n this[r[e].n] = _consoleFunc(r[e].c);\n }\n }\n }\n t.DiagConsoleLogger = DiagConsoleLogger;\n },\n 912: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.createLogLevelDiagLogger = void 0;\n const n = r(957);\n function createLogLevelDiagLogger(e, t) {\n if (e < n.DiagLogLevel.NONE) {\n e = n.DiagLogLevel.NONE;\n } else if (e > n.DiagLogLevel.ALL) {\n e = n.DiagLogLevel.ALL;\n }\n t = t || {};\n function _filterFunc(r, n) {\n const a = t[r];\n if (typeof a === \"function\" && e >= n) {\n return a.bind(t);\n }\n return function() {};\n }\n return {\n error: _filterFunc(\"error\", n.DiagLogLevel.ERROR),\n warn: _filterFunc(\"warn\", n.DiagLogLevel.WARN),\n info: _filterFunc(\"info\", n.DiagLogLevel.INFO),\n debug: _filterFunc(\"debug\", n.DiagLogLevel.DEBUG),\n verbose: _filterFunc(\"verbose\", n.DiagLogLevel.VERBOSE)\n };\n }\n t.createLogLevelDiagLogger = createLogLevelDiagLogger;\n },\n 957: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagLogLevel = void 0;\n var r;\n (function(e) {\n e[e[\"NONE\"] = 0] = \"NONE\";\n e[e[\"ERROR\"] = 30] = \"ERROR\";\n e[e[\"WARN\"] = 50] = \"WARN\";\n e[e[\"INFO\"] = 60] = \"INFO\";\n e[e[\"DEBUG\"] = 70] = \"DEBUG\";\n e[e[\"VERBOSE\"] = 80] = \"VERBOSE\";\n e[e[\"ALL\"] = 9999] = \"ALL\";\n })(r = t.DiagLogLevel || (t.DiagLogLevel = {}));\n },\n 172: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.unregisterGlobal = t.getGlobal = t.registerGlobal = void 0;\n const n = r(200);\n const a = r(521);\n const o = r(130);\n const i = a.VERSION.split(\".\")[0];\n const c = Symbol.for(`opentelemetry.js.api.${i}`);\n const s = n._globalThis;\n function registerGlobal(e, t, r, n = false) {\n var o;\n const i = s[c] = (o = s[c]) !== null && o !== void 0 ? o : {\n version: a.VERSION\n };\n if (!n && i[e]) {\n const t = new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);\n r.error(t.stack || t.message);\n return false;\n }\n if (i.version !== a.VERSION) {\n const t = new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);\n r.error(t.stack || t.message);\n return false;\n }\n i[e] = t;\n r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);\n return true;\n }\n t.registerGlobal = registerGlobal;\n function getGlobal(e) {\n var t, r;\n const n = (t = s[c]) === null || t === void 0 ? void 0 : t.version;\n if (!n || !(0, o.isCompatible)(n)) {\n return;\n }\n return (r = s[c]) === null || r === void 0 ? void 0 : r[e];\n }\n t.getGlobal = getGlobal;\n function unregisterGlobal(e, t) {\n t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);\n const r = s[c];\n if (r) {\n delete r[e];\n }\n }\n t.unregisterGlobal = unregisterGlobal;\n },\n 130: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.isCompatible = t._makeCompatibilityCheck = void 0;\n const n = r(521);\n const a = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n function _makeCompatibilityCheck(e) {\n const t = new Set([\n e\n ]);\n const r = new Set;\n const n = e.match(a);\n if (!n) {\n return ()=>false;\n }\n const o = {\n major: +n[1],\n minor: +n[2],\n patch: +n[3],\n prerelease: n[4]\n };\n if (o.prerelease != null) {\n return function isExactmatch(t) {\n return t === e;\n };\n }\n function _reject(e) {\n r.add(e);\n return false;\n }\n function _accept(e) {\n t.add(e);\n return true;\n }\n return function isCompatible(e) {\n if (t.has(e)) {\n return true;\n }\n if (r.has(e)) {\n return false;\n }\n const n = e.match(a);\n if (!n) {\n return _reject(e);\n }\n const i = {\n major: +n[1],\n minor: +n[2],\n patch: +n[3],\n prerelease: n[4]\n };\n if (i.prerelease != null) {\n return _reject(e);\n }\n if (o.major !== i.major) {\n return _reject(e);\n }\n if (o.major === 0) {\n if (o.minor === i.minor && o.patch <= i.patch) {\n return _accept(e);\n }\n return _reject(e);\n }\n if (o.minor <= i.minor) {\n return _accept(e);\n }\n return _reject(e);\n };\n }\n t._makeCompatibilityCheck = _makeCompatibilityCheck;\n t.isCompatible = _makeCompatibilityCheck(n.VERSION);\n },\n 886: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.metrics = void 0;\n const n = r(653);\n t.metrics = n.MetricsAPI.getInstance();\n },\n 901: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ValueType = void 0;\n var r;\n (function(e) {\n e[e[\"INT\"] = 0] = \"INT\";\n e[e[\"DOUBLE\"] = 1] = \"DOUBLE\";\n })(r = t.ValueType || (t.ValueType = {}));\n },\n 102: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.createNoopMeter = t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = t.NOOP_OBSERVABLE_GAUGE_METRIC = t.NOOP_OBSERVABLE_COUNTER_METRIC = t.NOOP_UP_DOWN_COUNTER_METRIC = t.NOOP_HISTOGRAM_METRIC = t.NOOP_COUNTER_METRIC = t.NOOP_METER = t.NoopObservableUpDownCounterMetric = t.NoopObservableGaugeMetric = t.NoopObservableCounterMetric = t.NoopObservableMetric = t.NoopHistogramMetric = t.NoopUpDownCounterMetric = t.NoopCounterMetric = t.NoopMetric = t.NoopMeter = void 0;\n class NoopMeter {\n constructor(){}\n createHistogram(e, r) {\n return t.NOOP_HISTOGRAM_METRIC;\n }\n createCounter(e, r) {\n return t.NOOP_COUNTER_METRIC;\n }\n createUpDownCounter(e, r) {\n return t.NOOP_UP_DOWN_COUNTER_METRIC;\n }\n createObservableGauge(e, r) {\n return t.NOOP_OBSERVABLE_GAUGE_METRIC;\n }\n createObservableCounter(e, r) {\n return t.NOOP_OBSERVABLE_COUNTER_METRIC;\n }\n createObservableUpDownCounter(e, r) {\n return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n }\n addBatchObservableCallback(e, t) {}\n removeBatchObservableCallback(e) {}\n }\n t.NoopMeter = NoopMeter;\n class NoopMetric {\n }\n t.NoopMetric = NoopMetric;\n class NoopCounterMetric extends NoopMetric {\n add(e, t) {}\n }\n t.NoopCounterMetric = NoopCounterMetric;\n class NoopUpDownCounterMetric extends NoopMetric {\n add(e, t) {}\n }\n t.NoopUpDownCounterMetric = NoopUpDownCounterMetric;\n class NoopHistogramMetric extends NoopMetric {\n record(e, t) {}\n }\n t.NoopHistogramMetric = NoopHistogramMetric;\n class NoopObservableMetric {\n addCallback(e) {}\n removeCallback(e) {}\n }\n t.NoopObservableMetric = NoopObservableMetric;\n class NoopObservableCounterMetric extends NoopObservableMetric {\n }\n t.NoopObservableCounterMetric = NoopObservableCounterMetric;\n class NoopObservableGaugeMetric extends NoopObservableMetric {\n }\n t.NoopObservableGaugeMetric = NoopObservableGaugeMetric;\n class NoopObservableUpDownCounterMetric extends NoopObservableMetric {\n }\n t.NoopObservableUpDownCounterMetric = NoopObservableUpDownCounterMetric;\n t.NOOP_METER = new NoopMeter;\n t.NOOP_COUNTER_METRIC = new NoopCounterMetric;\n t.NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric;\n t.NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric;\n t.NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric;\n t.NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric;\n t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric;\n function createNoopMeter() {\n return t.NOOP_METER;\n }\n t.createNoopMeter = createNoopMeter;\n },\n 660: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NOOP_METER_PROVIDER = t.NoopMeterProvider = void 0;\n const n = r(102);\n class NoopMeterProvider {\n getMeter(e, t, r) {\n return n.NOOP_METER;\n }\n }\n t.NoopMeterProvider = NoopMeterProvider;\n t.NOOP_METER_PROVIDER = new NoopMeterProvider;\n },\n 200: function(e, t, r) {\n var n = this && this.__createBinding || (Object.create ? function(e, t, r, n) {\n if (n === undefined) n = r;\n Object.defineProperty(e, n, {\n enumerable: true,\n get: function() {\n return t[r];\n }\n });\n } : function(e, t, r, n) {\n if (n === undefined) n = r;\n e[n] = t[r];\n });\n var a = this && this.__exportStar || function(e, t) {\n for(var r in e)if (r !== \"default\" && !Object.prototype.hasOwnProperty.call(t, r)) n(t, e, r);\n };\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n a(r(46), t);\n },\n 651: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t._globalThis = void 0;\n t._globalThis = typeof globalThis === \"object\" ? globalThis : __webpack_require__.g;\n },\n 46: function(e, t, r) {\n var n = this && this.__createBinding || (Object.create ? function(e, t, r, n) {\n if (n === undefined) n = r;\n Object.defineProperty(e, n, {\n enumerable: true,\n get: function() {\n return t[r];\n }\n });\n } : function(e, t, r, n) {\n if (n === undefined) n = r;\n e[n] = t[r];\n });\n var a = this && this.__exportStar || function(e, t) {\n for(var r in e)if (r !== \"default\" && !Object.prototype.hasOwnProperty.call(t, r)) n(t, e, r);\n };\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n a(r(651), t);\n },\n 939: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.propagation = void 0;\n const n = r(181);\n t.propagation = n.PropagationAPI.getInstance();\n },\n 874: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTextMapPropagator = void 0;\n class NoopTextMapPropagator {\n inject(e, t) {}\n extract(e, t) {\n return e;\n }\n fields() {\n return [];\n }\n }\n t.NoopTextMapPropagator = NoopTextMapPropagator;\n },\n 194: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.defaultTextMapSetter = t.defaultTextMapGetter = void 0;\n t.defaultTextMapGetter = {\n get (e, t) {\n if (e == null) {\n return undefined;\n }\n return e[t];\n },\n keys (e) {\n if (e == null) {\n return [];\n }\n return Object.keys(e);\n }\n };\n t.defaultTextMapSetter = {\n set (e, t, r) {\n if (e == null) {\n return;\n }\n e[t] = r;\n }\n };\n },\n 845: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.trace = void 0;\n const n = r(997);\n t.trace = n.TraceAPI.getInstance();\n },\n 403: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NonRecordingSpan = void 0;\n const n = r(476);\n class NonRecordingSpan {\n constructor(e = n.INVALID_SPAN_CONTEXT){\n this._spanContext = e;\n }\n spanContext() {\n return this._spanContext;\n }\n setAttribute(e, t) {\n return this;\n }\n setAttributes(e) {\n return this;\n }\n addEvent(e, t) {\n return this;\n }\n setStatus(e) {\n return this;\n }\n updateName(e) {\n return this;\n }\n end(e) {}\n isRecording() {\n return false;\n }\n recordException(e, t) {}\n }\n t.NonRecordingSpan = NonRecordingSpan;\n },\n 614: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTracer = void 0;\n const n = r(491);\n const a = r(607);\n const o = r(403);\n const i = r(139);\n const c = n.ContextAPI.getInstance();\n class NoopTracer {\n startSpan(e, t, r = c.active()) {\n const n = Boolean(t === null || t === void 0 ? void 0 : t.root);\n if (n) {\n return new o.NonRecordingSpan;\n }\n const s = r && (0, a.getSpanContext)(r);\n if (isSpanContext(s) && (0, i.isSpanContextValid)(s)) {\n return new o.NonRecordingSpan(s);\n } else {\n return new o.NonRecordingSpan;\n }\n }\n startActiveSpan(e, t, r, n) {\n let o;\n let i;\n let s;\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n s = t;\n } else if (arguments.length === 3) {\n o = t;\n s = r;\n } else {\n o = t;\n i = r;\n s = n;\n }\n const u = i !== null && i !== void 0 ? i : c.active();\n const l = this.startSpan(e, o, u);\n const g = (0, a.setSpan)(u, l);\n return c.with(g, s, undefined, l);\n }\n }\n t.NoopTracer = NoopTracer;\n function isSpanContext(e) {\n return typeof e === \"object\" && typeof e[\"spanId\"] === \"string\" && typeof e[\"traceId\"] === \"string\" && typeof e[\"traceFlags\"] === \"number\";\n }\n },\n 124: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTracerProvider = void 0;\n const n = r(614);\n class NoopTracerProvider {\n getTracer(e, t, r) {\n return new n.NoopTracer;\n }\n }\n t.NoopTracerProvider = NoopTracerProvider;\n },\n 125: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ProxyTracer = void 0;\n const n = r(614);\n const a = new n.NoopTracer;\n class ProxyTracer {\n constructor(e, t, r, n){\n this._provider = e;\n this.name = t;\n this.version = r;\n this.options = n;\n }\n startSpan(e, t, r) {\n return this._getTracer().startSpan(e, t, r);\n }\n startActiveSpan(e, t, r, n) {\n const a = this._getTracer();\n return Reflect.apply(a.startActiveSpan, a, arguments);\n }\n _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n const e = this._provider.getDelegateTracer(this.name, this.version, this.options);\n if (!e) {\n return a;\n }\n this._delegate = e;\n return this._delegate;\n }\n }\n t.ProxyTracer = ProxyTracer;\n },\n 846: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ProxyTracerProvider = void 0;\n const n = r(125);\n const a = r(124);\n const o = new a.NoopTracerProvider;\n class ProxyTracerProvider {\n getTracer(e, t, r) {\n var a;\n return (a = this.getDelegateTracer(e, t, r)) !== null && a !== void 0 ? a : new n.ProxyTracer(this, e, t, r);\n }\n getDelegate() {\n var e;\n return (e = this._delegate) !== null && e !== void 0 ? e : o;\n }\n setDelegate(e) {\n this._delegate = e;\n }\n getDelegateTracer(e, t, r) {\n var n;\n return (n = this._delegate) === null || n === void 0 ? void 0 : n.getTracer(e, t, r);\n }\n }\n t.ProxyTracerProvider = ProxyTracerProvider;\n },\n 996: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SamplingDecision = void 0;\n var r;\n (function(e) {\n e[e[\"NOT_RECORD\"] = 0] = \"NOT_RECORD\";\n e[e[\"RECORD\"] = 1] = \"RECORD\";\n e[e[\"RECORD_AND_SAMPLED\"] = 2] = \"RECORD_AND_SAMPLED\";\n })(r = t.SamplingDecision || (t.SamplingDecision = {}));\n },\n 607: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.getSpanContext = t.setSpanContext = t.deleteSpan = t.setSpan = t.getActiveSpan = t.getSpan = void 0;\n const n = r(780);\n const a = r(403);\n const o = r(491);\n const i = (0, n.createContextKey)(\"OpenTelemetry Context Key SPAN\");\n function getSpan(e) {\n return e.getValue(i) || undefined;\n }\n t.getSpan = getSpan;\n function getActiveSpan() {\n return getSpan(o.ContextAPI.getInstance().active());\n }\n t.getActiveSpan = getActiveSpan;\n function setSpan(e, t) {\n return e.setValue(i, t);\n }\n t.setSpan = setSpan;\n function deleteSpan(e) {\n return e.deleteValue(i);\n }\n t.deleteSpan = deleteSpan;\n function setSpanContext(e, t) {\n return setSpan(e, new a.NonRecordingSpan(t));\n }\n t.setSpanContext = setSpanContext;\n function getSpanContext(e) {\n var t;\n return (t = getSpan(e)) === null || t === void 0 ? void 0 : t.spanContext();\n }\n t.getSpanContext = getSpanContext;\n },\n 325: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceStateImpl = void 0;\n const n = r(564);\n const a = 32;\n const o = 512;\n const i = \",\";\n const c = \"=\";\n class TraceStateImpl {\n constructor(e){\n this._internalState = new Map;\n if (e) this._parse(e);\n }\n set(e, t) {\n const r = this._clone();\n if (r._internalState.has(e)) {\n r._internalState.delete(e);\n }\n r._internalState.set(e, t);\n return r;\n }\n unset(e) {\n const t = this._clone();\n t._internalState.delete(e);\n return t;\n }\n get(e) {\n return this._internalState.get(e);\n }\n serialize() {\n return this._keys().reduce((e, t)=>{\n e.push(t + c + this.get(t));\n return e;\n }, []).join(i);\n }\n _parse(e) {\n if (e.length > o) return;\n this._internalState = e.split(i).reverse().reduce((e, t)=>{\n const r = t.trim();\n const a = r.indexOf(c);\n if (a !== -1) {\n const o = r.slice(0, a);\n const i = r.slice(a + 1, t.length);\n if ((0, n.validateKey)(o) && (0, n.validateValue)(i)) {\n e.set(o, i);\n } else {}\n }\n return e;\n }, new Map);\n if (this._internalState.size > a) {\n this._internalState = new Map(Array.from(this._internalState.entries()).reverse().slice(0, a));\n }\n }\n _keys() {\n return Array.from(this._internalState.keys()).reverse();\n }\n _clone() {\n const e = new TraceStateImpl;\n e._internalState = new Map(this._internalState);\n return e;\n }\n }\n t.TraceStateImpl = TraceStateImpl;\n },\n 564: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.validateValue = t.validateKey = void 0;\n const r = \"[_0-9a-z-*/]\";\n const n = `[a-z]${r}{0,255}`;\n const a = `[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;\n const o = new RegExp(`^(?:${n}|${a})$`);\n const i = /^[ -~]{0,255}[!-~]$/;\n const c = /,|=/;\n function validateKey(e) {\n return o.test(e);\n }\n t.validateKey = validateKey;\n function validateValue(e) {\n return i.test(e) && !c.test(e);\n }\n t.validateValue = validateValue;\n },\n 98: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.createTraceState = void 0;\n const n = r(325);\n function createTraceState(e) {\n return new n.TraceStateImpl(e);\n }\n t.createTraceState = createTraceState;\n },\n 476: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.INVALID_SPAN_CONTEXT = t.INVALID_TRACEID = t.INVALID_SPANID = void 0;\n const n = r(475);\n t.INVALID_SPANID = \"0000000000000000\";\n t.INVALID_TRACEID = \"00000000000000000000000000000000\";\n t.INVALID_SPAN_CONTEXT = {\n traceId: t.INVALID_TRACEID,\n spanId: t.INVALID_SPANID,\n traceFlags: n.TraceFlags.NONE\n };\n },\n 357: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SpanKind = void 0;\n var r;\n (function(e) {\n e[e[\"INTERNAL\"] = 0] = \"INTERNAL\";\n e[e[\"SERVER\"] = 1] = \"SERVER\";\n e[e[\"CLIENT\"] = 2] = \"CLIENT\";\n e[e[\"PRODUCER\"] = 3] = \"PRODUCER\";\n e[e[\"CONSUMER\"] = 4] = \"CONSUMER\";\n })(r = t.SpanKind || (t.SpanKind = {}));\n },\n 139: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.wrapSpanContext = t.isSpanContextValid = t.isValidSpanId = t.isValidTraceId = void 0;\n const n = r(476);\n const a = r(403);\n const o = /^([0-9a-f]{32})$/i;\n const i = /^[0-9a-f]{16}$/i;\n function isValidTraceId(e) {\n return o.test(e) && e !== n.INVALID_TRACEID;\n }\n t.isValidTraceId = isValidTraceId;\n function isValidSpanId(e) {\n return i.test(e) && e !== n.INVALID_SPANID;\n }\n t.isValidSpanId = isValidSpanId;\n function isSpanContextValid(e) {\n return isValidTraceId(e.traceId) && isValidSpanId(e.spanId);\n }\n t.isSpanContextValid = isSpanContextValid;\n function wrapSpanContext(e) {\n return new a.NonRecordingSpan(e);\n }\n t.wrapSpanContext = wrapSpanContext;\n },\n 847: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SpanStatusCode = void 0;\n var r;\n (function(e) {\n e[e[\"UNSET\"] = 0] = \"UNSET\";\n e[e[\"OK\"] = 1] = \"OK\";\n e[e[\"ERROR\"] = 2] = \"ERROR\";\n })(r = t.SpanStatusCode || (t.SpanStatusCode = {}));\n },\n 475: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceFlags = void 0;\n var r;\n (function(e) {\n e[e[\"NONE\"] = 0] = \"NONE\";\n e[e[\"SAMPLED\"] = 1] = \"SAMPLED\";\n })(r = t.TraceFlags || (t.TraceFlags = {}));\n },\n 521: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.VERSION = void 0;\n t.VERSION = \"1.6.0\";\n }\n };\n var t = {};\n function __nccwpck_require__(r) {\n var n = t[r];\n if (n !== undefined) {\n return n.exports;\n }\n var a = t[r] = {\n exports: {}\n };\n var o = true;\n try {\n e[r].call(a.exports, a, a.exports, __nccwpck_require__);\n o = false;\n } finally{\n if (o) delete t[r];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var r = {};\n (()=>{\n var e = r;\n Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n e.trace = e.propagation = e.metrics = e.diag = e.context = e.INVALID_SPAN_CONTEXT = e.INVALID_TRACEID = e.INVALID_SPANID = e.isValidSpanId = e.isValidTraceId = e.isSpanContextValid = e.createTraceState = e.TraceFlags = e.SpanStatusCode = e.SpanKind = e.SamplingDecision = e.ProxyTracerProvider = e.ProxyTracer = e.defaultTextMapSetter = e.defaultTextMapGetter = e.ValueType = e.createNoopMeter = e.DiagLogLevel = e.DiagConsoleLogger = e.ROOT_CONTEXT = e.createContextKey = e.baggageEntryMetadataFromString = void 0;\n var t = __nccwpck_require__(369);\n Object.defineProperty(e, \"baggageEntryMetadataFromString\", {\n enumerable: true,\n get: function() {\n return t.baggageEntryMetadataFromString;\n }\n });\n var n = __nccwpck_require__(780);\n Object.defineProperty(e, \"createContextKey\", {\n enumerable: true,\n get: function() {\n return n.createContextKey;\n }\n });\n Object.defineProperty(e, \"ROOT_CONTEXT\", {\n enumerable: true,\n get: function() {\n return n.ROOT_CONTEXT;\n }\n });\n var a = __nccwpck_require__(972);\n Object.defineProperty(e, \"DiagConsoleLogger\", {\n enumerable: true,\n get: function() {\n return a.DiagConsoleLogger;\n }\n });\n var o = __nccwpck_require__(957);\n Object.defineProperty(e, \"DiagLogLevel\", {\n enumerable: true,\n get: function() {\n return o.DiagLogLevel;\n }\n });\n var i = __nccwpck_require__(102);\n Object.defineProperty(e, \"createNoopMeter\", {\n enumerable: true,\n get: function() {\n return i.createNoopMeter;\n }\n });\n var c = __nccwpck_require__(901);\n Object.defineProperty(e, \"ValueType\", {\n enumerable: true,\n get: function() {\n return c.ValueType;\n }\n });\n var s = __nccwpck_require__(194);\n Object.defineProperty(e, \"defaultTextMapGetter\", {\n enumerable: true,\n get: function() {\n return s.defaultTextMapGetter;\n }\n });\n Object.defineProperty(e, \"defaultTextMapSetter\", {\n enumerable: true,\n get: function() {\n return s.defaultTextMapSetter;\n }\n });\n var u = __nccwpck_require__(125);\n Object.defineProperty(e, \"ProxyTracer\", {\n enumerable: true,\n get: function() {\n return u.ProxyTracer;\n }\n });\n var l = __nccwpck_require__(846);\n Object.defineProperty(e, \"ProxyTracerProvider\", {\n enumerable: true,\n get: function() {\n return l.ProxyTracerProvider;\n }\n });\n var g = __nccwpck_require__(996);\n Object.defineProperty(e, \"SamplingDecision\", {\n enumerable: true,\n get: function() {\n return g.SamplingDecision;\n }\n });\n var p = __nccwpck_require__(357);\n Object.defineProperty(e, \"SpanKind\", {\n enumerable: true,\n get: function() {\n return p.SpanKind;\n }\n });\n var d = __nccwpck_require__(847);\n Object.defineProperty(e, \"SpanStatusCode\", {\n enumerable: true,\n get: function() {\n return d.SpanStatusCode;\n }\n });\n var _ = __nccwpck_require__(475);\n Object.defineProperty(e, \"TraceFlags\", {\n enumerable: true,\n get: function() {\n return _.TraceFlags;\n }\n });\n var f = __nccwpck_require__(98);\n Object.defineProperty(e, \"createTraceState\", {\n enumerable: true,\n get: function() {\n return f.createTraceState;\n }\n });\n var b = __nccwpck_require__(139);\n Object.defineProperty(e, \"isSpanContextValid\", {\n enumerable: true,\n get: function() {\n return b.isSpanContextValid;\n }\n });\n Object.defineProperty(e, \"isValidTraceId\", {\n enumerable: true,\n get: function() {\n return b.isValidTraceId;\n }\n });\n Object.defineProperty(e, \"isValidSpanId\", {\n enumerable: true,\n get: function() {\n return b.isValidSpanId;\n }\n });\n var v = __nccwpck_require__(476);\n Object.defineProperty(e, \"INVALID_SPANID\", {\n enumerable: true,\n get: function() {\n return v.INVALID_SPANID;\n }\n });\n Object.defineProperty(e, \"INVALID_TRACEID\", {\n enumerable: true,\n get: function() {\n return v.INVALID_TRACEID;\n }\n });\n Object.defineProperty(e, \"INVALID_SPAN_CONTEXT\", {\n enumerable: true,\n get: function() {\n return v.INVALID_SPAN_CONTEXT;\n }\n });\n const O = __nccwpck_require__(67);\n Object.defineProperty(e, \"context\", {\n enumerable: true,\n get: function() {\n return O.context;\n }\n });\n const P = __nccwpck_require__(506);\n Object.defineProperty(e, \"diag\", {\n enumerable: true,\n get: function() {\n return P.diag;\n }\n });\n const N = __nccwpck_require__(886);\n Object.defineProperty(e, \"metrics\", {\n enumerable: true,\n get: function() {\n return N.metrics;\n }\n });\n const S = __nccwpck_require__(939);\n Object.defineProperty(e, \"propagation\", {\n enumerable: true,\n get: function() {\n return S.propagation;\n }\n });\n const C = __nccwpck_require__(845);\n Object.defineProperty(e, \"trace\", {\n enumerable: true,\n get: function() {\n return C.trace;\n }\n });\n e[\"default\"] = {\n context: O.context,\n diag: P.diag,\n metrics: N.metrics,\n propagation: S.propagation,\n trace: C.trace\n };\n })();\n module.exports = r;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGkvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUksQ0FBQ0EsR0FBRUMsR0FBRUM7WUFBS0MsT0FBT0MsY0FBYyxDQUFDSCxHQUFFLGNBQWE7Z0JBQUNJLE9BQU07WUFBSTtZQUFHSixFQUFFSyxVQUFVLEdBQUMsS0FBSztZQUFFLE1BQU1DLElBQUVMLEVBQUU7WUFBSyxNQUFNTSxJQUFFTixFQUFFO1lBQUssTUFBTU8sSUFBRVAsRUFBRTtZQUFLLE1BQU1RLElBQUU7WUFBVSxNQUFNQyxJQUFFLElBQUlKLEVBQUVLLGtCQUFrQjtZQUFDLE1BQU1OO2dCQUFXTyxhQUFhLENBQUM7Z0JBQUMsT0FBT0MsY0FBYTtvQkFBQyxJQUFHLENBQUMsSUFBSSxDQUFDQyxTQUFTLEVBQUM7d0JBQUMsSUFBSSxDQUFDQSxTQUFTLEdBQUMsSUFBSVQ7b0JBQVU7b0JBQUMsT0FBTyxJQUFJLENBQUNTLFNBQVM7Z0JBQUE7Z0JBQUNDLHdCQUF3QmhCLENBQUMsRUFBQztvQkFBQyxPQUFNLENBQUMsR0FBRVEsRUFBRVMsY0FBYyxFQUFFUCxHQUFFVixHQUFFUyxFQUFFUyxPQUFPLENBQUNDLFFBQVE7Z0JBQUc7Z0JBQUNDLFNBQVE7b0JBQUMsT0FBTyxJQUFJLENBQUNDLGtCQUFrQixHQUFHRCxNQUFNO2dCQUFFO2dCQUFDRSxLQUFLdEIsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQyxHQUFHSyxDQUFDLEVBQUM7b0JBQUMsT0FBTyxJQUFJLENBQUNjLGtCQUFrQixHQUFHQyxJQUFJLENBQUN0QixHQUFFQyxHQUFFQyxNQUFLSztnQkFBRTtnQkFBQ2dCLEtBQUt2QixDQUFDLEVBQUNDLENBQUMsRUFBQztvQkFBQyxPQUFPLElBQUksQ0FBQ29CLGtCQUFrQixHQUFHRSxJQUFJLENBQUN2QixHQUFFQztnQkFB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VztZQUFLN0YsS0FBSTtnQkFBVyxPQUFPK0ssRUFBRW5ILE9BQU87WUFBQTtRQUFDO1FBQUcsTUFBTW9ILElBQUViLG9CQUFvQjtRQUFLMVAsT0FBT0MsY0FBYyxDQUFDSixHQUFFLGVBQWM7WUFBQ3VMLFlBQVc7WUFBSzdGLEtBQUk7Z0JBQVcsT0FBT2dMLEVBQUU3RSxXQUFXO1lBQUE7UUFBQztRQUFHLE1BQU04RSxJQUFFZCxvQkFBb0I7UUFBSzFQLE9BQU9DLGNBQWMsQ0FBQ0osR0FBRSxTQUFRO1lBQUN1TCxZQUFXO1lBQUs3RixLQUFJO2dCQUFXLE9BQU9pTCxFQUFFNUUsS0FBSztZQUFBO1FBQUM7UUFBRy9MLENBQUMsQ0FBQyxVQUFVLEdBQUM7WUFBQzRHLFNBQVEySixFQUFFM0osT0FBTztZQUFDTyxNQUFLcUosRUFBRXJKLElBQUk7WUFBQ21DLFNBQVFtSCxFQUFFbkgsT0FBTztZQUFDdUMsYUFBWTZFLEVBQUU3RSxXQUFXO1lBQUNFLE9BQU00RSxFQUFFNUUsS0FBSztRQUFBO0lBQUM7SUFBSzZFLE9BQU9kLE9BQU8sR0FBQzVQO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpL2luZGV4LmpzPzljMzgiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezQ5MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkNvbnRleHRBUEk9dm9pZCAwO2NvbnN0IG49cigyMjMpO2NvbnN0IGE9cigxNzIpO2NvbnN0IG89cig5MzApO2NvbnN0IGk9XCJjb250ZXh0XCI7Y29uc3QgYz1uZXcgbi5Ob29wQ29udGV4dE1hbmFnZXI7Y2xhc3MgQ29udGV4dEFQSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBDb250ZXh0QVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxDb250ZXh0TWFuYWdlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWFjdGl2ZSgpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmFjdGl2ZSgpfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkud2l0aChlLHQsciwuLi5uKX1iaW5kKGUsdCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYmluZChlLHQpfV9nZXRDb250ZXh0TWFuYWdlcigpe3JldHVybigwLGEuZ2V0R2xvYmFsKShpKXx8Y31kaXNhYmxlKCl7dGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5kaXNhYmxlKCk7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5Db250ZXh0QVBJPUNvbnRleHRBUEl9LDkzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdBUEk9dm9pZCAwO2NvbnN0IG49cig1Nik7Y29uc3QgYT1yKDkxMik7Y29uc3Qgbz1yKDk1Nyk7Y29uc3QgaT1yKDE3Mik7Y29uc3QgYz1cImRpYWdcIjtjbGFzcyBEaWFnQVBJe2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2xvZ1Byb3h5KGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCByPSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIXIpcmV0dXJuO3JldHVybiByW2VdKC4uLnQpfX1jb25zdCBlPXRoaXM7Y29uc3Qgc2V0TG9nZ2VyPSh0LHI9e2xvZ0xldmVsOm8uRGlhZ0xvZ0xldmVsLklORk99KT0+e3ZhciBuLGMscztpZih0PT09ZSl7Y29uc3QgdD1uZXcgRXJyb3IoXCJDYW5ub3QgdXNlIGRpYWcgYXMgdGhlIGxvZ2dlciBmb3IgaXRzZWxmLiBQbGVhc2UgdXNlIGEgRGlhZ0xvZ2dlciBpbXBsZW1lbnRhdGlvbiBsaWtlIENvbnNvbGVEaWFnTG9nZ2VyIG9yIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uXCIpO2UuZXJyb3IoKG49dC5zdGFjaykhPT1udWxsJiZuIT09dm9pZCAwP246dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIHI9PT1cIm51bWJlclwiKXtyPXtsb2dMZXZlbDpyfX1jb25zdCB1PSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7Y29uc3QgbD0oMCxhLmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcikoKGM9ci5sb2dMZXZlbCkhPT1udWxsJiZjIT09dm9pZCAwP2M6by5EaWFnTG9nTGV2ZWwuSU5GTyx0KTtpZih1JiYhci5zdXBwcmVzc092ZXJyaWRlTWVzc2FnZSl7Y29uc3QgZT0ocz0obmV3IEVycm9yKS5zdGFjaykhPT1udWxsJiZzIT09dm9pZCAwP3M6XCI8ZmFpbGVkIHRvIGdlbmVyYXRlIHN0YWNrdHJhY2U+XCI7dS53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIGJlIG92ZXJ3cml0dGVuIGZyb20gJHtlfWApO2wud2FybihgQ3VycmVudCBsb2dnZXIgd2lsbCBvdmVyd3JpdGUgb25lIGFscmVhZHkgcmVnaXN0ZXJlZCBmcm9tICR7ZX1gKX1yZXR1cm4oMCxpLnJlZ2lzdGVyR2xvYmFsKShcImRpYWdcIixsLGUsdHJ1ZSl9O2Uuc2V0TG9nZ2VyPXNldExvZ2dlcjtlLmRpc2FibGU9KCk9PnsoMCxpLnVucmVnaXN0ZXJHbG9iYWwpKGMsZSl9O2UuY3JlYXRlQ29tcG9uZW50TG9nZ2VyPWU9Pm5ldyBuLkRpYWdDb21wb25lbnRMb2dnZXIoZSk7ZS52ZXJib3NlPV9sb2dQcm94eShcInZlcmJvc2VcIik7ZS5kZWJ1Zz1fbG9nUHJveHkoXCJkZWJ1Z1wiKTtlLmluZm89X2xvZ1Byb3h5KFwiaW5mb1wiKTtlLndhcm49X2xvZ1Byb3h5KFwid2FyblwiKTtlLmVycm9yPV9sb2dQcm94eShcImVycm9yXCIpfXN0YXRpYyBpbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IERpYWdBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfX10LkRpYWdBUEk9RGlhZ0FQSX0sNjUzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTWV0cmljc0FQST12b2lkIDA7Y29uc3Qgbj1yKDY2MCk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cIm1ldHJpY3NcIjtjbGFzcyBNZXRyaWNzQVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IE1ldHJpY3NBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbE1ldGVyUHJvdmlkZXIoZSl7cmV0dXJuKDAsYS5yZWdpc3Rlckdsb2JhbCkoaSxlLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX1nZXRNZXRlclByb3ZpZGVyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxuLk5PT1BfTUVURVJfUFJPVklERVJ9Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLHQscil9ZGlzYWJsZSgpeygwLGEudW5yZWdpc3Rlckdsb2JhbCkoaSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9fXQuTWV0cmljc0FQST1NZXRyaWNzQVBJfSwxODE6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm9wYWdhdGlvbkFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg3NCk7Y29uc3Qgbz1yKDE5NCk7Y29uc3QgaT1yKDI3Nyk7Y29uc3QgYz1yKDM2OSk7Y29uc3Qgcz1yKDkzMCk7Y29uc3QgdT1cInByb3BhZ2F0aW9uXCI7Y29uc3QgbD1uZXcgYS5Ob29wVGV4dE1hcFByb3BhZ2F0b3I7Y2xhc3MgUHJvcGFnYXRpb25BUEl7Y29uc3RydWN0b3IoKXt0aGlzLmNyZWF0ZUJhZ2dhZ2U9Yy5jcmVhdGVCYWdnYWdlO3RoaXMuZ2V0QmFnZ2FnZT1pLmdldEJhZ2dhZ2U7dGhpcy5nZXRBY3RpdmVCYWdnYWdlPWkuZ2V0QWN0aXZlQmFnZ2FnZTt0aGlzLnNldEJhZ2dhZ2U9aS5zZXRCYWdnYWdlO3RoaXMuZGVsZXRlQmFnZ2FnZT1pLmRlbGV0ZUJhZ2dhZ2V9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgUHJvcGFnYXRpb25BUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFByb3BhZ2F0b3IoZSl7cmV0dXJuKDAsbi5yZWdpc3Rlckdsb2JhbCkodSxlLHMuRGlhZ0FQSS5pbnN0YW5jZSgpKX1pbmplY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcFNldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5pbmplY3QoZSx0LHIpfWV4dHJhY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcEdldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5leHRyYWN0KGUsdCxyKX1maWVsZHMoKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmZpZWxkcygpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHUscy5EaWFnQVBJLmluc3RhbmNlKCkpfV9nZXRHbG9iYWxQcm9wYWdhdG9yKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHUpfHxsfX10LlByb3BhZ2F0aW9uQVBJPVByb3BhZ2F0aW9uQVBJfSw5OTc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg0Nik7Y29uc3Qgbz1yKDEzOSk7Y29uc3QgaT1yKDYwNyk7Y29uc3QgYz1yKDkzMCk7Y29uc3Qgcz1cInRyYWNlXCI7Y2xhc3MgVHJhY2VBUEl7Y29uc3RydWN0b3IoKXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBhLlByb3h5VHJhY2VyUHJvdmlkZXI7dGhpcy53cmFwU3BhbkNvbnRleHQ9by53cmFwU3BhbkNvbnRleHQ7dGhpcy5pc1NwYW5Db250ZXh0VmFsaWQ9by5pc1NwYW5Db250ZXh0VmFsaWQ7dGhpcy5kZWxldGVTcGFuPWkuZGVsZXRlU3Bhbjt0aGlzLmdldFNwYW49aS5nZXRTcGFuO3RoaXMuZ2V0QWN0aXZlU3Bhbj1pLmdldEFjdGl2ZVNwYW47dGhpcy5nZXRTcGFuQ29udGV4dD1pLmdldFNwYW5Db250ZXh0O3RoaXMuc2V0U3Bhbj1pLnNldFNwYW47dGhpcy5zZXRTcGFuQ29udGV4dD1pLnNldFNwYW5Db250ZXh0fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IFRyYWNlQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxUcmFjZXJQcm92aWRlcihlKXtjb25zdCB0PSgwLG4ucmVnaXN0ZXJHbG9iYWwpKHMsdGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcixjLkRpYWdBUEkuaW5zdGFuY2UoKSk7aWYodCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlci5zZXREZWxlZ2F0ZShlKX1yZXR1cm4gdH1nZXRUcmFjZXJQcm92aWRlcigpe3JldHVybigwLG4uZ2V0R2xvYmFsKShzKXx8dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcn1nZXRUcmFjZXIoZSx0KXtyZXR1cm4gdGhpcy5nZXRUcmFjZXJQcm92aWRlcigpLmdldFRyYWNlcihlLHQpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHMsYy5EaWFnQVBJLmluc3RhbmNlKCkpO3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcn19dC5UcmFjZUFQST1UcmFjZUFQSX0sMjc3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGVsZXRlQmFnZ2FnZT10LnNldEJhZ2dhZ2U9dC5nZXRBY3RpdmVCYWdnYWdlPXQuZ2V0QmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDc4MCk7Y29uc3Qgbz0oMCxhLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBCYWdnYWdlIEtleVwiKTtmdW5jdGlvbiBnZXRCYWdnYWdlKGUpe3JldHVybiBlLmdldFZhbHVlKG8pfHx1bmRlZmluZWR9dC5nZXRCYWdnYWdlPWdldEJhZ2dhZ2U7ZnVuY3Rpb24gZ2V0QWN0aXZlQmFnZ2FnZSgpe3JldHVybiBnZXRCYWdnYWdlKG4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZUJhZ2dhZ2U9Z2V0QWN0aXZlQmFnZ2FnZTtmdW5jdGlvbiBzZXRCYWdnYWdlKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUobyx0KX10LnNldEJhZ2dhZ2U9c2V0QmFnZ2FnZTtmdW5jdGlvbiBkZWxldGVCYWdnYWdlKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKG8pfXQuZGVsZXRlQmFnZ2FnZT1kZWxldGVCYWdnYWdlfSw5OTM6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQmFnZ2FnZUltcGw9dm9pZCAwO2NsYXNzIEJhZ2dhZ2VJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2VudHJpZXM9ZT9uZXcgTWFwKGUpOm5ldyBNYXB9Z2V0RW50cnkoZSl7Y29uc3QgdD10aGlzLl9lbnRyaWVzLmdldChlKTtpZighdCl7cmV0dXJuIHVuZGVmaW5lZH1yZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0KX1nZXRBbGxFbnRyaWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fZW50cmllcy5lbnRyaWVzKCkpLm1hcCgoKFtlLHRdKT0+W2UsdF0pKX1zZXRFbnRyeShlLHQpe2NvbnN0IHI9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO3IuX2VudHJpZXMuc2V0KGUsdCk7cmV0dXJuIHJ9cmVtb3ZlRW50cnkoZSl7Y29uc3QgdD1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7dC5fZW50cmllcy5kZWxldGUoZSk7cmV0dXJuIHR9cmVtb3ZlRW50cmllcyguLi5lKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTtmb3IoY29uc3QgciBvZiBlKXt0Ll9lbnRyaWVzLmRlbGV0ZShyKX1yZXR1cm4gdH1jbGVhcigpe3JldHVybiBuZXcgQmFnZ2FnZUltcGx9fXQuQmFnZ2FnZUltcGw9QmFnZ2FnZUltcGx9LDgzMDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD12b2lkIDA7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD1TeW1ib2woXCJCYWdnYWdlRW50cnlNZXRhZGF0YVwiKX0sMzY5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXQuY3JlYXRlQmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7Y29uc3QgYT1yKDk5Myk7Y29uc3Qgbz1yKDgzMCk7Y29uc3QgaT1uLkRpYWdBUEkuaW5zdGFuY2UoKTtmdW5jdGlvbiBjcmVhdGVCYWdnYWdlKGU9e30pe3JldHVybiBuZXcgYS5CYWdnYWdlSW1wbChuZXcgTWFwKE9iamVjdC5lbnRyaWVzKGUpKSl9dC5jcmVhdGVCYWdnYWdlPWNyZWF0ZUJhZ2dhZ2U7ZnVuY3Rpb24gYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nKGUpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7aS5lcnJvcihgQ2Fubm90IGNyZWF0ZSBiYWdnYWdlIG1ldGFkYXRhIGZyb20gdW5rbm93biB0eXBlOiAke3R5cGVvZiBlfWApO2U9XCJcIn1yZXR1cm57X19UWVBFX186by5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbCx0b1N0cmluZygpe3JldHVybiBlfX19dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9YmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfSw2NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNvbnRleHQ9dm9pZCAwO2NvbnN0IG49cig0OTEpO3QuY29udGV4dD1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKX0sMjIzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcENvbnRleHRNYW5hZ2VyPXZvaWQgMDtjb25zdCBuPXIoNzgwKTtjbGFzcyBOb29wQ29udGV4dE1hbmFnZXJ7YWN0aXZlKCl7cmV0dXJuIG4uUk9PVF9DT05URVhUfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHQuY2FsbChyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdH1lbmFibGUoKXtyZXR1cm4gdGhpc31kaXNhYmxlKCl7cmV0dXJuIHRoaXN9fXQuTm9vcENvbnRleHRNYW5hZ2VyPU5vb3BDb250ZXh0TWFuYWdlcn0sNzgwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlJPT1RfQ09OVEVYVD10LmNyZWF0ZUNvbnRleHRLZXk9dm9pZCAwO2Z1bmN0aW9uIGNyZWF0ZUNvbnRleHRLZXkoZSl7cmV0dXJuIFN5bWJvbC5mb3IoZSl9dC5jcmVhdGVDb250ZXh0S2V5PWNyZWF0ZUNvbnRleHRLZXk7Y2xhc3MgQmFzZUNvbnRleHR7Y29uc3RydWN0b3IoZSl7Y29uc3QgdD10aGlzO3QuX2N1cnJlbnRDb250ZXh0PWU/bmV3IE1hcChlKTpuZXcgTWFwO3QuZ2V0VmFsdWU9ZT0+dC5fY3VycmVudENvbnRleHQuZ2V0KGUpO3Quc2V0VmFsdWU9KGUscik9Pntjb25zdCBuPW5ldyBCYXNlQ29udGV4dCh0Ll9jdXJyZW50Q29udGV4dCk7bi5fY3VycmVudENvbnRleHQuc2V0KGUscik7cmV0dXJuIG59O3QuZGVsZXRlVmFsdWU9ZT0+e2NvbnN0IHI9bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtyLl9jdXJyZW50Q29udGV4dC5kZWxldGUoZSk7cmV0dXJuIHJ9fX10LlJPT1RfQ09OVEVYVD1uZXcgQmFzZUNvbnRleHR9LDUwNjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRpYWc9dm9pZCAwO2NvbnN0IG49cig5MzApO3QuZGlhZz1uLkRpYWdBUEkuaW5zdGFuY2UoKX0sNTY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29tcG9uZW50TG9nZ2VyPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjbGFzcyBEaWFnQ29tcG9uZW50TG9nZ2Vye2NvbnN0cnVjdG9yKGUpe3RoaXMuX25hbWVzcGFjZT1lLm5hbWVzcGFjZXx8XCJEaWFnQ29tcG9uZW50TG9nZ2VyXCJ9ZGVidWcoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZGVidWdcIix0aGlzLl9uYW1lc3BhY2UsZSl9ZXJyb3IoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZXJyb3JcIix0aGlzLl9uYW1lc3BhY2UsZSl9aW5mbyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJpbmZvXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXdhcm4oLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwid2FyblwiLHRoaXMuX25hbWVzcGFjZSxlKX12ZXJib3NlKC4uLmUpe3JldHVybiBsb2dQcm94eShcInZlcmJvc2VcIix0aGlzLl9uYW1lc3BhY2UsZSl9fXQuRGlhZ0NvbXBvbmVudExvZ2dlcj1EaWFnQ29tcG9uZW50TG9nZ2VyO2Z1bmN0aW9uIGxvZ1Byb3h5KGUsdCxyKXtjb25zdCBhPSgwLG4uZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIWEpe3JldHVybn1yLnVuc2hpZnQodCk7cmV0dXJuIGFbZV0oLi4ucil9fSw5NzI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0NvbnNvbGVMb2dnZXI9dm9pZCAwO2NvbnN0IHI9W3tuOlwiZXJyb3JcIixjOlwiZXJyb3JcIn0se246XCJ3YXJuXCIsYzpcIndhcm5cIn0se246XCJpbmZvXCIsYzpcImluZm9cIn0se246XCJkZWJ1Z1wiLGM6XCJkZWJ1Z1wifSx7bjpcInZlcmJvc2VcIixjOlwidHJhY2VcIn1dO2NsYXNzIERpYWdDb25zb2xlTG9nZ2Vye2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2NvbnNvbGVGdW5jKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtpZihjb25zb2xlKXtsZXQgcj1jb25zb2xlW2VdO2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXtyPWNvbnNvbGUubG9nfWlmKHR5cGVvZiByPT09XCJmdW5jdGlvblwiKXtyZXR1cm4gci5hcHBseShjb25zb2xlLHQpfX19fWZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXt0aGlzW3JbZV0ubl09X2NvbnNvbGVGdW5jKHJbZV0uYyl9fX10LkRpYWdDb25zb2xlTG9nZ2VyPURpYWdDb25zb2xlTG9nZ2VyfSw5MTI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXI9dm9pZCAwO2NvbnN0IG49cig5NTcpO2Z1bmN0aW9uIGNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcihlLHQpe2lmKGU8bi5EaWFnTG9nTGV2ZWwuTk9ORSl7ZT1uLkRpYWdMb2dMZXZlbC5OT05FfWVsc2UgaWYoZT5uLkRpYWdMb2dMZXZlbC5BTEwpe2U9bi5EaWFnTG9nTGV2ZWwuQUxMfXQ9dHx8e307ZnVuY3Rpb24gX2ZpbHRlckZ1bmMocixuKXtjb25zdCBhPXRbcl07aWYodHlwZW9mIGE9PT1cImZ1bmN0aW9uXCImJmU+PW4pe3JldHVybiBhLmJpbmQodCl9cmV0dXJuIGZ1bmN0aW9uKCl7fX1yZXR1cm57ZXJyb3I6X2ZpbHRlckZ1bmMoXCJlcnJvclwiLG4uRGlhZ0xvZ0xldmVsLkVSUk9SKSx3YXJuOl9maWx0ZXJGdW5jKFwid2FyblwiLG4uRGlhZ0xvZ0xldmVsLldBUk4pLGluZm86X2ZpbHRlckZ1bmMoXCJpbmZvXCIsbi5EaWFnTG9nTGV2ZWwuSU5GTyksZGVidWc6X2ZpbHRlckZ1bmMoXCJkZWJ1Z1wiLG4uRGlhZ0xvZ0xldmVsLkRFQlVHKSx2ZXJib3NlOl9maWx0ZXJGdW5jKFwidmVyYm9zZVwiLG4uRGlhZ0xvZ0xldmVsLlZFUkJPU0UpfX10LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj1jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXJ9LDk1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnTG9nTGV2ZWw9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT05FXCJdPTBdPVwiTk9ORVwiO2VbZVtcIkVSUk9SXCJdPTMwXT1cIkVSUk9SXCI7ZVtlW1wiV0FSTlwiXT01MF09XCJXQVJOXCI7ZVtlW1wiSU5GT1wiXT02MF09XCJJTkZPXCI7ZVtlW1wiREVCVUdcIl09NzBdPVwiREVCVUdcIjtlW2VbXCJWRVJCT1NFXCJdPTgwXT1cIlZFUkJPU0VcIjtlW2VbXCJBTExcIl09OTk5OV09XCJBTExcIn0pKHI9dC5EaWFnTG9nTGV2ZWx8fCh0LkRpYWdMb2dMZXZlbD17fSkpfSwxNzI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC51bnJlZ2lzdGVyR2xvYmFsPXQuZ2V0R2xvYmFsPXQucmVnaXN0ZXJHbG9iYWw9dm9pZCAwO2NvbnN0IG49cigyMDApO2NvbnN0IGE9cig1MjEpO2NvbnN0IG89cigxMzApO2NvbnN0IGk9YS5WRVJTSU9OLnNwbGl0KFwiLlwiKVswXTtjb25zdCBjPVN5bWJvbC5mb3IoYG9wZW50ZWxlbWV0cnkuanMuYXBpLiR7aX1gKTtjb25zdCBzPW4uX2dsb2JhbFRoaXM7ZnVuY3Rpb24gcmVnaXN0ZXJHbG9iYWwoZSx0LHIsbj1mYWxzZSl7dmFyIG87Y29uc3QgaT1zW2NdPShvPXNbY10pIT09bnVsbCYmbyE9PXZvaWQgMD9vOnt2ZXJzaW9uOmEuVkVSU0lPTn07aWYoIW4mJmlbZV0pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IEF0dGVtcHRlZCBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIG9mIEFQSTogJHtlfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYoaS52ZXJzaW9uIT09YS5WRVJTSU9OKXtjb25zdCB0PW5ldyBFcnJvcihgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RyYXRpb24gb2YgdmVyc2lvbiB2JHtpLnZlcnNpb259IGZvciAke2V9IGRvZXMgbm90IG1hdGNoIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBBUEkgdiR7YS5WRVJTSU9OfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aVtlXT10O3IuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0ZXJlZCBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO3JldHVybiB0cnVlfXQucmVnaXN0ZXJHbG9iYWw9cmVnaXN0ZXJHbG9iYWw7ZnVuY3Rpb24gZ2V0R2xvYmFsKGUpe3ZhciB0LHI7Y29uc3Qgbj0odD1zW2NdKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQudmVyc2lvbjtpZighbnx8ISgwLG8uaXNDb21wYXRpYmxlKShuKSl7cmV0dXJufXJldHVybihyPXNbY10pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6cltlXX10LmdldEdsb2JhbD1nZXRHbG9iYWw7ZnVuY3Rpb24gdW5yZWdpc3Rlckdsb2JhbChlLHQpe3QuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogVW5yZWdpc3RlcmluZyBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO2NvbnN0IHI9c1tjXTtpZihyKXtkZWxldGUgcltlXX19dC51bnJlZ2lzdGVyR2xvYmFsPXVucmVnaXN0ZXJHbG9iYWx9LDEzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmlzQ29tcGF0aWJsZT10Ll9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrPXZvaWQgMDtjb25zdCBuPXIoNTIxKTtjb25zdCBhPS9eKFxcZCspXFwuKFxcZCspXFwuKFxcZCspKC0oLispKT8kLztmdW5jdGlvbiBfbWFrZUNvbXBhdGliaWxpdHlDaGVjayhlKXtjb25zdCB0PW5ldyBTZXQoW2VdKTtjb25zdCByPW5ldyBTZXQ7Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4oKT0+ZmFsc2V9Y29uc3Qgbz17bWFqb3I6K25bMV0sbWlub3I6K25bMl0scGF0Y2g6K25bM10scHJlcmVsZWFzZTpuWzRdfTtpZihvLnByZXJlbGVhc2UhPW51bGwpe3JldHVybiBmdW5jdGlvbiBpc0V4YWN0bWF0Y2godCl7cmV0dXJuIHQ9PT1lfX1mdW5jdGlvbiBfcmVqZWN0KGUpe3IuYWRkKGUpO3JldHVybiBmYWxzZX1mdW5jdGlvbiBfYWNjZXB0KGUpe3QuYWRkKGUpO3JldHVybiB0cnVlfXJldHVybiBmdW5jdGlvbiBpc0NvbXBhdGlibGUoZSl7aWYodC5oYXMoZSkpe3JldHVybiB0cnVlfWlmKHIuaGFzKGUpKXtyZXR1cm4gZmFsc2V9Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4gX3JlamVjdChlKX1jb25zdCBpPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKGkucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvciE9PWkubWFqb3Ipe3JldHVybiBfcmVqZWN0KGUpfWlmKG8ubWFqb3I9PT0wKXtpZihvLm1pbm9yPT09aS5taW5vciYmby5wYXRjaDw9aS5wYXRjaCl7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9aWYoby5taW5vcjw9aS5taW5vcil7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9fXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2s7dC5pc0NvbXBhdGlibGU9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2sobi5WRVJTSU9OKX0sODg2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QubWV0cmljcz12b2lkIDA7Y29uc3Qgbj1yKDY1Myk7dC5tZXRyaWNzPW4uTWV0cmljc0FQSS5nZXRJbnN0YW5jZSgpfSw5MDE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVmFsdWVUeXBlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiSU5UXCJdPTBdPVwiSU5UXCI7ZVtlW1wiRE9VQkxFXCJdPTFdPVwiRE9VQkxFXCJ9KShyPXQuVmFsdWVUeXBlfHwodC5WYWx1ZVR5cGU9e30pKX0sMTAyOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZU5vb3BNZXRlcj10Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz10Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz10Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz10Lk5PT1BfSElTVE9HUkFNX01FVFJJQz10Lk5PT1BfQ09VTlRFUl9NRVRSSUM9dC5OT09QX01FVEVSPXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlTWV0cmljPXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcENvdW50ZXJNZXRyaWM9dC5Ob29wTWV0cmljPXQuTm9vcE1ldGVyPXZvaWQgMDtjbGFzcyBOb29wTWV0ZXJ7Y29uc3RydWN0b3IoKXt9Y3JlYXRlSGlzdG9ncmFtKGUscil7cmV0dXJuIHQuTk9PUF9ISVNUT0dSQU1fTUVUUklDfWNyZWF0ZUNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX0NPVU5URVJfTUVUUklDfWNyZWF0ZVVwRG93bkNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZUdhdWdlKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDfWFkZEJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUsdCl7fXJlbW92ZUJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUpe319dC5Ob29wTWV0ZXI9Tm9vcE1ldGVyO2NsYXNzIE5vb3BNZXRyaWN7fXQuTm9vcE1ldHJpYz1Ob29wTWV0cmljO2NsYXNzIE5vb3BDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3thZGQoZSx0KXt9fXQuTm9vcENvdW50ZXJNZXRyaWM9Tm9vcENvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wVXBEb3duQ291bnRlck1ldHJpYz1Ob29wVXBEb3duQ291bnRlck1ldHJpYztjbGFzcyBOb29wSGlzdG9ncmFtTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3tyZWNvcmQoZSx0KXt9fXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz1Ob29wSGlzdG9ncmFtTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlTWV0cmlje2FkZENhbGxiYWNrKGUpe31yZW1vdmVDYWxsYmFjayhlKXt9fXQuTm9vcE9ic2VydmFibGVNZXRyaWM9Tm9vcE9ic2VydmFibGVNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYz1Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX01FVEVSPW5ldyBOb29wTWV0ZXI7dC5OT09QX0NPVU5URVJfTUVUUklDPW5ldyBOb29wQ291bnRlck1ldHJpYzt0Lk5PT1BfSElTVE9HUkFNX01FVFJJQz1uZXcgTm9vcEhpc3RvZ3JhbU1ldHJpYzt0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljO2Z1bmN0aW9uIGNyZWF0ZU5vb3BNZXRlcigpe3JldHVybiB0Lk5PT1BfTUVURVJ9dC5jcmVhdGVOb29wTWV0ZXI9Y3JlYXRlTm9vcE1ldGVyfSw2NjA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5OT09QX01FVEVSX1BST1ZJREVSPXQuTm9vcE1ldGVyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMDIpO2NsYXNzIE5vb3BNZXRlclByb3ZpZGVye2dldE1ldGVyKGUsdCxyKXtyZXR1cm4gbi5OT09QX01FVEVSfX10Lk5vb3BNZXRlclByb3ZpZGVyPU5vb3BNZXRlclByb3ZpZGVyO3QuTk9PUF9NRVRFUl9QUk9WSURFUj1uZXcgTm9vcE1ldGVyUHJvdmlkZXJ9LDIwMDpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDQ2KSx0KX0sNjUxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Ll9nbG9iYWxUaGlzPXZvaWQgMDt0Ll9nbG9iYWxUaGlzPXR5cGVvZiBnbG9iYWxUaGlzPT09XCJvYmplY3RcIj9nbG9iYWxUaGlzOmdsb2JhbH0sNDY6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSl9OmZ1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO2Vbbl09dFtyXX0pO3ZhciBhPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKWlmKHIhPT1cImRlZmF1bHRcIiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKW4odCxlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2Eocig2NTEpLHQpfSw5Mzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5wcm9wYWdhdGlvbj12b2lkIDA7Y29uc3Qgbj1yKDE4MSk7dC5wcm9wYWdhdGlvbj1uLlByb3BhZ2F0aW9uQVBJLmdldEluc3RhbmNlKCl9LDg3NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVGV4dE1hcFByb3BhZ2F0b3I9dm9pZCAwO2NsYXNzIE5vb3BUZXh0TWFwUHJvcGFnYXRvcntpbmplY3QoZSx0KXt9ZXh0cmFjdChlLHQpe3JldHVybiBlfWZpZWxkcygpe3JldHVybltdfX10Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj1Ob29wVGV4dE1hcFByb3BhZ2F0b3J9LDE5NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWZhdWx0VGV4dE1hcFNldHRlcj10LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXZvaWQgMDt0LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXtnZXQoZSx0KXtpZihlPT1udWxsKXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBlW3RdfSxrZXlzKGUpe2lmKGU9PW51bGwpe3JldHVybltdfXJldHVybiBPYmplY3Qua2V5cyhlKX19O3QuZGVmYXVsdFRleHRNYXBTZXR0ZXI9e3NldChlLHQscil7aWYoZT09bnVsbCl7cmV0dXJufWVbdF09cn19fSw4NDU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC50cmFjZT12b2lkIDA7Y29uc3Qgbj1yKDk5Nyk7dC50cmFjZT1uLlRyYWNlQVBJLmdldEluc3RhbmNlKCl9LDQwMzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vblJlY29yZGluZ1NwYW49dm9pZCAwO2NvbnN0IG49cig0NzYpO2NsYXNzIE5vblJlY29yZGluZ1NwYW57Y29uc3RydWN0b3IoZT1uLklOVkFMSURfU1BBTl9DT05URVhUKXt0aGlzLl9zcGFuQ29udGV4dD1lfXNwYW5Db250ZXh0KCl7cmV0dXJuIHRoaXMuX3NwYW5Db250ZXh0fXNldEF0dHJpYnV0ZShlLHQpe3JldHVybiB0aGlzfXNldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIHRoaXN9YWRkRXZlbnQoZSx0KXtyZXR1cm4gdGhpc31zZXRTdGF0dXMoZSl7cmV0dXJuIHRoaXN9dXBkYXRlTmFtZShlKXtyZXR1cm4gdGhpc31lbmQoZSl7fWlzUmVjb3JkaW5nKCl7cmV0dXJuIGZhbHNlfXJlY29yZEV4Y2VwdGlvbihlLHQpe319dC5Ob25SZWNvcmRpbmdTcGFuPU5vblJlY29yZGluZ1NwYW59LDYxNDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUcmFjZXI9dm9pZCAwO2NvbnN0IG49cig0OTEpO2NvbnN0IGE9cig2MDcpO2NvbnN0IG89cig0MDMpO2NvbnN0IGk9cigxMzkpO2NvbnN0IGM9bi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCk7Y2xhc3MgTm9vcFRyYWNlcntzdGFydFNwYW4oZSx0LHI9Yy5hY3RpdmUoKSl7Y29uc3Qgbj1Cb29sZWFuKHQ9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnJvb3QpO2lmKG4pe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufWNvbnN0IHM9ciYmKDAsYS5nZXRTcGFuQ29udGV4dCkocik7aWYoaXNTcGFuQ29udGV4dChzKSYmKDAsaS5pc1NwYW5Db250ZXh0VmFsaWQpKHMpKXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3BhbihzKX1lbHNle3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7bGV0IG87bGV0IGk7bGV0IHM7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtyZXR1cm59ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Mil7cz10fWVsc2UgaWYoYXJndW1lbnRzLmxlbmd0aD09PTMpe289dDtzPXJ9ZWxzZXtvPXQ7aT1yO3M9bn1jb25zdCB1PWkhPT1udWxsJiZpIT09dm9pZCAwP2k6Yy5hY3RpdmUoKTtjb25zdCBsPXRoaXMuc3RhcnRTcGFuKGUsbyx1KTtjb25zdCBnPSgwLGEuc2V0U3BhbikodSxsKTtyZXR1cm4gYy53aXRoKGcscyx1bmRlZmluZWQsbCl9fXQuTm9vcFRyYWNlcj1Ob29wVHJhY2VyO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHQoZSl7cmV0dXJuIHR5cGVvZiBlPT09XCJvYmplY3RcIiYmdHlwZW9mIGVbXCJzcGFuSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlRmxhZ3NcIl09PT1cIm51bWJlclwifX0sMTI0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjbGFzcyBOb29wVHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXtyZXR1cm4gbmV3IG4uTm9vcFRyYWNlcn19dC5Ob29wVHJhY2VyUHJvdmlkZXI9Tm9vcFRyYWNlclByb3ZpZGVyfSwxMjU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDYxNCk7Y29uc3QgYT1uZXcgbi5Ob29wVHJhY2VyO2NsYXNzIFByb3h5VHJhY2Vye2NvbnN0cnVjdG9yKGUsdCxyLG4pe3RoaXMuX3Byb3ZpZGVyPWU7dGhpcy5uYW1lPXQ7dGhpcy52ZXJzaW9uPXI7dGhpcy5vcHRpb25zPW59c3RhcnRTcGFuKGUsdCxyKXtyZXR1cm4gdGhpcy5fZ2V0VHJhY2VyKCkuc3RhcnRTcGFuKGUsdCxyKX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7Y29uc3QgYT10aGlzLl9nZXRUcmFjZXIoKTtyZXR1cm4gUmVmbGVjdC5hcHBseShhLnN0YXJ0QWN0aXZlU3BhbixhLGFyZ3VtZW50cyl9X2dldFRyYWNlcigpe2lmKHRoaXMuX2RlbGVnYXRlKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9Y29uc3QgZT10aGlzLl9wcm92aWRlci5nZXREZWxlZ2F0ZVRyYWNlcih0aGlzLm5hbWUsdGhpcy52ZXJzaW9uLHRoaXMub3B0aW9ucyk7aWYoIWUpe3JldHVybiBhfXRoaXMuX2RlbGVnYXRlPWU7cmV0dXJuIHRoaXMuX2RlbGVnYXRlfX10LlByb3h5VHJhY2VyPVByb3h5VHJhY2VyfSw4NDY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoMTI1KTtjb25zdCBhPXIoMTI0KTtjb25zdCBvPW5ldyBhLk5vb3BUcmFjZXJQcm92aWRlcjtjbGFzcyBQcm94eVRyYWNlclByb3ZpZGVye2dldFRyYWNlcihlLHQscil7dmFyIGE7cmV0dXJuKGE9dGhpcy5nZXREZWxlZ2F0ZVRyYWNlcihlLHQscikpIT09bnVsbCYmYSE9PXZvaWQgMD9hOm5ldyBuLlByb3h5VHJhY2VyKHRoaXMsZSx0LHIpfWdldERlbGVnYXRlKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5fZGVsZWdhdGUpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm99c2V0RGVsZWdhdGUoZSl7dGhpcy5fZGVsZWdhdGU9ZX1nZXREZWxlZ2F0ZVRyYWNlcihlLHQscil7dmFyIG47cmV0dXJuKG49dGhpcy5fZGVsZWdhdGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5nZXRUcmFjZXIoZSx0LHIpfX10LlByb3h5VHJhY2VyUHJvdmlkZXI9UHJveHlUcmFjZXJQcm92aWRlcn0sOTk2OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNhbXBsaW5nRGVjaXNpb249dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT1RfUkVDT1JEXCJdPTBdPVwiTk9UX1JFQ09SRFwiO2VbZVtcIlJFQ09SRFwiXT0xXT1cIlJFQ09SRFwiO2VbZVtcIlJFQ09SRF9BTkRfU0FNUExFRFwiXT0yXT1cIlJFQ09SRF9BTkRfU0FNUExFRFwifSkocj10LlNhbXBsaW5nRGVjaXNpb258fCh0LlNhbXBsaW5nRGVjaXNpb249e30pKX0sNjA3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZ2V0U3BhbkNvbnRleHQ9dC5zZXRTcGFuQ29udGV4dD10LmRlbGV0ZVNwYW49dC5zZXRTcGFuPXQuZ2V0QWN0aXZlU3Bhbj10LmdldFNwYW49dm9pZCAwO2NvbnN0IG49cig3ODApO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89cig0OTEpO2NvbnN0IGk9KDAsbi5jcmVhdGVDb250ZXh0S2V5KShcIk9wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgU1BBTlwiKTtmdW5jdGlvbiBnZXRTcGFuKGUpe3JldHVybiBlLmdldFZhbHVlKGkpfHx1bmRlZmluZWR9dC5nZXRTcGFuPWdldFNwYW47ZnVuY3Rpb24gZ2V0QWN0aXZlU3Bhbigpe3JldHVybiBnZXRTcGFuKG8uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZVNwYW49Z2V0QWN0aXZlU3BhbjtmdW5jdGlvbiBzZXRTcGFuKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUoaSx0KX10LnNldFNwYW49c2V0U3BhbjtmdW5jdGlvbiBkZWxldGVTcGFuKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKGkpfXQuZGVsZXRlU3Bhbj1kZWxldGVTcGFuO2Z1bmN0aW9uIHNldFNwYW5Db250ZXh0KGUsdCl7cmV0dXJuIHNldFNwYW4oZSxuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKHQpKX10LnNldFNwYW5Db250ZXh0PXNldFNwYW5Db250ZXh0O2Z1bmN0aW9uIGdldFNwYW5Db250ZXh0KGUpe3ZhciB0O3JldHVybih0PWdldFNwYW4oZSkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5zcGFuQ29udGV4dCgpfXQuZ2V0U3BhbkNvbnRleHQ9Z2V0U3BhbkNvbnRleHR9LDMyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlU3RhdGVJbXBsPXZvaWQgMDtjb25zdCBuPXIoNTY0KTtjb25zdCBhPTMyO2NvbnN0IG89NTEyO2NvbnN0IGk9XCIsXCI7Y29uc3QgYz1cIj1cIjtjbGFzcyBUcmFjZVN0YXRlSW1wbHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXA7aWYoZSl0aGlzLl9wYXJzZShlKX1zZXQoZSx0KXtjb25zdCByPXRoaXMuX2Nsb25lKCk7aWYoci5faW50ZXJuYWxTdGF0ZS5oYXMoZSkpe3IuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpfXIuX2ludGVybmFsU3RhdGUuc2V0KGUsdCk7cmV0dXJuIHJ9dW5zZXQoZSl7Y29uc3QgdD10aGlzLl9jbG9uZSgpO3QuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpO3JldHVybiB0fWdldChlKXtyZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZS5nZXQoZSl9c2VyaWFsaXplKCl7cmV0dXJuIHRoaXMuX2tleXMoKS5yZWR1Y2UoKChlLHQpPT57ZS5wdXNoKHQrYyt0aGlzLmdldCh0KSk7cmV0dXJuIGV9KSxbXSkuam9pbihpKX1fcGFyc2UoZSl7aWYoZS5sZW5ndGg+bylyZXR1cm47dGhpcy5faW50ZXJuYWxTdGF0ZT1lLnNwbGl0KGkpLnJldmVyc2UoKS5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgcj10LnRyaW0oKTtjb25zdCBhPXIuaW5kZXhPZihjKTtpZihhIT09LTEpe2NvbnN0IG89ci5zbGljZSgwLGEpO2NvbnN0IGk9ci5zbGljZShhKzEsdC5sZW5ndGgpO2lmKCgwLG4udmFsaWRhdGVLZXkpKG8pJiYoMCxuLnZhbGlkYXRlVmFsdWUpKGkpKXtlLnNldChvLGkpfWVsc2V7fX1yZXR1cm4gZX0pLG5ldyBNYXApO2lmKHRoaXMuX2ludGVybmFsU3RhdGUuc2l6ZT5hKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAoQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmVudHJpZXMoKSkucmV2ZXJzZSgpLnNsaWNlKDAsYSkpfX1fa2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUua2V5cygpKS5yZXZlcnNlKCl9X2Nsb25lKCl7Y29uc3QgZT1uZXcgVHJhY2VTdGF0ZUltcGw7ZS5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwKHRoaXMuX2ludGVybmFsU3RhdGUpO3JldHVybiBlfX10LlRyYWNlU3RhdGVJbXBsPVRyYWNlU3RhdGVJbXBsfSw1NjQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudmFsaWRhdGVWYWx1ZT10LnZhbGlkYXRlS2V5PXZvaWQgMDtjb25zdCByPVwiW18wLTlhLXotKi9dXCI7Y29uc3Qgbj1gW2Etel0ke3J9ezAsMjU1fWA7Y29uc3QgYT1gW2EtejAtOV0ke3J9ezAsMjQwfUBbYS16XSR7cn17MCwxM31gO2NvbnN0IG89bmV3IFJlZ0V4cChgXig/OiR7bn18JHthfSkkYCk7Y29uc3QgaT0vXlsgLX5dezAsMjU1fVshLX5dJC87Y29uc3QgYz0vLHw9LztmdW5jdGlvbiB2YWxpZGF0ZUtleShlKXtyZXR1cm4gby50ZXN0KGUpfXQudmFsaWRhdGVLZXk9dmFsaWRhdGVLZXk7ZnVuY3Rpb24gdmFsaWRhdGVWYWx1ZShlKXtyZXR1cm4gaS50ZXN0KGUpJiYhYy50ZXN0KGUpfXQudmFsaWRhdGVWYWx1ZT12YWxpZGF0ZVZhbHVlfSw5ODooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZVRyYWNlU3RhdGU9dm9pZCAwO2NvbnN0IG49cigzMjUpO2Z1bmN0aW9uIGNyZWF0ZVRyYWNlU3RhdGUoZSl7cmV0dXJuIG5ldyBuLlRyYWNlU3RhdGVJbXBsKGUpfXQuY3JlYXRlVHJhY2VTdGF0ZT1jcmVhdGVUcmFjZVN0YXRlfSw0NzY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5JTlZBTElEX1NQQU5fQ09OVEVYVD10LklOVkFMSURfVFJBQ0VJRD10LklOVkFMSURfU1BBTklEPXZvaWQgMDtjb25zdCBuPXIoNDc1KTt0LklOVkFMSURfU1BBTklEPVwiMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9UUkFDRUlEPVwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIjt0LklOVkFMSURfU1BBTl9DT05URVhUPXt0cmFjZUlkOnQuSU5WQUxJRF9UUkFDRUlELHNwYW5JZDp0LklOVkFMSURfU1BBTklELHRyYWNlRmxhZ3M6bi5UcmFjZUZsYWdzLk5PTkV9fSwzNTc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU3BhbktpbmQ9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRFUk5BTFwiXT0wXT1cIklOVEVSTkFMXCI7ZVtlW1wiU0VSVkVSXCJdPTFdPVwiU0VSVkVSXCI7ZVtlW1wiQ0xJRU5UXCJdPTJdPVwiQ0xJRU5UXCI7ZVtlW1wiUFJPRFVDRVJcIl09M109XCJQUk9EVUNFUlwiO2VbZVtcIkNPTlNVTUVSXCJdPTRdPVwiQ09OU1VNRVJcIn0pKHI9dC5TcGFuS2luZHx8KHQuU3BhbktpbmQ9e30pKX0sMTM5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3Qud3JhcFNwYW5Db250ZXh0PXQuaXNTcGFuQ29udGV4dFZhbGlkPXQuaXNWYWxpZFNwYW5JZD10LmlzVmFsaWRUcmFjZUlkPXZvaWQgMDtjb25zdCBuPXIoNDc2KTtjb25zdCBhPXIoNDAzKTtjb25zdCBvPS9eKFswLTlhLWZdezMyfSkkL2k7Y29uc3QgaT0vXlswLTlhLWZdezE2fSQvaTtmdW5jdGlvbiBpc1ZhbGlkVHJhY2VJZChlKXtyZXR1cm4gby50ZXN0KGUpJiZlIT09bi5JTlZBTElEX1RSQUNFSUR9dC5pc1ZhbGlkVHJhY2VJZD1pc1ZhbGlkVHJhY2VJZDtmdW5jdGlvbiBpc1ZhbGlkU3BhbklkKGUpe3JldHVybiBpLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfU1BBTklEfXQuaXNWYWxpZFNwYW5JZD1pc1ZhbGlkU3BhbklkO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHRWYWxpZChlKXtyZXR1cm4gaXNWYWxpZFRyYWNlSWQoZS50cmFjZUlkKSYmaXNWYWxpZFNwYW5JZChlLnNwYW5JZCl9dC5pc1NwYW5Db250ZXh0VmFsaWQ9aXNTcGFuQ29udGV4dFZhbGlkO2Z1bmN0aW9uIHdyYXBTcGFuQ29udGV4dChlKXtyZXR1cm4gbmV3IGEuTm9uUmVjb3JkaW5nU3BhbihlKX10LndyYXBTcGFuQ29udGV4dD13cmFwU3BhbkNvbnRleHR9LDg0NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuU3RhdHVzQ29kZT12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIlVOU0VUXCJdPTBdPVwiVU5TRVRcIjtlW2VbXCJPS1wiXT0xXT1cIk9LXCI7ZVtlW1wiRVJST1JcIl09Ml09XCJFUlJPUlwifSkocj10LlNwYW5TdGF0dXNDb2RlfHwodC5TcGFuU3RhdHVzQ29kZT17fSkpfSw0NzU6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VGbGFncz12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiU0FNUExFRFwiXT0xXT1cIlNBTVBMRURcIn0pKHI9dC5UcmFjZUZsYWdzfHwodC5UcmFjZUZsYWdzPXt9KSl9LDUyMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WRVJTSU9OPXZvaWQgMDt0LlZFUlNJT049XCIxLjYuMFwifX07dmFyIHQ9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhyKXt2YXIgbj10W3JdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGE9dFtyXT17ZXhwb3J0czp7fX07dmFyIG89dHJ1ZTt0cnl7ZVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtvPWZhbHNlfWZpbmFsbHl7aWYobylkZWxldGUgdFtyXX1yZXR1cm4gYS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgcj17fTsoKCk9Pnt2YXIgZT1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7ZS50cmFjZT1lLnByb3BhZ2F0aW9uPWUubWV0cmljcz1lLmRpYWc9ZS5jb250ZXh0PWUuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9ZS5JTlZBTElEX1RSQUNFSUQ9ZS5JTlZBTElEX1NQQU5JRD1lLmlzVmFsaWRTcGFuSWQ9ZS5pc1ZhbGlkVHJhY2VJZD1lLmlzU3BhbkNvbnRleHRWYWxpZD1lLmNyZWF0ZVRyYWNlU3RhdGU9ZS5UcmFjZUZsYWdzPWUuU3BhblN0YXR1c0NvZGU9ZS5TcGFuS2luZD1lLlNhbXBsaW5nRGVjaXNpb249ZS5Qcm94eVRyYWNlclByb3ZpZGVyPWUuUHJveHlUcmFjZXI9ZS5kZWZhdWx0VGV4dE1hcFNldHRlcj1lLmRlZmF1bHRUZXh0TWFwR2V0dGVyPWUuVmFsdWVUeXBlPWUuY3JlYXRlTm9vcE1ldGVyPWUuRGlhZ0xvZ0xldmVsPWUuRGlhZ0NvbnNvbGVMb2dnZXI9ZS5ST09UX0NPTlRFWFQ9ZS5jcmVhdGVDb250ZXh0S2V5PWUuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXZvaWQgMDt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDM2OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmdcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ319KTt2YXIgbj1fX25jY3dwY2tfcmVxdWlyZV9fKDc4MCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVDb250ZXh0S2V5XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jcmVhdGVDb250ZXh0S2V5fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUk9PVF9DT05URVhUXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9fSk7dmFyIGE9X19uY2N3cGNrX3JlcXVpcmVfXyg5NzIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0NvbnNvbGVMb2dnZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBhLkRpYWdDb25zb2xlTG9nZ2VyfX0pO3ZhciBvPV9fbmNjd3Bja19yZXF1aXJlX18oOTU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIkRpYWdMb2dMZXZlbFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uRGlhZ0xvZ0xldmVsfX0pO3ZhciBpPV9fbmNjd3Bja19yZXF1aXJlX18oMTAyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZU5vb3BNZXRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuY3JlYXRlTm9vcE1ldGVyfX0pO3ZhciBjPV9fbmNjd3Bja19yZXF1aXJlX18oOTAxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlZhbHVlVHlwZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuVmFsdWVUeXBlfX0pO3ZhciBzPV9fbmNjd3Bja19yZXF1aXJlX18oMTk0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwR2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcEdldHRlcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwU2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcFNldHRlcn19KTt2YXIgdT1fX25jY3dwY2tfcmVxdWlyZV9fKDEyNSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuUHJveHlUcmFjZXJ9fSk7dmFyIGw9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUHJveHlUcmFjZXJQcm92aWRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuUHJveHlUcmFjZXJQcm92aWRlcn19KTt2YXIgZz1fX25jY3dwY2tfcmVxdWlyZV9fKDk5Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTYW1wbGluZ0RlY2lzaW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5TYW1wbGluZ0RlY2lzaW9ufX0pO3ZhciBwPV9fbmNjd3Bja19yZXF1aXJlX18oMzU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5LaW5kXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5TcGFuS2luZH19KTt2YXIgZD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTcGFuU3RhdHVzQ29kZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQuU3BhblN0YXR1c0NvZGV9fSk7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg0NzUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVHJhY2VGbGFnc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF8uVHJhY2VGbGFnc319KTt2YXIgZj1fX25jY3dwY2tfcmVxdWlyZV9fKDk4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZVRyYWNlU3RhdGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBmLmNyZWF0ZVRyYWNlU3RhdGV9fSk7dmFyIGI9X19uY2N3cGNrX3JlcXVpcmVfXygxMzkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNTcGFuQ29udGV4dFZhbGlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1NwYW5Db250ZXh0VmFsaWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkVHJhY2VJZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNWYWxpZFRyYWNlSWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkU3BhbklkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkU3BhbklkfX0pO3ZhciB2PV9fbmNjd3Bja19yZXF1aXJlX18oNDc2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfU1BBTklEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1NQQU5JRH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfVFJBQ0VJRFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9UUkFDRUlEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTl9DT05URVhUfX0pO2NvbnN0IE89X19uY2N3cGNrX3JlcXVpcmVfXyg2Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjb250ZXh0XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTy5jb250ZXh0fX0pO2NvbnN0IFA9X19uY2N3cGNrX3JlcXVpcmVfXyg1MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGlhZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAuZGlhZ319KTtjb25zdCBOPV9fbmNjd3Bja19yZXF1aXJlX18oODg2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIm1ldHJpY3NcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBOLm1ldHJpY3N9fSk7Y29uc3QgUz1fX25jY3dwY2tfcmVxdWlyZV9fKDkzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm9wYWdhdGlvblwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFMucHJvcGFnYXRpb259fSk7Y29uc3QgQz1fX25jY3dwY2tfcmVxdWlyZV9fKDg0NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJ0cmFjZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEMudHJhY2V9fSk7ZVtcImRlZmF1bHRcIl09e2NvbnRleHQ6Ty5jb250ZXh0LGRpYWc6UC5kaWFnLG1ldHJpY3M6Ti5tZXRyaWNzLHByb3BhZ2F0aW9uOlMucHJvcGFnYXRpb24sdHJhY2U6Qy50cmFjZX19KSgpO21vZHVsZS5leHBvcnRzPXJ9KSgpOyJdLCJuYW1lcyI6WyJlIiwidCIsInIiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiQ29udGV4dEFQSSIsIm4iLCJhIiwibyIsImkiLCJjIiwiTm9vcENvbnRleHRNYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJnZXRJbnN0YW5jZSIsIl9pbnN0YW5jZSIsInNldEdsb2JhbENvbnRleHRNYW5hZ2VyIiwicmVnaXN0ZXJHbG9iYWwiLCJEaWFnQVBJIiwiaW5zdGFuY2UiLCJhY3RpdmUiLCJfZ2V0Q29udGV4dE1hbmFnZXIiLCJ3aXRoIiwiYmluZCIsImdldEdsb2JhbCIsImRpc2FibGUiLCJ1bnJlZ2lzdGVyR2xvYmFsIiwiX2xvZ1Byb3h5Iiwic2V0TG9nZ2VyIiwibG9nTGV2ZWwiLCJEaWFnTG9nTGV2ZWwiLCJJTkZPIiwicyIsIkVycm9yIiwiZXJyb3IiLCJzdGFjayIsIm1lc3NhZ2UiLCJ1IiwibCIsImNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlciIsInN1cHByZXNzT3ZlcnJpZGVNZXNzYWdlIiwid2FybiIsImNyZWF0ZUNvbXBvbmVudExvZ2dlciIsIkRpYWdDb21wb25lbnRMb2dnZXIiLCJ2ZXJib3NlIiwiZGVidWciLCJpbmZvIiwiTWV0cmljc0FQSSIsInNldEdsb2JhbE1ldGVyUHJvdmlkZXIiLCJnZXRNZXRlclByb3ZpZGVyIiwiTk9PUF9NRVRFUl9QUk9WSURFUiIsImdldE1ldGVyIiwiUHJvcGFnYXRpb25BUEkiLCJOb29wVGV4dE1hcFByb3BhZ2F0b3IiLCJjcmVhdGVCYWdnYWdlIiwiZ2V0QmFnZ2FnZSIsImdldEFjdGl2ZUJhZ2dhZ2UiLCJzZXRCYWdnYWdlIiwiZGVsZXRlQmFnZ2FnZSIsInNldEdsb2JhbFByb3BhZ2F0b3IiLCJpbmplY3QiLCJkZWZhdWx0VGV4dE1hcFNldHRlciIsIl9nZXRHbG9iYWxQcm9wYWdhdG9yIiwiZXh0cmFjdCIsImRlZmF1bHRUZXh0TWFwR2V0dGVyIiwiZmllbGRzIiwiVHJhY2VBUEkiLCJfcHJveHlUcmFjZXJQcm92aWRlciIsIlByb3h5VHJhY2VyUHJvdmlkZXIiLCJ3cmFwU3BhbkNvbnRleHQiLCJpc1NwYW5Db250ZXh0VmFsaWQiLCJkZWxldGVTcGFuIiwiZ2V0U3BhbiIsImdldEFjdGl2ZVNwYW4iLCJnZXRTcGFuQ29udGV4dCIsInNldFNwYW4iLCJzZXRTcGFuQ29udGV4dCIsInNldEdsb2JhbFRyYWNlclByb3ZpZGVyIiwic2V0RGVsZWdhdGUiLCJnZXRUcmFjZXJQcm92aWRlciIsImdldFRyYWNlciIsImNyZWF0ZUNvbnRleHRLZXkiLCJnZXRWYWx1ZSIsInVuZGVmaW5lZCIsInNldFZhbHVlIiwiZGVsZXRlVmFsdWUiLCJCYWdnYWdlSW1wbCIsIl9lbnRyaWVzIiwiTWFwIiwiZ2V0RW50cnkiLCJnZXQiLCJhc3NpZ24iLCJnZXRBbGxFbnRyaWVzIiwiQXJyYXkiLCJmcm9tIiwiZW50cmllcyIsIm1hcCIsInNldEVudHJ5Iiwic2V0IiwicmVtb3ZlRW50cnkiLCJkZWxldGUiLCJyZW1vdmVFbnRyaWVzIiwiY2xlYXIiLCJiYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbCIsIlN5bWJvbCIsImJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZyIsIl9fVFlQRV9fIiwidG9TdHJpbmciLCJjb250ZXh0IiwiUk9PVF9DT05URVhUIiwiY2FsbCIsImVuYWJsZSIsImZvciIsIkJhc2VDb250ZXh0IiwiX2N1cnJlbnRDb250ZXh0IiwiZGlhZyIsIl9uYW1lc3BhY2UiLCJuYW1lc3BhY2UiLCJsb2dQcm94eSIsInVuc2hpZnQiLCJEaWFnQ29uc29sZUxvZ2dlciIsIl9jb25zb2xlRnVuYyIsImNvbnNvbGUiLCJsb2ciLCJhcHBseSIsImxlbmd0aCIsIk5PTkUiLCJBTEwiLCJfZmlsdGVyRnVuYyIsIkVSUk9SIiwiV0FSTiIsIkRFQlVHIiwiVkVSQk9TRSIsIlZFUlNJT04iLCJzcGxpdCIsIl9nbG9iYWxUaGlzIiwidmVyc2lvbiIsImlzQ29tcGF0aWJsZSIsIl9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrIiwiU2V0IiwibWF0Y2giLCJtYWpvciIsIm1pbm9yIiwicGF0Y2giLCJwcmVyZWxlYXNlIiwiaXNFeGFjdG1hdGNoIiwiX3JlamVjdCIsImFkZCIsIl9hY2NlcHQiLCJoYXMiLCJtZXRyaWNzIiwiVmFsdWVUeXBlIiwiY3JlYXRlTm9vcE1ldGVyIiwiTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUMiLCJOT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDIiwiTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDIiwiTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDIiwiTk9PUF9ISVNUT0dSQU1fTUVUUklDIiwiTk9PUF9DT1VOVEVSX01FVFJJQyIsIk5PT1BfTUVURVIiLCJOb29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWMiLCJOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljIiwiTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljIiwiTm9vcE9ic2VydmFibGVNZXRyaWMiLCJOb29wSGlzdG9ncmFtTWV0cmljIiwiTm9vcFVwRG93bkNvdW50ZXJNZXRyaWMiLCJOb29wQ291bnRlck1ldHJpYyIsIk5vb3BNZXRyaWMiLCJOb29wTWV0ZXIiLCJjcmVhdGVIaXN0b2dyYW0iLCJjcmVhdGVDb3VudGVyIiwiY3JlYXRlVXBEb3duQ291bnRlciIsImNyZWF0ZU9ic2VydmFibGVHYXVnZSIsImNyZWF0ZU9ic2VydmFibGVDb3VudGVyIiwiY3JlYXRlT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXIiLCJhZGRCYXRjaE9ic2VydmFibGVDYWxsYmFjayIsInJlbW92ZUJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrIiwicmVjb3JkIiwiYWRkQ2FsbGJhY2siLCJyZW1vdmVDYWxsYmFjayIsIk5vb3BNZXRlclByb3ZpZGVyIiwiX19jcmVhdGVCaW5kaW5nIiwiY3JlYXRlIiwiZW51bWVyYWJsZSIsIl9fZXhwb3J0U3RhciIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiZ2xvYmFsVGhpcyIsImdsb2JhbCIsInByb3BhZ2F0aW9uIiwia2V5cyIsInRyYWNlIiwiTm9uUmVjb3JkaW5nU3BhbiIsIklOVkFMSURfU1BBTl9DT05URVhUIiwiX3NwYW5Db250ZXh0Iiwic3BhbkNvbnRleHQiLCJzZXRBdHRyaWJ1dGUiLCJzZXRBdHRyaWJ1dGVzIiwiYWRkRXZlbnQiLCJzZXRTdGF0dXMiLCJ1cGRhdGVOYW1lIiwiZW5kIiwiaXNSZWNvcmRpbmciLCJyZWNvcmRFeGNlcHRpb24iLCJOb29wVHJhY2VyIiwic3RhcnRTcGFuIiwiQm9vbGVhbiIsInJvb3QiLCJpc1NwYW5Db250ZXh0Iiwic3RhcnRBY3RpdmVTcGFuIiwiYXJndW1lbnRzIiwiZyIsIk5vb3BUcmFjZXJQcm92aWRlciIsIlByb3h5VHJhY2VyIiwiX3Byb3ZpZGVyIiwibmFtZSIsIm9wdGlvbnMiLCJfZ2V0VHJhY2VyIiwiUmVmbGVjdCIsIl9kZWxlZ2F0ZSIsImdldERlbGVnYXRlVHJhY2VyIiwiZ2V0RGVsZWdhdGUiLCJTYW1wbGluZ0RlY2lzaW9uIiwiVHJhY2VTdGF0ZUltcGwiLCJfaW50ZXJuYWxTdGF0ZSIsIl9wYXJzZSIsIl9jbG9uZSIsInVuc2V0Iiwic2VyaWFsaXplIiwiX2tleXMiLCJyZWR1Y2UiLCJwdXNoIiwiam9pbiIsInJldmVyc2UiLCJ0cmltIiwiaW5kZXhPZiIsInNsaWNlIiwidmFsaWRhdGVLZXkiLCJ2YWxpZGF0ZVZhbHVlIiwic2l6ZSIsIlJlZ0V4cCIsInRlc3QiLCJjcmVhdGVUcmFjZVN0YXRlIiwiSU5WQUxJRF9UUkFDRUlEIiwiSU5WQUxJRF9TUEFOSUQiLCJ0cmFjZUlkIiwic3BhbklkIiwidHJhY2VGbGFncyIsIlRyYWNlRmxhZ3MiLCJTcGFuS2luZCIsImlzVmFsaWRTcGFuSWQiLCJpc1ZhbGlkVHJhY2VJZCIsIlNwYW5TdGF0dXNDb2RlIiwiX19uY2N3cGNrX3JlcXVpcmVfXyIsImV4cG9ydHMiLCJhYiIsIl9fZGlybmFtZSIsInAiLCJkIiwiXyIsImYiLCJiIiwidiIsIk8iLCJQIiwiTiIsIlMiLCJDIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/@opentelemetry/api/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/anser/index.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/anser/index.js ***!
- \************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var e = {\n 211: (e)=>{\n var r = function() {\n function defineProperties(e, r) {\n for(var n = 0; n < r.length; n++){\n var s = r[n];\n s.enumerable = s.enumerable || false;\n s.configurable = true;\n if (\"value\" in s) s.writable = true;\n Object.defineProperty(e, s.key, s);\n }\n }\n return function(e, r, n) {\n if (r) defineProperties(e.prototype, r);\n if (n) defineProperties(e, n);\n return e;\n };\n }();\n function _classCallCheck(e, r) {\n if (!(e instanceof r)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var n = [\n [\n {\n color: \"0, 0, 0\",\n class: \"ansi-black\"\n },\n {\n color: \"187, 0, 0\",\n class: \"ansi-red\"\n },\n {\n color: \"0, 187, 0\",\n class: \"ansi-green\"\n },\n {\n color: \"187, 187, 0\",\n class: \"ansi-yellow\"\n },\n {\n color: \"0, 0, 187\",\n class: \"ansi-blue\"\n },\n {\n color: \"187, 0, 187\",\n class: \"ansi-magenta\"\n },\n {\n color: \"0, 187, 187\",\n class: \"ansi-cyan\"\n },\n {\n color: \"255,255,255\",\n class: \"ansi-white\"\n }\n ],\n [\n {\n color: \"85, 85, 85\",\n class: \"ansi-bright-black\"\n },\n {\n color: \"255, 85, 85\",\n class: \"ansi-bright-red\"\n },\n {\n color: \"0, 255, 0\",\n class: \"ansi-bright-green\"\n },\n {\n color: \"255, 255, 85\",\n class: \"ansi-bright-yellow\"\n },\n {\n color: \"85, 85, 255\",\n class: \"ansi-bright-blue\"\n },\n {\n color: \"255, 85, 255\",\n class: \"ansi-bright-magenta\"\n },\n {\n color: \"85, 255, 255\",\n class: \"ansi-bright-cyan\"\n },\n {\n color: \"255, 255, 255\",\n class: \"ansi-bright-white\"\n }\n ]\n ];\n var s = function() {\n r(Anser, null, [\n {\n key: \"escapeForHtml\",\n value: function escapeForHtml(e) {\n return (new Anser).escapeForHtml(e);\n }\n },\n {\n key: \"linkify\",\n value: function linkify(e) {\n return (new Anser).linkify(e);\n }\n },\n {\n key: \"ansiToHtml\",\n value: function ansiToHtml(e, r) {\n return (new Anser).ansiToHtml(e, r);\n }\n },\n {\n key: \"ansiToJson\",\n value: function ansiToJson(e, r) {\n return (new Anser).ansiToJson(e, r);\n }\n },\n {\n key: \"ansiToText\",\n value: function ansiToText(e) {\n return (new Anser).ansiToText(e);\n }\n }\n ]);\n function Anser() {\n _classCallCheck(this, Anser);\n this.fg = this.bg = this.fg_truecolor = this.bg_truecolor = null;\n this.bright = 0;\n }\n r(Anser, [\n {\n key: \"setupPalette\",\n value: function setupPalette() {\n this.PALETTE_COLORS = [];\n for(var e = 0; e < 2; ++e){\n for(var r = 0; r < 8; ++r){\n this.PALETTE_COLORS.push(n[e][r].color);\n }\n }\n var s = [\n 0,\n 95,\n 135,\n 175,\n 215,\n 255\n ];\n var i = function format(e, r, n) {\n return s[e] + \", \" + s[r] + \", \" + s[n];\n };\n var t = void 0, o = void 0, a = void 0;\n for(var l = 0; l < 6; ++l){\n for(var c = 0; c < 6; ++c){\n for(var u = 0; u < 6; ++u){\n this.PALETTE_COLORS.push(i(l, c, u));\n }\n }\n }\n var f = 8;\n for(var h = 0; h < 24; ++h, f += 10){\n this.PALETTE_COLORS.push(i(f, f, f));\n }\n }\n },\n {\n key: \"escapeForHtml\",\n value: function escapeForHtml(e) {\n return e.replace(/[&<>]/gm, function(e) {\n return e == \"&\" ? \"&amp;\" : e == \"<\" ? \"&lt;\" : e == \">\" ? \"&gt;\" : \"\";\n });\n }\n },\n {\n key: \"linkify\",\n value: function linkify(e) {\n return e.replace(/(https?:\\/\\/[^\\s]+)/gm, function(e) {\n return '<a href=\"' + e + '\">' + e + \"</a>\";\n });\n }\n },\n {\n key: \"ansiToHtml\",\n value: function ansiToHtml(e, r) {\n return this.process(e, r, true);\n }\n },\n {\n key: \"ansiToJson\",\n value: function ansiToJson(e, r) {\n r = r || {};\n r.json = true;\n r.clearLine = false;\n return this.process(e, r, true);\n }\n },\n {\n key: \"ansiToText\",\n value: function ansiToText(e) {\n return this.process(e, {}, false);\n }\n },\n {\n key: \"process\",\n value: function process(e, r, n) {\n var s = this;\n var i = this;\n var t = e.split(/\\033\\[/);\n var o = t.shift();\n if (r === undefined || r === null) {\n r = {};\n }\n r.clearLine = /\\r/.test(e);\n var a = t.map(function(e) {\n return s.processChunk(e, r, n);\n });\n if (r && r.json) {\n var l = i.processChunkJson(\"\");\n l.content = o;\n l.clearLine = r.clearLine;\n a.unshift(l);\n if (r.remove_empty) {\n a = a.filter(function(e) {\n return !e.isEmpty();\n });\n }\n return a;\n } else {\n a.unshift(o);\n }\n return a.join(\"\");\n }\n },\n {\n key: \"processChunkJson\",\n value: function processChunkJson(e, r, s) {\n r = typeof r == \"undefined\" ? {} : r;\n var i = r.use_classes = typeof r.use_classes != \"undefined\" && r.use_classes;\n var t = r.key = i ? \"class\" : \"color\";\n var o = {\n content: e,\n fg: null,\n bg: null,\n fg_truecolor: null,\n bg_truecolor: null,\n clearLine: r.clearLine,\n decoration: null,\n was_processed: false,\n isEmpty: function isEmpty() {\n return !o.content;\n }\n };\n var a = e.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);\n if (!a) return o;\n var l = o.content = a[4];\n var c = a[2].split(\";\");\n if (a[1] !== \"\" || a[3] !== \"m\") {\n return o;\n }\n if (!s) {\n return o;\n }\n var u = this;\n u.decoration = null;\n while(c.length > 0){\n var f = c.shift();\n var h = parseInt(f);\n if (isNaN(h) || h === 0) {\n u.fg = u.bg = u.decoration = null;\n } else if (h === 1) {\n u.decoration = \"bold\";\n } else if (h === 2) {\n u.decoration = \"dim\";\n } else if (h == 3) {\n u.decoration = \"italic\";\n } else if (h == 4) {\n u.decoration = \"underline\";\n } else if (h == 5) {\n u.decoration = \"blink\";\n } else if (h === 7) {\n u.decoration = \"reverse\";\n } else if (h === 8) {\n u.decoration = \"hidden\";\n } else if (h === 9) {\n u.decoration = \"strikethrough\";\n } else if (h == 39) {\n u.fg = null;\n } else if (h == 49) {\n u.bg = null;\n } else if (h >= 30 && h < 38) {\n u.fg = n[0][h % 10][t];\n } else if (h >= 90 && h < 98) {\n u.fg = n[1][h % 10][t];\n } else if (h >= 40 && h < 48) {\n u.bg = n[0][h % 10][t];\n } else if (h >= 100 && h < 108) {\n u.bg = n[1][h % 10][t];\n } else if (h === 38 || h === 48) {\n var p = h === 38;\n if (c.length >= 1) {\n var g = c.shift();\n if (g === \"5\" && c.length >= 1) {\n var v = parseInt(c.shift());\n if (v >= 0 && v <= 255) {\n if (!i) {\n if (!this.PALETTE_COLORS) {\n u.setupPalette();\n }\n if (p) {\n u.fg = this.PALETTE_COLORS[v];\n } else {\n u.bg = this.PALETTE_COLORS[v];\n }\n } else {\n var d = v >= 16 ? \"ansi-palette-\" + v : n[v > 7 ? 1 : 0][v % 8][\"class\"];\n if (p) {\n u.fg = d;\n } else {\n u.bg = d;\n }\n }\n }\n } else if (g === \"2\" && c.length >= 3) {\n var _ = parseInt(c.shift());\n var b = parseInt(c.shift());\n var y = parseInt(c.shift());\n if (_ >= 0 && _ <= 255 && b >= 0 && b <= 255 && y >= 0 && y <= 255) {\n var k = _ + \", \" + b + \", \" + y;\n if (!i) {\n if (p) {\n u.fg = k;\n } else {\n u.bg = k;\n }\n } else {\n if (p) {\n u.fg = \"ansi-truecolor\";\n u.fg_truecolor = k;\n } else {\n u.bg = \"ansi-truecolor\";\n u.bg_truecolor = k;\n }\n }\n }\n }\n }\n }\n }\n if (u.fg === null && u.bg === null && u.decoration === null) {\n return o;\n } else {\n var T = [];\n var m = [];\n var w = {};\n o.fg = u.fg;\n o.bg = u.bg;\n o.fg_truecolor = u.fg_truecolor;\n o.bg_truecolor = u.bg_truecolor;\n o.decoration = u.decoration;\n o.was_processed = true;\n return o;\n }\n }\n },\n {\n key: \"processChunk\",\n value: function processChunk(e, r, n) {\n var s = this;\n var i = this;\n r = r || {};\n var t = this.processChunkJson(e, r, n);\n if (r.json) {\n return t;\n }\n if (t.isEmpty()) {\n return \"\";\n }\n if (!t.was_processed) {\n return t.content;\n }\n var o = r.use_classes;\n var a = [];\n var l = [];\n var c = {};\n var u = function render_data(e) {\n var r = [];\n var n = void 0;\n for(n in e){\n if (e.hasOwnProperty(n)) {\n r.push(\"data-\" + n + '=\"' + s.escapeForHtml(e[n]) + '\"');\n }\n }\n return r.length > 0 ? \" \" + r.join(\" \") : \"\";\n };\n if (t.fg) {\n if (o) {\n l.push(t.fg + \"-fg\");\n if (t.fg_truecolor !== null) {\n c[\"ansi-truecolor-fg\"] = t.fg_truecolor;\n t.fg_truecolor = null;\n }\n } else {\n a.push(\"color:rgb(\" + t.fg + \")\");\n }\n }\n if (t.bg) {\n if (o) {\n l.push(t.bg + \"-bg\");\n if (t.bg_truecolor !== null) {\n c[\"ansi-truecolor-bg\"] = t.bg_truecolor;\n t.bg_truecolor = null;\n }\n } else {\n a.push(\"background-color:rgb(\" + t.bg + \")\");\n }\n }\n if (t.decoration) {\n if (o) {\n l.push(\"ansi-\" + t.decoration);\n } else if (t.decoration === \"bold\") {\n a.push(\"font-weight:bold\");\n } else if (t.decoration === \"dim\") {\n a.push(\"opacity:0.5\");\n } else if (t.decoration === \"italic\") {\n a.push(\"font-style:italic\");\n } else if (t.decoration === \"reverse\") {\n a.push(\"filter:invert(100%)\");\n } else if (t.decoration === \"hidden\") {\n a.push(\"visibility:hidden\");\n } else if (t.decoration === \"strikethrough\") {\n a.push(\"text-decoration:line-through\");\n } else {\n a.push(\"text-decoration:\" + t.decoration);\n }\n }\n if (o) {\n return '<span class=\"' + l.join(\" \") + '\"' + u(c) + \">\" + t.content + \"</span>\";\n } else {\n return '<span style=\"' + a.join(\";\") + '\"' + u(c) + \">\" + t.content + \"</span>\";\n }\n }\n }\n ]);\n return Anser;\n }();\n e.exports = s;\n }\n };\n var r = {};\n function __nccwpck_require__(n) {\n var s = r[n];\n if (s !== undefined) {\n return s.exports;\n }\n var i = r[n] = {\n exports: {}\n };\n var t = true;\n try {\n e[n](i, i.exports, __nccwpck_require__);\n t = false;\n } finally{\n if (t) delete r[n];\n }\n return i.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var n = __nccwpck_require__(211);\n module.exports = n;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9hbnNlci9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOztBQUFDO0lBQUs7SUFBYSxJQUFJQSxJQUFFO1FBQUMsS0FBSUEsQ0FBQUE7WUFBSSxJQUFJQyxJQUFFO2dCQUFXLFNBQVNDLGlCQUFpQkYsQ0FBQyxFQUFDQyxDQUFDO29CQUFFLElBQUksSUFBSUUsSUFBRSxHQUFFQSxJQUFFRixFQUFFRyxNQUFNLEVBQUNELElBQUk7d0JBQUMsSUFBSUUsSUFBRUosQ0FBQyxDQUFDRSxFQUFFO3dCQUFDRSxFQUFFQyxVQUFVLEdBQUNELEVBQUVDLFVBQVUsSUFBRTt3QkFBTUQsRUFBRUUsWUFBWSxHQUFDO3dCQUFLLElBQUcsV0FBVUYsR0FBRUEsRUFBRUcsUUFBUSxHQUFDO3dCQUFLQyxPQUFPQyxjQUFjLENBQUNWLEdBQUVLLEVBQUVNLEdBQUcsRUFBQ047b0JBQUU7Z0JBQUM7Z0JBQUMsT0FBTyxTQUFTTCxDQUFDLEVBQUNDLENBQUMsRUFBQ0UsQ0FBQztvQkFBRSxJQUFHRixHQUFFQyxpQkFBaUJGLEVBQUVZLFNBQVMsRUFBQ1g7b0JBQUcsSUFBR0UsR0FBRUQsaUJBQWlCRixHQUFFRztvQkFBRyxPQUFPSDtnQkFBQztZQUFDO1lBQUksU0FBU2EsZ0JBQWdCYixDQUFDLEVBQUNDLENBQUM7Z0JBQUUsSUFBRyxDQUFFRCxDQUFBQSxhQUFhQyxDQUFBQSxHQUFHO29CQUFDLE1BQU0sSUFBSWEsVUFBVTtnQkFBb0M7WUFBQztZQUFDLElBQUlYLElBQUU7Z0JBQUM7b0JBQUM7d0JBQUNZLE9BQU07d0JBQVVDLE9BQU07b0JBQVk7b0JBQUU7d0JBQUNELE9BQU07d0JBQVlDLE9BQU07b0JBQVU7b0JBQUU7d0JBQUNELE9BQU07d0JBQVlDLE9BQU07b0JBQVk7b0JBQUU7d0JBQUNELE9BQU07d0JBQWNDLE9BQU07b0JBQWE7b0JBQUU7d0JBQUNELE9BQU07d0JBQVlDLE9BQU07b0JBQVc7b0JBQUU7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SUFBSSxDQUFDLE9BQUssTUFBSW5CLEVBQUVELEtBQUcsTUFBSUosRUFBRW1CLE9BQU8sR0FBQzs0QkFBUyxPQUFLO2dDQUFDLE9BQU0sa0JBQWdCakIsRUFBRXNCLElBQUksQ0FBQyxPQUFLLE1BQUluQixFQUFFRCxLQUFHLE1BQUlKLEVBQUVtQixPQUFPLEdBQUM7NEJBQVM7d0JBQUM7b0JBQUM7aUJBQUU7Z0JBQUUsT0FBT3BDO1lBQUs7WUFBSWpCLEVBQUU4RSxPQUFPLEdBQUN6RTtRQUFDO0lBQUM7SUFBRSxJQUFJSixJQUFFLENBQUM7SUFBRSxTQUFTOEUsb0JBQW9CNUUsQ0FBQztRQUFFLElBQUlFLElBQUVKLENBQUMsQ0FBQ0UsRUFBRTtRQUFDLElBQUdFLE1BQUkyQyxXQUFVO1lBQUMsT0FBTzNDLEVBQUV5RSxPQUFPO1FBQUE7UUFBQyxJQUFJOUMsSUFBRS9CLENBQUMsQ0FBQ0UsRUFBRSxHQUFDO1lBQUMyRSxTQUFRLENBQUM7UUFBQztRQUFFLElBQUk1QyxJQUFFO1FBQUssSUFBRztZQUFDbEMsQ0FBQyxDQUFDRyxFQUFFLENBQUM2QixHQUFFQSxFQUFFOEMsT0FBTyxFQUFDQztZQUFxQjdDLElBQUU7UUFBSyxTQUFRO1lBQUMsSUFBR0EsR0FBRSxPQUFPakMsQ0FBQyxDQUFDRSxFQUFFO1FBQUE7UUFBQyxPQUFPNkIsRUFBRThDLE9BQU87SUFBQTtJQUFDLElBQUcsT0FBT0Msd0JBQXNCLGFBQVlBLG9CQUFvQkMsRUFBRSxHQUFDQyxTQUFTQSxHQUFDO0lBQUksSUFBSTlFLElBQUU0RSxvQkFBb0I7SUFBS0csT0FBT0osT0FBTyxHQUFDM0U7QUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9hbnNlci9pbmRleC5qcz80YjA1Il0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXsyMTE6ZT0+e3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhlLHIpe2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXt2YXIgcz1yW25dO3MuZW51bWVyYWJsZT1zLmVudW1lcmFibGV8fGZhbHNlO3MuY29uZmlndXJhYmxlPXRydWU7aWYoXCJ2YWx1ZVwiaW4gcylzLndyaXRhYmxlPXRydWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscy5rZXkscyl9fXJldHVybiBmdW5jdGlvbihlLHIsbil7aWYocilkZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpO2lmKG4pZGVmaW5lUHJvcGVydGllcyhlLG4pO3JldHVybiBlfX0oKTtmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soZSxyKXtpZighKGUgaW5zdGFuY2VvZiByKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX19dmFyIG49W1t7Y29sb3I6XCIwLCAwLCAwXCIsY2xhc3M6XCJhbnNpLWJsYWNrXCJ9LHtjb2xvcjpcIjE4NywgMCwgMFwiLGNsYXNzOlwiYW5zaS1yZWRcIn0se2NvbG9yOlwiMCwgMTg3LCAwXCIsY2xhc3M6XCJhbnNpLWdyZWVuXCJ9LHtjb2xvcjpcIjE4NywgMTg3LCAwXCIsY2xhc3M6XCJhbnNpLXllbGxvd1wifSx7Y29sb3I6XCIwLCAwLCAxODdcIixjbGFzczpcImFuc2ktYmx1ZVwifSx7Y29sb3I6XCIxODcsIDAsIDE4N1wiLGNsYXNzOlwiYW5zaS1tYWdlbnRhXCJ9LHtjb2xvcjpcIjAsIDE4NywgMTg3XCIsY2xhc3M6XCJhbnNpLWN5YW5cIn0se2NvbG9yOlwiMjU1LDI1NSwyNTVcIixjbGFzczpcImFuc2ktd2hpdGVcIn1dLFt7Y29sb3I6XCI4NSwgODUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1ibGFja1wifSx7Y29sb3I6XCIyNTUsIDg1LCA4NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtcmVkXCJ9LHtjb2xvcjpcIjAsIDI1NSwgMFwiLGNsYXNzOlwiYW5zaS1icmlnaHQtZ3JlZW5cIn0se2NvbG9yOlwiMjU1LCAyNTUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC15ZWxsb3dcIn0se2NvbG9yOlwiODUsIDg1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LWJsdWVcIn0se2NvbG9yOlwiMjU1LCA4NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1tYWdlbnRhXCJ9LHtjb2xvcjpcIjg1LCAyNTUsIDI1NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtY3lhblwifSx7Y29sb3I6XCIyNTUsIDI1NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC13aGl0ZVwifV1dO3ZhciBzPWZ1bmN0aW9uKCl7cihBbnNlcixudWxsLFt7a2V5OlwiZXNjYXBlRm9ySHRtbFwiLHZhbHVlOmZ1bmN0aW9uIGVzY2FwZUZvckh0bWwoZSl7cmV0dXJuKG5ldyBBbnNlcikuZXNjYXBlRm9ySHRtbChlKX19LHtrZXk6XCJsaW5raWZ5XCIsdmFsdWU6ZnVuY3Rpb24gbGlua2lmeShlKXtyZXR1cm4obmV3IEFuc2VyKS5saW5raWZ5KGUpfX0se2tleTpcImFuc2lUb0h0bWxcIix2YWx1ZTpmdW5jdGlvbiBhbnNpVG9IdG1sKGUscil7cmV0dXJuKG5ldyBBbnNlcikuYW5zaVRvSHRtbChlLHIpfX0se2tleTpcImFuc2lUb0pzb25cIix2YWx1ZTpmdW5jdGlvbiBhbnNpVG9Kc29uKGUscil7cmV0dXJuKG5ldyBBbnNlcikuYW5zaVRvSnNvbihlLHIpfX0se2tleTpcImFuc2lUb1RleHRcIix2YWx1ZTpmdW5jdGlvbiBhbnNpVG9UZXh0KGUpe3JldHVybihuZXcgQW5zZXIpLmFuc2lUb1RleHQoZSl9fV0pO2Z1bmN0aW9uIEFuc2VyKCl7X2NsYXNzQ2FsbENoZWNrKHRoaXMsQW5zZXIpO3RoaXMuZmc9dGhpcy5iZz10aGlzLmZnX3RydWVjb2xvcj10aGlzLmJnX3RydWVjb2xvcj1udWxsO3RoaXMuYnJpZ2h0PTB9cihBbnNlcixbe2tleTpcInNldHVwUGFsZXR0ZVwiLHZhbHVlOmZ1bmN0aW9uIHNldHVwUGFsZXR0ZSgpe3RoaXMuUEFMRVRURV9DT0xPUlM9W107Zm9yKHZhciBlPTA7ZTwyOysrZSl7Zm9yKHZhciByPTA7cjw4Oysrcil7dGhpcy5QQUxFVFRFX0NPTE9SUy5wdXNoKG5bZV1bcl0uY29sb3IpfX12YXIgcz1bMCw5NSwxMzUsMTc1LDIxNSwyNTVdO3ZhciBpPWZ1bmN0aW9uIGZvcm1hdChlLHIsbil7cmV0dXJuIHNbZV0rXCIsIFwiK3Nbcl0rXCIsIFwiK3Nbbl19O3ZhciB0PXZvaWQgMCxvPXZvaWQgMCxhPXZvaWQgMDtmb3IodmFyIGw9MDtsPDY7KytsKXtmb3IodmFyIGM9MDtjPDY7KytjKXtmb3IodmFyIHU9MDt1PDY7Kyt1KXt0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2goaShsLGMsdSkpfX19dmFyIGY9ODtmb3IodmFyIGg9MDtoPDI0OysraCxmKz0xMCl7dGhpcy5QQUxFVFRFX0NPTE9SUy5wdXNoKGkoZixmLGYpKX19fSx7a2V5OlwiZXNjYXBlRm9ySHRtbFwiLHZhbHVlOmZ1bmN0aW9uIGVzY2FwZUZvckh0bWwoZSl7cmV0dXJuIGUucmVwbGFjZSgvWyY8Pl0vZ20sKGZ1bmN0aW9uKGUpe3JldHVybiBlPT1cIiZcIj9cIiZhbXA7XCI6ZT09XCI8XCI/XCImbHQ7XCI6ZT09XCI+XCI/XCImZ3Q7XCI6XCJcIn0pKX19LHtrZXk6XCJsaW5raWZ5XCIsdmFsdWU6ZnVuY3Rpb24gbGlua2lmeShlKXtyZXR1cm4gZS5yZXBsYWNlKC8oaHR0cHM/OlxcL1xcL1teXFxzXSspL2dtLChmdW5jdGlvbihlKXtyZXR1cm4nPGEgaHJlZj1cIicrZSsnXCI+JytlK1wiPC9hPlwifSkpfX0se2tleTpcImFuc2lUb0h0bWxcIix2YWx1ZTpmdW5jdGlvbiBhbnNpVG9IdG1sKGUscil7cmV0dXJuIHRoaXMucHJvY2VzcyhlLHIsdHJ1ZSl9fSx7a2V5OlwiYW5zaVRvSnNvblwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb0pzb24oZSxyKXtyPXJ8fHt9O3IuanNvbj10cnVlO3IuY2xlYXJMaW5lPWZhbHNlO3JldHVybiB0aGlzLnByb2Nlc3MoZSxyLHRydWUpfX0se2tleTpcImFuc2lUb1RleHRcIix2YWx1ZTpmdW5jdGlvbiBhbnNpVG9UZXh0KGUpe3JldHVybiB0aGlzLnByb2Nlc3MoZSx7fSxmYWxzZSl9fSx7a2V5OlwicHJvY2Vzc1wiLHZhbHVlOmZ1bmN0aW9uIHByb2Nlc3MoZSxyLG4pe3ZhciBzPXRoaXM7dmFyIGk9dGhpczt2YXIgdD1lLnNwbGl0KC9cXDAzM1xcWy8pO3ZhciBvPXQuc2hpZnQoKTtpZihyPT09dW5kZWZpbmVkfHxyPT09bnVsbCl7cj17fX1yLmNsZWFyTGluZT0vXFxyLy50ZXN0KGUpO3ZhciBhPXQubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcy5wcm9jZXNzQ2h1bmsoZSxyLG4pfSkpO2lmKHImJnIuanNvbil7dmFyIGw9aS5wcm9jZXNzQ2h1bmtKc29uKFwiXCIpO2wuY29udGVudD1vO2wuY2xlYXJMaW5lPXIuY2xlYXJMaW5lO2EudW5zaGlmdChsKTtpZihyLnJlbW92ZV9lbXB0eSl7YT1hLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIWUuaXNFbXB0eSgpfSkpfXJldHVybiBhfWVsc2V7YS51bnNoaWZ0KG8pfXJldHVybiBhLmpvaW4oXCJcIil9fSx7a2V5OlwicHJvY2Vzc0NodW5rSnNvblwiLHZhbHVlOmZ1bmN0aW9uIHByb2Nlc3NDaHVua0pzb24oZSxyLHMpe3I9dHlwZW9mIHI9PVwidW5kZWZpbmVkXCI/e306cjt2YXIgaT1yLnVzZV9jbGFzc2VzPXR5cGVvZiByLnVzZV9jbGFzc2VzIT1cInVuZGVmaW5lZFwiJiZyLnVzZV9jbGFzc2VzO3ZhciB0PXIua2V5PWk/XCJjbGFzc1wiOlwiY29sb3JcIjt2YXIgbz17Y29udGVudDplLGZnOm51bGwsYmc6bnVsbCxmZ190cnVlY29sb3I6bnVsbCxiZ190cnVlY29sb3I6bnVsbCxjbGVhckxpbmU6ci5jbGVhckxpbmUsZGVjb3JhdGlvbjpudWxsLHdhc19wcm9jZXNzZWQ6ZmFsc2UsaXNFbXB0eTpmdW5jdGlvbiBpc0VtcHR5KCl7cmV0dXJuIW8uY29udGVudH19O3ZhciBhPWUubWF0Y2goL14oWyFcXHgzYy1cXHgzZl0qKShbXFxkO10qKShbXFx4MjAtXFx4MmNdKltcXHg0MC1cXHg3ZV0pKFtcXHNcXFNdKikvbSk7aWYoIWEpcmV0dXJuIG87dmFyIGw9by5jb250ZW50PWFbNF07dmFyIGM9YVsyXS5zcGxpdChcIjtcIik7aWYoYVsxXSE9PVwiXCJ8fGFbM10hPT1cIm1cIil7cmV0dXJuIG99aWYoIXMpe3JldHVybiBvfXZhciB1PXRoaXM7dS5kZWNvcmF0aW9uPW51bGw7d2hpbGUoYy5sZW5ndGg+MCl7dmFyIGY9Yy5zaGlmdCgpO3ZhciBoPXBhcnNlSW50KGYpO2lmKGlzTmFOKGgpfHxoPT09MCl7dS5mZz11LmJnPXUuZGVjb3JhdGlvbj1udWxsfWVsc2UgaWYoaD09PTEpe3UuZGVjb3JhdGlvbj1cImJvbGRcIn1lbHNlIGlmKGg9PT0yKXt1LmRlY29yYXRpb249XCJkaW1cIn1lbHNlIGlmKGg9PTMpe3UuZGVjb3JhdGlvbj1cIml0YWxpY1wifWVsc2UgaWYoaD09NCl7dS5kZWNvcmF0aW9uPVwidW5kZXJsaW5lXCJ9ZWxzZSBpZihoPT01KXt1LmRlY29yYXRpb249XCJibGlua1wifWVsc2UgaWYoaD09PTcpe3UuZGVjb3JhdGlvbj1cInJldmVyc2VcIn1lbHNlIGlmKGg9PT04KXt1LmRlY29yYXRpb249XCJoaWRkZW5cIn1lbHNlIGlmKGg9PT05KXt1LmRlY29yYXRpb249XCJzdHJpa2V0aHJvdWdoXCJ9ZWxzZSBpZihoPT0zOSl7dS5mZz1udWxsfWVsc2UgaWYoaD09NDkpe3UuYmc9bnVsbH1lbHNlIGlmKGg+PTMwJiZoPDM4KXt1LmZnPW5bMF1baCUxMF1bdF19ZWxzZSBpZihoPj05MCYmaDw5OCl7dS5mZz1uWzFdW2glMTBdW3RdfWVsc2UgaWYoaD49NDAmJmg8NDgpe3UuYmc9blswXVtoJTEwXVt0XX1lbHNlIGlmKGg+PTEwMCYmaDwxMDgpe3UuYmc9blsxXVtoJTEwXVt0XX1lbHNlIGlmKGg9PT0zOHx8aD09PTQ4KXt2YXIgcD1oPT09Mzg7aWYoYy5sZW5ndGg+PTEpe3ZhciBnPWMuc2hpZnQoKTtpZihnPT09XCI1XCImJmMubGVuZ3RoPj0xKXt2YXIgdj1wYXJzZUludChjLnNoaWZ0KCkpO2lmKHY+PTAmJnY8PTI1NSl7aWYoIWkpe2lmKCF0aGlzLlBBTEVUVEVfQ09MT1JTKXt1LnNldHVwUGFsZXR0ZSgpfWlmKHApe3UuZmc9dGhpcy5QQUxFVFRFX0NPTE9SU1t2XX1lbHNle3UuYmc9dGhpcy5QQUxFVFRFX0NPTE9SU1t2XX19ZWxzZXt2YXIgZD12Pj0xNj9cImFuc2ktcGFsZXR0ZS1cIit2Om5bdj43PzE6MF1bdiU4XVtcImNsYXNzXCJdO2lmKHApe3UuZmc9ZH1lbHNle3UuYmc9ZH19fX1lbHNlIGlmKGc9PT1cIjJcIiYmYy5sZW5ndGg+PTMpe3ZhciBfPXBhcnNlSW50KGMuc2hpZnQoKSk7dmFyIGI9cGFyc2VJbnQoYy5zaGlmdCgpKTt2YXIgeT1wYXJzZUludChjLnNoaWZ0KCkpO2lmKF8+PTAmJl88PTI1NSYmYj49MCYmYjw9MjU1JiZ5Pj0wJiZ5PD0yNTUpe3ZhciBrPV8rXCIsIFwiK2IrXCIsIFwiK3k7aWYoIWkpe2lmKHApe3UuZmc9a31lbHNle3UuYmc9a319ZWxzZXtpZihwKXt1LmZnPVwiYW5zaS10cnVlY29sb3JcIjt1LmZnX3RydWVjb2xvcj1rfWVsc2V7dS5iZz1cImFuc2ktdHJ1ZWNvbG9yXCI7dS5iZ190cnVlY29sb3I9a319fX19fX1pZih1LmZnPT09bnVsbCYmdS5iZz09PW51bGwmJnUuZGVjb3JhdGlvbj09PW51bGwpe3JldHVybiBvfWVsc2V7dmFyIFQ9W107dmFyIG09W107dmFyIHc9e307by5mZz11LmZnO28uYmc9dS5iZztvLmZnX3RydWVjb2xvcj11LmZnX3RydWVjb2xvcjtvLmJnX3RydWVjb2xvcj11LmJnX3RydWVjb2xvcjtvLmRlY29yYXRpb249dS5kZWNvcmF0aW9uO28ud2FzX3Byb2Nlc3NlZD10cnVlO3JldHVybiBvfX19LHtrZXk6XCJwcm9jZXNzQ2h1bmtcIix2YWx1ZTpmdW5jdGlvbiBwcm9jZXNzQ2h1bmsoZSxyLG4pe3ZhciBzPXRoaXM7dmFyIGk9dGhpcztyPXJ8fHt9O3ZhciB0PXRoaXMucHJvY2Vzc0NodW5rSnNvbihlLHIsbik7aWYoci5qc29uKXtyZXR1cm4gdH1pZih0LmlzRW1wdHkoKSl7cmV0dXJuXCJcIn1pZighdC53YXNfcHJvY2Vzc2VkKXtyZXR1cm4gdC5jb250ZW50fXZhciBvPXIudXNlX2NsYXNzZXM7dmFyIGE9W107dmFyIGw9W107dmFyIGM9e307dmFyIHU9ZnVuY3Rpb24gcmVuZGVyX2RhdGEoZSl7dmFyIHI9W107dmFyIG49dm9pZCAwO2ZvcihuIGluIGUpe2lmKGUuaGFzT3duUHJvcGVydHkobikpe3IucHVzaChcImRhdGEtXCIrbisnPVwiJytzLmVzY2FwZUZvckh0bWwoZVtuXSkrJ1wiJyl9fXJldHVybiByLmxlbmd0aD4wP1wiIFwiK3Iuam9pbihcIiBcIik6XCJcIn07aWYodC5mZyl7aWYobyl7bC5wdXNoKHQuZmcrXCItZmdcIik7aWYodC5mZ190cnVlY29sb3IhPT1udWxsKXtjW1wiYW5zaS10cnVlY29sb3ItZmdcIl09dC5mZ190cnVlY29sb3I7dC5mZ190cnVlY29sb3I9bnVsbH19ZWxzZXthLnB1c2goXCJjb2xvcjpyZ2IoXCIrdC5mZytcIilcIil9fWlmKHQuYmcpe2lmKG8pe2wucHVzaCh0LmJnK1wiLWJnXCIpO2lmKHQuYmdfdHJ1ZWNvbG9yIT09bnVsbCl7Y1tcImFuc2ktdHJ1ZWNvbG9yLWJnXCJdPXQuYmdfdHJ1ZWNvbG9yO3QuYmdfdHJ1ZWNvbG9yPW51bGx9fWVsc2V7YS5wdXNoKFwiYmFja2dyb3VuZC1jb2xvcjpyZ2IoXCIrdC5iZytcIilcIil9fWlmKHQuZGVjb3JhdGlvbil7aWYobyl7bC5wdXNoKFwiYW5zaS1cIit0LmRlY29yYXRpb24pfWVsc2UgaWYodC5kZWNvcmF0aW9uPT09XCJib2xkXCIpe2EucHVzaChcImZvbnQtd2VpZ2h0OmJvbGRcIil9ZWxzZSBpZih0LmRlY29yYXRpb249PT1cImRpbVwiKXthLnB1c2goXCJvcGFjaXR5OjAuNVwiKX1lbHNlIGlmKHQuZGVjb3JhdGlvbj09PVwiaXRhbGljXCIpe2EucHVzaChcImZvbnQtc3R5bGU6aXRhbGljXCIpfWVsc2UgaWYodC5kZWNvcmF0aW9uPT09XCJyZXZlcnNlXCIpe2EucHVzaChcImZpbHRlcjppbnZlcnQoMTAwJSlcIil9ZWxzZSBpZih0LmRlY29yYXRpb249PT1cImhpZGRlblwiKXthLnB1c2goXCJ2aXNpYmlsaXR5OmhpZGRlblwiKX1lbHNlIGlmKHQuZGVjb3JhdGlvbj09PVwic3RyaWtldGhyb3VnaFwiKXthLnB1c2goXCJ0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoXCIpfWVsc2V7YS5wdXNoKFwidGV4dC1kZWNvcmF0aW9uOlwiK3QuZGVjb3JhdGlvbil9fWlmKG8pe3JldHVybic8c3BhbiBjbGFzcz1cIicrbC5qb2luKFwiIFwiKSsnXCInK3UoYykrXCI+XCIrdC5jb250ZW50K1wiPC9zcGFuPlwifWVsc2V7cmV0dXJuJzxzcGFuIHN0eWxlPVwiJythLmpvaW4oXCI7XCIpKydcIicrdShjKStcIj5cIit0LmNvbnRlbnQrXCI8L3NwYW4+XCJ9fX1dKTtyZXR1cm4gQW5zZXJ9KCk7ZS5leHBvcnRzPXN9fTt2YXIgcj17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKG4pe3ZhciBzPXJbbl07aWYocyE9PXVuZGVmaW5lZCl7cmV0dXJuIHMuZXhwb3J0c312YXIgaT1yW25dPXtleHBvcnRzOnt9fTt2YXIgdD10cnVlO3RyeXtlW25dKGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO3Q9ZmFsc2V9ZmluYWxseXtpZih0KWRlbGV0ZSByW25dfXJldHVybiBpLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oMjExKTttb2R1bGUuZXhwb3J0cz1ufSkoKTsiXSwibmFtZXMiOlsiZSIsInIiLCJkZWZpbmVQcm9wZXJ0aWVzIiwibiIsImxlbmd0aCIsInMiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsInByb3RvdHlwZSIsIl9jbGFzc0NhbGxDaGVjayIsIlR5cGVFcnJvciIsImNvbG9yIiwiY2xhc3MiLCJBbnNlciIsInZhbHVlIiwiZXNjYXBlRm9ySHRtbCIsImxpbmtpZnkiLCJhbnNpVG9IdG1sIiwiYW5zaVRvSnNvbiIsImFuc2lUb1RleHQiLCJmZyIsImJnIiwiZmdfdHJ1ZWNvbG9yIiwiYmdfdHJ1ZWNvbG9yIiwiYnJpZ2h0Iiwic2V0dXBQYWxldHRlIiwiUEFMRVRURV9DT0xPUlMiLCJwdXNoIiwiaSIsImZvcm1hdCIsInQiLCJvIiwiYSIsImwiLCJjIiwidSIsImYiLCJoIiwicmVwbGFjZSIsInByb2Nlc3MiLCJqc29uIiwiY2xlYXJMaW5lIiwic3BsaXQiLCJzaGlmdCIsInVuZGVmaW5lZCIsInRlc3QiLCJtYXAiLCJwcm9jZXNzQ2h1bmsiLCJwcm9jZXNzQ2h1bmtKc29uIiwiY29udGVudCIsInVuc2hpZnQiLCJyZW1vdmVfZW1wdHkiLCJmaWx0ZXIiLCJpc0VtcHR5Iiwiam9pbiIsInVzZV9jbGFzc2VzIiwiZGVjb3JhdGlvbiIsIndhc19wcm9jZXNzZWQiLCJtYXRjaCIsInBhcnNlSW50IiwiaXNOYU4iLCJwIiwiZyIsInYiLCJkIiwiXyIsImIiLCJ5IiwiayIsIlQiLCJtIiwidyIsInJlbmRlcl9kYXRhIiwiaGFzT3duUHJvcGVydHkiLCJleHBvcnRzIiwiX19uY2N3cGNrX3JlcXVpcmVfXyIsImFiIiwiX19kaXJuYW1lIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/anser/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/cookie/index.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/cookie/index.js ***!
- \*************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var e = {};\n (()=>{\n var r = e;\n /*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */ r.parse = parse;\n r.serialize = serialize;\n var i = decodeURIComponent;\n var t = encodeURIComponent;\n var a = /; */;\n var n = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n function parse(e, r) {\n if (typeof e !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var t = {};\n var n = r || {};\n var o = e.split(a);\n var s = n.decode || i;\n for(var p = 0; p < o.length; p++){\n var f = o[p];\n var u = f.indexOf(\"=\");\n if (u < 0) {\n continue;\n }\n var v = f.substr(0, u).trim();\n var c = f.substr(++u, f.length).trim();\n if ('\"' == c[0]) {\n c = c.slice(1, -1);\n }\n if (undefined == t[v]) {\n t[v] = tryDecode(c, s);\n }\n }\n return t;\n }\n function serialize(e, r, i) {\n var a = i || {};\n var o = a.encode || t;\n if (typeof o !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!n.test(e)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var s = o(r);\n if (s && !n.test(s)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var p = e + \"=\" + s;\n if (null != a.maxAge) {\n var f = a.maxAge - 0;\n if (isNaN(f) || !isFinite(f)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n p += \"; Max-Age=\" + Math.floor(f);\n }\n if (a.domain) {\n if (!n.test(a.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n p += \"; Domain=\" + a.domain;\n }\n if (a.path) {\n if (!n.test(a.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n p += \"; Path=\" + a.path;\n }\n if (a.expires) {\n if (typeof a.expires.toUTCString !== \"function\") {\n throw new TypeError(\"option expires is invalid\");\n }\n p += \"; Expires=\" + a.expires.toUTCString();\n }\n if (a.httpOnly) {\n p += \"; HttpOnly\";\n }\n if (a.secure) {\n p += \"; Secure\";\n }\n if (a.sameSite) {\n var u = typeof a.sameSite === \"string\" ? a.sameSite.toLowerCase() : a.sameSite;\n switch(u){\n case true:\n p += \"; SameSite=Strict\";\n break;\n case \"lax\":\n p += \"; SameSite=Lax\";\n break;\n case \"strict\":\n p += \"; SameSite=Strict\";\n break;\n case \"none\":\n p += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return p;\n }\n function tryDecode(e, r) {\n try {\n return r(e);\n } catch (r) {\n return e;\n }\n }\n })();\n module.exports = e;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9jb29raWUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLO0lBQWEsSUFBRyxPQUFPQSx3QkFBc0IsYUFBWUEsb0JBQW9CQyxFQUFFLEdBQUNDLFNBQVNBLEdBQUM7SUFBSSxJQUFJQyxJQUFFLENBQUM7SUFBRztRQUFLLElBQUlDLElBQUVEO1FBQ3pIOzs7OztDQUtDLEdBQUVDLEVBQUVDLEtBQUssR0FBQ0E7UUFBTUQsRUFBRUUsU0FBUyxHQUFDQTtRQUFVLElBQUlDLElBQUVDO1FBQW1CLElBQUlDLElBQUVDO1FBQW1CLElBQUlDLElBQUU7UUFBTSxJQUFJQyxJQUFFO1FBQXdDLFNBQVNQLE1BQU1GLENBQUMsRUFBQ0MsQ0FBQztZQUFFLElBQUcsT0FBT0QsTUFBSSxVQUFTO2dCQUFDLE1BQU0sSUFBSVUsVUFBVTtZQUFnQztZQUFDLElBQUlKLElBQUUsQ0FBQztZQUFFLElBQUlHLElBQUVSLEtBQUcsQ0FBQztZQUFFLElBQUlVLElBQUVYLEVBQUVZLEtBQUssQ0FBQ0o7WUFBRyxJQUFJSyxJQUFFSixFQUFFSyxNQUFNLElBQUVWO1lBQUUsSUFBSSxJQUFJVyxJQUFFLEdBQUVBLElBQUVKLEVBQUVLLE1BQU0sRUFBQ0QsSUFBSTtnQkFBQyxJQUFJRSxJQUFFTixDQUFDLENBQUNJLEVBQUU7Z0JBQUMsSUFBSUcsSUFBRUQsRUFBRUUsT0FBTyxDQUFDO2dCQUFLLElBQUdELElBQUUsR0FBRTtvQkFBQztnQkFBUTtnQkFBQyxJQUFJRSxJQUFFSCxFQUFFSSxNQUFNLENBQUMsR0FBRUgsR0FBR0ksSUFBSTtnQkFBRyxJQUFJQyxJQUFFTixFQUFFSSxNQUFNLENBQUMsRUFBRUgsR0FBRUQsRUFBRUQsTUFBTSxFQUFFTSxJQUFJO2dCQUFHLElBQUcsT0FBS0MsQ0FBQyxDQUFDLEVBQUUsRUFBQztvQkFBQ0EsSUFBRUEsRUFBRUMsS0FBSyxDQUFDLEdBQUUsQ0FBQztnQkFBRTtnQkFBQyxJQUFHQyxhQUFXbkIsQ0FBQyxDQUFDYyxFQUFFLEVBQUM7b0JBQUNkLENBQUMsQ0FBQ2MsRUFBRSxHQUFDTSxVQUFVSCxHQUFFVjtnQkFBRTtZQUFDO1lBQUMsT0FBT1A7UUFBQztRQUFDLFNBQVNILFVBQVVILENBQUMsRUFBQ0MsQ0FBQyxFQUFDRyxDQUFDO1lBQUUsSUFBSUksSUFBRUosS0FBRyxDQUFDO1lBQUUsSUFBSU8sSUFBRUgsRUFBRW1CLE1BQU0sSUFBRXJCO1lBQUUsSUFBRyxPQUFPSyxNQUFJLFlBQVc7Z0JBQUMsTUFBTSxJQUFJRCxVQUFVO1lBQTJCO1lBQUMsSUFBRyxDQUFDRCxFQUFFbUIsSUFBSSxDQUFDNUIsSUFBRztnQkFBQyxNQUFNLElBQUlVLFVBQVU7WUFBMkI7WUFBQyxJQUFJRyxJQUFFRixFQUFFVjtZQUFHLElBQUdZLEtBQUcsQ0FBQ0osRUFBRW1CLElBQUksQ0FBQ2YsSUFBRztnQkFBQyxNQUFNLElBQUlILFVBQVU7WUFBMEI7WUFBQyxJQUFJSyxJQUFFZixJQUFFLE1BQUlhO1lBQUUsSUFBRyxRQUFNTCxFQUFFcUIsTUFBTSxFQUFDO2dCQUFDLElBQUlaLElBQUVULEVBQUVxQixNQUFNLEdBQUM7Z0JBQUUsSUFBR0MsTUFBTWIsTUFBSSxDQUFDYyxTQUFTZCxJQUFHO29CQUFDLE1BQU0sSUFBSVAsVUFBVTtnQkFBMkI7Z0JBQUNLLEtBQUcsZUFBYWlCLEtBQUtDLEtBQUssQ0FBQ2hCO1lBQUU7WUFBQyxJQUFHVCxFQUFFMEIsTUFBTSxFQUFDO2dCQUFDLElBQUcsQ0FBQ3pCLEVBQUVtQixJQUFJLENBQUNwQixFQUFFMEIsTUFBTSxHQUFFO29CQUFDLE1BQU0sSUFBSXhCLFVBQVU7Z0JBQTJCO2dCQUFDSyxLQUFHLGNBQVlQLEVBQUUwQixNQUFNO1lBQUE7WUFBQyxJQUFHMUIsRUFBRTJCLElBQUksRUFBQztnQkFBQyxJQUFHLENBQUMxQixFQUFFbUIsSUFBSSxDQUFDcEIsRUFBRTJCLElBQUksR0FBRTtvQkFBQyxNQUFNLElBQUl6QixVQUFVO2dCQUF5QjtnQkFBQ0ssS0FBRyxZQUFVUCxFQUFFMkIsSUFBSTtZQUFBO1lBQUMsSUFBRzNCLEVBQUU0QixPQUFPLEVBQUM7Z0JBQUMsSUFBRyxPQUFPNUIsRUFBRTRCLE9BQU8sQ0FBQ0MsV0FBVyxLQUFHLFlBQVc7b0JBQUMsTUFBTSxJQUFJM0IsVUFBVTtnQkFBNEI7Z0JBQUNLLEtBQUcsZUFBYVAsRUFBRTRCLE9BQU8sQ0FBQ0MsV0FBVztZQUFFO1lBQUMsSUFBRzdCLEVBQUU4QixRQUFRLEVBQUM7Z0JBQUN2QixLQUFHO1lBQVk7WUFBQyxJQUFHUCxFQUFFK0IsTUFBTSxFQUFDO2dCQUFDeEIsS0FBRztZQUFVO1lBQUMsSUFBR1AsRUFBRWdDLFFBQVEsRUFBQztnQkFBQyxJQUFJdEIsSUFBRSxPQUFPVixFQUFFZ0MsUUFBUSxLQUFHLFdBQVNoQyxFQUFFZ0MsUUFBUSxDQUFDQyxXQUFXLEtBQUdqQyxFQUFFZ0MsUUFBUTtnQkFBQyxPQUFPdEI7b0JBQUcsS0FBSzt3QkFBS0gsS0FBRzt3QkFBb0I7b0JBQU0sS0FBSTt3QkFBTUEsS0FBRzt3QkFBaUI7b0JBQU0sS0FBSTt3QkFBU0EsS0FBRzt3QkFBb0I7b0JBQU0sS0FBSTt3QkFBT0EsS0FBRzt3QkFBa0I7b0JBQU07d0JBQVEsTUFBTSxJQUFJTCxVQUFVO2dCQUE2QjtZQUFDO1lBQUMsT0FBT0s7UUFBQztRQUFDLFNBQVNXLFVBQVUxQixDQUFDLEVBQUNDLENBQUM7WUFBRSxJQUFHO2dCQUFDLE9BQU9BLEVBQUVEO1lBQUUsRUFBQyxPQUFNQyxHQUFFO2dCQUFDLE9BQU9EO1lBQUM7UUFBQztJQUFDO0lBQUswQyxPQUFPQyxPQUFPLEdBQUMzQztBQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZS9pbmRleC5qcz82ZmY4Il0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgZT17fTsoKCk9Pnt2YXIgcj1lO1xuLyohXG4gKiBjb29raWVcbiAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgUm9tYW4gU2h0eWxtYW5cbiAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL3IucGFyc2U9cGFyc2U7ci5zZXJpYWxpemU9c2VyaWFsaXplO3ZhciBpPWRlY29kZVVSSUNvbXBvbmVudDt2YXIgdD1lbmNvZGVVUklDb21wb25lbnQ7dmFyIGE9LzsgKi87dmFyIG49L15bXFx1MDAwOVxcdTAwMjAtXFx1MDA3ZVxcdTAwODAtXFx1MDBmZl0rJC87ZnVuY3Rpb24gcGFyc2UoZSxyKXtpZih0eXBlb2YgZSE9PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHIgbXVzdCBiZSBhIHN0cmluZ1wiKX12YXIgdD17fTt2YXIgbj1yfHx7fTt2YXIgbz1lLnNwbGl0KGEpO3ZhciBzPW4uZGVjb2RlfHxpO2Zvcih2YXIgcD0wO3A8by5sZW5ndGg7cCsrKXt2YXIgZj1vW3BdO3ZhciB1PWYuaW5kZXhPZihcIj1cIik7aWYodTwwKXtjb250aW51ZX12YXIgdj1mLnN1YnN0cigwLHUpLnRyaW0oKTt2YXIgYz1mLnN1YnN0cigrK3UsZi5sZW5ndGgpLnRyaW0oKTtpZignXCInPT1jWzBdKXtjPWMuc2xpY2UoMSwtMSl9aWYodW5kZWZpbmVkPT10W3ZdKXt0W3ZdPXRyeURlY29kZShjLHMpfX1yZXR1cm4gdH1mdW5jdGlvbiBzZXJpYWxpemUoZSxyLGkpe3ZhciBhPWl8fHt9O3ZhciBvPWEuZW5jb2RlfHx0O2lmKHR5cGVvZiBvIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGVuY29kZSBpcyBpbnZhbGlkXCIpfWlmKCFuLnRlc3QoZSkpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBuYW1lIGlzIGludmFsaWRcIil9dmFyIHM9byhyKTtpZihzJiYhbi50ZXN0KHMpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgdmFsIGlzIGludmFsaWRcIil9dmFyIHA9ZStcIj1cIitzO2lmKG51bGwhPWEubWF4QWdlKXt2YXIgZj1hLm1heEFnZS0wO2lmKGlzTmFOKGYpfHwhaXNGaW5pdGUoZikpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gbWF4QWdlIGlzIGludmFsaWRcIil9cCs9XCI7IE1heC1BZ2U9XCIrTWF0aC5mbG9vcihmKX1pZihhLmRvbWFpbil7aWYoIW4udGVzdChhLmRvbWFpbikpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZG9tYWluIGlzIGludmFsaWRcIil9cCs9XCI7IERvbWFpbj1cIithLmRvbWFpbn1pZihhLnBhdGgpe2lmKCFuLnRlc3QoYS5wYXRoKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBwYXRoIGlzIGludmFsaWRcIil9cCs9XCI7IFBhdGg9XCIrYS5wYXRofWlmKGEuZXhwaXJlcyl7aWYodHlwZW9mIGEuZXhwaXJlcy50b1VUQ1N0cmluZyE9PVwiZnVuY3Rpb25cIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBleHBpcmVzIGlzIGludmFsaWRcIil9cCs9XCI7IEV4cGlyZXM9XCIrYS5leHBpcmVzLnRvVVRDU3RyaW5nKCl9aWYoYS5odHRwT25seSl7cCs9XCI7IEh0dHBPbmx5XCJ9aWYoYS5zZWN1cmUpe3ArPVwiOyBTZWN1cmVcIn1pZihhLnNhbWVTaXRlKXt2YXIgdT10eXBlb2YgYS5zYW1lU2l0ZT09PVwic3RyaW5nXCI/YS5zYW1lU2l0ZS50b0xvd2VyQ2FzZSgpOmEuc2FtZVNpdGU7c3dpdGNoKHUpe2Nhc2UgdHJ1ZTpwKz1cIjsgU2FtZVNpdGU9U3RyaWN0XCI7YnJlYWs7Y2FzZVwibGF4XCI6cCs9XCI7IFNhbWVTaXRlPUxheFwiO2JyZWFrO2Nhc2VcInN0cmljdFwiOnArPVwiOyBTYW1lU2l0ZT1TdHJpY3RcIjticmVhaztjYXNlXCJub25lXCI6cCs9XCI7IFNhbWVTaXRlPU5vbmVcIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gc2FtZVNpdGUgaXMgaW52YWxpZFwiKX19cmV0dXJuIHB9ZnVuY3Rpb24gdHJ5RGVjb2RlKGUscil7dHJ5e3JldHVybiByKGUpfWNhdGNoKHIpe3JldHVybiBlfX19KSgpO21vZHVsZS5leHBvcnRzPWV9KSgpOyJdLCJuYW1lcyI6WyJfX25jY3dwY2tfcmVxdWlyZV9fIiwiYWIiLCJfX2Rpcm5hbWUiLCJlIiwiciIsInBhcnNlIiwic2VyaWFsaXplIiwiaSIsImRlY29kZVVSSUNvbXBvbmVudCIsInQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJhIiwibiIsIlR5cGVFcnJvciIsIm8iLCJzcGxpdCIsInMiLCJkZWNvZGUiLCJwIiwibGVuZ3RoIiwiZiIsInUiLCJpbmRleE9mIiwidiIsInN1YnN0ciIsInRyaW0iLCJjIiwic2xpY2UiLCJ1bmRlZmluZWQiLCJ0cnlEZWNvZGUiLCJlbmNvZGUiLCJ0ZXN0IiwibWF4QWdlIiwiaXNOYU4iLCJpc0Zpbml0ZSIsIk1hdGgiLCJmbG9vciIsImRvbWFpbiIsInBhdGgiLCJleHBpcmVzIiwidG9VVENTdHJpbmciLCJodHRwT25seSIsInNlY3VyZSIsInNhbWVTaXRlIiwidG9Mb3dlckNhc2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/cookie/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/css.escape/css.escape.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/css.escape/css.escape.js ***!
- \**********************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n var e = {\n 553: function(e) {\n (function(r, t) {\n if (true) {\n e.exports = t(r);\n } else {}\n })(typeof __webpack_require__.g != \"undefined\" ? __webpack_require__.g : this, function(e) {\n if (e.CSS && e.CSS.escape) {\n return e.CSS.escape;\n }\n var cssEscape = function(e) {\n if (arguments.length == 0) {\n throw new TypeError(\"`CSS.escape` requires an argument.\");\n }\n var r = String(e);\n var t = r.length;\n var n = -1;\n var a;\n var i = \"\";\n var u = r.charCodeAt(0);\n while(++n < t){\n a = r.charCodeAt(n);\n if (a == 0) {\n i += \"�\";\n continue;\n }\n if (a >= 1 && a <= 31 || a == 127 || n == 0 && a >= 48 && a <= 57 || n == 1 && a >= 48 && a <= 57 && u == 45) {\n i += \"\\\\\" + a.toString(16) + \" \";\n continue;\n }\n if (n == 0 && t == 1 && a == 45) {\n i += \"\\\\\" + r.charAt(n);\n continue;\n }\n if (a >= 128 || a == 45 || a == 95 || a >= 48 && a <= 57 || a >= 65 && a <= 90 || a >= 97 && a <= 122) {\n i += r.charAt(n);\n continue;\n }\n i += \"\\\\\" + r.charAt(n);\n }\n return i;\n };\n if (!e.CSS) {\n e.CSS = {};\n }\n e.CSS.escape = cssEscape;\n return cssEscape;\n });\n }\n };\n var r = {};\n function __nccwpck_require__(t) {\n var n = r[t];\n if (n !== undefined) {\n return n.exports;\n }\n var a = r[t] = {\n exports: {}\n };\n var i = true;\n try {\n e[t].call(a.exports, a, a.exports, __nccwpck_require__);\n i = false;\n } finally{\n if (i) delete r[t];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var t = __nccwpck_require__(553);\n module.exports = t;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9jc3MuZXNjYXBlL2Nzcy5lc2NhcGUuanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLLElBQUlBLElBQUU7UUFBQyxLQUFJLFNBQVNBLENBQUM7WUFBRyxVQUFTQyxDQUFDLEVBQUNDLENBQUM7Z0JBQUUsSUFBRyxJQUFJLEVBQUM7b0JBQUNGLEVBQUVHLE9BQU8sR0FBQ0QsRUFBRUQ7Z0JBQUUsT0FBSyxFQUFFO1lBQUEsR0FBRyxPQUFPRyxxQkFBTUEsSUFBRSxjQUFZQSxxQkFBTUEsR0FBQyxJQUFJLEVBQUUsU0FBU0osQ0FBQztnQkFBRSxJQUFHQSxFQUFFSyxHQUFHLElBQUVMLEVBQUVLLEdBQUcsQ0FBQ0MsTUFBTSxFQUFDO29CQUFDLE9BQU9OLEVBQUVLLEdBQUcsQ0FBQ0MsTUFBTTtnQkFBQTtnQkFBQyxJQUFJQyxZQUFVLFNBQVNQLENBQUM7b0JBQUUsSUFBR1EsVUFBVUMsTUFBTSxJQUFFLEdBQUU7d0JBQUMsTUFBTSxJQUFJQyxVQUFVO29CQUFxQztvQkFBQyxJQUFJVCxJQUFFVSxPQUFPWDtvQkFBRyxJQUFJRSxJQUFFRCxFQUFFUSxNQUFNO29CQUFDLElBQUlHLElBQUUsQ0FBQztvQkFBRSxJQUFJQztvQkFBRSxJQUFJQyxJQUFFO29CQUFHLElBQUlDLElBQUVkLEVBQUVlLFVBQVUsQ0FBQztvQkFBRyxNQUFNLEVBQUVKLElBQUVWLEVBQUU7d0JBQUNXLElBQUVaLEVBQUVlLFVBQVUsQ0FBQ0o7d0JBQUcsSUFBR0MsS0FBRyxHQUFFOzRCQUFDQyxLQUFHOzRCQUFJO3dCQUFRO3dCQUFDLElBQUdELEtBQUcsS0FBR0EsS0FBRyxNQUFJQSxLQUFHLE9BQUtELEtBQUcsS0FBR0MsS0FBRyxNQUFJQSxLQUFHLE1BQUlELEtBQUcsS0FBR0MsS0FBRyxNQUFJQSxLQUFHLE1BQUlFLEtBQUcsSUFBRzs0QkFBQ0QsS0FBRyxPQUFLRCxFQUFFSSxRQUFRLENBQUMsTUFBSTs0QkFBSTt3QkFBUTt3QkFBQyxJQUFHTCxLQUFHLEtBQUdWLEtBQUcsS0FBR1csS0FBRyxJQUFHOzRCQUFDQyxLQUFHLE9BQUtiLEVBQUVpQixNQUFNLENBQUNOOzRCQUFHO3dCQUFRO3dCQUFDLElBQUdDLEtBQUcsT0FBS0EsS0FBRyxNQUFJQSxLQUFHLE1BQUlBLEtBQUcsTUFBSUEsS0FBRyxNQUFJQSxLQUFHLE1BQUlBLEtBQUcsTUFBSUEsS0FBRyxNQUFJQSxLQUFHLEtBQUk7NEJBQUNDLEtBQUdiLEVBQUVpQixNQUFNLENBQUNOOzRCQUFHO3dCQUFRO3dCQUFDRSxLQUFHLE9BQUtiLEVBQUVpQixNQUFNLENBQUNOO29CQUFFO29CQUFDLE9BQU9FO2dCQUFDO2dCQUFFLElBQUcsQ0FBQ2QsRUFBRUssR0FBRyxFQUFDO29CQUFDTCxFQUFFSyxHQUFHLEdBQUMsQ0FBQztnQkFBQztnQkFBQ0wsRUFBRUssR0FBRyxDQUFDQyxNQUFNLEdBQUNDO2dCQUFVLE9BQU9BO1lBQVM7UUFBRztJQUFDO0lBQUUsSUFBSU4sSUFBRSxDQUFDO0lBQUUsU0FBU2tCLG9CQUFvQmpCLENBQUM7UUFBRSxJQUFJVSxJQUFFWCxDQUFDLENBQUNDLEVBQUU7UUFBQyxJQUFHVSxNQUFJUSxXQUFVO1lBQUMsT0FBT1IsRUFBRVQsT0FBTztRQUFBO1FBQUMsSUFBSVUsSUFBRVosQ0FBQyxDQUFDQyxFQUFFLEdBQUM7WUFBQ0MsU0FBUSxDQUFDO1FBQUM7UUFBRSxJQUFJVyxJQUFFO1FBQUssSUFBRztZQUFDZCxDQUFDLENBQUNFLEVBQUUsQ0FBQ21CLElBQUksQ0FBQ1IsRUFBRVYsT0FBTyxFQUFDVSxHQUFFQSxFQUFFVixPQUFPLEVBQUNnQjtZQUFxQkwsSUFBRTtRQUFLLFNBQVE7WUFBQyxJQUFHQSxHQUFFLE9BQU9iLENBQUMsQ0FBQ0MsRUFBRTtRQUFBO1FBQUMsT0FBT1csRUFBRVYsT0FBTztJQUFBO0lBQUMsSUFBRyxPQUFPZ0Isd0JBQXNCLGFBQVlBLG9CQUFvQkcsRUFBRSxHQUFDQyxTQUFTQSxHQUFDO0lBQUksSUFBSXJCLElBQUVpQixvQkFBb0I7SUFBS0ssT0FBT3JCLE9BQU8sR0FBQ0Q7QUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9jc3MuZXNjYXBlL2Nzcy5lc2NhcGUuanM/M2VkMCJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9Pnt2YXIgZT17NTUzOmZ1bmN0aW9uKGUpeyhmdW5jdGlvbihyLHQpe2lmKHRydWUpe2UuZXhwb3J0cz10KHIpfWVsc2V7fX0pKHR5cGVvZiBnbG9iYWwhPVwidW5kZWZpbmVkXCI/Z2xvYmFsOnRoaXMsKGZ1bmN0aW9uKGUpe2lmKGUuQ1NTJiZlLkNTUy5lc2NhcGUpe3JldHVybiBlLkNTUy5lc2NhcGV9dmFyIGNzc0VzY2FwZT1mdW5jdGlvbihlKXtpZihhcmd1bWVudHMubGVuZ3RoPT0wKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiYENTUy5lc2NhcGVgIHJlcXVpcmVzIGFuIGFyZ3VtZW50LlwiKX12YXIgcj1TdHJpbmcoZSk7dmFyIHQ9ci5sZW5ndGg7dmFyIG49LTE7dmFyIGE7dmFyIGk9XCJcIjt2YXIgdT1yLmNoYXJDb2RlQXQoMCk7d2hpbGUoKytuPHQpe2E9ci5jaGFyQ29kZUF0KG4pO2lmKGE9PTApe2krPVwi77+9XCI7Y29udGludWV9aWYoYT49MSYmYTw9MzF8fGE9PTEyN3x8bj09MCYmYT49NDgmJmE8PTU3fHxuPT0xJiZhPj00OCYmYTw9NTcmJnU9PTQ1KXtpKz1cIlxcXFxcIithLnRvU3RyaW5nKDE2KStcIiBcIjtjb250aW51ZX1pZihuPT0wJiZ0PT0xJiZhPT00NSl7aSs9XCJcXFxcXCIrci5jaGFyQXQobik7Y29udGludWV9aWYoYT49MTI4fHxhPT00NXx8YT09OTV8fGE+PTQ4JiZhPD01N3x8YT49NjUmJmE8PTkwfHxhPj05NyYmYTw9MTIyKXtpKz1yLmNoYXJBdChuKTtjb250aW51ZX1pKz1cIlxcXFxcIityLmNoYXJBdChuKX1yZXR1cm4gaX07aWYoIWUuQ1NTKXtlLkNTUz17fX1lLkNTUy5lc2NhcGU9Y3NzRXNjYXBlO3JldHVybiBjc3NFc2NhcGV9KSl9fTt2YXIgcj17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHQpe3ZhciBuPXJbdF07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgYT1yW3RdPXtleHBvcnRzOnt9fTt2YXIgaT10cnVlO3RyeXtlW3RdLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO2k9ZmFsc2V9ZmluYWxseXtpZihpKWRlbGV0ZSByW3RdfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oNTUzKTttb2R1bGUuZXhwb3J0cz10fSkoKTsiXSwibmFtZXMiOlsiZSIsInIiLCJ0IiwiZXhwb3J0cyIsImdsb2JhbCIsIkNTUyIsImVzY2FwZSIsImNzc0VzY2FwZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIm4iLCJhIiwiaSIsInUiLCJjaGFyQ29kZUF0IiwidG9TdHJpbmciLCJjaGFyQXQiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwidW5kZWZpbmVkIiwiY2FsbCIsImFiIiwiX19kaXJuYW1lIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/css.escape/css.escape.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/lru-cache/index.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/lru-cache/index.js ***!
- \****************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var t = {\n 806: (t, e, i)=>{\n const s = i(190);\n const n = Symbol(\"max\");\n const l = Symbol(\"length\");\n const r = Symbol(\"lengthCalculator\");\n const h = Symbol(\"allowStale\");\n const a = Symbol(\"maxAge\");\n const o = Symbol(\"dispose\");\n const u = Symbol(\"noDisposeOnSet\");\n const f = Symbol(\"lruList\");\n const p = Symbol(\"cache\");\n const v = Symbol(\"updateAgeOnGet\");\n const naiveLength = ()=>1;\n class LRUCache {\n constructor(t){\n if (typeof t === \"number\") t = {\n max: t\n };\n if (!t) t = {};\n if (t.max && (typeof t.max !== \"number\" || t.max < 0)) throw new TypeError(\"max must be a non-negative number\");\n const e = this[n] = t.max || Infinity;\n const i = t.length || naiveLength;\n this[r] = typeof i !== \"function\" ? naiveLength : i;\n this[h] = t.stale || false;\n if (t.maxAge && typeof t.maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n this[a] = t.maxAge || 0;\n this[o] = t.dispose;\n this[u] = t.noDisposeOnSet || false;\n this[v] = t.updateAgeOnGet || false;\n this.reset();\n }\n set max(t) {\n if (typeof t !== \"number\" || t < 0) throw new TypeError(\"max must be a non-negative number\");\n this[n] = t || Infinity;\n trim(this);\n }\n get max() {\n return this[n];\n }\n set allowStale(t) {\n this[h] = !!t;\n }\n get allowStale() {\n return this[h];\n }\n set maxAge(t) {\n if (typeof t !== \"number\") throw new TypeError(\"maxAge must be a non-negative number\");\n this[a] = t;\n trim(this);\n }\n get maxAge() {\n return this[a];\n }\n set lengthCalculator(t) {\n if (typeof t !== \"function\") t = naiveLength;\n if (t !== this[r]) {\n this[r] = t;\n this[l] = 0;\n this[f].forEach((t)=>{\n t.length = this[r](t.value, t.key);\n this[l] += t.length;\n });\n }\n trim(this);\n }\n get lengthCalculator() {\n return this[r];\n }\n get length() {\n return this[l];\n }\n get itemCount() {\n return this[f].length;\n }\n rforEach(t, e) {\n e = e || this;\n for(let i = this[f].tail; i !== null;){\n const s = i.prev;\n forEachStep(this, t, i, e);\n i = s;\n }\n }\n forEach(t, e) {\n e = e || this;\n for(let i = this[f].head; i !== null;){\n const s = i.next;\n forEachStep(this, t, i, e);\n i = s;\n }\n }\n keys() {\n return this[f].toArray().map((t)=>t.key);\n }\n values() {\n return this[f].toArray().map((t)=>t.value);\n }\n reset() {\n if (this[o] && this[f] && this[f].length) {\n this[f].forEach((t)=>this[o](t.key, t.value));\n }\n this[p] = new Map;\n this[f] = new s;\n this[l] = 0;\n }\n dump() {\n return this[f].map((t)=>isStale(this, t) ? false : {\n k: t.key,\n v: t.value,\n e: t.now + (t.maxAge || 0)\n }).toArray().filter((t)=>t);\n }\n dumpLru() {\n return this[f];\n }\n set(t, e, i) {\n i = i || this[a];\n if (i && typeof i !== \"number\") throw new TypeError(\"maxAge must be a number\");\n const s = i ? Date.now() : 0;\n const h = this[r](e, t);\n if (this[p].has(t)) {\n if (h > this[n]) {\n del(this, this[p].get(t));\n return false;\n }\n const r = this[p].get(t);\n const a = r.value;\n if (this[o]) {\n if (!this[u]) this[o](t, a.value);\n }\n a.now = s;\n a.maxAge = i;\n a.value = e;\n this[l] += h - a.length;\n a.length = h;\n this.get(t);\n trim(this);\n return true;\n }\n const v = new Entry(t, e, h, s, i);\n if (v.length > this[n]) {\n if (this[o]) this[o](t, e);\n return false;\n }\n this[l] += v.length;\n this[f].unshift(v);\n this[p].set(t, this[f].head);\n trim(this);\n return true;\n }\n has(t) {\n if (!this[p].has(t)) return false;\n const e = this[p].get(t).value;\n return !isStale(this, e);\n }\n get(t) {\n return get(this, t, true);\n }\n peek(t) {\n return get(this, t, false);\n }\n pop() {\n const t = this[f].tail;\n if (!t) return null;\n del(this, t);\n return t.value;\n }\n del(t) {\n del(this, this[p].get(t));\n }\n load(t) {\n this.reset();\n const e = Date.now();\n for(let i = t.length - 1; i >= 0; i--){\n const s = t[i];\n const n = s.e || 0;\n if (n === 0) this.set(s.k, s.v);\n else {\n const t = n - e;\n if (t > 0) {\n this.set(s.k, s.v, t);\n }\n }\n }\n }\n prune() {\n this[p].forEach((t, e)=>get(this, e, false));\n }\n }\n const get = (t, e, i)=>{\n const s = t[p].get(e);\n if (s) {\n const e = s.value;\n if (isStale(t, e)) {\n del(t, s);\n if (!t[h]) return undefined;\n } else {\n if (i) {\n if (t[v]) s.value.now = Date.now();\n t[f].unshiftNode(s);\n }\n }\n return e.value;\n }\n };\n const isStale = (t, e)=>{\n if (!e || !e.maxAge && !t[a]) return false;\n const i = Date.now() - e.now;\n return e.maxAge ? i > e.maxAge : t[a] && i > t[a];\n };\n const trim = (t)=>{\n if (t[l] > t[n]) {\n for(let e = t[f].tail; t[l] > t[n] && e !== null;){\n const i = e.prev;\n del(t, e);\n e = i;\n }\n }\n };\n const del = (t, e)=>{\n if (e) {\n const i = e.value;\n if (t[o]) t[o](i.key, i.value);\n t[l] -= i.length;\n t[p].delete(i.key);\n t[f].removeNode(e);\n }\n };\n class Entry {\n constructor(t, e, i, s, n){\n this.key = t;\n this.value = e;\n this.length = i;\n this.now = s;\n this.maxAge = n || 0;\n }\n }\n const forEachStep = (t, e, i, s)=>{\n let n = i.value;\n if (isStale(t, n)) {\n del(t, i);\n if (!t[h]) n = undefined;\n }\n if (n) e.call(s, n.value, n.key, t);\n };\n t.exports = LRUCache;\n },\n 76: (t)=>{\n t.exports = function(t) {\n t.prototype[Symbol.iterator] = function*() {\n for(let t = this.head; t; t = t.next){\n yield t.value;\n }\n };\n };\n },\n 190: (t, e, i)=>{\n t.exports = Yallist;\n Yallist.Node = Node;\n Yallist.create = Yallist;\n function Yallist(t) {\n var e = this;\n if (!(e instanceof Yallist)) {\n e = new Yallist;\n }\n e.tail = null;\n e.head = null;\n e.length = 0;\n if (t && typeof t.forEach === \"function\") {\n t.forEach(function(t) {\n e.push(t);\n });\n } else if (arguments.length > 0) {\n for(var i = 0, s = arguments.length; i < s; i++){\n e.push(arguments[i]);\n }\n }\n return e;\n }\n Yallist.prototype.removeNode = function(t) {\n if (t.list !== this) {\n throw new Error(\"removing node which does not belong to this list\");\n }\n var e = t.next;\n var i = t.prev;\n if (e) {\n e.prev = i;\n }\n if (i) {\n i.next = e;\n }\n if (t === this.head) {\n this.head = e;\n }\n if (t === this.tail) {\n this.tail = i;\n }\n t.list.length--;\n t.next = null;\n t.prev = null;\n t.list = null;\n return e;\n };\n Yallist.prototype.unshiftNode = function(t) {\n if (t === this.head) {\n return;\n }\n if (t.list) {\n t.list.removeNode(t);\n }\n var e = this.head;\n t.list = this;\n t.next = e;\n if (e) {\n e.prev = t;\n }\n this.head = t;\n if (!this.tail) {\n this.tail = t;\n }\n this.length++;\n };\n Yallist.prototype.pushNode = function(t) {\n if (t === this.tail) {\n return;\n }\n if (t.list) {\n t.list.removeNode(t);\n }\n var e = this.tail;\n t.list = this;\n t.prev = e;\n if (e) {\n e.next = t;\n }\n this.tail = t;\n if (!this.head) {\n this.head = t;\n }\n this.length++;\n };\n Yallist.prototype.push = function() {\n for(var t = 0, e = arguments.length; t < e; t++){\n push(this, arguments[t]);\n }\n return this.length;\n };\n Yallist.prototype.unshift = function() {\n for(var t = 0, e = arguments.length; t < e; t++){\n unshift(this, arguments[t]);\n }\n return this.length;\n };\n Yallist.prototype.pop = function() {\n if (!this.tail) {\n return undefined;\n }\n var t = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) {\n this.tail.next = null;\n } else {\n this.head = null;\n }\n this.length--;\n return t;\n };\n Yallist.prototype.shift = function() {\n if (!this.head) {\n return undefined;\n }\n var t = this.head.value;\n this.head = this.head.next;\n if (this.head) {\n this.head.prev = null;\n } else {\n this.tail = null;\n }\n this.length--;\n return t;\n };\n Yallist.prototype.forEach = function(t, e) {\n e = e || this;\n for(var i = this.head, s = 0; i !== null; s++){\n t.call(e, i.value, s, this);\n i = i.next;\n }\n };\n Yallist.prototype.forEachReverse = function(t, e) {\n e = e || this;\n for(var i = this.tail, s = this.length - 1; i !== null; s--){\n t.call(e, i.value, s, this);\n i = i.prev;\n }\n };\n Yallist.prototype.get = function(t) {\n for(var e = 0, i = this.head; i !== null && e < t; e++){\n i = i.next;\n }\n if (e === t && i !== null) {\n return i.value;\n }\n };\n Yallist.prototype.getReverse = function(t) {\n for(var e = 0, i = this.tail; i !== null && e < t; e++){\n i = i.prev;\n }\n if (e === t && i !== null) {\n return i.value;\n }\n };\n Yallist.prototype.map = function(t, e) {\n e = e || this;\n var i = new Yallist;\n for(var s = this.head; s !== null;){\n i.push(t.call(e, s.value, this));\n s = s.next;\n }\n return i;\n };\n Yallist.prototype.mapReverse = function(t, e) {\n e = e || this;\n var i = new Yallist;\n for(var s = this.tail; s !== null;){\n i.push(t.call(e, s.value, this));\n s = s.prev;\n }\n return i;\n };\n Yallist.prototype.reduce = function(t, e) {\n var i;\n var s = this.head;\n if (arguments.length > 1) {\n i = e;\n } else if (this.head) {\n s = this.head.next;\n i = this.head.value;\n } else {\n throw new TypeError(\"Reduce of empty list with no initial value\");\n }\n for(var n = 0; s !== null; n++){\n i = t(i, s.value, n);\n s = s.next;\n }\n return i;\n };\n Yallist.prototype.reduceReverse = function(t, e) {\n var i;\n var s = this.tail;\n if (arguments.length > 1) {\n i = e;\n } else if (this.tail) {\n s = this.tail.prev;\n i = this.tail.value;\n } else {\n throw new TypeError(\"Reduce of empty list with no initial value\");\n }\n for(var n = this.length - 1; s !== null; n--){\n i = t(i, s.value, n);\n s = s.prev;\n }\n return i;\n };\n Yallist.prototype.toArray = function() {\n var t = new Array(this.length);\n for(var e = 0, i = this.head; i !== null; e++){\n t[e] = i.value;\n i = i.next;\n }\n return t;\n };\n Yallist.prototype.toArrayReverse = function() {\n var t = new Array(this.length);\n for(var e = 0, i = this.tail; i !== null; e++){\n t[e] = i.value;\n i = i.prev;\n }\n return t;\n };\n Yallist.prototype.slice = function(t, e) {\n e = e || this.length;\n if (e < 0) {\n e += this.length;\n }\n t = t || 0;\n if (t < 0) {\n t += this.length;\n }\n var i = new Yallist;\n if (e < t || e < 0) {\n return i;\n }\n if (t < 0) {\n t = 0;\n }\n if (e > this.length) {\n e = this.length;\n }\n for(var s = 0, n = this.head; n !== null && s < t; s++){\n n = n.next;\n }\n for(; n !== null && s < e; s++, n = n.next){\n i.push(n.value);\n }\n return i;\n };\n Yallist.prototype.sliceReverse = function(t, e) {\n e = e || this.length;\n if (e < 0) {\n e += this.length;\n }\n t = t || 0;\n if (t < 0) {\n t += this.length;\n }\n var i = new Yallist;\n if (e < t || e < 0) {\n return i;\n }\n if (t < 0) {\n t = 0;\n }\n if (e > this.length) {\n e = this.length;\n }\n for(var s = this.length, n = this.tail; n !== null && s > e; s--){\n n = n.prev;\n }\n for(; n !== null && s > t; s--, n = n.prev){\n i.push(n.value);\n }\n return i;\n };\n Yallist.prototype.splice = function(t, e) {\n if (t > this.length) {\n t = this.length - 1;\n }\n if (t < 0) {\n t = this.length + t;\n }\n for(var i = 0, s = this.head; s !== null && i < t; i++){\n s = s.next;\n }\n var n = [];\n for(var i = 0; s && i < e; i++){\n n.push(s.value);\n s = this.removeNode(s);\n }\n if (s === null) {\n s = this.tail;\n }\n if (s !== this.head && s !== this.tail) {\n s = s.prev;\n }\n for(var i = 2; i < arguments.length; i++){\n s = insert(this, s, arguments[i]);\n }\n return n;\n };\n Yallist.prototype.reverse = function() {\n var t = this.head;\n var e = this.tail;\n for(var i = t; i !== null; i = i.prev){\n var s = i.prev;\n i.prev = i.next;\n i.next = s;\n }\n this.head = e;\n this.tail = t;\n return this;\n };\n function insert(t, e, i) {\n var s = e === t.head ? new Node(i, null, e, t) : new Node(i, e, e.next, t);\n if (s.next === null) {\n t.tail = s;\n }\n if (s.prev === null) {\n t.head = s;\n }\n t.length++;\n return s;\n }\n function push(t, e) {\n t.tail = new Node(e, t.tail, null, t);\n if (!t.head) {\n t.head = t.tail;\n }\n t.length++;\n }\n function unshift(t, e) {\n t.head = new Node(e, null, t.head, t);\n if (!t.tail) {\n t.tail = t.head;\n }\n t.length++;\n }\n function Node(t, e, i, s) {\n if (!(this instanceof Node)) {\n return new Node(t, e, i, s);\n }\n this.list = s;\n this.value = t;\n if (e) {\n e.next = this;\n this.prev = e;\n } else {\n this.prev = null;\n }\n if (i) {\n i.prev = this;\n this.next = i;\n } else {\n this.next = null;\n }\n }\n try {\n i(76)(Yallist);\n } catch (t) {}\n }\n };\n var e = {};\n function __nccwpck_require__(i) {\n var s = e[i];\n if (s !== undefined) {\n return s.exports;\n }\n var n = e[i] = {\n exports: {}\n };\n var l = true;\n try {\n t[i](n, n.exports, __nccwpck_require__);\n l = false;\n } finally{\n if (l) delete e[i];\n }\n return n.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var i = __nccwpck_require__(806);\n module.exports = i;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9scnUtY2FjaGUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUksQ0FBQ0EsR0FBRUMsR0FBRUM7WUFBSyxNQUFNQyxJQUFFRCxFQUFFO1lBQUssTUFBTUUsSUFBRUMsT0FBTztZQUFPLE1BQU1DLElBQUVELE9BQU87WUFBVSxNQUFNRSxJQUFFRixPQUFPO1lBQW9CLE1BQU1HLElBQUVILE9BQU87WUFBYyxNQUFNSSxJQUFFSixPQUFPO1lBQVUsTUFBTUssSUFBRUwsT0FBTztZQUFXLE1BQU1NLElBQUVOLE9BQU87WUFBa0IsTUFBTU8sSUFBRVAsT0FBTztZQUFXLE1BQU1RLElBQUVSLE9BQU87WUFBUyxNQUFNUyxJQUFFVCxPQUFPO1lBQWtCLE1BQU1VLGNBQVksSUFBSTtZQUFFLE1BQU1DO2dCQUFTQyxZQUFZakIsQ0FBQyxDQUFDO29CQUFDLElBQUcsT0FBT0EsTUFBSSxVQUFTQSxJQUFFO3dCQUFDa0IsS0FBSWxCO29CQUFDO29CQUFFLElBQUcsQ0FBQ0EsR0FBRUEsSUFBRSxDQUFDO29CQUFFLElBQUdBLEVBQUVrQixHQUFHLElBQUcsUUFBT2xCLEVBQUVrQixHQUFHLEtBQUcsWUFBVWxCLEVBQUVrQixHQUFHLEdBQUMsSUFBRyxNQUFNLElBQUlDLFVBQVU7b0JBQXFDLE1BQU1sQixJQUFFLElBQUksQ0FBQ0csRUFBRSxHQUFDSixFQUFFa0IsR0FBRyxJQUFFRTtvQkFBUyxNQUFNbEIsSUFBRUYsRUFBRXFCLE1BQU0sSUFBRU47b0JBQVksSUFBSSxDQUFDUixFQUFFLEdBQUMsT0FBT0wsTUFBSSxhQUFXYSxjQUFZYjtvQkFBRSxJQUFJLENBQUNNLEVBQUUsR0FBQ1IsRUFBRXNCLEtBQUssSUFBRTtvQkFBTSxJQUFHdEIsRUFBRXVCLE1BQU0sSUFBRSxPQUFPdkIsRUFBRXVCLE1BQU0sS0FBRyxVQUFTLE1BQU0sSUFBSUos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eHQvZGlzdC9jb21waWxlZC9scnUtY2FjaGUvaW5kZXguanM/YjI5OSJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgdD17ODA2Oih0LGUsaSk9Pntjb25zdCBzPWkoMTkwKTtjb25zdCBuPVN5bWJvbChcIm1heFwiKTtjb25zdCBsPVN5bWJvbChcImxlbmd0aFwiKTtjb25zdCByPVN5bWJvbChcImxlbmd0aENhbGN1bGF0b3JcIik7Y29uc3QgaD1TeW1ib2woXCJhbGxvd1N0YWxlXCIpO2NvbnN0IGE9U3ltYm9sKFwibWF4QWdlXCIpO2NvbnN0IG89U3ltYm9sKFwiZGlzcG9zZVwiKTtjb25zdCB1PVN5bWJvbChcIm5vRGlzcG9zZU9uU2V0XCIpO2NvbnN0IGY9U3ltYm9sKFwibHJ1TGlzdFwiKTtjb25zdCBwPVN5bWJvbChcImNhY2hlXCIpO2NvbnN0IHY9U3ltYm9sKFwidXBkYXRlQWdlT25HZXRcIik7Y29uc3QgbmFpdmVMZW5ndGg9KCk9PjE7Y2xhc3MgTFJVQ2FjaGV7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQ9PT1cIm51bWJlclwiKXQ9e21heDp0fTtpZighdCl0PXt9O2lmKHQubWF4JiYodHlwZW9mIHQubWF4IT09XCJudW1iZXJcInx8dC5tYXg8MCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIm1heCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlclwiKTtjb25zdCBlPXRoaXNbbl09dC5tYXh8fEluZmluaXR5O2NvbnN0IGk9dC5sZW5ndGh8fG5haXZlTGVuZ3RoO3RoaXNbcl09dHlwZW9mIGkhPT1cImZ1bmN0aW9uXCI/bmFpdmVMZW5ndGg6aTt0aGlzW2hdPXQuc3RhbGV8fGZhbHNlO2lmKHQubWF4QWdlJiZ0eXBlb2YgdC5tYXhBZ2UhPT1cIm51bWJlclwiKXRocm93IG5ldyBUeXBlRXJyb3IoXCJtYXhBZ2UgbXVzdCBiZSBhIG51bWJlclwiKTt0aGlzW2FdPXQubWF4QWdlfHwwO3RoaXNbb109dC5kaXNwb3NlO3RoaXNbdV09dC5ub0Rpc3Bvc2VPblNldHx8ZmFsc2U7dGhpc1t2XT10LnVwZGF0ZUFnZU9uR2V0fHxmYWxzZTt0aGlzLnJlc2V0KCl9c2V0IG1heCh0KXtpZih0eXBlb2YgdCE9PVwibnVtYmVyXCJ8fHQ8MCl0aHJvdyBuZXcgVHlwZUVycm9yKFwibWF4IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyXCIpO3RoaXNbbl09dHx8SW5maW5pdHk7dHJpbSh0aGlzKX1nZXQgbWF4KCl7cmV0dXJuIHRoaXNbbl19c2V0IGFsbG93U3RhbGUodCl7dGhpc1toXT0hIXR9Z2V0IGFsbG93U3RhbGUoKXtyZXR1cm4gdGhpc1toXX1zZXQgbWF4QWdlKHQpe2lmKHR5cGVvZiB0IT09XCJudW1iZXJcIil0aHJvdyBuZXcgVHlwZUVycm9yKFwibWF4QWdlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyXCIpO3RoaXNbYV09dDt0cmltKHRoaXMpfWdldCBtYXhBZ2UoKXtyZXR1cm4gdGhpc1thXX1zZXQgbGVuZ3RoQ2FsY3VsYXRvcih0KXtpZih0eXBlb2YgdCE9PVwiZnVuY3Rpb25cIil0PW5haXZlTGVuZ3RoO2lmKHQhPT10aGlzW3JdKXt0aGlzW3JdPXQ7dGhpc1tsXT0wO3RoaXNbZl0uZm9yRWFjaCgodD0+e3QubGVuZ3RoPXRoaXNbcl0odC52YWx1ZSx0LmtleSk7dGhpc1tsXSs9dC5sZW5ndGh9KSl9dHJpbSh0aGlzKX1nZXQgbGVuZ3RoQ2FsY3VsYXRvcigpe3JldHVybiB0aGlzW3JdfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpc1tsXX1nZXQgaXRlbUNvdW50KCl7cmV0dXJuIHRoaXNbZl0ubGVuZ3RofXJmb3JFYWNoKHQsZSl7ZT1lfHx0aGlzO2ZvcihsZXQgaT10aGlzW2ZdLnRhaWw7aSE9PW51bGw7KXtjb25zdCBzPWkucHJldjtmb3JFYWNoU3RlcCh0aGlzLHQsaSxlKTtpPXN9fWZvckVhY2godCxlKXtlPWV8fHRoaXM7Zm9yKGxldCBpPXRoaXNbZl0uaGVhZDtpIT09bnVsbDspe2NvbnN0IHM9aS5uZXh0O2ZvckVhY2hTdGVwKHRoaXMsdCxpLGUpO2k9c319a2V5cygpe3JldHVybiB0aGlzW2ZdLnRvQXJyYXkoKS5tYXAoKHQ9PnQua2V5KSl9dmFsdWVzKCl7cmV0dXJuIHRoaXNbZl0udG9BcnJheSgpLm1hcCgodD0+dC52YWx1ZSkpfXJlc2V0KCl7aWYodGhpc1tvXSYmdGhpc1tmXSYmdGhpc1tmXS5sZW5ndGgpe3RoaXNbZl0uZm9yRWFjaCgodD0+dGhpc1tvXSh0LmtleSx0LnZhbHVlKSkpfXRoaXNbcF09bmV3IE1hcDt0aGlzW2ZdPW5ldyBzO3RoaXNbbF09MH1kdW1wKCl7cmV0dXJuIHRoaXNbZl0ubWFwKCh0PT5pc1N0YWxlKHRoaXMsdCk/ZmFsc2U6e2s6dC5rZXksdjp0LnZhbHVlLGU6dC5ub3crKHQubWF4QWdlfHwwKX0pKS50b0FycmF5KCkuZmlsdGVyKCh0PT50KSl9ZHVtcExydSgpe3JldHVybiB0aGlzW2ZdfXNldCh0LGUsaSl7aT1pfHx0aGlzW2FdO2lmKGkmJnR5cGVvZiBpIT09XCJudW1iZXJcIil0aHJvdyBuZXcgVHlwZUVycm9yKFwibWF4QWdlIG11c3QgYmUgYSBudW1iZXJcIik7Y29uc3Qgcz1pP0RhdGUubm93KCk6MDtjb25zdCBoPXRoaXNbcl0oZSx0KTtpZih0aGlzW3BdLmhhcyh0KSl7aWYoaD50aGlzW25dKXtkZWwodGhpcyx0aGlzW3BdLmdldCh0KSk7cmV0dXJuIGZhbHNlfWNvbnN0IHI9dGhpc1twXS5nZXQodCk7Y29uc3QgYT1yLnZhbHVlO2lmKHRoaXNbb10pe2lmKCF0aGlzW3VdKXRoaXNbb10odCxhLnZhbHVlKX1hLm5vdz1zO2EubWF4QWdlPWk7YS52YWx1ZT1lO3RoaXNbbF0rPWgtYS5sZW5ndGg7YS5sZW5ndGg9aDt0aGlzLmdldCh0KTt0cmltKHRoaXMpO3JldHVybiB0cnVlfWNvbnN0IHY9bmV3IEVudHJ5KHQsZSxoLHMsaSk7aWYodi5sZW5ndGg+dGhpc1tuXSl7aWYodGhpc1tvXSl0aGlzW29dKHQsZSk7cmV0dXJuIGZhbHNlfXRoaXNbbF0rPXYubGVuZ3RoO3RoaXNbZl0udW5zaGlmdCh2KTt0aGlzW3BdLnNldCh0LHRoaXNbZl0uaGVhZCk7dHJpbSh0aGlzKTtyZXR1cm4gdHJ1ZX1oYXModCl7aWYoIXRoaXNbcF0uaGFzKHQpKXJldHVybiBmYWxzZTtjb25zdCBlPXRoaXNbcF0uZ2V0KHQpLnZhbHVlO3JldHVybiFpc1N0YWxlKHRoaXMsZSl9Z2V0KHQpe3JldHVybiBnZXQodGhpcyx0LHRydWUpfXBlZWsodCl7cmV0dXJuIGdldCh0aGlzLHQsZmFsc2UpfXBvcCgpe2NvbnN0IHQ9dGhpc1tmXS50YWlsO2lmKCF0KXJldHVybiBudWxsO2RlbCh0aGlzLHQpO3JldHVybiB0LnZhbHVlfWRlbCh0KXtkZWwodGhpcyx0aGlzW3BdLmdldCh0KSl9bG9hZCh0KXt0aGlzLnJlc2V0KCk7Y29uc3QgZT1EYXRlLm5vdygpO2ZvcihsZXQgaT10Lmxlbmd0aC0xO2k+PTA7aS0tKXtjb25zdCBzPXRbaV07Y29uc3Qgbj1zLmV8fDA7aWYobj09PTApdGhpcy5zZXQocy5rLHMudik7ZWxzZXtjb25zdCB0PW4tZTtpZih0PjApe3RoaXMuc2V0KHMuayxzLnYsdCl9fX19cHJ1bmUoKXt0aGlzW3BdLmZvckVhY2goKCh0LGUpPT5nZXQodGhpcyxlLGZhbHNlKSkpfX1jb25zdCBnZXQ9KHQsZSxpKT0+e2NvbnN0IHM9dFtwXS5nZXQoZSk7aWYocyl7Y29uc3QgZT1zLnZhbHVlO2lmKGlzU3RhbGUodCxlKSl7ZGVsKHQscyk7aWYoIXRbaF0pcmV0dXJuIHVuZGVmaW5lZH1lbHNle2lmKGkpe2lmKHRbdl0pcy52YWx1ZS5ub3c9RGF0ZS5ub3coKTt0W2ZdLnVuc2hpZnROb2RlKHMpfX1yZXR1cm4gZS52YWx1ZX19O2NvbnN0IGlzU3RhbGU9KHQsZSk9PntpZighZXx8IWUubWF4QWdlJiYhdFthXSlyZXR1cm4gZmFsc2U7Y29uc3QgaT1EYXRlLm5vdygpLWUubm93O3JldHVybiBlLm1heEFnZT9pPmUubWF4QWdlOnRbYV0mJmk+dFthXX07Y29uc3QgdHJpbT10PT57aWYodFtsXT50W25dKXtmb3IobGV0IGU9dFtmXS50YWlsO3RbbF0+dFtuXSYmZSE9PW51bGw7KXtjb25zdCBpPWUucHJldjtkZWwodCxlKTtlPWl9fX07Y29uc3QgZGVsPSh0LGUpPT57aWYoZSl7Y29uc3QgaT1lLnZhbHVlO2lmKHRbb10pdFtvXShpLmtleSxpLnZhbHVlKTt0W2xdLT1pLmxlbmd0aDt0W3BdLmRlbGV0ZShpLmtleSk7dFtmXS5yZW1vdmVOb2RlKGUpfX07Y2xhc3MgRW50cnl7Y29uc3RydWN0b3IodCxlLGkscyxuKXt0aGlzLmtleT10O3RoaXMudmFsdWU9ZTt0aGlzLmxlbmd0aD1pO3RoaXMubm93PXM7dGhpcy5tYXhBZ2U9bnx8MH19Y29uc3QgZm9yRWFjaFN0ZXA9KHQsZSxpLHMpPT57bGV0IG49aS52YWx1ZTtpZihpc1N0YWxlKHQsbikpe2RlbCh0LGkpO2lmKCF0W2hdKW49dW5kZWZpbmVkfWlmKG4pZS5jYWxsKHMsbi52YWx1ZSxuLmtleSx0KX07dC5leHBvcnRzPUxSVUNhY2hlfSw3Njp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3QucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24qKCl7Zm9yKGxldCB0PXRoaXMuaGVhZDt0O3Q9dC5uZXh0KXt5aWVsZCB0LnZhbHVlfX19fSwxOTA6KHQsZSxpKT0+e3QuZXhwb3J0cz1ZYWxsaXN0O1lhbGxpc3QuTm9kZT1Ob2RlO1lhbGxpc3QuY3JlYXRlPVlhbGxpc3Q7ZnVuY3Rpb24gWWFsbGlzdCh0KXt2YXIgZT10aGlzO2lmKCEoZSBpbnN0YW5jZW9mIFlhbGxpc3QpKXtlPW5ldyBZYWxsaXN0fWUudGFpbD1udWxsO2UuaGVhZD1udWxsO2UubGVuZ3RoPTA7aWYodCYmdHlwZW9mIHQuZm9yRWFjaD09PVwiZnVuY3Rpb25cIil7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnB1c2godCl9KSl9ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPjApe2Zvcih2YXIgaT0wLHM9YXJndW1lbnRzLmxlbmd0aDtpPHM7aSsrKXtlLnB1c2goYXJndW1lbnRzW2ldKX19cmV0dXJuIGV9WWFsbGlzdC5wcm90b3R5cGUucmVtb3ZlTm9kZT1mdW5jdGlvbih0KXtpZih0Lmxpc3QhPT10aGlzKXt0aHJvdyBuZXcgRXJyb3IoXCJyZW1vdmluZyBub2RlIHdoaWNoIGRvZXMgbm90IGJlbG9uZyB0byB0aGlzIGxpc3RcIil9dmFyIGU9dC5uZXh0O3ZhciBpPXQucHJldjtpZihlKXtlLnByZXY9aX1pZihpKXtpLm5leHQ9ZX1pZih0PT09dGhpcy5oZWFkKXt0aGlzLmhlYWQ9ZX1pZih0PT09dGhpcy50YWlsKXt0aGlzLnRhaWw9aX10Lmxpc3QubGVuZ3RoLS07dC5uZXh0PW51bGw7dC5wcmV2PW51bGw7dC5saXN0PW51bGw7cmV0dXJuIGV9O1lhbGxpc3QucHJvdG90eXBlLnVuc2hpZnROb2RlPWZ1bmN0aW9uKHQpe2lmKHQ9PT10aGlzLmhlYWQpe3JldHVybn1pZih0Lmxpc3Qpe3QubGlzdC5yZW1vdmVOb2RlKHQpfXZhciBlPXRoaXMuaGVhZDt0Lmxpc3Q9dGhpczt0Lm5leHQ9ZTtpZihlKXtlLnByZXY9dH10aGlzLmhlYWQ9dDtpZighdGhpcy50YWlsKXt0aGlzLnRhaWw9dH10aGlzLmxlbmd0aCsrfTtZYWxsaXN0LnByb3RvdHlwZS5wdXNoTm9kZT1mdW5jdGlvbih0KXtpZih0PT09dGhpcy50YWlsKXtyZXR1cm59aWYodC5saXN0KXt0Lmxpc3QucmVtb3ZlTm9kZSh0KX12YXIgZT10aGlzLnRhaWw7dC5saXN0PXRoaXM7dC5wcmV2PWU7aWYoZSl7ZS5uZXh0PXR9dGhpcy50YWlsPXQ7aWYoIXRoaXMuaGVhZCl7dGhpcy5oZWFkPXR9dGhpcy5sZW5ndGgrK307WWFsbGlzdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9YXJndW1lbnRzLmxlbmd0aDt0PGU7dCsrKXtwdXNoKHRoaXMsYXJndW1lbnRzW3RdKX1yZXR1cm4gdGhpcy5sZW5ndGh9O1lhbGxpc3QucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPWFyZ3VtZW50cy5sZW5ndGg7dDxlO3QrKyl7dW5zaGlmdCh0aGlzLGFyZ3VtZW50c1t0XSl9cmV0dXJuIHRoaXMubGVuZ3RofTtZYWxsaXN0LnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXtpZighdGhpcy50YWlsKXtyZXR1cm4gdW5kZWZpbmVkfXZhciB0PXRoaXMudGFpbC52YWx1ZTt0aGlzLnRhaWw9dGhpcy50YWlsLnByZXY7aWYodGhpcy50YWlsKXt0aGlzLnRhaWwubmV4dD1udWxsfWVsc2V7dGhpcy5oZWFkPW51bGx9dGhpcy5sZW5ndGgtLTtyZXR1cm4gdH07WWFsbGlzdC5wcm90b3R5cGUuc2hpZnQ9ZnVuY3Rpb24oKXtpZighdGhpcy5oZWFkKXtyZXR1cm4gdW5kZWZpbmVkfXZhciB0PXRoaXMuaGVhZC52YWx1ZTt0aGlzLmhlYWQ9dGhpcy5oZWFkLm5leHQ7aWYodGhpcy5oZWFkKXt0aGlzLmhlYWQucHJldj1udWxsfWVsc2V7dGhpcy50YWlsPW51bGx9dGhpcy5sZW5ndGgtLTtyZXR1cm4gdH07WWFsbGlzdC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbih0LGUpe2U9ZXx8dGhpcztmb3IodmFyIGk9dGhpcy5oZWFkLHM9MDtpIT09bnVsbDtzKyspe3QuY2FsbChlLGkudmFsdWUscyx0aGlzKTtpPWkubmV4dH19O1lhbGxpc3QucHJvdG90eXBlLmZvckVhY2hSZXZlcnNlPWZ1bmN0aW9uKHQsZSl7ZT1lfHx0aGlzO2Zvcih2YXIgaT10aGlzLnRhaWwscz10aGlzLmxlbmd0aC0xO2khPT1udWxsO3MtLSl7dC5jYWxsKGUsaS52YWx1ZSxzLHRoaXMpO2k9aS5wcmV2fX07WWFsbGlzdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLGk9dGhpcy5oZWFkO2khPT1udWxsJiZlPHQ7ZSsrKXtpPWkubmV4dH1pZihlPT09dCYmaSE9PW51bGwpe3JldHVybiBpLnZhbHVlfX07WWFsbGlzdC5wcm90b3R5cGUuZ2V0UmV2ZXJzZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxpPXRoaXMudGFpbDtpIT09bnVsbCYmZTx0O2UrKyl7aT1pLnByZXZ9aWYoZT09PXQmJmkhPT1udWxsKXtyZXR1cm4gaS52YWx1ZX19O1lhbGxpc3QucHJvdG90eXBlLm1hcD1mdW5jdGlvbih0LGUpe2U9ZXx8dGhpczt2YXIgaT1uZXcgWWFsbGlzdDtmb3IodmFyIHM9dGhpcy5oZWFkO3MhPT1udWxsOyl7aS5wdXNoKHQuY2FsbChlLHMudmFsdWUsdGhpcykpO3M9cy5uZXh0fXJldHVybiBpfTtZYWxsaXN0LnByb3RvdHlwZS5tYXBSZXZlcnNlPWZ1bmN0aW9uKHQsZSl7ZT1lfHx0aGlzO3ZhciBpPW5ldyBZYWxsaXN0O2Zvcih2YXIgcz10aGlzLnRhaWw7cyE9PW51bGw7KXtpLnB1c2godC5jYWxsKGUscy52YWx1ZSx0aGlzKSk7cz1zLnByZXZ9cmV0dXJuIGl9O1lhbGxpc3QucHJvdG90eXBlLnJlZHVjZT1mdW5jdGlvbih0LGUpe3ZhciBpO3ZhciBzPXRoaXMuaGVhZDtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2k9ZX1lbHNlIGlmKHRoaXMuaGVhZCl7cz10aGlzLmhlYWQubmV4dDtpPXRoaXMuaGVhZC52YWx1ZX1lbHNle3Rocm93IG5ldyBUeXBlRXJyb3IoXCJSZWR1Y2Ugb2YgZW1wdHkgbGlzdCB3aXRoIG5vIGluaXRpYWwgdmFsdWVcIil9Zm9yKHZhciBuPTA7cyE9PW51bGw7bisrKXtpPXQoaSxzLnZhbHVlLG4pO3M9cy5uZXh0fXJldHVybiBpfTtZYWxsaXN0LnByb3RvdHlwZS5yZWR1Y2VSZXZlcnNlPWZ1bmN0aW9uKHQsZSl7dmFyIGk7dmFyIHM9dGhpcy50YWlsO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSl7aT1lfWVsc2UgaWYodGhpcy50YWlsKXtzPXRoaXMudGFpbC5wcmV2O2k9dGhpcy50YWlsLnZhbHVlfWVsc2V7dGhyb3cgbmV3IFR5cGVFcnJvcihcIlJlZHVjZSBvZiBlbXB0eSBsaXN0IHdpdGggbm8gaW5pdGlhbCB2YWx1ZVwiKX1mb3IodmFyIG49dGhpcy5sZW5ndGgtMTtzIT09bnVsbDtuLS0pe2k9dChpLHMudmFsdWUsbik7cz1zLnByZXZ9cmV0dXJuIGl9O1lhbGxpc3QucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgZT0wLGk9dGhpcy5oZWFkO2khPT1udWxsO2UrKyl7dFtlXT1pLnZhbHVlO2k9aS5uZXh0fXJldHVybiB0fTtZYWxsaXN0LnByb3RvdHlwZS50b0FycmF5UmV2ZXJzZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBlPTAsaT10aGlzLnRhaWw7aSE9PW51bGw7ZSsrKXt0W2VdPWkudmFsdWU7aT1pLnByZXZ9cmV0dXJuIHR9O1lhbGxpc3QucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHQsZSl7ZT1lfHx0aGlzLmxlbmd0aDtpZihlPDApe2UrPXRoaXMubGVuZ3RofXQ9dHx8MDtpZih0PDApe3QrPXRoaXMubGVuZ3RofXZhciBpPW5ldyBZYWxsaXN0O2lmKGU8dHx8ZTwwKXtyZXR1cm4gaX1pZih0PDApe3Q9MH1pZihlPnRoaXMubGVuZ3RoKXtlPXRoaXMubGVuZ3RofWZvcih2YXIgcz0wLG49dGhpcy5oZWFkO24hPT1udWxsJiZzPHQ7cysrKXtuPW4ubmV4dH1mb3IoO24hPT1udWxsJiZzPGU7cysrLG49bi5uZXh0KXtpLnB1c2gobi52YWx1ZSl9cmV0dXJuIGl9O1lhbGxpc3QucHJvdG90eXBlLnNsaWNlUmV2ZXJzZT1mdW5jdGlvbih0LGUpe2U9ZXx8dGhpcy5sZW5ndGg7aWYoZTwwKXtlKz10aGlzLmxlbmd0aH10PXR8fDA7aWYodDwwKXt0Kz10aGlzLmxlbmd0aH12YXIgaT1uZXcgWWFsbGlzdDtpZihlPHR8fGU8MCl7cmV0dXJuIGl9aWYodDwwKXt0PTB9aWYoZT50aGlzLmxlbmd0aCl7ZT10aGlzLmxlbmd0aH1mb3IodmFyIHM9dGhpcy5sZW5ndGgsbj10aGlzLnRhaWw7biE9PW51bGwmJnM+ZTtzLS0pe249bi5wcmV2fWZvcig7biE9PW51bGwmJnM+dDtzLS0sbj1uLnByZXYpe2kucHVzaChuLnZhbHVlKX1yZXR1cm4gaX07WWFsbGlzdC5wcm90b3R5cGUuc3BsaWNlPWZ1bmN0aW9uKHQsZSl7aWYodD50aGlzLmxlbmd0aCl7dD10aGlzLmxlbmd0aC0xfWlmKHQ8MCl7dD10aGlzLmxlbmd0aCt0fWZvcih2YXIgaT0wLHM9dGhpcy5oZWFkO3MhPT1udWxsJiZpPHQ7aSsrKXtzPXMubmV4dH12YXIgbj1bXTtmb3IodmFyIGk9MDtzJiZpPGU7aSsrKXtuLnB1c2gocy52YWx1ZSk7cz10aGlzLnJlbW92ZU5vZGUocyl9aWYocz09PW51bGwpe3M9dGhpcy50YWlsfWlmKHMhPT10aGlzLmhlYWQmJnMhPT10aGlzLnRhaWwpe3M9cy5wcmV2fWZvcih2YXIgaT0yO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3M9aW5zZXJ0KHRoaXMscyxhcmd1bWVudHNbaV0pfXJldHVybiBufTtZYWxsaXN0LnByb3RvdHlwZS5yZXZlcnNlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oZWFkO3ZhciBlPXRoaXMudGFpbDtmb3IodmFyIGk9dDtpIT09bnVsbDtpPWkucHJldil7dmFyIHM9aS5wcmV2O2kucHJldj1pLm5leHQ7aS5uZXh0PXN9dGhpcy5oZWFkPWU7dGhpcy50YWlsPXQ7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIGluc2VydCh0LGUsaSl7dmFyIHM9ZT09PXQuaGVhZD9uZXcgTm9kZShpLG51bGwsZSx0KTpuZXcgTm9kZShpLGUsZS5uZXh0LHQpO2lmKHMubmV4dD09PW51bGwpe3QudGFpbD1zfWlmKHMucHJldj09PW51bGwpe3QuaGVhZD1zfXQubGVuZ3RoKys7cmV0dXJuIHN9ZnVuY3Rpb24gcHVzaCh0LGUpe3QudGFpbD1uZXcgTm9kZShlLHQudGFpbCxudWxsLHQpO2lmKCF0LmhlYWQpe3QuaGVhZD10LnRhaWx9dC5sZW5ndGgrK31mdW5jdGlvbiB1bnNoaWZ0KHQsZSl7dC5oZWFkPW5ldyBOb2RlKGUsbnVsbCx0LmhlYWQsdCk7aWYoIXQudGFpbCl7dC50YWlsPXQuaGVhZH10Lmxlbmd0aCsrfWZ1bmN0aW9uIE5vZGUodCxlLGkscyl7aWYoISh0aGlzIGluc3RhbmNlb2YgTm9kZSkpe3JldHVybiBuZXcgTm9kZSh0LGUsaSxzKX10aGlzLmxpc3Q9czt0aGlzLnZhbHVlPXQ7aWYoZSl7ZS5uZXh0PXRoaXM7dGhpcy5wcmV2PWV9ZWxzZXt0aGlzLnByZXY9bnVsbH1pZihpKXtpLnByZXY9dGhpczt0aGlzLm5leHQ9aX1lbHNle3RoaXMubmV4dD1udWxsfX10cnl7aSg3NikoWWFsbGlzdCl9Y2F0Y2godCl7fX19O3ZhciBlPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oaSl7dmFyIHM9ZVtpXTtpZihzIT09dW5kZWZpbmVkKXtyZXR1cm4gcy5leHBvcnRzfXZhciBuPWVbaV09e2V4cG9ydHM6e319O3ZhciBsPXRydWU7dHJ5e3RbaV0obixuLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7bD1mYWxzZX1maW5hbGx5e2lmKGwpZGVsZXRlIGVbaV19cmV0dXJuIG4uZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIGk9X19uY2N3cGNrX3JlcXVpcmVfXyg4MDYpO21vZHVsZS5leHBvcnRzPWl9KSgpOyJdLCJuYW1lcyI6WyJ0IiwiZSIsImkiLCJzIiwibiIsIlN5bWJvbCIsImwiLCJyIiwiaCIsImEiLCJvIiwidSIsImYiLCJwIiwidiIsIm5haXZlTGVuZ3RoIiwiTFJVQ2FjaGUiLCJjb25zdHJ1Y3RvciIsIm1heCIsIlR5cGVFcnJvciIsIkluZmluaXR5IiwibGVuZ3RoIiwic3RhbGUiLCJtYXhBZ2UiLCJkaXNwb3NlIiwibm9EaXNwb3NlT25TZXQiLCJ1cGRhdGVBZ2VPbkdldCIsInJlc2V0IiwidHJpbSIsImFsbG93U3RhbGUiLCJsZW5ndGhDYWxjdWxhdG9yIiwiZm9yRWFjaCIsInZhbHVlIiwia2V5IiwiaXRlbUNvdW50IiwicmZvckVhY2giLCJ0YWlsIiwicHJldiIsImZvckVhY2hTdGVwIiwiaGVhZCIsIm5leHQiLCJrZXlzIiwidG9BcnJheSIsIm1hcCIsInZhbHVlcyIsIk1hcCIsImR1bXAiLCJpc1N0YWxlIiwiayIsIm5vdyIsImZpbHRlciIsImR1bXBMcnUiLCJzZXQiLCJEYXRlIiwiaGFzIiwiZGVsIiwiZ2V0IiwiRW50cnkiLCJ1bnNoaWZ0IiwicGVlayIsInBvcCIsImxvYWQiLCJwcnVuZSIsInVuZGVmaW5lZCIsInVuc2hpZnROb2RlIiwiZGVsZXRlIiwicmVtb3ZlTm9kZSIsImNhbGwiLCJleHBvcnRzIiwicHJvdG90eXBlIiwiaXRlcmF0b3IiLCJZYWxsaXN0IiwiTm9kZSIsImNyZWF0ZSIsInB1c2giLCJhcmd1bWVudHMiLCJsaXN0IiwiRXJyb3IiLCJwdXNoTm9kZSIsInNoaWZ0IiwiZm9yRWFjaFJldmVyc2UiLCJnZXRSZXZlcnNlIiwibWFwUmV2ZXJzZSIsInJlZHVjZSIsInJlZHVjZVJldmVyc2UiLCJBcnJheSIsInRvQXJyYXlSZXZlcnNlIiwic2xpY2UiLCJzbGljZVJldmVyc2UiLCJzcGxpY2UiLCJpbnNlcnQiLCJyZXZlcnNlIiwiX19uY2N3cGNrX3JlcXVpcmVfXyIsImFiIiwiX19kaXJuYW1lIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/lru-cache/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/native-url/index.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/native-url/index.js ***!
- \*****************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(function() {\n var e = {\n 452: function(e) {\n \"use strict\";\n e.exports = __webpack_require__(/*! next/dist/compiled/querystring-es3 */ \"(ssr)/../../node_modules/next/dist/compiled/querystring-es3/index.js\");\n }\n };\n var t = {};\n function __nccwpck_require__(o) {\n var a = t[o];\n if (a !== undefined) {\n return a.exports;\n }\n var s = t[o] = {\n exports: {}\n };\n var n = true;\n try {\n e[o](s, s.exports, __nccwpck_require__);\n n = false;\n } finally{\n if (n) delete t[o];\n }\n return s.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var o = {};\n !function() {\n var e = o;\n var t, a = (t = __nccwpck_require__(452)) && \"object\" == typeof t && \"default\" in t ? t.default : t, s = /https?|ftp|gopher|file/;\n function r(e) {\n \"string\" == typeof e && (e = d(e));\n var t = function(e, t, o) {\n var a = e.auth, s = e.hostname, n = e.protocol || \"\", p = e.pathname || \"\", c = e.hash || \"\", i = e.query || \"\", u = !1;\n a = a ? encodeURIComponent(a).replace(/%3A/i, \":\") + \"@\" : \"\", e.host ? u = a + e.host : s && (u = a + (~s.indexOf(\":\") ? \"[\" + s + \"]\" : s), e.port && (u += \":\" + e.port)), i && \"object\" == typeof i && (i = t.encode(i));\n var f = e.search || i && \"?\" + i || \"\";\n return n && \":\" !== n.substr(-1) && (n += \":\"), e.slashes || (!n || o.test(n)) && !1 !== u ? (u = \"//\" + (u || \"\"), p && \"/\" !== p[0] && (p = \"/\" + p)) : u || (u = \"\"), c && \"#\" !== c[0] && (c = \"#\" + c), f && \"?\" !== f[0] && (f = \"?\" + f), {\n protocol: n,\n host: u,\n pathname: p = p.replace(/[?#]/g, encodeURIComponent),\n search: f = f.replace(\"#\", \"%23\"),\n hash: c\n };\n }(e, a, s);\n return \"\" + t.protocol + t.host + t.pathname + t.search + t.hash;\n }\n var n = \"http://\", p = \"w.w\", c = n + p, i = /^([a-z0-9.+-]*:\\/\\/\\/)([a-z0-9.+-]:\\/*)?/i, u = /https?|ftp|gopher|file/;\n function h(e, t) {\n var o = \"string\" == typeof e ? d(e) : e;\n e = \"object\" == typeof e ? r(e) : e;\n var a = d(t), s = \"\";\n o.protocol && !o.slashes && (s = o.protocol, e = e.replace(o.protocol, \"\"), s += \"/\" === t[0] || \"/\" === e[0] ? \"/\" : \"\"), s && a.protocol && (s = \"\", a.slashes || (s = a.protocol, t = t.replace(a.protocol, \"\")));\n var p = e.match(i);\n p && !a.protocol && (e = e.substr((s = p[1] + (p[2] || \"\")).length), /^\\/\\/[^/]/.test(t) && (s = s.slice(0, -1)));\n var f = new URL(e, c + \"/\"), m = new URL(t, f).toString().replace(c, \"\"), v = a.protocol || o.protocol;\n return v += o.slashes || a.slashes ? \"//\" : \"\", !s && v ? m = m.replace(n, v) : s && (m = m.replace(n, \"\")), u.test(m) || ~t.indexOf(\".\") || \"/\" === e.slice(-1) || \"/\" === t.slice(-1) || \"/\" !== m.slice(-1) || (m = m.slice(0, -1)), s && (m = s + (\"/\" === m[0] ? m.substr(1) : m)), m;\n }\n function l() {}\n l.prototype.parse = d, l.prototype.format = r, l.prototype.resolve = h, l.prototype.resolveObject = h;\n var f = /^https?|ftp|gopher|file/, m = /^(.*?)([#?].*)/, v = /^([a-z0-9.+-]*:)(\\/{0,3})(.*)/i, _ = /^([a-z0-9.+-]*:)?\\/\\/\\/*/i, b = /^([a-z0-9.+-]*:)(\\/{0,2})\\[(.*)\\]$/i;\n function d(e, t, o) {\n if (void 0 === t && (t = !1), void 0 === o && (o = !1), e && \"object\" == typeof e && e instanceof l) return e;\n var s = (e = e.trim()).match(m);\n e = s ? s[1].replace(/\\\\/g, \"/\") + s[2] : e.replace(/\\\\/g, \"/\"), b.test(e) && \"/\" !== e.slice(-1) && (e += \"/\");\n var n = !/(^javascript)/.test(e) && e.match(v), i = _.test(e), u = \"\";\n n && (f.test(n[1]) || (u = n[1].toLowerCase(), e = \"\" + n[2] + n[3]), n[2] || (i = !1, f.test(n[1]) ? (u = n[1], e = \"\" + n[3]) : e = \"//\" + n[3]), 3 !== n[2].length && 1 !== n[2].length || (u = n[1], e = \"/\" + n[3]));\n var g, y = (s ? s[1] : e).match(/^https?:\\/\\/[^/]+(:[0-9]+)(?=\\/|$)/), w = y && y[1], x = new l, C = \"\", U = \"\";\n try {\n g = new URL(e);\n } catch (t) {\n C = t, u || o || !/^\\/\\//.test(e) || /^\\/\\/.+[@.]/.test(e) || (U = \"/\", e = e.substr(1));\n try {\n g = new URL(e, c);\n } catch (e) {\n return x.protocol = u, x.href = u, x;\n }\n }\n x.slashes = i && !U, x.host = g.host === p ? \"\" : g.host, x.hostname = g.hostname === p ? \"\" : g.hostname.replace(/(\\[|\\])/g, \"\"), x.protocol = C ? u || null : g.protocol, x.search = g.search.replace(/\\\\/g, \"%5C\"), x.hash = g.hash.replace(/\\\\/g, \"%5C\");\n var j = e.split(\"#\");\n !x.search && ~j[0].indexOf(\"?\") && (x.search = \"?\"), x.hash || \"\" !== j[1] || (x.hash = \"#\"), x.query = t ? a.decode(g.search.substr(1)) : x.search.substr(1), x.pathname = U + (n ? function(e) {\n return e.replace(/['^|`]/g, function(e) {\n return \"%\" + e.charCodeAt().toString(16).toUpperCase();\n }).replace(/((?:%[0-9A-F]{2})+)/g, function(e, t) {\n try {\n return decodeURIComponent(t).split(\"\").map(function(e) {\n var t = e.charCodeAt();\n return t > 256 || /^[a-z0-9]$/i.test(e) ? e : \"%\" + t.toString(16).toUpperCase();\n }).join(\"\");\n } catch (e) {\n return t;\n }\n });\n }(g.pathname) : g.pathname), \"about:\" === x.protocol && \"blank\" === x.pathname && (x.protocol = \"\", x.pathname = \"\"), C && \"/\" !== e[0] && (x.pathname = x.pathname.substr(1)), u && !f.test(u) && \"/\" !== e.slice(-1) && \"/\" === x.pathname && (x.pathname = \"\"), x.path = x.pathname + x.search, x.auth = [\n g.username,\n g.password\n ].map(decodeURIComponent).filter(Boolean).join(\":\"), x.port = g.port, w && !x.host.endsWith(w) && (x.host += w, x.port = w.slice(1)), x.href = U ? \"\" + x.pathname + x.search + x.hash : r(x);\n var q = /^(file)/.test(x.href) ? [\n \"host\",\n \"hostname\"\n ] : [];\n return Object.keys(x).forEach(function(e) {\n ~q.indexOf(e) || (x[e] = x[e] || null);\n }), x;\n }\n e.parse = d, e.format = r, e.resolve = h, e.resolveObject = function(e, t) {\n return d(h(e, t));\n }, e.Url = l;\n }();\n module.exports = o;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9uYXRpdmUtdXJsL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7O0FBQUM7SUFBVyxJQUFJQSxJQUFFO1FBQUMsS0FBSSxTQUFTQSxDQUFDO1lBQUU7WUFBYUEsRUFBRUMsT0FBTyxHQUFDQyxtQkFBT0EsQ0FBQyxnSEFBb0M7UUFBQztJQUFDO0lBQUUsSUFBSUMsSUFBRSxDQUFDO0lBQUUsU0FBU0Msb0JBQW9CQyxDQUFDO1FBQUUsSUFBSUMsSUFBRUgsQ0FBQyxDQUFDRSxFQUFFO1FBQUMsSUFBR0MsTUFBSUMsV0FBVTtZQUFDLE9BQU9ELEVBQUVMLE9BQU87UUFBQTtRQUFDLElBQUlPLElBQUVMLENBQUMsQ0FBQ0UsRUFBRSxHQUFDO1lBQUNKLFNBQVEsQ0FBQztRQUFDO1FBQUUsSUFBSVEsSUFBRTtRQUFLLElBQUc7WUFBQ1QsQ0FBQyxDQUFDSyxFQUFFLENBQUNHLEdBQUVBLEVBQUVQLE9BQU8sRUFBQ0c7WUFBcUJLLElBQUU7UUFBSyxTQUFRO1lBQUMsSUFBR0EsR0FBRSxPQUFPTixDQUFDLENBQUNFLEVBQUU7UUFBQTtRQUFDLE9BQU9HLEVBQUVQLE9BQU87SUFBQTtJQUFDLElBQUcsT0FBT0csd0JBQXNCLGFBQVlBLG9CQUFvQk0sRUFBRSxHQUFDQyxTQUFTQSxHQUFDO0lBQUksSUFBSU4sSUFBRSxDQUFDO0lBQUUsQ0FBQztRQUFXLElBQUlMLElBQUVLO1FBQUUsSUFBSUYsR0FBRUcsSUFBRSxDQUFDSCxJQUFFQyxvQkFBb0IsSUFBRyxLQUFJLFlBQVUsT0FBT0QsS0FBRyxhQUFZQSxJQUFFQSxFQUFFUyxPQUFPLEdBQUNULEdBQUVLLElBQUU7UUFBeUIsU0FBU0ssRUFBRWIsQ0FBQztZQUFFLFlBQVUsT0FBT0EsS0FBSUEsQ0FBQUEsSUFBRWMsRUFBRWQsRUFBQztZQUFHLElBQUlHLElBQUUsU0FBU0gsQ0FBQyxFQUFDRyxDQUFDLEVBQUNFLENBQUM7Z0JBQUUsSUFBSUMsSUFB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LFFBQVEsR0FBQ3NDLEVBQUV6QixNQUFNLEdBQUN5QixFQUFFcEMsSUFBSSxHQUFDUixFQUFFNEM7WUFBRyxJQUFJa0IsSUFBRSxVQUFVeEMsSUFBSSxDQUFDc0IsRUFBRUcsSUFBSSxJQUFFO2dCQUFDO2dCQUFPO2FBQVcsR0FBQyxFQUFFO1lBQUMsT0FBT2dCLE9BQU9DLElBQUksQ0FBQ3BCLEdBQUdxQixPQUFPLENBQUUsU0FBUzlFLENBQUM7Z0JBQUUsQ0FBQzJFLEVBQUUvQyxPQUFPLENBQUM1QixNQUFLeUQsQ0FBQUEsQ0FBQyxDQUFDekQsRUFBRSxHQUFDeUQsQ0FBQyxDQUFDekQsRUFBRSxJQUFFLElBQUc7WUFBRSxJQUFJeUQ7UUFBQztRQUFDekQsRUFBRThDLEtBQUssR0FBQ2hDLEdBQUVkLEVBQUUrQyxNQUFNLEdBQUNsQyxHQUFFYixFQUFFZ0QsT0FBTyxHQUFDWixHQUFFcEMsRUFBRWlELGFBQWEsR0FBQyxTQUFTakQsQ0FBQyxFQUFDRyxDQUFDO1lBQUUsT0FBT1csRUFBRXNCLEVBQUVwQyxHQUFFRztRQUFHLEdBQUVILEVBQUUrRSxHQUFHLEdBQUNuQztJQUFDO0lBQUlvQyxPQUFPL0UsT0FBTyxHQUFDSTtBQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL25hdGl2ZS11cmwvaW5kZXguanM/NjM1NSJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXt2YXIgZT17NDUyOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3F1ZXJ5c3RyaW5nLWVzM1wiKX19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obyl7dmFyIGE9dFtvXTtpZihhIT09dW5kZWZpbmVkKXtyZXR1cm4gYS5leHBvcnRzfXZhciBzPXRbb109e2V4cG9ydHM6e319O3ZhciBuPXRydWU7dHJ5e2Vbb10ocyxzLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7bj1mYWxzZX1maW5hbGx5e2lmKG4pZGVsZXRlIHRbb119cmV0dXJuIHMuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIG89e307IWZ1bmN0aW9uKCl7dmFyIGU9bzt2YXIgdCxhPSh0PV9fbmNjd3Bja19yZXF1aXJlX18oNDUyKSkmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiZcImRlZmF1bHRcImluIHQ/dC5kZWZhdWx0OnQscz0vaHR0cHM/fGZ0cHxnb3BoZXJ8ZmlsZS87ZnVuY3Rpb24gcihlKXtcInN0cmluZ1wiPT10eXBlb2YgZSYmKGU9ZChlKSk7dmFyIHQ9ZnVuY3Rpb24oZSx0LG8pe3ZhciBhPWUuYXV0aCxzPWUuaG9zdG5hbWUsbj1lLnByb3RvY29sfHxcIlwiLHA9ZS5wYXRobmFtZXx8XCJcIixjPWUuaGFzaHx8XCJcIixpPWUucXVlcnl8fFwiXCIsdT0hMTthPWE/ZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UoLyUzQS9pLFwiOlwiKStcIkBcIjpcIlwiLGUuaG9zdD91PWErZS5ob3N0OnMmJih1PWErKH5zLmluZGV4T2YoXCI6XCIpP1wiW1wiK3MrXCJdXCI6cyksZS5wb3J0JiYodSs9XCI6XCIrZS5wb3J0KSksaSYmXCJvYmplY3RcIj09dHlwZW9mIGkmJihpPXQuZW5jb2RlKGkpKTt2YXIgZj1lLnNlYXJjaHx8aSYmXCI/XCIraXx8XCJcIjtyZXR1cm4gbiYmXCI6XCIhPT1uLnN1YnN0cigtMSkmJihuKz1cIjpcIiksZS5zbGFzaGVzfHwoIW58fG8udGVzdChuKSkmJiExIT09dT8odT1cIi8vXCIrKHV8fFwiXCIpLHAmJlwiL1wiIT09cFswXSYmKHA9XCIvXCIrcCkpOnV8fCh1PVwiXCIpLGMmJlwiI1wiIT09Y1swXSYmKGM9XCIjXCIrYyksZiYmXCI/XCIhPT1mWzBdJiYoZj1cIj9cIitmKSx7cHJvdG9jb2w6bixob3N0OnUscGF0aG5hbWU6cD1wLnJlcGxhY2UoL1s/I10vZyxlbmNvZGVVUklDb21wb25lbnQpLHNlYXJjaDpmPWYucmVwbGFjZShcIiNcIixcIiUyM1wiKSxoYXNoOmN9fShlLGEscyk7cmV0dXJuXCJcIit0LnByb3RvY29sK3QuaG9zdCt0LnBhdGhuYW1lK3Quc2VhcmNoK3QuaGFzaH12YXIgbj1cImh0dHA6Ly9cIixwPVwidy53XCIsYz1uK3AsaT0vXihbYS16MC05ListXSo6XFwvXFwvXFwvKShbYS16MC05ListXTpcXC8qKT8vaSx1PS9odHRwcz98ZnRwfGdvcGhlcnxmaWxlLztmdW5jdGlvbiBoKGUsdCl7dmFyIG89XCJzdHJpbmdcIj09dHlwZW9mIGU/ZChlKTplO2U9XCJvYmplY3RcIj09dHlwZW9mIGU/cihlKTplO3ZhciBhPWQodCkscz1cIlwiO28ucHJvdG9jb2wmJiFvLnNsYXNoZXMmJihzPW8ucHJvdG9jb2wsZT1lLnJlcGxhY2Uoby5wcm90b2NvbCxcIlwiKSxzKz1cIi9cIj09PXRbMF18fFwiL1wiPT09ZVswXT9cIi9cIjpcIlwiKSxzJiZhLnByb3RvY29sJiYocz1cIlwiLGEuc2xhc2hlc3x8KHM9YS5wcm90b2NvbCx0PXQucmVwbGFjZShhLnByb3RvY29sLFwiXCIpKSk7dmFyIHA9ZS5tYXRjaChpKTtwJiYhYS5wcm90b2NvbCYmKGU9ZS5zdWJzdHIoKHM9cFsxXSsocFsyXXx8XCJcIikpLmxlbmd0aCksL15cXC9cXC9bXi9dLy50ZXN0KHQpJiYocz1zLnNsaWNlKDAsLTEpKSk7dmFyIGY9bmV3IFVSTChlLGMrXCIvXCIpLG09bmV3IFVSTCh0LGYpLnRvU3RyaW5nKCkucmVwbGFjZShjLFwiXCIpLHY9YS5wcm90b2NvbHx8by5wcm90b2NvbDtyZXR1cm4gdis9by5zbGFzaGVzfHxhLnNsYXNoZXM/XCIvL1wiOlwiXCIsIXMmJnY/bT1tLnJlcGxhY2Uobix2KTpzJiYobT1tLnJlcGxhY2UobixcIlwiKSksdS50ZXN0KG0pfHx+dC5pbmRleE9mKFwiLlwiKXx8XCIvXCI9PT1lLnNsaWNlKC0xKXx8XCIvXCI9PT10LnNsaWNlKC0xKXx8XCIvXCIhPT1tLnNsaWNlKC0xKXx8KG09bS5zbGljZSgwLC0xKSkscyYmKG09cysoXCIvXCI9PT1tWzBdP20uc3Vic3RyKDEpOm0pKSxtfWZ1bmN0aW9uIGwoKXt9bC5wcm90b3R5cGUucGFyc2U9ZCxsLnByb3RvdHlwZS5mb3JtYXQ9cixsLnByb3RvdHlwZS5yZXNvbHZlPWgsbC5wcm90b3R5cGUucmVzb2x2ZU9iamVjdD1oO3ZhciBmPS9eaHR0cHM/fGZ0cHxnb3BoZXJ8ZmlsZS8sbT0vXiguKj8pKFsjP10uKikvLHY9L14oW2EtejAtOS4rLV0qOikoXFwvezAsM30pKC4qKS9pLF89L14oW2EtejAtOS4rLV0qOik/XFwvXFwvXFwvKi9pLGI9L14oW2EtejAtOS4rLV0qOikoXFwvezAsMn0pXFxbKC4qKVxcXSQvaTtmdW5jdGlvbiBkKGUsdCxvKXtpZih2b2lkIDA9PT10JiYodD0hMSksdm9pZCAwPT09byYmKG89ITEpLGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZlIGluc3RhbmNlb2YgbClyZXR1cm4gZTt2YXIgcz0oZT1lLnRyaW0oKSkubWF0Y2gobSk7ZT1zP3NbMV0ucmVwbGFjZSgvXFxcXC9nLFwiL1wiKStzWzJdOmUucmVwbGFjZSgvXFxcXC9nLFwiL1wiKSxiLnRlc3QoZSkmJlwiL1wiIT09ZS5zbGljZSgtMSkmJihlKz1cIi9cIik7dmFyIG49IS8oXmphdmFzY3JpcHQpLy50ZXN0KGUpJiZlLm1hdGNoKHYpLGk9Xy50ZXN0KGUpLHU9XCJcIjtuJiYoZi50ZXN0KG5bMV0pfHwodT1uWzFdLnRvTG93ZXJDYXNlKCksZT1cIlwiK25bMl0rblszXSksblsyXXx8KGk9ITEsZi50ZXN0KG5bMV0pPyh1PW5bMV0sZT1cIlwiK25bM10pOmU9XCIvL1wiK25bM10pLDMhPT1uWzJdLmxlbmd0aCYmMSE9PW5bMl0ubGVuZ3RofHwodT1uWzFdLGU9XCIvXCIrblszXSkpO3ZhciBnLHk9KHM/c1sxXTplKS5tYXRjaCgvXmh0dHBzPzpcXC9cXC9bXi9dKyg6WzAtOV0rKSg/PVxcL3wkKS8pLHc9eSYmeVsxXSx4PW5ldyBsLEM9XCJcIixVPVwiXCI7dHJ5e2c9bmV3IFVSTChlKX1jYXRjaCh0KXtDPXQsdXx8b3x8IS9eXFwvXFwvLy50ZXN0KGUpfHwvXlxcL1xcLy4rW0AuXS8udGVzdChlKXx8KFU9XCIvXCIsZT1lLnN1YnN0cigxKSk7dHJ5e2c9bmV3IFVSTChlLGMpfWNhdGNoKGUpe3JldHVybiB4LnByb3RvY29sPXUseC5ocmVmPXUseH19eC5zbGFzaGVzPWkmJiFVLHguaG9zdD1nLmhvc3Q9PT1wP1wiXCI6Zy5ob3N0LHguaG9zdG5hbWU9Zy5ob3N0bmFtZT09PXA/XCJcIjpnLmhvc3RuYW1lLnJlcGxhY2UoLyhcXFt8XFxdKS9nLFwiXCIpLHgucHJvdG9jb2w9Qz91fHxudWxsOmcucHJvdG9jb2wseC5zZWFyY2g9Zy5zZWFyY2gucmVwbGFjZSgvXFxcXC9nLFwiJTVDXCIpLHguaGFzaD1nLmhhc2gucmVwbGFjZSgvXFxcXC9nLFwiJTVDXCIpO3ZhciBqPWUuc3BsaXQoXCIjXCIpOyF4LnNlYXJjaCYmfmpbMF0uaW5kZXhPZihcIj9cIikmJih4LnNlYXJjaD1cIj9cIikseC5oYXNofHxcIlwiIT09alsxXXx8KHguaGFzaD1cIiNcIikseC5xdWVyeT10P2EuZGVjb2RlKGcuc2VhcmNoLnN1YnN0cigxKSk6eC5zZWFyY2guc3Vic3RyKDEpLHgucGF0aG5hbWU9VSsobj9mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bJ158YF0vZywoZnVuY3Rpb24oZSl7cmV0dXJuXCIlXCIrZS5jaGFyQ29kZUF0KCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9KSkucmVwbGFjZSgvKCg/OiVbMC05QS1GXXsyfSkrKS9nLChmdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpLnNwbGl0KFwiXCIpLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGFyQ29kZUF0KCk7cmV0dXJuIHQ+MjU2fHwvXlthLXowLTldJC9pLnRlc3QoZSk/ZTpcIiVcIit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSkpLmpvaW4oXCJcIil9Y2F0Y2goZSl7cmV0dXJuIHR9fSkpfShnLnBhdGhuYW1lKTpnLnBhdGhuYW1lKSxcImFib3V0OlwiPT09eC5wcm90b2NvbCYmXCJibGFua1wiPT09eC5wYXRobmFtZSYmKHgucHJvdG9jb2w9XCJcIix4LnBhdGhuYW1lPVwiXCIpLEMmJlwiL1wiIT09ZVswXSYmKHgucGF0aG5hbWU9eC5wYXRobmFtZS5zdWJzdHIoMSkpLHUmJiFmLnRlc3QodSkmJlwiL1wiIT09ZS5zbGljZSgtMSkmJlwiL1wiPT09eC5wYXRobmFtZSYmKHgucGF0aG5hbWU9XCJcIikseC5wYXRoPXgucGF0aG5hbWUreC5zZWFyY2gseC5hdXRoPVtnLnVzZXJuYW1lLGcucGFzc3dvcmRdLm1hcChkZWNvZGVVUklDb21wb25lbnQpLmZpbHRlcihCb29sZWFuKS5qb2luKFwiOlwiKSx4LnBvcnQ9Zy5wb3J0LHcmJiF4Lmhvc3QuZW5kc1dpdGgodykmJih4Lmhvc3QrPXcseC5wb3J0PXcuc2xpY2UoMSkpLHguaHJlZj1VP1wiXCIreC5wYXRobmFtZSt4LnNlYXJjaCt4Lmhhc2g6cih4KTt2YXIgcT0vXihmaWxlKS8udGVzdCh4LmhyZWYpP1tcImhvc3RcIixcImhvc3RuYW1lXCJdOltdO3JldHVybiBPYmplY3Qua2V5cyh4KS5mb3JFYWNoKChmdW5jdGlvbihlKXt+cS5pbmRleE9mKGUpfHwoeFtlXT14W2VdfHxudWxsKX0pKSx4fWUucGFyc2U9ZCxlLmZvcm1hdD1yLGUucmVzb2x2ZT1oLGUucmVzb2x2ZU9iamVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBkKGgoZSx0KSl9LGUuVXJsPWx9KCk7bW9kdWxlLmV4cG9ydHM9b30pKCk7Il0sIm5hbWVzIjpbImUiLCJleHBvcnRzIiwicmVxdWlyZSIsInQiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwibyIsImEiLCJ1bmRlZmluZWQiLCJzIiwibiIsImFiIiwiX19kaXJuYW1lIiwiZGVmYXVsdCIsInIiLCJkIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwIiwicGF0aG5hbWUiLCJjIiwiaGFzaCIsImkiLCJxdWVyeSIsInUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaG9zdCIsImluZGV4T2YiLCJwb3J0IiwiZW5jb2RlIiwiZiIsInNlYXJjaCIsInN1YnN0ciIsInNsYXNoZXMiLCJ0ZXN0IiwiaCIsIm1hdGNoIiwibGVuZ3RoIiwic2xpY2UiLCJVUkwiLCJtIiwidG9TdHJpbmciLCJ2IiwibCIsInByb3RvdHlwZSIsInBhcnNlIiwiZm9ybWF0IiwicmVzb2x2ZSIsInJlc29sdmVPYmplY3QiLCJfIiwiYiIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsImciLCJ5IiwidyIsIngiLCJDIiwiVSIsImhyZWYiLCJqIiwic3BsaXQiLCJkZWNvZGUiLCJjaGFyQ29kZUF0IiwidG9VcHBlckNhc2UiLCJkZWNvZGVVUklDb21wb25lbnQiLCJtYXAiLCJqb2luIiwicGF0aCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZW5kc1dpdGgiLCJxIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJVcmwiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/native-url/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/path-browserify/index.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/path-browserify/index.js ***!
- \**********************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(function() {\n \"use strict\";\n var e = {\n 114: function(e) {\n function assertPath(e) {\n if (typeof e !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(e));\n }\n }\n function normalizeStringPosix(e, r) {\n var t = \"\";\n var i = 0;\n var n = -1;\n var a = 0;\n var f;\n for(var l = 0; l <= e.length; ++l){\n if (l < e.length) f = e.charCodeAt(l);\n else if (f === 47) break;\n else f = 47;\n if (f === 47) {\n if (n === l - 1 || a === 1) {} else if (n !== l - 1 && a === 2) {\n if (t.length < 2 || i !== 2 || t.charCodeAt(t.length - 1) !== 46 || t.charCodeAt(t.length - 2) !== 46) {\n if (t.length > 2) {\n var s = t.lastIndexOf(\"/\");\n if (s !== t.length - 1) {\n if (s === -1) {\n t = \"\";\n i = 0;\n } else {\n t = t.slice(0, s);\n i = t.length - 1 - t.lastIndexOf(\"/\");\n }\n n = l;\n a = 0;\n continue;\n }\n } else if (t.length === 2 || t.length === 1) {\n t = \"\";\n i = 0;\n n = l;\n a = 0;\n continue;\n }\n }\n if (r) {\n if (t.length > 0) t += \"/..\";\n else t = \"..\";\n i = 2;\n }\n } else {\n if (t.length > 0) t += \"/\" + e.slice(n + 1, l);\n else t = e.slice(n + 1, l);\n i = l - n - 1;\n }\n n = l;\n a = 0;\n } else if (f === 46 && a !== -1) {\n ++a;\n } else {\n a = -1;\n }\n }\n return t;\n }\n function _format(e, r) {\n var t = r.dir || r.root;\n var i = r.base || (r.name || \"\") + (r.ext || \"\");\n if (!t) {\n return i;\n }\n if (t === r.root) {\n return t + i;\n }\n return t + e + i;\n }\n var r = {\n resolve: function resolve() {\n var e = \"\";\n var r = false;\n var t;\n for(var i = arguments.length - 1; i >= -1 && !r; i--){\n var n;\n if (i >= 0) n = arguments[i];\n else {\n if (t === undefined) t = \"\";\n n = t;\n }\n assertPath(n);\n if (n.length === 0) {\n continue;\n }\n e = n + \"/\" + e;\n r = n.charCodeAt(0) === 47;\n }\n e = normalizeStringPosix(e, !r);\n if (r) {\n if (e.length > 0) return \"/\" + e;\n else return \"/\";\n } else if (e.length > 0) {\n return e;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(e) {\n assertPath(e);\n if (e.length === 0) return \".\";\n var r = e.charCodeAt(0) === 47;\n var t = e.charCodeAt(e.length - 1) === 47;\n e = normalizeStringPosix(e, !r);\n if (e.length === 0 && !r) e = \".\";\n if (e.length > 0 && t) e += \"/\";\n if (r) return \"/\" + e;\n return e;\n },\n isAbsolute: function isAbsolute(e) {\n assertPath(e);\n return e.length > 0 && e.charCodeAt(0) === 47;\n },\n join: function join() {\n if (arguments.length === 0) return \".\";\n var e;\n for(var t = 0; t < arguments.length; ++t){\n var i = arguments[t];\n assertPath(i);\n if (i.length > 0) {\n if (e === undefined) e = i;\n else e += \"/\" + i;\n }\n }\n if (e === undefined) return \".\";\n return r.normalize(e);\n },\n relative: function relative(e, t) {\n assertPath(e);\n assertPath(t);\n if (e === t) return \"\";\n e = r.resolve(e);\n t = r.resolve(t);\n if (e === t) return \"\";\n var i = 1;\n for(; i < e.length; ++i){\n if (e.charCodeAt(i) !== 47) break;\n }\n var n = e.length;\n var a = n - i;\n var f = 1;\n for(; f < t.length; ++f){\n if (t.charCodeAt(f) !== 47) break;\n }\n var l = t.length;\n var s = l - f;\n var o = a < s ? a : s;\n var u = -1;\n var h = 0;\n for(; h <= o; ++h){\n if (h === o) {\n if (s > o) {\n if (t.charCodeAt(f + h) === 47) {\n return t.slice(f + h + 1);\n } else if (h === 0) {\n return t.slice(f + h);\n }\n } else if (a > o) {\n if (e.charCodeAt(i + h) === 47) {\n u = h;\n } else if (h === 0) {\n u = 0;\n }\n }\n break;\n }\n var c = e.charCodeAt(i + h);\n var v = t.charCodeAt(f + h);\n if (c !== v) break;\n else if (c === 47) u = h;\n }\n var g = \"\";\n for(h = i + u + 1; h <= n; ++h){\n if (h === n || e.charCodeAt(h) === 47) {\n if (g.length === 0) g += \"..\";\n else g += \"/..\";\n }\n }\n if (g.length > 0) return g + t.slice(f + u);\n else {\n f += u;\n if (t.charCodeAt(f) === 47) ++f;\n return t.slice(f);\n }\n },\n _makeLong: function _makeLong(e) {\n return e;\n },\n dirname: function dirname(e) {\n assertPath(e);\n if (e.length === 0) return \".\";\n var r = e.charCodeAt(0);\n var t = r === 47;\n var i = -1;\n var n = true;\n for(var a = e.length - 1; a >= 1; --a){\n r = e.charCodeAt(a);\n if (r === 47) {\n if (!n) {\n i = a;\n break;\n }\n } else {\n n = false;\n }\n }\n if (i === -1) return t ? \"/\" : \".\";\n if (t && i === 1) return \"//\";\n return e.slice(0, i);\n },\n basename: function basename(e, r) {\n if (r !== undefined && typeof r !== \"string\") throw new TypeError('\"ext\" argument must be a string');\n assertPath(e);\n var t = 0;\n var i = -1;\n var n = true;\n var a;\n if (r !== undefined && r.length > 0 && r.length <= e.length) {\n if (r.length === e.length && r === e) return \"\";\n var f = r.length - 1;\n var l = -1;\n for(a = e.length - 1; a >= 0; --a){\n var s = e.charCodeAt(a);\n if (s === 47) {\n if (!n) {\n t = a + 1;\n break;\n }\n } else {\n if (l === -1) {\n n = false;\n l = a + 1;\n }\n if (f >= 0) {\n if (s === r.charCodeAt(f)) {\n if (--f === -1) {\n i = a;\n }\n } else {\n f = -1;\n i = l;\n }\n }\n }\n }\n if (t === i) i = l;\n else if (i === -1) i = e.length;\n return e.slice(t, i);\n } else {\n for(a = e.length - 1; a >= 0; --a){\n if (e.charCodeAt(a) === 47) {\n if (!n) {\n t = a + 1;\n break;\n }\n } else if (i === -1) {\n n = false;\n i = a + 1;\n }\n }\n if (i === -1) return \"\";\n return e.slice(t, i);\n }\n },\n extname: function extname(e) {\n assertPath(e);\n var r = -1;\n var t = 0;\n var i = -1;\n var n = true;\n var a = 0;\n for(var f = e.length - 1; f >= 0; --f){\n var l = e.charCodeAt(f);\n if (l === 47) {\n if (!n) {\n t = f + 1;\n break;\n }\n continue;\n }\n if (i === -1) {\n n = false;\n i = f + 1;\n }\n if (l === 46) {\n if (r === -1) r = f;\n else if (a !== 1) a = 1;\n } else if (r !== -1) {\n a = -1;\n }\n }\n if (r === -1 || i === -1 || a === 0 || a === 1 && r === i - 1 && r === t + 1) {\n return \"\";\n }\n return e.slice(r, i);\n },\n format: function format(e) {\n if (e === null || typeof e !== \"object\") {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof e);\n }\n return _format(\"/\", e);\n },\n parse: function parse(e) {\n assertPath(e);\n var r = {\n root: \"\",\n dir: \"\",\n base: \"\",\n ext: \"\",\n name: \"\"\n };\n if (e.length === 0) return r;\n var t = e.charCodeAt(0);\n var i = t === 47;\n var n;\n if (i) {\n r.root = \"/\";\n n = 1;\n } else {\n n = 0;\n }\n var a = -1;\n var f = 0;\n var l = -1;\n var s = true;\n var o = e.length - 1;\n var u = 0;\n for(; o >= n; --o){\n t = e.charCodeAt(o);\n if (t === 47) {\n if (!s) {\n f = o + 1;\n break;\n }\n continue;\n }\n if (l === -1) {\n s = false;\n l = o + 1;\n }\n if (t === 46) {\n if (a === -1) a = o;\n else if (u !== 1) u = 1;\n } else if (a !== -1) {\n u = -1;\n }\n }\n if (a === -1 || l === -1 || u === 0 || u === 1 && a === l - 1 && a === f + 1) {\n if (l !== -1) {\n if (f === 0 && i) r.base = r.name = e.slice(1, l);\n else r.base = r.name = e.slice(f, l);\n }\n } else {\n if (f === 0 && i) {\n r.name = e.slice(1, a);\n r.base = e.slice(1, l);\n } else {\n r.name = e.slice(f, a);\n r.base = e.slice(f, l);\n }\n r.ext = e.slice(a, l);\n }\n if (f > 0) r.dir = e.slice(0, f - 1);\n else if (i) r.dir = \"/\";\n return r;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n r.posix = r;\n e.exports = r;\n }\n };\n var r = {};\n function __nccwpck_require__(t) {\n var i = r[t];\n if (i !== undefined) {\n return i.exports;\n }\n var n = r[t] = {\n exports: {}\n };\n var a = true;\n try {\n e[t](n, n.exports, __nccwpck_require__);\n a = false;\n } finally{\n if (a) delete r[t];\n }\n return n.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var t = __nccwpck_require__(114);\n module.exports = t;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wYXRoLWJyb3dzZXJpZnkvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFXO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUksU0FBU0EsQ0FBQztZQUFFLFNBQVNDLFdBQVdELENBQUM7Z0JBQUUsSUFBRyxPQUFPQSxNQUFJLFVBQVM7b0JBQUMsTUFBTSxJQUFJRSxVQUFVLHFDQUFtQ0MsS0FBS0MsU0FBUyxDQUFDSjtnQkFBRztZQUFDO1lBQUMsU0FBU0sscUJBQXFCTCxDQUFDLEVBQUNNLENBQUM7Z0JBQUUsSUFBSUMsSUFBRTtnQkFBRyxJQUFJQyxJQUFFO2dCQUFFLElBQUlDLElBQUUsQ0FBQztnQkFBRSxJQUFJQyxJQUFFO2dCQUFFLElBQUlDO2dCQUFFLElBQUksSUFBSUMsSUFBRSxHQUFFQSxLQUFHWixFQUFFYSxNQUFNLEVBQUMsRUFBRUQsRUFBRTtvQkFBQyxJQUFHQSxJQUFFWixFQUFFYSxNQUFNLEVBQUNGLElBQUVYLEVBQUVjLFVBQVUsQ0FBQ0Y7eUJBQVEsSUFBR0QsTUFBSSxJQUFHO3lCQUFXQSxJQUFFO29CQUFHLElBQUdBLE1BQUksSUFBRzt3QkFBQyxJQUFHRixNQUFJRyxJQUFFLEtBQUdGLE1BQUksR0FBRSxDQUFDLE9BQU0sSUFBR0QsTUFBSUcsSUFBRSxLQUFHRixNQUFJLEdBQUU7NEJBQUMsSUFBR0gsRUFBRU0sTUFBTSxHQUFDLEtBQUdMLE1BQUksS0FBR0QsRUFBRU8sVUFBVSxDQUFDUCxFQUFFTSxNQUFNLEdBQUMsT0FBSyxNQUFJTixFQUFFTyxVQUFVLENBQUNQLEVBQUVNLE1BQU0sR0FBQyxPQUFLLElBQUc7Z0NBQUMsSUFBR04sRUFBRU0sTUFBTSxHQUFDLEdBQUU7b0NBQUMsSUFBSUUsSUFBRVIsRUFBRVMsV0FBVyxDQUFDO29DQUFLLElBQUdELE1BQUlSLEVBQUVNLE1BQU0sR0FBQyxHQUFFO3dDQUFDLElBQUdFLE1BQUksQ0FBQyxHQUFF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LEdBQUN6QztRQUFDO0lBQUM7SUFBRSxJQUFJQSxJQUFFLENBQUM7SUFBRSxTQUFTMEMsb0JBQW9CekMsQ0FBQztRQUFFLElBQUlDLElBQUVGLENBQUMsQ0FBQ0MsRUFBRTtRQUFDLElBQUdDLE1BQUlrQixXQUFVO1lBQUMsT0FBT2xCLEVBQUV1QyxPQUFPO1FBQUE7UUFBQyxJQUFJdEMsSUFBRUgsQ0FBQyxDQUFDQyxFQUFFLEdBQUM7WUFBQ3dDLFNBQVEsQ0FBQztRQUFDO1FBQUUsSUFBSXJDLElBQUU7UUFBSyxJQUFHO1lBQUNWLENBQUMsQ0FBQ08sRUFBRSxDQUFDRSxHQUFFQSxFQUFFc0MsT0FBTyxFQUFDQztZQUFxQnRDLElBQUU7UUFBSyxTQUFRO1lBQUMsSUFBR0EsR0FBRSxPQUFPSixDQUFDLENBQUNDLEVBQUU7UUFBQTtRQUFDLE9BQU9FLEVBQUVzQyxPQUFPO0lBQUE7SUFBQyxJQUFHLE9BQU9DLHdCQUFzQixhQUFZQSxvQkFBb0JDLEVBQUUsR0FBQ0MsU0FBU0EsR0FBQztJQUFJLElBQUkzQyxJQUFFeUMsb0JBQW9CO0lBQUtHLE9BQU9KLE9BQU8sR0FBQ3hDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC1icm93c2VyaWZ5L2luZGV4LmpzPzYzYTMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezExNDpmdW5jdGlvbihlKXtmdW5jdGlvbiBhc3NlcnRQYXRoKGUpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIlBhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgXCIrSlNPTi5zdHJpbmdpZnkoZSkpfX1mdW5jdGlvbiBub3JtYWxpemVTdHJpbmdQb3NpeChlLHIpe3ZhciB0PVwiXCI7dmFyIGk9MDt2YXIgbj0tMTt2YXIgYT0wO3ZhciBmO2Zvcih2YXIgbD0wO2w8PWUubGVuZ3RoOysrbCl7aWYobDxlLmxlbmd0aClmPWUuY2hhckNvZGVBdChsKTtlbHNlIGlmKGY9PT00NylicmVhaztlbHNlIGY9NDc7aWYoZj09PTQ3KXtpZihuPT09bC0xfHxhPT09MSl7fWVsc2UgaWYobiE9PWwtMSYmYT09PTIpe2lmKHQubGVuZ3RoPDJ8fGkhPT0yfHx0LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkhPT00Nnx8dC5jaGFyQ29kZUF0KHQubGVuZ3RoLTIpIT09NDYpe2lmKHQubGVuZ3RoPjIpe3ZhciBzPXQubGFzdEluZGV4T2YoXCIvXCIpO2lmKHMhPT10Lmxlbmd0aC0xKXtpZihzPT09LTEpe3Q9XCJcIjtpPTB9ZWxzZXt0PXQuc2xpY2UoMCxzKTtpPXQubGVuZ3RoLTEtdC5sYXN0SW5kZXhPZihcIi9cIil9bj1sO2E9MDtjb250aW51ZX19ZWxzZSBpZih0Lmxlbmd0aD09PTJ8fHQubGVuZ3RoPT09MSl7dD1cIlwiO2k9MDtuPWw7YT0wO2NvbnRpbnVlfX1pZihyKXtpZih0Lmxlbmd0aD4wKXQrPVwiLy4uXCI7ZWxzZSB0PVwiLi5cIjtpPTJ9fWVsc2V7aWYodC5sZW5ndGg+MCl0Kz1cIi9cIitlLnNsaWNlKG4rMSxsKTtlbHNlIHQ9ZS5zbGljZShuKzEsbCk7aT1sLW4tMX1uPWw7YT0wfWVsc2UgaWYoZj09PTQ2JiZhIT09LTEpeysrYX1lbHNle2E9LTF9fXJldHVybiB0fWZ1bmN0aW9uIF9mb3JtYXQoZSxyKXt2YXIgdD1yLmRpcnx8ci5yb290O3ZhciBpPXIuYmFzZXx8KHIubmFtZXx8XCJcIikrKHIuZXh0fHxcIlwiKTtpZighdCl7cmV0dXJuIGl9aWYodD09PXIucm9vdCl7cmV0dXJuIHQraX1yZXR1cm4gdCtlK2l9dmFyIHI9e3Jlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZSgpe3ZhciBlPVwiXCI7dmFyIHI9ZmFsc2U7dmFyIHQ7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgtMTtpPj0tMSYmIXI7aS0tKXt2YXIgbjtpZihpPj0wKW49YXJndW1lbnRzW2ldO2Vsc2V7aWYodD09PXVuZGVmaW5lZCl0PVwiXCI7bj10fWFzc2VydFBhdGgobik7aWYobi5sZW5ndGg9PT0wKXtjb250aW51ZX1lPW4rXCIvXCIrZTtyPW4uY2hhckNvZGVBdCgwKT09PTQ3fWU9bm9ybWFsaXplU3RyaW5nUG9zaXgoZSwhcik7aWYocil7aWYoZS5sZW5ndGg+MClyZXR1cm5cIi9cIitlO2Vsc2UgcmV0dXJuXCIvXCJ9ZWxzZSBpZihlLmxlbmd0aD4wKXtyZXR1cm4gZX1lbHNle3JldHVyblwiLlwifX0sbm9ybWFsaXplOmZ1bmN0aW9uIG5vcm1hbGl6ZShlKXthc3NlcnRQYXRoKGUpO2lmKGUubGVuZ3RoPT09MClyZXR1cm5cIi5cIjt2YXIgcj1lLmNoYXJDb2RlQXQoMCk9PT00Nzt2YXIgdD1lLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSk9PT00NztlPW5vcm1hbGl6ZVN0cmluZ1Bvc2l4KGUsIXIpO2lmKGUubGVuZ3RoPT09MCYmIXIpZT1cIi5cIjtpZihlLmxlbmd0aD4wJiZ0KWUrPVwiL1wiO2lmKHIpcmV0dXJuXCIvXCIrZTtyZXR1cm4gZX0saXNBYnNvbHV0ZTpmdW5jdGlvbiBpc0Fic29sdXRlKGUpe2Fzc2VydFBhdGgoZSk7cmV0dXJuIGUubGVuZ3RoPjAmJmUuY2hhckNvZGVBdCgwKT09PTQ3fSxqb2luOmZ1bmN0aW9uIGpvaW4oKXtpZihhcmd1bWVudHMubGVuZ3RoPT09MClyZXR1cm5cIi5cIjt2YXIgZTtmb3IodmFyIHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7Kyt0KXt2YXIgaT1hcmd1bWVudHNbdF07YXNzZXJ0UGF0aChpKTtpZihpLmxlbmd0aD4wKXtpZihlPT09dW5kZWZpbmVkKWU9aTtlbHNlIGUrPVwiL1wiK2l9fWlmKGU9PT11bmRlZmluZWQpcmV0dXJuXCIuXCI7cmV0dXJuIHIubm9ybWFsaXplKGUpfSxyZWxhdGl2ZTpmdW5jdGlvbiByZWxhdGl2ZShlLHQpe2Fzc2VydFBhdGgoZSk7YXNzZXJ0UGF0aCh0KTtpZihlPT09dClyZXR1cm5cIlwiO2U9ci5yZXNvbHZlKGUpO3Q9ci5yZXNvbHZlKHQpO2lmKGU9PT10KXJldHVyblwiXCI7dmFyIGk9MTtmb3IoO2k8ZS5sZW5ndGg7KytpKXtpZihlLmNoYXJDb2RlQXQoaSkhPT00NylicmVha312YXIgbj1lLmxlbmd0aDt2YXIgYT1uLWk7dmFyIGY9MTtmb3IoO2Y8dC5sZW5ndGg7KytmKXtpZih0LmNoYXJDb2RlQXQoZikhPT00NylicmVha312YXIgbD10Lmxlbmd0aDt2YXIgcz1sLWY7dmFyIG89YTxzP2E6czt2YXIgdT0tMTt2YXIgaD0wO2Zvcig7aDw9bzsrK2gpe2lmKGg9PT1vKXtpZihzPm8pe2lmKHQuY2hhckNvZGVBdChmK2gpPT09NDcpe3JldHVybiB0LnNsaWNlKGYraCsxKX1lbHNlIGlmKGg9PT0wKXtyZXR1cm4gdC5zbGljZShmK2gpfX1lbHNlIGlmKGE+byl7aWYoZS5jaGFyQ29kZUF0KGkraCk9PT00Nyl7dT1ofWVsc2UgaWYoaD09PTApe3U9MH19YnJlYWt9dmFyIGM9ZS5jaGFyQ29kZUF0KGkraCk7dmFyIHY9dC5jaGFyQ29kZUF0KGYraCk7aWYoYyE9PXYpYnJlYWs7ZWxzZSBpZihjPT09NDcpdT1ofXZhciBnPVwiXCI7Zm9yKGg9aSt1KzE7aDw9bjsrK2gpe2lmKGg9PT1ufHxlLmNoYXJDb2RlQXQoaCk9PT00Nyl7aWYoZy5sZW5ndGg9PT0wKWcrPVwiLi5cIjtlbHNlIGcrPVwiLy4uXCJ9fWlmKGcubGVuZ3RoPjApcmV0dXJuIGcrdC5zbGljZShmK3UpO2Vsc2V7Zis9dTtpZih0LmNoYXJDb2RlQXQoZik9PT00NykrK2Y7cmV0dXJuIHQuc2xpY2UoZil9fSxfbWFrZUxvbmc6ZnVuY3Rpb24gX21ha2VMb25nKGUpe3JldHVybiBlfSxkaXJuYW1lOmZ1bmN0aW9uIGRpcm5hbWUoZSl7YXNzZXJ0UGF0aChlKTtpZihlLmxlbmd0aD09PTApcmV0dXJuXCIuXCI7dmFyIHI9ZS5jaGFyQ29kZUF0KDApO3ZhciB0PXI9PT00Nzt2YXIgaT0tMTt2YXIgbj10cnVlO2Zvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTE7LS1hKXtyPWUuY2hhckNvZGVBdChhKTtpZihyPT09NDcpe2lmKCFuKXtpPWE7YnJlYWt9fWVsc2V7bj1mYWxzZX19aWYoaT09PS0xKXJldHVybiB0P1wiL1wiOlwiLlwiO2lmKHQmJmk9PT0xKXJldHVyblwiLy9cIjtyZXR1cm4gZS5zbGljZSgwLGkpfSxiYXNlbmFtZTpmdW5jdGlvbiBiYXNlbmFtZShlLHIpe2lmKHIhPT11bmRlZmluZWQmJnR5cGVvZiByIT09XCJzdHJpbmdcIil0aHJvdyBuZXcgVHlwZUVycm9yKCdcImV4dFwiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTthc3NlcnRQYXRoKGUpO3ZhciB0PTA7dmFyIGk9LTE7dmFyIG49dHJ1ZTt2YXIgYTtpZihyIT09dW5kZWZpbmVkJiZyLmxlbmd0aD4wJiZyLmxlbmd0aDw9ZS5sZW5ndGgpe2lmKHIubGVuZ3RoPT09ZS5sZW5ndGgmJnI9PT1lKXJldHVyblwiXCI7dmFyIGY9ci5sZW5ndGgtMTt2YXIgbD0tMTtmb3IoYT1lLmxlbmd0aC0xO2E+PTA7LS1hKXt2YXIgcz1lLmNoYXJDb2RlQXQoYSk7aWYocz09PTQ3KXtpZighbil7dD1hKzE7YnJlYWt9fWVsc2V7aWYobD09PS0xKXtuPWZhbHNlO2w9YSsxfWlmKGY+PTApe2lmKHM9PT1yLmNoYXJDb2RlQXQoZikpe2lmKC0tZj09PS0xKXtpPWF9fWVsc2V7Zj0tMTtpPWx9fX19aWYodD09PWkpaT1sO2Vsc2UgaWYoaT09PS0xKWk9ZS5sZW5ndGg7cmV0dXJuIGUuc2xpY2UodCxpKX1lbHNle2ZvcihhPWUubGVuZ3RoLTE7YT49MDstLWEpe2lmKGUuY2hhckNvZGVBdChhKT09PTQ3KXtpZighbil7dD1hKzE7YnJlYWt9fWVsc2UgaWYoaT09PS0xKXtuPWZhbHNlO2k9YSsxfX1pZihpPT09LTEpcmV0dXJuXCJcIjtyZXR1cm4gZS5zbGljZSh0LGkpfX0sZXh0bmFtZTpmdW5jdGlvbiBleHRuYW1lKGUpe2Fzc2VydFBhdGgoZSk7dmFyIHI9LTE7dmFyIHQ9MDt2YXIgaT0tMTt2YXIgbj10cnVlO3ZhciBhPTA7Zm9yKHZhciBmPWUubGVuZ3RoLTE7Zj49MDstLWYpe3ZhciBsPWUuY2hhckNvZGVBdChmKTtpZihsPT09NDcpe2lmKCFuKXt0PWYrMTticmVha31jb250aW51ZX1pZihpPT09LTEpe249ZmFsc2U7aT1mKzF9aWYobD09PTQ2KXtpZihyPT09LTEpcj1mO2Vsc2UgaWYoYSE9PTEpYT0xfWVsc2UgaWYociE9PS0xKXthPS0xfX1pZihyPT09LTF8fGk9PT0tMXx8YT09PTB8fGE9PT0xJiZyPT09aS0xJiZyPT09dCsxKXtyZXR1cm5cIlwifXJldHVybiBlLnNsaWNlKHIsaSl9LGZvcm1hdDpmdW5jdGlvbiBmb3JtYXQoZSl7aWYoZT09PW51bGx8fHR5cGVvZiBlIT09XCJvYmplY3RcIil7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwicGF0aE9iamVjdFwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgZSl9cmV0dXJuIF9mb3JtYXQoXCIvXCIsZSl9LHBhcnNlOmZ1bmN0aW9uIHBhcnNlKGUpe2Fzc2VydFBhdGgoZSk7dmFyIHI9e3Jvb3Q6XCJcIixkaXI6XCJcIixiYXNlOlwiXCIsZXh0OlwiXCIsbmFtZTpcIlwifTtpZihlLmxlbmd0aD09PTApcmV0dXJuIHI7dmFyIHQ9ZS5jaGFyQ29kZUF0KDApO3ZhciBpPXQ9PT00Nzt2YXIgbjtpZihpKXtyLnJvb3Q9XCIvXCI7bj0xfWVsc2V7bj0wfXZhciBhPS0xO3ZhciBmPTA7dmFyIGw9LTE7dmFyIHM9dHJ1ZTt2YXIgbz1lLmxlbmd0aC0xO3ZhciB1PTA7Zm9yKDtvPj1uOy0tbyl7dD1lLmNoYXJDb2RlQXQobyk7aWYodD09PTQ3KXtpZighcyl7Zj1vKzE7YnJlYWt9Y29udGludWV9aWYobD09PS0xKXtzPWZhbHNlO2w9bysxfWlmKHQ9PT00Nil7aWYoYT09PS0xKWE9bztlbHNlIGlmKHUhPT0xKXU9MX1lbHNlIGlmKGEhPT0tMSl7dT0tMX19aWYoYT09PS0xfHxsPT09LTF8fHU9PT0wfHx1PT09MSYmYT09PWwtMSYmYT09PWYrMSl7aWYobCE9PS0xKXtpZihmPT09MCYmaSlyLmJhc2U9ci5uYW1lPWUuc2xpY2UoMSxsKTtlbHNlIHIuYmFzZT1yLm5hbWU9ZS5zbGljZShmLGwpfX1lbHNle2lmKGY9PT0wJiZpKXtyLm5hbWU9ZS5zbGljZSgxLGEpO3IuYmFzZT1lLnNsaWNlKDEsbCl9ZWxzZXtyLm5hbWU9ZS5zbGljZShmLGEpO3IuYmFzZT1lLnNsaWNlKGYsbCl9ci5leHQ9ZS5zbGljZShhLGwpfWlmKGY+MClyLmRpcj1lLnNsaWNlKDAsZi0xKTtlbHNlIGlmKGkpci5kaXI9XCIvXCI7cmV0dXJuIHJ9LHNlcDpcIi9cIixkZWxpbWl0ZXI6XCI6XCIsd2luMzI6bnVsbCxwb3NpeDpudWxsfTtyLnBvc2l4PXI7ZS5leHBvcnRzPXJ9fTt2YXIgcj17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHQpe3ZhciBpPXJbdF07aWYoaSE9PXVuZGVmaW5lZCl7cmV0dXJuIGkuZXhwb3J0c312YXIgbj1yW3RdPXtleHBvcnRzOnt9fTt2YXIgYT10cnVlO3RyeXtlW3RdKG4sbi5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO2E9ZmFsc2V9ZmluYWxseXtpZihhKWRlbGV0ZSByW3RdfXJldHVybiBuLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oMTE0KTttb2R1bGUuZXhwb3J0cz10fSkoKTsiXSwibmFtZXMiOlsiZSIsImFzc2VydFBhdGgiLCJUeXBlRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwibm9ybWFsaXplU3RyaW5nUG9zaXgiLCJyIiwidCIsImkiLCJuIiwiYSIsImYiLCJsIiwibGVuZ3RoIiwiY2hhckNvZGVBdCIsInMiLCJsYXN0SW5kZXhPZiIsInNsaWNlIiwiX2Zvcm1hdCIsImRpciIsInJvb3QiLCJiYXNlIiwibmFtZSIsImV4dCIsInJlc29sdmUiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJub3JtYWxpemUiLCJpc0Fic29sdXRlIiwiam9pbiIsInJlbGF0aXZlIiwibyIsInUiLCJoIiwiYyIsInYiLCJnIiwiX21ha2VMb25nIiwiZGlybmFtZSIsImJhc2VuYW1lIiwiZXh0bmFtZSIsImZvcm1hdCIsInBhcnNlIiwic2VwIiwiZGVsaW1pdGVyIiwid2luMzIiLCJwb3NpeCIsImV4cG9ydHMiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwiYWIiLCJfX2Rpcm5hbWUiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/path-browserify/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/path-to-regexp/index.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/path-to-regexp/index.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n/**\n * Tokenize input string.\n */ function lexer(str) {\n var tokens = [];\n var i = 0;\n while(i < str.length){\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({\n type: \"MODIFIER\",\n index: i,\n value: str[i++]\n });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({\n type: \"ESCAPED_CHAR\",\n index: i++,\n value: str[i++]\n });\n continue;\n }\n if (char === \"{\") {\n tokens.push({\n type: \"OPEN\",\n index: i,\n value: str[i++]\n });\n continue;\n }\n if (char === \"}\") {\n tokens.push({\n type: \"CLOSE\",\n index: i,\n value: str[i++]\n });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while(j < str.length){\n var code = str.charCodeAt(j);\n if (// `0-9`\n code >= 48 && code <= 57 || // `A-Z`\n code >= 65 && code <= 90 || // `a-z`\n code >= 97 && code <= 122 || // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name) throw new TypeError(\"Missing parameter name at \" + i);\n tokens.push({\n type: \"NAME\",\n index: i,\n value: name\n });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError('Pattern cannot start with \"?\" at ' + j);\n }\n while(j < str.length){\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n } else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \" + j);\n }\n }\n pattern += str[j++];\n }\n if (count) throw new TypeError(\"Unbalanced pattern at \" + i);\n if (!pattern) throw new TypeError(\"Missing pattern at \" + i);\n tokens.push({\n type: \"PATTERN\",\n index: i,\n value: pattern\n });\n i = j;\n continue;\n }\n tokens.push({\n type: \"CHAR\",\n index: i,\n value: str[i++]\n });\n }\n tokens.push({\n type: \"END\",\n index: i,\n value: \"\"\n });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */ function parse(str, options) {\n if (options === void 0) {\n options = {};\n }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\" + escapeString(options.delimiter || \"/#?\") + \"]+?\";\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function(type) {\n if (i < tokens.length && tokens[i].type === type) return tokens[i++].value;\n };\n var mustConsume = function(type) {\n var value = tryConsume(type);\n if (value !== undefined) return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \" + nextType + \" at \" + index + \", expected \" + type);\n };\n var consumeText = function() {\n var result = \"\";\n var value;\n // tslint:disable-next-line\n while(value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\")){\n result += value;\n }\n return result;\n };\n while(i < tokens.length){\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\nexports.parse = parse;\n/**\n * Compile a string to a template function for the path.\n */ function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\nexports.compile = compile;\n/**\n * Expose a method for transforming tokens into the path function.\n */ function tokensToFunction(tokens, options) {\n if (options === void 0) {\n options = {};\n }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function(x) {\n return x;\n } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function(token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\" + token.pattern + \")$\", reFlags);\n }\n });\n return function(data) {\n var path = \"\";\n for(var i = 0; i < tokens.length; i++){\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got an array');\n }\n if (value.length === 0) {\n if (optional) continue;\n throw new TypeError('Expected \"' + token.name + '\" to not be empty');\n }\n for(var j = 0; j < value.length; j++){\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"');\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"');\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional) continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError('Expected \"' + token.name + '\" to be ' + typeOfMessage);\n }\n return path;\n };\n}\nexports.tokensToFunction = tokensToFunction;\n/**\n * Create path match function from `path-to-regexp` spec.\n */ function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\nexports.match = match;\n/**\n * Create a path match function from `path-to-regexp` output.\n */ function regexpToFunction(re, keys, options) {\n if (options === void 0) {\n options = {};\n }\n var _a = options.decode, decode = _a === void 0 ? function(x) {\n return x;\n } : _a;\n return function(pathname) {\n var m = re.exec(pathname);\n if (!m) return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function(i) {\n // tslint:disable-next-line\n if (m[i] === undefined) return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function(value) {\n return decode(value, key);\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n };\n for(var i = 1; i < m.length; i++){\n _loop_1(i);\n }\n return {\n path: path,\n index: index,\n params: params\n };\n };\n}\nexports.regexpToFunction = regexpToFunction;\n/**\n * Escape a regular expression string.\n */ function escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */ function flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */ function regexpToRegexp(path, keys) {\n if (!keys) return path;\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n if (groups) {\n for(var i = 0; i < groups.length; i++){\n keys.push({\n name: i,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n }\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */ function arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function(path) {\n return pathToRegexp(path, keys, options).source;\n });\n return new RegExp(\"(?:\" + parts.join(\"|\") + \")\", flags(options));\n}\n/**\n * Create a path regexp from string input.\n */ function stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */ function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) {\n options = {};\n }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function(x) {\n return x;\n } : _d;\n var endsWith = \"[\" + escapeString(options.endsWith || \"\") + \"]|$\";\n var delimiter = \"[\" + escapeString(options.delimiter || \"/#?\") + \"]\";\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for(var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++){\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n } else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys) keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\" + prefix + \"((?:\" + token.pattern + \")(?:\" + suffix + prefix + \"(?:\" + token.pattern + \"))*)\" + suffix + \")\" + mod;\n } else {\n route += \"(?:\" + prefix + \"(\" + token.pattern + \")\" + suffix + \")\" + token.modifier;\n }\n } else {\n route += \"(\" + token.pattern + \")\" + token.modifier;\n }\n } else {\n route += \"(?:\" + prefix + suffix + \")\" + token.modifier;\n }\n }\n }\n if (end) {\n if (!strict) route += delimiter + \"?\";\n route += !options.endsWith ? \"$\" : \"(?=\" + endsWith + \")\";\n } else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\" ? delimiter.indexOf(endToken[endToken.length - 1]) > -1 : endToken === undefined;\n if (!strict) {\n route += \"(?:\" + delimiter + \"(?=\" + endsWith + \"))?\";\n }\n if (!isEndDelimited) {\n route += \"(?=\" + delimiter + \"|\" + endsWith + \")\";\n }\n }\n return new RegExp(route, flags(options));\n}\nexports.tokensToRegexp = tokensToRegexp;\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */ function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp) return regexpToRegexp(path, keys);\n if (Array.isArray(path)) return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\nexports.pathToRegexp = pathToRegexp; //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFBRUcsT0FBTztBQUFLLENBQUMsRUFBQztBQUM3RDs7Q0FFQyxHQUNELFNBQVNDLE1BQU1DLEdBQUc7SUFDZCxJQUFJQyxTQUFTLEVBQUU7SUFDZixJQUFJQyxJQUFJO0lBQ1IsTUFBT0EsSUFBSUYsSUFBSUcsTUFBTSxDQUFFO1FBQ25CLElBQUlDLE9BQU9KLEdBQUcsQ0FBQ0UsRUFBRTtRQUNqQixJQUFJRSxTQUFTLE9BQU9BLFNBQVMsT0FBT0EsU0FBUyxLQUFLO1lBQzlDSCxPQUFPSSxJQUFJLENBQUM7Z0JBQUVDLE1BQU07Z0JBQVlDLE9BQU9MO2dCQUFHSixPQUFPRSxHQUFHLENBQUNFLElBQUk7WUFBQztZQUMxRDtRQUNKO1FBQ0EsSUFBSUUsU0FBUyxNQUFNO1lBQ2ZILE9BQU9JLElBQUksQ0FBQztnQkFBRUMsTUFBTTtnQkFBZ0JDLE9BQU9MO2dCQUFLSixPQUFPRSxHQUFHLENBQUNFLElBQUk7WUFBQztZQUNoRTtRQUNKO1FBQ0EsSUFBSUUsU0FBUyxLQUFLO1lBQ2RILE9BQU9JLElBQUksQ0FBQztnQkFBRUMsTUFBTTtnQkFBUUMsT0FBT0w7Z0JBQUdKLE9BQU9FLEdBQUcsQ0FBQ0UsSUFBSTtZQUFDO1lBQ3REO1FBQ0o7UUFDQSxJQUFJRSxTQUFTLEtBQUs7WUFDZEgsT0FBT0ksSUFBSSxDQUFDO2dCQUFFQyxNQUFNO2dCQUFTQyxPQUFPTDtnQkFBR0osT0FBT0UsR0FBRyxDQUFDRSxJQUFJO1lBQUM7WUFDdkQ7UUFDSjtRQUNBLElBQUlFLFNBQVMsS0FBSztZQUNkLElBQUlJLE9BQU87WUFDWCxJQUFJQyxJQUFJUCxJQUFJO1lBQ1osTUFBT08sSUFBSVQsSUFBSUcsTUFBTSxDQUFFO2dCQUNuQixJQUFJTyxPQUFPVixJQUFJVyxVQUFVLENBQUNGO2dCQUMxQixJQUVB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LFFBQVExRCxTQUFTRSxTQUFTLE1BQU1lLE1BQU1kLFFBQVE7WUFDM0Q7UUFDSjtJQUNKO0lBQ0EsSUFBSW9ELEtBQUs7UUFDTCxJQUFJLENBQUNILFFBQ0RNLFNBQVNuRSxZQUFZO1FBQ3pCbUUsU0FBUyxDQUFDeEUsUUFBUXVFLFFBQVEsR0FBRyxNQUFNLFFBQVFBLFdBQVc7SUFDMUQsT0FDSztRQUNELElBQUlLLFdBQVczRixNQUFNLENBQUNBLE9BQU9FLE1BQU0sR0FBRyxFQUFFO1FBQ3hDLElBQUkwRixpQkFBaUIsT0FBT0QsYUFBYSxXQUNuQ3ZFLFVBQVVVLE9BQU8sQ0FBQzZELFFBQVEsQ0FBQ0EsU0FBU3pGLE1BQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxJQUVsRHlGLGFBQWFqRTtRQUNyQixJQUFJLENBQUN1RCxRQUFRO1lBQ1RNLFNBQVMsUUFBUW5FLFlBQVksUUFBUWtFLFdBQVc7UUFDcEQ7UUFDQSxJQUFJLENBQUNNLGdCQUFnQjtZQUNqQkwsU0FBUyxRQUFRbkUsWUFBWSxNQUFNa0UsV0FBVztRQUNsRDtJQUNKO0lBQ0EsT0FBTyxJQUFJdkMsT0FBT3dDLE9BQU9oRCxNQUFNeEI7QUFDbkM7QUFDQW5CLHNCQUFzQixHQUFHb0Y7QUFDekI7Ozs7OztDQU1DLEdBQ0QsU0FBU3BCLGFBQWFyQyxJQUFJLEVBQUVtQyxJQUFJLEVBQUUzQyxPQUFPO0lBQ3JDLElBQUlRLGdCQUFnQndCLFFBQ2hCLE9BQU95QixlQUFlakQsTUFBTW1DO0lBQ2hDLElBQUlQLE1BQU1DLE9BQU8sQ0FBQzdCLE9BQ2QsT0FBT29ELGNBQWNwRCxNQUFNbUMsTUFBTTNDO0lBQ3JDLE9BQU9nRSxlQUFleEQsTUFBTW1DLE1BQU0zQztBQUN0QztBQUNBbkIsb0JBQW9CLEdBQUdnRSxjQUN2QixpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHAvaW5kZXguanM/ODgyMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogVG9rZW5pemUgaW5wdXQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBsZXhlcihzdHIpIHtcbiAgICB2YXIgdG9rZW5zID0gW107XG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwgc3RyLmxlbmd0aCkge1xuICAgICAgICB2YXIgY2hhciA9IHN0cltpXTtcbiAgICAgICAgaWYgKGNoYXIgPT09IFwiKlwiIHx8IGNoYXIgPT09IFwiK1wiIHx8IGNoYXIgPT09IFwiP1wiKSB7XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiTU9ESUZJRVJcIiwgaW5kZXg6IGksIHZhbHVlOiBzdHJbaSsrXSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFyID09PSBcIlxcXFxcIikge1xuICAgICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIkVTQ0FQRURfQ0hBUlwiLCBpbmRleDogaSsrLCB2YWx1ZTogc3RyW2krK10gfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gXCJ7XCIpIHtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJPUEVOXCIsIGluZGV4OiBpLCB2YWx1ZTogc3RyW2krK10gfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gXCJ9XCIpIHtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJDTE9TRVwiLCBpbmRleDogaSwgdmFsdWU6IHN0cltpKytdIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09IFwiOlwiKSB7XG4gICAgICAgICAgICB2YXIgbmFtZSA9IFwiXCI7XG4gICAgICAgICAgICB2YXIgaiA9IGkgKyAxO1xuICAgICAgICAgICAgd2hpbGUgKGogPCBzdHIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBzdHIuY2hhckNvZGVBdChqKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgLy8gYDAtOWBcbiAgICAgICAgICAgICAgICAoY29kZSA+PSA0OCAmJiBjb2RlIDw9IDU3KSB8fFxuICAgICAgICAgICAgICAgICAgICAvLyBgQS1aYFxuICAgICAgICAgICAgICAgICAgICAoY29kZSA+PSA2NSAmJiBjb2RlIDw9IDkwKSB8fFxuICAgICAgICAgICAgICAgICAgICAvLyBgYS16YFxuICAgICAgICAgICAgICAgICAgICAoY29kZSA+PSA5NyAmJiBjb2RlIDw9IDEyMikgfHxcbiAgICAgICAgICAgICAgICAgICAgLy8gYF9gXG4gICAgICAgICAgICAgICAgICAgIGNvZGUgPT09IDk1KSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUgKz0gc3RyW2orK107XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBcIiArIGkpO1xuICAgICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIk5BTUVcIiwgaW5kZXg6IGksIHZhbHVlOiBuYW1lIH0pO1xuICAgICAgICAgICAgaSA9IGo7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gXCIoXCIpIHtcbiAgICAgICAgICAgIHZhciBjb3VudCA9IDE7XG4gICAgICAgICAgICB2YXIgcGF0dGVybiA9IFwiXCI7XG4gICAgICAgICAgICB2YXIgaiA9IGkgKyAxO1xuICAgICAgICAgICAgaWYgKHN0cltqXSA9PT0gXCI/XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUGF0dGVybiBjYW5ub3Qgc3RhcnQgd2l0aCBcXFwiP1xcXCIgYXQgXCIgKyBqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlIChqIDwgc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGlmIChzdHJbal0gPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gKz0gc3RyW2orK10gKyBzdHJbaisrXTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdHJbal0gPT09IFwiKVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50LS07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaisrO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RyW2pdID09PSBcIihcIikge1xuICAgICAgICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RyW2ogKyAxXSAhPT0gXCI/XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYXB0dXJpbmcgZ3JvdXBzIGFyZSBub3QgYWxsb3dlZCBhdCBcIiArIGopO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhdHRlcm4gKz0gc3RyW2orK107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY291bnQpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVuYmFsYW5jZWQgcGF0dGVybiBhdCBcIiArIGkpO1xuICAgICAgICAgICAgaWYgKCFwYXR0ZXJuKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJNaXNzaW5nIHBhdHRlcm4gYXQgXCIgKyBpKTtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJQQVRURVJOXCIsIGluZGV4OiBpLCB2YWx1ZTogcGF0dGVybiB9KTtcbiAgICAgICAgICAgIGkgPSBqO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIkNIQVJcIiwgaW5kZXg6IGksIHZhbHVlOiBzdHJbaSsrXSB9KTtcbiAgICB9XG4gICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIkVORFwiLCBpbmRleDogaSwgdmFsdWU6IFwiXCIgfSk7XG4gICAgcmV0dXJuIHRva2Vucztcbn1cbi8qKlxuICogUGFyc2UgYSBzdHJpbmcgZm9yIHRoZSByYXcgdG9rZW5zLlxuICovXG5mdW5jdGlvbiBwYXJzZShzdHIsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIHZhciB0b2tlbnMgPSBsZXhlcihzdHIpO1xuICAgIHZhciBfYSA9IG9wdGlvbnMucHJlZml4ZXMsIHByZWZpeGVzID0gX2EgPT09IHZvaWQgMCA/IFwiLi9cIiA6IF9hO1xuICAgIHZhciBkZWZhdWx0UGF0dGVybiA9IFwiW15cIiArIGVzY2FwZVN0cmluZyhvcHRpb25zLmRlbGltaXRlciB8fCBcIi8jP1wiKSArIFwiXSs/XCI7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHZhciBrZXkgPSAwO1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIgcGF0aCA9IFwiXCI7XG4gICAgdmFyIHRyeUNvbnN1bWUgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICBpZiAoaSA8IHRva2Vucy5sZW5ndGggJiYgdG9rZW5zW2ldLnR5cGUgPT09IHR5cGUpXG4gICAgICAgICAgICByZXR1cm4gdG9rZW5zW2krK10udmFsdWU7XG4gICAgfTtcbiAgICB2YXIgbXVzdENvbnN1bWUgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0cnlDb25zdW1lKHR5cGUpO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgdmFyIF9hID0gdG9rZW5zW2ldLCBuZXh0VHlwZSA9IF9hLnR5cGUsIGluZGV4ID0gX2EuaW5kZXg7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmV4cGVjdGVkIFwiICsgbmV4dFR5cGUgKyBcIiBhdCBcIiArIGluZGV4ICsgXCIsIGV4cGVjdGVkIFwiICsgdHlwZSk7XG4gICAgfTtcbiAgICB2YXIgY29uc3VtZVRleHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBcIlwiO1xuICAgICAgICB2YXIgdmFsdWU7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgICAgICB3aGlsZSAoKHZhbHVlID0gdHJ5Q29uc3VtZShcIkNIQVJcIikgfHwgdHJ5Q29uc3VtZShcIkVTQ0FQRURfQ0hBUlwiKSkpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgd2hpbGUgKGkgPCB0b2tlbnMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBjaGFyID0gdHJ5Q29uc3VtZShcIkNIQVJcIik7XG4gICAgICAgIHZhciBuYW1lID0gdHJ5Q29uc3VtZShcIk5BTUVcIik7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gdHJ5Q29uc3VtZShcIlBBVFRFUk5cIik7XG4gICAgICAgIGlmIChuYW1lIHx8IHBhdHRlcm4pIHtcbiAgICAgICAgICAgIHZhciBwcmVmaXggPSBjaGFyIHx8IFwiXCI7XG4gICAgICAgICAgICBpZiAocHJlZml4ZXMuaW5kZXhPZihwcmVmaXgpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHBhdGggKz0gcHJlZml4O1xuICAgICAgICAgICAgICAgIHByZWZpeCA9IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHBhdGgpO1xuICAgICAgICAgICAgICAgIHBhdGggPSBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUgfHwga2V5KyssXG4gICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsXG4gICAgICAgICAgICAgICAgc3VmZml4OiBcIlwiLFxuICAgICAgICAgICAgICAgIHBhdHRlcm46IHBhdHRlcm4gfHwgZGVmYXVsdFBhdHRlcm4sXG4gICAgICAgICAgICAgICAgbW9kaWZpZXI6IHRyeUNvbnN1bWUoXCJNT0RJRklFUlwiKSB8fCBcIlwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB2YWx1ZSA9IGNoYXIgfHwgdHJ5Q29uc3VtZShcIkVTQ0FQRURfQ0hBUlwiKTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBwYXRoICs9IHZhbHVlO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHBhdGgpO1xuICAgICAgICAgICAgcGF0aCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG9wZW4gPSB0cnlDb25zdW1lKFwiT1BFTlwiKTtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHZhciBwcmVmaXggPSBjb25zdW1lVGV4dCgpO1xuICAgICAgICAgICAgdmFyIG5hbWVfMSA9IHRyeUNvbnN1bWUoXCJOQU1FXCIpIHx8IFwiXCI7XG4gICAgICAgICAgICB2YXIgcGF0dGVybl8xID0gdHJ5Q29uc3VtZShcIlBBVFRFUk5cIikgfHwgXCJcIjtcbiAgICAgICAgICAgIHZhciBzdWZmaXggPSBjb25zdW1lVGV4dCgpO1xuICAgICAgICAgICAgbXVzdENvbnN1bWUoXCJDTE9TRVwiKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lXzEgfHwgKHBhdHRlcm5fMSA/IGtleSsrIDogXCJcIiksXG4gICAgICAgICAgICAgICAgcGF0dGVybjogbmFtZV8xICYmICFwYXR0ZXJuXzEgPyBkZWZhdWx0UGF0dGVybiA6IHBhdHRlcm5fMSxcbiAgICAgICAgICAgICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgICAgICAgICAgICBzdWZmaXg6IHN1ZmZpeCxcbiAgICAgICAgICAgICAgICBtb2RpZmllcjogdHJ5Q29uc3VtZShcIk1PRElGSUVSXCIpIHx8IFwiXCJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbXVzdENvbnN1bWUoXCJFTkRcIik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG4vKipcbiAqIENvbXBpbGUgYSBzdHJpbmcgdG8gYSB0ZW1wbGF0ZSBmdW5jdGlvbiBmb3IgdGhlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGUoc3RyLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHRva2Vuc1RvRnVuY3Rpb24ocGFyc2Uoc3RyLCBvcHRpb25zKSwgb3B0aW9ucyk7XG59XG5leHBvcnRzLmNvbXBpbGUgPSBjb21waWxlO1xuLyoqXG4gKiBFeHBvc2UgYSBtZXRob2QgZm9yIHRyYW5zZm9ybWluZyB0b2tlbnMgaW50byB0aGUgcGF0aCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gdG9rZW5zVG9GdW5jdGlvbih0b2tlbnMsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIHZhciByZUZsYWdzID0gZmxhZ3Mob3B0aW9ucyk7XG4gICAgdmFyIF9hID0gb3B0aW9ucy5lbmNvZGUsIGVuY29kZSA9IF9hID09PSB2b2lkIDAgPyBmdW5jdGlvbiAoeCkgeyByZXR1cm4geDsgfSA6IF9hLCBfYiA9IG9wdGlvbnMudmFsaWRhdGUsIHZhbGlkYXRlID0gX2IgPT09IHZvaWQgMCA/IHRydWUgOiBfYjtcbiAgICAvLyBDb21waWxlIGFsbCB0aGUgdG9rZW5zIGludG8gcmVnZXhwcy5cbiAgICB2YXIgbWF0Y2hlcyA9IHRva2Vucy5tYXAoZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKFwiXig/OlwiICsgdG9rZW4ucGF0dGVybiArIFwiKSRcIiwgcmVGbGFncyk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgdmFyIHBhdGggPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIHRva2VuID0gdG9rZW5zW2ldO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHBhdGggKz0gdG9rZW47XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhID8gZGF0YVt0b2tlbi5uYW1lXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciBvcHRpb25hbCA9IHRva2VuLm1vZGlmaWVyID09PSBcIj9cIiB8fCB0b2tlbi5tb2RpZmllciA9PT0gXCIqXCI7XG4gICAgICAgICAgICB2YXIgcmVwZWF0ID0gdG9rZW4ubW9kaWZpZXIgPT09IFwiKlwiIHx8IHRva2VuLm1vZGlmaWVyID09PSBcIitcIjtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICghcmVwZWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBcXFwiXCIgKyB0b2tlbi5uYW1lICsgXCJcXFwiIHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYW4gYXJyYXlcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbmFsKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBcXFwiXCIgKyB0b2tlbi5uYW1lICsgXCJcXFwiIHRvIG5vdCBiZSBlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VnbWVudCA9IGVuY29kZSh2YWx1ZVtqXSwgdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUgJiYgIW1hdGNoZXNbaV0udGVzdChzZWdtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGFsbCBcXFwiXCIgKyB0b2tlbi5uYW1lICsgXCJcXFwiIHRvIG1hdGNoIFxcXCJcIiArIHRva2VuLnBhdHRlcm4gKyBcIlxcXCIsIGJ1dCBnb3QgXFxcIlwiICsgc2VnbWVudCArIFwiXFxcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwYXRoICs9IHRva2VuLnByZWZpeCArIHNlZ21lbnQgKyB0b2tlbi5zdWZmaXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VnbWVudCA9IGVuY29kZShTdHJpbmcodmFsdWUpLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlICYmICFtYXRjaGVzW2ldLnRlc3Qoc2VnbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIFxcXCJcIiArIHRva2VuLm5hbWUgKyBcIlxcXCIgdG8gbWF0Y2ggXFxcIlwiICsgdG9rZW4ucGF0dGVybiArIFwiXFxcIiwgYnV0IGdvdCBcXFwiXCIgKyBzZWdtZW50ICsgXCJcXFwiXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXRoICs9IHRva2VuLnByZWZpeCArIHNlZ21lbnQgKyB0b2tlbi5zdWZmaXg7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB2YXIgdHlwZU9mTWVzc2FnZSA9IHJlcGVhdCA/IFwiYW4gYXJyYXlcIiA6IFwiYSBzdHJpbmdcIjtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBcXFwiXCIgKyB0b2tlbi5uYW1lICsgXCJcXFwiIHRvIGJlIFwiICsgdHlwZU9mTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfTtcbn1cbmV4cG9ydHMudG9rZW5zVG9GdW5jdGlvbiA9IHRva2Vuc1RvRnVuY3Rpb247XG4vKipcbiAqIENyZWF0ZSBwYXRoIG1hdGNoIGZ1bmN0aW9uIGZyb20gYHBhdGgtdG8tcmVnZXhwYCBzcGVjLlxuICovXG5mdW5jdGlvbiBtYXRjaChzdHIsIG9wdGlvbnMpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIHZhciByZSA9IHBhdGhUb1JlZ2V4cChzdHIsIGtleXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiByZWdleHBUb0Z1bmN0aW9uKHJlLCBrZXlzLCBvcHRpb25zKTtcbn1cbmV4cG9ydHMubWF0Y2ggPSBtYXRjaDtcbi8qKlxuICogQ3JlYXRlIGEgcGF0aCBtYXRjaCBmdW5jdGlvbiBmcm9tIGBwYXRoLXRvLXJlZ2V4cGAgb3V0cHV0LlxuICovXG5mdW5jdGlvbiByZWdleHBUb0Z1bmN0aW9uKHJlLCBrZXlzLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgX2EgPSBvcHRpb25zLmRlY29kZSwgZGVjb2RlID0gX2EgPT09IHZvaWQgMCA/IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4OyB9IDogX2E7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChwYXRobmFtZSkge1xuICAgICAgICB2YXIgbSA9IHJlLmV4ZWMocGF0aG5hbWUpO1xuICAgICAgICBpZiAoIW0pXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHZhciBwYXRoID0gbVswXSwgaW5kZXggPSBtLmluZGV4O1xuICAgICAgICB2YXIgcGFyYW1zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbiAoaSkge1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBpZiAobVtpXSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIHJldHVybiBcImNvbnRpbnVlXCI7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpIC0gMV07XG4gICAgICAgICAgICBpZiAoa2V5Lm1vZGlmaWVyID09PSBcIipcIiB8fCBrZXkubW9kaWZpZXIgPT09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zW2tleS5uYW1lXSA9IG1baV0uc3BsaXQoa2V5LnByZWZpeCArIGtleS5zdWZmaXgpLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZSh2YWx1ZSwga2V5KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmFtc1trZXkubmFtZV0gPSBkZWNvZGUobVtpXSwga2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBtLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBfbG9vcF8xKGkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhdGg6IHBhdGgsIGluZGV4OiBpbmRleCwgcGFyYW1zOiBwYXJhbXMgfTtcbiAgICB9O1xufVxuZXhwb3J0cy5yZWdleHBUb0Z1bmN0aW9uID0gcmVnZXhwVG9GdW5jdGlvbjtcbi8qKlxuICogRXNjYXBlIGEgcmVndWxhciBleHByZXNzaW9uIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlU3RyaW5nKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFsuKyo/PV4hOiR7fSgpW1xcXXwvXFxcXF0pL2csIFwiXFxcXCQxXCIpO1xufVxuLyoqXG4gKiBHZXQgdGhlIGZsYWdzIGZvciBhIHJlZ2V4cCBmcm9tIHRoZSBvcHRpb25zLlxuICovXG5mdW5jdGlvbiBmbGFncyhvcHRpb25zKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMgJiYgb3B0aW9ucy5zZW5zaXRpdmUgPyBcIlwiIDogXCJpXCI7XG59XG4vKipcbiAqIFB1bGwgb3V0IGtleXMgZnJvbSBhIHJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gcmVnZXhwVG9SZWdleHAocGF0aCwga2V5cykge1xuICAgIGlmICgha2V5cylcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgLy8gVXNlIGEgbmVnYXRpdmUgbG9va2FoZWFkIHRvIG1hdGNoIG9ubHkgY2FwdHVyaW5nIGdyb3Vwcy5cbiAgICB2YXIgZ3JvdXBzID0gcGF0aC5zb3VyY2UubWF0Y2goL1xcKCg/IVxcPykvZyk7XG4gICAgaWYgKGdyb3Vwcykge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAga2V5cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBpLFxuICAgICAgICAgICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgICAgICAgICBzdWZmaXg6IFwiXCIsXG4gICAgICAgICAgICAgICAgbW9kaWZpZXI6IFwiXCIsXG4gICAgICAgICAgICAgICAgcGF0dGVybjogXCJcIlxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG59XG4vKipcbiAqIFRyYW5zZm9ybSBhbiBhcnJheSBpbnRvIGEgcmVnZXhwLlxuICovXG5mdW5jdGlvbiBhcnJheVRvUmVnZXhwKHBhdGhzLCBrZXlzLCBvcHRpb25zKSB7XG4gICAgdmFyIHBhcnRzID0gcGF0aHMubWFwKGZ1bmN0aW9uIChwYXRoKSB7IHJldHVybiBwYXRoVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucykuc291cmNlOyB9KTtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcIig/OlwiICsgcGFydHMuam9pbihcInxcIikgKyBcIilcIiwgZmxhZ3Mob3B0aW9ucykpO1xufVxuLyoqXG4gKiBDcmVhdGUgYSBwYXRoIHJlZ2V4cCBmcm9tIHN0cmluZyBpbnB1dC5cbiAqL1xuZnVuY3Rpb24gc3RyaW5nVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucykge1xuICAgIHJldHVybiB0b2tlbnNUb1JlZ2V4cChwYXJzZShwYXRoLCBvcHRpb25zKSwga2V5cywgb3B0aW9ucyk7XG59XG4vKipcbiAqIEV4cG9zZSBhIGZ1bmN0aW9uIGZvciB0YWtpbmcgdG9rZW5zIGFuZCByZXR1cm5pbmcgYSBSZWdFeHAuXG4gKi9cbmZ1bmN0aW9uIHRva2Vuc1RvUmVnZXhwKHRva2Vucywga2V5cywgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgdmFyIF9hID0gb3B0aW9ucy5zdHJpY3QsIHN0cmljdCA9IF9hID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hLCBfYiA9IG9wdGlvbnMuc3RhcnQsIHN0YXJ0ID0gX2IgPT09IHZvaWQgMCA/IHRydWUgOiBfYiwgX2MgPSBvcHRpb25zLmVuZCwgZW5kID0gX2MgPT09IHZvaWQgMCA/IHRydWUgOiBfYywgX2QgPSBvcHRpb25zLmVuY29kZSwgZW5jb2RlID0gX2QgPT09IHZvaWQgMCA/IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4OyB9IDogX2Q7XG4gICAgdmFyIGVuZHNXaXRoID0gXCJbXCIgKyBlc2NhcGVTdHJpbmcob3B0aW9ucy5lbmRzV2l0aCB8fCBcIlwiKSArIFwiXXwkXCI7XG4gICAgdmFyIGRlbGltaXRlciA9IFwiW1wiICsgZXNjYXBlU3RyaW5nKG9wdGlvbnMuZGVsaW1pdGVyIHx8IFwiLyM/XCIpICsgXCJdXCI7XG4gICAgdmFyIHJvdXRlID0gc3RhcnQgPyBcIl5cIiA6IFwiXCI7XG4gICAgLy8gSXRlcmF0ZSBvdmVyIHRoZSB0b2tlbnMgYW5kIGNyZWF0ZSBvdXIgcmVnZXhwIHN0cmluZy5cbiAgICBmb3IgKHZhciBfaSA9IDAsIHRva2Vuc18xID0gdG9rZW5zOyBfaSA8IHRva2Vuc18xLmxlbmd0aDsgX2krKykge1xuICAgICAgICB2YXIgdG9rZW4gPSB0b2tlbnNfMVtfaV07XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJvdXRlICs9IGVzY2FwZVN0cmluZyhlbmNvZGUodG9rZW4pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwcmVmaXggPSBlc2NhcGVTdHJpbmcoZW5jb2RlKHRva2VuLnByZWZpeCkpO1xuICAgICAgICAgICAgdmFyIHN1ZmZpeCA9IGVzY2FwZVN0cmluZyhlbmNvZGUodG9rZW4uc3VmZml4KSk7XG4gICAgICAgICAgICBpZiAodG9rZW4ucGF0dGVybikge1xuICAgICAgICAgICAgICAgIGlmIChrZXlzKVxuICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgICAgIGlmIChwcmVmaXggfHwgc3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbi5tb2RpZmllciA9PT0gXCIrXCIgfHwgdG9rZW4ubW9kaWZpZXIgPT09IFwiKlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbW9kID0gdG9rZW4ubW9kaWZpZXIgPT09IFwiKlwiID8gXCI/XCIgOiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUgKz0gXCIoPzpcIiArIHByZWZpeCArIFwiKCg/OlwiICsgdG9rZW4ucGF0dGVybiArIFwiKSg/OlwiICsgc3VmZml4ICsgcHJlZml4ICsgXCIoPzpcIiArIHRva2VuLnBhdHRlcm4gKyBcIikpKilcIiArIHN1ZmZpeCArIFwiKVwiICsgbW9kO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUgKz0gXCIoPzpcIiArIHByZWZpeCArIFwiKFwiICsgdG9rZW4ucGF0dGVybiArIFwiKVwiICsgc3VmZml4ICsgXCIpXCIgKyB0b2tlbi5tb2RpZmllcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUgKz0gXCIoXCIgKyB0b2tlbi5wYXR0ZXJuICsgXCIpXCIgKyB0b2tlbi5tb2RpZmllcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByb3V0ZSArPSBcIig/OlwiICsgcHJlZml4ICsgc3VmZml4ICsgXCIpXCIgKyB0b2tlbi5tb2RpZmllcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5kKSB7XG4gICAgICAgIGlmICghc3RyaWN0KVxuICAgICAgICAgICAgcm91dGUgKz0gZGVsaW1pdGVyICsgXCI/XCI7XG4gICAgICAgIHJvdXRlICs9ICFvcHRpb25zLmVuZHNXaXRoID8gXCIkXCIgOiBcIig/PVwiICsgZW5kc1dpdGggKyBcIilcIjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHZhciBlbmRUb2tlbiA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIHZhciBpc0VuZERlbGltaXRlZCA9IHR5cGVvZiBlbmRUb2tlbiA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBkZWxpbWl0ZXIuaW5kZXhPZihlbmRUb2tlbltlbmRUb2tlbi5sZW5ndGggLSAxXSkgPiAtMVxuICAgICAgICAgICAgOiAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgICAgICBlbmRUb2tlbiA9PT0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIXN0cmljdCkge1xuICAgICAgICAgICAgcm91dGUgKz0gXCIoPzpcIiArIGRlbGltaXRlciArIFwiKD89XCIgKyBlbmRzV2l0aCArIFwiKSk/XCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0VuZERlbGltaXRlZCkge1xuICAgICAgICAgICAgcm91dGUgKz0gXCIoPz1cIiArIGRlbGltaXRlciArIFwifFwiICsgZW5kc1dpdGggKyBcIilcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChyb3V0ZSwgZmxhZ3Mob3B0aW9ucykpO1xufVxuZXhwb3J0cy50b2tlbnNUb1JlZ2V4cCA9IHRva2Vuc1RvUmVnZXhwO1xuLyoqXG4gKiBOb3JtYWxpemUgdGhlIGdpdmVuIHBhdGggc3RyaW5nLCByZXR1cm5pbmcgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKlxuICogQW4gZW1wdHkgYXJyYXkgY2FuIGJlIHBhc3NlZCBpbiBmb3IgdGhlIGtleXMsIHdoaWNoIHdpbGwgaG9sZCB0aGVcbiAqIHBsYWNlaG9sZGVyIGtleSBkZXNjcmlwdGlvbnMuIEZvciBleGFtcGxlLCB1c2luZyBgL3VzZXIvOmlkYCwgYGtleXNgIHdpbGxcbiAqIGNvbnRhaW4gYFt7IG5hbWU6ICdpZCcsIGRlbGltaXRlcjogJy8nLCBvcHRpb25hbDogZmFsc2UsIHJlcGVhdDogZmFsc2UgfV1gLlxuICovXG5mdW5jdGlvbiBwYXRoVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucykge1xuICAgIGlmIChwYXRoIGluc3RhbmNlb2YgUmVnRXhwKVxuICAgICAgICByZXR1cm4gcmVnZXhwVG9SZWdleHAocGF0aCwga2V5cyk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGF0aCkpXG4gICAgICAgIHJldHVybiBhcnJheVRvUmVnZXhwKHBhdGgsIGtleXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBzdHJpbmdUb1JlZ2V4cChwYXRoLCBrZXlzLCBvcHRpb25zKTtcbn1cbmV4cG9ydHMucGF0aFRvUmVnZXhwID0gcGF0aFRvUmVnZXhwO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibGV4ZXIiLCJzdHIiLCJ0b2tlbnMiLCJpIiwibGVuZ3RoIiwiY2hhciIsInB1c2giLCJ0eXBlIiwiaW5kZXgiLCJuYW1lIiwiaiIsImNvZGUiLCJjaGFyQ29kZUF0IiwiVHlwZUVycm9yIiwiY291bnQiLCJwYXR0ZXJuIiwicGFyc2UiLCJvcHRpb25zIiwiX2EiLCJwcmVmaXhlcyIsImRlZmF1bHRQYXR0ZXJuIiwiZXNjYXBlU3RyaW5nIiwiZGVsaW1pdGVyIiwicmVzdWx0Iiwia2V5IiwicGF0aCIsInRyeUNvbnN1bWUiLCJtdXN0Q29uc3VtZSIsInVuZGVmaW5lZCIsIm5leHRUeXBlIiwiY29uc3VtZVRleHQiLCJwcmVmaXgiLCJpbmRleE9mIiwic3VmZml4IiwibW9kaWZpZXIiLCJvcGVuIiwibmFtZV8xIiwicGF0dGVybl8xIiwiY29tcGlsZSIsInRva2Vuc1RvRnVuY3Rpb24iLCJyZUZsYWdzIiwiZmxhZ3MiLCJlbmNvZGUiLCJ4IiwiX2IiLCJ2YWxpZGF0ZSIsIm1hdGNoZXMiLCJtYXAiLCJ0b2tlbiIsIlJlZ0V4cCIsImRhdGEiLCJvcHRpb25hbCIsInJlcGVhdCIsIkFycmF5IiwiaXNBcnJheSIsInNlZ21lbnQiLCJ0ZXN0IiwiU3RyaW5nIiwidHlwZU9mTWVzc2FnZSIsIm1hdGNoIiwia2V5cyIsInJlIiwicGF0aFRvUmVnZXhwIiwicmVnZXhwVG9GdW5jdGlvbiIsImRlY29kZSIsInBhdGhuYW1lIiwibSIsImV4ZWMiLCJwYXJhbXMiLCJjcmVhdGUiLCJfbG9vcF8xIiwic3BsaXQiLCJyZXBsYWNlIiwic2Vuc2l0aXZlIiwicmVnZXhwVG9SZWdleHAiLCJncm91cHMiLCJzb3VyY2UiLCJhcnJheVRvUmVnZXhwIiwicGF0aHMiLCJwYXJ0cyIsImpvaW4iLCJzdHJpbmdUb1JlZ2V4cCIsInRva2Vuc1RvUmVnZXhwIiwic3RyaWN0Iiwic3RhcnQiLCJfYyIsImVuZCIsIl9kIiwiZW5kc1dpdGgiLCJyb3V0ZSIsIl9pIiwidG9rZW5zXzEiLCJtb2QiLCJlbmRUb2tlbiIsImlzRW5kRGVsaW1pdGVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/path-to-regexp/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/platform/platform.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/platform/platform.js ***!
- \******************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n var e = {\n 541: function(e, i, t) {\n e = t.nmd(e);\n /*!\n * Platform.js v1.3.6\n * Copyright 2014-2020 Benjamin Tan\n * Copyright 2011-2013 John-David Dalton\n * Available under MIT license\n */ (function() {\n \"use strict\";\n var t = {\n function: true,\n object: true\n };\n var r = t[\"undefined\"] && window || this;\n var a = r;\n var n = t[typeof i] && i;\n var o = t[\"object\"] && e && !e.nodeType && e;\n var l = n && o && typeof __webpack_require__.g == \"object\" && __webpack_require__.g;\n if (l && (l.global === l || l.window === l || l.self === l)) {\n r = l;\n }\n var s = Math.pow(2, 53) - 1;\n var f = /\\bOpera/;\n var b = this;\n var c = Object.prototype;\n var p = c.hasOwnProperty;\n var u = c.toString;\n function capitalize(e) {\n e = String(e);\n return e.charAt(0).toUpperCase() + e.slice(1);\n }\n function cleanupOS(e, i, t) {\n var r = {\n \"10.0\": \"10\",\n 6.4: \"10 Technical Preview\",\n 6.3: \"8.1\",\n 6.2: \"8\",\n 6.1: \"Server 2008 R2 / 7\",\n \"6.0\": \"Server 2008 / Vista\",\n 5.2: \"Server 2003 / XP 64-bit\",\n 5.1: \"XP\",\n 5.01: \"2000 SP1\",\n \"5.0\": \"2000\",\n \"4.0\": \"NT\",\n \"4.90\": \"ME\"\n };\n if (i && t && /^Win/i.test(e) && !/^Windows Phone /i.test(e) && (r = r[/[\\d.]+$/.exec(e)])) {\n e = \"Windows \" + r;\n }\n e = String(e);\n if (i && t) {\n e = e.replace(RegExp(i, \"i\"), t);\n }\n e = format(e.replace(/ ce$/i, \" CE\").replace(/\\bhpw/i, \"web\").replace(/\\bMacintosh\\b/, \"Mac OS\").replace(/_PowerPC\\b/i, \" OS\").replace(/\\b(OS X) [^ \\d]+/i, \"$1\").replace(/\\bMac (OS X)\\b/, \"$1\").replace(/\\/(\\d)/, \" $1\").replace(/_/g, \".\").replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, \"\").replace(/\\bx86\\.64\\b/gi, \"x86_64\").replace(/\\b(Windows Phone) OS\\b/, \"$1\").replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, \"$1\").split(\" on \")[0]);\n return e;\n }\n function each(e, i) {\n var t = -1, r = e ? e.length : 0;\n if (typeof r == \"number\" && r > -1 && r <= s) {\n while(++t < r){\n i(e[t], t, e);\n }\n } else {\n forOwn(e, i);\n }\n }\n function format(e) {\n e = trim(e);\n return /^(?:webOS|i(?:OS|P))/.test(e) ? e : capitalize(e);\n }\n function forOwn(e, i) {\n for(var t in e){\n if (p.call(e, t)) {\n i(e[t], t, e);\n }\n }\n }\n function getClassOf(e) {\n return e == null ? capitalize(e) : u.call(e).slice(8, -1);\n }\n function isHostType(e, i) {\n var t = e != null ? typeof e[i] : \"number\";\n return !/^(?:boolean|number|string|undefined)$/.test(t) && (t == \"object\" ? !!e[i] : true);\n }\n function qualify(e) {\n return String(e).replace(/([ -])(?!$)/g, \"$1?\");\n }\n function reduce(e, i) {\n var t = null;\n each(e, function(r, a) {\n t = i(t, r, a, e);\n });\n return t;\n }\n function trim(e) {\n return String(e).replace(/^ +| +$/g, \"\");\n }\n function parse(e) {\n var i = r;\n var t = e && typeof e == \"object\" && getClassOf(e) != \"String\";\n if (t) {\n i = e;\n e = null;\n }\n var n = i.navigator || {};\n var o = n.userAgent || \"\";\n e || (e = o);\n var l = t || b == a;\n var s = t ? !!n.likeChrome : /\\bChrome\\b/.test(e) && !/internal|\\n/i.test(u.toString());\n var c = \"Object\", p = t ? c : \"ScriptBridgingProxyObject\", d = t ? c : \"Environment\", S = t && i.java ? \"JavaPackage\" : getClassOf(i.java), x = t ? c : \"RuntimeObject\";\n var m = /\\bJava/.test(S) && i.java;\n var g = m && getClassOf(i.environment) == d;\n var h = m ? \"a\" : \"α\";\n var v = m ? \"b\" : \"β\";\n var O = i.document || {};\n var y = i.operamini || i.opera;\n var w = f.test(w = t && y ? y[\"[[Class]]\"] : getClassOf(y)) ? w : y = null;\n var M;\n var E = e;\n var P = [];\n var C = null;\n var k = e == o;\n var B = k && y && typeof y.version == \"function\" && y.version();\n var W;\n var _ = getLayout([\n {\n label: \"EdgeHTML\",\n pattern: \"Edge\"\n },\n \"Trident\",\n {\n label: \"WebKit\",\n pattern: \"AppleWebKit\"\n },\n \"iCab\",\n \"Presto\",\n \"NetFront\",\n \"Tasman\",\n \"KHTML\",\n \"Gecko\"\n ]);\n var R = getName([\n \"Adobe AIR\",\n \"Arora\",\n \"Avant Browser\",\n \"Breach\",\n \"Camino\",\n \"Electron\",\n \"Epiphany\",\n \"Fennec\",\n \"Flock\",\n \"Galeon\",\n \"GreenBrowser\",\n \"iCab\",\n \"Iceweasel\",\n \"K-Meleon\",\n \"Konqueror\",\n \"Lunascape\",\n \"Maxthon\",\n {\n label: \"Microsoft Edge\",\n pattern: \"(?:Edge|Edg|EdgA|EdgiOS)\"\n },\n \"Midori\",\n \"Nook Browser\",\n \"PaleMoon\",\n \"PhantomJS\",\n \"Raven\",\n \"Rekonq\",\n \"RockMelt\",\n {\n label: \"Samsung Internet\",\n pattern: \"SamsungBrowser\"\n },\n \"SeaMonkey\",\n {\n label: \"Silk\",\n pattern: \"(?:Cloud9|Silk-Accelerated)\"\n },\n \"Sleipnir\",\n \"SlimBrowser\",\n {\n label: \"SRWare Iron\",\n pattern: \"Iron\"\n },\n \"Sunrise\",\n \"Swiftfox\",\n \"Vivaldi\",\n \"Waterfox\",\n \"WebPositive\",\n {\n label: \"Yandex Browser\",\n pattern: \"YaBrowser\"\n },\n {\n label: \"UC Browser\",\n pattern: \"UCBrowser\"\n },\n \"Opera Mini\",\n {\n label: \"Opera Mini\",\n pattern: \"OPiOS\"\n },\n \"Opera\",\n {\n label: \"Opera\",\n pattern: \"OPR\"\n },\n \"Chromium\",\n \"Chrome\",\n {\n label: \"Chrome\",\n pattern: \"(?:HeadlessChrome)\"\n },\n {\n label: \"Chrome Mobile\",\n pattern: \"(?:CriOS|CrMo)\"\n },\n {\n label: \"Firefox\",\n pattern: \"(?:Firefox|Minefield)\"\n },\n {\n label: \"Firefox for iOS\",\n pattern: \"FxiOS\"\n },\n {\n label: \"IE\",\n pattern: \"IEMobile\"\n },\n {\n label: \"IE\",\n pattern: \"MSIE\"\n },\n \"Safari\"\n ]);\n var A = getProduct([\n {\n label: \"BlackBerry\",\n pattern: \"BB10\"\n },\n \"BlackBerry\",\n {\n label: \"Galaxy S\",\n pattern: \"GT-I9000\"\n },\n {\n label: \"Galaxy S2\",\n pattern: \"GT-I9100\"\n },\n {\n label: \"Galaxy S3\",\n pattern: \"GT-I9300\"\n },\n {\n label: \"Galaxy S4\",\n pattern: \"GT-I9500\"\n },\n {\n label: \"Galaxy S5\",\n pattern: \"SM-G900\"\n },\n {\n label: \"Galaxy S6\",\n pattern: \"SM-G920\"\n },\n {\n label: \"Galaxy S6 Edge\",\n pattern: \"SM-G925\"\n },\n {\n label: \"Galaxy S7\",\n pattern: \"SM-G930\"\n },\n {\n label: \"Galaxy S7 Edge\",\n pattern: \"SM-G935\"\n },\n \"Google TV\",\n \"Lumia\",\n \"iPad\",\n \"iPod\",\n \"iPhone\",\n \"Kindle\",\n {\n label: \"Kindle Fire\",\n pattern: \"(?:Cloud9|Silk-Accelerated)\"\n },\n \"Nexus\",\n \"Nook\",\n \"PlayBook\",\n \"PlayStation Vita\",\n \"PlayStation\",\n \"TouchPad\",\n \"Transformer\",\n {\n label: \"Wii U\",\n pattern: \"WiiU\"\n },\n \"Wii\",\n \"Xbox One\",\n {\n label: \"Xbox 360\",\n pattern: \"Xbox\"\n },\n \"Xoom\"\n ]);\n var I = getManufacturer({\n Apple: {\n iPad: 1,\n iPhone: 1,\n iPod: 1\n },\n Alcatel: {},\n Archos: {},\n Amazon: {\n Kindle: 1,\n \"Kindle Fire\": 1\n },\n Asus: {\n Transformer: 1\n },\n \"Barnes & Noble\": {\n Nook: 1\n },\n BlackBerry: {\n PlayBook: 1\n },\n Google: {\n \"Google TV\": 1,\n Nexus: 1\n },\n HP: {\n TouchPad: 1\n },\n HTC: {},\n Huawei: {},\n Lenovo: {},\n LG: {},\n Microsoft: {\n Xbox: 1,\n \"Xbox One\": 1\n },\n Motorola: {\n Xoom: 1\n },\n Nintendo: {\n \"Wii U\": 1,\n Wii: 1\n },\n Nokia: {\n Lumia: 1\n },\n Oppo: {},\n Samsung: {\n \"Galaxy S\": 1,\n \"Galaxy S2\": 1,\n \"Galaxy S3\": 1,\n \"Galaxy S4\": 1\n },\n Sony: {\n PlayStation: 1,\n \"PlayStation Vita\": 1\n },\n Xiaomi: {\n Mi: 1,\n Redmi: 1\n }\n });\n var T = getOS([\n \"Windows Phone\",\n \"KaiOS\",\n \"Android\",\n \"CentOS\",\n {\n label: \"Chrome OS\",\n pattern: \"CrOS\"\n },\n \"Debian\",\n {\n label: \"DragonFly BSD\",\n pattern: \"DragonFly\"\n },\n \"Fedora\",\n \"FreeBSD\",\n \"Gentoo\",\n \"Haiku\",\n \"Kubuntu\",\n \"Linux Mint\",\n \"OpenBSD\",\n \"Red Hat\",\n \"SuSE\",\n \"Ubuntu\",\n \"Xubuntu\",\n \"Cygwin\",\n \"Symbian OS\",\n \"hpwOS\",\n \"webOS \",\n \"webOS\",\n \"Tablet OS\",\n \"Tizen\",\n \"Linux\",\n \"Mac OS X\",\n \"Macintosh\",\n \"Mac\",\n \"Windows 98;\",\n \"Windows \"\n ]);\n function getLayout(i) {\n return reduce(i, function(i, t) {\n return i || RegExp(\"\\\\b\" + (t.pattern || qualify(t)) + \"\\\\b\", \"i\").exec(e) && (t.label || t);\n });\n }\n function getManufacturer(i) {\n return reduce(i, function(i, t, r) {\n return i || (t[A] || t[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(A)] || RegExp(\"\\\\b\" + qualify(r) + \"(?:\\\\b|\\\\w*\\\\d)\", \"i\").exec(e)) && r;\n });\n }\n function getName(i) {\n return reduce(i, function(i, t) {\n return i || RegExp(\"\\\\b\" + (t.pattern || qualify(t)) + \"\\\\b\", \"i\").exec(e) && (t.label || t);\n });\n }\n function getOS(i) {\n return reduce(i, function(i, t) {\n var r = t.pattern || qualify(t);\n if (!i && (i = RegExp(\"\\\\b\" + r + \"(?:/[\\\\d.]+|[ \\\\w.]*)\", \"i\").exec(e))) {\n i = cleanupOS(i, r, t.label || t);\n }\n return i;\n });\n }\n function getProduct(i) {\n return reduce(i, function(i, t) {\n var r = t.pattern || qualify(t);\n if (!i && (i = RegExp(\"\\\\b\" + r + \" *\\\\d+[.\\\\w_]*\", \"i\").exec(e) || RegExp(\"\\\\b\" + r + \" *\\\\w+-[\\\\w]*\", \"i\").exec(e) || RegExp(\"\\\\b\" + r + \"(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)\", \"i\").exec(e))) {\n if ((i = String(t.label && !RegExp(r, \"i\").test(t.label) ? t.label : i).split(\"/\"))[1] && !/[\\d.]+/.test(i[0])) {\n i[0] += \" \" + i[1];\n }\n t = t.label || t;\n i = format(i[0].replace(RegExp(r, \"i\"), t).replace(RegExp(\"; *(?:\" + t + \"[_-])?\", \"i\"), \" \").replace(RegExp(\"(\" + t + \")[-_.]?(\\\\w)\", \"i\"), \"$1 $2\"));\n }\n return i;\n });\n }\n function getVersion(i) {\n return reduce(i, function(i, t) {\n return i || (RegExp(t + \"(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)\", \"i\").exec(e) || 0)[1] || null;\n });\n }\n function toStringPlatform() {\n return this.description || \"\";\n }\n _ && (_ = [\n _\n ]);\n if (/\\bAndroid\\b/.test(T) && !A && (M = /\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b/i.exec(e))) {\n A = trim(M[1]).replace(/^[a-z]{2}-[a-z]{2};\\s*/i, \"\") || null;\n }\n if (I && !A) {\n A = getProduct([\n I\n ]);\n } else if (I && A) {\n A = A.replace(RegExp(\"^(\" + qualify(I) + \")[-_.\\\\s]\", \"i\"), I + \" \").replace(RegExp(\"^(\" + qualify(I) + \")[-_.]?(\\\\w)\", \"i\"), I + \" $2\");\n }\n if (M = /\\bGoogle TV\\b/.exec(A)) {\n A = M[0];\n }\n if (/\\bSimulator\\b/i.test(e)) {\n A = (A ? A + \" \" : \"\") + \"Simulator\";\n }\n if (R == \"Opera Mini\" && /\\bOPiOS\\b/.test(e)) {\n P.push(\"running in Turbo/Uncompressed mode\");\n }\n if (R == \"IE\" && /\\blike iPhone OS\\b/.test(e)) {\n M = parse(e.replace(/like iPhone OS/, \"\"));\n I = M.manufacturer;\n A = M.product;\n } else if (/^iP/.test(A)) {\n R || (R = \"Safari\");\n T = \"iOS\" + ((M = / OS ([\\d_]+)/i.exec(e)) ? \" \" + M[1].replace(/_/g, \".\") : \"\");\n } else if (R == \"Konqueror\" && /^Linux\\b/i.test(T)) {\n T = \"Kubuntu\";\n } else if (I && I != \"Google\" && (/Chrome/.test(R) && !/\\bMobile Safari\\b/i.test(e) || /\\bVita\\b/.test(A)) || /\\bAndroid\\b/.test(T) && /^Chrome/.test(R) && /\\bVersion\\//i.test(e)) {\n R = \"Android Browser\";\n T = /\\bAndroid\\b/.test(T) ? T : \"Android\";\n } else if (R == \"Silk\") {\n if (!/\\bMobi/i.test(e)) {\n T = \"Android\";\n P.unshift(\"desktop mode\");\n }\n if (/Accelerated *= *true/i.test(e)) {\n P.unshift(\"accelerated\");\n }\n } else if (R == \"UC Browser\" && /\\bUCWEB\\b/.test(e)) {\n P.push(\"speed mode\");\n } else if (R == \"PaleMoon\" && (M = /\\bFirefox\\/([\\d.]+)\\b/.exec(e))) {\n P.push(\"identifying as Firefox \" + M[1]);\n } else if (R == \"Firefox\" && (M = /\\b(Mobile|Tablet|TV)\\b/i.exec(e))) {\n T || (T = \"Firefox OS\");\n A || (A = M[1]);\n } else if (!R || (M = !/\\bMinefield\\b/i.test(e) && /\\b(?:Firefox|Safari)\\b/.exec(R))) {\n if (R && !A && /[\\/,]|^[^(]+?\\)/.test(e.slice(e.indexOf(M + \"/\") + 8))) {\n R = null;\n }\n if ((M = A || I || T) && (A || I || /\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(T))) {\n R = /[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(T) ? T : M) + \" Browser\";\n }\n } else if (R == \"Electron\" && (M = (/\\bChrome\\/([\\d.]+)\\b/.exec(e) || 0)[1])) {\n P.push(\"Chromium \" + M);\n }\n if (!B) {\n B = getVersion([\n \"(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$)|UCBrowser|YaBrowser)\",\n \"Version\",\n qualify(R),\n \"(?:Firefox|Minefield|NetFront)\"\n ]);\n }\n if (M = _ == \"iCab\" && parseFloat(B) > 3 && \"WebKit\" || /\\bOpera\\b/.test(R) && (/\\bOPR\\b/.test(e) ? \"Blink\" : \"Presto\") || /\\b(?:Midori|Nook|Safari)\\b/i.test(e) && !/^(?:Trident|EdgeHTML)$/.test(_) && \"WebKit\" || !_ && /\\bMSIE\\b/i.test(e) && (T == \"Mac OS\" ? \"Tasman\" : \"Trident\") || _ == \"WebKit\" && /\\bPlayStation\\b(?! Vita\\b)/i.test(R) && \"NetFront\") {\n _ = [\n M\n ];\n }\n if (R == \"IE\" && (M = (/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(e) || 0)[1])) {\n R += \" Mobile\";\n T = \"Windows Phone \" + (/\\+$/.test(M) ? M : M + \".x\");\n P.unshift(\"desktop mode\");\n } else if (/\\bWPDesktop\\b/i.test(e)) {\n R = \"IE Mobile\";\n T = \"Windows Phone 8.x\";\n P.unshift(\"desktop mode\");\n B || (B = (/\\brv:([\\d.]+)/.exec(e) || 0)[1]);\n } else if (R != \"IE\" && _ == \"Trident\" && (M = /\\brv:([\\d.]+)/.exec(e))) {\n if (R) {\n P.push(\"identifying as \" + R + (B ? \" \" + B : \"\"));\n }\n R = \"IE\";\n B = M[1];\n }\n if (k) {\n if (isHostType(i, \"global\")) {\n if (m) {\n M = m.lang.System;\n E = M.getProperty(\"os.arch\");\n T = T || M.getProperty(\"os.name\") + \" \" + M.getProperty(\"os.version\");\n }\n if (g) {\n try {\n B = i.require(\"ringo/engine\").version.join(\".\");\n R = \"RingoJS\";\n } catch (e) {\n if ((M = i.system) && M.global.system == i.system) {\n R = \"Narwhal\";\n T || (T = M[0].os || null);\n }\n }\n if (!R) {\n R = \"Rhino\";\n }\n } else if (typeof i.process == \"object\" && !i.process.browser && (M = i.process)) {\n if (typeof M.versions == \"object\") {\n if (typeof M.versions.electron == \"string\") {\n P.push(\"Node \" + M.versions.node);\n R = \"Electron\";\n B = M.versions.electron;\n } else if (typeof M.versions.nw == \"string\") {\n P.push(\"Chromium \" + B, \"Node \" + M.versions.node);\n R = \"NW.js\";\n B = M.versions.nw;\n }\n }\n if (!R) {\n R = \"Node.js\";\n E = M.arch;\n T = M.platform;\n B = /[\\d.]+/.exec(M.version);\n B = B ? B[0] : null;\n }\n }\n } else if (getClassOf(M = i.runtime) == p) {\n R = \"Adobe AIR\";\n T = M.flash.system.Capabilities.os;\n } else if (getClassOf(M = i.phantom) == x) {\n R = \"PhantomJS\";\n B = (M = M.version || null) && M.major + \".\" + M.minor + \".\" + M.patch;\n } else if (typeof O.documentMode == \"number\" && (M = /\\bTrident\\/(\\d+)/i.exec(e))) {\n B = [\n B,\n O.documentMode\n ];\n if ((M = +M[1] + 4) != B[1]) {\n P.push(\"IE \" + B[1] + \" mode\");\n _ && (_[1] = \"\");\n B[1] = M;\n }\n B = R == \"IE\" ? String(B[1].toFixed(1)) : B[0];\n } else if (typeof O.documentMode == \"number\" && /^(?:Chrome|Firefox)\\b/.test(R)) {\n P.push(\"masking as \" + R + \" \" + B);\n R = \"IE\";\n B = \"11.0\";\n _ = [\n \"Trident\"\n ];\n T = \"Windows\";\n }\n T = T && format(T);\n }\n if (B && (M = /(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(B) || /(?:alpha|beta)(?: ?\\d)?/i.exec(e + \";\" + (k && n.appMinorVersion)) || /\\bMinefield\\b/i.test(e) && \"a\")) {\n C = /b/i.test(M) ? \"beta\" : \"alpha\";\n B = B.replace(RegExp(M + \"\\\\+?$\"), \"\") + (C == \"beta\" ? v : h) + (/\\d+\\+?/.exec(M) || \"\");\n }\n if (R == \"Fennec\" || R == \"Firefox\" && /\\b(?:Android|Firefox OS|KaiOS)\\b/.test(T)) {\n R = \"Firefox Mobile\";\n } else if (R == \"Maxthon\" && B) {\n B = B.replace(/\\.[\\d.]+/, \".x\");\n } else if (/\\bXbox\\b/i.test(A)) {\n if (A == \"Xbox 360\") {\n T = null;\n }\n if (A == \"Xbox 360\" && /\\bIEMobile\\b/.test(e)) {\n P.unshift(\"mobile mode\");\n }\n } else if ((/^(?:Chrome|IE|Opera)$/.test(R) || R && !A && !/Browser|Mobi/.test(R)) && (T == \"Windows CE\" || /Mobi/i.test(e))) {\n R += \" Mobile\";\n } else if (R == \"IE\" && k) {\n try {\n if (i.external === null) {\n P.unshift(\"platform preview\");\n }\n } catch (e) {\n P.unshift(\"embedded\");\n }\n } else if ((/\\bBlackBerry\\b/.test(A) || /\\bBB10\\b/.test(e)) && (M = (RegExp(A.replace(/ +/g, \" *\") + \"/([.\\\\d]+)\", \"i\").exec(e) || 0)[1] || B)) {\n M = [\n M,\n /BB10/.test(e)\n ];\n T = (M[1] ? (A = null, I = \"BlackBerry\") : \"Device Software\") + \" \" + M[0];\n B = null;\n } else if (this != forOwn && A != \"Wii\" && (k && y || /Opera/.test(R) && /\\b(?:MSIE|Firefox)\\b/i.test(e) || R == \"Firefox\" && /\\bOS X (?:\\d+\\.){2,}/.test(T) || R == \"IE\" && (T && !/^Win/.test(T) && B > 5.5 || /\\bWindows XP\\b/.test(T) && B > 8 || B == 8 && !/\\bTrident\\b/.test(e))) && !f.test(M = parse.call(forOwn, e.replace(f, \"\") + \";\")) && M.name) {\n M = \"ing as \" + M.name + ((M = M.version) ? \" \" + M : \"\");\n if (f.test(R)) {\n if (/\\bIE\\b/.test(M) && T == \"Mac OS\") {\n T = null;\n }\n M = \"identify\" + M;\n } else {\n M = \"mask\" + M;\n if (w) {\n R = format(w.replace(/([a-z])([A-Z])/g, \"$1 $2\"));\n } else {\n R = \"Opera\";\n }\n if (/\\bIE\\b/.test(M)) {\n T = null;\n }\n if (!k) {\n B = null;\n }\n }\n _ = [\n \"Presto\"\n ];\n P.push(M);\n }\n if (M = (/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(e) || 0)[1]) {\n M = [\n parseFloat(M.replace(/\\.(\\d)$/, \".0$1\")),\n M\n ];\n if (R == \"Safari\" && M[1].slice(-1) == \"+\") {\n R = \"WebKit Nightly\";\n C = \"alpha\";\n B = M[1].slice(0, -1);\n } else if (B == M[1] || B == (M[2] = (/\\bSafari\\/([\\d.]+\\+?)/i.exec(e) || 0)[1])) {\n B = null;\n }\n M[1] = (/\\b(?:Headless)?Chrome\\/([\\d.]+)/i.exec(e) || 0)[1];\n if (M[0] == 537.36 && M[2] == 537.36 && parseFloat(M[1]) >= 28 && _ == \"WebKit\") {\n _ = [\n \"Blink\"\n ];\n }\n if (!k || !s && !M[1]) {\n _ && (_[1] = \"like Safari\");\n M = (M = M[0], M < 400 ? 1 : M < 500 ? 2 : M < 526 ? 3 : M < 533 ? 4 : M < 534 ? \"4+\" : M < 535 ? 5 : M < 537 ? 6 : M < 538 ? 7 : M < 601 ? 8 : M < 602 ? 9 : M < 604 ? 10 : M < 606 ? 11 : M < 608 ? 12 : \"12\");\n } else {\n _ && (_[1] = \"like Chrome\");\n M = M[1] || (M = M[0], M < 530 ? 1 : M < 532 ? 2 : M < 532.05 ? 3 : M < 533 ? 4 : M < 534.03 ? 5 : M < 534.07 ? 6 : M < 534.1 ? 7 : M < 534.13 ? 8 : M < 534.16 ? 9 : M < 534.24 ? 10 : M < 534.3 ? 11 : M < 535.01 ? 12 : M < 535.02 ? \"13+\" : M < 535.07 ? 15 : M < 535.11 ? 16 : M < 535.19 ? 17 : M < 536.05 ? 18 : M < 536.1 ? 19 : M < 537.01 ? 20 : M < 537.11 ? \"21+\" : M < 537.13 ? 23 : M < 537.18 ? 24 : M < 537.24 ? 25 : M < 537.36 ? 26 : _ != \"Blink\" ? \"27\" : \"28\");\n }\n _ && (_[1] += \" \" + (M += typeof M == \"number\" ? \".x\" : /[.+]/.test(M) ? \"\" : \"+\"));\n if (R == \"Safari\" && (!B || parseInt(B) > 45)) {\n B = M;\n } else if (R == \"Chrome\" && /\\bHeadlessChrome/i.test(e)) {\n P.unshift(\"headless\");\n }\n }\n if (R == \"Opera\" && (M = /\\bzbov|zvav$/.exec(T))) {\n R += \" \";\n P.unshift(\"desktop mode\");\n if (M == \"zvav\") {\n R += \"Mini\";\n B = null;\n } else {\n R += \"Mobile\";\n }\n T = T.replace(RegExp(\" *\" + M + \"$\"), \"\");\n } else if (R == \"Safari\" && /\\bChrome\\b/.exec(_ && _[1])) {\n P.unshift(\"desktop mode\");\n R = \"Chrome Mobile\";\n B = null;\n if (/\\bOS X\\b/.test(T)) {\n I = \"Apple\";\n T = \"iOS 4.3+\";\n } else {\n T = null;\n }\n } else if (/\\bSRWare Iron\\b/.test(R) && !B) {\n B = getVersion(\"Chrome\");\n }\n if (B && B.indexOf(M = /[\\d.]+$/.exec(T)) == 0 && e.indexOf(\"/\" + M + \"-\") > -1) {\n T = trim(T.replace(M, \"\"));\n }\n if (T && T.indexOf(R) != -1 && !RegExp(R + \" OS\").test(T)) {\n T = T.replace(RegExp(\" *\" + qualify(R) + \" *\"), \"\");\n }\n if (_ && !/\\b(?:Avant|Nook)\\b/.test(R) && (/Browser|Lunascape|Maxthon/.test(R) || R != \"Safari\" && /^iOS/.test(T) && /\\bSafari\\b/.test(_[1]) || /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(R) && _[1])) {\n (M = _[_.length - 1]) && P.push(M);\n }\n if (P.length) {\n P = [\n \"(\" + P.join(\"; \") + \")\"\n ];\n }\n if (I && A && A.indexOf(I) < 0) {\n P.push(\"on \" + I);\n }\n if (A) {\n P.push((/^on /.test(P[P.length - 1]) ? \"\" : \"on \") + A);\n }\n if (T) {\n M = / ([\\d.+]+)$/.exec(T);\n W = M && T.charAt(T.length - M[0].length - 1) == \"/\";\n T = {\n architecture: 32,\n family: M && !W ? T.replace(M[0], \"\") : T,\n version: M ? M[1] : null,\n toString: function() {\n var e = this.version;\n return this.family + (e && !W ? \" \" + e : \"\") + (this.architecture == 64 ? \" 64-bit\" : \"\");\n }\n };\n }\n if ((M = /\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(E)) && !/\\bi686\\b/i.test(E)) {\n if (T) {\n T.architecture = 64;\n T.family = T.family.replace(RegExp(\" *\" + M), \"\");\n }\n if (R && (/\\bWOW64\\b/i.test(e) || k && /\\w(?:86|32)$/.test(n.cpuClass || n.platform) && !/\\bWin64; x64\\b/i.test(e))) {\n P.unshift(\"32-bit\");\n }\n } else if (T && /^OS X/.test(T.family) && R == \"Chrome\" && parseFloat(B) >= 39) {\n T.architecture = 64;\n }\n e || (e = null);\n var F = {};\n F.description = e;\n F.layout = _ && _[0];\n F.manufacturer = I;\n F.name = R;\n F.prerelease = C;\n F.product = A;\n F.ua = e;\n F.version = R && B;\n F.os = T || {\n architecture: null,\n family: null,\n version: null,\n toString: function() {\n return \"null\";\n }\n };\n F.parse = parse;\n F.toString = toStringPlatform;\n if (F.version) {\n P.unshift(B);\n }\n if (F.name) {\n P.unshift(R);\n }\n if (T && R && !(T == String(T).split(\" \")[0] && (T == R.split(\" \")[0] || A))) {\n P.push(A ? \"(\" + T + \")\" : \"on \" + T);\n }\n if (P.length) {\n F.description = P.join(\" \");\n }\n return F;\n }\n var d = parse();\n if (n && o) {\n forOwn(d, function(e, i) {\n n[i] = e;\n });\n } else {\n r.platform = d;\n }\n }).call(this);\n }\n };\n var i = {};\n function __nccwpck_require__(t) {\n var r = i[t];\n if (r !== undefined) {\n return r.exports;\n }\n var a = i[t] = {\n id: t,\n loaded: false,\n exports: {}\n };\n var n = true;\n try {\n e[t].call(a.exports, a, a.exports, __nccwpck_require__);\n n = false;\n } finally{\n if (n) delete i[t];\n }\n a.loaded = true;\n return a.exports;\n }\n (()=>{\n __nccwpck_require__.nmd = (e)=>{\n e.paths = [];\n if (!e.children) e.children = [];\n return e;\n };\n })();\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var t = __nccwpck_require__(541);\n module.exports = t;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wbGF0Zm9ybS9wbGF0Zm9ybS5qcyIsIm1hcHBpbmdzIjoiOztBQUFDO0lBQUssSUFBSUEsSUFBRTtRQUFDLEtBQUksU0FBU0EsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUM7WUFBRUYsSUFBRUUsRUFBRUMsR0FBRyxDQUFDSDtZQUN6Qzs7Ozs7Q0FLQyxHQUFHO2dCQUFXO2dCQUFhLElBQUlFLElBQUU7b0JBQUNFLFVBQVM7b0JBQUtDLFFBQU87Z0JBQUk7Z0JBQUUsSUFBSUMsSUFBRUosQ0FBQyxDQUFDLFlBQWMsSUFBRUssVUFBUSxJQUFJO2dCQUFDLElBQUlDLElBQUVGO2dCQUFFLElBQUlHLElBQUVQLENBQUMsQ0FBQyxPQUFPRCxFQUFFLElBQUVBO2dCQUFFLElBQUlTLElBQUVSLENBQUMsQ0FBQyxTQUFTLElBQUVGLEtBQUcsQ0FBQ0EsRUFBRVcsUUFBUSxJQUFFWDtnQkFBRSxJQUFJWSxJQUFFSCxLQUFHQyxLQUFHLE9BQU9HLHFCQUFNQSxJQUFFLFlBQVVBLHFCQUFNQTtnQkFBQyxJQUFHRCxLQUFJQSxDQUFBQSxFQUFFQyxNQUFNLEtBQUdELEtBQUdBLEVBQUVMLE1BQU0sS0FBR0ssS0FBR0EsRUFBRUUsSUFBSSxLQUFHRixDQUFBQSxHQUFHO29CQUFDTixJQUFFTTtnQkFBQztnQkFBQyxJQUFJRyxJQUFFQyxLQUFLQyxHQUFHLENBQUMsR0FBRSxNQUFJO2dCQUFFLElBQUlDLElBQUU7Z0JBQVUsSUFBSUMsSUFBRSxJQUFJO2dCQUFDLElBQUlDLElBQUVDLE9BQU9DLFNBQVM7Z0JBQUMsSUFBSUMsSUFBRUgsRUFBRUksY0FBYztnQkFBQyxJQUFJQyxJQUFFTCxFQUFFTSxRQUFRO2dCQUFDLFNBQVNDLFdBQVczQixDQUFDO29CQUFFQSxJQUFFNEIsT0FBTzVCO29CQUFHLE9BQU9BLEVBQUU2QixNQUFNLENBQUMsR0FBR0MsV0FBVyxLQUFHOUIsRUFBRStCLEtBQUssQ0FB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O1lBQU1GLFNBQVEsQ0FBQztRQUFDO1FBQUUsSUFBSWhLLElBQUU7UUFBSyxJQUFHO1lBQUNULENBQUMsQ0FBQ0UsRUFBRSxDQUFDeUMsSUFBSSxDQUFDbkMsRUFBRWlLLE9BQU8sRUFBQ2pLLEdBQUVBLEVBQUVpSyxPQUFPLEVBQUNGO1lBQXFCOUosSUFBRTtRQUFLLFNBQVE7WUFBQyxJQUFHQSxHQUFFLE9BQU9SLENBQUMsQ0FBQ0MsRUFBRTtRQUFBO1FBQUNNLEVBQUVtSyxNQUFNLEdBQUM7UUFBSyxPQUFPbkssRUFBRWlLLE9BQU87SUFBQTtJQUFFO1FBQUtGLG9CQUFvQnBLLEdBQUcsR0FBQ0gsQ0FBQUE7WUFBSUEsRUFBRTRLLEtBQUssR0FBQyxFQUFFO1lBQUMsSUFBRyxDQUFDNUssRUFBRTZLLFFBQVEsRUFBQzdLLEVBQUU2SyxRQUFRLEdBQUMsRUFBRTtZQUFDLE9BQU83SztRQUFDO0lBQUM7SUFBSyxJQUFHLE9BQU91Syx3QkFBc0IsYUFBWUEsb0JBQW9CTyxFQUFFLEdBQUNDLFNBQVNBLEdBQUM7SUFBSSxJQUFJN0ssSUFBRXFLLG9CQUFvQjtJQUFLUyxPQUFPUCxPQUFPLEdBQUN2SztBQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BsYXRmb3JtL3BsYXRmb3JtLmpzPzdhZTAiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57dmFyIGU9ezU0MTpmdW5jdGlvbihlLGksdCl7ZT10Lm5tZChlKTtcbi8qIVxuICogUGxhdGZvcm0uanMgdjEuMy42XG4gKiBDb3B5cmlnaHQgMjAxNC0yMDIwIEJlbmphbWluIFRhblxuICogQ29weXJpZ2h0IDIwMTEtMjAxMyBKb2huLURhdmlkIERhbHRvblxuICogQXZhaWxhYmxlIHVuZGVyIE1JVCBsaWNlbnNlXG4gKi8oZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgdD17ZnVuY3Rpb246dHJ1ZSxvYmplY3Q6dHJ1ZX07dmFyIHI9dFt0eXBlb2Ygd2luZG93XSYmd2luZG93fHx0aGlzO3ZhciBhPXI7dmFyIG49dFt0eXBlb2YgaV0mJmk7dmFyIG89dFtcIm9iamVjdFwiXSYmZSYmIWUubm9kZVR5cGUmJmU7dmFyIGw9biYmbyYmdHlwZW9mIGdsb2JhbD09XCJvYmplY3RcIiYmZ2xvYmFsO2lmKGwmJihsLmdsb2JhbD09PWx8fGwud2luZG93PT09bHx8bC5zZWxmPT09bCkpe3I9bH12YXIgcz1NYXRoLnBvdygyLDUzKS0xO3ZhciBmPS9cXGJPcGVyYS87dmFyIGI9dGhpczt2YXIgYz1PYmplY3QucHJvdG90eXBlO3ZhciBwPWMuaGFzT3duUHJvcGVydHk7dmFyIHU9Yy50b1N0cmluZztmdW5jdGlvbiBjYXBpdGFsaXplKGUpe2U9U3RyaW5nKGUpO3JldHVybiBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9ZnVuY3Rpb24gY2xlYW51cE9TKGUsaSx0KXt2YXIgcj17XCIxMC4wXCI6XCIxMFwiLDYuNDpcIjEwIFRlY2huaWNhbCBQcmV2aWV3XCIsNi4zOlwiOC4xXCIsNi4yOlwiOFwiLDYuMTpcIlNlcnZlciAyMDA4IFIyIC8gN1wiLFwiNi4wXCI6XCJTZXJ2ZXIgMjAwOCAvIFZpc3RhXCIsNS4yOlwiU2VydmVyIDIwMDMgLyBYUCA2NC1iaXRcIiw1LjE6XCJYUFwiLDUuMDE6XCIyMDAwIFNQMVwiLFwiNS4wXCI6XCIyMDAwXCIsXCI0LjBcIjpcIk5UXCIsXCI0LjkwXCI6XCJNRVwifTtpZihpJiZ0JiYvXldpbi9pLnRlc3QoZSkmJiEvXldpbmRvd3MgUGhvbmUgL2kudGVzdChlKSYmKHI9clsvW1xcZC5dKyQvLmV4ZWMoZSldKSl7ZT1cIldpbmRvd3MgXCIrcn1lPVN0cmluZyhlKTtpZihpJiZ0KXtlPWUucmVwbGFjZShSZWdFeHAoaSxcImlcIiksdCl9ZT1mb3JtYXQoZS5yZXBsYWNlKC8gY2UkL2ksXCIgQ0VcIikucmVwbGFjZSgvXFxiaHB3L2ksXCJ3ZWJcIikucmVwbGFjZSgvXFxiTWFjaW50b3NoXFxiLyxcIk1hYyBPU1wiKS5yZXBsYWNlKC9fUG93ZXJQQ1xcYi9pLFwiIE9TXCIpLnJlcGxhY2UoL1xcYihPUyBYKSBbXiBcXGRdKy9pLFwiJDFcIikucmVwbGFjZSgvXFxiTWFjIChPUyBYKVxcYi8sXCIkMVwiKS5yZXBsYWNlKC9cXC8oXFxkKS8sXCIgJDFcIikucmVwbGFjZSgvXy9nLFwiLlwiKS5yZXBsYWNlKC8oPzogQmVQQ3xbIC5dKmZjWyBcXGQuXSspJC9pLFwiXCIpLnJlcGxhY2UoL1xcYng4NlxcLjY0XFxiL2dpLFwieDg2XzY0XCIpLnJlcGxhY2UoL1xcYihXaW5kb3dzIFBob25lKSBPU1xcYi8sXCIkMVwiKS5yZXBsYWNlKC9cXGIoQ2hyb21lIE9TIFxcdyspIFtcXGQuXStcXGIvLFwiJDFcIikuc3BsaXQoXCIgb24gXCIpWzBdKTtyZXR1cm4gZX1mdW5jdGlvbiBlYWNoKGUsaSl7dmFyIHQ9LTEscj1lP2UubGVuZ3RoOjA7aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI+LTEmJnI8PXMpe3doaWxlKCsrdDxyKXtpKGVbdF0sdCxlKX19ZWxzZXtmb3JPd24oZSxpKX19ZnVuY3Rpb24gZm9ybWF0KGUpe2U9dHJpbShlKTtyZXR1cm4vXig/OndlYk9TfGkoPzpPU3xQKSkvLnRlc3QoZSk/ZTpjYXBpdGFsaXplKGUpfWZ1bmN0aW9uIGZvck93bihlLGkpe2Zvcih2YXIgdCBpbiBlKXtpZihwLmNhbGwoZSx0KSl7aShlW3RdLHQsZSl9fX1mdW5jdGlvbiBnZXRDbGFzc09mKGUpe3JldHVybiBlPT1udWxsP2NhcGl0YWxpemUoZSk6dS5jYWxsKGUpLnNsaWNlKDgsLTEpfWZ1bmN0aW9uIGlzSG9zdFR5cGUoZSxpKXt2YXIgdD1lIT1udWxsP3R5cGVvZiBlW2ldOlwibnVtYmVyXCI7cmV0dXJuIS9eKD86Ym9vbGVhbnxudW1iZXJ8c3RyaW5nfHVuZGVmaW5lZCkkLy50ZXN0KHQpJiYodD09XCJvYmplY3RcIj8hIWVbaV06dHJ1ZSl9ZnVuY3Rpb24gcXVhbGlmeShlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoLyhbIC1dKSg/ISQpL2csXCIkMT9cIil9ZnVuY3Rpb24gcmVkdWNlKGUsaSl7dmFyIHQ9bnVsbDtlYWNoKGUsKGZ1bmN0aW9uKHIsYSl7dD1pKHQscixhLGUpfSkpO3JldHVybiB0fWZ1bmN0aW9uIHRyaW0oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKC9eICt8ICskL2csXCJcIil9ZnVuY3Rpb24gcGFyc2UoZSl7dmFyIGk9cjt2YXIgdD1lJiZ0eXBlb2YgZT09XCJvYmplY3RcIiYmZ2V0Q2xhc3NPZihlKSE9XCJTdHJpbmdcIjtpZih0KXtpPWU7ZT1udWxsfXZhciBuPWkubmF2aWdhdG9yfHx7fTt2YXIgbz1uLnVzZXJBZ2VudHx8XCJcIjtlfHwoZT1vKTt2YXIgbD10fHxiPT1hO3ZhciBzPXQ/ISFuLmxpa2VDaHJvbWU6L1xcYkNocm9tZVxcYi8udGVzdChlKSYmIS9pbnRlcm5hbHxcXG4vaS50ZXN0KHUudG9TdHJpbmcoKSk7dmFyIGM9XCJPYmplY3RcIixwPXQ/YzpcIlNjcmlwdEJyaWRnaW5nUHJveHlPYmplY3RcIixkPXQ/YzpcIkVudmlyb25tZW50XCIsUz10JiZpLmphdmE/XCJKYXZhUGFja2FnZVwiOmdldENsYXNzT2YoaS5qYXZhKSx4PXQ/YzpcIlJ1bnRpbWVPYmplY3RcIjt2YXIgbT0vXFxiSmF2YS8udGVzdChTKSYmaS5qYXZhO3ZhciBnPW0mJmdldENsYXNzT2YoaS5lbnZpcm9ubWVudCk9PWQ7dmFyIGg9bT9cImFcIjpcIs6xXCI7dmFyIHY9bT9cImJcIjpcIs6yXCI7dmFyIE89aS5kb2N1bWVudHx8e307dmFyIHk9aS5vcGVyYW1pbml8fGkub3BlcmE7dmFyIHc9Zi50ZXN0KHc9dCYmeT95W1wiW1tDbGFzc11dXCJdOmdldENsYXNzT2YoeSkpP3c6eT1udWxsO3ZhciBNO3ZhciBFPWU7dmFyIFA9W107dmFyIEM9bnVsbDt2YXIgaz1lPT1vO3ZhciBCPWsmJnkmJnR5cGVvZiB5LnZlcnNpb249PVwiZnVuY3Rpb25cIiYmeS52ZXJzaW9uKCk7dmFyIFc7dmFyIF89Z2V0TGF5b3V0KFt7bGFiZWw6XCJFZGdlSFRNTFwiLHBhdHRlcm46XCJFZGdlXCJ9LFwiVHJpZGVudFwiLHtsYWJlbDpcIldlYktpdFwiLHBhdHRlcm46XCJBcHBsZVdlYktpdFwifSxcImlDYWJcIixcIlByZXN0b1wiLFwiTmV0RnJvbnRcIixcIlRhc21hblwiLFwiS0hUTUxcIixcIkdlY2tvXCJdKTt2YXIgUj1nZXROYW1lKFtcIkFkb2JlIEFJUlwiLFwiQXJvcmFcIixcIkF2YW50IEJyb3dzZXJcIixcIkJyZWFjaFwiLFwiQ2FtaW5vXCIsXCJFbGVjdHJvblwiLFwiRXBpcGhhbnlcIixcIkZlbm5lY1wiLFwiRmxvY2tcIixcIkdhbGVvblwiLFwiR3JlZW5Ccm93c2VyXCIsXCJpQ2FiXCIsXCJJY2V3ZWFzZWxcIixcIkstTWVsZW9uXCIsXCJLb25xdWVyb3JcIixcIkx1bmFzY2FwZVwiLFwiTWF4dGhvblwiLHtsYWJlbDpcIk1pY3Jvc29mdCBFZGdlXCIscGF0dGVybjpcIig/OkVkZ2V8RWRnfEVkZ0F8RWRnaU9TKVwifSxcIk1pZG9yaVwiLFwiTm9vayBCcm93c2VyXCIsXCJQYWxlTW9vblwiLFwiUGhhbnRvbUpTXCIsXCJSYXZlblwiLFwiUmVrb25xXCIsXCJSb2NrTWVsdFwiLHtsYWJlbDpcIlNhbXN1bmcgSW50ZXJuZXRcIixwYXR0ZXJuOlwiU2Ftc3VuZ0Jyb3dzZXJcIn0sXCJTZWFNb25rZXlcIix7bGFiZWw6XCJTaWxrXCIscGF0dGVybjpcIig/OkNsb3VkOXxTaWxrLUFjY2VsZXJhdGVkKVwifSxcIlNsZWlwbmlyXCIsXCJTbGltQnJvd3NlclwiLHtsYWJlbDpcIlNSV2FyZSBJcm9uXCIscGF0dGVybjpcIklyb25cIn0sXCJTdW5yaXNlXCIsXCJTd2lmdGZveFwiLFwiVml2YWxkaVwiLFwiV2F0ZXJmb3hcIixcIldlYlBvc2l0aXZlXCIse2xhYmVsOlwiWWFuZGV4IEJyb3dzZXJcIixwYXR0ZXJuOlwiWWFCcm93c2VyXCJ9LHtsYWJlbDpcIlVDIEJyb3dzZXJcIixwYXR0ZXJuOlwiVUNCcm93c2VyXCJ9LFwiT3BlcmEgTWluaVwiLHtsYWJlbDpcIk9wZXJhIE1pbmlcIixwYXR0ZXJuOlwiT1BpT1NcIn0sXCJPcGVyYVwiLHtsYWJlbDpcIk9wZXJhXCIscGF0dGVybjpcIk9QUlwifSxcIkNocm9taXVtXCIsXCJDaHJvbWVcIix7bGFiZWw6XCJDaHJvbWVcIixwYXR0ZXJuOlwiKD86SGVhZGxlc3NDaHJvbWUpXCJ9LHtsYWJlbDpcIkNocm9tZSBNb2JpbGVcIixwYXR0ZXJuOlwiKD86Q3JpT1N8Q3JNbylcIn0se2xhYmVsOlwiRmlyZWZveFwiLHBhdHRlcm46XCIoPzpGaXJlZm94fE1pbmVmaWVsZClcIn0se2xhYmVsOlwiRmlyZWZveCBmb3IgaU9TXCIscGF0dGVybjpcIkZ4aU9TXCJ9LHtsYWJlbDpcIklFXCIscGF0dGVybjpcIklFTW9iaWxlXCJ9LHtsYWJlbDpcIklFXCIscGF0dGVybjpcIk1TSUVcIn0sXCJTYWZhcmlcIl0pO3ZhciBBPWdldFByb2R1Y3QoW3tsYWJlbDpcIkJsYWNrQmVycnlcIixwYXR0ZXJuOlwiQkIxMFwifSxcIkJsYWNrQmVycnlcIix7bGFiZWw6XCJHYWxheHkgU1wiLHBhdHRlcm46XCJHVC1JOTAwMFwifSx7bGFiZWw6XCJHYWxheHkgUzJcIixwYXR0ZXJuOlwiR1QtSTkxMDBcIn0se2xhYmVsOlwiR2FsYXh5IFMzXCIscGF0dGVybjpcIkdULUk5MzAwXCJ9LHtsYWJlbDpcIkdhbGF4eSBTNFwiLHBhdHRlcm46XCJHVC1JOTUwMFwifSx7bGFiZWw6XCJHYWxheHkgUzVcIixwYXR0ZXJuOlwiU00tRzkwMFwifSx7bGFiZWw6XCJHYWxheHkgUzZcIixwYXR0ZXJuOlwiU00tRzkyMFwifSx7bGFiZWw6XCJHYWxheHkgUzYgRWRnZVwiLHBhdHRlcm46XCJTTS1HOTI1XCJ9LHtsYWJlbDpcIkdhbGF4eSBTN1wiLHBhdHRlcm46XCJTTS1HOTMwXCJ9LHtsYWJlbDpcIkdhbGF4eSBTNyBFZGdlXCIscGF0dGVybjpcIlNNLUc5MzVcIn0sXCJHb29nbGUgVFZcIixcIkx1bWlhXCIsXCJpUGFkXCIsXCJpUG9kXCIsXCJpUGhvbmVcIixcIktpbmRsZVwiLHtsYWJlbDpcIktpbmRsZSBGaXJlXCIscGF0dGVybjpcIig/OkNsb3VkOXxTaWxrLUFjY2VsZXJhdGVkKVwifSxcIk5leHVzXCIsXCJOb29rXCIsXCJQbGF5Qm9va1wiLFwiUGxheVN0YXRpb24gVml0YVwiLFwiUGxheVN0YXRpb25cIixcIlRvdWNoUGFkXCIsXCJUcmFuc2Zvcm1lclwiLHtsYWJlbDpcIldpaSBVXCIscGF0dGVybjpcIldpaVVcIn0sXCJXaWlcIixcIlhib3ggT25lXCIse2xhYmVsOlwiWGJveCAzNjBcIixwYXR0ZXJuOlwiWGJveFwifSxcIlhvb21cIl0pO3ZhciBJPWdldE1hbnVmYWN0dXJlcih7QXBwbGU6e2lQYWQ6MSxpUGhvbmU6MSxpUG9kOjF9LEFsY2F0ZWw6e30sQXJjaG9zOnt9LEFtYXpvbjp7S2luZGxlOjEsXCJLaW5kbGUgRmlyZVwiOjF9LEFzdXM6e1RyYW5zZm9ybWVyOjF9LFwiQmFybmVzICYgTm9ibGVcIjp7Tm9vazoxfSxCbGFja0JlcnJ5OntQbGF5Qm9vazoxfSxHb29nbGU6e1wiR29vZ2xlIFRWXCI6MSxOZXh1czoxfSxIUDp7VG91Y2hQYWQ6MX0sSFRDOnt9LEh1YXdlaTp7fSxMZW5vdm86e30sTEc6e30sTWljcm9zb2Z0OntYYm94OjEsXCJYYm94IE9uZVwiOjF9LE1vdG9yb2xhOntYb29tOjF9LE5pbnRlbmRvOntcIldpaSBVXCI6MSxXaWk6MX0sTm9raWE6e0x1bWlhOjF9LE9wcG86e30sU2Ftc3VuZzp7XCJHYWxheHkgU1wiOjEsXCJHYWxheHkgUzJcIjoxLFwiR2FsYXh5IFMzXCI6MSxcIkdhbGF4eSBTNFwiOjF9LFNvbnk6e1BsYXlTdGF0aW9uOjEsXCJQbGF5U3RhdGlvbiBWaXRhXCI6MX0sWGlhb21pOntNaToxLFJlZG1pOjF9fSk7dmFyIFQ9Z2V0T1MoW1wiV2luZG93cyBQaG9uZVwiLFwiS2FpT1NcIixcIkFuZHJvaWRcIixcIkNlbnRPU1wiLHtsYWJlbDpcIkNocm9tZSBPU1wiLHBhdHRlcm46XCJDck9TXCJ9LFwiRGViaWFuXCIse2xhYmVsOlwiRHJhZ29uRmx5IEJTRFwiLHBhdHRlcm46XCJEcmFnb25GbHlcIn0sXCJGZWRvcmFcIixcIkZyZWVCU0RcIixcIkdlbnRvb1wiLFwiSGFpa3VcIixcIkt1YnVudHVcIixcIkxpbnV4IE1pbnRcIixcIk9wZW5CU0RcIixcIlJlZCBIYXRcIixcIlN1U0VcIixcIlVidW50dVwiLFwiWHVidW50dVwiLFwiQ3lnd2luXCIsXCJTeW1iaWFuIE9TXCIsXCJocHdPU1wiLFwid2ViT1MgXCIsXCJ3ZWJPU1wiLFwiVGFibGV0IE9TXCIsXCJUaXplblwiLFwiTGludXhcIixcIk1hYyBPUyBYXCIsXCJNYWNpbnRvc2hcIixcIk1hY1wiLFwiV2luZG93cyA5ODtcIixcIldpbmRvd3MgXCJdKTtmdW5jdGlvbiBnZXRMYXlvdXQoaSl7cmV0dXJuIHJlZHVjZShpLChmdW5jdGlvbihpLHQpe3JldHVybiBpfHxSZWdFeHAoXCJcXFxcYlwiKyh0LnBhdHRlcm58fHF1YWxpZnkodCkpK1wiXFxcXGJcIixcImlcIikuZXhlYyhlKSYmKHQubGFiZWx8fHQpfSkpfWZ1bmN0aW9uIGdldE1hbnVmYWN0dXJlcihpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCxyKXtyZXR1cm4gaXx8KHRbQV18fHRbL15bYS16XSsoPzogK1thLXpdK1xcYikqL2kuZXhlYyhBKV18fFJlZ0V4cChcIlxcXFxiXCIrcXVhbGlmeShyKStcIig/OlxcXFxifFxcXFx3KlxcXFxkKVwiLFwiaVwiKS5leGVjKGUpKSYmcn0pKX1mdW5jdGlvbiBnZXROYW1lKGkpe3JldHVybiByZWR1Y2UoaSwoZnVuY3Rpb24oaSx0KXtyZXR1cm4gaXx8UmVnRXhwKFwiXFxcXGJcIisodC5wYXR0ZXJufHxxdWFsaWZ5KHQpKStcIlxcXFxiXCIsXCJpXCIpLmV4ZWMoZSkmJih0LmxhYmVsfHx0KX0pKX1mdW5jdGlvbiBnZXRPUyhpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCl7dmFyIHI9dC5wYXR0ZXJufHxxdWFsaWZ5KHQpO2lmKCFpJiYoaT1SZWdFeHAoXCJcXFxcYlwiK3IrXCIoPzovW1xcXFxkLl0rfFsgXFxcXHcuXSopXCIsXCJpXCIpLmV4ZWMoZSkpKXtpPWNsZWFudXBPUyhpLHIsdC5sYWJlbHx8dCl9cmV0dXJuIGl9KSl9ZnVuY3Rpb24gZ2V0UHJvZHVjdChpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCl7dmFyIHI9dC5wYXR0ZXJufHxxdWFsaWZ5KHQpO2lmKCFpJiYoaT1SZWdFeHAoXCJcXFxcYlwiK3IrXCIgKlxcXFxkK1suXFxcXHdfXSpcIixcImlcIikuZXhlYyhlKXx8UmVnRXhwKFwiXFxcXGJcIityK1wiICpcXFxcdystW1xcXFx3XSpcIixcImlcIikuZXhlYyhlKXx8UmVnRXhwKFwiXFxcXGJcIityK1wiKD86OyAqKD86W2Etel0rW18tXSk/W2Etel0rXFxcXGQrfFteICgpOy1dKilcIixcImlcIikuZXhlYyhlKSkpe2lmKChpPVN0cmluZyh0LmxhYmVsJiYhUmVnRXhwKHIsXCJpXCIpLnRlc3QodC5sYWJlbCk/dC5sYWJlbDppKS5zcGxpdChcIi9cIikpWzFdJiYhL1tcXGQuXSsvLnRlc3QoaVswXSkpe2lbMF0rPVwiIFwiK2lbMV19dD10LmxhYmVsfHx0O2k9Zm9ybWF0KGlbMF0ucmVwbGFjZShSZWdFeHAocixcImlcIiksdCkucmVwbGFjZShSZWdFeHAoXCI7ICooPzpcIit0K1wiW18tXSk/XCIsXCJpXCIpLFwiIFwiKS5yZXBsYWNlKFJlZ0V4cChcIihcIit0K1wiKVstXy5dPyhcXFxcdylcIixcImlcIiksXCIkMSAkMlwiKSl9cmV0dXJuIGl9KSl9ZnVuY3Rpb24gZ2V0VmVyc2lvbihpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCl7cmV0dXJuIGl8fChSZWdFeHAodCtcIig/Oi1bXFxcXGQuXSsvfCg/OiBmb3IgW1xcXFx3LV0rKT9bIC8tXSkoW1xcXFxkLl0rW14gKCk7L18tXSopXCIsXCJpXCIpLmV4ZWMoZSl8fDApWzFdfHxudWxsfSkpfWZ1bmN0aW9uIHRvU3RyaW5nUGxhdGZvcm0oKXtyZXR1cm4gdGhpcy5kZXNjcmlwdGlvbnx8XCJcIn1fJiYoXz1bX10pO2lmKC9cXGJBbmRyb2lkXFxiLy50ZXN0KFQpJiYhQSYmKE09L1xcYkFuZHJvaWRbXjtdKjsoLio/KSg/OkJ1aWxkfFxcKSBBcHBsZVdlYktpdClcXGIvaS5leGVjKGUpKSl7QT10cmltKE1bMV0pLnJlcGxhY2UoL15bYS16XXsyfS1bYS16XXsyfTtcXHMqL2ksXCJcIil8fG51bGx9aWYoSSYmIUEpe0E9Z2V0UHJvZHVjdChbSV0pfWVsc2UgaWYoSSYmQSl7QT1BLnJlcGxhY2UoUmVnRXhwKFwiXihcIitxdWFsaWZ5KEkpK1wiKVstXy5cXFxcc11cIixcImlcIiksSStcIiBcIikucmVwbGFjZShSZWdFeHAoXCJeKFwiK3F1YWxpZnkoSSkrXCIpWy1fLl0/KFxcXFx3KVwiLFwiaVwiKSxJK1wiICQyXCIpfWlmKE09L1xcYkdvb2dsZSBUVlxcYi8uZXhlYyhBKSl7QT1NWzBdfWlmKC9cXGJTaW11bGF0b3JcXGIvaS50ZXN0KGUpKXtBPShBP0ErXCIgXCI6XCJcIikrXCJTaW11bGF0b3JcIn1pZihSPT1cIk9wZXJhIE1pbmlcIiYmL1xcYk9QaU9TXFxiLy50ZXN0KGUpKXtQLnB1c2goXCJydW5uaW5nIGluIFR1cmJvL1VuY29tcHJlc3NlZCBtb2RlXCIpfWlmKFI9PVwiSUVcIiYmL1xcYmxpa2UgaVBob25lIE9TXFxiLy50ZXN0KGUpKXtNPXBhcnNlKGUucmVwbGFjZSgvbGlrZSBpUGhvbmUgT1MvLFwiXCIpKTtJPU0ubWFudWZhY3R1cmVyO0E9TS5wcm9kdWN0fWVsc2UgaWYoL15pUC8udGVzdChBKSl7Unx8KFI9XCJTYWZhcmlcIik7VD1cImlPU1wiKygoTT0vIE9TIChbXFxkX10rKS9pLmV4ZWMoZSkpP1wiIFwiK01bMV0ucmVwbGFjZSgvXy9nLFwiLlwiKTpcIlwiKX1lbHNlIGlmKFI9PVwiS29ucXVlcm9yXCImJi9eTGludXhcXGIvaS50ZXN0KFQpKXtUPVwiS3VidW50dVwifWVsc2UgaWYoSSYmSSE9XCJHb29nbGVcIiYmKC9DaHJvbWUvLnRlc3QoUikmJiEvXFxiTW9iaWxlIFNhZmFyaVxcYi9pLnRlc3QoZSl8fC9cXGJWaXRhXFxiLy50ZXN0KEEpKXx8L1xcYkFuZHJvaWRcXGIvLnRlc3QoVCkmJi9eQ2hyb21lLy50ZXN0KFIpJiYvXFxiVmVyc2lvblxcLy9pLnRlc3QoZSkpe1I9XCJBbmRyb2lkIEJyb3dzZXJcIjtUPS9cXGJBbmRyb2lkXFxiLy50ZXN0KFQpP1Q6XCJBbmRyb2lkXCJ9ZWxzZSBpZihSPT1cIlNpbGtcIil7aWYoIS9cXGJNb2JpL2kudGVzdChlKSl7VD1cIkFuZHJvaWRcIjtQLnVuc2hpZnQoXCJkZXNrdG9wIG1vZGVcIil9aWYoL0FjY2VsZXJhdGVkICo9ICp0cnVlL2kudGVzdChlKSl7UC51bnNoaWZ0KFwiYWNjZWxlcmF0ZWRcIil9fWVsc2UgaWYoUj09XCJVQyBCcm93c2VyXCImJi9cXGJVQ1dFQlxcYi8udGVzdChlKSl7UC5wdXNoKFwic3BlZWQgbW9kZVwiKX1lbHNlIGlmKFI9PVwiUGFsZU1vb25cIiYmKE09L1xcYkZpcmVmb3hcXC8oW1xcZC5dKylcXGIvLmV4ZWMoZSkpKXtQLnB1c2goXCJpZGVudGlmeWluZyBhcyBGaXJlZm94IFwiK01bMV0pfWVsc2UgaWYoUj09XCJGaXJlZm94XCImJihNPS9cXGIoTW9iaWxlfFRhYmxldHxUVilcXGIvaS5leGVjKGUpKSl7VHx8KFQ9XCJGaXJlZm94IE9TXCIpO0F8fChBPU1bMV0pfWVsc2UgaWYoIVJ8fChNPSEvXFxiTWluZWZpZWxkXFxiL2kudGVzdChlKSYmL1xcYig/OkZpcmVmb3h8U2FmYXJpKVxcYi8uZXhlYyhSKSkpe2lmKFImJiFBJiYvW1xcLyxdfF5bXihdKz9cXCkvLnRlc3QoZS5zbGljZShlLmluZGV4T2YoTStcIi9cIikrOCkpKXtSPW51bGx9aWYoKE09QXx8SXx8VCkmJihBfHxJfHwvXFxiKD86QW5kcm9pZHxTeW1iaWFuIE9TfFRhYmxldCBPU3x3ZWJPUylcXGIvLnRlc3QoVCkpKXtSPS9bYS16XSsoPzogSGF0KT8vaS5leGVjKC9cXGJBbmRyb2lkXFxiLy50ZXN0KFQpP1Q6TSkrXCIgQnJvd3NlclwifX1lbHNlIGlmKFI9PVwiRWxlY3Ryb25cIiYmKE09KC9cXGJDaHJvbWVcXC8oW1xcZC5dKylcXGIvLmV4ZWMoZSl8fDApWzFdKSl7UC5wdXNoKFwiQ2hyb21pdW0gXCIrTSl9aWYoIUIpe0I9Z2V0VmVyc2lvbihbXCIoPzpDbG91ZDl8Q3JpT1N8Q3JNb3xFZGdlfEVkZ3xFZGdBfEVkZ2lPU3xGeGlPU3xIZWFkbGVzc0Nocm9tZXxJRU1vYmlsZXxJcm9ufE9wZXJhID9NaW5pfE9QaU9TfE9QUnxSYXZlbnxTYW1zdW5nQnJvd3NlcnxTaWxrKD8hL1tcXFxcZC5dKyQpfFVDQnJvd3NlcnxZYUJyb3dzZXIpXCIsXCJWZXJzaW9uXCIscXVhbGlmeShSKSxcIig/OkZpcmVmb3h8TWluZWZpZWxkfE5ldEZyb250KVwiXSl9aWYoTT1fPT1cImlDYWJcIiYmcGFyc2VGbG9hdChCKT4zJiZcIldlYktpdFwifHwvXFxiT3BlcmFcXGIvLnRlc3QoUikmJigvXFxiT1BSXFxiLy50ZXN0KGUpP1wiQmxpbmtcIjpcIlByZXN0b1wiKXx8L1xcYig/Ok1pZG9yaXxOb29rfFNhZmFyaSlcXGIvaS50ZXN0KGUpJiYhL14oPzpUcmlkZW50fEVkZ2VIVE1MKSQvLnRlc3QoXykmJlwiV2ViS2l0XCJ8fCFfJiYvXFxiTVNJRVxcYi9pLnRlc3QoZSkmJihUPT1cIk1hYyBPU1wiP1wiVGFzbWFuXCI6XCJUcmlkZW50XCIpfHxfPT1cIldlYktpdFwiJiYvXFxiUGxheVN0YXRpb25cXGIoPyEgVml0YVxcYikvaS50ZXN0KFIpJiZcIk5ldEZyb250XCIpe189W01dfWlmKFI9PVwiSUVcIiYmKE09KC87ICooPzpYQkxXUHxadW5lV1ApKFxcZCspL2kuZXhlYyhlKXx8MClbMV0pKXtSKz1cIiBNb2JpbGVcIjtUPVwiV2luZG93cyBQaG9uZSBcIisoL1xcKyQvLnRlc3QoTSk/TTpNK1wiLnhcIik7UC51bnNoaWZ0KFwiZGVza3RvcCBtb2RlXCIpfWVsc2UgaWYoL1xcYldQRGVza3RvcFxcYi9pLnRlc3QoZSkpe1I9XCJJRSBNb2JpbGVcIjtUPVwiV2luZG93cyBQaG9uZSA4LnhcIjtQLnVuc2hpZnQoXCJkZXNrdG9wIG1vZGVcIik7Qnx8KEI9KC9cXGJydjooW1xcZC5dKykvLmV4ZWMoZSl8fDApWzFdKX1lbHNlIGlmKFIhPVwiSUVcIiYmXz09XCJUcmlkZW50XCImJihNPS9cXGJydjooW1xcZC5dKykvLmV4ZWMoZSkpKXtpZihSKXtQLnB1c2goXCJpZGVudGlmeWluZyBhcyBcIitSKyhCP1wiIFwiK0I6XCJcIikpfVI9XCJJRVwiO0I9TVsxXX1pZihrKXtpZihpc0hvc3RUeXBlKGksXCJnbG9iYWxcIikpe2lmKG0pe009bS5sYW5nLlN5c3RlbTtFPU0uZ2V0UHJvcGVydHkoXCJvcy5hcmNoXCIpO1Q9VHx8TS5nZXRQcm9wZXJ0eShcIm9zLm5hbWVcIikrXCIgXCIrTS5nZXRQcm9wZXJ0eShcIm9zLnZlcnNpb25cIil9aWYoZyl7dHJ5e0I9aS5yZXF1aXJlKFwicmluZ28vZW5naW5lXCIpLnZlcnNpb24uam9pbihcIi5cIik7Uj1cIlJpbmdvSlNcIn1jYXRjaChlKXtpZigoTT1pLnN5c3RlbSkmJk0uZ2xvYmFsLnN5c3RlbT09aS5zeXN0ZW0pe1I9XCJOYXJ3aGFsXCI7VHx8KFQ9TVswXS5vc3x8bnVsbCl9fWlmKCFSKXtSPVwiUmhpbm9cIn19ZWxzZSBpZih0eXBlb2YgaS5wcm9jZXNzPT1cIm9iamVjdFwiJiYhaS5wcm9jZXNzLmJyb3dzZXImJihNPWkucHJvY2Vzcykpe2lmKHR5cGVvZiBNLnZlcnNpb25zPT1cIm9iamVjdFwiKXtpZih0eXBlb2YgTS52ZXJzaW9ucy5lbGVjdHJvbj09XCJzdHJpbmdcIil7UC5wdXNoKFwiTm9kZSBcIitNLnZlcnNpb25zLm5vZGUpO1I9XCJFbGVjdHJvblwiO0I9TS52ZXJzaW9ucy5lbGVjdHJvbn1lbHNlIGlmKHR5cGVvZiBNLnZlcnNpb25zLm53PT1cInN0cmluZ1wiKXtQLnB1c2goXCJDaHJvbWl1bSBcIitCLFwiTm9kZSBcIitNLnZlcnNpb25zLm5vZGUpO1I9XCJOVy5qc1wiO0I9TS52ZXJzaW9ucy5ud319aWYoIVIpe1I9XCJOb2RlLmpzXCI7RT1NLmFyY2g7VD1NLnBsYXRmb3JtO0I9L1tcXGQuXSsvLmV4ZWMoTS52ZXJzaW9uKTtCPUI/QlswXTpudWxsfX19ZWxzZSBpZihnZXRDbGFzc09mKE09aS5ydW50aW1lKT09cCl7Uj1cIkFkb2JlIEFJUlwiO1Q9TS5mbGFzaC5zeXN0ZW0uQ2FwYWJpbGl0aWVzLm9zfWVsc2UgaWYoZ2V0Q2xhc3NPZihNPWkucGhhbnRvbSk9PXgpe1I9XCJQaGFudG9tSlNcIjtCPShNPU0udmVyc2lvbnx8bnVsbCkmJk0ubWFqb3IrXCIuXCIrTS5taW5vcitcIi5cIitNLnBhdGNofWVsc2UgaWYodHlwZW9mIE8uZG9jdW1lbnRNb2RlPT1cIm51bWJlclwiJiYoTT0vXFxiVHJpZGVudFxcLyhcXGQrKS9pLmV4ZWMoZSkpKXtCPVtCLE8uZG9jdW1lbnRNb2RlXTtpZigoTT0rTVsxXSs0KSE9QlsxXSl7UC5wdXNoKFwiSUUgXCIrQlsxXStcIiBtb2RlXCIpO18mJihfWzFdPVwiXCIpO0JbMV09TX1CPVI9PVwiSUVcIj9TdHJpbmcoQlsxXS50b0ZpeGVkKDEpKTpCWzBdfWVsc2UgaWYodHlwZW9mIE8uZG9jdW1lbnRNb2RlPT1cIm51bWJlclwiJiYvXig/OkNocm9tZXxGaXJlZm94KVxcYi8udGVzdChSKSl7UC5wdXNoKFwibWFza2luZyBhcyBcIitSK1wiIFwiK0IpO1I9XCJJRVwiO0I9XCIxMS4wXCI7Xz1bXCJUcmlkZW50XCJdO1Q9XCJXaW5kb3dzXCJ9VD1UJiZmb3JtYXQoVCl9aWYoQiYmKE09Lyg/OlthYl18ZHB8cHJlfFthYl1cXGQrcHJlKSg/OlxcZCtcXCs/KT8kL2kuZXhlYyhCKXx8Lyg/OmFscGhhfGJldGEpKD86ID9cXGQpPy9pLmV4ZWMoZStcIjtcIisoayYmbi5hcHBNaW5vclZlcnNpb24pKXx8L1xcYk1pbmVmaWVsZFxcYi9pLnRlc3QoZSkmJlwiYVwiKSl7Qz0vYi9pLnRlc3QoTSk/XCJiZXRhXCI6XCJhbHBoYVwiO0I9Qi5yZXBsYWNlKFJlZ0V4cChNK1wiXFxcXCs/JFwiKSxcIlwiKSsoQz09XCJiZXRhXCI/djpoKSsoL1xcZCtcXCs/Ly5leGVjKE0pfHxcIlwiKX1pZihSPT1cIkZlbm5lY1wifHxSPT1cIkZpcmVmb3hcIiYmL1xcYig/OkFuZHJvaWR8RmlyZWZveCBPU3xLYWlPUylcXGIvLnRlc3QoVCkpe1I9XCJGaXJlZm94IE1vYmlsZVwifWVsc2UgaWYoUj09XCJNYXh0aG9uXCImJkIpe0I9Qi5yZXBsYWNlKC9cXC5bXFxkLl0rLyxcIi54XCIpfWVsc2UgaWYoL1xcYlhib3hcXGIvaS50ZXN0KEEpKXtpZihBPT1cIlhib3ggMzYwXCIpe1Q9bnVsbH1pZihBPT1cIlhib3ggMzYwXCImJi9cXGJJRU1vYmlsZVxcYi8udGVzdChlKSl7UC51bnNoaWZ0KFwibW9iaWxlIG1vZGVcIil9fWVsc2UgaWYoKC9eKD86Q2hyb21lfElFfE9wZXJhKSQvLnRlc3QoUil8fFImJiFBJiYhL0Jyb3dzZXJ8TW9iaS8udGVzdChSKSkmJihUPT1cIldpbmRvd3MgQ0VcInx8L01vYmkvaS50ZXN0KGUpKSl7Uis9XCIgTW9iaWxlXCJ9ZWxzZSBpZihSPT1cIklFXCImJmspe3RyeXtpZihpLmV4dGVybmFsPT09bnVsbCl7UC51bnNoaWZ0KFwicGxhdGZvcm0gcHJldmlld1wiKX19Y2F0Y2goZSl7UC51bnNoaWZ0KFwiZW1iZWRkZWRcIil9fWVsc2UgaWYoKC9cXGJCbGFja0JlcnJ5XFxiLy50ZXN0KEEpfHwvXFxiQkIxMFxcYi8udGVzdChlKSkmJihNPShSZWdFeHAoQS5yZXBsYWNlKC8gKy9nLFwiICpcIikrXCIvKFsuXFxcXGRdKylcIixcImlcIikuZXhlYyhlKXx8MClbMV18fEIpKXtNPVtNLC9CQjEwLy50ZXN0KGUpXTtUPShNWzFdPyhBPW51bGwsST1cIkJsYWNrQmVycnlcIik6XCJEZXZpY2UgU29mdHdhcmVcIikrXCIgXCIrTVswXTtCPW51bGx9ZWxzZSBpZih0aGlzIT1mb3JPd24mJkEhPVwiV2lpXCImJihrJiZ5fHwvT3BlcmEvLnRlc3QoUikmJi9cXGIoPzpNU0lFfEZpcmVmb3gpXFxiL2kudGVzdChlKXx8Uj09XCJGaXJlZm94XCImJi9cXGJPUyBYICg/OlxcZCtcXC4pezIsfS8udGVzdChUKXx8Uj09XCJJRVwiJiYoVCYmIS9eV2luLy50ZXN0KFQpJiZCPjUuNXx8L1xcYldpbmRvd3MgWFBcXGIvLnRlc3QoVCkmJkI+OHx8Qj09OCYmIS9cXGJUcmlkZW50XFxiLy50ZXN0KGUpKSkmJiFmLnRlc3QoTT1wYXJzZS5jYWxsKGZvck93bixlLnJlcGxhY2UoZixcIlwiKStcIjtcIikpJiZNLm5hbWUpe009XCJpbmcgYXMgXCIrTS5uYW1lKygoTT1NLnZlcnNpb24pP1wiIFwiK006XCJcIik7aWYoZi50ZXN0KFIpKXtpZigvXFxiSUVcXGIvLnRlc3QoTSkmJlQ9PVwiTWFjIE9TXCIpe1Q9bnVsbH1NPVwiaWRlbnRpZnlcIitNfWVsc2V7TT1cIm1hc2tcIitNO2lmKHcpe1I9Zm9ybWF0KHcucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZyxcIiQxICQyXCIpKX1lbHNle1I9XCJPcGVyYVwifWlmKC9cXGJJRVxcYi8udGVzdChNKSl7VD1udWxsfWlmKCFrKXtCPW51bGx9fV89W1wiUHJlc3RvXCJdO1AucHVzaChNKX1pZihNPSgvXFxiQXBwbGVXZWJLaXRcXC8oW1xcZC5dK1xcKz8pL2kuZXhlYyhlKXx8MClbMV0pe009W3BhcnNlRmxvYXQoTS5yZXBsYWNlKC9cXC4oXFxkKSQvLFwiLjAkMVwiKSksTV07aWYoUj09XCJTYWZhcmlcIiYmTVsxXS5zbGljZSgtMSk9PVwiK1wiKXtSPVwiV2ViS2l0IE5pZ2h0bHlcIjtDPVwiYWxwaGFcIjtCPU1bMV0uc2xpY2UoMCwtMSl9ZWxzZSBpZihCPT1NWzFdfHxCPT0oTVsyXT0oL1xcYlNhZmFyaVxcLyhbXFxkLl0rXFwrPykvaS5leGVjKGUpfHwwKVsxXSkpe0I9bnVsbH1NWzFdPSgvXFxiKD86SGVhZGxlc3MpP0Nocm9tZVxcLyhbXFxkLl0rKS9pLmV4ZWMoZSl8fDApWzFdO2lmKE1bMF09PTUzNy4zNiYmTVsyXT09NTM3LjM2JiZwYXJzZUZsb2F0KE1bMV0pPj0yOCYmXz09XCJXZWJLaXRcIil7Xz1bXCJCbGlua1wiXX1pZigha3x8IXMmJiFNWzFdKXtfJiYoX1sxXT1cImxpa2UgU2FmYXJpXCIpO009KE09TVswXSxNPDQwMD8xOk08NTAwPzI6TTw1MjY/MzpNPDUzMz80Ok08NTM0P1wiNCtcIjpNPDUzNT81Ok08NTM3PzY6TTw1Mzg/NzpNPDYwMT84Ok08NjAyPzk6TTw2MDQ/MTA6TTw2MDY/MTE6TTw2MDg/MTI6XCIxMlwiKX1lbHNle18mJihfWzFdPVwibGlrZSBDaHJvbWVcIik7TT1NWzFdfHwoTT1NWzBdLE08NTMwPzE6TTw1MzI/MjpNPDUzMi4wNT8zOk08NTMzPzQ6TTw1MzQuMDM/NTpNPDUzNC4wNz82Ok08NTM0LjE/NzpNPDUzNC4xMz84Ok08NTM0LjE2Pzk6TTw1MzQuMjQ/MTA6TTw1MzQuMz8xMTpNPDUzNS4wMT8xMjpNPDUzNS4wMj9cIjEzK1wiOk08NTM1LjA3PzE1Ok08NTM1LjExPzE2Ok08NTM1LjE5PzE3Ok08NTM2LjA1PzE4Ok08NTM2LjE/MTk6TTw1MzcuMDE/MjA6TTw1MzcuMTE/XCIyMStcIjpNPDUzNy4xMz8yMzpNPDUzNy4xOD8yNDpNPDUzNy4yND8yNTpNPDUzNy4zNj8yNjpfIT1cIkJsaW5rXCI/XCIyN1wiOlwiMjhcIil9XyYmKF9bMV0rPVwiIFwiKyhNKz10eXBlb2YgTT09XCJudW1iZXJcIj9cIi54XCI6L1suK10vLnRlc3QoTSk/XCJcIjpcIitcIikpO2lmKFI9PVwiU2FmYXJpXCImJighQnx8cGFyc2VJbnQoQik+NDUpKXtCPU19ZWxzZSBpZihSPT1cIkNocm9tZVwiJiYvXFxiSGVhZGxlc3NDaHJvbWUvaS50ZXN0KGUpKXtQLnVuc2hpZnQoXCJoZWFkbGVzc1wiKX19aWYoUj09XCJPcGVyYVwiJiYoTT0vXFxiemJvdnx6dmF2JC8uZXhlYyhUKSkpe1IrPVwiIFwiO1AudW5zaGlmdChcImRlc2t0b3AgbW9kZVwiKTtpZihNPT1cInp2YXZcIil7Uis9XCJNaW5pXCI7Qj1udWxsfWVsc2V7Uis9XCJNb2JpbGVcIn1UPVQucmVwbGFjZShSZWdFeHAoXCIgKlwiK00rXCIkXCIpLFwiXCIpfWVsc2UgaWYoUj09XCJTYWZhcmlcIiYmL1xcYkNocm9tZVxcYi8uZXhlYyhfJiZfWzFdKSl7UC51bnNoaWZ0KFwiZGVza3RvcCBtb2RlXCIpO1I9XCJDaHJvbWUgTW9iaWxlXCI7Qj1udWxsO2lmKC9cXGJPUyBYXFxiLy50ZXN0KFQpKXtJPVwiQXBwbGVcIjtUPVwiaU9TIDQuMytcIn1lbHNle1Q9bnVsbH19ZWxzZSBpZigvXFxiU1JXYXJlIElyb25cXGIvLnRlc3QoUikmJiFCKXtCPWdldFZlcnNpb24oXCJDaHJvbWVcIil9aWYoQiYmQi5pbmRleE9mKE09L1tcXGQuXSskLy5leGVjKFQpKT09MCYmZS5pbmRleE9mKFwiL1wiK00rXCItXCIpPi0xKXtUPXRyaW0oVC5yZXBsYWNlKE0sXCJcIikpfWlmKFQmJlQuaW5kZXhPZihSKSE9LTEmJiFSZWdFeHAoUitcIiBPU1wiKS50ZXN0KFQpKXtUPVQucmVwbGFjZShSZWdFeHAoXCIgKlwiK3F1YWxpZnkoUikrXCIgKlwiKSxcIlwiKX1pZihfJiYhL1xcYig/OkF2YW50fE5vb2spXFxiLy50ZXN0KFIpJiYoL0Jyb3dzZXJ8THVuYXNjYXBlfE1heHRob24vLnRlc3QoUil8fFIhPVwiU2FmYXJpXCImJi9eaU9TLy50ZXN0KFQpJiYvXFxiU2FmYXJpXFxiLy50ZXN0KF9bMV0pfHwvXig/OkFkb2JlfEFyb3JhfEJyZWFjaHxNaWRvcml8T3BlcmF8UGhhbnRvbXxSZWtvbnF8Um9ja3xTYW1zdW5nIEludGVybmV0fFNsZWlwbmlyfFNSV2FyZSBJcm9ufFZpdmFsZGl8V2ViKS8udGVzdChSKSYmX1sxXSkpeyhNPV9bXy5sZW5ndGgtMV0pJiZQLnB1c2goTSl9aWYoUC5sZW5ndGgpe1A9W1wiKFwiK1Auam9pbihcIjsgXCIpK1wiKVwiXX1pZihJJiZBJiZBLmluZGV4T2YoSSk8MCl7UC5wdXNoKFwib24gXCIrSSl9aWYoQSl7UC5wdXNoKCgvXm9uIC8udGVzdChQW1AubGVuZ3RoLTFdKT9cIlwiOlwib24gXCIpK0EpfWlmKFQpe009LyAoW1xcZC4rXSspJC8uZXhlYyhUKTtXPU0mJlQuY2hhckF0KFQubGVuZ3RoLU1bMF0ubGVuZ3RoLTEpPT1cIi9cIjtUPXthcmNoaXRlY3R1cmU6MzIsZmFtaWx5Ok0mJiFXP1QucmVwbGFjZShNWzBdLFwiXCIpOlQsdmVyc2lvbjpNP01bMV06bnVsbCx0b1N0cmluZzpmdW5jdGlvbigpe3ZhciBlPXRoaXMudmVyc2lvbjtyZXR1cm4gdGhpcy5mYW1pbHkrKGUmJiFXP1wiIFwiK2U6XCJcIikrKHRoaXMuYXJjaGl0ZWN0dXJlPT02ND9cIiA2NC1iaXRcIjpcIlwiKX19fWlmKChNPS9cXGIoPzpBTUR8SUF8V2lufFdPV3x4ODZffHgpNjRcXGIvaS5leGVjKEUpKSYmIS9cXGJpNjg2XFxiL2kudGVzdChFKSl7aWYoVCl7VC5hcmNoaXRlY3R1cmU9NjQ7VC5mYW1pbHk9VC5mYW1pbHkucmVwbGFjZShSZWdFeHAoXCIgKlwiK00pLFwiXCIpfWlmKFImJigvXFxiV09XNjRcXGIvaS50ZXN0KGUpfHxrJiYvXFx3KD86ODZ8MzIpJC8udGVzdChuLmNwdUNsYXNzfHxuLnBsYXRmb3JtKSYmIS9cXGJXaW42NDsgeDY0XFxiL2kudGVzdChlKSkpe1AudW5zaGlmdChcIjMyLWJpdFwiKX19ZWxzZSBpZihUJiYvXk9TIFgvLnRlc3QoVC5mYW1pbHkpJiZSPT1cIkNocm9tZVwiJiZwYXJzZUZsb2F0KEIpPj0zOSl7VC5hcmNoaXRlY3R1cmU9NjR9ZXx8KGU9bnVsbCk7dmFyIEY9e307Ri5kZXNjcmlwdGlvbj1lO0YubGF5b3V0PV8mJl9bMF07Ri5tYW51ZmFjdHVyZXI9STtGLm5hbWU9UjtGLnByZXJlbGVhc2U9QztGLnByb2R1Y3Q9QTtGLnVhPWU7Ri52ZXJzaW9uPVImJkI7Ri5vcz1UfHx7YXJjaGl0ZWN0dXJlOm51bGwsZmFtaWx5Om51bGwsdmVyc2lvbjpudWxsLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuXCJudWxsXCJ9fTtGLnBhcnNlPXBhcnNlO0YudG9TdHJpbmc9dG9TdHJpbmdQbGF0Zm9ybTtpZihGLnZlcnNpb24pe1AudW5zaGlmdChCKX1pZihGLm5hbWUpe1AudW5zaGlmdChSKX1pZihUJiZSJiYhKFQ9PVN0cmluZyhUKS5zcGxpdChcIiBcIilbMF0mJihUPT1SLnNwbGl0KFwiIFwiKVswXXx8QSkpKXtQLnB1c2goQT9cIihcIitUK1wiKVwiOlwib24gXCIrVCl9aWYoUC5sZW5ndGgpe0YuZGVzY3JpcHRpb249UC5qb2luKFwiIFwiKX1yZXR1cm4gRn12YXIgZD1wYXJzZSgpO2lmKG4mJm8pe2Zvck93bihkLChmdW5jdGlvbihlLGkpe25baV09ZX0pKX1lbHNle3IucGxhdGZvcm09ZH19KS5jYWxsKHRoaXMpfX07dmFyIGk9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyh0KXt2YXIgcj1pW3RdO2lmKHIhPT11bmRlZmluZWQpe3JldHVybiByLmV4cG9ydHN9dmFyIGE9aVt0XT17aWQ6dCxsb2FkZWQ6ZmFsc2UsZXhwb3J0czp7fX07dmFyIG49dHJ1ZTt0cnl7ZVt0XS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtuPWZhbHNlfWZpbmFsbHl7aWYobilkZWxldGUgaVt0XX1hLmxvYWRlZD10cnVlO3JldHVybiBhLmV4cG9ydHN9KCgpPT57X19uY2N3cGNrX3JlcXVpcmVfXy5ubWQ9ZT0+e2UucGF0aHM9W107aWYoIWUuY2hpbGRyZW4pZS5jaGlsZHJlbj1bXTtyZXR1cm4gZX19KSgpO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDU0MSk7bW9kdWxlLmV4cG9ydHM9dH0pKCk7Il0sIm5hbWVzIjpbImUiLCJpIiwidCIsIm5tZCIsImZ1bmN0aW9uIiwib2JqZWN0IiwiciIsIndpbmRvdyIsImEiLCJuIiwibyIsIm5vZGVUeXBlIiwibCIsImdsb2JhbCIsInNlbGYiLCJzIiwiTWF0aCIsInBvdyIsImYiLCJiIiwiYyIsIk9iamVjdCIsInByb3RvdHlwZSIsInAiLCJoYXNPd25Qcm9wZXJ0eSIsInUiLCJ0b1N0cmluZyIsImNhcGl0YWxpemUiLCJTdHJpbmciLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiY2xlYW51cE9TIiwidGVzdCIsImV4ZWMiLCJyZXBsYWNlIiwiUmVnRXhwIiwiZm9ybWF0Iiwic3BsaXQiLCJlYWNoIiwibGVuZ3RoIiwiZm9yT3duIiwidHJpbSIsImNhbGwiLCJnZXRDbGFzc09mIiwiaXNIb3N0VHlwZSIsInF1YWxpZnkiLCJyZWR1Y2UiLCJwYXJzZSIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImxpa2VDaHJvbWUiLCJkIiwiUyIsImphdmEiLCJ4IiwibSIsImciLCJlbnZpcm9ubWVudCIsImgiLCJ2IiwiTyIsImRvY3VtZW50IiwieSIsIm9wZXJhbWluaSIsIm9wZXJhIiwidyIsIk0iLCJFIiwiUCIsIkMiLCJrIiwiQiIsInZlcnNpb24iLCJXIiwiXyIsImdldExheW91dCIsImxhYmVsIiwicGF0dGVybiIsIlIiLCJnZXROYW1lIiwiQSIsImdldFByb2R1Y3QiLCJJIiwiZ2V0TWFudWZhY3R1cmVyIiwiQXBwbGUiLCJpUGFkIiwiaVBob25lIiwiaVBvZCIsIkFsY2F0ZWwiLCJBcmNob3MiLCJBbWF6b24iLCJLaW5kbGUiLCJBc3VzIiwiVHJhbnNmb3JtZXIiLCJOb29rIiwiQmxhY2tCZXJyeSIsIlBsYXlCb29rIiwiR29vZ2xlIiwiTmV4dXMiLCJIUCIsIlRvdWNoUGFkIiwiSFRDIiwiSHVhd2VpIiwiTGVub3ZvIiwiTEciLCJNaWNyb3NvZnQiLCJYYm94IiwiTW90b3JvbGEiLCJYb29tIiwiTmludGVuZG8iLCJXaWkiLCJOb2tpYSIsIkx1bWlhIiwiT3BwbyIsIlNhbXN1bmciLCJTb255IiwiUGxheVN0YXRpb24iLCJYaWFvbWkiLCJNaSIsIlJlZG1pIiwiVCIsImdldE9TIiwiZ2V0VmVyc2lvbiIsInRvU3RyaW5nUGxhdGZvcm0iLCJkZXNjcmlwdGlvbiIsInB1c2giLCJtYW51ZmFjdHVyZXIiLCJwcm9kdWN0IiwidW5zaGlmdCIsImluZGV4T2YiLCJwYXJzZUZsb2F0IiwibGFuZyIsIlN5c3RlbSIsImdldFByb3BlcnR5IiwicmVxdWlyZSIsImpvaW4iLCJzeXN0ZW0iLCJvcyIsInByb2Nlc3MiLCJicm93c2VyIiwidmVyc2lvbnMiLCJlbGVjdHJvbiIsIm5vZGUiLCJudyIsImFyY2giLCJwbGF0Zm9ybSIsInJ1bnRpbWUiLCJmbGFzaCIsIkNhcGFiaWxpdGllcyIsInBoYW50b20iLCJtYWpvciIsIm1pbm9yIiwicGF0Y2giLCJkb2N1bWVudE1vZGUiLCJ0b0ZpeGVkIiwiYXBwTWlub3JWZXJzaW9uIiwiZXh0ZXJuYWwiLCJuYW1lIiwicGFyc2VJbnQiLCJhcmNoaXRlY3R1cmUiLCJmYW1pbHkiLCJjcHVDbGFzcyIsIkYiLCJsYXlvdXQiLCJwcmVyZWxlYXNlIiwidWEiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwidW5kZWZpbmVkIiwiZXhwb3J0cyIsImlkIiwibG9hZGVkIiwicGF0aHMiLCJjaGlsZHJlbiIsImFiIiwiX19kaXJuYW1lIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/platform/platform.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/querystring-es3/index.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/querystring-es3/index.js ***!
- \**********************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(function() {\n \"use strict\";\n var e = {\n 815: function(e) {\n function hasOwnProperty(e, r) {\n return Object.prototype.hasOwnProperty.call(e, r);\n }\n e.exports = function(e, n, t, o) {\n n = n || \"&\";\n t = t || \"=\";\n var a = {};\n if (typeof e !== \"string\" || e.length === 0) {\n return a;\n }\n var i = /\\+/g;\n e = e.split(n);\n var u = 1e3;\n if (o && typeof o.maxKeys === \"number\") {\n u = o.maxKeys;\n }\n var c = e.length;\n if (u > 0 && c > u) {\n c = u;\n }\n for(var p = 0; p < c; ++p){\n var f = e[p].replace(i, \"%20\"), s = f.indexOf(t), _, l, y, d;\n if (s >= 0) {\n _ = f.substr(0, s);\n l = f.substr(s + 1);\n } else {\n _ = f;\n l = \"\";\n }\n y = decodeURIComponent(_);\n d = decodeURIComponent(l);\n if (!hasOwnProperty(a, y)) {\n a[y] = d;\n } else if (r(a[y])) {\n a[y].push(d);\n } else {\n a[y] = [\n a[y],\n d\n ];\n }\n }\n return a;\n };\n var r = Array.isArray || function(e) {\n return Object.prototype.toString.call(e) === \"[object Array]\";\n };\n },\n 577: function(e) {\n var stringifyPrimitive = function(e) {\n switch(typeof e){\n case \"string\":\n return e;\n case \"boolean\":\n return e ? \"true\" : \"false\";\n case \"number\":\n return isFinite(e) ? e : \"\";\n default:\n return \"\";\n }\n };\n e.exports = function(e, t, o, a) {\n t = t || \"&\";\n o = o || \"=\";\n if (e === null) {\n e = undefined;\n }\n if (typeof e === \"object\") {\n return map(n(e), function(n) {\n var a = encodeURIComponent(stringifyPrimitive(n)) + o;\n if (r(e[n])) {\n return map(e[n], function(e) {\n return a + encodeURIComponent(stringifyPrimitive(e));\n }).join(t);\n } else {\n return a + encodeURIComponent(stringifyPrimitive(e[n]));\n }\n }).join(t);\n }\n if (!a) return \"\";\n return encodeURIComponent(stringifyPrimitive(a)) + o + encodeURIComponent(stringifyPrimitive(e));\n };\n var r = Array.isArray || function(e) {\n return Object.prototype.toString.call(e) === \"[object Array]\";\n };\n function map(e, r) {\n if (e.map) return e.map(r);\n var n = [];\n for(var t = 0; t < e.length; t++){\n n.push(r(e[t], t));\n }\n return n;\n }\n var n = Object.keys || function(e) {\n var r = [];\n for(var n in e){\n if (Object.prototype.hasOwnProperty.call(e, n)) r.push(n);\n }\n return r;\n };\n }\n };\n var r = {};\n function __nccwpck_require__(n) {\n var t = r[n];\n if (t !== undefined) {\n return t.exports;\n }\n var o = r[n] = {\n exports: {}\n };\n var a = true;\n try {\n e[n](o, o.exports, __nccwpck_require__);\n a = false;\n } finally{\n if (a) delete r[n];\n }\n return o.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var n = {};\n !function() {\n var e = n;\n e.decode = e.parse = __nccwpck_require__(815);\n e.encode = e.stringify = __nccwpck_require__(577);\n }();\n module.exports = n;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9xdWVyeXN0cmluZy1lczMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFXO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUksU0FBU0EsQ0FBQztZQUFFLFNBQVNDLGVBQWVELENBQUMsRUFBQ0UsQ0FBQztnQkFBRSxPQUFPQyxPQUFPQyxTQUFTLENBQUNILGNBQWMsQ0FBQ0ksSUFBSSxDQUFDTCxHQUFFRTtZQUFFO1lBQUNGLEVBQUVNLE9BQU8sR0FBQyxTQUFTTixDQUFDLEVBQUNPLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDO2dCQUFFRixJQUFFQSxLQUFHO2dCQUFJQyxJQUFFQSxLQUFHO2dCQUFJLElBQUlFLElBQUUsQ0FBQztnQkFBRSxJQUFHLE9BQU9WLE1BQUksWUFBVUEsRUFBRVcsTUFBTSxLQUFHLEdBQUU7b0JBQUMsT0FBT0Q7Z0JBQUM7Z0JBQUMsSUFBSUUsSUFBRTtnQkFBTVosSUFBRUEsRUFBRWEsS0FBSyxDQUFDTjtnQkFBRyxJQUFJTyxJQUFFO2dCQUFJLElBQUdMLEtBQUcsT0FBT0EsRUFBRU0sT0FBTyxLQUFHLFVBQVM7b0JBQUNELElBQUVMLEVBQUVNLE9BQU87Z0JBQUE7Z0JBQUMsSUFBSUMsSUFBRWhCLEVBQUVXLE1BQU07Z0JBQUMsSUFBR0csSUFBRSxLQUFHRSxJQUFFRixHQUFFO29CQUFDRSxJQUFFRjtnQkFBQztnQkFBQyxJQUFJLElBQUlHLElBQUUsR0FBRUEsSUFBRUQsR0FBRSxFQUFFQyxFQUFFO29CQUFDLElBQUlDLElBQUVsQixDQUFDLENBQUNpQixFQUFFLENBQUNFLE9BQU8sQ0FBQ1AsR0FBRSxRQUFPUSxJQUFFRixFQUFFRyxPQUFPLENBQUNiLElBQUdjLEdBQUVDLEdBQUVDLEdBQUVDO29CQUFFLElBQUdMLEtBQUcsR0FBRTt3QkFBQ0UsSUFBRUosRUFBRVEsTUFBTSxDQUFDLEdBQUVOO3dCQUFHRyxJQUFFTCxFQUFFUSxNQUFN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QUFDLE9BQU9MO1lBQUM7UUFBQztJQUFDO0lBQUUsSUFBSUEsSUFBRSxDQUFDO0lBQUUsU0FBU3FDLG9CQUFvQmhDLENBQUM7UUFBRSxJQUFJQyxJQUFFTixDQUFDLENBQUNLLEVBQUU7UUFBQyxJQUFHQyxNQUFJMEIsV0FBVTtZQUFDLE9BQU8xQixFQUFFRixPQUFPO1FBQUE7UUFBQyxJQUFJRyxJQUFFUCxDQUFDLENBQUNLLEVBQUUsR0FBQztZQUFDRCxTQUFRLENBQUM7UUFBQztRQUFFLElBQUlJLElBQUU7UUFBSyxJQUFHO1lBQUNWLENBQUMsQ0FBQ08sRUFBRSxDQUFDRSxHQUFFQSxFQUFFSCxPQUFPLEVBQUNpQztZQUFxQjdCLElBQUU7UUFBSyxTQUFRO1lBQUMsSUFBR0EsR0FBRSxPQUFPUixDQUFDLENBQUNLLEVBQUU7UUFBQTtRQUFDLE9BQU9FLEVBQUVILE9BQU87SUFBQTtJQUFDLElBQUcsT0FBT2lDLHdCQUFzQixhQUFZQSxvQkFBb0JDLEVBQUUsR0FBQ0MsU0FBU0EsR0FBQztJQUFJLElBQUlsQyxJQUFFLENBQUM7SUFBRSxDQUFDO1FBQVcsSUFBSVAsSUFBRU87UUFBRVAsRUFBRTBDLE1BQU0sR0FBQzFDLEVBQUUyQyxLQUFLLEdBQUNKLG9CQUFvQjtRQUFLdkMsRUFBRTRDLE1BQU0sR0FBQzVDLEVBQUU2QyxTQUFTLEdBQUNOLG9CQUFvQjtJQUFJO0lBQUlPLE9BQU94QyxPQUFPLEdBQUNDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcXVlcnlzdHJpbmctZXMzL2luZGV4LmpzP2U1MjIiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezgxNTpmdW5jdGlvbihlKXtmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShlLHIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSxuLHQsbyl7bj1ufHxcIiZcIjt0PXR8fFwiPVwiO3ZhciBhPXt9O2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcInx8ZS5sZW5ndGg9PT0wKXtyZXR1cm4gYX12YXIgaT0vXFwrL2c7ZT1lLnNwbGl0KG4pO3ZhciB1PTFlMztpZihvJiZ0eXBlb2Ygby5tYXhLZXlzPT09XCJudW1iZXJcIil7dT1vLm1heEtleXN9dmFyIGM9ZS5sZW5ndGg7aWYodT4wJiZjPnUpe2M9dX1mb3IodmFyIHA9MDtwPGM7KytwKXt2YXIgZj1lW3BdLnJlcGxhY2UoaSxcIiUyMFwiKSxzPWYuaW5kZXhPZih0KSxfLGwseSxkO2lmKHM+PTApe189Zi5zdWJzdHIoMCxzKTtsPWYuc3Vic3RyKHMrMSl9ZWxzZXtfPWY7bD1cIlwifXk9ZGVjb2RlVVJJQ29tcG9uZW50KF8pO2Q9ZGVjb2RlVVJJQ29tcG9uZW50KGwpO2lmKCFoYXNPd25Qcm9wZXJ0eShhLHkpKXthW3ldPWR9ZWxzZSBpZihyKGFbeV0pKXthW3ldLnB1c2goZCl9ZWxzZXthW3ldPVthW3ldLGRdfX1yZXR1cm4gYX07dmFyIHI9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKT09PVwiW29iamVjdCBBcnJheV1cIn19LDU3NzpmdW5jdGlvbihlKXt2YXIgc3RyaW5naWZ5UHJpbWl0aXZlPWZ1bmN0aW9uKGUpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIGU7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBlP1widHJ1ZVwiOlwiZmFsc2VcIjtjYXNlXCJudW1iZXJcIjpyZXR1cm4gaXNGaW5pdGUoZSk/ZTpcIlwiO2RlZmF1bHQ6cmV0dXJuXCJcIn19O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbyxhKXt0PXR8fFwiJlwiO289b3x8XCI9XCI7aWYoZT09PW51bGwpe2U9dW5kZWZpbmVkfWlmKHR5cGVvZiBlPT09XCJvYmplY3RcIil7cmV0dXJuIG1hcChuKGUpLChmdW5jdGlvbihuKXt2YXIgYT1lbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKG4pKStvO2lmKHIoZVtuXSkpe3JldHVybiBtYXAoZVtuXSwoZnVuY3Rpb24oZSl7cmV0dXJuIGErZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShlKSl9KSkuam9pbih0KX1lbHNle3JldHVybiBhK2VuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUoZVtuXSkpfX0pKS5qb2luKHQpfWlmKCFhKXJldHVyblwiXCI7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUoYSkpK28rZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShlKSl9O3ZhciByPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT1cIltvYmplY3QgQXJyYXldXCJ9O2Z1bmN0aW9uIG1hcChlLHIpe2lmKGUubWFwKXJldHVybiBlLm1hcChyKTt2YXIgbj1bXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7bi5wdXNoKHIoZVt0XSx0KSl9cmV0dXJuIG59dmFyIG49T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGUpe3ZhciByPVtdO2Zvcih2YXIgbiBpbiBlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSlyLnB1c2gobil9cmV0dXJuIHJ9fX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhuKXt2YXIgdD1yW25dO2lmKHQhPT11bmRlZmluZWQpe3JldHVybiB0LmV4cG9ydHN9dmFyIG89cltuXT17ZXhwb3J0czp7fX07dmFyIGE9dHJ1ZTt0cnl7ZVtuXShvLG8uZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTthPWZhbHNlfWZpbmFsbHl7aWYoYSlkZWxldGUgcltuXX1yZXR1cm4gby5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgbj17fTshZnVuY3Rpb24oKXt2YXIgZT1uO2UuZGVjb2RlPWUucGFyc2U9X19uY2N3cGNrX3JlcXVpcmVfXyg4MTUpO2UuZW5jb2RlPWUuc3RyaW5naWZ5PV9fbmNjd3Bja19yZXF1aXJlX18oNTc3KX0oKTttb2R1bGUuZXhwb3J0cz1ufSkoKTsiXSwibmFtZXMiOlsiZSIsImhhc093blByb3BlcnR5IiwiciIsIk9iamVjdCIsInByb3RvdHlwZSIsImNhbGwiLCJleHBvcnRzIiwibiIsInQiLCJvIiwiYSIsImxlbmd0aCIsImkiLCJzcGxpdCIsInUiLCJtYXhLZXlzIiwiYyIsInAiLCJmIiwicmVwbGFjZSIsInMiLCJpbmRleE9mIiwiXyIsImwiLCJ5IiwiZCIsInN1YnN0ciIsImRlY29kZVVSSUNvbXBvbmVudCIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJ0b1N0cmluZyIsInN0cmluZ2lmeVByaW1pdGl2ZSIsImlzRmluaXRlIiwidW5kZWZpbmVkIiwibWFwIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwiam9pbiIsImtleXMiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwiYWIiLCJfX2Rpcm5hbWUiLCJkZWNvZGUiLCJwYXJzZSIsImVuY29kZSIsInN0cmluZ2lmeSIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/querystring-es3/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js":
-/*!**********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js ***!
- \**********************************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-dom-server-rendering-stub.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n var ReactVersion = \"18.3.0-canary-60a927d04-20240113\";\n var Internals = {\n usingClientEntryPoint: false,\n Events: null,\n Dispatcher: {\n current: null\n }\n };\n function getCrossOriginString(input) {\n if (typeof input === \"string\") {\n return input === \"use-credentials\" ? input : \"\";\n }\n return undefined;\n }\n function getCrossOriginStringAs(as, input) {\n if (as === \"font\") {\n return \"\";\n }\n if (typeof input === \"string\") {\n return input === \"use-credentials\" ? input : \"\";\n }\n return undefined;\n }\n var Dispatcher = Internals.Dispatcher;\n function prefetchDNS(href) {\n {\n if (typeof href !== \"string\" || !href) {\n error(\"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\", getValueDescriptorExpectingObjectForWarning(href));\n } else if (arguments.length > 1) {\n var options = arguments[1];\n if (typeof options === \"object\" && options.hasOwnProperty(\"crossOrigin\")) {\n error(\"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\", getValueDescriptorExpectingEnumForWarning(options));\n } else {\n error(\"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\", getValueDescriptorExpectingEnumForWarning(options));\n }\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\") {\n dispatcher.prefetchDNS(href);\n } // We don't error because preconnect needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preconnect(href, options) {\n {\n if (typeof href !== \"string\" || !href) {\n error(\"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\", getValueDescriptorExpectingObjectForWarning(href));\n } else if (options != null && typeof options !== \"object\") {\n error(\"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\", getValueDescriptorExpectingEnumForWarning(options));\n } else if (options != null && typeof options.crossOrigin !== \"string\") {\n error(\"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\", getValueDescriptorExpectingObjectForWarning(options.crossOrigin));\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\") {\n var crossOrigin = options ? getCrossOriginString(options.crossOrigin) : null;\n dispatcher.preconnect(href, crossOrigin);\n } // We don't error because preconnect needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preload(href, options) {\n {\n var encountered = \"\";\n if (typeof href !== \"string\" || !href) {\n encountered += \" The `href` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(href) + \".\";\n }\n if (options == null || typeof options !== \"object\") {\n encountered += \" The `options` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(options) + \".\";\n } else if (typeof options.as !== \"string\" || !options.as) {\n encountered += \" The `as` option encountered was \" + getValueDescriptorExpectingObjectForWarning(options.as) + \".\";\n }\n if (encountered) {\n error('ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s', encountered);\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\" && // We check existence because we cannot enforce this function is actually called with the stated type\n typeof options === \"object\" && options !== null && typeof options.as === \"string\") {\n var as = options.as;\n var crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n dispatcher.preload(href, as, {\n crossOrigin: crossOrigin,\n integrity: typeof options.integrity === \"string\" ? options.integrity : undefined,\n nonce: typeof options.nonce === \"string\" ? options.nonce : undefined,\n type: typeof options.type === \"string\" ? options.type : undefined,\n fetchPriority: typeof options.fetchPriority === \"string\" ? options.fetchPriority : undefined,\n referrerPolicy: typeof options.referrerPolicy === \"string\" ? options.referrerPolicy : undefined,\n imageSrcSet: typeof options.imageSrcSet === \"string\" ? options.imageSrcSet : undefined,\n imageSizes: typeof options.imageSizes === \"string\" ? options.imageSizes : undefined\n });\n } // We don't error because preload needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preloadModule(href, options) {\n {\n var encountered = \"\";\n if (typeof href !== \"string\" || !href) {\n encountered += \" The `href` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(href) + \".\";\n }\n if (options !== undefined && typeof options !== \"object\") {\n encountered += \" The `options` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(options) + \".\";\n } else if (options && \"as\" in options && typeof options.as !== \"string\") {\n encountered += \" The `as` option encountered was \" + getValueDescriptorExpectingObjectForWarning(options.as) + \".\";\n }\n if (encountered) {\n error('ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s', encountered);\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\") {\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n dispatcher.preloadModule(href, {\n as: typeof options.as === \"string\" && options.as !== \"script\" ? options.as : undefined,\n crossOrigin: crossOrigin,\n integrity: typeof options.integrity === \"string\" ? options.integrity : undefined\n });\n } else {\n dispatcher.preloadModule(href);\n }\n } // We don't error because preload needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preinit(href, options) {\n {\n if (typeof href !== \"string\" || !href) {\n error(\"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\", getValueDescriptorExpectingObjectForWarning(href));\n } else if (options == null || typeof options !== \"object\") {\n error(\"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\", getValueDescriptorExpectingEnumForWarning(options));\n } else if (options.as !== \"style\" && options.as !== \"script\") {\n error('ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".', getValueDescriptorExpectingEnumForWarning(options.as));\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\" && options && typeof options.as === \"string\") {\n var as = options.as;\n var crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n var integrity = typeof options.integrity === \"string\" ? options.integrity : undefined;\n var fetchPriority = typeof options.fetchPriority === \"string\" ? options.fetchPriority : undefined;\n if (as === \"style\") {\n dispatcher.preinitStyle(href, typeof options.precedence === \"string\" ? options.precedence : undefined, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n });\n } else if (as === \"script\") {\n dispatcher.preinitScript(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: typeof options.nonce === \"string\" ? options.nonce : undefined\n });\n }\n } // We don't error because preinit needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preinitModule(href, options) {\n {\n var encountered = \"\";\n if (typeof href !== \"string\" || !href) {\n encountered += \" The `href` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(href) + \".\";\n }\n if (options !== undefined && typeof options !== \"object\") {\n encountered += \" The `options` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(options) + \".\";\n } else if (options && \"as\" in options && options.as !== \"script\") {\n encountered += \" The `as` option encountered was \" + getValueDescriptorExpectingEnumForWarning(options.as) + \".\";\n }\n if (encountered) {\n error(\"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\", encountered);\n } else {\n var as = options && typeof options.as === \"string\" ? options.as : \"script\";\n switch(as){\n case \"script\":\n {\n break;\n }\n // We have an invalid as type and need to warn\n default:\n {\n var typeOfAs = getValueDescriptorExpectingEnumForWarning(as);\n error('ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\"' + ' but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other' + \" module types will be supported, aligning with the import-attributes proposal. Learn more here:\" + \" (https://github.com/tc39/proposal-import-attributes)\", typeOfAs, href);\n }\n }\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\") {\n if (typeof options === \"object\" && options !== null) {\n if (options.as == null || options.as === \"script\") {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n dispatcher.preinitModuleScript(href, {\n crossOrigin: crossOrigin,\n integrity: typeof options.integrity === \"string\" ? options.integrity : undefined,\n nonce: typeof options.nonce === \"string\" ? options.nonce : undefined\n });\n }\n } else if (options == null) {\n dispatcher.preinitModuleScript(href);\n }\n } // We don't error because preinit needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return thing === null ? \"`null`\" : thing === undefined ? \"`undefined`\" : thing === \"\" ? \"an empty string\" : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return thing === null ? \"`null`\" : thing === undefined ? \"`undefined`\" : thing === \"\" ? \"an empty string\" : typeof thing === \"string\" ? JSON.stringify(thing) : typeof thing === \"number\" ? \"`\" + thing + \"`\" : 'something with type \"' + typeof thing + '\"';\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; // Since the \"not pending\" value is always the same, we can reuse the\n function resolveDispatcher() {\n // Copied from react/src/ReactHooks.js. It's the same thing but in a\n // different package.\n var dispatcher = ReactCurrentDispatcher.current;\n {\n if (dispatcher === null) {\n error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for\" + \" one of the following reasons:\\n\" + \"1. You might have mismatching versions of React and the renderer (such as React DOM)\\n\" + \"2. You might be breaking the Rules of Hooks\\n\" + \"3. You might have more than one copy of React in the same app\\n\" + \"See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\");\n }\n }\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n return dispatcher;\n }\n function useFormStatus() {\n {\n var dispatcher = resolveDispatcher(); // $FlowFixMe[not-a-function] We know this exists because of the feature check above.\n return dispatcher.useHostTransitionStatus();\n }\n }\n function useFormState(action, initialState, permalink) {\n {\n var dispatcher = resolveDispatcher(); // $FlowFixMe[not-a-function] This is unstable, thus optional\n return dispatcher.useFormState(action, initialState, permalink);\n }\n }\n function createPortal() {\n throw new Error(\"createPortal was called on the server. Portals are not currently\" + \" supported on the server. Update your program to conditionally call\" + \" createPortal on the client only.\");\n }\n function flushSync() {\n throw new Error(\"flushSync was called on the server. This is likely caused by a\" + \" function being called during render or in module scope that was\" + \" intended to be called from an effect or event handler. Update your\" + \" to not call flushSync no the server.\");\n } // on the server we just call the callback because there is\n // not update mechanism. Really this should not be called on the\n // server but since the semantics are generally clear enough we\n // can provide this trivial implementation.\n function batchedUpdates(fn, a) {\n return fn(a);\n }\n function experimental_useFormStatus() {\n {\n error(\"useFormStatus is now in canary. Remove the experimental_ prefix. \" + \"The prefixed alias will be removed in an upcoming release.\");\n }\n return useFormStatus();\n }\n function experimental_useFormState(action, initialState, permalink) {\n {\n error(\"useFormState is now in canary. Remove the experimental_ prefix. \" + \"The prefixed alias will be removed in an upcoming release.\");\n }\n return useFormState(action, initialState, permalink);\n }\n exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;\n exports.createPortal = createPortal;\n exports.experimental_useFormState = experimental_useFormState;\n exports.experimental_useFormStatus = experimental_useFormStatus;\n exports.flushSync = flushSync;\n exports.preconnect = preconnect;\n exports.prefetchDNS = prefetchDNS;\n exports.preinit = preinit;\n exports.preinitModule = preinitModule;\n exports.preload = preload;\n exports.preloadModule = preloadModule;\n exports.unstable_batchedUpdates = batchedUpdates;\n exports.useFormState = useFormState;\n exports.useFormStatus = useFormStatus;\n exports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS1zZXJ2ZXItcmVuZGVyaW5nLXN0dWIuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0NBUUMsR0FFRDtBQUVBLElBQUlBLElBQXFDLEVBQUU7SUFDeEM7UUFDSDtRQUVBLElBQUlDLFFBQVFDLG1CQUFPQSxDQUFDLDRGQUEwQjtRQUU5QyxJQUFJQyx1QkFBdUJGLE1BQU1HLGtEQUFrRDtRQUVuRixTQUFTQyxNQUFNQyxNQUFNO1lBQ25CO2dCQUNFO29CQUNFLElBQUssSUFBSUMsUUFBUUMsVUFBVUMsTUFBTSxFQUFFQyxPQUFPLElBQUlDLE1BQU1KLFFBQVEsSUFBSUEsUUFBUSxJQUFJLElBQUlLLFFBQVEsR0FBR0EsUUFBUUwsT0FBT0ssUUFBUzt3QkFDakhGLElBQUksQ0FBQ0UsUUFBUSxFQUFFLEdBQUdKLFNBQVMsQ0FBQ0ksTUFBTTtvQkFDcEM7b0JBRUFDLGFBQWEsU0FBU1AsUUFBUUk7Z0JBQ2hDO1lBQ0Y7UUFDRjtRQUVBLFNBQVNHLGFBQWFDLEtBQUssRUFBRVIsTUFBTSxFQUFFSSxJQUFJO1lBQ3ZDLG1EQUFtRDtZQUNuRCw2Q0FBNkM7WUFDN0M7Z0JBQ0UsSUFBSUsseUJBQXlCWixxQkFBcUJZLHNCQUFzQjtnQkFDeEUsSUFBSUMsUUFBUUQsdUJBQXVCRSxnQkFBZ0I7Z0JBRW5ELElBQUlELFVBQVUsSUFBSTtvQkFDaEJWLFVBQVU7b0JBQ1ZJLE9BQU9BLEtBQUtRLE1BQU0sQ0FBQzt3QkFBQ0Y7cUJBQU07Z0JBQzVCLEVBQUUsK0RBQStEO2dCQUdqRSxJQUFJRyxpQkFBaUJULEtBQUtVLEdBQUcsQ0FBQyxTQUFVQyxJQUFJO29CQUMxQyxPQUFPQyxPQUFPRDtnQkFDaEIsSUFBSSwrQ0FBK0M7Z0JBRW5ERixlQUFlSSxPQUFPLENBQUMsY0FBY2pCLFNBQVMsb0VBQW9FO2dCQUNsSCw2REFBNkQ7Z0JBQzdE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RSwrREFBK0Q7UUFDL0QsMkNBQTJDO1FBRTNDLFNBQVNFLGVBQWVDLEVBQUUsRUFBRUMsQ0FBQztZQUMzQixPQUFPRCxHQUFHQztRQUNaO1FBRUEsU0FBU0M7WUFDUDtnQkFDRTlFLE1BQU0sc0VBQXNFO1lBQzlFO1lBRUEsT0FBT2tFO1FBQ1Q7UUFDQSxTQUFTYSwwQkFBMEJWLE1BQU0sRUFBRUMsWUFBWSxFQUFFQyxTQUFTO1lBQ2hFO2dCQUNFdkUsTUFBTSxxRUFBcUU7WUFDN0U7WUFFQSxPQUFPb0UsYUFBYUMsUUFBUUMsY0FBY0M7UUFDNUM7UUFFQVMsMERBQTBELEdBQUd2RDtRQUM3RHVELG9CQUFvQixHQUFHUjtRQUN2QlEsaUNBQWlDLEdBQUdEO1FBQ3BDQyxrQ0FBa0MsR0FBR0Y7UUFDckNFLGlCQUFpQixHQUFHTjtRQUNwQk0sa0JBQWtCLEdBQUd0QztRQUNyQnNDLG1CQUFtQixHQUFHN0M7UUFDdEI2QyxlQUFlLEdBQUcxQjtRQUNsQjBCLHFCQUFxQixHQUFHdEI7UUFDeEJzQixlQUFlLEdBQUdwQztRQUNsQm9DLHFCQUFxQixHQUFHM0I7UUFDeEIyQiwrQkFBK0IsR0FBR0w7UUFDbENLLG9CQUFvQixHQUFHWjtRQUN2QlkscUJBQXFCLEdBQUdkO1FBQ3hCYyxlQUFlLEdBQUd4RDtJQUNoQjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLXNlcnZlci1yZW5kZXJpbmctc3R1Yi5kZXZlbG9wbWVudC5qcz9lZWQ2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWRvbS1zZXJ2ZXItcmVuZGVyaW5nLXN0dWIuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3RcIik7XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmcobGV2ZWwsIGZvcm1hdCwgYXJncykge1xuICAvLyBXaGVuIGNoYW5naW5nIHRoaXMgbG9naWMsIHlvdSBtaWdodCB3YW50IHRvIGFsc29cbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXG4gIHtcbiAgICB2YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICBpZiAoc3RhY2sgIT09ICcnKSB7XG4gICAgICBmb3JtYXQgKz0gJyVzJztcbiAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdChbc3RhY2tdKTtcbiAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgICB2YXIgYXJnc1dpdGhGb3JtYXQgPSBhcmdzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcblxuICAgIGFyZ3NXaXRoRm9ybWF0LnVuc2hpZnQoJ1dhcm5pbmc6ICcgKyBmb3JtYXQpOyAvLyBXZSBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBzcHJlYWQgKG9yIC5hcHBseSkgZGlyZWN0bHkgYmVjYXVzZSBpdFxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG5cbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xuICB9XG59XG5cbnZhciBSZWFjdFZlcnNpb24gPSAnMTguMy4wLWNhbmFyeS02MGE5MjdkMDQtMjAyNDAxMTMnO1xuXG52YXIgSW50ZXJuYWxzID0ge1xuICB1c2luZ0NsaWVudEVudHJ5UG9pbnQ6IGZhbHNlLFxuICBFdmVudHM6IG51bGwsXG4gIERpc3BhdGNoZXI6IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdldENyb3NzT3JpZ2luU3RyaW5nKGlucHV0KSB7XG4gIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGlucHV0ID09PSAndXNlLWNyZWRlbnRpYWxzJyA/IGlucHV0IDogJyc7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyhhcywgaW5wdXQpIHtcbiAgaWYgKGFzID09PSAnZm9udCcpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBpbnB1dCA9PT0gJ3VzZS1jcmVkZW50aWFscycgPyBpbnB1dCA6ICcnO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxudmFyIERpc3BhdGNoZXIgPSBJbnRlcm5hbHMuRGlzcGF0Y2hlcjtcbmZ1bmN0aW9uIHByZWZldGNoRE5TKGhyZWYpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycgfHwgIWhyZWYpIHtcbiAgICAgIGVycm9yKCdSZWFjdERPTS5wcmVmZXRjaEROUygpOiBFeHBlY3RlZCB0aGUgYGhyZWZgIGFyZ3VtZW50IChmaXJzdCkgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLicsIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikpO1xuICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzWzFdO1xuXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2Nyb3NzT3JpZ2luJykpIHtcbiAgICAgICAgZXJyb3IoJ1JlYWN0RE9NLnByZWZldGNoRE5TKCk6IEV4cGVjdGVkIG9ubHkgb25lIGFyZ3VtZW50LCBgaHJlZmAsIGJ1dCBlbmNvdW50ZXJlZCAlcyBhcyBhIHNlY29uZCBhcmd1bWVudCBpbnN0ZWFkLiBUaGlzIGFyZ3VtZW50IGlzIHJlc2VydmVkIGZvciBmdXR1cmUgb3B0aW9ucyBhbmQgaXMgY3VycmVudGx5IGRpc2FsbG93ZWQuIEl0IGxvb2tzIGxpa2UgdGhlIHlvdSBhcmUgYXR0ZW1wdGluZyB0byBzZXQgYSBjcm9zc09yaWdpbiBwcm9wZXJ0eSBmb3IgdGhpcyBETlMgbG9va3VwIGhpbnQuIEJyb3dzZXJzIGRvIG5vdCBwZXJmb3JtIEROUyBxdWVyaWVzIHVzaW5nIENPUlMgYW5kIHNldHRpbmcgdGhpcyBhdHRyaWJ1dGUgb24gdGhlIHJlc291cmNlIGhpbnQgaGFzIG5vIGVmZmVjdC4gVHJ5IGNhbGxpbmcgUmVhY3RET00ucHJlZmV0Y2hETlMoKSB3aXRoIGp1c3QgYSBzaW5nbGUgc3RyaW5nIGFyZ3VtZW50LCBgaHJlZmAuJywgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nRW51bUZvcldhcm5pbmcob3B0aW9ucykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IoJ1JlYWN0RE9NLnByZWZldGNoRE5TKCk6IEV4cGVjdGVkIG9ubHkgb25lIGFyZ3VtZW50LCBgaHJlZmAsIGJ1dCBlbmNvdW50ZXJlZCAlcyBhcyBhIHNlY29uZCBhcmd1bWVudCBpbnN0ZWFkLiBUaGlzIGFyZ3VtZW50IGlzIHJlc2VydmVkIGZvciBmdXR1cmUgb3B0aW9ucyBhbmQgaXMgY3VycmVudGx5IGRpc2FsbG93ZWQuIFRyeSBjYWxsaW5nIFJlYWN0RE9NLnByZWZldGNoRE5TKCkgd2l0aCBqdXN0IGEgc2luZ2xlIHN0cmluZyBhcmd1bWVudCwgYGhyZWZgLicsIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKG9wdGlvbnMpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZGlzcGF0Y2hlciA9IERpc3BhdGNoZXIuY3VycmVudDtcblxuICBpZiAoZGlzcGF0Y2hlciAmJiB0eXBlb2YgaHJlZiA9PT0gJ3N0cmluZycpIHtcbiAgICBkaXNwYXRjaGVyLnByZWZldGNoRE5TKGhyZWYpO1xuICB9IC8vIFdlIGRvbid0IGVycm9yIGJlY2F1c2UgcHJlY29ubmVjdCBuZWVkcyB0byBiZSByZXNpbGllbnQgdG8gYmVpbmcgY2FsbGVkIGluIGEgdmFyaWV0eSBvZiBzY29wZXNcbiAgLy8gYW5kIHRoZSBydW50aW1lIG1heSBub3QgYmUgY2FwYWJsZSBvZiByZXNwb25kaW5nLiBUaGUgZnVuY3Rpb24gaXMgb3B0aW1pc3RpYyBhbmQgbm90IGNyaXRpY2FsXG4gIC8vIHNvIHdlIGZhdm9yIHNpbGVudCBiYWlsb3V0IG92ZXIgd2FybmluZyBvciBlcnJvcmluZy5cblxufVxuZnVuY3Rpb24gcHJlY29ubmVjdChocmVmLCBvcHRpb25zKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGhyZWYgIT09ICdzdHJpbmcnIHx8ICFocmVmKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlY29ubmVjdCgpOiBFeHBlY3RlZCB0aGUgYGhyZWZgIGFyZ3VtZW50IChmaXJzdCkgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLicsIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikpO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucyAhPSBudWxsICYmIHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgZXJyb3IoJ1JlYWN0RE9NLnByZWNvbm5lY3QoKTogRXhwZWN0ZWQgdGhlIGBvcHRpb25zYCBhcmd1bWVudCAoc2Vjb25kKSB0byBiZSBhbiBvYmplY3QgYnV0IGVuY291bnRlcmVkICVzIGluc3RlYWQuIFRoZSBvbmx5IHN1cHBvcnRlZCBvcHRpb24gYXQgdGhpcyB0aW1lIGlzIGBjcm9zc09yaWdpbmAgd2hpY2ggYWNjZXB0cyBhIHN0cmluZy4nLCBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zKSk7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zICE9IG51bGwgJiYgdHlwZW9mIG9wdGlvbnMuY3Jvc3NPcmlnaW4gIT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlY29ubmVjdCgpOiBFeHBlY3RlZCB0aGUgYGNyb3NzT3JpZ2luYCBvcHRpb24gKHNlY29uZCBhcmd1bWVudCkgdG8gYmUgYSBzdHJpbmcgYnV0IGVuY291bnRlcmVkICVzIGluc3RlYWQuIFRyeSByZW1vdmluZyB0aGlzIG9wdGlvbiBvciBwYXNzaW5nIGEgc3RyaW5nIHZhbHVlIGluc3RlYWQuJywgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhvcHRpb25zLmNyb3NzT3JpZ2luKSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGRpc3BhdGNoZXIgPSBEaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKGRpc3BhdGNoZXIgJiYgdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIGNyb3NzT3JpZ2luID0gb3B0aW9ucyA/IGdldENyb3NzT3JpZ2luU3RyaW5nKG9wdGlvbnMuY3Jvc3NPcmlnaW4pIDogbnVsbDtcbiAgICBkaXNwYXRjaGVyLnByZWNvbm5lY3QoaHJlZiwgY3Jvc3NPcmlnaW4pO1xuICB9IC8vIFdlIGRvbid0IGVycm9yIGJlY2F1c2UgcHJlY29ubmVjdCBuZWVkcyB0byBiZSByZXNpbGllbnQgdG8gYmVpbmcgY2FsbGVkIGluIGEgdmFyaWV0eSBvZiBzY29wZXNcbiAgLy8gYW5kIHRoZSBydW50aW1lIG1heSBub3QgYmUgY2FwYWJsZSBvZiByZXNwb25kaW5nLiBUaGUgZnVuY3Rpb24gaXMgb3B0aW1pc3RpYyBhbmQgbm90IGNyaXRpY2FsXG4gIC8vIHNvIHdlIGZhdm9yIHNpbGVudCBiYWlsb3V0IG92ZXIgd2FybmluZyBvciBlcnJvcmluZy5cblxufVxuZnVuY3Rpb24gcHJlbG9hZChocmVmLCBvcHRpb25zKSB7XG4gIHtcbiAgICB2YXIgZW5jb3VudGVyZWQgPSAnJztcblxuICAgIGlmICh0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycgfHwgIWhyZWYpIHtcbiAgICAgIGVuY291bnRlcmVkICs9IFwiIFRoZSBgaHJlZmAgYXJndW1lbnQgZW5jb3VudGVyZWQgd2FzIFwiICsgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKSArIFwiLlwiO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zID09IG51bGwgfHwgdHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICBlbmNvdW50ZXJlZCArPSBcIiBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IGVuY291bnRlcmVkIHdhcyBcIiArIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcob3B0aW9ucykgKyBcIi5cIjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zLmFzICE9PSAnc3RyaW5nJyB8fCAhb3B0aW9ucy5hcykge1xuICAgICAgZW5jb3VudGVyZWQgKz0gXCIgVGhlIGBhc2Agb3B0aW9uIGVuY291bnRlcmVkIHdhcyBcIiArIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcob3B0aW9ucy5hcykgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBpZiAoZW5jb3VudGVyZWQpIHtcbiAgICAgIGVycm9yKCdSZWFjdERPTS5wcmVsb2FkKCk6IEV4cGVjdGVkIHR3byBhcmd1bWVudHMsIGEgbm9uLWVtcHR5IGBocmVmYCBzdHJpbmcgYW5kIGFuIGBvcHRpb25zYCBvYmplY3Qgd2l0aCBhbiBgYXNgIHByb3BlcnR5IHZhbGlkIGZvciBhIGA8bGluayByZWw9XCJwcmVsb2FkXCIgYXM9XCIuLi5cIiAvPmAgdGFnLiVzJywgZW5jb3VudGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBkaXNwYXRjaGVyID0gRGlzcGF0Y2hlci5jdXJyZW50O1xuXG4gIGlmIChkaXNwYXRjaGVyICYmIHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyAmJiAvLyBXZSBjaGVjayBleGlzdGVuY2UgYmVjYXVzZSB3ZSBjYW5ub3QgZW5mb3JjZSB0aGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGNhbGxlZCB3aXRoIHRoZSBzdGF0ZWQgdHlwZVxuICB0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcgJiYgb3B0aW9ucyAhPT0gbnVsbCAmJiB0eXBlb2Ygb3B0aW9ucy5hcyA9PT0gJ3N0cmluZycpIHtcbiAgICB2YXIgYXMgPSBvcHRpb25zLmFzO1xuICAgIHZhciBjcm9zc09yaWdpbiA9IGdldENyb3NzT3JpZ2luU3RyaW5nQXMoYXMsIG9wdGlvbnMuY3Jvc3NPcmlnaW4pO1xuICAgIGRpc3BhdGNoZXIucHJlbG9hZChocmVmLCBhcywge1xuICAgICAgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLFxuICAgICAgaW50ZWdyaXR5OiB0eXBlb2Ygb3B0aW9ucy5pbnRlZ3JpdHkgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5pbnRlZ3JpdHkgOiB1bmRlZmluZWQsXG4gICAgICBub25jZTogdHlwZW9mIG9wdGlvbnMubm9uY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5ub25jZSA6IHVuZGVmaW5lZCxcbiAgICAgIHR5cGU6IHR5cGVvZiBvcHRpb25zLnR5cGUgPT09ICdzdHJpbmcnID8gb3B0aW9ucy50eXBlIDogdW5kZWZpbmVkLFxuICAgICAgZmV0Y2hQcmlvcml0eTogdHlwZW9mIG9wdGlvbnMuZmV0Y2hQcmlvcml0eSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmZldGNoUHJpb3JpdHkgOiB1bmRlZmluZWQsXG4gICAgICByZWZlcnJlclBvbGljeTogdHlwZW9mIG9wdGlvbnMucmVmZXJyZXJQb2xpY3kgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5yZWZlcnJlclBvbGljeSA6IHVuZGVmaW5lZCxcbiAgICAgIGltYWdlU3JjU2V0OiB0eXBlb2Ygb3B0aW9ucy5pbWFnZVNyY1NldCA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmltYWdlU3JjU2V0IDogdW5kZWZpbmVkLFxuICAgICAgaW1hZ2VTaXplczogdHlwZW9mIG9wdGlvbnMuaW1hZ2VTaXplcyA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmltYWdlU2l6ZXMgOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgfSAvLyBXZSBkb24ndCBlcnJvciBiZWNhdXNlIHByZWxvYWQgbmVlZHMgdG8gYmUgcmVzaWxpZW50IHRvIGJlaW5nIGNhbGxlZCBpbiBhIHZhcmlldHkgb2Ygc2NvcGVzXG4gIC8vIGFuZCB0aGUgcnVudGltZSBtYXkgbm90IGJlIGNhcGFibGUgb2YgcmVzcG9uZGluZy4gVGhlIGZ1bmN0aW9uIGlzIG9wdGltaXN0aWMgYW5kIG5vdCBjcml0aWNhbFxuICAvLyBzbyB3ZSBmYXZvciBzaWxlbnQgYmFpbG91dCBvdmVyIHdhcm5pbmcgb3IgZXJyb3JpbmcuXG5cbn1cbmZ1bmN0aW9uIHByZWxvYWRNb2R1bGUoaHJlZiwgb3B0aW9ucykge1xuICB7XG4gICAgdmFyIGVuY291bnRlcmVkID0gJyc7XG5cbiAgICBpZiAodHlwZW9mIGhyZWYgIT09ICdzdHJpbmcnIHx8ICFocmVmKSB7XG4gICAgICBlbmNvdW50ZXJlZCArPSBcIiBUaGUgYGhyZWZgIGFyZ3VtZW50IGVuY291bnRlcmVkIHdhcyBcIiArIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgZW5jb3VudGVyZWQgKz0gXCIgVGhlIGBvcHRpb25zYCBhcmd1bWVudCBlbmNvdW50ZXJlZCB3YXMgXCIgKyBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKG9wdGlvbnMpICsgXCIuXCI7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zICYmICdhcycgaW4gb3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy5hcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGVuY291bnRlcmVkICs9IFwiIFRoZSBgYXNgIG9wdGlvbiBlbmNvdW50ZXJlZCB3YXMgXCIgKyBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKG9wdGlvbnMuYXMpICsgXCIuXCI7XG4gICAgfVxuXG4gICAgaWYgKGVuY291bnRlcmVkKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlbG9hZE1vZHVsZSgpOiBFeHBlY3RlZCB0d28gYXJndW1lbnRzLCBhIG5vbi1lbXB0eSBgaHJlZmAgc3RyaW5nIGFuZCwgb3B0aW9uYWxseSwgYW4gYG9wdGlvbnNgIG9iamVjdCB3aXRoIGFuIGBhc2AgcHJvcGVydHkgdmFsaWQgZm9yIGEgYDxsaW5rIHJlbD1cIm1vZHVsZXByZWxvYWRcIiBhcz1cIi4uLlwiIC8+YCB0YWcuJXMnLCBlbmNvdW50ZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGRpc3BhdGNoZXIgPSBEaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKGRpc3BhdGNoZXIgJiYgdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHZhciBjcm9zc09yaWdpbiA9IGdldENyb3NzT3JpZ2luU3RyaW5nQXMob3B0aW9ucy5hcywgb3B0aW9ucy5jcm9zc09yaWdpbik7XG4gICAgICBkaXNwYXRjaGVyLnByZWxvYWRNb2R1bGUoaHJlZiwge1xuICAgICAgICBhczogdHlwZW9mIG9wdGlvbnMuYXMgPT09ICdzdHJpbmcnICYmIG9wdGlvbnMuYXMgIT09ICdzY3JpcHQnID8gb3B0aW9ucy5hcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLFxuICAgICAgICBpbnRlZ3JpdHk6IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmludGVncml0eSA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoZXIucHJlbG9hZE1vZHVsZShocmVmKTtcbiAgICB9XG4gIH0gLy8gV2UgZG9uJ3QgZXJyb3IgYmVjYXVzZSBwcmVsb2FkIG5lZWRzIHRvIGJlIHJlc2lsaWVudCB0byBiZWluZyBjYWxsZWQgaW4gYSB2YXJpZXR5IG9mIHNjb3Blc1xuICAvLyBhbmQgdGhlIHJ1bnRpbWUgbWF5IG5vdCBiZSBjYXBhYmxlIG9mIHJlc3BvbmRpbmcuIFRoZSBmdW5jdGlvbiBpcyBvcHRpbWlzdGljIGFuZCBub3QgY3JpdGljYWxcbiAgLy8gc28gd2UgZmF2b3Igc2lsZW50IGJhaWxvdXQgb3ZlciB3YXJuaW5nIG9yIGVycm9yaW5nLlxuXG59XG5mdW5jdGlvbiBwcmVpbml0KGhyZWYsIG9wdGlvbnMpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycgfHwgIWhyZWYpIHtcbiAgICAgIGVycm9yKCdSZWFjdERPTS5wcmVpbml0KCk6IEV4cGVjdGVkIHRoZSBgaHJlZmAgYXJndW1lbnQgKGZpcnN0KSB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcgYnV0IGVuY291bnRlcmVkICVzIGluc3RlYWQuJywgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKSk7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zID09IG51bGwgfHwgdHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlaW5pdCgpOiBFeHBlY3RlZCB0aGUgYG9wdGlvbnNgIGFyZ3VtZW50IChzZWNvbmQpIHRvIGJlIGFuIG9iamVjdCB3aXRoIGFuIGBhc2AgcHJvcGVydHkgZGVzY3JpYmluZyB0aGUgdHlwZSBvZiByZXNvdXJjZSB0byBiZSBwcmVpbml0aWFsaXplZCBidXQgZW5jb3VudGVyZWQgJXMgaW5zdGVhZC4nLCBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zKSk7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmFzICE9PSAnc3R5bGUnICYmIG9wdGlvbnMuYXMgIT09ICdzY3JpcHQnKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlaW5pdCgpOiBFeHBlY3RlZCB0aGUgYGFzYCBwcm9wZXJ0eSBpbiB0aGUgYG9wdGlvbnNgIGFyZ3VtZW50IChzZWNvbmQpIHRvIGNvbnRhaW4gYSB2YWxpZCB2YWx1ZSBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIHJlc291cmNlIHRvIGJlIHByZWluaXRpYWxpemVkIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLiBWYWxpZCB2YWx1ZXMgZm9yIGBhc2AgYXJlIFwic3R5bGVcIiBhbmQgXCJzY3JpcHRcIi4nLCBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zLmFzKSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGRpc3BhdGNoZXIgPSBEaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKGRpc3BhdGNoZXIgJiYgdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnICYmIG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMuYXMgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIGFzID0gb3B0aW9ucy5hcztcbiAgICB2YXIgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKGFzLCBvcHRpb25zLmNyb3NzT3JpZ2luKTtcbiAgICB2YXIgaW50ZWdyaXR5ID0gdHlwZW9mIG9wdGlvbnMuaW50ZWdyaXR5ID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuaW50ZWdyaXR5IDogdW5kZWZpbmVkO1xuICAgIHZhciBmZXRjaFByaW9yaXR5ID0gdHlwZW9mIG9wdGlvbnMuZmV0Y2hQcmlvcml0eSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmZldGNoUHJpb3JpdHkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoYXMgPT09ICdzdHlsZScpIHtcbiAgICAgIGRpc3BhdGNoZXIucHJlaW5pdFN0eWxlKGhyZWYsIHR5cGVvZiBvcHRpb25zLnByZWNlZGVuY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5wcmVjZWRlbmNlIDogdW5kZWZpbmVkLCB7XG4gICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgaW50ZWdyaXR5OiBpbnRlZ3JpdHksXG4gICAgICAgIGZldGNoUHJpb3JpdHk6IGZldGNoUHJpb3JpdHlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoYXMgPT09ICdzY3JpcHQnKSB7XG4gICAgICBkaXNwYXRjaGVyLnByZWluaXRTY3JpcHQoaHJlZiwge1xuICAgICAgICBjcm9zc09yaWdpbjogY3Jvc3NPcmlnaW4sXG4gICAgICAgIGludGVncml0eTogaW50ZWdyaXR5LFxuICAgICAgICBmZXRjaFByaW9yaXR5OiBmZXRjaFByaW9yaXR5LFxuICAgICAgICBub25jZTogdHlwZW9mIG9wdGlvbnMubm9uY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5ub25jZSA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgfVxuICB9IC8vIFdlIGRvbid0IGVycm9yIGJlY2F1c2UgcHJlaW5pdCBuZWVkcyB0byBiZSByZXNpbGllbnQgdG8gYmVpbmcgY2FsbGVkIGluIGEgdmFyaWV0eSBvZiBzY29wZXNcbiAgLy8gYW5kIHRoZSBydW50aW1lIG1heSBub3QgYmUgY2FwYWJsZSBvZiByZXNwb25kaW5nLiBUaGUgZnVuY3Rpb24gaXMgb3B0aW1pc3RpYyBhbmQgbm90IGNyaXRpY2FsXG4gIC8vIHNvIHdlIGZhdm9yIHNpbGVudCBiYWlsb3V0IG92ZXIgd2FybmluZyBvciBlcnJvcmluZy5cblxufVxuZnVuY3Rpb24gcHJlaW5pdE1vZHVsZShocmVmLCBvcHRpb25zKSB7XG4gIHtcbiAgICB2YXIgZW5jb3VudGVyZWQgPSAnJztcblxuICAgIGlmICh0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycgfHwgIWhyZWYpIHtcbiAgICAgIGVuY291bnRlcmVkICs9IFwiIFRoZSBgaHJlZmAgYXJndW1lbnQgZW5jb3VudGVyZWQgd2FzIFwiICsgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKSArIFwiLlwiO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICBlbmNvdW50ZXJlZCArPSBcIiBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IGVuY291bnRlcmVkIHdhcyBcIiArIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcob3B0aW9ucykgKyBcIi5cIjtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMgJiYgJ2FzJyBpbiBvcHRpb25zICYmIG9wdGlvbnMuYXMgIT09ICdzY3JpcHQnKSB7XG4gICAgICBlbmNvdW50ZXJlZCArPSBcIiBUaGUgYGFzYCBvcHRpb24gZW5jb3VudGVyZWQgd2FzIFwiICsgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nRW51bUZvcldhcm5pbmcob3B0aW9ucy5hcykgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBpZiAoZW5jb3VudGVyZWQpIHtcbiAgICAgIGVycm9yKCdSZWFjdERPTS5wcmVpbml0TW9kdWxlKCk6IEV4cGVjdGVkIHVwIHRvIHR3byBhcmd1bWVudHMsIGEgbm9uLWVtcHR5IGBocmVmYCBzdHJpbmcgYW5kLCBvcHRpb25hbGx5LCBhbiBgb3B0aW9uc2Agb2JqZWN0IHdpdGggYSB2YWxpZCBgYXNgIHByb3BlcnR5LiVzJywgZW5jb3VudGVyZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYXMgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmFzID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYXMgOiAnc2NyaXB0JztcblxuICAgICAgc3dpdGNoIChhcykge1xuICAgICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgLy8gV2UgaGF2ZSBhbiBpbnZhbGlkIGFzIHR5cGUgYW5kIG5lZWQgdG8gd2FyblxuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIHR5cGVPZkFzID0gZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nRW51bUZvcldhcm5pbmcoYXMpO1xuXG4gICAgICAgICAgICBlcnJvcignUmVhY3RET00ucHJlaW5pdE1vZHVsZSgpOiBDdXJyZW50bHkgdGhlIG9ubHkgc3VwcG9ydGVkIFwiYXNcIiB0eXBlIGZvciB0aGlzIGZ1bmN0aW9uIGlzIFwic2NyaXB0XCInICsgJyBidXQgcmVjZWl2ZWQgXCIlc1wiIGluc3RlYWQuIFRoaXMgd2FybmluZyB3YXMgZ2VuZXJhdGVkIGZvciBgaHJlZmAgXCIlc1wiLiBJbiB0aGUgZnV0dXJlIG90aGVyJyArICcgbW9kdWxlIHR5cGVzIHdpbGwgYmUgc3VwcG9ydGVkLCBhbGlnbmluZyB3aXRoIHRoZSBpbXBvcnQtYXR0cmlidXRlcyBwcm9wb3NhbC4gTGVhcm4gbW9yZSBoZXJlOicgKyAnIChodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pbXBvcnQtYXR0cmlidXRlcyknLCB0eXBlT2ZBcywgaHJlZik7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBkaXNwYXRjaGVyID0gRGlzcGF0Y2hlci5jdXJyZW50O1xuXG4gIGlmIChkaXNwYXRjaGVyICYmIHR5cGVvZiBocmVmID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcgJiYgb3B0aW9ucyAhPT0gbnVsbCkge1xuICAgICAgaWYgKG9wdGlvbnMuYXMgPT0gbnVsbCB8fCBvcHRpb25zLmFzID09PSAnc2NyaXB0Jykge1xuICAgICAgICB2YXIgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKG9wdGlvbnMuYXMsIG9wdGlvbnMuY3Jvc3NPcmlnaW4pO1xuICAgICAgICBkaXNwYXRjaGVyLnByZWluaXRNb2R1bGVTY3JpcHQoaHJlZiwge1xuICAgICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgICBpbnRlZ3JpdHk6IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmludGVncml0eSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBub25jZTogdHlwZW9mIG9wdGlvbnMubm9uY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5ub25jZSA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMgPT0gbnVsbCkge1xuICAgICAgZGlzcGF0Y2hlci5wcmVpbml0TW9kdWxlU2NyaXB0KGhyZWYpO1xuICAgIH1cbiAgfSAvLyBXZSBkb24ndCBlcnJvciBiZWNhdXNlIHByZWluaXQgbmVlZHMgdG8gYmUgcmVzaWxpZW50IHRvIGJlaW5nIGNhbGxlZCBpbiBhIHZhcmlldHkgb2Ygc2NvcGVzXG4gIC8vIGFuZCB0aGUgcnVudGltZSBtYXkgbm90IGJlIGNhcGFibGUgb2YgcmVzcG9uZGluZy4gVGhlIGZ1bmN0aW9uIGlzIG9wdGltaXN0aWMgYW5kIG5vdCBjcml0aWNhbFxuICAvLyBzbyB3ZSBmYXZvciBzaWxlbnQgYmFpbG91dCBvdmVyIHdhcm5pbmcgb3IgZXJyb3JpbmcuXG5cbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyh0aGluZykge1xuICByZXR1cm4gdGhpbmcgPT09IG51bGwgPyAnYG51bGxgJyA6IHRoaW5nID09PSB1bmRlZmluZWQgPyAnYHVuZGVmaW5lZGAnIDogdGhpbmcgPT09ICcnID8gJ2FuIGVtcHR5IHN0cmluZycgOiBcInNvbWV0aGluZyB3aXRoIHR5cGUgXFxcIlwiICsgdHlwZW9mIHRoaW5nICsgXCJcXFwiXCI7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKHRoaW5nKSB7XG4gIHJldHVybiB0aGluZyA9PT0gbnVsbCA/ICdgbnVsbGAnIDogdGhpbmcgPT09IHVuZGVmaW5lZCA/ICdgdW5kZWZpbmVkYCcgOiB0aGluZyA9PT0gJycgPyAnYW4gZW1wdHkgc3RyaW5nJyA6IHR5cGVvZiB0aGluZyA9PT0gJ3N0cmluZycgPyBKU09OLnN0cmluZ2lmeSh0aGluZykgOiB0eXBlb2YgdGhpbmcgPT09ICdudW1iZXInID8gJ2AnICsgdGhpbmcgKyAnYCcgOiBcInNvbWV0aGluZyB3aXRoIHR5cGUgXFxcIlwiICsgdHlwZW9mIHRoaW5nICsgXCJcXFwiXCI7XG59XG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjsgLy8gU2luY2UgdGhlIFwibm90IHBlbmRpbmdcIiB2YWx1ZSBpcyBhbHdheXMgdGhlIHNhbWUsIHdlIGNhbiByZXVzZSB0aGVcblxuZnVuY3Rpb24gcmVzb2x2ZURpc3BhdGNoZXIoKSB7XG4gIC8vIENvcGllZCBmcm9tIHJlYWN0L3NyYy9SZWFjdEhvb2tzLmpzLiBJdCdzIHRoZSBzYW1lIHRoaW5nIGJ1dCBpbiBhXG4gIC8vIGRpZmZlcmVudCBwYWNrYWdlLlxuICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudDtcblxuICB7XG4gICAgaWYgKGRpc3BhdGNoZXIgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yJyArICcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4nICsgJzEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbicgKyAnMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbicgKyAnMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcbicgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uJyk7XG4gICAgfVxuICB9IC8vIFdpbGwgcmVzdWx0IGluIGEgbnVsbCBhY2Nlc3MgZXJyb3IgaWYgYWNjZXNzZWQgb3V0c2lkZSByZW5kZXIgcGhhc2UuIFdlXG4gIC8vIGludGVudGlvbmFsbHkgZG9uJ3QgdGhyb3cgb3VyIG93biBlcnJvciBiZWNhdXNlIHRoaXMgaXMgaW4gYSBob3QgcGF0aC5cbiAgLy8gQWxzbyBoZWxwcyBlbnN1cmUgdGhpcyBpcyBpbmxpbmVkLlxuXG5cbiAgcmV0dXJuIGRpc3BhdGNoZXI7XG59XG5cbmZ1bmN0aW9uIHVzZUZvcm1TdGF0dXMoKSB7XG4gIHtcbiAgICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7IC8vICRGbG93Rml4TWVbbm90LWEtZnVuY3Rpb25dIFdlIGtub3cgdGhpcyBleGlzdHMgYmVjYXVzZSBvZiB0aGUgZmVhdHVyZSBjaGVjayBhYm92ZS5cblxuICAgIHJldHVybiBkaXNwYXRjaGVyLnVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHVzZUZvcm1TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKSB7XG4gIHtcbiAgICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7IC8vICRGbG93Rml4TWVbbm90LWEtZnVuY3Rpb25dIFRoaXMgaXMgdW5zdGFibGUsIHRodXMgb3B0aW9uYWxcblxuICAgIHJldHVybiBkaXNwYXRjaGVyLnVzZUZvcm1TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQb3J0YWwoKSB7XG4gIHRocm93IG5ldyBFcnJvcignY3JlYXRlUG9ydGFsIHdhcyBjYWxsZWQgb24gdGhlIHNlcnZlci4gUG9ydGFscyBhcmUgbm90IGN1cnJlbnRseScgKyAnIHN1cHBvcnRlZCBvbiB0aGUgc2VydmVyLiBVcGRhdGUgeW91ciBwcm9ncmFtIHRvIGNvbmRpdGlvbmFsbHkgY2FsbCcgKyAnIGNyZWF0ZVBvcnRhbCBvbiB0aGUgY2xpZW50IG9ubHkuJyk7XG59XG5mdW5jdGlvbiBmbHVzaFN5bmMoKSB7XG4gIHRocm93IG5ldyBFcnJvcignZmx1c2hTeW5jIHdhcyBjYWxsZWQgb24gdGhlIHNlcnZlci4gVGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEnICsgJyBmdW5jdGlvbiBiZWluZyBjYWxsZWQgZHVyaW5nIHJlbmRlciBvciBpbiBtb2R1bGUgc2NvcGUgdGhhdCB3YXMnICsgJyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgZnJvbSBhbiBlZmZlY3Qgb3IgZXZlbnQgaGFuZGxlci4gVXBkYXRlIHlvdXInICsgJyB0byBub3QgY2FsbCBmbHVzaFN5bmMgbm8gdGhlIHNlcnZlci4nKTtcbn0gLy8gb24gdGhlIHNlcnZlciB3ZSBqdXN0IGNhbGwgdGhlIGNhbGxiYWNrIGJlY2F1c2UgdGhlcmUgaXNcbi8vIG5vdCB1cGRhdGUgbWVjaGFuaXNtLiBSZWFsbHkgdGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiB0aGVcbi8vIHNlcnZlciBidXQgc2luY2UgdGhlIHNlbWFudGljcyBhcmUgZ2VuZXJhbGx5IGNsZWFyIGVub3VnaCB3ZVxuLy8gY2FuIHByb3ZpZGUgdGhpcyB0cml2aWFsIGltcGxlbWVudGF0aW9uLlxuXG5mdW5jdGlvbiBiYXRjaGVkVXBkYXRlcyhmbiwgYSkge1xuICByZXR1cm4gZm4oYSk7XG59XG5cbmZ1bmN0aW9uIGV4cGVyaW1lbnRhbF91c2VGb3JtU3RhdHVzKCkge1xuICB7XG4gICAgZXJyb3IoJ3VzZUZvcm1TdGF0dXMgaXMgbm93IGluIGNhbmFyeS4gUmVtb3ZlIHRoZSBleHBlcmltZW50YWxfIHByZWZpeC4gJyArICdUaGUgcHJlZml4ZWQgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuJyk7XG4gIH1cblxuICByZXR1cm4gdXNlRm9ybVN0YXR1cygpO1xufVxuZnVuY3Rpb24gZXhwZXJpbWVudGFsX3VzZUZvcm1TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKSB7XG4gIHtcbiAgICBlcnJvcigndXNlRm9ybVN0YXRlIGlzIG5vdyBpbiBjYW5hcnkuIFJlbW92ZSB0aGUgZXhwZXJpbWVudGFsXyBwcmVmaXguICcgKyAnVGhlIHByZWZpeGVkIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLicpO1xuICB9XG5cbiAgcmV0dXJuIHVzZUZvcm1TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKTtcbn1cblxuZXhwb3J0cy5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCA9IEludGVybmFscztcbmV4cG9ydHMuY3JlYXRlUG9ydGFsID0gY3JlYXRlUG9ydGFsO1xuZXhwb3J0cy5leHBlcmltZW50YWxfdXNlRm9ybVN0YXRlID0gZXhwZXJpbWVudGFsX3VzZUZvcm1TdGF0ZTtcbmV4cG9ydHMuZXhwZXJpbWVudGFsX3VzZUZvcm1TdGF0dXMgPSBleHBlcmltZW50YWxfdXNlRm9ybVN0YXR1cztcbmV4cG9ydHMuZmx1c2hTeW5jID0gZmx1c2hTeW5jO1xuZXhwb3J0cy5wcmVjb25uZWN0ID0gcHJlY29ubmVjdDtcbmV4cG9ydHMucHJlZmV0Y2hETlMgPSBwcmVmZXRjaEROUztcbmV4cG9ydHMucHJlaW5pdCA9IHByZWluaXQ7XG5leHBvcnRzLnByZWluaXRNb2R1bGUgPSBwcmVpbml0TW9kdWxlO1xuZXhwb3J0cy5wcmVsb2FkID0gcHJlbG9hZDtcbmV4cG9ydHMucHJlbG9hZE1vZHVsZSA9IHByZWxvYWRNb2R1bGU7XG5leHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID0gYmF0Y2hlZFVwZGF0ZXM7XG5leHBvcnRzLnVzZUZvcm1TdGF0ZSA9IHVzZUZvcm1TdGF0ZTtcbmV4cG9ydHMudXNlRm9ybVN0YXR1cyA9IHVzZUZvcm1TdGF0dXM7XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOlsicHJvY2VzcyIsIlJlYWN0IiwicmVxdWlyZSIsIlJlYWN0U2hhcmVkSW50ZXJuYWxzIiwiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJlcnJvciIsImZvcm1hdCIsIl9sZW4yIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleTIiLCJwcmludFdhcm5pbmciLCJsZXZlbCIsIlJlYWN0RGVidWdDdXJyZW50RnJhbWUiLCJzdGFjayIsImdldFN0YWNrQWRkZW5kdW0iLCJjb25jYXQiLCJhcmdzV2l0aEZvcm1hdCIsIm1hcCIsIml0ZW0iLCJTdHJpbmciLCJ1bnNoaWZ0IiwiRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJhcHBseSIsImNhbGwiLCJjb25zb2xlIiwiUmVhY3RWZXJzaW9uIiwiSW50ZXJuYWxzIiwidXNpbmdDbGllbnRFbnRyeVBvaW50IiwiRXZlbnRzIiwiRGlzcGF0Y2hlciIsImN1cnJlbnQiLCJnZXRDcm9zc09yaWdpblN0cmluZyIsImlucHV0IiwidW5kZWZpbmVkIiwiZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyIsImFzIiwicHJlZmV0Y2hETlMiLCJocmVmIiwiZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyIsIm9wdGlvbnMiLCJoYXNPd25Qcm9wZXJ0eSIsImdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nIiwiZGlzcGF0Y2hlciIsInByZWNvbm5lY3QiLCJjcm9zc09yaWdpbiIsInByZWxvYWQiLCJlbmNvdW50ZXJlZCIsImludGVncml0eSIsIm5vbmNlIiwidHlwZSIsImZldGNoUHJpb3JpdHkiLCJyZWZlcnJlclBvbGljeSIsImltYWdlU3JjU2V0IiwiaW1hZ2VTaXplcyIsInByZWxvYWRNb2R1bGUiLCJwcmVpbml0IiwicHJlaW5pdFN0eWxlIiwicHJlY2VkZW5jZSIsInByZWluaXRTY3JpcHQiLCJwcmVpbml0TW9kdWxlIiwidHlwZU9mQXMiLCJwcmVpbml0TW9kdWxlU2NyaXB0IiwidGhpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciIsInJlc29sdmVEaXNwYXRjaGVyIiwidXNlRm9ybVN0YXR1cyIsInVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzIiwidXNlRm9ybVN0YXRlIiwiYWN0aW9uIiwiaW5pdGlhbFN0YXRlIiwicGVybWFsaW5rIiwiY3JlYXRlUG9ydGFsIiwiRXJyb3IiLCJmbHVzaFN5bmMiLCJiYXRjaGVkVXBkYXRlcyIsImZuIiwiYSIsImV4cGVyaW1lbnRhbF91c2VGb3JtU3RhdHVzIiwiZXhwZXJpbWVudGFsX3VzZUZvcm1TdGF0ZSIsImV4cG9ydHMiLCJ1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyIsInZlcnNpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.development.js":
-/*!************************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.development.js ***!
- \************************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-dom-server.edge.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n var ReactDOM = __webpack_require__(/*! react-dom */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n var ReactVersion = \"18.3.0-canary-60a927d04-20240113\";\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n // by calls to these methods by a Babel plugin.\n //\n // In PROD (or in packages without access to React internals),\n // they are left as they are instead.\n function warn(format) {\n {\n {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n printWarning(\"warn\", format, args);\n }\n }\n }\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n // A pure JS implementation of a string hashing function. We do not use it for\n // security or obfuscation purposes, only to create compact hashes. So we\n // prioritize speed over collision avoidance. For example, we use this to hash\n // the component key path used by useFormState for MPA-style submissions.\n //\n // In environments where built-in hashing functions are available, we prefer\n // those instead. Like Node's crypto module, or Bun.hash. Unfortunately this\n // does not include the web standard crypto API because those methods are all\n // async. For our purposes, we need it to be sync because the cost of context\n // switching is too high to be worth it.\n //\n // The most popular hashing algorithm that meets these requirements in the JS\n // ecosystem is MurmurHash3, and almost all implementations I could find used\n // some version of the implementation by Gary Court inlined below.\n function createFastHashJS(key) {\n return murmurhash3_32_gc(key, 0);\n }\n /* eslint-disable prefer-const, no-fallthrough */ /**\n * @license\n *\n * JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)\n *\n * Copyright (c) 2011 Gary Court\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */ function murmurhash3_32_gc(key, seed) {\n var remainder, bytes, h1, h1b, c1, c2, k1, i;\n remainder = key.length & 3; // key.length % 4\n bytes = key.length - remainder;\n h1 = seed;\n c1 = 0xcc9e2d51;\n c2 = 0x1b873593;\n i = 0;\n while(i < bytes){\n k1 = key.charCodeAt(i) & 0xff | (key.charCodeAt(++i) & 0xff) << 8 | (key.charCodeAt(++i) & 0xff) << 16 | (key.charCodeAt(++i) & 0xff) << 24;\n ++i;\n k1 = (k1 & 0xffff) * c1 + (((k1 >>> 16) * c1 & 0xffff) << 16) & 0xffffffff;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = (k1 & 0xffff) * c2 + (((k1 >>> 16) * c2 & 0xffff) << 16) & 0xffffffff;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1b = (h1 & 0xffff) * 5 + (((h1 >>> 16) * 5 & 0xffff) << 16) & 0xffffffff;\n h1 = (h1b & 0xffff) + 0x6b64 + (((h1b >>> 16) + 0xe654 & 0xffff) << 16);\n }\n k1 = 0;\n switch(remainder){\n case 3:\n k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\n case 2:\n k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\n case 1:\n k1 ^= key.charCodeAt(i) & 0xff;\n k1 = (k1 & 0xffff) * c1 + (((k1 >>> 16) * c1 & 0xffff) << 16) & 0xffffffff;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = (k1 & 0xffff) * c2 + (((k1 >>> 16) * c2 & 0xffff) << 16) & 0xffffffff;\n h1 ^= k1;\n }\n h1 ^= key.length;\n h1 ^= h1 >>> 16;\n h1 = (h1 & 0xffff) * 0x85ebca6b + (((h1 >>> 16) * 0x85ebca6b & 0xffff) << 16) & 0xffffffff;\n h1 ^= h1 >>> 13;\n h1 = (h1 & 0xffff) * 0xc2b2ae35 + (((h1 >>> 16) * 0xc2b2ae35 & 0xffff) << 16) & 0xffffffff;\n h1 ^= h1 >>> 16;\n return h1 >>> 0;\n }\n function scheduleWork(callback) {\n setTimeout(callback, 0);\n }\n var VIEW_SIZE = 512;\n var currentView = null;\n var writtenBytes = 0;\n function beginWriting(destination) {\n currentView = new Uint8Array(VIEW_SIZE);\n writtenBytes = 0;\n }\n function writeChunk(destination, chunk) {\n if (chunk.byteLength === 0) {\n return;\n }\n if (chunk.byteLength > VIEW_SIZE) {\n {\n if (precomputedChunkSet.has(chunk)) {\n error(\"A large precomputed chunk was passed to writeChunk without being copied.\" + \" Large chunks get enqueued directly and are not copied. This is incompatible with precomputed chunks because you cannot enqueue the same precomputed chunk twice.\" + ' Use \"cloneChunk\" to make a copy of this large precomputed chunk before writing it. This is a bug in React.');\n }\n }\n // one that is cached by the streaming renderer. We will enqueu\n // it directly and expect it is not re-used\n if (writtenBytes > 0) {\n destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes));\n currentView = new Uint8Array(VIEW_SIZE);\n writtenBytes = 0;\n }\n destination.enqueue(chunk);\n return;\n }\n var bytesToWrite = chunk;\n var allowableBytes = currentView.length - writtenBytes;\n if (allowableBytes < bytesToWrite.byteLength) {\n // this chunk would overflow the current view. We enqueue a full view\n // and start a new view with the remaining chunk\n if (allowableBytes === 0) {\n // the current view is already full, send it\n destination.enqueue(currentView);\n } else {\n // fill up the current view and apply the remaining chunk bytes\n // to a new view.\n currentView.set(bytesToWrite.subarray(0, allowableBytes), writtenBytes); // writtenBytes += allowableBytes; // this can be skipped because we are going to immediately reset the view\n destination.enqueue(currentView);\n bytesToWrite = bytesToWrite.subarray(allowableBytes);\n }\n currentView = new Uint8Array(VIEW_SIZE);\n writtenBytes = 0;\n }\n currentView.set(bytesToWrite, writtenBytes);\n writtenBytes += bytesToWrite.byteLength;\n }\n function writeChunkAndReturn(destination, chunk) {\n writeChunk(destination, chunk); // in web streams there is no backpressure so we can alwas write more\n return true;\n }\n function completeWriting(destination) {\n if (currentView && writtenBytes > 0) {\n destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes));\n currentView = null;\n writtenBytes = 0;\n }\n }\n function close(destination) {\n destination.close();\n }\n var textEncoder = new TextEncoder();\n function stringToChunk(content) {\n return textEncoder.encode(content);\n }\n var precomputedChunkSet = new Set();\n function stringToPrecomputedChunk(content) {\n var precomputedChunk = textEncoder.encode(content);\n {\n precomputedChunkSet.add(precomputedChunk);\n }\n return precomputedChunk;\n }\n function clonePrecomputedChunk(precomputedChunk) {\n return precomputedChunk.byteLength > VIEW_SIZE ? precomputedChunk.slice() : precomputedChunk;\n }\n function closeWithError(destination, error) {\n // $FlowFixMe[method-unbinding]\n if (typeof destination.error === \"function\") {\n // $FlowFixMe[incompatible-call]: This is an Error object or the destination accepts other types.\n destination.error(error);\n } else {\n // Earlier implementations doesn't support this method. In that environment you're\n // supposed to throw from a promise returned but we don't return a promise in our\n // approach. We could fork this implementation but this is environment is an edge\n // case to begin with. It's even less common to run this in an older environment.\n // Even then, this is not where errors are supposed to happen and they get reported\n // to a global callback in addition to this anyway. So it's fine just to close this.\n destination.close();\n }\n }\n var assign = Object.assign;\n /*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */ // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === \"function\" && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || \"Object\"; // $FlowFixMe[incompatible-return]\n return type;\n }\n } // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n }\n function testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return \"\" + value;\n }\n function checkAttributeStringCoercion(value, attributeName) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided `%s` attribute is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", attributeName, typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n function checkOptionStringCoercion(value, propName) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided `%s` option is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", propName, typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n function checkCSSPropertyStringCoercion(value, propName) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided `%s` CSS property is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", propName, typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n function checkHtmlStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided HTML markup uses a value of unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n // -----------------------------------------------------------------------------\n var enableFloat = true; // Enables unstable_useMemoCache hook, intended as a compilation target for\n // $FlowFixMe[method-unbinding]\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n /* eslint-disable max-len */ var ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n /* eslint-enable max-len */ var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n var VALID_ATTRIBUTE_NAME_REGEX = new RegExp(\"^[\" + ATTRIBUTE_NAME_START_CHAR + \"][\" + ATTRIBUTE_NAME_CHAR + \"]*$\");\n var illegalAttributeNameCache = {};\n var validatedAttributeNameCache = {};\n function isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n {\n error(\"Invalid attribute name: `%s`\", attributeName);\n }\n return false;\n }\n /**\n * CSS properties which accept numbers but are not in units of \"px\".\n */ var unitlessNumbers = new Set([\n \"animationIterationCount\",\n \"aspectRatio\",\n \"borderImageOutset\",\n \"borderImageSlice\",\n \"borderImageWidth\",\n \"boxFlex\",\n \"boxFlexGroup\",\n \"boxOrdinalGroup\",\n \"columnCount\",\n \"columns\",\n \"flex\",\n \"flexGrow\",\n \"flexPositive\",\n \"flexShrink\",\n \"flexNegative\",\n \"flexOrder\",\n \"gridArea\",\n \"gridRow\",\n \"gridRowEnd\",\n \"gridRowSpan\",\n \"gridRowStart\",\n \"gridColumn\",\n \"gridColumnEnd\",\n \"gridColumnSpan\",\n \"gridColumnStart\",\n \"fontWeight\",\n \"lineClamp\",\n \"lineHeight\",\n \"opacity\",\n \"order\",\n \"orphans\",\n \"scale\",\n \"tabSize\",\n \"widows\",\n \"zIndex\",\n \"zoom\",\n \"fillOpacity\",\n \"floodOpacity\",\n \"stopOpacity\",\n \"strokeDasharray\",\n \"strokeDashoffset\",\n \"strokeMiterlimit\",\n \"strokeOpacity\",\n \"strokeWidth\",\n \"MozAnimationIterationCount\",\n \"MozBoxFlex\",\n \"MozBoxFlexGroup\",\n \"MozLineClamp\",\n \"msAnimationIterationCount\",\n \"msFlex\",\n \"msZoom\",\n \"msFlexGrow\",\n \"msFlexNegative\",\n \"msFlexOrder\",\n \"msFlexPositive\",\n \"msFlexShrink\",\n \"msGridColumn\",\n \"msGridColumnSpan\",\n \"msGridRow\",\n \"msGridRowSpan\",\n \"WebkitAnimationIterationCount\",\n \"WebkitBoxFlex\",\n \"WebKitBoxFlexGroup\",\n \"WebkitBoxOrdinalGroup\",\n \"WebkitColumnCount\",\n \"WebkitColumns\",\n \"WebkitFlex\",\n \"WebkitFlexGrow\",\n \"WebkitFlexPositive\",\n \"WebkitFlexShrink\",\n \"WebkitLineClamp\"\n ]);\n function isUnitlessNumber(name) {\n return unitlessNumbers.has(name);\n }\n var aliases = new Map([\n [\n \"acceptCharset\",\n \"accept-charset\"\n ],\n [\n \"htmlFor\",\n \"for\"\n ],\n [\n \"httpEquiv\",\n \"http-equiv\"\n ],\n [\n \"crossOrigin\",\n \"crossorigin\"\n ],\n // Regular attributes that just accept strings.],\n [\n \"accentHeight\",\n \"accent-height\"\n ],\n [\n \"alignmentBaseline\",\n \"alignment-baseline\"\n ],\n [\n \"arabicForm\",\n \"arabic-form\"\n ],\n [\n \"baselineShift\",\n \"baseline-shift\"\n ],\n [\n \"capHeight\",\n \"cap-height\"\n ],\n [\n \"clipPath\",\n \"clip-path\"\n ],\n [\n \"clipRule\",\n \"clip-rule\"\n ],\n [\n \"colorInterpolation\",\n \"color-interpolation\"\n ],\n [\n \"colorInterpolationFilters\",\n \"color-interpolation-filters\"\n ],\n [\n \"colorProfile\",\n \"color-profile\"\n ],\n [\n \"colorRendering\",\n \"color-rendering\"\n ],\n [\n \"dominantBaseline\",\n \"dominant-baseline\"\n ],\n [\n \"enableBackground\",\n \"enable-background\"\n ],\n [\n \"fillOpacity\",\n \"fill-opacity\"\n ],\n [\n \"fillRule\",\n \"fill-rule\"\n ],\n [\n \"floodColor\",\n \"flood-color\"\n ],\n [\n \"floodOpacity\",\n \"flood-opacity\"\n ],\n [\n \"fontFamily\",\n \"font-family\"\n ],\n [\n \"fontSize\",\n \"font-size\"\n ],\n [\n \"fontSizeAdjust\",\n \"font-size-adjust\"\n ],\n [\n \"fontStretch\",\n \"font-stretch\"\n ],\n [\n \"fontStyle\",\n \"font-style\"\n ],\n [\n \"fontVariant\",\n \"font-variant\"\n ],\n [\n \"fontWeight\",\n \"font-weight\"\n ],\n [\n \"glyphName\",\n \"glyph-name\"\n ],\n [\n \"glyphOrientationHorizontal\",\n \"glyph-orientation-horizontal\"\n ],\n [\n \"glyphOrientationVertical\",\n \"glyph-orientation-vertical\"\n ],\n [\n \"horizAdvX\",\n \"horiz-adv-x\"\n ],\n [\n \"horizOriginX\",\n \"horiz-origin-x\"\n ],\n [\n \"imageRendering\",\n \"image-rendering\"\n ],\n [\n \"letterSpacing\",\n \"letter-spacing\"\n ],\n [\n \"lightingColor\",\n \"lighting-color\"\n ],\n [\n \"markerEnd\",\n \"marker-end\"\n ],\n [\n \"markerMid\",\n \"marker-mid\"\n ],\n [\n \"markerStart\",\n \"marker-start\"\n ],\n [\n \"overlinePosition\",\n \"overline-position\"\n ],\n [\n \"overlineThickness\",\n \"overline-thickness\"\n ],\n [\n \"paintOrder\",\n \"paint-order\"\n ],\n [\n \"panose-1\",\n \"panose-1\"\n ],\n [\n \"pointerEvents\",\n \"pointer-events\"\n ],\n [\n \"renderingIntent\",\n \"rendering-intent\"\n ],\n [\n \"shapeRendering\",\n \"shape-rendering\"\n ],\n [\n \"stopColor\",\n \"stop-color\"\n ],\n [\n \"stopOpacity\",\n \"stop-opacity\"\n ],\n [\n \"strikethroughPosition\",\n \"strikethrough-position\"\n ],\n [\n \"strikethroughThickness\",\n \"strikethrough-thickness\"\n ],\n [\n \"strokeDasharray\",\n \"stroke-dasharray\"\n ],\n [\n \"strokeDashoffset\",\n \"stroke-dashoffset\"\n ],\n [\n \"strokeLinecap\",\n \"stroke-linecap\"\n ],\n [\n \"strokeLinejoin\",\n \"stroke-linejoin\"\n ],\n [\n \"strokeMiterlimit\",\n \"stroke-miterlimit\"\n ],\n [\n \"strokeOpacity\",\n \"stroke-opacity\"\n ],\n [\n \"strokeWidth\",\n \"stroke-width\"\n ],\n [\n \"textAnchor\",\n \"text-anchor\"\n ],\n [\n \"textDecoration\",\n \"text-decoration\"\n ],\n [\n \"textRendering\",\n \"text-rendering\"\n ],\n [\n \"transformOrigin\",\n \"transform-origin\"\n ],\n [\n \"underlinePosition\",\n \"underline-position\"\n ],\n [\n \"underlineThickness\",\n \"underline-thickness\"\n ],\n [\n \"unicodeBidi\",\n \"unicode-bidi\"\n ],\n [\n \"unicodeRange\",\n \"unicode-range\"\n ],\n [\n \"unitsPerEm\",\n \"units-per-em\"\n ],\n [\n \"vAlphabetic\",\n \"v-alphabetic\"\n ],\n [\n \"vHanging\",\n \"v-hanging\"\n ],\n [\n \"vIdeographic\",\n \"v-ideographic\"\n ],\n [\n \"vMathematical\",\n \"v-mathematical\"\n ],\n [\n \"vectorEffect\",\n \"vector-effect\"\n ],\n [\n \"vertAdvY\",\n \"vert-adv-y\"\n ],\n [\n \"vertOriginX\",\n \"vert-origin-x\"\n ],\n [\n \"vertOriginY\",\n \"vert-origin-y\"\n ],\n [\n \"wordSpacing\",\n \"word-spacing\"\n ],\n [\n \"writingMode\",\n \"writing-mode\"\n ],\n [\n \"xmlnsXlink\",\n \"xmlns:xlink\"\n ],\n [\n \"xHeight\",\n \"x-height\"\n ]\n ]);\n function getAttributeAlias(name) {\n return aliases.get(name) || name;\n }\n var hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n };\n function checkControlledValueProps(tagName, props) {\n {\n if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) {\n if (tagName === \"select\") {\n error(\"You provided a `value` prop to a form field without an \" + \"`onChange` handler. This will render a read-only field. If \" + \"the field should be mutable use `defaultValue`. Otherwise, set `onChange`.\");\n } else {\n error(\"You provided a `value` prop to a form field without an \" + \"`onChange` handler. This will render a read-only field. If \" + \"the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.\");\n }\n }\n if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) {\n error(\"You provided a `checked` prop to a form field without an \" + \"`onChange` handler. This will render a read-only field. If \" + \"the field should be mutable use `defaultChecked`. Otherwise, \" + \"set either `onChange` or `readOnly`.\");\n }\n }\n }\n var ariaProperties = {\n \"aria-current\": 0,\n // state\n \"aria-description\": 0,\n \"aria-details\": 0,\n \"aria-disabled\": 0,\n // state\n \"aria-hidden\": 0,\n // state\n \"aria-invalid\": 0,\n // state\n \"aria-keyshortcuts\": 0,\n \"aria-label\": 0,\n \"aria-roledescription\": 0,\n // Widget Attributes\n \"aria-autocomplete\": 0,\n \"aria-checked\": 0,\n \"aria-expanded\": 0,\n \"aria-haspopup\": 0,\n \"aria-level\": 0,\n \"aria-modal\": 0,\n \"aria-multiline\": 0,\n \"aria-multiselectable\": 0,\n \"aria-orientation\": 0,\n \"aria-placeholder\": 0,\n \"aria-pressed\": 0,\n \"aria-readonly\": 0,\n \"aria-required\": 0,\n \"aria-selected\": 0,\n \"aria-sort\": 0,\n \"aria-valuemax\": 0,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": 0,\n \"aria-valuetext\": 0,\n // Live Region Attributes\n \"aria-atomic\": 0,\n \"aria-busy\": 0,\n \"aria-live\": 0,\n \"aria-relevant\": 0,\n // Drag-and-Drop Attributes\n \"aria-dropeffect\": 0,\n \"aria-grabbed\": 0,\n // Relationship Attributes\n \"aria-activedescendant\": 0,\n \"aria-colcount\": 0,\n \"aria-colindex\": 0,\n \"aria-colspan\": 0,\n \"aria-controls\": 0,\n \"aria-describedby\": 0,\n \"aria-errormessage\": 0,\n \"aria-flowto\": 0,\n \"aria-labelledby\": 0,\n \"aria-owns\": 0,\n \"aria-posinset\": 0,\n \"aria-rowcount\": 0,\n \"aria-rowindex\": 0,\n \"aria-rowspan\": 0,\n \"aria-setsize\": 0\n };\n var warnedProperties$1 = {};\n var rARIA$1 = new RegExp(\"^(aria)-[\" + ATTRIBUTE_NAME_CHAR + \"]*$\");\n var rARIACamel$1 = new RegExp(\"^(aria)[A-Z][\" + ATTRIBUTE_NAME_CHAR + \"]*$\");\n function validateProperty$1(tagName, name) {\n {\n if (hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n return true;\n }\n if (rARIACamel$1.test(name)) {\n var ariaName = \"aria-\" + name.slice(4).toLowerCase();\n var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n if (correctName == null) {\n error(\"Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.\", name);\n warnedProperties$1[name] = true;\n return true;\n } // aria-* attributes should be lowercase; suggest the lowercase version.\n if (name !== correctName) {\n error(\"Invalid ARIA attribute `%s`. Did you mean `%s`?\", name, correctName);\n warnedProperties$1[name] = true;\n return true;\n }\n }\n if (rARIA$1.test(name)) {\n var lowerCasedName = name.toLowerCase();\n var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n if (standardName == null) {\n warnedProperties$1[name] = true;\n return false;\n } // aria-* attributes should be lowercase; suggest the lowercase version.\n if (name !== standardName) {\n error(\"Unknown ARIA attribute `%s`. Did you mean `%s`?\", name, standardName);\n warnedProperties$1[name] = true;\n return true;\n }\n }\n }\n return true;\n }\n function validateProperties$2(type, props) {\n {\n var invalidProps = [];\n for(var key in props){\n var isValid = validateProperty$1(type, key);\n if (!isValid) {\n invalidProps.push(key);\n }\n }\n var unknownPropString = invalidProps.map(function(prop) {\n return \"`\" + prop + \"`\";\n }).join(\", \");\n if (invalidProps.length === 1) {\n error(\"Invalid aria prop %s on <%s> tag. \" + \"For details, see https://reactjs.org/link/invalid-aria-props\", unknownPropString, type);\n } else if (invalidProps.length > 1) {\n error(\"Invalid aria props %s on <%s> tag. \" + \"For details, see https://reactjs.org/link/invalid-aria-props\", unknownPropString, type);\n }\n }\n }\n var didWarnValueNull = false;\n function validateProperties$1(type, props) {\n {\n if (type !== \"input\" && type !== \"textarea\" && type !== \"select\") {\n return;\n }\n if (props != null && props.value === null && !didWarnValueNull) {\n didWarnValueNull = true;\n if (type === \"select\" && props.multiple) {\n error(\"`value` prop on `%s` should not be null. \" + \"Consider using an empty array when `multiple` is set to `true` \" + \"to clear the component or `undefined` for uncontrolled components.\", type);\n } else {\n error(\"`value` prop on `%s` should not be null. \" + \"Consider using an empty string to clear the component or `undefined` \" + \"for uncontrolled components.\", type);\n }\n }\n }\n }\n function isCustomElement(tagName, props) {\n if (tagName.indexOf(\"-\") === -1) {\n return false;\n }\n switch(tagName){\n // These are reserved SVG and MathML elements.\n // We don't mind this list too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return false;\n default:\n return true;\n }\n }\n // When adding attributes to the HTML or SVG allowed attribute list, be sure to\n // also add them to this module to ensure casing and incorrect name\n // warnings.\n var possibleStandardNames = {\n // HTML\n accept: \"accept\",\n acceptcharset: \"acceptCharset\",\n \"accept-charset\": \"acceptCharset\",\n accesskey: \"accessKey\",\n action: \"action\",\n allowfullscreen: \"allowFullScreen\",\n alt: \"alt\",\n as: \"as\",\n async: \"async\",\n autocapitalize: \"autoCapitalize\",\n autocomplete: \"autoComplete\",\n autocorrect: \"autoCorrect\",\n autofocus: \"autoFocus\",\n autoplay: \"autoPlay\",\n autosave: \"autoSave\",\n capture: \"capture\",\n cellpadding: \"cellPadding\",\n cellspacing: \"cellSpacing\",\n challenge: \"challenge\",\n charset: \"charSet\",\n checked: \"checked\",\n children: \"children\",\n cite: \"cite\",\n class: \"className\",\n classid: \"classID\",\n classname: \"className\",\n cols: \"cols\",\n colspan: \"colSpan\",\n content: \"content\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n controls: \"controls\",\n controlslist: \"controlsList\",\n coords: \"coords\",\n crossorigin: \"crossOrigin\",\n dangerouslysetinnerhtml: \"dangerouslySetInnerHTML\",\n data: \"data\",\n datetime: \"dateTime\",\n default: \"default\",\n defaultchecked: \"defaultChecked\",\n defaultvalue: \"defaultValue\",\n defer: \"defer\",\n dir: \"dir\",\n disabled: \"disabled\",\n disablepictureinpicture: \"disablePictureInPicture\",\n disableremoteplayback: \"disableRemotePlayback\",\n download: \"download\",\n draggable: \"draggable\",\n enctype: \"encType\",\n enterkeyhint: \"enterKeyHint\",\n fetchpriority: \"fetchPriority\",\n for: \"htmlFor\",\n form: \"form\",\n formmethod: \"formMethod\",\n formaction: \"formAction\",\n formenctype: \"formEncType\",\n formnovalidate: \"formNoValidate\",\n formtarget: \"formTarget\",\n frameborder: \"frameBorder\",\n headers: \"headers\",\n height: \"height\",\n hidden: \"hidden\",\n high: \"high\",\n href: \"href\",\n hreflang: \"hrefLang\",\n htmlfor: \"htmlFor\",\n httpequiv: \"httpEquiv\",\n \"http-equiv\": \"httpEquiv\",\n icon: \"icon\",\n id: \"id\",\n imagesizes: \"imageSizes\",\n imagesrcset: \"imageSrcSet\",\n innerhtml: \"innerHTML\",\n inputmode: \"inputMode\",\n integrity: \"integrity\",\n is: \"is\",\n itemid: \"itemID\",\n itemprop: \"itemProp\",\n itemref: \"itemRef\",\n itemscope: \"itemScope\",\n itemtype: \"itemType\",\n keyparams: \"keyParams\",\n keytype: \"keyType\",\n kind: \"kind\",\n label: \"label\",\n lang: \"lang\",\n list: \"list\",\n loop: \"loop\",\n low: \"low\",\n manifest: \"manifest\",\n marginwidth: \"marginWidth\",\n marginheight: \"marginHeight\",\n max: \"max\",\n maxlength: \"maxLength\",\n media: \"media\",\n mediagroup: \"mediaGroup\",\n method: \"method\",\n min: \"min\",\n minlength: \"minLength\",\n multiple: \"multiple\",\n muted: \"muted\",\n name: \"name\",\n nomodule: \"noModule\",\n nonce: \"nonce\",\n novalidate: \"noValidate\",\n open: \"open\",\n optimum: \"optimum\",\n pattern: \"pattern\",\n placeholder: \"placeholder\",\n playsinline: \"playsInline\",\n poster: \"poster\",\n preload: \"preload\",\n profile: \"profile\",\n radiogroup: \"radioGroup\",\n readonly: \"readOnly\",\n referrerpolicy: \"referrerPolicy\",\n rel: \"rel\",\n required: \"required\",\n reversed: \"reversed\",\n role: \"role\",\n rows: \"rows\",\n rowspan: \"rowSpan\",\n sandbox: \"sandbox\",\n scope: \"scope\",\n scoped: \"scoped\",\n scrolling: \"scrolling\",\n seamless: \"seamless\",\n selected: \"selected\",\n shape: \"shape\",\n size: \"size\",\n sizes: \"sizes\",\n span: \"span\",\n spellcheck: \"spellCheck\",\n src: \"src\",\n srcdoc: \"srcDoc\",\n srclang: \"srcLang\",\n srcset: \"srcSet\",\n start: \"start\",\n step: \"step\",\n style: \"style\",\n summary: \"summary\",\n tabindex: \"tabIndex\",\n target: \"target\",\n title: \"title\",\n type: \"type\",\n usemap: \"useMap\",\n value: \"value\",\n width: \"width\",\n wmode: \"wmode\",\n wrap: \"wrap\",\n // SVG\n about: \"about\",\n accentheight: \"accentHeight\",\n \"accent-height\": \"accentHeight\",\n accumulate: \"accumulate\",\n additive: \"additive\",\n alignmentbaseline: \"alignmentBaseline\",\n \"alignment-baseline\": \"alignmentBaseline\",\n allowreorder: \"allowReorder\",\n alphabetic: \"alphabetic\",\n amplitude: \"amplitude\",\n arabicform: \"arabicForm\",\n \"arabic-form\": \"arabicForm\",\n ascent: \"ascent\",\n attributename: \"attributeName\",\n attributetype: \"attributeType\",\n autoreverse: \"autoReverse\",\n azimuth: \"azimuth\",\n basefrequency: \"baseFrequency\",\n baselineshift: \"baselineShift\",\n \"baseline-shift\": \"baselineShift\",\n baseprofile: \"baseProfile\",\n bbox: \"bbox\",\n begin: \"begin\",\n bias: \"bias\",\n by: \"by\",\n calcmode: \"calcMode\",\n capheight: \"capHeight\",\n \"cap-height\": \"capHeight\",\n clip: \"clip\",\n clippath: \"clipPath\",\n \"clip-path\": \"clipPath\",\n clippathunits: \"clipPathUnits\",\n cliprule: \"clipRule\",\n \"clip-rule\": \"clipRule\",\n color: \"color\",\n colorinterpolation: \"colorInterpolation\",\n \"color-interpolation\": \"colorInterpolation\",\n colorinterpolationfilters: \"colorInterpolationFilters\",\n \"color-interpolation-filters\": \"colorInterpolationFilters\",\n colorprofile: \"colorProfile\",\n \"color-profile\": \"colorProfile\",\n colorrendering: \"colorRendering\",\n \"color-rendering\": \"colorRendering\",\n contentscripttype: \"contentScriptType\",\n contentstyletype: \"contentStyleType\",\n cursor: \"cursor\",\n cx: \"cx\",\n cy: \"cy\",\n d: \"d\",\n datatype: \"datatype\",\n decelerate: \"decelerate\",\n descent: \"descent\",\n diffuseconstant: \"diffuseConstant\",\n direction: \"direction\",\n display: \"display\",\n divisor: \"divisor\",\n dominantbaseline: \"dominantBaseline\",\n \"dominant-baseline\": \"dominantBaseline\",\n dur: \"dur\",\n dx: \"dx\",\n dy: \"dy\",\n edgemode: \"edgeMode\",\n elevation: \"elevation\",\n enablebackground: \"enableBackground\",\n \"enable-background\": \"enableBackground\",\n end: \"end\",\n exponent: \"exponent\",\n externalresourcesrequired: \"externalResourcesRequired\",\n fill: \"fill\",\n fillopacity: \"fillOpacity\",\n \"fill-opacity\": \"fillOpacity\",\n fillrule: \"fillRule\",\n \"fill-rule\": \"fillRule\",\n filter: \"filter\",\n filterres: \"filterRes\",\n filterunits: \"filterUnits\",\n floodopacity: \"floodOpacity\",\n \"flood-opacity\": \"floodOpacity\",\n floodcolor: \"floodColor\",\n \"flood-color\": \"floodColor\",\n focusable: \"focusable\",\n fontfamily: \"fontFamily\",\n \"font-family\": \"fontFamily\",\n fontsize: \"fontSize\",\n \"font-size\": \"fontSize\",\n fontsizeadjust: \"fontSizeAdjust\",\n \"font-size-adjust\": \"fontSizeAdjust\",\n fontstretch: \"fontStretch\",\n \"font-stretch\": \"fontStretch\",\n fontstyle: \"fontStyle\",\n \"font-style\": \"fontStyle\",\n fontvariant: \"fontVariant\",\n \"font-variant\": \"fontVariant\",\n fontweight: \"fontWeight\",\n \"font-weight\": \"fontWeight\",\n format: \"format\",\n from: \"from\",\n fx: \"fx\",\n fy: \"fy\",\n g1: \"g1\",\n g2: \"g2\",\n glyphname: \"glyphName\",\n \"glyph-name\": \"glyphName\",\n glyphorientationhorizontal: \"glyphOrientationHorizontal\",\n \"glyph-orientation-horizontal\": \"glyphOrientationHorizontal\",\n glyphorientationvertical: \"glyphOrientationVertical\",\n \"glyph-orientation-vertical\": \"glyphOrientationVertical\",\n glyphref: \"glyphRef\",\n gradienttransform: \"gradientTransform\",\n gradientunits: \"gradientUnits\",\n hanging: \"hanging\",\n horizadvx: \"horizAdvX\",\n \"horiz-adv-x\": \"horizAdvX\",\n horizoriginx: \"horizOriginX\",\n \"horiz-origin-x\": \"horizOriginX\",\n ideographic: \"ideographic\",\n imagerendering: \"imageRendering\",\n \"image-rendering\": \"imageRendering\",\n in2: \"in2\",\n in: \"in\",\n inlist: \"inlist\",\n intercept: \"intercept\",\n k1: \"k1\",\n k2: \"k2\",\n k3: \"k3\",\n k4: \"k4\",\n k: \"k\",\n kernelmatrix: \"kernelMatrix\",\n kernelunitlength: \"kernelUnitLength\",\n kerning: \"kerning\",\n keypoints: \"keyPoints\",\n keysplines: \"keySplines\",\n keytimes: \"keyTimes\",\n lengthadjust: \"lengthAdjust\",\n letterspacing: \"letterSpacing\",\n \"letter-spacing\": \"letterSpacing\",\n lightingcolor: \"lightingColor\",\n \"lighting-color\": \"lightingColor\",\n limitingconeangle: \"limitingConeAngle\",\n local: \"local\",\n markerend: \"markerEnd\",\n \"marker-end\": \"markerEnd\",\n markerheight: \"markerHeight\",\n markermid: \"markerMid\",\n \"marker-mid\": \"markerMid\",\n markerstart: \"markerStart\",\n \"marker-start\": \"markerStart\",\n markerunits: \"markerUnits\",\n markerwidth: \"markerWidth\",\n mask: \"mask\",\n maskcontentunits: \"maskContentUnits\",\n maskunits: \"maskUnits\",\n mathematical: \"mathematical\",\n mode: \"mode\",\n numoctaves: \"numOctaves\",\n offset: \"offset\",\n opacity: \"opacity\",\n operator: \"operator\",\n order: \"order\",\n orient: \"orient\",\n orientation: \"orientation\",\n origin: \"origin\",\n overflow: \"overflow\",\n overlineposition: \"overlinePosition\",\n \"overline-position\": \"overlinePosition\",\n overlinethickness: \"overlineThickness\",\n \"overline-thickness\": \"overlineThickness\",\n paintorder: \"paintOrder\",\n \"paint-order\": \"paintOrder\",\n panose1: \"panose1\",\n \"panose-1\": \"panose1\",\n pathlength: \"pathLength\",\n patterncontentunits: \"patternContentUnits\",\n patterntransform: \"patternTransform\",\n patternunits: \"patternUnits\",\n pointerevents: \"pointerEvents\",\n \"pointer-events\": \"pointerEvents\",\n points: \"points\",\n pointsatx: \"pointsAtX\",\n pointsaty: \"pointsAtY\",\n pointsatz: \"pointsAtZ\",\n prefix: \"prefix\",\n preservealpha: \"preserveAlpha\",\n preserveaspectratio: \"preserveAspectRatio\",\n primitiveunits: \"primitiveUnits\",\n property: \"property\",\n r: \"r\",\n radius: \"radius\",\n refx: \"refX\",\n refy: \"refY\",\n renderingintent: \"renderingIntent\",\n \"rendering-intent\": \"renderingIntent\",\n repeatcount: \"repeatCount\",\n repeatdur: \"repeatDur\",\n requiredextensions: \"requiredExtensions\",\n requiredfeatures: \"requiredFeatures\",\n resource: \"resource\",\n restart: \"restart\",\n result: \"result\",\n results: \"results\",\n rotate: \"rotate\",\n rx: \"rx\",\n ry: \"ry\",\n scale: \"scale\",\n security: \"security\",\n seed: \"seed\",\n shaperendering: \"shapeRendering\",\n \"shape-rendering\": \"shapeRendering\",\n slope: \"slope\",\n spacing: \"spacing\",\n specularconstant: \"specularConstant\",\n specularexponent: \"specularExponent\",\n speed: \"speed\",\n spreadmethod: \"spreadMethod\",\n startoffset: \"startOffset\",\n stddeviation: \"stdDeviation\",\n stemh: \"stemh\",\n stemv: \"stemv\",\n stitchtiles: \"stitchTiles\",\n stopcolor: \"stopColor\",\n \"stop-color\": \"stopColor\",\n stopopacity: \"stopOpacity\",\n \"stop-opacity\": \"stopOpacity\",\n strikethroughposition: \"strikethroughPosition\",\n \"strikethrough-position\": \"strikethroughPosition\",\n strikethroughthickness: \"strikethroughThickness\",\n \"strikethrough-thickness\": \"strikethroughThickness\",\n string: \"string\",\n stroke: \"stroke\",\n strokedasharray: \"strokeDasharray\",\n \"stroke-dasharray\": \"strokeDasharray\",\n strokedashoffset: \"strokeDashoffset\",\n \"stroke-dashoffset\": \"strokeDashoffset\",\n strokelinecap: \"strokeLinecap\",\n \"stroke-linecap\": \"strokeLinecap\",\n strokelinejoin: \"strokeLinejoin\",\n \"stroke-linejoin\": \"strokeLinejoin\",\n strokemiterlimit: \"strokeMiterlimit\",\n \"stroke-miterlimit\": \"strokeMiterlimit\",\n strokewidth: \"strokeWidth\",\n \"stroke-width\": \"strokeWidth\",\n strokeopacity: \"strokeOpacity\",\n \"stroke-opacity\": \"strokeOpacity\",\n suppresscontenteditablewarning: \"suppressContentEditableWarning\",\n suppresshydrationwarning: \"suppressHydrationWarning\",\n surfacescale: \"surfaceScale\",\n systemlanguage: \"systemLanguage\",\n tablevalues: \"tableValues\",\n targetx: \"targetX\",\n targety: \"targetY\",\n textanchor: \"textAnchor\",\n \"text-anchor\": \"textAnchor\",\n textdecoration: \"textDecoration\",\n \"text-decoration\": \"textDecoration\",\n textlength: \"textLength\",\n textrendering: \"textRendering\",\n \"text-rendering\": \"textRendering\",\n to: \"to\",\n transform: \"transform\",\n transformorigin: \"transformOrigin\",\n \"transform-origin\": \"transformOrigin\",\n typeof: \"typeof\",\n u1: \"u1\",\n u2: \"u2\",\n underlineposition: \"underlinePosition\",\n \"underline-position\": \"underlinePosition\",\n underlinethickness: \"underlineThickness\",\n \"underline-thickness\": \"underlineThickness\",\n unicode: \"unicode\",\n unicodebidi: \"unicodeBidi\",\n \"unicode-bidi\": \"unicodeBidi\",\n unicoderange: \"unicodeRange\",\n \"unicode-range\": \"unicodeRange\",\n unitsperem: \"unitsPerEm\",\n \"units-per-em\": \"unitsPerEm\",\n unselectable: \"unselectable\",\n valphabetic: \"vAlphabetic\",\n \"v-alphabetic\": \"vAlphabetic\",\n values: \"values\",\n vectoreffect: \"vectorEffect\",\n \"vector-effect\": \"vectorEffect\",\n version: \"version\",\n vertadvy: \"vertAdvY\",\n \"vert-adv-y\": \"vertAdvY\",\n vertoriginx: \"vertOriginX\",\n \"vert-origin-x\": \"vertOriginX\",\n vertoriginy: \"vertOriginY\",\n \"vert-origin-y\": \"vertOriginY\",\n vhanging: \"vHanging\",\n \"v-hanging\": \"vHanging\",\n videographic: \"vIdeographic\",\n \"v-ideographic\": \"vIdeographic\",\n viewbox: \"viewBox\",\n viewtarget: \"viewTarget\",\n visibility: \"visibility\",\n vmathematical: \"vMathematical\",\n \"v-mathematical\": \"vMathematical\",\n vocab: \"vocab\",\n widths: \"widths\",\n wordspacing: \"wordSpacing\",\n \"word-spacing\": \"wordSpacing\",\n writingmode: \"writingMode\",\n \"writing-mode\": \"writingMode\",\n x1: \"x1\",\n x2: \"x2\",\n x: \"x\",\n xchannelselector: \"xChannelSelector\",\n xheight: \"xHeight\",\n \"x-height\": \"xHeight\",\n xlinkactuate: \"xlinkActuate\",\n \"xlink:actuate\": \"xlinkActuate\",\n xlinkarcrole: \"xlinkArcrole\",\n \"xlink:arcrole\": \"xlinkArcrole\",\n xlinkhref: \"xlinkHref\",\n \"xlink:href\": \"xlinkHref\",\n xlinkrole: \"xlinkRole\",\n \"xlink:role\": \"xlinkRole\",\n xlinkshow: \"xlinkShow\",\n \"xlink:show\": \"xlinkShow\",\n xlinktitle: \"xlinkTitle\",\n \"xlink:title\": \"xlinkTitle\",\n xlinktype: \"xlinkType\",\n \"xlink:type\": \"xlinkType\",\n xmlbase: \"xmlBase\",\n \"xml:base\": \"xmlBase\",\n xmllang: \"xmlLang\",\n \"xml:lang\": \"xmlLang\",\n xmlns: \"xmlns\",\n \"xml:space\": \"xmlSpace\",\n xmlnsxlink: \"xmlnsXlink\",\n \"xmlns:xlink\": \"xmlnsXlink\",\n xmlspace: \"xmlSpace\",\n y1: \"y1\",\n y2: \"y2\",\n y: \"y\",\n ychannelselector: \"yChannelSelector\",\n z: \"z\",\n zoomandpan: \"zoomAndPan\"\n };\n var warnedProperties = {};\n var EVENT_NAME_REGEX = /^on./;\n var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n var rARIA = new RegExp(\"^(aria)-[\" + ATTRIBUTE_NAME_CHAR + \"]*$\");\n var rARIACamel = new RegExp(\"^(aria)[A-Z][\" + ATTRIBUTE_NAME_CHAR + \"]*$\");\n function validateProperty(tagName, name, value, eventRegistry) {\n {\n if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name]) {\n return true;\n }\n var lowerCasedName = name.toLowerCase();\n if (lowerCasedName === \"onfocusin\" || lowerCasedName === \"onfocusout\") {\n error(\"React uses onFocus and onBlur instead of onFocusIn and onFocusOut. \" + \"All React events are normalized to bubble, so onFocusIn and onFocusOut \" + \"are not needed/supported by React.\");\n warnedProperties[name] = true;\n return true;\n }\n {\n // Actions are special because unlike events they can have other value types.\n if (typeof value === \"function\") {\n if (tagName === \"form\" && name === \"action\") {\n return true;\n }\n if (tagName === \"input\" && name === \"formAction\") {\n return true;\n }\n if (tagName === \"button\" && name === \"formAction\") {\n return true;\n }\n }\n }\n if (eventRegistry != null) {\n var registrationNameDependencies = eventRegistry.registrationNameDependencies, possibleRegistrationNames = eventRegistry.possibleRegistrationNames;\n if (registrationNameDependencies.hasOwnProperty(name)) {\n return true;\n }\n var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n if (registrationName != null) {\n error(\"Invalid event handler property `%s`. Did you mean `%s`?\", name, registrationName);\n warnedProperties[name] = true;\n return true;\n }\n if (EVENT_NAME_REGEX.test(name)) {\n error(\"Unknown event handler property `%s`. It will be ignored.\", name);\n warnedProperties[name] = true;\n return true;\n }\n } else if (EVENT_NAME_REGEX.test(name)) {\n // If no event plugins have been injected, we are in a server environment.\n // So we can't tell if the event name is correct for sure, but we can filter\n // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n if (INVALID_EVENT_NAME_REGEX.test(name)) {\n error(\"Invalid event handler property `%s`. \" + \"React events use the camelCase naming convention, for example `onClick`.\", name);\n }\n warnedProperties[name] = true;\n return true;\n } // Let the ARIA attribute hook validate ARIA attributes\n if (rARIA.test(name) || rARIACamel.test(name)) {\n return true;\n }\n if (lowerCasedName === \"innerhtml\") {\n error(\"Directly setting property `innerHTML` is not permitted. \" + \"For more information, lookup documentation on `dangerouslySetInnerHTML`.\");\n warnedProperties[name] = true;\n return true;\n }\n if (lowerCasedName === \"aria\") {\n error(\"The `aria` attribute is reserved for future use in React. \" + \"Pass individual `aria-` attributes instead.\");\n warnedProperties[name] = true;\n return true;\n }\n if (lowerCasedName === \"is\" && value !== null && value !== undefined && typeof value !== \"string\") {\n error(\"Received a `%s` for a string attribute `is`. If this is expected, cast \" + \"the value to a string.\", typeof value);\n warnedProperties[name] = true;\n return true;\n }\n if (typeof value === \"number\" && isNaN(value)) {\n error(\"Received NaN for the `%s` attribute. If this is expected, cast \" + \"the value to a string.\", name);\n warnedProperties[name] = true;\n return true;\n } // Known attributes should match the casing specified in the property config.\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n var standardName = possibleStandardNames[lowerCasedName];\n if (standardName !== name) {\n error(\"Invalid DOM property `%s`. Did you mean `%s`?\", name, standardName);\n warnedProperties[name] = true;\n return true;\n }\n } else if (name !== lowerCasedName) {\n // Unknown attributes should have lowercase casing since that's how they\n // will be cased anyway with server rendering.\n error(\"React does not recognize the `%s` prop on a DOM element. If you \" + \"intentionally want it to appear in the DOM as a custom \" + \"attribute, spell it as lowercase `%s` instead. \" + \"If you accidentally passed it from a parent component, remove \" + \"it from the DOM element.\", name, lowerCasedName);\n warnedProperties[name] = true;\n return true;\n } // Now that we've validated casing, do not validate\n // data types for reserved props\n switch(name){\n case \"dangerouslySetInnerHTML\":\n case \"children\":\n case \"style\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n {\n return true;\n }\n }\n switch(typeof value){\n case \"boolean\":\n {\n switch(name){\n case \"autoFocus\":\n case \"checked\":\n case \"multiple\":\n case \"muted\":\n case \"selected\":\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n case \"capture\":\n case \"download\":\n {\n // Boolean properties can accept boolean values\n return true;\n }\n default:\n {\n var prefix = name.toLowerCase().slice(0, 5);\n if (prefix === \"data-\" || prefix === \"aria-\") {\n return true;\n }\n if (value) {\n error(\"Received `%s` for a non-boolean attribute `%s`.\\n\\n\" + \"If you want to write it to the DOM, pass a string instead: \" + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n } else {\n error(\"Received `%s` for a non-boolean attribute `%s`.\\n\\n\" + \"If you want to write it to the DOM, pass a string instead: \" + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + \"If you used to conditionally omit it with %s={condition && value}, \" + \"pass %s={condition ? value : undefined} instead.\", value, name, name, value, name, name, name);\n }\n warnedProperties[name] = true;\n return true;\n }\n }\n }\n case \"function\":\n case \"symbol\":\n // eslint-disable-line\n // Warn when a known attribute is a bad type\n warnedProperties[name] = true;\n return false;\n case \"string\":\n {\n // Warn when passing the strings 'false' or 'true' into a boolean prop\n if (value === \"false\" || value === \"true\") {\n switch(name){\n case \"checked\":\n case \"selected\":\n case \"multiple\":\n case \"muted\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n {\n break;\n }\n default:\n {\n return true;\n }\n }\n error(\"Received the string `%s` for the boolean attribute `%s`. \" + \"%s \" + \"Did you mean %s={%s}?\", value, name, value === \"false\" ? \"The browser will interpret it as a truthy value.\" : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n warnedProperties[name] = true;\n return true;\n }\n }\n }\n return true;\n }\n }\n function warnUnknownProperties(type, props, eventRegistry) {\n {\n var unknownProps = [];\n for(var key in props){\n var isValid = validateProperty(type, key, props[key], eventRegistry);\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n var unknownPropString = unknownProps.map(function(prop) {\n return \"`\" + prop + \"`\";\n }).join(\", \");\n if (unknownProps.length === 1) {\n error(\"Invalid value for prop %s on <%s> tag. Either remove it from the element, \" + \"or pass a string or number value to keep it in the DOM. \" + \"For details, see https://reactjs.org/link/attribute-behavior \", unknownPropString, type);\n } else if (unknownProps.length > 1) {\n error(\"Invalid values for props %s on <%s> tag. Either remove them from the element, \" + \"or pass a string or number value to keep them in the DOM. \" + \"For details, see https://reactjs.org/link/attribute-behavior \", unknownPropString, type);\n }\n }\n }\n function validateProperties(type, props, eventRegistry) {\n if (isCustomElement(type) || typeof props.is === \"string\") {\n return;\n }\n warnUnknownProperties(type, props, eventRegistry);\n }\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n var msPattern$1 = /^-ms-/;\n var hyphenPattern = /-(.)/g; // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n var warnedForInfinityValue = false;\n function camelize(string) {\n return string.replace(hyphenPattern, function(_, character) {\n return character.toUpperCase();\n });\n }\n function warnHyphenatedStyleName(name) {\n {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n warnedStyleNames[name] = true;\n error(\"Unsupported style property %s. Did you mean %s?\", name, // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n // is converted to lowercase `ms`.\n camelize(name.replace(msPattern$1, \"ms-\")));\n }\n }\n function warnBadVendoredStyleName(name) {\n {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n warnedStyleNames[name] = true;\n error(\"Unsupported vendor-prefixed style property %s. Did you mean %s?\", name, name.charAt(0).toUpperCase() + name.slice(1));\n }\n }\n function warnStyleValueWithSemicolon(name, value) {\n {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n warnedStyleValues[value] = true;\n error(\"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, \"\"));\n }\n }\n function warnStyleValueIsNaN(name, value) {\n {\n if (warnedForNaNValue) {\n return;\n }\n warnedForNaNValue = true;\n error(\"`NaN` is an invalid value for the `%s` css style property.\", name);\n }\n }\n function warnStyleValueIsInfinity(name, value) {\n {\n if (warnedForInfinityValue) {\n return;\n }\n warnedForInfinityValue = true;\n error(\"`Infinity` is an invalid value for the `%s` css style property.\", name);\n }\n }\n function warnValidStyle(name, value) {\n {\n if (name.indexOf(\"-\") > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n if (typeof value === \"number\") {\n if (isNaN(value)) {\n warnStyleValueIsNaN(name);\n } else if (!isFinite(value)) {\n warnStyleValueIsInfinity(name);\n }\n }\n }\n }\n function getCrossOriginString(input) {\n if (typeof input === \"string\") {\n return input === \"use-credentials\" ? input : \"\";\n }\n return undefined;\n }\n // code copied and modified from escape-html\n var matchHtmlRegExp = /[\"'&<>]/;\n /**\n * Escapes special characters and HTML entities in a given html string.\n *\n * @param {string} string HTML string to escape for later insertion\n * @return {string}\n * @public\n */ function escapeHtml(string) {\n {\n checkHtmlStringCoercion(string);\n }\n var str = \"\" + string;\n var match = matchHtmlRegExp.exec(str);\n if (!match) {\n return str;\n }\n var escape;\n var html = \"\";\n var index;\n var lastIndex = 0;\n for(index = match.index; index < str.length; index++){\n switch(str.charCodeAt(index)){\n case 34:\n // \"\n escape = \"&quot;\";\n break;\n case 38:\n // &\n escape = \"&amp;\";\n break;\n case 39:\n // '\n escape = \"&#x27;\"; // modified from escape-html; used to be '&#39'\n break;\n case 60:\n // <\n escape = \"&lt;\";\n break;\n case 62:\n // >\n escape = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escape;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n } // end code copied and modified from escape-html\n /**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */ function escapeTextForBrowser(text) {\n if (typeof text === \"boolean\" || typeof text === \"number\") {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return \"\" + text;\n }\n return escapeHtml(text);\n }\n var uppercasePattern = /([A-Z])/g;\n var msPattern = /^ms-/;\n /**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */ function hyphenateStyleName(name) {\n return name.replace(uppercasePattern, \"-$1\").toLowerCase().replace(msPattern, \"-ms-\");\n }\n // and any newline or tab are filtered out as if they're not part of the URL.\n // https://url.spec.whatwg.org/#url-parsing\n // Tab or newline are defined as \\r\\n\\t:\n // https://infra.spec.whatwg.org/#ascii-tab-or-newline\n // A C0 control is a code point in the range \\u0000 NULL to \\u001F\n // INFORMATION SEPARATOR ONE, inclusive:\n // https://infra.spec.whatwg.org/#c0-control-or-space\n /* eslint-disable max-len */ var isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\n var didWarn = false;\n function sanitizeURL(url) {\n // We should never have symbols here because they get filtered out elsewhere.\n // eslint-disable-next-line react-internal/safe-string-coercion\n var stringifiedURL = \"\" + url;\n {\n if (!didWarn && isJavaScriptProtocol.test(stringifiedURL)) {\n didWarn = true;\n error(\"A future version of React will block javascript: URLs as a security precaution. \" + \"Use event handlers instead if you can. If you need to generate unsafe HTML try \" + \"using dangerouslySetInnerHTML instead. React was passed %s.\", JSON.stringify(stringifiedURL));\n }\n }\n return url;\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n // The build script is at scripts/rollup/generate-inline-fizz-runtime.js.\n // Run `yarn generate-inline-fizz-runtime` to generate.\n var clientRenderBoundary = '$RX=function(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};';\n var completeBoundary = '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data=\"$!\",a.setAttribute(\"data-dgst\",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if(\"/$\"===d)if(0===f)break;else f--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data=\"$\"}b._reactRetry&&b._reactRetry()}};';\n var completeBoundaryWithStyles = '$RM=new Map;\\n$RR=function(r,t,w){for(var u=$RC,n=$RM,p=new Map,q=document,g,b,h=q.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),v=[],k=0;b=h[k++];)\"not all\"===b.getAttribute(\"media\")?v.push(b):(\"LINK\"===b.tagName&&n.set(b.getAttribute(\"href\"),b),p.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var f=w[b++];if(!f){k=!1;b=0;continue}var c=!1,m=0;var d=f[m++];if(a=n.get(d)){var e=a._p;c=!0}else{a=q.createElement(\"link\");a.href=d;a.rel=\"stylesheet\";for(a.dataset.precedence=\\nl=f[m++];e=f[m++];)a.setAttribute(e,f[m++]);e=a._p=new Promise(function(x,y){a.onload=x;a.onerror=y});n.set(d,a)}d=a.getAttribute(\"media\");!e||\"l\"===e.s||d&&!matchMedia(d).matches||h.push(e);if(c)continue}else{a=v[b++];if(!a)break;l=a.getAttribute(\"data-precedence\");a.removeAttribute(\"media\")}c=p.get(l)||g;c===g&&(g=a);p.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=q.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(u.bind(null,r,t,\"\"),u.bind(null,r,t,\"Resource failed to load\"))};';\n var completeSegment = \"$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};\";\n var formReplaying = 'addEventListener(\"submit\",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute(\"formAction\");null!=f&&(e=f,b=null)}\"javascript:throw new Error(\\'A React form was unexpectedly submitted.\\')\"===e&&(a.preventDefault(),b?(a=document.createElement(\"input\"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.getRootNode(),(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,\\nd,b))}});';\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return thing === null ? \"`null`\" : thing === undefined ? \"`undefined`\" : thing === \"\" ? \"an empty string\" : 'something with type \"' + typeof thing + '\"';\n }\n // same object across all transitions.\n var sharedNotPendingObject = {\n pending: false,\n data: null,\n method: null,\n action: null\n };\n var NotPending = Object.freeze(sharedNotPendingObject);\n var ReactDOMSharedInternals = ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n var ReactDOMCurrentDispatcher = ReactDOMSharedInternals.Dispatcher;\n var ReactDOMServerDispatcher = {\n prefetchDNS: prefetchDNS,\n preconnect: preconnect,\n preload: preload,\n preloadModule: preloadModule,\n preinitStyle: preinitStyle,\n preinitScript: preinitScript,\n preinitModuleScript: preinitModuleScript\n };\n function prepareHostDispatcher() {\n ReactDOMCurrentDispatcher.current = ReactDOMServerDispatcher;\n } // We make every property of the descriptor optional because it is not a contract that\n var ScriptStreamingFormat = 0;\n var DataStreamingFormat = 1;\n var NothingSent = 0;\n var SentCompleteSegmentFunction = 1;\n var SentCompleteBoundaryFunction = 2;\n var SentClientRenderFunction = 4;\n var SentStyleInsertionFunction = 8;\n var SentFormReplayingRuntime = 16; // Per request, global state that is not contextual to the rendering subtree.\n // This cannot be resumed and therefore should only contain things that are\n // temporary working state or are never used in the prerender pass.\n // Credentials here are things that affect whether a browser will make a request\n // as well as things that affect which connection the browser will use for that request.\n // We want these to be aligned across preloads and resources because otherwise the preload\n // will be wasted.\n // We investigated whether referrerPolicy should be included here but from experimentation\n // it seems that browsers do not treat this as part of the http cache key and does not affect\n // which connection is used.\n var EXISTS = null; // This constant is to mark preloads that have no unique credentials\n // to convey. It should never be checked by identity and we should not\n // assume Preload values in ResumableState equal this value because they\n // will have come from some parsed input.\n var PRELOAD_NO_CREDS = [];\n {\n Object.freeze(PRELOAD_NO_CREDS);\n }\n // This is resumable and therefore should be serializable.\n var dataElementQuotedEnd = stringToPrecomputedChunk('\"></template>');\n var startInlineScript = stringToPrecomputedChunk(\"<script>\");\n var endInlineScript = stringToPrecomputedChunk(\"</script>\");\n var startScriptSrc = stringToPrecomputedChunk('<script src=\"');\n var startModuleSrc = stringToPrecomputedChunk('<script type=\"module\" src=\"');\n var scriptNonce = stringToPrecomputedChunk('\" nonce=\"');\n var scriptIntegirty = stringToPrecomputedChunk('\" integrity=\"');\n var scriptCrossOrigin = stringToPrecomputedChunk('\" crossorigin=\"');\n var endAsyncScript = stringToPrecomputedChunk('\" async=\"\"></script>');\n /**\n * This escaping function is designed to work with bootstrapScriptContent and importMap only.\n * because we know we are escaping the entire script. We can avoid for instance\n * escaping html comment string sequences that are valid javascript as well because\n * if there are no sebsequent <script sequences the html parser will never enter\n * script data double escaped state (see: https://www.w3.org/TR/html53/syntax.html#script-data-double-escaped-state)\n *\n * While untrusted script content should be made safe before using this api it will\n * ensure that the script cannot be early terminated or never terminated state\n */ function escapeBootstrapAndImportMapScriptContent(scriptText) {\n {\n checkHtmlStringCoercion(scriptText);\n }\n return (\"\" + scriptText).replace(scriptRegex, scriptReplacer);\n }\n var scriptRegex = /(<\\/|<)(s)(cript)/gi;\n var scriptReplacer = function(match, prefix, s, suffix) {\n return \"\" + prefix + (s === \"s\" ? \"\\\\u0073\" : \"\\\\u0053\") + suffix;\n };\n var importMapScriptStart = stringToPrecomputedChunk('<script type=\"importmap\">');\n var importMapScriptEnd = stringToPrecomputedChunk(\"</script>\"); // Since we store headers as strings we deal with their length in utf16 code units\n // rather than visual characters or the utf8 encoding that is used for most binary\n // serialization. Some common HTTP servers only allow for headers to be 4kB in length.\n // We choose a default length that is likely to be well under this already limited length however\n // pathological cases may still cause the utf-8 encoding of the headers to approach this limit.\n // It should also be noted that this maximum is a soft maximum. we have not reached the limit we will\n // allow one more header to be captured which means in practice if the limit is approached it will be exceeded\n var DEFAULT_HEADERS_CAPACITY_IN_UTF16_CODE_UNITS = 2000; // Allows us to keep track of what we've already written so we can refer back to it.\n // if passed externalRuntimeConfig and the enableFizzExternalRuntime feature flag\n // is set, the server will send instructions via data attributes (instead of inline scripts)\n function createRenderState(resumableState, nonce, externalRuntimeConfig, importMap, onHeaders, maxHeadersLength) {\n var inlineScriptWithNonce = nonce === undefined ? startInlineScript : stringToPrecomputedChunk('<script nonce=\"' + escapeTextForBrowser(nonce) + '\">');\n var idPrefix = resumableState.idPrefix;\n var bootstrapChunks = [];\n var externalRuntimeScript = null;\n var bootstrapScriptContent = resumableState.bootstrapScriptContent, bootstrapScripts = resumableState.bootstrapScripts, bootstrapModules = resumableState.bootstrapModules;\n if (bootstrapScriptContent !== undefined) {\n bootstrapChunks.push(inlineScriptWithNonce, stringToChunk(escapeBootstrapAndImportMapScriptContent(bootstrapScriptContent)), endInlineScript);\n }\n {\n if (externalRuntimeConfig !== undefined) {\n if (typeof externalRuntimeConfig === \"string\") {\n externalRuntimeScript = {\n src: externalRuntimeConfig,\n chunks: []\n };\n pushScriptImpl(externalRuntimeScript.chunks, {\n src: externalRuntimeConfig,\n async: true,\n integrity: undefined,\n nonce: nonce\n });\n } else {\n externalRuntimeScript = {\n src: externalRuntimeConfig.src,\n chunks: []\n };\n pushScriptImpl(externalRuntimeScript.chunks, {\n src: externalRuntimeConfig.src,\n async: true,\n integrity: externalRuntimeConfig.integrity,\n nonce: nonce\n });\n }\n }\n }\n var importMapChunks = [];\n if (importMap !== undefined) {\n var map = importMap;\n importMapChunks.push(importMapScriptStart);\n importMapChunks.push(stringToChunk(escapeBootstrapAndImportMapScriptContent(JSON.stringify(map))));\n importMapChunks.push(importMapScriptEnd);\n }\n {\n if (onHeaders && typeof maxHeadersLength === \"number\") {\n if (maxHeadersLength <= 0) {\n error(\"React expected a positive non-zero `maxHeadersLength` option but found %s instead. When using the `onHeaders` option you may supply an optional `maxHeadersLength` option as well however, when setting this value to zero or less no headers will be captured.\", maxHeadersLength === 0 ? \"zero\" : maxHeadersLength);\n }\n }\n }\n var headers = onHeaders ? {\n preconnects: \"\",\n fontPreloads: \"\",\n highImagePreloads: \"\",\n remainingCapacity: typeof maxHeadersLength === \"number\" ? maxHeadersLength : DEFAULT_HEADERS_CAPACITY_IN_UTF16_CODE_UNITS\n } : null;\n var renderState = {\n placeholderPrefix: stringToPrecomputedChunk(idPrefix + \"P:\"),\n segmentPrefix: stringToPrecomputedChunk(idPrefix + \"S:\"),\n boundaryPrefix: stringToPrecomputedChunk(idPrefix + \"B:\"),\n startInlineScript: inlineScriptWithNonce,\n htmlChunks: null,\n headChunks: null,\n externalRuntimeScript: externalRuntimeScript,\n bootstrapChunks: bootstrapChunks,\n onHeaders: onHeaders,\n headers: headers,\n resets: {\n font: {},\n dns: {},\n connect: {\n default: {},\n anonymous: {},\n credentials: {}\n },\n image: {},\n style: {}\n },\n charsetChunks: [],\n preconnectChunks: [],\n importMapChunks: importMapChunks,\n preloadChunks: [],\n hoistableChunks: [],\n // cleared on flush\n preconnects: new Set(),\n fontPreloads: new Set(),\n highImagePreloads: new Set(),\n // usedImagePreloads: new Set(),\n styles: new Map(),\n bootstrapScripts: new Set(),\n scripts: new Set(),\n bulkPreloads: new Set(),\n preloads: {\n images: new Map(),\n stylesheets: new Map(),\n scripts: new Map(),\n moduleScripts: new Map()\n },\n nonce: nonce,\n // like a module global for currently rendering boundary\n boundaryResources: null,\n stylesToHoist: false\n };\n if (bootstrapScripts !== undefined) {\n for(var i = 0; i < bootstrapScripts.length; i++){\n var scriptConfig = bootstrapScripts[i];\n var src = void 0, crossOrigin = void 0, integrity = void 0;\n var props = {\n rel: \"preload\",\n as: \"script\",\n fetchPriority: \"low\",\n nonce: nonce\n };\n if (typeof scriptConfig === \"string\") {\n props.href = src = scriptConfig;\n } else {\n props.href = src = scriptConfig.src;\n props.integrity = integrity = typeof scriptConfig.integrity === \"string\" ? scriptConfig.integrity : undefined;\n props.crossOrigin = crossOrigin = typeof scriptConfig === \"string\" || scriptConfig.crossOrigin == null ? undefined : scriptConfig.crossOrigin === \"use-credentials\" ? \"use-credentials\" : \"\";\n }\n preloadBootstrapScriptOrModule(resumableState, renderState, src, props);\n bootstrapChunks.push(startScriptSrc, stringToChunk(escapeTextForBrowser(src)));\n if (nonce) {\n bootstrapChunks.push(scriptNonce, stringToChunk(escapeTextForBrowser(nonce)));\n }\n if (typeof integrity === \"string\") {\n bootstrapChunks.push(scriptIntegirty, stringToChunk(escapeTextForBrowser(integrity)));\n }\n if (typeof crossOrigin === \"string\") {\n bootstrapChunks.push(scriptCrossOrigin, stringToChunk(escapeTextForBrowser(crossOrigin)));\n }\n bootstrapChunks.push(endAsyncScript);\n }\n }\n if (bootstrapModules !== undefined) {\n for(var _i = 0; _i < bootstrapModules.length; _i++){\n var _scriptConfig = bootstrapModules[_i];\n var _src = void 0, _crossOrigin = void 0, _integrity = void 0;\n var _props = {\n rel: \"modulepreload\",\n fetchPriority: \"low\",\n nonce: nonce\n };\n if (typeof _scriptConfig === \"string\") {\n _props.href = _src = _scriptConfig;\n } else {\n _props.href = _src = _scriptConfig.src;\n _props.integrity = _integrity = typeof _scriptConfig.integrity === \"string\" ? _scriptConfig.integrity : undefined;\n _props.crossOrigin = _crossOrigin = typeof _scriptConfig === \"string\" || _scriptConfig.crossOrigin == null ? undefined : _scriptConfig.crossOrigin === \"use-credentials\" ? \"use-credentials\" : \"\";\n }\n preloadBootstrapScriptOrModule(resumableState, renderState, _src, _props);\n bootstrapChunks.push(startModuleSrc, stringToChunk(escapeTextForBrowser(_src)));\n if (nonce) {\n bootstrapChunks.push(scriptNonce, stringToChunk(escapeTextForBrowser(nonce)));\n }\n if (typeof _integrity === \"string\") {\n bootstrapChunks.push(scriptIntegirty, stringToChunk(escapeTextForBrowser(_integrity)));\n }\n if (typeof _crossOrigin === \"string\") {\n bootstrapChunks.push(scriptCrossOrigin, stringToChunk(escapeTextForBrowser(_crossOrigin)));\n }\n bootstrapChunks.push(endAsyncScript);\n }\n }\n return renderState;\n }\n function createResumableState(identifierPrefix, externalRuntimeConfig, bootstrapScriptContent, bootstrapScripts, bootstrapModules) {\n var idPrefix = identifierPrefix === undefined ? \"\" : identifierPrefix;\n var streamingFormat = ScriptStreamingFormat;\n {\n if (externalRuntimeConfig !== undefined) {\n streamingFormat = DataStreamingFormat;\n }\n }\n return {\n idPrefix: idPrefix,\n nextFormID: 0,\n streamingFormat: streamingFormat,\n bootstrapScriptContent: bootstrapScriptContent,\n bootstrapScripts: bootstrapScripts,\n bootstrapModules: bootstrapModules,\n instructions: NothingSent,\n hasBody: false,\n hasHtml: false,\n // @TODO add bootstrap script to implicit preloads\n // persistent\n unknownResources: {},\n dnsResources: {},\n connectResources: {\n default: {},\n anonymous: {},\n credentials: {}\n },\n imageResources: {},\n styleResources: {},\n scriptResources: {},\n moduleUnknownResources: {},\n moduleScriptResources: {}\n };\n }\n // modes. We only include the variants as they matter for the sake of our purposes.\n // We don't actually provide the namespace therefore we use constants instead of the string.\n var ROOT_HTML_MODE = 0; // Used for the root most element tag.\n // We have a less than HTML_HTML_MODE check elsewhere. If you add more cases here, make sure it\n // still makes sense\n var HTML_HTML_MODE = 1; // Used for the <html> if it is at the top level.\n var HTML_MODE = 2;\n var SVG_MODE = 3;\n var MATHML_MODE = 4;\n var HTML_TABLE_MODE = 5;\n var HTML_TABLE_BODY_MODE = 6;\n var HTML_TABLE_ROW_MODE = 7;\n var HTML_COLGROUP_MODE = 8; // We have a greater than HTML_TABLE_MODE check elsewhere. If you add more cases here, make sure it\n // still makes sense\n var NO_SCOPE = /* */ 0;\n var NOSCRIPT_SCOPE = /* */ 1;\n var PICTURE_SCOPE = /* */ 2; // Lets us keep track of contextual state and pick it back up after suspending.\n function createFormatContext(insertionMode, selectedValue, tagScope) {\n return {\n insertionMode: insertionMode,\n selectedValue: selectedValue,\n tagScope: tagScope\n };\n }\n function createRootFormatContext(namespaceURI) {\n var insertionMode = namespaceURI === \"http://www.w3.org/2000/svg\" ? SVG_MODE : namespaceURI === \"http://www.w3.org/1998/Math/MathML\" ? MATHML_MODE : ROOT_HTML_MODE;\n return createFormatContext(insertionMode, null, NO_SCOPE);\n }\n function getChildFormatContext(parentContext, type, props) {\n switch(type){\n case \"noscript\":\n return createFormatContext(HTML_MODE, null, parentContext.tagScope | NOSCRIPT_SCOPE);\n case \"select\":\n return createFormatContext(HTML_MODE, props.value != null ? props.value : props.defaultValue, parentContext.tagScope);\n case \"svg\":\n return createFormatContext(SVG_MODE, null, parentContext.tagScope);\n case \"picture\":\n return createFormatContext(HTML_MODE, null, parentContext.tagScope | PICTURE_SCOPE);\n case \"math\":\n return createFormatContext(MATHML_MODE, null, parentContext.tagScope);\n case \"foreignObject\":\n return createFormatContext(HTML_MODE, null, parentContext.tagScope);\n // Table parents are special in that their children can only be created at all if they're\n // wrapped in a table parent. So we need to encode that we're entering this mode.\n case \"table\":\n return createFormatContext(HTML_TABLE_MODE, null, parentContext.tagScope);\n case \"thead\":\n case \"tbody\":\n case \"tfoot\":\n return createFormatContext(HTML_TABLE_BODY_MODE, null, parentContext.tagScope);\n case \"colgroup\":\n return createFormatContext(HTML_COLGROUP_MODE, null, parentContext.tagScope);\n case \"tr\":\n return createFormatContext(HTML_TABLE_ROW_MODE, null, parentContext.tagScope);\n }\n if (parentContext.insertionMode >= HTML_TABLE_MODE) {\n // Whatever tag this was, it wasn't a table parent or other special parent, so we must have\n // entered plain HTML again.\n return createFormatContext(HTML_MODE, null, parentContext.tagScope);\n }\n if (parentContext.insertionMode === ROOT_HTML_MODE) {\n if (type === \"html\") {\n // We've emitted the root and is now in <html> mode.\n return createFormatContext(HTML_HTML_MODE, null, parentContext.tagScope);\n } else {\n // We've emitted the root and is now in plain HTML mode.\n return createFormatContext(HTML_MODE, null, parentContext.tagScope);\n }\n } else if (parentContext.insertionMode === HTML_HTML_MODE) {\n // We've emitted the document element and is now in plain HTML mode.\n return createFormatContext(HTML_MODE, null, parentContext.tagScope);\n }\n return parentContext;\n }\n function makeId(resumableState, treeId, localId) {\n var idPrefix = resumableState.idPrefix;\n var id = \":\" + idPrefix + \"R\" + treeId; // Unless this is the first id at this level, append a number at the end\n // that represents the position of this useId hook among all the useId\n // hooks for this fiber.\n if (localId > 0) {\n id += \"H\" + localId.toString(32);\n }\n return id + \":\";\n }\n function encodeHTMLTextNode(text) {\n return escapeTextForBrowser(text);\n }\n var textSeparator = stringToPrecomputedChunk(\"<!-- -->\");\n function pushTextInstance(target, text, renderState, textEmbedded) {\n if (text === \"\") {\n // Empty text doesn't have a DOM node representation and the hydration is aware of this.\n return textEmbedded;\n }\n if (textEmbedded) {\n target.push(textSeparator);\n }\n target.push(stringToChunk(encodeHTMLTextNode(text)));\n return true;\n } // Called when Fizz is done with a Segment. Currently the only purpose is to conditionally\n // emit a text separator when we don't know for sure it is safe to omit\n function pushSegmentFinale(target, renderState, lastPushedText, textEmbedded) {\n if (lastPushedText && textEmbedded) {\n target.push(textSeparator);\n }\n }\n var styleNameCache = new Map();\n function processStyleName(styleName) {\n var chunk = styleNameCache.get(styleName);\n if (chunk !== undefined) {\n return chunk;\n }\n var result = stringToPrecomputedChunk(escapeTextForBrowser(hyphenateStyleName(styleName)));\n styleNameCache.set(styleName, result);\n return result;\n }\n var styleAttributeStart = stringToPrecomputedChunk(' style=\"');\n var styleAssign = stringToPrecomputedChunk(\":\");\n var styleSeparator = stringToPrecomputedChunk(\";\");\n function pushStyleAttribute(target, style) {\n if (typeof style !== \"object\") {\n throw new Error(\"The `style` prop expects a mapping from style properties to values, \" + \"not a string. For example, style={{marginRight: spacing + 'em'}} when \" + \"using JSX.\");\n }\n var isFirst = true;\n for(var styleName in style){\n if (!hasOwnProperty.call(style, styleName)) {\n continue;\n } // If you provide unsafe user data here they can inject arbitrary CSS\n // which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var styleValue = style[styleName];\n if (styleValue == null || typeof styleValue === \"boolean\" || styleValue === \"\") {\n continue;\n }\n var nameChunk = void 0;\n var valueChunk = void 0;\n var isCustomProperty = styleName.indexOf(\"--\") === 0;\n if (isCustomProperty) {\n nameChunk = stringToChunk(escapeTextForBrowser(styleName));\n {\n checkCSSPropertyStringCoercion(styleValue, styleName);\n }\n valueChunk = stringToChunk(escapeTextForBrowser((\"\" + styleValue).trim()));\n } else {\n {\n warnValidStyle(styleName, styleValue);\n }\n nameChunk = processStyleName(styleName);\n if (typeof styleValue === \"number\") {\n if (styleValue !== 0 && !isUnitlessNumber(styleName)) {\n valueChunk = stringToChunk(styleValue + \"px\"); // Presumes implicit 'px' suffix for unitless numbers\n } else {\n valueChunk = stringToChunk(\"\" + styleValue);\n }\n } else {\n {\n checkCSSPropertyStringCoercion(styleValue, styleName);\n }\n valueChunk = stringToChunk(escapeTextForBrowser((\"\" + styleValue).trim()));\n }\n }\n if (isFirst) {\n isFirst = false; // If it's first, we don't need any separators prefixed.\n target.push(styleAttributeStart, nameChunk, styleAssign, valueChunk);\n } else {\n target.push(styleSeparator, nameChunk, styleAssign, valueChunk);\n }\n }\n if (!isFirst) {\n target.push(attributeEnd);\n }\n }\n var attributeSeparator = stringToPrecomputedChunk(\" \");\n var attributeAssign = stringToPrecomputedChunk('=\"');\n var attributeEnd = stringToPrecomputedChunk('\"');\n var attributeEmptyString = stringToPrecomputedChunk('=\"\"');\n function pushBooleanAttribute(target, name, value) {\n if (value && typeof value !== \"function\" && typeof value !== \"symbol\") {\n target.push(attributeSeparator, stringToChunk(name), attributeEmptyString);\n }\n }\n function pushStringAttribute(target, name, value) {\n if (typeof value !== \"function\" && typeof value !== \"symbol\" && typeof value !== \"boolean\") {\n target.push(attributeSeparator, stringToChunk(name), attributeAssign, stringToChunk(escapeTextForBrowser(value)), attributeEnd);\n }\n }\n function makeFormFieldPrefix(resumableState) {\n var id = resumableState.nextFormID++;\n return resumableState.idPrefix + id;\n } // Since this will likely be repeated a lot in the HTML, we use a more concise message\n // than on the client and hopefully it's googleable.\n var actionJavaScriptURL = stringToPrecomputedChunk(escapeTextForBrowser(\"javascript:throw new Error('A React form was unexpectedly submitted.')\"));\n var startHiddenInputChunk = stringToPrecomputedChunk('<input type=\"hidden\"');\n function pushAdditionalFormField(value, key) {\n var target = this;\n target.push(startHiddenInputChunk);\n if (typeof value !== \"string\") {\n throw new Error(\"File/Blob fields are not yet supported in progressive forms. \" + \"It probably means you are closing over binary data or FormData in a Server Action.\");\n }\n pushStringAttribute(target, \"name\", key);\n pushStringAttribute(target, \"value\", value);\n target.push(endOfStartTagSelfClosing);\n }\n function pushAdditionalFormFields(target, formData) {\n if (formData !== null) {\n // $FlowFixMe[prop-missing]: FormData has forEach.\n formData.forEach(pushAdditionalFormField, target);\n }\n }\n function pushFormActionAttribute(target, resumableState, renderState, formAction, formEncType, formMethod, formTarget, name) {\n var formData = null;\n if (typeof formAction === \"function\") {\n // Function form actions cannot control the form properties\n {\n if (name !== null && !didWarnFormActionName) {\n didWarnFormActionName = true;\n error('Cannot specify a \"name\" prop for a button that specifies a function as a formAction. ' + \"React needs it to encode which action should be invoked. It will get overridden.\");\n }\n if ((formEncType !== null || formMethod !== null) && !didWarnFormActionMethod) {\n didWarnFormActionMethod = true;\n error(\"Cannot specify a formEncType or formMethod for a button that specifies a \" + \"function as a formAction. React provides those automatically. They will get overridden.\");\n }\n if (formTarget !== null && !didWarnFormActionTarget) {\n didWarnFormActionTarget = true;\n error(\"Cannot specify a formTarget for a button that specifies a function as a formAction. \" + \"The function will always be executed in the same window.\");\n }\n }\n var customAction = formAction.$$FORM_ACTION;\n if (typeof customAction === \"function\") {\n // This action has a custom progressive enhancement form that can submit the form\n // back to the server if it's invoked before hydration. Such as a Server Action.\n var prefix = makeFormFieldPrefix(resumableState);\n var customFields = formAction.$$FORM_ACTION(prefix);\n name = customFields.name;\n formAction = customFields.action || \"\";\n formEncType = customFields.encType;\n formMethod = customFields.method;\n formTarget = customFields.target;\n formData = customFields.data;\n } else {\n // Set a javascript URL that doesn't do anything. We don't expect this to be invoked\n // because we'll preventDefault in the Fizz runtime, but it can happen if a form is\n // manually submitted or if someone calls stopPropagation before React gets the event.\n // If CSP is used to block javascript: URLs that's fine too. It just won't show this\n // error message but the URL will be logged.\n target.push(attributeSeparator, stringToChunk(\"formAction\"), attributeAssign, actionJavaScriptURL, attributeEnd);\n name = null;\n formAction = null;\n formEncType = null;\n formMethod = null;\n formTarget = null;\n injectFormReplayingRuntime(resumableState, renderState);\n }\n }\n if (name != null) {\n pushAttribute(target, \"name\", name);\n }\n if (formAction != null) {\n pushAttribute(target, \"formAction\", formAction);\n }\n if (formEncType != null) {\n pushAttribute(target, \"formEncType\", formEncType);\n }\n if (formMethod != null) {\n pushAttribute(target, \"formMethod\", formMethod);\n }\n if (formTarget != null) {\n pushAttribute(target, \"formTarget\", formTarget);\n }\n return formData;\n }\n function pushAttribute(target, name, value) {\n switch(name){\n // These are very common props and therefore are in the beginning of the switch.\n // TODO: aria-label is a very common prop but allows booleans so is not like the others\n // but should ideally go in this list too.\n case \"className\":\n {\n pushStringAttribute(target, \"class\", value);\n break;\n }\n case \"tabIndex\":\n {\n pushStringAttribute(target, \"tabindex\", value);\n break;\n }\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n {\n pushStringAttribute(target, name, value);\n break;\n }\n case \"style\":\n {\n pushStyleAttribute(target, value);\n return;\n }\n case \"src\":\n case \"href\":\n // Fall through to the last case which shouldn't remove empty strings.\n case \"action\":\n case \"formAction\":\n {\n // TODO: Consider only special casing these for each tag.\n if (value == null || typeof value === \"function\" || typeof value === \"symbol\" || typeof value === \"boolean\") {\n return;\n }\n {\n checkAttributeStringCoercion(value, name);\n }\n var sanitizedValue = sanitizeURL(\"\" + value);\n target.push(attributeSeparator, stringToChunk(name), attributeAssign, stringToChunk(escapeTextForBrowser(sanitizedValue)), attributeEnd);\n return;\n }\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n // Ignored. These are built-in to React on the client.\n return;\n case \"autoFocus\":\n case \"multiple\":\n case \"muted\":\n {\n pushBooleanAttribute(target, name.toLowerCase(), value);\n return;\n }\n case \"xlinkHref\":\n {\n if (typeof value === \"function\" || typeof value === \"symbol\" || typeof value === \"boolean\") {\n return;\n }\n {\n checkAttributeStringCoercion(value, name);\n }\n var _sanitizedValue = sanitizeURL(\"\" + value);\n target.push(attributeSeparator, stringToChunk(\"xlink:href\"), attributeAssign, stringToChunk(escapeTextForBrowser(_sanitizedValue)), attributeEnd);\n return;\n }\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n {\n // Booleanish String\n // These are \"enumerated\" attributes that accept \"true\" and \"false\".\n // In React, we let users pass `true` and `false` even though technically\n // these aren't boolean attributes (they are coerced to strings).\n if (typeof value !== \"function\" && typeof value !== \"symbol\") {\n target.push(attributeSeparator, stringToChunk(name), attributeAssign, stringToChunk(escapeTextForBrowser(value)), attributeEnd);\n }\n return;\n }\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n {\n // Boolean\n if (value && typeof value !== \"function\" && typeof value !== \"symbol\") {\n target.push(attributeSeparator, stringToChunk(name), attributeEmptyString);\n }\n return;\n }\n case \"capture\":\n case \"download\":\n {\n // Overloaded Boolean\n if (value === true) {\n target.push(attributeSeparator, stringToChunk(name), attributeEmptyString);\n } else if (value === false) ;\n else if (typeof value !== \"function\" && typeof value !== \"symbol\") {\n target.push(attributeSeparator, stringToChunk(name), attributeAssign, stringToChunk(escapeTextForBrowser(value)), attributeEnd);\n }\n return;\n }\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n {\n // These are HTML attributes that must be positive numbers.\n if (typeof value !== \"function\" && typeof value !== \"symbol\" && !isNaN(value) && value >= 1) {\n target.push(attributeSeparator, stringToChunk(name), attributeAssign, stringToChunk(escapeTextForBrowser(value)), attributeEnd);\n }\n return;\n }\n case \"rowSpan\":\n case \"start\":\n {\n // These are HTML attributes that must be numbers.\n if (typeof value !== \"function\" && typeof value !== \"symbol\" && !isNaN(value)) {\n target.push(attributeSeparator, stringToChunk(name), attributeAssign, stringToChunk(escapeTextForBrowser(value)), attributeEnd);\n }\n return;\n }\n case \"xlinkActuate\":\n pushStringAttribute(target, \"xlink:actuate\", value);\n return;\n case \"xlinkArcrole\":\n pushStringAttribute(target, \"xlink:arcrole\", value);\n return;\n case \"xlinkRole\":\n pushStringAttribute(target, \"xlink:role\", value);\n return;\n case \"xlinkShow\":\n pushStringAttribute(target, \"xlink:show\", value);\n return;\n case \"xlinkTitle\":\n pushStringAttribute(target, \"xlink:title\", value);\n return;\n case \"xlinkType\":\n pushStringAttribute(target, \"xlink:type\", value);\n return;\n case \"xmlBase\":\n pushStringAttribute(target, \"xml:base\", value);\n return;\n case \"xmlLang\":\n pushStringAttribute(target, \"xml:lang\", value);\n return;\n case \"xmlSpace\":\n pushStringAttribute(target, \"xml:space\", value);\n return;\n default:\n if (// We have already filtered out null/undefined and reserved words.\n name.length > 2 && (name[0] === \"o\" || name[0] === \"O\") && (name[1] === \"n\" || name[1] === \"N\")) {\n return;\n }\n var attributeName = getAttributeAlias(name);\n if (isAttributeNameSafe(attributeName)) {\n // shouldRemoveAttribute\n switch(typeof value){\n case \"function\":\n case \"symbol\":\n // eslint-disable-line\n return;\n case \"boolean\":\n {\n var prefix = attributeName.toLowerCase().slice(0, 5);\n if (prefix !== \"data-\" && prefix !== \"aria-\") {\n return;\n }\n }\n }\n target.push(attributeSeparator, stringToChunk(attributeName), attributeAssign, stringToChunk(escapeTextForBrowser(value)), attributeEnd);\n }\n }\n }\n var endOfStartTag = stringToPrecomputedChunk(\">\");\n var endOfStartTagSelfClosing = stringToPrecomputedChunk(\"/>\");\n function pushInnerHTML(target, innerHTML, children) {\n if (innerHTML != null) {\n if (children != null) {\n throw new Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");\n }\n if (typeof innerHTML !== \"object\" || !(\"__html\" in innerHTML)) {\n throw new Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. \" + \"Please visit https://reactjs.org/link/dangerously-set-inner-html \" + \"for more information.\");\n }\n var html = innerHTML.__html;\n if (html !== null && html !== undefined) {\n {\n checkHtmlStringCoercion(html);\n }\n target.push(stringToChunk(\"\" + html));\n }\n }\n } // TODO: Move these to RenderState so that we warn for every request.\n // It would help debugging in stateful servers (e.g. service worker).\n var didWarnDefaultInputValue = false;\n var didWarnDefaultChecked = false;\n var didWarnDefaultSelectValue = false;\n var didWarnDefaultTextareaValue = false;\n var didWarnInvalidOptionChildren = false;\n var didWarnInvalidOptionInnerHTML = false;\n var didWarnSelectedSetOnOption = false;\n var didWarnFormActionType = false;\n var didWarnFormActionName = false;\n var didWarnFormActionTarget = false;\n var didWarnFormActionMethod = false;\n function checkSelectProp(props, propName) {\n {\n var value = props[propName];\n if (value != null) {\n var array = isArray(value);\n if (props.multiple && !array) {\n error(\"The `%s` prop supplied to <select> must be an array if \" + \"`multiple` is true.\", propName);\n } else if (!props.multiple && array) {\n error(\"The `%s` prop supplied to <select> must be a scalar \" + \"value if `multiple` is false.\", propName);\n }\n }\n }\n }\n function pushStartSelect(target, props) {\n {\n checkControlledValueProps(\"select\", props);\n checkSelectProp(props, \"value\");\n checkSelectProp(props, \"defaultValue\");\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnDefaultSelectValue) {\n error(\"Select elements must be either controlled or uncontrolled \" + \"(specify either the value prop, or the defaultValue prop, but not \" + \"both). Decide between using a controlled or uncontrolled select \" + \"element and remove one of these props. More info: \" + \"https://reactjs.org/link/controlled-components\");\n didWarnDefaultSelectValue = true;\n }\n }\n target.push(startChunkForTag(\"select\"));\n var children = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n // TODO: This doesn't really make sense for select since it can't use the controlled\n // value in the innerHTML.\n innerHTML = propValue;\n break;\n case \"defaultValue\":\n case \"value\":\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTag);\n pushInnerHTML(target, innerHTML, children);\n return children;\n }\n function flattenOptionChildren(children) {\n var content = \"\"; // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function(child) {\n if (child == null) {\n return;\n }\n content += child;\n {\n if (!didWarnInvalidOptionChildren && typeof child !== \"string\" && typeof child !== \"number\") {\n didWarnInvalidOptionChildren = true;\n error(\"Cannot infer the option value of complex children. \" + \"Pass a `value` prop or use a plain string as children to <option>.\");\n }\n }\n });\n return content;\n }\n var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=\"\"');\n function pushStartOption(target, props, formatContext) {\n var selectedValue = formatContext.selectedValue;\n target.push(startChunkForTag(\"option\"));\n var children = null;\n var value = null;\n var selected = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"selected\":\n // ignore\n selected = propValue;\n {\n // TODO: Remove support for `selected` in <option>.\n if (!didWarnSelectedSetOnOption) {\n error(\"Use the `defaultValue` or `value` props on <select> instead of \" + \"setting `selected` on <option>.\");\n didWarnSelectedSetOnOption = true;\n }\n }\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n case \"value\":\n value = propValue;\n // We intentionally fallthrough to also set the attribute on the node.\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n if (selectedValue != null) {\n var stringValue;\n if (value !== null) {\n {\n checkAttributeStringCoercion(value, \"value\");\n }\n stringValue = \"\" + value;\n } else {\n {\n if (innerHTML !== null) {\n if (!didWarnInvalidOptionInnerHTML) {\n didWarnInvalidOptionInnerHTML = true;\n error(\"Pass a `value` prop if you set dangerouslyInnerHTML so React knows \" + \"which value should be selected.\");\n }\n }\n }\n stringValue = flattenOptionChildren(children);\n }\n if (isArray(selectedValue)) {\n // multiple\n for(var i = 0; i < selectedValue.length; i++){\n {\n checkAttributeStringCoercion(selectedValue[i], \"value\");\n }\n var v = \"\" + selectedValue[i];\n if (v === stringValue) {\n target.push(selectedMarkerAttribute);\n break;\n }\n }\n } else {\n {\n checkAttributeStringCoercion(selectedValue, \"select.value\");\n }\n if (\"\" + selectedValue === stringValue) {\n target.push(selectedMarkerAttribute);\n }\n }\n } else if (selected) {\n target.push(selectedMarkerAttribute);\n }\n target.push(endOfStartTag);\n pushInnerHTML(target, innerHTML, children);\n return children;\n }\n var formReplayingRuntimeScript = stringToPrecomputedChunk(formReplaying);\n function injectFormReplayingRuntime(resumableState, renderState) {\n // If we haven't sent it yet, inject the runtime that tracks submitted JS actions\n // for later replaying by Fiber. If we use an external runtime, we don't need\n // to emit anything. It's always used.\n if ((resumableState.instructions & SentFormReplayingRuntime) === NothingSent && !renderState.externalRuntimeScript) {\n resumableState.instructions |= SentFormReplayingRuntime;\n renderState.bootstrapChunks.unshift(renderState.startInlineScript, formReplayingRuntimeScript, endInlineScript);\n }\n }\n var formStateMarkerIsMatching = stringToPrecomputedChunk(\"<!--F!-->\");\n var formStateMarkerIsNotMatching = stringToPrecomputedChunk(\"<!--F-->\");\n function pushFormStateMarkerIsMatching(target) {\n target.push(formStateMarkerIsMatching);\n }\n function pushFormStateMarkerIsNotMatching(target) {\n target.push(formStateMarkerIsNotMatching);\n }\n function pushStartForm(target, props, resumableState, renderState) {\n target.push(startChunkForTag(\"form\"));\n var children = null;\n var innerHTML = null;\n var formAction = null;\n var formEncType = null;\n var formMethod = null;\n var formTarget = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n case \"action\":\n formAction = propValue;\n break;\n case \"encType\":\n formEncType = propValue;\n break;\n case \"method\":\n formMethod = propValue;\n break;\n case \"target\":\n formTarget = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n var formData = null;\n var formActionName = null;\n if (typeof formAction === \"function\") {\n // Function form actions cannot control the form properties\n {\n if ((formEncType !== null || formMethod !== null) && !didWarnFormActionMethod) {\n didWarnFormActionMethod = true;\n error(\"Cannot specify a encType or method for a form that specifies a \" + \"function as the action. React provides those automatically. \" + \"They will get overridden.\");\n }\n if (formTarget !== null && !didWarnFormActionTarget) {\n didWarnFormActionTarget = true;\n error(\"Cannot specify a target for a form that specifies a function as the action. \" + \"The function will always be executed in the same window.\");\n }\n }\n var customAction = formAction.$$FORM_ACTION;\n if (typeof customAction === \"function\") {\n // This action has a custom progressive enhancement form that can submit the form\n // back to the server if it's invoked before hydration. Such as a Server Action.\n var prefix = makeFormFieldPrefix(resumableState);\n var customFields = formAction.$$FORM_ACTION(prefix);\n formAction = customFields.action || \"\";\n formEncType = customFields.encType;\n formMethod = customFields.method;\n formTarget = customFields.target;\n formData = customFields.data;\n formActionName = customFields.name;\n } else {\n // Set a javascript URL that doesn't do anything. We don't expect this to be invoked\n // because we'll preventDefault in the Fizz runtime, but it can happen if a form is\n // manually submitted or if someone calls stopPropagation before React gets the event.\n // If CSP is used to block javascript: URLs that's fine too. It just won't show this\n // error message but the URL will be logged.\n target.push(attributeSeparator, stringToChunk(\"action\"), attributeAssign, actionJavaScriptURL, attributeEnd);\n formAction = null;\n formEncType = null;\n formMethod = null;\n formTarget = null;\n injectFormReplayingRuntime(resumableState, renderState);\n }\n }\n if (formAction != null) {\n pushAttribute(target, \"action\", formAction);\n }\n if (formEncType != null) {\n pushAttribute(target, \"encType\", formEncType);\n }\n if (formMethod != null) {\n pushAttribute(target, \"method\", formMethod);\n }\n if (formTarget != null) {\n pushAttribute(target, \"target\", formTarget);\n }\n target.push(endOfStartTag);\n if (formActionName !== null) {\n target.push(startHiddenInputChunk);\n pushStringAttribute(target, \"name\", formActionName);\n target.push(endOfStartTagSelfClosing);\n pushAdditionalFormFields(target, formData);\n }\n pushInnerHTML(target, innerHTML, children);\n if (typeof children === \"string\") {\n // Special case children as a string to avoid the unnecessary comment.\n // TODO: Remove this special case after the general optimization is in place.\n target.push(stringToChunk(encodeHTMLTextNode(children)));\n return null;\n }\n return children;\n }\n function pushInput(target, props, resumableState, renderState) {\n {\n checkControlledValueProps(\"input\", props);\n }\n target.push(startChunkForTag(\"input\"));\n var name = null;\n var formAction = null;\n var formEncType = null;\n var formMethod = null;\n var formTarget = null;\n var value = null;\n var defaultValue = null;\n var checked = null;\n var defaultChecked = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw new Error(\"input\" + \" is a self-closing tag and must neither have `children` nor \" + \"use `dangerouslySetInnerHTML`.\");\n case \"name\":\n name = propValue;\n break;\n case \"formAction\":\n formAction = propValue;\n break;\n case \"formEncType\":\n formEncType = propValue;\n break;\n case \"formMethod\":\n formMethod = propValue;\n break;\n case \"formTarget\":\n formTarget = propValue;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue;\n break;\n case \"defaultValue\":\n defaultValue = propValue;\n break;\n case \"checked\":\n checked = propValue;\n break;\n case \"value\":\n value = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n {\n if (formAction !== null && props.type !== \"image\" && props.type !== \"submit\" && !didWarnFormActionType) {\n didWarnFormActionType = true;\n error('An input can only specify a formAction along with type=\"submit\" or type=\"image\".');\n }\n }\n var formData = pushFormActionAttribute(target, resumableState, renderState, formAction, formEncType, formMethod, formTarget, name);\n {\n if (checked !== null && defaultChecked !== null && !didWarnDefaultChecked) {\n error(\"%s contains an input of type %s with both checked and defaultChecked props. \" + \"Input elements must be either controlled or uncontrolled \" + \"(specify either the checked prop, or the defaultChecked prop, but not \" + \"both). Decide between using a controlled or uncontrolled input \" + \"element and remove one of these props. More info: \" + \"https://reactjs.org/link/controlled-components\", \"A component\", props.type);\n didWarnDefaultChecked = true;\n }\n if (value !== null && defaultValue !== null && !didWarnDefaultInputValue) {\n error(\"%s contains an input of type %s with both value and defaultValue props. \" + \"Input elements must be either controlled or uncontrolled \" + \"(specify either the value prop, or the defaultValue prop, but not \" + \"both). Decide between using a controlled or uncontrolled input \" + \"element and remove one of these props. More info: \" + \"https://reactjs.org/link/controlled-components\", \"A component\", props.type);\n didWarnDefaultInputValue = true;\n }\n }\n if (checked !== null) {\n pushBooleanAttribute(target, \"checked\", checked);\n } else if (defaultChecked !== null) {\n pushBooleanAttribute(target, \"checked\", defaultChecked);\n }\n if (value !== null) {\n pushAttribute(target, \"value\", value);\n } else if (defaultValue !== null) {\n pushAttribute(target, \"value\", defaultValue);\n }\n target.push(endOfStartTagSelfClosing); // We place any additional hidden form fields after the input.\n pushAdditionalFormFields(target, formData);\n return null;\n }\n function pushStartButton(target, props, resumableState, renderState) {\n target.push(startChunkForTag(\"button\"));\n var children = null;\n var innerHTML = null;\n var name = null;\n var formAction = null;\n var formEncType = null;\n var formMethod = null;\n var formTarget = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n case \"name\":\n name = propValue;\n break;\n case \"formAction\":\n formAction = propValue;\n break;\n case \"formEncType\":\n formEncType = propValue;\n break;\n case \"formMethod\":\n formMethod = propValue;\n break;\n case \"formTarget\":\n formTarget = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n {\n if (formAction !== null && props.type != null && props.type !== \"submit\" && !didWarnFormActionType) {\n didWarnFormActionType = true;\n error('A button can only specify a formAction along with type=\"submit\" or no type.');\n }\n }\n var formData = pushFormActionAttribute(target, resumableState, renderState, formAction, formEncType, formMethod, formTarget, name);\n target.push(endOfStartTag); // We place any additional hidden form fields we need to include inside the button itself.\n pushAdditionalFormFields(target, formData);\n pushInnerHTML(target, innerHTML, children);\n if (typeof children === \"string\") {\n // Special case children as a string to avoid the unnecessary comment.\n // TODO: Remove this special case after the general optimization is in place.\n target.push(stringToChunk(encodeHTMLTextNode(children)));\n return null;\n }\n return children;\n }\n function pushStartTextArea(target, props) {\n {\n checkControlledValueProps(\"textarea\", props);\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnDefaultTextareaValue) {\n error(\"Textarea elements must be either controlled or uncontrolled \" + \"(specify either the value prop, or the defaultValue prop, but not \" + \"both). Decide between using a controlled or uncontrolled textarea \" + \"and remove one of these props. More info: \" + \"https://reactjs.org/link/controlled-components\");\n didWarnDefaultTextareaValue = true;\n }\n }\n target.push(startChunkForTag(\"textarea\"));\n var value = null;\n var defaultValue = null;\n var children = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"value\":\n value = propValue;\n break;\n case \"defaultValue\":\n defaultValue = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n throw new Error(\"`dangerouslySetInnerHTML` does not make sense on <textarea>.\");\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n if (value === null && defaultValue !== null) {\n value = defaultValue;\n }\n target.push(endOfStartTag); // TODO (yungsters): Remove support for children content in <textarea>.\n if (children != null) {\n {\n error(\"Use the `defaultValue` or `value` props instead of setting \" + \"children on <textarea>.\");\n }\n if (value != null) {\n throw new Error(\"If you supply `defaultValue` on a <textarea>, do not pass children.\");\n }\n if (isArray(children)) {\n if (children.length > 1) {\n throw new Error(\"<textarea> can only have at most one child.\");\n } // TODO: remove the coercion and the DEV check below because it will\n // always be overwritten by the coercion several lines below it. #22309\n {\n checkHtmlStringCoercion(children[0]);\n }\n value = \"\" + children[0];\n }\n {\n checkHtmlStringCoercion(children);\n }\n value = \"\" + children;\n }\n if (typeof value === \"string\" && value[0] === \"\\n\") {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n target.push(leadingNewline);\n } // ToString and push directly instead of recurse over children.\n // We don't really support complex children in the value anyway.\n // This also currently avoids a trailing comment node which breaks textarea.\n if (value !== null) {\n {\n checkAttributeStringCoercion(value, \"value\");\n }\n target.push(stringToChunk(encodeHTMLTextNode(\"\" + value)));\n }\n return null;\n }\n function pushMeta(target, props, renderState, textEmbedded, insertionMode, noscriptTagInScope) {\n {\n if (insertionMode === SVG_MODE || noscriptTagInScope || props.itemProp != null) {\n return pushSelfClosing(target, props, \"meta\");\n } else {\n if (textEmbedded) {\n // This link follows text but we aren't writing a tag. while not as efficient as possible we need\n // to be safe and assume text will follow by inserting a textSeparator\n target.push(textSeparator);\n }\n if (typeof props.charSet === \"string\") {\n return pushSelfClosing(renderState.charsetChunks, props, \"meta\");\n } else if (props.name === \"viewport\") {\n // \"viewport\" isn't related to preconnect but it has the right priority\n return pushSelfClosing(renderState.preconnectChunks, props, \"meta\");\n } else {\n return pushSelfClosing(renderState.hoistableChunks, props, \"meta\");\n }\n }\n }\n }\n function pushLink(target, props, resumableState, renderState, textEmbedded, insertionMode, noscriptTagInScope) {\n {\n var rel = props.rel;\n var href = props.href;\n var precedence = props.precedence;\n if (insertionMode === SVG_MODE || noscriptTagInScope || props.itemProp != null || typeof rel !== \"string\" || typeof href !== \"string\" || href === \"\") {\n {\n if (rel === \"stylesheet\" && typeof props.precedence === \"string\") {\n if (typeof href !== \"string\" || !href) {\n error('React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.', getValueDescriptorExpectingObjectForWarning(href));\n }\n }\n }\n pushLinkImpl(target, props);\n return null;\n }\n if (props.rel === \"stylesheet\") {\n // This <link> may hoistable as a Stylesheet Resource, otherwise it will emit in place\n var key = getResourceKey(href);\n if (typeof precedence !== \"string\" || props.disabled != null || props.onLoad || props.onError) {\n // This stylesheet is either not opted into Resource semantics or has conflicting properties which\n // disqualify it for such. We can still create a preload resource to help it load faster on the\n // client\n {\n if (typeof precedence === \"string\") {\n if (props.disabled != null) {\n error('React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.');\n } else if (props.onLoad || props.onError) {\n var propDescription = props.onLoad && props.onError ? \"`onLoad` and `onError` props\" : props.onLoad ? \"`onLoad` prop\" : \"`onError` prop\";\n error('React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.', propDescription, propDescription);\n }\n }\n }\n return pushLinkImpl(target, props);\n } else {\n // This stylesheet refers to a Resource and we create a new one if necessary\n var styleQueue = renderState.styles.get(precedence);\n var hasKey = resumableState.styleResources.hasOwnProperty(key);\n var resourceState = hasKey ? resumableState.styleResources[key] : undefined;\n if (resourceState !== EXISTS) {\n // We are going to create this resource now so it is marked as Exists\n resumableState.styleResources[key] = EXISTS; // If this is the first time we've encountered this precedence we need\n // to create a StyleQueue\n if (!styleQueue) {\n styleQueue = {\n precedence: stringToChunk(escapeTextForBrowser(precedence)),\n rules: [],\n hrefs: [],\n sheets: new Map()\n };\n renderState.styles.set(precedence, styleQueue);\n }\n var resource = {\n state: PENDING$1,\n props: stylesheetPropsFromRawProps(props)\n };\n if (resourceState) {\n // When resourceState is truty it is a Preload state. We cast it for clarity\n var preloadState = resourceState;\n if (preloadState.length === 2) {\n adoptPreloadCredentials(resource.props, preloadState);\n }\n var preloadResource = renderState.preloads.stylesheets.get(key);\n if (preloadResource && preloadResource.length > 0) {\n // The Preload for this resource was created in this render pass and has not flushed yet so\n // we need to clear it to avoid it flushing.\n preloadResource.length = 0;\n } else {\n // Either the preload resource from this render already flushed in this render pass\n // or the preload flushed in a prior pass (prerender). In either case we need to mark\n // this resource as already having been preloaded.\n resource.state = PRELOADED;\n }\n } // We add the newly created resource to our StyleQueue and if necessary\n // track the resource with the currently rendering boundary\n styleQueue.sheets.set(key, resource);\n if (renderState.boundaryResources) {\n renderState.boundaryResources.stylesheets.add(resource);\n }\n } else {\n // We need to track whether this boundary should wait on this resource or not.\n // Typically this resource should always exist since we either had it or just created\n // it. However, it's possible when you resume that the style has already been emitted\n // and then it wouldn't be recreated in the RenderState and there's no need to track\n // it again since we should've hoisted it to the shell already.\n if (styleQueue) {\n var _resource = styleQueue.sheets.get(key);\n if (_resource) {\n if (renderState.boundaryResources) {\n renderState.boundaryResources.stylesheets.add(_resource);\n }\n }\n }\n }\n if (textEmbedded) {\n // This link follows text but we aren't writing a tag. while not as efficient as possible we need\n // to be safe and assume text will follow by inserting a textSeparator\n target.push(textSeparator);\n }\n return null;\n }\n } else if (props.onLoad || props.onError) {\n // When using load handlers we cannot hoist and need to emit links in place\n return pushLinkImpl(target, props);\n } else {\n // We can hoist this link so we may need to emit a text separator.\n // @TODO refactor text separators so we don't have to defensively add\n // them when we don't end up emitting a tag as a result of pushStartInstance\n if (textEmbedded) {\n // This link follows text but we aren't writing a tag. while not as efficient as possible we need\n // to be safe and assume text will follow by inserting a textSeparator\n target.push(textSeparator);\n }\n switch(props.rel){\n case \"preconnect\":\n case \"dns-prefetch\":\n return pushLinkImpl(renderState.preconnectChunks, props);\n case \"preload\":\n return pushLinkImpl(renderState.preloadChunks, props);\n default:\n return pushLinkImpl(renderState.hoistableChunks, props);\n }\n }\n }\n }\n function pushLinkImpl(target, props) {\n target.push(startChunkForTag(\"link\"));\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw new Error(\"link\" + \" is a self-closing tag and must neither have `children` nor \" + \"use `dangerouslySetInnerHTML`.\");\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTagSelfClosing);\n return null;\n }\n function pushStyle(target, props, resumableState, renderState, textEmbedded, insertionMode, noscriptTagInScope) {\n {\n if (hasOwnProperty.call(props, \"children\")) {\n var children = props.children;\n var child = Array.isArray(children) ? children.length < 2 ? children[0] : null : children;\n if (typeof child === \"function\" || typeof child === \"symbol\" || Array.isArray(child)) {\n var childType = typeof child === \"function\" ? \"a Function\" : typeof child === \"symbol\" ? \"a Sybmol\" : \"an Array\";\n error(\"React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. \" + \"In browsers style Elements can only have `Text` Nodes as children.\", childType);\n }\n }\n }\n {\n var precedence = props.precedence;\n var href = props.href;\n if (insertionMode === SVG_MODE || noscriptTagInScope || props.itemProp != null || typeof precedence !== \"string\" || typeof href !== \"string\" || href === \"\") {\n // This style tag is not able to be turned into a Style Resource\n return pushStyleImpl(target, props);\n }\n {\n if (href.includes(\" \")) {\n error('React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is \"%s\".', href);\n }\n }\n var key = getResourceKey(href);\n var styleQueue = renderState.styles.get(precedence);\n var hasKey = resumableState.styleResources.hasOwnProperty(key);\n var resourceState = hasKey ? resumableState.styleResources[key] : undefined;\n if (resourceState !== EXISTS) {\n // We are going to create this resource now so it is marked as Exists\n resumableState.styleResources[key] = EXISTS;\n {\n if (resourceState) {\n error('React encountered a hoistable style tag for the same href as a preload: \"%s\". When using a style tag to inline styles you should not also preload it as a stylsheet.', href);\n }\n }\n if (!styleQueue) {\n // This is the first time we've encountered this precedence we need\n // to create a StyleQueue.\n styleQueue = {\n precedence: stringToChunk(escapeTextForBrowser(precedence)),\n rules: [],\n hrefs: [\n stringToChunk(escapeTextForBrowser(href))\n ],\n sheets: new Map()\n };\n renderState.styles.set(precedence, styleQueue);\n } else {\n // We have seen this precedence before and need to track this href\n styleQueue.hrefs.push(stringToChunk(escapeTextForBrowser(href)));\n }\n pushStyleContents(styleQueue.rules, props);\n }\n if (styleQueue) {\n // We need to track whether this boundary should wait on this resource or not.\n // Typically this resource should always exist since we either had it or just created\n // it. However, it's possible when you resume that the style has already been emitted\n // and then it wouldn't be recreated in the RenderState and there's no need to track\n // it again since we should've hoisted it to the shell already.\n if (renderState.boundaryResources) {\n renderState.boundaryResources.styles.add(styleQueue);\n }\n }\n if (textEmbedded) {\n // This link follows text but we aren't writing a tag. while not as efficient as possible we need\n // to be safe and assume text will follow by inserting a textSeparator\n target.push(textSeparator);\n }\n }\n }\n function pushStyleImpl(target, props) {\n target.push(startChunkForTag(\"style\"));\n var children = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTag);\n var child = Array.isArray(children) ? children.length < 2 ? children[0] : null : children;\n if (typeof child !== \"function\" && typeof child !== \"symbol\" && child !== null && child !== undefined) {\n // eslint-disable-next-line react-internal/safe-string-coercion\n target.push(stringToChunk(escapeTextForBrowser(\"\" + child)));\n }\n pushInnerHTML(target, innerHTML, children);\n target.push(endChunkForTag(\"style\"));\n return null;\n }\n function pushStyleContents(target, props) {\n var children = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n }\n }\n }\n var child = Array.isArray(children) ? children.length < 2 ? children[0] : null : children;\n if (typeof child !== \"function\" && typeof child !== \"symbol\" && child !== null && child !== undefined) {\n // eslint-disable-next-line react-internal/safe-string-coercion\n target.push(stringToChunk(escapeTextForBrowser(\"\" + child)));\n }\n pushInnerHTML(target, innerHTML, children);\n return;\n }\n function pushImg(target, props, resumableState, renderState, pictureTagInScope) {\n var src = props.src, srcSet = props.srcSet;\n if (props.loading !== \"lazy\" && (src || srcSet) && (typeof src === \"string\" || src == null) && (typeof srcSet === \"string\" || srcSet == null) && props.fetchPriority !== \"low\" && pictureTagInScope === false && // We exclude data URIs in src and srcSet since these should not be preloaded\n !(typeof src === \"string\" && src[4] === \":\" && (src[0] === \"d\" || src[0] === \"D\") && (src[1] === \"a\" || src[1] === \"A\") && (src[2] === \"t\" || src[2] === \"T\") && (src[3] === \"a\" || src[3] === \"A\")) && !(typeof srcSet === \"string\" && srcSet[4] === \":\" && (srcSet[0] === \"d\" || srcSet[0] === \"D\") && (srcSet[1] === \"a\" || srcSet[1] === \"A\") && (srcSet[2] === \"t\" || srcSet[2] === \"T\") && (srcSet[3] === \"a\" || srcSet[3] === \"A\"))) {\n // We have a suspensey image and ought to preload it to optimize the loading of display blocking\n // resumableState.\n var sizes = typeof props.sizes === \"string\" ? props.sizes : undefined;\n var key = getImageResourceKey(src, srcSet, sizes);\n var promotablePreloads = renderState.preloads.images;\n var resource = promotablePreloads.get(key);\n if (resource) {\n // We consider whether this preload can be promoted to higher priority flushing queue.\n // The only time a resource will exist here is if it was created during this render\n // and was not already in the high priority queue.\n if (props.fetchPriority === \"high\" || renderState.highImagePreloads.size < 10) {\n // Delete the resource from the map since we are promoting it and don't want to\n // reenter this branch in a second pass for duplicate img hrefs.\n promotablePreloads.delete(key); // $FlowFixMe - Flow should understand that this is a Resource if the condition was true\n renderState.highImagePreloads.add(resource);\n }\n } else if (!resumableState.imageResources.hasOwnProperty(key)) {\n // We must construct a new preload resource\n resumableState.imageResources[key] = PRELOAD_NO_CREDS;\n var crossOrigin = getCrossOriginString(props.crossOrigin);\n var headers = renderState.headers;\n var header;\n if (headers && headers.remainingCapacity > 0 && // fetchPriority=\"high\". We use length here which means it will fit fewer images when\n // the urls are long and more when short. arguably byte size is a better hueristic because\n // it directly translates to how much we send down before content is actually seen.\n // We could unify the counts and also make it so the total is tracked regardless of\n // flushing output but since the headers are likely to be go earlier than content\n // they don't really conflict so for now I've kept them separate\n (props.fetchPriority === \"high\" || headers.highImagePreloads.length < 500) && // the params list with arbitrary props and if we copied everything over as it we might get\n // coercion errors. We have checks for this in Dev but it seems safer to just only accept values\n // that are strings\n (header = getPreloadAsHeader(src, \"image\", {\n imageSrcSet: props.srcSet,\n imageSizes: props.sizes,\n crossOrigin: crossOrigin,\n integrity: props.integrity,\n nonce: props.nonce,\n type: props.type,\n fetchPriority: props.fetchPriority,\n referrerPolicy: props.refererPolicy\n }), // we assume all the rest won't as well. This is to avoid getting into a situation\n // where we have a very small remaining capacity but no headers will ever fit and we end\n // up constantly trying to see if the next resource might make it. In the future we can\n // make this behavior different between render and prerender since in the latter case\n // we are less sensitive to the current requests runtime per and more sensitive to maximizing\n // headers.\n (headers.remainingCapacity -= header.length) >= 2)) {\n // If we postpone in the shell we will still emit this preload so we track\n // it to make sure we don't reset it.\n renderState.resets.image[key] = PRELOAD_NO_CREDS;\n if (headers.highImagePreloads) {\n headers.highImagePreloads += \", \";\n } // $FlowFixMe[unsafe-addition]: we assign header during the if condition\n headers.highImagePreloads += header;\n } else {\n resource = [];\n pushLinkImpl(resource, {\n rel: \"preload\",\n as: \"image\",\n // There is a bug in Safari where imageSrcSet is not respected on preload links\n // so we omit the href here if we have imageSrcSet b/c safari will load the wrong image.\n // This harms older browers that do not support imageSrcSet by making their preloads not work\n // but this population is shrinking fast and is already small so we accept this tradeoff.\n href: srcSet ? undefined : src,\n imageSrcSet: srcSet,\n imageSizes: sizes,\n crossOrigin: crossOrigin,\n integrity: props.integrity,\n type: props.type,\n fetchPriority: props.fetchPriority,\n referrerPolicy: props.referrerPolicy\n });\n if (props.fetchPriority === \"high\" || renderState.highImagePreloads.size < 10) {\n renderState.highImagePreloads.add(resource);\n } else {\n renderState.bulkPreloads.add(resource); // We can bump the priority up if the same img is rendered later\n // with fetchPriority=\"high\"\n promotablePreloads.set(key, resource);\n }\n }\n }\n }\n return pushSelfClosing(target, props, \"img\");\n }\n function pushSelfClosing(target, props, tag) {\n target.push(startChunkForTag(tag));\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw new Error(tag + \" is a self-closing tag and must neither have `children` nor \" + \"use `dangerouslySetInnerHTML`.\");\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTagSelfClosing);\n return null;\n }\n function pushStartMenuItem(target, props) {\n target.push(startChunkForTag(\"menuitem\"));\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw new Error(\"menuitems cannot have `children` nor `dangerouslySetInnerHTML`.\");\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTag);\n return null;\n }\n function pushTitle(target, props, renderState, insertionMode, noscriptTagInScope) {\n {\n if (hasOwnProperty.call(props, \"children\")) {\n var children = props.children;\n var child = Array.isArray(children) ? children.length < 2 ? children[0] : null : children;\n if (Array.isArray(children) && children.length > 1) {\n error(\"React expects the `children` prop of <title> tags to be a string, number, or object with a novel `toString` method but found an Array with length %s instead.\" + \" Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value\" + \" which is why Arrays of length greater than 1 are not supported. When using JSX it can be commong to combine text nodes and value nodes.\" + \" For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop\" + \" is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.\", children.length);\n } else if (typeof child === \"function\" || typeof child === \"symbol\") {\n var childType = typeof child === \"function\" ? \"a Function\" : \"a Sybmol\";\n error(\"React expect children of <title> tags to be a string, number, or object with a novel `toString` method but found %s instead.\" + \" Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title>\" + \" tags to a single string value.\", childType);\n } else if (child && child.toString === ({}).toString) {\n if (child.$$typeof != null) {\n error(\"React expects the `children` prop of <title> tags to be a string, number, or object with a novel `toString` method but found an object that appears to be\" + \" a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to\" + \" be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is\" + \" a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML.\");\n } else {\n error(\"React expects the `children` prop of <title> tags to be a string, number, or object with a novel `toString` method but found an object that does not implement\" + \" a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags\" + \" to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title>\" + \" is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>.\");\n }\n }\n }\n }\n {\n if (insertionMode !== SVG_MODE && !noscriptTagInScope && props.itemProp == null) {\n pushTitleImpl(renderState.hoistableChunks, props);\n return null;\n } else {\n return pushTitleImpl(target, props);\n }\n }\n }\n function pushTitleImpl(target, props) {\n target.push(startChunkForTag(\"title\"));\n var children = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTag);\n var child = Array.isArray(children) ? children.length < 2 ? children[0] : null : children;\n if (typeof child !== \"function\" && typeof child !== \"symbol\" && child !== null && child !== undefined) {\n // eslint-disable-next-line react-internal/safe-string-coercion\n target.push(stringToChunk(escapeTextForBrowser(\"\" + child)));\n }\n pushInnerHTML(target, innerHTML, children);\n target.push(endChunkForTag(\"title\"));\n return null;\n }\n function pushStartHead(target, props, renderState, insertionMode) {\n {\n if (insertionMode < HTML_MODE && renderState.headChunks === null) {\n // This <head> is the Document.head and should be part of the preamble\n renderState.headChunks = [];\n return pushStartGenericElement(renderState.headChunks, props, \"head\");\n } else {\n // This <head> is deep and is likely just an error. we emit it inline though.\n // Validation should warn that this tag is the the wrong spot.\n return pushStartGenericElement(target, props, \"head\");\n }\n }\n }\n function pushStartHtml(target, props, renderState, insertionMode) {\n {\n if (insertionMode === ROOT_HTML_MODE && renderState.htmlChunks === null) {\n // This <html> is the Document.documentElement and should be part of the preamble\n renderState.htmlChunks = [\n doctypeChunk\n ];\n return pushStartGenericElement(renderState.htmlChunks, props, \"html\");\n } else {\n // This <html> is deep and is likely just an error. we emit it inline though.\n // Validation should warn that this tag is the the wrong spot.\n return pushStartGenericElement(target, props, \"html\");\n }\n }\n }\n function pushScript(target, props, resumableState, renderState, textEmbedded, insertionMode, noscriptTagInScope) {\n {\n var asyncProp = props.async;\n if (typeof props.src !== \"string\" || !props.src || !(asyncProp && typeof asyncProp !== \"function\" && typeof asyncProp !== \"symbol\") || props.onLoad || props.onError || insertionMode === SVG_MODE || noscriptTagInScope || props.itemProp != null) {\n // This script will not be a resource, we bailout early and emit it in place.\n return pushScriptImpl(target, props);\n }\n var src = props.src;\n var key = getResourceKey(src); // We can make this <script> into a ScriptResource\n var resources, preloads;\n if (props.type === \"module\") {\n resources = resumableState.moduleScriptResources;\n preloads = renderState.preloads.moduleScripts;\n } else {\n resources = resumableState.scriptResources;\n preloads = renderState.preloads.scripts;\n }\n var hasKey = resources.hasOwnProperty(key);\n var resourceState = hasKey ? resources[key] : undefined;\n if (resourceState !== EXISTS) {\n // We are going to create this resource now so it is marked as Exists\n resources[key] = EXISTS;\n var scriptProps = props;\n if (resourceState) {\n // When resourceState is truty it is a Preload state. We cast it for clarity\n var preloadState = resourceState;\n if (preloadState.length === 2) {\n scriptProps = assign({}, props);\n adoptPreloadCredentials(scriptProps, preloadState);\n }\n var preloadResource = preloads.get(key);\n if (preloadResource) {\n // the preload resource exists was created in this render. Now that we have\n // a script resource which will emit earlier than a preload would if it\n // hasn't already flushed we prevent it from flushing by zeroing the length\n preloadResource.length = 0;\n }\n }\n var resource = []; // Add to the script flushing queue\n renderState.scripts.add(resource); // encode the tag as Chunks\n pushScriptImpl(resource, scriptProps);\n }\n if (textEmbedded) {\n // This script follows text but we aren't writing a tag. while not as efficient as possible we need\n // to be safe and assume text will follow by inserting a textSeparator\n target.push(textSeparator);\n }\n return null;\n }\n }\n function pushScriptImpl(target, props) {\n target.push(startChunkForTag(\"script\"));\n var children = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTag);\n {\n if (children != null && typeof children !== \"string\") {\n var descriptiveStatement = typeof children === \"number\" ? \"a number for children\" : Array.isArray(children) ? \"an array for children\" : \"something unexpected for children\";\n error(\"A script element was rendered with %s. If script element has children it must be a single string.\" + \" Consider using dangerouslySetInnerHTML or passing a plain string as children.\", descriptiveStatement);\n }\n }\n pushInnerHTML(target, innerHTML, children);\n if (typeof children === \"string\") {\n target.push(stringToChunk(encodeHTMLTextNode(children)));\n }\n target.push(endChunkForTag(\"script\"));\n return null;\n }\n function pushStartGenericElement(target, props, tag) {\n target.push(startChunkForTag(tag));\n var children = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTag);\n pushInnerHTML(target, innerHTML, children);\n if (typeof children === \"string\") {\n // Special case children as a string to avoid the unnecessary comment.\n // TODO: Remove this special case after the general optimization is in place.\n target.push(stringToChunk(encodeHTMLTextNode(children)));\n return null;\n }\n return children;\n }\n function pushStartCustomElement(target, props, tag) {\n target.push(startChunkForTag(tag));\n var children = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n var attributeName = propKey;\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n case \"style\":\n pushStyleAttribute(target, propValue);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n break;\n case \"className\":\n // intentional fallthrough\n default:\n if (isAttributeNameSafe(propKey) && typeof propValue !== \"function\" && typeof propValue !== \"symbol\") {\n target.push(attributeSeparator, stringToChunk(attributeName), attributeAssign, stringToChunk(escapeTextForBrowser(propValue)), attributeEnd);\n }\n break;\n }\n }\n }\n target.push(endOfStartTag);\n pushInnerHTML(target, innerHTML, children);\n return children;\n }\n var leadingNewline = stringToPrecomputedChunk(\"\\n\");\n function pushStartPreformattedElement(target, props, tag) {\n target.push(startChunkForTag(tag));\n var children = null;\n var innerHTML = null;\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n break;\n }\n }\n }\n target.push(endOfStartTag); // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n // TODO: This doesn't deal with the case where the child is an array\n // or component that returns a string.\n if (innerHTML != null) {\n if (children != null) {\n throw new Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");\n }\n if (typeof innerHTML !== \"object\" || !(\"__html\" in innerHTML)) {\n throw new Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. \" + \"Please visit https://reactjs.org/link/dangerously-set-inner-html \" + \"for more information.\");\n }\n var html = innerHTML.__html;\n if (html !== null && html !== undefined) {\n if (typeof html === \"string\" && html.length > 0 && html[0] === \"\\n\") {\n target.push(leadingNewline, stringToChunk(html));\n } else {\n {\n checkHtmlStringCoercion(html);\n }\n target.push(stringToChunk(\"\" + html));\n }\n }\n }\n if (typeof children === \"string\" && children[0] === \"\\n\") {\n target.push(leadingNewline);\n }\n return children;\n } // We accept any tag to be rendered but since this gets injected into arbitrary\n // HTML, we want to make sure that it's a safe tag.\n // http://www.w3.org/TR/REC-xml/#NT-Name\n var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\n var validatedTagCache = new Map();\n function startChunkForTag(tag) {\n var tagStartChunk = validatedTagCache.get(tag);\n if (tagStartChunk === undefined) {\n if (!VALID_TAG_REGEX.test(tag)) {\n throw new Error(\"Invalid tag: \" + tag);\n }\n tagStartChunk = stringToPrecomputedChunk(\"<\" + tag);\n validatedTagCache.set(tag, tagStartChunk);\n }\n return tagStartChunk;\n }\n var doctypeChunk = stringToPrecomputedChunk(\"<!DOCTYPE html>\");\n function pushStartInstance(target, type, props, resumableState, renderState, formatContext, textEmbedded) {\n {\n validateProperties$2(type, props);\n validateProperties$1(type, props);\n validateProperties(type, props, null);\n if (!props.suppressContentEditableWarning && props.contentEditable && props.children != null) {\n error(\"A component is `contentEditable` and contains `children` managed by \" + \"React. It is now your responsibility to guarantee that none of \" + \"those nodes are unexpectedly modified or duplicated. This is \" + \"probably not intentional.\");\n }\n if (formatContext.insertionMode !== SVG_MODE && formatContext.insertionMode !== MATHML_MODE) {\n if (type.indexOf(\"-\") === -1 && type.toLowerCase() !== type) {\n error(\"<%s /> is using incorrect casing. \" + \"Use PascalCase for React components, \" + \"or lowercase for HTML elements.\", type);\n }\n }\n }\n switch(type){\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n // Special tags\n case \"select\":\n return pushStartSelect(target, props);\n case \"option\":\n return pushStartOption(target, props, formatContext);\n case \"textarea\":\n return pushStartTextArea(target, props);\n case \"input\":\n return pushInput(target, props, resumableState, renderState);\n case \"button\":\n return pushStartButton(target, props, resumableState, renderState);\n case \"form\":\n return pushStartForm(target, props, resumableState, renderState);\n case \"menuitem\":\n return pushStartMenuItem(target, props);\n case \"title\":\n return pushTitle(target, props, renderState, formatContext.insertionMode, !!(formatContext.tagScope & NOSCRIPT_SCOPE));\n case \"link\":\n return pushLink(target, props, resumableState, renderState, textEmbedded, formatContext.insertionMode, !!(formatContext.tagScope & NOSCRIPT_SCOPE));\n case \"script\":\n return pushScript(target, props, resumableState, renderState, textEmbedded, formatContext.insertionMode, !!(formatContext.tagScope & NOSCRIPT_SCOPE));\n case \"style\":\n return pushStyle(target, props, resumableState, renderState, textEmbedded, formatContext.insertionMode, !!(formatContext.tagScope & NOSCRIPT_SCOPE));\n case \"meta\":\n return pushMeta(target, props, renderState, textEmbedded, formatContext.insertionMode, !!(formatContext.tagScope & NOSCRIPT_SCOPE));\n // Newline eating tags\n case \"listing\":\n case \"pre\":\n {\n return pushStartPreformattedElement(target, props, type);\n }\n case \"img\":\n {\n return pushImg(target, props, resumableState, renderState, !!(formatContext.tagScope & PICTURE_SCOPE));\n }\n // Omitted close tags\n case \"base\":\n case \"area\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n {\n return pushSelfClosing(target, props, type);\n }\n // These are reserved SVG and MathML elements, that are never custom elements.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n {\n break;\n }\n // Preamble start tags\n case \"head\":\n return pushStartHead(target, props, renderState, formatContext.insertionMode);\n case \"html\":\n {\n return pushStartHtml(target, props, renderState, formatContext.insertionMode);\n }\n default:\n {\n if (type.indexOf(\"-\") !== -1) {\n // Custom element\n return pushStartCustomElement(target, props, type);\n }\n }\n } // Generic element\n return pushStartGenericElement(target, props, type);\n }\n var endTagCache = new Map();\n function endChunkForTag(tag) {\n var chunk = endTagCache.get(tag);\n if (chunk === undefined) {\n chunk = stringToPrecomputedChunk(\"</\" + tag + \">\");\n endTagCache.set(tag, chunk);\n }\n return chunk;\n }\n function pushEndInstance(target, type, props, resumableState, formatContext) {\n switch(type){\n // When float is on we expect title and script tags to always be pushed in\n // a unit and never return children. when we end up pushing the end tag we\n // want to ensure there is no extra closing tag pushed\n case \"title\":\n case \"style\":\n case \"script\":\n // Omitted close tags\n // TODO: Instead of repeating this switch we could try to pass a flag from above.\n // That would require returning a tuple. Which might be ok if it gets inlined.\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"img\":\n case \"input\":\n case \"keygen\":\n case \"link\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n {\n // No close tag needed.\n return;\n }\n // Postamble end tags\n // When float is enabled we omit the end tags for body and html when\n // they represent the Document.body and Document.documentElement Nodes.\n // This is so we can withhold them until the postamble when we know\n // we won't emit any more tags\n case \"body\":\n {\n if (formatContext.insertionMode <= HTML_HTML_MODE) {\n resumableState.hasBody = true;\n return;\n }\n break;\n }\n case \"html\":\n if (formatContext.insertionMode === ROOT_HTML_MODE) {\n resumableState.hasHtml = true;\n return;\n }\n break;\n }\n target.push(endChunkForTag(type));\n }\n function writeBootstrap(destination, renderState) {\n var bootstrapChunks = renderState.bootstrapChunks;\n var i = 0;\n for(; i < bootstrapChunks.length - 1; i++){\n writeChunk(destination, bootstrapChunks[i]);\n }\n if (i < bootstrapChunks.length) {\n var lastChunk = bootstrapChunks[i];\n bootstrapChunks.length = 0;\n return writeChunkAndReturn(destination, lastChunk);\n }\n return true;\n }\n function writeCompletedRoot(destination, renderState) {\n return writeBootstrap(destination, renderState);\n } // Structural Nodes\n // A placeholder is a node inside a hidden partial tree that can be filled in later, but before\n // display. It's never visible to users. We use the template tag because it can be used in every\n // type of parent. <script> tags also work in every other tag except <colgroup>.\n var placeholder1 = stringToPrecomputedChunk('<template id=\"');\n var placeholder2 = stringToPrecomputedChunk('\"></template>');\n function writePlaceholder(destination, renderState, id) {\n writeChunk(destination, placeholder1);\n writeChunk(destination, renderState.placeholderPrefix);\n var formattedID = stringToChunk(id.toString(16));\n writeChunk(destination, formattedID);\n return writeChunkAndReturn(destination, placeholder2);\n } // Suspense boundaries are encoded as comments.\n var startCompletedSuspenseBoundary = stringToPrecomputedChunk(\"<!--$-->\");\n var startPendingSuspenseBoundary1 = stringToPrecomputedChunk('<!--$?--><template id=\"');\n var startPendingSuspenseBoundary2 = stringToPrecomputedChunk('\"></template>');\n var startClientRenderedSuspenseBoundary = stringToPrecomputedChunk(\"<!--$!-->\");\n var endSuspenseBoundary = stringToPrecomputedChunk(\"<!--/$-->\");\n var clientRenderedSuspenseBoundaryError1 = stringToPrecomputedChunk(\"<template\");\n var clientRenderedSuspenseBoundaryErrorAttrInterstitial = stringToPrecomputedChunk('\"');\n var clientRenderedSuspenseBoundaryError1A = stringToPrecomputedChunk(' data-dgst=\"');\n var clientRenderedSuspenseBoundaryError1B = stringToPrecomputedChunk(' data-msg=\"');\n var clientRenderedSuspenseBoundaryError1C = stringToPrecomputedChunk(' data-stck=\"');\n var clientRenderedSuspenseBoundaryError2 = stringToPrecomputedChunk(\"></template>\");\n function writeStartCompletedSuspenseBoundary(destination, renderState) {\n return writeChunkAndReturn(destination, startCompletedSuspenseBoundary);\n }\n function writeStartPendingSuspenseBoundary(destination, renderState, id) {\n writeChunk(destination, startPendingSuspenseBoundary1);\n if (id === null) {\n throw new Error(\"An ID must have been assigned before we can complete the boundary.\");\n }\n writeChunk(destination, renderState.boundaryPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n return writeChunkAndReturn(destination, startPendingSuspenseBoundary2);\n }\n function writeStartClientRenderedSuspenseBoundary(destination, renderState, errorDigest, errorMesssage, errorComponentStack) {\n var result;\n result = writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);\n writeChunk(destination, clientRenderedSuspenseBoundaryError1);\n if (errorDigest) {\n writeChunk(destination, clientRenderedSuspenseBoundaryError1A);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(errorDigest)));\n writeChunk(destination, clientRenderedSuspenseBoundaryErrorAttrInterstitial);\n }\n {\n if (errorMesssage) {\n writeChunk(destination, clientRenderedSuspenseBoundaryError1B);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(errorMesssage)));\n writeChunk(destination, clientRenderedSuspenseBoundaryErrorAttrInterstitial);\n }\n if (errorComponentStack) {\n writeChunk(destination, clientRenderedSuspenseBoundaryError1C);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(errorComponentStack)));\n writeChunk(destination, clientRenderedSuspenseBoundaryErrorAttrInterstitial);\n }\n }\n result = writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);\n return result;\n }\n function writeEndCompletedSuspenseBoundary(destination, renderState) {\n return writeChunkAndReturn(destination, endSuspenseBoundary);\n }\n function writeEndPendingSuspenseBoundary(destination, renderState) {\n return writeChunkAndReturn(destination, endSuspenseBoundary);\n }\n function writeEndClientRenderedSuspenseBoundary(destination, renderState) {\n return writeChunkAndReturn(destination, endSuspenseBoundary);\n }\n var startSegmentHTML = stringToPrecomputedChunk('<div hidden id=\"');\n var startSegmentHTML2 = stringToPrecomputedChunk('\">');\n var endSegmentHTML = stringToPrecomputedChunk(\"</div>\");\n var startSegmentSVG = stringToPrecomputedChunk('<svg aria-hidden=\"true\" style=\"display:none\" id=\"');\n var startSegmentSVG2 = stringToPrecomputedChunk('\">');\n var endSegmentSVG = stringToPrecomputedChunk(\"</svg>\");\n var startSegmentMathML = stringToPrecomputedChunk('<math aria-hidden=\"true\" style=\"display:none\" id=\"');\n var startSegmentMathML2 = stringToPrecomputedChunk('\">');\n var endSegmentMathML = stringToPrecomputedChunk(\"</math>\");\n var startSegmentTable = stringToPrecomputedChunk('<table hidden id=\"');\n var startSegmentTable2 = stringToPrecomputedChunk('\">');\n var endSegmentTable = stringToPrecomputedChunk(\"</table>\");\n var startSegmentTableBody = stringToPrecomputedChunk('<table hidden><tbody id=\"');\n var startSegmentTableBody2 = stringToPrecomputedChunk('\">');\n var endSegmentTableBody = stringToPrecomputedChunk(\"</tbody></table>\");\n var startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id=\"');\n var startSegmentTableRow2 = stringToPrecomputedChunk('\">');\n var endSegmentTableRow = stringToPrecomputedChunk(\"</tr></table>\");\n var startSegmentColGroup = stringToPrecomputedChunk('<table hidden><colgroup id=\"');\n var startSegmentColGroup2 = stringToPrecomputedChunk('\">');\n var endSegmentColGroup = stringToPrecomputedChunk(\"</colgroup></table>\");\n function writeStartSegment(destination, renderState, formatContext, id) {\n switch(formatContext.insertionMode){\n case ROOT_HTML_MODE:\n case HTML_HTML_MODE:\n case HTML_MODE:\n {\n writeChunk(destination, startSegmentHTML);\n writeChunk(destination, renderState.segmentPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n return writeChunkAndReturn(destination, startSegmentHTML2);\n }\n case SVG_MODE:\n {\n writeChunk(destination, startSegmentSVG);\n writeChunk(destination, renderState.segmentPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n return writeChunkAndReturn(destination, startSegmentSVG2);\n }\n case MATHML_MODE:\n {\n writeChunk(destination, startSegmentMathML);\n writeChunk(destination, renderState.segmentPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n return writeChunkAndReturn(destination, startSegmentMathML2);\n }\n case HTML_TABLE_MODE:\n {\n writeChunk(destination, startSegmentTable);\n writeChunk(destination, renderState.segmentPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n return writeChunkAndReturn(destination, startSegmentTable2);\n }\n // TODO: For the rest of these, there will be extra wrapper nodes that never\n // get deleted from the document. We need to delete the table too as part\n // of the injected scripts. They are invisible though so it's not too terrible\n // and it's kind of an edge case to suspend in a table. Totally supported though.\n case HTML_TABLE_BODY_MODE:\n {\n writeChunk(destination, startSegmentTableBody);\n writeChunk(destination, renderState.segmentPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n return writeChunkAndReturn(destination, startSegmentTableBody2);\n }\n case HTML_TABLE_ROW_MODE:\n {\n writeChunk(destination, startSegmentTableRow);\n writeChunk(destination, renderState.segmentPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n return writeChunkAndReturn(destination, startSegmentTableRow2);\n }\n case HTML_COLGROUP_MODE:\n {\n writeChunk(destination, startSegmentColGroup);\n writeChunk(destination, renderState.segmentPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n return writeChunkAndReturn(destination, startSegmentColGroup2);\n }\n default:\n {\n throw new Error(\"Unknown insertion mode. This is a bug in React.\");\n }\n }\n }\n function writeEndSegment(destination, formatContext) {\n switch(formatContext.insertionMode){\n case ROOT_HTML_MODE:\n case HTML_HTML_MODE:\n case HTML_MODE:\n {\n return writeChunkAndReturn(destination, endSegmentHTML);\n }\n case SVG_MODE:\n {\n return writeChunkAndReturn(destination, endSegmentSVG);\n }\n case MATHML_MODE:\n {\n return writeChunkAndReturn(destination, endSegmentMathML);\n }\n case HTML_TABLE_MODE:\n {\n return writeChunkAndReturn(destination, endSegmentTable);\n }\n case HTML_TABLE_BODY_MODE:\n {\n return writeChunkAndReturn(destination, endSegmentTableBody);\n }\n case HTML_TABLE_ROW_MODE:\n {\n return writeChunkAndReturn(destination, endSegmentTableRow);\n }\n case HTML_COLGROUP_MODE:\n {\n return writeChunkAndReturn(destination, endSegmentColGroup);\n }\n default:\n {\n throw new Error(\"Unknown insertion mode. This is a bug in React.\");\n }\n }\n }\n var completeSegmentScript1Full = stringToPrecomputedChunk(completeSegment + '$RS(\"');\n var completeSegmentScript1Partial = stringToPrecomputedChunk('$RS(\"');\n var completeSegmentScript2 = stringToPrecomputedChunk('\",\"');\n var completeSegmentScriptEnd = stringToPrecomputedChunk('\")</script>');\n var completeSegmentData1 = stringToPrecomputedChunk('<template data-rsi=\"\" data-sid=\"');\n var completeSegmentData2 = stringToPrecomputedChunk('\" data-pid=\"');\n var completeSegmentDataEnd = dataElementQuotedEnd;\n function writeCompletedSegmentInstruction(destination, resumableState, renderState, contentSegmentID) {\n var scriptFormat = resumableState.streamingFormat === ScriptStreamingFormat;\n if (scriptFormat) {\n writeChunk(destination, renderState.startInlineScript);\n if ((resumableState.instructions & SentCompleteSegmentFunction) === NothingSent) {\n // The first time we write this, we'll need to include the full implementation.\n resumableState.instructions |= SentCompleteSegmentFunction;\n writeChunk(destination, completeSegmentScript1Full);\n } else {\n // Future calls can just reuse the same function.\n writeChunk(destination, completeSegmentScript1Partial);\n }\n } else {\n writeChunk(destination, completeSegmentData1);\n } // Write function arguments, which are string literals\n writeChunk(destination, renderState.segmentPrefix);\n var formattedID = stringToChunk(contentSegmentID.toString(16));\n writeChunk(destination, formattedID);\n if (scriptFormat) {\n writeChunk(destination, completeSegmentScript2);\n } else {\n writeChunk(destination, completeSegmentData2);\n }\n writeChunk(destination, renderState.placeholderPrefix);\n writeChunk(destination, formattedID);\n if (scriptFormat) {\n return writeChunkAndReturn(destination, completeSegmentScriptEnd);\n } else {\n return writeChunkAndReturn(destination, completeSegmentDataEnd);\n }\n }\n var completeBoundaryScript1Full = stringToPrecomputedChunk(completeBoundary + '$RC(\"');\n var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC(\"');\n var completeBoundaryWithStylesScript1FullBoth = stringToPrecomputedChunk(completeBoundary + completeBoundaryWithStyles + '$RR(\"');\n var completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(completeBoundaryWithStyles + '$RR(\"');\n var completeBoundaryWithStylesScript1Partial = stringToPrecomputedChunk('$RR(\"');\n var completeBoundaryScript2 = stringToPrecomputedChunk('\",\"');\n var completeBoundaryScript3a = stringToPrecomputedChunk('\",');\n var completeBoundaryScript3b = stringToPrecomputedChunk('\"');\n var completeBoundaryScriptEnd = stringToPrecomputedChunk(\")</script>\");\n var completeBoundaryData1 = stringToPrecomputedChunk('<template data-rci=\"\" data-bid=\"');\n var completeBoundaryWithStylesData1 = stringToPrecomputedChunk('<template data-rri=\"\" data-bid=\"');\n var completeBoundaryData2 = stringToPrecomputedChunk('\" data-sid=\"');\n var completeBoundaryData3a = stringToPrecomputedChunk('\" data-sty=\"');\n var completeBoundaryDataEnd = dataElementQuotedEnd;\n function writeCompletedBoundaryInstruction(destination, resumableState, renderState, id, boundaryResources) {\n var requiresStyleInsertion;\n {\n requiresStyleInsertion = renderState.stylesToHoist; // If necessary stylesheets will be flushed with this instruction.\n // Any style tags not yet hoisted in the Document will also be hoisted.\n // We reset this state since after this instruction executes all styles\n // up to this point will have been hoisted\n renderState.stylesToHoist = false;\n }\n var scriptFormat = resumableState.streamingFormat === ScriptStreamingFormat;\n if (scriptFormat) {\n writeChunk(destination, renderState.startInlineScript);\n if (requiresStyleInsertion) {\n if ((resumableState.instructions & SentCompleteBoundaryFunction) === NothingSent) {\n resumableState.instructions |= SentStyleInsertionFunction | SentCompleteBoundaryFunction;\n writeChunk(destination, clonePrecomputedChunk(completeBoundaryWithStylesScript1FullBoth));\n } else if ((resumableState.instructions & SentStyleInsertionFunction) === NothingSent) {\n resumableState.instructions |= SentStyleInsertionFunction;\n writeChunk(destination, completeBoundaryWithStylesScript1FullPartial);\n } else {\n writeChunk(destination, completeBoundaryWithStylesScript1Partial);\n }\n } else {\n if ((resumableState.instructions & SentCompleteBoundaryFunction) === NothingSent) {\n resumableState.instructions |= SentCompleteBoundaryFunction;\n writeChunk(destination, completeBoundaryScript1Full);\n } else {\n writeChunk(destination, completeBoundaryScript1Partial);\n }\n }\n } else {\n if (requiresStyleInsertion) {\n writeChunk(destination, completeBoundaryWithStylesData1);\n } else {\n writeChunk(destination, completeBoundaryData1);\n }\n }\n var idChunk = stringToChunk(id.toString(16));\n writeChunk(destination, renderState.boundaryPrefix);\n writeChunk(destination, idChunk); // Write function arguments, which are string and array literals\n if (scriptFormat) {\n writeChunk(destination, completeBoundaryScript2);\n } else {\n writeChunk(destination, completeBoundaryData2);\n }\n writeChunk(destination, renderState.segmentPrefix);\n writeChunk(destination, idChunk);\n if (requiresStyleInsertion) {\n // Script and data writers must format this differently:\n // - script writer emits an array literal, whose string elements are\n // escaped for javascript e.g. [\"A\", \"B\"]\n // - data writer emits a string literal, which is escaped as html\n // e.g. [&#34;A&#34;, &#34;B&#34;]\n if (scriptFormat) {\n writeChunk(destination, completeBoundaryScript3a); // boundaryResources encodes an array literal\n writeStyleResourceDependenciesInJS(destination, boundaryResources);\n } else {\n writeChunk(destination, completeBoundaryData3a);\n writeStyleResourceDependenciesInAttr(destination, boundaryResources);\n }\n } else {\n if (scriptFormat) {\n writeChunk(destination, completeBoundaryScript3b);\n }\n }\n var writeMore;\n if (scriptFormat) {\n writeMore = writeChunkAndReturn(destination, completeBoundaryScriptEnd);\n } else {\n writeMore = writeChunkAndReturn(destination, completeBoundaryDataEnd);\n }\n return writeBootstrap(destination, renderState) && writeMore;\n }\n var clientRenderScript1Full = stringToPrecomputedChunk(clientRenderBoundary + ';$RX(\"');\n var clientRenderScript1Partial = stringToPrecomputedChunk('$RX(\"');\n var clientRenderScript1A = stringToPrecomputedChunk('\"');\n var clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(\",\");\n var clientRenderScriptEnd = stringToPrecomputedChunk(\")</script>\");\n var clientRenderData1 = stringToPrecomputedChunk('<template data-rxi=\"\" data-bid=\"');\n var clientRenderData2 = stringToPrecomputedChunk('\" data-dgst=\"');\n var clientRenderData3 = stringToPrecomputedChunk('\" data-msg=\"');\n var clientRenderData4 = stringToPrecomputedChunk('\" data-stck=\"');\n var clientRenderDataEnd = dataElementQuotedEnd;\n function writeClientRenderBoundaryInstruction(destination, resumableState, renderState, id, errorDigest, errorMessage, errorComponentStack) {\n var scriptFormat = resumableState.streamingFormat === ScriptStreamingFormat;\n if (scriptFormat) {\n writeChunk(destination, renderState.startInlineScript);\n if ((resumableState.instructions & SentClientRenderFunction) === NothingSent) {\n // The first time we write this, we'll need to include the full implementation.\n resumableState.instructions |= SentClientRenderFunction;\n writeChunk(destination, clientRenderScript1Full);\n } else {\n // Future calls can just reuse the same function.\n writeChunk(destination, clientRenderScript1Partial);\n }\n } else {\n // <template data-rxi=\"\" data-bid=\"\n writeChunk(destination, clientRenderData1);\n }\n writeChunk(destination, renderState.boundaryPrefix);\n writeChunk(destination, stringToChunk(id.toString(16)));\n if (scriptFormat) {\n // \" needs to be inserted for scripts, since ArgInterstitual does not contain\n // leading or trailing quotes\n writeChunk(destination, clientRenderScript1A);\n }\n if (errorDigest || errorMessage || errorComponentStack) {\n if (scriptFormat) {\n // ,\"JSONString\"\n writeChunk(destination, clientRenderErrorScriptArgInterstitial);\n writeChunk(destination, stringToChunk(escapeJSStringsForInstructionScripts(errorDigest || \"\")));\n } else {\n // \" data-dgst=\"HTMLString\n writeChunk(destination, clientRenderData2);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(errorDigest || \"\")));\n }\n }\n if (errorMessage || errorComponentStack) {\n if (scriptFormat) {\n // ,\"JSONString\"\n writeChunk(destination, clientRenderErrorScriptArgInterstitial);\n writeChunk(destination, stringToChunk(escapeJSStringsForInstructionScripts(errorMessage || \"\")));\n } else {\n // \" data-msg=\"HTMLString\n writeChunk(destination, clientRenderData3);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(errorMessage || \"\")));\n }\n }\n if (errorComponentStack) {\n // ,\"JSONString\"\n if (scriptFormat) {\n writeChunk(destination, clientRenderErrorScriptArgInterstitial);\n writeChunk(destination, stringToChunk(escapeJSStringsForInstructionScripts(errorComponentStack)));\n } else {\n // \" data-stck=\"HTMLString\n writeChunk(destination, clientRenderData4);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(errorComponentStack)));\n }\n }\n if (scriptFormat) {\n // ></script>\n return writeChunkAndReturn(destination, clientRenderScriptEnd);\n } else {\n // \"></template>\n return writeChunkAndReturn(destination, clientRenderDataEnd);\n }\n }\n var regexForJSStringsInInstructionScripts = /[<\\u2028\\u2029]/g;\n function escapeJSStringsForInstructionScripts(input) {\n var escaped = JSON.stringify(input);\n return escaped.replace(regexForJSStringsInInstructionScripts, function(match) {\n switch(match){\n // santizing breaking out of strings and script tags\n case \"<\":\n return \"\\\\u003c\";\n case \"\\u2028\":\n return \"\\\\u2028\";\n case \"\\u2029\":\n return \"\\\\u2029\";\n default:\n {\n // eslint-disable-next-line react-internal/prod-error-codes\n throw new Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");\n }\n }\n });\n }\n var regexForJSStringsInScripts = /[&><\\u2028\\u2029]/g;\n function escapeJSObjectForInstructionScripts(input) {\n var escaped = JSON.stringify(input);\n return escaped.replace(regexForJSStringsInScripts, function(match) {\n switch(match){\n // santizing breaking out of strings and script tags\n case \"&\":\n return \"\\\\u0026\";\n case \">\":\n return \"\\\\u003e\";\n case \"<\":\n return \"\\\\u003c\";\n case \"\\u2028\":\n return \"\\\\u2028\";\n case \"\\u2029\":\n return \"\\\\u2029\";\n default:\n {\n // eslint-disable-next-line react-internal/prod-error-codes\n throw new Error(\"escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");\n }\n }\n });\n }\n var lateStyleTagResourceOpen1 = stringToPrecomputedChunk('<style media=\"not all\" data-precedence=\"');\n var lateStyleTagResourceOpen2 = stringToPrecomputedChunk('\" data-href=\"');\n var lateStyleTagResourceOpen3 = stringToPrecomputedChunk('\">');\n var lateStyleTagTemplateClose = stringToPrecomputedChunk(\"</style>\"); // Tracks whether the boundary currently flushing is flushign style tags or has any\n // stylesheet dependencies not flushed in the Preamble.\n var currentlyRenderingBoundaryHasStylesToHoist = false; // Acts as a return value for the forEach execution of style tag flushing.\n var destinationHasCapacity = true;\n function flushStyleTagsLateForBoundary(styleQueue) {\n var rules = styleQueue.rules;\n var hrefs = styleQueue.hrefs;\n {\n if (rules.length > 0 && hrefs.length === 0) {\n error(\"React expected to have at least one href for an a hoistable style but found none. This is a bug in React.\");\n }\n }\n var i = 0;\n if (hrefs.length) {\n writeChunk(this, lateStyleTagResourceOpen1);\n writeChunk(this, styleQueue.precedence);\n writeChunk(this, lateStyleTagResourceOpen2);\n for(; i < hrefs.length - 1; i++){\n writeChunk(this, hrefs[i]);\n writeChunk(this, spaceSeparator);\n }\n writeChunk(this, hrefs[i]);\n writeChunk(this, lateStyleTagResourceOpen3);\n for(i = 0; i < rules.length; i++){\n writeChunk(this, rules[i]);\n }\n destinationHasCapacity = writeChunkAndReturn(this, lateStyleTagTemplateClose); // We wrote style tags for this boundary and we may need to emit a script\n // to hoist them.\n currentlyRenderingBoundaryHasStylesToHoist = true; // style resources can flush continuously since more rules may be written into\n // them with new hrefs. Instead of marking it flushed, we simply reset the chunks\n // and hrefs\n rules.length = 0;\n hrefs.length = 0;\n }\n }\n function hasStylesToHoist(stylesheet) {\n // We need to reveal boundaries with styles whenever a stylesheet it depends on is either\n // not flushed or flushed after the preamble (shell).\n if (stylesheet.state !== PREAMBLE) {\n currentlyRenderingBoundaryHasStylesToHoist = true;\n return true;\n }\n return false;\n }\n function writeResourcesForBoundary(destination, boundaryResources, renderState) {\n // Reset these on each invocation, they are only safe to read in this function\n currentlyRenderingBoundaryHasStylesToHoist = false;\n destinationHasCapacity = true; // Flush style tags for each precedence this boundary depends on\n boundaryResources.styles.forEach(flushStyleTagsLateForBoundary, destination); // Determine if this boundary has stylesheets that need to be awaited upon completion\n boundaryResources.stylesheets.forEach(hasStylesToHoist);\n if (currentlyRenderingBoundaryHasStylesToHoist) {\n renderState.stylesToHoist = true;\n }\n return destinationHasCapacity;\n }\n function flushResource(resource) {\n for(var i = 0; i < resource.length; i++){\n writeChunk(this, resource[i]);\n }\n resource.length = 0;\n }\n var stylesheetFlushingQueue = [];\n function flushStyleInPreamble(stylesheet, key, map) {\n // We still need to encode stylesheet chunks\n // because unlike most Hoistables and Resources we do not eagerly encode\n // them during render. This is because if we flush late we have to send a\n // different encoding and we don't want to encode multiple times\n pushLinkImpl(stylesheetFlushingQueue, stylesheet.props);\n for(var i = 0; i < stylesheetFlushingQueue.length; i++){\n writeChunk(this, stylesheetFlushingQueue[i]);\n }\n stylesheetFlushingQueue.length = 0;\n stylesheet.state = PREAMBLE;\n }\n var styleTagResourceOpen1 = stringToPrecomputedChunk('<style data-precedence=\"');\n var styleTagResourceOpen2 = stringToPrecomputedChunk('\" data-href=\"');\n var spaceSeparator = stringToPrecomputedChunk(\" \");\n var styleTagResourceOpen3 = stringToPrecomputedChunk('\">');\n var styleTagResourceClose = stringToPrecomputedChunk(\"</style>\");\n function flushStylesInPreamble(styleQueue, precedence) {\n var hasStylesheets = styleQueue.sheets.size > 0;\n styleQueue.sheets.forEach(flushStyleInPreamble, this);\n styleQueue.sheets.clear();\n var rules = styleQueue.rules;\n var hrefs = styleQueue.hrefs; // If we don't emit any stylesheets at this precedence we still need to maintain the precedence\n // order so even if there are no rules for style tags at this precedence we emit an empty style\n // tag with the data-precedence attribute\n if (!hasStylesheets || hrefs.length) {\n writeChunk(this, styleTagResourceOpen1);\n writeChunk(this, styleQueue.precedence);\n var i = 0;\n if (hrefs.length) {\n writeChunk(this, styleTagResourceOpen2);\n for(; i < hrefs.length - 1; i++){\n writeChunk(this, hrefs[i]);\n writeChunk(this, spaceSeparator);\n }\n writeChunk(this, hrefs[i]);\n }\n writeChunk(this, styleTagResourceOpen3);\n for(i = 0; i < rules.length; i++){\n writeChunk(this, rules[i]);\n }\n writeChunk(this, styleTagResourceClose); // style resources can flush continuously since more rules may be written into\n // them with new hrefs. Instead of marking it flushed, we simply reset the chunks\n // and hrefs\n rules.length = 0;\n hrefs.length = 0;\n }\n }\n function preloadLateStyle(stylesheet) {\n if (stylesheet.state === PENDING$1) {\n stylesheet.state = PRELOADED;\n var preloadProps = preloadAsStylePropsFromProps(stylesheet.props.href, stylesheet.props);\n pushLinkImpl(stylesheetFlushingQueue, preloadProps);\n for(var i = 0; i < stylesheetFlushingQueue.length; i++){\n writeChunk(this, stylesheetFlushingQueue[i]);\n }\n stylesheetFlushingQueue.length = 0;\n }\n }\n function preloadLateStyles(styleQueue) {\n styleQueue.sheets.forEach(preloadLateStyle, this);\n styleQueue.sheets.clear();\n } // We don't bother reporting backpressure at the moment because we expect to\n // flush the entire preamble in a single pass. This probably should be modified\n // in the future to be backpressure sensitive but that requires a larger refactor\n // of the flushing code in Fizz.\n function writePreamble(destination, resumableState, renderState, willFlushAllSegments) {\n // This function must be called exactly once on every request\n if (!willFlushAllSegments && renderState.externalRuntimeScript) {\n // If the root segment is incomplete due to suspended tasks\n // (e.g. willFlushAllSegments = false) and we are using data\n // streaming format, ensure the external runtime is sent.\n // (User code could choose to send this even earlier by calling\n // preinit(...), if they know they will suspend).\n var _renderState$external = renderState.externalRuntimeScript, src = _renderState$external.src, chunks = _renderState$external.chunks;\n internalPreinitScript(resumableState, renderState, src, chunks);\n }\n var htmlChunks = renderState.htmlChunks;\n var headChunks = renderState.headChunks;\n var i = 0; // Emit open tags before Hoistables and Resources\n if (htmlChunks) {\n // We have an <html> to emit as part of the preamble\n for(i = 0; i < htmlChunks.length; i++){\n writeChunk(destination, htmlChunks[i]);\n }\n if (headChunks) {\n for(i = 0; i < headChunks.length; i++){\n writeChunk(destination, headChunks[i]);\n }\n } else {\n // We did not render a head but we emitted an <html> so we emit one now\n writeChunk(destination, startChunkForTag(\"head\"));\n writeChunk(destination, endOfStartTag);\n }\n } else if (headChunks) {\n // We do not have an <html> but we do have a <head>\n for(i = 0; i < headChunks.length; i++){\n writeChunk(destination, headChunks[i]);\n }\n } // Emit high priority Hoistables\n var charsetChunks = renderState.charsetChunks;\n for(i = 0; i < charsetChunks.length; i++){\n writeChunk(destination, charsetChunks[i]);\n }\n charsetChunks.length = 0; // emit preconnect resources\n renderState.preconnects.forEach(flushResource, destination);\n renderState.preconnects.clear();\n var preconnectChunks = renderState.preconnectChunks;\n for(i = 0; i < preconnectChunks.length; i++){\n writeChunk(destination, preconnectChunks[i]);\n }\n preconnectChunks.length = 0;\n renderState.fontPreloads.forEach(flushResource, destination);\n renderState.fontPreloads.clear();\n renderState.highImagePreloads.forEach(flushResource, destination);\n renderState.highImagePreloads.clear(); // Flush unblocked stylesheets by precedence\n renderState.styles.forEach(flushStylesInPreamble, destination);\n var importMapChunks = renderState.importMapChunks;\n for(i = 0; i < importMapChunks.length; i++){\n writeChunk(destination, importMapChunks[i]);\n }\n importMapChunks.length = 0;\n renderState.bootstrapScripts.forEach(flushResource, destination);\n renderState.scripts.forEach(flushResource, destination);\n renderState.scripts.clear();\n renderState.bulkPreloads.forEach(flushResource, destination);\n renderState.bulkPreloads.clear(); // Write embedding preloadChunks\n var preloadChunks = renderState.preloadChunks;\n for(i = 0; i < preloadChunks.length; i++){\n writeChunk(destination, preloadChunks[i]);\n }\n preloadChunks.length = 0; // Write embedding hoistableChunks\n var hoistableChunks = renderState.hoistableChunks;\n for(i = 0; i < hoistableChunks.length; i++){\n writeChunk(destination, hoistableChunks[i]);\n }\n hoistableChunks.length = 0; // Flush closing head if necessary\n if (htmlChunks && headChunks === null) {\n // We have an <html> rendered but no <head> rendered. We however inserted\n // a <head> up above so we need to emit the </head> now. This is safe because\n // if the main content contained the </head> it would also have provided a\n // <head>. This means that all the content inside <html> is either <body> or\n // invalid HTML\n writeChunk(destination, endChunkForTag(\"head\"));\n }\n } // We don't bother reporting backpressure at the moment because we expect to\n // flush the entire preamble in a single pass. This probably should be modified\n // in the future to be backpressure sensitive but that requires a larger refactor\n // of the flushing code in Fizz.\n function writeHoistables(destination, resumableState, renderState) {\n var i = 0; // Emit high priority Hoistables\n // We omit charsetChunks because we have already sent the shell and if it wasn't\n // already sent it is too late now.\n renderState.preconnects.forEach(flushResource, destination);\n renderState.preconnects.clear();\n var preconnectChunks = renderState.preconnectChunks;\n for(i = 0; i < preconnectChunks.length; i++){\n writeChunk(destination, preconnectChunks[i]);\n }\n preconnectChunks.length = 0;\n renderState.fontPreloads.forEach(flushResource, destination);\n renderState.fontPreloads.clear();\n renderState.highImagePreloads.forEach(flushResource, destination);\n renderState.highImagePreloads.clear(); // Preload any stylesheets. these will emit in a render instruction that follows this\n // but we want to kick off preloading as soon as possible\n renderState.styles.forEach(preloadLateStyles, destination); // We only hoist importmaps that are configured through createResponse and that will\n // always flush in the preamble. Generally we don't expect people to render them as\n // tags when using React but if you do they are going to be treated like regular inline\n // scripts and flush after other hoistables which is problematic\n // bootstrap scripts should flush above script priority but these can only flush in the preamble\n // so we elide the code here for performance\n renderState.scripts.forEach(flushResource, destination);\n renderState.scripts.clear();\n renderState.bulkPreloads.forEach(flushResource, destination);\n renderState.bulkPreloads.clear(); // Write embedding preloadChunks\n var preloadChunks = renderState.preloadChunks;\n for(i = 0; i < preloadChunks.length; i++){\n writeChunk(destination, preloadChunks[i]);\n }\n preloadChunks.length = 0; // Write embedding hoistableChunks\n var hoistableChunks = renderState.hoistableChunks;\n for(i = 0; i < hoistableChunks.length; i++){\n writeChunk(destination, hoistableChunks[i]);\n }\n hoistableChunks.length = 0;\n }\n function writePostamble(destination, resumableState) {\n if (resumableState.hasBody) {\n writeChunk(destination, endChunkForTag(\"body\"));\n }\n if (resumableState.hasHtml) {\n writeChunk(destination, endChunkForTag(\"html\"));\n }\n }\n var arrayFirstOpenBracket = stringToPrecomputedChunk(\"[\");\n var arraySubsequentOpenBracket = stringToPrecomputedChunk(\",[\");\n var arrayInterstitial = stringToPrecomputedChunk(\",\");\n var arrayCloseBracket = stringToPrecomputedChunk(\"]\"); // This function writes a 2D array of strings to be embedded in javascript.\n // E.g.\n // [[\"JS_escaped_string1\", \"JS_escaped_string2\"]]\n function writeStyleResourceDependenciesInJS(destination, boundaryResources) {\n writeChunk(destination, arrayFirstOpenBracket);\n var nextArrayOpenBrackChunk = arrayFirstOpenBracket;\n boundaryResources.stylesheets.forEach(function(resource) {\n if (resource.state === PREAMBLE) ;\n else if (resource.state === LATE) {\n // We only need to emit the href because this resource flushed in an earlier\n // boundary already which encoded the attributes necessary to construct\n // the resource instance on the client.\n writeChunk(destination, nextArrayOpenBrackChunk);\n writeStyleResourceDependencyHrefOnlyInJS(destination, resource.props.href);\n writeChunk(destination, arrayCloseBracket);\n nextArrayOpenBrackChunk = arraySubsequentOpenBracket;\n } else {\n // We need to emit the whole resource for insertion on the client\n writeChunk(destination, nextArrayOpenBrackChunk);\n writeStyleResourceDependencyInJS(destination, resource.props.href, resource.props[\"data-precedence\"], resource.props);\n writeChunk(destination, arrayCloseBracket);\n nextArrayOpenBrackChunk = arraySubsequentOpenBracket;\n resource.state = LATE;\n }\n });\n writeChunk(destination, arrayCloseBracket);\n }\n /* Helper functions */ function writeStyleResourceDependencyHrefOnlyInJS(destination, href) {\n // We should actually enforce this earlier when the resource is created but for\n // now we make sure we are actually dealing with a string here.\n {\n checkAttributeStringCoercion(href, \"href\");\n }\n var coercedHref = \"\" + href;\n writeChunk(destination, stringToChunk(escapeJSObjectForInstructionScripts(coercedHref)));\n }\n function writeStyleResourceDependencyInJS(destination, href, precedence, props) {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var coercedHref = sanitizeURL(\"\" + href);\n writeChunk(destination, stringToChunk(escapeJSObjectForInstructionScripts(coercedHref)));\n {\n checkAttributeStringCoercion(precedence, \"precedence\");\n }\n var coercedPrecedence = \"\" + precedence;\n writeChunk(destination, arrayInterstitial);\n writeChunk(destination, stringToChunk(escapeJSObjectForInstructionScripts(coercedPrecedence)));\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"href\":\n case \"rel\":\n case \"precedence\":\n case \"data-precedence\":\n {\n break;\n }\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw new Error(\"link\" + \" is a self-closing tag and must neither have `children` nor \" + \"use `dangerouslySetInnerHTML`.\");\n default:\n writeStyleResourceAttributeInJS(destination, propKey, propValue);\n break;\n }\n }\n }\n return null;\n }\n function writeStyleResourceAttributeInJS(destination, name, value) {\n var attributeName = name.toLowerCase();\n var attributeValue;\n switch(typeof value){\n case \"function\":\n case \"symbol\":\n return;\n }\n switch(name){\n // Reserved names\n case \"innerHTML\":\n case \"dangerouslySetInnerHTML\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"style\":\n // Ignored\n return;\n // Attribute renames\n case \"className\":\n {\n attributeName = \"class\";\n {\n checkAttributeStringCoercion(value, attributeName);\n }\n attributeValue = \"\" + value;\n break;\n }\n // Booleans\n case \"hidden\":\n {\n if (value === false) {\n return;\n }\n attributeValue = \"\";\n break;\n }\n // Santized URLs\n case \"src\":\n case \"href\":\n {\n value = sanitizeURL(value);\n {\n checkAttributeStringCoercion(value, attributeName);\n }\n attributeValue = \"\" + value;\n break;\n }\n default:\n {\n if (// use on* as hueristic for these handler props\n name.length > 2 && (name[0] === \"o\" || name[0] === \"O\") && (name[1] === \"n\" || name[1] === \"N\")) {\n return;\n }\n if (!isAttributeNameSafe(name)) {\n return;\n }\n {\n checkAttributeStringCoercion(value, attributeName);\n }\n attributeValue = \"\" + value;\n }\n }\n writeChunk(destination, arrayInterstitial);\n writeChunk(destination, stringToChunk(escapeJSObjectForInstructionScripts(attributeName)));\n writeChunk(destination, arrayInterstitial);\n writeChunk(destination, stringToChunk(escapeJSObjectForInstructionScripts(attributeValue)));\n } // This function writes a 2D array of strings to be embedded in an attribute\n // value and read with JSON.parse in ReactDOMServerExternalRuntime.js\n // E.g.\n // [[&quot;JSON_escaped_string1&quot;, &quot;JSON_escaped_string2&quot;]]\n function writeStyleResourceDependenciesInAttr(destination, boundaryResources) {\n writeChunk(destination, arrayFirstOpenBracket);\n var nextArrayOpenBrackChunk = arrayFirstOpenBracket;\n boundaryResources.stylesheets.forEach(function(resource) {\n if (resource.state === PREAMBLE) ;\n else if (resource.state === LATE) {\n // We only need to emit the href because this resource flushed in an earlier\n // boundary already which encoded the attributes necessary to construct\n // the resource instance on the client.\n writeChunk(destination, nextArrayOpenBrackChunk);\n writeStyleResourceDependencyHrefOnlyInAttr(destination, resource.props.href);\n writeChunk(destination, arrayCloseBracket);\n nextArrayOpenBrackChunk = arraySubsequentOpenBracket;\n } else {\n // We need to emit the whole resource for insertion on the client\n writeChunk(destination, nextArrayOpenBrackChunk);\n writeStyleResourceDependencyInAttr(destination, resource.props.href, resource.props[\"data-precedence\"], resource.props);\n writeChunk(destination, arrayCloseBracket);\n nextArrayOpenBrackChunk = arraySubsequentOpenBracket;\n resource.state = LATE;\n }\n });\n writeChunk(destination, arrayCloseBracket);\n }\n /* Helper functions */ function writeStyleResourceDependencyHrefOnlyInAttr(destination, href) {\n // We should actually enforce this earlier when the resource is created but for\n // now we make sure we are actually dealing with a string here.\n {\n checkAttributeStringCoercion(href, \"href\");\n }\n var coercedHref = \"\" + href;\n writeChunk(destination, stringToChunk(escapeTextForBrowser(JSON.stringify(coercedHref))));\n }\n function writeStyleResourceDependencyInAttr(destination, href, precedence, props) {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var coercedHref = sanitizeURL(\"\" + href);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(JSON.stringify(coercedHref))));\n {\n checkAttributeStringCoercion(precedence, \"precedence\");\n }\n var coercedPrecedence = \"\" + precedence;\n writeChunk(destination, arrayInterstitial);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(JSON.stringify(coercedPrecedence))));\n for(var propKey in props){\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n switch(propKey){\n case \"href\":\n case \"rel\":\n case \"precedence\":\n case \"data-precedence\":\n {\n break;\n }\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw new Error(\"link\" + \" is a self-closing tag and must neither have `children` nor \" + \"use `dangerouslySetInnerHTML`.\");\n default:\n writeStyleResourceAttributeInAttr(destination, propKey, propValue);\n break;\n }\n }\n }\n return null;\n }\n function writeStyleResourceAttributeInAttr(destination, name, value) {\n var attributeName = name.toLowerCase();\n var attributeValue;\n switch(typeof value){\n case \"function\":\n case \"symbol\":\n return;\n }\n switch(name){\n // Reserved names\n case \"innerHTML\":\n case \"dangerouslySetInnerHTML\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"style\":\n // Ignored\n return;\n // Attribute renames\n case \"className\":\n {\n attributeName = \"class\";\n {\n checkAttributeStringCoercion(value, attributeName);\n }\n attributeValue = \"\" + value;\n break;\n }\n // Booleans\n case \"hidden\":\n {\n if (value === false) {\n return;\n }\n attributeValue = \"\";\n break;\n }\n // Santized URLs\n case \"src\":\n case \"href\":\n {\n value = sanitizeURL(value);\n {\n checkAttributeStringCoercion(value, attributeName);\n }\n attributeValue = \"\" + value;\n break;\n }\n default:\n {\n if (// use on* as hueristic for these handler props\n name.length > 2 && (name[0] === \"o\" || name[0] === \"O\") && (name[1] === \"n\" || name[1] === \"N\")) {\n return;\n }\n if (!isAttributeNameSafe(name)) {\n return;\n }\n {\n checkAttributeStringCoercion(value, attributeName);\n }\n attributeValue = \"\" + value;\n }\n }\n writeChunk(destination, arrayInterstitial);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(JSON.stringify(attributeName))));\n writeChunk(destination, arrayInterstitial);\n writeChunk(destination, stringToChunk(escapeTextForBrowser(JSON.stringify(attributeValue))));\n }\n /**\n * Resources\n */ var PENDING$1 = 0;\n var PRELOADED = 1;\n var PREAMBLE = 2;\n var LATE = 3;\n function createBoundaryResources() {\n return {\n styles: new Set(),\n stylesheets: new Set()\n };\n }\n function setCurrentlyRenderingBoundaryResourcesTarget(renderState, boundaryResources) {\n renderState.boundaryResources = boundaryResources;\n }\n function getResourceKey(href) {\n return href;\n }\n function getImageResourceKey(href, imageSrcSet, imageSizes) {\n if (imageSrcSet) {\n return imageSrcSet + \"\\n\" + (imageSizes || \"\");\n }\n return href;\n }\n function prefetchDNS(href) {\n var request = resolveRequest();\n if (!request) {\n // In async contexts we can sometimes resolve resources from AsyncLocalStorage. If we can't we can also\n // possibly get them from the stack if we are not in an async context. Since we were not able to resolve\n // the resources for this call in either case we opt to do nothing. We can consider making this a warning\n // but there may be times where calling a function outside of render is intentional (i.e. to warm up data\n // fetching) and we don't want to warn in those cases.\n return;\n }\n var resumableState = getResumableState(request);\n var renderState = getRenderState(request);\n if (typeof href === \"string\" && href) {\n var key = getResourceKey(href);\n if (!resumableState.dnsResources.hasOwnProperty(key)) {\n resumableState.dnsResources[key] = EXISTS;\n var headers = renderState.headers;\n var header;\n if (headers && headers.remainingCapacity > 0 && (header = getPrefetchDNSAsHeader(href), // we assume all the rest won't as well. This is to avoid getting into a situation\n // where we have a very small remaining capacity but no headers will ever fit and we end\n // up constantly trying to see if the next resource might make it. In the future we can\n // make this behavior different between render and prerender since in the latter case\n // we are less sensitive to the current requests runtime per and more sensitive to maximizing\n // headers.\n (headers.remainingCapacity -= header.length) >= 2)) {\n // Store this as resettable in case we are prerendering and postpone in the Shell\n renderState.resets.dns[key] = EXISTS;\n if (headers.preconnects) {\n headers.preconnects += \", \";\n } // $FlowFixMe[unsafe-addition]: we assign header during the if condition\n headers.preconnects += header;\n } else {\n // Encode as element\n var resource = [];\n pushLinkImpl(resource, {\n href: href,\n rel: \"dns-prefetch\"\n });\n renderState.preconnects.add(resource);\n }\n }\n flushResources(request);\n }\n }\n function preconnect(href, crossOrigin) {\n var request = resolveRequest();\n if (!request) {\n // In async contexts we can sometimes resolve resources from AsyncLocalStorage. If we can't we can also\n // possibly get them from the stack if we are not in an async context. Since we were not able to resolve\n // the resources for this call in either case we opt to do nothing. We can consider making this a warning\n // but there may be times where calling a function outside of render is intentional (i.e. to warm up data\n // fetching) and we don't want to warn in those cases.\n return;\n }\n var resumableState = getResumableState(request);\n var renderState = getRenderState(request);\n if (typeof href === \"string\" && href) {\n var bucket = crossOrigin === \"use-credentials\" ? \"credentials\" : typeof crossOrigin === \"string\" ? \"anonymous\" : \"default\";\n var key = getResourceKey(href);\n if (!resumableState.connectResources[bucket].hasOwnProperty(key)) {\n resumableState.connectResources[bucket][key] = EXISTS;\n var headers = renderState.headers;\n var header;\n if (headers && headers.remainingCapacity > 0 && (header = getPreconnectAsHeader(href, crossOrigin), // we assume all the rest won't as well. This is to avoid getting into a situation\n // where we have a very small remaining capacity but no headers will ever fit and we end\n // up constantly trying to see if the next resource might make it. In the future we can\n // make this behavior different between render and prerender since in the latter case\n // we are less sensitive to the current requests runtime per and more sensitive to maximizing\n // headers.\n (headers.remainingCapacity -= header.length) >= 2)) {\n // Store this in resettableState in case we are prerending and postpone in the Shell\n renderState.resets.connect[bucket][key] = EXISTS;\n if (headers.preconnects) {\n headers.preconnects += \", \";\n } // $FlowFixMe[unsafe-addition]: we assign header during the if condition\n headers.preconnects += header;\n } else {\n var resource = [];\n pushLinkImpl(resource, {\n rel: \"preconnect\",\n href: href,\n crossOrigin: crossOrigin\n });\n renderState.preconnects.add(resource);\n }\n }\n flushResources(request);\n }\n }\n function preload(href, as, options) {\n var request = resolveRequest();\n if (!request) {\n // In async contexts we can sometimes resolve resources from AsyncLocalStorage. If we can't we can also\n // possibly get them from the stack if we are not in an async context. Since we were not able to resolve\n // the resources for this call in either case we opt to do nothing. We can consider making this a warning\n // but there may be times where calling a function outside of render is intentional (i.e. to warm up data\n // fetching) and we don't want to warn in those cases.\n return;\n }\n var resumableState = getResumableState(request);\n var renderState = getRenderState(request);\n if (as && href) {\n switch(as){\n case \"image\":\n {\n var imageSrcSet, imageSizes, fetchPriority;\n if (options) {\n imageSrcSet = options.imageSrcSet;\n imageSizes = options.imageSizes;\n fetchPriority = options.fetchPriority;\n }\n var key = getImageResourceKey(href, imageSrcSet, imageSizes);\n if (resumableState.imageResources.hasOwnProperty(key)) {\n // we can return if we already have this resource\n return;\n }\n resumableState.imageResources[key] = PRELOAD_NO_CREDS;\n var headers = renderState.headers;\n var header;\n if (headers && headers.remainingCapacity > 0 && fetchPriority === \"high\" && (header = getPreloadAsHeader(href, as, options), // we assume all the rest won't as well. This is to avoid getting into a situation\n // where we have a very small remaining capacity but no headers will ever fit and we end\n // up constantly trying to see if the next resource might make it. In the future we can\n // make this behavior different between render and prerender since in the latter case\n // we are less sensitive to the current requests runtime per and more sensitive to maximizing\n // headers.\n (headers.remainingCapacity -= header.length) >= 2)) {\n // If we postpone in the shell we will still emit a preload as a header so we\n // track this to make sure we don't reset it.\n renderState.resets.image[key] = PRELOAD_NO_CREDS;\n if (headers.highImagePreloads) {\n headers.highImagePreloads += \", \";\n } // $FlowFixMe[unsafe-addition]: we assign header during the if condition\n headers.highImagePreloads += header;\n } else {\n // If we don't have headers to write to we have to encode as elements to flush in the head\n // When we have imageSrcSet the browser probably cannot load the right version from headers\n // (this should be verified by testing). For now we assume these need to go in the head\n // as elements even if headers are available.\n var resource = [];\n pushLinkImpl(resource, assign({\n rel: \"preload\",\n // There is a bug in Safari where imageSrcSet is not respected on preload links\n // so we omit the href here if we have imageSrcSet b/c safari will load the wrong image.\n // This harms older browers that do not support imageSrcSet by making their preloads not work\n // but this population is shrinking fast and is already small so we accept this tradeoff.\n href: imageSrcSet ? undefined : href,\n as: as\n }, options));\n if (fetchPriority === \"high\") {\n renderState.highImagePreloads.add(resource);\n } else {\n renderState.bulkPreloads.add(resource); // Stash the resource in case we need to promote it to higher priority\n // when an img tag is rendered\n renderState.preloads.images.set(key, resource);\n }\n }\n break;\n }\n case \"style\":\n {\n var _key = getResourceKey(href);\n if (resumableState.styleResources.hasOwnProperty(_key)) {\n // we can return if we already have this resource\n return;\n }\n var _resource2 = [];\n pushLinkImpl(_resource2, assign({\n rel: \"preload\",\n href: href,\n as: as\n }, options));\n resumableState.styleResources[_key] = options && (typeof options.crossOrigin === \"string\" || typeof options.integrity === \"string\") ? [\n options.crossOrigin,\n options.integrity\n ] : PRELOAD_NO_CREDS;\n renderState.preloads.stylesheets.set(_key, _resource2);\n renderState.bulkPreloads.add(_resource2);\n break;\n }\n case \"script\":\n {\n var _key2 = getResourceKey(href);\n if (resumableState.scriptResources.hasOwnProperty(_key2)) {\n // we can return if we already have this resource\n return;\n }\n var _resource3 = [];\n renderState.preloads.scripts.set(_key2, _resource3);\n renderState.bulkPreloads.add(_resource3);\n pushLinkImpl(_resource3, assign({\n rel: \"preload\",\n href: href,\n as: as\n }, options));\n resumableState.scriptResources[_key2] = options && (typeof options.crossOrigin === \"string\" || typeof options.integrity === \"string\") ? [\n options.crossOrigin,\n options.integrity\n ] : PRELOAD_NO_CREDS;\n break;\n }\n default:\n {\n var _key3 = getResourceKey(href);\n var hasAsType = resumableState.unknownResources.hasOwnProperty(as);\n var resources;\n if (hasAsType) {\n resources = resumableState.unknownResources[as];\n if (resources.hasOwnProperty(_key3)) {\n // we can return if we already have this resource\n return;\n }\n } else {\n resources = {};\n resumableState.unknownResources[as] = resources;\n }\n resources[_key3] = PRELOAD_NO_CREDS;\n var _headers = renderState.headers;\n var _header;\n if (_headers && _headers.remainingCapacity > 0 && as === \"font\" && (_header = getPreloadAsHeader(href, as, options), // we assume all the rest won't as well. This is to avoid getting into a situation\n // where we have a very small remaining capacity but no headers will ever fit and we end\n // up constantly trying to see if the next resource might make it. In the future we can\n // make this behavior different between render and prerender since in the latter case\n // we are less sensitive to the current requests runtime per and more sensitive to maximizing\n // headers.\n (_headers.remainingCapacity -= _header.length) >= 2)) {\n // If we postpone in the shell we will still emit this preload so we\n // track it here to prevent it from being reset.\n renderState.resets.font[_key3] = PRELOAD_NO_CREDS;\n if (_headers.fontPreloads) {\n _headers.fontPreloads += \", \";\n } // $FlowFixMe[unsafe-addition]: we assign header during the if condition\n _headers.fontPreloads += _header;\n } else {\n // We either don't have headers or we are preloading something that does\n // not warrant elevated priority so we encode as an element.\n var _resource4 = [];\n var props = assign({\n rel: \"preload\",\n href: href,\n as: as\n }, options);\n pushLinkImpl(_resource4, props);\n switch(as){\n case \"font\":\n renderState.fontPreloads.add(_resource4);\n break;\n // intentional fall through\n default:\n renderState.bulkPreloads.add(_resource4);\n }\n }\n }\n } // If we got this far we created a new resource\n flushResources(request);\n }\n }\n function preloadModule(href, options) {\n var request = resolveRequest();\n if (!request) {\n // In async contexts we can sometimes resolve resources from AsyncLocalStorage. If we can't we can also\n // possibly get them from the stack if we are not in an async context. Since we were not able to resolve\n // the resources for this call in either case we opt to do nothing. We can consider making this a warning\n // but there may be times where calling a function outside of render is intentional (i.e. to warm up data\n // fetching) and we don't want to warn in those cases.\n return;\n }\n var resumableState = getResumableState(request);\n var renderState = getRenderState(request);\n if (href) {\n var key = getResourceKey(href);\n var as = options && typeof options.as === \"string\" ? options.as : \"script\";\n var resource;\n switch(as){\n case \"script\":\n {\n if (resumableState.moduleScriptResources.hasOwnProperty(key)) {\n // we can return if we already have this resource\n return;\n }\n resource = [];\n resumableState.moduleScriptResources[key] = options && (typeof options.crossOrigin === \"string\" || typeof options.integrity === \"string\") ? [\n options.crossOrigin,\n options.integrity\n ] : PRELOAD_NO_CREDS;\n renderState.preloads.moduleScripts.set(key, resource);\n break;\n }\n default:\n {\n var hasAsType = resumableState.moduleUnknownResources.hasOwnProperty(as);\n var resources;\n if (hasAsType) {\n resources = resumableState.unknownResources[as];\n if (resources.hasOwnProperty(key)) {\n // we can return if we already have this resource\n return;\n }\n } else {\n resources = {};\n resumableState.moduleUnknownResources[as] = resources;\n }\n resource = [];\n resources[key] = PRELOAD_NO_CREDS;\n }\n }\n pushLinkImpl(resource, assign({\n rel: \"modulepreload\",\n href: href\n }, options));\n renderState.bulkPreloads.add(resource); // If we got this far we created a new resource\n flushResources(request);\n }\n }\n function preinitStyle(href, precedence, options) {\n var request = resolveRequest();\n if (!request) {\n // In async contexts we can sometimes resolve resources from AsyncLocalStorage. If we can't we can also\n // possibly get them from the stack if we are not in an async context. Since we were not able to resolve\n // the resources for this call in either case we opt to do nothing. We can consider making this a warning\n // but there may be times where calling a function outside of render is intentional (i.e. to warm up data\n // fetching) and we don't want to warn in those cases.\n return;\n }\n var resumableState = getResumableState(request);\n var renderState = getRenderState(request);\n if (href) {\n precedence = precedence || \"default\";\n var key = getResourceKey(href);\n var styleQueue = renderState.styles.get(precedence);\n var hasKey = resumableState.styleResources.hasOwnProperty(key);\n var resourceState = hasKey ? resumableState.styleResources[key] : undefined;\n if (resourceState !== EXISTS) {\n // We are going to create this resource now so it is marked as Exists\n resumableState.styleResources[key] = EXISTS; // If this is the first time we've encountered this precedence we need\n // to create a StyleQueue\n if (!styleQueue) {\n styleQueue = {\n precedence: stringToChunk(escapeTextForBrowser(precedence)),\n rules: [],\n hrefs: [],\n sheets: new Map()\n };\n renderState.styles.set(precedence, styleQueue);\n }\n var resource = {\n state: PENDING$1,\n props: assign({\n rel: \"stylesheet\",\n href: href,\n \"data-precedence\": precedence\n }, options)\n };\n if (resourceState) {\n // When resourceState is truty it is a Preload state. We cast it for clarity\n var preloadState = resourceState;\n if (preloadState.length === 2) {\n adoptPreloadCredentials(resource.props, preloadState);\n }\n var preloadResource = renderState.preloads.stylesheets.get(key);\n if (preloadResource && preloadResource.length > 0) {\n // The Preload for this resource was created in this render pass and has not flushed yet so\n // we need to clear it to avoid it flushing.\n preloadResource.length = 0;\n } else {\n // Either the preload resource from this render already flushed in this render pass\n // or the preload flushed in a prior pass (prerender). In either case we need to mark\n // this resource as already having been preloaded.\n resource.state = PRELOADED;\n }\n } // We add the newly created resource to our StyleQueue and if necessary\n // track the resource with the currently rendering boundary\n styleQueue.sheets.set(key, resource); // Notify the request that there are resources to flush even if no work is currently happening\n flushResources(request);\n }\n }\n }\n function preinitScript(src, options) {\n var request = resolveRequest();\n if (!request) {\n // In async contexts we can sometimes resolve resources from AsyncLocalStorage. If we can't we can also\n // possibly get them from the stack if we are not in an async context. Since we were not able to resolve\n // the resources for this call in either case we opt to do nothing. We can consider making this a warning\n // but there may be times where calling a function outside of render is intentional (i.e. to warm up data\n // fetching) and we don't want to warn in those cases.\n return;\n }\n var resumableState = getResumableState(request);\n var renderState = getRenderState(request);\n if (src) {\n var key = getResourceKey(src);\n var hasKey = resumableState.scriptResources.hasOwnProperty(key);\n var resourceState = hasKey ? resumableState.scriptResources[key] : undefined;\n if (resourceState !== EXISTS) {\n // We are going to create this resource now so it is marked as Exists\n resumableState.scriptResources[key] = EXISTS;\n var props = assign({\n src: src,\n async: true\n }, options);\n if (resourceState) {\n // When resourceState is truty it is a Preload state. We cast it for clarity\n var preloadState = resourceState;\n if (preloadState.length === 2) {\n adoptPreloadCredentials(props, preloadState);\n }\n var preloadResource = renderState.preloads.scripts.get(key);\n if (preloadResource) {\n // the preload resource exists was created in this render. Now that we have\n // a script resource which will emit earlier than a preload would if it\n // hasn't already flushed we prevent it from flushing by zeroing the length\n preloadResource.length = 0;\n }\n }\n var resource = []; // Add to the script flushing queue\n renderState.scripts.add(resource); // encode the tag as Chunks\n pushScriptImpl(resource, props); // Notify the request that there are resources to flush even if no work is currently happening\n flushResources(request);\n }\n return;\n }\n }\n function preinitModuleScript(src, options) {\n var request = resolveRequest();\n if (!request) {\n // In async contexts we can sometimes resolve resources from AsyncLocalStorage. If we can't we can also\n // possibly get them from the stack if we are not in an async context. Since we were not able to resolve\n // the resources for this call in either case we opt to do nothing. We can consider making this a warning\n // but there may be times where calling a function outside of render is intentional (i.e. to warm up data\n // fetching) and we don't want to warn in those cases.\n return;\n }\n var resumableState = getResumableState(request);\n var renderState = getRenderState(request);\n if (src) {\n var key = getResourceKey(src);\n var hasKey = resumableState.moduleScriptResources.hasOwnProperty(key);\n var resourceState = hasKey ? resumableState.moduleScriptResources[key] : undefined;\n if (resourceState !== EXISTS) {\n // We are going to create this resource now so it is marked as Exists\n resumableState.moduleScriptResources[key] = EXISTS;\n var props = assign({\n src: src,\n type: \"module\",\n async: true\n }, options);\n if (resourceState) {\n // When resourceState is truty it is a Preload state. We cast it for clarity\n var preloadState = resourceState;\n if (preloadState.length === 2) {\n adoptPreloadCredentials(props, preloadState);\n }\n var preloadResource = renderState.preloads.moduleScripts.get(key);\n if (preloadResource) {\n // the preload resource exists was created in this render. Now that we have\n // a script resource which will emit earlier than a preload would if it\n // hasn't already flushed we prevent it from flushing by zeroing the length\n preloadResource.length = 0;\n }\n }\n var resource = []; // Add to the script flushing queue\n renderState.scripts.add(resource); // encode the tag as Chunks\n pushScriptImpl(resource, props); // Notify the request that there are resources to flush even if no work is currently happening\n flushResources(request);\n }\n return;\n }\n } // This function is only safe to call at Request start time since it assumes\n // that each module has not already been preloaded. If we find a need to preload\n // scripts at any other point in time we will need to check whether the preload\n // already exists and not assume it\n function preloadBootstrapScriptOrModule(resumableState, renderState, href, props) {\n var key = getResourceKey(href);\n {\n if (resumableState.scriptResources.hasOwnProperty(key) || resumableState.moduleScriptResources.hasOwnProperty(key)) {\n // This is coded as a React error because it should be impossible for a userspace preload to preempt this call\n // If a userspace preload can preempt it then this assumption is broken and we need to reconsider this strategy\n // rather than instruct the user to not preload their bootstrap scripts themselves\n error('Internal React Error: React expected bootstrap script or module with src \"%s\" to not have been preloaded already. please file an issue', href);\n }\n }\n // used to preinit the resource. If a script can be preinited then it shouldn't\n // be a bootstrap script/module and if it is a bootstrap script/module then it\n // must not be safe to emit early. To avoid possibly allowing for preinits of\n // bootstrap scripts/modules we occlude these keys.\n resumableState.scriptResources[key] = EXISTS;\n resumableState.moduleScriptResources[key] = EXISTS;\n var resource = [];\n pushLinkImpl(resource, props);\n renderState.bootstrapScripts.add(resource);\n }\n function internalPreinitScript(resumableState, renderState, src, chunks) {\n var key = getResourceKey(src);\n if (!resumableState.scriptResources.hasOwnProperty(key)) {\n var resource = chunks;\n resumableState.scriptResources[key] = EXISTS;\n renderState.scripts.add(resource);\n }\n return;\n }\n function preloadAsStylePropsFromProps(href, props) {\n return {\n rel: \"preload\",\n as: \"style\",\n href: href,\n crossOrigin: props.crossOrigin,\n fetchPriority: props.fetchPriority,\n integrity: props.integrity,\n media: props.media,\n hrefLang: props.hrefLang,\n referrerPolicy: props.referrerPolicy\n };\n }\n function stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n }\n function adoptPreloadCredentials(target, preloadState) {\n if (target.crossOrigin == null) target.crossOrigin = preloadState[0];\n if (target.integrity == null) target.integrity = preloadState[1];\n }\n function getPrefetchDNSAsHeader(href) {\n var escapedHref = escapeHrefForLinkHeaderURLContext(href);\n return \"<\" + escapedHref + \">; rel=dns-prefetch\";\n }\n function getPreconnectAsHeader(href, crossOrigin) {\n var escapedHref = escapeHrefForLinkHeaderURLContext(href);\n var value = \"<\" + escapedHref + \">; rel=preconnect\";\n if (typeof crossOrigin === \"string\") {\n var escapedCrossOrigin = escapeStringForLinkHeaderQuotedParamValueContext(crossOrigin, \"crossOrigin\");\n value += '; crossorigin=\"' + escapedCrossOrigin + '\"';\n }\n return value;\n }\n function getPreloadAsHeader(href, as, params) {\n var escapedHref = escapeHrefForLinkHeaderURLContext(href);\n var escapedAs = escapeStringForLinkHeaderQuotedParamValueContext(as, \"as\");\n var value = \"<\" + escapedHref + '>; rel=preload; as=\"' + escapedAs + '\"';\n for(var paramName in params){\n if (hasOwnProperty.call(params, paramName)) {\n var paramValue = params[paramName];\n if (typeof paramValue === \"string\") {\n value += \"; \" + paramName.toLowerCase() + '=\"' + escapeStringForLinkHeaderQuotedParamValueContext(paramValue, paramName) + '\"';\n }\n }\n }\n return value;\n }\n function getStylesheetPreloadAsHeader(stylesheet) {\n var props = stylesheet.props;\n var preloadOptions = {\n crossOrigin: props.crossOrigin,\n integrity: props.integrity,\n nonce: props.nonce,\n type: props.type,\n fetchPriority: props.fetchPriority,\n referrerPolicy: props.referrerPolicy,\n media: props.media\n };\n return getPreloadAsHeader(props.href, \"style\", preloadOptions);\n } // This escaping function is only safe to use for href values being written into\n // a \"Link\" header in between `<` and `>` characters. The primary concern with the href is\n // to escape the bounding characters as well as new lines. This is unsafe to use in any other\n // context\n var regexForHrefInLinkHeaderURLContext = /[<>\\r\\n]/g;\n function escapeHrefForLinkHeaderURLContext(hrefInput) {\n {\n checkAttributeStringCoercion(hrefInput, \"href\");\n }\n var coercedHref = \"\" + hrefInput;\n return coercedHref.replace(regexForHrefInLinkHeaderURLContext, escapeHrefForLinkHeaderURLContextReplacer);\n }\n function escapeHrefForLinkHeaderURLContextReplacer(match) {\n switch(match){\n case \"<\":\n return \"%3C\";\n case \">\":\n return \"%3E\";\n case \"\\n\":\n return \"%0A\";\n case \"\\r\":\n return \"%0D\";\n default:\n {\n // eslint-disable-next-line react-internal/prod-error-codes\n throw new Error(\"escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");\n }\n }\n } // This escaping function is only safe to use for quoted param values in an HTTP header.\n // It is unsafe to use for any value not inside quote marks in parater value position.\n var regexForLinkHeaderQuotedParamValueContext = /[\"';,\\r\\n]/g;\n function escapeStringForLinkHeaderQuotedParamValueContext(value, name) {\n {\n checkOptionStringCoercion(value, name);\n }\n var coerced = \"\" + value;\n return coerced.replace(regexForLinkHeaderQuotedParamValueContext, escapeStringForLinkHeaderQuotedParamValueContextReplacer);\n }\n function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) {\n switch(match){\n case '\"':\n return \"%22\";\n case \"'\":\n return \"%27\";\n case \";\":\n return \"%3B\";\n case \",\":\n return \"%2C\";\n case \"\\n\":\n return \"%0A\";\n case \"\\r\":\n return \"%0D\";\n default:\n {\n // eslint-disable-next-line react-internal/prod-error-codes\n throw new Error(\"escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");\n }\n }\n }\n function hoistStyleQueueDependency(styleQueue) {\n this.styles.add(styleQueue);\n }\n function hoistStylesheetDependency(stylesheet) {\n this.stylesheets.add(stylesheet);\n }\n function hoistResources(renderState, source) {\n var currentBoundaryResources = renderState.boundaryResources;\n if (currentBoundaryResources) {\n source.styles.forEach(hoistStyleQueueDependency, currentBoundaryResources);\n source.stylesheets.forEach(hoistStylesheetDependency, currentBoundaryResources);\n }\n } // This function is called at various times depending on whether we are rendering\n // or prerendering. In this implementation we only actually emit headers once and\n // subsequent calls are ignored. We track whether the request has a completed shell\n // to determine whether we will follow headers with a flush including stylesheets.\n // In the context of prerrender we don't have a completed shell when the request finishes\n // with a postpone in the shell. In the context of a render we don't have a completed shell\n // if this is called before the shell finishes rendering which usually will happen anytime\n // anything suspends in the shell.\n function emitEarlyPreloads(renderState, resumableState, shellComplete) {\n var onHeaders = renderState.onHeaders;\n if (onHeaders) {\n var headers = renderState.headers;\n if (headers) {\n // Even if onHeaders throws we don't want to call this again so\n // we drop the headers state from this point onwards.\n renderState.headers = null;\n var linkHeader = headers.preconnects;\n if (headers.fontPreloads) {\n if (linkHeader) {\n linkHeader += \", \";\n }\n linkHeader += headers.fontPreloads;\n }\n if (headers.highImagePreloads) {\n if (linkHeader) {\n linkHeader += \", \";\n }\n linkHeader += headers.highImagePreloads;\n }\n if (!shellComplete) {\n // We use raw iterators because we want to be able to halt iteration\n // We could refactor renderState to store these dually in arrays to\n // make this more efficient at the cost of additional memory and\n // write overhead. However this code only runs once per request so\n // for now I consider this sufficient.\n var queueIter = renderState.styles.values();\n outer: for(var queueStep = queueIter.next(); headers.remainingCapacity > 0 && !queueStep.done; queueStep = queueIter.next()){\n var sheets = queueStep.value.sheets;\n var sheetIter = sheets.values();\n for(var sheetStep = sheetIter.next(); headers.remainingCapacity > 0 && !sheetStep.done; sheetStep = sheetIter.next()){\n var sheet = sheetStep.value;\n var props = sheet.props;\n var key = getResourceKey(props.href);\n var header = getStylesheetPreloadAsHeader(sheet); // We mutate the capacity b/c we don't want to keep checking if later headers will fit.\n // This means that a particularly long header might close out the header queue where later\n // headers could still fit. We could in the future alter the behavior here based on prerender vs render\n // since during prerender we aren't as concerned with pure runtime performance.\n if ((headers.remainingCapacity -= header.length) >= 2) {\n renderState.resets.style[key] = PRELOAD_NO_CREDS;\n if (linkHeader) {\n linkHeader += \", \";\n }\n linkHeader += header; // We already track that the resource exists in resumableState however\n // if the resumableState resets because we postponed in the shell\n // which is what is happening in this branch if we are prerendering\n // then we will end up resetting the resumableState. When it resets we\n // want to record the fact that this stylesheet was already preloaded\n renderState.resets.style[key] = typeof props.crossOrigin === \"string\" || typeof props.integrity === \"string\" ? [\n props.crossOrigin,\n props.integrity\n ] : PRELOAD_NO_CREDS;\n } else {\n break outer;\n }\n }\n }\n }\n if (linkHeader) {\n onHeaders({\n Link: linkHeader\n });\n } else {\n // We still call this with no headers because a user may be using it as a signal that\n // it React will not provide any headers\n onHeaders({});\n }\n return;\n }\n }\n }\n var NotPendingTransition = NotPending;\n var supportsRequestStorage = typeof AsyncLocalStorage === \"function\";\n var requestStorage = supportsRequestStorage ? new AsyncLocalStorage() : null;\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\n var REACT_SERVER_CONTEXT_TYPE = Symbol.for(\"react.server_context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_SCOPE_TYPE = Symbol.for(\"react.scope\");\n var REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for(\"react.debug_trace_mode\");\n var REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\n var REACT_LEGACY_HIDDEN_TYPE = Symbol.for(\"react.legacy_hidden\");\n var REACT_CACHE_TYPE = Symbol.for(\"react.cache\");\n var REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED = Symbol.for(\"react.default_value\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n function getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n if (displayName) {\n return displayName;\n }\n var functionName = innerType.displayName || innerType.name || \"\";\n return functionName !== \"\" ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n } // Keep in sync with react-reconciler/getComponentNameFromFiber\n function getContextName(type) {\n return type.displayName || \"Context\";\n }\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"); // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n function getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n if (typeof type === \"function\") {\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\n // TODO: Create a convention for naming client references with debug info.\n return null;\n }\n return type.displayName || type.name || null;\n }\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_CACHE_TYPE:\n {\n return \"Cache\";\n }\n }\n if (typeof type === \"object\") {\n {\n if (typeof type.tag === \"number\") {\n error(\"Received an unexpected object in getComponentNameFromType(). \" + \"This is likely a bug in React. Please file an issue.\");\n }\n }\n switch(type.$$typeof){\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, \"ForwardRef\");\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n if (outerName !== null) {\n return outerName;\n }\n return getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n return null;\n }\n // Helpers to patch console.logs to avoid logging during side-effect free\n // replaying on render function. This currently only patches the object\n // lazily which won't cover if the log function was extracted eagerly.\n // We could also eagerly patch the method.\n var disabledDepth = 0;\n var prevLog;\n var prevInfo;\n var prevWarn;\n var prevError;\n var prevGroup;\n var prevGroupCollapsed;\n var prevGroupEnd;\n function disabledLog() {}\n disabledLog.__reactDisabledLog = true;\n function disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */ }\n disabledDepth++;\n }\n }\n function reenableLogs() {\n {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */ }\n if (disabledDepth < 0) {\n error(\"disabledDepth fell below zero. \" + \"This is a bug in React. Please file an issue.\");\n }\n }\n }\n var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\n var prefix;\n function describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || \"\";\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n return \"\\n\" + prefix + name;\n }\n }\n var reentry = false;\n var componentFrameCache;\n {\n var PossiblyWeakMap = typeof WeakMap === \"function\" ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n }\n /**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */ function describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return \"\";\n }\n {\n var frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */ var RunInRootFrame = {\n DetermineComponentFrameRoot: function() {\n var control;\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function() {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function() {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n if (typeof Reflect === \"object\" && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n if (maybePromise && typeof maybePromise.catch === \"function\") {\n maybePromise.catch(function() {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === \"string\") {\n return [\n sample.stack,\n control.stack\n ];\n }\n }\n return [\n null,\n null\n ];\n }\n }; // $FlowFixMe[prop-missing]\n RunInRootFrame.DetermineComponentFrameRoot.displayName = \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, \"name\"); // Before ES6, the `name` property was not configurable.\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // is set to `false`.\n // $FlowFixMe[cannot-write]\n \"name\", {\n value: \"DetermineComponentFrameRoot\"\n });\n }\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split(\"\\n\");\n var controlLines = controlStack.split(\"\\n\");\n var s = 0;\n var c = 0;\n while(s < sampleLines.length && !sampleLines[s].includes(\"DetermineComponentFrameRoot\")){\n s++;\n }\n while(c < controlLines.length && !controlLines[c].includes(\"DetermineComponentFrameRoot\")){\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n while(s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]){\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n for(; s >= 1 && c >= 0; s--, c--){\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = \"\\n\" + sampleLines[s].replace(\" at new \", \" at \"); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n if (fn.displayName && _frame.includes(\"<anonymous>\")) {\n _frame = _frame.replace(\"<anonymous>\", fn.displayName);\n }\n if (true) {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n return _frame;\n }\n }while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally{\n reentry = false;\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n var name = fn ? fn.displayName || fn.name : \"\";\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : \"\";\n {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n }\n function describeClassComponentFrame(ctor, source, ownerFn) {\n {\n return describeNativeComponentFrame(ctor, true);\n }\n }\n function describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n }\n function shouldConstruct$1(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n }\n function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n if (type == null) {\n return \"\";\n }\n if (typeof type === \"function\") {\n {\n return describeNativeComponentFrame(type, shouldConstruct$1(type));\n }\n }\n if (typeof type === \"string\") {\n return describeBuiltInComponentFrame(type);\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n var loggedTypeFailures = {};\n var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n function setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n }\n function checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n for(var typeSpecName in typeSpecs){\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== \"function\") {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; \" + \"it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\" + \"This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");\n err.name = \"Invariant Violation\";\n throw err;\n }\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\");\n } catch (ex) {\n error$1 = ex;\n }\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n error(\"%s: type specification of %s\" + \" `%s` is invalid; the type checker \" + \"function must return `null` or an `Error` but returned a %s. \" + \"You may have forgotten to pass an argument to the type checker \" + \"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and \" + \"shape all require an argument).\", componentName || \"React class\", location, typeSpecName, typeof error$1);\n setCurrentlyValidatingElement(null);\n }\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n error(\"Failed %s type: %s\", location, error$1.message);\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n }\n var warnedAboutMissingGetChildContext;\n {\n warnedAboutMissingGetChildContext = {};\n }\n var emptyContextObject = {};\n {\n Object.freeze(emptyContextObject);\n }\n function getMaskedContext(type, unmaskedContext) {\n {\n var contextTypes = type.contextTypes;\n if (!contextTypes) {\n return emptyContextObject;\n }\n var context = {};\n for(var key in contextTypes){\n context[key] = unmaskedContext[key];\n }\n {\n var name = getComponentNameFromType(type) || \"Unknown\";\n checkPropTypes(contextTypes, context, \"context\", name);\n }\n return context;\n }\n }\n function processChildContext(instance, type, parentContext, childContextTypes) {\n {\n // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n if (typeof instance.getChildContext !== \"function\") {\n {\n var componentName = getComponentNameFromType(type) || \"Unknown\";\n if (!warnedAboutMissingGetChildContext[componentName]) {\n warnedAboutMissingGetChildContext[componentName] = true;\n error(\"%s.childContextTypes is specified but there is no getChildContext() method \" + \"on the instance. You can either define getChildContext() on %s or remove \" + \"childContextTypes from it.\", componentName, componentName);\n }\n }\n return parentContext;\n }\n var childContext = instance.getChildContext();\n for(var contextKey in childContext){\n if (!(contextKey in childContextTypes)) {\n throw new Error((getComponentNameFromType(type) || \"Unknown\") + '.getChildContext(): key \"' + contextKey + '\" is not defined in childContextTypes.');\n }\n }\n {\n var name = getComponentNameFromType(type) || \"Unknown\";\n checkPropTypes(childContextTypes, childContext, \"child context\", name);\n }\n return assign({}, parentContext, childContext);\n }\n }\n var rendererSigil;\n {\n // Use this to detect multiple renderers using the same context\n rendererSigil = {};\n }\n // Forming a reverse tree.\n // The structure of a context snapshot is an implementation of this file.\n // Currently, it's implemented as tracking the current active node.\n var rootContextSnapshot = null; // We assume that this runtime owns the \"current\" field on all ReactContext instances.\n // This global (actually thread local) state represents what state all those \"current\",\n // fields are currently in.\n var currentActiveSnapshot = null;\n function popNode(prev) {\n {\n prev.context._currentValue = prev.parentValue;\n }\n }\n function pushNode(next) {\n {\n next.context._currentValue = next.value;\n }\n }\n function popToNearestCommonAncestor(prev, next) {\n if (prev === next) ;\n else {\n popNode(prev);\n var parentPrev = prev.parent;\n var parentNext = next.parent;\n if (parentPrev === null) {\n if (parentNext !== null) {\n throw new Error(\"The stacks must reach the root at the same time. This is a bug in React.\");\n }\n } else {\n if (parentNext === null) {\n throw new Error(\"The stacks must reach the root at the same time. This is a bug in React.\");\n }\n popToNearestCommonAncestor(parentPrev, parentNext);\n } // On the way back, we push the new ones that weren't common.\n pushNode(next);\n }\n }\n function popAllPrevious(prev) {\n popNode(prev);\n var parentPrev = prev.parent;\n if (parentPrev !== null) {\n popAllPrevious(parentPrev);\n }\n }\n function pushAllNext(next) {\n var parentNext = next.parent;\n if (parentNext !== null) {\n pushAllNext(parentNext);\n }\n pushNode(next);\n }\n function popPreviousToCommonLevel(prev, next) {\n popNode(prev);\n var parentPrev = prev.parent;\n if (parentPrev === null) {\n throw new Error(\"The depth must equal at least at zero before reaching the root. This is a bug in React.\");\n }\n if (parentPrev.depth === next.depth) {\n // We found the same level. Now we just need to find a shared ancestor.\n popToNearestCommonAncestor(parentPrev, next);\n } else {\n // We must still be deeper.\n popPreviousToCommonLevel(parentPrev, next);\n }\n }\n function popNextToCommonLevel(prev, next) {\n var parentNext = next.parent;\n if (parentNext === null) {\n throw new Error(\"The depth must equal at least at zero before reaching the root. This is a bug in React.\");\n }\n if (prev.depth === parentNext.depth) {\n // We found the same level. Now we just need to find a shared ancestor.\n popToNearestCommonAncestor(prev, parentNext);\n } else {\n // We must still be deeper.\n popNextToCommonLevel(prev, parentNext);\n }\n pushNode(next);\n } // Perform context switching to the new snapshot.\n // To make it cheap to read many contexts, while not suspending, we make the switch eagerly by\n // updating all the context's current values. That way reads, always just read the current value.\n // At the cost of updating contexts even if they're never read by this subtree.\n function switchContext(newSnapshot) {\n // The basic algorithm we need to do is to pop back any contexts that are no longer on the stack.\n // We also need to update any new contexts that are now on the stack with the deepest value.\n // The easiest way to update new contexts is to just reapply them in reverse order from the\n // perspective of the backpointers. To avoid allocating a lot when switching, we use the stack\n // for that. Therefore this algorithm is recursive.\n // 1) First we pop which ever snapshot tree was deepest. Popping old contexts as we go.\n // 2) Then we find the nearest common ancestor from there. Popping old contexts as we go.\n // 3) Then we reapply new contexts on the way back up the stack.\n var prev = currentActiveSnapshot;\n var next = newSnapshot;\n if (prev !== next) {\n if (prev === null) {\n // $FlowFixMe[incompatible-call]: This has to be non-null since it's not equal to prev.\n pushAllNext(next);\n } else if (next === null) {\n popAllPrevious(prev);\n } else if (prev.depth === next.depth) {\n popToNearestCommonAncestor(prev, next);\n } else if (prev.depth > next.depth) {\n popPreviousToCommonLevel(prev, next);\n } else {\n popNextToCommonLevel(prev, next);\n }\n currentActiveSnapshot = next;\n }\n }\n function pushProvider(context, nextValue) {\n var prevValue;\n {\n prevValue = context._currentValue;\n context._currentValue = nextValue;\n {\n if (context._currentRenderer !== undefined && context._currentRenderer !== null && context._currentRenderer !== rendererSigil) {\n error(\"Detected multiple renderers concurrently rendering the \" + \"same context provider. This is currently unsupported.\");\n }\n context._currentRenderer = rendererSigil;\n }\n }\n var prevNode = currentActiveSnapshot;\n var newNode = {\n parent: prevNode,\n depth: prevNode === null ? 0 : prevNode.depth + 1,\n context: context,\n parentValue: prevValue,\n value: nextValue\n };\n currentActiveSnapshot = newNode;\n return newNode;\n }\n function popProvider(context) {\n var prevSnapshot = currentActiveSnapshot;\n if (prevSnapshot === null) {\n throw new Error(\"Tried to pop a Context at the root of the app. This is a bug in React.\");\n }\n {\n if (prevSnapshot.context !== context) {\n error(\"The parent context is not the expected context. This is probably a bug in React.\");\n }\n }\n {\n var value = prevSnapshot.parentValue;\n if (value === REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED) {\n prevSnapshot.context._currentValue = prevSnapshot.context._defaultValue;\n } else {\n prevSnapshot.context._currentValue = value;\n }\n {\n if (context._currentRenderer !== undefined && context._currentRenderer !== null && context._currentRenderer !== rendererSigil) {\n error(\"Detected multiple renderers concurrently rendering the \" + \"same context provider. This is currently unsupported.\");\n }\n context._currentRenderer = rendererSigil;\n }\n }\n return currentActiveSnapshot = prevSnapshot.parent;\n }\n function getActiveContext() {\n return currentActiveSnapshot;\n }\n function readContext$1(context) {\n var value = context._currentValue;\n return value;\n }\n /**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */ function get(key) {\n return key._reactInternals;\n }\n function set(key, value) {\n key._reactInternals = value;\n }\n var didWarnAboutNoopUpdateForComponent = {};\n var didWarnAboutDeprecatedWillMount = {};\n var didWarnAboutUninitializedState;\n var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;\n var didWarnAboutLegacyLifecyclesAndDerivedState;\n var didWarnAboutUndefinedDerivedState;\n var didWarnAboutDirectlyAssigningPropsToState;\n var didWarnAboutContextTypeAndContextTypes;\n var didWarnAboutInvalidateContextType;\n var didWarnOnInvalidCallback;\n {\n didWarnAboutUninitializedState = new Set();\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n didWarnAboutDirectlyAssigningPropsToState = new Set();\n didWarnAboutUndefinedDerivedState = new Set();\n didWarnAboutContextTypeAndContextTypes = new Set();\n didWarnAboutInvalidateContextType = new Set();\n didWarnOnInvalidCallback = new Set();\n }\n function warnOnInvalidCallback(callback, callerName) {\n {\n if (callback === null || typeof callback === \"function\") {\n return;\n }\n var key = callerName + \"_\" + callback;\n if (!didWarnOnInvalidCallback.has(key)) {\n didWarnOnInvalidCallback.add(key);\n error(\"%s(...): Expected the last optional `callback` argument to be a \" + \"function. Instead received: %s.\", callerName, callback);\n }\n }\n }\n function warnOnUndefinedDerivedState(type, partialState) {\n {\n if (partialState === undefined) {\n var componentName = getComponentNameFromType(type) || \"Component\";\n if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n didWarnAboutUndefinedDerivedState.add(componentName);\n error(\"%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. \" + \"You have returned undefined.\", componentName);\n }\n }\n }\n }\n function warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && getComponentNameFromType(_constructor) || \"ReactClass\";\n var warningKey = componentName + \".\" + callerName;\n if (didWarnAboutNoopUpdateForComponent[warningKey]) {\n return;\n }\n error(\"%s(...): Can only update a mounting component. \" + \"This usually means you called %s() outside componentWillMount() on the server. \" + \"This is a no-op.\\n\\nPlease check the code for the %s component.\", callerName, callerName, componentName);\n didWarnAboutNoopUpdateForComponent[warningKey] = true;\n }\n }\n var classComponentUpdater = {\n isMounted: function(inst) {\n return false;\n },\n // $FlowFixMe[missing-local-annot]\n enqueueSetState: function(inst, payload, callback) {\n var internals = get(inst);\n if (internals.queue === null) {\n warnNoop(inst, \"setState\");\n } else {\n internals.queue.push(payload);\n {\n if (callback !== undefined && callback !== null) {\n warnOnInvalidCallback(callback, \"setState\");\n }\n }\n }\n },\n enqueueReplaceState: function(inst, payload, callback) {\n var internals = get(inst);\n internals.replace = true;\n internals.queue = [\n payload\n ];\n {\n if (callback !== undefined && callback !== null) {\n warnOnInvalidCallback(callback, \"setState\");\n }\n }\n },\n // $FlowFixMe[missing-local-annot]\n enqueueForceUpdate: function(inst, callback) {\n var internals = get(inst);\n if (internals.queue === null) {\n warnNoop(inst, \"forceUpdate\");\n } else {\n {\n if (callback !== undefined && callback !== null) {\n warnOnInvalidCallback(callback, \"setState\");\n }\n }\n }\n }\n };\n function applyDerivedStateFromProps(instance, ctor, getDerivedStateFromProps, prevState, nextProps) {\n var partialState = getDerivedStateFromProps(nextProps, prevState);\n {\n warnOnUndefinedDerivedState(ctor, partialState);\n }\n var newState = partialState === null || partialState === undefined ? prevState : assign({}, prevState, partialState);\n return newState;\n }\n function constructClassInstance(ctor, props, maskedLegacyContext) {\n var context = emptyContextObject;\n var contextType = ctor.contextType;\n {\n if (\"contextType\" in ctor) {\n var isValid = contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a <Context.Consumer>\n if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) {\n didWarnAboutInvalidateContextType.add(ctor);\n var addendum = \"\";\n if (contextType === undefined) {\n addendum = \" However, it is set to undefined. \" + \"This can be caused by a typo or by mixing up named and default imports. \" + \"This can also happen due to a circular dependency, so \" + \"try moving the createContext() call to a separate file.\";\n } else if (typeof contextType !== \"object\") {\n addendum = \" However, it is set to a \" + typeof contextType + \".\";\n } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n addendum = \" Did you accidentally pass the Context.Provider instead?\";\n } else if (contextType._context !== undefined) {\n // <Context.Consumer>\n addendum = \" Did you accidentally pass the Context.Consumer instead?\";\n } else {\n addendum = \" However, it is set to an object with keys {\" + Object.keys(contextType).join(\", \") + \"}.\";\n }\n error(\"%s defines an invalid contextType. \" + \"contextType should point to the Context object returned by React.createContext().%s\", getComponentNameFromType(ctor) || \"Component\", addendum);\n }\n }\n }\n if (typeof contextType === \"object\" && contextType !== null) {\n context = readContext$1(contextType);\n } else {\n context = maskedLegacyContext;\n }\n var instance = new ctor(props, context);\n {\n if (typeof ctor.getDerivedStateFromProps === \"function\" && (instance.state === null || instance.state === undefined)) {\n var componentName = getComponentNameFromType(ctor) || \"Component\";\n if (!didWarnAboutUninitializedState.has(componentName)) {\n didWarnAboutUninitializedState.add(componentName);\n error(\"`%s` uses `getDerivedStateFromProps` but its initial state is \" + \"%s. This is not recommended. Instead, define the initial state by \" + \"assigning an object to `this.state` in the constructor of `%s`. \" + \"This ensures that `getDerivedStateFromProps` arguments have a consistent shape.\", componentName, instance.state === null ? \"null\" : \"undefined\", componentName);\n }\n } // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Warn about these lifecycles if they are present.\n // Don't warn about react-lifecycles-compat polyfilled methods though.\n if (typeof ctor.getDerivedStateFromProps === \"function\" || typeof instance.getSnapshotBeforeUpdate === \"function\") {\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof instance.componentWillMount === \"function\" && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n foundWillMountName = \"componentWillMount\";\n } else if (typeof instance.UNSAFE_componentWillMount === \"function\") {\n foundWillMountName = \"UNSAFE_componentWillMount\";\n }\n if (typeof instance.componentWillReceiveProps === \"function\" && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n foundWillReceivePropsName = \"componentWillReceiveProps\";\n } else if (typeof instance.UNSAFE_componentWillReceiveProps === \"function\") {\n foundWillReceivePropsName = \"UNSAFE_componentWillReceiveProps\";\n }\n if (typeof instance.componentWillUpdate === \"function\" && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n foundWillUpdateName = \"componentWillUpdate\";\n } else if (typeof instance.UNSAFE_componentWillUpdate === \"function\") {\n foundWillUpdateName = \"UNSAFE_componentWillUpdate\";\n }\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var _componentName = getComponentNameFromType(ctor) || \"Component\";\n var newApiName = typeof ctor.getDerivedStateFromProps === \"function\" ? \"getDerivedStateFromProps()\" : \"getSnapshotBeforeUpdate()\";\n if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n error(\"Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n\" + \"%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n\" + \"The above lifecycles should be removed. Learn more about this warning here:\\n\" + \"https://reactjs.org/link/unsafe-component-lifecycles\", _componentName, newApiName, foundWillMountName !== null ? \"\\n \" + foundWillMountName : \"\", foundWillReceivePropsName !== null ? \"\\n \" + foundWillReceivePropsName : \"\", foundWillUpdateName !== null ? \"\\n \" + foundWillUpdateName : \"\");\n }\n }\n }\n }\n return instance;\n }\n function checkClassInstance(instance, ctor, newProps) {\n {\n var name = getComponentNameFromType(ctor) || \"Component\";\n var renderPresent = instance.render;\n if (!renderPresent) {\n if (ctor.prototype && typeof ctor.prototype.render === \"function\") {\n error(\"%s(...): No `render` method found on the returned component \" + \"instance: did you accidentally return an object from the constructor?\", name);\n } else {\n error(\"%s(...): No `render` method found on the returned component \" + \"instance: you may have forgotten to define `render`.\", name);\n }\n }\n if (instance.getInitialState && !instance.getInitialState.isReactClassApproved && !instance.state) {\n error(\"getInitialState was defined on %s, a plain JavaScript class. \" + \"This is only supported for classes created using React.createClass. \" + \"Did you mean to define a state property instead?\", name);\n }\n if (instance.getDefaultProps && !instance.getDefaultProps.isReactClassApproved) {\n error(\"getDefaultProps was defined on %s, a plain JavaScript class. \" + \"This is only supported for classes created using React.createClass. \" + \"Use a static property to define defaultProps instead.\", name);\n }\n if (instance.propTypes) {\n error(\"propTypes was defined as an instance property on %s. Use a static \" + \"property to define propTypes instead.\", name);\n }\n if (instance.contextType) {\n error(\"contextType was defined as an instance property on %s. Use a static \" + \"property to define contextType instead.\", name);\n }\n {\n if (instance.contextTypes) {\n error(\"contextTypes was defined as an instance property on %s. Use a static \" + \"property to define contextTypes instead.\", name);\n }\n if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {\n didWarnAboutContextTypeAndContextTypes.add(ctor);\n error(\"%s declares both contextTypes and contextType static properties. \" + \"The legacy contextTypes property will be ignored.\", name);\n }\n }\n if (typeof instance.componentShouldUpdate === \"function\") {\n error(\"%s has a method called \" + \"componentShouldUpdate(). Did you mean shouldComponentUpdate()? \" + \"The name is phrased as a question because the function is \" + \"expected to return a value.\", name);\n }\n if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== \"undefined\") {\n error(\"%s has a method called shouldComponentUpdate(). \" + \"shouldComponentUpdate should not be used when extending React.PureComponent. \" + \"Please extend React.Component if shouldComponentUpdate is used.\", getComponentNameFromType(ctor) || \"A pure component\");\n }\n if (typeof instance.componentDidUnmount === \"function\") {\n error(\"%s has a method called \" + \"componentDidUnmount(). But there is no such lifecycle method. \" + \"Did you mean componentWillUnmount()?\", name);\n }\n if (typeof instance.componentDidReceiveProps === \"function\") {\n error(\"%s has a method called \" + \"componentDidReceiveProps(). But there is no such lifecycle method. \" + \"If you meant to update the state in response to changing props, \" + \"use componentWillReceiveProps(). If you meant to fetch data or \" + \"run side-effects or mutations after React has updated the UI, use componentDidUpdate().\", name);\n }\n if (typeof instance.componentWillRecieveProps === \"function\") {\n error(\"%s has a method called \" + \"componentWillRecieveProps(). Did you mean componentWillReceiveProps()?\", name);\n }\n if (typeof instance.UNSAFE_componentWillRecieveProps === \"function\") {\n error(\"%s has a method called \" + \"UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?\", name);\n }\n var hasMutatedProps = instance.props !== newProps;\n if (instance.props !== undefined && hasMutatedProps) {\n error(\"%s(...): When calling super() in `%s`, make sure to pass \" + \"up the same props that your component's constructor was passed.\", name, name);\n }\n if (instance.defaultProps) {\n error(\"Setting defaultProps as an instance property on %s is not supported and will be ignored.\" + \" Instead, define defaultProps as a static property on %s.\", name, name);\n }\n if (typeof instance.getSnapshotBeforeUpdate === \"function\" && typeof instance.componentDidUpdate !== \"function\" && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n error(\"%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). \" + \"This component defines getSnapshotBeforeUpdate() only.\", getComponentNameFromType(ctor));\n }\n if (typeof instance.getDerivedStateFromProps === \"function\") {\n error(\"%s: getDerivedStateFromProps() is defined as an instance method \" + \"and will be ignored. Instead, declare it as a static method.\", name);\n }\n if (typeof instance.getDerivedStateFromError === \"function\") {\n error(\"%s: getDerivedStateFromError() is defined as an instance method \" + \"and will be ignored. Instead, declare it as a static method.\", name);\n }\n if (typeof ctor.getSnapshotBeforeUpdate === \"function\") {\n error(\"%s: getSnapshotBeforeUpdate() is defined as a static method \" + \"and will be ignored. Instead, declare it as an instance method.\", name);\n }\n var state = instance.state;\n if (state && (typeof state !== \"object\" || isArray(state))) {\n error(\"%s.state: must be set to an object or null\", name);\n }\n if (typeof instance.getChildContext === \"function\" && typeof ctor.childContextTypes !== \"object\") {\n error(\"%s.getChildContext(): childContextTypes must be defined in order to \" + \"use getChildContext().\", name);\n }\n }\n }\n function callComponentWillMount(type, instance) {\n var oldState = instance.state;\n if (typeof instance.componentWillMount === \"function\") {\n {\n if (instance.componentWillMount.__suppressDeprecationWarning !== true) {\n var componentName = getComponentNameFromType(type) || \"Unknown\";\n if (!didWarnAboutDeprecatedWillMount[componentName]) {\n warn(\"componentWillMount has been renamed, and is not recommended for use. \" + \"See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n\" + \"* Move code from componentWillMount to componentDidMount (preferred in most cases) \" + \"or the constructor.\\n\" + \"\\nPlease update the following components: %s\", componentName);\n didWarnAboutDeprecatedWillMount[componentName] = true;\n }\n }\n }\n instance.componentWillMount();\n }\n if (typeof instance.UNSAFE_componentWillMount === \"function\") {\n instance.UNSAFE_componentWillMount();\n }\n if (oldState !== instance.state) {\n {\n error(\"%s.componentWillMount(): Assigning directly to this.state is \" + \"deprecated (except inside a component's \" + \"constructor). Use setState instead.\", getComponentNameFromType(type) || \"Component\");\n }\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n }\n function processUpdateQueue(internalInstance, inst, props, maskedLegacyContext) {\n if (internalInstance.queue !== null && internalInstance.queue.length > 0) {\n var oldQueue = internalInstance.queue;\n var oldReplace = internalInstance.replace;\n internalInstance.queue = null;\n internalInstance.replace = false;\n if (oldReplace && oldQueue.length === 1) {\n inst.state = oldQueue[0];\n } else {\n var nextState = oldReplace ? oldQueue[0] : inst.state;\n var dontMutate = true;\n for(var i = oldReplace ? 1 : 0; i < oldQueue.length; i++){\n var partial = oldQueue[i];\n var partialState = typeof partial === \"function\" ? partial.call(inst, nextState, props, maskedLegacyContext) : partial;\n if (partialState != null) {\n if (dontMutate) {\n dontMutate = false;\n nextState = assign({}, nextState, partialState);\n } else {\n assign(nextState, partialState);\n }\n }\n }\n inst.state = nextState;\n }\n } else {\n internalInstance.queue = null;\n }\n } // Invokes the mount life-cycles on a previously never rendered instance.\n function mountClassInstance(instance, ctor, newProps, maskedLegacyContext) {\n {\n checkClassInstance(instance, ctor, newProps);\n }\n var initialState = instance.state !== undefined ? instance.state : null;\n instance.updater = classComponentUpdater;\n instance.props = newProps;\n instance.state = initialState; // We don't bother initializing the refs object on the server, since we're not going to resolve them anyway.\n // The internal instance will be used to manage updates that happen during this mount.\n var internalInstance = {\n queue: [],\n replace: false\n };\n set(instance, internalInstance);\n var contextType = ctor.contextType;\n if (typeof contextType === \"object\" && contextType !== null) {\n instance.context = readContext$1(contextType);\n } else {\n instance.context = maskedLegacyContext;\n }\n {\n if (instance.state === newProps) {\n var componentName = getComponentNameFromType(ctor) || \"Component\";\n if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n error(\"%s: It is not recommended to assign props directly to state \" + \"because updates to props won't be reflected in state. \" + \"In most cases, it is better to use props directly.\", componentName);\n }\n }\n }\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n if (typeof getDerivedStateFromProps === \"function\") {\n instance.state = applyDerivedStateFromProps(instance, ctor, getDerivedStateFromProps, initialState, newProps);\n } // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n if (typeof ctor.getDerivedStateFromProps !== \"function\" && typeof instance.getSnapshotBeforeUpdate !== \"function\" && (typeof instance.UNSAFE_componentWillMount === \"function\" || typeof instance.componentWillMount === \"function\")) {\n callComponentWillMount(ctor, instance); // If we had additional state updates during this life-cycle, let's\n // process them now.\n processUpdateQueue(internalInstance, instance, newProps, maskedLegacyContext);\n }\n }\n // Ids are base 32 strings whose binary representation corresponds to the\n // position of a node in a tree.\n // Every time the tree forks into multiple children, we add additional bits to\n // the left of the sequence that represent the position of the child within the\n // current level of children.\n //\n // 00101 00010001011010101\n // ╰─┬─╯ ╰───────┬───────╯\n // Fork 5 of 20 Parent id\n //\n // The leading 0s are important. In the above example, you only need 3 bits to\n // represent slot 5. However, you need 5 bits to represent all the forks at\n // the current level, so we must account for the empty bits at the end.\n //\n // For this same reason, slots are 1-indexed instead of 0-indexed. Otherwise,\n // the zeroth id at a level would be indistinguishable from its parent.\n //\n // If a node has only one child, and does not materialize an id (i.e. does not\n // contain a useId hook), then we don't need to allocate any space in the\n // sequence. It's treated as a transparent indirection. For example, these two\n // trees produce the same ids:\n //\n // <> <>\n // <Indirection> <A />\n // <A /> <B />\n // </Indirection> </>\n // <B />\n // </>\n //\n // However, we cannot skip any node that materializes an id. Otherwise, a parent\n // id that does not fork would be indistinguishable from its child id. For\n // example, this tree does not fork, but the parent and child must have\n // different ids.\n //\n // <Parent>\n // <Child />\n // </Parent>\n //\n // To handle this scenario, every time we materialize an id, we allocate a\n // new level with a single slot. You can think of this as a fork with only one\n // prong, or an array of children with length 1.\n //\n // It's possible for the size of the sequence to exceed 32 bits, the max\n // size for bitwise operations. When this happens, we make more room by\n // converting the right part of the id to a string and storing it in an overflow\n // variable. We use a base 32 string representation, because 32 is the largest\n // power of 2 that is supported by toString(). We want the base to be large so\n // that the resulting ids are compact, and we want the base to be a power of 2\n // because every log2(base) bits corresponds to a single character, i.e. every\n // log2(32) = 5 bits. That means we can lop bits off the end 5 at a time without\n // affecting the final result.\n var emptyTreeContext = {\n id: 1,\n overflow: \"\"\n };\n function getTreeId(context) {\n var overflow = context.overflow;\n var idWithLeadingBit = context.id;\n var id = idWithLeadingBit & ~getLeadingBit(idWithLeadingBit);\n return id.toString(32) + overflow;\n }\n function pushTreeContext(baseContext, totalChildren, index) {\n var baseIdWithLeadingBit = baseContext.id;\n var baseOverflow = baseContext.overflow; // The leftmost 1 marks the end of the sequence, non-inclusive. It's not part\n // of the id; we use it to account for leading 0s.\n var baseLength = getBitLength(baseIdWithLeadingBit) - 1;\n var baseId = baseIdWithLeadingBit & ~(1 << baseLength);\n var slot = index + 1;\n var length = getBitLength(totalChildren) + baseLength; // 30 is the max length we can store without overflowing, taking into\n // consideration the leading 1 we use to mark the end of the sequence.\n if (length > 30) {\n // We overflowed the bitwise-safe range. Fall back to slower algorithm.\n // This branch assumes the length of the base id is greater than 5; it won't\n // work for smaller ids, because you need 5 bits per character.\n //\n // We encode the id in multiple steps: first the base id, then the\n // remaining digits.\n //\n // Each 5 bit sequence corresponds to a single base 32 character. So for\n // example, if the current id is 23 bits long, we can convert 20 of those\n // bits into a string of 4 characters, with 3 bits left over.\n //\n // First calculate how many bits in the base id represent a complete\n // sequence of characters.\n var numberOfOverflowBits = baseLength - baseLength % 5; // Then create a bitmask that selects only those bits.\n var newOverflowBits = (1 << numberOfOverflowBits) - 1; // Select the bits, and convert them to a base 32 string.\n var newOverflow = (baseId & newOverflowBits).toString(32); // Now we can remove those bits from the base id.\n var restOfBaseId = baseId >> numberOfOverflowBits;\n var restOfBaseLength = baseLength - numberOfOverflowBits; // Finally, encode the rest of the bits using the normal algorithm. Because\n // we made more room, this time it won't overflow.\n var restOfLength = getBitLength(totalChildren) + restOfBaseLength;\n var restOfNewBits = slot << restOfBaseLength;\n var id = restOfNewBits | restOfBaseId;\n var overflow = newOverflow + baseOverflow;\n return {\n id: 1 << restOfLength | id,\n overflow: overflow\n };\n } else {\n // Normal path\n var newBits = slot << baseLength;\n var _id = newBits | baseId;\n var _overflow = baseOverflow;\n return {\n id: 1 << length | _id,\n overflow: _overflow\n };\n }\n }\n function getBitLength(number) {\n return 32 - clz32(number);\n }\n function getLeadingBit(id) {\n return 1 << getBitLength(id) - 1;\n } // TODO: Math.clz32 is supported in Node 12+. Maybe we can drop the fallback.\n var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback; // Count leading zeros.\n // Based on:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32\n var log = Math.log;\n var LN2 = Math.LN2;\n function clz32Fallback(x) {\n var asUint = x >>> 0;\n if (asUint === 0) {\n return 32;\n }\n return 31 - (log(asUint) / LN2 | 0) | 0;\n }\n // Corresponds to ReactFiberWakeable and ReactFlightWakeable modules. Generally,\n // changes to one module should be reflected in the others.\n // TODO: Rename this module and the corresponding Fiber one to \"Thenable\"\n // instead of \"Wakeable\". Or some other more appropriate name.\n // An error that is thrown (e.g. by `use`) to trigger Suspense. If we\n // detect this is caught by userspace, we'll log a warning in development.\n var SuspenseException = new Error(\"Suspense Exception: This is not a real error! It's an implementation \" + \"detail of `use` to interrupt the current render. You must either \" + \"rethrow it immediately, or move the `use` call outside of the \" + \"`try/catch` block. Capturing without rethrowing will lead to \" + \"unexpected behavior.\\n\\n\" + \"To handle async errors, wrap your component in an error boundary, or \" + \"call the promise's `.catch` method and pass the result to `use`\");\n function createThenableState() {\n // The ThenableState is created the first time a component suspends. If it\n // suspends again, we'll reuse the same state.\n return [];\n }\n function noop$2() {}\n function trackUsedThenable(thenableState, thenable, index) {\n var previous = thenableState[index];\n if (previous === undefined) {\n thenableState.push(thenable);\n } else {\n if (previous !== thenable) {\n // Reuse the previous thenable, and drop the new one. We can assume\n // they represent the same value, because components are idempotent.\n // Avoid an unhandled rejection errors for the Promises that we'll\n // intentionally ignore.\n thenable.then(noop$2, noop$2);\n thenable = previous;\n }\n } // We use an expando to track the status and result of a thenable so that we\n // can synchronously unwrap the value. Think of this as an extension of the\n // Promise API, or a custom interface that is a superset of Thenable.\n //\n // If the thenable doesn't have a status, set it to \"pending\" and attach\n // a listener that will update its status and result when it resolves.\n switch(thenable.status){\n case \"fulfilled\":\n {\n var fulfilledValue = thenable.value;\n return fulfilledValue;\n }\n case \"rejected\":\n {\n var rejectedError = thenable.reason;\n throw rejectedError;\n }\n default:\n {\n if (typeof thenable.status === \"string\") ;\n else {\n var pendingThenable = thenable;\n pendingThenable.status = \"pending\";\n pendingThenable.then(function(fulfilledValue) {\n if (thenable.status === \"pending\") {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n }, function(error) {\n if (thenable.status === \"pending\") {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }); // Check one more time in case the thenable resolved synchronously\n switch(thenable.status){\n case \"fulfilled\":\n {\n var fulfilledThenable = thenable;\n return fulfilledThenable.value;\n }\n case \"rejected\":\n {\n var rejectedThenable = thenable;\n throw rejectedThenable.reason;\n }\n }\n } // Suspend.\n //\n // Throwing here is an implementation detail that allows us to unwind the\n // call stack. But we shouldn't allow it to leak into userspace. Throw an\n // opaque placeholder value instead of the actual thenable. If it doesn't\n // get captured by the work loop, log a warning, because that means\n // something in userspace must have caught it.\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n }\n } // This is used to track the actual thenable that suspended so it can be\n // passed to the rest of the Suspense implementation — which, for historical\n // reasons, expects to receive a thenable.\n var suspendedThenable = null;\n function getSuspendedThenable() {\n // This is called right after `use` suspends by throwing an exception. `use`\n // throws an opaque value instead of the thenable itself so that it can't be\n // caught in userspace. Then the work loop accesses the actual thenable using\n // this function.\n if (suspendedThenable === null) {\n throw new Error(\"Expected a suspended thenable. This is a bug in React. Please file \" + \"an issue.\");\n }\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n }\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */ function is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n }\n var objectIs = typeof Object.is === \"function\" ? Object.is : is;\n var currentlyRenderingComponent = null;\n var currentlyRenderingTask = null;\n var currentlyRenderingRequest = null;\n var currentlyRenderingKeyPath = null;\n var firstWorkInProgressHook = null;\n var workInProgressHook = null; // Whether the work-in-progress hook is a re-rendered hook\n var isReRender = false; // Whether an update was scheduled during the currently executing render pass.\n var didScheduleRenderPhaseUpdate = false; // Counts the number of useId hooks in this component\n var localIdCounter = 0; // Chunks that should be pushed to the stream once the component\n // finishes rendering.\n // Counts the number of useFormState calls in this component\n var formStateCounter = 0; // The index of the useFormState hook that matches the one passed in at the\n // root during an MPA navigation, if any.\n var formStateMatchingIndex = -1; // Counts the number of use(thenable) calls in this component\n var thenableIndexCounter = 0;\n var thenableState = null; // Lazily created map of render-phase updates\n var renderPhaseUpdates = null; // Counter to prevent infinite loops.\n var numberOfReRenders = 0;\n var RE_RENDER_LIMIT = 25;\n var isInHookUserCodeInDev = false; // In DEV, this is the name of the currently executing primitive hook\n var currentHookNameInDev;\n function resolveCurrentlyRenderingComponent() {\n if (currentlyRenderingComponent === null) {\n throw new Error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for\" + \" one of the following reasons:\\n\" + \"1. You might have mismatching versions of React and the renderer (such as React DOM)\\n\" + \"2. You might be breaking the Rules of Hooks\\n\" + \"3. You might have more than one copy of React in the same app\\n\" + \"See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\");\n }\n {\n if (isInHookUserCodeInDev) {\n error(\"Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. \" + \"You can only call Hooks at the top level of your React function. \" + \"For more information, see \" + \"https://reactjs.org/link/rules-of-hooks\");\n }\n }\n return currentlyRenderingComponent;\n }\n function areHookInputsEqual(nextDeps, prevDeps) {\n if (prevDeps === null) {\n {\n error(\"%s received a final argument during this render, but not during \" + \"the previous render. Even though the final argument is optional, \" + \"its type cannot change between renders.\", currentHookNameInDev);\n }\n return false;\n }\n {\n // Don't bother comparing lengths in prod because these arrays should be\n // passed inline.\n if (nextDeps.length !== prevDeps.length) {\n error(\"The final argument passed to %s changed size between renders. The \" + \"order and size of this array must remain constant.\\n\\n\" + \"Previous: %s\\n\" + \"Incoming: %s\", currentHookNameInDev, \"[\" + nextDeps.join(\", \") + \"]\", \"[\" + prevDeps.join(\", \") + \"]\");\n }\n }\n for(var i = 0; i < prevDeps.length && i < nextDeps.length; i++){\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n if (objectIs(nextDeps[i], prevDeps[i])) {\n continue;\n }\n return false;\n }\n return true;\n }\n function createHook() {\n if (numberOfReRenders > 0) {\n throw new Error(\"Rendered more hooks than during the previous render\");\n }\n return {\n memoizedState: null,\n queue: null,\n next: null\n };\n }\n function createWorkInProgressHook() {\n if (workInProgressHook === null) {\n // This is the first hook in the list\n if (firstWorkInProgressHook === null) {\n isReRender = false;\n firstWorkInProgressHook = workInProgressHook = createHook();\n } else {\n // There's already a work-in-progress. Reuse it.\n isReRender = true;\n workInProgressHook = firstWorkInProgressHook;\n }\n } else {\n if (workInProgressHook.next === null) {\n isReRender = false; // Append to the end of the list\n workInProgressHook = workInProgressHook.next = createHook();\n } else {\n // There's already a work-in-progress. Reuse it.\n isReRender = true;\n workInProgressHook = workInProgressHook.next;\n }\n }\n return workInProgressHook;\n }\n function prepareToUseHooks(request, task, keyPath, componentIdentity, prevThenableState) {\n currentlyRenderingComponent = componentIdentity;\n currentlyRenderingTask = task;\n currentlyRenderingRequest = request;\n currentlyRenderingKeyPath = keyPath;\n {\n isInHookUserCodeInDev = false;\n }\n // didScheduleRenderPhaseUpdate = false;\n // firstWorkInProgressHook = null;\n // numberOfReRenders = 0;\n // renderPhaseUpdates = null;\n // workInProgressHook = null;\n localIdCounter = 0;\n formStateCounter = 0;\n formStateMatchingIndex = -1;\n thenableIndexCounter = 0;\n thenableState = prevThenableState;\n }\n function finishHooks(Component, props, children, refOrContext) {\n // This must be called after every function component to prevent hooks from\n // being used in classes.\n while(didScheduleRenderPhaseUpdate){\n // Updates were scheduled during the render phase. They are stored in\n // the `renderPhaseUpdates` map. Call the component again, reusing the\n // work-in-progress hooks and applying the additional updates on top. Keep\n // restarting until no more updates are scheduled.\n didScheduleRenderPhaseUpdate = false;\n localIdCounter = 0;\n formStateCounter = 0;\n formStateMatchingIndex = -1;\n thenableIndexCounter = 0;\n numberOfReRenders += 1; // Start over from the beginning of the list\n workInProgressHook = null;\n children = Component(props, refOrContext);\n }\n resetHooksState();\n return children;\n }\n function getThenableStateAfterSuspending() {\n var state = thenableState;\n thenableState = null;\n return state;\n }\n function checkDidRenderIdHook() {\n // This should be called immediately after every finishHooks call.\n // Conceptually, it's part of the return value of finishHooks; it's only a\n // separate function to avoid using an array tuple.\n var didRenderIdHook = localIdCounter !== 0;\n return didRenderIdHook;\n }\n function getFormStateCount() {\n // This should be called immediately after every finishHooks call.\n // Conceptually, it's part of the return value of finishHooks; it's only a\n // separate function to avoid using an array tuple.\n return formStateCounter;\n }\n function getFormStateMatchingIndex() {\n // This should be called immediately after every finishHooks call.\n // Conceptually, it's part of the return value of finishHooks; it's only a\n // separate function to avoid using an array tuple.\n return formStateMatchingIndex;\n } // Reset the internal hooks state if an error occurs while rendering a component\n function resetHooksState() {\n {\n isInHookUserCodeInDev = false;\n }\n currentlyRenderingComponent = null;\n currentlyRenderingTask = null;\n currentlyRenderingRequest = null;\n currentlyRenderingKeyPath = null;\n didScheduleRenderPhaseUpdate = false;\n firstWorkInProgressHook = null;\n numberOfReRenders = 0;\n renderPhaseUpdates = null;\n workInProgressHook = null;\n }\n function readContext(context) {\n {\n if (isInHookUserCodeInDev) {\n error(\"Context can only be read while React is rendering. \" + \"In classes, you can read it in the render method or getDerivedStateFromProps. \" + \"In function components, you can read it directly in the function body, but not \" + \"inside Hooks like useReducer() or useMemo().\");\n }\n }\n return readContext$1(context);\n }\n function useContext(context) {\n {\n currentHookNameInDev = \"useContext\";\n }\n resolveCurrentlyRenderingComponent();\n return readContext$1(context);\n }\n function basicStateReducer(state, action) {\n // $FlowFixMe[incompatible-use]: Flow doesn't like mixed types\n return typeof action === \"function\" ? action(state) : action;\n }\n function useState(initialState) {\n {\n currentHookNameInDev = \"useState\";\n }\n return useReducer(basicStateReducer, initialState);\n }\n function useReducer(reducer, initialArg, init) {\n {\n if (reducer !== basicStateReducer) {\n currentHookNameInDev = \"useReducer\";\n }\n }\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n if (isReRender) {\n // This is a re-render. Apply the new render phase updates to the previous\n // current hook.\n var queue = workInProgressHook.queue;\n var dispatch = queue.dispatch;\n if (renderPhaseUpdates !== null) {\n // Render phase updates are stored in a map of queue -> linked list\n var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue);\n if (firstRenderPhaseUpdate !== undefined) {\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n renderPhaseUpdates.delete(queue); // $FlowFixMe[incompatible-use] found when upgrading Flow\n var newState = workInProgressHook.memoizedState;\n var update = firstRenderPhaseUpdate;\n do {\n // Process this render phase update. We don't have to check the\n // priority because it will always be the same as the current\n // render's.\n var action = update.action;\n {\n isInHookUserCodeInDev = true;\n }\n newState = reducer(newState, action);\n {\n isInHookUserCodeInDev = false;\n }\n update = update.next;\n }while (update !== null); // $FlowFixMe[incompatible-use] found when upgrading Flow\n workInProgressHook.memoizedState = newState;\n return [\n newState,\n dispatch\n ];\n }\n } // $FlowFixMe[incompatible-use] found when upgrading Flow\n return [\n workInProgressHook.memoizedState,\n dispatch\n ];\n } else {\n {\n isInHookUserCodeInDev = true;\n }\n var initialState;\n if (reducer === basicStateReducer) {\n // Special case for `useState`.\n initialState = typeof initialArg === \"function\" ? initialArg() : initialArg;\n } else {\n initialState = init !== undefined ? init(initialArg) : initialArg;\n }\n {\n isInHookUserCodeInDev = false;\n }\n workInProgressHook.memoizedState = initialState; // $FlowFixMe[incompatible-use] found when upgrading Flow\n var _queue = workInProgressHook.queue = {\n last: null,\n dispatch: null\n };\n var _dispatch = _queue.dispatch = dispatchAction.bind(null, currentlyRenderingComponent, _queue); // $FlowFixMe[incompatible-use] found when upgrading Flow\n return [\n workInProgressHook.memoizedState,\n _dispatch\n ];\n }\n }\n function useMemo(nextCreate, deps) {\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n if (workInProgressHook !== null) {\n var prevState = workInProgressHook.memoizedState;\n if (prevState !== null) {\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n }\n {\n isInHookUserCodeInDev = true;\n }\n var nextValue = nextCreate();\n {\n isInHookUserCodeInDev = false;\n }\n workInProgressHook.memoizedState = [\n nextValue,\n nextDeps\n ];\n return nextValue;\n }\n function useRef(initialValue) {\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n var previousRef = workInProgressHook.memoizedState;\n if (previousRef === null) {\n var ref = {\n current: initialValue\n };\n {\n Object.seal(ref);\n }\n workInProgressHook.memoizedState = ref;\n return ref;\n } else {\n return previousRef;\n }\n }\n function dispatchAction(componentIdentity, queue, action) {\n if (numberOfReRenders >= RE_RENDER_LIMIT) {\n throw new Error(\"Too many re-renders. React limits the number of renders to prevent \" + \"an infinite loop.\");\n }\n if (componentIdentity === currentlyRenderingComponent) {\n // This is a render phase update. Stash it in a lazily-created map of\n // queue -> linked list of updates. After this render pass, we'll restart\n // and apply the stashed updates on top of the work-in-progress hook.\n didScheduleRenderPhaseUpdate = true;\n var update = {\n action: action,\n next: null\n };\n if (renderPhaseUpdates === null) {\n renderPhaseUpdates = new Map();\n }\n var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue);\n if (firstRenderPhaseUpdate === undefined) {\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n renderPhaseUpdates.set(queue, update);\n } else {\n // Append the update to the end of the list.\n var lastRenderPhaseUpdate = firstRenderPhaseUpdate;\n while(lastRenderPhaseUpdate.next !== null){\n lastRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n }\n lastRenderPhaseUpdate.next = update;\n }\n }\n }\n function useCallback(callback, deps) {\n return useMemo(function() {\n return callback;\n }, deps);\n }\n function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n if (getServerSnapshot === undefined) {\n throw new Error(\"Missing getServerSnapshot, which is required for \" + \"server-rendered content. Will revert to client rendering.\");\n }\n return getServerSnapshot();\n }\n function useDeferredValue(value, initialValue) {\n resolveCurrentlyRenderingComponent();\n {\n return value;\n }\n }\n function unsupportedStartTransition() {\n throw new Error(\"startTransition cannot be called during server rendering.\");\n }\n function useTransition() {\n resolveCurrentlyRenderingComponent();\n return [\n false,\n unsupportedStartTransition\n ];\n }\n function useHostTransitionStatus() {\n resolveCurrentlyRenderingComponent();\n return NotPendingTransition;\n }\n function unsupportedSetOptimisticState() {\n throw new Error(\"Cannot update optimistic state while rendering.\");\n }\n function useOptimistic(passthrough, reducer) {\n resolveCurrentlyRenderingComponent();\n return [\n passthrough,\n unsupportedSetOptimisticState\n ];\n }\n function createPostbackFormStateKey(permalink, componentKeyPath, hookIndex) {\n if (permalink !== undefined) {\n // Don't bother to hash a permalink-based key since it's already short.\n return \"p\" + permalink;\n } else {\n // Append a node to the key path that represents the form state hook.\n var keyPath = [\n componentKeyPath,\n null,\n hookIndex\n ]; // Key paths are hashed to reduce the size. It does not need to be secure,\n // and it's more important that it's fast than that it's completely\n // collision-free.\n var keyPathHash = createFastHashJS(JSON.stringify(keyPath));\n return \"k\" + keyPathHash;\n }\n }\n function useFormState(action, initialState, permalink) {\n resolveCurrentlyRenderingComponent(); // Count the number of useFormState hooks per component. We also use this to\n // track the position of this useFormState hook relative to the other ones in\n // this component, so we can generate a unique key for each one.\n var formStateHookIndex = formStateCounter++;\n var request = currentlyRenderingRequest; // $FlowIgnore[prop-missing]\n var formAction = action.$$FORM_ACTION;\n if (typeof formAction === \"function\") {\n // This is a server action. These have additional features to enable\n // MPA-style form submissions with progressive enhancement.\n // TODO: If the same permalink is passed to multiple useFormStates, and\n // they all have the same action signature, Fizz will pass the postback\n // state to all of them. We should probably only pass it to the first one,\n // and/or warn.\n // The key is lazily generated and deduped so the that the keypath doesn't\n // get JSON.stringify-ed unnecessarily, and at most once.\n var nextPostbackStateKey = null; // Determine the current form state. If we received state during an MPA form\n // submission, then we will reuse that, if the action identity matches.\n // Otherwise we'll use the initial state argument. We will emit a comment\n // marker into the stream that indicates whether the state was reused.\n var state = initialState;\n var componentKeyPath = currentlyRenderingKeyPath;\n var postbackFormState = getFormState(request); // $FlowIgnore[prop-missing]\n var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL;\n if (postbackFormState !== null && typeof isSignatureEqual === \"function\") {\n var postbackKey = postbackFormState[1];\n var postbackReferenceId = postbackFormState[2];\n var postbackBoundArity = postbackFormState[3];\n if (isSignatureEqual.call(action, postbackReferenceId, postbackBoundArity)) {\n nextPostbackStateKey = createPostbackFormStateKey(permalink, componentKeyPath, formStateHookIndex);\n if (postbackKey === nextPostbackStateKey) {\n // This was a match\n formStateMatchingIndex = formStateHookIndex; // Reuse the state that was submitted by the form.\n state = postbackFormState[0];\n }\n }\n } // Bind the state to the first argument of the action.\n var boundAction = action.bind(null, state); // Wrap the action so the return value is void.\n var dispatch = function(payload) {\n boundAction(payload);\n }; // $FlowIgnore[prop-missing]\n if (typeof boundAction.$$FORM_ACTION === \"function\") {\n // $FlowIgnore[prop-missing]\n dispatch.$$FORM_ACTION = function(prefix) {\n var metadata = boundAction.$$FORM_ACTION(prefix); // Override the action URL\n if (permalink !== undefined) {\n {\n checkAttributeStringCoercion(permalink, \"target\");\n }\n permalink += \"\";\n metadata.action = permalink;\n }\n var formData = metadata.data;\n if (formData) {\n if (nextPostbackStateKey === null) {\n nextPostbackStateKey = createPostbackFormStateKey(permalink, componentKeyPath, formStateHookIndex);\n }\n formData.append(\"$ACTION_KEY\", nextPostbackStateKey);\n }\n return metadata;\n };\n }\n return [\n state,\n dispatch\n ];\n } else {\n // This is not a server action, so the implementation is much simpler.\n // Bind the state to the first argument of the action.\n var _boundAction = action.bind(null, initialState); // Wrap the action so the return value is void.\n var _dispatch2 = function(payload) {\n _boundAction(payload);\n };\n return [\n initialState,\n _dispatch2\n ];\n }\n }\n function useId() {\n var task = currentlyRenderingTask;\n var treeId = getTreeId(task.treeContext);\n var resumableState = currentResumableState;\n if (resumableState === null) {\n throw new Error(\"Invalid hook call. Hooks can only be called inside of the body of a function component.\");\n }\n var localId = localIdCounter++;\n return makeId(resumableState, treeId, localId);\n }\n function use(usable) {\n if (usable !== null && typeof usable === \"object\") {\n // $FlowFixMe[method-unbinding]\n if (typeof usable.then === \"function\") {\n // This is a thenable.\n var thenable = usable;\n return unwrapThenable(thenable);\n } else if (usable.$$typeof === REACT_CONTEXT_TYPE || usable.$$typeof === REACT_SERVER_CONTEXT_TYPE) {\n var context = usable;\n return readContext(context);\n }\n } // eslint-disable-next-line react-internal/safe-string-coercion\n throw new Error(\"An unsupported type was passed to use(): \" + String(usable));\n }\n function unwrapThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n if (thenableState === null) {\n thenableState = createThenableState();\n }\n return trackUsedThenable(thenableState, thenable, index);\n }\n function unsupportedRefresh() {\n throw new Error(\"Cache cannot be refreshed during server rendering.\");\n }\n function useCacheRefresh() {\n return unsupportedRefresh;\n }\n function noop$1() {}\n var HooksDispatcher = {\n readContext: readContext,\n use: use,\n useContext: useContext,\n useMemo: useMemo,\n useReducer: useReducer,\n useRef: useRef,\n useState: useState,\n useInsertionEffect: noop$1,\n useLayoutEffect: noop$1,\n useCallback: useCallback,\n // useImperativeHandle is not run in the server environment\n useImperativeHandle: noop$1,\n // Effects are not run in the server environment.\n useEffect: noop$1,\n // Debugging effect\n useDebugValue: noop$1,\n useDeferredValue: useDeferredValue,\n useTransition: useTransition,\n useId: useId,\n // Subscriptions are not setup in a server environment.\n useSyncExternalStore: useSyncExternalStore\n };\n {\n HooksDispatcher.useCacheRefresh = useCacheRefresh;\n }\n {\n HooksDispatcher.useHostTransitionStatus = useHostTransitionStatus;\n }\n {\n HooksDispatcher.useOptimistic = useOptimistic;\n HooksDispatcher.useFormState = useFormState;\n }\n var currentResumableState = null;\n function setCurrentResumableState(resumableState) {\n currentResumableState = resumableState;\n }\n function getCacheSignal() {\n throw new Error(\"Not implemented.\");\n }\n function getCacheForType(resourceType) {\n throw new Error(\"Not implemented.\");\n }\n var DefaultCacheDispatcher = {\n getCacheSignal: getCacheSignal,\n getCacheForType: getCacheForType\n };\n function getStackByComponentStackNode(componentStack) {\n try {\n var info = \"\";\n var node = componentStack;\n do {\n switch(node.tag){\n case 0:\n info += describeBuiltInComponentFrame(node.type, null, null);\n break;\n case 1:\n info += describeFunctionComponentFrame(node.type, null, null);\n break;\n case 2:\n info += describeClassComponentFrame(node.type, null, null);\n break;\n } // $FlowFixMe[incompatible-type] we bail out when we get a null\n node = node.parent;\n }while (node);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n var ReactCurrentCache = ReactSharedInternals.ReactCurrentCache;\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; // Linked list representing the identity of a component given the component/tag name and key.\n // The name might be minified but we assume that it's going to be the same generated name. Typically\n // because it's just the same compiled output in practice.\n // resume with segmentID at the index\n var CLIENT_RENDERED = 4; // if it errors or infinitely suspends\n var PENDING = 0;\n var COMPLETED = 1;\n var FLUSHED = 2;\n var ABORTED = 3;\n var ERRORED = 4;\n var POSTPONED = 5;\n var OPEN = 0;\n var CLOSING = 1;\n var CLOSED = 2; // This is a default heuristic for how to split up the HTML content into progressive\n // loading. Our goal is to be able to display additional new content about every 500ms.\n // Faster than that is unnecessary and should be throttled on the client. It also\n // adds unnecessary overhead to do more splits. We don't know if it's a higher or lower\n // end device but higher end suffer less from the overhead than lower end does from\n // not getting small enough pieces. We error on the side of low end.\n // We base this on low end 3G speeds which is about 500kbits per second. We assume\n // that there can be a reasonable drop off from max bandwidth which leaves you with\n // as little as 80%. We can receive half of that each 500ms - at best. In practice,\n // a little bandwidth is lost to processing and contention - e.g. CSS and images that\n // are downloaded along with the main content. So we estimate about half of that to be\n // the lower end throughput. In other words, we expect that you can at least show\n // about 12.5kb of content per 500ms. Not counting starting latency for the first\n // paint.\n // 500 * 1024 / 8 * .8 * 0.5 / 2\n var DEFAULT_PROGRESSIVE_CHUNK_SIZE = 12800;\n function defaultErrorHandler(error) {\n console[\"error\"](error); // Don't transform to our wrapper\n return null;\n }\n function noop() {}\n function createRequest(children, resumableState, renderState, rootFormatContext, progressiveChunkSize, onError, onAllReady, onShellReady, onShellError, onFatalError, onPostpone, formState) {\n prepareHostDispatcher();\n var pingedTasks = [];\n var abortSet = new Set();\n var request = {\n destination: null,\n flushScheduled: false,\n resumableState: resumableState,\n renderState: renderState,\n rootFormatContext: rootFormatContext,\n progressiveChunkSize: progressiveChunkSize === undefined ? DEFAULT_PROGRESSIVE_CHUNK_SIZE : progressiveChunkSize,\n status: OPEN,\n fatalError: null,\n nextSegmentId: 0,\n allPendingTasks: 0,\n pendingRootTasks: 0,\n completedRootSegment: null,\n abortableTasks: abortSet,\n pingedTasks: pingedTasks,\n clientRenderedBoundaries: [],\n completedBoundaries: [],\n partialBoundaries: [],\n trackedPostpones: null,\n onError: onError === undefined ? defaultErrorHandler : onError,\n onPostpone: onPostpone === undefined ? noop : onPostpone,\n onAllReady: onAllReady === undefined ? noop : onAllReady,\n onShellReady: onShellReady === undefined ? noop : onShellReady,\n onShellError: onShellError === undefined ? noop : onShellError,\n onFatalError: onFatalError === undefined ? noop : onFatalError,\n formState: formState === undefined ? null : formState\n }; // This segment represents the root fallback.\n var rootSegment = createPendingSegment(request, 0, null, rootFormatContext, false, false); // There is no parent so conceptually, we're unblocked to flush this segment.\n rootSegment.parentFlushed = true;\n var rootTask = createRenderTask(request, null, children, -1, null, rootSegment, abortSet, null, rootFormatContext, emptyContextObject, rootContextSnapshot, emptyTreeContext, null);\n pingedTasks.push(rootTask);\n return request;\n }\n var currentRequest = null;\n function resolveRequest() {\n if (currentRequest) return currentRequest;\n if (supportsRequestStorage) {\n var store = requestStorage.getStore();\n if (store) return store;\n }\n return null;\n }\n function pingTask(request, task) {\n var pingedTasks = request.pingedTasks;\n pingedTasks.push(task);\n if (request.pingedTasks.length === 1) {\n request.flushScheduled = request.destination !== null;\n scheduleWork(function() {\n return performWork(request);\n });\n }\n }\n function createSuspenseBoundary(request, fallbackAbortableTasks) {\n return {\n status: PENDING,\n rootSegmentID: -1,\n parentFlushed: false,\n pendingTasks: 0,\n completedSegments: [],\n byteSize: 0,\n fallbackAbortableTasks: fallbackAbortableTasks,\n errorDigest: null,\n resources: createBoundaryResources(),\n trackedContentKeyPath: null,\n trackedFallbackNode: null\n };\n }\n function createRenderTask(request, thenableState, node, childIndex, blockedBoundary, blockedSegment, abortSet, keyPath, formatContext, legacyContext, context, treeContext, componentStack) {\n request.allPendingTasks++;\n if (blockedBoundary === null) {\n request.pendingRootTasks++;\n } else {\n blockedBoundary.pendingTasks++;\n }\n var task = {\n replay: null,\n node: node,\n childIndex: childIndex,\n ping: function() {\n return pingTask(request, task);\n },\n blockedBoundary: blockedBoundary,\n blockedSegment: blockedSegment,\n abortSet: abortSet,\n keyPath: keyPath,\n formatContext: formatContext,\n legacyContext: legacyContext,\n context: context,\n treeContext: treeContext,\n componentStack: componentStack,\n thenableState: thenableState\n };\n abortSet.add(task);\n return task;\n }\n function createReplayTask(request, thenableState, replay, node, childIndex, blockedBoundary, abortSet, keyPath, formatContext, legacyContext, context, treeContext, componentStack) {\n request.allPendingTasks++;\n if (blockedBoundary === null) {\n request.pendingRootTasks++;\n } else {\n blockedBoundary.pendingTasks++;\n }\n replay.pendingTasks++;\n var task = {\n replay: replay,\n node: node,\n childIndex: childIndex,\n ping: function() {\n return pingTask(request, task);\n },\n blockedBoundary: blockedBoundary,\n blockedSegment: null,\n abortSet: abortSet,\n keyPath: keyPath,\n formatContext: formatContext,\n legacyContext: legacyContext,\n context: context,\n treeContext: treeContext,\n componentStack: componentStack,\n thenableState: thenableState\n };\n abortSet.add(task);\n return task;\n }\n function createPendingSegment(request, index, boundary, parentFormatContext, lastPushedText, textEmbedded) {\n return {\n status: PENDING,\n id: -1,\n // lazily assigned later\n index: index,\n parentFlushed: false,\n chunks: [],\n children: [],\n parentFormatContext: parentFormatContext,\n boundary: boundary,\n lastPushedText: lastPushedText,\n textEmbedded: textEmbedded\n };\n } // DEV-only global reference to the currently executing task\n var currentTaskInDEV = null;\n function getCurrentStackInDEV() {\n {\n if (currentTaskInDEV === null || currentTaskInDEV.componentStack === null) {\n return \"\";\n }\n return getStackByComponentStackNode(currentTaskInDEV.componentStack);\n }\n }\n function getStackFromNode(stackNode) {\n return getStackByComponentStackNode(stackNode);\n }\n function createBuiltInComponentStack(task, type) {\n return {\n tag: 0,\n parent: task.componentStack,\n type: type\n };\n }\n function createFunctionComponentStack(task, type) {\n return {\n tag: 1,\n parent: task.componentStack,\n type: type\n };\n }\n function createClassComponentStack(task, type) {\n return {\n tag: 2,\n parent: task.componentStack,\n type: type\n };\n } // While we track component stacks in prod all the time we only produce a reified stack in dev and\n // during prerender in Prod. The reason for this is that the stack is useful for prerender where the timeliness\n // of the request is less critical than the observability of the execution. For renders and resumes however we\n // prioritize speed of the request.\n function getThrownInfo(request, node) {\n if (node && true) {\n return {\n componentStack: getStackFromNode(node)\n };\n } else {\n return {};\n }\n }\n function encodeErrorForBoundary(boundary, digest, error, thrownInfo) {\n boundary.errorDigest = digest;\n {\n // In dev we additionally encode the error message and component stack on the boundary\n var errorMessage;\n if (typeof error === \"string\") {\n errorMessage = error;\n } else if (error && typeof error.message === \"string\") {\n errorMessage = error.message;\n } else {\n // eslint-disable-next-line react-internal/safe-string-coercion\n errorMessage = String(error);\n }\n boundary.errorMessage = errorMessage;\n boundary.errorComponentStack = thrownInfo.componentStack;\n }\n }\n function logRecoverableError(request, error$1, errorInfo) {\n // If this callback errors, we intentionally let that error bubble up to become a fatal error\n // so that someone fixes the error reporting instead of hiding it.\n var errorDigest = request.onError(error$1, errorInfo);\n if (errorDigest != null && typeof errorDigest !== \"string\") {\n // We used to throw here but since this gets called from a variety of unprotected places it\n // seems better to just warn and discard the returned value.\n {\n error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"%s\" instead', typeof errorDigest);\n }\n return;\n }\n return errorDigest;\n }\n function fatalError(request, error) {\n // This is called outside error handling code such as if the root errors outside\n // a suspense boundary or if the root suspense boundary's fallback errors.\n // It's also called if React itself or its host configs errors.\n var onShellError = request.onShellError;\n onShellError(error);\n var onFatalError = request.onFatalError;\n onFatalError(error);\n if (request.destination !== null) {\n request.status = CLOSED;\n closeWithError(request.destination, error);\n } else {\n request.status = CLOSING;\n request.fatalError = error;\n }\n }\n function renderSuspenseBoundary(request, someTask, keyPath, props) {\n if (someTask.replay !== null) {\n // If we're replaying through this pass, it means we're replaying through\n // an already completed Suspense boundary. It's too late to do anything about it\n // so we can just render through it.\n var _prevKeyPath = someTask.keyPath;\n someTask.keyPath = keyPath;\n var _content = props.children;\n try {\n renderNode(request, someTask, _content, -1);\n } finally{\n someTask.keyPath = _prevKeyPath;\n }\n return;\n } // $FlowFixMe: Refined.\n var task = someTask;\n var previousComponentStack = task.componentStack; // If we end up creating the fallback task we need it to have the correct stack which is\n // the stack for the boundary itself. We stash it here so we can use it if needed later\n var suspenseComponentStack = task.componentStack = createBuiltInComponentStack(task, \"Suspense\");\n var prevKeyPath = task.keyPath;\n var parentBoundary = task.blockedBoundary;\n var parentSegment = task.blockedSegment; // Each time we enter a suspense boundary, we split out into a new segment for\n // the fallback so that we can later replace that segment with the content.\n // This also lets us split out the main content even if it doesn't suspend,\n // in case it ends up generating a large subtree of content.\n var fallback = props.fallback;\n var content = props.children;\n var fallbackAbortSet = new Set();\n var newBoundary = createSuspenseBoundary(request, fallbackAbortSet);\n if (request.trackedPostpones !== null) {\n newBoundary.trackedContentKeyPath = keyPath;\n }\n var insertionIndex = parentSegment.chunks.length; // The children of the boundary segment is actually the fallback.\n var boundarySegment = createPendingSegment(request, insertionIndex, newBoundary, task.formatContext, false, false);\n parentSegment.children.push(boundarySegment); // The parentSegment has a child Segment at this index so we reset the lastPushedText marker on the parent\n parentSegment.lastPushedText = false; // This segment is the actual child content. We can start rendering that immediately.\n var contentRootSegment = createPendingSegment(request, 0, null, task.formatContext, false, false); // We mark the root segment as having its parent flushed. It's not really flushed but there is\n // no parent segment so there's nothing to wait on.\n contentRootSegment.parentFlushed = true; // Currently this is running synchronously. We could instead schedule this to pingedTasks.\n // I suspect that there might be some efficiency benefits from not creating the suspended task\n // and instead just using the stack if possible.\n // TODO: Call this directly instead of messing with saving and restoring contexts.\n // We can reuse the current context and task to render the content immediately without\n // context switching. We just need to temporarily switch which boundary and which segment\n // we're writing to. If something suspends, it'll spawn new suspended task with that context.\n task.blockedBoundary = newBoundary;\n task.blockedSegment = contentRootSegment;\n {\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, newBoundary.resources);\n }\n task.keyPath = keyPath;\n try {\n // We use the safe form because we don't handle suspending here. Only error handling.\n renderNode(request, task, content, -1);\n pushSegmentFinale(contentRootSegment.chunks, request.renderState, contentRootSegment.lastPushedText, contentRootSegment.textEmbedded);\n contentRootSegment.status = COMPLETED;\n queueCompletedSegment(newBoundary, contentRootSegment);\n if (newBoundary.pendingTasks === 0 && newBoundary.status === PENDING) {\n // This must have been the last segment we were waiting on. This boundary is now complete.\n // Therefore we won't need the fallback. We early return so that we don't have to create\n // the fallback.\n newBoundary.status = COMPLETED; // We are returning early so we need to restore the\n task.componentStack = previousComponentStack;\n return;\n }\n } catch (error) {\n contentRootSegment.status = ERRORED;\n newBoundary.status = CLIENT_RENDERED;\n var thrownInfo = getThrownInfo(request, task.componentStack);\n var errorDigest;\n {\n errorDigest = logRecoverableError(request, error, thrownInfo);\n }\n encodeErrorForBoundary(newBoundary, errorDigest, error, thrownInfo);\n untrackBoundary(request, newBoundary); // We don't need to decrement any task numbers because we didn't spawn any new task.\n // We don't need to schedule any task because we know the parent has written yet.\n // We do need to fallthrough to create the fallback though.\n } finally{\n {\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, parentBoundary ? parentBoundary.resources : null);\n }\n task.blockedBoundary = parentBoundary;\n task.blockedSegment = parentSegment;\n task.keyPath = prevKeyPath;\n task.componentStack = previousComponentStack;\n }\n var fallbackKeyPath = [\n keyPath[0],\n \"Suspense Fallback\",\n keyPath[2]\n ];\n var trackedPostpones = request.trackedPostpones;\n if (trackedPostpones !== null) {\n // We create a detached replay node to track any postpones inside the fallback.\n var fallbackReplayNode = [\n fallbackKeyPath[1],\n fallbackKeyPath[2],\n [],\n null\n ];\n trackedPostpones.workingMap.set(fallbackKeyPath, fallbackReplayNode);\n if (newBoundary.status === POSTPONED) {\n // This must exist now.\n var boundaryReplayNode = trackedPostpones.workingMap.get(keyPath);\n boundaryReplayNode[4] = fallbackReplayNode;\n } else {\n // We might not inject it into the postponed tree, unless the content actually\n // postpones too. We need to keep track of it until that happpens.\n newBoundary.trackedFallbackNode = fallbackReplayNode;\n }\n } // We create suspended task for the fallback because we don't want to actually work\n // on it yet in case we finish the main content, so we queue for later.\n var suspendedFallbackTask = createRenderTask(request, null, fallback, -1, parentBoundary, boundarySegment, fallbackAbortSet, fallbackKeyPath, task.formatContext, task.legacyContext, task.context, task.treeContext, // of the parent boundary from a component standpoint the fallback is a child of the Suspense boundary itself\n suspenseComponentStack); // TODO: This should be queued at a separate lower priority queue so that we only work\n // on preparing fallbacks if we don't have any more main content to task on.\n request.pingedTasks.push(suspendedFallbackTask);\n }\n function replaySuspenseBoundary(request, task, keyPath, props, id, childNodes, childSlots, fallbackNodes, fallbackSlots) {\n var previousComponentStack = task.componentStack; // If we end up creating the fallback task we need it to have the correct stack which is\n // the stack for the boundary itself. We stash it here so we can use it if needed later\n var suspenseComponentStack = task.componentStack = createBuiltInComponentStack(task, \"Suspense\");\n var prevKeyPath = task.keyPath;\n var previousReplaySet = task.replay;\n var parentBoundary = task.blockedBoundary;\n var content = props.children;\n var fallback = props.fallback;\n var fallbackAbortSet = new Set();\n var resumedBoundary = createSuspenseBoundary(request, fallbackAbortSet);\n resumedBoundary.parentFlushed = true; // We restore the same id of this boundary as was used during prerender.\n resumedBoundary.rootSegmentID = id; // We can reuse the current context and task to render the content immediately without\n // context switching. We just need to temporarily switch which boundary and replay node\n // we're writing to. If something suspends, it'll spawn new suspended task with that context.\n task.blockedBoundary = resumedBoundary;\n task.replay = {\n nodes: childNodes,\n slots: childSlots,\n pendingTasks: 1\n };\n {\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, resumedBoundary.resources);\n }\n try {\n // We use the safe form because we don't handle suspending here. Only error handling.\n renderNode(request, task, content, -1);\n if (task.replay.pendingTasks === 1 && task.replay.nodes.length > 0) {\n throw new Error(\"Couldn't find all resumable slots by key/index during replaying. \" + \"The tree doesn't match so React will fallback to client rendering.\");\n }\n task.replay.pendingTasks--;\n if (resumedBoundary.pendingTasks === 0 && resumedBoundary.status === PENDING) {\n // This must have been the last segment we were waiting on. This boundary is now complete.\n // Therefore we won't need the fallback. We early return so that we don't have to create\n // the fallback.\n resumedBoundary.status = COMPLETED;\n request.completedBoundaries.push(resumedBoundary); // We restore the parent componentStack. Semantically this is the same as\n // popComponentStack(task) but we do this instead because it should be slightly\n // faster\n return;\n }\n } catch (error) {\n resumedBoundary.status = CLIENT_RENDERED;\n var thrownInfo = getThrownInfo(request, task.componentStack);\n var errorDigest;\n {\n errorDigest = logRecoverableError(request, error, thrownInfo);\n }\n encodeErrorForBoundary(resumedBoundary, errorDigest, error, thrownInfo);\n task.replay.pendingTasks--; // The parent already flushed in the prerender so we need to schedule this to be emitted.\n request.clientRenderedBoundaries.push(resumedBoundary); // We don't need to decrement any task numbers because we didn't spawn any new task.\n // We don't need to schedule any task because we know the parent has written yet.\n // We do need to fallthrough to create the fallback though.\n } finally{\n {\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, parentBoundary ? parentBoundary.resources : null);\n }\n task.blockedBoundary = parentBoundary;\n task.replay = previousReplaySet;\n task.keyPath = prevKeyPath;\n task.componentStack = previousComponentStack;\n }\n var fallbackKeyPath = [\n keyPath[0],\n \"Suspense Fallback\",\n keyPath[2]\n ]; // We create suspended task for the fallback because we don't want to actually work\n // on it yet in case we finish the main content, so we queue for later.\n var fallbackReplay = {\n nodes: fallbackNodes,\n slots: fallbackSlots,\n pendingTasks: 0\n };\n var suspendedFallbackTask = createReplayTask(request, null, fallbackReplay, fallback, -1, parentBoundary, fallbackAbortSet, fallbackKeyPath, task.formatContext, task.legacyContext, task.context, task.treeContext, // of the parent boundary from a component standpoint the fallback is a child of the Suspense boundary itself\n suspenseComponentStack); // TODO: This should be queued at a separate lower priority queue so that we only work\n // on preparing fallbacks if we don't have any more main content to task on.\n request.pingedTasks.push(suspendedFallbackTask);\n }\n function renderHostElement(request, task, keyPath, type, props) {\n var previousComponentStack = task.componentStack;\n task.componentStack = createBuiltInComponentStack(task, type);\n var segment = task.blockedSegment;\n if (segment === null) {\n // Replay\n var children = props.children; // TODO: Make this a Config for replaying.\n var prevContext = task.formatContext;\n var prevKeyPath = task.keyPath;\n task.formatContext = getChildFormatContext(prevContext, type, props);\n task.keyPath = keyPath; // We use the non-destructive form because if something suspends, we still\n // need to pop back up and finish this subtree of HTML.\n renderNode(request, task, children, -1); // We expect that errors will fatal the whole task and that we don't need\n // the correct context. Therefore this is not in a finally.\n task.formatContext = prevContext;\n task.keyPath = prevKeyPath;\n } else {\n // Render\n var _children = pushStartInstance(segment.chunks, type, props, request.resumableState, request.renderState, task.formatContext, segment.lastPushedText);\n segment.lastPushedText = false;\n var _prevContext = task.formatContext;\n var _prevKeyPath2 = task.keyPath;\n task.formatContext = getChildFormatContext(_prevContext, type, props);\n task.keyPath = keyPath; // We use the non-destructive form because if something suspends, we still\n // need to pop back up and finish this subtree of HTML.\n renderNode(request, task, _children, -1); // We expect that errors will fatal the whole task and that we don't need\n // the correct context. Therefore this is not in a finally.\n task.formatContext = _prevContext;\n task.keyPath = _prevKeyPath2;\n pushEndInstance(segment.chunks, type, props, request.resumableState, _prevContext);\n segment.lastPushedText = false;\n }\n task.componentStack = previousComponentStack;\n }\n function shouldConstruct(Component) {\n return Component.prototype && Component.prototype.isReactComponent;\n }\n function renderWithHooks(request, task, keyPath, prevThenableState, Component, props, secondArg) {\n var componentIdentity = {};\n prepareToUseHooks(request, task, keyPath, componentIdentity, prevThenableState);\n var result = Component(props, secondArg);\n return finishHooks(Component, props, result, secondArg);\n }\n function finishClassComponent(request, task, keyPath, instance, Component, props) {\n var nextChildren = instance.render();\n {\n if (instance.props !== props) {\n if (!didWarnAboutReassigningProps) {\n error(\"It looks like %s is reassigning its own `this.props` while rendering. \" + \"This is not supported and can lead to confusing bugs.\", getComponentNameFromType(Component) || \"a component\");\n }\n didWarnAboutReassigningProps = true;\n }\n }\n {\n var childContextTypes = Component.childContextTypes;\n if (childContextTypes !== null && childContextTypes !== undefined) {\n var previousContext = task.legacyContext;\n var mergedContext = processChildContext(instance, Component, previousContext, childContextTypes);\n task.legacyContext = mergedContext;\n renderNodeDestructive(request, task, null, nextChildren, -1);\n task.legacyContext = previousContext;\n return;\n }\n }\n var prevKeyPath = task.keyPath;\n task.keyPath = keyPath;\n renderNodeDestructive(request, task, null, nextChildren, -1);\n task.keyPath = prevKeyPath;\n }\n function renderClassComponent(request, task, keyPath, Component, props) {\n var previousComponentStack = task.componentStack;\n task.componentStack = createClassComponentStack(task, Component);\n var maskedContext = getMaskedContext(Component, task.legacyContext);\n var instance = constructClassInstance(Component, props, maskedContext);\n mountClassInstance(instance, Component, props, maskedContext);\n finishClassComponent(request, task, keyPath, instance, Component, props);\n task.componentStack = previousComponentStack;\n }\n var didWarnAboutBadClass = {};\n var didWarnAboutModulePatternComponent = {};\n var didWarnAboutContextTypeOnFunctionComponent = {};\n var didWarnAboutGetDerivedStateOnFunctionComponent = {};\n var didWarnAboutReassigningProps = false;\n var didWarnAboutDefaultPropsOnFunctionComponent = {};\n var didWarnAboutGenerators = false;\n var didWarnAboutMaps = false;\n var hasWarnedAboutUsingContextAsConsumer = false; // This would typically be a function component but we still support module pattern\n // components for some reason.\n function renderIndeterminateComponent(request, task, keyPath, prevThenableState, Component, props) {\n var legacyContext;\n {\n legacyContext = getMaskedContext(Component, task.legacyContext);\n }\n var previousComponentStack = task.componentStack;\n task.componentStack = createFunctionComponentStack(task, Component);\n {\n if (Component.prototype && typeof Component.prototype.render === \"function\") {\n var componentName = getComponentNameFromType(Component) || \"Unknown\";\n if (!didWarnAboutBadClass[componentName]) {\n error(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + \"This is likely to cause errors. Change %s to extend React.Component instead.\", componentName, componentName);\n didWarnAboutBadClass[componentName] = true;\n }\n }\n }\n var value = renderWithHooks(request, task, keyPath, prevThenableState, Component, props, legacyContext);\n var hasId = checkDidRenderIdHook();\n var formStateCount = getFormStateCount();\n var formStateMatchingIndex = getFormStateMatchingIndex();\n {\n // Support for module components is deprecated and is removed behind a flag.\n // Whether or not it would crash later, we want to show a good message in DEV first.\n if (typeof value === \"object\" && value !== null && typeof value.render === \"function\" && value.$$typeof === undefined) {\n var _componentName = getComponentNameFromType(Component) || \"Unknown\";\n if (!didWarnAboutModulePatternComponent[_componentName]) {\n error(\"The <%s /> component appears to be a function component that returns a class instance. \" + \"Change %s to a class that extends React.Component instead. \" + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + \"cannot be called with `new` by React.\", _componentName, _componentName, _componentName);\n didWarnAboutModulePatternComponent[_componentName] = true;\n }\n }\n }\n if (// Eventually we'll delete this branch altogether.\n typeof value === \"object\" && value !== null && typeof value.render === \"function\" && value.$$typeof === undefined) {\n {\n var _componentName2 = getComponentNameFromType(Component) || \"Unknown\";\n if (!didWarnAboutModulePatternComponent[_componentName2]) {\n error(\"The <%s /> component appears to be a function component that returns a class instance. \" + \"Change %s to a class that extends React.Component instead. \" + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + \"cannot be called with `new` by React.\", _componentName2, _componentName2, _componentName2);\n didWarnAboutModulePatternComponent[_componentName2] = true;\n }\n }\n mountClassInstance(value, Component, props, legacyContext);\n finishClassComponent(request, task, keyPath, value, Component, props);\n } else {\n {\n validateFunctionComponentInDev(Component);\n }\n finishFunctionComponent(request, task, keyPath, value, hasId, formStateCount, formStateMatchingIndex);\n }\n task.componentStack = previousComponentStack;\n }\n function finishFunctionComponent(request, task, keyPath, children, hasId, formStateCount, formStateMatchingIndex) {\n var didEmitFormStateMarkers = false;\n if (formStateCount !== 0 && request.formState !== null) {\n // For each useFormState hook, emit a marker that indicates whether we\n // rendered using the form state passed at the root. We only emit these\n // markers if form state is passed at the root.\n var segment = task.blockedSegment;\n if (segment === null) ;\n else {\n didEmitFormStateMarkers = true;\n var target = segment.chunks;\n for(var i = 0; i < formStateCount; i++){\n if (i === formStateMatchingIndex) {\n pushFormStateMarkerIsMatching(target);\n } else {\n pushFormStateMarkerIsNotMatching(target);\n }\n }\n }\n }\n var prevKeyPath = task.keyPath;\n task.keyPath = keyPath;\n if (hasId) {\n // This component materialized an id. We treat this as its own level, with\n // a single \"child\" slot.\n var prevTreeContext = task.treeContext;\n var totalChildren = 1;\n var index = 0; // Modify the id context. Because we'll need to reset this if something\n // suspends or errors, we'll use the non-destructive render path.\n task.treeContext = pushTreeContext(prevTreeContext, totalChildren, index);\n renderNode(request, task, children, -1); // Like the other contexts, this does not need to be in a finally block\n // because renderNode takes care of unwinding the stack.\n task.treeContext = prevTreeContext;\n } else if (didEmitFormStateMarkers) {\n // If there were formState hooks, we must use the non-destructive path\n // because this component is not a pure indirection; we emitted markers\n // to the stream.\n renderNode(request, task, children, -1);\n } else {\n // We're now successfully past this task, and we haven't modified the\n // context stack. We don't have to pop back to the previous task every\n // again, so we can use the destructive recursive form.\n renderNodeDestructive(request, task, null, children, -1);\n }\n task.keyPath = prevKeyPath;\n }\n function validateFunctionComponentInDev(Component) {\n {\n if (Component) {\n if (Component.childContextTypes) {\n error(\"%s(...): childContextTypes cannot be defined on a function component.\", Component.displayName || Component.name || \"Component\");\n }\n }\n if (Component.defaultProps !== undefined) {\n var componentName = getComponentNameFromType(Component) || \"Unknown\";\n if (!didWarnAboutDefaultPropsOnFunctionComponent[componentName]) {\n error(\"%s: Support for defaultProps will be removed from function components \" + \"in a future major release. Use JavaScript default parameters instead.\", componentName);\n didWarnAboutDefaultPropsOnFunctionComponent[componentName] = true;\n }\n }\n if (typeof Component.getDerivedStateFromProps === \"function\") {\n var _componentName3 = getComponentNameFromType(Component) || \"Unknown\";\n if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]) {\n error(\"%s: Function components do not support getDerivedStateFromProps.\", _componentName3);\n didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3] = true;\n }\n }\n if (typeof Component.contextType === \"object\" && Component.contextType !== null) {\n var _componentName4 = getComponentNameFromType(Component) || \"Unknown\";\n if (!didWarnAboutContextTypeOnFunctionComponent[_componentName4]) {\n error(\"%s: Function components do not support contextType.\", _componentName4);\n didWarnAboutContextTypeOnFunctionComponent[_componentName4] = true;\n }\n }\n }\n }\n function resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n // Resolve default props. Taken from ReactElement\n var props = assign({}, baseProps);\n var defaultProps = Component.defaultProps;\n for(var propName in defaultProps){\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n return props;\n }\n return baseProps;\n }\n function renderForwardRef(request, task, keyPath, prevThenableState, type, props, ref) {\n var previousComponentStack = task.componentStack;\n task.componentStack = createFunctionComponentStack(task, type.render);\n var children = renderWithHooks(request, task, keyPath, prevThenableState, type.render, props, ref);\n var hasId = checkDidRenderIdHook();\n var formStateCount = getFormStateCount();\n var formStateMatchingIndex = getFormStateMatchingIndex();\n finishFunctionComponent(request, task, keyPath, children, hasId, formStateCount, formStateMatchingIndex);\n task.componentStack = previousComponentStack;\n }\n function renderMemo(request, task, keyPath, prevThenableState, type, props, ref) {\n var innerType = type.type;\n var resolvedProps = resolveDefaultProps(innerType, props);\n renderElement(request, task, keyPath, prevThenableState, innerType, resolvedProps, ref);\n }\n function renderContextConsumer(request, task, keyPath, context, props) {\n // The logic below for Context differs depending on PROD or DEV mode. In\n // DEV mode, we create a separate object for Context.Consumer that acts\n // like a proxy to Context. This proxy object adds unnecessary code in PROD\n // so we use the old behaviour (Context.Consumer references Context) to\n // reduce size and overhead. The separate object references context via\n // a property called \"_context\", which also gives us the ability to check\n // in DEV mode if this property exists or not and warn if it does not.\n {\n if (context._context === undefined) {\n // This may be because it's a Context (rather than a Consumer).\n // Or it may be because it's older React where they're the same thing.\n // We only want to warn if we're sure it's a new React.\n if (context !== context.Consumer) {\n if (!hasWarnedAboutUsingContextAsConsumer) {\n hasWarnedAboutUsingContextAsConsumer = true;\n error(\"Rendering <Context> directly is not supported and will be removed in \" + \"a future major release. Did you mean to render <Context.Consumer> instead?\");\n }\n }\n } else {\n context = context._context;\n }\n }\n var render = props.children;\n {\n if (typeof render !== \"function\") {\n error(\"A context consumer was rendered with multiple children, or a child \" + \"that isn't a function. A context consumer expects a single child \" + \"that is a function. If you did pass a function, make sure there \" + \"is no trailing or leading whitespace around it.\");\n }\n }\n var newValue = readContext$1(context);\n var newChildren = render(newValue);\n var prevKeyPath = task.keyPath;\n task.keyPath = keyPath;\n renderNodeDestructive(request, task, null, newChildren, -1);\n task.keyPath = prevKeyPath;\n }\n function renderContextProvider(request, task, keyPath, type, props) {\n var context = type._context;\n var value = props.value;\n var children = props.children;\n var prevSnapshot;\n {\n prevSnapshot = task.context;\n }\n var prevKeyPath = task.keyPath;\n task.context = pushProvider(context, value);\n task.keyPath = keyPath;\n renderNodeDestructive(request, task, null, children, -1);\n task.context = popProvider(context);\n task.keyPath = prevKeyPath;\n {\n if (prevSnapshot !== task.context) {\n error(\"Popping the context provider did not return back to the original snapshot. This is a bug in React.\");\n }\n }\n }\n function renderLazyComponent(request, task, keyPath, prevThenableState, lazyComponent, props, ref) {\n var previousComponentStack = task.componentStack;\n task.componentStack = createBuiltInComponentStack(task, \"Lazy\");\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n var Component = init(payload);\n var resolvedProps = resolveDefaultProps(Component, props);\n renderElement(request, task, keyPath, prevThenableState, Component, resolvedProps, ref);\n task.componentStack = previousComponentStack;\n }\n function renderOffscreen(request, task, keyPath, props) {\n var mode = props.mode;\n if (mode === \"hidden\") ;\n else {\n // A visible Offscreen boundary is treated exactly like a fragment: a\n // pure indirection.\n var prevKeyPath = task.keyPath;\n task.keyPath = keyPath;\n renderNodeDestructive(request, task, null, props.children, -1);\n task.keyPath = prevKeyPath;\n }\n }\n function renderElement(request, task, keyPath, prevThenableState, type, props, ref) {\n if (typeof type === \"function\") {\n if (shouldConstruct(type)) {\n renderClassComponent(request, task, keyPath, type, props);\n return;\n } else {\n renderIndeterminateComponent(request, task, keyPath, prevThenableState, type, props);\n return;\n }\n }\n if (typeof type === \"string\") {\n renderHostElement(request, task, keyPath, type, props);\n return;\n }\n switch(type){\n // LegacyHidden acts the same as a fragment. This only works because we\n // currently assume that every instance of LegacyHidden is accompanied by a\n // host component wrapper. In the hidden mode, the host component is given a\n // `hidden` attribute, which ensures that the initial HTML is not visible.\n // To support the use of LegacyHidden as a true fragment, without an extra\n // DOM node, we would have to hide the initial HTML in some other way.\n // TODO: Delete in LegacyHidden. It's an unstable API only used in the\n // www build. As a migration step, we could add a special prop to Offscreen\n // that simulates the old behavior (no hiding, no change to effects).\n case REACT_LEGACY_HIDDEN_TYPE:\n case REACT_DEBUG_TRACING_MODE_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_FRAGMENT_TYPE:\n {\n var prevKeyPath = task.keyPath;\n task.keyPath = keyPath;\n renderNodeDestructive(request, task, null, props.children, -1);\n task.keyPath = prevKeyPath;\n return;\n }\n case REACT_OFFSCREEN_TYPE:\n {\n renderOffscreen(request, task, keyPath, props);\n return;\n }\n case REACT_SUSPENSE_LIST_TYPE:\n {\n var preiousComponentStack = task.componentStack;\n task.componentStack = createBuiltInComponentStack(task, \"SuspenseList\"); // TODO: SuspenseList should control the boundaries.\n var _prevKeyPath3 = task.keyPath;\n task.keyPath = keyPath;\n renderNodeDestructive(request, task, null, props.children, -1);\n task.keyPath = _prevKeyPath3;\n task.componentStack = preiousComponentStack;\n return;\n }\n case REACT_SCOPE_TYPE:\n {\n throw new Error(\"ReactDOMServer does not yet support scope components.\");\n }\n case REACT_SUSPENSE_TYPE:\n {\n {\n renderSuspenseBoundary(request, task, keyPath, props);\n }\n return;\n }\n }\n if (typeof type === \"object\" && type !== null) {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n {\n renderForwardRef(request, task, keyPath, prevThenableState, type, props, ref);\n return;\n }\n case REACT_MEMO_TYPE:\n {\n renderMemo(request, task, keyPath, prevThenableState, type, props, ref);\n return;\n }\n case REACT_PROVIDER_TYPE:\n {\n renderContextProvider(request, task, keyPath, type, props);\n return;\n }\n case REACT_CONTEXT_TYPE:\n {\n renderContextConsumer(request, task, keyPath, type, props);\n return;\n }\n case REACT_LAZY_TYPE:\n {\n renderLazyComponent(request, task, keyPath, prevThenableState, type, props);\n return;\n }\n }\n }\n var info = \"\";\n {\n if (type === undefined || typeof type === \"object\" && type !== null && Object.keys(type).length === 0) {\n info += \" You likely forgot to export your component from the file \" + \"it's defined in, or you might have mixed up default and \" + \"named imports.\";\n }\n }\n throw new Error(\"Element type is invalid: expected a string (for built-in \" + \"components) or a class/function (for composite components) \" + (\"but got: \" + (type == null ? type : typeof type) + \".\" + info));\n }\n function resumeNode(request, task, segmentId, node, childIndex) {\n var prevReplay = task.replay;\n var blockedBoundary = task.blockedBoundary;\n var resumedSegment = createPendingSegment(request, 0, null, task.formatContext, false, false);\n resumedSegment.id = segmentId;\n resumedSegment.parentFlushed = true;\n try {\n // Convert the current ReplayTask to a RenderTask.\n var renderTask = task;\n renderTask.replay = null;\n renderTask.blockedSegment = resumedSegment;\n renderNode(request, task, node, childIndex);\n resumedSegment.status = COMPLETED;\n if (blockedBoundary === null) {\n request.completedRootSegment = resumedSegment;\n } else {\n queueCompletedSegment(blockedBoundary, resumedSegment);\n if (blockedBoundary.parentFlushed) {\n request.partialBoundaries.push(blockedBoundary);\n }\n }\n } finally{\n // Restore to a ReplayTask.\n task.replay = prevReplay;\n task.blockedSegment = null;\n }\n }\n function replayElement(request, task, keyPath, prevThenableState, name, keyOrIndex, childIndex, type, props, ref, replay) {\n // We're replaying. Find the path to follow.\n var replayNodes = replay.nodes;\n for(var i = 0; i < replayNodes.length; i++){\n // Flow doesn't support refinement on tuples so we do it manually here.\n var node = replayNodes[i];\n if (keyOrIndex !== node[1]) {\n continue;\n }\n if (node.length === 4) {\n // Matched a replayable path.\n // Let's double check that the component name matches as a precaution.\n if (name !== null && name !== node[0]) {\n throw new Error(\"Expected the resume to render <\" + node[0] + \"> in this slot but instead it rendered <\" + name + \">. \" + \"The tree doesn't match so React will fallback to client rendering.\");\n }\n var childNodes = node[2];\n var childSlots = node[3];\n var currentNode = task.node;\n task.replay = {\n nodes: childNodes,\n slots: childSlots,\n pendingTasks: 1\n };\n try {\n renderElement(request, task, keyPath, prevThenableState, type, props, ref);\n if (task.replay.pendingTasks === 1 && task.replay.nodes.length > 0 // TODO check remaining slots\n ) {\n throw new Error(\"Couldn't find all resumable slots by key/index during replaying. \" + \"The tree doesn't match so React will fallback to client rendering.\");\n }\n task.replay.pendingTasks--;\n } catch (x) {\n if (typeof x === \"object\" && x !== null && (x === SuspenseException || typeof x.then === \"function\")) {\n // Suspend\n if (task.node === currentNode) {\n // This same element suspended so we need to pop the replay we just added.\n task.replay = replay;\n }\n throw x;\n }\n task.replay.pendingTasks--; // Unlike regular render, we don't terminate the siblings if we error\n // during a replay. That's because this component didn't actually error\n // in the original prerender. What's unable to complete is the child\n // replay nodes which might be Suspense boundaries which are able to\n // absorb the error and we can still continue with siblings.\n var thrownInfo = getThrownInfo(request, task.componentStack);\n erroredReplay(request, task.blockedBoundary, x, thrownInfo, childNodes, childSlots);\n }\n task.replay = replay;\n } else {\n // Let's double check that the component type matches.\n if (type !== REACT_SUSPENSE_TYPE) {\n var expectedType = \"Suspense\";\n throw new Error(\"Expected the resume to render <\" + expectedType + \"> in this slot but instead it rendered <\" + (getComponentNameFromType(type) || \"Unknown\") + \">. \" + \"The tree doesn't match so React will fallback to client rendering.\");\n } // Matched a replayable path.\n replaySuspenseBoundary(request, task, keyPath, props, node[5], node[2], node[3], node[4] === null ? [] : node[4][2], node[4] === null ? null : node[4][3]);\n } // We finished rendering this node, so now we can consume this\n // slot. This must happen after in case we rerender this task.\n replayNodes.splice(i, 1);\n return;\n } // We didn't find any matching nodes. We assume that this element was already\n // rendered in the prelude and skip it.\n } // $FlowFixMe[missing-local-annot]\n function validateIterable(iterable, iteratorFn) {\n {\n // We don't support rendering Generators because it's a mutation.\n // See https://github.com/facebook/react/issues/12995\n if (typeof Symbol === \"function\" && iterable[Symbol.toStringTag] === \"Generator\") {\n if (!didWarnAboutGenerators) {\n error(\"Using Generators as children is unsupported and will likely yield \" + \"unexpected results because enumerating a generator mutates it. \" + \"You may convert it to an array with `Array.from()` or the \" + \"`[...spread]` operator before rendering. Keep in mind \" + \"you might need to polyfill these features for older browsers.\");\n }\n didWarnAboutGenerators = true;\n } // Warn about using Maps as children\n if (iterable.entries === iteratorFn) {\n if (!didWarnAboutMaps) {\n error(\"Using Maps as children is not supported. \" + \"Use an array of keyed ReactElements instead.\");\n }\n didWarnAboutMaps = true;\n }\n }\n } // This function by it self renders a node and consumes the task by mutating it\n // to update the current execution state.\n function renderNodeDestructive(request, task, // always null, except when called by retryTask.\n prevThenableState, node, childIndex) {\n if (task.replay !== null && typeof task.replay.slots === \"number\") {\n // TODO: Figure out a cheaper place than this hot path to do this check.\n var resumeSegmentID = task.replay.slots;\n resumeNode(request, task, resumeSegmentID, node, childIndex);\n return;\n } // Stash the node we're working on. We'll pick up from this task in case\n // something suspends.\n task.node = node;\n task.childIndex = childIndex; // Handle object types\n if (typeof node === \"object\" && node !== null) {\n switch(node.$$typeof){\n case REACT_ELEMENT_TYPE:\n {\n var element = node;\n var type = element.type;\n var key = element.key;\n var props = element.props;\n var ref = element.ref;\n var name = getComponentNameFromType(type);\n var keyOrIndex = key == null ? childIndex === -1 ? 0 : childIndex : key;\n var keyPath = [\n task.keyPath,\n name,\n keyOrIndex\n ];\n if (task.replay !== null) {\n replayElement(request, task, keyPath, prevThenableState, name, keyOrIndex, childIndex, type, props, ref, task.replay); // No matches found for this node. We assume it's already emitted in the\n // prelude and skip it during the replay.\n } else {\n // We're doing a plain render.\n renderElement(request, task, keyPath, prevThenableState, type, props, ref);\n }\n return;\n }\n case REACT_PORTAL_TYPE:\n throw new Error(\"Portals are not currently supported by the server renderer. \" + \"Render them conditionally so that they only appear on the client render.\");\n case REACT_LAZY_TYPE:\n {\n var previousComponentStack = task.componentStack;\n task.componentStack = createBuiltInComponentStack(task, \"Lazy\");\n var lazyNode = node;\n var payload = lazyNode._payload;\n var init = lazyNode._init;\n var resolvedNode = init(payload); // We restore the stack before rendering the resolved node because once the Lazy\n // has resolved any future errors\n task.componentStack = previousComponentStack; // Now we render the resolved node\n renderNodeDestructive(request, task, null, resolvedNode, childIndex);\n return;\n }\n }\n if (isArray(node)) {\n renderChildrenArray(request, task, node, childIndex);\n return;\n }\n var iteratorFn = getIteratorFn(node);\n if (iteratorFn) {\n {\n validateIterable(node, iteratorFn);\n }\n var iterator = iteratorFn.call(node);\n if (iterator) {\n // We need to know how many total children are in this set, so that we\n // can allocate enough id slots to acommodate them. So we must exhaust\n // the iterator before we start recursively rendering the children.\n // TODO: This is not great but I think it's inherent to the id\n // generation algorithm.\n var step = iterator.next(); // If there are not entries, we need to push an empty so we start by checking that.\n if (!step.done) {\n var children = [];\n do {\n children.push(step.value);\n step = iterator.next();\n }while (!step.done);\n renderChildrenArray(request, task, children, childIndex);\n return;\n }\n return;\n }\n } // Usables are a valid React node type. When React encounters a Usable in\n // a child position, it unwraps it using the same algorithm as `use`. For\n // example, for promises, React will throw an exception to unwind the\n // stack, then replay the component once the promise resolves.\n //\n // A difference from `use` is that React will keep unwrapping the value\n // until it reaches a non-Usable type.\n //\n // e.g. Usable<Usable<Usable<T>>> should resolve to T\n var maybeUsable = node;\n if (typeof maybeUsable.then === \"function\") {\n var thenable = maybeUsable;\n return renderNodeDestructive(request, task, null, unwrapThenable(thenable), childIndex);\n }\n if (maybeUsable.$$typeof === REACT_CONTEXT_TYPE || maybeUsable.$$typeof === REACT_SERVER_CONTEXT_TYPE) {\n var context = maybeUsable;\n return renderNodeDestructive(request, task, null, readContext$1(context), childIndex);\n } // $FlowFixMe[method-unbinding]\n var childString = Object.prototype.toString.call(node);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childString === \"[object Object]\" ? \"object with keys {\" + Object.keys(node).join(\", \") + \"}\" : childString) + \"). \" + \"If you meant to render a collection of children, use an array \" + \"instead.\");\n }\n if (typeof node === \"string\") {\n var segment = task.blockedSegment;\n if (segment === null) ;\n else {\n segment.lastPushedText = pushTextInstance(segment.chunks, node, request.renderState, segment.lastPushedText);\n }\n return;\n }\n if (typeof node === \"number\") {\n var _segment = task.blockedSegment;\n if (_segment === null) ;\n else {\n _segment.lastPushedText = pushTextInstance(_segment.chunks, \"\" + node, request.renderState, _segment.lastPushedText);\n }\n return;\n }\n {\n if (typeof node === \"function\") {\n error(\"Functions are not valid as a React child. This may happen if \" + \"you return a Component instead of <Component /> from render. \" + \"Or maybe you meant to call this function rather than return it.\");\n }\n }\n }\n function replayFragment(request, task, children, childIndex) {\n // If we're supposed follow this array, we'd expect to see a ReplayNode matching\n // this fragment.\n var replay = task.replay;\n var replayNodes = replay.nodes;\n for(var j = 0; j < replayNodes.length; j++){\n var node = replayNodes[j];\n if (node[1] !== childIndex) {\n continue;\n } // Matched a replayable path.\n var childNodes = node[2];\n var childSlots = node[3];\n task.replay = {\n nodes: childNodes,\n slots: childSlots,\n pendingTasks: 1\n };\n try {\n renderChildrenArray(request, task, children, -1);\n if (task.replay.pendingTasks === 1 && task.replay.nodes.length > 0) {\n throw new Error(\"Couldn't find all resumable slots by key/index during replaying. \" + \"The tree doesn't match so React will fallback to client rendering.\");\n }\n task.replay.pendingTasks--;\n } catch (x) {\n if (typeof x === \"object\" && x !== null && (x === SuspenseException || typeof x.then === \"function\")) {\n // Suspend\n throw x;\n }\n task.replay.pendingTasks--; // Unlike regular render, we don't terminate the siblings if we error\n // during a replay. That's because this component didn't actually error\n // in the original prerender. What's unable to complete is the child\n // replay nodes which might be Suspense boundaries which are able to\n // absorb the error and we can still continue with siblings.\n // This is an error, stash the component stack if it is null.\n var thrownInfo = getThrownInfo(request, task.componentStack);\n erroredReplay(request, task.blockedBoundary, x, thrownInfo, childNodes, childSlots);\n }\n task.replay = replay; // We finished rendering this node, so now we can consume this\n // slot. This must happen after in case we rerender this task.\n replayNodes.splice(j, 1);\n break;\n }\n }\n function renderChildrenArray(request, task, children, childIndex) {\n var prevKeyPath = task.keyPath;\n if (childIndex !== -1) {\n task.keyPath = [\n task.keyPath,\n \"Fragment\",\n childIndex\n ];\n if (task.replay !== null) {\n replayFragment(request, task, children, childIndex);\n task.keyPath = prevKeyPath;\n return;\n }\n }\n var prevTreeContext = task.treeContext;\n var totalChildren = children.length;\n if (task.replay !== null) {\n // Replay\n // First we need to check if we have any resume slots at this level.\n var resumeSlots = task.replay.slots;\n if (resumeSlots !== null && typeof resumeSlots === \"object\") {\n for(var i = 0; i < totalChildren; i++){\n var node = children[i];\n task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i); // We need to use the non-destructive form so that we can safely pop back\n // up and render the sibling if something suspends.\n var resumeSegmentID = resumeSlots[i]; // TODO: If this errors we should still continue with the next sibling.\n if (typeof resumeSegmentID === \"number\") {\n resumeNode(request, task, resumeSegmentID, node, i); // We finished rendering this node, so now we can consume this\n // slot. This must happen after in case we rerender this task.\n delete resumeSlots[i];\n } else {\n renderNode(request, task, node, i);\n }\n }\n task.treeContext = prevTreeContext;\n task.keyPath = prevKeyPath;\n return;\n }\n }\n for(var _i = 0; _i < totalChildren; _i++){\n var _node = children[_i];\n task.treeContext = pushTreeContext(prevTreeContext, totalChildren, _i); // We need to use the non-destructive form so that we can safely pop back\n // up and render the sibling if something suspends.\n renderNode(request, task, _node, _i);\n } // Because this context is always set right before rendering every child, we\n // only need to reset it to the previous value at the very end.\n task.treeContext = prevTreeContext;\n task.keyPath = prevKeyPath;\n }\n // resume it.\n function untrackBoundary(request, boundary) {\n var trackedPostpones = request.trackedPostpones;\n if (trackedPostpones === null) {\n return;\n }\n var boundaryKeyPath = boundary.trackedContentKeyPath;\n if (boundaryKeyPath === null) {\n return;\n }\n var boundaryNode = trackedPostpones.workingMap.get(boundaryKeyPath);\n if (boundaryNode === undefined) {\n return;\n } // Downgrade to plain ReplayNode since we won't replay through it.\n // $FlowFixMe[cannot-write]: We intentionally downgrade this to the other tuple.\n boundaryNode.length = 4; // Remove any resumable slots.\n boundaryNode[2] = [];\n boundaryNode[3] = null; // TODO: We should really just remove the boundary from all parent paths too so\n // we don't replay the path to it.\n }\n function spawnNewSuspendedReplayTask(request, task, thenableState, x) {\n var newTask = createReplayTask(request, thenableState, task.replay, task.node, task.childIndex, task.blockedBoundary, task.abortSet, task.keyPath, task.formatContext, task.legacyContext, task.context, task.treeContext, // which will add it back onto the stack.\n task.componentStack !== null ? task.componentStack.parent : null);\n var ping = newTask.ping;\n x.then(ping, ping);\n }\n function spawnNewSuspendedRenderTask(request, task, thenableState, x) {\n // Something suspended, we'll need to create a new segment and resolve it later.\n var segment = task.blockedSegment;\n var insertionIndex = segment.chunks.length;\n var newSegment = createPendingSegment(request, insertionIndex, null, task.formatContext, segment.lastPushedText, true);\n segment.children.push(newSegment); // Reset lastPushedText for current Segment since the new Segment \"consumed\" it\n segment.lastPushedText = false;\n var newTask = createRenderTask(request, thenableState, task.node, task.childIndex, task.blockedBoundary, newSegment, task.abortSet, task.keyPath, task.formatContext, task.legacyContext, task.context, task.treeContext, // which will add it back onto the stack.\n task.componentStack !== null ? task.componentStack.parent : null);\n var ping = newTask.ping;\n x.then(ping, ping);\n } // This is a non-destructive form of rendering a node. If it suspends it spawns\n // a new task and restores the context of this task to what it was before.\n function renderNode(request, task, node, childIndex) {\n // Snapshot the current context in case something throws to interrupt the\n // process.\n var previousFormatContext = task.formatContext;\n var previousLegacyContext = task.legacyContext;\n var previousContext = task.context;\n var previousKeyPath = task.keyPath;\n var previousTreeContext = task.treeContext;\n var previousComponentStack = task.componentStack;\n var x; // Store how much we've pushed at this point so we can reset it in case something\n // suspended partially through writing something.\n var segment = task.blockedSegment;\n if (segment === null) {\n // Replay\n try {\n return renderNodeDestructive(request, task, null, node, childIndex);\n } catch (thrownValue) {\n resetHooksState();\n x = thrownValue === SuspenseException ? // reasons, the rest of the Suspense implementation expects the thrown\n // value to be a thenable, because before `use` existed that was the\n // (unstable) API for suspending. This implementation detail can change\n // later, once we deprecate the old API in favor of `use`.\n getSuspendedThenable() : thrownValue;\n if (typeof x === \"object\" && x !== null) {\n // $FlowFixMe[method-unbinding]\n if (typeof x.then === \"function\") {\n var wakeable = x;\n var thenableState = getThenableStateAfterSuspending();\n spawnNewSuspendedReplayTask(request, task, thenableState, wakeable); // Restore the context. We assume that this will be restored by the inner\n // functions in case nothing throws so we don't use \"finally\" here.\n task.formatContext = previousFormatContext;\n task.legacyContext = previousLegacyContext;\n task.context = previousContext;\n task.keyPath = previousKeyPath;\n task.treeContext = previousTreeContext;\n task.componentStack = previousComponentStack; // Restore all active ReactContexts to what they were before.\n switchContext(previousContext);\n return;\n }\n } // TODO: Abort any undiscovered Suspense boundaries in the ReplayNode.\n }\n } else {\n // Render\n var childrenLength = segment.children.length;\n var chunkLength = segment.chunks.length;\n try {\n return renderNodeDestructive(request, task, null, node, childIndex);\n } catch (thrownValue) {\n resetHooksState(); // Reset the write pointers to where we started.\n segment.children.length = childrenLength;\n segment.chunks.length = chunkLength;\n x = thrownValue === SuspenseException ? // reasons, the rest of the Suspense implementation expects the thrown\n // value to be a thenable, because before `use` existed that was the\n // (unstable) API for suspending. This implementation detail can change\n // later, once we deprecate the old API in favor of `use`.\n getSuspendedThenable() : thrownValue;\n if (typeof x === \"object\" && x !== null) {\n // $FlowFixMe[method-unbinding]\n if (typeof x.then === \"function\") {\n var _wakeable = x;\n var _thenableState = getThenableStateAfterSuspending();\n spawnNewSuspendedRenderTask(request, task, _thenableState, _wakeable); // Restore the context. We assume that this will be restored by the inner\n // functions in case nothing throws so we don't use \"finally\" here.\n task.formatContext = previousFormatContext;\n task.legacyContext = previousLegacyContext;\n task.context = previousContext;\n task.keyPath = previousKeyPath;\n task.treeContext = previousTreeContext;\n task.componentStack = previousComponentStack; // Restore all active ReactContexts to what they were before.\n switchContext(previousContext);\n return;\n }\n }\n }\n } // Restore the context. We assume that this will be restored by the inner\n // functions in case nothing throws so we don't use \"finally\" here.\n task.formatContext = previousFormatContext;\n task.legacyContext = previousLegacyContext;\n task.context = previousContext;\n task.keyPath = previousKeyPath;\n task.treeContext = previousTreeContext; // We intentionally do not restore the component stack on the error pathway\n // Whatever handles the error needs to use this stack which is the location of the\n // error. We must restore the stack wherever we handle this\n // Restore all active ReactContexts to what they were before.\n switchContext(previousContext);\n throw x;\n }\n function erroredReplay(request, boundary, error, errorInfo, replayNodes, resumeSlots) {\n // Erroring during a replay doesn't actually cause an error by itself because\n // that component has already rendered. What causes the error is the resumable\n // points that we did not yet finish which will be below the point of the reset.\n // For example, if we're replaying a path to a Suspense boundary that is not done\n // that doesn't error the parent Suspense boundary.\n // This might be a bit strange that the error in a parent gets thrown at a child.\n // We log it only once and reuse the digest.\n var errorDigest;\n {\n errorDigest = logRecoverableError(request, error, errorInfo);\n }\n abortRemainingReplayNodes(request, boundary, replayNodes, resumeSlots, error, errorDigest, errorInfo);\n }\n function erroredTask(request, boundary, error, errorInfo) {\n // Report the error to a global handler.\n var errorDigest;\n {\n errorDigest = logRecoverableError(request, error, errorInfo);\n }\n if (boundary === null) {\n fatalError(request, error);\n } else {\n boundary.pendingTasks--;\n if (boundary.status !== CLIENT_RENDERED) {\n boundary.status = CLIENT_RENDERED;\n encodeErrorForBoundary(boundary, errorDigest, error, errorInfo);\n untrackBoundary(request, boundary); // Regardless of what happens next, this boundary won't be displayed,\n // so we can flush it, if the parent already flushed.\n if (boundary.parentFlushed) {\n // We don't have a preference where in the queue this goes since it's likely\n // to error on the client anyway. However, intentionally client-rendered\n // boundaries should be flushed earlier so that they can start on the client.\n // We reuse the same queue for errors.\n request.clientRenderedBoundaries.push(boundary);\n }\n }\n }\n request.allPendingTasks--;\n if (request.allPendingTasks === 0) {\n completeAll(request);\n }\n }\n function abortTaskSoft(task) {\n // This aborts task without aborting the parent boundary that it blocks.\n // It's used for when we didn't need this task to complete the tree.\n // If task was needed, then it should use abortTask instead.\n var request = this;\n var boundary = task.blockedBoundary;\n var segment = task.blockedSegment;\n if (segment !== null) {\n segment.status = ABORTED;\n finishedTask(request, boundary, segment);\n }\n }\n function abortRemainingSuspenseBoundary(request, rootSegmentID, error, errorDigest, errorInfo) {\n var resumedBoundary = createSuspenseBoundary(request, new Set());\n resumedBoundary.parentFlushed = true; // We restore the same id of this boundary as was used during prerender.\n resumedBoundary.rootSegmentID = rootSegmentID;\n resumedBoundary.status = CLIENT_RENDERED;\n var errorMessage = error;\n {\n var errorPrefix = \"The server did not finish this Suspense boundary: \";\n if (error && typeof error.message === \"string\") {\n errorMessage = errorPrefix + error.message;\n } else {\n // eslint-disable-next-line react-internal/safe-string-coercion\n errorMessage = errorPrefix + String(error);\n }\n }\n encodeErrorForBoundary(resumedBoundary, errorDigest, errorMessage, errorInfo);\n if (resumedBoundary.parentFlushed) {\n request.clientRenderedBoundaries.push(resumedBoundary);\n }\n }\n function abortRemainingReplayNodes(request, boundary, nodes, slots, error, errorDigest, errorInfo) {\n for(var i = 0; i < nodes.length; i++){\n var node = nodes[i];\n if (node.length === 4) {\n abortRemainingReplayNodes(request, boundary, node[2], node[3], error, errorDigest, errorInfo);\n } else {\n var boundaryNode = node;\n var rootSegmentID = boundaryNode[5];\n abortRemainingSuspenseBoundary(request, rootSegmentID, error, errorDigest, errorInfo);\n }\n } // Empty the set, since we've cleared it now.\n nodes.length = 0;\n if (slots !== null) {\n // We had something still to resume in the parent boundary. We must trigger\n // the error on the parent boundary since it's not able to complete.\n if (boundary === null) {\n throw new Error(\"We should not have any resumable nodes in the shell. \" + \"This is a bug in React.\");\n } else if (boundary.status !== CLIENT_RENDERED) {\n boundary.status = CLIENT_RENDERED;\n encodeErrorForBoundary(boundary, errorDigest, error, errorInfo);\n if (boundary.parentFlushed) {\n request.clientRenderedBoundaries.push(boundary);\n }\n } // Empty the set\n if (typeof slots === \"object\") {\n for(var index in slots){\n delete slots[index];\n }\n }\n }\n }\n function abortTask(task, request, error) {\n // This aborts the task and aborts the parent that it blocks, putting it into\n // client rendered mode.\n var boundary = task.blockedBoundary;\n var segment = task.blockedSegment;\n if (segment !== null) {\n segment.status = ABORTED;\n }\n if (boundary === null) {\n var errorInfo = {};\n if (request.status !== CLOSING && request.status !== CLOSED) {\n var replay = task.replay;\n if (replay === null) {\n // We didn't complete the root so we have nothing to show. We can close\n // the request;\n logRecoverableError(request, error, errorInfo);\n fatalError(request, error);\n return;\n } else {\n // If the shell aborts during a replay, that's not a fatal error. Instead\n // we should be able to recover by client rendering all the root boundaries in\n // the ReplaySet.\n replay.pendingTasks--;\n if (replay.pendingTasks === 0 && replay.nodes.length > 0) {\n var errorDigest = logRecoverableError(request, error, errorInfo);\n abortRemainingReplayNodes(request, null, replay.nodes, replay.slots, error, errorDigest, errorInfo);\n }\n request.pendingRootTasks--;\n if (request.pendingRootTasks === 0) {\n completeShell(request);\n }\n }\n }\n } else {\n boundary.pendingTasks--;\n if (boundary.status !== CLIENT_RENDERED) {\n boundary.status = CLIENT_RENDERED; // We construct an errorInfo from the boundary's componentStack so the error in dev will indicate which\n // boundary the message is referring to\n var _errorInfo = getThrownInfo(request, task.componentStack);\n var _errorDigest = logRecoverableError(request, error, _errorInfo);\n var errorMessage = error;\n {\n var errorPrefix = \"The server did not finish this Suspense boundary: \";\n if (error && typeof error.message === \"string\") {\n errorMessage = errorPrefix + error.message;\n } else {\n // eslint-disable-next-line react-internal/safe-string-coercion\n errorMessage = errorPrefix + String(error);\n }\n }\n encodeErrorForBoundary(boundary, _errorDigest, errorMessage, _errorInfo);\n untrackBoundary(request, boundary);\n if (boundary.parentFlushed) {\n request.clientRenderedBoundaries.push(boundary);\n }\n } // If this boundary was still pending then we haven't already cancelled its fallbacks.\n // We'll need to abort the fallbacks, which will also error that parent boundary.\n boundary.fallbackAbortableTasks.forEach(function(fallbackTask) {\n return abortTask(fallbackTask, request, error);\n });\n boundary.fallbackAbortableTasks.clear();\n }\n request.allPendingTasks--;\n if (request.allPendingTasks === 0) {\n completeAll(request);\n }\n }\n function safelyEmitEarlyPreloads(request, shellComplete) {\n try {\n emitEarlyPreloads(request.renderState, request.resumableState, shellComplete);\n } catch (error) {\n // We assume preloads are optimistic and thus non-fatal if errored.\n var errorInfo = {};\n logRecoverableError(request, error, errorInfo);\n }\n } // I extracted this function out because we want to ensure we consistently emit preloads before\n // transitioning to the next request stage and this transition can happen in multiple places in this\n // implementation.\n function completeShell(request) {\n if (request.trackedPostpones === null) {\n // We only emit early preloads on shell completion for renders. For prerenders\n // we wait for the entire Request to finish because we are not responding to a\n // live request and can wait for as much data as possible.\n // we should only be calling completeShell when the shell is complete so we\n // just use a literal here\n var shellComplete = true;\n safelyEmitEarlyPreloads(request, shellComplete);\n } // We have completed the shell so the shell can't error anymore.\n request.onShellError = noop;\n var onShellReady = request.onShellReady;\n onShellReady();\n } // I extracted this function out because we want to ensure we consistently emit preloads before\n // transitioning to the next request stage and this transition can happen in multiple places in this\n // implementation.\n function completeAll(request) {\n // During a render the shell must be complete if the entire request is finished\n // however during a Prerender it is possible that the shell is incomplete because\n // it postponed. We cannot use rootPendingTasks in the prerender case because\n // those hit zero even when the shell postpones. Instead we look at the completedRootSegment\n var shellComplete = request.trackedPostpones === null ? true : request.completedRootSegment === null || request.completedRootSegment.status !== POSTPONED;\n safelyEmitEarlyPreloads(request, shellComplete);\n var onAllReady = request.onAllReady;\n onAllReady();\n }\n function queueCompletedSegment(boundary, segment) {\n if (segment.chunks.length === 0 && segment.children.length === 1 && segment.children[0].boundary === null && segment.children[0].id === -1) {\n // This is an empty segment. There's nothing to write, so we can instead transfer the ID\n // to the child. That way any existing references point to the child.\n var childSegment = segment.children[0];\n childSegment.id = segment.id;\n childSegment.parentFlushed = true;\n if (childSegment.status === COMPLETED) {\n queueCompletedSegment(boundary, childSegment);\n }\n } else {\n var completedSegments = boundary.completedSegments;\n completedSegments.push(segment);\n }\n }\n function finishedTask(request, boundary, segment) {\n if (boundary === null) {\n if (segment !== null && segment.parentFlushed) {\n if (request.completedRootSegment !== null) {\n throw new Error(\"There can only be one root segment. This is a bug in React.\");\n }\n request.completedRootSegment = segment;\n }\n request.pendingRootTasks--;\n if (request.pendingRootTasks === 0) {\n completeShell(request);\n }\n } else {\n boundary.pendingTasks--;\n if (boundary.status === CLIENT_RENDERED) ;\n else if (boundary.pendingTasks === 0) {\n if (boundary.status === PENDING) {\n boundary.status = COMPLETED;\n } // This must have been the last segment we were waiting on. This boundary is now complete.\n if (segment !== null && segment.parentFlushed) {\n // Our parent segment already flushed, so we need to schedule this segment to be emitted.\n // If it is a segment that was aborted, we'll write other content instead so we don't need\n // to emit it.\n if (segment.status === COMPLETED) {\n queueCompletedSegment(boundary, segment);\n }\n }\n if (boundary.parentFlushed) {\n // The segment might be part of a segment that didn't flush yet, but if the boundary's\n // parent flushed, we need to schedule the boundary to be emitted.\n request.completedBoundaries.push(boundary);\n } // We can now cancel any pending task on the fallback since we won't need to show it anymore.\n // This needs to happen after we read the parentFlushed flags because aborting can finish\n // work which can trigger user code, which can start flushing, which can change those flags.\n // If the boundary was POSTPONED, we still need to finish the fallback first.\n if (boundary.status === COMPLETED) {\n boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request);\n boundary.fallbackAbortableTasks.clear();\n }\n } else {\n if (segment !== null && segment.parentFlushed) {\n // Our parent already flushed, so we need to schedule this segment to be emitted.\n // If it is a segment that was aborted, we'll write other content instead so we don't need\n // to emit it.\n if (segment.status === COMPLETED) {\n queueCompletedSegment(boundary, segment);\n var completedSegments = boundary.completedSegments;\n if (completedSegments.length === 1) {\n // This is the first time since we last flushed that we completed anything.\n // We can schedule this boundary to emit its partially completed segments early\n // in case the parent has already been flushed.\n if (boundary.parentFlushed) {\n request.partialBoundaries.push(boundary);\n }\n }\n }\n }\n }\n }\n request.allPendingTasks--;\n if (request.allPendingTasks === 0) {\n completeAll(request);\n }\n }\n function retryTask(request, task) {\n {\n var blockedBoundary = task.blockedBoundary;\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, blockedBoundary ? blockedBoundary.resources : null);\n }\n var segment = task.blockedSegment;\n if (segment === null) {\n retryReplayTask(request, task);\n } else {\n retryRenderTask(request, task, segment);\n }\n }\n function retryRenderTask(request, task, segment) {\n if (segment.status !== PENDING) {\n // We completed this by other means before we had a chance to retry it.\n return;\n } // We restore the context to what it was when we suspended.\n // We don't restore it after we leave because it's likely that we'll end up\n // needing a very similar context soon again.\n switchContext(task.context);\n var prevTaskInDEV = null;\n {\n prevTaskInDEV = currentTaskInDEV;\n currentTaskInDEV = task;\n }\n var childrenLength = segment.children.length;\n var chunkLength = segment.chunks.length;\n try {\n // We call the destructive form that mutates this task. That way if something\n // suspends again, we can reuse the same task instead of spawning a new one.\n // Reset the task's thenable state before continuing, so that if a later\n // component suspends we can reuse the same task object. If the same\n // component suspends again, the thenable state will be restored.\n var prevThenableState = task.thenableState;\n task.thenableState = null;\n renderNodeDestructive(request, task, prevThenableState, task.node, task.childIndex);\n pushSegmentFinale(segment.chunks, request.renderState, segment.lastPushedText, segment.textEmbedded);\n task.abortSet.delete(task);\n segment.status = COMPLETED;\n finishedTask(request, task.blockedBoundary, segment);\n } catch (thrownValue) {\n resetHooksState(); // Reset the write pointers to where we started.\n segment.children.length = childrenLength;\n segment.chunks.length = chunkLength;\n var x = thrownValue === SuspenseException ? // reasons, the rest of the Suspense implementation expects the thrown\n // value to be a thenable, because before `use` existed that was the\n // (unstable) API for suspending. This implementation detail can change\n // later, once we deprecate the old API in favor of `use`.\n getSuspendedThenable() : thrownValue;\n if (typeof x === \"object\" && x !== null) {\n // $FlowFixMe[method-unbinding]\n if (typeof x.then === \"function\") {\n // Something suspended again, let's pick it back up later.\n var ping = task.ping;\n x.then(ping, ping);\n task.thenableState = getThenableStateAfterSuspending();\n return;\n }\n }\n var errorInfo = getThrownInfo(request, task.componentStack);\n task.abortSet.delete(task);\n segment.status = ERRORED;\n erroredTask(request, task.blockedBoundary, x, errorInfo);\n return;\n } finally{\n {\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, null);\n }\n {\n currentTaskInDEV = prevTaskInDEV;\n }\n }\n }\n function retryReplayTask(request, task) {\n if (task.replay.pendingTasks === 0) {\n // There are no pending tasks working on this set, so we must have aborted.\n return;\n } // We restore the context to what it was when we suspended.\n // We don't restore it after we leave because it's likely that we'll end up\n // needing a very similar context soon again.\n switchContext(task.context);\n var prevTaskInDEV = null;\n {\n prevTaskInDEV = currentTaskInDEV;\n currentTaskInDEV = task;\n }\n try {\n // We call the destructive form that mutates this task. That way if something\n // suspends again, we can reuse the same task instead of spawning a new one.\n // Reset the task's thenable state before continuing, so that if a later\n // component suspends we can reuse the same task object. If the same\n // component suspends again, the thenable state will be restored.\n var prevThenableState = task.thenableState;\n task.thenableState = null;\n renderNodeDestructive(request, task, prevThenableState, task.node, task.childIndex);\n if (task.replay.pendingTasks === 1 && task.replay.nodes.length > 0) {\n throw new Error(\"Couldn't find all resumable slots by key/index during replaying. \" + \"The tree doesn't match so React will fallback to client rendering.\");\n }\n task.replay.pendingTasks--;\n task.abortSet.delete(task);\n finishedTask(request, task.blockedBoundary, null);\n } catch (thrownValue) {\n resetHooksState();\n var x = thrownValue === SuspenseException ? // reasons, the rest of the Suspense implementation expects the thrown\n // value to be a thenable, because before `use` existed that was the\n // (unstable) API for suspending. This implementation detail can change\n // later, once we deprecate the old API in favor of `use`.\n getSuspendedThenable() : thrownValue;\n if (typeof x === \"object\" && x !== null) {\n // $FlowFixMe[method-unbinding]\n if (typeof x.then === \"function\") {\n // Something suspended again, let's pick it back up later.\n var ping = task.ping;\n x.then(ping, ping);\n task.thenableState = getThenableStateAfterSuspending();\n return;\n }\n }\n task.replay.pendingTasks--;\n task.abortSet.delete(task);\n var errorInfo = getThrownInfo(request, task.componentStack);\n erroredReplay(request, task.blockedBoundary, x, errorInfo, task.replay.nodes, task.replay.slots);\n request.pendingRootTasks--;\n if (request.pendingRootTasks === 0) {\n completeShell(request);\n }\n request.allPendingTasks--;\n if (request.allPendingTasks === 0) {\n completeAll(request);\n }\n return;\n } finally{\n {\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, null);\n }\n {\n currentTaskInDEV = prevTaskInDEV;\n }\n }\n }\n function performWork(request) {\n if (request.status === CLOSED) {\n return;\n }\n var prevContext = getActiveContext();\n var prevDispatcher = ReactCurrentDispatcher.current;\n ReactCurrentDispatcher.current = HooksDispatcher;\n var prevCacheDispatcher;\n {\n prevCacheDispatcher = ReactCurrentCache.current;\n ReactCurrentCache.current = DefaultCacheDispatcher;\n }\n var prevRequest = currentRequest;\n currentRequest = request;\n var prevGetCurrentStackImpl;\n {\n prevGetCurrentStackImpl = ReactDebugCurrentFrame.getCurrentStack;\n ReactDebugCurrentFrame.getCurrentStack = getCurrentStackInDEV;\n }\n var prevResumableState = currentResumableState;\n setCurrentResumableState(request.resumableState);\n try {\n var pingedTasks = request.pingedTasks;\n var i;\n for(i = 0; i < pingedTasks.length; i++){\n var task = pingedTasks[i];\n retryTask(request, task);\n }\n pingedTasks.splice(0, i);\n if (request.destination !== null) {\n flushCompletedQueues(request, request.destination);\n }\n } catch (error) {\n var errorInfo = {};\n logRecoverableError(request, error, errorInfo);\n fatalError(request, error);\n } finally{\n setCurrentResumableState(prevResumableState);\n ReactCurrentDispatcher.current = prevDispatcher;\n {\n ReactCurrentCache.current = prevCacheDispatcher;\n }\n {\n ReactDebugCurrentFrame.getCurrentStack = prevGetCurrentStackImpl;\n }\n if (prevDispatcher === HooksDispatcher) {\n // This means that we were in a reentrant work loop. This could happen\n // in a renderer that supports synchronous work like renderToString,\n // when it's called from within another renderer.\n // Normally we don't bother switching the contexts to their root/default\n // values when leaving because we'll likely need the same or similar\n // context again. However, when we're inside a synchronous loop like this\n // we'll to restore the context to what it was before returning.\n switchContext(prevContext);\n }\n currentRequest = prevRequest;\n }\n }\n function flushSubtree(request, destination, segment) {\n segment.parentFlushed = true;\n switch(segment.status){\n case PENDING:\n {\n // We're emitting a placeholder for this segment to be filled in later.\n // Therefore we'll need to assign it an ID - to refer to it by.\n segment.id = request.nextSegmentId++; // Fallthrough\n }\n case POSTPONED:\n {\n var segmentID = segment.id; // When this segment finally completes it won't be embedded in text since it will flush separately\n segment.lastPushedText = false;\n segment.textEmbedded = false;\n return writePlaceholder(destination, request.renderState, segmentID);\n }\n case COMPLETED:\n {\n segment.status = FLUSHED;\n var r = true;\n var chunks = segment.chunks;\n var chunkIdx = 0;\n var children = segment.children;\n for(var childIdx = 0; childIdx < children.length; childIdx++){\n var nextChild = children[childIdx]; // Write all the chunks up until the next child.\n for(; chunkIdx < nextChild.index; chunkIdx++){\n writeChunk(destination, chunks[chunkIdx]);\n }\n r = flushSegment(request, destination, nextChild);\n } // Finally just write all the remaining chunks\n for(; chunkIdx < chunks.length - 1; chunkIdx++){\n writeChunk(destination, chunks[chunkIdx]);\n }\n if (chunkIdx < chunks.length) {\n r = writeChunkAndReturn(destination, chunks[chunkIdx]);\n }\n return r;\n }\n default:\n {\n throw new Error(\"Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React.\");\n }\n }\n }\n function flushSegment(request, destination, segment) {\n var boundary = segment.boundary;\n if (boundary === null) {\n // Not a suspense boundary.\n return flushSubtree(request, destination, segment);\n }\n boundary.parentFlushed = true; // This segment is a Suspense boundary. We need to decide whether to\n // emit the content or the fallback now.\n if (boundary.status === CLIENT_RENDERED) {\n // Emit a client rendered suspense boundary wrapper.\n // We never queue the inner boundary so we'll never emit its content or partial segments.\n writeStartClientRenderedSuspenseBoundary(destination, request.renderState, boundary.errorDigest, boundary.errorMessage, boundary.errorComponentStack); // Flush the fallback.\n flushSubtree(request, destination, segment);\n return writeEndClientRenderedSuspenseBoundary(destination);\n } else if (boundary.status !== COMPLETED) {\n if (boundary.status === PENDING) {\n // For pending boundaries we lazily assign an ID to the boundary\n // and root segment.\n boundary.rootSegmentID = request.nextSegmentId++;\n }\n if (boundary.completedSegments.length > 0) {\n // If this is at least partially complete, we can queue it to be partially emitted early.\n request.partialBoundaries.push(boundary);\n } // This boundary is still loading. Emit a pending suspense boundary wrapper.\n var id = boundary.rootSegmentID;\n writeStartPendingSuspenseBoundary(destination, request.renderState, id); // Flush the fallback.\n flushSubtree(request, destination, segment);\n return writeEndPendingSuspenseBoundary(destination);\n } else if (boundary.byteSize > request.progressiveChunkSize) {\n // This boundary is large and will be emitted separately so that we can progressively show\n // other content. We add it to the queue during the flush because we have to ensure that\n // the parent flushes first so that there's something to inject it into.\n // We also have to make sure that it's emitted into the queue in a deterministic slot.\n // I.e. we can't insert it here when it completes.\n // Assign an ID to refer to the future content by.\n boundary.rootSegmentID = request.nextSegmentId++;\n request.completedBoundaries.push(boundary); // Emit a pending rendered suspense boundary wrapper.\n writeStartPendingSuspenseBoundary(destination, request.renderState, boundary.rootSegmentID); // Flush the fallback.\n flushSubtree(request, destination, segment);\n return writeEndPendingSuspenseBoundary(destination);\n } else {\n {\n hoistResources(request.renderState, boundary.resources);\n }\n writeStartCompletedSuspenseBoundary(destination);\n var completedSegments = boundary.completedSegments;\n if (completedSegments.length !== 1) {\n throw new Error(\"A previously unvisited boundary must have exactly one root segment. This is a bug in React.\");\n }\n var contentSegment = completedSegments[0];\n flushSegment(request, destination, contentSegment);\n return writeEndCompletedSuspenseBoundary(destination);\n }\n }\n function flushClientRenderedBoundary(request, destination, boundary) {\n return writeClientRenderBoundaryInstruction(destination, request.resumableState, request.renderState, boundary.rootSegmentID, boundary.errorDigest, boundary.errorMessage, boundary.errorComponentStack);\n }\n function flushSegmentContainer(request, destination, segment) {\n writeStartSegment(destination, request.renderState, segment.parentFormatContext, segment.id);\n flushSegment(request, destination, segment);\n return writeEndSegment(destination, segment.parentFormatContext);\n }\n function flushCompletedBoundary(request, destination, boundary) {\n {\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, boundary.resources);\n }\n var completedSegments = boundary.completedSegments;\n var i = 0;\n for(; i < completedSegments.length; i++){\n var segment = completedSegments[i];\n flushPartiallyCompletedSegment(request, destination, boundary, segment);\n }\n completedSegments.length = 0;\n {\n writeResourcesForBoundary(destination, boundary.resources, request.renderState);\n }\n return writeCompletedBoundaryInstruction(destination, request.resumableState, request.renderState, boundary.rootSegmentID, boundary.resources);\n }\n function flushPartialBoundary(request, destination, boundary) {\n {\n setCurrentlyRenderingBoundaryResourcesTarget(request.renderState, boundary.resources);\n }\n var completedSegments = boundary.completedSegments;\n var i = 0;\n for(; i < completedSegments.length; i++){\n var segment = completedSegments[i];\n if (!flushPartiallyCompletedSegment(request, destination, boundary, segment)) {\n i++;\n completedSegments.splice(0, i); // Only write as much as the buffer wants. Something higher priority\n // might want to write later.\n return false;\n }\n }\n completedSegments.splice(0, i);\n {\n // The way this is structured we only write resources for partial boundaries\n // if there is no backpressure. Later before we complete the boundary we\n // will write resources regardless of backpressure before we emit the\n // completion instruction\n return writeResourcesForBoundary(destination, boundary.resources, request.renderState);\n }\n }\n function flushPartiallyCompletedSegment(request, destination, boundary, segment) {\n if (segment.status === FLUSHED) {\n // We've already flushed this inline.\n return true;\n }\n var segmentID = segment.id;\n if (segmentID === -1) {\n // This segment wasn't previously referred to. This happens at the root of\n // a boundary. We make kind of a leap here and assume this is the root.\n var rootSegmentID = segment.id = boundary.rootSegmentID;\n if (rootSegmentID === -1) {\n throw new Error(\"A root segment ID must have been assigned by now. This is a bug in React.\");\n }\n return flushSegmentContainer(request, destination, segment);\n } else if (segmentID === boundary.rootSegmentID) {\n // When we emit postponed boundaries, we might have assigned the ID already\n // but it's still the root segment so we can't inject it into the parent yet.\n return flushSegmentContainer(request, destination, segment);\n } else {\n flushSegmentContainer(request, destination, segment);\n return writeCompletedSegmentInstruction(destination, request.resumableState, request.renderState, segmentID);\n }\n }\n function flushCompletedQueues(request, destination) {\n beginWriting();\n try {\n // The structure of this is to go through each queue one by one and write\n // until the sink tells us to stop. When we should stop, we still finish writing\n // that item fully and then yield. At that point we remove the already completed\n // items up until the point we completed them.\n var i;\n var completedRootSegment = request.completedRootSegment;\n if (completedRootSegment !== null) {\n if (completedRootSegment.status === POSTPONED) {\n // We postponed the root, so we write nothing.\n return;\n } else if (request.pendingRootTasks === 0) {\n if (enableFloat) {\n writePreamble(destination, request.resumableState, request.renderState, request.allPendingTasks === 0 && request.trackedPostpones === null);\n }\n flushSegment(request, destination, completedRootSegment);\n request.completedRootSegment = null;\n writeCompletedRoot(destination, request.renderState);\n } else {\n // We haven't flushed the root yet so we don't need to check any other branches further down\n return;\n }\n }\n if (enableFloat) {\n writeHoistables(destination, request.resumableState, request.renderState);\n } // We emit client rendering instructions for already emitted boundaries first.\n // This is so that we can signal to the client to start client rendering them as\n // soon as possible.\n var clientRenderedBoundaries = request.clientRenderedBoundaries;\n for(i = 0; i < clientRenderedBoundaries.length; i++){\n var boundary = clientRenderedBoundaries[i];\n if (!flushClientRenderedBoundary(request, destination, boundary)) {\n request.destination = null;\n i++;\n clientRenderedBoundaries.splice(0, i);\n return;\n }\n }\n clientRenderedBoundaries.splice(0, i); // Next we emit any complete boundaries. It's better to favor boundaries\n // that are completely done since we can actually show them, than it is to emit\n // any individual segments from a partially complete boundary.\n var completedBoundaries = request.completedBoundaries;\n for(i = 0; i < completedBoundaries.length; i++){\n var _boundary = completedBoundaries[i];\n if (!flushCompletedBoundary(request, destination, _boundary)) {\n request.destination = null;\n i++;\n completedBoundaries.splice(0, i);\n return;\n }\n }\n completedBoundaries.splice(0, i); // Allow anything written so far to flush to the underlying sink before\n // we continue with lower priorities.\n completeWriting(destination);\n beginWriting(destination); // TODO: Here we'll emit data used by hydration.\n // Next we emit any segments of any boundaries that are partially complete\n // but not deeply complete.\n var partialBoundaries = request.partialBoundaries;\n for(i = 0; i < partialBoundaries.length; i++){\n var _boundary2 = partialBoundaries[i];\n if (!flushPartialBoundary(request, destination, _boundary2)) {\n request.destination = null;\n i++;\n partialBoundaries.splice(0, i);\n return;\n }\n }\n partialBoundaries.splice(0, i); // Next we check the completed boundaries again. This may have had\n // boundaries added to it in case they were too larged to be inlined.\n // New ones might be added in this loop.\n var largeBoundaries = request.completedBoundaries;\n for(i = 0; i < largeBoundaries.length; i++){\n var _boundary3 = largeBoundaries[i];\n if (!flushCompletedBoundary(request, destination, _boundary3)) {\n request.destination = null;\n i++;\n largeBoundaries.splice(0, i);\n return;\n }\n }\n largeBoundaries.splice(0, i);\n } finally{\n if (request.allPendingTasks === 0 && request.pingedTasks.length === 0 && request.clientRenderedBoundaries.length === 0 && request.completedBoundaries.length === 0 // We don't need to check any partially completed segments because\n ) {\n request.flushScheduled = false;\n {\n // We write the trailing tags but only if don't have any data to resume.\n // If we need to resume we'll write the postamble in the resume instead.\n {\n writePostamble(destination, request.resumableState);\n }\n }\n completeWriting(destination);\n {\n if (request.abortableTasks.size !== 0) {\n error(\"There was still abortable task at the root when we closed. This is a bug in React.\");\n }\n }\n close(destination); // We need to stop flowing now because we do not want any async contexts which might call\n // float methods to initiate any flushes after this point\n stopFlowing(request);\n } else {\n completeWriting(destination);\n }\n }\n }\n function startWork(request) {\n request.flushScheduled = request.destination !== null;\n if (supportsRequestStorage) {\n scheduleWork(function() {\n return requestStorage.run(request, performWork, request);\n });\n } else {\n scheduleWork(function() {\n return performWork(request);\n });\n }\n if (request.trackedPostpones === null) {\n // this is either a regular render or a resume. For regular render we want\n // to call emitEarlyPreloads after the first performWork because we want\n // are responding to a live request and need to balance sending something early\n // (i.e. don't want for the shell to finish) but we need something to send.\n // The only implementation of this is for DOM at the moment and during resumes nothing\n // actually emits but the code paths here are the same.\n // During a prerender we don't want to be too aggressive in emitting early preloads\n // because we aren't responding to a live request and we can wait for the prerender to\n // postpone before we emit anything.\n if (supportsRequestStorage) {\n scheduleWork(function() {\n return requestStorage.run(request, enqueueEarlyPreloadsAfterInitialWork, request);\n });\n } else {\n scheduleWork(function() {\n return enqueueEarlyPreloadsAfterInitialWork(request);\n });\n }\n }\n }\n function enqueueEarlyPreloadsAfterInitialWork(request) {\n var shellComplete = request.pendingRootTasks === 0;\n safelyEmitEarlyPreloads(request, shellComplete);\n }\n function enqueueFlush(request) {\n if (request.flushScheduled === false && // If there are pinged tasks we are going to flush anyway after work completes\n request.pingedTasks.length === 0 && // If there is no destination there is nothing we can flush to. A flush will\n // happen when we start flowing again\n request.destination !== null) {\n request.flushScheduled = true;\n scheduleWork(function() {\n // We need to existence check destination again here because it might go away\n // in between the enqueueFlush call and the work execution\n var destination = request.destination;\n if (destination) {\n flushCompletedQueues(request, destination);\n } else {\n request.flushScheduled = false;\n }\n });\n }\n } // This function is intented to only be called during the pipe function for the Node builds.\n function startFlowing(request, destination) {\n if (request.status === CLOSING) {\n request.status = CLOSED;\n closeWithError(destination, request.fatalError);\n return;\n }\n if (request.status === CLOSED) {\n return;\n }\n if (request.destination !== null) {\n // We're already flowing.\n return;\n }\n request.destination = destination;\n try {\n flushCompletedQueues(request, destination);\n } catch (error) {\n var errorInfo = {};\n logRecoverableError(request, error, errorInfo);\n fatalError(request, error);\n }\n }\n function stopFlowing(request) {\n request.destination = null;\n } // This is called to early terminate a request. It puts all pending boundaries in client rendered state.\n function abort(request, reason) {\n try {\n var abortableTasks = request.abortableTasks;\n if (abortableTasks.size > 0) {\n var error = reason === undefined ? new Error(\"The render was aborted by the server without a reason.\") : reason;\n abortableTasks.forEach(function(task) {\n return abortTask(task, request, error);\n });\n abortableTasks.clear();\n }\n if (request.destination !== null) {\n flushCompletedQueues(request, request.destination);\n }\n } catch (error) {\n var errorInfo = {};\n logRecoverableError(request, error, errorInfo);\n fatalError(request, error);\n }\n }\n function flushResources(request) {\n enqueueFlush(request);\n }\n function getFormState(request) {\n return request.formState;\n }\n function getResumableState(request) {\n return request.resumableState;\n }\n function getRenderState(request) {\n return request.renderState;\n }\n function renderToReadableStream(children, options) {\n return new Promise(function(resolve, reject) {\n var onFatalError;\n var onAllReady;\n var allReady = new Promise(function(res, rej) {\n onAllReady = res;\n onFatalError = rej;\n });\n function onShellReady() {\n var stream = new ReadableStream({\n type: \"bytes\",\n pull: function(controller) {\n startFlowing(request, controller);\n },\n cancel: function(reason) {\n stopFlowing(request);\n abort(request, reason);\n }\n }, {\n highWaterMark: 0\n }); // TODO: Move to sub-classing ReadableStream.\n stream.allReady = allReady;\n resolve(stream);\n }\n function onShellError(error) {\n // If the shell errors the caller of `renderToReadableStream` won't have access to `allReady`.\n // However, `allReady` will be rejected by `onFatalError` as well.\n // So we need to catch the duplicate, uncatchable fatal error in `allReady` to prevent a `UnhandledPromiseRejection`.\n allReady.catch(function() {});\n reject(error);\n }\n var onHeaders = options ? options.onHeaders : undefined;\n var onHeadersImpl;\n if (onHeaders) {\n onHeadersImpl = function(headersDescriptor) {\n onHeaders(new Headers(headersDescriptor));\n };\n }\n var resumableState = createResumableState(options ? options.identifierPrefix : undefined, options ? options.unstable_externalRuntimeSrc : undefined, options ? options.bootstrapScriptContent : undefined, options ? options.bootstrapScripts : undefined, options ? options.bootstrapModules : undefined);\n var request = createRequest(children, resumableState, createRenderState(resumableState, options ? options.nonce : undefined, options ? options.unstable_externalRuntimeSrc : undefined, options ? options.importMap : undefined, onHeadersImpl, options ? options.maxHeadersLength : undefined), createRootFormatContext(options ? options.namespaceURI : undefined), options ? options.progressiveChunkSize : undefined, options ? options.onError : undefined, onAllReady, onShellReady, onShellError, onFatalError, options ? options.onPostpone : undefined, options ? options.formState : undefined);\n if (options && options.signal) {\n var signal = options.signal;\n if (signal.aborted) {\n abort(request, signal.reason);\n } else {\n var listener = function() {\n abort(request, signal.reason);\n signal.removeEventListener(\"abort\", listener);\n };\n signal.addEventListener(\"abort\", listener);\n }\n }\n startWork(request);\n });\n }\n exports.renderToReadableStream = renderToReadableStream;\n exports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS1zZXJ2ZXIuZWRnZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Q0FRQyxHQUVEO0FBRUEsSUFBSUEsSUFBcUMsRUFBRTtJQUN4QztRQUNIO1FBRUEsSUFBSUMsUUFBUUMsbUJBQU9BLENBQUMsNEZBQTBCO1FBQzlDLElBQUlDLFdBQVdELG1CQUFPQSxDQUFDO1FBRXZCLElBQUlFLGVBQWU7UUFFbkIsSUFBSUMsdUJBQXVCSixNQUFNSyxrREFBa0Q7UUFFbkYsK0NBQStDO1FBQy9DLEVBQUU7UUFDRiw4REFBOEQ7UUFDOUQscUNBQXFDO1FBRXJDLFNBQVNDLEtBQUtDLE1BQU07WUFDbEI7Z0JBQ0U7b0JBQ0UsSUFBSyxJQUFJQyxPQUFPQyxVQUFVQyxNQUFNLEVBQUVDLE9BQU8sSUFBSUMsTUFBTUosT0FBTyxJQUFJQSxPQUFPLElBQUksSUFBSUssT0FBTyxHQUFHQSxPQUFPTCxNQUFNSyxPQUFRO3dCQUMxR0YsSUFBSSxDQUFDRSxPQUFPLEVBQUUsR0FBR0osU0FBUyxDQUFDSSxLQUFLO29CQUNsQztvQkFFQUMsYUFBYSxRQUFRUCxRQUFRSTtnQkFDL0I7WUFDRjtRQUNGO1FBQ0EsU0FBU0ksTUFBTVIsTUFBTTtZQUNuQjtnQkFDRTtvQkFDRSxJQUFLLElBQUlTLFFBQVFQLFVBQVVDLE1BQU0sRUFBRUMsT0FBTyxJQUFJQyxNQUFNSSxRQUFRLElBQUlBLFFBQVEsSUFBSSxJQUFJQyxRQUFRLEdBQUdBLFFBQVFELE9BQU9DLFFBQVM7d0JBQ2pITixJQUFJLENBQUNNLFFBQVEsRUFBRSxHQUFHUixTQUFTLENBQUNRLE1BQU07b0JBQ3BDO29CQUVBSCxhQUFhLFNBQVNQLFFBQVFJO2dCQUNoQztZQUNGO1FBQ0Y7UUFFQSxTQUFTRyxhQUFhSSxLQUFLLEVBQUVYLE1BQU0sRUFBRUksSUFBSTtZQUN2QyxtREFBbUQ7WUFD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QUFhO1lBQUU7Z0JBQUM7Z0JBQWU7YUFBZTtZQUFFO2dCQUFDO2dCQUFjO2FBQWM7WUFBRTtnQkFBQztnQkFBYTthQUFhO1lBQUU7Z0JBQUM7Z0JBQThCO2FBQStCO1lBQUU7Z0JBQUM7Z0JBQTRCO2FBQTZCO1lBQUU7Z0JBQUM7Z0JBQWE7YUFBYztZQUFFO2dCQUFDO2dCQUFnQjthQUFpQjtZQUFFO2dCQUFDO2dCQUFrQjthQUFrQjtZQUFFO2dCQUFDO2dCQUFpQjthQUFpQjtZQUFFO2dCQUFDO2dCQUFpQjthQUFpQjtZQUFFO2dCQUFDO2dCQUFhO2FBQWE7WUFBRTtnQkFBQztnQkFBYTthQUFhO1lBQUU7Z0JBQUM7Z0JBQWU7YUFBZTtZQUFFO2dCQUFDO2dCQUFvQjthQUFvQjtZQUFFO2dCQUFDO2dCQUFxQjthQUFxQjtZQUFFO2dCQUFDO2dCQUFjO2FBQWM7WUFBRTtnQkFBQztnQkFBWTthQUFXO1lBQUU7Z0JBQUM7Z0JBQWlCO2FBQWlCO1lBQUU7Z0JBQUM7Z0JBQW1CO2FBQW1CO1lBQUU7Z0JBQUM7Z0JBQWtCO2FBQWtCO1lBQUU7Z0JBQUM7Z0JBQWE7YUFBYTtZQUFFO2dCQUFDO2dCQUFlO2FBQWU7WUFBRTtnQkFBQztnQkFBeUI7YUFBeUI7WUFBRTtnQkFBQztnQkFBMEI7YUFBMEI7WUFBRTtnQkFBQztnQkFBbUI7YUFBbUI7WUFBRTtnQkFBQztnQkFBb0I7YUFBb0I7WUFBRTtnQkFBQztnQkFBaUI7YUFBaUI7WUFBRTtnQkFBQztnQkFBa0I7YUFBa0I7WUFBRTtnQkFBQztnQkFBb0I7YUFBb0I7WUFBRTtnQkFBQztnQkFBaUI7YUFBaUI7WUFBRTtnQkFBQztnQkFBZTthQUFlO1lBQUU7Z0JBQUM7Z0JBQWM7YUFBYztZQUFFO2dCQUFDO2dCQUFrQjthQUFrQjtZQUFFO2dCQUFDO2dCQUFpQjthQUFpQjtZQUFFO2dCQUFDO2dCQUFtQjthQUFtQjtZQUFFO2dCQUFDO2dCQUFxQjthQUFxQjtZQUFFO2dCQUFDO2dCQUFzQjthQUFzQjtZQUFFO2dCQUFDO2dCQUFlO2FBQWU7WUFBRTtnQkFBQztn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QUFHMTlCO2dCQUUvakIsSUFBSTZmLFdBQVdBLFFBQVFrdEIsTUFBTSxFQUFFO29CQUM3QixJQUFJQSxTQUFTbHRCLFFBQVFrdEIsTUFBTTtvQkFFM0IsSUFBSUEsT0FBT0MsT0FBTyxFQUFFO3dCQUNsQm5CLE1BQU14c0IsU0FBUzB0QixPQUFPclksTUFBTTtvQkFDOUIsT0FBTzt3QkFDTCxJQUFJdVksV0FBVzs0QkFDYnBCLE1BQU14c0IsU0FBUzB0QixPQUFPclksTUFBTTs0QkFDNUJxWSxPQUFPRyxtQkFBbUIsQ0FBQyxTQUFTRDt3QkFDdEM7d0JBRUFGLE9BQU9JLGdCQUFnQixDQUFDLFNBQVNGO29CQUNuQztnQkFDRjtnQkFFQXpCLFVBQVVuc0I7WUFDWjtRQUNGO1FBRUErdEIsOEJBQThCLEdBQUd0QjtRQUNqQ3NCLGVBQWUsR0FBRzd2RDtJQUNoQjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLXNlcnZlci5lZGdlLmRldmVsb3BtZW50LmpzPzhkZDAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtZG9tLXNlcnZlci5lZGdlLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0XCIpO1xudmFyIFJlYWN0RE9NID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5cbnZhciBSZWFjdFZlcnNpb24gPSAnMTguMy4wLWNhbmFyeS02MGE5MjdkMDQtMjAyNDAxMTMnO1xuXG52YXIgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSBSZWFjdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtcblxuLy8gYnkgY2FsbHMgdG8gdGhlc2UgbWV0aG9kcyBieSBhIEJhYmVsIHBsdWdpbi5cbi8vXG4vLyBJbiBQUk9EIChvciBpbiBwYWNrYWdlcyB3aXRob3V0IGFjY2VzcyB0byBSZWFjdCBpbnRlcm5hbHMpLFxuLy8gdGhleSBhcmUgbGVmdCBhcyB0aGV5IGFyZSBpbnN0ZWFkLlxuXG5mdW5jdGlvbiB3YXJuKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCd3YXJuJywgZm9ybWF0LCBhcmdzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0pO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuLy8gQSBwdXJlIEpTIGltcGxlbWVudGF0aW9uIG9mIGEgc3RyaW5nIGhhc2hpbmcgZnVuY3Rpb24uIFdlIGRvIG5vdCB1c2UgaXQgZm9yXG4vLyBzZWN1cml0eSBvciBvYmZ1c2NhdGlvbiBwdXJwb3Nlcywgb25seSB0byBjcmVhdGUgY29tcGFjdCBoYXNoZXMuIFNvIHdlXG4vLyBwcmlvcml0aXplIHNwZWVkIG92ZXIgY29sbGlzaW9uIGF2b2lkYW5jZS4gRm9yIGV4YW1wbGUsIHdlIHVzZSB0aGlzIHRvIGhhc2hcbi8vIHRoZSBjb21wb25lbnQga2V5IHBhdGggdXNlZCBieSB1c2VGb3JtU3RhdGUgZm9yIE1QQS1zdHlsZSBzdWJtaXNzaW9ucy5cbi8vXG4vLyBJbiBlbnZpcm9ubWVudHMgd2hlcmUgYnVpbHQtaW4gaGFzaGluZyBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSwgd2UgcHJlZmVyXG4vLyB0aG9zZSBpbnN0ZWFkLiBMaWtlIE5vZGUncyBjcnlwdG8gbW9kdWxlLCBvciBCdW4uaGFzaC4gVW5mb3J0dW5hdGVseSB0aGlzXG4vLyBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3ZWIgc3RhbmRhcmQgY3J5cHRvIEFQSSBiZWNhdXNlIHRob3NlIG1ldGhvZHMgYXJlIGFsbFxuLy8gYXN5bmMuIEZvciBvdXIgcHVycG9zZXMsIHdlIG5lZWQgaXQgdG8gYmUgc3luYyBiZWNhdXNlIHRoZSBjb3N0IG9mIGNvbnRleHRcbi8vIHN3aXRjaGluZyBpcyB0b28gaGlnaCB0byBiZSB3b3J0aCBpdC5cbi8vXG4vLyBUaGUgbW9zdCBwb3B1bGFyIGhhc2hpbmcgYWxnb3JpdGhtIHRoYXQgbWVldHMgdGhlc2UgcmVxdWlyZW1lbnRzIGluIHRoZSBKU1xuLy8gZWNvc3lzdGVtIGlzIE11cm11ckhhc2gzLCBhbmQgYWxtb3N0IGFsbCBpbXBsZW1lbnRhdGlvbnMgSSBjb3VsZCBmaW5kIHVzZWRcbi8vIHNvbWUgdmVyc2lvbiBvZiB0aGUgaW1wbGVtZW50YXRpb24gYnkgR2FyeSBDb3VydCBpbmxpbmVkIGJlbG93LlxuZnVuY3Rpb24gY3JlYXRlRmFzdEhhc2hKUyhrZXkpIHtcbiAgcmV0dXJuIG11cm11cmhhc2gzXzMyX2djKGtleSwgMCk7XG59XG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItY29uc3QsIG5vLWZhbGx0aHJvdWdoICovXG5cbi8qKlxuICogQGxpY2Vuc2VcbiAqXG4gKiBKUyBJbXBsZW1lbnRhdGlvbiBvZiBNdXJtdXJIYXNoMyAocjEzNikgKGFzIG9mIE1heSAyMCwgMjAxMSlcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTEgR2FyeSBDb3VydFxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5mdW5jdGlvbiBtdXJtdXJoYXNoM18zMl9nYyhrZXksIHNlZWQpIHtcbiAgdmFyIHJlbWFpbmRlciwgYnl0ZXMsIGgxLCBoMWIsIGMxLCBjMiwgazEsIGk7XG4gIHJlbWFpbmRlciA9IGtleS5sZW5ndGggJiAzOyAvLyBrZXkubGVuZ3RoICUgNFxuXG4gIGJ5dGVzID0ga2V5Lmxlbmd0aCAtIHJlbWFpbmRlcjtcbiAgaDEgPSBzZWVkO1xuICBjMSA9IDB4Y2M5ZTJkNTE7XG4gIGMyID0gMHgxYjg3MzU5MztcbiAgaSA9IDA7XG5cbiAgd2hpbGUgKGkgPCBieXRlcykge1xuICAgIGsxID0ga2V5LmNoYXJDb2RlQXQoaSkgJiAweGZmIHwgKGtleS5jaGFyQ29kZUF0KCsraSkgJiAweGZmKSA8PCA4IHwgKGtleS5jaGFyQ29kZUF0KCsraSkgJiAweGZmKSA8PCAxNiB8IChrZXkuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgMjQ7XG4gICAgKytpO1xuICAgIGsxID0gKGsxICYgMHhmZmZmKSAqIGMxICsgKCgoazEgPj4+IDE2KSAqIGMxICYgMHhmZmZmKSA8PCAxNikgJiAweGZmZmZmZmZmO1xuICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgazEgPSAoazEgJiAweGZmZmYpICogYzIgKyAoKChrMSA+Pj4gMTYpICogYzIgJiAweGZmZmYpIDw8IDE2KSAmIDB4ZmZmZmZmZmY7XG4gICAgaDEgXj0gazE7XG4gICAgaDEgPSBoMSA8PCAxMyB8IGgxID4+PiAxOTtcbiAgICBoMWIgPSAoaDEgJiAweGZmZmYpICogNSArICgoKGgxID4+PiAxNikgKiA1ICYgMHhmZmZmKSA8PCAxNikgJiAweGZmZmZmZmZmO1xuICAgIGgxID0gKGgxYiAmIDB4ZmZmZikgKyAweDZiNjQgKyAoKChoMWIgPj4+IDE2KSArIDB4ZTY1NCAmIDB4ZmZmZikgPDwgMTYpO1xuICB9XG5cbiAgazEgPSAwO1xuXG4gIHN3aXRjaCAocmVtYWluZGVyKSB7XG4gICAgY2FzZSAzOlxuICAgICAgazEgXj0gKGtleS5jaGFyQ29kZUF0KGkgKyAyKSAmIDB4ZmYpIDw8IDE2O1xuXG4gICAgY2FzZSAyOlxuICAgICAgazEgXj0gKGtleS5jaGFyQ29kZUF0KGkgKyAxKSAmIDB4ZmYpIDw8IDg7XG5cbiAgICBjYXNlIDE6XG4gICAgICBrMSBePSBrZXkuY2hhckNvZGVBdChpKSAmIDB4ZmY7XG4gICAgICBrMSA9IChrMSAmIDB4ZmZmZikgKiBjMSArICgoKGsxID4+PiAxNikgKiBjMSAmIDB4ZmZmZikgPDwgMTYpICYgMHhmZmZmZmZmZjtcbiAgICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgICBrMSA9IChrMSAmIDB4ZmZmZikgKiBjMiArICgoKGsxID4+PiAxNikgKiBjMiAmIDB4ZmZmZikgPDwgMTYpICYgMHhmZmZmZmZmZjtcbiAgICAgIGgxIF49IGsxO1xuICB9XG5cbiAgaDEgXj0ga2V5Lmxlbmd0aDtcbiAgaDEgXj0gaDEgPj4+IDE2O1xuICBoMSA9IChoMSAmIDB4ZmZmZikgKiAweDg1ZWJjYTZiICsgKCgoaDEgPj4+IDE2KSAqIDB4ODVlYmNhNmIgJiAweGZmZmYpIDw8IDE2KSAmIDB4ZmZmZmZmZmY7XG4gIGgxIF49IGgxID4+PiAxMztcbiAgaDEgPSAoaDEgJiAweGZmZmYpICogMHhjMmIyYWUzNSArICgoKGgxID4+PiAxNikgKiAweGMyYjJhZTM1ICYgMHhmZmZmKSA8PCAxNikgJiAweGZmZmZmZmZmO1xuICBoMSBePSBoMSA+Pj4gMTY7XG4gIHJldHVybiBoMSA+Pj4gMDtcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVXb3JrKGNhbGxiYWNrKSB7XG4gIHNldFRpbWVvdXQoY2FsbGJhY2ssIDApO1xufVxudmFyIFZJRVdfU0laRSA9IDUxMjtcbnZhciBjdXJyZW50VmlldyA9IG51bGw7XG52YXIgd3JpdHRlbkJ5dGVzID0gMDtcbmZ1bmN0aW9uIGJlZ2luV3JpdGluZyhkZXN0aW5hdGlvbikge1xuICBjdXJyZW50VmlldyA9IG5ldyBVaW50OEFycmF5KFZJRVdfU0laRSk7XG4gIHdyaXR0ZW5CeXRlcyA9IDA7XG59XG5mdW5jdGlvbiB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjaHVuaykge1xuICBpZiAoY2h1bmsuYnl0ZUxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjaHVuay5ieXRlTGVuZ3RoID4gVklFV19TSVpFKSB7XG4gICAge1xuICAgICAgaWYgKHByZWNvbXB1dGVkQ2h1bmtTZXQuaGFzKGNodW5rKSkge1xuICAgICAgICBlcnJvcignQSBsYXJnZSBwcmVjb21wdXRlZCBjaHVuayB3YXMgcGFzc2VkIHRvIHdyaXRlQ2h1bmsgd2l0aG91dCBiZWluZyBjb3BpZWQuJyArICcgTGFyZ2UgY2h1bmtzIGdldCBlbnF1ZXVlZCBkaXJlY3RseSBhbmQgYXJlIG5vdCBjb3BpZWQuIFRoaXMgaXMgaW5jb21wYXRpYmxlIHdpdGggcHJlY29tcHV0ZWQgY2h1bmtzIGJlY2F1c2UgeW91IGNhbm5vdCBlbnF1ZXVlIHRoZSBzYW1lIHByZWNvbXB1dGVkIGNodW5rIHR3aWNlLicgKyAnIFVzZSBcImNsb25lQ2h1bmtcIiB0byBtYWtlIGEgY29weSBvZiB0aGlzIGxhcmdlIHByZWNvbXB1dGVkIGNodW5rIGJlZm9yZSB3cml0aW5nIGl0LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgfVxuICAgIH0gLy8gdGhpcyBjaHVuayBtYXkgb3ZlcmZsb3cgYSBzaW5nbGUgdmlldyB3aGljaCBpbXBsaWVzIGl0IHdhcyBub3RcbiAgICAvLyBvbmUgdGhhdCBpcyBjYWNoZWQgYnkgdGhlIHN0cmVhbWluZyByZW5kZXJlci4gV2Ugd2lsbCBlbnF1ZXVcbiAgICAvLyBpdCBkaXJlY3RseSBhbmQgZXhwZWN0IGl0IGlzIG5vdCByZS11c2VkXG5cblxuICAgIGlmICh3cml0dGVuQnl0ZXMgPiAwKSB7XG4gICAgICBkZXN0aW5hdGlvbi5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KGN1cnJlbnRWaWV3LmJ1ZmZlciwgMCwgd3JpdHRlbkJ5dGVzKSk7XG4gICAgICBjdXJyZW50VmlldyA9IG5ldyBVaW50OEFycmF5KFZJRVdfU0laRSk7XG4gICAgICB3cml0dGVuQnl0ZXMgPSAwO1xuICAgIH1cblxuICAgIGRlc3RpbmF0aW9uLmVucXVldWUoY2h1bmspO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBieXRlc1RvV3JpdGUgPSBjaHVuaztcbiAgdmFyIGFsbG93YWJsZUJ5dGVzID0gY3VycmVudFZpZXcubGVuZ3RoIC0gd3JpdHRlbkJ5dGVzO1xuXG4gIGlmIChhbGxvd2FibGVCeXRlcyA8IGJ5dGVzVG9Xcml0ZS5ieXRlTGVuZ3RoKSB7XG4gICAgLy8gdGhpcyBjaHVuayB3b3VsZCBvdmVyZmxvdyB0aGUgY3VycmVudCB2aWV3LiBXZSBlbnF1ZXVlIGEgZnVsbCB2aWV3XG4gICAgLy8gYW5kIHN0YXJ0IGEgbmV3IHZpZXcgd2l0aCB0aGUgcmVtYWluaW5nIGNodW5rXG4gICAgaWYgKGFsbG93YWJsZUJ5dGVzID09PSAwKSB7XG4gICAgICAvLyB0aGUgY3VycmVudCB2aWV3IGlzIGFscmVhZHkgZnVsbCwgc2VuZCBpdFxuICAgICAgZGVzdGluYXRpb24uZW5xdWV1ZShjdXJyZW50Vmlldyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZpbGwgdXAgdGhlIGN1cnJlbnQgdmlldyBhbmQgYXBwbHkgdGhlIHJlbWFpbmluZyBjaHVuayBieXRlc1xuICAgICAgLy8gdG8gYSBuZXcgdmlldy5cbiAgICAgIGN1cnJlbnRWaWV3LnNldChieXRlc1RvV3JpdGUuc3ViYXJyYXkoMCwgYWxsb3dhYmxlQnl0ZXMpLCB3cml0dGVuQnl0ZXMpOyAvLyB3cml0dGVuQnl0ZXMgKz0gYWxsb3dhYmxlQnl0ZXM7IC8vIHRoaXMgY2FuIGJlIHNraXBwZWQgYmVjYXVzZSB3ZSBhcmUgZ29pbmcgdG8gaW1tZWRpYXRlbHkgcmVzZXQgdGhlIHZpZXdcblxuICAgICAgZGVzdGluYXRpb24uZW5xdWV1ZShjdXJyZW50Vmlldyk7XG4gICAgICBieXRlc1RvV3JpdGUgPSBieXRlc1RvV3JpdGUuc3ViYXJyYXkoYWxsb3dhYmxlQnl0ZXMpO1xuICAgIH1cblxuICAgIGN1cnJlbnRWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoVklFV19TSVpFKTtcbiAgICB3cml0dGVuQnl0ZXMgPSAwO1xuICB9XG5cbiAgY3VycmVudFZpZXcuc2V0KGJ5dGVzVG9Xcml0ZSwgd3JpdHRlbkJ5dGVzKTtcbiAgd3JpdHRlbkJ5dGVzICs9IGJ5dGVzVG9Xcml0ZS5ieXRlTGVuZ3RoO1xufVxuZnVuY3Rpb24gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgY2h1bmspIHtcbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY2h1bmspOyAvLyBpbiB3ZWIgc3RyZWFtcyB0aGVyZSBpcyBubyBiYWNrcHJlc3N1cmUgc28gd2UgY2FuIGFsd2FzIHdyaXRlIG1vcmVcblxuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGNvbXBsZXRlV3JpdGluZyhkZXN0aW5hdGlvbikge1xuICBpZiAoY3VycmVudFZpZXcgJiYgd3JpdHRlbkJ5dGVzID4gMCkge1xuICAgIGRlc3RpbmF0aW9uLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoY3VycmVudFZpZXcuYnVmZmVyLCAwLCB3cml0dGVuQnl0ZXMpKTtcbiAgICBjdXJyZW50VmlldyA9IG51bGw7XG4gICAgd3JpdHRlbkJ5dGVzID0gMDtcbiAgfVxufVxuZnVuY3Rpb24gY2xvc2UoZGVzdGluYXRpb24pIHtcbiAgZGVzdGluYXRpb24uY2xvc2UoKTtcbn1cbnZhciB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuZnVuY3Rpb24gc3RyaW5nVG9DaHVuayhjb250ZW50KSB7XG4gIHJldHVybiB0ZXh0RW5jb2Rlci5lbmNvZGUoY29udGVudCk7XG59XG52YXIgcHJlY29tcHV0ZWRDaHVua1NldCA9IG5ldyBTZXQoKSA7XG5mdW5jdGlvbiBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoY29udGVudCkge1xuICB2YXIgcHJlY29tcHV0ZWRDaHVuayA9IHRleHRFbmNvZGVyLmVuY29kZShjb250ZW50KTtcblxuICB7XG4gICAgcHJlY29tcHV0ZWRDaHVua1NldC5hZGQocHJlY29tcHV0ZWRDaHVuayk7XG4gIH1cblxuICByZXR1cm4gcHJlY29tcHV0ZWRDaHVuaztcbn1cbmZ1bmN0aW9uIGNsb25lUHJlY29tcHV0ZWRDaHVuayhwcmVjb21wdXRlZENodW5rKSB7XG4gIHJldHVybiBwcmVjb21wdXRlZENodW5rLmJ5dGVMZW5ndGggPiBWSUVXX1NJWkUgPyBwcmVjb21wdXRlZENodW5rLnNsaWNlKCkgOiBwcmVjb21wdXRlZENodW5rO1xufVxuZnVuY3Rpb24gY2xvc2VXaXRoRXJyb3IoZGVzdGluYXRpb24sIGVycm9yKSB7XG4gIC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbiAgaWYgKHR5cGVvZiBkZXN0aW5hdGlvbi5lcnJvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLWNhbGxdOiBUaGlzIGlzIGFuIEVycm9yIG9iamVjdCBvciB0aGUgZGVzdGluYXRpb24gYWNjZXB0cyBvdGhlciB0eXBlcy5cbiAgICBkZXN0aW5hdGlvbi5lcnJvcihlcnJvcik7XG4gIH0gZWxzZSB7XG4gICAgLy8gRWFybGllciBpbXBsZW1lbnRhdGlvbnMgZG9lc24ndCBzdXBwb3J0IHRoaXMgbWV0aG9kLiBJbiB0aGF0IGVudmlyb25tZW50IHlvdSdyZVxuICAgIC8vIHN1cHBvc2VkIHRvIHRocm93IGZyb20gYSBwcm9taXNlIHJldHVybmVkIGJ1dCB3ZSBkb24ndCByZXR1cm4gYSBwcm9taXNlIGluIG91clxuICAgIC8vIGFwcHJvYWNoLiBXZSBjb3VsZCBmb3JrIHRoaXMgaW1wbGVtZW50YXRpb24gYnV0IHRoaXMgaXMgZW52aXJvbm1lbnQgaXMgYW4gZWRnZVxuICAgIC8vIGNhc2UgdG8gYmVnaW4gd2l0aC4gSXQncyBldmVuIGxlc3MgY29tbW9uIHRvIHJ1biB0aGlzIGluIGFuIG9sZGVyIGVudmlyb25tZW50LlxuICAgIC8vIEV2ZW4gdGhlbiwgdGhpcyBpcyBub3Qgd2hlcmUgZXJyb3JzIGFyZSBzdXBwb3NlZCB0byBoYXBwZW4gYW5kIHRoZXkgZ2V0IHJlcG9ydGVkXG4gICAgLy8gdG8gYSBnbG9iYWwgY2FsbGJhY2sgaW4gYWRkaXRpb24gdG8gdGhpcyBhbnl3YXkuIFNvIGl0J3MgZmluZSBqdXN0IHRvIGNsb3NlIHRoaXMuXG4gICAgZGVzdGluYXRpb24uY2xvc2UoKTtcbiAgfVxufVxuXG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLypcbiAqIFRoZSBgJycgKyB2YWx1ZWAgcGF0dGVybiAodXNlZCBpbiBwZXJmLXNlbnNpdGl2ZSBjb2RlKSB0aHJvd3MgZm9yIFN5bWJvbFxuICogYW5kIFRlbXBvcmFsLiogdHlwZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yMjA2NC5cbiAqXG4gKiBUaGUgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIHdpbGwgdGhyb3cgYW4gZWFzaWVyLXRvLXVuZGVyc3RhbmQsXG4gKiBlYXNpZXItdG8tZGVidWcgZXhjZXB0aW9uIHdpdGggYSBjbGVhciBlcnJvcnMgbWVzc2FnZSBtZXNzYWdlIGV4cGxhaW5pbmcgdGhlXG4gKiBwcm9ibGVtLiAoSW5zdGVhZCBvZiBhIGNvbmZ1c2luZyBleGNlcHRpb24gdGhyb3duIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb25cbiAqIG9mIHRoZSBgdmFsdWVgIG9iamVjdCkuXG4gKi9cbi8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl0gb25seSBjYWxsZWQgaW4gREVWLCBzbyB2b2lkIHJldHVybiBpcyBub3QgcG9zc2libGUuXG5mdW5jdGlvbiB0eXBlTmFtZSh2YWx1ZSkge1xuICB7XG4gICAgLy8gdG9TdHJpbmdUYWcgaXMgbmVlZGVkIGZvciBuYW1lc3BhY2VkIHR5cGVzIGxpa2UgVGVtcG9yYWwuSW5zdGFudFxuICAgIHZhciBoYXNUb1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLnRvU3RyaW5nVGFnO1xuICAgIHZhciB0eXBlID0gaGFzVG9TdHJpbmdUYWcgJiYgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSB8fCB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdPYmplY3QnOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuXG5cbmZ1bmN0aW9uIHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSB7XG4gIHtcbiAgICB0cnkge1xuICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIC8vIElmIHlvdSBlbmRlZCB1cCBoZXJlIGJ5IGZvbGxvd2luZyBhbiBleGNlcHRpb24gY2FsbCBzdGFjaywgaGVyZSdzIHdoYXQnc1xuICAvLyBoYXBwZW5lZDogeW91IHN1cHBsaWVkIGFuIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gUmVhY3QgKGFzIGEgcHJvcCwga2V5LFxuICAvLyBET00gYXR0cmlidXRlLCBDU1MgcHJvcGVydHksIHN0cmluZyByZWYsIGV0Yy4pIGFuZCB3aGVuIFJlYWN0IHRyaWVkIHRvXG4gIC8vIGNvZXJjZSBpdCB0byBhIHN0cmluZyB1c2luZyBgJycgKyB2YWx1ZWAsIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAvL1xuICAvLyBUaGUgbW9zdCBjb21tb24gdHlwZXMgdGhhdCB3aWxsIGNhdXNlIHRoaXMgZXhjZXB0aW9uIGFyZSBgU3ltYm9sYCBpbnN0YW5jZXNcbiAgLy8gYW5kIFRlbXBvcmFsIG9iamVjdHMgbGlrZSBgVGVtcG9yYWwuSW5zdGFudGAuIEJ1dCBhbnkgb2JqZWN0IHRoYXQgaGFzIGFcbiAgLy8gYHZhbHVlT2ZgIG9yIGBbU3ltYm9sLnRvUHJpbWl0aXZlXWAgbWV0aG9kIHRoYXQgdGhyb3dzIHdpbGwgYWxzbyBjYXVzZSB0aGlzXG4gIC8vIGV4Y2VwdGlvbi4gKExpYnJhcnkgYXV0aG9ycyBkbyB0aGlzIHRvIHByZXZlbnQgdXNlcnMgZnJvbSB1c2luZyBidWlsdC1pblxuICAvLyBudW1lcmljIG9wZXJhdG9ycyBsaWtlIGArYCBvciBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIGA+PWAgYmVjYXVzZSBjdXN0b21cbiAgLy8gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIHBlcmZvcm0gYWNjdXJhdGUgYXJpdGhtZXRpYyBvciBjb21wYXJpc29uLilcbiAgLy9cbiAgLy8gVG8gZml4IHRoZSBwcm9ibGVtLCBjb2VyY2UgdGhpcyBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIGJlZm9yZVxuICAvLyBwYXNzaW5nIGl0IHRvIFJlYWN0LiBUaGUgbW9zdCByZWxpYWJsZSB3YXkgaXMgdXN1YWxseSBgU3RyaW5nKHZhbHVlKWAuXG4gIC8vXG4gIC8vIFRvIGZpbmQgd2hpY2ggdmFsdWUgaXMgdGhyb3dpbmcsIGNoZWNrIHRoZSBicm93c2VyIG9yIGRlYnVnZ2VyIGNvbnNvbGUuXG4gIC8vIEJlZm9yZSB0aGlzIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCB0aGVyZSBzaG91bGQgYmUgYGNvbnNvbGUuZXJyb3JgIG91dHB1dFxuICAvLyB0aGF0IHNob3dzIHRoZSB0eXBlIChTeW1ib2wsIFRlbXBvcmFsLlBsYWluRGF0ZSwgZXRjLikgdGhhdCBjYXVzZWQgdGhlXG4gIC8vIHByb2JsZW0gYW5kIGhvdyB0aGF0IHR5cGUgd2FzIHVzZWQ6IGtleSwgYXRycmlidXRlLCBpbnB1dCB2YWx1ZSBwcm9wLCBldGMuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgY29uc29sZSBvdXRwdXQgYWxzbyBzaG93cyB0aGUgY29tcG9uZW50IGFuZCBpdHNcbiAgLy8gYW5jZXN0b3IgY29tcG9uZW50cyB3aGVyZSB0aGUgZXhjZXB0aW9uIGhhcHBlbmVkLlxuICAvL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgcmV0dXJuICcnICsgdmFsdWU7XG59XG5cbmZ1bmN0aW9uIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGF0dHJpYnV0ZU5hbWUpIHtcbiAge1xuICAgIGlmICh3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkpIHtcbiAgICAgIGVycm9yKCdUaGUgcHJvdmlkZWQgYCVzYCBhdHRyaWJ1dGUgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCBhdHRyaWJ1dGVOYW1lLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGNoZWNrT3B0aW9uU3RyaW5nQ29lcmNpb24odmFsdWUsIHByb3BOYW1lKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGAlc2Agb3B0aW9uIGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuJyArICcgVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuJywgcHJvcE5hbWUsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY2hlY2tDU1NQcm9wZXJ0eVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBwcm9wTmFtZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBgJXNgIENTUyBwcm9wZXJ0eSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHByb3BOYW1lLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGNoZWNrSHRtbFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIEhUTUwgbWFya3VwIHVzZXMgYSB2YWx1ZSBvZiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIGVuYWJsZUZsb2F0ID0gdHJ1ZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV91c2VNZW1vQ2FjaGUgaG9vaywgaW50ZW5kZWQgYXMgYSBjb21waWxhdGlvbiB0YXJnZXQgZm9yXG5cbi8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cblxudmFyIEFUVFJJQlVURV9OQU1FX1NUQVJUX0NIQVIgPSBcIjpBLVpfYS16XFxcXHUwMEMwLVxcXFx1MDBENlxcXFx1MDBEOC1cXFxcdTAwRjZcXFxcdTAwRjgtXFxcXHUwMkZGXFxcXHUwMzcwLVxcXFx1MDM3RFxcXFx1MDM3Ri1cXFxcdTFGRkZcXFxcdTIwMEMtXFxcXHUyMDBEXFxcXHUyMDcwLVxcXFx1MjE4RlxcXFx1MkMwMC1cXFxcdTJGRUZcXFxcdTMwMDEtXFxcXHVEN0ZGXFxcXHVGOTAwLVxcXFx1RkRDRlxcXFx1RkRGMC1cXFxcdUZGRkRcIjtcbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiAqL1xuXG52YXIgQVRUUklCVVRFX05BTUVfQ0hBUiA9IEFUVFJJQlVURV9OQU1FX1NUQVJUX0NIQVIgKyBcIlxcXFwtLjAtOVxcXFx1MDBCN1xcXFx1MDMwMC1cXFxcdTAzNkZcXFxcdTIwM0YtXFxcXHUyMDQwXCI7XG52YXIgVkFMSURfQVRUUklCVVRFX05BTUVfUkVHRVggPSBuZXcgUmVnRXhwKCdeWycgKyBBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSICsgJ11bJyArIEFUVFJJQlVURV9OQU1FX0NIQVIgKyAnXSokJyk7XG52YXIgaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZSA9IHt9O1xudmFyIHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZSA9IHt9O1xuZnVuY3Rpb24gaXNBdHRyaWJ1dGVOYW1lU2FmZShhdHRyaWJ1dGVOYW1lKSB7XG4gIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZSwgYXR0cmlidXRlTmFtZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGlsbGVnYWxBdHRyaWJ1dGVOYW1lQ2FjaGUsIGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYLnRlc3QoYXR0cmlidXRlTmFtZSkpIHtcbiAgICB2YWxpZGF0ZWRBdHRyaWJ1dGVOYW1lQ2FjaGVbYXR0cmlidXRlTmFtZV0gPSB0cnVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZVthdHRyaWJ1dGVOYW1lXSA9IHRydWU7XG5cbiAge1xuICAgIGVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBuYW1lOiBgJXNgJywgYXR0cmlidXRlTmFtZSk7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ1NTIHByb3BlcnRpZXMgd2hpY2ggYWNjZXB0IG51bWJlcnMgYnV0IGFyZSBub3QgaW4gdW5pdHMgb2YgXCJweFwiLlxuICovXG52YXIgdW5pdGxlc3NOdW1iZXJzID0gbmV3IFNldChbJ2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50JywgJ2FzcGVjdFJhdGlvJywgJ2JvcmRlckltYWdlT3V0c2V0JywgJ2JvcmRlckltYWdlU2xpY2UnLCAnYm9yZGVySW1hZ2VXaWR0aCcsICdib3hGbGV4JywgJ2JveEZsZXhHcm91cCcsICdib3hPcmRpbmFsR3JvdXAnLCAnY29sdW1uQ291bnQnLCAnY29sdW1ucycsICdmbGV4JywgJ2ZsZXhHcm93JywgJ2ZsZXhQb3NpdGl2ZScsICdmbGV4U2hyaW5rJywgJ2ZsZXhOZWdhdGl2ZScsICdmbGV4T3JkZXInLCAnZ3JpZEFyZWEnLCAnZ3JpZFJvdycsICdncmlkUm93RW5kJywgJ2dyaWRSb3dTcGFuJywgJ2dyaWRSb3dTdGFydCcsICdncmlkQ29sdW1uJywgJ2dyaWRDb2x1bW5FbmQnLCAnZ3JpZENvbHVtblNwYW4nLCAnZ3JpZENvbHVtblN0YXJ0JywgJ2ZvbnRXZWlnaHQnLCAnbGluZUNsYW1wJywgJ2xpbmVIZWlnaHQnLCAnb3BhY2l0eScsICdvcmRlcicsICdvcnBoYW5zJywgJ3NjYWxlJywgJ3RhYlNpemUnLCAnd2lkb3dzJywgJ3pJbmRleCcsICd6b29tJywgJ2ZpbGxPcGFjaXR5JywgLy8gU1ZHLXJlbGF0ZWQgcHJvcGVydGllc1xuJ2Zsb29kT3BhY2l0eScsICdzdG9wT3BhY2l0eScsICdzdHJva2VEYXNoYXJyYXknLCAnc3Ryb2tlRGFzaG9mZnNldCcsICdzdHJva2VNaXRlcmxpbWl0JywgJ3N0cm9rZU9wYWNpdHknLCAnc3Ryb2tlV2lkdGgnLCAnTW96QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQnLCAvLyBLbm93biBQcmVmaXhlZCBQcm9wZXJ0aWVzXG4nTW96Qm94RmxleCcsIC8vIFRPRE86IFJlbW92ZSB0aGVzZSBzaW5jZSB0aGV5IHNob3VsZG4ndCBiZSB1c2VkIGluIG1vZGVybiBjb2RlXG4nTW96Qm94RmxleEdyb3VwJywgJ01vekxpbmVDbGFtcCcsICdtc0FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50JywgJ21zRmxleCcsICdtc1pvb20nLCAnbXNGbGV4R3JvdycsICdtc0ZsZXhOZWdhdGl2ZScsICdtc0ZsZXhPcmRlcicsICdtc0ZsZXhQb3NpdGl2ZScsICdtc0ZsZXhTaHJpbmsnLCAnbXNHcmlkQ29sdW1uJywgJ21zR3JpZENvbHVtblNwYW4nLCAnbXNHcmlkUm93JywgJ21zR3JpZFJvd1NwYW4nLCAnV2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQnLCAnV2Via2l0Qm94RmxleCcsICdXZWJLaXRCb3hGbGV4R3JvdXAnLCAnV2Via2l0Qm94T3JkaW5hbEdyb3VwJywgJ1dlYmtpdENvbHVtbkNvdW50JywgJ1dlYmtpdENvbHVtbnMnLCAnV2Via2l0RmxleCcsICdXZWJraXRGbGV4R3JvdycsICdXZWJraXRGbGV4UG9zaXRpdmUnLCAnV2Via2l0RmxleFNocmluaycsICdXZWJraXRMaW5lQ2xhbXAnXSk7XG5mdW5jdGlvbiBpc1VuaXRsZXNzTnVtYmVyIChuYW1lKSB7XG4gIHJldHVybiB1bml0bGVzc051bWJlcnMuaGFzKG5hbWUpO1xufVxuXG52YXIgYWxpYXNlcyA9IG5ldyBNYXAoW1snYWNjZXB0Q2hhcnNldCcsICdhY2NlcHQtY2hhcnNldCddLCBbJ2h0bWxGb3InLCAnZm9yJ10sIFsnaHR0cEVxdWl2JywgJ2h0dHAtZXF1aXYnXSwgLy8gSFRNTCBhbmQgU1ZHIGF0dHJpYnV0ZXMsIGJ1dCB0aGUgU1ZHIGF0dHJpYnV0ZSBpcyBjYXNlIHNlbnNpdGl2ZS5dLFxuWydjcm9zc09yaWdpbicsICdjcm9zc29yaWdpbiddLCAvLyBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgU1ZHIGF0dHJpYnV0ZXMgdGhhdCBuZWVkIHNwZWNpYWwgY2FzaW5nLlxuLy8gUmVndWxhciBhdHRyaWJ1dGVzIHRoYXQganVzdCBhY2NlcHQgc3RyaW5ncy5dLFxuWydhY2NlbnRIZWlnaHQnLCAnYWNjZW50LWhlaWdodCddLCBbJ2FsaWdubWVudEJhc2VsaW5lJywgJ2FsaWdubWVudC1iYXNlbGluZSddLCBbJ2FyYWJpY0Zvcm0nLCAnYXJhYmljLWZvcm0nXSwgWydiYXNlbGluZVNoaWZ0JywgJ2Jhc2VsaW5lLXNoaWZ0J10sIFsnY2FwSGVpZ2h0JywgJ2NhcC1oZWlnaHQnXSwgWydjbGlwUGF0aCcsICdjbGlwLXBhdGgnXSwgWydjbGlwUnVsZScsICdjbGlwLXJ1bGUnXSwgWydjb2xvckludGVycG9sYXRpb24nLCAnY29sb3ItaW50ZXJwb2xhdGlvbiddLCBbJ2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMnLCAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJ10sIFsnY29sb3JQcm9maWxlJywgJ2NvbG9yLXByb2ZpbGUnXSwgWydjb2xvclJlbmRlcmluZycsICdjb2xvci1yZW5kZXJpbmcnXSwgWydkb21pbmFudEJhc2VsaW5lJywgJ2RvbWluYW50LWJhc2VsaW5lJ10sIFsnZW5hYmxlQmFja2dyb3VuZCcsICdlbmFibGUtYmFja2dyb3VuZCddLCBbJ2ZpbGxPcGFjaXR5JywgJ2ZpbGwtb3BhY2l0eSddLCBbJ2ZpbGxSdWxlJywgJ2ZpbGwtcnVsZSddLCBbJ2Zsb29kQ29sb3InLCAnZmxvb2QtY29sb3InXSwgWydmbG9vZE9wYWNpdHknLCAnZmxvb2Qtb3BhY2l0eSddLCBbJ2ZvbnRGYW1pbHknLCAnZm9udC1mYW1pbHknXSwgWydmb250U2l6ZScsICdmb250LXNpemUnXSwgWydmb250U2l6ZUFkanVzdCcsICdmb250LXNpemUtYWRqdXN0J10sIFsnZm9udFN0cmV0Y2gnLCAnZm9udC1zdHJldGNoJ10sIFsnZm9udFN0eWxlJywgJ2ZvbnQtc3R5bGUnXSwgWydmb250VmFyaWFudCcsICdmb250LXZhcmlhbnQnXSwgWydmb250V2VpZ2h0JywgJ2ZvbnQtd2VpZ2h0J10sIFsnZ2x5cGhOYW1lJywgJ2dseXBoLW5hbWUnXSwgWydnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbCcsICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJ10sIFsnZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsJywgJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJ10sIFsnaG9yaXpBZHZYJywgJ2hvcml6LWFkdi14J10sIFsnaG9yaXpPcmlnaW5YJywgJ2hvcml6LW9yaWdpbi14J10sIFsnaW1hZ2VSZW5kZXJpbmcnLCAnaW1hZ2UtcmVuZGVyaW5nJ10sIFsnbGV0dGVyU3BhY2luZycsICdsZXR0ZXItc3BhY2luZyddLCBbJ2xpZ2h0aW5nQ29sb3InLCAnbGlnaHRpbmctY29sb3InXSwgWydtYXJrZXJFbmQnLCAnbWFya2VyLWVuZCddLCBbJ21hcmtlck1pZCcsICdtYXJrZXItbWlkJ10sIFsnbWFya2VyU3RhcnQnLCAnbWFya2VyLXN0YXJ0J10sIFsnb3ZlcmxpbmVQb3NpdGlvbicsICdvdmVybGluZS1wb3NpdGlvbiddLCBbJ292ZXJsaW5lVGhpY2tuZXNzJywgJ292ZXJsaW5lLXRoaWNrbmVzcyddLCBbJ3BhaW50T3JkZXInLCAncGFpbnQtb3JkZXInXSwgWydwYW5vc2UtMScsICdwYW5vc2UtMSddLCBbJ3BvaW50ZXJFdmVudHMnLCAncG9pbnRlci1ldmVudHMnXSwgWydyZW5kZXJpbmdJbnRlbnQnLCAncmVuZGVyaW5nLWludGVudCddLCBbJ3NoYXBlUmVuZGVyaW5nJywgJ3NoYXBlLXJlbmRlcmluZyddLCBbJ3N0b3BDb2xvcicsICdzdG9wLWNvbG9yJ10sIFsnc3RvcE9wYWNpdHknLCAnc3RvcC1vcGFjaXR5J10sIFsnc3RyaWtldGhyb3VnaFBvc2l0aW9uJywgJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nXSwgWydzdHJpa2V0aHJvdWdoVGhpY2tuZXNzJywgJ3N0cmlrZXRocm91Z2gtdGhpY2tuZXNzJ10sIFsnc3Ryb2tlRGFzaGFycmF5JywgJ3N0cm9rZS1kYXNoYXJyYXknXSwgWydzdHJva2VEYXNob2Zmc2V0JywgJ3N0cm9rZS1kYXNob2Zmc2V0J10sIFsnc3Ryb2tlTGluZWNhcCcsICdzdHJva2UtbGluZWNhcCddLCBbJ3N0cm9rZUxpbmVqb2luJywgJ3N0cm9rZS1saW5lam9pbiddLCBbJ3N0cm9rZU1pdGVybGltaXQnLCAnc3Ryb2tlLW1pdGVybGltaXQnXSwgWydzdHJva2VPcGFjaXR5JywgJ3N0cm9rZS1vcGFjaXR5J10sIFsnc3Ryb2tlV2lkdGgnLCAnc3Ryb2tlLXdpZHRoJ10sIFsndGV4dEFuY2hvcicsICd0ZXh0LWFuY2hvciddLCBbJ3RleHREZWNvcmF0aW9uJywgJ3RleHQtZGVjb3JhdGlvbiddLCBbJ3RleHRSZW5kZXJpbmcnLCAndGV4dC1yZW5kZXJpbmcnXSwgWyd0cmFuc2Zvcm1PcmlnaW4nLCAndHJhbnNmb3JtLW9yaWdpbiddLCBbJ3VuZGVybGluZVBvc2l0aW9uJywgJ3VuZGVybGluZS1wb3NpdGlvbiddLCBbJ3VuZGVybGluZVRoaWNrbmVzcycsICd1bmRlcmxpbmUtdGhpY2tuZXNzJ10sIFsndW5pY29kZUJpZGknLCAndW5pY29kZS1iaWRpJ10sIFsndW5pY29kZVJhbmdlJywgJ3VuaWNvZGUtcmFuZ2UnXSwgWyd1bml0c1BlckVtJywgJ3VuaXRzLXBlci1lbSddLCBbJ3ZBbHBoYWJldGljJywgJ3YtYWxwaGFiZXRpYyddLCBbJ3ZIYW5naW5nJywgJ3YtaGFuZ2luZyddLCBbJ3ZJZGVvZ3JhcGhpYycsICd2LWlkZW9ncmFwaGljJ10sIFsndk1hdGhlbWF0aWNhbCcsICd2LW1hdGhlbWF0aWNhbCddLCBbJ3ZlY3RvckVmZmVjdCcsICd2ZWN0b3ItZWZmZWN0J10sIFsndmVydEFkdlknLCAndmVydC1hZHYteSddLCBbJ3ZlcnRPcmlnaW5YJywgJ3ZlcnQtb3JpZ2luLXgnXSwgWyd2ZXJ0T3JpZ2luWScsICd2ZXJ0LW9yaWdpbi15J10sIFsnd29yZFNwYWNpbmcnLCAnd29yZC1zcGFjaW5nJ10sIFsnd3JpdGluZ01vZGUnLCAnd3JpdGluZy1tb2RlJ10sIFsneG1sbnNYbGluaycsICd4bWxuczp4bGluayddLCBbJ3hIZWlnaHQnLCAneC1oZWlnaHQnXV0pO1xuZnVuY3Rpb24gZ2V0QXR0cmlidXRlQWxpYXMgKG5hbWUpIHtcbiAgcmV0dXJuIGFsaWFzZXMuZ2V0KG5hbWUpIHx8IG5hbWU7XG59XG5cbnZhciBoYXNSZWFkT25seVZhbHVlID0ge1xuICBidXR0b246IHRydWUsXG4gIGNoZWNrYm94OiB0cnVlLFxuICBpbWFnZTogdHJ1ZSxcbiAgaGlkZGVuOiB0cnVlLFxuICByYWRpbzogdHJ1ZSxcbiAgcmVzZXQ6IHRydWUsXG4gIHN1Ym1pdDogdHJ1ZVxufTtcbmZ1bmN0aW9uIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHModGFnTmFtZSwgcHJvcHMpIHtcbiAge1xuICAgIGlmICghKGhhc1JlYWRPbmx5VmFsdWVbcHJvcHMudHlwZV0gfHwgcHJvcHMub25DaGFuZ2UgfHwgcHJvcHMub25JbnB1dCB8fCBwcm9wcy5yZWFkT25seSB8fCBwcm9wcy5kaXNhYmxlZCB8fCBwcm9wcy52YWx1ZSA9PSBudWxsKSkge1xuICAgICAgaWYgKHRhZ05hbWUgPT09ICdzZWxlY3QnKSB7XG4gICAgICAgIGVycm9yKCdZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCBzZXQgYG9uQ2hhbmdlYC4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCBzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIShwcm9wcy5vbkNoYW5nZSB8fCBwcm9wcy5yZWFkT25seSB8fCBwcm9wcy5kaXNhYmxlZCB8fCBwcm9wcy5jaGVja2VkID09IG51bGwpKSB7XG4gICAgICBlcnJvcignWW91IHByb3ZpZGVkIGEgYGNoZWNrZWRgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdENoZWNrZWRgLiBPdGhlcndpc2UsICcgKyAnc2V0IGVpdGhlciBgb25DaGFuZ2VgIG9yIGByZWFkT25seWAuJyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBhcmlhUHJvcGVydGllcyA9IHtcbiAgJ2FyaWEtY3VycmVudCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWRlc2NyaXB0aW9uJzogMCxcbiAgJ2FyaWEtZGV0YWlscyc6IDAsXG4gICdhcmlhLWRpc2FibGVkJzogMCxcbiAgLy8gc3RhdGVcbiAgJ2FyaWEtaGlkZGVuJzogMCxcbiAgLy8gc3RhdGVcbiAgJ2FyaWEtaW52YWxpZCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWtleXNob3J0Y3V0cyc6IDAsXG4gICdhcmlhLWxhYmVsJzogMCxcbiAgJ2FyaWEtcm9sZWRlc2NyaXB0aW9uJzogMCxcbiAgLy8gV2lkZ2V0IEF0dHJpYnV0ZXNcbiAgJ2FyaWEtYXV0b2NvbXBsZXRlJzogMCxcbiAgJ2FyaWEtY2hlY2tlZCc6IDAsXG4gICdhcmlhLWV4cGFuZGVkJzogMCxcbiAgJ2FyaWEtaGFzcG9wdXAnOiAwLFxuICAnYXJpYS1sZXZlbCc6IDAsXG4gICdhcmlhLW1vZGFsJzogMCxcbiAgJ2FyaWEtbXVsdGlsaW5lJzogMCxcbiAgJ2FyaWEtbXVsdGlzZWxlY3RhYmxlJzogMCxcbiAgJ2FyaWEtb3JpZW50YXRpb24nOiAwLFxuICAnYXJpYS1wbGFjZWhvbGRlcic6IDAsXG4gICdhcmlhLXByZXNzZWQnOiAwLFxuICAnYXJpYS1yZWFkb25seSc6IDAsXG4gICdhcmlhLXJlcXVpcmVkJzogMCxcbiAgJ2FyaWEtc2VsZWN0ZWQnOiAwLFxuICAnYXJpYS1zb3J0JzogMCxcbiAgJ2FyaWEtdmFsdWVtYXgnOiAwLFxuICAnYXJpYS12YWx1ZW1pbic6IDAsXG4gICdhcmlhLXZhbHVlbm93JzogMCxcbiAgJ2FyaWEtdmFsdWV0ZXh0JzogMCxcbiAgLy8gTGl2ZSBSZWdpb24gQXR0cmlidXRlc1xuICAnYXJpYS1hdG9taWMnOiAwLFxuICAnYXJpYS1idXN5JzogMCxcbiAgJ2FyaWEtbGl2ZSc6IDAsXG4gICdhcmlhLXJlbGV2YW50JzogMCxcbiAgLy8gRHJhZy1hbmQtRHJvcCBBdHRyaWJ1dGVzXG4gICdhcmlhLWRyb3BlZmZlY3QnOiAwLFxuICAnYXJpYS1ncmFiYmVkJzogMCxcbiAgLy8gUmVsYXRpb25zaGlwIEF0dHJpYnV0ZXNcbiAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc6IDAsXG4gICdhcmlhLWNvbGNvdW50JzogMCxcbiAgJ2FyaWEtY29saW5kZXgnOiAwLFxuICAnYXJpYS1jb2xzcGFuJzogMCxcbiAgJ2FyaWEtY29udHJvbHMnOiAwLFxuICAnYXJpYS1kZXNjcmliZWRieSc6IDAsXG4gICdhcmlhLWVycm9ybWVzc2FnZSc6IDAsXG4gICdhcmlhLWZsb3d0byc6IDAsXG4gICdhcmlhLWxhYmVsbGVkYnknOiAwLFxuICAnYXJpYS1vd25zJzogMCxcbiAgJ2FyaWEtcG9zaW5zZXQnOiAwLFxuICAnYXJpYS1yb3djb3VudCc6IDAsXG4gICdhcmlhLXJvd2luZGV4JzogMCxcbiAgJ2FyaWEtcm93c3Bhbic6IDAsXG4gICdhcmlhLXNldHNpemUnOiAwXG59O1xuXG52YXIgd2FybmVkUHJvcGVydGllcyQxID0ge307XG52YXIgckFSSUEkMSA9IG5ldyBSZWdFeHAoJ14oYXJpYSktWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xudmFyIHJBUklBQ2FtZWwkMSA9IG5ldyBSZWdFeHAoJ14oYXJpYSlbQS1aXVsnICsgQVRUUklCVVRFX05BTUVfQ0hBUiArICddKiQnKTtcblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eSQxKHRhZ05hbWUsIG5hbWUpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHdhcm5lZFByb3BlcnRpZXMkMSwgbmFtZSkgJiYgd2FybmVkUHJvcGVydGllcyQxW25hbWVdKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAockFSSUFDYW1lbCQxLnRlc3QobmFtZSkpIHtcbiAgICAgIHZhciBhcmlhTmFtZSA9ICdhcmlhLScgKyBuYW1lLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgY29ycmVjdE5hbWUgPSBhcmlhUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShhcmlhTmFtZSkgPyBhcmlhTmFtZSA6IG51bGw7IC8vIElmIHRoaXMgaXMgYW4gYXJpYS0qIGF0dHJpYnV0ZSwgYnV0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGtub3duIERPTVxuICAgICAgLy8gRE9NIHByb3BlcnRpZXMsIHRoZW4gaXQgaXMgYW4gaW52YWxpZCBhcmlhLSogYXR0cmlidXRlLlxuXG4gICAgICBpZiAoY29ycmVjdE5hbWUgPT0gbnVsbCkge1xuICAgICAgICBlcnJvcignSW52YWxpZCBBUklBIGF0dHJpYnV0ZSBgJXNgLiBBUklBIGF0dHJpYnV0ZXMgZm9sbG93IHRoZSBwYXR0ZXJuIGFyaWEtKiBhbmQgbXVzdCBiZSBsb3dlcmNhc2UuJywgbmFtZSk7XG5cbiAgICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IC8vIGFyaWEtKiBhdHRyaWJ1dGVzIHNob3VsZCBiZSBsb3dlcmNhc2U7IHN1Z2dlc3QgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uLlxuXG5cbiAgICAgIGlmIChuYW1lICE9PSBjb3JyZWN0TmFtZSkge1xuICAgICAgICBlcnJvcignSW52YWxpZCBBUklBIGF0dHJpYnV0ZSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8nLCBuYW1lLCBjb3JyZWN0TmFtZSk7XG5cbiAgICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJBUklBJDEudGVzdChuYW1lKSkge1xuICAgICAgdmFyIGxvd2VyQ2FzZWROYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdmFyIHN0YW5kYXJkTmFtZSA9IGFyaWFQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKSA/IGxvd2VyQ2FzZWROYW1lIDogbnVsbDsgLy8gSWYgdGhpcyBpcyBhbiBhcmlhLSogYXR0cmlidXRlLCBidXQgaXMgbm90IGxpc3RlZCBpbiB0aGUga25vd24gRE9NXG4gICAgICAvLyBET00gcHJvcGVydGllcywgdGhlbiBpdCBpcyBhbiBpbnZhbGlkIGFyaWEtKiBhdHRyaWJ1dGUuXG5cbiAgICAgIGlmIChzdGFuZGFyZE5hbWUgPT0gbnVsbCkge1xuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IC8vIGFyaWEtKiBhdHRyaWJ1dGVzIHNob3VsZCBiZSBsb3dlcmNhc2U7IHN1Z2dlc3QgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uLlxuXG5cbiAgICAgIGlmIChuYW1lICE9PSBzdGFuZGFyZE5hbWUpIHtcbiAgICAgICAgZXJyb3IoJ1Vua25vd24gQVJJQSBhdHRyaWJ1dGUgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/JywgbmFtZSwgc3RhbmRhcmROYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzJDIodHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIHZhciBpbnZhbGlkUHJvcHMgPSBbXTtcblxuICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgdmFyIGlzVmFsaWQgPSB2YWxpZGF0ZVByb3BlcnR5JDEodHlwZSwga2V5KTtcblxuICAgICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICAgIGludmFsaWRQcm9wcy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHVua25vd25Qcm9wU3RyaW5nID0gaW52YWxpZFByb3BzLm1hcChmdW5jdGlvbiAocHJvcCkge1xuICAgICAgcmV0dXJuICdgJyArIHByb3AgKyAnYCc7XG4gICAgfSkuam9pbignLCAnKTtcblxuICAgIGlmIChpbnZhbGlkUHJvcHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBlcnJvcignSW52YWxpZCBhcmlhIHByb3AgJXMgb24gPCVzPiB0YWcuICcgKyAnRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvaW52YWxpZC1hcmlhLXByb3BzJywgdW5rbm93blByb3BTdHJpbmcsIHR5cGUpO1xuICAgIH0gZWxzZSBpZiAoaW52YWxpZFByb3BzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIGFyaWEgcHJvcHMgJXMgb24gPCVzPiB0YWcuICcgKyAnRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvaW52YWxpZC1hcmlhLXByb3BzJywgdW5rbm93blByb3BTdHJpbmcsIHR5cGUpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgZGlkV2FyblZhbHVlTnVsbCA9IGZhbHNlO1xuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzJDEodHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIGlmICh0eXBlICE9PSAnaW5wdXQnICYmIHR5cGUgIT09ICd0ZXh0YXJlYScgJiYgdHlwZSAhPT0gJ3NlbGVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMgIT0gbnVsbCAmJiBwcm9wcy52YWx1ZSA9PT0gbnVsbCAmJiAhZGlkV2FyblZhbHVlTnVsbCkge1xuICAgICAgZGlkV2FyblZhbHVlTnVsbCA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlID09PSAnc2VsZWN0JyAmJiBwcm9wcy5tdWx0aXBsZSkge1xuICAgICAgICBlcnJvcignYHZhbHVlYCBwcm9wIG9uIGAlc2Agc2hvdWxkIG5vdCBiZSBudWxsLiAnICsgJ0NvbnNpZGVyIHVzaW5nIGFuIGVtcHR5IGFycmF5IHdoZW4gYG11bHRpcGxlYCBpcyBzZXQgdG8gYHRydWVgICcgKyAndG8gY2xlYXIgdGhlIGNvbXBvbmVudCBvciBgdW5kZWZpbmVkYCBmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudHMuJywgdHlwZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcignYHZhbHVlYCBwcm9wIG9uIGAlc2Agc2hvdWxkIG5vdCBiZSBudWxsLiAnICsgJ0NvbnNpZGVyIHVzaW5nIGFuIGVtcHR5IHN0cmluZyB0byBjbGVhciB0aGUgY29tcG9uZW50IG9yIGB1bmRlZmluZWRgICcgKyAnZm9yIHVuY29udHJvbGxlZCBjb21wb25lbnRzLicsIHR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc0N1c3RvbUVsZW1lbnQodGFnTmFtZSwgcHJvcHMpIHtcbiAgaWYgKHRhZ05hbWUuaW5kZXhPZignLScpID09PSAtMSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN3aXRjaCAodGFnTmFtZSkge1xuICAgIC8vIFRoZXNlIGFyZSByZXNlcnZlZCBTVkcgYW5kIE1hdGhNTCBlbGVtZW50cy5cbiAgICAvLyBXZSBkb24ndCBtaW5kIHRoaXMgbGlzdCB0b28gbXVjaCBiZWNhdXNlIHdlIGV4cGVjdCBpdCB0byBuZXZlciBncm93LlxuICAgIC8vIFRoZSBhbHRlcm5hdGl2ZSBpcyB0byB0cmFjayB0aGUgbmFtZXNwYWNlIGluIGEgZmV3IHBsYWNlcyB3aGljaCBpcyBjb252b2x1dGVkLlxuICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9tLyNjdXN0b20tZWxlbWVudHMtY29yZS1jb25jZXB0c1xuICAgIGNhc2UgJ2Fubm90YXRpb24teG1sJzpcbiAgICBjYXNlICdjb2xvci1wcm9maWxlJzpcbiAgICBjYXNlICdmb250LWZhY2UnOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZS1zcmMnOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZS11cmknOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZS1mb3JtYXQnOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZS1uYW1lJzpcbiAgICBjYXNlICdtaXNzaW5nLWdseXBoJzpcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vLyBXaGVuIGFkZGluZyBhdHRyaWJ1dGVzIHRvIHRoZSBIVE1MIG9yIFNWRyBhbGxvd2VkIGF0dHJpYnV0ZSBsaXN0LCBiZSBzdXJlIHRvXG4vLyBhbHNvIGFkZCB0aGVtIHRvIHRoaXMgbW9kdWxlIHRvIGVuc3VyZSBjYXNpbmcgYW5kIGluY29ycmVjdCBuYW1lXG4vLyB3YXJuaW5ncy5cbnZhciBwb3NzaWJsZVN0YW5kYXJkTmFtZXMgPSB7XG4gIC8vIEhUTUxcbiAgYWNjZXB0OiAnYWNjZXB0JyxcbiAgYWNjZXB0Y2hhcnNldDogJ2FjY2VwdENoYXJzZXQnLFxuICAnYWNjZXB0LWNoYXJzZXQnOiAnYWNjZXB0Q2hhcnNldCcsXG4gIGFjY2Vzc2tleTogJ2FjY2Vzc0tleScsXG4gIGFjdGlvbjogJ2FjdGlvbicsXG4gIGFsbG93ZnVsbHNjcmVlbjogJ2FsbG93RnVsbFNjcmVlbicsXG4gIGFsdDogJ2FsdCcsXG4gIGFzOiAnYXMnLFxuICBhc3luYzogJ2FzeW5jJyxcbiAgYXV0b2NhcGl0YWxpemU6ICdhdXRvQ2FwaXRhbGl6ZScsXG4gIGF1dG9jb21wbGV0ZTogJ2F1dG9Db21wbGV0ZScsXG4gIGF1dG9jb3JyZWN0OiAnYXV0b0NvcnJlY3QnLFxuICBhdXRvZm9jdXM6ICdhdXRvRm9jdXMnLFxuICBhdXRvcGxheTogJ2F1dG9QbGF5JyxcbiAgYXV0b3NhdmU6ICdhdXRvU2F2ZScsXG4gIGNhcHR1cmU6ICdjYXB0dXJlJyxcbiAgY2VsbHBhZGRpbmc6ICdjZWxsUGFkZGluZycsXG4gIGNlbGxzcGFjaW5nOiAnY2VsbFNwYWNpbmcnLFxuICBjaGFsbGVuZ2U6ICdjaGFsbGVuZ2UnLFxuICBjaGFyc2V0OiAnY2hhclNldCcsXG4gIGNoZWNrZWQ6ICdjaGVja2VkJyxcbiAgY2hpbGRyZW46ICdjaGlsZHJlbicsXG4gIGNpdGU6ICdjaXRlJyxcbiAgY2xhc3M6ICdjbGFzc05hbWUnLFxuICBjbGFzc2lkOiAnY2xhc3NJRCcsXG4gIGNsYXNzbmFtZTogJ2NsYXNzTmFtZScsXG4gIGNvbHM6ICdjb2xzJyxcbiAgY29sc3BhbjogJ2NvbFNwYW4nLFxuICBjb250ZW50OiAnY29udGVudCcsXG4gIGNvbnRlbnRlZGl0YWJsZTogJ2NvbnRlbnRFZGl0YWJsZScsXG4gIGNvbnRleHRtZW51OiAnY29udGV4dE1lbnUnLFxuICBjb250cm9sczogJ2NvbnRyb2xzJyxcbiAgY29udHJvbHNsaXN0OiAnY29udHJvbHNMaXN0JyxcbiAgY29vcmRzOiAnY29vcmRzJyxcbiAgY3Jvc3NvcmlnaW46ICdjcm9zc09yaWdpbicsXG4gIGRhbmdlcm91c2x5c2V0aW5uZXJodG1sOiAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnLFxuICBkYXRhOiAnZGF0YScsXG4gIGRhdGV0aW1lOiAnZGF0ZVRpbWUnLFxuICBkZWZhdWx0OiAnZGVmYXVsdCcsXG4gIGRlZmF1bHRjaGVja2VkOiAnZGVmYXVsdENoZWNrZWQnLFxuICBkZWZhdWx0dmFsdWU6ICdkZWZhdWx0VmFsdWUnLFxuICBkZWZlcjogJ2RlZmVyJyxcbiAgZGlyOiAnZGlyJyxcbiAgZGlzYWJsZWQ6ICdkaXNhYmxlZCcsXG4gIGRpc2FibGVwaWN0dXJlaW5waWN0dXJlOiAnZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUnLFxuICBkaXNhYmxlcmVtb3RlcGxheWJhY2s6ICdkaXNhYmxlUmVtb3RlUGxheWJhY2snLFxuICBkb3dubG9hZDogJ2Rvd25sb2FkJyxcbiAgZHJhZ2dhYmxlOiAnZHJhZ2dhYmxlJyxcbiAgZW5jdHlwZTogJ2VuY1R5cGUnLFxuICBlbnRlcmtleWhpbnQ6ICdlbnRlcktleUhpbnQnLFxuICBmZXRjaHByaW9yaXR5OiAnZmV0Y2hQcmlvcml0eScsXG4gIGZvcjogJ2h0bWxGb3InLFxuICBmb3JtOiAnZm9ybScsXG4gIGZvcm1tZXRob2Q6ICdmb3JtTWV0aG9kJyxcbiAgZm9ybWFjdGlvbjogJ2Zvcm1BY3Rpb24nLFxuICBmb3JtZW5jdHlwZTogJ2Zvcm1FbmNUeXBlJyxcbiAgZm9ybW5vdmFsaWRhdGU6ICdmb3JtTm9WYWxpZGF0ZScsXG4gIGZvcm10YXJnZXQ6ICdmb3JtVGFyZ2V0JyxcbiAgZnJhbWVib3JkZXI6ICdmcmFtZUJvcmRlcicsXG4gIGhlYWRlcnM6ICdoZWFkZXJzJyxcbiAgaGVpZ2h0OiAnaGVpZ2h0JyxcbiAgaGlkZGVuOiAnaGlkZGVuJyxcbiAgaGlnaDogJ2hpZ2gnLFxuICBocmVmOiAnaHJlZicsXG4gIGhyZWZsYW5nOiAnaHJlZkxhbmcnLFxuICBodG1sZm9yOiAnaHRtbEZvcicsXG4gIGh0dHBlcXVpdjogJ2h0dHBFcXVpdicsXG4gICdodHRwLWVxdWl2JzogJ2h0dHBFcXVpdicsXG4gIGljb246ICdpY29uJyxcbiAgaWQ6ICdpZCcsXG4gIGltYWdlc2l6ZXM6ICdpbWFnZVNpemVzJyxcbiAgaW1hZ2VzcmNzZXQ6ICdpbWFnZVNyY1NldCcsXG4gIGlubmVyaHRtbDogJ2lubmVySFRNTCcsXG4gIGlucHV0bW9kZTogJ2lucHV0TW9kZScsXG4gIGludGVncml0eTogJ2ludGVncml0eScsXG4gIGlzOiAnaXMnLFxuICBpdGVtaWQ6ICdpdGVtSUQnLFxuICBpdGVtcHJvcDogJ2l0ZW1Qcm9wJyxcbiAgaXRlbXJlZjogJ2l0ZW1SZWYnLFxuICBpdGVtc2NvcGU6ICdpdGVtU2NvcGUnLFxuICBpdGVtdHlwZTogJ2l0ZW1UeXBlJyxcbiAga2V5cGFyYW1zOiAna2V5UGFyYW1zJyxcbiAga2V5dHlwZTogJ2tleVR5cGUnLFxuICBraW5kOiAna2luZCcsXG4gIGxhYmVsOiAnbGFiZWwnLFxuICBsYW5nOiAnbGFuZycsXG4gIGxpc3Q6ICdsaXN0JyxcbiAgbG9vcDogJ2xvb3AnLFxuICBsb3c6ICdsb3cnLFxuICBtYW5pZmVzdDogJ21hbmlmZXN0JyxcbiAgbWFyZ2lud2lkdGg6ICdtYXJnaW5XaWR0aCcsXG4gIG1hcmdpbmhlaWdodDogJ21hcmdpbkhlaWdodCcsXG4gIG1heDogJ21heCcsXG4gIG1heGxlbmd0aDogJ21heExlbmd0aCcsXG4gIG1lZGlhOiAnbWVkaWEnLFxuICBtZWRpYWdyb3VwOiAnbWVkaWFHcm91cCcsXG4gIG1ldGhvZDogJ21ldGhvZCcsXG4gIG1pbjogJ21pbicsXG4gIG1pbmxlbmd0aDogJ21pbkxlbmd0aCcsXG4gIG11bHRpcGxlOiAnbXVsdGlwbGUnLFxuICBtdXRlZDogJ211dGVkJyxcbiAgbmFtZTogJ25hbWUnLFxuICBub21vZHVsZTogJ25vTW9kdWxlJyxcbiAgbm9uY2U6ICdub25jZScsXG4gIG5vdmFsaWRhdGU6ICdub1ZhbGlkYXRlJyxcbiAgb3BlbjogJ29wZW4nLFxuICBvcHRpbXVtOiAnb3B0aW11bScsXG4gIHBhdHRlcm46ICdwYXR0ZXJuJyxcbiAgcGxhY2Vob2xkZXI6ICdwbGFjZWhvbGRlcicsXG4gIHBsYXlzaW5saW5lOiAncGxheXNJbmxpbmUnLFxuICBwb3N0ZXI6ICdwb3N0ZXInLFxuICBwcmVsb2FkOiAncHJlbG9hZCcsXG4gIHByb2ZpbGU6ICdwcm9maWxlJyxcbiAgcmFkaW9ncm91cDogJ3JhZGlvR3JvdXAnLFxuICByZWFkb25seTogJ3JlYWRPbmx5JyxcbiAgcmVmZXJyZXJwb2xpY3k6ICdyZWZlcnJlclBvbGljeScsXG4gIHJlbDogJ3JlbCcsXG4gIHJlcXVpcmVkOiAncmVxdWlyZWQnLFxuICByZXZlcnNlZDogJ3JldmVyc2VkJyxcbiAgcm9sZTogJ3JvbGUnLFxuICByb3dzOiAncm93cycsXG4gIHJvd3NwYW46ICdyb3dTcGFuJyxcbiAgc2FuZGJveDogJ3NhbmRib3gnLFxuICBzY29wZTogJ3Njb3BlJyxcbiAgc2NvcGVkOiAnc2NvcGVkJyxcbiAgc2Nyb2xsaW5nOiAnc2Nyb2xsaW5nJyxcbiAgc2VhbWxlc3M6ICdzZWFtbGVzcycsXG4gIHNlbGVjdGVkOiAnc2VsZWN0ZWQnLFxuICBzaGFwZTogJ3NoYXBlJyxcbiAgc2l6ZTogJ3NpemUnLFxuICBzaXplczogJ3NpemVzJyxcbiAgc3BhbjogJ3NwYW4nLFxuICBzcGVsbGNoZWNrOiAnc3BlbGxDaGVjaycsXG4gIHNyYzogJ3NyYycsXG4gIHNyY2RvYzogJ3NyY0RvYycsXG4gIHNyY2xhbmc6ICdzcmNMYW5nJyxcbiAgc3Jjc2V0OiAnc3JjU2V0JyxcbiAgc3RhcnQ6ICdzdGFydCcsXG4gIHN0ZXA6ICdzdGVwJyxcbiAgc3R5bGU6ICdzdHlsZScsXG4gIHN1bW1hcnk6ICdzdW1tYXJ5JyxcbiAgdGFiaW5kZXg6ICd0YWJJbmRleCcsXG4gIHRhcmdldDogJ3RhcmdldCcsXG4gIHRpdGxlOiAndGl0bGUnLFxuICB0eXBlOiAndHlwZScsXG4gIHVzZW1hcDogJ3VzZU1hcCcsXG4gIHZhbHVlOiAndmFsdWUnLFxuICB3aWR0aDogJ3dpZHRoJyxcbiAgd21vZGU6ICd3bW9kZScsXG4gIHdyYXA6ICd3cmFwJyxcbiAgLy8gU1ZHXG4gIGFib3V0OiAnYWJvdXQnLFxuICBhY2NlbnRoZWlnaHQ6ICdhY2NlbnRIZWlnaHQnLFxuICAnYWNjZW50LWhlaWdodCc6ICdhY2NlbnRIZWlnaHQnLFxuICBhY2N1bXVsYXRlOiAnYWNjdW11bGF0ZScsXG4gIGFkZGl0aXZlOiAnYWRkaXRpdmUnLFxuICBhbGlnbm1lbnRiYXNlbGluZTogJ2FsaWdubWVudEJhc2VsaW5lJyxcbiAgJ2FsaWdubWVudC1iYXNlbGluZSc6ICdhbGlnbm1lbnRCYXNlbGluZScsXG4gIGFsbG93cmVvcmRlcjogJ2FsbG93UmVvcmRlcicsXG4gIGFscGhhYmV0aWM6ICdhbHBoYWJldGljJyxcbiAgYW1wbGl0dWRlOiAnYW1wbGl0dWRlJyxcbiAgYXJhYmljZm9ybTogJ2FyYWJpY0Zvcm0nLFxuICAnYXJhYmljLWZvcm0nOiAnYXJhYmljRm9ybScsXG4gIGFzY2VudDogJ2FzY2VudCcsXG4gIGF0dHJpYnV0ZW5hbWU6ICdhdHRyaWJ1dGVOYW1lJyxcbiAgYXR0cmlidXRldHlwZTogJ2F0dHJpYnV0ZVR5cGUnLFxuICBhdXRvcmV2ZXJzZTogJ2F1dG9SZXZlcnNlJyxcbiAgYXppbXV0aDogJ2F6aW11dGgnLFxuICBiYXNlZnJlcXVlbmN5OiAnYmFzZUZyZXF1ZW5jeScsXG4gIGJhc2VsaW5lc2hpZnQ6ICdiYXNlbGluZVNoaWZ0JyxcbiAgJ2Jhc2VsaW5lLXNoaWZ0JzogJ2Jhc2VsaW5lU2hpZnQnLFxuICBiYXNlcHJvZmlsZTogJ2Jhc2VQcm9maWxlJyxcbiAgYmJveDogJ2Jib3gnLFxuICBiZWdpbjogJ2JlZ2luJyxcbiAgYmlhczogJ2JpYXMnLFxuICBieTogJ2J5JyxcbiAgY2FsY21vZGU6ICdjYWxjTW9kZScsXG4gIGNhcGhlaWdodDogJ2NhcEhlaWdodCcsXG4gICdjYXAtaGVpZ2h0JzogJ2NhcEhlaWdodCcsXG4gIGNsaXA6ICdjbGlwJyxcbiAgY2xpcHBhdGg6ICdjbGlwUGF0aCcsXG4gICdjbGlwLXBhdGgnOiAnY2xpcFBhdGgnLFxuICBjbGlwcGF0aHVuaXRzOiAnY2xpcFBhdGhVbml0cycsXG4gIGNsaXBydWxlOiAnY2xpcFJ1bGUnLFxuICAnY2xpcC1ydWxlJzogJ2NsaXBSdWxlJyxcbiAgY29sb3I6ICdjb2xvcicsXG4gIGNvbG9yaW50ZXJwb2xhdGlvbjogJ2NvbG9ySW50ZXJwb2xhdGlvbicsXG4gICdjb2xvci1pbnRlcnBvbGF0aW9uJzogJ2NvbG9ySW50ZXJwb2xhdGlvbicsXG4gIGNvbG9yaW50ZXJwb2xhdGlvbmZpbHRlcnM6ICdjb2xvckludGVycG9sYXRpb25GaWx0ZXJzJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyc6ICdjb2xvckludGVycG9sYXRpb25GaWx0ZXJzJyxcbiAgY29sb3Jwcm9maWxlOiAnY29sb3JQcm9maWxlJyxcbiAgJ2NvbG9yLXByb2ZpbGUnOiAnY29sb3JQcm9maWxlJyxcbiAgY29sb3JyZW5kZXJpbmc6ICdjb2xvclJlbmRlcmluZycsXG4gICdjb2xvci1yZW5kZXJpbmcnOiAnY29sb3JSZW5kZXJpbmcnLFxuICBjb250ZW50c2NyaXB0dHlwZTogJ2NvbnRlbnRTY3JpcHRUeXBlJyxcbiAgY29udGVudHN0eWxldHlwZTogJ2NvbnRlbnRTdHlsZVR5cGUnLFxuICBjdXJzb3I6ICdjdXJzb3InLFxuICBjeDogJ2N4JyxcbiAgY3k6ICdjeScsXG4gIGQ6ICdkJyxcbiAgZGF0YXR5cGU6ICdkYXRhdHlwZScsXG4gIGRlY2VsZXJhdGU6ICdkZWNlbGVyYXRlJyxcbiAgZGVzY2VudDogJ2Rlc2NlbnQnLFxuICBkaWZmdXNlY29uc3RhbnQ6ICdkaWZmdXNlQ29uc3RhbnQnLFxuICBkaXJlY3Rpb246ICdkaXJlY3Rpb24nLFxuICBkaXNwbGF5OiAnZGlzcGxheScsXG4gIGRpdmlzb3I6ICdkaXZpc29yJyxcbiAgZG9taW5hbnRiYXNlbGluZTogJ2RvbWluYW50QmFzZWxpbmUnLFxuICAnZG9taW5hbnQtYmFzZWxpbmUnOiAnZG9taW5hbnRCYXNlbGluZScsXG4gIGR1cjogJ2R1cicsXG4gIGR4OiAnZHgnLFxuICBkeTogJ2R5JyxcbiAgZWRnZW1vZGU6ICdlZGdlTW9kZScsXG4gIGVsZXZhdGlvbjogJ2VsZXZhdGlvbicsXG4gIGVuYWJsZWJhY2tncm91bmQ6ICdlbmFibGVCYWNrZ3JvdW5kJyxcbiAgJ2VuYWJsZS1iYWNrZ3JvdW5kJzogJ2VuYWJsZUJhY2tncm91bmQnLFxuICBlbmQ6ICdlbmQnLFxuICBleHBvbmVudDogJ2V4cG9uZW50JyxcbiAgZXh0ZXJuYWxyZXNvdXJjZXNyZXF1aXJlZDogJ2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQnLFxuICBmaWxsOiAnZmlsbCcsXG4gIGZpbGxvcGFjaXR5OiAnZmlsbE9wYWNpdHknLFxuICAnZmlsbC1vcGFjaXR5JzogJ2ZpbGxPcGFjaXR5JyxcbiAgZmlsbHJ1bGU6ICdmaWxsUnVsZScsXG4gICdmaWxsLXJ1bGUnOiAnZmlsbFJ1bGUnLFxuICBmaWx0ZXI6ICdmaWx0ZXInLFxuICBmaWx0ZXJyZXM6ICdmaWx0ZXJSZXMnLFxuICBmaWx0ZXJ1bml0czogJ2ZpbHRlclVuaXRzJyxcbiAgZmxvb2RvcGFjaXR5OiAnZmxvb2RPcGFjaXR5JyxcbiAgJ2Zsb29kLW9wYWNpdHknOiAnZmxvb2RPcGFjaXR5JyxcbiAgZmxvb2Rjb2xvcjogJ2Zsb29kQ29sb3InLFxuICAnZmxvb2QtY29sb3InOiAnZmxvb2RDb2xvcicsXG4gIGZvY3VzYWJsZTogJ2ZvY3VzYWJsZScsXG4gIGZvbnRmYW1pbHk6ICdmb250RmFtaWx5JyxcbiAgJ2ZvbnQtZmFtaWx5JzogJ2ZvbnRGYW1pbHknLFxuICBmb250c2l6ZTogJ2ZvbnRTaXplJyxcbiAgJ2ZvbnQtc2l6ZSc6ICdmb250U2l6ZScsXG4gIGZvbnRzaXplYWRqdXN0OiAnZm9udFNpemVBZGp1c3QnLFxuICAnZm9udC1zaXplLWFkanVzdCc6ICdmb250U2l6ZUFkanVzdCcsXG4gIGZvbnRzdHJldGNoOiAnZm9udFN0cmV0Y2gnLFxuICAnZm9udC1zdHJldGNoJzogJ2ZvbnRTdHJldGNoJyxcbiAgZm9udHN0eWxlOiAnZm9udFN0eWxlJyxcbiAgJ2ZvbnQtc3R5bGUnOiAnZm9udFN0eWxlJyxcbiAgZm9udHZhcmlhbnQ6ICdmb250VmFyaWFudCcsXG4gICdmb250LXZhcmlhbnQnOiAnZm9udFZhcmlhbnQnLFxuICBmb250d2VpZ2h0OiAnZm9udFdlaWdodCcsXG4gICdmb250LXdlaWdodCc6ICdmb250V2VpZ2h0JyxcbiAgZm9ybWF0OiAnZm9ybWF0JyxcbiAgZnJvbTogJ2Zyb20nLFxuICBmeDogJ2Z4JyxcbiAgZnk6ICdmeScsXG4gIGcxOiAnZzEnLFxuICBnMjogJ2cyJyxcbiAgZ2x5cGhuYW1lOiAnZ2x5cGhOYW1lJyxcbiAgJ2dseXBoLW5hbWUnOiAnZ2x5cGhOYW1lJyxcbiAgZ2x5cGhvcmllbnRhdGlvbmhvcml6b250YWw6ICdnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbCcsXG4gICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJzogJ2dseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsJyxcbiAgZ2x5cGhvcmllbnRhdGlvbnZlcnRpY2FsOiAnZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJzogJ2dseXBoT3JpZW50YXRpb25WZXJ0aWNhbCcsXG4gIGdseXBocmVmOiAnZ2x5cGhSZWYnLFxuICBncmFkaWVudHRyYW5zZm9ybTogJ2dyYWRpZW50VHJhbnNmb3JtJyxcbiAgZ3JhZGllbnR1bml0czogJ2dyYWRpZW50VW5pdHMnLFxuICBoYW5naW5nOiAnaGFuZ2luZycsXG4gIGhvcml6YWR2eDogJ2hvcml6QWR2WCcsXG4gICdob3Jpei1hZHYteCc6ICdob3JpekFkdlgnLFxuICBob3Jpem9yaWdpbng6ICdob3Jpek9yaWdpblgnLFxuICAnaG9yaXotb3JpZ2luLXgnOiAnaG9yaXpPcmlnaW5YJyxcbiAgaWRlb2dyYXBoaWM6ICdpZGVvZ3JhcGhpYycsXG4gIGltYWdlcmVuZGVyaW5nOiAnaW1hZ2VSZW5kZXJpbmcnLFxuICAnaW1hZ2UtcmVuZGVyaW5nJzogJ2ltYWdlUmVuZGVyaW5nJyxcbiAgaW4yOiAnaW4yJyxcbiAgaW46ICdpbicsXG4gIGlubGlzdDogJ2lubGlzdCcsXG4gIGludGVyY2VwdDogJ2ludGVyY2VwdCcsXG4gIGsxOiAnazEnLFxuICBrMjogJ2syJyxcbiAgazM6ICdrMycsXG4gIGs0OiAnazQnLFxuICBrOiAnaycsXG4gIGtlcm5lbG1hdHJpeDogJ2tlcm5lbE1hdHJpeCcsXG4gIGtlcm5lbHVuaXRsZW5ndGg6ICdrZXJuZWxVbml0TGVuZ3RoJyxcbiAga2VybmluZzogJ2tlcm5pbmcnLFxuICBrZXlwb2ludHM6ICdrZXlQb2ludHMnLFxuICBrZXlzcGxpbmVzOiAna2V5U3BsaW5lcycsXG4gIGtleXRpbWVzOiAna2V5VGltZXMnLFxuICBsZW5ndGhhZGp1c3Q6ICdsZW5ndGhBZGp1c3QnLFxuICBsZXR0ZXJzcGFjaW5nOiAnbGV0dGVyU3BhY2luZycsXG4gICdsZXR0ZXItc3BhY2luZyc6ICdsZXR0ZXJTcGFjaW5nJyxcbiAgbGlnaHRpbmdjb2xvcjogJ2xpZ2h0aW5nQ29sb3InLFxuICAnbGlnaHRpbmctY29sb3InOiAnbGlnaHRpbmdDb2xvcicsXG4gIGxpbWl0aW5nY29uZWFuZ2xlOiAnbGltaXRpbmdDb25lQW5nbGUnLFxuICBsb2NhbDogJ2xvY2FsJyxcbiAgbWFya2VyZW5kOiAnbWFya2VyRW5kJyxcbiAgJ21hcmtlci1lbmQnOiAnbWFya2VyRW5kJyxcbiAgbWFya2VyaGVpZ2h0OiAnbWFya2VySGVpZ2h0JyxcbiAgbWFya2VybWlkOiAnbWFya2VyTWlkJyxcbiAgJ21hcmtlci1taWQnOiAnbWFya2VyTWlkJyxcbiAgbWFya2Vyc3RhcnQ6ICdtYXJrZXJTdGFydCcsXG4gICdtYXJrZXItc3RhcnQnOiAnbWFya2VyU3RhcnQnLFxuICBtYXJrZXJ1bml0czogJ21hcmtlclVuaXRzJyxcbiAgbWFya2Vyd2lkdGg6ICdtYXJrZXJXaWR0aCcsXG4gIG1hc2s6ICdtYXNrJyxcbiAgbWFza2NvbnRlbnR1bml0czogJ21hc2tDb250ZW50VW5pdHMnLFxuICBtYXNrdW5pdHM6ICdtYXNrVW5pdHMnLFxuICBtYXRoZW1hdGljYWw6ICdtYXRoZW1hdGljYWwnLFxuICBtb2RlOiAnbW9kZScsXG4gIG51bW9jdGF2ZXM6ICdudW1PY3RhdmVzJyxcbiAgb2Zmc2V0OiAnb2Zmc2V0JyxcbiAgb3BhY2l0eTogJ29wYWNpdHknLFxuICBvcGVyYXRvcjogJ29wZXJhdG9yJyxcbiAgb3JkZXI6ICdvcmRlcicsXG4gIG9yaWVudDogJ29yaWVudCcsXG4gIG9yaWVudGF0aW9uOiAnb3JpZW50YXRpb24nLFxuICBvcmlnaW46ICdvcmlnaW4nLFxuICBvdmVyZmxvdzogJ292ZXJmbG93JyxcbiAgb3ZlcmxpbmVwb3NpdGlvbjogJ292ZXJsaW5lUG9zaXRpb24nLFxuICAnb3ZlcmxpbmUtcG9zaXRpb24nOiAnb3ZlcmxpbmVQb3NpdGlvbicsXG4gIG92ZXJsaW5ldGhpY2tuZXNzOiAnb3ZlcmxpbmVUaGlja25lc3MnLFxuICAnb3ZlcmxpbmUtdGhpY2tuZXNzJzogJ292ZXJsaW5lVGhpY2tuZXNzJyxcbiAgcGFpbnRvcmRlcjogJ3BhaW50T3JkZXInLFxuICAncGFpbnQtb3JkZXInOiAncGFpbnRPcmRlcicsXG4gIHBhbm9zZTE6ICdwYW5vc2UxJyxcbiAgJ3Bhbm9zZS0xJzogJ3Bhbm9zZTEnLFxuICBwYXRobGVuZ3RoOiAncGF0aExlbmd0aCcsXG4gIHBhdHRlcm5jb250ZW50dW5pdHM6ICdwYXR0ZXJuQ29udGVudFVuaXRzJyxcbiAgcGF0dGVybnRyYW5zZm9ybTogJ3BhdHRlcm5UcmFuc2Zvcm0nLFxuICBwYXR0ZXJudW5pdHM6ICdwYXR0ZXJuVW5pdHMnLFxuICBwb2ludGVyZXZlbnRzOiAncG9pbnRlckV2ZW50cycsXG4gICdwb2ludGVyLWV2ZW50cyc6ICdwb2ludGVyRXZlbnRzJyxcbiAgcG9pbnRzOiAncG9pbnRzJyxcbiAgcG9pbnRzYXR4OiAncG9pbnRzQXRYJyxcbiAgcG9pbnRzYXR5OiAncG9pbnRzQXRZJyxcbiAgcG9pbnRzYXR6OiAncG9pbnRzQXRaJyxcbiAgcHJlZml4OiAncHJlZml4JyxcbiAgcHJlc2VydmVhbHBoYTogJ3ByZXNlcnZlQWxwaGEnLFxuICBwcmVzZXJ2ZWFzcGVjdHJhdGlvOiAncHJlc2VydmVBc3BlY3RSYXRpbycsXG4gIHByaW1pdGl2ZXVuaXRzOiAncHJpbWl0aXZlVW5pdHMnLFxuICBwcm9wZXJ0eTogJ3Byb3BlcnR5JyxcbiAgcjogJ3InLFxuICByYWRpdXM6ICdyYWRpdXMnLFxuICByZWZ4OiAncmVmWCcsXG4gIHJlZnk6ICdyZWZZJyxcbiAgcmVuZGVyaW5naW50ZW50OiAncmVuZGVyaW5nSW50ZW50JyxcbiAgJ3JlbmRlcmluZy1pbnRlbnQnOiAncmVuZGVyaW5nSW50ZW50JyxcbiAgcmVwZWF0Y291bnQ6ICdyZXBlYXRDb3VudCcsXG4gIHJlcGVhdGR1cjogJ3JlcGVhdER1cicsXG4gIHJlcXVpcmVkZXh0ZW5zaW9uczogJ3JlcXVpcmVkRXh0ZW5zaW9ucycsXG4gIHJlcXVpcmVkZmVhdHVyZXM6ICdyZXF1aXJlZEZlYXR1cmVzJyxcbiAgcmVzb3VyY2U6ICdyZXNvdXJjZScsXG4gIHJlc3RhcnQ6ICdyZXN0YXJ0JyxcbiAgcmVzdWx0OiAncmVzdWx0JyxcbiAgcmVzdWx0czogJ3Jlc3VsdHMnLFxuICByb3RhdGU6ICdyb3RhdGUnLFxuICByeDogJ3J4JyxcbiAgcnk6ICdyeScsXG4gIHNjYWxlOiAnc2NhbGUnLFxuICBzZWN1cml0eTogJ3NlY3VyaXR5JyxcbiAgc2VlZDogJ3NlZWQnLFxuICBzaGFwZXJlbmRlcmluZzogJ3NoYXBlUmVuZGVyaW5nJyxcbiAgJ3NoYXBlLXJlbmRlcmluZyc6ICdzaGFwZVJlbmRlcmluZycsXG4gIHNsb3BlOiAnc2xvcGUnLFxuICBzcGFjaW5nOiAnc3BhY2luZycsXG4gIHNwZWN1bGFyY29uc3RhbnQ6ICdzcGVjdWxhckNvbnN0YW50JyxcbiAgc3BlY3VsYXJleHBvbmVudDogJ3NwZWN1bGFyRXhwb25lbnQnLFxuICBzcGVlZDogJ3NwZWVkJyxcbiAgc3ByZWFkbWV0aG9kOiAnc3ByZWFkTWV0aG9kJyxcbiAgc3RhcnRvZmZzZXQ6ICdzdGFydE9mZnNldCcsXG4gIHN0ZGRldmlhdGlvbjogJ3N0ZERldmlhdGlvbicsXG4gIHN0ZW1oOiAnc3RlbWgnLFxuICBzdGVtdjogJ3N0ZW12JyxcbiAgc3RpdGNodGlsZXM6ICdzdGl0Y2hUaWxlcycsXG4gIHN0b3Bjb2xvcjogJ3N0b3BDb2xvcicsXG4gICdzdG9wLWNvbG9yJzogJ3N0b3BDb2xvcicsXG4gIHN0b3BvcGFjaXR5OiAnc3RvcE9wYWNpdHknLFxuICAnc3RvcC1vcGFjaXR5JzogJ3N0b3BPcGFjaXR5JyxcbiAgc3RyaWtldGhyb3VnaHBvc2l0aW9uOiAnc3RyaWtldGhyb3VnaFBvc2l0aW9uJyxcbiAgJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nOiAnc3RyaWtldGhyb3VnaFBvc2l0aW9uJyxcbiAgc3RyaWtldGhyb3VnaHRoaWNrbmVzczogJ3N0cmlrZXRocm91Z2hUaGlja25lc3MnLFxuICAnc3RyaWtldGhyb3VnaC10aGlja25lc3MnOiAnc3RyaWtldGhyb3VnaFRoaWNrbmVzcycsXG4gIHN0cmluZzogJ3N0cmluZycsXG4gIHN0cm9rZTogJ3N0cm9rZScsXG4gIHN0cm9rZWRhc2hhcnJheTogJ3N0cm9rZURhc2hhcnJheScsXG4gICdzdHJva2UtZGFzaGFycmF5JzogJ3N0cm9rZURhc2hhcnJheScsXG4gIHN0cm9rZWRhc2hvZmZzZXQ6ICdzdHJva2VEYXNob2Zmc2V0JyxcbiAgJ3N0cm9rZS1kYXNob2Zmc2V0JzogJ3N0cm9rZURhc2hvZmZzZXQnLFxuICBzdHJva2VsaW5lY2FwOiAnc3Ryb2tlTGluZWNhcCcsXG4gICdzdHJva2UtbGluZWNhcCc6ICdzdHJva2VMaW5lY2FwJyxcbiAgc3Ryb2tlbGluZWpvaW46ICdzdHJva2VMaW5lam9pbicsXG4gICdzdHJva2UtbGluZWpvaW4nOiAnc3Ryb2tlTGluZWpvaW4nLFxuICBzdHJva2VtaXRlcmxpbWl0OiAnc3Ryb2tlTWl0ZXJsaW1pdCcsXG4gICdzdHJva2UtbWl0ZXJsaW1pdCc6ICdzdHJva2VNaXRlcmxpbWl0JyxcbiAgc3Ryb2tld2lkdGg6ICdzdHJva2VXaWR0aCcsXG4gICdzdHJva2Utd2lkdGgnOiAnc3Ryb2tlV2lkdGgnLFxuICBzdHJva2VvcGFjaXR5OiAnc3Ryb2tlT3BhY2l0eScsXG4gICdzdHJva2Utb3BhY2l0eSc6ICdzdHJva2VPcGFjaXR5JyxcbiAgc3VwcHJlc3Njb250ZW50ZWRpdGFibGV3YXJuaW5nOiAnc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nJyxcbiAgc3VwcHJlc3NoeWRyYXRpb253YXJuaW5nOiAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJyxcbiAgc3VyZmFjZXNjYWxlOiAnc3VyZmFjZVNjYWxlJyxcbiAgc3lzdGVtbGFuZ3VhZ2U6ICdzeXN0ZW1MYW5ndWFnZScsXG4gIHRhYmxldmFsdWVzOiAndGFibGVWYWx1ZXMnLFxuICB0YXJnZXR4OiAndGFyZ2V0WCcsXG4gIHRhcmdldHk6ICd0YXJnZXRZJyxcbiAgdGV4dGFuY2hvcjogJ3RleHRBbmNob3InLFxuICAndGV4dC1hbmNob3InOiAndGV4dEFuY2hvcicsXG4gIHRleHRkZWNvcmF0aW9uOiAndGV4dERlY29yYXRpb24nLFxuICAndGV4dC1kZWNvcmF0aW9uJzogJ3RleHREZWNvcmF0aW9uJyxcbiAgdGV4dGxlbmd0aDogJ3RleHRMZW5ndGgnLFxuICB0ZXh0cmVuZGVyaW5nOiAndGV4dFJlbmRlcmluZycsXG4gICd0ZXh0LXJlbmRlcmluZyc6ICd0ZXh0UmVuZGVyaW5nJyxcbiAgdG86ICd0bycsXG4gIHRyYW5zZm9ybTogJ3RyYW5zZm9ybScsXG4gIHRyYW5zZm9ybW9yaWdpbjogJ3RyYW5zZm9ybU9yaWdpbicsXG4gICd0cmFuc2Zvcm0tb3JpZ2luJzogJ3RyYW5zZm9ybU9yaWdpbicsXG4gIHR5cGVvZjogJ3R5cGVvZicsXG4gIHUxOiAndTEnLFxuICB1MjogJ3UyJyxcbiAgdW5kZXJsaW5lcG9zaXRpb246ICd1bmRlcmxpbmVQb3NpdGlvbicsXG4gICd1bmRlcmxpbmUtcG9zaXRpb24nOiAndW5kZXJsaW5lUG9zaXRpb24nLFxuICB1bmRlcmxpbmV0aGlja25lc3M6ICd1bmRlcmxpbmVUaGlja25lc3MnLFxuICAndW5kZXJsaW5lLXRoaWNrbmVzcyc6ICd1bmRlcmxpbmVUaGlja25lc3MnLFxuICB1bmljb2RlOiAndW5pY29kZScsXG4gIHVuaWNvZGViaWRpOiAndW5pY29kZUJpZGknLFxuICAndW5pY29kZS1iaWRpJzogJ3VuaWNvZGVCaWRpJyxcbiAgdW5pY29kZXJhbmdlOiAndW5pY29kZVJhbmdlJyxcbiAgJ3VuaWNvZGUtcmFuZ2UnOiAndW5pY29kZVJhbmdlJyxcbiAgdW5pdHNwZXJlbTogJ3VuaXRzUGVyRW0nLFxuICAndW5pdHMtcGVyLWVtJzogJ3VuaXRzUGVyRW0nLFxuICB1bnNlbGVjdGFibGU6ICd1bnNlbGVjdGFibGUnLFxuICB2YWxwaGFiZXRpYzogJ3ZBbHBoYWJldGljJyxcbiAgJ3YtYWxwaGFiZXRpYyc6ICd2QWxwaGFiZXRpYycsXG4gIHZhbHVlczogJ3ZhbHVlcycsXG4gIHZlY3RvcmVmZmVjdDogJ3ZlY3RvckVmZmVjdCcsXG4gICd2ZWN0b3ItZWZmZWN0JzogJ3ZlY3RvckVmZmVjdCcsXG4gIHZlcnNpb246ICd2ZXJzaW9uJyxcbiAgdmVydGFkdnk6ICd2ZXJ0QWR2WScsXG4gICd2ZXJ0LWFkdi15JzogJ3ZlcnRBZHZZJyxcbiAgdmVydG9yaWdpbng6ICd2ZXJ0T3JpZ2luWCcsXG4gICd2ZXJ0LW9yaWdpbi14JzogJ3ZlcnRPcmlnaW5YJyxcbiAgdmVydG9yaWdpbnk6ICd2ZXJ0T3JpZ2luWScsXG4gICd2ZXJ0LW9yaWdpbi15JzogJ3ZlcnRPcmlnaW5ZJyxcbiAgdmhhbmdpbmc6ICd2SGFuZ2luZycsXG4gICd2LWhhbmdpbmcnOiAndkhhbmdpbmcnLFxuICB2aWRlb2dyYXBoaWM6ICd2SWRlb2dyYXBoaWMnLFxuICAndi1pZGVvZ3JhcGhpYyc6ICd2SWRlb2dyYXBoaWMnLFxuICB2aWV3Ym94OiAndmlld0JveCcsXG4gIHZpZXd0YXJnZXQ6ICd2aWV3VGFyZ2V0JyxcbiAgdmlzaWJpbGl0eTogJ3Zpc2liaWxpdHknLFxuICB2bWF0aGVtYXRpY2FsOiAndk1hdGhlbWF0aWNhbCcsXG4gICd2LW1hdGhlbWF0aWNhbCc6ICd2TWF0aGVtYXRpY2FsJyxcbiAgdm9jYWI6ICd2b2NhYicsXG4gIHdpZHRoczogJ3dpZHRocycsXG4gIHdvcmRzcGFjaW5nOiAnd29yZFNwYWNpbmcnLFxuICAnd29yZC1zcGFjaW5nJzogJ3dvcmRTcGFjaW5nJyxcbiAgd3JpdGluZ21vZGU6ICd3cml0aW5nTW9kZScsXG4gICd3cml0aW5nLW1vZGUnOiAnd3JpdGluZ01vZGUnLFxuICB4MTogJ3gxJyxcbiAgeDI6ICd4MicsXG4gIHg6ICd4JyxcbiAgeGNoYW5uZWxzZWxlY3RvcjogJ3hDaGFubmVsU2VsZWN0b3InLFxuICB4aGVpZ2h0OiAneEhlaWdodCcsXG4gICd4LWhlaWdodCc6ICd4SGVpZ2h0JyxcbiAgeGxpbmthY3R1YXRlOiAneGxpbmtBY3R1YXRlJyxcbiAgJ3hsaW5rOmFjdHVhdGUnOiAneGxpbmtBY3R1YXRlJyxcbiAgeGxpbmthcmNyb2xlOiAneGxpbmtBcmNyb2xlJyxcbiAgJ3hsaW5rOmFyY3JvbGUnOiAneGxpbmtBcmNyb2xlJyxcbiAgeGxpbmtocmVmOiAneGxpbmtIcmVmJyxcbiAgJ3hsaW5rOmhyZWYnOiAneGxpbmtIcmVmJyxcbiAgeGxpbmtyb2xlOiAneGxpbmtSb2xlJyxcbiAgJ3hsaW5rOnJvbGUnOiAneGxpbmtSb2xlJyxcbiAgeGxpbmtzaG93OiAneGxpbmtTaG93JyxcbiAgJ3hsaW5rOnNob3cnOiAneGxpbmtTaG93JyxcbiAgeGxpbmt0aXRsZTogJ3hsaW5rVGl0bGUnLFxuICAneGxpbms6dGl0bGUnOiAneGxpbmtUaXRsZScsXG4gIHhsaW5rdHlwZTogJ3hsaW5rVHlwZScsXG4gICd4bGluazp0eXBlJzogJ3hsaW5rVHlwZScsXG4gIHhtbGJhc2U6ICd4bWxCYXNlJyxcbiAgJ3htbDpiYXNlJzogJ3htbEJhc2UnLFxuICB4bWxsYW5nOiAneG1sTGFuZycsXG4gICd4bWw6bGFuZyc6ICd4bWxMYW5nJyxcbiAgeG1sbnM6ICd4bWxucycsXG4gICd4bWw6c3BhY2UnOiAneG1sU3BhY2UnLFxuICB4bWxuc3hsaW5rOiAneG1sbnNYbGluaycsXG4gICd4bWxuczp4bGluayc6ICd4bWxuc1hsaW5rJyxcbiAgeG1sc3BhY2U6ICd4bWxTcGFjZScsXG4gIHkxOiAneTEnLFxuICB5MjogJ3kyJyxcbiAgeTogJ3knLFxuICB5Y2hhbm5lbHNlbGVjdG9yOiAneUNoYW5uZWxTZWxlY3RvcicsXG4gIHo6ICd6JyxcbiAgem9vbWFuZHBhbjogJ3pvb21BbmRQYW4nXG59O1xuXG52YXIgd2FybmVkUHJvcGVydGllcyA9IHt9O1xudmFyIEVWRU5UX05BTUVfUkVHRVggPSAvXm9uLi87XG52YXIgSU5WQUxJRF9FVkVOVF9OQU1FX1JFR0VYID0gL15vblteQS1aXS87XG52YXIgckFSSUEgPSBuZXcgUmVnRXhwKCdeKGFyaWEpLVsnICsgQVRUUklCVVRFX05BTUVfQ0hBUiArICddKiQnKSA7XG52YXIgckFSSUFDYW1lbCA9IG5ldyBSZWdFeHAoJ14oYXJpYSlbQS1aXVsnICsgQVRUUklCVVRFX05BTUVfQ0hBUiArICddKiQnKSA7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkodGFnTmFtZSwgbmFtZSwgdmFsdWUsIGV2ZW50UmVnaXN0cnkpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHdhcm5lZFByb3BlcnRpZXMsIG5hbWUpICYmIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChsb3dlckNhc2VkTmFtZSA9PT0gJ29uZm9jdXNpbicgfHwgbG93ZXJDYXNlZE5hbWUgPT09ICdvbmZvY3Vzb3V0Jykge1xuICAgICAgZXJyb3IoJ1JlYWN0IHVzZXMgb25Gb2N1cyBhbmQgb25CbHVyIGluc3RlYWQgb2Ygb25Gb2N1c0luIGFuZCBvbkZvY3VzT3V0LiAnICsgJ0FsbCBSZWFjdCBldmVudHMgYXJlIG5vcm1hbGl6ZWQgdG8gYnViYmxlLCBzbyBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQgJyArICdhcmUgbm90IG5lZWRlZC9zdXBwb3J0ZWQgYnkgUmVhY3QuJyk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAge1xuICAgICAgLy8gQWN0aW9ucyBhcmUgc3BlY2lhbCBiZWNhdXNlIHVubGlrZSBldmVudHMgdGhleSBjYW4gaGF2ZSBvdGhlciB2YWx1ZSB0eXBlcy5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKHRhZ05hbWUgPT09ICdmb3JtJyAmJiBuYW1lID09PSAnYWN0aW9uJykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhZ05hbWUgPT09ICdpbnB1dCcgJiYgbmFtZSA9PT0gJ2Zvcm1BY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFnTmFtZSA9PT0gJ2J1dHRvbicgJiYgbmFtZSA9PT0gJ2Zvcm1BY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIFdlIGNhbid0IHJlbHkgb24gdGhlIGV2ZW50IHN5c3RlbSBiZWluZyBpbmplY3RlZCBvbiB0aGUgc2VydmVyLlxuXG5cbiAgICBpZiAoZXZlbnRSZWdpc3RyeSAhPSBudWxsKSB7XG4gICAgICB2YXIgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcyA9IGV2ZW50UmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcyxcbiAgICAgICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzID0gZXZlbnRSZWdpc3RyeS5wb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzO1xuXG4gICAgICBpZiAocmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlZ2lzdHJhdGlvbk5hbWUgPSBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKSA/IHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXNbbG93ZXJDYXNlZE5hbWVdIDogbnVsbDtcblxuICAgICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWUgIT0gbnVsbCkge1xuICAgICAgICBlcnJvcignSW52YWxpZCBldmVudCBoYW5kbGVyIHByb3BlcnR5IGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgPycsIG5hbWUsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKEVWRU5UX05BTUVfUkVHRVgudGVzdChuYW1lKSkge1xuICAgICAgICBlcnJvcignVW5rbm93biBldmVudCBoYW5kbGVyIHByb3BlcnR5IGAlc2AuIEl0IHdpbGwgYmUgaWdub3JlZC4nLCBuYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChFVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpIHtcbiAgICAgIC8vIElmIG5vIGV2ZW50IHBsdWdpbnMgaGF2ZSBiZWVuIGluamVjdGVkLCB3ZSBhcmUgaW4gYSBzZXJ2ZXIgZW52aXJvbm1lbnQuXG4gICAgICAvLyBTbyB3ZSBjYW4ndCB0ZWxsIGlmIHRoZSBldmVudCBuYW1lIGlzIGNvcnJlY3QgZm9yIHN1cmUsIGJ1dCB3ZSBjYW4gZmlsdGVyXG4gICAgICAvLyBvdXQga25vd24gYmFkIG9uZXMgbGlrZSBgb25jbGlja2AuIFdlIGNhbid0IHN1Z2dlc3QgYSBzcGVjaWZpYyByZXBsYWNlbWVudCB0aG91Z2guXG4gICAgICBpZiAoSU5WQUxJRF9FVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpIHtcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiAnICsgJ1JlYWN0IGV2ZW50cyB1c2UgdGhlIGNhbWVsQ2FzZSBuYW1pbmcgY29udmVudGlvbiwgZm9yIGV4YW1wbGUgYG9uQ2xpY2tgLicsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gLy8gTGV0IHRoZSBBUklBIGF0dHJpYnV0ZSBob29rIHZhbGlkYXRlIEFSSUEgYXR0cmlidXRlc1xuXG5cbiAgICBpZiAockFSSUEudGVzdChuYW1lKSB8fCByQVJJQUNhbWVsLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChsb3dlckNhc2VkTmFtZSA9PT0gJ2lubmVyaHRtbCcpIHtcbiAgICAgIGVycm9yKCdEaXJlY3RseSBzZXR0aW5nIHByb3BlcnR5IGBpbm5lckhUTUxgIGlzIG5vdCBwZXJtaXR0ZWQuICcgKyAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2t1cCBkb2N1bWVudGF0aW9uIG9uIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuJyk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyQ2FzZWROYW1lID09PSAnYXJpYScpIHtcbiAgICAgIGVycm9yKCdUaGUgYGFyaWFgIGF0dHJpYnV0ZSBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBpbiBSZWFjdC4gJyArICdQYXNzIGluZGl2aWR1YWwgYGFyaWEtYCBhdHRyaWJ1dGVzIGluc3RlYWQuJyk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyQ2FzZWROYW1lID09PSAnaXMnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGEgYCVzYCBmb3IgYSBzdHJpbmcgYXR0cmlidXRlIGBpc2AuIElmIHRoaXMgaXMgZXhwZWN0ZWQsIGNhc3QgJyArICd0aGUgdmFsdWUgdG8gYSBzdHJpbmcuJywgdHlwZW9mIHZhbHVlKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc05hTih2YWx1ZSkpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBOYU4gZm9yIHRoZSBgJXNgIGF0dHJpYnV0ZS4gSWYgdGhpcyBpcyBleHBlY3RlZCwgY2FzdCAnICsgJ3RoZSB2YWx1ZSB0byBhIHN0cmluZy4nLCBuYW1lKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IC8vIEtub3duIGF0dHJpYnV0ZXMgc2hvdWxkIG1hdGNoIHRoZSBjYXNpbmcgc3BlY2lmaWVkIGluIHRoZSBwcm9wZXJ0eSBjb25maWcuXG5cblxuICAgIGlmIChwb3NzaWJsZVN0YW5kYXJkTmFtZXMuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpKSB7XG4gICAgICB2YXIgc3RhbmRhcmROYW1lID0gcG9zc2libGVTdGFuZGFyZE5hbWVzW2xvd2VyQ2FzZWROYW1lXTtcblxuICAgICAgaWYgKHN0YW5kYXJkTmFtZSAhPT0gbmFtZSkge1xuICAgICAgICBlcnJvcignSW52YWxpZCBET00gcHJvcGVydHkgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/JywgbmFtZSwgc3RhbmRhcmROYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuYW1lICE9PSBsb3dlckNhc2VkTmFtZSkge1xuICAgICAgLy8gVW5rbm93biBhdHRyaWJ1dGVzIHNob3VsZCBoYXZlIGxvd2VyY2FzZSBjYXNpbmcgc2luY2UgdGhhdCdzIGhvdyB0aGV5XG4gICAgICAvLyB3aWxsIGJlIGNhc2VkIGFueXdheSB3aXRoIHNlcnZlciByZW5kZXJpbmcuXG4gICAgICBlcnJvcignUmVhY3QgZG9lcyBub3QgcmVjb2duaXplIHRoZSBgJXNgIHByb3Agb24gYSBET00gZWxlbWVudC4gSWYgeW91ICcgKyAnaW50ZW50aW9uYWxseSB3YW50IGl0IHRvIGFwcGVhciBpbiB0aGUgRE9NIGFzIGEgY3VzdG9tICcgKyAnYXR0cmlidXRlLCBzcGVsbCBpdCBhcyBsb3dlcmNhc2UgYCVzYCBpbnN0ZWFkLiAnICsgJ0lmIHlvdSBhY2NpZGVudGFsbHkgcGFzc2VkIGl0IGZyb20gYSBwYXJlbnQgY29tcG9uZW50LCByZW1vdmUgJyArICdpdCBmcm9tIHRoZSBET00gZWxlbWVudC4nLCBuYW1lLCBsb3dlckNhc2VkTmFtZSk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBOb3cgdGhhdCB3ZSd2ZSB2YWxpZGF0ZWQgY2FzaW5nLCBkbyBub3QgdmFsaWRhdGVcbiAgICAvLyBkYXRhIHR5cGVzIGZvciByZXNlcnZlZCBwcm9wc1xuXG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJzpcbiAgICAgIGNhc2UgJ2NoaWxkcmVuJzpcbiAgICAgIGNhc2UgJ3N0eWxlJzpcbiAgICAgIGNhc2UgJ3N1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyc6XG4gICAgICBjYXNlICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnOlxuICAgICAgY2FzZSAnZGVmYXVsdFZhbHVlJzogLy8gUmVzZXJ2ZWRcblxuICAgICAgY2FzZSAnZGVmYXVsdENoZWNrZWQnOlxuICAgICAgY2FzZSAnaW5uZXJIVE1MJzpcbiAgICAgICAge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHtcbiAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2F1dG9Gb2N1cyc6XG4gICAgICAgICAgICBjYXNlICdjaGVja2VkJzpcbiAgICAgICAgICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICAgICAgICAgIGNhc2UgJ211dGVkJzpcbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdGVkJzpcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnRFZGl0YWJsZSc6XG4gICAgICAgICAgICBjYXNlICdzcGVsbENoZWNrJzpcbiAgICAgICAgICAgIGNhc2UgJ2RyYWdnYWJsZSc6XG4gICAgICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgICBjYXNlICdhdXRvUmV2ZXJzZSc6XG4gICAgICAgICAgICBjYXNlICdleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkJzpcbiAgICAgICAgICAgIGNhc2UgJ2ZvY3VzYWJsZSc6XG4gICAgICAgICAgICBjYXNlICdwcmVzZXJ2ZUFscGhhJzpcbiAgICAgICAgICAgIGNhc2UgJ2FsbG93RnVsbFNjcmVlbic6XG4gICAgICAgICAgICBjYXNlICdhc3luYyc6XG4gICAgICAgICAgICBjYXNlICdhdXRvUGxheSc6XG4gICAgICAgICAgICBjYXNlICdjb250cm9scyc6XG4gICAgICAgICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgICAgIGNhc2UgJ2RlZmVyJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rpc2FibGVkJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rpc2FibGVQaWN0dXJlSW5QaWN0dXJlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rpc2FibGVSZW1vdGVQbGF5YmFjayc6XG4gICAgICAgICAgICBjYXNlICdmb3JtTm9WYWxpZGF0ZSc6XG4gICAgICAgICAgICBjYXNlICdoaWRkZW4nOlxuICAgICAgICAgICAgY2FzZSAnbG9vcCc6XG4gICAgICAgICAgICBjYXNlICdub01vZHVsZSc6XG4gICAgICAgICAgICBjYXNlICdub1ZhbGlkYXRlJzpcbiAgICAgICAgICAgIGNhc2UgJ29wZW4nOlxuICAgICAgICAgICAgY2FzZSAncGxheXNJbmxpbmUnOlxuICAgICAgICAgICAgY2FzZSAncmVhZE9ubHknOlxuICAgICAgICAgICAgY2FzZSAncmVxdWlyZWQnOlxuICAgICAgICAgICAgY2FzZSAncmV2ZXJzZWQnOlxuICAgICAgICAgICAgY2FzZSAnc2NvcGVkJzpcbiAgICAgICAgICAgIGNhc2UgJ3NlYW1sZXNzJzpcbiAgICAgICAgICAgIGNhc2UgJ2l0ZW1TY29wZSc6XG4gICAgICAgICAgICBjYXNlICdjYXB0dXJlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rvd25sb2FkJzpcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIEJvb2xlYW4gcHJvcGVydGllcyBjYW4gYWNjZXB0IGJvb2xlYW4gdmFsdWVzXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhciBwcmVmaXggPSBuYW1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCwgNSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocHJlZml4ID09PSAnZGF0YS0nIHx8IHByZWZpeCA9PT0gJ2FyaWEtJykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignUmVjZWl2ZWQgYCVzYCBmb3IgYSBub24tYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC5cXG5cXG4nICsgJ0lmIHlvdSB3YW50IHRvIHdyaXRlIGl0IHRvIHRoZSBET00sIHBhc3MgYSBzdHJpbmcgaW5zdGVhZDogJyArICclcz1cIiVzXCIgb3IgJXM9e3ZhbHVlLnRvU3RyaW5nKCl9LicsIHZhbHVlLCBuYW1lLCBuYW1lLCB2YWx1ZSwgbmFtZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdSZWNlaXZlZCBgJXNgIGZvciBhIG5vbi1ib29sZWFuIGF0dHJpYnV0ZSBgJXNgLlxcblxcbicgKyAnSWYgeW91IHdhbnQgdG8gd3JpdGUgaXQgdG8gdGhlIERPTSwgcGFzcyBhIHN0cmluZyBpbnN0ZWFkOiAnICsgJyVzPVwiJXNcIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uXFxuXFxuJyArICdJZiB5b3UgdXNlZCB0byBjb25kaXRpb25hbGx5IG9taXQgaXQgd2l0aCAlcz17Y29uZGl0aW9uICYmIHZhbHVlfSwgJyArICdwYXNzICVzPXtjb25kaXRpb24gPyB2YWx1ZSA6IHVuZGVmaW5lZH0gaW5zdGVhZC4nLCB2YWx1ZSwgbmFtZSwgbmFtZSwgdmFsdWUsIG5hbWUsIG5hbWUsIG5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgICAgLy8gV2FybiB3aGVuIGEga25vd24gYXR0cmlidXRlIGlzIGEgYmFkIHR5cGVcbiAgICAgICAgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFdhcm4gd2hlbiBwYXNzaW5nIHRoZSBzdHJpbmdzICdmYWxzZScgb3IgJ3RydWUnIGludG8gYSBib29sZWFuIHByb3BcbiAgICAgICAgICBpZiAodmFsdWUgPT09ICdmYWxzZScgfHwgdmFsdWUgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ2NoZWNrZWQnOlxuICAgICAgICAgICAgICBjYXNlICdzZWxlY3RlZCc6XG4gICAgICAgICAgICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICAgICAgICAgICAgY2FzZSAnbXV0ZWQnOlxuICAgICAgICAgICAgICBjYXNlICdhbGxvd0Z1bGxTY3JlZW4nOlxuICAgICAgICAgICAgICBjYXNlICdhc3luYyc6XG4gICAgICAgICAgICAgIGNhc2UgJ2F1dG9QbGF5JzpcbiAgICAgICAgICAgICAgY2FzZSAnY29udHJvbHMnOlxuICAgICAgICAgICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgICAgICAgY2FzZSAnZGVmZXInOlxuICAgICAgICAgICAgICBjYXNlICdkaXNhYmxlZCc6XG4gICAgICAgICAgICAgIGNhc2UgJ2Rpc2FibGVQaWN0dXJlSW5QaWN0dXJlJzpcbiAgICAgICAgICAgICAgY2FzZSAnZGlzYWJsZVJlbW90ZVBsYXliYWNrJzpcbiAgICAgICAgICAgICAgY2FzZSAnZm9ybU5vVmFsaWRhdGUnOlxuICAgICAgICAgICAgICBjYXNlICdoaWRkZW4nOlxuICAgICAgICAgICAgICBjYXNlICdsb29wJzpcbiAgICAgICAgICAgICAgY2FzZSAnbm9Nb2R1bGUnOlxuICAgICAgICAgICAgICBjYXNlICdub1ZhbGlkYXRlJzpcbiAgICAgICAgICAgICAgY2FzZSAnb3Blbic6XG4gICAgICAgICAgICAgIGNhc2UgJ3BsYXlzSW5saW5lJzpcbiAgICAgICAgICAgICAgY2FzZSAncmVhZE9ubHknOlxuICAgICAgICAgICAgICBjYXNlICdyZXF1aXJlZCc6XG4gICAgICAgICAgICAgIGNhc2UgJ3JldmVyc2VkJzpcbiAgICAgICAgICAgICAgY2FzZSAnc2NvcGVkJzpcbiAgICAgICAgICAgICAgY2FzZSAnc2VhbWxlc3MnOlxuICAgICAgICAgICAgICBjYXNlICdpdGVtU2NvcGUnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXJyb3IoJ1JlY2VpdmVkIHRoZSBzdHJpbmcgYCVzYCBmb3IgdGhlIGJvb2xlYW4gYXR0cmlidXRlIGAlc2AuICcgKyAnJXMgJyArICdEaWQgeW91IG1lYW4gJXM9eyVzfT8nLCB2YWx1ZSwgbmFtZSwgdmFsdWUgPT09ICdmYWxzZScgPyAnVGhlIGJyb3dzZXIgd2lsbCBpbnRlcnByZXQgaXQgYXMgYSB0cnV0aHkgdmFsdWUuJyA6ICdBbHRob3VnaCB0aGlzIHdvcmtzLCBpdCB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIGlmIHlvdSBwYXNzIHRoZSBzdHJpbmcgXCJmYWxzZVwiLicsIG5hbWUsIHZhbHVlKTtcblxuICAgICAgICAgICAgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuVW5rbm93blByb3BlcnRpZXModHlwZSwgcHJvcHMsIGV2ZW50UmVnaXN0cnkpIHtcbiAge1xuICAgIHZhciB1bmtub3duUHJvcHMgPSBbXTtcblxuICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgdmFyIGlzVmFsaWQgPSB2YWxpZGF0ZVByb3BlcnR5KHR5cGUsIGtleSwgcHJvcHNba2V5XSwgZXZlbnRSZWdpc3RyeSk7XG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICB1bmtub3duUHJvcHMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB1bmtub3duUHJvcFN0cmluZyA9IHVua25vd25Qcm9wcy5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgIHJldHVybiAnYCcgKyBwcm9wICsgJ2AnO1xuICAgIH0pLmpvaW4oJywgJyk7XG5cbiAgICBpZiAodW5rbm93blByb3BzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHByb3AgJXMgb24gPCVzPiB0YWcuIEVpdGhlciByZW1vdmUgaXQgZnJvbSB0aGUgZWxlbWVudCwgJyArICdvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIGl0IGluIHRoZSBET00uICcgKyAnRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvYXR0cmlidXRlLWJlaGF2aW9yICcsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9IGVsc2UgaWYgKHVua25vd25Qcm9wcy5sZW5ndGggPiAxKSB7XG4gICAgICBlcnJvcignSW52YWxpZCB2YWx1ZXMgZm9yIHByb3BzICVzIG9uIDwlcz4gdGFnLiBFaXRoZXIgcmVtb3ZlIHRoZW0gZnJvbSB0aGUgZWxlbWVudCwgJyArICdvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIHRoZW0gaW4gdGhlIERPTS4gJyArICdGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9hdHRyaWJ1dGUtYmVoYXZpb3IgJywgdW5rbm93blByb3BTdHJpbmcsIHR5cGUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXModHlwZSwgcHJvcHMsIGV2ZW50UmVnaXN0cnkpIHtcbiAgaWYgKGlzQ3VzdG9tRWxlbWVudCh0eXBlKSB8fCB0eXBlb2YgcHJvcHMuaXMgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgd2FyblVua25vd25Qcm9wZXJ0aWVzKHR5cGUsIHByb3BzLCBldmVudFJlZ2lzdHJ5KTtcbn1cblxuLy8gJ21zVHJhbnNmb3JtJyBpcyBjb3JyZWN0LCBidXQgdGhlIG90aGVyIHByZWZpeGVzIHNob3VsZCBiZSBjYXBpdGFsaXplZFxudmFyIGJhZFZlbmRvcmVkU3R5bGVOYW1lUGF0dGVybiA9IC9eKD86d2Via2l0fG1venxvKVtBLVpdLztcbnZhciBtc1BhdHRlcm4kMSA9IC9eLW1zLS87XG52YXIgaHlwaGVuUGF0dGVybiA9IC8tKC4pL2c7IC8vIHN0eWxlIHZhbHVlcyBzaG91bGRuJ3QgY29udGFpbiBhIHNlbWljb2xvblxuXG52YXIgYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuID0gLztcXHMqJC87XG52YXIgd2FybmVkU3R5bGVOYW1lcyA9IHt9O1xudmFyIHdhcm5lZFN0eWxlVmFsdWVzID0ge307XG52YXIgd2FybmVkRm9yTmFOVmFsdWUgPSBmYWxzZTtcbnZhciB3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGNhbWVsaXplKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoaHlwaGVuUGF0dGVybiwgZnVuY3Rpb24gKF8sIGNoYXJhY3Rlcikge1xuICAgIHJldHVybiBjaGFyYWN0ZXIudG9VcHBlckNhc2UoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdhcm5IeXBoZW5hdGVkU3R5bGVOYW1lKG5hbWUpIHtcbiAge1xuICAgIGlmICh3YXJuZWRTdHlsZU5hbWVzLmhhc093blByb3BlcnR5KG5hbWUpICYmIHdhcm5lZFN0eWxlTmFtZXNbbmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRTdHlsZU5hbWVzW25hbWVdID0gdHJ1ZTtcblxuICAgIGVycm9yKCdVbnN1cHBvcnRlZCBzdHlsZSBwcm9wZXJ0eSAlcy4gRGlkIHlvdSBtZWFuICVzPycsIG5hbWUsIC8vIEFzIEFuZGkgU21pdGggc3VnZ2VzdHNcbiAgICAvLyAoaHR0cDovL3d3dy5hbmRpc21pdGguY29tL2Jsb2cvMjAxMi8wMi9tb2Rlcm5penItcHJlZml4ZWQvKSwgYW4gYC1tc2AgcHJlZml4XG4gICAgLy8gaXMgY29udmVydGVkIHRvIGxvd2VyY2FzZSBgbXNgLlxuICAgIGNhbWVsaXplKG5hbWUucmVwbGFjZShtc1BhdHRlcm4kMSwgJ21zLScpKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gd2FybkJhZFZlbmRvcmVkU3R5bGVOYW1lKG5hbWUpIHtcbiAge1xuICAgIGlmICh3YXJuZWRTdHlsZU5hbWVzLmhhc093blByb3BlcnR5KG5hbWUpICYmIHdhcm5lZFN0eWxlTmFtZXNbbmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRTdHlsZU5hbWVzW25hbWVdID0gdHJ1ZTtcblxuICAgIGVycm9yKCdVbnN1cHBvcnRlZCB2ZW5kb3ItcHJlZml4ZWQgc3R5bGUgcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gd2FyblN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uKG5hbWUsIHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2FybmVkU3R5bGVWYWx1ZXMuaGFzT3duUHJvcGVydHkodmFsdWUpICYmIHdhcm5lZFN0eWxlVmFsdWVzW3ZhbHVlXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdhcm5lZFN0eWxlVmFsdWVzW3ZhbHVlXSA9IHRydWU7XG5cbiAgICBlcnJvcihcIlN0eWxlIHByb3BlcnR5IHZhbHVlcyBzaG91bGRuJ3QgY29udGFpbiBhIHNlbWljb2xvbi4gXCIgKyAnVHJ5IFwiJXM6ICVzXCIgaW5zdGVhZC4nLCBuYW1lLCB2YWx1ZS5yZXBsYWNlKGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiwgJycpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuU3R5bGVWYWx1ZUlzTmFOKG5hbWUsIHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2FybmVkRm9yTmFOVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRGb3JOYU5WYWx1ZSA9IHRydWU7XG5cbiAgICBlcnJvcignYE5hTmAgaXMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgdGhlIGAlc2AgY3NzIHN0eWxlIHByb3BlcnR5LicsIG5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHdhcm5TdHlsZVZhbHVlSXNJbmZpbml0eShuYW1lLCB2YWx1ZSkge1xuICB7XG4gICAgaWYgKHdhcm5lZEZvckluZmluaXR5VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gdHJ1ZTtcblxuICAgIGVycm9yKCdgSW5maW5pdHlgIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS4nLCBuYW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuVmFsaWRTdHlsZShuYW1lLCB2YWx1ZSkge1xuICB7XG4gICAgaWYgKG5hbWUuaW5kZXhPZignLScpID4gLTEpIHtcbiAgICAgIHdhcm5IeXBoZW5hdGVkU3R5bGVOYW1lKG5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYmFkVmVuZG9yZWRTdHlsZU5hbWVQYXR0ZXJuLnRlc3QobmFtZSkpIHtcbiAgICAgIHdhcm5CYWRWZW5kb3JlZFN0eWxlTmFtZShuYW1lKTtcbiAgICB9IGVsc2UgaWYgKGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgd2FyblN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uKG5hbWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgICB3YXJuU3R5bGVWYWx1ZUlzTmFOKG5hbWUpO1xuICAgICAgfSBlbHNlIGlmICghaXNGaW5pdGUodmFsdWUpKSB7XG4gICAgICAgIHdhcm5TdHlsZVZhbHVlSXNJbmZpbml0eShuYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmcoaW5wdXQpIHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gaW5wdXQgPT09ICd1c2UtY3JlZGVudGlhbHMnID8gaW5wdXQgOiAnJztcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIGNvZGUgY29waWVkIGFuZCBtb2RpZmllZCBmcm9tIGVzY2FwZS1odG1sXG52YXIgbWF0Y2hIdG1sUmVnRXhwID0gL1tcIicmPD5dLztcbi8qKlxuICogRXNjYXBlcyBzcGVjaWFsIGNoYXJhY3RlcnMgYW5kIEhUTUwgZW50aXRpZXMgaW4gYSBnaXZlbiBodG1sIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHN0cmluZyBIVE1MIHN0cmluZyB0byBlc2NhcGUgZm9yIGxhdGVyIGluc2VydGlvblxuICogQHJldHVybiB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGVzY2FwZUh0bWwoc3RyaW5nKSB7XG4gIHtcbiAgICBjaGVja0h0bWxTdHJpbmdDb2VyY2lvbihzdHJpbmcpO1xuICB9XG5cbiAgdmFyIHN0ciA9ICcnICsgc3RyaW5nO1xuICB2YXIgbWF0Y2ggPSBtYXRjaEh0bWxSZWdFeHAuZXhlYyhzdHIpO1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgdmFyIGVzY2FwZTtcbiAgdmFyIGh0bWwgPSAnJztcbiAgdmFyIGluZGV4O1xuICB2YXIgbGFzdEluZGV4ID0gMDtcblxuICBmb3IgKGluZGV4ID0gbWF0Y2guaW5kZXg7IGluZGV4IDwgc3RyLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIHN3aXRjaCAoc3RyLmNoYXJDb2RlQXQoaW5kZXgpKSB7XG4gICAgICBjYXNlIDM0OlxuICAgICAgICAvLyBcIlxuICAgICAgICBlc2NhcGUgPSAnJnF1b3Q7JztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMzg6XG4gICAgICAgIC8vICZcbiAgICAgICAgZXNjYXBlID0gJyZhbXA7JztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMzk6XG4gICAgICAgIC8vICdcbiAgICAgICAgZXNjYXBlID0gJyYjeDI3Oyc7IC8vIG1vZGlmaWVkIGZyb20gZXNjYXBlLWh0bWw7IHVzZWQgdG8gYmUgJyYjMzknXG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgNjA6XG4gICAgICAgIC8vIDxcbiAgICAgICAgZXNjYXBlID0gJyZsdDsnO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSA2MjpcbiAgICAgICAgLy8gPlxuICAgICAgICBlc2NhcGUgPSAnJmd0Oyc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobGFzdEluZGV4ICE9PSBpbmRleCkge1xuICAgICAgaHRtbCArPSBzdHIuc2xpY2UobGFzdEluZGV4LCBpbmRleCk7XG4gICAgfVxuXG4gICAgbGFzdEluZGV4ID0gaW5kZXggKyAxO1xuICAgIGh0bWwgKz0gZXNjYXBlO1xuICB9XG5cbiAgcmV0dXJuIGxhc3RJbmRleCAhPT0gaW5kZXggPyBodG1sICsgc3RyLnNsaWNlKGxhc3RJbmRleCwgaW5kZXgpIDogaHRtbDtcbn0gLy8gZW5kIGNvZGUgY29waWVkIGFuZCBtb2RpZmllZCBmcm9tIGVzY2FwZS1odG1sXG5cbi8qKlxuICogRXNjYXBlcyB0ZXh0IHRvIHByZXZlbnQgc2NyaXB0aW5nIGF0dGFja3MuXG4gKlxuICogQHBhcmFtIHsqfSB0ZXh0IFRleHQgdmFsdWUgdG8gZXNjYXBlLlxuICogQHJldHVybiB7c3RyaW5nfSBBbiBlc2NhcGVkIHN0cmluZy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGVzY2FwZVRleHRGb3JCcm93c2VyKHRleHQpIHtcbiAgaWYgKHR5cGVvZiB0ZXh0ID09PSAnYm9vbGVhbicgfHwgdHlwZW9mIHRleHQgPT09ICdudW1iZXInKSB7XG4gICAgLy8gdGhpcyBzaG9ydGNpcmN1aXQgaGVscHMgcGVyZiBmb3IgdHlwZXMgdGhhdCB3ZSBrbm93IHdpbGwgbmV2ZXIgaGF2ZVxuICAgIC8vIHNwZWNpYWwgY2hhcmFjdGVycywgZXNwZWNpYWxseSBnaXZlbiB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvZnRlblxuICAgIC8vIGZvciBudW1lcmljIGRvbSBpZHMuXG4gICAgcmV0dXJuICcnICsgdGV4dDtcbiAgfVxuXG4gIHJldHVybiBlc2NhcGVIdG1sKHRleHQpO1xufVxuXG52YXIgdXBwZXJjYXNlUGF0dGVybiA9IC8oW0EtWl0pL2c7XG52YXIgbXNQYXR0ZXJuID0gL15tcy0vO1xuLyoqXG4gKiBIeXBoZW5hdGVzIGEgY2FtZWxjYXNlZCBDU1MgcHJvcGVydHkgbmFtZSwgZm9yIGV4YW1wbGU6XG4gKlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnYmFja2dyb3VuZENvbG9yJylcbiAqICAgPCBcImJhY2tncm91bmQtY29sb3JcIlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnTW96VHJhbnNpdGlvbicpXG4gKiAgIDwgXCItbW96LXRyYW5zaXRpb25cIlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnbXNUcmFuc2l0aW9uJylcbiAqICAgPCBcIi1tcy10cmFuc2l0aW9uXCJcbiAqXG4gKiBBcyBNb2Rlcm5penIgc3VnZ2VzdHMgKGh0dHA6Ly9tb2Rlcm5penIuY29tL2RvY3MvI3ByZWZpeGVkKSwgYW4gYG1zYCBwcmVmaXhcbiAqIGlzIGNvbnZlcnRlZCB0byBgLW1zLWAuXG4gKi9cblxuZnVuY3Rpb24gaHlwaGVuYXRlU3R5bGVOYW1lKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZSh1cHBlcmNhc2VQYXR0ZXJuLCAnLSQxJykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKG1zUGF0dGVybiwgJy1tcy0nKTtcbn1cblxuLy8gYW5kIGFueSBuZXdsaW5lIG9yIHRhYiBhcmUgZmlsdGVyZWQgb3V0IGFzIGlmIHRoZXkncmUgbm90IHBhcnQgb2YgdGhlIFVSTC5cbi8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jdXJsLXBhcnNpbmdcbi8vIFRhYiBvciBuZXdsaW5lIGFyZSBkZWZpbmVkIGFzIFxcclxcblxcdDpcbi8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNhc2NpaS10YWItb3ItbmV3bGluZVxuLy8gQSBDMCBjb250cm9sIGlzIGEgY29kZSBwb2ludCBpbiB0aGUgcmFuZ2UgXFx1MDAwMCBOVUxMIHRvIFxcdTAwMUZcbi8vIElORk9STUFUSU9OIFNFUEFSQVRPUiBPTkUsIGluY2x1c2l2ZTpcbi8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNjMC1jb250cm9sLW9yLXNwYWNlXG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cblxudmFyIGlzSmF2YVNjcmlwdFByb3RvY29sID0gL15bXFx1MDAwMC1cXHUwMDFGIF0qaltcXHJcXG5cXHRdKmFbXFxyXFxuXFx0XSp2W1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnNbXFxyXFxuXFx0XSpjW1xcclxcblxcdF0qcltcXHJcXG5cXHRdKmlbXFxyXFxuXFx0XSpwW1xcclxcblxcdF0qdFtcXHJcXG5cXHRdKlxcOi9pO1xudmFyIGRpZFdhcm4gPSBmYWxzZTtcblxuZnVuY3Rpb24gc2FuaXRpemVVUkwodXJsKSB7XG4gIC8vIFdlIHNob3VsZCBuZXZlciBoYXZlIHN5bWJvbHMgaGVyZSBiZWNhdXNlIHRoZXkgZ2V0IGZpbHRlcmVkIG91dCBlbHNld2hlcmUuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICB2YXIgc3RyaW5naWZpZWRVUkwgPSAnJyArIHVybDtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuICYmIGlzSmF2YVNjcmlwdFByb3RvY29sLnRlc3Qoc3RyaW5naWZpZWRVUkwpKSB7XG4gICAgICBkaWRXYXJuID0gdHJ1ZTtcblxuICAgICAgZXJyb3IoJ0EgZnV0dXJlIHZlcnNpb24gb2YgUmVhY3Qgd2lsbCBibG9jayBqYXZhc2NyaXB0OiBVUkxzIGFzIGEgc2VjdXJpdHkgcHJlY2F1dGlvbi4gJyArICdVc2UgZXZlbnQgaGFuZGxlcnMgaW5zdGVhZCBpZiB5b3UgY2FuLiBJZiB5b3UgbmVlZCB0byBnZW5lcmF0ZSB1bnNhZmUgSFRNTCB0cnkgJyArICd1c2luZyBkYW5nZXJvdXNseVNldElubmVySFRNTCBpbnN0ZWFkLiBSZWFjdCB3YXMgcGFzc2VkICVzLicsIEpTT04uc3RyaW5naWZ5KHN0cmluZ2lmaWVkVVJMKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVybDtcbn1cblxudmFyIGlzQXJyYXlJbXBsID0gQXJyYXkuaXNBcnJheTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuXG5mdW5jdGlvbiBpc0FycmF5KGEpIHtcbiAgcmV0dXJuIGlzQXJyYXlJbXBsKGEpO1xufVxuXG4vLyBUaGUgYnVpbGQgc2NyaXB0IGlzIGF0IHNjcmlwdHMvcm9sbHVwL2dlbmVyYXRlLWlubGluZS1maXp6LXJ1bnRpbWUuanMuXG4vLyBSdW4gYHlhcm4gZ2VuZXJhdGUtaW5saW5lLWZpenotcnVudGltZWAgdG8gZ2VuZXJhdGUuXG52YXIgY2xpZW50UmVuZGVyQm91bmRhcnkgPSAnJFJYPWZ1bmN0aW9uKGIsYyxkLGUpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIpO2EmJihiPWEucHJldmlvdXNTaWJsaW5nLGIuZGF0YT1cIiQhXCIsYT1hLmRhdGFzZXQsYyYmKGEuZGdzdD1jKSxkJiYoYS5tc2c9ZCksZSYmKGEuc3Rjaz1lKSxiLl9yZWFjdFJldHJ5JiZiLl9yZWFjdFJldHJ5KCkpfTsnO1xudmFyIGNvbXBsZXRlQm91bmRhcnkgPSAnJFJDPWZ1bmN0aW9uKGIsYyxlKXtjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGMpO2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKTtpZihhKXtiPWEucHJldmlvdXNTaWJsaW5nO2lmKGUpYi5kYXRhPVwiJCFcIixhLnNldEF0dHJpYnV0ZShcImRhdGEtZGdzdFwiLGUpO2Vsc2V7ZT1iLnBhcmVudE5vZGU7YT1iLm5leHRTaWJsaW5nO3ZhciBmPTA7ZG97aWYoYSYmOD09PWEubm9kZVR5cGUpe3ZhciBkPWEuZGF0YTtpZihcIi8kXCI9PT1kKWlmKDA9PT1mKWJyZWFrO2Vsc2UgZi0tO2Vsc2VcIiRcIiE9PWQmJlwiJD9cIiE9PWQmJlwiJCFcIiE9PWR8fGYrK31kPWEubmV4dFNpYmxpbmc7ZS5yZW1vdmVDaGlsZChhKTthPWR9d2hpbGUoYSk7Zm9yKDtjLmZpcnN0Q2hpbGQ7KWUuaW5zZXJ0QmVmb3JlKGMuZmlyc3RDaGlsZCxhKTtiLmRhdGE9XCIkXCJ9Yi5fcmVhY3RSZXRyeSYmYi5fcmVhY3RSZXRyeSgpfX07JztcbnZhciBjb21wbGV0ZUJvdW5kYXJ5V2l0aFN0eWxlcyA9ICckUk09bmV3IE1hcDtcXG4kUlI9ZnVuY3Rpb24ocix0LHcpe2Zvcih2YXIgdT0kUkMsbj0kUk0scD1uZXcgTWFwLHE9ZG9jdW1lbnQsZyxiLGg9cS5xdWVyeVNlbGVjdG9yQWxsKFwibGlua1tkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV1cIiksdj1bXSxrPTA7Yj1oW2srK107KVwibm90IGFsbFwiPT09Yi5nZXRBdHRyaWJ1dGUoXCJtZWRpYVwiKT92LnB1c2goYik6KFwiTElOS1wiPT09Yi50YWdOYW1lJiZuLnNldChiLmdldEF0dHJpYnV0ZShcImhyZWZcIiksYikscC5zZXQoYi5kYXRhc2V0LnByZWNlZGVuY2UsZz1iKSk7Yj0wO2g9W107dmFyIGwsYTtmb3Ioaz0hMDs7KXtpZihrKXt2YXIgZj13W2IrK107aWYoIWYpe2s9ITE7Yj0wO2NvbnRpbnVlfXZhciBjPSExLG09MDt2YXIgZD1mW20rK107aWYoYT1uLmdldChkKSl7dmFyIGU9YS5fcDtjPSEwfWVsc2V7YT1xLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO2EuaHJlZj1kO2EucmVsPVwic3R5bGVzaGVldFwiO2ZvcihhLmRhdGFzZXQucHJlY2VkZW5jZT1cXG5sPWZbbSsrXTtlPWZbbSsrXTspYS5zZXRBdHRyaWJ1dGUoZSxmW20rK10pO2U9YS5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbih4LHkpe2Eub25sb2FkPXg7YS5vbmVycm9yPXl9KTtuLnNldChkLGEpfWQ9YS5nZXRBdHRyaWJ1dGUoXCJtZWRpYVwiKTshZXx8XCJsXCI9PT1lLnN8fGQmJiFtYXRjaE1lZGlhKGQpLm1hdGNoZXN8fGgucHVzaChlKTtpZihjKWNvbnRpbnVlfWVsc2V7YT12W2IrK107aWYoIWEpYnJlYWs7bD1hLmdldEF0dHJpYnV0ZShcImRhdGEtcHJlY2VkZW5jZVwiKTthLnJlbW92ZUF0dHJpYnV0ZShcIm1lZGlhXCIpfWM9cC5nZXQobCl8fGc7Yz09PWcmJihnPWEpO3Auc2V0KGwsYSk7Yz9jLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYy5uZXh0U2libGluZyk6KGM9cS5oZWFkLGMuaW5zZXJ0QmVmb3JlKGEsYy5maXJzdENoaWxkKSl9UHJvbWlzZS5hbGwoaCkudGhlbih1LmJpbmQobnVsbCxyLHQsXCJcIiksdS5iaW5kKG51bGwscix0LFwiUmVzb3VyY2UgZmFpbGVkIHRvIGxvYWRcIikpfTsnO1xudmFyIGNvbXBsZXRlU2VnbWVudCA9ICckUlM9ZnVuY3Rpb24oYSxiKXthPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpO2I9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYik7Zm9yKGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTthLmZpcnN0Q2hpbGQ7KWIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYS5maXJzdENoaWxkLGIpO2IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX07JztcbnZhciBmb3JtUmVwbGF5aW5nID0gJ2FkZEV2ZW50TGlzdGVuZXIoXCJzdWJtaXRcIixmdW5jdGlvbihhKXtpZighYS5kZWZhdWx0UHJldmVudGVkKXt2YXIgYz1hLnRhcmdldCxkPWEuc3VibWl0dGVyLGU9Yy5hY3Rpb24sYj1kO2lmKGQpe3ZhciBmPWQuZ2V0QXR0cmlidXRlKFwiZm9ybUFjdGlvblwiKTtudWxsIT1mJiYoZT1mLGI9bnVsbCl9XCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcihcXCdBIFJlYWN0IGZvcm0gd2FzIHVuZXhwZWN0ZWRseSBzdWJtaXR0ZWQuXFwnKVwiPT09ZSYmKGEucHJldmVudERlZmF1bHQoKSxiPyhhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKSxhLm5hbWU9Yi5uYW1lLGEudmFsdWU9Yi52YWx1ZSxiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYiksYj1uZXcgRm9ybURhdGEoYyksYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpKTpiPW5ldyBGb3JtRGF0YShjKSxhPWMuZ2V0Um9vdE5vZGUoKSwoYS4kJHJlYWN0Rm9ybVJlcGxheT1hLiQkcmVhY3RGb3JtUmVwbGF5fHxbXSkucHVzaChjLFxcbmQsYikpfX0pOyc7XG5cbmZ1bmN0aW9uIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcodGhpbmcpIHtcbiAgcmV0dXJuIHRoaW5nID09PSBudWxsID8gJ2BudWxsYCcgOiB0aGluZyA9PT0gdW5kZWZpbmVkID8gJ2B1bmRlZmluZWRgJyA6IHRoaW5nID09PSAnJyA/ICdhbiBlbXB0eSBzdHJpbmcnIDogXCJzb21ldGhpbmcgd2l0aCB0eXBlIFxcXCJcIiArIHR5cGVvZiB0aGluZyArIFwiXFxcIlwiO1xufVxuXG4vLyBzYW1lIG9iamVjdCBhY3Jvc3MgYWxsIHRyYW5zaXRpb25zLlxuXG52YXIgc2hhcmVkTm90UGVuZGluZ09iamVjdCA9IHtcbiAgcGVuZGluZzogZmFsc2UsXG4gIGRhdGE6IG51bGwsXG4gIG1ldGhvZDogbnVsbCxcbiAgYWN0aW9uOiBudWxsXG59O1xudmFyIE5vdFBlbmRpbmcgPSBPYmplY3QuZnJlZXplKHNoYXJlZE5vdFBlbmRpbmdPYmplY3QpIDtcblxudmFyIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzID0gUmVhY3RET00uX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG5cbnZhciBSZWFjdERPTUN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMuRGlzcGF0Y2hlcjtcbnZhciBSZWFjdERPTVNlcnZlckRpc3BhdGNoZXIgPSB7XG4gIHByZWZldGNoRE5TOiBwcmVmZXRjaEROUyxcbiAgcHJlY29ubmVjdDogcHJlY29ubmVjdCxcbiAgcHJlbG9hZDogcHJlbG9hZCxcbiAgcHJlbG9hZE1vZHVsZTogcHJlbG9hZE1vZHVsZSxcbiAgcHJlaW5pdFN0eWxlOiBwcmVpbml0U3R5bGUsXG4gIHByZWluaXRTY3JpcHQ6IHByZWluaXRTY3JpcHQsXG4gIHByZWluaXRNb2R1bGVTY3JpcHQ6IHByZWluaXRNb2R1bGVTY3JpcHRcbn07XG5mdW5jdGlvbiBwcmVwYXJlSG9zdERpc3BhdGNoZXIoKSB7XG4gIFJlYWN0RE9NQ3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IFJlYWN0RE9NU2VydmVyRGlzcGF0Y2hlcjtcbn0gLy8gV2UgbWFrZSBldmVyeSBwcm9wZXJ0eSBvZiB0aGUgZGVzY3JpcHRvciBvcHRpb25hbCBiZWNhdXNlIGl0IGlzIG5vdCBhIGNvbnRyYWN0IHRoYXRcbnZhciBTY3JpcHRTdHJlYW1pbmdGb3JtYXQgPSAwO1xudmFyIERhdGFTdHJlYW1pbmdGb3JtYXQgPSAxO1xudmFyIE5vdGhpbmdTZW50XG4vKiAgICAgICAgICAgICAgICAgICAgICAqL1xuPSAwO1xudmFyIFNlbnRDb21wbGV0ZVNlZ21lbnRGdW5jdGlvblxuLyogICAgICAqL1xuPSAxO1xudmFyIFNlbnRDb21wbGV0ZUJvdW5kYXJ5RnVuY3Rpb25cbi8qICAgICAqL1xuPSAyO1xudmFyIFNlbnRDbGllbnRSZW5kZXJGdW5jdGlvblxuLyogICAgICAgICAqL1xuPSA0O1xudmFyIFNlbnRTdHlsZUluc2VydGlvbkZ1bmN0aW9uXG4vKiAgICAgICAqL1xuPSA4O1xudmFyIFNlbnRGb3JtUmVwbGF5aW5nUnVudGltZVxuLyogICAgICAgICAqL1xuPSAxNjsgLy8gUGVyIHJlcXVlc3QsIGdsb2JhbCBzdGF0ZSB0aGF0IGlzIG5vdCBjb250ZXh0dWFsIHRvIHRoZSByZW5kZXJpbmcgc3VidHJlZS5cbi8vIFRoaXMgY2Fubm90IGJlIHJlc3VtZWQgYW5kIHRoZXJlZm9yZSBzaG91bGQgb25seSBjb250YWluIHRoaW5ncyB0aGF0IGFyZVxuLy8gdGVtcG9yYXJ5IHdvcmtpbmcgc3RhdGUgb3IgYXJlIG5ldmVyIHVzZWQgaW4gdGhlIHByZXJlbmRlciBwYXNzLlxuLy8gQ3JlZGVudGlhbHMgaGVyZSBhcmUgdGhpbmdzIHRoYXQgYWZmZWN0IHdoZXRoZXIgYSBicm93c2VyIHdpbGwgbWFrZSBhIHJlcXVlc3Rcbi8vIGFzIHdlbGwgYXMgdGhpbmdzIHRoYXQgYWZmZWN0IHdoaWNoIGNvbm5lY3Rpb24gdGhlIGJyb3dzZXIgd2lsbCB1c2UgZm9yIHRoYXQgcmVxdWVzdC5cbi8vIFdlIHdhbnQgdGhlc2UgdG8gYmUgYWxpZ25lZCBhY3Jvc3MgcHJlbG9hZHMgYW5kIHJlc291cmNlcyBiZWNhdXNlIG90aGVyd2lzZSB0aGUgcHJlbG9hZFxuLy8gd2lsbCBiZSB3YXN0ZWQuXG4vLyBXZSBpbnZlc3RpZ2F0ZWQgd2hldGhlciByZWZlcnJlclBvbGljeSBzaG91bGQgYmUgaW5jbHVkZWQgaGVyZSBidXQgZnJvbSBleHBlcmltZW50YXRpb25cbi8vIGl0IHNlZW1zIHRoYXQgYnJvd3NlcnMgZG8gbm90IHRyZWF0IHRoaXMgYXMgcGFydCBvZiB0aGUgaHR0cCBjYWNoZSBrZXkgYW5kIGRvZXMgbm90IGFmZmVjdFxuLy8gd2hpY2ggY29ubmVjdGlvbiBpcyB1c2VkLlxuXG52YXIgRVhJU1RTID0gbnVsbDsgLy8gVGhpcyBjb25zdGFudCBpcyB0byBtYXJrIHByZWxvYWRzIHRoYXQgaGF2ZSBubyB1bmlxdWUgY3JlZGVudGlhbHNcbi8vIHRvIGNvbnZleS4gSXQgc2hvdWxkIG5ldmVyIGJlIGNoZWNrZWQgYnkgaWRlbnRpdHkgYW5kIHdlIHNob3VsZCBub3Rcbi8vIGFzc3VtZSBQcmVsb2FkIHZhbHVlcyBpbiBSZXN1bWFibGVTdGF0ZSBlcXVhbCB0aGlzIHZhbHVlIGJlY2F1c2UgdGhleVxuLy8gd2lsbCBoYXZlIGNvbWUgZnJvbSBzb21lIHBhcnNlZCBpbnB1dC5cblxudmFyIFBSRUxPQURfTk9fQ1JFRFMgPSBbXTtcblxue1xuICBPYmplY3QuZnJlZXplKFBSRUxPQURfTk9fQ1JFRFMpO1xufSAvLyBQZXIgcmVzcG9uc2UsIGdsb2JhbCBzdGF0ZSB0aGF0IGlzIG5vdCBjb250ZXh0dWFsIHRvIHRoZSByZW5kZXJpbmcgc3VidHJlZS5cbi8vIFRoaXMgaXMgcmVzdW1hYmxlIGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIHNlcmlhbGl6YWJsZS5cblxuXG52YXIgZGF0YUVsZW1lbnRRdW90ZWRFbmQgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiPjwvdGVtcGxhdGU+Jyk7XG52YXIgc3RhcnRJbmxpbmVTY3JpcHQgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzxzY3JpcHQ+Jyk7XG52YXIgZW5kSW5saW5lU2NyaXB0ID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8L3NjcmlwdD4nKTtcbnZhciBzdGFydFNjcmlwdFNyYyA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPHNjcmlwdCBzcmM9XCInKTtcbnZhciBzdGFydE1vZHVsZVNyYyA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPHNjcmlwdCB0eXBlPVwibW9kdWxlXCIgc3JjPVwiJyk7XG52YXIgc2NyaXB0Tm9uY2UgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiIG5vbmNlPVwiJyk7XG52YXIgc2NyaXB0SW50ZWdpcnR5ID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIiBpbnRlZ3JpdHk9XCInKTtcbnZhciBzY3JpcHRDcm9zc09yaWdpbiA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCIgY3Jvc3NvcmlnaW49XCInKTtcbnZhciBlbmRBc3luY1NjcmlwdCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCIgYXN5bmM9XCJcIj48L3NjcmlwdD4nKTtcbi8qKlxuICogVGhpcyBlc2NhcGluZyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byB3b3JrIHdpdGggYm9vdHN0cmFwU2NyaXB0Q29udGVudCBhbmQgaW1wb3J0TWFwIG9ubHkuXG4gKiBiZWNhdXNlIHdlIGtub3cgd2UgYXJlIGVzY2FwaW5nIHRoZSBlbnRpcmUgc2NyaXB0LiBXZSBjYW4gYXZvaWQgZm9yIGluc3RhbmNlXG4gKiBlc2NhcGluZyBodG1sIGNvbW1lbnQgc3RyaW5nIHNlcXVlbmNlcyB0aGF0IGFyZSB2YWxpZCBqYXZhc2NyaXB0IGFzIHdlbGwgYmVjYXVzZVxuICogaWYgdGhlcmUgYXJlIG5vIHNlYnNlcXVlbnQgPHNjcmlwdCBzZXF1ZW5jZXMgdGhlIGh0bWwgcGFyc2VyIHdpbGwgbmV2ZXIgZW50ZXJcbiAqIHNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIHN0YXRlIChzZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNTMvc3ludGF4Lmh0bWwjc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGUpXG4gKlxuICogV2hpbGUgdW50cnVzdGVkIHNjcmlwdCBjb250ZW50IHNob3VsZCBiZSBtYWRlIHNhZmUgYmVmb3JlIHVzaW5nIHRoaXMgYXBpIGl0IHdpbGxcbiAqIGVuc3VyZSB0aGF0IHRoZSBzY3JpcHQgY2Fubm90IGJlIGVhcmx5IHRlcm1pbmF0ZWQgb3IgbmV2ZXIgdGVybWluYXRlZCBzdGF0ZVxuICovXG5cbmZ1bmN0aW9uIGVzY2FwZUJvb3RzdHJhcEFuZEltcG9ydE1hcFNjcmlwdENvbnRlbnQoc2NyaXB0VGV4dCkge1xuICB7XG4gICAgY2hlY2tIdG1sU3RyaW5nQ29lcmNpb24oc2NyaXB0VGV4dCk7XG4gIH1cblxuICByZXR1cm4gKCcnICsgc2NyaXB0VGV4dCkucmVwbGFjZShzY3JpcHRSZWdleCwgc2NyaXB0UmVwbGFjZXIpO1xufVxuXG52YXIgc2NyaXB0UmVnZXggPSAvKDxcXC98PCkocykoY3JpcHQpL2dpO1xuXG52YXIgc2NyaXB0UmVwbGFjZXIgPSBmdW5jdGlvbiAobWF0Y2gsIHByZWZpeCwgcywgc3VmZml4KSB7XG4gIHJldHVybiBcIlwiICsgcHJlZml4ICsgKHMgPT09ICdzJyA/IFwiXFxcXHUwMDczXCIgOiBcIlxcXFx1MDA1M1wiKSArIHN1ZmZpeDtcbn07XG5cbnZhciBpbXBvcnRNYXBTY3JpcHRTdGFydCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPHNjcmlwdCB0eXBlPVwiaW1wb3J0bWFwXCI+Jyk7XG52YXIgaW1wb3J0TWFwU2NyaXB0RW5kID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8L3NjcmlwdD4nKTsgLy8gU2luY2Ugd2Ugc3RvcmUgaGVhZGVycyBhcyBzdHJpbmdzIHdlIGRlYWwgd2l0aCB0aGVpciBsZW5ndGggaW4gdXRmMTYgY29kZSB1bml0c1xuLy8gcmF0aGVyIHRoYW4gdmlzdWFsIGNoYXJhY3RlcnMgb3IgdGhlIHV0ZjggZW5jb2RpbmcgdGhhdCBpcyB1c2VkIGZvciBtb3N0IGJpbmFyeVxuLy8gc2VyaWFsaXphdGlvbi4gU29tZSBjb21tb24gSFRUUCBzZXJ2ZXJzIG9ubHkgYWxsb3cgZm9yIGhlYWRlcnMgdG8gYmUgNGtCIGluIGxlbmd0aC5cbi8vIFdlIGNob29zZSBhIGRlZmF1bHQgbGVuZ3RoIHRoYXQgaXMgbGlrZWx5IHRvIGJlIHdlbGwgdW5kZXIgdGhpcyBhbHJlYWR5IGxpbWl0ZWQgbGVuZ3RoIGhvd2V2ZXJcbi8vIHBhdGhvbG9naWNhbCBjYXNlcyBtYXkgc3RpbGwgY2F1c2UgdGhlIHV0Zi04IGVuY29kaW5nIG9mIHRoZSBoZWFkZXJzIHRvIGFwcHJvYWNoIHRoaXMgbGltaXQuXG4vLyBJdCBzaG91bGQgYWxzbyBiZSBub3RlZCB0aGF0IHRoaXMgbWF4aW11bSBpcyBhIHNvZnQgbWF4aW11bS4gd2UgaGF2ZSBub3QgcmVhY2hlZCB0aGUgbGltaXQgd2Ugd2lsbFxuLy8gYWxsb3cgb25lIG1vcmUgaGVhZGVyIHRvIGJlIGNhcHR1cmVkIHdoaWNoIG1lYW5zIGluIHByYWN0aWNlIGlmIHRoZSBsaW1pdCBpcyBhcHByb2FjaGVkIGl0IHdpbGwgYmUgZXhjZWVkZWRcblxudmFyIERFRkFVTFRfSEVBREVSU19DQVBBQ0lUWV9JTl9VVEYxNl9DT0RFX1VOSVRTID0gMjAwMDsgLy8gQWxsb3dzIHVzIHRvIGtlZXAgdHJhY2sgb2Ygd2hhdCB3ZSd2ZSBhbHJlYWR5IHdyaXR0ZW4gc28gd2UgY2FuIHJlZmVyIGJhY2sgdG8gaXQuXG4vLyBpZiBwYXNzZWQgZXh0ZXJuYWxSdW50aW1lQ29uZmlnIGFuZCB0aGUgZW5hYmxlRml6ekV4dGVybmFsUnVudGltZSBmZWF0dXJlIGZsYWdcbi8vIGlzIHNldCwgdGhlIHNlcnZlciB3aWxsIHNlbmQgaW5zdHJ1Y3Rpb25zIHZpYSBkYXRhIGF0dHJpYnV0ZXMgKGluc3RlYWQgb2YgaW5saW5lIHNjcmlwdHMpXG5cbmZ1bmN0aW9uIGNyZWF0ZVJlbmRlclN0YXRlKHJlc3VtYWJsZVN0YXRlLCBub25jZSwgZXh0ZXJuYWxSdW50aW1lQ29uZmlnLCBpbXBvcnRNYXAsIG9uSGVhZGVycywgbWF4SGVhZGVyc0xlbmd0aCkge1xuICB2YXIgaW5saW5lU2NyaXB0V2l0aE5vbmNlID0gbm9uY2UgPT09IHVuZGVmaW5lZCA/IHN0YXJ0SW5saW5lU2NyaXB0IDogc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8c2NyaXB0IG5vbmNlPVwiJyArIGVzY2FwZVRleHRGb3JCcm93c2VyKG5vbmNlKSArICdcIj4nKTtcbiAgdmFyIGlkUHJlZml4ID0gcmVzdW1hYmxlU3RhdGUuaWRQcmVmaXg7XG4gIHZhciBib290c3RyYXBDaHVua3MgPSBbXTtcbiAgdmFyIGV4dGVybmFsUnVudGltZVNjcmlwdCA9IG51bGw7XG4gIHZhciBib290c3RyYXBTY3JpcHRDb250ZW50ID0gcmVzdW1hYmxlU3RhdGUuYm9vdHN0cmFwU2NyaXB0Q29udGVudCxcbiAgICAgIGJvb3RzdHJhcFNjcmlwdHMgPSByZXN1bWFibGVTdGF0ZS5ib290c3RyYXBTY3JpcHRzLFxuICAgICAgYm9vdHN0cmFwTW9kdWxlcyA9IHJlc3VtYWJsZVN0YXRlLmJvb3RzdHJhcE1vZHVsZXM7XG5cbiAgaWYgKGJvb3RzdHJhcFNjcmlwdENvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGJvb3RzdHJhcENodW5rcy5wdXNoKGlubGluZVNjcmlwdFdpdGhOb25jZSwgc3RyaW5nVG9DaHVuayhlc2NhcGVCb290c3RyYXBBbmRJbXBvcnRNYXBTY3JpcHRDb250ZW50KGJvb3RzdHJhcFNjcmlwdENvbnRlbnQpKSwgZW5kSW5saW5lU2NyaXB0KTtcbiAgfVxuXG4gIHtcblxuICAgIGlmIChleHRlcm5hbFJ1bnRpbWVDb25maWcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHR5cGVvZiBleHRlcm5hbFJ1bnRpbWVDb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGV4dGVybmFsUnVudGltZVNjcmlwdCA9IHtcbiAgICAgICAgICBzcmM6IGV4dGVybmFsUnVudGltZUNvbmZpZyxcbiAgICAgICAgICBjaHVua3M6IFtdXG4gICAgICAgIH07XG4gICAgICAgIHB1c2hTY3JpcHRJbXBsKGV4dGVybmFsUnVudGltZVNjcmlwdC5jaHVua3MsIHtcbiAgICAgICAgICBzcmM6IGV4dGVybmFsUnVudGltZUNvbmZpZyxcbiAgICAgICAgICBhc3luYzogdHJ1ZSxcbiAgICAgICAgICBpbnRlZ3JpdHk6IHVuZGVmaW5lZCxcbiAgICAgICAgICBub25jZTogbm9uY2VcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHRlcm5hbFJ1bnRpbWVTY3JpcHQgPSB7XG4gICAgICAgICAgc3JjOiBleHRlcm5hbFJ1bnRpbWVDb25maWcuc3JjLFxuICAgICAgICAgIGNodW5rczogW11cbiAgICAgICAgfTtcbiAgICAgICAgcHVzaFNjcmlwdEltcGwoZXh0ZXJuYWxSdW50aW1lU2NyaXB0LmNodW5rcywge1xuICAgICAgICAgIHNyYzogZXh0ZXJuYWxSdW50aW1lQ29uZmlnLnNyYyxcbiAgICAgICAgICBhc3luYzogdHJ1ZSxcbiAgICAgICAgICBpbnRlZ3JpdHk6IGV4dGVybmFsUnVudGltZUNvbmZpZy5pbnRlZ3JpdHksXG4gICAgICAgICAgbm9uY2U6IG5vbmNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBpbXBvcnRNYXBDaHVua3MgPSBbXTtcblxuICBpZiAoaW1wb3J0TWFwICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgbWFwID0gaW1wb3J0TWFwO1xuICAgIGltcG9ydE1hcENodW5rcy5wdXNoKGltcG9ydE1hcFNjcmlwdFN0YXJ0KTtcbiAgICBpbXBvcnRNYXBDaHVua3MucHVzaChzdHJpbmdUb0NodW5rKGVzY2FwZUJvb3RzdHJhcEFuZEltcG9ydE1hcFNjcmlwdENvbnRlbnQoSlNPTi5zdHJpbmdpZnkobWFwKSkpKTtcbiAgICBpbXBvcnRNYXBDaHVua3MucHVzaChpbXBvcnRNYXBTY3JpcHRFbmQpO1xuICB9XG5cbiAge1xuICAgIGlmIChvbkhlYWRlcnMgJiYgdHlwZW9mIG1heEhlYWRlcnNMZW5ndGggPT09ICdudW1iZXInKSB7XG4gICAgICBpZiAobWF4SGVhZGVyc0xlbmd0aCA8PSAwKSB7XG4gICAgICAgIGVycm9yKCdSZWFjdCBleHBlY3RlZCBhIHBvc2l0aXZlIG5vbi16ZXJvIGBtYXhIZWFkZXJzTGVuZ3RoYCBvcHRpb24gYnV0IGZvdW5kICVzIGluc3RlYWQuIFdoZW4gdXNpbmcgdGhlIGBvbkhlYWRlcnNgIG9wdGlvbiB5b3UgbWF5IHN1cHBseSBhbiBvcHRpb25hbCBgbWF4SGVhZGVyc0xlbmd0aGAgb3B0aW9uIGFzIHdlbGwgaG93ZXZlciwgd2hlbiBzZXR0aW5nIHRoaXMgdmFsdWUgdG8gemVybyBvciBsZXNzIG5vIGhlYWRlcnMgd2lsbCBiZSBjYXB0dXJlZC4nLCBtYXhIZWFkZXJzTGVuZ3RoID09PSAwID8gJ3plcm8nIDogbWF4SGVhZGVyc0xlbmd0aCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGhlYWRlcnMgPSBvbkhlYWRlcnMgPyB7XG4gICAgcHJlY29ubmVjdHM6ICcnLFxuICAgIGZvbnRQcmVsb2FkczogJycsXG4gICAgaGlnaEltYWdlUHJlbG9hZHM6ICcnLFxuICAgIHJlbWFpbmluZ0NhcGFjaXR5OiB0eXBlb2YgbWF4SGVhZGVyc0xlbmd0aCA9PT0gJ251bWJlcicgPyBtYXhIZWFkZXJzTGVuZ3RoIDogREVGQVVMVF9IRUFERVJTX0NBUEFDSVRZX0lOX1VURjE2X0NPREVfVU5JVFNcbiAgfSA6IG51bGw7XG4gIHZhciByZW5kZXJTdGF0ZSA9IHtcbiAgICBwbGFjZWhvbGRlclByZWZpeDogc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKGlkUHJlZml4ICsgJ1A6JyksXG4gICAgc2VnbWVudFByZWZpeDogc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKGlkUHJlZml4ICsgJ1M6JyksXG4gICAgYm91bmRhcnlQcmVmaXg6IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuayhpZFByZWZpeCArICdCOicpLFxuICAgIHN0YXJ0SW5saW5lU2NyaXB0OiBpbmxpbmVTY3JpcHRXaXRoTm9uY2UsXG4gICAgaHRtbENodW5rczogbnVsbCxcbiAgICBoZWFkQ2h1bmtzOiBudWxsLFxuICAgIGV4dGVybmFsUnVudGltZVNjcmlwdDogZXh0ZXJuYWxSdW50aW1lU2NyaXB0LFxuICAgIGJvb3RzdHJhcENodW5rczogYm9vdHN0cmFwQ2h1bmtzLFxuICAgIG9uSGVhZGVyczogb25IZWFkZXJzLFxuICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgcmVzZXRzOiB7XG4gICAgICBmb250OiB7fSxcbiAgICAgIGRuczoge30sXG4gICAgICBjb25uZWN0OiB7XG4gICAgICAgIGRlZmF1bHQ6IHt9LFxuICAgICAgICBhbm9ueW1vdXM6IHt9LFxuICAgICAgICBjcmVkZW50aWFsczoge31cbiAgICAgIH0sXG4gICAgICBpbWFnZToge30sXG4gICAgICBzdHlsZToge31cbiAgICB9LFxuICAgIGNoYXJzZXRDaHVua3M6IFtdLFxuICAgIHByZWNvbm5lY3RDaHVua3M6IFtdLFxuICAgIGltcG9ydE1hcENodW5rczogaW1wb3J0TWFwQ2h1bmtzLFxuICAgIHByZWxvYWRDaHVua3M6IFtdLFxuICAgIGhvaXN0YWJsZUNodW5rczogW10sXG4gICAgLy8gY2xlYXJlZCBvbiBmbHVzaFxuICAgIHByZWNvbm5lY3RzOiBuZXcgU2V0KCksXG4gICAgZm9udFByZWxvYWRzOiBuZXcgU2V0KCksXG4gICAgaGlnaEltYWdlUHJlbG9hZHM6IG5ldyBTZXQoKSxcbiAgICAvLyB1c2VkSW1hZ2VQcmVsb2FkczogbmV3IFNldCgpLFxuICAgIHN0eWxlczogbmV3IE1hcCgpLFxuICAgIGJvb3RzdHJhcFNjcmlwdHM6IG5ldyBTZXQoKSxcbiAgICBzY3JpcHRzOiBuZXcgU2V0KCksXG4gICAgYnVsa1ByZWxvYWRzOiBuZXcgU2V0KCksXG4gICAgcHJlbG9hZHM6IHtcbiAgICAgIGltYWdlczogbmV3IE1hcCgpLFxuICAgICAgc3R5bGVzaGVldHM6IG5ldyBNYXAoKSxcbiAgICAgIHNjcmlwdHM6IG5ldyBNYXAoKSxcbiAgICAgIG1vZHVsZVNjcmlwdHM6IG5ldyBNYXAoKVxuICAgIH0sXG4gICAgbm9uY2U6IG5vbmNlLFxuICAgIC8vIGxpa2UgYSBtb2R1bGUgZ2xvYmFsIGZvciBjdXJyZW50bHkgcmVuZGVyaW5nIGJvdW5kYXJ5XG4gICAgYm91bmRhcnlSZXNvdXJjZXM6IG51bGwsXG4gICAgc3R5bGVzVG9Ib2lzdDogZmFsc2VcbiAgfTtcblxuICBpZiAoYm9vdHN0cmFwU2NyaXB0cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib290c3RyYXBTY3JpcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc2NyaXB0Q29uZmlnID0gYm9vdHN0cmFwU2NyaXB0c1tpXTtcbiAgICAgIHZhciBzcmMgPSB2b2lkIDAsXG4gICAgICAgICAgY3Jvc3NPcmlnaW4gPSB2b2lkIDAsXG4gICAgICAgICAgaW50ZWdyaXR5ID0gdm9pZCAwO1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICByZWw6ICdwcmVsb2FkJyxcbiAgICAgICAgYXM6ICdzY3JpcHQnLFxuICAgICAgICBmZXRjaFByaW9yaXR5OiAnbG93JyxcbiAgICAgICAgbm9uY2U6IG5vbmNlXG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZW9mIHNjcmlwdENvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcHJvcHMuaHJlZiA9IHNyYyA9IHNjcmlwdENvbmZpZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLmhyZWYgPSBzcmMgPSBzY3JpcHRDb25maWcuc3JjO1xuICAgICAgICBwcm9wcy5pbnRlZ3JpdHkgPSBpbnRlZ3JpdHkgPSB0eXBlb2Ygc2NyaXB0Q29uZmlnLmludGVncml0eSA9PT0gJ3N0cmluZycgPyBzY3JpcHRDb25maWcuaW50ZWdyaXR5IDogdW5kZWZpbmVkO1xuICAgICAgICBwcm9wcy5jcm9zc09yaWdpbiA9IGNyb3NzT3JpZ2luID0gdHlwZW9mIHNjcmlwdENvbmZpZyA9PT0gJ3N0cmluZycgfHwgc2NyaXB0Q29uZmlnLmNyb3NzT3JpZ2luID09IG51bGwgPyB1bmRlZmluZWQgOiBzY3JpcHRDb25maWcuY3Jvc3NPcmlnaW4gPT09ICd1c2UtY3JlZGVudGlhbHMnID8gJ3VzZS1jcmVkZW50aWFscycgOiAnJztcbiAgICAgIH1cblxuICAgICAgcHJlbG9hZEJvb3RzdHJhcFNjcmlwdE9yTW9kdWxlKHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSwgc3JjLCBwcm9wcyk7XG4gICAgICBib290c3RyYXBDaHVua3MucHVzaChzdGFydFNjcmlwdFNyYywgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihzcmMpKSk7XG5cbiAgICAgIGlmIChub25jZSkge1xuICAgICAgICBib290c3RyYXBDaHVua3MucHVzaChzY3JpcHROb25jZSwgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3Nlcihub25jZSkpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnRlZ3JpdHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGJvb3RzdHJhcENodW5rcy5wdXNoKHNjcmlwdEludGVnaXJ0eSwgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihpbnRlZ3JpdHkpKSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgY3Jvc3NPcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGJvb3RzdHJhcENodW5rcy5wdXNoKHNjcmlwdENyb3NzT3JpZ2luLCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKGNyb3NzT3JpZ2luKSkpO1xuICAgICAgfVxuXG4gICAgICBib290c3RyYXBDaHVua3MucHVzaChlbmRBc3luY1NjcmlwdCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGJvb3RzdHJhcE1vZHVsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBib290c3RyYXBNb2R1bGVzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9zY3JpcHRDb25maWcgPSBib290c3RyYXBNb2R1bGVzW19pXTtcblxuICAgICAgdmFyIF9zcmMgPSB2b2lkIDAsXG4gICAgICAgICAgX2Nyb3NzT3JpZ2luID0gdm9pZCAwLFxuICAgICAgICAgIF9pbnRlZ3JpdHkgPSB2b2lkIDA7XG5cbiAgICAgIHZhciBfcHJvcHMgPSB7XG4gICAgICAgIHJlbDogJ21vZHVsZXByZWxvYWQnLFxuICAgICAgICBmZXRjaFByaW9yaXR5OiAnbG93JyxcbiAgICAgICAgbm9uY2U6IG5vbmNlXG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZW9mIF9zY3JpcHRDb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIF9wcm9wcy5ocmVmID0gX3NyYyA9IF9zY3JpcHRDb25maWc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfcHJvcHMuaHJlZiA9IF9zcmMgPSBfc2NyaXB0Q29uZmlnLnNyYztcbiAgICAgICAgX3Byb3BzLmludGVncml0eSA9IF9pbnRlZ3JpdHkgPSB0eXBlb2YgX3NjcmlwdENvbmZpZy5pbnRlZ3JpdHkgPT09ICdzdHJpbmcnID8gX3NjcmlwdENvbmZpZy5pbnRlZ3JpdHkgOiB1bmRlZmluZWQ7XG4gICAgICAgIF9wcm9wcy5jcm9zc09yaWdpbiA9IF9jcm9zc09yaWdpbiA9IHR5cGVvZiBfc2NyaXB0Q29uZmlnID09PSAnc3RyaW5nJyB8fCBfc2NyaXB0Q29uZmlnLmNyb3NzT3JpZ2luID09IG51bGwgPyB1bmRlZmluZWQgOiBfc2NyaXB0Q29uZmlnLmNyb3NzT3JpZ2luID09PSAndXNlLWNyZWRlbnRpYWxzJyA/ICd1c2UtY3JlZGVudGlhbHMnIDogJyc7XG4gICAgICB9XG5cbiAgICAgIHByZWxvYWRCb290c3RyYXBTY3JpcHRPck1vZHVsZShyZXN1bWFibGVTdGF0ZSwgcmVuZGVyU3RhdGUsIF9zcmMsIF9wcm9wcyk7XG4gICAgICBib290c3RyYXBDaHVua3MucHVzaChzdGFydE1vZHVsZVNyYywgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3Nlcihfc3JjKSkpO1xuXG4gICAgICBpZiAobm9uY2UpIHtcbiAgICAgICAgYm9vdHN0cmFwQ2h1bmtzLnB1c2goc2NyaXB0Tm9uY2UsIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIobm9uY2UpKSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgX2ludGVncml0eSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgYm9vdHN0cmFwQ2h1bmtzLnB1c2goc2NyaXB0SW50ZWdpcnR5LCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKF9pbnRlZ3JpdHkpKSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgX2Nyb3NzT3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgICBib290c3RyYXBDaHVua3MucHVzaChzY3JpcHRDcm9zc09yaWdpbiwgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihfY3Jvc3NPcmlnaW4pKSk7XG4gICAgICB9XG5cbiAgICAgIGJvb3RzdHJhcENodW5rcy5wdXNoKGVuZEFzeW5jU2NyaXB0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVuZGVyU3RhdGU7XG59XG5mdW5jdGlvbiBjcmVhdGVSZXN1bWFibGVTdGF0ZShpZGVudGlmaWVyUHJlZml4LCBleHRlcm5hbFJ1bnRpbWVDb25maWcsIGJvb3RzdHJhcFNjcmlwdENvbnRlbnQsIGJvb3RzdHJhcFNjcmlwdHMsIGJvb3RzdHJhcE1vZHVsZXMpIHtcbiAgdmFyIGlkUHJlZml4ID0gaWRlbnRpZmllclByZWZpeCA9PT0gdW5kZWZpbmVkID8gJycgOiBpZGVudGlmaWVyUHJlZml4O1xuICB2YXIgc3RyZWFtaW5nRm9ybWF0ID0gU2NyaXB0U3RyZWFtaW5nRm9ybWF0O1xuXG4gIHtcbiAgICBpZiAoZXh0ZXJuYWxSdW50aW1lQ29uZmlnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHN0cmVhbWluZ0Zvcm1hdCA9IERhdGFTdHJlYW1pbmdGb3JtYXQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpZFByZWZpeDogaWRQcmVmaXgsXG4gICAgbmV4dEZvcm1JRDogMCxcbiAgICBzdHJlYW1pbmdGb3JtYXQ6IHN0cmVhbWluZ0Zvcm1hdCxcbiAgICBib290c3RyYXBTY3JpcHRDb250ZW50OiBib290c3RyYXBTY3JpcHRDb250ZW50LFxuICAgIGJvb3RzdHJhcFNjcmlwdHM6IGJvb3RzdHJhcFNjcmlwdHMsXG4gICAgYm9vdHN0cmFwTW9kdWxlczogYm9vdHN0cmFwTW9kdWxlcyxcbiAgICBpbnN0cnVjdGlvbnM6IE5vdGhpbmdTZW50LFxuICAgIGhhc0JvZHk6IGZhbHNlLFxuICAgIGhhc0h0bWw6IGZhbHNlLFxuICAgIC8vIEBUT0RPIGFkZCBib290c3RyYXAgc2NyaXB0IHRvIGltcGxpY2l0IHByZWxvYWRzXG4gICAgLy8gcGVyc2lzdGVudFxuICAgIHVua25vd25SZXNvdXJjZXM6IHt9LFxuICAgIGRuc1Jlc291cmNlczoge30sXG4gICAgY29ubmVjdFJlc291cmNlczoge1xuICAgICAgZGVmYXVsdDoge30sXG4gICAgICBhbm9ueW1vdXM6IHt9LFxuICAgICAgY3JlZGVudGlhbHM6IHt9XG4gICAgfSxcbiAgICBpbWFnZVJlc291cmNlczoge30sXG4gICAgc3R5bGVSZXNvdXJjZXM6IHt9LFxuICAgIHNjcmlwdFJlc291cmNlczoge30sXG4gICAgbW9kdWxlVW5rbm93blJlc291cmNlczoge30sXG4gICAgbW9kdWxlU2NyaXB0UmVzb3VyY2VzOiB7fVxuICB9O1xufVxuLy8gbW9kZXMuIFdlIG9ubHkgaW5jbHVkZSB0aGUgdmFyaWFudHMgYXMgdGhleSBtYXR0ZXIgZm9yIHRoZSBzYWtlIG9mIG91ciBwdXJwb3Nlcy5cbi8vIFdlIGRvbid0IGFjdHVhbGx5IHByb3ZpZGUgdGhlIG5hbWVzcGFjZSB0aGVyZWZvcmUgd2UgdXNlIGNvbnN0YW50cyBpbnN0ZWFkIG9mIHRoZSBzdHJpbmcuXG5cbnZhciBST09UX0hUTUxfTU9ERSA9IDA7IC8vIFVzZWQgZm9yIHRoZSByb290IG1vc3QgZWxlbWVudCB0YWcuXG4vLyBXZSBoYXZlIGEgbGVzcyB0aGFuIEhUTUxfSFRNTF9NT0RFIGNoZWNrIGVsc2V3aGVyZS4gSWYgeW91IGFkZCBtb3JlIGNhc2VzIGhlcmUsIG1ha2Ugc3VyZSBpdFxuLy8gc3RpbGwgbWFrZXMgc2Vuc2VcblxudmFyIEhUTUxfSFRNTF9NT0RFID0gMTsgLy8gVXNlZCBmb3IgdGhlIDxodG1sPiBpZiBpdCBpcyBhdCB0aGUgdG9wIGxldmVsLlxuXG52YXIgSFRNTF9NT0RFID0gMjtcbnZhciBTVkdfTU9ERSA9IDM7XG52YXIgTUFUSE1MX01PREUgPSA0O1xudmFyIEhUTUxfVEFCTEVfTU9ERSA9IDU7XG52YXIgSFRNTF9UQUJMRV9CT0RZX01PREUgPSA2O1xudmFyIEhUTUxfVEFCTEVfUk9XX01PREUgPSA3O1xudmFyIEhUTUxfQ09MR1JPVVBfTU9ERSA9IDg7IC8vIFdlIGhhdmUgYSBncmVhdGVyIHRoYW4gSFRNTF9UQUJMRV9NT0RFIGNoZWNrIGVsc2V3aGVyZS4gSWYgeW91IGFkZCBtb3JlIGNhc2VzIGhlcmUsIG1ha2Ugc3VyZSBpdFxuLy8gc3RpbGwgbWFrZXMgc2Vuc2VcblxudmFyIE5PX1NDT1BFID1cbi8qICAgICAgICAgKi9cbjA7XG52YXIgTk9TQ1JJUFRfU0NPUEUgPVxuLyogICAqL1xuMTtcbnZhciBQSUNUVVJFX1NDT1BFID1cbi8qICAgICovXG4yOyAvLyBMZXRzIHVzIGtlZXAgdHJhY2sgb2YgY29udGV4dHVhbCBzdGF0ZSBhbmQgcGljayBpdCBiYWNrIHVwIGFmdGVyIHN1c3BlbmRpbmcuXG5cbmZ1bmN0aW9uIGNyZWF0ZUZvcm1hdENvbnRleHQoaW5zZXJ0aW9uTW9kZSwgc2VsZWN0ZWRWYWx1ZSwgdGFnU2NvcGUpIHtcbiAgcmV0dXJuIHtcbiAgICBpbnNlcnRpb25Nb2RlOiBpbnNlcnRpb25Nb2RlLFxuICAgIHNlbGVjdGVkVmFsdWU6IHNlbGVjdGVkVmFsdWUsXG4gICAgdGFnU2NvcGU6IHRhZ1Njb3BlXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvb3RGb3JtYXRDb250ZXh0KG5hbWVzcGFjZVVSSSkge1xuICB2YXIgaW5zZXJ0aW9uTW9kZSA9IG5hbWVzcGFjZVVSSSA9PT0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA/IFNWR19NT0RFIDogbmFtZXNwYWNlVVJJID09PSAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcgPyBNQVRITUxfTU9ERSA6IFJPT1RfSFRNTF9NT0RFO1xuICByZXR1cm4gY3JlYXRlRm9ybWF0Q29udGV4dChpbnNlcnRpb25Nb2RlLCBudWxsLCBOT19TQ09QRSk7XG59XG5mdW5jdGlvbiBnZXRDaGlsZEZvcm1hdENvbnRleHQocGFyZW50Q29udGV4dCwgdHlwZSwgcHJvcHMpIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnbm9zY3JpcHQnOlxuICAgICAgcmV0dXJuIGNyZWF0ZUZvcm1hdENvbnRleHQoSFRNTF9NT0RFLCBudWxsLCBwYXJlbnRDb250ZXh0LnRhZ1Njb3BlIHwgTk9TQ1JJUFRfU0NPUEUpO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIHJldHVybiBjcmVhdGVGb3JtYXRDb250ZXh0KEhUTUxfTU9ERSwgcHJvcHMudmFsdWUgIT0gbnVsbCA/IHByb3BzLnZhbHVlIDogcHJvcHMuZGVmYXVsdFZhbHVlLCBwYXJlbnRDb250ZXh0LnRhZ1Njb3BlKTtcblxuICAgIGNhc2UgJ3N2Zyc6XG4gICAgICByZXR1cm4gY3JlYXRlRm9ybWF0Q29udGV4dChTVkdfTU9ERSwgbnVsbCwgcGFyZW50Q29udGV4dC50YWdTY29wZSk7XG5cbiAgICBjYXNlICdwaWN0dXJlJzpcbiAgICAgIHJldHVybiBjcmVhdGVGb3JtYXRDb250ZXh0KEhUTUxfTU9ERSwgbnVsbCwgcGFyZW50Q29udGV4dC50YWdTY29wZSB8IFBJQ1RVUkVfU0NPUEUpO1xuXG4gICAgY2FzZSAnbWF0aCc6XG4gICAgICByZXR1cm4gY3JlYXRlRm9ybWF0Q29udGV4dChNQVRITUxfTU9ERSwgbnVsbCwgcGFyZW50Q29udGV4dC50YWdTY29wZSk7XG5cbiAgICBjYXNlICdmb3JlaWduT2JqZWN0JzpcbiAgICAgIHJldHVybiBjcmVhdGVGb3JtYXRDb250ZXh0KEhUTUxfTU9ERSwgbnVsbCwgcGFyZW50Q29udGV4dC50YWdTY29wZSk7XG4gICAgLy8gVGFibGUgcGFyZW50cyBhcmUgc3BlY2lhbCBpbiB0aGF0IHRoZWlyIGNoaWxkcmVuIGNhbiBvbmx5IGJlIGNyZWF0ZWQgYXQgYWxsIGlmIHRoZXkncmVcbiAgICAvLyB3cmFwcGVkIGluIGEgdGFibGUgcGFyZW50LiBTbyB3ZSBuZWVkIHRvIGVuY29kZSB0aGF0IHdlJ3JlIGVudGVyaW5nIHRoaXMgbW9kZS5cblxuICAgIGNhc2UgJ3RhYmxlJzpcbiAgICAgIHJldHVybiBjcmVhdGVGb3JtYXRDb250ZXh0KEhUTUxfVEFCTEVfTU9ERSwgbnVsbCwgcGFyZW50Q29udGV4dC50YWdTY29wZSk7XG5cbiAgICBjYXNlICd0aGVhZCc6XG4gICAgY2FzZSAndGJvZHknOlxuICAgIGNhc2UgJ3Rmb290JzpcbiAgICAgIHJldHVybiBjcmVhdGVGb3JtYXRDb250ZXh0KEhUTUxfVEFCTEVfQk9EWV9NT0RFLCBudWxsLCBwYXJlbnRDb250ZXh0LnRhZ1Njb3BlKTtcblxuICAgIGNhc2UgJ2NvbGdyb3VwJzpcbiAgICAgIHJldHVybiBjcmVhdGVGb3JtYXRDb250ZXh0KEhUTUxfQ09MR1JPVVBfTU9ERSwgbnVsbCwgcGFyZW50Q29udGV4dC50YWdTY29wZSk7XG5cbiAgICBjYXNlICd0cic6XG4gICAgICByZXR1cm4gY3JlYXRlRm9ybWF0Q29udGV4dChIVE1MX1RBQkxFX1JPV19NT0RFLCBudWxsLCBwYXJlbnRDb250ZXh0LnRhZ1Njb3BlKTtcbiAgfVxuXG4gIGlmIChwYXJlbnRDb250ZXh0Lmluc2VydGlvbk1vZGUgPj0gSFRNTF9UQUJMRV9NT0RFKSB7XG4gICAgLy8gV2hhdGV2ZXIgdGFnIHRoaXMgd2FzLCBpdCB3YXNuJ3QgYSB0YWJsZSBwYXJlbnQgb3Igb3RoZXIgc3BlY2lhbCBwYXJlbnQsIHNvIHdlIG11c3QgaGF2ZVxuICAgIC8vIGVudGVyZWQgcGxhaW4gSFRNTCBhZ2Fpbi5cbiAgICByZXR1cm4gY3JlYXRlRm9ybWF0Q29udGV4dChIVE1MX01PREUsIG51bGwsIHBhcmVudENvbnRleHQudGFnU2NvcGUpO1xuICB9XG5cbiAgaWYgKHBhcmVudENvbnRleHQuaW5zZXJ0aW9uTW9kZSA9PT0gUk9PVF9IVE1MX01PREUpIHtcbiAgICBpZiAodHlwZSA9PT0gJ2h0bWwnKSB7XG4gICAgICAvLyBXZSd2ZSBlbWl0dGVkIHRoZSByb290IGFuZCBpcyBub3cgaW4gPGh0bWw+IG1vZGUuXG4gICAgICByZXR1cm4gY3JlYXRlRm9ybWF0Q29udGV4dChIVE1MX0hUTUxfTU9ERSwgbnVsbCwgcGFyZW50Q29udGV4dC50YWdTY29wZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlJ3ZlIGVtaXR0ZWQgdGhlIHJvb3QgYW5kIGlzIG5vdyBpbiBwbGFpbiBIVE1MIG1vZGUuXG4gICAgICByZXR1cm4gY3JlYXRlRm9ybWF0Q29udGV4dChIVE1MX01PREUsIG51bGwsIHBhcmVudENvbnRleHQudGFnU2NvcGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChwYXJlbnRDb250ZXh0Lmluc2VydGlvbk1vZGUgPT09IEhUTUxfSFRNTF9NT0RFKSB7XG4gICAgLy8gV2UndmUgZW1pdHRlZCB0aGUgZG9jdW1lbnQgZWxlbWVudCBhbmQgaXMgbm93IGluIHBsYWluIEhUTUwgbW9kZS5cbiAgICByZXR1cm4gY3JlYXRlRm9ybWF0Q29udGV4dChIVE1MX01PREUsIG51bGwsIHBhcmVudENvbnRleHQudGFnU2NvcGUpO1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudENvbnRleHQ7XG59XG5mdW5jdGlvbiBtYWtlSWQocmVzdW1hYmxlU3RhdGUsIHRyZWVJZCwgbG9jYWxJZCkge1xuICB2YXIgaWRQcmVmaXggPSByZXN1bWFibGVTdGF0ZS5pZFByZWZpeDtcbiAgdmFyIGlkID0gJzonICsgaWRQcmVmaXggKyAnUicgKyB0cmVlSWQ7IC8vIFVubGVzcyB0aGlzIGlzIHRoZSBmaXJzdCBpZCBhdCB0aGlzIGxldmVsLCBhcHBlbmQgYSBudW1iZXIgYXQgdGhlIGVuZFxuICAvLyB0aGF0IHJlcHJlc2VudHMgdGhlIHBvc2l0aW9uIG9mIHRoaXMgdXNlSWQgaG9vayBhbW9uZyBhbGwgdGhlIHVzZUlkXG4gIC8vIGhvb2tzIGZvciB0aGlzIGZpYmVyLlxuXG4gIGlmIChsb2NhbElkID4gMCkge1xuICAgIGlkICs9ICdIJyArIGxvY2FsSWQudG9TdHJpbmcoMzIpO1xuICB9XG5cbiAgcmV0dXJuIGlkICsgJzonO1xufVxuXG5mdW5jdGlvbiBlbmNvZGVIVE1MVGV4dE5vZGUodGV4dCkge1xuICByZXR1cm4gZXNjYXBlVGV4dEZvckJyb3dzZXIodGV4dCk7XG59XG5cbnZhciB0ZXh0U2VwYXJhdG9yID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8IS0tIC0tPicpO1xuZnVuY3Rpb24gcHVzaFRleHRJbnN0YW5jZSh0YXJnZXQsIHRleHQsIHJlbmRlclN0YXRlLCB0ZXh0RW1iZWRkZWQpIHtcbiAgaWYgKHRleHQgPT09ICcnKSB7XG4gICAgLy8gRW1wdHkgdGV4dCBkb2Vzbid0IGhhdmUgYSBET00gbm9kZSByZXByZXNlbnRhdGlvbiBhbmQgdGhlIGh5ZHJhdGlvbiBpcyBhd2FyZSBvZiB0aGlzLlxuICAgIHJldHVybiB0ZXh0RW1iZWRkZWQ7XG4gIH1cblxuICBpZiAodGV4dEVtYmVkZGVkKSB7XG4gICAgdGFyZ2V0LnB1c2godGV4dFNlcGFyYXRvcik7XG4gIH1cblxuICB0YXJnZXQucHVzaChzdHJpbmdUb0NodW5rKGVuY29kZUhUTUxUZXh0Tm9kZSh0ZXh0KSkpO1xuICByZXR1cm4gdHJ1ZTtcbn0gLy8gQ2FsbGVkIHdoZW4gRml6eiBpcyBkb25lIHdpdGggYSBTZWdtZW50LiBDdXJyZW50bHkgdGhlIG9ubHkgcHVycG9zZSBpcyB0byBjb25kaXRpb25hbGx5XG4vLyBlbWl0IGEgdGV4dCBzZXBhcmF0b3Igd2hlbiB3ZSBkb24ndCBrbm93IGZvciBzdXJlIGl0IGlzIHNhZmUgdG8gb21pdFxuXG5mdW5jdGlvbiBwdXNoU2VnbWVudEZpbmFsZSh0YXJnZXQsIHJlbmRlclN0YXRlLCBsYXN0UHVzaGVkVGV4dCwgdGV4dEVtYmVkZGVkKSB7XG4gIGlmIChsYXN0UHVzaGVkVGV4dCAmJiB0ZXh0RW1iZWRkZWQpIHtcbiAgICB0YXJnZXQucHVzaCh0ZXh0U2VwYXJhdG9yKTtcbiAgfVxufVxudmFyIHN0eWxlTmFtZUNhY2hlID0gbmV3IE1hcCgpO1xuXG5mdW5jdGlvbiBwcm9jZXNzU3R5bGVOYW1lKHN0eWxlTmFtZSkge1xuICB2YXIgY2h1bmsgPSBzdHlsZU5hbWVDYWNoZS5nZXQoc3R5bGVOYW1lKTtcblxuICBpZiAoY2h1bmsgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBjaHVuaztcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoaHlwaGVuYXRlU3R5bGVOYW1lKHN0eWxlTmFtZSkpKTtcbiAgc3R5bGVOYW1lQ2FjaGUuc2V0KHN0eWxlTmFtZSwgcmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxudmFyIHN0eWxlQXR0cmlidXRlU3RhcnQgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJyBzdHlsZT1cIicpO1xudmFyIHN0eWxlQXNzaWduID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc6Jyk7XG52YXIgc3R5bGVTZXBhcmF0b3IgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzsnKTtcblxuZnVuY3Rpb24gcHVzaFN0eWxlQXR0cmlidXRlKHRhcmdldCwgc3R5bGUpIHtcbiAgaWYgKHR5cGVvZiBzdHlsZSAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBgc3R5bGVgIHByb3AgZXhwZWN0cyBhIG1hcHBpbmcgZnJvbSBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcywgJyArIFwibm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArICdlbSd9fSB3aGVuIFwiICsgJ3VzaW5nIEpTWC4nKTtcbiAgfVxuXG4gIHZhciBpc0ZpcnN0ID0gdHJ1ZTtcblxuICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGUpIHtcbiAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwoc3R5bGUsIHN0eWxlTmFtZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH0gLy8gSWYgeW91IHByb3ZpZGUgdW5zYWZlIHVzZXIgZGF0YSBoZXJlIHRoZXkgY2FuIGluamVjdCBhcmJpdHJhcnkgQ1NTXG4gICAgLy8gd2hpY2ggbWF5IGJlIHByb2JsZW1hdGljIChJIGNvdWxkbid0IHJlcHJvIHRoaXMpOlxuICAgIC8vIGh0dHBzOi8vd3d3Lm93YXNwLm9yZy9pbmRleC5waHAvWFNTX0ZpbHRlcl9FdmFzaW9uX0NoZWF0X1NoZWV0XG4gICAgLy8gaHR0cDovL3d3dy50aGVzcGFubmVyLmNvLnVrLzIwMDcvMTEvMjYvdWx0aW1hdGUteHNzLWNzcy1pbmplY3Rpb24vXG4gICAgLy8gVGhpcyBpcyBub3QgYW4gWFNTIGhvbGUgYnV0IGluc3RlYWQgYSBwb3RlbnRpYWwgQ1NTIGluamVjdGlvbiBpc3N1ZVxuICAgIC8vIHdoaWNoIGhhcyBsZWFkIHRvIGEgZ3JlYXRlciBkaXNjdXNzaW9uIGFib3V0IGhvdyB3ZSdyZSBnb2luZyB0b1xuICAgIC8vIHRydXN0IFVSTHMgbW92aW5nIGZvcndhcmQuIFNlZSAjMjExNTkwMVxuXG5cbiAgICB2YXIgc3R5bGVWYWx1ZSA9IHN0eWxlW3N0eWxlTmFtZV07XG5cbiAgICBpZiAoc3R5bGVWYWx1ZSA9PSBudWxsIHx8IHR5cGVvZiBzdHlsZVZhbHVlID09PSAnYm9vbGVhbicgfHwgc3R5bGVWYWx1ZSA9PT0gJycpIHtcbiAgICAgIC8vIFRPRE86IFdlIHVzZWQgdG8gc2V0IGVtcHR5IHN0cmluZyBhcyBhIHN0eWxlIHdpdGggYW4gZW1wdHkgdmFsdWUuIERvZXMgdGhhdCBldmVyIG1ha2Ugc2Vuc2U/XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgbmFtZUNodW5rID0gdm9pZCAwO1xuICAgIHZhciB2YWx1ZUNodW5rID0gdm9pZCAwO1xuICAgIHZhciBpc0N1c3RvbVByb3BlcnR5ID0gc3R5bGVOYW1lLmluZGV4T2YoJy0tJykgPT09IDA7XG5cbiAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0eSkge1xuICAgICAgbmFtZUNodW5rID0gc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihzdHlsZU5hbWUpKTtcblxuICAgICAge1xuICAgICAgICBjaGVja0NTU1Byb3BlcnR5U3RyaW5nQ29lcmNpb24oc3R5bGVWYWx1ZSwgc3R5bGVOYW1lKTtcbiAgICAgIH1cblxuICAgICAgdmFsdWVDaHVuayA9IHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoKCcnICsgc3R5bGVWYWx1ZSkudHJpbSgpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgd2FyblZhbGlkU3R5bGUoc3R5bGVOYW1lLCBzdHlsZVZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgbmFtZUNodW5rID0gcHJvY2Vzc1N0eWxlTmFtZShzdHlsZU5hbWUpO1xuXG4gICAgICBpZiAodHlwZW9mIHN0eWxlVmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmIChzdHlsZVZhbHVlICE9PSAwICYmICFpc1VuaXRsZXNzTnVtYmVyKHN0eWxlTmFtZSkpIHtcbiAgICAgICAgICB2YWx1ZUNodW5rID0gc3RyaW5nVG9DaHVuayhzdHlsZVZhbHVlICsgJ3B4Jyk7IC8vIFByZXN1bWVzIGltcGxpY2l0ICdweCcgc3VmZml4IGZvciB1bml0bGVzcyBudW1iZXJzXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWVDaHVuayA9IHN0cmluZ1RvQ2h1bmsoJycgKyBzdHlsZVZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAge1xuICAgICAgICAgIGNoZWNrQ1NTUHJvcGVydHlTdHJpbmdDb2VyY2lvbihzdHlsZVZhbHVlLCBzdHlsZU5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWVDaHVuayA9IHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoKCcnICsgc3R5bGVWYWx1ZSkudHJpbSgpKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRmlyc3QpIHtcbiAgICAgIGlzRmlyc3QgPSBmYWxzZTsgLy8gSWYgaXQncyBmaXJzdCwgd2UgZG9uJ3QgbmVlZCBhbnkgc2VwYXJhdG9ycyBwcmVmaXhlZC5cblxuICAgICAgdGFyZ2V0LnB1c2goc3R5bGVBdHRyaWJ1dGVTdGFydCwgbmFtZUNodW5rLCBzdHlsZUFzc2lnbiwgdmFsdWVDaHVuayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldC5wdXNoKHN0eWxlU2VwYXJhdG9yLCBuYW1lQ2h1bmssIHN0eWxlQXNzaWduLCB2YWx1ZUNodW5rKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWlzRmlyc3QpIHtcbiAgICB0YXJnZXQucHVzaChhdHRyaWJ1dGVFbmQpO1xuICB9XG59XG5cbnZhciBhdHRyaWJ1dGVTZXBhcmF0b3IgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJyAnKTtcbnZhciBhdHRyaWJ1dGVBc3NpZ24gPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJz1cIicpO1xudmFyIGF0dHJpYnV0ZUVuZCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCInKTtcbnZhciBhdHRyaWJ1dGVFbXB0eVN0cmluZyA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPVwiXCInKTtcblxuZnVuY3Rpb24gcHVzaEJvb2xlYW5BdHRyaWJ1dGUodGFyZ2V0LCBuYW1lLCB2YWx1ZSkgLy8gbm90IG51bGwgb3IgdW5kZWZpbmVkXG57XG4gIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3ltYm9sJykge1xuICAgIHRhcmdldC5wdXNoKGF0dHJpYnV0ZVNlcGFyYXRvciwgc3RyaW5nVG9DaHVuayhuYW1lKSwgYXR0cmlidXRlRW1wdHlTdHJpbmcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hTdHJpbmdBdHRyaWJ1dGUodGFyZ2V0LCBuYW1lLCB2YWx1ZSkgLy8gbm90IG51bGwgb3IgdW5kZWZpbmVkXG57XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3ltYm9sJyAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgIHRhcmdldC5wdXNoKGF0dHJpYnV0ZVNlcGFyYXRvciwgc3RyaW5nVG9DaHVuayhuYW1lKSwgYXR0cmlidXRlQXNzaWduLCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKHZhbHVlKSksIGF0dHJpYnV0ZUVuZCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFrZUZvcm1GaWVsZFByZWZpeChyZXN1bWFibGVTdGF0ZSkge1xuICB2YXIgaWQgPSByZXN1bWFibGVTdGF0ZS5uZXh0Rm9ybUlEKys7XG4gIHJldHVybiByZXN1bWFibGVTdGF0ZS5pZFByZWZpeCArIGlkO1xufSAvLyBTaW5jZSB0aGlzIHdpbGwgbGlrZWx5IGJlIHJlcGVhdGVkIGEgbG90IGluIHRoZSBIVE1MLCB3ZSB1c2UgYSBtb3JlIGNvbmNpc2UgbWVzc2FnZVxuLy8gdGhhbiBvbiB0aGUgY2xpZW50IGFuZCBob3BlZnVsbHkgaXQncyBnb29nbGVhYmxlLlxuXG5cbnZhciBhY3Rpb25KYXZhU2NyaXB0VVJMID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2NyaXB0LXVybFxuXCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignQSBSZWFjdCBmb3JtIHdhcyB1bmV4cGVjdGVkbHkgc3VibWl0dGVkLicpXCIpKTtcbnZhciBzdGFydEhpZGRlbklucHV0Q2h1bmsgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzxpbnB1dCB0eXBlPVwiaGlkZGVuXCInKTtcblxuZnVuY3Rpb24gcHVzaEFkZGl0aW9uYWxGb3JtRmllbGQodmFsdWUsIGtleSkge1xuICB2YXIgdGFyZ2V0ID0gdGhpcztcbiAgdGFyZ2V0LnB1c2goc3RhcnRIaWRkZW5JbnB1dENodW5rKTtcblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRmlsZS9CbG9iIGZpZWxkcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgaW4gcHJvZ3Jlc3NpdmUgZm9ybXMuICcgKyAnSXQgcHJvYmFibHkgbWVhbnMgeW91IGFyZSBjbG9zaW5nIG92ZXIgYmluYXJ5IGRhdGEgb3IgRm9ybURhdGEgaW4gYSBTZXJ2ZXIgQWN0aW9uLicpO1xuICB9XG5cbiAgcHVzaFN0cmluZ0F0dHJpYnV0ZSh0YXJnZXQsICduYW1lJywga2V5KTtcbiAgcHVzaFN0cmluZ0F0dHJpYnV0ZSh0YXJnZXQsICd2YWx1ZScsIHZhbHVlKTtcbiAgdGFyZ2V0LnB1c2goZW5kT2ZTdGFydFRhZ1NlbGZDbG9zaW5nKTtcbn1cblxuZnVuY3Rpb24gcHVzaEFkZGl0aW9uYWxGb3JtRmllbGRzKHRhcmdldCwgZm9ybURhdGEpIHtcbiAgaWYgKGZvcm1EYXRhICE9PSBudWxsKSB7XG4gICAgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddOiBGb3JtRGF0YSBoYXMgZm9yRWFjaC5cbiAgICBmb3JtRGF0YS5mb3JFYWNoKHB1c2hBZGRpdGlvbmFsRm9ybUZpZWxkLCB0YXJnZXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hGb3JtQWN0aW9uQXR0cmlidXRlKHRhcmdldCwgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlLCBmb3JtQWN0aW9uLCBmb3JtRW5jVHlwZSwgZm9ybU1ldGhvZCwgZm9ybVRhcmdldCwgbmFtZSkge1xuICB2YXIgZm9ybURhdGEgPSBudWxsO1xuXG4gIGlmICh0eXBlb2YgZm9ybUFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEZ1bmN0aW9uIGZvcm0gYWN0aW9ucyBjYW5ub3QgY29udHJvbCB0aGUgZm9ybSBwcm9wZXJ0aWVzXG4gICAge1xuICAgICAgaWYgKG5hbWUgIT09IG51bGwgJiYgIWRpZFdhcm5Gb3JtQWN0aW9uTmFtZSkge1xuICAgICAgICBkaWRXYXJuRm9ybUFjdGlvbk5hbWUgPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdDYW5ub3Qgc3BlY2lmeSBhIFwibmFtZVwiIHByb3AgZm9yIGEgYnV0dG9uIHRoYXQgc3BlY2lmaWVzIGEgZnVuY3Rpb24gYXMgYSBmb3JtQWN0aW9uLiAnICsgJ1JlYWN0IG5lZWRzIGl0IHRvIGVuY29kZSB3aGljaCBhY3Rpb24gc2hvdWxkIGJlIGludm9rZWQuIEl0IHdpbGwgZ2V0IG92ZXJyaWRkZW4uJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICgoZm9ybUVuY1R5cGUgIT09IG51bGwgfHwgZm9ybU1ldGhvZCAhPT0gbnVsbCkgJiYgIWRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kKSB7XG4gICAgICAgIGRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignQ2Fubm90IHNwZWNpZnkgYSBmb3JtRW5jVHlwZSBvciBmb3JtTWV0aG9kIGZvciBhIGJ1dHRvbiB0aGF0IHNwZWNpZmllcyBhICcgKyAnZnVuY3Rpb24gYXMgYSBmb3JtQWN0aW9uLiBSZWFjdCBwcm92aWRlcyB0aG9zZSBhdXRvbWF0aWNhbGx5LiBUaGV5IHdpbGwgZ2V0IG92ZXJyaWRkZW4uJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3JtVGFyZ2V0ICE9PSBudWxsICYmICFkaWRXYXJuRm9ybUFjdGlvblRhcmdldCkge1xuICAgICAgICBkaWRXYXJuRm9ybUFjdGlvblRhcmdldCA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJ0Nhbm5vdCBzcGVjaWZ5IGEgZm9ybVRhcmdldCBmb3IgYSBidXR0b24gdGhhdCBzcGVjaWZpZXMgYSBmdW5jdGlvbiBhcyBhIGZvcm1BY3Rpb24uICcgKyAnVGhlIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIGJlIGV4ZWN1dGVkIGluIHRoZSBzYW1lIHdpbmRvdy4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY3VzdG9tQWN0aW9uID0gZm9ybUFjdGlvbi4kJEZPUk1fQUNUSU9OO1xuXG4gICAgaWYgKHR5cGVvZiBjdXN0b21BY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIFRoaXMgYWN0aW9uIGhhcyBhIGN1c3RvbSBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudCBmb3JtIHRoYXQgY2FuIHN1Ym1pdCB0aGUgZm9ybVxuICAgICAgLy8gYmFjayB0byB0aGUgc2VydmVyIGlmIGl0J3MgaW52b2tlZCBiZWZvcmUgaHlkcmF0aW9uLiBTdWNoIGFzIGEgU2VydmVyIEFjdGlvbi5cbiAgICAgIHZhciBwcmVmaXggPSBtYWtlRm9ybUZpZWxkUHJlZml4KHJlc3VtYWJsZVN0YXRlKTtcbiAgICAgIHZhciBjdXN0b21GaWVsZHMgPSBmb3JtQWN0aW9uLiQkRk9STV9BQ1RJT04ocHJlZml4KTtcbiAgICAgIG5hbWUgPSBjdXN0b21GaWVsZHMubmFtZTtcbiAgICAgIGZvcm1BY3Rpb24gPSBjdXN0b21GaWVsZHMuYWN0aW9uIHx8ICcnO1xuICAgICAgZm9ybUVuY1R5cGUgPSBjdXN0b21GaWVsZHMuZW5jVHlwZTtcbiAgICAgIGZvcm1NZXRob2QgPSBjdXN0b21GaWVsZHMubWV0aG9kO1xuICAgICAgZm9ybVRhcmdldCA9IGN1c3RvbUZpZWxkcy50YXJnZXQ7XG4gICAgICBmb3JtRGF0YSA9IGN1c3RvbUZpZWxkcy5kYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTZXQgYSBqYXZhc2NyaXB0IFVSTCB0aGF0IGRvZXNuJ3QgZG8gYW55dGhpbmcuIFdlIGRvbid0IGV4cGVjdCB0aGlzIHRvIGJlIGludm9rZWRcbiAgICAgIC8vIGJlY2F1c2Ugd2UnbGwgcHJldmVudERlZmF1bHQgaW4gdGhlIEZpenogcnVudGltZSwgYnV0IGl0IGNhbiBoYXBwZW4gaWYgYSBmb3JtIGlzXG4gICAgICAvLyBtYW51YWxseSBzdWJtaXR0ZWQgb3IgaWYgc29tZW9uZSBjYWxscyBzdG9wUHJvcGFnYXRpb24gYmVmb3JlIFJlYWN0IGdldHMgdGhlIGV2ZW50LlxuICAgICAgLy8gSWYgQ1NQIGlzIHVzZWQgdG8gYmxvY2sgamF2YXNjcmlwdDogVVJMcyB0aGF0J3MgZmluZSB0b28uIEl0IGp1c3Qgd29uJ3Qgc2hvdyB0aGlzXG4gICAgICAvLyBlcnJvciBtZXNzYWdlIGJ1dCB0aGUgVVJMIHdpbGwgYmUgbG9nZ2VkLlxuICAgICAgdGFyZ2V0LnB1c2goYXR0cmlidXRlU2VwYXJhdG9yLCBzdHJpbmdUb0NodW5rKCdmb3JtQWN0aW9uJyksIGF0dHJpYnV0ZUFzc2lnbiwgYWN0aW9uSmF2YVNjcmlwdFVSTCwgYXR0cmlidXRlRW5kKTtcbiAgICAgIG5hbWUgPSBudWxsO1xuICAgICAgZm9ybUFjdGlvbiA9IG51bGw7XG4gICAgICBmb3JtRW5jVHlwZSA9IG51bGw7XG4gICAgICBmb3JtTWV0aG9kID0gbnVsbDtcbiAgICAgIGZvcm1UYXJnZXQgPSBudWxsO1xuICAgICAgaW5qZWN0Rm9ybVJlcGxheWluZ1J1bnRpbWUocmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlKTtcbiAgICB9XG4gIH1cblxuICBpZiAobmFtZSAhPSBudWxsKSB7XG4gICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsICduYW1lJywgbmFtZSk7XG4gIH1cblxuICBpZiAoZm9ybUFjdGlvbiAhPSBudWxsKSB7XG4gICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsICdmb3JtQWN0aW9uJywgZm9ybUFjdGlvbik7XG4gIH1cblxuICBpZiAoZm9ybUVuY1R5cGUgIT0gbnVsbCkge1xuICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCAnZm9ybUVuY1R5cGUnLCBmb3JtRW5jVHlwZSk7XG4gIH1cblxuICBpZiAoZm9ybU1ldGhvZCAhPSBudWxsKSB7XG4gICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsICdmb3JtTWV0aG9kJywgZm9ybU1ldGhvZCk7XG4gIH1cblxuICBpZiAoZm9ybVRhcmdldCAhPSBudWxsKSB7XG4gICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsICdmb3JtVGFyZ2V0JywgZm9ybVRhcmdldCk7XG4gIH1cblxuICByZXR1cm4gZm9ybURhdGE7XG59XG5cbmZ1bmN0aW9uIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCBuYW1lLCB2YWx1ZSkgLy8gbm90IG51bGwgb3IgdW5kZWZpbmVkXG57XG4gIHN3aXRjaCAobmFtZSkge1xuICAgIC8vIFRoZXNlIGFyZSB2ZXJ5IGNvbW1vbiBwcm9wcyBhbmQgdGhlcmVmb3JlIGFyZSBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzd2l0Y2guXG4gICAgLy8gVE9ETzogYXJpYS1sYWJlbCBpcyBhIHZlcnkgY29tbW9uIHByb3AgYnV0IGFsbG93cyBib29sZWFucyBzbyBpcyBub3QgbGlrZSB0aGUgb3RoZXJzXG4gICAgLy8gYnV0IHNob3VsZCBpZGVhbGx5IGdvIGluIHRoaXMgbGlzdCB0b28uXG4gICAgY2FzZSAnY2xhc3NOYW1lJzpcbiAgICAgIHtcbiAgICAgICAgcHVzaFN0cmluZ0F0dHJpYnV0ZSh0YXJnZXQsICdjbGFzcycsIHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlICd0YWJJbmRleCc6XG4gICAgICB7XG4gICAgICAgIHB1c2hTdHJpbmdBdHRyaWJ1dGUodGFyZ2V0LCAndGFiaW5kZXgnLCB2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSAnZGlyJzpcbiAgICBjYXNlICdyb2xlJzpcbiAgICBjYXNlICd2aWV3Qm94JzpcbiAgICBjYXNlICd3aWR0aCc6XG4gICAgY2FzZSAnaGVpZ2h0JzpcbiAgICAgIHtcbiAgICAgICAgcHVzaFN0cmluZ0F0dHJpYnV0ZSh0YXJnZXQsIG5hbWUsIHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlICdzdHlsZSc6XG4gICAgICB7XG4gICAgICAgIHB1c2hTdHlsZUF0dHJpYnV0ZSh0YXJnZXQsIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSAnc3JjJzpcbiAgICBjYXNlICdocmVmJzpcbiAgICAvLyBGYWxsIHRocm91Z2ggdG8gdGhlIGxhc3QgY2FzZSB3aGljaCBzaG91bGRuJ3QgcmVtb3ZlIGVtcHR5IHN0cmluZ3MuXG5cbiAgICBjYXNlICdhY3Rpb24nOlxuICAgIGNhc2UgJ2Zvcm1BY3Rpb24nOlxuICAgICAge1xuICAgICAgICAvLyBUT0RPOiBDb25zaWRlciBvbmx5IHNwZWNpYWwgY2FzaW5nIHRoZXNlIGZvciBlYWNoIHRhZy5cbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3N5bWJvbCcgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB7XG4gICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2FuaXRpemVkVmFsdWUgPSBzYW5pdGl6ZVVSTCgnJyArIHZhbHVlKTtcbiAgICAgICAgdGFyZ2V0LnB1c2goYXR0cmlidXRlU2VwYXJhdG9yLCBzdHJpbmdUb0NodW5rKG5hbWUpLCBhdHRyaWJ1dGVBc3NpZ24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoc2FuaXRpemVkVmFsdWUpKSwgYXR0cmlidXRlRW5kKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSAnZGVmYXVsdFZhbHVlJzpcbiAgICBjYXNlICdkZWZhdWx0Q2hlY2tlZCc6IC8vIFRoZXNlIHNob3VsZG4ndCBiZSBzZXQgYXMgYXR0cmlidXRlcyBvbiBnZW5lcmljIEhUTUwgZWxlbWVudHMuXG5cbiAgICBjYXNlICdpbm5lckhUTUwnOiAvLyBNdXN0IHVzZSBkYW5nZXJvdXNseVNldElubmVySFRNTCBpbnN0ZWFkLlxuXG4gICAgY2FzZSAnc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nJzpcbiAgICBjYXNlICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnOlxuICAgICAgLy8gSWdub3JlZC4gVGhlc2UgYXJlIGJ1aWx0LWluIHRvIFJlYWN0IG9uIHRoZSBjbGllbnQuXG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICdhdXRvRm9jdXMnOlxuICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICBjYXNlICdtdXRlZCc6XG4gICAgICB7XG4gICAgICAgIHB1c2hCb29sZWFuQXR0cmlidXRlKHRhcmdldCwgbmFtZS50b0xvd2VyQ2FzZSgpLCB2YWx1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgJ3hsaW5rSHJlZic6XG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHtcbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfc2FuaXRpemVkVmFsdWUgPSBzYW5pdGl6ZVVSTCgnJyArIHZhbHVlKTtcblxuICAgICAgICB0YXJnZXQucHVzaChhdHRyaWJ1dGVTZXBhcmF0b3IsIHN0cmluZ1RvQ2h1bmsoJ3hsaW5rOmhyZWYnKSwgYXR0cmlidXRlQXNzaWduLCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKF9zYW5pdGl6ZWRWYWx1ZSkpLCBhdHRyaWJ1dGVFbmQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlICdjb250ZW50RWRpdGFibGUnOlxuICAgIGNhc2UgJ3NwZWxsQ2hlY2snOlxuICAgIGNhc2UgJ2RyYWdnYWJsZSc6XG4gICAgY2FzZSAndmFsdWUnOlxuICAgIGNhc2UgJ2F1dG9SZXZlcnNlJzpcbiAgICBjYXNlICdleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkJzpcbiAgICBjYXNlICdmb2N1c2FibGUnOlxuICAgIGNhc2UgJ3ByZXNlcnZlQWxwaGEnOlxuICAgICAge1xuICAgICAgICAvLyBCb29sZWFuaXNoIFN0cmluZ1xuICAgICAgICAvLyBUaGVzZSBhcmUgXCJlbnVtZXJhdGVkXCIgYXR0cmlidXRlcyB0aGF0IGFjY2VwdCBcInRydWVcIiBhbmQgXCJmYWxzZVwiLlxuICAgICAgICAvLyBJbiBSZWFjdCwgd2UgbGV0IHVzZXJzIHBhc3MgYHRydWVgIGFuZCBgZmFsc2VgIGV2ZW4gdGhvdWdoIHRlY2huaWNhbGx5XG4gICAgICAgIC8vIHRoZXNlIGFyZW4ndCBib29sZWFuIGF0dHJpYnV0ZXMgKHRoZXkgYXJlIGNvZXJjZWQgdG8gc3RyaW5ncykuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3ltYm9sJykge1xuICAgICAgICAgIHRhcmdldC5wdXNoKGF0dHJpYnV0ZVNlcGFyYXRvciwgc3RyaW5nVG9DaHVuayhuYW1lKSwgYXR0cmlidXRlQXNzaWduLCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKHZhbHVlKSksIGF0dHJpYnV0ZUVuZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlICdhbGxvd0Z1bGxTY3JlZW4nOlxuICAgIGNhc2UgJ2FzeW5jJzpcbiAgICBjYXNlICdhdXRvUGxheSc6XG4gICAgY2FzZSAnY29udHJvbHMnOlxuICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgIGNhc2UgJ2RlZmVyJzpcbiAgICBjYXNlICdkaXNhYmxlZCc6XG4gICAgY2FzZSAnZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUnOlxuICAgIGNhc2UgJ2Rpc2FibGVSZW1vdGVQbGF5YmFjayc6XG4gICAgY2FzZSAnZm9ybU5vVmFsaWRhdGUnOlxuICAgIGNhc2UgJ2hpZGRlbic6XG4gICAgY2FzZSAnbG9vcCc6XG4gICAgY2FzZSAnbm9Nb2R1bGUnOlxuICAgIGNhc2UgJ25vVmFsaWRhdGUnOlxuICAgIGNhc2UgJ29wZW4nOlxuICAgIGNhc2UgJ3BsYXlzSW5saW5lJzpcbiAgICBjYXNlICdyZWFkT25seSc6XG4gICAgY2FzZSAncmVxdWlyZWQnOlxuICAgIGNhc2UgJ3JldmVyc2VkJzpcbiAgICBjYXNlICdzY29wZWQnOlxuICAgIGNhc2UgJ3NlYW1sZXNzJzpcbiAgICBjYXNlICdpdGVtU2NvcGUnOlxuICAgICAge1xuICAgICAgICAvLyBCb29sZWFuXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3ltYm9sJykge1xuICAgICAgICAgIHRhcmdldC5wdXNoKGF0dHJpYnV0ZVNlcGFyYXRvciwgc3RyaW5nVG9DaHVuayhuYW1lKSwgYXR0cmlidXRlRW1wdHlTdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSAnY2FwdHVyZSc6XG4gICAgY2FzZSAnZG93bmxvYWQnOlxuICAgICAge1xuICAgICAgICAvLyBPdmVybG9hZGVkIEJvb2xlYW5cbiAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgdGFyZ2V0LnB1c2goYXR0cmlidXRlU2VwYXJhdG9yLCBzdHJpbmdUb0NodW5rKG5hbWUpLCBhdHRyaWJ1dGVFbXB0eVN0cmluZyk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlKSA7IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdmFsdWUgIT09ICdzeW1ib2wnKSB7XG4gICAgICAgICAgdGFyZ2V0LnB1c2goYXR0cmlidXRlU2VwYXJhdG9yLCBzdHJpbmdUb0NodW5rKG5hbWUpLCBhdHRyaWJ1dGVBc3NpZ24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIodmFsdWUpKSwgYXR0cmlidXRlRW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgJ2NvbHMnOlxuICAgIGNhc2UgJ3Jvd3MnOlxuICAgIGNhc2UgJ3NpemUnOlxuICAgIGNhc2UgJ3NwYW4nOlxuICAgICAge1xuICAgICAgICAvLyBUaGVzZSBhcmUgSFRNTCBhdHRyaWJ1dGVzIHRoYXQgbXVzdCBiZSBwb3NpdGl2ZSBudW1iZXJzLlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N5bWJvbCcgJiYgIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+PSAxKSB7XG4gICAgICAgICAgdGFyZ2V0LnB1c2goYXR0cmlidXRlU2VwYXJhdG9yLCBzdHJpbmdUb0NodW5rKG5hbWUpLCBhdHRyaWJ1dGVBc3NpZ24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIodmFsdWUpKSwgYXR0cmlidXRlRW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgJ3Jvd1NwYW4nOlxuICAgIGNhc2UgJ3N0YXJ0JzpcbiAgICAgIHtcbiAgICAgICAgLy8gVGhlc2UgYXJlIEhUTUwgYXR0cmlidXRlcyB0aGF0IG11c3QgYmUgbnVtYmVycy5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdmFsdWUgIT09ICdzeW1ib2wnICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICB0YXJnZXQucHVzaChhdHRyaWJ1dGVTZXBhcmF0b3IsIHN0cmluZ1RvQ2h1bmsobmFtZSksIGF0dHJpYnV0ZUFzc2lnbiwgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3Nlcih2YWx1ZSkpLCBhdHRyaWJ1dGVFbmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSAneGxpbmtBY3R1YXRlJzpcbiAgICAgIHB1c2hTdHJpbmdBdHRyaWJ1dGUodGFyZ2V0LCAneGxpbms6YWN0dWF0ZScsIHZhbHVlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgJ3hsaW5rQXJjcm9sZSc6XG4gICAgICBwdXNoU3RyaW5nQXR0cmlidXRlKHRhcmdldCwgJ3hsaW5rOmFyY3JvbGUnLCB2YWx1ZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICd4bGlua1JvbGUnOlxuICAgICAgcHVzaFN0cmluZ0F0dHJpYnV0ZSh0YXJnZXQsICd4bGluazpyb2xlJywgdmFsdWUpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSAneGxpbmtTaG93JzpcbiAgICAgIHB1c2hTdHJpbmdBdHRyaWJ1dGUodGFyZ2V0LCAneGxpbms6c2hvdycsIHZhbHVlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgJ3hsaW5rVGl0bGUnOlxuICAgICAgcHVzaFN0cmluZ0F0dHJpYnV0ZSh0YXJnZXQsICd4bGluazp0aXRsZScsIHZhbHVlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgJ3hsaW5rVHlwZSc6XG4gICAgICBwdXNoU3RyaW5nQXR0cmlidXRlKHRhcmdldCwgJ3hsaW5rOnR5cGUnLCB2YWx1ZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICd4bWxCYXNlJzpcbiAgICAgIHB1c2hTdHJpbmdBdHRyaWJ1dGUodGFyZ2V0LCAneG1sOmJhc2UnLCB2YWx1ZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICd4bWxMYW5nJzpcbiAgICAgIHB1c2hTdHJpbmdBdHRyaWJ1dGUodGFyZ2V0LCAneG1sOmxhbmcnLCB2YWx1ZSk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICd4bWxTcGFjZSc6XG4gICAgICBwdXNoU3RyaW5nQXR0cmlidXRlKHRhcmdldCwgJ3htbDpzcGFjZScsIHZhbHVlKTtcbiAgICAgIHJldHVybjtcblxuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAoIC8vIHNob3VsZElnbm9yZUF0dHJpYnV0ZVxuICAgICAgLy8gV2UgaGF2ZSBhbHJlYWR5IGZpbHRlcmVkIG91dCBudWxsL3VuZGVmaW5lZCBhbmQgcmVzZXJ2ZWQgd29yZHMuXG4gICAgICBuYW1lLmxlbmd0aCA+IDIgJiYgKG5hbWVbMF0gPT09ICdvJyB8fCBuYW1lWzBdID09PSAnTycpICYmIChuYW1lWzFdID09PSAnbicgfHwgbmFtZVsxXSA9PT0gJ04nKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gZ2V0QXR0cmlidXRlQWxpYXMobmFtZSk7XG5cbiAgICAgIGlmIChpc0F0dHJpYnV0ZU5hbWVTYWZlKGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgICAgIC8vIHNob3VsZFJlbW92ZUF0dHJpYnV0ZVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhciBwcmVmaXggPSBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCwgNSk7XG5cbiAgICAgICAgICAgICAgaWYgKHByZWZpeCAhPT0gJ2RhdGEtJyAmJiBwcmVmaXggIT09ICdhcmlhLScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRhcmdldC5wdXNoKGF0dHJpYnV0ZVNlcGFyYXRvciwgc3RyaW5nVG9DaHVuayhhdHRyaWJ1dGVOYW1lKSwgYXR0cmlidXRlQXNzaWduLCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKHZhbHVlKSksIGF0dHJpYnV0ZUVuZCk7XG4gICAgICB9XG5cbiAgfVxufVxuXG52YXIgZW5kT2ZTdGFydFRhZyA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPicpO1xudmFyIGVuZE9mU3RhcnRUYWdTZWxmQ2xvc2luZyA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnLz4nKTtcblxuZnVuY3Rpb24gcHVzaElubmVySFRNTCh0YXJnZXQsIGlubmVySFRNTCwgY2hpbGRyZW4pIHtcbiAgaWYgKGlubmVySFRNTCAhPSBudWxsKSB7XG4gICAgaWYgKGNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2FuIG9ubHkgc2V0IG9uZSBvZiBgY2hpbGRyZW5gIG9yIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbm5lckhUTUwgIT09ICdvYmplY3QnIHx8ICEoJ19faHRtbCcgaW4gaW5uZXJIVE1MKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIG11c3QgYmUgaW4gdGhlIGZvcm0gYHtfX2h0bWw6IC4uLn1gLiAnICsgJ1BsZWFzZSB2aXNpdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZGFuZ2Vyb3VzbHktc2V0LWlubmVyLWh0bWwgJyArICdmb3IgbW9yZSBpbmZvcm1hdGlvbi4nKTtcbiAgICB9XG5cbiAgICB2YXIgaHRtbCA9IGlubmVySFRNTC5fX2h0bWw7XG5cbiAgICBpZiAoaHRtbCAhPT0gbnVsbCAmJiBodG1sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tIdG1sU3RyaW5nQ29lcmNpb24oaHRtbCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldC5wdXNoKHN0cmluZ1RvQ2h1bmsoJycgKyBodG1sKSk7XG4gICAgfVxuICB9XG59IC8vIFRPRE86IE1vdmUgdGhlc2UgdG8gUmVuZGVyU3RhdGUgc28gdGhhdCB3ZSB3YXJuIGZvciBldmVyeSByZXF1ZXN0LlxuLy8gSXQgd291bGQgaGVscCBkZWJ1Z2dpbmcgaW4gc3RhdGVmdWwgc2VydmVycyAoZS5nLiBzZXJ2aWNlIHdvcmtlcikuXG5cblxudmFyIGRpZFdhcm5EZWZhdWx0SW5wdXRWYWx1ZSA9IGZhbHNlO1xudmFyIGRpZFdhcm5EZWZhdWx0Q2hlY2tlZCA9IGZhbHNlO1xudmFyIGRpZFdhcm5EZWZhdWx0U2VsZWN0VmFsdWUgPSBmYWxzZTtcbnZhciBkaWRXYXJuRGVmYXVsdFRleHRhcmVhVmFsdWUgPSBmYWxzZTtcbnZhciBkaWRXYXJuSW52YWxpZE9wdGlvbkNoaWxkcmVuID0gZmFsc2U7XG52YXIgZGlkV2FybkludmFsaWRPcHRpb25Jbm5lckhUTUwgPSBmYWxzZTtcbnZhciBkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbiA9IGZhbHNlO1xudmFyIGRpZFdhcm5Gb3JtQWN0aW9uVHlwZSA9IGZhbHNlO1xudmFyIGRpZFdhcm5Gb3JtQWN0aW9uTmFtZSA9IGZhbHNlO1xudmFyIGRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0ID0gZmFsc2U7XG52YXIgZGlkV2FybkZvcm1BY3Rpb25NZXRob2QgPSBmYWxzZTtcblxuZnVuY3Rpb24gY2hlY2tTZWxlY3RQcm9wKHByb3BzLCBwcm9wTmFtZSkge1xuICB7XG4gICAgdmFyIHZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHZhciBhcnJheSA9IGlzQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAocHJvcHMubXVsdGlwbGUgJiYgIWFycmF5KSB7XG4gICAgICAgIGVycm9yKCdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYW4gYXJyYXkgaWYgJyArICdgbXVsdGlwbGVgIGlzIHRydWUuJywgcHJvcE5hbWUpO1xuICAgICAgfSBlbHNlIGlmICghcHJvcHMubXVsdGlwbGUgJiYgYXJyYXkpIHtcbiAgICAgICAgZXJyb3IoJ1RoZSBgJXNgIHByb3Agc3VwcGxpZWQgdG8gPHNlbGVjdD4gbXVzdCBiZSBhIHNjYWxhciAnICsgJ3ZhbHVlIGlmIGBtdWx0aXBsZWAgaXMgZmFsc2UuJywgcHJvcE5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwdXNoU3RhcnRTZWxlY3QodGFyZ2V0LCBwcm9wcykge1xuICB7XG4gICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcygnc2VsZWN0JywgcHJvcHMpO1xuICAgIGNoZWNrU2VsZWN0UHJvcChwcm9wcywgJ3ZhbHVlJyk7XG4gICAgY2hlY2tTZWxlY3RQcm9wKHByb3BzLCAnZGVmYXVsdFZhbHVlJyk7XG5cbiAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FybkRlZmF1bHRTZWxlY3RWYWx1ZSkge1xuICAgICAgZXJyb3IoJ1NlbGVjdCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgc2VsZWN0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnKTtcblxuICAgICAgZGlkV2FybkRlZmF1bHRTZWxlY3RWYWx1ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdGFyZ2V0LnB1c2goc3RhcnRDaHVua0ZvclRhZygnc2VsZWN0JykpO1xuICB2YXIgY2hpbGRyZW4gPSBudWxsO1xuICB2YXIgaW5uZXJIVE1MID0gbnVsbDtcblxuICBmb3IgKHZhciBwcm9wS2V5IGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIHByb3BLZXkpKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcEtleV07XG5cbiAgICAgIGlmIChwcm9wVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChwcm9wS2V5KSB7XG4gICAgICAgIGNhc2UgJ2NoaWxkcmVuJzpcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdkYW5nZXJvdXNseVNldElubmVySFRNTCc6XG4gICAgICAgICAgLy8gVE9ETzogVGhpcyBkb2Vzbid0IHJlYWxseSBtYWtlIHNlbnNlIGZvciBzZWxlY3Qgc2luY2UgaXQgY2FuJ3QgdXNlIHRoZSBjb250cm9sbGVkXG4gICAgICAgICAgLy8gdmFsdWUgaW4gdGhlIGlubmVySFRNTC5cbiAgICAgICAgICBpbm5lckhUTUwgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZGVmYXVsdFZhbHVlJzpcbiAgICAgICAgY2FzZSAndmFsdWUnOlxuICAgICAgICAgIC8vIFRoZXNlIGFyZSBzZXQgb24gdGhlIENvbnRleHQgaW5zdGVhZCBhbmQgYXBwbGllZCB0byB0aGUgbmVzdGVkIG9wdGlvbnMuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBwdXNoQXR0cmlidXRlKHRhcmdldCwgcHJvcEtleSwgcHJvcFZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0YXJnZXQucHVzaChlbmRPZlN0YXJ0VGFnKTtcbiAgcHVzaElubmVySFRNTCh0YXJnZXQsIGlubmVySFRNTCwgY2hpbGRyZW4pO1xuICByZXR1cm4gY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIGZsYXR0ZW5PcHRpb25DaGlsZHJlbihjaGlsZHJlbikge1xuICB2YXIgY29udGVudCA9ICcnOyAvLyBGbGF0dGVuIGNoaWxkcmVuIGFuZCB3YXJuIGlmIHRoZXkgYXJlbid0IHN0cmluZ3Mgb3IgbnVtYmVycztcbiAgLy8gaW52YWxpZCB0eXBlcyBhcmUgaWdub3JlZC5cblxuICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnRlbnQgKz0gY2hpbGQ7XG5cbiAgICB7XG4gICAgICBpZiAoIWRpZFdhcm5JbnZhbGlkT3B0aW9uQ2hpbGRyZW4gJiYgdHlwZW9mIGNoaWxkICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgY2hpbGQgIT09ICdudW1iZXInKSB7XG4gICAgICAgIGRpZFdhcm5JbnZhbGlkT3B0aW9uQ2hpbGRyZW4gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdDYW5ub3QgaW5mZXIgdGhlIG9wdGlvbiB2YWx1ZSBvZiBjb21wbGV4IGNoaWxkcmVuLiAnICsgJ1Bhc3MgYSBgdmFsdWVgIHByb3Agb3IgdXNlIGEgcGxhaW4gc3RyaW5nIGFzIGNoaWxkcmVuIHRvIDxvcHRpb24+LicpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBjb250ZW50O1xufVxuXG52YXIgc2VsZWN0ZWRNYXJrZXJBdHRyaWJ1dGUgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJyBzZWxlY3RlZD1cIlwiJyk7XG5cbmZ1bmN0aW9uIHB1c2hTdGFydE9wdGlvbih0YXJnZXQsIHByb3BzLCBmb3JtYXRDb250ZXh0KSB7XG4gIHZhciBzZWxlY3RlZFZhbHVlID0gZm9ybWF0Q29udGV4dC5zZWxlY3RlZFZhbHVlO1xuICB0YXJnZXQucHVzaChzdGFydENodW5rRm9yVGFnKCdvcHRpb24nKSk7XG4gIHZhciBjaGlsZHJlbiA9IG51bGw7XG4gIHZhciB2YWx1ZSA9IG51bGw7XG4gIHZhciBzZWxlY3RlZCA9IG51bGw7XG4gIHZhciBpbm5lckhUTUwgPSBudWxsO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcEtleSkpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wS2V5XTtcblxuICAgICAgaWYgKHByb3BWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKHByb3BLZXkpIHtcbiAgICAgICAgY2FzZSAnY2hpbGRyZW4nOlxuICAgICAgICAgIGNoaWxkcmVuID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3NlbGVjdGVkJzpcbiAgICAgICAgICAvLyBpZ25vcmVcbiAgICAgICAgICBzZWxlY3RlZCA9IHByb3BWYWx1ZTtcblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFJlbW92ZSBzdXBwb3J0IGZvciBgc2VsZWN0ZWRgIGluIDxvcHRpb24+LlxuICAgICAgICAgICAgaWYgKCFkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbikge1xuICAgICAgICAgICAgICBlcnJvcignVXNlIHRoZSBgZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3BzIG9uIDxzZWxlY3Q+IGluc3RlYWQgb2YgJyArICdzZXR0aW5nIGBzZWxlY3RlZGAgb24gPG9wdGlvbj4uJyk7XG5cbiAgICAgICAgICAgICAgZGlkV2FyblNlbGVjdGVkU2V0T25PcHRpb24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJzpcbiAgICAgICAgICBpbm5lckhUTUwgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAndmFsdWUnOlxuICAgICAgICAgIHZhbHVlID0gcHJvcFZhbHVlO1xuICAgICAgICAvLyBXZSBpbnRlbnRpb25hbGx5IGZhbGx0aHJvdWdoIHRvIGFsc28gc2V0IHRoZSBhdHRyaWJ1dGUgb24gdGhlIG5vZGUuXG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBwdXNoQXR0cmlidXRlKHRhcmdldCwgcHJvcEtleSwgcHJvcFZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc2VsZWN0ZWRWYWx1ZSAhPSBudWxsKSB7XG4gICAgdmFyIHN0cmluZ1ZhbHVlO1xuXG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICB7XG4gICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsICd2YWx1ZScpO1xuICAgICAgfVxuXG4gICAgICBzdHJpbmdWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKGlubmVySFRNTCAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmICghZGlkV2FybkludmFsaWRPcHRpb25Jbm5lckhUTUwpIHtcbiAgICAgICAgICAgIGRpZFdhcm5JbnZhbGlkT3B0aW9uSW5uZXJIVE1MID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1Bhc3MgYSBgdmFsdWVgIHByb3AgaWYgeW91IHNldCBkYW5nZXJvdXNseUlubmVySFRNTCBzbyBSZWFjdCBrbm93cyAnICsgJ3doaWNoIHZhbHVlIHNob3VsZCBiZSBzZWxlY3RlZC4nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3RyaW5nVmFsdWUgPSBmbGF0dGVuT3B0aW9uQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIGlmIChpc0FycmF5KHNlbGVjdGVkVmFsdWUpKSB7XG4gICAgICAvLyBtdWx0aXBsZVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RlZFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHtcbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHNlbGVjdGVkVmFsdWVbaV0sICd2YWx1ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHYgPSAnJyArIHNlbGVjdGVkVmFsdWVbaV07XG5cbiAgICAgICAgaWYgKHYgPT09IHN0cmluZ1ZhbHVlKSB7XG4gICAgICAgICAgdGFyZ2V0LnB1c2goc2VsZWN0ZWRNYXJrZXJBdHRyaWJ1dGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihzZWxlY3RlZFZhbHVlLCAnc2VsZWN0LnZhbHVlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICgnJyArIHNlbGVjdGVkVmFsdWUgPT09IHN0cmluZ1ZhbHVlKSB7XG4gICAgICAgIHRhcmdldC5wdXNoKHNlbGVjdGVkTWFya2VyQXR0cmlidXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoc2VsZWN0ZWQpIHtcbiAgICB0YXJnZXQucHVzaChzZWxlY3RlZE1hcmtlckF0dHJpYnV0ZSk7XG4gIH1cblxuICB0YXJnZXQucHVzaChlbmRPZlN0YXJ0VGFnKTtcbiAgcHVzaElubmVySFRNTCh0YXJnZXQsIGlubmVySFRNTCwgY2hpbGRyZW4pO1xuICByZXR1cm4gY2hpbGRyZW47XG59XG5cbnZhciBmb3JtUmVwbGF5aW5nUnVudGltZVNjcmlwdCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuayhmb3JtUmVwbGF5aW5nKTtcblxuZnVuY3Rpb24gaW5qZWN0Rm9ybVJlcGxheWluZ1J1bnRpbWUocmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlKSB7XG4gIC8vIElmIHdlIGhhdmVuJ3Qgc2VudCBpdCB5ZXQsIGluamVjdCB0aGUgcnVudGltZSB0aGF0IHRyYWNrcyBzdWJtaXR0ZWQgSlMgYWN0aW9uc1xuICAvLyBmb3IgbGF0ZXIgcmVwbGF5aW5nIGJ5IEZpYmVyLiBJZiB3ZSB1c2UgYW4gZXh0ZXJuYWwgcnVudGltZSwgd2UgZG9uJ3QgbmVlZFxuICAvLyB0byBlbWl0IGFueXRoaW5nLiBJdCdzIGFsd2F5cyB1c2VkLlxuICBpZiAoKHJlc3VtYWJsZVN0YXRlLmluc3RydWN0aW9ucyAmIFNlbnRGb3JtUmVwbGF5aW5nUnVudGltZSkgPT09IE5vdGhpbmdTZW50ICYmICghcmVuZGVyU3RhdGUuZXh0ZXJuYWxSdW50aW1lU2NyaXB0KSkge1xuICAgIHJlc3VtYWJsZVN0YXRlLmluc3RydWN0aW9ucyB8PSBTZW50Rm9ybVJlcGxheWluZ1J1bnRpbWU7XG4gICAgcmVuZGVyU3RhdGUuYm9vdHN0cmFwQ2h1bmtzLnVuc2hpZnQocmVuZGVyU3RhdGUuc3RhcnRJbmxpbmVTY3JpcHQsIGZvcm1SZXBsYXlpbmdSdW50aW1lU2NyaXB0LCBlbmRJbmxpbmVTY3JpcHQpO1xuICB9XG59XG5cbnZhciBmb3JtU3RhdGVNYXJrZXJJc01hdGNoaW5nID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8IS0tRiEtLT4nKTtcbnZhciBmb3JtU3RhdGVNYXJrZXJJc05vdE1hdGNoaW5nID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8IS0tRi0tPicpO1xuZnVuY3Rpb24gcHVzaEZvcm1TdGF0ZU1hcmtlcklzTWF0Y2hpbmcodGFyZ2V0KSB7XG4gIHRhcmdldC5wdXNoKGZvcm1TdGF0ZU1hcmtlcklzTWF0Y2hpbmcpO1xufVxuZnVuY3Rpb24gcHVzaEZvcm1TdGF0ZU1hcmtlcklzTm90TWF0Y2hpbmcodGFyZ2V0KSB7XG4gIHRhcmdldC5wdXNoKGZvcm1TdGF0ZU1hcmtlcklzTm90TWF0Y2hpbmcpO1xufVxuXG5mdW5jdGlvbiBwdXNoU3RhcnRGb3JtKHRhcmdldCwgcHJvcHMsIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSkge1xuICB0YXJnZXQucHVzaChzdGFydENodW5rRm9yVGFnKCdmb3JtJykpO1xuICB2YXIgY2hpbGRyZW4gPSBudWxsO1xuICB2YXIgaW5uZXJIVE1MID0gbnVsbDtcbiAgdmFyIGZvcm1BY3Rpb24gPSBudWxsO1xuICB2YXIgZm9ybUVuY1R5cGUgPSBudWxsO1xuICB2YXIgZm9ybU1ldGhvZCA9IG51bGw7XG4gIHZhciBmb3JtVGFyZ2V0ID0gbnVsbDtcblxuICBmb3IgKHZhciBwcm9wS2V5IGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIHByb3BLZXkpKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcEtleV07XG5cbiAgICAgIGlmIChwcm9wVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChwcm9wS2V5KSB7XG4gICAgICAgIGNhc2UgJ2NoaWxkcmVuJzpcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdkYW5nZXJvdXNseVNldElubmVySFRNTCc6XG4gICAgICAgICAgaW5uZXJIVE1MID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2FjdGlvbic6XG4gICAgICAgICAgZm9ybUFjdGlvbiA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdlbmNUeXBlJzpcbiAgICAgICAgICBmb3JtRW5jVHlwZSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdtZXRob2QnOlxuICAgICAgICAgIGZvcm1NZXRob2QgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAndGFyZ2V0JzpcbiAgICAgICAgICBmb3JtVGFyZ2V0ID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsIHByb3BLZXksIHByb3BWYWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGZvcm1EYXRhID0gbnVsbDtcbiAgdmFyIGZvcm1BY3Rpb25OYW1lID0gbnVsbDtcblxuICBpZiAodHlwZW9mIGZvcm1BY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBGdW5jdGlvbiBmb3JtIGFjdGlvbnMgY2Fubm90IGNvbnRyb2wgdGhlIGZvcm0gcHJvcGVydGllc1xuICAgIHtcbiAgICAgIGlmICgoZm9ybUVuY1R5cGUgIT09IG51bGwgfHwgZm9ybU1ldGhvZCAhPT0gbnVsbCkgJiYgIWRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kKSB7XG4gICAgICAgIGRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignQ2Fubm90IHNwZWNpZnkgYSBlbmNUeXBlIG9yIG1ldGhvZCBmb3IgYSBmb3JtIHRoYXQgc3BlY2lmaWVzIGEgJyArICdmdW5jdGlvbiBhcyB0aGUgYWN0aW9uLiBSZWFjdCBwcm92aWRlcyB0aG9zZSBhdXRvbWF0aWNhbGx5LiAnICsgJ1RoZXkgd2lsbCBnZXQgb3ZlcnJpZGRlbi4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZvcm1UYXJnZXQgIT09IG51bGwgJiYgIWRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0KSB7XG4gICAgICAgIGRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0ID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignQ2Fubm90IHNwZWNpZnkgYSB0YXJnZXQgZm9yIGEgZm9ybSB0aGF0IHNwZWNpZmllcyBhIGZ1bmN0aW9uIGFzIHRoZSBhY3Rpb24uICcgKyAnVGhlIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIGJlIGV4ZWN1dGVkIGluIHRoZSBzYW1lIHdpbmRvdy4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY3VzdG9tQWN0aW9uID0gZm9ybUFjdGlvbi4kJEZPUk1fQUNUSU9OO1xuXG4gICAgaWYgKHR5cGVvZiBjdXN0b21BY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIFRoaXMgYWN0aW9uIGhhcyBhIGN1c3RvbSBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudCBmb3JtIHRoYXQgY2FuIHN1Ym1pdCB0aGUgZm9ybVxuICAgICAgLy8gYmFjayB0byB0aGUgc2VydmVyIGlmIGl0J3MgaW52b2tlZCBiZWZvcmUgaHlkcmF0aW9uLiBTdWNoIGFzIGEgU2VydmVyIEFjdGlvbi5cbiAgICAgIHZhciBwcmVmaXggPSBtYWtlRm9ybUZpZWxkUHJlZml4KHJlc3VtYWJsZVN0YXRlKTtcbiAgICAgIHZhciBjdXN0b21GaWVsZHMgPSBmb3JtQWN0aW9uLiQkRk9STV9BQ1RJT04ocHJlZml4KTtcbiAgICAgIGZvcm1BY3Rpb24gPSBjdXN0b21GaWVsZHMuYWN0aW9uIHx8ICcnO1xuICAgICAgZm9ybUVuY1R5cGUgPSBjdXN0b21GaWVsZHMuZW5jVHlwZTtcbiAgICAgIGZvcm1NZXRob2QgPSBjdXN0b21GaWVsZHMubWV0aG9kO1xuICAgICAgZm9ybVRhcmdldCA9IGN1c3RvbUZpZWxkcy50YXJnZXQ7XG4gICAgICBmb3JtRGF0YSA9IGN1c3RvbUZpZWxkcy5kYXRhO1xuICAgICAgZm9ybUFjdGlvbk5hbWUgPSBjdXN0b21GaWVsZHMubmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2V0IGEgamF2YXNjcmlwdCBVUkwgdGhhdCBkb2Vzbid0IGRvIGFueXRoaW5nLiBXZSBkb24ndCBleHBlY3QgdGhpcyB0byBiZSBpbnZva2VkXG4gICAgICAvLyBiZWNhdXNlIHdlJ2xsIHByZXZlbnREZWZhdWx0IGluIHRoZSBGaXp6IHJ1bnRpbWUsIGJ1dCBpdCBjYW4gaGFwcGVuIGlmIGEgZm9ybSBpc1xuICAgICAgLy8gbWFudWFsbHkgc3VibWl0dGVkIG9yIGlmIHNvbWVvbmUgY2FsbHMgc3RvcFByb3BhZ2F0aW9uIGJlZm9yZSBSZWFjdCBnZXRzIHRoZSBldmVudC5cbiAgICAgIC8vIElmIENTUCBpcyB1c2VkIHRvIGJsb2NrIGphdmFzY3JpcHQ6IFVSTHMgdGhhdCdzIGZpbmUgdG9vLiBJdCBqdXN0IHdvbid0IHNob3cgdGhpc1xuICAgICAgLy8gZXJyb3IgbWVzc2FnZSBidXQgdGhlIFVSTCB3aWxsIGJlIGxvZ2dlZC5cbiAgICAgIHRhcmdldC5wdXNoKGF0dHJpYnV0ZVNlcGFyYXRvciwgc3RyaW5nVG9DaHVuaygnYWN0aW9uJyksIGF0dHJpYnV0ZUFzc2lnbiwgYWN0aW9uSmF2YVNjcmlwdFVSTCwgYXR0cmlidXRlRW5kKTtcbiAgICAgIGZvcm1BY3Rpb24gPSBudWxsO1xuICAgICAgZm9ybUVuY1R5cGUgPSBudWxsO1xuICAgICAgZm9ybU1ldGhvZCA9IG51bGw7XG4gICAgICBmb3JtVGFyZ2V0ID0gbnVsbDtcbiAgICAgIGluamVjdEZvcm1SZXBsYXlpbmdSdW50aW1lKHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGZvcm1BY3Rpb24gIT0gbnVsbCkge1xuICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCAnYWN0aW9uJywgZm9ybUFjdGlvbik7XG4gIH1cblxuICBpZiAoZm9ybUVuY1R5cGUgIT0gbnVsbCkge1xuICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCAnZW5jVHlwZScsIGZvcm1FbmNUeXBlKTtcbiAgfVxuXG4gIGlmIChmb3JtTWV0aG9kICE9IG51bGwpIHtcbiAgICBwdXNoQXR0cmlidXRlKHRhcmdldCwgJ21ldGhvZCcsIGZvcm1NZXRob2QpO1xuICB9XG5cbiAgaWYgKGZvcm1UYXJnZXQgIT0gbnVsbCkge1xuICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCAndGFyZ2V0JywgZm9ybVRhcmdldCk7XG4gIH1cblxuICB0YXJnZXQucHVzaChlbmRPZlN0YXJ0VGFnKTtcblxuICBpZiAoZm9ybUFjdGlvbk5hbWUgIT09IG51bGwpIHtcbiAgICB0YXJnZXQucHVzaChzdGFydEhpZGRlbklucHV0Q2h1bmspO1xuICAgIHB1c2hTdHJpbmdBdHRyaWJ1dGUodGFyZ2V0LCAnbmFtZScsIGZvcm1BY3Rpb25OYW1lKTtcbiAgICB0YXJnZXQucHVzaChlbmRPZlN0YXJ0VGFnU2VsZkNsb3NpbmcpO1xuICAgIHB1c2hBZGRpdGlvbmFsRm9ybUZpZWxkcyh0YXJnZXQsIGZvcm1EYXRhKTtcbiAgfVxuXG4gIHB1c2hJbm5lckhUTUwodGFyZ2V0LCBpbm5lckhUTUwsIGNoaWxkcmVuKTtcblxuICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJykge1xuICAgIC8vIFNwZWNpYWwgY2FzZSBjaGlsZHJlbiBhcyBhIHN0cmluZyB0byBhdm9pZCB0aGUgdW5uZWNlc3NhcnkgY29tbWVudC5cbiAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBzcGVjaWFsIGNhc2UgYWZ0ZXIgdGhlIGdlbmVyYWwgb3B0aW1pemF0aW9uIGlzIGluIHBsYWNlLlxuICAgIHRhcmdldC5wdXNoKHN0cmluZ1RvQ2h1bmsoZW5jb2RlSFRNTFRleHROb2RlKGNoaWxkcmVuKSkpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuXG5mdW5jdGlvbiBwdXNoSW5wdXQodGFyZ2V0LCBwcm9wcywgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlKSB7XG4gIHtcbiAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKCdpbnB1dCcsIHByb3BzKTtcbiAgfVxuXG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcoJ2lucHV0JykpO1xuICB2YXIgbmFtZSA9IG51bGw7XG4gIHZhciBmb3JtQWN0aW9uID0gbnVsbDtcbiAgdmFyIGZvcm1FbmNUeXBlID0gbnVsbDtcbiAgdmFyIGZvcm1NZXRob2QgPSBudWxsO1xuICB2YXIgZm9ybVRhcmdldCA9IG51bGw7XG4gIHZhciB2YWx1ZSA9IG51bGw7XG4gIHZhciBkZWZhdWx0VmFsdWUgPSBudWxsO1xuICB2YXIgY2hlY2tlZCA9IG51bGw7XG4gIHZhciBkZWZhdWx0Q2hlY2tlZCA9IG51bGw7XG5cbiAgZm9yICh2YXIgcHJvcEtleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBwcm9wS2V5KSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuXG4gICAgICBpZiAocHJvcFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICBjYXNlICdjaGlsZHJlbic6XG4gICAgICAgIGNhc2UgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJzpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lucHV0JyArIFwiIGlzIGEgc2VsZi1jbG9zaW5nIHRhZyBhbmQgbXVzdCBuZWl0aGVyIGhhdmUgYGNoaWxkcmVuYCBub3IgXCIgKyAndXNlIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuJyk7XG5cbiAgICAgICAgY2FzZSAnbmFtZSc6XG4gICAgICAgICAgbmFtZSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdmb3JtQWN0aW9uJzpcbiAgICAgICAgICBmb3JtQWN0aW9uID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Zvcm1FbmNUeXBlJzpcbiAgICAgICAgICBmb3JtRW5jVHlwZSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdmb3JtTWV0aG9kJzpcbiAgICAgICAgICBmb3JtTWV0aG9kID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Zvcm1UYXJnZXQnOlxuICAgICAgICAgIGZvcm1UYXJnZXQgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZGVmYXVsdENoZWNrZWQnOlxuICAgICAgICAgIGRlZmF1bHRDaGVja2VkID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2RlZmF1bHRWYWx1ZSc6XG4gICAgICAgICAgZGVmYXVsdFZhbHVlID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2NoZWNrZWQnOlxuICAgICAgICAgIGNoZWNrZWQgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAndmFsdWUnOlxuICAgICAgICAgIHZhbHVlID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsIHByb3BLZXksIHByb3BWYWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChmb3JtQWN0aW9uICE9PSBudWxsICYmIHByb3BzLnR5cGUgIT09ICdpbWFnZScgJiYgcHJvcHMudHlwZSAhPT0gJ3N1Ym1pdCcgJiYgIWRpZFdhcm5Gb3JtQWN0aW9uVHlwZSkge1xuICAgICAgZGlkV2FybkZvcm1BY3Rpb25UeXBlID0gdHJ1ZTtcblxuICAgICAgZXJyb3IoJ0FuIGlucHV0IGNhbiBvbmx5IHNwZWNpZnkgYSBmb3JtQWN0aW9uIGFsb25nIHdpdGggdHlwZT1cInN1Ym1pdFwiIG9yIHR5cGU9XCJpbWFnZVwiLicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBmb3JtRGF0YSA9IHB1c2hGb3JtQWN0aW9uQXR0cmlidXRlKHRhcmdldCwgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlLCBmb3JtQWN0aW9uLCBmb3JtRW5jVHlwZSwgZm9ybU1ldGhvZCwgZm9ybVRhcmdldCwgbmFtZSk7XG5cbiAge1xuICAgIGlmIChjaGVja2VkICE9PSBudWxsICYmIGRlZmF1bHRDaGVja2VkICE9PSBudWxsICYmICFkaWRXYXJuRGVmYXVsdENoZWNrZWQpIHtcbiAgICAgIGVycm9yKCclcyBjb250YWlucyBhbiBpbnB1dCBvZiB0eXBlICVzIHdpdGggYm90aCBjaGVja2VkIGFuZCBkZWZhdWx0Q2hlY2tlZCBwcm9wcy4gJyArICdJbnB1dCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgY2hlY2tlZCBwcm9wLCBvciB0aGUgZGVmYXVsdENoZWNrZWQgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnLCAnQSBjb21wb25lbnQnLCBwcm9wcy50eXBlKTtcblxuICAgICAgZGlkV2FybkRlZmF1bHRDaGVja2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSBudWxsICYmICFkaWRXYXJuRGVmYXVsdElucHV0VmFsdWUpIHtcbiAgICAgIGVycm9yKCclcyBjb250YWlucyBhbiBpbnB1dCBvZiB0eXBlICVzIHdpdGggYm90aCB2YWx1ZSBhbmQgZGVmYXVsdFZhbHVlIHByb3BzLiAnICsgJ0lucHV0IGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkICcgKyAnKHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9wLCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgJyArICdib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCAnICsgJ2VsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJywgJ0EgY29tcG9uZW50JywgcHJvcHMudHlwZSk7XG5cbiAgICAgIGRpZFdhcm5EZWZhdWx0SW5wdXRWYWx1ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNoZWNrZWQgIT09IG51bGwpIHtcbiAgICBwdXNoQm9vbGVhbkF0dHJpYnV0ZSh0YXJnZXQsICdjaGVja2VkJywgY2hlY2tlZCk7XG4gIH0gZWxzZSBpZiAoZGVmYXVsdENoZWNrZWQgIT09IG51bGwpIHtcbiAgICBwdXNoQm9vbGVhbkF0dHJpYnV0ZSh0YXJnZXQsICdjaGVja2VkJywgZGVmYXVsdENoZWNrZWQpO1xuICB9XG5cbiAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsICd2YWx1ZScsIHZhbHVlKTtcbiAgfSBlbHNlIGlmIChkZWZhdWx0VmFsdWUgIT09IG51bGwpIHtcbiAgICBwdXNoQXR0cmlidXRlKHRhcmdldCwgJ3ZhbHVlJywgZGVmYXVsdFZhbHVlKTtcbiAgfVxuXG4gIHRhcmdldC5wdXNoKGVuZE9mU3RhcnRUYWdTZWxmQ2xvc2luZyk7IC8vIFdlIHBsYWNlIGFueSBhZGRpdGlvbmFsIGhpZGRlbiBmb3JtIGZpZWxkcyBhZnRlciB0aGUgaW5wdXQuXG5cbiAgcHVzaEFkZGl0aW9uYWxGb3JtRmllbGRzKHRhcmdldCwgZm9ybURhdGEpO1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcHVzaFN0YXJ0QnV0dG9uKHRhcmdldCwgcHJvcHMsIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSkge1xuICB0YXJnZXQucHVzaChzdGFydENodW5rRm9yVGFnKCdidXR0b24nKSk7XG4gIHZhciBjaGlsZHJlbiA9IG51bGw7XG4gIHZhciBpbm5lckhUTUwgPSBudWxsO1xuICB2YXIgbmFtZSA9IG51bGw7XG4gIHZhciBmb3JtQWN0aW9uID0gbnVsbDtcbiAgdmFyIGZvcm1FbmNUeXBlID0gbnVsbDtcbiAgdmFyIGZvcm1NZXRob2QgPSBudWxsO1xuICB2YXIgZm9ybVRhcmdldCA9IG51bGw7XG5cbiAgZm9yICh2YXIgcHJvcEtleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBwcm9wS2V5KSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuXG4gICAgICBpZiAocHJvcFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICBjYXNlICdjaGlsZHJlbic6XG4gICAgICAgICAgY2hpbGRyZW4gPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnOlxuICAgICAgICAgIGlubmVySFRNTCA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICduYW1lJzpcbiAgICAgICAgICBuYW1lID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Zvcm1BY3Rpb24nOlxuICAgICAgICAgIGZvcm1BY3Rpb24gPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZm9ybUVuY1R5cGUnOlxuICAgICAgICAgIGZvcm1FbmNUeXBlID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Zvcm1NZXRob2QnOlxuICAgICAgICAgIGZvcm1NZXRob2QgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZm9ybVRhcmdldCc6XG4gICAgICAgICAgZm9ybVRhcmdldCA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCBwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHtcbiAgICBpZiAoZm9ybUFjdGlvbiAhPT0gbnVsbCAmJiBwcm9wcy50eXBlICE9IG51bGwgJiYgcHJvcHMudHlwZSAhPT0gJ3N1Ym1pdCcgJiYgIWRpZFdhcm5Gb3JtQWN0aW9uVHlwZSkge1xuICAgICAgZGlkV2FybkZvcm1BY3Rpb25UeXBlID0gdHJ1ZTtcblxuICAgICAgZXJyb3IoJ0EgYnV0dG9uIGNhbiBvbmx5IHNwZWNpZnkgYSBmb3JtQWN0aW9uIGFsb25nIHdpdGggdHlwZT1cInN1Ym1pdFwiIG9yIG5vIHR5cGUuJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGZvcm1EYXRhID0gcHVzaEZvcm1BY3Rpb25BdHRyaWJ1dGUodGFyZ2V0LCByZXN1bWFibGVTdGF0ZSwgcmVuZGVyU3RhdGUsIGZvcm1BY3Rpb24sIGZvcm1FbmNUeXBlLCBmb3JtTWV0aG9kLCBmb3JtVGFyZ2V0LCBuYW1lKTtcbiAgdGFyZ2V0LnB1c2goZW5kT2ZTdGFydFRhZyk7IC8vIFdlIHBsYWNlIGFueSBhZGRpdGlvbmFsIGhpZGRlbiBmb3JtIGZpZWxkcyB3ZSBuZWVkIHRvIGluY2x1ZGUgaW5zaWRlIHRoZSBidXR0b24gaXRzZWxmLlxuXG4gIHB1c2hBZGRpdGlvbmFsRm9ybUZpZWxkcyh0YXJnZXQsIGZvcm1EYXRhKTtcbiAgcHVzaElubmVySFRNTCh0YXJnZXQsIGlubmVySFRNTCwgY2hpbGRyZW4pO1xuXG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gU3BlY2lhbCBjYXNlIGNoaWxkcmVuIGFzIGEgc3RyaW5nIHRvIGF2b2lkIHRoZSB1bm5lY2Vzc2FyeSBjb21tZW50LlxuICAgIC8vIFRPRE86IFJlbW92ZSB0aGlzIHNwZWNpYWwgY2FzZSBhZnRlciB0aGUgZ2VuZXJhbCBvcHRpbWl6YXRpb24gaXMgaW4gcGxhY2UuXG4gICAgdGFyZ2V0LnB1c2goc3RyaW5nVG9DaHVuayhlbmNvZGVIVE1MVGV4dE5vZGUoY2hpbGRyZW4pKSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIHB1c2hTdGFydFRleHRBcmVhKHRhcmdldCwgcHJvcHMpIHtcbiAge1xuICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoJ3RleHRhcmVhJywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5EZWZhdWx0VGV4dGFyZWFWYWx1ZSkge1xuICAgICAgZXJyb3IoJ1RleHRhcmVhIGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkICcgKyAnKHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9wLCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgJyArICdib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCB0ZXh0YXJlYSAnICsgJ2FuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50cycpO1xuXG4gICAgICBkaWRXYXJuRGVmYXVsdFRleHRhcmVhVmFsdWUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcoJ3RleHRhcmVhJykpO1xuICB2YXIgdmFsdWUgPSBudWxsO1xuICB2YXIgZGVmYXVsdFZhbHVlID0gbnVsbDtcbiAgdmFyIGNoaWxkcmVuID0gbnVsbDtcblxuICBmb3IgKHZhciBwcm9wS2V5IGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIHByb3BLZXkpKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcEtleV07XG5cbiAgICAgIGlmIChwcm9wVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChwcm9wS2V5KSB7XG4gICAgICAgIGNhc2UgJ2NoaWxkcmVuJzpcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgdmFsdWUgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZGVmYXVsdFZhbHVlJzpcbiAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnOlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYCBkb2VzIG5vdCBtYWtlIHNlbnNlIG9uIDx0ZXh0YXJlYT4uJyk7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBwdXNoQXR0cmlidXRlKHRhcmdldCwgcHJvcEtleSwgcHJvcFZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodmFsdWUgPT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSBudWxsKSB7XG4gICAgdmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICB0YXJnZXQucHVzaChlbmRPZlN0YXJ0VGFnKTsgLy8gVE9ETyAoeXVuZ3N0ZXJzKTogUmVtb3ZlIHN1cHBvcnQgZm9yIGNoaWxkcmVuIGNvbnRlbnQgaW4gPHRleHRhcmVhPi5cblxuICBpZiAoY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgIHtcbiAgICAgIGVycm9yKCdVc2UgdGhlIGBkZWZhdWx0VmFsdWVgIG9yIGB2YWx1ZWAgcHJvcHMgaW5zdGVhZCBvZiBzZXR0aW5nICcgKyAnY2hpbGRyZW4gb24gPHRleHRhcmVhPi4nKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJZiB5b3Ugc3VwcGx5IGBkZWZhdWx0VmFsdWVgIG9uIGEgPHRleHRhcmVhPiwgZG8gbm90IHBhc3MgY2hpbGRyZW4uJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJzx0ZXh0YXJlYT4gY2FuIG9ubHkgaGF2ZSBhdCBtb3N0IG9uZSBjaGlsZC4nKTtcbiAgICAgIH0gLy8gVE9ETzogcmVtb3ZlIHRoZSBjb2VyY2lvbiBhbmQgdGhlIERFViBjaGVjayBiZWxvdyBiZWNhdXNlIGl0IHdpbGxcbiAgICAgIC8vIGFsd2F5cyBiZSBvdmVyd3JpdHRlbiBieSB0aGUgY29lcmNpb24gc2V2ZXJhbCBsaW5lcyBiZWxvdyBpdC4gIzIyMzA5XG5cblxuICAgICAge1xuICAgICAgICBjaGVja0h0bWxTdHJpbmdDb2VyY2lvbihjaGlsZHJlblswXSk7XG4gICAgICB9XG5cbiAgICAgIHZhbHVlID0gJycgKyBjaGlsZHJlblswXTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBjaGVja0h0bWxTdHJpbmdDb2VyY2lvbihjaGlsZHJlbik7XG4gICAgfVxuXG4gICAgdmFsdWUgPSAnJyArIGNoaWxkcmVuO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWVbMF0gPT09ICdcXG4nKSB7XG4gICAgLy8gdGV4dC9odG1sIGlnbm9yZXMgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGVzZSB0YWdzIGlmIGl0J3MgYSBuZXdsaW5lXG4gICAgLy8gUHJlZmVyIHRvIGJyZWFrIGFwcGxpY2F0aW9uL3htbCBvdmVyIHRleHQvaHRtbCAoZm9yIG5vdykgYnkgYWRkaW5nXG4gICAgLy8gYSBuZXdsaW5lIHNwZWNpZmljYWxseSB0byBnZXQgZWF0ZW4gYnkgdGhlIHBhcnNlci4gKEFsdGVybmF0ZWx5IGZvclxuICAgIC8vIHRleHRhcmVhcywgcmVwbGFjaW5nIFwiXlxcblwiIHdpdGggXCJcXHJcXG5cIiBkb2Vzbid0IGdldCBlYXRlbiwgYW5kIHRoZSBmaXJzdFxuICAgIC8vIFxcciBpcyBub3JtYWxpemVkIG91dCBieSBIVE1MVGV4dEFyZWFFbGVtZW50I3ZhbHVlLilcbiAgICAvLyBTZWU6IDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sLXBvbHlnbG90LyNuZXdsaW5lcy1pbi10ZXh0YXJlYS1hbmQtcHJlPlxuICAgIC8vIFNlZTogPGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L3N5bnRheC5odG1sI2VsZW1lbnQtcmVzdHJpY3Rpb25zPlxuICAgIC8vIFNlZTogPGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L3N5bnRheC5odG1sI25ld2xpbmVzPlxuICAgIC8vIFNlZTogUGFyc2luZyBvZiBcInRleHRhcmVhXCIgXCJsaXN0aW5nXCIgYW5kIFwicHJlXCIgZWxlbWVudHNcbiAgICAvLyAgZnJvbSA8aHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluYm9keT5cbiAgICB0YXJnZXQucHVzaChsZWFkaW5nTmV3bGluZSk7XG4gIH0gLy8gVG9TdHJpbmcgYW5kIHB1c2ggZGlyZWN0bHkgaW5zdGVhZCBvZiByZWN1cnNlIG92ZXIgY2hpbGRyZW4uXG4gIC8vIFdlIGRvbid0IHJlYWxseSBzdXBwb3J0IGNvbXBsZXggY2hpbGRyZW4gaW4gdGhlIHZhbHVlIGFueXdheS5cbiAgLy8gVGhpcyBhbHNvIGN1cnJlbnRseSBhdm9pZHMgYSB0cmFpbGluZyBjb21tZW50IG5vZGUgd2hpY2ggYnJlYWtzIHRleHRhcmVhLlxuXG5cbiAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAge1xuICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgJ3ZhbHVlJyk7XG4gICAgfVxuXG4gICAgdGFyZ2V0LnB1c2goc3RyaW5nVG9DaHVuayhlbmNvZGVIVE1MVGV4dE5vZGUoJycgKyB2YWx1ZSkpKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBwdXNoTWV0YSh0YXJnZXQsIHByb3BzLCByZW5kZXJTdGF0ZSwgdGV4dEVtYmVkZGVkLCBpbnNlcnRpb25Nb2RlLCBub3NjcmlwdFRhZ0luU2NvcGUpIHtcbiAge1xuICAgIGlmIChpbnNlcnRpb25Nb2RlID09PSBTVkdfTU9ERSB8fCBub3NjcmlwdFRhZ0luU2NvcGUgfHwgcHJvcHMuaXRlbVByb3AgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHB1c2hTZWxmQ2xvc2luZyh0YXJnZXQsIHByb3BzLCAnbWV0YScpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGV4dEVtYmVkZGVkKSB7XG4gICAgICAgIC8vIFRoaXMgbGluayBmb2xsb3dzIHRleHQgYnV0IHdlIGFyZW4ndCB3cml0aW5nIGEgdGFnLiB3aGlsZSBub3QgYXMgZWZmaWNpZW50IGFzIHBvc3NpYmxlIHdlIG5lZWRcbiAgICAgICAgLy8gdG8gYmUgc2FmZSBhbmQgYXNzdW1lIHRleHQgd2lsbCBmb2xsb3cgYnkgaW5zZXJ0aW5nIGEgdGV4dFNlcGFyYXRvclxuICAgICAgICB0YXJnZXQucHVzaCh0ZXh0U2VwYXJhdG9yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBwcm9wcy5jaGFyU2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gcHVzaFNlbGZDbG9zaW5nKHJlbmRlclN0YXRlLmNoYXJzZXRDaHVua3MsIHByb3BzLCAnbWV0YScpO1xuICAgICAgfSBlbHNlIGlmIChwcm9wcy5uYW1lID09PSAndmlld3BvcnQnKSB7XG4gICAgICAgIC8vIFwidmlld3BvcnRcIiBpc24ndCByZWxhdGVkIHRvIHByZWNvbm5lY3QgYnV0IGl0IGhhcyB0aGUgcmlnaHQgcHJpb3JpdHlcbiAgICAgICAgcmV0dXJuIHB1c2hTZWxmQ2xvc2luZyhyZW5kZXJTdGF0ZS5wcmVjb25uZWN0Q2h1bmtzLCBwcm9wcywgJ21ldGEnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwdXNoU2VsZkNsb3NpbmcocmVuZGVyU3RhdGUuaG9pc3RhYmxlQ2h1bmtzLCBwcm9wcywgJ21ldGEnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVzaExpbmsodGFyZ2V0LCBwcm9wcywgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlLCB0ZXh0RW1iZWRkZWQsIGluc2VydGlvbk1vZGUsIG5vc2NyaXB0VGFnSW5TY29wZSkge1xuICB7XG4gICAgdmFyIHJlbCA9IHByb3BzLnJlbDtcbiAgICB2YXIgaHJlZiA9IHByb3BzLmhyZWY7XG4gICAgdmFyIHByZWNlZGVuY2UgPSBwcm9wcy5wcmVjZWRlbmNlO1xuXG4gICAgaWYgKGluc2VydGlvbk1vZGUgPT09IFNWR19NT0RFIHx8IG5vc2NyaXB0VGFnSW5TY29wZSB8fCBwcm9wcy5pdGVtUHJvcCAhPSBudWxsIHx8IHR5cGVvZiByZWwgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJyB8fCBocmVmID09PSAnJykge1xuICAgICAge1xuICAgICAgICBpZiAocmVsID09PSAnc3R5bGVzaGVldCcgJiYgdHlwZW9mIHByb3BzLnByZWNlZGVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJyB8fCAhaHJlZikge1xuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0IGVuY291bnRlcmVkIGEgYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiAuLi4vPmAgd2l0aCBhIGBwcmVjZWRlbmNlYCBwcm9wIGFuZCBleHBlY3RlZCB0aGUgYGhyZWZgIHByb3AgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIGJ1dCBlY291bnRlcmVkICVzIGluc3RlYWQuIElmIHlvdXIgaW50ZW50IHdhcyB0byBoYXZlIFJlYWN0IGhvaXN0IGFuZCBkZWR1cGxjaWF0ZSB0aGlzIHN0eWxlc2hlZXQgdXNpbmcgdGhlIGBwcmVjZWRlbmNlYCBwcm9wIGVuc3VyZSB0aGVyZSBpcyBhIG5vbi1lbXB0eSBzdHJpbmcgYGhyZWZgIHByb3AgYXMgd2VsbCwgb3RoZXJ3aXNlIHJlbW92ZSB0aGUgYHByZWNlZGVuY2VgIHByb3AuJywgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHB1c2hMaW5rSW1wbCh0YXJnZXQsIHByb3BzKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5yZWwgPT09ICdzdHlsZXNoZWV0Jykge1xuICAgICAgLy8gVGhpcyA8bGluaz4gbWF5IGhvaXN0YWJsZSBhcyBhIFN0eWxlc2hlZXQgUmVzb3VyY2UsIG90aGVyd2lzZSBpdCB3aWxsIGVtaXQgaW4gcGxhY2VcbiAgICAgIHZhciBrZXkgPSBnZXRSZXNvdXJjZUtleShocmVmKTtcblxuICAgICAgaWYgKHR5cGVvZiBwcmVjZWRlbmNlICE9PSAnc3RyaW5nJyB8fCBwcm9wcy5kaXNhYmxlZCAhPSBudWxsIHx8IHByb3BzLm9uTG9hZCB8fCBwcm9wcy5vbkVycm9yKSB7XG4gICAgICAgIC8vIFRoaXMgc3R5bGVzaGVldCBpcyBlaXRoZXIgbm90IG9wdGVkIGludG8gUmVzb3VyY2Ugc2VtYW50aWNzIG9yIGhhcyBjb25mbGljdGluZyBwcm9wZXJ0aWVzIHdoaWNoXG4gICAgICAgIC8vIGRpc3F1YWxpZnkgaXQgZm9yIHN1Y2guIFdlIGNhbiBzdGlsbCBjcmVhdGUgYSBwcmVsb2FkIHJlc291cmNlIHRvIGhlbHAgaXQgbG9hZCBmYXN0ZXIgb24gdGhlXG4gICAgICAgIC8vIGNsaWVudFxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBwcmVjZWRlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHByb3BzLmRpc2FibGVkICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ1JlYWN0IGVuY291bnRlcmVkIGEgYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiAuLi4vPmAgd2l0aCBhIGBwcmVjZWRlbmNlYCBwcm9wIGFuZCBhIGBkaXNhYmxlZGAgcHJvcC4gVGhlIHByZXNlbmNlIG9mIHRoZSBgZGlzYWJsZWRgIHByb3AgaW5kaWNhdGVzIGFuIGludGVudCB0byBtYW5hZ2UgdGhlIHN0eWxlc2hlZXQgYWN0aXZlIHN0YXRlIGZyb20geW91ciBmcm9tIHlvdXIgQ29tcG9uZW50IGNvZGUgYW5kIFJlYWN0IHdpbGwgbm90IGhvaXN0IG9yIGRlZHVwbGljYXRlIHRoaXMgc3R5bGVzaGVldC4gSWYgeW91ciBpbnRlbnQgd2FzIHRvIGhhdmUgUmVhY3QgaG9pc3QgYW5kIGRlZHVwbGNpYXRlIHRoaXMgc3R5bGVzaGVldCB1c2luZyB0aGUgYHByZWNlZGVuY2VgIHByb3AgcmVtb3ZlIHRoZSBgZGlzYWJsZWRgIHByb3AsIG90aGVyd2lzZSByZW1vdmUgdGhlIGBwcmVjZWRlbmNlYCBwcm9wLicpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5vbkxvYWQgfHwgcHJvcHMub25FcnJvcikge1xuICAgICAgICAgICAgICB2YXIgcHJvcERlc2NyaXB0aW9uID0gcHJvcHMub25Mb2FkICYmIHByb3BzLm9uRXJyb3IgPyAnYG9uTG9hZGAgYW5kIGBvbkVycm9yYCBwcm9wcycgOiBwcm9wcy5vbkxvYWQgPyAnYG9uTG9hZGAgcHJvcCcgOiAnYG9uRXJyb3JgIHByb3AnO1xuXG4gICAgICAgICAgICAgIGVycm9yKCdSZWFjdCBlbmNvdW50ZXJlZCBhIGA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgLi4uLz5gIHdpdGggYSBgcHJlY2VkZW5jZWAgcHJvcCBhbmQgJXMuIFRoZSBwcmVzZW5jZSBvZiBsb2FkaW5nIGFuZCBlcnJvciBoYW5kbGVycyBpbmRpY2F0ZXMgYW4gaW50ZW50IHRvIG1hbmFnZSB0aGUgc3R5bGVzaGVldCBsb2FkaW5nIHN0YXRlIGZyb20geW91ciBmcm9tIHlvdXIgQ29tcG9uZW50IGNvZGUgYW5kIFJlYWN0IHdpbGwgbm90IGhvaXN0IG9yIGRlZHVwbGljYXRlIHRoaXMgc3R5bGVzaGVldC4gSWYgeW91ciBpbnRlbnQgd2FzIHRvIGhhdmUgUmVhY3QgaG9pc3QgYW5kIGRlZHVwbGNpYXRlIHRoaXMgc3R5bGVzaGVldCB1c2luZyB0aGUgYHByZWNlZGVuY2VgIHByb3AgcmVtb3ZlIHRoZSAlcywgb3RoZXJ3aXNlIHJlbW92ZSB0aGUgYHByZWNlZGVuY2VgIHByb3AuJywgcHJvcERlc2NyaXB0aW9uLCBwcm9wRGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwdXNoTGlua0ltcGwodGFyZ2V0LCBwcm9wcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIHN0eWxlc2hlZXQgcmVmZXJzIHRvIGEgUmVzb3VyY2UgYW5kIHdlIGNyZWF0ZSBhIG5ldyBvbmUgaWYgbmVjZXNzYXJ5XG4gICAgICAgIHZhciBzdHlsZVF1ZXVlID0gcmVuZGVyU3RhdGUuc3R5bGVzLmdldChwcmVjZWRlbmNlKTtcbiAgICAgICAgdmFyIGhhc0tleSA9IHJlc3VtYWJsZVN0YXRlLnN0eWxlUmVzb3VyY2VzLmhhc093blByb3BlcnR5KGtleSk7XG4gICAgICAgIHZhciByZXNvdXJjZVN0YXRlID0gaGFzS2V5ID8gcmVzdW1hYmxlU3RhdGUuc3R5bGVSZXNvdXJjZXNba2V5XSA6IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAocmVzb3VyY2VTdGF0ZSAhPT0gRVhJU1RTKSB7XG4gICAgICAgICAgLy8gV2UgYXJlIGdvaW5nIHRvIGNyZWF0ZSB0aGlzIHJlc291cmNlIG5vdyBzbyBpdCBpcyBtYXJrZWQgYXMgRXhpc3RzXG4gICAgICAgICAgcmVzdW1hYmxlU3RhdGUuc3R5bGVSZXNvdXJjZXNba2V5XSA9IEVYSVNUUzsgLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB3ZSd2ZSBlbmNvdW50ZXJlZCB0aGlzIHByZWNlZGVuY2Ugd2UgbmVlZFxuICAgICAgICAgIC8vIHRvIGNyZWF0ZSBhIFN0eWxlUXVldWVcblxuICAgICAgICAgIGlmICghc3R5bGVRdWV1ZSkge1xuICAgICAgICAgICAgc3R5bGVRdWV1ZSA9IHtcbiAgICAgICAgICAgICAgcHJlY2VkZW5jZTogc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihwcmVjZWRlbmNlKSksXG4gICAgICAgICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgICAgICAgaHJlZnM6IFtdLFxuICAgICAgICAgICAgICBzaGVldHM6IG5ldyBNYXAoKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlbmRlclN0YXRlLnN0eWxlcy5zZXQocHJlY2VkZW5jZSwgc3R5bGVRdWV1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHJlc291cmNlID0ge1xuICAgICAgICAgICAgc3RhdGU6IFBFTkRJTkckMSxcbiAgICAgICAgICAgIHByb3BzOiBzdHlsZXNoZWV0UHJvcHNGcm9tUmF3UHJvcHMocHJvcHMpXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChyZXNvdXJjZVN0YXRlKSB7XG4gICAgICAgICAgICAvLyBXaGVuIHJlc291cmNlU3RhdGUgaXMgdHJ1dHkgaXQgaXMgYSBQcmVsb2FkIHN0YXRlLiBXZSBjYXN0IGl0IGZvciBjbGFyaXR5XG4gICAgICAgICAgICB2YXIgcHJlbG9hZFN0YXRlID0gcmVzb3VyY2VTdGF0ZTtcblxuICAgICAgICAgICAgaWYgKHByZWxvYWRTdGF0ZS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgYWRvcHRQcmVsb2FkQ3JlZGVudGlhbHMocmVzb3VyY2UucHJvcHMsIHByZWxvYWRTdGF0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBwcmVsb2FkUmVzb3VyY2UgPSByZW5kZXJTdGF0ZS5wcmVsb2Fkcy5zdHlsZXNoZWV0cy5nZXQoa2V5KTtcblxuICAgICAgICAgICAgaWYgKHByZWxvYWRSZXNvdXJjZSAmJiBwcmVsb2FkUmVzb3VyY2UubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAvLyBUaGUgUHJlbG9hZCBmb3IgdGhpcyByZXNvdXJjZSB3YXMgY3JlYXRlZCBpbiB0aGlzIHJlbmRlciBwYXNzIGFuZCBoYXMgbm90IGZsdXNoZWQgeWV0IHNvXG4gICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gY2xlYXIgaXQgdG8gYXZvaWQgaXQgZmx1c2hpbmcuXG4gICAgICAgICAgICAgIHByZWxvYWRSZXNvdXJjZS5sZW5ndGggPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gRWl0aGVyIHRoZSBwcmVsb2FkIHJlc291cmNlIGZyb20gdGhpcyByZW5kZXIgYWxyZWFkeSBmbHVzaGVkIGluIHRoaXMgcmVuZGVyIHBhc3NcbiAgICAgICAgICAgICAgLy8gb3IgdGhlIHByZWxvYWQgZmx1c2hlZCBpbiBhIHByaW9yIHBhc3MgKHByZXJlbmRlcikuIEluIGVpdGhlciBjYXNlIHdlIG5lZWQgdG8gbWFya1xuICAgICAgICAgICAgICAvLyB0aGlzIHJlc291cmNlIGFzIGFscmVhZHkgaGF2aW5nIGJlZW4gcHJlbG9hZGVkLlxuICAgICAgICAgICAgICByZXNvdXJjZS5zdGF0ZSA9IFBSRUxPQURFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IC8vIFdlIGFkZCB0aGUgbmV3bHkgY3JlYXRlZCByZXNvdXJjZSB0byBvdXIgU3R5bGVRdWV1ZSBhbmQgaWYgbmVjZXNzYXJ5XG4gICAgICAgICAgLy8gdHJhY2sgdGhlIHJlc291cmNlIHdpdGggdGhlIGN1cnJlbnRseSByZW5kZXJpbmcgYm91bmRhcnlcblxuXG4gICAgICAgICAgc3R5bGVRdWV1ZS5zaGVldHMuc2V0KGtleSwgcmVzb3VyY2UpO1xuXG4gICAgICAgICAgaWYgKHJlbmRlclN0YXRlLmJvdW5kYXJ5UmVzb3VyY2VzKSB7XG4gICAgICAgICAgICByZW5kZXJTdGF0ZS5ib3VuZGFyeVJlc291cmNlcy5zdHlsZXNoZWV0cy5hZGQocmVzb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBXZSBuZWVkIHRvIHRyYWNrIHdoZXRoZXIgdGhpcyBib3VuZGFyeSBzaG91bGQgd2FpdCBvbiB0aGlzIHJlc291cmNlIG9yIG5vdC5cbiAgICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyByZXNvdXJjZSBzaG91bGQgYWx3YXlzIGV4aXN0IHNpbmNlIHdlIGVpdGhlciBoYWQgaXQgb3IganVzdCBjcmVhdGVkXG4gICAgICAgICAgLy8gaXQuIEhvd2V2ZXIsIGl0J3MgcG9zc2libGUgd2hlbiB5b3UgcmVzdW1lIHRoYXQgdGhlIHN0eWxlIGhhcyBhbHJlYWR5IGJlZW4gZW1pdHRlZFxuICAgICAgICAgIC8vIGFuZCB0aGVuIGl0IHdvdWxkbid0IGJlIHJlY3JlYXRlZCBpbiB0aGUgUmVuZGVyU3RhdGUgYW5kIHRoZXJlJ3Mgbm8gbmVlZCB0byB0cmFja1xuICAgICAgICAgIC8vIGl0IGFnYWluIHNpbmNlIHdlIHNob3VsZCd2ZSBob2lzdGVkIGl0IHRvIHRoZSBzaGVsbCBhbHJlYWR5LlxuICAgICAgICAgIGlmIChzdHlsZVF1ZXVlKSB7XG4gICAgICAgICAgICB2YXIgX3Jlc291cmNlID0gc3R5bGVRdWV1ZS5zaGVldHMuZ2V0KGtleSk7XG5cbiAgICAgICAgICAgIGlmIChfcmVzb3VyY2UpIHtcbiAgICAgICAgICAgICAgaWYgKHJlbmRlclN0YXRlLmJvdW5kYXJ5UmVzb3VyY2VzKSB7XG4gICAgICAgICAgICAgICAgcmVuZGVyU3RhdGUuYm91bmRhcnlSZXNvdXJjZXMuc3R5bGVzaGVldHMuYWRkKF9yZXNvdXJjZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dEVtYmVkZGVkKSB7XG4gICAgICAgICAgLy8gVGhpcyBsaW5rIGZvbGxvd3MgdGV4dCBidXQgd2UgYXJlbid0IHdyaXRpbmcgYSB0YWcuIHdoaWxlIG5vdCBhcyBlZmZpY2llbnQgYXMgcG9zc2libGUgd2UgbmVlZFxuICAgICAgICAgIC8vIHRvIGJlIHNhZmUgYW5kIGFzc3VtZSB0ZXh0IHdpbGwgZm9sbG93IGJ5IGluc2VydGluZyBhIHRleHRTZXBhcmF0b3JcbiAgICAgICAgICB0YXJnZXQucHVzaCh0ZXh0U2VwYXJhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcHMub25Mb2FkIHx8IHByb3BzLm9uRXJyb3IpIHtcbiAgICAgIC8vIFdoZW4gdXNpbmcgbG9hZCBoYW5kbGVycyB3ZSBjYW5ub3QgaG9pc3QgYW5kIG5lZWQgdG8gZW1pdCBsaW5rcyBpbiBwbGFjZVxuICAgICAgcmV0dXJuIHB1c2hMaW5rSW1wbCh0YXJnZXQsIHByb3BzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gV2UgY2FuIGhvaXN0IHRoaXMgbGluayBzbyB3ZSBtYXkgbmVlZCB0byBlbWl0IGEgdGV4dCBzZXBhcmF0b3IuXG4gICAgICAvLyBAVE9ETyByZWZhY3RvciB0ZXh0IHNlcGFyYXRvcnMgc28gd2UgZG9uJ3QgaGF2ZSB0byBkZWZlbnNpdmVseSBhZGRcbiAgICAgIC8vIHRoZW0gd2hlbiB3ZSBkb24ndCBlbmQgdXAgZW1pdHRpbmcgYSB0YWcgYXMgYSByZXN1bHQgb2YgcHVzaFN0YXJ0SW5zdGFuY2VcbiAgICAgIGlmICh0ZXh0RW1iZWRkZWQpIHtcbiAgICAgICAgLy8gVGhpcyBsaW5rIGZvbGxvd3MgdGV4dCBidXQgd2UgYXJlbid0IHdyaXRpbmcgYSB0YWcuIHdoaWxlIG5vdCBhcyBlZmZpY2llbnQgYXMgcG9zc2libGUgd2UgbmVlZFxuICAgICAgICAvLyB0byBiZSBzYWZlIGFuZCBhc3N1bWUgdGV4dCB3aWxsIGZvbGxvdyBieSBpbnNlcnRpbmcgYSB0ZXh0U2VwYXJhdG9yXG4gICAgICAgIHRhcmdldC5wdXNoKHRleHRTZXBhcmF0b3IpO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKHByb3BzLnJlbCkge1xuICAgICAgICBjYXNlICdwcmVjb25uZWN0JzpcbiAgICAgICAgY2FzZSAnZG5zLXByZWZldGNoJzpcbiAgICAgICAgICByZXR1cm4gcHVzaExpbmtJbXBsKHJlbmRlclN0YXRlLnByZWNvbm5lY3RDaHVua3MsIHByb3BzKTtcblxuICAgICAgICBjYXNlICdwcmVsb2FkJzpcbiAgICAgICAgICByZXR1cm4gcHVzaExpbmtJbXBsKHJlbmRlclN0YXRlLnByZWxvYWRDaHVua3MsIHByb3BzKTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBwdXNoTGlua0ltcGwocmVuZGVyU3RhdGUuaG9pc3RhYmxlQ2h1bmtzLCBwcm9wcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hMaW5rSW1wbCh0YXJnZXQsIHByb3BzKSB7XG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcoJ2xpbmsnKSk7XG5cbiAgZm9yICh2YXIgcHJvcEtleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBwcm9wS2V5KSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuXG4gICAgICBpZiAocHJvcFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICBjYXNlICdjaGlsZHJlbic6XG4gICAgICAgIGNhc2UgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJzpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xpbmsnICsgXCIgaXMgYSBzZWxmLWNsb3NpbmcgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciBcIiArICd1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCBwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRhcmdldC5wdXNoKGVuZE9mU3RhcnRUYWdTZWxmQ2xvc2luZyk7XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBwdXNoU3R5bGUodGFyZ2V0LCBwcm9wcywgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlLCB0ZXh0RW1iZWRkZWQsIGluc2VydGlvbk1vZGUsIG5vc2NyaXB0VGFnSW5TY29wZSkge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsICdjaGlsZHJlbicpKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBjaGlsZCA9IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4ubGVuZ3RoIDwgMiA/IGNoaWxkcmVuWzBdIDogbnVsbCA6IGNoaWxkcmVuO1xuXG4gICAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ3N5bWJvbCcgfHwgQXJyYXkuaXNBcnJheShjaGlsZCkpIHtcbiAgICAgICAgdmFyIGNoaWxkVHlwZSA9IHR5cGVvZiBjaGlsZCA9PT0gJ2Z1bmN0aW9uJyA/ICdhIEZ1bmN0aW9uJyA6IHR5cGVvZiBjaGlsZCA9PT0gJ3N5bWJvbCcgPyAnYSBTeWJtb2wnIDogJ2FuIEFycmF5JztcblxuICAgICAgICBlcnJvcignUmVhY3QgZXhwZWN0IGNoaWxkcmVuIG9mIDxzdHlsZT4gdGFncyB0byBiZSBhIHN0cmluZywgbnVtYmVyLCBvciBvYmplY3Qgd2l0aCBhIGB0b1N0cmluZ2AgbWV0aG9kIGJ1dCBmb3VuZCAlcyBpbnN0ZWFkLiAnICsgJ0luIGJyb3dzZXJzIHN0eWxlIEVsZW1lbnRzIGNhbiBvbmx5IGhhdmUgYFRleHRgIE5vZGVzIGFzIGNoaWxkcmVuLicsIGNoaWxkVHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAge1xuICAgIHZhciBwcmVjZWRlbmNlID0gcHJvcHMucHJlY2VkZW5jZTtcbiAgICB2YXIgaHJlZiA9IHByb3BzLmhyZWY7XG5cbiAgICBpZiAoaW5zZXJ0aW9uTW9kZSA9PT0gU1ZHX01PREUgfHwgbm9zY3JpcHRUYWdJblNjb3BlIHx8IHByb3BzLml0ZW1Qcm9wICE9IG51bGwgfHwgdHlwZW9mIHByZWNlZGVuY2UgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJyB8fCBocmVmID09PSAnJykge1xuICAgICAgLy8gVGhpcyBzdHlsZSB0YWcgaXMgbm90IGFibGUgdG8gYmUgdHVybmVkIGludG8gYSBTdHlsZSBSZXNvdXJjZVxuICAgICAgcmV0dXJuIHB1c2hTdHlsZUltcGwodGFyZ2V0LCBwcm9wcyk7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKGhyZWYuaW5jbHVkZXMoJyAnKSkge1xuICAgICAgICBlcnJvcignUmVhY3QgZXhwZWN0ZWQgdGhlIGBocmVmYCBwcm9wIGZvciBhIDxzdHlsZT4gdGFnIG9wdGluZyBpbnRvIGhvaXN0aW5nIHNlbWFudGljcyB1c2luZyB0aGUgYHByZWNlZGVuY2VgIHByb3AgdG8gbm90IGhhdmUgYW55IHNwYWNlcyBidXQgZWNvdW50ZXJlZCBzcGFjZXMgaW5zdGVhZC4gdXNpbmcgc3BhY2VzIGluIHRoaXMgcHJvcCB3aWxsIGNhdXNlIGh5ZHJhdGlvbiBvZiB0aGlzIHN0eWxlIHRvIGZhaWwgb24gdGhlIGNsaWVudC4gVGhlIGhyZWYgZm9yIHRoZSA8c3R5bGU+IHdoZXJlIHRoaXMgb2N1cnJlZCBpcyBcIiVzXCIuJywgaHJlZik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleSA9IGdldFJlc291cmNlS2V5KGhyZWYpO1xuICAgIHZhciBzdHlsZVF1ZXVlID0gcmVuZGVyU3RhdGUuc3R5bGVzLmdldChwcmVjZWRlbmNlKTtcbiAgICB2YXIgaGFzS2V5ID0gcmVzdW1hYmxlU3RhdGUuc3R5bGVSZXNvdXJjZXMuaGFzT3duUHJvcGVydHkoa2V5KTtcbiAgICB2YXIgcmVzb3VyY2VTdGF0ZSA9IGhhc0tleSA/IHJlc3VtYWJsZVN0YXRlLnN0eWxlUmVzb3VyY2VzW2tleV0gOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAocmVzb3VyY2VTdGF0ZSAhPT0gRVhJU1RTKSB7XG4gICAgICAvLyBXZSBhcmUgZ29pbmcgdG8gY3JlYXRlIHRoaXMgcmVzb3VyY2Ugbm93IHNvIGl0IGlzIG1hcmtlZCBhcyBFeGlzdHNcbiAgICAgIHJlc3VtYWJsZVN0YXRlLnN0eWxlUmVzb3VyY2VzW2tleV0gPSBFWElTVFM7XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKHJlc291cmNlU3RhdGUpIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QgZW5jb3VudGVyZWQgYSBob2lzdGFibGUgc3R5bGUgdGFnIGZvciB0aGUgc2FtZSBocmVmIGFzIGEgcHJlbG9hZDogXCIlc1wiLiBXaGVuIHVzaW5nIGEgc3R5bGUgdGFnIHRvIGlubGluZSBzdHlsZXMgeW91IHNob3VsZCBub3QgYWxzbyBwcmVsb2FkIGl0IGFzIGEgc3R5bHNoZWV0LicsIGhyZWYpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghc3R5bGVRdWV1ZSkge1xuICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB0aW1lIHdlJ3ZlIGVuY291bnRlcmVkIHRoaXMgcHJlY2VkZW5jZSB3ZSBuZWVkXG4gICAgICAgIC8vIHRvIGNyZWF0ZSBhIFN0eWxlUXVldWUuXG4gICAgICAgIHN0eWxlUXVldWUgPSB7XG4gICAgICAgICAgcHJlY2VkZW5jZTogc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihwcmVjZWRlbmNlKSksXG4gICAgICAgICAgcnVsZXM6IFtdLFxuICAgICAgICAgIGhyZWZzOiBbc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihocmVmKSldLFxuICAgICAgICAgIHNoZWV0czogbmV3IE1hcCgpXG4gICAgICAgIH07XG4gICAgICAgIHJlbmRlclN0YXRlLnN0eWxlcy5zZXQocHJlY2VkZW5jZSwgc3R5bGVRdWV1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSBoYXZlIHNlZW4gdGhpcyBwcmVjZWRlbmNlIGJlZm9yZSBhbmQgbmVlZCB0byB0cmFjayB0aGlzIGhyZWZcbiAgICAgICAgc3R5bGVRdWV1ZS5ocmVmcy5wdXNoKHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoaHJlZikpKTtcbiAgICAgIH1cblxuICAgICAgcHVzaFN0eWxlQ29udGVudHMoc3R5bGVRdWV1ZS5ydWxlcywgcHJvcHMpO1xuICAgIH1cblxuICAgIGlmIChzdHlsZVF1ZXVlKSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIHRyYWNrIHdoZXRoZXIgdGhpcyBib3VuZGFyeSBzaG91bGQgd2FpdCBvbiB0aGlzIHJlc291cmNlIG9yIG5vdC5cbiAgICAgIC8vIFR5cGljYWxseSB0aGlzIHJlc291cmNlIHNob3VsZCBhbHdheXMgZXhpc3Qgc2luY2Ugd2UgZWl0aGVyIGhhZCBpdCBvciBqdXN0IGNyZWF0ZWRcbiAgICAgIC8vIGl0LiBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHdoZW4geW91IHJlc3VtZSB0aGF0IHRoZSBzdHlsZSBoYXMgYWxyZWFkeSBiZWVuIGVtaXR0ZWRcbiAgICAgIC8vIGFuZCB0aGVuIGl0IHdvdWxkbid0IGJlIHJlY3JlYXRlZCBpbiB0aGUgUmVuZGVyU3RhdGUgYW5kIHRoZXJlJ3Mgbm8gbmVlZCB0byB0cmFja1xuICAgICAgLy8gaXQgYWdhaW4gc2luY2Ugd2Ugc2hvdWxkJ3ZlIGhvaXN0ZWQgaXQgdG8gdGhlIHNoZWxsIGFscmVhZHkuXG4gICAgICBpZiAocmVuZGVyU3RhdGUuYm91bmRhcnlSZXNvdXJjZXMpIHtcbiAgICAgICAgcmVuZGVyU3RhdGUuYm91bmRhcnlSZXNvdXJjZXMuc3R5bGVzLmFkZChzdHlsZVF1ZXVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGV4dEVtYmVkZGVkKSB7XG4gICAgICAvLyBUaGlzIGxpbmsgZm9sbG93cyB0ZXh0IGJ1dCB3ZSBhcmVuJ3Qgd3JpdGluZyBhIHRhZy4gd2hpbGUgbm90IGFzIGVmZmljaWVudCBhcyBwb3NzaWJsZSB3ZSBuZWVkXG4gICAgICAvLyB0byBiZSBzYWZlIGFuZCBhc3N1bWUgdGV4dCB3aWxsIGZvbGxvdyBieSBpbnNlcnRpbmcgYSB0ZXh0U2VwYXJhdG9yXG4gICAgICB0YXJnZXQucHVzaCh0ZXh0U2VwYXJhdG9yKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVzaFN0eWxlSW1wbCh0YXJnZXQsIHByb3BzKSB7XG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcoJ3N0eWxlJykpO1xuICB2YXIgY2hpbGRyZW4gPSBudWxsO1xuICB2YXIgaW5uZXJIVE1MID0gbnVsbDtcblxuICBmb3IgKHZhciBwcm9wS2V5IGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIHByb3BLZXkpKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcEtleV07XG5cbiAgICAgIGlmIChwcm9wVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChwcm9wS2V5KSB7XG4gICAgICAgIGNhc2UgJ2NoaWxkcmVuJzpcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdkYW5nZXJvdXNseVNldElubmVySFRNTCc6XG4gICAgICAgICAgaW5uZXJIVE1MID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsIHByb3BLZXksIHByb3BWYWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGFyZ2V0LnB1c2goZW5kT2ZTdGFydFRhZyk7XG4gIHZhciBjaGlsZCA9IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4ubGVuZ3RoIDwgMiA/IGNoaWxkcmVuWzBdIDogbnVsbCA6IGNoaWxkcmVuO1xuXG4gIGlmICh0eXBlb2YgY2hpbGQgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGNoaWxkICE9PSAnc3ltYm9sJyAmJiBjaGlsZCAhPT0gbnVsbCAmJiBjaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgdGFyZ2V0LnB1c2goc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcignJyArIGNoaWxkKSkpO1xuICB9XG5cbiAgcHVzaElubmVySFRNTCh0YXJnZXQsIGlubmVySFRNTCwgY2hpbGRyZW4pO1xuICB0YXJnZXQucHVzaChlbmRDaHVua0ZvclRhZygnc3R5bGUnKSk7XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBwdXNoU3R5bGVDb250ZW50cyh0YXJnZXQsIHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IG51bGw7XG4gIHZhciBpbm5lckhUTUwgPSBudWxsO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcEtleSkpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wS2V5XTtcblxuICAgICAgaWYgKHByb3BWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKHByb3BLZXkpIHtcbiAgICAgICAgY2FzZSAnY2hpbGRyZW4nOlxuICAgICAgICAgIGNoaWxkcmVuID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJzpcbiAgICAgICAgICBpbm5lckhUTUwgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGNoaWxkID0gQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbi5sZW5ndGggPCAyID8gY2hpbGRyZW5bMF0gOiBudWxsIDogY2hpbGRyZW47XG5cbiAgaWYgKHR5cGVvZiBjaGlsZCAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgY2hpbGQgIT09ICdzeW1ib2wnICYmIGNoaWxkICE9PSBudWxsICYmIGNoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgICB0YXJnZXQucHVzaChzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKCcnICsgY2hpbGQpKSk7XG4gIH1cblxuICBwdXNoSW5uZXJIVE1MKHRhcmdldCwgaW5uZXJIVE1MLCBjaGlsZHJlbik7XG4gIHJldHVybjtcbn1cblxuZnVuY3Rpb24gcHVzaEltZyh0YXJnZXQsIHByb3BzLCByZXN1bWFibGVTdGF0ZSwgcmVuZGVyU3RhdGUsIHBpY3R1cmVUYWdJblNjb3BlKSB7XG4gIHZhciBzcmMgPSBwcm9wcy5zcmMsXG4gICAgICBzcmNTZXQgPSBwcm9wcy5zcmNTZXQ7XG5cbiAgaWYgKHByb3BzLmxvYWRpbmcgIT09ICdsYXp5JyAmJiAoc3JjIHx8IHNyY1NldCkgJiYgKHR5cGVvZiBzcmMgPT09ICdzdHJpbmcnIHx8IHNyYyA9PSBudWxsKSAmJiAodHlwZW9mIHNyY1NldCA9PT0gJ3N0cmluZycgfHwgc3JjU2V0ID09IG51bGwpICYmIHByb3BzLmZldGNoUHJpb3JpdHkgIT09ICdsb3cnICYmIHBpY3R1cmVUYWdJblNjb3BlID09PSBmYWxzZSAmJiAvLyBXZSBleGNsdWRlIGRhdGEgVVJJcyBpbiBzcmMgYW5kIHNyY1NldCBzaW5jZSB0aGVzZSBzaG91bGQgbm90IGJlIHByZWxvYWRlZFxuICAhKHR5cGVvZiBzcmMgPT09ICdzdHJpbmcnICYmIHNyY1s0XSA9PT0gJzonICYmIChzcmNbMF0gPT09ICdkJyB8fCBzcmNbMF0gPT09ICdEJykgJiYgKHNyY1sxXSA9PT0gJ2EnIHx8IHNyY1sxXSA9PT0gJ0EnKSAmJiAoc3JjWzJdID09PSAndCcgfHwgc3JjWzJdID09PSAnVCcpICYmIChzcmNbM10gPT09ICdhJyB8fCBzcmNbM10gPT09ICdBJykpICYmICEodHlwZW9mIHNyY1NldCA9PT0gJ3N0cmluZycgJiYgc3JjU2V0WzRdID09PSAnOicgJiYgKHNyY1NldFswXSA9PT0gJ2QnIHx8IHNyY1NldFswXSA9PT0gJ0QnKSAmJiAoc3JjU2V0WzFdID09PSAnYScgfHwgc3JjU2V0WzFdID09PSAnQScpICYmIChzcmNTZXRbMl0gPT09ICd0JyB8fCBzcmNTZXRbMl0gPT09ICdUJykgJiYgKHNyY1NldFszXSA9PT0gJ2EnIHx8IHNyY1NldFszXSA9PT0gJ0EnKSkpIHtcbiAgICAvLyBXZSBoYXZlIGEgc3VzcGVuc2V5IGltYWdlIGFuZCBvdWdodCB0byBwcmVsb2FkIGl0IHRvIG9wdGltaXplIHRoZSBsb2FkaW5nIG9mIGRpc3BsYXkgYmxvY2tpbmdcbiAgICAvLyByZXN1bWFibGVTdGF0ZS5cbiAgICB2YXIgc2l6ZXMgPSB0eXBlb2YgcHJvcHMuc2l6ZXMgPT09ICdzdHJpbmcnID8gcHJvcHMuc2l6ZXMgOiB1bmRlZmluZWQ7XG4gICAgdmFyIGtleSA9IGdldEltYWdlUmVzb3VyY2VLZXkoc3JjLCBzcmNTZXQsIHNpemVzKTtcbiAgICB2YXIgcHJvbW90YWJsZVByZWxvYWRzID0gcmVuZGVyU3RhdGUucHJlbG9hZHMuaW1hZ2VzO1xuICAgIHZhciByZXNvdXJjZSA9IHByb21vdGFibGVQcmVsb2Fkcy5nZXQoa2V5KTtcblxuICAgIGlmIChyZXNvdXJjZSkge1xuICAgICAgLy8gV2UgY29uc2lkZXIgd2hldGhlciB0aGlzIHByZWxvYWQgY2FuIGJlIHByb21vdGVkIHRvIGhpZ2hlciBwcmlvcml0eSBmbHVzaGluZyBxdWV1ZS5cbiAgICAgIC8vIFRoZSBvbmx5IHRpbWUgYSByZXNvdXJjZSB3aWxsIGV4aXN0IGhlcmUgaXMgaWYgaXQgd2FzIGNyZWF0ZWQgZHVyaW5nIHRoaXMgcmVuZGVyXG4gICAgICAvLyBhbmQgd2FzIG5vdCBhbHJlYWR5IGluIHRoZSBoaWdoIHByaW9yaXR5IHF1ZXVlLlxuICAgICAgaWYgKHByb3BzLmZldGNoUHJpb3JpdHkgPT09ICdoaWdoJyB8fCByZW5kZXJTdGF0ZS5oaWdoSW1hZ2VQcmVsb2Fkcy5zaXplIDwgMTApIHtcbiAgICAgICAgLy8gRGVsZXRlIHRoZSByZXNvdXJjZSBmcm9tIHRoZSBtYXAgc2luY2Ugd2UgYXJlIHByb21vdGluZyBpdCBhbmQgZG9uJ3Qgd2FudCB0b1xuICAgICAgICAvLyByZWVudGVyIHRoaXMgYnJhbmNoIGluIGEgc2Vjb25kIHBhc3MgZm9yIGR1cGxpY2F0ZSBpbWcgaHJlZnMuXG4gICAgICAgIHByb21vdGFibGVQcmVsb2Fkcy5kZWxldGUoa2V5KTsgLy8gJEZsb3dGaXhNZSAtIEZsb3cgc2hvdWxkIHVuZGVyc3RhbmQgdGhhdCB0aGlzIGlzIGEgUmVzb3VyY2UgaWYgdGhlIGNvbmRpdGlvbiB3YXMgdHJ1ZVxuXG4gICAgICAgIHJlbmRlclN0YXRlLmhpZ2hJbWFnZVByZWxvYWRzLmFkZChyZXNvdXJjZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghcmVzdW1hYmxlU3RhdGUuaW1hZ2VSZXNvdXJjZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgLy8gV2UgbXVzdCBjb25zdHJ1Y3QgYSBuZXcgcHJlbG9hZCByZXNvdXJjZVxuICAgICAgcmVzdW1hYmxlU3RhdGUuaW1hZ2VSZXNvdXJjZXNba2V5XSA9IFBSRUxPQURfTk9fQ1JFRFM7XG4gICAgICB2YXIgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZyhwcm9wcy5jcm9zc09yaWdpbik7XG4gICAgICB2YXIgaGVhZGVycyA9IHJlbmRlclN0YXRlLmhlYWRlcnM7XG4gICAgICB2YXIgaGVhZGVyO1xuXG4gICAgICBpZiAoaGVhZGVycyAmJiBoZWFkZXJzLnJlbWFpbmluZ0NhcGFjaXR5ID4gMCAmJiAoIC8vIHRoaXMgaXMgYSBodWVyaXN0aWMgc2ltaWxhciB0byBjYXBwaW5nIGVsZW1lbnQgcHJlbG9hZHMgdG8gMTAgdW5sZXNzIGV4cGxpY2l0bHlcbiAgICAgIC8vIGZldGNoUHJpb3JpdHk9XCJoaWdoXCIuIFdlIHVzZSBsZW5ndGggaGVyZSB3aGljaCBtZWFucyBpdCB3aWxsIGZpdCBmZXdlciBpbWFnZXMgd2hlblxuICAgICAgLy8gdGhlIHVybHMgYXJlIGxvbmcgYW5kIG1vcmUgd2hlbiBzaG9ydC4gYXJndWFibHkgYnl0ZSBzaXplIGlzIGEgYmV0dGVyIGh1ZXJpc3RpYyBiZWNhdXNlXG4gICAgICAvLyBpdCBkaXJlY3RseSB0cmFuc2xhdGVzIHRvIGhvdyBtdWNoIHdlIHNlbmQgZG93biBiZWZvcmUgY29udGVudCBpcyBhY3R1YWxseSBzZWVuLlxuICAgICAgLy8gV2UgY291bGQgdW5pZnkgdGhlIGNvdW50cyBhbmQgYWxzbyBtYWtlIGl0IHNvIHRoZSB0b3RhbCBpcyB0cmFja2VkIHJlZ2FyZGxlc3Mgb2ZcbiAgICAgIC8vIGZsdXNoaW5nIG91dHB1dCBidXQgc2luY2UgdGhlIGhlYWRlcnMgYXJlIGxpa2VseSB0byBiZSBnbyBlYXJsaWVyIHRoYW4gY29udGVudFxuICAgICAgLy8gdGhleSBkb24ndCByZWFsbHkgY29uZmxpY3Qgc28gZm9yIG5vdyBJJ3ZlIGtlcHQgdGhlbSBzZXBhcmF0ZVxuICAgICAgcHJvcHMuZmV0Y2hQcmlvcml0eSA9PT0gJ2hpZ2gnIHx8IGhlYWRlcnMuaGlnaEltYWdlUHJlbG9hZHMubGVuZ3RoIDwgNTAwKSAmJiAoIC8vIFdlIG1hbnVhbGx5IGNvbnN0cnVjdCB0aGUgb3B0aW9ucyBmb3IgdGhlIHByZWxvYWQgb25seSBmcm9tIHN0cmluZ3MuIFdlIGRvbid0IHdhbnQgdG8gcG9sbHV0ZVxuICAgICAgLy8gdGhlIHBhcmFtcyBsaXN0IHdpdGggYXJiaXRyYXJ5IHByb3BzIGFuZCBpZiB3ZSBjb3BpZWQgZXZlcnl0aGluZyBvdmVyIGFzIGl0IHdlIG1pZ2h0IGdldFxuICAgICAgLy8gY29lcmNpb24gZXJyb3JzLiBXZSBoYXZlIGNoZWNrcyBmb3IgdGhpcyBpbiBEZXYgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGp1c3Qgb25seSBhY2NlcHQgdmFsdWVzXG4gICAgICAvLyB0aGF0IGFyZSBzdHJpbmdzXG4gICAgICBoZWFkZXIgPSBnZXRQcmVsb2FkQXNIZWFkZXIoc3JjLCAnaW1hZ2UnLCB7XG4gICAgICAgIGltYWdlU3JjU2V0OiBwcm9wcy5zcmNTZXQsXG4gICAgICAgIGltYWdlU2l6ZXM6IHByb3BzLnNpemVzLFxuICAgICAgICBjcm9zc09yaWdpbjogY3Jvc3NPcmlnaW4sXG4gICAgICAgIGludGVncml0eTogcHJvcHMuaW50ZWdyaXR5LFxuICAgICAgICBub25jZTogcHJvcHMubm9uY2UsXG4gICAgICAgIHR5cGU6IHByb3BzLnR5cGUsXG4gICAgICAgIGZldGNoUHJpb3JpdHk6IHByb3BzLmZldGNoUHJpb3JpdHksXG4gICAgICAgIHJlZmVycmVyUG9saWN5OiBwcm9wcy5yZWZlcmVyUG9saWN5XG4gICAgICB9KSwgLy8gV2UgYWx3YXlzIGNvbnN1bWUgdGhlIGhlYWRlciBsZW5ndGggc2luY2Ugb25jZSB3ZSBmaW5kIG9uZSBoZWFkZXIgdGhhdCBkb2Vzbid0IGZpdFxuICAgICAgLy8gd2UgYXNzdW1lIGFsbCB0aGUgcmVzdCB3b24ndCBhcyB3ZWxsLiBUaGlzIGlzIHRvIGF2b2lkIGdldHRpbmcgaW50byBhIHNpdHVhdGlvblxuICAgICAgLy8gd2hlcmUgd2UgaGF2ZSBhIHZlcnkgc21hbGwgcmVtYWluaW5nIGNhcGFjaXR5IGJ1dCBubyBoZWFkZXJzIHdpbGwgZXZlciBmaXQgYW5kIHdlIGVuZFxuICAgICAgLy8gdXAgY29uc3RhbnRseSB0cnlpbmcgdG8gc2VlIGlmIHRoZSBuZXh0IHJlc291cmNlIG1pZ2h0IG1ha2UgaXQuIEluIHRoZSBmdXR1cmUgd2UgY2FuXG4gICAgICAvLyBtYWtlIHRoaXMgYmVoYXZpb3IgZGlmZmVyZW50IGJldHdlZW4gcmVuZGVyIGFuZCBwcmVyZW5kZXIgc2luY2UgaW4gdGhlIGxhdHRlciBjYXNlXG4gICAgICAvLyB3ZSBhcmUgbGVzcyBzZW5zaXRpdmUgdG8gdGhlIGN1cnJlbnQgcmVxdWVzdHMgcnVudGltZSBwZXIgYW5kIG1vcmUgc2Vuc2l0aXZlIHRvIG1heGltaXppbmdcbiAgICAgIC8vIGhlYWRlcnMuXG4gICAgICAoaGVhZGVycy5yZW1haW5pbmdDYXBhY2l0eSAtPSBoZWFkZXIubGVuZ3RoKSA+PSAyKSkge1xuICAgICAgICAvLyBJZiB3ZSBwb3N0cG9uZSBpbiB0aGUgc2hlbGwgd2Ugd2lsbCBzdGlsbCBlbWl0IHRoaXMgcHJlbG9hZCBzbyB3ZSB0cmFja1xuICAgICAgICAvLyBpdCB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgcmVzZXQgaXQuXG4gICAgICAgIHJlbmRlclN0YXRlLnJlc2V0cy5pbWFnZVtrZXldID0gUFJFTE9BRF9OT19DUkVEUztcblxuICAgICAgICBpZiAoaGVhZGVycy5oaWdoSW1hZ2VQcmVsb2Fkcykge1xuICAgICAgICAgIGhlYWRlcnMuaGlnaEltYWdlUHJlbG9hZHMgKz0gJywgJztcbiAgICAgICAgfSAvLyAkRmxvd0ZpeE1lW3Vuc2FmZS1hZGRpdGlvbl06IHdlIGFzc2lnbiBoZWFkZXIgZHVyaW5nIHRoZSBpZiBjb25kaXRpb25cblxuXG4gICAgICAgIGhlYWRlcnMuaGlnaEltYWdlUHJlbG9hZHMgKz0gaGVhZGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb3VyY2UgPSBbXTtcbiAgICAgICAgcHVzaExpbmtJbXBsKHJlc291cmNlLCB7XG4gICAgICAgICAgcmVsOiAncHJlbG9hZCcsXG4gICAgICAgICAgYXM6ICdpbWFnZScsXG4gICAgICAgICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gU2FmYXJpIHdoZXJlIGltYWdlU3JjU2V0IGlzIG5vdCByZXNwZWN0ZWQgb24gcHJlbG9hZCBsaW5rc1xuICAgICAgICAgIC8vIHNvIHdlIG9taXQgdGhlIGhyZWYgaGVyZSBpZiB3ZSBoYXZlIGltYWdlU3JjU2V0IGIvYyBzYWZhcmkgd2lsbCBsb2FkIHRoZSB3cm9uZyBpbWFnZS5cbiAgICAgICAgICAvLyBUaGlzIGhhcm1zIG9sZGVyIGJyb3dlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBpbWFnZVNyY1NldCBieSBtYWtpbmcgdGhlaXIgcHJlbG9hZHMgbm90IHdvcmtcbiAgICAgICAgICAvLyBidXQgdGhpcyBwb3B1bGF0aW9uIGlzIHNocmlua2luZyBmYXN0IGFuZCBpcyBhbHJlYWR5IHNtYWxsIHNvIHdlIGFjY2VwdCB0aGlzIHRyYWRlb2ZmLlxuICAgICAgICAgIGhyZWY6IHNyY1NldCA/IHVuZGVmaW5lZCA6IHNyYyxcbiAgICAgICAgICBpbWFnZVNyY1NldDogc3JjU2V0LFxuICAgICAgICAgIGltYWdlU2l6ZXM6IHNpemVzLFxuICAgICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgICBpbnRlZ3JpdHk6IHByb3BzLmludGVncml0eSxcbiAgICAgICAgICB0eXBlOiBwcm9wcy50eXBlLFxuICAgICAgICAgIGZldGNoUHJpb3JpdHk6IHByb3BzLmZldGNoUHJpb3JpdHksXG4gICAgICAgICAgcmVmZXJyZXJQb2xpY3k6IHByb3BzLnJlZmVycmVyUG9saWN5XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChwcm9wcy5mZXRjaFByaW9yaXR5ID09PSAnaGlnaCcgfHwgcmVuZGVyU3RhdGUuaGlnaEltYWdlUHJlbG9hZHMuc2l6ZSA8IDEwKSB7XG4gICAgICAgICAgcmVuZGVyU3RhdGUuaGlnaEltYWdlUHJlbG9hZHMuYWRkKHJlc291cmNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZW5kZXJTdGF0ZS5idWxrUHJlbG9hZHMuYWRkKHJlc291cmNlKTsgLy8gV2UgY2FuIGJ1bXAgdGhlIHByaW9yaXR5IHVwIGlmIHRoZSBzYW1lIGltZyBpcyByZW5kZXJlZCBsYXRlclxuICAgICAgICAgIC8vIHdpdGggZmV0Y2hQcmlvcml0eT1cImhpZ2hcIlxuXG4gICAgICAgICAgcHJvbW90YWJsZVByZWxvYWRzLnNldChrZXksIHJlc291cmNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwdXNoU2VsZkNsb3NpbmcodGFyZ2V0LCBwcm9wcywgJ2ltZycpO1xufVxuXG5mdW5jdGlvbiBwdXNoU2VsZkNsb3NpbmcodGFyZ2V0LCBwcm9wcywgdGFnKSB7XG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcodGFnKSk7XG5cbiAgZm9yICh2YXIgcHJvcEtleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBwcm9wS2V5KSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuXG4gICAgICBpZiAocHJvcFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICBjYXNlICdjaGlsZHJlbic6XG4gICAgICAgIGNhc2UgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJzpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IodGFnICsgXCIgaXMgYSBzZWxmLWNsb3NpbmcgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciBcIiArICd1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCBwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRhcmdldC5wdXNoKGVuZE9mU3RhcnRUYWdTZWxmQ2xvc2luZyk7XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBwdXNoU3RhcnRNZW51SXRlbSh0YXJnZXQsIHByb3BzKSB7XG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcoJ21lbnVpdGVtJykpO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcEtleSkpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wS2V5XTtcblxuICAgICAgaWYgKHByb3BWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKHByb3BLZXkpIHtcbiAgICAgICAgY2FzZSAnY2hpbGRyZW4nOlxuICAgICAgICBjYXNlICdkYW5nZXJvdXNseVNldElubmVySFRNTCc6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtZW51aXRlbXMgY2Fubm90IGhhdmUgYGNoaWxkcmVuYCBub3IgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCBwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRhcmdldC5wdXNoKGVuZE9mU3RhcnRUYWcpO1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcHVzaFRpdGxlKHRhcmdldCwgcHJvcHMsIHJlbmRlclN0YXRlLCBpbnNlcnRpb25Nb2RlLCBub3NjcmlwdFRhZ0luU2NvcGUpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCAnY2hpbGRyZW4nKSkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gICAgICB2YXIgY2hpbGQgPSBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuLmxlbmd0aCA8IDIgPyBjaGlsZHJlblswXSA6IG51bGwgOiBjaGlsZHJlbjtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmIGNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZXJyb3IoJ1JlYWN0IGV4cGVjdHMgdGhlIGBjaGlsZHJlbmAgcHJvcCBvZiA8dGl0bGU+IHRhZ3MgdG8gYmUgYSBzdHJpbmcsIG51bWJlciwgb3Igb2JqZWN0IHdpdGggYSBub3ZlbCBgdG9TdHJpbmdgIG1ldGhvZCBidXQgZm91bmQgYW4gQXJyYXkgd2l0aCBsZW5ndGggJXMgaW5zdGVhZC4nICsgJyBCcm93c2VycyB0cmVhdCBhbGwgY2hpbGQgTm9kZXMgb2YgPHRpdGxlPiB0YWdzIGFzIFRleHQgY29udGVudCBhbmQgUmVhY3QgZXhwZWN0cyB0byBiZSBhYmxlIHRvIGNvbnZlcnQgYGNoaWxkcmVuYCBvZiA8dGl0bGU+IHRhZ3MgdG8gYSBzaW5nbGUgc3RyaW5nIHZhbHVlJyArICcgd2hpY2ggaXMgd2h5IEFycmF5cyBvZiBsZW5ndGggZ3JlYXRlciB0aGFuIDEgYXJlIG5vdCBzdXBwb3J0ZWQuIFdoZW4gdXNpbmcgSlNYIGl0IGNhbiBiZSBjb21tb25nIHRvIGNvbWJpbmUgdGV4dCBub2RlcyBhbmQgdmFsdWUgbm9kZXMuJyArICcgRm9yIGV4YW1wbGU6IDx0aXRsZT5oZWxsbyB7bmFtZU9mVXNlcn08L3RpdGxlPi4gV2hpbGUgbm90IGltbWVkaWF0ZWx5IGFwcGFyZW50LCBgY2hpbGRyZW5gIGluIHRoaXMgY2FzZSBpcyBhbiBBcnJheSB3aXRoIGxlbmd0aCAyLiBJZiB5b3VyIGBjaGlsZHJlbmAgcHJvcCcgKyAnIGlzIHVzaW5nIHRoaXMgZm9ybSB0cnkgcmV3cml0aW5nIGl0IHVzaW5nIGEgdGVtcGxhdGUgc3RyaW5nOiA8dGl0bGU+e2BoZWxsbyAke25hbWVPZlVzZXJ9YH08L3RpdGxlPi4nLCBjaGlsZHJlbi5sZW5ndGgpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY2hpbGQgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGNoaWxkID09PSAnc3ltYm9sJykge1xuICAgICAgICB2YXIgY2hpbGRUeXBlID0gdHlwZW9mIGNoaWxkID09PSAnZnVuY3Rpb24nID8gJ2EgRnVuY3Rpb24nIDogJ2EgU3libW9sJztcblxuICAgICAgICBlcnJvcignUmVhY3QgZXhwZWN0IGNoaWxkcmVuIG9mIDx0aXRsZT4gdGFncyB0byBiZSBhIHN0cmluZywgbnVtYmVyLCBvciBvYmplY3Qgd2l0aCBhIG5vdmVsIGB0b1N0cmluZ2AgbWV0aG9kIGJ1dCBmb3VuZCAlcyBpbnN0ZWFkLicgKyAnIEJyb3dzZXJzIHRyZWF0IGFsbCBjaGlsZCBOb2RlcyBvZiA8dGl0bGU+IHRhZ3MgYXMgVGV4dCBjb250ZW50IGFuZCBSZWFjdCBleHBlY3RzIHRvIGJlIGFibGUgdG8gY29udmVydCBjaGlsZHJlbiBvZiA8dGl0bGU+JyArICcgdGFncyB0byBhIHNpbmdsZSBzdHJpbmcgdmFsdWUuJywgY2hpbGRUeXBlKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hpbGQgJiYgY2hpbGQudG9TdHJpbmcgPT09IHt9LnRvU3RyaW5nKSB7XG4gICAgICAgIGlmIChjaGlsZC4kJHR5cGVvZiAhPSBudWxsKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0IGV4cGVjdHMgdGhlIGBjaGlsZHJlbmAgcHJvcCBvZiA8dGl0bGU+IHRhZ3MgdG8gYmUgYSBzdHJpbmcsIG51bWJlciwgb3Igb2JqZWN0IHdpdGggYSBub3ZlbCBgdG9TdHJpbmdgIG1ldGhvZCBidXQgZm91bmQgYW4gb2JqZWN0IHRoYXQgYXBwZWFycyB0byBiZScgKyAnIGEgUmVhY3QgZWxlbWVudCB3aGljaCBuZXZlciBpbXBsZW1lbnRzIGEgc3VpdGFibGUgYHRvU3RyaW5nYCBtZXRob2QuIEJyb3dzZXJzIHRyZWF0IGFsbCBjaGlsZCBOb2RlcyBvZiA8dGl0bGU+IHRhZ3MgYXMgVGV4dCBjb250ZW50IGFuZCBSZWFjdCBleHBlY3RzIHRvJyArICcgYmUgYWJsZSB0byBjb252ZXJ0IGNoaWxkcmVuIG9mIDx0aXRsZT4gdGFncyB0byBhIHNpbmdsZSBzdHJpbmcgdmFsdWUgd2hpY2ggaXMgd2h5IHJlbmRlcmluZyBSZWFjdCBlbGVtZW50cyBpcyBub3Qgc3VwcG9ydGVkLiBJZiB0aGUgYGNoaWxkcmVuYCBvZiA8dGl0bGU+IGlzJyArICcgYSBSZWFjdCBDb21wb25lbnQgdHJ5IG1vdmluZyB0aGUgPHRpdGxlPiB0YWcgaW50byB0aGF0IGNvbXBvbmVudC4gSWYgdGhlIGBjaGlsZHJlbmAgb2YgPHRpdGxlPiBpcyBzb21lIEhUTUwgbWFya3VwIGNoYW5nZSBpdCB0byBiZSBUZXh0IG9ubHkgdG8gYmUgdmFsaWQgSFRNTC4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QgZXhwZWN0cyB0aGUgYGNoaWxkcmVuYCBwcm9wIG9mIDx0aXRsZT4gdGFncyB0byBiZSBhIHN0cmluZywgbnVtYmVyLCBvciBvYmplY3Qgd2l0aCBhIG5vdmVsIGB0b1N0cmluZ2AgbWV0aG9kIGJ1dCBmb3VuZCBhbiBvYmplY3QgdGhhdCBkb2VzIG5vdCBpbXBsZW1lbnQnICsgJyBhIHN1aXRhYmxlIGB0b1N0cmluZ2AgbWV0aG9kLiBCcm93c2VycyB0cmVhdCBhbGwgY2hpbGQgTm9kZXMgb2YgPHRpdGxlPiB0YWdzIGFzIFRleHQgY29udGVudCBhbmQgUmVhY3QgZXhwZWN0cyB0byBiZSBhYmxlIHRvIGNvbnZlcnQgY2hpbGRyZW4gb2YgPHRpdGxlPiB0YWdzJyArICcgdG8gYSBzaW5nbGUgc3RyaW5nIHZhbHVlLiBVc2luZyB0aGUgZGVmYXVsdCBgdG9TdHJpbmdgIG1ldGhvZCBhdmFpbGFibGUgb24gZXZlcnkgb2JqZWN0IGlzIGFsbW9zdCBjZXJ0YWlubHkgYW4gZXJyb3IuIENvbnNpZGVyIHdoZXRoZXIgdGhlIGBjaGlsZHJlbmAgb2YgdGhpcyA8dGl0bGU+JyArICcgaXMgYW4gb2JqZWN0IGluIGVycm9yIGFuZCBjaGFuZ2UgaXQgdG8gYSBzdHJpbmcgb3IgbnVtYmVyIHZhbHVlIGlmIHNvLiBPdGhlcndpc2UgaW1wbGVtZW50IGEgYHRvU3RyaW5nYCBtZXRob2QgdGhhdCBSZWFjdCBjYW4gdXNlIHRvIHByb2R1Y2UgYSB2YWxpZCA8dGl0bGU+LicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChpbnNlcnRpb25Nb2RlICE9PSBTVkdfTU9ERSAmJiAhbm9zY3JpcHRUYWdJblNjb3BlICYmIHByb3BzLml0ZW1Qcm9wID09IG51bGwpIHtcbiAgICAgIHB1c2hUaXRsZUltcGwocmVuZGVyU3RhdGUuaG9pc3RhYmxlQ2h1bmtzLCBwcm9wcyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHB1c2hUaXRsZUltcGwodGFyZ2V0LCBwcm9wcyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hUaXRsZUltcGwodGFyZ2V0LCBwcm9wcykge1xuICB0YXJnZXQucHVzaChzdGFydENodW5rRm9yVGFnKCd0aXRsZScpKTtcbiAgdmFyIGNoaWxkcmVuID0gbnVsbDtcbiAgdmFyIGlubmVySFRNTCA9IG51bGw7XG5cbiAgZm9yICh2YXIgcHJvcEtleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBwcm9wS2V5KSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuXG4gICAgICBpZiAocHJvcFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICBjYXNlICdjaGlsZHJlbic6XG4gICAgICAgICAgY2hpbGRyZW4gPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnOlxuICAgICAgICAgIGlubmVySFRNTCA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCBwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRhcmdldC5wdXNoKGVuZE9mU3RhcnRUYWcpO1xuICB2YXIgY2hpbGQgPSBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuLmxlbmd0aCA8IDIgPyBjaGlsZHJlblswXSA6IG51bGwgOiBjaGlsZHJlbjtcblxuICBpZiAodHlwZW9mIGNoaWxkICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBjaGlsZCAhPT0gJ3N5bWJvbCcgJiYgY2hpbGQgIT09IG51bGwgJiYgY2hpbGQgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgIHRhcmdldC5wdXNoKHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoJycgKyBjaGlsZCkpKTtcbiAgfVxuXG4gIHB1c2hJbm5lckhUTUwodGFyZ2V0LCBpbm5lckhUTUwsIGNoaWxkcmVuKTtcbiAgdGFyZ2V0LnB1c2goZW5kQ2h1bmtGb3JUYWcoJ3RpdGxlJykpO1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcHVzaFN0YXJ0SGVhZCh0YXJnZXQsIHByb3BzLCByZW5kZXJTdGF0ZSwgaW5zZXJ0aW9uTW9kZSkge1xuICB7XG4gICAgaWYgKGluc2VydGlvbk1vZGUgPCBIVE1MX01PREUgJiYgcmVuZGVyU3RhdGUuaGVhZENodW5rcyA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyA8aGVhZD4gaXMgdGhlIERvY3VtZW50LmhlYWQgYW5kIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSBwcmVhbWJsZVxuICAgICAgcmVuZGVyU3RhdGUuaGVhZENodW5rcyA9IFtdO1xuICAgICAgcmV0dXJuIHB1c2hTdGFydEdlbmVyaWNFbGVtZW50KHJlbmRlclN0YXRlLmhlYWRDaHVua3MsIHByb3BzLCAnaGVhZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIDxoZWFkPiBpcyBkZWVwIGFuZCBpcyBsaWtlbHkganVzdCBhbiBlcnJvci4gd2UgZW1pdCBpdCBpbmxpbmUgdGhvdWdoLlxuICAgICAgLy8gVmFsaWRhdGlvbiBzaG91bGQgd2FybiB0aGF0IHRoaXMgdGFnIGlzIHRoZSB0aGUgd3Jvbmcgc3BvdC5cbiAgICAgIHJldHVybiBwdXNoU3RhcnRHZW5lcmljRWxlbWVudCh0YXJnZXQsIHByb3BzLCAnaGVhZCcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwdXNoU3RhcnRIdG1sKHRhcmdldCwgcHJvcHMsIHJlbmRlclN0YXRlLCBpbnNlcnRpb25Nb2RlKSB7XG4gIHtcbiAgICBpZiAoaW5zZXJ0aW9uTW9kZSA9PT0gUk9PVF9IVE1MX01PREUgJiYgcmVuZGVyU3RhdGUuaHRtbENodW5rcyA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyA8aHRtbD4gaXMgdGhlIERvY3VtZW50LmRvY3VtZW50RWxlbWVudCBhbmQgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHByZWFtYmxlXG4gICAgICByZW5kZXJTdGF0ZS5odG1sQ2h1bmtzID0gW2RvY3R5cGVDaHVua107XG4gICAgICByZXR1cm4gcHVzaFN0YXJ0R2VuZXJpY0VsZW1lbnQocmVuZGVyU3RhdGUuaHRtbENodW5rcywgcHJvcHMsICdodG1sJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgPGh0bWw+IGlzIGRlZXAgYW5kIGlzIGxpa2VseSBqdXN0IGFuIGVycm9yLiB3ZSBlbWl0IGl0IGlubGluZSB0aG91Z2guXG4gICAgICAvLyBWYWxpZGF0aW9uIHNob3VsZCB3YXJuIHRoYXQgdGhpcyB0YWcgaXMgdGhlIHRoZSB3cm9uZyBzcG90LlxuICAgICAgcmV0dXJuIHB1c2hTdGFydEdlbmVyaWNFbGVtZW50KHRhcmdldCwgcHJvcHMsICdodG1sJyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hTY3JpcHQodGFyZ2V0LCBwcm9wcywgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlLCB0ZXh0RW1iZWRkZWQsIGluc2VydGlvbk1vZGUsIG5vc2NyaXB0VGFnSW5TY29wZSkge1xuICB7XG4gICAgdmFyIGFzeW5jUHJvcCA9IHByb3BzLmFzeW5jO1xuXG4gICAgaWYgKHR5cGVvZiBwcm9wcy5zcmMgIT09ICdzdHJpbmcnIHx8ICFwcm9wcy5zcmMgfHwgIShhc3luY1Byb3AgJiYgdHlwZW9mIGFzeW5jUHJvcCAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgYXN5bmNQcm9wICE9PSAnc3ltYm9sJykgfHwgcHJvcHMub25Mb2FkIHx8IHByb3BzLm9uRXJyb3IgfHwgaW5zZXJ0aW9uTW9kZSA9PT0gU1ZHX01PREUgfHwgbm9zY3JpcHRUYWdJblNjb3BlIHx8IHByb3BzLml0ZW1Qcm9wICE9IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgc2NyaXB0IHdpbGwgbm90IGJlIGEgcmVzb3VyY2UsIHdlIGJhaWxvdXQgZWFybHkgYW5kIGVtaXQgaXQgaW4gcGxhY2UuXG4gICAgICByZXR1cm4gcHVzaFNjcmlwdEltcGwodGFyZ2V0LCBwcm9wcyk7XG4gICAgfVxuXG4gICAgdmFyIHNyYyA9IHByb3BzLnNyYztcbiAgICB2YXIga2V5ID0gZ2V0UmVzb3VyY2VLZXkoc3JjKTsgLy8gV2UgY2FuIG1ha2UgdGhpcyA8c2NyaXB0PiBpbnRvIGEgU2NyaXB0UmVzb3VyY2VcblxuICAgIHZhciByZXNvdXJjZXMsIHByZWxvYWRzO1xuXG4gICAgaWYgKHByb3BzLnR5cGUgPT09ICdtb2R1bGUnKSB7XG4gICAgICByZXNvdXJjZXMgPSByZXN1bWFibGVTdGF0ZS5tb2R1bGVTY3JpcHRSZXNvdXJjZXM7XG4gICAgICBwcmVsb2FkcyA9IHJlbmRlclN0YXRlLnByZWxvYWRzLm1vZHVsZVNjcmlwdHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc291cmNlcyA9IHJlc3VtYWJsZVN0YXRlLnNjcmlwdFJlc291cmNlcztcbiAgICAgIHByZWxvYWRzID0gcmVuZGVyU3RhdGUucHJlbG9hZHMuc2NyaXB0cztcbiAgICB9XG5cbiAgICB2YXIgaGFzS2V5ID0gcmVzb3VyY2VzLmhhc093blByb3BlcnR5KGtleSk7XG4gICAgdmFyIHJlc291cmNlU3RhdGUgPSBoYXNLZXkgPyByZXNvdXJjZXNba2V5XSA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChyZXNvdXJjZVN0YXRlICE9PSBFWElTVFMpIHtcbiAgICAgIC8vIFdlIGFyZSBnb2luZyB0byBjcmVhdGUgdGhpcyByZXNvdXJjZSBub3cgc28gaXQgaXMgbWFya2VkIGFzIEV4aXN0c1xuICAgICAgcmVzb3VyY2VzW2tleV0gPSBFWElTVFM7XG4gICAgICB2YXIgc2NyaXB0UHJvcHMgPSBwcm9wcztcblxuICAgICAgaWYgKHJlc291cmNlU3RhdGUpIHtcbiAgICAgICAgLy8gV2hlbiByZXNvdXJjZVN0YXRlIGlzIHRydXR5IGl0IGlzIGEgUHJlbG9hZCBzdGF0ZS4gV2UgY2FzdCBpdCBmb3IgY2xhcml0eVxuICAgICAgICB2YXIgcHJlbG9hZFN0YXRlID0gcmVzb3VyY2VTdGF0ZTtcblxuICAgICAgICBpZiAocHJlbG9hZFN0YXRlLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIHNjcmlwdFByb3BzID0gYXNzaWduKHt9LCBwcm9wcyk7XG4gICAgICAgICAgYWRvcHRQcmVsb2FkQ3JlZGVudGlhbHMoc2NyaXB0UHJvcHMsIHByZWxvYWRTdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJlbG9hZFJlc291cmNlID0gcHJlbG9hZHMuZ2V0KGtleSk7XG5cbiAgICAgICAgaWYgKHByZWxvYWRSZXNvdXJjZSkge1xuICAgICAgICAgIC8vIHRoZSBwcmVsb2FkIHJlc291cmNlIGV4aXN0cyB3YXMgY3JlYXRlZCBpbiB0aGlzIHJlbmRlci4gTm93IHRoYXQgd2UgaGF2ZVxuICAgICAgICAgIC8vIGEgc2NyaXB0IHJlc291cmNlIHdoaWNoIHdpbGwgZW1pdCBlYXJsaWVyIHRoYW4gYSBwcmVsb2FkIHdvdWxkIGlmIGl0XG4gICAgICAgICAgLy8gaGFzbid0IGFscmVhZHkgZmx1c2hlZCB3ZSBwcmV2ZW50IGl0IGZyb20gZmx1c2hpbmcgYnkgemVyb2luZyB0aGUgbGVuZ3RoXG4gICAgICAgICAgcHJlbG9hZFJlc291cmNlLmxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHJlc291cmNlID0gW107IC8vIEFkZCB0byB0aGUgc2NyaXB0IGZsdXNoaW5nIHF1ZXVlXG5cbiAgICAgIHJlbmRlclN0YXRlLnNjcmlwdHMuYWRkKHJlc291cmNlKTsgLy8gZW5jb2RlIHRoZSB0YWcgYXMgQ2h1bmtzXG5cbiAgICAgIHB1c2hTY3JpcHRJbXBsKHJlc291cmNlLCBzY3JpcHRQcm9wcyk7XG4gICAgfVxuXG4gICAgaWYgKHRleHRFbWJlZGRlZCkge1xuICAgICAgLy8gVGhpcyBzY3JpcHQgZm9sbG93cyB0ZXh0IGJ1dCB3ZSBhcmVuJ3Qgd3JpdGluZyBhIHRhZy4gd2hpbGUgbm90IGFzIGVmZmljaWVudCBhcyBwb3NzaWJsZSB3ZSBuZWVkXG4gICAgICAvLyB0byBiZSBzYWZlIGFuZCBhc3N1bWUgdGV4dCB3aWxsIGZvbGxvdyBieSBpbnNlcnRpbmcgYSB0ZXh0U2VwYXJhdG9yXG4gICAgICB0YXJnZXQucHVzaCh0ZXh0U2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwdXNoU2NyaXB0SW1wbCh0YXJnZXQsIHByb3BzKSB7XG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcoJ3NjcmlwdCcpKTtcbiAgdmFyIGNoaWxkcmVuID0gbnVsbDtcbiAgdmFyIGlubmVySFRNTCA9IG51bGw7XG5cbiAgZm9yICh2YXIgcHJvcEtleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBwcm9wS2V5KSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuXG4gICAgICBpZiAocHJvcFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICBjYXNlICdjaGlsZHJlbic6XG4gICAgICAgICAgY2hpbGRyZW4gPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnOlxuICAgICAgICAgIGlubmVySFRNTCA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHB1c2hBdHRyaWJ1dGUodGFyZ2V0LCBwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRhcmdldC5wdXNoKGVuZE9mU3RhcnRUYWcpO1xuXG4gIHtcbiAgICBpZiAoY2hpbGRyZW4gIT0gbnVsbCAmJiB0eXBlb2YgY2hpbGRyZW4gIT09ICdzdHJpbmcnKSB7XG4gICAgICB2YXIgZGVzY3JpcHRpdmVTdGF0ZW1lbnQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdudW1iZXInID8gJ2EgbnVtYmVyIGZvciBjaGlsZHJlbicgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/ICdhbiBhcnJheSBmb3IgY2hpbGRyZW4nIDogJ3NvbWV0aGluZyB1bmV4cGVjdGVkIGZvciBjaGlsZHJlbic7XG5cbiAgICAgIGVycm9yKCdBIHNjcmlwdCBlbGVtZW50IHdhcyByZW5kZXJlZCB3aXRoICVzLiBJZiBzY3JpcHQgZWxlbWVudCBoYXMgY2hpbGRyZW4gaXQgbXVzdCBiZSBhIHNpbmdsZSBzdHJpbmcuJyArICcgQ29uc2lkZXIgdXNpbmcgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgb3IgcGFzc2luZyBhIHBsYWluIHN0cmluZyBhcyBjaGlsZHJlbi4nLCBkZXNjcmlwdGl2ZVN0YXRlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVzaElubmVySFRNTCh0YXJnZXQsIGlubmVySFRNTCwgY2hpbGRyZW4pO1xuXG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgdGFyZ2V0LnB1c2goc3RyaW5nVG9DaHVuayhlbmNvZGVIVE1MVGV4dE5vZGUoY2hpbGRyZW4pKSk7XG4gIH1cblxuICB0YXJnZXQucHVzaChlbmRDaHVua0ZvclRhZygnc2NyaXB0JykpO1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcHVzaFN0YXJ0R2VuZXJpY0VsZW1lbnQodGFyZ2V0LCBwcm9wcywgdGFnKSB7XG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcodGFnKSk7XG4gIHZhciBjaGlsZHJlbiA9IG51bGw7XG4gIHZhciBpbm5lckhUTUwgPSBudWxsO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcEtleSkpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wS2V5XTtcblxuICAgICAgaWYgKHByb3BWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKHByb3BLZXkpIHtcbiAgICAgICAgY2FzZSAnY2hpbGRyZW4nOlxuICAgICAgICAgIGNoaWxkcmVuID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJzpcbiAgICAgICAgICBpbm5lckhUTUwgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBwdXNoQXR0cmlidXRlKHRhcmdldCwgcHJvcEtleSwgcHJvcFZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0YXJnZXQucHVzaChlbmRPZlN0YXJ0VGFnKTtcbiAgcHVzaElubmVySFRNTCh0YXJnZXQsIGlubmVySFRNTCwgY2hpbGRyZW4pO1xuXG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gU3BlY2lhbCBjYXNlIGNoaWxkcmVuIGFzIGEgc3RyaW5nIHRvIGF2b2lkIHRoZSB1bm5lY2Vzc2FyeSBjb21tZW50LlxuICAgIC8vIFRPRE86IFJlbW92ZSB0aGlzIHNwZWNpYWwgY2FzZSBhZnRlciB0aGUgZ2VuZXJhbCBvcHRpbWl6YXRpb24gaXMgaW4gcGxhY2UuXG4gICAgdGFyZ2V0LnB1c2goc3RyaW5nVG9DaHVuayhlbmNvZGVIVE1MVGV4dE5vZGUoY2hpbGRyZW4pKSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIHB1c2hTdGFydEN1c3RvbUVsZW1lbnQodGFyZ2V0LCBwcm9wcywgdGFnKSB7XG4gIHRhcmdldC5wdXNoKHN0YXJ0Q2h1bmtGb3JUYWcodGFnKSk7XG4gIHZhciBjaGlsZHJlbiA9IG51bGw7XG4gIHZhciBpbm5lckhUTUwgPSBudWxsO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcEtleSkpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wS2V5XTtcblxuICAgICAgaWYgKHByb3BWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgYXR0cmlidXRlTmFtZSA9IHByb3BLZXk7XG5cbiAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICBjYXNlICdjaGlsZHJlbic6XG4gICAgICAgICAgY2hpbGRyZW4gPSBwcm9wVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnOlxuICAgICAgICAgIGlubmVySFRNTCA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzdHlsZSc6XG4gICAgICAgICAgcHVzaFN0eWxlQXR0cmlidXRlKHRhcmdldCwgcHJvcFZhbHVlKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcnOlxuICAgICAgICBjYXNlICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnOlxuICAgICAgICAgIC8vIElnbm9yZWQuIFRoZXNlIGFyZSBidWlsdC1pbiB0byBSZWFjdCBvbiB0aGUgY2xpZW50LlxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2NsYXNzTmFtZSc6XG5cbiAgICAgICAgLy8gaW50ZW50aW9uYWwgZmFsbHRocm91Z2hcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmIChpc0F0dHJpYnV0ZU5hbWVTYWZlKHByb3BLZXkpICYmIHR5cGVvZiBwcm9wVmFsdWUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHByb3BWYWx1ZSAhPT0gJ3N5bWJvbCcpIHtcblxuICAgICAgICAgICAgdGFyZ2V0LnB1c2goYXR0cmlidXRlU2VwYXJhdG9yLCBzdHJpbmdUb0NodW5rKGF0dHJpYnV0ZU5hbWUpLCBhdHRyaWJ1dGVBc3NpZ24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIocHJvcFZhbHVlKSksIGF0dHJpYnV0ZUVuZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGFyZ2V0LnB1c2goZW5kT2ZTdGFydFRhZyk7XG4gIHB1c2hJbm5lckhUTUwodGFyZ2V0LCBpbm5lckhUTUwsIGNoaWxkcmVuKTtcbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuXG52YXIgbGVhZGluZ05ld2xpbmUgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1xcbicpO1xuXG5mdW5jdGlvbiBwdXNoU3RhcnRQcmVmb3JtYXR0ZWRFbGVtZW50KHRhcmdldCwgcHJvcHMsIHRhZykge1xuICB0YXJnZXQucHVzaChzdGFydENodW5rRm9yVGFnKHRhZykpO1xuICB2YXIgY2hpbGRyZW4gPSBudWxsO1xuICB2YXIgaW5uZXJIVE1MID0gbnVsbDtcblxuICBmb3IgKHZhciBwcm9wS2V5IGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIHByb3BLZXkpKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcEtleV07XG5cbiAgICAgIGlmIChwcm9wVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChwcm9wS2V5KSB7XG4gICAgICAgIGNhc2UgJ2NoaWxkcmVuJzpcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdkYW5nZXJvdXNseVNldElubmVySFRNTCc6XG4gICAgICAgICAgaW5uZXJIVE1MID0gcHJvcFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcHVzaEF0dHJpYnV0ZSh0YXJnZXQsIHByb3BLZXksIHByb3BWYWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGFyZ2V0LnB1c2goZW5kT2ZTdGFydFRhZyk7IC8vIHRleHQvaHRtbCBpZ25vcmVzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlc2UgdGFncyBpZiBpdCdzIGEgbmV3bGluZVxuICAvLyBQcmVmZXIgdG8gYnJlYWsgYXBwbGljYXRpb24veG1sIG92ZXIgdGV4dC9odG1sIChmb3Igbm93KSBieSBhZGRpbmdcbiAgLy8gYSBuZXdsaW5lIHNwZWNpZmljYWxseSB0byBnZXQgZWF0ZW4gYnkgdGhlIHBhcnNlci4gKEFsdGVybmF0ZWx5IGZvclxuICAvLyB0ZXh0YXJlYXMsIHJlcGxhY2luZyBcIl5cXG5cIiB3aXRoIFwiXFxyXFxuXCIgZG9lc24ndCBnZXQgZWF0ZW4sIGFuZCB0aGUgZmlyc3RcbiAgLy8gXFxyIGlzIG5vcm1hbGl6ZWQgb3V0IGJ5IEhUTUxUZXh0QXJlYUVsZW1lbnQjdmFsdWUuKVxuICAvLyBTZWU6IDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sLXBvbHlnbG90LyNuZXdsaW5lcy1pbi10ZXh0YXJlYS1hbmQtcHJlPlxuICAvLyBTZWU6IDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zeW50YXguaHRtbCNlbGVtZW50LXJlc3RyaWN0aW9ucz5cbiAgLy8gU2VlOiA8aHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvc3ludGF4Lmh0bWwjbmV3bGluZXM+XG4gIC8vIFNlZTogUGFyc2luZyBvZiBcInRleHRhcmVhXCIgXCJsaXN0aW5nXCIgYW5kIFwicHJlXCIgZWxlbWVudHNcbiAgLy8gIGZyb20gPGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHk+XG4gIC8vIFRPRE86IFRoaXMgZG9lc24ndCBkZWFsIHdpdGggdGhlIGNhc2Ugd2hlcmUgdGhlIGNoaWxkIGlzIGFuIGFycmF5XG4gIC8vIG9yIGNvbXBvbmVudCB0aGF0IHJldHVybnMgYSBzdHJpbmcuXG5cbiAgaWYgKGlubmVySFRNTCAhPSBudWxsKSB7XG4gICAgaWYgKGNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2FuIG9ubHkgc2V0IG9uZSBvZiBgY2hpbGRyZW5gIG9yIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbm5lckhUTUwgIT09ICdvYmplY3QnIHx8ICEoJ19faHRtbCcgaW4gaW5uZXJIVE1MKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIG11c3QgYmUgaW4gdGhlIGZvcm0gYHtfX2h0bWw6IC4uLn1gLiAnICsgJ1BsZWFzZSB2aXNpdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZGFuZ2Vyb3VzbHktc2V0LWlubmVyLWh0bWwgJyArICdmb3IgbW9yZSBpbmZvcm1hdGlvbi4nKTtcbiAgICB9XG5cbiAgICB2YXIgaHRtbCA9IGlubmVySFRNTC5fX2h0bWw7XG5cbiAgICBpZiAoaHRtbCAhPT0gbnVsbCAmJiBodG1sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0eXBlb2YgaHRtbCA9PT0gJ3N0cmluZycgJiYgaHRtbC5sZW5ndGggPiAwICYmIGh0bWxbMF0gPT09ICdcXG4nKSB7XG4gICAgICAgIHRhcmdldC5wdXNoKGxlYWRpbmdOZXdsaW5lLCBzdHJpbmdUb0NodW5rKGh0bWwpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHtcbiAgICAgICAgICBjaGVja0h0bWxTdHJpbmdDb2VyY2lvbihodG1sKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhcmdldC5wdXNoKHN0cmluZ1RvQ2h1bmsoJycgKyBodG1sKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycgJiYgY2hpbGRyZW5bMF0gPT09ICdcXG4nKSB7XG4gICAgdGFyZ2V0LnB1c2gobGVhZGluZ05ld2xpbmUpO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufSAvLyBXZSBhY2NlcHQgYW55IHRhZyB0byBiZSByZW5kZXJlZCBidXQgc2luY2UgdGhpcyBnZXRzIGluamVjdGVkIGludG8gYXJiaXRyYXJ5XG4vLyBIVE1MLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGl0J3MgYSBzYWZlIHRhZy5cbi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwvI05ULU5hbWVcblxuXG52YXIgVkFMSURfVEFHX1JFR0VYID0gL15bYS16QS1aXVthLXpBLVo6X1xcLlxcLVxcZF0qJC87IC8vIFNpbXBsaWZpZWQgc3Vic2V0XG5cbnZhciB2YWxpZGF0ZWRUYWdDYWNoZSA9IG5ldyBNYXAoKTtcblxuZnVuY3Rpb24gc3RhcnRDaHVua0ZvclRhZyh0YWcpIHtcbiAgdmFyIHRhZ1N0YXJ0Q2h1bmsgPSB2YWxpZGF0ZWRUYWdDYWNoZS5nZXQodGFnKTtcblxuICBpZiAodGFnU3RhcnRDaHVuayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFWQUxJRF9UQUdfUkVHRVgudGVzdCh0YWcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHRhZzogXCIgKyB0YWcpO1xuICAgIH1cblxuICAgIHRhZ1N0YXJ0Q2h1bmsgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzwnICsgdGFnKTtcbiAgICB2YWxpZGF0ZWRUYWdDYWNoZS5zZXQodGFnLCB0YWdTdGFydENodW5rKTtcbiAgfVxuXG4gIHJldHVybiB0YWdTdGFydENodW5rO1xufVxuXG52YXIgZG9jdHlwZUNodW5rID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8IURPQ1RZUEUgaHRtbD4nKTtcbmZ1bmN0aW9uIHB1c2hTdGFydEluc3RhbmNlKHRhcmdldCwgdHlwZSwgcHJvcHMsIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSwgZm9ybWF0Q29udGV4dCwgdGV4dEVtYmVkZGVkKSB7XG4gIHtcbiAgICB2YWxpZGF0ZVByb3BlcnRpZXMkMih0eXBlLCBwcm9wcyk7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzJDEodHlwZSwgcHJvcHMpO1xuICAgIHZhbGlkYXRlUHJvcGVydGllcyh0eXBlLCBwcm9wcywgbnVsbCk7XG5cbiAgICBpZiAoIXByb3BzLnN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyAmJiBwcm9wcy5jb250ZW50RWRpdGFibGUgJiYgcHJvcHMuY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgZXJyb3IoJ0EgY29tcG9uZW50IGlzIGBjb250ZW50RWRpdGFibGVgIGFuZCBjb250YWlucyBgY2hpbGRyZW5gIG1hbmFnZWQgYnkgJyArICdSZWFjdC4gSXQgaXMgbm93IHlvdXIgcmVzcG9uc2liaWxpdHkgdG8gZ3VhcmFudGVlIHRoYXQgbm9uZSBvZiAnICsgJ3Rob3NlIG5vZGVzIGFyZSB1bmV4cGVjdGVkbHkgbW9kaWZpZWQgb3IgZHVwbGljYXRlZC4gVGhpcyBpcyAnICsgJ3Byb2JhYmx5IG5vdCBpbnRlbnRpb25hbC4nKTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0Q29udGV4dC5pbnNlcnRpb25Nb2RlICE9PSBTVkdfTU9ERSAmJiBmb3JtYXRDb250ZXh0Lmluc2VydGlvbk1vZGUgIT09IE1BVEhNTF9NT0RFKSB7XG4gICAgICBpZiAodHlwZS5pbmRleE9mKCctJykgPT09IC0xICYmIHR5cGUudG9Mb3dlckNhc2UoKSAhPT0gdHlwZSkge1xuICAgICAgICBlcnJvcignPCVzIC8+IGlzIHVzaW5nIGluY29ycmVjdCBjYXNpbmcuICcgKyAnVXNlIFBhc2NhbENhc2UgZm9yIFJlYWN0IGNvbXBvbmVudHMsICcgKyAnb3IgbG93ZXJjYXNlIGZvciBIVE1MIGVsZW1lbnRzLicsIHR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2Rpdic6XG4gICAgY2FzZSAnc3Bhbic6XG4gICAgY2FzZSAnc3ZnJzpcbiAgICBjYXNlICdwYXRoJzpcbiAgICBjYXNlICdhJzpcbiAgICBjYXNlICdnJzpcbiAgICBjYXNlICdwJzpcbiAgICBjYXNlICdsaSc6XG4gICAgICAvLyBGYXN0IHRyYWNrIHZlcnkgY29tbW9uIHRhZ3NcbiAgICAgIGJyZWFrO1xuICAgIC8vIFNwZWNpYWwgdGFnc1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIHJldHVybiBwdXNoU3RhcnRTZWxlY3QodGFyZ2V0LCBwcm9wcyk7XG5cbiAgICBjYXNlICdvcHRpb24nOlxuICAgICAgcmV0dXJuIHB1c2hTdGFydE9wdGlvbih0YXJnZXQsIHByb3BzLCBmb3JtYXRDb250ZXh0KTtcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIHJldHVybiBwdXNoU3RhcnRUZXh0QXJlYSh0YXJnZXQsIHByb3BzKTtcblxuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIHJldHVybiBwdXNoSW5wdXQodGFyZ2V0LCBwcm9wcywgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlKTtcblxuICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgICByZXR1cm4gcHVzaFN0YXJ0QnV0dG9uKHRhcmdldCwgcHJvcHMsIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSk7XG5cbiAgICBjYXNlICdmb3JtJzpcbiAgICAgIHJldHVybiBwdXNoU3RhcnRGb3JtKHRhcmdldCwgcHJvcHMsIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSk7XG5cbiAgICBjYXNlICdtZW51aXRlbSc6XG4gICAgICByZXR1cm4gcHVzaFN0YXJ0TWVudUl0ZW0odGFyZ2V0LCBwcm9wcyk7XG5cbiAgICBjYXNlICd0aXRsZSc6XG4gICAgICByZXR1cm4gcHVzaFRpdGxlKHRhcmdldCwgcHJvcHMsIHJlbmRlclN0YXRlLCBmb3JtYXRDb250ZXh0Lmluc2VydGlvbk1vZGUsICEhKGZvcm1hdENvbnRleHQudGFnU2NvcGUgJiBOT1NDUklQVF9TQ09QRSkpIDtcblxuICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgcmV0dXJuIHB1c2hMaW5rKHRhcmdldCwgcHJvcHMsIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSwgdGV4dEVtYmVkZGVkLCBmb3JtYXRDb250ZXh0Lmluc2VydGlvbk1vZGUsICEhKGZvcm1hdENvbnRleHQudGFnU2NvcGUgJiBOT1NDUklQVF9TQ09QRSkpO1xuXG4gICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgIHJldHVybiBwdXNoU2NyaXB0KHRhcmdldCwgcHJvcHMsIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSwgdGV4dEVtYmVkZGVkLCBmb3JtYXRDb250ZXh0Lmluc2VydGlvbk1vZGUsICEhKGZvcm1hdENvbnRleHQudGFnU2NvcGUgJiBOT1NDUklQVF9TQ09QRSkpIDtcblxuICAgIGNhc2UgJ3N0eWxlJzpcbiAgICAgIHJldHVybiBwdXNoU3R5bGUodGFyZ2V0LCBwcm9wcywgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlLCB0ZXh0RW1iZWRkZWQsIGZvcm1hdENvbnRleHQuaW5zZXJ0aW9uTW9kZSwgISEoZm9ybWF0Q29udGV4dC50YWdTY29wZSAmIE5PU0NSSVBUX1NDT1BFKSk7XG5cbiAgICBjYXNlICdtZXRhJzpcbiAgICAgIHJldHVybiBwdXNoTWV0YSh0YXJnZXQsIHByb3BzLCByZW5kZXJTdGF0ZSwgdGV4dEVtYmVkZGVkLCBmb3JtYXRDb250ZXh0Lmluc2VydGlvbk1vZGUsICEhKGZvcm1hdENvbnRleHQudGFnU2NvcGUgJiBOT1NDUklQVF9TQ09QRSkpO1xuICAgIC8vIE5ld2xpbmUgZWF0aW5nIHRhZ3NcblxuICAgIGNhc2UgJ2xpc3RpbmcnOlxuICAgIGNhc2UgJ3ByZSc6XG4gICAgICB7XG4gICAgICAgIHJldHVybiBwdXNoU3RhcnRQcmVmb3JtYXR0ZWRFbGVtZW50KHRhcmdldCwgcHJvcHMsIHR5cGUpO1xuICAgICAgfVxuXG4gICAgY2FzZSAnaW1nJzpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHB1c2hJbWcodGFyZ2V0LCBwcm9wcywgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlLCAhIShmb3JtYXRDb250ZXh0LnRhZ1Njb3BlICYgUElDVFVSRV9TQ09QRSkpIDtcbiAgICAgIH1cbiAgICAvLyBPbWl0dGVkIGNsb3NlIHRhZ3NcblxuICAgIGNhc2UgJ2Jhc2UnOlxuICAgIGNhc2UgJ2FyZWEnOlxuICAgIGNhc2UgJ2JyJzpcbiAgICBjYXNlICdjb2wnOlxuICAgIGNhc2UgJ2VtYmVkJzpcbiAgICBjYXNlICdocic6XG4gICAgY2FzZSAna2V5Z2VuJzpcbiAgICBjYXNlICdwYXJhbSc6XG4gICAgY2FzZSAnc291cmNlJzpcbiAgICBjYXNlICd0cmFjayc6XG4gICAgY2FzZSAnd2JyJzpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHB1c2hTZWxmQ2xvc2luZyh0YXJnZXQsIHByb3BzLCB0eXBlKTtcbiAgICAgIH1cbiAgICAvLyBUaGVzZSBhcmUgcmVzZXJ2ZWQgU1ZHIGFuZCBNYXRoTUwgZWxlbWVudHMsIHRoYXQgYXJlIG5ldmVyIGN1c3RvbSBlbGVtZW50cy5cbiAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL2N1c3RvbS8jY3VzdG9tLWVsZW1lbnRzLWNvcmUtY29uY2VwdHNcblxuICAgIGNhc2UgJ2Fubm90YXRpb24teG1sJzpcbiAgICBjYXNlICdjb2xvci1wcm9maWxlJzpcbiAgICBjYXNlICdmb250LWZhY2UnOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZS1zcmMnOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZS11cmknOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZS1mb3JtYXQnOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZS1uYW1lJzpcbiAgICBjYXNlICdtaXNzaW5nLWdseXBoJzpcbiAgICAgIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgLy8gUHJlYW1ibGUgc3RhcnQgdGFnc1xuXG4gICAgY2FzZSAnaGVhZCc6XG4gICAgICByZXR1cm4gcHVzaFN0YXJ0SGVhZCh0YXJnZXQsIHByb3BzLCByZW5kZXJTdGF0ZSwgZm9ybWF0Q29udGV4dC5pbnNlcnRpb25Nb2RlKTtcblxuICAgIGNhc2UgJ2h0bWwnOlxuICAgICAge1xuICAgICAgICByZXR1cm4gcHVzaFN0YXJ0SHRtbCh0YXJnZXQsIHByb3BzLCByZW5kZXJTdGF0ZSwgZm9ybWF0Q29udGV4dC5pbnNlcnRpb25Nb2RlKTtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlLmluZGV4T2YoJy0nKSAhPT0gLTEpIHtcbiAgICAgICAgICAvLyBDdXN0b20gZWxlbWVudFxuICAgICAgICAgIHJldHVybiBwdXNoU3RhcnRDdXN0b21FbGVtZW50KHRhcmdldCwgcHJvcHMsIHR5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gIH0gLy8gR2VuZXJpYyBlbGVtZW50XG5cblxuICByZXR1cm4gcHVzaFN0YXJ0R2VuZXJpY0VsZW1lbnQodGFyZ2V0LCBwcm9wcywgdHlwZSk7XG59XG52YXIgZW5kVGFnQ2FjaGUgPSBuZXcgTWFwKCk7XG5cbmZ1bmN0aW9uIGVuZENodW5rRm9yVGFnKHRhZykge1xuICB2YXIgY2h1bmsgPSBlbmRUYWdDYWNoZS5nZXQodGFnKTtcblxuICBpZiAoY2h1bmsgPT09IHVuZGVmaW5lZCkge1xuICAgIGNodW5rID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8LycgKyB0YWcgKyAnPicpO1xuICAgIGVuZFRhZ0NhY2hlLnNldCh0YWcsIGNodW5rKTtcbiAgfVxuXG4gIHJldHVybiBjaHVuaztcbn1cblxuZnVuY3Rpb24gcHVzaEVuZEluc3RhbmNlKHRhcmdldCwgdHlwZSwgcHJvcHMsIHJlc3VtYWJsZVN0YXRlLCBmb3JtYXRDb250ZXh0KSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIC8vIFdoZW4gZmxvYXQgaXMgb24gd2UgZXhwZWN0IHRpdGxlIGFuZCBzY3JpcHQgdGFncyB0byBhbHdheXMgYmUgcHVzaGVkIGluXG4gICAgLy8gYSB1bml0IGFuZCBuZXZlciByZXR1cm4gY2hpbGRyZW4uIHdoZW4gd2UgZW5kIHVwIHB1c2hpbmcgdGhlIGVuZCB0YWcgd2VcbiAgICAvLyB3YW50IHRvIGVuc3VyZSB0aGVyZSBpcyBubyBleHRyYSBjbG9zaW5nIHRhZyBwdXNoZWRcbiAgICBjYXNlICd0aXRsZSc6XG4gICAgY2FzZSAnc3R5bGUnOlxuICAgIGNhc2UgJ3NjcmlwdCc6XG4gICAgLy8gT21pdHRlZCBjbG9zZSB0YWdzXG4gICAgLy8gVE9ETzogSW5zdGVhZCBvZiByZXBlYXRpbmcgdGhpcyBzd2l0Y2ggd2UgY291bGQgdHJ5IHRvIHBhc3MgYSBmbGFnIGZyb20gYWJvdmUuXG4gICAgLy8gVGhhdCB3b3VsZCByZXF1aXJlIHJldHVybmluZyBhIHR1cGxlLiBXaGljaCBtaWdodCBiZSBvayBpZiBpdCBnZXRzIGlubGluZWQuXG5cbiAgICBjYXNlICdhcmVhJzpcbiAgICBjYXNlICdiYXNlJzpcbiAgICBjYXNlICdicic6XG4gICAgY2FzZSAnY29sJzpcbiAgICBjYXNlICdlbWJlZCc6XG4gICAgY2FzZSAnaHInOlxuICAgIGNhc2UgJ2ltZyc6XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgIGNhc2UgJ2tleWdlbic6XG4gICAgY2FzZSAnbGluayc6XG4gICAgY2FzZSAnbWV0YSc6XG4gICAgY2FzZSAncGFyYW0nOlxuICAgIGNhc2UgJ3NvdXJjZSc6XG4gICAgY2FzZSAndHJhY2snOlxuICAgIGNhc2UgJ3dicic6XG4gICAgICB7XG4gICAgICAgIC8vIE5vIGNsb3NlIHRhZyBuZWVkZWQuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAvLyBQb3N0YW1ibGUgZW5kIHRhZ3NcbiAgICAvLyBXaGVuIGZsb2F0IGlzIGVuYWJsZWQgd2Ugb21pdCB0aGUgZW5kIHRhZ3MgZm9yIGJvZHkgYW5kIGh0bWwgd2hlblxuICAgIC8vIHRoZXkgcmVwcmVzZW50IHRoZSBEb2N1bWVudC5ib2R5IGFuZCBEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgTm9kZXMuXG4gICAgLy8gVGhpcyBpcyBzbyB3ZSBjYW4gd2l0aGhvbGQgdGhlbSB1bnRpbCB0aGUgcG9zdGFtYmxlIHdoZW4gd2Uga25vd1xuICAgIC8vIHdlIHdvbid0IGVtaXQgYW55IG1vcmUgdGFnc1xuXG4gICAgY2FzZSAnYm9keSc6XG4gICAgICB7XG4gICAgICAgIGlmIChmb3JtYXRDb250ZXh0Lmluc2VydGlvbk1vZGUgPD0gSFRNTF9IVE1MX01PREUpIHtcbiAgICAgICAgICByZXN1bWFibGVTdGF0ZS5oYXNCb2R5ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgaWYgKGZvcm1hdENvbnRleHQuaW5zZXJ0aW9uTW9kZSA9PT0gUk9PVF9IVE1MX01PREUpIHtcbiAgICAgICAgcmVzdW1hYmxlU3RhdGUuaGFzSHRtbCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cblxuICB0YXJnZXQucHVzaChlbmRDaHVua0ZvclRhZyh0eXBlKSk7XG59XG5cbmZ1bmN0aW9uIHdyaXRlQm9vdHN0cmFwKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZSkge1xuICB2YXIgYm9vdHN0cmFwQ2h1bmtzID0gcmVuZGVyU3RhdGUuYm9vdHN0cmFwQ2h1bmtzO1xuICB2YXIgaSA9IDA7XG5cbiAgZm9yICg7IGkgPCBib290c3RyYXBDaHVua3MubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgYm9vdHN0cmFwQ2h1bmtzW2ldKTtcbiAgfVxuXG4gIGlmIChpIDwgYm9vdHN0cmFwQ2h1bmtzLmxlbmd0aCkge1xuICAgIHZhciBsYXN0Q2h1bmsgPSBib290c3RyYXBDaHVua3NbaV07XG4gICAgYm9vdHN0cmFwQ2h1bmtzLmxlbmd0aCA9IDA7XG4gICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGxhc3RDaHVuayk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gd3JpdGVDb21wbGV0ZWRSb290KGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZSkge1xuICByZXR1cm4gd3JpdGVCb290c3RyYXAoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlKTtcbn0gLy8gU3RydWN0dXJhbCBOb2Rlc1xuLy8gQSBwbGFjZWhvbGRlciBpcyBhIG5vZGUgaW5zaWRlIGEgaGlkZGVuIHBhcnRpYWwgdHJlZSB0aGF0IGNhbiBiZSBmaWxsZWQgaW4gbGF0ZXIsIGJ1dCBiZWZvcmVcbi8vIGRpc3BsYXkuIEl0J3MgbmV2ZXIgdmlzaWJsZSB0byB1c2Vycy4gV2UgdXNlIHRoZSB0ZW1wbGF0ZSB0YWcgYmVjYXVzZSBpdCBjYW4gYmUgdXNlZCBpbiBldmVyeVxuLy8gdHlwZSBvZiBwYXJlbnQuIDxzY3JpcHQ+IHRhZ3MgYWxzbyB3b3JrIGluIGV2ZXJ5IG90aGVyIHRhZyBleGNlcHQgPGNvbGdyb3VwPi5cblxudmFyIHBsYWNlaG9sZGVyMSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPHRlbXBsYXRlIGlkPVwiJyk7XG52YXIgcGxhY2Vob2xkZXIyID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIj48L3RlbXBsYXRlPicpO1xuZnVuY3Rpb24gd3JpdGVQbGFjZWhvbGRlcihkZXN0aW5hdGlvbiwgcmVuZGVyU3RhdGUsIGlkKSB7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHBsYWNlaG9sZGVyMSk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlLnBsYWNlaG9sZGVyUHJlZml4KTtcbiAgdmFyIGZvcm1hdHRlZElEID0gc3RyaW5nVG9DaHVuayhpZC50b1N0cmluZygxNikpO1xuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBmb3JtYXR0ZWRJRCk7XG4gIHJldHVybiB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBwbGFjZWhvbGRlcjIpO1xufSAvLyBTdXNwZW5zZSBib3VuZGFyaWVzIGFyZSBlbmNvZGVkIGFzIGNvbW1lbnRzLlxuXG52YXIgc3RhcnRDb21wbGV0ZWRTdXNwZW5zZUJvdW5kYXJ5ID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8IS0tJC0tPicpO1xudmFyIHN0YXJ0UGVuZGluZ1N1c3BlbnNlQm91bmRhcnkxID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8IS0tJD8tLT48dGVtcGxhdGUgaWQ9XCInKTtcbnZhciBzdGFydFBlbmRpbmdTdXNwZW5zZUJvdW5kYXJ5MiA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCI+PC90ZW1wbGF0ZT4nKTtcbnZhciBzdGFydENsaWVudFJlbmRlcmVkU3VzcGVuc2VCb3VuZGFyeSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPCEtLSQhLS0+Jyk7XG52YXIgZW5kU3VzcGVuc2VCb3VuZGFyeSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPCEtLS8kLS0+Jyk7XG52YXIgY2xpZW50UmVuZGVyZWRTdXNwZW5zZUJvdW5kYXJ5RXJyb3IxID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8dGVtcGxhdGUnKTtcbnZhciBjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvckF0dHJJbnRlcnN0aXRpYWwgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiJyk7XG52YXIgY2xpZW50UmVuZGVyZWRTdXNwZW5zZUJvdW5kYXJ5RXJyb3IxQSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnIGRhdGEtZGdzdD1cIicpO1xudmFyIGNsaWVudFJlbmRlcmVkU3VzcGVuc2VCb3VuZGFyeUVycm9yMUIgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJyBkYXRhLW1zZz1cIicpO1xudmFyIGNsaWVudFJlbmRlcmVkU3VzcGVuc2VCb3VuZGFyeUVycm9yMUMgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJyBkYXRhLXN0Y2s9XCInKTtcbnZhciBjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvcjIgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJz48L3RlbXBsYXRlPicpO1xuZnVuY3Rpb24gd3JpdGVTdGFydENvbXBsZXRlZFN1c3BlbnNlQm91bmRhcnkoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlKSB7XG4gIHJldHVybiB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBzdGFydENvbXBsZXRlZFN1c3BlbnNlQm91bmRhcnkpO1xufVxuZnVuY3Rpb24gd3JpdGVTdGFydFBlbmRpbmdTdXNwZW5zZUJvdW5kYXJ5KGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZSwgaWQpIHtcbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RhcnRQZW5kaW5nU3VzcGVuc2VCb3VuZGFyeTEpO1xuXG4gIGlmIChpZCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQW4gSUQgbXVzdCBoYXZlIGJlZW4gYXNzaWduZWQgYmVmb3JlIHdlIGNhbiBjb21wbGV0ZSB0aGUgYm91bmRhcnkuJyk7XG4gIH1cblxuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5ib3VuZGFyeVByZWZpeCk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoaWQudG9TdHJpbmcoMTYpKSk7XG4gIHJldHVybiB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBzdGFydFBlbmRpbmdTdXNwZW5zZUJvdW5kYXJ5Mik7XG59XG5mdW5jdGlvbiB3cml0ZVN0YXJ0Q2xpZW50UmVuZGVyZWRTdXNwZW5zZUJvdW5kYXJ5KGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZSwgZXJyb3JEaWdlc3QsIGVycm9yTWVzc3NhZ2UsIGVycm9yQ29tcG9uZW50U3RhY2spIHtcbiAgdmFyIHJlc3VsdDtcbiAgcmVzdWx0ID0gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgc3RhcnRDbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnkpO1xuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvcjEpO1xuXG4gIGlmIChlcnJvckRpZ2VzdCkge1xuICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNsaWVudFJlbmRlcmVkU3VzcGVuc2VCb3VuZGFyeUVycm9yMUEpO1xuICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoZXJyb3JEaWdlc3QpKSk7XG4gICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY2xpZW50UmVuZGVyZWRTdXNwZW5zZUJvdW5kYXJ5RXJyb3JBdHRySW50ZXJzdGl0aWFsKTtcbiAgfVxuXG4gIHtcbiAgICBpZiAoZXJyb3JNZXNzc2FnZSkge1xuICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY2xpZW50UmVuZGVyZWRTdXNwZW5zZUJvdW5kYXJ5RXJyb3IxQik7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKGVycm9yTWVzc3NhZ2UpKSk7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvckF0dHJJbnRlcnN0aXRpYWwpO1xuICAgIH1cblxuICAgIGlmIChlcnJvckNvbXBvbmVudFN0YWNrKSB7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvcjFDKTtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoZXJyb3JDb21wb25lbnRTdGFjaykpKTtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNsaWVudFJlbmRlcmVkU3VzcGVuc2VCb3VuZGFyeUVycm9yQXR0ckludGVyc3RpdGlhbCk7XG4gICAgfVxuICB9XG5cbiAgcmVzdWx0ID0gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgY2xpZW50UmVuZGVyZWRTdXNwZW5zZUJvdW5kYXJ5RXJyb3IyKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIHdyaXRlRW5kQ29tcGxldGVkU3VzcGVuc2VCb3VuZGFyeShkZXN0aW5hdGlvbiwgcmVuZGVyU3RhdGUpIHtcbiAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGVuZFN1c3BlbnNlQm91bmRhcnkpO1xufVxuZnVuY3Rpb24gd3JpdGVFbmRQZW5kaW5nU3VzcGVuc2VCb3VuZGFyeShkZXN0aW5hdGlvbiwgcmVuZGVyU3RhdGUpIHtcbiAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGVuZFN1c3BlbnNlQm91bmRhcnkpO1xufVxuZnVuY3Rpb24gd3JpdGVFbmRDbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnkoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlKSB7XG4gIHJldHVybiB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBlbmRTdXNwZW5zZUJvdW5kYXJ5KTtcbn1cbnZhciBzdGFydFNlZ21lbnRIVE1MID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8ZGl2IGhpZGRlbiBpZD1cIicpO1xudmFyIHN0YXJ0U2VnbWVudEhUTUwyID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIj4nKTtcbnZhciBlbmRTZWdtZW50SFRNTCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPC9kaXY+Jyk7XG52YXIgc3RhcnRTZWdtZW50U1ZHID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8c3ZnIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHN0eWxlPVwiZGlzcGxheTpub25lXCIgaWQ9XCInKTtcbnZhciBzdGFydFNlZ21lbnRTVkcyID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIj4nKTtcbnZhciBlbmRTZWdtZW50U1ZHID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8L3N2Zz4nKTtcbnZhciBzdGFydFNlZ21lbnRNYXRoTUwgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzxtYXRoIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHN0eWxlPVwiZGlzcGxheTpub25lXCIgaWQ9XCInKTtcbnZhciBzdGFydFNlZ21lbnRNYXRoTUwyID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIj4nKTtcbnZhciBlbmRTZWdtZW50TWF0aE1MID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8L21hdGg+Jyk7XG52YXIgc3RhcnRTZWdtZW50VGFibGUgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzx0YWJsZSBoaWRkZW4gaWQ9XCInKTtcbnZhciBzdGFydFNlZ21lbnRUYWJsZTIgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiPicpO1xudmFyIGVuZFNlZ21lbnRUYWJsZSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPC90YWJsZT4nKTtcbnZhciBzdGFydFNlZ21lbnRUYWJsZUJvZHkgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzx0YWJsZSBoaWRkZW4+PHRib2R5IGlkPVwiJyk7XG52YXIgc3RhcnRTZWdtZW50VGFibGVCb2R5MiA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCI+Jyk7XG52YXIgZW5kU2VnbWVudFRhYmxlQm9keSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPC90Ym9keT48L3RhYmxlPicpO1xudmFyIHN0YXJ0U2VnbWVudFRhYmxlUm93ID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8dGFibGUgaGlkZGVuPjx0ciBpZD1cIicpO1xudmFyIHN0YXJ0U2VnbWVudFRhYmxlUm93MiA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCI+Jyk7XG52YXIgZW5kU2VnbWVudFRhYmxlUm93ID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8L3RyPjwvdGFibGU+Jyk7XG52YXIgc3RhcnRTZWdtZW50Q29sR3JvdXAgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzx0YWJsZSBoaWRkZW4+PGNvbGdyb3VwIGlkPVwiJyk7XG52YXIgc3RhcnRTZWdtZW50Q29sR3JvdXAyID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIj4nKTtcbnZhciBlbmRTZWdtZW50Q29sR3JvdXAgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzwvY29sZ3JvdXA+PC90YWJsZT4nKTtcbmZ1bmN0aW9uIHdyaXRlU3RhcnRTZWdtZW50KGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZSwgZm9ybWF0Q29udGV4dCwgaWQpIHtcbiAgc3dpdGNoIChmb3JtYXRDb250ZXh0Lmluc2VydGlvbk1vZGUpIHtcbiAgICBjYXNlIFJPT1RfSFRNTF9NT0RFOlxuICAgIGNhc2UgSFRNTF9IVE1MX01PREU6XG4gICAgY2FzZSBIVE1MX01PREU6XG4gICAgICB7XG4gICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0YXJ0U2VnbWVudEhUTUwpO1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5zZWdtZW50UHJlZml4KTtcbiAgICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RyaW5nVG9DaHVuayhpZC50b1N0cmluZygxNikpKTtcbiAgICAgICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIHN0YXJ0U2VnbWVudEhUTUwyKTtcbiAgICAgIH1cblxuICAgIGNhc2UgU1ZHX01PREU6XG4gICAgICB7XG4gICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0YXJ0U2VnbWVudFNWRyk7XG4gICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlLnNlZ21lbnRQcmVmaXgpO1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdHJpbmdUb0NodW5rKGlkLnRvU3RyaW5nKDE2KSkpO1xuICAgICAgICByZXR1cm4gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgc3RhcnRTZWdtZW50U1ZHMik7XG4gICAgICB9XG5cbiAgICBjYXNlIE1BVEhNTF9NT0RFOlxuICAgICAge1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdGFydFNlZ21lbnRNYXRoTUwpO1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5zZWdtZW50UHJlZml4KTtcbiAgICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RyaW5nVG9DaHVuayhpZC50b1N0cmluZygxNikpKTtcbiAgICAgICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIHN0YXJ0U2VnbWVudE1hdGhNTDIpO1xuICAgICAgfVxuXG4gICAgY2FzZSBIVE1MX1RBQkxFX01PREU6XG4gICAgICB7XG4gICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0YXJ0U2VnbWVudFRhYmxlKTtcbiAgICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgcmVuZGVyU3RhdGUuc2VnbWVudFByZWZpeCk7XG4gICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoaWQudG9TdHJpbmcoMTYpKSk7XG4gICAgICAgIHJldHVybiB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBzdGFydFNlZ21lbnRUYWJsZTIpO1xuICAgICAgfVxuICAgIC8vIFRPRE86IEZvciB0aGUgcmVzdCBvZiB0aGVzZSwgdGhlcmUgd2lsbCBiZSBleHRyYSB3cmFwcGVyIG5vZGVzIHRoYXQgbmV2ZXJcbiAgICAvLyBnZXQgZGVsZXRlZCBmcm9tIHRoZSBkb2N1bWVudC4gV2UgbmVlZCB0byBkZWxldGUgdGhlIHRhYmxlIHRvbyBhcyBwYXJ0XG4gICAgLy8gb2YgdGhlIGluamVjdGVkIHNjcmlwdHMuIFRoZXkgYXJlIGludmlzaWJsZSB0aG91Z2ggc28gaXQncyBub3QgdG9vIHRlcnJpYmxlXG4gICAgLy8gYW5kIGl0J3Mga2luZCBvZiBhbiBlZGdlIGNhc2UgdG8gc3VzcGVuZCBpbiBhIHRhYmxlLiBUb3RhbGx5IHN1cHBvcnRlZCB0aG91Z2guXG5cbiAgICBjYXNlIEhUTUxfVEFCTEVfQk9EWV9NT0RFOlxuICAgICAge1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdGFydFNlZ21lbnRUYWJsZUJvZHkpO1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5zZWdtZW50UHJlZml4KTtcbiAgICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RyaW5nVG9DaHVuayhpZC50b1N0cmluZygxNikpKTtcbiAgICAgICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIHN0YXJ0U2VnbWVudFRhYmxlQm9keTIpO1xuICAgICAgfVxuXG4gICAgY2FzZSBIVE1MX1RBQkxFX1JPV19NT0RFOlxuICAgICAge1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdGFydFNlZ21lbnRUYWJsZVJvdyk7XG4gICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlLnNlZ21lbnRQcmVmaXgpO1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdHJpbmdUb0NodW5rKGlkLnRvU3RyaW5nKDE2KSkpO1xuICAgICAgICByZXR1cm4gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgc3RhcnRTZWdtZW50VGFibGVSb3cyKTtcbiAgICAgIH1cblxuICAgIGNhc2UgSFRNTF9DT0xHUk9VUF9NT0RFOlxuICAgICAge1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdGFydFNlZ21lbnRDb2xHcm91cCk7XG4gICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlLnNlZ21lbnRQcmVmaXgpO1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdHJpbmdUb0NodW5rKGlkLnRvU3RyaW5nKDE2KSkpO1xuICAgICAgICByZXR1cm4gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgc3RhcnRTZWdtZW50Q29sR3JvdXAyKTtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBpbnNlcnRpb24gbW9kZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gd3JpdGVFbmRTZWdtZW50KGRlc3RpbmF0aW9uLCBmb3JtYXRDb250ZXh0KSB7XG4gIHN3aXRjaCAoZm9ybWF0Q29udGV4dC5pbnNlcnRpb25Nb2RlKSB7XG4gICAgY2FzZSBST09UX0hUTUxfTU9ERTpcbiAgICBjYXNlIEhUTUxfSFRNTF9NT0RFOlxuICAgIGNhc2UgSFRNTF9NT0RFOlxuICAgICAge1xuICAgICAgICByZXR1cm4gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgZW5kU2VnbWVudEhUTUwpO1xuICAgICAgfVxuXG4gICAgY2FzZSBTVkdfTU9ERTpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGVuZFNlZ21lbnRTVkcpO1xuICAgICAgfVxuXG4gICAgY2FzZSBNQVRITUxfTU9ERTpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGVuZFNlZ21lbnRNYXRoTUwpO1xuICAgICAgfVxuXG4gICAgY2FzZSBIVE1MX1RBQkxFX01PREU6XG4gICAgICB7XG4gICAgICAgIHJldHVybiB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBlbmRTZWdtZW50VGFibGUpO1xuICAgICAgfVxuXG4gICAgY2FzZSBIVE1MX1RBQkxFX0JPRFlfTU9ERTpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGVuZFNlZ21lbnRUYWJsZUJvZHkpO1xuICAgICAgfVxuXG4gICAgY2FzZSBIVE1MX1RBQkxFX1JPV19NT0RFOlxuICAgICAge1xuICAgICAgICByZXR1cm4gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgZW5kU2VnbWVudFRhYmxlUm93KTtcbiAgICAgIH1cblxuICAgIGNhc2UgSFRNTF9DT0xHUk9VUF9NT0RFOlxuICAgICAge1xuICAgICAgICByZXR1cm4gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgZW5kU2VnbWVudENvbEdyb3VwKTtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBpbnNlcnRpb24gbW9kZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cbiAgfVxufVxudmFyIGNvbXBsZXRlU2VnbWVudFNjcmlwdDFGdWxsID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKGNvbXBsZXRlU2VnbWVudCArICckUlMoXCInKTtcbnZhciBjb21wbGV0ZVNlZ21lbnRTY3JpcHQxUGFydGlhbCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnJFJTKFwiJyk7XG52YXIgY29tcGxldGVTZWdtZW50U2NyaXB0MiA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCIsXCInKTtcbnZhciBjb21wbGV0ZVNlZ21lbnRTY3JpcHRFbmQgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiKTwvc2NyaXB0PicpO1xudmFyIGNvbXBsZXRlU2VnbWVudERhdGExID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8dGVtcGxhdGUgZGF0YS1yc2k9XCJcIiBkYXRhLXNpZD1cIicpO1xudmFyIGNvbXBsZXRlU2VnbWVudERhdGEyID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIiBkYXRhLXBpZD1cIicpO1xudmFyIGNvbXBsZXRlU2VnbWVudERhdGFFbmQgPSBkYXRhRWxlbWVudFF1b3RlZEVuZDtcbmZ1bmN0aW9uIHdyaXRlQ29tcGxldGVkU2VnbWVudEluc3RydWN0aW9uKGRlc3RpbmF0aW9uLCByZXN1bWFibGVTdGF0ZSwgcmVuZGVyU3RhdGUsIGNvbnRlbnRTZWdtZW50SUQpIHtcbiAgdmFyIHNjcmlwdEZvcm1hdCA9IHJlc3VtYWJsZVN0YXRlLnN0cmVhbWluZ0Zvcm1hdCA9PT0gU2NyaXB0U3RyZWFtaW5nRm9ybWF0O1xuXG4gIGlmIChzY3JpcHRGb3JtYXQpIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5zdGFydElubGluZVNjcmlwdCk7XG5cbiAgICBpZiAoKHJlc3VtYWJsZVN0YXRlLmluc3RydWN0aW9ucyAmIFNlbnRDb21wbGV0ZVNlZ21lbnRGdW5jdGlvbikgPT09IE5vdGhpbmdTZW50KSB7XG4gICAgICAvLyBUaGUgZmlyc3QgdGltZSB3ZSB3cml0ZSB0aGlzLCB3ZSdsbCBuZWVkIHRvIGluY2x1ZGUgdGhlIGZ1bGwgaW1wbGVtZW50YXRpb24uXG4gICAgICByZXN1bWFibGVTdGF0ZS5pbnN0cnVjdGlvbnMgfD0gU2VudENvbXBsZXRlU2VnbWVudEZ1bmN0aW9uO1xuICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY29tcGxldGVTZWdtZW50U2NyaXB0MUZ1bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGdXR1cmUgY2FsbHMgY2FuIGp1c3QgcmV1c2UgdGhlIHNhbWUgZnVuY3Rpb24uXG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjb21wbGV0ZVNlZ21lbnRTY3JpcHQxUGFydGlhbCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNvbXBsZXRlU2VnbWVudERhdGExKTtcbiAgfSAvLyBXcml0ZSBmdW5jdGlvbiBhcmd1bWVudHMsIHdoaWNoIGFyZSBzdHJpbmcgbGl0ZXJhbHNcblxuXG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlLnNlZ21lbnRQcmVmaXgpO1xuICB2YXIgZm9ybWF0dGVkSUQgPSBzdHJpbmdUb0NodW5rKGNvbnRlbnRTZWdtZW50SUQudG9TdHJpbmcoMTYpKTtcbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgZm9ybWF0dGVkSUQpO1xuXG4gIGlmIChzY3JpcHRGb3JtYXQpIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjb21wbGV0ZVNlZ21lbnRTY3JpcHQyKTtcbiAgfSBlbHNlIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjb21wbGV0ZVNlZ21lbnREYXRhMik7XG4gIH1cblxuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5wbGFjZWhvbGRlclByZWZpeCk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGZvcm1hdHRlZElEKTtcblxuICBpZiAoc2NyaXB0Rm9ybWF0KSB7XG4gICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGNvbXBsZXRlU2VnbWVudFNjcmlwdEVuZCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGNvbXBsZXRlU2VnbWVudERhdGFFbmQpO1xuICB9XG59XG52YXIgY29tcGxldGVCb3VuZGFyeVNjcmlwdDFGdWxsID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKGNvbXBsZXRlQm91bmRhcnkgKyAnJFJDKFwiJyk7XG52YXIgY29tcGxldGVCb3VuZGFyeVNjcmlwdDFQYXJ0aWFsID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCckUkMoXCInKTtcbnZhciBjb21wbGV0ZUJvdW5kYXJ5V2l0aFN0eWxlc1NjcmlwdDFGdWxsQm90aCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuayhjb21wbGV0ZUJvdW5kYXJ5ICsgY29tcGxldGVCb3VuZGFyeVdpdGhTdHlsZXMgKyAnJFJSKFwiJyk7XG52YXIgY29tcGxldGVCb3VuZGFyeVdpdGhTdHlsZXNTY3JpcHQxRnVsbFBhcnRpYWwgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoY29tcGxldGVCb3VuZGFyeVdpdGhTdHlsZXMgKyAnJFJSKFwiJyk7XG52YXIgY29tcGxldGVCb3VuZGFyeVdpdGhTdHlsZXNTY3JpcHQxUGFydGlhbCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnJFJSKFwiJyk7XG52YXIgY29tcGxldGVCb3VuZGFyeVNjcmlwdDIgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiLFwiJyk7XG52YXIgY29tcGxldGVCb3VuZGFyeVNjcmlwdDNhID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIiwnKTtcbnZhciBjb21wbGV0ZUJvdW5kYXJ5U2NyaXB0M2IgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiJyk7XG52YXIgY29tcGxldGVCb3VuZGFyeVNjcmlwdEVuZCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnKTwvc2NyaXB0PicpO1xudmFyIGNvbXBsZXRlQm91bmRhcnlEYXRhMSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPHRlbXBsYXRlIGRhdGEtcmNpPVwiXCIgZGF0YS1iaWQ9XCInKTtcbnZhciBjb21wbGV0ZUJvdW5kYXJ5V2l0aFN0eWxlc0RhdGExID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8dGVtcGxhdGUgZGF0YS1ycmk9XCJcIiBkYXRhLWJpZD1cIicpO1xudmFyIGNvbXBsZXRlQm91bmRhcnlEYXRhMiA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCIgZGF0YS1zaWQ9XCInKTtcbnZhciBjb21wbGV0ZUJvdW5kYXJ5RGF0YTNhID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIiBkYXRhLXN0eT1cIicpO1xudmFyIGNvbXBsZXRlQm91bmRhcnlEYXRhRW5kID0gZGF0YUVsZW1lbnRRdW90ZWRFbmQ7XG5mdW5jdGlvbiB3cml0ZUNvbXBsZXRlZEJvdW5kYXJ5SW5zdHJ1Y3Rpb24oZGVzdGluYXRpb24sIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSwgaWQsIGJvdW5kYXJ5UmVzb3VyY2VzKSB7XG4gIHZhciByZXF1aXJlc1N0eWxlSW5zZXJ0aW9uO1xuXG4gIHtcbiAgICByZXF1aXJlc1N0eWxlSW5zZXJ0aW9uID0gcmVuZGVyU3RhdGUuc3R5bGVzVG9Ib2lzdDsgLy8gSWYgbmVjZXNzYXJ5IHN0eWxlc2hlZXRzIHdpbGwgYmUgZmx1c2hlZCB3aXRoIHRoaXMgaW5zdHJ1Y3Rpb24uXG4gICAgLy8gQW55IHN0eWxlIHRhZ3Mgbm90IHlldCBob2lzdGVkIGluIHRoZSBEb2N1bWVudCB3aWxsIGFsc28gYmUgaG9pc3RlZC5cbiAgICAvLyBXZSByZXNldCB0aGlzIHN0YXRlIHNpbmNlIGFmdGVyIHRoaXMgaW5zdHJ1Y3Rpb24gZXhlY3V0ZXMgYWxsIHN0eWxlc1xuICAgIC8vIHVwIHRvIHRoaXMgcG9pbnQgd2lsbCBoYXZlIGJlZW4gaG9pc3RlZFxuXG4gICAgcmVuZGVyU3RhdGUuc3R5bGVzVG9Ib2lzdCA9IGZhbHNlO1xuICB9XG5cbiAgdmFyIHNjcmlwdEZvcm1hdCA9IHJlc3VtYWJsZVN0YXRlLnN0cmVhbWluZ0Zvcm1hdCA9PT0gU2NyaXB0U3RyZWFtaW5nRm9ybWF0O1xuXG4gIGlmIChzY3JpcHRGb3JtYXQpIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5zdGFydElubGluZVNjcmlwdCk7XG5cbiAgICBpZiAocmVxdWlyZXNTdHlsZUluc2VydGlvbikge1xuICAgICAgaWYgKChyZXN1bWFibGVTdGF0ZS5pbnN0cnVjdGlvbnMgJiBTZW50Q29tcGxldGVCb3VuZGFyeUZ1bmN0aW9uKSA9PT0gTm90aGluZ1NlbnQpIHtcbiAgICAgICAgcmVzdW1hYmxlU3RhdGUuaW5zdHJ1Y3Rpb25zIHw9IFNlbnRTdHlsZUluc2VydGlvbkZ1bmN0aW9uIHwgU2VudENvbXBsZXRlQm91bmRhcnlGdW5jdGlvbjtcbiAgICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY2xvbmVQcmVjb21wdXRlZENodW5rKGNvbXBsZXRlQm91bmRhcnlXaXRoU3R5bGVzU2NyaXB0MUZ1bGxCb3RoKSk7XG4gICAgICB9IGVsc2UgaWYgKChyZXN1bWFibGVTdGF0ZS5pbnN0cnVjdGlvbnMgJiBTZW50U3R5bGVJbnNlcnRpb25GdW5jdGlvbikgPT09IE5vdGhpbmdTZW50KSB7XG4gICAgICAgIHJlc3VtYWJsZVN0YXRlLmluc3RydWN0aW9ucyB8PSBTZW50U3R5bGVJbnNlcnRpb25GdW5jdGlvbjtcbiAgICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY29tcGxldGVCb3VuZGFyeVdpdGhTdHlsZXNTY3JpcHQxRnVsbFBhcnRpYWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY29tcGxldGVCb3VuZGFyeVdpdGhTdHlsZXNTY3JpcHQxUGFydGlhbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgocmVzdW1hYmxlU3RhdGUuaW5zdHJ1Y3Rpb25zICYgU2VudENvbXBsZXRlQm91bmRhcnlGdW5jdGlvbikgPT09IE5vdGhpbmdTZW50KSB7XG4gICAgICAgIHJlc3VtYWJsZVN0YXRlLmluc3RydWN0aW9ucyB8PSBTZW50Q29tcGxldGVCb3VuZGFyeUZ1bmN0aW9uO1xuICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjb21wbGV0ZUJvdW5kYXJ5U2NyaXB0MUZ1bGwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY29tcGxldGVCb3VuZGFyeVNjcmlwdDFQYXJ0aWFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHJlcXVpcmVzU3R5bGVJbnNlcnRpb24pIHtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNvbXBsZXRlQm91bmRhcnlXaXRoU3R5bGVzRGF0YTEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjb21wbGV0ZUJvdW5kYXJ5RGF0YTEpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBpZENodW5rID0gc3RyaW5nVG9DaHVuayhpZC50b1N0cmluZygxNikpO1xuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5ib3VuZGFyeVByZWZpeCk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGlkQ2h1bmspOyAvLyBXcml0ZSBmdW5jdGlvbiBhcmd1bWVudHMsIHdoaWNoIGFyZSBzdHJpbmcgYW5kIGFycmF5IGxpdGVyYWxzXG5cbiAgaWYgKHNjcmlwdEZvcm1hdCkge1xuICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNvbXBsZXRlQm91bmRhcnlTY3JpcHQyKTtcbiAgfSBlbHNlIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjb21wbGV0ZUJvdW5kYXJ5RGF0YTIpO1xuICB9XG5cbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgcmVuZGVyU3RhdGUuc2VnbWVudFByZWZpeCk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGlkQ2h1bmspO1xuXG4gIGlmIChyZXF1aXJlc1N0eWxlSW5zZXJ0aW9uKSB7XG4gICAgLy8gU2NyaXB0IGFuZCBkYXRhIHdyaXRlcnMgbXVzdCBmb3JtYXQgdGhpcyBkaWZmZXJlbnRseTpcbiAgICAvLyAgLSBzY3JpcHQgd3JpdGVyIGVtaXRzIGFuIGFycmF5IGxpdGVyYWwsIHdob3NlIHN0cmluZyBlbGVtZW50cyBhcmVcbiAgICAvLyAgICBlc2NhcGVkIGZvciBqYXZhc2NyaXB0ICBlLmcuIFtcIkFcIiwgXCJCXCJdXG4gICAgLy8gIC0gZGF0YSB3cml0ZXIgZW1pdHMgYSBzdHJpbmcgbGl0ZXJhbCwgd2hpY2ggaXMgZXNjYXBlZCBhcyBodG1sXG4gICAgLy8gICAgZS5nLiBbJiMzNDtBJiMzNDssICYjMzQ7QiYjMzQ7XVxuICAgIGlmIChzY3JpcHRGb3JtYXQpIHtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNvbXBsZXRlQm91bmRhcnlTY3JpcHQzYSk7IC8vIGJvdW5kYXJ5UmVzb3VyY2VzIGVuY29kZXMgYW4gYXJyYXkgbGl0ZXJhbFxuXG4gICAgICB3cml0ZVN0eWxlUmVzb3VyY2VEZXBlbmRlbmNpZXNJbkpTKGRlc3RpbmF0aW9uLCBib3VuZGFyeVJlc291cmNlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNvbXBsZXRlQm91bmRhcnlEYXRhM2EpO1xuICAgICAgd3JpdGVTdHlsZVJlc291cmNlRGVwZW5kZW5jaWVzSW5BdHRyKGRlc3RpbmF0aW9uLCBib3VuZGFyeVJlc291cmNlcyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChzY3JpcHRGb3JtYXQpIHtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNvbXBsZXRlQm91bmRhcnlTY3JpcHQzYik7XG4gICAgfVxuICB9XG5cbiAgdmFyIHdyaXRlTW9yZTtcblxuICBpZiAoc2NyaXB0Rm9ybWF0KSB7XG4gICAgd3JpdGVNb3JlID0gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgY29tcGxldGVCb3VuZGFyeVNjcmlwdEVuZCk7XG4gIH0gZWxzZSB7XG4gICAgd3JpdGVNb3JlID0gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgY29tcGxldGVCb3VuZGFyeURhdGFFbmQpO1xuICB9XG5cbiAgcmV0dXJuIHdyaXRlQm9vdHN0cmFwKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZSkgJiYgd3JpdGVNb3JlO1xufVxudmFyIGNsaWVudFJlbmRlclNjcmlwdDFGdWxsID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKGNsaWVudFJlbmRlckJvdW5kYXJ5ICsgJzskUlgoXCInKTtcbnZhciBjbGllbnRSZW5kZXJTY3JpcHQxUGFydGlhbCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnJFJYKFwiJyk7XG52YXIgY2xpZW50UmVuZGVyU2NyaXB0MUEgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiJyk7XG52YXIgY2xpZW50UmVuZGVyRXJyb3JTY3JpcHRBcmdJbnRlcnN0aXRpYWwgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJywnKTtcbnZhciBjbGllbnRSZW5kZXJTY3JpcHRFbmQgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJyk8L3NjcmlwdD4nKTtcbnZhciBjbGllbnRSZW5kZXJEYXRhMSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPHRlbXBsYXRlIGRhdGEtcnhpPVwiXCIgZGF0YS1iaWQ9XCInKTtcbnZhciBjbGllbnRSZW5kZXJEYXRhMiA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCIgZGF0YS1kZ3N0PVwiJyk7XG52YXIgY2xpZW50UmVuZGVyRGF0YTMgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiIGRhdGEtbXNnPVwiJyk7XG52YXIgY2xpZW50UmVuZGVyRGF0YTQgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiIGRhdGEtc3Rjaz1cIicpO1xudmFyIGNsaWVudFJlbmRlckRhdGFFbmQgPSBkYXRhRWxlbWVudFF1b3RlZEVuZDtcbmZ1bmN0aW9uIHdyaXRlQ2xpZW50UmVuZGVyQm91bmRhcnlJbnN0cnVjdGlvbihkZXN0aW5hdGlvbiwgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlLCBpZCwgZXJyb3JEaWdlc3QsIGVycm9yTWVzc2FnZSwgZXJyb3JDb21wb25lbnRTdGFjaykge1xuICB2YXIgc2NyaXB0Rm9ybWF0ID0gcmVzdW1hYmxlU3RhdGUuc3RyZWFtaW5nRm9ybWF0ID09PSBTY3JpcHRTdHJlYW1pbmdGb3JtYXQ7XG5cbiAgaWYgKHNjcmlwdEZvcm1hdCkge1xuICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHJlbmRlclN0YXRlLnN0YXJ0SW5saW5lU2NyaXB0KTtcblxuICAgIGlmICgocmVzdW1hYmxlU3RhdGUuaW5zdHJ1Y3Rpb25zICYgU2VudENsaWVudFJlbmRlckZ1bmN0aW9uKSA9PT0gTm90aGluZ1NlbnQpIHtcbiAgICAgIC8vIFRoZSBmaXJzdCB0aW1lIHdlIHdyaXRlIHRoaXMsIHdlJ2xsIG5lZWQgdG8gaW5jbHVkZSB0aGUgZnVsbCBpbXBsZW1lbnRhdGlvbi5cbiAgICAgIHJlc3VtYWJsZVN0YXRlLmluc3RydWN0aW9ucyB8PSBTZW50Q2xpZW50UmVuZGVyRnVuY3Rpb247XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjbGllbnRSZW5kZXJTY3JpcHQxRnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZ1dHVyZSBjYWxscyBjYW4ganVzdCByZXVzZSB0aGUgc2FtZSBmdW5jdGlvbi5cbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNsaWVudFJlbmRlclNjcmlwdDFQYXJ0aWFsKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gPHRlbXBsYXRlIGRhdGEtcnhpPVwiXCIgZGF0YS1iaWQ9XCJcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjbGllbnRSZW5kZXJEYXRhMSk7XG4gIH1cblxuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCByZW5kZXJTdGF0ZS5ib3VuZGFyeVByZWZpeCk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoaWQudG9TdHJpbmcoMTYpKSk7XG5cbiAgaWYgKHNjcmlwdEZvcm1hdCkge1xuICAgIC8vIFwiIG5lZWRzIHRvIGJlIGluc2VydGVkIGZvciBzY3JpcHRzLCBzaW5jZSBBcmdJbnRlcnN0aXR1YWwgZG9lcyBub3QgY29udGFpblxuICAgIC8vIGxlYWRpbmcgb3IgdHJhaWxpbmcgcXVvdGVzXG4gICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY2xpZW50UmVuZGVyU2NyaXB0MUEpO1xuICB9XG5cbiAgaWYgKGVycm9yRGlnZXN0IHx8IGVycm9yTWVzc2FnZSB8fCBlcnJvckNvbXBvbmVudFN0YWNrKSB7XG4gICAgaWYgKHNjcmlwdEZvcm1hdCkge1xuICAgICAgLy8gLFwiSlNPTlN0cmluZ1wiXG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjbGllbnRSZW5kZXJFcnJvclNjcmlwdEFyZ0ludGVyc3RpdGlhbCk7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdHJpbmdUb0NodW5rKGVzY2FwZUpTU3RyaW5nc0Zvckluc3RydWN0aW9uU2NyaXB0cyhlcnJvckRpZ2VzdCB8fCAnJykpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gXCIgZGF0YS1kZ3N0PVwiSFRNTFN0cmluZ1xuICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY2xpZW50UmVuZGVyRGF0YTIpO1xuICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihlcnJvckRpZ2VzdCB8fCAnJykpKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZXJyb3JNZXNzYWdlIHx8IGVycm9yQ29tcG9uZW50U3RhY2spIHtcbiAgICBpZiAoc2NyaXB0Rm9ybWF0KSB7XG4gICAgICAvLyAsXCJKU09OU3RyaW5nXCJcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNsaWVudFJlbmRlckVycm9yU2NyaXB0QXJnSW50ZXJzdGl0aWFsKTtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlSlNTdHJpbmdzRm9ySW5zdHJ1Y3Rpb25TY3JpcHRzKGVycm9yTWVzc2FnZSB8fCAnJykpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gXCIgZGF0YS1tc2c9XCJIVE1MU3RyaW5nXG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjbGllbnRSZW5kZXJEYXRhMyk7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKGVycm9yTWVzc2FnZSB8fCAnJykpKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZXJyb3JDb21wb25lbnRTdGFjaykge1xuICAgIC8vICxcIkpTT05TdHJpbmdcIlxuICAgIGlmIChzY3JpcHRGb3JtYXQpIHtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNsaWVudFJlbmRlckVycm9yU2NyaXB0QXJnSW50ZXJzdGl0aWFsKTtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlSlNTdHJpbmdzRm9ySW5zdHJ1Y3Rpb25TY3JpcHRzKGVycm9yQ29tcG9uZW50U3RhY2spKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFwiIGRhdGEtc3Rjaz1cIkhUTUxTdHJpbmdcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNsaWVudFJlbmRlckRhdGE0KTtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoZXJyb3JDb21wb25lbnRTdGFjaykpKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc2NyaXB0Rm9ybWF0KSB7XG4gICAgLy8gPjwvc2NyaXB0PlxuICAgIHJldHVybiB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBjbGllbnRSZW5kZXJTY3JpcHRFbmQpO1xuICB9IGVsc2Uge1xuICAgIC8vIFwiPjwvdGVtcGxhdGU+XG4gICAgcmV0dXJuIHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGNsaWVudFJlbmRlckRhdGFFbmQpO1xuICB9XG59XG52YXIgcmVnZXhGb3JKU1N0cmluZ3NJbkluc3RydWN0aW9uU2NyaXB0cyA9IC9bPFxcdTIwMjhcXHUyMDI5XS9nO1xuXG5mdW5jdGlvbiBlc2NhcGVKU1N0cmluZ3NGb3JJbnN0cnVjdGlvblNjcmlwdHMoaW5wdXQpIHtcbiAgdmFyIGVzY2FwZWQgPSBKU09OLnN0cmluZ2lmeShpbnB1dCk7XG4gIHJldHVybiBlc2NhcGVkLnJlcGxhY2UocmVnZXhGb3JKU1N0cmluZ3NJbkluc3RydWN0aW9uU2NyaXB0cywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgc3dpdGNoIChtYXRjaCkge1xuICAgICAgLy8gc2FudGl6aW5nIGJyZWFraW5nIG91dCBvZiBzdHJpbmdzIGFuZCBzY3JpcHQgdGFnc1xuICAgICAgY2FzZSAnPCc6XG4gICAgICAgIHJldHVybiBcIlxcXFx1MDAzY1wiO1xuXG4gICAgICBjYXNlIFwiXFx1MjAyOFwiOlxuICAgICAgICByZXR1cm4gXCJcXFxcdTIwMjhcIjtcblxuICAgICAgY2FzZSBcIlxcdTIwMjlcIjpcbiAgICAgICAgcmV0dXJuIFwiXFxcXHUyMDI5XCI7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZXNjYXBlSlNTdHJpbmdzRm9ySW5zdHJ1Y3Rpb25TY3JpcHRzIGVuY291bnRlcmVkIGEgbWF0Y2ggaXQgZG9lcyBub3Qga25vdyBob3cgdG8gcmVwbGFjZS4gdGhpcyBtZWFucyB0aGUgbWF0Y2ggcmVnZXggYW5kIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXJzIGFyZSBubyBsb25nZXIgaW4gc3luYy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdCcpO1xuICAgICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxudmFyIHJlZ2V4Rm9ySlNTdHJpbmdzSW5TY3JpcHRzID0gL1smPjxcXHUyMDI4XFx1MjAyOV0vZztcblxuZnVuY3Rpb24gZXNjYXBlSlNPYmplY3RGb3JJbnN0cnVjdGlvblNjcmlwdHMoaW5wdXQpIHtcbiAgdmFyIGVzY2FwZWQgPSBKU09OLnN0cmluZ2lmeShpbnB1dCk7XG4gIHJldHVybiBlc2NhcGVkLnJlcGxhY2UocmVnZXhGb3JKU1N0cmluZ3NJblNjcmlwdHMsIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgIHN3aXRjaCAobWF0Y2gpIHtcbiAgICAgIC8vIHNhbnRpemluZyBicmVha2luZyBvdXQgb2Ygc3RyaW5ncyBhbmQgc2NyaXB0IHRhZ3NcbiAgICAgIGNhc2UgJyYnOlxuICAgICAgICByZXR1cm4gXCJcXFxcdTAwMjZcIjtcblxuICAgICAgY2FzZSAnPic6XG4gICAgICAgIHJldHVybiBcIlxcXFx1MDAzZVwiO1xuXG4gICAgICBjYXNlICc8JzpcbiAgICAgICAgcmV0dXJuIFwiXFxcXHUwMDNjXCI7XG5cbiAgICAgIGNhc2UgXCJcXHUyMDI4XCI6XG4gICAgICAgIHJldHVybiBcIlxcXFx1MjAyOFwiO1xuXG4gICAgICBjYXNlIFwiXFx1MjAyOVwiOlxuICAgICAgICByZXR1cm4gXCJcXFxcdTIwMjlcIjtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdlc2NhcGVKU09iamVjdEZvckluc3RydWN0aW9uU2NyaXB0cyBlbmNvdW50ZXJlZCBhIG1hdGNoIGl0IGRvZXMgbm90IGtub3cgaG93IHRvIHJlcGxhY2UuIHRoaXMgbWVhbnMgdGhlIG1hdGNoIHJlZ2V4IGFuZCB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVycyBhcmUgbm8gbG9uZ2VyIGluIHN5bmMuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbnZhciBsYXRlU3R5bGVUYWdSZXNvdXJjZU9wZW4xID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCc8c3R5bGUgbWVkaWE9XCJub3QgYWxsXCIgZGF0YS1wcmVjZWRlbmNlPVwiJyk7XG52YXIgbGF0ZVN0eWxlVGFnUmVzb3VyY2VPcGVuMiA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCIgZGF0YS1ocmVmPVwiJyk7XG52YXIgbGF0ZVN0eWxlVGFnUmVzb3VyY2VPcGVuMyA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnXCI+Jyk7XG52YXIgbGF0ZVN0eWxlVGFnVGVtcGxhdGVDbG9zZSA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnPC9zdHlsZT4nKTsgLy8gVHJhY2tzIHdoZXRoZXIgdGhlIGJvdW5kYXJ5IGN1cnJlbnRseSBmbHVzaGluZyBpcyBmbHVzaGlnbiBzdHlsZSB0YWdzIG9yIGhhcyBhbnlcbi8vIHN0eWxlc2hlZXQgZGVwZW5kZW5jaWVzIG5vdCBmbHVzaGVkIGluIHRoZSBQcmVhbWJsZS5cblxudmFyIGN1cnJlbnRseVJlbmRlcmluZ0JvdW5kYXJ5SGFzU3R5bGVzVG9Ib2lzdCA9IGZhbHNlOyAvLyBBY3RzIGFzIGEgcmV0dXJuIHZhbHVlIGZvciB0aGUgZm9yRWFjaCBleGVjdXRpb24gb2Ygc3R5bGUgdGFnIGZsdXNoaW5nLlxuXG52YXIgZGVzdGluYXRpb25IYXNDYXBhY2l0eSA9IHRydWU7XG5cbmZ1bmN0aW9uIGZsdXNoU3R5bGVUYWdzTGF0ZUZvckJvdW5kYXJ5KHN0eWxlUXVldWUpIHtcbiAgdmFyIHJ1bGVzID0gc3R5bGVRdWV1ZS5ydWxlcztcbiAgdmFyIGhyZWZzID0gc3R5bGVRdWV1ZS5ocmVmcztcblxuICB7XG4gICAgaWYgKHJ1bGVzLmxlbmd0aCA+IDAgJiYgaHJlZnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBlcnJvcignUmVhY3QgZXhwZWN0ZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgaHJlZiBmb3IgYW4gYSBob2lzdGFibGUgc3R5bGUgYnV0IGZvdW5kIG5vbmUuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGkgPSAwO1xuXG4gIGlmIChocmVmcy5sZW5ndGgpIHtcbiAgICB3cml0ZUNodW5rKHRoaXMsIGxhdGVTdHlsZVRhZ1Jlc291cmNlT3BlbjEpO1xuICAgIHdyaXRlQ2h1bmsodGhpcywgc3R5bGVRdWV1ZS5wcmVjZWRlbmNlKTtcbiAgICB3cml0ZUNodW5rKHRoaXMsIGxhdGVTdHlsZVRhZ1Jlc291cmNlT3BlbjIpO1xuXG4gICAgZm9yICg7IGkgPCBocmVmcy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIHdyaXRlQ2h1bmsodGhpcywgaHJlZnNbaV0pO1xuICAgICAgd3JpdGVDaHVuayh0aGlzLCBzcGFjZVNlcGFyYXRvcik7XG4gICAgfVxuXG4gICAgd3JpdGVDaHVuayh0aGlzLCBocmVmc1tpXSk7XG4gICAgd3JpdGVDaHVuayh0aGlzLCBsYXRlU3R5bGVUYWdSZXNvdXJjZU9wZW4zKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgd3JpdGVDaHVuayh0aGlzLCBydWxlc1tpXSk7XG4gICAgfVxuXG4gICAgZGVzdGluYXRpb25IYXNDYXBhY2l0eSA9IHdyaXRlQ2h1bmtBbmRSZXR1cm4odGhpcywgbGF0ZVN0eWxlVGFnVGVtcGxhdGVDbG9zZSk7IC8vIFdlIHdyb3RlIHN0eWxlIHRhZ3MgZm9yIHRoaXMgYm91bmRhcnkgYW5kIHdlIG1heSBuZWVkIHRvIGVtaXQgYSBzY3JpcHRcbiAgICAvLyB0byBob2lzdCB0aGVtLlxuXG4gICAgY3VycmVudGx5UmVuZGVyaW5nQm91bmRhcnlIYXNTdHlsZXNUb0hvaXN0ID0gdHJ1ZTsgLy8gc3R5bGUgcmVzb3VyY2VzIGNhbiBmbHVzaCBjb250aW51b3VzbHkgc2luY2UgbW9yZSBydWxlcyBtYXkgYmUgd3JpdHRlbiBpbnRvXG4gICAgLy8gdGhlbSB3aXRoIG5ldyBocmVmcy4gSW5zdGVhZCBvZiBtYXJraW5nIGl0IGZsdXNoZWQsIHdlIHNpbXBseSByZXNldCB0aGUgY2h1bmtzXG4gICAgLy8gYW5kIGhyZWZzXG5cbiAgICBydWxlcy5sZW5ndGggPSAwO1xuICAgIGhyZWZzLmxlbmd0aCA9IDA7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFzU3R5bGVzVG9Ib2lzdChzdHlsZXNoZWV0KSB7XG4gIC8vIFdlIG5lZWQgdG8gcmV2ZWFsIGJvdW5kYXJpZXMgd2l0aCBzdHlsZXMgd2hlbmV2ZXIgYSBzdHlsZXNoZWV0IGl0IGRlcGVuZHMgb24gaXMgZWl0aGVyXG4gIC8vIG5vdCBmbHVzaGVkIG9yIGZsdXNoZWQgYWZ0ZXIgdGhlIHByZWFtYmxlIChzaGVsbCkuXG4gIGlmIChzdHlsZXNoZWV0LnN0YXRlICE9PSBQUkVBTUJMRSkge1xuICAgIGN1cnJlbnRseVJlbmRlcmluZ0JvdW5kYXJ5SGFzU3R5bGVzVG9Ib2lzdCA9IHRydWU7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHdyaXRlUmVzb3VyY2VzRm9yQm91bmRhcnkoZGVzdGluYXRpb24sIGJvdW5kYXJ5UmVzb3VyY2VzLCByZW5kZXJTdGF0ZSkge1xuICAvLyBSZXNldCB0aGVzZSBvbiBlYWNoIGludm9jYXRpb24sIHRoZXkgYXJlIG9ubHkgc2FmZSB0byByZWFkIGluIHRoaXMgZnVuY3Rpb25cbiAgY3VycmVudGx5UmVuZGVyaW5nQm91bmRhcnlIYXNTdHlsZXNUb0hvaXN0ID0gZmFsc2U7XG4gIGRlc3RpbmF0aW9uSGFzQ2FwYWNpdHkgPSB0cnVlOyAvLyBGbHVzaCBzdHlsZSB0YWdzIGZvciBlYWNoIHByZWNlZGVuY2UgdGhpcyBib3VuZGFyeSBkZXBlbmRzIG9uXG5cbiAgYm91bmRhcnlSZXNvdXJjZXMuc3R5bGVzLmZvckVhY2goZmx1c2hTdHlsZVRhZ3NMYXRlRm9yQm91bmRhcnksIGRlc3RpbmF0aW9uKTsgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgYm91bmRhcnkgaGFzIHN0eWxlc2hlZXRzIHRoYXQgbmVlZCB0byBiZSBhd2FpdGVkIHVwb24gY29tcGxldGlvblxuXG4gIGJvdW5kYXJ5UmVzb3VyY2VzLnN0eWxlc2hlZXRzLmZvckVhY2goaGFzU3R5bGVzVG9Ib2lzdCk7XG5cbiAgaWYgKGN1cnJlbnRseVJlbmRlcmluZ0JvdW5kYXJ5SGFzU3R5bGVzVG9Ib2lzdCkge1xuICAgIHJlbmRlclN0YXRlLnN0eWxlc1RvSG9pc3QgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGRlc3RpbmF0aW9uSGFzQ2FwYWNpdHk7XG59XG5cbmZ1bmN0aW9uIGZsdXNoUmVzb3VyY2UocmVzb3VyY2UpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvdXJjZS5sZW5ndGg7IGkrKykge1xuICAgIHdyaXRlQ2h1bmsodGhpcywgcmVzb3VyY2VbaV0pO1xuICB9XG5cbiAgcmVzb3VyY2UubGVuZ3RoID0gMDtcbn1cblxudmFyIHN0eWxlc2hlZXRGbHVzaGluZ1F1ZXVlID0gW107XG5cbmZ1bmN0aW9uIGZsdXNoU3R5bGVJblByZWFtYmxlKHN0eWxlc2hlZXQsIGtleSwgbWFwKSB7XG4gIC8vIFdlIHN0aWxsIG5lZWQgdG8gZW5jb2RlIHN0eWxlc2hlZXQgY2h1bmtzXG4gIC8vIGJlY2F1c2UgdW5saWtlIG1vc3QgSG9pc3RhYmxlcyBhbmQgUmVzb3VyY2VzIHdlIGRvIG5vdCBlYWdlcmx5IGVuY29kZVxuICAvLyB0aGVtIGR1cmluZyByZW5kZXIuIFRoaXMgaXMgYmVjYXVzZSBpZiB3ZSBmbHVzaCBsYXRlIHdlIGhhdmUgdG8gc2VuZCBhXG4gIC8vIGRpZmZlcmVudCBlbmNvZGluZyBhbmQgd2UgZG9uJ3Qgd2FudCB0byBlbmNvZGUgbXVsdGlwbGUgdGltZXNcbiAgcHVzaExpbmtJbXBsKHN0eWxlc2hlZXRGbHVzaGluZ1F1ZXVlLCBzdHlsZXNoZWV0LnByb3BzKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc2hlZXRGbHVzaGluZ1F1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgd3JpdGVDaHVuayh0aGlzLCBzdHlsZXNoZWV0Rmx1c2hpbmdRdWV1ZVtpXSk7XG4gIH1cblxuICBzdHlsZXNoZWV0Rmx1c2hpbmdRdWV1ZS5sZW5ndGggPSAwO1xuICBzdHlsZXNoZWV0LnN0YXRlID0gUFJFQU1CTEU7XG59XG5cbnZhciBzdHlsZVRhZ1Jlc291cmNlT3BlbjEgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzxzdHlsZSBkYXRhLXByZWNlZGVuY2U9XCInKTtcbnZhciBzdHlsZVRhZ1Jlc291cmNlT3BlbjIgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1wiIGRhdGEtaHJlZj1cIicpO1xudmFyIHNwYWNlU2VwYXJhdG9yID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCcgJyk7XG52YXIgc3R5bGVUYWdSZXNvdXJjZU9wZW4zID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCdcIj4nKTtcbnZhciBzdHlsZVRhZ1Jlc291cmNlQ2xvc2UgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJzwvc3R5bGU+Jyk7XG5cbmZ1bmN0aW9uIGZsdXNoU3R5bGVzSW5QcmVhbWJsZShzdHlsZVF1ZXVlLCBwcmVjZWRlbmNlKSB7XG4gIHZhciBoYXNTdHlsZXNoZWV0cyA9IHN0eWxlUXVldWUuc2hlZXRzLnNpemUgPiAwO1xuICBzdHlsZVF1ZXVlLnNoZWV0cy5mb3JFYWNoKGZsdXNoU3R5bGVJblByZWFtYmxlLCB0aGlzKTtcbiAgc3R5bGVRdWV1ZS5zaGVldHMuY2xlYXIoKTtcbiAgdmFyIHJ1bGVzID0gc3R5bGVRdWV1ZS5ydWxlcztcbiAgdmFyIGhyZWZzID0gc3R5bGVRdWV1ZS5ocmVmczsgLy8gSWYgd2UgZG9uJ3QgZW1pdCBhbnkgc3R5bGVzaGVldHMgYXQgdGhpcyBwcmVjZWRlbmNlIHdlIHN0aWxsIG5lZWQgdG8gbWFpbnRhaW4gdGhlIHByZWNlZGVuY2VcbiAgLy8gb3JkZXIgc28gZXZlbiBpZiB0aGVyZSBhcmUgbm8gcnVsZXMgZm9yIHN0eWxlIHRhZ3MgYXQgdGhpcyBwcmVjZWRlbmNlIHdlIGVtaXQgYW4gZW1wdHkgc3R5bGVcbiAgLy8gdGFnIHdpdGggdGhlIGRhdGEtcHJlY2VkZW5jZSBhdHRyaWJ1dGVcblxuICBpZiAoIWhhc1N0eWxlc2hlZXRzIHx8IGhyZWZzLmxlbmd0aCkge1xuICAgIHdyaXRlQ2h1bmsodGhpcywgc3R5bGVUYWdSZXNvdXJjZU9wZW4xKTtcbiAgICB3cml0ZUNodW5rKHRoaXMsIHN0eWxlUXVldWUucHJlY2VkZW5jZSk7XG4gICAgdmFyIGkgPSAwO1xuXG4gICAgaWYgKGhyZWZzLmxlbmd0aCkge1xuICAgICAgd3JpdGVDaHVuayh0aGlzLCBzdHlsZVRhZ1Jlc291cmNlT3BlbjIpO1xuXG4gICAgICBmb3IgKDsgaSA8IGhyZWZzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICB3cml0ZUNodW5rKHRoaXMsIGhyZWZzW2ldKTtcbiAgICAgICAgd3JpdGVDaHVuayh0aGlzLCBzcGFjZVNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIHdyaXRlQ2h1bmsodGhpcywgaHJlZnNbaV0pO1xuICAgIH1cblxuICAgIHdyaXRlQ2h1bmsodGhpcywgc3R5bGVUYWdSZXNvdXJjZU9wZW4zKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgd3JpdGVDaHVuayh0aGlzLCBydWxlc1tpXSk7XG4gICAgfVxuXG4gICAgd3JpdGVDaHVuayh0aGlzLCBzdHlsZVRhZ1Jlc291cmNlQ2xvc2UpOyAvLyBzdHlsZSByZXNvdXJjZXMgY2FuIGZsdXNoIGNvbnRpbnVvdXNseSBzaW5jZSBtb3JlIHJ1bGVzIG1heSBiZSB3cml0dGVuIGludG9cbiAgICAvLyB0aGVtIHdpdGggbmV3IGhyZWZzLiBJbnN0ZWFkIG9mIG1hcmtpbmcgaXQgZmx1c2hlZCwgd2Ugc2ltcGx5IHJlc2V0IHRoZSBjaHVua3NcbiAgICAvLyBhbmQgaHJlZnNcblxuICAgIHJ1bGVzLmxlbmd0aCA9IDA7XG4gICAgaHJlZnMubGVuZ3RoID0gMDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmVsb2FkTGF0ZVN0eWxlKHN0eWxlc2hlZXQpIHtcbiAgaWYgKHN0eWxlc2hlZXQuc3RhdGUgPT09IFBFTkRJTkckMSkge1xuICAgIHN0eWxlc2hlZXQuc3RhdGUgPSBQUkVMT0FERUQ7XG4gICAgdmFyIHByZWxvYWRQcm9wcyA9IHByZWxvYWRBc1N0eWxlUHJvcHNGcm9tUHJvcHMoc3R5bGVzaGVldC5wcm9wcy5ocmVmLCBzdHlsZXNoZWV0LnByb3BzKTtcbiAgICBwdXNoTGlua0ltcGwoc3R5bGVzaGVldEZsdXNoaW5nUXVldWUsIHByZWxvYWRQcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc2hlZXRGbHVzaGluZ1F1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICB3cml0ZUNodW5rKHRoaXMsIHN0eWxlc2hlZXRGbHVzaGluZ1F1ZXVlW2ldKTtcbiAgICB9XG5cbiAgICBzdHlsZXNoZWV0Rmx1c2hpbmdRdWV1ZS5sZW5ndGggPSAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByZWxvYWRMYXRlU3R5bGVzKHN0eWxlUXVldWUpIHtcbiAgc3R5bGVRdWV1ZS5zaGVldHMuZm9yRWFjaChwcmVsb2FkTGF0ZVN0eWxlLCB0aGlzKTtcbiAgc3R5bGVRdWV1ZS5zaGVldHMuY2xlYXIoKTtcbn0gLy8gV2UgZG9uJ3QgYm90aGVyIHJlcG9ydGluZyBiYWNrcHJlc3N1cmUgYXQgdGhlIG1vbWVudCBiZWNhdXNlIHdlIGV4cGVjdCB0b1xuLy8gZmx1c2ggdGhlIGVudGlyZSBwcmVhbWJsZSBpbiBhIHNpbmdsZSBwYXNzLiBUaGlzIHByb2JhYmx5IHNob3VsZCBiZSBtb2RpZmllZFxuLy8gaW4gdGhlIGZ1dHVyZSB0byBiZSBiYWNrcHJlc3N1cmUgc2Vuc2l0aXZlIGJ1dCB0aGF0IHJlcXVpcmVzIGEgbGFyZ2VyIHJlZmFjdG9yXG4vLyBvZiB0aGUgZmx1c2hpbmcgY29kZSBpbiBGaXp6LlxuXG5cbmZ1bmN0aW9uIHdyaXRlUHJlYW1ibGUoZGVzdGluYXRpb24sIHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSwgd2lsbEZsdXNoQWxsU2VnbWVudHMpIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2Ugb24gZXZlcnkgcmVxdWVzdFxuICBpZiAoIXdpbGxGbHVzaEFsbFNlZ21lbnRzICYmIHJlbmRlclN0YXRlLmV4dGVybmFsUnVudGltZVNjcmlwdCkge1xuICAgIC8vIElmIHRoZSByb290IHNlZ21lbnQgaXMgaW5jb21wbGV0ZSBkdWUgdG8gc3VzcGVuZGVkIHRhc2tzXG4gICAgLy8gKGUuZy4gd2lsbEZsdXNoQWxsU2VnbWVudHMgPSBmYWxzZSkgYW5kIHdlIGFyZSB1c2luZyBkYXRhXG4gICAgLy8gc3RyZWFtaW5nIGZvcm1hdCwgZW5zdXJlIHRoZSBleHRlcm5hbCBydW50aW1lIGlzIHNlbnQuXG4gICAgLy8gKFVzZXIgY29kZSBjb3VsZCBjaG9vc2UgdG8gc2VuZCB0aGlzIGV2ZW4gZWFybGllciBieSBjYWxsaW5nXG4gICAgLy8gIHByZWluaXQoLi4uKSwgaWYgdGhleSBrbm93IHRoZXkgd2lsbCBzdXNwZW5kKS5cbiAgICB2YXIgX3JlbmRlclN0YXRlJGV4dGVybmFsID0gcmVuZGVyU3RhdGUuZXh0ZXJuYWxSdW50aW1lU2NyaXB0LFxuICAgICAgICBzcmMgPSBfcmVuZGVyU3RhdGUkZXh0ZXJuYWwuc3JjLFxuICAgICAgICBjaHVua3MgPSBfcmVuZGVyU3RhdGUkZXh0ZXJuYWwuY2h1bmtzO1xuICAgIGludGVybmFsUHJlaW5pdFNjcmlwdChyZXN1bWFibGVTdGF0ZSwgcmVuZGVyU3RhdGUsIHNyYywgY2h1bmtzKTtcbiAgfVxuXG4gIHZhciBodG1sQ2h1bmtzID0gcmVuZGVyU3RhdGUuaHRtbENodW5rcztcbiAgdmFyIGhlYWRDaHVua3MgPSByZW5kZXJTdGF0ZS5oZWFkQ2h1bmtzO1xuICB2YXIgaSA9IDA7IC8vIEVtaXQgb3BlbiB0YWdzIGJlZm9yZSBIb2lzdGFibGVzIGFuZCBSZXNvdXJjZXNcblxuICBpZiAoaHRtbENodW5rcykge1xuICAgIC8vIFdlIGhhdmUgYW4gPGh0bWw+IHRvIGVtaXQgYXMgcGFydCBvZiB0aGUgcHJlYW1ibGVcbiAgICBmb3IgKGkgPSAwOyBpIDwgaHRtbENodW5rcy5sZW5ndGg7IGkrKykge1xuICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgaHRtbENodW5rc1tpXSk7XG4gICAgfVxuXG4gICAgaWYgKGhlYWRDaHVua3MpIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBoZWFkQ2h1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGhlYWRDaHVua3NbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSBkaWQgbm90IHJlbmRlciBhIGhlYWQgYnV0IHdlIGVtaXR0ZWQgYW4gPGh0bWw+IHNvIHdlIGVtaXQgb25lIG5vd1xuICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RhcnRDaHVua0ZvclRhZygnaGVhZCcpKTtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGVuZE9mU3RhcnRUYWcpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChoZWFkQ2h1bmtzKSB7XG4gICAgLy8gV2UgZG8gbm90IGhhdmUgYW4gPGh0bWw+IGJ1dCB3ZSBkbyBoYXZlIGEgPGhlYWQ+XG4gICAgZm9yIChpID0gMDsgaSA8IGhlYWRDaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGhlYWRDaHVua3NbaV0pO1xuICAgIH1cbiAgfSAvLyBFbWl0IGhpZ2ggcHJpb3JpdHkgSG9pc3RhYmxlc1xuXG5cbiAgdmFyIGNoYXJzZXRDaHVua3MgPSByZW5kZXJTdGF0ZS5jaGFyc2V0Q2h1bmtzO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBjaGFyc2V0Q2h1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgY2hhcnNldENodW5rc1tpXSk7XG4gIH1cblxuICBjaGFyc2V0Q2h1bmtzLmxlbmd0aCA9IDA7IC8vIGVtaXQgcHJlY29ubmVjdCByZXNvdXJjZXNcblxuICByZW5kZXJTdGF0ZS5wcmVjb25uZWN0cy5mb3JFYWNoKGZsdXNoUmVzb3VyY2UsIGRlc3RpbmF0aW9uKTtcbiAgcmVuZGVyU3RhdGUucHJlY29ubmVjdHMuY2xlYXIoKTtcbiAgdmFyIHByZWNvbm5lY3RDaHVua3MgPSByZW5kZXJTdGF0ZS5wcmVjb25uZWN0Q2h1bmtzO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBwcmVjb25uZWN0Q2h1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgcHJlY29ubmVjdENodW5rc1tpXSk7XG4gIH1cblxuICBwcmVjb25uZWN0Q2h1bmtzLmxlbmd0aCA9IDA7XG4gIHJlbmRlclN0YXRlLmZvbnRQcmVsb2Fkcy5mb3JFYWNoKGZsdXNoUmVzb3VyY2UsIGRlc3RpbmF0aW9uKTtcbiAgcmVuZGVyU3RhdGUuZm9udFByZWxvYWRzLmNsZWFyKCk7XG4gIHJlbmRlclN0YXRlLmhpZ2hJbWFnZVByZWxvYWRzLmZvckVhY2goZmx1c2hSZXNvdXJjZSwgZGVzdGluYXRpb24pO1xuICByZW5kZXJTdGF0ZS5oaWdoSW1hZ2VQcmVsb2Fkcy5jbGVhcigpOyAvLyBGbHVzaCB1bmJsb2NrZWQgc3R5bGVzaGVldHMgYnkgcHJlY2VkZW5jZVxuXG4gIHJlbmRlclN0YXRlLnN0eWxlcy5mb3JFYWNoKGZsdXNoU3R5bGVzSW5QcmVhbWJsZSwgZGVzdGluYXRpb24pO1xuICB2YXIgaW1wb3J0TWFwQ2h1bmtzID0gcmVuZGVyU3RhdGUuaW1wb3J0TWFwQ2h1bmtzO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBpbXBvcnRNYXBDaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBpbXBvcnRNYXBDaHVua3NbaV0pO1xuICB9XG5cbiAgaW1wb3J0TWFwQ2h1bmtzLmxlbmd0aCA9IDA7XG4gIHJlbmRlclN0YXRlLmJvb3RzdHJhcFNjcmlwdHMuZm9yRWFjaChmbHVzaFJlc291cmNlLCBkZXN0aW5hdGlvbik7XG4gIHJlbmRlclN0YXRlLnNjcmlwdHMuZm9yRWFjaChmbHVzaFJlc291cmNlLCBkZXN0aW5hdGlvbik7XG4gIHJlbmRlclN0YXRlLnNjcmlwdHMuY2xlYXIoKTtcbiAgcmVuZGVyU3RhdGUuYnVsa1ByZWxvYWRzLmZvckVhY2goZmx1c2hSZXNvdXJjZSwgZGVzdGluYXRpb24pO1xuICByZW5kZXJTdGF0ZS5idWxrUHJlbG9hZHMuY2xlYXIoKTsgLy8gV3JpdGUgZW1iZWRkaW5nIHByZWxvYWRDaHVua3NcblxuICB2YXIgcHJlbG9hZENodW5rcyA9IHJlbmRlclN0YXRlLnByZWxvYWRDaHVua3M7XG5cbiAgZm9yIChpID0gMDsgaSA8IHByZWxvYWRDaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBwcmVsb2FkQ2h1bmtzW2ldKTtcbiAgfVxuXG4gIHByZWxvYWRDaHVua3MubGVuZ3RoID0gMDsgLy8gV3JpdGUgZW1iZWRkaW5nIGhvaXN0YWJsZUNodW5rc1xuXG4gIHZhciBob2lzdGFibGVDaHVua3MgPSByZW5kZXJTdGF0ZS5ob2lzdGFibGVDaHVua3M7XG5cbiAgZm9yIChpID0gMDsgaSA8IGhvaXN0YWJsZUNodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGhvaXN0YWJsZUNodW5rc1tpXSk7XG4gIH1cblxuICBob2lzdGFibGVDaHVua3MubGVuZ3RoID0gMDsgLy8gRmx1c2ggY2xvc2luZyBoZWFkIGlmIG5lY2Vzc2FyeVxuXG4gIGlmIChodG1sQ2h1bmtzICYmIGhlYWRDaHVua3MgPT09IG51bGwpIHtcbiAgICAvLyBXZSBoYXZlIGFuIDxodG1sPiByZW5kZXJlZCBidXQgbm8gPGhlYWQ+IHJlbmRlcmVkLiBXZSBob3dldmVyIGluc2VydGVkXG4gICAgLy8gYSA8aGVhZD4gdXAgYWJvdmUgc28gd2UgbmVlZCB0byBlbWl0IHRoZSA8L2hlYWQ+IG5vdy4gVGhpcyBpcyBzYWZlIGJlY2F1c2VcbiAgICAvLyBpZiB0aGUgbWFpbiBjb250ZW50IGNvbnRhaW5lZCB0aGUgPC9oZWFkPiBpdCB3b3VsZCBhbHNvIGhhdmUgcHJvdmlkZWQgYVxuICAgIC8vIDxoZWFkPi4gVGhpcyBtZWFucyB0aGF0IGFsbCB0aGUgY29udGVudCBpbnNpZGUgPGh0bWw+IGlzIGVpdGhlciA8Ym9keT4gb3JcbiAgICAvLyBpbnZhbGlkIEhUTUxcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBlbmRDaHVua0ZvclRhZygnaGVhZCcpKTtcbiAgfVxufSAvLyBXZSBkb24ndCBib3RoZXIgcmVwb3J0aW5nIGJhY2twcmVzc3VyZSBhdCB0aGUgbW9tZW50IGJlY2F1c2Ugd2UgZXhwZWN0IHRvXG4vLyBmbHVzaCB0aGUgZW50aXJlIHByZWFtYmxlIGluIGEgc2luZ2xlIHBhc3MuIFRoaXMgcHJvYmFibHkgc2hvdWxkIGJlIG1vZGlmaWVkXG4vLyBpbiB0aGUgZnV0dXJlIHRvIGJlIGJhY2twcmVzc3VyZSBzZW5zaXRpdmUgYnV0IHRoYXQgcmVxdWlyZXMgYSBsYXJnZXIgcmVmYWN0b3Jcbi8vIG9mIHRoZSBmbHVzaGluZyBjb2RlIGluIEZpenouXG5cbmZ1bmN0aW9uIHdyaXRlSG9pc3RhYmxlcyhkZXN0aW5hdGlvbiwgcmVzdW1hYmxlU3RhdGUsIHJlbmRlclN0YXRlKSB7XG4gIHZhciBpID0gMDsgLy8gRW1pdCBoaWdoIHByaW9yaXR5IEhvaXN0YWJsZXNcbiAgLy8gV2Ugb21pdCBjaGFyc2V0Q2h1bmtzIGJlY2F1c2Ugd2UgaGF2ZSBhbHJlYWR5IHNlbnQgdGhlIHNoZWxsIGFuZCBpZiBpdCB3YXNuJ3RcbiAgLy8gYWxyZWFkeSBzZW50IGl0IGlzIHRvbyBsYXRlIG5vdy5cblxuICByZW5kZXJTdGF0ZS5wcmVjb25uZWN0cy5mb3JFYWNoKGZsdXNoUmVzb3VyY2UsIGRlc3RpbmF0aW9uKTtcbiAgcmVuZGVyU3RhdGUucHJlY29ubmVjdHMuY2xlYXIoKTtcbiAgdmFyIHByZWNvbm5lY3RDaHVua3MgPSByZW5kZXJTdGF0ZS5wcmVjb25uZWN0Q2h1bmtzO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBwcmVjb25uZWN0Q2h1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgcHJlY29ubmVjdENodW5rc1tpXSk7XG4gIH1cblxuICBwcmVjb25uZWN0Q2h1bmtzLmxlbmd0aCA9IDA7XG4gIHJlbmRlclN0YXRlLmZvbnRQcmVsb2Fkcy5mb3JFYWNoKGZsdXNoUmVzb3VyY2UsIGRlc3RpbmF0aW9uKTtcbiAgcmVuZGVyU3RhdGUuZm9udFByZWxvYWRzLmNsZWFyKCk7XG4gIHJlbmRlclN0YXRlLmhpZ2hJbWFnZVByZWxvYWRzLmZvckVhY2goZmx1c2hSZXNvdXJjZSwgZGVzdGluYXRpb24pO1xuICByZW5kZXJTdGF0ZS5oaWdoSW1hZ2VQcmVsb2Fkcy5jbGVhcigpOyAvLyBQcmVsb2FkIGFueSBzdHlsZXNoZWV0cy4gdGhlc2Ugd2lsbCBlbWl0IGluIGEgcmVuZGVyIGluc3RydWN0aW9uIHRoYXQgZm9sbG93cyB0aGlzXG4gIC8vIGJ1dCB3ZSB3YW50IHRvIGtpY2sgb2ZmIHByZWxvYWRpbmcgYXMgc29vbiBhcyBwb3NzaWJsZVxuXG4gIHJlbmRlclN0YXRlLnN0eWxlcy5mb3JFYWNoKHByZWxvYWRMYXRlU3R5bGVzLCBkZXN0aW5hdGlvbik7IC8vIFdlIG9ubHkgaG9pc3QgaW1wb3J0bWFwcyB0aGF0IGFyZSBjb25maWd1cmVkIHRocm91Z2ggY3JlYXRlUmVzcG9uc2UgYW5kIHRoYXQgd2lsbFxuICAvLyBhbHdheXMgZmx1c2ggaW4gdGhlIHByZWFtYmxlLiBHZW5lcmFsbHkgd2UgZG9uJ3QgZXhwZWN0IHBlb3BsZSB0byByZW5kZXIgdGhlbSBhc1xuICAvLyB0YWdzIHdoZW4gdXNpbmcgUmVhY3QgYnV0IGlmIHlvdSBkbyB0aGV5IGFyZSBnb2luZyB0byBiZSB0cmVhdGVkIGxpa2UgcmVndWxhciBpbmxpbmVcbiAgLy8gc2NyaXB0cyBhbmQgZmx1c2ggYWZ0ZXIgb3RoZXIgaG9pc3RhYmxlcyB3aGljaCBpcyBwcm9ibGVtYXRpY1xuICAvLyBib290c3RyYXAgc2NyaXB0cyBzaG91bGQgZmx1c2ggYWJvdmUgc2NyaXB0IHByaW9yaXR5IGJ1dCB0aGVzZSBjYW4gb25seSBmbHVzaCBpbiB0aGUgcHJlYW1ibGVcbiAgLy8gc28gd2UgZWxpZGUgdGhlIGNvZGUgaGVyZSBmb3IgcGVyZm9ybWFuY2VcblxuICByZW5kZXJTdGF0ZS5zY3JpcHRzLmZvckVhY2goZmx1c2hSZXNvdXJjZSwgZGVzdGluYXRpb24pO1xuICByZW5kZXJTdGF0ZS5zY3JpcHRzLmNsZWFyKCk7XG4gIHJlbmRlclN0YXRlLmJ1bGtQcmVsb2Fkcy5mb3JFYWNoKGZsdXNoUmVzb3VyY2UsIGRlc3RpbmF0aW9uKTtcbiAgcmVuZGVyU3RhdGUuYnVsa1ByZWxvYWRzLmNsZWFyKCk7IC8vIFdyaXRlIGVtYmVkZGluZyBwcmVsb2FkQ2h1bmtzXG5cbiAgdmFyIHByZWxvYWRDaHVua3MgPSByZW5kZXJTdGF0ZS5wcmVsb2FkQ2h1bmtzO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBwcmVsb2FkQ2h1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgcHJlbG9hZENodW5rc1tpXSk7XG4gIH1cblxuICBwcmVsb2FkQ2h1bmtzLmxlbmd0aCA9IDA7IC8vIFdyaXRlIGVtYmVkZGluZyBob2lzdGFibGVDaHVua3NcblxuICB2YXIgaG9pc3RhYmxlQ2h1bmtzID0gcmVuZGVyU3RhdGUuaG9pc3RhYmxlQ2h1bmtzO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBob2lzdGFibGVDaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBob2lzdGFibGVDaHVua3NbaV0pO1xuICB9XG5cbiAgaG9pc3RhYmxlQ2h1bmtzLmxlbmd0aCA9IDA7XG59XG5mdW5jdGlvbiB3cml0ZVBvc3RhbWJsZShkZXN0aW5hdGlvbiwgcmVzdW1hYmxlU3RhdGUpIHtcbiAgaWYgKHJlc3VtYWJsZVN0YXRlLmhhc0JvZHkpIHtcbiAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBlbmRDaHVua0ZvclRhZygnYm9keScpKTtcbiAgfVxuXG4gIGlmIChyZXN1bWFibGVTdGF0ZS5oYXNIdG1sKSB7XG4gICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgZW5kQ2h1bmtGb3JUYWcoJ2h0bWwnKSk7XG4gIH1cbn1cbnZhciBhcnJheUZpcnN0T3BlbkJyYWNrZXQgPSBzdHJpbmdUb1ByZWNvbXB1dGVkQ2h1bmsoJ1snKTtcbnZhciBhcnJheVN1YnNlcXVlbnRPcGVuQnJhY2tldCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnLFsnKTtcbnZhciBhcnJheUludGVyc3RpdGlhbCA9IHN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuaygnLCcpO1xudmFyIGFycmF5Q2xvc2VCcmFja2V0ID0gc3RyaW5nVG9QcmVjb21wdXRlZENodW5rKCddJyk7IC8vIFRoaXMgZnVuY3Rpb24gd3JpdGVzIGEgMkQgYXJyYXkgb2Ygc3RyaW5ncyB0byBiZSBlbWJlZGRlZCBpbiBqYXZhc2NyaXB0LlxuLy8gRS5nLlxuLy8gIFtbXCJKU19lc2NhcGVkX3N0cmluZzFcIiwgXCJKU19lc2NhcGVkX3N0cmluZzJcIl1dXG5cbmZ1bmN0aW9uIHdyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY2llc0luSlMoZGVzdGluYXRpb24sIGJvdW5kYXJ5UmVzb3VyY2VzKSB7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGFycmF5Rmlyc3RPcGVuQnJhY2tldCk7XG4gIHZhciBuZXh0QXJyYXlPcGVuQnJhY2tDaHVuayA9IGFycmF5Rmlyc3RPcGVuQnJhY2tldDtcbiAgYm91bmRhcnlSZXNvdXJjZXMuc3R5bGVzaGVldHMuZm9yRWFjaChmdW5jdGlvbiAocmVzb3VyY2UpIHtcbiAgICBpZiAocmVzb3VyY2Uuc3RhdGUgPT09IFBSRUFNQkxFKSA7IGVsc2UgaWYgKHJlc291cmNlLnN0YXRlID09PSBMQVRFKSB7XG4gICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gZW1pdCB0aGUgaHJlZiBiZWNhdXNlIHRoaXMgcmVzb3VyY2UgZmx1c2hlZCBpbiBhbiBlYXJsaWVyXG4gICAgICAvLyBib3VuZGFyeSBhbHJlYWR5IHdoaWNoIGVuY29kZWQgdGhlIGF0dHJpYnV0ZXMgbmVjZXNzYXJ5IHRvIGNvbnN0cnVjdFxuICAgICAgLy8gdGhlIHJlc291cmNlIGluc3RhbmNlIG9uIHRoZSBjbGllbnQuXG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBuZXh0QXJyYXlPcGVuQnJhY2tDaHVuayk7XG4gICAgICB3cml0ZVN0eWxlUmVzb3VyY2VEZXBlbmRlbmN5SHJlZk9ubHlJbkpTKGRlc3RpbmF0aW9uLCByZXNvdXJjZS5wcm9wcy5ocmVmKTtcbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGFycmF5Q2xvc2VCcmFja2V0KTtcbiAgICAgIG5leHRBcnJheU9wZW5CcmFja0NodW5rID0gYXJyYXlTdWJzZXF1ZW50T3BlbkJyYWNrZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gZW1pdCB0aGUgd2hvbGUgcmVzb3VyY2UgZm9yIGluc2VydGlvbiBvbiB0aGUgY2xpZW50XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBuZXh0QXJyYXlPcGVuQnJhY2tDaHVuayk7XG4gICAgICB3cml0ZVN0eWxlUmVzb3VyY2VEZXBlbmRlbmN5SW5KUyhkZXN0aW5hdGlvbiwgcmVzb3VyY2UucHJvcHMuaHJlZiwgcmVzb3VyY2UucHJvcHNbJ2RhdGEtcHJlY2VkZW5jZSddLCByZXNvdXJjZS5wcm9wcyk7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBhcnJheUNsb3NlQnJhY2tldCk7XG4gICAgICBuZXh0QXJyYXlPcGVuQnJhY2tDaHVuayA9IGFycmF5U3Vic2VxdWVudE9wZW5CcmFja2V0O1xuICAgICAgcmVzb3VyY2Uuc3RhdGUgPSBMQVRFO1xuICAgIH1cbiAgfSk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGFycmF5Q2xvc2VCcmFja2V0KTtcbn1cbi8qIEhlbHBlciBmdW5jdGlvbnMgKi9cblxuXG5mdW5jdGlvbiB3cml0ZVN0eWxlUmVzb3VyY2VEZXBlbmRlbmN5SHJlZk9ubHlJbkpTKGRlc3RpbmF0aW9uLCBocmVmKSB7XG4gIC8vIFdlIHNob3VsZCBhY3R1YWxseSBlbmZvcmNlIHRoaXMgZWFybGllciB3aGVuIHRoZSByZXNvdXJjZSBpcyBjcmVhdGVkIGJ1dCBmb3JcbiAgLy8gbm93IHdlIG1ha2Ugc3VyZSB3ZSBhcmUgYWN0dWFsbHkgZGVhbGluZyB3aXRoIGEgc3RyaW5nIGhlcmUuXG4gIHtcbiAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGhyZWYsICdocmVmJyk7XG4gIH1cblxuICB2YXIgY29lcmNlZEhyZWYgPSAnJyArIGhyZWY7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlSlNPYmplY3RGb3JJbnN0cnVjdGlvblNjcmlwdHMoY29lcmNlZEhyZWYpKSk7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY3lJbkpTKGRlc3RpbmF0aW9uLCBocmVmLCBwcmVjZWRlbmNlLCBwcm9wcykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgdmFyIGNvZXJjZWRIcmVmID0gc2FuaXRpemVVUkwoJycgKyBocmVmKTtcbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RyaW5nVG9DaHVuayhlc2NhcGVKU09iamVjdEZvckluc3RydWN0aW9uU2NyaXB0cyhjb2VyY2VkSHJlZikpKTtcblxuICB7XG4gICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihwcmVjZWRlbmNlLCAncHJlY2VkZW5jZScpO1xuICB9XG5cbiAgdmFyIGNvZXJjZWRQcmVjZWRlbmNlID0gJycgKyBwcmVjZWRlbmNlO1xuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBhcnJheUludGVyc3RpdGlhbCk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlSlNPYmplY3RGb3JJbnN0cnVjdGlvblNjcmlwdHMoY29lcmNlZFByZWNlZGVuY2UpKSk7XG5cbiAgZm9yICh2YXIgcHJvcEtleSBpbiBwcm9wcykge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBwcm9wS2V5KSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuXG4gICAgICBpZiAocHJvcFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICBjYXNlICdocmVmJzpcbiAgICAgICAgY2FzZSAncmVsJzpcbiAgICAgICAgY2FzZSAncHJlY2VkZW5jZSc6XG4gICAgICAgIGNhc2UgJ2RhdGEtcHJlY2VkZW5jZSc6XG4gICAgICAgICAge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ2NoaWxkcmVuJzpcbiAgICAgICAgY2FzZSAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnOlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbGluaycgKyBcIiBpcyBhIHNlbGYtY2xvc2luZyB0YWcgYW5kIG11c3QgbmVpdGhlciBoYXZlIGBjaGlsZHJlbmAgbm9yIFwiICsgJ3VzZSBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLicpO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgd3JpdGVTdHlsZVJlc291cmNlQXR0cmlidXRlSW5KUyhkZXN0aW5hdGlvbiwgcHJvcEtleSwgcHJvcFZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gd3JpdGVTdHlsZVJlc291cmNlQXR0cmlidXRlSW5KUyhkZXN0aW5hdGlvbiwgbmFtZSwgdmFsdWUpIC8vIG5vdCBudWxsIG9yIHVuZGVmaW5lZFxue1xuICB2YXIgYXR0cmlidXRlTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgdmFyIGF0dHJpYnV0ZVZhbHVlO1xuXG4gIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICByZXR1cm47XG4gIH1cblxuICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAvLyBSZXNlcnZlZCBuYW1lc1xuICAgIGNhc2UgJ2lubmVySFRNTCc6XG4gICAgY2FzZSAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnOlxuICAgIGNhc2UgJ3N1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyc6XG4gICAgY2FzZSAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJzpcbiAgICBjYXNlICdzdHlsZSc6XG4gICAgICAvLyBJZ25vcmVkXG4gICAgICByZXR1cm47XG4gICAgLy8gQXR0cmlidXRlIHJlbmFtZXNcblxuICAgIGNhc2UgJ2NsYXNzTmFtZSc6XG4gICAgICB7XG4gICAgICAgIGF0dHJpYnV0ZU5hbWUgPSAnY2xhc3MnO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgLy8gQm9vbGVhbnNcblxuICAgIGNhc2UgJ2hpZGRlbic6XG4gICAgICB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9ICcnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAvLyBTYW50aXplZCBVUkxzXG5cbiAgICBjYXNlICdzcmMnOlxuICAgIGNhc2UgJ2hyZWYnOlxuICAgICAge1xuICAgICAgICB2YWx1ZSA9IHNhbml0aXplVVJMKHZhbHVlKTtcblxuICAgICAgICB7XG4gICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgYXR0cmlidXRlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAgaWYgKCAvLyB1bnJlY29nbml6ZWQgZXZlbnQgaGFuZGxlcnMgYXJlIG5vdCBTU1InZCBhbmQgd2UgKGFwcGFyZW50bHkpXG4gICAgICAgIC8vIHVzZSBvbiogYXMgaHVlcmlzdGljIGZvciB0aGVzZSBoYW5kbGVyIHByb3BzXG4gICAgICAgIG5hbWUubGVuZ3RoID4gMiAmJiAobmFtZVswXSA9PT0gJ28nIHx8IG5hbWVbMF0gPT09ICdPJykgJiYgKG5hbWVbMV0gPT09ICduJyB8fCBuYW1lWzFdID09PSAnTicpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0F0dHJpYnV0ZU5hbWVTYWZlKG5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXR0cmlidXRlVmFsdWUgPSAnJyArIHZhbHVlO1xuICAgICAgfVxuICB9XG5cbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgYXJyYXlJbnRlcnN0aXRpYWwpO1xuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdHJpbmdUb0NodW5rKGVzY2FwZUpTT2JqZWN0Rm9ySW5zdHJ1Y3Rpb25TY3JpcHRzKGF0dHJpYnV0ZU5hbWUpKSk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGFycmF5SW50ZXJzdGl0aWFsKTtcbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RyaW5nVG9DaHVuayhlc2NhcGVKU09iamVjdEZvckluc3RydWN0aW9uU2NyaXB0cyhhdHRyaWJ1dGVWYWx1ZSkpKTtcbn0gLy8gVGhpcyBmdW5jdGlvbiB3cml0ZXMgYSAyRCBhcnJheSBvZiBzdHJpbmdzIHRvIGJlIGVtYmVkZGVkIGluIGFuIGF0dHJpYnV0ZVxuLy8gdmFsdWUgYW5kIHJlYWQgd2l0aCBKU09OLnBhcnNlIGluIFJlYWN0RE9NU2VydmVyRXh0ZXJuYWxSdW50aW1lLmpzXG4vLyBFLmcuXG4vLyAgW1smcXVvdDtKU09OX2VzY2FwZWRfc3RyaW5nMSZxdW90OywgJnF1b3Q7SlNPTl9lc2NhcGVkX3N0cmluZzImcXVvdDtdXVxuXG5cbmZ1bmN0aW9uIHdyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY2llc0luQXR0cihkZXN0aW5hdGlvbiwgYm91bmRhcnlSZXNvdXJjZXMpIHtcbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgYXJyYXlGaXJzdE9wZW5CcmFja2V0KTtcbiAgdmFyIG5leHRBcnJheU9wZW5CcmFja0NodW5rID0gYXJyYXlGaXJzdE9wZW5CcmFja2V0O1xuICBib3VuZGFyeVJlc291cmNlcy5zdHlsZXNoZWV0cy5mb3JFYWNoKGZ1bmN0aW9uIChyZXNvdXJjZSkge1xuICAgIGlmIChyZXNvdXJjZS5zdGF0ZSA9PT0gUFJFQU1CTEUpIDsgZWxzZSBpZiAocmVzb3VyY2Uuc3RhdGUgPT09IExBVEUpIHtcbiAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBlbWl0IHRoZSBocmVmIGJlY2F1c2UgdGhpcyByZXNvdXJjZSBmbHVzaGVkIGluIGFuIGVhcmxpZXJcbiAgICAgIC8vIGJvdW5kYXJ5IGFscmVhZHkgd2hpY2ggZW5jb2RlZCB0aGUgYXR0cmlidXRlcyBuZWNlc3NhcnkgdG8gY29uc3RydWN0XG4gICAgICAvLyB0aGUgcmVzb3VyY2UgaW5zdGFuY2Ugb24gdGhlIGNsaWVudC5cbiAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIG5leHRBcnJheU9wZW5CcmFja0NodW5rKTtcbiAgICAgIHdyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY3lIcmVmT25seUluQXR0cihkZXN0aW5hdGlvbiwgcmVzb3VyY2UucHJvcHMuaHJlZik7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBhcnJheUNsb3NlQnJhY2tldCk7XG4gICAgICBuZXh0QXJyYXlPcGVuQnJhY2tDaHVuayA9IGFycmF5U3Vic2VxdWVudE9wZW5CcmFja2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIGVtaXQgdGhlIHdob2xlIHJlc291cmNlIGZvciBpbnNlcnRpb24gb24gdGhlIGNsaWVudFxuICAgICAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgbmV4dEFycmF5T3BlbkJyYWNrQ2h1bmspO1xuICAgICAgd3JpdGVTdHlsZVJlc291cmNlRGVwZW5kZW5jeUluQXR0cihkZXN0aW5hdGlvbiwgcmVzb3VyY2UucHJvcHMuaHJlZiwgcmVzb3VyY2UucHJvcHNbJ2RhdGEtcHJlY2VkZW5jZSddLCByZXNvdXJjZS5wcm9wcyk7XG4gICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBhcnJheUNsb3NlQnJhY2tldCk7XG4gICAgICBuZXh0QXJyYXlPcGVuQnJhY2tDaHVuayA9IGFycmF5U3Vic2VxdWVudE9wZW5CcmFja2V0O1xuICAgICAgcmVzb3VyY2Uuc3RhdGUgPSBMQVRFO1xuICAgIH1cbiAgfSk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGFycmF5Q2xvc2VCcmFja2V0KTtcbn1cbi8qIEhlbHBlciBmdW5jdGlvbnMgKi9cblxuXG5mdW5jdGlvbiB3cml0ZVN0eWxlUmVzb3VyY2VEZXBlbmRlbmN5SHJlZk9ubHlJbkF0dHIoZGVzdGluYXRpb24sIGhyZWYpIHtcbiAgLy8gV2Ugc2hvdWxkIGFjdHVhbGx5IGVuZm9yY2UgdGhpcyBlYXJsaWVyIHdoZW4gdGhlIHJlc291cmNlIGlzIGNyZWF0ZWQgYnV0IGZvclxuICAvLyBub3cgd2UgbWFrZSBzdXJlIHdlIGFyZSBhY3R1YWxseSBkZWFsaW5nIHdpdGggYSBzdHJpbmcgaGVyZS5cbiAge1xuICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24oaHJlZiwgJ2hyZWYnKTtcbiAgfVxuXG4gIHZhciBjb2VyY2VkSHJlZiA9ICcnICsgaHJlZjtcbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihKU09OLnN0cmluZ2lmeShjb2VyY2VkSHJlZikpKSk7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY3lJbkF0dHIoZGVzdGluYXRpb24sIGhyZWYsIHByZWNlZGVuY2UsIHByb3BzKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICB2YXIgY29lcmNlZEhyZWYgPSBzYW5pdGl6ZVVSTCgnJyArIGhyZWYpO1xuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBzdHJpbmdUb0NodW5rKGVzY2FwZVRleHRGb3JCcm93c2VyKEpTT04uc3RyaW5naWZ5KGNvZXJjZWRIcmVmKSkpKTtcblxuICB7XG4gICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihwcmVjZWRlbmNlLCAncHJlY2VkZW5jZScpO1xuICB9XG5cbiAgdmFyIGNvZXJjZWRQcmVjZWRlbmNlID0gJycgKyBwcmVjZWRlbmNlO1xuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBhcnJheUludGVyc3RpdGlhbCk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoSlNPTi5zdHJpbmdpZnkoY29lcmNlZFByZWNlZGVuY2UpKSkpO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgcHJvcEtleSkpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wS2V5XTtcblxuICAgICAgaWYgKHByb3BWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKHByb3BLZXkpIHtcbiAgICAgICAgY2FzZSAnaHJlZic6XG4gICAgICAgIGNhc2UgJ3JlbCc6XG4gICAgICAgIGNhc2UgJ3ByZWNlZGVuY2UnOlxuICAgICAgICBjYXNlICdkYXRhLXByZWNlZGVuY2UnOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlICdjaGlsZHJlbic6XG4gICAgICAgIGNhc2UgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJzpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xpbmsnICsgXCIgaXMgYSBzZWxmLWNsb3NpbmcgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciBcIiArICd1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHdyaXRlU3R5bGVSZXNvdXJjZUF0dHJpYnV0ZUluQXR0cihkZXN0aW5hdGlvbiwgcHJvcEtleSwgcHJvcFZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gd3JpdGVTdHlsZVJlc291cmNlQXR0cmlidXRlSW5BdHRyKGRlc3RpbmF0aW9uLCBuYW1lLCB2YWx1ZSkgLy8gbm90IG51bGwgb3IgdW5kZWZpbmVkXG57XG4gIHZhciBhdHRyaWJ1dGVOYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICB2YXIgYXR0cmlidXRlVmFsdWU7XG5cbiAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgIHJldHVybjtcbiAgfVxuXG4gIHN3aXRjaCAobmFtZSkge1xuICAgIC8vIFJlc2VydmVkIG5hbWVzXG4gICAgY2FzZSAnaW5uZXJIVE1MJzpcbiAgICBjYXNlICdkYW5nZXJvdXNseVNldElubmVySFRNTCc6XG4gICAgY2FzZSAnc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nJzpcbiAgICBjYXNlICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnOlxuICAgIGNhc2UgJ3N0eWxlJzpcbiAgICAgIC8vIElnbm9yZWRcbiAgICAgIHJldHVybjtcbiAgICAvLyBBdHRyaWJ1dGUgcmVuYW1lc1xuXG4gICAgY2FzZSAnY2xhc3NOYW1lJzpcbiAgICAgIHtcbiAgICAgICAgYXR0cmlidXRlTmFtZSA9ICdjbGFzcyc7XG5cbiAgICAgICAge1xuICAgICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXR0cmlidXRlVmFsdWUgPSAnJyArIHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAvLyBCb29sZWFuc1xuXG4gICAgY2FzZSAnaGlkZGVuJzpcbiAgICAgIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gJyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIC8vIFNhbnRpemVkIFVSTHNcblxuICAgIGNhc2UgJ3NyYyc6XG4gICAgY2FzZSAnaHJlZic6XG4gICAgICB7XG4gICAgICAgIHZhbHVlID0gc2FuaXRpemVVUkwodmFsdWUpO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICBpZiAoIC8vIHVucmVjb2duaXplZCBldmVudCBoYW5kbGVycyBhcmUgbm90IFNTUidkIGFuZCB3ZSAoYXBwYXJlbnRseSlcbiAgICAgICAgLy8gdXNlIG9uKiBhcyBodWVyaXN0aWMgZm9yIHRoZXNlIGhhbmRsZXIgcHJvcHNcbiAgICAgICAgbmFtZS5sZW5ndGggPiAyICYmIChuYW1lWzBdID09PSAnbycgfHwgbmFtZVswXSA9PT0gJ08nKSAmJiAobmFtZVsxXSA9PT0gJ24nIHx8IG5hbWVbMV0gPT09ICdOJykpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQXR0cmlidXRlTmFtZVNhZmUobmFtZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB7XG4gICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgYXR0cmlidXRlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgICB9XG4gIH1cblxuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBhcnJheUludGVyc3RpdGlhbCk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIHN0cmluZ1RvQ2h1bmsoZXNjYXBlVGV4dEZvckJyb3dzZXIoSlNPTi5zdHJpbmdpZnkoYXR0cmlidXRlTmFtZSkpKSk7XG4gIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGFycmF5SW50ZXJzdGl0aWFsKTtcbiAgd3JpdGVDaHVuayhkZXN0aW5hdGlvbiwgc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihKU09OLnN0cmluZ2lmeShhdHRyaWJ1dGVWYWx1ZSkpKSk7XG59XG4vKipcbiAqIFJlc291cmNlc1xuICovXG5cblxudmFyIFBFTkRJTkckMSA9IDA7XG52YXIgUFJFTE9BREVEID0gMTtcbnZhciBQUkVBTUJMRSA9IDI7XG52YXIgTEFURSA9IDM7XG5mdW5jdGlvbiBjcmVhdGVCb3VuZGFyeVJlc291cmNlcygpIHtcbiAgcmV0dXJuIHtcbiAgICBzdHlsZXM6IG5ldyBTZXQoKSxcbiAgICBzdHlsZXNoZWV0czogbmV3IFNldCgpXG4gIH07XG59XG5mdW5jdGlvbiBzZXRDdXJyZW50bHlSZW5kZXJpbmdCb3VuZGFyeVJlc291cmNlc1RhcmdldChyZW5kZXJTdGF0ZSwgYm91bmRhcnlSZXNvdXJjZXMpIHtcbiAgcmVuZGVyU3RhdGUuYm91bmRhcnlSZXNvdXJjZXMgPSBib3VuZGFyeVJlc291cmNlcztcbn1cblxuZnVuY3Rpb24gZ2V0UmVzb3VyY2VLZXkoaHJlZikge1xuICByZXR1cm4gaHJlZjtcbn1cblxuZnVuY3Rpb24gZ2V0SW1hZ2VSZXNvdXJjZUtleShocmVmLCBpbWFnZVNyY1NldCwgaW1hZ2VTaXplcykge1xuICBpZiAoaW1hZ2VTcmNTZXQpIHtcbiAgICByZXR1cm4gaW1hZ2VTcmNTZXQgKyAnXFxuJyArIChpbWFnZVNpemVzIHx8ICcnKTtcbiAgfVxuXG4gIHJldHVybiBocmVmO1xufVxuXG5mdW5jdGlvbiBwcmVmZXRjaEROUyhocmVmKSB7XG5cbiAgdmFyIHJlcXVlc3QgPSByZXNvbHZlUmVxdWVzdCgpO1xuXG4gIGlmICghcmVxdWVzdCkge1xuICAgIC8vIEluIGFzeW5jIGNvbnRleHRzIHdlIGNhbiBzb21ldGltZXMgcmVzb2x2ZSByZXNvdXJjZXMgZnJvbSBBc3luY0xvY2FsU3RvcmFnZS4gSWYgd2UgY2FuJ3Qgd2UgY2FuIGFsc29cbiAgICAvLyBwb3NzaWJseSBnZXQgdGhlbSBmcm9tIHRoZSBzdGFjayBpZiB3ZSBhcmUgbm90IGluIGFuIGFzeW5jIGNvbnRleHQuIFNpbmNlIHdlIHdlcmUgbm90IGFibGUgdG8gcmVzb2x2ZVxuICAgIC8vIHRoZSByZXNvdXJjZXMgZm9yIHRoaXMgY2FsbCBpbiBlaXRoZXIgY2FzZSB3ZSBvcHQgdG8gZG8gbm90aGluZy4gV2UgY2FuIGNvbnNpZGVyIG1ha2luZyB0aGlzIGEgd2FybmluZ1xuICAgIC8vIGJ1dCB0aGVyZSBtYXkgYmUgdGltZXMgd2hlcmUgY2FsbGluZyBhIGZ1bmN0aW9uIG91dHNpZGUgb2YgcmVuZGVyIGlzIGludGVudGlvbmFsIChpLmUuIHRvIHdhcm0gdXAgZGF0YVxuICAgIC8vIGZldGNoaW5nKSBhbmQgd2UgZG9uJ3Qgd2FudCB0byB3YXJuIGluIHRob3NlIGNhc2VzLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciByZXN1bWFibGVTdGF0ZSA9IGdldFJlc3VtYWJsZVN0YXRlKHJlcXVlc3QpO1xuICB2YXIgcmVuZGVyU3RhdGUgPSBnZXRSZW5kZXJTdGF0ZShyZXF1ZXN0KTtcblxuICBpZiAodHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnICYmIGhyZWYpIHtcbiAgICB2YXIga2V5ID0gZ2V0UmVzb3VyY2VLZXkoaHJlZik7XG5cbiAgICBpZiAoIXJlc3VtYWJsZVN0YXRlLmRuc1Jlc291cmNlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICByZXN1bWFibGVTdGF0ZS5kbnNSZXNvdXJjZXNba2V5XSA9IEVYSVNUUztcbiAgICAgIHZhciBoZWFkZXJzID0gcmVuZGVyU3RhdGUuaGVhZGVycztcbiAgICAgIHZhciBoZWFkZXI7XG5cbiAgICAgIGlmIChoZWFkZXJzICYmIGhlYWRlcnMucmVtYWluaW5nQ2FwYWNpdHkgPiAwICYmICggLy8gQ29tcHV0ZSB0aGUgaGVhZGVyIHNpbmNlIHdlIG1pZ2h0IGJlIGFibGUgdG8gZml0IGl0IGluIHRoZSBtYXggbGVuZ3RoXG4gICAgICBoZWFkZXIgPSBnZXRQcmVmZXRjaEROU0FzSGVhZGVyKGhyZWYpLCAvLyBXZSBhbHdheXMgY29uc3VtZSB0aGUgaGVhZGVyIGxlbmd0aCBzaW5jZSBvbmNlIHdlIGZpbmQgb25lIGhlYWRlciB0aGF0IGRvZXNuJ3QgZml0XG4gICAgICAvLyB3ZSBhc3N1bWUgYWxsIHRoZSByZXN0IHdvbid0IGFzIHdlbGwuIFRoaXMgaXMgdG8gYXZvaWQgZ2V0dGluZyBpbnRvIGEgc2l0dWF0aW9uXG4gICAgICAvLyB3aGVyZSB3ZSBoYXZlIGEgdmVyeSBzbWFsbCByZW1haW5pbmcgY2FwYWNpdHkgYnV0IG5vIGhlYWRlcnMgd2lsbCBldmVyIGZpdCBhbmQgd2UgZW5kXG4gICAgICAvLyB1cCBjb25zdGFudGx5IHRyeWluZyB0byBzZWUgaWYgdGhlIG5leHQgcmVzb3VyY2UgbWlnaHQgbWFrZSBpdC4gSW4gdGhlIGZ1dHVyZSB3ZSBjYW5cbiAgICAgIC8vIG1ha2UgdGhpcyBiZWhhdmlvciBkaWZmZXJlbnQgYmV0d2VlbiByZW5kZXIgYW5kIHByZXJlbmRlciBzaW5jZSBpbiB0aGUgbGF0dGVyIGNhc2VcbiAgICAgIC8vIHdlIGFyZSBsZXNzIHNlbnNpdGl2ZSB0byB0aGUgY3VycmVudCByZXF1ZXN0cyBydW50aW1lIHBlciBhbmQgbW9yZSBzZW5zaXRpdmUgdG8gbWF4aW1pemluZ1xuICAgICAgLy8gaGVhZGVycy5cbiAgICAgIChoZWFkZXJzLnJlbWFpbmluZ0NhcGFjaXR5IC09IGhlYWRlci5sZW5ndGgpID49IDIpKSB7XG4gICAgICAgIC8vIFN0b3JlIHRoaXMgYXMgcmVzZXR0YWJsZSBpbiBjYXNlIHdlIGFyZSBwcmVyZW5kZXJpbmcgYW5kIHBvc3Rwb25lIGluIHRoZSBTaGVsbFxuICAgICAgICByZW5kZXJTdGF0ZS5yZXNldHMuZG5zW2tleV0gPSBFWElTVFM7XG5cbiAgICAgICAgaWYgKGhlYWRlcnMucHJlY29ubmVjdHMpIHtcbiAgICAgICAgICBoZWFkZXJzLnByZWNvbm5lY3RzICs9ICcsICc7XG4gICAgICAgIH0gLy8gJEZsb3dGaXhNZVt1bnNhZmUtYWRkaXRpb25dOiB3ZSBhc3NpZ24gaGVhZGVyIGR1cmluZyB0aGUgaWYgY29uZGl0aW9uXG5cblxuICAgICAgICBoZWFkZXJzLnByZWNvbm5lY3RzICs9IGhlYWRlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEVuY29kZSBhcyBlbGVtZW50XG4gICAgICAgIHZhciByZXNvdXJjZSA9IFtdO1xuICAgICAgICBwdXNoTGlua0ltcGwocmVzb3VyY2UsIHtcbiAgICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICAgIHJlbDogJ2Rucy1wcmVmZXRjaCdcbiAgICAgICAgfSk7XG4gICAgICAgIHJlbmRlclN0YXRlLnByZWNvbm5lY3RzLmFkZChyZXNvdXJjZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmx1c2hSZXNvdXJjZXMocmVxdWVzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlY29ubmVjdChocmVmLCBjcm9zc09yaWdpbikge1xuXG4gIHZhciByZXF1ZXN0ID0gcmVzb2x2ZVJlcXVlc3QoKTtcblxuICBpZiAoIXJlcXVlc3QpIHtcbiAgICAvLyBJbiBhc3luYyBjb250ZXh0cyB3ZSBjYW4gc29tZXRpbWVzIHJlc29sdmUgcmVzb3VyY2VzIGZyb20gQXN5bmNMb2NhbFN0b3JhZ2UuIElmIHdlIGNhbid0IHdlIGNhbiBhbHNvXG4gICAgLy8gcG9zc2libHkgZ2V0IHRoZW0gZnJvbSB0aGUgc3RhY2sgaWYgd2UgYXJlIG5vdCBpbiBhbiBhc3luYyBjb250ZXh0LiBTaW5jZSB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHJlc29sdmVcbiAgICAvLyB0aGUgcmVzb3VyY2VzIGZvciB0aGlzIGNhbGwgaW4gZWl0aGVyIGNhc2Ugd2Ugb3B0IHRvIGRvIG5vdGhpbmcuIFdlIGNhbiBjb25zaWRlciBtYWtpbmcgdGhpcyBhIHdhcm5pbmdcbiAgICAvLyBidXQgdGhlcmUgbWF5IGJlIHRpbWVzIHdoZXJlIGNhbGxpbmcgYSBmdW5jdGlvbiBvdXRzaWRlIG9mIHJlbmRlciBpcyBpbnRlbnRpb25hbCAoaS5lLiB0byB3YXJtIHVwIGRhdGFcbiAgICAvLyBmZXRjaGluZykgYW5kIHdlIGRvbid0IHdhbnQgdG8gd2FybiBpbiB0aG9zZSBjYXNlcy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcmVzdW1hYmxlU3RhdGUgPSBnZXRSZXN1bWFibGVTdGF0ZShyZXF1ZXN0KTtcbiAgdmFyIHJlbmRlclN0YXRlID0gZ2V0UmVuZGVyU3RhdGUocmVxdWVzdCk7XG5cbiAgaWYgKHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyAmJiBocmVmKSB7XG4gICAgdmFyIGJ1Y2tldCA9IGNyb3NzT3JpZ2luID09PSAndXNlLWNyZWRlbnRpYWxzJyA/ICdjcmVkZW50aWFscycgOiB0eXBlb2YgY3Jvc3NPcmlnaW4gPT09ICdzdHJpbmcnID8gJ2Fub255bW91cycgOiAnZGVmYXVsdCc7XG4gICAgdmFyIGtleSA9IGdldFJlc291cmNlS2V5KGhyZWYpO1xuXG4gICAgaWYgKCFyZXN1bWFibGVTdGF0ZS5jb25uZWN0UmVzb3VyY2VzW2J1Y2tldF0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgcmVzdW1hYmxlU3RhdGUuY29ubmVjdFJlc291cmNlc1tidWNrZXRdW2tleV0gPSBFWElTVFM7XG4gICAgICB2YXIgaGVhZGVycyA9IHJlbmRlclN0YXRlLmhlYWRlcnM7XG4gICAgICB2YXIgaGVhZGVyO1xuXG4gICAgICBpZiAoaGVhZGVycyAmJiBoZWFkZXJzLnJlbWFpbmluZ0NhcGFjaXR5ID4gMCAmJiAoIC8vIENvbXB1dGUgdGhlIGhlYWRlciBzaW5jZSB3ZSBtaWdodCBiZSBhYmxlIHRvIGZpdCBpdCBpbiB0aGUgbWF4IGxlbmd0aFxuICAgICAgaGVhZGVyID0gZ2V0UHJlY29ubmVjdEFzSGVhZGVyKGhyZWYsIGNyb3NzT3JpZ2luKSwgLy8gV2UgYWx3YXlzIGNvbnN1bWUgdGhlIGhlYWRlciBsZW5ndGggc2luY2Ugb25jZSB3ZSBmaW5kIG9uZSBoZWFkZXIgdGhhdCBkb2Vzbid0IGZpdFxuICAgICAgLy8gd2UgYXNzdW1lIGFsbCB0aGUgcmVzdCB3b24ndCBhcyB3ZWxsLiBUaGlzIGlzIHRvIGF2b2lkIGdldHRpbmcgaW50byBhIHNpdHVhdGlvblxuICAgICAgLy8gd2hlcmUgd2UgaGF2ZSBhIHZlcnkgc21hbGwgcmVtYWluaW5nIGNhcGFjaXR5IGJ1dCBubyBoZWFkZXJzIHdpbGwgZXZlciBmaXQgYW5kIHdlIGVuZFxuICAgICAgLy8gdXAgY29uc3RhbnRseSB0cnlpbmcgdG8gc2VlIGlmIHRoZSBuZXh0IHJlc291cmNlIG1pZ2h0IG1ha2UgaXQuIEluIHRoZSBmdXR1cmUgd2UgY2FuXG4gICAgICAvLyBtYWtlIHRoaXMgYmVoYXZpb3IgZGlmZmVyZW50IGJldHdlZW4gcmVuZGVyIGFuZCBwcmVyZW5kZXIgc2luY2UgaW4gdGhlIGxhdHRlciBjYXNlXG4gICAgICAvLyB3ZSBhcmUgbGVzcyBzZW5zaXRpdmUgdG8gdGhlIGN1cnJlbnQgcmVxdWVzdHMgcnVudGltZSBwZXIgYW5kIG1vcmUgc2Vuc2l0aXZlIHRvIG1heGltaXppbmdcbiAgICAgIC8vIGhlYWRlcnMuXG4gICAgICAoaGVhZGVycy5yZW1haW5pbmdDYXBhY2l0eSAtPSBoZWFkZXIubGVuZ3RoKSA+PSAyKSkge1xuICAgICAgICAvLyBTdG9yZSB0aGlzIGluIHJlc2V0dGFibGVTdGF0ZSBpbiBjYXNlIHdlIGFyZSBwcmVyZW5kaW5nIGFuZCBwb3N0cG9uZSBpbiB0aGUgU2hlbGxcbiAgICAgICAgcmVuZGVyU3RhdGUucmVzZXRzLmNvbm5lY3RbYnVja2V0XVtrZXldID0gRVhJU1RTO1xuXG4gICAgICAgIGlmIChoZWFkZXJzLnByZWNvbm5lY3RzKSB7XG4gICAgICAgICAgaGVhZGVycy5wcmVjb25uZWN0cyArPSAnLCAnO1xuICAgICAgICB9IC8vICRGbG93Rml4TWVbdW5zYWZlLWFkZGl0aW9uXTogd2UgYXNzaWduIGhlYWRlciBkdXJpbmcgdGhlIGlmIGNvbmRpdGlvblxuXG5cbiAgICAgICAgaGVhZGVycy5wcmVjb25uZWN0cyArPSBoZWFkZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcmVzb3VyY2UgPSBbXTtcbiAgICAgICAgcHVzaExpbmtJbXBsKHJlc291cmNlLCB7XG4gICAgICAgICAgcmVsOiAncHJlY29ubmVjdCcsXG4gICAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgICBjcm9zc09yaWdpbjogY3Jvc3NPcmlnaW5cbiAgICAgICAgfSk7XG4gICAgICAgIHJlbmRlclN0YXRlLnByZWNvbm5lY3RzLmFkZChyZXNvdXJjZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmx1c2hSZXNvdXJjZXMocmVxdWVzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlbG9hZChocmVmLCBhcywgb3B0aW9ucykge1xuXG4gIHZhciByZXF1ZXN0ID0gcmVzb2x2ZVJlcXVlc3QoKTtcblxuICBpZiAoIXJlcXVlc3QpIHtcbiAgICAvLyBJbiBhc3luYyBjb250ZXh0cyB3ZSBjYW4gc29tZXRpbWVzIHJlc29sdmUgcmVzb3VyY2VzIGZyb20gQXN5bmNMb2NhbFN0b3JhZ2UuIElmIHdlIGNhbid0IHdlIGNhbiBhbHNvXG4gICAgLy8gcG9zc2libHkgZ2V0IHRoZW0gZnJvbSB0aGUgc3RhY2sgaWYgd2UgYXJlIG5vdCBpbiBhbiBhc3luYyBjb250ZXh0LiBTaW5jZSB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHJlc29sdmVcbiAgICAvLyB0aGUgcmVzb3VyY2VzIGZvciB0aGlzIGNhbGwgaW4gZWl0aGVyIGNhc2Ugd2Ugb3B0IHRvIGRvIG5vdGhpbmcuIFdlIGNhbiBjb25zaWRlciBtYWtpbmcgdGhpcyBhIHdhcm5pbmdcbiAgICAvLyBidXQgdGhlcmUgbWF5IGJlIHRpbWVzIHdoZXJlIGNhbGxpbmcgYSBmdW5jdGlvbiBvdXRzaWRlIG9mIHJlbmRlciBpcyBpbnRlbnRpb25hbCAoaS5lLiB0byB3YXJtIHVwIGRhdGFcbiAgICAvLyBmZXRjaGluZykgYW5kIHdlIGRvbid0IHdhbnQgdG8gd2FybiBpbiB0aG9zZSBjYXNlcy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcmVzdW1hYmxlU3RhdGUgPSBnZXRSZXN1bWFibGVTdGF0ZShyZXF1ZXN0KTtcbiAgdmFyIHJlbmRlclN0YXRlID0gZ2V0UmVuZGVyU3RhdGUocmVxdWVzdCk7XG5cbiAgaWYgKGFzICYmIGhyZWYpIHtcbiAgICBzd2l0Y2ggKGFzKSB7XG4gICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgaW1hZ2VTcmNTZXQsIGltYWdlU2l6ZXMsIGZldGNoUHJpb3JpdHk7XG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaW1hZ2VTcmNTZXQgPSBvcHRpb25zLmltYWdlU3JjU2V0O1xuICAgICAgICAgICAgaW1hZ2VTaXplcyA9IG9wdGlvbnMuaW1hZ2VTaXplcztcbiAgICAgICAgICAgIGZldGNoUHJpb3JpdHkgPSBvcHRpb25zLmZldGNoUHJpb3JpdHk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGtleSA9IGdldEltYWdlUmVzb3VyY2VLZXkoaHJlZiwgaW1hZ2VTcmNTZXQsIGltYWdlU2l6ZXMpO1xuXG4gICAgICAgICAgaWYgKHJlc3VtYWJsZVN0YXRlLmltYWdlUmVzb3VyY2VzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIC8vIHdlIGNhbiByZXR1cm4gaWYgd2UgYWxyZWFkeSBoYXZlIHRoaXMgcmVzb3VyY2VcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXN1bWFibGVTdGF0ZS5pbWFnZVJlc291cmNlc1trZXldID0gUFJFTE9BRF9OT19DUkVEUztcbiAgICAgICAgICB2YXIgaGVhZGVycyA9IHJlbmRlclN0YXRlLmhlYWRlcnM7XG4gICAgICAgICAgdmFyIGhlYWRlcjtcblxuICAgICAgICAgIGlmIChoZWFkZXJzICYmIGhlYWRlcnMucmVtYWluaW5nQ2FwYWNpdHkgPiAwICYmIGZldGNoUHJpb3JpdHkgPT09ICdoaWdoJyAmJiAoIC8vIENvbXB1dGUgdGhlIGhlYWRlciBzaW5jZSB3ZSBtaWdodCBiZSBhYmxlIHRvIGZpdCBpdCBpbiB0aGUgbWF4IGxlbmd0aFxuICAgICAgICAgIGhlYWRlciA9IGdldFByZWxvYWRBc0hlYWRlcihocmVmLCBhcywgb3B0aW9ucyksIC8vIFdlIGFsd2F5cyBjb25zdW1lIHRoZSBoZWFkZXIgbGVuZ3RoIHNpbmNlIG9uY2Ugd2UgZmluZCBvbmUgaGVhZGVyIHRoYXQgZG9lc24ndCBmaXRcbiAgICAgICAgICAvLyB3ZSBhc3N1bWUgYWxsIHRoZSByZXN0IHdvbid0IGFzIHdlbGwuIFRoaXMgaXMgdG8gYXZvaWQgZ2V0dGluZyBpbnRvIGEgc2l0dWF0aW9uXG4gICAgICAgICAgLy8gd2hlcmUgd2UgaGF2ZSBhIHZlcnkgc21hbGwgcmVtYWluaW5nIGNhcGFjaXR5IGJ1dCBubyBoZWFkZXJzIHdpbGwgZXZlciBmaXQgYW5kIHdlIGVuZFxuICAgICAgICAgIC8vIHVwIGNvbnN0YW50bHkgdHJ5aW5nIHRvIHNlZSBpZiB0aGUgbmV4dCByZXNvdXJjZSBtaWdodCBtYWtlIGl0LiBJbiB0aGUgZnV0dXJlIHdlIGNhblxuICAgICAgICAgIC8vIG1ha2UgdGhpcyBiZWhhdmlvciBkaWZmZXJlbnQgYmV0d2VlbiByZW5kZXIgYW5kIHByZXJlbmRlciBzaW5jZSBpbiB0aGUgbGF0dGVyIGNhc2VcbiAgICAgICAgICAvLyB3ZSBhcmUgbGVzcyBzZW5zaXRpdmUgdG8gdGhlIGN1cnJlbnQgcmVxdWVzdHMgcnVudGltZSBwZXIgYW5kIG1vcmUgc2Vuc2l0aXZlIHRvIG1heGltaXppbmdcbiAgICAgICAgICAvLyBoZWFkZXJzLlxuICAgICAgICAgIChoZWFkZXJzLnJlbWFpbmluZ0NhcGFjaXR5IC09IGhlYWRlci5sZW5ndGgpID49IDIpKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBwb3N0cG9uZSBpbiB0aGUgc2hlbGwgd2Ugd2lsbCBzdGlsbCBlbWl0IGEgcHJlbG9hZCBhcyBhIGhlYWRlciBzbyB3ZVxuICAgICAgICAgICAgLy8gdHJhY2sgdGhpcyB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgcmVzZXQgaXQuXG4gICAgICAgICAgICByZW5kZXJTdGF0ZS5yZXNldHMuaW1hZ2Vba2V5XSA9IFBSRUxPQURfTk9fQ1JFRFM7XG5cbiAgICAgICAgICAgIGlmIChoZWFkZXJzLmhpZ2hJbWFnZVByZWxvYWRzKSB7XG4gICAgICAgICAgICAgIGhlYWRlcnMuaGlnaEltYWdlUHJlbG9hZHMgKz0gJywgJztcbiAgICAgICAgICAgIH0gLy8gJEZsb3dGaXhNZVt1bnNhZmUtYWRkaXRpb25dOiB3ZSBhc3NpZ24gaGVhZGVyIGR1cmluZyB0aGUgaWYgY29uZGl0aW9uXG5cblxuICAgICAgICAgICAgaGVhZGVycy5oaWdoSW1hZ2VQcmVsb2FkcyArPSBoZWFkZXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgaGVhZGVycyB0byB3cml0ZSB0byB3ZSBoYXZlIHRvIGVuY29kZSBhcyBlbGVtZW50cyB0byBmbHVzaCBpbiB0aGUgaGVhZFxuICAgICAgICAgICAgLy8gV2hlbiB3ZSBoYXZlIGltYWdlU3JjU2V0IHRoZSBicm93c2VyIHByb2JhYmx5IGNhbm5vdCBsb2FkIHRoZSByaWdodCB2ZXJzaW9uIGZyb20gaGVhZGVyc1xuICAgICAgICAgICAgLy8gKHRoaXMgc2hvdWxkIGJlIHZlcmlmaWVkIGJ5IHRlc3RpbmcpLiBGb3Igbm93IHdlIGFzc3VtZSB0aGVzZSBuZWVkIHRvIGdvIGluIHRoZSBoZWFkXG4gICAgICAgICAgICAvLyBhcyBlbGVtZW50cyBldmVuIGlmIGhlYWRlcnMgYXJlIGF2YWlsYWJsZS5cbiAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFtdO1xuICAgICAgICAgICAgcHVzaExpbmtJbXBsKHJlc291cmNlLCBhc3NpZ24oe1xuICAgICAgICAgICAgICByZWw6ICdwcmVsb2FkJyxcbiAgICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gU2FmYXJpIHdoZXJlIGltYWdlU3JjU2V0IGlzIG5vdCByZXNwZWN0ZWQgb24gcHJlbG9hZCBsaW5rc1xuICAgICAgICAgICAgICAvLyBzbyB3ZSBvbWl0IHRoZSBocmVmIGhlcmUgaWYgd2UgaGF2ZSBpbWFnZVNyY1NldCBiL2Mgc2FmYXJpIHdpbGwgbG9hZCB0aGUgd3JvbmcgaW1hZ2UuXG4gICAgICAgICAgICAgIC8vIFRoaXMgaGFybXMgb2xkZXIgYnJvd2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGltYWdlU3JjU2V0IGJ5IG1ha2luZyB0aGVpciBwcmVsb2FkcyBub3Qgd29ya1xuICAgICAgICAgICAgICAvLyBidXQgdGhpcyBwb3B1bGF0aW9uIGlzIHNocmlua2luZyBmYXN0IGFuZCBpcyBhbHJlYWR5IHNtYWxsIHNvIHdlIGFjY2VwdCB0aGlzIHRyYWRlb2ZmLlxuICAgICAgICAgICAgICBocmVmOiBpbWFnZVNyY1NldCA/IHVuZGVmaW5lZCA6IGhyZWYsXG4gICAgICAgICAgICAgIGFzOiBhc1xuICAgICAgICAgICAgfSwgb3B0aW9ucykpO1xuXG4gICAgICAgICAgICBpZiAoZmV0Y2hQcmlvcml0eSA9PT0gJ2hpZ2gnKSB7XG4gICAgICAgICAgICAgIHJlbmRlclN0YXRlLmhpZ2hJbWFnZVByZWxvYWRzLmFkZChyZXNvdXJjZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZW5kZXJTdGF0ZS5idWxrUHJlbG9hZHMuYWRkKHJlc291cmNlKTsgLy8gU3Rhc2ggdGhlIHJlc291cmNlIGluIGNhc2Ugd2UgbmVlZCB0byBwcm9tb3RlIGl0IHRvIGhpZ2hlciBwcmlvcml0eVxuICAgICAgICAgICAgICAvLyB3aGVuIGFuIGltZyB0YWcgaXMgcmVuZGVyZWRcblxuICAgICAgICAgICAgICByZW5kZXJTdGF0ZS5wcmVsb2Fkcy5pbWFnZXMuc2V0KGtleSwgcmVzb3VyY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ3N0eWxlJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfa2V5ID0gZ2V0UmVzb3VyY2VLZXkoaHJlZik7XG5cbiAgICAgICAgICBpZiAocmVzdW1hYmxlU3RhdGUuc3R5bGVSZXNvdXJjZXMuaGFzT3duUHJvcGVydHkoX2tleSkpIHtcbiAgICAgICAgICAgIC8vIHdlIGNhbiByZXR1cm4gaWYgd2UgYWxyZWFkeSBoYXZlIHRoaXMgcmVzb3VyY2VcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX3Jlc291cmNlMiA9IFtdO1xuICAgICAgICAgIHB1c2hMaW5rSW1wbChfcmVzb3VyY2UyLCBhc3NpZ24oe1xuICAgICAgICAgICAgcmVsOiAncHJlbG9hZCcsXG4gICAgICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICAgICAgYXM6IGFzXG4gICAgICAgICAgfSwgb3B0aW9ucykpO1xuICAgICAgICAgIHJlc3VtYWJsZVN0YXRlLnN0eWxlUmVzb3VyY2VzW19rZXldID0gb3B0aW9ucyAmJiAodHlwZW9mIG9wdGlvbnMuY3Jvc3NPcmlnaW4gPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA9PT0gJ3N0cmluZycpID8gW29wdGlvbnMuY3Jvc3NPcmlnaW4sIG9wdGlvbnMuaW50ZWdyaXR5XSA6IFBSRUxPQURfTk9fQ1JFRFM7XG4gICAgICAgICAgcmVuZGVyU3RhdGUucHJlbG9hZHMuc3R5bGVzaGVldHMuc2V0KF9rZXksIF9yZXNvdXJjZTIpO1xuICAgICAgICAgIHJlbmRlclN0YXRlLmJ1bGtQcmVsb2Fkcy5hZGQoX3Jlc291cmNlMik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfa2V5MiA9IGdldFJlc291cmNlS2V5KGhyZWYpO1xuXG4gICAgICAgICAgaWYgKHJlc3VtYWJsZVN0YXRlLnNjcmlwdFJlc291cmNlcy5oYXNPd25Qcm9wZXJ0eShfa2V5MikpIHtcbiAgICAgICAgICAgIC8vIHdlIGNhbiByZXR1cm4gaWYgd2UgYWxyZWFkeSBoYXZlIHRoaXMgcmVzb3VyY2VcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX3Jlc291cmNlMyA9IFtdO1xuICAgICAgICAgIHJlbmRlclN0YXRlLnByZWxvYWRzLnNjcmlwdHMuc2V0KF9rZXkyLCBfcmVzb3VyY2UzKTtcbiAgICAgICAgICByZW5kZXJTdGF0ZS5idWxrUHJlbG9hZHMuYWRkKF9yZXNvdXJjZTMpO1xuICAgICAgICAgIHB1c2hMaW5rSW1wbChfcmVzb3VyY2UzLCBhc3NpZ24oe1xuICAgICAgICAgICAgcmVsOiAncHJlbG9hZCcsXG4gICAgICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICAgICAgYXM6IGFzXG4gICAgICAgICAgfSwgb3B0aW9ucykpO1xuICAgICAgICAgIHJlc3VtYWJsZVN0YXRlLnNjcmlwdFJlc291cmNlc1tfa2V5Ml0gPSBvcHRpb25zICYmICh0eXBlb2Ygb3B0aW9ucy5jcm9zc09yaWdpbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG9wdGlvbnMuaW50ZWdyaXR5ID09PSAnc3RyaW5nJykgPyBbb3B0aW9ucy5jcm9zc09yaWdpbiwgb3B0aW9ucy5pbnRlZ3JpdHldIDogUFJFTE9BRF9OT19DUkVEUztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIF9rZXkzID0gZ2V0UmVzb3VyY2VLZXkoaHJlZik7XG5cbiAgICAgICAgICB2YXIgaGFzQXNUeXBlID0gcmVzdW1hYmxlU3RhdGUudW5rbm93blJlc291cmNlcy5oYXNPd25Qcm9wZXJ0eShhcyk7XG4gICAgICAgICAgdmFyIHJlc291cmNlcztcblxuICAgICAgICAgIGlmIChoYXNBc1R5cGUpIHtcbiAgICAgICAgICAgIHJlc291cmNlcyA9IHJlc3VtYWJsZVN0YXRlLnVua25vd25SZXNvdXJjZXNbYXNdO1xuXG4gICAgICAgICAgICBpZiAocmVzb3VyY2VzLmhhc093blByb3BlcnR5KF9rZXkzKSkge1xuICAgICAgICAgICAgICAvLyB3ZSBjYW4gcmV0dXJuIGlmIHdlIGFscmVhZHkgaGF2ZSB0aGlzIHJlc291cmNlXG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb3VyY2VzID0ge307XG4gICAgICAgICAgICByZXN1bWFibGVTdGF0ZS51bmtub3duUmVzb3VyY2VzW2FzXSA9IHJlc291cmNlcztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXNvdXJjZXNbX2tleTNdID0gUFJFTE9BRF9OT19DUkVEUztcbiAgICAgICAgICB2YXIgX2hlYWRlcnMgPSByZW5kZXJTdGF0ZS5oZWFkZXJzO1xuXG4gICAgICAgICAgdmFyIF9oZWFkZXI7XG5cbiAgICAgICAgICBpZiAoX2hlYWRlcnMgJiYgX2hlYWRlcnMucmVtYWluaW5nQ2FwYWNpdHkgPiAwICYmIGFzID09PSAnZm9udCcgJiYgKCAvLyBXZSBjb21wdXRlIHRoZSBoZWFkZXIgaGVyZSBiZWNhdXNlIHdlIG1pZ2h0IGJlIGFibGUgdG8gZml0IGl0IGluIHRoZSBtYXggbGVuZ3RoXG4gICAgICAgICAgX2hlYWRlciA9IGdldFByZWxvYWRBc0hlYWRlcihocmVmLCBhcywgb3B0aW9ucyksIC8vIFdlIGFsd2F5cyBjb25zdW1lIHRoZSBoZWFkZXIgbGVuZ3RoIHNpbmNlIG9uY2Ugd2UgZmluZCBvbmUgaGVhZGVyIHRoYXQgZG9lc24ndCBmaXRcbiAgICAgICAgICAvLyB3ZSBhc3N1bWUgYWxsIHRoZSByZXN0IHdvbid0IGFzIHdlbGwuIFRoaXMgaXMgdG8gYXZvaWQgZ2V0dGluZyBpbnRvIGEgc2l0dWF0aW9uXG4gICAgICAgICAgLy8gd2hlcmUgd2UgaGF2ZSBhIHZlcnkgc21hbGwgcmVtYWluaW5nIGNhcGFjaXR5IGJ1dCBubyBoZWFkZXJzIHdpbGwgZXZlciBmaXQgYW5kIHdlIGVuZFxuICAgICAgICAgIC8vIHVwIGNvbnN0YW50bHkgdHJ5aW5nIHRvIHNlZSBpZiB0aGUgbmV4dCByZXNvdXJjZSBtaWdodCBtYWtlIGl0LiBJbiB0aGUgZnV0dXJlIHdlIGNhblxuICAgICAgICAgIC8vIG1ha2UgdGhpcyBiZWhhdmlvciBkaWZmZXJlbnQgYmV0d2VlbiByZW5kZXIgYW5kIHByZXJlbmRlciBzaW5jZSBpbiB0aGUgbGF0dGVyIGNhc2VcbiAgICAgICAgICAvLyB3ZSBhcmUgbGVzcyBzZW5zaXRpdmUgdG8gdGhlIGN1cnJlbnQgcmVxdWVzdHMgcnVudGltZSBwZXIgYW5kIG1vcmUgc2Vuc2l0aXZlIHRvIG1heGltaXppbmdcbiAgICAgICAgICAvLyBoZWFkZXJzLlxuICAgICAgICAgIChfaGVhZGVycy5yZW1haW5pbmdDYXBhY2l0eSAtPSBfaGVhZGVyLmxlbmd0aCkgPj0gMikpIHtcbiAgICAgICAgICAgIC8vIElmIHdlIHBvc3Rwb25lIGluIHRoZSBzaGVsbCB3ZSB3aWxsIHN0aWxsIGVtaXQgdGhpcyBwcmVsb2FkIHNvIHdlXG4gICAgICAgICAgICAvLyB0cmFjayBpdCBoZXJlIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyByZXNldC5cbiAgICAgICAgICAgIHJlbmRlclN0YXRlLnJlc2V0cy5mb250W19rZXkzXSA9IFBSRUxPQURfTk9fQ1JFRFM7XG5cbiAgICAgICAgICAgIGlmIChfaGVhZGVycy5mb250UHJlbG9hZHMpIHtcbiAgICAgICAgICAgICAgX2hlYWRlcnMuZm9udFByZWxvYWRzICs9ICcsICc7XG4gICAgICAgICAgICB9IC8vICRGbG93Rml4TWVbdW5zYWZlLWFkZGl0aW9uXTogd2UgYXNzaWduIGhlYWRlciBkdXJpbmcgdGhlIGlmIGNvbmRpdGlvblxuXG5cbiAgICAgICAgICAgIF9oZWFkZXJzLmZvbnRQcmVsb2FkcyArPSBfaGVhZGVyO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBXZSBlaXRoZXIgZG9uJ3QgaGF2ZSBoZWFkZXJzIG9yIHdlIGFyZSBwcmVsb2FkaW5nIHNvbWV0aGluZyB0aGF0IGRvZXNcbiAgICAgICAgICAgIC8vIG5vdCB3YXJyYW50IGVsZXZhdGVkIHByaW9yaXR5IHNvIHdlIGVuY29kZSBhcyBhbiBlbGVtZW50LlxuICAgICAgICAgICAgdmFyIF9yZXNvdXJjZTQgPSBbXTtcblxuICAgICAgICAgICAgdmFyIHByb3BzID0gYXNzaWduKHtcbiAgICAgICAgICAgICAgcmVsOiAncHJlbG9hZCcsXG4gICAgICAgICAgICAgIGhyZWY6IGhyZWYsXG4gICAgICAgICAgICAgIGFzOiBhc1xuICAgICAgICAgICAgfSwgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIHB1c2hMaW5rSW1wbChfcmVzb3VyY2U0LCBwcm9wcyk7XG5cbiAgICAgICAgICAgIHN3aXRjaCAoYXMpIHtcbiAgICAgICAgICAgICAgY2FzZSAnZm9udCc6XG4gICAgICAgICAgICAgICAgcmVuZGVyU3RhdGUuZm9udFByZWxvYWRzLmFkZChfcmVzb3VyY2U0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgLy8gaW50ZW50aW9uYWwgZmFsbCB0aHJvdWdoXG5cbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZW5kZXJTdGF0ZS5idWxrUHJlbG9hZHMuYWRkKF9yZXNvdXJjZTQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gLy8gSWYgd2UgZ290IHRoaXMgZmFyIHdlIGNyZWF0ZWQgYSBuZXcgcmVzb3VyY2VcblxuXG4gICAgZmx1c2hSZXNvdXJjZXMocmVxdWVzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlbG9hZE1vZHVsZShocmVmLCBvcHRpb25zKSB7XG5cbiAgdmFyIHJlcXVlc3QgPSByZXNvbHZlUmVxdWVzdCgpO1xuXG4gIGlmICghcmVxdWVzdCkge1xuICAgIC8vIEluIGFzeW5jIGNvbnRleHRzIHdlIGNhbiBzb21ldGltZXMgcmVzb2x2ZSByZXNvdXJjZXMgZnJvbSBBc3luY0xvY2FsU3RvcmFnZS4gSWYgd2UgY2FuJ3Qgd2UgY2FuIGFsc29cbiAgICAvLyBwb3NzaWJseSBnZXQgdGhlbSBmcm9tIHRoZSBzdGFjayBpZiB3ZSBhcmUgbm90IGluIGFuIGFzeW5jIGNvbnRleHQuIFNpbmNlIHdlIHdlcmUgbm90IGFibGUgdG8gcmVzb2x2ZVxuICAgIC8vIHRoZSByZXNvdXJjZXMgZm9yIHRoaXMgY2FsbCBpbiBlaXRoZXIgY2FzZSB3ZSBvcHQgdG8gZG8gbm90aGluZy4gV2UgY2FuIGNvbnNpZGVyIG1ha2luZyB0aGlzIGEgd2FybmluZ1xuICAgIC8vIGJ1dCB0aGVyZSBtYXkgYmUgdGltZXMgd2hlcmUgY2FsbGluZyBhIGZ1bmN0aW9uIG91dHNpZGUgb2YgcmVuZGVyIGlzIGludGVudGlvbmFsIChpLmUuIHRvIHdhcm0gdXAgZGF0YVxuICAgIC8vIGZldGNoaW5nKSBhbmQgd2UgZG9uJ3Qgd2FudCB0byB3YXJuIGluIHRob3NlIGNhc2VzLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciByZXN1bWFibGVTdGF0ZSA9IGdldFJlc3VtYWJsZVN0YXRlKHJlcXVlc3QpO1xuICB2YXIgcmVuZGVyU3RhdGUgPSBnZXRSZW5kZXJTdGF0ZShyZXF1ZXN0KTtcblxuICBpZiAoaHJlZikge1xuICAgIHZhciBrZXkgPSBnZXRSZXNvdXJjZUtleShocmVmKTtcbiAgICB2YXIgYXMgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmFzID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYXMgOiAnc2NyaXB0JztcbiAgICB2YXIgcmVzb3VyY2U7XG5cbiAgICBzd2l0Y2ggKGFzKSB7XG4gICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHJlc3VtYWJsZVN0YXRlLm1vZHVsZVNjcmlwdFJlc291cmNlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAvLyB3ZSBjYW4gcmV0dXJuIGlmIHdlIGFscmVhZHkgaGF2ZSB0aGlzIHJlc291cmNlXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb3VyY2UgPSBbXTtcbiAgICAgICAgICByZXN1bWFibGVTdGF0ZS5tb2R1bGVTY3JpcHRSZXNvdXJjZXNba2V5XSA9IG9wdGlvbnMgJiYgKHR5cGVvZiBvcHRpb25zLmNyb3NzT3JpZ2luID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3B0aW9ucy5pbnRlZ3JpdHkgPT09ICdzdHJpbmcnKSA/IFtvcHRpb25zLmNyb3NzT3JpZ2luLCBvcHRpb25zLmludGVncml0eV0gOiBQUkVMT0FEX05PX0NSRURTO1xuICAgICAgICAgIHJlbmRlclN0YXRlLnByZWxvYWRzLm1vZHVsZVNjcmlwdHMuc2V0KGtleSwgcmVzb3VyY2UpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgaGFzQXNUeXBlID0gcmVzdW1hYmxlU3RhdGUubW9kdWxlVW5rbm93blJlc291cmNlcy5oYXNPd25Qcm9wZXJ0eShhcyk7XG4gICAgICAgICAgdmFyIHJlc291cmNlcztcblxuICAgICAgICAgIGlmIChoYXNBc1R5cGUpIHtcbiAgICAgICAgICAgIHJlc291cmNlcyA9IHJlc3VtYWJsZVN0YXRlLnVua25vd25SZXNvdXJjZXNbYXNdO1xuXG4gICAgICAgICAgICBpZiAocmVzb3VyY2VzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgLy8gd2UgY2FuIHJldHVybiBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhpcyByZXNvdXJjZVxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc291cmNlcyA9IHt9O1xuICAgICAgICAgICAgcmVzdW1hYmxlU3RhdGUubW9kdWxlVW5rbm93blJlc291cmNlc1thc10gPSByZXNvdXJjZXM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb3VyY2UgPSBbXTtcbiAgICAgICAgICByZXNvdXJjZXNba2V5XSA9IFBSRUxPQURfTk9fQ1JFRFM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdXNoTGlua0ltcGwocmVzb3VyY2UsIGFzc2lnbih7XG4gICAgICByZWw6ICdtb2R1bGVwcmVsb2FkJyxcbiAgICAgIGhyZWY6IGhyZWZcbiAgICB9LCBvcHRpb25zKSk7XG4gICAgcmVuZGVyU3RhdGUuYnVsa1ByZWxvYWRzLmFkZChyZXNvdXJjZSk7IC8vIElmIHdlIGdvdCB0aGlzIGZhciB3ZSBjcmVhdGVkIGEgbmV3IHJlc291cmNlXG5cbiAgICBmbHVzaFJlc291cmNlcyhyZXF1ZXN0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmVpbml0U3R5bGUoaHJlZiwgcHJlY2VkZW5jZSwgb3B0aW9ucykge1xuXG4gIHZhciByZXF1ZXN0ID0gcmVzb2x2ZVJlcXVlc3QoKTtcblxuICBpZiAoIXJlcXVlc3QpIHtcbiAgICAvLyBJbiBhc3luYyBjb250ZXh0cyB3ZSBjYW4gc29tZXRpbWVzIHJlc29sdmUgcmVzb3VyY2VzIGZyb20gQXN5bmNMb2NhbFN0b3JhZ2UuIElmIHdlIGNhbid0IHdlIGNhbiBhbHNvXG4gICAgLy8gcG9zc2libHkgZ2V0IHRoZW0gZnJvbSB0aGUgc3RhY2sgaWYgd2UgYXJlIG5vdCBpbiBhbiBhc3luYyBjb250ZXh0LiBTaW5jZSB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHJlc29sdmVcbiAgICAvLyB0aGUgcmVzb3VyY2VzIGZvciB0aGlzIGNhbGwgaW4gZWl0aGVyIGNhc2Ugd2Ugb3B0IHRvIGRvIG5vdGhpbmcuIFdlIGNhbiBjb25zaWRlciBtYWtpbmcgdGhpcyBhIHdhcm5pbmdcbiAgICAvLyBidXQgdGhlcmUgbWF5IGJlIHRpbWVzIHdoZXJlIGNhbGxpbmcgYSBmdW5jdGlvbiBvdXRzaWRlIG9mIHJlbmRlciBpcyBpbnRlbnRpb25hbCAoaS5lLiB0byB3YXJtIHVwIGRhdGFcbiAgICAvLyBmZXRjaGluZykgYW5kIHdlIGRvbid0IHdhbnQgdG8gd2FybiBpbiB0aG9zZSBjYXNlcy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcmVzdW1hYmxlU3RhdGUgPSBnZXRSZXN1bWFibGVTdGF0ZShyZXF1ZXN0KTtcbiAgdmFyIHJlbmRlclN0YXRlID0gZ2V0UmVuZGVyU3RhdGUocmVxdWVzdCk7XG5cbiAgaWYgKGhyZWYpIHtcbiAgICBwcmVjZWRlbmNlID0gcHJlY2VkZW5jZSB8fCAnZGVmYXVsdCc7XG4gICAgdmFyIGtleSA9IGdldFJlc291cmNlS2V5KGhyZWYpO1xuICAgIHZhciBzdHlsZVF1ZXVlID0gcmVuZGVyU3RhdGUuc3R5bGVzLmdldChwcmVjZWRlbmNlKTtcbiAgICB2YXIgaGFzS2V5ID0gcmVzdW1hYmxlU3RhdGUuc3R5bGVSZXNvdXJjZXMuaGFzT3duUHJvcGVydHkoa2V5KTtcbiAgICB2YXIgcmVzb3VyY2VTdGF0ZSA9IGhhc0tleSA/IHJlc3VtYWJsZVN0YXRlLnN0eWxlUmVzb3VyY2VzW2tleV0gOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAocmVzb3VyY2VTdGF0ZSAhPT0gRVhJU1RTKSB7XG4gICAgICAvLyBXZSBhcmUgZ29pbmcgdG8gY3JlYXRlIHRoaXMgcmVzb3VyY2Ugbm93IHNvIGl0IGlzIG1hcmtlZCBhcyBFeGlzdHNcbiAgICAgIHJlc3VtYWJsZVN0YXRlLnN0eWxlUmVzb3VyY2VzW2tleV0gPSBFWElTVFM7IC8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgd2UndmUgZW5jb3VudGVyZWQgdGhpcyBwcmVjZWRlbmNlIHdlIG5lZWRcbiAgICAgIC8vIHRvIGNyZWF0ZSBhIFN0eWxlUXVldWVcblxuICAgICAgaWYgKCFzdHlsZVF1ZXVlKSB7XG4gICAgICAgIHN0eWxlUXVldWUgPSB7XG4gICAgICAgICAgcHJlY2VkZW5jZTogc3RyaW5nVG9DaHVuayhlc2NhcGVUZXh0Rm9yQnJvd3NlcihwcmVjZWRlbmNlKSksXG4gICAgICAgICAgcnVsZXM6IFtdLFxuICAgICAgICAgIGhyZWZzOiBbXSxcbiAgICAgICAgICBzaGVldHM6IG5ldyBNYXAoKVxuICAgICAgICB9O1xuICAgICAgICByZW5kZXJTdGF0ZS5zdHlsZXMuc2V0KHByZWNlZGVuY2UsIHN0eWxlUXVldWUpO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVzb3VyY2UgPSB7XG4gICAgICAgIHN0YXRlOiBQRU5ESU5HJDEsXG4gICAgICAgIHByb3BzOiBhc3NpZ24oe1xuICAgICAgICAgIHJlbDogJ3N0eWxlc2hlZXQnLFxuICAgICAgICAgIGhyZWY6IGhyZWYsXG4gICAgICAgICAgJ2RhdGEtcHJlY2VkZW5jZSc6IHByZWNlZGVuY2VcbiAgICAgICAgfSwgb3B0aW9ucylcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZXNvdXJjZVN0YXRlKSB7XG4gICAgICAgIC8vIFdoZW4gcmVzb3VyY2VTdGF0ZSBpcyB0cnV0eSBpdCBpcyBhIFByZWxvYWQgc3RhdGUuIFdlIGNhc3QgaXQgZm9yIGNsYXJpdHlcbiAgICAgICAgdmFyIHByZWxvYWRTdGF0ZSA9IHJlc291cmNlU3RhdGU7XG5cbiAgICAgICAgaWYgKHByZWxvYWRTdGF0ZS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBhZG9wdFByZWxvYWRDcmVkZW50aWFscyhyZXNvdXJjZS5wcm9wcywgcHJlbG9hZFN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwcmVsb2FkUmVzb3VyY2UgPSByZW5kZXJTdGF0ZS5wcmVsb2Fkcy5zdHlsZXNoZWV0cy5nZXQoa2V5KTtcblxuICAgICAgICBpZiAocHJlbG9hZFJlc291cmNlICYmIHByZWxvYWRSZXNvdXJjZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gVGhlIFByZWxvYWQgZm9yIHRoaXMgcmVzb3VyY2Ugd2FzIGNyZWF0ZWQgaW4gdGhpcyByZW5kZXIgcGFzcyBhbmQgaGFzIG5vdCBmbHVzaGVkIHlldCBzb1xuICAgICAgICAgIC8vIHdlIG5lZWQgdG8gY2xlYXIgaXQgdG8gYXZvaWQgaXQgZmx1c2hpbmcuXG4gICAgICAgICAgcHJlbG9hZFJlc291cmNlLmxlbmd0aCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRWl0aGVyIHRoZSBwcmVsb2FkIHJlc291cmNlIGZyb20gdGhpcyByZW5kZXIgYWxyZWFkeSBmbHVzaGVkIGluIHRoaXMgcmVuZGVyIHBhc3NcbiAgICAgICAgICAvLyBvciB0aGUgcHJlbG9hZCBmbHVzaGVkIGluIGEgcHJpb3IgcGFzcyAocHJlcmVuZGVyKS4gSW4gZWl0aGVyIGNhc2Ugd2UgbmVlZCB0byBtYXJrXG4gICAgICAgICAgLy8gdGhpcyByZXNvdXJjZSBhcyBhbHJlYWR5IGhhdmluZyBiZWVuIHByZWxvYWRlZC5cbiAgICAgICAgICByZXNvdXJjZS5zdGF0ZSA9IFBSRUxPQURFRDtcbiAgICAgICAgfVxuICAgICAgfSAvLyBXZSBhZGQgdGhlIG5ld2x5IGNyZWF0ZWQgcmVzb3VyY2UgdG8gb3VyIFN0eWxlUXVldWUgYW5kIGlmIG5lY2Vzc2FyeVxuICAgICAgLy8gdHJhY2sgdGhlIHJlc291cmNlIHdpdGggdGhlIGN1cnJlbnRseSByZW5kZXJpbmcgYm91bmRhcnlcblxuXG4gICAgICBzdHlsZVF1ZXVlLnNoZWV0cy5zZXQoa2V5LCByZXNvdXJjZSk7IC8vIE5vdGlmeSB0aGUgcmVxdWVzdCB0aGF0IHRoZXJlIGFyZSByZXNvdXJjZXMgdG8gZmx1c2ggZXZlbiBpZiBubyB3b3JrIGlzIGN1cnJlbnRseSBoYXBwZW5pbmdcblxuICAgICAgZmx1c2hSZXNvdXJjZXMocmVxdWVzdCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByZWluaXRTY3JpcHQoc3JjLCBvcHRpb25zKSB7XG5cbiAgdmFyIHJlcXVlc3QgPSByZXNvbHZlUmVxdWVzdCgpO1xuXG4gIGlmICghcmVxdWVzdCkge1xuICAgIC8vIEluIGFzeW5jIGNvbnRleHRzIHdlIGNhbiBzb21ldGltZXMgcmVzb2x2ZSByZXNvdXJjZXMgZnJvbSBBc3luY0xvY2FsU3RvcmFnZS4gSWYgd2UgY2FuJ3Qgd2UgY2FuIGFsc29cbiAgICAvLyBwb3NzaWJseSBnZXQgdGhlbSBmcm9tIHRoZSBzdGFjayBpZiB3ZSBhcmUgbm90IGluIGFuIGFzeW5jIGNvbnRleHQuIFNpbmNlIHdlIHdlcmUgbm90IGFibGUgdG8gcmVzb2x2ZVxuICAgIC8vIHRoZSByZXNvdXJjZXMgZm9yIHRoaXMgY2FsbCBpbiBlaXRoZXIgY2FzZSB3ZSBvcHQgdG8gZG8gbm90aGluZy4gV2UgY2FuIGNvbnNpZGVyIG1ha2luZyB0aGlzIGEgd2FybmluZ1xuICAgIC8vIGJ1dCB0aGVyZSBtYXkgYmUgdGltZXMgd2hlcmUgY2FsbGluZyBhIGZ1bmN0aW9uIG91dHNpZGUgb2YgcmVuZGVyIGlzIGludGVudGlvbmFsIChpLmUuIHRvIHdhcm0gdXAgZGF0YVxuICAgIC8vIGZldGNoaW5nKSBhbmQgd2UgZG9uJ3Qgd2FudCB0byB3YXJuIGluIHRob3NlIGNhc2VzLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciByZXN1bWFibGVTdGF0ZSA9IGdldFJlc3VtYWJsZVN0YXRlKHJlcXVlc3QpO1xuICB2YXIgcmVuZGVyU3RhdGUgPSBnZXRSZW5kZXJTdGF0ZShyZXF1ZXN0KTtcblxuICBpZiAoc3JjKSB7XG4gICAgdmFyIGtleSA9IGdldFJlc291cmNlS2V5KHNyYyk7XG4gICAgdmFyIGhhc0tleSA9IHJlc3VtYWJsZVN0YXRlLnNjcmlwdFJlc291cmNlcy5oYXNPd25Qcm9wZXJ0eShrZXkpO1xuICAgIHZhciByZXNvdXJjZVN0YXRlID0gaGFzS2V5ID8gcmVzdW1hYmxlU3RhdGUuc2NyaXB0UmVzb3VyY2VzW2tleV0gOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAocmVzb3VyY2VTdGF0ZSAhPT0gRVhJU1RTKSB7XG4gICAgICAvLyBXZSBhcmUgZ29pbmcgdG8gY3JlYXRlIHRoaXMgcmVzb3VyY2Ugbm93IHNvIGl0IGlzIG1hcmtlZCBhcyBFeGlzdHNcbiAgICAgIHJlc3VtYWJsZVN0YXRlLnNjcmlwdFJlc291cmNlc1trZXldID0gRVhJU1RTO1xuXG4gICAgICB2YXIgcHJvcHMgPSBhc3NpZ24oe1xuICAgICAgICBzcmM6IHNyYyxcbiAgICAgICAgYXN5bmM6IHRydWVcbiAgICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgICBpZiAocmVzb3VyY2VTdGF0ZSkge1xuICAgICAgICAvLyBXaGVuIHJlc291cmNlU3RhdGUgaXMgdHJ1dHkgaXQgaXMgYSBQcmVsb2FkIHN0YXRlLiBXZSBjYXN0IGl0IGZvciBjbGFyaXR5XG4gICAgICAgIHZhciBwcmVsb2FkU3RhdGUgPSByZXNvdXJjZVN0YXRlO1xuXG4gICAgICAgIGlmIChwcmVsb2FkU3RhdGUubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgYWRvcHRQcmVsb2FkQ3JlZGVudGlhbHMocHJvcHMsIHByZWxvYWRTdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJlbG9hZFJlc291cmNlID0gcmVuZGVyU3RhdGUucHJlbG9hZHMuc2NyaXB0cy5nZXQoa2V5KTtcblxuICAgICAgICBpZiAocHJlbG9hZFJlc291cmNlKSB7XG4gICAgICAgICAgLy8gdGhlIHByZWxvYWQgcmVzb3VyY2UgZXhpc3RzIHdhcyBjcmVhdGVkIGluIHRoaXMgcmVuZGVyLiBOb3cgdGhhdCB3ZSBoYXZlXG4gICAgICAgICAgLy8gYSBzY3JpcHQgcmVzb3VyY2Ugd2hpY2ggd2lsbCBlbWl0IGVhcmxpZXIgdGhhbiBhIHByZWxvYWQgd291bGQgaWYgaXRcbiAgICAgICAgICAvLyBoYXNuJ3QgYWxyZWFkeSBmbHVzaGVkIHdlIHByZXZlbnQgaXQgZnJvbSBmbHVzaGluZyBieSB6ZXJvaW5nIHRoZSBsZW5ndGhcbiAgICAgICAgICBwcmVsb2FkUmVzb3VyY2UubGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgcmVzb3VyY2UgPSBbXTsgLy8gQWRkIHRvIHRoZSBzY3JpcHQgZmx1c2hpbmcgcXVldWVcblxuICAgICAgcmVuZGVyU3RhdGUuc2NyaXB0cy5hZGQocmVzb3VyY2UpOyAvLyBlbmNvZGUgdGhlIHRhZyBhcyBDaHVua3NcblxuICAgICAgcHVzaFNjcmlwdEltcGwocmVzb3VyY2UsIHByb3BzKTsgLy8gTm90aWZ5IHRoZSByZXF1ZXN0IHRoYXQgdGhlcmUgYXJlIHJlc291cmNlcyB0byBmbHVzaCBldmVuIGlmIG5vIHdvcmsgaXMgY3VycmVudGx5IGhhcHBlbmluZ1xuXG4gICAgICBmbHVzaFJlc291cmNlcyhyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlaW5pdE1vZHVsZVNjcmlwdChzcmMsIG9wdGlvbnMpIHtcblxuICB2YXIgcmVxdWVzdCA9IHJlc29sdmVSZXF1ZXN0KCk7XG5cbiAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgLy8gSW4gYXN5bmMgY29udGV4dHMgd2UgY2FuIHNvbWV0aW1lcyByZXNvbHZlIHJlc291cmNlcyBmcm9tIEFzeW5jTG9jYWxTdG9yYWdlLiBJZiB3ZSBjYW4ndCB3ZSBjYW4gYWxzb1xuICAgIC8vIHBvc3NpYmx5IGdldCB0aGVtIGZyb20gdGhlIHN0YWNrIGlmIHdlIGFyZSBub3QgaW4gYW4gYXN5bmMgY29udGV4dC4gU2luY2Ugd2Ugd2VyZSBub3QgYWJsZSB0byByZXNvbHZlXG4gICAgLy8gdGhlIHJlc291cmNlcyBmb3IgdGhpcyBjYWxsIGluIGVpdGhlciBjYXNlIHdlIG9wdCB0byBkbyBub3RoaW5nLiBXZSBjYW4gY29uc2lkZXIgbWFraW5nIHRoaXMgYSB3YXJuaW5nXG4gICAgLy8gYnV0IHRoZXJlIG1heSBiZSB0aW1lcyB3aGVyZSBjYWxsaW5nIGEgZnVuY3Rpb24gb3V0c2lkZSBvZiByZW5kZXIgaXMgaW50ZW50aW9uYWwgKGkuZS4gdG8gd2FybSB1cCBkYXRhXG4gICAgLy8gZmV0Y2hpbmcpIGFuZCB3ZSBkb24ndCB3YW50IHRvIHdhcm4gaW4gdGhvc2UgY2FzZXMuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIHJlc3VtYWJsZVN0YXRlID0gZ2V0UmVzdW1hYmxlU3RhdGUocmVxdWVzdCk7XG4gIHZhciByZW5kZXJTdGF0ZSA9IGdldFJlbmRlclN0YXRlKHJlcXVlc3QpO1xuXG4gIGlmIChzcmMpIHtcbiAgICB2YXIga2V5ID0gZ2V0UmVzb3VyY2VLZXkoc3JjKTtcbiAgICB2YXIgaGFzS2V5ID0gcmVzdW1hYmxlU3RhdGUubW9kdWxlU2NyaXB0UmVzb3VyY2VzLmhhc093blByb3BlcnR5KGtleSk7XG4gICAgdmFyIHJlc291cmNlU3RhdGUgPSBoYXNLZXkgPyByZXN1bWFibGVTdGF0ZS5tb2R1bGVTY3JpcHRSZXNvdXJjZXNba2V5XSA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChyZXNvdXJjZVN0YXRlICE9PSBFWElTVFMpIHtcbiAgICAgIC8vIFdlIGFyZSBnb2luZyB0byBjcmVhdGUgdGhpcyByZXNvdXJjZSBub3cgc28gaXQgaXMgbWFya2VkIGFzIEV4aXN0c1xuICAgICAgcmVzdW1hYmxlU3RhdGUubW9kdWxlU2NyaXB0UmVzb3VyY2VzW2tleV0gPSBFWElTVFM7XG5cbiAgICAgIHZhciBwcm9wcyA9IGFzc2lnbih7XG4gICAgICAgIHNyYzogc3JjLFxuICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgYXN5bmM6IHRydWVcbiAgICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgICBpZiAocmVzb3VyY2VTdGF0ZSkge1xuICAgICAgICAvLyBXaGVuIHJlc291cmNlU3RhdGUgaXMgdHJ1dHkgaXQgaXMgYSBQcmVsb2FkIHN0YXRlLiBXZSBjYXN0IGl0IGZvciBjbGFyaXR5XG4gICAgICAgIHZhciBwcmVsb2FkU3RhdGUgPSByZXNvdXJjZVN0YXRlO1xuXG4gICAgICAgIGlmIChwcmVsb2FkU3RhdGUubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgYWRvcHRQcmVsb2FkQ3JlZGVudGlhbHMocHJvcHMsIHByZWxvYWRTdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJlbG9hZFJlc291cmNlID0gcmVuZGVyU3RhdGUucHJlbG9hZHMubW9kdWxlU2NyaXB0cy5nZXQoa2V5KTtcblxuICAgICAgICBpZiAocHJlbG9hZFJlc291cmNlKSB7XG4gICAgICAgICAgLy8gdGhlIHByZWxvYWQgcmVzb3VyY2UgZXhpc3RzIHdhcyBjcmVhdGVkIGluIHRoaXMgcmVuZGVyLiBOb3cgdGhhdCB3ZSBoYXZlXG4gICAgICAgICAgLy8gYSBzY3JpcHQgcmVzb3VyY2Ugd2hpY2ggd2lsbCBlbWl0IGVhcmxpZXIgdGhhbiBhIHByZWxvYWQgd291bGQgaWYgaXRcbiAgICAgICAgICAvLyBoYXNuJ3QgYWxyZWFkeSBmbHVzaGVkIHdlIHByZXZlbnQgaXQgZnJvbSBmbHVzaGluZyBieSB6ZXJvaW5nIHRoZSBsZW5ndGhcbiAgICAgICAgICBwcmVsb2FkUmVzb3VyY2UubGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgcmVzb3VyY2UgPSBbXTsgLy8gQWRkIHRvIHRoZSBzY3JpcHQgZmx1c2hpbmcgcXVldWVcblxuICAgICAgcmVuZGVyU3RhdGUuc2NyaXB0cy5hZGQocmVzb3VyY2UpOyAvLyBlbmNvZGUgdGhlIHRhZyBhcyBDaHVua3NcblxuICAgICAgcHVzaFNjcmlwdEltcGwocmVzb3VyY2UsIHByb3BzKTsgLy8gTm90aWZ5IHRoZSByZXF1ZXN0IHRoYXQgdGhlcmUgYXJlIHJlc291cmNlcyB0byBmbHVzaCBldmVuIGlmIG5vIHdvcmsgaXMgY3VycmVudGx5IGhhcHBlbmluZ1xuXG4gICAgICBmbHVzaFJlc291cmNlcyhyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cbn0gLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHNhZmUgdG8gY2FsbCBhdCBSZXF1ZXN0IHN0YXJ0IHRpbWUgc2luY2UgaXQgYXNzdW1lc1xuLy8gdGhhdCBlYWNoIG1vZHVsZSBoYXMgbm90IGFscmVhZHkgYmVlbiBwcmVsb2FkZWQuIElmIHdlIGZpbmQgYSBuZWVkIHRvIHByZWxvYWRcbi8vIHNjcmlwdHMgYXQgYW55IG90aGVyIHBvaW50IGluIHRpbWUgd2Ugd2lsbCBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHByZWxvYWRcbi8vIGFscmVhZHkgZXhpc3RzIGFuZCBub3QgYXNzdW1lIGl0XG5cblxuZnVuY3Rpb24gcHJlbG9hZEJvb3RzdHJhcFNjcmlwdE9yTW9kdWxlKHJlc3VtYWJsZVN0YXRlLCByZW5kZXJTdGF0ZSwgaHJlZiwgcHJvcHMpIHtcblxuICB2YXIga2V5ID0gZ2V0UmVzb3VyY2VLZXkoaHJlZik7XG5cbiAge1xuICAgIGlmIChyZXN1bWFibGVTdGF0ZS5zY3JpcHRSZXNvdXJjZXMuaGFzT3duUHJvcGVydHkoa2V5KSB8fCByZXN1bWFibGVTdGF0ZS5tb2R1bGVTY3JpcHRSZXNvdXJjZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgLy8gVGhpcyBpcyBjb2RlZCBhcyBhIFJlYWN0IGVycm9yIGJlY2F1c2UgaXQgc2hvdWxkIGJlIGltcG9zc2libGUgZm9yIGEgdXNlcnNwYWNlIHByZWxvYWQgdG8gcHJlZW1wdCB0aGlzIGNhbGxcbiAgICAgIC8vIElmIGEgdXNlcnNwYWNlIHByZWxvYWQgY2FuIHByZWVtcHQgaXQgdGhlbiB0aGlzIGFzc3VtcHRpb24gaXMgYnJva2VuIGFuZCB3ZSBuZWVkIHRvIHJlY29uc2lkZXIgdGhpcyBzdHJhdGVneVxuICAgICAgLy8gcmF0aGVyIHRoYW4gaW5zdHJ1Y3QgdGhlIHVzZXIgdG8gbm90IHByZWxvYWQgdGhlaXIgYm9vdHN0cmFwIHNjcmlwdHMgdGhlbXNlbHZlc1xuICAgICAgZXJyb3IoJ0ludGVybmFsIFJlYWN0IEVycm9yOiBSZWFjdCBleHBlY3RlZCBib290c3RyYXAgc2NyaXB0IG9yIG1vZHVsZSB3aXRoIHNyYyBcIiVzXCIgdG8gbm90IGhhdmUgYmVlbiBwcmVsb2FkZWQgYWxyZWFkeS4gcGxlYXNlIGZpbGUgYW4gaXNzdWUnLCBocmVmKTtcbiAgICB9XG4gIH0gLy8gVGhlIGhyZWYgdXNlZCBmb3IgYm9vdHN0cmFwIHNjcmlwdHMgYW5kIGJvb3RzdHJhcCBtb2R1bGVzIHNob3VsZCBuZXZlciBiZVxuICAvLyB1c2VkIHRvIHByZWluaXQgdGhlIHJlc291cmNlLiBJZiBhIHNjcmlwdCBjYW4gYmUgcHJlaW5pdGVkIHRoZW4gaXQgc2hvdWxkbid0XG4gIC8vIGJlIGEgYm9vdHN0cmFwIHNjcmlwdC9tb2R1bGUgYW5kIGlmIGl0IGlzIGEgYm9vdHN0cmFwIHNjcmlwdC9tb2R1bGUgdGhlbiBpdFxuICAvLyBtdXN0IG5vdCBiZSBzYWZlIHRvIGVtaXQgZWFybHkuIFRvIGF2b2lkIHBvc3NpYmx5IGFsbG93aW5nIGZvciBwcmVpbml0cyBvZlxuICAvLyBib290c3RyYXAgc2NyaXB0cy9tb2R1bGVzIHdlIG9jY2x1ZGUgdGhlc2Uga2V5cy5cblxuXG4gIHJlc3VtYWJsZVN0YXRlLnNjcmlwdFJlc291cmNlc1trZXldID0gRVhJU1RTO1xuICByZXN1bWFibGVTdGF0ZS5tb2R1bGVTY3JpcHRSZXNvdXJjZXNba2V5XSA9IEVYSVNUUztcbiAgdmFyIHJlc291cmNlID0gW107XG4gIHB1c2hMaW5rSW1wbChyZXNvdXJjZSwgcHJvcHMpO1xuICByZW5kZXJTdGF0ZS5ib290c3RyYXBTY3JpcHRzLmFkZChyZXNvdXJjZSk7XG59XG5cbmZ1bmN0aW9uIGludGVybmFsUHJlaW5pdFNjcmlwdChyZXN1bWFibGVTdGF0ZSwgcmVuZGVyU3RhdGUsIHNyYywgY2h1bmtzKSB7XG4gIHZhciBrZXkgPSBnZXRSZXNvdXJjZUtleShzcmMpO1xuXG4gIGlmICghcmVzdW1hYmxlU3RhdGUuc2NyaXB0UmVzb3VyY2VzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICB2YXIgcmVzb3VyY2UgPSBjaHVua3M7XG4gICAgcmVzdW1hYmxlU3RhdGUuc2NyaXB0UmVzb3VyY2VzW2tleV0gPSBFWElTVFM7XG4gICAgcmVuZGVyU3RhdGUuc2NyaXB0cy5hZGQocmVzb3VyY2UpO1xuICB9XG5cbiAgcmV0dXJuO1xufVxuXG5mdW5jdGlvbiBwcmVsb2FkQXNTdHlsZVByb3BzRnJvbVByb3BzKGhyZWYsIHByb3BzKSB7XG4gIHJldHVybiB7XG4gICAgcmVsOiAncHJlbG9hZCcsXG4gICAgYXM6ICdzdHlsZScsXG4gICAgaHJlZjogaHJlZixcbiAgICBjcm9zc09yaWdpbjogcHJvcHMuY3Jvc3NPcmlnaW4sXG4gICAgZmV0Y2hQcmlvcml0eTogcHJvcHMuZmV0Y2hQcmlvcml0eSxcbiAgICBpbnRlZ3JpdHk6IHByb3BzLmludGVncml0eSxcbiAgICBtZWRpYTogcHJvcHMubWVkaWEsXG4gICAgaHJlZkxhbmc6IHByb3BzLmhyZWZMYW5nLFxuICAgIHJlZmVycmVyUG9saWN5OiBwcm9wcy5yZWZlcnJlclBvbGljeVxuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZXNoZWV0UHJvcHNGcm9tUmF3UHJvcHMocmF3UHJvcHMpIHtcbiAgcmV0dXJuIGFzc2lnbih7fSwgcmF3UHJvcHMsIHtcbiAgICAnZGF0YS1wcmVjZWRlbmNlJzogcmF3UHJvcHMucHJlY2VkZW5jZSxcbiAgICBwcmVjZWRlbmNlOiBudWxsXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZG9wdFByZWxvYWRDcmVkZW50aWFscyh0YXJnZXQsIHByZWxvYWRTdGF0ZSkge1xuICBpZiAodGFyZ2V0LmNyb3NzT3JpZ2luID09IG51bGwpIHRhcmdldC5jcm9zc09yaWdpbiA9IHByZWxvYWRTdGF0ZVswXTtcbiAgaWYgKHRhcmdldC5pbnRlZ3JpdHkgPT0gbnVsbCkgdGFyZ2V0LmludGVncml0eSA9IHByZWxvYWRTdGF0ZVsxXTtcbn1cblxuZnVuY3Rpb24gZ2V0UHJlZmV0Y2hETlNBc0hlYWRlcihocmVmKSB7XG4gIHZhciBlc2NhcGVkSHJlZiA9IGVzY2FwZUhyZWZGb3JMaW5rSGVhZGVyVVJMQ29udGV4dChocmVmKTtcbiAgcmV0dXJuIFwiPFwiICsgZXNjYXBlZEhyZWYgKyBcIj47IHJlbD1kbnMtcHJlZmV0Y2hcIjtcbn1cblxuZnVuY3Rpb24gZ2V0UHJlY29ubmVjdEFzSGVhZGVyKGhyZWYsIGNyb3NzT3JpZ2luKSB7XG4gIHZhciBlc2NhcGVkSHJlZiA9IGVzY2FwZUhyZWZGb3JMaW5rSGVhZGVyVVJMQ29udGV4dChocmVmKTtcbiAgdmFyIHZhbHVlID0gXCI8XCIgKyBlc2NhcGVkSHJlZiArIFwiPjsgcmVsPXByZWNvbm5lY3RcIjtcblxuICBpZiAodHlwZW9mIGNyb3NzT3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgIHZhciBlc2NhcGVkQ3Jvc3NPcmlnaW4gPSBlc2NhcGVTdHJpbmdGb3JMaW5rSGVhZGVyUXVvdGVkUGFyYW1WYWx1ZUNvbnRleHQoY3Jvc3NPcmlnaW4sICdjcm9zc09yaWdpbicpO1xuICAgIHZhbHVlICs9IFwiOyBjcm9zc29yaWdpbj1cXFwiXCIgKyBlc2NhcGVkQ3Jvc3NPcmlnaW4gKyBcIlxcXCJcIjtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0UHJlbG9hZEFzSGVhZGVyKGhyZWYsIGFzLCBwYXJhbXMpIHtcbiAgdmFyIGVzY2FwZWRIcmVmID0gZXNjYXBlSHJlZkZvckxpbmtIZWFkZXJVUkxDb250ZXh0KGhyZWYpO1xuICB2YXIgZXNjYXBlZEFzID0gZXNjYXBlU3RyaW5nRm9yTGlua0hlYWRlclF1b3RlZFBhcmFtVmFsdWVDb250ZXh0KGFzLCAnYXMnKTtcbiAgdmFyIHZhbHVlID0gXCI8XCIgKyBlc2NhcGVkSHJlZiArIFwiPjsgcmVsPXByZWxvYWQ7IGFzPVxcXCJcIiArIGVzY2FwZWRBcyArIFwiXFxcIlwiO1xuXG4gIGZvciAodmFyIHBhcmFtTmFtZSBpbiBwYXJhbXMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwYXJhbXMsIHBhcmFtTmFtZSkpIHtcbiAgICAgIHZhciBwYXJhbVZhbHVlID0gcGFyYW1zW3BhcmFtTmFtZV07XG5cbiAgICAgIGlmICh0eXBlb2YgcGFyYW1WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdmFsdWUgKz0gXCI7IFwiICsgcGFyYW1OYW1lLnRvTG93ZXJDYXNlKCkgKyBcIj1cXFwiXCIgKyBlc2NhcGVTdHJpbmdGb3JMaW5rSGVhZGVyUXVvdGVkUGFyYW1WYWx1ZUNvbnRleHQocGFyYW1WYWx1ZSwgcGFyYW1OYW1lKSArIFwiXFxcIlwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0U3R5bGVzaGVldFByZWxvYWRBc0hlYWRlcihzdHlsZXNoZWV0KSB7XG4gIHZhciBwcm9wcyA9IHN0eWxlc2hlZXQucHJvcHM7XG4gIHZhciBwcmVsb2FkT3B0aW9ucyA9IHtcbiAgICBjcm9zc09yaWdpbjogcHJvcHMuY3Jvc3NPcmlnaW4sXG4gICAgaW50ZWdyaXR5OiBwcm9wcy5pbnRlZ3JpdHksXG4gICAgbm9uY2U6IHByb3BzLm5vbmNlLFxuICAgIHR5cGU6IHByb3BzLnR5cGUsXG4gICAgZmV0Y2hQcmlvcml0eTogcHJvcHMuZmV0Y2hQcmlvcml0eSxcbiAgICByZWZlcnJlclBvbGljeTogcHJvcHMucmVmZXJyZXJQb2xpY3ksXG4gICAgbWVkaWE6IHByb3BzLm1lZGlhXG4gIH07XG4gIHJldHVybiBnZXRQcmVsb2FkQXNIZWFkZXIocHJvcHMuaHJlZiwgJ3N0eWxlJywgcHJlbG9hZE9wdGlvbnMpO1xufSAvLyBUaGlzIGVzY2FwaW5nIGZ1bmN0aW9uIGlzIG9ubHkgc2FmZSB0byB1c2UgZm9yIGhyZWYgdmFsdWVzIGJlaW5nIHdyaXR0ZW4gaW50b1xuLy8gYSBcIkxpbmtcIiBoZWFkZXIgaW4gYmV0d2VlbiBgPGAgYW5kIGA+YCBjaGFyYWN0ZXJzLiBUaGUgcHJpbWFyeSBjb25jZXJuIHdpdGggdGhlIGhyZWYgaXNcbi8vIHRvIGVzY2FwZSB0aGUgYm91bmRpbmcgY2hhcmFjdGVycyBhcyB3ZWxsIGFzIG5ldyBsaW5lcy4gVGhpcyBpcyB1bnNhZmUgdG8gdXNlIGluIGFueSBvdGhlclxuLy8gY29udGV4dFxuXG5cbnZhciByZWdleEZvckhyZWZJbkxpbmtIZWFkZXJVUkxDb250ZXh0ID0gL1s8Plxcclxcbl0vZztcblxuZnVuY3Rpb24gZXNjYXBlSHJlZkZvckxpbmtIZWFkZXJVUkxDb250ZXh0KGhyZWZJbnB1dCkge1xuICB7XG4gICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihocmVmSW5wdXQsICdocmVmJyk7XG4gIH1cblxuICB2YXIgY29lcmNlZEhyZWYgPSAnJyArIGhyZWZJbnB1dDtcbiAgcmV0dXJuIGNvZXJjZWRIcmVmLnJlcGxhY2UocmVnZXhGb3JIcmVmSW5MaW5rSGVhZGVyVVJMQ29udGV4dCwgZXNjYXBlSHJlZkZvckxpbmtIZWFkZXJVUkxDb250ZXh0UmVwbGFjZXIpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVIcmVmRm9yTGlua0hlYWRlclVSTENvbnRleHRSZXBsYWNlcihtYXRjaCkge1xuICBzd2l0Y2ggKG1hdGNoKSB7XG4gICAgY2FzZSAnPCc6XG4gICAgICByZXR1cm4gJyUzQyc7XG5cbiAgICBjYXNlICc+JzpcbiAgICAgIHJldHVybiAnJTNFJztcblxuICAgIGNhc2UgJ1xcbic6XG4gICAgICByZXR1cm4gJyUwQSc7XG5cbiAgICBjYXNlICdcXHInOlxuICAgICAgcmV0dXJuICclMEQnO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3Byb2QtZXJyb3ItY29kZXNcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdlc2NhcGVMaW5rSHJlZkZvckhlYWRlckNvbnRleHRSZXBsYWNlciBlbmNvdW50ZXJlZCBhIG1hdGNoIGl0IGRvZXMgbm90IGtub3cgaG93IHRvIHJlcGxhY2UuIHRoaXMgbWVhbnMgdGhlIG1hdGNoIHJlZ2V4IGFuZCB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVycyBhcmUgbm8gbG9uZ2VyIGluIHN5bmMuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QnKTtcbiAgICAgIH1cbiAgfVxufSAvLyBUaGlzIGVzY2FwaW5nIGZ1bmN0aW9uIGlzIG9ubHkgc2FmZSB0byB1c2UgZm9yIHF1b3RlZCBwYXJhbSB2YWx1ZXMgaW4gYW4gSFRUUCBoZWFkZXIuXG4vLyBJdCBpcyB1bnNhZmUgdG8gdXNlIGZvciBhbnkgdmFsdWUgbm90IGluc2lkZSBxdW90ZSBtYXJrcyBpbiBwYXJhdGVyIHZhbHVlIHBvc2l0aW9uLlxuXG5cbnZhciByZWdleEZvckxpbmtIZWFkZXJRdW90ZWRQYXJhbVZhbHVlQ29udGV4dCA9IC9bXCInOyxcXHJcXG5dL2c7XG5cbmZ1bmN0aW9uIGVzY2FwZVN0cmluZ0ZvckxpbmtIZWFkZXJRdW90ZWRQYXJhbVZhbHVlQ29udGV4dCh2YWx1ZSwgbmFtZSkge1xuICB7XG4gICAgY2hlY2tPcHRpb25TdHJpbmdDb2VyY2lvbih2YWx1ZSwgbmFtZSk7XG4gIH1cblxuICB2YXIgY29lcmNlZCA9ICcnICsgdmFsdWU7XG4gIHJldHVybiBjb2VyY2VkLnJlcGxhY2UocmVnZXhGb3JMaW5rSGVhZGVyUXVvdGVkUGFyYW1WYWx1ZUNvbnRleHQsIGVzY2FwZVN0cmluZ0ZvckxpbmtIZWFkZXJRdW90ZWRQYXJhbVZhbHVlQ29udGV4dFJlcGxhY2VyKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlU3RyaW5nRm9yTGlua0hlYWRlclF1b3RlZFBhcmFtVmFsdWVDb250ZXh0UmVwbGFjZXIobWF0Y2gpIHtcbiAgc3dpdGNoIChtYXRjaCkge1xuICAgIGNhc2UgJ1wiJzpcbiAgICAgIHJldHVybiAnJTIyJztcblxuICAgIGNhc2UgXCInXCI6XG4gICAgICByZXR1cm4gJyUyNyc7XG5cbiAgICBjYXNlICc7JzpcbiAgICAgIHJldHVybiAnJTNCJztcblxuICAgIGNhc2UgJywnOlxuICAgICAgcmV0dXJuICclMkMnO1xuXG4gICAgY2FzZSAnXFxuJzpcbiAgICAgIHJldHVybiAnJTBBJztcblxuICAgIGNhc2UgJ1xccic6XG4gICAgICByZXR1cm4gJyUwRCc7XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2VzY2FwZVN0cmluZ0ZvckxpbmtIZWFkZXJRdW90ZWRQYXJhbVZhbHVlQ29udGV4dFJlcGxhY2VyIGVuY291bnRlcmVkIGEgbWF0Y2ggaXQgZG9lcyBub3Qga25vdyBob3cgdG8gcmVwbGFjZS4gdGhpcyBtZWFucyB0aGUgbWF0Y2ggcmVnZXggYW5kIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXJzIGFyZSBubyBsb25nZXIgaW4gc3luYy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdCcpO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGhvaXN0U3R5bGVRdWV1ZURlcGVuZGVuY3koc3R5bGVRdWV1ZSkge1xuICB0aGlzLnN0eWxlcy5hZGQoc3R5bGVRdWV1ZSk7XG59XG5cbmZ1bmN0aW9uIGhvaXN0U3R5bGVzaGVldERlcGVuZGVuY3koc3R5bGVzaGVldCkge1xuICB0aGlzLnN0eWxlc2hlZXRzLmFkZChzdHlsZXNoZWV0KTtcbn1cblxuZnVuY3Rpb24gaG9pc3RSZXNvdXJjZXMocmVuZGVyU3RhdGUsIHNvdXJjZSkge1xuICB2YXIgY3VycmVudEJvdW5kYXJ5UmVzb3VyY2VzID0gcmVuZGVyU3RhdGUuYm91bmRhcnlSZXNvdXJjZXM7XG5cbiAgaWYgKGN1cnJlbnRCb3VuZGFyeVJlc291cmNlcykge1xuICAgIHNvdXJjZS5zdHlsZXMuZm9yRWFjaChob2lzdFN0eWxlUXVldWVEZXBlbmRlbmN5LCBjdXJyZW50Qm91bmRhcnlSZXNvdXJjZXMpO1xuICAgIHNvdXJjZS5zdHlsZXNoZWV0cy5mb3JFYWNoKGhvaXN0U3R5bGVzaGVldERlcGVuZGVuY3ksIGN1cnJlbnRCb3VuZGFyeVJlc291cmNlcyk7XG4gIH1cbn0gLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYXQgdmFyaW91cyB0aW1lcyBkZXBlbmRpbmcgb24gd2hldGhlciB3ZSBhcmUgcmVuZGVyaW5nXG4vLyBvciBwcmVyZW5kZXJpbmcuIEluIHRoaXMgaW1wbGVtZW50YXRpb24gd2Ugb25seSBhY3R1YWxseSBlbWl0IGhlYWRlcnMgb25jZSBhbmRcbi8vIHN1YnNlcXVlbnQgY2FsbHMgYXJlIGlnbm9yZWQuIFdlIHRyYWNrIHdoZXRoZXIgdGhlIHJlcXVlc3QgaGFzIGEgY29tcGxldGVkIHNoZWxsXG4vLyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSB3aWxsIGZvbGxvdyBoZWFkZXJzIHdpdGggYSBmbHVzaCBpbmNsdWRpbmcgc3R5bGVzaGVldHMuXG4vLyBJbiB0aGUgY29udGV4dCBvZiBwcmVycmVuZGVyIHdlIGRvbid0IGhhdmUgYSBjb21wbGV0ZWQgc2hlbGwgd2hlbiB0aGUgcmVxdWVzdCBmaW5pc2hlc1xuLy8gd2l0aCBhIHBvc3Rwb25lIGluIHRoZSBzaGVsbC4gSW4gdGhlIGNvbnRleHQgb2YgYSByZW5kZXIgd2UgZG9uJ3QgaGF2ZSBhIGNvbXBsZXRlZCBzaGVsbFxuLy8gaWYgdGhpcyBpcyBjYWxsZWQgYmVmb3JlIHRoZSBzaGVsbCBmaW5pc2hlcyByZW5kZXJpbmcgd2hpY2ggdXN1YWxseSB3aWxsIGhhcHBlbiBhbnl0aW1lXG4vLyBhbnl0aGluZyBzdXNwZW5kcyBpbiB0aGUgc2hlbGwuXG5cbmZ1bmN0aW9uIGVtaXRFYXJseVByZWxvYWRzKHJlbmRlclN0YXRlLCByZXN1bWFibGVTdGF0ZSwgc2hlbGxDb21wbGV0ZSkge1xuICB2YXIgb25IZWFkZXJzID0gcmVuZGVyU3RhdGUub25IZWFkZXJzO1xuXG4gIGlmIChvbkhlYWRlcnMpIHtcbiAgICB2YXIgaGVhZGVycyA9IHJlbmRlclN0YXRlLmhlYWRlcnM7XG5cbiAgICBpZiAoaGVhZGVycykge1xuICAgICAgLy8gRXZlbiBpZiBvbkhlYWRlcnMgdGhyb3dzIHdlIGRvbid0IHdhbnQgdG8gY2FsbCB0aGlzIGFnYWluIHNvXG4gICAgICAvLyB3ZSBkcm9wIHRoZSBoZWFkZXJzIHN0YXRlIGZyb20gdGhpcyBwb2ludCBvbndhcmRzLlxuICAgICAgcmVuZGVyU3RhdGUuaGVhZGVycyA9IG51bGw7XG4gICAgICB2YXIgbGlua0hlYWRlciA9IGhlYWRlcnMucHJlY29ubmVjdHM7XG5cbiAgICAgIGlmIChoZWFkZXJzLmZvbnRQcmVsb2Fkcykge1xuICAgICAgICBpZiAobGlua0hlYWRlcikge1xuICAgICAgICAgIGxpbmtIZWFkZXIgKz0gJywgJztcbiAgICAgICAgfVxuXG4gICAgICAgIGxpbmtIZWFkZXIgKz0gaGVhZGVycy5mb250UHJlbG9hZHM7XG4gICAgICB9XG5cbiAgICAgIGlmIChoZWFkZXJzLmhpZ2hJbWFnZVByZWxvYWRzKSB7XG4gICAgICAgIGlmIChsaW5rSGVhZGVyKSB7XG4gICAgICAgICAgbGlua0hlYWRlciArPSAnLCAnO1xuICAgICAgICB9XG5cbiAgICAgICAgbGlua0hlYWRlciArPSBoZWFkZXJzLmhpZ2hJbWFnZVByZWxvYWRzO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXNoZWxsQ29tcGxldGUpIHtcbiAgICAgICAgLy8gV2UgdXNlIHJhdyBpdGVyYXRvcnMgYmVjYXVzZSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gaGFsdCBpdGVyYXRpb25cbiAgICAgICAgLy8gV2UgY291bGQgcmVmYWN0b3IgcmVuZGVyU3RhdGUgdG8gc3RvcmUgdGhlc2UgZHVhbGx5IGluIGFycmF5cyB0b1xuICAgICAgICAvLyBtYWtlIHRoaXMgbW9yZSBlZmZpY2llbnQgYXQgdGhlIGNvc3Qgb2YgYWRkaXRpb25hbCBtZW1vcnkgYW5kXG4gICAgICAgIC8vIHdyaXRlIG92ZXJoZWFkLiBIb3dldmVyIHRoaXMgY29kZSBvbmx5IHJ1bnMgb25jZSBwZXIgcmVxdWVzdCBzb1xuICAgICAgICAvLyBmb3Igbm93IEkgY29uc2lkZXIgdGhpcyBzdWZmaWNpZW50LlxuICAgICAgICB2YXIgcXVldWVJdGVyID0gcmVuZGVyU3RhdGUuc3R5bGVzLnZhbHVlcygpO1xuXG4gICAgICAgIG91dGVyOiBmb3IgKHZhciBxdWV1ZVN0ZXAgPSBxdWV1ZUl0ZXIubmV4dCgpOyBoZWFkZXJzLnJlbWFpbmluZ0NhcGFjaXR5ID4gMCAmJiAhcXVldWVTdGVwLmRvbmU7IHF1ZXVlU3RlcCA9IHF1ZXVlSXRlci5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgc2hlZXRzID0gcXVldWVTdGVwLnZhbHVlLnNoZWV0cztcbiAgICAgICAgICB2YXIgc2hlZXRJdGVyID0gc2hlZXRzLnZhbHVlcygpO1xuXG4gICAgICAgICAgZm9yICh2YXIgc2hlZXRTdGVwID0gc2hlZXRJdGVyLm5leHQoKTsgaGVhZGVycy5yZW1haW5pbmdDYXBhY2l0eSA+IDAgJiYgIXNoZWV0U3RlcC5kb25lOyBzaGVldFN0ZXAgPSBzaGVldEl0ZXIubmV4dCgpKSB7XG4gICAgICAgICAgICB2YXIgc2hlZXQgPSBzaGVldFN0ZXAudmFsdWU7XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSBzaGVldC5wcm9wcztcbiAgICAgICAgICAgIHZhciBrZXkgPSBnZXRSZXNvdXJjZUtleShwcm9wcy5ocmVmKTtcbiAgICAgICAgICAgIHZhciBoZWFkZXIgPSBnZXRTdHlsZXNoZWV0UHJlbG9hZEFzSGVhZGVyKHNoZWV0KTsgLy8gV2UgbXV0YXRlIHRoZSBjYXBhY2l0eSBiL2Mgd2UgZG9uJ3Qgd2FudCB0byBrZWVwIGNoZWNraW5nIGlmIGxhdGVyIGhlYWRlcnMgd2lsbCBmaXQuXG4gICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgYSBwYXJ0aWN1bGFybHkgbG9uZyBoZWFkZXIgbWlnaHQgY2xvc2Ugb3V0IHRoZSBoZWFkZXIgcXVldWUgd2hlcmUgbGF0ZXJcbiAgICAgICAgICAgIC8vIGhlYWRlcnMgY291bGQgc3RpbGwgZml0LiBXZSBjb3VsZCBpbiB0aGUgZnV0dXJlIGFsdGVyIHRoZSBiZWhhdmlvciBoZXJlIGJhc2VkIG9uIHByZXJlbmRlciB2cyByZW5kZXJcbiAgICAgICAgICAgIC8vIHNpbmNlIGR1cmluZyBwcmVyZW5kZXIgd2UgYXJlbid0IGFzIGNvbmNlcm5lZCB3aXRoIHB1cmUgcnVudGltZSBwZXJmb3JtYW5jZS5cblxuICAgICAgICAgICAgaWYgKChoZWFkZXJzLnJlbWFpbmluZ0NhcGFjaXR5IC09IGhlYWRlci5sZW5ndGgpID49IDIpIHtcbiAgICAgICAgICAgICAgcmVuZGVyU3RhdGUucmVzZXRzLnN0eWxlW2tleV0gPSBQUkVMT0FEX05PX0NSRURTO1xuXG4gICAgICAgICAgICAgIGlmIChsaW5rSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgbGlua0hlYWRlciArPSAnLCAnO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgbGlua0hlYWRlciArPSBoZWFkZXI7IC8vIFdlIGFscmVhZHkgdHJhY2sgdGhhdCB0aGUgcmVzb3VyY2UgZXhpc3RzIGluIHJlc3VtYWJsZVN0YXRlIGhvd2V2ZXJcbiAgICAgICAgICAgICAgLy8gaWYgdGhlIHJlc3VtYWJsZVN0YXRlIHJlc2V0cyBiZWNhdXNlIHdlIHBvc3Rwb25lZCBpbiB0aGUgc2hlbGxcbiAgICAgICAgICAgICAgLy8gd2hpY2ggaXMgd2hhdCBpcyBoYXBwZW5pbmcgaW4gdGhpcyBicmFuY2ggaWYgd2UgYXJlIHByZXJlbmRlcmluZ1xuICAgICAgICAgICAgICAvLyB0aGVuIHdlIHdpbGwgZW5kIHVwIHJlc2V0dGluZyB0aGUgcmVzdW1hYmxlU3RhdGUuIFdoZW4gaXQgcmVzZXRzIHdlXG4gICAgICAgICAgICAgIC8vIHdhbnQgdG8gcmVjb3JkIHRoZSBmYWN0IHRoYXQgdGhpcyBzdHlsZXNoZWV0IHdhcyBhbHJlYWR5IHByZWxvYWRlZFxuXG4gICAgICAgICAgICAgIHJlbmRlclN0YXRlLnJlc2V0cy5zdHlsZVtrZXldID0gdHlwZW9mIHByb3BzLmNyb3NzT3JpZ2luID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgcHJvcHMuaW50ZWdyaXR5ID09PSAnc3RyaW5nJyA/IFtwcm9wcy5jcm9zc09yaWdpbiwgcHJvcHMuaW50ZWdyaXR5XSA6IFBSRUxPQURfTk9fQ1JFRFM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGxpbmtIZWFkZXIpIHtcbiAgICAgICAgb25IZWFkZXJzKHtcbiAgICAgICAgICBMaW5rOiBsaW5rSGVhZGVyXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2Ugc3RpbGwgY2FsbCB0aGlzIHdpdGggbm8gaGVhZGVycyBiZWNhdXNlIGEgdXNlciBtYXkgYmUgdXNpbmcgaXQgYXMgYSBzaWduYWwgdGhhdFxuICAgICAgICAvLyBpdCBSZWFjdCB3aWxsIG5vdCBwcm92aWRlIGFueSBoZWFkZXJzXG4gICAgICAgIG9uSGVhZGVycyh7fSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cbnZhciBOb3RQZW5kaW5nVHJhbnNpdGlvbiA9IE5vdFBlbmRpbmc7XG5cbnZhciBzdXBwb3J0c1JlcXVlc3RTdG9yYWdlID0gdHlwZW9mIEFzeW5jTG9jYWxTdG9yYWdlID09PSAnZnVuY3Rpb24nO1xudmFyIHJlcXVlc3RTdG9yYWdlID0gc3VwcG9ydHNSZXF1ZXN0U3RvcmFnZSA/IG5ldyBBc3luY0xvY2FsU3RvcmFnZSgpIDogbnVsbDtcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvdmlkZXInKTtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb250ZXh0Jyk7XG52YXIgUkVBQ1RfU0VSVkVSX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnNlcnZlcl9jb250ZXh0Jyk7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKTtcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnNjb3BlJyk7XG52YXIgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5kZWJ1Z190cmFjZV9tb2RlJyk7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5vZmZzY3JlZW4nKTtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sZWdhY3lfaGlkZGVuJyk7XG52YXIgUkVBQ1RfQ0FDSEVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNhY2hlJyk7XG52YXIgUkVBQ1RfU0VSVkVSX0NPTlRFWFRfREVGQVVMVF9WQUxVRV9OT1RfTE9BREVEID0gU3ltYm9sLmZvcigncmVhY3QuZGVmYXVsdF92YWx1ZScpO1xudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcjtcbnZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJztcbmZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICBpZiAobWF5YmVJdGVyYWJsZSA9PT0gbnVsbCB8fCB0eXBlb2YgbWF5YmVJdGVyYWJsZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBtYXliZUl0ZXJhdG9yID0gTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXTtcblxuICBpZiAodHlwZW9mIG1heWJlSXRlcmF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gbWF5YmVJdGVyYXRvcjtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRXcmFwcGVkTmFtZShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGRpc3BsYXlOYW1lID0gb3V0ZXJUeXBlLmRpc3BsYXlOYW1lO1xuXG4gIGlmIChkaXNwbGF5TmFtZSkge1xuICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgfVxuXG4gIHZhciBmdW5jdGlvbk5hbWUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgJyc7XG4gIHJldHVybiBmdW5jdGlvbk5hbWUgIT09ICcnID8gd3JhcHBlck5hbWUgKyBcIihcIiArIGZ1bmN0aW9uTmFtZSArIFwiKVwiIDogd3JhcHBlck5hbWU7XG59IC8vIEtlZXAgaW4gc3luYyB3aXRoIHJlYWN0LXJlY29uY2lsZXIvZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlclxuXG5cbmZ1bmN0aW9uIGdldENvbnRleHROYW1lKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgJ0NvbnRleHQnO1xufVxuXG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTsgLy8gTm90ZSB0aGF0IHRoZSByZWNvbmNpbGVyIHBhY2thZ2Ugc2hvdWxkIGdlbmVyYWxseSBwcmVmZXIgdG8gdXNlIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoKSBpbnN0ZWFkLlxuXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSkge1xuICAgICAgLy8gVE9ETzogQ3JlYXRlIGEgY29udmVudGlvbiBmb3IgbmFtaW5nIGNsaWVudCByZWZlcmVuY2VzIHdpdGggZGVidWcgaW5mby5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XG5cbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xuXG4gICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N0cmljdE1vZGUnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2VMaXN0JztcblxuICAgIGNhc2UgUkVBQ1RfQ0FDSEVfVFlQRTpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuICdDYWNoZSc7XG4gICAgICB9XG5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICB7XG4gICAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgICBlcnJvcignUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHZhciBvdXRlck5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGw7XG5cbiAgICAgICAgaWYgKG91dGVyTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBvdXRlck5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgJ01lbW8nO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoaW5pdChwYXlsb2FkKSk7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV0gRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgaW5mbzogcHJvcHMsXG4gICAgICAgIGxvZzogcHJvcHMsXG4gICAgICAgIHdhcm46IHByb3BzLFxuICAgICAgICBlcnJvcjogcHJvcHMsXG4gICAgICAgIGdyb3VwOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IHByb3BzLFxuICAgICAgICBncm91cEVuZDogcHJvcHNcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBkaXNhYmxlZERlcHRoKys7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlZW5hYmxlTG9ncygpIHtcbiAge1xuICAgIGRpc2FibGVkRGVwdGgtLTtcblxuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZJbmZvXG4gICAgICAgIH0pLFxuICAgICAgICB3YXJuOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZXYXJuXG4gICAgICAgIH0pLFxuICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cFxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuLyoqXG4gKiBMZXZlcmFnZXMgbmF0aXZlIGJyb3dzZXIvVk0gc3RhY2sgZnJhbWVzIHRvIGdldCBwcm9wZXIgZGV0YWlscyAoZS5nLlxuICogZmlsZW5hbWUsIGxpbmUgKyBjb2wgbnVtYmVyKSBmb3IgYSBzaW5nbGUgY29tcG9uZW50IGluIGEgY29tcG9uZW50IHN0YWNrLiBXZVxuICogZG8gdGhpcyBieTpcbiAqICAgKDEpIHRocm93aW5nIGFuZCBjYXRjaGluZyBhbiBlcnJvciBpbiB0aGUgZnVuY3Rpb24gLSB0aGlzIHdpbGwgYmUgb3VyXG4gKiAgICAgICBjb250cm9sIGVycm9yLlxuICogICAoMikgY2FsbGluZyB0aGUgY29tcG9uZW50IHdoaWNoIHdpbGwgZXZlbnR1YWxseSB0aHJvdyBhbiBlcnJvciB0aGF0IHdlJ2xsXG4gKiAgICAgICBjYXRjaCAtIHRoaXMgd2lsbCBiZSBvdXIgc2FtcGxlIGVycm9yLlxuICogICAoMykgZGlmZmluZyB0aGUgY29udHJvbCBhbmQgc2FtcGxlIGVycm9yIHN0YWNrcyB0byBmaW5kIHRoZSBzdGFjayBmcmFtZVxuICogICAgICAgd2hpY2ggcmVwcmVzZW50cyBvdXIgY29tcG9uZW50LlxuICovXG5cblxuZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XG4gIC8vIElmIHNvbWV0aGluZyBhc2tlZCBmb3IgYSBzdGFjayBpbnNpZGUgYSBmYWtlIHJlbmRlciwgaXQgc2hvdWxkIGdldCBpZ25vcmVkLlxuICBpZiAoIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICByZWVudHJ5ID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdHlwZV0gSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDsgLy8gU2V0IHRoZSBkaXNwYXRjaGVyIGluIERFViBiZWNhdXNlIHRoaXMgbWlnaHQgYmUgY2FsbCBpbiB0aGUgcmVuZGVyIGZ1bmN0aW9uXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxuXG4gICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBudWxsO1xuICAgIGRpc2FibGVMb2dzKCk7XG4gIH1cbiAgLyoqXG4gICAqIEZpbmRpbmcgYSBjb21tb24gc3RhY2sgZnJhbWUgYmV0d2VlbiBzYW1wbGUgYW5kIGNvbnRyb2wgZXJyb3JzIGNhbiBiZVxuICAgKiB0cmlja3kgZ2l2ZW4gdGhlIGRpZmZlcmVudCB0eXBlcyBhbmQgbGV2ZWxzIG9mIHN0YWNrIHRyYWNlIHRydW5jYXRpb24gZnJvbVxuICAgKiBkaWZmZXJlbnQgSlMgVk1zLiBTbyBpbnN0ZWFkIHdlJ2xsIGF0dGVtcHQgdG8gY29udHJvbCB3aGF0IHRoYXQgY29tbW9uXG4gICAqIGZyYW1lIHNob3VsZCBiZSB0aHJvdWdoIHRoaXMgb2JqZWN0IG1ldGhvZDpcbiAgICogSGF2aW5nIGJvdGggdGhlIHNhbXBsZSBhbmQgY29udHJvbCBlcnJvcnMgYmUgaW4gdGhlIGZ1bmN0aW9uIHVuZGVyIHRoZVxuICAgKiBgRGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZVJvb3RgIHByb3BlcnR5LCArIHNldHRpbmcgdGhlIGBuYW1lYCBhbmRcbiAgICogYGRpc3BsYXlOYW1lYCBwcm9wZXJ0aWVzIG9mIHRoZSBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgYSBzdGFja1xuICAgKiBmcmFtZSBleGlzdHMgdGhhdCBoYXMgdGhlIG1ldGhvZCBuYW1lIGBEZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lUm9vdGAgaW5cbiAgICogaXQgZm9yIGJvdGggY29udHJvbCBhbmQgc2FtcGxlIHN0YWNrcy5cbiAgICovXG5cblxuICB2YXIgUnVuSW5Sb290RnJhbWUgPSB7XG4gICAgRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290OiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY29udHJvbDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgICAgICAvLyBTb21ldGhpbmcgc2hvdWxkIGJlIHNldHRpbmcgdGhlIHByb3BzIGluIHRoZSBjb25zdHJ1Y3Rvci5cbiAgICAgICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGYWtlLnByb3RvdHlwZSwgJ3Byb3BzJywge1xuICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcbiAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGF0IHdvbid0IHRocm93IGluIGEgbm9uLXN0cmljdCBtb2RlIGZ1bmN0aW9uLlxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxuICAgICAgICAgICAgLy8gZnJhbWVzIGFkZGVkIGJ5IHRoZSBjb25zdHJ1Y3QgY2FsbC5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KGZuLCBbXSwgRmFrZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIEZha2UuY2FsbCgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICAgIH0gLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcblxuXG4gICAgICAgICAgICBmbi5jYWxsKEZha2UucHJvdG90eXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgfSAvLyBUT0RPKGx1bmEpOiBUaGlzIHdpbGwgY3VycmVudGx5IG9ubHkgdGhyb3cgaWYgdGhlIGZ1bmN0aW9uIGNvbXBvbmVudFxuICAgICAgICAgIC8vIHRyaWVzIHRvIGFjY2VzcyBSZWFjdC9SZWFjdERPTS9wcm9wcy4gV2Ugc2hvdWxkIHByb2JhYmx5IG1ha2UgdGhpcyB0aHJvd1xuICAgICAgICAgIC8vIGluIHNpbXBsZSBjb21wb25lbnRzIHRvb1xuXG5cbiAgICAgICAgICB2YXIgbWF5YmVQcm9taXNlID0gZm4oKTsgLy8gSWYgdGhlIGZ1bmN0aW9uIGNvbXBvbmVudCByZXR1cm5zIGEgcHJvbWlzZSwgaXQncyBsaWtlbHkgYW4gYXN5bmNcbiAgICAgICAgICAvLyBjb21wb25lbnQsIHdoaWNoIHdlIGRvbid0IHlldCBzdXBwb3J0LiBBdHRhY2ggYSBub29wIGNhdGNoIGhhbmRsZXIgdG9cbiAgICAgICAgICAvLyBzaWxlbmNlIHRoZSBlcnJvci5cbiAgICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgY29tcG9uZW50IHN0YWNrcyBmb3IgYXN5bmMgY2xpZW50IGNvbXBvbmVudHM/XG5cbiAgICAgICAgICBpZiAobWF5YmVQcm9taXNlICYmIHR5cGVvZiBtYXliZVByb21pc2UuY2F0Y2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG1heWJlUHJvbWlzZS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzYW1wbGUpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICAgICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIFtzYW1wbGUuc3RhY2ssIGNvbnRyb2wuc3RhY2tdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07XG4gICAgfVxuICB9OyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWUgPSAnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JztcbiAgdmFyIG5hbWVQcm9wRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCAnbmFtZScpOyAvLyBCZWZvcmUgRVM2LCB0aGUgYG5hbWVgIHByb3BlcnR5IHdhcyBub3QgY29uZmlndXJhYmxlLlxuXG4gIGlmIChuYW1lUHJvcERlc2NyaXB0b3IgJiYgbmFtZVByb3BEZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSkge1xuICAgIC8vIFY4IHV0aWxpemVzIGEgZnVuY3Rpb24ncyBgbmFtZWAgcHJvcGVydHkgd2hlbiBnZW5lcmF0aW5nIGEgc3RhY2sgdHJhY2UuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCwgLy8gQ29uZmlndXJhYmxlIHByb3BlcnRpZXMgY2FuIGJlIHVwZGF0ZWQgZXZlbiBpZiBpdHMgd3JpdGFibGUgZGVzY3JpcHRvclxuICAgIC8vIGlzIHNldCB0byBgZmFsc2VgLlxuICAgIC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXVxuICAgICduYW1lJywge1xuICAgICAgdmFsdWU6ICdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnXG4gICAgfSk7XG4gIH1cblxuICB0cnkge1xuICAgIHZhciBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPSBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QoKSxcbiAgICAgICAgc2FtcGxlU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMF0sXG4gICAgICAgIGNvbnRyb2xTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclsxXTtcblxuICAgIGlmIChzYW1wbGVTdGFjayAmJiBjb250cm9sU3RhY2spIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZVN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgIHZhciBjb250cm9sTGluZXMgPSBjb250cm9sU3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIHMgPSAwO1xuICAgICAgdmFyIGMgPSAwO1xuXG4gICAgICB3aGlsZSAocyA8IHNhbXBsZUxpbmVzLmxlbmd0aCAmJiAhc2FtcGxlTGluZXNbc10uaW5jbHVkZXMoJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCcpKSB7XG4gICAgICAgIHMrKztcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKGMgPCBjb250cm9sTGluZXMubGVuZ3RoICYmICFjb250cm9sTGluZXNbY10uaW5jbHVkZXMoJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCcpKSB7XG4gICAgICAgIGMrKztcbiAgICAgIH0gLy8gV2UgY291bGRuJ3QgZmluZCBvdXIgaW50ZW50aW9uYWxseSBpbmplY3RlZCBjb21tb24gcm9vdCBmcmFtZSwgYXR0ZW1wdFxuICAgICAgLy8gdG8gZmluZCBhbm90aGVyIGNvbW1vbiByb290IGZyYW1lIGJ5IHNlYXJjaCBmcm9tIHRoZSBib3R0b20gb2YgdGhlXG4gICAgICAvLyBjb250cm9sIHN0YWNrLi4uXG5cblxuICAgICAgaWYgKHMgPT09IHNhbXBsZUxpbmVzLmxlbmd0aCB8fCBjID09PSBjb250cm9sTGluZXMubGVuZ3RoKSB7XG4gICAgICAgIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICBjID0gY29udHJvbExpbmVzLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAgIC8vIFR5cGljYWxseSB0aGlzIHdpbGwgYmUgdGhlIHJvb3QgbW9zdCBvbmUuIEhvd2V2ZXIsIHN0YWNrIGZyYW1lcyBtYXkgYmVcbiAgICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxuICAgICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYW5kIHRoZXJlIGZvciBjdXQgb2ZmIGVhcmxpZXIuIFNvIHdlIHNob3VsZCBmaW5kIHRoZSByb290IG1vc3QgZnJhbWUgaW5cbiAgICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cbiAgICAgICAgICBjLS07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yICg7IHMgPj0gMSAmJiBjID49IDA7IHMtLSwgYy0tKSB7XG4gICAgICAgIC8vIE5leHQgd2UgZmluZCB0aGUgZmlyc3Qgb25lIHRoYXQgaXNuJ3QgdGhlIHNhbWUgd2hpY2ggc2hvdWxkIGJlIHRoZVxuICAgICAgICAvLyBmcmFtZSB0aGF0IGNhbGxlZCBvdXIgc2FtcGxlIGZ1bmN0aW9uIGFuZCB0aGUgY29udHJvbC5cbiAgICAgICAgaWYgKHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAvLyBJbiBWOCwgdGhlIGZpcnN0IGxpbmUgaXMgZGVzY3JpYmluZyB0aGUgbWVzc2FnZSBidXQgb3RoZXIgVk1zIGRvbid0LlxuICAgICAgICAgIC8vIElmIHdlJ3JlIGFib3V0IHRvIHJldHVybiB0aGUgZmlyc3QgbGluZSwgYW5kIHRoZSBjb250cm9sIGlzIGFsc28gb24gdGhlIHNhbWVcbiAgICAgICAgICAvLyBsaW5lLCB0aGF0J3MgYSBwcmV0dHkgZ29vZCBpbmRpY2F0b3IgdGhhdCBvdXIgc2FtcGxlIHRocmV3IGF0IHNhbWUgbGluZSBhc1xuICAgICAgICAgIC8vIHRoZSBjb250cm9sLiBJLmUuIGJlZm9yZSB3ZSBlbnRlcmVkIHRoZSBzYW1wbGUgZnJhbWUuIFNvIHdlIGlnbm9yZSB0aGlzIHJlc3VsdC5cbiAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgeW91IHBhc3NlZCBhIGNsYXNzIHRvIGZ1bmN0aW9uIGNvbXBvbmVudCwgb3Igbm9uLWZ1bmN0aW9uLlxuICAgICAgICAgIGlmIChzICE9PSAxIHx8IGMgIT09IDEpIHtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgcy0tO1xuICAgICAgICAgICAgICBjLS07IC8vIFdlIG1heSBzdGlsbCBoYXZlIHNpbWlsYXIgaW50ZXJtZWRpYXRlIGZyYW1lcyBmcm9tIHRoZSBjb25zdHJ1Y3QgY2FsbC5cbiAgICAgICAgICAgICAgLy8gVGhlIG5leHQgb25lIHRoYXQgaXNuJ3QgdGhlIHNhbWUgc2hvdWxkIGJlIG91ciBtYXRjaCB0aG91Z2guXG5cbiAgICAgICAgICAgICAgaWYgKGMgPCAwIHx8IHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAgICAgICAvLyBWOCBhZGRzIGEgXCJuZXdcIiBwcmVmaXggZm9yIG5hdGl2ZSBjbGFzc2VzLiBMZXQncyByZW1vdmUgaXQgdG8gbWFrZSBpdCBwcmV0dGllci5cbiAgICAgICAgICAgICAgICB2YXIgX2ZyYW1lID0gJ1xcbicgKyBzYW1wbGVMaW5lc1tzXS5yZXBsYWNlKCcgYXQgbmV3ICcsICcgYXQgJyk7IC8vIElmIG91ciBjb21wb25lbnQgZnJhbWUgaXMgbGFiZWxlZCBcIjxhbm9ueW1vdXM+XCJcbiAgICAgICAgICAgICAgICAvLyBidXQgd2UgaGF2ZSBhIHVzZXItcHJvdmlkZWQgXCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgLy8gc3BsaWNlIGl0IGluIHRvIG1ha2UgdGhlIHN0YWNrIG1vcmUgcmVhZGFibGUuXG5cblxuICAgICAgICAgICAgICAgIGlmIChmbi5kaXNwbGF5TmFtZSAmJiBfZnJhbWUuaW5jbHVkZXMoJzxhbm9ueW1vdXM+JykpIHtcbiAgICAgICAgICAgICAgICAgIF9mcmFtZSA9IF9mcmFtZS5yZXBsYWNlKCc8YW5vbnltb3VzPicsIGZuLmRpc3BsYXlOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XG4gICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICB9XG5cbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2U7XG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxuXG5cbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzeW50aGV0aWNGcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZUNsYXNzQ29tcG9uZW50RnJhbWUoY3Rvciwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShjdG9yLCB0cnVlKTtcbiAgfVxufVxuZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZuLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0JDEoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUsIHNvdXJjZSwgb3duZXJGbikge1xuXG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZSh0eXBlLCBzaG91bGRDb25zdHJ1Y3QkMSh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yJDEgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCcpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yJDEgPSBleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMnICsgJyBgJXNgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAlcy4gJyArICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICsgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lLCB0eXBlb2YgZXJyb3IkMSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvciQxLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yJDEubWVzc2FnZV0gPSB0cnVlO1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIHdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dDtcblxue1xuICB3YXJuZWRBYm91dE1pc3NpbmdHZXRDaGlsZENvbnRleHQgPSB7fTtcbn1cblxudmFyIGVtcHR5Q29udGV4dE9iamVjdCA9IHt9O1xuXG57XG4gIE9iamVjdC5mcmVlemUoZW1wdHlDb250ZXh0T2JqZWN0KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFza2VkQ29udGV4dCh0eXBlLCB1bm1hc2tlZENvbnRleHQpIHtcbiAge1xuICAgIHZhciBjb250ZXh0VHlwZXMgPSB0eXBlLmNvbnRleHRUeXBlcztcblxuICAgIGlmICghY29udGV4dFR5cGVzKSB7XG4gICAgICByZXR1cm4gZW1wdHlDb250ZXh0T2JqZWN0O1xuICAgIH1cblxuICAgIHZhciBjb250ZXh0ID0ge307XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gY29udGV4dFR5cGVzKSB7XG4gICAgICBjb250ZXh0W2tleV0gPSB1bm1hc2tlZENvbnRleHRba2V5XTtcbiAgICB9XG5cbiAgICB7XG4gICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB8fCAnVW5rbm93bic7XG4gICAgICBjaGVja1Byb3BUeXBlcyhjb250ZXh0VHlwZXMsIGNvbnRleHQsICdjb250ZXh0JywgbmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn1cbmZ1bmN0aW9uIHByb2Nlc3NDaGlsZENvbnRleHQoaW5zdGFuY2UsIHR5cGUsIHBhcmVudENvbnRleHQsIGNoaWxkQ29udGV4dFR5cGVzKSB7XG4gIHtcbiAgICAvLyBUT0RPIChidmF1Z2huKSBSZXBsYWNlIHRoaXMgYmVoYXZpb3Igd2l0aCBhbiBpbnZhcmlhbnQoKSBpbiB0aGUgZnV0dXJlLlxuICAgIC8vIEl0IGhhcyBvbmx5IGJlZW4gYWRkZWQgaW4gRmliZXIgdG8gbWF0Y2ggdGhlICh1bmludGVudGlvbmFsKSBiZWhhdmlvciBpbiBTdGFjay5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldENoaWxkQ29udGV4dCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAge1xuICAgICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB8fCAnVW5rbm93bic7XG5cbiAgICAgICAgaWYgKCF3YXJuZWRBYm91dE1pc3NpbmdHZXRDaGlsZENvbnRleHRbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgICB3YXJuZWRBYm91dE1pc3NpbmdHZXRDaGlsZENvbnRleHRbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJyVzLmNoaWxkQ29udGV4dFR5cGVzIGlzIHNwZWNpZmllZCBidXQgdGhlcmUgaXMgbm8gZ2V0Q2hpbGRDb250ZXh0KCkgbWV0aG9kICcgKyAnb24gdGhlIGluc3RhbmNlLiBZb3UgY2FuIGVpdGhlciBkZWZpbmUgZ2V0Q2hpbGRDb250ZXh0KCkgb24gJXMgb3IgcmVtb3ZlICcgKyAnY2hpbGRDb250ZXh0VHlwZXMgZnJvbSBpdC4nLCBjb21wb25lbnROYW1lLCBjb21wb25lbnROYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGFyZW50Q29udGV4dDtcbiAgICB9XG5cbiAgICB2YXIgY2hpbGRDb250ZXh0ID0gaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0KCk7XG5cbiAgICBmb3IgKHZhciBjb250ZXh0S2V5IGluIGNoaWxkQ29udGV4dCkge1xuICAgICAgaWYgKCEoY29udGV4dEtleSBpbiBjaGlsZENvbnRleHRUeXBlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKChnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkgfHwgJ1Vua25vd24nKSArIFwiLmdldENoaWxkQ29udGV4dCgpOiBrZXkgXFxcIlwiICsgY29udGV4dEtleSArIFwiXFxcIiBpcyBub3QgZGVmaW5lZCBpbiBjaGlsZENvbnRleHRUeXBlcy5cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkgfHwgJ1Vua25vd24nO1xuICAgICAgY2hlY2tQcm9wVHlwZXMoY2hpbGRDb250ZXh0VHlwZXMsIGNoaWxkQ29udGV4dCwgJ2NoaWxkIGNvbnRleHQnLCBuYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXNzaWduKHt9LCBwYXJlbnRDb250ZXh0LCBjaGlsZENvbnRleHQpO1xuICB9XG59XG5cbnZhciByZW5kZXJlclNpZ2lsO1xuXG57XG4gIC8vIFVzZSB0aGlzIHRvIGRldGVjdCBtdWx0aXBsZSByZW5kZXJlcnMgdXNpbmcgdGhlIHNhbWUgY29udGV4dFxuICByZW5kZXJlclNpZ2lsID0ge307XG59IC8vIFVzZWQgdG8gc3RvcmUgdGhlIHBhcmVudCBwYXRoIG9mIGFsbCBjb250ZXh0IG92ZXJyaWRlcyBpbiBhIHNoYXJlZCBsaW5rZWQgbGlzdC5cbi8vIEZvcm1pbmcgYSByZXZlcnNlIHRyZWUuXG4vLyBUaGUgc3RydWN0dXJlIG9mIGEgY29udGV4dCBzbmFwc2hvdCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZpbGUuXG4vLyBDdXJyZW50bHksIGl0J3MgaW1wbGVtZW50ZWQgYXMgdHJhY2tpbmcgdGhlIGN1cnJlbnQgYWN0aXZlIG5vZGUuXG5cblxudmFyIHJvb3RDb250ZXh0U25hcHNob3QgPSBudWxsOyAvLyBXZSBhc3N1bWUgdGhhdCB0aGlzIHJ1bnRpbWUgb3ducyB0aGUgXCJjdXJyZW50XCIgZmllbGQgb24gYWxsIFJlYWN0Q29udGV4dCBpbnN0YW5jZXMuXG4vLyBUaGlzIGdsb2JhbCAoYWN0dWFsbHkgdGhyZWFkIGxvY2FsKSBzdGF0ZSByZXByZXNlbnRzIHdoYXQgc3RhdGUgYWxsIHRob3NlIFwiY3VycmVudFwiLFxuLy8gZmllbGRzIGFyZSBjdXJyZW50bHkgaW4uXG5cbnZhciBjdXJyZW50QWN0aXZlU25hcHNob3QgPSBudWxsO1xuXG5mdW5jdGlvbiBwb3BOb2RlKHByZXYpIHtcbiAge1xuICAgIHByZXYuY29udGV4dC5fY3VycmVudFZhbHVlID0gcHJldi5wYXJlbnRWYWx1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwdXNoTm9kZShuZXh0KSB7XG4gIHtcbiAgICBuZXh0LmNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IG5leHQudmFsdWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9wVG9OZWFyZXN0Q29tbW9uQW5jZXN0b3IocHJldiwgbmV4dCkge1xuICBpZiAocHJldiA9PT0gbmV4dCkgOyBlbHNlIHtcbiAgICBwb3BOb2RlKHByZXYpO1xuICAgIHZhciBwYXJlbnRQcmV2ID0gcHJldi5wYXJlbnQ7XG4gICAgdmFyIHBhcmVudE5leHQgPSBuZXh0LnBhcmVudDtcblxuICAgIGlmIChwYXJlbnRQcmV2ID09PSBudWxsKSB7XG4gICAgICBpZiAocGFyZW50TmV4dCAhPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBzdGFja3MgbXVzdCByZWFjaCB0aGUgcm9vdCBhdCB0aGUgc2FtZSB0aW1lLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocGFyZW50TmV4dCA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBzdGFja3MgbXVzdCByZWFjaCB0aGUgcm9vdCBhdCB0aGUgc2FtZSB0aW1lLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgfVxuXG4gICAgICBwb3BUb05lYXJlc3RDb21tb25BbmNlc3RvcihwYXJlbnRQcmV2LCBwYXJlbnROZXh0KTtcbiAgICB9IC8vIE9uIHRoZSB3YXkgYmFjaywgd2UgcHVzaCB0aGUgbmV3IG9uZXMgdGhhdCB3ZXJlbid0IGNvbW1vbi5cblxuXG4gICAgcHVzaE5vZGUobmV4dCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9wQWxsUHJldmlvdXMocHJldikge1xuICBwb3BOb2RlKHByZXYpO1xuICB2YXIgcGFyZW50UHJldiA9IHByZXYucGFyZW50O1xuXG4gIGlmIChwYXJlbnRQcmV2ICE9PSBudWxsKSB7XG4gICAgcG9wQWxsUHJldmlvdXMocGFyZW50UHJldik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVzaEFsbE5leHQobmV4dCkge1xuICB2YXIgcGFyZW50TmV4dCA9IG5leHQucGFyZW50O1xuXG4gIGlmIChwYXJlbnROZXh0ICE9PSBudWxsKSB7XG4gICAgcHVzaEFsbE5leHQocGFyZW50TmV4dCk7XG4gIH1cblxuICBwdXNoTm9kZShuZXh0KTtcbn1cblxuZnVuY3Rpb24gcG9wUHJldmlvdXNUb0NvbW1vbkxldmVsKHByZXYsIG5leHQpIHtcbiAgcG9wTm9kZShwcmV2KTtcbiAgdmFyIHBhcmVudFByZXYgPSBwcmV2LnBhcmVudDtcblxuICBpZiAocGFyZW50UHJldiA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRlcHRoIG11c3QgZXF1YWwgYXQgbGVhc3QgYXQgemVybyBiZWZvcmUgcmVhY2hpbmcgdGhlIHJvb3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gIH1cblxuICBpZiAocGFyZW50UHJldi5kZXB0aCA9PT0gbmV4dC5kZXB0aCkge1xuICAgIC8vIFdlIGZvdW5kIHRoZSBzYW1lIGxldmVsLiBOb3cgd2UganVzdCBuZWVkIHRvIGZpbmQgYSBzaGFyZWQgYW5jZXN0b3IuXG4gICAgcG9wVG9OZWFyZXN0Q29tbW9uQW5jZXN0b3IocGFyZW50UHJldiwgbmV4dCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gV2UgbXVzdCBzdGlsbCBiZSBkZWVwZXIuXG4gICAgcG9wUHJldmlvdXNUb0NvbW1vbkxldmVsKHBhcmVudFByZXYsIG5leHQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcE5leHRUb0NvbW1vbkxldmVsKHByZXYsIG5leHQpIHtcbiAgdmFyIHBhcmVudE5leHQgPSBuZXh0LnBhcmVudDtcblxuICBpZiAocGFyZW50TmV4dCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRlcHRoIG11c3QgZXF1YWwgYXQgbGVhc3QgYXQgemVybyBiZWZvcmUgcmVhY2hpbmcgdGhlIHJvb3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gIH1cblxuICBpZiAocHJldi5kZXB0aCA9PT0gcGFyZW50TmV4dC5kZXB0aCkge1xuICAgIC8vIFdlIGZvdW5kIHRoZSBzYW1lIGxldmVsLiBOb3cgd2UganVzdCBuZWVkIHRvIGZpbmQgYSBzaGFyZWQgYW5jZXN0b3IuXG4gICAgcG9wVG9OZWFyZXN0Q29tbW9uQW5jZXN0b3IocHJldiwgcGFyZW50TmV4dCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gV2UgbXVzdCBzdGlsbCBiZSBkZWVwZXIuXG4gICAgcG9wTmV4dFRvQ29tbW9uTGV2ZWwocHJldiwgcGFyZW50TmV4dCk7XG4gIH1cblxuICBwdXNoTm9kZShuZXh0KTtcbn0gLy8gUGVyZm9ybSBjb250ZXh0IHN3aXRjaGluZyB0byB0aGUgbmV3IHNuYXBzaG90LlxuLy8gVG8gbWFrZSBpdCBjaGVhcCB0byByZWFkIG1hbnkgY29udGV4dHMsIHdoaWxlIG5vdCBzdXNwZW5kaW5nLCB3ZSBtYWtlIHRoZSBzd2l0Y2ggZWFnZXJseSBieVxuLy8gdXBkYXRpbmcgYWxsIHRoZSBjb250ZXh0J3MgY3VycmVudCB2YWx1ZXMuIFRoYXQgd2F5IHJlYWRzLCBhbHdheXMganVzdCByZWFkIHRoZSBjdXJyZW50IHZhbHVlLlxuLy8gQXQgdGhlIGNvc3Qgb2YgdXBkYXRpbmcgY29udGV4dHMgZXZlbiBpZiB0aGV5J3JlIG5ldmVyIHJlYWQgYnkgdGhpcyBzdWJ0cmVlLlxuXG5cbmZ1bmN0aW9uIHN3aXRjaENvbnRleHQobmV3U25hcHNob3QpIHtcbiAgLy8gVGhlIGJhc2ljIGFsZ29yaXRobSB3ZSBuZWVkIHRvIGRvIGlzIHRvIHBvcCBiYWNrIGFueSBjb250ZXh0cyB0aGF0IGFyZSBubyBsb25nZXIgb24gdGhlIHN0YWNrLlxuICAvLyBXZSBhbHNvIG5lZWQgdG8gdXBkYXRlIGFueSBuZXcgY29udGV4dHMgdGhhdCBhcmUgbm93IG9uIHRoZSBzdGFjayB3aXRoIHRoZSBkZWVwZXN0IHZhbHVlLlxuICAvLyBUaGUgZWFzaWVzdCB3YXkgdG8gdXBkYXRlIG5ldyBjb250ZXh0cyBpcyB0byBqdXN0IHJlYXBwbHkgdGhlbSBpbiByZXZlcnNlIG9yZGVyIGZyb20gdGhlXG4gIC8vIHBlcnNwZWN0aXZlIG9mIHRoZSBiYWNrcG9pbnRlcnMuIFRvIGF2b2lkIGFsbG9jYXRpbmcgYSBsb3Qgd2hlbiBzd2l0Y2hpbmcsIHdlIHVzZSB0aGUgc3RhY2tcbiAgLy8gZm9yIHRoYXQuIFRoZXJlZm9yZSB0aGlzIGFsZ29yaXRobSBpcyByZWN1cnNpdmUuXG4gIC8vIDEpIEZpcnN0IHdlIHBvcCB3aGljaCBldmVyIHNuYXBzaG90IHRyZWUgd2FzIGRlZXBlc3QuIFBvcHBpbmcgb2xkIGNvbnRleHRzIGFzIHdlIGdvLlxuICAvLyAyKSBUaGVuIHdlIGZpbmQgdGhlIG5lYXJlc3QgY29tbW9uIGFuY2VzdG9yIGZyb20gdGhlcmUuIFBvcHBpbmcgb2xkIGNvbnRleHRzIGFzIHdlIGdvLlxuICAvLyAzKSBUaGVuIHdlIHJlYXBwbHkgbmV3IGNvbnRleHRzIG9uIHRoZSB3YXkgYmFjayB1cCB0aGUgc3RhY2suXG4gIHZhciBwcmV2ID0gY3VycmVudEFjdGl2ZVNuYXBzaG90O1xuICB2YXIgbmV4dCA9IG5ld1NuYXBzaG90O1xuXG4gIGlmIChwcmV2ICE9PSBuZXh0KSB7XG4gICAgaWYgKHByZXYgPT09IG51bGwpIHtcbiAgICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLWNhbGxdOiBUaGlzIGhhcyB0byBiZSBub24tbnVsbCBzaW5jZSBpdCdzIG5vdCBlcXVhbCB0byBwcmV2LlxuICAgICAgcHVzaEFsbE5leHQobmV4dCk7XG4gICAgfSBlbHNlIGlmIChuZXh0ID09PSBudWxsKSB7XG4gICAgICBwb3BBbGxQcmV2aW91cyhwcmV2KTtcbiAgICB9IGVsc2UgaWYgKHByZXYuZGVwdGggPT09IG5leHQuZGVwdGgpIHtcbiAgICAgIHBvcFRvTmVhcmVzdENvbW1vbkFuY2VzdG9yKHByZXYsIG5leHQpO1xuICAgIH0gZWxzZSBpZiAocHJldi5kZXB0aCA+IG5leHQuZGVwdGgpIHtcbiAgICAgIHBvcFByZXZpb3VzVG9Db21tb25MZXZlbChwcmV2LCBuZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9wTmV4dFRvQ29tbW9uTGV2ZWwocHJldiwgbmV4dCk7XG4gICAgfVxuXG4gICAgY3VycmVudEFjdGl2ZVNuYXBzaG90ID0gbmV4dDtcbiAgfVxufVxuZnVuY3Rpb24gcHVzaFByb3ZpZGVyKGNvbnRleHQsIG5leHRWYWx1ZSkge1xuICB2YXIgcHJldlZhbHVlO1xuXG4gIHtcbiAgICBwcmV2VmFsdWUgPSBjb250ZXh0Ll9jdXJyZW50VmFsdWU7XG4gICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gbmV4dFZhbHVlO1xuXG4gICAge1xuICAgICAgaWYgKGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gbnVsbCAmJiBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IHJlbmRlcmVyU2lnaWwpIHtcbiAgICAgICAgZXJyb3IoJ0RldGVjdGVkIG11bHRpcGxlIHJlbmRlcmVycyBjb25jdXJyZW50bHkgcmVuZGVyaW5nIHRoZSAnICsgJ3NhbWUgY29udGV4dCBwcm92aWRlci4gVGhpcyBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciA9IHJlbmRlcmVyU2lnaWw7XG4gICAgfVxuICB9XG5cbiAgdmFyIHByZXZOb2RlID0gY3VycmVudEFjdGl2ZVNuYXBzaG90O1xuICB2YXIgbmV3Tm9kZSA9IHtcbiAgICBwYXJlbnQ6IHByZXZOb2RlLFxuICAgIGRlcHRoOiBwcmV2Tm9kZSA9PT0gbnVsbCA/IDAgOiBwcmV2Tm9kZS5kZXB0aCArIDEsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBwYXJlbnRWYWx1ZTogcHJldlZhbHVlLFxuICAgIHZhbHVlOiBuZXh0VmFsdWVcbiAgfTtcbiAgY3VycmVudEFjdGl2ZVNuYXBzaG90ID0gbmV3Tm9kZTtcbiAgcmV0dXJuIG5ld05vZGU7XG59XG5mdW5jdGlvbiBwb3BQcm92aWRlcihjb250ZXh0KSB7XG4gIHZhciBwcmV2U25hcHNob3QgPSBjdXJyZW50QWN0aXZlU25hcHNob3Q7XG5cbiAgaWYgKHByZXZTbmFwc2hvdCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHJpZWQgdG8gcG9wIGEgQ29udGV4dCBhdCB0aGUgcm9vdCBvZiB0aGUgYXBwLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICB9XG5cbiAge1xuICAgIGlmIChwcmV2U25hcHNob3QuY29udGV4dCAhPT0gY29udGV4dCkge1xuICAgICAgZXJyb3IoJ1RoZSBwYXJlbnQgY29udGV4dCBpcyBub3QgdGhlIGV4cGVjdGVkIGNvbnRleHQuIFRoaXMgaXMgcHJvYmFibHkgYSBidWcgaW4gUmVhY3QuJyk7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIHZhciB2YWx1ZSA9IHByZXZTbmFwc2hvdC5wYXJlbnRWYWx1ZTtcblxuICAgIGlmICh2YWx1ZSA9PT0gUkVBQ1RfU0VSVkVSX0NPTlRFWFRfREVGQVVMVF9WQUxVRV9OT1RfTE9BREVEKSB7XG4gICAgICBwcmV2U25hcHNob3QuY29udGV4dC5fY3VycmVudFZhbHVlID0gcHJldlNuYXBzaG90LmNvbnRleHQuX2RlZmF1bHRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJldlNuYXBzaG90LmNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmIChjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IHVuZGVmaW5lZCAmJiBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IG51bGwgJiYgY29udGV4dC5fY3VycmVudFJlbmRlcmVyICE9PSByZW5kZXJlclNpZ2lsKSB7XG4gICAgICAgIGVycm9yKCdEZXRlY3RlZCBtdWx0aXBsZSByZW5kZXJlcnMgY29uY3VycmVudGx5IHJlbmRlcmluZyB0aGUgJyArICdzYW1lIGNvbnRleHQgcHJvdmlkZXIuIFRoaXMgaXMgY3VycmVudGx5IHVuc3VwcG9ydGVkLicpO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgPSByZW5kZXJlclNpZ2lsO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjdXJyZW50QWN0aXZlU25hcHNob3QgPSBwcmV2U25hcHNob3QucGFyZW50O1xufVxuZnVuY3Rpb24gZ2V0QWN0aXZlQ29udGV4dCgpIHtcbiAgcmV0dXJuIGN1cnJlbnRBY3RpdmVTbmFwc2hvdDtcbn1cbmZ1bmN0aW9uIHJlYWRDb250ZXh0JDEoY29udGV4dCkge1xuICB2YXIgdmFsdWUgPSBjb250ZXh0Ll9jdXJyZW50VmFsdWUgO1xuICByZXR1cm4gdmFsdWU7XG59XG5cbi8qKlxuICogYFJlYWN0SW5zdGFuY2VNYXBgIG1haW50YWlucyBhIG1hcHBpbmcgZnJvbSBhIHB1YmxpYyBmYWNpbmcgc3RhdGVmdWxcbiAqIGluc3RhbmNlIChrZXkpIGFuZCB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gKHZhbHVlKS4gVGhpcyBhbGxvd3MgcHVibGljXG4gKiBtZXRob2RzIHRvIGFjY2VwdCB0aGUgdXNlciBmYWNpbmcgaW5zdGFuY2UgYXMgYW4gYXJndW1lbnQgYW5kIG1hcCB0aGVtIGJhY2tcbiAqIHRvIGludGVybmFsIG1ldGhvZHMuXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgbW9kdWxlIGlzIGN1cnJlbnRseSBzaGFyZWQgYW5kIGFzc3VtZWQgdG8gYmUgc3RhdGVsZXNzLlxuICogSWYgdGhpcyBiZWNvbWVzIGFuIGFjdHVhbCBNYXAsIHRoYXQgd2lsbCBicmVhay5cbiAqL1xuZnVuY3Rpb24gZ2V0KGtleSkge1xuICByZXR1cm4ga2V5Ll9yZWFjdEludGVybmFscztcbn1cbmZ1bmN0aW9uIHNldChrZXksIHZhbHVlKSB7XG4gIGtleS5fcmVhY3RJbnRlcm5hbHMgPSB2YWx1ZTtcbn1cblxudmFyIGRpZFdhcm5BYm91dE5vb3BVcGRhdGVGb3JDb21wb25lbnQgPSB7fTtcbnZhciBkaWRXYXJuQWJvdXREZXByZWNhdGVkV2lsbE1vdW50ID0ge307XG52YXIgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlO1xudmFyIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlO1xudmFyIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcztcbnZhciBkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGU7XG52YXIgZGlkV2Fybk9uSW52YWxpZENhbGxiYWNrO1xuXG57XG4gIGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0R2V0U25hcHNob3RCZWZvcmVVcGRhdGVXaXRob3V0RGlkVXBkYXRlID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0VW5kZWZpbmVkRGVyaXZlZFN0YXRlID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcyA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlID0gbmV3IFNldCgpO1xuICBkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2sgPSBuZXcgU2V0KCk7XG59XG5cbmZ1bmN0aW9uIHdhcm5PbkludmFsaWRDYWxsYmFjayhjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICB7XG4gICAgaWYgKGNhbGxiYWNrID09PSBudWxsIHx8IHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBrZXkgPSBjYWxsZXJOYW1lICsgJ18nICsgY2FsbGJhY2s7XG5cbiAgICBpZiAoIWRpZFdhcm5PbkludmFsaWRDYWxsYmFjay5oYXMoa2V5KSkge1xuICAgICAgZGlkV2Fybk9uSW52YWxpZENhbGxiYWNrLmFkZChrZXkpO1xuXG4gICAgICBlcnJvcignJXMoLi4uKTogRXhwZWN0ZWQgdGhlIGxhc3Qgb3B0aW9uYWwgYGNhbGxiYWNrYCBhcmd1bWVudCB0byBiZSBhICcgKyAnZnVuY3Rpb24uIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLicsIGNhbGxlck5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gd2Fybk9uVW5kZWZpbmVkRGVyaXZlZFN0YXRlKHR5cGUsIHBhcnRpYWxTdGF0ZSkge1xuICB7XG4gICAgaWYgKHBhcnRpYWxTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZS5hZGQoY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgZXJyb3IoJyVzLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpOiBBIHZhbGlkIHN0YXRlIG9iamVjdCAob3IgbnVsbCkgbXVzdCBiZSByZXR1cm5lZC4gJyArICdZb3UgaGF2ZSByZXR1cm5lZCB1bmRlZmluZWQuJywgY29tcG9uZW50TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHtcbiAgICB2YXIgX2NvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBfY29uc3RydWN0b3IgJiYgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKF9jb25zdHJ1Y3RvcikgfHwgJ1JlYWN0Q2xhc3MnO1xuICAgIHZhciB3YXJuaW5nS2V5ID0gY29tcG9uZW50TmFtZSArICcuJyArIGNhbGxlck5hbWU7XG5cbiAgICBpZiAoZGlkV2FybkFib3V0Tm9vcFVwZGF0ZUZvckNvbXBvbmVudFt3YXJuaW5nS2V5XSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVycm9yKCclcyguLi4pOiBDYW4gb25seSB1cGRhdGUgYSBtb3VudGluZyBjb21wb25lbnQuICcgKyAnVGhpcyB1c3VhbGx5IG1lYW5zIHlvdSBjYWxsZWQgJXMoKSBvdXRzaWRlIGNvbXBvbmVudFdpbGxNb3VudCgpIG9uIHRoZSBzZXJ2ZXIuICcgKyAnVGhpcyBpcyBhIG5vLW9wLlxcblxcblBsZWFzZSBjaGVjayB0aGUgY29kZSBmb3IgdGhlICVzIGNvbXBvbmVudC4nLCBjYWxsZXJOYW1lLCBjYWxsZXJOYW1lLCBjb21wb25lbnROYW1lKTtcblxuICAgIGRpZFdhcm5BYm91dE5vb3BVcGRhdGVGb3JDb21wb25lbnRbd2FybmluZ0tleV0gPSB0cnVlO1xuICB9XG59XG5cbnZhciBjbGFzc0NvbXBvbmVudFVwZGF0ZXIgPSB7XG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKGluc3QpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG4gIC8vICRGbG93Rml4TWVbbWlzc2luZy1sb2NhbC1hbm5vdF1cbiAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAoaW5zdCwgcGF5bG9hZCwgY2FsbGJhY2spIHtcbiAgICB2YXIgaW50ZXJuYWxzID0gZ2V0KGluc3QpO1xuXG4gICAgaWYgKGludGVybmFscy5xdWV1ZSA9PT0gbnVsbCkge1xuICAgICAgd2Fybk5vb3AoaW5zdCwgJ3NldFN0YXRlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGludGVybmFscy5xdWV1ZS5wdXNoKHBheWxvYWQpO1xuXG4gICAgICB7XG4gICAgICAgIGlmIChjYWxsYmFjayAhPT0gdW5kZWZpbmVkICYmIGNhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgICAgICAgd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrLCAnc2V0U3RhdGUnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKGluc3QsIHBheWxvYWQsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGludGVybmFscyA9IGdldChpbnN0KTtcbiAgICBpbnRlcm5hbHMucmVwbGFjZSA9IHRydWU7XG4gICAgaW50ZXJuYWxzLnF1ZXVlID0gW3BheWxvYWRdO1xuXG4gICAge1xuICAgICAgaWYgKGNhbGxiYWNrICE9PSB1bmRlZmluZWQgJiYgY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrLCAnc2V0U3RhdGUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIC8vICRGbG93Rml4TWVbbWlzc2luZy1sb2NhbC1hbm5vdF1cbiAgZW5xdWV1ZUZvcmNlVXBkYXRlOiBmdW5jdGlvbiAoaW5zdCwgY2FsbGJhY2spIHtcbiAgICB2YXIgaW50ZXJuYWxzID0gZ2V0KGluc3QpO1xuXG4gICAgaWYgKGludGVybmFscy5xdWV1ZSA9PT0gbnVsbCkge1xuICAgICAgd2Fybk5vb3AoaW5zdCwgJ2ZvcmNlVXBkYXRlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKGNhbGxiYWNrICE9PSB1bmRlZmluZWQgJiYgY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2ssICdzZXRTdGF0ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBhcHBseURlcml2ZWRTdGF0ZUZyb21Qcm9wcyhpbnN0YW5jZSwgY3RvciwgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLCBwcmV2U3RhdGUsIG5leHRQcm9wcykge1xuICB2YXIgcGFydGlhbFN0YXRlID0gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcblxuICB7XG4gICAgd2Fybk9uVW5kZWZpbmVkRGVyaXZlZFN0YXRlKGN0b3IsIHBhcnRpYWxTdGF0ZSk7XG4gIH0gLy8gTWVyZ2UgdGhlIHBhcnRpYWwgc3RhdGUgYW5kIHRoZSBwcmV2aW91cyBzdGF0ZS5cblxuXG4gIHZhciBuZXdTdGF0ZSA9IHBhcnRpYWxTdGF0ZSA9PT0gbnVsbCB8fCBwYXJ0aWFsU3RhdGUgPT09IHVuZGVmaW5lZCA/IHByZXZTdGF0ZSA6IGFzc2lnbih7fSwgcHJldlN0YXRlLCBwYXJ0aWFsU3RhdGUpO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdENsYXNzSW5zdGFuY2UoY3RvciwgcHJvcHMsIG1hc2tlZExlZ2FjeUNvbnRleHQpIHtcbiAgdmFyIGNvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG4gIHZhciBjb250ZXh0VHlwZSA9IGN0b3IuY29udGV4dFR5cGU7XG5cbiAge1xuICAgIGlmICgnY29udGV4dFR5cGUnIGluIGN0b3IpIHtcbiAgICAgIHZhciBpc1ZhbGlkID0gLy8gQWxsb3cgbnVsbCBmb3IgY29uZGl0aW9uYWwgZGVjbGFyYXRpb25cbiAgICAgIGNvbnRleHRUeXBlID09PSBudWxsIHx8IGNvbnRleHRUeXBlICE9PSB1bmRlZmluZWQgJiYgY29udGV4dFR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSAmJiBjb250ZXh0VHlwZS5fY29udGV4dCA9PT0gdW5kZWZpbmVkOyAvLyBOb3QgYSA8Q29udGV4dC5Db25zdW1lcj5cblxuICAgICAgaWYgKCFpc1ZhbGlkICYmICFkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUuaGFzKGN0b3IpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dEludmFsaWRhdGVDb250ZXh0VHlwZS5hZGQoY3Rvcik7XG4gICAgICAgIHZhciBhZGRlbmR1bSA9ICcnO1xuXG4gICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYWRkZW5kdW0gPSAnIEhvd2V2ZXIsIGl0IGlzIHNldCB0byB1bmRlZmluZWQuICcgKyAnVGhpcyBjYW4gYmUgY2F1c2VkIGJ5IGEgdHlwbyBvciBieSBtaXhpbmcgdXAgbmFtZWQgYW5kIGRlZmF1bHQgaW1wb3J0cy4gJyArICdUaGlzIGNhbiBhbHNvIGhhcHBlbiBkdWUgdG8gYSBjaXJjdWxhciBkZXBlbmRlbmN5LCBzbyAnICsgJ3RyeSBtb3ZpbmcgdGhlIGNyZWF0ZUNvbnRleHQoKSBjYWxsIHRvIGEgc2VwYXJhdGUgZmlsZS4nO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb250ZXh0VHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBhZGRlbmR1bSA9ICcgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGEgJyArIHR5cGVvZiBjb250ZXh0VHlwZSArICcuJztcbiAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0VHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSkge1xuICAgICAgICAgIGFkZGVuZHVtID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIHRoZSBDb250ZXh0LlByb3ZpZGVyIGluc3RlYWQ/JztcbiAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0VHlwZS5fY29udGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgICAgYWRkZW5kdW0gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IHBhc3MgdGhlIENvbnRleHQuQ29uc3VtZXIgaW5zdGVhZD8nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFkZGVuZHVtID0gJyBIb3dldmVyLCBpdCBpcyBzZXQgdG8gYW4gb2JqZWN0IHdpdGgga2V5cyB7JyArIE9iamVjdC5rZXlzKGNvbnRleHRUeXBlKS5qb2luKCcsICcpICsgJ30uJztcbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yKCclcyBkZWZpbmVzIGFuIGludmFsaWQgY29udGV4dFR5cGUuICcgKyAnY29udGV4dFR5cGUgc2hvdWxkIHBvaW50IHRvIHRoZSBDb250ZXh0IG9iamVjdCByZXR1cm5lZCBieSBSZWFjdC5jcmVhdGVDb250ZXh0KCkuJXMnLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoY3RvcikgfHwgJ0NvbXBvbmVudCcsIGFkZGVuZHVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbnRleHRUeXBlID09PSAnb2JqZWN0JyAmJiBjb250ZXh0VHlwZSAhPT0gbnVsbCkge1xuICAgIGNvbnRleHQgPSByZWFkQ29udGV4dCQxKGNvbnRleHRUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICBjb250ZXh0ID0gbWFza2VkTGVnYWN5Q29udGV4dDtcbiAgfVxuXG4gIHZhciBpbnN0YW5jZSA9IG5ldyBjdG9yKHByb3BzLCBjb250ZXh0KTtcblxuICB7XG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiAoaW5zdGFuY2Uuc3RhdGUgPT09IG51bGwgfHwgaW5zdGFuY2Uuc3RhdGUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGN0b3IpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlLmFkZChjb21wb25lbnROYW1lKTtcblxuICAgICAgICBlcnJvcignYCVzYCB1c2VzIGBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNgIGJ1dCBpdHMgaW5pdGlhbCBzdGF0ZSBpcyAnICsgJyVzLiBUaGlzIGlzIG5vdCByZWNvbW1lbmRlZC4gSW5zdGVhZCwgZGVmaW5lIHRoZSBpbml0aWFsIHN0YXRlIGJ5ICcgKyAnYXNzaWduaW5nIGFuIG9iamVjdCB0byBgdGhpcy5zdGF0ZWAgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIGAlc2AuICcgKyAnVGhpcyBlbnN1cmVzIHRoYXQgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgYXJndW1lbnRzIGhhdmUgYSBjb25zaXN0ZW50IHNoYXBlLicsIGNvbXBvbmVudE5hbWUsIGluc3RhbmNlLnN0YXRlID09PSBudWxsID8gJ251bGwnIDogJ3VuZGVmaW5lZCcsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH0gLy8gSWYgbmV3IGNvbXBvbmVudCBBUElzIGFyZSBkZWZpbmVkLCBcInVuc2FmZVwiIGxpZmVjeWNsZXMgd29uJ3QgYmUgY2FsbGVkLlxuICAgIC8vIFdhcm4gYWJvdXQgdGhlc2UgbGlmZWN5Y2xlcyBpZiB0aGV5IGFyZSBwcmVzZW50LlxuICAgIC8vIERvbid0IHdhcm4gYWJvdXQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBtZXRob2RzIHRob3VnaC5cblxuXG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBmb3VuZFdpbGxNb3VudE5hbWUgPSBudWxsO1xuICAgICAgdmFyIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSBudWxsO1xuICAgICAgdmFyIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBudWxsO1xuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyAmJiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnY29tcG9uZW50V2lsbE1vdW50JztcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsTW91bnROYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsTW91bnQnO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcy5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICE9PSB0cnVlKSB7XG4gICAgICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJztcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSc7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3VuZFdpbGxNb3VudE5hbWUgIT09IG51bGwgfHwgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSAhPT0gbnVsbCB8fCBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBfY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgICB2YXIgbmV3QXBpTmFtZSA9IHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyA/ICdnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoKScgOiAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSc7XG5cbiAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlLmhhcyhfY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgICBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlLmFkZChfY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgICBlcnJvcignVW5zYWZlIGxlZ2FjeSBsaWZlY3ljbGVzIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgY29tcG9uZW50cyB1c2luZyBuZXcgY29tcG9uZW50IEFQSXMuXFxuXFxuJyArICclcyB1c2VzICVzIGJ1dCBhbHNvIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgbGVnYWN5IGxpZmVjeWNsZXM6JXMlcyVzXFxuXFxuJyArICdUaGUgYWJvdmUgbGlmZWN5Y2xlcyBzaG91bGQgYmUgcmVtb3ZlZC4gTGVhcm4gbW9yZSBhYm91dCB0aGlzIHdhcm5pbmcgaGVyZTpcXG4nICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMnLCBfY29tcG9uZW50TmFtZSwgbmV3QXBpTmFtZSwgZm91bmRXaWxsTW91bnROYW1lICE9PSBudWxsID8gXCJcXG4gIFwiICsgZm91bmRXaWxsTW91bnROYW1lIDogJycsIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgIT09IG51bGwgPyBcIlxcbiAgXCIgKyBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lIDogJycsIGZvdW5kV2lsbFVwZGF0ZU5hbWUgIT09IG51bGwgPyBcIlxcbiAgXCIgKyBmb3VuZFdpbGxVcGRhdGVOYW1lIDogJycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG5mdW5jdGlvbiBjaGVja0NsYXNzSW5zdGFuY2UoaW5zdGFuY2UsIGN0b3IsIG5ld1Byb3BzKSB7XG4gIHtcbiAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQ29tcG9uZW50JztcbiAgICB2YXIgcmVuZGVyUHJlc2VudCA9IGluc3RhbmNlLnJlbmRlcjtcblxuICAgIGlmICghcmVuZGVyUHJlc2VudCkge1xuICAgICAgaWYgKGN0b3IucHJvdG90eXBlICYmIHR5cGVvZiBjdG9yLnByb3RvdHlwZS5yZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJyVzKC4uLik6IE5vIGByZW5kZXJgIG1ldGhvZCBmb3VuZCBvbiB0aGUgcmV0dXJuZWQgY29tcG9uZW50ICcgKyAnaW5zdGFuY2U6IGRpZCB5b3UgYWNjaWRlbnRhbGx5IHJldHVybiBhbiBvYmplY3QgZnJvbSB0aGUgY29uc3RydWN0b3I/JywgbmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcignJXMoLi4uKTogTm8gYHJlbmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQgJyArICdpbnN0YW5jZTogeW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBkZWZpbmUgYHJlbmRlcmAuJywgbmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGluc3RhbmNlLmdldEluaXRpYWxTdGF0ZSAmJiAhaW5zdGFuY2UuZ2V0SW5pdGlhbFN0YXRlLmlzUmVhY3RDbGFzc0FwcHJvdmVkICYmICFpbnN0YW5jZS5zdGF0ZSkge1xuICAgICAgZXJyb3IoJ2dldEluaXRpYWxTdGF0ZSB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdEaWQgeW91IG1lYW4gdG8gZGVmaW5lIGEgc3RhdGUgcHJvcGVydHkgaW5zdGVhZD8nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZ2V0RGVmYXVsdFByb3BzICYmICFpbnN0YW5jZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQpIHtcbiAgICAgIGVycm9yKCdnZXREZWZhdWx0UHJvcHMgd2FzIGRlZmluZWQgb24gJXMsIGEgcGxhaW4gSmF2YVNjcmlwdCBjbGFzcy4gJyArICdUaGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBjbGFzc2VzIGNyZWF0ZWQgdXNpbmcgUmVhY3QuY3JlYXRlQ2xhc3MuICcgKyAnVXNlIGEgc3RhdGljIHByb3BlcnR5IHRvIGRlZmluZSBkZWZhdWx0UHJvcHMgaW5zdGVhZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UucHJvcFR5cGVzKSB7XG4gICAgICBlcnJvcigncHJvcFR5cGVzIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgJyArICdwcm9wZXJ0eSB0byBkZWZpbmUgcHJvcFR5cGVzIGluc3RlYWQuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKGluc3RhbmNlLmNvbnRleHRUeXBlKSB7XG4gICAgICBlcnJvcignY29udGV4dFR5cGUgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0YXRpYyAnICsgJ3Byb3BlcnR5IHRvIGRlZmluZSBjb250ZXh0VHlwZSBpbnN0ZWFkLicsIG5hbWUpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmIChpbnN0YW5jZS5jb250ZXh0VHlwZXMpIHtcbiAgICAgICAgZXJyb3IoJ2NvbnRleHRUeXBlcyB3YXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eSBvbiAlcy4gVXNlIGEgc3RhdGljICcgKyAncHJvcGVydHkgdG8gZGVmaW5lIGNvbnRleHRUeXBlcyBpbnN0ZWFkLicsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoY3Rvci5jb250ZXh0VHlwZSAmJiBjdG9yLmNvbnRleHRUeXBlcyAmJiAhZGlkV2FybkFib3V0Q29udGV4dFR5cGVBbmRDb250ZXh0VHlwZXMuaGFzKGN0b3IpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dENvbnRleHRUeXBlQW5kQ29udGV4dFR5cGVzLmFkZChjdG9yKTtcblxuICAgICAgICBlcnJvcignJXMgZGVjbGFyZXMgYm90aCBjb250ZXh0VHlwZXMgYW5kIGNvbnRleHRUeXBlIHN0YXRpYyBwcm9wZXJ0aWVzLiAnICsgJ1RoZSBsZWdhY3kgY29udGV4dFR5cGVzIHByb3BlcnR5IHdpbGwgYmUgaWdub3JlZC4nLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFNob3VsZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnRTaG91bGRVcGRhdGUoKS4gRGlkIHlvdSBtZWFuIHNob3VsZENvbXBvbmVudFVwZGF0ZSgpPyAnICsgJ1RoZSBuYW1lIGlzIHBocmFzZWQgYXMgYSBxdWVzdGlvbiBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyAnICsgJ2V4cGVjdGVkIHRvIHJldHVybiBhIHZhbHVlLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChjdG9yLnByb3RvdHlwZSAmJiBjdG9yLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudCAmJiB0eXBlb2YgaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgc2hvdWxkQ29tcG9uZW50VXBkYXRlKCkuICcgKyAnc2hvdWxkQ29tcG9uZW50VXBkYXRlIHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIGV4dGVuZGluZyBSZWFjdC5QdXJlQ29tcG9uZW50LiAnICsgJ1BsZWFzZSBleHRlbmQgUmVhY3QuQ29tcG9uZW50IGlmIHNob3VsZENvbXBvbmVudFVwZGF0ZSBpcyB1c2VkLicsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQSBwdXJlIGNvbXBvbmVudCcpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVW5tb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnREaWRVbm1vdW50KCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50RGlkUmVjZWl2ZVByb3BzKCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnSWYgeW91IG1lYW50IHRvIHVwZGF0ZSB0aGUgc3RhdGUgaW4gcmVzcG9uc2UgdG8gY2hhbmdpbmcgcHJvcHMsICcgKyAndXNlIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKS4gSWYgeW91IG1lYW50IHRvIGZldGNoIGRhdGEgb3IgJyArICdydW4gc2lkZS1lZmZlY3RzIG9yIG11dGF0aW9ucyBhZnRlciBSZWFjdCBoYXMgdXBkYXRlZCB0aGUgVUksIHVzZSBjb21wb25lbnREaWRVcGRhdGUoKS4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcygpLiBEaWQgeW91IG1lYW4gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpPycsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIGhhc011dGF0ZWRQcm9wcyA9IGluc3RhbmNlLnByb3BzICE9PSBuZXdQcm9wcztcblxuICAgIGlmIChpbnN0YW5jZS5wcm9wcyAhPT0gdW5kZWZpbmVkICYmIGhhc011dGF0ZWRQcm9wcykge1xuICAgICAgZXJyb3IoJyVzKC4uLik6IFdoZW4gY2FsbGluZyBzdXBlcigpIGluIGAlc2AsIG1ha2Ugc3VyZSB0byBwYXNzICcgKyBcInVwIHRoZSBzYW1lIHByb3BzIHRoYXQgeW91ciBjb21wb25lbnQncyBjb25zdHJ1Y3RvciB3YXMgcGFzc2VkLlwiLCBuYW1lLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZGVmYXVsdFByb3BzKSB7XG4gICAgICBlcnJvcignU2V0dGluZyBkZWZhdWx0UHJvcHMgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSBpZ25vcmVkLicgKyAnIEluc3RlYWQsIGRlZmluZSBkZWZhdWx0UHJvcHMgYXMgYSBzdGF0aWMgcHJvcGVydHkgb24gJXMuJywgbmFtZSwgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVXBkYXRlICE9PSAnZnVuY3Rpb24nICYmICFkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuaGFzKGN0b3IpKSB7XG4gICAgICBkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuYWRkKGN0b3IpO1xuXG4gICAgICBlcnJvcignJXM6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgc2hvdWxkIGJlIHVzZWQgd2l0aCBjb21wb25lbnREaWRVcGRhdGUoKS4gJyArICdUaGlzIGNvbXBvbmVudCBkZWZpbmVzIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgb25seS4nLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoY3RvcikpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXM6IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kICcgKyAnYW5kIHdpbGwgYmUgaWdub3JlZC4gSW5zdGVhZCwgZGVjbGFyZSBpdCBhcyBhIHN0YXRpYyBtZXRob2QuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclczogZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKCkgaXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBtZXRob2QgJyArICdhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWNsYXJlIGl0IGFzIGEgc3RhdGljIG1ldGhvZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGN0b3IuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclczogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBpcyBkZWZpbmVkIGFzIGEgc3RhdGljIG1ldGhvZCAnICsgJ2FuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kLicsIG5hbWUpO1xuICAgIH1cblxuICAgIHZhciBzdGF0ZSA9IGluc3RhbmNlLnN0YXRlO1xuXG4gICAgaWYgKHN0YXRlICYmICh0eXBlb2Ygc3RhdGUgIT09ICdvYmplY3QnIHx8IGlzQXJyYXkoc3RhdGUpKSkge1xuICAgICAgZXJyb3IoJyVzLnN0YXRlOiBtdXN0IGJlIHNldCB0byBhbiBvYmplY3Qgb3IgbnVsbCcsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBjdG9yLmNoaWxkQ29udGV4dFR5cGVzICE9PSAnb2JqZWN0Jykge1xuICAgICAgZXJyb3IoJyVzLmdldENoaWxkQ29udGV4dCgpOiBjaGlsZENvbnRleHRUeXBlcyBtdXN0IGJlIGRlZmluZWQgaW4gb3JkZXIgdG8gJyArICd1c2UgZ2V0Q2hpbGRDb250ZXh0KCkuJywgbmFtZSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNhbGxDb21wb25lbnRXaWxsTW91bnQodHlwZSwgaW5zdGFuY2UpIHtcbiAgdmFyIG9sZFN0YXRlID0gaW5zdGFuY2Uuc3RhdGU7XG5cbiAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICBpZiAoaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50Ll9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgIT09IHRydWUpIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkgfHwgJ1Vua25vd24nO1xuXG4gICAgICAgIGlmICghZGlkV2FybkFib3V0RGVwcmVjYXRlZFdpbGxNb3VudFtjb21wb25lbnROYW1lXSkge1xuICAgICAgICAgIHdhcm4oIC8vIGtlZXAgdGhpcyB3YXJuaW5nIGluIHN5bmMgd2l0aCBSZWFjdFN0cmljdE1vZGVXYXJuaW5nLmpzXG4gICAgICAgICAgJ2NvbXBvbmVudFdpbGxNb3VudCBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgY29kZSBmcm9tIGNvbXBvbmVudFdpbGxNb3VudCB0byBjb21wb25lbnREaWRNb3VudCAocHJlZmVycmVkIGluIG1vc3QgY2FzZXMpICcgKyAnb3IgdGhlIGNvbnN0cnVjdG9yLlxcbicgKyAnXFxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzJywgY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXREZXByZWNhdGVkV2lsbE1vdW50W2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCgpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpO1xuICB9XG5cbiAgaWYgKG9sZFN0YXRlICE9PSBpbnN0YW5jZS5zdGF0ZSkge1xuICAgIHtcbiAgICAgIGVycm9yKCclcy5jb21wb25lbnRXaWxsTW91bnQoKTogQXNzaWduaW5nIGRpcmVjdGx5IHRvIHRoaXMuc3RhdGUgaXMgJyArIFwiZGVwcmVjYXRlZCAoZXhjZXB0IGluc2lkZSBhIGNvbXBvbmVudCdzIFwiICsgJ2NvbnN0cnVjdG9yKS4gVXNlIHNldFN0YXRlIGluc3RlYWQuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICB9XG5cbiAgICBjbGFzc0NvbXBvbmVudFVwZGF0ZXIuZW5xdWV1ZVJlcGxhY2VTdGF0ZShpbnN0YW5jZSwgaW5zdGFuY2Uuc3RhdGUsIG51bGwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NVcGRhdGVRdWV1ZShpbnRlcm5hbEluc3RhbmNlLCBpbnN0LCBwcm9wcywgbWFza2VkTGVnYWN5Q29udGV4dCkge1xuICBpZiAoaW50ZXJuYWxJbnN0YW5jZS5xdWV1ZSAhPT0gbnVsbCAmJiBpbnRlcm5hbEluc3RhbmNlLnF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgb2xkUXVldWUgPSBpbnRlcm5hbEluc3RhbmNlLnF1ZXVlO1xuICAgIHZhciBvbGRSZXBsYWNlID0gaW50ZXJuYWxJbnN0YW5jZS5yZXBsYWNlO1xuICAgIGludGVybmFsSW5zdGFuY2UucXVldWUgPSBudWxsO1xuICAgIGludGVybmFsSW5zdGFuY2UucmVwbGFjZSA9IGZhbHNlO1xuXG4gICAgaWYgKG9sZFJlcGxhY2UgJiYgb2xkUXVldWUubGVuZ3RoID09PSAxKSB7XG4gICAgICBpbnN0LnN0YXRlID0gb2xkUXVldWVbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBuZXh0U3RhdGUgPSBvbGRSZXBsYWNlID8gb2xkUXVldWVbMF0gOiBpbnN0LnN0YXRlO1xuICAgICAgdmFyIGRvbnRNdXRhdGUgPSB0cnVlO1xuXG4gICAgICBmb3IgKHZhciBpID0gb2xkUmVwbGFjZSA/IDEgOiAwOyBpIDwgb2xkUXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHBhcnRpYWwgPSBvbGRRdWV1ZVtpXTtcbiAgICAgICAgdmFyIHBhcnRpYWxTdGF0ZSA9IHR5cGVvZiBwYXJ0aWFsID09PSAnZnVuY3Rpb24nID8gcGFydGlhbC5jYWxsKGluc3QsIG5leHRTdGF0ZSwgcHJvcHMsIG1hc2tlZExlZ2FjeUNvbnRleHQpIDogcGFydGlhbDtcblxuICAgICAgICBpZiAocGFydGlhbFN0YXRlICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAoZG9udE11dGF0ZSkge1xuICAgICAgICAgICAgZG9udE11dGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgbmV4dFN0YXRlID0gYXNzaWduKHt9LCBuZXh0U3RhdGUsIHBhcnRpYWxTdGF0ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFzc2lnbihuZXh0U3RhdGUsIHBhcnRpYWxTdGF0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGluc3Quc3RhdGUgPSBuZXh0U3RhdGU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGludGVybmFsSW5zdGFuY2UucXVldWUgPSBudWxsO1xuICB9XG59IC8vIEludm9rZXMgdGhlIG1vdW50IGxpZmUtY3ljbGVzIG9uIGEgcHJldmlvdXNseSBuZXZlciByZW5kZXJlZCBpbnN0YW5jZS5cblxuXG5mdW5jdGlvbiBtb3VudENsYXNzSW5zdGFuY2UoaW5zdGFuY2UsIGN0b3IsIG5ld1Byb3BzLCBtYXNrZWRMZWdhY3lDb250ZXh0KSB7XG4gIHtcbiAgICBjaGVja0NsYXNzSW5zdGFuY2UoaW5zdGFuY2UsIGN0b3IsIG5ld1Byb3BzKTtcbiAgfVxuXG4gIHZhciBpbml0aWFsU3RhdGUgPSBpbnN0YW5jZS5zdGF0ZSAhPT0gdW5kZWZpbmVkID8gaW5zdGFuY2Uuc3RhdGUgOiBudWxsO1xuICBpbnN0YW5jZS51cGRhdGVyID0gY2xhc3NDb21wb25lbnRVcGRhdGVyO1xuICBpbnN0YW5jZS5wcm9wcyA9IG5ld1Byb3BzO1xuICBpbnN0YW5jZS5zdGF0ZSA9IGluaXRpYWxTdGF0ZTsgLy8gV2UgZG9uJ3QgYm90aGVyIGluaXRpYWxpemluZyB0aGUgcmVmcyBvYmplY3Qgb24gdGhlIHNlcnZlciwgc2luY2Ugd2UncmUgbm90IGdvaW5nIHRvIHJlc29sdmUgdGhlbSBhbnl3YXkuXG4gIC8vIFRoZSBpbnRlcm5hbCBpbnN0YW5jZSB3aWxsIGJlIHVzZWQgdG8gbWFuYWdlIHVwZGF0ZXMgdGhhdCBoYXBwZW4gZHVyaW5nIHRoaXMgbW91bnQuXG5cbiAgdmFyIGludGVybmFsSW5zdGFuY2UgPSB7XG4gICAgcXVldWU6IFtdLFxuICAgIHJlcGxhY2U6IGZhbHNlXG4gIH07XG4gIHNldChpbnN0YW5jZSwgaW50ZXJuYWxJbnN0YW5jZSk7XG4gIHZhciBjb250ZXh0VHlwZSA9IGN0b3IuY29udGV4dFR5cGU7XG5cbiAgaWYgKHR5cGVvZiBjb250ZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgY29udGV4dFR5cGUgIT09IG51bGwpIHtcbiAgICBpbnN0YW5jZS5jb250ZXh0ID0gcmVhZENvbnRleHQkMShjb250ZXh0VHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgaW5zdGFuY2UuY29udGV4dCA9IG1hc2tlZExlZ2FjeUNvbnRleHQ7XG4gIH1cblxuICB7XG4gICAgaWYgKGluc3RhbmNlLnN0YXRlID09PSBuZXdQcm9wcykge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoY3RvcikgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlLmFkZChjb21wb25lbnROYW1lKTtcblxuICAgICAgICBlcnJvcignJXM6IEl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byBhc3NpZ24gcHJvcHMgZGlyZWN0bHkgdG8gc3RhdGUgJyArIFwiYmVjYXVzZSB1cGRhdGVzIHRvIHByb3BzIHdvbid0IGJlIHJlZmxlY3RlZCBpbiBzdGF0ZS4gXCIgKyAnSW4gbW9zdCBjYXNlcywgaXQgaXMgYmV0dGVyIHRvIHVzZSBwcm9wcyBkaXJlY3RseS4nLCBjb21wb25lbnROYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XG5cbiAgaWYgKHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5zdGF0ZSA9IGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKGluc3RhbmNlLCBjdG9yLCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsIGluaXRpYWxTdGF0ZSwgbmV3UHJvcHMpO1xuICB9IC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAvLyBVbnNhZmUgbGlmZWN5Y2xlcyBzaG91bGQgbm90IGJlIGludm9rZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgdGhlIG5ldyBBUElzLlxuXG5cbiAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgIT09ICdmdW5jdGlvbicgJiYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgY2FsbENvbXBvbmVudFdpbGxNb3VudChjdG9yLCBpbnN0YW5jZSk7IC8vIElmIHdlIGhhZCBhZGRpdGlvbmFsIHN0YXRlIHVwZGF0ZXMgZHVyaW5nIHRoaXMgbGlmZS1jeWNsZSwgbGV0J3NcbiAgICAvLyBwcm9jZXNzIHRoZW0gbm93LlxuXG4gICAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKGludGVybmFsSW5zdGFuY2UsIGluc3RhbmNlLCBuZXdQcm9wcywgbWFza2VkTGVnYWN5Q29udGV4dCk7XG4gIH1cbn1cblxuLy8gSWRzIGFyZSBiYXNlIDMyIHN0cmluZ3Mgd2hvc2UgYmluYXJ5IHJlcHJlc2VudGF0aW9uIGNvcnJlc3BvbmRzIHRvIHRoZVxuLy8gcG9zaXRpb24gb2YgYSBub2RlIGluIGEgdHJlZS5cbi8vIEV2ZXJ5IHRpbWUgdGhlIHRyZWUgZm9ya3MgaW50byBtdWx0aXBsZSBjaGlsZHJlbiwgd2UgYWRkIGFkZGl0aW9uYWwgYml0cyB0b1xuLy8gdGhlIGxlZnQgb2YgdGhlIHNlcXVlbmNlIHRoYXQgcmVwcmVzZW50IHRoZSBwb3NpdGlvbiBvZiB0aGUgY2hpbGQgd2l0aGluIHRoZVxuLy8gY3VycmVudCBsZXZlbCBvZiBjaGlsZHJlbi5cbi8vXG4vLyAgICAgIDAwMTAxICAgICAgIDAwMDEwMDAxMDExMDEwMTAxXG4vLyAgICAgIOKVsOKUgOKUrOKUgOKVryAgICAgICDilbDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDila9cbi8vICAgRm9yayA1IG9mIDIwICAgICAgIFBhcmVudCBpZFxuLy9cbi8vIFRoZSBsZWFkaW5nIDBzIGFyZSBpbXBvcnRhbnQuIEluIHRoZSBhYm92ZSBleGFtcGxlLCB5b3Ugb25seSBuZWVkIDMgYml0cyB0b1xuLy8gcmVwcmVzZW50IHNsb3QgNS4gSG93ZXZlciwgeW91IG5lZWQgNSBiaXRzIHRvIHJlcHJlc2VudCBhbGwgdGhlIGZvcmtzIGF0XG4vLyB0aGUgY3VycmVudCBsZXZlbCwgc28gd2UgbXVzdCBhY2NvdW50IGZvciB0aGUgZW1wdHkgYml0cyBhdCB0aGUgZW5kLlxuLy9cbi8vIEZvciB0aGlzIHNhbWUgcmVhc29uLCBzbG90cyBhcmUgMS1pbmRleGVkIGluc3RlYWQgb2YgMC1pbmRleGVkLiBPdGhlcndpc2UsXG4vLyB0aGUgemVyb3RoIGlkIGF0IGEgbGV2ZWwgd291bGQgYmUgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBpdHMgcGFyZW50LlxuLy9cbi8vIElmIGEgbm9kZSBoYXMgb25seSBvbmUgY2hpbGQsIGFuZCBkb2VzIG5vdCBtYXRlcmlhbGl6ZSBhbiBpZCAoaS5lLiBkb2VzIG5vdFxuLy8gY29udGFpbiBhIHVzZUlkIGhvb2spLCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gYWxsb2NhdGUgYW55IHNwYWNlIGluIHRoZVxuLy8gc2VxdWVuY2UuIEl0J3MgdHJlYXRlZCBhcyBhIHRyYW5zcGFyZW50IGluZGlyZWN0aW9uLiBGb3IgZXhhbXBsZSwgdGhlc2UgdHdvXG4vLyB0cmVlcyBwcm9kdWNlIHRoZSBzYW1lIGlkczpcbi8vXG4vLyA8PiAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbi8vICAgPEluZGlyZWN0aW9uPiAgICAgICAgICAgICAgIDxBIC8+XG4vLyAgICAgPEEgLz4gICAgICAgICAgICAgICAgICAgICA8QiAvPlxuLy8gICA8L0luZGlyZWN0aW9uPiAgICAgICAgICAgIDwvPlxuLy8gICA8QiAvPlxuLy8gPC8+XG4vL1xuLy8gSG93ZXZlciwgd2UgY2Fubm90IHNraXAgYW55IG5vZGUgdGhhdCBtYXRlcmlhbGl6ZXMgYW4gaWQuIE90aGVyd2lzZSwgYSBwYXJlbnRcbi8vIGlkIHRoYXQgZG9lcyBub3QgZm9yayB3b3VsZCBiZSBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIGl0cyBjaGlsZCBpZC4gRm9yXG4vLyBleGFtcGxlLCB0aGlzIHRyZWUgZG9lcyBub3QgZm9yaywgYnV0IHRoZSBwYXJlbnQgYW5kIGNoaWxkIG11c3QgaGF2ZVxuLy8gZGlmZmVyZW50IGlkcy5cbi8vXG4vLyA8UGFyZW50PlxuLy8gICA8Q2hpbGQgLz5cbi8vIDwvUGFyZW50PlxuLy9cbi8vIFRvIGhhbmRsZSB0aGlzIHNjZW5hcmlvLCBldmVyeSB0aW1lIHdlIG1hdGVyaWFsaXplIGFuIGlkLCB3ZSBhbGxvY2F0ZSBhXG4vLyBuZXcgbGV2ZWwgd2l0aCBhIHNpbmdsZSBzbG90LiBZb3UgY2FuIHRoaW5rIG9mIHRoaXMgYXMgYSBmb3JrIHdpdGggb25seSBvbmVcbi8vIHByb25nLCBvciBhbiBhcnJheSBvZiBjaGlsZHJlbiB3aXRoIGxlbmd0aCAxLlxuLy9cbi8vIEl0J3MgcG9zc2libGUgZm9yIHRoZSBzaXplIG9mIHRoZSBzZXF1ZW5jZSB0byBleGNlZWQgMzIgYml0cywgdGhlIG1heFxuLy8gc2l6ZSBmb3IgYml0d2lzZSBvcGVyYXRpb25zLiBXaGVuIHRoaXMgaGFwcGVucywgd2UgbWFrZSBtb3JlIHJvb20gYnlcbi8vIGNvbnZlcnRpbmcgdGhlIHJpZ2h0IHBhcnQgb2YgdGhlIGlkIHRvIGEgc3RyaW5nIGFuZCBzdG9yaW5nIGl0IGluIGFuIG92ZXJmbG93XG4vLyB2YXJpYWJsZS4gV2UgdXNlIGEgYmFzZSAzMiBzdHJpbmcgcmVwcmVzZW50YXRpb24sIGJlY2F1c2UgMzIgaXMgdGhlIGxhcmdlc3Rcbi8vIHBvd2VyIG9mIDIgdGhhdCBpcyBzdXBwb3J0ZWQgYnkgdG9TdHJpbmcoKS4gV2Ugd2FudCB0aGUgYmFzZSB0byBiZSBsYXJnZSBzb1xuLy8gdGhhdCB0aGUgcmVzdWx0aW5nIGlkcyBhcmUgY29tcGFjdCwgYW5kIHdlIHdhbnQgdGhlIGJhc2UgdG8gYmUgYSBwb3dlciBvZiAyXG4vLyBiZWNhdXNlIGV2ZXJ5IGxvZzIoYmFzZSkgYml0cyBjb3JyZXNwb25kcyB0byBhIHNpbmdsZSBjaGFyYWN0ZXIsIGkuZS4gZXZlcnlcbi8vIGxvZzIoMzIpID0gNSBiaXRzLiBUaGF0IG1lYW5zIHdlIGNhbiBsb3AgYml0cyBvZmYgdGhlIGVuZCA1IGF0IGEgdGltZSB3aXRob3V0XG4vLyBhZmZlY3RpbmcgdGhlIGZpbmFsIHJlc3VsdC5cbnZhciBlbXB0eVRyZWVDb250ZXh0ID0ge1xuICBpZDogMSxcbiAgb3ZlcmZsb3c6ICcnXG59O1xuZnVuY3Rpb24gZ2V0VHJlZUlkKGNvbnRleHQpIHtcbiAgdmFyIG92ZXJmbG93ID0gY29udGV4dC5vdmVyZmxvdztcbiAgdmFyIGlkV2l0aExlYWRpbmdCaXQgPSBjb250ZXh0LmlkO1xuICB2YXIgaWQgPSBpZFdpdGhMZWFkaW5nQml0ICYgfmdldExlYWRpbmdCaXQoaWRXaXRoTGVhZGluZ0JpdCk7XG4gIHJldHVybiBpZC50b1N0cmluZygzMikgKyBvdmVyZmxvdztcbn1cbmZ1bmN0aW9uIHB1c2hUcmVlQ29udGV4dChiYXNlQ29udGV4dCwgdG90YWxDaGlsZHJlbiwgaW5kZXgpIHtcbiAgdmFyIGJhc2VJZFdpdGhMZWFkaW5nQml0ID0gYmFzZUNvbnRleHQuaWQ7XG4gIHZhciBiYXNlT3ZlcmZsb3cgPSBiYXNlQ29udGV4dC5vdmVyZmxvdzsgLy8gVGhlIGxlZnRtb3N0IDEgbWFya3MgdGhlIGVuZCBvZiB0aGUgc2VxdWVuY2UsIG5vbi1pbmNsdXNpdmUuIEl0J3Mgbm90IHBhcnRcbiAgLy8gb2YgdGhlIGlkOyB3ZSB1c2UgaXQgdG8gYWNjb3VudCBmb3IgbGVhZGluZyAwcy5cblxuICB2YXIgYmFzZUxlbmd0aCA9IGdldEJpdExlbmd0aChiYXNlSWRXaXRoTGVhZGluZ0JpdCkgLSAxO1xuICB2YXIgYmFzZUlkID0gYmFzZUlkV2l0aExlYWRpbmdCaXQgJiB+KDEgPDwgYmFzZUxlbmd0aCk7XG4gIHZhciBzbG90ID0gaW5kZXggKyAxO1xuICB2YXIgbGVuZ3RoID0gZ2V0Qml0TGVuZ3RoKHRvdGFsQ2hpbGRyZW4pICsgYmFzZUxlbmd0aDsgLy8gMzAgaXMgdGhlIG1heCBsZW5ndGggd2UgY2FuIHN0b3JlIHdpdGhvdXQgb3ZlcmZsb3dpbmcsIHRha2luZyBpbnRvXG4gIC8vIGNvbnNpZGVyYXRpb24gdGhlIGxlYWRpbmcgMSB3ZSB1c2UgdG8gbWFyayB0aGUgZW5kIG9mIHRoZSBzZXF1ZW5jZS5cblxuICBpZiAobGVuZ3RoID4gMzApIHtcbiAgICAvLyBXZSBvdmVyZmxvd2VkIHRoZSBiaXR3aXNlLXNhZmUgcmFuZ2UuIEZhbGwgYmFjayB0byBzbG93ZXIgYWxnb3JpdGhtLlxuICAgIC8vIFRoaXMgYnJhbmNoIGFzc3VtZXMgdGhlIGxlbmd0aCBvZiB0aGUgYmFzZSBpZCBpcyBncmVhdGVyIHRoYW4gNTsgaXQgd29uJ3RcbiAgICAvLyB3b3JrIGZvciBzbWFsbGVyIGlkcywgYmVjYXVzZSB5b3UgbmVlZCA1IGJpdHMgcGVyIGNoYXJhY3Rlci5cbiAgICAvL1xuICAgIC8vIFdlIGVuY29kZSB0aGUgaWQgaW4gbXVsdGlwbGUgc3RlcHM6IGZpcnN0IHRoZSBiYXNlIGlkLCB0aGVuIHRoZVxuICAgIC8vIHJlbWFpbmluZyBkaWdpdHMuXG4gICAgLy9cbiAgICAvLyBFYWNoIDUgYml0IHNlcXVlbmNlIGNvcnJlc3BvbmRzIHRvIGEgc2luZ2xlIGJhc2UgMzIgY2hhcmFjdGVyLiBTbyBmb3JcbiAgICAvLyBleGFtcGxlLCBpZiB0aGUgY3VycmVudCBpZCBpcyAyMyBiaXRzIGxvbmcsIHdlIGNhbiBjb252ZXJ0IDIwIG9mIHRob3NlXG4gICAgLy8gYml0cyBpbnRvIGEgc3RyaW5nIG9mIDQgY2hhcmFjdGVycywgd2l0aCAzIGJpdHMgbGVmdCBvdmVyLlxuICAgIC8vXG4gICAgLy8gRmlyc3QgY2FsY3VsYXRlIGhvdyBtYW55IGJpdHMgaW4gdGhlIGJhc2UgaWQgcmVwcmVzZW50IGEgY29tcGxldGVcbiAgICAvLyBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzLlxuICAgIHZhciBudW1iZXJPZk92ZXJmbG93Qml0cyA9IGJhc2VMZW5ndGggLSBiYXNlTGVuZ3RoICUgNTsgLy8gVGhlbiBjcmVhdGUgYSBiaXRtYXNrIHRoYXQgc2VsZWN0cyBvbmx5IHRob3NlIGJpdHMuXG5cbiAgICB2YXIgbmV3T3ZlcmZsb3dCaXRzID0gKDEgPDwgbnVtYmVyT2ZPdmVyZmxvd0JpdHMpIC0gMTsgLy8gU2VsZWN0IHRoZSBiaXRzLCBhbmQgY29udmVydCB0aGVtIHRvIGEgYmFzZSAzMiBzdHJpbmcuXG5cbiAgICB2YXIgbmV3T3ZlcmZsb3cgPSAoYmFzZUlkICYgbmV3T3ZlcmZsb3dCaXRzKS50b1N0cmluZygzMik7IC8vIE5vdyB3ZSBjYW4gcmVtb3ZlIHRob3NlIGJpdHMgZnJvbSB0aGUgYmFzZSBpZC5cblxuICAgIHZhciByZXN0T2ZCYXNlSWQgPSBiYXNlSWQgPj4gbnVtYmVyT2ZPdmVyZmxvd0JpdHM7XG4gICAgdmFyIHJlc3RPZkJhc2VMZW5ndGggPSBiYXNlTGVuZ3RoIC0gbnVtYmVyT2ZPdmVyZmxvd0JpdHM7IC8vIEZpbmFsbHksIGVuY29kZSB0aGUgcmVzdCBvZiB0aGUgYml0cyB1c2luZyB0aGUgbm9ybWFsIGFsZ29yaXRobS4gQmVjYXVzZVxuICAgIC8vIHdlIG1hZGUgbW9yZSByb29tLCB0aGlzIHRpbWUgaXQgd29uJ3Qgb3ZlcmZsb3cuXG5cbiAgICB2YXIgcmVzdE9mTGVuZ3RoID0gZ2V0Qml0TGVuZ3RoKHRvdGFsQ2hpbGRyZW4pICsgcmVzdE9mQmFzZUxlbmd0aDtcbiAgICB2YXIgcmVzdE9mTmV3Qml0cyA9IHNsb3QgPDwgcmVzdE9mQmFzZUxlbmd0aDtcbiAgICB2YXIgaWQgPSByZXN0T2ZOZXdCaXRzIHwgcmVzdE9mQmFzZUlkO1xuICAgIHZhciBvdmVyZmxvdyA9IG5ld092ZXJmbG93ICsgYmFzZU92ZXJmbG93O1xuICAgIHJldHVybiB7XG4gICAgICBpZDogMSA8PCByZXN0T2ZMZW5ndGggfCBpZCxcbiAgICAgIG92ZXJmbG93OiBvdmVyZmxvd1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gTm9ybWFsIHBhdGhcbiAgICB2YXIgbmV3Qml0cyA9IHNsb3QgPDwgYmFzZUxlbmd0aDtcblxuICAgIHZhciBfaWQgPSBuZXdCaXRzIHwgYmFzZUlkO1xuXG4gICAgdmFyIF9vdmVyZmxvdyA9IGJhc2VPdmVyZmxvdztcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IDEgPDwgbGVuZ3RoIHwgX2lkLFxuICAgICAgb3ZlcmZsb3c6IF9vdmVyZmxvd1xuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0Qml0TGVuZ3RoKG51bWJlcikge1xuICByZXR1cm4gMzIgLSBjbHozMihudW1iZXIpO1xufVxuXG5mdW5jdGlvbiBnZXRMZWFkaW5nQml0KGlkKSB7XG4gIHJldHVybiAxIDw8IGdldEJpdExlbmd0aChpZCkgLSAxO1xufSAvLyBUT0RPOiBNYXRoLmNsejMyIGlzIHN1cHBvcnRlZCBpbiBOb2RlIDEyKy4gTWF5YmUgd2UgY2FuIGRyb3AgdGhlIGZhbGxiYWNrLlxuXG5cbnZhciBjbHozMiA9IE1hdGguY2x6MzIgPyBNYXRoLmNsejMyIDogY2x6MzJGYWxsYmFjazsgLy8gQ291bnQgbGVhZGluZyB6ZXJvcy5cbi8vIEJhc2VkIG9uOlxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvTWF0aC9jbHozMlxuXG52YXIgbG9nID0gTWF0aC5sb2c7XG52YXIgTE4yID0gTWF0aC5MTjI7XG5cbmZ1bmN0aW9uIGNsejMyRmFsbGJhY2soeCkge1xuICB2YXIgYXNVaW50ID0geCA+Pj4gMDtcblxuICBpZiAoYXNVaW50ID09PSAwKSB7XG4gICAgcmV0dXJuIDMyO1xuICB9XG5cbiAgcmV0dXJuIDMxIC0gKGxvZyhhc1VpbnQpIC8gTE4yIHwgMCkgfCAwO1xufVxuXG4vLyBDb3JyZXNwb25kcyB0byBSZWFjdEZpYmVyV2FrZWFibGUgYW5kIFJlYWN0RmxpZ2h0V2FrZWFibGUgbW9kdWxlcy4gR2VuZXJhbGx5LFxuLy8gY2hhbmdlcyB0byBvbmUgbW9kdWxlIHNob3VsZCBiZSByZWZsZWN0ZWQgaW4gdGhlIG90aGVycy5cbi8vIFRPRE86IFJlbmFtZSB0aGlzIG1vZHVsZSBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgRmliZXIgb25lIHRvIFwiVGhlbmFibGVcIlxuLy8gaW5zdGVhZCBvZiBcIldha2VhYmxlXCIuIE9yIHNvbWUgb3RoZXIgbW9yZSBhcHByb3ByaWF0ZSBuYW1lLlxuLy8gQW4gZXJyb3IgdGhhdCBpcyB0aHJvd24gKGUuZy4gYnkgYHVzZWApIHRvIHRyaWdnZXIgU3VzcGVuc2UuIElmIHdlXG4vLyBkZXRlY3QgdGhpcyBpcyBjYXVnaHQgYnkgdXNlcnNwYWNlLCB3ZSdsbCBsb2cgYSB3YXJuaW5nIGluIGRldmVsb3BtZW50LlxudmFyIFN1c3BlbnNlRXhjZXB0aW9uID0gbmV3IEVycm9yKFwiU3VzcGVuc2UgRXhjZXB0aW9uOiBUaGlzIGlzIG5vdCBhIHJlYWwgZXJyb3IhIEl0J3MgYW4gaW1wbGVtZW50YXRpb24gXCIgKyAnZGV0YWlsIG9mIGB1c2VgIHRvIGludGVycnVwdCB0aGUgY3VycmVudCByZW5kZXIuIFlvdSBtdXN0IGVpdGhlciAnICsgJ3JldGhyb3cgaXQgaW1tZWRpYXRlbHksIG9yIG1vdmUgdGhlIGB1c2VgIGNhbGwgb3V0c2lkZSBvZiB0aGUgJyArICdgdHJ5L2NhdGNoYCBibG9jay4gQ2FwdHVyaW5nIHdpdGhvdXQgcmV0aHJvd2luZyB3aWxsIGxlYWQgdG8gJyArICd1bmV4cGVjdGVkIGJlaGF2aW9yLlxcblxcbicgKyAnVG8gaGFuZGxlIGFzeW5jIGVycm9ycywgd3JhcCB5b3VyIGNvbXBvbmVudCBpbiBhbiBlcnJvciBib3VuZGFyeSwgb3IgJyArIFwiY2FsbCB0aGUgcHJvbWlzZSdzIGAuY2F0Y2hgIG1ldGhvZCBhbmQgcGFzcyB0aGUgcmVzdWx0IHRvIGB1c2VgXCIpO1xuZnVuY3Rpb24gY3JlYXRlVGhlbmFibGVTdGF0ZSgpIHtcbiAgLy8gVGhlIFRoZW5hYmxlU3RhdGUgaXMgY3JlYXRlZCB0aGUgZmlyc3QgdGltZSBhIGNvbXBvbmVudCBzdXNwZW5kcy4gSWYgaXRcbiAgLy8gc3VzcGVuZHMgYWdhaW4sIHdlJ2xsIHJldXNlIHRoZSBzYW1lIHN0YXRlLlxuICByZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIG5vb3AkMigpIHt9XG5cbmZ1bmN0aW9uIHRyYWNrVXNlZFRoZW5hYmxlKHRoZW5hYmxlU3RhdGUsIHRoZW5hYmxlLCBpbmRleCkge1xuICB2YXIgcHJldmlvdXMgPSB0aGVuYWJsZVN0YXRlW2luZGV4XTtcblxuICBpZiAocHJldmlvdXMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoZW5hYmxlU3RhdGUucHVzaCh0aGVuYWJsZSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHByZXZpb3VzICE9PSB0aGVuYWJsZSkge1xuICAgICAgLy8gUmV1c2UgdGhlIHByZXZpb3VzIHRoZW5hYmxlLCBhbmQgZHJvcCB0aGUgbmV3IG9uZS4gV2UgY2FuIGFzc3VtZVxuICAgICAgLy8gdGhleSByZXByZXNlbnQgdGhlIHNhbWUgdmFsdWUsIGJlY2F1c2UgY29tcG9uZW50cyBhcmUgaWRlbXBvdGVudC5cbiAgICAgIC8vIEF2b2lkIGFuIHVuaGFuZGxlZCByZWplY3Rpb24gZXJyb3JzIGZvciB0aGUgUHJvbWlzZXMgdGhhdCB3ZSdsbFxuICAgICAgLy8gaW50ZW50aW9uYWxseSBpZ25vcmUuXG4gICAgICB0aGVuYWJsZS50aGVuKG5vb3AkMiwgbm9vcCQyKTtcbiAgICAgIHRoZW5hYmxlID0gcHJldmlvdXM7XG4gICAgfVxuICB9IC8vIFdlIHVzZSBhbiBleHBhbmRvIHRvIHRyYWNrIHRoZSBzdGF0dXMgYW5kIHJlc3VsdCBvZiBhIHRoZW5hYmxlIHNvIHRoYXQgd2VcbiAgLy8gY2FuIHN5bmNocm9ub3VzbHkgdW53cmFwIHRoZSB2YWx1ZS4gVGhpbmsgb2YgdGhpcyBhcyBhbiBleHRlbnNpb24gb2YgdGhlXG4gIC8vIFByb21pc2UgQVBJLCBvciBhIGN1c3RvbSBpbnRlcmZhY2UgdGhhdCBpcyBhIHN1cGVyc2V0IG9mIFRoZW5hYmxlLlxuICAvL1xuICAvLyBJZiB0aGUgdGhlbmFibGUgZG9lc24ndCBoYXZlIGEgc3RhdHVzLCBzZXQgaXQgdG8gXCJwZW5kaW5nXCIgYW5kIGF0dGFjaFxuICAvLyBhIGxpc3RlbmVyIHRoYXQgd2lsbCB1cGRhdGUgaXRzIHN0YXR1cyBhbmQgcmVzdWx0IHdoZW4gaXQgcmVzb2x2ZXMuXG5cblxuICBzd2l0Y2ggKHRoZW5hYmxlLnN0YXR1cykge1xuICAgIGNhc2UgJ2Z1bGZpbGxlZCc6XG4gICAgICB7XG4gICAgICAgIHZhciBmdWxmaWxsZWRWYWx1ZSA9IHRoZW5hYmxlLnZhbHVlO1xuICAgICAgICByZXR1cm4gZnVsZmlsbGVkVmFsdWU7XG4gICAgICB9XG5cbiAgICBjYXNlICdyZWplY3RlZCc6XG4gICAgICB7XG4gICAgICAgIHZhciByZWplY3RlZEVycm9yID0gdGhlbmFibGUucmVhc29uO1xuICAgICAgICB0aHJvdyByZWplY3RlZEVycm9yO1xuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGVuYWJsZS5zdGF0dXMgPT09ICdzdHJpbmcnKSA7IGVsc2Uge1xuICAgICAgICAgIHZhciBwZW5kaW5nVGhlbmFibGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICBwZW5kaW5nVGhlbmFibGUuc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgICAgICAgIHBlbmRpbmdUaGVuYWJsZS50aGVuKGZ1bmN0aW9uIChmdWxmaWxsZWRWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoZW5hYmxlLnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XG4gICAgICAgICAgICAgIHZhciBmdWxmaWxsZWRUaGVuYWJsZSA9IHRoZW5hYmxlO1xuICAgICAgICAgICAgICBmdWxmaWxsZWRUaGVuYWJsZS5zdGF0dXMgPSAnZnVsZmlsbGVkJztcbiAgICAgICAgICAgICAgZnVsZmlsbGVkVGhlbmFibGUudmFsdWUgPSBmdWxmaWxsZWRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmICh0aGVuYWJsZS5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgICAgICAgICB2YXIgcmVqZWN0ZWRUaGVuYWJsZSA9IHRoZW5hYmxlO1xuICAgICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICAgICAgICAgIHJlamVjdGVkVGhlbmFibGUucmVhc29uID0gZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7IC8vIENoZWNrIG9uZSBtb3JlIHRpbWUgaW4gY2FzZSB0aGUgdGhlbmFibGUgcmVzb2x2ZWQgc3luY2hyb25vdXNseVxuXG4gICAgICAgICAgc3dpdGNoICh0aGVuYWJsZS5zdGF0dXMpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Z1bGZpbGxlZCc6XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YXIgZnVsZmlsbGVkVGhlbmFibGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVsZmlsbGVkVGhlbmFibGUudmFsdWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAncmVqZWN0ZWQnOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFyIHJlamVjdGVkVGhlbmFibGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICAgICAgICB0aHJvdyByZWplY3RlZFRoZW5hYmxlLnJlYXNvbjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSAvLyBTdXNwZW5kLlxuICAgICAgICAvL1xuICAgICAgICAvLyBUaHJvd2luZyBoZXJlIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCB0aGF0IGFsbG93cyB1cyB0byB1bndpbmQgdGhlXG4gICAgICAgIC8vIGNhbGwgc3RhY2suIEJ1dCB3ZSBzaG91bGRuJ3QgYWxsb3cgaXQgdG8gbGVhayBpbnRvIHVzZXJzcGFjZS4gVGhyb3cgYW5cbiAgICAgICAgLy8gb3BhcXVlIHBsYWNlaG9sZGVyIHZhbHVlIGluc3RlYWQgb2YgdGhlIGFjdHVhbCB0aGVuYWJsZS4gSWYgaXQgZG9lc24ndFxuICAgICAgICAvLyBnZXQgY2FwdHVyZWQgYnkgdGhlIHdvcmsgbG9vcCwgbG9nIGEgd2FybmluZywgYmVjYXVzZSB0aGF0IG1lYW5zXG4gICAgICAgIC8vIHNvbWV0aGluZyBpbiB1c2Vyc3BhY2UgbXVzdCBoYXZlIGNhdWdodCBpdC5cblxuXG4gICAgICAgIHN1c3BlbmRlZFRoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgIHRocm93IFN1c3BlbnNlRXhjZXB0aW9uO1xuICAgICAgfVxuICB9XG59IC8vIFRoaXMgaXMgdXNlZCB0byB0cmFjayB0aGUgYWN0dWFsIHRoZW5hYmxlIHRoYXQgc3VzcGVuZGVkIHNvIGl0IGNhbiBiZVxuLy8gcGFzc2VkIHRvIHRoZSByZXN0IG9mIHRoZSBTdXNwZW5zZSBpbXBsZW1lbnRhdGlvbiDigJQgd2hpY2gsIGZvciBoaXN0b3JpY2FsXG4vLyByZWFzb25zLCBleHBlY3RzIHRvIHJlY2VpdmUgYSB0aGVuYWJsZS5cblxudmFyIHN1c3BlbmRlZFRoZW5hYmxlID0gbnVsbDtcbmZ1bmN0aW9uIGdldFN1c3BlbmRlZFRoZW5hYmxlKCkge1xuICAvLyBUaGlzIGlzIGNhbGxlZCByaWdodCBhZnRlciBgdXNlYCBzdXNwZW5kcyBieSB0aHJvd2luZyBhbiBleGNlcHRpb24uIGB1c2VgXG4gIC8vIHRocm93cyBhbiBvcGFxdWUgdmFsdWUgaW5zdGVhZCBvZiB0aGUgdGhlbmFibGUgaXRzZWxmIHNvIHRoYXQgaXQgY2FuJ3QgYmVcbiAgLy8gY2F1Z2h0IGluIHVzZXJzcGFjZS4gVGhlbiB0aGUgd29yayBsb29wIGFjY2Vzc2VzIHRoZSBhY3R1YWwgdGhlbmFibGUgdXNpbmdcbiAgLy8gdGhpcyBmdW5jdGlvbi5cbiAgaWYgKHN1c3BlbmRlZFRoZW5hYmxlID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIHN1c3BlbmRlZCB0aGVuYWJsZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgJyArICdhbiBpc3N1ZS4nKTtcbiAgfVxuXG4gIHZhciB0aGVuYWJsZSA9IHN1c3BlbmRlZFRoZW5hYmxlO1xuICBzdXNwZW5kZWRUaGVuYWJsZSA9IG51bGw7XG4gIHJldHVybiB0aGVuYWJsZTtcbn1cblxuLyoqXG4gKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvaXNcbiAqL1xuZnVuY3Rpb24gaXMoeCwgeSkge1xuICByZXR1cm4geCA9PT0geSAmJiAoeCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHkpIHx8IHggIT09IHggJiYgeSAhPT0geSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNlbGYtY29tcGFyZVxuICA7XG59XG5cbnZhciBvYmplY3RJcyA9IC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbnR5cGVvZiBPYmplY3QuaXMgPT09ICdmdW5jdGlvbicgPyBPYmplY3QuaXMgOiBpcztcblxudmFyIGN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCA9IG51bGw7XG52YXIgY3VycmVudGx5UmVuZGVyaW5nVGFzayA9IG51bGw7XG52YXIgY3VycmVudGx5UmVuZGVyaW5nUmVxdWVzdCA9IG51bGw7XG52YXIgY3VycmVudGx5UmVuZGVyaW5nS2V5UGF0aCA9IG51bGw7XG52YXIgZmlyc3RXb3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsO1xudmFyIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7IC8vIFdoZXRoZXIgdGhlIHdvcmstaW4tcHJvZ3Jlc3MgaG9vayBpcyBhIHJlLXJlbmRlcmVkIGhvb2tcblxudmFyIGlzUmVSZW5kZXIgPSBmYWxzZTsgLy8gV2hldGhlciBhbiB1cGRhdGUgd2FzIHNjaGVkdWxlZCBkdXJpbmcgdGhlIGN1cnJlbnRseSBleGVjdXRpbmcgcmVuZGVyIHBhc3MuXG5cbnZhciBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gZmFsc2U7IC8vIENvdW50cyB0aGUgbnVtYmVyIG9mIHVzZUlkIGhvb2tzIGluIHRoaXMgY29tcG9uZW50XG5cbnZhciBsb2NhbElkQ291bnRlciA9IDA7IC8vIENodW5rcyB0aGF0IHNob3VsZCBiZSBwdXNoZWQgdG8gdGhlIHN0cmVhbSBvbmNlIHRoZSBjb21wb25lbnRcbi8vIGZpbmlzaGVzIHJlbmRlcmluZy5cbi8vIENvdW50cyB0aGUgbnVtYmVyIG9mIHVzZUZvcm1TdGF0ZSBjYWxscyBpbiB0aGlzIGNvbXBvbmVudFxuXG52YXIgZm9ybVN0YXRlQ291bnRlciA9IDA7IC8vIFRoZSBpbmRleCBvZiB0aGUgdXNlRm9ybVN0YXRlIGhvb2sgdGhhdCBtYXRjaGVzIHRoZSBvbmUgcGFzc2VkIGluIGF0IHRoZVxuLy8gcm9vdCBkdXJpbmcgYW4gTVBBIG5hdmlnYXRpb24sIGlmIGFueS5cblxudmFyIGZvcm1TdGF0ZU1hdGNoaW5nSW5kZXggPSAtMTsgLy8gQ291bnRzIHRoZSBudW1iZXIgb2YgdXNlKHRoZW5hYmxlKSBjYWxscyBpbiB0aGlzIGNvbXBvbmVudFxuXG52YXIgdGhlbmFibGVJbmRleENvdW50ZXIgPSAwO1xudmFyIHRoZW5hYmxlU3RhdGUgPSBudWxsOyAvLyBMYXppbHkgY3JlYXRlZCBtYXAgb2YgcmVuZGVyLXBoYXNlIHVwZGF0ZXNcblxudmFyIHJlbmRlclBoYXNlVXBkYXRlcyA9IG51bGw7IC8vIENvdW50ZXIgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wcy5cblxudmFyIG51bWJlck9mUmVSZW5kZXJzID0gMDtcbnZhciBSRV9SRU5ERVJfTElNSVQgPSAyNTtcbnZhciBpc0luSG9va1VzZXJDb2RlSW5EZXYgPSBmYWxzZTsgLy8gSW4gREVWLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIHByaW1pdGl2ZSBob29rXG5cbnZhciBjdXJyZW50SG9va05hbWVJbkRldjtcblxuZnVuY3Rpb24gcmVzb2x2ZUN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCgpIHtcbiAgaWYgKGN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBob29rIGNhbGwuIEhvb2tzIGNhbiBvbmx5IGJlIGNhbGxlZCBpbnNpZGUgb2YgdGhlIGJvZHkgb2YgYSBmdW5jdGlvbiBjb21wb25lbnQuIFRoaXMgY291bGQgaGFwcGVuIGZvcicgKyAnIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuJyArICcxLiBZb3UgbWlnaHQgaGF2ZSBtaXNtYXRjaGluZyB2ZXJzaW9ucyBvZiBSZWFjdCBhbmQgdGhlIHJlbmRlcmVyIChzdWNoIGFzIFJlYWN0IERPTSlcXG4nICsgJzIuIFlvdSBtaWdodCBiZSBicmVha2luZyB0aGUgUnVsZXMgb2YgSG9va3NcXG4nICsgJzMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG4nICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvaW52YWxpZC1ob29rLWNhbGwgZm9yIHRpcHMgYWJvdXQgaG93IHRvIGRlYnVnIGFuZCBmaXggdGhpcyBwcm9ibGVtLicpO1xuICB9XG5cbiAge1xuICAgIGlmIChpc0luSG9va1VzZXJDb2RlSW5EZXYpIHtcbiAgICAgIGVycm9yKCdEbyBub3QgY2FsbCBIb29rcyBpbnNpZGUgdXNlRWZmZWN0KC4uLiksIHVzZU1lbW8oLi4uKSwgb3Igb3RoZXIgYnVpbHQtaW4gSG9va3MuICcgKyAnWW91IGNhbiBvbmx5IGNhbGwgSG9va3MgYXQgdGhlIHRvcCBsZXZlbCBvZiB5b3VyIFJlYWN0IGZ1bmN0aW9uLiAnICsgJ0ZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvcnVsZXMtb2YtaG9va3MnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50O1xufVxuXG5mdW5jdGlvbiBhcmVIb29rSW5wdXRzRXF1YWwobmV4dERlcHMsIHByZXZEZXBzKSB7XG4gIGlmIChwcmV2RGVwcyA9PT0gbnVsbCkge1xuICAgIHtcbiAgICAgIGVycm9yKCclcyByZWNlaXZlZCBhIGZpbmFsIGFyZ3VtZW50IGR1cmluZyB0aGlzIHJlbmRlciwgYnV0IG5vdCBkdXJpbmcgJyArICd0aGUgcHJldmlvdXMgcmVuZGVyLiBFdmVuIHRob3VnaCB0aGUgZmluYWwgYXJndW1lbnQgaXMgb3B0aW9uYWwsICcgKyAnaXRzIHR5cGUgY2Fubm90IGNoYW5nZSBiZXR3ZWVuIHJlbmRlcnMuJywgY3VycmVudEhvb2tOYW1lSW5EZXYpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHtcbiAgICAvLyBEb24ndCBib3RoZXIgY29tcGFyaW5nIGxlbmd0aHMgaW4gcHJvZCBiZWNhdXNlIHRoZXNlIGFycmF5cyBzaG91bGQgYmVcbiAgICAvLyBwYXNzZWQgaW5saW5lLlxuICAgIGlmIChuZXh0RGVwcy5sZW5ndGggIT09IHByZXZEZXBzLmxlbmd0aCkge1xuICAgICAgZXJyb3IoJ1RoZSBmaW5hbCBhcmd1bWVudCBwYXNzZWQgdG8gJXMgY2hhbmdlZCBzaXplIGJldHdlZW4gcmVuZGVycy4gVGhlICcgKyAnb3JkZXIgYW5kIHNpemUgb2YgdGhpcyBhcnJheSBtdXN0IHJlbWFpbiBjb25zdGFudC5cXG5cXG4nICsgJ1ByZXZpb3VzOiAlc1xcbicgKyAnSW5jb21pbmc6ICVzJywgY3VycmVudEhvb2tOYW1lSW5EZXYsIFwiW1wiICsgbmV4dERlcHMuam9pbignLCAnKSArIFwiXVwiLCBcIltcIiArIHByZXZEZXBzLmpvaW4oJywgJykgKyBcIl1cIik7XG4gICAgfVxuICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV0gZm91bmQgd2hlbiB1cGdyYWRpbmcgRmxvd1xuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmV2RGVwcy5sZW5ndGggJiYgaSA8IG5leHREZXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBmb3VuZCB3aGVuIHVwZ3JhZGluZyBGbG93XG4gICAgaWYgKG9iamVjdElzKG5leHREZXBzW2ldLCBwcmV2RGVwc1tpXSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVIb29rKCkge1xuICBpZiAobnVtYmVyT2ZSZVJlbmRlcnMgPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZW5kZXJlZCBtb3JlIGhvb2tzIHRoYW4gZHVyaW5nIHRoZSBwcmV2aW91cyByZW5kZXInKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWVtb2l6ZWRTdGF0ZTogbnVsbCxcbiAgICBxdWV1ZTogbnVsbCxcbiAgICBuZXh0OiBudWxsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVdvcmtJblByb2dyZXNzSG9vaygpIHtcbiAgaWYgKHdvcmtJblByb2dyZXNzSG9vayA9PT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IGhvb2sgaW4gdGhlIGxpc3RcbiAgICBpZiAoZmlyc3RXb3JrSW5Qcm9ncmVzc0hvb2sgPT09IG51bGwpIHtcbiAgICAgIGlzUmVSZW5kZXIgPSBmYWxzZTtcbiAgICAgIGZpcnN0V29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rID0gY3JlYXRlSG9vaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGVyZSdzIGFscmVhZHkgYSB3b3JrLWluLXByb2dyZXNzLiBSZXVzZSBpdC5cbiAgICAgIGlzUmVSZW5kZXIgPSB0cnVlO1xuICAgICAgd29ya0luUHJvZ3Jlc3NIb29rID0gZmlyc3RXb3JrSW5Qcm9ncmVzc0hvb2s7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzc0hvb2submV4dCA9PT0gbnVsbCkge1xuICAgICAgaXNSZVJlbmRlciA9IGZhbHNlOyAvLyBBcHBlbmQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdFxuXG4gICAgICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSB3b3JrSW5Qcm9ncmVzc0hvb2submV4dCA9IGNyZWF0ZUhvb2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlcmUncyBhbHJlYWR5IGEgd29yay1pbi1wcm9ncmVzcy4gUmV1c2UgaXQuXG4gICAgICBpc1JlUmVuZGVyID0gdHJ1ZTtcbiAgICAgIHdvcmtJblByb2dyZXNzSG9vayA9IHdvcmtJblByb2dyZXNzSG9vay5uZXh0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc0hvb2s7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVUb1VzZUhvb2tzKHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIGNvbXBvbmVudElkZW50aXR5LCBwcmV2VGhlbmFibGVTdGF0ZSkge1xuICBjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPSBjb21wb25lbnRJZGVudGl0eTtcbiAgY3VycmVudGx5UmVuZGVyaW5nVGFzayA9IHRhc2s7XG4gIGN1cnJlbnRseVJlbmRlcmluZ1JlcXVlc3QgPSByZXF1ZXN0O1xuICBjdXJyZW50bHlSZW5kZXJpbmdLZXlQYXRoID0ga2V5UGF0aDtcblxuICB7XG4gICAgaXNJbkhvb2tVc2VyQ29kZUluRGV2ID0gZmFsc2U7XG4gIH0gLy8gVGhlIGZvbGxvd2luZyBzaG91bGQgaGF2ZSBhbHJlYWR5IGJlZW4gcmVzZXRcbiAgLy8gZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlO1xuICAvLyBmaXJzdFdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7XG4gIC8vIG51bWJlck9mUmVSZW5kZXJzID0gMDtcbiAgLy8gcmVuZGVyUGhhc2VVcGRhdGVzID0gbnVsbDtcbiAgLy8gd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcblxuXG4gIGxvY2FsSWRDb3VudGVyID0gMDtcbiAgZm9ybVN0YXRlQ291bnRlciA9IDA7XG4gIGZvcm1TdGF0ZU1hdGNoaW5nSW5kZXggPSAtMTtcbiAgdGhlbmFibGVJbmRleENvdW50ZXIgPSAwO1xuICB0aGVuYWJsZVN0YXRlID0gcHJldlRoZW5hYmxlU3RhdGU7XG59XG5mdW5jdGlvbiBmaW5pc2hIb29rcyhDb21wb25lbnQsIHByb3BzLCBjaGlsZHJlbiwgcmVmT3JDb250ZXh0KSB7XG4gIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgZXZlcnkgZnVuY3Rpb24gY29tcG9uZW50IHRvIHByZXZlbnQgaG9va3MgZnJvbVxuICAvLyBiZWluZyB1c2VkIGluIGNsYXNzZXMuXG4gIHdoaWxlIChkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlKSB7XG4gICAgLy8gVXBkYXRlcyB3ZXJlIHNjaGVkdWxlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS4gVGhleSBhcmUgc3RvcmVkIGluXG4gICAgLy8gdGhlIGByZW5kZXJQaGFzZVVwZGF0ZXNgIG1hcC4gQ2FsbCB0aGUgY29tcG9uZW50IGFnYWluLCByZXVzaW5nIHRoZVxuICAgIC8vIHdvcmstaW4tcHJvZ3Jlc3MgaG9va3MgYW5kIGFwcGx5aW5nIHRoZSBhZGRpdGlvbmFsIHVwZGF0ZXMgb24gdG9wLiBLZWVwXG4gICAgLy8gcmVzdGFydGluZyB1bnRpbCBubyBtb3JlIHVwZGF0ZXMgYXJlIHNjaGVkdWxlZC5cbiAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gZmFsc2U7XG4gICAgbG9jYWxJZENvdW50ZXIgPSAwO1xuICAgIGZvcm1TdGF0ZUNvdW50ZXIgPSAwO1xuICAgIGZvcm1TdGF0ZU1hdGNoaW5nSW5kZXggPSAtMTtcbiAgICB0aGVuYWJsZUluZGV4Q291bnRlciA9IDA7XG4gICAgbnVtYmVyT2ZSZVJlbmRlcnMgKz0gMTsgLy8gU3RhcnQgb3ZlciBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3RcblxuICAgIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7XG4gICAgY2hpbGRyZW4gPSBDb21wb25lbnQocHJvcHMsIHJlZk9yQ29udGV4dCk7XG4gIH1cblxuICByZXNldEhvb2tzU3RhdGUoKTtcbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuZnVuY3Rpb24gZ2V0VGhlbmFibGVTdGF0ZUFmdGVyU3VzcGVuZGluZygpIHtcbiAgdmFyIHN0YXRlID0gdGhlbmFibGVTdGF0ZTtcbiAgdGhlbmFibGVTdGF0ZSA9IG51bGw7XG4gIHJldHVybiBzdGF0ZTtcbn1cbmZ1bmN0aW9uIGNoZWNrRGlkUmVuZGVySWRIb29rKCkge1xuICAvLyBUaGlzIHNob3VsZCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgZXZlcnkgZmluaXNoSG9va3MgY2FsbC5cbiAgLy8gQ29uY2VwdHVhbGx5LCBpdCdzIHBhcnQgb2YgdGhlIHJldHVybiB2YWx1ZSBvZiBmaW5pc2hIb29rczsgaXQncyBvbmx5IGFcbiAgLy8gc2VwYXJhdGUgZnVuY3Rpb24gdG8gYXZvaWQgdXNpbmcgYW4gYXJyYXkgdHVwbGUuXG4gIHZhciBkaWRSZW5kZXJJZEhvb2sgPSBsb2NhbElkQ291bnRlciAhPT0gMDtcbiAgcmV0dXJuIGRpZFJlbmRlcklkSG9vaztcbn1cbmZ1bmN0aW9uIGdldEZvcm1TdGF0ZUNvdW50KCkge1xuICAvLyBUaGlzIHNob3VsZCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgZXZlcnkgZmluaXNoSG9va3MgY2FsbC5cbiAgLy8gQ29uY2VwdHVhbGx5LCBpdCdzIHBhcnQgb2YgdGhlIHJldHVybiB2YWx1ZSBvZiBmaW5pc2hIb29rczsgaXQncyBvbmx5IGFcbiAgLy8gc2VwYXJhdGUgZnVuY3Rpb24gdG8gYXZvaWQgdXNpbmcgYW4gYXJyYXkgdHVwbGUuXG4gIHJldHVybiBmb3JtU3RhdGVDb3VudGVyO1xufVxuZnVuY3Rpb24gZ2V0Rm9ybVN0YXRlTWF0Y2hpbmdJbmRleCgpIHtcbiAgLy8gVGhpcyBzaG91bGQgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGV2ZXJ5IGZpbmlzaEhvb2tzIGNhbGwuXG4gIC8vIENvbmNlcHR1YWxseSwgaXQncyBwYXJ0IG9mIHRoZSByZXR1cm4gdmFsdWUgb2YgZmluaXNoSG9va3M7IGl0J3Mgb25seSBhXG4gIC8vIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGF2b2lkIHVzaW5nIGFuIGFycmF5IHR1cGxlLlxuICByZXR1cm4gZm9ybVN0YXRlTWF0Y2hpbmdJbmRleDtcbn0gLy8gUmVzZXQgdGhlIGludGVybmFsIGhvb2tzIHN0YXRlIGlmIGFuIGVycm9yIG9jY3VycyB3aGlsZSByZW5kZXJpbmcgYSBjb21wb25lbnRcblxuZnVuY3Rpb24gcmVzZXRIb29rc1N0YXRlKCkge1xuICB7XG4gICAgaXNJbkhvb2tVc2VyQ29kZUluRGV2ID0gZmFsc2U7XG4gIH1cblxuICBjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPSBudWxsO1xuICBjdXJyZW50bHlSZW5kZXJpbmdUYXNrID0gbnVsbDtcbiAgY3VycmVudGx5UmVuZGVyaW5nUmVxdWVzdCA9IG51bGw7XG4gIGN1cnJlbnRseVJlbmRlcmluZ0tleVBhdGggPSBudWxsO1xuICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gZmFsc2U7XG4gIGZpcnN0V29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcbiAgbnVtYmVyT2ZSZVJlbmRlcnMgPSAwO1xuICByZW5kZXJQaGFzZVVwZGF0ZXMgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsO1xufVxuXG5mdW5jdGlvbiByZWFkQ29udGV4dChjb250ZXh0KSB7XG4gIHtcbiAgICBpZiAoaXNJbkhvb2tVc2VyQ29kZUluRGV2KSB7XG4gICAgICBlcnJvcignQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gJyArICdJbiBjbGFzc2VzLCB5b3UgY2FuIHJlYWQgaXQgaW4gdGhlIHJlbmRlciBtZXRob2Qgb3IgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiAnICsgJ0luIGZ1bmN0aW9uIGNvbXBvbmVudHMsIHlvdSBjYW4gcmVhZCBpdCBkaXJlY3RseSBpbiB0aGUgZnVuY3Rpb24gYm9keSwgYnV0IG5vdCAnICsgJ2luc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlYWRDb250ZXh0JDEoY29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIHVzZUNvbnRleHQoY29udGV4dCkge1xuICB7XG4gICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gIH1cblxuICByZXNvbHZlQ3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KCk7XG4gIHJldHVybiByZWFkQ29udGV4dCQxKGNvbnRleHQpO1xufVxuXG5mdW5jdGlvbiBiYXNpY1N0YXRlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV06IEZsb3cgZG9lc24ndCBsaWtlIG1peGVkIHR5cGVzXG4gIHJldHVybiB0eXBlb2YgYWN0aW9uID09PSAnZnVuY3Rpb24nID8gYWN0aW9uKHN0YXRlKSA6IGFjdGlvbjtcbn1cblxuZnVuY3Rpb24gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHtcbiAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gIH1cblxuICByZXR1cm4gdXNlUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlciwgLy8gdXNlUmVkdWNlciBoYXMgYSBzcGVjaWFsIGNhc2UgdG8gc3VwcG9ydCBsYXp5IHVzZVN0YXRlIGluaXRpYWxpemVyc1xuICBpbml0aWFsU3RhdGUpO1xufVxuZnVuY3Rpb24gdXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gIHtcbiAgICBpZiAocmVkdWNlciAhPT0gYmFzaWNTdGF0ZVJlZHVjZXIpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgIH1cbiAgfVxuXG4gIGN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCA9IHJlc29sdmVDdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQoKTtcbiAgd29ya0luUHJvZ3Jlc3NIb29rID0gY3JlYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG5cbiAgaWYgKGlzUmVSZW5kZXIpIHtcbiAgICAvLyBUaGlzIGlzIGEgcmUtcmVuZGVyLiBBcHBseSB0aGUgbmV3IHJlbmRlciBwaGFzZSB1cGRhdGVzIHRvIHRoZSBwcmV2aW91c1xuICAgIC8vIGN1cnJlbnQgaG9vay5cbiAgICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzc0hvb2sucXVldWU7XG4gICAgdmFyIGRpc3BhdGNoID0gcXVldWUuZGlzcGF0Y2g7XG5cbiAgICBpZiAocmVuZGVyUGhhc2VVcGRhdGVzICE9PSBudWxsKSB7XG4gICAgICAvLyBSZW5kZXIgcGhhc2UgdXBkYXRlcyBhcmUgc3RvcmVkIGluIGEgbWFwIG9mIHF1ZXVlIC0+IGxpbmtlZCBsaXN0XG4gICAgICB2YXIgZmlyc3RSZW5kZXJQaGFzZVVwZGF0ZSA9IHJlbmRlclBoYXNlVXBkYXRlcy5nZXQocXVldWUpO1xuXG4gICAgICBpZiAoZmlyc3RSZW5kZXJQaGFzZVVwZGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV0gZm91bmQgd2hlbiB1cGdyYWRpbmcgRmxvd1xuICAgICAgICByZW5kZXJQaGFzZVVwZGF0ZXMuZGVsZXRlKHF1ZXVlKTsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBmb3VuZCB3aGVuIHVwZ3JhZGluZyBGbG93XG5cbiAgICAgICAgdmFyIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3NIb29rLm1lbW9pemVkU3RhdGU7XG4gICAgICAgIHZhciB1cGRhdGUgPSBmaXJzdFJlbmRlclBoYXNlVXBkYXRlO1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAvLyBQcm9jZXNzIHRoaXMgcmVuZGVyIHBoYXNlIHVwZGF0ZS4gV2UgZG9uJ3QgaGF2ZSB0byBjaGVjayB0aGVcbiAgICAgICAgICAvLyBwcmlvcml0eSBiZWNhdXNlIGl0IHdpbGwgYWx3YXlzIGJlIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50XG4gICAgICAgICAgLy8gcmVuZGVyJ3MuXG4gICAgICAgICAgdmFyIGFjdGlvbiA9IHVwZGF0ZS5hY3Rpb247XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpc0luSG9va1VzZXJDb2RlSW5EZXYgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5ld1N0YXRlID0gcmVkdWNlcihuZXdTdGF0ZSwgYWN0aW9uKTtcblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlzSW5Ib29rVXNlckNvZGVJbkRldiA9IGZhbHNlO1xuICAgICAgICAgIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdHlwZV0gd2UgYmFpbCBvdXQgd2hlbiB3ZSBnZXQgYSBudWxsXG5cblxuICAgICAgICAgIHVwZGF0ZSA9IHVwZGF0ZS5uZXh0O1xuICAgICAgICB9IHdoaWxlICh1cGRhdGUgIT09IG51bGwpOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcblxuXG4gICAgICAgIHdvcmtJblByb2dyZXNzSG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIHJldHVybiBbbmV3U3RhdGUsIGRpc3BhdGNoXTtcbiAgICAgIH1cbiAgICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV0gZm91bmQgd2hlbiB1cGdyYWRpbmcgRmxvd1xuXG5cbiAgICByZXR1cm4gW3dvcmtJblByb2dyZXNzSG9vay5tZW1vaXplZFN0YXRlLCBkaXNwYXRjaF07XG4gIH0gZWxzZSB7XG4gICAge1xuICAgICAgaXNJbkhvb2tVc2VyQ29kZUluRGV2ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgaW5pdGlhbFN0YXRlO1xuXG4gICAgaWYgKHJlZHVjZXIgPT09IGJhc2ljU3RhdGVSZWR1Y2VyKSB7XG4gICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIGB1c2VTdGF0ZWAuXG4gICAgICBpbml0aWFsU3RhdGUgPSB0eXBlb2YgaW5pdGlhbEFyZyA9PT0gJ2Z1bmN0aW9uJyA/IGluaXRpYWxBcmcoKSA6IGluaXRpYWxBcmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluaXRpYWxTdGF0ZSA9IGluaXQgIT09IHVuZGVmaW5lZCA/IGluaXQoaW5pdGlhbEFyZykgOiBpbml0aWFsQXJnO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlzSW5Ib29rVXNlckNvZGVJbkRldiA9IGZhbHNlO1xuICAgIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBmb3VuZCB3aGVuIHVwZ3JhZGluZyBGbG93XG5cblxuICAgIHdvcmtJblByb2dyZXNzSG9vay5tZW1vaXplZFN0YXRlID0gaW5pdGlhbFN0YXRlOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcblxuICAgIHZhciBfcXVldWUgPSB3b3JrSW5Qcm9ncmVzc0hvb2sucXVldWUgPSB7XG4gICAgICBsYXN0OiBudWxsLFxuICAgICAgZGlzcGF0Y2g6IG51bGxcbiAgICB9O1xuXG4gICAgdmFyIF9kaXNwYXRjaCA9IF9xdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoQWN0aW9uLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50LCBfcXVldWUpOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcblxuXG4gICAgcmV0dXJuIFt3b3JrSW5Qcm9ncmVzc0hvb2subWVtb2l6ZWRTdGF0ZSwgX2Rpc3BhdGNoXTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VNZW1vKG5leHRDcmVhdGUsIGRlcHMpIHtcbiAgY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50ID0gcmVzb2x2ZUN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCgpO1xuICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzSG9vayAhPT0gbnVsbCkge1xuICAgIHZhciBwcmV2U3RhdGUgPSB3b3JrSW5Qcm9ncmVzc0hvb2subWVtb2l6ZWRTdGF0ZTtcblxuICAgIGlmIChwcmV2U3RhdGUgIT09IG51bGwpIHtcbiAgICAgIGlmIChuZXh0RGVwcyAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgcHJldkRlcHMgPSBwcmV2U3RhdGVbMV07XG5cbiAgICAgICAgaWYgKGFyZUhvb2tJbnB1dHNFcXVhbChuZXh0RGVwcywgcHJldkRlcHMpKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHtcbiAgICBpc0luSG9va1VzZXJDb2RlSW5EZXYgPSB0cnVlO1xuICB9XG5cbiAgdmFyIG5leHRWYWx1ZSA9IG5leHRDcmVhdGUoKTtcblxuICB7XG4gICAgaXNJbkhvb2tVc2VyQ29kZUluRGV2ID0gZmFsc2U7XG4gIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBmb3VuZCB3aGVuIHVwZ3JhZGluZyBGbG93XG5cblxuICB3b3JrSW5Qcm9ncmVzc0hvb2subWVtb2l6ZWRTdGF0ZSA9IFtuZXh0VmFsdWUsIG5leHREZXBzXTtcbiAgcmV0dXJuIG5leHRWYWx1ZTtcbn1cblxuZnVuY3Rpb24gdXNlUmVmKGluaXRpYWxWYWx1ZSkge1xuICBjdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQgPSByZXNvbHZlQ3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KCk7XG4gIHdvcmtJblByb2dyZXNzSG9vayA9IGNyZWF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgcHJldmlvdXNSZWYgPSB3b3JrSW5Qcm9ncmVzc0hvb2subWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAocHJldmlvdXNSZWYgPT09IG51bGwpIHtcbiAgICB2YXIgcmVmID0ge1xuICAgICAgY3VycmVudDogaW5pdGlhbFZhbHVlXG4gICAgfTtcblxuICAgIHtcbiAgICAgIE9iamVjdC5zZWFsKHJlZik7XG4gICAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcblxuXG4gICAgd29ya0luUHJvZ3Jlc3NIb29rLm1lbW9pemVkU3RhdGUgPSByZWY7XG4gICAgcmV0dXJuIHJlZjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcHJldmlvdXNSZWY7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hBY3Rpb24oY29tcG9uZW50SWRlbnRpdHksIHF1ZXVlLCBhY3Rpb24pIHtcbiAgaWYgKG51bWJlck9mUmVSZW5kZXJzID49IFJFX1JFTkRFUl9MSU1JVCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVG9vIG1hbnkgcmUtcmVuZGVycy4gUmVhY3QgbGltaXRzIHRoZSBudW1iZXIgb2YgcmVuZGVycyB0byBwcmV2ZW50ICcgKyAnYW4gaW5maW5pdGUgbG9vcC4nKTtcbiAgfVxuXG4gIGlmIChjb21wb25lbnRJZGVudGl0eSA9PT0gY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KSB7XG4gICAgLy8gVGhpcyBpcyBhIHJlbmRlciBwaGFzZSB1cGRhdGUuIFN0YXNoIGl0IGluIGEgbGF6aWx5LWNyZWF0ZWQgbWFwIG9mXG4gICAgLy8gcXVldWUgLT4gbGlua2VkIGxpc3Qgb2YgdXBkYXRlcy4gQWZ0ZXIgdGhpcyByZW5kZXIgcGFzcywgd2UnbGwgcmVzdGFydFxuICAgIC8vIGFuZCBhcHBseSB0aGUgc3Rhc2hlZCB1cGRhdGVzIG9uIHRvcCBvZiB0aGUgd29yay1pbi1wcm9ncmVzcyBob29rLlxuICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSB0cnVlO1xuICAgIHZhciB1cGRhdGUgPSB7XG4gICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgIG5leHQ6IG51bGxcbiAgICB9O1xuXG4gICAgaWYgKHJlbmRlclBoYXNlVXBkYXRlcyA9PT0gbnVsbCkge1xuICAgICAgcmVuZGVyUGhhc2VVcGRhdGVzID0gbmV3IE1hcCgpO1xuICAgIH1cblxuICAgIHZhciBmaXJzdFJlbmRlclBoYXNlVXBkYXRlID0gcmVuZGVyUGhhc2VVcGRhdGVzLmdldChxdWV1ZSk7XG5cbiAgICBpZiAoZmlyc3RSZW5kZXJQaGFzZVVwZGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcbiAgICAgIHJlbmRlclBoYXNlVXBkYXRlcy5zZXQocXVldWUsIHVwZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFwcGVuZCB0aGUgdXBkYXRlIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuXG4gICAgICB2YXIgbGFzdFJlbmRlclBoYXNlVXBkYXRlID0gZmlyc3RSZW5kZXJQaGFzZVVwZGF0ZTtcblxuICAgICAgd2hpbGUgKGxhc3RSZW5kZXJQaGFzZVVwZGF0ZS5uZXh0ICE9PSBudWxsKSB7XG4gICAgICAgIGxhc3RSZW5kZXJQaGFzZVVwZGF0ZSA9IGxhc3RSZW5kZXJQaGFzZVVwZGF0ZS5uZXh0O1xuICAgICAgfVxuXG4gICAgICBsYXN0UmVuZGVyUGhhc2VVcGRhdGUubmV4dCA9IHVwZGF0ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHtcbiAgcmV0dXJuIHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBjYWxsYmFjaztcbiAgfSwgZGVwcyk7XG59XG5cbmZ1bmN0aW9uIHVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gIGlmIChnZXRTZXJ2ZXJTbmFwc2hvdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGdldFNlcnZlclNuYXBzaG90LCB3aGljaCBpcyByZXF1aXJlZCBmb3IgJyArICdzZXJ2ZXItcmVuZGVyZWQgY29udGVudC4gV2lsbCByZXZlcnQgdG8gY2xpZW50IHJlbmRlcmluZy4nKTtcbiAgfVxuXG4gIHJldHVybiBnZXRTZXJ2ZXJTbmFwc2hvdCgpO1xufVxuXG5mdW5jdGlvbiB1c2VEZWZlcnJlZFZhbHVlKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgcmVzb2x2ZUN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCgpO1xuXG4gIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zdXBwb3J0ZWRTdGFydFRyYW5zaXRpb24oKSB7XG4gIHRocm93IG5ldyBFcnJvcignc3RhcnRUcmFuc2l0aW9uIGNhbm5vdCBiZSBjYWxsZWQgZHVyaW5nIHNlcnZlciByZW5kZXJpbmcuJyk7XG59XG5cbmZ1bmN0aW9uIHVzZVRyYW5zaXRpb24oKSB7XG4gIHJlc29sdmVDdXJyZW50bHlSZW5kZXJpbmdDb21wb25lbnQoKTtcbiAgcmV0dXJuIFtmYWxzZSwgdW5zdXBwb3J0ZWRTdGFydFRyYW5zaXRpb25dO1xufVxuXG5mdW5jdGlvbiB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cygpIHtcbiAgcmVzb2x2ZUN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCgpO1xuICByZXR1cm4gTm90UGVuZGluZ1RyYW5zaXRpb247XG59XG5cbmZ1bmN0aW9uIHVuc3VwcG9ydGVkU2V0T3B0aW1pc3RpY1N0YXRlKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgb3B0aW1pc3RpYyBzdGF0ZSB3aGlsZSByZW5kZXJpbmcuJyk7XG59XG5cbmZ1bmN0aW9uIHVzZU9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgcmVzb2x2ZUN1cnJlbnRseVJlbmRlcmluZ0NvbXBvbmVudCgpO1xuICByZXR1cm4gW3Bhc3N0aHJvdWdoLCB1bnN1cHBvcnRlZFNldE9wdGltaXN0aWNTdGF0ZV07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBvc3RiYWNrRm9ybVN0YXRlS2V5KHBlcm1hbGluaywgY29tcG9uZW50S2V5UGF0aCwgaG9va0luZGV4KSB7XG4gIGlmIChwZXJtYWxpbmsgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIERvbid0IGJvdGhlciB0byBoYXNoIGEgcGVybWFsaW5rLWJhc2VkIGtleSBzaW5jZSBpdCdzIGFscmVhZHkgc2hvcnQuXG4gICAgcmV0dXJuICdwJyArIHBlcm1hbGluaztcbiAgfSBlbHNlIHtcbiAgICAvLyBBcHBlbmQgYSBub2RlIHRvIHRoZSBrZXkgcGF0aCB0aGF0IHJlcHJlc2VudHMgdGhlIGZvcm0gc3RhdGUgaG9vay5cbiAgICB2YXIga2V5UGF0aCA9IFtjb21wb25lbnRLZXlQYXRoLCBudWxsLCBob29rSW5kZXhdOyAvLyBLZXkgcGF0aHMgYXJlIGhhc2hlZCB0byByZWR1Y2UgdGhlIHNpemUuIEl0IGRvZXMgbm90IG5lZWQgdG8gYmUgc2VjdXJlLFxuICAgIC8vIGFuZCBpdCdzIG1vcmUgaW1wb3J0YW50IHRoYXQgaXQncyBmYXN0IHRoYW4gdGhhdCBpdCdzIGNvbXBsZXRlbHlcbiAgICAvLyBjb2xsaXNpb24tZnJlZS5cblxuICAgIHZhciBrZXlQYXRoSGFzaCA9IGNyZWF0ZUZhc3RIYXNoSlMoSlNPTi5zdHJpbmdpZnkoa2V5UGF0aCkpO1xuICAgIHJldHVybiAnaycgKyBrZXlQYXRoSGFzaDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VGb3JtU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUsIHBlcm1hbGluaykge1xuICByZXNvbHZlQ3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50KCk7IC8vIENvdW50IHRoZSBudW1iZXIgb2YgdXNlRm9ybVN0YXRlIGhvb2tzIHBlciBjb21wb25lbnQuIFdlIGFsc28gdXNlIHRoaXMgdG9cbiAgLy8gdHJhY2sgdGhlIHBvc2l0aW9uIG9mIHRoaXMgdXNlRm9ybVN0YXRlIGhvb2sgcmVsYXRpdmUgdG8gdGhlIG90aGVyIG9uZXMgaW5cbiAgLy8gdGhpcyBjb21wb25lbnQsIHNvIHdlIGNhbiBnZW5lcmF0ZSBhIHVuaXF1ZSBrZXkgZm9yIGVhY2ggb25lLlxuXG4gIHZhciBmb3JtU3RhdGVIb29rSW5kZXggPSBmb3JtU3RhdGVDb3VudGVyKys7XG4gIHZhciByZXF1ZXN0ID0gY3VycmVudGx5UmVuZGVyaW5nUmVxdWVzdDsgLy8gJEZsb3dJZ25vcmVbcHJvcC1taXNzaW5nXVxuXG4gIHZhciBmb3JtQWN0aW9uID0gYWN0aW9uLiQkRk9STV9BQ1RJT047XG5cbiAgaWYgKHR5cGVvZiBmb3JtQWN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gVGhpcyBpcyBhIHNlcnZlciBhY3Rpb24uIFRoZXNlIGhhdmUgYWRkaXRpb25hbCBmZWF0dXJlcyB0byBlbmFibGVcbiAgICAvLyBNUEEtc3R5bGUgZm9ybSBzdWJtaXNzaW9ucyB3aXRoIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50LlxuICAgIC8vIFRPRE86IElmIHRoZSBzYW1lIHBlcm1hbGluayBpcyBwYXNzZWQgdG8gbXVsdGlwbGUgdXNlRm9ybVN0YXRlcywgYW5kXG4gICAgLy8gdGhleSBhbGwgaGF2ZSB0aGUgc2FtZSBhY3Rpb24gc2lnbmF0dXJlLCBGaXp6IHdpbGwgcGFzcyB0aGUgcG9zdGJhY2tcbiAgICAvLyBzdGF0ZSB0byBhbGwgb2YgdGhlbS4gV2Ugc2hvdWxkIHByb2JhYmx5IG9ubHkgcGFzcyBpdCB0byB0aGUgZmlyc3Qgb25lLFxuICAgIC8vIGFuZC9vciB3YXJuLlxuICAgIC8vIFRoZSBrZXkgaXMgbGF6aWx5IGdlbmVyYXRlZCBhbmQgZGVkdXBlZCBzbyB0aGUgdGhhdCB0aGUga2V5cGF0aCBkb2Vzbid0XG4gICAgLy8gZ2V0IEpTT04uc3RyaW5naWZ5LWVkIHVubmVjZXNzYXJpbHksIGFuZCBhdCBtb3N0IG9uY2UuXG4gICAgdmFyIG5leHRQb3N0YmFja1N0YXRlS2V5ID0gbnVsbDsgLy8gRGV0ZXJtaW5lIHRoZSBjdXJyZW50IGZvcm0gc3RhdGUuIElmIHdlIHJlY2VpdmVkIHN0YXRlIGR1cmluZyBhbiBNUEEgZm9ybVxuICAgIC8vIHN1Ym1pc3Npb24sIHRoZW4gd2Ugd2lsbCByZXVzZSB0aGF0LCBpZiB0aGUgYWN0aW9uIGlkZW50aXR5IG1hdGNoZXMuXG4gICAgLy8gT3RoZXJ3aXNlIHdlJ2xsIHVzZSB0aGUgaW5pdGlhbCBzdGF0ZSBhcmd1bWVudC4gV2Ugd2lsbCBlbWl0IGEgY29tbWVudFxuICAgIC8vIG1hcmtlciBpbnRvIHRoZSBzdHJlYW0gdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgc3RhdGUgd2FzIHJldXNlZC5cblxuICAgIHZhciBzdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgICB2YXIgY29tcG9uZW50S2V5UGF0aCA9IGN1cnJlbnRseVJlbmRlcmluZ0tleVBhdGg7XG4gICAgdmFyIHBvc3RiYWNrRm9ybVN0YXRlID0gZ2V0Rm9ybVN0YXRlKHJlcXVlc3QpOyAvLyAkRmxvd0lnbm9yZVtwcm9wLW1pc3NpbmddXG5cbiAgICB2YXIgaXNTaWduYXR1cmVFcXVhbCA9IGFjdGlvbi4kJElTX1NJR05BVFVSRV9FUVVBTDtcblxuICAgIGlmIChwb3N0YmFja0Zvcm1TdGF0ZSAhPT0gbnVsbCAmJiB0eXBlb2YgaXNTaWduYXR1cmVFcXVhbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdmFyIHBvc3RiYWNrS2V5ID0gcG9zdGJhY2tGb3JtU3RhdGVbMV07XG4gICAgICB2YXIgcG9zdGJhY2tSZWZlcmVuY2VJZCA9IHBvc3RiYWNrRm9ybVN0YXRlWzJdO1xuICAgICAgdmFyIHBvc3RiYWNrQm91bmRBcml0eSA9IHBvc3RiYWNrRm9ybVN0YXRlWzNdO1xuXG4gICAgICBpZiAoaXNTaWduYXR1cmVFcXVhbC5jYWxsKGFjdGlvbiwgcG9zdGJhY2tSZWZlcmVuY2VJZCwgcG9zdGJhY2tCb3VuZEFyaXR5KSkge1xuICAgICAgICBuZXh0UG9zdGJhY2tTdGF0ZUtleSA9IGNyZWF0ZVBvc3RiYWNrRm9ybVN0YXRlS2V5KHBlcm1hbGluaywgY29tcG9uZW50S2V5UGF0aCwgZm9ybVN0YXRlSG9va0luZGV4KTtcblxuICAgICAgICBpZiAocG9zdGJhY2tLZXkgPT09IG5leHRQb3N0YmFja1N0YXRlS2V5KSB7XG4gICAgICAgICAgLy8gVGhpcyB3YXMgYSBtYXRjaFxuICAgICAgICAgIGZvcm1TdGF0ZU1hdGNoaW5nSW5kZXggPSBmb3JtU3RhdGVIb29rSW5kZXg7IC8vIFJldXNlIHRoZSBzdGF0ZSB0aGF0IHdhcyBzdWJtaXR0ZWQgYnkgdGhlIGZvcm0uXG5cbiAgICAgICAgICBzdGF0ZSA9IHBvc3RiYWNrRm9ybVN0YXRlWzBdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvLyBCaW5kIHRoZSBzdGF0ZSB0byB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGFjdGlvbi5cblxuXG4gICAgdmFyIGJvdW5kQWN0aW9uID0gYWN0aW9uLmJpbmQobnVsbCwgc3RhdGUpOyAvLyBXcmFwIHRoZSBhY3Rpb24gc28gdGhlIHJldHVybiB2YWx1ZSBpcyB2b2lkLlxuXG4gICAgdmFyIGRpc3BhdGNoID0gZnVuY3Rpb24gKHBheWxvYWQpIHtcbiAgICAgIGJvdW5kQWN0aW9uKHBheWxvYWQpO1xuICAgIH07IC8vICRGbG93SWdub3JlW3Byb3AtbWlzc2luZ11cblxuXG4gICAgaWYgKHR5cGVvZiBib3VuZEFjdGlvbi4kJEZPUk1fQUNUSU9OID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyAkRmxvd0lnbm9yZVtwcm9wLW1pc3NpbmddXG4gICAgICBkaXNwYXRjaC4kJEZPUk1fQUNUSU9OID0gZnVuY3Rpb24gKHByZWZpeCkge1xuICAgICAgICB2YXIgbWV0YWRhdGEgPSBib3VuZEFjdGlvbi4kJEZPUk1fQUNUSU9OKHByZWZpeCk7IC8vIE92ZXJyaWRlIHRoZSBhY3Rpb24gVVJMXG5cbiAgICAgICAgaWYgKHBlcm1hbGluayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihwZXJtYWxpbmssICd0YXJnZXQnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwZXJtYWxpbmsgKz0gJyc7XG4gICAgICAgICAgbWV0YWRhdGEuYWN0aW9uID0gcGVybWFsaW5rO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGZvcm1EYXRhID0gbWV0YWRhdGEuZGF0YTtcblxuICAgICAgICBpZiAoZm9ybURhdGEpIHtcbiAgICAgICAgICBpZiAobmV4dFBvc3RiYWNrU3RhdGVLZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIG5leHRQb3N0YmFja1N0YXRlS2V5ID0gY3JlYXRlUG9zdGJhY2tGb3JtU3RhdGVLZXkocGVybWFsaW5rLCBjb21wb25lbnRLZXlQYXRoLCBmb3JtU3RhdGVIb29rSW5kZXgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnJEFDVElPTl9LRVknLCBuZXh0UG9zdGJhY2tTdGF0ZUtleSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWV0YWRhdGE7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBbc3RhdGUsIGRpc3BhdGNoXTtcbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIG5vdCBhIHNlcnZlciBhY3Rpb24sIHNvIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBtdWNoIHNpbXBsZXIuXG4gICAgLy8gQmluZCB0aGUgc3RhdGUgdG8gdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBhY3Rpb24uXG4gICAgdmFyIF9ib3VuZEFjdGlvbiA9IGFjdGlvbi5iaW5kKG51bGwsIGluaXRpYWxTdGF0ZSk7IC8vIFdyYXAgdGhlIGFjdGlvbiBzbyB0aGUgcmV0dXJuIHZhbHVlIGlzIHZvaWQuXG5cblxuICAgIHZhciBfZGlzcGF0Y2gyID0gZnVuY3Rpb24gKHBheWxvYWQpIHtcbiAgICAgIF9ib3VuZEFjdGlvbihwYXlsb2FkKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtpbml0aWFsU3RhdGUsIF9kaXNwYXRjaDJdO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVzZUlkKCkge1xuICB2YXIgdGFzayA9IGN1cnJlbnRseVJlbmRlcmluZ1Rhc2s7XG4gIHZhciB0cmVlSWQgPSBnZXRUcmVlSWQodGFzay50cmVlQ29udGV4dCk7XG4gIHZhciByZXN1bWFibGVTdGF0ZSA9IGN1cnJlbnRSZXN1bWFibGVTdGF0ZTtcblxuICBpZiAocmVzdW1hYmxlU3RhdGUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaG9vayBjYWxsLiBIb29rcyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIG9mIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24gY29tcG9uZW50LicpO1xuICB9XG5cbiAgdmFyIGxvY2FsSWQgPSBsb2NhbElkQ291bnRlcisrO1xuICByZXR1cm4gbWFrZUlkKHJlc3VtYWJsZVN0YXRlLCB0cmVlSWQsIGxvY2FsSWQpO1xufVxuXG5mdW5jdGlvbiB1c2UodXNhYmxlKSB7XG4gIGlmICh1c2FibGUgIT09IG51bGwgJiYgdHlwZW9mIHVzYWJsZSA9PT0gJ29iamVjdCcpIHtcbiAgICAvLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG4gICAgaWYgKHR5cGVvZiB1c2FibGUudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gVGhpcyBpcyBhIHRoZW5hYmxlLlxuICAgICAgdmFyIHRoZW5hYmxlID0gdXNhYmxlO1xuICAgICAgcmV0dXJuIHVud3JhcFRoZW5hYmxlKHRoZW5hYmxlKTtcbiAgICB9IGVsc2UgaWYgKHVzYWJsZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHVzYWJsZS4kJHR5cGVvZiA9PT0gUkVBQ1RfU0VSVkVSX0NPTlRFWFRfVFlQRSkge1xuICAgICAgdmFyIGNvbnRleHQgPSB1c2FibGU7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfVxuICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgdGhyb3cgbmV3IEVycm9yKCdBbiB1bnN1cHBvcnRlZCB0eXBlIHdhcyBwYXNzZWQgdG8gdXNlKCk6ICcgKyBTdHJpbmcodXNhYmxlKSk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcFRoZW5hYmxlKHRoZW5hYmxlKSB7XG4gIHZhciBpbmRleCA9IHRoZW5hYmxlSW5kZXhDb3VudGVyO1xuICB0aGVuYWJsZUluZGV4Q291bnRlciArPSAxO1xuXG4gIGlmICh0aGVuYWJsZVN0YXRlID09PSBudWxsKSB7XG4gICAgdGhlbmFibGVTdGF0ZSA9IGNyZWF0ZVRoZW5hYmxlU3RhdGUoKTtcbiAgfVxuXG4gIHJldHVybiB0cmFja1VzZWRUaGVuYWJsZSh0aGVuYWJsZVN0YXRlLCB0aGVuYWJsZSwgaW5kZXgpO1xufVxuXG5mdW5jdGlvbiB1bnN1cHBvcnRlZFJlZnJlc2goKSB7XG4gIHRocm93IG5ldyBFcnJvcignQ2FjaGUgY2Fubm90IGJlIHJlZnJlc2hlZCBkdXJpbmcgc2VydmVyIHJlbmRlcmluZy4nKTtcbn1cblxuZnVuY3Rpb24gdXNlQ2FjaGVSZWZyZXNoKCkge1xuICByZXR1cm4gdW5zdXBwb3J0ZWRSZWZyZXNoO1xufVxuXG5mdW5jdGlvbiBub29wJDEoKSB7fVxuXG52YXIgSG9va3NEaXNwYXRjaGVyID0ge1xuICByZWFkQ29udGV4dDogcmVhZENvbnRleHQsXG4gIHVzZTogdXNlLFxuICB1c2VDb250ZXh0OiB1c2VDb250ZXh0LFxuICB1c2VNZW1vOiB1c2VNZW1vLFxuICB1c2VSZWR1Y2VyOiB1c2VSZWR1Y2VyLFxuICB1c2VSZWY6IHVzZVJlZixcbiAgdXNlU3RhdGU6IHVzZVN0YXRlLFxuICB1c2VJbnNlcnRpb25FZmZlY3Q6IG5vb3AkMSxcbiAgdXNlTGF5b3V0RWZmZWN0OiBub29wJDEsXG4gIHVzZUNhbGxiYWNrOiB1c2VDYWxsYmFjayxcbiAgLy8gdXNlSW1wZXJhdGl2ZUhhbmRsZSBpcyBub3QgcnVuIGluIHRoZSBzZXJ2ZXIgZW52aXJvbm1lbnRcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogbm9vcCQxLFxuICAvLyBFZmZlY3RzIGFyZSBub3QgcnVuIGluIHRoZSBzZXJ2ZXIgZW52aXJvbm1lbnQuXG4gIHVzZUVmZmVjdDogbm9vcCQxLFxuICAvLyBEZWJ1Z2dpbmcgZWZmZWN0XG4gIHVzZURlYnVnVmFsdWU6IG5vb3AkMSxcbiAgdXNlRGVmZXJyZWRWYWx1ZTogdXNlRGVmZXJyZWRWYWx1ZSxcbiAgdXNlVHJhbnNpdGlvbjogdXNlVHJhbnNpdGlvbixcbiAgdXNlSWQ6IHVzZUlkLFxuICAvLyBTdWJzY3JpcHRpb25zIGFyZSBub3Qgc2V0dXAgaW4gYSBzZXJ2ZXIgZW52aXJvbm1lbnQuXG4gIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiB1c2VTeW5jRXh0ZXJuYWxTdG9yZVxufTtcblxue1xuICBIb29rc0Rpc3BhdGNoZXIudXNlQ2FjaGVSZWZyZXNoID0gdXNlQ2FjaGVSZWZyZXNoO1xufVxuXG57XG4gIEhvb2tzRGlzcGF0Y2hlci51c2VIb3N0VHJhbnNpdGlvblN0YXR1cyA9IHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzO1xufVxuXG57XG4gIEhvb2tzRGlzcGF0Y2hlci51c2VPcHRpbWlzdGljID0gdXNlT3B0aW1pc3RpYztcbiAgSG9va3NEaXNwYXRjaGVyLnVzZUZvcm1TdGF0ZSA9IHVzZUZvcm1TdGF0ZTtcbn1cblxudmFyIGN1cnJlbnRSZXN1bWFibGVTdGF0ZSA9IG51bGw7XG5mdW5jdGlvbiBzZXRDdXJyZW50UmVzdW1hYmxlU3RhdGUocmVzdW1hYmxlU3RhdGUpIHtcbiAgY3VycmVudFJlc3VtYWJsZVN0YXRlID0gcmVzdW1hYmxlU3RhdGU7XG59XG5cbmZ1bmN0aW9uIGdldENhY2hlU2lnbmFsKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZC4nKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2FjaGVGb3JUeXBlKHJlc291cmNlVHlwZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZC4nKTtcbn1cblxudmFyIERlZmF1bHRDYWNoZURpc3BhdGNoZXIgPSB7XG4gIGdldENhY2hlU2lnbmFsOiBnZXRDYWNoZVNpZ25hbCxcbiAgZ2V0Q2FjaGVGb3JUeXBlOiBnZXRDYWNoZUZvclR5cGVcbn07XG5cbmZ1bmN0aW9uIGdldFN0YWNrQnlDb21wb25lbnRTdGFja05vZGUoY29tcG9uZW50U3RhY2spIHtcbiAgdHJ5IHtcbiAgICB2YXIgaW5mbyA9ICcnO1xuICAgIHZhciBub2RlID0gY29tcG9uZW50U3RhY2s7XG5cbiAgICBkbyB7XG4gICAgICBzd2l0Y2ggKG5vZGUudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBpbmZvICs9IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5vZGUudHlwZSwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKG5vZGUudHlwZSwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVDbGFzc0NvbXBvbmVudEZyYW1lKG5vZGUudHlwZSwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIHdlIGJhaWwgb3V0IHdoZW4gd2UgZ2V0IGEgbnVsbFxuXG5cbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudDtcbiAgICB9IHdoaWxlIChub2RlKTtcblxuICAgIHJldHVybiBpbmZvO1xuICB9IGNhdGNoICh4KSB7XG4gICAgcmV0dXJuICdcXG5FcnJvciBnZW5lcmF0aW5nIHN0YWNrOiAnICsgeC5tZXNzYWdlICsgJ1xcbicgKyB4LnN0YWNrO1xuICB9XG59XG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjtcbnZhciBSZWFjdEN1cnJlbnRDYWNoZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudENhY2hlO1xudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lOyAvLyBMaW5rZWQgbGlzdCByZXByZXNlbnRpbmcgdGhlIGlkZW50aXR5IG9mIGEgY29tcG9uZW50IGdpdmVuIHRoZSBjb21wb25lbnQvdGFnIG5hbWUgYW5kIGtleS5cbi8vIFRoZSBuYW1lIG1pZ2h0IGJlIG1pbmlmaWVkIGJ1dCB3ZSBhc3N1bWUgdGhhdCBpdCdzIGdvaW5nIHRvIGJlIHRoZSBzYW1lIGdlbmVyYXRlZCBuYW1lLiBUeXBpY2FsbHlcbi8vIGJlY2F1c2UgaXQncyBqdXN0IHRoZSBzYW1lIGNvbXBpbGVkIG91dHB1dCBpbiBwcmFjdGljZS5cbi8vIHJlc3VtZSB3aXRoIHNlZ21lbnRJRCBhdCB0aGUgaW5kZXhcblxudmFyIENMSUVOVF9SRU5ERVJFRCA9IDQ7IC8vIGlmIGl0IGVycm9ycyBvciBpbmZpbml0ZWx5IHN1c3BlbmRzXG5cbnZhciBQRU5ESU5HID0gMDtcbnZhciBDT01QTEVURUQgPSAxO1xudmFyIEZMVVNIRUQgPSAyO1xudmFyIEFCT1JURUQgPSAzO1xudmFyIEVSUk9SRUQgPSA0O1xudmFyIFBPU1RQT05FRCA9IDU7XG52YXIgT1BFTiA9IDA7XG52YXIgQ0xPU0lORyA9IDE7XG52YXIgQ0xPU0VEID0gMjsgLy8gVGhpcyBpcyBhIGRlZmF1bHQgaGV1cmlzdGljIGZvciBob3cgdG8gc3BsaXQgdXAgdGhlIEhUTUwgY29udGVudCBpbnRvIHByb2dyZXNzaXZlXG4vLyBsb2FkaW5nLiBPdXIgZ29hbCBpcyB0byBiZSBhYmxlIHRvIGRpc3BsYXkgYWRkaXRpb25hbCBuZXcgY29udGVudCBhYm91dCBldmVyeSA1MDBtcy5cbi8vIEZhc3RlciB0aGFuIHRoYXQgaXMgdW5uZWNlc3NhcnkgYW5kIHNob3VsZCBiZSB0aHJvdHRsZWQgb24gdGhlIGNsaWVudC4gSXQgYWxzb1xuLy8gYWRkcyB1bm5lY2Vzc2FyeSBvdmVyaGVhZCB0byBkbyBtb3JlIHNwbGl0cy4gV2UgZG9uJ3Qga25vdyBpZiBpdCdzIGEgaGlnaGVyIG9yIGxvd2VyXG4vLyBlbmQgZGV2aWNlIGJ1dCBoaWdoZXIgZW5kIHN1ZmZlciBsZXNzIGZyb20gdGhlIG92ZXJoZWFkIHRoYW4gbG93ZXIgZW5kIGRvZXMgZnJvbVxuLy8gbm90IGdldHRpbmcgc21hbGwgZW5vdWdoIHBpZWNlcy4gV2UgZXJyb3Igb24gdGhlIHNpZGUgb2YgbG93IGVuZC5cbi8vIFdlIGJhc2UgdGhpcyBvbiBsb3cgZW5kIDNHIHNwZWVkcyB3aGljaCBpcyBhYm91dCA1MDBrYml0cyBwZXIgc2Vjb25kLiBXZSBhc3N1bWVcbi8vIHRoYXQgdGhlcmUgY2FuIGJlIGEgcmVhc29uYWJsZSBkcm9wIG9mZiBmcm9tIG1heCBiYW5kd2lkdGggd2hpY2ggbGVhdmVzIHlvdSB3aXRoXG4vLyBhcyBsaXR0bGUgYXMgODAlLiBXZSBjYW4gcmVjZWl2ZSBoYWxmIG9mIHRoYXQgZWFjaCA1MDBtcyAtIGF0IGJlc3QuIEluIHByYWN0aWNlLFxuLy8gYSBsaXR0bGUgYmFuZHdpZHRoIGlzIGxvc3QgdG8gcHJvY2Vzc2luZyBhbmQgY29udGVudGlvbiAtIGUuZy4gQ1NTIGFuZCBpbWFnZXMgdGhhdFxuLy8gYXJlIGRvd25sb2FkZWQgYWxvbmcgd2l0aCB0aGUgbWFpbiBjb250ZW50LiBTbyB3ZSBlc3RpbWF0ZSBhYm91dCBoYWxmIG9mIHRoYXQgdG8gYmVcbi8vIHRoZSBsb3dlciBlbmQgdGhyb3VnaHB1dC4gSW4gb3RoZXIgd29yZHMsIHdlIGV4cGVjdCB0aGF0IHlvdSBjYW4gYXQgbGVhc3Qgc2hvd1xuLy8gYWJvdXQgMTIuNWtiIG9mIGNvbnRlbnQgcGVyIDUwMG1zLiBOb3QgY291bnRpbmcgc3RhcnRpbmcgbGF0ZW5jeSBmb3IgdGhlIGZpcnN0XG4vLyBwYWludC5cbi8vIDUwMCAqIDEwMjQgLyA4ICogLjggKiAwLjUgLyAyXG5cbnZhciBERUZBVUxUX1BST0dSRVNTSVZFX0NIVU5LX1NJWkUgPSAxMjgwMDtcblxuZnVuY3Rpb24gZGVmYXVsdEVycm9ySGFuZGxlcihlcnJvcikge1xuICBjb25zb2xlWydlcnJvciddKGVycm9yKTsgLy8gRG9uJ3QgdHJhbnNmb3JtIHRvIG91ciB3cmFwcGVyXG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5mdW5jdGlvbiBjcmVhdGVSZXF1ZXN0KGNoaWxkcmVuLCByZXN1bWFibGVTdGF0ZSwgcmVuZGVyU3RhdGUsIHJvb3RGb3JtYXRDb250ZXh0LCBwcm9ncmVzc2l2ZUNodW5rU2l6ZSwgb25FcnJvciwgb25BbGxSZWFkeSwgb25TaGVsbFJlYWR5LCBvblNoZWxsRXJyb3IsIG9uRmF0YWxFcnJvciwgb25Qb3N0cG9uZSwgZm9ybVN0YXRlKSB7XG4gIHByZXBhcmVIb3N0RGlzcGF0Y2hlcigpO1xuICB2YXIgcGluZ2VkVGFza3MgPSBbXTtcbiAgdmFyIGFib3J0U2V0ID0gbmV3IFNldCgpO1xuICB2YXIgcmVxdWVzdCA9IHtcbiAgICBkZXN0aW5hdGlvbjogbnVsbCxcbiAgICBmbHVzaFNjaGVkdWxlZDogZmFsc2UsXG4gICAgcmVzdW1hYmxlU3RhdGU6IHJlc3VtYWJsZVN0YXRlLFxuICAgIHJlbmRlclN0YXRlOiByZW5kZXJTdGF0ZSxcbiAgICByb290Rm9ybWF0Q29udGV4dDogcm9vdEZvcm1hdENvbnRleHQsXG4gICAgcHJvZ3Jlc3NpdmVDaHVua1NpemU6IHByb2dyZXNzaXZlQ2h1bmtTaXplID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1BST0dSRVNTSVZFX0NIVU5LX1NJWkUgOiBwcm9ncmVzc2l2ZUNodW5rU2l6ZSxcbiAgICBzdGF0dXM6IE9QRU4sXG4gICAgZmF0YWxFcnJvcjogbnVsbCxcbiAgICBuZXh0U2VnbWVudElkOiAwLFxuICAgIGFsbFBlbmRpbmdUYXNrczogMCxcbiAgICBwZW5kaW5nUm9vdFRhc2tzOiAwLFxuICAgIGNvbXBsZXRlZFJvb3RTZWdtZW50OiBudWxsLFxuICAgIGFib3J0YWJsZVRhc2tzOiBhYm9ydFNldCxcbiAgICBwaW5nZWRUYXNrczogcGluZ2VkVGFza3MsXG4gICAgY2xpZW50UmVuZGVyZWRCb3VuZGFyaWVzOiBbXSxcbiAgICBjb21wbGV0ZWRCb3VuZGFyaWVzOiBbXSxcbiAgICBwYXJ0aWFsQm91bmRhcmllczogW10sXG4gICAgdHJhY2tlZFBvc3Rwb25lczogbnVsbCxcbiAgICBvbkVycm9yOiBvbkVycm9yID09PSB1bmRlZmluZWQgPyBkZWZhdWx0RXJyb3JIYW5kbGVyIDogb25FcnJvcixcbiAgICBvblBvc3Rwb25lOiBvblBvc3Rwb25lID09PSB1bmRlZmluZWQgPyBub29wIDogb25Qb3N0cG9uZSxcbiAgICBvbkFsbFJlYWR5OiBvbkFsbFJlYWR5ID09PSB1bmRlZmluZWQgPyBub29wIDogb25BbGxSZWFkeSxcbiAgICBvblNoZWxsUmVhZHk6IG9uU2hlbGxSZWFkeSA9PT0gdW5kZWZpbmVkID8gbm9vcCA6IG9uU2hlbGxSZWFkeSxcbiAgICBvblNoZWxsRXJyb3I6IG9uU2hlbGxFcnJvciA9PT0gdW5kZWZpbmVkID8gbm9vcCA6IG9uU2hlbGxFcnJvcixcbiAgICBvbkZhdGFsRXJyb3I6IG9uRmF0YWxFcnJvciA9PT0gdW5kZWZpbmVkID8gbm9vcCA6IG9uRmF0YWxFcnJvcixcbiAgICBmb3JtU3RhdGU6IGZvcm1TdGF0ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGZvcm1TdGF0ZVxuICB9OyAvLyBUaGlzIHNlZ21lbnQgcmVwcmVzZW50cyB0aGUgcm9vdCBmYWxsYmFjay5cblxuICB2YXIgcm9vdFNlZ21lbnQgPSBjcmVhdGVQZW5kaW5nU2VnbWVudChyZXF1ZXN0LCAwLCBudWxsLCByb290Rm9ybWF0Q29udGV4dCwgLy8gUm9vdCBzZWdtZW50cyBhcmUgbmV2ZXIgZW1iZWRkZWQgaW4gVGV4dCBvbiBlaXRoZXIgZWRnZVxuICBmYWxzZSwgZmFsc2UpOyAvLyBUaGVyZSBpcyBubyBwYXJlbnQgc28gY29uY2VwdHVhbGx5LCB3ZSdyZSB1bmJsb2NrZWQgdG8gZmx1c2ggdGhpcyBzZWdtZW50LlxuXG4gIHJvb3RTZWdtZW50LnBhcmVudEZsdXNoZWQgPSB0cnVlO1xuICB2YXIgcm9vdFRhc2sgPSBjcmVhdGVSZW5kZXJUYXNrKHJlcXVlc3QsIG51bGwsIGNoaWxkcmVuLCAtMSwgbnVsbCwgcm9vdFNlZ21lbnQsIGFib3J0U2V0LCBudWxsLCByb290Rm9ybWF0Q29udGV4dCwgZW1wdHlDb250ZXh0T2JqZWN0LCByb290Q29udGV4dFNuYXBzaG90LCBlbXB0eVRyZWVDb250ZXh0LCBudWxsKTtcbiAgcGluZ2VkVGFza3MucHVzaChyb290VGFzayk7XG4gIHJldHVybiByZXF1ZXN0O1xufVxudmFyIGN1cnJlbnRSZXF1ZXN0ID0gbnVsbDtcbmZ1bmN0aW9uIHJlc29sdmVSZXF1ZXN0KCkge1xuICBpZiAoY3VycmVudFJlcXVlc3QpIHJldHVybiBjdXJyZW50UmVxdWVzdDtcblxuICBpZiAoc3VwcG9ydHNSZXF1ZXN0U3RvcmFnZSkge1xuICAgIHZhciBzdG9yZSA9IHJlcXVlc3RTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHN0b3JlKSByZXR1cm4gc3RvcmU7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcGluZ1Rhc2socmVxdWVzdCwgdGFzaykge1xuICB2YXIgcGluZ2VkVGFza3MgPSByZXF1ZXN0LnBpbmdlZFRhc2tzO1xuICBwaW5nZWRUYXNrcy5wdXNoKHRhc2spO1xuXG4gIGlmIChyZXF1ZXN0LnBpbmdlZFRhc2tzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJlcXVlc3QuZmx1c2hTY2hlZHVsZWQgPSByZXF1ZXN0LmRlc3RpbmF0aW9uICE9PSBudWxsO1xuICAgIHNjaGVkdWxlV29yayhmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcGVyZm9ybVdvcmsocmVxdWVzdCk7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlU3VzcGVuc2VCb3VuZGFyeShyZXF1ZXN0LCBmYWxsYmFja0Fib3J0YWJsZVRhc2tzKSB7XG4gIHJldHVybiB7XG4gICAgc3RhdHVzOiBQRU5ESU5HLFxuICAgIHJvb3RTZWdtZW50SUQ6IC0xLFxuICAgIHBhcmVudEZsdXNoZWQ6IGZhbHNlLFxuICAgIHBlbmRpbmdUYXNrczogMCxcbiAgICBjb21wbGV0ZWRTZWdtZW50czogW10sXG4gICAgYnl0ZVNpemU6IDAsXG4gICAgZmFsbGJhY2tBYm9ydGFibGVUYXNrczogZmFsbGJhY2tBYm9ydGFibGVUYXNrcyxcbiAgICBlcnJvckRpZ2VzdDogbnVsbCxcbiAgICByZXNvdXJjZXM6IGNyZWF0ZUJvdW5kYXJ5UmVzb3VyY2VzKCksXG4gICAgdHJhY2tlZENvbnRlbnRLZXlQYXRoOiBudWxsLFxuICAgIHRyYWNrZWRGYWxsYmFja05vZGU6IG51bGxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyVGFzayhyZXF1ZXN0LCB0aGVuYWJsZVN0YXRlLCBub2RlLCBjaGlsZEluZGV4LCBibG9ja2VkQm91bmRhcnksIGJsb2NrZWRTZWdtZW50LCBhYm9ydFNldCwga2V5UGF0aCwgZm9ybWF0Q29udGV4dCwgbGVnYWN5Q29udGV4dCwgY29udGV4dCwgdHJlZUNvbnRleHQsIGNvbXBvbmVudFN0YWNrKSB7XG4gIHJlcXVlc3QuYWxsUGVuZGluZ1Rhc2tzKys7XG5cbiAgaWYgKGJsb2NrZWRCb3VuZGFyeSA9PT0gbnVsbCkge1xuICAgIHJlcXVlc3QucGVuZGluZ1Jvb3RUYXNrcysrO1xuICB9IGVsc2Uge1xuICAgIGJsb2NrZWRCb3VuZGFyeS5wZW5kaW5nVGFza3MrKztcbiAgfVxuXG4gIHZhciB0YXNrID0ge1xuICAgIHJlcGxheTogbnVsbCxcbiAgICBub2RlOiBub2RlLFxuICAgIGNoaWxkSW5kZXg6IGNoaWxkSW5kZXgsXG4gICAgcGluZzogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHBpbmdUYXNrKHJlcXVlc3QsIHRhc2spO1xuICAgIH0sXG4gICAgYmxvY2tlZEJvdW5kYXJ5OiBibG9ja2VkQm91bmRhcnksXG4gICAgYmxvY2tlZFNlZ21lbnQ6IGJsb2NrZWRTZWdtZW50LFxuICAgIGFib3J0U2V0OiBhYm9ydFNldCxcbiAgICBrZXlQYXRoOiBrZXlQYXRoLFxuICAgIGZvcm1hdENvbnRleHQ6IGZvcm1hdENvbnRleHQsXG4gICAgbGVnYWN5Q29udGV4dDogbGVnYWN5Q29udGV4dCxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgIHRyZWVDb250ZXh0OiB0cmVlQ29udGV4dCxcbiAgICBjb21wb25lbnRTdGFjazogY29tcG9uZW50U3RhY2ssXG4gICAgdGhlbmFibGVTdGF0ZTogdGhlbmFibGVTdGF0ZVxuICB9O1xuICBhYm9ydFNldC5hZGQodGFzayk7XG4gIHJldHVybiB0YXNrO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXBsYXlUYXNrKHJlcXVlc3QsIHRoZW5hYmxlU3RhdGUsIHJlcGxheSwgbm9kZSwgY2hpbGRJbmRleCwgYmxvY2tlZEJvdW5kYXJ5LCBhYm9ydFNldCwga2V5UGF0aCwgZm9ybWF0Q29udGV4dCwgbGVnYWN5Q29udGV4dCwgY29udGV4dCwgdHJlZUNvbnRleHQsIGNvbXBvbmVudFN0YWNrKSB7XG4gIHJlcXVlc3QuYWxsUGVuZGluZ1Rhc2tzKys7XG5cbiAgaWYgKGJsb2NrZWRCb3VuZGFyeSA9PT0gbnVsbCkge1xuICAgIHJlcXVlc3QucGVuZGluZ1Jvb3RUYXNrcysrO1xuICB9IGVsc2Uge1xuICAgIGJsb2NrZWRCb3VuZGFyeS5wZW5kaW5nVGFza3MrKztcbiAgfVxuXG4gIHJlcGxheS5wZW5kaW5nVGFza3MrKztcbiAgdmFyIHRhc2sgPSB7XG4gICAgcmVwbGF5OiByZXBsYXksXG4gICAgbm9kZTogbm9kZSxcbiAgICBjaGlsZEluZGV4OiBjaGlsZEluZGV4LFxuICAgIHBpbmc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBwaW5nVGFzayhyZXF1ZXN0LCB0YXNrKTtcbiAgICB9LFxuICAgIGJsb2NrZWRCb3VuZGFyeTogYmxvY2tlZEJvdW5kYXJ5LFxuICAgIGJsb2NrZWRTZWdtZW50OiBudWxsLFxuICAgIGFib3J0U2V0OiBhYm9ydFNldCxcbiAgICBrZXlQYXRoOiBrZXlQYXRoLFxuICAgIGZvcm1hdENvbnRleHQ6IGZvcm1hdENvbnRleHQsXG4gICAgbGVnYWN5Q29udGV4dDogbGVnYWN5Q29udGV4dCxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgIHRyZWVDb250ZXh0OiB0cmVlQ29udGV4dCxcbiAgICBjb21wb25lbnRTdGFjazogY29tcG9uZW50U3RhY2ssXG4gICAgdGhlbmFibGVTdGF0ZTogdGhlbmFibGVTdGF0ZVxuICB9O1xuICBhYm9ydFNldC5hZGQodGFzayk7XG4gIHJldHVybiB0YXNrO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQZW5kaW5nU2VnbWVudChyZXF1ZXN0LCBpbmRleCwgYm91bmRhcnksIHBhcmVudEZvcm1hdENvbnRleHQsIGxhc3RQdXNoZWRUZXh0LCB0ZXh0RW1iZWRkZWQpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0dXM6IFBFTkRJTkcsXG4gICAgaWQ6IC0xLFxuICAgIC8vIGxhemlseSBhc3NpZ25lZCBsYXRlclxuICAgIGluZGV4OiBpbmRleCxcbiAgICBwYXJlbnRGbHVzaGVkOiBmYWxzZSxcbiAgICBjaHVua3M6IFtdLFxuICAgIGNoaWxkcmVuOiBbXSxcbiAgICBwYXJlbnRGb3JtYXRDb250ZXh0OiBwYXJlbnRGb3JtYXRDb250ZXh0LFxuICAgIGJvdW5kYXJ5OiBib3VuZGFyeSxcbiAgICBsYXN0UHVzaGVkVGV4dDogbGFzdFB1c2hlZFRleHQsXG4gICAgdGV4dEVtYmVkZGVkOiB0ZXh0RW1iZWRkZWRcbiAgfTtcbn0gLy8gREVWLW9ubHkgZ2xvYmFsIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyB0YXNrXG5cblxudmFyIGN1cnJlbnRUYXNrSW5ERVYgPSBudWxsO1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50U3RhY2tJbkRFVigpIHtcbiAge1xuICAgIGlmIChjdXJyZW50VGFza0luREVWID09PSBudWxsIHx8IGN1cnJlbnRUYXNrSW5ERVYuY29tcG9uZW50U3RhY2sgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0U3RhY2tCeUNvbXBvbmVudFN0YWNrTm9kZShjdXJyZW50VGFza0luREVWLmNvbXBvbmVudFN0YWNrKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTdGFja0Zyb21Ob2RlKHN0YWNrTm9kZSkge1xuICByZXR1cm4gZ2V0U3RhY2tCeUNvbXBvbmVudFN0YWNrTm9kZShzdGFja05vZGUpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCdWlsdEluQ29tcG9uZW50U3RhY2sodGFzaywgdHlwZSkge1xuICByZXR1cm4ge1xuICAgIHRhZzogMCxcbiAgICBwYXJlbnQ6IHRhc2suY29tcG9uZW50U3RhY2ssXG4gICAgdHlwZTogdHlwZVxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGdW5jdGlvbkNvbXBvbmVudFN0YWNrKHRhc2ssIHR5cGUpIHtcbiAgcmV0dXJuIHtcbiAgICB0YWc6IDEsXG4gICAgcGFyZW50OiB0YXNrLmNvbXBvbmVudFN0YWNrLFxuICAgIHR5cGU6IHR5cGVcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2xhc3NDb21wb25lbnRTdGFjayh0YXNrLCB0eXBlKSB7XG4gIHJldHVybiB7XG4gICAgdGFnOiAyLFxuICAgIHBhcmVudDogdGFzay5jb21wb25lbnRTdGFjayxcbiAgICB0eXBlOiB0eXBlXG4gIH07XG59IC8vIFdoaWxlIHdlIHRyYWNrIGNvbXBvbmVudCBzdGFja3MgaW4gcHJvZCBhbGwgdGhlIHRpbWUgd2Ugb25seSBwcm9kdWNlIGEgcmVpZmllZCBzdGFjayBpbiBkZXYgYW5kXG4vLyBkdXJpbmcgcHJlcmVuZGVyIGluIFByb2QuIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCB0aGUgc3RhY2sgaXMgdXNlZnVsIGZvciBwcmVyZW5kZXIgd2hlcmUgdGhlIHRpbWVsaW5lc3Ncbi8vIG9mIHRoZSByZXF1ZXN0IGlzIGxlc3MgY3JpdGljYWwgdGhhbiB0aGUgb2JzZXJ2YWJpbGl0eSBvZiB0aGUgZXhlY3V0aW9uLiBGb3IgcmVuZGVycyBhbmQgcmVzdW1lcyBob3dldmVyIHdlXG4vLyBwcmlvcml0aXplIHNwZWVkIG9mIHRoZSByZXF1ZXN0LlxuXG5cbmZ1bmN0aW9uIGdldFRocm93bkluZm8ocmVxdWVzdCwgbm9kZSkge1xuICBpZiAobm9kZSAmJiAoIC8vIEFsd2F5cyBwcm9kdWNlIGEgc3RhY2sgaW4gZGV2XG4gIHRydWUgKSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb21wb25lbnRTdGFjazogZ2V0U3RhY2tGcm9tTm9kZShub2RlKVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGVuY29kZUVycm9yRm9yQm91bmRhcnkoYm91bmRhcnksIGRpZ2VzdCwgZXJyb3IsIHRocm93bkluZm8pIHtcbiAgYm91bmRhcnkuZXJyb3JEaWdlc3QgPSBkaWdlc3Q7XG5cbiAge1xuICAgIC8vIEluIGRldiB3ZSBhZGRpdGlvbmFsbHkgZW5jb2RlIHRoZSBlcnJvciBtZXNzYWdlIGFuZCBjb21wb25lbnQgc3RhY2sgb24gdGhlIGJvdW5kYXJ5XG4gICAgdmFyIGVycm9yTWVzc2FnZTtcblxuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvcjtcbiAgICB9IGVsc2UgaWYgKGVycm9yICYmIHR5cGVvZiBlcnJvci5tZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoZXJyb3IpO1xuICAgIH1cblxuICAgIGJvdW5kYXJ5LmVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgICBib3VuZGFyeS5lcnJvckNvbXBvbmVudFN0YWNrID0gdGhyb3duSW5mby5jb21wb25lbnRTdGFjaztcbiAgfVxufVxuXG5mdW5jdGlvbiBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIGVycm9yJDEsIGVycm9ySW5mbykge1xuICAvLyBJZiB0aGlzIGNhbGxiYWNrIGVycm9ycywgd2UgaW50ZW50aW9uYWxseSBsZXQgdGhhdCBlcnJvciBidWJibGUgdXAgdG8gYmVjb21lIGEgZmF0YWwgZXJyb3JcbiAgLy8gc28gdGhhdCBzb21lb25lIGZpeGVzIHRoZSBlcnJvciByZXBvcnRpbmcgaW5zdGVhZCBvZiBoaWRpbmcgaXQuXG4gIHZhciBlcnJvckRpZ2VzdCA9IHJlcXVlc3Qub25FcnJvcihlcnJvciQxLCBlcnJvckluZm8pO1xuXG4gIGlmIChlcnJvckRpZ2VzdCAhPSBudWxsICYmIHR5cGVvZiBlcnJvckRpZ2VzdCAhPT0gJ3N0cmluZycpIHtcbiAgICAvLyBXZSB1c2VkIHRvIHRocm93IGhlcmUgYnV0IHNpbmNlIHRoaXMgZ2V0cyBjYWxsZWQgZnJvbSBhIHZhcmlldHkgb2YgdW5wcm90ZWN0ZWQgcGxhY2VzIGl0XG4gICAgLy8gc2VlbXMgYmV0dGVyIHRvIGp1c3Qgd2FybiBhbmQgZGlzY2FyZCB0aGUgcmV0dXJuZWQgdmFsdWUuXG4gICAge1xuICAgICAgZXJyb3IoJ29uRXJyb3IgcmV0dXJuZWQgc29tZXRoaW5nIHdpdGggYSB0eXBlIG90aGVyIHRoYW4gXCJzdHJpbmdcIi4gb25FcnJvciBzaG91bGQgcmV0dXJuIGEgc3RyaW5nIGFuZCBtYXkgcmV0dXJuIG51bGwgb3IgdW5kZWZpbmVkIGJ1dCBtdXN0IG5vdCByZXR1cm4gYW55dGhpbmcgZWxzZS4gSXQgcmVjZWl2ZWQgc29tZXRoaW5nIG9mIHR5cGUgXCIlc1wiIGluc3RlYWQnLCB0eXBlb2YgZXJyb3JEaWdlc3QpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiBlcnJvckRpZ2VzdDtcbn1cblxuZnVuY3Rpb24gZmF0YWxFcnJvcihyZXF1ZXN0LCBlcnJvcikge1xuICAvLyBUaGlzIGlzIGNhbGxlZCBvdXRzaWRlIGVycm9yIGhhbmRsaW5nIGNvZGUgc3VjaCBhcyBpZiB0aGUgcm9vdCBlcnJvcnMgb3V0c2lkZVxuICAvLyBhIHN1c3BlbnNlIGJvdW5kYXJ5IG9yIGlmIHRoZSByb290IHN1c3BlbnNlIGJvdW5kYXJ5J3MgZmFsbGJhY2sgZXJyb3JzLlxuICAvLyBJdCdzIGFsc28gY2FsbGVkIGlmIFJlYWN0IGl0c2VsZiBvciBpdHMgaG9zdCBjb25maWdzIGVycm9ycy5cbiAgdmFyIG9uU2hlbGxFcnJvciA9IHJlcXVlc3Qub25TaGVsbEVycm9yO1xuICBvblNoZWxsRXJyb3IoZXJyb3IpO1xuICB2YXIgb25GYXRhbEVycm9yID0gcmVxdWVzdC5vbkZhdGFsRXJyb3I7XG4gIG9uRmF0YWxFcnJvcihlcnJvcik7XG5cbiAgaWYgKHJlcXVlc3QuZGVzdGluYXRpb24gIT09IG51bGwpIHtcbiAgICByZXF1ZXN0LnN0YXR1cyA9IENMT1NFRDtcbiAgICBjbG9zZVdpdGhFcnJvcihyZXF1ZXN0LmRlc3RpbmF0aW9uLCBlcnJvcik7XG4gIH0gZWxzZSB7XG4gICAgcmVxdWVzdC5zdGF0dXMgPSBDTE9TSU5HO1xuICAgIHJlcXVlc3QuZmF0YWxFcnJvciA9IGVycm9yO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlclN1c3BlbnNlQm91bmRhcnkocmVxdWVzdCwgc29tZVRhc2ssIGtleVBhdGgsIHByb3BzKSB7XG4gIGlmIChzb21lVGFzay5yZXBsYXkgIT09IG51bGwpIHtcbiAgICAvLyBJZiB3ZSdyZSByZXBsYXlpbmcgdGhyb3VnaCB0aGlzIHBhc3MsIGl0IG1lYW5zIHdlJ3JlIHJlcGxheWluZyB0aHJvdWdoXG4gICAgLy8gYW4gYWxyZWFkeSBjb21wbGV0ZWQgU3VzcGVuc2UgYm91bmRhcnkuIEl0J3MgdG9vIGxhdGUgdG8gZG8gYW55dGhpbmcgYWJvdXQgaXRcbiAgICAvLyBzbyB3ZSBjYW4ganVzdCByZW5kZXIgdGhyb3VnaCBpdC5cbiAgICB2YXIgX3ByZXZLZXlQYXRoID0gc29tZVRhc2sua2V5UGF0aDtcbiAgICBzb21lVGFzay5rZXlQYXRoID0ga2V5UGF0aDtcbiAgICB2YXIgX2NvbnRlbnQgPSBwcm9wcy5jaGlsZHJlbjtcblxuICAgIHRyeSB7XG4gICAgICByZW5kZXJOb2RlKHJlcXVlc3QsIHNvbWVUYXNrLCBfY29udGVudCwgLTEpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzb21lVGFzay5rZXlQYXRoID0gX3ByZXZLZXlQYXRoO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfSAvLyAkRmxvd0ZpeE1lOiBSZWZpbmVkLlxuXG5cbiAgdmFyIHRhc2sgPSBzb21lVGFzaztcbiAgdmFyIHByZXZpb3VzQ29tcG9uZW50U3RhY2sgPSB0YXNrLmNvbXBvbmVudFN0YWNrOyAvLyBJZiB3ZSBlbmQgdXAgY3JlYXRpbmcgdGhlIGZhbGxiYWNrIHRhc2sgd2UgbmVlZCBpdCB0byBoYXZlIHRoZSBjb3JyZWN0IHN0YWNrIHdoaWNoIGlzXG4gIC8vIHRoZSBzdGFjayBmb3IgdGhlIGJvdW5kYXJ5IGl0c2VsZi4gV2Ugc3Rhc2ggaXQgaGVyZSBzbyB3ZSBjYW4gdXNlIGl0IGlmIG5lZWRlZCBsYXRlclxuXG4gIHZhciBzdXNwZW5zZUNvbXBvbmVudFN0YWNrID0gdGFzay5jb21wb25lbnRTdGFjayA9IGNyZWF0ZUJ1aWx0SW5Db21wb25lbnRTdGFjayh0YXNrLCAnU3VzcGVuc2UnKTtcbiAgdmFyIHByZXZLZXlQYXRoID0gdGFzay5rZXlQYXRoO1xuICB2YXIgcGFyZW50Qm91bmRhcnkgPSB0YXNrLmJsb2NrZWRCb3VuZGFyeTtcbiAgdmFyIHBhcmVudFNlZ21lbnQgPSB0YXNrLmJsb2NrZWRTZWdtZW50OyAvLyBFYWNoIHRpbWUgd2UgZW50ZXIgYSBzdXNwZW5zZSBib3VuZGFyeSwgd2Ugc3BsaXQgb3V0IGludG8gYSBuZXcgc2VnbWVudCBmb3JcbiAgLy8gdGhlIGZhbGxiYWNrIHNvIHRoYXQgd2UgY2FuIGxhdGVyIHJlcGxhY2UgdGhhdCBzZWdtZW50IHdpdGggdGhlIGNvbnRlbnQuXG4gIC8vIFRoaXMgYWxzbyBsZXRzIHVzIHNwbGl0IG91dCB0aGUgbWFpbiBjb250ZW50IGV2ZW4gaWYgaXQgZG9lc24ndCBzdXNwZW5kLFxuICAvLyBpbiBjYXNlIGl0IGVuZHMgdXAgZ2VuZXJhdGluZyBhIGxhcmdlIHN1YnRyZWUgb2YgY29udGVudC5cblxuICB2YXIgZmFsbGJhY2sgPSBwcm9wcy5mYWxsYmFjaztcbiAgdmFyIGNvbnRlbnQgPSBwcm9wcy5jaGlsZHJlbjtcbiAgdmFyIGZhbGxiYWNrQWJvcnRTZXQgPSBuZXcgU2V0KCk7XG4gIHZhciBuZXdCb3VuZGFyeSA9IGNyZWF0ZVN1c3BlbnNlQm91bmRhcnkocmVxdWVzdCwgZmFsbGJhY2tBYm9ydFNldCk7XG5cbiAgaWYgKHJlcXVlc3QudHJhY2tlZFBvc3Rwb25lcyAhPT0gbnVsbCkge1xuICAgIG5ld0JvdW5kYXJ5LnRyYWNrZWRDb250ZW50S2V5UGF0aCA9IGtleVBhdGg7XG4gIH1cblxuICB2YXIgaW5zZXJ0aW9uSW5kZXggPSBwYXJlbnRTZWdtZW50LmNodW5rcy5sZW5ndGg7IC8vIFRoZSBjaGlsZHJlbiBvZiB0aGUgYm91bmRhcnkgc2VnbWVudCBpcyBhY3R1YWxseSB0aGUgZmFsbGJhY2suXG5cbiAgdmFyIGJvdW5kYXJ5U2VnbWVudCA9IGNyZWF0ZVBlbmRpbmdTZWdtZW50KHJlcXVlc3QsIGluc2VydGlvbkluZGV4LCBuZXdCb3VuZGFyeSwgdGFzay5mb3JtYXRDb250ZXh0LCAvLyBib3VuZGFyaWVzIG5ldmVyIHJlcXVpcmUgdGV4dCBlbWJlZGRpbmcgYXQgdGhlaXIgZWRnZXMgYmVjYXVzZSBjb21tZW50IG5vZGVzIGJvdW5kIHRoZW1cbiAgZmFsc2UsIGZhbHNlKTtcbiAgcGFyZW50U2VnbWVudC5jaGlsZHJlbi5wdXNoKGJvdW5kYXJ5U2VnbWVudCk7IC8vIFRoZSBwYXJlbnRTZWdtZW50IGhhcyBhIGNoaWxkIFNlZ21lbnQgYXQgdGhpcyBpbmRleCBzbyB3ZSByZXNldCB0aGUgbGFzdFB1c2hlZFRleHQgbWFya2VyIG9uIHRoZSBwYXJlbnRcblxuICBwYXJlbnRTZWdtZW50Lmxhc3RQdXNoZWRUZXh0ID0gZmFsc2U7IC8vIFRoaXMgc2VnbWVudCBpcyB0aGUgYWN0dWFsIGNoaWxkIGNvbnRlbnQuIFdlIGNhbiBzdGFydCByZW5kZXJpbmcgdGhhdCBpbW1lZGlhdGVseS5cblxuICB2YXIgY29udGVudFJvb3RTZWdtZW50ID0gY3JlYXRlUGVuZGluZ1NlZ21lbnQocmVxdWVzdCwgMCwgbnVsbCwgdGFzay5mb3JtYXRDb250ZXh0LCAvLyBib3VuZGFyaWVzIG5ldmVyIHJlcXVpcmUgdGV4dCBlbWJlZGRpbmcgYXQgdGhlaXIgZWRnZXMgYmVjYXVzZSBjb21tZW50IG5vZGVzIGJvdW5kIHRoZW1cbiAgZmFsc2UsIGZhbHNlKTsgLy8gV2UgbWFyayB0aGUgcm9vdCBzZWdtZW50IGFzIGhhdmluZyBpdHMgcGFyZW50IGZsdXNoZWQuIEl0J3Mgbm90IHJlYWxseSBmbHVzaGVkIGJ1dCB0aGVyZSBpc1xuICAvLyBubyBwYXJlbnQgc2VnbWVudCBzbyB0aGVyZSdzIG5vdGhpbmcgdG8gd2FpdCBvbi5cblxuICBjb250ZW50Um9vdFNlZ21lbnQucGFyZW50Rmx1c2hlZCA9IHRydWU7IC8vIEN1cnJlbnRseSB0aGlzIGlzIHJ1bm5pbmcgc3luY2hyb25vdXNseS4gV2UgY291bGQgaW5zdGVhZCBzY2hlZHVsZSB0aGlzIHRvIHBpbmdlZFRhc2tzLlxuICAvLyBJIHN1c3BlY3QgdGhhdCB0aGVyZSBtaWdodCBiZSBzb21lIGVmZmljaWVuY3kgYmVuZWZpdHMgZnJvbSBub3QgY3JlYXRpbmcgdGhlIHN1c3BlbmRlZCB0YXNrXG4gIC8vIGFuZCBpbnN0ZWFkIGp1c3QgdXNpbmcgdGhlIHN0YWNrIGlmIHBvc3NpYmxlLlxuICAvLyBUT0RPOiBDYWxsIHRoaXMgZGlyZWN0bHkgaW5zdGVhZCBvZiBtZXNzaW5nIHdpdGggc2F2aW5nIGFuZCByZXN0b3JpbmcgY29udGV4dHMuXG4gIC8vIFdlIGNhbiByZXVzZSB0aGUgY3VycmVudCBjb250ZXh0IGFuZCB0YXNrIHRvIHJlbmRlciB0aGUgY29udGVudCBpbW1lZGlhdGVseSB3aXRob3V0XG4gIC8vIGNvbnRleHQgc3dpdGNoaW5nLiBXZSBqdXN0IG5lZWQgdG8gdGVtcG9yYXJpbHkgc3dpdGNoIHdoaWNoIGJvdW5kYXJ5IGFuZCB3aGljaCBzZWdtZW50XG4gIC8vIHdlJ3JlIHdyaXRpbmcgdG8uIElmIHNvbWV0aGluZyBzdXNwZW5kcywgaXQnbGwgc3Bhd24gbmV3IHN1c3BlbmRlZCB0YXNrIHdpdGggdGhhdCBjb250ZXh0LlxuXG4gIHRhc2suYmxvY2tlZEJvdW5kYXJ5ID0gbmV3Qm91bmRhcnk7XG4gIHRhc2suYmxvY2tlZFNlZ21lbnQgPSBjb250ZW50Um9vdFNlZ21lbnQ7XG5cbiAge1xuICAgIHNldEN1cnJlbnRseVJlbmRlcmluZ0JvdW5kYXJ5UmVzb3VyY2VzVGFyZ2V0KHJlcXVlc3QucmVuZGVyU3RhdGUsIG5ld0JvdW5kYXJ5LnJlc291cmNlcyk7XG4gIH1cblxuICB0YXNrLmtleVBhdGggPSBrZXlQYXRoO1xuXG4gIHRyeSB7XG4gICAgLy8gV2UgdXNlIHRoZSBzYWZlIGZvcm0gYmVjYXVzZSB3ZSBkb24ndCBoYW5kbGUgc3VzcGVuZGluZyBoZXJlLiBPbmx5IGVycm9yIGhhbmRsaW5nLlxuICAgIHJlbmRlck5vZGUocmVxdWVzdCwgdGFzaywgY29udGVudCwgLTEpO1xuICAgIHB1c2hTZWdtZW50RmluYWxlKGNvbnRlbnRSb290U2VnbWVudC5jaHVua3MsIHJlcXVlc3QucmVuZGVyU3RhdGUsIGNvbnRlbnRSb290U2VnbWVudC5sYXN0UHVzaGVkVGV4dCwgY29udGVudFJvb3RTZWdtZW50LnRleHRFbWJlZGRlZCk7XG4gICAgY29udGVudFJvb3RTZWdtZW50LnN0YXR1cyA9IENPTVBMRVRFRDtcbiAgICBxdWV1ZUNvbXBsZXRlZFNlZ21lbnQobmV3Qm91bmRhcnksIGNvbnRlbnRSb290U2VnbWVudCk7XG5cbiAgICBpZiAobmV3Qm91bmRhcnkucGVuZGluZ1Rhc2tzID09PSAwICYmIG5ld0JvdW5kYXJ5LnN0YXR1cyA9PT0gUEVORElORykge1xuICAgICAgLy8gVGhpcyBtdXN0IGhhdmUgYmVlbiB0aGUgbGFzdCBzZWdtZW50IHdlIHdlcmUgd2FpdGluZyBvbi4gVGhpcyBib3VuZGFyeSBpcyBub3cgY29tcGxldGUuXG4gICAgICAvLyBUaGVyZWZvcmUgd2Ugd29uJ3QgbmVlZCB0aGUgZmFsbGJhY2suIFdlIGVhcmx5IHJldHVybiBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gY3JlYXRlXG4gICAgICAvLyB0aGUgZmFsbGJhY2suXG4gICAgICBuZXdCb3VuZGFyeS5zdGF0dXMgPSBDT01QTEVURUQ7IC8vIFdlIGFyZSByZXR1cm5pbmcgZWFybHkgc28gd2UgbmVlZCB0byByZXN0b3JlIHRoZVxuXG4gICAgICB0YXNrLmNvbXBvbmVudFN0YWNrID0gcHJldmlvdXNDb21wb25lbnRTdGFjaztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29udGVudFJvb3RTZWdtZW50LnN0YXR1cyA9IEVSUk9SRUQ7XG4gICAgbmV3Qm91bmRhcnkuc3RhdHVzID0gQ0xJRU5UX1JFTkRFUkVEO1xuICAgIHZhciB0aHJvd25JbmZvID0gZ2V0VGhyb3duSW5mbyhyZXF1ZXN0LCB0YXNrLmNvbXBvbmVudFN0YWNrKTtcbiAgICB2YXIgZXJyb3JEaWdlc3Q7XG5cbiAgICB7XG4gICAgICBlcnJvckRpZ2VzdCA9IGxvZ1JlY292ZXJhYmxlRXJyb3IocmVxdWVzdCwgZXJyb3IsIHRocm93bkluZm8pO1xuICAgIH1cblxuICAgIGVuY29kZUVycm9yRm9yQm91bmRhcnkobmV3Qm91bmRhcnksIGVycm9yRGlnZXN0LCBlcnJvciwgdGhyb3duSW5mbyk7XG4gICAgdW50cmFja0JvdW5kYXJ5KHJlcXVlc3QsIG5ld0JvdW5kYXJ5KTsgLy8gV2UgZG9uJ3QgbmVlZCB0byBkZWNyZW1lbnQgYW55IHRhc2sgbnVtYmVycyBiZWNhdXNlIHdlIGRpZG4ndCBzcGF3biBhbnkgbmV3IHRhc2suXG4gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBzY2hlZHVsZSBhbnkgdGFzayBiZWNhdXNlIHdlIGtub3cgdGhlIHBhcmVudCBoYXMgd3JpdHRlbiB5ZXQuXG4gICAgLy8gV2UgZG8gbmVlZCB0byBmYWxsdGhyb3VnaCB0byBjcmVhdGUgdGhlIGZhbGxiYWNrIHRob3VnaC5cbiAgfSBmaW5hbGx5IHtcbiAgICB7XG4gICAgICBzZXRDdXJyZW50bHlSZW5kZXJpbmdCb3VuZGFyeVJlc291cmNlc1RhcmdldChyZXF1ZXN0LnJlbmRlclN0YXRlLCBwYXJlbnRCb3VuZGFyeSA/IHBhcmVudEJvdW5kYXJ5LnJlc291cmNlcyA6IG51bGwpO1xuICAgIH1cblxuICAgIHRhc2suYmxvY2tlZEJvdW5kYXJ5ID0gcGFyZW50Qm91bmRhcnk7XG4gICAgdGFzay5ibG9ja2VkU2VnbWVudCA9IHBhcmVudFNlZ21lbnQ7XG4gICAgdGFzay5rZXlQYXRoID0gcHJldktleVBhdGg7XG4gICAgdGFzay5jb21wb25lbnRTdGFjayA9IHByZXZpb3VzQ29tcG9uZW50U3RhY2s7XG4gIH1cblxuICB2YXIgZmFsbGJhY2tLZXlQYXRoID0gW2tleVBhdGhbMF0sICdTdXNwZW5zZSBGYWxsYmFjaycsIGtleVBhdGhbMl1dO1xuICB2YXIgdHJhY2tlZFBvc3Rwb25lcyA9IHJlcXVlc3QudHJhY2tlZFBvc3Rwb25lcztcblxuICBpZiAodHJhY2tlZFBvc3Rwb25lcyAhPT0gbnVsbCkge1xuICAgIC8vIFdlIGNyZWF0ZSBhIGRldGFjaGVkIHJlcGxheSBub2RlIHRvIHRyYWNrIGFueSBwb3N0cG9uZXMgaW5zaWRlIHRoZSBmYWxsYmFjay5cbiAgICB2YXIgZmFsbGJhY2tSZXBsYXlOb2RlID0gW2ZhbGxiYWNrS2V5UGF0aFsxXSwgZmFsbGJhY2tLZXlQYXRoWzJdLCBbXSwgbnVsbF07XG4gICAgdHJhY2tlZFBvc3Rwb25lcy53b3JraW5nTWFwLnNldChmYWxsYmFja0tleVBhdGgsIGZhbGxiYWNrUmVwbGF5Tm9kZSk7XG5cbiAgICBpZiAobmV3Qm91bmRhcnkuc3RhdHVzID09PSBQT1NUUE9ORUQpIHtcbiAgICAgIC8vIFRoaXMgbXVzdCBleGlzdCBub3cuXG4gICAgICB2YXIgYm91bmRhcnlSZXBsYXlOb2RlID0gdHJhY2tlZFBvc3Rwb25lcy53b3JraW5nTWFwLmdldChrZXlQYXRoKTtcbiAgICAgIGJvdW5kYXJ5UmVwbGF5Tm9kZVs0XSA9IGZhbGxiYWNrUmVwbGF5Tm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gV2UgbWlnaHQgbm90IGluamVjdCBpdCBpbnRvIHRoZSBwb3N0cG9uZWQgdHJlZSwgdW5sZXNzIHRoZSBjb250ZW50IGFjdHVhbGx5XG4gICAgICAvLyBwb3N0cG9uZXMgdG9vLiBXZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgaXQgdW50aWwgdGhhdCBoYXBwcGVucy5cbiAgICAgIG5ld0JvdW5kYXJ5LnRyYWNrZWRGYWxsYmFja05vZGUgPSBmYWxsYmFja1JlcGxheU5vZGU7XG4gICAgfVxuICB9IC8vIFdlIGNyZWF0ZSBzdXNwZW5kZWQgdGFzayBmb3IgdGhlIGZhbGxiYWNrIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byBhY3R1YWxseSB3b3JrXG4gIC8vIG9uIGl0IHlldCBpbiBjYXNlIHdlIGZpbmlzaCB0aGUgbWFpbiBjb250ZW50LCBzbyB3ZSBxdWV1ZSBmb3IgbGF0ZXIuXG5cblxuICB2YXIgc3VzcGVuZGVkRmFsbGJhY2tUYXNrID0gY3JlYXRlUmVuZGVyVGFzayhyZXF1ZXN0LCBudWxsLCBmYWxsYmFjaywgLTEsIHBhcmVudEJvdW5kYXJ5LCBib3VuZGFyeVNlZ21lbnQsIGZhbGxiYWNrQWJvcnRTZXQsIGZhbGxiYWNrS2V5UGF0aCwgdGFzay5mb3JtYXRDb250ZXh0LCB0YXNrLmxlZ2FjeUNvbnRleHQsIHRhc2suY29udGV4dCwgdGFzay50cmVlQ29udGV4dCwgLy8gVGhpcyBzdGFjayBzaG91bGQgYmUgdGhlIFN1c3BlbnNlIGJvdW5kYXJ5IHN0YWNrIGJlY2F1c2Ugd2hpbGUgdGhlIGZhbGxiYWNrIGlzIGFjdHVhbGx5IGEgY2hpbGQgc2VnbWVudFxuICAvLyBvZiB0aGUgcGFyZW50IGJvdW5kYXJ5IGZyb20gYSBjb21wb25lbnQgc3RhbmRwb2ludCB0aGUgZmFsbGJhY2sgaXMgYSBjaGlsZCBvZiB0aGUgU3VzcGVuc2UgYm91bmRhcnkgaXRzZWxmXG4gIHN1c3BlbnNlQ29tcG9uZW50U3RhY2spOyAvLyBUT0RPOiBUaGlzIHNob3VsZCBiZSBxdWV1ZWQgYXQgYSBzZXBhcmF0ZSBsb3dlciBwcmlvcml0eSBxdWV1ZSBzbyB0aGF0IHdlIG9ubHkgd29ya1xuICAvLyBvbiBwcmVwYXJpbmcgZmFsbGJhY2tzIGlmIHdlIGRvbid0IGhhdmUgYW55IG1vcmUgbWFpbiBjb250ZW50IHRvIHRhc2sgb24uXG5cbiAgcmVxdWVzdC5waW5nZWRUYXNrcy5wdXNoKHN1c3BlbmRlZEZhbGxiYWNrVGFzayk7XG59XG5cbmZ1bmN0aW9uIHJlcGxheVN1c3BlbnNlQm91bmRhcnkocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgcHJvcHMsIGlkLCBjaGlsZE5vZGVzLCBjaGlsZFNsb3RzLCBmYWxsYmFja05vZGVzLCBmYWxsYmFja1Nsb3RzKSB7XG4gIHZhciBwcmV2aW91c0NvbXBvbmVudFN0YWNrID0gdGFzay5jb21wb25lbnRTdGFjazsgLy8gSWYgd2UgZW5kIHVwIGNyZWF0aW5nIHRoZSBmYWxsYmFjayB0YXNrIHdlIG5lZWQgaXQgdG8gaGF2ZSB0aGUgY29ycmVjdCBzdGFjayB3aGljaCBpc1xuICAvLyB0aGUgc3RhY2sgZm9yIHRoZSBib3VuZGFyeSBpdHNlbGYuIFdlIHN0YXNoIGl0IGhlcmUgc28gd2UgY2FuIHVzZSBpdCBpZiBuZWVkZWQgbGF0ZXJcblxuICB2YXIgc3VzcGVuc2VDb21wb25lbnRTdGFjayA9IHRhc2suY29tcG9uZW50U3RhY2sgPSBjcmVhdGVCdWlsdEluQ29tcG9uZW50U3RhY2sodGFzaywgJ1N1c3BlbnNlJyk7XG4gIHZhciBwcmV2S2V5UGF0aCA9IHRhc2sua2V5UGF0aDtcbiAgdmFyIHByZXZpb3VzUmVwbGF5U2V0ID0gdGFzay5yZXBsYXk7XG4gIHZhciBwYXJlbnRCb3VuZGFyeSA9IHRhc2suYmxvY2tlZEJvdW5kYXJ5O1xuICB2YXIgY29udGVudCA9IHByb3BzLmNoaWxkcmVuO1xuICB2YXIgZmFsbGJhY2sgPSBwcm9wcy5mYWxsYmFjaztcbiAgdmFyIGZhbGxiYWNrQWJvcnRTZXQgPSBuZXcgU2V0KCk7XG4gIHZhciByZXN1bWVkQm91bmRhcnkgPSBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KHJlcXVlc3QsIGZhbGxiYWNrQWJvcnRTZXQpO1xuICByZXN1bWVkQm91bmRhcnkucGFyZW50Rmx1c2hlZCA9IHRydWU7IC8vIFdlIHJlc3RvcmUgdGhlIHNhbWUgaWQgb2YgdGhpcyBib3VuZGFyeSBhcyB3YXMgdXNlZCBkdXJpbmcgcHJlcmVuZGVyLlxuXG4gIHJlc3VtZWRCb3VuZGFyeS5yb290U2VnbWVudElEID0gaWQ7IC8vIFdlIGNhbiByZXVzZSB0aGUgY3VycmVudCBjb250ZXh0IGFuZCB0YXNrIHRvIHJlbmRlciB0aGUgY29udGVudCBpbW1lZGlhdGVseSB3aXRob3V0XG4gIC8vIGNvbnRleHQgc3dpdGNoaW5nLiBXZSBqdXN0IG5lZWQgdG8gdGVtcG9yYXJpbHkgc3dpdGNoIHdoaWNoIGJvdW5kYXJ5IGFuZCByZXBsYXkgbm9kZVxuICAvLyB3ZSdyZSB3cml0aW5nIHRvLiBJZiBzb21ldGhpbmcgc3VzcGVuZHMsIGl0J2xsIHNwYXduIG5ldyBzdXNwZW5kZWQgdGFzayB3aXRoIHRoYXQgY29udGV4dC5cblxuICB0YXNrLmJsb2NrZWRCb3VuZGFyeSA9IHJlc3VtZWRCb3VuZGFyeTtcbiAgdGFzay5yZXBsYXkgPSB7XG4gICAgbm9kZXM6IGNoaWxkTm9kZXMsXG4gICAgc2xvdHM6IGNoaWxkU2xvdHMsXG4gICAgcGVuZGluZ1Rhc2tzOiAxXG4gIH07XG5cbiAge1xuICAgIHNldEN1cnJlbnRseVJlbmRlcmluZ0JvdW5kYXJ5UmVzb3VyY2VzVGFyZ2V0KHJlcXVlc3QucmVuZGVyU3RhdGUsIHJlc3VtZWRCb3VuZGFyeS5yZXNvdXJjZXMpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBXZSB1c2UgdGhlIHNhZmUgZm9ybSBiZWNhdXNlIHdlIGRvbid0IGhhbmRsZSBzdXNwZW5kaW5nIGhlcmUuIE9ubHkgZXJyb3IgaGFuZGxpbmcuXG4gICAgcmVuZGVyTm9kZShyZXF1ZXN0LCB0YXNrLCBjb250ZW50LCAtMSk7XG5cbiAgICBpZiAodGFzay5yZXBsYXkucGVuZGluZ1Rhc2tzID09PSAxICYmIHRhc2sucmVwbGF5Lm5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYWxsIHJlc3VtYWJsZSBzbG90cyBieSBrZXkvaW5kZXggZHVyaW5nIHJlcGxheWluZy4gXCIgKyBcIlRoZSB0cmVlIGRvZXNuJ3QgbWF0Y2ggc28gUmVhY3Qgd2lsbCBmYWxsYmFjayB0byBjbGllbnQgcmVuZGVyaW5nLlwiKTtcbiAgICB9XG5cbiAgICB0YXNrLnJlcGxheS5wZW5kaW5nVGFza3MtLTtcblxuICAgIGlmIChyZXN1bWVkQm91bmRhcnkucGVuZGluZ1Rhc2tzID09PSAwICYmIHJlc3VtZWRCb3VuZGFyeS5zdGF0dXMgPT09IFBFTkRJTkcpIHtcbiAgICAgIC8vIFRoaXMgbXVzdCBoYXZlIGJlZW4gdGhlIGxhc3Qgc2VnbWVudCB3ZSB3ZXJlIHdhaXRpbmcgb24uIFRoaXMgYm91bmRhcnkgaXMgbm93IGNvbXBsZXRlLlxuICAgICAgLy8gVGhlcmVmb3JlIHdlIHdvbid0IG5lZWQgdGhlIGZhbGxiYWNrLiBXZSBlYXJseSByZXR1cm4gc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGNyZWF0ZVxuICAgICAgLy8gdGhlIGZhbGxiYWNrLlxuICAgICAgcmVzdW1lZEJvdW5kYXJ5LnN0YXR1cyA9IENPTVBMRVRFRDtcbiAgICAgIHJlcXVlc3QuY29tcGxldGVkQm91bmRhcmllcy5wdXNoKHJlc3VtZWRCb3VuZGFyeSk7IC8vIFdlIHJlc3RvcmUgdGhlIHBhcmVudCBjb21wb25lbnRTdGFjay4gU2VtYW50aWNhbGx5IHRoaXMgaXMgdGhlIHNhbWUgYXNcbiAgICAgIC8vIHBvcENvbXBvbmVudFN0YWNrKHRhc2spIGJ1dCB3ZSBkbyB0aGlzIGluc3RlYWQgYmVjYXVzZSBpdCBzaG91bGQgYmUgc2xpZ2h0bHlcbiAgICAgIC8vIGZhc3RlclxuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlc3VtZWRCb3VuZGFyeS5zdGF0dXMgPSBDTElFTlRfUkVOREVSRUQ7XG4gICAgdmFyIHRocm93bkluZm8gPSBnZXRUaHJvd25JbmZvKHJlcXVlc3QsIHRhc2suY29tcG9uZW50U3RhY2spO1xuICAgIHZhciBlcnJvckRpZ2VzdDtcblxuICAgIHtcbiAgICAgIGVycm9yRGlnZXN0ID0gbG9nUmVjb3ZlcmFibGVFcnJvcihyZXF1ZXN0LCBlcnJvciwgdGhyb3duSW5mbyk7XG4gICAgfVxuXG4gICAgZW5jb2RlRXJyb3JGb3JCb3VuZGFyeShyZXN1bWVkQm91bmRhcnksIGVycm9yRGlnZXN0LCBlcnJvciwgdGhyb3duSW5mbyk7XG4gICAgdGFzay5yZXBsYXkucGVuZGluZ1Rhc2tzLS07IC8vIFRoZSBwYXJlbnQgYWxyZWFkeSBmbHVzaGVkIGluIHRoZSBwcmVyZW5kZXIgc28gd2UgbmVlZCB0byBzY2hlZHVsZSB0aGlzIHRvIGJlIGVtaXR0ZWQuXG5cbiAgICByZXF1ZXN0LmNsaWVudFJlbmRlcmVkQm91bmRhcmllcy5wdXNoKHJlc3VtZWRCb3VuZGFyeSk7IC8vIFdlIGRvbid0IG5lZWQgdG8gZGVjcmVtZW50IGFueSB0YXNrIG51bWJlcnMgYmVjYXVzZSB3ZSBkaWRuJ3Qgc3Bhd24gYW55IG5ldyB0YXNrLlxuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gc2NoZWR1bGUgYW55IHRhc2sgYmVjYXVzZSB3ZSBrbm93IHRoZSBwYXJlbnQgaGFzIHdyaXR0ZW4geWV0LlxuICAgIC8vIFdlIGRvIG5lZWQgdG8gZmFsbHRocm91Z2ggdG8gY3JlYXRlIHRoZSBmYWxsYmFjayB0aG91Z2guXG4gIH0gZmluYWxseSB7XG4gICAge1xuICAgICAgc2V0Q3VycmVudGx5UmVuZGVyaW5nQm91bmRhcnlSZXNvdXJjZXNUYXJnZXQocmVxdWVzdC5yZW5kZXJTdGF0ZSwgcGFyZW50Qm91bmRhcnkgPyBwYXJlbnRCb3VuZGFyeS5yZXNvdXJjZXMgOiBudWxsKTtcbiAgICB9XG5cbiAgICB0YXNrLmJsb2NrZWRCb3VuZGFyeSA9IHBhcmVudEJvdW5kYXJ5O1xuICAgIHRhc2sucmVwbGF5ID0gcHJldmlvdXNSZXBsYXlTZXQ7XG4gICAgdGFzay5rZXlQYXRoID0gcHJldktleVBhdGg7XG4gICAgdGFzay5jb21wb25lbnRTdGFjayA9IHByZXZpb3VzQ29tcG9uZW50U3RhY2s7XG4gIH1cblxuICB2YXIgZmFsbGJhY2tLZXlQYXRoID0gW2tleVBhdGhbMF0sICdTdXNwZW5zZSBGYWxsYmFjaycsIGtleVBhdGhbMl1dOyAvLyBXZSBjcmVhdGUgc3VzcGVuZGVkIHRhc2sgZm9yIHRoZSBmYWxsYmFjayBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gYWN0dWFsbHkgd29ya1xuICAvLyBvbiBpdCB5ZXQgaW4gY2FzZSB3ZSBmaW5pc2ggdGhlIG1haW4gY29udGVudCwgc28gd2UgcXVldWUgZm9yIGxhdGVyLlxuXG4gIHZhciBmYWxsYmFja1JlcGxheSA9IHtcbiAgICBub2RlczogZmFsbGJhY2tOb2RlcyxcbiAgICBzbG90czogZmFsbGJhY2tTbG90cyxcbiAgICBwZW5kaW5nVGFza3M6IDBcbiAgfTtcbiAgdmFyIHN1c3BlbmRlZEZhbGxiYWNrVGFzayA9IGNyZWF0ZVJlcGxheVRhc2socmVxdWVzdCwgbnVsbCwgZmFsbGJhY2tSZXBsYXksIGZhbGxiYWNrLCAtMSwgcGFyZW50Qm91bmRhcnksIGZhbGxiYWNrQWJvcnRTZXQsIGZhbGxiYWNrS2V5UGF0aCwgdGFzay5mb3JtYXRDb250ZXh0LCB0YXNrLmxlZ2FjeUNvbnRleHQsIHRhc2suY29udGV4dCwgdGFzay50cmVlQ29udGV4dCwgLy8gVGhpcyBzdGFjayBzaG91bGQgYmUgdGhlIFN1c3BlbnNlIGJvdW5kYXJ5IHN0YWNrIGJlY2F1c2Ugd2hpbGUgdGhlIGZhbGxiYWNrIGlzIGFjdHVhbGx5IGEgY2hpbGQgc2VnbWVudFxuICAvLyBvZiB0aGUgcGFyZW50IGJvdW5kYXJ5IGZyb20gYSBjb21wb25lbnQgc3RhbmRwb2ludCB0aGUgZmFsbGJhY2sgaXMgYSBjaGlsZCBvZiB0aGUgU3VzcGVuc2UgYm91bmRhcnkgaXRzZWxmXG4gIHN1c3BlbnNlQ29tcG9uZW50U3RhY2spOyAvLyBUT0RPOiBUaGlzIHNob3VsZCBiZSBxdWV1ZWQgYXQgYSBzZXBhcmF0ZSBsb3dlciBwcmlvcml0eSBxdWV1ZSBzbyB0aGF0IHdlIG9ubHkgd29ya1xuICAvLyBvbiBwcmVwYXJpbmcgZmFsbGJhY2tzIGlmIHdlIGRvbid0IGhhdmUgYW55IG1vcmUgbWFpbiBjb250ZW50IHRvIHRhc2sgb24uXG5cbiAgcmVxdWVzdC5waW5nZWRUYXNrcy5wdXNoKHN1c3BlbmRlZEZhbGxiYWNrVGFzayk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckhvc3RFbGVtZW50KHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIHR5cGUsIHByb3BzKSB7XG4gIHZhciBwcmV2aW91c0NvbXBvbmVudFN0YWNrID0gdGFzay5jb21wb25lbnRTdGFjaztcbiAgdGFzay5jb21wb25lbnRTdGFjayA9IGNyZWF0ZUJ1aWx0SW5Db21wb25lbnRTdGFjayh0YXNrLCB0eXBlKTtcbiAgdmFyIHNlZ21lbnQgPSB0YXNrLmJsb2NrZWRTZWdtZW50O1xuXG4gIGlmIChzZWdtZW50ID09PSBudWxsKSB7XG4gICAgLy8gUmVwbGF5XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47IC8vIFRPRE86IE1ha2UgdGhpcyBhIENvbmZpZyBmb3IgcmVwbGF5aW5nLlxuXG4gICAgdmFyIHByZXZDb250ZXh0ID0gdGFzay5mb3JtYXRDb250ZXh0O1xuICAgIHZhciBwcmV2S2V5UGF0aCA9IHRhc2sua2V5UGF0aDtcbiAgICB0YXNrLmZvcm1hdENvbnRleHQgPSBnZXRDaGlsZEZvcm1hdENvbnRleHQocHJldkNvbnRleHQsIHR5cGUsIHByb3BzKTtcbiAgICB0YXNrLmtleVBhdGggPSBrZXlQYXRoOyAvLyBXZSB1c2UgdGhlIG5vbi1kZXN0cnVjdGl2ZSBmb3JtIGJlY2F1c2UgaWYgc29tZXRoaW5nIHN1c3BlbmRzLCB3ZSBzdGlsbFxuICAgIC8vIG5lZWQgdG8gcG9wIGJhY2sgdXAgYW5kIGZpbmlzaCB0aGlzIHN1YnRyZWUgb2YgSFRNTC5cblxuICAgIHJlbmRlck5vZGUocmVxdWVzdCwgdGFzaywgY2hpbGRyZW4sIC0xKTsgLy8gV2UgZXhwZWN0IHRoYXQgZXJyb3JzIHdpbGwgZmF0YWwgdGhlIHdob2xlIHRhc2sgYW5kIHRoYXQgd2UgZG9uJ3QgbmVlZFxuICAgIC8vIHRoZSBjb3JyZWN0IGNvbnRleHQuIFRoZXJlZm9yZSB0aGlzIGlzIG5vdCBpbiBhIGZpbmFsbHkuXG5cbiAgICB0YXNrLmZvcm1hdENvbnRleHQgPSBwcmV2Q29udGV4dDtcbiAgICB0YXNrLmtleVBhdGggPSBwcmV2S2V5UGF0aDtcbiAgfSBlbHNlIHtcbiAgICAvLyBSZW5kZXJcbiAgICB2YXIgX2NoaWxkcmVuID0gcHVzaFN0YXJ0SW5zdGFuY2Uoc2VnbWVudC5jaHVua3MsIHR5cGUsIHByb3BzLCByZXF1ZXN0LnJlc3VtYWJsZVN0YXRlLCByZXF1ZXN0LnJlbmRlclN0YXRlLCB0YXNrLmZvcm1hdENvbnRleHQsIHNlZ21lbnQubGFzdFB1c2hlZFRleHQpO1xuXG4gICAgc2VnbWVudC5sYXN0UHVzaGVkVGV4dCA9IGZhbHNlO1xuICAgIHZhciBfcHJldkNvbnRleHQgPSB0YXNrLmZvcm1hdENvbnRleHQ7XG4gICAgdmFyIF9wcmV2S2V5UGF0aDIgPSB0YXNrLmtleVBhdGg7XG4gICAgdGFzay5mb3JtYXRDb250ZXh0ID0gZ2V0Q2hpbGRGb3JtYXRDb250ZXh0KF9wcmV2Q29udGV4dCwgdHlwZSwgcHJvcHMpO1xuICAgIHRhc2sua2V5UGF0aCA9IGtleVBhdGg7IC8vIFdlIHVzZSB0aGUgbm9uLWRlc3RydWN0aXZlIGZvcm0gYmVjYXVzZSBpZiBzb21ldGhpbmcgc3VzcGVuZHMsIHdlIHN0aWxsXG4gICAgLy8gbmVlZCB0byBwb3AgYmFjayB1cCBhbmQgZmluaXNoIHRoaXMgc3VidHJlZSBvZiBIVE1MLlxuXG4gICAgcmVuZGVyTm9kZShyZXF1ZXN0LCB0YXNrLCBfY2hpbGRyZW4sIC0xKTsgLy8gV2UgZXhwZWN0IHRoYXQgZXJyb3JzIHdpbGwgZmF0YWwgdGhlIHdob2xlIHRhc2sgYW5kIHRoYXQgd2UgZG9uJ3QgbmVlZFxuICAgIC8vIHRoZSBjb3JyZWN0IGNvbnRleHQuIFRoZXJlZm9yZSB0aGlzIGlzIG5vdCBpbiBhIGZpbmFsbHkuXG5cbiAgICB0YXNrLmZvcm1hdENvbnRleHQgPSBfcHJldkNvbnRleHQ7XG4gICAgdGFzay5rZXlQYXRoID0gX3ByZXZLZXlQYXRoMjtcbiAgICBwdXNoRW5kSW5zdGFuY2Uoc2VnbWVudC5jaHVua3MsIHR5cGUsIHByb3BzLCByZXF1ZXN0LnJlc3VtYWJsZVN0YXRlLCBfcHJldkNvbnRleHQpO1xuICAgIHNlZ21lbnQubGFzdFB1c2hlZFRleHQgPSBmYWxzZTtcbiAgfVxuXG4gIHRhc2suY29tcG9uZW50U3RhY2sgPSBwcmV2aW91c0NvbXBvbmVudFN0YWNrO1xufVxuXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gIHJldHVybiBDb21wb25lbnQucHJvdG90eXBlICYmIENvbXBvbmVudC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyV2l0aEhvb2tzKHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIHByZXZUaGVuYWJsZVN0YXRlLCBDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcpIHtcbiAgdmFyIGNvbXBvbmVudElkZW50aXR5ID0ge307XG4gIHByZXBhcmVUb1VzZUhvb2tzKHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIGNvbXBvbmVudElkZW50aXR5LCBwcmV2VGhlbmFibGVTdGF0ZSk7XG4gIHZhciByZXN1bHQgPSBDb21wb25lbnQocHJvcHMsIHNlY29uZEFyZyk7XG4gIHJldHVybiBmaW5pc2hIb29rcyhDb21wb25lbnQsIHByb3BzLCByZXN1bHQsIHNlY29uZEFyZyk7XG59XG5cbmZ1bmN0aW9uIGZpbmlzaENsYXNzQ29tcG9uZW50KHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIGluc3RhbmNlLCBDb21wb25lbnQsIHByb3BzKSB7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSBpbnN0YW5jZS5yZW5kZXIoKTtcblxuICB7XG4gICAgaWYgKGluc3RhbmNlLnByb3BzICE9PSBwcm9wcykge1xuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzKSB7XG4gICAgICAgIGVycm9yKCdJdCBsb29rcyBsaWtlICVzIGlzIHJlYXNzaWduaW5nIGl0cyBvd24gYHRoaXMucHJvcHNgIHdoaWxlIHJlbmRlcmluZy4gJyArICdUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgYW5kIGNhbiBsZWFkIHRvIGNvbmZ1c2luZyBidWdzLicsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdhIGNvbXBvbmVudCcpO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgdmFyIGNoaWxkQ29udGV4dFR5cGVzID0gQ29tcG9uZW50LmNoaWxkQ29udGV4dFR5cGVzO1xuXG4gICAgaWYgKGNoaWxkQ29udGV4dFR5cGVzICE9PSBudWxsICYmIGNoaWxkQ29udGV4dFR5cGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciBwcmV2aW91c0NvbnRleHQgPSB0YXNrLmxlZ2FjeUNvbnRleHQ7XG4gICAgICB2YXIgbWVyZ2VkQ29udGV4dCA9IHByb2Nlc3NDaGlsZENvbnRleHQoaW5zdGFuY2UsIENvbXBvbmVudCwgcHJldmlvdXNDb250ZXh0LCBjaGlsZENvbnRleHRUeXBlcyk7XG4gICAgICB0YXNrLmxlZ2FjeUNvbnRleHQgPSBtZXJnZWRDb250ZXh0O1xuICAgICAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIG51bGwsIG5leHRDaGlsZHJlbiwgLTEpO1xuICAgICAgdGFzay5sZWdhY3lDb250ZXh0ID0gcHJldmlvdXNDb250ZXh0O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHZhciBwcmV2S2V5UGF0aCA9IHRhc2sua2V5UGF0aDtcbiAgdGFzay5rZXlQYXRoID0ga2V5UGF0aDtcbiAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIG51bGwsIG5leHRDaGlsZHJlbiwgLTEpO1xuICB0YXNrLmtleVBhdGggPSBwcmV2S2V5UGF0aDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQ2xhc3NDb21wb25lbnQocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgQ29tcG9uZW50LCBwcm9wcykge1xuICB2YXIgcHJldmlvdXNDb21wb25lbnRTdGFjayA9IHRhc2suY29tcG9uZW50U3RhY2s7XG4gIHRhc2suY29tcG9uZW50U3RhY2sgPSBjcmVhdGVDbGFzc0NvbXBvbmVudFN0YWNrKHRhc2ssIENvbXBvbmVudCk7XG4gIHZhciBtYXNrZWRDb250ZXh0ID0gZ2V0TWFza2VkQ29udGV4dChDb21wb25lbnQsIHRhc2subGVnYWN5Q29udGV4dCkgO1xuICB2YXIgaW5zdGFuY2UgPSBjb25zdHJ1Y3RDbGFzc0luc3RhbmNlKENvbXBvbmVudCwgcHJvcHMsIG1hc2tlZENvbnRleHQpO1xuICBtb3VudENsYXNzSW5zdGFuY2UoaW5zdGFuY2UsIENvbXBvbmVudCwgcHJvcHMsIG1hc2tlZENvbnRleHQpO1xuICBmaW5pc2hDbGFzc0NvbXBvbmVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBpbnN0YW5jZSwgQ29tcG9uZW50LCBwcm9wcyk7XG4gIHRhc2suY29tcG9uZW50U3RhY2sgPSBwcmV2aW91c0NvbXBvbmVudFN0YWNrO1xufVxuXG52YXIgZGlkV2FybkFib3V0QmFkQ2xhc3MgPSB7fTtcbnZhciBkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50ID0ge307XG52YXIgZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50ID0ge307XG52YXIgZGlkV2FybkFib3V0R2V0RGVyaXZlZFN0YXRlT25GdW5jdGlvbkNvbXBvbmVudCA9IHt9O1xudmFyIGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgPSBmYWxzZTtcbnZhciBkaWRXYXJuQWJvdXREZWZhdWx0UHJvcHNPbkZ1bmN0aW9uQ29tcG9uZW50ID0ge307XG52YXIgZGlkV2FybkFib3V0R2VuZXJhdG9ycyA9IGZhbHNlO1xudmFyIGRpZFdhcm5BYm91dE1hcHMgPSBmYWxzZTtcbnZhciBoYXNXYXJuZWRBYm91dFVzaW5nQ29udGV4dEFzQ29uc3VtZXIgPSBmYWxzZTsgLy8gVGhpcyB3b3VsZCB0eXBpY2FsbHkgYmUgYSBmdW5jdGlvbiBjb21wb25lbnQgYnV0IHdlIHN0aWxsIHN1cHBvcnQgbW9kdWxlIHBhdHRlcm5cbi8vIGNvbXBvbmVudHMgZm9yIHNvbWUgcmVhc29uLlxuXG5mdW5jdGlvbiByZW5kZXJJbmRldGVybWluYXRlQ29tcG9uZW50KHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIHByZXZUaGVuYWJsZVN0YXRlLCBDb21wb25lbnQsIHByb3BzKSB7XG4gIHZhciBsZWdhY3lDb250ZXh0O1xuXG4gIHtcbiAgICBsZWdhY3lDb250ZXh0ID0gZ2V0TWFza2VkQ29udGV4dChDb21wb25lbnQsIHRhc2subGVnYWN5Q29udGV4dCk7XG4gIH1cblxuICB2YXIgcHJldmlvdXNDb21wb25lbnRTdGFjayA9IHRhc2suY29tcG9uZW50U3RhY2s7XG4gIHRhc2suY29tcG9uZW50U3RhY2sgPSBjcmVhdGVGdW5jdGlvbkNvbXBvbmVudFN0YWNrKHRhc2ssIENvbXBvbmVudCk7XG5cbiAge1xuICAgIGlmIChDb21wb25lbnQucHJvdG90eXBlICYmIHR5cGVvZiBDb21wb25lbnQucHJvdG90eXBlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAnVW5rbm93bic7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0QmFkQ2xhc3NbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZXJyb3IoXCJUaGUgPCVzIC8+IGNvbXBvbmVudCBhcHBlYXJzIHRvIGhhdmUgYSByZW5kZXIgbWV0aG9kLCBidXQgZG9lc24ndCBleHRlbmQgUmVhY3QuQ29tcG9uZW50LiBcIiArICdUaGlzIGlzIGxpa2VseSB0byBjYXVzZSBlcnJvcnMuIENoYW5nZSAlcyB0byBleHRlbmQgUmVhY3QuQ29tcG9uZW50IGluc3RlYWQuJywgY29tcG9uZW50TmFtZSwgY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgZGlkV2FybkFib3V0QmFkQ2xhc3NbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciB2YWx1ZSA9IHJlbmRlcldpdGhIb29rcyhyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcmV2VGhlbmFibGVTdGF0ZSwgQ29tcG9uZW50LCBwcm9wcywgbGVnYWN5Q29udGV4dCk7XG4gIHZhciBoYXNJZCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gIHZhciBmb3JtU3RhdGVDb3VudCA9IGdldEZvcm1TdGF0ZUNvdW50KCk7XG4gIHZhciBmb3JtU3RhdGVNYXRjaGluZ0luZGV4ID0gZ2V0Rm9ybVN0YXRlTWF0Y2hpbmdJbmRleCgpO1xuXG4gIHtcbiAgICAvLyBTdXBwb3J0IGZvciBtb2R1bGUgY29tcG9uZW50cyBpcyBkZXByZWNhdGVkIGFuZCBpcyByZW1vdmVkIGJlaGluZCBhIGZsYWcuXG4gICAgLy8gV2hldGhlciBvciBub3QgaXQgd291bGQgY3Jhc2ggbGF0ZXIsIHdlIHdhbnQgdG8gc2hvdyBhIGdvb2QgbWVzc2FnZSBpbiBERVYgZmlyc3QuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJyAmJiB2YWx1ZS4kJHR5cGVvZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgX2NvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAnVW5rbm93bic7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0TW9kdWxlUGF0dGVybkNvbXBvbmVudFtfY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZXJyb3IoJ1RoZSA8JXMgLz4gY29tcG9uZW50IGFwcGVhcnMgdG8gYmUgYSBmdW5jdGlvbiBjb21wb25lbnQgdGhhdCByZXR1cm5zIGEgY2xhc3MgaW5zdGFuY2UuICcgKyAnQ2hhbmdlICVzIHRvIGEgY2xhc3MgdGhhdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCBpbnN0ZWFkLiAnICsgXCJJZiB5b3UgY2FuJ3QgdXNlIGEgY2xhc3MgdHJ5IGFzc2lnbmluZyB0aGUgcHJvdG90eXBlIG9uIHRoZSBmdW5jdGlvbiBhcyBhIHdvcmthcm91bmQuIFwiICsgXCJgJXMucHJvdG90eXBlID0gUmVhY3QuQ29tcG9uZW50LnByb3RvdHlwZWAuIERvbid0IHVzZSBhbiBhcnJvdyBmdW5jdGlvbiBzaW5jZSBpdCBcIiArICdjYW5ub3QgYmUgY2FsbGVkIHdpdGggYG5ld2AgYnkgUmVhY3QuJywgX2NvbXBvbmVudE5hbWUsIF9jb21wb25lbnROYW1lLCBfY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgZGlkV2FybkFib3V0TW9kdWxlUGF0dGVybkNvbXBvbmVudFtfY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICggLy8gUnVuIHRoZXNlIGNoZWNrcyBpbiBwcm9kdWN0aW9uIG9ubHkgaWYgdGhlIGZsYWcgaXMgb2ZmLlxuICAvLyBFdmVudHVhbGx5IHdlJ2xsIGRlbGV0ZSB0aGlzIGJyYW5jaCBhbHRvZ2V0aGVyLlxuICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZS5yZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsdWUuJCR0eXBlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgIHtcbiAgICAgIHZhciBfY29tcG9uZW50TmFtZTIgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAnVW5rbm93bic7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0TW9kdWxlUGF0dGVybkNvbXBvbmVudFtfY29tcG9uZW50TmFtZTJdKSB7XG4gICAgICAgIGVycm9yKCdUaGUgPCVzIC8+IGNvbXBvbmVudCBhcHBlYXJzIHRvIGJlIGEgZnVuY3Rpb24gY29tcG9uZW50IHRoYXQgcmV0dXJucyBhIGNsYXNzIGluc3RhbmNlLiAnICsgJ0NoYW5nZSAlcyB0byBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgaW5zdGVhZC4gJyArIFwiSWYgeW91IGNhbid0IHVzZSBhIGNsYXNzIHRyeSBhc3NpZ25pbmcgdGhlIHByb3RvdHlwZSBvbiB0aGUgZnVuY3Rpb24gYXMgYSB3b3JrYXJvdW5kLiBcIiArIFwiYCVzLnByb3RvdHlwZSA9IFJlYWN0LkNvbXBvbmVudC5wcm90b3R5cGVgLiBEb24ndCB1c2UgYW4gYXJyb3cgZnVuY3Rpb24gc2luY2UgaXQgXCIgKyAnY2Fubm90IGJlIGNhbGxlZCB3aXRoIGBuZXdgIGJ5IFJlYWN0LicsIF9jb21wb25lbnROYW1lMiwgX2NvbXBvbmVudE5hbWUyLCBfY29tcG9uZW50TmFtZTIpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnRbX2NvbXBvbmVudE5hbWUyXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbW91bnRDbGFzc0luc3RhbmNlKHZhbHVlLCBDb21wb25lbnQsIHByb3BzLCBsZWdhY3lDb250ZXh0KTtcbiAgICBmaW5pc2hDbGFzc0NvbXBvbmVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCB2YWx1ZSwgQ29tcG9uZW50LCBwcm9wcyk7XG4gIH0gZWxzZSB7XG5cbiAgICB7XG4gICAgICB2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYoQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBmaW5pc2hGdW5jdGlvbkNvbXBvbmVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCB2YWx1ZSwgaGFzSWQsIGZvcm1TdGF0ZUNvdW50LCBmb3JtU3RhdGVNYXRjaGluZ0luZGV4KTtcbiAgfVxuXG4gIHRhc2suY29tcG9uZW50U3RhY2sgPSBwcmV2aW91c0NvbXBvbmVudFN0YWNrO1xufVxuXG5mdW5jdGlvbiBmaW5pc2hGdW5jdGlvbkNvbXBvbmVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBjaGlsZHJlbiwgaGFzSWQsIGZvcm1TdGF0ZUNvdW50LCBmb3JtU3RhdGVNYXRjaGluZ0luZGV4KSB7XG4gIHZhciBkaWRFbWl0Rm9ybVN0YXRlTWFya2VycyA9IGZhbHNlO1xuXG4gIGlmIChmb3JtU3RhdGVDb3VudCAhPT0gMCAmJiByZXF1ZXN0LmZvcm1TdGF0ZSAhPT0gbnVsbCkge1xuICAgIC8vIEZvciBlYWNoIHVzZUZvcm1TdGF0ZSBob29rLCBlbWl0IGEgbWFya2VyIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgd2VcbiAgICAvLyByZW5kZXJlZCB1c2luZyB0aGUgZm9ybSBzdGF0ZSBwYXNzZWQgYXQgdGhlIHJvb3QuIFdlIG9ubHkgZW1pdCB0aGVzZVxuICAgIC8vIG1hcmtlcnMgaWYgZm9ybSBzdGF0ZSBpcyBwYXNzZWQgYXQgdGhlIHJvb3QuXG4gICAgdmFyIHNlZ21lbnQgPSB0YXNrLmJsb2NrZWRTZWdtZW50O1xuXG4gICAgaWYgKHNlZ21lbnQgPT09IG51bGwpIDsgZWxzZSB7XG4gICAgICBkaWRFbWl0Rm9ybVN0YXRlTWFya2VycyA9IHRydWU7XG4gICAgICB2YXIgdGFyZ2V0ID0gc2VnbWVudC5jaHVua3M7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybVN0YXRlQ291bnQ7IGkrKykge1xuICAgICAgICBpZiAoaSA9PT0gZm9ybVN0YXRlTWF0Y2hpbmdJbmRleCkge1xuICAgICAgICAgIHB1c2hGb3JtU3RhdGVNYXJrZXJJc01hdGNoaW5nKHRhcmdldCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHVzaEZvcm1TdGF0ZU1hcmtlcklzTm90TWF0Y2hpbmcodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBwcmV2S2V5UGF0aCA9IHRhc2sua2V5UGF0aDtcbiAgdGFzay5rZXlQYXRoID0ga2V5UGF0aDtcblxuICBpZiAoaGFzSWQpIHtcbiAgICAvLyBUaGlzIGNvbXBvbmVudCBtYXRlcmlhbGl6ZWQgYW4gaWQuIFdlIHRyZWF0IHRoaXMgYXMgaXRzIG93biBsZXZlbCwgd2l0aFxuICAgIC8vIGEgc2luZ2xlIFwiY2hpbGRcIiBzbG90LlxuICAgIHZhciBwcmV2VHJlZUNvbnRleHQgPSB0YXNrLnRyZWVDb250ZXh0O1xuICAgIHZhciB0b3RhbENoaWxkcmVuID0gMTtcbiAgICB2YXIgaW5kZXggPSAwOyAvLyBNb2RpZnkgdGhlIGlkIGNvbnRleHQuIEJlY2F1c2Ugd2UnbGwgbmVlZCB0byByZXNldCB0aGlzIGlmIHNvbWV0aGluZ1xuICAgIC8vIHN1c3BlbmRzIG9yIGVycm9ycywgd2UnbGwgdXNlIHRoZSBub24tZGVzdHJ1Y3RpdmUgcmVuZGVyIHBhdGguXG5cbiAgICB0YXNrLnRyZWVDb250ZXh0ID0gcHVzaFRyZWVDb250ZXh0KHByZXZUcmVlQ29udGV4dCwgdG90YWxDaGlsZHJlbiwgaW5kZXgpO1xuICAgIHJlbmRlck5vZGUocmVxdWVzdCwgdGFzaywgY2hpbGRyZW4sIC0xKTsgLy8gTGlrZSB0aGUgb3RoZXIgY29udGV4dHMsIHRoaXMgZG9lcyBub3QgbmVlZCB0byBiZSBpbiBhIGZpbmFsbHkgYmxvY2tcbiAgICAvLyBiZWNhdXNlIHJlbmRlck5vZGUgdGFrZXMgY2FyZSBvZiB1bndpbmRpbmcgdGhlIHN0YWNrLlxuXG4gICAgdGFzay50cmVlQ29udGV4dCA9IHByZXZUcmVlQ29udGV4dDtcbiAgfSBlbHNlIGlmIChkaWRFbWl0Rm9ybVN0YXRlTWFya2Vycykge1xuICAgIC8vIElmIHRoZXJlIHdlcmUgZm9ybVN0YXRlIGhvb2tzLCB3ZSBtdXN0IHVzZSB0aGUgbm9uLWRlc3RydWN0aXZlIHBhdGhcbiAgICAvLyBiZWNhdXNlIHRoaXMgY29tcG9uZW50IGlzIG5vdCBhIHB1cmUgaW5kaXJlY3Rpb247IHdlIGVtaXR0ZWQgbWFya2Vyc1xuICAgIC8vIHRvIHRoZSBzdHJlYW0uXG4gICAgcmVuZGVyTm9kZShyZXF1ZXN0LCB0YXNrLCBjaGlsZHJlbiwgLTEpO1xuICB9IGVsc2Uge1xuICAgIC8vIFdlJ3JlIG5vdyBzdWNjZXNzZnVsbHkgcGFzdCB0aGlzIHRhc2ssIGFuZCB3ZSBoYXZlbid0IG1vZGlmaWVkIHRoZVxuICAgIC8vIGNvbnRleHQgc3RhY2suIFdlIGRvbid0IGhhdmUgdG8gcG9wIGJhY2sgdG8gdGhlIHByZXZpb3VzIHRhc2sgZXZlcnlcbiAgICAvLyBhZ2Fpbiwgc28gd2UgY2FuIHVzZSB0aGUgZGVzdHJ1Y3RpdmUgcmVjdXJzaXZlIGZvcm0uXG4gICAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIG51bGwsIGNoaWxkcmVuLCAtMSk7XG4gIH1cblxuICB0YXNrLmtleVBhdGggPSBwcmV2S2V5UGF0aDtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KENvbXBvbmVudCkge1xuICB7XG4gICAgaWYgKENvbXBvbmVudCkge1xuICAgICAgaWYgKENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcykge1xuICAgICAgICBlcnJvcignJXMoLi4uKTogY2hpbGRDb250ZXh0VHlwZXMgY2Fubm90IGJlIGRlZmluZWQgb24gYSBmdW5jdGlvbiBjb21wb25lbnQuJywgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoQ29tcG9uZW50LmRlZmF1bHRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXREZWZhdWx0UHJvcHNPbkZ1bmN0aW9uQ29tcG9uZW50W2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCclczogU3VwcG9ydCBmb3IgZGVmYXVsdFByb3BzIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGZ1bmN0aW9uIGNvbXBvbmVudHMgJyArICdpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBVc2UgSmF2YVNjcmlwdCBkZWZhdWx0IHBhcmFtZXRlcnMgaW5zdGVhZC4nLCBjb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXREZWZhdWx0UHJvcHNPbkZ1bmN0aW9uQ29tcG9uZW50W2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfY29tcG9uZW50TmFtZTMgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAnVW5rbm93bic7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0R2V0RGVyaXZlZFN0YXRlT25GdW5jdGlvbkNvbXBvbmVudFtfY29tcG9uZW50TmFtZTNdKSB7XG4gICAgICAgIGVycm9yKCclczogRnVuY3Rpb24gY29tcG9uZW50cyBkbyBub3Qgc3VwcG9ydCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuJywgX2NvbXBvbmVudE5hbWUzKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50W19jb21wb25lbnROYW1lM10gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgQ29tcG9uZW50LmNvbnRleHRUeXBlID09PSAnb2JqZWN0JyAmJiBDb21wb25lbnQuY29udGV4dFR5cGUgIT09IG51bGwpIHtcbiAgICAgIHZhciBfY29tcG9uZW50TmFtZTQgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAnVW5rbm93bic7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50W19jb21wb25lbnROYW1lNF0pIHtcbiAgICAgICAgZXJyb3IoJyVzOiBGdW5jdGlvbiBjb21wb25lbnRzIGRvIG5vdCBzdXBwb3J0IGNvbnRleHRUeXBlLicsIF9jb21wb25lbnROYW1lNCk7XG5cbiAgICAgICAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50W19jb21wb25lbnROYW1lNF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlRGVmYXVsdFByb3BzKENvbXBvbmVudCwgYmFzZVByb3BzKSB7XG4gIGlmIChDb21wb25lbnQgJiYgQ29tcG9uZW50LmRlZmF1bHRQcm9wcykge1xuICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wcy4gVGFrZW4gZnJvbSBSZWFjdEVsZW1lbnRcbiAgICB2YXIgcHJvcHMgPSBhc3NpZ24oe30sIGJhc2VQcm9wcyk7XG4gICAgdmFyIGRlZmF1bHRQcm9wcyA9IENvbXBvbmVudC5kZWZhdWx0UHJvcHM7XG5cbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBkZWZhdWx0UHJvcHMpIHtcbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBkZWZhdWx0UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcm9wcztcbiAgfVxuXG4gIHJldHVybiBiYXNlUHJvcHM7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckZvcndhcmRSZWYocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgcHJldlRoZW5hYmxlU3RhdGUsIHR5cGUsIHByb3BzLCByZWYpIHtcbiAgdmFyIHByZXZpb3VzQ29tcG9uZW50U3RhY2sgPSB0YXNrLmNvbXBvbmVudFN0YWNrO1xuICB0YXNrLmNvbXBvbmVudFN0YWNrID0gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRTdGFjayh0YXNrLCB0eXBlLnJlbmRlcik7XG4gIHZhciBjaGlsZHJlbiA9IHJlbmRlcldpdGhIb29rcyhyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcmV2VGhlbmFibGVTdGF0ZSwgdHlwZS5yZW5kZXIsIHByb3BzLCByZWYpO1xuICB2YXIgaGFzSWQgPSBjaGVja0RpZFJlbmRlcklkSG9vaygpO1xuICB2YXIgZm9ybVN0YXRlQ291bnQgPSBnZXRGb3JtU3RhdGVDb3VudCgpO1xuICB2YXIgZm9ybVN0YXRlTWF0Y2hpbmdJbmRleCA9IGdldEZvcm1TdGF0ZU1hdGNoaW5nSW5kZXgoKTtcbiAgZmluaXNoRnVuY3Rpb25Db21wb25lbnQocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgY2hpbGRyZW4sIGhhc0lkLCBmb3JtU3RhdGVDb3VudCwgZm9ybVN0YXRlTWF0Y2hpbmdJbmRleCk7XG4gIHRhc2suY29tcG9uZW50U3RhY2sgPSBwcmV2aW91c0NvbXBvbmVudFN0YWNrO1xufVxuXG5mdW5jdGlvbiByZW5kZXJNZW1vKHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIHByZXZUaGVuYWJsZVN0YXRlLCB0eXBlLCBwcm9wcywgcmVmKSB7XG4gIHZhciBpbm5lclR5cGUgPSB0eXBlLnR5cGU7XG4gIHZhciByZXNvbHZlZFByb3BzID0gcmVzb2x2ZURlZmF1bHRQcm9wcyhpbm5lclR5cGUsIHByb3BzKTtcbiAgcmVuZGVyRWxlbWVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcmV2VGhlbmFibGVTdGF0ZSwgaW5uZXJUeXBlLCByZXNvbHZlZFByb3BzLCByZWYpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJDb250ZXh0Q29uc3VtZXIocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgY29udGV4dCwgcHJvcHMpIHtcbiAgLy8gVGhlIGxvZ2ljIGJlbG93IGZvciBDb250ZXh0IGRpZmZlcnMgZGVwZW5kaW5nIG9uIFBST0Qgb3IgREVWIG1vZGUuIEluXG4gIC8vIERFViBtb2RlLCB3ZSBjcmVhdGUgYSBzZXBhcmF0ZSBvYmplY3QgZm9yIENvbnRleHQuQ29uc3VtZXIgdGhhdCBhY3RzXG4gIC8vIGxpa2UgYSBwcm94eSB0byBDb250ZXh0LiBUaGlzIHByb3h5IG9iamVjdCBhZGRzIHVubmVjZXNzYXJ5IGNvZGUgaW4gUFJPRFxuICAvLyBzbyB3ZSB1c2UgdGhlIG9sZCBiZWhhdmlvdXIgKENvbnRleHQuQ29uc3VtZXIgcmVmZXJlbmNlcyBDb250ZXh0KSB0b1xuICAvLyByZWR1Y2Ugc2l6ZSBhbmQgb3ZlcmhlYWQuIFRoZSBzZXBhcmF0ZSBvYmplY3QgcmVmZXJlbmNlcyBjb250ZXh0IHZpYVxuICAvLyBhIHByb3BlcnR5IGNhbGxlZCBcIl9jb250ZXh0XCIsIHdoaWNoIGFsc28gZ2l2ZXMgdXMgdGhlIGFiaWxpdHkgdG8gY2hlY2tcbiAgLy8gaW4gREVWIG1vZGUgaWYgdGhpcyBwcm9wZXJ0eSBleGlzdHMgb3Igbm90IGFuZCB3YXJuIGlmIGl0IGRvZXMgbm90LlxuICB7XG4gICAgaWYgKGNvbnRleHQuX2NvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gVGhpcyBtYXkgYmUgYmVjYXVzZSBpdCdzIGEgQ29udGV4dCAocmF0aGVyIHRoYW4gYSBDb25zdW1lcikuXG4gICAgICAvLyBPciBpdCBtYXkgYmUgYmVjYXVzZSBpdCdzIG9sZGVyIFJlYWN0IHdoZXJlIHRoZXkncmUgdGhlIHNhbWUgdGhpbmcuXG4gICAgICAvLyBXZSBvbmx5IHdhbnQgdG8gd2FybiBpZiB3ZSdyZSBzdXJlIGl0J3MgYSBuZXcgUmVhY3QuXG4gICAgICBpZiAoY29udGV4dCAhPT0gY29udGV4dC5Db25zdW1lcikge1xuICAgICAgICBpZiAoIWhhc1dhcm5lZEFib3V0VXNpbmdDb250ZXh0QXNDb25zdW1lcikge1xuICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdDb250ZXh0QXNDb25zdW1lciA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignUmVuZGVyaW5nIDxDb250ZXh0PiBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gJyArICdhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gcmVuZGVyIDxDb250ZXh0LkNvbnN1bWVyPiBpbnN0ZWFkPycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0Ll9jb250ZXh0O1xuICAgIH1cbiAgfVxuXG4gIHZhciByZW5kZXIgPSBwcm9wcy5jaGlsZHJlbjtcblxuICB7XG4gICAgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdBIGNvbnRleHQgY29uc3VtZXIgd2FzIHJlbmRlcmVkIHdpdGggbXVsdGlwbGUgY2hpbGRyZW4sIG9yIGEgY2hpbGQgJyArIFwidGhhdCBpc24ndCBhIGZ1bmN0aW9uLiBBIGNvbnRleHQgY29uc3VtZXIgZXhwZWN0cyBhIHNpbmdsZSBjaGlsZCBcIiArICd0aGF0IGlzIGEgZnVuY3Rpb24uIElmIHlvdSBkaWQgcGFzcyBhIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdGhlcmUgJyArICdpcyBubyB0cmFpbGluZyBvciBsZWFkaW5nIHdoaXRlc3BhY2UgYXJvdW5kIGl0LicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBuZXdWYWx1ZSA9IHJlYWRDb250ZXh0JDEoY29udGV4dCk7XG4gIHZhciBuZXdDaGlsZHJlbiA9IHJlbmRlcihuZXdWYWx1ZSk7XG4gIHZhciBwcmV2S2V5UGF0aCA9IHRhc2sua2V5UGF0aDtcbiAgdGFzay5rZXlQYXRoID0ga2V5UGF0aDtcbiAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIG51bGwsIG5ld0NoaWxkcmVuLCAtMSk7XG4gIHRhc2sua2V5UGF0aCA9IHByZXZLZXlQYXRoO1xufVxuXG5mdW5jdGlvbiByZW5kZXJDb250ZXh0UHJvdmlkZXIocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgdHlwZSwgcHJvcHMpIHtcbiAgdmFyIGNvbnRleHQgPSB0eXBlLl9jb250ZXh0O1xuICB2YXIgdmFsdWUgPSBwcm9wcy52YWx1ZTtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gIHZhciBwcmV2U25hcHNob3Q7XG5cbiAge1xuICAgIHByZXZTbmFwc2hvdCA9IHRhc2suY29udGV4dDtcbiAgfVxuXG4gIHZhciBwcmV2S2V5UGF0aCA9IHRhc2sua2V5UGF0aDtcbiAgdGFzay5jb250ZXh0ID0gcHVzaFByb3ZpZGVyKGNvbnRleHQsIHZhbHVlKTtcbiAgdGFzay5rZXlQYXRoID0ga2V5UGF0aDtcbiAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIG51bGwsIGNoaWxkcmVuLCAtMSk7XG4gIHRhc2suY29udGV4dCA9IHBvcFByb3ZpZGVyKGNvbnRleHQpO1xuICB0YXNrLmtleVBhdGggPSBwcmV2S2V5UGF0aDtcblxuICB7XG4gICAgaWYgKHByZXZTbmFwc2hvdCAhPT0gdGFzay5jb250ZXh0KSB7XG4gICAgICBlcnJvcignUG9wcGluZyB0aGUgY29udGV4dCBwcm92aWRlciBkaWQgbm90IHJldHVybiBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzbmFwc2hvdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyTGF6eUNvbXBvbmVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcmV2VGhlbmFibGVTdGF0ZSwgbGF6eUNvbXBvbmVudCwgcHJvcHMsIHJlZikge1xuICB2YXIgcHJldmlvdXNDb21wb25lbnRTdGFjayA9IHRhc2suY29tcG9uZW50U3RhY2s7XG4gIHRhc2suY29tcG9uZW50U3RhY2sgPSBjcmVhdGVCdWlsdEluQ29tcG9uZW50U3RhY2sodGFzaywgJ0xhenknKTtcbiAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG4gIHZhciBDb21wb25lbnQgPSBpbml0KHBheWxvYWQpO1xuICB2YXIgcmVzb2x2ZWRQcm9wcyA9IHJlc29sdmVEZWZhdWx0UHJvcHMoQ29tcG9uZW50LCBwcm9wcyk7XG4gIHJlbmRlckVsZW1lbnQocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgcHJldlRoZW5hYmxlU3RhdGUsIENvbXBvbmVudCwgcmVzb2x2ZWRQcm9wcywgcmVmKTtcbiAgdGFzay5jb21wb25lbnRTdGFjayA9IHByZXZpb3VzQ29tcG9uZW50U3RhY2s7XG59XG5cbmZ1bmN0aW9uIHJlbmRlck9mZnNjcmVlbihyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcm9wcykge1xuICB2YXIgbW9kZSA9IHByb3BzLm1vZGU7XG5cbiAgaWYgKG1vZGUgPT09ICdoaWRkZW4nKSA7IGVsc2Uge1xuICAgIC8vIEEgdmlzaWJsZSBPZmZzY3JlZW4gYm91bmRhcnkgaXMgdHJlYXRlZCBleGFjdGx5IGxpa2UgYSBmcmFnbWVudDogYVxuICAgIC8vIHB1cmUgaW5kaXJlY3Rpb24uXG4gICAgdmFyIHByZXZLZXlQYXRoID0gdGFzay5rZXlQYXRoO1xuICAgIHRhc2sua2V5UGF0aCA9IGtleVBhdGg7XG4gICAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIG51bGwsIHByb3BzLmNoaWxkcmVuLCAtMSk7XG4gICAgdGFzay5rZXlQYXRoID0gcHJldktleVBhdGg7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyRWxlbWVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcmV2VGhlbmFibGVTdGF0ZSwgdHlwZSwgcHJvcHMsIHJlZikge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoc2hvdWxkQ29uc3RydWN0KHR5cGUpKSB7XG4gICAgICByZW5kZXJDbGFzc0NvbXBvbmVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCB0eXBlLCBwcm9wcyk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbmRlckluZGV0ZXJtaW5hdGVDb21wb25lbnQocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgcHJldlRoZW5hYmxlU3RhdGUsIHR5cGUsIHByb3BzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmVuZGVySG9zdEVsZW1lbnQocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgdHlwZSwgcHJvcHMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIC8vIExlZ2FjeUhpZGRlbiBhY3RzIHRoZSBzYW1lIGFzIGEgZnJhZ21lbnQuIFRoaXMgb25seSB3b3JrcyBiZWNhdXNlIHdlXG4gICAgLy8gY3VycmVudGx5IGFzc3VtZSB0aGF0IGV2ZXJ5IGluc3RhbmNlIG9mIExlZ2FjeUhpZGRlbiBpcyBhY2NvbXBhbmllZCBieSBhXG4gICAgLy8gaG9zdCBjb21wb25lbnQgd3JhcHBlci4gSW4gdGhlIGhpZGRlbiBtb2RlLCB0aGUgaG9zdCBjb21wb25lbnQgaXMgZ2l2ZW4gYVxuICAgIC8vIGBoaWRkZW5gIGF0dHJpYnV0ZSwgd2hpY2ggZW5zdXJlcyB0aGF0IHRoZSBpbml0aWFsIEhUTUwgaXMgbm90IHZpc2libGUuXG4gICAgLy8gVG8gc3VwcG9ydCB0aGUgdXNlIG9mIExlZ2FjeUhpZGRlbiBhcyBhIHRydWUgZnJhZ21lbnQsIHdpdGhvdXQgYW4gZXh0cmFcbiAgICAvLyBET00gbm9kZSwgd2Ugd291bGQgaGF2ZSB0byBoaWRlIHRoZSBpbml0aWFsIEhUTUwgaW4gc29tZSBvdGhlciB3YXkuXG4gICAgLy8gVE9ETzogRGVsZXRlIGluIExlZ2FjeUhpZGRlbi4gSXQncyBhbiB1bnN0YWJsZSBBUEkgb25seSB1c2VkIGluIHRoZVxuICAgIC8vIHd3dyBidWlsZC4gQXMgYSBtaWdyYXRpb24gc3RlcCwgd2UgY291bGQgYWRkIGEgc3BlY2lhbCBwcm9wIHRvIE9mZnNjcmVlblxuICAgIC8vIHRoYXQgc2ltdWxhdGVzIHRoZSBvbGQgYmVoYXZpb3IgKG5vIGhpZGluZywgbm8gY2hhbmdlIHRvIGVmZmVjdHMpLlxuICAgIGNhc2UgUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFOlxuICAgIGNhc2UgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEU6XG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICB7XG4gICAgICAgIHZhciBwcmV2S2V5UGF0aCA9IHRhc2sua2V5UGF0aDtcbiAgICAgICAgdGFzay5rZXlQYXRoID0ga2V5UGF0aDtcbiAgICAgICAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIG51bGwsIHByb3BzLmNoaWxkcmVuLCAtMSk7XG4gICAgICAgIHRhc2sua2V5UGF0aCA9IHByZXZLZXlQYXRoO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIFJFQUNUX09GRlNDUkVFTl9UWVBFOlxuICAgICAge1xuICAgICAgICByZW5kZXJPZmZzY3JlZW4ocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgcHJvcHMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHtcbiAgICAgICAgdmFyIHByZWlvdXNDb21wb25lbnRTdGFjayA9IHRhc2suY29tcG9uZW50U3RhY2s7XG4gICAgICAgIHRhc2suY29tcG9uZW50U3RhY2sgPSBjcmVhdGVCdWlsdEluQ29tcG9uZW50U3RhY2sodGFzaywgJ1N1c3BlbnNlTGlzdCcpOyAvLyBUT0RPOiBTdXNwZW5zZUxpc3Qgc2hvdWxkIGNvbnRyb2wgdGhlIGJvdW5kYXJpZXMuXG5cbiAgICAgICAgdmFyIF9wcmV2S2V5UGF0aDMgPSB0YXNrLmtleVBhdGg7XG4gICAgICAgIHRhc2sua2V5UGF0aCA9IGtleVBhdGg7XG4gICAgICAgIHJlbmRlck5vZGVEZXN0cnVjdGl2ZShyZXF1ZXN0LCB0YXNrLCBudWxsLCBwcm9wcy5jaGlsZHJlbiwgLTEpO1xuICAgICAgICB0YXNrLmtleVBhdGggPSBfcHJldktleVBhdGgzO1xuICAgICAgICB0YXNrLmNvbXBvbmVudFN0YWNrID0gcHJlaW91c0NvbXBvbmVudFN0YWNrO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIFJFQUNUX1NDT1BFX1RZUEU6XG4gICAgICB7XG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWFjdERPTVNlcnZlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBzY29wZSBjb21wb25lbnRzLicpO1xuICAgICAgfVxuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgcmVuZGVyU3VzcGVuc2VCb3VuZGFyeShyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcm9wcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHJlbmRlckZvcndhcmRSZWYocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgcHJldlRoZW5hYmxlU3RhdGUsIHR5cGUsIHByb3BzLCByZWYpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHJlbmRlck1lbW8ocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgcHJldlRoZW5hYmxlU3RhdGUsIHR5cGUsIHByb3BzLCByZWYpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICByZW5kZXJDb250ZXh0UHJvdmlkZXIocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgdHlwZSwgcHJvcHMpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHJlbmRlckNvbnRleHRDb25zdW1lcihyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCB0eXBlLCBwcm9wcyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgcmVuZGVyTGF6eUNvbXBvbmVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcmV2VGhlbmFibGVTdGF0ZSwgdHlwZSwgcHJvcHMpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBpbmZvID0gJyc7XG5cbiAge1xuICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICBpbmZvICs9ICcgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgJyArIFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBcIiArICduYW1lZCBpbXBvcnRzLic7XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdFbGVtZW50IHR5cGUgaXMgaW52YWxpZDogZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciBidWlsdC1pbiAnICsgJ2NvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgY29tcG9uZW50cykgJyArIChcImJ1dCBnb3Q6IFwiICsgKHR5cGUgPT0gbnVsbCA/IHR5cGUgOiB0eXBlb2YgdHlwZSkgKyBcIi5cIiArIGluZm8pKTtcbn1cblxuZnVuY3Rpb24gcmVzdW1lTm9kZShyZXF1ZXN0LCB0YXNrLCBzZWdtZW50SWQsIG5vZGUsIGNoaWxkSW5kZXgpIHtcbiAgdmFyIHByZXZSZXBsYXkgPSB0YXNrLnJlcGxheTtcbiAgdmFyIGJsb2NrZWRCb3VuZGFyeSA9IHRhc2suYmxvY2tlZEJvdW5kYXJ5O1xuICB2YXIgcmVzdW1lZFNlZ21lbnQgPSBjcmVhdGVQZW5kaW5nU2VnbWVudChyZXF1ZXN0LCAwLCBudWxsLCB0YXNrLmZvcm1hdENvbnRleHQsIGZhbHNlLCBmYWxzZSk7XG4gIHJlc3VtZWRTZWdtZW50LmlkID0gc2VnbWVudElkO1xuICByZXN1bWVkU2VnbWVudC5wYXJlbnRGbHVzaGVkID0gdHJ1ZTtcblxuICB0cnkge1xuICAgIC8vIENvbnZlcnQgdGhlIGN1cnJlbnQgUmVwbGF5VGFzayB0byBhIFJlbmRlclRhc2suXG4gICAgdmFyIHJlbmRlclRhc2sgPSB0YXNrO1xuICAgIHJlbmRlclRhc2sucmVwbGF5ID0gbnVsbDtcbiAgICByZW5kZXJUYXNrLmJsb2NrZWRTZWdtZW50ID0gcmVzdW1lZFNlZ21lbnQ7XG4gICAgcmVuZGVyTm9kZShyZXF1ZXN0LCB0YXNrLCBub2RlLCBjaGlsZEluZGV4KTtcbiAgICByZXN1bWVkU2VnbWVudC5zdGF0dXMgPSBDT01QTEVURUQ7XG5cbiAgICBpZiAoYmxvY2tlZEJvdW5kYXJ5ID09PSBudWxsKSB7XG4gICAgICByZXF1ZXN0LmNvbXBsZXRlZFJvb3RTZWdtZW50ID0gcmVzdW1lZFNlZ21lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXVlQ29tcGxldGVkU2VnbWVudChibG9ja2VkQm91bmRhcnksIHJlc3VtZWRTZWdtZW50KTtcblxuICAgICAgaWYgKGJsb2NrZWRCb3VuZGFyeS5wYXJlbnRGbHVzaGVkKSB7XG4gICAgICAgIHJlcXVlc3QucGFydGlhbEJvdW5kYXJpZXMucHVzaChibG9ja2VkQm91bmRhcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBSZXN0b3JlIHRvIGEgUmVwbGF5VGFzay5cbiAgICB0YXNrLnJlcGxheSA9IHByZXZSZXBsYXk7XG4gICAgdGFzay5ibG9ja2VkU2VnbWVudCA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwbGF5RWxlbWVudChyZXF1ZXN0LCB0YXNrLCBrZXlQYXRoLCBwcmV2VGhlbmFibGVTdGF0ZSwgbmFtZSwga2V5T3JJbmRleCwgY2hpbGRJbmRleCwgdHlwZSwgcHJvcHMsIHJlZiwgcmVwbGF5KSB7XG4gIC8vIFdlJ3JlIHJlcGxheWluZy4gRmluZCB0aGUgcGF0aCB0byBmb2xsb3cuXG4gIHZhciByZXBsYXlOb2RlcyA9IHJlcGxheS5ub2RlcztcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGxheU5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gRmxvdyBkb2Vzbid0IHN1cHBvcnQgcmVmaW5lbWVudCBvbiB0dXBsZXMgc28gd2UgZG8gaXQgbWFudWFsbHkgaGVyZS5cbiAgICB2YXIgbm9kZSA9IHJlcGxheU5vZGVzW2ldO1xuXG4gICAgaWYgKGtleU9ySW5kZXggIT09IG5vZGVbMV0pIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlLmxlbmd0aCA9PT0gNCkge1xuICAgICAgLy8gTWF0Y2hlZCBhIHJlcGxheWFibGUgcGF0aC5cbiAgICAgIC8vIExldCdzIGRvdWJsZSBjaGVjayB0aGF0IHRoZSBjb21wb25lbnQgbmFtZSBtYXRjaGVzIGFzIGEgcHJlY2F1dGlvbi5cbiAgICAgIGlmIChuYW1lICE9PSBudWxsICYmIG5hbWUgIT09IG5vZGVbMF0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0aGUgcmVzdW1lIHRvIHJlbmRlciA8JyArIG5vZGVbMF0gKyAnPiBpbiB0aGlzIHNsb3QgYnV0IGluc3RlYWQgaXQgcmVuZGVyZWQgPCcgKyBuYW1lICsgJz4uICcgKyBcIlRoZSB0cmVlIGRvZXNuJ3QgbWF0Y2ggc28gUmVhY3Qgd2lsbCBmYWxsYmFjayB0byBjbGllbnQgcmVuZGVyaW5nLlwiKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGNoaWxkTm9kZXMgPSBub2RlWzJdO1xuICAgICAgdmFyIGNoaWxkU2xvdHMgPSBub2RlWzNdO1xuICAgICAgdmFyIGN1cnJlbnROb2RlID0gdGFzay5ub2RlO1xuICAgICAgdGFzay5yZXBsYXkgPSB7XG4gICAgICAgIG5vZGVzOiBjaGlsZE5vZGVzLFxuICAgICAgICBzbG90czogY2hpbGRTbG90cyxcbiAgICAgICAgcGVuZGluZ1Rhc2tzOiAxXG4gICAgICB9O1xuXG4gICAgICB0cnkge1xuICAgICAgICByZW5kZXJFbGVtZW50KHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIHByZXZUaGVuYWJsZVN0YXRlLCB0eXBlLCBwcm9wcywgcmVmKTtcblxuICAgICAgICBpZiAodGFzay5yZXBsYXkucGVuZGluZ1Rhc2tzID09PSAxICYmIHRhc2sucmVwbGF5Lm5vZGVzLmxlbmd0aCA+IDAgLy8gVE9ETyBjaGVjayByZW1haW5pbmcgc2xvdHNcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGFsbCByZXN1bWFibGUgc2xvdHMgYnkga2V5L2luZGV4IGR1cmluZyByZXBsYXlpbmcuIFwiICsgXCJUaGUgdHJlZSBkb2Vzbid0IG1hdGNoIHNvIFJlYWN0IHdpbGwgZmFsbGJhY2sgdG8gY2xpZW50IHJlbmRlcmluZy5cIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgIHRhc2sucmVwbGF5LnBlbmRpbmdUYXNrcy0tO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBpZiAodHlwZW9mIHggPT09ICdvYmplY3QnICYmIHggIT09IG51bGwgJiYgKHggPT09IFN1c3BlbnNlRXhjZXB0aW9uIHx8IHR5cGVvZiB4LnRoZW4gPT09ICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgLy8gU3VzcGVuZFxuICAgICAgICAgIGlmICh0YXNrLm5vZGUgPT09IGN1cnJlbnROb2RlKSB7XG4gICAgICAgICAgICAvLyBUaGlzIHNhbWUgZWxlbWVudCBzdXNwZW5kZWQgc28gd2UgbmVlZCB0byBwb3AgdGhlIHJlcGxheSB3ZSBqdXN0IGFkZGVkLlxuICAgICAgICAgICAgdGFzay5yZXBsYXkgPSByZXBsYXk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhyb3cgeDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhc2sucmVwbGF5LnBlbmRpbmdUYXNrcy0tOyAvLyBVbmxpa2UgcmVndWxhciByZW5kZXIsIHdlIGRvbid0IHRlcm1pbmF0ZSB0aGUgc2libGluZ3MgaWYgd2UgZXJyb3JcbiAgICAgICAgLy8gZHVyaW5nIGEgcmVwbGF5LiBUaGF0J3MgYmVjYXVzZSB0aGlzIGNvbXBvbmVudCBkaWRuJ3QgYWN0dWFsbHkgZXJyb3JcbiAgICAgICAgLy8gaW4gdGhlIG9yaWdpbmFsIHByZXJlbmRlci4gV2hhdCdzIHVuYWJsZSB0byBjb21wbGV0ZSBpcyB0aGUgY2hpbGRcbiAgICAgICAgLy8gcmVwbGF5IG5vZGVzIHdoaWNoIG1pZ2h0IGJlIFN1c3BlbnNlIGJvdW5kYXJpZXMgd2hpY2ggYXJlIGFibGUgdG9cbiAgICAgICAgLy8gYWJzb3JiIHRoZSBlcnJvciBhbmQgd2UgY2FuIHN0aWxsIGNvbnRpbnVlIHdpdGggc2libGluZ3MuXG5cbiAgICAgICAgdmFyIHRocm93bkluZm8gPSBnZXRUaHJvd25JbmZvKHJlcXVlc3QsIHRhc2suY29tcG9uZW50U3RhY2spO1xuICAgICAgICBlcnJvcmVkUmVwbGF5KHJlcXVlc3QsIHRhc2suYmxvY2tlZEJvdW5kYXJ5LCB4LCB0aHJvd25JbmZvLCBjaGlsZE5vZGVzLCBjaGlsZFNsb3RzKTtcbiAgICAgIH1cblxuICAgICAgdGFzay5yZXBsYXkgPSByZXBsYXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIExldCdzIGRvdWJsZSBjaGVjayB0aGF0IHRoZSBjb21wb25lbnQgdHlwZSBtYXRjaGVzLlxuICAgICAgaWYgKHR5cGUgIT09IFJFQUNUX1NVU1BFTlNFX1RZUEUpIHtcbiAgICAgICAgdmFyIGV4cGVjdGVkVHlwZSA9ICdTdXNwZW5zZSc7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdGhlIHJlc3VtZSB0byByZW5kZXIgPCcgKyBleHBlY3RlZFR5cGUgKyAnPiBpbiB0aGlzIHNsb3QgYnV0IGluc3RlYWQgaXQgcmVuZGVyZWQgPCcgKyAoZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHx8ICdVbmtub3duJykgKyAnPi4gJyArIFwiVGhlIHRyZWUgZG9lc24ndCBtYXRjaCBzbyBSZWFjdCB3aWxsIGZhbGxiYWNrIHRvIGNsaWVudCByZW5kZXJpbmcuXCIpO1xuICAgICAgfSAvLyBNYXRjaGVkIGEgcmVwbGF5YWJsZSBwYXRoLlxuXG5cbiAgICAgIHJlcGxheVN1c3BlbnNlQm91bmRhcnkocmVxdWVzdCwgdGFzaywga2V5UGF0aCwgcHJvcHMsIG5vZGVbNV0sIG5vZGVbMl0sIG5vZGVbM10sIG5vZGVbNF0gPT09IG51bGwgPyBbXSA6IG5vZGVbNF1bMl0sIG5vZGVbNF0gPT09IG51bGwgPyBudWxsIDogbm9kZVs0XVszXSk7XG4gICAgfSAvLyBXZSBmaW5pc2hlZCByZW5kZXJpbmcgdGhpcyBub2RlLCBzbyBub3cgd2UgY2FuIGNvbnN1bWUgdGhpc1xuICAgIC8vIHNsb3QuIFRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgaW4gY2FzZSB3ZSByZXJlbmRlciB0aGlzIHRhc2suXG5cblxuICAgIHJlcGxheU5vZGVzLnNwbGljZShpLCAxKTtcbiAgICByZXR1cm47XG4gIH0gLy8gV2UgZGlkbid0IGZpbmQgYW55IG1hdGNoaW5nIG5vZGVzLiBXZSBhc3N1bWUgdGhhdCB0aGlzIGVsZW1lbnQgd2FzIGFscmVhZHlcbiAgLy8gcmVuZGVyZWQgaW4gdGhlIHByZWx1ZGUgYW5kIHNraXAgaXQuXG5cbn0gLy8gJEZsb3dGaXhNZVttaXNzaW5nLWxvY2FsLWFubm90XVxuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlSXRlcmFibGUoaXRlcmFibGUsIGl0ZXJhdG9yRm4pIHtcbiAge1xuICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgcmVuZGVyaW5nIEdlbmVyYXRvcnMgYmVjYXVzZSBpdCdzIGEgbXV0YXRpb24uXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTI5OTVcbiAgICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBpdGVyYWJsZVtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnR2VuZXJhdG9yJykge1xuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRHZW5lcmF0b3JzKSB7XG4gICAgICAgIGVycm9yKCdVc2luZyBHZW5lcmF0b3JzIGFzIGNoaWxkcmVuIGlzIHVuc3VwcG9ydGVkIGFuZCB3aWxsIGxpa2VseSB5aWVsZCAnICsgJ3VuZXhwZWN0ZWQgcmVzdWx0cyBiZWNhdXNlIGVudW1lcmF0aW5nIGEgZ2VuZXJhdG9yIG11dGF0ZXMgaXQuICcgKyAnWW91IG1heSBjb252ZXJ0IGl0IHRvIGFuIGFycmF5IHdpdGggYEFycmF5LmZyb20oKWAgb3IgdGhlICcgKyAnYFsuLi5zcHJlYWRdYCBvcGVyYXRvciBiZWZvcmUgcmVuZGVyaW5nLiBLZWVwIGluIG1pbmQgJyArICd5b3UgbWlnaHQgbmVlZCB0byBwb2x5ZmlsbCB0aGVzZSBmZWF0dXJlcyBmb3Igb2xkZXIgYnJvd3NlcnMuJyk7XG4gICAgICB9XG5cbiAgICAgIGRpZFdhcm5BYm91dEdlbmVyYXRvcnMgPSB0cnVlO1xuICAgIH0gLy8gV2FybiBhYm91dCB1c2luZyBNYXBzIGFzIGNoaWxkcmVuXG5cblxuICAgIGlmIChpdGVyYWJsZS5lbnRyaWVzID09PSBpdGVyYXRvckZuKSB7XG4gICAgICBpZiAoIWRpZFdhcm5BYm91dE1hcHMpIHtcbiAgICAgICAgZXJyb3IoJ1VzaW5nIE1hcHMgYXMgY2hpbGRyZW4gaXMgbm90IHN1cHBvcnRlZC4gJyArICdVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLicpO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn0gLy8gVGhpcyBmdW5jdGlvbiBieSBpdCBzZWxmIHJlbmRlcnMgYSBub2RlIGFuZCBjb25zdW1lcyB0aGUgdGFzayBieSBtdXRhdGluZyBpdFxuLy8gdG8gdXBkYXRlIHRoZSBjdXJyZW50IGV4ZWN1dGlvbiBzdGF0ZS5cblxuXG5mdW5jdGlvbiByZW5kZXJOb2RlRGVzdHJ1Y3RpdmUocmVxdWVzdCwgdGFzaywgLy8gVGhlIHRoZW5hYmxlIHN0YXRlIHJldXNlZCBmcm9tIHRoZSBwcmV2aW91cyBhdHRlbXB0LCBpZiBhbnkuIFRoaXMgaXMgYWxtb3N0XG4vLyBhbHdheXMgbnVsbCwgZXhjZXB0IHdoZW4gY2FsbGVkIGJ5IHJldHJ5VGFzay5cbnByZXZUaGVuYWJsZVN0YXRlLCBub2RlLCBjaGlsZEluZGV4KSB7XG4gIGlmICh0YXNrLnJlcGxheSAhPT0gbnVsbCAmJiB0eXBlb2YgdGFzay5yZXBsYXkuc2xvdHMgPT09ICdudW1iZXInKSB7XG4gICAgLy8gVE9ETzogRmlndXJlIG91dCBhIGNoZWFwZXIgcGxhY2UgdGhhbiB0aGlzIGhvdCBwYXRoIHRvIGRvIHRoaXMgY2hlY2suXG4gICAgdmFyIHJlc3VtZVNlZ21lbnRJRCA9IHRhc2sucmVwbGF5LnNsb3RzO1xuICAgIHJlc3VtZU5vZGUocmVxdWVzdCwgdGFzaywgcmVzdW1lU2VnbWVudElELCBub2RlLCBjaGlsZEluZGV4KTtcbiAgICByZXR1cm47XG4gIH0gLy8gU3Rhc2ggdGhlIG5vZGUgd2UncmUgd29ya2luZyBvbi4gV2UnbGwgcGljayB1cCBmcm9tIHRoaXMgdGFzayBpbiBjYXNlXG4gIC8vIHNvbWV0aGluZyBzdXNwZW5kcy5cblxuXG4gIHRhc2subm9kZSA9IG5vZGU7XG4gIHRhc2suY2hpbGRJbmRleCA9IGNoaWxkSW5kZXg7IC8vIEhhbmRsZSBvYmplY3QgdHlwZXNcblxuICBpZiAodHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIG5vZGUgIT09IG51bGwpIHtcbiAgICBzd2l0Y2ggKG5vZGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGVsZW1lbnQgPSBub2RlO1xuICAgICAgICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuICAgICAgICAgIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgICAgICAgICB2YXIgcHJvcHMgPSBlbGVtZW50LnByb3BzO1xuICAgICAgICAgIHZhciByZWYgPSBlbGVtZW50LnJlZjtcbiAgICAgICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcbiAgICAgICAgICB2YXIga2V5T3JJbmRleCA9IGtleSA9PSBudWxsID8gY2hpbGRJbmRleCA9PT0gLTEgPyAwIDogY2hpbGRJbmRleCA6IGtleTtcbiAgICAgICAgICB2YXIga2V5UGF0aCA9IFt0YXNrLmtleVBhdGgsIG5hbWUsIGtleU9ySW5kZXhdO1xuXG4gICAgICAgICAgaWYgKHRhc2sucmVwbGF5ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXBsYXlFbGVtZW50KHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIHByZXZUaGVuYWJsZVN0YXRlLCBuYW1lLCBrZXlPckluZGV4LCBjaGlsZEluZGV4LCB0eXBlLCBwcm9wcywgcmVmLCB0YXNrLnJlcGxheSk7IC8vIE5vIG1hdGNoZXMgZm91bmQgZm9yIHRoaXMgbm9kZS4gV2UgYXNzdW1lIGl0J3MgYWxyZWFkeSBlbWl0dGVkIGluIHRoZVxuICAgICAgICAgICAgLy8gcHJlbHVkZSBhbmQgc2tpcCBpdCBkdXJpbmcgdGhlIHJlcGxheS5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gV2UncmUgZG9pbmcgYSBwbGFpbiByZW5kZXIuXG4gICAgICAgICAgICByZW5kZXJFbGVtZW50KHJlcXVlc3QsIHRhc2ssIGtleVBhdGgsIHByZXZUaGVuYWJsZVN0YXRlLCB0eXBlLCBwcm9wcywgcmVmKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQb3J0YWxzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUgc2VydmVyIHJlbmRlcmVyLiAnICsgJ1JlbmRlciB0aGVtIGNvbmRpdGlvbmFsbHkgc28gdGhhdCB0aGV5IG9ubHkgYXBwZWFyIG9uIHRoZSBjbGllbnQgcmVuZGVyLicpO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBwcmV2aW91c0NvbXBvbmVudFN0YWNrID0gdGFzay5jb21wb25lbnRTdGFjaztcbiAgICAgICAgICB0YXNrLmNvbXBvbmVudFN0YWNrID0gY3JlYXRlQnVpbHRJbkNvbXBvbmVudFN0YWNrKHRhc2ssICdMYXp5Jyk7XG4gICAgICAgICAgdmFyIGxhenlOb2RlID0gbm9kZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlOb2RlLl9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eU5vZGUuX2luaXQ7XG4gICAgICAgICAgdmFyIHJlc29sdmVkTm9kZSA9IGluaXQocGF5bG9hZCk7IC8vIFdlIHJlc3RvcmUgdGhlIHN0YWNrIGJlZm9yZSByZW5kZXJpbmcgdGhlIHJlc29sdmVkIG5vZGUgYmVjYXVzZSBvbmNlIHRoZSBMYXp5XG4gICAgICAgICAgLy8gaGFzIHJlc29sdmVkIGFueSBmdXR1cmUgZXJyb3JzXG5cbiAgICAgICAgICB0YXNrLmNvbXBvbmVudFN0YWNrID0gcHJldmlvdXNDb21wb25lbnRTdGFjazsgLy8gTm93IHdlIHJlbmRlciB0aGUgcmVzb2x2ZWQgbm9kZVxuXG4gICAgICAgICAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIG51bGwsIHJlc29sdmVkTm9kZSwgY2hpbGRJbmRleCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyYXkobm9kZSkpIHtcbiAgICAgIHJlbmRlckNoaWxkcmVuQXJyYXkocmVxdWVzdCwgdGFzaywgbm9kZSwgY2hpbGRJbmRleCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuXG4gICAgaWYgKGl0ZXJhdG9yRm4pIHtcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdGVJdGVyYWJsZShub2RlLCBpdGVyYXRvckZuKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuXG4gICAgICBpZiAoaXRlcmF0b3IpIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBrbm93IGhvdyBtYW55IHRvdGFsIGNoaWxkcmVuIGFyZSBpbiB0aGlzIHNldCwgc28gdGhhdCB3ZVxuICAgICAgICAvLyBjYW4gYWxsb2NhdGUgZW5vdWdoIGlkIHNsb3RzIHRvIGFjb21tb2RhdGUgdGhlbS4gU28gd2UgbXVzdCBleGhhdXN0XG4gICAgICAgIC8vIHRoZSBpdGVyYXRvciBiZWZvcmUgd2Ugc3RhcnQgcmVjdXJzaXZlbHkgcmVuZGVyaW5nIHRoZSBjaGlsZHJlbi5cbiAgICAgICAgLy8gVE9ETzogVGhpcyBpcyBub3QgZ3JlYXQgYnV0IEkgdGhpbmsgaXQncyBpbmhlcmVudCB0byB0aGUgaWRcbiAgICAgICAgLy8gZ2VuZXJhdGlvbiBhbGdvcml0aG0uXG4gICAgICAgIHZhciBzdGVwID0gaXRlcmF0b3IubmV4dCgpOyAvLyBJZiB0aGVyZSBhcmUgbm90IGVudHJpZXMsIHdlIG5lZWQgdG8gcHVzaCBhbiBlbXB0eSBzbyB3ZSBzdGFydCBieSBjaGVja2luZyB0aGF0LlxuXG4gICAgICAgIGlmICghc3RlcC5kb25lKSB7XG4gICAgICAgICAgdmFyIGNoaWxkcmVuID0gW107XG5cbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKHN0ZXAudmFsdWUpO1xuICAgICAgICAgICAgc3RlcCA9IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICB9IHdoaWxlICghc3RlcC5kb25lKTtcblxuICAgICAgICAgIHJlbmRlckNoaWxkcmVuQXJyYXkocmVxdWVzdCwgdGFzaywgY2hpbGRyZW4sIGNoaWxkSW5kZXgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IC8vIFVzYWJsZXMgYXJlIGEgdmFsaWQgUmVhY3Qgbm9kZSB0eXBlLiBXaGVuIFJlYWN0IGVuY291bnRlcnMgYSBVc2FibGUgaW5cbiAgICAvLyBhIGNoaWxkIHBvc2l0aW9uLCBpdCB1bndyYXBzIGl0IHVzaW5nIHRoZSBzYW1lIGFsZ29yaXRobSBhcyBgdXNlYC4gRm9yXG4gICAgLy8gZXhhbXBsZSwgZm9yIHByb21pc2VzLCBSZWFjdCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiB0byB1bndpbmQgdGhlXG4gICAgLy8gc3RhY2ssIHRoZW4gcmVwbGF5IHRoZSBjb21wb25lbnQgb25jZSB0aGUgcHJvbWlzZSByZXNvbHZlcy5cbiAgICAvL1xuICAgIC8vIEEgZGlmZmVyZW5jZSBmcm9tIGB1c2VgIGlzIHRoYXQgUmVhY3Qgd2lsbCBrZWVwIHVud3JhcHBpbmcgdGhlIHZhbHVlXG4gICAgLy8gdW50aWwgaXQgcmVhY2hlcyBhIG5vbi1Vc2FibGUgdHlwZS5cbiAgICAvL1xuICAgIC8vIGUuZy4gVXNhYmxlPFVzYWJsZTxVc2FibGU8VD4+PiBzaG91bGQgcmVzb2x2ZSB0byBUXG5cblxuICAgIHZhciBtYXliZVVzYWJsZSA9IG5vZGU7XG5cbiAgICBpZiAodHlwZW9mIG1heWJlVXNhYmxlLnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciB0aGVuYWJsZSA9IG1heWJlVXNhYmxlO1xuICAgICAgcmV0dXJuIHJlbmRlck5vZGVEZXN0cnVjdGl2ZShyZXF1ZXN0LCB0YXNrLCBudWxsLCB1bndyYXBUaGVuYWJsZSh0aGVuYWJsZSksIGNoaWxkSW5kZXgpO1xuICAgIH1cblxuICAgIGlmIChtYXliZVVzYWJsZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IG1heWJlVXNhYmxlLiQkdHlwZW9mID09PSBSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFKSB7XG4gICAgICB2YXIgY29udGV4dCA9IG1heWJlVXNhYmxlO1xuICAgICAgcmV0dXJuIHJlbmRlck5vZGVEZXN0cnVjdGl2ZShyZXF1ZXN0LCB0YXNrLCBudWxsLCByZWFkQ29udGV4dCQxKGNvbnRleHQpLCBjaGlsZEluZGV4KTtcbiAgICB9IC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cblxuXG4gICAgdmFyIGNoaWxkU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5vZGUpO1xuICAgIHRocm93IG5ldyBFcnJvcihcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRTdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhub2RlKS5qb2luKCcsICcpICsgJ30nIDogY2hpbGRTdHJpbmcpICsgXCIpLiBcIiArICdJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5ICcgKyAnaW5zdGVhZC4nKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICB2YXIgc2VnbWVudCA9IHRhc2suYmxvY2tlZFNlZ21lbnQ7XG5cbiAgICBpZiAoc2VnbWVudCA9PT0gbnVsbCkgOyBlbHNlIHtcbiAgICAgIHNlZ21lbnQubGFzdFB1c2hlZFRleHQgPSBwdXNoVGV4dEluc3RhbmNlKHNlZ21lbnQuY2h1bmtzLCBub2RlLCByZXF1ZXN0LnJlbmRlclN0YXRlLCBzZWdtZW50Lmxhc3RQdXNoZWRUZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgdmFyIF9zZWdtZW50ID0gdGFzay5ibG9ja2VkU2VnbWVudDtcblxuICAgIGlmIChfc2VnbWVudCA9PT0gbnVsbCkgOyBlbHNlIHtcbiAgICAgIF9zZWdtZW50Lmxhc3RQdXNoZWRUZXh0ID0gcHVzaFRleHRJbnN0YW5jZShfc2VnbWVudC5jaHVua3MsICcnICsgbm9kZSwgcmVxdWVzdC5yZW5kZXJTdGF0ZSwgX3NlZ21lbnQubGFzdFB1c2hlZFRleHQpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHtcbiAgICBpZiAodHlwZW9mIG5vZGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdGdW5jdGlvbnMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkLiBUaGlzIG1heSBoYXBwZW4gaWYgJyArICd5b3UgcmV0dXJuIGEgQ29tcG9uZW50IGluc3RlYWQgb2YgPENvbXBvbmVudCAvPiBmcm9tIHJlbmRlci4gJyArICdPciBtYXliZSB5b3UgbWVhbnQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHJldHVybiBpdC4nKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwbGF5RnJhZ21lbnQocmVxdWVzdCwgdGFzaywgY2hpbGRyZW4sIGNoaWxkSW5kZXgpIHtcbiAgLy8gSWYgd2UncmUgc3VwcG9zZWQgZm9sbG93IHRoaXMgYXJyYXksIHdlJ2QgZXhwZWN0IHRvIHNlZSBhIFJlcGxheU5vZGUgbWF0Y2hpbmdcbiAgLy8gdGhpcyBmcmFnbWVudC5cbiAgdmFyIHJlcGxheSA9IHRhc2sucmVwbGF5O1xuICB2YXIgcmVwbGF5Tm9kZXMgPSByZXBsYXkubm9kZXM7XG5cbiAgZm9yICh2YXIgaiA9IDA7IGogPCByZXBsYXlOb2Rlcy5sZW5ndGg7IGorKykge1xuICAgIHZhciBub2RlID0gcmVwbGF5Tm9kZXNbal07XG5cbiAgICBpZiAobm9kZVsxXSAhPT0gY2hpbGRJbmRleCkge1xuICAgICAgY29udGludWU7XG4gICAgfSAvLyBNYXRjaGVkIGEgcmVwbGF5YWJsZSBwYXRoLlxuXG5cbiAgICB2YXIgY2hpbGROb2RlcyA9IG5vZGVbMl07XG4gICAgdmFyIGNoaWxkU2xvdHMgPSBub2RlWzNdO1xuICAgIHRhc2sucmVwbGF5ID0ge1xuICAgICAgbm9kZXM6IGNoaWxkTm9kZXMsXG4gICAgICBzbG90czogY2hpbGRTbG90cyxcbiAgICAgIHBlbmRpbmdUYXNrczogMVxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgcmVuZGVyQ2hpbGRyZW5BcnJheShyZXF1ZXN0LCB0YXNrLCBjaGlsZHJlbiwgLTEpO1xuXG4gICAgICBpZiAodGFzay5yZXBsYXkucGVuZGluZ1Rhc2tzID09PSAxICYmIHRhc2sucmVwbGF5Lm5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhbGwgcmVzdW1hYmxlIHNsb3RzIGJ5IGtleS9pbmRleCBkdXJpbmcgcmVwbGF5aW5nLiBcIiArIFwiVGhlIHRyZWUgZG9lc24ndCBtYXRjaCBzbyBSZWFjdCB3aWxsIGZhbGxiYWNrIHRvIGNsaWVudCByZW5kZXJpbmcuXCIpO1xuICAgICAgfVxuXG4gICAgICB0YXNrLnJlcGxheS5wZW5kaW5nVGFza3MtLTtcbiAgICB9IGNhdGNoICh4KSB7XG4gICAgICBpZiAodHlwZW9mIHggPT09ICdvYmplY3QnICYmIHggIT09IG51bGwgJiYgKHggPT09IFN1c3BlbnNlRXhjZXB0aW9uIHx8IHR5cGVvZiB4LnRoZW4gPT09ICdmdW5jdGlvbicpKSB7XG4gICAgICAgIC8vIFN1c3BlbmRcbiAgICAgICAgdGhyb3cgeDtcbiAgICAgIH1cblxuICAgICAgdGFzay5yZXBsYXkucGVuZGluZ1Rhc2tzLS07IC8vIFVubGlrZSByZWd1bGFyIHJlbmRlciwgd2UgZG9uJ3QgdGVybWluYXRlIHRoZSBzaWJsaW5ncyBpZiB3ZSBlcnJvclxuICAgICAgLy8gZHVyaW5nIGEgcmVwbGF5LiBUaGF0J3MgYmVjYXVzZSB0aGlzIGNvbXBvbmVudCBkaWRuJ3QgYWN0dWFsbHkgZXJyb3JcbiAgICAgIC8vIGluIHRoZSBvcmlnaW5hbCBwcmVyZW5kZXIuIFdoYXQncyB1bmFibGUgdG8gY29tcGxldGUgaXMgdGhlIGNoaWxkXG4gICAgICAvLyByZXBsYXkgbm9kZXMgd2hpY2ggbWlnaHQgYmUgU3VzcGVuc2UgYm91bmRhcmllcyB3aGljaCBhcmUgYWJsZSB0b1xuICAgICAgLy8gYWJzb3JiIHRoZSBlcnJvciBhbmQgd2UgY2FuIHN0aWxsIGNvbnRpbnVlIHdpdGggc2libGluZ3MuXG4gICAgICAvLyBUaGlzIGlzIGFuIGVycm9yLCBzdGFzaCB0aGUgY29tcG9uZW50IHN0YWNrIGlmIGl0IGlzIG51bGwuXG5cbiAgICAgIHZhciB0aHJvd25JbmZvID0gZ2V0VGhyb3duSW5mbyhyZXF1ZXN0LCB0YXNrLmNvbXBvbmVudFN0YWNrKTtcbiAgICAgIGVycm9yZWRSZXBsYXkocmVxdWVzdCwgdGFzay5ibG9ja2VkQm91bmRhcnksIHgsIHRocm93bkluZm8sIGNoaWxkTm9kZXMsIGNoaWxkU2xvdHMpO1xuICAgIH1cblxuICAgIHRhc2sucmVwbGF5ID0gcmVwbGF5OyAvLyBXZSBmaW5pc2hlZCByZW5kZXJpbmcgdGhpcyBub2RlLCBzbyBub3cgd2UgY2FuIGNvbnN1bWUgdGhpc1xuICAgIC8vIHNsb3QuIFRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgaW4gY2FzZSB3ZSByZXJlbmRlciB0aGlzIHRhc2suXG5cbiAgICByZXBsYXlOb2Rlcy5zcGxpY2UoaiwgMSk7XG4gICAgYnJlYWs7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyQ2hpbGRyZW5BcnJheShyZXF1ZXN0LCB0YXNrLCBjaGlsZHJlbiwgY2hpbGRJbmRleCkge1xuICB2YXIgcHJldktleVBhdGggPSB0YXNrLmtleVBhdGg7XG5cbiAgaWYgKGNoaWxkSW5kZXggIT09IC0xKSB7XG4gICAgdGFzay5rZXlQYXRoID0gW3Rhc2sua2V5UGF0aCwgJ0ZyYWdtZW50JywgY2hpbGRJbmRleF07XG5cbiAgICBpZiAodGFzay5yZXBsYXkgIT09IG51bGwpIHtcbiAgICAgIHJlcGxheUZyYWdtZW50KHJlcXVlc3QsIC8vICRGbG93Rml4TWU6IFJlZmluZWQuXG4gICAgICB0YXNrLCBjaGlsZHJlbiwgY2hpbGRJbmRleCk7XG4gICAgICB0YXNrLmtleVBhdGggPSBwcmV2S2V5UGF0aDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICB2YXIgcHJldlRyZWVDb250ZXh0ID0gdGFzay50cmVlQ29udGV4dDtcbiAgdmFyIHRvdGFsQ2hpbGRyZW4gPSBjaGlsZHJlbi5sZW5ndGg7XG5cbiAgaWYgKHRhc2sucmVwbGF5ICE9PSBudWxsKSB7XG4gICAgLy8gUmVwbGF5XG4gICAgLy8gRmlyc3Qgd2UgbmVlZCB0byBjaGVjayBpZiB3ZSBoYXZlIGFueSByZXN1bWUgc2xvdHMgYXQgdGhpcyBsZXZlbC5cbiAgICB2YXIgcmVzdW1lU2xvdHMgPSB0YXNrLnJlcGxheS5zbG90cztcblxuICAgIGlmIChyZXN1bWVTbG90cyAhPT0gbnVsbCAmJiB0eXBlb2YgcmVzdW1lU2xvdHMgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvdGFsQ2hpbGRyZW47IGkrKykge1xuICAgICAgICB2YXIgbm9kZSA9IGNoaWxkcmVuW2ldO1xuICAgICAgICB0YXNrLnRyZWVDb250ZXh0ID0gcHVzaFRyZWVDb250ZXh0KHByZXZUcmVlQ29udGV4dCwgdG90YWxDaGlsZHJlbiwgaSk7IC8vIFdlIG5lZWQgdG8gdXNlIHRoZSBub24tZGVzdHJ1Y3RpdmUgZm9ybSBzbyB0aGF0IHdlIGNhbiBzYWZlbHkgcG9wIGJhY2tcbiAgICAgICAgLy8gdXAgYW5kIHJlbmRlciB0aGUgc2libGluZyBpZiBzb21ldGhpbmcgc3VzcGVuZHMuXG5cbiAgICAgICAgdmFyIHJlc3VtZVNlZ21lbnRJRCA9IHJlc3VtZVNsb3RzW2ldOyAvLyBUT0RPOiBJZiB0aGlzIGVycm9ycyB3ZSBzaG91bGQgc3RpbGwgY29udGludWUgd2l0aCB0aGUgbmV4dCBzaWJsaW5nLlxuXG4gICAgICAgIGlmICh0eXBlb2YgcmVzdW1lU2VnbWVudElEID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJlc3VtZU5vZGUocmVxdWVzdCwgdGFzaywgcmVzdW1lU2VnbWVudElELCBub2RlLCBpKTsgLy8gV2UgZmluaXNoZWQgcmVuZGVyaW5nIHRoaXMgbm9kZSwgc28gbm93IHdlIGNhbiBjb25zdW1lIHRoaXNcbiAgICAgICAgICAvLyBzbG90LiBUaGlzIG11c3QgaGFwcGVuIGFmdGVyIGluIGNhc2Ugd2UgcmVyZW5kZXIgdGhpcyB0YXNrLlxuXG4gICAgICAgICAgZGVsZXRlIHJlc3VtZVNsb3RzW2ldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlbmRlck5vZGUocmVxdWVzdCwgdGFzaywgbm9kZSwgaSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGFzay50cmVlQ29udGV4dCA9IHByZXZUcmVlQ29udGV4dDtcbiAgICAgIHRhc2sua2V5UGF0aCA9IHByZXZLZXlQYXRoO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIF9pID0gMDsgX2kgPCB0b3RhbENoaWxkcmVuOyBfaSsrKSB7XG4gICAgdmFyIF9ub2RlID0gY2hpbGRyZW5bX2ldO1xuICAgIHRhc2sudHJlZUNvbnRleHQgPSBwdXNoVHJlZUNvbnRleHQocHJldlRyZWVDb250ZXh0LCB0b3RhbENoaWxkcmVuLCBfaSk7IC8vIFdlIG5lZWQgdG8gdXNlIHRoZSBub24tZGVzdHJ1Y3RpdmUgZm9ybSBzbyB0aGF0IHdlIGNhbiBzYWZlbHkgcG9wIGJhY2tcbiAgICAvLyB1cCBhbmQgcmVuZGVyIHRoZSBzaWJsaW5nIGlmIHNvbWV0aGluZyBzdXNwZW5kcy5cblxuICAgIHJlbmRlck5vZGUocmVxdWVzdCwgdGFzaywgX25vZGUsIF9pKTtcbiAgfSAvLyBCZWNhdXNlIHRoaXMgY29udGV4dCBpcyBhbHdheXMgc2V0IHJpZ2h0IGJlZm9yZSByZW5kZXJpbmcgZXZlcnkgY2hpbGQsIHdlXG4gIC8vIG9ubHkgbmVlZCB0byByZXNldCBpdCB0byB0aGUgcHJldmlvdXMgdmFsdWUgYXQgdGhlIHZlcnkgZW5kLlxuXG5cbiAgdGFzay50cmVlQ29udGV4dCA9IHByZXZUcmVlQ29udGV4dDtcbiAgdGFzay5rZXlQYXRoID0gcHJldktleVBhdGg7XG59XG4vLyByZXN1bWUgaXQuXG5cblxuZnVuY3Rpb24gdW50cmFja0JvdW5kYXJ5KHJlcXVlc3QsIGJvdW5kYXJ5KSB7XG4gIHZhciB0cmFja2VkUG9zdHBvbmVzID0gcmVxdWVzdC50cmFja2VkUG9zdHBvbmVzO1xuXG4gIGlmICh0cmFja2VkUG9zdHBvbmVzID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGJvdW5kYXJ5S2V5UGF0aCA9IGJvdW5kYXJ5LnRyYWNrZWRDb250ZW50S2V5UGF0aDtcblxuICBpZiAoYm91bmRhcnlLZXlQYXRoID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGJvdW5kYXJ5Tm9kZSA9IHRyYWNrZWRQb3N0cG9uZXMud29ya2luZ01hcC5nZXQoYm91bmRhcnlLZXlQYXRoKTtcblxuICBpZiAoYm91bmRhcnlOb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm47XG4gIH0gLy8gRG93bmdyYWRlIHRvIHBsYWluIFJlcGxheU5vZGUgc2luY2Ugd2Ugd29uJ3QgcmVwbGF5IHRocm91Z2ggaXQuXG4gIC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXTogV2UgaW50ZW50aW9uYWxseSBkb3duZ3JhZGUgdGhpcyB0byB0aGUgb3RoZXIgdHVwbGUuXG5cblxuICBib3VuZGFyeU5vZGUubGVuZ3RoID0gNDsgLy8gUmVtb3ZlIGFueSByZXN1bWFibGUgc2xvdHMuXG5cbiAgYm91bmRhcnlOb2RlWzJdID0gW107XG4gIGJvdW5kYXJ5Tm9kZVszXSA9IG51bGw7IC8vIFRPRE86IFdlIHNob3VsZCByZWFsbHkganVzdCByZW1vdmUgdGhlIGJvdW5kYXJ5IGZyb20gYWxsIHBhcmVudCBwYXRocyB0b28gc29cbiAgLy8gd2UgZG9uJ3QgcmVwbGF5IHRoZSBwYXRoIHRvIGl0LlxufVxuXG5mdW5jdGlvbiBzcGF3bk5ld1N1c3BlbmRlZFJlcGxheVRhc2socmVxdWVzdCwgdGFzaywgdGhlbmFibGVTdGF0ZSwgeCkge1xuICB2YXIgbmV3VGFzayA9IGNyZWF0ZVJlcGxheVRhc2socmVxdWVzdCwgdGhlbmFibGVTdGF0ZSwgdGFzay5yZXBsYXksIHRhc2subm9kZSwgdGFzay5jaGlsZEluZGV4LCB0YXNrLmJsb2NrZWRCb3VuZGFyeSwgdGFzay5hYm9ydFNldCwgdGFzay5rZXlQYXRoLCB0YXNrLmZvcm1hdENvbnRleHQsIHRhc2subGVnYWN5Q29udGV4dCwgdGFzay5jb250ZXh0LCB0YXNrLnRyZWVDb250ZXh0LCAvLyBXZSBwb3Agb25lIHRhc2sgb2ZmIHRoZSBzdGFjayBiZWNhdXNlIHRoZSBub2RlIHRoYXQgc3VzcGVuZGVkIHdpbGwgYmUgdHJpZWQgYWdhaW4sXG4gIC8vIHdoaWNoIHdpbGwgYWRkIGl0IGJhY2sgb250byB0aGUgc3RhY2suXG4gIHRhc2suY29tcG9uZW50U3RhY2sgIT09IG51bGwgPyB0YXNrLmNvbXBvbmVudFN0YWNrLnBhcmVudCA6IG51bGwpO1xuICB2YXIgcGluZyA9IG5ld1Rhc2sucGluZztcbiAgeC50aGVuKHBpbmcsIHBpbmcpO1xufVxuXG5mdW5jdGlvbiBzcGF3bk5ld1N1c3BlbmRlZFJlbmRlclRhc2socmVxdWVzdCwgdGFzaywgdGhlbmFibGVTdGF0ZSwgeCkge1xuICAvLyBTb21ldGhpbmcgc3VzcGVuZGVkLCB3ZSdsbCBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBzZWdtZW50IGFuZCByZXNvbHZlIGl0IGxhdGVyLlxuICB2YXIgc2VnbWVudCA9IHRhc2suYmxvY2tlZFNlZ21lbnQ7XG4gIHZhciBpbnNlcnRpb25JbmRleCA9IHNlZ21lbnQuY2h1bmtzLmxlbmd0aDtcbiAgdmFyIG5ld1NlZ21lbnQgPSBjcmVhdGVQZW5kaW5nU2VnbWVudChyZXF1ZXN0LCBpbnNlcnRpb25JbmRleCwgbnVsbCwgdGFzay5mb3JtYXRDb250ZXh0LCAvLyBBZG9wdCB0aGUgcGFyZW50IHNlZ21lbnQncyBsZWFkaW5nIHRleHQgZW1iZWRcbiAgc2VnbWVudC5sYXN0UHVzaGVkVGV4dCwgLy8gQXNzdW1lIHdlIGFyZSB0ZXh0IGVtYmVkZGVkIGF0IHRoZSB0cmFpbGluZyBlZGdlXG4gIHRydWUpO1xuICBzZWdtZW50LmNoaWxkcmVuLnB1c2gobmV3U2VnbWVudCk7IC8vIFJlc2V0IGxhc3RQdXNoZWRUZXh0IGZvciBjdXJyZW50IFNlZ21lbnQgc2luY2UgdGhlIG5ldyBTZWdtZW50IFwiY29uc3VtZWRcIiBpdFxuXG4gIHNlZ21lbnQubGFzdFB1c2hlZFRleHQgPSBmYWxzZTtcbiAgdmFyIG5ld1Rhc2sgPSBjcmVhdGVSZW5kZXJUYXNrKHJlcXVlc3QsIHRoZW5hYmxlU3RhdGUsIHRhc2subm9kZSwgdGFzay5jaGlsZEluZGV4LCB0YXNrLmJsb2NrZWRCb3VuZGFyeSwgbmV3U2VnbWVudCwgdGFzay5hYm9ydFNldCwgdGFzay5rZXlQYXRoLCB0YXNrLmZvcm1hdENvbnRleHQsIHRhc2subGVnYWN5Q29udGV4dCwgdGFzay5jb250ZXh0LCB0YXNrLnRyZWVDb250ZXh0LCAvLyBXZSBwb3Agb25lIHRhc2sgb2ZmIHRoZSBzdGFjayBiZWNhdXNlIHRoZSBub2RlIHRoYXQgc3VzcGVuZGVkIHdpbGwgYmUgdHJpZWQgYWdhaW4sXG4gIC8vIHdoaWNoIHdpbGwgYWRkIGl0IGJhY2sgb250byB0aGUgc3RhY2suXG4gIHRhc2suY29tcG9uZW50U3RhY2sgIT09IG51bGwgPyB0YXNrLmNvbXBvbmVudFN0YWNrLnBhcmVudCA6IG51bGwpO1xuICB2YXIgcGluZyA9IG5ld1Rhc2sucGluZztcbiAgeC50aGVuKHBpbmcsIHBpbmcpO1xufSAvLyBUaGlzIGlzIGEgbm9uLWRlc3RydWN0aXZlIGZvcm0gb2YgcmVuZGVyaW5nIGEgbm9kZS4gSWYgaXQgc3VzcGVuZHMgaXQgc3Bhd25zXG4vLyBhIG5ldyB0YXNrIGFuZCByZXN0b3JlcyB0aGUgY29udGV4dCBvZiB0aGlzIHRhc2sgdG8gd2hhdCBpdCB3YXMgYmVmb3JlLlxuXG5cbmZ1bmN0aW9uIHJlbmRlck5vZGUocmVxdWVzdCwgdGFzaywgbm9kZSwgY2hpbGRJbmRleCkge1xuICAvLyBTbmFwc2hvdCB0aGUgY3VycmVudCBjb250ZXh0IGluIGNhc2Ugc29tZXRoaW5nIHRocm93cyB0byBpbnRlcnJ1cHQgdGhlXG4gIC8vIHByb2Nlc3MuXG4gIHZhciBwcmV2aW91c0Zvcm1hdENvbnRleHQgPSB0YXNrLmZvcm1hdENvbnRleHQ7XG4gIHZhciBwcmV2aW91c0xlZ2FjeUNvbnRleHQgPSB0YXNrLmxlZ2FjeUNvbnRleHQ7XG4gIHZhciBwcmV2aW91c0NvbnRleHQgPSB0YXNrLmNvbnRleHQ7XG4gIHZhciBwcmV2aW91c0tleVBhdGggPSB0YXNrLmtleVBhdGg7XG4gIHZhciBwcmV2aW91c1RyZWVDb250ZXh0ID0gdGFzay50cmVlQ29udGV4dDtcbiAgdmFyIHByZXZpb3VzQ29tcG9uZW50U3RhY2sgPSB0YXNrLmNvbXBvbmVudFN0YWNrO1xuICB2YXIgeDsgLy8gU3RvcmUgaG93IG11Y2ggd2UndmUgcHVzaGVkIGF0IHRoaXMgcG9pbnQgc28gd2UgY2FuIHJlc2V0IGl0IGluIGNhc2Ugc29tZXRoaW5nXG4gIC8vIHN1c3BlbmRlZCBwYXJ0aWFsbHkgdGhyb3VnaCB3cml0aW5nIHNvbWV0aGluZy5cblxuICB2YXIgc2VnbWVudCA9IHRhc2suYmxvY2tlZFNlZ21lbnQ7XG5cbiAgaWYgKHNlZ21lbnQgPT09IG51bGwpIHtcbiAgICAvLyBSZXBsYXlcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlbmRlck5vZGVEZXN0cnVjdGl2ZShyZXF1ZXN0LCB0YXNrLCBudWxsLCBub2RlLCBjaGlsZEluZGV4KTtcbiAgICB9IGNhdGNoICh0aHJvd25WYWx1ZSkge1xuICAgICAgcmVzZXRIb29rc1N0YXRlKCk7XG4gICAgICB4ID0gdGhyb3duVmFsdWUgPT09IFN1c3BlbnNlRXhjZXB0aW9uID8gLy8gVGhpcyBpcyBhIHNwZWNpYWwgdHlwZSBvZiBleGNlcHRpb24gdXNlZCBmb3IgU3VzcGVuc2UuIEZvciBoaXN0b3JpY2FsXG4gICAgICAvLyByZWFzb25zLCB0aGUgcmVzdCBvZiB0aGUgU3VzcGVuc2UgaW1wbGVtZW50YXRpb24gZXhwZWN0cyB0aGUgdGhyb3duXG4gICAgICAvLyB2YWx1ZSB0byBiZSBhIHRoZW5hYmxlLCBiZWNhdXNlIGJlZm9yZSBgdXNlYCBleGlzdGVkIHRoYXQgd2FzIHRoZVxuICAgICAgLy8gKHVuc3RhYmxlKSBBUEkgZm9yIHN1c3BlbmRpbmcuIFRoaXMgaW1wbGVtZW50YXRpb24gZGV0YWlsIGNhbiBjaGFuZ2VcbiAgICAgIC8vIGxhdGVyLCBvbmNlIHdlIGRlcHJlY2F0ZSB0aGUgb2xkIEFQSSBpbiBmYXZvciBvZiBgdXNlYC5cbiAgICAgIGdldFN1c3BlbmRlZFRoZW5hYmxlKCkgOiB0aHJvd25WYWx1ZTtcblxuICAgICAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4ICE9PSBudWxsKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbiAgICAgICAgaWYgKHR5cGVvZiB4LnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgd2FrZWFibGUgPSB4O1xuICAgICAgICAgIHZhciB0aGVuYWJsZVN0YXRlID0gZ2V0VGhlbmFibGVTdGF0ZUFmdGVyU3VzcGVuZGluZygpO1xuICAgICAgICAgIHNwYXduTmV3U3VzcGVuZGVkUmVwbGF5VGFzayhyZXF1ZXN0LCAvLyAkRmxvd0ZpeE1lOiBSZWZpbmVkLlxuICAgICAgICAgIHRhc2ssIHRoZW5hYmxlU3RhdGUsIHdha2VhYmxlKTsgLy8gUmVzdG9yZSB0aGUgY29udGV4dC4gV2UgYXNzdW1lIHRoYXQgdGhpcyB3aWxsIGJlIHJlc3RvcmVkIGJ5IHRoZSBpbm5lclxuICAgICAgICAgIC8vIGZ1bmN0aW9ucyBpbiBjYXNlIG5vdGhpbmcgdGhyb3dzIHNvIHdlIGRvbid0IHVzZSBcImZpbmFsbHlcIiBoZXJlLlxuXG4gICAgICAgICAgdGFzay5mb3JtYXRDb250ZXh0ID0gcHJldmlvdXNGb3JtYXRDb250ZXh0O1xuICAgICAgICAgIHRhc2subGVnYWN5Q29udGV4dCA9IHByZXZpb3VzTGVnYWN5Q29udGV4dDtcbiAgICAgICAgICB0YXNrLmNvbnRleHQgPSBwcmV2aW91c0NvbnRleHQ7XG4gICAgICAgICAgdGFzay5rZXlQYXRoID0gcHJldmlvdXNLZXlQYXRoO1xuICAgICAgICAgIHRhc2sudHJlZUNvbnRleHQgPSBwcmV2aW91c1RyZWVDb250ZXh0O1xuICAgICAgICAgIHRhc2suY29tcG9uZW50U3RhY2sgPSBwcmV2aW91c0NvbXBvbmVudFN0YWNrOyAvLyBSZXN0b3JlIGFsbCBhY3RpdmUgUmVhY3RDb250ZXh0cyB0byB3aGF0IHRoZXkgd2VyZSBiZWZvcmUuXG5cbiAgICAgICAgICBzd2l0Y2hDb250ZXh0KHByZXZpb3VzQ29udGV4dCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9IC8vIFRPRE86IEFib3J0IGFueSB1bmRpc2NvdmVyZWQgU3VzcGVuc2UgYm91bmRhcmllcyBpbiB0aGUgUmVwbGF5Tm9kZS5cblxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBSZW5kZXJcbiAgICB2YXIgY2hpbGRyZW5MZW5ndGggPSBzZWdtZW50LmNoaWxkcmVuLmxlbmd0aDtcbiAgICB2YXIgY2h1bmtMZW5ndGggPSBzZWdtZW50LmNodW5rcy5sZW5ndGg7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlbmRlck5vZGVEZXN0cnVjdGl2ZShyZXF1ZXN0LCB0YXNrLCBudWxsLCBub2RlLCBjaGlsZEluZGV4KTtcbiAgICB9IGNhdGNoICh0aHJvd25WYWx1ZSkge1xuICAgICAgcmVzZXRIb29rc1N0YXRlKCk7IC8vIFJlc2V0IHRoZSB3cml0ZSBwb2ludGVycyB0byB3aGVyZSB3ZSBzdGFydGVkLlxuXG4gICAgICBzZWdtZW50LmNoaWxkcmVuLmxlbmd0aCA9IGNoaWxkcmVuTGVuZ3RoO1xuICAgICAgc2VnbWVudC5jaHVua3MubGVuZ3RoID0gY2h1bmtMZW5ndGg7XG4gICAgICB4ID0gdGhyb3duVmFsdWUgPT09IFN1c3BlbnNlRXhjZXB0aW9uID8gLy8gVGhpcyBpcyBhIHNwZWNpYWwgdHlwZSBvZiBleGNlcHRpb24gdXNlZCBmb3IgU3VzcGVuc2UuIEZvciBoaXN0b3JpY2FsXG4gICAgICAvLyByZWFzb25zLCB0aGUgcmVzdCBvZiB0aGUgU3VzcGVuc2UgaW1wbGVtZW50YXRpb24gZXhwZWN0cyB0aGUgdGhyb3duXG4gICAgICAvLyB2YWx1ZSB0byBiZSBhIHRoZW5hYmxlLCBiZWNhdXNlIGJlZm9yZSBgdXNlYCBleGlzdGVkIHRoYXQgd2FzIHRoZVxuICAgICAgLy8gKHVuc3RhYmxlKSBBUEkgZm9yIHN1c3BlbmRpbmcuIFRoaXMgaW1wbGVtZW50YXRpb24gZGV0YWlsIGNhbiBjaGFuZ2VcbiAgICAgIC8vIGxhdGVyLCBvbmNlIHdlIGRlcHJlY2F0ZSB0aGUgb2xkIEFQSSBpbiBmYXZvciBvZiBgdXNlYC5cbiAgICAgIGdldFN1c3BlbmRlZFRoZW5hYmxlKCkgOiB0aHJvd25WYWx1ZTtcblxuICAgICAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4ICE9PSBudWxsKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbiAgICAgICAgaWYgKHR5cGVvZiB4LnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgX3dha2VhYmxlID0geDtcblxuICAgICAgICAgIHZhciBfdGhlbmFibGVTdGF0ZSA9IGdldFRoZW5hYmxlU3RhdGVBZnRlclN1c3BlbmRpbmcoKTtcblxuICAgICAgICAgIHNwYXduTmV3U3VzcGVuZGVkUmVuZGVyVGFzayhyZXF1ZXN0LCAvLyAkRmxvd0ZpeE1lOiBSZWZpbmVkLlxuICAgICAgICAgIHRhc2ssIF90aGVuYWJsZVN0YXRlLCBfd2FrZWFibGUpOyAvLyBSZXN0b3JlIHRoZSBjb250ZXh0LiBXZSBhc3N1bWUgdGhhdCB0aGlzIHdpbGwgYmUgcmVzdG9yZWQgYnkgdGhlIGlubmVyXG4gICAgICAgICAgLy8gZnVuY3Rpb25zIGluIGNhc2Ugbm90aGluZyB0aHJvd3Mgc28gd2UgZG9uJ3QgdXNlIFwiZmluYWxseVwiIGhlcmUuXG5cbiAgICAgICAgICB0YXNrLmZvcm1hdENvbnRleHQgPSBwcmV2aW91c0Zvcm1hdENvbnRleHQ7XG4gICAgICAgICAgdGFzay5sZWdhY3lDb250ZXh0ID0gcHJldmlvdXNMZWdhY3lDb250ZXh0O1xuICAgICAgICAgIHRhc2suY29udGV4dCA9IHByZXZpb3VzQ29udGV4dDtcbiAgICAgICAgICB0YXNrLmtleVBhdGggPSBwcmV2aW91c0tleVBhdGg7XG4gICAgICAgICAgdGFzay50cmVlQ29udGV4dCA9IHByZXZpb3VzVHJlZUNvbnRleHQ7XG4gICAgICAgICAgdGFzay5jb21wb25lbnRTdGFjayA9IHByZXZpb3VzQ29tcG9uZW50U3RhY2s7IC8vIFJlc3RvcmUgYWxsIGFjdGl2ZSBSZWFjdENvbnRleHRzIHRvIHdoYXQgdGhleSB3ZXJlIGJlZm9yZS5cblxuICAgICAgICAgIHN3aXRjaENvbnRleHQocHJldmlvdXNDb250ZXh0KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gUmVzdG9yZSB0aGUgY29udGV4dC4gV2UgYXNzdW1lIHRoYXQgdGhpcyB3aWxsIGJlIHJlc3RvcmVkIGJ5IHRoZSBpbm5lclxuICAvLyBmdW5jdGlvbnMgaW4gY2FzZSBub3RoaW5nIHRocm93cyBzbyB3ZSBkb24ndCB1c2UgXCJmaW5hbGx5XCIgaGVyZS5cblxuXG4gIHRhc2suZm9ybWF0Q29udGV4dCA9IHByZXZpb3VzRm9ybWF0Q29udGV4dDtcbiAgdGFzay5sZWdhY3lDb250ZXh0ID0gcHJldmlvdXNMZWdhY3lDb250ZXh0O1xuICB0YXNrLmNvbnRleHQgPSBwcmV2aW91c0NvbnRleHQ7XG4gIHRhc2sua2V5UGF0aCA9IHByZXZpb3VzS2V5UGF0aDtcbiAgdGFzay50cmVlQ29udGV4dCA9IHByZXZpb3VzVHJlZUNvbnRleHQ7IC8vIFdlIGludGVudGlvbmFsbHkgZG8gbm90IHJlc3RvcmUgdGhlIGNvbXBvbmVudCBzdGFjayBvbiB0aGUgZXJyb3IgcGF0aHdheVxuICAvLyBXaGF0ZXZlciBoYW5kbGVzIHRoZSBlcnJvciBuZWVkcyB0byB1c2UgdGhpcyBzdGFjayB3aGljaCBpcyB0aGUgbG9jYXRpb24gb2YgdGhlXG4gIC8vIGVycm9yLiBXZSBtdXN0IHJlc3RvcmUgdGhlIHN0YWNrIHdoZXJldmVyIHdlIGhhbmRsZSB0aGlzXG4gIC8vIFJlc3RvcmUgYWxsIGFjdGl2ZSBSZWFjdENvbnRleHRzIHRvIHdoYXQgdGhleSB3ZXJlIGJlZm9yZS5cblxuICBzd2l0Y2hDb250ZXh0KHByZXZpb3VzQ29udGV4dCk7XG4gIHRocm93IHg7XG59XG5cbmZ1bmN0aW9uIGVycm9yZWRSZXBsYXkocmVxdWVzdCwgYm91bmRhcnksIGVycm9yLCBlcnJvckluZm8sIHJlcGxheU5vZGVzLCByZXN1bWVTbG90cykge1xuICAvLyBFcnJvcmluZyBkdXJpbmcgYSByZXBsYXkgZG9lc24ndCBhY3R1YWxseSBjYXVzZSBhbiBlcnJvciBieSBpdHNlbGYgYmVjYXVzZVxuICAvLyB0aGF0IGNvbXBvbmVudCBoYXMgYWxyZWFkeSByZW5kZXJlZC4gV2hhdCBjYXVzZXMgdGhlIGVycm9yIGlzIHRoZSByZXN1bWFibGVcbiAgLy8gcG9pbnRzIHRoYXQgd2UgZGlkIG5vdCB5ZXQgZmluaXNoIHdoaWNoIHdpbGwgYmUgYmVsb3cgdGhlIHBvaW50IG9mIHRoZSByZXNldC5cbiAgLy8gRm9yIGV4YW1wbGUsIGlmIHdlJ3JlIHJlcGxheWluZyBhIHBhdGggdG8gYSBTdXNwZW5zZSBib3VuZGFyeSB0aGF0IGlzIG5vdCBkb25lXG4gIC8vIHRoYXQgZG9lc24ndCBlcnJvciB0aGUgcGFyZW50IFN1c3BlbnNlIGJvdW5kYXJ5LlxuICAvLyBUaGlzIG1pZ2h0IGJlIGEgYml0IHN0cmFuZ2UgdGhhdCB0aGUgZXJyb3IgaW4gYSBwYXJlbnQgZ2V0cyB0aHJvd24gYXQgYSBjaGlsZC5cbiAgLy8gV2UgbG9nIGl0IG9ubHkgb25jZSBhbmQgcmV1c2UgdGhlIGRpZ2VzdC5cbiAgdmFyIGVycm9yRGlnZXN0O1xuXG4gIHtcbiAgICBlcnJvckRpZ2VzdCA9IGxvZ1JlY292ZXJhYmxlRXJyb3IocmVxdWVzdCwgZXJyb3IsIGVycm9ySW5mbyk7XG4gIH1cblxuICBhYm9ydFJlbWFpbmluZ1JlcGxheU5vZGVzKHJlcXVlc3QsIGJvdW5kYXJ5LCByZXBsYXlOb2RlcywgcmVzdW1lU2xvdHMsIGVycm9yLCBlcnJvckRpZ2VzdCwgZXJyb3JJbmZvKTtcbn1cblxuZnVuY3Rpb24gZXJyb3JlZFRhc2socmVxdWVzdCwgYm91bmRhcnksIGVycm9yLCBlcnJvckluZm8pIHtcbiAgLy8gUmVwb3J0IHRoZSBlcnJvciB0byBhIGdsb2JhbCBoYW5kbGVyLlxuICB2YXIgZXJyb3JEaWdlc3Q7XG5cbiAge1xuICAgIGVycm9yRGlnZXN0ID0gbG9nUmVjb3ZlcmFibGVFcnJvcihyZXF1ZXN0LCBlcnJvciwgZXJyb3JJbmZvKTtcbiAgfVxuXG4gIGlmIChib3VuZGFyeSA9PT0gbnVsbCkge1xuICAgIGZhdGFsRXJyb3IocmVxdWVzdCwgZXJyb3IpO1xuICB9IGVsc2Uge1xuICAgIGJvdW5kYXJ5LnBlbmRpbmdUYXNrcy0tO1xuXG4gICAgaWYgKGJvdW5kYXJ5LnN0YXR1cyAhPT0gQ0xJRU5UX1JFTkRFUkVEKSB7XG4gICAgICBib3VuZGFyeS5zdGF0dXMgPSBDTElFTlRfUkVOREVSRUQ7XG4gICAgICBlbmNvZGVFcnJvckZvckJvdW5kYXJ5KGJvdW5kYXJ5LCBlcnJvckRpZ2VzdCwgZXJyb3IsIGVycm9ySW5mbyk7XG4gICAgICB1bnRyYWNrQm91bmRhcnkocmVxdWVzdCwgYm91bmRhcnkpOyAvLyBSZWdhcmRsZXNzIG9mIHdoYXQgaGFwcGVucyBuZXh0LCB0aGlzIGJvdW5kYXJ5IHdvbid0IGJlIGRpc3BsYXllZCxcbiAgICAgIC8vIHNvIHdlIGNhbiBmbHVzaCBpdCwgaWYgdGhlIHBhcmVudCBhbHJlYWR5IGZsdXNoZWQuXG5cbiAgICAgIGlmIChib3VuZGFyeS5wYXJlbnRGbHVzaGVkKSB7XG4gICAgICAgIC8vIFdlIGRvbid0IGhhdmUgYSBwcmVmZXJlbmNlIHdoZXJlIGluIHRoZSBxdWV1ZSB0aGlzIGdvZXMgc2luY2UgaXQncyBsaWtlbHlcbiAgICAgICAgLy8gdG8gZXJyb3Igb24gdGhlIGNsaWVudCBhbnl3YXkuIEhvd2V2ZXIsIGludGVudGlvbmFsbHkgY2xpZW50LXJlbmRlcmVkXG4gICAgICAgIC8vIGJvdW5kYXJpZXMgc2hvdWxkIGJlIGZsdXNoZWQgZWFybGllciBzbyB0aGF0IHRoZXkgY2FuIHN0YXJ0IG9uIHRoZSBjbGllbnQuXG4gICAgICAgIC8vIFdlIHJldXNlIHRoZSBzYW1lIHF1ZXVlIGZvciBlcnJvcnMuXG4gICAgICAgIHJlcXVlc3QuY2xpZW50UmVuZGVyZWRCb3VuZGFyaWVzLnB1c2goYm91bmRhcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlcXVlc3QuYWxsUGVuZGluZ1Rhc2tzLS07XG5cbiAgaWYgKHJlcXVlc3QuYWxsUGVuZGluZ1Rhc2tzID09PSAwKSB7XG4gICAgY29tcGxldGVBbGwocmVxdWVzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWJvcnRUYXNrU29mdCh0YXNrKSB7XG4gIC8vIFRoaXMgYWJvcnRzIHRhc2sgd2l0aG91dCBhYm9ydGluZyB0aGUgcGFyZW50IGJvdW5kYXJ5IHRoYXQgaXQgYmxvY2tzLlxuICAvLyBJdCdzIHVzZWQgZm9yIHdoZW4gd2UgZGlkbid0IG5lZWQgdGhpcyB0YXNrIHRvIGNvbXBsZXRlIHRoZSB0cmVlLlxuICAvLyBJZiB0YXNrIHdhcyBuZWVkZWQsIHRoZW4gaXQgc2hvdWxkIHVzZSBhYm9ydFRhc2sgaW5zdGVhZC5cbiAgdmFyIHJlcXVlc3QgPSB0aGlzO1xuICB2YXIgYm91bmRhcnkgPSB0YXNrLmJsb2NrZWRCb3VuZGFyeTtcbiAgdmFyIHNlZ21lbnQgPSB0YXNrLmJsb2NrZWRTZWdtZW50O1xuXG4gIGlmIChzZWdtZW50ICE9PSBudWxsKSB7XG4gICAgc2VnbWVudC5zdGF0dXMgPSBBQk9SVEVEO1xuICAgIGZpbmlzaGVkVGFzayhyZXF1ZXN0LCBib3VuZGFyeSwgc2VnbWVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWJvcnRSZW1haW5pbmdTdXNwZW5zZUJvdW5kYXJ5KHJlcXVlc3QsIHJvb3RTZWdtZW50SUQsIGVycm9yLCBlcnJvckRpZ2VzdCwgZXJyb3JJbmZvKSB7XG4gIHZhciByZXN1bWVkQm91bmRhcnkgPSBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KHJlcXVlc3QsIG5ldyBTZXQoKSk7XG4gIHJlc3VtZWRCb3VuZGFyeS5wYXJlbnRGbHVzaGVkID0gdHJ1ZTsgLy8gV2UgcmVzdG9yZSB0aGUgc2FtZSBpZCBvZiB0aGlzIGJvdW5kYXJ5IGFzIHdhcyB1c2VkIGR1cmluZyBwcmVyZW5kZXIuXG5cbiAgcmVzdW1lZEJvdW5kYXJ5LnJvb3RTZWdtZW50SUQgPSByb290U2VnbWVudElEO1xuICByZXN1bWVkQm91bmRhcnkuc3RhdHVzID0gQ0xJRU5UX1JFTkRFUkVEO1xuICB2YXIgZXJyb3JNZXNzYWdlID0gZXJyb3I7XG5cbiAge1xuICAgIHZhciBlcnJvclByZWZpeCA9ICdUaGUgc2VydmVyIGRpZCBub3QgZmluaXNoIHRoaXMgU3VzcGVuc2UgYm91bmRhcnk6ICc7XG5cbiAgICBpZiAoZXJyb3IgJiYgdHlwZW9mIGVycm9yLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvclByZWZpeCArIGVycm9yLm1lc3NhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3JQcmVmaXggKyBTdHJpbmcoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGVuY29kZUVycm9yRm9yQm91bmRhcnkocmVzdW1lZEJvdW5kYXJ5LCBlcnJvckRpZ2VzdCwgZXJyb3JNZXNzYWdlLCBlcnJvckluZm8pO1xuXG4gIGlmIChyZXN1bWVkQm91bmRhcnkucGFyZW50Rmx1c2hlZCkge1xuICAgIHJlcXVlc3QuY2xpZW50UmVuZGVyZWRCb3VuZGFyaWVzLnB1c2gocmVzdW1lZEJvdW5kYXJ5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhYm9ydFJlbWFpbmluZ1JlcGxheU5vZGVzKHJlcXVlc3QsIGJvdW5kYXJ5LCBub2Rlcywgc2xvdHMsIGVycm9yLCBlcnJvckRpZ2VzdCwgZXJyb3JJbmZvKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbm9kZSA9IG5vZGVzW2ldO1xuXG4gICAgaWYgKG5vZGUubGVuZ3RoID09PSA0KSB7XG4gICAgICBhYm9ydFJlbWFpbmluZ1JlcGxheU5vZGVzKHJlcXVlc3QsIGJvdW5kYXJ5LCBub2RlWzJdLCBub2RlWzNdLCBlcnJvciwgZXJyb3JEaWdlc3QsIGVycm9ySW5mbyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBib3VuZGFyeU5vZGUgPSBub2RlO1xuICAgICAgdmFyIHJvb3RTZWdtZW50SUQgPSBib3VuZGFyeU5vZGVbNV07XG4gICAgICBhYm9ydFJlbWFpbmluZ1N1c3BlbnNlQm91bmRhcnkocmVxdWVzdCwgcm9vdFNlZ21lbnRJRCwgZXJyb3IsIGVycm9yRGlnZXN0LCBlcnJvckluZm8pO1xuICAgIH1cbiAgfSAvLyBFbXB0eSB0aGUgc2V0LCBzaW5jZSB3ZSd2ZSBjbGVhcmVkIGl0IG5vdy5cblxuXG4gIG5vZGVzLmxlbmd0aCA9IDA7XG5cbiAgaWYgKHNsb3RzICE9PSBudWxsKSB7XG4gICAgLy8gV2UgaGFkIHNvbWV0aGluZyBzdGlsbCB0byByZXN1bWUgaW4gdGhlIHBhcmVudCBib3VuZGFyeS4gV2UgbXVzdCB0cmlnZ2VyXG4gICAgLy8gdGhlIGVycm9yIG9uIHRoZSBwYXJlbnQgYm91bmRhcnkgc2luY2UgaXQncyBub3QgYWJsZSB0byBjb21wbGV0ZS5cbiAgICBpZiAoYm91bmRhcnkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignV2Ugc2hvdWxkIG5vdCBoYXZlIGFueSByZXN1bWFibGUgbm9kZXMgaW4gdGhlIHNoZWxsLiAnICsgJ1RoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gICAgfSBlbHNlIGlmIChib3VuZGFyeS5zdGF0dXMgIT09IENMSUVOVF9SRU5ERVJFRCkge1xuICAgICAgYm91bmRhcnkuc3RhdHVzID0gQ0xJRU5UX1JFTkRFUkVEO1xuICAgICAgZW5jb2RlRXJyb3JGb3JCb3VuZGFyeShib3VuZGFyeSwgZXJyb3JEaWdlc3QsIGVycm9yLCBlcnJvckluZm8pO1xuXG4gICAgICBpZiAoYm91bmRhcnkucGFyZW50Rmx1c2hlZCkge1xuICAgICAgICByZXF1ZXN0LmNsaWVudFJlbmRlcmVkQm91bmRhcmllcy5wdXNoKGJvdW5kYXJ5KTtcbiAgICAgIH1cbiAgICB9IC8vIEVtcHR5IHRoZSBzZXRcblxuXG4gICAgaWYgKHR5cGVvZiBzbG90cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAodmFyIGluZGV4IGluIHNsb3RzKSB7XG4gICAgICAgIGRlbGV0ZSBzbG90c1tpbmRleF07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFib3J0VGFzayh0YXNrLCByZXF1ZXN0LCBlcnJvcikge1xuICAvLyBUaGlzIGFib3J0cyB0aGUgdGFzayBhbmQgYWJvcnRzIHRoZSBwYXJlbnQgdGhhdCBpdCBibG9ja3MsIHB1dHRpbmcgaXQgaW50b1xuICAvLyBjbGllbnQgcmVuZGVyZWQgbW9kZS5cbiAgdmFyIGJvdW5kYXJ5ID0gdGFzay5ibG9ja2VkQm91bmRhcnk7XG4gIHZhciBzZWdtZW50ID0gdGFzay5ibG9ja2VkU2VnbWVudDtcblxuICBpZiAoc2VnbWVudCAhPT0gbnVsbCkge1xuICAgIHNlZ21lbnQuc3RhdHVzID0gQUJPUlRFRDtcbiAgfVxuXG4gIGlmIChib3VuZGFyeSA9PT0gbnVsbCkge1xuICAgIHZhciBlcnJvckluZm8gPSB7fTtcblxuICAgIGlmIChyZXF1ZXN0LnN0YXR1cyAhPT0gQ0xPU0lORyAmJiByZXF1ZXN0LnN0YXR1cyAhPT0gQ0xPU0VEKSB7XG4gICAgICB2YXIgcmVwbGF5ID0gdGFzay5yZXBsYXk7XG5cbiAgICAgIGlmIChyZXBsYXkgPT09IG51bGwpIHtcbiAgICAgICAgLy8gV2UgZGlkbid0IGNvbXBsZXRlIHRoZSByb290IHNvIHdlIGhhdmUgbm90aGluZyB0byBzaG93LiBXZSBjYW4gY2xvc2VcbiAgICAgICAgLy8gdGhlIHJlcXVlc3Q7XG4gICAgICAgIGxvZ1JlY292ZXJhYmxlRXJyb3IocmVxdWVzdCwgZXJyb3IsIGVycm9ySW5mbyk7XG4gICAgICAgIGZhdGFsRXJyb3IocmVxdWVzdCwgZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB0aGUgc2hlbGwgYWJvcnRzIGR1cmluZyBhIHJlcGxheSwgdGhhdCdzIG5vdCBhIGZhdGFsIGVycm9yLiBJbnN0ZWFkXG4gICAgICAgIC8vIHdlIHNob3VsZCBiZSBhYmxlIHRvIHJlY292ZXIgYnkgY2xpZW50IHJlbmRlcmluZyBhbGwgdGhlIHJvb3QgYm91bmRhcmllcyBpblxuICAgICAgICAvLyB0aGUgUmVwbGF5U2V0LlxuICAgICAgICByZXBsYXkucGVuZGluZ1Rhc2tzLS07XG5cbiAgICAgICAgaWYgKHJlcGxheS5wZW5kaW5nVGFza3MgPT09IDAgJiYgcmVwbGF5Lm5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB2YXIgZXJyb3JEaWdlc3QgPSBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIGVycm9yLCBlcnJvckluZm8pO1xuICAgICAgICAgIGFib3J0UmVtYWluaW5nUmVwbGF5Tm9kZXMocmVxdWVzdCwgbnVsbCwgcmVwbGF5Lm5vZGVzLCByZXBsYXkuc2xvdHMsIGVycm9yLCBlcnJvckRpZ2VzdCwgZXJyb3JJbmZvKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcXVlc3QucGVuZGluZ1Jvb3RUYXNrcy0tO1xuXG4gICAgICAgIGlmIChyZXF1ZXN0LnBlbmRpbmdSb290VGFza3MgPT09IDApIHtcbiAgICAgICAgICBjb21wbGV0ZVNoZWxsKHJlcXVlc3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGJvdW5kYXJ5LnBlbmRpbmdUYXNrcy0tO1xuXG4gICAgaWYgKGJvdW5kYXJ5LnN0YXR1cyAhPT0gQ0xJRU5UX1JFTkRFUkVEKSB7XG4gICAgICBib3VuZGFyeS5zdGF0dXMgPSBDTElFTlRfUkVOREVSRUQ7IC8vIFdlIGNvbnN0cnVjdCBhbiBlcnJvckluZm8gZnJvbSB0aGUgYm91bmRhcnkncyBjb21wb25lbnRTdGFjayBzbyB0aGUgZXJyb3IgaW4gZGV2IHdpbGwgaW5kaWNhdGUgd2hpY2hcbiAgICAgIC8vIGJvdW5kYXJ5IHRoZSBtZXNzYWdlIGlzIHJlZmVycmluZyB0b1xuXG4gICAgICB2YXIgX2Vycm9ySW5mbyA9IGdldFRocm93bkluZm8ocmVxdWVzdCwgdGFzay5jb21wb25lbnRTdGFjayk7XG5cbiAgICAgIHZhciBfZXJyb3JEaWdlc3QgPSBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIGVycm9yLCBfZXJyb3JJbmZvKTtcblxuICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IGVycm9yO1xuXG4gICAgICB7XG4gICAgICAgIHZhciBlcnJvclByZWZpeCA9ICdUaGUgc2VydmVyIGRpZCBub3QgZmluaXNoIHRoaXMgU3VzcGVuc2UgYm91bmRhcnk6ICc7XG5cbiAgICAgICAgaWYgKGVycm9yICYmIHR5cGVvZiBlcnJvci5tZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yUHJlZml4ICsgZXJyb3IubWVzc2FnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvclByZWZpeCArIFN0cmluZyhlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZW5jb2RlRXJyb3JGb3JCb3VuZGFyeShib3VuZGFyeSwgX2Vycm9yRGlnZXN0LCBlcnJvck1lc3NhZ2UsIF9lcnJvckluZm8pO1xuICAgICAgdW50cmFja0JvdW5kYXJ5KHJlcXVlc3QsIGJvdW5kYXJ5KTtcblxuICAgICAgaWYgKGJvdW5kYXJ5LnBhcmVudEZsdXNoZWQpIHtcbiAgICAgICAgcmVxdWVzdC5jbGllbnRSZW5kZXJlZEJvdW5kYXJpZXMucHVzaChib3VuZGFyeSk7XG4gICAgICB9XG4gICAgfSAvLyBJZiB0aGlzIGJvdW5kYXJ5IHdhcyBzdGlsbCBwZW5kaW5nIHRoZW4gd2UgaGF2ZW4ndCBhbHJlYWR5IGNhbmNlbGxlZCBpdHMgZmFsbGJhY2tzLlxuICAgIC8vIFdlJ2xsIG5lZWQgdG8gYWJvcnQgdGhlIGZhbGxiYWNrcywgd2hpY2ggd2lsbCBhbHNvIGVycm9yIHRoYXQgcGFyZW50IGJvdW5kYXJ5LlxuXG5cbiAgICBib3VuZGFyeS5mYWxsYmFja0Fib3J0YWJsZVRhc2tzLmZvckVhY2goZnVuY3Rpb24gKGZhbGxiYWNrVGFzaykge1xuICAgICAgcmV0dXJuIGFib3J0VGFzayhmYWxsYmFja1Rhc2ssIHJlcXVlc3QsIGVycm9yKTtcbiAgICB9KTtcbiAgICBib3VuZGFyeS5mYWxsYmFja0Fib3J0YWJsZVRhc2tzLmNsZWFyKCk7XG4gIH1cblxuICByZXF1ZXN0LmFsbFBlbmRpbmdUYXNrcy0tO1xuXG4gIGlmIChyZXF1ZXN0LmFsbFBlbmRpbmdUYXNrcyA9PT0gMCkge1xuICAgIGNvbXBsZXRlQWxsKHJlcXVlc3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNhZmVseUVtaXRFYXJseVByZWxvYWRzKHJlcXVlc3QsIHNoZWxsQ29tcGxldGUpIHtcbiAgdHJ5IHtcbiAgICBlbWl0RWFybHlQcmVsb2FkcyhyZXF1ZXN0LnJlbmRlclN0YXRlLCByZXF1ZXN0LnJlc3VtYWJsZVN0YXRlLCBzaGVsbENvbXBsZXRlKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBXZSBhc3N1bWUgcHJlbG9hZHMgYXJlIG9wdGltaXN0aWMgYW5kIHRodXMgbm9uLWZhdGFsIGlmIGVycm9yZWQuXG4gICAgdmFyIGVycm9ySW5mbyA9IHt9O1xuICAgIGxvZ1JlY292ZXJhYmxlRXJyb3IocmVxdWVzdCwgZXJyb3IsIGVycm9ySW5mbyk7XG4gIH1cbn0gLy8gSSBleHRyYWN0ZWQgdGhpcyBmdW5jdGlvbiBvdXQgYmVjYXVzZSB3ZSB3YW50IHRvIGVuc3VyZSB3ZSBjb25zaXN0ZW50bHkgZW1pdCBwcmVsb2FkcyBiZWZvcmVcbi8vIHRyYW5zaXRpb25pbmcgdG8gdGhlIG5leHQgcmVxdWVzdCBzdGFnZSBhbmQgdGhpcyB0cmFuc2l0aW9uIGNhbiBoYXBwZW4gaW4gbXVsdGlwbGUgcGxhY2VzIGluIHRoaXNcbi8vIGltcGxlbWVudGF0aW9uLlxuXG5cbmZ1bmN0aW9uIGNvbXBsZXRlU2hlbGwocmVxdWVzdCkge1xuICBpZiAocmVxdWVzdC50cmFja2VkUG9zdHBvbmVzID09PSBudWxsKSB7XG4gICAgLy8gV2Ugb25seSBlbWl0IGVhcmx5IHByZWxvYWRzIG9uIHNoZWxsIGNvbXBsZXRpb24gZm9yIHJlbmRlcnMuIEZvciBwcmVyZW5kZXJzXG4gICAgLy8gd2Ugd2FpdCBmb3IgdGhlIGVudGlyZSBSZXF1ZXN0IHRvIGZpbmlzaCBiZWNhdXNlIHdlIGFyZSBub3QgcmVzcG9uZGluZyB0byBhXG4gICAgLy8gbGl2ZSByZXF1ZXN0IGFuZCBjYW4gd2FpdCBmb3IgYXMgbXVjaCBkYXRhIGFzIHBvc3NpYmxlLlxuICAgIC8vIHdlIHNob3VsZCBvbmx5IGJlIGNhbGxpbmcgY29tcGxldGVTaGVsbCB3aGVuIHRoZSBzaGVsbCBpcyBjb21wbGV0ZSBzbyB3ZVxuICAgIC8vIGp1c3QgdXNlIGEgbGl0ZXJhbCBoZXJlXG4gICAgdmFyIHNoZWxsQ29tcGxldGUgPSB0cnVlO1xuICAgIHNhZmVseUVtaXRFYXJseVByZWxvYWRzKHJlcXVlc3QsIHNoZWxsQ29tcGxldGUpO1xuICB9IC8vIFdlIGhhdmUgY29tcGxldGVkIHRoZSBzaGVsbCBzbyB0aGUgc2hlbGwgY2FuJ3QgZXJyb3IgYW55bW9yZS5cblxuXG4gIHJlcXVlc3Qub25TaGVsbEVycm9yID0gbm9vcDtcbiAgdmFyIG9uU2hlbGxSZWFkeSA9IHJlcXVlc3Qub25TaGVsbFJlYWR5O1xuICBvblNoZWxsUmVhZHkoKTtcbn0gLy8gSSBleHRyYWN0ZWQgdGhpcyBmdW5jdGlvbiBvdXQgYmVjYXVzZSB3ZSB3YW50IHRvIGVuc3VyZSB3ZSBjb25zaXN0ZW50bHkgZW1pdCBwcmVsb2FkcyBiZWZvcmVcbi8vIHRyYW5zaXRpb25pbmcgdG8gdGhlIG5leHQgcmVxdWVzdCBzdGFnZSBhbmQgdGhpcyB0cmFuc2l0aW9uIGNhbiBoYXBwZW4gaW4gbXVsdGlwbGUgcGxhY2VzIGluIHRoaXNcbi8vIGltcGxlbWVudGF0aW9uLlxuXG5cbmZ1bmN0aW9uIGNvbXBsZXRlQWxsKHJlcXVlc3QpIHtcbiAgLy8gRHVyaW5nIGEgcmVuZGVyIHRoZSBzaGVsbCBtdXN0IGJlIGNvbXBsZXRlIGlmIHRoZSBlbnRpcmUgcmVxdWVzdCBpcyBmaW5pc2hlZFxuICAvLyBob3dldmVyIGR1cmluZyBhIFByZXJlbmRlciBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBzaGVsbCBpcyBpbmNvbXBsZXRlIGJlY2F1c2VcbiAgLy8gaXQgcG9zdHBvbmVkLiBXZSBjYW5ub3QgdXNlIHJvb3RQZW5kaW5nVGFza3MgaW4gdGhlIHByZXJlbmRlciBjYXNlIGJlY2F1c2VcbiAgLy8gdGhvc2UgaGl0IHplcm8gZXZlbiB3aGVuIHRoZSBzaGVsbCBwb3N0cG9uZXMuIEluc3RlYWQgd2UgbG9vayBhdCB0aGUgY29tcGxldGVkUm9vdFNlZ21lbnRcbiAgdmFyIHNoZWxsQ29tcGxldGUgPSByZXF1ZXN0LnRyYWNrZWRQb3N0cG9uZXMgPT09IG51bGwgPyAvLyBSZW5kZXIsIHdlIGFzc3VtZSBpdCBpcyBjb21wbGV0ZWRcbiAgdHJ1ZSA6IC8vIFByZXJlbmRlciBSZXF1ZXN0LCB3ZSB1c2UgdGhlIHN0YXRlIG9mIHRoZSByb290IHNlZ21lbnRcbiAgcmVxdWVzdC5jb21wbGV0ZWRSb290U2VnbWVudCA9PT0gbnVsbCB8fCByZXF1ZXN0LmNvbXBsZXRlZFJvb3RTZWdtZW50LnN0YXR1cyAhPT0gUE9TVFBPTkVEO1xuICBzYWZlbHlFbWl0RWFybHlQcmVsb2FkcyhyZXF1ZXN0LCBzaGVsbENvbXBsZXRlKTtcbiAgdmFyIG9uQWxsUmVhZHkgPSByZXF1ZXN0Lm9uQWxsUmVhZHk7XG4gIG9uQWxsUmVhZHkoKTtcbn1cblxuZnVuY3Rpb24gcXVldWVDb21wbGV0ZWRTZWdtZW50KGJvdW5kYXJ5LCBzZWdtZW50KSB7XG4gIGlmIChzZWdtZW50LmNodW5rcy5sZW5ndGggPT09IDAgJiYgc2VnbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgc2VnbWVudC5jaGlsZHJlblswXS5ib3VuZGFyeSA9PT0gbnVsbCAmJiBzZWdtZW50LmNoaWxkcmVuWzBdLmlkID09PSAtMSkge1xuICAgIC8vIFRoaXMgaXMgYW4gZW1wdHkgc2VnbWVudC4gVGhlcmUncyBub3RoaW5nIHRvIHdyaXRlLCBzbyB3ZSBjYW4gaW5zdGVhZCB0cmFuc2ZlciB0aGUgSURcbiAgICAvLyB0byB0aGUgY2hpbGQuIFRoYXQgd2F5IGFueSBleGlzdGluZyByZWZlcmVuY2VzIHBvaW50IHRvIHRoZSBjaGlsZC5cbiAgICB2YXIgY2hpbGRTZWdtZW50ID0gc2VnbWVudC5jaGlsZHJlblswXTtcbiAgICBjaGlsZFNlZ21lbnQuaWQgPSBzZWdtZW50LmlkO1xuICAgIGNoaWxkU2VnbWVudC5wYXJlbnRGbHVzaGVkID0gdHJ1ZTtcblxuICAgIGlmIChjaGlsZFNlZ21lbnQuc3RhdHVzID09PSBDT01QTEVURUQpIHtcbiAgICAgIHF1ZXVlQ29tcGxldGVkU2VnbWVudChib3VuZGFyeSwgY2hpbGRTZWdtZW50KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGNvbXBsZXRlZFNlZ21lbnRzID0gYm91bmRhcnkuY29tcGxldGVkU2VnbWVudHM7XG4gICAgY29tcGxldGVkU2VnbWVudHMucHVzaChzZWdtZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5pc2hlZFRhc2socmVxdWVzdCwgYm91bmRhcnksIHNlZ21lbnQpIHtcbiAgaWYgKGJvdW5kYXJ5ID09PSBudWxsKSB7XG4gICAgaWYgKHNlZ21lbnQgIT09IG51bGwgJiYgc2VnbWVudC5wYXJlbnRGbHVzaGVkKSB7XG4gICAgICBpZiAocmVxdWVzdC5jb21wbGV0ZWRSb290U2VnbWVudCAhPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGNhbiBvbmx5IGJlIG9uZSByb290IHNlZ21lbnQuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3QuY29tcGxldGVkUm9vdFNlZ21lbnQgPSBzZWdtZW50O1xuICAgIH1cblxuICAgIHJlcXVlc3QucGVuZGluZ1Jvb3RUYXNrcy0tO1xuXG4gICAgaWYgKHJlcXVlc3QucGVuZGluZ1Jvb3RUYXNrcyA9PT0gMCkge1xuICAgICAgY29tcGxldGVTaGVsbChyZXF1ZXN0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYm91bmRhcnkucGVuZGluZ1Rhc2tzLS07XG5cbiAgICBpZiAoYm91bmRhcnkuc3RhdHVzID09PSBDTElFTlRfUkVOREVSRUQpIDsgZWxzZSBpZiAoYm91bmRhcnkucGVuZGluZ1Rhc2tzID09PSAwKSB7XG4gICAgICBpZiAoYm91bmRhcnkuc3RhdHVzID09PSBQRU5ESU5HKSB7XG4gICAgICAgIGJvdW5kYXJ5LnN0YXR1cyA9IENPTVBMRVRFRDtcbiAgICAgIH0gLy8gVGhpcyBtdXN0IGhhdmUgYmVlbiB0aGUgbGFzdCBzZWdtZW50IHdlIHdlcmUgd2FpdGluZyBvbi4gVGhpcyBib3VuZGFyeSBpcyBub3cgY29tcGxldGUuXG5cblxuICAgICAgaWYgKHNlZ21lbnQgIT09IG51bGwgJiYgc2VnbWVudC5wYXJlbnRGbHVzaGVkKSB7XG4gICAgICAgIC8vIE91ciBwYXJlbnQgc2VnbWVudCBhbHJlYWR5IGZsdXNoZWQsIHNvIHdlIG5lZWQgdG8gc2NoZWR1bGUgdGhpcyBzZWdtZW50IHRvIGJlIGVtaXR0ZWQuXG4gICAgICAgIC8vIElmIGl0IGlzIGEgc2VnbWVudCB0aGF0IHdhcyBhYm9ydGVkLCB3ZSdsbCB3cml0ZSBvdGhlciBjb250ZW50IGluc3RlYWQgc28gd2UgZG9uJ3QgbmVlZFxuICAgICAgICAvLyB0byBlbWl0IGl0LlxuICAgICAgICBpZiAoc2VnbWVudC5zdGF0dXMgPT09IENPTVBMRVRFRCkge1xuICAgICAgICAgIHF1ZXVlQ29tcGxldGVkU2VnbWVudChib3VuZGFyeSwgc2VnbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGJvdW5kYXJ5LnBhcmVudEZsdXNoZWQpIHtcbiAgICAgICAgLy8gVGhlIHNlZ21lbnQgbWlnaHQgYmUgcGFydCBvZiBhIHNlZ21lbnQgdGhhdCBkaWRuJ3QgZmx1c2ggeWV0LCBidXQgaWYgdGhlIGJvdW5kYXJ5J3NcbiAgICAgICAgLy8gcGFyZW50IGZsdXNoZWQsIHdlIG5lZWQgdG8gc2NoZWR1bGUgdGhlIGJvdW5kYXJ5IHRvIGJlIGVtaXR0ZWQuXG4gICAgICAgIHJlcXVlc3QuY29tcGxldGVkQm91bmRhcmllcy5wdXNoKGJvdW5kYXJ5KTtcbiAgICAgIH0gLy8gV2UgY2FuIG5vdyBjYW5jZWwgYW55IHBlbmRpbmcgdGFzayBvbiB0aGUgZmFsbGJhY2sgc2luY2Ugd2Ugd29uJ3QgbmVlZCB0byBzaG93IGl0IGFueW1vcmUuXG4gICAgICAvLyBUaGlzIG5lZWRzIHRvIGhhcHBlbiBhZnRlciB3ZSByZWFkIHRoZSBwYXJlbnRGbHVzaGVkIGZsYWdzIGJlY2F1c2UgYWJvcnRpbmcgY2FuIGZpbmlzaFxuICAgICAgLy8gd29yayB3aGljaCBjYW4gdHJpZ2dlciB1c2VyIGNvZGUsIHdoaWNoIGNhbiBzdGFydCBmbHVzaGluZywgd2hpY2ggY2FuIGNoYW5nZSB0aG9zZSBmbGFncy5cbiAgICAgIC8vIElmIHRoZSBib3VuZGFyeSB3YXMgUE9TVFBPTkVELCB3ZSBzdGlsbCBuZWVkIHRvIGZpbmlzaCB0aGUgZmFsbGJhY2sgZmlyc3QuXG5cblxuICAgICAgaWYgKGJvdW5kYXJ5LnN0YXR1cyA9PT0gQ09NUExFVEVEKSB7XG4gICAgICAgIGJvdW5kYXJ5LmZhbGxiYWNrQWJvcnRhYmxlVGFza3MuZm9yRWFjaChhYm9ydFRhc2tTb2Z0LCByZXF1ZXN0KTtcbiAgICAgICAgYm91bmRhcnkuZmFsbGJhY2tBYm9ydGFibGVUYXNrcy5jbGVhcigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2VnbWVudCAhPT0gbnVsbCAmJiBzZWdtZW50LnBhcmVudEZsdXNoZWQpIHtcbiAgICAgICAgLy8gT3VyIHBhcmVudCBhbHJlYWR5IGZsdXNoZWQsIHNvIHdlIG5lZWQgdG8gc2NoZWR1bGUgdGhpcyBzZWdtZW50IHRvIGJlIGVtaXR0ZWQuXG4gICAgICAgIC8vIElmIGl0IGlzIGEgc2VnbWVudCB0aGF0IHdhcyBhYm9ydGVkLCB3ZSdsbCB3cml0ZSBvdGhlciBjb250ZW50IGluc3RlYWQgc28gd2UgZG9uJ3QgbmVlZFxuICAgICAgICAvLyB0byBlbWl0IGl0LlxuICAgICAgICBpZiAoc2VnbWVudC5zdGF0dXMgPT09IENPTVBMRVRFRCkge1xuICAgICAgICAgIHF1ZXVlQ29tcGxldGVkU2VnbWVudChib3VuZGFyeSwgc2VnbWVudCk7XG4gICAgICAgICAgdmFyIGNvbXBsZXRlZFNlZ21lbnRzID0gYm91bmRhcnkuY29tcGxldGVkU2VnbWVudHM7XG5cbiAgICAgICAgICBpZiAoY29tcGxldGVkU2VnbWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB0aW1lIHNpbmNlIHdlIGxhc3QgZmx1c2hlZCB0aGF0IHdlIGNvbXBsZXRlZCBhbnl0aGluZy5cbiAgICAgICAgICAgIC8vIFdlIGNhbiBzY2hlZHVsZSB0aGlzIGJvdW5kYXJ5IHRvIGVtaXQgaXRzIHBhcnRpYWxseSBjb21wbGV0ZWQgc2VnbWVudHMgZWFybHlcbiAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlIHBhcmVudCBoYXMgYWxyZWFkeSBiZWVuIGZsdXNoZWQuXG4gICAgICAgICAgICBpZiAoYm91bmRhcnkucGFyZW50Rmx1c2hlZCkge1xuICAgICAgICAgICAgICByZXF1ZXN0LnBhcnRpYWxCb3VuZGFyaWVzLnB1c2goYm91bmRhcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlcXVlc3QuYWxsUGVuZGluZ1Rhc2tzLS07XG5cbiAgaWYgKHJlcXVlc3QuYWxsUGVuZGluZ1Rhc2tzID09PSAwKSB7XG4gICAgY29tcGxldGVBbGwocmVxdWVzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmV0cnlUYXNrKHJlcXVlc3QsIHRhc2spIHtcbiAge1xuICAgIHZhciBibG9ja2VkQm91bmRhcnkgPSB0YXNrLmJsb2NrZWRCb3VuZGFyeTtcbiAgICBzZXRDdXJyZW50bHlSZW5kZXJpbmdCb3VuZGFyeVJlc291cmNlc1RhcmdldChyZXF1ZXN0LnJlbmRlclN0YXRlLCBibG9ja2VkQm91bmRhcnkgPyBibG9ja2VkQm91bmRhcnkucmVzb3VyY2VzIDogbnVsbCk7XG4gIH1cblxuICB2YXIgc2VnbWVudCA9IHRhc2suYmxvY2tlZFNlZ21lbnQ7XG5cbiAgaWYgKHNlZ21lbnQgPT09IG51bGwpIHtcbiAgICByZXRyeVJlcGxheVRhc2socmVxdWVzdCwgLy8gJEZsb3dGaXhNZTogUmVmaW5lZC5cbiAgICB0YXNrKTtcbiAgfSBlbHNlIHtcbiAgICByZXRyeVJlbmRlclRhc2socmVxdWVzdCwgLy8gJEZsb3dGaXhNZTogUmVmaW5lZC5cbiAgICB0YXNrLCBzZWdtZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXRyeVJlbmRlclRhc2socmVxdWVzdCwgdGFzaywgc2VnbWVudCkge1xuICBpZiAoc2VnbWVudC5zdGF0dXMgIT09IFBFTkRJTkcpIHtcbiAgICAvLyBXZSBjb21wbGV0ZWQgdGhpcyBieSBvdGhlciBtZWFucyBiZWZvcmUgd2UgaGFkIGEgY2hhbmNlIHRvIHJldHJ5IGl0LlxuICAgIHJldHVybjtcbiAgfSAvLyBXZSByZXN0b3JlIHRoZSBjb250ZXh0IHRvIHdoYXQgaXQgd2FzIHdoZW4gd2Ugc3VzcGVuZGVkLlxuICAvLyBXZSBkb24ndCByZXN0b3JlIGl0IGFmdGVyIHdlIGxlYXZlIGJlY2F1c2UgaXQncyBsaWtlbHkgdGhhdCB3ZSdsbCBlbmQgdXBcbiAgLy8gbmVlZGluZyBhIHZlcnkgc2ltaWxhciBjb250ZXh0IHNvb24gYWdhaW4uXG5cblxuICBzd2l0Y2hDb250ZXh0KHRhc2suY29udGV4dCk7XG4gIHZhciBwcmV2VGFza0luREVWID0gbnVsbDtcblxuICB7XG4gICAgcHJldlRhc2tJbkRFViA9IGN1cnJlbnRUYXNrSW5ERVY7XG4gICAgY3VycmVudFRhc2tJbkRFViA9IHRhc2s7XG4gIH1cblxuICB2YXIgY2hpbGRyZW5MZW5ndGggPSBzZWdtZW50LmNoaWxkcmVuLmxlbmd0aDtcbiAgdmFyIGNodW5rTGVuZ3RoID0gc2VnbWVudC5jaHVua3MubGVuZ3RoO1xuXG4gIHRyeSB7XG4gICAgLy8gV2UgY2FsbCB0aGUgZGVzdHJ1Y3RpdmUgZm9ybSB0aGF0IG11dGF0ZXMgdGhpcyB0YXNrLiBUaGF0IHdheSBpZiBzb21ldGhpbmdcbiAgICAvLyBzdXNwZW5kcyBhZ2Fpbiwgd2UgY2FuIHJldXNlIHRoZSBzYW1lIHRhc2sgaW5zdGVhZCBvZiBzcGF3bmluZyBhIG5ldyBvbmUuXG4gICAgLy8gUmVzZXQgdGhlIHRhc2sncyB0aGVuYWJsZSBzdGF0ZSBiZWZvcmUgY29udGludWluZywgc28gdGhhdCBpZiBhIGxhdGVyXG4gICAgLy8gY29tcG9uZW50IHN1c3BlbmRzIHdlIGNhbiByZXVzZSB0aGUgc2FtZSB0YXNrIG9iamVjdC4gSWYgdGhlIHNhbWVcbiAgICAvLyBjb21wb25lbnQgc3VzcGVuZHMgYWdhaW4sIHRoZSB0aGVuYWJsZSBzdGF0ZSB3aWxsIGJlIHJlc3RvcmVkLlxuICAgIHZhciBwcmV2VGhlbmFibGVTdGF0ZSA9IHRhc2sudGhlbmFibGVTdGF0ZTtcbiAgICB0YXNrLnRoZW5hYmxlU3RhdGUgPSBudWxsO1xuICAgIHJlbmRlck5vZGVEZXN0cnVjdGl2ZShyZXF1ZXN0LCB0YXNrLCBwcmV2VGhlbmFibGVTdGF0ZSwgdGFzay5ub2RlLCB0YXNrLmNoaWxkSW5kZXgpO1xuICAgIHB1c2hTZWdtZW50RmluYWxlKHNlZ21lbnQuY2h1bmtzLCByZXF1ZXN0LnJlbmRlclN0YXRlLCBzZWdtZW50Lmxhc3RQdXNoZWRUZXh0LCBzZWdtZW50LnRleHRFbWJlZGRlZCk7XG4gICAgdGFzay5hYm9ydFNldC5kZWxldGUodGFzayk7XG4gICAgc2VnbWVudC5zdGF0dXMgPSBDT01QTEVURUQ7XG4gICAgZmluaXNoZWRUYXNrKHJlcXVlc3QsIHRhc2suYmxvY2tlZEJvdW5kYXJ5LCBzZWdtZW50KTtcbiAgfSBjYXRjaCAodGhyb3duVmFsdWUpIHtcbiAgICByZXNldEhvb2tzU3RhdGUoKTsgLy8gUmVzZXQgdGhlIHdyaXRlIHBvaW50ZXJzIHRvIHdoZXJlIHdlIHN0YXJ0ZWQuXG5cbiAgICBzZWdtZW50LmNoaWxkcmVuLmxlbmd0aCA9IGNoaWxkcmVuTGVuZ3RoO1xuICAgIHNlZ21lbnQuY2h1bmtzLmxlbmd0aCA9IGNodW5rTGVuZ3RoO1xuICAgIHZhciB4ID0gdGhyb3duVmFsdWUgPT09IFN1c3BlbnNlRXhjZXB0aW9uID8gLy8gVGhpcyBpcyBhIHNwZWNpYWwgdHlwZSBvZiBleGNlcHRpb24gdXNlZCBmb3IgU3VzcGVuc2UuIEZvciBoaXN0b3JpY2FsXG4gICAgLy8gcmVhc29ucywgdGhlIHJlc3Qgb2YgdGhlIFN1c3BlbnNlIGltcGxlbWVudGF0aW9uIGV4cGVjdHMgdGhlIHRocm93blxuICAgIC8vIHZhbHVlIHRvIGJlIGEgdGhlbmFibGUsIGJlY2F1c2UgYmVmb3JlIGB1c2VgIGV4aXN0ZWQgdGhhdCB3YXMgdGhlXG4gICAgLy8gKHVuc3RhYmxlKSBBUEkgZm9yIHN1c3BlbmRpbmcuIFRoaXMgaW1wbGVtZW50YXRpb24gZGV0YWlsIGNhbiBjaGFuZ2VcbiAgICAvLyBsYXRlciwgb25jZSB3ZSBkZXByZWNhdGUgdGhlIG9sZCBBUEkgaW4gZmF2b3Igb2YgYHVzZWAuXG4gICAgZ2V0U3VzcGVuZGVkVGhlbmFibGUoKSA6IHRocm93blZhbHVlO1xuXG4gICAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4ICE9PSBudWxsKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG4gICAgICBpZiAodHlwZW9mIHgudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBTb21ldGhpbmcgc3VzcGVuZGVkIGFnYWluLCBsZXQncyBwaWNrIGl0IGJhY2sgdXAgbGF0ZXIuXG4gICAgICAgIHZhciBwaW5nID0gdGFzay5waW5nO1xuICAgICAgICB4LnRoZW4ocGluZywgcGluZyk7XG4gICAgICAgIHRhc2sudGhlbmFibGVTdGF0ZSA9IGdldFRoZW5hYmxlU3RhdGVBZnRlclN1c3BlbmRpbmcoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBlcnJvckluZm8gPSBnZXRUaHJvd25JbmZvKHJlcXVlc3QsIHRhc2suY29tcG9uZW50U3RhY2spO1xuICAgIHRhc2suYWJvcnRTZXQuZGVsZXRlKHRhc2spO1xuICAgIHNlZ21lbnQuc3RhdHVzID0gRVJST1JFRDtcbiAgICBlcnJvcmVkVGFzayhyZXF1ZXN0LCB0YXNrLmJsb2NrZWRCb3VuZGFyeSwgeCwgZXJyb3JJbmZvKTtcbiAgICByZXR1cm47XG4gIH0gZmluYWxseSB7XG4gICAge1xuICAgICAgc2V0Q3VycmVudGx5UmVuZGVyaW5nQm91bmRhcnlSZXNvdXJjZXNUYXJnZXQocmVxdWVzdC5yZW5kZXJTdGF0ZSwgbnVsbCk7XG4gICAgfVxuXG4gICAge1xuICAgICAgY3VycmVudFRhc2tJbkRFViA9IHByZXZUYXNrSW5ERVY7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJldHJ5UmVwbGF5VGFzayhyZXF1ZXN0LCB0YXNrKSB7XG4gIGlmICh0YXNrLnJlcGxheS5wZW5kaW5nVGFza3MgPT09IDApIHtcbiAgICAvLyBUaGVyZSBhcmUgbm8gcGVuZGluZyB0YXNrcyB3b3JraW5nIG9uIHRoaXMgc2V0LCBzbyB3ZSBtdXN0IGhhdmUgYWJvcnRlZC5cbiAgICByZXR1cm47XG4gIH0gLy8gV2UgcmVzdG9yZSB0aGUgY29udGV4dCB0byB3aGF0IGl0IHdhcyB3aGVuIHdlIHN1c3BlbmRlZC5cbiAgLy8gV2UgZG9uJ3QgcmVzdG9yZSBpdCBhZnRlciB3ZSBsZWF2ZSBiZWNhdXNlIGl0J3MgbGlrZWx5IHRoYXQgd2UnbGwgZW5kIHVwXG4gIC8vIG5lZWRpbmcgYSB2ZXJ5IHNpbWlsYXIgY29udGV4dCBzb29uIGFnYWluLlxuXG5cbiAgc3dpdGNoQ29udGV4dCh0YXNrLmNvbnRleHQpO1xuICB2YXIgcHJldlRhc2tJbkRFViA9IG51bGw7XG5cbiAge1xuICAgIHByZXZUYXNrSW5ERVYgPSBjdXJyZW50VGFza0luREVWO1xuICAgIGN1cnJlbnRUYXNrSW5ERVYgPSB0YXNrO1xuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBXZSBjYWxsIHRoZSBkZXN0cnVjdGl2ZSBmb3JtIHRoYXQgbXV0YXRlcyB0aGlzIHRhc2suIFRoYXQgd2F5IGlmIHNvbWV0aGluZ1xuICAgIC8vIHN1c3BlbmRzIGFnYWluLCB3ZSBjYW4gcmV1c2UgdGhlIHNhbWUgdGFzayBpbnN0ZWFkIG9mIHNwYXduaW5nIGEgbmV3IG9uZS5cbiAgICAvLyBSZXNldCB0aGUgdGFzaydzIHRoZW5hYmxlIHN0YXRlIGJlZm9yZSBjb250aW51aW5nLCBzbyB0aGF0IGlmIGEgbGF0ZXJcbiAgICAvLyBjb21wb25lbnQgc3VzcGVuZHMgd2UgY2FuIHJldXNlIHRoZSBzYW1lIHRhc2sgb2JqZWN0LiBJZiB0aGUgc2FtZVxuICAgIC8vIGNvbXBvbmVudCBzdXNwZW5kcyBhZ2FpbiwgdGhlIHRoZW5hYmxlIHN0YXRlIHdpbGwgYmUgcmVzdG9yZWQuXG4gICAgdmFyIHByZXZUaGVuYWJsZVN0YXRlID0gdGFzay50aGVuYWJsZVN0YXRlO1xuICAgIHRhc2sudGhlbmFibGVTdGF0ZSA9IG51bGw7XG4gICAgcmVuZGVyTm9kZURlc3RydWN0aXZlKHJlcXVlc3QsIHRhc2ssIHByZXZUaGVuYWJsZVN0YXRlLCB0YXNrLm5vZGUsIHRhc2suY2hpbGRJbmRleCk7XG5cbiAgICBpZiAodGFzay5yZXBsYXkucGVuZGluZ1Rhc2tzID09PSAxICYmIHRhc2sucmVwbGF5Lm5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYWxsIHJlc3VtYWJsZSBzbG90cyBieSBrZXkvaW5kZXggZHVyaW5nIHJlcGxheWluZy4gXCIgKyBcIlRoZSB0cmVlIGRvZXNuJ3QgbWF0Y2ggc28gUmVhY3Qgd2lsbCBmYWxsYmFjayB0byBjbGllbnQgcmVuZGVyaW5nLlwiKTtcbiAgICB9XG5cbiAgICB0YXNrLnJlcGxheS5wZW5kaW5nVGFza3MtLTtcbiAgICB0YXNrLmFib3J0U2V0LmRlbGV0ZSh0YXNrKTtcbiAgICBmaW5pc2hlZFRhc2socmVxdWVzdCwgdGFzay5ibG9ja2VkQm91bmRhcnksIG51bGwpO1xuICB9IGNhdGNoICh0aHJvd25WYWx1ZSkge1xuICAgIHJlc2V0SG9va3NTdGF0ZSgpO1xuICAgIHZhciB4ID0gdGhyb3duVmFsdWUgPT09IFN1c3BlbnNlRXhjZXB0aW9uID8gLy8gVGhpcyBpcyBhIHNwZWNpYWwgdHlwZSBvZiBleGNlcHRpb24gdXNlZCBmb3IgU3VzcGVuc2UuIEZvciBoaXN0b3JpY2FsXG4gICAgLy8gcmVhc29ucywgdGhlIHJlc3Qgb2YgdGhlIFN1c3BlbnNlIGltcGxlbWVudGF0aW9uIGV4cGVjdHMgdGhlIHRocm93blxuICAgIC8vIHZhbHVlIHRvIGJlIGEgdGhlbmFibGUsIGJlY2F1c2UgYmVmb3JlIGB1c2VgIGV4aXN0ZWQgdGhhdCB3YXMgdGhlXG4gICAgLy8gKHVuc3RhYmxlKSBBUEkgZm9yIHN1c3BlbmRpbmcuIFRoaXMgaW1wbGVtZW50YXRpb24gZGV0YWlsIGNhbiBjaGFuZ2VcbiAgICAvLyBsYXRlciwgb25jZSB3ZSBkZXByZWNhdGUgdGhlIG9sZCBBUEkgaW4gZmF2b3Igb2YgYHVzZWAuXG4gICAgZ2V0U3VzcGVuZGVkVGhlbmFibGUoKSA6IHRocm93blZhbHVlO1xuXG4gICAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4ICE9PSBudWxsKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG4gICAgICBpZiAodHlwZW9mIHgudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBTb21ldGhpbmcgc3VzcGVuZGVkIGFnYWluLCBsZXQncyBwaWNrIGl0IGJhY2sgdXAgbGF0ZXIuXG4gICAgICAgIHZhciBwaW5nID0gdGFzay5waW5nO1xuICAgICAgICB4LnRoZW4ocGluZywgcGluZyk7XG4gICAgICAgIHRhc2sudGhlbmFibGVTdGF0ZSA9IGdldFRoZW5hYmxlU3RhdGVBZnRlclN1c3BlbmRpbmcoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRhc2sucmVwbGF5LnBlbmRpbmdUYXNrcy0tO1xuICAgIHRhc2suYWJvcnRTZXQuZGVsZXRlKHRhc2spO1xuICAgIHZhciBlcnJvckluZm8gPSBnZXRUaHJvd25JbmZvKHJlcXVlc3QsIHRhc2suY29tcG9uZW50U3RhY2spO1xuICAgIGVycm9yZWRSZXBsYXkocmVxdWVzdCwgdGFzay5ibG9ja2VkQm91bmRhcnksIHgsIGVycm9ySW5mbywgdGFzay5yZXBsYXkubm9kZXMsIHRhc2sucmVwbGF5LnNsb3RzKTtcbiAgICByZXF1ZXN0LnBlbmRpbmdSb290VGFza3MtLTtcblxuICAgIGlmIChyZXF1ZXN0LnBlbmRpbmdSb290VGFza3MgPT09IDApIHtcbiAgICAgIGNvbXBsZXRlU2hlbGwocmVxdWVzdCk7XG4gICAgfVxuXG4gICAgcmVxdWVzdC5hbGxQZW5kaW5nVGFza3MtLTtcblxuICAgIGlmIChyZXF1ZXN0LmFsbFBlbmRpbmdUYXNrcyA9PT0gMCkge1xuICAgICAgY29tcGxldGVBbGwocmVxdWVzdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9IGZpbmFsbHkge1xuICAgIHtcbiAgICAgIHNldEN1cnJlbnRseVJlbmRlcmluZ0JvdW5kYXJ5UmVzb3VyY2VzVGFyZ2V0KHJlcXVlc3QucmVuZGVyU3RhdGUsIG51bGwpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGN1cnJlbnRUYXNrSW5ERVYgPSBwcmV2VGFza0luREVWO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwZXJmb3JtV29yayhyZXF1ZXN0KSB7XG4gIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gQ0xPU0VEKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIHByZXZDb250ZXh0ID0gZ2V0QWN0aXZlQ29udGV4dCgpO1xuICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7XG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IEhvb2tzRGlzcGF0Y2hlcjtcbiAgdmFyIHByZXZDYWNoZURpc3BhdGNoZXI7XG5cbiAge1xuICAgIHByZXZDYWNoZURpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnRDYWNoZS5jdXJyZW50O1xuICAgIFJlYWN0Q3VycmVudENhY2hlLmN1cnJlbnQgPSBEZWZhdWx0Q2FjaGVEaXNwYXRjaGVyO1xuICB9XG5cbiAgdmFyIHByZXZSZXF1ZXN0ID0gY3VycmVudFJlcXVlc3Q7XG4gIGN1cnJlbnRSZXF1ZXN0ID0gcmVxdWVzdDtcbiAgdmFyIHByZXZHZXRDdXJyZW50U3RhY2tJbXBsO1xuXG4gIHtcbiAgICBwcmV2R2V0Q3VycmVudFN0YWNrSW1wbCA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrO1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gZ2V0Q3VycmVudFN0YWNrSW5ERVY7XG4gIH1cblxuICB2YXIgcHJldlJlc3VtYWJsZVN0YXRlID0gY3VycmVudFJlc3VtYWJsZVN0YXRlO1xuICBzZXRDdXJyZW50UmVzdW1hYmxlU3RhdGUocmVxdWVzdC5yZXN1bWFibGVTdGF0ZSk7XG5cbiAgdHJ5IHtcbiAgICB2YXIgcGluZ2VkVGFza3MgPSByZXF1ZXN0LnBpbmdlZFRhc2tzO1xuICAgIHZhciBpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHBpbmdlZFRhc2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdGFzayA9IHBpbmdlZFRhc2tzW2ldO1xuICAgICAgcmV0cnlUYXNrKHJlcXVlc3QsIHRhc2spO1xuICAgIH1cblxuICAgIHBpbmdlZFRhc2tzLnNwbGljZSgwLCBpKTtcblxuICAgIGlmIChyZXF1ZXN0LmRlc3RpbmF0aW9uICE9PSBudWxsKSB7XG4gICAgICBmbHVzaENvbXBsZXRlZFF1ZXVlcyhyZXF1ZXN0LCByZXF1ZXN0LmRlc3RpbmF0aW9uKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdmFyIGVycm9ySW5mbyA9IHt9O1xuICAgIGxvZ1JlY292ZXJhYmxlRXJyb3IocmVxdWVzdCwgZXJyb3IsIGVycm9ySW5mbyk7XG4gICAgZmF0YWxFcnJvcihyZXF1ZXN0LCBlcnJvcik7XG4gIH0gZmluYWxseSB7XG4gICAgc2V0Q3VycmVudFJlc3VtYWJsZVN0YXRlKHByZXZSZXN1bWFibGVTdGF0ZSk7XG4gICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG5cbiAgICB7XG4gICAgICBSZWFjdEN1cnJlbnRDYWNoZS5jdXJyZW50ID0gcHJldkNhY2hlRGlzcGF0Y2hlcjtcbiAgICB9XG5cbiAgICB7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldEN1cnJlbnRTdGFjayA9IHByZXZHZXRDdXJyZW50U3RhY2tJbXBsO1xuICAgIH1cblxuICAgIGlmIChwcmV2RGlzcGF0Y2hlciA9PT0gSG9va3NEaXNwYXRjaGVyKSB7XG4gICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgd2Ugd2VyZSBpbiBhIHJlZW50cmFudCB3b3JrIGxvb3AuIFRoaXMgY291bGQgaGFwcGVuXG4gICAgICAvLyBpbiBhIHJlbmRlcmVyIHRoYXQgc3VwcG9ydHMgc3luY2hyb25vdXMgd29yayBsaWtlIHJlbmRlclRvU3RyaW5nLFxuICAgICAgLy8gd2hlbiBpdCdzIGNhbGxlZCBmcm9tIHdpdGhpbiBhbm90aGVyIHJlbmRlcmVyLlxuICAgICAgLy8gTm9ybWFsbHkgd2UgZG9uJ3QgYm90aGVyIHN3aXRjaGluZyB0aGUgY29udGV4dHMgdG8gdGhlaXIgcm9vdC9kZWZhdWx0XG4gICAgICAvLyB2YWx1ZXMgd2hlbiBsZWF2aW5nIGJlY2F1c2Ugd2UnbGwgbGlrZWx5IG5lZWQgdGhlIHNhbWUgb3Igc2ltaWxhclxuICAgICAgLy8gY29udGV4dCBhZ2Fpbi4gSG93ZXZlciwgd2hlbiB3ZSdyZSBpbnNpZGUgYSBzeW5jaHJvbm91cyBsb29wIGxpa2UgdGhpc1xuICAgICAgLy8gd2UnbGwgdG8gcmVzdG9yZSB0aGUgY29udGV4dCB0byB3aGF0IGl0IHdhcyBiZWZvcmUgcmV0dXJuaW5nLlxuICAgICAgc3dpdGNoQ29udGV4dChwcmV2Q29udGV4dCk7XG4gICAgfVxuXG4gICAgY3VycmVudFJlcXVlc3QgPSBwcmV2UmVxdWVzdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFN1YnRyZWUocmVxdWVzdCwgZGVzdGluYXRpb24sIHNlZ21lbnQpIHtcbiAgc2VnbWVudC5wYXJlbnRGbHVzaGVkID0gdHJ1ZTtcblxuICBzd2l0Y2ggKHNlZ21lbnQuc3RhdHVzKSB7XG4gICAgY2FzZSBQRU5ESU5HOlxuICAgICAge1xuICAgICAgICAvLyBXZSdyZSBlbWl0dGluZyBhIHBsYWNlaG9sZGVyIGZvciB0aGlzIHNlZ21lbnQgdG8gYmUgZmlsbGVkIGluIGxhdGVyLlxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UnbGwgbmVlZCB0byBhc3NpZ24gaXQgYW4gSUQgLSB0byByZWZlciB0byBpdCBieS5cbiAgICAgICAgc2VnbWVudC5pZCA9IHJlcXVlc3QubmV4dFNlZ21lbnRJZCsrOyAvLyBGYWxsdGhyb3VnaFxuICAgICAgfVxuXG4gICAgY2FzZSBQT1NUUE9ORUQ6XG4gICAgICB7XG4gICAgICAgIHZhciBzZWdtZW50SUQgPSBzZWdtZW50LmlkOyAvLyBXaGVuIHRoaXMgc2VnbWVudCBmaW5hbGx5IGNvbXBsZXRlcyBpdCB3b24ndCBiZSBlbWJlZGRlZCBpbiB0ZXh0IHNpbmNlIGl0IHdpbGwgZmx1c2ggc2VwYXJhdGVseVxuXG4gICAgICAgIHNlZ21lbnQubGFzdFB1c2hlZFRleHQgPSBmYWxzZTtcbiAgICAgICAgc2VnbWVudC50ZXh0RW1iZWRkZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHdyaXRlUGxhY2Vob2xkZXIoZGVzdGluYXRpb24sIHJlcXVlc3QucmVuZGVyU3RhdGUsIHNlZ21lbnRJRCk7XG4gICAgICB9XG5cbiAgICBjYXNlIENPTVBMRVRFRDpcbiAgICAgIHtcbiAgICAgICAgc2VnbWVudC5zdGF0dXMgPSBGTFVTSEVEO1xuICAgICAgICB2YXIgciA9IHRydWU7XG4gICAgICAgIHZhciBjaHVua3MgPSBzZWdtZW50LmNodW5rcztcbiAgICAgICAgdmFyIGNodW5rSWR4ID0gMDtcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gc2VnbWVudC5jaGlsZHJlbjtcblxuICAgICAgICBmb3IgKHZhciBjaGlsZElkeCA9IDA7IGNoaWxkSWR4IDwgY2hpbGRyZW4ubGVuZ3RoOyBjaGlsZElkeCsrKSB7XG4gICAgICAgICAgdmFyIG5leHRDaGlsZCA9IGNoaWxkcmVuW2NoaWxkSWR4XTsgLy8gV3JpdGUgYWxsIHRoZSBjaHVua3MgdXAgdW50aWwgdGhlIG5leHQgY2hpbGQuXG5cbiAgICAgICAgICBmb3IgKDsgY2h1bmtJZHggPCBuZXh0Q2hpbGQuaW5kZXg7IGNodW5rSWR4KyspIHtcbiAgICAgICAgICAgIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNodW5rc1tjaHVua0lkeF0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHIgPSBmbHVzaFNlZ21lbnQocmVxdWVzdCwgZGVzdGluYXRpb24sIG5leHRDaGlsZCk7XG4gICAgICAgIH0gLy8gRmluYWxseSBqdXN0IHdyaXRlIGFsbCB0aGUgcmVtYWluaW5nIGNodW5rc1xuXG5cbiAgICAgICAgZm9yICg7IGNodW5rSWR4IDwgY2h1bmtzLmxlbmd0aCAtIDE7IGNodW5rSWR4KyspIHtcbiAgICAgICAgICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjaHVua3NbY2h1bmtJZHhdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaHVua0lkeCA8IGNodW5rcy5sZW5ndGgpIHtcbiAgICAgICAgICByID0gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgY2h1bmtzW2NodW5rSWR4XSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQWJvcnRlZCwgZXJyb3JlZCBvciBhbHJlYWR5IGZsdXNoZWQgYm91bmRhcmllcyBzaG91bGQgbm90IGJlIGZsdXNoZWQgYWdhaW4uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gICAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmx1c2hTZWdtZW50KHJlcXVlc3QsIGRlc3RpbmF0aW9uLCBzZWdtZW50KSB7XG4gIHZhciBib3VuZGFyeSA9IHNlZ21lbnQuYm91bmRhcnk7XG5cbiAgaWYgKGJvdW5kYXJ5ID09PSBudWxsKSB7XG4gICAgLy8gTm90IGEgc3VzcGVuc2UgYm91bmRhcnkuXG4gICAgcmV0dXJuIGZsdXNoU3VidHJlZShyZXF1ZXN0LCBkZXN0aW5hdGlvbiwgc2VnbWVudCk7XG4gIH1cblxuICBib3VuZGFyeS5wYXJlbnRGbHVzaGVkID0gdHJ1ZTsgLy8gVGhpcyBzZWdtZW50IGlzIGEgU3VzcGVuc2UgYm91bmRhcnkuIFdlIG5lZWQgdG8gZGVjaWRlIHdoZXRoZXIgdG9cbiAgLy8gZW1pdCB0aGUgY29udGVudCBvciB0aGUgZmFsbGJhY2sgbm93LlxuXG4gIGlmIChib3VuZGFyeS5zdGF0dXMgPT09IENMSUVOVF9SRU5ERVJFRCkge1xuICAgIC8vIEVtaXQgYSBjbGllbnQgcmVuZGVyZWQgc3VzcGVuc2UgYm91bmRhcnkgd3JhcHBlci5cbiAgICAvLyBXZSBuZXZlciBxdWV1ZSB0aGUgaW5uZXIgYm91bmRhcnkgc28gd2UnbGwgbmV2ZXIgZW1pdCBpdHMgY29udGVudCBvciBwYXJ0aWFsIHNlZ21lbnRzLlxuICAgIHdyaXRlU3RhcnRDbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnkoZGVzdGluYXRpb24sIHJlcXVlc3QucmVuZGVyU3RhdGUsIGJvdW5kYXJ5LmVycm9yRGlnZXN0LCBib3VuZGFyeS5lcnJvck1lc3NhZ2UsIGJvdW5kYXJ5LmVycm9yQ29tcG9uZW50U3RhY2spOyAvLyBGbHVzaCB0aGUgZmFsbGJhY2suXG5cbiAgICBmbHVzaFN1YnRyZWUocmVxdWVzdCwgZGVzdGluYXRpb24sIHNlZ21lbnQpO1xuICAgIHJldHVybiB3cml0ZUVuZENsaWVudFJlbmRlcmVkU3VzcGVuc2VCb3VuZGFyeShkZXN0aW5hdGlvbik7XG4gIH0gZWxzZSBpZiAoYm91bmRhcnkuc3RhdHVzICE9PSBDT01QTEVURUQpIHtcbiAgICBpZiAoYm91bmRhcnkuc3RhdHVzID09PSBQRU5ESU5HKSB7XG4gICAgICAvLyBGb3IgcGVuZGluZyBib3VuZGFyaWVzIHdlIGxhemlseSBhc3NpZ24gYW4gSUQgdG8gdGhlIGJvdW5kYXJ5XG4gICAgICAvLyBhbmQgcm9vdCBzZWdtZW50LlxuICAgICAgYm91bmRhcnkucm9vdFNlZ21lbnRJRCA9IHJlcXVlc3QubmV4dFNlZ21lbnRJZCsrO1xuICAgIH1cblxuICAgIGlmIChib3VuZGFyeS5jb21wbGV0ZWRTZWdtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBJZiB0aGlzIGlzIGF0IGxlYXN0IHBhcnRpYWxseSBjb21wbGV0ZSwgd2UgY2FuIHF1ZXVlIGl0IHRvIGJlIHBhcnRpYWxseSBlbWl0dGVkIGVhcmx5LlxuICAgICAgcmVxdWVzdC5wYXJ0aWFsQm91bmRhcmllcy5wdXNoKGJvdW5kYXJ5KTtcbiAgICB9IC8vIFRoaXMgYm91bmRhcnkgaXMgc3RpbGwgbG9hZGluZy4gRW1pdCBhIHBlbmRpbmcgc3VzcGVuc2UgYm91bmRhcnkgd3JhcHBlci5cblxuXG4gICAgdmFyIGlkID0gYm91bmRhcnkucm9vdFNlZ21lbnRJRDtcbiAgICB3cml0ZVN0YXJ0UGVuZGluZ1N1c3BlbnNlQm91bmRhcnkoZGVzdGluYXRpb24sIHJlcXVlc3QucmVuZGVyU3RhdGUsIGlkKTsgLy8gRmx1c2ggdGhlIGZhbGxiYWNrLlxuXG4gICAgZmx1c2hTdWJ0cmVlKHJlcXVlc3QsIGRlc3RpbmF0aW9uLCBzZWdtZW50KTtcbiAgICByZXR1cm4gd3JpdGVFbmRQZW5kaW5nU3VzcGVuc2VCb3VuZGFyeShkZXN0aW5hdGlvbik7XG4gIH0gZWxzZSBpZiAoYm91bmRhcnkuYnl0ZVNpemUgPiByZXF1ZXN0LnByb2dyZXNzaXZlQ2h1bmtTaXplKSB7XG4gICAgLy8gVGhpcyBib3VuZGFyeSBpcyBsYXJnZSBhbmQgd2lsbCBiZSBlbWl0dGVkIHNlcGFyYXRlbHkgc28gdGhhdCB3ZSBjYW4gcHJvZ3Jlc3NpdmVseSBzaG93XG4gICAgLy8gb3RoZXIgY29udGVudC4gV2UgYWRkIGl0IHRvIHRoZSBxdWV1ZSBkdXJpbmcgdGhlIGZsdXNoIGJlY2F1c2Ugd2UgaGF2ZSB0byBlbnN1cmUgdGhhdFxuICAgIC8vIHRoZSBwYXJlbnQgZmx1c2hlcyBmaXJzdCBzbyB0aGF0IHRoZXJlJ3Mgc29tZXRoaW5nIHRvIGluamVjdCBpdCBpbnRvLlxuICAgIC8vIFdlIGFsc28gaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCBpdCdzIGVtaXR0ZWQgaW50byB0aGUgcXVldWUgaW4gYSBkZXRlcm1pbmlzdGljIHNsb3QuXG4gICAgLy8gSS5lLiB3ZSBjYW4ndCBpbnNlcnQgaXQgaGVyZSB3aGVuIGl0IGNvbXBsZXRlcy5cbiAgICAvLyBBc3NpZ24gYW4gSUQgdG8gcmVmZXIgdG8gdGhlIGZ1dHVyZSBjb250ZW50IGJ5LlxuICAgIGJvdW5kYXJ5LnJvb3RTZWdtZW50SUQgPSByZXF1ZXN0Lm5leHRTZWdtZW50SWQrKztcbiAgICByZXF1ZXN0LmNvbXBsZXRlZEJvdW5kYXJpZXMucHVzaChib3VuZGFyeSk7IC8vIEVtaXQgYSBwZW5kaW5nIHJlbmRlcmVkIHN1c3BlbnNlIGJvdW5kYXJ5IHdyYXBwZXIuXG5cbiAgICB3cml0ZVN0YXJ0UGVuZGluZ1N1c3BlbnNlQm91bmRhcnkoZGVzdGluYXRpb24sIHJlcXVlc3QucmVuZGVyU3RhdGUsIGJvdW5kYXJ5LnJvb3RTZWdtZW50SUQpOyAvLyBGbHVzaCB0aGUgZmFsbGJhY2suXG5cbiAgICBmbHVzaFN1YnRyZWUocmVxdWVzdCwgZGVzdGluYXRpb24sIHNlZ21lbnQpO1xuICAgIHJldHVybiB3cml0ZUVuZFBlbmRpbmdTdXNwZW5zZUJvdW5kYXJ5KGRlc3RpbmF0aW9uKTtcbiAgfSBlbHNlIHtcbiAgICB7XG4gICAgICBob2lzdFJlc291cmNlcyhyZXF1ZXN0LnJlbmRlclN0YXRlLCBib3VuZGFyeS5yZXNvdXJjZXMpO1xuICAgIH0gLy8gV2UgY2FuIGlubGluZSB0aGlzIGJvdW5kYXJ5J3MgY29udGVudCBhcyBhIGNvbXBsZXRlIGJvdW5kYXJ5LlxuXG5cbiAgICB3cml0ZVN0YXJ0Q29tcGxldGVkU3VzcGVuc2VCb3VuZGFyeShkZXN0aW5hdGlvbik7XG4gICAgdmFyIGNvbXBsZXRlZFNlZ21lbnRzID0gYm91bmRhcnkuY29tcGxldGVkU2VnbWVudHM7XG5cbiAgICBpZiAoY29tcGxldGVkU2VnbWVudHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgcHJldmlvdXNseSB1bnZpc2l0ZWQgYm91bmRhcnkgbXVzdCBoYXZlIGV4YWN0bHkgb25lIHJvb3Qgc2VnbWVudC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICB9XG5cbiAgICB2YXIgY29udGVudFNlZ21lbnQgPSBjb21wbGV0ZWRTZWdtZW50c1swXTtcbiAgICBmbHVzaFNlZ21lbnQocmVxdWVzdCwgZGVzdGluYXRpb24sIGNvbnRlbnRTZWdtZW50KTtcbiAgICByZXR1cm4gd3JpdGVFbmRDb21wbGV0ZWRTdXNwZW5zZUJvdW5kYXJ5KGRlc3RpbmF0aW9uKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaENsaWVudFJlbmRlcmVkQm91bmRhcnkocmVxdWVzdCwgZGVzdGluYXRpb24sIGJvdW5kYXJ5KSB7XG4gIHJldHVybiB3cml0ZUNsaWVudFJlbmRlckJvdW5kYXJ5SW5zdHJ1Y3Rpb24oZGVzdGluYXRpb24sIHJlcXVlc3QucmVzdW1hYmxlU3RhdGUsIHJlcXVlc3QucmVuZGVyU3RhdGUsIGJvdW5kYXJ5LnJvb3RTZWdtZW50SUQsIGJvdW5kYXJ5LmVycm9yRGlnZXN0LCBib3VuZGFyeS5lcnJvck1lc3NhZ2UsIGJvdW5kYXJ5LmVycm9yQ29tcG9uZW50U3RhY2spO1xufVxuXG5mdW5jdGlvbiBmbHVzaFNlZ21lbnRDb250YWluZXIocmVxdWVzdCwgZGVzdGluYXRpb24sIHNlZ21lbnQpIHtcbiAgd3JpdGVTdGFydFNlZ21lbnQoZGVzdGluYXRpb24sIHJlcXVlc3QucmVuZGVyU3RhdGUsIHNlZ21lbnQucGFyZW50Rm9ybWF0Q29udGV4dCwgc2VnbWVudC5pZCk7XG4gIGZsdXNoU2VnbWVudChyZXF1ZXN0LCBkZXN0aW5hdGlvbiwgc2VnbWVudCk7XG4gIHJldHVybiB3cml0ZUVuZFNlZ21lbnQoZGVzdGluYXRpb24sIHNlZ21lbnQucGFyZW50Rm9ybWF0Q29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIGZsdXNoQ29tcGxldGVkQm91bmRhcnkocmVxdWVzdCwgZGVzdGluYXRpb24sIGJvdW5kYXJ5KSB7XG4gIHtcbiAgICBzZXRDdXJyZW50bHlSZW5kZXJpbmdCb3VuZGFyeVJlc291cmNlc1RhcmdldChyZXF1ZXN0LnJlbmRlclN0YXRlLCBib3VuZGFyeS5yZXNvdXJjZXMpO1xuICB9XG5cbiAgdmFyIGNvbXBsZXRlZFNlZ21lbnRzID0gYm91bmRhcnkuY29tcGxldGVkU2VnbWVudHM7XG4gIHZhciBpID0gMDtcblxuICBmb3IgKDsgaSA8IGNvbXBsZXRlZFNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNlZ21lbnQgPSBjb21wbGV0ZWRTZWdtZW50c1tpXTtcbiAgICBmbHVzaFBhcnRpYWxseUNvbXBsZXRlZFNlZ21lbnQocmVxdWVzdCwgZGVzdGluYXRpb24sIGJvdW5kYXJ5LCBzZWdtZW50KTtcbiAgfVxuXG4gIGNvbXBsZXRlZFNlZ21lbnRzLmxlbmd0aCA9IDA7XG5cbiAge1xuICAgIHdyaXRlUmVzb3VyY2VzRm9yQm91bmRhcnkoZGVzdGluYXRpb24sIGJvdW5kYXJ5LnJlc291cmNlcywgcmVxdWVzdC5yZW5kZXJTdGF0ZSk7XG4gIH1cblxuICByZXR1cm4gd3JpdGVDb21wbGV0ZWRCb3VuZGFyeUluc3RydWN0aW9uKGRlc3RpbmF0aW9uLCByZXF1ZXN0LnJlc3VtYWJsZVN0YXRlLCByZXF1ZXN0LnJlbmRlclN0YXRlLCBib3VuZGFyeS5yb290U2VnbWVudElELCBib3VuZGFyeS5yZXNvdXJjZXMpO1xufVxuXG5mdW5jdGlvbiBmbHVzaFBhcnRpYWxCb3VuZGFyeShyZXF1ZXN0LCBkZXN0aW5hdGlvbiwgYm91bmRhcnkpIHtcbiAge1xuICAgIHNldEN1cnJlbnRseVJlbmRlcmluZ0JvdW5kYXJ5UmVzb3VyY2VzVGFyZ2V0KHJlcXVlc3QucmVuZGVyU3RhdGUsIGJvdW5kYXJ5LnJlc291cmNlcyk7XG4gIH1cblxuICB2YXIgY29tcGxldGVkU2VnbWVudHMgPSBib3VuZGFyeS5jb21wbGV0ZWRTZWdtZW50cztcbiAgdmFyIGkgPSAwO1xuXG4gIGZvciAoOyBpIDwgY29tcGxldGVkU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc2VnbWVudCA9IGNvbXBsZXRlZFNlZ21lbnRzW2ldO1xuXG4gICAgaWYgKCFmbHVzaFBhcnRpYWxseUNvbXBsZXRlZFNlZ21lbnQocmVxdWVzdCwgZGVzdGluYXRpb24sIGJvdW5kYXJ5LCBzZWdtZW50KSkge1xuICAgICAgaSsrO1xuICAgICAgY29tcGxldGVkU2VnbWVudHMuc3BsaWNlKDAsIGkpOyAvLyBPbmx5IHdyaXRlIGFzIG11Y2ggYXMgdGhlIGJ1ZmZlciB3YW50cy4gU29tZXRoaW5nIGhpZ2hlciBwcmlvcml0eVxuICAgICAgLy8gbWlnaHQgd2FudCB0byB3cml0ZSBsYXRlci5cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBsZXRlZFNlZ21lbnRzLnNwbGljZSgwLCBpKTtcblxuICB7XG4gICAgLy8gVGhlIHdheSB0aGlzIGlzIHN0cnVjdHVyZWQgd2Ugb25seSB3cml0ZSByZXNvdXJjZXMgZm9yIHBhcnRpYWwgYm91bmRhcmllc1xuICAgIC8vIGlmIHRoZXJlIGlzIG5vIGJhY2twcmVzc3VyZS4gTGF0ZXIgYmVmb3JlIHdlIGNvbXBsZXRlIHRoZSBib3VuZGFyeSB3ZVxuICAgIC8vIHdpbGwgd3JpdGUgcmVzb3VyY2VzIHJlZ2FyZGxlc3Mgb2YgYmFja3ByZXNzdXJlIGJlZm9yZSB3ZSBlbWl0IHRoZVxuICAgIC8vIGNvbXBsZXRpb24gaW5zdHJ1Y3Rpb25cbiAgICByZXR1cm4gd3JpdGVSZXNvdXJjZXNGb3JCb3VuZGFyeShkZXN0aW5hdGlvbiwgYm91bmRhcnkucmVzb3VyY2VzLCByZXF1ZXN0LnJlbmRlclN0YXRlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFBhcnRpYWxseUNvbXBsZXRlZFNlZ21lbnQocmVxdWVzdCwgZGVzdGluYXRpb24sIGJvdW5kYXJ5LCBzZWdtZW50KSB7XG4gIGlmIChzZWdtZW50LnN0YXR1cyA9PT0gRkxVU0hFRCkge1xuICAgIC8vIFdlJ3ZlIGFscmVhZHkgZmx1c2hlZCB0aGlzIGlubGluZS5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBzZWdtZW50SUQgPSBzZWdtZW50LmlkO1xuXG4gIGlmIChzZWdtZW50SUQgPT09IC0xKSB7XG4gICAgLy8gVGhpcyBzZWdtZW50IHdhc24ndCBwcmV2aW91c2x5IHJlZmVycmVkIHRvLiBUaGlzIGhhcHBlbnMgYXQgdGhlIHJvb3Qgb2ZcbiAgICAvLyBhIGJvdW5kYXJ5LiBXZSBtYWtlIGtpbmQgb2YgYSBsZWFwIGhlcmUgYW5kIGFzc3VtZSB0aGlzIGlzIHRoZSByb290LlxuICAgIHZhciByb290U2VnbWVudElEID0gc2VnbWVudC5pZCA9IGJvdW5kYXJ5LnJvb3RTZWdtZW50SUQ7XG5cbiAgICBpZiAocm9vdFNlZ21lbnRJRCA9PT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQSByb290IHNlZ21lbnQgSUQgbXVzdCBoYXZlIGJlZW4gYXNzaWduZWQgYnkgbm93LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgIH1cblxuICAgIHJldHVybiBmbHVzaFNlZ21lbnRDb250YWluZXIocmVxdWVzdCwgZGVzdGluYXRpb24sIHNlZ21lbnQpO1xuICB9IGVsc2UgaWYgKHNlZ21lbnRJRCA9PT0gYm91bmRhcnkucm9vdFNlZ21lbnRJRCkge1xuICAgIC8vIFdoZW4gd2UgZW1pdCBwb3N0cG9uZWQgYm91bmRhcmllcywgd2UgbWlnaHQgaGF2ZSBhc3NpZ25lZCB0aGUgSUQgYWxyZWFkeVxuICAgIC8vIGJ1dCBpdCdzIHN0aWxsIHRoZSByb290IHNlZ21lbnQgc28gd2UgY2FuJ3QgaW5qZWN0IGl0IGludG8gdGhlIHBhcmVudCB5ZXQuXG4gICAgcmV0dXJuIGZsdXNoU2VnbWVudENvbnRhaW5lcihyZXF1ZXN0LCBkZXN0aW5hdGlvbiwgc2VnbWVudCk7XG4gIH0gZWxzZSB7XG4gICAgZmx1c2hTZWdtZW50Q29udGFpbmVyKHJlcXVlc3QsIGRlc3RpbmF0aW9uLCBzZWdtZW50KTtcbiAgICByZXR1cm4gd3JpdGVDb21wbGV0ZWRTZWdtZW50SW5zdHJ1Y3Rpb24oZGVzdGluYXRpb24sIHJlcXVlc3QucmVzdW1hYmxlU3RhdGUsIHJlcXVlc3QucmVuZGVyU3RhdGUsIHNlZ21lbnRJRCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmx1c2hDb21wbGV0ZWRRdWV1ZXMocmVxdWVzdCwgZGVzdGluYXRpb24pIHtcbiAgYmVnaW5Xcml0aW5nKCk7XG5cbiAgdHJ5IHtcbiAgICAvLyBUaGUgc3RydWN0dXJlIG9mIHRoaXMgaXMgdG8gZ28gdGhyb3VnaCBlYWNoIHF1ZXVlIG9uZSBieSBvbmUgYW5kIHdyaXRlXG4gICAgLy8gdW50aWwgdGhlIHNpbmsgdGVsbHMgdXMgdG8gc3RvcC4gV2hlbiB3ZSBzaG91bGQgc3RvcCwgd2Ugc3RpbGwgZmluaXNoIHdyaXRpbmdcbiAgICAvLyB0aGF0IGl0ZW0gZnVsbHkgYW5kIHRoZW4geWllbGQuIEF0IHRoYXQgcG9pbnQgd2UgcmVtb3ZlIHRoZSBhbHJlYWR5IGNvbXBsZXRlZFxuICAgIC8vIGl0ZW1zIHVwIHVudGlsIHRoZSBwb2ludCB3ZSBjb21wbGV0ZWQgdGhlbS5cbiAgICB2YXIgaTtcbiAgICB2YXIgY29tcGxldGVkUm9vdFNlZ21lbnQgPSByZXF1ZXN0LmNvbXBsZXRlZFJvb3RTZWdtZW50O1xuXG4gICAgaWYgKGNvbXBsZXRlZFJvb3RTZWdtZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoY29tcGxldGVkUm9vdFNlZ21lbnQuc3RhdHVzID09PSBQT1NUUE9ORUQpIHtcbiAgICAgICAgLy8gV2UgcG9zdHBvbmVkIHRoZSByb290LCBzbyB3ZSB3cml0ZSBub3RoaW5nLlxuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHJlcXVlc3QucGVuZGluZ1Jvb3RUYXNrcyA9PT0gMCkge1xuICAgICAgICBpZiAoZW5hYmxlRmxvYXQpIHtcbiAgICAgICAgICB3cml0ZVByZWFtYmxlKGRlc3RpbmF0aW9uLCByZXF1ZXN0LnJlc3VtYWJsZVN0YXRlLCByZXF1ZXN0LnJlbmRlclN0YXRlLCByZXF1ZXN0LmFsbFBlbmRpbmdUYXNrcyA9PT0gMCAmJiByZXF1ZXN0LnRyYWNrZWRQb3N0cG9uZXMgPT09IG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgZmx1c2hTZWdtZW50KHJlcXVlc3QsIGRlc3RpbmF0aW9uLCBjb21wbGV0ZWRSb290U2VnbWVudCk7XG4gICAgICAgIHJlcXVlc3QuY29tcGxldGVkUm9vdFNlZ21lbnQgPSBudWxsO1xuICAgICAgICB3cml0ZUNvbXBsZXRlZFJvb3QoZGVzdGluYXRpb24sIHJlcXVlc3QucmVuZGVyU3RhdGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgaGF2ZW4ndCBmbHVzaGVkIHRoZSByb290IHlldCBzbyB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGFueSBvdGhlciBicmFuY2hlcyBmdXJ0aGVyIGRvd25cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlbmFibGVGbG9hdCkge1xuICAgICAgd3JpdGVIb2lzdGFibGVzKGRlc3RpbmF0aW9uLCByZXF1ZXN0LnJlc3VtYWJsZVN0YXRlLCByZXF1ZXN0LnJlbmRlclN0YXRlKTtcbiAgICB9IC8vIFdlIGVtaXQgY2xpZW50IHJlbmRlcmluZyBpbnN0cnVjdGlvbnMgZm9yIGFscmVhZHkgZW1pdHRlZCBib3VuZGFyaWVzIGZpcnN0LlxuICAgIC8vIFRoaXMgaXMgc28gdGhhdCB3ZSBjYW4gc2lnbmFsIHRvIHRoZSBjbGllbnQgdG8gc3RhcnQgY2xpZW50IHJlbmRlcmluZyB0aGVtIGFzXG4gICAgLy8gc29vbiBhcyBwb3NzaWJsZS5cblxuXG4gICAgdmFyIGNsaWVudFJlbmRlcmVkQm91bmRhcmllcyA9IHJlcXVlc3QuY2xpZW50UmVuZGVyZWRCb3VuZGFyaWVzO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGNsaWVudFJlbmRlcmVkQm91bmRhcmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGJvdW5kYXJ5ID0gY2xpZW50UmVuZGVyZWRCb3VuZGFyaWVzW2ldO1xuXG4gICAgICBpZiAoIWZsdXNoQ2xpZW50UmVuZGVyZWRCb3VuZGFyeShyZXF1ZXN0LCBkZXN0aW5hdGlvbiwgYm91bmRhcnkpKSB7XG4gICAgICAgIHJlcXVlc3QuZGVzdGluYXRpb24gPSBudWxsO1xuICAgICAgICBpKys7XG4gICAgICAgIGNsaWVudFJlbmRlcmVkQm91bmRhcmllcy5zcGxpY2UoMCwgaSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjbGllbnRSZW5kZXJlZEJvdW5kYXJpZXMuc3BsaWNlKDAsIGkpOyAvLyBOZXh0IHdlIGVtaXQgYW55IGNvbXBsZXRlIGJvdW5kYXJpZXMuIEl0J3MgYmV0dGVyIHRvIGZhdm9yIGJvdW5kYXJpZXNcbiAgICAvLyB0aGF0IGFyZSBjb21wbGV0ZWx5IGRvbmUgc2luY2Ugd2UgY2FuIGFjdHVhbGx5IHNob3cgdGhlbSwgdGhhbiBpdCBpcyB0byBlbWl0XG4gICAgLy8gYW55IGluZGl2aWR1YWwgc2VnbWVudHMgZnJvbSBhIHBhcnRpYWxseSBjb21wbGV0ZSBib3VuZGFyeS5cblxuICAgIHZhciBjb21wbGV0ZWRCb3VuZGFyaWVzID0gcmVxdWVzdC5jb21wbGV0ZWRCb3VuZGFyaWVzO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGNvbXBsZXRlZEJvdW5kYXJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBfYm91bmRhcnkgPSBjb21wbGV0ZWRCb3VuZGFyaWVzW2ldO1xuXG4gICAgICBpZiAoIWZsdXNoQ29tcGxldGVkQm91bmRhcnkocmVxdWVzdCwgZGVzdGluYXRpb24sIF9ib3VuZGFyeSkpIHtcbiAgICAgICAgcmVxdWVzdC5kZXN0aW5hdGlvbiA9IG51bGw7XG4gICAgICAgIGkrKztcbiAgICAgICAgY29tcGxldGVkQm91bmRhcmllcy5zcGxpY2UoMCwgaSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wbGV0ZWRCb3VuZGFyaWVzLnNwbGljZSgwLCBpKTsgLy8gQWxsb3cgYW55dGhpbmcgd3JpdHRlbiBzbyBmYXIgdG8gZmx1c2ggdG8gdGhlIHVuZGVybHlpbmcgc2luayBiZWZvcmVcbiAgICAvLyB3ZSBjb250aW51ZSB3aXRoIGxvd2VyIHByaW9yaXRpZXMuXG5cbiAgICBjb21wbGV0ZVdyaXRpbmcoZGVzdGluYXRpb24pO1xuICAgIGJlZ2luV3JpdGluZyhkZXN0aW5hdGlvbik7IC8vIFRPRE86IEhlcmUgd2UnbGwgZW1pdCBkYXRhIHVzZWQgYnkgaHlkcmF0aW9uLlxuICAgIC8vIE5leHQgd2UgZW1pdCBhbnkgc2VnbWVudHMgb2YgYW55IGJvdW5kYXJpZXMgdGhhdCBhcmUgcGFydGlhbGx5IGNvbXBsZXRlXG4gICAgLy8gYnV0IG5vdCBkZWVwbHkgY29tcGxldGUuXG5cbiAgICB2YXIgcGFydGlhbEJvdW5kYXJpZXMgPSByZXF1ZXN0LnBhcnRpYWxCb3VuZGFyaWVzO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHBhcnRpYWxCb3VuZGFyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgX2JvdW5kYXJ5MiA9IHBhcnRpYWxCb3VuZGFyaWVzW2ldO1xuXG4gICAgICBpZiAoIWZsdXNoUGFydGlhbEJvdW5kYXJ5KHJlcXVlc3QsIGRlc3RpbmF0aW9uLCBfYm91bmRhcnkyKSkge1xuICAgICAgICByZXF1ZXN0LmRlc3RpbmF0aW9uID0gbnVsbDtcbiAgICAgICAgaSsrO1xuICAgICAgICBwYXJ0aWFsQm91bmRhcmllcy5zcGxpY2UoMCwgaSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJ0aWFsQm91bmRhcmllcy5zcGxpY2UoMCwgaSk7IC8vIE5leHQgd2UgY2hlY2sgdGhlIGNvbXBsZXRlZCBib3VuZGFyaWVzIGFnYWluLiBUaGlzIG1heSBoYXZlIGhhZFxuICAgIC8vIGJvdW5kYXJpZXMgYWRkZWQgdG8gaXQgaW4gY2FzZSB0aGV5IHdlcmUgdG9vIGxhcmdlZCB0byBiZSBpbmxpbmVkLlxuICAgIC8vIE5ldyBvbmVzIG1pZ2h0IGJlIGFkZGVkIGluIHRoaXMgbG9vcC5cblxuICAgIHZhciBsYXJnZUJvdW5kYXJpZXMgPSByZXF1ZXN0LmNvbXBsZXRlZEJvdW5kYXJpZXM7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbGFyZ2VCb3VuZGFyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgX2JvdW5kYXJ5MyA9IGxhcmdlQm91bmRhcmllc1tpXTtcblxuICAgICAgaWYgKCFmbHVzaENvbXBsZXRlZEJvdW5kYXJ5KHJlcXVlc3QsIGRlc3RpbmF0aW9uLCBfYm91bmRhcnkzKSkge1xuICAgICAgICByZXF1ZXN0LmRlc3RpbmF0aW9uID0gbnVsbDtcbiAgICAgICAgaSsrO1xuICAgICAgICBsYXJnZUJvdW5kYXJpZXMuc3BsaWNlKDAsIGkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFyZ2VCb3VuZGFyaWVzLnNwbGljZSgwLCBpKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAocmVxdWVzdC5hbGxQZW5kaW5nVGFza3MgPT09IDAgJiYgcmVxdWVzdC5waW5nZWRUYXNrcy5sZW5ndGggPT09IDAgJiYgcmVxdWVzdC5jbGllbnRSZW5kZXJlZEJvdW5kYXJpZXMubGVuZ3RoID09PSAwICYmIHJlcXVlc3QuY29tcGxldGVkQm91bmRhcmllcy5sZW5ndGggPT09IDAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjaGVjayBhbnkgcGFydGlhbGx5IGNvbXBsZXRlZCBzZWdtZW50cyBiZWNhdXNlXG4gICAgLy8gZWl0aGVyIHRoZXkgaGF2ZSBwZW5kaW5nIHRhc2sgb3IgdGhleSdyZSBjb21wbGV0ZS5cbiAgICApIHtcbiAgICAgICAgcmVxdWVzdC5mbHVzaFNjaGVkdWxlZCA9IGZhbHNlO1xuXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBXZSB3cml0ZSB0aGUgdHJhaWxpbmcgdGFncyBidXQgb25seSBpZiBkb24ndCBoYXZlIGFueSBkYXRhIHRvIHJlc3VtZS5cbiAgICAgICAgICAvLyBJZiB3ZSBuZWVkIHRvIHJlc3VtZSB3ZSdsbCB3cml0ZSB0aGUgcG9zdGFtYmxlIGluIHRoZSByZXN1bWUgaW5zdGVhZC5cbiAgICAgICAgICB7XG4gICAgICAgICAgICB3cml0ZVBvc3RhbWJsZShkZXN0aW5hdGlvbiwgcmVxdWVzdC5yZXN1bWFibGVTdGF0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29tcGxldGVXcml0aW5nKGRlc3RpbmF0aW9uKTtcblxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHJlcXVlc3QuYWJvcnRhYmxlVGFza3Muc2l6ZSAhPT0gMCkge1xuICAgICAgICAgICAgZXJyb3IoJ1RoZXJlIHdhcyBzdGlsbCBhYm9ydGFibGUgdGFzayBhdCB0aGUgcm9vdCB3aGVuIHdlIGNsb3NlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gV2UncmUgZG9uZS5cblxuXG4gICAgICAgIGNsb3NlKGRlc3RpbmF0aW9uKTsgLy8gV2UgbmVlZCB0byBzdG9wIGZsb3dpbmcgbm93IGJlY2F1c2Ugd2UgZG8gbm90IHdhbnQgYW55IGFzeW5jIGNvbnRleHRzIHdoaWNoIG1pZ2h0IGNhbGxcbiAgICAgICAgLy8gZmxvYXQgbWV0aG9kcyB0byBpbml0aWF0ZSBhbnkgZmx1c2hlcyBhZnRlciB0aGlzIHBvaW50XG5cbiAgICAgICAgc3RvcEZsb3dpbmcocmVxdWVzdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgY29tcGxldGVXcml0aW5nKGRlc3RpbmF0aW9uKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RhcnRXb3JrKHJlcXVlc3QpIHtcbiAgcmVxdWVzdC5mbHVzaFNjaGVkdWxlZCA9IHJlcXVlc3QuZGVzdGluYXRpb24gIT09IG51bGw7XG5cbiAgaWYgKHN1cHBvcnRzUmVxdWVzdFN0b3JhZ2UpIHtcbiAgICBzY2hlZHVsZVdvcmsoZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHJlcXVlc3RTdG9yYWdlLnJ1bihyZXF1ZXN0LCBwZXJmb3JtV29yaywgcmVxdWVzdCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgc2NoZWR1bGVXb3JrKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBwZXJmb3JtV29yayhyZXF1ZXN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChyZXF1ZXN0LnRyYWNrZWRQb3N0cG9uZXMgPT09IG51bGwpIHtcbiAgICAvLyB0aGlzIGlzIGVpdGhlciBhIHJlZ3VsYXIgcmVuZGVyIG9yIGEgcmVzdW1lLiBGb3IgcmVndWxhciByZW5kZXIgd2Ugd2FudFxuICAgIC8vIHRvIGNhbGwgZW1pdEVhcmx5UHJlbG9hZHMgYWZ0ZXIgdGhlIGZpcnN0IHBlcmZvcm1Xb3JrIGJlY2F1c2Ugd2Ugd2FudFxuICAgIC8vIGFyZSByZXNwb25kaW5nIHRvIGEgbGl2ZSByZXF1ZXN0IGFuZCBuZWVkIHRvIGJhbGFuY2Ugc2VuZGluZyBzb21ldGhpbmcgZWFybHlcbiAgICAvLyAoaS5lLiBkb24ndCB3YW50IGZvciB0aGUgc2hlbGwgdG8gZmluaXNoKSBidXQgd2UgbmVlZCBzb21ldGhpbmcgdG8gc2VuZC5cbiAgICAvLyBUaGUgb25seSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGlzIGZvciBET00gYXQgdGhlIG1vbWVudCBhbmQgZHVyaW5nIHJlc3VtZXMgbm90aGluZ1xuICAgIC8vIGFjdHVhbGx5IGVtaXRzIGJ1dCB0aGUgY29kZSBwYXRocyBoZXJlIGFyZSB0aGUgc2FtZS5cbiAgICAvLyBEdXJpbmcgYSBwcmVyZW5kZXIgd2UgZG9uJ3Qgd2FudCB0byBiZSB0b28gYWdncmVzc2l2ZSBpbiBlbWl0dGluZyBlYXJseSBwcmVsb2Fkc1xuICAgIC8vIGJlY2F1c2Ugd2UgYXJlbid0IHJlc3BvbmRpbmcgdG8gYSBsaXZlIHJlcXVlc3QgYW5kIHdlIGNhbiB3YWl0IGZvciB0aGUgcHJlcmVuZGVyIHRvXG4gICAgLy8gcG9zdHBvbmUgYmVmb3JlIHdlIGVtaXQgYW55dGhpbmcuXG4gICAgaWYgKHN1cHBvcnRzUmVxdWVzdFN0b3JhZ2UpIHtcbiAgICAgIHNjaGVkdWxlV29yayhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFnZS5ydW4ocmVxdWVzdCwgZW5xdWV1ZUVhcmx5UHJlbG9hZHNBZnRlckluaXRpYWxXb3JrLCByZXF1ZXN0KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlZHVsZVdvcmsoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZW5xdWV1ZUVhcmx5UHJlbG9hZHNBZnRlckluaXRpYWxXb3JrKHJlcXVlc3QpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGVucXVldWVFYXJseVByZWxvYWRzQWZ0ZXJJbml0aWFsV29yayhyZXF1ZXN0KSB7XG4gIHZhciBzaGVsbENvbXBsZXRlID0gcmVxdWVzdC5wZW5kaW5nUm9vdFRhc2tzID09PSAwO1xuICBzYWZlbHlFbWl0RWFybHlQcmVsb2FkcyhyZXF1ZXN0LCBzaGVsbENvbXBsZXRlKTtcbn1cblxuZnVuY3Rpb24gZW5xdWV1ZUZsdXNoKHJlcXVlc3QpIHtcbiAgaWYgKHJlcXVlc3QuZmx1c2hTY2hlZHVsZWQgPT09IGZhbHNlICYmIC8vIElmIHRoZXJlIGFyZSBwaW5nZWQgdGFza3Mgd2UgYXJlIGdvaW5nIHRvIGZsdXNoIGFueXdheSBhZnRlciB3b3JrIGNvbXBsZXRlc1xuICByZXF1ZXN0LnBpbmdlZFRhc2tzLmxlbmd0aCA9PT0gMCAmJiAvLyBJZiB0aGVyZSBpcyBubyBkZXN0aW5hdGlvbiB0aGVyZSBpcyBub3RoaW5nIHdlIGNhbiBmbHVzaCB0by4gQSBmbHVzaCB3aWxsXG4gIC8vIGhhcHBlbiB3aGVuIHdlIHN0YXJ0IGZsb3dpbmcgYWdhaW5cbiAgcmVxdWVzdC5kZXN0aW5hdGlvbiAhPT0gbnVsbCkge1xuICAgIHJlcXVlc3QuZmx1c2hTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHNjaGVkdWxlV29yayhmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIGV4aXN0ZW5jZSBjaGVjayBkZXN0aW5hdGlvbiBhZ2FpbiBoZXJlIGJlY2F1c2UgaXQgbWlnaHQgZ28gYXdheVxuICAgICAgLy8gaW4gYmV0d2VlbiB0aGUgZW5xdWV1ZUZsdXNoIGNhbGwgYW5kIHRoZSB3b3JrIGV4ZWN1dGlvblxuICAgICAgdmFyIGRlc3RpbmF0aW9uID0gcmVxdWVzdC5kZXN0aW5hdGlvbjtcblxuICAgICAgaWYgKGRlc3RpbmF0aW9uKSB7XG4gICAgICAgIGZsdXNoQ29tcGxldGVkUXVldWVzKHJlcXVlc3QsIGRlc3RpbmF0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcXVlc3QuZmx1c2hTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSAvLyBUaGlzIGZ1bmN0aW9uIGlzIGludGVudGVkIHRvIG9ubHkgYmUgY2FsbGVkIGR1cmluZyB0aGUgcGlwZSBmdW5jdGlvbiBmb3IgdGhlIE5vZGUgYnVpbGRzLlxuZnVuY3Rpb24gc3RhcnRGbG93aW5nKHJlcXVlc3QsIGRlc3RpbmF0aW9uKSB7XG4gIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gQ0xPU0lORykge1xuICAgIHJlcXVlc3Quc3RhdHVzID0gQ0xPU0VEO1xuICAgIGNsb3NlV2l0aEVycm9yKGRlc3RpbmF0aW9uLCByZXF1ZXN0LmZhdGFsRXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gQ0xPU0VEKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHJlcXVlc3QuZGVzdGluYXRpb24gIT09IG51bGwpIHtcbiAgICAvLyBXZSdyZSBhbHJlYWR5IGZsb3dpbmcuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVxdWVzdC5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuXG4gIHRyeSB7XG4gICAgZmx1c2hDb21wbGV0ZWRRdWV1ZXMocmVxdWVzdCwgZGVzdGluYXRpb24pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHZhciBlcnJvckluZm8gPSB7fTtcbiAgICBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIGVycm9yLCBlcnJvckluZm8pO1xuICAgIGZhdGFsRXJyb3IocmVxdWVzdCwgZXJyb3IpO1xuICB9XG59XG5mdW5jdGlvbiBzdG9wRmxvd2luZyhyZXF1ZXN0KSB7XG4gIHJlcXVlc3QuZGVzdGluYXRpb24gPSBudWxsO1xufSAvLyBUaGlzIGlzIGNhbGxlZCB0byBlYXJseSB0ZXJtaW5hdGUgYSByZXF1ZXN0LiBJdCBwdXRzIGFsbCBwZW5kaW5nIGJvdW5kYXJpZXMgaW4gY2xpZW50IHJlbmRlcmVkIHN0YXRlLlxuXG5mdW5jdGlvbiBhYm9ydChyZXF1ZXN0LCByZWFzb24pIHtcbiAgdHJ5IHtcbiAgICB2YXIgYWJvcnRhYmxlVGFza3MgPSByZXF1ZXN0LmFib3J0YWJsZVRhc2tzO1xuXG4gICAgaWYgKGFib3J0YWJsZVRhc2tzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgZXJyb3IgPSByZWFzb24gPT09IHVuZGVmaW5lZCA/IG5ldyBFcnJvcignVGhlIHJlbmRlciB3YXMgYWJvcnRlZCBieSB0aGUgc2VydmVyIHdpdGhvdXQgYSByZWFzb24uJykgOiByZWFzb247XG4gICAgICBhYm9ydGFibGVUYXNrcy5mb3JFYWNoKGZ1bmN0aW9uICh0YXNrKSB7XG4gICAgICAgIHJldHVybiBhYm9ydFRhc2sodGFzaywgcmVxdWVzdCwgZXJyb3IpO1xuICAgICAgfSk7XG4gICAgICBhYm9ydGFibGVUYXNrcy5jbGVhcigpO1xuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0LmRlc3RpbmF0aW9uICE9PSBudWxsKSB7XG4gICAgICBmbHVzaENvbXBsZXRlZFF1ZXVlcyhyZXF1ZXN0LCByZXF1ZXN0LmRlc3RpbmF0aW9uKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdmFyIGVycm9ySW5mbyA9IHt9O1xuICAgIGxvZ1JlY292ZXJhYmxlRXJyb3IocmVxdWVzdCwgZXJyb3IsIGVycm9ySW5mbyk7XG4gICAgZmF0YWxFcnJvcihyZXF1ZXN0LCBlcnJvcik7XG4gIH1cbn1cbmZ1bmN0aW9uIGZsdXNoUmVzb3VyY2VzKHJlcXVlc3QpIHtcbiAgZW5xdWV1ZUZsdXNoKHJlcXVlc3QpO1xufVxuZnVuY3Rpb24gZ2V0Rm9ybVN0YXRlKHJlcXVlc3QpIHtcbiAgcmV0dXJuIHJlcXVlc3QuZm9ybVN0YXRlO1xufVxuZnVuY3Rpb24gZ2V0UmVzdW1hYmxlU3RhdGUocmVxdWVzdCkge1xuICByZXR1cm4gcmVxdWVzdC5yZXN1bWFibGVTdGF0ZTtcbn1cbmZ1bmN0aW9uIGdldFJlbmRlclN0YXRlKHJlcXVlc3QpIHtcbiAgcmV0dXJuIHJlcXVlc3QucmVuZGVyU3RhdGU7XG59XG5cbmZ1bmN0aW9uIHJlbmRlclRvUmVhZGFibGVTdHJlYW0oY2hpbGRyZW4sIG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICB2YXIgb25GYXRhbEVycm9yO1xuICAgIHZhciBvbkFsbFJlYWR5O1xuICAgIHZhciBhbGxSZWFkeSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXMsIHJlaikge1xuICAgICAgb25BbGxSZWFkeSA9IHJlcztcbiAgICAgIG9uRmF0YWxFcnJvciA9IHJlajtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG9uU2hlbGxSZWFkeSgpIHtcbiAgICAgIHZhciBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICBwdWxsOiBmdW5jdGlvbiAoY29udHJvbGxlcikge1xuICAgICAgICAgIHN0YXJ0Rmxvd2luZyhyZXF1ZXN0LCBjb250cm9sbGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2FuY2VsOiBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgc3RvcEZsb3dpbmcocmVxdWVzdCk7XG4gICAgICAgICAgYWJvcnQocmVxdWVzdCwgcmVhc29uKTtcbiAgICAgICAgfVxuICAgICAgfSwgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddIHNpemUoKSBtZXRob2RzIGFyZSBub3QgYWxsb3dlZCBvbiBieXRlIHN0cmVhbXMuXG4gICAgICB7XG4gICAgICAgIGhpZ2hXYXRlck1hcms6IDBcbiAgICAgIH0pOyAvLyBUT0RPOiBNb3ZlIHRvIHN1Yi1jbGFzc2luZyBSZWFkYWJsZVN0cmVhbS5cblxuICAgICAgc3RyZWFtLmFsbFJlYWR5ID0gYWxsUmVhZHk7XG4gICAgICByZXNvbHZlKHN0cmVhbSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb25TaGVsbEVycm9yKGVycm9yKSB7XG4gICAgICAvLyBJZiB0aGUgc2hlbGwgZXJyb3JzIHRoZSBjYWxsZXIgb2YgYHJlbmRlclRvUmVhZGFibGVTdHJlYW1gIHdvbid0IGhhdmUgYWNjZXNzIHRvIGBhbGxSZWFkeWAuXG4gICAgICAvLyBIb3dldmVyLCBgYWxsUmVhZHlgIHdpbGwgYmUgcmVqZWN0ZWQgYnkgYG9uRmF0YWxFcnJvcmAgYXMgd2VsbC5cbiAgICAgIC8vIFNvIHdlIG5lZWQgdG8gY2F0Y2ggdGhlIGR1cGxpY2F0ZSwgdW5jYXRjaGFibGUgZmF0YWwgZXJyb3IgaW4gYGFsbFJlYWR5YCB0byBwcmV2ZW50IGEgYFVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25gLlxuICAgICAgYWxsUmVhZHkuY2F0Y2goZnVuY3Rpb24gKCkge30pO1xuICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICB9XG5cbiAgICB2YXIgb25IZWFkZXJzID0gb3B0aW9ucyA/IG9wdGlvbnMub25IZWFkZXJzIDogdW5kZWZpbmVkO1xuICAgIHZhciBvbkhlYWRlcnNJbXBsO1xuXG4gICAgaWYgKG9uSGVhZGVycykge1xuICAgICAgb25IZWFkZXJzSW1wbCA9IGZ1bmN0aW9uIChoZWFkZXJzRGVzY3JpcHRvcikge1xuICAgICAgICBvbkhlYWRlcnMobmV3IEhlYWRlcnMoaGVhZGVyc0Rlc2NyaXB0b3IpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIHJlc3VtYWJsZVN0YXRlID0gY3JlYXRlUmVzdW1hYmxlU3RhdGUob3B0aW9ucyA/IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCA6IHVuZGVmaW5lZCwgb3B0aW9ucyA/IG9wdGlvbnMudW5zdGFibGVfZXh0ZXJuYWxSdW50aW1lU3JjIDogdW5kZWZpbmVkLCBvcHRpb25zID8gb3B0aW9ucy5ib290c3RyYXBTY3JpcHRDb250ZW50IDogdW5kZWZpbmVkLCBvcHRpb25zID8gb3B0aW9ucy5ib290c3RyYXBTY3JpcHRzIDogdW5kZWZpbmVkLCBvcHRpb25zID8gb3B0aW9ucy5ib290c3RyYXBNb2R1bGVzIDogdW5kZWZpbmVkKTtcbiAgICB2YXIgcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoY2hpbGRyZW4sIHJlc3VtYWJsZVN0YXRlLCBjcmVhdGVSZW5kZXJTdGF0ZShyZXN1bWFibGVTdGF0ZSwgb3B0aW9ucyA/IG9wdGlvbnMubm9uY2UgOiB1bmRlZmluZWQsIG9wdGlvbnMgPyBvcHRpb25zLnVuc3RhYmxlX2V4dGVybmFsUnVudGltZVNyYyA6IHVuZGVmaW5lZCwgb3B0aW9ucyA/IG9wdGlvbnMuaW1wb3J0TWFwIDogdW5kZWZpbmVkLCBvbkhlYWRlcnNJbXBsLCBvcHRpb25zID8gb3B0aW9ucy5tYXhIZWFkZXJzTGVuZ3RoIDogdW5kZWZpbmVkKSwgY3JlYXRlUm9vdEZvcm1hdENvbnRleHQob3B0aW9ucyA/IG9wdGlvbnMubmFtZXNwYWNlVVJJIDogdW5kZWZpbmVkKSwgb3B0aW9ucyA/IG9wdGlvbnMucHJvZ3Jlc3NpdmVDaHVua1NpemUgOiB1bmRlZmluZWQsIG9wdGlvbnMgPyBvcHRpb25zLm9uRXJyb3IgOiB1bmRlZmluZWQsIG9uQWxsUmVhZHksIG9uU2hlbGxSZWFkeSwgb25TaGVsbEVycm9yLCBvbkZhdGFsRXJyb3IsIG9wdGlvbnMgPyBvcHRpb25zLm9uUG9zdHBvbmUgOiB1bmRlZmluZWQsIG9wdGlvbnMgPyBvcHRpb25zLmZvcm1TdGF0ZSA6IHVuZGVmaW5lZCk7XG5cbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNpZ25hbCkge1xuICAgICAgdmFyIHNpZ25hbCA9IG9wdGlvbnMuc2lnbmFsO1xuXG4gICAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgYWJvcnQocmVxdWVzdCwgc2lnbmFsLnJlYXNvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgYWJvcnQocmVxdWVzdCwgc2lnbmFsLnJlYXNvbik7XG4gICAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgbGlzdGVuZXIpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIGxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdGFydFdvcmsocmVxdWVzdCk7XG4gIH0pO1xufVxuXG5leHBvcnRzLnJlbmRlclRvUmVhZGFibGVTdHJlYW0gPSByZW5kZXJUb1JlYWRhYmxlU3RyZWFtO1xuZXhwb3J0cy52ZXJzaW9uID0gUmVhY3RWZXJzaW9uO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJSZWFjdCIsInJlcXVpcmUiLCJSZWFjdERPTSIsIlJlYWN0VmVyc2lvbiIsIlJlYWN0U2hhcmVkSW50ZXJuYWxzIiwiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJ3YXJuIiwiZm9ybWF0IiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJwcmludFdhcm5pbmciLCJlcnJvciIsIl9sZW4yIiwiX2tleTIiLCJsZXZlbCIsIlJlYWN0RGVidWdDdXJyZW50RnJhbWUiLCJzdGFjayIsImdldFN0YWNrQWRkZW5kdW0iLCJjb25jYXQiLCJhcmdzV2l0aEZvcm1hdCIsIm1hcCIsIml0ZW0iLCJTdHJpbmciLCJ1bnNoaWZ0IiwiRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJhcHBseSIsImNhbGwiLCJjb25zb2xlIiwiY3JlYXRlRmFzdEhhc2hKUyIsImtleSIsIm11cm11cmhhc2gzXzMyX2djIiwic2VlZCIsInJlbWFpbmRlciIsImJ5dGVzIiwiaDEiLCJoMWIiLCJjMSIsImMyIiwiazEiLCJpIiwiY2hhckNvZGVBdCIsInNjaGVkdWxlV29yayIsImNhbGxiYWNrIiwic2V0VGltZW91dCIsIlZJRVdfU0laRSIsImN1cnJlbnRWaWV3Iiwid3JpdHRlbkJ5dGVzIiwiYmVnaW5Xcml0aW5nIiwiZGVzdGluYXRpb24iLCJVaW50OEFycmF5Iiwid3JpdGVDaHVuayIsImNodW5rIiwiYnl0ZUxlbmd0aCIsInByZWNvbXB1dGVkQ2h1bmtTZXQiLCJoYXMiLCJlbnF1ZXVlIiwiYnVmZmVyIiwiYnl0ZXNUb1dyaXRlIiwiYWxsb3dhYmxlQnl0ZXMiLCJzZXQiLCJzdWJhcnJheSIsIndyaXRlQ2h1bmtBbmRSZXR1cm4iLCJjb21wbGV0ZVdyaXRpbmciLCJjbG9zZSIsInRleHRFbmNvZGVyIiwiVGV4dEVuY29kZXIiLCJzdHJpbmdUb0NodW5rIiwiY29udGVudCIsImVuY29kZSIsIlNldCIsInN0cmluZ1RvUHJlY29tcHV0ZWRDaHVuayIsInByZWNvbXB1dGVkQ2h1bmsiLCJhZGQiLCJjbG9uZVByZWNvbXB1dGVkQ2h1bmsiLCJzbGljZSIsImNsb3NlV2l0aEVycm9yIiwiYXNzaWduIiwiT2JqZWN0IiwidHlwZU5hbWUiLCJ2YWx1ZSIsImhhc1RvU3RyaW5nVGFnIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ0eXBlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwid2lsbENvZXJjaW9uVGhyb3ciLCJ0ZXN0U3RyaW5nQ29lcmNpb24iLCJlIiwiY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbiIsImF0dHJpYnV0ZU5hbWUiLCJjaGVja09wdGlvblN0cmluZ0NvZXJjaW9uIiwicHJvcE5hbWUiLCJjaGVja0NTU1Byb3BlcnR5U3RyaW5nQ29lcmNpb24iLCJjaGVja0h0bWxTdHJpbmdDb2VyY2lvbiIsImVuYWJsZUZsb2F0IiwiaGFzT3duUHJvcGVydHkiLCJBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSIiwiQVRUUklCVVRFX05BTUVfQ0hBUiIsIlZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYIiwiUmVnRXhwIiwiaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZSIsInZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZSIsImlzQXR0cmlidXRlTmFtZVNhZmUiLCJ0ZXN0IiwidW5pdGxlc3NOdW1iZXJzIiwiaXNVbml0bGVzc051bWJlciIsImFsaWFzZXMiLCJNYXAiLCJnZXRBdHRyaWJ1dGVBbGlhcyIsImdldCIsImhhc1JlYWRPbmx5VmFsdWUiLCJidXR0b24iLCJjaGVja2JveCIsImltYWdlIiwiaGlkZGVuIiwicmFkaW8iLCJyZXNldCIsInN1Ym1pdCIsImNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMiLCJ0YWdOYW1lIiwicHJvcHMiLCJvbkNoYW5nZSIsIm9uSW5wdXQiLCJyZWFkT25seSIsImRpc2FibGVkIiwiY2hlY2tlZCIsImFyaWFQcm9wZXJ0aWVzIiwid2FybmVkUHJvcGVydGllcyQxIiwickFSSUEkMSIsInJBUklBQ2FtZWwkMSIsInZhbGlkYXRlUHJvcGVydHkkMSIsImFyaWFOYW1lIiwidG9Mb3dlckNhc2UiLCJjb3JyZWN0TmFtZSIsImxvd2VyQ2FzZWROYW1lIiwic3RhbmRhcmROYW1lIiwidmFsaWRhdGVQcm9wZXJ0aWVzJDIiLCJpbnZhbGlkUHJvcHMiLCJpc1ZhbGlkIiwicHVzaCIsInVua25vd25Qcm9wU3RyaW5nIiwicHJvcCIsImpvaW4iLCJkaWRXYXJuVmFsdWVOdWxsIiwidmFsaWRhdGVQcm9wZXJ0aWVzJDEiLCJtdWx0aXBsZSIsImlzQ3VzdG9tRWxlbWVudCIsImluZGV4T2YiLCJwb3NzaWJsZVN0YW5kYXJkTmFtZXMiLCJhY2NlcHQiLCJhY2NlcHRjaGFyc2V0IiwiYWNjZXNza2V5IiwiYWN0aW9uIiwiYWxsb3dmdWxsc2NyZWVuIiwiYWx0IiwiYXMiLCJhc3luYyIsImF1dG9jYXBpdGFsaXplIiwiYXV0b2NvbXBsZXRlIiwiYXV0b2NvcnJlY3QiLCJhdXRvZm9jdXMiLCJhdXRvcGxheSIsImF1dG9zYXZlIiwiY2FwdHVyZSIsImNlbGxwYWRkaW5nIiwiY2VsbHNwYWNpbmciLCJjaGFsbGVuZ2UiLCJjaGFyc2V0IiwiY2hpbGRyZW4iLCJjaXRlIiwiY2xhc3MiLCJjbGFzc2lkIiwiY2xhc3NuYW1lIiwiY29scyIsImNvbHNwYW4iLCJjb250ZW50ZWRpdGFibGUiLCJjb250ZXh0bWVudSIsImNvbnRyb2xzIiwiY29udHJvbHNsaXN0IiwiY29vcmRzIiwiY3Jvc3NvcmlnaW4iLCJkYW5nZXJvdXNseXNldGlubmVyaHRtbCIsImRhdGEiLCJkYXRldGltZSIsImRlZmF1bHQiLCJkZWZhdWx0Y2hlY2tlZCIsImRlZmF1bHR2YWx1ZSIsImRlZmVyIiwiZGlyIiwiZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUiLCJkaXNhYmxlcmVtb3RlcGxheWJhY2siLCJkb3dubG9hZCIsImRyYWdnYWJsZSIsImVuY3R5cGUiLCJlbnRlcmtleWhpbnQiLCJmZXRjaHByaW9yaXR5IiwiZm9yIiwiZm9ybSIsImZvcm1tZXRob2QiLCJmb3JtYWN0aW9uIiwiZm9ybWVuY3R5cGUiLCJmb3Jtbm92YWxpZGF0ZSIsImZvcm10YXJnZXQiLCJmcmFtZWJvcmRlciIsImhlYWRlcnMiLCJoZWlnaHQiLCJoaWdoIiwiaHJlZiIsImhyZWZsYW5nIiwiaHRtbGZvciIsImh0dHBlcXVpdiIsImljb24iLCJpZCIsImltYWdlc2l6ZXMiLCJpbWFnZXNyY3NldCIsImlubmVyaHRtbCIsImlucHV0bW9kZSIsImludGVncml0eSIsImlzIiwiaXRlbWlkIiwiaXRlbXByb3AiLCJpdGVtcmVmIiwiaXRlbXNjb3BlIiwiaXRlbXR5cGUiLCJrZXlwYXJhbXMiLCJrZXl0eXBlIiwia2luZCIsImxhYmVsIiwibGFuZyIsImxpc3QiLCJsb29wIiwibG93IiwibWFuaWZlc3QiLCJtYXJnaW53aWR0aCIsIm1hcmdpbmhlaWdodCIsIm1heCIsIm1heGxlbmd0aCIsIm1lZGlhIiwibWVkaWFncm91cCIsIm1ldGhvZCIsIm1pbiIsIm1pbmxlbmd0aCIsIm11dGVkIiwibm9tb2R1bGUiLCJub25jZSIsIm5vdmFsaWRhdGUiLCJvcGVuIiwib3B0aW11bSIsInBhdHRlcm4iLCJwbGFjZWhvbGRlciIsInBsYXlzaW5saW5lIiwicG9zdGVyIiwicHJlbG9hZCIsInByb2ZpbGUiLCJyYWRpb2dyb3VwIiwicmVhZG9ubHkiLCJyZWZlcnJlcnBvbGljeSIsInJlbCIsInJlcXVpcmVkIiwicmV2ZXJzZWQiLCJyb2xlIiwicm93cyIsInJvd3NwYW4iLCJzYW5kYm94Iiwic2NvcGUiLCJzY29wZWQiLCJzY3JvbGxpbmciLCJzZWFtbGVzcyIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic2l6ZXMiLCJzcGFuIiwic3BlbGxjaGVjayIsInNyYyIsInNyY2RvYyIsInNyY2xhbmciLCJzcmNzZXQiLCJzdGFydCIsInN0ZXAiLCJzdHlsZSIsInN1bW1hcnkiLCJ0YWJpbmRleCIsInRhcmdldCIsInRpdGxlIiwidXNlbWFwIiwid2lkdGgiLCJ3bW9kZSIsIndyYXAiLCJhYm91dCIsImFjY2VudGhlaWdodCIsImFjY3VtdWxhdGUiLCJhZGRpdGl2ZSIsImFsaWdubWVudGJhc2VsaW5lIiwiYWxsb3dyZW9yZGVyIiwiYWxwaGFiZXRpYyIsImFtcGxpdHVkZSIsImFyYWJpY2Zvcm0iLCJhc2NlbnQiLCJhdHRyaWJ1dGVuYW1lIiwiYXR0cmlidXRldHlwZSIsImF1dG9yZXZlcnNlIiwiYXppbXV0aCIsImJhc2VmcmVxdWVuY3kiLCJiYXNlbGluZXNoaWZ0IiwiYmFzZXByb2ZpbGUiLCJiYm94IiwiYmVnaW4iLCJiaWFzIiwiYnkiLCJjYWxjbW9kZSIsImNhcGhlaWdodCIsImNsaXAiLCJjbGlwcGF0aCIsImNsaXBwYXRodW5pdHMiLCJjbGlwcnVsZSIsImNvbG9yIiwiY29sb3JpbnRlcnBvbGF0aW9uIiwiY29sb3JpbnRlcnBvbGF0aW9uZmlsdGVycyIsImNvbG9ycHJvZmlsZSIsImNvbG9ycmVuZGVyaW5nIiwiY29udGVudHNjcmlwdHR5cGUiLCJjb250ZW50c3R5bGV0eXBlIiwiY3Vyc29yIiwiY3giLCJjeSIsImQiLCJkYXRhdHlwZSIsImRlY2VsZXJhdGUiLCJkZXNjZW50IiwiZGlmZnVzZWNvbnN0YW50IiwiZGlyZWN0aW9uIiwiZGlzcGxheSIsImRpdmlzb3IiLCJkb21pbmFudGJhc2VsaW5lIiwiZHVyIiwiZHgiLCJkeSIsImVkZ2Vtb2RlIiwiZWxldmF0aW9uIiwiZW5hYmxlYmFja2dyb3VuZCIsImVuZCIsImV4cG9uZW50IiwiZXh0ZXJuYWxyZXNvdXJjZXNyZXF1aXJlZCIsImZpbGwiLCJmaWxsb3BhY2l0eSIsImZpbGxydWxlIiwiZmlsdGVyIiwiZmlsdGVycmVzIiwiZmlsdGVydW5pdHMiLCJmbG9vZG9wYWNpdHkiLCJmbG9vZGNvbG9yIiwiZm9jdXNhYmxlIiwiZm9udGZhbWlseSIsImZvbnRzaXplIiwiZm9udHNpemVhZGp1c3QiLCJmb250c3RyZXRjaCIsImZvbnRzdHlsZSIsImZvbnR2YXJpYW50IiwiZm9udHdlaWdodCIsImZyb20iLCJmeCIsImZ5IiwiZzEiLCJnMiIsImdseXBobmFtZSIsImdseXBob3JpZW50YXRpb25ob3Jpem9udGFsIiwiZ2x5cGhvcmllbnRhdGlvbnZlcnRpY2FsIiwiZ2x5cGhyZWYiLCJncmFkaWVudHRyYW5zZm9ybSIsImdyYWRpZW50dW5pdHMiLCJoYW5naW5nIiwiaG9yaXphZHZ4IiwiaG9yaXpvcmlnaW54IiwiaWRlb2dyYXBoaWMiLCJpbWFnZXJlbmRlcmluZyIsImluMiIsImluIiwiaW5saXN0IiwiaW50ZXJjZXB0IiwiazIiLCJrMyIsIms0IiwiayIsImtlcm5lbG1hdHJpeCIsImtlcm5lbHVuaXRsZW5ndGgiLCJrZXJuaW5nIiwia2V5cG9pbnRzIiwia2V5c3BsaW5lcyIsImtleXRpbWVzIiwibGVuZ3RoYWRqdXN0IiwibGV0dGVyc3BhY2luZyIsImxpZ2h0aW5nY29sb3IiLCJsaW1pdGluZ2NvbmVhbmdsZSIsImxvY2FsIiwibWFya2VyZW5kIiwibWFya2VyaGVpZ2h0IiwibWFya2VybWlkIiwibWFya2Vyc3RhcnQiLCJtYXJrZXJ1bml0cyIsIm1hcmtlcndpZHRoIiwibWFzayIsIm1hc2tjb250ZW50dW5pdHMiLCJtYXNrdW5pdHMiLCJtYXRoZW1hdGljYWwiLCJtb2RlIiwibnVtb2N0YXZlcyIsIm9mZnNldCIsIm9wYWNpdHkiLCJvcGVyYXRvciIsIm9yZGVyIiwib3JpZW50Iiwib3JpZW50YXRpb24iLCJvcmlnaW4iLCJvdmVyZmxvdyIsIm92ZXJsaW5lcG9zaXRpb24iLCJvdmVybGluZXRoaWNrbmVzcyIsInBhaW50b3JkZXIiLCJwYW5vc2UxIiwicGF0aGxlbmd0aCIsInBhdHRlcm5jb250ZW50dW5pdHMiLCJwYXR0ZXJudHJhbnNmb3JtIiwicGF0dGVybnVuaXRzIiwicG9pbnRlcmV2ZW50cyIsInBvaW50cyIsInBvaW50c2F0eCIsInBvaW50c2F0eSIsInBvaW50c2F0eiIsInByZWZpeCIsInByZXNlcnZlYWxwaGEiLCJwcmVzZXJ2ZWFzcGVjdHJhdGlvIiwicHJpbWl0aXZldW5pdHMiLCJwcm9wZXJ0eSIsInIiLCJyYWRpdXMiLCJyZWZ4IiwicmVmeSIsInJlbmRlcmluZ2ludGVudCIsInJlcGVhdGNvdW50IiwicmVwZWF0ZHVyIiwicmVxdWlyZWRleHRlbnNpb25zIiwicmVxdWlyZWRmZWF0dXJlcyIsInJlc291cmNlIiwicmVzdGFydCIsInJlc3VsdCIsInJlc3VsdHMiLCJyb3RhdGUiLCJyeCIsInJ5Iiwic2NhbGUiLCJzZWN1cml0eSIsInNoYXBlcmVuZGVyaW5nIiwic2xvcGUiLCJzcGFjaW5nIiwic3BlY3VsYXJjb25zdGFudCIsInNwZWN1bGFyZXhwb25lbnQiLCJzcGVlZCIsInNwcmVhZG1ldGhvZCIsInN0YXJ0b2Zmc2V0Iiwic3RkZGV2aWF0aW9uIiwic3RlbWgiLCJzdGVtdiIsInN0aXRjaHRpbGVzIiwic3RvcGNvbG9yIiwic3RvcG9wYWNpdHkiLCJzdHJpa2V0aHJvdWdocG9zaXRpb24iLCJzdHJpa2V0aHJvdWdodGhpY2tuZXNzIiwic3RyaW5nIiwic3Ryb2tlIiwic3Ryb2tlZGFzaGFycmF5Iiwic3Ryb2tlZGFzaG9mZnNldCIsInN0cm9rZWxpbmVjYXAiLCJzdHJva2VsaW5lam9pbiIsInN0cm9rZW1pdGVybGltaXQiLCJzdHJva2V3aWR0aCIsInN0cm9rZW9wYWNpdHkiLCJzdXBwcmVzc2NvbnRlbnRlZGl0YWJsZXdhcm5pbmciLCJzdXBwcmVzc2h5ZHJhdGlvbndhcm5pbmciLCJzdXJmYWNlc2NhbGUiLCJzeXN0ZW1sYW5ndWFnZSIsInRhYmxldmFsdWVzIiwidGFyZ2V0eCIsInRhcmdldHkiLCJ0ZXh0YW5jaG9yIiwidGV4dGRlY29yYXRpb24iLCJ0ZXh0bGVuZ3RoIiwidGV4dHJlbmRlcmluZyIsInRvIiwidHJhbnNmb3JtIiwidHJhbnNmb3Jtb3JpZ2luIiwidHlwZW9mIiwidTEiLCJ1MiIsInVuZGVybGluZXBvc2l0aW9uIiwidW5kZXJsaW5ldGhpY2tuZXNzIiwidW5pY29kZSIsInVuaWNvZGViaWRpIiwidW5pY29kZXJhbmdlIiwidW5pdHNwZXJlbSIsInVuc2VsZWN0YWJsZSIsInZhbHBoYWJldGljIiwidmFsdWVzIiwidmVjdG9yZWZmZWN0IiwidmVyc2lvbiIsInZlcnRhZHZ5IiwidmVydG9yaWdpbngiLCJ2ZXJ0b3JpZ2lueSIsInZoYW5naW5nIiwidmlkZW9ncmFwaGljIiwidmlld2JveCIsInZpZXd0YXJnZXQiLCJ2aXNpYmlsaXR5Iiwidm1hdGhlbWF0aWNhbCIsInZvY2FiIiwid2lkdGhzIiwid29yZHNwYWNpbmciLCJ3cml0aW5nbW9kZSIsIngxIiwieDIiLCJ4IiwieGNoYW5uZWxzZWxlY3RvciIsInhoZWlnaHQiLCJ4bGlua2FjdHVhdGUiLCJ4bGlua2FyY3JvbGUiLCJ4bGlua2hyZWYiLCJ4bGlua3JvbGUiLCJ4bGlua3Nob3ciLCJ4bGlua3RpdGxlIiwieGxpbmt0eXBlIiwieG1sYmFzZSIsInhtbGxhbmciLCJ4bWxucyIsInhtbG5zeGxpbmsiLCJ4bWxzcGFjZSIsInkxIiwieTIiLCJ5IiwieWNoYW5uZWxzZWxlY3RvciIsInoiLCJ6b29tYW5kcGFuIiwid2FybmVkUHJvcGVydGllcyIsIkVWRU5UX05BTUVfUkVHRVgiLCJJTlZBTElEX0VWRU5UX05BTUVfUkVHRVgiLCJyQVJJQSIsInJBUklBQ2FtZWwiLCJ2YWxpZGF0ZVByb3BlcnR5IiwiZXZlbnRSZWdpc3RyeSIsInJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMiLCJwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzIiwicmVnaXN0cmF0aW9uTmFtZSIsInVuZGVmaW5lZCIsImlzTmFOIiwid2FyblVua25vd25Qcm9wZXJ0aWVzIiwidW5rbm93blByb3BzIiwidmFsaWRhdGVQcm9wZXJ0aWVzIiwiYmFkVmVuZG9yZWRTdHlsZU5hbWVQYXR0ZXJuIiwibXNQYXR0ZXJuJDEiLCJoeXBoZW5QYXR0ZXJuIiwiYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuIiwid2FybmVkU3R5bGVOYW1lcyIsIndhcm5lZFN0eWxlVmFsdWVzIiwid2FybmVkRm9yTmFOVmFsdWUiLCJ3YXJuZWRGb3JJbmZpbml0eVZhbHVlIiwiY2FtZWxpemUiLCJyZXBsYWNlIiwiXyIsImNoYXJhY3RlciIsInRvVXBwZXJDYXNlIiwid2Fybkh5cGhlbmF0ZWRTdHlsZU5hbWUiLCJ3YXJuQmFkVmVuZG9yZWRTdHlsZU5hbWUiLCJjaGFyQXQiLCJ3YXJuU3R5bGVWYWx1ZVdpdGhTZW1pY29sb24iLCJ3YXJuU3R5bGVWYWx1ZUlzTmFOIiwid2FyblN0eWxlVmFsdWVJc0luZmluaXR5Iiwid2FyblZhbGlkU3R5bGUiLCJpc0Zpbml0ZSIsImdldENyb3NzT3JpZ2luU3RyaW5nIiwiaW5wdXQiLCJtYXRjaEh0bWxSZWdFeHAiLCJlc2NhcGVIdG1sIiwic3RyIiwibWF0Y2giLCJleGVjIiwiZXNjYXBlIiwiaHRtbCIsImluZGV4IiwibGFzdEluZGV4IiwiZXNjYXBlVGV4dEZvckJyb3dzZXIiLCJ0ZXh0IiwidXBwZXJjYXNlUGF0dGVybiIsIm1zUGF0dGVybiIsImh5cGhlbmF0ZVN0eWxlTmFtZSIsImlzSmF2YVNjcmlwdFByb3RvY29sIiwiZGlkV2FybiIsInNhbml0aXplVVJMIiwidXJsIiwic3RyaW5naWZpZWRVUkwiLCJKU09OIiwic3RyaW5naWZ5IiwiaXNBcnJheUltcGwiLCJpc0FycmF5IiwiYSIsImNsaWVudFJlbmRlckJvdW5kYXJ5IiwiY29tcGxldGVCb3VuZGFyeSIsImNvbXBsZXRlQm91bmRhcnlXaXRoU3R5bGVzIiwiY29tcGxldGVTZWdtZW50IiwiZm9ybVJlcGxheWluZyIsImdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmciLCJ0aGluZyIsInNoYXJlZE5vdFBlbmRpbmdPYmplY3QiLCJwZW5kaW5nIiwiTm90UGVuZGluZyIsImZyZWV6ZSIsIlJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzIiwiUmVhY3RET01DdXJyZW50RGlzcGF0Y2hlciIsIkRpc3BhdGNoZXIiLCJSZWFjdERPTVNlcnZlckRpc3BhdGNoZXIiLCJwcmVmZXRjaEROUyIsInByZWNvbm5lY3QiLCJwcmVsb2FkTW9kdWxlIiwicHJlaW5pdFN0eWxlIiwicHJlaW5pdFNjcmlwdCIsInByZWluaXRNb2R1bGVTY3JpcHQiLCJwcmVwYXJlSG9zdERpc3BhdGNoZXIiLCJjdXJyZW50IiwiU2NyaXB0U3RyZWFtaW5nRm9ybWF0IiwiRGF0YVN0cmVhbWluZ0Zvcm1hdCIsIk5vdGhpbmdTZW50IiwiU2VudENvbXBsZXRlU2VnbWVudEZ1bmN0aW9uIiwiU2VudENvbXBsZXRlQm91bmRhcnlGdW5jdGlvbiIsIlNlbnRDbGllbnRSZW5kZXJGdW5jdGlvbiIsIlNlbnRTdHlsZUluc2VydGlvbkZ1bmN0aW9uIiwiU2VudEZvcm1SZXBsYXlpbmdSdW50aW1lIiwiRVhJU1RTIiwiUFJFTE9BRF9OT19DUkVEUyIsImRhdGFFbGVtZW50UXVvdGVkRW5kIiwic3RhcnRJbmxpbmVTY3JpcHQiLCJlbmRJbmxpbmVTY3JpcHQiLCJzdGFydFNjcmlwdFNyYyIsInN0YXJ0TW9kdWxlU3JjIiwic2NyaXB0Tm9uY2UiLCJzY3JpcHRJbnRlZ2lydHkiLCJzY3JpcHRDcm9zc09yaWdpbiIsImVuZEFzeW5jU2NyaXB0IiwiZXNjYXBlQm9vdHN0cmFwQW5kSW1wb3J0TWFwU2NyaXB0Q29udGVudCIsInNjcmlwdFRleHQiLCJzY3JpcHRSZWdleCIsInNjcmlwdFJlcGxhY2VyIiwicyIsInN1ZmZpeCIsImltcG9ydE1hcFNjcmlwdFN0YXJ0IiwiaW1wb3J0TWFwU2NyaXB0RW5kIiwiREVGQVVMVF9IRUFERVJTX0NBUEFDSVRZX0lOX1VURjE2X0NPREVfVU5JVFMiLCJjcmVhdGVSZW5kZXJTdGF0ZSIsInJlc3VtYWJsZVN0YXRlIiwiZXh0ZXJuYWxSdW50aW1lQ29uZmlnIiwiaW1wb3J0TWFwIiwib25IZWFkZXJzIiwibWF4SGVhZGVyc0xlbmd0aCIsImlubGluZVNjcmlwdFdpdGhOb25jZSIsImlkUHJlZml4IiwiYm9vdHN0cmFwQ2h1bmtzIiwiZXh0ZXJuYWxSdW50aW1lU2NyaXB0IiwiYm9vdHN0cmFwU2NyaXB0Q29udGVudCIsImJvb3RzdHJhcFNjcmlwdHMiLCJib290c3RyYXBNb2R1bGVzIiwiY2h1bmtzIiwicHVzaFNjcmlwdEltcGwiLCJpbXBvcnRNYXBDaHVua3MiLCJwcmVjb25uZWN0cyIsImZvbnRQcmVsb2FkcyIsImhpZ2hJbWFnZVByZWxvYWRzIiwicmVtYWluaW5nQ2FwYWNpdHkiLCJyZW5kZXJTdGF0ZSIsInBsYWNlaG9sZGVyUHJlZml4Iiwic2VnbWVudFByZWZpeCIsImJvdW5kYXJ5UHJlZml4IiwiaHRtbENodW5rcyIsImhlYWRDaHVua3MiLCJyZXNldHMiLCJmb250IiwiZG5zIiwiY29ubmVjdCIsImFub255bW91cyIsImNyZWRlbnRpYWxzIiwiY2hhcnNldENodW5rcyIsInByZWNvbm5lY3RDaHVua3MiLCJwcmVsb2FkQ2h1bmtzIiwiaG9pc3RhYmxlQ2h1bmtzIiwic3R5bGVzIiwic2NyaXB0cyIsImJ1bGtQcmVsb2FkcyIsInByZWxvYWRzIiwiaW1hZ2VzIiwic3R5bGVzaGVldHMiLCJtb2R1bGVTY3JpcHRzIiwiYm91bmRhcnlSZXNvdXJjZXMiLCJzdHlsZXNUb0hvaXN0Iiwic2NyaXB0Q29uZmlnIiwiY3Jvc3NPcmlnaW4iLCJmZXRjaFByaW9yaXR5IiwicHJlbG9hZEJvb3RzdHJhcFNjcmlwdE9yTW9kdWxlIiwiX2kiLCJfc2NyaXB0Q29uZmlnIiwiX3NyYyIsIl9jcm9zc09yaWdpbiIsIl9pbnRlZ3JpdHkiLCJfcHJvcHMiLCJjcmVhdGVSZXN1bWFibGVTdGF0ZSIsImlkZW50aWZpZXJQcmVmaXgiLCJzdHJlYW1pbmdGb3JtYXQiLCJuZXh0Rm9ybUlEIiwiaW5zdHJ1Y3Rpb25zIiwiaGFzQm9keSIsImhhc0h0bWwiLCJ1bmtub3duUmVzb3VyY2VzIiwiZG5zUmVzb3VyY2VzIiwiY29ubmVjdFJlc291cmNlcyIsImltYWdlUmVzb3VyY2VzIiwic3R5bGVSZXNvdXJjZXMiLCJzY3JpcHRSZXNvdXJjZXMiLCJtb2R1bGVVbmtub3duUmVzb3VyY2VzIiwibW9kdWxlU2NyaXB0UmVzb3VyY2VzIiwiUk9PVF9IVE1MX01PREUiLCJIVE1MX0hUTUxfTU9ERSIsIkhUTUxfTU9ERSIsIlNWR19NT0RFIiwiTUFUSE1MX01PREUiLCJIVE1MX1RBQkxFX01PREUiLCJIVE1MX1RBQkxFX0JPRFlfTU9ERSIsIkhUTUxfVEFCTEVfUk9XX01PREUiLCJIVE1MX0NPTEdST1VQX01PREUiLCJOT19TQ09QRSIsIk5PU0NSSVBUX1NDT1BFIiwiUElDVFVSRV9TQ09QRSIsImNyZWF0ZUZvcm1hdENvbnRleHQiLCJpbnNlcnRpb25Nb2RlIiwic2VsZWN0ZWRWYWx1ZSIsInRhZ1Njb3BlIiwiY3JlYXRlUm9vdEZvcm1hdENvbnRleHQiLCJuYW1lc3BhY2VVUkkiLCJnZXRDaGlsZEZvcm1hdENvbnRleHQiLCJwYXJlbnRDb250ZXh0IiwiZGVmYXVsdFZhbHVlIiwibWFrZUlkIiwidHJlZUlkIiwibG9jYWxJZCIsInRvU3RyaW5nIiwiZW5jb2RlSFRNTFRleHROb2RlIiwidGV4dFNlcGFyYXRvciIsInB1c2hUZXh0SW5zdGFuY2UiLCJ0ZXh0RW1iZWRkZWQiLCJwdXNoU2VnbWVudEZpbmFsZSIsImxhc3RQdXNoZWRUZXh0Iiwic3R5bGVOYW1lQ2FjaGUiLCJwcm9jZXNzU3R5bGVOYW1lIiwic3R5bGVOYW1lIiwic3R5bGVBdHRyaWJ1dGVTdGFydCIsInN0eWxlQXNzaWduIiwic3R5bGVTZXBhcmF0b3IiLCJwdXNoU3R5bGVBdHRyaWJ1dGUiLCJFcnJvciIsImlzRmlyc3QiLCJzdHlsZVZhbHVlIiwibmFtZUNodW5rIiwidmFsdWVDaHVuayIsImlzQ3VzdG9tUHJvcGVydHkiLCJ0cmltIiwiYXR0cmlidXRlRW5kIiwiYXR0cmlidXRlU2VwYXJhdG9yIiwiYXR0cmlidXRlQXNzaWduIiwiYXR0cmlidXRlRW1wdHlTdHJpbmciLCJwdXNoQm9vbGVhbkF0dHJpYnV0ZSIsInB1c2hTdHJpbmdBdHRyaWJ1dGUiLCJtYWtlRm9ybUZpZWxkUHJlZml4IiwiYWN0aW9uSmF2YVNjcmlwdFVSTCIsInN0YXJ0SGlkZGVuSW5wdXRDaHVuayIsInB1c2hBZGRpdGlvbmFsRm9ybUZpZWxkIiwiZW5kT2ZTdGFydFRhZ1NlbGZDbG9zaW5nIiwicHVzaEFkZGl0aW9uYWxGb3JtRmllbGRzIiwiZm9ybURhdGEiLCJmb3JFYWNoIiwicHVzaEZvcm1BY3Rpb25BdHRyaWJ1dGUiLCJmb3JtQWN0aW9uIiwiZm9ybUVuY1R5cGUiLCJmb3JtTWV0aG9kIiwiZm9ybVRhcmdldCIsImRpZFdhcm5Gb3JtQWN0aW9uTmFtZSIsImRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kIiwiZGlkV2FybkZvcm1BY3Rpb25UYXJnZXQiLCJjdXN0b21BY3Rpb24iLCIkJEZPUk1fQUNUSU9OIiwiY3VzdG9tRmllbGRzIiwiZW5jVHlwZSIsImluamVjdEZvcm1SZXBsYXlpbmdSdW50aW1lIiwicHVzaEF0dHJpYnV0ZSIsInNhbml0aXplZFZhbHVlIiwiX3Nhbml0aXplZFZhbHVlIiwiZW5kT2ZTdGFydFRhZyIsInB1c2hJbm5lckhUTUwiLCJpbm5lckhUTUwiLCJfX2h0bWwiLCJkaWRXYXJuRGVmYXVsdElucHV0VmFsdWUiLCJkaWRXYXJuRGVmYXVsdENoZWNrZWQiLCJkaWRXYXJuRGVmYXVsdFNlbGVjdFZhbHVlIiwiZGlkV2FybkRlZmF1bHRUZXh0YXJlYVZhbHVlIiwiZGlkV2FybkludmFsaWRPcHRpb25DaGlsZHJlbiIsImRpZFdhcm5JbnZhbGlkT3B0aW9uSW5uZXJIVE1MIiwiZGlkV2FyblNlbGVjdGVkU2V0T25PcHRpb24iLCJkaWRXYXJuRm9ybUFjdGlvblR5cGUiLCJjaGVja1NlbGVjdFByb3AiLCJhcnJheSIsInB1c2hTdGFydFNlbGVjdCIsInN0YXJ0Q2h1bmtGb3JUYWciLCJwcm9wS2V5IiwicHJvcFZhbHVlIiwiZmxhdHRlbk9wdGlvbkNoaWxkcmVuIiwiQ2hpbGRyZW4iLCJjaGlsZCIsInNlbGVjdGVkTWFya2VyQXR0cmlidXRlIiwicHVzaFN0YXJ0T3B0aW9uIiwiZm9ybWF0Q29udGV4dCIsInN0cmluZ1ZhbHVlIiwidiIsImZvcm1SZXBsYXlpbmdSdW50aW1lU2NyaXB0IiwiZm9ybVN0YXRlTWFya2VySXNNYXRjaGluZyIsImZvcm1TdGF0ZU1hcmtlcklzTm90TWF0Y2hpbmciLCJwdXNoRm9ybVN0YXRlTWFya2VySXNNYXRjaGluZyIsInB1c2hGb3JtU3RhdGVNYXJrZXJJc05vdE1hdGNoaW5nIiwicHVzaFN0YXJ0Rm9ybSIsImZvcm1BY3Rpb25OYW1lIiwicHVzaElucHV0IiwiZGVmYXVsdENoZWNrZWQiLCJwdXNoU3RhcnRCdXR0b24iLCJwdXNoU3RhcnRUZXh0QXJlYSIsImxlYWRpbmdOZXdsaW5lIiwicHVzaE1ldGEiLCJub3NjcmlwdFRhZ0luU2NvcGUiLCJpdGVtUHJvcCIsInB1c2hTZWxmQ2xvc2luZyIsImNoYXJTZXQiLCJwdXNoTGluayIsInByZWNlZGVuY2UiLCJwdXNoTGlua0ltcGwiLCJnZXRSZXNvdXJjZUtleSIsIm9uTG9hZCIsIm9uRXJyb3IiLCJwcm9wRGVzY3JpcHRpb24iLCJzdHlsZVF1ZXVlIiwiaGFzS2V5IiwicmVzb3VyY2VTdGF0ZSIsInJ1bGVzIiwiaHJlZnMiLCJzaGVldHMiLCJzdGF0ZSIsIlBFTkRJTkckMSIsInN0eWxlc2hlZXRQcm9wc0Zyb21SYXdQcm9wcyIsInByZWxvYWRTdGF0ZSIsImFkb3B0UHJlbG9hZENyZWRlbnRpYWxzIiwicHJlbG9hZFJlc291cmNlIiwiUFJFTE9BREVEIiwiX3Jlc291cmNlIiwicHVzaFN0eWxlIiwiY2hpbGRUeXBlIiwicHVzaFN0eWxlSW1wbCIsImluY2x1ZGVzIiwicHVzaFN0eWxlQ29udGVudHMiLCJlbmRDaHVua0ZvclRhZyIsInB1c2hJbWciLCJwaWN0dXJlVGFnSW5TY29wZSIsInNyY1NldCIsImxvYWRpbmciLCJnZXRJbWFnZVJlc291cmNlS2V5IiwicHJvbW90YWJsZVByZWxvYWRzIiwiZGVsZXRlIiwiaGVhZGVyIiwiZ2V0UHJlbG9hZEFzSGVhZGVyIiwiaW1hZ2VTcmNTZXQiLCJpbWFnZVNpemVzIiwicmVmZXJyZXJQb2xpY3kiLCJyZWZlcmVyUG9saWN5IiwidGFnIiwicHVzaFN0YXJ0TWVudUl0ZW0iLCJwdXNoVGl0bGUiLCIkJHR5cGVvZiIsInB1c2hUaXRsZUltcGwiLCJwdXNoU3RhcnRIZWFkIiwicHVzaFN0YXJ0R2VuZXJpY0VsZW1lbnQiLCJwdXNoU3RhcnRIdG1sIiwiZG9jdHlwZUNodW5rIiwicHVzaFNjcmlwdCIsImFzeW5jUHJvcCIsInJlc291cmNlcyIsInNjcmlwdFByb3BzIiwiZGVzY3JpcHRpdmVTdGF0ZW1lbnQiLCJwdXNoU3RhcnRDdXN0b21FbGVtZW50IiwicHVzaFN0YXJ0UHJlZm9ybWF0dGVkRWxlbWVudCIsIlZBTElEX1RBR19SRUdFWCIsInZhbGlkYXRlZFRhZ0NhY2hlIiwidGFnU3RhcnRDaHVuayIsInB1c2hTdGFydEluc3RhbmNlIiwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiwiY29udGVudEVkaXRhYmxlIiwiZW5kVGFnQ2FjaGUiLCJwdXNoRW5kSW5zdGFuY2UiLCJ3cml0ZUJvb3RzdHJhcCIsImxhc3RDaHVuayIsIndyaXRlQ29tcGxldGVkUm9vdCIsInBsYWNlaG9sZGVyMSIsInBsYWNlaG9sZGVyMiIsIndyaXRlUGxhY2Vob2xkZXIiLCJmb3JtYXR0ZWRJRCIsInN0YXJ0Q29tcGxldGVkU3VzcGVuc2VCb3VuZGFyeSIsInN0YXJ0UGVuZGluZ1N1c3BlbnNlQm91bmRhcnkxIiwic3RhcnRQZW5kaW5nU3VzcGVuc2VCb3VuZGFyeTIiLCJzdGFydENsaWVudFJlbmRlcmVkU3VzcGVuc2VCb3VuZGFyeSIsImVuZFN1c3BlbnNlQm91bmRhcnkiLCJjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvcjEiLCJjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvckF0dHJJbnRlcnN0aXRpYWwiLCJjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvcjFBIiwiY2xpZW50UmVuZGVyZWRTdXNwZW5zZUJvdW5kYXJ5RXJyb3IxQiIsImNsaWVudFJlbmRlcmVkU3VzcGVuc2VCb3VuZGFyeUVycm9yMUMiLCJjbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnlFcnJvcjIiLCJ3cml0ZVN0YXJ0Q29tcGxldGVkU3VzcGVuc2VCb3VuZGFyeSIsIndyaXRlU3RhcnRQZW5kaW5nU3VzcGVuc2VCb3VuZGFyeSIsIndyaXRlU3RhcnRDbGllbnRSZW5kZXJlZFN1c3BlbnNlQm91bmRhcnkiLCJlcnJvckRpZ2VzdCIsImVycm9yTWVzc3NhZ2UiLCJlcnJvckNvbXBvbmVudFN0YWNrIiwid3JpdGVFbmRDb21wbGV0ZWRTdXNwZW5zZUJvdW5kYXJ5Iiwid3JpdGVFbmRQZW5kaW5nU3VzcGVuc2VCb3VuZGFyeSIsIndyaXRlRW5kQ2xpZW50UmVuZGVyZWRTdXNwZW5zZUJvdW5kYXJ5Iiwic3RhcnRTZWdtZW50SFRNTCIsInN0YXJ0U2VnbWVudEhUTUwyIiwiZW5kU2VnbWVudEhUTUwiLCJzdGFydFNlZ21lbnRTVkciLCJzdGFydFNlZ21lbnRTVkcyIiwiZW5kU2VnbWVudFNWRyIsInN0YXJ0U2VnbWVudE1hdGhNTCIsInN0YXJ0U2VnbWVudE1hdGhNTDIiLCJlbmRTZWdtZW50TWF0aE1MIiwic3RhcnRTZWdtZW50VGFibGUiLCJzdGFydFNlZ21lbnRUYWJsZTIiLCJlbmRTZWdtZW50VGFibGUiLCJzdGFydFNlZ21lbnRUYWJsZUJvZHkiLCJzdGFydFNlZ21lbnRUYWJsZUJvZHkyIiwiZW5kU2VnbWVudFRhYmxlQm9keSIsInN0YXJ0U2VnbWVudFRhYmxlUm93Iiwic3RhcnRTZWdtZW50VGFibGVSb3cyIiwiZW5kU2VnbWVudFRhYmxlUm93Iiwic3RhcnRTZWdtZW50Q29sR3JvdXAiLCJzdGFydFNlZ21lbnRDb2xHcm91cDIiLCJlbmRTZWdtZW50Q29sR3JvdXAiLCJ3cml0ZVN0YXJ0U2VnbWVudCIsIndyaXRlRW5kU2VnbWVudCIsImNvbXBsZXRlU2VnbWVudFNjcmlwdDFGdWxsIiwiY29tcGxldGVTZWdtZW50U2NyaXB0MVBhcnRpYWwiLCJjb21wbGV0ZVNlZ21lbnRTY3JpcHQyIiwiY29tcGxldGVTZWdtZW50U2NyaXB0RW5kIiwiY29tcGxldGVTZWdtZW50RGF0YTEiLCJjb21wbGV0ZVNlZ21lbnREYXRhMiIsImNvbXBsZXRlU2VnbWVudERhdGFFbmQiLCJ3cml0ZUNvbXBsZXRlZFNlZ21lbnRJbnN0cnVjdGlvbiIsImNvbnRlbnRTZWdtZW50SUQiLCJzY3JpcHRGb3JtYXQiLCJjb21wbGV0ZUJvdW5kYXJ5U2NyaXB0MUZ1bGwiLCJjb21wbGV0ZUJvdW5kYXJ5U2NyaXB0MVBhcnRpYWwiLCJjb21wbGV0ZUJvdW5kYXJ5V2l0aFN0eWxlc1NjcmlwdDFGdWxsQm90aCIsImNvbXBsZXRlQm91bmRhcnlXaXRoU3R5bGVzU2NyaXB0MUZ1bGxQYXJ0aWFsIiwiY29tcGxldGVCb3VuZGFyeVdpdGhTdHlsZXNTY3JpcHQxUGFydGlhbCIsImNvbXBsZXRlQm91bmRhcnlTY3JpcHQyIiwiY29tcGxldGVCb3VuZGFyeVNjcmlwdDNhIiwiY29tcGxldGVCb3VuZGFyeVNjcmlwdDNiIiwiY29tcGxldGVCb3VuZGFyeVNjcmlwdEVuZCIsImNvbXBsZXRlQm91bmRhcnlEYXRhMSIsImNvbXBsZXRlQm91bmRhcnlXaXRoU3R5bGVzRGF0YTEiLCJjb21wbGV0ZUJvdW5kYXJ5RGF0YTIiLCJjb21wbGV0ZUJvdW5kYXJ5RGF0YTNhIiwiY29tcGxldGVCb3VuZGFyeURhdGFFbmQiLCJ3cml0ZUNvbXBsZXRlZEJvdW5kYXJ5SW5zdHJ1Y3Rpb24iLCJyZXF1aXJlc1N0eWxlSW5zZXJ0aW9uIiwiaWRDaHVuayIsIndyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY2llc0luSlMiLCJ3cml0ZVN0eWxlUmVzb3VyY2VEZXBlbmRlbmNpZXNJbkF0dHIiLCJ3cml0ZU1vcmUiLCJjbGllbnRSZW5kZXJTY3JpcHQxRnVsbCIsImNsaWVudFJlbmRlclNjcmlwdDFQYXJ0aWFsIiwiY2xpZW50UmVuZGVyU2NyaXB0MUEiLCJjbGllbnRSZW5kZXJFcnJvclNjcmlwdEFyZ0ludGVyc3RpdGlhbCIsImNsaWVudFJlbmRlclNjcmlwdEVuZCIsImNsaWVudFJlbmRlckRhdGExIiwiY2xpZW50UmVuZGVyRGF0YTIiLCJjbGllbnRSZW5kZXJEYXRhMyIsImNsaWVudFJlbmRlckRhdGE0IiwiY2xpZW50UmVuZGVyRGF0YUVuZCIsIndyaXRlQ2xpZW50UmVuZGVyQm91bmRhcnlJbnN0cnVjdGlvbiIsImVycm9yTWVzc2FnZSIsImVzY2FwZUpTU3RyaW5nc0Zvckluc3RydWN0aW9uU2NyaXB0cyIsInJlZ2V4Rm9ySlNTdHJpbmdzSW5JbnN0cnVjdGlvblNjcmlwdHMiLCJlc2NhcGVkIiwicmVnZXhGb3JKU1N0cmluZ3NJblNjcmlwdHMiLCJlc2NhcGVKU09iamVjdEZvckluc3RydWN0aW9uU2NyaXB0cyIsImxhdGVTdHlsZVRhZ1Jlc291cmNlT3BlbjEiLCJsYXRlU3R5bGVUYWdSZXNvdXJjZU9wZW4yIiwibGF0ZVN0eWxlVGFnUmVzb3VyY2VPcGVuMyIsImxhdGVTdHlsZVRhZ1RlbXBsYXRlQ2xvc2UiLCJjdXJyZW50bHlSZW5kZXJpbmdCb3VuZGFyeUhhc1N0eWxlc1RvSG9pc3QiLCJkZXN0aW5hdGlvbkhhc0NhcGFjaXR5IiwiZmx1c2hTdHlsZVRhZ3NMYXRlRm9yQm91bmRhcnkiLCJzcGFjZVNlcGFyYXRvciIsImhhc1N0eWxlc1RvSG9pc3QiLCJzdHlsZXNoZWV0IiwiUFJFQU1CTEUiLCJ3cml0ZVJlc291cmNlc0ZvckJvdW5kYXJ5IiwiZmx1c2hSZXNvdXJjZSIsInN0eWxlc2hlZXRGbHVzaGluZ1F1ZXVlIiwiZmx1c2hTdHlsZUluUHJlYW1ibGUiLCJzdHlsZVRhZ1Jlc291cmNlT3BlbjEiLCJzdHlsZVRhZ1Jlc291cmNlT3BlbjIiLCJzdHlsZVRhZ1Jlc291cmNlT3BlbjMiLCJzdHlsZVRhZ1Jlc291cmNlQ2xvc2UiLCJmbHVzaFN0eWxlc0luUHJlYW1ibGUiLCJoYXNTdHlsZXNoZWV0cyIsImNsZWFyIiwicHJlbG9hZExhdGVTdHlsZSIsInByZWxvYWRQcm9wcyIsInByZWxvYWRBc1N0eWxlUHJvcHNGcm9tUHJvcHMiLCJwcmVsb2FkTGF0ZVN0eWxlcyIsIndyaXRlUHJlYW1ibGUiLCJ3aWxsRmx1c2hBbGxTZWdtZW50cyIsIl9yZW5kZXJTdGF0ZSRleHRlcm5hbCIsImludGVybmFsUHJlaW5pdFNjcmlwdCIsIndyaXRlSG9pc3RhYmxlcyIsIndyaXRlUG9zdGFtYmxlIiwiYXJyYXlGaXJzdE9wZW5CcmFja2V0IiwiYXJyYXlTdWJzZXF1ZW50T3BlbkJyYWNrZXQiLCJhcnJheUludGVyc3RpdGlhbCIsImFycmF5Q2xvc2VCcmFja2V0IiwibmV4dEFycmF5T3BlbkJyYWNrQ2h1bmsiLCJMQVRFIiwid3JpdGVTdHlsZVJlc291cmNlRGVwZW5kZW5jeUhyZWZPbmx5SW5KUyIsIndyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY3lJbkpTIiwiY29lcmNlZEhyZWYiLCJjb2VyY2VkUHJlY2VkZW5jZSIsIndyaXRlU3R5bGVSZXNvdXJjZUF0dHJpYnV0ZUluSlMiLCJhdHRyaWJ1dGVWYWx1ZSIsIndyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY3lIcmVmT25seUluQXR0ciIsIndyaXRlU3R5bGVSZXNvdXJjZURlcGVuZGVuY3lJbkF0dHIiLCJ3cml0ZVN0eWxlUmVzb3VyY2VBdHRyaWJ1dGVJbkF0dHIiLCJjcmVhdGVCb3VuZGFyeVJlc291cmNlcyIsInNldEN1cnJlbnRseVJlbmRlcmluZ0JvdW5kYXJ5UmVzb3VyY2VzVGFyZ2V0IiwicmVxdWVzdCIsInJlc29sdmVSZXF1ZXN0IiwiZ2V0UmVzdW1hYmxlU3RhdGUiLCJnZXRSZW5kZXJTdGF0ZSIsImdldFByZWZldGNoRE5TQXNIZWFkZXIiLCJmbHVzaFJlc291cmNlcyIsImJ1Y2tldCIsImdldFByZWNvbm5lY3RBc0hlYWRlciIsIm9wdGlvbnMiLCJfcmVzb3VyY2UyIiwiX3Jlc291cmNlMyIsIl9rZXkzIiwiaGFzQXNUeXBlIiwiX2hlYWRlcnMiLCJfaGVhZGVyIiwiX3Jlc291cmNlNCIsImhyZWZMYW5nIiwicmF3UHJvcHMiLCJlc2NhcGVkSHJlZiIsImVzY2FwZUhyZWZGb3JMaW5rSGVhZGVyVVJMQ29udGV4dCIsImVzY2FwZWRDcm9zc09yaWdpbiIsImVzY2FwZVN0cmluZ0ZvckxpbmtIZWFkZXJRdW90ZWRQYXJhbVZhbHVlQ29udGV4dCIsInBhcmFtcyIsImVzY2FwZWRBcyIsInBhcmFtTmFtZSIsInBhcmFtVmFsdWUiLCJnZXRTdHlsZXNoZWV0UHJlbG9hZEFzSGVhZGVyIiwicHJlbG9hZE9wdGlvbnMiLCJyZWdleEZvckhyZWZJbkxpbmtIZWFkZXJVUkxDb250ZXh0IiwiaHJlZklucHV0IiwiZXNjYXBlSHJlZkZvckxpbmtIZWFkZXJVUkxDb250ZXh0UmVwbGFjZXIiLCJyZWdleEZvckxpbmtIZWFkZXJRdW90ZWRQYXJhbVZhbHVlQ29udGV4dCIsImNvZXJjZWQiLCJlc2NhcGVTdHJpbmdGb3JMaW5rSGVhZGVyUXVvdGVkUGFyYW1WYWx1ZUNvbnRleHRSZXBsYWNlciIsImhvaXN0U3R5bGVRdWV1ZURlcGVuZGVuY3kiLCJob2lzdFN0eWxlc2hlZXREZXBlbmRlbmN5IiwiaG9pc3RSZXNvdXJjZXMiLCJzb3VyY2UiLCJjdXJyZW50Qm91bmRhcnlSZXNvdXJjZXMiLCJlbWl0RWFybHlQcmVsb2FkcyIsInNoZWxsQ29tcGxldGUiLCJsaW5rSGVhZGVyIiwicXVldWVJdGVyIiwib3V0ZXIiLCJxdWV1ZVN0ZXAiLCJuZXh0IiwiZG9uZSIsInNoZWV0SXRlciIsInNoZWV0U3RlcCIsInNoZWV0IiwiTGluayIsIk5vdFBlbmRpbmdUcmFuc2l0aW9uIiwic3VwcG9ydHNSZXF1ZXN0U3RvcmFnZSIsIkFzeW5jTG9jYWxTdG9yYWdlIiwicmVxdWVzdFN0b3JhZ2UiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJSRUFDVF9QT1JUQUxfVFlQRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIiwiUkVBQ1RfUFJPRklMRVJfVFlQRSIsIlJFQUNUX1BST1ZJREVSX1RZUEUiLCJSRUFDVF9DT05URVhUX1RZUEUiLCJSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJSRUFDVF9TQ09QRV9UWVBFIiwiUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUiLCJSRUFDVF9PRkZTQ1JFRU5fVFlQRSIsIlJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSIsIlJFQUNUX0NBQ0hFX1RZUEUiLCJSRUFDVF9TRVJWRVJfQ09OVEVYVF9ERUZBVUxUX1ZBTFVFX05PVF9MT0FERUQiLCJNQVlCRV9JVEVSQVRPUl9TWU1CT0wiLCJpdGVyYXRvciIsIkZBVVhfSVRFUkFUT1JfU1lNQk9MIiwiZ2V0SXRlcmF0b3JGbiIsIm1heWJlSXRlcmFibGUiLCJtYXliZUl0ZXJhdG9yIiwiZ2V0V3JhcHBlZE5hbWUiLCJvdXRlclR5cGUiLCJpbm5lclR5cGUiLCJ3cmFwcGVyTmFtZSIsImRpc3BsYXlOYW1lIiwiZnVuY3Rpb25OYW1lIiwiZ2V0Q29udGV4dE5hbWUiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFIiwiZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlIiwiY29udGV4dCIsInByb3ZpZGVyIiwiX2NvbnRleHQiLCJyZW5kZXIiLCJvdXRlck5hbWUiLCJsYXp5Q29tcG9uZW50IiwicGF5bG9hZCIsIl9wYXlsb2FkIiwiaW5pdCIsIl9pbml0IiwiZGlzYWJsZWREZXB0aCIsInByZXZMb2ciLCJwcmV2SW5mbyIsInByZXZXYXJuIiwicHJldkVycm9yIiwicHJldkdyb3VwIiwicHJldkdyb3VwQ29sbGFwc2VkIiwicHJldkdyb3VwRW5kIiwiZGlzYWJsZWRMb2ciLCJfX3JlYWN0RGlzYWJsZWRMb2ciLCJkaXNhYmxlTG9ncyIsImxvZyIsImluZm8iLCJncm91cCIsImdyb3VwQ29sbGFwc2VkIiwiZ3JvdXBFbmQiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicmVlbmFibGVMb2dzIiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxIiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciIsImRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lIiwib3duZXJGbiIsInJlZW50cnkiLCJjb21wb25lbnRGcmFtZUNhY2hlIiwiUG9zc2libHlXZWFrTWFwIiwiV2Vha01hcCIsImRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUiLCJmbiIsImNvbnN0cnVjdCIsImZyYW1lIiwicHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSIsInByZXBhcmVTdGFja1RyYWNlIiwicHJldmlvdXNEaXNwYXRjaGVyIiwiUnVuSW5Sb290RnJhbWUiLCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiLCJjb250cm9sIiwiRmFrZSIsImRlZmluZVByb3BlcnR5IiwiUmVmbGVjdCIsIm1heWJlUHJvbWlzZSIsImNhdGNoIiwic2FtcGxlIiwibmFtZVByb3BEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX1J1bkluUm9vdEZyYW1lJERldGVyIiwic2FtcGxlU3RhY2siLCJjb250cm9sU3RhY2siLCJzYW1wbGVMaW5lcyIsInNwbGl0IiwiY29udHJvbExpbmVzIiwiYyIsIl9mcmFtZSIsInN5bnRoZXRpY0ZyYW1lIiwiZGVzY3JpYmVDbGFzc0NvbXBvbmVudEZyYW1lIiwiY3RvciIsImRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSIsInNob3VsZENvbnN0cnVjdCQxIiwiQ29tcG9uZW50IiwiaXNSZWFjdENvbXBvbmVudCIsImRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFViIsImxvZ2dlZFR5cGVGYWlsdXJlcyIsIlJlYWN0RGVidWdDdXJyZW50RnJhbWUkMSIsInNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50IiwiZWxlbWVudCIsIm93bmVyIiwiX293bmVyIiwiX3NvdXJjZSIsInNldEV4dHJhU3RhY2tGcmFtZSIsImNoZWNrUHJvcFR5cGVzIiwidHlwZVNwZWNzIiwibG9jYXRpb24iLCJjb21wb25lbnROYW1lIiwiYmluZCIsInR5cGVTcGVjTmFtZSIsImVycm9yJDEiLCJlcnIiLCJleCIsIm1lc3NhZ2UiLCJ3YXJuZWRBYm91dE1pc3NpbmdHZXRDaGlsZENvbnRleHQiLCJlbXB0eUNvbnRleHRPYmplY3QiLCJnZXRNYXNrZWRDb250ZXh0IiwidW5tYXNrZWRDb250ZXh0IiwiY29udGV4dFR5cGVzIiwicHJvY2Vzc0NoaWxkQ29udGV4dCIsImluc3RhbmNlIiwiY2hpbGRDb250ZXh0VHlwZXMiLCJnZXRDaGlsZENvbnRleHQiLCJjaGlsZENvbnRleHQiLCJjb250ZXh0S2V5IiwicmVuZGVyZXJTaWdpbCIsInJvb3RDb250ZXh0U25hcHNob3QiLCJjdXJyZW50QWN0aXZlU25hcHNob3QiLCJwb3BOb2RlIiwicHJldiIsIl9jdXJyZW50VmFsdWUiLCJwYXJlbnRWYWx1ZSIsInB1c2hOb2RlIiwicG9wVG9OZWFyZXN0Q29tbW9uQW5jZXN0b3IiLCJwYXJlbnRQcmV2IiwicGFyZW50IiwicGFyZW50TmV4dCIsInBvcEFsbFByZXZpb3VzIiwicHVzaEFsbE5leHQiLCJwb3BQcmV2aW91c1RvQ29tbW9uTGV2ZWwiLCJkZXB0aCIsInBvcE5leHRUb0NvbW1vbkxldmVsIiwic3dpdGNoQ29udGV4dCIsIm5ld1NuYXBzaG90IiwicHVzaFByb3ZpZGVyIiwibmV4dFZhbHVlIiwicHJldlZhbHVlIiwiX2N1cnJlbnRSZW5kZXJlciIsInByZXZOb2RlIiwibmV3Tm9kZSIsInBvcFByb3ZpZGVyIiwicHJldlNuYXBzaG90IiwiX2RlZmF1bHRWYWx1ZSIsImdldEFjdGl2ZUNvbnRleHQiLCJyZWFkQ29udGV4dCQxIiwiX3JlYWN0SW50ZXJuYWxzIiwiZGlkV2FybkFib3V0Tm9vcFVwZGF0ZUZvckNvbXBvbmVudCIsImRpZFdhcm5BYm91dERlcHJlY2F0ZWRXaWxsTW91bnQiLCJkaWRXYXJuQWJvdXRVbmluaXRpYWxpemVkU3RhdGUiLCJkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUiLCJkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlIiwiZGlkV2FybkFib3V0VW5kZWZpbmVkRGVyaXZlZFN0YXRlIiwiZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUiLCJkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcyIsImRpZFdhcm5BYm91dEludmFsaWRhdGVDb250ZXh0VHlwZSIsImRpZFdhcm5PbkludmFsaWRDYWxsYmFjayIsIndhcm5PbkludmFsaWRDYWxsYmFjayIsImNhbGxlck5hbWUiLCJ3YXJuT25VbmRlZmluZWREZXJpdmVkU3RhdGUiLCJwYXJ0aWFsU3RhdGUiLCJ3YXJuTm9vcCIsInB1YmxpY0luc3RhbmNlIiwiX2NvbnN0cnVjdG9yIiwid2FybmluZ0tleSIsImNsYXNzQ29tcG9uZW50VXBkYXRlciIsImlzTW91bnRlZCIsImluc3QiLCJlbnF1ZXVlU2V0U3RhdGUiLCJpbnRlcm5hbHMiLCJxdWV1ZSIsImVucXVldWVSZXBsYWNlU3RhdGUiLCJlbnF1ZXVlRm9yY2VVcGRhdGUiLCJhcHBseURlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsInByZXZTdGF0ZSIsIm5leHRQcm9wcyIsIm5ld1N0YXRlIiwiY29uc3RydWN0Q2xhc3NJbnN0YW5jZSIsIm1hc2tlZExlZ2FjeUNvbnRleHQiLCJjb250ZXh0VHlwZSIsImFkZGVuZHVtIiwia2V5cyIsImdldFNuYXBzaG90QmVmb3JlVXBkYXRlIiwiZm91bmRXaWxsTW91bnROYW1lIiwiZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSIsImZvdW5kV2lsbFVwZGF0ZU5hbWUiLCJjb21wb25lbnRXaWxsTW91bnQiLCJfX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsImNvbXBvbmVudFdpbGxVcGRhdGUiLCJVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSIsIl9jb21wb25lbnROYW1lIiwibmV3QXBpTmFtZSIsImNoZWNrQ2xhc3NJbnN0YW5jZSIsIm5ld1Byb3BzIiwicmVuZGVyUHJlc2VudCIsImdldEluaXRpYWxTdGF0ZSIsImlzUmVhY3RDbGFzc0FwcHJvdmVkIiwiZ2V0RGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwiY29tcG9uZW50U2hvdWxkVXBkYXRlIiwiaXNQdXJlUmVhY3RDb21wb25lbnQiLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJjb21wb25lbnREaWRVbm1vdW50IiwiY29tcG9uZW50RGlkUmVjZWl2ZVByb3BzIiwiY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcyIsIlVOU0FGRV9jb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzIiwiaGFzTXV0YXRlZFByb3BzIiwiZGVmYXVsdFByb3BzIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIiwiY2FsbENvbXBvbmVudFdpbGxNb3VudCIsIm9sZFN0YXRlIiwicHJvY2Vzc1VwZGF0ZVF1ZXVlIiwiaW50ZXJuYWxJbnN0YW5jZSIsIm9sZFF1ZXVlIiwib2xkUmVwbGFjZSIsIm5leHRTdGF0ZSIsImRvbnRNdXRhdGUiLCJwYXJ0aWFsIiwibW91bnRDbGFzc0luc3RhbmNlIiwiaW5pdGlhbFN0YXRlIiwidXBkYXRlciIsImVtcHR5VHJlZUNvbnRleHQiLCJnZXRUcmVlSWQiLCJpZFdpdGhMZWFkaW5nQml0IiwiZ2V0TGVhZGluZ0JpdCIsInB1c2hUcmVlQ29udGV4dCIsImJhc2VDb250ZXh0IiwidG90YWxDaGlsZHJlbiIsImJhc2VJZFdpdGhMZWFkaW5nQml0IiwiYmFzZU92ZXJmbG93IiwiYmFzZUxlbmd0aCIsImdldEJpdExlbmd0aCIsImJhc2VJZCIsInNsb3QiLCJudW1iZXJPZk92ZXJmbG93Qml0cyIsIm5ld092ZXJmbG93Qml0cyIsIm5ld092ZXJmbG93IiwicmVzdE9mQmFzZUlkIiwicmVzdE9mQmFzZUxlbmd0aCIsInJlc3RPZkxlbmd0aCIsInJlc3RPZk5ld0JpdHMiLCJuZXdCaXRzIiwiX2lkIiwiX292ZXJmbG93IiwibnVtYmVyIiwiY2x6MzIiLCJNYXRoIiwiY2x6MzJGYWxsYmFjayIsIkxOMiIsImFzVWludCIsIlN1c3BlbnNlRXhjZXB0aW9uIiwiY3JlYXRlVGhlbmFibGVTdGF0ZSIsIm5vb3AkMiIsInRyYWNrVXNlZFRoZW5hYmxlIiwidGhlbmFibGVTdGF0ZSIsInRoZW5hYmxlIiwicHJldmlvdXMiLCJ0aGVuIiwic3RhdHVzIiwiZnVsZmlsbGVkVmFsdWUiLCJyZWplY3RlZEVycm9yIiwicmVhc29uIiwicGVuZGluZ1RoZW5hYmxlIiwiZnVsZmlsbGVkVGhlbmFibGUiLCJyZWplY3RlZFRoZW5hYmxlIiwic3VzcGVuZGVkVGhlbmFibGUiLCJnZXRTdXNwZW5kZWRUaGVuYWJsZSIsIm9iamVjdElzIiwiY3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50IiwiY3VycmVudGx5UmVuZGVyaW5nVGFzayIsImN1cnJlbnRseVJlbmRlcmluZ1JlcXVlc3QiLCJjdXJyZW50bHlSZW5kZXJpbmdLZXlQYXRoIiwiZmlyc3RXb3JrSW5Qcm9ncmVzc0hvb2siLCJ3b3JrSW5Qcm9ncmVzc0hvb2siLCJpc1JlUmVuZGVyIiwiZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSIsImxvY2FsSWRDb3VudGVyIiwiZm9ybVN0YXRlQ291bnRlciIsImZvcm1TdGF0ZU1hdGNoaW5nSW5kZXgiLCJ0aGVuYWJsZUluZGV4Q291bnRlciIsInJlbmRlclBoYXNlVXBkYXRlcyIsIm51bWJlck9mUmVSZW5kZXJzIiwiUkVfUkVOREVSX0xJTUlUIiwiaXNJbkhvb2tVc2VyQ29kZUluRGV2IiwiY3VycmVudEhvb2tOYW1lSW5EZXYiLCJyZXNvbHZlQ3VycmVudGx5UmVuZGVyaW5nQ29tcG9uZW50IiwiYXJlSG9va0lucHV0c0VxdWFsIiwibmV4dERlcHMiLCJwcmV2RGVwcyIsImNyZWF0ZUhvb2siLCJtZW1vaXplZFN0YXRlIiwiY3JlYXRlV29ya0luUHJvZ3Jlc3NIb29rIiwicHJlcGFyZVRvVXNlSG9va3MiLCJ0YXNrIiwia2V5UGF0aCIsImNvbXBvbmVudElkZW50aXR5IiwicHJldlRoZW5hYmxlU3RhdGUiLCJmaW5pc2hIb29rcyIsInJlZk9yQ29udGV4dCIsInJlc2V0SG9va3NTdGF0ZSIsImdldFRoZW5hYmxlU3RhdGVBZnRlclN1c3BlbmRpbmciLCJjaGVja0RpZFJlbmRlcklkSG9vayIsImRpZFJlbmRlcklkSG9vayIsImdldEZvcm1TdGF0ZUNvdW50IiwiZ2V0Rm9ybVN0YXRlTWF0Y2hpbmdJbmRleCIsInJlYWRDb250ZXh0IiwidXNlQ29udGV4dCIsImJhc2ljU3RhdGVSZWR1Y2VyIiwidXNlU3RhdGUiLCJ1c2VSZWR1Y2VyIiwicmVkdWNlciIsImluaXRpYWxBcmciLCJkaXNwYXRjaCIsImZpcnN0UmVuZGVyUGhhc2VVcGRhdGUiLCJ1cGRhdGUiLCJfcXVldWUiLCJsYXN0IiwiX2Rpc3BhdGNoIiwiZGlzcGF0Y2hBY3Rpb24iLCJ1c2VNZW1vIiwibmV4dENyZWF0ZSIsImRlcHMiLCJ1c2VSZWYiLCJpbml0aWFsVmFsdWUiLCJwcmV2aW91c1JlZiIsInJlZiIsInNlYWwiLCJsYXN0UmVuZGVyUGhhc2VVcGRhdGUiLCJ1c2VDYWxsYmFjayIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwic3Vic2NyaWJlIiwiZ2V0U25hcHNob3QiLCJnZXRTZXJ2ZXJTbmFwc2hvdCIsInVzZURlZmVycmVkVmFsdWUiLCJ1bnN1cHBvcnRlZFN0YXJ0VHJhbnNpdGlvbiIsInVzZVRyYW5zaXRpb24iLCJ1c2VIb3N0VHJhbnNpdGlvblN0YXR1cyIsInVuc3VwcG9ydGVkU2V0T3B0aW1pc3RpY1N0YXRlIiwidXNlT3B0aW1pc3RpYyIsInBhc3N0aHJvdWdoIiwiY3JlYXRlUG9zdGJhY2tGb3JtU3RhdGVLZXkiLCJwZXJtYWxpbmsiLCJjb21wb25lbnRLZXlQYXRoIiwiaG9va0luZGV4Iiwia2V5UGF0aEhhc2giLCJ1c2VGb3JtU3RhdGUiLCJmb3JtU3RhdGVIb29rSW5kZXgiLCJuZXh0UG9zdGJhY2tTdGF0ZUtleSIsInBvc3RiYWNrRm9ybVN0YXRlIiwiZ2V0Rm9ybVN0YXRlIiwiaXNTaWduYXR1cmVFcXVhbCIsIiQkSVNfU0lHTkFUVVJFX0VRVUFMIiwicG9zdGJhY2tLZXkiLCJwb3N0YmFja1JlZmVyZW5jZUlkIiwicG9zdGJhY2tCb3VuZEFyaXR5IiwiYm91bmRBY3Rpb24iLCJtZXRhZGF0YSIsImFwcGVuZCIsIl9ib3VuZEFjdGlvbiIsIl9kaXNwYXRjaDIiLCJ1c2VJZCIsInRyZWVDb250ZXh0IiwiY3VycmVudFJlc3VtYWJsZVN0YXRlIiwidXNlIiwidXNhYmxlIiwidW53cmFwVGhlbmFibGUiLCJ1bnN1cHBvcnRlZFJlZnJlc2giLCJ1c2VDYWNoZVJlZnJlc2giLCJub29wJDEiLCJIb29rc0Rpc3BhdGNoZXIiLCJ1c2VJbnNlcnRpb25FZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlRWZmZWN0IiwidXNlRGVidWdWYWx1ZSIsInNldEN1cnJlbnRSZXN1bWFibGVTdGF0ZSIsImdldENhY2hlU2lnbmFsIiwiZ2V0Q2FjaGVGb3JUeXBlIiwicmVzb3VyY2VUeXBlIiwiRGVmYXVsdENhY2hlRGlzcGF0Y2hlciIsImdldFN0YWNrQnlDb21wb25lbnRTdGFja05vZGUiLCJjb21wb25lbnRTdGFjayIsIm5vZGUiLCJSZWFjdEN1cnJlbnRDYWNoZSIsIkNMSUVOVF9SRU5ERVJFRCIsIlBFTkRJTkciLCJDT01QTEVURUQiLCJGTFVTSEVEIiwiQUJPUlRFRCIsIkVSUk9SRUQiLCJQT1NUUE9ORUQiLCJPUEVOIiwiQ0xPU0lORyIsIkNMT1NFRCIsIkRFRkFVTFRfUFJPR1JFU1NJVkVfQ0hVTktfU0laRSIsImRlZmF1bHRFcnJvckhhbmRsZXIiLCJub29wIiwiY3JlYXRlUmVxdWVzdCIsInJvb3RGb3JtYXRDb250ZXh0IiwicHJvZ3Jlc3NpdmVDaHVua1NpemUiLCJvbkFsbFJlYWR5Iiwib25TaGVsbFJlYWR5Iiwib25TaGVsbEVycm9yIiwib25GYXRhbEVycm9yIiwib25Qb3N0cG9uZSIsImZvcm1TdGF0ZSIsInBpbmdlZFRhc2tzIiwiYWJvcnRTZXQiLCJmbHVzaFNjaGVkdWxlZCIsImZhdGFsRXJyb3IiLCJuZXh0U2VnbWVudElkIiwiYWxsUGVuZGluZ1Rhc2tzIiwicGVuZGluZ1Jvb3RUYXNrcyIsImNvbXBsZXRlZFJvb3RTZWdtZW50IiwiYWJvcnRhYmxlVGFza3MiLCJjbGllbnRSZW5kZXJlZEJvdW5kYXJpZXMiLCJjb21wbGV0ZWRCb3VuZGFyaWVzIiwicGFydGlhbEJvdW5kYXJpZXMiLCJ0cmFja2VkUG9zdHBvbmVzIiwicm9vdFNlZ21lbnQiLCJjcmVhdGVQZW5kaW5nU2VnbWVudCIsInBhcmVudEZsdXNoZWQiLCJyb290VGFzayIsImNyZWF0ZVJlbmRlclRhc2siLCJjdXJyZW50UmVxdWVzdCIsInN0b3JlIiwiZ2V0U3RvcmUiLCJwaW5nVGFzayIsInBlcmZvcm1Xb3JrIiwiY3JlYXRlU3VzcGVuc2VCb3VuZGFyeSIsImZhbGxiYWNrQWJvcnRhYmxlVGFza3MiLCJyb290U2VnbWVudElEIiwicGVuZGluZ1Rhc2tzIiwiY29tcGxldGVkU2VnbWVudHMiLCJieXRlU2l6ZSIsInRyYWNrZWRDb250ZW50S2V5UGF0aCIsInRyYWNrZWRGYWxsYmFja05vZGUiLCJjaGlsZEluZGV4IiwiYmxvY2tlZEJvdW5kYXJ5IiwiYmxvY2tlZFNlZ21lbnQiLCJsZWdhY3lDb250ZXh0IiwicmVwbGF5IiwicGluZyIsImNyZWF0ZVJlcGxheVRhc2siLCJib3VuZGFyeSIsInBhcmVudEZvcm1hdENvbnRleHQiLCJjdXJyZW50VGFza0luREVWIiwiZ2V0Q3VycmVudFN0YWNrSW5ERVYiLCJnZXRTdGFja0Zyb21Ob2RlIiwic3RhY2tOb2RlIiwiY3JlYXRlQnVpbHRJbkNvbXBvbmVudFN0YWNrIiwiY3JlYXRlRnVuY3Rpb25Db21wb25lbnRTdGFjayIsImNyZWF0ZUNsYXNzQ29tcG9uZW50U3RhY2siLCJnZXRUaHJvd25JbmZvIiwiZW5jb2RlRXJyb3JGb3JCb3VuZGFyeSIsImRpZ2VzdCIsInRocm93bkluZm8iLCJsb2dSZWNvdmVyYWJsZUVycm9yIiwiZXJyb3JJbmZvIiwicmVuZGVyU3VzcGVuc2VCb3VuZGFyeSIsInNvbWVUYXNrIiwiX3ByZXZLZXlQYXRoIiwiX2NvbnRlbnQiLCJyZW5kZXJOb2RlIiwicHJldmlvdXNDb21wb25lbnRTdGFjayIsInN1c3BlbnNlQ29tcG9uZW50U3RhY2siLCJwcmV2S2V5UGF0aCIsInBhcmVudEJvdW5kYXJ5IiwicGFyZW50U2VnbWVudCIsImZhbGxiYWNrIiwiZmFsbGJhY2tBYm9ydFNldCIsIm5ld0JvdW5kYXJ5IiwiaW5zZXJ0aW9uSW5kZXgiLCJib3VuZGFyeVNlZ21lbnQiLCJjb250ZW50Um9vdFNlZ21lbnQiLCJxdWV1ZUNvbXBsZXRlZFNlZ21lbnQiLCJ1bnRyYWNrQm91bmRhcnkiLCJmYWxsYmFja0tleVBhdGgiLCJmYWxsYmFja1JlcGxheU5vZGUiLCJ3b3JraW5nTWFwIiwiYm91bmRhcnlSZXBsYXlOb2RlIiwic3VzcGVuZGVkRmFsbGJhY2tUYXNrIiwicmVwbGF5U3VzcGVuc2VCb3VuZGFyeSIsImNoaWxkTm9kZXMiLCJjaGlsZFNsb3RzIiwiZmFsbGJhY2tOb2RlcyIsImZhbGxiYWNrU2xvdHMiLCJwcmV2aW91c1JlcGxheVNldCIsInJlc3VtZWRCb3VuZGFyeSIsIm5vZGVzIiwic2xvdHMiLCJmYWxsYmFja1JlcGxheSIsInJlbmRlckhvc3RFbGVtZW50Iiwic2VnbWVudCIsInByZXZDb250ZXh0IiwiX2NoaWxkcmVuIiwiX3ByZXZDb250ZXh0IiwiX3ByZXZLZXlQYXRoMiIsInNob3VsZENvbnN0cnVjdCIsInJlbmRlcldpdGhIb29rcyIsInNlY29uZEFyZyIsImZpbmlzaENsYXNzQ29tcG9uZW50IiwibmV4dENoaWxkcmVuIiwiZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyIsInByZXZpb3VzQ29udGV4dCIsIm1lcmdlZENvbnRleHQiLCJyZW5kZXJOb2RlRGVzdHJ1Y3RpdmUiLCJyZW5kZXJDbGFzc0NvbXBvbmVudCIsIm1hc2tlZENvbnRleHQiLCJkaWRXYXJuQWJvdXRCYWRDbGFzcyIsImRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnQiLCJkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnQiLCJkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50IiwiZGlkV2FybkFib3V0RGVmYXVsdFByb3BzT25GdW5jdGlvbkNvbXBvbmVudCIsImRpZFdhcm5BYm91dEdlbmVyYXRvcnMiLCJkaWRXYXJuQWJvdXRNYXBzIiwiaGFzV2FybmVkQWJvdXRVc2luZ0NvbnRleHRBc0NvbnN1bWVyIiwicmVuZGVySW5kZXRlcm1pbmF0ZUNvbXBvbmVudCIsImhhc0lkIiwiZm9ybVN0YXRlQ291bnQiLCJfY29tcG9uZW50TmFtZTIiLCJ2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYiLCJmaW5pc2hGdW5jdGlvbkNvbXBvbmVudCIsImRpZEVtaXRGb3JtU3RhdGVNYXJrZXJzIiwicHJldlRyZWVDb250ZXh0IiwiX2NvbXBvbmVudE5hbWUzIiwiX2NvbXBvbmVudE5hbWU0IiwicmVzb2x2ZURlZmF1bHRQcm9wcyIsImJhc2VQcm9wcyIsInJlbmRlckZvcndhcmRSZWYiLCJyZW5kZXJNZW1vIiwicmVzb2x2ZWRQcm9wcyIsInJlbmRlckVsZW1lbnQiLCJyZW5kZXJDb250ZXh0Q29uc3VtZXIiLCJDb25zdW1lciIsIm5ld1ZhbHVlIiwibmV3Q2hpbGRyZW4iLCJyZW5kZXJDb250ZXh0UHJvdmlkZXIiLCJyZW5kZXJMYXp5Q29tcG9uZW50IiwicmVuZGVyT2Zmc2NyZWVuIiwicHJlaW91c0NvbXBvbmVudFN0YWNrIiwiX3ByZXZLZXlQYXRoMyIsInJlc3VtZU5vZGUiLCJzZWdtZW50SWQiLCJwcmV2UmVwbGF5IiwicmVzdW1lZFNlZ21lbnQiLCJyZW5kZXJUYXNrIiwicmVwbGF5RWxlbWVudCIsImtleU9ySW5kZXgiLCJyZXBsYXlOb2RlcyIsImN1cnJlbnROb2RlIiwiZXJyb3JlZFJlcGxheSIsImV4cGVjdGVkVHlwZSIsInNwbGljZSIsInZhbGlkYXRlSXRlcmFibGUiLCJpdGVyYWJsZSIsIml0ZXJhdG9yRm4iLCJlbnRyaWVzIiwicmVzdW1lU2VnbWVudElEIiwibGF6eU5vZGUiLCJyZXNvbHZlZE5vZGUiLCJyZW5kZXJDaGlsZHJlbkFycmF5IiwibWF5YmVVc2FibGUiLCJjaGlsZFN0cmluZyIsIl9zZWdtZW50IiwicmVwbGF5RnJhZ21lbnQiLCJqIiwicmVzdW1lU2xvdHMiLCJfbm9kZSIsImJvdW5kYXJ5S2V5UGF0aCIsImJvdW5kYXJ5Tm9kZSIsInNwYXduTmV3U3VzcGVuZGVkUmVwbGF5VGFzayIsIm5ld1Rhc2siLCJzcGF3bk5ld1N1c3BlbmRlZFJlbmRlclRhc2siLCJuZXdTZWdtZW50IiwicHJldmlvdXNGb3JtYXRDb250ZXh0IiwicHJldmlvdXNMZWdhY3lDb250ZXh0IiwicHJldmlvdXNLZXlQYXRoIiwicHJldmlvdXNUcmVlQ29udGV4dCIsInRocm93blZhbHVlIiwid2FrZWFibGUiLCJjaGlsZHJlbkxlbmd0aCIsImNodW5rTGVuZ3RoIiwiX3dha2VhYmxlIiwiX3RoZW5hYmxlU3RhdGUiLCJhYm9ydFJlbWFpbmluZ1JlcGxheU5vZGVzIiwiZXJyb3JlZFRhc2siLCJjb21wbGV0ZUFsbCIsImFib3J0VGFza1NvZnQiLCJmaW5pc2hlZFRhc2siLCJhYm9ydFJlbWFpbmluZ1N1c3BlbnNlQm91bmRhcnkiLCJlcnJvclByZWZpeCIsImFib3J0VGFzayIsImNvbXBsZXRlU2hlbGwiLCJfZXJyb3JJbmZvIiwiX2Vycm9yRGlnZXN0IiwiZmFsbGJhY2tUYXNrIiwic2FmZWx5RW1pdEVhcmx5UHJlbG9hZHMiLCJjaGlsZFNlZ21lbnQiLCJyZXRyeVRhc2siLCJyZXRyeVJlcGxheVRhc2siLCJyZXRyeVJlbmRlclRhc2siLCJwcmV2VGFza0luREVWIiwicHJldkRpc3BhdGNoZXIiLCJwcmV2Q2FjaGVEaXNwYXRjaGVyIiwicHJldlJlcXVlc3QiLCJwcmV2R2V0Q3VycmVudFN0YWNrSW1wbCIsImdldEN1cnJlbnRTdGFjayIsInByZXZSZXN1bWFibGVTdGF0ZSIsImZsdXNoQ29tcGxldGVkUXVldWVzIiwiZmx1c2hTdWJ0cmVlIiwic2VnbWVudElEIiwiY2h1bmtJZHgiLCJjaGlsZElkeCIsIm5leHRDaGlsZCIsImZsdXNoU2VnbWVudCIsImNvbnRlbnRTZWdtZW50IiwiZmx1c2hDbGllbnRSZW5kZXJlZEJvdW5kYXJ5IiwiZmx1c2hTZWdtZW50Q29udGFpbmVyIiwiZmx1c2hDb21wbGV0ZWRCb3VuZGFyeSIsImZsdXNoUGFydGlhbGx5Q29tcGxldGVkU2VnbWVudCIsImZsdXNoUGFydGlhbEJvdW5kYXJ5IiwiX2JvdW5kYXJ5IiwiX2JvdW5kYXJ5MiIsImxhcmdlQm91bmRhcmllcyIsIl9ib3VuZGFyeTMiLCJzdG9wRmxvd2luZyIsInN0YXJ0V29yayIsInJ1biIsImVucXVldWVFYXJseVByZWxvYWRzQWZ0ZXJJbml0aWFsV29yayIsImVucXVldWVGbHVzaCIsInN0YXJ0Rmxvd2luZyIsImFib3J0IiwicmVuZGVyVG9SZWFkYWJsZVN0cmVhbSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYWxsUmVhZHkiLCJyZXMiLCJyZWoiLCJzdHJlYW0iLCJSZWFkYWJsZVN0cmVhbSIsInB1bGwiLCJjb250cm9sbGVyIiwiY2FuY2VsIiwiaGlnaFdhdGVyTWFyayIsIm9uSGVhZGVyc0ltcGwiLCJoZWFkZXJzRGVzY3JpcHRvciIsIkhlYWRlcnMiLCJ1bnN0YWJsZV9leHRlcm5hbFJ1bnRpbWVTcmMiLCJzaWduYWwiLCJhYm9ydGVkIiwibGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.development.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js ***!
- \********************************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-dom-server-rendering-stub.development.js */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1kb20vc2VydmVyLXJlbmRlcmluZy1zdHViLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBRUEsSUFBSUEsS0FBeUIsRUFBYyxFQUUxQyxNQUFNO0lBQ0xDLDRNQUF5QjtBQUMzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1kb20vc2VydmVyLXJlbmRlcmluZy1zdHViLmpzPzg2ZjYiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS1zZXJ2ZXItcmVuZGVyaW5nLXN0dWIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLXNlcnZlci1yZW5kZXJpbmctc3R1Yi5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxdWlyZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react-is/cjs/react-is.development.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-is/cjs/react-is.development.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\n var REACT_SERVER_CONTEXT_TYPE = Symbol.for(\"react.server_context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\n // -----------------------------------------------------------------------------\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n var enableCacheElement = false;\n var enableTransitionTracing = false; // No known bugs, but needs performance testing\n var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n // stuff. Intended to enable React core members to more easily debug scheduling\n // issues in DEV builds.\n var enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n var REACT_MODULE_REFERENCE;\n {\n REACT_MODULE_REFERENCE = Symbol.for(\"react.module.reference\");\n }\n function isValidElementType(type) {\n if (typeof type === \"string\" || typeof type === \"function\") {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n return true;\n }\n if (typeof type === \"object\" && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n return false;\n }\n function typeOf(object) {\n if (typeof object === \"object\" && object !== null) {\n var $$typeof = object.$$typeof;\n switch($$typeof){\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n switch(type){\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n switch($$typeofType){\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n return undefined;\n }\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false;\n var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n console[\"warn\"](\"The ReactIs.isAsyncMode() alias has been deprecated, \" + \"and will be removed in React 18+.\");\n }\n }\n return false;\n }\n function isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n console[\"warn\"](\"The ReactIs.isConcurrentMode() alias has been deprecated, \" + \"and will be removed in React 18+.\");\n }\n }\n return false;\n }\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n function isElement(object) {\n return typeof object === \"object\" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n function isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n }\n exports.ContextConsumer = ContextConsumer;\n exports.ContextProvider = ContextProvider;\n exports.Element = Element;\n exports.ForwardRef = ForwardRef;\n exports.Fragment = Fragment;\n exports.Lazy = Lazy;\n exports.Memo = Memo;\n exports.Portal = Portal;\n exports.Profiler = Profiler;\n exports.StrictMode = StrictMode;\n exports.Suspense = Suspense;\n exports.SuspenseList = SuspenseList;\n exports.isAsyncMode = isAsyncMode;\n exports.isConcurrentMode = isConcurrentMode;\n exports.isContextConsumer = isContextConsumer;\n exports.isContextProvider = isContextProvider;\n exports.isElement = isElement;\n exports.isForwardRef = isForwardRef;\n exports.isFragment = isFragment;\n exports.isLazy = isLazy;\n exports.isMemo = isMemo;\n exports.isPortal = isPortal;\n exports.isProfiler = isProfiler;\n exports.isStrictMode = isStrictMode;\n exports.isSuspense = isSuspense;\n exports.isSuspenseList = isSuspenseList;\n exports.isValidElementType = isValidElementType;\n exports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0NBUUMsR0FFRDtBQUVBLElBQUlBLElBQXFDLEVBQUU7SUFDeEM7UUFDSDtRQUVBLFlBQVk7UUFDWix3Q0FBd0M7UUFDeEMsa0ZBQWtGO1FBQ2xGLHNEQUFzRDtRQUN0RCxJQUFJQyxxQkFBcUJDLE9BQU9DLEdBQUcsQ0FBQztRQUNwQyxJQUFJQyxvQkFBb0JGLE9BQU9DLEdBQUcsQ0FBQztRQUNuQyxJQUFJRSxzQkFBc0JILE9BQU9DLEdBQUcsQ0FBQztRQUNyQyxJQUFJRyx5QkFBeUJKLE9BQU9DLEdBQUcsQ0FBQztRQUN4QyxJQUFJSSxzQkFBc0JMLE9BQU9DLEdBQUcsQ0FBQztRQUNyQyxJQUFJSyxzQkFBc0JOLE9BQU9DLEdBQUcsQ0FBQztRQUNyQyxJQUFJTSxxQkFBcUJQLE9BQU9DLEdBQUcsQ0FBQztRQUNwQyxJQUFJTyw0QkFBNEJSLE9BQU9DLEdBQUcsQ0FBQztRQUMzQyxJQUFJUSx5QkFBeUJULE9BQU9DLEdBQUcsQ0FBQztRQUN4QyxJQUFJUyxzQkFBc0JWLE9BQU9DLEdBQUcsQ0FBQztRQUNyQyxJQUFJVSwyQkFBMkJYLE9BQU9DLEdBQUcsQ0FBQztRQUMxQyxJQUFJVyxrQkFBa0JaLE9BQU9DLEdBQUcsQ0FBQztRQUNqQyxJQUFJWSxrQkFBa0JiLE9BQU9DLEdBQUcsQ0FBQztRQUNqQyxJQUFJYSx1QkFBdUJkLE9BQU9DLEdBQUcsQ0FBQztRQUV0QyxnRkFBZ0Y7UUFFaEYsSUFBSWMsaUJBQWlCLE9BQU8sd0NBQXdDO1FBQ3BFLElBQUlDLHFCQUFxQjtRQUN6QixJQUFJQywwQkFBMEIsT0FBTywrQ0FBK0M7UUFFcEYsSUFBSUMscUJBQXFCLE9BQU8sc0RBQXNEO1FBQ3RGLCtFQUErRTtRQUMvRSx3QkFBd0I7UUFFeEIsSUFBSUMscUJBQXFCLE9BQU8sNkNB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R1Y7UUFDcEJVLG9CQUFvQixHQUFHVDtRQUN2QlMsa0JBQWtCLEdBQUdSO1FBQ3JCUSxjQUFjLEdBQUdQO1FBQ2pCTyxjQUFjLEdBQUdOO1FBQ2pCTSxnQkFBZ0IsR0FBR0w7UUFDbkJLLGtCQUFrQixHQUFHSjtRQUNyQkksb0JBQW9CLEdBQUdIO1FBQ3ZCRyxrQkFBa0IsR0FBR0Y7UUFDckJFLHNCQUFzQixHQUFHRDtRQUN6QkMsMEJBQTBCLEdBQUdyQztRQUM3QnFDLGNBQWMsR0FBR2hDO0lBQ2Y7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanM/ZDEzYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1pcy5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpO1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJyk7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpO1xudmFyIFJFQUNUX1NFUlZFUl9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zZXJ2ZXJfY29udGV4dCcpO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGF6eScpO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnZhciBlbmFibGVTY29wZUFQSSA9IGZhbHNlOyAvLyBFeHBlcmltZW50YWwgQ3JlYXRlIEV2ZW50IEhhbmRsZSBBUEkuXG52YXIgZW5hYmxlQ2FjaGVFbGVtZW50ID0gZmFsc2U7XG52YXIgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgPSBmYWxzZTsgLy8gTm8ga25vd24gYnVncywgYnV0IG5lZWRzIHBlcmZvcm1hbmNlIHRlc3RpbmdcblxudmFyIGVuYWJsZUxlZ2FjeUhpZGRlbiA9IGZhbHNlOyAvLyBFbmFibGVzIHVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrIGZlYXR1cmUgaW4gRmliZXJcbi8vIHN0dWZmLiBJbnRlbmRlZCB0byBlbmFibGUgUmVhY3QgY29yZSBtZW1iZXJzIHRvIG1vcmUgZWFzaWx5IGRlYnVnIHNjaGVkdWxpbmdcbi8vIGlzc3VlcyBpbiBERVYgYnVpbGRzLlxuXG52YXIgZW5hYmxlRGVidWdUcmFjaW5nID0gZmFsc2U7IC8vIFRyYWNrIHdoaWNoIEZpYmVyKHMpIHNjaGVkdWxlIHJlbmRlciB3b3JrLlxuXG52YXIgUkVBQ1RfTU9EVUxFX1JFRkVSRU5DRTtcblxue1xuICBSRUFDVF9NT0RVTEVfUkVGRVJFTkNFID0gU3ltYm9sLmZvcigncmVhY3QubW9kdWxlLnJlZmVyZW5jZScpO1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gLy8gTm90ZTogdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgKGUuZy4gaWYgaXQncyBhIHBvbHlmaWxsKS5cblxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgZW5hYmxlRGVidWdUcmFjaW5nICB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IGVuYWJsZUxlZ2FjeUhpZGRlbiAgfHwgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgIHx8IGVuYWJsZUNhY2hlRWxlbWVudCAgfHwgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIFRoaXMgbmVlZHMgdG8gaW5jbHVkZSBhbGwgcG9zc2libGUgbW9kdWxlIHJlZmVyZW5jZSBvYmplY3RcbiAgICAvLyB0eXBlcyBzdXBwb3J0ZWQgYnkgYW55IEZsaWdodCBjb25maWd1cmF0aW9uIGFueXdoZXJlIHNpbmNlXG4gICAgLy8gd2UgZG9uJ3Qga25vdyB3aGljaCBGbGlnaHQgYnVpbGQgdGhpcyB3aWxsIGVuZCB1cCBiZWluZyB1c2VkXG4gICAgLy8gd2l0aC5cbiAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NT0RVTEVfUkVGRVJFTkNFIHx8IHR5cGUuZ2V0TW9kdWxlSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB0eXBlT2Yob2JqZWN0KSB7XG4gIGlmICh0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwpIHtcbiAgICB2YXIgJCR0eXBlb2YgPSBvYmplY3QuJCR0eXBlb2Y7XG5cbiAgICBzd2l0Y2ggKCQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgdmFyIHR5cGUgPSBvYmplY3QudHlwZTtcblxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB2YXIgJCR0eXBlb2ZUeXBlID0gdHlwZSAmJiB0eXBlLiQkdHlwZW9mO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKCQkdHlwZW9mVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1NFUlZFUl9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZlR5cGU7XG5cbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJCR0eXBlb2Y7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICByZXR1cm4gJCR0eXBlb2Y7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbnZhciBDb250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05URVhUX1RZUEU7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbnZhciBFbGVtZW50ID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xudmFyIEZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xudmFyIEZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbnZhciBMYXp5ID0gUkVBQ1RfTEFaWV9UWVBFO1xudmFyIE1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG52YXIgUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG52YXIgUHJvZmlsZXIgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xudmFyIFN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xudmFyIFN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbnZhciBTdXNwZW5zZUxpc3QgPSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU7XG52YXIgaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNBc3luY01vZGUgPSBmYWxzZTtcbnZhciBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0NvbmN1cnJlbnRNb2RlID0gZmFsc2U7IC8vIEFzeW5jTW9kZSBzaG91bGQgYmUgZGVwcmVjYXRlZFxuXG5mdW5jdGlvbiBpc0FzeW5jTW9kZShvYmplY3QpIHtcbiAge1xuICAgIGlmICghaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNBc3luY01vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gdHJ1ZTsgLy8gVXNpbmcgY29uc29sZVsnd2FybiddIHRvIGV2YWRlIEJhYmVsIGFuZCBFU0xpbnRcblxuICAgICAgY29uc29sZVsnd2FybiddKCdUaGUgUmVhY3RJcy5pc0FzeW5jTW9kZSgpIGFsaWFzIGhhcyBiZWVuIGRlcHJlY2F0ZWQsICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBSZWFjdCAxOCsuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHtcbiAge1xuICAgIGlmICghaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNDb25jdXJyZW50TW9kZSkge1xuICAgICAgaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNDb25jdXJyZW50TW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNDb25jdXJyZW50TW9kZSgpIGFsaWFzIGhhcyBiZWVuIGRlcHJlY2F0ZWQsICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBSZWFjdCAxOCsuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0Q29uc3VtZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0UHJvdmlkZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRm9yd2FyZFJlZihvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xufVxuZnVuY3Rpb24gaXNGcmFnbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNMYXp5KG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0xBWllfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTWVtbyhvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9NRU1PX1RZUEU7XG59XG5mdW5jdGlvbiBpc1BvcnRhbChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9QT1JUQUxfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzUHJvZmlsZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3RyaWN0TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZUxpc3Qob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFO1xufVxuXG5leHBvcnRzLkNvbnRleHRDb25zdW1lciA9IENvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5FbGVtZW50ID0gRWxlbWVudDtcbmV4cG9ydHMuRm9yd2FyZFJlZiA9IEZvcndhcmRSZWY7XG5leHBvcnRzLkZyYWdtZW50ID0gRnJhZ21lbnQ7XG5leHBvcnRzLkxhenkgPSBMYXp5O1xuZXhwb3J0cy5NZW1vID0gTWVtbztcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuZXhwb3J0cy5Qcm9maWxlciA9IFByb2ZpbGVyO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gU3RyaWN0TW9kZTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBTdXNwZW5zZTtcbmV4cG9ydHMuU3VzcGVuc2VMaXN0ID0gU3VzcGVuc2VMaXN0O1xuZXhwb3J0cy5pc0FzeW5jTW9kZSA9IGlzQXN5bmNNb2RlO1xuZXhwb3J0cy5pc0NvbmN1cnJlbnRNb2RlID0gaXNDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXIgPSBpc0NvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXIgPSBpc0NvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuaXNFbGVtZW50ID0gaXNFbGVtZW50O1xuZXhwb3J0cy5pc0ZvcndhcmRSZWYgPSBpc0ZvcndhcmRSZWY7XG5leHBvcnRzLmlzRnJhZ21lbnQgPSBpc0ZyYWdtZW50O1xuZXhwb3J0cy5pc0xhenkgPSBpc0xhenk7XG5leHBvcnRzLmlzTWVtbyA9IGlzTWVtbztcbmV4cG9ydHMuaXNQb3J0YWwgPSBpc1BvcnRhbDtcbmV4cG9ydHMuaXNQcm9maWxlciA9IGlzUHJvZmlsZXI7XG5leHBvcnRzLmlzU3RyaWN0TW9kZSA9IGlzU3RyaWN0TW9kZTtcbmV4cG9ydHMuaXNTdXNwZW5zZSA9IGlzU3VzcGVuc2U7XG5leHBvcnRzLmlzU3VzcGVuc2VMaXN0ID0gaXNTdXNwZW5zZUxpc3Q7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZTtcbmV4cG9ydHMudHlwZU9mID0gdHlwZU9mO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJTeW1ib2wiLCJmb3IiLCJSRUFDVF9QT1JUQUxfVFlQRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIiwiUkVBQ1RfUFJPRklMRVJfVFlQRSIsIlJFQUNUX1BST1ZJREVSX1RZUEUiLCJSRUFDVF9DT05URVhUX1RZUEUiLCJSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJSRUFDVF9PRkZTQ1JFRU5fVFlQRSIsImVuYWJsZVNjb3BlQVBJIiwiZW5hYmxlQ2FjaGVFbGVtZW50IiwiZW5hYmxlVHJhbnNpdGlvblRyYWNpbmciLCJlbmFibGVMZWdhY3lIaWRkZW4iLCJlbmFibGVEZWJ1Z1RyYWNpbmciLCJSRUFDVF9NT0RVTEVfUkVGRVJFTkNFIiwiaXNWYWxpZEVsZW1lbnRUeXBlIiwidHlwZSIsIiQkdHlwZW9mIiwiZ2V0TW9kdWxlSWQiLCJ1bmRlZmluZWQiLCJ0eXBlT2YiLCJvYmplY3QiLCIkJHR5cGVvZlR5cGUiLCJDb250ZXh0Q29uc3VtZXIiLCJDb250ZXh0UHJvdmlkZXIiLCJFbGVtZW50IiwiRm9yd2FyZFJlZiIsIkZyYWdtZW50IiwiTGF6eSIsIk1lbW8iLCJQb3J0YWwiLCJQcm9maWxlciIsIlN0cmljdE1vZGUiLCJTdXNwZW5zZSIsIlN1c3BlbnNlTGlzdCIsImhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlIiwiaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNDb25jdXJyZW50TW9kZSIsImlzQXN5bmNNb2RlIiwiY29uc29sZSIsImlzQ29uY3VycmVudE1vZGUiLCJpc0NvbnRleHRDb25zdW1lciIsImlzQ29udGV4dFByb3ZpZGVyIiwiaXNFbGVtZW50IiwiaXNGb3J3YXJkUmVmIiwiaXNGcmFnbWVudCIsImlzTGF6eSIsImlzTWVtbyIsImlzUG9ydGFsIiwiaXNQcm9maWxlciIsImlzU3RyaWN0TW9kZSIsImlzU3VzcGVuc2UiLCJpc1N1c3BlbnNlTGlzdCIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react-is/cjs/react-is.development.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react-is/index.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-is/index.js ***!
- \***************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"(ssr)/../../node_modules/next/dist/compiled/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUVBLElBQUlBLEtBQXlCLEVBQWMsRUFFMUMsTUFBTTtJQUNMQyw2SkFBeUI7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtaXMvaW5kZXguanM/OGRkOCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcXVpcmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react-is/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js":
-/*!******************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js ***!
- \******************************************************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-server-dom-webpack-client.edge.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n var ReactDOM = __webpack_require__(/*! react-dom */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n var React = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n // -----------------------------------------------------------------------------\n var enableBinaryFlight = false;\n function createStringDecoder() {\n return new TextDecoder();\n }\n var decoderOptions = {\n stream: true\n };\n function readPartialStringChunk(decoder, buffer) {\n return decoder.decode(buffer, decoderOptions);\n }\n function readFinalStringChunk(decoder, buffer) {\n return decoder.decode(buffer);\n }\n // This is the parsed shape of the wire format which is why it is\n // condensed to only the essentialy information\n var ID = 0;\n var CHUNKS = 1;\n var NAME = 2; // export const ASYNC = 3;\n // This logic is correct because currently only include the 4th tuple member\n // when the module is async. If that changes we will need to actually assert\n // the value is true. We don't index into the 4th slot because flow does not\n // like the potential out of bounds access\n function isAsyncImport(metadata) {\n return metadata.length === 4;\n }\n // The reason this function needs to defined here in this file instead of just\n // being exported directly from the WebpackDestination... file is because the\n // ClientReferenceMetadata is opaque and we can't unwrap it there.\n // This should get inlined and we could also just implement an unwrapping function\n // though that risks it getting used in places it shouldn't be. This is unfortunate\n // but currently it seems to be the best option we have.\n function prepareDestinationForModule(moduleLoading, nonce, metadata) {\n prepareDestinationWithChunks(moduleLoading, metadata[CHUNKS], nonce);\n }\n function resolveClientReference(bundlerConfig, metadata) {\n if (bundlerConfig) {\n var moduleExports = bundlerConfig[metadata[ID]];\n var resolvedModuleData = moduleExports[metadata[NAME]];\n var name;\n if (resolvedModuleData) {\n // The potentially aliased name.\n name = resolvedModuleData.name;\n } else {\n // If we don't have this specific name, we might have the full module.\n resolvedModuleData = moduleExports[\"*\"];\n if (!resolvedModuleData) {\n throw new Error('Could not find the module \"' + metadata[ID] + '\" in the React SSR Manifest. ' + \"This is probably a bug in the React Server Components bundler.\");\n }\n name = metadata[NAME];\n }\n if (isAsyncImport(metadata)) {\n return [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name,\n 1\n ];\n } else {\n return [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name\n ];\n }\n }\n return metadata;\n }\n // If they're still pending they're a thenable. This map also exists\n // in Webpack but unfortunately it's not exposed so we have to\n // replicate it in user space. null means that it has already loaded.\n var chunkCache = new Map();\n function requireAsyncModule(id) {\n // We've already loaded all the chunks. We can require the module.\n var promise = globalThis.__next_require__(id);\n if (typeof promise.then !== \"function\") {\n // This wasn't a promise after all.\n return null;\n } else if (promise.status === \"fulfilled\") {\n // This module was already resolved earlier.\n return null;\n } else {\n // Instrument the Promise to stash the result.\n promise.then(function(value) {\n var fulfilledThenable = promise;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = value;\n }, function(reason) {\n var rejectedThenable = promise;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = reason;\n });\n return promise;\n }\n }\n function ignoreReject() {} // Start preloading the modules since we might need them soon.\n // This function doesn't suspend.\n function preloadModule(metadata) {\n var chunks = metadata[CHUNKS];\n var promises = [];\n var i = 0;\n while(i < chunks.length){\n var chunkId = chunks[i++];\n chunks[i++];\n var entry = chunkCache.get(chunkId);\n if (entry === undefined) {\n var thenable = loadChunk(chunkId);\n promises.push(thenable); // $FlowFixMe[method-unbinding]\n var resolve = chunkCache.set.bind(chunkCache, chunkId, null);\n thenable.then(resolve, ignoreReject);\n chunkCache.set(chunkId, thenable);\n } else if (entry !== null) {\n promises.push(entry);\n }\n }\n if (isAsyncImport(metadata)) {\n if (promises.length === 0) {\n return requireAsyncModule(metadata[ID]);\n } else {\n return Promise.all(promises).then(function() {\n return requireAsyncModule(metadata[ID]);\n });\n }\n } else if (promises.length > 0) {\n return Promise.all(promises);\n } else {\n return null;\n }\n } // Actually require the module or suspend if it's not yet ready.\n // Increase priority if necessary.\n function requireModule(metadata) {\n var moduleExports = globalThis.__next_require__(metadata[ID]);\n if (isAsyncImport(metadata)) {\n if (typeof moduleExports.then !== \"function\") ;\n else if (moduleExports.status === \"fulfilled\") {\n // This Promise should've been instrumented by preloadModule.\n moduleExports = moduleExports.value;\n } else {\n throw moduleExports.reason;\n }\n }\n if (metadata[NAME] === \"*\") {\n // This is a placeholder value that represents that the caller imported this\n // as a CommonJS module as is.\n return moduleExports;\n }\n if (metadata[NAME] === \"\") {\n // This is a placeholder value that represents that the caller accessed the\n // default property of this if it was an ESM interop module.\n return moduleExports.__esModule ? moduleExports.default : moduleExports;\n }\n return moduleExports[metadata[NAME]];\n }\n function loadChunk(chunkId, filename) {\n return __webpack_require__.e(chunkId);\n }\n function prepareDestinationWithChunks(moduleLoading, chunks, nonce) {\n if (moduleLoading !== null) {\n for(var i = 1; i < chunks.length; i += 2){\n preinitScriptForSSR(moduleLoading.prefix + chunks[i], nonce, moduleLoading.crossOrigin);\n }\n }\n }\n var ReactDOMSharedInternals = ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function getCrossOriginString(input) {\n if (typeof input === \"string\") {\n return input === \"use-credentials\" ? input : \"\";\n }\n return undefined;\n }\n // This client file is in the shared folder because it applies to both SSR and browser contexts.\n var ReactDOMCurrentDispatcher = ReactDOMSharedInternals.Dispatcher;\n function dispatchHint(code, model) {\n var dispatcher = ReactDOMCurrentDispatcher.current;\n if (dispatcher) {\n switch(code){\n case \"D\":\n {\n var refined = refineModel(code, model);\n var href = refined;\n dispatcher.prefetchDNS(href);\n return;\n }\n case \"C\":\n {\n var _refined = refineModel(code, model);\n if (typeof _refined === \"string\") {\n var _href = _refined;\n dispatcher.preconnect(_href);\n } else {\n var _href2 = _refined[0];\n var crossOrigin = _refined[1];\n dispatcher.preconnect(_href2, crossOrigin);\n }\n return;\n }\n case \"L\":\n {\n var _refined2 = refineModel(code, model);\n var _href3 = _refined2[0];\n var as = _refined2[1];\n if (_refined2.length === 3) {\n var options = _refined2[2];\n dispatcher.preload(_href3, as, options);\n } else {\n dispatcher.preload(_href3, as);\n }\n return;\n }\n case \"m\":\n {\n var _refined3 = refineModel(code, model);\n if (typeof _refined3 === \"string\") {\n var _href4 = _refined3;\n dispatcher.preloadModule(_href4);\n } else {\n var _href5 = _refined3[0];\n var _options = _refined3[1];\n dispatcher.preloadModule(_href5, _options);\n }\n return;\n }\n case \"S\":\n {\n var _refined4 = refineModel(code, model);\n if (typeof _refined4 === \"string\") {\n var _href6 = _refined4;\n dispatcher.preinitStyle(_href6);\n } else {\n var _href7 = _refined4[0];\n var precedence = _refined4[1] === 0 ? undefined : _refined4[1];\n var _options2 = _refined4.length === 3 ? _refined4[2] : undefined;\n dispatcher.preinitStyle(_href7, precedence, _options2);\n }\n return;\n }\n case \"X\":\n {\n var _refined5 = refineModel(code, model);\n if (typeof _refined5 === \"string\") {\n var _href8 = _refined5;\n dispatcher.preinitScript(_href8);\n } else {\n var _href9 = _refined5[0];\n var _options3 = _refined5[1];\n dispatcher.preinitScript(_href9, _options3);\n }\n return;\n }\n case \"M\":\n {\n var _refined6 = refineModel(code, model);\n if (typeof _refined6 === \"string\") {\n var _href10 = _refined6;\n dispatcher.preinitModuleScript(_href10);\n } else {\n var _href11 = _refined6[0];\n var _options4 = _refined6[1];\n dispatcher.preinitModuleScript(_href11, _options4);\n }\n return;\n }\n }\n }\n } // Flow is having trouble refining the HintModels so we help it a bit.\n // This should be compiled out in the production build.\n function refineModel(code, model) {\n return model;\n }\n function preinitScriptForSSR(href, nonce, crossOrigin) {\n var dispatcher = ReactDOMCurrentDispatcher.current;\n if (dispatcher) {\n dispatcher.preinitScript(href, {\n crossOrigin: getCrossOriginString(crossOrigin),\n nonce: nonce\n });\n }\n }\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_SERVER_CONTEXT_TYPE = Symbol.for(\"react.server_context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED = Symbol.for(\"react.default_value\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n var getPrototypeOf = Object.getPrototypeOf;\n // in case they error.\n var jsxPropsParents = new WeakMap();\n var jsxChildrenParents = new WeakMap();\n function isObjectPrototype(object) {\n if (!object) {\n return false;\n }\n var ObjectPrototype = Object.prototype;\n if (object === ObjectPrototype) {\n return true;\n } // It might be an object from a different Realm which is\n // still just a plain simple object.\n if (getPrototypeOf(object)) {\n return false;\n }\n var names = Object.getOwnPropertyNames(object);\n for(var i = 0; i < names.length; i++){\n if (!(names[i] in ObjectPrototype)) {\n return false;\n }\n }\n return true;\n }\n function isSimpleObject(object) {\n if (!isObjectPrototype(getPrototypeOf(object))) {\n return false;\n }\n var names = Object.getOwnPropertyNames(object);\n for(var i = 0; i < names.length; i++){\n var descriptor = Object.getOwnPropertyDescriptor(object, names[i]);\n if (!descriptor) {\n return false;\n }\n if (!descriptor.enumerable) {\n if ((names[i] === \"key\" || names[i] === \"ref\") && typeof descriptor.get === \"function\") {\n continue;\n }\n return false;\n }\n }\n return true;\n }\n function objectName(object) {\n // $FlowFixMe[method-unbinding]\n var name = Object.prototype.toString.call(object);\n return name.replace(/^\\[object (.*)\\]$/, function(m, p0) {\n return p0;\n });\n }\n function describeKeyForErrorMessage(key) {\n var encodedKey = JSON.stringify(key);\n return '\"' + key + '\"' === encodedKey ? key : encodedKey;\n }\n function describeValueForErrorMessage(value) {\n switch(typeof value){\n case \"string\":\n {\n return JSON.stringify(value.length <= 10 ? value : value.slice(0, 10) + \"...\");\n }\n case \"object\":\n {\n if (isArray(value)) {\n return \"[...]\";\n }\n var name = objectName(value);\n if (name === \"Object\") {\n return \"{...}\";\n }\n return name;\n }\n case \"function\":\n return \"function\";\n default:\n // eslint-disable-next-line react-internal/safe-string-coercion\n return String(value);\n }\n }\n function describeElementType(type) {\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeElementType(type.render);\n case REACT_MEMO_TYPE:\n return describeElementType(type.type);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeElementType(init(payload));\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n function describeObjectForErrorMessage(objectOrArray, expandedName) {\n var objKind = objectName(objectOrArray);\n if (objKind !== \"Object\" && objKind !== \"Array\") {\n return objKind;\n }\n var str = \"\";\n var start = -1;\n var length = 0;\n if (isArray(objectOrArray)) {\n if (jsxChildrenParents.has(objectOrArray)) {\n // Print JSX Children\n var type = jsxChildrenParents.get(objectOrArray);\n str = \"<\" + describeElementType(type) + \">\";\n var array = objectOrArray;\n for(var i = 0; i < array.length; i++){\n var value = array[i];\n var substr = void 0;\n if (typeof value === \"string\") {\n substr = value;\n } else if (typeof value === \"object\" && value !== null) {\n substr = \"{\" + describeObjectForErrorMessage(value) + \"}\";\n } else {\n substr = \"{\" + describeValueForErrorMessage(value) + \"}\";\n }\n if (\"\" + i === expandedName) {\n start = str.length;\n length = substr.length;\n str += substr;\n } else if (substr.length < 15 && str.length + substr.length < 40) {\n str += substr;\n } else {\n str += \"{...}\";\n }\n }\n str += \"</\" + describeElementType(type) + \">\";\n } else {\n // Print Array\n str = \"[\";\n var _array = objectOrArray;\n for(var _i = 0; _i < _array.length; _i++){\n if (_i > 0) {\n str += \", \";\n }\n var _value = _array[_i];\n var _substr = void 0;\n if (typeof _value === \"object\" && _value !== null) {\n _substr = describeObjectForErrorMessage(_value);\n } else {\n _substr = describeValueForErrorMessage(_value);\n }\n if (\"\" + _i === expandedName) {\n start = str.length;\n length = _substr.length;\n str += _substr;\n } else if (_substr.length < 10 && str.length + _substr.length < 40) {\n str += _substr;\n } else {\n str += \"...\";\n }\n }\n str += \"]\";\n }\n } else {\n if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE) {\n str = \"<\" + describeElementType(objectOrArray.type) + \"/>\";\n } else if (jsxPropsParents.has(objectOrArray)) {\n // Print JSX\n var _type = jsxPropsParents.get(objectOrArray);\n str = \"<\" + (describeElementType(_type) || \"...\");\n var object = objectOrArray;\n var names = Object.keys(object);\n for(var _i2 = 0; _i2 < names.length; _i2++){\n str += \" \";\n var name = names[_i2];\n str += describeKeyForErrorMessage(name) + \"=\";\n var _value2 = object[name];\n var _substr2 = void 0;\n if (name === expandedName && typeof _value2 === \"object\" && _value2 !== null) {\n _substr2 = describeObjectForErrorMessage(_value2);\n } else {\n _substr2 = describeValueForErrorMessage(_value2);\n }\n if (typeof _value2 !== \"string\") {\n _substr2 = \"{\" + _substr2 + \"}\";\n }\n if (name === expandedName) {\n start = str.length;\n length = _substr2.length;\n str += _substr2;\n } else if (_substr2.length < 10 && str.length + _substr2.length < 40) {\n str += _substr2;\n } else {\n str += \"...\";\n }\n }\n str += \">\";\n } else {\n // Print Object\n str = \"{\";\n var _object = objectOrArray;\n var _names = Object.keys(_object);\n for(var _i3 = 0; _i3 < _names.length; _i3++){\n if (_i3 > 0) {\n str += \", \";\n }\n var _name = _names[_i3];\n str += describeKeyForErrorMessage(_name) + \": \";\n var _value3 = _object[_name];\n var _substr3 = void 0;\n if (typeof _value3 === \"object\" && _value3 !== null) {\n _substr3 = describeObjectForErrorMessage(_value3);\n } else {\n _substr3 = describeValueForErrorMessage(_value3);\n }\n if (_name === expandedName) {\n start = str.length;\n length = _substr3.length;\n str += _substr3;\n } else if (_substr3.length < 10 && str.length + _substr3.length < 40) {\n str += _substr3;\n } else {\n str += \"...\";\n }\n }\n str += \"}\";\n }\n }\n if (expandedName === undefined) {\n return str;\n }\n if (start > -1 && length > 0) {\n var highlight = \" \".repeat(start) + \"^\".repeat(length);\n return \"\\n \" + str + \"\\n \" + highlight;\n }\n return \"\\n \" + str;\n }\n var ObjectPrototype = Object.prototype;\n var knownServerReferences = new WeakMap(); // Serializable values\n // Thenable<ReactServerValue>\n // function serializeByValueID(id: number): string {\n // return '$' + id.toString(16);\n // }\n function serializePromiseID(id) {\n return \"$@\" + id.toString(16);\n }\n function serializeServerReferenceID(id) {\n return \"$F\" + id.toString(16);\n }\n function serializeSymbolReference(name) {\n return \"$S\" + name;\n }\n function serializeFormDataReference(id) {\n // Why K? F is \"Function\". D is \"Date\". What else?\n return \"$K\" + id.toString(16);\n }\n function serializeNumber(number) {\n if (Number.isFinite(number)) {\n if (number === 0 && 1 / number === -Infinity) {\n return \"$-0\";\n } else {\n return number;\n }\n } else {\n if (number === Infinity) {\n return \"$Infinity\";\n } else if (number === -Infinity) {\n return \"$-Infinity\";\n } else {\n return \"$NaN\";\n }\n }\n }\n function serializeUndefined() {\n return \"$undefined\";\n }\n function serializeDateFromDateJSON(dateJSON) {\n // JSON.stringify automatically calls Date.prototype.toJSON which calls toISOString.\n // We need only tack on a $D prefix.\n return \"$D\" + dateJSON;\n }\n function serializeBigInt(n) {\n return \"$n\" + n.toString(10);\n }\n function serializeMapID(id) {\n return \"$Q\" + id.toString(16);\n }\n function serializeSetID(id) {\n return \"$W\" + id.toString(16);\n }\n function escapeStringValue(value) {\n if (value[0] === \"$\") {\n // We need to escape $ prefixed strings since we use those to encode\n // references to IDs and as special symbol values.\n return \"$\" + value;\n } else {\n return value;\n }\n }\n function processReply(root, formFieldPrefix, resolve, reject) {\n var nextPartId = 1;\n var pendingParts = 0;\n var formData = null;\n function resolveToJSON(key, value) {\n var parent = this; // Make sure that `parent[key]` wasn't JSONified before `value` was passed to us\n {\n // $FlowFixMe[incompatible-use]\n var originalValue = parent[key];\n if (typeof originalValue === \"object\" && originalValue !== value && !(originalValue instanceof Date)) {\n if (objectName(originalValue) !== \"Object\") {\n error(\"Only plain objects can be passed to Server Functions from the Client. \" + \"%s objects are not supported.%s\", objectName(originalValue), describeObjectForErrorMessage(parent, key));\n } else {\n error(\"Only plain objects can be passed to Server Functions from the Client. \" + \"Objects with toJSON methods are not supported. Convert it manually \" + \"to a simple value before passing it to props.%s\", describeObjectForErrorMessage(parent, key));\n }\n }\n }\n if (value === null) {\n return null;\n }\n if (typeof value === \"object\") {\n // $FlowFixMe[method-unbinding]\n if (typeof value.then === \"function\") {\n // We assume that any object with a .then property is a \"Thenable\" type,\n // or a Promise type. Either of which can be represented by a Promise.\n if (formData === null) {\n // Upgrade to use FormData to allow us to stream this value.\n formData = new FormData();\n }\n pendingParts++;\n var promiseId = nextPartId++;\n var thenable = value;\n thenable.then(function(partValue) {\n var partJSON = JSON.stringify(partValue, resolveToJSON); // $FlowFixMe[incompatible-type] We know it's not null because we assigned it above.\n var data = formData; // eslint-disable-next-line react-internal/safe-string-coercion\n data.append(formFieldPrefix + promiseId, partJSON);\n pendingParts--;\n if (pendingParts === 0) {\n resolve(data);\n }\n }, function(reason) {\n // In the future we could consider serializing this as an error\n // that throws on the server instead.\n reject(reason);\n });\n return serializePromiseID(promiseId);\n }\n if (isArray(value)) {\n // $FlowFixMe[incompatible-return]\n return value;\n } // TODO: Should we the Object.prototype.toString.call() to test for cross-realm objects?\n if (value instanceof FormData) {\n if (formData === null) {\n // Upgrade to use FormData to allow us to use rich objects as its values.\n formData = new FormData();\n }\n var data = formData;\n var refId = nextPartId++; // Copy all the form fields with a prefix for this reference.\n // These must come first in the form order because we assume that all the\n // fields are available before this is referenced.\n var prefix = formFieldPrefix + refId + \"_\"; // $FlowFixMe[prop-missing]: FormData has forEach.\n value.forEach(function(originalValue, originalKey) {\n data.append(prefix + originalKey, originalValue);\n });\n return serializeFormDataReference(refId);\n }\n if (value instanceof Map) {\n var partJSON = JSON.stringify(Array.from(value), resolveToJSON);\n if (formData === null) {\n formData = new FormData();\n }\n var mapId = nextPartId++;\n formData.append(formFieldPrefix + mapId, partJSON);\n return serializeMapID(mapId);\n }\n if (value instanceof Set) {\n var _partJSON = JSON.stringify(Array.from(value), resolveToJSON);\n if (formData === null) {\n formData = new FormData();\n }\n var setId = nextPartId++;\n formData.append(formFieldPrefix + setId, _partJSON);\n return serializeSetID(setId);\n }\n var iteratorFn = getIteratorFn(value);\n if (iteratorFn) {\n return Array.from(value);\n } // Verify that this is a simple plain object.\n var proto = getPrototypeOf(value);\n if (proto !== ObjectPrototype && (proto === null || getPrototypeOf(proto) !== null)) {\n throw new Error(\"Only plain objects, and a few built-ins, can be passed to Server Actions. \" + \"Classes or null prototypes are not supported.\");\n }\n {\n if (value.$$typeof === REACT_ELEMENT_TYPE) {\n error(\"React Element cannot be passed to Server Functions from the Client.%s\", describeObjectForErrorMessage(parent, key));\n } else if (value.$$typeof === REACT_LAZY_TYPE) {\n error(\"React Lazy cannot be passed to Server Functions from the Client.%s\", describeObjectForErrorMessage(parent, key));\n } else if (value.$$typeof === REACT_PROVIDER_TYPE) {\n error(\"React Context Providers cannot be passed to Server Functions from the Client.%s\", describeObjectForErrorMessage(parent, key));\n } else if (objectName(value) !== \"Object\") {\n error(\"Only plain objects can be passed to Server Functions from the Client. \" + \"%s objects are not supported.%s\", objectName(value), describeObjectForErrorMessage(parent, key));\n } else if (!isSimpleObject(value)) {\n error(\"Only plain objects can be passed to Server Functions from the Client. \" + \"Classes or other objects with methods are not supported.%s\", describeObjectForErrorMessage(parent, key));\n } else if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(value);\n if (symbols.length > 0) {\n error(\"Only plain objects can be passed to Server Functions from the Client. \" + \"Objects with symbol properties like %s are not supported.%s\", symbols[0].description, describeObjectForErrorMessage(parent, key));\n }\n }\n }\n return value;\n }\n if (typeof value === \"string\") {\n // TODO: Maybe too clever. If we support URL there's no similar trick.\n if (value[value.length - 1] === \"Z\") {\n // Possibly a Date, whose toJSON automatically calls toISOString\n // $FlowFixMe[incompatible-use]\n var _originalValue = parent[key];\n if (_originalValue instanceof Date) {\n return serializeDateFromDateJSON(value);\n }\n }\n return escapeStringValue(value);\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n if (typeof value === \"number\") {\n return serializeNumber(value);\n }\n if (typeof value === \"undefined\") {\n return serializeUndefined();\n }\n if (typeof value === \"function\") {\n var metaData = knownServerReferences.get(value);\n if (metaData !== undefined) {\n var metaDataJSON = JSON.stringify(metaData, resolveToJSON);\n if (formData === null) {\n // Upgrade to use FormData to allow us to stream this value.\n formData = new FormData();\n } // The reference to this function came from the same client so we can pass it back.\n var _refId = nextPartId++; // eslint-disable-next-line react-internal/safe-string-coercion\n formData.set(formFieldPrefix + _refId, metaDataJSON);\n return serializeServerReferenceID(_refId);\n }\n throw new Error(\"Client Functions cannot be passed directly to Server Functions. \" + \"Only Functions passed from the Server can be passed back again.\");\n }\n if (typeof value === \"symbol\") {\n // $FlowFixMe[incompatible-type] `description` might be undefined\n var name = value.description;\n if (Symbol.for(name) !== value) {\n throw new Error(\"Only global symbols received from Symbol.for(...) can be passed to Server Functions. \" + (\"The symbol Symbol.for(\" + // $FlowFixMe[incompatible-type] `description` might be undefined\n value.description + \") cannot be found among global symbols.\"));\n }\n return serializeSymbolReference(name);\n }\n if (typeof value === \"bigint\") {\n return serializeBigInt(value);\n }\n throw new Error(\"Type \" + typeof value + \" is not supported as an argument to a Server Function.\");\n } // $FlowFixMe[incompatible-type] it's not going to be undefined because we'll encode it.\n var json = JSON.stringify(root, resolveToJSON);\n if (formData === null) {\n // If it's a simple data structure, we just use plain JSON.\n resolve(json);\n } else {\n // Otherwise, we use FormData to let us stream in the result.\n formData.set(formFieldPrefix + \"0\", json);\n if (pendingParts === 0) {\n // $FlowFixMe[incompatible-call] this has already been refined.\n resolve(formData);\n }\n }\n }\n var boundCache = new WeakMap();\n function encodeFormData(reference) {\n var resolve, reject; // We need to have a handle on the thenable so that we can synchronously set\n // its status from processReply, when it can complete synchronously.\n var thenable = new Promise(function(res, rej) {\n resolve = res;\n reject = rej;\n });\n processReply(reference, \"\", function(body) {\n if (typeof body === \"string\") {\n var data = new FormData();\n data.append(\"0\", body);\n body = data;\n }\n var fulfilled = thenable;\n fulfilled.status = \"fulfilled\";\n fulfilled.value = body;\n resolve(body);\n }, function(e) {\n var rejected = thenable;\n rejected.status = \"rejected\";\n rejected.reason = e;\n reject(e);\n });\n return thenable;\n }\n function encodeFormAction(identifierPrefix) {\n var reference = knownServerReferences.get(this);\n if (!reference) {\n throw new Error(\"Tried to encode a Server Action from a different instance than the encoder is from. \" + \"This is a bug in React.\");\n }\n var data = null;\n var name;\n var boundPromise = reference.bound;\n if (boundPromise !== null) {\n var thenable = boundCache.get(reference);\n if (!thenable) {\n thenable = encodeFormData(reference);\n boundCache.set(reference, thenable);\n }\n if (thenable.status === \"rejected\") {\n throw thenable.reason;\n } else if (thenable.status !== \"fulfilled\") {\n throw thenable;\n }\n var encodedFormData = thenable.value; // This is hacky but we need the identifier prefix to be added to\n // all fields but the suspense cache would break since we might get\n // a new identifier each time. So we just append it at the end instead.\n var prefixedData = new FormData(); // $FlowFixMe[prop-missing]\n encodedFormData.forEach(function(value, key) {\n prefixedData.append(\"$ACTION_\" + identifierPrefix + \":\" + key, value);\n });\n data = prefixedData; // We encode the name of the prefix containing the data.\n name = \"$ACTION_REF_\" + identifierPrefix;\n } else {\n // This is the simple case so we can just encode the ID.\n name = \"$ACTION_ID_\" + reference.id;\n }\n return {\n name: name,\n method: \"POST\",\n encType: \"multipart/form-data\",\n data: data\n };\n }\n function isSignatureEqual(referenceId, numberOfBoundArgs) {\n var reference = knownServerReferences.get(this);\n if (!reference) {\n throw new Error(\"Tried to encode a Server Action from a different instance than the encoder is from. \" + \"This is a bug in React.\");\n }\n if (reference.id !== referenceId) {\n // These are different functions.\n return false;\n } // Now check if the number of bound arguments is the same.\n var boundPromise = reference.bound;\n if (boundPromise === null) {\n // No bound arguments.\n return numberOfBoundArgs === 0;\n } // Unwrap the bound arguments array by suspending, if necessary. As with\n // encodeFormData, this means isSignatureEqual can only be called while React\n // is rendering.\n switch(boundPromise.status){\n case \"fulfilled\":\n {\n var boundArgs = boundPromise.value;\n return boundArgs.length === numberOfBoundArgs;\n }\n case \"pending\":\n {\n throw boundPromise;\n }\n case \"rejected\":\n {\n throw boundPromise.reason;\n }\n default:\n {\n if (typeof boundPromise.status === \"string\") ;\n else {\n var pendingThenable = boundPromise;\n pendingThenable.status = \"pending\";\n pendingThenable.then(function(boundArgs) {\n var fulfilledThenable = boundPromise;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = boundArgs;\n }, function(error) {\n var rejectedThenable = boundPromise;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n });\n }\n throw boundPromise;\n }\n }\n }\n function registerServerReference(proxy, reference) {\n // Expose encoder for use by SSR, as well as a special bind that can be used to\n // keep server capabilities.\n {\n // Only expose this in builds that would actually use it. Not needed on the client.\n Object.defineProperties(proxy, {\n $$FORM_ACTION: {\n value: encodeFormAction\n },\n $$IS_SIGNATURE_EQUAL: {\n value: isSignatureEqual\n },\n bind: {\n value: bind\n }\n });\n }\n knownServerReferences.set(proxy, reference);\n } // $FlowFixMe[method-unbinding]\n var FunctionBind = Function.prototype.bind; // $FlowFixMe[method-unbinding]\n var ArraySlice = Array.prototype.slice;\n function bind() {\n // $FlowFixMe[unsupported-syntax]\n var newFn = FunctionBind.apply(this, arguments);\n var reference = knownServerReferences.get(this);\n if (reference) {\n var args = ArraySlice.call(arguments, 1);\n var boundPromise = null;\n if (reference.bound !== null) {\n boundPromise = Promise.resolve(reference.bound).then(function(boundArgs) {\n return boundArgs.concat(args);\n });\n } else {\n boundPromise = Promise.resolve(args);\n }\n registerServerReference(newFn, {\n id: reference.id,\n bound: boundPromise\n });\n }\n return newFn;\n }\n function createServerReference$1(id, callServer) {\n var proxy = function() {\n // $FlowFixMe[method-unbinding]\n var args = Array.prototype.slice.call(arguments);\n return callServer(id, args);\n };\n registerServerReference(proxy, {\n id: id,\n bound: null\n });\n return proxy;\n }\n var ContextRegistry = ReactSharedInternals.ContextRegistry;\n function getOrCreateServerContext(globalName) {\n if (!ContextRegistry[globalName]) {\n var context = {\n $$typeof: REACT_SERVER_CONTEXT_TYPE,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED,\n _currentValue2: REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED,\n _defaultValue: REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null,\n _globalName: globalName\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n {\n var hasWarnedAboutUsingConsumer;\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n Object.defineProperties(context, {\n Consumer: {\n get: function() {\n if (!hasWarnedAboutUsingConsumer) {\n error(\"Consumer pattern is not supported by ReactServerContext\");\n hasWarnedAboutUsingConsumer = true;\n }\n return null;\n }\n }\n });\n }\n ContextRegistry[globalName] = context;\n }\n return ContextRegistry[globalName];\n }\n var ROW_ID = 0;\n var ROW_TAG = 1;\n var ROW_LENGTH = 2;\n var ROW_CHUNK_BY_NEWLINE = 3;\n var ROW_CHUNK_BY_LENGTH = 4;\n var PENDING = \"pending\";\n var BLOCKED = \"blocked\";\n var CYCLIC = \"cyclic\";\n var RESOLVED_MODEL = \"resolved_model\";\n var RESOLVED_MODULE = \"resolved_module\";\n var INITIALIZED = \"fulfilled\";\n var ERRORED = \"rejected\"; // $FlowFixMe[missing-this-annot]\n function Chunk(status, value, reason, response) {\n this.status = status;\n this.value = value;\n this.reason = reason;\n this._response = response;\n } // We subclass Promise.prototype so that we get other methods like .catch\n Chunk.prototype = Object.create(Promise.prototype); // TODO: This doesn't return a new Promise chain unlike the real .then\n Chunk.prototype.then = function(resolve, reject) {\n var chunk = this; // If we have resolved content, we try to initialize it first which\n // might put us back into one of the other states.\n switch(chunk.status){\n case RESOLVED_MODEL:\n initializeModelChunk(chunk);\n break;\n case RESOLVED_MODULE:\n initializeModuleChunk(chunk);\n break;\n } // The status might have changed after initialization.\n switch(chunk.status){\n case INITIALIZED:\n resolve(chunk.value);\n break;\n case PENDING:\n case BLOCKED:\n case CYCLIC:\n if (resolve) {\n if (chunk.value === null) {\n chunk.value = [];\n }\n chunk.value.push(resolve);\n }\n if (reject) {\n if (chunk.reason === null) {\n chunk.reason = [];\n }\n chunk.reason.push(reject);\n }\n break;\n default:\n reject(chunk.reason);\n break;\n }\n };\n function readChunk(chunk) {\n // If we have resolved content, we try to initialize it first which\n // might put us back into one of the other states.\n switch(chunk.status){\n case RESOLVED_MODEL:\n initializeModelChunk(chunk);\n break;\n case RESOLVED_MODULE:\n initializeModuleChunk(chunk);\n break;\n } // The status might have changed after initialization.\n switch(chunk.status){\n case INITIALIZED:\n return chunk.value;\n case PENDING:\n case BLOCKED:\n case CYCLIC:\n // eslint-disable-next-line no-throw-literal\n throw chunk;\n default:\n throw chunk.reason;\n }\n }\n function getRoot(response) {\n var chunk = getChunk(response, 0);\n return chunk;\n }\n function createPendingChunk(response) {\n // $FlowFixMe[invalid-constructor] Flow doesn't support functions as constructors\n return new Chunk(PENDING, null, null, response);\n }\n function createBlockedChunk(response) {\n // $FlowFixMe[invalid-constructor] Flow doesn't support functions as constructors\n return new Chunk(BLOCKED, null, null, response);\n }\n function createErrorChunk(response, error) {\n // $FlowFixMe[invalid-constructor] Flow doesn't support functions as constructors\n return new Chunk(ERRORED, null, error, response);\n }\n function wakeChunk(listeners, value) {\n for(var i = 0; i < listeners.length; i++){\n var listener = listeners[i];\n listener(value);\n }\n }\n function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {\n switch(chunk.status){\n case INITIALIZED:\n wakeChunk(resolveListeners, chunk.value);\n break;\n case PENDING:\n case BLOCKED:\n case CYCLIC:\n chunk.value = resolveListeners;\n chunk.reason = rejectListeners;\n break;\n case ERRORED:\n if (rejectListeners) {\n wakeChunk(rejectListeners, chunk.reason);\n }\n break;\n }\n }\n function triggerErrorOnChunk(chunk, error) {\n if (chunk.status !== PENDING && chunk.status !== BLOCKED) {\n // We already resolved. We didn't expect to see this.\n return;\n }\n var listeners = chunk.reason;\n var erroredChunk = chunk;\n erroredChunk.status = ERRORED;\n erroredChunk.reason = error;\n if (listeners !== null) {\n wakeChunk(listeners, error);\n }\n }\n function createResolvedModelChunk(response, value) {\n // $FlowFixMe[invalid-constructor] Flow doesn't support functions as constructors\n return new Chunk(RESOLVED_MODEL, value, null, response);\n }\n function createResolvedModuleChunk(response, value) {\n // $FlowFixMe[invalid-constructor] Flow doesn't support functions as constructors\n return new Chunk(RESOLVED_MODULE, value, null, response);\n }\n function createInitializedTextChunk(response, value) {\n // $FlowFixMe[invalid-constructor] Flow doesn't support functions as constructors\n return new Chunk(INITIALIZED, value, null, response);\n }\n function resolveModelChunk(chunk, value) {\n if (chunk.status !== PENDING) {\n // We already resolved. We didn't expect to see this.\n return;\n }\n var resolveListeners = chunk.value;\n var rejectListeners = chunk.reason;\n var resolvedChunk = chunk;\n resolvedChunk.status = RESOLVED_MODEL;\n resolvedChunk.value = value;\n if (resolveListeners !== null) {\n // This is unfortunate that we're reading this eagerly if\n // we already have listeners attached since they might no\n // longer be rendered or might not be the highest pri.\n initializeModelChunk(resolvedChunk); // The status might have changed after initialization.\n wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);\n }\n }\n function resolveModuleChunk(chunk, value) {\n if (chunk.status !== PENDING && chunk.status !== BLOCKED) {\n // We already resolved. We didn't expect to see this.\n return;\n }\n var resolveListeners = chunk.value;\n var rejectListeners = chunk.reason;\n var resolvedChunk = chunk;\n resolvedChunk.status = RESOLVED_MODULE;\n resolvedChunk.value = value;\n if (resolveListeners !== null) {\n initializeModuleChunk(resolvedChunk);\n wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);\n }\n }\n var initializingChunk = null;\n var initializingChunkBlockedModel = null;\n function initializeModelChunk(chunk) {\n var prevChunk = initializingChunk;\n var prevBlocked = initializingChunkBlockedModel;\n initializingChunk = chunk;\n initializingChunkBlockedModel = null;\n var resolvedModel = chunk.value; // We go to the CYCLIC state until we've fully resolved this.\n // We do this before parsing in case we try to initialize the same chunk\n // while parsing the model. Such as in a cyclic reference.\n var cyclicChunk = chunk;\n cyclicChunk.status = CYCLIC;\n cyclicChunk.value = null;\n cyclicChunk.reason = null;\n try {\n var value = parseModel(chunk._response, resolvedModel);\n if (initializingChunkBlockedModel !== null && initializingChunkBlockedModel.deps > 0) {\n initializingChunkBlockedModel.value = value; // We discovered new dependencies on modules that are not yet resolved.\n // We have to go the BLOCKED state until they're resolved.\n var blockedChunk = chunk;\n blockedChunk.status = BLOCKED;\n blockedChunk.value = null;\n blockedChunk.reason = null;\n } else {\n var resolveListeners = cyclicChunk.value;\n var initializedChunk = chunk;\n initializedChunk.status = INITIALIZED;\n initializedChunk.value = value;\n if (resolveListeners !== null) {\n wakeChunk(resolveListeners, value);\n }\n }\n } catch (error) {\n var erroredChunk = chunk;\n erroredChunk.status = ERRORED;\n erroredChunk.reason = error;\n } finally{\n initializingChunk = prevChunk;\n initializingChunkBlockedModel = prevBlocked;\n }\n }\n function initializeModuleChunk(chunk) {\n try {\n var value = requireModule(chunk.value);\n var initializedChunk = chunk;\n initializedChunk.status = INITIALIZED;\n initializedChunk.value = value;\n } catch (error) {\n var erroredChunk = chunk;\n erroredChunk.status = ERRORED;\n erroredChunk.reason = error;\n }\n } // Report that any missing chunks in the model is now going to throw this\n // error upon read. Also notify any pending promises.\n function reportGlobalError(response, error) {\n response._chunks.forEach(function(chunk) {\n // If this chunk was already resolved or errored, it won't\n // trigger an error but if it wasn't then we need to\n // because we won't be getting any new data to resolve it.\n if (chunk.status === PENDING) {\n triggerErrorOnChunk(chunk, error);\n }\n });\n }\n function createElement(type, key, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: null,\n props: props,\n // Record the component responsible for creating this element.\n _owner: null\n };\n {\n // We don't really need to add any of these but keeping them for good measure.\n // Unfortunately, _store is enumerable in jest matchers so for equality to\n // work, I need to keep it or make _store non-enumerable in the other file.\n element._store = {};\n Object.defineProperty(element._store, \"validated\", {\n configurable: false,\n enumerable: false,\n writable: true,\n value: true // This element has already been validated on the server.\n });\n Object.defineProperty(element, \"_self\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: null\n });\n Object.defineProperty(element, \"_source\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: null\n });\n }\n return element;\n }\n function createLazyChunkWrapper(chunk) {\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: chunk,\n _init: readChunk\n };\n return lazyType;\n }\n function getChunk(response, id) {\n var chunks = response._chunks;\n var chunk = chunks.get(id);\n if (!chunk) {\n chunk = createPendingChunk(response);\n chunks.set(id, chunk);\n }\n return chunk;\n }\n function createModelResolver(chunk, parentObject, key, cyclic) {\n var blocked;\n if (initializingChunkBlockedModel) {\n blocked = initializingChunkBlockedModel;\n if (!cyclic) {\n blocked.deps++;\n }\n } else {\n blocked = initializingChunkBlockedModel = {\n deps: cyclic ? 0 : 1,\n value: null\n };\n }\n return function(value) {\n parentObject[key] = value;\n blocked.deps--;\n if (blocked.deps === 0) {\n if (chunk.status !== BLOCKED) {\n return;\n }\n var resolveListeners = chunk.value;\n var initializedChunk = chunk;\n initializedChunk.status = INITIALIZED;\n initializedChunk.value = blocked.value;\n if (resolveListeners !== null) {\n wakeChunk(resolveListeners, blocked.value);\n }\n }\n };\n }\n function createModelReject(chunk) {\n return function(error) {\n return triggerErrorOnChunk(chunk, error);\n };\n }\n function createServerReferenceProxy(response, metaData) {\n var callServer = response._callServer;\n var proxy = function() {\n // $FlowFixMe[method-unbinding]\n var args = Array.prototype.slice.call(arguments);\n var p = metaData.bound;\n if (!p) {\n return callServer(metaData.id, args);\n }\n if (p.status === INITIALIZED) {\n var bound = p.value;\n return callServer(metaData.id, bound.concat(args));\n } // Since this is a fake Promise whose .then doesn't chain, we have to wrap it.\n // TODO: Remove the wrapper once that's fixed.\n return Promise.resolve(p).then(function(bound) {\n return callServer(metaData.id, bound.concat(args));\n });\n };\n registerServerReference(proxy, metaData);\n return proxy;\n }\n function getOutlinedModel(response, id) {\n var chunk = getChunk(response, id);\n switch(chunk.status){\n case RESOLVED_MODEL:\n initializeModelChunk(chunk);\n break;\n } // The status might have changed after initialization.\n switch(chunk.status){\n case INITIALIZED:\n {\n return chunk.value;\n }\n // We always encode it first in the stream so it won't be pending.\n default:\n throw chunk.reason;\n }\n }\n function parseModelString(response, parentObject, key, value) {\n if (value[0] === \"$\") {\n if (value === \"$\") {\n // A very common symbol.\n return REACT_ELEMENT_TYPE;\n }\n switch(value[1]){\n case \"$\":\n {\n // This was an escaped string value.\n return value.slice(1);\n }\n case \"L\":\n {\n // Lazy node\n var id = parseInt(value.slice(2), 16);\n var chunk = getChunk(response, id); // We create a React.lazy wrapper around any lazy values.\n // When passed into React, we'll know how to suspend on this.\n return createLazyChunkWrapper(chunk);\n }\n case \"@\":\n {\n // Promise\n var _id = parseInt(value.slice(2), 16);\n var _chunk = getChunk(response, _id);\n return _chunk;\n }\n case \"S\":\n {\n // Symbol\n return Symbol.for(value.slice(2));\n }\n case \"P\":\n {\n // Server Context Provider\n return getOrCreateServerContext(value.slice(2)).Provider;\n }\n case \"F\":\n {\n // Server Reference\n var _id2 = parseInt(value.slice(2), 16);\n var metadata = getOutlinedModel(response, _id2);\n return createServerReferenceProxy(response, metadata);\n }\n case \"Q\":\n {\n // Map\n var _id3 = parseInt(value.slice(2), 16);\n var data = getOutlinedModel(response, _id3);\n return new Map(data);\n }\n case \"W\":\n {\n // Set\n var _id4 = parseInt(value.slice(2), 16);\n var _data = getOutlinedModel(response, _id4);\n return new Set(_data);\n }\n case \"I\":\n {\n // $Infinity\n return Infinity;\n }\n case \"-\":\n {\n // $-0 or $-Infinity\n if (value === \"$-0\") {\n return -0;\n } else {\n return -Infinity;\n }\n }\n case \"N\":\n {\n // $NaN\n return NaN;\n }\n case \"u\":\n {\n // matches \"$undefined\"\n // Special encoding for `undefined` which can't be serialized as JSON otherwise.\n return undefined;\n }\n case \"D\":\n {\n // Date\n return new Date(Date.parse(value.slice(2)));\n }\n case \"n\":\n {\n // BigInt\n return BigInt(value.slice(2));\n }\n default:\n {\n // We assume that anything else is a reference ID.\n var _id5 = parseInt(value.slice(1), 16);\n var _chunk2 = getChunk(response, _id5);\n switch(_chunk2.status){\n case RESOLVED_MODEL:\n initializeModelChunk(_chunk2);\n break;\n case RESOLVED_MODULE:\n initializeModuleChunk(_chunk2);\n break;\n } // The status might have changed after initialization.\n switch(_chunk2.status){\n case INITIALIZED:\n return _chunk2.value;\n case PENDING:\n case BLOCKED:\n case CYCLIC:\n var parentChunk = initializingChunk;\n _chunk2.then(createModelResolver(parentChunk, parentObject, key, _chunk2.status === CYCLIC), createModelReject(parentChunk));\n return null;\n default:\n throw _chunk2.reason;\n }\n }\n }\n }\n return value;\n }\n function parseModelTuple(response, value) {\n var tuple = value;\n if (tuple[0] === REACT_ELEMENT_TYPE) {\n // TODO: Consider having React just directly accept these arrays as elements.\n // Or even change the ReactElement type to be an array.\n return createElement(tuple[1], tuple[2], tuple[3]);\n }\n return value;\n }\n function missingCall() {\n throw new Error('Trying to call a function from \"use server\" but the callServer option ' + \"was not implemented in your router runtime.\");\n }\n function createResponse(bundlerConfig, moduleLoading, callServer, nonce) {\n var chunks = new Map();\n var response = {\n _bundlerConfig: bundlerConfig,\n _moduleLoading: moduleLoading,\n _callServer: callServer !== undefined ? callServer : missingCall,\n _nonce: nonce,\n _chunks: chunks,\n _stringDecoder: createStringDecoder(),\n _fromJSON: null,\n _rowState: 0,\n _rowID: 0,\n _rowTag: 0,\n _rowLength: 0,\n _buffer: []\n }; // Don't inline this call because it causes closure to outline the call above.\n response._fromJSON = createFromJSONCallback(response);\n return response;\n }\n function resolveModel(response, id, model) {\n var chunks = response._chunks;\n var chunk = chunks.get(id);\n if (!chunk) {\n chunks.set(id, createResolvedModelChunk(response, model));\n } else {\n resolveModelChunk(chunk, model);\n }\n }\n function resolveText(response, id, text) {\n var chunks = response._chunks; // We assume that we always reference large strings after they've been\n // emitted.\n chunks.set(id, createInitializedTextChunk(response, text));\n }\n function resolveModule(response, id, model) {\n var chunks = response._chunks;\n var chunk = chunks.get(id);\n var clientReferenceMetadata = parseModel(response, model);\n var clientReference = resolveClientReference(response._bundlerConfig, clientReferenceMetadata);\n prepareDestinationForModule(response._moduleLoading, response._nonce, clientReferenceMetadata); // TODO: Add an option to encode modules that are lazy loaded.\n // For now we preload all modules as early as possible since it's likely\n // that we'll need them.\n var promise = preloadModule(clientReference);\n if (promise) {\n var blockedChunk;\n if (!chunk) {\n // Technically, we should just treat promise as the chunk in this\n // case. Because it'll just behave as any other promise.\n blockedChunk = createBlockedChunk(response);\n chunks.set(id, blockedChunk);\n } else {\n // This can't actually happen because we don't have any forward\n // references to modules.\n blockedChunk = chunk;\n blockedChunk.status = BLOCKED;\n }\n promise.then(function() {\n return resolveModuleChunk(blockedChunk, clientReference);\n }, function(error) {\n return triggerErrorOnChunk(blockedChunk, error);\n });\n } else {\n if (!chunk) {\n chunks.set(id, createResolvedModuleChunk(response, clientReference));\n } else {\n // This can't actually happen because we don't have any forward\n // references to modules.\n resolveModuleChunk(chunk, clientReference);\n }\n }\n }\n function resolveErrorDev(response, id, digest, message, stack) {\n var error = new Error(message || \"An error occurred in the Server Components render but no message was provided\");\n error.stack = stack;\n error.digest = digest;\n var errorWithDigest = error;\n var chunks = response._chunks;\n var chunk = chunks.get(id);\n if (!chunk) {\n chunks.set(id, createErrorChunk(response, errorWithDigest));\n } else {\n triggerErrorOnChunk(chunk, errorWithDigest);\n }\n }\n function resolveHint(response, code, model) {\n var hintModel = parseModel(response, model);\n dispatchHint(code, hintModel);\n }\n function processFullRow(response, id, tag, buffer, chunk) {\n var stringDecoder = response._stringDecoder;\n var row = \"\";\n for(var i = 0; i < buffer.length; i++){\n row += readPartialStringChunk(stringDecoder, buffer[i]);\n }\n row += readFinalStringChunk(stringDecoder, chunk);\n switch(tag){\n case 73:\n {\n resolveModule(response, id, row);\n return;\n }\n case 72:\n {\n var code = row[0];\n resolveHint(response, code, row.slice(1));\n return;\n }\n case 69:\n {\n var errorInfo = JSON.parse(row);\n {\n resolveErrorDev(response, id, errorInfo.digest, errorInfo.message, errorInfo.stack);\n }\n return;\n }\n case 84:\n {\n resolveText(response, id, row);\n return;\n }\n case 80:\n // Fallthrough\n default:\n /* \"\"\" \"{\" \"[\" \"t\" \"f\" \"n\" \"0\" - \"9\" */ {\n // We assume anything else is JSON.\n resolveModel(response, id, row);\n return;\n }\n }\n }\n function processBinaryChunk(response, chunk) {\n var i = 0;\n var rowState = response._rowState;\n var rowID = response._rowID;\n var rowTag = response._rowTag;\n var rowLength = response._rowLength;\n var buffer = response._buffer;\n var chunkLength = chunk.length;\n while(i < chunkLength){\n var lastIdx = -1;\n switch(rowState){\n case ROW_ID:\n {\n var byte = chunk[i++];\n if (byte === 58) {\n // Finished the rowID, next we'll parse the tag.\n rowState = ROW_TAG;\n } else {\n rowID = rowID << 4 | (byte > 96 ? byte - 87 : byte - 48);\n }\n continue;\n }\n case ROW_TAG:\n {\n var resolvedRowTag = chunk[i];\n if (resolvedRowTag === 84 || enableBinaryFlight) {\n rowTag = resolvedRowTag;\n rowState = ROW_LENGTH;\n i++;\n } else if (resolvedRowTag > 64 && resolvedRowTag < 91) {\n rowTag = resolvedRowTag;\n rowState = ROW_CHUNK_BY_NEWLINE;\n i++;\n } else {\n rowTag = 0;\n rowState = ROW_CHUNK_BY_NEWLINE; // This was an unknown tag so it was probably part of the data.\n }\n continue;\n }\n case ROW_LENGTH:\n {\n var _byte = chunk[i++];\n if (_byte === 44) {\n // Finished the rowLength, next we'll buffer up to that length.\n rowState = ROW_CHUNK_BY_LENGTH;\n } else {\n rowLength = rowLength << 4 | (_byte > 96 ? _byte - 87 : _byte - 48);\n }\n continue;\n }\n case ROW_CHUNK_BY_NEWLINE:\n {\n // We're looking for a newline\n lastIdx = chunk.indexOf(10, i);\n break;\n }\n case ROW_CHUNK_BY_LENGTH:\n {\n // We're looking for the remaining byte length\n lastIdx = i + rowLength;\n if (lastIdx > chunk.length) {\n lastIdx = -1;\n }\n break;\n }\n }\n var offset = chunk.byteOffset + i;\n if (lastIdx > -1) {\n // We found the last chunk of the row\n var length = lastIdx - i;\n var lastChunk = new Uint8Array(chunk.buffer, offset, length);\n processFullRow(response, rowID, rowTag, buffer, lastChunk); // Reset state machine for a new row\n i = lastIdx;\n if (rowState === ROW_CHUNK_BY_NEWLINE) {\n // If we're trailing by a newline we need to skip it.\n i++;\n }\n rowState = ROW_ID;\n rowTag = 0;\n rowID = 0;\n rowLength = 0;\n buffer.length = 0;\n } else {\n // The rest of this row is in a future chunk. We stash the rest of the\n // current chunk until we can process the full row.\n var _length = chunk.byteLength - i;\n var remainingSlice = new Uint8Array(chunk.buffer, offset, _length);\n buffer.push(remainingSlice); // Update how many bytes we're still waiting for. If we're looking for\n // a newline, this doesn't hurt since we'll just ignore it.\n rowLength -= remainingSlice.byteLength;\n break;\n }\n }\n response._rowState = rowState;\n response._rowID = rowID;\n response._rowTag = rowTag;\n response._rowLength = rowLength;\n }\n function parseModel(response, json) {\n return JSON.parse(json, response._fromJSON);\n }\n function createFromJSONCallback(response) {\n // $FlowFixMe[missing-this-annot]\n return function(key, value) {\n if (typeof value === \"string\") {\n // We can't use .bind here because we need the \"this\" value.\n return parseModelString(response, this, key, value);\n }\n if (typeof value === \"object\" && value !== null) {\n return parseModelTuple(response, value);\n }\n return value;\n };\n }\n function close(response) {\n // In case there are any remaining unresolved chunks, they won't\n // be resolved now. So we need to issue an error to those.\n // Ideally we should be able to early bail out if we kept a\n // ref count of pending chunks.\n reportGlobalError(response, new Error(\"Connection closed.\"));\n }\n function noServerCall() {\n throw new Error(\"Server Functions cannot be called during initial render. \" + \"This would create a fetch waterfall. Try to use a Server Component \" + \"to pass data to Client Components instead.\");\n }\n function createServerReference(id, callServer) {\n return createServerReference$1(id, noServerCall);\n }\n function createResponseFromOptions(options) {\n return createResponse(options.ssrManifest.moduleMap, options.ssrManifest.moduleLoading, noServerCall, typeof options.nonce === \"string\" ? options.nonce : undefined);\n }\n function startReadingFromStream(response, stream) {\n var reader = stream.getReader();\n function progress(_ref) {\n var done = _ref.done, value = _ref.value;\n if (done) {\n close(response);\n return;\n }\n var buffer = value;\n processBinaryChunk(response, buffer);\n return reader.read().then(progress).catch(error);\n }\n function error(e) {\n reportGlobalError(response, e);\n }\n reader.read().then(progress).catch(error);\n }\n function createFromReadableStream(stream, options) {\n var response = createResponseFromOptions(options);\n startReadingFromStream(response, stream);\n return getRoot(response);\n }\n function createFromFetch(promiseForResponse, options) {\n var response = createResponseFromOptions(options);\n promiseForResponse.then(function(r) {\n startReadingFromStream(response, r.body);\n }, function(e) {\n reportGlobalError(response, e);\n });\n return getRoot(response);\n }\n function encodeReply(value) /* We don't use URLSearchParams yet but maybe */ {\n return new Promise(function(resolve, reject) {\n processReply(value, \"\", resolve, reject);\n });\n }\n exports.createFromFetch = createFromFetch;\n exports.createFromReadableStream = createFromReadableStream;\n exports.createServerReference = createServerReference;\n exports.encodeReply = encodeReply;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2pzL3JlYWN0LXNlcnZlci1kb20td2VicGFjay1jbGllbnQuZWRnZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Q0FRQyxHQUVEO0FBRUEsSUFBSUEsSUFBcUMsRUFBRTtJQUN4QztRQUNIO1FBRUEsSUFBSUMsV0FBV0MsbUJBQU9BLENBQUM7UUFDdkIsSUFBSUMsUUFBUUQsbUJBQU9BLENBQUM7UUFFcEIsZ0ZBQWdGO1FBQ2hGLElBQUlFLHFCQUFxQjtRQUV6QixTQUFTQztZQUNQLE9BQU8sSUFBSUM7UUFDYjtRQUNBLElBQUlDLGlCQUFpQjtZQUNuQkMsUUFBUTtRQUNWO1FBQ0EsU0FBU0MsdUJBQXVCQyxPQUFPLEVBQUVDLE1BQU07WUFDN0MsT0FBT0QsUUFBUUUsTUFBTSxDQUFDRCxRQUFRSjtRQUNoQztRQUNBLFNBQVNNLHFCQUFxQkgsT0FBTyxFQUFFQyxNQUFNO1lBQzNDLE9BQU9ELFFBQVFFLE1BQU0sQ0FBQ0Q7UUFDeEI7UUFFQSxpRUFBaUU7UUFDakUsK0NBQStDO1FBQy9DLElBQUlHLEtBQUs7UUFDVCxJQUFJQyxTQUFTO1FBQ2IsSUFBSUMsT0FBTyxHQUFHLDBCQUEwQjtRQUN4Qyw0RUFBNEU7UUFDNUUsNEVBQTRFO1FBQzVFLDRFQUE0RTtRQUM1RSwwQ0FBMEM7UUFFMUMsU0FBU0MsY0FBY0MsUUFBUTtZQUM3QixPQUFPQSxTQUFTQyxNQUFNLEtBQUs7UUFDN0I7UUFFQSw4RUFBOEU7UUFDOUUsNkVBQTZFO1FBQzdFLGtFQUFrRTtRQUNsRSxrRkFBa0Y7UUFDbEYsbUZBQW1GO1FBQ25GLHdEQUF3RDtRQUV4RCxTQUFTQyw0QkFBNEJDLGFBQWEsRUFBRUMsS0FBSyxFQUFFSixRQUFRO1lBQ2pFSyw2QkFBNkJGLGVBQWVILFFBQVEsQ0FBQ0gsT0FBTyxFQUFFTztRQUNoRTtRQUNBLFNBQVNFLHVC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LElBQUloVSxTQUFTNkI7Z0JBQ2IyWSxtQkFBbUJ4RyxVQUFVaFU7Z0JBQzdCLE9BQU9pYyxPQUFPSyxJQUFJLEdBQUczYSxJQUFJLENBQUN3YSxVQUFVSSxLQUFLLENBQUNqVztZQUM1QztZQUVBLFNBQVNBLE1BQU1xSyxDQUFDO2dCQUNkeUYsa0JBQWtCcEMsVUFBVXJEO1lBQzlCO1lBRUFzTCxPQUFPSyxJQUFJLEdBQUczYSxJQUFJLENBQUN3YSxVQUFVSSxLQUFLLENBQUNqVztRQUNyQztRQUVBLFNBQVNrVyx5QkFBeUIzYyxNQUFNLEVBQUVrRixPQUFPO1lBQy9DLElBQUlpUCxXQUFXNkgsMEJBQTBCOVc7WUFDekNpWCx1QkFBdUJoSSxVQUFVblU7WUFDakMsT0FBTzBVLFFBQVFQO1FBQ2pCO1FBRUEsU0FBU3lJLGdCQUFnQkMsa0JBQWtCLEVBQUUzWCxPQUFPO1lBQ2xELElBQUlpUCxXQUFXNkgsMEJBQTBCOVc7WUFDekMyWCxtQkFBbUIvYSxJQUFJLENBQUMsU0FBVWdiLENBQUM7Z0JBQ2pDWCx1QkFBdUJoSSxVQUFVMkksRUFBRWxNLElBQUk7WUFDekMsR0FBRyxTQUFVRSxDQUFDO2dCQUNaeUYsa0JBQWtCcEMsVUFBVXJEO1lBQzlCO1lBQ0EsT0FBTzRELFFBQVFQO1FBQ2pCO1FBRUEsU0FBUzRJLFlBQVkvYSxLQUFLLEVBQzFCLDhDQUE4QztZQUU1QyxPQUFPLElBQUlrQixRQUFRLFNBQVVILE9BQU8sRUFBRXdMLE1BQU07Z0JBQzFDSCxhQUFhcE0sT0FBTyxJQUFJZSxTQUFTd0w7WUFDbkM7UUFDRjtRQUVBeU8sdUJBQXVCLEdBQUdKO1FBQzFCSSxnQ0FBZ0MsR0FBR0w7UUFDbkNLLDZCQUE2QixHQUFHakI7UUFDaENpQixtQkFBbUIsR0FBR0Q7SUFDcEI7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2pzL3JlYWN0LXNlcnZlci1kb20td2VicGFjay1jbGllbnQuZWRnZS5kZXZlbG9wbWVudC5qcz82YTM1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LXNlcnZlci1kb20td2VicGFjay1jbGllbnQuZWRnZS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0RE9NID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIGVuYWJsZUJpbmFyeUZsaWdodCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBjcmVhdGVTdHJpbmdEZWNvZGVyKCkge1xuICByZXR1cm4gbmV3IFRleHREZWNvZGVyKCk7XG59XG52YXIgZGVjb2Rlck9wdGlvbnMgPSB7XG4gIHN0cmVhbTogdHJ1ZVxufTtcbmZ1bmN0aW9uIHJlYWRQYXJ0aWFsU3RyaW5nQ2h1bmsoZGVjb2RlciwgYnVmZmVyKSB7XG4gIHJldHVybiBkZWNvZGVyLmRlY29kZShidWZmZXIsIGRlY29kZXJPcHRpb25zKTtcbn1cbmZ1bmN0aW9uIHJlYWRGaW5hbFN0cmluZ0NodW5rKGRlY29kZXIsIGJ1ZmZlcikge1xuICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoYnVmZmVyKTtcbn1cblxuLy8gVGhpcyBpcyB0aGUgcGFyc2VkIHNoYXBlIG9mIHRoZSB3aXJlIGZvcm1hdCB3aGljaCBpcyB3aHkgaXQgaXNcbi8vIGNvbmRlbnNlZCB0byBvbmx5IHRoZSBlc3NlbnRpYWx5IGluZm9ybWF0aW9uXG52YXIgSUQgPSAwO1xudmFyIENIVU5LUyA9IDE7XG52YXIgTkFNRSA9IDI7IC8vIGV4cG9ydCBjb25zdCBBU1lOQyA9IDM7XG4vLyBUaGlzIGxvZ2ljIGlzIGNvcnJlY3QgYmVjYXVzZSBjdXJyZW50bHkgb25seSBpbmNsdWRlIHRoZSA0dGggdHVwbGUgbWVtYmVyXG4vLyB3aGVuIHRoZSBtb2R1bGUgaXMgYXN5bmMuIElmIHRoYXQgY2hhbmdlcyB3ZSB3aWxsIG5lZWQgdG8gYWN0dWFsbHkgYXNzZXJ0XG4vLyB0aGUgdmFsdWUgaXMgdHJ1ZS4gV2UgZG9uJ3QgaW5kZXggaW50byB0aGUgNHRoIHNsb3QgYmVjYXVzZSBmbG93IGRvZXMgbm90XG4vLyBsaWtlIHRoZSBwb3RlbnRpYWwgb3V0IG9mIGJvdW5kcyBhY2Nlc3NcblxuZnVuY3Rpb24gaXNBc3luY0ltcG9ydChtZXRhZGF0YSkge1xuICByZXR1cm4gbWV0YWRhdGEubGVuZ3RoID09PSA0O1xufVxuXG4vLyBUaGUgcmVhc29uIHRoaXMgZnVuY3Rpb24gbmVlZHMgdG8gZGVmaW5lZCBoZXJlIGluIHRoaXMgZmlsZSBpbnN0ZWFkIG9mIGp1c3Rcbi8vIGJlaW5nIGV4cG9ydGVkIGRpcmVjdGx5IGZyb20gdGhlIFdlYnBhY2tEZXN0aW5hdGlvbi4uLiBmaWxlIGlzIGJlY2F1c2UgdGhlXG4vLyBDbGllbnRSZWZlcmVuY2VNZXRhZGF0YSBpcyBvcGFxdWUgYW5kIHdlIGNhbid0IHVud3JhcCBpdCB0aGVyZS5cbi8vIFRoaXMgc2hvdWxkIGdldCBpbmxpbmVkIGFuZCB3ZSBjb3VsZCBhbHNvIGp1c3QgaW1wbGVtZW50IGFuIHVud3JhcHBpbmcgZnVuY3Rpb25cbi8vIHRob3VnaCB0aGF0IHJpc2tzIGl0IGdldHRpbmcgdXNlZCBpbiBwbGFjZXMgaXQgc2hvdWxkbid0IGJlLiBUaGlzIGlzIHVuZm9ydHVuYXRlXG4vLyBidXQgY3VycmVudGx5IGl0IHNlZW1zIHRvIGJlIHRoZSBiZXN0IG9wdGlvbiB3ZSBoYXZlLlxuXG5mdW5jdGlvbiBwcmVwYXJlRGVzdGluYXRpb25Gb3JNb2R1bGUobW9kdWxlTG9hZGluZywgbm9uY2UsIG1ldGFkYXRhKSB7XG4gIHByZXBhcmVEZXN0aW5hdGlvbldpdGhDaHVua3MobW9kdWxlTG9hZGluZywgbWV0YWRhdGFbQ0hVTktTXSwgbm9uY2UpO1xufVxuZnVuY3Rpb24gcmVzb2x2ZUNsaWVudFJlZmVyZW5jZShidW5kbGVyQ29uZmlnLCBtZXRhZGF0YSkge1xuICBpZiAoYnVuZGxlckNvbmZpZykge1xuICAgIHZhciBtb2R1bGVFeHBvcnRzID0gYnVuZGxlckNvbmZpZ1ttZXRhZGF0YVtJRF1dO1xuICAgIHZhciByZXNvbHZlZE1vZHVsZURhdGEgPSBtb2R1bGVFeHBvcnRzW21ldGFkYXRhW05BTUVdXTtcbiAgICB2YXIgbmFtZTtcblxuICAgIGlmIChyZXNvbHZlZE1vZHVsZURhdGEpIHtcbiAgICAgIC8vIFRoZSBwb3RlbnRpYWxseSBhbGlhc2VkIG5hbWUuXG4gICAgICBuYW1lID0gcmVzb2x2ZWRNb2R1bGVEYXRhLm5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgdGhpcyBzcGVjaWZpYyBuYW1lLCB3ZSBtaWdodCBoYXZlIHRoZSBmdWxsIG1vZHVsZS5cbiAgICAgIHJlc29sdmVkTW9kdWxlRGF0YSA9IG1vZHVsZUV4cG9ydHNbJyonXTtcblxuICAgICAgaWYgKCFyZXNvbHZlZE1vZHVsZURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCB0aGUgbW9kdWxlIFwiJyArIG1ldGFkYXRhW0lEXSArICdcIiBpbiB0aGUgUmVhY3QgU1NSIE1hbmlmZXN0LiAnICsgJ1RoaXMgaXMgcHJvYmFibHkgYSBidWcgaW4gdGhlIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIGJ1bmRsZXIuJyk7XG4gICAgICB9XG5cbiAgICAgIG5hbWUgPSBtZXRhZGF0YVtOQU1FXTtcbiAgICB9XG5cbiAgICBpZiAoaXNBc3luY0ltcG9ydChtZXRhZGF0YSkpIHtcbiAgICAgIHJldHVybiBbcmVzb2x2ZWRNb2R1bGVEYXRhLmlkLCByZXNvbHZlZE1vZHVsZURhdGEuY2h1bmtzLCBuYW1lLCAxXG4gICAgICAvKiBhc3luYyAqL1xuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtyZXNvbHZlZE1vZHVsZURhdGEuaWQsIHJlc29sdmVkTW9kdWxlRGF0YS5jaHVua3MsIG5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhZGF0YTtcbn1cbi8vIElmIHRoZXkncmUgc3RpbGwgcGVuZGluZyB0aGV5J3JlIGEgdGhlbmFibGUuIFRoaXMgbWFwIGFsc28gZXhpc3RzXG4vLyBpbiBXZWJwYWNrIGJ1dCB1bmZvcnR1bmF0ZWx5IGl0J3Mgbm90IGV4cG9zZWQgc28gd2UgaGF2ZSB0b1xuLy8gcmVwbGljYXRlIGl0IGluIHVzZXIgc3BhY2UuIG51bGwgbWVhbnMgdGhhdCBpdCBoYXMgYWxyZWFkeSBsb2FkZWQuXG5cbnZhciBjaHVua0NhY2hlID0gbmV3IE1hcCgpO1xuXG5mdW5jdGlvbiByZXF1aXJlQXN5bmNNb2R1bGUoaWQpIHtcbiAgLy8gV2UndmUgYWxyZWFkeSBsb2FkZWQgYWxsIHRoZSBjaHVua3MuIFdlIGNhbiByZXF1aXJlIHRoZSBtb2R1bGUuXG4gIHZhciBwcm9taXNlID0gZ2xvYmFsVGhpcy5fX25leHRfcmVxdWlyZV9fKGlkKTtcblxuICBpZiAodHlwZW9mIHByb21pc2UudGhlbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIFRoaXMgd2Fzbid0IGEgcHJvbWlzZSBhZnRlciBhbGwuXG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSBpZiAocHJvbWlzZS5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgLy8gVGhpcyBtb2R1bGUgd2FzIGFscmVhZHkgcmVzb2x2ZWQgZWFybGllci5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICAvLyBJbnN0cnVtZW50IHRoZSBQcm9taXNlIHRvIHN0YXNoIHRoZSByZXN1bHQuXG4gICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgdmFyIGZ1bGZpbGxlZFRoZW5hYmxlID0gcHJvbWlzZTtcbiAgICAgIGZ1bGZpbGxlZFRoZW5hYmxlLnN0YXR1cyA9ICdmdWxmaWxsZWQnO1xuICAgICAgZnVsZmlsbGVkVGhlbmFibGUudmFsdWUgPSB2YWx1ZTtcbiAgICB9LCBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICB2YXIgcmVqZWN0ZWRUaGVuYWJsZSA9IHByb21pc2U7XG4gICAgICByZWplY3RlZFRoZW5hYmxlLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICByZWplY3RlZFRoZW5hYmxlLnJlYXNvbiA9IHJlYXNvbjtcbiAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpZ25vcmVSZWplY3QoKSB7Ly8gV2UgcmVseSBvbiByZWplY3RlZCBwcm9taXNlcyB0byBiZSBoYW5kbGVkIGJ5IGFub3RoZXIgbGlzdGVuZXIuXG59IC8vIFN0YXJ0IHByZWxvYWRpbmcgdGhlIG1vZHVsZXMgc2luY2Ugd2UgbWlnaHQgbmVlZCB0aGVtIHNvb24uXG4vLyBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3Qgc3VzcGVuZC5cblxuXG5mdW5jdGlvbiBwcmVsb2FkTW9kdWxlKG1ldGFkYXRhKSB7XG4gIHZhciBjaHVua3MgPSBtZXRhZGF0YVtDSFVOS1NdO1xuICB2YXIgcHJvbWlzZXMgPSBbXTtcbiAgdmFyIGkgPSAwO1xuXG4gIHdoaWxlIChpIDwgY2h1bmtzLmxlbmd0aCkge1xuICAgIHZhciBjaHVua0lkID0gY2h1bmtzW2krK107XG4gICAgY2h1bmtzW2krK107XG4gICAgdmFyIGVudHJ5ID0gY2h1bmtDYWNoZS5nZXQoY2h1bmtJZCk7XG5cbiAgICBpZiAoZW50cnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIHRoZW5hYmxlID0gbG9hZENodW5rKGNodW5rSWQpO1xuICAgICAgcHJvbWlzZXMucHVzaCh0aGVuYWJsZSk7IC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cblxuICAgICAgdmFyIHJlc29sdmUgPSBjaHVua0NhY2hlLnNldC5iaW5kKGNodW5rQ2FjaGUsIGNodW5rSWQsIG51bGwpO1xuICAgICAgdGhlbmFibGUudGhlbihyZXNvbHZlLCBpZ25vcmVSZWplY3QpO1xuICAgICAgY2h1bmtDYWNoZS5zZXQoY2h1bmtJZCwgdGhlbmFibGUpO1xuICAgIH0gZWxzZSBpZiAoZW50cnkgIT09IG51bGwpIHtcbiAgICAgIHByb21pc2VzLnB1c2goZW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChpc0FzeW5jSW1wb3J0KG1ldGFkYXRhKSkge1xuICAgIGlmIChwcm9taXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiByZXF1aXJlQXN5bmNNb2R1bGUobWV0YWRhdGFbSURdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmVBc3luY01vZHVsZShtZXRhZGF0YVtJRF0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHByb21pc2VzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59IC8vIEFjdHVhbGx5IHJlcXVpcmUgdGhlIG1vZHVsZSBvciBzdXNwZW5kIGlmIGl0J3Mgbm90IHlldCByZWFkeS5cbi8vIEluY3JlYXNlIHByaW9yaXR5IGlmIG5lY2Vzc2FyeS5cblxuZnVuY3Rpb24gcmVxdWlyZU1vZHVsZShtZXRhZGF0YSkge1xuICB2YXIgbW9kdWxlRXhwb3J0cyA9IGdsb2JhbFRoaXMuX19uZXh0X3JlcXVpcmVfXyhtZXRhZGF0YVtJRF0pO1xuXG4gIGlmIChpc0FzeW5jSW1wb3J0KG1ldGFkYXRhKSkge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlRXhwb3J0cy50aGVuICE9PSAnZnVuY3Rpb24nKSA7IGVsc2UgaWYgKG1vZHVsZUV4cG9ydHMuc3RhdHVzID09PSAnZnVsZmlsbGVkJykge1xuICAgICAgLy8gVGhpcyBQcm9taXNlIHNob3VsZCd2ZSBiZWVuIGluc3RydW1lbnRlZCBieSBwcmVsb2FkTW9kdWxlLlxuICAgICAgbW9kdWxlRXhwb3J0cyA9IG1vZHVsZUV4cG9ydHMudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG1vZHVsZUV4cG9ydHMucmVhc29uO1xuICAgIH1cbiAgfVxuXG4gIGlmIChtZXRhZGF0YVtOQU1FXSA9PT0gJyonKSB7XG4gICAgLy8gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIHZhbHVlIHRoYXQgcmVwcmVzZW50cyB0aGF0IHRoZSBjYWxsZXIgaW1wb3J0ZWQgdGhpc1xuICAgIC8vIGFzIGEgQ29tbW9uSlMgbW9kdWxlIGFzIGlzLlxuICAgIHJldHVybiBtb2R1bGVFeHBvcnRzO1xuICB9XG5cbiAgaWYgKG1ldGFkYXRhW05BTUVdID09PSAnJykge1xuICAgIC8vIFRoaXMgaXMgYSBwbGFjZWhvbGRlciB2YWx1ZSB0aGF0IHJlcHJlc2VudHMgdGhhdCB0aGUgY2FsbGVyIGFjY2Vzc2VkIHRoZVxuICAgIC8vIGRlZmF1bHQgcHJvcGVydHkgb2YgdGhpcyBpZiBpdCB3YXMgYW4gRVNNIGludGVyb3AgbW9kdWxlLlxuICAgIHJldHVybiBtb2R1bGVFeHBvcnRzLl9fZXNNb2R1bGUgPyBtb2R1bGVFeHBvcnRzLmRlZmF1bHQgOiBtb2R1bGVFeHBvcnRzO1xuICB9XG5cbiAgcmV0dXJuIG1vZHVsZUV4cG9ydHNbbWV0YWRhdGFbTkFNRV1dO1xufVxuXG5mdW5jdGlvbiBsb2FkQ2h1bmsoY2h1bmtJZCwgZmlsZW5hbWUpIHtcbiAgcmV0dXJuIF9fd2VicGFja19jaHVua19sb2FkX18oY2h1bmtJZCk7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVEZXN0aW5hdGlvbldpdGhDaHVua3MobW9kdWxlTG9hZGluZywgLy8gQ2h1bmtzIGFyZSBkb3VibGUtaW5kZXhlZCBbLi4uLCBpZHgsIGZpbGVuYW1leCwgaWR5LCBmaWxlbmFtZXksIC4uLl1cbmNodW5rcywgbm9uY2UpIHtcbiAgaWYgKG1vZHVsZUxvYWRpbmcgIT09IG51bGwpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGNodW5rcy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgcHJlaW5pdFNjcmlwdEZvclNTUihtb2R1bGVMb2FkaW5nLnByZWZpeCArIGNodW5rc1tpXSwgbm9uY2UsIG1vZHVsZUxvYWRpbmcuY3Jvc3NPcmlnaW4pO1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMgPSBSZWFjdERPTS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtcblxuZnVuY3Rpb24gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmcoaW5wdXQpIHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gaW5wdXQgPT09ICd1c2UtY3JlZGVudGlhbHMnID8gaW5wdXQgOiAnJztcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIFRoaXMgY2xpZW50IGZpbGUgaXMgaW4gdGhlIHNoYXJlZCBmb2xkZXIgYmVjYXVzZSBpdCBhcHBsaWVzIHRvIGJvdGggU1NSIGFuZCBicm93c2VyIGNvbnRleHRzLlxudmFyIFJlYWN0RE9NQ3VycmVudERpc3BhdGNoZXIgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5EaXNwYXRjaGVyO1xuZnVuY3Rpb24gZGlzcGF0Y2hIaW50KGNvZGUsIG1vZGVsKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gUmVhY3RET01DdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50O1xuXG4gIGlmIChkaXNwYXRjaGVyKSB7XG4gICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICBjYXNlICdEJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciByZWZpbmVkID0gcmVmaW5lTW9kZWwoY29kZSwgbW9kZWwpO1xuICAgICAgICAgIHZhciBocmVmID0gcmVmaW5lZDtcbiAgICAgICAgICBkaXNwYXRjaGVyLnByZWZldGNoRE5TKGhyZWYpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdDJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfcmVmaW5lZCA9IHJlZmluZU1vZGVsKGNvZGUsIG1vZGVsKTtcblxuICAgICAgICAgIGlmICh0eXBlb2YgX3JlZmluZWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YXIgX2hyZWYgPSBfcmVmaW5lZDtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIucHJlY29ubmVjdChfaHJlZik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBfaHJlZjIgPSBfcmVmaW5lZFswXTtcbiAgICAgICAgICAgIHZhciBjcm9zc09yaWdpbiA9IF9yZWZpbmVkWzFdO1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5wcmVjb25uZWN0KF9ocmVmMiwgY3Jvc3NPcmlnaW4pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdMJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfcmVmaW5lZDIgPSByZWZpbmVNb2RlbChjb2RlLCBtb2RlbCk7XG5cbiAgICAgICAgICB2YXIgX2hyZWYzID0gX3JlZmluZWQyWzBdO1xuICAgICAgICAgIHZhciBhcyA9IF9yZWZpbmVkMlsxXTtcblxuICAgICAgICAgIGlmIChfcmVmaW5lZDIubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB2YXIgb3B0aW9ucyA9IF9yZWZpbmVkMlsyXTtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIucHJlbG9hZChfaHJlZjMsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5wcmVsb2FkKF9ocmVmMywgYXMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdtJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfcmVmaW5lZDMgPSByZWZpbmVNb2RlbChjb2RlLCBtb2RlbCk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIF9yZWZpbmVkMyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhciBfaHJlZjQgPSBfcmVmaW5lZDM7XG4gICAgICAgICAgICBkaXNwYXRjaGVyLnByZWxvYWRNb2R1bGUoX2hyZWY0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIF9ocmVmNSA9IF9yZWZpbmVkM1swXTtcbiAgICAgICAgICAgIHZhciBfb3B0aW9ucyA9IF9yZWZpbmVkM1sxXTtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIucHJlbG9hZE1vZHVsZShfaHJlZjUsIF9vcHRpb25zKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnUyc6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgX3JlZmluZWQ0ID0gcmVmaW5lTW9kZWwoY29kZSwgbW9kZWwpO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBfcmVmaW5lZDQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YXIgX2hyZWY2ID0gX3JlZmluZWQ0O1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5wcmVpbml0U3R5bGUoX2hyZWY2KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIF9ocmVmNyA9IF9yZWZpbmVkNFswXTtcbiAgICAgICAgICAgIHZhciBwcmVjZWRlbmNlID0gX3JlZmluZWQ0WzFdID09PSAwID8gdW5kZWZpbmVkIDogX3JlZmluZWQ0WzFdO1xuXG4gICAgICAgICAgICB2YXIgX29wdGlvbnMyID0gX3JlZmluZWQ0Lmxlbmd0aCA9PT0gMyA/IF9yZWZpbmVkNFsyXSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgZGlzcGF0Y2hlci5wcmVpbml0U3R5bGUoX2hyZWY3LCBwcmVjZWRlbmNlLCBfb3B0aW9uczIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdYJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfcmVmaW5lZDUgPSByZWZpbmVNb2RlbChjb2RlLCBtb2RlbCk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIF9yZWZpbmVkNSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhciBfaHJlZjggPSBfcmVmaW5lZDU7XG4gICAgICAgICAgICBkaXNwYXRjaGVyLnByZWluaXRTY3JpcHQoX2hyZWY4KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIF9ocmVmOSA9IF9yZWZpbmVkNVswXTtcbiAgICAgICAgICAgIHZhciBfb3B0aW9uczMgPSBfcmVmaW5lZDVbMV07XG4gICAgICAgICAgICBkaXNwYXRjaGVyLnByZWluaXRTY3JpcHQoX2hyZWY5LCBfb3B0aW9uczMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdNJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfcmVmaW5lZDYgPSByZWZpbmVNb2RlbChjb2RlLCBtb2RlbCk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIF9yZWZpbmVkNiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhciBfaHJlZjEwID0gX3JlZmluZWQ2O1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5wcmVpbml0TW9kdWxlU2NyaXB0KF9ocmVmMTApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgX2hyZWYxMSA9IF9yZWZpbmVkNlswXTtcbiAgICAgICAgICAgIHZhciBfb3B0aW9uczQgPSBfcmVmaW5lZDZbMV07XG4gICAgICAgICAgICBkaXNwYXRjaGVyLnByZWluaXRNb2R1bGVTY3JpcHQoX2hyZWYxMSwgX29wdGlvbnM0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbn0gLy8gRmxvdyBpcyBoYXZpbmcgdHJvdWJsZSByZWZpbmluZyB0aGUgSGludE1vZGVscyBzbyB3ZSBoZWxwIGl0IGEgYml0LlxuLy8gVGhpcyBzaG91bGQgYmUgY29tcGlsZWQgb3V0IGluIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLlxuXG5mdW5jdGlvbiByZWZpbmVNb2RlbChjb2RlLCBtb2RlbCkge1xuICByZXR1cm4gbW9kZWw7XG59XG5mdW5jdGlvbiBwcmVpbml0U2NyaXB0Rm9yU1NSKGhyZWYsIG5vbmNlLCBjcm9zc09yaWdpbikge1xuICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0RE9NQ3VycmVudERpc3BhdGNoZXIuY3VycmVudDtcblxuICBpZiAoZGlzcGF0Y2hlcikge1xuICAgIGRpc3BhdGNoZXIucHJlaW5pdFNjcmlwdChocmVmLCB7XG4gICAgICBjcm9zc09yaWdpbjogZ2V0Q3Jvc3NPcmlnaW5TdHJpbmcoY3Jvc3NPcmlnaW4pLFxuICAgICAgbm9uY2U6IG5vbmNlXG4gICAgfSk7XG4gIH1cbn1cblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0gUmVhY3QuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG5cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0pO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG52YXIgUkVBQ1RfU0VSVkVSX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnNlcnZlcl9jb250ZXh0Jyk7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKTtcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XG52YXIgUkVBQ1RfU0VSVkVSX0NPTlRFWFRfREVGQVVMVF9WQUxVRV9OT1RfTE9BREVEID0gU3ltYm9sLmZvcigncmVhY3QuZGVmYXVsdF92YWx1ZScpO1xudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcjtcbnZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJztcbmZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICBpZiAobWF5YmVJdGVyYWJsZSA9PT0gbnVsbCB8fCB0eXBlb2YgbWF5YmVJdGVyYWJsZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBtYXliZUl0ZXJhdG9yID0gTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXTtcblxuICBpZiAodHlwZW9mIG1heWJlSXRlcmF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gbWF5YmVJdGVyYXRvcjtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYSkge1xuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XG59XG5cbnZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuLy8gaW4gY2FzZSB0aGV5IGVycm9yLlxuXG52YXIganN4UHJvcHNQYXJlbnRzID0gbmV3IFdlYWtNYXAoKTtcbnZhciBqc3hDaGlsZHJlblBhcmVudHMgPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBpc09iamVjdFByb3RvdHlwZShvYmplY3QpIHtcbiAgaWYgKCFvYmplY3QpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgT2JqZWN0UHJvdG90eXBlID0gT2JqZWN0LnByb3RvdHlwZTtcblxuICBpZiAob2JqZWN0ID09PSBPYmplY3RQcm90b3R5cGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBJdCBtaWdodCBiZSBhbiBvYmplY3QgZnJvbSBhIGRpZmZlcmVudCBSZWFsbSB3aGljaCBpc1xuICAvLyBzdGlsbCBqdXN0IGEgcGxhaW4gc2ltcGxlIG9iamVjdC5cblxuXG4gIGlmIChnZXRQcm90b3R5cGVPZihvYmplY3QpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIG5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCEobmFtZXNbaV0gaW4gT2JqZWN0UHJvdG90eXBlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBpc1NpbXBsZU9iamVjdChvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdFByb3RvdHlwZShnZXRQcm90b3R5cGVPZihvYmplY3QpKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBuYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIG5hbWVzW2ldKTtcblxuICAgIGlmICghZGVzY3JpcHRvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghZGVzY3JpcHRvci5lbnVtZXJhYmxlKSB7XG4gICAgICBpZiAoKG5hbWVzW2ldID09PSAna2V5JyB8fCBuYW1lc1tpXSA9PT0gJ3JlZicpICYmIHR5cGVvZiBkZXNjcmlwdG9yLmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBSZWFjdCBhZGRzIGtleSBhbmQgcmVmIGdldHRlcnMgdG8gcHJvcHMgb2JqZWN0cyB0byBpc3N1ZSB3YXJuaW5ncy5cbiAgICAgICAgLy8gVGhvc2UgZ2V0dGVycyB3aWxsIG5vdCBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgY2xpZW50LCBidXQgdGhhdCdzIG9rLFxuICAgICAgICAvLyBzbyB3ZSdsbCBzcGVjaWFsIGNhc2UgdGhlbS5cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIG9iamVjdE5hbWUob2JqZWN0KSB7XG4gIC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbiAgdmFyIG5hbWUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZSgvXlxcW29iamVjdCAoLiopXFxdJC8sIGZ1bmN0aW9uIChtLCBwMCkge1xuICAgIHJldHVybiBwMDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlKGtleSkge1xuICB2YXIgZW5jb2RlZEtleSA9IEpTT04uc3RyaW5naWZ5KGtleSk7XG4gIHJldHVybiAnXCInICsga2V5ICsgJ1wiJyA9PT0gZW5jb2RlZEtleSA/IGtleSA6IGVuY29kZWRLZXk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UodmFsdWUpIHtcbiAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUubGVuZ3RoIDw9IDEwID8gdmFsdWUgOiB2YWx1ZS5zbGljZSgwLCAxMCkgKyAnLi4uJyk7XG4gICAgICB9XG5cbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAge1xuICAgICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gJ1suLi5dJztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuYW1lID0gb2JqZWN0TmFtZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKG5hbWUgPT09ICdPYmplY3QnKSB7XG4gICAgICAgICAgcmV0dXJuICd7Li4ufSc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgIHJldHVybiAnZnVuY3Rpb24nO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVFbGVtZW50VHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUudHlwZSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gTGF6eSBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKG9iamVjdE9yQXJyYXksIGV4cGFuZGVkTmFtZSkge1xuICB2YXIgb2JqS2luZCA9IG9iamVjdE5hbWUob2JqZWN0T3JBcnJheSk7XG5cbiAgaWYgKG9iaktpbmQgIT09ICdPYmplY3QnICYmIG9iaktpbmQgIT09ICdBcnJheScpIHtcbiAgICByZXR1cm4gb2JqS2luZDtcbiAgfVxuXG4gIHZhciBzdHIgPSAnJztcbiAgdmFyIHN0YXJ0ID0gLTE7XG4gIHZhciBsZW5ndGggPSAwO1xuXG4gIGlmIChpc0FycmF5KG9iamVjdE9yQXJyYXkpKSB7XG4gICAgaWYgKGpzeENoaWxkcmVuUGFyZW50cy5oYXMob2JqZWN0T3JBcnJheSkpIHtcbiAgICAgIC8vIFByaW50IEpTWCBDaGlsZHJlblxuICAgICAgdmFyIHR5cGUgPSBqc3hDaGlsZHJlblBhcmVudHMuZ2V0KG9iamVjdE9yQXJyYXkpO1xuICAgICAgc3RyID0gJzwnICsgZGVzY3JpYmVFbGVtZW50VHlwZSh0eXBlKSArICc+JztcbiAgICAgIHZhciBhcnJheSA9IG9iamVjdE9yQXJyYXk7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaV07XG4gICAgICAgIHZhciBzdWJzdHIgPSB2b2lkIDA7XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBzdWJzdHIgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgc3Vic3RyID0gJ3snICsgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodmFsdWUpICsgJ30nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1YnN0ciA9ICd7JyArIGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UodmFsdWUpICsgJ30nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCcnICsgaSA9PT0gZXhwYW5kZWROYW1lKSB7XG4gICAgICAgICAgc3RhcnQgPSBzdHIubGVuZ3RoO1xuICAgICAgICAgIGxlbmd0aCA9IHN1YnN0ci5sZW5ndGg7XG4gICAgICAgICAgc3RyICs9IHN1YnN0cjtcbiAgICAgICAgfSBlbHNlIGlmIChzdWJzdHIubGVuZ3RoIDwgMTUgJiYgc3RyLmxlbmd0aCArIHN1YnN0ci5sZW5ndGggPCA0MCkge1xuICAgICAgICAgIHN0ciArPSBzdWJzdHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RyICs9ICd7Li4ufSc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3RyICs9ICc8LycgKyBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUpICsgJz4nO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQcmludCBBcnJheVxuICAgICAgc3RyID0gJ1snO1xuICAgICAgdmFyIF9hcnJheSA9IG9iamVjdE9yQXJyYXk7XG5cbiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBfYXJyYXkubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIGlmIChfaSA+IDApIHtcbiAgICAgICAgICBzdHIgKz0gJywgJztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfdmFsdWUgPSBfYXJyYXlbX2ldO1xuXG4gICAgICAgIHZhciBfc3Vic3RyID0gdm9pZCAwO1xuXG4gICAgICAgIGlmICh0eXBlb2YgX3ZhbHVlID09PSAnb2JqZWN0JyAmJiBfdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICBfc3Vic3RyID0gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfc3Vic3RyID0gZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZShfdmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCcnICsgX2kgPT09IGV4cGFuZGVkTmFtZSkge1xuICAgICAgICAgIHN0YXJ0ID0gc3RyLmxlbmd0aDtcbiAgICAgICAgICBsZW5ndGggPSBfc3Vic3RyLmxlbmd0aDtcbiAgICAgICAgICBzdHIgKz0gX3N1YnN0cjtcbiAgICAgICAgfSBlbHNlIGlmIChfc3Vic3RyLmxlbmd0aCA8IDEwICYmIHN0ci5sZW5ndGggKyBfc3Vic3RyLmxlbmd0aCA8IDQwKSB7XG4gICAgICAgICAgc3RyICs9IF9zdWJzdHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RyICs9ICcuLi4nO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN0ciArPSAnXSc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChvYmplY3RPckFycmF5LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgIHN0ciA9ICc8JyArIGRlc2NyaWJlRWxlbWVudFR5cGUob2JqZWN0T3JBcnJheS50eXBlKSArICcvPic7XG4gICAgfSBlbHNlIGlmIChqc3hQcm9wc1BhcmVudHMuaGFzKG9iamVjdE9yQXJyYXkpKSB7XG4gICAgICAvLyBQcmludCBKU1hcbiAgICAgIHZhciBfdHlwZSA9IGpzeFByb3BzUGFyZW50cy5nZXQob2JqZWN0T3JBcnJheSk7XG5cbiAgICAgIHN0ciA9ICc8JyArIChkZXNjcmliZUVsZW1lbnRUeXBlKF90eXBlKSB8fCAnLi4uJyk7XG4gICAgICB2YXIgb2JqZWN0ID0gb2JqZWN0T3JBcnJheTtcbiAgICAgIHZhciBuYW1lcyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IG5hbWVzLmxlbmd0aDsgX2kyKyspIHtcbiAgICAgICAgc3RyICs9ICcgJztcbiAgICAgICAgdmFyIG5hbWUgPSBuYW1lc1tfaTJdO1xuICAgICAgICBzdHIgKz0gZGVzY3JpYmVLZXlGb3JFcnJvck1lc3NhZ2UobmFtZSkgKyAnPSc7XG4gICAgICAgIHZhciBfdmFsdWUyID0gb2JqZWN0W25hbWVdO1xuXG4gICAgICAgIHZhciBfc3Vic3RyMiA9IHZvaWQgMDtcblxuICAgICAgICBpZiAobmFtZSA9PT0gZXhwYW5kZWROYW1lICYmIHR5cGVvZiBfdmFsdWUyID09PSAnb2JqZWN0JyAmJiBfdmFsdWUyICE9PSBudWxsKSB7XG4gICAgICAgICAgX3N1YnN0cjIgPSBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShfdmFsdWUyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfc3Vic3RyMiA9IGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIF92YWx1ZTIgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgX3N1YnN0cjIgPSAneycgKyBfc3Vic3RyMiArICd9JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuYW1lID09PSBleHBhbmRlZE5hbWUpIHtcbiAgICAgICAgICBzdGFydCA9IHN0ci5sZW5ndGg7XG4gICAgICAgICAgbGVuZ3RoID0gX3N1YnN0cjIubGVuZ3RoO1xuICAgICAgICAgIHN0ciArPSBfc3Vic3RyMjtcbiAgICAgICAgfSBlbHNlIGlmIChfc3Vic3RyMi5sZW5ndGggPCAxMCAmJiBzdHIubGVuZ3RoICsgX3N1YnN0cjIubGVuZ3RoIDwgNDApIHtcbiAgICAgICAgICBzdHIgKz0gX3N1YnN0cjI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RyICs9ICcuLi4nO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN0ciArPSAnPic7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFByaW50IE9iamVjdFxuICAgICAgc3RyID0gJ3snO1xuICAgICAgdmFyIF9vYmplY3QgPSBvYmplY3RPckFycmF5O1xuXG4gICAgICB2YXIgX25hbWVzID0gT2JqZWN0LmtleXMoX29iamVjdCk7XG5cbiAgICAgIGZvciAodmFyIF9pMyA9IDA7IF9pMyA8IF9uYW1lcy5sZW5ndGg7IF9pMysrKSB7XG4gICAgICAgIGlmIChfaTMgPiAwKSB7XG4gICAgICAgICAgc3RyICs9ICcsICc7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX25hbWUgPSBfbmFtZXNbX2kzXTtcbiAgICAgICAgc3RyICs9IGRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlKF9uYW1lKSArICc6ICc7XG4gICAgICAgIHZhciBfdmFsdWUzID0gX29iamVjdFtfbmFtZV07XG5cbiAgICAgICAgdmFyIF9zdWJzdHIzID0gdm9pZCAwO1xuXG4gICAgICAgIGlmICh0eXBlb2YgX3ZhbHVlMyA9PT0gJ29iamVjdCcgJiYgX3ZhbHVlMyAhPT0gbnVsbCkge1xuICAgICAgICAgIF9zdWJzdHIzID0gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3N1YnN0cjMgPSBkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlKF92YWx1ZTMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF9uYW1lID09PSBleHBhbmRlZE5hbWUpIHtcbiAgICAgICAgICBzdGFydCA9IHN0ci5sZW5ndGg7XG4gICAgICAgICAgbGVuZ3RoID0gX3N1YnN0cjMubGVuZ3RoO1xuICAgICAgICAgIHN0ciArPSBfc3Vic3RyMztcbiAgICAgICAgfSBlbHNlIGlmIChfc3Vic3RyMy5sZW5ndGggPCAxMCAmJiBzdHIubGVuZ3RoICsgX3N1YnN0cjMubGVuZ3RoIDwgNDApIHtcbiAgICAgICAgICBzdHIgKz0gX3N1YnN0cjM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RyICs9ICcuLi4nO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN0ciArPSAnfSc7XG4gICAgfVxuICB9XG5cbiAgaWYgKGV4cGFuZGVkTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIGlmIChzdGFydCA+IC0xICYmIGxlbmd0aCA+IDApIHtcbiAgICB2YXIgaGlnaGxpZ2h0ID0gJyAnLnJlcGVhdChzdGFydCkgKyAnXicucmVwZWF0KGxlbmd0aCk7XG4gICAgcmV0dXJuICdcXG4gICcgKyBzdHIgKyAnXFxuICAnICsgaGlnaGxpZ2h0O1xuICB9XG5cbiAgcmV0dXJuICdcXG4gICcgKyBzdHI7XG59XG5cbnZhciBPYmplY3RQcm90b3R5cGUgPSBPYmplY3QucHJvdG90eXBlO1xudmFyIGtub3duU2VydmVyUmVmZXJlbmNlcyA9IG5ldyBXZWFrTWFwKCk7IC8vIFNlcmlhbGl6YWJsZSB2YWx1ZXNcbi8vIFRoZW5hYmxlPFJlYWN0U2VydmVyVmFsdWU+XG4vLyBmdW5jdGlvbiBzZXJpYWxpemVCeVZhbHVlSUQoaWQ6IG51bWJlcik6IHN0cmluZyB7XG4vLyAgIHJldHVybiAnJCcgKyBpZC50b1N0cmluZygxNik7XG4vLyB9XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVByb21pc2VJRChpZCkge1xuICByZXR1cm4gJyRAJyArIGlkLnRvU3RyaW5nKDE2KTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplU2VydmVyUmVmZXJlbmNlSUQoaWQpIHtcbiAgcmV0dXJuICckRicgKyBpZC50b1N0cmluZygxNik7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVN5bWJvbFJlZmVyZW5jZShuYW1lKSB7XG4gIHJldHVybiAnJFMnICsgbmFtZTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplRm9ybURhdGFSZWZlcmVuY2UoaWQpIHtcbiAgLy8gV2h5IEs/IEYgaXMgXCJGdW5jdGlvblwiLiBEIGlzIFwiRGF0ZVwiLiBXaGF0IGVsc2U/XG4gIHJldHVybiAnJEsnICsgaWQudG9TdHJpbmcoMTYpO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVOdW1iZXIobnVtYmVyKSB7XG4gIGlmIChOdW1iZXIuaXNGaW5pdGUobnVtYmVyKSkge1xuICAgIGlmIChudW1iZXIgPT09IDAgJiYgMSAvIG51bWJlciA9PT0gLUluZmluaXR5KSB7XG4gICAgICByZXR1cm4gJyQtMCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudW1iZXI7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChudW1iZXIgPT09IEluZmluaXR5KSB7XG4gICAgICByZXR1cm4gJyRJbmZpbml0eSc7XG4gICAgfSBlbHNlIGlmIChudW1iZXIgPT09IC1JbmZpbml0eSkge1xuICAgICAgcmV0dXJuICckLUluZmluaXR5JztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICckTmFOJztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplVW5kZWZpbmVkKCkge1xuICByZXR1cm4gJyR1bmRlZmluZWQnO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVEYXRlRnJvbURhdGVKU09OKGRhdGVKU09OKSB7XG4gIC8vIEpTT04uc3RyaW5naWZ5IGF1dG9tYXRpY2FsbHkgY2FsbHMgRGF0ZS5wcm90b3R5cGUudG9KU09OIHdoaWNoIGNhbGxzIHRvSVNPU3RyaW5nLlxuICAvLyBXZSBuZWVkIG9ubHkgdGFjayBvbiBhICREIHByZWZpeC5cbiAgcmV0dXJuICckRCcgKyBkYXRlSlNPTjtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplQmlnSW50KG4pIHtcbiAgcmV0dXJuICckbicgKyBuLnRvU3RyaW5nKDEwKTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplTWFwSUQoaWQpIHtcbiAgcmV0dXJuICckUScgKyBpZC50b1N0cmluZygxNik7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVNldElEKGlkKSB7XG4gIHJldHVybiAnJFcnICsgaWQudG9TdHJpbmcoMTYpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVTdHJpbmdWYWx1ZSh2YWx1ZSkge1xuICBpZiAodmFsdWVbMF0gPT09ICckJykge1xuICAgIC8vIFdlIG5lZWQgdG8gZXNjYXBlICQgcHJlZml4ZWQgc3RyaW5ncyBzaW5jZSB3ZSB1c2UgdGhvc2UgdG8gZW5jb2RlXG4gICAgLy8gcmVmZXJlbmNlcyB0byBJRHMgYW5kIGFzIHNwZWNpYWwgc3ltYm9sIHZhbHVlcy5cbiAgICByZXR1cm4gJyQnICsgdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NSZXBseShyb290LCBmb3JtRmllbGRQcmVmaXgsIHJlc29sdmUsIHJlamVjdCkge1xuICB2YXIgbmV4dFBhcnRJZCA9IDE7XG4gIHZhciBwZW5kaW5nUGFydHMgPSAwO1xuICB2YXIgZm9ybURhdGEgPSBudWxsO1xuXG4gIGZ1bmN0aW9uIHJlc29sdmVUb0pTT04oa2V5LCB2YWx1ZSkge1xuICAgIHZhciBwYXJlbnQgPSB0aGlzOyAvLyBNYWtlIHN1cmUgdGhhdCBgcGFyZW50W2tleV1gIHdhc24ndCBKU09OaWZpZWQgYmVmb3JlIGB2YWx1ZWAgd2FzIHBhc3NlZCB0byB1c1xuXG4gICAge1xuICAgICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXVxuICAgICAgdmFyIG9yaWdpbmFsVmFsdWUgPSBwYXJlbnRba2V5XTtcblxuICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbFZhbHVlID09PSAnb2JqZWN0JyAmJiBvcmlnaW5hbFZhbHVlICE9PSB2YWx1ZSAmJiAhKG9yaWdpbmFsVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgICBpZiAob2JqZWN0TmFtZShvcmlnaW5hbFZhbHVlKSAhPT0gJ09iamVjdCcpIHtcbiAgICAgICAgICBlcnJvcignT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuICcgKyAnJXMgb2JqZWN0cyBhcmUgbm90IHN1cHBvcnRlZC4lcycsIG9iamVjdE5hbWUob3JpZ2luYWxWYWx1ZSksIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHBhcmVudCwga2V5KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IoJ09ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiAnICsgJ09iamVjdHMgd2l0aCB0b0pTT04gbWV0aG9kcyBhcmUgbm90IHN1cHBvcnRlZC4gQ29udmVydCBpdCBtYW51YWxseSAnICsgJ3RvIGEgc2ltcGxlIHZhbHVlIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHByb3BzLiVzJywgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UocGFyZW50LCBrZXkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBXZSBhc3N1bWUgdGhhdCBhbnkgb2JqZWN0IHdpdGggYSAudGhlbiBwcm9wZXJ0eSBpcyBhIFwiVGhlbmFibGVcIiB0eXBlLFxuICAgICAgICAvLyBvciBhIFByb21pc2UgdHlwZS4gRWl0aGVyIG9mIHdoaWNoIGNhbiBiZSByZXByZXNlbnRlZCBieSBhIFByb21pc2UuXG4gICAgICAgIGlmIChmb3JtRGF0YSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFVwZ3JhZGUgdG8gdXNlIEZvcm1EYXRhIHRvIGFsbG93IHVzIHRvIHN0cmVhbSB0aGlzIHZhbHVlLlxuICAgICAgICAgIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIH1cblxuICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgdmFyIHByb21pc2VJZCA9IG5leHRQYXJ0SWQrKztcbiAgICAgICAgdmFyIHRoZW5hYmxlID0gdmFsdWU7XG4gICAgICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKHBhcnRWYWx1ZSkge1xuICAgICAgICAgIHZhciBwYXJ0SlNPTiA9IEpTT04uc3RyaW5naWZ5KHBhcnRWYWx1ZSwgcmVzb2x2ZVRvSlNPTik7IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIFdlIGtub3cgaXQncyBub3QgbnVsbCBiZWNhdXNlIHdlIGFzc2lnbmVkIGl0IGFib3ZlLlxuXG4gICAgICAgICAgdmFyIGRhdGEgPSBmb3JtRGF0YTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cbiAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBwcm9taXNlSWQsIHBhcnRKU09OKTtcbiAgICAgICAgICBwZW5kaW5nUGFydHMtLTtcblxuICAgICAgICAgIGlmIChwZW5kaW5nUGFydHMgPT09IDApIHtcbiAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSBjb3VsZCBjb25zaWRlciBzZXJpYWxpemluZyB0aGlzIGFzIGFuIGVycm9yXG4gICAgICAgICAgLy8gdGhhdCB0aHJvd3Mgb24gdGhlIHNlcnZlciBpbnN0ZWFkLlxuICAgICAgICAgIHJlamVjdChyZWFzb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVByb21pc2VJRChwcm9taXNlSWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9IC8vIFRPRE86IFNob3VsZCB3ZSB0aGUgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKCkgdG8gdGVzdCBmb3IgY3Jvc3MtcmVhbG0gb2JqZWN0cz9cblxuXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICBpZiAoZm9ybURhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBVcGdyYWRlIHRvIHVzZSBGb3JtRGF0YSB0byBhbGxvdyB1cyB0byB1c2UgcmljaCBvYmplY3RzIGFzIGl0cyB2YWx1ZXMuXG4gICAgICAgICAgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkYXRhID0gZm9ybURhdGE7XG4gICAgICAgIHZhciByZWZJZCA9IG5leHRQYXJ0SWQrKzsgLy8gQ29weSBhbGwgdGhlIGZvcm0gZmllbGRzIHdpdGggYSBwcmVmaXggZm9yIHRoaXMgcmVmZXJlbmNlLlxuICAgICAgICAvLyBUaGVzZSBtdXN0IGNvbWUgZmlyc3QgaW4gdGhlIGZvcm0gb3JkZXIgYmVjYXVzZSB3ZSBhc3N1bWUgdGhhdCBhbGwgdGhlXG4gICAgICAgIC8vIGZpZWxkcyBhcmUgYXZhaWxhYmxlIGJlZm9yZSB0aGlzIGlzIHJlZmVyZW5jZWQuXG5cbiAgICAgICAgdmFyIHByZWZpeCA9IGZvcm1GaWVsZFByZWZpeCArIHJlZklkICsgJ18nOyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ106IEZvcm1EYXRhIGhhcyBmb3JFYWNoLlxuXG4gICAgICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24gKG9yaWdpbmFsVmFsdWUsIG9yaWdpbmFsS2V5KSB7XG4gICAgICAgICAgZGF0YS5hcHBlbmQocHJlZml4ICsgb3JpZ2luYWxLZXksIG9yaWdpbmFsVmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUZvcm1EYXRhUmVmZXJlbmNlKHJlZklkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgIHZhciBwYXJ0SlNPTiA9IEpTT04uc3RyaW5naWZ5KEFycmF5LmZyb20odmFsdWUpLCByZXNvbHZlVG9KU09OKTtcblxuICAgICAgICBpZiAoZm9ybURhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG1hcElkID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgbWFwSWQsIHBhcnRKU09OKTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZU1hcElEKG1hcElkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICAgIHZhciBfcGFydEpTT04gPSBKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKHZhbHVlKSwgcmVzb2x2ZVRvSlNPTik7XG5cbiAgICAgICAgaWYgKGZvcm1EYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZXRJZCA9IG5leHRQYXJ0SWQrKztcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHNldElkLCBfcGFydEpTT04pO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplU2V0SUQoc2V0SWQpO1xuICAgICAgfVxuXG4gICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4odmFsdWUpO1xuXG4gICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh2YWx1ZSk7XG4gICAgICB9IC8vIFZlcmlmeSB0aGF0IHRoaXMgaXMgYSBzaW1wbGUgcGxhaW4gb2JqZWN0LlxuXG5cbiAgICAgIHZhciBwcm90byA9IGdldFByb3RvdHlwZU9mKHZhbHVlKTtcblxuICAgICAgaWYgKHByb3RvICE9PSBPYmplY3RQcm90b3R5cGUgJiYgKHByb3RvID09PSBudWxsIHx8IGdldFByb3RvdHlwZU9mKHByb3RvKSAhPT0gbnVsbCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHBsYWluIG9iamVjdHMsIGFuZCBhIGZldyBidWlsdC1pbnMsIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEFjdGlvbnMuICcgKyAnQ2xhc3NlcyBvciBudWxsIHByb3RvdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QgRWxlbWVudCBjYW5ub3QgYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiVzJywgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UocGFyZW50LCBrZXkpKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0IExhenkgY2Fubm90IGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4lcycsIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHBhcmVudCwga2V5KSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUpIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QgQ29udGV4dCBQcm92aWRlcnMgY2Fubm90IGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4lcycsIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHBhcmVudCwga2V5KSk7XG4gICAgICAgIH0gZWxzZSBpZiAob2JqZWN0TmFtZSh2YWx1ZSkgIT09ICdPYmplY3QnKSB7XG4gICAgICAgICAgZXJyb3IoJ09ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiAnICsgJyVzIG9iamVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQuJXMnLCBvYmplY3ROYW1lKHZhbHVlKSwgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UocGFyZW50LCBrZXkpKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNTaW1wbGVPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgZXJyb3IoJ09ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiAnICsgJ0NsYXNzZXMgb3Igb3RoZXIgb2JqZWN0cyB3aXRoIG1ldGhvZHMgYXJlIG5vdCBzdXBwb3J0ZWQuJXMnLCBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShwYXJlbnQsIGtleSkpO1xuICAgICAgICB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICAgICAgICB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModmFsdWUpO1xuXG4gICAgICAgICAgaWYgKHN5bWJvbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZXJyb3IoJ09ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiAnICsgJ09iamVjdHMgd2l0aCBzeW1ib2wgcHJvcGVydGllcyBsaWtlICVzIGFyZSBub3Qgc3VwcG9ydGVkLiVzJywgc3ltYm9sc1swXS5kZXNjcmlwdGlvbiwgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UocGFyZW50LCBrZXkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuXG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gVE9ETzogTWF5YmUgdG9vIGNsZXZlci4gSWYgd2Ugc3VwcG9ydCBVUkwgdGhlcmUncyBubyBzaW1pbGFyIHRyaWNrLlxuICAgICAgaWYgKHZhbHVlW3ZhbHVlLmxlbmd0aCAtIDFdID09PSAnWicpIHtcbiAgICAgICAgLy8gUG9zc2libHkgYSBEYXRlLCB3aG9zZSB0b0pTT04gYXV0b21hdGljYWxseSBjYWxscyB0b0lTT1N0cmluZ1xuICAgICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdXG4gICAgICAgIHZhciBfb3JpZ2luYWxWYWx1ZSA9IHBhcmVudFtrZXldO1xuXG4gICAgICAgIGlmIChfb3JpZ2luYWxWYWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICByZXR1cm4gc2VyaWFsaXplRGF0ZUZyb21EYXRlSlNPTih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVzY2FwZVN0cmluZ1ZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZU51bWJlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBzZXJpYWxpemVVbmRlZmluZWQoKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgbWV0YURhdGEgPSBrbm93blNlcnZlclJlZmVyZW5jZXMuZ2V0KHZhbHVlKTtcblxuICAgICAgaWYgKG1ldGFEYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFyIG1ldGFEYXRhSlNPTiA9IEpTT04uc3RyaW5naWZ5KG1ldGFEYXRhLCByZXNvbHZlVG9KU09OKTtcblxuICAgICAgICBpZiAoZm9ybURhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBVcGdyYWRlIHRvIHVzZSBGb3JtRGF0YSB0byBhbGxvdyB1cyB0byBzdHJlYW0gdGhpcyB2YWx1ZS5cbiAgICAgICAgICBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICB9IC8vIFRoZSByZWZlcmVuY2UgdG8gdGhpcyBmdW5jdGlvbiBjYW1lIGZyb20gdGhlIHNhbWUgY2xpZW50IHNvIHdlIGNhbiBwYXNzIGl0IGJhY2suXG5cblxuICAgICAgICB2YXIgX3JlZklkID0gbmV4dFBhcnRJZCsrOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cblxuXG4gICAgICAgIGZvcm1EYXRhLnNldChmb3JtRmllbGRQcmVmaXggKyBfcmVmSWQsIG1ldGFEYXRhSlNPTik7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVTZXJ2ZXJSZWZlcmVuY2VJRChfcmVmSWQpO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NsaWVudCBGdW5jdGlvbnMgY2Fubm90IGJlIHBhc3NlZCBkaXJlY3RseSB0byBTZXJ2ZXIgRnVuY3Rpb25zLiAnICsgJ09ubHkgRnVuY3Rpb25zIHBhc3NlZCBmcm9tIHRoZSBTZXJ2ZXIgY2FuIGJlIHBhc3NlZCBiYWNrIGFnYWluLicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXSBgZGVzY3JpcHRpb25gIG1pZ2h0IGJlIHVuZGVmaW5lZFxuICAgICAgdmFyIG5hbWUgPSB2YWx1ZS5kZXNjcmlwdGlvbjtcblxuICAgICAgaWYgKFN5bWJvbC5mb3IobmFtZSkgIT09IHZhbHVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBnbG9iYWwgc3ltYm9scyByZWNlaXZlZCBmcm9tIFN5bWJvbC5mb3IoLi4uKSBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMuICcgKyAoXCJUaGUgc3ltYm9sIFN5bWJvbC5mb3IoXCIgKyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXSBgZGVzY3JpcHRpb25gIG1pZ2h0IGJlIHVuZGVmaW5lZFxuICAgICAgICB2YWx1ZS5kZXNjcmlwdGlvbiArIFwiKSBjYW5ub3QgYmUgZm91bmQgYW1vbmcgZ2xvYmFsIHN5bWJvbHMuXCIpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN5bWJvbFJlZmVyZW5jZShuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYmlnaW50Jykge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZUJpZ0ludCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVHlwZSBcIiArIHR5cGVvZiB2YWx1ZSArIFwiIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYW4gYXJndW1lbnQgdG8gYSBTZXJ2ZXIgRnVuY3Rpb24uXCIpO1xuICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIGl0J3Mgbm90IGdvaW5nIHRvIGJlIHVuZGVmaW5lZCBiZWNhdXNlIHdlJ2xsIGVuY29kZSBpdC5cblxuXG4gIHZhciBqc29uID0gSlNPTi5zdHJpbmdpZnkocm9vdCwgcmVzb2x2ZVRvSlNPTik7XG5cbiAgaWYgKGZvcm1EYXRhID09PSBudWxsKSB7XG4gICAgLy8gSWYgaXQncyBhIHNpbXBsZSBkYXRhIHN0cnVjdHVyZSwgd2UganVzdCB1c2UgcGxhaW4gSlNPTi5cbiAgICByZXNvbHZlKGpzb24pO1xuICB9IGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSwgd2UgdXNlIEZvcm1EYXRhIHRvIGxldCB1cyBzdHJlYW0gaW4gdGhlIHJlc3VsdC5cbiAgICBmb3JtRGF0YS5zZXQoZm9ybUZpZWxkUHJlZml4ICsgJzAnLCBqc29uKTtcblxuICAgIGlmIChwZW5kaW5nUGFydHMgPT09IDApIHtcbiAgICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLWNhbGxdIHRoaXMgaGFzIGFscmVhZHkgYmVlbiByZWZpbmVkLlxuICAgICAgcmVzb2x2ZShmb3JtRGF0YSk7XG4gICAgfVxuICB9XG59XG52YXIgYm91bmRDYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG5cbmZ1bmN0aW9uIGVuY29kZUZvcm1EYXRhKHJlZmVyZW5jZSkge1xuICB2YXIgcmVzb2x2ZSwgcmVqZWN0OyAvLyBXZSBuZWVkIHRvIGhhdmUgYSBoYW5kbGUgb24gdGhlIHRoZW5hYmxlIHNvIHRoYXQgd2UgY2FuIHN5bmNocm9ub3VzbHkgc2V0XG4gIC8vIGl0cyBzdGF0dXMgZnJvbSBwcm9jZXNzUmVwbHksIHdoZW4gaXQgY2FuIGNvbXBsZXRlIHN5bmNocm9ub3VzbHkuXG5cbiAgdmFyIHRoZW5hYmxlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcywgcmVqKSB7XG4gICAgcmVzb2x2ZSA9IHJlcztcbiAgICByZWplY3QgPSByZWo7XG4gIH0pO1xuICBwcm9jZXNzUmVwbHkocmVmZXJlbmNlLCAnJywgZnVuY3Rpb24gKGJvZHkpIHtcbiAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YXIgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZGF0YS5hcHBlbmQoJzAnLCBib2R5KTtcbiAgICAgIGJvZHkgPSBkYXRhO1xuICAgIH1cblxuICAgIHZhciBmdWxmaWxsZWQgPSB0aGVuYWJsZTtcbiAgICBmdWxmaWxsZWQuc3RhdHVzID0gJ2Z1bGZpbGxlZCc7XG4gICAgZnVsZmlsbGVkLnZhbHVlID0gYm9keTtcbiAgICByZXNvbHZlKGJvZHkpO1xuICB9LCBmdW5jdGlvbiAoZSkge1xuICAgIHZhciByZWplY3RlZCA9IHRoZW5hYmxlO1xuICAgIHJlamVjdGVkLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgcmVqZWN0ZWQucmVhc29uID0gZTtcbiAgICByZWplY3QoZSk7XG4gIH0pO1xuICByZXR1cm4gdGhlbmFibGU7XG59XG5cbmZ1bmN0aW9uIGVuY29kZUZvcm1BY3Rpb24oaWRlbnRpZmllclByZWZpeCkge1xuICB2YXIgcmVmZXJlbmNlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh0aGlzKTtcblxuICBpZiAoIXJlZmVyZW5jZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHJpZWQgdG8gZW5jb2RlIGEgU2VydmVyIEFjdGlvbiBmcm9tIGEgZGlmZmVyZW50IGluc3RhbmNlIHRoYW4gdGhlIGVuY29kZXIgaXMgZnJvbS4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICB9XG5cbiAgdmFyIGRhdGEgPSBudWxsO1xuICB2YXIgbmFtZTtcbiAgdmFyIGJvdW5kUHJvbWlzZSA9IHJlZmVyZW5jZS5ib3VuZDtcblxuICBpZiAoYm91bmRQcm9taXNlICE9PSBudWxsKSB7XG4gICAgdmFyIHRoZW5hYmxlID0gYm91bmRDYWNoZS5nZXQocmVmZXJlbmNlKTtcblxuICAgIGlmICghdGhlbmFibGUpIHtcbiAgICAgIHRoZW5hYmxlID0gZW5jb2RlRm9ybURhdGEocmVmZXJlbmNlKTtcbiAgICAgIGJvdW5kQ2FjaGUuc2V0KHJlZmVyZW5jZSwgdGhlbmFibGUpO1xuICAgIH1cblxuICAgIGlmICh0aGVuYWJsZS5zdGF0dXMgPT09ICdyZWplY3RlZCcpIHtcbiAgICAgIHRocm93IHRoZW5hYmxlLnJlYXNvbjtcbiAgICB9IGVsc2UgaWYgKHRoZW5hYmxlLnN0YXR1cyAhPT0gJ2Z1bGZpbGxlZCcpIHtcbiAgICAgIHRocm93IHRoZW5hYmxlO1xuICAgIH1cblxuICAgIHZhciBlbmNvZGVkRm9ybURhdGEgPSB0aGVuYWJsZS52YWx1ZTsgLy8gVGhpcyBpcyBoYWNreSBidXQgd2UgbmVlZCB0aGUgaWRlbnRpZmllciBwcmVmaXggdG8gYmUgYWRkZWQgdG9cbiAgICAvLyBhbGwgZmllbGRzIGJ1dCB0aGUgc3VzcGVuc2UgY2FjaGUgd291bGQgYnJlYWsgc2luY2Ugd2UgbWlnaHQgZ2V0XG4gICAgLy8gYSBuZXcgaWRlbnRpZmllciBlYWNoIHRpbWUuIFNvIHdlIGp1c3QgYXBwZW5kIGl0IGF0IHRoZSBlbmQgaW5zdGVhZC5cblxuICAgIHZhciBwcmVmaXhlZERhdGEgPSBuZXcgRm9ybURhdGEoKTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgICBlbmNvZGVkRm9ybURhdGEuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgcHJlZml4ZWREYXRhLmFwcGVuZCgnJEFDVElPTl8nICsgaWRlbnRpZmllclByZWZpeCArICc6JyArIGtleSwgdmFsdWUpO1xuICAgIH0pO1xuICAgIGRhdGEgPSBwcmVmaXhlZERhdGE7IC8vIFdlIGVuY29kZSB0aGUgbmFtZSBvZiB0aGUgcHJlZml4IGNvbnRhaW5pbmcgdGhlIGRhdGEuXG5cbiAgICBuYW1lID0gJyRBQ1RJT05fUkVGXycgKyBpZGVudGlmaWVyUHJlZml4O1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaXMgdGhlIHNpbXBsZSBjYXNlIHNvIHdlIGNhbiBqdXN0IGVuY29kZSB0aGUgSUQuXG4gICAgbmFtZSA9ICckQUNUSU9OX0lEXycgKyByZWZlcmVuY2UuaWQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWU6IG5hbWUsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgZW5jVHlwZTogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgIGRhdGE6IGRhdGFcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNTaWduYXR1cmVFcXVhbChyZWZlcmVuY2VJZCwgbnVtYmVyT2ZCb3VuZEFyZ3MpIHtcbiAgdmFyIHJlZmVyZW5jZSA9IGtub3duU2VydmVyUmVmZXJlbmNlcy5nZXQodGhpcyk7XG5cbiAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyaWVkIHRvIGVuY29kZSBhIFNlcnZlciBBY3Rpb24gZnJvbSBhIGRpZmZlcmVudCBpbnN0YW5jZSB0aGFuIHRoZSBlbmNvZGVyIGlzIGZyb20uICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgfVxuXG4gIGlmIChyZWZlcmVuY2UuaWQgIT09IHJlZmVyZW5jZUlkKSB7XG4gICAgLy8gVGhlc2UgYXJlIGRpZmZlcmVudCBmdW5jdGlvbnMuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIE5vdyBjaGVjayBpZiB0aGUgbnVtYmVyIG9mIGJvdW5kIGFyZ3VtZW50cyBpcyB0aGUgc2FtZS5cblxuXG4gIHZhciBib3VuZFByb21pc2UgPSByZWZlcmVuY2UuYm91bmQ7XG5cbiAgaWYgKGJvdW5kUHJvbWlzZSA9PT0gbnVsbCkge1xuICAgIC8vIE5vIGJvdW5kIGFyZ3VtZW50cy5cbiAgICByZXR1cm4gbnVtYmVyT2ZCb3VuZEFyZ3MgPT09IDA7XG4gIH0gLy8gVW53cmFwIHRoZSBib3VuZCBhcmd1bWVudHMgYXJyYXkgYnkgc3VzcGVuZGluZywgaWYgbmVjZXNzYXJ5LiBBcyB3aXRoXG4gIC8vIGVuY29kZUZvcm1EYXRhLCB0aGlzIG1lYW5zIGlzU2lnbmF0dXJlRXF1YWwgY2FuIG9ubHkgYmUgY2FsbGVkIHdoaWxlIFJlYWN0XG4gIC8vIGlzIHJlbmRlcmluZy5cblxuXG4gIHN3aXRjaCAoYm91bmRQcm9taXNlLnN0YXR1cykge1xuICAgIGNhc2UgJ2Z1bGZpbGxlZCc6XG4gICAgICB7XG4gICAgICAgIHZhciBib3VuZEFyZ3MgPSBib3VuZFByb21pc2UudmFsdWU7XG4gICAgICAgIHJldHVybiBib3VuZEFyZ3MubGVuZ3RoID09PSBudW1iZXJPZkJvdW5kQXJncztcbiAgICAgIH1cblxuICAgIGNhc2UgJ3BlbmRpbmcnOlxuICAgICAge1xuICAgICAgICB0aHJvdyBib3VuZFByb21pc2U7XG4gICAgICB9XG5cbiAgICBjYXNlICdyZWplY3RlZCc6XG4gICAgICB7XG4gICAgICAgIHRocm93IGJvdW5kUHJvbWlzZS5yZWFzb247XG4gICAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICBpZiAodHlwZW9mIGJvdW5kUHJvbWlzZS5zdGF0dXMgPT09ICdzdHJpbmcnKSA7IGVsc2Uge1xuICAgICAgICAgIHZhciBwZW5kaW5nVGhlbmFibGUgPSBib3VuZFByb21pc2U7XG4gICAgICAgICAgcGVuZGluZ1RoZW5hYmxlLnN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICAgICAgICBwZW5kaW5nVGhlbmFibGUudGhlbihmdW5jdGlvbiAoYm91bmRBcmdzKSB7XG4gICAgICAgICAgICB2YXIgZnVsZmlsbGVkVGhlbmFibGUgPSBib3VuZFByb21pc2U7XG4gICAgICAgICAgICBmdWxmaWxsZWRUaGVuYWJsZS5zdGF0dXMgPSAnZnVsZmlsbGVkJztcbiAgICAgICAgICAgIGZ1bGZpbGxlZFRoZW5hYmxlLnZhbHVlID0gYm91bmRBcmdzO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgdmFyIHJlamVjdGVkVGhlbmFibGUgPSBib3VuZFByb21pc2U7XG4gICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgYm91bmRQcm9taXNlO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlKHByb3h5LCByZWZlcmVuY2UpIHtcbiAgLy8gRXhwb3NlIGVuY29kZXIgZm9yIHVzZSBieSBTU1IsIGFzIHdlbGwgYXMgYSBzcGVjaWFsIGJpbmQgdGhhdCBjYW4gYmUgdXNlZCB0b1xuICAvLyBrZWVwIHNlcnZlciBjYXBhYmlsaXRpZXMuXG4gIHtcbiAgICAvLyBPbmx5IGV4cG9zZSB0aGlzIGluIGJ1aWxkcyB0aGF0IHdvdWxkIGFjdHVhbGx5IHVzZSBpdC4gTm90IG5lZWRlZCBvbiB0aGUgY2xpZW50LlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHByb3h5LCB7XG4gICAgICAkJEZPUk1fQUNUSU9OOiB7XG4gICAgICAgIHZhbHVlOiBlbmNvZGVGb3JtQWN0aW9uXG4gICAgICB9LFxuICAgICAgJCRJU19TSUdOQVRVUkVfRVFVQUw6IHtcbiAgICAgICAgdmFsdWU6IGlzU2lnbmF0dXJlRXF1YWxcbiAgICAgIH0sXG4gICAgICBiaW5kOiB7XG4gICAgICAgIHZhbHVlOiBiaW5kXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBrbm93blNlcnZlclJlZmVyZW5jZXMuc2V0KHByb3h5LCByZWZlcmVuY2UpO1xufSAvLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG5cbnZhciBGdW5jdGlvbkJpbmQgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZDsgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuXG52YXIgQXJyYXlTbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcblxuZnVuY3Rpb24gYmluZCgpIHtcbiAgLy8gJEZsb3dGaXhNZVt1bnN1cHBvcnRlZC1zeW50YXhdXG4gIHZhciBuZXdGbiA9IEZ1bmN0aW9uQmluZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB2YXIgcmVmZXJlbmNlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh0aGlzKTtcblxuICBpZiAocmVmZXJlbmNlKSB7XG4gICAgdmFyIGFyZ3MgPSBBcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICB2YXIgYm91bmRQcm9taXNlID0gbnVsbDtcblxuICAgIGlmIChyZWZlcmVuY2UuYm91bmQgIT09IG51bGwpIHtcbiAgICAgIGJvdW5kUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShyZWZlcmVuY2UuYm91bmQpLnRoZW4oZnVuY3Rpb24gKGJvdW5kQXJncykge1xuICAgICAgICByZXR1cm4gYm91bmRBcmdzLmNvbmNhdChhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBib3VuZFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoYXJncyk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2UobmV3Rm4sIHtcbiAgICAgIGlkOiByZWZlcmVuY2UuaWQsXG4gICAgICBib3VuZDogYm91bmRQcm9taXNlXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbmV3Rm47XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclJlZmVyZW5jZSQxKGlkLCBjYWxsU2VydmVyKSB7XG4gIHZhciBwcm94eSA9IGZ1bmN0aW9uICgpIHtcbiAgICAvLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG4gICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgIHJldHVybiBjYWxsU2VydmVyKGlkLCBhcmdzKTtcbiAgfTtcblxuICByZWdpc3RlclNlcnZlclJlZmVyZW5jZShwcm94eSwge1xuICAgIGlkOiBpZCxcbiAgICBib3VuZDogbnVsbFxuICB9KTtcbiAgcmV0dXJuIHByb3h5O1xufVxuXG52YXIgQ29udGV4dFJlZ2lzdHJ5ID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuQ29udGV4dFJlZ2lzdHJ5O1xuZnVuY3Rpb24gZ2V0T3JDcmVhdGVTZXJ2ZXJDb250ZXh0KGdsb2JhbE5hbWUpIHtcbiAgaWYgKCFDb250ZXh0UmVnaXN0cnlbZ2xvYmFsTmFtZV0pIHtcbiAgICB2YXIgY29udGV4dCA9IHtcbiAgICAgICQkdHlwZW9mOiBSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFLFxuICAgICAgLy8gQXMgYSB3b3JrYXJvdW5kIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29uY3VycmVudCByZW5kZXJlcnMsIHdlIGNhdGVnb3JpemVcbiAgICAgIC8vIHNvbWUgcmVuZGVyZXJzIGFzIHByaW1hcnkgYW5kIG90aGVycyBhcyBzZWNvbmRhcnkuIFdlIG9ubHkgZXhwZWN0XG4gICAgICAvLyB0aGVyZSB0byBiZSB0d28gY29uY3VycmVudCByZW5kZXJlcnMgYXQgbW9zdDogUmVhY3QgTmF0aXZlIChwcmltYXJ5KSBhbmRcbiAgICAgIC8vIEZhYnJpYyAoc2Vjb25kYXJ5KTsgUmVhY3QgRE9NIChwcmltYXJ5KSBhbmQgUmVhY3QgQVJUIChzZWNvbmRhcnkpLlxuICAgICAgLy8gU2Vjb25kYXJ5IHJlbmRlcmVycyBzdG9yZSB0aGVpciBjb250ZXh0IHZhbHVlcyBvbiBzZXBhcmF0ZSBmaWVsZHMuXG4gICAgICBfY3VycmVudFZhbHVlOiBSRUFDVF9TRVJWRVJfQ09OVEVYVF9ERUZBVUxUX1ZBTFVFX05PVF9MT0FERUQsXG4gICAgICBfY3VycmVudFZhbHVlMjogUkVBQ1RfU0VSVkVSX0NPTlRFWFRfREVGQVVMVF9WQUxVRV9OT1RfTE9BREVELFxuICAgICAgX2RlZmF1bHRWYWx1ZTogUkVBQ1RfU0VSVkVSX0NPTlRFWFRfREVGQVVMVF9WQUxVRV9OT1RfTE9BREVELFxuICAgICAgLy8gVXNlZCB0byB0cmFjayBob3cgbWFueSBjb25jdXJyZW50IHJlbmRlcmVycyB0aGlzIGNvbnRleHQgY3VycmVudGx5XG4gICAgICAvLyBzdXBwb3J0cyB3aXRoaW4gaW4gYSBzaW5nbGUgcmVuZGVyZXIuIFN1Y2ggYXMgcGFyYWxsZWwgc2VydmVyIHJlbmRlcmluZy5cbiAgICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAgIC8vIFRoZXNlIGFyZSBjaXJjdWxhclxuICAgICAgUHJvdmlkZXI6IG51bGwsXG4gICAgICBDb25zdW1lcjogbnVsbCxcbiAgICAgIF9nbG9iYWxOYW1lOiBnbG9iYWxOYW1lXG4gICAgfTtcbiAgICBjb250ZXh0LlByb3ZpZGVyID0ge1xuICAgICAgJCR0eXBlb2Y6IFJFQUNUX1BST1ZJREVSX1RZUEUsXG4gICAgICBfY29udGV4dDogY29udGV4dFxuICAgIH07XG5cbiAgICB7XG4gICAgICB2YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyO1xuICAgICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyID0gbnVsbDtcbiAgICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlcjIgPSBudWxsO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29udGV4dCwge1xuICAgICAgICBDb25zdW1lcjoge1xuICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXIpIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ0NvbnN1bWVyIHBhdHRlcm4gaXMgbm90IHN1cHBvcnRlZCBieSBSZWFjdFNlcnZlckNvbnRleHQnKTtcblxuICAgICAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIENvbnRleHRSZWdpc3RyeVtnbG9iYWxOYW1lXSA9IGNvbnRleHQ7XG4gIH1cblxuICByZXR1cm4gQ29udGV4dFJlZ2lzdHJ5W2dsb2JhbE5hbWVdO1xufVxuXG52YXIgUk9XX0lEID0gMDtcbnZhciBST1dfVEFHID0gMTtcbnZhciBST1dfTEVOR1RIID0gMjtcbnZhciBST1dfQ0hVTktfQllfTkVXTElORSA9IDM7XG52YXIgUk9XX0NIVU5LX0JZX0xFTkdUSCA9IDQ7XG52YXIgUEVORElORyA9ICdwZW5kaW5nJztcbnZhciBCTE9DS0VEID0gJ2Jsb2NrZWQnO1xudmFyIENZQ0xJQyA9ICdjeWNsaWMnO1xudmFyIFJFU09MVkVEX01PREVMID0gJ3Jlc29sdmVkX21vZGVsJztcbnZhciBSRVNPTFZFRF9NT0RVTEUgPSAncmVzb2x2ZWRfbW9kdWxlJztcbnZhciBJTklUSUFMSVpFRCA9ICdmdWxmaWxsZWQnO1xudmFyIEVSUk9SRUQgPSAncmVqZWN0ZWQnOyAvLyAkRmxvd0ZpeE1lW21pc3NpbmctdGhpcy1hbm5vdF1cblxuZnVuY3Rpb24gQ2h1bmsoc3RhdHVzLCB2YWx1ZSwgcmVhc29uLCByZXNwb25zZSkge1xuICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB0aGlzLnJlYXNvbiA9IHJlYXNvbjtcbiAgdGhpcy5fcmVzcG9uc2UgPSByZXNwb25zZTtcbn0gLy8gV2Ugc3ViY2xhc3MgUHJvbWlzZS5wcm90b3R5cGUgc28gdGhhdCB3ZSBnZXQgb3RoZXIgbWV0aG9kcyBsaWtlIC5jYXRjaFxuXG5cbkNodW5rLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoUHJvbWlzZS5wcm90b3R5cGUpOyAvLyBUT0RPOiBUaGlzIGRvZXNuJ3QgcmV0dXJuIGEgbmV3IFByb21pc2UgY2hhaW4gdW5saWtlIHRoZSByZWFsIC50aGVuXG5cbkNodW5rLnByb3RvdHlwZS50aGVuID0gZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICB2YXIgY2h1bmsgPSB0aGlzOyAvLyBJZiB3ZSBoYXZlIHJlc29sdmVkIGNvbnRlbnQsIHdlIHRyeSB0byBpbml0aWFsaXplIGl0IGZpcnN0IHdoaWNoXG4gIC8vIG1pZ2h0IHB1dCB1cyBiYWNrIGludG8gb25lIG9mIHRoZSBvdGhlciBzdGF0ZXMuXG5cbiAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICBjYXNlIFJFU09MVkVEX01PREVMOlxuICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFJFU09MVkVEX01PRFVMRTpcbiAgICAgIGluaXRpYWxpemVNb2R1bGVDaHVuayhjaHVuayk7XG4gICAgICBicmVhaztcbiAgfSAvLyBUaGUgc3RhdHVzIG1pZ2h0IGhhdmUgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi5cblxuXG4gIHN3aXRjaCAoY2h1bmsuc3RhdHVzKSB7XG4gICAgY2FzZSBJTklUSUFMSVpFRDpcbiAgICAgIHJlc29sdmUoY2h1bmsudmFsdWUpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFBFTkRJTkc6XG4gICAgY2FzZSBCTE9DS0VEOlxuICAgIGNhc2UgQ1lDTElDOlxuICAgICAgaWYgKHJlc29sdmUpIHtcbiAgICAgICAgaWYgKGNodW5rLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgY2h1bmsudmFsdWUgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNodW5rLnZhbHVlLnB1c2gocmVzb2x2ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZWplY3QpIHtcbiAgICAgICAgaWYgKGNodW5rLnJlYXNvbiA9PT0gbnVsbCkge1xuICAgICAgICAgIGNodW5rLnJlYXNvbiA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY2h1bmsucmVhc29uLnB1c2gocmVqZWN0KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmVqZWN0KGNodW5rLnJlYXNvbik7XG4gICAgICBicmVhaztcbiAgfVxufTtcblxuZnVuY3Rpb24gcmVhZENodW5rKGNodW5rKSB7XG4gIC8vIElmIHdlIGhhdmUgcmVzb2x2ZWQgY29udGVudCwgd2UgdHJ5IHRvIGluaXRpYWxpemUgaXQgZmlyc3Qgd2hpY2hcbiAgLy8gbWlnaHQgcHV0IHVzIGJhY2sgaW50byBvbmUgb2YgdGhlIG90aGVyIHN0YXRlcy5cbiAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICBjYXNlIFJFU09MVkVEX01PREVMOlxuICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFJFU09MVkVEX01PRFVMRTpcbiAgICAgIGluaXRpYWxpemVNb2R1bGVDaHVuayhjaHVuayk7XG4gICAgICBicmVhaztcbiAgfSAvLyBUaGUgc3RhdHVzIG1pZ2h0IGhhdmUgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi5cblxuXG4gIHN3aXRjaCAoY2h1bmsuc3RhdHVzKSB7XG4gICAgY2FzZSBJTklUSUFMSVpFRDpcbiAgICAgIHJldHVybiBjaHVuay52YWx1ZTtcblxuICAgIGNhc2UgUEVORElORzpcbiAgICBjYXNlIEJMT0NLRUQ6XG4gICAgY2FzZSBDWUNMSUM6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICAgICAgdGhyb3cgY2h1bms7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgY2h1bmsucmVhc29uO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFJvb3QocmVzcG9uc2UpIHtcbiAgdmFyIGNodW5rID0gZ2V0Q2h1bmsocmVzcG9uc2UsIDApO1xuICByZXR1cm4gY2h1bms7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBlbmRpbmdDaHVuayhyZXNwb25zZSkge1xuICAvLyAkRmxvd0ZpeE1lW2ludmFsaWQtY29uc3RydWN0b3JdIEZsb3cgZG9lc24ndCBzdXBwb3J0IGZ1bmN0aW9ucyBhcyBjb25zdHJ1Y3RvcnNcbiAgcmV0dXJuIG5ldyBDaHVuayhQRU5ESU5HLCBudWxsLCBudWxsLCByZXNwb25zZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJsb2NrZWRDaHVuayhyZXNwb25zZSkge1xuICAvLyAkRmxvd0ZpeE1lW2ludmFsaWQtY29uc3RydWN0b3JdIEZsb3cgZG9lc24ndCBzdXBwb3J0IGZ1bmN0aW9ucyBhcyBjb25zdHJ1Y3RvcnNcbiAgcmV0dXJuIG5ldyBDaHVuayhCTE9DS0VELCBudWxsLCBudWxsLCByZXNwb25zZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yQ2h1bmsocmVzcG9uc2UsIGVycm9yKSB7XG4gIC8vICRGbG93Rml4TWVbaW52YWxpZC1jb25zdHJ1Y3Rvcl0gRmxvdyBkb2Vzbid0IHN1cHBvcnQgZnVuY3Rpb25zIGFzIGNvbnN0cnVjdG9yc1xuICByZXR1cm4gbmV3IENodW5rKEVSUk9SRUQsIG51bGwsIGVycm9yLCByZXNwb25zZSk7XG59XG5cbmZ1bmN0aW9uIHdha2VDaHVuayhsaXN0ZW5lcnMsIHZhbHVlKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxpc3RlbmVyID0gbGlzdGVuZXJzW2ldO1xuICAgIGxpc3RlbmVyKHZhbHVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YWtlQ2h1bmtJZkluaXRpYWxpemVkKGNodW5rLCByZXNvbHZlTGlzdGVuZXJzLCByZWplY3RMaXN0ZW5lcnMpIHtcbiAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICBjYXNlIElOSVRJQUxJWkVEOlxuICAgICAgd2FrZUNodW5rKHJlc29sdmVMaXN0ZW5lcnMsIGNodW5rLnZhbHVlKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBQRU5ESU5HOlxuICAgIGNhc2UgQkxPQ0tFRDpcbiAgICBjYXNlIENZQ0xJQzpcbiAgICAgIGNodW5rLnZhbHVlID0gcmVzb2x2ZUxpc3RlbmVycztcbiAgICAgIGNodW5rLnJlYXNvbiA9IHJlamVjdExpc3RlbmVycztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBFUlJPUkVEOlxuICAgICAgaWYgKHJlamVjdExpc3RlbmVycykge1xuICAgICAgICB3YWtlQ2h1bmsocmVqZWN0TGlzdGVuZXJzLCBjaHVuay5yZWFzb24pO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmlnZ2VyRXJyb3JPbkNodW5rKGNodW5rLCBlcnJvcikge1xuICBpZiAoY2h1bmsuc3RhdHVzICE9PSBQRU5ESU5HICYmIGNodW5rLnN0YXR1cyAhPT0gQkxPQ0tFRCkge1xuICAgIC8vIFdlIGFscmVhZHkgcmVzb2x2ZWQuIFdlIGRpZG4ndCBleHBlY3QgdG8gc2VlIHRoaXMuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGxpc3RlbmVycyA9IGNodW5rLnJlYXNvbjtcbiAgdmFyIGVycm9yZWRDaHVuayA9IGNodW5rO1xuICBlcnJvcmVkQ2h1bmsuc3RhdHVzID0gRVJST1JFRDtcbiAgZXJyb3JlZENodW5rLnJlYXNvbiA9IGVycm9yO1xuXG4gIGlmIChsaXN0ZW5lcnMgIT09IG51bGwpIHtcbiAgICB3YWtlQ2h1bmsobGlzdGVuZXJzLCBlcnJvcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCB2YWx1ZSkge1xuICAvLyAkRmxvd0ZpeE1lW2ludmFsaWQtY29uc3RydWN0b3JdIEZsb3cgZG9lc24ndCBzdXBwb3J0IGZ1bmN0aW9ucyBhcyBjb25zdHJ1Y3RvcnNcbiAgcmV0dXJuIG5ldyBDaHVuayhSRVNPTFZFRF9NT0RFTCwgdmFsdWUsIG51bGwsIHJlc3BvbnNlKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUmVzb2x2ZWRNb2R1bGVDaHVuayhyZXNwb25zZSwgdmFsdWUpIHtcbiAgLy8gJEZsb3dGaXhNZVtpbnZhbGlkLWNvbnN0cnVjdG9yXSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBmdW5jdGlvbnMgYXMgY29uc3RydWN0b3JzXG4gIHJldHVybiBuZXcgQ2h1bmsoUkVTT0xWRURfTU9EVUxFLCB2YWx1ZSwgbnVsbCwgcmVzcG9uc2UpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVJbml0aWFsaXplZFRleHRDaHVuayhyZXNwb25zZSwgdmFsdWUpIHtcbiAgLy8gJEZsb3dGaXhNZVtpbnZhbGlkLWNvbnN0cnVjdG9yXSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBmdW5jdGlvbnMgYXMgY29uc3RydWN0b3JzXG4gIHJldHVybiBuZXcgQ2h1bmsoSU5JVElBTElaRUQsIHZhbHVlLCBudWxsLCByZXNwb25zZSk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2RlbENodW5rKGNodW5rLCB2YWx1ZSkge1xuICBpZiAoY2h1bmsuc3RhdHVzICE9PSBQRU5ESU5HKSB7XG4gICAgLy8gV2UgYWxyZWFkeSByZXNvbHZlZC4gV2UgZGlkbid0IGV4cGVjdCB0byBzZWUgdGhpcy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcmVzb2x2ZUxpc3RlbmVycyA9IGNodW5rLnZhbHVlO1xuICB2YXIgcmVqZWN0TGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICB2YXIgcmVzb2x2ZWRDaHVuayA9IGNodW5rO1xuICByZXNvbHZlZENodW5rLnN0YXR1cyA9IFJFU09MVkVEX01PREVMO1xuICByZXNvbHZlZENodW5rLnZhbHVlID0gdmFsdWU7XG5cbiAgaWYgKHJlc29sdmVMaXN0ZW5lcnMgIT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGlzIHVuZm9ydHVuYXRlIHRoYXQgd2UncmUgcmVhZGluZyB0aGlzIGVhZ2VybHkgaWZcbiAgICAvLyB3ZSBhbHJlYWR5IGhhdmUgbGlzdGVuZXJzIGF0dGFjaGVkIHNpbmNlIHRoZXkgbWlnaHQgbm9cbiAgICAvLyBsb25nZXIgYmUgcmVuZGVyZWQgb3IgbWlnaHQgbm90IGJlIHRoZSBoaWdoZXN0IHByaS5cbiAgICBpbml0aWFsaXplTW9kZWxDaHVuayhyZXNvbHZlZENodW5rKTsgLy8gVGhlIHN0YXR1cyBtaWdodCBoYXZlIGNoYW5nZWQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uXG5cbiAgICB3YWtlQ2h1bmtJZkluaXRpYWxpemVkKGNodW5rLCByZXNvbHZlTGlzdGVuZXJzLCByZWplY3RMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2R1bGVDaHVuayhjaHVuaywgdmFsdWUpIHtcbiAgaWYgKGNodW5rLnN0YXR1cyAhPT0gUEVORElORyAmJiBjaHVuay5zdGF0dXMgIT09IEJMT0NLRUQpIHtcbiAgICAvLyBXZSBhbHJlYWR5IHJlc29sdmVkLiBXZSBkaWRuJ3QgZXhwZWN0IHRvIHNlZSB0aGlzLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciByZXNvbHZlTGlzdGVuZXJzID0gY2h1bmsudmFsdWU7XG4gIHZhciByZWplY3RMaXN0ZW5lcnMgPSBjaHVuay5yZWFzb247XG4gIHZhciByZXNvbHZlZENodW5rID0gY2h1bms7XG4gIHJlc29sdmVkQ2h1bmsuc3RhdHVzID0gUkVTT0xWRURfTU9EVUxFO1xuICByZXNvbHZlZENodW5rLnZhbHVlID0gdmFsdWU7XG5cbiAgaWYgKHJlc29sdmVMaXN0ZW5lcnMgIT09IG51bGwpIHtcbiAgICBpbml0aWFsaXplTW9kdWxlQ2h1bmsocmVzb2x2ZWRDaHVuayk7XG4gICAgd2FrZUNodW5rSWZJbml0aWFsaXplZChjaHVuaywgcmVzb2x2ZUxpc3RlbmVycywgcmVqZWN0TGlzdGVuZXJzKTtcbiAgfVxufVxuXG52YXIgaW5pdGlhbGl6aW5nQ2h1bmsgPSBudWxsO1xudmFyIGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsID0gbnVsbDtcblxuZnVuY3Rpb24gaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspIHtcbiAgdmFyIHByZXZDaHVuayA9IGluaXRpYWxpemluZ0NodW5rO1xuICB2YXIgcHJldkJsb2NrZWQgPSBpbml0aWFsaXppbmdDaHVua0Jsb2NrZWRNb2RlbDtcbiAgaW5pdGlhbGl6aW5nQ2h1bmsgPSBjaHVuaztcbiAgaW5pdGlhbGl6aW5nQ2h1bmtCbG9ja2VkTW9kZWwgPSBudWxsO1xuICB2YXIgcmVzb2x2ZWRNb2RlbCA9IGNodW5rLnZhbHVlOyAvLyBXZSBnbyB0byB0aGUgQ1lDTElDIHN0YXRlIHVudGlsIHdlJ3ZlIGZ1bGx5IHJlc29sdmVkIHRoaXMuXG4gIC8vIFdlIGRvIHRoaXMgYmVmb3JlIHBhcnNpbmcgaW4gY2FzZSB3ZSB0cnkgdG8gaW5pdGlhbGl6ZSB0aGUgc2FtZSBjaHVua1xuICAvLyB3aGlsZSBwYXJzaW5nIHRoZSBtb2RlbC4gU3VjaCBhcyBpbiBhIGN5Y2xpYyByZWZlcmVuY2UuXG5cbiAgdmFyIGN5Y2xpY0NodW5rID0gY2h1bms7XG4gIGN5Y2xpY0NodW5rLnN0YXR1cyA9IENZQ0xJQztcbiAgY3ljbGljQ2h1bmsudmFsdWUgPSBudWxsO1xuICBjeWNsaWNDaHVuay5yZWFzb24gPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgdmFyIHZhbHVlID0gcGFyc2VNb2RlbChjaHVuay5fcmVzcG9uc2UsIHJlc29sdmVkTW9kZWwpO1xuXG4gICAgaWYgKGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsICE9PSBudWxsICYmIGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsLmRlcHMgPiAwKSB7XG4gICAgICBpbml0aWFsaXppbmdDaHVua0Jsb2NrZWRNb2RlbC52YWx1ZSA9IHZhbHVlOyAvLyBXZSBkaXNjb3ZlcmVkIG5ldyBkZXBlbmRlbmNpZXMgb24gbW9kdWxlcyB0aGF0IGFyZSBub3QgeWV0IHJlc29sdmVkLlxuICAgICAgLy8gV2UgaGF2ZSB0byBnbyB0aGUgQkxPQ0tFRCBzdGF0ZSB1bnRpbCB0aGV5J3JlIHJlc29sdmVkLlxuXG4gICAgICB2YXIgYmxvY2tlZENodW5rID0gY2h1bms7XG4gICAgICBibG9ja2VkQ2h1bmsuc3RhdHVzID0gQkxPQ0tFRDtcbiAgICAgIGJsb2NrZWRDaHVuay52YWx1ZSA9IG51bGw7XG4gICAgICBibG9ja2VkQ2h1bmsucmVhc29uID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJlc29sdmVMaXN0ZW5lcnMgPSBjeWNsaWNDaHVuay52YWx1ZTtcbiAgICAgIHZhciBpbml0aWFsaXplZENodW5rID0gY2h1bms7XG4gICAgICBpbml0aWFsaXplZENodW5rLnN0YXR1cyA9IElOSVRJQUxJWkVEO1xuICAgICAgaW5pdGlhbGl6ZWRDaHVuay52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICBpZiAocmVzb2x2ZUxpc3RlbmVycyAhPT0gbnVsbCkge1xuICAgICAgICB3YWtlQ2h1bmsocmVzb2x2ZUxpc3RlbmVycywgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB2YXIgZXJyb3JlZENodW5rID0gY2h1bms7XG4gICAgZXJyb3JlZENodW5rLnN0YXR1cyA9IEVSUk9SRUQ7XG4gICAgZXJyb3JlZENodW5rLnJlYXNvbiA9IGVycm9yO1xuICB9IGZpbmFsbHkge1xuICAgIGluaXRpYWxpemluZ0NodW5rID0gcHJldkNodW5rO1xuICAgIGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsID0gcHJldkJsb2NrZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZU1vZHVsZUNodW5rKGNodW5rKSB7XG4gIHRyeSB7XG4gICAgdmFyIHZhbHVlID0gcmVxdWlyZU1vZHVsZShjaHVuay52YWx1ZSk7XG4gICAgdmFyIGluaXRpYWxpemVkQ2h1bmsgPSBjaHVuaztcbiAgICBpbml0aWFsaXplZENodW5rLnN0YXR1cyA9IElOSVRJQUxJWkVEO1xuICAgIGluaXRpYWxpemVkQ2h1bmsudmFsdWUgPSB2YWx1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB2YXIgZXJyb3JlZENodW5rID0gY2h1bms7XG4gICAgZXJyb3JlZENodW5rLnN0YXR1cyA9IEVSUk9SRUQ7XG4gICAgZXJyb3JlZENodW5rLnJlYXNvbiA9IGVycm9yO1xuICB9XG59IC8vIFJlcG9ydCB0aGF0IGFueSBtaXNzaW5nIGNodW5rcyBpbiB0aGUgbW9kZWwgaXMgbm93IGdvaW5nIHRvIHRocm93IHRoaXNcbi8vIGVycm9yIHVwb24gcmVhZC4gQWxzbyBub3RpZnkgYW55IHBlbmRpbmcgcHJvbWlzZXMuXG5cblxuZnVuY3Rpb24gcmVwb3J0R2xvYmFsRXJyb3IocmVzcG9uc2UsIGVycm9yKSB7XG4gIHJlc3BvbnNlLl9jaHVua3MuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmspIHtcbiAgICAvLyBJZiB0aGlzIGNodW5rIHdhcyBhbHJlYWR5IHJlc29sdmVkIG9yIGVycm9yZWQsIGl0IHdvbid0XG4gICAgLy8gdHJpZ2dlciBhbiBlcnJvciBidXQgaWYgaXQgd2Fzbid0IHRoZW4gd2UgbmVlZCB0b1xuICAgIC8vIGJlY2F1c2Ugd2Ugd29uJ3QgYmUgZ2V0dGluZyBhbnkgbmV3IGRhdGEgdG8gcmVzb2x2ZSBpdC5cbiAgICBpZiAoY2h1bmsuc3RhdHVzID09PSBQRU5ESU5HKSB7XG4gICAgICB0cmlnZ2VyRXJyb3JPbkNodW5rKGNodW5rLCBlcnJvcik7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0eXBlLCBrZXksIHByb3BzKSB7XG4gIHZhciBlbGVtZW50ID0ge1xuICAgIC8vIFRoaXMgdGFnIGFsbG93cyB1cyB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIGFzIGEgUmVhY3QgRWxlbWVudFxuICAgICQkdHlwZW9mOiBSRUFDVF9FTEVNRU5UX1RZUEUsXG4gICAgLy8gQnVpbHQtaW4gcHJvcGVydGllcyB0aGF0IGJlbG9uZyBvbiB0aGUgZWxlbWVudFxuICAgIHR5cGU6IHR5cGUsXG4gICAga2V5OiBrZXksXG4gICAgcmVmOiBudWxsLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxuICAgIF9vd25lcjogbnVsbFxuICB9O1xuXG4gIHtcbiAgICAvLyBXZSBkb24ndCByZWFsbHkgbmVlZCB0byBhZGQgYW55IG9mIHRoZXNlIGJ1dCBrZWVwaW5nIHRoZW0gZm9yIGdvb2QgbWVhc3VyZS5cbiAgICAvLyBVbmZvcnR1bmF0ZWx5LCBfc3RvcmUgaXMgZW51bWVyYWJsZSBpbiBqZXN0IG1hdGNoZXJzIHNvIGZvciBlcXVhbGl0eSB0b1xuICAgIC8vIHdvcmssIEkgbmVlZCB0byBrZWVwIGl0IG9yIG1ha2UgX3N0b3JlIG5vbi1lbnVtZXJhYmxlIGluIHRoZSBvdGhlciBmaWxlLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQuX3N0b3JlLCAndmFsaWRhdGVkJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogdHJ1ZSAvLyBUaGlzIGVsZW1lbnQgaGFzIGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgb24gdGhlIHNlcnZlci5cblxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogbnVsbFxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGF6eUNodW5rV3JhcHBlcihjaHVuaykge1xuICB2YXIgbGF6eVR5cGUgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0xBWllfVFlQRSxcbiAgICBfcGF5bG9hZDogY2h1bmssXG4gICAgX2luaXQ6IHJlYWRDaHVua1xuICB9O1xuICByZXR1cm4gbGF6eVR5cGU7XG59XG5cbmZ1bmN0aW9uIGdldENodW5rKHJlc3BvbnNlLCBpZCkge1xuICB2YXIgY2h1bmtzID0gcmVzcG9uc2UuX2NodW5rcztcbiAgdmFyIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG5cbiAgaWYgKCFjaHVuaykge1xuICAgIGNodW5rID0gY3JlYXRlUGVuZGluZ0NodW5rKHJlc3BvbnNlKTtcbiAgICBjaHVua3Muc2V0KGlkLCBjaHVuayk7XG4gIH1cblxuICByZXR1cm4gY2h1bms7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU1vZGVsUmVzb2x2ZXIoY2h1bmssIHBhcmVudE9iamVjdCwga2V5LCBjeWNsaWMpIHtcbiAgdmFyIGJsb2NrZWQ7XG5cbiAgaWYgKGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsKSB7XG4gICAgYmxvY2tlZCA9IGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsO1xuXG4gICAgaWYgKCFjeWNsaWMpIHtcbiAgICAgIGJsb2NrZWQuZGVwcysrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBibG9ja2VkID0gaW5pdGlhbGl6aW5nQ2h1bmtCbG9ja2VkTW9kZWwgPSB7XG4gICAgICBkZXBzOiBjeWNsaWMgPyAwIDogMSxcbiAgICAgIHZhbHVlOiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBwYXJlbnRPYmplY3Rba2V5XSA9IHZhbHVlO1xuICAgIGJsb2NrZWQuZGVwcy0tO1xuXG4gICAgaWYgKGJsb2NrZWQuZGVwcyA9PT0gMCkge1xuICAgICAgaWYgKGNodW5rLnN0YXR1cyAhPT0gQkxPQ0tFRCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciByZXNvbHZlTGlzdGVuZXJzID0gY2h1bmsudmFsdWU7XG4gICAgICB2YXIgaW5pdGlhbGl6ZWRDaHVuayA9IGNodW5rO1xuICAgICAgaW5pdGlhbGl6ZWRDaHVuay5zdGF0dXMgPSBJTklUSUFMSVpFRDtcbiAgICAgIGluaXRpYWxpemVkQ2h1bmsudmFsdWUgPSBibG9ja2VkLnZhbHVlO1xuXG4gICAgICBpZiAocmVzb2x2ZUxpc3RlbmVycyAhPT0gbnVsbCkge1xuICAgICAgICB3YWtlQ2h1bmsocmVzb2x2ZUxpc3RlbmVycywgYmxvY2tlZC52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVNb2RlbFJlamVjdChjaHVuaykge1xuICByZXR1cm4gZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgcmV0dXJuIHRyaWdnZXJFcnJvck9uQ2h1bmsoY2h1bmssIGVycm9yKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2VydmVyUmVmZXJlbmNlUHJveHkocmVzcG9uc2UsIG1ldGFEYXRhKSB7XG4gIHZhciBjYWxsU2VydmVyID0gcmVzcG9uc2UuX2NhbGxTZXJ2ZXI7XG5cbiAgdmFyIHByb3h5ID0gZnVuY3Rpb24gKCkge1xuICAgIC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbiAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgdmFyIHAgPSBtZXRhRGF0YS5ib3VuZDtcblxuICAgIGlmICghcCkge1xuICAgICAgcmV0dXJuIGNhbGxTZXJ2ZXIobWV0YURhdGEuaWQsIGFyZ3MpO1xuICAgIH1cblxuICAgIGlmIChwLnN0YXR1cyA9PT0gSU5JVElBTElaRUQpIHtcbiAgICAgIHZhciBib3VuZCA9IHAudmFsdWU7XG4gICAgICByZXR1cm4gY2FsbFNlcnZlcihtZXRhRGF0YS5pZCwgYm91bmQuY29uY2F0KGFyZ3MpKTtcbiAgICB9IC8vIFNpbmNlIHRoaXMgaXMgYSBmYWtlIFByb21pc2Ugd2hvc2UgLnRoZW4gZG9lc24ndCBjaGFpbiwgd2UgaGF2ZSB0byB3cmFwIGl0LlxuICAgIC8vIFRPRE86IFJlbW92ZSB0aGUgd3JhcHBlciBvbmNlIHRoYXQncyBmaXhlZC5cblxuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwKS50aGVuKGZ1bmN0aW9uIChib3VuZCkge1xuICAgICAgcmV0dXJuIGNhbGxTZXJ2ZXIobWV0YURhdGEuaWQsIGJvdW5kLmNvbmNhdChhcmdzKSk7XG4gICAgfSk7XG4gIH07XG5cbiAgcmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2UocHJveHksIG1ldGFEYXRhKTtcbiAgcmV0dXJuIHByb3h5O1xufVxuXG5mdW5jdGlvbiBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCBpZCkge1xuICB2YXIgY2h1bmsgPSBnZXRDaHVuayhyZXNwb25zZSwgaWQpO1xuXG4gIHN3aXRjaCAoY2h1bmsuc3RhdHVzKSB7XG4gICAgY2FzZSBSRVNPTFZFRF9NT0RFTDpcbiAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKTtcbiAgICAgIGJyZWFrO1xuICB9IC8vIFRoZSBzdGF0dXMgbWlnaHQgaGF2ZSBjaGFuZ2VkIGFmdGVyIGluaXRpYWxpemF0aW9uLlxuXG5cbiAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICBjYXNlIElOSVRJQUxJWkVEOlxuICAgICAge1xuICAgICAgICByZXR1cm4gY2h1bmsudmFsdWU7XG4gICAgICB9XG4gICAgLy8gV2UgYWx3YXlzIGVuY29kZSBpdCBmaXJzdCBpbiB0aGUgc3RyZWFtIHNvIGl0IHdvbid0IGJlIHBlbmRpbmcuXG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgY2h1bmsucmVhc29uO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlTW9kZWxTdHJpbmcocmVzcG9uc2UsIHBhcmVudE9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAodmFsdWVbMF0gPT09ICckJykge1xuICAgIGlmICh2YWx1ZSA9PT0gJyQnKSB7XG4gICAgICAvLyBBIHZlcnkgY29tbW9uIHN5bWJvbC5cbiAgICAgIHJldHVybiBSRUFDVF9FTEVNRU5UX1RZUEU7XG4gICAgfVxuXG4gICAgc3dpdGNoICh2YWx1ZVsxXSkge1xuICAgICAgY2FzZSAnJCc6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBUaGlzIHdhcyBhbiBlc2NhcGVkIHN0cmluZyB2YWx1ZS5cbiAgICAgICAgICByZXR1cm4gdmFsdWUuc2xpY2UoMSk7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnTCc6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBMYXp5IG5vZGVcbiAgICAgICAgICB2YXIgaWQgPSBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpO1xuICAgICAgICAgIHZhciBjaHVuayA9IGdldENodW5rKHJlc3BvbnNlLCBpZCk7IC8vIFdlIGNyZWF0ZSBhIFJlYWN0Lmxhenkgd3JhcHBlciBhcm91bmQgYW55IGxhenkgdmFsdWVzLlxuICAgICAgICAgIC8vIFdoZW4gcGFzc2VkIGludG8gUmVhY3QsIHdlJ2xsIGtub3cgaG93IHRvIHN1c3BlbmQgb24gdGhpcy5cblxuICAgICAgICAgIHJldHVybiBjcmVhdGVMYXp5Q2h1bmtXcmFwcGVyKGNodW5rKTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdAJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFByb21pc2VcbiAgICAgICAgICB2YXIgX2lkID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDE2KTtcblxuICAgICAgICAgIHZhciBfY2h1bmsgPSBnZXRDaHVuayhyZXNwb25zZSwgX2lkKTtcblxuICAgICAgICAgIHJldHVybiBfY2h1bms7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnUyc6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBTeW1ib2xcbiAgICAgICAgICByZXR1cm4gU3ltYm9sLmZvcih2YWx1ZS5zbGljZSgyKSk7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnUCc6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBTZXJ2ZXIgQ29udGV4dCBQcm92aWRlclxuICAgICAgICAgIHJldHVybiBnZXRPckNyZWF0ZVNlcnZlckNvbnRleHQodmFsdWUuc2xpY2UoMikpLlByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ0YnOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gU2VydmVyIFJlZmVyZW5jZVxuICAgICAgICAgIHZhciBfaWQyID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDE2KTtcblxuICAgICAgICAgIHZhciBtZXRhZGF0YSA9IGdldE91dGxpbmVkTW9kZWwocmVzcG9uc2UsIF9pZDIpO1xuICAgICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2VQcm94eShyZXNwb25zZSwgbWV0YWRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ1EnOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gTWFwXG4gICAgICAgICAgdmFyIF9pZDMgPSBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpO1xuXG4gICAgICAgICAgdmFyIGRhdGEgPSBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCBfaWQzKTtcbiAgICAgICAgICByZXR1cm4gbmV3IE1hcChkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdXJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFNldFxuICAgICAgICAgIHZhciBfaWQ0ID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDE2KTtcblxuICAgICAgICAgIHZhciBfZGF0YSA9IGdldE91dGxpbmVkTW9kZWwocmVzcG9uc2UsIF9pZDQpO1xuXG4gICAgICAgICAgcmV0dXJuIG5ldyBTZXQoX2RhdGEpO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ0knOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gJEluZmluaXR5XG4gICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJy0nOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gJC0wIG9yICQtSW5maW5pdHlcbiAgICAgICAgICBpZiAodmFsdWUgPT09ICckLTAnKSB7XG4gICAgICAgICAgICByZXR1cm4gLTA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAtSW5maW5pdHk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ04nOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gJE5hTlxuICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAndSc6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBtYXRjaGVzIFwiJHVuZGVmaW5lZFwiXG4gICAgICAgICAgLy8gU3BlY2lhbCBlbmNvZGluZyBmb3IgYHVuZGVmaW5lZGAgd2hpY2ggY2FuJ3QgYmUgc2VyaWFsaXplZCBhcyBKU09OIG90aGVyd2lzZS5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ0QnOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gRGF0ZVxuICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlLnNsaWNlKDIpKSk7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnbic6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBCaWdJbnRcbiAgICAgICAgICByZXR1cm4gQmlnSW50KHZhbHVlLnNsaWNlKDIpKTtcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgLy8gV2UgYXNzdW1lIHRoYXQgYW55dGhpbmcgZWxzZSBpcyBhIHJlZmVyZW5jZSBJRC5cbiAgICAgICAgICB2YXIgX2lkNSA9IHBhcnNlSW50KHZhbHVlLnNsaWNlKDEpLCAxNik7XG5cbiAgICAgICAgICB2YXIgX2NodW5rMiA9IGdldENodW5rKHJlc3BvbnNlLCBfaWQ1KTtcblxuICAgICAgICAgIHN3aXRjaCAoX2NodW5rMi5zdGF0dXMpIHtcbiAgICAgICAgICAgIGNhc2UgUkVTT0xWRURfTU9ERUw6XG4gICAgICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKF9jaHVuazIpO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBSRVNPTFZFRF9NT0RVTEU6XG4gICAgICAgICAgICAgIGluaXRpYWxpemVNb2R1bGVDaHVuayhfY2h1bmsyKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSAvLyBUaGUgc3RhdHVzIG1pZ2h0IGhhdmUgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi5cblxuXG4gICAgICAgICAgc3dpdGNoIChfY2h1bmsyLnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSBJTklUSUFMSVpFRDpcbiAgICAgICAgICAgICAgcmV0dXJuIF9jaHVuazIudmFsdWU7XG5cbiAgICAgICAgICAgIGNhc2UgUEVORElORzpcbiAgICAgICAgICAgIGNhc2UgQkxPQ0tFRDpcbiAgICAgICAgICAgIGNhc2UgQ1lDTElDOlxuICAgICAgICAgICAgICB2YXIgcGFyZW50Q2h1bmsgPSBpbml0aWFsaXppbmdDaHVuaztcblxuICAgICAgICAgICAgICBfY2h1bmsyLnRoZW4oY3JlYXRlTW9kZWxSZXNvbHZlcihwYXJlbnRDaHVuaywgcGFyZW50T2JqZWN0LCBrZXksIF9jaHVuazIuc3RhdHVzID09PSBDWUNMSUMpLCBjcmVhdGVNb2RlbFJlamVjdChwYXJlbnRDaHVuaykpO1xuXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aHJvdyBfY2h1bmsyLnJlYXNvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTW9kZWxUdXBsZShyZXNwb25zZSwgdmFsdWUpIHtcbiAgdmFyIHR1cGxlID0gdmFsdWU7XG5cbiAgaWYgKHR1cGxlWzBdID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAvLyBUT0RPOiBDb25zaWRlciBoYXZpbmcgUmVhY3QganVzdCBkaXJlY3RseSBhY2NlcHQgdGhlc2UgYXJyYXlzIGFzIGVsZW1lbnRzLlxuICAgIC8vIE9yIGV2ZW4gY2hhbmdlIHRoZSBSZWFjdEVsZW1lbnQgdHlwZSB0byBiZSBhbiBhcnJheS5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudCh0dXBsZVsxXSwgdHVwbGVbMl0sIHR1cGxlWzNdKTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gbWlzc2luZ0NhbGwoKSB7XG4gIHRocm93IG5ldyBFcnJvcignVHJ5aW5nIHRvIGNhbGwgYSBmdW5jdGlvbiBmcm9tIFwidXNlIHNlcnZlclwiIGJ1dCB0aGUgY2FsbFNlcnZlciBvcHRpb24gJyArICd3YXMgbm90IGltcGxlbWVudGVkIGluIHlvdXIgcm91dGVyIHJ1bnRpbWUuJyk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlKGJ1bmRsZXJDb25maWcsIG1vZHVsZUxvYWRpbmcsIGNhbGxTZXJ2ZXIsIG5vbmNlKSB7XG4gIHZhciBjaHVua3MgPSBuZXcgTWFwKCk7XG4gIHZhciByZXNwb25zZSA9IHtcbiAgICBfYnVuZGxlckNvbmZpZzogYnVuZGxlckNvbmZpZyxcbiAgICBfbW9kdWxlTG9hZGluZzogbW9kdWxlTG9hZGluZyxcbiAgICBfY2FsbFNlcnZlcjogY2FsbFNlcnZlciAhPT0gdW5kZWZpbmVkID8gY2FsbFNlcnZlciA6IG1pc3NpbmdDYWxsLFxuICAgIF9ub25jZTogbm9uY2UsXG4gICAgX2NodW5rczogY2h1bmtzLFxuICAgIF9zdHJpbmdEZWNvZGVyOiBjcmVhdGVTdHJpbmdEZWNvZGVyKCksXG4gICAgX2Zyb21KU09OOiBudWxsLFxuICAgIF9yb3dTdGF0ZTogMCxcbiAgICBfcm93SUQ6IDAsXG4gICAgX3Jvd1RhZzogMCxcbiAgICBfcm93TGVuZ3RoOiAwLFxuICAgIF9idWZmZXI6IFtdXG4gIH07IC8vIERvbid0IGlubGluZSB0aGlzIGNhbGwgYmVjYXVzZSBpdCBjYXVzZXMgY2xvc3VyZSB0byBvdXRsaW5lIHRoZSBjYWxsIGFib3ZlLlxuXG4gIHJlc3BvbnNlLl9mcm9tSlNPTiA9IGNyZWF0ZUZyb21KU09OQ2FsbGJhY2socmVzcG9uc2UpO1xuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2RlbChyZXNwb25zZSwgaWQsIG1vZGVsKSB7XG4gIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzO1xuICB2YXIgY2h1bmsgPSBjaHVua3MuZ2V0KGlkKTtcblxuICBpZiAoIWNodW5rKSB7XG4gICAgY2h1bmtzLnNldChpZCwgY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCBtb2RlbCkpO1xuICB9IGVsc2Uge1xuICAgIHJlc29sdmVNb2RlbENodW5rKGNodW5rLCBtb2RlbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVRleHQocmVzcG9uc2UsIGlkLCB0ZXh0KSB7XG4gIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzOyAvLyBXZSBhc3N1bWUgdGhhdCB3ZSBhbHdheXMgcmVmZXJlbmNlIGxhcmdlIHN0cmluZ3MgYWZ0ZXIgdGhleSd2ZSBiZWVuXG4gIC8vIGVtaXR0ZWQuXG5cbiAgY2h1bmtzLnNldChpZCwgY3JlYXRlSW5pdGlhbGl6ZWRUZXh0Q2h1bmsocmVzcG9uc2UsIHRleHQpKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU1vZHVsZShyZXNwb25zZSwgaWQsIG1vZGVsKSB7XG4gIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzO1xuICB2YXIgY2h1bmsgPSBjaHVua3MuZ2V0KGlkKTtcbiAgdmFyIGNsaWVudFJlZmVyZW5jZU1ldGFkYXRhID0gcGFyc2VNb2RlbChyZXNwb25zZSwgbW9kZWwpO1xuICB2YXIgY2xpZW50UmVmZXJlbmNlID0gcmVzb2x2ZUNsaWVudFJlZmVyZW5jZShyZXNwb25zZS5fYnVuZGxlckNvbmZpZywgY2xpZW50UmVmZXJlbmNlTWV0YWRhdGEpO1xuICBwcmVwYXJlRGVzdGluYXRpb25Gb3JNb2R1bGUocmVzcG9uc2UuX21vZHVsZUxvYWRpbmcsIHJlc3BvbnNlLl9ub25jZSwgY2xpZW50UmVmZXJlbmNlTWV0YWRhdGEpOyAvLyBUT0RPOiBBZGQgYW4gb3B0aW9uIHRvIGVuY29kZSBtb2R1bGVzIHRoYXQgYXJlIGxhenkgbG9hZGVkLlxuICAvLyBGb3Igbm93IHdlIHByZWxvYWQgYWxsIG1vZHVsZXMgYXMgZWFybHkgYXMgcG9zc2libGUgc2luY2UgaXQncyBsaWtlbHlcbiAgLy8gdGhhdCB3ZSdsbCBuZWVkIHRoZW0uXG5cbiAgdmFyIHByb21pc2UgPSBwcmVsb2FkTW9kdWxlKGNsaWVudFJlZmVyZW5jZSk7XG5cbiAgaWYgKHByb21pc2UpIHtcbiAgICB2YXIgYmxvY2tlZENodW5rO1xuXG4gICAgaWYgKCFjaHVuaykge1xuICAgICAgLy8gVGVjaG5pY2FsbHksIHdlIHNob3VsZCBqdXN0IHRyZWF0IHByb21pc2UgYXMgdGhlIGNodW5rIGluIHRoaXNcbiAgICAgIC8vIGNhc2UuIEJlY2F1c2UgaXQnbGwganVzdCBiZWhhdmUgYXMgYW55IG90aGVyIHByb21pc2UuXG4gICAgICBibG9ja2VkQ2h1bmsgPSBjcmVhdGVCbG9ja2VkQ2h1bmsocmVzcG9uc2UpO1xuICAgICAgY2h1bmtzLnNldChpZCwgYmxvY2tlZENodW5rKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyBjYW4ndCBhY3R1YWxseSBoYXBwZW4gYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFueSBmb3J3YXJkXG4gICAgICAvLyByZWZlcmVuY2VzIHRvIG1vZHVsZXMuXG4gICAgICBibG9ja2VkQ2h1bmsgPSBjaHVuaztcbiAgICAgIGJsb2NrZWRDaHVuay5zdGF0dXMgPSBCTE9DS0VEO1xuICAgIH1cblxuICAgIHByb21pc2UudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZU1vZHVsZUNodW5rKGJsb2NrZWRDaHVuaywgY2xpZW50UmVmZXJlbmNlKTtcbiAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB0cmlnZ2VyRXJyb3JPbkNodW5rKGJsb2NrZWRDaHVuaywgZXJyb3IpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGlmICghY2h1bmspIHtcbiAgICAgIGNodW5rcy5zZXQoaWQsIGNyZWF0ZVJlc29sdmVkTW9kdWxlQ2h1bmsocmVzcG9uc2UsIGNsaWVudFJlZmVyZW5jZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGNhbid0IGFjdHVhbGx5IGhhcHBlbiBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYW55IGZvcndhcmRcbiAgICAgIC8vIHJlZmVyZW5jZXMgdG8gbW9kdWxlcy5cbiAgICAgIHJlc29sdmVNb2R1bGVDaHVuayhjaHVuaywgY2xpZW50UmVmZXJlbmNlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUVycm9yRGV2KHJlc3BvbnNlLCBpZCwgZGlnZXN0LCBtZXNzYWdlLCBzdGFjaykge1xuXG5cbiAgdmFyIGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UgfHwgJ0FuIGVycm9yIG9jY3VycmVkIGluIHRoZSBTZXJ2ZXIgQ29tcG9uZW50cyByZW5kZXIgYnV0IG5vIG1lc3NhZ2Ugd2FzIHByb3ZpZGVkJyk7XG4gIGVycm9yLnN0YWNrID0gc3RhY2s7XG4gIGVycm9yLmRpZ2VzdCA9IGRpZ2VzdDtcbiAgdmFyIGVycm9yV2l0aERpZ2VzdCA9IGVycm9yO1xuICB2YXIgY2h1bmtzID0gcmVzcG9uc2UuX2NodW5rcztcbiAgdmFyIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG5cbiAgaWYgKCFjaHVuaykge1xuICAgIGNodW5rcy5zZXQoaWQsIGNyZWF0ZUVycm9yQ2h1bmsocmVzcG9uc2UsIGVycm9yV2l0aERpZ2VzdCkpO1xuICB9IGVsc2Uge1xuICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsoY2h1bmssIGVycm9yV2l0aERpZ2VzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUhpbnQocmVzcG9uc2UsIGNvZGUsIG1vZGVsKSB7XG4gIHZhciBoaW50TW9kZWwgPSBwYXJzZU1vZGVsKHJlc3BvbnNlLCBtb2RlbCk7XG4gIGRpc3BhdGNoSGludChjb2RlLCBoaW50TW9kZWwpO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzRnVsbFJvdyhyZXNwb25zZSwgaWQsIHRhZywgYnVmZmVyLCBjaHVuaykge1xuXG4gIHZhciBzdHJpbmdEZWNvZGVyID0gcmVzcG9uc2UuX3N0cmluZ0RlY29kZXI7XG4gIHZhciByb3cgPSAnJztcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlci5sZW5ndGg7IGkrKykge1xuICAgIHJvdyArPSByZWFkUGFydGlhbFN0cmluZ0NodW5rKHN0cmluZ0RlY29kZXIsIGJ1ZmZlcltpXSk7XG4gIH1cblxuICByb3cgKz0gcmVhZEZpbmFsU3RyaW5nQ2h1bmsoc3RyaW5nRGVjb2RlciwgY2h1bmspO1xuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSA3M1xuICAgIC8qIFwiSVwiICovXG4gICAgOlxuICAgICAge1xuICAgICAgICByZXNvbHZlTW9kdWxlKHJlc3BvbnNlLCBpZCwgcm93KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSA3MlxuICAgIC8qIFwiSFwiICovXG4gICAgOlxuICAgICAge1xuICAgICAgICB2YXIgY29kZSA9IHJvd1swXTtcbiAgICAgICAgcmVzb2x2ZUhpbnQocmVzcG9uc2UsIGNvZGUsIHJvdy5zbGljZSgxKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgNjlcbiAgICAvKiBcIkVcIiAqL1xuICAgIDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGVycm9ySW5mbyA9IEpTT04ucGFyc2Uocm93KTtcblxuICAgICAgICB7XG4gICAgICAgICAgcmVzb2x2ZUVycm9yRGV2KHJlc3BvbnNlLCBpZCwgZXJyb3JJbmZvLmRpZ2VzdCwgZXJyb3JJbmZvLm1lc3NhZ2UsIGVycm9ySW5mby5zdGFjayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIDg0XG4gICAgLyogXCJUXCIgKi9cbiAgICA6XG4gICAgICB7XG4gICAgICAgIHJlc29sdmVUZXh0KHJlc3BvbnNlLCBpZCwgcm93KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSA4MFxuICAgIC8qIFwiUFwiICovXG4gICAgOlxuICAgIC8vIEZhbGx0aHJvdWdoXG5cbiAgICBkZWZhdWx0OlxuICAgICAgLyogXCJcIlwiIFwie1wiIFwiW1wiIFwidFwiIFwiZlwiIFwiblwiIFwiMFwiIC0gXCI5XCIgKi9cbiAgICAgIHtcbiAgICAgICAgLy8gV2UgYXNzdW1lIGFueXRoaW5nIGVsc2UgaXMgSlNPTi5cbiAgICAgICAgcmVzb2x2ZU1vZGVsKHJlc3BvbnNlLCBpZCwgcm93KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NCaW5hcnlDaHVuayhyZXNwb25zZSwgY2h1bmspIHtcbiAgdmFyIGkgPSAwO1xuICB2YXIgcm93U3RhdGUgPSByZXNwb25zZS5fcm93U3RhdGU7XG4gIHZhciByb3dJRCA9IHJlc3BvbnNlLl9yb3dJRDtcbiAgdmFyIHJvd1RhZyA9IHJlc3BvbnNlLl9yb3dUYWc7XG4gIHZhciByb3dMZW5ndGggPSByZXNwb25zZS5fcm93TGVuZ3RoO1xuICB2YXIgYnVmZmVyID0gcmVzcG9uc2UuX2J1ZmZlcjtcbiAgdmFyIGNodW5rTGVuZ3RoID0gY2h1bmsubGVuZ3RoO1xuXG4gIHdoaWxlIChpIDwgY2h1bmtMZW5ndGgpIHtcbiAgICB2YXIgbGFzdElkeCA9IC0xO1xuXG4gICAgc3dpdGNoIChyb3dTdGF0ZSkge1xuICAgICAgY2FzZSBST1dfSUQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgYnl0ZSA9IGNodW5rW2krK107XG5cbiAgICAgICAgICBpZiAoYnl0ZSA9PT0gNThcbiAgICAgICAgICAvKiBcIjpcIiAqL1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgICAvLyBGaW5pc2hlZCB0aGUgcm93SUQsIG5leHQgd2UnbGwgcGFyc2UgdGhlIHRhZy5cbiAgICAgICAgICAgICAgcm93U3RhdGUgPSBST1dfVEFHO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvd0lEID0gcm93SUQgPDwgNCB8IChieXRlID4gOTYgPyBieXRlIC0gODcgOiBieXRlIC0gNDgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUk9XX1RBRzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciByZXNvbHZlZFJvd1RhZyA9IGNodW5rW2ldO1xuXG4gICAgICAgICAgaWYgKHJlc29sdmVkUm93VGFnID09PSA4NFxuICAgICAgICAgIC8qIFwiVFwiICovXG4gICAgICAgICAgfHwgZW5hYmxlQmluYXJ5RmxpZ2h0IFxuICAgICAgICAgIC8qIFwiVlwiICovXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJvd1RhZyA9IHJlc29sdmVkUm93VGFnO1xuICAgICAgICAgICAgICByb3dTdGF0ZSA9IFJPV19MRU5HVEg7XG4gICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb2x2ZWRSb3dUYWcgPiA2NCAmJiByZXNvbHZlZFJvd1RhZyA8IDkxXG4gICAgICAgICAgLyogXCJBXCItXCJaXCIgKi9cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcm93VGFnID0gcmVzb2x2ZWRSb3dUYWc7XG4gICAgICAgICAgICAgIHJvd1N0YXRlID0gUk9XX0NIVU5LX0JZX05FV0xJTkU7XG4gICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3dUYWcgPSAwO1xuICAgICAgICAgICAgcm93U3RhdGUgPSBST1dfQ0hVTktfQllfTkVXTElORTsgLy8gVGhpcyB3YXMgYW4gdW5rbm93biB0YWcgc28gaXQgd2FzIHByb2JhYmx5IHBhcnQgb2YgdGhlIGRhdGEuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBST1dfTEVOR1RIOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIF9ieXRlID0gY2h1bmtbaSsrXTtcblxuICAgICAgICAgIGlmIChfYnl0ZSA9PT0gNDRcbiAgICAgICAgICAvKiBcIixcIiAqL1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgICAvLyBGaW5pc2hlZCB0aGUgcm93TGVuZ3RoLCBuZXh0IHdlJ2xsIGJ1ZmZlciB1cCB0byB0aGF0IGxlbmd0aC5cbiAgICAgICAgICAgICAgcm93U3RhdGUgPSBST1dfQ0hVTktfQllfTEVOR1RIO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvd0xlbmd0aCA9IHJvd0xlbmd0aCA8PCA0IHwgKF9ieXRlID4gOTYgPyBfYnl0ZSAtIDg3IDogX2J5dGUgLSA0OCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBST1dfQ0hVTktfQllfTkVXTElORTpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFdlJ3JlIGxvb2tpbmcgZm9yIGEgbmV3bGluZVxuICAgICAgICAgIGxhc3RJZHggPSBjaHVuay5pbmRleE9mKDEwXG4gICAgICAgICAgLyogXCJcXG5cIiAqL1xuICAgICAgICAgICwgaSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBST1dfQ0hVTktfQllfTEVOR1RIOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gV2UncmUgbG9va2luZyBmb3IgdGhlIHJlbWFpbmluZyBieXRlIGxlbmd0aFxuICAgICAgICAgIGxhc3RJZHggPSBpICsgcm93TGVuZ3RoO1xuXG4gICAgICAgICAgaWYgKGxhc3RJZHggPiBjaHVuay5sZW5ndGgpIHtcbiAgICAgICAgICAgIGxhc3RJZHggPSAtMTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBvZmZzZXQgPSBjaHVuay5ieXRlT2Zmc2V0ICsgaTtcblxuICAgIGlmIChsYXN0SWR4ID4gLTEpIHtcbiAgICAgIC8vIFdlIGZvdW5kIHRoZSBsYXN0IGNodW5rIG9mIHRoZSByb3dcbiAgICAgIHZhciBsZW5ndGggPSBsYXN0SWR4IC0gaTtcbiAgICAgIHZhciBsYXN0Q2h1bmsgPSBuZXcgVWludDhBcnJheShjaHVuay5idWZmZXIsIG9mZnNldCwgbGVuZ3RoKTtcbiAgICAgIHByb2Nlc3NGdWxsUm93KHJlc3BvbnNlLCByb3dJRCwgcm93VGFnLCBidWZmZXIsIGxhc3RDaHVuayk7IC8vIFJlc2V0IHN0YXRlIG1hY2hpbmUgZm9yIGEgbmV3IHJvd1xuXG4gICAgICBpID0gbGFzdElkeDtcblxuICAgICAgaWYgKHJvd1N0YXRlID09PSBST1dfQ0hVTktfQllfTkVXTElORSkge1xuICAgICAgICAvLyBJZiB3ZSdyZSB0cmFpbGluZyBieSBhIG5ld2xpbmUgd2UgbmVlZCB0byBza2lwIGl0LlxuICAgICAgICBpKys7XG4gICAgICB9XG5cbiAgICAgIHJvd1N0YXRlID0gUk9XX0lEO1xuICAgICAgcm93VGFnID0gMDtcbiAgICAgIHJvd0lEID0gMDtcbiAgICAgIHJvd0xlbmd0aCA9IDA7XG4gICAgICBidWZmZXIubGVuZ3RoID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIHJlc3Qgb2YgdGhpcyByb3cgaXMgaW4gYSBmdXR1cmUgY2h1bmsuIFdlIHN0YXNoIHRoZSByZXN0IG9mIHRoZVxuICAgICAgLy8gY3VycmVudCBjaHVuayB1bnRpbCB3ZSBjYW4gcHJvY2VzcyB0aGUgZnVsbCByb3cuXG4gICAgICB2YXIgX2xlbmd0aCA9IGNodW5rLmJ5dGVMZW5ndGggLSBpO1xuXG4gICAgICB2YXIgcmVtYWluaW5nU2xpY2UgPSBuZXcgVWludDhBcnJheShjaHVuay5idWZmZXIsIG9mZnNldCwgX2xlbmd0aCk7XG4gICAgICBidWZmZXIucHVzaChyZW1haW5pbmdTbGljZSk7IC8vIFVwZGF0ZSBob3cgbWFueSBieXRlcyB3ZSdyZSBzdGlsbCB3YWl0aW5nIGZvci4gSWYgd2UncmUgbG9va2luZyBmb3JcbiAgICAgIC8vIGEgbmV3bGluZSwgdGhpcyBkb2Vzbid0IGh1cnQgc2luY2Ugd2UnbGwganVzdCBpZ25vcmUgaXQuXG5cbiAgICAgIHJvd0xlbmd0aCAtPSByZW1haW5pbmdTbGljZS5ieXRlTGVuZ3RoO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmVzcG9uc2UuX3Jvd1N0YXRlID0gcm93U3RhdGU7XG4gIHJlc3BvbnNlLl9yb3dJRCA9IHJvd0lEO1xuICByZXNwb25zZS5fcm93VGFnID0gcm93VGFnO1xuICByZXNwb25zZS5fcm93TGVuZ3RoID0gcm93TGVuZ3RoO1xufVxuXG5mdW5jdGlvbiBwYXJzZU1vZGVsKHJlc3BvbnNlLCBqc29uKSB7XG4gIHJldHVybiBKU09OLnBhcnNlKGpzb24sIHJlc3BvbnNlLl9mcm9tSlNPTik7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZyb21KU09OQ2FsbGJhY2socmVzcG9uc2UpIHtcbiAgLy8gJEZsb3dGaXhNZVttaXNzaW5nLXRoaXMtYW5ub3RdXG4gIHJldHVybiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBXZSBjYW4ndCB1c2UgLmJpbmQgaGVyZSBiZWNhdXNlIHdlIG5lZWQgdGhlIFwidGhpc1wiIHZhbHVlLlxuICAgICAgcmV0dXJuIHBhcnNlTW9kZWxTdHJpbmcocmVzcG9uc2UsIHRoaXMsIGtleSwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyc2VNb2RlbFR1cGxlKHJlc3BvbnNlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuXG5mdW5jdGlvbiBjbG9zZShyZXNwb25zZSkge1xuICAvLyBJbiBjYXNlIHRoZXJlIGFyZSBhbnkgcmVtYWluaW5nIHVucmVzb2x2ZWQgY2h1bmtzLCB0aGV5IHdvbid0XG4gIC8vIGJlIHJlc29sdmVkIG5vdy4gU28gd2UgbmVlZCB0byBpc3N1ZSBhbiBlcnJvciB0byB0aG9zZS5cbiAgLy8gSWRlYWxseSB3ZSBzaG91bGQgYmUgYWJsZSB0byBlYXJseSBiYWlsIG91dCBpZiB3ZSBrZXB0IGFcbiAgLy8gcmVmIGNvdW50IG9mIHBlbmRpbmcgY2h1bmtzLlxuICByZXBvcnRHbG9iYWxFcnJvcihyZXNwb25zZSwgbmV3IEVycm9yKCdDb25uZWN0aW9uIGNsb3NlZC4nKSk7XG59XG5cbmZ1bmN0aW9uIG5vU2VydmVyQ2FsbCgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdTZXJ2ZXIgRnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgZHVyaW5nIGluaXRpYWwgcmVuZGVyLiAnICsgJ1RoaXMgd291bGQgY3JlYXRlIGEgZmV0Y2ggd2F0ZXJmYWxsLiBUcnkgdG8gdXNlIGEgU2VydmVyIENvbXBvbmVudCAnICsgJ3RvIHBhc3MgZGF0YSB0byBDbGllbnQgQ29tcG9uZW50cyBpbnN0ZWFkLicpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2UoaWQsIGNhbGxTZXJ2ZXIpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlcnZlclJlZmVyZW5jZSQxKGlkLCBub1NlcnZlckNhbGwpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXNwb25zZUZyb21PcHRpb25zKG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlKG9wdGlvbnMuc3NyTWFuaWZlc3QubW9kdWxlTWFwLCBvcHRpb25zLnNzck1hbmlmZXN0Lm1vZHVsZUxvYWRpbmcsIG5vU2VydmVyQ2FsbCwgdHlwZW9mIG9wdGlvbnMubm9uY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5ub25jZSA6IHVuZGVmaW5lZCk7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0UmVhZGluZ0Zyb21TdHJlYW0ocmVzcG9uc2UsIHN0cmVhbSkge1xuICB2YXIgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuXG4gIGZ1bmN0aW9uIHByb2dyZXNzKF9yZWYpIHtcbiAgICB2YXIgZG9uZSA9IF9yZWYuZG9uZSxcbiAgICAgICAgdmFsdWUgPSBfcmVmLnZhbHVlO1xuXG4gICAgaWYgKGRvbmUpIHtcbiAgICAgIGNsb3NlKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgYnVmZmVyID0gdmFsdWU7XG4gICAgcHJvY2Vzc0JpbmFyeUNodW5rKHJlc3BvbnNlLCBidWZmZXIpO1xuICAgIHJldHVybiByZWFkZXIucmVhZCgpLnRoZW4ocHJvZ3Jlc3MpLmNhdGNoKGVycm9yKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGVycm9yKGUpIHtcbiAgICByZXBvcnRHbG9iYWxFcnJvcihyZXNwb25zZSwgZSk7XG4gIH1cblxuICByZWFkZXIucmVhZCgpLnRoZW4ocHJvZ3Jlc3MpLmNhdGNoKGVycm9yKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgb3B0aW9ucykge1xuICB2YXIgcmVzcG9uc2UgPSBjcmVhdGVSZXNwb25zZUZyb21PcHRpb25zKG9wdGlvbnMpO1xuICBzdGFydFJlYWRpbmdGcm9tU3RyZWFtKHJlc3BvbnNlLCBzdHJlYW0pO1xuICByZXR1cm4gZ2V0Um9vdChyZXNwb25zZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZyb21GZXRjaChwcm9taXNlRm9yUmVzcG9uc2UsIG9wdGlvbnMpIHtcbiAgdmFyIHJlc3BvbnNlID0gY3JlYXRlUmVzcG9uc2VGcm9tT3B0aW9ucyhvcHRpb25zKTtcbiAgcHJvbWlzZUZvclJlc3BvbnNlLnRoZW4oZnVuY3Rpb24gKHIpIHtcbiAgICBzdGFydFJlYWRpbmdGcm9tU3RyZWFtKHJlc3BvbnNlLCByLmJvZHkpO1xuICB9LCBmdW5jdGlvbiAoZSkge1xuICAgIHJlcG9ydEdsb2JhbEVycm9yKHJlc3BvbnNlLCBlKTtcbiAgfSk7XG4gIHJldHVybiBnZXRSb290KHJlc3BvbnNlKTtcbn1cblxuZnVuY3Rpb24gZW5jb2RlUmVwbHkodmFsdWUpXG4vKiBXZSBkb24ndCB1c2UgVVJMU2VhcmNoUGFyYW1zIHlldCBidXQgbWF5YmUgKi9cbntcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBwcm9jZXNzUmVwbHkodmFsdWUsICcnLCByZXNvbHZlLCByZWplY3QpO1xuICB9KTtcbn1cblxuZXhwb3J0cy5jcmVhdGVGcm9tRmV0Y2ggPSBjcmVhdGVGcm9tRmV0Y2g7XG5leHBvcnRzLmNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSA9IGNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbTtcbmV4cG9ydHMuY3JlYXRlU2VydmVyUmVmZXJlbmNlID0gY3JlYXRlU2VydmVyUmVmZXJlbmNlO1xuZXhwb3J0cy5lbmNvZGVSZXBseSA9IGVuY29kZVJlcGx5O1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJSZWFjdERPTSIsInJlcXVpcmUiLCJSZWFjdCIsImVuYWJsZUJpbmFyeUZsaWdodCIsImNyZWF0ZVN0cmluZ0RlY29kZXIiLCJUZXh0RGVjb2RlciIsImRlY29kZXJPcHRpb25zIiwic3RyZWFtIiwicmVhZFBhcnRpYWxTdHJpbmdDaHVuayIsImRlY29kZXIiLCJidWZmZXIiLCJkZWNvZGUiLCJyZWFkRmluYWxTdHJpbmdDaHVuayIsIklEIiwiQ0hVTktTIiwiTkFNRSIsImlzQXN5bmNJbXBvcnQiLCJtZXRhZGF0YSIsImxlbmd0aCIsInByZXBhcmVEZXN0aW5hdGlvbkZvck1vZHVsZSIsIm1vZHVsZUxvYWRpbmciLCJub25jZSIsInByZXBhcmVEZXN0aW5hdGlvbldpdGhDaHVua3MiLCJyZXNvbHZlQ2xpZW50UmVmZXJlbmNlIiwiYnVuZGxlckNvbmZpZyIsIm1vZHVsZUV4cG9ydHMiLCJyZXNvbHZlZE1vZHVsZURhdGEiLCJuYW1lIiwiRXJyb3IiLCJpZCIsImNodW5rcyIsImNodW5rQ2FjaGUiLCJNYXAiLCJyZXF1aXJlQXN5bmNNb2R1bGUiLCJwcm9taXNlIiwiZ2xvYmFsVGhpcyIsIl9fbmV4dF9yZXF1aXJlX18iLCJ0aGVuIiwic3RhdHVzIiwidmFsdWUiLCJmdWxmaWxsZWRUaGVuYWJsZSIsInJlYXNvbiIsInJlamVjdGVkVGhlbmFibGUiLCJpZ25vcmVSZWplY3QiLCJwcmVsb2FkTW9kdWxlIiwicHJvbWlzZXMiLCJpIiwiY2h1bmtJZCIsImVudHJ5IiwiZ2V0IiwidW5kZWZpbmVkIiwidGhlbmFibGUiLCJsb2FkQ2h1bmsiLCJwdXNoIiwicmVzb2x2ZSIsInNldCIsImJpbmQiLCJQcm9taXNlIiwiYWxsIiwicmVxdWlyZU1vZHVsZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZmlsZW5hbWUiLCJfX3dlYnBhY2tfY2h1bmtfbG9hZF9fIiwicHJlaW5pdFNjcmlwdEZvclNTUiIsInByZWZpeCIsImNyb3NzT3JpZ2luIiwiUmVhY3RET01TaGFyZWRJbnRlcm5hbHMiLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsImdldENyb3NzT3JpZ2luU3RyaW5nIiwiaW5wdXQiLCJSZWFjdERPTUN1cnJlbnREaXNwYXRjaGVyIiwiRGlzcGF0Y2hlciIsImRpc3BhdGNoSGludCIsImNvZGUiLCJtb2RlbCIsImRpc3BhdGNoZXIiLCJjdXJyZW50IiwicmVmaW5lZCIsInJlZmluZU1vZGVsIiwiaHJlZiIsInByZWZldGNoRE5TIiwiX3JlZmluZWQiLCJfaHJlZiIsInByZWNvbm5lY3QiLCJfaHJlZjIiLCJfcmVmaW5lZDIiLCJfaHJlZjMiLCJhcyIsIm9wdGlvbnMiLCJwcmVsb2FkIiwiX3JlZmluZWQzIiwiX2hyZWY0IiwiX2hyZWY1IiwiX29wdGlvbnMiLCJfcmVmaW5lZDQiLCJfaHJlZjYiLCJwcmVpbml0U3R5bGUiLCJfaHJlZjciLCJwcmVjZWRlbmNlIiwiX29wdGlvbnMyIiwiX3JlZmluZWQ1IiwiX2hyZWY4IiwicHJlaW5pdFNjcmlwdCIsIl9ocmVmOSIsIl9vcHRpb25zMyIsIl9yZWZpbmVkNiIsIl9ocmVmMTAiLCJwcmVpbml0TW9kdWxlU2NyaXB0IiwiX2hyZWYxMSIsIl9vcHRpb25zNCIsIlJlYWN0U2hhcmVkSW50ZXJuYWxzIiwiZXJyb3IiLCJmb3JtYXQiLCJfbGVuMiIsImFyZ3VtZW50cyIsImFyZ3MiLCJBcnJheSIsIl9rZXkyIiwicHJpbnRXYXJuaW5nIiwibGV2ZWwiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lIiwic3RhY2siLCJnZXRTdGFja0FkZGVuZHVtIiwiY29uY2F0IiwiYXJnc1dpdGhGb3JtYXQiLCJtYXAiLCJpdGVtIiwiU3RyaW5nIiwidW5zaGlmdCIsIkZ1bmN0aW9uIiwicHJvdG90eXBlIiwiYXBwbHkiLCJjYWxsIiwiY29uc29sZSIsIlJFQUNUX0VMRU1FTlRfVFlQRSIsIlN5bWJvbCIsImZvciIsIlJFQUNUX1BST1ZJREVSX1RZUEUiLCJSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJSRUFDVF9TRVJWRVJfQ09OVEVYVF9ERUZBVUxUX1ZBTFVFX05PVF9MT0FERUQiLCJNQVlCRV9JVEVSQVRPUl9TWU1CT0wiLCJpdGVyYXRvciIsIkZBVVhfSVRFUkFUT1JfU1lNQk9MIiwiZ2V0SXRlcmF0b3JGbiIsIm1heWJlSXRlcmFibGUiLCJtYXliZUl0ZXJhdG9yIiwiaXNBcnJheUltcGwiLCJpc0FycmF5IiwiYSIsImdldFByb3RvdHlwZU9mIiwiT2JqZWN0IiwianN4UHJvcHNQYXJlbnRzIiwiV2Vha01hcCIsImpzeENoaWxkcmVuUGFyZW50cyIsImlzT2JqZWN0UHJvdG90eXBlIiwib2JqZWN0IiwiT2JqZWN0UHJvdG90eXBlIiwibmFtZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiaXNTaW1wbGVPYmplY3QiLCJkZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsIm9iamVjdE5hbWUiLCJ0b1N0cmluZyIsInJlcGxhY2UiLCJtIiwicDAiLCJkZXNjcmliZUtleUZvckVycm9yTWVzc2FnZSIsImtleSIsImVuY29kZWRLZXkiLCJKU09OIiwic3RyaW5naWZ5IiwiZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZSIsInNsaWNlIiwiZGVzY3JpYmVFbGVtZW50VHlwZSIsInR5cGUiLCIkJHR5cGVvZiIsInJlbmRlciIsImxhenlDb21wb25lbnQiLCJwYXlsb2FkIiwiX3BheWxvYWQiLCJpbml0IiwiX2luaXQiLCJ4IiwiZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UiLCJvYmplY3RPckFycmF5IiwiZXhwYW5kZWROYW1lIiwib2JqS2luZCIsInN0ciIsInN0YXJ0IiwiaGFzIiwiYXJyYXkiLCJzdWJzdHIiLCJfYXJyYXkiLCJfaSIsIl92YWx1ZSIsIl9zdWJzdHIiLCJfdHlwZSIsImtleXMiLCJfaTIiLCJfdmFsdWUyIiwiX3N1YnN0cjIiLCJfb2JqZWN0IiwiX25hbWVzIiwiX2kzIiwiX25hbWUiLCJfdmFsdWUzIiwiX3N1YnN0cjMiLCJoaWdobGlnaHQiLCJyZXBlYXQiLCJrbm93blNlcnZlclJlZmVyZW5jZXMiLCJzZXJpYWxpemVQcm9taXNlSUQiLCJzZXJpYWxpemVTZXJ2ZXJSZWZlcmVuY2VJRCIsInNlcmlhbGl6ZVN5bWJvbFJlZmVyZW5jZSIsInNlcmlhbGl6ZUZvcm1EYXRhUmVmZXJlbmNlIiwic2VyaWFsaXplTnVtYmVyIiwibnVtYmVyIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJJbmZpbml0eSIsInNlcmlhbGl6ZVVuZGVmaW5lZCIsInNlcmlhbGl6ZURhdGVGcm9tRGF0ZUpTT04iLCJkYXRlSlNPTiIsInNlcmlhbGl6ZUJpZ0ludCIsIm4iLCJzZXJpYWxpemVNYXBJRCIsInNlcmlhbGl6ZVNldElEIiwiZXNjYXBlU3RyaW5nVmFsdWUiLCJwcm9jZXNzUmVwbHkiLCJyb290IiwiZm9ybUZpZWxkUHJlZml4IiwicmVqZWN0IiwibmV4dFBhcnRJZCIsInBlbmRpbmdQYXJ0cyIsImZvcm1EYXRhIiwicmVzb2x2ZVRvSlNPTiIsInBhcmVudCIsIm9yaWdpbmFsVmFsdWUiLCJEYXRlIiwiRm9ybURhdGEiLCJwcm9taXNlSWQiLCJwYXJ0VmFsdWUiLCJwYXJ0SlNPTiIsImRhdGEiLCJhcHBlbmQiLCJyZWZJZCIsImZvckVhY2giLCJvcmlnaW5hbEtleSIsImZyb20iLCJtYXBJZCIsIlNldCIsIl9wYXJ0SlNPTiIsInNldElkIiwiaXRlcmF0b3JGbiIsInByb3RvIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImRlc2NyaXB0aW9uIiwiX29yaWdpbmFsVmFsdWUiLCJtZXRhRGF0YSIsIm1ldGFEYXRhSlNPTiIsIl9yZWZJZCIsImpzb24iLCJib3VuZENhY2hlIiwiZW5jb2RlRm9ybURhdGEiLCJyZWZlcmVuY2UiLCJyZXMiLCJyZWoiLCJib2R5IiwiZnVsZmlsbGVkIiwiZSIsInJlamVjdGVkIiwiZW5jb2RlRm9ybUFjdGlvbiIsImlkZW50aWZpZXJQcmVmaXgiLCJib3VuZFByb21pc2UiLCJib3VuZCIsImVuY29kZWRGb3JtRGF0YSIsInByZWZpeGVkRGF0YSIsIm1ldGhvZCIsImVuY1R5cGUiLCJpc1NpZ25hdHVyZUVxdWFsIiwicmVmZXJlbmNlSWQiLCJudW1iZXJPZkJvdW5kQXJncyIsImJvdW5kQXJncyIsInBlbmRpbmdUaGVuYWJsZSIsInJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlIiwicHJveHkiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiJCRGT1JNX0FDVElPTiIsIiQkSVNfU0lHTkFUVVJFX0VRVUFMIiwiRnVuY3Rpb25CaW5kIiwiQXJyYXlTbGljZSIsIm5ld0ZuIiwiY3JlYXRlU2VydmVyUmVmZXJlbmNlJDEiLCJjYWxsU2VydmVyIiwiQ29udGV4dFJlZ2lzdHJ5IiwiZ2V0T3JDcmVhdGVTZXJ2ZXJDb250ZXh0IiwiZ2xvYmFsTmFtZSIsImNvbnRleHQiLCJfY3VycmVudFZhbHVlIiwiX2N1cnJlbnRWYWx1ZTIiLCJfZGVmYXVsdFZhbHVlIiwiX3RocmVhZENvdW50IiwiUHJvdmlkZXIiLCJDb25zdW1lciIsIl9nbG9iYWxOYW1lIiwiX2NvbnRleHQiLCJoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXIiLCJfY3VycmVudFJlbmRlcmVyIiwiX2N1cnJlbnRSZW5kZXJlcjIiLCJST1dfSUQiLCJST1dfVEFHIiwiUk9XX0xFTkdUSCIsIlJPV19DSFVOS19CWV9ORVdMSU5FIiwiUk9XX0NIVU5LX0JZX0xFTkdUSCIsIlBFTkRJTkciLCJCTE9DS0VEIiwiQ1lDTElDIiwiUkVTT0xWRURfTU9ERUwiLCJSRVNPTFZFRF9NT0RVTEUiLCJJTklUSUFMSVpFRCIsIkVSUk9SRUQiLCJDaHVuayIsInJlc3BvbnNlIiwiX3Jlc3BvbnNlIiwiY3JlYXRlIiwiY2h1bmsiLCJpbml0aWFsaXplTW9kZWxDaHVuayIsImluaXRpYWxpemVNb2R1bGVDaHVuayIsInJlYWRDaHVuayIsImdldFJvb3QiLCJnZXRDaHVuayIsImNyZWF0ZVBlbmRpbmdDaHVuayIsImNyZWF0ZUJsb2NrZWRDaHVuayIsImNyZWF0ZUVycm9yQ2h1bmsiLCJ3YWtlQ2h1bmsiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lciIsIndha2VDaHVua0lmSW5pdGlhbGl6ZWQiLCJyZXNvbHZlTGlzdGVuZXJzIiwicmVqZWN0TGlzdGVuZXJzIiwidHJpZ2dlckVycm9yT25DaHVuayIsImVycm9yZWRDaHVuayIsImNyZWF0ZVJlc29sdmVkTW9kZWxDaHVuayIsImNyZWF0ZVJlc29sdmVkTW9kdWxlQ2h1bmsiLCJjcmVhdGVJbml0aWFsaXplZFRleHRDaHVuayIsInJlc29sdmVNb2RlbENodW5rIiwicmVzb2x2ZWRDaHVuayIsInJlc29sdmVNb2R1bGVDaHVuayIsImluaXRpYWxpemluZ0NodW5rIiwiaW5pdGlhbGl6aW5nQ2h1bmtCbG9ja2VkTW9kZWwiLCJwcmV2Q2h1bmsiLCJwcmV2QmxvY2tlZCIsInJlc29sdmVkTW9kZWwiLCJjeWNsaWNDaHVuayIsInBhcnNlTW9kZWwiLCJkZXBzIiwiYmxvY2tlZENodW5rIiwiaW5pdGlhbGl6ZWRDaHVuayIsInJlcG9ydEdsb2JhbEVycm9yIiwiX2NodW5rcyIsImNyZWF0ZUVsZW1lbnQiLCJwcm9wcyIsImVsZW1lbnQiLCJyZWYiLCJfb3duZXIiLCJfc3RvcmUiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiY3JlYXRlTGF6eUNodW5rV3JhcHBlciIsImxhenlUeXBlIiwiY3JlYXRlTW9kZWxSZXNvbHZlciIsInBhcmVudE9iamVjdCIsImN5Y2xpYyIsImJsb2NrZWQiLCJjcmVhdGVNb2RlbFJlamVjdCIsImNyZWF0ZVNlcnZlclJlZmVyZW5jZVByb3h5IiwiX2NhbGxTZXJ2ZXIiLCJwIiwiZ2V0T3V0bGluZWRNb2RlbCIsInBhcnNlTW9kZWxTdHJpbmciLCJwYXJzZUludCIsIl9pZCIsIl9jaHVuayIsIl9pZDIiLCJfaWQzIiwiX2lkNCIsIl9kYXRhIiwiTmFOIiwicGFyc2UiLCJCaWdJbnQiLCJfaWQ1IiwiX2NodW5rMiIsInBhcmVudENodW5rIiwicGFyc2VNb2RlbFR1cGxlIiwidHVwbGUiLCJtaXNzaW5nQ2FsbCIsImNyZWF0ZVJlc3BvbnNlIiwiX2J1bmRsZXJDb25maWciLCJfbW9kdWxlTG9hZGluZyIsIl9ub25jZSIsIl9zdHJpbmdEZWNvZGVyIiwiX2Zyb21KU09OIiwiX3Jvd1N0YXRlIiwiX3Jvd0lEIiwiX3Jvd1RhZyIsIl9yb3dMZW5ndGgiLCJfYnVmZmVyIiwiY3JlYXRlRnJvbUpTT05DYWxsYmFjayIsInJlc29sdmVNb2RlbCIsInJlc29sdmVUZXh0IiwidGV4dCIsInJlc29sdmVNb2R1bGUiLCJjbGllbnRSZWZlcmVuY2VNZXRhZGF0YSIsImNsaWVudFJlZmVyZW5jZSIsInJlc29sdmVFcnJvckRldiIsImRpZ2VzdCIsIm1lc3NhZ2UiLCJlcnJvcldpdGhEaWdlc3QiLCJyZXNvbHZlSGludCIsImhpbnRNb2RlbCIsInByb2Nlc3NGdWxsUm93IiwidGFnIiwic3RyaW5nRGVjb2RlciIsInJvdyIsImVycm9ySW5mbyIsInByb2Nlc3NCaW5hcnlDaHVuayIsInJvd1N0YXRlIiwicm93SUQiLCJyb3dUYWciLCJyb3dMZW5ndGgiLCJjaHVua0xlbmd0aCIsImxhc3RJZHgiLCJieXRlIiwicmVzb2x2ZWRSb3dUYWciLCJfYnl0ZSIsImluZGV4T2YiLCJvZmZzZXQiLCJieXRlT2Zmc2V0IiwibGFzdENodW5rIiwiVWludDhBcnJheSIsIl9sZW5ndGgiLCJieXRlTGVuZ3RoIiwicmVtYWluaW5nU2xpY2UiLCJjbG9zZSIsIm5vU2VydmVyQ2FsbCIsImNyZWF0ZVNlcnZlclJlZmVyZW5jZSIsImNyZWF0ZVJlc3BvbnNlRnJvbU9wdGlvbnMiLCJzc3JNYW5pZmVzdCIsIm1vZHVsZU1hcCIsInN0YXJ0UmVhZGluZ0Zyb21TdHJlYW0iLCJyZWFkZXIiLCJnZXRSZWFkZXIiLCJwcm9ncmVzcyIsIl9yZWYiLCJkb25lIiwicmVhZCIsImNhdGNoIiwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIiwiY3JlYXRlRnJvbUZldGNoIiwicHJvbWlzZUZvclJlc3BvbnNlIiwiciIsImVuY29kZVJlcGx5IiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js ***!
- \*************************************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-server-dom-webpack-client.edge.development.js */ \"(ssr)/../../node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50LmVkZ2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxJQUFJQSxLQUF5QixFQUFjLEVBRTFDLE1BQU07SUFDTEMscU9BQXlCO0FBQzNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQuZWRnZS5qcz9mMWZkIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LmVkZ2UucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5lZGdlLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOlsicHJvY2VzcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXF1aXJlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js":
-/*!********************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***!
- \********************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\n var REACT_CACHE_TYPE = Symbol.for(\"react.cache\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n // -----------------------------------------------------------------------------\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n var enableCacheElement = false;\n var enableTransitionTracing = false; // No known bugs, but needs performance testing\n var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n // stuff. Intended to enable React core members to more easily debug scheduling\n // issues in DEV builds.\n var enableDebugTracing = false;\n var REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\");\n function isValidElementType(type) {\n if (typeof type === \"string\" || typeof type === \"function\") {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n return true;\n }\n if (typeof type === \"object\" && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE$2 || type.getModuleId !== undefined) {\n return true;\n }\n }\n return false;\n }\n function getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n if (displayName) {\n return displayName;\n }\n var functionName = innerType.displayName || innerType.name || \"\";\n return functionName !== \"\" ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n } // Keep in sync with react-reconciler/getComponentNameFromFiber\n function getContextName(type) {\n return type.displayName || \"Context\";\n }\n var REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\"); // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n function getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n if (typeof type === \"function\") {\n if (type.$$typeof === REACT_CLIENT_REFERENCE$1) {\n // TODO: Create a convention for naming client references with debug info.\n return null;\n }\n return type.displayName || type.name || null;\n }\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_CACHE_TYPE:\n {\n return \"Cache\";\n }\n }\n if (typeof type === \"object\") {\n {\n if (typeof type.tag === \"number\") {\n error(\"Received an unexpected object in getComponentNameFromType(). \" + \"This is likely a bug in React. Please file an issue.\");\n }\n }\n switch(type.$$typeof){\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, \"ForwardRef\");\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n if (outerName !== null) {\n return outerName;\n }\n return getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n return null;\n }\n var assign = Object.assign;\n // Helpers to patch console.logs to avoid logging during side-effect free\n // replaying on render function. This currently only patches the object\n // lazily which won't cover if the log function was extracted eagerly.\n // We could also eagerly patch the method.\n var disabledDepth = 0;\n var prevLog;\n var prevInfo;\n var prevWarn;\n var prevError;\n var prevGroup;\n var prevGroupCollapsed;\n var prevGroupEnd;\n function disabledLog() {}\n disabledLog.__reactDisabledLog = true;\n function disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */ }\n disabledDepth++;\n }\n }\n function reenableLogs() {\n {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */ }\n if (disabledDepth < 0) {\n error(\"disabledDepth fell below zero. \" + \"This is a bug in React. Please file an issue.\");\n }\n }\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n var prefix;\n function describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || \"\";\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n return \"\\n\" + prefix + name;\n }\n }\n var reentry = false;\n var componentFrameCache;\n {\n var PossiblyWeakMap = typeof WeakMap === \"function\" ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n }\n /**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */ function describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return \"\";\n }\n {\n var frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */ var RunInRootFrame = {\n DetermineComponentFrameRoot: function() {\n var control;\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function() {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function() {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n if (typeof Reflect === \"object\" && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n if (maybePromise && typeof maybePromise.catch === \"function\") {\n maybePromise.catch(function() {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === \"string\") {\n return [\n sample.stack,\n control.stack\n ];\n }\n }\n return [\n null,\n null\n ];\n }\n }; // $FlowFixMe[prop-missing]\n RunInRootFrame.DetermineComponentFrameRoot.displayName = \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, \"name\"); // Before ES6, the `name` property was not configurable.\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // is set to `false`.\n // $FlowFixMe[cannot-write]\n \"name\", {\n value: \"DetermineComponentFrameRoot\"\n });\n }\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split(\"\\n\");\n var controlLines = controlStack.split(\"\\n\");\n var s = 0;\n var c = 0;\n while(s < sampleLines.length && !sampleLines[s].includes(\"DetermineComponentFrameRoot\")){\n s++;\n }\n while(c < controlLines.length && !controlLines[c].includes(\"DetermineComponentFrameRoot\")){\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n while(s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]){\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n for(; s >= 1 && c >= 0; s--, c--){\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = \"\\n\" + sampleLines[s].replace(\" at new \", \" at \"); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n if (fn.displayName && _frame.includes(\"<anonymous>\")) {\n _frame = _frame.replace(\"<anonymous>\", fn.displayName);\n }\n if (true) {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n return _frame;\n }\n }while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally{\n reentry = false;\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n var name = fn ? fn.displayName || fn.name : \"\";\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : \"\";\n {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n }\n function describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n }\n function shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n }\n function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n if (type == null) {\n return \"\";\n }\n if (typeof type === \"function\") {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n if (typeof type === \"string\") {\n return describeBuiltInComponentFrame(type);\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n // $FlowFixMe[method-unbinding]\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var loggedTypeFailures = {};\n var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n function setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n }\n function checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n for(var typeSpecName in typeSpecs){\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== \"function\") {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; \" + \"it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\" + \"This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");\n err.name = \"Invariant Violation\";\n throw err;\n }\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\");\n } catch (ex) {\n error$1 = ex;\n }\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement$1(element);\n error(\"%s: type specification of %s\" + \" `%s` is invalid; the type checker \" + \"function must return `null` or an `Error` but returned a %s. \" + \"You may have forgotten to pass an argument to the type checker \" + \"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and \" + \"shape all require an argument).\", componentName || \"React class\", location, typeSpecName, typeof error$1);\n setCurrentlyValidatingElement$1(null);\n }\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement$1(element);\n error(\"Failed %s type: %s\", location, error$1.message);\n setCurrentlyValidatingElement$1(null);\n }\n }\n }\n }\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n /*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */ // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === \"function\" && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || \"Object\"; // $FlowFixMe[incompatible-return]\n return type;\n }\n } // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n }\n function testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided key is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\n var RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n };\n var specialPropKeyWarningShown;\n var specialPropRefWarningShown;\n var didWarnAboutStringRefs;\n {\n didWarnAboutStringRefs = {};\n }\n function hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, \"ref\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"ref\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n }\n function hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n }\n function warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === \"string\" && ReactCurrentOwner$1.current && self && ReactCurrentOwner$1.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + \"Support for string refs will be removed in a future major release. \" + \"This case cannot be automatically converted to an arrow function. \" + \"We ask you to manually fix this case by using useRef() or createRef() instead. \" + \"Learn more about using refs safely here: \" + \"https://reactjs.org/link/strict-mode-string-ref\", getComponentNameFromType(ReactCurrentOwner$1.current.type), config.ref);\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n }\n function defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function() {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n error(\"%s: `key` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n }\n function defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function() {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n error(\"%s: `ref` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, \"ref\", {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n }\n /**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */ function ReactElement(type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n Object.defineProperty(element._store, \"validated\", {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n Object.defineProperty(element, \"_self\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, \"_source\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n return element;\n }\n /**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */ function jsxDEV$1(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n key = \"\" + maybeKey;\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n }\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for(propName in defaultProps){\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (key || ref) {\n var displayName = typeof type === \"function\" ? type.displayName || type.name || \"Unknown\" : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner$1.current, props);\n }\n }\n var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n function setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n }\n var propTypesMisspellWarningShown;\n {\n propTypesMisspellWarningShown = false;\n }\n /**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */ function isValidElement(object) {\n {\n return typeof object === \"object\" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n }\n function getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (name) {\n return \"\\n\\nCheck the render method of `\" + name + \"`.\";\n }\n }\n return \"\";\n }\n }\n function getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, \"\");\n var lineNumber = source.lineNumber;\n return \"\\n\\nCheck your code at \" + fileName + \":\" + lineNumber + \".\";\n }\n return \"\";\n }\n }\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */ var ownerHasKeyUseWarning = {};\n function getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n if (!info) {\n var parentName = getComponentNameFromType(parentType);\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n return info;\n }\n }\n /**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */ function validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = \"\";\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n setCurrentlyValidatingElement(element);\n error('Each child in a list should have a unique \"key\" prop.' + \"%s%s See https://reactjs.org/link/warning-keys for more information.\", currentComponentErrorInfo, childOwner);\n setCurrentlyValidatingElement(null);\n }\n }\n /**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */ function validateChildKeys(node, parentType) {\n {\n if (typeof node !== \"object\" || !node) {\n return;\n }\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ;\n else if (isArray(node)) {\n for(var i = 0; i < node.length; i++){\n var child = node[i];\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else {\n var iteratorFn = getIteratorFn(node);\n if (typeof iteratorFn === \"function\") {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while(!(step = iterator.next()).done){\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n }\n /**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */ function validatePropTypes(element) {\n {\n var type = element.type;\n if (type === null || type === undefined || typeof type === \"string\") {\n return;\n }\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\n return;\n }\n var propTypes;\n if (typeof type === \"function\") {\n propTypes = type.propTypes;\n } else if (typeof type === \"object\" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, \"prop\", name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n var _name = getComponentNameFromType(type);\n error(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\", _name || \"Unknown\");\n }\n if (typeof type.getDefaultProps === \"function\" && !type.getDefaultProps.isReactClassApproved) {\n error(\"getDefaultProps is only used on classic React.createClass \" + \"definitions. Use a static property named `defaultProps` instead.\");\n }\n }\n }\n /**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */ function validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n for(var i = 0; i < keys.length; i++){\n var key = keys[i];\n if (key !== \"children\" && key !== \"key\") {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid prop `%s` supplied to `React.Fragment`. \" + \"React.Fragment can only have `key` and `children` props.\", key);\n setCurrentlyValidatingElement(null);\n break;\n }\n }\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid attribute `ref` supplied to `React.Fragment`.\");\n setCurrentlyValidatingElement(null);\n }\n }\n }\n var didWarnAboutKeySpread = {};\n function jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n var info = \"\";\n if (type === undefined || typeof type === \"object\" && type !== null && Object.keys(type).length === 0) {\n info += \" You likely forgot to export your component from the file \" + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n var sourceInfo = getSourceInfoErrorAddendum(source);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n var typeString;\n if (type === null) {\n typeString = \"null\";\n } else if (isArray(type)) {\n typeString = \"array\";\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || \"Unknown\") + \" />\";\n info = \" Did you accidentally export a JSX literal instead of a component?\";\n } else {\n typeString = typeof type;\n }\n error(\"React.jsx: type is invalid -- expected a string (for \" + \"built-in components) or a class/function (for composite \" + \"components) but got: %s.%s\", typeString, info);\n }\n var element = jsxDEV$1(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n var children = props.children;\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for(var i = 0; i < children.length; i++){\n validateChildKeys(children[i], type);\n }\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error(\"React.jsx: Static children should always be an array. \" + \"You are likely explicitly calling React.jsxs or React.jsxDEV. \" + \"Use the Babel transform instead.\");\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n if (hasOwnProperty.call(props, \"key\")) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function(k) {\n return k !== \"key\";\n });\n var beforeExample = keys.length > 0 ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\" : \"{key: someKey}\";\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\";\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + \" let props = %s;\\n\" + \" <%s {...props} />\\n\" + \"React keys must be passed directly to JSX without using spread:\\n\" + \" let props = %s;\\n\" + \" <%s key={someKey} {...props} />\", beforeExample, componentName, afterExample, componentName);\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n return element;\n }\n } // These two functions exist to still get child warnings in dev\n var jsxDEV = jsxWithValidation;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = jsxDEV;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztDQVFDLEdBRUQ7QUFFQSxJQUFJQSxJQUFxQyxFQUFFO0lBQ3hDO1FBQ0g7UUFFQSxJQUFJQyxRQUFRQyxtQkFBT0EsQ0FBQyw0RkFBMEI7UUFFOUMsWUFBWTtRQUNaLHdDQUF3QztRQUN4QyxrRkFBa0Y7UUFDbEYsc0RBQXNEO1FBQ3RELElBQUlDLHFCQUFxQkMsT0FBT0MsR0FBRyxDQUFDO1FBQ3BDLElBQUlDLG9CQUFvQkYsT0FBT0MsR0FBRyxDQUFDO1FBQ25DLElBQUlFLHNCQUFzQkgsT0FBT0MsR0FBRyxDQUFDO1FBQ3JDLElBQUlHLHlCQUF5QkosT0FBT0MsR0FBRyxDQUFDO1FBQ3hDLElBQUlJLHNCQUFzQkwsT0FBT0MsR0FBRyxDQUFDO1FBQ3JDLElBQUlLLHNCQUFzQk4sT0FBT0MsR0FBRyxDQUFDO1FBQ3JDLElBQUlNLHFCQUFxQlAsT0FBT0MsR0FBRyxDQUFDO1FBQ3BDLElBQUlPLHlCQUF5QlIsT0FBT0MsR0FBRyxDQUFDO1FBQ3hDLElBQUlRLHNCQUFzQlQsT0FBT0MsR0FBRyxDQUFDO1FBQ3JDLElBQUlTLDJCQUEyQlYsT0FBT0MsR0FBRyxDQUFDO1FBQzFDLElBQUlVLGtCQUFrQlgsT0FBT0MsR0FBRyxDQUFDO1FBQ2pDLElBQUlXLGtCQUFrQlosT0FBT0MsR0FBRyxDQUFDO1FBQ2pDLElBQUlZLHVCQUF1QmIsT0FBT0MsR0FBRyxDQUFDO1FBQ3RDLElBQUlhLG1CQUFtQmQsT0FBT0MsR0FBRyxDQUFDO1FBQ2xDLElBQUljLHdCQUF3QmYsT0FBT2dCLFFBQVE7UUFDM0MsSUFBSUMsdUJBQXVCO1FBQzNCLFNBQVNDLGNBQWNDLGFBQWE7WUFDbEMsSUFBSUEsa0JBQWtCLFFBQVEsT0FBT0Esa0JBQWtCLFVBQVU7Z0JBQy9ELE9BQU87WUFD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O29CQUNyQyxJQUFJdUUsZ0JBQWdCdkcseUJBQXlCYjtvQkFDN0MsSUFBSXNNLE9BQU8zSyxPQUFPMkssSUFBSSxDQUFDekosT0FBT2lLLE1BQU0sQ0FBQyxTQUFVQyxDQUFDO3dCQUM5QyxPQUFPQSxNQUFNO29CQUNmO29CQUNBLElBQUlDLGdCQUFnQlYsS0FBS2pPLE1BQU0sR0FBRyxJQUFJLG9CQUFvQmlPLEtBQUtXLElBQUksQ0FBQyxhQUFhLFdBQVc7b0JBRTVGLElBQUksQ0FBQ1YscUJBQXFCLENBQUNuRixnQkFBZ0I0RixjQUFjLEVBQUU7d0JBQ3pELElBQUlFLGVBQWVaLEtBQUtqTyxNQUFNLEdBQUcsSUFBSSxNQUFNaU8sS0FBS1csSUFBSSxDQUFDLGFBQWEsV0FBVzt3QkFFN0VoUCxNQUFNLHVFQUF1RSx3QkFBd0IsMEJBQTBCLHNFQUFzRSx3QkFBd0IscUNBQXFDK08sZUFBZTVGLGVBQWU4RixjQUFjOUY7d0JBRTlTbUYscUJBQXFCLENBQUNuRixnQkFBZ0I0RixjQUFjLEdBQUc7b0JBQ3pEO2dCQUNGO2dCQUVBLElBQUloTixTQUFTbkQscUJBQXFCO29CQUNoQ3VQLHNCQUFzQnpGO2dCQUN4QixPQUFPO29CQUNMbUYsa0JBQWtCbkY7Z0JBQ3BCO2dCQUVBLE9BQU9BO1lBQ1Q7UUFDRixFQUFFLCtEQUErRDtRQUVqRSxJQUFJd0csU0FBU1g7UUFFYlksZ0JBQWdCLEdBQUd2UTtRQUNuQnVRLGNBQWMsR0FBR0Q7SUFDZjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanM/NGM5YSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3RcIik7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpO1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJyk7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGF6eScpO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG52YXIgUkVBQ1RfQ0FDSEVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNhY2hlJyk7XG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gU3ltYm9sLml0ZXJhdG9yO1xudmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InO1xuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1heWJlSXRlcmF0b3IgPSBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdO1xuXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBtYXliZUl0ZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmcobGV2ZWwsIGZvcm1hdCwgYXJncykge1xuICAvLyBXaGVuIGNoYW5naW5nIHRoaXMgbG9naWMsIHlvdSBtaWdodCB3YW50IHRvIGFsc29cbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXG4gIHtcbiAgICB2YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICBpZiAoc3RhY2sgIT09ICcnKSB7XG4gICAgICBmb3JtYXQgKz0gJyVzJztcbiAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdChbc3RhY2tdKTtcbiAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgICB2YXIgYXJnc1dpdGhGb3JtYXQgPSBhcmdzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcblxuICAgIGFyZ3NXaXRoRm9ybWF0LnVuc2hpZnQoJ1dhcm5pbmc6ICcgKyBmb3JtYXQpOyAvLyBXZSBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBzcHJlYWQgKG9yIC5hcHBseSkgZGlyZWN0bHkgYmVjYXVzZSBpdFxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG5cbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnZhciBlbmFibGVTY29wZUFQSSA9IGZhbHNlOyAvLyBFeHBlcmltZW50YWwgQ3JlYXRlIEV2ZW50IEhhbmRsZSBBUEkuXG52YXIgZW5hYmxlQ2FjaGVFbGVtZW50ID0gZmFsc2U7XG52YXIgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgPSBmYWxzZTsgLy8gTm8ga25vd24gYnVncywgYnV0IG5lZWRzIHBlcmZvcm1hbmNlIHRlc3RpbmdcblxudmFyIGVuYWJsZUxlZ2FjeUhpZGRlbiA9IGZhbHNlOyAvLyBFbmFibGVzIHVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrIGZlYXR1cmUgaW4gRmliZXJcbi8vIHN0dWZmLiBJbnRlbmRlZCB0byBlbmFibGUgUmVhY3QgY29yZSBtZW1iZXJzIHRvIG1vcmUgZWFzaWx5IGRlYnVnIHNjaGVkdWxpbmdcbi8vIGlzc3VlcyBpbiBERVYgYnVpbGRzLlxuXG52YXIgZW5hYmxlRGVidWdUcmFjaW5nID0gZmFsc2U7XG5cbnZhciBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7XG5mdW5jdGlvbiBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gLy8gTm90ZTogdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgKGUuZy4gaWYgaXQncyBhIHBvbHlmaWxsKS5cblxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgZW5hYmxlRGVidWdUcmFjaW5nICB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IGVuYWJsZUxlZ2FjeUhpZGRlbiAgfHwgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgIHx8IGVuYWJsZUNhY2hlRWxlbWVudCAgfHwgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIFRoaXMgbmVlZHMgdG8gaW5jbHVkZSBhbGwgcG9zc2libGUgbW9kdWxlIHJlZmVyZW5jZSBvYmplY3RcbiAgICAvLyB0eXBlcyBzdXBwb3J0ZWQgYnkgYW55IEZsaWdodCBjb25maWd1cmF0aW9uIGFueXdoZXJlIHNpbmNlXG4gICAgLy8gd2UgZG9uJ3Qga25vdyB3aGljaCBGbGlnaHQgYnVpbGQgdGhpcyB3aWxsIGVuZCB1cCBiZWluZyB1c2VkXG4gICAgLy8gd2l0aC5cbiAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIgfHwgdHlwZS5nZXRNb2R1bGVJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldFdyYXBwZWROYW1lKG91dGVyVHlwZSwgaW5uZXJUeXBlLCB3cmFwcGVyTmFtZSkge1xuICB2YXIgZGlzcGxheU5hbWUgPSBvdXRlclR5cGUuZGlzcGxheU5hbWU7XG5cbiAgaWYgKGRpc3BsYXlOYW1lKSB7XG4gICAgcmV0dXJuIGRpc3BsYXlOYW1lO1xuICB9XG5cbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIGZ1bmN0aW9uTmFtZSAhPT0gJycgPyB3cmFwcGVyTmFtZSArIFwiKFwiICsgZnVuY3Rpb25OYW1lICsgXCIpXCIgOiB3cmFwcGVyTmFtZTtcbn0gLy8gS2VlcCBpbiBzeW5jIHdpdGggcmVhY3QtcmVjb25jaWxlci9nZXRDb21wb25lbnROYW1lRnJvbUZpYmVyXG5cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbnZhciBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDEgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7IC8vIE5vdGUgdGhhdCB0aGUgcmVjb25jaWxlciBwYWNrYWdlIHNob3VsZCBnZW5lcmFsbHkgcHJlZmVyIHRvIHVzZSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKCkgaW5zdGVhZC5cblxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIC8vIEhvc3Qgcm9vdCwgdGV4dCBub2RlIG9yIGp1c3QgaW52YWxpZCB0eXBlLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSkge1xuICAgICAgLy8gVE9ETzogQ3JlYXRlIGEgY29udmVudGlvbiBmb3IgbmFtaW5nIGNsaWVudCByZWZlcmVuY2VzIHdpdGggZGVidWcgaW5mby5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XG5cbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xuXG4gICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N0cmljdE1vZGUnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2VMaXN0JztcblxuICAgIGNhc2UgUkVBQ1RfQ0FDSEVfVFlQRTpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuICdDYWNoZSc7XG4gICAgICB9XG5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICB7XG4gICAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgICBlcnJvcignUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHZhciBvdXRlck5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGw7XG5cbiAgICAgICAgaWYgKG91dGVyTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBvdXRlck5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgJ01lbW8nO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoaW5pdChwYXlsb2FkKSk7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcbi8vIHJlcGxheWluZyBvbiByZW5kZXIgZnVuY3Rpb24uIFRoaXMgY3VycmVudGx5IG9ubHkgcGF0Y2hlcyB0aGUgb2JqZWN0XG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cbnZhciBkaXNhYmxlZERlcHRoID0gMDtcbnZhciBwcmV2TG9nO1xudmFyIHByZXZJbmZvO1xudmFyIHByZXZXYXJuO1xudmFyIHByZXZFcnJvcjtcbnZhciBwcmV2R3JvdXA7XG52YXIgcHJldkdyb3VwQ29sbGFwc2VkO1xudmFyIHByZXZHcm91cEVuZDtcblxuZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xuZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxuXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBsb2c6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkxvZ1xuICAgICAgICB9KSxcbiAgICAgICAgaW5mbzogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2V2FyblxuICAgICAgICB9KSxcbiAgICAgICAgZXJyb3I6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkVycm9yXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cENvbGxhcHNlZFxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXBFbmQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwRW5kXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPCAwKSB7XG4gICAgICBlcnJvcignZGlzYWJsZWREZXB0aCBmZWxsIGJlbG93IHplcm8uICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjtcbnZhciBwcmVmaXg7XG5mdW5jdGlvbiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRXh0cmFjdCB0aGUgVk0gc3BlY2lmaWMgcHJlZml4IHVzZWQgYnkgZWFjaCBsaW5lLlxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgdmFyIG1hdGNoID0geC5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtcbiAgICAgICAgcHJlZml4ID0gbWF0Y2ggJiYgbWF0Y2hbMV0gfHwgJyc7XG4gICAgICB9XG4gICAgfSAvLyBXZSB1c2UgdGhlIHByZWZpeCB0byBlbnN1cmUgb3VyIHN0YWNrcyBsaW5lIHVwIHdpdGggbmF0aXZlIHN0YWNrIGZyYW1lcy5cblxuXG4gICAgcmV0dXJuICdcXG4nICsgcHJlZml4ICsgbmFtZTtcbiAgfVxufVxudmFyIHJlZW50cnkgPSBmYWxzZTtcbnZhciBjb21wb25lbnRGcmFtZUNhY2hlO1xuXG57XG4gIHZhciBQb3NzaWJseVdlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IFdlYWtNYXAgOiBNYXA7XG4gIGNvbXBvbmVudEZyYW1lQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7XG59XG4vKipcbiAqIExldmVyYWdlcyBuYXRpdmUgYnJvd3Nlci9WTSBzdGFjayBmcmFtZXMgdG8gZ2V0IHByb3BlciBkZXRhaWxzIChlLmcuXG4gKiBmaWxlbmFtZSwgbGluZSArIGNvbCBudW1iZXIpIGZvciBhIHNpbmdsZSBjb21wb25lbnQgaW4gYSBjb21wb25lbnQgc3RhY2suIFdlXG4gKiBkbyB0aGlzIGJ5OlxuICogICAoMSkgdGhyb3dpbmcgYW5kIGNhdGNoaW5nIGFuIGVycm9yIGluIHRoZSBmdW5jdGlvbiAtIHRoaXMgd2lsbCBiZSBvdXJcbiAqICAgICAgIGNvbnRyb2wgZXJyb3IuXG4gKiAgICgyKSBjYWxsaW5nIHRoZSBjb21wb25lbnQgd2hpY2ggd2lsbCBldmVudHVhbGx5IHRocm93IGFuIGVycm9yIHRoYXQgd2UnbGxcbiAqICAgICAgIGNhdGNoIC0gdGhpcyB3aWxsIGJlIG91ciBzYW1wbGUgZXJyb3IuXG4gKiAgICgzKSBkaWZmaW5nIHRoZSBjb250cm9sIGFuZCBzYW1wbGUgZXJyb3Igc3RhY2tzIHRvIGZpbmQgdGhlIHN0YWNrIGZyYW1lXG4gKiAgICAgICB3aGljaCByZXByZXNlbnRzIG91ciBjb21wb25lbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHtcbiAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XG5cbiAgICBpZiAoZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH1cbiAgfVxuXG4gIHJlZW50cnkgPSB0cnVlO1xuICB2YXIgcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXSBJdCBkb2VzIGFjY2VwdCB1bmRlZmluZWQuXG5cbiAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB1bmRlZmluZWQ7XG4gIHZhciBwcmV2aW91c0Rpc3BhdGNoZXI7XG5cbiAge1xuICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudDsgLy8gU2V0IHRoZSBkaXNwYXRjaGVyIGluIERFViBiZWNhdXNlIHRoaXMgbWlnaHQgYmUgY2FsbCBpbiB0aGUgcmVuZGVyIGZ1bmN0aW9uXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxuXG4gICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gbnVsbDtcbiAgICBkaXNhYmxlTG9ncygpO1xuICB9XG4gIC8qKlxuICAgKiBGaW5kaW5nIGEgY29tbW9uIHN0YWNrIGZyYW1lIGJldHdlZW4gc2FtcGxlIGFuZCBjb250cm9sIGVycm9ycyBjYW4gYmVcbiAgICogdHJpY2t5IGdpdmVuIHRoZSBkaWZmZXJlbnQgdHlwZXMgYW5kIGxldmVscyBvZiBzdGFjayB0cmFjZSB0cnVuY2F0aW9uIGZyb21cbiAgICogZGlmZmVyZW50IEpTIFZNcy4gU28gaW5zdGVhZCB3ZSdsbCBhdHRlbXB0IHRvIGNvbnRyb2wgd2hhdCB0aGF0IGNvbW1vblxuICAgKiBmcmFtZSBzaG91bGQgYmUgdGhyb3VnaCB0aGlzIG9iamVjdCBtZXRob2Q6XG4gICAqIEhhdmluZyBib3RoIHRoZSBzYW1wbGUgYW5kIGNvbnRyb2wgZXJyb3JzIGJlIGluIHRoZSBmdW5jdGlvbiB1bmRlciB0aGVcbiAgICogYERlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWVSb290YCBwcm9wZXJ0eSwgKyBzZXR0aW5nIHRoZSBgbmFtZWAgYW5kXG4gICAqIGBkaXNwbGF5TmFtZWAgcHJvcGVydGllcyBvZiB0aGUgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IGEgc3RhY2tcbiAgICogZnJhbWUgZXhpc3RzIHRoYXQgaGFzIHRoZSBtZXRob2QgbmFtZSBgRGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZVJvb3RgIGluXG4gICAqIGl0IGZvciBib3RoIGNvbnRyb2wgYW5kIHNhbXBsZSBzdGFja3MuXG4gICAqL1xuXG5cbiAgdmFyIFJ1bkluUm9vdEZyYW1lID0ge1xuICAgIERldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDogZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGNvbnRyb2w7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxuICAgICAgICBpZiAoY29uc3RydWN0KSB7XG4gICAgICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgIH07IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuXG5cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAvLyBXZSB1c2UgYSB0aHJvd2luZyBzZXR0ZXIgaW5zdGVhZCBvZiBmcm96ZW4gb3Igbm9uLXdyaXRhYmxlIHByb3BzXG4gICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgICAgIC8vIFdlIGNvbnN0cnVjdCBhIGRpZmZlcmVudCBjb250cm9sIGZvciB0aGlzIGNhc2UgdG8gaW5jbHVkZSBhbnkgZXh0cmFcbiAgICAgICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChGYWtlLCBbXSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgICB9IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXSBmb3VuZCB3aGVuIHVwZ3JhZGluZyBGbG93XG5cblxuICAgICAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgIH0gLy8gVE9ETyhsdW5hKTogVGhpcyB3aWxsIGN1cnJlbnRseSBvbmx5IHRocm93IGlmIHRoZSBmdW5jdGlvbiBjb21wb25lbnRcbiAgICAgICAgICAvLyB0cmllcyB0byBhY2Nlc3MgUmVhY3QvUmVhY3RET00vcHJvcHMuIFdlIHNob3VsZCBwcm9iYWJseSBtYWtlIHRoaXMgdGhyb3dcbiAgICAgICAgICAvLyBpbiBzaW1wbGUgY29tcG9uZW50cyB0b29cblxuXG4gICAgICAgICAgdmFyIG1heWJlUHJvbWlzZSA9IGZuKCk7IC8vIElmIHRoZSBmdW5jdGlvbiBjb21wb25lbnQgcmV0dXJucyBhIHByb21pc2UsIGl0J3MgbGlrZWx5IGFuIGFzeW5jXG4gICAgICAgICAgLy8gY29tcG9uZW50LCB3aGljaCB3ZSBkb24ndCB5ZXQgc3VwcG9ydC4gQXR0YWNoIGEgbm9vcCBjYXRjaCBoYW5kbGVyIHRvXG4gICAgICAgICAgLy8gc2lsZW5jZSB0aGUgZXJyb3IuXG4gICAgICAgICAgLy8gVE9ETzogSW1wbGVtZW50IGNvbXBvbmVudCBzdGFja3MgZm9yIGFzeW5jIGNsaWVudCBjb21wb25lbnRzP1xuXG4gICAgICAgICAgaWYgKG1heWJlUHJvbWlzZSAmJiB0eXBlb2YgbWF5YmVQcm9taXNlLmNhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBtYXliZVByb21pc2UuY2F0Y2goZnVuY3Rpb24gKCkge30pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXG4gICAgICAgIGlmIChzYW1wbGUgJiYgY29udHJvbCAmJiB0eXBlb2Ygc2FtcGxlLnN0YWNrID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBbc2FtcGxlLnN0YWNrLCBjb250cm9sLnN0YWNrXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW251bGwsIG51bGxdO1xuICAgIH1cbiAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lID0gJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCc7XG4gIHZhciBuYW1lUHJvcERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCwgJ25hbWUnKTsgLy8gQmVmb3JlIEVTNiwgdGhlIGBuYW1lYCBwcm9wZXJ0eSB3YXMgbm90IGNvbmZpZ3VyYWJsZS5cblxuICBpZiAobmFtZVByb3BEZXNjcmlwdG9yICYmIG5hbWVQcm9wRGVzY3JpcHRvci5jb25maWd1cmFibGUpIHtcbiAgICAvLyBWOCB1dGlsaXplcyBhIGZ1bmN0aW9uJ3MgYG5hbWVgIHByb3BlcnR5IHdoZW4gZ2VuZXJhdGluZyBhIHN0YWNrIHRyYWNlLlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIC8vIENvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzIGNhbiBiZSB1cGRhdGVkIGV2ZW4gaWYgaXRzIHdyaXRhYmxlIGRlc2NyaXB0b3JcbiAgICAvLyBpcyBzZXQgdG8gYGZhbHNlYC5cbiAgICAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV1cbiAgICAnbmFtZScsIHtcbiAgICAgIHZhbHVlOiAnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290J1xuICAgIH0pO1xuICB9XG5cbiAgdHJ5IHtcbiAgICB2YXIgX1J1bkluUm9vdEZyYW1lJERldGVyID0gUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290KCksXG4gICAgICAgIHNhbXBsZVN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzBdLFxuICAgICAgICBjb250cm9sU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMV07XG5cbiAgICBpZiAoc2FtcGxlU3RhY2sgJiYgY29udHJvbFN0YWNrKSB7XG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGVTdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbFN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgIHZhciBzID0gMDtcbiAgICAgIHZhciBjID0gMDtcblxuICAgICAgd2hpbGUgKHMgPCBzYW1wbGVMaW5lcy5sZW5ndGggJiYgIXNhbXBsZUxpbmVzW3NdLmluY2x1ZGVzKCdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnKSkge1xuICAgICAgICBzKys7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChjIDwgY29udHJvbExpbmVzLmxlbmd0aCAmJiAhY29udHJvbExpbmVzW2NdLmluY2x1ZGVzKCdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnKSkge1xuICAgICAgICBjKys7XG4gICAgICB9IC8vIFdlIGNvdWxkbid0IGZpbmQgb3VyIGludGVudGlvbmFsbHkgaW5qZWN0ZWQgY29tbW9uIHJvb3QgZnJhbWUsIGF0dGVtcHRcbiAgICAgIC8vIHRvIGZpbmQgYW5vdGhlciBjb21tb24gcm9vdCBmcmFtZSBieSBzZWFyY2ggZnJvbSB0aGUgYm90dG9tIG9mIHRoZVxuICAgICAgLy8gY29udHJvbCBzdGFjay4uLlxuXG5cbiAgICAgIGlmIChzID09PSBzYW1wbGVMaW5lcy5sZW5ndGggfHwgYyA9PT0gY29udHJvbExpbmVzLmxlbmd0aCkge1xuICAgICAgICBzID0gc2FtcGxlTGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICAgIHdoaWxlIChzID49IDEgJiYgYyA+PSAwICYmIHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAvLyBXZSBleHBlY3QgYXQgbGVhc3Qgb25lIHN0YWNrIGZyYW1lIHRvIGJlIHNoYXJlZC5cbiAgICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgICAgLy8gY3V0IG9mZiBkdWUgdG8gbWF4aW11bSBzdGFjayBsaW1pdHMuIEluIHRoaXMgY2FzZSwgb25lIG1heWJlIGN1dCBvZmZcbiAgICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdGhlIG90aGVyLiBXZSBhc3N1bWUgdGhhdCB0aGUgc2FtcGxlIGlzIGxvbmdlciBvciB0aGUgc2FtZVxuICAgICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgICAgLy8gdGhlIHNhbXBsZSBzb21ld2hlcmUgaW4gdGhlIGNvbnRyb2wuXG4gICAgICAgICAgYy0tO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpOyAvLyBJZiBvdXIgY29tcG9uZW50IGZyYW1lIGlzIGxhYmVsZWQgXCI8YW5vbnltb3VzPlwiXG4gICAgICAgICAgICAgICAgLy8gYnV0IHdlIGhhdmUgYSB1c2VyLXByb3ZpZGVkIFwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgIC8vIHNwbGljZSBpdCBpbiB0byBtYWtlIHRoZSBzdGFjayBtb3JlIHJlYWRhYmxlLlxuXG5cbiAgICAgICAgICAgICAgICBpZiAoZm4uZGlzcGxheU5hbWUgJiYgX2ZyYW1lLmluY2x1ZGVzKCc8YW5vbnltb3VzPicpKSB7XG4gICAgICAgICAgICAgICAgICBfZnJhbWUgPSBfZnJhbWUucmVwbGFjZSgnPGFub255bW91cz4nLCBmbi5kaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRydWUpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXG5cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlZW50cnkgPSBmYWxzZTtcblxuICAgIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IHByZXZpb3VzRGlzcGF0Y2hlcjtcbiAgICAgIHJlZW5hYmxlTG9ncygpO1xuICAgIH1cblxuICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZTtcbiAgfSAvLyBGYWxsYmFjayB0byBqdXN0IHVzaW5nIHRoZSBuYW1lIGlmIHdlIGNvdWxkbid0IG1ha2UgaXQgdGhyb3cuXG5cblxuICB2YXIgbmFtZSA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6ICcnO1xuICB2YXIgc3ludGhldGljRnJhbWUgPSBuYW1lID8gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkgOiAnJztcblxuICB7XG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIHN5bnRoZXRpY0ZyYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3ludGhldGljRnJhbWU7XG59XG5mdW5jdGlvbiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUoZm4sIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUsIHNvdXJjZSwgb3duZXJGbikge1xuXG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZSh0eXBlLCBzaG91bGRDb25zdHJ1Y3QodHlwZSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUodHlwZSk7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlJyk7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2VMaXN0Jyk7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgLy8gTWVtbyBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLnR5cGUsIHNvdXJjZSwgb3duZXJGbik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gTGF6eSBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoaW5pdChwYXlsb2FkKSwgc291cmNlLCBvd25lckZuKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG4vLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yJDEgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCcpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yJDEgPSBleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IkMS5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvciQxLm1lc3NhZ2VdID0gdHJ1ZTtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYSkge1xuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XG59XG5cbi8qXG4gKiBUaGUgYCcnICsgdmFsdWVgIHBhdHRlcm4gKHVzZWQgaW4gcGVyZi1zZW5zaXRpdmUgY29kZSkgdGhyb3dzIGZvciBTeW1ib2xcbiAqIGFuZCBUZW1wb3JhbC4qIHR5cGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjIwNjQuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB3aWxsIHRocm93IGFuIGVhc2llci10by11bmRlcnN0YW5kLFxuICogZWFzaWVyLXRvLWRlYnVnIGV4Y2VwdGlvbiB3aXRoIGEgY2xlYXIgZXJyb3JzIG1lc3NhZ2UgbWVzc2FnZSBleHBsYWluaW5nIHRoZVxuICogcHJvYmxlbS4gKEluc3RlYWQgb2YgYSBjb25mdXNpbmcgZXhjZXB0aW9uIHRocm93biBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uXG4gKiBvZiB0aGUgYHZhbHVlYCBvYmplY3QpLlxuICovXG4vLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuZnVuY3Rpb24gdHlwZU5hbWUodmFsdWUpIHtcbiAge1xuICAgIC8vIHRvU3RyaW5nVGFnIGlzIG5lZWRlZCBmb3IgbmFtZXNwYWNlZCB0eXBlcyBsaWtlIFRlbXBvcmFsLkluc3RhbnRcbiAgICB2YXIgaGFzVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC50b1N0cmluZ1RhZztcbiAgICB2YXIgdHlwZSA9IGhhc1RvU3RyaW5nVGFnICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gfHwgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fCAnT2JqZWN0JzsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cblxuXG5mdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xuICB7XG4gICAgdHJ5IHtcbiAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAvLyBJZiB5b3UgZW5kZWQgdXAgaGVyZSBieSBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uIGNhbGwgc3RhY2ssIGhlcmUncyB3aGF0J3NcbiAgLy8gaGFwcGVuZWQ6IHlvdSBzdXBwbGllZCBhbiBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIFJlYWN0IChhcyBhIHByb3AsIGtleSxcbiAgLy8gRE9NIGF0dHJpYnV0ZSwgQ1NTIHByb3BlcnR5LCBzdHJpbmcgcmVmLCBldGMuKSBhbmQgd2hlbiBSZWFjdCB0cmllZCB0b1xuICAvLyBjb2VyY2UgaXQgdG8gYSBzdHJpbmcgdXNpbmcgYCcnICsgdmFsdWVgLCBhbiBleGNlcHRpb24gd2FzIHRocm93bi5cbiAgLy9cbiAgLy8gVGhlIG1vc3QgY29tbW9uIHR5cGVzIHRoYXQgd2lsbCBjYXVzZSB0aGlzIGV4Y2VwdGlvbiBhcmUgYFN5bWJvbGAgaW5zdGFuY2VzXG4gIC8vIGFuZCBUZW1wb3JhbCBvYmplY3RzIGxpa2UgYFRlbXBvcmFsLkluc3RhbnRgLiBCdXQgYW55IG9iamVjdCB0aGF0IGhhcyBhXG4gIC8vIGB2YWx1ZU9mYCBvciBgW1N5bWJvbC50b1ByaW1pdGl2ZV1gIG1ldGhvZCB0aGF0IHRocm93cyB3aWxsIGFsc28gY2F1c2UgdGhpc1xuICAvLyBleGNlcHRpb24uIChMaWJyYXJ5IGF1dGhvcnMgZG8gdGhpcyB0byBwcmV2ZW50IHVzZXJzIGZyb20gdXNpbmcgYnVpbHQtaW5cbiAgLy8gbnVtZXJpYyBvcGVyYXRvcnMgbGlrZSBgK2Agb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgbGlrZSBgPj1gIGJlY2F1c2UgY3VzdG9tXG4gIC8vIG1ldGhvZHMgYXJlIG5lZWRlZCB0byBwZXJmb3JtIGFjY3VyYXRlIGFyaXRobWV0aWMgb3IgY29tcGFyaXNvbi4pXG4gIC8vXG4gIC8vIFRvIGZpeCB0aGUgcHJvYmxlbSwgY29lcmNlIHRoaXMgb2JqZWN0IG9yIHN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyBiZWZvcmVcbiAgLy8gcGFzc2luZyBpdCB0byBSZWFjdC4gVGhlIG1vc3QgcmVsaWFibGUgd2F5IGlzIHVzdWFsbHkgYFN0cmluZyh2YWx1ZSlgLlxuICAvL1xuICAvLyBUbyBmaW5kIHdoaWNoIHZhbHVlIGlzIHRocm93aW5nLCBjaGVjayB0aGUgYnJvd3NlciBvciBkZWJ1Z2dlciBjb25zb2xlLlxuICAvLyBCZWZvcmUgdGhpcyBleGNlcHRpb24gd2FzIHRocm93biwgdGhlcmUgc2hvdWxkIGJlIGBjb25zb2xlLmVycm9yYCBvdXRwdXRcbiAgLy8gdGhhdCBzaG93cyB0aGUgdHlwZSAoU3ltYm9sLCBUZW1wb3JhbC5QbGFpbkRhdGUsIGV0Yy4pIHRoYXQgY2F1c2VkIHRoZVxuICAvLyBwcm9ibGVtIGFuZCBob3cgdGhhdCB0eXBlIHdhcyB1c2VkOiBrZXksIGF0cnJpYnV0ZSwgaW5wdXQgdmFsdWUgcHJvcCwgZXRjLlxuICAvLyBJbiBtb3N0IGNhc2VzLCB0aGlzIGNvbnNvbGUgb3V0cHV0IGFsc28gc2hvd3MgdGhlIGNvbXBvbmVudCBhbmQgaXRzXG4gIC8vIGFuY2VzdG9yIGNvbXBvbmVudHMgd2hlcmUgdGhlIGV4Y2VwdGlvbiBoYXBwZW5lZC5cbiAgLy9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gIHJldHVybiAnJyArIHZhbHVlO1xufVxuZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd247XG52YXIgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd247XG52YXIgZGlkV2FybkFib3V0U3RyaW5nUmVmcztcblxue1xuICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzID0ge307XG59XG5cbmZ1bmN0aW9uIGhhc1ZhbGlkUmVmKGNvbmZpZykge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAncmVmJykpIHtcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ3JlZicpLmdldDtcblxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWcucmVmICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAna2V5JykpIHtcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ2tleScpLmdldDtcblxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWcua2V5ICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcsIHNlbGYpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ICYmIHNlbGYgJiYgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnN0YXRlTm9kZSAhPT0gc2VsZikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnR5cGUpO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZXJyb3IoJ0NvbXBvbmVudCBcIiVzXCIgY29udGFpbnMgdGhlIHN0cmluZyByZWYgXCIlc1wiLiAnICsgJ1N1cHBvcnQgZm9yIHN0cmluZyByZWZzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiAnICsgJ1RoaXMgY2FzZSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gYW4gYXJyb3cgZnVuY3Rpb24uICcgKyAnV2UgYXNrIHlvdSB0byBtYW51YWxseSBmaXggdGhpcyBjYXNlIGJ5IHVzaW5nIHVzZVJlZigpIG9yIGNyZWF0ZVJlZigpIGluc3RlYWQuICcgKyAnTGVhcm4gbW9yZSBhYm91dCB1c2luZyByZWZzIHNhZmVseSBoZXJlOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudC50eXBlKSwgY29uZmlnLnJlZik7XG5cbiAgICAgICAgZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB7XG4gICAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ0tleSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYGtleWAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2FybkFib3V0QWNjZXNzaW5nS2V5LmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ0tleSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB7XG4gICAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYHJlZmAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2FybkFib3V0QWNjZXNzaW5nUmVmLmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdyZWYnLCB7XG4gICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG4vKipcbiAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIG5ldyBSZWFjdCBlbGVtZW50LiBUaGlzIG5vIGxvbmdlciBhZGhlcmVzIHRvXG4gKiB0aGUgY2xhc3MgcGF0dGVybiwgc28gZG8gbm90IHVzZSBuZXcgdG8gY2FsbCBpdC4gQWxzbywgaW5zdGFuY2VvZiBjaGVja1xuICogd2lsbCBub3Qgd29yay4gSW5zdGVhZCB0ZXN0ICQkdHlwZW9mIGZpZWxkIGFnYWluc3QgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIHRvIGNoZWNrXG4gKiBpZiBzb21ldGhpbmcgaXMgYSBSZWFjdCBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7Kn0gdHlwZVxuICogQHBhcmFtIHsqfSBwcm9wc1xuICogQHBhcmFtIHsqfSBrZXlcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gcmVmXG4gKiBAcGFyYW0geyp9IG93bmVyXG4gKiBAcGFyYW0geyp9IHNlbGYgQSAqdGVtcG9yYXJ5KiBoZWxwZXIgdG8gZGV0ZWN0IHBsYWNlcyB3aGVyZSBgdGhpc2AgaXNcbiAqIGRpZmZlcmVudCBmcm9tIHRoZSBgb3duZXJgIHdoZW4gUmVhY3QuY3JlYXRlRWxlbWVudCBpcyBjYWxsZWQsIHNvIHRoYXQgd2VcbiAqIGNhbiB3YXJuLiBXZSB3YW50IHRvIGdldCByaWQgb2Ygb3duZXIgYW5kIHJlcGxhY2Ugc3RyaW5nIGByZWZgcyB3aXRoIGFycm93XG4gKiBmdW5jdGlvbnMsIGFuZCBhcyBsb25nIGFzIGB0aGlzYCBhbmQgb3duZXIgYXJlIHRoZSBzYW1lLCB0aGVyZSB3aWxsIGJlIG5vXG4gKiBjaGFuZ2UgaW4gYmVoYXZpb3IuXG4gKiBAcGFyYW0geyp9IHNvdXJjZSBBbiBhbm5vdGF0aW9uIG9iamVjdCAoYWRkZWQgYnkgYSB0cmFuc3BpbGVyIG9yIG90aGVyd2lzZSlcbiAqIGluZGljYXRpbmcgZmlsZW5hbWUsIGxpbmUgbnVtYmVyLCBhbmQvb3Igb3RoZXIgaW5mb3JtYXRpb24uXG4gKiBAaW50ZXJuYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgdmFyIGVsZW1lbnQgPSB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3dzIHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAvLyBCdWlsdC1pbiBwcm9wZXJ0aWVzIHRoYXQgYmVsb25nIG9uIHRoZSBlbGVtZW50XG4gICAgdHlwZTogdHlwZSxcbiAgICBrZXk6IGtleSxcbiAgICByZWY6IHJlZixcbiAgICBwcm9wczogcHJvcHMsXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cbiAgICBfb3duZXI6IG93bmVyXG4gIH07XG5cbiAge1xuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxuICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBXZWFrTWFwIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQgaW5cbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmYWxzZVxuICAgIH0pOyAvLyBzZWxmIGFuZCBzb3VyY2UgYXJlIERFViBvbmx5IHByb3BlcnRpZXMuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNlbGZcbiAgICB9KTsgLy8gVHdvIGVsZW1lbnRzIGNyZWF0ZWQgaW4gdHdvIGRpZmZlcmVudCBwbGFjZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWRcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzb3VyY2VcbiAgICB9KTtcblxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmZjcy9wdWxsLzEwN1xuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqL1xuXG5mdW5jdGlvbiBqc3hERVYkMSh0eXBlLCBjb25maWcsIG1heWJlS2V5LCBzb3VyY2UsIHNlbGYpIHtcbiAge1xuICAgIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gICAgdmFyIHByb3BzID0ge307XG4gICAgdmFyIGtleSA9IG51bGw7XG4gICAgdmFyIHJlZiA9IG51bGw7IC8vIEN1cnJlbnRseSwga2V5IGNhbiBiZSBzcHJlYWQgaW4gYXMgYSBwcm9wLiBUaGlzIGNhdXNlcyBhIHBvdGVudGlhbFxuICAgIC8vIGlzc3VlIGlmIGtleSBpcyBhbHNvIGV4cGxpY2l0bHkgZGVjbGFyZWQgKGllLiA8ZGl2IHsuLi5wcm9wc30ga2V5PVwiSGlcIiAvPlxuICAgIC8vIG9yIDxkaXYga2V5PVwiSGlcIiB7Li4ucHJvcHN9IC8+ICkuIFdlIHdhbnQgdG8gZGVwcmVjYXRlIGtleSBzcHJlYWQsXG4gICAgLy8gYnV0IGFzIGFuIGludGVybWVkaWFyeSBzdGVwLCB3ZSB3aWxsIHVzZSBqc3hERVYgZm9yIGV2ZXJ5dGhpbmcgZXhjZXB0XG4gICAgLy8gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz4sIGJlY2F1c2Ugd2UgYXJlbid0IGN1cnJlbnRseSBhYmxlIHRvIHRlbGwgaWZcbiAgICAvLyBrZXkgaXMgZXhwbGljaXRseSBkZWNsYXJlZCB0byBiZSB1bmRlZmluZWQgb3Igbm90LlxuXG4gICAgaWYgKG1heWJlS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXliZUtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgbWF5YmVLZXk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICByZWYgPSBjb25maWcucmVmO1xuICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZywgc2VsZik7XG4gICAgfSAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cblxuICAgIGZvciAocHJvcE5hbWUgaW4gY29uZmlnKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIHByb3BOYW1lKSAmJiAhUkVTRVJWRURfUFJPUFMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfSAvLyBSZXNvbHZlIGRlZmF1bHQgcHJvcHNcblxuXG4gICAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgICAgZm9yIChwcm9wTmFtZSBpbiBkZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChrZXkgfHwgcmVmKSB7XG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZikge1xuICAgICAgICBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LCBwcm9wcyk7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bjtcblxue1xuICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IGZhbHNlO1xufVxuLyoqXG4gKiBWZXJpZmllcyB0aGUgb2JqZWN0IGlzIGEgUmVhY3RFbGVtZW50LlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNpc3ZhbGlkZWxlbWVudFxuICogQHBhcmFtIHs/b2JqZWN0fSBvYmplY3RcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgYG9iamVjdGAgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBAZmluYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIHtcbiAgICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAge1xuICAgIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICAgIHZhciBsaW5lTnVtYmVyID0gc291cmNlLmxpbmVOdW1iZXI7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuLyoqXG4gKiBXYXJuIGlmIHRoZXJlJ3Mgbm8ga2V5IGV4cGxpY2l0bHkgc2V0IG9uIGR5bmFtaWMgYXJyYXlzIG9mIGNoaWxkcmVuIG9yXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cbiAqIHVwZGF0ZXMuXG4gKi9cblxuXG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSkge1xuICB7XG4gICAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICAgIGlmICghaW5mbykge1xuICAgICAgdmFyIHBhcmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUocGFyZW50VHlwZSk7XG5cbiAgICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICAgIGluZm8gPSBcIlxcblxcbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPFwiICsgcGFyZW50TmFtZSArIFwiPi5cIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaW5mbztcbiAgfVxufVxuLyoqXG4gKiBXYXJuIGlmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXkgYXNzaWduZWQgdG8gaXQuXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcbiAqIHJlb3JkZXJlZC4gQWxsIGNoaWxkcmVuIHRoYXQgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFyZSByZXF1aXJlZCB0b1xuICogaGF2ZSBhIFwia2V5XCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXG4gKiB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBlbGVtZW50J3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKCFlbGVtZW50Ll9zdG9yZSB8fCBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgfHwgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xuXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gICAgLy8gcHJvcGVydHksIGl0IG1heSBiZSB0aGUgY3JlYXRvciBvZiB0aGUgY2hpbGQgdGhhdCdzIHJlc3BvbnNpYmxlIGZvclxuICAgIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cblxuICAgIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9vd25lciAhPT0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0JyB8fCAhbm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChub2RlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSA7IGVsc2UgaWYgKGlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hpbGQgPSBub2RlW2ldO1xuXG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAgIC8vIFRoaXMgZWxlbWVudCB3YXMgcGFzc2VkIGluIGEgdmFsaWQgbG9jYXRpb24uXG4gICAgICBpZiAobm9kZS5fc3RvcmUpIHtcbiAgICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cbiAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IG5vZGUuZW50cmllcykge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgICB2YXIgc3RlcDtcblxuICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxuICogcHJvdmlkZWQgYnkgdGhlIHR5cGUuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuXG4gICAgICBlcnJvcignQ29tcG9uZW50ICVzIGRlY2xhcmVkIGBQcm9wVHlwZXNgIGluc3RlYWQgb2YgYHByb3BUeXBlc2AuIERpZCB5b3UgbWlzc3BlbGwgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQ/JywgX25hbWUgfHwgJ1Vua25vd24nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHR5cGUuZ2V0RGVmYXVsdFByb3BzID09PSAnZnVuY3Rpb24nICYmICF0eXBlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBSZWFjdC5jcmVhdGVDbGFzcyAnICsgJ2RlZmluaXRpb25zLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgYGRlZmF1bHRQcm9wc2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBmcmFnbWVudCwgdmFsaWRhdGUgdGhhdCBpdCBjYW4gb25seSBiZSBwcm92aWRlZCB3aXRoIGZyYWdtZW50IHByb3BzXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xuICB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhmcmFnbWVudC5wcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ICE9PSAnY2hpbGRyZW4nICYmIGtleSAhPT0gJ2tleScpIHtcbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgYHJlZmAgc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4nKTtcblxuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcbmZ1bmN0aW9uIGpzeFdpdGhWYWxpZGF0aW9uKHR5cGUsIHByb3BzLCBrZXksIGlzU3RhdGljQ2hpbGRyZW4sIHNvdXJjZSwgc2VsZikge1xuICB7XG4gICAgdmFyIHZhbGlkVHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKTsgLy8gV2Ugd2FybiBpbiB0aGlzIGNhc2UgYnV0IGRvbid0IHRocm93LiBXZSBleHBlY3QgdGhlIGVsZW1lbnQgY3JlYXRpb24gdG9cbiAgICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuXG4gICAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICAgIHZhciBpbmZvID0gJyc7XG5cbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgICB9XG5cbiAgICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKTtcblxuICAgICAgaWYgKHNvdXJjZUluZm8pIHtcbiAgICAgICAgaW5mbyArPSBzb3VyY2VJbmZvO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5mbyArPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkodHlwZSkpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9ICdhcnJheSc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdVbmtub3duJykgKyBcIiAvPlwiO1xuICAgICAgICBpbmZvID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBleHBvcnQgYSBKU1ggbGl0ZXJhbCBpbnN0ZWFkIG9mIGEgY29tcG9uZW50Pyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XG4gICAgICB9XG5cbiAgICAgIGVycm9yKCdSZWFjdC5qc3g6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XG4gICAgfVxuXG4gICAgdmFyIGVsZW1lbnQgPSBqc3hERVYkMSh0eXBlLCBwcm9wcywga2V5LCBzb3VyY2UsIHNlbGYpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAgIC8vIFRPRE86IERyb3AgdGhpcyB3aGVuIHRoZXNlIGFyZSBubyBsb25nZXIgYWxsb3dlZCBhcyB0aGUgdHlwZSBhcmd1bWVudC5cblxuICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0gLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcbiAgICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gICAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXG4gICAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuXG5cbiAgICBpZiAodmFsaWRUeXBlKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcblxuICAgICAgaWYgKGNoaWxkcmVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baV0sIHR5cGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCAna2V5JykpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhwcm9wcykuZmlsdGVyKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgIHJldHVybiBrICE9PSAna2V5JztcbiAgICAgIH0pO1xuICAgICAgdmFyIGJlZm9yZUV4YW1wbGUgPSBrZXlzLmxlbmd0aCA+IDAgPyAne2tleTogc29tZUtleSwgJyArIGtleXMuam9pbignOiAuLi4sICcpICsgJzogLi4ufScgOiAne2tleTogc29tZUtleX0nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEtleVNwcmVhZFtjb21wb25lbnROYW1lICsgYmVmb3JlRXhhbXBsZV0pIHtcbiAgICAgICAgdmFyIGFmdGVyRXhhbXBsZSA9IGtleXMubGVuZ3RoID4gMCA/ICd7JyArIGtleXMuam9pbignOiAuLi4sICcpICsgJzogLi4ufScgOiAne30nO1xuXG4gICAgICAgIGVycm9yKCdBIHByb3BzIG9iamVjdCBjb250YWluaW5nIGEgXCJrZXlcIiBwcm9wIGlzIGJlaW5nIHNwcmVhZCBpbnRvIEpTWDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyB7Li4ucHJvcHN9IC8+XFxuJyArICdSZWFjdCBrZXlzIG11c3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIEpTWCB3aXRob3V0IHVzaW5nIHNwcmVhZDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyBrZXk9e3NvbWVLZXl9IHsuLi5wcm9wc30gLz4nLCBiZWZvcmVFeGFtcGxlLCBjb21wb25lbnROYW1lLCBhZnRlckV4YW1wbGUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dEtleVNwcmVhZFtjb21wb25lbnROYW1lICsgYmVmb3JlRXhhbXBsZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG59IC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgZXhpc3QgdG8gc3RpbGwgZ2V0IGNoaWxkIHdhcm5pbmdzIGluIGRldlxuXG52YXIganN4REVWID0ganN4V2l0aFZhbGlkYXRpb24gO1xuXG5leHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbmV4cG9ydHMuanN4REVWID0ganN4REVWO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJSZWFjdCIsInJlcXVpcmUiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJTeW1ib2wiLCJmb3IiLCJSRUFDVF9QT1JUQUxfVFlQRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIiwiUkVBQ1RfUFJPRklMRVJfVFlQRSIsIlJFQUNUX1BST1ZJREVSX1RZUEUiLCJSRUFDVF9DT05URVhUX1RZUEUiLCJSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIiwiUkVBQ1RfU1VTUEVOU0VfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSIsIlJFQUNUX01FTU9fVFlQRSIsIlJFQUNUX0xBWllfVFlQRSIsIlJFQUNUX09GRlNDUkVFTl9UWVBFIiwiUkVBQ1RfQ0FDSEVfVFlQRSIsIk1BWUJFX0lURVJBVE9SX1NZTUJPTCIsIml0ZXJhdG9yIiwiRkFVWF9JVEVSQVRPUl9TWU1CT0wiLCJnZXRJdGVyYXRvckZuIiwibWF5YmVJdGVyYWJsZSIsIm1heWJlSXRlcmF0b3IiLCJSZWFjdFNoYXJlZEludGVybmFscyIsIl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEIiwiZXJyb3IiLCJmb3JtYXQiLCJfbGVuMiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkyIiwicHJpbnRXYXJuaW5nIiwibGV2ZWwiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lIiwic3RhY2siLCJnZXRTdGFja0FkZGVuZHVtIiwiY29uY2F0IiwiYXJnc1dpdGhGb3JtYXQiLCJtYXAiLCJpdGVtIiwiU3RyaW5nIiwidW5zaGlmdCIsIkZ1bmN0aW9uIiwicHJvdG90eXBlIiwiYXBwbHkiLCJjYWxsIiwiY29uc29sZSIsImVuYWJsZVNjb3BlQVBJIiwiZW5hYmxlQ2FjaGVFbGVtZW50IiwiZW5hYmxlVHJhbnNpdGlvblRyYWNpbmciLCJlbmFibGVMZWdhY3lIaWRkZW4iLCJlbmFibGVEZWJ1Z1RyYWNpbmciLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJ0eXBlIiwiJCR0eXBlb2YiLCJnZXRNb2R1bGVJZCIsInVuZGVmaW5lZCIsImdldFdyYXBwZWROYW1lIiwib3V0ZXJUeXBlIiwiaW5uZXJUeXBlIiwid3JhcHBlck5hbWUiLCJkaXNwbGF5TmFtZSIsImZ1bmN0aW9uTmFtZSIsIm5hbWUiLCJnZXRDb250ZXh0TmFtZSIsIlJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSIsImdldENvbXBvbmVudE5hbWVGcm9tVHlwZSIsInRhZyIsImNvbnRleHQiLCJwcm92aWRlciIsIl9jb250ZXh0IiwicmVuZGVyIiwib3V0ZXJOYW1lIiwibGF6eUNvbXBvbmVudCIsInBheWxvYWQiLCJfcGF5bG9hZCIsImluaXQiLCJfaW5pdCIsIngiLCJhc3NpZ24iLCJPYmplY3QiLCJkaXNhYmxlZERlcHRoIiwicHJldkxvZyIsInByZXZJbmZvIiwicHJldldhcm4iLCJwcmV2RXJyb3IiLCJwcmV2R3JvdXAiLCJwcmV2R3JvdXBDb2xsYXBzZWQiLCJwcmV2R3JvdXBFbmQiLCJkaXNhYmxlZExvZyIsIl9fcmVhY3REaXNhYmxlZExvZyIsImRpc2FibGVMb2dzIiwibG9nIiwiaW5mbyIsIndhcm4iLCJncm91cCIsImdyb3VwQ29sbGFwc2VkIiwiZ3JvdXBFbmQiLCJwcm9wcyIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ2YWx1ZSIsIndyaXRhYmxlIiwiZGVmaW5lUHJvcGVydGllcyIsInJlZW5hYmxlTG9ncyIsIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCJwcmVmaXgiLCJkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSIsInNvdXJjZSIsIm93bmVyRm4iLCJFcnJvciIsIm1hdGNoIiwidHJpbSIsInJlZW50cnkiLCJjb21wb25lbnRGcmFtZUNhY2hlIiwiUG9zc2libHlXZWFrTWFwIiwiV2Vha01hcCIsIk1hcCIsImRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUiLCJmbiIsImNvbnN0cnVjdCIsImZyYW1lIiwiZ2V0IiwicHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSIsInByZXBhcmVTdGFja1RyYWNlIiwicHJldmlvdXNEaXNwYXRjaGVyIiwiY3VycmVudCIsIlJ1bkluUm9vdEZyYW1lIiwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290IiwiY29udHJvbCIsIkZha2UiLCJkZWZpbmVQcm9wZXJ0eSIsInNldCIsIlJlZmxlY3QiLCJtYXliZVByb21pc2UiLCJjYXRjaCIsInNhbXBsZSIsIm5hbWVQcm9wRGVzY3JpcHRvciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9SdW5JblJvb3RGcmFtZSREZXRlciIsInNhbXBsZVN0YWNrIiwiY29udHJvbFN0YWNrIiwic2FtcGxlTGluZXMiLCJzcGxpdCIsImNvbnRyb2xMaW5lcyIsInMiLCJjIiwiaW5jbHVkZXMiLCJfZnJhbWUiLCJyZXBsYWNlIiwic3ludGhldGljRnJhbWUiLCJkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUiLCJzaG91bGRDb25zdHJ1Y3QiLCJDb21wb25lbnQiLCJpc1JlYWN0Q29tcG9uZW50IiwiZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWIiwiaGFzT3duUHJvcGVydHkiLCJsb2dnZWRUeXBlRmFpbHVyZXMiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEiLCJzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxIiwiZWxlbWVudCIsIm93bmVyIiwiX293bmVyIiwiX3NvdXJjZSIsInNldEV4dHJhU3RhY2tGcmFtZSIsImNoZWNrUHJvcFR5cGVzIiwidHlwZVNwZWNzIiwidmFsdWVzIiwibG9jYXRpb24iLCJjb21wb25lbnROYW1lIiwiaGFzIiwiYmluZCIsInR5cGVTcGVjTmFtZSIsImVycm9yJDEiLCJlcnIiLCJleCIsIm1lc3NhZ2UiLCJpc0FycmF5SW1wbCIsImlzQXJyYXkiLCJhIiwidHlwZU5hbWUiLCJoYXNUb1N0cmluZ1RhZyIsInRvU3RyaW5nVGFnIiwiY29uc3RydWN0b3IiLCJ3aWxsQ29lcmNpb25UaHJvdyIsInRlc3RTdHJpbmdDb2VyY2lvbiIsImUiLCJjaGVja0tleVN0cmluZ0NvZXJjaW9uIiwiUmVhY3RDdXJyZW50T3duZXIkMSIsIlJlYWN0Q3VycmVudE93bmVyIiwiUkVTRVJWRURfUFJPUFMiLCJrZXkiLCJyZWYiLCJfX3NlbGYiLCJfX3NvdXJjZSIsInNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duIiwic3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24iLCJkaWRXYXJuQWJvdXRTdHJpbmdSZWZzIiwiaGFzVmFsaWRSZWYiLCJjb25maWciLCJnZXR0ZXIiLCJpc1JlYWN0V2FybmluZyIsImhhc1ZhbGlkS2V5Iiwid2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkIiwic2VsZiIsInN0YXRlTm9kZSIsImRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyIiwid2FybkFib3V0QWNjZXNzaW5nS2V5IiwiZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIiLCJ3YXJuQWJvdXRBY2Nlc3NpbmdSZWYiLCJSZWFjdEVsZW1lbnQiLCJfc3RvcmUiLCJmcmVlemUiLCJqc3hERVYkMSIsIm1heWJlS2V5IiwicHJvcE5hbWUiLCJkZWZhdWx0UHJvcHMiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFIiwic2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQiLCJwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biIsImlzVmFsaWRFbGVtZW50Iiwib2JqZWN0IiwiZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtIiwiZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0iLCJmaWxlTmFtZSIsImxpbmVOdW1iZXIiLCJvd25lckhhc0tleVVzZVdhcm5pbmciLCJnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvIiwicGFyZW50VHlwZSIsInBhcmVudE5hbWUiLCJ2YWxpZGF0ZUV4cGxpY2l0S2V5IiwidmFsaWRhdGVkIiwiY3VycmVudENvbXBvbmVudEVycm9ySW5mbyIsImNoaWxkT3duZXIiLCJ2YWxpZGF0ZUNoaWxkS2V5cyIsIm5vZGUiLCJpIiwiY2hpbGQiLCJpdGVyYXRvckZuIiwiZW50cmllcyIsInN0ZXAiLCJuZXh0IiwiZG9uZSIsInZhbGlkYXRlUHJvcFR5cGVzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiX25hbWUiLCJnZXREZWZhdWx0UHJvcHMiLCJpc1JlYWN0Q2xhc3NBcHByb3ZlZCIsInZhbGlkYXRlRnJhZ21lbnRQcm9wcyIsImZyYWdtZW50Iiwia2V5cyIsImRpZFdhcm5BYm91dEtleVNwcmVhZCIsImpzeFdpdGhWYWxpZGF0aW9uIiwiaXNTdGF0aWNDaGlsZHJlbiIsInZhbGlkVHlwZSIsInNvdXJjZUluZm8iLCJ0eXBlU3RyaW5nIiwiY2hpbGRyZW4iLCJmaWx0ZXIiLCJrIiwiYmVmb3JlRXhhbXBsZSIsImpvaW4iLCJhZnRlckV4YW1wbGUiLCJqc3hERVYiLCJleHBvcnRzIiwiRnJhZ21lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js":
-/*!****************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js ***!
- \****************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\n var REACT_CACHE_TYPE = Symbol.for(\"react.cache\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n // -----------------------------------------------------------------------------\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n var enableCacheElement = false;\n var enableTransitionTracing = false; // No known bugs, but needs performance testing\n var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n // stuff. Intended to enable React core members to more easily debug scheduling\n // issues in DEV builds.\n var enableDebugTracing = false;\n var REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\");\n function isValidElementType(type) {\n if (typeof type === \"string\" || typeof type === \"function\") {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n return true;\n }\n if (typeof type === \"object\" && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE$2 || type.getModuleId !== undefined) {\n return true;\n }\n }\n return false;\n }\n function getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n if (displayName) {\n return displayName;\n }\n var functionName = innerType.displayName || innerType.name || \"\";\n return functionName !== \"\" ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n } // Keep in sync with react-reconciler/getComponentNameFromFiber\n function getContextName(type) {\n return type.displayName || \"Context\";\n }\n var REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\"); // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n function getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n if (typeof type === \"function\") {\n if (type.$$typeof === REACT_CLIENT_REFERENCE$1) {\n // TODO: Create a convention for naming client references with debug info.\n return null;\n }\n return type.displayName || type.name || null;\n }\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_CACHE_TYPE:\n {\n return \"Cache\";\n }\n }\n if (typeof type === \"object\") {\n {\n if (typeof type.tag === \"number\") {\n error(\"Received an unexpected object in getComponentNameFromType(). \" + \"This is likely a bug in React. Please file an issue.\");\n }\n }\n switch(type.$$typeof){\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, \"ForwardRef\");\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n if (outerName !== null) {\n return outerName;\n }\n return getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n return null;\n }\n var assign = Object.assign;\n // Helpers to patch console.logs to avoid logging during side-effect free\n // replaying on render function. This currently only patches the object\n // lazily which won't cover if the log function was extracted eagerly.\n // We could also eagerly patch the method.\n var disabledDepth = 0;\n var prevLog;\n var prevInfo;\n var prevWarn;\n var prevError;\n var prevGroup;\n var prevGroupCollapsed;\n var prevGroupEnd;\n function disabledLog() {}\n disabledLog.__reactDisabledLog = true;\n function disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */ }\n disabledDepth++;\n }\n }\n function reenableLogs() {\n {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */ }\n if (disabledDepth < 0) {\n error(\"disabledDepth fell below zero. \" + \"This is a bug in React. Please file an issue.\");\n }\n }\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n var prefix;\n function describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || \"\";\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n return \"\\n\" + prefix + name;\n }\n }\n var reentry = false;\n var componentFrameCache;\n {\n var PossiblyWeakMap = typeof WeakMap === \"function\" ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n }\n /**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */ function describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return \"\";\n }\n {\n var frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */ var RunInRootFrame = {\n DetermineComponentFrameRoot: function() {\n var control;\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function() {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function() {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n if (typeof Reflect === \"object\" && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n if (maybePromise && typeof maybePromise.catch === \"function\") {\n maybePromise.catch(function() {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === \"string\") {\n return [\n sample.stack,\n control.stack\n ];\n }\n }\n return [\n null,\n null\n ];\n }\n }; // $FlowFixMe[prop-missing]\n RunInRootFrame.DetermineComponentFrameRoot.displayName = \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, \"name\"); // Before ES6, the `name` property was not configurable.\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // is set to `false`.\n // $FlowFixMe[cannot-write]\n \"name\", {\n value: \"DetermineComponentFrameRoot\"\n });\n }\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split(\"\\n\");\n var controlLines = controlStack.split(\"\\n\");\n var s = 0;\n var c = 0;\n while(s < sampleLines.length && !sampleLines[s].includes(\"DetermineComponentFrameRoot\")){\n s++;\n }\n while(c < controlLines.length && !controlLines[c].includes(\"DetermineComponentFrameRoot\")){\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n while(s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]){\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n for(; s >= 1 && c >= 0; s--, c--){\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = \"\\n\" + sampleLines[s].replace(\" at new \", \" at \"); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n if (fn.displayName && _frame.includes(\"<anonymous>\")) {\n _frame = _frame.replace(\"<anonymous>\", fn.displayName);\n }\n if (true) {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n return _frame;\n }\n }while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally{\n reentry = false;\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n var name = fn ? fn.displayName || fn.name : \"\";\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : \"\";\n {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n }\n function describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n }\n function shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n }\n function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n if (type == null) {\n return \"\";\n }\n if (typeof type === \"function\") {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n if (typeof type === \"string\") {\n return describeBuiltInComponentFrame(type);\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n // $FlowFixMe[method-unbinding]\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var loggedTypeFailures = {};\n var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n function setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n }\n function checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n for(var typeSpecName in typeSpecs){\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== \"function\") {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; \" + \"it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\" + \"This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");\n err.name = \"Invariant Violation\";\n throw err;\n }\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\");\n } catch (ex) {\n error$1 = ex;\n }\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement$1(element);\n error(\"%s: type specification of %s\" + \" `%s` is invalid; the type checker \" + \"function must return `null` or an `Error` but returned a %s. \" + \"You may have forgotten to pass an argument to the type checker \" + \"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and \" + \"shape all require an argument).\", componentName || \"React class\", location, typeSpecName, typeof error$1);\n setCurrentlyValidatingElement$1(null);\n }\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement$1(element);\n error(\"Failed %s type: %s\", location, error$1.message);\n setCurrentlyValidatingElement$1(null);\n }\n }\n }\n }\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n /*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */ // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === \"function\" && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || \"Object\"; // $FlowFixMe[incompatible-return]\n return type;\n }\n } // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n }\n function testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided key is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\n var RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n };\n var specialPropKeyWarningShown;\n var specialPropRefWarningShown;\n var didWarnAboutStringRefs;\n {\n didWarnAboutStringRefs = {};\n }\n function hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, \"ref\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"ref\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n }\n function hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n }\n function warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === \"string\" && ReactCurrentOwner$1.current && self && ReactCurrentOwner$1.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + \"Support for string refs will be removed in a future major release. \" + \"This case cannot be automatically converted to an arrow function. \" + \"We ask you to manually fix this case by using useRef() or createRef() instead. \" + \"Learn more about using refs safely here: \" + \"https://reactjs.org/link/strict-mode-string-ref\", getComponentNameFromType(ReactCurrentOwner$1.current.type), config.ref);\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n }\n function defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function() {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n error(\"%s: `key` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n }\n function defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function() {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n error(\"%s: `ref` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, \"ref\", {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n }\n /**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */ function ReactElement(type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n Object.defineProperty(element._store, \"validated\", {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n Object.defineProperty(element, \"_self\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, \"_source\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n return element;\n }\n /**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */ function jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n key = \"\" + maybeKey;\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n }\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for(propName in defaultProps){\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (key || ref) {\n var displayName = typeof type === \"function\" ? type.displayName || type.name || \"Unknown\" : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner$1.current, props);\n }\n }\n var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n function setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n }\n var propTypesMisspellWarningShown;\n {\n propTypesMisspellWarningShown = false;\n }\n /**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */ function isValidElement(object) {\n {\n return typeof object === \"object\" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n }\n function getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (name) {\n return \"\\n\\nCheck the render method of `\" + name + \"`.\";\n }\n }\n return \"\";\n }\n }\n function getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, \"\");\n var lineNumber = source.lineNumber;\n return \"\\n\\nCheck your code at \" + fileName + \":\" + lineNumber + \".\";\n }\n return \"\";\n }\n }\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */ var ownerHasKeyUseWarning = {};\n function getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n if (!info) {\n var parentName = getComponentNameFromType(parentType);\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n return info;\n }\n }\n /**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */ function validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = \"\";\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n setCurrentlyValidatingElement(element);\n error('Each child in a list should have a unique \"key\" prop.' + \"%s%s See https://reactjs.org/link/warning-keys for more information.\", currentComponentErrorInfo, childOwner);\n setCurrentlyValidatingElement(null);\n }\n }\n /**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */ function validateChildKeys(node, parentType) {\n {\n if (typeof node !== \"object\" || !node) {\n return;\n }\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ;\n else if (isArray(node)) {\n for(var i = 0; i < node.length; i++){\n var child = node[i];\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else {\n var iteratorFn = getIteratorFn(node);\n if (typeof iteratorFn === \"function\") {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while(!(step = iterator.next()).done){\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n }\n /**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */ function validatePropTypes(element) {\n {\n var type = element.type;\n if (type === null || type === undefined || typeof type === \"string\") {\n return;\n }\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\n return;\n }\n var propTypes;\n if (typeof type === \"function\") {\n propTypes = type.propTypes;\n } else if (typeof type === \"object\" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, \"prop\", name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n var _name = getComponentNameFromType(type);\n error(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\", _name || \"Unknown\");\n }\n if (typeof type.getDefaultProps === \"function\" && !type.getDefaultProps.isReactClassApproved) {\n error(\"getDefaultProps is only used on classic React.createClass \" + \"definitions. Use a static property named `defaultProps` instead.\");\n }\n }\n }\n /**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */ function validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n for(var i = 0; i < keys.length; i++){\n var key = keys[i];\n if (key !== \"children\" && key !== \"key\") {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid prop `%s` supplied to `React.Fragment`. \" + \"React.Fragment can only have `key` and `children` props.\", key);\n setCurrentlyValidatingElement(null);\n break;\n }\n }\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid attribute `ref` supplied to `React.Fragment`.\");\n setCurrentlyValidatingElement(null);\n }\n }\n }\n var didWarnAboutKeySpread = {};\n function jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n var info = \"\";\n if (type === undefined || typeof type === \"object\" && type !== null && Object.keys(type).length === 0) {\n info += \" You likely forgot to export your component from the file \" + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n var sourceInfo = getSourceInfoErrorAddendum(source);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n var typeString;\n if (type === null) {\n typeString = \"null\";\n } else if (isArray(type)) {\n typeString = \"array\";\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || \"Unknown\") + \" />\";\n info = \" Did you accidentally export a JSX literal instead of a component?\";\n } else {\n typeString = typeof type;\n }\n error(\"React.jsx: type is invalid -- expected a string (for \" + \"built-in components) or a class/function (for composite \" + \"components) but got: %s.%s\", typeString, info);\n }\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n var children = props.children;\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for(var i = 0; i < children.length; i++){\n validateChildKeys(children[i], type);\n }\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error(\"React.jsx: Static children should always be an array. \" + \"You are likely explicitly calling React.jsxs or React.jsxDEV. \" + \"Use the Babel transform instead.\");\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n if (hasOwnProperty.call(props, \"key\")) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function(k) {\n return k !== \"key\";\n });\n var beforeExample = keys.length > 0 ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\" : \"{key: someKey}\";\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\";\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + \" let props = %s;\\n\" + \" <%s {...props} />\\n\" + \"React keys must be passed directly to JSX without using spread:\\n\" + \" let props = %s;\\n\" + \" <%s key={someKey} {...props} />\", beforeExample, componentName, afterExample, componentName);\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n return element;\n }\n } // These two functions exist to still get child warnings in dev\n // even with the prod transform. This means that jsxDEV is purely\n // opt-in behavior for better messages but that we won't stop\n // giving you warnings if you use production apis.\n function jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n }\n function jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n }\n var jsx = jsxWithValidationDynamic; // we may want to special case jsxs internally to take advantage of static children.\n // for now we can ship identical prod functions\n var jsxs = jsxWithValidationStatic;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = jsx;\n exports.jsxs = jsxs;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0NBUUMsR0FFRDtBQUVBLElBQUlBLElBQXFDLEVBQUU7SUFDeEM7UUFDSDtRQUVBLElBQUlDLFFBQVFDLG1CQUFPQSxDQUFDLDRGQUEwQjtRQUU5QyxZQUFZO1FBQ1osd0NBQXdDO1FBQ3hDLGtGQUFrRjtRQUNsRixzREFBc0Q7UUFDdEQsSUFBSUMscUJBQXFCQyxPQUFPQyxHQUFHLENBQUM7UUFDcEMsSUFBSUMsb0JBQW9CRixPQUFPQyxHQUFHLENBQUM7UUFDbkMsSUFBSUUsc0JBQXNCSCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSUcseUJBQXlCSixPQUFPQyxHQUFHLENBQUM7UUFDeEMsSUFBSUksc0JBQXNCTCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSUssc0JBQXNCTixPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSU0scUJBQXFCUCxPQUFPQyxHQUFHLENBQUM7UUFDcEMsSUFBSU8seUJBQXlCUixPQUFPQyxHQUFHLENBQUM7UUFDeEMsSUFBSVEsc0JBQXNCVCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSVMsMkJBQTJCVixPQUFPQyxHQUFHLENBQUM7UUFDMUMsSUFBSVUsa0JBQWtCWCxPQUFPQyxHQUFHLENBQUM7UUFDakMsSUFBSVcsa0JBQWtCWixPQUFPQyxHQUFHLENBQUM7UUFDakMsSUFBSVksdUJBQXVCYixPQUFPQyxHQUFHLENBQUM7UUFDdEMsSUFBSWEsbUJBQW1CZCxPQUFPQyxHQUFHLENBQUM7UUFDbEMsSUFBSWMsd0JBQXdCZixPQUFPZ0IsUUFBUTtRQUMzQyxJQUFJQyx1QkFBdUI7UUFDM0IsU0FBU0MsY0FBY0MsYUFBYTtZQUNsQyxJQUFJQSxrQkFBa0IsUUFBUSxPQUFPQSxrQkFBa0IsVUFBVTtnQkFDL0QsT0FBTztZQUNUO1lB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Z0IsR0FBRzFRO1FBQ25CMFEsV0FBVyxHQUFHRjtRQUNkRSxZQUFZLEdBQUdEO0lBQ2I7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanM/MmJjYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0ID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9yZWFjdFwiKTtcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvdmlkZXInKTtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb250ZXh0Jyk7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKTtcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5vZmZzY3JlZW4nKTtcbnZhciBSRUFDVF9DQUNIRV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY2FjaGUnKTtcbnZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0gUmVhY3QuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG5cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0pO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cbnZhciBlbmFibGVDYWNoZUVsZW1lbnQgPSBmYWxzZTtcbnZhciBlbmFibGVUcmFuc2l0aW9uVHJhY2luZyA9IGZhbHNlOyAvLyBObyBrbm93biBidWdzLCBidXQgbmVlZHMgcGVyZm9ybWFuY2UgdGVzdGluZ1xuXG52YXIgZW5hYmxlTGVnYWN5SGlkZGVuID0gZmFsc2U7IC8vIEVuYWJsZXMgdW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgZmVhdHVyZSBpbiBGaWJlclxuLy8gc3R1ZmYuIEludGVuZGVkIHRvIGVuYWJsZSBSZWFjdCBjb3JlIG1lbWJlcnMgdG8gbW9yZSBlYXNpbHkgZGVidWcgc2NoZWR1bGluZ1xuLy8gaXNzdWVzIGluIERFViBidWlsZHMuXG5cbnZhciBlbmFibGVEZWJ1Z1RyYWNpbmcgPSBmYWxzZTtcblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMiA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBOb3RlOiB0eXBlb2YgbWlnaHQgYmUgb3RoZXIgdGhhbiAnc3ltYm9sJyBvciAnbnVtYmVyJyAoZS5nLiBpZiBpdCdzIGEgcG9seWZpbGwpLlxuXG5cbiAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCBlbmFibGVEZWJ1Z1RyYWNpbmcgIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgZW5hYmxlTGVnYWN5SGlkZGVuICB8fCB0eXBlID09PSBSRUFDVF9PRkZTQ1JFRU5fVFlQRSB8fCBlbmFibGVTY29wZUFQSSAgfHwgZW5hYmxlQ2FjaGVFbGVtZW50ICB8fCBlbmFibGVUcmFuc2l0aW9uVHJhY2luZyApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gVGhpcyBuZWVkcyB0byBpbmNsdWRlIGFsbCBwb3NzaWJsZSBtb2R1bGUgcmVmZXJlbmNlIG9iamVjdFxuICAgIC8vIHR5cGVzIHN1cHBvcnRlZCBieSBhbnkgRmxpZ2h0IGNvbmZpZ3VyYXRpb24gYW55d2hlcmUgc2luY2VcbiAgICAvLyB3ZSBkb24ndCBrbm93IHdoaWNoIEZsaWdodCBidWlsZCB0aGlzIHdpbGwgZW5kIHVwIGJlaW5nIHVzZWRcbiAgICAvLyB3aXRoLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMiB8fCB0eXBlLmdldE1vZHVsZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XG4gIHZhciBkaXNwbGF5TmFtZSA9IG91dGVyVHlwZS5kaXNwbGF5TmFtZTtcblxuICBpZiAoZGlzcGxheU5hbWUpIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XG4gIH1cblxuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xuICByZXR1cm4gZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lO1xufSAvLyBLZWVwIGluIHN5bmMgd2l0aCByZWFjdC1yZWNvbmNpbGVyL2dldENvbXBvbmVudE5hbWVGcm9tRmliZXJcblxuXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0Jztcbn1cblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTsgLy8gTm90ZSB0aGF0IHRoZSByZWNvbmNpbGVyIHBhY2thZ2Ugc2hvdWxkIGdlbmVyYWxseSBwcmVmZXIgdG8gdXNlIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoKSBpbnN0ZWFkLlxuXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQxKSB7XG4gICAgICAvLyBUT0RPOiBDcmVhdGUgYSBjb252ZW50aW9uIGZvciBuYW1pbmcgY2xpZW50IHJlZmVyZW5jZXMgd2l0aCBkZWJ1ZyBpbmZvLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICByZXR1cm4gJ0ZyYWdtZW50JztcblxuICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XG5cbiAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICByZXR1cm4gJ1Byb2ZpbGVyJztcblxuICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuXG4gICAgY2FzZSBSRUFDVF9DQUNIRV9UWVBFOlxuICAgICAge1xuICAgICAgICByZXR1cm4gJ0NhY2hlJztcbiAgICAgIH1cblxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZS50YWcgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGVycm9yKCdSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoKS4gJyArICdUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgdmFyIGNvbnRleHQgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUoY29udGV4dCkgKyAnLkNvbnN1bWVyJztcblxuICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUocHJvdmlkZXIuX2NvbnRleHQpICsgJy5Qcm92aWRlcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldFdyYXBwZWROYW1lKHR5cGUsIHR5cGUucmVuZGVyLCAnRm9yd2FyZFJlZicpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgdmFyIG91dGVyTmFtZSA9IHR5cGUuZGlzcGxheU5hbWUgfHwgbnVsbDtcblxuICAgICAgICBpZiAob3V0ZXJOYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG91dGVyTmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCAnTWVtbyc7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV0gRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgaW5mbzogcHJvcHMsXG4gICAgICAgIGxvZzogcHJvcHMsXG4gICAgICAgIHdhcm46IHByb3BzLFxuICAgICAgICBlcnJvcjogcHJvcHMsXG4gICAgICAgIGdyb3VwOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IHByb3BzLFxuICAgICAgICBncm91cEVuZDogcHJvcHNcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBkaXNhYmxlZERlcHRoKys7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlZW5hYmxlTG9ncygpIHtcbiAge1xuICAgIGRpc2FibGVkRGVwdGgtLTtcblxuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZJbmZvXG4gICAgICAgIH0pLFxuICAgICAgICB3YXJuOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZXYXJuXG4gICAgICAgIH0pLFxuICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cFxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyO1xudmFyIHByZWZpeDtcbmZ1bmN0aW9uIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUsIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgaWYgKHByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBFeHRyYWN0IHRoZSBWTSBzcGVjaWZpYyBwcmVmaXggdXNlZCBieSBlYWNoIGxpbmUuXG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICB2YXIgbWF0Y2ggPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO1xuICAgICAgICBwcmVmaXggPSBtYXRjaCAmJiBtYXRjaFsxXSB8fCAnJztcbiAgICAgIH1cbiAgICB9IC8vIFdlIHVzZSB0aGUgcHJlZml4IHRvIGVuc3VyZSBvdXIgc3RhY2tzIGxpbmUgdXAgd2l0aCBuYXRpdmUgc3RhY2sgZnJhbWVzLlxuXG5cbiAgICByZXR1cm4gJ1xcbicgKyBwcmVmaXggKyBuYW1lO1xuICB9XG59XG52YXIgcmVlbnRyeSA9IGZhbHNlO1xudmFyIGNvbXBvbmVudEZyYW1lQ2FjaGU7XG5cbntcbiAgdmFyIFBvc3NpYmx5V2Vha01hcCA9IHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gV2Vha01hcCA6IE1hcDtcbiAgY29tcG9uZW50RnJhbWVDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTtcbn1cbi8qKlxuICogTGV2ZXJhZ2VzIG5hdGl2ZSBicm93c2VyL1ZNIHN0YWNrIGZyYW1lcyB0byBnZXQgcHJvcGVyIGRldGFpbHMgKGUuZy5cbiAqIGZpbGVuYW1lLCBsaW5lICsgY29sIG51bWJlcikgZm9yIGEgc2luZ2xlIGNvbXBvbmVudCBpbiBhIGNvbXBvbmVudCBzdGFjay4gV2VcbiAqIGRvIHRoaXMgYnk6XG4gKiAgICgxKSB0aHJvd2luZyBhbmQgY2F0Y2hpbmcgYW4gZXJyb3IgaW4gdGhlIGZ1bmN0aW9uIC0gdGhpcyB3aWxsIGJlIG91clxuICogICAgICAgY29udHJvbCBlcnJvci5cbiAqICAgKDIpIGNhbGxpbmcgdGhlIGNvbXBvbmVudCB3aGljaCB3aWxsIGV2ZW50dWFsbHkgdGhyb3cgYW4gZXJyb3IgdGhhdCB3ZSdsbFxuICogICAgICAgY2F0Y2ggLSB0aGlzIHdpbGwgYmUgb3VyIHNhbXBsZSBlcnJvci5cbiAqICAgKDMpIGRpZmZpbmcgdGhlIGNvbnRyb2wgYW5kIHNhbXBsZSBlcnJvciBzdGFja3MgdG8gZmluZCB0aGUgc3RhY2sgZnJhbWVcbiAqICAgICAgIHdoaWNoIHJlcHJlc2VudHMgb3VyIGNvbXBvbmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGNvbnN0cnVjdCkge1xuICAvLyBJZiBzb21ldGhpbmcgYXNrZWQgZm9yIGEgc3RhY2sgaW5zaWRlIGEgZmFrZSByZW5kZXIsIGl0IHNob3VsZCBnZXQgaWdub3JlZC5cbiAgaWYgKCFmbiB8fCByZWVudHJ5KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAge1xuICAgIHZhciBmcmFtZSA9IGNvbXBvbmVudEZyYW1lQ2FjaGUuZ2V0KGZuKTtcblxuICAgIGlmIChmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZnJhbWU7XG4gICAgfVxuICB9XG5cbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIEl0IGRvZXMgYWNjZXB0IHVuZGVmaW5lZC5cblxuICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHVuZGVmaW5lZDtcbiAgdmFyIHByZXZpb3VzRGlzcGF0Y2hlcjtcblxuICB7XG4gICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cbiAgICAvLyBmb3Igd2FybmluZ3MuXG5cbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBudWxsO1xuICAgIGRpc2FibGVMb2dzKCk7XG4gIH1cbiAgLyoqXG4gICAqIEZpbmRpbmcgYSBjb21tb24gc3RhY2sgZnJhbWUgYmV0d2VlbiBzYW1wbGUgYW5kIGNvbnRyb2wgZXJyb3JzIGNhbiBiZVxuICAgKiB0cmlja3kgZ2l2ZW4gdGhlIGRpZmZlcmVudCB0eXBlcyBhbmQgbGV2ZWxzIG9mIHN0YWNrIHRyYWNlIHRydW5jYXRpb24gZnJvbVxuICAgKiBkaWZmZXJlbnQgSlMgVk1zLiBTbyBpbnN0ZWFkIHdlJ2xsIGF0dGVtcHQgdG8gY29udHJvbCB3aGF0IHRoYXQgY29tbW9uXG4gICAqIGZyYW1lIHNob3VsZCBiZSB0aHJvdWdoIHRoaXMgb2JqZWN0IG1ldGhvZDpcbiAgICogSGF2aW5nIGJvdGggdGhlIHNhbXBsZSBhbmQgY29udHJvbCBlcnJvcnMgYmUgaW4gdGhlIGZ1bmN0aW9uIHVuZGVyIHRoZVxuICAgKiBgRGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZVJvb3RgIHByb3BlcnR5LCArIHNldHRpbmcgdGhlIGBuYW1lYCBhbmRcbiAgICogYGRpc3BsYXlOYW1lYCBwcm9wZXJ0aWVzIG9mIHRoZSBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgYSBzdGFja1xuICAgKiBmcmFtZSBleGlzdHMgdGhhdCBoYXMgdGhlIG1ldGhvZCBuYW1lIGBEZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lUm9vdGAgaW5cbiAgICogaXQgZm9yIGJvdGggY29udHJvbCBhbmQgc2FtcGxlIHN0YWNrcy5cbiAgICovXG5cblxuICB2YXIgUnVuSW5Sb290RnJhbWUgPSB7XG4gICAgRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290OiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY29udHJvbDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgICAgICAvLyBTb21ldGhpbmcgc2hvdWxkIGJlIHNldHRpbmcgdGhlIHByb3BzIGluIHRoZSBjb25zdHJ1Y3Rvci5cbiAgICAgICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGYWtlLnByb3RvdHlwZSwgJ3Byb3BzJywge1xuICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcbiAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGF0IHdvbid0IHRocm93IGluIGEgbm9uLXN0cmljdCBtb2RlIGZ1bmN0aW9uLlxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxuICAgICAgICAgICAgLy8gZnJhbWVzIGFkZGVkIGJ5IHRoZSBjb25zdHJ1Y3QgY2FsbC5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KGZuLCBbXSwgRmFrZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIEZha2UuY2FsbCgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICAgIH0gLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcblxuXG4gICAgICAgICAgICBmbi5jYWxsKEZha2UucHJvdG90eXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgfSAvLyBUT0RPKGx1bmEpOiBUaGlzIHdpbGwgY3VycmVudGx5IG9ubHkgdGhyb3cgaWYgdGhlIGZ1bmN0aW9uIGNvbXBvbmVudFxuICAgICAgICAgIC8vIHRyaWVzIHRvIGFjY2VzcyBSZWFjdC9SZWFjdERPTS9wcm9wcy4gV2Ugc2hvdWxkIHByb2JhYmx5IG1ha2UgdGhpcyB0aHJvd1xuICAgICAgICAgIC8vIGluIHNpbXBsZSBjb21wb25lbnRzIHRvb1xuXG5cbiAgICAgICAgICB2YXIgbWF5YmVQcm9taXNlID0gZm4oKTsgLy8gSWYgdGhlIGZ1bmN0aW9uIGNvbXBvbmVudCByZXR1cm5zIGEgcHJvbWlzZSwgaXQncyBsaWtlbHkgYW4gYXN5bmNcbiAgICAgICAgICAvLyBjb21wb25lbnQsIHdoaWNoIHdlIGRvbid0IHlldCBzdXBwb3J0LiBBdHRhY2ggYSBub29wIGNhdGNoIGhhbmRsZXIgdG9cbiAgICAgICAgICAvLyBzaWxlbmNlIHRoZSBlcnJvci5cbiAgICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgY29tcG9uZW50IHN0YWNrcyBmb3IgYXN5bmMgY2xpZW50IGNvbXBvbmVudHM/XG5cbiAgICAgICAgICBpZiAobWF5YmVQcm9taXNlICYmIHR5cGVvZiBtYXliZVByb21pc2UuY2F0Y2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG1heWJlUHJvbWlzZS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzYW1wbGUpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICAgICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIFtzYW1wbGUuc3RhY2ssIGNvbnRyb2wuc3RhY2tdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07XG4gICAgfVxuICB9OyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWUgPSAnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JztcbiAgdmFyIG5hbWVQcm9wRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCAnbmFtZScpOyAvLyBCZWZvcmUgRVM2LCB0aGUgYG5hbWVgIHByb3BlcnR5IHdhcyBub3QgY29uZmlndXJhYmxlLlxuXG4gIGlmIChuYW1lUHJvcERlc2NyaXB0b3IgJiYgbmFtZVByb3BEZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSkge1xuICAgIC8vIFY4IHV0aWxpemVzIGEgZnVuY3Rpb24ncyBgbmFtZWAgcHJvcGVydHkgd2hlbiBnZW5lcmF0aW5nIGEgc3RhY2sgdHJhY2UuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCwgLy8gQ29uZmlndXJhYmxlIHByb3BlcnRpZXMgY2FuIGJlIHVwZGF0ZWQgZXZlbiBpZiBpdHMgd3JpdGFibGUgZGVzY3JpcHRvclxuICAgIC8vIGlzIHNldCB0byBgZmFsc2VgLlxuICAgIC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXVxuICAgICduYW1lJywge1xuICAgICAgdmFsdWU6ICdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnXG4gICAgfSk7XG4gIH1cblxuICB0cnkge1xuICAgIHZhciBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPSBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QoKSxcbiAgICAgICAgc2FtcGxlU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMF0sXG4gICAgICAgIGNvbnRyb2xTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclsxXTtcblxuICAgIGlmIChzYW1wbGVTdGFjayAmJiBjb250cm9sU3RhY2spIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZVN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgIHZhciBjb250cm9sTGluZXMgPSBjb250cm9sU3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIHMgPSAwO1xuICAgICAgdmFyIGMgPSAwO1xuXG4gICAgICB3aGlsZSAocyA8IHNhbXBsZUxpbmVzLmxlbmd0aCAmJiAhc2FtcGxlTGluZXNbc10uaW5jbHVkZXMoJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCcpKSB7XG4gICAgICAgIHMrKztcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKGMgPCBjb250cm9sTGluZXMubGVuZ3RoICYmICFjb250cm9sTGluZXNbY10uaW5jbHVkZXMoJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCcpKSB7XG4gICAgICAgIGMrKztcbiAgICAgIH0gLy8gV2UgY291bGRuJ3QgZmluZCBvdXIgaW50ZW50aW9uYWxseSBpbmplY3RlZCBjb21tb24gcm9vdCBmcmFtZSwgYXR0ZW1wdFxuICAgICAgLy8gdG8gZmluZCBhbm90aGVyIGNvbW1vbiByb290IGZyYW1lIGJ5IHNlYXJjaCBmcm9tIHRoZSBib3R0b20gb2YgdGhlXG4gICAgICAvLyBjb250cm9sIHN0YWNrLi4uXG5cblxuICAgICAgaWYgKHMgPT09IHNhbXBsZUxpbmVzLmxlbmd0aCB8fCBjID09PSBjb250cm9sTGluZXMubGVuZ3RoKSB7XG4gICAgICAgIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICBjID0gY29udHJvbExpbmVzLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAgIC8vIFR5cGljYWxseSB0aGlzIHdpbGwgYmUgdGhlIHJvb3QgbW9zdCBvbmUuIEhvd2V2ZXIsIHN0YWNrIGZyYW1lcyBtYXkgYmVcbiAgICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxuICAgICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYW5kIHRoZXJlIGZvciBjdXQgb2ZmIGVhcmxpZXIuIFNvIHdlIHNob3VsZCBmaW5kIHRoZSByb290IG1vc3QgZnJhbWUgaW5cbiAgICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cbiAgICAgICAgICBjLS07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yICg7IHMgPj0gMSAmJiBjID49IDA7IHMtLSwgYy0tKSB7XG4gICAgICAgIC8vIE5leHQgd2UgZmluZCB0aGUgZmlyc3Qgb25lIHRoYXQgaXNuJ3QgdGhlIHNhbWUgd2hpY2ggc2hvdWxkIGJlIHRoZVxuICAgICAgICAvLyBmcmFtZSB0aGF0IGNhbGxlZCBvdXIgc2FtcGxlIGZ1bmN0aW9uIGFuZCB0aGUgY29udHJvbC5cbiAgICAgICAgaWYgKHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAvLyBJbiBWOCwgdGhlIGZpcnN0IGxpbmUgaXMgZGVzY3JpYmluZyB0aGUgbWVzc2FnZSBidXQgb3RoZXIgVk1zIGRvbid0LlxuICAgICAgICAgIC8vIElmIHdlJ3JlIGFib3V0IHRvIHJldHVybiB0aGUgZmlyc3QgbGluZSwgYW5kIHRoZSBjb250cm9sIGlzIGFsc28gb24gdGhlIHNhbWVcbiAgICAgICAgICAvLyBsaW5lLCB0aGF0J3MgYSBwcmV0dHkgZ29vZCBpbmRpY2F0b3IgdGhhdCBvdXIgc2FtcGxlIHRocmV3IGF0IHNhbWUgbGluZSBhc1xuICAgICAgICAgIC8vIHRoZSBjb250cm9sLiBJLmUuIGJlZm9yZSB3ZSBlbnRlcmVkIHRoZSBzYW1wbGUgZnJhbWUuIFNvIHdlIGlnbm9yZSB0aGlzIHJlc3VsdC5cbiAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgeW91IHBhc3NlZCBhIGNsYXNzIHRvIGZ1bmN0aW9uIGNvbXBvbmVudCwgb3Igbm9uLWZ1bmN0aW9uLlxuICAgICAgICAgIGlmIChzICE9PSAxIHx8IGMgIT09IDEpIHtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgcy0tO1xuICAgICAgICAgICAgICBjLS07IC8vIFdlIG1heSBzdGlsbCBoYXZlIHNpbWlsYXIgaW50ZXJtZWRpYXRlIGZyYW1lcyBmcm9tIHRoZSBjb25zdHJ1Y3QgY2FsbC5cbiAgICAgICAgICAgICAgLy8gVGhlIG5leHQgb25lIHRoYXQgaXNuJ3QgdGhlIHNhbWUgc2hvdWxkIGJlIG91ciBtYXRjaCB0aG91Z2guXG5cbiAgICAgICAgICAgICAgaWYgKGMgPCAwIHx8IHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAgICAgICAvLyBWOCBhZGRzIGEgXCJuZXdcIiBwcmVmaXggZm9yIG5hdGl2ZSBjbGFzc2VzLiBMZXQncyByZW1vdmUgaXQgdG8gbWFrZSBpdCBwcmV0dGllci5cbiAgICAgICAgICAgICAgICB2YXIgX2ZyYW1lID0gJ1xcbicgKyBzYW1wbGVMaW5lc1tzXS5yZXBsYWNlKCcgYXQgbmV3ICcsICcgYXQgJyk7IC8vIElmIG91ciBjb21wb25lbnQgZnJhbWUgaXMgbGFiZWxlZCBcIjxhbm9ueW1vdXM+XCJcbiAgICAgICAgICAgICAgICAvLyBidXQgd2UgaGF2ZSBhIHVzZXItcHJvdmlkZWQgXCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgLy8gc3BsaWNlIGl0IGluIHRvIG1ha2UgdGhlIHN0YWNrIG1vcmUgcmVhZGFibGUuXG5cblxuICAgICAgICAgICAgICAgIGlmIChmbi5kaXNwbGF5TmFtZSAmJiBfZnJhbWUuaW5jbHVkZXMoJzxhbm9ueW1vdXM+JykpIHtcbiAgICAgICAgICAgICAgICAgIF9mcmFtZSA9IF9mcmFtZS5yZXBsYWNlKCc8YW5vbnltb3VzPicsIGZuLmRpc3BsYXlOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSwgc291cmNlLCBvd25lckZuKSB7XG5cbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHtcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbi8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShudWxsKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBlbGVtZW50KSB7XG4gIHtcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdIFRoaXMgaXMgb2theSBidXQgRmxvdyBkb2Vzbid0IGtub3cgaXQuXG4gICAgdmFyIGhhcyA9IEZ1bmN0aW9uLmNhbGwuYmluZChoYXNPd25Qcm9wZXJ0eSk7XG5cbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAoaGFzKHR5cGVTcGVjcywgdHlwZVNwZWNOYW1lKSkge1xuICAgICAgICB2YXIgZXJyb3IkMSA9IHZvaWQgMDsgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3Byb2QtZXJyb3ItY29kZXNcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcigoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7ICcgKyAnaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLCBidXQgcmVjZWl2ZWQgYCcgKyB0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gKyAnYC4nICsgJ1RoaXMgb2Z0ZW4gaGFwcGVucyBiZWNhdXNlIG9mIHR5cG9zIHN1Y2ggYXMgYFByb3BUeXBlcy5mdW5jdGlvbmAgaW5zdGVhZCBvZiBgUHJvcFR5cGVzLmZ1bmNgLicpO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXJyb3IkMSA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgZXJyb3IkMSA9IGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgJiYgIShlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCclczogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICVzJyArICcgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yJDEpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvciQxLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yJDEubWVzc2FnZV0gPSB0cnVlO1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignRmFpbGVkICVzIHR5cGU6ICVzJywgbG9jYXRpb24sIGVycm9yJDEubWVzc2FnZSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcblxuZnVuY3Rpb24gaXNBcnJheShhKSB7XG4gIHJldHVybiBpc0FycmF5SW1wbChhKTtcbn1cblxuLypcbiAqIFRoZSBgJycgKyB2YWx1ZWAgcGF0dGVybiAodXNlZCBpbiBwZXJmLXNlbnNpdGl2ZSBjb2RlKSB0aHJvd3MgZm9yIFN5bWJvbFxuICogYW5kIFRlbXBvcmFsLiogdHlwZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yMjA2NC5cbiAqXG4gKiBUaGUgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIHdpbGwgdGhyb3cgYW4gZWFzaWVyLXRvLXVuZGVyc3RhbmQsXG4gKiBlYXNpZXItdG8tZGVidWcgZXhjZXB0aW9uIHdpdGggYSBjbGVhciBlcnJvcnMgbWVzc2FnZSBtZXNzYWdlIGV4cGxhaW5pbmcgdGhlXG4gKiBwcm9ibGVtLiAoSW5zdGVhZCBvZiBhIGNvbmZ1c2luZyBleGNlcHRpb24gdGhyb3duIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb25cbiAqIG9mIHRoZSBgdmFsdWVgIG9iamVjdCkuXG4gKi9cbi8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl0gb25seSBjYWxsZWQgaW4gREVWLCBzbyB2b2lkIHJldHVybiBpcyBub3QgcG9zc2libGUuXG5mdW5jdGlvbiB0eXBlTmFtZSh2YWx1ZSkge1xuICB7XG4gICAgLy8gdG9TdHJpbmdUYWcgaXMgbmVlZGVkIGZvciBuYW1lc3BhY2VkIHR5cGVzIGxpa2UgVGVtcG9yYWwuSW5zdGFudFxuICAgIHZhciBoYXNUb1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLnRvU3RyaW5nVGFnO1xuICAgIHZhciB0eXBlID0gaGFzVG9TdHJpbmdUYWcgJiYgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSB8fCB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdPYmplY3QnOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuXG5cbmZ1bmN0aW9uIHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSB7XG4gIHtcbiAgICB0cnkge1xuICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIC8vIElmIHlvdSBlbmRlZCB1cCBoZXJlIGJ5IGZvbGxvd2luZyBhbiBleGNlcHRpb24gY2FsbCBzdGFjaywgaGVyZSdzIHdoYXQnc1xuICAvLyBoYXBwZW5lZDogeW91IHN1cHBsaWVkIGFuIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gUmVhY3QgKGFzIGEgcHJvcCwga2V5LFxuICAvLyBET00gYXR0cmlidXRlLCBDU1MgcHJvcGVydHksIHN0cmluZyByZWYsIGV0Yy4pIGFuZCB3aGVuIFJlYWN0IHRyaWVkIHRvXG4gIC8vIGNvZXJjZSBpdCB0byBhIHN0cmluZyB1c2luZyBgJycgKyB2YWx1ZWAsIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAvL1xuICAvLyBUaGUgbW9zdCBjb21tb24gdHlwZXMgdGhhdCB3aWxsIGNhdXNlIHRoaXMgZXhjZXB0aW9uIGFyZSBgU3ltYm9sYCBpbnN0YW5jZXNcbiAgLy8gYW5kIFRlbXBvcmFsIG9iamVjdHMgbGlrZSBgVGVtcG9yYWwuSW5zdGFudGAuIEJ1dCBhbnkgb2JqZWN0IHRoYXQgaGFzIGFcbiAgLy8gYHZhbHVlT2ZgIG9yIGBbU3ltYm9sLnRvUHJpbWl0aXZlXWAgbWV0aG9kIHRoYXQgdGhyb3dzIHdpbGwgYWxzbyBjYXVzZSB0aGlzXG4gIC8vIGV4Y2VwdGlvbi4gKExpYnJhcnkgYXV0aG9ycyBkbyB0aGlzIHRvIHByZXZlbnQgdXNlcnMgZnJvbSB1c2luZyBidWlsdC1pblxuICAvLyBudW1lcmljIG9wZXJhdG9ycyBsaWtlIGArYCBvciBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIGA+PWAgYmVjYXVzZSBjdXN0b21cbiAgLy8gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIHBlcmZvcm0gYWNjdXJhdGUgYXJpdGhtZXRpYyBvciBjb21wYXJpc29uLilcbiAgLy9cbiAgLy8gVG8gZml4IHRoZSBwcm9ibGVtLCBjb2VyY2UgdGhpcyBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIGJlZm9yZVxuICAvLyBwYXNzaW5nIGl0IHRvIFJlYWN0LiBUaGUgbW9zdCByZWxpYWJsZSB3YXkgaXMgdXN1YWxseSBgU3RyaW5nKHZhbHVlKWAuXG4gIC8vXG4gIC8vIFRvIGZpbmQgd2hpY2ggdmFsdWUgaXMgdGhyb3dpbmcsIGNoZWNrIHRoZSBicm93c2VyIG9yIGRlYnVnZ2VyIGNvbnNvbGUuXG4gIC8vIEJlZm9yZSB0aGlzIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCB0aGVyZSBzaG91bGQgYmUgYGNvbnNvbGUuZXJyb3JgIG91dHB1dFxuICAvLyB0aGF0IHNob3dzIHRoZSB0eXBlIChTeW1ib2wsIFRlbXBvcmFsLlBsYWluRGF0ZSwgZXRjLikgdGhhdCBjYXVzZWQgdGhlXG4gIC8vIHByb2JsZW0gYW5kIGhvdyB0aGF0IHR5cGUgd2FzIHVzZWQ6IGtleSwgYXRycmlidXRlLCBpbnB1dCB2YWx1ZSBwcm9wLCBldGMuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgY29uc29sZSBvdXRwdXQgYWxzbyBzaG93cyB0aGUgY29tcG9uZW50IGFuZCBpdHNcbiAgLy8gYW5jZXN0b3IgY29tcG9uZW50cyB3aGVyZSB0aGUgZXhjZXB0aW9uIGhhcHBlbmVkLlxuICAvL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgcmV0dXJuICcnICsgdmFsdWU7XG59XG5mdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyO1xudmFyIFJFU0VSVkVEX1BST1BTID0ge1xuICBrZXk6IHRydWUsXG4gIHJlZjogdHJ1ZSxcbiAgX19zZWxmOiB0cnVlLFxuICBfX3NvdXJjZTogdHJ1ZVxufTtcbnZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bjtcbnZhciBzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93bjtcbnZhciBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xuXG57XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZywgc2VsZikge1xuICB7XG4gICAgaWYgKHR5cGVvZiBjb25maWcucmVmID09PSAnc3RyaW5nJyAmJiBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQgJiYgc2VsZiAmJiBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBzZWxmKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQudHlwZSk7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcignQ29tcG9uZW50IFwiJXNcIiBjb250YWlucyB0aGUgc3RyaW5nIHJlZiBcIiVzXCIuICcgKyAnU3VwcG9ydCBmb3Igc3RyaW5nIHJlZnMgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuICcgKyAnVGhpcyBjYXNlIGNhbm5vdCBiZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBhbiBhcnJvdyBmdW5jdGlvbi4gJyArICdXZSBhc2sgeW91IHRvIG1hbnVhbGx5IGZpeCB0aGlzIGNhc2UgYnkgdXNpbmcgdXNlUmVmKCkgb3IgY3JlYXRlUmVmKCkgaW5zdGVhZC4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLXN0cmluZy1yZWYnLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnR5cGUpLCBjb25maWcucmVmKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHtcbiAgICB2YXIgd2FybkFib3V0QWNjZXNzaW5nS2V5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ2tleScsIHtcbiAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHtcbiAgICB2YXIgd2FybkFib3V0QWNjZXNzaW5nUmVmID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBgcmVmYCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ3JlZicsIHtcbiAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nUmVmLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cbn1cbi8qKlxuICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGEgbmV3IFJlYWN0IGVsZW1lbnQuIFRoaXMgbm8gbG9uZ2VyIGFkaGVyZXMgdG9cbiAqIHRoZSBjbGFzcyBwYXR0ZXJuLCBzbyBkbyBub3QgdXNlIG5ldyB0byBjYWxsIGl0LiBBbHNvLCBpbnN0YW5jZW9mIGNoZWNrXG4gKiB3aWxsIG5vdCB3b3JrLiBJbnN0ZWFkIHRlc3QgJCR0eXBlb2YgZmllbGQgYWdhaW5zdCBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgdG8gY2hlY2tcbiAqIGlmIHNvbWV0aGluZyBpcyBhIFJlYWN0IEVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0geyp9IHByb3BzXG4gKiBAcGFyYW0geyp9IGtleVxuICogQHBhcmFtIHtzdHJpbmd8b2JqZWN0fSByZWZcbiAqIEBwYXJhbSB7Kn0gb3duZXJcbiAqIEBwYXJhbSB7Kn0gc2VsZiBBICp0ZW1wb3JhcnkqIGhlbHBlciB0byBkZXRlY3QgcGxhY2VzIHdoZXJlIGB0aGlzYCBpc1xuICogZGlmZmVyZW50IGZyb20gdGhlIGBvd25lcmAgd2hlbiBSZWFjdC5jcmVhdGVFbGVtZW50IGlzIGNhbGxlZCwgc28gdGhhdCB3ZVxuICogY2FuIHdhcm4uIFdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBvd25lciBhbmQgcmVwbGFjZSBzdHJpbmcgYHJlZmBzIHdpdGggYXJyb3dcbiAqIGZ1bmN0aW9ucywgYW5kIGFzIGxvbmcgYXMgYHRoaXNgIGFuZCBvd25lciBhcmUgdGhlIHNhbWUsIHRoZXJlIHdpbGwgYmUgbm9cbiAqIGNoYW5nZSBpbiBiZWhhdmlvci5cbiAqIEBwYXJhbSB7Kn0gc291cmNlIEFuIGFubm90YXRpb24gb2JqZWN0IChhZGRlZCBieSBhIHRyYW5zcGlsZXIgb3Igb3RoZXJ3aXNlKVxuICogaW5kaWNhdGluZyBmaWxlbmFtZSwgbGluZSBudW1iZXIsIGFuZC9vciBvdGhlciBpbmZvcm1hdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG5cblxuZnVuY3Rpb24gUmVhY3RFbGVtZW50KHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcykge1xuICB2YXIgZWxlbWVudCA9IHtcbiAgICAvLyBUaGlzIHRhZyBhbGxvd3MgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IEVsZW1lbnRcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICB0eXBlOiB0eXBlLFxuICAgIGtleToga2V5LFxuICAgIHJlZjogcmVmLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxuICAgIF9vd25lcjogb3duZXJcbiAgfTtcblxuICB7XG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307IC8vIFRvIG1ha2UgY29tcGFyaW5nIFJlYWN0RWxlbWVudHMgZWFzaWVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBtYWtlXG4gICAgLy8gdGhlIHZhbGlkYXRpb24gZmxhZyBub24tZW51bWVyYWJsZSAod2hlcmUgcG9zc2libGUsIHdoaWNoIHNob3VsZFxuICAgIC8vIGluY2x1ZGUgZXZlcnkgZW52aXJvbm1lbnQgd2UgcnVuIHRlc3RzIGluKSwgc28gdGhlIHRlc3QgZnJhbWV3b3JrXG4gICAgLy8gaWdub3JlcyBpdC5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50Ll9zdG9yZSwgJ3ZhbGlkYXRlZCcsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfSk7IC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc2VsZlxuICAgIH0pOyAvLyBUd28gZWxlbWVudHMgY3JlYXRlZCBpbiB0d28gZGlmZmVyZW50IHBsYWNlcyBzaG91bGQgYmUgY29uc2lkZXJlZFxuICAgIC8vIGVxdWFsIGZvciB0ZXN0aW5nIHB1cnBvc2VzIGFuZCB0aGVyZWZvcmUgd2UgaGlkZSBpdCBmcm9tIGVudW1lcmF0aW9uLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc291cmNlJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNvdXJjZVxuICAgIH0pO1xuXG4gICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufVxuLyoqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3Rqcy9yZmNzL3B1bGwvMTA3XG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICovXG5cbmZ1bmN0aW9uIGpzeERFVih0eXBlLCBjb25maWcsIG1heWJlS2V5LCBzb3VyY2UsIHNlbGYpIHtcbiAge1xuICAgIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gICAgdmFyIHByb3BzID0ge307XG4gICAgdmFyIGtleSA9IG51bGw7XG4gICAgdmFyIHJlZiA9IG51bGw7IC8vIEN1cnJlbnRseSwga2V5IGNhbiBiZSBzcHJlYWQgaW4gYXMgYSBwcm9wLiBUaGlzIGNhdXNlcyBhIHBvdGVudGlhbFxuICAgIC8vIGlzc3VlIGlmIGtleSBpcyBhbHNvIGV4cGxpY2l0bHkgZGVjbGFyZWQgKGllLiA8ZGl2IHsuLi5wcm9wc30ga2V5PVwiSGlcIiAvPlxuICAgIC8vIG9yIDxkaXYga2V5PVwiSGlcIiB7Li4ucHJvcHN9IC8+ICkuIFdlIHdhbnQgdG8gZGVwcmVjYXRlIGtleSBzcHJlYWQsXG4gICAgLy8gYnV0IGFzIGFuIGludGVybWVkaWFyeSBzdGVwLCB3ZSB3aWxsIHVzZSBqc3hERVYgZm9yIGV2ZXJ5dGhpbmcgZXhjZXB0XG4gICAgLy8gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz4sIGJlY2F1c2Ugd2UgYXJlbid0IGN1cnJlbnRseSBhYmxlIHRvIHRlbGwgaWZcbiAgICAvLyBrZXkgaXMgZXhwbGljaXRseSBkZWNsYXJlZCB0byBiZSB1bmRlZmluZWQgb3Igbm90LlxuXG4gICAgaWYgKG1heWJlS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXliZUtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgbWF5YmVLZXk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICByZWYgPSBjb25maWcucmVmO1xuICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZywgc2VsZik7XG4gICAgfSAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cblxuICAgIGZvciAocHJvcE5hbWUgaW4gY29uZmlnKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIHByb3BOYW1lKSAmJiAhUkVTRVJWRURfUFJPUFMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfSAvLyBSZXNvbHZlIGRlZmF1bHQgcHJvcHNcblxuXG4gICAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgICAgZm9yIChwcm9wTmFtZSBpbiBkZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChrZXkgfHwgcmVmKSB7XG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZikge1xuICAgICAgICBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LCBwcm9wcyk7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bjtcblxue1xuICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IGZhbHNlO1xufVxuLyoqXG4gKiBWZXJpZmllcyB0aGUgb2JqZWN0IGlzIGEgUmVhY3RFbGVtZW50LlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNpc3ZhbGlkZWxlbWVudFxuICogQHBhcmFtIHs/b2JqZWN0fSBvYmplY3RcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgYG9iamVjdGAgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBAZmluYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIHtcbiAgICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAge1xuICAgIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICAgIHZhciBsaW5lTnVtYmVyID0gc291cmNlLmxpbmVOdW1iZXI7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuLyoqXG4gKiBXYXJuIGlmIHRoZXJlJ3Mgbm8ga2V5IGV4cGxpY2l0bHkgc2V0IG9uIGR5bmFtaWMgYXJyYXlzIG9mIGNoaWxkcmVuIG9yXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cbiAqIHVwZGF0ZXMuXG4gKi9cblxuXG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSkge1xuICB7XG4gICAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICAgIGlmICghaW5mbykge1xuICAgICAgdmFyIHBhcmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUocGFyZW50VHlwZSk7XG5cbiAgICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICAgIGluZm8gPSBcIlxcblxcbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPFwiICsgcGFyZW50TmFtZSArIFwiPi5cIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaW5mbztcbiAgfVxufVxuLyoqXG4gKiBXYXJuIGlmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXkgYXNzaWduZWQgdG8gaXQuXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcbiAqIHJlb3JkZXJlZC4gQWxsIGNoaWxkcmVuIHRoYXQgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFyZSByZXF1aXJlZCB0b1xuICogaGF2ZSBhIFwia2V5XCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXG4gKiB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBlbGVtZW50J3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKCFlbGVtZW50Ll9zdG9yZSB8fCBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgfHwgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xuXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gICAgLy8gcHJvcGVydHksIGl0IG1heSBiZSB0aGUgY3JlYXRvciBvZiB0aGUgY2hpbGQgdGhhdCdzIHJlc3BvbnNpYmxlIGZvclxuICAgIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cblxuICAgIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9vd25lciAhPT0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0JyB8fCAhbm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChub2RlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSA7IGVsc2UgaWYgKGlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hpbGQgPSBub2RlW2ldO1xuXG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAgIC8vIFRoaXMgZWxlbWVudCB3YXMgcGFzc2VkIGluIGEgdmFsaWQgbG9jYXRpb24uXG4gICAgICBpZiAobm9kZS5fc3RvcmUpIHtcbiAgICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cbiAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IG5vZGUuZW50cmllcykge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgICB2YXIgc3RlcDtcblxuICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxuICogcHJvdmlkZWQgYnkgdGhlIHR5cGUuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuXG4gICAgICBlcnJvcignQ29tcG9uZW50ICVzIGRlY2xhcmVkIGBQcm9wVHlwZXNgIGluc3RlYWQgb2YgYHByb3BUeXBlc2AuIERpZCB5b3UgbWlzc3BlbGwgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQ/JywgX25hbWUgfHwgJ1Vua25vd24nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHR5cGUuZ2V0RGVmYXVsdFByb3BzID09PSAnZnVuY3Rpb24nICYmICF0eXBlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBSZWFjdC5jcmVhdGVDbGFzcyAnICsgJ2RlZmluaXRpb25zLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgYGRlZmF1bHRQcm9wc2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBmcmFnbWVudCwgdmFsaWRhdGUgdGhhdCBpdCBjYW4gb25seSBiZSBwcm92aWRlZCB3aXRoIGZyYWdtZW50IHByb3BzXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xuICB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhmcmFnbWVudC5wcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ICE9PSAnY2hpbGRyZW4nICYmIGtleSAhPT0gJ2tleScpIHtcbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgYHJlZmAgc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4nKTtcblxuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcbmZ1bmN0aW9uIGpzeFdpdGhWYWxpZGF0aW9uKHR5cGUsIHByb3BzLCBrZXksIGlzU3RhdGljQ2hpbGRyZW4sIHNvdXJjZSwgc2VsZikge1xuICB7XG4gICAgdmFyIHZhbGlkVHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKTsgLy8gV2Ugd2FybiBpbiB0aGlzIGNhc2UgYnV0IGRvbid0IHRocm93LiBXZSBleHBlY3QgdGhlIGVsZW1lbnQgY3JlYXRpb24gdG9cbiAgICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuXG4gICAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICAgIHZhciBpbmZvID0gJyc7XG5cbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgICB9XG5cbiAgICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKTtcblxuICAgICAgaWYgKHNvdXJjZUluZm8pIHtcbiAgICAgICAgaW5mbyArPSBzb3VyY2VJbmZvO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5mbyArPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkodHlwZSkpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9ICdhcnJheSc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdVbmtub3duJykgKyBcIiAvPlwiO1xuICAgICAgICBpbmZvID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBleHBvcnQgYSBKU1ggbGl0ZXJhbCBpbnN0ZWFkIG9mIGEgY29tcG9uZW50Pyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XG4gICAgICB9XG5cbiAgICAgIGVycm9yKCdSZWFjdC5qc3g6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XG4gICAgfVxuXG4gICAgdmFyIGVsZW1lbnQgPSBqc3hERVYodHlwZSwgcHJvcHMsIGtleSwgc291cmNlLCBzZWxmKTsgLy8gVGhlIHJlc3VsdCBjYW4gYmUgbnVsbGlzaCBpZiBhIG1vY2sgb3IgYSBjdXN0b20gZnVuY3Rpb24gaXMgdXNlZC5cbiAgICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG5cbiAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgLy8gZG9lc24ndCBleHBlY3QgYSBub24tc3RyaW5nL2Z1bmN0aW9uIHR5cGUgYW5kIGNhbiB0aHJvdyBjb25mdXNpbmcgZXJyb3JzLlxuICAgIC8vIFdlIGRvbid0IHdhbnQgZXhjZXB0aW9uIGJlaGF2aW9yIHRvIGRpZmZlciBiZXR3ZWVuIGRldiBhbmQgcHJvZC5cbiAgICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAgIC8vIGZpeGVkLCB0aGUga2V5IHdhcm5pbmdzIHdpbGwgYXBwZWFyLilcblxuXG4gICAgaWYgKHZhbGlkVHlwZSkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG5cbiAgICAgIGlmIChjaGlsZHJlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY0NoaWxkcmVuKSB7XG4gICAgICAgICAgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuW2ldLCB0eXBlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yKCdSZWFjdC5qc3g6IFN0YXRpYyBjaGlsZHJlbiBzaG91bGQgYWx3YXlzIGJlIGFuIGFycmF5LiAnICsgJ1lvdSBhcmUgbGlrZWx5IGV4cGxpY2l0bHkgY2FsbGluZyBSZWFjdC5qc3hzIG9yIFJlYWN0LmpzeERFVi4gJyArICdVc2UgdGhlIEJhYmVsIHRyYW5zZm9ybSBpbnN0ZWFkLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhjaGlsZHJlbiwgdHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgJ2tleScpKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcbiAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMocHJvcHMpLmZpbHRlcihmdW5jdGlvbiAoaykge1xuICAgICAgICByZXR1cm4gayAhPT0gJ2tleSc7XG4gICAgICB9KTtcbiAgICAgIHZhciBiZWZvcmVFeGFtcGxlID0ga2V5cy5sZW5ndGggPiAwID8gJ3trZXk6IHNvbWVLZXksICcgKyBrZXlzLmpvaW4oJzogLi4uLCAnKSArICc6IC4uLn0nIDogJ3trZXk6IHNvbWVLZXl9JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY29tcG9uZW50TmFtZSArIGJlZm9yZUV4YW1wbGVdKSB7XG4gICAgICAgIHZhciBhZnRlckV4YW1wbGUgPSBrZXlzLmxlbmd0aCA+IDAgPyAneycgKyBrZXlzLmpvaW4oJzogLi4uLCAnKSArICc6IC4uLn0nIDogJ3t9JztcblxuICAgICAgICBlcnJvcignQSBwcm9wcyBvYmplY3QgY29udGFpbmluZyBhIFwia2V5XCIgcHJvcCBpcyBiZWluZyBzcHJlYWQgaW50byBKU1g6XFxuJyArICcgIGxldCBwcm9wcyA9ICVzO1xcbicgKyAnICA8JXMgey4uLnByb3BzfSAvPlxcbicgKyAnUmVhY3Qga2V5cyBtdXN0IGJlIHBhc3NlZCBkaXJlY3RseSB0byBKU1ggd2l0aG91dCB1c2luZyBzcHJlYWQ6XFxuJyArICcgIGxldCBwcm9wcyA9ICVzO1xcbicgKyAnICA8JXMga2V5PXtzb21lS2V5fSB7Li4ucHJvcHN9IC8+JywgYmVmb3JlRXhhbXBsZSwgY29tcG9uZW50TmFtZSwgYWZ0ZXJFeGFtcGxlLCBjb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY29tcG9uZW50TmFtZSArIGJlZm9yZUV4YW1wbGVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgdmFsaWRhdGVGcmFnbWVudFByb3BzKGVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxufSAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGV4aXN0IHRvIHN0aWxsIGdldCBjaGlsZCB3YXJuaW5ncyBpbiBkZXZcbi8vIGV2ZW4gd2l0aCB0aGUgcHJvZCB0cmFuc2Zvcm0uIFRoaXMgbWVhbnMgdGhhdCBqc3hERVYgaXMgcHVyZWx5XG4vLyBvcHQtaW4gYmVoYXZpb3IgZm9yIGJldHRlciBtZXNzYWdlcyBidXQgdGhhdCB3ZSB3b24ndCBzdG9wXG4vLyBnaXZpbmcgeW91IHdhcm5pbmdzIGlmIHlvdSB1c2UgcHJvZHVjdGlvbiBhcGlzLlxuXG5mdW5jdGlvbiBqc3hXaXRoVmFsaWRhdGlvblN0YXRpYyh0eXBlLCBwcm9wcywga2V5KSB7XG4gIHtcbiAgICByZXR1cm4ganN4V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGtleSwgdHJ1ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGpzeFdpdGhWYWxpZGF0aW9uRHluYW1pYyh0eXBlLCBwcm9wcywga2V5KSB7XG4gIHtcbiAgICByZXR1cm4ganN4V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGtleSwgZmFsc2UpO1xuICB9XG59XG5cbnZhciBqc3ggPSBqc3hXaXRoVmFsaWRhdGlvbkR5bmFtaWMgOyAvLyB3ZSBtYXkgd2FudCB0byBzcGVjaWFsIGNhc2UganN4cyBpbnRlcm5hbGx5IHRvIHRha2UgYWR2YW50YWdlIG9mIHN0YXRpYyBjaGlsZHJlbi5cbi8vIGZvciBub3cgd2UgY2FuIHNoaXAgaWRlbnRpY2FsIHByb2QgZnVuY3Rpb25zXG5cbnZhciBqc3hzID0ganN4V2l0aFZhbGlkYXRpb25TdGF0aWMgO1xuXG5leHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbmV4cG9ydHMuanN4ID0ganN4O1xuZXhwb3J0cy5qc3hzID0ganN4cztcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzIiwiUmVhY3QiLCJyZXF1aXJlIiwiUkVBQ1RfRUxFTUVOVF9UWVBFIiwiU3ltYm9sIiwiZm9yIiwiUkVBQ1RfUE9SVEFMX1RZUEUiLCJSRUFDVF9GUkFHTUVOVF9UWVBFIiwiUkVBQ1RfU1RSSUNUX01PREVfVFlQRSIsIlJFQUNUX1BST0ZJTEVSX1RZUEUiLCJSRUFDVF9QUk9WSURFUl9UWVBFIiwiUkVBQ1RfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJSRUFDVF9PRkZTQ1JFRU5fVFlQRSIsIlJFQUNUX0NBQ0hFX1RZUEUiLCJNQVlCRV9JVEVSQVRPUl9TWU1CT0wiLCJpdGVyYXRvciIsIkZBVVhfSVRFUkFUT1JfU1lNQk9MIiwiZ2V0SXRlcmF0b3JGbiIsIm1heWJlSXRlcmFibGUiLCJtYXliZUl0ZXJhdG9yIiwiUmVhY3RTaGFyZWRJbnRlcm5hbHMiLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsImVycm9yIiwiZm9ybWF0IiwiX2xlbjIiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5MiIsInByaW50V2FybmluZyIsImxldmVsIiwiUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSIsInN0YWNrIiwiZ2V0U3RhY2tBZGRlbmR1bSIsImNvbmNhdCIsImFyZ3NXaXRoRm9ybWF0IiwibWFwIiwiaXRlbSIsIlN0cmluZyIsInVuc2hpZnQiLCJGdW5jdGlvbiIsInByb3RvdHlwZSIsImFwcGx5IiwiY2FsbCIsImNvbnNvbGUiLCJlbmFibGVTY29wZUFQSSIsImVuYWJsZUNhY2hlRWxlbWVudCIsImVuYWJsZVRyYW5zaXRpb25UcmFjaW5nIiwiZW5hYmxlTGVnYWN5SGlkZGVuIiwiZW5hYmxlRGVidWdUcmFjaW5nIiwiUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQyIiwiaXNWYWxpZEVsZW1lbnRUeXBlIiwidHlwZSIsIiQkdHlwZW9mIiwiZ2V0TW9kdWxlSWQiLCJ1bmRlZmluZWQiLCJnZXRXcmFwcGVkTmFtZSIsIm91dGVyVHlwZSIsImlubmVyVHlwZSIsIndyYXBwZXJOYW1lIiwiZGlzcGxheU5hbWUiLCJmdW5jdGlvbk5hbWUiLCJuYW1lIiwiZ2V0Q29udGV4dE5hbWUiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDEiLCJnZXRDb21wb25lbnROYW1lRnJvbVR5cGUiLCJ0YWciLCJjb250ZXh0IiwicHJvdmlkZXIiLCJfY29udGV4dCIsInJlbmRlciIsIm91dGVyTmFtZSIsImxhenlDb21wb25lbnQiLCJwYXlsb2FkIiwiX3BheWxvYWQiLCJpbml0IiwiX2luaXQiLCJ4IiwiYXNzaWduIiwiT2JqZWN0IiwiZGlzYWJsZWREZXB0aCIsInByZXZMb2ciLCJwcmV2SW5mbyIsInByZXZXYXJuIiwicHJldkVycm9yIiwicHJldkdyb3VwIiwicHJldkdyb3VwQ29sbGFwc2VkIiwicHJldkdyb3VwRW5kIiwiZGlzYWJsZWRMb2ciLCJfX3JlYWN0RGlzYWJsZWRMb2ciLCJkaXNhYmxlTG9ncyIsImxvZyIsImluZm8iLCJ3YXJuIiwiZ3JvdXAiLCJncm91cENvbGxhcHNlZCIsImdyb3VwRW5kIiwicHJvcHMiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwidmFsdWUiLCJ3cml0YWJsZSIsImRlZmluZVByb3BlcnRpZXMiLCJyZWVuYWJsZUxvZ3MiLCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyIiwicHJlZml4IiwiZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUiLCJzb3VyY2UiLCJvd25lckZuIiwiRXJyb3IiLCJtYXRjaCIsInRyaW0iLCJyZWVudHJ5IiwiY29tcG9uZW50RnJhbWVDYWNoZSIsIlBvc3NpYmx5V2Vha01hcCIsIldlYWtNYXAiLCJNYXAiLCJkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lIiwiZm4iLCJjb25zdHJ1Y3QiLCJmcmFtZSIsImdldCIsInByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UiLCJwcmVwYXJlU3RhY2tUcmFjZSIsInByZXZpb3VzRGlzcGF0Y2hlciIsImN1cnJlbnQiLCJSdW5JblJvb3RGcmFtZSIsIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCIsImNvbnRyb2wiLCJGYWtlIiwiZGVmaW5lUHJvcGVydHkiLCJzZXQiLCJSZWZsZWN0IiwibWF5YmVQcm9taXNlIiwiY2F0Y2giLCJzYW1wbGUiLCJuYW1lUHJvcERlc2NyaXB0b3IiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfUnVuSW5Sb290RnJhbWUkRGV0ZXIiLCJzYW1wbGVTdGFjayIsImNvbnRyb2xTdGFjayIsInNhbXBsZUxpbmVzIiwic3BsaXQiLCJjb250cm9sTGluZXMiLCJzIiwiYyIsImluY2x1ZGVzIiwiX2ZyYW1lIiwicmVwbGFjZSIsInN5bnRoZXRpY0ZyYW1lIiwiZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lIiwic2hvdWxkQ29uc3RydWN0IiwiQ29tcG9uZW50IiwiaXNSZWFjdENvbXBvbmVudCIsImRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFViIsImhhc093blByb3BlcnR5IiwibG9nZ2VkVHlwZUZhaWx1cmVzIiwiUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxIiwic2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMSIsImVsZW1lbnQiLCJvd25lciIsIl9vd25lciIsIl9zb3VyY2UiLCJzZXRFeHRyYVN0YWNrRnJhbWUiLCJjaGVja1Byb3BUeXBlcyIsInR5cGVTcGVjcyIsInZhbHVlcyIsImxvY2F0aW9uIiwiY29tcG9uZW50TmFtZSIsImhhcyIsImJpbmQiLCJ0eXBlU3BlY05hbWUiLCJlcnJvciQxIiwiZXJyIiwiZXgiLCJtZXNzYWdlIiwiaXNBcnJheUltcGwiLCJpc0FycmF5IiwiYSIsInR5cGVOYW1lIiwiaGFzVG9TdHJpbmdUYWciLCJ0b1N0cmluZ1RhZyIsImNvbnN0cnVjdG9yIiwid2lsbENvZXJjaW9uVGhyb3ciLCJ0ZXN0U3RyaW5nQ29lcmNpb24iLCJlIiwiY2hlY2tLZXlTdHJpbmdDb2VyY2lvbiIsIlJlYWN0Q3VycmVudE93bmVyJDEiLCJSZWFjdEN1cnJlbnRPd25lciIsIlJFU0VSVkVEX1BST1BTIiwia2V5IiwicmVmIiwiX19zZWxmIiwiX19zb3VyY2UiLCJzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biIsInNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duIiwiZGlkV2FybkFib3V0U3RyaW5nUmVmcyIsImhhc1ZhbGlkUmVmIiwiY29uZmlnIiwiZ2V0dGVyIiwiaXNSZWFjdFdhcm5pbmciLCJoYXNWYWxpZEtleSIsIndhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZCIsInNlbGYiLCJzdGF0ZU5vZGUiLCJkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlciIsIndhcm5BYm91dEFjY2Vzc2luZ0tleSIsImRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyIiwid2FybkFib3V0QWNjZXNzaW5nUmVmIiwiUmVhY3RFbGVtZW50IiwiX3N0b3JlIiwiZnJlZXplIiwianN4REVWIiwibWF5YmVLZXkiLCJwcm9wTmFtZSIsImRlZmF1bHRQcm9wcyIsIlJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UiLCJzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCIsInByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duIiwiaXNWYWxpZEVsZW1lbnQiLCJvYmplY3QiLCJnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0iLCJnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bSIsImZpbGVOYW1lIiwibGluZU51bWJlciIsIm93bmVySGFzS2V5VXNlV2FybmluZyIsImdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8iLCJwYXJlbnRUeXBlIiwicGFyZW50TmFtZSIsInZhbGlkYXRlRXhwbGljaXRLZXkiLCJ2YWxpZGF0ZWQiLCJjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvIiwiY2hpbGRPd25lciIsInZhbGlkYXRlQ2hpbGRLZXlzIiwibm9kZSIsImkiLCJjaGlsZCIsIml0ZXJhdG9yRm4iLCJlbnRyaWVzIiwic3RlcCIsIm5leHQiLCJkb25lIiwidmFsaWRhdGVQcm9wVHlwZXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJfbmFtZSIsImdldERlZmF1bHRQcm9wcyIsImlzUmVhY3RDbGFzc0FwcHJvdmVkIiwidmFsaWRhdGVGcmFnbWVudFByb3BzIiwiZnJhZ21lbnQiLCJrZXlzIiwiZGlkV2FybkFib3V0S2V5U3ByZWFkIiwianN4V2l0aFZhbGlkYXRpb24iLCJpc1N0YXRpY0NoaWxkcmVuIiwidmFsaWRUeXBlIiwic291cmNlSW5mbyIsInR5cGVTdHJpbmciLCJjaGlsZHJlbiIsImZpbHRlciIsImsiLCJiZWZvcmVFeGFtcGxlIiwiam9pbiIsImFmdGVyRXhhbXBsZSIsImpzeFdpdGhWYWxpZGF0aW9uU3RhdGljIiwianN4V2l0aFZhbGlkYXRpb25EeW5hbWljIiwianN4IiwianN4cyIsImV4cG9ydHMiLCJGcmFnbWVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react/cjs/react.development.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/cjs/react.development.js ***!
- \****************************************************************************/
-/***/ ((module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== \"undefined\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === \"function\") {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n }\n var ReactVersion = \"18.3.0-canary-60a927d04-20240113\";\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\n var REACT_CACHE_TYPE = Symbol.for(\"react.cache\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n /**\n * Keeps track of the current dispatcher.\n */ var ReactCurrentDispatcher$1 = {\n current: null\n };\n /**\n * Keeps track of the current Cache dispatcher.\n */ var ReactCurrentCache = {\n current: null\n };\n /**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */ var ReactCurrentBatchConfig = {\n transition: null\n };\n var ReactCurrentActQueue = {\n current: null,\n // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n isBatchingLegacy: false,\n didScheduleLegacyUpdate: false,\n // Tracks whether something called `use` during the current batch of work.\n // Determines whether we should yield to microtasks to unwrap already resolved\n // promises without suspending.\n didUsePromise: false\n };\n /**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */ var ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */ current: null\n };\n var ReactDebugCurrentFrame$1 = {};\n var currentExtraStackFrame = null;\n function setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n }\n {\n ReactDebugCurrentFrame$1.setExtraStackFrame = function(stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n ReactDebugCurrentFrame$1.getCurrentStack = null;\n ReactDebugCurrentFrame$1.getStackAddendum = function() {\n var stack = \"\"; // Add an extra top frame while an element is being validated\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n var impl = ReactDebugCurrentFrame$1.getCurrentStack;\n if (impl) {\n stack += impl() || \"\";\n }\n return stack;\n };\n }\n // -----------------------------------------------------------------------------\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n var enableCacheElement = false;\n var enableTransitionTracing = false; // No known bugs, but needs performance testing\n var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n // stuff. Intended to enable React core members to more easily debug scheduling\n // issues in DEV builds.\n var enableDebugTracing = false;\n var ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher$1,\n ReactCurrentCache: ReactCurrentCache,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner\n };\n {\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame$1;\n ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n }\n // by calls to these methods by a Babel plugin.\n //\n // In PROD (or in packages without access to React internals),\n // they are left as they are instead.\n function warn(format) {\n {\n {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n printWarning(\"warn\", format, args);\n }\n }\n }\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n var didWarnStateUpdateForUnmountedComponent = {};\n function warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || \"ReactClass\";\n var warningKey = componentName + \".\" + callerName;\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n error(\"Can't call %s on a component that is not yet mounted. \" + \"This is a no-op, but it might indicate a bug in your application. \" + \"Instead, assign to `this.state` directly or define a `state = {};` \" + \"class property with the desired state in the %s component.\", callerName, componentName);\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n }\n /**\n * This is the abstract API for an update queue.\n */ var ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */ isMounted: function(publicInstance) {\n return false;\n },\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */ enqueueForceUpdate: function(publicInstance, callback, callerName) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */ enqueueReplaceState: function(publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, \"replaceState\");\n },\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */ enqueueSetState: function(publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, \"setState\");\n }\n };\n var assign = Object.assign;\n var emptyObject = {};\n {\n Object.freeze(emptyObject);\n }\n /**\n * Base class helpers for the updating state of a component.\n */ function Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n }\n Component.prototype.isReactComponent = {};\n /**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */ Component.prototype.setState = function(partialState, callback) {\n if (typeof partialState !== \"object\" && typeof partialState !== \"function\" && partialState != null) {\n throw new Error(\"setState(...): takes an object of state variables to update or a \" + \"function which returns an object of state variables.\");\n }\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */ Component.prototype.forceUpdate = function(callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n /**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */ {\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in \" + \"componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see \" + \"https://github.com/facebook/react/issues/3236).\"\n ]\n };\n var defineDeprecationWarning = function(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function() {\n warn(\"%s(...) is deprecated in plain JavaScript React classes. %s\", info[0], info[1]);\n return undefined;\n }\n });\n };\n for(var fnName in deprecatedAPIs){\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n }\n function ComponentDummy() {}\n ComponentDummy.prototype = Component.prototype;\n /**\n * Convenience component with default shallow equality check for sCU.\n */ function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\n pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n assign(pureComponentPrototype, Component.prototype);\n pureComponentPrototype.isPureReactComponent = true;\n // an immutable object with a single mutable value\n function createRef() {\n var refObject = {\n current: null\n };\n {\n Object.seal(refObject);\n }\n return refObject;\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n /*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */ // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === \"function\" && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || \"Object\"; // $FlowFixMe[incompatible-return]\n return type;\n }\n } // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n }\n function testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided key is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n function getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n if (displayName) {\n return displayName;\n }\n var functionName = innerType.displayName || innerType.name || \"\";\n return functionName !== \"\" ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n } // Keep in sync with react-reconciler/getComponentNameFromFiber\n function getContextName(type) {\n return type.displayName || \"Context\";\n }\n var REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\"); // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n function getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n if (typeof type === \"function\") {\n if (type.$$typeof === REACT_CLIENT_REFERENCE$2) {\n // TODO: Create a convention for naming client references with debug info.\n return null;\n }\n return type.displayName || type.name || null;\n }\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_CACHE_TYPE:\n {\n return \"Cache\";\n }\n }\n if (typeof type === \"object\") {\n {\n if (typeof type.tag === \"number\") {\n error(\"Received an unexpected object in getComponentNameFromType(). \" + \"This is likely a bug in React. Please file an issue.\");\n }\n }\n switch(type.$$typeof){\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, \"ForwardRef\");\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n if (outerName !== null) {\n return outerName;\n }\n return getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n return null;\n }\n // $FlowFixMe[method-unbinding]\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n };\n var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n {\n didWarnAboutStringRefs = {};\n }\n function hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, \"ref\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"ref\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n }\n function hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function() {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n error(\"%s: `key` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n function defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function() {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n error(\"%s: `ref` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, \"ref\", {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n function warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === \"string\" && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + \"Support for string refs will be removed in a future major release. \" + \"This case cannot be automatically converted to an arrow function. \" + \"We ask you to manually fix this case by using useRef() or createRef() instead. \" + \"Learn more about using refs safely here: \" + \"https://reactjs.org/link/strict-mode-string-ref\", componentName, config.ref);\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n }\n /**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */ function ReactElement(type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n Object.defineProperty(element._store, \"validated\", {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n Object.defineProperty(element, \"_self\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, \"_source\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n return element;\n }\n /**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */ function createElement$1(type, config, children) {\n var propName; // Reserved names are extracted\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n }\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for(var i = 0; i < childrenLength; i++){\n childArray[i] = arguments[i + 2];\n }\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n props.children = childArray;\n } // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for(propName in defaultProps){\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n {\n if (key || ref) {\n var displayName = typeof type === \"function\" ? type.displayName || type.name || \"Unknown\" : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n }\n /**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */ function cloneElement$1(element, config, children) {\n if (element === null || element === undefined) {\n throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n var propName; // Original props are copied\n var props = assign({}, element.props); // Reserved names are extracted\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source; // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n } // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for(var i = 0; i < childrenLength; i++){\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n return ReactElement(element.type, key, ref, self, source, owner, props);\n }\n /**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */ function isValidElement(object) {\n return typeof object === \"object\" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n var SEPARATOR = \".\";\n var SUBSEPARATOR = \":\";\n /**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */ function escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n var escapedString = key.replace(escapeRegex, function(match) {\n return escaperLookup[match];\n });\n return \"$\" + escapedString;\n }\n /**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */ var didWarnAboutMaps = false;\n var userProvidedKeyEscapeRegex = /\\/+/g;\n function escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, \"$&/\");\n }\n /**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */ function getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === \"object\" && element !== null && element.key != null) {\n // Explicit key\n {\n checkKeyStringCoercion(element.key);\n }\n return escape(\"\" + element.key);\n } // Implicit key determined by the index in the set\n return index.toString(36);\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (type === \"undefined\" || type === \"boolean\") {\n // All of the above are perceived as null.\n children = null;\n }\n var invokeCallback = false;\n if (children === null) {\n invokeCallback = true;\n } else {\n switch(type){\n case \"string\":\n case \"number\":\n invokeCallback = true;\n break;\n case \"object\":\n switch(children.$$typeof){\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n }\n }\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n var childKey = nameSoFar === \"\" ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n if (isArray(mappedChild)) {\n var escapedChildKey = \"\";\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + \"/\";\n }\n mapIntoArray(mappedChild, array, escapedChildKey, \"\", function(c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n {\n // The `if` statement here prevents auto-disabling of the safe\n // coercion ESLint rule, so we must manually disable it below.\n // $FlowFixMe[incompatible-type] Flow incorrectly thinks React.Portal doesn't have a key\n if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n checkKeyStringCoercion(mappedChild.key);\n }\n }\n mappedChild = cloneAndReplaceKey(mappedChild, // traverseAllChildren used to do for objects as children\n escapedPrefix + (mappedChild.key && (!_child || _child.key !== mappedChild.key) ? escapeUserProvidedKey(\"\" + mappedChild.key // eslint-disable-line react-internal/safe-string-coercion\n ) + \"/\" : \"\") + childKey);\n }\n array.push(mappedChild);\n }\n return 1;\n }\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === \"\" ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n if (isArray(children)) {\n for(var i = 0; i < children.length; i++){\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (typeof iteratorFn === \"function\") {\n var iterableChildren = children;\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn(\"Using Maps as children is not supported. \" + \"Use an array of keyed ReactElements instead.\");\n }\n didWarnAboutMaps = true;\n }\n }\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0; // $FlowFixMe[incompatible-use] `iteratorFn` might return null according to typing.\n while(!(step = iterator.next()).done){\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === \"object\") {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var childrenString = String(children);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === \"[object Object]\" ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\" : childrenString) + \"). \" + \"If you meant to render a collection of children, use an array \" + \"instead.\");\n }\n }\n return subtreeCount;\n }\n /**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */ function mapChildren(children, func, context) {\n if (children == null) {\n // $FlowFixMe limitation refining abstract types in Flow\n return children;\n }\n var result = [];\n var count = 0;\n mapIntoArray(children, result, \"\", \"\", function(child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n /**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */ function countChildren(children) {\n var n = 0;\n mapChildren(children, function() {\n n++; // Don't return anything\n });\n return n;\n }\n /**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */ function forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function() {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n }\n /**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */ function toArray(children) {\n return mapChildren(children, function(child) {\n return child;\n }) || [];\n }\n /**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */ function onlyChild(children) {\n if (!isValidElement(children)) {\n throw new Error(\"React.Children.only expected to receive a single React element child.\");\n }\n return children;\n }\n function createContext(defaultValue) {\n // TODO: Second argument used to be an optional `calculateChangedBits`\n // function. Warn to reserve for future use?\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null,\n // Add these to use same hidden class in VM as ServerContext\n _defaultValue: null,\n _globalName: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context\n }; // $FlowFixMe[prop-missing]: Flow complains about not setting a value, which is intentional here\n Object.defineProperties(Consumer, {\n Provider: {\n get: function() {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n error(\"Rendering <Context.Consumer.Provider> is not supported and will be removed in \" + \"a future major release. Did you mean to render <Context.Provider> instead?\");\n }\n return context.Provider;\n },\n set: function(_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function() {\n return context._currentValue;\n },\n set: function(_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function() {\n return context._currentValue2;\n },\n set: function(_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function() {\n return context._threadCount;\n },\n set: function(_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function() {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n error(\"Rendering <Context.Consumer.Consumer> is not supported and will be removed in \" + \"a future major release. Did you mean to render <Context.Consumer> instead?\");\n }\n return context.Consumer;\n }\n },\n displayName: {\n get: function() {\n return context.displayName;\n },\n set: function(displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn(\"Setting `displayName` on Context.Consumer has no effect. \" + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe[prop-missing]: Flow complains about missing properties because it doesn't understand defineProperty\n context.Consumer = Consumer;\n }\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n return context;\n }\n var Uninitialized = -1;\n var Pending = 0;\n var Resolved = 1;\n var Rejected = 2;\n function lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n // This might throw either because it's missing or throws. If so, we treat it\n // as still uninitialized and try again next time. Which is the same as what\n // happens if the ctor or any wrappers processing the ctor throws. This might\n // end up fixing it if the resolution was a concurrency bug.\n thenable.then(function(moduleObject) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = moduleObject;\n }\n }, function(error) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n if (payload._status === Uninitialized) {\n // In case, we're still uninitialized, then we're waiting for the thenable\n // to resolve. Set it as pending in the meantime.\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n }\n }\n if (payload._status === Resolved) {\n var moduleObject = payload._result;\n {\n if (moduleObject === undefined) {\n error(\"lazy: Expected the result of a dynamic imp\" + \"ort() call. \" + \"Instead received: %s\\n\\nYour code should look like: \\n \" + // Break up imports to avoid accidentally parsing them as dependencies.\n \"const MyComponent = lazy(() => imp\" + \"ort('./MyComponent'))\\n\\n\" + \"Did you accidentally put curly braces around the import?\", moduleObject);\n }\n }\n {\n if (!(\"default\" in moduleObject)) {\n error(\"lazy: Expected the result of a dynamic imp\" + \"ort() call. \" + \"Instead received: %s\\n\\nYour code should look like: \\n \" + // Break up imports to avoid accidentally parsing them as dependencies.\n \"const MyComponent = lazy(() => imp\" + \"ort('./MyComponent'))\", moduleObject);\n }\n }\n return moduleObject.default;\n } else {\n throw payload._result;\n }\n }\n function lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: Uninitialized,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe[prop-missing]\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function() {\n return defaultProps;\n },\n // $FlowFixMe[missing-local-annot]\n set: function(newDefaultProps) {\n error(\"React.lazy(...): It is not supported to assign `defaultProps` to \" + \"a lazy component import. Either specify them where the component \" + \"is defined, or create a wrapping component around it.\");\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe[prop-missing]\n Object.defineProperty(lazyType, \"defaultProps\", {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function() {\n return propTypes;\n },\n // $FlowFixMe[missing-local-annot]\n set: function(newPropTypes) {\n error(\"React.lazy(...): It is not supported to assign `propTypes` to \" + \"a lazy component import. Either specify them where the component \" + \"is defined, or create a wrapping component around it.\");\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe[prop-missing]\n Object.defineProperty(lazyType, \"propTypes\", {\n enumerable: true\n });\n }\n }\n });\n }\n return lazyType;\n }\n function forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error(\"forwardRef requires a render function but received a `memo` \" + \"component. Instead of forwardRef(memo(...)), use \" + \"memo(forwardRef(...)).\");\n } else if (typeof render !== \"function\") {\n error(\"forwardRef requires a render function but was given %s.\", render === null ? \"null\" : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error(\"forwardRef render functions accept exactly two parameters: props and ref. %s\", render.length === 1 ? \"Did you forget to use the ref parameter?\" : \"Any additional parameter will be undefined.\");\n }\n }\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error(\"forwardRef render functions do not support propTypes or defaultProps. \" + \"Did you accidentally pass a React component?\");\n }\n }\n }\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n {\n var ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return ownName;\n },\n set: function(name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.forwardRef((props, ref) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n if (!render.name && !render.displayName) {\n render.displayName = name;\n }\n }\n });\n }\n return elementType;\n }\n var REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\");\n function isValidElementType(type) {\n if (typeof type === \"string\" || typeof type === \"function\") {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n return true;\n }\n if (typeof type === \"object\" && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE$1 || type.getModuleId !== undefined) {\n return true;\n }\n }\n return false;\n }\n function memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error(\"memo: The first argument must be a component. Instead \" + \"received: %s\", type === null ? \"null\" : typeof type);\n }\n }\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n {\n var ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return ownName;\n },\n set: function(name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.memo((props) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n if (!type.name && !type.displayName) {\n type.displayName = name;\n }\n }\n });\n }\n return elementType;\n }\n var UNTERMINATED = 0;\n var TERMINATED = 1;\n var ERRORED = 2;\n function createCacheRoot() {\n return new WeakMap();\n }\n function createCacheNode() {\n return {\n s: UNTERMINATED,\n // status, represents whether the cached computation returned a value or threw an error\n v: undefined,\n // value, either the cached result or an error, depending on s\n o: null,\n // object cache, a WeakMap where non-primitive arguments are stored\n p: null // primitive cache, a regular Map where primitive arguments are stored.\n };\n }\n function cache(fn) {\n return function() {\n var dispatcher = ReactCurrentCache.current;\n if (!dispatcher) {\n // If there is no dispatcher, then we treat this as not being cached.\n // $FlowFixMe[incompatible-call]: We don't want to use rest arguments since we transpile the code.\n return fn.apply(null, arguments);\n }\n var fnMap = dispatcher.getCacheForType(createCacheRoot);\n var fnNode = fnMap.get(fn);\n var cacheNode;\n if (fnNode === undefined) {\n cacheNode = createCacheNode();\n fnMap.set(fn, cacheNode);\n } else {\n cacheNode = fnNode;\n }\n for(var i = 0, l = arguments.length; i < l; i++){\n var arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n // Objects go into a WeakMap\n var objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = new WeakMap();\n }\n var objectNode = objectCache.get(arg);\n if (objectNode === undefined) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n // Primitives go into a regular Map\n var primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = new Map();\n }\n var primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === undefined) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n if (cacheNode.s === TERMINATED) {\n return cacheNode.v;\n }\n if (cacheNode.s === ERRORED) {\n throw cacheNode.v;\n }\n try {\n // $FlowFixMe[incompatible-call]: We don't want to use rest arguments since we transpile the code.\n var result = fn.apply(null, arguments);\n var terminatedNode = cacheNode;\n terminatedNode.s = TERMINATED;\n terminatedNode.v = result;\n return result;\n } catch (error) {\n // We store the first error that's thrown and rethrow it.\n var erroredNode = cacheNode;\n erroredNode.s = ERRORED;\n erroredNode.v = error;\n throw error;\n }\n };\n }\n function resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher$1.current;\n {\n if (dispatcher === null) {\n error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for\" + \" one of the following reasons:\\n\" + \"1. You might have mismatching versions of React and the renderer (such as React DOM)\\n\" + \"2. You might be breaking the Rules of Hooks\\n\" + \"3. You might have more than one copy of React in the same app\\n\" + \"See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\");\n }\n }\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n return dispatcher;\n }\n function useContext(Context) {\n var dispatcher = resolveDispatcher();\n {\n // TODO: add a more generic warning for invalid values.\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n if (realContext.Consumer === Context) {\n error(\"Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be \" + \"removed in a future major release. Did you mean to call useContext(Context) instead?\");\n } else if (realContext.Provider === Context) {\n error(\"Calling useContext(Context.Provider) is not supported. \" + \"Did you mean to call useContext(Context) instead?\");\n }\n }\n }\n return dispatcher.useContext(Context);\n }\n function useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n }\n function useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n }\n function useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n }\n function useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n }\n function useInsertionEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useInsertionEffect(create, deps);\n }\n function useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n }\n function useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n }\n function useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n }\n function useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n }\n function useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n }\n function useTransition() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useTransition();\n }\n function useDeferredValue(value, initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDeferredValue(value, initialValue);\n }\n function useId() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useId();\n }\n function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n }\n function useCacheRefresh() {\n var dispatcher = resolveDispatcher(); // $FlowFixMe[not-a-function] This is unstable, thus optional\n return dispatcher.useCacheRefresh();\n }\n function use(usable) {\n var dispatcher = resolveDispatcher();\n return dispatcher.use(usable);\n }\n function useOptimistic(passthrough, reducer) {\n var dispatcher = resolveDispatcher(); // $FlowFixMe[not-a-function] This is unstable, thus optional\n return dispatcher.useOptimistic(passthrough, reducer);\n }\n // Helpers to patch console.logs to avoid logging during side-effect free\n // replaying on render function. This currently only patches the object\n // lazily which won't cover if the log function was extracted eagerly.\n // We could also eagerly patch the method.\n var disabledDepth = 0;\n var prevLog;\n var prevInfo;\n var prevWarn;\n var prevError;\n var prevGroup;\n var prevGroupCollapsed;\n var prevGroupEnd;\n function disabledLog() {}\n disabledLog.__reactDisabledLog = true;\n function disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */ }\n disabledDepth++;\n }\n }\n function reenableLogs() {\n {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */ }\n if (disabledDepth < 0) {\n error(\"disabledDepth fell below zero. \" + \"This is a bug in React. Please file an issue.\");\n }\n }\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n var prefix;\n function describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || \"\";\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n return \"\\n\" + prefix + name;\n }\n }\n var reentry = false;\n var componentFrameCache;\n {\n var PossiblyWeakMap = typeof WeakMap === \"function\" ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n }\n /**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */ function describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return \"\";\n }\n {\n var frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */ var RunInRootFrame = {\n DetermineComponentFrameRoot: function() {\n var control;\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function() {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function() {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n if (typeof Reflect === \"object\" && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n if (maybePromise && typeof maybePromise.catch === \"function\") {\n maybePromise.catch(function() {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === \"string\") {\n return [\n sample.stack,\n control.stack\n ];\n }\n }\n return [\n null,\n null\n ];\n }\n }; // $FlowFixMe[prop-missing]\n RunInRootFrame.DetermineComponentFrameRoot.displayName = \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, \"name\"); // Before ES6, the `name` property was not configurable.\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // is set to `false`.\n // $FlowFixMe[cannot-write]\n \"name\", {\n value: \"DetermineComponentFrameRoot\"\n });\n }\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split(\"\\n\");\n var controlLines = controlStack.split(\"\\n\");\n var s = 0;\n var c = 0;\n while(s < sampleLines.length && !sampleLines[s].includes(\"DetermineComponentFrameRoot\")){\n s++;\n }\n while(c < controlLines.length && !controlLines[c].includes(\"DetermineComponentFrameRoot\")){\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n while(s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]){\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n for(; s >= 1 && c >= 0; s--, c--){\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = \"\\n\" + sampleLines[s].replace(\" at new \", \" at \"); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n if (fn.displayName && _frame.includes(\"<anonymous>\")) {\n _frame = _frame.replace(\"<anonymous>\", fn.displayName);\n }\n if (true) {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n return _frame;\n }\n }while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally{\n reentry = false;\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n var name = fn ? fn.displayName || fn.name : \"\";\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : \"\";\n {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n }\n function describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n }\n function shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n }\n function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n if (type == null) {\n return \"\";\n }\n if (typeof type === \"function\") {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n if (typeof type === \"string\") {\n return describeBuiltInComponentFrame(type);\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n var loggedTypeFailures = {};\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n function setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n }\n function checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n for(var typeSpecName in typeSpecs){\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== \"function\") {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; \" + \"it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\" + \"This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");\n err.name = \"Invariant Violation\";\n throw err;\n }\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\");\n } catch (ex) {\n error$1 = ex;\n }\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement$1(element);\n error(\"%s: type specification of %s\" + \" `%s` is invalid; the type checker \" + \"function must return `null` or an `Error` but returned a %s. \" + \"You may have forgotten to pass an argument to the type checker \" + \"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and \" + \"shape all require an argument).\", componentName || \"React class\", location, typeSpecName, typeof error$1);\n setCurrentlyValidatingElement$1(null);\n }\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement$1(element);\n error(\"Failed %s type: %s\", location, error$1.message);\n setCurrentlyValidatingElement$1(null);\n }\n }\n }\n }\n }\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n function setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n }\n var propTypesMisspellWarningShown;\n {\n propTypesMisspellWarningShown = false;\n }\n function getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (name) {\n return \"\\n\\nCheck the render method of `\" + name + \"`.\";\n }\n }\n return \"\";\n }\n function getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, \"\");\n var lineNumber = source.lineNumber;\n return \"\\n\\nCheck your code at \" + fileName + \":\" + lineNumber + \".\";\n }\n return \"\";\n }\n function getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n return \"\";\n }\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */ var ownerHasKeyUseWarning = {};\n function getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n if (!info) {\n var parentName = getComponentNameFromType(parentType);\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n return info;\n }\n /**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */ function validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = \"\";\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n {\n setCurrentlyValidatingElement(element);\n error('Each child in a list should have a unique \"key\" prop.' + \"%s%s See https://reactjs.org/link/warning-keys for more information.\", currentComponentErrorInfo, childOwner);\n setCurrentlyValidatingElement(null);\n }\n }\n /**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */ function validateChildKeys(node, parentType) {\n if (typeof node !== \"object\" || !node) {\n return;\n }\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ;\n else if (isArray(node)) {\n for(var i = 0; i < node.length; i++){\n var child = node[i];\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else {\n var iteratorFn = getIteratorFn(node);\n if (typeof iteratorFn === \"function\") {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while(!(step = iterator.next()).done){\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n /**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */ function validatePropTypes(element) {\n {\n var type = element.type;\n if (type === null || type === undefined || typeof type === \"string\") {\n return;\n }\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\n return;\n }\n var propTypes;\n if (typeof type === \"function\") {\n propTypes = type.propTypes;\n } else if (typeof type === \"object\" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, \"prop\", name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n var _name = getComponentNameFromType(type);\n error(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\", _name || \"Unknown\");\n }\n if (typeof type.getDefaultProps === \"function\" && !type.getDefaultProps.isReactClassApproved) {\n error(\"getDefaultProps is only used on classic React.createClass \" + \"definitions. Use a static property named `defaultProps` instead.\");\n }\n }\n }\n /**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */ function validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n for(var i = 0; i < keys.length; i++){\n var key = keys[i];\n if (key !== \"children\" && key !== \"key\") {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid prop `%s` supplied to `React.Fragment`. \" + \"React.Fragment can only have `key` and `children` props.\", key);\n setCurrentlyValidatingElement(null);\n break;\n }\n }\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid attribute `ref` supplied to `React.Fragment`.\");\n setCurrentlyValidatingElement(null);\n }\n }\n }\n function createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n var info = \"\";\n if (type === undefined || typeof type === \"object\" && type !== null && Object.keys(type).length === 0) {\n info += \" You likely forgot to export your component from the file \" + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n var typeString;\n if (type === null) {\n typeString = \"null\";\n } else if (isArray(type)) {\n typeString = \"array\";\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || \"Unknown\") + \" />\";\n info = \" Did you accidentally export a JSX literal instead of a component?\";\n } else {\n typeString = typeof type;\n }\n {\n error(\"React.createElement: type is invalid -- expected a string (for \" + \"built-in components) or a class/function (for composite \" + \"components) but got: %s.%s\", typeString, info);\n }\n }\n var element = createElement$1.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for(var i = 2; i < arguments.length; i++){\n validateChildKeys(arguments[i], type);\n }\n }\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n return element;\n }\n var didWarnAboutDeprecatedCreateFactory = false;\n function createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n warn(\"React.createFactory() is deprecated and will be removed in \" + \"a future major release. Consider using JSX \" + \"or use React.createElement() directly instead.\");\n } // Legacy hook: remove it\n Object.defineProperty(validatedFactory, \"type\", {\n enumerable: false,\n get: function() {\n warn(\"Factory.type is deprecated. Access the class directly \" + \"before passing it to createFactory.\");\n Object.defineProperty(this, \"type\", {\n value: type\n });\n return type;\n }\n });\n }\n return validatedFactory;\n }\n function cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement$1.apply(this, arguments);\n for(var i = 2; i < arguments.length; i++){\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n function startTransition(scope, options) {\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = {};\n var currentTransition = ReactCurrentBatchConfig.transition;\n {\n ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n }\n try {\n scope();\n } finally{\n ReactCurrentBatchConfig.transition = prevTransition;\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n currentTransition._updatedFibers.clear();\n if (updatedFibersCount > 10) {\n warn(\"Detected a large number of updates inside startTransition. \" + \"If this is due to a subscription please re-write it to use React provided hooks. \" + \"Otherwise concurrent mode guarantees are off the table.\");\n }\n }\n }\n }\n }\n var didWarnAboutMessageChannel = false;\n var enqueueTaskImpl = null;\n function enqueueTask(task) {\n if (enqueueTaskImpl === null) {\n try {\n // read require off the module object to get around the bundlers.\n // we don't want them to detect a require and bundle a Node polyfill.\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n // version of setImmediate, bypassing fake timers if any.\n enqueueTaskImpl = nodeRequire.call(module, \"timers\").setImmediate;\n } catch (_err) {\n // we're in a browser\n // we can't use regular timers because they may still be faked\n // so we try MessageChannel+postMessage instead\n enqueueTaskImpl = function(callback) {\n {\n if (didWarnAboutMessageChannel === false) {\n didWarnAboutMessageChannel = true;\n if (typeof MessageChannel === \"undefined\") {\n error(\"This browser does not have a MessageChannel implementation, \" + \"so enqueuing tasks via await act(async () => ...) will fail. \" + \"Please file an issue at https://github.com/facebook/react/issues \" + \"if you encounter this warning.\");\n }\n }\n }\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(undefined);\n };\n }\n }\n return enqueueTaskImpl(task);\n }\n // number of `act` scopes on the stack.\n var actScopeDepth = 0; // We only warn the first time you neglect to await an async `act` scope.\n var didWarnNoAwaitAct = false;\n function act(callback) {\n {\n // When ReactCurrentActQueue.current is not null, it signals to React that\n // we're currently inside an `act` scope. React will push all its tasks to\n // this queue instead of scheduling them with platform APIs.\n //\n // We set this to an empty array when we first enter an `act` scope, and\n // only unset it once we've left the outermost `act` scope — remember that\n // `act` calls can be nested.\n //\n // If we're already inside an `act` scope, reuse the existing queue.\n var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n var prevActQueue = ReactCurrentActQueue.current;\n var prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = ReactCurrentActQueue.current = prevActQueue !== null ? prevActQueue : []; // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n // set to `true` while the given callback is executed, not for updates\n // triggered during an async event, because this is how the legacy\n // implementation of `act` behaved.\n ReactCurrentActQueue.isBatchingLegacy = true;\n var result; // This tracks whether the `act` call is awaited. In certain cases, not\n // awaiting it is a mistake, so we will detect that and warn.\n var didAwaitActCall = false;\n try {\n // Reset this to `false` right before entering the React work loop. The\n // only place we ever read this fields is just below, right after running\n // the callback. So we don't need to reset after the callback runs.\n ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n result = callback();\n var didScheduleLegacyUpdate = ReactCurrentActQueue.didScheduleLegacyUpdate; // Replicate behavior of original `act` implementation in legacy mode,\n // which flushed updates immediately after the scope function exits, even\n // if it's an async function.\n if (!prevIsBatchingLegacy && didScheduleLegacyUpdate) {\n flushActQueue(queue);\n } // `isBatchingLegacy` gets reset using the regular stack, not the async\n // one used to track `act` scopes. Why, you may be wondering? Because\n // that's how it worked before version 18. Yes, it's confusing! We should\n // delete legacy mode!!\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n } catch (error) {\n // `isBatchingLegacy` gets reset using the regular stack, not the async\n // one used to track `act` scopes. Why, you may be wondering? Because\n // that's how it worked before version 18. Yes, it's confusing! We should\n // delete legacy mode!!\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n popActScope(prevActQueue, prevActScopeDepth);\n throw error;\n }\n if (result !== null && typeof result === \"object\" && // $FlowFixMe[method-unbinding]\n typeof result.then === \"function\") {\n // A promise/thenable was returned from the callback. Wait for it to\n // resolve before flushing the queue.\n //\n // If `act` were implemented as an async function, this whole block could\n // be a single `await` call. That's really the only difference between\n // this branch and the next one.\n var thenable = result; // Warn if the an `act` call with an async scope is not awaited. In a\n // future release, consider making this an error.\n queueSeveralMicrotasks(function() {\n if (!didAwaitActCall && !didWarnNoAwaitAct) {\n didWarnNoAwaitAct = true;\n error(\"You called act(async () => ...) without await. \" + \"This could lead to unexpected testing behaviour, \" + \"interleaving multiple act calls and mixing their \" + \"scopes. \" + \"You should - await act(async () => ...);\");\n }\n });\n return {\n then: function(resolve, reject) {\n didAwaitActCall = true;\n thenable.then(function(returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (prevActScopeDepth === 0) {\n // We're exiting the outermost `act` scope. Flush the queue.\n try {\n flushActQueue(queue);\n enqueueTask(function() {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n } catch (error) {\n // `thenable` might not be a real promise, and `flushActQueue`\n // might throw, so we need to wrap `flushActQueue` in a\n // try/catch.\n reject(error);\n }\n } else {\n resolve(returnValue);\n }\n }, function(error) {\n popActScope(prevActQueue, prevActScopeDepth);\n reject(error);\n });\n }\n };\n } else {\n var returnValue = result; // The callback is not an async function. Exit the current\n // scope immediately.\n popActScope(prevActQueue, prevActScopeDepth);\n if (prevActScopeDepth === 0) {\n // We're exiting the outermost `act` scope. Flush the queue.\n flushActQueue(queue); // If the queue is not empty, it implies that we intentionally yielded\n // to the main thread, because something suspended. We will continue\n // in an asynchronous task.\n //\n // Warn if something suspends but the `act` call is not awaited.\n // In a future release, consider making this an error.\n if (queue.length !== 0) {\n queueSeveralMicrotasks(function() {\n if (!didAwaitActCall && !didWarnNoAwaitAct) {\n didWarnNoAwaitAct = true;\n error(\"A component suspended inside an `act` scope, but the \" + \"`act` call was not awaited. When testing React \" + \"components that depend on asynchronous data, you must \" + \"await the result:\\n\\n\" + \"await act(() => ...)\");\n }\n });\n } // Like many things in this module, this is next part is confusing.\n //\n // We do not currently require every `act` call that is passed a\n // callback to be awaited, through arguably we should. Since this\n // callback was synchronous, we need to exit the current scope before\n // returning.\n //\n // However, if thenable we're about to return *is* awaited, we'll\n // immediately restore the current scope. So it shouldn't observable.\n //\n // This doesn't affect the case where the scope callback is async,\n // because we always require those calls to be awaited.\n //\n // TODO: In a future version, consider always requiring all `act` calls\n // to be awaited, regardless of whether the callback is sync or async.\n ReactCurrentActQueue.current = null;\n }\n return {\n then: function(resolve, reject) {\n didAwaitActCall = true;\n if (prevActScopeDepth === 0) {\n // If the `act` call is awaited, restore the queue we were\n // using before (see long comment above) so we can flush it.\n ReactCurrentActQueue.current = queue;\n enqueueTask(function() {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n } else {\n resolve(returnValue);\n }\n }\n };\n }\n }\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n {\n if (prevActScopeDepth !== actScopeDepth - 1) {\n error(\"You seem to have overlapping act() calls, this is not supported. \" + \"Be sure to await previous act() calls before making a new one. \");\n }\n actScopeDepth = prevActScopeDepth;\n }\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n {\n // Check if any tasks were scheduled asynchronously.\n var queue = ReactCurrentActQueue.current;\n if (queue !== null) {\n if (queue.length !== 0) {\n // Async tasks were scheduled, mostly likely in a microtask.\n // Keep flushing until there are no more.\n try {\n flushActQueue(queue); // The work we just performed may have schedule additional async\n // tasks. Wait a macrotask and check again.\n enqueueTask(function() {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n } catch (error) {\n // Leave remaining tasks on the queue if something throws.\n reject(error);\n }\n } else {\n // The queue is empty. We can finish.\n ReactCurrentActQueue.current = null;\n resolve(returnValue);\n }\n } else {\n resolve(returnValue);\n }\n }\n }\n var isFlushing = false;\n function flushActQueue(queue) {\n {\n if (!isFlushing) {\n // Prevent re-entrance.\n isFlushing = true;\n var i = 0;\n try {\n for(; i < queue.length; i++){\n var callback = queue[i];\n do {\n ReactCurrentActQueue.didUsePromise = false;\n var continuation = callback(false);\n if (continuation !== null) {\n if (ReactCurrentActQueue.didUsePromise) {\n // The component just suspended. Yield to the main thread in\n // case the promise is already resolved. If so, it will ping in\n // a microtask and we can resume without unwinding the stack.\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else {\n break;\n }\n }while (true);\n } // We flushed the entire queue.\n queue.length = 0;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n queue.splice(0, i + 1);\n throw error;\n } finally{\n isFlushing = false;\n }\n }\n }\n } // Some of our warnings attempt to detect if the `act` call is awaited by\n // checking in an asynchronous task. Wait a few microtasks before checking. The\n // only reason one isn't sufficient is we want to accommodate the case where an\n // `act` call is returned from an async function without first being awaited,\n // since that's a somewhat common pattern. If you do this too many times in a\n // nested sequence, you might get a warning, but you can always fix by awaiting\n // the call.\n //\n // A macrotask would also work (and is the fallback) but depending on the test\n // environment it may cause the warning to fire too late.\n var queueSeveralMicrotasks = typeof queueMicrotask === \"function\" ? function(callback) {\n queueMicrotask(function() {\n return queueMicrotask(callback);\n });\n } : enqueueTask;\n var createElement = createElementWithValidation;\n var cloneElement = cloneElementWithValidation;\n var createFactory = createFactoryWithValidation;\n var Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n };\n exports.Children = Children;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\n exports.cache = cache;\n exports.cloneElement = cloneElement;\n exports.createContext = createContext;\n exports.createElement = createElement;\n exports.createFactory = createFactory;\n exports.createRef = createRef;\n exports.forwardRef = forwardRef;\n exports.isValidElement = isValidElement;\n exports.lazy = lazy;\n exports.memo = memo;\n exports.startTransition = startTransition;\n exports.unstable_act = act;\n exports.unstable_useCacheRefresh = useCacheRefresh;\n exports.use = use;\n exports.useCallback = useCallback;\n exports.useContext = useContext;\n exports.useDebugValue = useDebugValue;\n exports.useDeferredValue = useDeferredValue;\n exports.useEffect = useEffect;\n exports.useId = useId;\n exports.useImperativeHandle = useImperativeHandle;\n exports.useInsertionEffect = useInsertionEffect;\n exports.useLayoutEffect = useLayoutEffect;\n exports.useMemo = useMemo;\n exports.useOptimistic = useOptimistic;\n exports.useReducer = useReducer;\n exports.useRef = useRef;\n exports.useState = useState;\n exports.useSyncExternalStore = useSyncExternalStore;\n exports.useTransition = useTransition;\n exports.version = ReactVersion;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== \"undefined\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === \"function\") {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n }\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztDQVFDLEdBRUQ7QUFFQSxJQUFJQSxJQUFxQyxFQUFFO0lBQ3hDO1FBRU87UUFFVix5Q0FBeUMsR0FDekMsSUFDRSxPQUFPQyxtQ0FBbUMsZUFDMUMsT0FBT0EsK0JBQStCQywyQkFBMkIsS0FDL0QsWUFDRjtZQUNBRCwrQkFBK0JDLDJCQUEyQixDQUFDLElBQUlDO1FBQ2pFO1FBQ1UsSUFBSUMsZUFBZTtRQUU3QixZQUFZO1FBQ1osd0NBQXdDO1FBQ3hDLGtGQUFrRjtRQUNsRixzREFBc0Q7UUFDdEQsSUFBSUMscUJBQXFCQyxPQUFPQyxHQUFHLENBQUM7UUFDcEMsSUFBSUMsb0JBQW9CRixPQUFPQyxHQUFHLENBQUM7UUFDbkMsSUFBSUUsc0JBQXNCSCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSUcseUJBQXlCSixPQUFPQyxHQUFHLENBQUM7UUFDeEMsSUFBSUksc0JBQXNCTCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSUssc0JBQXNCTixPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSU0scUJBQXFCUCxPQUFPQyxHQUFHLENBQUM7UUFDcEMsSUFBSU8seUJBQXlCUixPQUFPQyxHQUFHLENBQUM7UUFDeEMsSUFBSVEsc0JBQXNCVCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSVMsMkJBQTJCVixPQUFPQyxHQUFHLENBQUM7UUFDMUMsSUFBSVUsa0JBQWtCWCxPQUFPQyxHQUFHLENBQUM7UUFDakMsSUFBSVcsa0JBQWtCWixPQUFPQyxHQUFHLENBQUM7UUFDakMsSUFBSVksdUJBQXVCYixPQUFPQyxHQUFHLENBQUM7UUFDdEMsSUFBSWEsbUJBQW1CZCxPQUFPQyxHQUFHLENBQUM7UUFDbEMsSUFBSWMsd0JBQXdCZixPQUFPZ0IsUUFBUTtRQUMzQyxJQUFJQyx1QkFBdUI7UUFD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N0J5Syx1QkFBdUIsR0FBR3hLO1FBQzFCd0ssZUFBZSxHQUFHdEs7UUFDbEJzSyxxQkFBcUIsR0FBR3hKO1FBQ3hCd0osa0JBQWtCLEdBQUdqTDtRQUNyQmlMLGNBQWMsR0FBRzlLO1FBQ2pCOEssZ0JBQWdCLEdBQUduTDtRQUNuQm1MLDRCQUE0QixHQUFHL0o7UUFDL0IrSixxQkFBcUIsR0FBR2xLO1FBQ3hCa0ssZUFBZSxHQUFHdGY7UUFDUix5Q0FBeUMsR0FDbkQsSUFDRSxPQUFPSCxtQ0FBbUMsZUFDMUMsT0FBT0EsK0JBQStCa2dCLDBCQUEwQixLQUM5RCxZQUNGO1lBQ0FsZ0IsK0JBQStCa2dCLDBCQUEwQixDQUFDLElBQUloZ0I7UUFDaEU7SUFFRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcz9kY2U4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgJ3VzZSBzdHJpY3QnO1xuXG4vKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG5pZiAoXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gIT09ICd1bmRlZmluZWQnICYmXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0ID09PVxuICAgICdmdW5jdGlvbidcbikge1xuICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0KG5ldyBFcnJvcigpKTtcbn1cbiAgICAgICAgICB2YXIgUmVhY3RWZXJzaW9uID0gJzE4LjMuMC1jYW5hcnktNjBhOTI3ZDA0LTIwMjQwMTEzJztcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvdmlkZXInKTtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb250ZXh0Jyk7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKTtcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5vZmZzY3JlZW4nKTtcbnZhciBSRUFDVF9DQUNIRV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY2FjaGUnKTtcbnZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxID0ge1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IENhY2hlIGRpc3BhdGNoZXIuXG4gKi9cbnZhciBSZWFjdEN1cnJlbnRDYWNoZSA9IHtcbiAgY3VycmVudDogbnVsbFxufTtcblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBiYXRjaCdzIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBob3cgbG9uZyBhbiB1cGRhdGVcbiAqIHNob3VsZCBzdXNwZW5kIGZvciBpZiBpdCBuZWVkcyB0by5cbiAqL1xudmFyIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnID0ge1xuICB0cmFuc2l0aW9uOiBudWxsXG59O1xuXG52YXIgUmVhY3RDdXJyZW50QWN0UXVldWUgPSB7XG4gIGN1cnJlbnQ6IG51bGwsXG4gIC8vIFVzZWQgdG8gcmVwcm9kdWNlIGJlaGF2aW9yIG9mIGBiYXRjaGVkVXBkYXRlc2AgaW4gbGVnYWN5IG1vZGUuXG4gIGlzQmF0Y2hpbmdMZWdhY3k6IGZhbHNlLFxuICBkaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZTogZmFsc2UsXG4gIC8vIFRyYWNrcyB3aGV0aGVyIHNvbWV0aGluZyBjYWxsZWQgYHVzZWAgZHVyaW5nIHRoZSBjdXJyZW50IGJhdGNoIG9mIHdvcmsuXG4gIC8vIERldGVybWluZXMgd2hldGhlciB3ZSBzaG91bGQgeWllbGQgdG8gbWljcm90YXNrcyB0byB1bndyYXAgYWxyZWFkeSByZXNvbHZlZFxuICAvLyBwcm9taXNlcyB3aXRob3V0IHN1c3BlbmRpbmcuXG4gIGRpZFVzZVByb21pc2U6IGZhbHNlXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IG93bmVyLlxuICpcbiAqIFRoZSBjdXJyZW50IG93bmVyIGlzIHRoZSBjb21wb25lbnQgd2hvIHNob3VsZCBvd24gYW55IGNvbXBvbmVudHMgdGhhdCBhcmVcbiAqIGN1cnJlbnRseSBiZWluZyBjb25zdHJ1Y3RlZC5cbiAqL1xudmFyIFJlYWN0Q3VycmVudE93bmVyID0ge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEB0eXBlIHtSZWFjdENvbXBvbmVudH1cbiAgICovXG4gIGN1cnJlbnQ6IG51bGxcbn07XG5cbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSB7fTtcbnZhciBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gbnVsbDtcbmZ1bmN0aW9uIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjaykge1xuICB7XG4gICAgY3VycmVudEV4dHJhU3RhY2tGcmFtZSA9IHN0YWNrO1xuICB9XG59XG5cbntcbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZSA9IGZ1bmN0aW9uIChzdGFjaykge1xuICAgIHtcbiAgICAgIGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUgPSBzdGFjaztcbiAgICB9XG4gIH07IC8vIFN0YWNrIGltcGxlbWVudGF0aW9uIGluamVjdGVkIGJ5IHRoZSBjdXJyZW50IHJlbmRlcmVyLlxuXG5cbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldEN1cnJlbnRTdGFjayA9IG51bGw7XG5cbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldFN0YWNrQWRkZW5kdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YWNrID0gJyc7IC8vIEFkZCBhbiBleHRyYSB0b3AgZnJhbWUgd2hpbGUgYW4gZWxlbWVudCBpcyBiZWluZyB2YWxpZGF0ZWRcblxuICAgIGlmIChjdXJyZW50RXh0cmFTdGFja0ZyYW1lKSB7XG4gICAgICBzdGFjayArPSBjdXJyZW50RXh0cmFTdGFja0ZyYW1lO1xuICAgIH0gLy8gRGVsZWdhdGUgdG8gdGhlIGluamVjdGVkIHJlbmRlcmVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uXG5cblxuICAgIHZhciBpbXBsID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldEN1cnJlbnRTdGFjaztcblxuICAgIGlmIChpbXBsKSB7XG4gICAgICBzdGFjayArPSBpbXBsKCkgfHwgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgZW5hYmxlU2NvcGVBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIENyZWF0ZSBFdmVudCBIYW5kbGUgQVBJLlxudmFyIGVuYWJsZUNhY2hlRWxlbWVudCA9IGZhbHNlO1xudmFyIGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nID0gZmFsc2U7IC8vIE5vIGtub3duIGJ1Z3MsIGJ1dCBuZWVkcyBwZXJmb3JtYW5jZSB0ZXN0aW5nXG5cbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXG4vLyBzdHVmZi4gSW50ZW5kZWQgdG8gZW5hYmxlIFJlYWN0IGNvcmUgbWVtYmVycyB0byBtb3JlIGVhc2lseSBkZWJ1ZyBzY2hlZHVsaW5nXG4vLyBpc3N1ZXMgaW4gREVWIGJ1aWxkcy5cblxudmFyIGVuYWJsZURlYnVnVHJhY2luZyA9IGZhbHNlO1xuXG52YXIgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSB7XG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXI6IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSxcbiAgUmVhY3RDdXJyZW50Q2FjaGU6IFJlYWN0Q3VycmVudENhY2hlLFxuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzogUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsXG4gIFJlYWN0Q3VycmVudE93bmVyOiBSZWFjdEN1cnJlbnRPd25lclxufTtcblxue1xuICBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxO1xuICBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRBY3RRdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlO1xufVxuXG4vLyBieSBjYWxscyB0byB0aGVzZSBtZXRob2RzIGJ5IGEgQmFiZWwgcGx1Z2luLlxuLy9cbi8vIEluIFBST0QgKG9yIGluIHBhY2thZ2VzIHdpdGhvdXQgYWNjZXNzIHRvIFJlYWN0IGludGVybmFscyksXG4vLyB0aGV5IGFyZSBsZWZ0IGFzIHRoZXkgYXJlIGluc3RlYWQuXG5cbmZ1bmN0aW9uIHdhcm4oZm9ybWF0KSB7XG4gIHtcbiAgICB7XG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICBwcmludFdhcm5pbmcoJ3dhcm4nLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZXJyb3IoZm9ybWF0KSB7XG4gIHtcbiAgICB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIgPiAxID8gX2xlbjIgLSAxIDogMCksIF9rZXkyID0gMTsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuXG4gICAgICBwcmludFdhcm5pbmcoJ2Vycm9yJywgZm9ybWF0LCBhcmdzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGxldmVsLCBmb3JtYXQsIGFyZ3MpIHtcbiAgLy8gV2hlbiBjaGFuZ2luZyB0aGlzIGxvZ2ljLCB5b3UgbWlnaHQgd2FudCB0byBhbHNvXG4gIC8vIHVwZGF0ZSBjb25zb2xlV2l0aFN0YWNrRGV2Lnd3dy5qcyBhcyB3ZWxsLlxuICB7XG4gICAgdmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuICAgIHZhciBzdGFjayA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSgpO1xuXG4gICAgaWYgKHN0YWNrICE9PSAnJykge1xuICAgICAgZm9ybWF0ICs9ICclcyc7XG4gICAgICBhcmdzID0gYXJncy5jb25jYXQoW3N0YWNrXSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cblxuXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBTdHJpbmcoaXRlbSk7XG4gICAgfSk7IC8vIENhcmVmdWw6IFJOIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJlZml4XG5cbiAgICBhcmdzV2l0aEZvcm1hdC51bnNoaWZ0KCdXYXJuaW5nOiAnICsgZm9ybWF0KTsgLy8gV2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2Ugc3ByZWFkIChvciAuYXBwbHkpIGRpcmVjdGx5IGJlY2F1c2UgaXRcbiAgICAvLyBicmVha3MgSUU5OiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzNjEwXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuXG4gICAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZVtsZXZlbF0sIGNvbnNvbGUsIGFyZ3NXaXRoRm9ybWF0KTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50ID0ge307XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHtcbiAgICB2YXIgX2NvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBfY29uc3RydWN0b3IgJiYgKF9jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCBfY29uc3RydWN0b3IubmFtZSkgfHwgJ1JlYWN0Q2xhc3MnO1xuICAgIHZhciB3YXJuaW5nS2V5ID0gY29tcG9uZW50TmFtZSArIFwiLlwiICsgY2FsbGVyTmFtZTtcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlcnJvcihcIkNhbid0IGNhbGwgJXMgb24gYSBjb21wb25lbnQgdGhhdCBpcyBub3QgeWV0IG1vdW50ZWQuIFwiICsgJ1RoaXMgaXMgYSBuby1vcCwgYnV0IGl0IG1pZ2h0IGluZGljYXRlIGEgYnVnIGluIHlvdXIgYXBwbGljYXRpb24uICcgKyAnSW5zdGVhZCwgYXNzaWduIHRvIGB0aGlzLnN0YXRlYCBkaXJlY3RseSBvciBkZWZpbmUgYSBgc3RhdGUgPSB7fTtgICcgKyAnY2xhc3MgcHJvcGVydHkgd2l0aCB0aGUgZGVzaXJlZCBzdGF0ZSBpbiB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldID0gdHJ1ZTtcbiAgfVxufVxuLyoqXG4gKiBUaGlzIGlzIHRoZSBhYnN0cmFjdCBBUEkgZm9yIGFuIHVwZGF0ZSBxdWV1ZS5cbiAqL1xuXG5cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGNhbGxlck5hbWUgbmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBjYWxsZXJOYW1lIG5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBjb21wbGV0ZVN0YXRlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBUaGlzIG9ubHkgZXhpc3RzIGJlY2F1c2UgX3BlbmRpbmdTdGF0ZSBpc1xuICAgKiBpbnRlcm5hbC4gVGhpcyBwcm92aWRlcyBhIG1lcmdpbmcgc3RyYXRlZ3kgdGhhdCBpcyBub3QgYXZhaWxhYmxlIHRvIGRlZXBcbiAgICogcHJvcGVydGllcyB3aGljaCBpcyBjb25mdXNpbmcuIFRPRE86IEV4cG9zZSBwZW5kaW5nU3RhdGUgb3IgZG9uJ3QgdXNlIGl0XG4gICAqIGR1cmluZyB0aGUgbWVyZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBOYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdzZXRTdGF0ZScpO1xuICB9XG59O1xuXG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxudmFyIGVtcHR5T2JqZWN0ID0ge307XG5cbntcbiAgT2JqZWN0LmZyZWV6ZShlbXB0eU9iamVjdCk7XG59XG4vKipcbiAqIEJhc2UgY2xhc3MgaGVscGVycyBmb3IgdGhlIHVwZGF0aW5nIHN0YXRlIG9mIGEgY29tcG9uZW50LlxuICovXG5cblxuZnVuY3Rpb24gQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDsgLy8gSWYgYSBjb21wb25lbnQgaGFzIHN0cmluZyByZWZzLCB3ZSB3aWxsIGFzc2lnbiBhIGRpZmZlcmVudCBvYmplY3QgbGF0ZXIuXG5cbiAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7IC8vIFdlIGluaXRpYWxpemUgdGhlIGRlZmF1bHQgdXBkYXRlciBidXQgdGhlIHJlYWwgb25lIGdldHMgaW5qZWN0ZWQgYnkgdGhlXG4gIC8vIHJlbmRlcmVyLlxuXG4gIHRoaXMudXBkYXRlciA9IHVwZGF0ZXIgfHwgUmVhY3ROb29wVXBkYXRlUXVldWU7XG59XG5cbkNvbXBvbmVudC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCA9IHt9O1xuLyoqXG4gKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gQWx3YXlzIHVzZSB0aGlzIHRvIG11dGF0ZVxuICogc3RhdGUuIFlvdSBzaG91bGQgdHJlYXQgYHRoaXMuc3RhdGVgIGFzIGltbXV0YWJsZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICogYWNjZXNzaW5nIGB0aGlzLnN0YXRlYCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIG1heSByZXR1cm4gdGhlIG9sZCB2YWx1ZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBjYWxscyB0byBgc2V0U3RhdGVgIHdpbGwgcnVuIHN5bmNocm9ub3VzbHksXG4gKiBhcyB0aGV5IG1heSBldmVudHVhbGx5IGJlIGJhdGNoZWQgdG9nZXRoZXIuICBZb3UgY2FuIHByb3ZpZGUgYW4gb3B0aW9uYWxcbiAqIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZSBjYWxsIHRvIHNldFN0YXRlIGlzIGFjdHVhbGx5XG4gKiBjb21wbGV0ZWQuXG4gKlxuICogV2hlbiBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIHRvIHNldFN0YXRlLCBpdCB3aWxsIGJlIGNhbGxlZCBhdCBzb21lIHBvaW50IGluXG4gKiB0aGUgZnV0dXJlIChub3Qgc3luY2hyb25vdXNseSkuIEl0IHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHVwIHRvIGRhdGVcbiAqIGNvbXBvbmVudCBhcmd1bWVudHMgKHN0YXRlLCBwcm9wcywgY29udGV4dCkuIFRoZXNlIHZhbHVlcyBjYW4gYmUgZGlmZmVyZW50XG4gKiBmcm9tIHRoaXMuKiBiZWNhdXNlIHlvdXIgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBhZnRlciByZWNlaXZlUHJvcHMgYnV0IGJlZm9yZVxuICogc2hvdWxkQ29tcG9uZW50VXBkYXRlLCBhbmQgdGhpcyBuZXcgc3RhdGUsIHByb3BzLCBhbmQgY29udGV4dCB3aWxsIG5vdCB5ZXQgYmVcbiAqIGFzc2lnbmVkIHRvIHRoaXMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgb3IgZnVuY3Rpb24gdG9cbiAqICAgICAgICBwcm9kdWNlIG5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBzdGF0ZSBpcyB1cGRhdGVkLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuQ29tcG9uZW50LnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9uIChwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrKSB7XG4gIGlmICh0eXBlb2YgcGFydGlhbFN0YXRlICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgcGFydGlhbFN0YXRlICE9PSAnZnVuY3Rpb24nICYmIHBhcnRpYWxTdGF0ZSAhPSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhICcgKyAnZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLicpO1xuICB9XG5cbiAgdGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLCBwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrLCAnc2V0U3RhdGUnKTtcbn07XG4vKipcbiAqIEZvcmNlcyBhbiB1cGRhdGUuIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW52b2tlZCB3aGVuIGl0IGlzIGtub3duIHdpdGhcbiAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICpcbiAqIFlvdSBtYXkgd2FudCB0byBjYWxsIHRoaXMgd2hlbiB5b3Uga25vdyB0aGF0IHNvbWUgZGVlcGVyIGFzcGVjdCBvZiB0aGVcbiAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICpcbiAqIFRoaXMgd2lsbCBub3QgaW52b2tlIGBzaG91bGRDb21wb25lbnRVcGRhdGVgLCBidXQgaXQgd2lsbCBpbnZva2VcbiAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gKlxuICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciB1cGRhdGUgaXMgY29tcGxldGUuXG4gKiBAZmluYWxcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuXG5cbkNvbXBvbmVudC5wcm90b3R5cGUuZm9yY2VVcGRhdGUgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgdGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLCBjYWxsYmFjaywgJ2ZvcmNlVXBkYXRlJyk7XG59O1xuLyoqXG4gKiBEZXByZWNhdGVkIEFQSXMuIFRoZXNlIEFQSXMgdXNlZCB0byBleGlzdCBvbiBjbGFzc2ljIFJlYWN0IGNsYXNzZXMgYnV0IHNpbmNlXG4gKiB3ZSB3b3VsZCBsaWtlIHRvIGRlcHJlY2F0ZSB0aGVtLCB3ZSdyZSBub3QgZ29pbmcgdG8gbW92ZSB0aGVtIG92ZXIgdG8gdGhpc1xuICogbW9kZXJuIGJhc2UgY2xhc3MuIEluc3RlYWQsIHdlIGRlZmluZSBhIGdldHRlciB0aGF0IHdhcm5zIGlmIGl0J3MgYWNjZXNzZWQuXG4gKi9cblxuXG57XG4gIHZhciBkZXByZWNhdGVkQVBJcyA9IHtcbiAgICBpc01vdW50ZWQ6IFsnaXNNb3VudGVkJywgJ0luc3RlYWQsIG1ha2Ugc3VyZSB0byBjbGVhbiB1cCBzdWJzY3JpcHRpb25zIGFuZCBwZW5kaW5nIHJlcXVlc3RzIGluICcgKyAnY29tcG9uZW50V2lsbFVubW91bnQgdG8gcHJldmVudCBtZW1vcnkgbGVha3MuJ10sXG4gICAgcmVwbGFjZVN0YXRlOiBbJ3JlcGxhY2VTdGF0ZScsICdSZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIHNldFN0YXRlIGluc3RlYWQgKHNlZSAnICsgJ2h0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMzIzNikuJ11cbiAgfTtcblxuICB2YXIgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nID0gZnVuY3Rpb24gKG1ldGhvZE5hbWUsIGluZm8pIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29tcG9uZW50LnByb3RvdHlwZSwgbWV0aG9kTmFtZSwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHdhcm4oJyVzKC4uLikgaXMgZGVwcmVjYXRlZCBpbiBwbGFpbiBKYXZhU2NyaXB0IFJlYWN0IGNsYXNzZXMuICVzJywgaW5mb1swXSwgaW5mb1sxXSk7XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBmb3IgKHZhciBmbk5hbWUgaW4gZGVwcmVjYXRlZEFQSXMpIHtcbiAgICBpZiAoZGVwcmVjYXRlZEFQSXMuaGFzT3duUHJvcGVydHkoZm5OYW1lKSkge1xuICAgICAgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKGZuTmFtZSwgZGVwcmVjYXRlZEFQSXNbZm5OYW1lXSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIENvbXBvbmVudER1bW15KCkge31cblxuQ29tcG9uZW50RHVtbXkucHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbi8qKlxuICogQ29udmVuaWVuY2UgY29tcG9uZW50IHdpdGggZGVmYXVsdCBzaGFsbG93IGVxdWFsaXR5IGNoZWNrIGZvciBzQ1UuXG4gKi9cblxuZnVuY3Rpb24gUHVyZUNvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7IC8vIElmIGEgY29tcG9uZW50IGhhcyBzdHJpbmcgcmVmcywgd2Ugd2lsbCBhc3NpZ24gYSBkaWZmZXJlbnQgb2JqZWN0IGxhdGVyLlxuXG4gIHRoaXMucmVmcyA9IGVtcHR5T2JqZWN0O1xuICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xufVxuXG52YXIgcHVyZUNvbXBvbmVudFByb3RvdHlwZSA9IFB1cmVDb21wb25lbnQucHJvdG90eXBlID0gbmV3IENvbXBvbmVudER1bW15KCk7XG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmNvbnN0cnVjdG9yID0gUHVyZUNvbXBvbmVudDsgLy8gQXZvaWQgYW4gZXh0cmEgcHJvdG90eXBlIGp1bXAgZm9yIHRoZXNlIG1ldGhvZHMuXG5cbmFzc2lnbihwdXJlQ29tcG9uZW50UHJvdG90eXBlLCBDb21wb25lbnQucHJvdG90eXBlKTtcbnB1cmVDb21wb25lbnRQcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQgPSB0cnVlO1xuXG4vLyBhbiBpbW11dGFibGUgb2JqZWN0IHdpdGggYSBzaW5nbGUgbXV0YWJsZSB2YWx1ZVxuZnVuY3Rpb24gY3JlYXRlUmVmKCkge1xuICB2YXIgcmVmT2JqZWN0ID0ge1xuICAgIGN1cnJlbnQ6IG51bGxcbiAgfTtcblxuICB7XG4gICAgT2JqZWN0LnNlYWwocmVmT2JqZWN0KTtcbiAgfVxuXG4gIHJldHVybiByZWZPYmplY3Q7XG59XG5cbnZhciBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcblxuZnVuY3Rpb24gaXNBcnJheShhKSB7XG4gIHJldHVybiBpc0FycmF5SW1wbChhKTtcbn1cblxuLypcbiAqIFRoZSBgJycgKyB2YWx1ZWAgcGF0dGVybiAodXNlZCBpbiBwZXJmLXNlbnNpdGl2ZSBjb2RlKSB0aHJvd3MgZm9yIFN5bWJvbFxuICogYW5kIFRlbXBvcmFsLiogdHlwZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yMjA2NC5cbiAqXG4gKiBUaGUgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIHdpbGwgdGhyb3cgYW4gZWFzaWVyLXRvLXVuZGVyc3RhbmQsXG4gKiBlYXNpZXItdG8tZGVidWcgZXhjZXB0aW9uIHdpdGggYSBjbGVhciBlcnJvcnMgbWVzc2FnZSBtZXNzYWdlIGV4cGxhaW5pbmcgdGhlXG4gKiBwcm9ibGVtLiAoSW5zdGVhZCBvZiBhIGNvbmZ1c2luZyBleGNlcHRpb24gdGhyb3duIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb25cbiAqIG9mIHRoZSBgdmFsdWVgIG9iamVjdCkuXG4gKi9cbi8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl0gb25seSBjYWxsZWQgaW4gREVWLCBzbyB2b2lkIHJldHVybiBpcyBub3QgcG9zc2libGUuXG5mdW5jdGlvbiB0eXBlTmFtZSh2YWx1ZSkge1xuICB7XG4gICAgLy8gdG9TdHJpbmdUYWcgaXMgbmVlZGVkIGZvciBuYW1lc3BhY2VkIHR5cGVzIGxpa2UgVGVtcG9yYWwuSW5zdGFudFxuICAgIHZhciBoYXNUb1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLnRvU3RyaW5nVGFnO1xuICAgIHZhciB0eXBlID0gaGFzVG9TdHJpbmdUYWcgJiYgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSB8fCB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdPYmplY3QnOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuXG5cbmZ1bmN0aW9uIHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSB7XG4gIHtcbiAgICB0cnkge1xuICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIC8vIElmIHlvdSBlbmRlZCB1cCBoZXJlIGJ5IGZvbGxvd2luZyBhbiBleGNlcHRpb24gY2FsbCBzdGFjaywgaGVyZSdzIHdoYXQnc1xuICAvLyBoYXBwZW5lZDogeW91IHN1cHBsaWVkIGFuIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gUmVhY3QgKGFzIGEgcHJvcCwga2V5LFxuICAvLyBET00gYXR0cmlidXRlLCBDU1MgcHJvcGVydHksIHN0cmluZyByZWYsIGV0Yy4pIGFuZCB3aGVuIFJlYWN0IHRyaWVkIHRvXG4gIC8vIGNvZXJjZSBpdCB0byBhIHN0cmluZyB1c2luZyBgJycgKyB2YWx1ZWAsIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAvL1xuICAvLyBUaGUgbW9zdCBjb21tb24gdHlwZXMgdGhhdCB3aWxsIGNhdXNlIHRoaXMgZXhjZXB0aW9uIGFyZSBgU3ltYm9sYCBpbnN0YW5jZXNcbiAgLy8gYW5kIFRlbXBvcmFsIG9iamVjdHMgbGlrZSBgVGVtcG9yYWwuSW5zdGFudGAuIEJ1dCBhbnkgb2JqZWN0IHRoYXQgaGFzIGFcbiAgLy8gYHZhbHVlT2ZgIG9yIGBbU3ltYm9sLnRvUHJpbWl0aXZlXWAgbWV0aG9kIHRoYXQgdGhyb3dzIHdpbGwgYWxzbyBjYXVzZSB0aGlzXG4gIC8vIGV4Y2VwdGlvbi4gKExpYnJhcnkgYXV0aG9ycyBkbyB0aGlzIHRvIHByZXZlbnQgdXNlcnMgZnJvbSB1c2luZyBidWlsdC1pblxuICAvLyBudW1lcmljIG9wZXJhdG9ycyBsaWtlIGArYCBvciBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIGA+PWAgYmVjYXVzZSBjdXN0b21cbiAgLy8gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIHBlcmZvcm0gYWNjdXJhdGUgYXJpdGhtZXRpYyBvciBjb21wYXJpc29uLilcbiAgLy9cbiAgLy8gVG8gZml4IHRoZSBwcm9ibGVtLCBjb2VyY2UgdGhpcyBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIGJlZm9yZVxuICAvLyBwYXNzaW5nIGl0IHRvIFJlYWN0LiBUaGUgbW9zdCByZWxpYWJsZSB3YXkgaXMgdXN1YWxseSBgU3RyaW5nKHZhbHVlKWAuXG4gIC8vXG4gIC8vIFRvIGZpbmQgd2hpY2ggdmFsdWUgaXMgdGhyb3dpbmcsIGNoZWNrIHRoZSBicm93c2VyIG9yIGRlYnVnZ2VyIGNvbnNvbGUuXG4gIC8vIEJlZm9yZSB0aGlzIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCB0aGVyZSBzaG91bGQgYmUgYGNvbnNvbGUuZXJyb3JgIG91dHB1dFxuICAvLyB0aGF0IHNob3dzIHRoZSB0eXBlIChTeW1ib2wsIFRlbXBvcmFsLlBsYWluRGF0ZSwgZXRjLikgdGhhdCBjYXVzZWQgdGhlXG4gIC8vIHByb2JsZW0gYW5kIGhvdyB0aGF0IHR5cGUgd2FzIHVzZWQ6IGtleSwgYXRycmlidXRlLCBpbnB1dCB2YWx1ZSBwcm9wLCBldGMuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgY29uc29sZSBvdXRwdXQgYWxzbyBzaG93cyB0aGUgY29tcG9uZW50IGFuZCBpdHNcbiAgLy8gYW5jZXN0b3IgY29tcG9uZW50cyB3aGVyZSB0aGUgZXhjZXB0aW9uIGhhcHBlbmVkLlxuICAvL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgcmV0dXJuICcnICsgdmFsdWU7XG59XG5mdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRXcmFwcGVkTmFtZShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGRpc3BsYXlOYW1lID0gb3V0ZXJUeXBlLmRpc3BsYXlOYW1lO1xuXG4gIGlmIChkaXNwbGF5TmFtZSkge1xuICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgfVxuXG4gIHZhciBmdW5jdGlvbk5hbWUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgJyc7XG4gIHJldHVybiBmdW5jdGlvbk5hbWUgIT09ICcnID8gd3JhcHBlck5hbWUgKyBcIihcIiArIGZ1bmN0aW9uTmFtZSArIFwiKVwiIDogd3JhcHBlck5hbWU7XG59IC8vIEtlZXAgaW4gc3luYyB3aXRoIHJlYWN0LXJlY29uY2lsZXIvZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlclxuXG5cbmZ1bmN0aW9uIGdldENvbnRleHROYW1lKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgJ0NvbnRleHQnO1xufVxuXG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQyID0gU3ltYm9sLmZvcigncmVhY3QuY2xpZW50LnJlZmVyZW5jZScpOyAvLyBOb3RlIHRoYXQgdGhlIHJlY29uY2lsZXIgcGFja2FnZSBzaG91bGQgZ2VuZXJhbGx5IHByZWZlciB0byB1c2UgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcigpIGluc3RlYWQuXG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIpIHtcbiAgICAgIC8vIFRPRE86IENyZWF0ZSBhIGNvbnZlbnRpb24gZm9yIG5hbWluZyBjbGllbnQgcmVmZXJlbmNlcyB3aXRoIGRlYnVnIGluZm8uXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgIHJldHVybiAnUG9ydGFsJztcblxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xuXG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG5cbiAgICBjYXNlIFJFQUNUX0NBQ0hFX1RZUEU6XG4gICAgICB7XG4gICAgICAgIHJldHVybiAnQ2FjaGUnO1xuICAgICAgfVxuXG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICB2YXIgY29udGV4dCA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShjb250ZXh0KSArICcuQ29uc3VtZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgIHZhciBwcm92aWRlciA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShwcm92aWRlci5fY29udGV4dCkgKyAnLlByb3ZpZGVyJztcblxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0V3JhcHBlZE5hbWUodHlwZSwgdHlwZS5yZW5kZXIsICdGb3J3YXJkUmVmJyk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICB2YXIgb3V0ZXJOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsO1xuXG4gICAgICAgIGlmIChvdXRlck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gb3V0ZXJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdNZW1vJztcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24sIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duLCBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xuXG57XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ3JlZicsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCAmJiBjb25maWcuX19zZWxmICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBjb25maWcuX19zZWxmKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnR5cGUpO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZXJyb3IoJ0NvbXBvbmVudCBcIiVzXCIgY29udGFpbnMgdGhlIHN0cmluZyByZWYgXCIlc1wiLiAnICsgJ1N1cHBvcnQgZm9yIHN0cmluZyByZWZzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiAnICsgJ1RoaXMgY2FzZSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gYW4gYXJyb3cgZnVuY3Rpb24uICcgKyAnV2UgYXNrIHlvdSB0byBtYW51YWxseSBmaXggdGhpcyBjYXNlIGJ5IHVzaW5nIHVzZVJlZigpIG9yIGNyZWF0ZVJlZigpIGluc3RlYWQuICcgKyAnTGVhcm4gbW9yZSBhYm91dCB1c2luZyByZWZzIHNhZmVseSBoZXJlOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmJywgY29tcG9uZW50TmFtZSwgY29uZmlnLnJlZik7XG5cbiAgICAgICAgZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIG5ldyBSZWFjdCBlbGVtZW50LiBUaGlzIG5vIGxvbmdlciBhZGhlcmVzIHRvXG4gKiB0aGUgY2xhc3MgcGF0dGVybiwgc28gZG8gbm90IHVzZSBuZXcgdG8gY2FsbCBpdC4gQWxzbywgaW5zdGFuY2VvZiBjaGVja1xuICogd2lsbCBub3Qgd29yay4gSW5zdGVhZCB0ZXN0ICQkdHlwZW9mIGZpZWxkIGFnYWluc3QgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIHRvIGNoZWNrXG4gKiBpZiBzb21ldGhpbmcgaXMgYSBSZWFjdCBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7Kn0gdHlwZVxuICogQHBhcmFtIHsqfSBwcm9wc1xuICogQHBhcmFtIHsqfSBrZXlcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gcmVmXG4gKiBAcGFyYW0geyp9IG93bmVyXG4gKiBAcGFyYW0geyp9IHNlbGYgQSAqdGVtcG9yYXJ5KiBoZWxwZXIgdG8gZGV0ZWN0IHBsYWNlcyB3aGVyZSBgdGhpc2AgaXNcbiAqIGRpZmZlcmVudCBmcm9tIHRoZSBgb3duZXJgIHdoZW4gUmVhY3QuY3JlYXRlRWxlbWVudCBpcyBjYWxsZWQsIHNvIHRoYXQgd2VcbiAqIGNhbiB3YXJuLiBXZSB3YW50IHRvIGdldCByaWQgb2Ygb3duZXIgYW5kIHJlcGxhY2Ugc3RyaW5nIGByZWZgcyB3aXRoIGFycm93XG4gKiBmdW5jdGlvbnMsIGFuZCBhcyBsb25nIGFzIGB0aGlzYCBhbmQgb3duZXIgYXJlIHRoZSBzYW1lLCB0aGVyZSB3aWxsIGJlIG5vXG4gKiBjaGFuZ2UgaW4gYmVoYXZpb3IuXG4gKiBAcGFyYW0geyp9IHNvdXJjZSBBbiBhbm5vdGF0aW9uIG9iamVjdCAoYWRkZWQgYnkgYSB0cmFuc3BpbGVyIG9yIG90aGVyd2lzZSlcbiAqIGluZGljYXRpbmcgZmlsZW5hbWUsIGxpbmUgbnVtYmVyLCBhbmQvb3Igb3RoZXIgaW5mb3JtYXRpb24uXG4gKiBAaW50ZXJuYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgdmFyIGVsZW1lbnQgPSB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3dzIHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAvLyBCdWlsdC1pbiBwcm9wZXJ0aWVzIHRoYXQgYmVsb25nIG9uIHRoZSBlbGVtZW50XG4gICAgdHlwZTogdHlwZSxcbiAgICBrZXk6IGtleSxcbiAgICByZWY6IHJlZixcbiAgICBwcm9wczogcHJvcHMsXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cbiAgICBfb3duZXI6IG93bmVyXG4gIH07XG5cbiAge1xuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxuICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBXZWFrTWFwIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQgaW5cbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmYWxzZVxuICAgIH0pOyAvLyBzZWxmIGFuZCBzb3VyY2UgYXJlIERFViBvbmx5IHByb3BlcnRpZXMuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNlbGZcbiAgICB9KTsgLy8gVHdvIGVsZW1lbnRzIGNyZWF0ZWQgaW4gdHdvIGRpZmZlcmVudCBwbGFjZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWRcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzb3VyY2VcbiAgICB9KTtcblxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbi8qKlxuICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgUmVhY3RFbGVtZW50IG9mIHRoZSBnaXZlbiB0eXBlLlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNjcmVhdGVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCQxKHR5cGUsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgdmFyIHByb3BOYW1lOyAvLyBSZXNlcnZlZCBuYW1lcyBhcmUgZXh0cmFjdGVkXG5cbiAgdmFyIHByb3BzID0ge307XG4gIHZhciBrZXkgPSBudWxsO1xuICB2YXIgcmVmID0gbnVsbDtcbiAgdmFyIHNlbGYgPSBudWxsO1xuICB2YXIgc291cmNlID0gbnVsbDtcblxuICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICBpZiAoaGFzVmFsaWRSZWYoY29uZmlnKSkge1xuICAgICAgcmVmID0gY29uZmlnLnJlZjtcblxuICAgICAge1xuICAgICAgICB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzVmFsaWRLZXkoY29uZmlnKSkge1xuICAgICAge1xuICAgICAgICBjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpO1xuICAgICAgfVxuXG4gICAgICBrZXkgPSAnJyArIGNvbmZpZy5rZXk7XG4gICAgfVxuXG4gICAgc2VsZiA9IGNvbmZpZy5fX3NlbGYgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjb25maWcuX19zZWxmO1xuICAgIHNvdXJjZSA9IGNvbmZpZy5fX3NvdXJjZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NvdXJjZTsgLy8gUmVtYWluaW5nIHByb3BlcnRpZXMgYXJlIGFkZGVkIHRvIGEgbmV3IHByb3BzIG9iamVjdFxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gQ2hpbGRyZW4gY2FuIGJlIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQsIGFuZCB0aG9zZSBhcmUgdHJhbnNmZXJyZWQgb250b1xuICAvLyB0aGUgbmV3bHkgYWxsb2NhdGVkIHByb3BzIG9iamVjdC5cblxuXG4gIHZhciBjaGlsZHJlbkxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggLSAyO1xuXG4gIGlmIChjaGlsZHJlbkxlbmd0aCA9PT0gMSkge1xuICAgIHByb3BzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIH0gZWxzZSBpZiAoY2hpbGRyZW5MZW5ndGggPiAxKSB7XG4gICAgdmFyIGNoaWxkQXJyYXkgPSBBcnJheShjaGlsZHJlbkxlbmd0aCk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuTGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoaWxkQXJyYXlbaV0gPSBhcmd1bWVudHNbaSArIDJdO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICAgIE9iamVjdC5mcmVlemUoY2hpbGRBcnJheSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9IC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuXG5cbiAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICB2YXIgZGVmYXVsdFByb3BzID0gdHlwZS5kZWZhdWx0UHJvcHM7XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChrZXkgfHwgcmVmKSB7XG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZikge1xuICAgICAgICBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCwgcHJvcHMpO1xufVxuZnVuY3Rpb24gY2xvbmVBbmRSZXBsYWNlS2V5KG9sZEVsZW1lbnQsIG5ld0tleSkge1xuICB2YXIgbmV3RWxlbWVudCA9IFJlYWN0RWxlbWVudChvbGRFbGVtZW50LnR5cGUsIG5ld0tleSwgb2xkRWxlbWVudC5yZWYsIG9sZEVsZW1lbnQuX3NlbGYsIG9sZEVsZW1lbnQuX3NvdXJjZSwgb2xkRWxlbWVudC5fb3duZXIsIG9sZEVsZW1lbnQucHJvcHMpO1xuICByZXR1cm4gbmV3RWxlbWVudDtcbn1cbi8qKlxuICogQ2xvbmUgYW5kIHJldHVybiBhIG5ldyBSZWFjdEVsZW1lbnQgdXNpbmcgZWxlbWVudCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2Nsb25lZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGNsb25lRWxlbWVudCQxKGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgaWYgKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIgKyBlbGVtZW50ICsgXCIuXCIpO1xuICB9XG5cbiAgdmFyIHByb3BOYW1lOyAvLyBPcmlnaW5hbCBwcm9wcyBhcmUgY29waWVkXG5cbiAgdmFyIHByb3BzID0gYXNzaWduKHt9LCBlbGVtZW50LnByb3BzKTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgdmFyIHJlZiA9IGVsZW1lbnQucmVmOyAvLyBTZWxmIGlzIHByZXNlcnZlZCBzaW5jZSB0aGUgb3duZXIgaXMgcHJlc2VydmVkLlxuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjsgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG5cbiAgdmFyIHNvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTsgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuXG4gIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH0gLy8gUmVtYWluaW5nIHByb3BlcnRpZXMgb3ZlcnJpZGUgZXhpc3RpbmcgcHJvcHNcblxuXG4gICAgdmFyIGRlZmF1bHRQcm9wcztcblxuICAgIGlmIChlbGVtZW50LnR5cGUgJiYgZWxlbWVudC50eXBlLmRlZmF1bHRQcm9wcykge1xuICAgICAgZGVmYXVsdFByb3BzID0gZWxlbWVudC50eXBlLmRlZmF1bHRQcm9wcztcbiAgICB9XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBpZiAoY29uZmlnW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkICYmIGRlZmF1bHRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IC8vIENoaWxkcmVuIGNhbiBiZSBtb3JlIHRoYW4gb25lIGFyZ3VtZW50LCBhbmQgdGhvc2UgYXJlIHRyYW5zZmVycmVkIG9udG9cbiAgLy8gdGhlIG5ld2x5IGFsbG9jYXRlZCBwcm9wcyBvYmplY3QuXG5cblxuICB2YXIgY2hpbGRyZW5MZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcblxuICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHtcbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB9IGVsc2UgaWYgKGNoaWxkcmVuTGVuZ3RoID4gMSkge1xuICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGlsZEFycmF5W2ldID0gYXJndW1lbnRzW2kgKyAyXTtcbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH1cblxuICByZXR1cm4gUmVhY3RFbGVtZW50KGVsZW1lbnQudHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgb3duZXIsIHByb3BzKTtcbn1cbi8qKlxuICogVmVyaWZpZXMgdGhlIG9iamVjdCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjaXN2YWxpZGVsZW1lbnRcbiAqIEBwYXJhbSB7P29iamVjdH0gb2JqZWN0XG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIGBvYmplY3RgIGlzIGEgUmVhY3RFbGVtZW50LlxuICogQGZpbmFsXG4gKi9cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5cbnZhciBTRVBBUkFUT1IgPSAnLic7XG52YXIgU1VCU0VQQVJBVE9SID0gJzonO1xuLyoqXG4gKiBFc2NhcGUgYW5kIHdyYXAga2V5IHNvIGl0IGlzIHNhZmUgdG8gdXNlIGFzIGEgcmVhY3RpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdG8gYmUgZXNjYXBlZC5cbiAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVzY2FwZWQga2V5LlxuICovXG5cbmZ1bmN0aW9uIGVzY2FwZShrZXkpIHtcbiAgdmFyIGVzY2FwZVJlZ2V4ID0gL1s9Ol0vZztcbiAgdmFyIGVzY2FwZXJMb29rdXAgPSB7XG4gICAgJz0nOiAnPTAnLFxuICAgICc6JzogJz0yJ1xuICB9O1xuICB2YXIgZXNjYXBlZFN0cmluZyA9IGtleS5yZXBsYWNlKGVzY2FwZVJlZ2V4LCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICByZXR1cm4gZXNjYXBlckxvb2t1cFttYXRjaF07XG4gIH0pO1xuICByZXR1cm4gJyQnICsgZXNjYXBlZFN0cmluZztcbn1cbi8qKlxuICogVE9ETzogVGVzdCB0aGF0IGEgc2luZ2xlIGNoaWxkIGFuZCBhbiBhcnJheSB3aXRoIG9uZSBpdGVtIGhhdmUgdGhlIHNhbWUga2V5XG4gKiBwYXR0ZXJuLlxuICovXG5cblxudmFyIGRpZFdhcm5BYm91dE1hcHMgPSBmYWxzZTtcbnZhciB1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCA9IC9cXC8rL2c7XG5cbmZ1bmN0aW9uIGVzY2FwZVVzZXJQcm92aWRlZEtleSh0ZXh0KSB7XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsICckJi8nKTtcbn1cbi8qKlxuICogR2VuZXJhdGUgYSBrZXkgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyBhIGVsZW1lbnQgd2l0aGluIGEgc2V0LlxuICpcbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBBIGVsZW1lbnQgdGhhdCBjb3VsZCBjb250YWluIGEgbWFudWFsIGtleS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCB0aGF0IGlzIHVzZWQgaWYgYSBtYW51YWwga2V5IGlzIG5vdCBwcm92aWRlZC5cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldEVsZW1lbnRLZXkoZWxlbWVudCwgaW5kZXgpIHtcbiAgLy8gRG8gc29tZSB0eXBlY2hlY2tpbmcgaGVyZSBzaW5jZSB3ZSBjYWxsIHRoaXMgYmxpbmRseS4gV2Ugd2FudCB0byBlbnN1cmVcbiAgLy8gdGhhdCB3ZSBkb24ndCBibG9jayBwb3RlbnRpYWwgZnV0dXJlIEVTIEFQSXMuXG4gIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ29iamVjdCcgJiYgZWxlbWVudCAhPT0gbnVsbCAmJiBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgLy8gRXhwbGljaXQga2V5XG4gICAge1xuICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihlbGVtZW50LmtleSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVzY2FwZSgnJyArIGVsZW1lbnQua2V5KTtcbiAgfSAvLyBJbXBsaWNpdCBrZXkgZGV0ZXJtaW5lZCBieSB0aGUgaW5kZXggaW4gdGhlIHNldFxuXG5cbiAgcmV0dXJuIGluZGV4LnRvU3RyaW5nKDM2KTtcbn1cblxuZnVuY3Rpb24gbWFwSW50b0FycmF5KGNoaWxkcmVuLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgbmFtZVNvRmFyLCBjYWxsYmFjaykge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBjaGlsZHJlbjtcblxuICBpZiAodHlwZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gQWxsIG9mIHRoZSBhYm92ZSBhcmUgcGVyY2VpdmVkIGFzIG51bGwuXG4gICAgY2hpbGRyZW4gPSBudWxsO1xuICB9XG5cbiAgdmFyIGludm9rZUNhbGxiYWNrID0gZmFsc2U7XG5cbiAgaWYgKGNoaWxkcmVuID09PSBudWxsKSB7XG4gICAgaW52b2tlQ2FsbGJhY2sgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIHN3aXRjaCAoY2hpbGRyZW4uJCR0eXBlb2YpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2sgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBpZiAoaW52b2tlQ2FsbGJhY2spIHtcbiAgICB2YXIgX2NoaWxkID0gY2hpbGRyZW47XG4gICAgdmFyIG1hcHBlZENoaWxkID0gY2FsbGJhY2soX2NoaWxkKTsgLy8gSWYgaXQncyB0aGUgb25seSBjaGlsZCwgdHJlYXQgdGhlIG5hbWUgYXMgaWYgaXQgd2FzIHdyYXBwZWQgaW4gYW4gYXJyYXlcbiAgICAvLyBzbyB0aGF0IGl0J3MgY29uc2lzdGVudCBpZiB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGdyb3dzOlxuXG4gICAgdmFyIGNoaWxkS2V5ID0gbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiArIGdldEVsZW1lbnRLZXkoX2NoaWxkLCAwKSA6IG5hbWVTb0ZhcjtcblxuICAgIGlmIChpc0FycmF5KG1hcHBlZENoaWxkKSkge1xuICAgICAgdmFyIGVzY2FwZWRDaGlsZEtleSA9ICcnO1xuXG4gICAgICBpZiAoY2hpbGRLZXkgIT0gbnVsbCkge1xuICAgICAgICBlc2NhcGVkQ2hpbGRLZXkgPSBlc2NhcGVVc2VyUHJvdmlkZWRLZXkoY2hpbGRLZXkpICsgJy8nO1xuICAgICAgfVxuXG4gICAgICBtYXBJbnRvQXJyYXkobWFwcGVkQ2hpbGQsIGFycmF5LCBlc2NhcGVkQ2hpbGRLZXksICcnLCBmdW5jdGlvbiAoYykge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAobWFwcGVkQ2hpbGQgIT0gbnVsbCkge1xuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KG1hcHBlZENoaWxkKSkge1xuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhlIGBpZmAgc3RhdGVtZW50IGhlcmUgcHJldmVudHMgYXV0by1kaXNhYmxpbmcgb2YgdGhlIHNhZmVcbiAgICAgICAgICAvLyBjb2VyY2lvbiBFU0xpbnQgcnVsZSwgc28gd2UgbXVzdCBtYW51YWxseSBkaXNhYmxlIGl0IGJlbG93LlxuICAgICAgICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgICBpZiAobWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkpIHtcbiAgICAgICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWFwcGVkQ2hpbGQua2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBtYXBwZWRDaGlsZCA9IGNsb25lQW5kUmVwbGFjZUtleShtYXBwZWRDaGlsZCwgLy8gS2VlcCBib3RoIHRoZSAobWFwcGVkKSBhbmQgb2xkIGtleXMgaWYgdGhleSBkaWZmZXIsIGp1c3QgYXNcbiAgICAgICAgLy8gdHJhdmVyc2VBbGxDaGlsZHJlbiB1c2VkIHRvIGRvIGZvciBvYmplY3RzIGFzIGNoaWxkcmVuXG4gICAgICAgIGVzY2FwZWRQcmVmaXggKyAoIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgbWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkgPyBlc2NhcGVVc2VyUHJvdmlkZWRLZXkoIC8vICRGbG93Rml4TWVbdW5zYWZlLWFkZGl0aW9uXVxuICAgICAgICAnJyArIG1hcHBlZENoaWxkLmtleSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICAgICkgKyAnLycgOiAnJykgKyBjaGlsZEtleSk7XG4gICAgICB9XG5cbiAgICAgIGFycmF5LnB1c2gobWFwcGVkQ2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuXG4gIHZhciBuZXh0TmFtZVByZWZpeCA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgOiBuYW1lU29GYXIgKyBTVUJTRVBBUkFUT1I7XG5cbiAgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgaXRlcmFibGVDaGlsZHJlbiA9IGNoaWxkcmVuO1xuXG4gICAgICB7XG4gICAgICAgIC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuICAgICAgICBpZiAoaXRlcmF0b3JGbiA9PT0gaXRlcmFibGVDaGlsZHJlbi5lbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgICB3YXJuKCdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoaXRlcmFibGVDaGlsZHJlbik7XG4gICAgICB2YXIgc3RlcDtcbiAgICAgIHZhciBpaSA9IDA7IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV0gYGl0ZXJhdG9yRm5gIG1pZ2h0IHJldHVybiBudWxsIGFjY29yZGluZyB0byB0eXBpbmcuXG5cbiAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0RWxlbWVudEtleShjaGlsZCwgaWkrKyk7XG4gICAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgICAgdmFyIGNoaWxkcmVuU3RyaW5nID0gU3RyaW5nKGNoaWxkcmVuKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nKSArIFwiKS4gXCIgKyAnSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSAnICsgJ2luc3RlYWQuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN1YnRyZWVDb3VudDtcbn1cbi8qKlxuICogTWFwcyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVubWFwXG4gKlxuICogVGhlIHByb3ZpZGVkIG1hcEZ1bmN0aW9uKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZ1bmMgVGhlIG1hcCBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBDb250ZXh0IGZvciBtYXBGdW5jdGlvbi5cbiAqIEByZXR1cm4ge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIG9yZGVyZWQgbWFwIG9mIHJlc3VsdHMuXG4gKi9cblxuXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIC8vICRGbG93Rml4TWUgbGltaXRhdGlvbiByZWZpbmluZyBhYnN0cmFjdCB0eXBlcyBpbiBGbG93XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG5cbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgY291bnQgPSAwO1xuICBtYXBJbnRvQXJyYXkoY2hpbGRyZW4sIHJlc3VsdCwgJycsICcnLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICByZXR1cm4gZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBjb3VudCsrKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4vKipcbiAqIENvdW50IHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhc1xuICogYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5jb3VudFxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgbnVtYmVyIG9mIGNoaWxkcmVuLlxuICovXG5cblxuZnVuY3Rpb24gY291bnRDaGlsZHJlbihjaGlsZHJlbikge1xuICB2YXIgbiA9IDA7XG4gIG1hcENoaWxkcmVuKGNoaWxkcmVuLCBmdW5jdGlvbiAoKSB7XG4gICAgbisrOyAvLyBEb24ndCByZXR1cm4gYW55dGhpbmdcbiAgfSk7XG4gIHJldHVybiBuO1xufVxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5mb3JlYWNoXG4gKlxuICogVGhlIHByb3ZpZGVkIGZvckVhY2hGdW5jKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZvckVhY2hGdW5jXG4gKiBAcGFyYW0geyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgZm9yIGZvckVhY2hDb250ZXh0LlxuICovXG5cblxuZnVuY3Rpb24gZm9yRWFjaENoaWxkcmVuKGNoaWxkcmVuLCBmb3JFYWNoRnVuYywgZm9yRWFjaENvbnRleHQpIHtcbiAgbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIC8vICRGbG93Rml4TWVbbWlzc2luZy10aGlzLWFubm90XVxuICBmdW5jdGlvbiAoKSB7XG4gICAgZm9yRWFjaEZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nLlxuICB9LCBmb3JFYWNoQ29udGV4dCk7XG59XG4vKipcbiAqIEZsYXR0ZW4gYSBjaGlsZHJlbiBvYmplY3QgKHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYCkgYW5kXG4gKiByZXR1cm4gYW4gYXJyYXkgd2l0aCBhcHByb3ByaWF0ZWx5IHJlLWtleWVkIGNoaWxkcmVuLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbnRvYXJyYXlcbiAqL1xuXG5cbmZ1bmN0aW9uIHRvQXJyYXkoY2hpbGRyZW4pIHtcbiAgcmV0dXJuIG1hcENoaWxkcmVuKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICByZXR1cm4gY2hpbGQ7XG4gIH0pIHx8IFtdO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBjaGlsZCBpbiBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4gYW5kIHZlcmlmaWVzIHRoYXQgdGhlcmVcbiAqIGlzIG9ubHkgb25lIGNoaWxkIGluIHRoZSBjb2xsZWN0aW9uLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm9ubHlcbiAqXG4gKiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCBhIHNpbmdsZSBjaGlsZCBnZXRzXG4gKiBwYXNzZWQgd2l0aG91dCBhIHdyYXBwZXIsIGJ1dCB0aGUgcHVycG9zZSBvZiB0aGlzIGhlbHBlciBmdW5jdGlvbiBpcyB0b1xuICogYWJzdHJhY3QgYXdheSB0aGUgcGFydGljdWxhciBzdHJ1Y3R1cmUgb2YgY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHs/b2JqZWN0fSBjaGlsZHJlbiBDaGlsZCBjb2xsZWN0aW9uIHN0cnVjdHVyZS5cbiAqIEByZXR1cm4ge1JlYWN0RWxlbWVudH0gVGhlIGZpcnN0IGFuZCBvbmx5IGBSZWFjdEVsZW1lbnRgIGNvbnRhaW5lZCBpbiB0aGVcbiAqIHN0cnVjdHVyZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIG9ubHlDaGlsZChjaGlsZHJlbikge1xuICBpZiAoIWlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuJyk7XG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQoZGVmYXVsdFZhbHVlKSB7XG4gIC8vIFRPRE86IFNlY29uZCBhcmd1bWVudCB1c2VkIHRvIGJlIGFuIG9wdGlvbmFsIGBjYWxjdWxhdGVDaGFuZ2VkQml0c2BcbiAgLy8gZnVuY3Rpb24uIFdhcm4gdG8gcmVzZXJ2ZSBmb3IgZnV0dXJlIHVzZT9cbiAgdmFyIGNvbnRleHQgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlRFWFRfVFlQRSxcbiAgICAvLyBBcyBhIHdvcmthcm91bmQgdG8gc3VwcG9ydCBtdWx0aXBsZSBjb25jdXJyZW50IHJlbmRlcmVycywgd2UgY2F0ZWdvcml6ZVxuICAgIC8vIHNvbWUgcmVuZGVyZXJzIGFzIHByaW1hcnkgYW5kIG90aGVycyBhcyBzZWNvbmRhcnkuIFdlIG9ubHkgZXhwZWN0XG4gICAgLy8gdGhlcmUgdG8gYmUgdHdvIGNvbmN1cnJlbnQgcmVuZGVyZXJzIGF0IG1vc3Q6IFJlYWN0IE5hdGl2ZSAocHJpbWFyeSkgYW5kXG4gICAgLy8gRmFicmljIChzZWNvbmRhcnkpOyBSZWFjdCBET00gKHByaW1hcnkpIGFuZCBSZWFjdCBBUlQgKHNlY29uZGFyeSkuXG4gICAgLy8gU2Vjb25kYXJ5IHJlbmRlcmVycyBzdG9yZSB0aGVpciBjb250ZXh0IHZhbHVlcyBvbiBzZXBhcmF0ZSBmaWVsZHMuXG4gICAgX2N1cnJlbnRWYWx1ZTogZGVmYXVsdFZhbHVlLFxuICAgIF9jdXJyZW50VmFsdWUyOiBkZWZhdWx0VmFsdWUsXG4gICAgLy8gVXNlZCB0byB0cmFjayBob3cgbWFueSBjb25jdXJyZW50IHJlbmRlcmVycyB0aGlzIGNvbnRleHQgY3VycmVudGx5XG4gICAgLy8gc3VwcG9ydHMgd2l0aGluIGluIGEgc2luZ2xlIHJlbmRlcmVyLiBTdWNoIGFzIHBhcmFsbGVsIHNlcnZlciByZW5kZXJpbmcuXG4gICAgX3RocmVhZENvdW50OiAwLFxuICAgIC8vIFRoZXNlIGFyZSBjaXJjdWxhclxuICAgIFByb3ZpZGVyOiBudWxsLFxuICAgIENvbnN1bWVyOiBudWxsLFxuICAgIC8vIEFkZCB0aGVzZSB0byB1c2Ugc2FtZSBoaWRkZW4gY2xhc3MgaW4gVk0gYXMgU2VydmVyQ29udGV4dFxuICAgIF9kZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgX2dsb2JhbE5hbWU6IG51bGxcbiAgfTtcbiAgY29udGV4dC5Qcm92aWRlciA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfUFJPVklERVJfVFlQRSxcbiAgICBfY29udGV4dDogY29udGV4dFxuICB9O1xuICB2YXIgaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMgPSBmYWxzZTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0VXNpbmdDb25zdW1lclByb3ZpZGVyID0gZmFsc2U7XG4gIHZhciBoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lciA9IGZhbHNlO1xuXG4gIHtcbiAgICAvLyBBIHNlcGFyYXRlIG9iamVjdCwgYnV0IHByb3hpZXMgYmFjayB0byB0aGUgb3JpZ2luYWwgY29udGV4dCBvYmplY3QgZm9yXG4gICAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIEl0IGhhcyBhIGRpZmZlcmVudCAkJHR5cGVvZiwgc28gd2UgY2FuIHByb3Blcmx5XG4gICAgLy8gd2FybiBmb3IgdGhlIGluY29ycmVjdCB1c2FnZSBvZiBDb250ZXh0IGFzIGEgQ29uc3VtZXIuXG4gICAgdmFyIENvbnN1bWVyID0ge1xuICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlRFWFRfVFlQRSxcbiAgICAgIF9jb250ZXh0OiBjb250ZXh0XG4gICAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddOiBGbG93IGNvbXBsYWlucyBhYm91dCBub3Qgc2V0dGluZyBhIHZhbHVlLCB3aGljaCBpcyBpbnRlbnRpb25hbCBoZXJlXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhDb25zdW1lciwge1xuICAgICAgUHJvdmlkZXI6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXJQcm92aWRlcikge1xuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIgPSB0cnVlO1xuXG4gICAgICAgICAgICBlcnJvcignUmVuZGVyaW5nIDxDb250ZXh0LkNvbnN1bWVyLlByb3ZpZGVyPiBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gJyArICdhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gcmVuZGVyIDxDb250ZXh0LlByb3ZpZGVyPiBpbnN0ZWFkPycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250ZXh0LlByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfUHJvdmlkZXIpIHtcbiAgICAgICAgICBjb250ZXh0LlByb3ZpZGVyID0gX1Byb3ZpZGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2N1cnJlbnRWYWx1ZToge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fY3VycmVudFZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gX2N1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jdXJyZW50VmFsdWUyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0Ll9jdXJyZW50VmFsdWUyO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfY3VycmVudFZhbHVlMikge1xuICAgICAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTIgPSBfY3VycmVudFZhbHVlMjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF90aHJlYWRDb3VudDoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fdGhyZWFkQ291bnQ7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF90aHJlYWRDb3VudCkge1xuICAgICAgICAgIGNvbnRleHQuX3RocmVhZENvdW50ID0gX3RocmVhZENvdW50O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQ29uc3VtZXI6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycykge1xuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMgPSB0cnVlO1xuXG4gICAgICAgICAgICBlcnJvcignUmVuZGVyaW5nIDxDb250ZXh0LkNvbnN1bWVyLkNvbnN1bWVyPiBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gJyArICdhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gcmVuZGVyIDxDb250ZXh0LkNvbnN1bWVyPiBpbnN0ZWFkPycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250ZXh0LkNvbnN1bWVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGlzcGxheU5hbWU6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuZGlzcGxheU5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKGRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lcikge1xuICAgICAgICAgICAgd2FybignU2V0dGluZyBgZGlzcGxheU5hbWVgIG9uIENvbnRleHQuQ29uc3VtZXIgaGFzIG5vIGVmZmVjdC4gJyArIFwiWW91IHNob3VsZCBzZXQgaXQgZGlyZWN0bHkgb24gdGhlIGNvbnRleHQgd2l0aCBDb250ZXh0LmRpc3BsYXlOYW1lID0gJyVzJy5cIiwgZGlzcGxheU5hbWUpO1xuXG4gICAgICAgICAgICBoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lciA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXTogRmxvdyBjb21wbGFpbnMgYWJvdXQgbWlzc2luZyBwcm9wZXJ0aWVzIGJlY2F1c2UgaXQgZG9lc24ndCB1bmRlcnN0YW5kIGRlZmluZVByb3BlcnR5XG5cbiAgICBjb250ZXh0LkNvbnN1bWVyID0gQ29uc3VtZXI7XG4gIH1cblxuICB7XG4gICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyID0gbnVsbDtcbiAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIyID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0O1xufVxuXG52YXIgVW5pbml0aWFsaXplZCA9IC0xO1xudmFyIFBlbmRpbmcgPSAwO1xudmFyIFJlc29sdmVkID0gMTtcbnZhciBSZWplY3RlZCA9IDI7XG5cbmZ1bmN0aW9uIGxhenlJbml0aWFsaXplcihwYXlsb2FkKSB7XG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICB2YXIgY3RvciA9IHBheWxvYWQuX3Jlc3VsdDtcbiAgICB2YXIgdGhlbmFibGUgPSBjdG9yKCk7IC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgLy8gVGhpcyBtaWdodCB0aHJvdyBlaXRoZXIgYmVjYXVzZSBpdCdzIG1pc3Npbmcgb3IgdGhyb3dzLiBJZiBzbywgd2UgdHJlYXQgaXRcbiAgICAvLyBhcyBzdGlsbCB1bmluaXRpYWxpemVkIGFuZCB0cnkgYWdhaW4gbmV4dCB0aW1lLiBXaGljaCBpcyB0aGUgc2FtZSBhcyB3aGF0XG4gICAgLy8gaGFwcGVucyBpZiB0aGUgY3RvciBvciBhbnkgd3JhcHBlcnMgcHJvY2Vzc2luZyB0aGUgY3RvciB0aHJvd3MuIFRoaXMgbWlnaHRcbiAgICAvLyBlbmQgdXAgZml4aW5nIGl0IGlmIHRoZSByZXNvbHV0aW9uIHdhcyBhIGNvbmN1cnJlbmN5IGJ1Zy5cblxuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlc29sdmVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVzb2x2ZWQuX3N0YXR1cyA9IFJlc29sdmVkO1xuICAgICAgICByZXNvbHZlZC5fcmVzdWx0ID0gbW9kdWxlT2JqZWN0O1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlamVjdGVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVqZWN0ZWQuX3N0YXR1cyA9IFJlamVjdGVkO1xuICAgICAgICByZWplY3RlZC5fcmVzdWx0ID0gZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBVbmluaXRpYWxpemVkKSB7XG4gICAgICAvLyBJbiBjYXNlLCB3ZSdyZSBzdGlsbCB1bmluaXRpYWxpemVkLCB0aGVuIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSB0aGVuYWJsZVxuICAgICAgLy8gdG8gcmVzb2x2ZS4gU2V0IGl0IGFzIHBlbmRpbmcgaW4gdGhlIG1lYW50aW1lLlxuICAgICAgdmFyIHBlbmRpbmcgPSBwYXlsb2FkO1xuICAgICAgcGVuZGluZy5fc3RhdHVzID0gUGVuZGluZztcbiAgICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFJlc29sdmVkKSB7XG4gICAgdmFyIG1vZHVsZU9iamVjdCA9IHBheWxvYWQuX3Jlc3VsdDtcblxuICAgIHtcbiAgICAgIGlmIChtb2R1bGVPYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wJyArICdvcnQoKSBjYWxsLiAnICsgJ0luc3RlYWQgcmVjZWl2ZWQ6ICVzXFxuXFxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxcbiAgJyArIC8vIEJyZWFrIHVwIGltcG9ydHMgdG8gYXZvaWQgYWNjaWRlbnRhbGx5IHBhcnNpbmcgdGhlbSBhcyBkZXBlbmRlbmNpZXMuXG4gICAgICAgICdjb25zdCBNeUNvbXBvbmVudCA9IGxhenkoKCkgPT4gaW1wJyArIFwib3J0KCcuL015Q29tcG9uZW50JykpXFxuXFxuXCIgKyAnRGlkIHlvdSBhY2NpZGVudGFsbHkgcHV0IGN1cmx5IGJyYWNlcyBhcm91bmQgdGhlIGltcG9ydD8nLCBtb2R1bGVPYmplY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICghKCdkZWZhdWx0JyBpbiBtb2R1bGVPYmplY3QpKSB7XG4gICAgICAgIGVycm9yKCdsYXp5OiBFeHBlY3RlZCB0aGUgcmVzdWx0IG9mIGEgZHluYW1pYyBpbXAnICsgJ29ydCgpIGNhbGwuICcgKyAnSW5zdGVhZCByZWNlaXZlZDogJXNcXG5cXG5Zb3VyIGNvZGUgc2hvdWxkIGxvb2sgbGlrZTogXFxuICAnICsgLy8gQnJlYWsgdXAgaW1wb3J0cyB0byBhdm9pZCBhY2NpZGVudGFsbHkgcGFyc2luZyB0aGVtIGFzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlT2JqZWN0LmRlZmF1bHQ7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgcGF5bG9hZC5fcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGxhenkoY3Rvcikge1xuICB2YXIgcGF5bG9hZCA9IHtcbiAgICAvLyBXZSB1c2UgdGhlc2UgZmllbGRzIHRvIHN0b3JlIHRoZSByZXN1bHQuXG4gICAgX3N0YXR1czogVW5pbml0aWFsaXplZCxcbiAgICBfcmVzdWx0OiBjdG9yXG4gIH07XG4gIHZhciBsYXp5VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTEFaWV9UWVBFLFxuICAgIF9wYXlsb2FkOiBwYXlsb2FkLFxuICAgIF9pbml0OiBsYXp5SW5pdGlhbGl6ZXJcbiAgfTtcblxuICB7XG4gICAgLy8gSW4gcHJvZHVjdGlvbiwgdGhpcyB3b3VsZCBqdXN0IHNldCBpdCBvbiB0aGUgb2JqZWN0LlxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG4gICAgdmFyIHByb3BUeXBlczsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsYXp5VHlwZSwge1xuICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRQcm9wcztcbiAgICAgICAgfSxcbiAgICAgICAgLy8gJEZsb3dGaXhNZVttaXNzaW5nLWxvY2FsLWFubm90XVxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChuZXdEZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QubGF6eSguLi4pOiBJdCBpcyBub3Qgc3VwcG9ydGVkIHRvIGFzc2lnbiBgZGVmYXVsdFByb3BzYCB0byAnICsgJ2EgbGF6eSBjb21wb25lbnQgaW1wb3J0LiBFaXRoZXIgc3BlY2lmeSB0aGVtIHdoZXJlIHRoZSBjb21wb25lbnQgJyArICdpcyBkZWZpbmVkLCBvciBjcmVhdGUgYSB3cmFwcGluZyBjb21wb25lbnQgYXJvdW5kIGl0LicpO1xuXG4gICAgICAgICAgZGVmYXVsdFByb3BzID0gbmV3RGVmYXVsdFByb3BzOyAvLyBNYXRjaCBwcm9kdWN0aW9uIGJlaGF2aW9yIG1vcmUgY2xvc2VseTpcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5VHlwZSwgJ2RlZmF1bHRQcm9wcycsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByb3BUeXBlczoge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBwcm9wVHlwZXM7XG4gICAgICAgIH0sXG4gICAgICAgIC8vICRGbG93Rml4TWVbbWlzc2luZy1sb2NhbC1hbm5vdF1cbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3UHJvcFR5cGVzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYHByb3BUeXBlc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIHByb3BUeXBlcyA9IG5ld1Byb3BUeXBlczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobGF6eVR5cGUsICdwcm9wVHlwZXMnLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBsYXp5VHlwZTtcbn1cblxuZnVuY3Rpb24gZm9yd2FyZFJlZihyZW5kZXIpIHtcbiAge1xuICAgIGlmIChyZW5kZXIgIT0gbnVsbCAmJiByZW5kZXIuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkge1xuICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVxdWlyZXMgYSByZW5kZXIgZnVuY3Rpb24gYnV0IHJlY2VpdmVkIGEgYG1lbW9gICcgKyAnY29tcG9uZW50LiBJbnN0ZWFkIG9mIGZvcndhcmRSZWYobWVtbyguLi4pKSwgdXNlICcgKyAnbWVtbyhmb3J3YXJkUmVmKC4uLikpLicpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlbmRlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVxdWlyZXMgYSByZW5kZXIgZnVuY3Rpb24gYnV0IHdhcyBnaXZlbiAlcy4nLCByZW5kZXIgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgcmVuZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlbmRlci5sZW5ndGggIT09IDAgJiYgcmVuZGVyLmxlbmd0aCAhPT0gMikge1xuICAgICAgICBlcnJvcignZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGFjY2VwdCBleGFjdGx5IHR3byBwYXJhbWV0ZXJzOiBwcm9wcyBhbmQgcmVmLiAlcycsIHJlbmRlci5sZW5ndGggPT09IDEgPyAnRGlkIHlvdSBmb3JnZXQgdG8gdXNlIHRoZSByZWYgcGFyYW1ldGVyPycgOiAnQW55IGFkZGl0aW9uYWwgcGFyYW1ldGVyIHdpbGwgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZW5kZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHJlbmRlci5kZWZhdWx0UHJvcHMgIT0gbnVsbCB8fCByZW5kZXIucHJvcFR5cGVzICE9IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBkbyBub3Qgc3VwcG9ydCBwcm9wVHlwZXMgb3IgZGVmYXVsdFByb3BzLiAnICsgJ0RpZCB5b3UgYWNjaWRlbnRhbGx5IHBhc3MgYSBSZWFjdCBjb21wb25lbnQ/Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGVsZW1lbnRUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLFxuICAgIHJlbmRlcjogcmVuZGVyXG4gIH07XG5cbiAge1xuICAgIHZhciBvd25OYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgJ2Rpc3BsYXlOYW1lJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG93bk5hbWU7XG4gICAgICB9LFxuICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBvd25OYW1lID0gbmFtZTsgLy8gVGhlIGlubmVyIGNvbXBvbmVudCBzaG91bGRuJ3QgaW5oZXJpdCB0aGlzIGRpc3BsYXkgbmFtZSBpbiBtb3N0IGNhc2VzLFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBjb21wb25lbnQgbWF5IGJlIHVzZWQgZWxzZXdoZXJlLlxuICAgICAgICAvLyBCdXQgaXQncyBuaWNlIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zIHRvIGluaGVyaXQgdGhlIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgb3VyIGNvbXBvbmVudC1zdGFjayBnZW5lcmF0aW9uIGxvZ2ljIHdpbGwgZGlzcGxheSB0aGVpciBmcmFtZXMuXG4gICAgICAgIC8vIEFuIGFub255bW91cyBmdW5jdGlvbiBnZW5lcmFsbHkgc3VnZ2VzdHMgYSBwYXR0ZXJuIGxpa2U6XG4gICAgICAgIC8vICAgUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4gey4uLn0pO1xuICAgICAgICAvLyBUaGlzIGtpbmQgb2YgaW5uZXIgZnVuY3Rpb24gaXMgbm90IHVzZWQgZWxzZXdoZXJlIHNvIHRoZSBzaWRlIGVmZmVjdCBpcyBva2F5LlxuXG4gICAgICAgIGlmICghcmVuZGVyLm5hbWUgJiYgIXJlbmRlci5kaXNwbGF5TmFtZSkge1xuICAgICAgICAgIHJlbmRlci5kaXNwbGF5TmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50VHlwZTtcbn1cblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBOb3RlOiB0eXBlb2YgbWlnaHQgYmUgb3RoZXIgdGhhbiAnc3ltYm9sJyBvciAnbnVtYmVyJyAoZS5nLiBpZiBpdCdzIGEgcG9seWZpbGwpLlxuXG5cbiAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCBlbmFibGVEZWJ1Z1RyYWNpbmcgIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgZW5hYmxlTGVnYWN5SGlkZGVuICB8fCB0eXBlID09PSBSRUFDVF9PRkZTQ1JFRU5fVFlQRSB8fCBlbmFibGVTY29wZUFQSSAgfHwgZW5hYmxlQ2FjaGVFbGVtZW50ICB8fCBlbmFibGVUcmFuc2l0aW9uVHJhY2luZyApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gVGhpcyBuZWVkcyB0byBpbmNsdWRlIGFsbCBwb3NzaWJsZSBtb2R1bGUgcmVmZXJlbmNlIG9iamVjdFxuICAgIC8vIHR5cGVzIHN1cHBvcnRlZCBieSBhbnkgRmxpZ2h0IGNvbmZpZ3VyYXRpb24gYW55d2hlcmUgc2luY2VcbiAgICAvLyB3ZSBkb24ndCBrbm93IHdoaWNoIEZsaWdodCBidWlsZCB0aGlzIHdpbGwgZW5kIHVwIGJlaW5nIHVzZWRcbiAgICAvLyB3aXRoLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSB8fCB0eXBlLmdldE1vZHVsZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbWVtbyh0eXBlLCBjb21wYXJlKSB7XG4gIHtcbiAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSkge1xuICAgICAgZXJyb3IoJ21lbW86IFRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgY29tcG9uZW50LiBJbnN0ZWFkICcgKyAncmVjZWl2ZWQ6ICVzJywgdHlwZSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiB0eXBlKTtcbiAgICB9XG4gIH1cblxuICB2YXIgZWxlbWVudFR5cGUgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX01FTU9fVFlQRSxcbiAgICB0eXBlOiB0eXBlLFxuICAgIGNvbXBhcmU6IGNvbXBhcmUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjb21wYXJlXG4gIH07XG5cbiAge1xuICAgIHZhciBvd25OYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgJ2Rpc3BsYXlOYW1lJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG93bk5hbWU7XG4gICAgICB9LFxuICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBvd25OYW1lID0gbmFtZTsgLy8gVGhlIGlubmVyIGNvbXBvbmVudCBzaG91bGRuJ3QgaW5oZXJpdCB0aGlzIGRpc3BsYXkgbmFtZSBpbiBtb3N0IGNhc2VzLFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBjb21wb25lbnQgbWF5IGJlIHVzZWQgZWxzZXdoZXJlLlxuICAgICAgICAvLyBCdXQgaXQncyBuaWNlIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zIHRvIGluaGVyaXQgdGhlIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgb3VyIGNvbXBvbmVudC1zdGFjayBnZW5lcmF0aW9uIGxvZ2ljIHdpbGwgZGlzcGxheSB0aGVpciBmcmFtZXMuXG4gICAgICAgIC8vIEFuIGFub255bW91cyBmdW5jdGlvbiBnZW5lcmFsbHkgc3VnZ2VzdHMgYSBwYXR0ZXJuIGxpa2U6XG4gICAgICAgIC8vICAgUmVhY3QubWVtbygocHJvcHMpID0+IHsuLi59KTtcbiAgICAgICAgLy8gVGhpcyBraW5kIG9mIGlubmVyIGZ1bmN0aW9uIGlzIG5vdCB1c2VkIGVsc2V3aGVyZSBzbyB0aGUgc2lkZSBlZmZlY3QgaXMgb2theS5cblxuICAgICAgICBpZiAoIXR5cGUubmFtZSAmJiAhdHlwZS5kaXNwbGF5TmFtZSkge1xuICAgICAgICAgIHR5cGUuZGlzcGxheU5hbWUgPSBuYW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudFR5cGU7XG59XG5cbnZhciBVTlRFUk1JTkFURUQgPSAwO1xudmFyIFRFUk1JTkFURUQgPSAxO1xudmFyIEVSUk9SRUQgPSAyO1xuXG5mdW5jdGlvbiBjcmVhdGVDYWNoZVJvb3QoKSB7XG4gIHJldHVybiBuZXcgV2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDYWNoZU5vZGUoKSB7XG4gIHJldHVybiB7XG4gICAgczogVU5URVJNSU5BVEVELFxuICAgIC8vIHN0YXR1cywgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBjYWNoZWQgY29tcHV0YXRpb24gcmV0dXJuZWQgYSB2YWx1ZSBvciB0aHJldyBhbiBlcnJvclxuICAgIHY6IHVuZGVmaW5lZCxcbiAgICAvLyB2YWx1ZSwgZWl0aGVyIHRoZSBjYWNoZWQgcmVzdWx0IG9yIGFuIGVycm9yLCBkZXBlbmRpbmcgb24gc1xuICAgIG86IG51bGwsXG4gICAgLy8gb2JqZWN0IGNhY2hlLCBhIFdlYWtNYXAgd2hlcmUgbm9uLXByaW1pdGl2ZSBhcmd1bWVudHMgYXJlIHN0b3JlZFxuICAgIHA6IG51bGwgLy8gcHJpbWl0aXZlIGNhY2hlLCBhIHJlZ3VsYXIgTWFwIHdoZXJlIHByaW1pdGl2ZSBhcmd1bWVudHMgYXJlIHN0b3JlZC5cblxuICB9O1xufVxuXG5mdW5jdGlvbiBjYWNoZShmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50Q2FjaGUuY3VycmVudDtcblxuICAgIGlmICghZGlzcGF0Y2hlcikge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZGlzcGF0Y2hlciwgdGhlbiB3ZSB0cmVhdCB0aGlzIGFzIG5vdCBiZWluZyBjYWNoZWQuXG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogV2UgZG9uJ3Qgd2FudCB0byB1c2UgcmVzdCBhcmd1bWVudHMgc2luY2Ugd2UgdHJhbnNwaWxlIHRoZSBjb2RlLlxuICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgdmFyIGZuTWFwID0gZGlzcGF0Y2hlci5nZXRDYWNoZUZvclR5cGUoY3JlYXRlQ2FjaGVSb290KTtcbiAgICB2YXIgZm5Ob2RlID0gZm5NYXAuZ2V0KGZuKTtcbiAgICB2YXIgY2FjaGVOb2RlO1xuXG4gICAgaWYgKGZuTm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgIGZuTWFwLnNldChmbiwgY2FjaGVOb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FjaGVOb2RlID0gZm5Ob2RlO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgdmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgaWYgKHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsKSB7XG4gICAgICAgIC8vIE9iamVjdHMgZ28gaW50byBhIFdlYWtNYXBcbiAgICAgICAgdmFyIG9iamVjdENhY2hlID0gY2FjaGVOb2RlLm87XG5cbiAgICAgICAgaWYgKG9iamVjdENhY2hlID09PSBudWxsKSB7XG4gICAgICAgICAgY2FjaGVOb2RlLm8gPSBvYmplY3RDYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb2JqZWN0Tm9kZSA9IG9iamVjdENhY2hlLmdldChhcmcpO1xuXG4gICAgICAgIGlmIChvYmplY3ROb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgICAgICBvYmplY3RDYWNoZS5zZXQoYXJnLCBjYWNoZU5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhY2hlTm9kZSA9IG9iamVjdE5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFByaW1pdGl2ZXMgZ28gaW50byBhIHJlZ3VsYXIgTWFwXG4gICAgICAgIHZhciBwcmltaXRpdmVDYWNoZSA9IGNhY2hlTm9kZS5wO1xuXG4gICAgICAgIGlmIChwcmltaXRpdmVDYWNoZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGNhY2hlTm9kZS5wID0gcHJpbWl0aXZlQ2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJpbWl0aXZlTm9kZSA9IHByaW1pdGl2ZUNhY2hlLmdldChhcmcpO1xuXG4gICAgICAgIGlmIChwcmltaXRpdmVOb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgICAgICBwcmltaXRpdmVDYWNoZS5zZXQoYXJnLCBjYWNoZU5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhY2hlTm9kZSA9IHByaW1pdGl2ZU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2FjaGVOb2RlLnMgPT09IFRFUk1JTkFURUQpIHtcbiAgICAgIHJldHVybiBjYWNoZU5vZGUudjtcbiAgICB9XG5cbiAgICBpZiAoY2FjaGVOb2RlLnMgPT09IEVSUk9SRUQpIHtcbiAgICAgIHRocm93IGNhY2hlTm9kZS52O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogV2UgZG9uJ3Qgd2FudCB0byB1c2UgcmVzdCBhcmd1bWVudHMgc2luY2Ugd2UgdHJhbnNwaWxlIHRoZSBjb2RlLlxuICAgICAgdmFyIHJlc3VsdCA9IGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICB2YXIgdGVybWluYXRlZE5vZGUgPSBjYWNoZU5vZGU7XG4gICAgICB0ZXJtaW5hdGVkTm9kZS5zID0gVEVSTUlOQVRFRDtcbiAgICAgIHRlcm1pbmF0ZWROb2RlLnYgPSByZXN1bHQ7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBXZSBzdG9yZSB0aGUgZmlyc3QgZXJyb3IgdGhhdCdzIHRocm93biBhbmQgcmV0aHJvdyBpdC5cbiAgICAgIHZhciBlcnJvcmVkTm9kZSA9IGNhY2hlTm9kZTtcbiAgICAgIGVycm9yZWROb2RlLnMgPSBFUlJPUkVEO1xuICAgICAgZXJyb3JlZE5vZGUudiA9IGVycm9yO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcblxuICB7XG4gICAgaWYgKGRpc3BhdGNoZXIgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yJyArICcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4nICsgJzEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbicgKyAnMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbicgKyAnMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcbicgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uJyk7XG4gICAgfVxuICB9IC8vIFdpbGwgcmVzdWx0IGluIGEgbnVsbCBhY2Nlc3MgZXJyb3IgaWYgYWNjZXNzZWQgb3V0c2lkZSByZW5kZXIgcGhhc2UuIFdlXG4gIC8vIGludGVudGlvbmFsbHkgZG9uJ3QgdGhyb3cgb3VyIG93biBlcnJvciBiZWNhdXNlIHRoaXMgaXMgaW4gYSBob3QgcGF0aC5cbiAgLy8gQWxzbyBoZWxwcyBlbnN1cmUgdGhpcyBpcyBpbmxpbmVkLlxuXG5cbiAgcmV0dXJuIGRpc3BhdGNoZXI7XG59XG5mdW5jdGlvbiB1c2VDb250ZXh0KENvbnRleHQpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuXG4gIHtcbiAgICAvLyBUT0RPOiBhZGQgYSBtb3JlIGdlbmVyaWMgd2FybmluZyBmb3IgaW52YWxpZCB2YWx1ZXMuXG4gICAgaWYgKENvbnRleHQuX2NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIHJlYWxDb250ZXh0ID0gQ29udGV4dC5fY29udGV4dDsgLy8gRG9uJ3QgZGVkdXBsaWNhdGUgYmVjYXVzZSB0aGlzIGxlZ2l0aW1hdGVseSBjYXVzZXMgYnVnc1xuICAgICAgLy8gYW5kIG5vYm9keSBzaG91bGQgYmUgdXNpbmcgdGhpcyBpbiBleGlzdGluZyBjb2RlLlxuXG4gICAgICBpZiAocmVhbENvbnRleHQuQ29uc3VtZXIgPT09IENvbnRleHQpIHtcbiAgICAgICAgZXJyb3IoJ0NhbGxpbmcgdXNlQ29udGV4dChDb250ZXh0LkNvbnN1bWVyKSBpcyBub3Qgc3VwcG9ydGVkLCBtYXkgY2F1c2UgYnVncywgYW5kIHdpbGwgYmUgJyArICdyZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuIERpZCB5b3UgbWVhbiB0byBjYWxsIHVzZUNvbnRleHQoQ29udGV4dCkgaW5zdGVhZD8nKTtcbiAgICAgIH0gZWxzZSBpZiAocmVhbENvbnRleHQuUHJvdmlkZXIgPT09IENvbnRleHQpIHtcbiAgICAgICAgZXJyb3IoJ0NhbGxpbmcgdXNlQ29udGV4dChDb250ZXh0LlByb3ZpZGVyKSBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ0RpZCB5b3UgbWVhbiB0byBjYWxsIHVzZUNvbnRleHQoQ29udGV4dCkgaW5zdGVhZD8nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlzcGF0Y2hlci51c2VDb250ZXh0KENvbnRleHQpO1xufVxuZnVuY3Rpb24gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbn1cbmZ1bmN0aW9uIHVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG59XG5mdW5jdGlvbiB1c2VSZWYoaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVmKGluaXRpYWxWYWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlSW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZU1lbW8oY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTWVtbyhjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAge1xuICAgIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgICByZXR1cm4gZGlzcGF0Y2hlci51c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbik7XG4gIH1cbn1cbmZ1bmN0aW9uIHVzZVRyYW5zaXRpb24oKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlVHJhbnNpdGlvbigpO1xufVxuZnVuY3Rpb24gdXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbn1cbmZ1bmN0aW9uIHVzZUlkKCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUlkKCk7XG59XG5mdW5jdGlvbiB1c2VTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KTtcbn1cbmZ1bmN0aW9uIHVzZUNhY2hlUmVmcmVzaCgpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpOyAvLyAkRmxvd0ZpeE1lW25vdC1hLWZ1bmN0aW9uXSBUaGlzIGlzIHVuc3RhYmxlLCB0aHVzIG9wdGlvbmFsXG5cbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ2FjaGVSZWZyZXNoKCk7XG59XG5mdW5jdGlvbiB1c2UodXNhYmxlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlKHVzYWJsZSk7XG59XG5mdW5jdGlvbiB1c2VPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTsgLy8gJEZsb3dGaXhNZVtub3QtYS1mdW5jdGlvbl0gVGhpcyBpcyB1bnN0YWJsZSwgdGh1cyBvcHRpb25hbFxuXG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZU9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpO1xufVxuXG4vLyBIZWxwZXJzIHRvIHBhdGNoIGNvbnNvbGUubG9ncyB0byBhdm9pZCBsb2dnaW5nIGR1cmluZyBzaWRlLWVmZmVjdCBmcmVlXG4vLyByZXBsYXlpbmcgb24gcmVuZGVyIGZ1bmN0aW9uLiBUaGlzIGN1cnJlbnRseSBvbmx5IHBhdGNoZXMgdGhlIG9iamVjdFxuLy8gbGF6aWx5IHdoaWNoIHdvbid0IGNvdmVyIGlmIHRoZSBsb2cgZnVuY3Rpb24gd2FzIGV4dHJhY3RlZCBlYWdlcmx5LlxuLy8gV2UgY291bGQgYWxzbyBlYWdlcmx5IHBhdGNoIHRoZSBtZXRob2QuXG52YXIgZGlzYWJsZWREZXB0aCA9IDA7XG52YXIgcHJldkxvZztcbnZhciBwcmV2SW5mbztcbnZhciBwcmV2V2FybjtcbnZhciBwcmV2RXJyb3I7XG52YXIgcHJldkdyb3VwO1xudmFyIHByZXZHcm91cENvbGxhcHNlZDtcbnZhciBwcmV2R3JvdXBFbmQ7XG5cbmZ1bmN0aW9uIGRpc2FibGVkTG9nKCkge31cblxuZGlzYWJsZWRMb2cuX19yZWFjdERpc2FibGVkTG9nID0gdHJ1ZTtcbmZ1bmN0aW9uIGRpc2FibGVMb2dzKCkge1xuICB7XG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgcHJldkxvZyA9IGNvbnNvbGUubG9nO1xuICAgICAgcHJldkluZm8gPSBjb25zb2xlLmluZm87XG4gICAgICBwcmV2V2FybiA9IGNvbnNvbGUud2FybjtcbiAgICAgIHByZXZFcnJvciA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICBwcmV2R3JvdXAgPSBjb25zb2xlLmdyb3VwO1xuICAgICAgcHJldkdyb3VwQ29sbGFwc2VkID0gY29uc29sZS5ncm91cENvbGxhcHNlZDtcbiAgICAgIHByZXZHcm91cEVuZCA9IGNvbnNvbGUuZ3JvdXBFbmQ7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTkwOTlcblxuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBkaXNhYmxlZExvZyxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV0gRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZMb2dcbiAgICAgICAgfSksXG4gICAgICAgIGluZm86IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cbiAgICAgICAgfSksXG4gICAgICAgIHdhcm46IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZFcnJvclxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXA6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cENvbGxhcHNlZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cEVuZFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGlmIChkaXNhYmxlZERlcHRoIDwgMCkge1xuICAgICAgZXJyb3IoJ2Rpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiAnICsgJ1RoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuLyoqXG4gKiBMZXZlcmFnZXMgbmF0aXZlIGJyb3dzZXIvVk0gc3RhY2sgZnJhbWVzIHRvIGdldCBwcm9wZXIgZGV0YWlscyAoZS5nLlxuICogZmlsZW5hbWUsIGxpbmUgKyBjb2wgbnVtYmVyKSBmb3IgYSBzaW5nbGUgY29tcG9uZW50IGluIGEgY29tcG9uZW50IHN0YWNrLiBXZVxuICogZG8gdGhpcyBieTpcbiAqICAgKDEpIHRocm93aW5nIGFuZCBjYXRjaGluZyBhbiBlcnJvciBpbiB0aGUgZnVuY3Rpb24gLSB0aGlzIHdpbGwgYmUgb3VyXG4gKiAgICAgICBjb250cm9sIGVycm9yLlxuICogICAoMikgY2FsbGluZyB0aGUgY29tcG9uZW50IHdoaWNoIHdpbGwgZXZlbnR1YWxseSB0aHJvdyBhbiBlcnJvciB0aGF0IHdlJ2xsXG4gKiAgICAgICBjYXRjaCAtIHRoaXMgd2lsbCBiZSBvdXIgc2FtcGxlIGVycm9yLlxuICogICAoMykgZGlmZmluZyB0aGUgY29udHJvbCBhbmQgc2FtcGxlIGVycm9yIHN0YWNrcyB0byBmaW5kIHRoZSBzdGFjayBmcmFtZVxuICogICAgICAgd2hpY2ggcmVwcmVzZW50cyBvdXIgY29tcG9uZW50LlxuICovXG5cblxuZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XG4gIC8vIElmIHNvbWV0aGluZyBhc2tlZCBmb3IgYSBzdGFjayBpbnNpZGUgYSBmYWtlIHJlbmRlciwgaXQgc2hvdWxkIGdldCBpZ25vcmVkLlxuICBpZiAoIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICByZWVudHJ5ID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdHlwZV0gSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7IC8vIFNldCB0aGUgZGlzcGF0Y2hlciBpbiBERVYgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNhbGwgaW4gdGhlIHJlbmRlciBmdW5jdGlvblxuICAgIC8vIGZvciB3YXJuaW5ncy5cblxuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuICAvKipcbiAgICogRmluZGluZyBhIGNvbW1vbiBzdGFjayBmcmFtZSBiZXR3ZWVuIHNhbXBsZSBhbmQgY29udHJvbCBlcnJvcnMgY2FuIGJlXG4gICAqIHRyaWNreSBnaXZlbiB0aGUgZGlmZmVyZW50IHR5cGVzIGFuZCBsZXZlbHMgb2Ygc3RhY2sgdHJhY2UgdHJ1bmNhdGlvbiBmcm9tXG4gICAqIGRpZmZlcmVudCBKUyBWTXMuIFNvIGluc3RlYWQgd2UnbGwgYXR0ZW1wdCB0byBjb250cm9sIHdoYXQgdGhhdCBjb21tb25cbiAgICogZnJhbWUgc2hvdWxkIGJlIHRocm91Z2ggdGhpcyBvYmplY3QgbWV0aG9kOlxuICAgKiBIYXZpbmcgYm90aCB0aGUgc2FtcGxlIGFuZCBjb250cm9sIGVycm9ycyBiZSBpbiB0aGUgZnVuY3Rpb24gdW5kZXIgdGhlXG4gICAqIGBEZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lUm9vdGAgcHJvcGVydHksICsgc2V0dGluZyB0aGUgYG5hbWVgIGFuZFxuICAgKiBgZGlzcGxheU5hbWVgIHByb3BlcnRpZXMgb2YgdGhlIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCBhIHN0YWNrXG4gICAqIGZyYW1lIGV4aXN0cyB0aGF0IGhhcyB0aGUgbWV0aG9kIG5hbWUgYERlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWVSb290YCBpblxuICAgKiBpdCBmb3IgYm90aCBjb250cm9sIGFuZCBzYW1wbGUgc3RhY2tzLlxuICAgKi9cblxuXG4gIHZhciBSdW5JblJvb3RGcmFtZSA9IHtcbiAgICBEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3Q6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBjb250cm9sO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHNob3VsZCB0aHJvdy5cbiAgICAgICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgICAgIC8vIFNvbWV0aGluZyBzaG91bGQgYmUgc2V0dGluZyB0aGUgcHJvcHMgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgICAgIHZhciBGYWtlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICB9OyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XG4gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnICYmIFJlZmxlY3QuY29uc3RydWN0KSB7XG4gICAgICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgICAgfSAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ10gZm91bmQgd2hlbiB1cGdyYWRpbmcgRmxvd1xuXG5cbiAgICAgICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICB9IC8vIFRPRE8obHVuYSk6IFRoaXMgd2lsbCBjdXJyZW50bHkgb25seSB0aHJvdyBpZiB0aGUgZnVuY3Rpb24gY29tcG9uZW50XG4gICAgICAgICAgLy8gdHJpZXMgdG8gYWNjZXNzIFJlYWN0L1JlYWN0RE9NL3Byb3BzLiBXZSBzaG91bGQgcHJvYmFibHkgbWFrZSB0aGlzIHRocm93XG4gICAgICAgICAgLy8gaW4gc2ltcGxlIGNvbXBvbmVudHMgdG9vXG5cblxuICAgICAgICAgIHZhciBtYXliZVByb21pc2UgPSBmbigpOyAvLyBJZiB0aGUgZnVuY3Rpb24gY29tcG9uZW50IHJldHVybnMgYSBwcm9taXNlLCBpdCdzIGxpa2VseSBhbiBhc3luY1xuICAgICAgICAgIC8vIGNvbXBvbmVudCwgd2hpY2ggd2UgZG9uJ3QgeWV0IHN1cHBvcnQuIEF0dGFjaCBhIG5vb3AgY2F0Y2ggaGFuZGxlciB0b1xuICAgICAgICAgIC8vIHNpbGVuY2UgdGhlIGVycm9yLlxuICAgICAgICAgIC8vIFRPRE86IEltcGxlbWVudCBjb21wb25lbnQgc3RhY2tzIGZvciBhc3luYyBjbGllbnQgY29tcG9uZW50cz9cblxuICAgICAgICAgIGlmIChtYXliZVByb21pc2UgJiYgdHlwZW9mIG1heWJlUHJvbWlzZS5jYXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbWF5YmVQcm9taXNlLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgICAgICAvLyBUaGlzIGlzIGlubGluZWQgbWFudWFsbHkgYmVjYXVzZSBjbG9zdXJlIGRvZXNuJ3QgZG8gaXQgZm9yIHVzLlxuICAgICAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gW3NhbXBsZS5zdGFjaywgY29udHJvbC5zdGFja107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgICB9XG4gIH07IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuXG4gIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdC5kaXNwbGF5TmFtZSA9ICdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnO1xuICB2YXIgbmFtZVByb3BEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsICduYW1lJyk7IC8vIEJlZm9yZSBFUzYsIHRoZSBgbmFtZWAgcHJvcGVydHkgd2FzIG5vdCBjb25maWd1cmFibGUuXG5cbiAgaWYgKG5hbWVQcm9wRGVzY3JpcHRvciAmJiBuYW1lUHJvcERlc2NyaXB0b3IuY29uZmlndXJhYmxlKSB7XG4gICAgLy8gVjggdXRpbGl6ZXMgYSBmdW5jdGlvbidzIGBuYW1lYCBwcm9wZXJ0eSB3aGVuIGdlbmVyYXRpbmcgYSBzdGFjayB0cmFjZS5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCAvLyBDb25maWd1cmFibGUgcHJvcGVydGllcyBjYW4gYmUgdXBkYXRlZCBldmVuIGlmIGl0cyB3cml0YWJsZSBkZXNjcmlwdG9yXG4gICAgLy8gaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdXG4gICAgJ25hbWUnLCB7XG4gICAgICB2YWx1ZTogJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCdcbiAgICB9KTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmFyIF9SdW5JblJvb3RGcmFtZSREZXRlciA9IFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLFxuICAgICAgICBzYW1wbGVTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclswXSxcbiAgICAgICAgY29udHJvbFN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzFdO1xuXG4gICAgaWYgKHNhbXBsZVN0YWNrICYmIGNvbnRyb2xTdGFjaykge1xuICAgICAgLy8gVGhpcyBleHRyYWN0cyB0aGUgZmlyc3QgZnJhbWUgZnJvbSB0aGUgc2FtcGxlIHRoYXQgaXNuJ3QgYWxzbyBpbiB0aGUgY29udHJvbC5cbiAgICAgIC8vIFNraXBwaW5nIG9uZSBmcmFtZSB0aGF0IHdlIGFzc3VtZSBpcyB0aGUgZnJhbWUgdGhhdCBjYWxscyB0aGUgdHdvLlxuICAgICAgdmFyIHNhbXBsZUxpbmVzID0gc2FtcGxlU3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2xTdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IDA7XG4gICAgICB2YXIgYyA9IDA7XG5cbiAgICAgIHdoaWxlIChzIDwgc2FtcGxlTGluZXMubGVuZ3RoICYmICFzYW1wbGVMaW5lc1tzXS5pbmNsdWRlcygnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JykpIHtcbiAgICAgICAgcysrO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAoYyA8IGNvbnRyb2xMaW5lcy5sZW5ndGggJiYgIWNvbnRyb2xMaW5lc1tjXS5pbmNsdWRlcygnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JykpIHtcbiAgICAgICAgYysrO1xuICAgICAgfSAvLyBXZSBjb3VsZG4ndCBmaW5kIG91ciBpbnRlbnRpb25hbGx5IGluamVjdGVkIGNvbW1vbiByb290IGZyYW1lLCBhdHRlbXB0XG4gICAgICAvLyB0byBmaW5kIGFub3RoZXIgY29tbW9uIHJvb3QgZnJhbWUgYnkgc2VhcmNoIGZyb20gdGhlIGJvdHRvbSBvZiB0aGVcbiAgICAgIC8vIGNvbnRyb2wgc3RhY2suLi5cblxuXG4gICAgICBpZiAocyA9PT0gc2FtcGxlTGluZXMubGVuZ3RoIHx8IGMgPT09IGNvbnRyb2xMaW5lcy5sZW5ndGgpIHtcbiAgICAgICAgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIGMgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gV2UgZXhwZWN0IGF0IGxlYXN0IG9uZSBzdGFjayBmcmFtZSB0byBiZSBzaGFyZWQuXG4gICAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxuICAgICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgICAgLy8gZWFybGllciB0aGFuIHRoZSBvdGhlci4gV2UgYXNzdW1lIHRoYXQgdGhlIHNhbXBsZSBpcyBsb25nZXIgb3IgdGhlIHNhbWVcbiAgICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxuICAgICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICAgIGMtLTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKDsgcyA+PSAxICYmIGMgPj0gMDsgcy0tLCBjLS0pIHtcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxuICAgICAgICBpZiAoc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxuICAgICAgICAgIC8vIGxpbmUsIHRoYXQncyBhIHByZXR0eSBnb29kIGluZGljYXRvciB0aGF0IG91ciBzYW1wbGUgdGhyZXcgYXQgc2FtZSBsaW5lIGFzXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXG4gICAgICAgICAgaWYgKHMgIT09IDEgfHwgYyAhPT0gMSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICBzLS07XG4gICAgICAgICAgICAgIGMtLTsgLy8gV2UgbWF5IHN0aWxsIGhhdmUgc2ltaWxhciBpbnRlcm1lZGlhdGUgZnJhbWVzIGZyb20gdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cblxuICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTsgLy8gSWYgb3VyIGNvbXBvbmVudCBmcmFtZSBpcyBsYWJlbGVkIFwiPGFub255bW91cz5cIlxuICAgICAgICAgICAgICAgIC8vIGJ1dCB3ZSBoYXZlIGEgdXNlci1wcm92aWRlZCBcImRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICAvLyBzcGxpY2UgaXQgaW4gdG8gbWFrZSB0aGUgc3RhY2sgbW9yZSByZWFkYWJsZS5cblxuXG4gICAgICAgICAgICAgICAgaWYgKGZuLmRpc3BsYXlOYW1lICYmIF9mcmFtZS5pbmNsdWRlcygnPGFub255bW91cz4nKSkge1xuICAgICAgICAgICAgICAgICAgX2ZyYW1lID0gX2ZyYW1lLnJlcGxhY2UoJzxhbm9ueW1vdXM+JywgZm4uZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBfZnJhbWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gLy8gUmV0dXJuIHRoZSBsaW5lIHdlIGZvdW5kLlxuXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gX2ZyYW1lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IHdoaWxlIChzID49IDEgJiYgYyA+PSAwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICByZWVudHJ5ID0gZmFsc2U7XG5cbiAgICB7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XG4gICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICB9XG5cbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2U7XG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxuXG5cbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzeW50aGV0aWNGcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZuLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0KENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcblxuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAge1xuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZS50eXBlLCBzb3VyY2UsIG93bmVyRm4pO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIExhenkgbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGluaXQocGF5bG9hZCksIHNvdXJjZSwgb3duZXJGbik7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxudmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGVsZW1lbnQpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV0gVGhpcyBpcyBva2F5IGJ1dCBGbG93IGRvZXNuJ3Qga25vdyBpdC5cbiAgICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKGhhc093blByb3BlcnR5KTtcblxuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvciQxID0gdm9pZCAwOyAvLyBQcm9wIHR5cGUgdmFsaWRhdGlvbiBtYXkgdGhyb3cuIEluIGNhc2UgdGhleSBkbywgd2UgZG9uJ3Qgd2FudCB0b1xuICAgICAgICAvLyBmYWlsIHRoZSByZW5kZXIgcGhhc2Ugd2hlcmUgaXQgZGlkbid0IGZhaWwgYmVmb3JlLiBTbyB3ZSBsb2cgaXQuXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBhbiBpbnZhcmlhbnQgdGhhdCBnZXRzIGNhdWdodC4gSXQncyB0aGUgc2FtZVxuICAgICAgICAgIC8vIGJlaGF2aW9yIGFzIHdpdGhvdXQgdGhpcyBzdGF0ZW1lbnQgZXhjZXB0IHdpdGggYSBiZXR0ZXIgbWVzc2FnZS5cbiAgICAgICAgICBpZiAodHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgKyAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJyk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvciQxID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciQxID0gZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSAmJiAhKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMnICsgJyBgJXNgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAlcy4gJyArICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICsgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lLCB0eXBlb2YgZXJyb3IkMSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCdGYWlsZWQgJXMgdHlwZTogJXMnLCBsb2NhdGlvbiwgZXJyb3IkMS5tZXNzYWdlKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBzZXRFeHRyYVN0YWNrRnJhbWUoc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bjtcblxue1xuICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIGlmIChSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtRm9yUHJvcHMoZWxlbWVudFByb3BzKSB7XG4gIGlmIChlbGVtZW50UHJvcHMgIT09IG51bGwgJiYgZWxlbWVudFByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oZWxlbWVudFByb3BzLl9fc291cmNlKTtcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cbi8qKlxuICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxuICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gKiB1cGRhdGVzLlxuICovXG5cblxudmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcbiAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICBpZiAoIWluZm8pIHtcbiAgICB2YXIgcGFyZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShwYXJlbnRUeXBlKTtcblxuICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICBpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArIHBhcmVudE5hbWUgKyBcIj4uXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluZm87XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gIC8vIHByb3BlcnR5LCBpdCBtYXkgYmUgdGhlIGNyZWF0b3Igb2YgdGhlIGNoaWxkIHRoYXQncyByZXNwb25zaWJsZSBmb3JcbiAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cbiAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcbiAgfVxuXG4gIHtcbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnIHx8ICFub2RlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKG5vZGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UpIDsgZWxzZSBpZiAoaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBFbnRyeSBpdGVyYXRvcnMgdXNlZCB0byBwcm92aWRlIGltcGxpY2l0IGtleXMsXG4gICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cbiAgICAgIGlmIChpdGVyYXRvckZuICE9PSBub2RlLmVudHJpZXMpIHtcbiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuICAgICAgICB2YXIgc3RlcDtcblxuICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxuICogcHJvdmlkZWQgYnkgdGhlIHR5cGUuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuXG4gICAgICBlcnJvcignQ29tcG9uZW50ICVzIGRlY2xhcmVkIGBQcm9wVHlwZXNgIGluc3RlYWQgb2YgYHByb3BUeXBlc2AuIERpZCB5b3UgbWlzc3BlbGwgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQ/JywgX25hbWUgfHwgJ1Vua25vd24nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHR5cGUuZ2V0RGVmYXVsdFByb3BzID09PSAnZnVuY3Rpb24nICYmICF0eXBlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBSZWFjdC5jcmVhdGVDbGFzcyAnICsgJ2RlZmluaXRpb25zLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgYGRlZmF1bHRQcm9wc2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBmcmFnbWVudCwgdmFsaWRhdGUgdGhhdCBpdCBjYW4gb25seSBiZSBwcm92aWRlZCB3aXRoIGZyYWdtZW50IHByb3BzXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xuICB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhmcmFnbWVudC5wcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ICE9PSAnY2hpbGRyZW4nICYmIGtleSAhPT0gJ2tleScpIHtcbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgYHJlZmAgc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4nKTtcblxuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXG5cbiAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgfVxuXG4gICAgdmFyIHNvdXJjZUluZm8gPSBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKHByb3BzKTtcblxuICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICBpbmZvICs9IHNvdXJjZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgfVxuXG4gICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdVbmtub3duJykgKyBcIiAvPlwiO1xuICAgICAgaW5mbyA9ICcgRGlkIHlvdSBhY2NpZGVudGFsbHkgZXhwb3J0IGEgSlNYIGxpdGVyYWwgaW5zdGVhZCBvZiBhIGNvbXBvbmVudD8nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XG4gICAgfVxuXG4gICAge1xuICAgICAgZXJyb3IoJ1JlYWN0LmNyZWF0ZUVsZW1lbnQ6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50JDEuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgLy8gVGhlIHJlc3VsdCBjYW4gYmUgbnVsbGlzaCBpZiBhIG1vY2sgb3IgYSBjdXN0b20gZnVuY3Rpb24gaXMgdXNlZC5cbiAgLy8gVE9ETzogRHJvcCB0aGlzIHdoZW4gdGhlc2UgYXJlIG5vIGxvbmdlciBhbGxvd2VkIGFzIHRoZSB0eXBlIGFyZ3VtZW50LlxuXG4gIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfSAvLyBTa2lwIGtleSB3YXJuaW5nIGlmIHRoZSB0eXBlIGlzbid0IHZhbGlkIHNpbmNlIG91ciBrZXkgdmFsaWRhdGlvbiBsb2dpY1xuICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gIC8vIFdlIGRvbid0IHdhbnQgZXhjZXB0aW9uIGJlaGF2aW9yIHRvIGRpZmZlciBiZXR3ZWVuIGRldiBhbmQgcHJvZC5cbiAgLy8gKFJlbmRlcmluZyB3aWxsIHRocm93IHdpdGggYSBoZWxwZnVsIG1lc3NhZ2UgYW5kIGFzIHNvb24gYXMgdGhlIHR5cGUgaXNcbiAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuXG5cbiAgaWYgKHZhbGlkVHlwZSkge1xuICAgIGZvciAodmFyIGkgPSAyOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgdmFsaWRhdGVGcmFnbWVudFByb3BzKGVsZW1lbnQpO1xuICB9IGVsc2Uge1xuICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG52YXIgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSBmYWxzZTtcbmZ1bmN0aW9uIGNyZWF0ZUZhY3RvcnlXaXRoVmFsaWRhdGlvbih0eXBlKSB7XG4gIHZhciB2YWxpZGF0ZWRGYWN0b3J5ID0gY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uLmJpbmQobnVsbCwgdHlwZSk7XG4gIHZhbGlkYXRlZEZhY3RvcnkudHlwZSA9IHR5cGU7XG5cbiAge1xuICAgIGlmICghZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkpIHtcbiAgICAgIGRpZFdhcm5BYm91dERlcHJlY2F0ZWRDcmVhdGVGYWN0b3J5ID0gdHJ1ZTtcblxuICAgICAgd2FybignUmVhY3QuY3JlYXRlRmFjdG9yeSgpIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAnICsgJ2EgZnV0dXJlIG1ham9yIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIEpTWCAnICsgJ29yIHVzZSBSZWFjdC5jcmVhdGVFbGVtZW50KCkgZGlyZWN0bHkgaW5zdGVhZC4nKTtcbiAgICB9IC8vIExlZ2FjeSBob29rOiByZW1vdmUgaXRcblxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbGlkYXRlZEZhY3RvcnksICd0eXBlJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2FybignRmFjdG9yeS50eXBlIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB0aGUgY2xhc3MgZGlyZWN0bHkgJyArICdiZWZvcmUgcGFzc2luZyBpdCB0byBjcmVhdGVGYWN0b3J5LicpO1xuXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAndHlwZScsIHtcbiAgICAgICAgICB2YWx1ZTogdHlwZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVkRmFjdG9yeTtcbn1cbmZ1bmN0aW9uIGNsb25lRWxlbWVudFdpdGhWYWxpZGF0aW9uKGVsZW1lbnQsIHByb3BzLCBjaGlsZHJlbikge1xuICB2YXIgbmV3RWxlbWVudCA9IGNsb25lRWxlbWVudCQxLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihzY29wZSwgb3B0aW9ucykge1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uO1xuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uID0ge307XG4gIHZhciBjdXJyZW50VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMgPSBuZXcgU2V0KCk7XG4gIH1cblxuICB0cnkge1xuICAgIHNjb3BlKCk7XG4gIH0gZmluYWxseSB7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcudHJhbnNpdGlvbiA9IHByZXZUcmFuc2l0aW9uO1xuXG4gICAge1xuICAgICAgaWYgKHByZXZUcmFuc2l0aW9uID09PSBudWxsICYmIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzKSB7XG4gICAgICAgIHZhciB1cGRhdGVkRmliZXJzQ291bnQgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplO1xuXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmNsZWFyKCk7XG5cbiAgICAgICAgaWYgKHVwZGF0ZWRGaWJlcnNDb3VudCA+IDEwKSB7XG4gICAgICAgICAgd2FybignRGV0ZWN0ZWQgYSBsYXJnZSBudW1iZXIgb2YgdXBkYXRlcyBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLiAnICsgJ0lmIHRoaXMgaXMgZHVlIHRvIGEgc3Vic2NyaXB0aW9uIHBsZWFzZSByZS13cml0ZSBpdCB0byB1c2UgUmVhY3QgcHJvdmlkZWQgaG9va3MuICcgKyAnT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9IGZhbHNlO1xudmFyIGVucXVldWVUYXNrSW1wbCA9IG51bGw7XG5mdW5jdGlvbiBlbnF1ZXVlVGFzayh0YXNrKSB7XG4gIGlmIChlbnF1ZXVlVGFza0ltcGwgPT09IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgLy8gcmVhZCByZXF1aXJlIG9mZiB0aGUgbW9kdWxlIG9iamVjdCB0byBnZXQgYXJvdW5kIHRoZSBidW5kbGVycy5cbiAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlbSB0byBkZXRlY3QgYSByZXF1aXJlIGFuZCBidW5kbGUgYSBOb2RlIHBvbHlmaWxsLlxuICAgICAgdmFyIHJlcXVpcmVTdHJpbmcgPSAoJ3JlcXVpcmUnICsgTWF0aC5yYW5kb20oKSkuc2xpY2UoMCwgNyk7XG4gICAgICB2YXIgbm9kZVJlcXVpcmUgPSBtb2R1bGUgJiYgbW9kdWxlW3JlcXVpcmVTdHJpbmddOyAvLyBhc3N1bWluZyB3ZSdyZSBpbiBub2RlLCBsZXQncyB0cnkgdG8gZ2V0IG5vZGUnc1xuICAgICAgLy8gdmVyc2lvbiBvZiBzZXRJbW1lZGlhdGUsIGJ5cGFzc2luZyBmYWtlIHRpbWVycyBpZiBhbnkuXG5cbiAgICAgIGVucXVldWVUYXNrSW1wbCA9IG5vZGVSZXF1aXJlLmNhbGwobW9kdWxlLCAndGltZXJzJykuc2V0SW1tZWRpYXRlO1xuICAgIH0gY2F0Y2ggKF9lcnIpIHtcbiAgICAgIC8vIHdlJ3JlIGluIGEgYnJvd3NlclxuICAgICAgLy8gd2UgY2FuJ3QgdXNlIHJlZ3VsYXIgdGltZXJzIGJlY2F1c2UgdGhleSBtYXkgc3RpbGwgYmUgZmFrZWRcbiAgICAgIC8vIHNvIHdlIHRyeSBNZXNzYWdlQ2hhbm5lbCtwb3N0TWVzc2FnZSBpbnN0ZWFkXG4gICAgICBlbnF1ZXVlVGFza0ltcGwgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgICAge1xuICAgICAgICAgIGlmIChkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBNZXNzYWdlQ2hhbm5lbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ1RoaXMgYnJvd3NlciBkb2VzIG5vdCBoYXZlIGEgTWVzc2FnZUNoYW5uZWwgaW1wbGVtZW50YXRpb24sICcgKyAnc28gZW5xdWV1aW5nIHRhc2tzIHZpYSBhd2FpdCBhY3QoYXN5bmMgKCkgPT4gLi4uKSB3aWxsIGZhaWwuICcgKyAnUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3VlcyAnICsgJ2lmIHlvdSBlbmNvdW50ZXIgdGhpcyB3YXJuaW5nLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gY2FsbGJhY2s7XG4gICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2UodW5kZWZpbmVkKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVucXVldWVUYXNrSW1wbCh0YXNrKTtcbn1cblxuLy8gbnVtYmVyIG9mIGBhY3RgIHNjb3BlcyBvbiB0aGUgc3RhY2suXG5cbnZhciBhY3RTY29wZURlcHRoID0gMDsgLy8gV2Ugb25seSB3YXJuIHRoZSBmaXJzdCB0aW1lIHlvdSBuZWdsZWN0IHRvIGF3YWl0IGFuIGFzeW5jIGBhY3RgIHNjb3BlLlxuXG52YXIgZGlkV2Fybk5vQXdhaXRBY3QgPSBmYWxzZTtcbmZ1bmN0aW9uIGFjdChjYWxsYmFjaykge1xuICB7XG4gICAgLy8gV2hlbiBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50IGlzIG5vdCBudWxsLCBpdCBzaWduYWxzIHRvIFJlYWN0IHRoYXRcbiAgICAvLyB3ZSdyZSBjdXJyZW50bHkgaW5zaWRlIGFuIGBhY3RgIHNjb3BlLiBSZWFjdCB3aWxsIHB1c2ggYWxsIGl0cyB0YXNrcyB0b1xuICAgIC8vIHRoaXMgcXVldWUgaW5zdGVhZCBvZiBzY2hlZHVsaW5nIHRoZW0gd2l0aCBwbGF0Zm9ybSBBUElzLlxuICAgIC8vXG4gICAgLy8gV2Ugc2V0IHRoaXMgdG8gYW4gZW1wdHkgYXJyYXkgd2hlbiB3ZSBmaXJzdCBlbnRlciBhbiBgYWN0YCBzY29wZSwgYW5kXG4gICAgLy8gb25seSB1bnNldCBpdCBvbmNlIHdlJ3ZlIGxlZnQgdGhlIG91dGVybW9zdCBgYWN0YCBzY29wZSDigJQgcmVtZW1iZXIgdGhhdFxuICAgIC8vIGBhY3RgIGNhbGxzIGNhbiBiZSBuZXN0ZWQuXG4gICAgLy9cbiAgICAvLyBJZiB3ZSdyZSBhbHJlYWR5IGluc2lkZSBhbiBgYWN0YCBzY29wZSwgcmV1c2UgdGhlIGV4aXN0aW5nIHF1ZXVlLlxuICAgIHZhciBwcmV2SXNCYXRjaGluZ0xlZ2FjeSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmlzQmF0Y2hpbmdMZWdhY3k7XG4gICAgdmFyIHByZXZBY3RRdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG4gICAgdmFyIHByZXZBY3RTY29wZURlcHRoID0gYWN0U2NvcGVEZXB0aDtcbiAgICBhY3RTY29wZURlcHRoKys7XG4gICAgdmFyIHF1ZXVlID0gUmVhY3RDdXJyZW50QWN0UXVldWUuY3VycmVudCA9IHByZXZBY3RRdWV1ZSAhPT0gbnVsbCA/IHByZXZBY3RRdWV1ZSA6IFtdOyAvLyBVc2VkIHRvIHJlcHJvZHVjZSBiZWhhdmlvciBvZiBgYmF0Y2hlZFVwZGF0ZXNgIGluIGxlZ2FjeSBtb2RlLiBPbmx5XG4gICAgLy8gc2V0IHRvIGB0cnVlYCB3aGlsZSB0aGUgZ2l2ZW4gY2FsbGJhY2sgaXMgZXhlY3V0ZWQsIG5vdCBmb3IgdXBkYXRlc1xuICAgIC8vIHRyaWdnZXJlZCBkdXJpbmcgYW4gYXN5bmMgZXZlbnQsIGJlY2F1c2UgdGhpcyBpcyBob3cgdGhlIGxlZ2FjeVxuICAgIC8vIGltcGxlbWVudGF0aW9uIG9mIGBhY3RgIGJlaGF2ZWQuXG5cbiAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5ID0gdHJ1ZTtcbiAgICB2YXIgcmVzdWx0OyAvLyBUaGlzIHRyYWNrcyB3aGV0aGVyIHRoZSBgYWN0YCBjYWxsIGlzIGF3YWl0ZWQuIEluIGNlcnRhaW4gY2FzZXMsIG5vdFxuICAgIC8vIGF3YWl0aW5nIGl0IGlzIGEgbWlzdGFrZSwgc28gd2Ugd2lsbCBkZXRlY3QgdGhhdCBhbmQgd2Fybi5cblxuICAgIHZhciBkaWRBd2FpdEFjdENhbGwgPSBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBSZXNldCB0aGlzIHRvIGBmYWxzZWAgcmlnaHQgYmVmb3JlIGVudGVyaW5nIHRoZSBSZWFjdCB3b3JrIGxvb3AuIFRoZVxuICAgICAgLy8gb25seSBwbGFjZSB3ZSBldmVyIHJlYWQgdGhpcyBmaWVsZHMgaXMganVzdCBiZWxvdywgcmlnaHQgYWZ0ZXIgcnVubmluZ1xuICAgICAgLy8gdGhlIGNhbGxiYWNrLiBTbyB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IGFmdGVyIHRoZSBjYWxsYmFjayBydW5zLlxuICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUgPSBmYWxzZTtcbiAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKCk7XG4gICAgICB2YXIgZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5kaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZTsgLy8gUmVwbGljYXRlIGJlaGF2aW9yIG9mIG9yaWdpbmFsIGBhY3RgIGltcGxlbWVudGF0aW9uIGluIGxlZ2FjeSBtb2RlLFxuICAgICAgLy8gd2hpY2ggZmx1c2hlZCB1cGRhdGVzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBzY29wZSBmdW5jdGlvbiBleGl0cywgZXZlblxuICAgICAgLy8gaWYgaXQncyBhbiBhc3luYyBmdW5jdGlvbi5cblxuICAgICAgaWYgKCFwcmV2SXNCYXRjaGluZ0xlZ2FjeSAmJiBkaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZSkge1xuICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKTtcbiAgICAgIH0gLy8gYGlzQmF0Y2hpbmdMZWdhY3lgIGdldHMgcmVzZXQgdXNpbmcgdGhlIHJlZ3VsYXIgc3RhY2ssIG5vdCB0aGUgYXN5bmNcbiAgICAgIC8vIG9uZSB1c2VkIHRvIHRyYWNrIGBhY3RgIHNjb3Blcy4gV2h5LCB5b3UgbWF5IGJlIHdvbmRlcmluZz8gQmVjYXVzZVxuICAgICAgLy8gdGhhdCdzIGhvdyBpdCB3b3JrZWQgYmVmb3JlIHZlcnNpb24gMTguIFllcywgaXQncyBjb25mdXNpbmchIFdlIHNob3VsZFxuICAgICAgLy8gZGVsZXRlIGxlZ2FjeSBtb2RlISFcblxuXG4gICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5ID0gcHJldklzQmF0Y2hpbmdMZWdhY3k7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIGBpc0JhdGNoaW5nTGVnYWN5YCBnZXRzIHJlc2V0IHVzaW5nIHRoZSByZWd1bGFyIHN0YWNrLCBub3QgdGhlIGFzeW5jXG4gICAgICAvLyBvbmUgdXNlZCB0byB0cmFjayBgYWN0YCBzY29wZXMuIFdoeSwgeW91IG1heSBiZSB3b25kZXJpbmc/IEJlY2F1c2VcbiAgICAgIC8vIHRoYXQncyBob3cgaXQgd29ya2VkIGJlZm9yZSB2ZXJzaW9uIDE4LiBZZXMsIGl0J3MgY29uZnVzaW5nISBXZSBzaG91bGRcbiAgICAgIC8vIGRlbGV0ZSBsZWdhY3kgbW9kZSEhXG4gICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5ID0gcHJldklzQmF0Y2hpbmdMZWdhY3k7XG4gICAgICBwb3BBY3RTY29wZShwcmV2QWN0UXVldWUsIHByZXZBY3RTY29wZURlcHRoKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgIT09IG51bGwgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiYgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuICAgIHR5cGVvZiByZXN1bHQudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQSBwcm9taXNlL3RoZW5hYmxlIHdhcyByZXR1cm5lZCBmcm9tIHRoZSBjYWxsYmFjay4gV2FpdCBmb3IgaXQgdG9cbiAgICAgIC8vIHJlc29sdmUgYmVmb3JlIGZsdXNoaW5nIHRoZSBxdWV1ZS5cbiAgICAgIC8vXG4gICAgICAvLyBJZiBgYWN0YCB3ZXJlIGltcGxlbWVudGVkIGFzIGFuIGFzeW5jIGZ1bmN0aW9uLCB0aGlzIHdob2xlIGJsb2NrIGNvdWxkXG4gICAgICAvLyBiZSBhIHNpbmdsZSBgYXdhaXRgIGNhbGwuIFRoYXQncyByZWFsbHkgdGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuXG4gICAgICAvLyB0aGlzIGJyYW5jaCBhbmQgdGhlIG5leHQgb25lLlxuICAgICAgdmFyIHRoZW5hYmxlID0gcmVzdWx0OyAvLyBXYXJuIGlmIHRoZSBhbiBgYWN0YCBjYWxsIHdpdGggYW4gYXN5bmMgc2NvcGUgaXMgbm90IGF3YWl0ZWQuIEluIGFcbiAgICAgIC8vIGZ1dHVyZSByZWxlYXNlLCBjb25zaWRlciBtYWtpbmcgdGhpcyBhbiBlcnJvci5cblxuICAgICAgcXVldWVTZXZlcmFsTWljcm90YXNrcyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghZGlkQXdhaXRBY3RDYWxsICYmICFkaWRXYXJuTm9Bd2FpdEFjdCkge1xuICAgICAgICAgIGRpZFdhcm5Ob0F3YWl0QWN0ID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCdZb3UgY2FsbGVkIGFjdChhc3luYyAoKSA9PiAuLi4pIHdpdGhvdXQgYXdhaXQuICcgKyAnVGhpcyBjb3VsZCBsZWFkIHRvIHVuZXhwZWN0ZWQgdGVzdGluZyBiZWhhdmlvdXIsICcgKyAnaW50ZXJsZWF2aW5nIG11bHRpcGxlIGFjdCBjYWxscyBhbmQgbWl4aW5nIHRoZWlyICcgKyAnc2NvcGVzLiAnICsgJ1lvdSBzaG91bGQgLSBhd2FpdCBhY3QoYXN5bmMgKCkgPT4gLi4uKTsnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aGVuOiBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgZGlkQXdhaXRBY3RDYWxsID0gdHJ1ZTtcbiAgICAgICAgICB0aGVuYWJsZS50aGVuKGZ1bmN0aW9uIChyZXR1cm5WYWx1ZSkge1xuICAgICAgICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2QWN0U2NvcGVEZXB0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAvLyBXZSdyZSBleGl0aW5nIHRoZSBvdXRlcm1vc3QgYGFjdGAgc2NvcGUuIEZsdXNoIHRoZSBxdWV1ZS5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKTtcbiAgICAgICAgICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKC8vIFJlY3Vyc2l2ZWx5IGZsdXNoIHRhc2tzIHNjaGVkdWxlZCBieSBhIG1pY3JvdGFzay5cbiAgICAgICAgICAgICAgICAgICAgcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBgdGhlbmFibGVgIG1pZ2h0IG5vdCBiZSBhIHJlYWwgcHJvbWlzZSwgYW5kIGBmbHVzaEFjdFF1ZXVlYFxuICAgICAgICAgICAgICAgIC8vIG1pZ2h0IHRocm93LCBzbyB3ZSBuZWVkIHRvIHdyYXAgYGZsdXNoQWN0UXVldWVgIGluIGFcbiAgICAgICAgICAgICAgICAvLyB0cnkvY2F0Y2guXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBwb3BBY3RTY29wZShwcmV2QWN0UXVldWUsIHByZXZBY3RTY29wZURlcHRoKTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXR1cm5WYWx1ZSA9IHJlc3VsdDsgLy8gVGhlIGNhbGxiYWNrIGlzIG5vdCBhbiBhc3luYyBmdW5jdGlvbi4gRXhpdCB0aGUgY3VycmVudFxuICAgICAgLy8gc2NvcGUgaW1tZWRpYXRlbHkuXG5cbiAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpO1xuXG4gICAgICBpZiAocHJldkFjdFNjb3BlRGVwdGggPT09IDApIHtcbiAgICAgICAgLy8gV2UncmUgZXhpdGluZyB0aGUgb3V0ZXJtb3N0IGBhY3RgIHNjb3BlLiBGbHVzaCB0aGUgcXVldWUuXG4gICAgICAgIGZsdXNoQWN0UXVldWUocXVldWUpOyAvLyBJZiB0aGUgcXVldWUgaXMgbm90IGVtcHR5LCBpdCBpbXBsaWVzIHRoYXQgd2UgaW50ZW50aW9uYWxseSB5aWVsZGVkXG4gICAgICAgIC8vIHRvIHRoZSBtYWluIHRocmVhZCwgYmVjYXVzZSBzb21ldGhpbmcgc3VzcGVuZGVkLiBXZSB3aWxsIGNvbnRpbnVlXG4gICAgICAgIC8vIGluIGFuIGFzeW5jaHJvbm91cyB0YXNrLlxuICAgICAgICAvL1xuICAgICAgICAvLyBXYXJuIGlmIHNvbWV0aGluZyBzdXNwZW5kcyBidXQgdGhlIGBhY3RgIGNhbGwgaXMgbm90IGF3YWl0ZWQuXG4gICAgICAgIC8vIEluIGEgZnV0dXJlIHJlbGVhc2UsIGNvbnNpZGVyIG1ha2luZyB0aGlzIGFuIGVycm9yLlxuXG4gICAgICAgIGlmIChxdWV1ZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICBxdWV1ZVNldmVyYWxNaWNyb3Rhc2tzKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghZGlkQXdhaXRBY3RDYWxsICYmICFkaWRXYXJuTm9Bd2FpdEFjdCkge1xuICAgICAgICAgICAgICBkaWRXYXJuTm9Bd2FpdEFjdCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgZXJyb3IoJ0EgY29tcG9uZW50IHN1c3BlbmRlZCBpbnNpZGUgYW4gYGFjdGAgc2NvcGUsIGJ1dCB0aGUgJyArICdgYWN0YCBjYWxsIHdhcyBub3QgYXdhaXRlZC4gV2hlbiB0ZXN0aW5nIFJlYWN0ICcgKyAnY29tcG9uZW50cyB0aGF0IGRlcGVuZCBvbiBhc3luY2hyb25vdXMgZGF0YSwgeW91IG11c3QgJyArICdhd2FpdCB0aGUgcmVzdWx0OlxcblxcbicgKyAnYXdhaXQgYWN0KCgpID0+IC4uLiknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSAvLyBMaWtlIG1hbnkgdGhpbmdzIGluIHRoaXMgbW9kdWxlLCB0aGlzIGlzIG5leHQgcGFydCBpcyBjb25mdXNpbmcuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIGRvIG5vdCBjdXJyZW50bHkgcmVxdWlyZSBldmVyeSBgYWN0YCBjYWxsIHRoYXQgaXMgcGFzc2VkIGFcbiAgICAgICAgLy8gY2FsbGJhY2sgdG8gYmUgYXdhaXRlZCwgdGhyb3VnaCBhcmd1YWJseSB3ZSBzaG91bGQuIFNpbmNlIHRoaXNcbiAgICAgICAgLy8gY2FsbGJhY2sgd2FzIHN5bmNocm9ub3VzLCB3ZSBuZWVkIHRvIGV4aXQgdGhlIGN1cnJlbnQgc2NvcGUgYmVmb3JlXG4gICAgICAgIC8vIHJldHVybmluZy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gSG93ZXZlciwgaWYgdGhlbmFibGUgd2UncmUgYWJvdXQgdG8gcmV0dXJuICppcyogYXdhaXRlZCwgd2UnbGxcbiAgICAgICAgLy8gaW1tZWRpYXRlbHkgcmVzdG9yZSB0aGUgY3VycmVudCBzY29wZS4gU28gaXQgc2hvdWxkbid0IG9ic2VydmFibGUuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoaXMgZG9lc24ndCBhZmZlY3QgdGhlIGNhc2Ugd2hlcmUgdGhlIHNjb3BlIGNhbGxiYWNrIGlzIGFzeW5jLFxuICAgICAgICAvLyBiZWNhdXNlIHdlIGFsd2F5cyByZXF1aXJlIHRob3NlIGNhbGxzIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRPRE86IEluIGEgZnV0dXJlIHZlcnNpb24sIGNvbnNpZGVyIGFsd2F5cyByZXF1aXJpbmcgYWxsIGBhY3RgIGNhbGxzXG4gICAgICAgIC8vIHRvIGJlIGF3YWl0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY2FsbGJhY2sgaXMgc3luYyBvciBhc3luYy5cblxuXG4gICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aGVuOiBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgZGlkQXdhaXRBY3RDYWxsID0gdHJ1ZTtcblxuICAgICAgICAgIGlmIChwcmV2QWN0U2NvcGVEZXB0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIGBhY3RgIGNhbGwgaXMgYXdhaXRlZCwgcmVzdG9yZSB0aGUgcXVldWUgd2Ugd2VyZVxuICAgICAgICAgICAgLy8gdXNpbmcgYmVmb3JlIChzZWUgbG9uZyBjb21tZW50IGFib3ZlKSBzbyB3ZSBjYW4gZmx1c2ggaXQuXG4gICAgICAgICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50ID0gcXVldWU7XG4gICAgICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiAoLy8gUmVjdXJzaXZlbHkgZmx1c2ggdGFza3Mgc2NoZWR1bGVkIGJ5IGEgbWljcm90YXNrLlxuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHJldHVyblZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpIHtcbiAge1xuICAgIGlmIChwcmV2QWN0U2NvcGVEZXB0aCAhPT0gYWN0U2NvcGVEZXB0aCAtIDEpIHtcbiAgICAgIGVycm9yKCdZb3Ugc2VlbSB0byBoYXZlIG92ZXJsYXBwaW5nIGFjdCgpIGNhbGxzLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnQmUgc3VyZSB0byBhd2FpdCBwcmV2aW91cyBhY3QoKSBjYWxscyBiZWZvcmUgbWFraW5nIGEgbmV3IG9uZS4gJyk7XG4gICAgfVxuXG4gICAgYWN0U2NvcGVEZXB0aCA9IHByZXZBY3RTY29wZURlcHRoO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCkge1xuICB7XG4gICAgLy8gQ2hlY2sgaWYgYW55IHRhc2tzIHdlcmUgc2NoZWR1bGVkIGFzeW5jaHJvbm91c2x5LlxuICAgIHZhciBxdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG5cbiAgICBpZiAocXVldWUgIT09IG51bGwpIHtcbiAgICAgIGlmIChxdWV1ZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgLy8gQXN5bmMgdGFza3Mgd2VyZSBzY2hlZHVsZWQsIG1vc3RseSBsaWtlbHkgaW4gYSBtaWNyb3Rhc2suXG4gICAgICAgIC8vIEtlZXAgZmx1c2hpbmcgdW50aWwgdGhlcmUgYXJlIG5vIG1vcmUuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZmx1c2hBY3RRdWV1ZShxdWV1ZSk7IC8vIFRoZSB3b3JrIHdlIGp1c3QgcGVyZm9ybWVkIG1heSBoYXZlIHNjaGVkdWxlIGFkZGl0aW9uYWwgYXN5bmNcbiAgICAgICAgICAvLyB0YXNrcy4gV2FpdCBhIG1hY3JvdGFzayBhbmQgY2hlY2sgYWdhaW4uXG5cbiAgICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBMZWF2ZSByZW1haW5pbmcgdGFza3Mgb24gdGhlIHF1ZXVlIGlmIHNvbWV0aGluZyB0aHJvd3MuXG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIHF1ZXVlIGlzIGVtcHR5LiBXZSBjYW4gZmluaXNoLlxuICAgICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgaXNGbHVzaGluZyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSB7XG4gIHtcbiAgICBpZiAoIWlzRmx1c2hpbmcpIHtcbiAgICAgIC8vIFByZXZlbnQgcmUtZW50cmFuY2UuXG4gICAgICBpc0ZsdXNoaW5nID0gdHJ1ZTtcbiAgICAgIHZhciBpID0gMDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICg7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjYWxsYmFjayA9IHF1ZXVlW2ldO1xuXG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkVXNlUHJvbWlzZSA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIGNvbnRpbnVhdGlvbiA9IGNhbGxiYWNrKGZhbHNlKTtcblxuICAgICAgICAgICAgaWYgKGNvbnRpbnVhdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBpZiAoUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkVXNlUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBjb21wb25lbnQganVzdCBzdXNwZW5kZWQuIFlpZWxkIHRvIHRoZSBtYWluIHRocmVhZCBpblxuICAgICAgICAgICAgICAgIC8vIGNhc2UgdGhlIHByb21pc2UgaXMgYWxyZWFkeSByZXNvbHZlZC4gSWYgc28sIGl0IHdpbGwgcGluZyBpblxuICAgICAgICAgICAgICAgIC8vIGEgbWljcm90YXNrIGFuZCB3ZSBjYW4gcmVzdW1lIHdpdGhvdXQgdW53aW5kaW5nIHRoZSBzdGFjay5cbiAgICAgICAgICAgICAgICBxdWV1ZVtpXSA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIHF1ZXVlLnNwbGljZSgwLCBpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjYWxsYmFjayA9IGNvbnRpbnVhdGlvbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gd2hpbGUgKHRydWUpO1xuICAgICAgICB9IC8vIFdlIGZsdXNoZWQgdGhlIGVudGlyZSBxdWV1ZS5cblxuXG4gICAgICAgIHF1ZXVlLmxlbmd0aCA9IDA7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJZiBzb21ldGhpbmcgdGhyb3dzLCBsZWF2ZSB0aGUgcmVtYWluaW5nIGNhbGxiYWNrcyBvbiB0aGUgcXVldWUuXG4gICAgICAgIHF1ZXVlLnNwbGljZSgwLCBpICsgMSk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaXNGbHVzaGluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyBTb21lIG9mIG91ciB3YXJuaW5ncyBhdHRlbXB0IHRvIGRldGVjdCBpZiB0aGUgYGFjdGAgY2FsbCBpcyBhd2FpdGVkIGJ5XG4vLyBjaGVja2luZyBpbiBhbiBhc3luY2hyb25vdXMgdGFzay4gV2FpdCBhIGZldyBtaWNyb3Rhc2tzIGJlZm9yZSBjaGVja2luZy4gVGhlXG4vLyBvbmx5IHJlYXNvbiBvbmUgaXNuJ3Qgc3VmZmljaWVudCBpcyB3ZSB3YW50IHRvIGFjY29tbW9kYXRlIHRoZSBjYXNlIHdoZXJlIGFuXG4vLyBgYWN0YCBjYWxsIGlzIHJldHVybmVkIGZyb20gYW4gYXN5bmMgZnVuY3Rpb24gd2l0aG91dCBmaXJzdCBiZWluZyBhd2FpdGVkLFxuLy8gc2luY2UgdGhhdCdzIGEgc29tZXdoYXQgY29tbW9uIHBhdHRlcm4uIElmIHlvdSBkbyB0aGlzIHRvbyBtYW55IHRpbWVzIGluIGFcbi8vIG5lc3RlZCBzZXF1ZW5jZSwgeW91IG1pZ2h0IGdldCBhIHdhcm5pbmcsIGJ1dCB5b3UgY2FuIGFsd2F5cyBmaXggYnkgYXdhaXRpbmdcbi8vIHRoZSBjYWxsLlxuLy9cbi8vIEEgbWFjcm90YXNrIHdvdWxkIGFsc28gd29yayAoYW5kIGlzIHRoZSBmYWxsYmFjaykgYnV0IGRlcGVuZGluZyBvbiB0aGUgdGVzdFxuLy8gZW52aXJvbm1lbnQgaXQgbWF5IGNhdXNlIHRoZSB3YXJuaW5nIHRvIGZpcmUgdG9vIGxhdGUuXG5cblxudmFyIHF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MgPSB0eXBlb2YgcXVldWVNaWNyb3Rhc2sgPT09ICdmdW5jdGlvbicgPyBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgcXVldWVNaWNyb3Rhc2soZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBxdWV1ZU1pY3JvdGFzayhjYWxsYmFjayk7XG4gIH0pO1xufSA6IGVucXVldWVUYXNrO1xuXG52YXIgY3JlYXRlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY2xvbmVFbGVtZW50ID0gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24gO1xudmFyIGNyZWF0ZUZhY3RvcnkgPSBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG5leHBvcnRzLlByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbmV4cG9ydHMuUHVyZUNvbXBvbmVudCA9IFB1cmVDb21wb25lbnQ7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gUmVhY3RTaGFyZWRJbnRlcm5hbHM7XG5leHBvcnRzLmNhY2hlID0gY2FjaGU7XG5leHBvcnRzLmNsb25lRWxlbWVudCA9IGNsb25lRWxlbWVudDtcbmV4cG9ydHMuY3JlYXRlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ7XG5leHBvcnRzLmNyZWF0ZUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50O1xuZXhwb3J0cy5jcmVhdGVGYWN0b3J5ID0gY3JlYXRlRmFjdG9yeTtcbmV4cG9ydHMuY3JlYXRlUmVmID0gY3JlYXRlUmVmO1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSBpc1ZhbGlkRWxlbWVudDtcbmV4cG9ydHMubGF6eSA9IGxhenk7XG5leHBvcnRzLm1lbW8gPSBtZW1vO1xuZXhwb3J0cy5zdGFydFRyYW5zaXRpb24gPSBzdGFydFRyYW5zaXRpb247XG5leHBvcnRzLnVuc3RhYmxlX2FjdCA9IGFjdDtcbmV4cG9ydHMudW5zdGFibGVfdXNlQ2FjaGVSZWZyZXNoID0gdXNlQ2FjaGVSZWZyZXNoO1xuZXhwb3J0cy51c2UgPSB1c2U7XG5leHBvcnRzLnVzZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2s7XG5leHBvcnRzLnVzZUNvbnRleHQgPSB1c2VDb250ZXh0O1xuZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlID0gdXNlRGVidWdWYWx1ZTtcbmV4cG9ydHMudXNlRGVmZXJyZWRWYWx1ZSA9IHVzZURlZmVycmVkVmFsdWU7XG5leHBvcnRzLnVzZUVmZmVjdCA9IHVzZUVmZmVjdDtcbmV4cG9ydHMudXNlSWQgPSB1c2VJZDtcbmV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IHVzZUltcGVyYXRpdmVIYW5kbGU7XG5leHBvcnRzLnVzZUluc2VydGlvbkVmZmVjdCA9IHVzZUluc2VydGlvbkVmZmVjdDtcbmV4cG9ydHMudXNlTGF5b3V0RWZmZWN0ID0gdXNlTGF5b3V0RWZmZWN0O1xuZXhwb3J0cy51c2VNZW1vID0gdXNlTWVtbztcbmV4cG9ydHMudXNlT3B0aW1pc3RpYyA9IHVzZU9wdGltaXN0aWM7XG5leHBvcnRzLnVzZVJlZHVjZXIgPSB1c2VSZWR1Y2VyO1xuZXhwb3J0cy51c2VSZWYgPSB1c2VSZWY7XG5leHBvcnRzLnVzZVN0YXRlID0gdXNlU3RhdGU7XG5leHBvcnRzLnVzZVN5bmNFeHRlcm5hbFN0b3JlID0gdXNlU3luY0V4dGVybmFsU3RvcmU7XG5leHBvcnRzLnVzZVRyYW5zaXRpb24gPSB1c2VUcmFuc2l0aW9uO1xuZXhwb3J0cy52ZXJzaW9uID0gUmVhY3RWZXJzaW9uO1xuICAgICAgICAgIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbmlmIChcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcCA9PT1cbiAgICAnZnVuY3Rpb24nXG4pIHtcbiAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wKG5ldyBFcnJvcigpKTtcbn1cbiAgICAgICAgXG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOlsicHJvY2VzcyIsIl9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyIsInJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydCIsIkVycm9yIiwiUmVhY3RWZXJzaW9uIiwiUkVBQ1RfRUxFTUVOVF9UWVBFIiwiU3ltYm9sIiwiZm9yIiwiUkVBQ1RfUE9SVEFMX1RZUEUiLCJSRUFDVF9GUkFHTUVOVF9UWVBFIiwiUkVBQ1RfU1RSSUNUX01PREVfVFlQRSIsIlJFQUNUX1BST0ZJTEVSX1RZUEUiLCJSRUFDVF9QUk9WSURFUl9UWVBFIiwiUkVBQ1RfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJSRUFDVF9PRkZTQ1JFRU5fVFlQRSIsIlJFQUNUX0NBQ0hFX1RZUEUiLCJNQVlCRV9JVEVSQVRPUl9TWU1CT0wiLCJpdGVyYXRvciIsIkZBVVhfSVRFUkFUT1JfU1lNQk9MIiwiZ2V0SXRlcmF0b3JGbiIsIm1heWJlSXRlcmFibGUiLCJtYXliZUl0ZXJhdG9yIiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxIiwiY3VycmVudCIsIlJlYWN0Q3VycmVudENhY2hlIiwiUmVhY3RDdXJyZW50QmF0Y2hDb25maWciLCJ0cmFuc2l0aW9uIiwiUmVhY3RDdXJyZW50QWN0UXVldWUiLCJpc0JhdGNoaW5nTGVnYWN5IiwiZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUiLCJkaWRVc2VQcm9taXNlIiwiUmVhY3RDdXJyZW50T3duZXIiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEiLCJjdXJyZW50RXh0cmFTdGFja0ZyYW1lIiwic2V0RXh0cmFTdGFja0ZyYW1lIiwic3RhY2siLCJnZXRDdXJyZW50U3RhY2siLCJnZXRTdGFja0FkZGVuZHVtIiwiaW1wbCIsImVuYWJsZVNjb3BlQVBJIiwiZW5hYmxlQ2FjaGVFbGVtZW50IiwiZW5hYmxlVHJhbnNpdGlvblRyYWNpbmciLCJlbmFibGVMZWdhY3lIaWRkZW4iLCJlbmFibGVEZWJ1Z1RyYWNpbmciLCJSZWFjdFNoYXJlZEludGVybmFscyIsIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lIiwid2FybiIsImZvcm1hdCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwicHJpbnRXYXJuaW5nIiwiZXJyb3IiLCJfbGVuMiIsIl9rZXkyIiwibGV2ZWwiLCJjb25jYXQiLCJhcmdzV2l0aEZvcm1hdCIsIm1hcCIsIml0ZW0iLCJTdHJpbmciLCJ1bnNoaWZ0IiwiRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJhcHBseSIsImNhbGwiLCJjb25zb2xlIiwiZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50Iiwid2Fybk5vb3AiLCJwdWJsaWNJbnN0YW5jZSIsImNhbGxlck5hbWUiLCJfY29uc3RydWN0b3IiLCJjb25zdHJ1Y3RvciIsImNvbXBvbmVudE5hbWUiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJ3YXJuaW5nS2V5IiwiUmVhY3ROb29wVXBkYXRlUXVldWUiLCJpc01vdW50ZWQiLCJlbnF1ZXVlRm9yY2VVcGRhdGUiLCJjYWxsYmFjayIsImVucXVldWVSZXBsYWNlU3RhdGUiLCJjb21wbGV0ZVN0YXRlIiwiZW5xdWV1ZVNldFN0YXRlIiwicGFydGlhbFN0YXRlIiwiYXNzaWduIiwiT2JqZWN0IiwiZW1wdHlPYmplY3QiLCJmcmVlemUiLCJDb21wb25lbnQiLCJwcm9wcyIsImNvbnRleHQiLCJ1cGRhdGVyIiwicmVmcyIsImlzUmVhY3RDb21wb25lbnQiLCJzZXRTdGF0ZSIsImZvcmNlVXBkYXRlIiwiZGVwcmVjYXRlZEFQSXMiLCJyZXBsYWNlU3RhdGUiLCJkZWZpbmVEZXByZWNhdGlvbldhcm5pbmciLCJtZXRob2ROYW1lIiwiaW5mbyIsImRlZmluZVByb3BlcnR5IiwiZ2V0IiwidW5kZWZpbmVkIiwiZm5OYW1lIiwiaGFzT3duUHJvcGVydHkiLCJDb21wb25lbnREdW1teSIsIlB1cmVDb21wb25lbnQiLCJwdXJlQ29tcG9uZW50UHJvdG90eXBlIiwiaXNQdXJlUmVhY3RDb21wb25lbnQiLCJjcmVhdGVSZWYiLCJyZWZPYmplY3QiLCJzZWFsIiwiaXNBcnJheUltcGwiLCJpc0FycmF5IiwiYSIsInR5cGVOYW1lIiwidmFsdWUiLCJoYXNUb1N0cmluZ1RhZyIsInRvU3RyaW5nVGFnIiwidHlwZSIsIndpbGxDb2VyY2lvblRocm93IiwidGVzdFN0cmluZ0NvZXJjaW9uIiwiZSIsImNoZWNrS2V5U3RyaW5nQ29lcmNpb24iLCJnZXRXcmFwcGVkTmFtZSIsIm91dGVyVHlwZSIsImlubmVyVHlwZSIsIndyYXBwZXJOYW1lIiwiZnVuY3Rpb25OYW1lIiwiZ2V0Q29udGV4dE5hbWUiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIiLCJnZXRDb21wb25lbnROYW1lRnJvbVR5cGUiLCIkJHR5cGVvZiIsInRhZyIsInByb3ZpZGVyIiwiX2NvbnRleHQiLCJyZW5kZXIiLCJvdXRlck5hbWUiLCJsYXp5Q29tcG9uZW50IiwicGF5bG9hZCIsIl9wYXlsb2FkIiwiaW5pdCIsIl9pbml0IiwieCIsIlJFU0VSVkVEX1BST1BTIiwia2V5IiwicmVmIiwiX19zZWxmIiwiX19zb3VyY2UiLCJzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biIsInNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duIiwiZGlkV2FybkFib3V0U3RyaW5nUmVmcyIsImhhc1ZhbGlkUmVmIiwiY29uZmlnIiwiZ2V0dGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiaXNSZWFjdFdhcm5pbmciLCJoYXNWYWxpZEtleSIsImRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyIiwid2FybkFib3V0QWNjZXNzaW5nS2V5IiwiY29uZmlndXJhYmxlIiwiZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIiLCJ3YXJuQWJvdXRBY2Nlc3NpbmdSZWYiLCJ3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQiLCJzdGF0ZU5vZGUiLCJSZWFjdEVsZW1lbnQiLCJzZWxmIiwic291cmNlIiwib3duZXIiLCJlbGVtZW50IiwiX293bmVyIiwiX3N0b3JlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiY3JlYXRlRWxlbWVudCQxIiwiY2hpbGRyZW4iLCJwcm9wTmFtZSIsImNoaWxkcmVuTGVuZ3RoIiwiY2hpbGRBcnJheSIsImkiLCJkZWZhdWx0UHJvcHMiLCJjbG9uZUFuZFJlcGxhY2VLZXkiLCJvbGRFbGVtZW50IiwibmV3S2V5IiwibmV3RWxlbWVudCIsIl9zZWxmIiwiX3NvdXJjZSIsImNsb25lRWxlbWVudCQxIiwiaXNWYWxpZEVsZW1lbnQiLCJvYmplY3QiLCJTRVBBUkFUT1IiLCJTVUJTRVBBUkFUT1IiLCJlc2NhcGUiLCJlc2NhcGVSZWdleCIsImVzY2FwZXJMb29rdXAiLCJlc2NhcGVkU3RyaW5nIiwicmVwbGFjZSIsIm1hdGNoIiwiZGlkV2FybkFib3V0TWFwcyIsInVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4IiwiZXNjYXBlVXNlclByb3ZpZGVkS2V5IiwidGV4dCIsImdldEVsZW1lbnRLZXkiLCJpbmRleCIsInRvU3RyaW5nIiwibWFwSW50b0FycmF5IiwiYXJyYXkiLCJlc2NhcGVkUHJlZml4IiwibmFtZVNvRmFyIiwiaW52b2tlQ2FsbGJhY2siLCJfY2hpbGQiLCJtYXBwZWRDaGlsZCIsImNoaWxkS2V5IiwiZXNjYXBlZENoaWxkS2V5IiwiYyIsInB1c2giLCJjaGlsZCIsIm5leHROYW1lIiwic3VidHJlZUNvdW50IiwibmV4dE5hbWVQcmVmaXgiLCJpdGVyYXRvckZuIiwiaXRlcmFibGVDaGlsZHJlbiIsImVudHJpZXMiLCJzdGVwIiwiaWkiLCJuZXh0IiwiZG9uZSIsImNoaWxkcmVuU3RyaW5nIiwia2V5cyIsImpvaW4iLCJtYXBDaGlsZHJlbiIsImZ1bmMiLCJyZXN1bHQiLCJjb3VudCIsImNvdW50Q2hpbGRyZW4iLCJuIiwiZm9yRWFjaENoaWxkcmVuIiwiZm9yRWFjaEZ1bmMiLCJmb3JFYWNoQ29udGV4dCIsInRvQXJyYXkiLCJvbmx5Q2hpbGQiLCJjcmVhdGVDb250ZXh0IiwiZGVmYXVsdFZhbHVlIiwiX2N1cnJlbnRWYWx1ZSIsIl9jdXJyZW50VmFsdWUyIiwiX3RocmVhZENvdW50IiwiUHJvdmlkZXIiLCJDb25zdW1lciIsIl9kZWZhdWx0VmFsdWUiLCJfZ2xvYmFsTmFtZSIsImhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzIiwiaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIiLCJoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lciIsImRlZmluZVByb3BlcnRpZXMiLCJzZXQiLCJfUHJvdmlkZXIiLCJfY3VycmVudFJlbmRlcmVyIiwiX2N1cnJlbnRSZW5kZXJlcjIiLCJVbmluaXRpYWxpemVkIiwiUGVuZGluZyIsIlJlc29sdmVkIiwiUmVqZWN0ZWQiLCJsYXp5SW5pdGlhbGl6ZXIiLCJfc3RhdHVzIiwiY3RvciIsIl9yZXN1bHQiLCJ0aGVuYWJsZSIsInRoZW4iLCJtb2R1bGVPYmplY3QiLCJyZXNvbHZlZCIsInJlamVjdGVkIiwicGVuZGluZyIsImRlZmF1bHQiLCJsYXp5IiwibGF6eVR5cGUiLCJwcm9wVHlwZXMiLCJuZXdEZWZhdWx0UHJvcHMiLCJuZXdQcm9wVHlwZXMiLCJmb3J3YXJkUmVmIiwiZWxlbWVudFR5cGUiLCJvd25OYW1lIiwiUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQxIiwiaXNWYWxpZEVsZW1lbnRUeXBlIiwiZ2V0TW9kdWxlSWQiLCJtZW1vIiwiY29tcGFyZSIsIlVOVEVSTUlOQVRFRCIsIlRFUk1JTkFURUQiLCJFUlJPUkVEIiwiY3JlYXRlQ2FjaGVSb290IiwiV2Vha01hcCIsImNyZWF0ZUNhY2hlTm9kZSIsInMiLCJ2IiwibyIsInAiLCJjYWNoZSIsImZuIiwiZGlzcGF0Y2hlciIsImZuTWFwIiwiZ2V0Q2FjaGVGb3JUeXBlIiwiZm5Ob2RlIiwiY2FjaGVOb2RlIiwibCIsImFyZyIsIm9iamVjdENhY2hlIiwib2JqZWN0Tm9kZSIsInByaW1pdGl2ZUNhY2hlIiwiTWFwIiwicHJpbWl0aXZlTm9kZSIsInRlcm1pbmF0ZWROb2RlIiwiZXJyb3JlZE5vZGUiLCJyZXNvbHZlRGlzcGF0Y2hlciIsInVzZUNvbnRleHQiLCJDb250ZXh0IiwicmVhbENvbnRleHQiLCJ1c2VTdGF0ZSIsImluaXRpYWxTdGF0ZSIsInVzZVJlZHVjZXIiLCJyZWR1Y2VyIiwiaW5pdGlhbEFyZyIsInVzZVJlZiIsImluaXRpYWxWYWx1ZSIsInVzZUVmZmVjdCIsImNyZWF0ZSIsImRlcHMiLCJ1c2VJbnNlcnRpb25FZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlRGVidWdWYWx1ZSIsImZvcm1hdHRlckZuIiwidXNlVHJhbnNpdGlvbiIsInVzZURlZmVycmVkVmFsdWUiLCJ1c2VJZCIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwic3Vic2NyaWJlIiwiZ2V0U25hcHNob3QiLCJnZXRTZXJ2ZXJTbmFwc2hvdCIsInVzZUNhY2hlUmVmcmVzaCIsInVzZSIsInVzYWJsZSIsInVzZU9wdGltaXN0aWMiLCJwYXNzdGhyb3VnaCIsImRpc2FibGVkRGVwdGgiLCJwcmV2TG9nIiwicHJldkluZm8iLCJwcmV2V2FybiIsInByZXZFcnJvciIsInByZXZHcm91cCIsInByZXZHcm91cENvbGxhcHNlZCIsInByZXZHcm91cEVuZCIsImRpc2FibGVkTG9nIiwiX19yZWFjdERpc2FibGVkTG9nIiwiZGlzYWJsZUxvZ3MiLCJsb2ciLCJncm91cCIsImdyb3VwQ29sbGFwc2VkIiwiZ3JvdXBFbmQiLCJyZWVuYWJsZUxvZ3MiLCJwcmVmaXgiLCJkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSIsIm93bmVyRm4iLCJ0cmltIiwicmVlbnRyeSIsImNvbXBvbmVudEZyYW1lQ2FjaGUiLCJQb3NzaWJseVdlYWtNYXAiLCJkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lIiwiY29uc3RydWN0IiwiZnJhbWUiLCJwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJwcmV2aW91c0Rpc3BhdGNoZXIiLCJSdW5JblJvb3RGcmFtZSIsIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCIsImNvbnRyb2wiLCJGYWtlIiwiUmVmbGVjdCIsIm1heWJlUHJvbWlzZSIsImNhdGNoIiwic2FtcGxlIiwibmFtZVByb3BEZXNjcmlwdG9yIiwiX1J1bkluUm9vdEZyYW1lJERldGVyIiwic2FtcGxlU3RhY2siLCJjb250cm9sU3RhY2siLCJzYW1wbGVMaW5lcyIsInNwbGl0IiwiY29udHJvbExpbmVzIiwiaW5jbHVkZXMiLCJfZnJhbWUiLCJzeW50aGV0aWNGcmFtZSIsImRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSIsInNob3VsZENvbnN0cnVjdCIsImRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFViIsImxvZ2dlZFR5cGVGYWlsdXJlcyIsInNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEiLCJjaGVja1Byb3BUeXBlcyIsInR5cGVTcGVjcyIsInZhbHVlcyIsImxvY2F0aW9uIiwiaGFzIiwiYmluZCIsInR5cGVTcGVjTmFtZSIsImVycm9yJDEiLCJlcnIiLCJleCIsIm1lc3NhZ2UiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFIiwic2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQiLCJwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biIsImdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSIsImdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtIiwiZmlsZU5hbWUiLCJsaW5lTnVtYmVyIiwiZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW1Gb3JQcm9wcyIsImVsZW1lbnRQcm9wcyIsIm93bmVySGFzS2V5VXNlV2FybmluZyIsImdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8iLCJwYXJlbnRUeXBlIiwicGFyZW50TmFtZSIsInZhbGlkYXRlRXhwbGljaXRLZXkiLCJ2YWxpZGF0ZWQiLCJjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvIiwiY2hpbGRPd25lciIsInZhbGlkYXRlQ2hpbGRLZXlzIiwibm9kZSIsInZhbGlkYXRlUHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiX25hbWUiLCJnZXREZWZhdWx0UHJvcHMiLCJpc1JlYWN0Q2xhc3NBcHByb3ZlZCIsInZhbGlkYXRlRnJhZ21lbnRQcm9wcyIsImZyYWdtZW50IiwiY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIiwidmFsaWRUeXBlIiwic291cmNlSW5mbyIsInR5cGVTdHJpbmciLCJkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSIsImNyZWF0ZUZhY3RvcnlXaXRoVmFsaWRhdGlvbiIsInZhbGlkYXRlZEZhY3RvcnkiLCJjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiIsInN0YXJ0VHJhbnNpdGlvbiIsInNjb3BlIiwib3B0aW9ucyIsInByZXZUcmFuc2l0aW9uIiwiY3VycmVudFRyYW5zaXRpb24iLCJfdXBkYXRlZEZpYmVycyIsIlNldCIsInVwZGF0ZWRGaWJlcnNDb3VudCIsInNpemUiLCJjbGVhciIsImRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsIiwiZW5xdWV1ZVRhc2tJbXBsIiwiZW5xdWV1ZVRhc2siLCJ0YXNrIiwicmVxdWlyZVN0cmluZyIsIk1hdGgiLCJyYW5kb20iLCJzbGljZSIsIm5vZGVSZXF1aXJlIiwibW9kdWxlIiwic2V0SW1tZWRpYXRlIiwiX2VyciIsIk1lc3NhZ2VDaGFubmVsIiwiY2hhbm5lbCIsInBvcnQxIiwib25tZXNzYWdlIiwicG9ydDIiLCJwb3N0TWVzc2FnZSIsImFjdFNjb3BlRGVwdGgiLCJkaWRXYXJuTm9Bd2FpdEFjdCIsImFjdCIsInByZXZJc0JhdGNoaW5nTGVnYWN5IiwicHJldkFjdFF1ZXVlIiwicHJldkFjdFNjb3BlRGVwdGgiLCJxdWV1ZSIsImRpZEF3YWl0QWN0Q2FsbCIsImZsdXNoQWN0UXVldWUiLCJwb3BBY3RTY29wZSIsInF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MiLCJyZXNvbHZlIiwicmVqZWN0IiwicmV0dXJuVmFsdWUiLCJyZWN1cnNpdmVseUZsdXNoQXN5bmNBY3RXb3JrIiwiaXNGbHVzaGluZyIsImNvbnRpbnVhdGlvbiIsInNwbGljZSIsInF1ZXVlTWljcm90YXNrIiwiY3JlYXRlRWxlbWVudCIsImNsb25lRWxlbWVudCIsImNyZWF0ZUZhY3RvcnkiLCJDaGlsZHJlbiIsImZvckVhY2giLCJvbmx5IiwiZXhwb3J0cyIsIkZyYWdtZW50IiwiUHJvZmlsZXIiLCJTdHJpY3RNb2RlIiwiU3VzcGVuc2UiLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsInVuc3RhYmxlX2FjdCIsInVuc3RhYmxlX3VzZUNhY2hlUmVmcmVzaCIsInZlcnNpb24iLCJyZWdpc3RlckludGVybmFsTW9kdWxlU3RvcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react/cjs/react.development.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react/index.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/index.js ***!
- \************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"(ssr)/../../node_modules/next/dist/compiled/react/cjs/react.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUVBLElBQUlBLEtBQXlCLEVBQWMsRUFFMUMsTUFBTTtJQUNMQyxvSkFBeUI7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanM/YTYwMCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcXVpcmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***!
- \**********************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(ssr)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxJQUFJQSxLQUF5QixFQUFjLEVBRTFDLE1BQU07SUFDTEMsb0xBQXlCO0FBQzNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2pzeC1kZXYtcnVudGltZS5qcz9iYmIwIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOlsicHJvY2VzcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXF1aXJlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/jsx-runtime.js ***!
- \******************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ \"(ssr)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUVBLElBQUlBLEtBQXlCLEVBQWMsRUFFMUMsTUFBTTtJQUNMQyw0S0FBeUI7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanM/NDc2YyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcXVpcmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js":
-/*!*****************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js ***!
- \*****************************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var e = {};\n (()=>{\n var r = e;\n Object.defineProperty(r, \"__esModule\", {\n value: true\n });\n var n = \"<unknown>\";\n function parse(e) {\n var r = e.split(\"\\n\");\n return r.reduce(function(e, r) {\n var n = parseChrome(r) || parseWinjs(r) || parseGecko(r) || parseNode(r) || parseJSC(r);\n if (n) {\n e.push(n);\n }\n return e;\n }, []);\n }\n var a = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n var l = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n function parseChrome(e) {\n var r = a.exec(e);\n if (!r) {\n return null;\n }\n var u = r[2] && r[2].indexOf(\"native\") === 0;\n var t = r[2] && r[2].indexOf(\"eval\") === 0;\n var i = l.exec(r[2]);\n if (t && i != null) {\n r[2] = i[1];\n r[3] = i[2];\n r[4] = i[3];\n }\n return {\n file: !u ? r[2] : null,\n methodName: r[1] || n,\n arguments: u ? [\n r[2]\n ] : [],\n lineNumber: r[3] ? +r[3] : null,\n column: r[4] ? +r[4] : null\n };\n }\n var u = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n function parseWinjs(e) {\n var r = u.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[2],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[3],\n column: r[4] ? +r[4] : null\n };\n }\n var t = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\n var i = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n function parseGecko(e) {\n var r = t.exec(e);\n if (!r) {\n return null;\n }\n var a = r[3] && r[3].indexOf(\" > eval\") > -1;\n var l = i.exec(r[3]);\n if (a && l != null) {\n r[3] = l[1];\n r[4] = l[2];\n r[5] = null;\n }\n return {\n file: r[3],\n methodName: r[1] || n,\n arguments: r[2] ? r[2].split(\",\") : [],\n lineNumber: r[4] ? +r[4] : null,\n column: r[5] ? +r[5] : null\n };\n }\n var s = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n function parseJSC(e) {\n var r = s.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[3],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[4],\n column: r[5] ? +r[5] : null\n };\n }\n var o = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n function parseNode(e) {\n var r = o.exec(e);\n if (!r) {\n return null;\n }\n return {\n file: r[2],\n methodName: r[1] || n,\n arguments: [],\n lineNumber: +r[3],\n column: r[4] ? +r[4] : null\n };\n }\n r.parse = parse;\n })();\n module.exports = e;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlci9zdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUM7SUFBSztJQUFhLElBQUcsT0FBT0Esd0JBQXNCLGFBQVlBLG9CQUFvQkMsRUFBRSxHQUFDQyxTQUFTQSxHQUFDO0lBQUksSUFBSUMsSUFBRSxDQUFDO0lBQUc7UUFBSyxJQUFJQyxJQUFFRDtRQUFFRSxPQUFPQyxjQUFjLENBQUNGLEdBQUUsY0FBYTtZQUFDRyxPQUFNO1FBQUk7UUFBRyxJQUFJQyxJQUFFO1FBQVksU0FBU0MsTUFBTU4sQ0FBQztZQUFFLElBQUlDLElBQUVELEVBQUVPLEtBQUssQ0FBQztZQUFNLE9BQU9OLEVBQUVPLE1BQU0sQ0FBRSxTQUFTUixDQUFDLEVBQUNDLENBQUM7Z0JBQUUsSUFBSUksSUFBRUksWUFBWVIsTUFBSVMsV0FBV1QsTUFBSVUsV0FBV1YsTUFBSVcsVUFBVVgsTUFBSVksU0FBU1o7Z0JBQUcsSUFBR0ksR0FBRTtvQkFBQ0wsRUFBRWMsSUFBSSxDQUFDVDtnQkFBRTtnQkFBQyxPQUFPTDtZQUFDLEdBQUcsRUFBRTtRQUFDO1FBQUMsSUFBSWUsSUFBRTtRQUE0SSxJQUFJQyxJQUFFO1FBQWdDLFNBQVNQLFlBQVlULENBQUM7WUFBRSxJQUFJQyxJQUFFYyxFQUFFRSxJQUFJLENBQUNqQjtZQUFHLElBQUcsQ0FBQ0MsR0FBRTtnQkFBQyxPQUFPO1lBQUk7WUFBQyxJQUFJaUIsSUFBRWpCLENBQUMsQ0FBQyxFQUFFLElBQUVBLENBQUMsQ0FBQyxFQUFFLENBQUNrQixPQUFPLENBQUMsY0FBWTtZQUFFLElBQUlDLElBQUVuQixDQUFDLENBQUMsRUFBRSxJQUFFQSxDQUFDLENBQUMsRUFBRSxDQUFDa0IsT0FBTyxDQUFDLFlBQVU7WUFBRSxJQUFJRSxJQUFFTCxFQUFFQyxJQUFJLENBQUNoQixDQUFDLENBQUMsRUFBRTtZQUFFLElBQUdtQixL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QyxJQUFFMkIsRUFBRVgsSUFBSSxDQUFDakI7WUFBRyxJQUFHLENBQUNDLEdBQUU7Z0JBQUMsT0FBTztZQUFJO1lBQUMsT0FBTTtnQkFBQ3FCLE1BQUtyQixDQUFDLENBQUMsRUFBRTtnQkFBQ3NCLFlBQVd0QixDQUFDLENBQUMsRUFBRSxJQUFFSTtnQkFBRW1CLFdBQVUsRUFBRTtnQkFBQ0MsWUFBVyxDQUFDeEIsQ0FBQyxDQUFDLEVBQUU7Z0JBQUN5QixRQUFPekIsQ0FBQyxDQUFDLEVBQUUsR0FBQyxDQUFDQSxDQUFDLENBQUMsRUFBRSxHQUFDO1lBQUk7UUFBQztRQUFDQSxFQUFFSyxLQUFLLEdBQUNBO0lBQUs7SUFBS3VCLE9BQU9DLE9BQU8sR0FBQzlCO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RhY2t0cmFjZS1wYXJzZXIvc3RhY2stdHJhY2UtcGFyc2VyLmNqcy5qcz8zZDM0Il0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgZT17fTsoKCk9Pnt2YXIgcj1lO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dmFyIG49XCI8dW5rbm93bj5cIjtmdW5jdGlvbiBwYXJzZShlKXt2YXIgcj1lLnNwbGl0KFwiXFxuXCIpO3JldHVybiByLnJlZHVjZSgoZnVuY3Rpb24oZSxyKXt2YXIgbj1wYXJzZUNocm9tZShyKXx8cGFyc2VXaW5qcyhyKXx8cGFyc2VHZWNrbyhyKXx8cGFyc2VOb2RlKHIpfHxwYXJzZUpTQyhyKTtpZihuKXtlLnB1c2gobil9cmV0dXJuIGV9KSxbXSl9dmFyIGE9L15cXHMqYXQgKC4qPykgP1xcKCgoPzpmaWxlfGh0dHBzP3xibG9ifGNocm9tZS1leHRlbnNpb258bmF0aXZlfGV2YWx8d2VicGFja3w8YW5vbnltb3VzPnxcXC98W2Etel06XFxcXHxcXFxcXFxcXCkuKj8pKD86OihcXGQrKSk/KD86OihcXGQrKSk/XFwpP1xccyokL2k7dmFyIGw9L1xcKChcXFMqKSg/OjooXFxkKykpKD86OihcXGQrKSlcXCkvO2Z1bmN0aW9uIHBhcnNlQ2hyb21lKGUpe3ZhciByPWEuZXhlYyhlKTtpZighcil7cmV0dXJuIG51bGx9dmFyIHU9clsyXSYmclsyXS5pbmRleE9mKFwibmF0aXZlXCIpPT09MDt2YXIgdD1yWzJdJiZyWzJdLmluZGV4T2YoXCJldmFsXCIpPT09MDt2YXIgaT1sLmV4ZWMoclsyXSk7aWYodCYmaSE9bnVsbCl7clsyXT1pWzFdO3JbM109aVsyXTtyWzRdPWlbM119cmV0dXJue2ZpbGU6IXU/clsyXTpudWxsLG1ldGhvZE5hbWU6clsxXXx8bixhcmd1bWVudHM6dT9bclsyXV06W10sbGluZU51bWJlcjpyWzNdPytyWzNdOm51bGwsY29sdW1uOnJbNF0/K3JbNF06bnVsbH19dmFyIHU9L15cXHMqYXQgKD86KCg/OlxcW29iamVjdCBvYmplY3RcXF0pPy4rKSApP1xcKD8oKD86ZmlsZXxtcy1hcHB4fGh0dHBzP3x3ZWJwYWNrfGJsb2IpOi4qPyk6KFxcZCspKD86OihcXGQrKSk/XFwpP1xccyokL2k7ZnVuY3Rpb24gcGFyc2VXaW5qcyhlKXt2YXIgcj11LmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXJldHVybntmaWxlOnJbMl0sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOityWzNdLGNvbHVtbjpyWzRdPytyWzRdOm51bGx9fXZhciB0PS9eXFxzKiguKj8pKD86XFwoKC4qPylcXCkpPyg/Ol58QCkoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWV8d2VicGFja3xyZXNvdXJjZXxcXFtuYXRpdmUpLio/fFteQF0qYnVuZGxlKSg/OjooXFxkKykpPyg/OjooXFxkKykpP1xccyokL2k7dmFyIGk9LyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2k7ZnVuY3Rpb24gcGFyc2VHZWNrbyhlKXt2YXIgcj10LmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXZhciBhPXJbM10mJnJbM10uaW5kZXhPZihcIiA+IGV2YWxcIik+LTE7dmFyIGw9aS5leGVjKHJbM10pO2lmKGEmJmwhPW51bGwpe3JbM109bFsxXTtyWzRdPWxbMl07cls1XT1udWxsfXJldHVybntmaWxlOnJbM10sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpyWzJdP3JbMl0uc3BsaXQoXCIsXCIpOltdLGxpbmVOdW1iZXI6cls0XT8rcls0XTpudWxsLGNvbHVtbjpyWzVdPytyWzVdOm51bGx9fXZhciBzPS9eXFxzKig/OihbXkBdKikoPzpcXCgoLio/KVxcKSk/QCk/KFxcUy4qPyk6KFxcZCspKD86OihcXGQrKSk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZUpTQyhlKXt2YXIgcj1zLmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXJldHVybntmaWxlOnJbM10sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOityWzRdLGNvbHVtbjpyWzVdPytyWzVdOm51bGx9fXZhciBvPS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT9bXlxcXFwvXSsoPzogXFxbYXMgXFxTK1xcXSk/KSApP1xcKD8oLio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZU5vZGUoZSl7dmFyIHI9by5leGVjKGUpO2lmKCFyKXtyZXR1cm4gbnVsbH1yZXR1cm57ZmlsZTpyWzJdLG1ldGhvZE5hbWU6clsxXXx8bixhcmd1bWVudHM6W10sbGluZU51bWJlcjorclszXSxjb2x1bW46cls0XT8rcls0XTpudWxsfX1yLnBhcnNlPXBhcnNlfSkoKTttb2R1bGUuZXhwb3J0cz1lfSkoKTsiXSwibmFtZXMiOlsiX19uY2N3cGNrX3JlcXVpcmVfXyIsImFiIiwiX19kaXJuYW1lIiwiZSIsInIiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwibiIsInBhcnNlIiwic3BsaXQiLCJyZWR1Y2UiLCJwYXJzZUNocm9tZSIsInBhcnNlV2luanMiLCJwYXJzZUdlY2tvIiwicGFyc2VOb2RlIiwicGFyc2VKU0MiLCJwdXNoIiwiYSIsImwiLCJleGVjIiwidSIsImluZGV4T2YiLCJ0IiwiaSIsImZpbGUiLCJtZXRob2ROYW1lIiwiYXJndW1lbnRzIiwibGluZU51bWJlciIsImNvbHVtbiIsInMiLCJvIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/string-hash/index.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/string-hash/index.js ***!
- \******************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var e = {\n 328: (e)=>{\n function hash(e) {\n var r = 5381, _ = e.length;\n while(_){\n r = r * 33 ^ e.charCodeAt(--_);\n }\n return r >>> 0;\n }\n e.exports = hash;\n }\n };\n var r = {};\n function __nccwpck_require__(_) {\n var a = r[_];\n if (a !== undefined) {\n return a.exports;\n }\n var t = r[_] = {\n exports: {}\n };\n var i = true;\n try {\n e[_](t, t.exports, __nccwpck_require__);\n i = false;\n } finally{\n if (i) delete r[_];\n }\n return t.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var _ = __nccwpck_require__(328);\n module.exports = _;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpbmctaGFzaC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOztBQUFDO0lBQUs7SUFBYSxJQUFJQSxJQUFFO1FBQUMsS0FBSUEsQ0FBQUE7WUFBSSxTQUFTQyxLQUFLRCxDQUFDO2dCQUFFLElBQUlFLElBQUUsTUFBS0MsSUFBRUgsRUFBRUksTUFBTTtnQkFBQyxNQUFNRCxFQUFFO29CQUFDRCxJQUFFQSxJQUFFLEtBQUdGLEVBQUVLLFVBQVUsQ0FBQyxFQUFFRjtnQkFBRTtnQkFBQyxPQUFPRCxNQUFJO1lBQUM7WUFBQ0YsRUFBRU0sT0FBTyxHQUFDTDtRQUFJO0lBQUM7SUFBRSxJQUFJQyxJQUFFLENBQUM7SUFBRSxTQUFTSyxvQkFBb0JKLENBQUM7UUFBRSxJQUFJSyxJQUFFTixDQUFDLENBQUNDLEVBQUU7UUFBQyxJQUFHSyxNQUFJQyxXQUFVO1lBQUMsT0FBT0QsRUFBRUYsT0FBTztRQUFBO1FBQUMsSUFBSUksSUFBRVIsQ0FBQyxDQUFDQyxFQUFFLEdBQUM7WUFBQ0csU0FBUSxDQUFDO1FBQUM7UUFBRSxJQUFJSyxJQUFFO1FBQUssSUFBRztZQUFDWCxDQUFDLENBQUNHLEVBQUUsQ0FBQ08sR0FBRUEsRUFBRUosT0FBTyxFQUFDQztZQUFxQkksSUFBRTtRQUFLLFNBQVE7WUFBQyxJQUFHQSxHQUFFLE9BQU9ULENBQUMsQ0FBQ0MsRUFBRTtRQUFBO1FBQUMsT0FBT08sRUFBRUosT0FBTztJQUFBO0lBQUMsSUFBRyxPQUFPQyx3QkFBc0IsYUFBWUEsb0JBQW9CSyxFQUFFLEdBQUNDLFNBQVNBLEdBQUM7SUFBSSxJQUFJVixJQUFFSSxvQkFBb0I7SUFBS08sT0FBT1IsT0FBTyxHQUFDSDtBQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmluZy1oYXNoL2luZGV4LmpzPzkwOGEiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezMyODplPT57ZnVuY3Rpb24gaGFzaChlKXt2YXIgcj01MzgxLF89ZS5sZW5ndGg7d2hpbGUoXyl7cj1yKjMzXmUuY2hhckNvZGVBdCgtLV8pfXJldHVybiByPj4+MH1lLmV4cG9ydHM9aGFzaH19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oXyl7dmFyIGE9cltfXTtpZihhIT09dW5kZWZpbmVkKXtyZXR1cm4gYS5leHBvcnRzfXZhciB0PXJbX109e2V4cG9ydHM6e319O3ZhciBpPXRydWU7dHJ5e2VbX10odCx0LmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7aT1mYWxzZX1maW5hbGx5e2lmKGkpZGVsZXRlIHJbX119cmV0dXJuIHQuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXygzMjgpO21vZHVsZS5leHBvcnRzPV99KSgpOyJdLCJuYW1lcyI6WyJlIiwiaGFzaCIsInIiLCJfIiwibGVuZ3RoIiwiY2hhckNvZGVBdCIsImV4cG9ydHMiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwiYSIsInVuZGVmaW5lZCIsInQiLCJpIiwiYWIiLCJfX2Rpcm5hbWUiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/string-hash/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/strip-ansi/index.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/strip-ansi/index.js ***!
- \*****************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var e = {\n 511: (e)=>{\n e.exports = ({ onlyFirst: e = false } = {})=>{\n const r = [\n \"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\n \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"\n ].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n },\n 532: (e, r, _)=>{\n const t = _(511);\n e.exports = (e)=>typeof e === \"string\" ? e.replace(t(), \"\") : e;\n }\n };\n var r = {};\n function __nccwpck_require__(_) {\n var t = r[_];\n if (t !== undefined) {\n return t.exports;\n }\n var a = r[_] = {\n exports: {}\n };\n var n = true;\n try {\n e[_](a, a.exports, __nccwpck_require__);\n n = false;\n } finally{\n if (n) delete r[_];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var _ = __nccwpck_require__(532);\n module.exports = _;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7O0FBQUM7SUFBSztJQUFhLElBQUlBLElBQUU7UUFBQyxLQUFJQSxDQUFBQTtZQUFJQSxFQUFFQyxPQUFPLEdBQUMsQ0FBQyxFQUFDQyxXQUFVRixJQUFFLEtBQUssRUFBQyxHQUFDLENBQUMsQ0FBQztnQkFBSSxNQUFNRyxJQUFFO29CQUFDO29CQUErSDtpQkFBMkQsQ0FBQ0MsSUFBSSxDQUFDO2dCQUFLLE9BQU8sSUFBSUMsT0FBT0YsR0FBRUgsSUFBRU0sWUFBVTtZQUFJO1FBQUM7UUFBRSxLQUFJLENBQUNOLEdBQUVHLEdBQUVJO1lBQUssTUFBTUMsSUFBRUQsRUFBRTtZQUFLUCxFQUFFQyxPQUFPLEdBQUNELENBQUFBLElBQUcsT0FBT0EsTUFBSSxXQUFTQSxFQUFFUyxPQUFPLENBQUNELEtBQUksTUFBSVI7UUFBQztJQUFDO0lBQUUsSUFBSUcsSUFBRSxDQUFDO0lBQUUsU0FBU08sb0JBQW9CSCxDQUFDO1FBQUUsSUFBSUMsSUFBRUwsQ0FBQyxDQUFDSSxFQUFFO1FBQUMsSUFBR0MsTUFBSUYsV0FBVTtZQUFDLE9BQU9FLEVBQUVQLE9BQU87UUFBQTtRQUFDLElBQUlVLElBQUVSLENBQUMsQ0FBQ0ksRUFBRSxHQUFDO1lBQUNOLFNBQVEsQ0FBQztRQUFDO1FBQUUsSUFBSVcsSUFBRTtRQUFLLElBQUc7WUFBQ1osQ0FBQyxDQUFDTyxFQUFFLENBQUNJLEdBQUVBLEVBQUVWLE9BQU8sRUFBQ1M7WUFBcUJFLElBQUU7UUFBSyxTQUFRO1lBQUMsSUFBR0EsR0FBRSxPQUFPVCxDQUFDLENBQUNJLEVBQUU7UUFBQTtRQUFDLE9BQU9JLEVBQUVWLE9BQU87SUFBQTtJQUFDLElBQUcsT0FBT1Msd0JBQXNCLGFBQVlBLG9CQUFvQkcsRUFBRSxHQUFDQyxTQUFTQSxHQUFDO0lBQUksSUFBSVAsSUFBRUcsb0JBQW9CO0lBQUtLLE9BQU9kLE9BQU8sR0FBQ007QUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzPzAxNmMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezUxMTplPT57ZS5leHBvcnRzPSh7b25seUZpcnN0OmU9ZmFsc2V9PXt9KT0+e2NvbnN0IHI9W1wiW1xcXFx1MDAxQlxcXFx1MDA5Ql1bW1xcXFxdKCkjOz9dKig/Oig/Oig/Oig/OjtbLWEtekEtWlxcXFxkXFxcXC8jJi46PT8lQH5fXSspKnxbYS16QS1aXFxcXGRdKyg/OjtbLWEtekEtWlxcXFxkXFxcXC8jJi46PT8lQH5fXSopKik/XFxcXHUwMDA3KVwiLFwiKD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSlcIl0uam9pbihcInxcIik7cmV0dXJuIG5ldyBSZWdFeHAocixlP3VuZGVmaW5lZDpcImdcIil9fSw1MzI6KGUscixfKT0+e2NvbnN0IHQ9Xyg1MTEpO2UuZXhwb3J0cz1lPT50eXBlb2YgZT09PVwic3RyaW5nXCI/ZS5yZXBsYWNlKHQoKSxcIlwiKTplfX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhfKXt2YXIgdD1yW19dO2lmKHQhPT11bmRlZmluZWQpe3JldHVybiB0LmV4cG9ydHN9dmFyIGE9cltfXT17ZXhwb3J0czp7fX07dmFyIG49dHJ1ZTt0cnl7ZVtfXShhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtuPWZhbHNlfWZpbmFsbHl7aWYobilkZWxldGUgcltfXX1yZXR1cm4gYS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgXz1fX25jY3dwY2tfcmVxdWlyZV9fKDUzMik7bW9kdWxlLmV4cG9ydHM9X30pKCk7Il0sIm5hbWVzIjpbImUiLCJleHBvcnRzIiwib25seUZpcnN0IiwiciIsImpvaW4iLCJSZWdFeHAiLCJ1bmRlZmluZWQiLCJfIiwidCIsInJlcGxhY2UiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwiYSIsIm4iLCJhYiIsIl9fZGlybmFtZSIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/strip-ansi/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/build/output/log.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/esm/build/output/log.js ***!
- \************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bootstrap: () => (/* binding */ bootstrap),\n/* harmony export */ error: () => (/* binding */ error),\n/* harmony export */ event: () => (/* binding */ event),\n/* harmony export */ info: () => (/* binding */ info),\n/* harmony export */ prefixes: () => (/* binding */ prefixes),\n/* harmony export */ ready: () => (/* binding */ ready),\n/* harmony export */ trace: () => (/* binding */ trace),\n/* harmony export */ wait: () => (/* binding */ wait),\n/* harmony export */ warn: () => (/* binding */ warn),\n/* harmony export */ warnOnce: () => (/* binding */ warnOnce)\n/* harmony export */ });\n/* harmony import */ var _lib_picocolors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/picocolors */ \"(ssr)/../../node_modules/next/dist/esm/lib/picocolors.js\");\n\nconst prefixes = {\n wait: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.white)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"○\")),\n error: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.red)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"⨯\")),\n warn: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.yellow)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"⚠\")),\n ready: \"▲\",\n info: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.white)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\" \")),\n event: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.green)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"✓\")),\n trace: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.magenta)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"\\xbb\"))\n};\nconst LOGGING_METHOD = {\n log: \"log\",\n warn: \"warn\",\n error: \"error\"\n};\nfunction prefixedLog(prefixType, ...message) {\n if ((message[0] === \"\" || message[0] === undefined) && message.length === 1) {\n message.shift();\n }\n const consoleMethod = prefixType in LOGGING_METHOD ? LOGGING_METHOD[prefixType] : \"log\";\n const prefix = prefixes[prefixType];\n // If there's no message, don't print the prefix but a new line\n if (message.length === 0) {\n console[consoleMethod](\"\");\n } else {\n console[consoleMethod](\" \" + prefix, ...message);\n }\n}\nfunction bootstrap(...message) {\n console.log(\" \", ...message);\n}\nfunction wait(...message) {\n prefixedLog(\"wait\", ...message);\n}\nfunction error(...message) {\n prefixedLog(\"error\", ...message);\n}\nfunction warn(...message) {\n prefixedLog(\"warn\", ...message);\n}\nfunction ready(...message) {\n prefixedLog(\"ready\", ...message);\n}\nfunction info(...message) {\n prefixedLog(\"info\", ...message);\n}\nfunction event(...message) {\n prefixedLog(\"event\", ...message);\n}\nfunction trace(...message) {\n prefixedLog(\"trace\", ...message);\n}\nconst warnOnceMessages = new Set();\nfunction warnOnce(...message) {\n if (!warnOnceMessages.has(message[0])) {\n warnOnceMessages.add(message.join(\" \"));\n warn(...message);\n }\n} //# sourceMappingURL=log.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYnVpbGQvb3V0cHV0L2xvZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFnRjtBQUN6RSxNQUFNTSxXQUFXO0lBQ3BCQyxNQUFNRixzREFBS0EsQ0FBQ0wscURBQUlBLENBQUM7SUFDakJRLE9BQU9MLG9EQUFHQSxDQUFDSCxxREFBSUEsQ0FBQztJQUNoQlMsTUFBTUwsdURBQU1BLENBQUNKLHFEQUFJQSxDQUFDO0lBQ2xCVSxPQUFPO0lBQ1BDLE1BQU1OLHNEQUFLQSxDQUFDTCxxREFBSUEsQ0FBQztJQUNqQlksT0FBT1gsc0RBQUtBLENBQUNELHFEQUFJQSxDQUFDO0lBQ2xCYSxPQUFPWCx3REFBT0EsQ0FBQ0YscURBQUlBLENBQUM7QUFDeEIsRUFBRTtBQUNGLE1BQU1jLGlCQUFpQjtJQUNuQkMsS0FBSztJQUNMTixNQUFNO0lBQ05ELE9BQU87QUFDWDtBQUNBLFNBQVNRLFlBQVlDLFVBQVUsRUFBRSxHQUFHQyxPQUFPO0lBQ3ZDLElBQUksQ0FBQ0EsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNQSxPQUFPLENBQUMsRUFBRSxLQUFLQyxTQUFRLEtBQU1ELFFBQVFFLE1BQU0sS0FBSyxHQUFHO1FBQ3pFRixRQUFRRyxLQUFLO0lBQ2pCO0lBQ0EsTUFBTUMsZ0JBQWdCTCxjQUFjSCxpQkFBaUJBLGNBQWMsQ0FBQ0csV0FBVyxHQUFHO0lBQ2xGLE1BQU1NLFNBQVNqQixRQUFRLENBQUNXLFdBQVc7SUFDbkMsK0RBQStEO0lBQy9ELElBQUlDLFFBQVFFLE1BQU0sS0FBSyxHQUFHO1FBQ3RCSSxPQUFPLENBQUNGLGNBQWMsQ0FBQztJQUMzQixPQUFPO1FBQ0hFLE9BQU8sQ0FBQ0YsY0FBYyxDQUFDLE1BQU1DLFdBQVdMO0lBQzVDO0FBQ0o7QUFDTyxTQUFTTyxVQUFVLEdBQUdQLE9BQU87SUFDaENNLFFBQVFULEdBQUcsQ0FBQyxRQUFRRztBQUN4QjtBQUNPLFNBQVNYLEtBQUssR0FBR1csT0FBTztJQUMzQkYsWUFBWSxXQUFXRTtBQUMzQjtBQUNPLFNBQVNWLE1BQU0sR0FBR1UsT0FBTztJQUM1QkYsWUFBWSxZQUFZRTtBQUM1QjtBQUNPLFNBQVNULEtBQUssR0FBR1MsT0FBTztJQUMzQkYsWUFBWSxXQUFXRTtBQUMzQjtBQUNPLFNBQVNSLE1BQU0sR0FBR1EsT0FBTztJQUM1QkYsWUFBWSxZQUFZRTtBQUM1QjtBQUNPLFNBQVNQLEtBQUssR0FBR08sT0FBTztJQUMzQkYsWUFBWSxXQUFXRTtBQUMzQjtBQUNPLFNBQVNOLE1BQU0sR0FBR00sT0FBTztJQUM1QkYsWUFBWSxZQUFZRTtBQUM1QjtBQUNPLFNBQVNMLE1BQU0sR0FBR0ssT0FBTztJQUM1QkYsWUFBWSxZQUFZRTtBQUM1QjtBQUNBLE1BQU1RLG1CQUFtQixJQUFJQztBQUN0QixTQUFTQyxTQUFTLEdBQUdWLE9BQU87SUFDL0IsSUFBSSxDQUFDUSxpQkFBaUJHLEdBQUcsQ0FBQ1gsT0FBTyxDQUFDLEVBQUUsR0FBRztRQUNuQ1EsaUJBQWlCSSxHQUFHLENBQUNaLFFBQVFhLElBQUksQ0FBQztRQUNsQ3RCLFFBQVFTO0lBQ1o7QUFDSixFQUVBLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYnVpbGQvb3V0cHV0L2xvZy5qcz82YjdlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvbGQsIGdyZWVuLCBtYWdlbnRhLCByZWQsIHllbGxvdywgd2hpdGUgfSBmcm9tIFwiLi4vLi4vbGliL3BpY29jb2xvcnNcIjtcbmV4cG9ydCBjb25zdCBwcmVmaXhlcyA9IHtcbiAgICB3YWl0OiB3aGl0ZShib2xkKFwi4peLXCIpKSxcbiAgICBlcnJvcjogcmVkKGJvbGQoXCLiqK9cIikpLFxuICAgIHdhcm46IHllbGxvdyhib2xkKFwi4pqgXCIpKSxcbiAgICByZWFkeTogXCLilrJcIixcbiAgICBpbmZvOiB3aGl0ZShib2xkKFwiIFwiKSksXG4gICAgZXZlbnQ6IGdyZWVuKGJvbGQoXCLinJNcIikpLFxuICAgIHRyYWNlOiBtYWdlbnRhKGJvbGQoXCJcXHhiYlwiKSlcbn07XG5jb25zdCBMT0dHSU5HX01FVEhPRCA9IHtcbiAgICBsb2c6IFwibG9nXCIsXG4gICAgd2FybjogXCJ3YXJuXCIsXG4gICAgZXJyb3I6IFwiZXJyb3JcIlxufTtcbmZ1bmN0aW9uIHByZWZpeGVkTG9nKHByZWZpeFR5cGUsIC4uLm1lc3NhZ2UpIHtcbiAgICBpZiAoKG1lc3NhZ2VbMF0gPT09IFwiXCIgfHwgbWVzc2FnZVswXSA9PT0gdW5kZWZpbmVkKSAmJiBtZXNzYWdlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBtZXNzYWdlLnNoaWZ0KCk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnNvbGVNZXRob2QgPSBwcmVmaXhUeXBlIGluIExPR0dJTkdfTUVUSE9EID8gTE9HR0lOR19NRVRIT0RbcHJlZml4VHlwZV0gOiBcImxvZ1wiO1xuICAgIGNvbnN0IHByZWZpeCA9IHByZWZpeGVzW3ByZWZpeFR5cGVdO1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gbWVzc2FnZSwgZG9uJ3QgcHJpbnQgdGhlIHByZWZpeCBidXQgYSBuZXcgbGluZVxuICAgIGlmIChtZXNzYWdlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlW2NvbnNvbGVNZXRob2RdKFwiXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGVbY29uc29sZU1ldGhvZF0oXCIgXCIgKyBwcmVmaXgsIC4uLm1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXAoLi4ubWVzc2FnZSkge1xuICAgIGNvbnNvbGUubG9nKFwiIFwiLCAuLi5tZXNzYWdlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB3YWl0KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZyhcIndhaXRcIiwgLi4ubWVzc2FnZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZXJyb3IoLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKFwiZXJyb3JcIiwgLi4ubWVzc2FnZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gd2FybiguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coXCJ3YXJuXCIsIC4uLm1lc3NhZ2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWR5KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZyhcInJlYWR5XCIsIC4uLm1lc3NhZ2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGluZm8oLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKFwiaW5mb1wiLCAuLi5tZXNzYWdlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldmVudCguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coXCJldmVudFwiLCAuLi5tZXNzYWdlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZSguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coXCJ0cmFjZVwiLCAuLi5tZXNzYWdlKTtcbn1cbmNvbnN0IHdhcm5PbmNlTWVzc2FnZXMgPSBuZXcgU2V0KCk7XG5leHBvcnQgZnVuY3Rpb24gd2Fybk9uY2UoLi4ubWVzc2FnZSkge1xuICAgIGlmICghd2Fybk9uY2VNZXNzYWdlcy5oYXMobWVzc2FnZVswXSkpIHtcbiAgICAgICAgd2Fybk9uY2VNZXNzYWdlcy5hZGQobWVzc2FnZS5qb2luKFwiIFwiKSk7XG4gICAgICAgIHdhcm4oLi4ubWVzc2FnZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1sb2cuanMubWFwIl0sIm5hbWVzIjpbImJvbGQiLCJncmVlbiIsIm1hZ2VudGEiLCJyZWQiLCJ5ZWxsb3ciLCJ3aGl0ZSIsInByZWZpeGVzIiwid2FpdCIsImVycm9yIiwid2FybiIsInJlYWR5IiwiaW5mbyIsImV2ZW50IiwidHJhY2UiLCJMT0dHSU5HX01FVEhPRCIsImxvZyIsInByZWZpeGVkTG9nIiwicHJlZml4VHlwZSIsIm1lc3NhZ2UiLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJzaGlmdCIsImNvbnNvbGVNZXRob2QiLCJwcmVmaXgiLCJjb25zb2xlIiwiYm9vdHN0cmFwIiwid2Fybk9uY2VNZXNzYWdlcyIsIlNldCIsIndhcm5PbmNlIiwiaGFzIiwiYWRkIiwiam9pbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/build/output/log.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/build/webpack/alias/react-dom-server-edge.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/build/webpack/alias/react-dom-server-edge.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-eval("const ERROR_MESSAGE = \"Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo.\";\nfunction error() {\n throw new Error(ERROR_MESSAGE);\n}\nvar b;\nif (false) {} else {\n b = __webpack_require__(/*! next/dist/compiled/react-dom/cjs/react-dom-server.edge.development.js */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.development.js\");\n}\nexports.version = b.version;\nexports.renderToReadableStream = b.renderToReadableStream;\nexports.renderToNodeStream = b.renderToNodeStream;\nexports.renderToStaticNodeStream = b.renderToStaticNodeStream;\nexports.renderToString = error;\nexports.renderToStaticMarkup = error;\nif (b.resume) {\n exports.resume = b.resume;\n} //# sourceMappingURL=react-dom-server-edge.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYnVpbGQvd2VicGFjay9hbGlhcy9yZWFjdC1kb20tc2VydmVyLWVkZ2UuanMiLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsZ0JBQWdCO0FBQ3RCLFNBQVNDO0lBQ0wsTUFBTSxJQUFJQyxNQUFNRjtBQUNwQjtBQUNBLElBQUlHO0FBQ0osSUFBSUMsS0FBcUMsRUFBRSxFQUUxQyxNQUFNO0lBQ0hELElBQUlFLG1CQUFPQSxDQUFDLDZLQUF1RTtBQUN2RjtBQUNBQyxlQUFlLEdBQUdILEVBQUVJLE9BQU87QUFDM0JELDhCQUE4QixHQUFHSCxFQUFFSyxzQkFBc0I7QUFDekRGLDBCQUEwQixHQUFHSCxFQUFFTSxrQkFBa0I7QUFDakRILGdDQUFnQyxHQUFHSCxFQUFFTyx3QkFBd0I7QUFDN0RKLHNCQUFzQixHQUFHTDtBQUN6QkssNEJBQTRCLEdBQUdMO0FBQy9CLElBQUlFLEVBQUVVLE1BQU0sRUFBRTtJQUNWUCxjQUFjLEdBQUdILEVBQUVVLE1BQU07QUFDN0IsRUFFQSxpREFBaUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2J1aWxkL3dlYnBhY2svYWxpYXMvcmVhY3QtZG9tLXNlcnZlci1lZGdlLmpzPzZmZTAiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRVJST1JfTUVTU0FHRSA9IFwiSW50ZXJuYWwgRXJyb3I6IGRvIG5vdCB1c2UgbGVnYWN5IHJlYWN0LWRvbS9zZXJ2ZXIgQVBJcy4gSWYgeW91IGVuY291bnRlcmVkIHRoaXMgZXJyb3IsIHBsZWFzZSBvcGVuIGFuIGlzc3VlIG9uIHRoZSBOZXh0LmpzIHJlcG8uXCI7XG5mdW5jdGlvbiBlcnJvcigpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoRVJST1JfTUVTU0FHRSk7XG59XG52YXIgYjtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBiID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS1zZXJ2ZXIuZWRnZS5wcm9kdWN0aW9uLm1pbi5qc1wiKTtcbn0gZWxzZSB7XG4gICAgYiA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tc2VydmVyLmVkZ2UuZGV2ZWxvcG1lbnQuanNcIik7XG59XG5leHBvcnRzLnZlcnNpb24gPSBiLnZlcnNpb247XG5leHBvcnRzLnJlbmRlclRvUmVhZGFibGVTdHJlYW0gPSBiLnJlbmRlclRvUmVhZGFibGVTdHJlYW07XG5leHBvcnRzLnJlbmRlclRvTm9kZVN0cmVhbSA9IGIucmVuZGVyVG9Ob2RlU3RyZWFtO1xuZXhwb3J0cy5yZW5kZXJUb1N0YXRpY05vZGVTdHJlYW0gPSBiLnJlbmRlclRvU3RhdGljTm9kZVN0cmVhbTtcbmV4cG9ydHMucmVuZGVyVG9TdHJpbmcgPSBlcnJvcjtcbmV4cG9ydHMucmVuZGVyVG9TdGF0aWNNYXJrdXAgPSBlcnJvcjtcbmlmIChiLnJlc3VtZSkge1xuICAgIGV4cG9ydHMucmVzdW1lID0gYi5yZXN1bWU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWRvbS1zZXJ2ZXItZWRnZS5qcy5tYXAiXSwibmFtZXMiOlsiRVJST1JfTUVTU0FHRSIsImVycm9yIiwiRXJyb3IiLCJiIiwicHJvY2VzcyIsInJlcXVpcmUiLCJleHBvcnRzIiwidmVyc2lvbiIsInJlbmRlclRvUmVhZGFibGVTdHJlYW0iLCJyZW5kZXJUb05vZGVTdHJlYW0iLCJyZW5kZXJUb1N0YXRpY05vZGVTdHJlYW0iLCJyZW5kZXJUb1N0cmluZyIsInJlbmRlclRvU3RhdGljTWFya3VwIiwicmVzdW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/build/webpack/alias/react-dom-server-edge.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js":
-/*!*********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js ***!
- \*********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getRender: () => (/* binding */ getRender)\n/* harmony export */ });\n/* harmony import */ var _server_web_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../server/web-server */ \"(ssr)/../../node_modules/next/dist/esm/server/web-server.js\");\n/* harmony import */ var _server_base_http_web__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../server/base-http/web */ \"(ssr)/../../node_modules/next/dist/esm/server/base-http/web.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../shared/lib/router/utils/app-paths */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _server_web_internal_edge_wait_until__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../server/web/internal-edge-wait-until */ \"(ssr)/../../node_modules/next/dist/esm/server/web/internal-edge-wait-until.js\");\n\n\n\n\n\nfunction getRender({ dev, page, appMod, pageMod, errorMod, error500Mod, pagesType, Document, buildManifest, prerenderManifest, reactLoadableManifest, renderToHTML, clientReferenceManifest, subresourceIntegrityManifest, serverActionsManifest, serverActions, config, buildId, nextFontManifest, incrementalCacheHandler }) {\n const isAppPath = pagesType === \"app\";\n const baseLoadComponentResult = {\n dev,\n buildManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n Document,\n App: appMod == null ? void 0 : appMod.default,\n clientReferenceManifest\n };\n const server = new _server_web_server__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n dev,\n conf: config,\n minimalMode: true,\n webServerConfig: {\n page,\n pathname: isAppPath ? (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_3__.normalizeAppPath)(page) : page,\n pagesType,\n prerenderManifest,\n extendRenderOpts: {\n buildId,\n runtime: _lib_constants__WEBPACK_IMPORTED_MODULE_2__.SERVER_RUNTIME.experimentalEdge,\n supportsDynamicHTML: true,\n disableOptimizedLoading: true,\n serverActionsManifest,\n serverActions,\n nextFontManifest\n },\n renderToHTML,\n incrementalCacheHandler,\n loadComponent: async (inputPage)=>{\n if (inputPage === page) {\n return {\n ...baseLoadComponentResult,\n Component: pageMod.default,\n pageConfig: pageMod.config || {},\n getStaticProps: pageMod.getStaticProps,\n getServerSideProps: pageMod.getServerSideProps,\n getStaticPaths: pageMod.getStaticPaths,\n ComponentMod: pageMod,\n isAppPath: !!pageMod.__next_app__,\n page: inputPage,\n routeModule: pageMod.routeModule\n };\n }\n // If there is a custom 500 page, we need to handle it separately.\n if (inputPage === \"/500\" && error500Mod) {\n return {\n ...baseLoadComponentResult,\n Component: error500Mod.default,\n pageConfig: error500Mod.config || {},\n getStaticProps: error500Mod.getStaticProps,\n getServerSideProps: error500Mod.getServerSideProps,\n getStaticPaths: error500Mod.getStaticPaths,\n ComponentMod: error500Mod,\n page: inputPage,\n routeModule: error500Mod.routeModule\n };\n }\n if (inputPage === \"/_error\") {\n return {\n ...baseLoadComponentResult,\n Component: errorMod.default,\n pageConfig: errorMod.config || {},\n getStaticProps: errorMod.getStaticProps,\n getServerSideProps: errorMod.getServerSideProps,\n getStaticPaths: errorMod.getStaticPaths,\n ComponentMod: errorMod,\n page: inputPage,\n routeModule: errorMod.routeModule\n };\n }\n return null;\n }\n }\n });\n const handler = server.getRequestHandler();\n return async function render(request, event) {\n const extendedReq = new _server_base_http_web__WEBPACK_IMPORTED_MODULE_1__.WebNextRequest(request);\n const extendedRes = new _server_base_http_web__WEBPACK_IMPORTED_MODULE_1__.WebNextResponse();\n handler(extendedReq, extendedRes);\n const result = await extendedRes.toResponse();\n if (event && event.waitUntil) {\n const waitUntilPromise = (0,_server_web_internal_edge_wait_until__WEBPACK_IMPORTED_MODULE_4__.internal_getCurrentFunctionWaitUntil)();\n if (waitUntilPromise) {\n event.waitUntil(waitUntilPromise);\n }\n }\n request.fetchMetrics = extendedReq.fetchMetrics;\n return result;\n };\n} //# sourceMappingURL=render.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZWRnZS1zc3ItbG9hZGVyL3JlbmRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBc0Q7QUFDNkI7QUFDeEI7QUFDc0I7QUFDc0I7QUFDaEcsU0FBU00sVUFBVSxFQUFFQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxpQkFBaUIsRUFBRUMscUJBQXFCLEVBQUVDLFlBQVksRUFBRUMsdUJBQXVCLEVBQUVDLDRCQUE0QixFQUFFQyxxQkFBcUIsRUFBRUMsYUFBYSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCLEVBQUVDLHVCQUF1QixFQUFFO0lBQ2hVLE1BQU1DLFlBQVlkLGNBQWM7SUFDaEMsTUFBTWUsMEJBQTBCO1FBQzVCckI7UUFDQVE7UUFDQUU7UUFDQUc7UUFDQU47UUFDQWUsS0FBS3BCLFVBQVUsT0FBTyxLQUFLLElBQUlBLE9BQU9xQixPQUFPO1FBQzdDWDtJQUNKO0lBQ0EsTUFBTVksU0FBUyxJQUFJL0IsMERBQVNBLENBQUM7UUFDekJPO1FBQ0F5QixNQUFNVDtRQUNOVSxhQUFhO1FBQ2JDLGlCQUFpQjtZQUNiMUI7WUFDQTJCLFVBQVVSLFlBQVl2QixvRkFBZ0JBLENBQUNJLFFBQVFBO1lBQy9DSztZQUNBRztZQUNBb0Isa0JBQWtCO2dCQUNkWjtnQkFDQWEsU0FBU2xDLDBEQUFjQSxDQUFDbUMsZ0JBQWdCO2dCQUN4Q0MscUJBQXFCO2dCQUNyQkMseUJBQXlCO2dCQUN6Qm5CO2dCQUNBQztnQkFDQUc7WUFDSjtZQUNBUDtZQUNBUTtZQUNBZSxlQUFlLE9BQU9DO2dCQUNsQixJQUFJQSxjQUFjbEMsTUFBTTtvQkFDcEIsT0FBTzt3QkFDSCxHQUFHb0IsdUJBQXVCO3dCQUMxQmUsV0FBV2pDLFFBQVFvQixPQUFPO3dCQUMxQmMsWUFBWWxDLFFBQVFhLE1BQU0sSUFBSSxDQUFDO3dCQUMvQnNCLGdCQUFnQm5DLFFBQVFtQyxjQUFjO3dCQUN0Q0Msb0JBQW9CcEMsUUFBUW9DLGtCQUFrQjt3QkFDOUNDLGdCQUFnQnJDLFFBQVFxQyxjQUFjO3dCQUN0Q0MsY0FBY3RDO3dCQUNkaUIsV0FBVyxDQUFDLENBQUNqQixRQUFRdUMsWUFBWTt3QkFDakN6QyxNQUFNa0M7d0JBQ05RLGFBQWF4QyxRQUFRd0MsV0FBVztvQkFDcEM7Z0JBQ0o7Z0JBQ0Esa0VBQWtFO2dCQUNsRSxJQUFJUixjQUFjLFVBQVU5QixhQUFhO29CQUNyQyxPQUFPO3dCQUNILEdBQUdnQix1QkFBdUI7d0JBQzFCZSxXQUFXL0IsWUFBWWtCLE9BQU87d0JBQzlCYyxZQUFZaEMsWUFBWVcsTUFBTSxJQUFJLENBQUM7d0JBQ25Dc0IsZ0JBQWdCakMsWUFBWWlDLGNBQWM7d0JBQzFDQyxvQkFBb0JsQyxZQUFZa0Msa0JBQWtCO3dCQUNsREMsZ0JBQWdCbkMsWUFBWW1DLGNBQWM7d0JBQzFDQyxjQUFjcEM7d0JBQ2RKLE1BQU1rQzt3QkFDTlEsYUFBYXRDLFlBQVlzQyxXQUFXO29CQUN4QztnQkFDSjtnQkFDQSxJQUFJUixjQUFjLFdBQVc7b0JBQ3pCLE9BQU87d0JBQ0gsR0FBR2QsdUJBQXVCO3dCQUMxQmUsV0FBV2hDLFNBQVNtQixPQUFPO3dCQUMzQmMsWUFBWWpDLFNBQVNZLE1BQU0sSUFBSSxDQUFDO3dCQUNoQ3NCLGdCQUFnQmxDLFNBQVNrQyxjQUFjO3dCQUN2Q0Msb0JBQW9CbkMsU0FBU21DLGtCQUFrQjt3QkFDL0NDLGdCQUFnQnBDLFNBQVNvQyxjQUFjO3dCQUN2Q0MsY0FBY3JDO3dCQUNkSCxNQUFNa0M7d0JBQ05RLGFBQWF2QyxTQUFTdUMsV0FBVztvQkFDckM7Z0JBQ0o7Z0JBQ0EsT0FBTztZQUNYO1FBQ0o7SUFDSjtJQUNBLE1BQU1DLFVBQVVwQixPQUFPcUIsaUJBQWlCO0lBQ3hDLE9BQU8sZUFBZUMsT0FBT0MsT0FBTyxFQUFFQyxLQUFLO1FBQ3ZDLE1BQU1DLGNBQWMsSUFBSXZELGlFQUFjQSxDQUFDcUQ7UUFDdkMsTUFBTUcsY0FBYyxJQUFJdkQsa0VBQWVBO1FBQ3ZDaUQsUUFBUUssYUFBYUM7UUFDckIsTUFBTUMsU0FBUyxNQUFNRCxZQUFZRSxVQUFVO1FBQzNDLElBQUlKLFNBQVNBLE1BQU1LLFNBQVMsRUFBRTtZQUMxQixNQUFNQyxtQkFBbUJ4RCwwR0FBb0NBO1lBQzdELElBQUl3RCxrQkFBa0I7Z0JBQ2xCTixNQUFNSyxTQUFTLENBQUNDO1lBQ3BCO1FBQ0o7UUFDQVAsUUFBUVEsWUFBWSxHQUFHTixZQUFZTSxZQUFZO1FBQy9DLE9BQU9KO0lBQ1g7QUFDSixFQUVBLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZWRnZS1zc3ItbG9hZGVyL3JlbmRlci5qcz8yYmE4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXZWJTZXJ2ZXIgZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZlci93ZWItc2VydmVyXCI7XG5pbXBvcnQgeyBXZWJOZXh0UmVxdWVzdCwgV2ViTmV4dFJlc3BvbnNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZlci9iYXNlLWh0dHAvd2ViXCI7XG5pbXBvcnQgeyBTRVJWRVJfUlVOVElNRSB9IGZyb20gXCIuLi8uLi8uLi8uLi9saWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVBcHBQYXRoIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiO1xuaW1wb3J0IHsgaW50ZXJuYWxfZ2V0Q3VycmVudEZ1bmN0aW9uV2FpdFVudGlsIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZlci93ZWIvaW50ZXJuYWwtZWRnZS13YWl0LXVudGlsXCI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVuZGVyKHsgZGV2LCBwYWdlLCBhcHBNb2QsIHBhZ2VNb2QsIGVycm9yTW9kLCBlcnJvcjUwME1vZCwgcGFnZXNUeXBlLCBEb2N1bWVudCwgYnVpbGRNYW5pZmVzdCwgcHJlcmVuZGVyTWFuaWZlc3QsIHJlYWN0TG9hZGFibGVNYW5pZmVzdCwgcmVuZGVyVG9IVE1MLCBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCwgc3VicmVzb3VyY2VJbnRlZ3JpdHlNYW5pZmVzdCwgc2VydmVyQWN0aW9uc01hbmlmZXN0LCBzZXJ2ZXJBY3Rpb25zLCBjb25maWcsIGJ1aWxkSWQsIG5leHRGb250TWFuaWZlc3QsIGluY3JlbWVudGFsQ2FjaGVIYW5kbGVyIH0pIHtcbiAgICBjb25zdCBpc0FwcFBhdGggPSBwYWdlc1R5cGUgPT09IFwiYXBwXCI7XG4gICAgY29uc3QgYmFzZUxvYWRDb21wb25lbnRSZXN1bHQgPSB7XG4gICAgICAgIGRldixcbiAgICAgICAgYnVpbGRNYW5pZmVzdCxcbiAgICAgICAgcmVhY3RMb2FkYWJsZU1hbmlmZXN0LFxuICAgICAgICBzdWJyZXNvdXJjZUludGVncml0eU1hbmlmZXN0LFxuICAgICAgICBEb2N1bWVudCxcbiAgICAgICAgQXBwOiBhcHBNb2QgPT0gbnVsbCA/IHZvaWQgMCA6IGFwcE1vZC5kZWZhdWx0LFxuICAgICAgICBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdFxuICAgIH07XG4gICAgY29uc3Qgc2VydmVyID0gbmV3IFdlYlNlcnZlcih7XG4gICAgICAgIGRldixcbiAgICAgICAgY29uZjogY29uZmlnLFxuICAgICAgICBtaW5pbWFsTW9kZTogdHJ1ZSxcbiAgICAgICAgd2ViU2VydmVyQ29uZmlnOiB7XG4gICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgcGF0aG5hbWU6IGlzQXBwUGF0aCA/IG5vcm1hbGl6ZUFwcFBhdGgocGFnZSkgOiBwYWdlLFxuICAgICAgICAgICAgcGFnZXNUeXBlLFxuICAgICAgICAgICAgcHJlcmVuZGVyTWFuaWZlc3QsXG4gICAgICAgICAgICBleHRlbmRSZW5kZXJPcHRzOiB7XG4gICAgICAgICAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgICAgICAgICBydW50aW1lOiBTRVJWRVJfUlVOVElNRS5leHBlcmltZW50YWxFZGdlLFxuICAgICAgICAgICAgICAgIHN1cHBvcnRzRHluYW1pY0hUTUw6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmc6IHRydWUsXG4gICAgICAgICAgICAgICAgc2VydmVyQWN0aW9uc01hbmlmZXN0LFxuICAgICAgICAgICAgICAgIHNlcnZlckFjdGlvbnMsXG4gICAgICAgICAgICAgICAgbmV4dEZvbnRNYW5pZmVzdFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlbmRlclRvSFRNTCxcbiAgICAgICAgICAgIGluY3JlbWVudGFsQ2FjaGVIYW5kbGVyLFxuICAgICAgICAgICAgbG9hZENvbXBvbmVudDogYXN5bmMgKGlucHV0UGFnZSk9PntcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXRQYWdlID09PSBwYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5iYXNlTG9hZENvbXBvbmVudFJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogcGFnZU1vZC5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUNvbmZpZzogcGFnZU1vZC5jb25maWcgfHwge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRTdGF0aWNQcm9wczogcGFnZU1vZC5nZXRTdGF0aWNQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlcnZlclNpZGVQcm9wczogcGFnZU1vZC5nZXRTZXJ2ZXJTaWRlUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRTdGF0aWNQYXRoczogcGFnZU1vZC5nZXRTdGF0aWNQYXRocyxcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudE1vZDogcGFnZU1vZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQXBwUGF0aDogISFwYWdlTW9kLl9fbmV4dF9hcHBfXyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IGlucHV0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlTW9kdWxlOiBwYWdlTW9kLnJvdXRlTW9kdWxlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgY3VzdG9tIDUwMCBwYWdlLCB3ZSBuZWVkIHRvIGhhbmRsZSBpdCBzZXBhcmF0ZWx5LlxuICAgICAgICAgICAgICAgIGlmIChpbnB1dFBhZ2UgPT09IFwiLzUwMFwiICYmIGVycm9yNTAwTW9kKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5iYXNlTG9hZENvbXBvbmVudFJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogZXJyb3I1MDBNb2QuZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDb25maWc6IGVycm9yNTAwTW9kLmNvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFN0YXRpY1Byb3BzOiBlcnJvcjUwME1vZC5nZXRTdGF0aWNQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlcnZlclNpZGVQcm9wczogZXJyb3I1MDBNb2QuZ2V0U2VydmVyU2lkZVByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3RhdGljUGF0aHM6IGVycm9yNTAwTW9kLmdldFN0YXRpY1BhdGhzLFxuICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50TW9kOiBlcnJvcjUwME1vZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IGlucHV0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlTW9kdWxlOiBlcnJvcjUwME1vZC5yb3V0ZU1vZHVsZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5wdXRQYWdlID09PSBcIi9fZXJyb3JcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uYmFzZUxvYWRDb21wb25lbnRSZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnQ6IGVycm9yTW9kLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlQ29uZmlnOiBlcnJvck1vZC5jb25maWcgfHwge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRTdGF0aWNQcm9wczogZXJyb3JNb2QuZ2V0U3RhdGljUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRTZXJ2ZXJTaWRlUHJvcHM6IGVycm9yTW9kLmdldFNlcnZlclNpZGVQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFN0YXRpY1BhdGhzOiBlcnJvck1vZC5nZXRTdGF0aWNQYXRocyxcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudE1vZDogZXJyb3JNb2QsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBpbnB1dFBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZU1vZHVsZTogZXJyb3JNb2Qucm91dGVNb2R1bGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVyID0gc2VydmVyLmdldFJlcXVlc3RIYW5kbGVyKCk7XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlbmRlcihyZXF1ZXN0LCBldmVudCkge1xuICAgICAgICBjb25zdCBleHRlbmRlZFJlcSA9IG5ldyBXZWJOZXh0UmVxdWVzdChyZXF1ZXN0KTtcbiAgICAgICAgY29uc3QgZXh0ZW5kZWRSZXMgPSBuZXcgV2ViTmV4dFJlc3BvbnNlKCk7XG4gICAgICAgIGhhbmRsZXIoZXh0ZW5kZWRSZXEsIGV4dGVuZGVkUmVzKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXh0ZW5kZWRSZXMudG9SZXNwb25zZSgpO1xuICAgICAgICBpZiAoZXZlbnQgJiYgZXZlbnQud2FpdFVudGlsKSB7XG4gICAgICAgICAgICBjb25zdCB3YWl0VW50aWxQcm9taXNlID0gaW50ZXJuYWxfZ2V0Q3VycmVudEZ1bmN0aW9uV2FpdFVudGlsKCk7XG4gICAgICAgICAgICBpZiAod2FpdFVudGlsUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LndhaXRVbnRpbCh3YWl0VW50aWxQcm9taXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0LmZldGNoTWV0cmljcyA9IGV4dGVuZGVkUmVxLmZldGNoTWV0cmljcztcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZW5kZXIuanMubWFwIl0sIm5hbWVzIjpbIldlYlNlcnZlciIsIldlYk5leHRSZXF1ZXN0IiwiV2ViTmV4dFJlc3BvbnNlIiwiU0VSVkVSX1JVTlRJTUUiLCJub3JtYWxpemVBcHBQYXRoIiwiaW50ZXJuYWxfZ2V0Q3VycmVudEZ1bmN0aW9uV2FpdFVudGlsIiwiZ2V0UmVuZGVyIiwiZGV2IiwicGFnZSIsImFwcE1vZCIsInBhZ2VNb2QiLCJlcnJvck1vZCIsImVycm9yNTAwTW9kIiwicGFnZXNUeXBlIiwiRG9jdW1lbnQiLCJidWlsZE1hbmlmZXN0IiwicHJlcmVuZGVyTWFuaWZlc3QiLCJyZWFjdExvYWRhYmxlTWFuaWZlc3QiLCJyZW5kZXJUb0hUTUwiLCJjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCIsInN1YnJlc291cmNlSW50ZWdyaXR5TWFuaWZlc3QiLCJzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QiLCJzZXJ2ZXJBY3Rpb25zIiwiY29uZmlnIiwiYnVpbGRJZCIsIm5leHRGb250TWFuaWZlc3QiLCJpbmNyZW1lbnRhbENhY2hlSGFuZGxlciIsImlzQXBwUGF0aCIsImJhc2VMb2FkQ29tcG9uZW50UmVzdWx0IiwiQXBwIiwiZGVmYXVsdCIsInNlcnZlciIsImNvbmYiLCJtaW5pbWFsTW9kZSIsIndlYlNlcnZlckNvbmZpZyIsInBhdGhuYW1lIiwiZXh0ZW5kUmVuZGVyT3B0cyIsInJ1bnRpbWUiLCJleHBlcmltZW50YWxFZGdlIiwic3VwcG9ydHNEeW5hbWljSFRNTCIsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIiwibG9hZENvbXBvbmVudCIsImlucHV0UGFnZSIsIkNvbXBvbmVudCIsInBhZ2VDb25maWciLCJnZXRTdGF0aWNQcm9wcyIsImdldFNlcnZlclNpZGVQcm9wcyIsImdldFN0YXRpY1BhdGhzIiwiQ29tcG9uZW50TW9kIiwiX19uZXh0X2FwcF9fIiwicm91dGVNb2R1bGUiLCJoYW5kbGVyIiwiZ2V0UmVxdWVzdEhhbmRsZXIiLCJyZW5kZXIiLCJyZXF1ZXN0IiwiZXZlbnQiLCJleHRlbmRlZFJlcSIsImV4dGVuZGVkUmVzIiwicmVzdWx0IiwidG9SZXNwb25zZSIsIndhaXRVbnRpbCIsIndhaXRVbnRpbFByb21pc2UiLCJmZXRjaE1ldHJpY3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/add-base-path.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/add-base-path.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addBasePath: () => (/* binding */ addBasePath)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\");\n/* harmony import */ var _normalize_trailing_slash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normalize-trailing-slash */ \"(ssr)/../../node_modules/next/dist/esm/client/normalize-trailing-slash.js\");\n\n\nconst basePath = false || \"\";\nfunction addBasePath(path, required) {\n return (0,_normalize_trailing_slash__WEBPACK_IMPORTED_MODULE_1__.normalizePathTrailingSlash)( false ? 0 : (0,_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_0__.addPathPrefix)(path, basePath));\n} //# sourceMappingURL=add-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2FkZC1iYXNlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTJFO0FBQ0g7QUFDeEUsTUFBTUUsV0FBV0MsTUFBa0MsSUFBSTtBQUNoRCxTQUFTRyxZQUFZQyxJQUFJLEVBQUVDLFFBQVE7SUFDdEMsT0FBT1AscUZBQTBCQSxDQUFDRSxNQUF1REssR0FBR0QsQ0FBSUEsR0FBR1AsdUZBQWFBLENBQUNPLE1BQU1MO0FBQzNILEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvYWRkLWJhc2UtcGF0aC5qcz85NzY1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCI7XG5pbXBvcnQgeyBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiO1xuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8IFwiXCI7XG5leHBvcnQgZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aCwgcmVxdWlyZWQpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2gocHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIICYmICFyZXF1aXJlZCA/IHBhdGggOiBhZGRQYXRoUHJlZml4KHBhdGgsIGJhc2VQYXRoKSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZC1iYXNlLXBhdGguanMubWFwIl0sIm5hbWVzIjpbImFkZFBhdGhQcmVmaXgiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJhZGRCYXNlUGF0aCIsInBhdGgiLCJyZXF1aXJlZCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/add-base-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/app-call-server.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/app-call-server.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ callServer: () => (/* binding */ callServer)\n/* harmony export */ });\n/* harmony import */ var _components_app_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/app-router */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\");\n\nasync function callServer(actionId, actionArgs) {\n const actionDispatcher = (0,_components_app_router__WEBPACK_IMPORTED_MODULE_0__.getServerActionDispatcher)();\n if (!actionDispatcher) {\n throw new Error(\"Invariant: missing action dispatcher.\");\n }\n return new Promise((resolve, reject)=>{\n actionDispatcher({\n actionId,\n actionArgs,\n resolve,\n reject\n });\n });\n} //# sourceMappingURL=app-call-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2FwcC1jYWxsLXNlcnZlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvRTtBQUM3RCxlQUFlQyxXQUFXQyxRQUFRLEVBQUVDLFVBQVU7SUFDakQsTUFBTUMsbUJBQW1CSixpRkFBeUJBO0lBQ2xELElBQUksQ0FBQ0ksa0JBQWtCO1FBQ25CLE1BQU0sSUFBSUMsTUFBTTtJQUNwQjtJQUNBLE9BQU8sSUFBSUMsUUFBUSxDQUFDQyxTQUFTQztRQUN6QkosaUJBQWlCO1lBQ2JGO1lBQ0FDO1lBQ0FJO1lBQ0FDO1FBQ0o7SUFDSjtBQUNKLEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvYXBwLWNhbGwtc2VydmVyLmpzP2MxOTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U2VydmVyQWN0aW9uRGlzcGF0Y2hlciB9IGZyb20gXCIuL2NvbXBvbmVudHMvYXBwLXJvdXRlclwiO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNhbGxTZXJ2ZXIoYWN0aW9uSWQsIGFjdGlvbkFyZ3MpIHtcbiAgICBjb25zdCBhY3Rpb25EaXNwYXRjaGVyID0gZ2V0U2VydmVyQWN0aW9uRGlzcGF0Y2hlcigpO1xuICAgIGlmICghYWN0aW9uRGlzcGF0Y2hlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IG1pc3NpbmcgYWN0aW9uIGRpc3BhdGNoZXIuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgYWN0aW9uRGlzcGF0Y2hlcih7XG4gICAgICAgICAgICBhY3Rpb25JZCxcbiAgICAgICAgICAgIGFjdGlvbkFyZ3MsXG4gICAgICAgICAgICByZXNvbHZlLFxuICAgICAgICAgICAgcmVqZWN0XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtY2FsbC1zZXJ2ZXIuanMubWFwIl0sIm5hbWVzIjpbImdldFNlcnZlckFjdGlvbkRpc3BhdGNoZXIiLCJjYWxsU2VydmVyIiwiYWN0aW9uSWQiLCJhY3Rpb25BcmdzIiwiYWN0aW9uRGlzcGF0Y2hlciIsIkVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/app-call-server.js\n");
-
-/***/ }),
-
-/***/ "(shared)/../../node_modules/next/dist/esm/client/components/action-async-storage.external.js?8c5f":
-/*!*******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/action-async-storage.external.js ***!
- \*******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ actionAsyncStorage: () => (/* binding */ actionAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var _async_local_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./async-local-storage */ \"(shared)/../../node_modules/next/dist/esm/client/components/async-local-storage.js\");\n\nconst actionAsyncStorage = (0,_async_local_storage__WEBPACK_IMPORTED_MODULE_0__.createAsyncLocalStorage)(); //# sourceMappingURL=action-async-storage.external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanM/OGM1ZiIsIm1hcHBpbmdzIjoiOzs7OztBQUFnRTtBQUN6RCxNQUFNQyxxQkFBcUJELDZFQUF1QkEsR0FBRyxDQUU1RCx5REFBeUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2FjdGlvbi1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzP2EzYmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UgfSBmcm9tIFwiLi9hc3luYy1sb2NhbC1zdG9yYWdlXCI7XG5leHBvcnQgY29uc3QgYWN0aW9uQXN5bmNTdG9yYWdlID0gY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UoKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanMubWFwIl0sIm5hbWVzIjpbImNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlIiwiYWN0aW9uQXN5bmNTdG9yYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(shared)/../../node_modules/next/dist/esm/client/components/action-async-storage.external.js?8c5f\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/app-router-announcer.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/app-router-announcer.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRouterAnnouncer: () => (/* binding */ AppRouterAnnouncer)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n\n\nconst ANNOUNCER_TYPE = \"next-route-announcer\";\nconst ANNOUNCER_ID = \"__next-route-announcer__\";\nfunction getAnnouncerNode() {\n var _existingAnnouncer_shadowRoot;\n const existingAnnouncer = document.getElementsByName(ANNOUNCER_TYPE)[0];\n if (existingAnnouncer == null ? void 0 : (_existingAnnouncer_shadowRoot = existingAnnouncer.shadowRoot) == null ? void 0 : _existingAnnouncer_shadowRoot.childNodes[0]) {\n return existingAnnouncer.shadowRoot.childNodes[0];\n } else {\n const container = document.createElement(ANNOUNCER_TYPE);\n container.style.cssText = \"position:absolute\";\n const announcer = document.createElement(\"div\");\n announcer.ariaLive = \"assertive\";\n announcer.id = ANNOUNCER_ID;\n announcer.role = \"alert\";\n announcer.style.cssText = \"position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal\";\n // Use shadow DOM here to avoid any potential CSS bleed\n const shadow = container.attachShadow({\n mode: \"open\"\n });\n shadow.appendChild(announcer);\n document.body.appendChild(container);\n return announcer;\n }\n}\nfunction AppRouterAnnouncer(param) {\n let { tree } = param;\n const [portalNode, setPortalNode] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n const announcer = getAnnouncerNode();\n setPortalNode(announcer);\n return ()=>{\n const container = document.getElementsByTagName(ANNOUNCER_TYPE)[0];\n if (container == null ? void 0 : container.isConnected) {\n document.body.removeChild(container);\n }\n };\n }, []);\n const [routeAnnouncement, setRouteAnnouncement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\");\n const previousTitle = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n let currentTitle = \"\";\n if (document.title) {\n currentTitle = document.title;\n } else {\n const pageHeader = document.querySelector(\"h1\");\n if (pageHeader) {\n currentTitle = pageHeader.innerText || pageHeader.textContent || \"\";\n }\n }\n // Only announce the title change, but not for the first load because screen\n // readers do that automatically.\n if (previousTitle.current !== undefined && previousTitle.current !== currentTitle) {\n setRouteAnnouncement(currentTitle);\n }\n previousTitle.current = currentTitle;\n }, [\n tree\n ]);\n return portalNode ? /*#__PURE__*/ (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(routeAnnouncement, portalNode) : null;\n} //# sourceMappingURL=app-router-announcer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1hbm5vdW5jZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFvRDtBQUNYO0FBQ3pDLE1BQU1JLGlCQUFpQjtBQUN2QixNQUFNQyxlQUFlO0FBQ3JCLFNBQVNDO0lBQ0wsSUFBSUM7SUFDSixNQUFNQyxvQkFBb0JDLFNBQVNDLGlCQUFpQixDQUFDTixlQUFlLENBQUMsRUFBRTtJQUN2RSxJQUFJSSxxQkFBcUIsT0FBTyxLQUFLLElBQUksQ0FBQ0QsZ0NBQWdDQyxrQkFBa0JHLFVBQVUsS0FBSyxPQUFPLEtBQUssSUFBSUosOEJBQThCSyxVQUFVLENBQUMsRUFBRSxFQUFFO1FBQ3BLLE9BQU9KLGtCQUFrQkcsVUFBVSxDQUFDQyxVQUFVLENBQUMsRUFBRTtJQUNyRCxPQUFPO1FBQ0gsTUFBTUMsWUFBWUosU0FBU0ssYUFBYSxDQUFDVjtRQUN6Q1MsVUFBVUUsS0FBSyxDQUFDQyxPQUFPLEdBQUc7UUFDMUIsTUFBTUMsWUFBWVIsU0FBU0ssYUFBYSxDQUFDO1FBQ3pDRyxVQUFVQyxRQUFRLEdBQUc7UUFDckJELFVBQVVFLEVBQUUsR0FBR2Q7UUFDZlksVUFBVUcsSUFBSSxHQUFHO1FBQ2pCSCxVQUFVRixLQUFLLENBQUNDLE9BQU8sR0FBRztRQUMxQix1REFBdUQ7UUFDdkQsTUFBTUssU0FBU1IsVUFBVVMsWUFBWSxDQUFDO1lBQ2xDQyxNQUFNO1FBQ1Y7UUFDQUYsT0FBT0csV0FBVyxDQUFDUDtRQUNuQlIsU0FBU2dCLElBQUksQ0FBQ0QsV0FBVyxDQUFDWDtRQUMxQixPQUFPSTtJQUNYO0FBQ0o7QUFDTyxTQUFTUyxtQkFBbUJDLEtBQUs7SUFDcEMsSUFBSSxFQUFFQyxJQUFJLEVBQUUsR0FBR0Q7SUFDZixNQUFNLENBQUNFLFlBQVlDLGNBQWMsR0FBRzVCLCtDQUFRQSxDQUFDO0lBQzdDRixnREFBU0EsQ0FBQztRQUNOLE1BQU1pQixZQUFZWDtRQUNsQndCLGNBQWNiO1FBQ2QsT0FBTztZQUNILE1BQU1KLFlBQVlKLFNBQVNzQixvQkFBb0IsQ0FBQzNCLGVBQWUsQ0FBQyxFQUFFO1lBQ2xFLElBQUlTLGFBQWEsT0FBTyxLQUFLLElBQUlBLFVBQVVtQixXQUFXLEVBQUU7Z0JBQ3BEdkIsU0FBU2dCLElBQUksQ0FBQ1EsV0FBVyxDQUFDcEI7WUFDOUI7UUFDSjtJQUNKLEdBQUcsRUFBRTtJQUNMLE1BQU0sQ0FBQ3FCLG1CQUFtQkMscUJBQXFCLEdBQUdqQywrQ0FBUUEsQ0FBQztJQUMzRCxNQUFNa0MsZ0JBQWdCbkMsNkNBQU1BO0lBQzVCRCxnREFBU0EsQ0FBQztRQUNOLElBQUlxQyxlQUFlO1FBQ25CLElBQUk1QixTQUFTNkIsS0FBSyxFQUFFO1lBQ2hCRCxlQUFlNUIsU0FBUzZCLEtBQUs7UUFDakMsT0FBTztZQUNILE1BQU1DLGFBQWE5QixTQUFTK0IsYUFBYSxDQUFDO1lBQzFDLElBQUlELFlBQVk7Z0JBQ1pGLGVBQWVFLFdBQVdFLFNBQVMsSUFBSUYsV0FBV0csV0FBVyxJQUFJO1lBQ3JFO1FBQ0o7UUFDQSw0RUFBNEU7UUFDNUUsaUNBQWlDO1FBQ2pDLElBQUlOLGNBQWNPLE9BQU8sS0FBS0MsYUFBYVIsY0FBY08sT0FBTyxLQUFLTixjQUFjO1lBQy9FRixxQkFBcUJFO1FBQ3pCO1FBQ0FELGNBQWNPLE9BQU8sR0FBR047SUFDNUIsR0FBRztRQUNDVDtLQUNIO0lBQ0QsT0FBT0MsYUFBYSxXQUFXLEdBQUcxQix1REFBWUEsQ0FBQytCLG1CQUFtQkwsY0FBYztBQUNwRixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1hbm5vdW5jZXIuanM/NzAwNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmNvbnN0IEFOTk9VTkNFUl9UWVBFID0gXCJuZXh0LXJvdXRlLWFubm91bmNlclwiO1xuY29uc3QgQU5OT1VOQ0VSX0lEID0gXCJfX25leHQtcm91dGUtYW5ub3VuY2VyX19cIjtcbmZ1bmN0aW9uIGdldEFubm91bmNlck5vZGUoKSB7XG4gICAgdmFyIF9leGlzdGluZ0Fubm91bmNlcl9zaGFkb3dSb290O1xuICAgIGNvbnN0IGV4aXN0aW5nQW5ub3VuY2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoQU5OT1VOQ0VSX1RZUEUpWzBdO1xuICAgIGlmIChleGlzdGluZ0Fubm91bmNlciA9PSBudWxsID8gdm9pZCAwIDogKF9leGlzdGluZ0Fubm91bmNlcl9zaGFkb3dSb290ID0gZXhpc3RpbmdBbm5vdW5jZXIuc2hhZG93Um9vdCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9leGlzdGluZ0Fubm91bmNlcl9zaGFkb3dSb290LmNoaWxkTm9kZXNbMF0pIHtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nQW5ub3VuY2VyLnNoYWRvd1Jvb3QuY2hpbGROb2Rlc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KEFOTk9VTkNFUl9UWVBFKTtcbiAgICAgICAgY29udGFpbmVyLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOmFic29sdXRlXCI7XG4gICAgICAgIGNvbnN0IGFubm91bmNlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGFubm91bmNlci5hcmlhTGl2ZSA9IFwiYXNzZXJ0aXZlXCI7XG4gICAgICAgIGFubm91bmNlci5pZCA9IEFOTk9VTkNFUl9JRDtcbiAgICAgICAgYW5ub3VuY2VyLnJvbGUgPSBcImFsZXJ0XCI7XG4gICAgICAgIGFubm91bmNlci5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDt3aWR0aDoxcHg7Y2xpcDpyZWN0KDAgMCAwIDApO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbFwiO1xuICAgICAgICAvLyBVc2Ugc2hhZG93IERPTSBoZXJlIHRvIGF2b2lkIGFueSBwb3RlbnRpYWwgQ1NTIGJsZWVkXG4gICAgICAgIGNvbnN0IHNoYWRvdyA9IGNvbnRhaW5lci5hdHRhY2hTaGFkb3coe1xuICAgICAgICAgICAgbW9kZTogXCJvcGVuXCJcbiAgICAgICAgfSk7XG4gICAgICAgIHNoYWRvdy5hcHBlbmRDaGlsZChhbm5vdW5jZXIpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG4gICAgICAgIHJldHVybiBhbm5vdW5jZXI7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIEFwcFJvdXRlckFubm91bmNlcihwYXJhbSkge1xuICAgIGxldCB7IHRyZWUgfSA9IHBhcmFtO1xuICAgIGNvbnN0IFtwb3J0YWxOb2RlLCBzZXRQb3J0YWxOb2RlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBhbm5vdW5jZXIgPSBnZXRBbm5vdW5jZXJOb2RlKCk7XG4gICAgICAgIHNldFBvcnRhbE5vZGUoYW5ub3VuY2VyKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShBTk5PVU5DRVJfVFlQRSlbMF07XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyID09IG51bGwgPyB2b2lkIDAgOiBjb250YWluZXIuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IFtyb3V0ZUFubm91bmNlbWVudCwgc2V0Um91dGVBbm5vdW5jZW1lbnRdID0gdXNlU3RhdGUoXCJcIik7XG4gICAgY29uc3QgcHJldmlvdXNUaXRsZSA9IHVzZVJlZigpO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBsZXQgY3VycmVudFRpdGxlID0gXCJcIjtcbiAgICAgICAgaWYgKGRvY3VtZW50LnRpdGxlKSB7XG4gICAgICAgICAgICBjdXJyZW50VGl0bGUgPSBkb2N1bWVudC50aXRsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VIZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaDFcIik7XG4gICAgICAgICAgICBpZiAocGFnZUhlYWRlcikge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRUaXRsZSA9IHBhZ2VIZWFkZXIuaW5uZXJUZXh0IHx8IHBhZ2VIZWFkZXIudGV4dENvbnRlbnQgfHwgXCJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IGFubm91bmNlIHRoZSB0aXRsZSBjaGFuZ2UsIGJ1dCBub3QgZm9yIHRoZSBmaXJzdCBsb2FkIGJlY2F1c2Ugc2NyZWVuXG4gICAgICAgIC8vIHJlYWRlcnMgZG8gdGhhdCBhdXRvbWF0aWNhbGx5LlxuICAgICAgICBpZiAocHJldmlvdXNUaXRsZS5jdXJyZW50ICE9PSB1bmRlZmluZWQgJiYgcHJldmlvdXNUaXRsZS5jdXJyZW50ICE9PSBjdXJyZW50VGl0bGUpIHtcbiAgICAgICAgICAgIHNldFJvdXRlQW5ub3VuY2VtZW50KGN1cnJlbnRUaXRsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcHJldmlvdXNUaXRsZS5jdXJyZW50ID0gY3VycmVudFRpdGxlO1xuICAgIH0sIFtcbiAgICAgICAgdHJlZVxuICAgIF0pO1xuICAgIHJldHVybiBwb3J0YWxOb2RlID8gLyojX19QVVJFX18qLyBjcmVhdGVQb3J0YWwocm91dGVBbm5vdW5jZW1lbnQsIHBvcnRhbE5vZGUpIDogbnVsbDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXJvdXRlci1hbm5vdW5jZXIuanMubWFwIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiY3JlYXRlUG9ydGFsIiwiQU5OT1VOQ0VSX1RZUEUiLCJBTk5PVU5DRVJfSUQiLCJnZXRBbm5vdW5jZXJOb2RlIiwiX2V4aXN0aW5nQW5ub3VuY2VyX3NoYWRvd1Jvb3QiLCJleGlzdGluZ0Fubm91bmNlciIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJzaGFkb3dSb290IiwiY2hpbGROb2RlcyIsImNvbnRhaW5lciIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsImNzc1RleHQiLCJhbm5vdW5jZXIiLCJhcmlhTGl2ZSIsImlkIiwicm9sZSIsInNoYWRvdyIsImF0dGFjaFNoYWRvdyIsIm1vZGUiLCJhcHBlbmRDaGlsZCIsImJvZHkiLCJBcHBSb3V0ZXJBbm5vdW5jZXIiLCJwYXJhbSIsInRyZWUiLCJwb3J0YWxOb2RlIiwic2V0UG9ydGFsTm9kZSIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaXNDb25uZWN0ZWQiLCJyZW1vdmVDaGlsZCIsInJvdXRlQW5ub3VuY2VtZW50Iiwic2V0Um91dGVBbm5vdW5jZW1lbnQiLCJwcmV2aW91c1RpdGxlIiwiY3VycmVudFRpdGxlIiwidGl0bGUiLCJwYWdlSGVhZGVyIiwicXVlcnlTZWxlY3RvciIsImlubmVyVGV4dCIsInRleHRDb250ZW50IiwiY3VycmVudCIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/app-router-announcer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/app-router-headers.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACTION: () => (/* binding */ ACTION),\n/* harmony export */ FLIGHT_PARAMETERS: () => (/* binding */ FLIGHT_PARAMETERS),\n/* harmony export */ NEXT_DID_POSTPONE_HEADER: () => (/* binding */ NEXT_DID_POSTPONE_HEADER),\n/* harmony export */ NEXT_ROUTER_PREFETCH_HEADER: () => (/* binding */ NEXT_ROUTER_PREFETCH_HEADER),\n/* harmony export */ NEXT_ROUTER_STATE_TREE: () => (/* binding */ NEXT_ROUTER_STATE_TREE),\n/* harmony export */ NEXT_RSC_UNION_QUERY: () => (/* binding */ NEXT_RSC_UNION_QUERY),\n/* harmony export */ NEXT_URL: () => (/* binding */ NEXT_URL),\n/* harmony export */ RSC_CONTENT_TYPE_HEADER: () => (/* binding */ RSC_CONTENT_TYPE_HEADER),\n/* harmony export */ RSC_HEADER: () => (/* binding */ RSC_HEADER),\n/* harmony export */ RSC_VARY_HEADER: () => (/* binding */ RSC_VARY_HEADER)\n/* harmony export */ });\nconst RSC_HEADER = \"RSC\";\nconst ACTION = \"Next-Action\";\nconst NEXT_ROUTER_STATE_TREE = \"Next-Router-State-Tree\";\nconst NEXT_ROUTER_PREFETCH_HEADER = \"Next-Router-Prefetch\";\nconst NEXT_URL = \"Next-Url\";\nconst RSC_CONTENT_TYPE_HEADER = \"text/x-component\";\nconst RSC_VARY_HEADER = RSC_HEADER + \", \" + NEXT_ROUTER_STATE_TREE + \", \" + NEXT_ROUTER_PREFETCH_HEADER + \", \" + NEXT_URL;\nconst FLIGHT_PARAMETERS = [\n [\n RSC_HEADER\n ],\n [\n NEXT_ROUTER_STATE_TREE\n ],\n [\n NEXT_ROUTER_PREFETCH_HEADER\n ]\n];\nconst NEXT_RSC_UNION_QUERY = \"_rsc\";\nconst NEXT_DID_POSTPONE_HEADER = \"x-nextjs-postponed\"; //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxhQUFhLE1BQU07QUFDekIsTUFBTUMsU0FBUyxjQUFjO0FBQzdCLE1BQU1DLHlCQUF5Qix5QkFBeUI7QUFDeEQsTUFBTUMsOEJBQThCLHVCQUF1QjtBQUMzRCxNQUFNQyxXQUFXLFdBQVc7QUFDNUIsTUFBTUMsMEJBQTBCLG1CQUFtQjtBQUNuRCxNQUFNQyxrQkFBa0JOLGFBQWEsT0FBT0UseUJBQXlCLE9BQU9DLDhCQUE4QixPQUFPQyxTQUFTO0FBQzFILE1BQU1HLG9CQUFvQjtJQUM3QjtRQUNJUDtLQUNIO0lBQ0Q7UUFDSUU7S0FDSDtJQUNEO1FBQ0lDO0tBQ0g7Q0FDSixDQUFDO0FBQ0ssTUFBTUssdUJBQXVCLE9BQU87QUFDcEMsTUFBTUMsMkJBQTJCLHFCQUFxQixDQUU3RCw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcz9hMTcwIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSU0NfSEVBREVSID0gXCJSU0NcIjtcbmV4cG9ydCBjb25zdCBBQ1RJT04gPSBcIk5leHQtQWN0aW9uXCI7XG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRSA9IFwiTmV4dC1Sb3V0ZXItU3RhdGUtVHJlZVwiO1xuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiA9IFwiTmV4dC1Sb3V0ZXItUHJlZmV0Y2hcIjtcbmV4cG9ydCBjb25zdCBORVhUX1VSTCA9IFwiTmV4dC1VcmxcIjtcbmV4cG9ydCBjb25zdCBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiA9IFwidGV4dC94LWNvbXBvbmVudFwiO1xuZXhwb3J0IGNvbnN0IFJTQ19WQVJZX0hFQURFUiA9IFJTQ19IRUFERVIgKyBcIiwgXCIgKyBORVhUX1JPVVRFUl9TVEFURV9UUkVFICsgXCIsIFwiICsgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSICsgXCIsIFwiICsgTkVYVF9VUkw7XG5leHBvcnQgY29uc3QgRkxJR0hUX1BBUkFNRVRFUlMgPSBbXG4gICAgW1xuICAgICAgICBSU0NfSEVBREVSXG4gICAgXSxcbiAgICBbXG4gICAgICAgIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVcbiAgICBdLFxuICAgIFtcbiAgICAgICAgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXG4gICAgXVxuXTtcbmV4cG9ydCBjb25zdCBORVhUX1JTQ19VTklPTl9RVUVSWSA9IFwiX3JzY1wiO1xuZXhwb3J0IGNvbnN0IE5FWFRfRElEX1BPU1RQT05FX0hFQURFUiA9IFwieC1uZXh0anMtcG9zdHBvbmVkXCI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZXItaGVhZGVycy5qcy5tYXAiXSwibmFtZXMiOlsiUlNDX0hFQURFUiIsIkFDVElPTiIsIk5FWFRfUk9VVEVSX1NUQVRFX1RSRUUiLCJORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIiLCJORVhUX1VSTCIsIlJTQ19DT05URU5UX1RZUEVfSEVBREVSIiwiUlNDX1ZBUllfSEVBREVSIiwiRkxJR0hUX1BBUkFNRVRFUlMiLCJORVhUX1JTQ19VTklPTl9RVUVSWSIsIk5FWFRfRElEX1BPU1RQT05FX0hFQURFUiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/app-router.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createEmptyCacheNode: () => (/* binding */ createEmptyCacheNode),\n/* harmony export */ \"default\": () => (/* binding */ AppRouter),\n/* harmony export */ getServerActionDispatcher: () => (/* binding */ getServerActionDispatcher),\n/* harmony export */ urlToUrlWithoutFlightMarker: () => (/* binding */ urlToUrlWithoutFlightMarker)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\");\n/* harmony import */ var _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js\");\n/* harmony import */ var _router_reducer_create_href_from_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./router-reducer/create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n/* harmony import */ var _shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js\");\n/* harmony import */ var _use_reducer_with_devtools__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./use-reducer-with-devtools */ \"(ssr)/../../node_modules/next/dist/esm/client/components/use-reducer-with-devtools.js\");\n/* harmony import */ var _error_boundary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./error-boundary */ \"(ssr)/../../node_modules/next/dist/esm/client/components/error-boundary.js\");\n/* harmony import */ var _router_reducer_create_initial_router_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./router-reducer/create-initial-router-state */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-initial-router-state.js\");\n/* harmony import */ var _shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js\");\n/* harmony import */ var _add_base_path__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../add-base-path */ \"(ssr)/../../node_modules/next/dist/esm/client/add-base-path.js\");\n/* harmony import */ var _app_router_announcer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./app-router-announcer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-announcer.js\");\n/* harmony import */ var _redirect_boundary__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect-boundary.js\");\n/* harmony import */ var _router_reducer_reducers_find_head_in_cache__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./router-reducer/reducers/find-head-in-cache */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/find-head-in-cache.js\");\n/* harmony import */ var _infinite_promise__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./infinite-promise */ \"(ssr)/../../node_modules/next/dist/esm/client/components/infinite-promise.js\");\n/* harmony import */ var _app_router_headers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _remove_base_path__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../remove-base-path */ \"(ssr)/../../node_modules/next/dist/esm/client/remove-base-path.js\");\n/* harmony import */ var _has_base_path__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../has-base-path */ \"(ssr)/../../node_modules/next/dist/esm/client/has-base-path.js\");\n/* __next_internal_client_entry_do_not_use__ getServerActionDispatcher,urlToUrlWithoutFlightMarker,createEmptyCacheNode,default auto */ \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst isServer = \"undefined\" === \"undefined\";\n// Ensure the initialParallelRoutes are not combined because of double-rendering in the browser with Strict Mode.\nlet initialParallelRoutes = isServer ? null : new Map();\nlet globalServerActionDispatcher = null;\nfunction getServerActionDispatcher() {\n return globalServerActionDispatcher;\n}\nconst globalMutable = {};\nfunction urlToUrlWithoutFlightMarker(url) {\n const urlWithoutFlightParameters = new URL(url, location.origin);\n urlWithoutFlightParameters.searchParams.delete(_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_RSC_UNION_QUERY);\n if (false) {}\n return urlWithoutFlightParameters;\n}\nfunction isExternalURL(url) {\n return url.origin !== window.location.origin;\n}\nfunction HistoryUpdater(param) {\n let { appRouterState, sync } = param;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect)(()=>{\n const { tree, pushRef, canonicalUrl } = appRouterState;\n const historyState = {\n ...pushRef.preserveCustomHistoryState ? window.history.state : {},\n // Identifier is shortened intentionally.\n // __NA is used to identify if the history entry can be handled by the app-router.\n // __N is used to identify if the history entry can be handled by the old router.\n __NA: true,\n __PRIVATE_NEXTJS_INTERNALS_TREE: tree\n };\n if (pushRef.pendingPush && // Skip pushing an additional history entry if the canonicalUrl is the same as the current url.\n // This mirrors the browser behavior for normal navigation.\n (0,_router_reducer_create_href_from_url__WEBPACK_IMPORTED_MODULE_4__.createHrefFromUrl)(new URL(window.location.href)) !== canonicalUrl) {\n // This intentionally mutates React state, pushRef is overwritten to ensure additional push/replace calls do not trigger an additional history entry.\n pushRef.pendingPush = false;\n window.history.pushState(historyState, \"\", canonicalUrl);\n } else {\n window.history.replaceState(historyState, \"\", canonicalUrl);\n }\n sync(appRouterState);\n }, [\n appRouterState,\n sync\n ]);\n return null;\n}\nfunction createEmptyCacheNode() {\n return {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n parallelRoutes: new Map()\n };\n}\nfunction useServerActionDispatcher(dispatch) {\n const serverActionDispatcher = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((actionPayload)=>{\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n dispatch({\n ...actionPayload,\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_SERVER_ACTION\n });\n });\n }, [\n dispatch\n ]);\n globalServerActionDispatcher = serverActionDispatcher;\n}\n/**\n * Server response that only patches the cache and tree.\n */ function useChangeByServerResponse(dispatch) {\n return (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((previousTree, flightData, overrideCanonicalUrl)=>{\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n dispatch({\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_SERVER_PATCH,\n flightData,\n previousTree,\n overrideCanonicalUrl\n });\n });\n }, [\n dispatch\n ]);\n}\nfunction useNavigate(dispatch) {\n return (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((href, navigateType, shouldScroll)=>{\n const url = new URL((0,_add_base_path__WEBPACK_IMPORTED_MODULE_10__.addBasePath)(href), location.href);\n return dispatch({\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_NAVIGATE,\n url,\n isExternalUrl: isExternalURL(url),\n locationSearch: location.search,\n shouldScroll: shouldScroll != null ? shouldScroll : true,\n navigateType\n });\n }, [\n dispatch\n ]);\n}\nfunction copyNextJsInternalHistoryState(data) {\n if (data == null) data = {};\n const currentState = window.history.state;\n const __NA = currentState == null ? void 0 : currentState.__NA;\n if (__NA) {\n data.__NA = __NA;\n }\n const __PRIVATE_NEXTJS_INTERNALS_TREE = currentState == null ? void 0 : currentState.__PRIVATE_NEXTJS_INTERNALS_TREE;\n if (__PRIVATE_NEXTJS_INTERNALS_TREE) {\n data.__PRIVATE_NEXTJS_INTERNALS_TREE = __PRIVATE_NEXTJS_INTERNALS_TREE;\n }\n return data;\n}\nfunction Head(param) {\n let { headCacheNode } = param;\n // If this segment has a `prefetchHead`, it's the statically prefetched data.\n // We should use that on initial render instead of `head`. Then we'll switch\n // to `head` when the dynamic response streams in.\n const head = headCacheNode !== null ? headCacheNode.head : null;\n const prefetchHead = headCacheNode !== null ? headCacheNode.prefetchHead : null;\n // If no prefetch data is available, then we go straight to rendering `head`.\n const resolvedPrefetchRsc = prefetchHead !== null ? prefetchHead : head;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n //\n // @ts-expect-error The second argument to `useDeferredValue` is only\n // available in the experimental builds. When its disabled, it will always\n // return `head`.\n return (0,react__WEBPACK_IMPORTED_MODULE_1__.useDeferredValue)(head, resolvedPrefetchRsc);\n}\n/**\n * The global router that wraps the application components.\n */ function Router(param) {\n let { buildId, initialHead, initialTree, initialCanonicalUrl, initialSeedData, assetPrefix, missingSlots } = param;\n const initialState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_router_reducer_create_initial_router_state__WEBPACK_IMPORTED_MODULE_8__.createInitialRouterState)({\n buildId,\n initialSeedData,\n initialCanonicalUrl,\n initialTree,\n initialParallelRoutes,\n isServer,\n location: !isServer ? window.location : null,\n initialHead\n }), [\n buildId,\n initialSeedData,\n initialCanonicalUrl,\n initialTree,\n initialHead\n ]);\n const [reducerState, dispatch, sync] = (0,_use_reducer_with_devtools__WEBPACK_IMPORTED_MODULE_6__.useReducerWithReduxDevtools)(initialState);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Ensure initialParallelRoutes is cleaned up from memory once it's used.\n initialParallelRoutes = null;\n }, []);\n const { canonicalUrl } = (0,_use_reducer_with_devtools__WEBPACK_IMPORTED_MODULE_6__.useUnwrapState)(reducerState);\n // Add memoized pathname/query for useSearchParams and usePathname.\n const { searchParams, pathname } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const url = new URL(canonicalUrl, true ? \"http://n\" : 0);\n return {\n // This is turned into a readonly class in `useSearchParams`\n searchParams: url.searchParams,\n pathname: (0,_has_base_path__WEBPACK_IMPORTED_MODULE_17__.hasBasePath)(url.pathname) ? (0,_remove_base_path__WEBPACK_IMPORTED_MODULE_16__.removeBasePath)(url.pathname) : url.pathname\n };\n }, [\n canonicalUrl\n ]);\n const changeByServerResponse = useChangeByServerResponse(dispatch);\n const navigate = useNavigate(dispatch);\n useServerActionDispatcher(dispatch);\n /**\n * The app router that is exposed through `useRouter`. It's only concerned with dispatching actions to the reducer, does not hold state.\n */ const appRouter = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const routerInstance = {\n back: ()=>window.history.back(),\n forward: ()=>window.history.forward(),\n prefetch: (href, options)=>{\n // Don't prefetch for bots as they don't navigate.\n // Don't prefetch during development (improves compilation performance)\n if ((0,_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_9__.isBot)(window.navigator.userAgent) || \"development\" === \"development\") {\n return;\n }\n const url = new URL((0,_add_base_path__WEBPACK_IMPORTED_MODULE_10__.addBasePath)(href), window.location.href);\n // External urls can't be prefetched in the same way.\n if (isExternalURL(url)) {\n return;\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n var _options_kind;\n dispatch({\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_PREFETCH,\n url,\n kind: (_options_kind = options == null ? void 0 : options.kind) != null ? _options_kind : _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.PrefetchKind.FULL\n });\n });\n },\n replace: (href, options)=>{\n if (options === void 0) options = {};\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n var _options_scroll;\n navigate(href, \"replace\", (_options_scroll = options.scroll) != null ? _options_scroll : true);\n });\n },\n push: (href, options)=>{\n if (options === void 0) options = {};\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n var _options_scroll;\n navigate(href, \"push\", (_options_scroll = options.scroll) != null ? _options_scroll : true);\n });\n },\n refresh: ()=>{\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n dispatch({\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_REFRESH,\n origin: window.location.origin\n });\n });\n },\n // @ts-ignore we don't want to expose this method at all\n fastRefresh: ()=>{\n if (false) {} else {\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n dispatch({\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_FAST_REFRESH,\n origin: window.location.origin\n });\n });\n }\n }\n };\n return routerInstance;\n }, [\n dispatch,\n navigate\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Exists for debugging purposes. Don't use in application code.\n if (window.next) {\n window.next.router = appRouter;\n }\n }, [\n appRouter\n ]);\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { cache, prefetchCache, tree } = (0,_use_reducer_with_devtools__WEBPACK_IMPORTED_MODULE_6__.useUnwrapState)(reducerState);\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Add `window.nd` for debugging purposes.\n // This is not meant for use in applications as concurrent rendering will affect the cache/tree/router.\n // @ts-ignore this is for debugging\n window.nd = {\n router: appRouter,\n cache,\n prefetchCache,\n tree\n };\n }, [\n appRouter,\n cache,\n prefetchCache,\n tree\n ]);\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // If the app is restored from bfcache, it's possible that\n // pushRef.mpaNavigation is true, which would mean that any re-render of this component\n // would trigger the mpa navigation logic again from the lines below.\n // This will restore the router to the initial state in the event that the app is restored from bfcache.\n function handlePageShow(event) {\n var _window_history_state;\n if (!event.persisted || !((_window_history_state = window.history.state) == null ? void 0 : _window_history_state.__PRIVATE_NEXTJS_INTERNALS_TREE)) {\n return;\n }\n dispatch({\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_RESTORE,\n url: new URL(window.location.href),\n tree: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE\n });\n }\n window.addEventListener(\"pageshow\", handlePageShow);\n return ()=>{\n window.removeEventListener(\"pageshow\", handlePageShow);\n };\n }, [\n dispatch\n ]);\n // When mpaNavigation flag is set do a hard navigation to the new url.\n // Infinitely suspend because we don't actually want to rerender any child\n // components with the new URL and any entangled state updates shouldn't\n // commit either (eg: useTransition isPending should stay true until the page\n // unloads).\n //\n // This is a side effect in render. Don't try this at home, kids. It's\n // probably safe because we know this is a singleton component and it's never\n // in <Offscreen>. At least I hope so. (It will run twice in dev strict mode,\n // but that's... fine?)\n const { pushRef } = (0,_use_reducer_with_devtools__WEBPACK_IMPORTED_MODULE_6__.useUnwrapState)(reducerState);\n if (pushRef.mpaNavigation) {\n // if there's a re-render, we don't want to trigger another redirect if one is already in flight to the same URL\n if (globalMutable.pendingMpaPath !== canonicalUrl) {\n const location1 = window.location;\n if (pushRef.pendingPush) {\n location1.assign(canonicalUrl);\n } else {\n location1.replace(canonicalUrl);\n }\n globalMutable.pendingMpaPath = canonicalUrl;\n }\n // TODO-APP: Should we listen to navigateerror here to catch failed\n // navigations somehow? And should we call window.stop() if a SPA navigation\n // should interrupt an MPA one?\n (0,react__WEBPACK_IMPORTED_MODULE_1__.use)((0,_infinite_promise__WEBPACK_IMPORTED_MODULE_14__.createInfinitePromise)());\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const originalPushState = window.history.pushState.bind(window.history);\n const originalReplaceState = window.history.replaceState.bind(window.history);\n // Ensure the canonical URL in the Next.js Router is updated when the URL is changed so that `usePathname` and `useSearchParams` hold the pushed values.\n const applyUrlFromHistoryPushReplace = (url)=>{\n const href = window.location.href;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n dispatch({\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_RESTORE,\n url: new URL(url != null ? url : href, href),\n tree: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE\n });\n });\n };\n /**\n * Patch pushState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */ window.history.pushState = function pushState(data, _unused, url) {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if ((data == null ? void 0 : data.__NA) || (data == null ? void 0 : data._N)) {\n return originalPushState(data, _unused, url);\n }\n data = copyNextJsInternalHistoryState(data);\n if (url) {\n applyUrlFromHistoryPushReplace(url);\n }\n return originalPushState(data, _unused, url);\n };\n /**\n * Patch replaceState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */ window.history.replaceState = function replaceState(data, _unused, url) {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if ((data == null ? void 0 : data.__NA) || (data == null ? void 0 : data._N)) {\n return originalReplaceState(data, _unused, url);\n }\n data = copyNextJsInternalHistoryState(data);\n if (url) {\n applyUrlFromHistoryPushReplace(url);\n }\n return originalReplaceState(data, _unused, url);\n };\n /**\n * Handle popstate event, this is used to handle back/forward in the browser.\n * By default dispatches ACTION_RESTORE, however if the history entry was not pushed/replaced by app-router it will reload the page.\n * That case can happen when the old router injected the history entry.\n */ const onPopState = (param)=>{\n let { state } = param;\n if (!state) {\n // TODO-APP: this case only happens when pushState/replaceState was called outside of Next.js. It should probably reload the page in this case.\n return;\n }\n // This case happens when the history entry was pushed by the `pages` router.\n if (!state.__NA) {\n window.location.reload();\n return;\n }\n // @ts-ignore useTransition exists\n // TODO-APP: Ideally the back button should not use startTransition as it should apply the updates synchronously\n // Without startTransition works if the cache is there for this path\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n dispatch({\n type: _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.ACTION_RESTORE,\n url: new URL(window.location.href),\n tree: state.__PRIVATE_NEXTJS_INTERNALS_TREE\n });\n });\n };\n // Register popstate event to call onPopstate.\n window.addEventListener(\"popstate\", onPopState);\n return ()=>{\n window.history.pushState = originalPushState;\n window.history.replaceState = originalReplaceState;\n window.removeEventListener(\"popstate\", onPopState);\n };\n }, [\n dispatch\n ]);\n const { cache, tree, nextUrl, focusAndScrollRef } = (0,_use_reducer_with_devtools__WEBPACK_IMPORTED_MODULE_6__.useUnwrapState)(reducerState);\n const matchingHead = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return (0,_router_reducer_reducers_find_head_in_cache__WEBPACK_IMPORTED_MODULE_13__.findHeadInCache)(cache, tree[1]);\n }, [\n cache,\n tree\n ]);\n let head;\n if (matchingHead !== null) {\n // The head is wrapped in an extra component so we can use\n // `useDeferredValue` to swap between the prefetched and final versions of\n // the head. (This is what LayoutRouter does for segment data, too.)\n //\n // The `key` is used to remount the component whenever the head moves to\n // a different segment.\n const [headCacheNode, headKey] = matchingHead;\n head = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Head, {\n headCacheNode: headCacheNode\n }, headKey);\n } else {\n head = null;\n }\n let content = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_redirect_boundary__WEBPACK_IMPORTED_MODULE_12__.RedirectBoundary, {\n children: [\n head,\n cache.rsc,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_app_router_announcer__WEBPACK_IMPORTED_MODULE_11__.AppRouterAnnouncer, {\n tree: tree\n })\n ]\n });\n if (true) {\n if (false) {}\n const HotReloader = (__webpack_require__(/*! ./react-dev-overlay/hot-reloader-client */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/hot-reloader-client.js\")[\"default\"]);\n content = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(HotReloader, {\n assetPrefix: assetPrefix,\n children: content\n });\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(HistoryUpdater, {\n appRouterState: (0,_use_reducer_with_devtools__WEBPACK_IMPORTED_MODULE_6__.useUnwrapState)(reducerState),\n sync: sync\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_5__.PathnameContext.Provider, {\n value: pathname,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_5__.SearchParamsContext.Provider, {\n value: searchParams,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.GlobalLayoutRouterContext.Provider, {\n value: {\n buildId,\n changeByServerResponse,\n tree,\n focusAndScrollRef,\n nextUrl\n },\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.AppRouterContext.Provider, {\n value: appRouter,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.LayoutRouterContext.Provider, {\n value: {\n childNodes: cache.parallelRoutes,\n tree,\n // Root node always has `url`\n // Provided in AppTreeContext to ensure it can be overwritten in layout-router\n url: canonicalUrl\n },\n children: content\n })\n })\n })\n })\n })\n ]\n });\n}\nfunction AppRouter(props) {\n const { globalErrorComponent, ...rest } = props;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_error_boundary__WEBPACK_IMPORTED_MODULE_7__.ErrorBoundary, {\n errorComponent: globalErrorComponent,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Router, {\n ...rest\n })\n });\n} //# sourceMappingURL=app-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt3SUFFc0Y7QUFDcUM7QUFDK0I7QUFDNkM7QUFDN0g7QUFDa0M7QUFDbEI7QUFDekM7QUFDdUM7QUFDM0I7QUFDZDtBQUNhO0FBQ0w7QUFDd0I7QUFDcEI7QUFDQztBQUNQO0FBQ047QUFDL0MsTUFBTTBDLFdBQVcsZ0JBQWtCO0FBQ25DLGlIQUFpSDtBQUNqSCxJQUFJQyx3QkFBd0JELFdBQVcsT0FBTyxJQUFJRTtBQUNsRCxJQUFJQywrQkFBK0I7QUFDNUIsU0FBU0M7SUFDWixPQUFPRDtBQUNYO0FBQ0EsTUFBTUUsZ0JBQWdCLENBQUM7QUFDaEIsU0FBU0MsNEJBQTRCQyxHQUFHO0lBQzNDLE1BQU1DLDZCQUE2QixJQUFJQyxJQUFJRixLQUFLRyxTQUFTQyxNQUFNO0lBQy9ESCwyQkFBMkJJLFlBQVksQ0FBQ0MsTUFBTSxDQUFDaEIsc0VBQW9CQTtJQUNuRSxJQUFJaUIsS0FBcUMsRUFBRSxFQU8xQztJQUNELE9BQU9OO0FBQ1g7QUFDQSxTQUFTYSxjQUFjZCxHQUFHO0lBQ3RCLE9BQU9BLElBQUlJLE1BQU0sS0FBS1csT0FBT1osUUFBUSxDQUFDQyxNQUFNO0FBQ2hEO0FBQ0EsU0FBU1ksZUFBZUMsS0FBSztJQUN6QixJQUFJLEVBQUVDLGNBQWMsRUFBRUMsSUFBSSxFQUFFLEdBQUdGO0lBQy9CdEQseURBQWtCQSxDQUFDO1FBQ2YsTUFBTSxFQUFFeUQsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFlBQVksRUFBRSxHQUFHSjtRQUN4QyxNQUFNSyxlQUFlO1lBQ2pCLEdBQUdGLFFBQVFHLDBCQUEwQixHQUFHVCxPQUFPVSxPQUFPLENBQUNDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDakUseUNBQXlDO1lBQ3pDLGtGQUFrRjtZQUNsRixpRkFBaUY7WUFDakZDLE1BQU07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QUFVLFdBQVcsR0FBR3ZLLHNEQUFJQSxDQUFDZSxvR0FBeUJBLENBQUMySixRQUFRLEVBQUU7d0JBQzdEQyxPQUFPOzRCQUNIN0Q7NEJBQ0FTOzRCQUNBbkQ7NEJBQ0ErRjs0QkFDQUQ7d0JBQ0o7d0JBQ0FLLFVBQVUsV0FBVyxHQUFHdkssc0RBQUlBLENBQUNhLDJGQUFnQkEsQ0FBQzZKLFFBQVEsRUFBRTs0QkFDcERDLE9BQU9sRDs0QkFDUDhDLFVBQVUsV0FBVyxHQUFHdkssc0RBQUlBLENBQUNjLDhGQUFtQkEsQ0FBQzRKLFFBQVEsRUFBRTtnQ0FDdkRDLE9BQU87b0NBQ0hHLFlBQVlqQyxNQUFNeEQsY0FBYztvQ0FDaENqQjtvQ0FDQSw2QkFBNkI7b0NBQzdCLDhFQUE4RTtvQ0FDOUVwQixLQUFLc0I7Z0NBQ1Q7Z0NBQ0FpRyxVQUFVRDs0QkFDZDt3QkFDSjtvQkFDSjtnQkFDSjtZQUNKO1NBQ0g7SUFDTDtBQUNKO0FBQ2UsU0FBU1MsVUFBVUMsS0FBSztJQUNuQyxNQUFNLEVBQUVDLG9CQUFvQixFQUFFLEdBQUdDLE1BQU0sR0FBR0Y7SUFDMUMsT0FBTyxXQUFXLEdBQUdoTCxzREFBSUEsQ0FBQzhCLDBEQUFhQSxFQUFFO1FBQ3JDcUosZ0JBQWdCRjtRQUNoQlYsVUFBVSxXQUFXLEdBQUd2SyxzREFBSUEsQ0FBQzZHLFFBQVE7WUFDakMsR0FBR3FFLElBQUk7UUFDWDtJQUNKO0FBQ0osRUFFQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIuanM/ZDE2MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZSwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VDYWxsYmFjaywgc3RhcnRUcmFuc2l0aW9uLCB1c2VJbnNlcnRpb25FZmZlY3QsIHVzZURlZmVycmVkVmFsdWUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEFwcFJvdXRlckNvbnRleHQsIExheW91dFJvdXRlckNvbnRleHQsIEdsb2JhbExheW91dFJvdXRlckNvbnRleHQsIE1pc3NpbmdTbG90Q29udGV4dCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiO1xuaW1wb3J0IHsgQUNUSU9OX0ZBU1RfUkVGUkVTSCwgQUNUSU9OX05BVklHQVRFLCBBQ1RJT05fUFJFRkVUQ0gsIEFDVElPTl9SRUZSRVNILCBBQ1RJT05fUkVTVE9SRSwgQUNUSU9OX1NFUlZFUl9BQ1RJT04sIEFDVElPTl9TRVJWRVJfUEFUQ0gsIFByZWZldGNoS2luZCB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1ocmVmLWZyb20tdXJsXCI7XG5pbXBvcnQgeyBTZWFyY2hQYXJhbXNDb250ZXh0LCBQYXRobmFtZUNvbnRleHQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlUmVkdWNlcldpdGhSZWR1eERldnRvb2xzLCB1c2VVbndyYXBTdGF0ZSB9IGZyb20gXCIuL3VzZS1yZWR1Y2VyLXdpdGgtZGV2dG9vbHNcIjtcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9lcnJvci1ib3VuZGFyeVwiO1xuaW1wb3J0IHsgY3JlYXRlSW5pdGlhbFJvdXRlclN0YXRlIH0gZnJvbSBcIi4vcm91dGVyLXJlZHVjZXIvY3JlYXRlLWluaXRpYWwtcm91dGVyLXN0YXRlXCI7XG5pbXBvcnQgeyBpc0JvdCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3RcIjtcbmltcG9ydCB7IGFkZEJhc2VQYXRoIH0gZnJvbSBcIi4uL2FkZC1iYXNlLXBhdGhcIjtcbmltcG9ydCB7IEFwcFJvdXRlckFubm91bmNlciB9IGZyb20gXCIuL2FwcC1yb3V0ZXItYW5ub3VuY2VyXCI7XG5pbXBvcnQgeyBSZWRpcmVjdEJvdW5kYXJ5IH0gZnJvbSBcIi4vcmVkaXJlY3QtYm91bmRhcnlcIjtcbmltcG9ydCB7IGZpbmRIZWFkSW5DYWNoZSB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2ZpbmQtaGVhZC1pbi1jYWNoZVwiO1xuaW1wb3J0IHsgY3JlYXRlSW5maW5pdGVQcm9taXNlIH0gZnJvbSBcIi4vaW5maW5pdGUtcHJvbWlzZVwiO1xuaW1wb3J0IHsgTkVYVF9SU0NfVU5JT05fUVVFUlkgfSBmcm9tIFwiLi9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbmltcG9ydCB7IHJlbW92ZUJhc2VQYXRoIH0gZnJvbSBcIi4uL3JlbW92ZS1iYXNlLXBhdGhcIjtcbmltcG9ydCB7IGhhc0Jhc2VQYXRoIH0gZnJvbSBcIi4uL2hhcy1iYXNlLXBhdGhcIjtcbmNvbnN0IGlzU2VydmVyID0gdHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIjtcbi8vIEVuc3VyZSB0aGUgaW5pdGlhbFBhcmFsbGVsUm91dGVzIGFyZSBub3QgY29tYmluZWQgYmVjYXVzZSBvZiBkb3VibGUtcmVuZGVyaW5nIGluIHRoZSBicm93c2VyIHdpdGggU3RyaWN0IE1vZGUuXG5sZXQgaW5pdGlhbFBhcmFsbGVsUm91dGVzID0gaXNTZXJ2ZXIgPyBudWxsIDogbmV3IE1hcCgpO1xubGV0IGdsb2JhbFNlcnZlckFjdGlvbkRpc3BhdGNoZXIgPSBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlcnZlckFjdGlvbkRpc3BhdGNoZXIoKSB7XG4gICAgcmV0dXJuIGdsb2JhbFNlcnZlckFjdGlvbkRpc3BhdGNoZXI7XG59XG5jb25zdCBnbG9iYWxNdXRhYmxlID0ge307XG5leHBvcnQgZnVuY3Rpb24gdXJsVG9VcmxXaXRob3V0RmxpZ2h0TWFya2VyKHVybCkge1xuICAgIGNvbnN0IHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uLm9yaWdpbik7XG4gICAgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMuc2VhcmNoUGFyYW1zLmRlbGV0ZShORVhUX1JTQ19VTklPTl9RVUVSWSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NPTkZJR19PVVRQVVQgPT09IFwiZXhwb3J0XCIgJiYgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMucGF0aG5hbWUuZW5kc1dpdGgoXCIudHh0XCIpKSB7XG4gICAgICAgICAgICBjb25zdCB7IHBhdGhuYW1lIH0gPSB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycztcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHBhdGhuYW1lLmVuZHNXaXRoKFwiL2luZGV4LnR4dFwiKSA/IDEwIDogNDtcbiAgICAgICAgICAgIC8vIFNsaWNlIG9mZiBgL2luZGV4LnR4dGAgb3IgYC50eHRgIGZyb20gdGhlIGVuZCBvZiB0aGUgcGF0aG5hbWVcbiAgICAgICAgICAgIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzLnBhdGhuYW1lID0gcGF0aG5hbWUuc2xpY2UoMCwgLWxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gaXNFeHRlcm5hbFVSTCh1cmwpIHtcbiAgICByZXR1cm4gdXJsLm9yaWdpbiAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbn1cbmZ1bmN0aW9uIEhpc3RvcnlVcGRhdGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgYXBwUm91dGVyU3RhdGUsIHN5bmMgfSA9IHBhcmFtO1xuICAgIHVzZUluc2VydGlvbkVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCB7IHRyZWUsIHB1c2hSZWYsIGNhbm9uaWNhbFVybCB9ID0gYXBwUm91dGVyU3RhdGU7XG4gICAgICAgIGNvbnN0IGhpc3RvcnlTdGF0ZSA9IHtcbiAgICAgICAgICAgIC4uLnB1c2hSZWYucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUgPyB3aW5kb3cuaGlzdG9yeS5zdGF0ZSA6IHt9LFxuICAgICAgICAgICAgLy8gSWRlbnRpZmllciBpcyBzaG9ydGVuZWQgaW50ZW50aW9uYWxseS5cbiAgICAgICAgICAgIC8vIF9fTkEgaXMgdXNlZCB0byBpZGVudGlmeSBpZiB0aGUgaGlzdG9yeSBlbnRyeSBjYW4gYmUgaGFuZGxlZCBieSB0aGUgYXBwLXJvdXRlci5cbiAgICAgICAgICAgIC8vIF9fTiBpcyB1c2VkIHRvIGlkZW50aWZ5IGlmIHRoZSBoaXN0b3J5IGVudHJ5IGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBvbGQgcm91dGVyLlxuICAgICAgICAgICAgX19OQTogdHJ1ZSxcbiAgICAgICAgICAgIF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU6IHRyZWVcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHB1c2hSZWYucGVuZGluZ1B1c2ggJiYgLy8gU2tpcCBwdXNoaW5nIGFuIGFkZGl0aW9uYWwgaGlzdG9yeSBlbnRyeSBpZiB0aGUgY2Fub25pY2FsVXJsIGlzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHVybC5cbiAgICAgICAgLy8gVGhpcyBtaXJyb3JzIHRoZSBicm93c2VyIGJlaGF2aW9yIGZvciBub3JtYWwgbmF2aWdhdGlvbi5cbiAgICAgICAgY3JlYXRlSHJlZkZyb21VcmwobmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikpICE9PSBjYW5vbmljYWxVcmwpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaW50ZW50aW9uYWxseSBtdXRhdGVzIFJlYWN0IHN0YXRlLCBwdXNoUmVmIGlzIG92ZXJ3cml0dGVuIHRvIGVuc3VyZSBhZGRpdGlvbmFsIHB1c2gvcmVwbGFjZSBjYWxscyBkbyBub3QgdHJpZ2dlciBhbiBhZGRpdGlvbmFsIGhpc3RvcnkgZW50cnkuXG4gICAgICAgICAgICBwdXNoUmVmLnBlbmRpbmdQdXNoID0gZmFsc2U7XG4gICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoaGlzdG9yeVN0YXRlLCBcIlwiLCBjYW5vbmljYWxVcmwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3RvcnlTdGF0ZSwgXCJcIiwgY2Fub25pY2FsVXJsKTtcbiAgICAgICAgfVxuICAgICAgICBzeW5jKGFwcFJvdXRlclN0YXRlKTtcbiAgICB9LCBbXG4gICAgICAgIGFwcFJvdXRlclN0YXRlLFxuICAgICAgICBzeW5jXG4gICAgXSk7XG4gICAgcmV0dXJuIG51bGw7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIHJzYzogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKClcbiAgICB9O1xufVxuZnVuY3Rpb24gdXNlU2VydmVyQWN0aW9uRGlzcGF0Y2hlcihkaXNwYXRjaCkge1xuICAgIGNvbnN0IHNlcnZlckFjdGlvbkRpc3BhdGNoZXIgPSB1c2VDYWxsYmFjaygoYWN0aW9uUGF5bG9hZCk9PntcbiAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpPT57XG4gICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgLi4uYWN0aW9uUGF5bG9hZCxcbiAgICAgICAgICAgICAgICB0eXBlOiBBQ1RJT05fU0VSVkVSX0FDVElPTlxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgICAgZGlzcGF0Y2hcbiAgICBdKTtcbiAgICBnbG9iYWxTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyID0gc2VydmVyQWN0aW9uRGlzcGF0Y2hlcjtcbn1cbi8qKlxuICogU2VydmVyIHJlc3BvbnNlIHRoYXQgb25seSBwYXRjaGVzIHRoZSBjYWNoZSBhbmQgdHJlZS5cbiAqLyBmdW5jdGlvbiB1c2VDaGFuZ2VCeVNlcnZlclJlc3BvbnNlKGRpc3BhdGNoKSB7XG4gICAgcmV0dXJuIHVzZUNhbGxiYWNrKChwcmV2aW91c1RyZWUsIGZsaWdodERhdGEsIG92ZXJyaWRlQ2Fub25pY2FsVXJsKT0+e1xuICAgICAgICBzdGFydFRyYW5zaXRpb24oKCk9PntcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBBQ1RJT05fU0VSVkVSX1BBVENILFxuICAgICAgICAgICAgICAgIGZsaWdodERhdGEsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNUcmVlLFxuICAgICAgICAgICAgICAgIG92ZXJyaWRlQ2Fub25pY2FsVXJsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBkaXNwYXRjaFxuICAgIF0pO1xufVxuZnVuY3Rpb24gdXNlTmF2aWdhdGUoZGlzcGF0Y2gpIHtcbiAgICByZXR1cm4gdXNlQ2FsbGJhY2soKGhyZWYsIG5hdmlnYXRlVHlwZSwgc2hvdWxkU2Nyb2xsKT0+e1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGFkZEJhc2VQYXRoKGhyZWYpLCBsb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgcmV0dXJuIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6IEFDVElPTl9OQVZJR0FURSxcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGlzRXh0ZXJuYWxVcmw6IGlzRXh0ZXJuYWxVUkwodXJsKSxcbiAgICAgICAgICAgIGxvY2F0aW9uU2VhcmNoOiBsb2NhdGlvbi5zZWFyY2gsXG4gICAgICAgICAgICBzaG91bGRTY3JvbGw6IHNob3VsZFNjcm9sbCAhPSBudWxsID8gc2hvdWxkU2Nyb2xsIDogdHJ1ZSxcbiAgICAgICAgICAgIG5hdmlnYXRlVHlwZVxuICAgICAgICB9KTtcbiAgICB9LCBbXG4gICAgICAgIGRpc3BhdGNoXG4gICAgXSk7XG59XG5mdW5jdGlvbiBjb3B5TmV4dEpzSW50ZXJuYWxIaXN0b3J5U3RhdGUoZGF0YSkge1xuICAgIGlmIChkYXRhID09IG51bGwpIGRhdGEgPSB7fTtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5zdGF0ZTtcbiAgICBjb25zdCBfX05BID0gY3VycmVudFN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBjdXJyZW50U3RhdGUuX19OQTtcbiAgICBpZiAoX19OQSkge1xuICAgICAgICBkYXRhLl9fTkEgPSBfX05BO1xuICAgIH1cbiAgICBjb25zdCBfX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFID0gY3VycmVudFN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBjdXJyZW50U3RhdGUuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRTtcbiAgICBpZiAoX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSkge1xuICAgICAgICBkYXRhLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUUgPSBfX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbn1cbmZ1bmN0aW9uIEhlYWQocGFyYW0pIHtcbiAgICBsZXQgeyBoZWFkQ2FjaGVOb2RlIH0gPSBwYXJhbTtcbiAgICAvLyBJZiB0aGlzIHNlZ21lbnQgaGFzIGEgYHByZWZldGNoSGVhZGAsIGl0J3MgdGhlIHN0YXRpY2FsbHkgcHJlZmV0Y2hlZCBkYXRhLlxuICAgIC8vIFdlIHNob3VsZCB1c2UgdGhhdCBvbiBpbml0aWFsIHJlbmRlciBpbnN0ZWFkIG9mIGBoZWFkYC4gVGhlbiB3ZSdsbCBzd2l0Y2hcbiAgICAvLyB0byBgaGVhZGAgd2hlbiB0aGUgZHluYW1pYyByZXNwb25zZSBzdHJlYW1zIGluLlxuICAgIGNvbnN0IGhlYWQgPSBoZWFkQ2FjaGVOb2RlICE9PSBudWxsID8gaGVhZENhY2hlTm9kZS5oZWFkIDogbnVsbDtcbiAgICBjb25zdCBwcmVmZXRjaEhlYWQgPSBoZWFkQ2FjaGVOb2RlICE9PSBudWxsID8gaGVhZENhY2hlTm9kZS5wcmVmZXRjaEhlYWQgOiBudWxsO1xuICAgIC8vIElmIG5vIHByZWZldGNoIGRhdGEgaXMgYXZhaWxhYmxlLCB0aGVuIHdlIGdvIHN0cmFpZ2h0IHRvIHJlbmRlcmluZyBgaGVhZGAuXG4gICAgY29uc3QgcmVzb2x2ZWRQcmVmZXRjaFJzYyA9IHByZWZldGNoSGVhZCAhPT0gbnVsbCA/IHByZWZldGNoSGVhZCA6IGhlYWQ7XG4gICAgLy8gV2UgdXNlIGB1c2VEZWZlcnJlZFZhbHVlYCB0byBoYW5kbGUgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHByZWZldGNoZWQgYW5kXG4gICAgLy8gZmluYWwgdmFsdWVzLiBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIHJldHVybmVkIG9uIGluaXRpYWwgcmVuZGVyLCB0aGVuIGl0XG4gICAgLy8gcmUtcmVuZGVycyB3aXRoIHRoZSBmaXJzdCBhcmd1bWVudC5cbiAgICAvL1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVGhlIHNlY29uZCBhcmd1bWVudCB0byBgdXNlRGVmZXJyZWRWYWx1ZWAgaXMgb25seVxuICAgIC8vIGF2YWlsYWJsZSBpbiB0aGUgZXhwZXJpbWVudGFsIGJ1aWxkcy4gV2hlbiBpdHMgZGlzYWJsZWQsIGl0IHdpbGwgYWx3YXlzXG4gICAgLy8gcmV0dXJuIGBoZWFkYC5cbiAgICByZXR1cm4gdXNlRGVmZXJyZWRWYWx1ZShoZWFkLCByZXNvbHZlZFByZWZldGNoUnNjKTtcbn1cbi8qKlxuICogVGhlIGdsb2JhbCByb3V0ZXIgdGhhdCB3cmFwcyB0aGUgYXBwbGljYXRpb24gY29tcG9uZW50cy5cbiAqLyBmdW5jdGlvbiBSb3V0ZXIocGFyYW0pIHtcbiAgICBsZXQgeyBidWlsZElkLCBpbml0aWFsSGVhZCwgaW5pdGlhbFRyZWUsIGluaXRpYWxDYW5vbmljYWxVcmwsIGluaXRpYWxTZWVkRGF0YSwgYXNzZXRQcmVmaXgsIG1pc3NpbmdTbG90cyB9ID0gcGFyYW07XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0gdXNlTWVtbygoKT0+Y3JlYXRlSW5pdGlhbFJvdXRlclN0YXRlKHtcbiAgICAgICAgICAgIGJ1aWxkSWQsXG4gICAgICAgICAgICBpbml0aWFsU2VlZERhdGEsXG4gICAgICAgICAgICBpbml0aWFsQ2Fub25pY2FsVXJsLFxuICAgICAgICAgICAgaW5pdGlhbFRyZWUsXG4gICAgICAgICAgICBpbml0aWFsUGFyYWxsZWxSb3V0ZXMsXG4gICAgICAgICAgICBpc1NlcnZlcixcbiAgICAgICAgICAgIGxvY2F0aW9uOiAhaXNTZXJ2ZXIgPyB3aW5kb3cubG9jYXRpb24gOiBudWxsLFxuICAgICAgICAgICAgaW5pdGlhbEhlYWRcbiAgICAgICAgfSksIFtcbiAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgaW5pdGlhbFNlZWREYXRhLFxuICAgICAgICBpbml0aWFsQ2Fub25pY2FsVXJsLFxuICAgICAgICBpbml0aWFsVHJlZSxcbiAgICAgICAgaW5pdGlhbEhlYWRcbiAgICBdKTtcbiAgICBjb25zdCBbcmVkdWNlclN0YXRlLCBkaXNwYXRjaCwgc3luY10gPSB1c2VSZWR1Y2VyV2l0aFJlZHV4RGV2dG9vbHMoaW5pdGlhbFN0YXRlKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgLy8gRW5zdXJlIGluaXRpYWxQYXJhbGxlbFJvdXRlcyBpcyBjbGVhbmVkIHVwIGZyb20gbWVtb3J5IG9uY2UgaXQncyB1c2VkLlxuICAgICAgICBpbml0aWFsUGFyYWxsZWxSb3V0ZXMgPSBudWxsO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCB7IGNhbm9uaWNhbFVybCB9ID0gdXNlVW53cmFwU3RhdGUocmVkdWNlclN0YXRlKTtcbiAgICAvLyBBZGQgbWVtb2l6ZWQgcGF0aG5hbWUvcXVlcnkgZm9yIHVzZVNlYXJjaFBhcmFtcyBhbmQgdXNlUGF0aG5hbWUuXG4gICAgY29uc3QgeyBzZWFyY2hQYXJhbXMsIHBhdGhuYW1lIH0gPSB1c2VNZW1vKCgpPT57XG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoY2Fub25pY2FsVXJsLCB0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiID8gXCJodHRwOi8vblwiIDogd2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyB0dXJuZWQgaW50byBhIHJlYWRvbmx5IGNsYXNzIGluIGB1c2VTZWFyY2hQYXJhbXNgXG4gICAgICAgICAgICBzZWFyY2hQYXJhbXM6IHVybC5zZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICBwYXRobmFtZTogaGFzQmFzZVBhdGgodXJsLnBhdGhuYW1lKSA/IHJlbW92ZUJhc2VQYXRoKHVybC5wYXRobmFtZSkgOiB1cmwucGF0aG5hbWVcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGNhbm9uaWNhbFVybFxuICAgIF0pO1xuICAgIGNvbnN0IGNoYW5nZUJ5U2VydmVyUmVzcG9uc2UgPSB1c2VDaGFuZ2VCeVNlcnZlclJlc3BvbnNlKGRpc3BhdGNoKTtcbiAgICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKGRpc3BhdGNoKTtcbiAgICB1c2VTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyKGRpc3BhdGNoKTtcbiAgICAvKipcbiAgICogVGhlIGFwcCByb3V0ZXIgdGhhdCBpcyBleHBvc2VkIHRocm91Z2ggYHVzZVJvdXRlcmAuIEl0J3Mgb25seSBjb25jZXJuZWQgd2l0aCBkaXNwYXRjaGluZyBhY3Rpb25zIHRvIHRoZSByZWR1Y2VyLCBkb2VzIG5vdCBob2xkIHN0YXRlLlxuICAgKi8gY29uc3QgYXBwUm91dGVyID0gdXNlTWVtbygoKT0+e1xuICAgICAgICBjb25zdCByb3V0ZXJJbnN0YW5jZSA9IHtcbiAgICAgICAgICAgIGJhY2s6ICgpPT53aW5kb3cuaGlzdG9yeS5iYWNrKCksXG4gICAgICAgICAgICBmb3J3YXJkOiAoKT0+d2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpLFxuICAgICAgICAgICAgcHJlZmV0Y2g6IChocmVmLCBvcHRpb25zKT0+e1xuICAgICAgICAgICAgICAgIC8vIERvbid0IHByZWZldGNoIGZvciBib3RzIGFzIHRoZXkgZG9uJ3QgbmF2aWdhdGUuXG4gICAgICAgICAgICAgICAgLy8gRG9uJ3QgcHJlZmV0Y2ggZHVyaW5nIGRldmVsb3BtZW50IChpbXByb3ZlcyBjb21waWxhdGlvbiBwZXJmb3JtYW5jZSlcbiAgICAgICAgICAgICAgICBpZiAoaXNCb3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpIHx8IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGFkZEJhc2VQYXRoKGhyZWYpLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgICAgICAgLy8gRXh0ZXJuYWwgdXJscyBjYW4ndCBiZSBwcmVmZXRjaGVkIGluIHRoZSBzYW1lIHdheS5cbiAgICAgICAgICAgICAgICBpZiAoaXNFeHRlcm5hbFVSTCh1cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIHZhciBfb3B0aW9uc19raW5kO1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBBQ1RJT05fUFJFRkVUQ0gsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAoX29wdGlvbnNfa2luZCA9IG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMua2luZCkgIT0gbnVsbCA/IF9vcHRpb25zX2tpbmQgOiBQcmVmZXRjaEtpbmQuRlVMTFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXBsYWNlOiAoaHJlZiwgb3B0aW9ucyk9PntcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSBvcHRpb25zID0ge307XG4gICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIHZhciBfb3B0aW9uc19zY3JvbGw7XG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlKGhyZWYsIFwicmVwbGFjZVwiLCAoX29wdGlvbnNfc2Nyb2xsID0gb3B0aW9ucy5zY3JvbGwpICE9IG51bGwgPyBfb3B0aW9uc19zY3JvbGwgOiB0cnVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwdXNoOiAoaHJlZiwgb3B0aW9ucyk9PntcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSBvcHRpb25zID0ge307XG4gICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIHZhciBfb3B0aW9uc19zY3JvbGw7XG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlKGhyZWYsIFwicHVzaFwiLCAoX29wdGlvbnNfc2Nyb2xsID0gb3B0aW9ucy5zY3JvbGwpICE9IG51bGwgPyBfb3B0aW9uc19zY3JvbGwgOiB0cnVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoOiAoKT0+e1xuICAgICAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKT0+e1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBBQ1RJT05fUkVGUkVTSCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbjogd2luZG93LmxvY2F0aW9uLm9yaWdpblxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHdlIGRvbid0IHdhbnQgdG8gZXhwb3NlIHRoaXMgbWV0aG9kIGF0IGFsbFxuICAgICAgICAgICAgZmFzdFJlZnJlc2g6ICgpPT57XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZmFzdFJlZnJlc2ggY2FuIG9ubHkgYmUgdXNlZCBpbiBkZXZlbG9wbWVudCBtb2RlLiBQbGVhc2UgdXNlIHJlZnJlc2ggaW5zdGVhZC5cIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQUNUSU9OX0ZBU1RfUkVGUkVTSCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW46IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByb3V0ZXJJbnN0YW5jZTtcbiAgICB9LCBbXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBuYXZpZ2F0ZVxuICAgIF0pO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICAvLyBFeGlzdHMgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gRG9uJ3QgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGUuXG4gICAgICAgIGlmICh3aW5kb3cubmV4dCkge1xuICAgICAgICAgICAgd2luZG93Lm5leHQucm91dGVyID0gYXBwUm91dGVyO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhcHBSb3V0ZXJcbiAgICBdKTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBjb25zdCB7IGNhY2hlLCBwcmVmZXRjaENhY2hlLCB0cmVlIH0gPSB1c2VVbndyYXBTdGF0ZShyZWR1Y2VyU3RhdGUpO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgdXNlRWZmZWN0KCgpPT57XG4gICAgICAgICAgICAvLyBBZGQgYHdpbmRvdy5uZGAgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy5cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgbm90IG1lYW50IGZvciB1c2UgaW4gYXBwbGljYXRpb25zIGFzIGNvbmN1cnJlbnQgcmVuZGVyaW5nIHdpbGwgYWZmZWN0IHRoZSBjYWNoZS90cmVlL3JvdXRlci5cbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgdGhpcyBpcyBmb3IgZGVidWdnaW5nXG4gICAgICAgICAgICB3aW5kb3cubmQgPSB7XG4gICAgICAgICAgICAgICAgcm91dGVyOiBhcHBSb3V0ZXIsXG4gICAgICAgICAgICAgICAgY2FjaGUsXG4gICAgICAgICAgICAgICAgcHJlZmV0Y2hDYWNoZSxcbiAgICAgICAgICAgICAgICB0cmVlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCBbXG4gICAgICAgICAgICBhcHBSb3V0ZXIsXG4gICAgICAgICAgICBjYWNoZSxcbiAgICAgICAgICAgIHByZWZldGNoQ2FjaGUsXG4gICAgICAgICAgICB0cmVlXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgLy8gSWYgdGhlIGFwcCBpcyByZXN0b3JlZCBmcm9tIGJmY2FjaGUsIGl0J3MgcG9zc2libGUgdGhhdFxuICAgICAgICAvLyBwdXNoUmVmLm1wYU5hdmlnYXRpb24gaXMgdHJ1ZSwgd2hpY2ggd291bGQgbWVhbiB0aGF0IGFueSByZS1yZW5kZXIgb2YgdGhpcyBjb21wb25lbnRcbiAgICAgICAgLy8gd291bGQgdHJpZ2dlciB0aGUgbXBhIG5hdmlnYXRpb24gbG9naWMgYWdhaW4gZnJvbSB0aGUgbGluZXMgYmVsb3cuXG4gICAgICAgIC8vIFRoaXMgd2lsbCByZXN0b3JlIHRoZSByb3V0ZXIgdG8gdGhlIGluaXRpYWwgc3RhdGUgaW4gdGhlIGV2ZW50IHRoYXQgdGhlIGFwcCBpcyByZXN0b3JlZCBmcm9tIGJmY2FjaGUuXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZVBhZ2VTaG93KGV2ZW50KSB7XG4gICAgICAgICAgICB2YXIgX3dpbmRvd19oaXN0b3J5X3N0YXRlO1xuICAgICAgICAgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQgfHwgISgoX3dpbmRvd19oaXN0b3J5X3N0YXRlID0gd2luZG93Lmhpc3Rvcnkuc3RhdGUpID09IG51bGwgPyB2b2lkIDAgOiBfd2luZG93X2hpc3Rvcnlfc3RhdGUuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogQUNUSU9OX1JFU1RPUkUsXG4gICAgICAgICAgICAgICAgdXJsOiBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxcbiAgICAgICAgICAgICAgICB0cmVlOiB3aW5kb3cuaGlzdG9yeS5zdGF0ZS5fX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VzaG93XCIsIGhhbmRsZVBhZ2VTaG93KTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBhZ2VzaG93XCIsIGhhbmRsZVBhZ2VTaG93KTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGRpc3BhdGNoXG4gICAgXSk7XG4gICAgLy8gV2hlbiBtcGFOYXZpZ2F0aW9uIGZsYWcgaXMgc2V0IGRvIGEgaGFyZCBuYXZpZ2F0aW9uIHRvIHRoZSBuZXcgdXJsLlxuICAgIC8vIEluZmluaXRlbHkgc3VzcGVuZCBiZWNhdXNlIHdlIGRvbid0IGFjdHVhbGx5IHdhbnQgdG8gcmVyZW5kZXIgYW55IGNoaWxkXG4gICAgLy8gY29tcG9uZW50cyB3aXRoIHRoZSBuZXcgVVJMIGFuZCBhbnkgZW50YW5nbGVkIHN0YXRlIHVwZGF0ZXMgc2hvdWxkbid0XG4gICAgLy8gY29tbWl0IGVpdGhlciAoZWc6IHVzZVRyYW5zaXRpb24gaXNQZW5kaW5nIHNob3VsZCBzdGF5IHRydWUgdW50aWwgdGhlIHBhZ2VcbiAgICAvLyB1bmxvYWRzKS5cbiAgICAvL1xuICAgIC8vIFRoaXMgaXMgYSBzaWRlIGVmZmVjdCBpbiByZW5kZXIuIERvbid0IHRyeSB0aGlzIGF0IGhvbWUsIGtpZHMuIEl0J3NcbiAgICAvLyBwcm9iYWJseSBzYWZlIGJlY2F1c2Ugd2Uga25vdyB0aGlzIGlzIGEgc2luZ2xldG9uIGNvbXBvbmVudCBhbmQgaXQncyBuZXZlclxuICAgIC8vIGluIDxPZmZzY3JlZW4+LiBBdCBsZWFzdCBJIGhvcGUgc28uIChJdCB3aWxsIHJ1biB0d2ljZSBpbiBkZXYgc3RyaWN0IG1vZGUsXG4gICAgLy8gYnV0IHRoYXQncy4uLiBmaW5lPylcbiAgICBjb25zdCB7IHB1c2hSZWYgfSA9IHVzZVVud3JhcFN0YXRlKHJlZHVjZXJTdGF0ZSk7XG4gICAgaWYgKHB1c2hSZWYubXBhTmF2aWdhdGlvbikge1xuICAgICAgICAvLyBpZiB0aGVyZSdzIGEgcmUtcmVuZGVyLCB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYW5vdGhlciByZWRpcmVjdCBpZiBvbmUgaXMgYWxyZWFkeSBpbiBmbGlnaHQgdG8gdGhlIHNhbWUgVVJMXG4gICAgICAgIGlmIChnbG9iYWxNdXRhYmxlLnBlbmRpbmdNcGFQYXRoICE9PSBjYW5vbmljYWxVcmwpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uMSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICAgICAgICAgIGlmIChwdXNoUmVmLnBlbmRpbmdQdXNoKSB7XG4gICAgICAgICAgICAgICAgbG9jYXRpb24xLmFzc2lnbihjYW5vbmljYWxVcmwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjEucmVwbGFjZShjYW5vbmljYWxVcmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ2xvYmFsTXV0YWJsZS5wZW5kaW5nTXBhUGF0aCA9IGNhbm9uaWNhbFVybDtcbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPLUFQUDogU2hvdWxkIHdlIGxpc3RlbiB0byBuYXZpZ2F0ZWVycm9yIGhlcmUgdG8gY2F0Y2ggZmFpbGVkXG4gICAgICAgIC8vIG5hdmlnYXRpb25zIHNvbWVob3c/IEFuZCBzaG91bGQgd2UgY2FsbCB3aW5kb3cuc3RvcCgpIGlmIGEgU1BBIG5hdmlnYXRpb25cbiAgICAgICAgLy8gc2hvdWxkIGludGVycnVwdCBhbiBNUEEgb25lP1xuICAgICAgICB1c2UoY3JlYXRlSW5maW5pdGVQcm9taXNlKCkpO1xuICAgIH1cbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxQdXNoU3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUuYmluZCh3aW5kb3cuaGlzdG9yeSk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsUmVwbGFjZVN0YXRlID0gd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlLmJpbmQod2luZG93Lmhpc3RvcnkpO1xuICAgICAgICAvLyBFbnN1cmUgdGhlIGNhbm9uaWNhbCBVUkwgaW4gdGhlIE5leHQuanMgUm91dGVyIGlzIHVwZGF0ZWQgd2hlbiB0aGUgVVJMIGlzIGNoYW5nZWQgc28gdGhhdCBgdXNlUGF0aG5hbWVgIGFuZCBgdXNlU2VhcmNoUGFyYW1zYCBob2xkIHRoZSBwdXNoZWQgdmFsdWVzLlxuICAgICAgICBjb25zdCBhcHBseVVybEZyb21IaXN0b3J5UHVzaFJlcGxhY2UgPSAodXJsKT0+e1xuICAgICAgICAgICAgY29uc3QgaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpPT57XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBBQ1RJT05fUkVTVE9SRSxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBuZXcgVVJMKHVybCAhPSBudWxsID8gdXJsIDogaHJlZiwgaHJlZiksXG4gICAgICAgICAgICAgICAgICAgIHRyZWU6IHdpbmRvdy5oaXN0b3J5LnN0YXRlLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgKiBQYXRjaCBwdXNoU3RhdGUgdG8gZW5zdXJlIGV4dGVybmFsIGNoYW5nZXMgdG8gdGhlIGhpc3RvcnkgYXJlIHJlZmxlY3RlZCBpbiB0aGUgTmV4dC5qcyBSb3V0ZXIuXG4gICAgICogRW5zdXJlcyBOZXh0LmpzIGludGVybmFsIGhpc3Rvcnkgc3RhdGUgaXMgY29waWVkIHRvIHRoZSBuZXcgaGlzdG9yeSBlbnRyeS5cbiAgICAgKiBFbnN1cmVzIHVzZVBhdGhuYW1lIGFuZCB1c2VTZWFyY2hQYXJhbXMgaG9sZCB0aGUgbmV3bHkgcHJvdmlkZWQgdXJsLlxuICAgICAqLyB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUgPSBmdW5jdGlvbiBwdXNoU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKSB7XG4gICAgICAgICAgICAvLyBBdm9pZCBhIGxvb3Agd2hlbiBOZXh0LmpzIGludGVybmFscyB0cmlnZ2VyIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGVcbiAgICAgICAgICAgIGlmICgoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogZGF0YS5fX05BKSB8fCAoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogZGF0YS5fTikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxQdXNoU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEgPSBjb3B5TmV4dEpzSW50ZXJuYWxIaXN0b3J5U3RhdGUoZGF0YSk7XG4gICAgICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgICAgICAgYXBwbHlVcmxGcm9tSGlzdG9yeVB1c2hSZXBsYWNlKHVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxQdXNoU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICogUGF0Y2ggcmVwbGFjZVN0YXRlIHRvIGVuc3VyZSBleHRlcm5hbCBjaGFuZ2VzIHRvIHRoZSBoaXN0b3J5IGFyZSByZWZsZWN0ZWQgaW4gdGhlIE5leHQuanMgUm91dGVyLlxuICAgICAqIEVuc3VyZXMgTmV4dC5qcyBpbnRlcm5hbCBoaXN0b3J5IHN0YXRlIGlzIGNvcGllZCB0byB0aGUgbmV3IGhpc3RvcnkgZW50cnkuXG4gICAgICogRW5zdXJlcyB1c2VQYXRobmFtZSBhbmQgdXNlU2VhcmNoUGFyYW1zIGhvbGQgdGhlIG5ld2x5IHByb3ZpZGVkIHVybC5cbiAgICAgKi8gd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlID0gZnVuY3Rpb24gcmVwbGFjZVN0YXRlKGRhdGEsIF91bnVzZWQsIHVybCkge1xuICAgICAgICAgICAgLy8gQXZvaWQgYSBsb29wIHdoZW4gTmV4dC5qcyBpbnRlcm5hbHMgdHJpZ2dlciBwdXNoU3RhdGUvcmVwbGFjZVN0YXRlXG4gICAgICAgICAgICBpZiAoKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGRhdGEuX19OQSkgfHwgKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGRhdGEuX04pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVwbGFjZVN0YXRlKGRhdGEsIF91bnVzZWQsIHVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhID0gY29weU5leHRKc0ludGVybmFsSGlzdG9yeVN0YXRlKGRhdGEpO1xuICAgICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAgICAgIGFwcGx5VXJsRnJvbUhpc3RvcnlQdXNoUmVwbGFjZSh1cmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVwbGFjZVN0YXRlKGRhdGEsIF91bnVzZWQsIHVybCk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAqIEhhbmRsZSBwb3BzdGF0ZSBldmVudCwgdGhpcyBpcyB1c2VkIHRvIGhhbmRsZSBiYWNrL2ZvcndhcmQgaW4gdGhlIGJyb3dzZXIuXG4gICAgICogQnkgZGVmYXVsdCBkaXNwYXRjaGVzIEFDVElPTl9SRVNUT1JFLCBob3dldmVyIGlmIHRoZSBoaXN0b3J5IGVudHJ5IHdhcyBub3QgcHVzaGVkL3JlcGxhY2VkIGJ5IGFwcC1yb3V0ZXIgaXQgd2lsbCByZWxvYWQgdGhlIHBhZ2UuXG4gICAgICogVGhhdCBjYXNlIGNhbiBoYXBwZW4gd2hlbiB0aGUgb2xkIHJvdXRlciBpbmplY3RlZCB0aGUgaGlzdG9yeSBlbnRyeS5cbiAgICAgKi8gY29uc3Qgb25Qb3BTdGF0ZSA9IChwYXJhbSk9PntcbiAgICAgICAgICAgIGxldCB7IHN0YXRlIH0gPSBwYXJhbTtcbiAgICAgICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPLUFQUDogdGhpcyBjYXNlIG9ubHkgaGFwcGVucyB3aGVuIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUgd2FzIGNhbGxlZCBvdXRzaWRlIG9mIE5leHQuanMuIEl0IHNob3VsZCBwcm9iYWJseSByZWxvYWQgdGhlIHBhZ2UgaW4gdGhpcyBjYXNlLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoaXMgY2FzZSBoYXBwZW5zIHdoZW4gdGhlIGhpc3RvcnkgZW50cnkgd2FzIHB1c2hlZCBieSB0aGUgYHBhZ2VzYCByb3V0ZXIuXG4gICAgICAgICAgICBpZiAoIXN0YXRlLl9fTkEpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSB1c2VUcmFuc2l0aW9uIGV4aXN0c1xuICAgICAgICAgICAgLy8gVE9ETy1BUFA6IElkZWFsbHkgdGhlIGJhY2sgYnV0dG9uIHNob3VsZCBub3QgdXNlIHN0YXJ0VHJhbnNpdGlvbiBhcyBpdCBzaG91bGQgYXBwbHkgdGhlIHVwZGF0ZXMgc3luY2hyb25vdXNseVxuICAgICAgICAgICAgLy8gV2l0aG91dCBzdGFydFRyYW5zaXRpb24gd29ya3MgaWYgdGhlIGNhY2hlIGlzIHRoZXJlIGZvciB0aGlzIHBhdGhcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKT0+e1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogQUNUSU9OX1JFU1RPUkUsXG4gICAgICAgICAgICAgICAgICAgIHVybDogbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZiksXG4gICAgICAgICAgICAgICAgICAgIHRyZWU6IHN0YXRlLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvLyBSZWdpc3RlciBwb3BzdGF0ZSBldmVudCB0byBjYWxsIG9uUG9wc3RhdGUuXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9wc3RhdGVcIiwgb25Qb3BTdGF0ZSk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlID0gb3JpZ2luYWxQdXNoU3RhdGU7XG4gICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUgPSBvcmlnaW5hbFJlcGxhY2VTdGF0ZTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9wc3RhdGVcIiwgb25Qb3BTdGF0ZSk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBkaXNwYXRjaFxuICAgIF0pO1xuICAgIGNvbnN0IHsgY2FjaGUsIHRyZWUsIG5leHRVcmwsIGZvY3VzQW5kU2Nyb2xsUmVmIH0gPSB1c2VVbndyYXBTdGF0ZShyZWR1Y2VyU3RhdGUpO1xuICAgIGNvbnN0IG1hdGNoaW5nSGVhZCA9IHVzZU1lbW8oKCk9PntcbiAgICAgICAgcmV0dXJuIGZpbmRIZWFkSW5DYWNoZShjYWNoZSwgdHJlZVsxXSk7XG4gICAgfSwgW1xuICAgICAgICBjYWNoZSxcbiAgICAgICAgdHJlZVxuICAgIF0pO1xuICAgIGxldCBoZWFkO1xuICAgIGlmIChtYXRjaGluZ0hlYWQgIT09IG51bGwpIHtcbiAgICAgICAgLy8gVGhlIGhlYWQgaXMgd3JhcHBlZCBpbiBhbiBleHRyYSBjb21wb25lbnQgc28gd2UgY2FuIHVzZVxuICAgICAgICAvLyBgdXNlRGVmZXJyZWRWYWx1ZWAgdG8gc3dhcCBiZXR3ZWVuIHRoZSBwcmVmZXRjaGVkIGFuZCBmaW5hbCB2ZXJzaW9ucyBvZlxuICAgICAgICAvLyB0aGUgaGVhZC4gKFRoaXMgaXMgd2hhdCBMYXlvdXRSb3V0ZXIgZG9lcyBmb3Igc2VnbWVudCBkYXRhLCB0b28uKVxuICAgICAgICAvL1xuICAgICAgICAvLyBUaGUgYGtleWAgaXMgdXNlZCB0byByZW1vdW50IHRoZSBjb21wb25lbnQgd2hlbmV2ZXIgdGhlIGhlYWQgbW92ZXMgdG9cbiAgICAgICAgLy8gYSBkaWZmZXJlbnQgc2VnbWVudC5cbiAgICAgICAgY29uc3QgW2hlYWRDYWNoZU5vZGUsIGhlYWRLZXldID0gbWF0Y2hpbmdIZWFkO1xuICAgICAgICBoZWFkID0gLyojX19QVVJFX18qLyBfanN4KEhlYWQsIHtcbiAgICAgICAgICAgIGhlYWRDYWNoZU5vZGU6IGhlYWRDYWNoZU5vZGVcbiAgICAgICAgfSwgaGVhZEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaGVhZCA9IG51bGw7XG4gICAgfVxuICAgIGxldCBjb250ZW50ID0gLyojX19QVVJFX18qLyBfanN4cyhSZWRpcmVjdEJvdW5kYXJ5LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBoZWFkLFxuICAgICAgICAgICAgY2FjaGUucnNjLFxuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KEFwcFJvdXRlckFubm91bmNlciwge1xuICAgICAgICAgICAgICAgIHRyZWU6IHRyZWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBjb25zdCBEZXZSb290Tm90Rm91bmRCb3VuZGFyeSA9IHJlcXVpcmUoXCIuL2Rldi1yb290LW5vdC1mb3VuZC1ib3VuZGFyeVwiKS5EZXZSb290Tm90Rm91bmRCb3VuZGFyeTtcbiAgICAgICAgICAgIGNvbnRlbnQgPSAvKiNfX1BVUkVfXyovIF9qc3goRGV2Um9vdE5vdEZvdW5kQm91bmRhcnksIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KE1pc3NpbmdTbG90Q29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbWlzc2luZ1Nsb3RzLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogY29udGVudFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBIb3RSZWxvYWRlciA9IHJlcXVpcmUoXCIuL3JlYWN0LWRldi1vdmVybGF5L2hvdC1yZWxvYWRlci1jbGllbnRcIikuZGVmYXVsdDtcbiAgICAgICAgY29udGVudCA9IC8qI19fUFVSRV9fKi8gX2pzeChIb3RSZWxvYWRlciwge1xuICAgICAgICAgICAgYXNzZXRQcmVmaXg6IGFzc2V0UHJlZml4LFxuICAgICAgICAgICAgY2hpbGRyZW46IGNvbnRlbnRcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKF9GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KEhpc3RvcnlVcGRhdGVyLCB7XG4gICAgICAgICAgICAgICAgYXBwUm91dGVyU3RhdGU6IHVzZVVud3JhcFN0YXRlKHJlZHVjZXJTdGF0ZSksXG4gICAgICAgICAgICAgICAgc3luYzogc3luY1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goUGF0aG5hbWVDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHBhdGhuYW1lLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goU2VhcmNoUGFyYW1zQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2VhcmNoUGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VCeVNlcnZlclJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNBbmRTY3JvbGxSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFVybFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goQXBwUm91dGVyQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBhcHBSb3V0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChMYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGVzOiBjYWNoZS5wYXJhbGxlbFJvdXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSb290IG5vZGUgYWx3YXlzIGhhcyBgdXJsYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJvdmlkZWQgaW4gQXBwVHJlZUNvbnRleHQgdG8gZW5zdXJlIGl0IGNhbiBiZSBvdmVyd3JpdHRlbiBpbiBsYXlvdXQtcm91dGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGNhbm9uaWNhbFVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgfSk7XG59XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBcHBSb3V0ZXIocHJvcHMpIHtcbiAgICBjb25zdCB7IGdsb2JhbEVycm9yQ29tcG9uZW50LCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KEVycm9yQm91bmRhcnksIHtcbiAgICAgICAgZXJyb3JDb21wb25lbnQ6IGdsb2JhbEVycm9yQ29tcG9uZW50LFxuICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFJvdXRlciwge1xuICAgICAgICAgICAgLi4ucmVzdFxuICAgICAgICB9KVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJSZWFjdCIsInVzZSIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VDYWxsYmFjayIsInN0YXJ0VHJhbnNpdGlvbiIsInVzZUluc2VydGlvbkVmZmVjdCIsInVzZURlZmVycmVkVmFsdWUiLCJBcHBSb3V0ZXJDb250ZXh0IiwiTGF5b3V0Um91dGVyQ29udGV4dCIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJNaXNzaW5nU2xvdENvbnRleHQiLCJBQ1RJT05fRkFTVF9SRUZSRVNIIiwiQUNUSU9OX05BVklHQVRFIiwiQUNUSU9OX1BSRUZFVENIIiwiQUNUSU9OX1JFRlJFU0giLCJBQ1RJT05fUkVTVE9SRSIsIkFDVElPTl9TRVJWRVJfQUNUSU9OIiwiQUNUSU9OX1NFUlZFUl9QQVRDSCIsIlByZWZldGNoS2luZCIsImNyZWF0ZUhyZWZGcm9tVXJsIiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsIlBhdGhuYW1lQ29udGV4dCIsInVzZVJlZHVjZXJXaXRoUmVkdXhEZXZ0b29scyIsInVzZVVud3JhcFN0YXRlIiwiRXJyb3JCb3VuZGFyeSIsImNyZWF0ZUluaXRpYWxSb3V0ZXJTdGF0ZSIsImlzQm90IiwiYWRkQmFzZVBhdGgiLCJBcHBSb3V0ZXJBbm5vdW5jZXIiLCJSZWRpcmVjdEJvdW5kYXJ5IiwiZmluZEhlYWRJbkNhY2hlIiwiY3JlYXRlSW5maW5pdGVQcm9taXNlIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJyZW1vdmVCYXNlUGF0aCIsImhhc0Jhc2VQYXRoIiwiaXNTZXJ2ZXIiLCJpbml0aWFsUGFyYWxsZWxSb3V0ZXMiLCJNYXAiLCJnbG9iYWxTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyIiwiZ2V0U2VydmVyQWN0aW9uRGlzcGF0Y2hlciIsImdsb2JhbE11dGFibGUiLCJ1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIiLCJ1cmwiLCJ1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycyIsIlVSTCIsImxvY2F0aW9uIiwib3JpZ2luIiwic2VhcmNoUGFyYW1zIiwiZGVsZXRlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9DT05GSUdfT1VUUFVUIiwicGF0aG5hbWUiLCJlbmRzV2l0aCIsImxlbmd0aCIsInNsaWNlIiwiaXNFeHRlcm5hbFVSTCIsIndpbmRvdyIsIkhpc3RvcnlVcGRhdGVyIiwicGFyYW0iLCJhcHBSb3V0ZXJTdGF0ZSIsInN5bmMiLCJ0cmVlIiwicHVzaFJlZiIsImNhbm9uaWNhbFVybCIsImhpc3RvcnlTdGF0ZSIsInByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlIiwiaGlzdG9yeSIsInN0YXRlIiwiX19OQSIsIl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUUiLCJwZW5kaW5nUHVzaCIsImhyZWYiLCJwdXNoU3RhdGUiLCJyZXBsYWNlU3RhdGUiLCJjcmVhdGVFbXB0eUNhY2hlTm9kZSIsImxhenlEYXRhIiwicnNjIiwicHJlZmV0Y2hSc2MiLCJwYXJhbGxlbFJvdXRlcyIsInVzZVNlcnZlckFjdGlvbkRpc3BhdGNoZXIiLCJkaXNwYXRjaCIsInNlcnZlckFjdGlvbkRpc3BhdGNoZXIiLCJhY3Rpb25QYXlsb2FkIiwidHlwZSIsInVzZUNoYW5nZUJ5U2VydmVyUmVzcG9uc2UiLCJwcmV2aW91c1RyZWUiLCJmbGlnaHREYXRhIiwib3ZlcnJpZGVDYW5vbmljYWxVcmwiLCJ1c2VOYXZpZ2F0ZSIsIm5hdmlnYXRlVHlwZSIsInNob3VsZFNjcm9sbCIsImlzRXh0ZXJuYWxVcmwiLCJsb2NhdGlvblNlYXJjaCIsInNlYXJjaCIsImNvcHlOZXh0SnNJbnRlcm5hbEhpc3RvcnlTdGF0ZSIsImRhdGEiLCJjdXJyZW50U3RhdGUiLCJIZWFkIiwiaGVhZENhY2hlTm9kZSIsImhlYWQiLCJwcmVmZXRjaEhlYWQiLCJyZXNvbHZlZFByZWZldGNoUnNjIiwiUm91dGVyIiwiYnVpbGRJZCIsImluaXRpYWxIZWFkIiwiaW5pdGlhbFRyZWUiLCJpbml0aWFsQ2Fub25pY2FsVXJsIiwiaW5pdGlhbFNlZWREYXRhIiwiYXNzZXRQcmVmaXgiLCJtaXNzaW5nU2xvdHMiLCJpbml0aWFsU3RhdGUiLCJyZWR1Y2VyU3RhdGUiLCJjaGFuZ2VCeVNlcnZlclJlc3BvbnNlIiwibmF2aWdhdGUiLCJhcHBSb3V0ZXIiLCJyb3V0ZXJJbnN0YW5jZSIsImJhY2siLCJmb3J3YXJkIiwicHJlZmV0Y2giLCJvcHRpb25zIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiX29wdGlvbnNfa2luZCIsImtpbmQiLCJGVUxMIiwicmVwbGFjZSIsIl9vcHRpb25zX3Njcm9sbCIsInNjcm9sbCIsInB1c2giLCJyZWZyZXNoIiwiZmFzdFJlZnJlc2giLCJFcnJvciIsIm5leHQiLCJyb3V0ZXIiLCJjYWNoZSIsInByZWZldGNoQ2FjaGUiLCJuZCIsImhhbmRsZVBhZ2VTaG93IiwiZXZlbnQiLCJfd2luZG93X2hpc3Rvcnlfc3RhdGUiLCJwZXJzaXN0ZWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1wYU5hdmlnYXRpb24iLCJwZW5kaW5nTXBhUGF0aCIsImxvY2F0aW9uMSIsImFzc2lnbiIsIm9yaWdpbmFsUHVzaFN0YXRlIiwiYmluZCIsIm9yaWdpbmFsUmVwbGFjZVN0YXRlIiwiYXBwbHlVcmxGcm9tSGlzdG9yeVB1c2hSZXBsYWNlIiwiX3VudXNlZCIsIl9OIiwib25Qb3BTdGF0ZSIsInJlbG9hZCIsIm5leHRVcmwiLCJmb2N1c0FuZFNjcm9sbFJlZiIsIm1hdGNoaW5nSGVhZCIsImhlYWRLZXkiLCJjb250ZW50IiwiY2hpbGRyZW4iLCJEZXZSb290Tm90Rm91bmRCb3VuZGFyeSIsInJlcXVpcmUiLCJQcm92aWRlciIsInZhbHVlIiwiSG90UmVsb2FkZXIiLCJkZWZhdWx0IiwiY2hpbGROb2RlcyIsIkFwcFJvdXRlciIsInByb3BzIiwiZ2xvYmFsRXJyb3JDb21wb25lbnQiLCJyZXN0IiwiZXJyb3JDb21wb25lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js":
-/*!*****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js ***!
- \*****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bailoutToClientRendering: () => (/* binding */ bailoutToClientRendering)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js\");\n/* harmony import */ var _static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./static-generation-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?af3b\");\n\n\nfunction bailoutToClientRendering(reason) {\n const staticGenerationStore = _static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_1__.staticGenerationAsyncStorage.getStore();\n if (staticGenerationStore == null ? void 0 : staticGenerationStore.forceStatic) return;\n if (staticGenerationStore == null ? void 0 : staticGenerationStore.isStaticGeneration) throw new _shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_0__.BailoutToCSRError(reason);\n} //# sourceMappingURL=bailout-to-client-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFpRjtBQUNTO0FBQ25GLFNBQVNFLHlCQUF5QkMsTUFBTTtJQUMzQyxNQUFNQyx3QkFBd0JILG1HQUE0QkEsQ0FBQ0ksUUFBUTtJQUNuRSxJQUFJRCx5QkFBeUIsT0FBTyxLQUFLLElBQUlBLHNCQUFzQkUsV0FBVyxFQUFFO0lBQ2hGLElBQUlGLHlCQUF5QixPQUFPLEtBQUssSUFBSUEsc0JBQXNCRyxrQkFBa0IsRUFBRSxNQUFNLElBQUlQLHNGQUFpQkEsQ0FBQ0c7QUFDdkgsRUFFQSx1REFBdUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcz83Nzk2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhaWxvdXRUb0NTUkVycm9yIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyXCI7XG5pbXBvcnQgeyBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlIH0gZnJvbSBcIi4vc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiO1xuZXhwb3J0IGZ1bmN0aW9uIGJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyhyZWFzb24pIHtcbiAgICBjb25zdCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUgPSBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljR2VuZXJhdGlvblN0b3JlLmZvcmNlU3RhdGljKSByZXR1cm47XG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljR2VuZXJhdGlvblN0b3JlLmlzU3RhdGljR2VuZXJhdGlvbikgdGhyb3cgbmV3IEJhaWxvdXRUb0NTUkVycm9yKHJlYXNvbik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcy5tYXAiXSwibmFtZXMiOlsiQmFpbG91dFRvQ1NSRXJyb3IiLCJzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlIiwiYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nIiwicmVhc29uIiwic3RhdGljR2VuZXJhdGlvblN0b3JlIiwiZ2V0U3RvcmUiLCJmb3JjZVN0YXRpYyIsImlzU3RhdGljR2VuZXJhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js":
-/*!***************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js ***!
- \***************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clientHookInServerComponentError: () => (/* binding */ clientHookInServerComponentError)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction clientHookInServerComponentError(hookName) {\n if (true) {\n // If useState is undefined we're in a server component\n if (!(react__WEBPACK_IMPORTED_MODULE_0___default().useState)) {\n throw new Error(\"\" + hookName + ' only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component');\n }\n }\n} //# sourceMappingURL=client-hook-in-server-component-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LWhvb2staW4tc2VydmVyLWNvbXBvbmVudC1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMEI7QUFDbkIsU0FBU0MsaUNBQWlDQyxRQUFRO0lBQ3JELElBQUlDLElBQXFDLEVBQUU7UUFDdkMsdURBQXVEO1FBQ3ZELElBQUksQ0FBQ0gsdURBQWMsRUFBRTtZQUNqQixNQUFNLElBQUlLLE1BQU0sS0FBS0gsV0FBVztRQUNwQztJQUNKO0FBQ0osRUFFQSxpRUFBaUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1ob29rLWluLXNlcnZlci1jb21wb25lbnQtZXJyb3IuanM/MGMyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgZnVuY3Rpb24gY2xpZW50SG9va0luU2VydmVyQ29tcG9uZW50RXJyb3IoaG9va05hbWUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIC8vIElmIHVzZVN0YXRlIGlzIHVuZGVmaW5lZCB3ZSdyZSBpbiBhIHNlcnZlciBjb21wb25lbnRcbiAgICAgICAgaWYgKCFSZWFjdC51c2VTdGF0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiXCIgKyBob29rTmFtZSArICcgb25seSB3b3JrcyBpbiBDbGllbnQgQ29tcG9uZW50cy4gQWRkIHRoZSBcInVzZSBjbGllbnRcIiBkaXJlY3RpdmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSB0byB1c2UgaXQuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcmVhY3QtY2xpZW50LWhvb2staW4tc2VydmVyLWNvbXBvbmVudCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jbGllbnQtaG9vay1pbi1zZXJ2ZXItY29tcG9uZW50LWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJSZWFjdCIsImNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yIiwiaG9va05hbWUiLCJwcm9jZXNzIiwidXNlU3RhdGUiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js":
-/*!*****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js ***!
- \*****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DevRootNotFoundBoundary: () => (/* binding */ DevRootNotFoundBoundary),\n/* harmony export */ bailOnNotFound: () => (/* binding */ bailOnNotFound)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _not_found_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./not-found-boundary */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js\");\n/* __next_internal_client_entry_do_not_use__ bailOnNotFound,DevRootNotFoundBoundary auto */ \n\n\nfunction bailOnNotFound() {\n throw new Error(\"notFound() is not allowed to use in root layout\");\n}\nfunction NotAllowedRootNotFoundError() {\n bailOnNotFound();\n return null;\n}\nfunction DevRootNotFoundBoundary(param) {\n let { children } = param;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_not_found_boundary__WEBPACK_IMPORTED_MODULE_2__.NotFoundBoundary, {\n notFound: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(NotAllowedRootNotFoundError, {}),\n children: children\n });\n} //# sourceMappingURL=dev-root-not-found-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvZGV2LXJvb3Qtbm90LWZvdW5kLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs0RkFFZ0Q7QUFDdEI7QUFDOEI7QUFDakQsU0FBU0k7SUFDWixNQUFNLElBQUlDLE1BQU07QUFDcEI7QUFDQSxTQUFTQztJQUNMRjtJQUNBLE9BQU87QUFDWDtBQUNPLFNBQVNHLHdCQUF3QkMsS0FBSztJQUN6QyxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHRDtJQUNuQixPQUFPLFdBQVcsR0FBR1Asc0RBQUlBLENBQUNFLGlFQUFnQkEsRUFBRTtRQUN4Q08sVUFBVSxXQUFXLEdBQUdULHNEQUFJQSxDQUFDSyw2QkFBNkIsQ0FBQztRQUMzREcsVUFBVUE7SUFDZDtBQUNKLEVBRUEsdURBQXVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9kZXYtcm9vdC1ub3QtZm91bmQtYm91bmRhcnkuanM/YTUyOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IE5vdEZvdW5kQm91bmRhcnkgfSBmcm9tIFwiLi9ub3QtZm91bmQtYm91bmRhcnlcIjtcbmV4cG9ydCBmdW5jdGlvbiBiYWlsT25Ob3RGb3VuZCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3RGb3VuZCgpIGlzIG5vdCBhbGxvd2VkIHRvIHVzZSBpbiByb290IGxheW91dFwiKTtcbn1cbmZ1bmN0aW9uIE5vdEFsbG93ZWRSb290Tm90Rm91bmRFcnJvcigpIHtcbiAgICBiYWlsT25Ob3RGb3VuZCgpO1xuICAgIHJldHVybiBudWxsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIERldlJvb3ROb3RGb3VuZEJvdW5kYXJ5KHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4gfSA9IHBhcmFtO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goTm90Rm91bmRCb3VuZGFyeSwge1xuICAgICAgICBub3RGb3VuZDogLyojX19QVVJFX18qLyBfanN4KE5vdEFsbG93ZWRSb290Tm90Rm91bmRFcnJvciwge30pLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV2LXJvb3Qtbm90LWZvdW5kLWJvdW5kYXJ5LmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJOb3RGb3VuZEJvdW5kYXJ5IiwiYmFpbE9uTm90Rm91bmQiLCJFcnJvciIsIk5vdEFsbG93ZWRSb290Tm90Rm91bmRFcnJvciIsIkRldlJvb3ROb3RGb3VuZEJvdW5kYXJ5IiwicGFyYW0iLCJjaGlsZHJlbiIsIm5vdEZvdW5kIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/error-boundary.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/error-boundary.js ***!
- \****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ErrorBoundary: () => (/* binding */ ErrorBoundary),\n/* harmony export */ ErrorBoundaryHandler: () => (/* binding */ ErrorBoundaryHandler),\n/* harmony export */ GlobalError: () => (/* binding */ GlobalError),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./navigation */ \"(ssr)/../../node_modules/next/dist/esm/client/components/navigation.js\");\n/* harmony import */ var _is_next_router_error__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./is-next-router-error */ \"(ssr)/../../node_modules/next/dist/esm/client/components/is-next-router-error.js\");\n/* __next_internal_client_entry_do_not_use__ ErrorBoundaryHandler,GlobalError,default,ErrorBoundary auto */ \n\n\n\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: \"100vh\",\n textAlign: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n text: {\n fontSize: \"14px\",\n fontWeight: 400,\n lineHeight: \"28px\",\n margin: \"0 8px\"\n }\n};\n// if we are revalidating we want to re-throw the error so the\n// function crashes so we can maintain our previous cache\n// instead of caching the error page\nfunction HandleISRError(param) {\n let { error } = param;\n if (typeof fetch.__nextGetStaticStore === \"function\") {\n var _fetch___nextGetStaticStore;\n const store = (_fetch___nextGetStaticStore = fetch.__nextGetStaticStore()) == null ? void 0 : _fetch___nextGetStaticStore.getStore();\n if ((store == null ? void 0 : store.isRevalidate) || (store == null ? void 0 : store.isStaticGeneration)) {\n console.error(error);\n throw error;\n }\n }\n return null;\n}\nclass ErrorBoundaryHandler extends (react__WEBPACK_IMPORTED_MODULE_1___default().Component) {\n static getDerivedStateFromError(error) {\n if ((0,_is_next_router_error__WEBPACK_IMPORTED_MODULE_3__.isNextRouterError)(error)) {\n // Re-throw if an expected internal Next.js router error occurs\n // this means it should be handled by a different boundary (such as a NotFound boundary in a parent segment)\n throw error;\n }\n return {\n error\n };\n }\n static getDerivedStateFromProps(props, state) {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */ if (props.pathname !== state.previousPathname && state.error) {\n return {\n error: null,\n previousPathname: props.pathname\n };\n }\n return {\n error: state.error,\n previousPathname: props.pathname\n };\n }\n render() {\n if (this.state.error) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(HandleISRError, {\n error: this.state.error\n }),\n this.props.errorStyles,\n this.props.errorScripts,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(this.props.errorComponent, {\n error: this.state.error,\n reset: this.reset\n })\n ]\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.reset = ()=>{\n this.setState({\n error: null\n });\n };\n this.state = {\n error: null,\n previousPathname: this.props.pathname\n };\n }\n}\nfunction GlobalError(param) {\n let { error } = param;\n const digest = error == null ? void 0 : error.digest;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"html\", {\n id: \"__next_error__\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"head\", {}),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(HandleISRError, {\n error: error\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n style: styles.error,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"h2\", {\n style: styles.text,\n children: \"Application error: a \" + (digest ? \"server\" : \"client\") + \"-side exception has occurred (see the \" + (digest ? \"server logs\" : \"browser console\") + \" for more information).\"\n }),\n digest ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"p\", {\n style: styles.text,\n children: \"Digest: \" + digest\n }) : null\n ]\n })\n })\n ]\n })\n ]\n });\n}\n// Exported so that the import signature in the loaders can be identical to user\n// supplied custom global error signatures.\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (GlobalError);\n/**\n * Handles errors through `getDerivedStateFromError`.\n * Renders the provided error component and provides a way to `reset` the error boundary state.\n */ /**\n * Renders error boundary with the provided \"errorComponent\" property as the fallback.\n * If no \"errorComponent\" property is provided it renders the children without an error boundary.\n */ function ErrorBoundary(param) {\n let { errorComponent, errorStyles, errorScripts, children } = param;\n const pathname = (0,_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n if (errorComponent) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ErrorBoundaryHandler, {\n pathname: pathname,\n errorComponent: errorComponent,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: children\n });\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: children\n });\n} //# sourceMappingURL=error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OzRHQUVzRjtBQUM1RDtBQUNpQjtBQUNnQjtBQUMzRCxNQUFNUyxTQUFTO0lBQ1hDLE9BQU87UUFDSCwwRkFBMEY7UUFDMUZDLFlBQVk7UUFDWkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNwQjtJQUNBQyxNQUFNO1FBQ0ZDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxZQUFZO1FBQ1pDLFFBQVE7SUFDWjtBQUNKO0FBQ0EsOERBQThEO0FBQzlELHlEQUF5RDtBQUN6RCxvQ0FBb0M7QUFDcEMsU0FBU0MsZUFBZUMsS0FBSztJQUN6QixJQUFJLEVBQUVkLEtBQUssRUFBRSxHQUFHYztJQUNoQixJQUFJLE9BQU9DLE1BQU1DLG9CQUFvQixLQUFLLFlBQVk7UUFDbEQsSUFBSUM7UUFDSixNQUFNQyxRQUFRLENBQUNELDhCQUE4QkYsTUFBTUMsb0JBQW9CLEVBQUMsS0FBTSxPQUFPLEtBQUssSUFBSUMsNEJBQTRCRSxRQUFRO1FBQ2xJLElBQUksQ0FBQ0QsU0FBUyxPQUFPLEtBQUssSUFBSUEsTUFBTUUsWUFBWSxLQUFNRixDQUFBQSxTQUFTLE9BQU8sS0FBSyxJQUFJQSxNQUFNRyxrQkFBa0IsR0FBRztZQUN0R0MsUUFBUXRCLEtBQUssQ0FBQ0E7WUFDZCxNQUFNQTtRQUNWO0lBQ0o7SUFDQSxPQUFPO0FBQ1g7QUFDTyxNQUFNdUIsNkJBQTZCM0Isd0RBQWU7SUFDckQsT0FBTzZCLHlCQUF5QnpCLEtBQUssRUFBRTtRQUNuQyxJQUFJRix3RUFBaUJBLENBQUNFLFFBQVE7WUFDMUIsK0RBQStEO1lBQy9ELDRHQUE0RztZQUM1RyxNQUFNQTtRQUNWO1FBQ0EsT0FBTztZQUNIQTtRQUNKO0lBQ0o7SUFDQSxPQUFPMEIseUJB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LEVBQUVGLFFBQVEsRUFBRSxHQUFHbEI7SUFDOUQsTUFBTWUsV0FBV2hDLHdEQUFXQTtJQUM1QixJQUFJc0MsZ0JBQWdCO1FBQ2hCLE9BQU8sV0FBVyxHQUFHNUMsc0RBQUlBLENBQUNnQyxzQkFBc0I7WUFDNUNNLFVBQVVBO1lBQ1ZNLGdCQUFnQkE7WUFDaEJGLGFBQWFBO1lBQ2JDLGNBQWNBO1lBQ2RGLFVBQVVBO1FBQ2Q7SUFDSjtJQUNBLE9BQU8sV0FBVyxHQUFHekMsc0RBQUlBLENBQUNJLHVEQUFTQSxFQUFFO1FBQ2pDcUMsVUFBVUE7SUFDZDtBQUNKLEVBRUEsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS5qcz8zODRmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VQYXRobmFtZSB9IGZyb20gXCIuL25hdmlnYXRpb25cIjtcbmltcG9ydCB7IGlzTmV4dFJvdXRlckVycm9yIH0gZnJvbSBcIi4vaXMtbmV4dC1yb3V0ZXItZXJyb3JcIjtcbmNvbnN0IHN0eWxlcyA9IHtcbiAgICBlcnJvcjoge1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvYmxvYi9tYWluL21vZGVybi1ub3JtYWxpemUuY3NzI0wzOC1MNTJcbiAgICAgICAgZm9udEZhbWlseTogJ3N5c3RlbS11aSxcIlNlZ29lIFVJXCIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCInLFxuICAgICAgICBoZWlnaHQ6IFwiMTAwdmhcIixcbiAgICAgICAgdGV4dEFsaWduOiBcImNlbnRlclwiLFxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCJcbiAgICB9LFxuICAgIHRleHQ6IHtcbiAgICAgICAgZm9udFNpemU6IFwiMTRweFwiLFxuICAgICAgICBmb250V2VpZ2h0OiA0MDAsXG4gICAgICAgIGxpbmVIZWlnaHQ6IFwiMjhweFwiLFxuICAgICAgICBtYXJnaW46IFwiMCA4cHhcIlxuICAgIH1cbn07XG4vLyBpZiB3ZSBhcmUgcmV2YWxpZGF0aW5nIHdlIHdhbnQgdG8gcmUtdGhyb3cgdGhlIGVycm9yIHNvIHRoZVxuLy8gZnVuY3Rpb24gY3Jhc2hlcyBzbyB3ZSBjYW4gbWFpbnRhaW4gb3VyIHByZXZpb3VzIGNhY2hlXG4vLyBpbnN0ZWFkIG9mIGNhY2hpbmcgdGhlIGVycm9yIHBhZ2VcbmZ1bmN0aW9uIEhhbmRsZUlTUkVycm9yKHBhcmFtKSB7XG4gICAgbGV0IHsgZXJyb3IgfSA9IHBhcmFtO1xuICAgIGlmICh0eXBlb2YgZmV0Y2guX19uZXh0R2V0U3RhdGljU3RvcmUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB2YXIgX2ZldGNoX19fbmV4dEdldFN0YXRpY1N0b3JlO1xuICAgICAgICBjb25zdCBzdG9yZSA9IChfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmUgPSBmZXRjaC5fX25leHRHZXRTdGF0aWNTdG9yZSgpKSA9PSBudWxsID8gdm9pZCAwIDogX2ZldGNoX19fbmV4dEdldFN0YXRpY1N0b3JlLmdldFN0b3JlKCk7XG4gICAgICAgIGlmICgoc3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IHN0b3JlLmlzUmV2YWxpZGF0ZSkgfHwgKHN0b3JlID09IG51bGwgPyB2b2lkIDAgOiBzdG9yZS5pc1N0YXRpY0dlbmVyYXRpb24pKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuZXhwb3J0IGNsYXNzIEVycm9yQm91bmRhcnlIYW5kbGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSB7XG4gICAgICAgIGlmIChpc05leHRSb3V0ZXJFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgIC8vIFJlLXRocm93IGlmIGFuIGV4cGVjdGVkIGludGVybmFsIE5leHQuanMgcm91dGVyIGVycm9yIG9jY3Vyc1xuICAgICAgICAgICAgLy8gdGhpcyBtZWFucyBpdCBzaG91bGQgYmUgaGFuZGxlZCBieSBhIGRpZmZlcmVudCBib3VuZGFyeSAoc3VjaCBhcyBhIE5vdEZvdW5kIGJvdW5kYXJ5IGluIGEgcGFyZW50IHNlZ21lbnQpXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICAgICAgLyoqXG4gICAgICogSGFuZGxlcyByZXNldCBvZiB0aGUgZXJyb3IgYm91bmRhcnkgd2hlbiBhIG5hdmlnYXRpb24gaGFwcGVucy5cbiAgICAgKiBFbnN1cmVzIHRoZSBlcnJvciBib3VuZGFyeSBkb2VzIG5vdCBzdGF5IGVuYWJsZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UuXG4gICAgICogQXBwcm9hY2ggb2Ygc2V0U3RhdGUgaW4gcmVuZGVyIGlzIHNhZmUgYXMgaXQgY2hlY2tzIHRoZSBwcmV2aW91cyBwYXRobmFtZSBhbmQgdGhlbiBvdmVycmlkZXNcbiAgICAgKiBpdCBhcyBvdXRsaW5lZCBpbiBodHRwczovL3JlYWN0LmRldi9yZWZlcmVuY2UvcmVhY3QvdXNlU3RhdGUjc3RvcmluZy1pbmZvcm1hdGlvbi1mcm9tLXByZXZpb3VzLXJlbmRlcnNcbiAgICAgKi8gaWYgKHByb3BzLnBhdGhuYW1lICE9PSBzdGF0ZS5wcmV2aW91c1BhdGhuYW1lICYmIHN0YXRlLmVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzUGF0aG5hbWU6IHByb3BzLnBhdGhuYW1lXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlcnJvcjogc3RhdGUuZXJyb3IsXG4gICAgICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goSGFuZGxlSVNSRXJyb3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiB0aGlzLnN0YXRlLmVycm9yXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmVycm9yU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmVycm9yU2NyaXB0cyxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KHRoaXMucHJvcHMuZXJyb3JDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiB0aGlzLnN0YXRlLmVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQ6IHRoaXMucmVzZXRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocHJvcHMpe1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIHRoaXMucmVzZXQgPSAoKT0+e1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiB0aGlzLnByb3BzLnBhdGhuYW1lXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIEdsb2JhbEVycm9yKHBhcmFtKSB7XG4gICAgbGV0IHsgZXJyb3IgfSA9IHBhcmFtO1xuICAgIGNvbnN0IGRpZ2VzdCA9IGVycm9yID09IG51bGwgPyB2b2lkIDAgOiBlcnJvci5kaWdlc3Q7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJodG1sXCIsIHtcbiAgICAgICAgaWQ6IFwiX19uZXh0X2Vycm9yX19cIixcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcImhlYWRcIiwge30pLFxuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4cyhcImJvZHlcIiwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChIYW5kbGVJU1JFcnJvciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5lcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3hzKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJoMlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGVzLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogXCJBcHBsaWNhdGlvbiBlcnJvcjogYSBcIiArIChkaWdlc3QgPyBcInNlcnZlclwiIDogXCJjbGllbnRcIikgKyBcIi1zaWRlIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQgKHNlZSB0aGUgXCIgKyAoZGlnZXN0ID8gXCJzZXJ2ZXIgbG9nc1wiIDogXCJicm93c2VyIGNvbnNvbGVcIikgKyBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbikuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZ2VzdCA/IC8qI19fUFVSRV9fKi8gX2pzeChcInBcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy50ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFwiRGlnZXN0OiBcIiArIGRpZ2VzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn1cbi8vIEV4cG9ydGVkIHNvIHRoYXQgdGhlIGltcG9ydCBzaWduYXR1cmUgaW4gdGhlIGxvYWRlcnMgY2FuIGJlIGlkZW50aWNhbCB0byB1c2VyXG4vLyBzdXBwbGllZCBjdXN0b20gZ2xvYmFsIGVycm9yIHNpZ25hdHVyZXMuXG5leHBvcnQgZGVmYXVsdCBHbG9iYWxFcnJvcjtcbi8qKlxuICogSGFuZGxlcyBlcnJvcnMgdGhyb3VnaCBgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yYC5cbiAqIFJlbmRlcnMgdGhlIHByb3ZpZGVkIGVycm9yIGNvbXBvbmVudCBhbmQgcHJvdmlkZXMgYSB3YXkgdG8gYHJlc2V0YCB0aGUgZXJyb3IgYm91bmRhcnkgc3RhdGUuXG4gKi8gLyoqXG4gKiBSZW5kZXJzIGVycm9yIGJvdW5kYXJ5IHdpdGggdGhlIHByb3ZpZGVkIFwiZXJyb3JDb21wb25lbnRcIiBwcm9wZXJ0eSBhcyB0aGUgZmFsbGJhY2suXG4gKiBJZiBubyBcImVycm9yQ29tcG9uZW50XCIgcHJvcGVydHkgaXMgcHJvdmlkZWQgaXQgcmVuZGVycyB0aGUgY2hpbGRyZW4gd2l0aG91dCBhbiBlcnJvciBib3VuZGFyeS5cbiAqLyBleHBvcnQgZnVuY3Rpb24gRXJyb3JCb3VuZGFyeShwYXJhbSkge1xuICAgIGxldCB7IGVycm9yQ29tcG9uZW50LCBlcnJvclN0eWxlcywgZXJyb3JTY3JpcHRzLCBjaGlsZHJlbiB9ID0gcGFyYW07XG4gICAgY29uc3QgcGF0aG5hbWUgPSB1c2VQYXRobmFtZSgpO1xuICAgIGlmIChlcnJvckNvbXBvbmVudCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KEVycm9yQm91bmRhcnlIYW5kbGVyLCB7XG4gICAgICAgICAgICBwYXRobmFtZTogcGF0aG5hbWUsXG4gICAgICAgICAgICBlcnJvckNvbXBvbmVudDogZXJyb3JDb21wb25lbnQsXG4gICAgICAgICAgICBlcnJvclN0eWxlczogZXJyb3JTdHlsZXMsXG4gICAgICAgICAgICBlcnJvclNjcmlwdHM6IGVycm9yU2NyaXB0cyxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChfRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLWJvdW5kYXJ5LmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJSZWFjdCIsInVzZVBhdGhuYW1lIiwiaXNOZXh0Um91dGVyRXJyb3IiLCJzdHlsZXMiLCJlcnJvciIsImZvbnRGYW1pbHkiLCJoZWlnaHQiLCJ0ZXh0QWxpZ24iLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsInRleHQiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJsaW5lSGVpZ2h0IiwibWFyZ2luIiwiSGFuZGxlSVNSRXJyb3IiLCJwYXJhbSIsImZldGNoIiwiX19uZXh0R2V0U3RhdGljU3RvcmUiLCJfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmUiLCJzdG9yZSIsImdldFN0b3JlIiwiaXNSZXZhbGlkYXRlIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwiY29uc29sZSIsIkVycm9yQm91bmRhcnlIYW5kbGVyIiwiQ29tcG9uZW50IiwiZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwicHJvcHMiLCJzdGF0ZSIsInBhdGhuYW1lIiwicHJldmlvdXNQYXRobmFtZSIsInJlbmRlciIsImNoaWxkcmVuIiwiZXJyb3JTdHlsZXMiLCJlcnJvclNjcmlwdHMiLCJlcnJvckNvbXBvbmVudCIsInJlc2V0IiwiY29uc3RydWN0b3IiLCJzZXRTdGF0ZSIsIkdsb2JhbEVycm9yIiwiZGlnZXN0IiwiaWQiLCJzdHlsZSIsIkVycm9yQm91bmRhcnkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/error-boundary.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/hooks-server-context.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DynamicServerError: () => (/* binding */ DynamicServerError),\n/* harmony export */ isDynamicServerError: () => (/* binding */ isDynamicServerError)\n/* harmony export */ });\nconst DYNAMIC_ERROR_CODE = \"DYNAMIC_SERVER_USAGE\";\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description);\n this.description = description;\n this.digest = DYNAMIC_ERROR_CODE;\n }\n}\nfunction isDynamicServerError(err) {\n if (typeof err !== \"object\" || err === null || !(\"digest\" in err) || typeof err.digest !== \"string\") {\n return false;\n }\n return err.digest === DYNAMIC_ERROR_CODE;\n} //# sourceMappingURL=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNQSxxQkFBcUI7QUFDcEIsTUFBTUMsMkJBQTJCQztJQUNwQ0MsWUFBWUMsV0FBVyxDQUFDO1FBQ3BCLEtBQUssQ0FBQywyQkFBMkJBO1FBQ2pDLElBQUksQ0FBQ0EsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLE1BQU0sR0FBR0w7SUFDbEI7QUFDSjtBQUNPLFNBQVNNLHFCQUFxQkMsR0FBRztJQUNwQyxJQUFJLE9BQU9BLFFBQVEsWUFBWUEsUUFBUSxRQUFRLENBQUUsYUFBWUEsR0FBRSxLQUFNLE9BQU9BLElBQUlGLE1BQU0sS0FBSyxVQUFVO1FBQ2pHLE9BQU87SUFDWDtJQUNBLE9BQU9FLElBQUlGLE1BQU0sS0FBS0w7QUFDMUIsRUFFQSxnREFBZ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzPzk4OWMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFlOQU1JQ19FUlJPUl9DT0RFID0gXCJEWU5BTUlDX1NFUlZFUl9VU0FHRVwiO1xuZXhwb3J0IGNsYXNzIER5bmFtaWNTZXJ2ZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihkZXNjcmlwdGlvbil7XG4gICAgICAgIHN1cGVyKFwiRHluYW1pYyBzZXJ2ZXIgdXNhZ2U6IFwiICsgZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuZGlnZXN0ID0gRFlOQU1JQ19FUlJPUl9DT0RFO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciAhPT0gXCJvYmplY3RcIiB8fCBlcnIgPT09IG51bGwgfHwgIShcImRpZ2VzdFwiIGluIGVycikgfHwgdHlwZW9mIGVyci5kaWdlc3QgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXJyLmRpZ2VzdCA9PT0gRFlOQU1JQ19FUlJPUl9DT0RFO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy1zZXJ2ZXItY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiRFlOQU1JQ19FUlJPUl9DT0RFIiwiRHluYW1pY1NlcnZlckVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImRlc2NyaXB0aW9uIiwiZGlnZXN0IiwiaXNEeW5hbWljU2VydmVyRXJyb3IiLCJlcnIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/infinite-promise.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/infinite-promise.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createInfinitePromise: () => (/* binding */ createInfinitePromise)\n/* harmony export */ });\n/**\n * Used to cache in createInfinitePromise\n */ let infinitePromise;\n/**\n * Create a Promise that does not resolve. This is used to suspend when data is not available yet.\n */ function createInfinitePromise() {\n if (!infinitePromise) {\n // Only create the Promise once\n infinitePromise = new Promise(()=>{\n // This is used to debug when the rendering is never updated.\n // setTimeout(() => {\n // infinitePromise = new Error('Infinite promise')\n // resolve()\n // }, 5000)\n });\n }\n return infinitePromise;\n} //# sourceMappingURL=infinite-promise.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvaW5maW5pdGUtcHJvbWlzZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0NBRUMsR0FBRyxJQUFJQTtBQUNSOztDQUVDLEdBQVUsU0FBU0M7SUFDaEIsSUFBSSxDQUFDRCxpQkFBaUI7UUFDbEIsK0JBQStCO1FBQy9CQSxrQkFBa0IsSUFBSUUsUUFBUTtRQUM5Qiw2REFBNkQ7UUFDN0QscUJBQXFCO1FBQ3JCLG9EQUFvRDtRQUNwRCxjQUFjO1FBQ2QsV0FBVztRQUNYO0lBQ0o7SUFDQSxPQUFPRjtBQUNYLEVBRUEsNENBQTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9pbmZpbml0ZS1wcm9taXNlLmpzP2M2ZmYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2VkIHRvIGNhY2hlIGluIGNyZWF0ZUluZmluaXRlUHJvbWlzZVxuICovIGxldCBpbmZpbml0ZVByb21pc2U7XG4vKipcbiAqIENyZWF0ZSBhIFByb21pc2UgdGhhdCBkb2VzIG5vdCByZXNvbHZlLiBUaGlzIGlzIHVzZWQgdG8gc3VzcGVuZCB3aGVuIGRhdGEgaXMgbm90IGF2YWlsYWJsZSB5ZXQuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluZmluaXRlUHJvbWlzZSgpIHtcbiAgICBpZiAoIWluZmluaXRlUHJvbWlzZSkge1xuICAgICAgICAvLyBPbmx5IGNyZWF0ZSB0aGUgUHJvbWlzZSBvbmNlXG4gICAgICAgIGluZmluaXRlUHJvbWlzZSA9IG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBkZWJ1ZyB3aGVuIHRoZSByZW5kZXJpbmcgaXMgbmV2ZXIgdXBkYXRlZC5cbiAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vICAgaW5maW5pdGVQcm9taXNlID0gbmV3IEVycm9yKCdJbmZpbml0ZSBwcm9taXNlJylcbiAgICAgICAgLy8gICByZXNvbHZlKClcbiAgICAgICAgLy8gfSwgNTAwMClcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpbmZpbml0ZVByb21pc2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZmluaXRlLXByb21pc2UuanMubWFwIl0sIm5hbWVzIjpbImluZmluaXRlUHJvbWlzZSIsImNyZWF0ZUluZmluaXRlUHJvbWlzZSIsIlByb21pc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/infinite-promise.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/is-next-router-error.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/is-next-router-error.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNextRouterError: () => (/* binding */ isNextRouterError)\n/* harmony export */ });\n/* harmony import */ var _not_found__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n/* harmony import */ var _redirect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./redirect */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js\");\n\n\nfunction isNextRouterError(error) {\n return error && error.digest && ((0,_redirect__WEBPACK_IMPORTED_MODULE_1__.isRedirectError)(error) || (0,_not_found__WEBPACK_IMPORTED_MODULE_0__.isNotFoundError)(error));\n} //# sourceMappingURL=is-next-router-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQThDO0FBQ0Q7QUFDdEMsU0FBU0Usa0JBQWtCQyxLQUFLO0lBQ25DLE9BQU9BLFNBQVNBLE1BQU1DLE1BQU0sSUFBS0gsQ0FBQUEsMERBQWVBLENBQUNFLFVBQVVILDJEQUFlQSxDQUFDRyxNQUFLO0FBQ3BGLEVBRUEsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9pcy1uZXh0LXJvdXRlci1lcnJvci5qcz82YzA0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTm90Rm91bmRFcnJvciB9IGZyb20gXCIuL25vdC1mb3VuZFwiO1xuaW1wb3J0IHsgaXNSZWRpcmVjdEVycm9yIH0gZnJvbSBcIi4vcmVkaXJlY3RcIjtcbmV4cG9ydCBmdW5jdGlvbiBpc05leHRSb3V0ZXJFcnJvcihlcnJvcikge1xuICAgIHJldHVybiBlcnJvciAmJiBlcnJvci5kaWdlc3QgJiYgKGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNOb3RGb3VuZEVycm9yKGVycm9yKSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW5leHQtcm91dGVyLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJpc05vdEZvdW5kRXJyb3IiLCJpc1JlZGlyZWN0RXJyb3IiLCJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiZGlnZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/is-next-router-error.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/layout-router.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/layout-router.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ OuterLayoutRouter)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n/* harmony import */ var _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\");\n/* harmony import */ var _router_reducer_fetch_server_response__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./router-reducer/fetch-server-response */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js\");\n/* harmony import */ var _infinite_promise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./infinite-promise */ \"(ssr)/../../node_modules/next/dist/esm/client/components/infinite-promise.js\");\n/* harmony import */ var _error_boundary__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./error-boundary */ \"(ssr)/../../node_modules/next/dist/esm/client/components/error-boundary.js\");\n/* harmony import */ var _match_segments__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./match-segments */ \"(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js\");\n/* harmony import */ var _shared_lib_router_utils_handle_smooth_scroll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../shared/lib/router/utils/handle-smooth-scroll */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/handle-smooth-scroll.js\");\n/* harmony import */ var _redirect_boundary__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect-boundary.js\");\n/* harmony import */ var _not_found_boundary__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./not-found-boundary */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js\");\n/* harmony import */ var _router_reducer_reducers_get_segment_value__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js\");\n/* harmony import */ var _router_reducer_create_router_cache_key__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./router-reducer/create-router-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Add refetch marker to router state at the point of the current layout segment.\n * This ensures the response returned is not further down than the current layout segment.\n */ function walkAddRefetch(segmentPathToWalk, treeToRecreate) {\n if (segmentPathToWalk) {\n const [segment, parallelRouteKey] = segmentPathToWalk;\n const isLast = segmentPathToWalk.length === 2;\n if ((0,_match_segments__WEBPACK_IMPORTED_MODULE_7__.matchSegment)(treeToRecreate[0], segment)) {\n if (treeToRecreate[1].hasOwnProperty(parallelRouteKey)) {\n if (isLast) {\n const subTree = walkAddRefetch(undefined, treeToRecreate[1][parallelRouteKey]);\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: [\n subTree[0],\n subTree[1],\n subTree[2],\n \"refetch\"\n ]\n }\n ];\n }\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: walkAddRefetch(segmentPathToWalk.slice(2), treeToRecreate[1][parallelRouteKey])\n }\n ];\n }\n }\n }\n return treeToRecreate;\n}\n// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available\n/**\n * Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning\n */ function findDOMNode(instance) {\n // Tree-shake for server bundle\n if (true) return null;\n // Only apply strict mode warning when not in production\n if (true) {\n const originalConsoleError = console.error;\n try {\n console.error = function() {\n for(var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++){\n messages[_key] = arguments[_key];\n }\n // Ignore strict mode warning for the findDomNode call below\n if (!messages[0].includes(\"Warning: %s is deprecated in StrictMode.\")) {\n originalConsoleError(...messages);\n }\n };\n return react_dom__WEBPACK_IMPORTED_MODULE_2__.findDOMNode(instance);\n } finally{\n console.error = originalConsoleError;\n }\n }\n return react_dom__WEBPACK_IMPORTED_MODULE_2__.findDOMNode(instance);\n}\nconst rectProperties = [\n \"bottom\",\n \"height\",\n \"left\",\n \"right\",\n \"top\",\n \"width\",\n \"x\",\n \"y\"\n];\n/**\n * Check if a HTMLElement is hidden or fixed/sticky position\n */ function shouldSkipElement(element) {\n // we ignore fixed or sticky positioned elements since they'll likely pass the \"in-viewport\" check\n // and will result in a situation we bail on scroll because of something like a fixed nav,\n // even though the actual page content is offscreen\n if ([\n \"sticky\",\n \"fixed\"\n ].includes(getComputedStyle(element).position)) {\n if (true) {\n console.warn(\"Skipping auto-scroll behavior due to `position: sticky` or `position: fixed` on element:\", element);\n }\n return true;\n }\n // Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`\n // because `offsetParent` doesn't consider document/body\n const rect = element.getBoundingClientRect();\n return rectProperties.every((item)=>rect[item] === 0);\n}\n/**\n * Check if the top corner of the HTMLElement is in the viewport.\n */ function topOfElementInViewport(element, viewportHeight) {\n const rect = element.getBoundingClientRect();\n return rect.top >= 0 && rect.top <= viewportHeight;\n}\n/**\n * Find the DOM node for a hash fragment.\n * If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.\n * If the hash fragment is an id, the page has to scroll to the element with that id.\n * If the hash fragment is a name, the page has to scroll to the first element with that name.\n */ function getHashFragmentDomNode(hashFragment) {\n // If the hash fragment is `top` the page has to scroll to the top of the page.\n if (hashFragment === \"top\") {\n return document.body;\n }\n var _document_getElementById;\n // If the hash fragment is an id, the page has to scroll to the element with that id.\n return (_document_getElementById = document.getElementById(hashFragment)) != null ? _document_getElementById : document.getElementsByName(hashFragment)[0];\n}\nclass InnerScrollAndFocusHandler extends (react__WEBPACK_IMPORTED_MODULE_1___default().Component) {\n componentDidMount() {\n this.handlePotentialScroll();\n }\n componentDidUpdate() {\n // Because this property is overwritten in handlePotentialScroll it's fine to always run it when true as it'll be set to false for subsequent renders.\n if (this.props.focusAndScrollRef.apply) {\n this.handlePotentialScroll();\n }\n }\n render() {\n return this.props.children;\n }\n constructor(...args){\n super(...args);\n this.handlePotentialScroll = ()=>{\n // Handle scroll and focus, it's only applied once in the first useEffect that triggers that changed.\n const { focusAndScrollRef, segmentPath } = this.props;\n if (focusAndScrollRef.apply) {\n // segmentPaths is an array of segment paths that should be scrolled to\n // if the current segment path is not in the array, the scroll is not applied\n // unless the array is empty, in which case the scroll is always applied\n if (focusAndScrollRef.segmentPaths.length !== 0 && !focusAndScrollRef.segmentPaths.some((scrollRefSegmentPath)=>segmentPath.every((segment, index)=>(0,_match_segments__WEBPACK_IMPORTED_MODULE_7__.matchSegment)(segment, scrollRefSegmentPath[index])))) {\n return;\n }\n let domNode = null;\n const hashFragment = focusAndScrollRef.hashFragment;\n if (hashFragment) {\n domNode = getHashFragmentDomNode(hashFragment);\n }\n // `findDOMNode` is tricky because it returns just the first child if the component is a fragment.\n // This already caused a bug where the first child was a <link/> in head.\n if (!domNode) {\n domNode = findDOMNode(this);\n }\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (!(domNode instanceof Element)) {\n return;\n }\n // Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.\n // If the element is skipped, try to select the next sibling and try again.\n while(!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)){\n // No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.\n if (domNode.nextElementSibling === null) {\n return;\n }\n domNode = domNode.nextElementSibling;\n }\n // State is mutated to ensure that the focus and scroll is applied only once.\n focusAndScrollRef.apply = false;\n focusAndScrollRef.hashFragment = null;\n focusAndScrollRef.segmentPaths = [];\n (0,_shared_lib_router_utils_handle_smooth_scroll__WEBPACK_IMPORTED_MODULE_8__.handleSmoothScroll)(()=>{\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n domNode.scrollIntoView();\n return;\n }\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n const htmlElement = document.documentElement;\n const viewportHeight = htmlElement.clientHeight;\n // If the element's top edge is already in the viewport, exit early.\n if (topOfElementInViewport(domNode, viewportHeight)) {\n return;\n }\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `<html/>` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0;\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (!topOfElementInViewport(domNode, viewportHeight)) {\n domNode.scrollIntoView();\n }\n }, {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: focusAndScrollRef.onlyHashChange\n });\n // Mutate after scrolling so that it can be read by `handleSmoothScroll`\n focusAndScrollRef.onlyHashChange = false;\n // Set focus on the element\n domNode.focus();\n }\n };\n }\n}\nfunction ScrollAndFocusHandler(param) {\n let { segmentPath, children } = param;\n const context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__.GlobalLayoutRouterContext);\n if (!context) {\n throw new Error(\"invariant global layout router not mounted\");\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(InnerScrollAndFocusHandler, {\n segmentPath: segmentPath,\n focusAndScrollRef: context.focusAndScrollRef,\n children: children\n });\n}\n/**\n * InnerLayoutRouter handles rendering the provided segment based on the cache.\n */ function InnerLayoutRouter(param) {\n let { parallelRouterKey, url, childNodes, segmentPath, tree, // isActive,\n cacheKey } = param;\n const context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__.GlobalLayoutRouterContext);\n if (!context) {\n throw new Error(\"invariant global layout router not mounted\");\n }\n const { buildId, changeByServerResponse, tree: fullTree } = context;\n // Read segment path from the parallel router cache node.\n let childNode = childNodes.get(cacheKey);\n // When data is not available during rendering client-side we need to fetch\n // it from the server.\n if (childNode === undefined) {\n const newLazyCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n parallelRoutes: new Map()\n };\n /**\n * Flight data fetch kicked off during render and put into the cache.\n */ childNode = newLazyCacheNode;\n childNodes.set(cacheKey, newLazyCacheNode);\n }\n // `rsc` represents the renderable node for this segment.\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc = childNode.prefetchRsc !== null ? childNode.prefetchRsc : childNode.rsc;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n //\n // @ts-expect-error The second argument to `useDeferredValue` is only\n // available in the experimental builds. When its disabled, it will always\n // return `rsc`.\n const rsc = (0,react__WEBPACK_IMPORTED_MODULE_1__.useDeferredValue)(childNode.rsc, resolvedPrefetchRsc);\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n const resolvedRsc = typeof rsc === \"object\" && rsc !== null && typeof rsc.then === \"function\" ? (0,react__WEBPACK_IMPORTED_MODULE_1__.use)(rsc) : rsc;\n if (!resolvedRsc) {\n // The data for this segment is not available, and there's no pending\n // navigation that will be able to fulfill it. We need to fetch more from\n // the server and patch the cache.\n // Check if there's already a pending request.\n let lazyData = childNode.lazyData;\n if (lazyData === null) {\n /**\n * Router state with refetch marker added\n */ // TODO-APP: remove ''\n const refetchTree = walkAddRefetch([\n \"\",\n ...segmentPath\n ], fullTree);\n childNode.lazyData = lazyData = (0,_router_reducer_fetch_server_response__WEBPACK_IMPORTED_MODULE_4__.fetchServerResponse)(new URL(url, location.origin), refetchTree, context.nextUrl, buildId);\n }\n /**\n * Flight response data\n */ // When the data has not resolved yet `use` will suspend here.\n const [flightData, overrideCanonicalUrl] = (0,react__WEBPACK_IMPORTED_MODULE_1__.use)(lazyData);\n // segmentPath from the server does not match the layout's segmentPath\n childNode.lazyData = null;\n // setTimeout is used to start a new transition during render, this is an intentional hack around React.\n setTimeout(()=>{\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n changeByServerResponse(fullTree, flightData, overrideCanonicalUrl);\n });\n });\n // Suspend infinitely as `changeByServerResponse` will cause a different part of the tree to be rendered.\n (0,react__WEBPACK_IMPORTED_MODULE_1__.use)((0,_infinite_promise__WEBPACK_IMPORTED_MODULE_5__.createInfinitePromise)());\n }\n // If we get to this point, then we know we have something we can render.\n const subtree = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__.LayoutRouterContext.Provider, {\n value: {\n tree: tree[1][parallelRouterKey],\n childNodes: childNode.parallelRoutes,\n // TODO-APP: overriding of url for parallel routes\n url: url\n },\n children: resolvedRsc\n });\n // Ensure root layout is not wrapped in a div as the root layout renders `<html>`\n return subtree;\n}\n/**\n * Renders suspense boundary with the provided \"loading\" property as the fallback.\n * If no loading property is provided it renders the children without a suspense boundary.\n */ function LoadingBoundary(param) {\n let { children, loading, loadingStyles, loadingScripts, hasLoading } = param;\n if (hasLoading) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Suspense, {\n fallback: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n loadingStyles,\n loadingScripts,\n loading\n ]\n }),\n children: children\n });\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: children\n });\n}\n/**\n * OuterLayoutRouter handles the current segment as well as <Offscreen> rendering of other segments.\n * It can be rendered next to each other with a different `parallelRouterKey`, allowing for Parallel routes.\n */ function OuterLayoutRouter(param) {\n let { parallelRouterKey, segmentPath, error, errorStyles, errorScripts, templateStyles, templateScripts, loading, loadingStyles, loadingScripts, hasLoading, template, notFound, notFoundStyles, styles } = param;\n const context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__.LayoutRouterContext);\n if (!context) {\n throw new Error(\"invariant expected layout router to be mounted\");\n }\n const { childNodes, tree, url } = context;\n // Get the current parallelRouter cache node\n let childNodesForParallelRouter = childNodes.get(parallelRouterKey);\n // If the parallel router cache node does not exist yet, create it.\n // This writes to the cache when there is no item in the cache yet. It never *overwrites* existing cache items which is why it's safe in concurrent mode.\n if (!childNodesForParallelRouter) {\n childNodesForParallelRouter = new Map();\n childNodes.set(parallelRouterKey, childNodesForParallelRouter);\n }\n // Get the active segment in the tree\n // The reason arrays are used in the data format is that these are transferred from the server to the browser so it's optimized to save bytes.\n const treeSegment = tree[1][parallelRouterKey][0];\n // If segment is an array it's a dynamic route and we want to read the dynamic route value as the segment to get from the cache.\n const currentChildSegmentValue = (0,_router_reducer_reducers_get_segment_value__WEBPACK_IMPORTED_MODULE_11__.getSegmentValue)(treeSegment);\n /**\n * Decides which segments to keep rendering, all segments that are not active will be wrapped in `<Offscreen>`.\n */ // TODO-APP: Add handling of `<Offscreen>` when it's available.\n const preservedSegments = [\n treeSegment\n ];\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n styles,\n preservedSegments.map((preservedSegment)=>{\n const preservedSegmentValue = (0,_router_reducer_reducers_get_segment_value__WEBPACK_IMPORTED_MODULE_11__.getSegmentValue)(preservedSegment);\n const cacheKey = (0,_router_reducer_create_router_cache_key__WEBPACK_IMPORTED_MODULE_12__.createRouterCacheKey)(preservedSegment);\n return(/*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__.TemplateContext.Provider, {\n value: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ScrollAndFocusHandler, {\n segmentPath: segmentPath,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_error_boundary__WEBPACK_IMPORTED_MODULE_6__.ErrorBoundary, {\n errorComponent: error,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(LoadingBoundary, {\n hasLoading: hasLoading,\n loading: loading,\n loadingStyles: loadingStyles,\n loadingScripts: loadingScripts,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_not_found_boundary__WEBPACK_IMPORTED_MODULE_10__.NotFoundBoundary, {\n notFound: notFound,\n notFoundStyles: notFoundStyles,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_redirect_boundary__WEBPACK_IMPORTED_MODULE_9__.RedirectBoundary, {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(InnerLayoutRouter, {\n parallelRouterKey: parallelRouterKey,\n url: url,\n tree: tree,\n childNodes: childNodesForParallelRouter,\n segmentPath: segmentPath,\n cacheKey: cacheKey,\n isActive: currentChildSegmentValue === preservedSegmentValue\n })\n })\n })\n })\n })\n }),\n children: [\n templateStyles,\n templateScripts,\n template\n ]\n }, (0,_router_reducer_create_router_cache_key__WEBPACK_IMPORTED_MODULE_12__.createRouterCacheKey)(preservedSegment, true)));\n })\n ]\n });\n} //# sourceMappingURL=layout-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7NkRBRXNGO0FBQ007QUFDM0Q7QUFDb0c7QUFDeEQ7QUFDbEI7QUFDVjtBQUNEO0FBQ3dDO0FBQ2pDO0FBQ0M7QUFDc0I7QUFDRTtBQUNoRjs7O0NBR0MsR0FBRyxTQUFTeUIsZUFBZUMsaUJBQWlCLEVBQUVDLGNBQWM7SUFDekQsSUFBSUQsbUJBQW1CO1FBQ25CLE1BQU0sQ0FBQ0UsU0FBU0MsaUJBQWlCLEdBQUdIO1FBQ3BDLE1BQU1JLFNBQVNKLGtCQUFrQkssTUFBTSxLQUFLO1FBQzVDLElBQUlaLDZEQUFZQSxDQUFDUSxjQUFjLENBQUMsRUFBRSxFQUFFQyxVQUFVO1lBQzFDLElBQUlELGNBQWMsQ0FBQyxFQUFFLENBQUNLLGNBQWMsQ0FBQ0gsbUJBQW1CO2dCQUNwRCxJQUFJQyxRQUFRO29CQUNSLE1BQU1HLFVBQVVSLGVBQWVTLFdBQVdQLGNBQWMsQ0FBQyxFQUFFLENBQUNFLGlCQUFpQjtvQkFDN0UsT0FBTzt3QkFDSEYsY0FBYyxDQUFDLEVBQUU7d0JBQ2pCOzRCQUNJLEdBQUdBLGNBQWMsQ0FBQyxFQUFFOzRCQUNwQixDQUFDRSxpQkFBaUIsRUFBRTtnQ0FDaEJJLE9BQU8sQ0FBQyxFQUFFO2dDQUNWQSxPQUFPLENBQUMsRUFBRTtnQ0FDVkEsT0FBTyxDQUFDLEVBQUU7Z0NBQ1Y7NkJBQ0g7d0JBQ0w7cUJBQ0g7Z0JBQ0w7Z0JBQ0EsT0FBTztvQkFDSE4sY0FBYyxDQUFDLEVBQUU7b0JBQ2pCO3dCQUNJLEdBQUdBLGNBQWMsQ0FBQyxFQUFFO3dCQUNwQixDQUFDRSxpQkFBaUIsRUFBRUosZUFBZUMsa0JBQWtCUyxLQUFLLENBQUMsSUFBSVIsY0FBYyxDQUFDLEVBQUUsQ0FBQ0UsaUJBQWlCO29CQUN0RztpQkFDSDtZQUNMO1FBQ0o7SUFDSjtJQUNBLE9BQU9GO0FB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ZXNtL2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanM/YjM5YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZSwgc3RhcnRUcmFuc2l0aW9uLCBTdXNwZW5zZSwgdXNlRGVmZXJyZWRWYWx1ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IExheW91dFJvdXRlckNvbnRleHQsIEdsb2JhbExheW91dFJvdXRlckNvbnRleHQsIFRlbXBsYXRlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiO1xuaW1wb3J0IHsgZmV0Y2hTZXJ2ZXJSZXNwb25zZSB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyL2ZldGNoLXNlcnZlci1yZXNwb25zZVwiO1xuaW1wb3J0IHsgY3JlYXRlSW5maW5pdGVQcm9taXNlIH0gZnJvbSBcIi4vaW5maW5pdGUtcHJvbWlzZVwiO1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuL2Vycm9yLWJvdW5kYXJ5XCI7XG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tIFwiLi9tYXRjaC1zZWdtZW50c1wiO1xuaW1wb3J0IHsgaGFuZGxlU21vb3RoU2Nyb2xsIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2hhbmRsZS1zbW9vdGgtc2Nyb2xsXCI7XG5pbXBvcnQgeyBSZWRpcmVjdEJvdW5kYXJ5IH0gZnJvbSBcIi4vcmVkaXJlY3QtYm91bmRhcnlcIjtcbmltcG9ydCB7IE5vdEZvdW5kQm91bmRhcnkgfSBmcm9tIFwiLi9ub3QtZm91bmQtYm91bmRhcnlcIjtcbmltcG9ydCB7IGdldFNlZ21lbnRWYWx1ZSB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2dldC1zZWdtZW50LXZhbHVlXCI7XG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5XCI7XG4vKipcbiAqIEFkZCByZWZldGNoIG1hcmtlciB0byByb3V0ZXIgc3RhdGUgYXQgdGhlIHBvaW50IG9mIHRoZSBjdXJyZW50IGxheW91dCBzZWdtZW50LlxuICogVGhpcyBlbnN1cmVzIHRoZSByZXNwb25zZSByZXR1cm5lZCBpcyBub3QgZnVydGhlciBkb3duIHRoYW4gdGhlIGN1cnJlbnQgbGF5b3V0IHNlZ21lbnQuXG4gKi8gZnVuY3Rpb24gd2Fsa0FkZFJlZmV0Y2goc2VnbWVudFBhdGhUb1dhbGssIHRyZWVUb1JlY3JlYXRlKSB7XG4gICAgaWYgKHNlZ21lbnRQYXRoVG9XYWxrKSB7XG4gICAgICAgIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlS2V5XSA9IHNlZ21lbnRQYXRoVG9XYWxrO1xuICAgICAgICBjb25zdCBpc0xhc3QgPSBzZWdtZW50UGF0aFRvV2Fsay5sZW5ndGggPT09IDI7XG4gICAgICAgIGlmIChtYXRjaFNlZ21lbnQodHJlZVRvUmVjcmVhdGVbMF0sIHNlZ21lbnQpKSB7XG4gICAgICAgICAgICBpZiAodHJlZVRvUmVjcmVhdGVbMV0uaGFzT3duUHJvcGVydHkocGFyYWxsZWxSb3V0ZUtleSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNMYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1YlRyZWUgPSB3YWxrQWRkUmVmZXRjaCh1bmRlZmluZWQsIHRyZWVUb1JlY3JlYXRlWzFdW3BhcmFsbGVsUm91dGVLZXldKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRyZWVUb1JlY3JlYXRlWzFdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJhbGxlbFJvdXRlS2V5XTogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJUcmVlWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJUcmVlWzFdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJUcmVlWzJdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlZmV0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdHJlZVRvUmVjcmVhdGVbMF0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRyZWVUb1JlY3JlYXRlWzFdLFxuICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmFsbGVsUm91dGVLZXldOiB3YWxrQWRkUmVmZXRjaChzZWdtZW50UGF0aFRvV2Fsay5zbGljZSgyKSwgdHJlZVRvUmVjcmVhdGVbMV1bcGFyYWxsZWxSb3V0ZUtleV0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cmVlVG9SZWNyZWF0ZTtcbn1cbi8vIFRPRE8tQVBQOiBSZXBsYWNlIHdpdGggbmV3IFJlYWN0IEFQSSBmb3IgZmluZGluZyBkb20gbm9kZXMgd2l0aG91dCBhIGByZWZgIHdoZW4gYXZhaWxhYmxlXG4vKipcbiAqIFdyYXBzIFJlYWN0RE9NLmZpbmRET01Ob2RlIHdpdGggYWRkaXRpb25hbCBsb2dpYyB0byBoaWRlIFJlYWN0IFN0cmljdCBNb2RlIHdhcm5pbmdcbiAqLyBmdW5jdGlvbiBmaW5kRE9NTm9kZShpbnN0YW5jZSkge1xuICAgIC8vIFRyZWUtc2hha2UgZm9yIHNlcnZlciBidW5kbGVcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIG51bGw7XG4gICAgLy8gT25seSBhcHBseSBzdHJpY3QgbW9kZSB3YXJuaW5nIHdoZW4gbm90IGluIHByb2R1Y3Rpb25cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQ29uc29sZUVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBmb3IodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBtZXNzYWdlcyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5Kyspe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHN0cmljdCBtb2RlIHdhcm5pbmcgZm9yIHRoZSBmaW5kRG9tTm9kZSBjYWxsIGJlbG93XG4gICAgICAgICAgICAgICAgaWYgKCFtZXNzYWdlc1swXS5pbmNsdWRlcyhcIldhcm5pbmc6ICVzIGlzIGRlcHJlY2F0ZWQgaW4gU3RyaWN0TW9kZS5cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxDb25zb2xlRXJyb3IoLi4ubWVzc2FnZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gUmVhY3RET00uZmluZERPTU5vZGUoaW5zdGFuY2UpO1xuICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yID0gb3JpZ2luYWxDb25zb2xlRXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFJlYWN0RE9NLmZpbmRET01Ob2RlKGluc3RhbmNlKTtcbn1cbmNvbnN0IHJlY3RQcm9wZXJ0aWVzID0gW1xuICAgIFwiYm90dG9tXCIsXG4gICAgXCJoZWlnaHRcIixcbiAgICBcImxlZnRcIixcbiAgICBcInJpZ2h0XCIsXG4gICAgXCJ0b3BcIixcbiAgICBcIndpZHRoXCIsXG4gICAgXCJ4XCIsXG4gICAgXCJ5XCJcbl07XG4vKipcbiAqIENoZWNrIGlmIGEgSFRNTEVsZW1lbnQgaXMgaGlkZGVuIG9yIGZpeGVkL3N0aWNreSBwb3NpdGlvblxuICovIGZ1bmN0aW9uIHNob3VsZFNraXBFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAvLyB3ZSBpZ25vcmUgZml4ZWQgb3Igc3RpY2t5IHBvc2l0aW9uZWQgZWxlbWVudHMgc2luY2UgdGhleSdsbCBsaWtlbHkgcGFzcyB0aGUgXCJpbi12aWV3cG9ydFwiIGNoZWNrXG4gICAgLy8gYW5kIHdpbGwgcmVzdWx0IGluIGEgc2l0dWF0aW9uIHdlIGJhaWwgb24gc2Nyb2xsIGJlY2F1c2Ugb2Ygc29tZXRoaW5nIGxpa2UgYSBmaXhlZCBuYXYsXG4gICAgLy8gZXZlbiB0aG91Z2ggdGhlIGFjdHVhbCBwYWdlIGNvbnRlbnQgaXMgb2Zmc2NyZWVuXG4gICAgaWYgKFtcbiAgICAgICAgXCJzdGlja3lcIixcbiAgICAgICAgXCJmaXhlZFwiXG4gICAgXS5pbmNsdWRlcyhnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiU2tpcHBpbmcgYXV0by1zY3JvbGwgYmVoYXZpb3IgZHVlIHRvIGBwb3NpdGlvbjogc3RpY2t5YCBvciBgcG9zaXRpb246IGZpeGVkYCBvbiBlbGVtZW50OlwiLCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gVXNlcyBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YCB0byBjaGVjayBpZiB0aGUgZWxlbWVudCBpcyBoaWRkZW4gaW5zdGVhZCBvZiBgb2Zmc2V0UGFyZW50YFxuICAgIC8vIGJlY2F1c2UgYG9mZnNldFBhcmVudGAgZG9lc24ndCBjb25zaWRlciBkb2N1bWVudC9ib2R5XG4gICAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIHJlY3RQcm9wZXJ0aWVzLmV2ZXJ5KChpdGVtKT0+cmVjdFtpdGVtXSA9PT0gMCk7XG59XG4vKipcbiAqIENoZWNrIGlmIHRoZSB0b3AgY29ybmVyIG9mIHRoZSBIVE1MRWxlbWVudCBpcyBpbiB0aGUgdmlld3BvcnQuXG4gKi8gZnVuY3Rpb24gdG9wT2ZFbGVtZW50SW5WaWV3cG9ydChlbGVtZW50LCB2aWV3cG9ydEhlaWdodCkge1xuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiByZWN0LnRvcCA+PSAwICYmIHJlY3QudG9wIDw9IHZpZXdwb3J0SGVpZ2h0O1xufVxuLyoqXG4gKiBGaW5kIHRoZSBET00gbm9kZSBmb3IgYSBoYXNoIGZyYWdtZW50LlxuICogSWYgYHRvcGAgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlLiBUaGlzIG1pcnJvcnMgdGhlIGJyb3dzZXIncyBiZWhhdmlvci5cbiAqIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGFuIGlkLCB0aGUgcGFnZSBoYXMgdG8gc2Nyb2xsIHRvIHRoZSBlbGVtZW50IHdpdGggdGhhdCBpZC5cbiAqIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGEgbmFtZSwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZmlyc3QgZWxlbWVudCB3aXRoIHRoYXQgbmFtZS5cbiAqLyBmdW5jdGlvbiBnZXRIYXNoRnJhZ21lbnREb21Ob2RlKGhhc2hGcmFnbWVudCkge1xuICAgIC8vIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGB0b3BgIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgcGFnZS5cbiAgICBpZiAoaGFzaEZyYWdtZW50ID09PSBcInRvcFwiKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5O1xuICAgIH1cbiAgICB2YXIgX2RvY3VtZW50X2dldEVsZW1lbnRCeUlkO1xuICAgIC8vIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGFuIGlkLCB0aGUgcGFnZSBoYXMgdG8gc2Nyb2xsIHRvIHRoZSBlbGVtZW50IHdpdGggdGhhdCBpZC5cbiAgICByZXR1cm4gKF9kb2N1bWVudF9nZXRFbGVtZW50QnlJZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhhc2hGcmFnbWVudCkpICE9IG51bGwgPyBfZG9jdW1lbnRfZ2V0RWxlbWVudEJ5SWQgOiAvLyBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhIG5hbWUsIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIGZpcnN0IGVsZW1lbnQgd2l0aCB0aGF0IG5hbWUuXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoaGFzaEZyYWdtZW50KVswXTtcbn1cbmNsYXNzIElubmVyU2Nyb2xsQW5kRm9jdXNIYW5kbGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVQb3RlbnRpYWxTY3JvbGwoKTtcbiAgICB9XG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgICAvLyBCZWNhdXNlIHRoaXMgcHJvcGVydHkgaXMgb3ZlcndyaXR0ZW4gaW4gaGFuZGxlUG90ZW50aWFsU2Nyb2xsIGl0J3MgZmluZSB0byBhbHdheXMgcnVuIGl0IHdoZW4gdHJ1ZSBhcyBpdCdsbCBiZSBzZXQgdG8gZmFsc2UgZm9yIHN1YnNlcXVlbnQgcmVuZGVycy5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUG90ZW50aWFsU2Nyb2xsKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoLi4uYXJncyl7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgICB0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCA9ICgpPT57XG4gICAgICAgICAgICAvLyBIYW5kbGUgc2Nyb2xsIGFuZCBmb2N1cywgaXQncyBvbmx5IGFwcGxpZWQgb25jZSBpbiB0aGUgZmlyc3QgdXNlRWZmZWN0IHRoYXQgdHJpZ2dlcnMgdGhhdCBjaGFuZ2VkLlxuICAgICAgICAgICAgY29uc3QgeyBmb2N1c0FuZFNjcm9sbFJlZiwgc2VnbWVudFBhdGggfSA9IHRoaXMucHJvcHM7XG4gICAgICAgICAgICBpZiAoZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkpIHtcbiAgICAgICAgICAgICAgICAvLyBzZWdtZW50UGF0aHMgaXMgYW4gYXJyYXkgb2Ygc2VnbWVudCBwYXRocyB0aGF0IHNob3VsZCBiZSBzY3JvbGxlZCB0b1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHNlZ21lbnQgcGF0aCBpcyBub3QgaW4gdGhlIGFycmF5LCB0aGUgc2Nyb2xsIGlzIG5vdCBhcHBsaWVkXG4gICAgICAgICAgICAgICAgLy8gdW5sZXNzIHRoZSBhcnJheSBpcyBlbXB0eSwgaW4gd2hpY2ggY2FzZSB0aGUgc2Nyb2xsIGlzIGFsd2F5cyBhcHBsaWVkXG4gICAgICAgICAgICAgICAgaWYgKGZvY3VzQW5kU2Nyb2xsUmVmLnNlZ21lbnRQYXRocy5sZW5ndGggIT09IDAgJiYgIWZvY3VzQW5kU2Nyb2xsUmVmLnNlZ21lbnRQYXRocy5zb21lKChzY3JvbGxSZWZTZWdtZW50UGF0aCk9PnNlZ21lbnRQYXRoLmV2ZXJ5KChzZWdtZW50LCBpbmRleCk9Pm1hdGNoU2VnbWVudChzZWdtZW50LCBzY3JvbGxSZWZTZWdtZW50UGF0aFtpbmRleF0pKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzaEZyYWdtZW50ID0gZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50O1xuICAgICAgICAgICAgICAgIGlmIChoYXNoRnJhZ21lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9tTm9kZSA9IGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYGZpbmRET01Ob2RlYCBpcyB0cmlja3kgYmVjYXVzZSBpdCByZXR1cm5zIGp1c3QgdGhlIGZpcnN0IGNoaWxkIGlmIHRoZSBjb21wb25lbnQgaXMgYSBmcmFnbWVudC5cbiAgICAgICAgICAgICAgICAvLyBUaGlzIGFscmVhZHkgY2F1c2VkIGEgYnVnIHdoZXJlIHRoZSBmaXJzdCBjaGlsZCB3YXMgYSA8bGluay8+IGluIGhlYWQuXG4gICAgICAgICAgICAgICAgaWYgKCFkb21Ob2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbU5vZGUgPSBmaW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gRE9NIG5vZGUgdGhpcyBsYXlvdXQtcm91dGVyIGxldmVsIGlzIHNraXBwZWQuIEl0J2xsIGJlIGhhbmRsZWQgaGlnaGVyLXVwIGluIHRoZSB0cmVlLlxuICAgICAgICAgICAgICAgIGlmICghKGRvbU5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFZlcmlmeSBpZiB0aGUgZWxlbWVudCBpcyBhIEhUTUxFbGVtZW50IGFuZCBpZiB3ZSB3YW50IHRvIGNvbnNpZGVyIGl0IGZvciBzY3JvbGwgYmVoYXZpb3IuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgc2tpcHBlZCwgdHJ5IHRvIHNlbGVjdCB0aGUgbmV4dCBzaWJsaW5nIGFuZCB0cnkgYWdhaW4uXG4gICAgICAgICAgICAgICAgd2hpbGUoIShkb21Ob2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHx8IHNob3VsZFNraXBFbGVtZW50KGRvbU5vZGUpKXtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm8gc2libGluZ3MgZm91bmQgdGhhdCBtYXRjaCB0aGUgY3JpdGVyaWEgYXJlIGZvdW5kLCBzbyBoYW5kbGUgc2Nyb2xsIGhpZ2hlciB1cCBpbiB0aGUgdHJlZSBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgICAgICBpZiAoZG9tTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkb21Ob2RlID0gZG9tTm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFN0YXRlIGlzIG11dGF0ZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGZvY3VzIGFuZCBzY3JvbGwgaXMgYXBwbGllZCBvbmx5IG9uY2UuXG4gICAgICAgICAgICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBmb2N1c0FuZFNjcm9sbFJlZi5oYXNoRnJhZ21lbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLnNlZ21lbnRQYXRocyA9IFtdO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNtb290aFNjcm9sbCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAvLyBJbiBjYXNlIG9mIGhhc2ggc2Nyb2xsLCB3ZSBvbmx5IG5lZWQgdG8gc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlld1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzaEZyYWdtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb21Ob2RlLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgdmlld3BvcnQgaGVpZ2h0IGJlY2F1c2UgcmVhZGluZyBgY2xpZW50SGVpZ2h0YCBjYXVzZXMgYSByZWZsb3csXG4gICAgICAgICAgICAgICAgICAgIC8vIGFuZCBpdCB3b24ndCBjaGFuZ2UgZHVyaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IGh0bWxFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGVsZW1lbnQncyB0b3AgZWRnZSBpcyBhbHJlYWR5IGluIHRoZSB2aWV3cG9ydCwgZXhpdCBlYXJseS5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvcE9mRWxlbWVudEluVmlld3BvcnQoZG9tTm9kZSwgdmlld3BvcnRIZWlnaHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB0cnkgc2Nyb2xsaW5nIGdvIHRoZSB0b3Agb2YgdGhlIGRvY3VtZW50IHRvIGJlIGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBwYWdlc1xuICAgICAgICAgICAgICAgICAgICAvLyBzY3JvbGxJbnRvVmlldygpIGNhbGxlZCBvbiBgPGh0bWwvPmAgZWxlbWVudCBzY3JvbGxzIGhvcml6b250YWxseSBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggKHRoYXQgc2hvdWxkbid0IGhhcHBlbilcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgY291bGQgdXNlIGl0IHRvIHNjcm9sbCBob3Jpem9udGFsbHkgZm9sbG93aW5nIFJUTCBidXQgdGhhdCBhbHNvIHNlZW1zIHRvIGJlIGJyb2tlbiAtIGl0IHdpbGwgYWx3YXlzIHNjcm9sbCBsZWZ0XG4gICAgICAgICAgICAgICAgICAgIC8vIHNjcm9sbExlZnQgPSAwIGFsc28gc2VlbXMgdG8gaWdub3JlIFJUTCBhbmQgbWFudWFsbHkgY2hlY2tpbmcgZm9yIFJUTCBpcyB0b28gbXVjaCBoYXNzbGUgc28gd2Ugd2lsbCBzY3JvbGwganVzdCB2ZXJ0aWNhbGx5XG4gICAgICAgICAgICAgICAgICAgIGh0bWxFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNjcm9sbCB0byBkb21Ob2RlIGlmIGRvbU5vZGUgaXMgbm90IGluIHZpZXdwb3J0IHdoZW4gc2Nyb2xsZWQgdG8gdG9wIG9mIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgIGlmICghdG9wT2ZFbGVtZW50SW5WaWV3cG9ydChkb21Ob2RlLCB2aWV3cG9ydEhlaWdodCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbU5vZGUuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2lsbCBmb3JjZSBsYXlvdXQgYnkgcXVlcnlpbmcgZG9tTm9kZSBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICBkb250Rm9yY2VMYXlvdXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG9ubHlIYXNoQ2hhbmdlOiBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIE11dGF0ZSBhZnRlciBzY3JvbGxpbmcgc28gdGhhdCBpdCBjYW4gYmUgcmVhZCBieSBgaGFuZGxlU21vb3RoU2Nyb2xsYFxuICAgICAgICAgICAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLm9ubHlIYXNoQ2hhbmdlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gU2V0IGZvY3VzIG9uIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgZG9tTm9kZS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn1cbmZ1bmN0aW9uIFNjcm9sbEFuZEZvY3VzSGFuZGxlcihwYXJhbSkge1xuICAgIGxldCB7IHNlZ21lbnRQYXRoLCBjaGlsZHJlbiB9ID0gcGFyYW07XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImludmFyaWFudCBnbG9iYWwgbGF5b3V0IHJvdXRlciBub3QgbW91bnRlZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChJbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlciwge1xuICAgICAgICBzZWdtZW50UGF0aDogc2VnbWVudFBhdGgsXG4gICAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmOiBjb250ZXh0LmZvY3VzQW5kU2Nyb2xsUmVmLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KTtcbn1cbi8qKlxuICogSW5uZXJMYXlvdXRSb3V0ZXIgaGFuZGxlcyByZW5kZXJpbmcgdGhlIHByb3ZpZGVkIHNlZ21lbnQgYmFzZWQgb24gdGhlIGNhY2hlLlxuICovIGZ1bmN0aW9uIElubmVyTGF5b3V0Um91dGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgcGFyYWxsZWxSb3V0ZXJLZXksIHVybCwgY2hpbGROb2Rlcywgc2VnbWVudFBhdGgsIHRyZWUsIC8vIFRPRE8tQVBQOiBpbXBsZW1lbnQgYDxPZmZzY3JlZW4+YCB3aGVuIGF2YWlsYWJsZS5cbiAgICAvLyBpc0FjdGl2ZSxcbiAgICBjYWNoZUtleSB9ID0gcGFyYW07XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImludmFyaWFudCBnbG9iYWwgbGF5b3V0IHJvdXRlciBub3QgbW91bnRlZFwiKTtcbiAgICB9XG4gICAgY29uc3QgeyBidWlsZElkLCBjaGFuZ2VCeVNlcnZlclJlc3BvbnNlLCB0cmVlOiBmdWxsVHJlZSB9ID0gY29udGV4dDtcbiAgICAvLyBSZWFkIHNlZ21lbnQgcGF0aCBmcm9tIHRoZSBwYXJhbGxlbCByb3V0ZXIgY2FjaGUgbm9kZS5cbiAgICBsZXQgY2hpbGROb2RlID0gY2hpbGROb2Rlcy5nZXQoY2FjaGVLZXkpO1xuICAgIC8vIFdoZW4gZGF0YSBpcyBub3QgYXZhaWxhYmxlIGR1cmluZyByZW5kZXJpbmcgY2xpZW50LXNpZGUgd2UgbmVlZCB0byBmZXRjaFxuICAgIC8vIGl0IGZyb20gdGhlIHNlcnZlci5cbiAgICBpZiAoY2hpbGROb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbmV3TGF6eUNhY2hlTm9kZSA9IHtcbiAgICAgICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICAgICAgcnNjOiBudWxsLFxuICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgICAgICBoZWFkOiBudWxsLFxuICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKVxuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgKiBGbGlnaHQgZGF0YSBmZXRjaCBraWNrZWQgb2ZmIGR1cmluZyByZW5kZXIgYW5kIHB1dCBpbnRvIHRoZSBjYWNoZS5cbiAgICAgKi8gY2hpbGROb2RlID0gbmV3TGF6eUNhY2hlTm9kZTtcbiAgICAgICAgY2hpbGROb2Rlcy5zZXQoY2FjaGVLZXksIG5ld0xhenlDYWNoZU5vZGUpO1xuICAgIH1cbiAgICAvLyBgcnNjYCByZXByZXNlbnRzIHRoZSByZW5kZXJhYmxlIG5vZGUgZm9yIHRoaXMgc2VnbWVudC5cbiAgICAvLyBJZiB0aGlzIHNlZ21lbnQgaGFzIGEgYHByZWZldGNoUnNjYCwgaXQncyB0aGUgc3RhdGljYWxseSBwcmVmZXRjaGVkIGRhdGEuXG4gICAgLy8gV2Ugc2hvdWxkIHVzZSB0aGF0IG9uIGluaXRpYWwgcmVuZGVyIGluc3RlYWQgb2YgYHJzY2AuIFRoZW4gd2UnbGwgc3dpdGNoXG4gICAgLy8gdG8gYHJzY2Agd2hlbiB0aGUgZHluYW1pYyByZXNwb25zZSBzdHJlYW1zIGluLlxuICAgIC8vXG4gICAgLy8gSWYgbm8gcHJlZmV0Y2ggZGF0YSBpcyBhdmFpbGFibGUsIHRoZW4gd2UgZ28gc3RyYWlnaHQgdG8gcmVuZGVyaW5nIGByc2NgLlxuICAgIGNvbnN0IHJlc29sdmVkUHJlZmV0Y2hSc2MgPSBjaGlsZE5vZGUucHJlZmV0Y2hSc2MgIT09IG51bGwgPyBjaGlsZE5vZGUucHJlZmV0Y2hSc2MgOiBjaGlsZE5vZGUucnNjO1xuICAgIC8vIFdlIHVzZSBgdXNlRGVmZXJyZWRWYWx1ZWAgdG8gaGFuZGxlIHN3aXRjaGluZyBiZXR3ZWVuIHRoZSBwcmVmZXRjaGVkIGFuZFxuICAgIC8vIGZpbmFsIHZhbHVlcy4gVGhlIHNlY29uZCBhcmd1bWVudCBpcyByZXR1cm5lZCBvbiBpbml0aWFsIHJlbmRlciwgdGhlbiBpdFxuICAgIC8vIHJlLXJlbmRlcnMgd2l0aCB0aGUgZmlyc3QgYXJndW1lbnQuXG4gICAgLy9cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYHVzZURlZmVycmVkVmFsdWVgIGlzIG9ubHlcbiAgICAvLyBhdmFpbGFibGUgaW4gdGhlIGV4cGVyaW1lbnRhbCBidWlsZHMuIFdoZW4gaXRzIGRpc2FibGVkLCBpdCB3aWxsIGFsd2F5c1xuICAgIC8vIHJldHVybiBgcnNjYC5cbiAgICBjb25zdCByc2MgPSB1c2VEZWZlcnJlZFZhbHVlKGNoaWxkTm9kZS5yc2MsIHJlc29sdmVkUHJlZmV0Y2hSc2MpO1xuICAgIC8vIGByc2NgIGlzIGVpdGhlciBhIFJlYWN0IG5vZGUgb3IgYSBwcm9taXNlIGZvciBhIFJlYWN0IG5vZGUsIGV4Y2VwdCB3ZVxuICAgIC8vIHNwZWNpYWwgY2FzZSBgbnVsbGAgdG8gcmVwcmVzZW50IHRoYXQgdGhpcyBzZWdtZW50J3MgZGF0YSBpcyBtaXNzaW5nLiBJZlxuICAgIC8vIGl0J3MgYSBwcm9taXNlLCB3ZSBuZWVkIHRvIHVud3JhcCBpdCBzbyB3ZSBjYW4gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZVxuICAgIC8vIGRhdGEgaXMgbWlzc2luZy5cbiAgICBjb25zdCByZXNvbHZlZFJzYyA9IHR5cGVvZiByc2MgPT09IFwib2JqZWN0XCIgJiYgcnNjICE9PSBudWxsICYmIHR5cGVvZiByc2MudGhlbiA9PT0gXCJmdW5jdGlvblwiID8gdXNlKHJzYykgOiByc2M7XG4gICAgaWYgKCFyZXNvbHZlZFJzYykge1xuICAgICAgICAvLyBUaGUgZGF0YSBmb3IgdGhpcyBzZWdtZW50IGlzIG5vdCBhdmFpbGFibGUsIGFuZCB0aGVyZSdzIG5vIHBlbmRpbmdcbiAgICAgICAgLy8gbmF2aWdhdGlvbiB0aGF0IHdpbGwgYmUgYWJsZSB0byBmdWxmaWxsIGl0LiBXZSBuZWVkIHRvIGZldGNoIG1vcmUgZnJvbVxuICAgICAgICAvLyB0aGUgc2VydmVyIGFuZCBwYXRjaCB0aGUgY2FjaGUuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZXJlJ3MgYWxyZWFkeSBhIHBlbmRpbmcgcmVxdWVzdC5cbiAgICAgICAgbGV0IGxhenlEYXRhID0gY2hpbGROb2RlLmxhenlEYXRhO1xuICAgICAgICBpZiAobGF6eURhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICogUm91dGVyIHN0YXRlIHdpdGggcmVmZXRjaCBtYXJrZXIgYWRkZWRcbiAgICAgICAqLyAvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICAgICAgICBjb25zdCByZWZldGNoVHJlZSA9IHdhbGtBZGRSZWZldGNoKFtcbiAgICAgICAgICAgICAgICBcIlwiLFxuICAgICAgICAgICAgICAgIC4uLnNlZ21lbnRQYXRoXG4gICAgICAgICAgICBdLCBmdWxsVHJlZSk7XG4gICAgICAgICAgICBjaGlsZE5vZGUubGF6eURhdGEgPSBsYXp5RGF0YSA9IGZldGNoU2VydmVyUmVzcG9uc2UobmV3IFVSTCh1cmwsIGxvY2F0aW9uLm9yaWdpbiksIHJlZmV0Y2hUcmVlLCBjb250ZXh0Lm5leHRVcmwsIGJ1aWxkSWQpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAqIEZsaWdodCByZXNwb25zZSBkYXRhXG4gICAgICovIC8vIFdoZW4gdGhlIGRhdGEgaGFzIG5vdCByZXNvbHZlZCB5ZXQgYHVzZWAgd2lsbCBzdXNwZW5kIGhlcmUuXG4gICAgICAgIGNvbnN0IFtmbGlnaHREYXRhLCBvdmVycmlkZUNhbm9uaWNhbFVybF0gPSB1c2UobGF6eURhdGEpO1xuICAgICAgICAvLyBzZWdtZW50UGF0aCBmcm9tIHRoZSBzZXJ2ZXIgZG9lcyBub3QgbWF0Y2ggdGhlIGxheW91dCdzIHNlZ21lbnRQYXRoXG4gICAgICAgIGNoaWxkTm9kZS5sYXp5RGF0YSA9IG51bGw7XG4gICAgICAgIC8vIHNldFRpbWVvdXQgaXMgdXNlZCB0byBzdGFydCBhIG5ldyB0cmFuc2l0aW9uIGR1cmluZyByZW5kZXIsIHRoaXMgaXMgYW4gaW50ZW50aW9uYWwgaGFjayBhcm91bmQgUmVhY3QuXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKT0+e1xuICAgICAgICAgICAgICAgIGNoYW5nZUJ5U2VydmVyUmVzcG9uc2UoZnVsbFRyZWUsIGZsaWdodERhdGEsIG92ZXJyaWRlQ2Fub25pY2FsVXJsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gU3VzcGVuZCBpbmZpbml0ZWx5IGFzIGBjaGFuZ2VCeVNlcnZlclJlc3BvbnNlYCB3aWxsIGNhdXNlIGEgZGlmZmVyZW50IHBhcnQgb2YgdGhlIHRyZWUgdG8gYmUgcmVuZGVyZWQuXG4gICAgICAgIHVzZShjcmVhdGVJbmZpbml0ZVByb21pc2UoKSk7XG4gICAgfVxuICAgIC8vIElmIHdlIGdldCB0byB0aGlzIHBvaW50LCB0aGVuIHdlIGtub3cgd2UgaGF2ZSBzb21ldGhpbmcgd2UgY2FuIHJlbmRlci5cbiAgICBjb25zdCBzdWJ0cmVlID0gLy8gVGhlIGxheW91dCByb3V0ZXIgY29udGV4dCBuYXJyb3dzIGRvd24gdHJlZSBhbmQgY2hpbGROb2RlcyBhdCBlYWNoIGxldmVsLlxuICAgIC8qI19fUFVSRV9fKi8gX2pzeChMYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICB0cmVlOiB0cmVlWzFdW3BhcmFsbGVsUm91dGVyS2V5XSxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IGNoaWxkTm9kZS5wYXJhbGxlbFJvdXRlcyxcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBvdmVycmlkaW5nIG9mIHVybCBmb3IgcGFyYWxsZWwgcm91dGVzXG4gICAgICAgICAgICB1cmw6IHVybFxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogcmVzb2x2ZWRSc2NcbiAgICB9KTtcbiAgICAvLyBFbnN1cmUgcm9vdCBsYXlvdXQgaXMgbm90IHdyYXBwZWQgaW4gYSBkaXYgYXMgdGhlIHJvb3QgbGF5b3V0IHJlbmRlcnMgYDxodG1sPmBcbiAgICByZXR1cm4gc3VidHJlZTtcbn1cbi8qKlxuICogUmVuZGVycyBzdXNwZW5zZSBib3VuZGFyeSB3aXRoIHRoZSBwcm92aWRlZCBcImxvYWRpbmdcIiBwcm9wZXJ0eSBhcyB0aGUgZmFsbGJhY2suXG4gKiBJZiBubyBsb2FkaW5nIHByb3BlcnR5IGlzIHByb3ZpZGVkIGl0IHJlbmRlcnMgdGhlIGNoaWxkcmVuIHdpdGhvdXQgYSBzdXNwZW5zZSBib3VuZGFyeS5cbiAqLyBmdW5jdGlvbiBMb2FkaW5nQm91bmRhcnkocGFyYW0pIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgbG9hZGluZywgbG9hZGluZ1N0eWxlcywgbG9hZGluZ1NjcmlwdHMsIGhhc0xvYWRpbmcgfSA9IHBhcmFtO1xuICAgIGlmIChoYXNMb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goU3VzcGVuc2UsIHtcbiAgICAgICAgICAgIGZhbGxiYWNrOiAvKiNfX1BVUkVfXyovIF9qc3hzKF9GcmFnbWVudCwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTY3JpcHRzLFxuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goX0ZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pO1xufVxuLyoqXG4gKiBPdXRlckxheW91dFJvdXRlciBoYW5kbGVzIHRoZSBjdXJyZW50IHNlZ21lbnQgYXMgd2VsbCBhcyA8T2Zmc2NyZWVuPiByZW5kZXJpbmcgb2Ygb3RoZXIgc2VnbWVudHMuXG4gKiBJdCBjYW4gYmUgcmVuZGVyZWQgbmV4dCB0byBlYWNoIG90aGVyIHdpdGggYSBkaWZmZXJlbnQgYHBhcmFsbGVsUm91dGVyS2V5YCwgYWxsb3dpbmcgZm9yIFBhcmFsbGVsIHJvdXRlcy5cbiAqLyBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBPdXRlckxheW91dFJvdXRlcihwYXJhbSkge1xuICAgIGxldCB7IHBhcmFsbGVsUm91dGVyS2V5LCBzZWdtZW50UGF0aCwgZXJyb3IsIGVycm9yU3R5bGVzLCBlcnJvclNjcmlwdHMsIHRlbXBsYXRlU3R5bGVzLCB0ZW1wbGF0ZVNjcmlwdHMsIGxvYWRpbmcsIGxvYWRpbmdTdHlsZXMsIGxvYWRpbmdTY3JpcHRzLCBoYXNMb2FkaW5nLCB0ZW1wbGF0ZSwgbm90Rm91bmQsIG5vdEZvdW5kU3R5bGVzLCBzdHlsZXMgfSA9IHBhcmFtO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KExheW91dFJvdXRlckNvbnRleHQpO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhcmlhbnQgZXhwZWN0ZWQgbGF5b3V0IHJvdXRlciB0byBiZSBtb3VudGVkXCIpO1xuICAgIH1cbiAgICBjb25zdCB7IGNoaWxkTm9kZXMsIHRyZWUsIHVybCB9ID0gY29udGV4dDtcbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgcGFyYWxsZWxSb3V0ZXIgY2FjaGUgbm9kZVxuICAgIGxldCBjaGlsZE5vZGVzRm9yUGFyYWxsZWxSb3V0ZXIgPSBjaGlsZE5vZGVzLmdldChwYXJhbGxlbFJvdXRlcktleSk7XG4gICAgLy8gSWYgdGhlIHBhcmFsbGVsIHJvdXRlciBjYWNoZSBub2RlIGRvZXMgbm90IGV4aXN0IHlldCwgY3JlYXRlIGl0LlxuICAgIC8vIFRoaXMgd3JpdGVzIHRvIHRoZSBjYWNoZSB3aGVuIHRoZXJlIGlzIG5vIGl0ZW0gaW4gdGhlIGNhY2hlIHlldC4gSXQgbmV2ZXIgKm92ZXJ3cml0ZXMqIGV4aXN0aW5nIGNhY2hlIGl0ZW1zIHdoaWNoIGlzIHdoeSBpdCdzIHNhZmUgaW4gY29uY3VycmVudCBtb2RlLlxuICAgIGlmICghY2hpbGROb2Rlc0ZvclBhcmFsbGVsUm91dGVyKSB7XG4gICAgICAgIGNoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlciA9IG5ldyBNYXAoKTtcbiAgICAgICAgY2hpbGROb2Rlcy5zZXQocGFyYWxsZWxSb3V0ZXJLZXksIGNoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlcik7XG4gICAgfVxuICAgIC8vIEdldCB0aGUgYWN0aXZlIHNlZ21lbnQgaW4gdGhlIHRyZWVcbiAgICAvLyBUaGUgcmVhc29uIGFycmF5cyBhcmUgdXNlZCBpbiB0aGUgZGF0YSBmb3JtYXQgaXMgdGhhdCB0aGVzZSBhcmUgdHJhbnNmZXJyZWQgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBicm93c2VyIHNvIGl0J3Mgb3B0aW1pemVkIHRvIHNhdmUgYnl0ZXMuXG4gICAgY29uc3QgdHJlZVNlZ21lbnQgPSB0cmVlWzFdW3BhcmFsbGVsUm91dGVyS2V5XVswXTtcbiAgICAvLyBJZiBzZWdtZW50IGlzIGFuIGFycmF5IGl0J3MgYSBkeW5hbWljIHJvdXRlIGFuZCB3ZSB3YW50IHRvIHJlYWQgdGhlIGR5bmFtaWMgcm91dGUgdmFsdWUgYXMgdGhlIHNlZ21lbnQgdG8gZ2V0IGZyb20gdGhlIGNhY2hlLlxuICAgIGNvbnN0IGN1cnJlbnRDaGlsZFNlZ21lbnRWYWx1ZSA9IGdldFNlZ21lbnRWYWx1ZSh0cmVlU2VnbWVudCk7XG4gICAgLyoqXG4gICAqIERlY2lkZXMgd2hpY2ggc2VnbWVudHMgdG8ga2VlcCByZW5kZXJpbmcsIGFsbCBzZWdtZW50cyB0aGF0IGFyZSBub3QgYWN0aXZlIHdpbGwgYmUgd3JhcHBlZCBpbiBgPE9mZnNjcmVlbj5gLlxuICAgKi8gLy8gVE9ETy1BUFA6IEFkZCBoYW5kbGluZyBvZiBgPE9mZnNjcmVlbj5gIHdoZW4gaXQncyBhdmFpbGFibGUuXG4gICAgY29uc3QgcHJlc2VydmVkU2VnbWVudHMgPSBbXG4gICAgICAgIHRyZWVTZWdtZW50XG4gICAgXTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHN0eWxlcyxcbiAgICAgICAgICAgIHByZXNlcnZlZFNlZ21lbnRzLm1hcCgocHJlc2VydmVkU2VnbWVudCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVzZXJ2ZWRTZWdtZW50VmFsdWUgPSBnZXRTZWdtZW50VmFsdWUocHJlc2VydmVkU2VnbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShwcmVzZXJ2ZWRTZWdtZW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm4oLypcbiAgICAgICAgICAgIC0gRXJyb3IgYm91bmRhcnlcbiAgICAgICAgICAgICAgLSBPbmx5IHJlbmRlcnMgZXJyb3IgYm91bmRhcnkgaWYgZXJyb3IgY29tcG9uZW50IGlzIHByb3ZpZGVkLlxuICAgICAgICAgICAgICAtIFJlbmRlcmVkIGZvciBlYWNoIHNlZ21lbnQgdG8gZW5zdXJlIHRoZXkgaGF2ZSB0aGVpciBvd24gZXJyb3Igc3RhdGUuXG4gICAgICAgICAgICAtIExvYWRpbmcgYm91bmRhcnlcbiAgICAgICAgICAgICAgLSBPbmx5IHJlbmRlcnMgc3VzcGVuc2UgYm91bmRhcnkgaWYgbG9hZGluZyBjb21wb25lbnRzIGlzIHByb3ZpZGVkLlxuICAgICAgICAgICAgICAtIFJlbmRlcmVkIGZvciBlYWNoIHNlZ21lbnQgdG8gZW5zdXJlIHRoZXkgaGF2ZSB0aGVpciBvd24gbG9hZGluZyBzdGF0ZS5cbiAgICAgICAgICAgICAgLSBQYXNzZWQgdG8gdGhlIHJvdXRlciBkdXJpbmcgcmVuZGVyaW5nIHRvIGVuc3VyZSBpdCBjYW4gYmUgaW1tZWRpYXRlbHkgcmVuZGVyZWQgd2hlbiBzdXNwZW5kaW5nIG9uIGEgRmxpZ2h0IGZldGNoLlxuICAgICAgICAgICovIC8qI19fUFVSRV9fKi8gX2pzeHMoVGVtcGxhdGVDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAvKiNfX1BVUkVfXyovIF9qc3goU2Nyb2xsQW5kRm9jdXNIYW5kbGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50UGF0aDogc2VnbWVudFBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KEVycm9yQm91bmRhcnksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckNvbXBvbmVudDogZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JTdHlsZXM6IGVycm9yU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yU2NyaXB0czogZXJyb3JTY3JpcHRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goTG9hZGluZ0JvdW5kYXJ5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0xvYWRpbmc6IGhhc0xvYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGxvYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTdHlsZXM6IGxvYWRpbmdTdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTY3JpcHRzOiBsb2FkaW5nU2NyaXB0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChOb3RGb3VuZEJvdW5kYXJ5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZDogbm90Rm91bmQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFN0eWxlczogbm90Rm91bmRTdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFJlZGlyZWN0Qm91bmRhcnksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KElubmVyTGF5b3V0Um91dGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFsbGVsUm91dGVyS2V5OiBwYXJhbGxlbFJvdXRlcktleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWU6IHRyZWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkTm9kZXM6IGNoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudFBhdGg6IHNlZ21lbnRQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUtleTogY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlOiBjdXJyZW50Q2hpbGRTZWdtZW50VmFsdWUgPT09IHByZXNlcnZlZFNlZ21lbnRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVTY3JpcHRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sIGNyZWF0ZVJvdXRlckNhY2hlS2V5KHByZXNlcnZlZFNlZ21lbnQsIHRydWUpKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxheW91dC1yb3V0ZXIuanMubWFwIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIlJlYWN0IiwidXNlQ29udGV4dCIsInVzZSIsInN0YXJ0VHJhbnNpdGlvbiIsIlN1c3BlbnNlIiwidXNlRGVmZXJyZWRWYWx1ZSIsIlJlYWN0RE9NIiwiTGF5b3V0Um91dGVyQ29udGV4dCIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJUZW1wbGF0ZUNvbnRleHQiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiY3JlYXRlSW5maW5pdGVQcm9taXNlIiwiRXJyb3JCb3VuZGFyeSIsIm1hdGNoU2VnbWVudCIsImhhbmRsZVNtb290aFNjcm9sbCIsIlJlZGlyZWN0Qm91bmRhcnkiLCJOb3RGb3VuZEJvdW5kYXJ5IiwiZ2V0U2VnbWVudFZhbHVlIiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJ3YWxrQWRkUmVmZXRjaCIsInNlZ21lbnRQYXRoVG9XYWxrIiwidHJlZVRvUmVjcmVhdGUiLCJzZWdtZW50IiwicGFyYWxsZWxSb3V0ZUtleSIsImlzTGFzdCIsImxlbmd0aCIsImhhc093blByb3BlcnR5Iiwic3ViVHJlZSIsInVuZGVmaW5lZCIsInNsaWNlIiwiZmluZERPTU5vZGUiLCJpbnN0YW5jZSIsInByb2Nlc3MiLCJvcmlnaW5hbENvbnNvbGVFcnJvciIsImNvbnNvbGUiLCJlcnJvciIsIl9sZW4iLCJhcmd1bWVudHMiLCJtZXNzYWdlcyIsIkFycmF5IiwiX2tleSIsImluY2x1ZGVzIiwicmVjdFByb3BlcnRpZXMiLCJzaG91bGRTa2lwRWxlbWVudCIsImVsZW1lbnQiLCJnZXRDb21wdXRlZFN0eWxlIiwicG9zaXRpb24iLCJ3YXJuIiwicmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImV2ZXJ5IiwiaXRlbSIsInRvcE9mRWxlbWVudEluVmlld3BvcnQiLCJ2aWV3cG9ydEhlaWdodCIsInRvcCIsImdldEhhc2hGcmFnbWVudERvbU5vZGUiLCJoYXNoRnJhZ21lbnQiLCJkb2N1bWVudCIsImJvZHkiLCJfZG9jdW1lbnRfZ2V0RWxlbWVudEJ5SWQiLCJnZXRFbGVtZW50QnlJZCIsImdldEVsZW1lbnRzQnlOYW1lIiwiSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXIiLCJDb21wb25lbnQiLCJjb21wb25lbnREaWRNb3VudCIsImhhbmRsZVBvdGVudGlhbFNjcm9sbCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByb3BzIiwiZm9jdXNBbmRTY3JvbGxSZWYiLCJhcHBseSIsInJlbmRlciIsImNoaWxkcmVuIiwiY29uc3RydWN0b3IiLCJhcmdzIiwic2VnbWVudFBhdGgiLCJzZWdtZW50UGF0aHMiLCJzb21lIiwic2Nyb2xsUmVmU2VnbWVudFBhdGgiLCJpbmRleCIsImRvbU5vZGUiLCJFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJuZXh0RWxlbWVudFNpYmxpbmciLCJzY3JvbGxJbnRvVmlldyIsImh0bWxFbGVtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsVG9wIiwiZG9udEZvcmNlTGF5b3V0Iiwib25seUhhc2hDaGFuZ2UiLCJmb2N1cyIsIlNjcm9sbEFuZEZvY3VzSGFuZGxlciIsInBhcmFtIiwiY29udGV4dCIsIkVycm9yIiwiSW5uZXJMYXlvdXRSb3V0ZXIiLCJwYXJhbGxlbFJvdXRlcktleSIsInVybCIsImNoaWxkTm9kZXMiLCJ0cmVlIiwiY2FjaGVLZXkiLCJidWlsZElkIiwiY2hhbmdlQnlTZXJ2ZXJSZXNwb25zZSIsImZ1bGxUcmVlIiwiY2hpbGROb2RlIiwiZ2V0IiwibmV3TGF6eUNhY2hlTm9kZSIsImxhenlEYXRhIiwicnNjIiwicHJlZmV0Y2hSc2MiLCJoZWFkIiwicGFyYWxsZWxSb3V0ZXMiLCJNYXAiLCJzZXQiLCJyZXNvbHZlZFByZWZldGNoUnNjIiwicmVzb2x2ZWRSc2MiLCJ0aGVuIiwicmVmZXRjaFRyZWUiLCJVUkwiLCJsb2NhdGlvbiIsIm9yaWdpbiIsIm5leHRVcmwiLCJmbGlnaHREYXRhIiwib3ZlcnJpZGVDYW5vbmljYWxVcmwiLCJzZXRUaW1lb3V0Iiwic3VidHJlZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJMb2FkaW5nQm91bmRhcnkiLCJsb2FkaW5nIiwibG9hZGluZ1N0eWxlcyIsImxvYWRpbmdTY3JpcHRzIiwiaGFzTG9hZGluZyIsImZhbGxiYWNrIiwiT3V0ZXJMYXlvdXRSb3V0ZXIiLCJlcnJvclN0eWxlcyIsImVycm9yU2NyaXB0cyIsInRlbXBsYXRlU3R5bGVzIiwidGVtcGxhdGVTY3JpcHRzIiwidGVtcGxhdGUiLCJub3RGb3VuZCIsIm5vdEZvdW5kU3R5bGVzIiwic3R5bGVzIiwiY2hpbGROb2Rlc0ZvclBhcmFsbGVsUm91dGVyIiwidHJlZVNlZ21lbnQiLCJjdXJyZW50Q2hpbGRTZWdtZW50VmFsdWUiLCJwcmVzZXJ2ZWRTZWdtZW50cyIsIm1hcCIsInByZXNlcnZlZFNlZ21lbnQiLCJwcmVzZXJ2ZWRTZWdtZW50VmFsdWUiLCJlcnJvckNvbXBvbmVudCIsImlzQWN0aXZlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/layout-router.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/match-segments.js ***!
- \****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ canSegmentBeOverridden: () => (/* binding */ canSegmentBeOverridden),\n/* harmony export */ matchSegment: () => (/* binding */ matchSegment)\n/* harmony export */ });\n/* harmony import */ var _server_app_render_get_segment_param__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../server/app-render/get-segment-param */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-segment-param.js\");\n\nconst matchSegment = (existingSegment, segment)=>{\n // segment is either Array or string\n if (typeof existingSegment === \"string\") {\n if (typeof segment === \"string\") {\n // Common case: segment is just a string\n return existingSegment === segment;\n }\n return false;\n }\n if (typeof segment === \"string\") {\n return false;\n }\n return existingSegment[0] === segment[0] && existingSegment[1] === segment[1];\n};\n/*\n * This function is used to determine if an existing segment can be overridden by the incoming segment.\n */ const canSegmentBeOverridden = (existingSegment, segment)=>{\n var _getSegmentParam;\n if (Array.isArray(existingSegment) || !Array.isArray(segment)) {\n return false;\n }\n return ((_getSegmentParam = (0,_server_app_render_get_segment_param__WEBPACK_IMPORTED_MODULE_0__.getSegmentParam)(existingSegment)) == null ? void 0 : _getSegmentParam.param) === segment[0];\n}; //# sourceMappingURL=match-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbWF0Y2gtc2VnbWVudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRFO0FBQ3JFLE1BQU1DLGVBQWUsQ0FBQ0MsaUJBQWlCQztJQUMxQyxvQ0FBb0M7SUFDcEMsSUFBSSxPQUFPRCxvQkFBb0IsVUFBVTtRQUNyQyxJQUFJLE9BQU9DLFlBQVksVUFBVTtZQUM3Qix3Q0FBd0M7WUFDeEMsT0FBT0Qsb0JBQW9CQztRQUMvQjtRQUNBLE9BQU87SUFDWDtJQUNBLElBQUksT0FBT0EsWUFBWSxVQUFVO1FBQzdCLE9BQU87SUFDWDtJQUNBLE9BQU9ELGVBQWUsQ0FBQyxFQUFFLEtBQUtDLE9BQU8sQ0FBQyxFQUFFLElBQUlELGVBQWUsQ0FBQyxFQUFFLEtBQUtDLE9BQU8sQ0FBQyxFQUFFO0FBQ2pGLEVBQUU7QUFDRjs7Q0FFQyxHQUFVLE1BQU1DLHlCQUF5QixDQUFDRixpQkFBaUJDO0lBQ3hELElBQUlFO0lBQ0osSUFBSUMsTUFBTUMsT0FBTyxDQUFDTCxvQkFBb0IsQ0FBQ0ksTUFBTUMsT0FBTyxDQUFDSixVQUFVO1FBQzNELE9BQU87SUFDWDtJQUNBLE9BQU8sQ0FBQyxDQUFDRSxtQkFBbUJMLHFGQUFlQSxDQUFDRSxnQkFBZSxLQUFNLE9BQU8sS0FBSyxJQUFJRyxpQkFBaUJHLEtBQUssTUFBTUwsT0FBTyxDQUFDLEVBQUU7QUFDM0gsRUFBRSxDQUVGLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbWF0Y2gtc2VnbWVudHMuanM/YjYzMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRTZWdtZW50UGFyYW0gfSBmcm9tIFwiLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LXNlZ21lbnQtcGFyYW1cIjtcbmV4cG9ydCBjb25zdCBtYXRjaFNlZ21lbnQgPSAoZXhpc3RpbmdTZWdtZW50LCBzZWdtZW50KT0+e1xuICAgIC8vIHNlZ21lbnQgaXMgZWl0aGVyIEFycmF5IG9yIHN0cmluZ1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmdTZWdtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgLy8gQ29tbW9uIGNhc2U6IHNlZ21lbnQgaXMganVzdCBhIHN0cmluZ1xuICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nU2VnbWVudCA9PT0gc2VnbWVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBleGlzdGluZ1NlZ21lbnRbMF0gPT09IHNlZ21lbnRbMF0gJiYgZXhpc3RpbmdTZWdtZW50WzFdID09PSBzZWdtZW50WzFdO1xufTtcbi8qXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGFuIGV4aXN0aW5nIHNlZ21lbnQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGluY29taW5nIHNlZ21lbnQuXG4gKi8gZXhwb3J0IGNvbnN0IGNhblNlZ21lbnRCZU92ZXJyaWRkZW4gPSAoZXhpc3RpbmdTZWdtZW50LCBzZWdtZW50KT0+e1xuICAgIHZhciBfZ2V0U2VnbWVudFBhcmFtO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nU2VnbWVudCkgfHwgIUFycmF5LmlzQXJyYXkoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKChfZ2V0U2VnbWVudFBhcmFtID0gZ2V0U2VnbWVudFBhcmFtKGV4aXN0aW5nU2VnbWVudCkpID09IG51bGwgPyB2b2lkIDAgOiBfZ2V0U2VnbWVudFBhcmFtLnBhcmFtKSA9PT0gc2VnbWVudFswXTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1hdGNoLXNlZ21lbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJnZXRTZWdtZW50UGFyYW0iLCJtYXRjaFNlZ21lbnQiLCJleGlzdGluZ1NlZ21lbnQiLCJzZWdtZW50IiwiY2FuU2VnbWVudEJlT3ZlcnJpZGRlbiIsIl9nZXRTZWdtZW50UGFyYW0iLCJBcnJheSIsImlzQXJyYXkiLCJwYXJhbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/navigation.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/navigation.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReadonlyURLSearchParams: () => (/* binding */ ReadonlyURLSearchParams),\n/* harmony export */ RedirectType: () => (/* reexport safe */ _redirect__WEBPACK_IMPORTED_MODULE_7__.RedirectType),\n/* harmony export */ ServerInsertedHTMLContext: () => (/* reexport safe */ _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_6__.ServerInsertedHTMLContext),\n/* harmony export */ notFound: () => (/* reexport safe */ _not_found__WEBPACK_IMPORTED_MODULE_8__.notFound),\n/* harmony export */ permanentRedirect: () => (/* reexport safe */ _redirect__WEBPACK_IMPORTED_MODULE_7__.permanentRedirect),\n/* harmony export */ redirect: () => (/* reexport safe */ _redirect__WEBPACK_IMPORTED_MODULE_7__.redirect),\n/* harmony export */ useParams: () => (/* binding */ useParams),\n/* harmony export */ usePathname: () => (/* binding */ usePathname),\n/* harmony export */ useRouter: () => (/* binding */ useRouter),\n/* harmony export */ useSearchParams: () => (/* binding */ useSearchParams),\n/* harmony export */ useSelectedLayoutSegment: () => (/* binding */ useSelectedLayoutSegment),\n/* harmony export */ useSelectedLayoutSegments: () => (/* binding */ useSelectedLayoutSegments),\n/* harmony export */ useServerInsertedHTML: () => (/* reexport safe */ _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_6__.useServerInsertedHTML)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js\");\n/* harmony import */ var _client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./client-hook-in-server-component-error */ \"(ssr)/../../node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js\");\n/* harmony import */ var _router_reducer_reducers_get_segment_value__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js\");\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n/* harmony import */ var _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../shared/lib/server-inserted-html.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js\");\n/* harmony import */ var _redirect__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./redirect */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js\");\n/* harmony import */ var _not_found__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n\n\n\n\n\n\nconst INTERNAL_URLSEARCHPARAMS_INSTANCE = Symbol(\"internal for urlsearchparams readonly\");\nfunction readonlyURLSearchParamsError() {\n return new Error(\"ReadonlyURLSearchParams cannot be modified\");\n}\nclass ReadonlyURLSearchParams {\n [Symbol.iterator]() {\n return this[INTERNAL_URLSEARCHPARAMS_INSTANCE][Symbol.iterator]();\n }\n append() {\n throw readonlyURLSearchParamsError();\n }\n delete() {\n throw readonlyURLSearchParamsError();\n }\n set() {\n throw readonlyURLSearchParamsError();\n }\n sort() {\n throw readonlyURLSearchParamsError();\n }\n constructor(urlSearchParams){\n this[INTERNAL_URLSEARCHPARAMS_INSTANCE] = urlSearchParams;\n this.entries = urlSearchParams.entries.bind(urlSearchParams);\n this.forEach = urlSearchParams.forEach.bind(urlSearchParams);\n this.get = urlSearchParams.get.bind(urlSearchParams);\n this.getAll = urlSearchParams.getAll.bind(urlSearchParams);\n this.has = urlSearchParams.has.bind(urlSearchParams);\n this.keys = urlSearchParams.keys.bind(urlSearchParams);\n this.values = urlSearchParams.values.bind(urlSearchParams);\n this.toString = urlSearchParams.toString.bind(urlSearchParams);\n this.size = urlSearchParams.size;\n }\n}\n/**\n * Get a read-only URLSearchParams object. For example searchParams.get('foo') would return 'bar' when ?foo=bar\n * Learn more about URLSearchParams here: https://developer.mozilla.org/docs/Web/API/URLSearchParams\n */ function useSearchParams() {\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useSearchParams\");\n const searchParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.SearchParamsContext);\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null;\n }\n return new ReadonlyURLSearchParams(searchParams);\n }, [\n searchParams\n ]);\n if (true) {\n // AsyncLocalStorage should not be included in the client bundle.\n const { bailoutToClientRendering } = __webpack_require__(/*! ./bailout-to-client-rendering */ \"(ssr)/../../node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js\");\n // TODO-APP: handle dynamic = 'force-static' here and on the client\n bailoutToClientRendering(\"useSearchParams()\");\n }\n return readonlySearchParams;\n}\n/**\n * Get the current pathname. For example usePathname() on /dashboard?foo=bar would return \"/dashboard\"\n */ function usePathname() {\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"usePathname\");\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.PathnameContext);\n}\n\n/**\n * Get the router methods. For example router.push('/dashboard')\n */ function useRouter() {\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useRouter\");\n const router = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__.AppRouterContext);\n if (router === null) {\n throw new Error(\"invariant expected app router to be mounted\");\n }\n return router;\n}\n// this function performs a depth-first search of the tree to find the selected\n// params\nfunction getSelectedParams(tree, params) {\n if (params === void 0) params = {};\n const parallelRoutes = tree[1];\n for (const parallelRoute of Object.values(parallelRoutes)){\n const segment = parallelRoute[0];\n const isDynamicParameter = Array.isArray(segment);\n const segmentValue = isDynamicParameter ? segment[1] : segment;\n if (!segmentValue || segmentValue.startsWith(_shared_lib_segment__WEBPACK_IMPORTED_MODULE_5__.PAGE_SEGMENT_KEY)) continue;\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll = isDynamicParameter && (segment[2] === \"c\" || segment[2] === \"oc\");\n if (isCatchAll) {\n params[segment[0]] = segment[1].split(\"/\");\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1];\n }\n params = getSelectedParams(parallelRoute, params);\n }\n return params;\n}\n/**\n * Get the current parameters. For example useParams() on /dashboard/[team]\n * where pathname is /dashboard/nextjs would return { team: 'nextjs' }\n */ function useParams() {\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useParams\");\n const globalLayoutRouter = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__.GlobalLayoutRouterContext);\n const pathParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.PathParamsContext);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{\n // When it's under app router\n if (globalLayoutRouter == null ? void 0 : globalLayoutRouter.tree) {\n return getSelectedParams(globalLayoutRouter.tree);\n }\n // When it's under client side pages router\n return pathParams;\n }, [\n globalLayoutRouter == null ? void 0 : globalLayoutRouter.tree,\n pathParams\n ]);\n}\n// TODO-APP: handle parallel routes\n/**\n * Get the canonical parameters from the current level to the leaf node.\n */ function getSelectedLayoutSegmentPath(tree, parallelRouteKey, first, segmentPath) {\n if (first === void 0) first = true;\n if (segmentPath === void 0) segmentPath = [];\n let node;\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey];\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1];\n var _parallelRoutes_children;\n node = (_parallelRoutes_children = parallelRoutes.children) != null ? _parallelRoutes_children : Object.values(parallelRoutes)[0];\n }\n if (!node) return segmentPath;\n const segment = node[0];\n const segmentValue = (0,_router_reducer_reducers_get_segment_value__WEBPACK_IMPORTED_MODULE_4__.getSegmentValue)(segment);\n if (!segmentValue || segmentValue.startsWith(_shared_lib_segment__WEBPACK_IMPORTED_MODULE_5__.PAGE_SEGMENT_KEY)) {\n return segmentPath;\n }\n segmentPath.push(segmentValue);\n return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath);\n}\n// TODO-APP: Expand description when the docs are written for it.\n/**\n * Get the canonical segment path from the current level to the leaf node.\n */ function useSelectedLayoutSegments(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = \"children\";\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useSelectedLayoutSegments\");\n const { tree } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__.LayoutRouterContext);\n return getSelectedLayoutSegmentPath(tree, parallelRouteKey);\n}\n// TODO-APP: Expand description when the docs are written for it.\n/**\n * Get the segment below the current level\n */ function useSelectedLayoutSegment(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = \"children\";\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useSelectedLayoutSegment\");\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);\n if (selectedLayoutSegments.length === 0) {\n return null;\n }\n return selectedLayoutSegments[0];\n}\n\n //# sourceMappingURL=navigation.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbmF2aWdhdGlvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUE0QztBQUMwRjtBQUNQO0FBQ3BDO0FBQ2I7QUFDbEI7QUFDNUQsTUFBTVcsb0NBQW9DQyxPQUFPO0FBQ2pELFNBQVNDO0lBQ0wsT0FBTyxJQUFJQyxNQUFNO0FBQ3JCO0FBQ08sTUFBTUM7SUFDVCxDQUFDSCxPQUFPSSxRQUFRLENBQUMsR0FBRztRQUNoQixPQUFPLElBQUksQ0FBQ0wsa0NBQWtDLENBQUNDLE9BQU9JLFFBQVEsQ0FBQztJQUNuRTtJQUNBQyxTQUFTO1FBQ0wsTUFBTUo7SUFDVjtJQUNBSyxTQUFTO1FBQ0wsTUFBTUw7SUFDVjtJQUNBTSxNQUFNO1FBQ0YsTUFBTU47SUFDVjtJQUNBTyxPQUFPO1FBQ0gsTUFBTVA7SUFDVjtJQUNBUSxZQUFZQyxlQUFlLENBQUM7UUFDeEIsSUFBSSxDQUFDWCxrQ0FBa0MsR0FBR1c7UUFDMUMsSUFBSSxDQUFDQyxPQUFPLEdBQUdELGdCQUFnQkMsT0FBTyxDQUFDQyxJQUFJLENBQUNGO1FBQzVDLElBQUksQ0FBQ0csT0FBTyxHQUFHSCxnQkFBZ0JHLE9BQU8sQ0FBQ0QsSUFBSSxDQUFDRjtRQUM1QyxJQUFJLENBQUNJLEdBQUcsR0FBR0osZ0JBQWdCSSxHQUFHLENBQUNGLElBQUksQ0FBQ0Y7UUFDcEMsSUFBSSxDQUFDSyxNQUFNLEdBQUdMLGdCQUFnQkssTUFBTSxDQUFDSCxJQUFJLENBQUNGO1FBQzFDLElBQUksQ0FBQ00sR0FBRyxHQUFHTixnQkFBZ0JNLEdBQUcsQ0FBQ0osSUFBSSxDQUFDRjtRQUNwQyxJQUFJLENBQUNPLElBQUksR0FBR1AsZ0JBQWdCTyxJQUFJLENBQUNMLElBQUksQ0FBQ0Y7UUFDdEMsSUFBSSxDQUFDUSxNQUFNLEdBQUdSLGdCQUFnQlEsTUFBTSxDQUFDTixJQUFJLENBQUNGO1FBQzFD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QjtJQUN6RCxJQUFJQSxxQkFBcUIsS0FBSyxHQUFHQSxtQkFBbUI7SUFDcERyRCx3R0FBZ0NBLENBQUM7SUFDakMsTUFBTThELHlCQUF5QkYsMEJBQTBCUDtJQUN6RCxJQUFJUyx1QkFBdUJDLE1BQU0sS0FBSyxHQUFHO1FBQ3JDLE9BQU87SUFDWDtJQUNBLE9BQU9ELHNCQUFzQixDQUFDLEVBQUU7QUFDcEM7QUFDdUU7QUFDaEMsQ0FFdkMsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uLmpzP2U0MjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQXBwUm91dGVyQ29udGV4dCwgR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCwgTGF5b3V0Um91dGVyQ29udGV4dCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiO1xuaW1wb3J0IHsgU2VhcmNoUGFyYW1zQ29udGV4dCwgUGF0aG5hbWVDb250ZXh0LCBQYXRoUGFyYW1zQ29udGV4dCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvciB9IGZyb20gXCIuL2NsaWVudC1ob29rLWluLXNlcnZlci1jb21wb25lbnQtZXJyb3JcIjtcbmltcG9ydCB7IGdldFNlZ21lbnRWYWx1ZSB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2dldC1zZWdtZW50LXZhbHVlXCI7XG5pbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiO1xuY29uc3QgSU5URVJOQUxfVVJMU0VBUkNIUEFSQU1TX0lOU1RBTkNFID0gU3ltYm9sKFwiaW50ZXJuYWwgZm9yIHVybHNlYXJjaHBhcmFtcyByZWFkb25seVwiKTtcbmZ1bmN0aW9uIHJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKSB7XG4gICAgcmV0dXJuIG5ldyBFcnJvcihcIlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIGNhbm5vdCBiZSBtb2RpZmllZFwiKTtcbn1cbmV4cG9ydCBjbGFzcyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyB7XG4gICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMX1VSTFNFQVJDSFBBUkFNU19JTlNUQU5DRV1bU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgIH1cbiAgICBhcHBlbmQoKSB7XG4gICAgICAgIHRocm93IHJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKTtcbiAgICB9XG4gICAgZGVsZXRlKCkge1xuICAgICAgICB0aHJvdyByZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKCk7XG4gICAgfVxuICAgIHNldCgpIHtcbiAgICAgICAgdGhyb3cgcmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvcigpO1xuICAgIH1cbiAgICBzb3J0KCkge1xuICAgICAgICB0aHJvdyByZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHVybFNlYXJjaFBhcmFtcyl7XG4gICAgICAgIHRoaXNbSU5URVJOQUxfVVJMU0VBUkNIUEFSQU1TX0lOU1RBTkNFXSA9IHVybFNlYXJjaFBhcmFtcztcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gdXJsU2VhcmNoUGFyYW1zLmVudHJpZXMuYmluZCh1cmxTZWFyY2hQYXJhbXMpO1xuICAgICAgICB0aGlzLmZvckVhY2ggPSB1cmxTZWFyY2hQYXJhbXMuZm9yRWFjaC5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuZ2V0ID0gdXJsU2VhcmNoUGFyYW1zLmdldC5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuZ2V0QWxsID0gdXJsU2VhcmNoUGFyYW1zLmdldEFsbC5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuaGFzID0gdXJsU2VhcmNoUGFyYW1zLmhhcy5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMua2V5cyA9IHVybFNlYXJjaFBhcmFtcy5rZXlzLmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB1cmxTZWFyY2hQYXJhbXMudmFsdWVzLmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy50b1N0cmluZyA9IHVybFNlYXJjaFBhcmFtcy50b1N0cmluZy5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHVybFNlYXJjaFBhcmFtcy5zaXplO1xuICAgIH1cbn1cbi8qKlxuICogR2V0IGEgcmVhZC1vbmx5IFVSTFNlYXJjaFBhcmFtcyBvYmplY3QuIEZvciBleGFtcGxlIHNlYXJjaFBhcmFtcy5nZXQoJ2ZvbycpIHdvdWxkIHJldHVybiAnYmFyJyB3aGVuID9mb289YmFyXG4gKiBMZWFybiBtb3JlIGFib3V0IFVSTFNlYXJjaFBhcmFtcyBoZXJlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvVVJMU2VhcmNoUGFyYW1zXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVNlYXJjaFBhcmFtcygpIHtcbiAgICBjbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcihcInVzZVNlYXJjaFBhcmFtc1wiKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VDb250ZXh0KFNlYXJjaFBhcmFtc0NvbnRleHQpO1xuICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoaXMgaXMgYG51bGxgLCB0aGUgY29tcGF0IHR5cGVzIGFkZGVkIGluXG4gICAgLy8gYG5leHQtZW52LmQudHNgIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG9cbiAgICAvLyBpbmNsdWRlIGBudWxsYC5cbiAgICBjb25zdCByZWFkb25seVNlYXJjaFBhcmFtcyA9IHVzZU1lbW8oKCk9PntcbiAgICAgICAgaWYgKCFzZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgICAgIC8vIFdoZW4gdGhlIHJvdXRlciBpcyBub3QgcmVhZHkgaW4gcGFnZXMsIHdlIHdvbid0IGhhdmUgdGhlIHNlYXJjaCBwYXJhbXNcbiAgICAgICAgICAgIC8vIGF2YWlsYWJsZS5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMoc2VhcmNoUGFyYW1zKTtcbiAgICB9LCBbXG4gICAgICAgIHNlYXJjaFBhcmFtc1xuICAgIF0pO1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgICAgIGNvbnN0IHsgYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nIH0gPSByZXF1aXJlKFwiLi9iYWlsb3V0LXRvLWNsaWVudC1yZW5kZXJpbmdcIik7XG4gICAgICAgIC8vIFRPRE8tQVBQOiBoYW5kbGUgZHluYW1pYyA9ICdmb3JjZS1zdGF0aWMnIGhlcmUgYW5kIG9uIHRoZSBjbGllbnRcbiAgICAgICAgYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nKFwidXNlU2VhcmNoUGFyYW1zKClcIik7XG4gICAgfVxuICAgIHJldHVybiByZWFkb25seVNlYXJjaFBhcmFtcztcbn1cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IHBhdGhuYW1lLiBGb3IgZXhhbXBsZSB1c2VQYXRobmFtZSgpIG9uIC9kYXNoYm9hcmQ/Zm9vPWJhciB3b3VsZCByZXR1cm4gXCIvZGFzaGJvYXJkXCJcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlUGF0aG5hbWUoKSB7XG4gICAgY2xpZW50SG9va0luU2VydmVyQ29tcG9uZW50RXJyb3IoXCJ1c2VQYXRobmFtZVwiKTtcbiAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSB0aGlzIGlzIGBudWxsYCwgdGhlIGNvbXBhdCB0eXBlcyBhZGRlZCBpbiBgbmV4dC1lbnYuZC50c2BcbiAgICAvLyB3aWxsIGFkZCBhIG5ldyBvdmVybG9hZCB0aGF0IGNoYW5nZXMgdGhlIHJldHVybiB0eXBlIHRvIGluY2x1ZGUgYG51bGxgLlxuICAgIHJldHVybiB1c2VDb250ZXh0KFBhdGhuYW1lQ29udGV4dCk7XG59XG5leHBvcnQgeyBTZXJ2ZXJJbnNlcnRlZEhUTUxDb250ZXh0LCB1c2VTZXJ2ZXJJbnNlcnRlZEhUTUwgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5zaGFyZWQtcnVudGltZVwiO1xuLyoqXG4gKiBHZXQgdGhlIHJvdXRlciBtZXRob2RzLiBGb3IgZXhhbXBsZSByb3V0ZXIucHVzaCgnL2Rhc2hib2FyZCcpXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlcigpIHtcbiAgICBjbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcihcInVzZVJvdXRlclwiKTtcbiAgICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KEFwcFJvdXRlckNvbnRleHQpO1xuICAgIGlmIChyb3V0ZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YXJpYW50IGV4cGVjdGVkIGFwcCByb3V0ZXIgdG8gYmUgbW91bnRlZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlcjtcbn1cbi8vIHRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBkZXB0aC1maXJzdCBzZWFyY2ggb2YgdGhlIHRyZWUgdG8gZmluZCB0aGUgc2VsZWN0ZWRcbi8vIHBhcmFtc1xuZnVuY3Rpb24gZ2V0U2VsZWN0ZWRQYXJhbXModHJlZSwgcGFyYW1zKSB7XG4gICAgaWYgKHBhcmFtcyA9PT0gdm9pZCAwKSBwYXJhbXMgPSB7fTtcbiAgICBjb25zdCBwYXJhbGxlbFJvdXRlcyA9IHRyZWVbMV07XG4gICAgZm9yIChjb25zdCBwYXJhbGxlbFJvdXRlIG9mIE9iamVjdC52YWx1ZXMocGFyYWxsZWxSb3V0ZXMpKXtcbiAgICAgICAgY29uc3Qgc2VnbWVudCA9IHBhcmFsbGVsUm91dGVbMF07XG4gICAgICAgIGNvbnN0IGlzRHluYW1pY1BhcmFtZXRlciA9IEFycmF5LmlzQXJyYXkoc2VnbWVudCk7XG4gICAgICAgIGNvbnN0IHNlZ21lbnRWYWx1ZSA9IGlzRHluYW1pY1BhcmFtZXRlciA/IHNlZ21lbnRbMV0gOiBzZWdtZW50O1xuICAgICAgICBpZiAoIXNlZ21lbnRWYWx1ZSB8fCBzZWdtZW50VmFsdWUuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkgY29udGludWU7XG4gICAgICAgIC8vIEVuc3VyZSBjYXRjaEFsbCBhbmQgb3B0aW9uYWwgY2F0Y2hhbGwgYXJlIHR1cm5lZCBpbnRvIGFuIGFycmF5XG4gICAgICAgIGNvbnN0IGlzQ2F0Y2hBbGwgPSBpc0R5bmFtaWNQYXJhbWV0ZXIgJiYgKHNlZ21lbnRbMl0gPT09IFwiY1wiIHx8IHNlZ21lbnRbMl0gPT09IFwib2NcIik7XG4gICAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgICAgICBwYXJhbXNbc2VnbWVudFswXV0gPSBzZWdtZW50WzFdLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0R5bmFtaWNQYXJhbWV0ZXIpIHtcbiAgICAgICAgICAgIHBhcmFtc1tzZWdtZW50WzBdXSA9IHNlZ21lbnRbMV07XG4gICAgICAgIH1cbiAgICAgICAgcGFyYW1zID0gZ2V0U2VsZWN0ZWRQYXJhbXMocGFyYWxsZWxSb3V0ZSwgcGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IHBhcmFtZXRlcnMuIEZvciBleGFtcGxlIHVzZVBhcmFtcygpIG9uIC9kYXNoYm9hcmQvW3RlYW1dXG4gKiB3aGVyZSBwYXRobmFtZSBpcyAvZGFzaGJvYXJkL25leHRqcyB3b3VsZCByZXR1cm4geyB0ZWFtOiAnbmV4dGpzJyB9XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVBhcmFtcygpIHtcbiAgICBjbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcihcInVzZVBhcmFtc1wiKTtcbiAgICBjb25zdCBnbG9iYWxMYXlvdXRSb3V0ZXIgPSB1c2VDb250ZXh0KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQpO1xuICAgIGNvbnN0IHBhdGhQYXJhbXMgPSB1c2VDb250ZXh0KFBhdGhQYXJhbXNDb250ZXh0KTtcbiAgICByZXR1cm4gdXNlTWVtbygoKT0+e1xuICAgICAgICAvLyBXaGVuIGl0J3MgdW5kZXIgYXBwIHJvdXRlclxuICAgICAgICBpZiAoZ2xvYmFsTGF5b3V0Um91dGVyID09IG51bGwgPyB2b2lkIDAgOiBnbG9iYWxMYXlvdXRSb3V0ZXIudHJlZSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFNlbGVjdGVkUGFyYW1zKGdsb2JhbExheW91dFJvdXRlci50cmVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXaGVuIGl0J3MgdW5kZXIgY2xpZW50IHNpZGUgcGFnZXMgcm91dGVyXG4gICAgICAgIHJldHVybiBwYXRoUGFyYW1zO1xuICAgIH0sIFtcbiAgICAgICAgZ2xvYmFsTGF5b3V0Um91dGVyID09IG51bGwgPyB2b2lkIDAgOiBnbG9iYWxMYXlvdXRSb3V0ZXIudHJlZSxcbiAgICAgICAgcGF0aFBhcmFtc1xuICAgIF0pO1xufVxuLy8gVE9ETy1BUFA6IGhhbmRsZSBwYXJhbGxlbCByb3V0ZXNcbi8qKlxuICogR2V0IHRoZSBjYW5vbmljYWwgcGFyYW1ldGVycyBmcm9tIHRoZSBjdXJyZW50IGxldmVsIHRvIHRoZSBsZWFmIG5vZGUuXG4gKi8gZnVuY3Rpb24gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aCh0cmVlLCBwYXJhbGxlbFJvdXRlS2V5LCBmaXJzdCwgc2VnbWVudFBhdGgpIHtcbiAgICBpZiAoZmlyc3QgPT09IHZvaWQgMCkgZmlyc3QgPSB0cnVlO1xuICAgIGlmIChzZWdtZW50UGF0aCA9PT0gdm9pZCAwKSBzZWdtZW50UGF0aCA9IFtdO1xuICAgIGxldCBub2RlO1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgICAvLyBVc2UgdGhlIHByb3ZpZGVkIHBhcmFsbGVsIHJvdXRlIGtleSBvbiB0aGUgZmlyc3QgcGFyYWxsZWwgcm91dGVcbiAgICAgICAgbm9kZSA9IHRyZWVbMV1bcGFyYWxsZWxSb3V0ZUtleV07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQWZ0ZXIgZmlyc3QgcGFyYWxsZWwgcm91dGUgcHJlZmVyIGNoaWxkcmVuLCBpZiB0aGVyZSdzIG5vIGNoaWxkcmVuIHBpY2sgdGhlIGZpcnN0IHBhcmFsbGVsIHJvdXRlLlxuICAgICAgICBjb25zdCBwYXJhbGxlbFJvdXRlcyA9IHRyZWVbMV07XG4gICAgICAgIHZhciBfcGFyYWxsZWxSb3V0ZXNfY2hpbGRyZW47XG4gICAgICAgIG5vZGUgPSAoX3BhcmFsbGVsUm91dGVzX2NoaWxkcmVuID0gcGFyYWxsZWxSb3V0ZXMuY2hpbGRyZW4pICE9IG51bGwgPyBfcGFyYWxsZWxSb3V0ZXNfY2hpbGRyZW4gOiBPYmplY3QudmFsdWVzKHBhcmFsbGVsUm91dGVzKVswXTtcbiAgICB9XG4gICAgaWYgKCFub2RlKSByZXR1cm4gc2VnbWVudFBhdGg7XG4gICAgY29uc3Qgc2VnbWVudCA9IG5vZGVbMF07XG4gICAgY29uc3Qgc2VnbWVudFZhbHVlID0gZ2V0U2VnbWVudFZhbHVlKHNlZ21lbnQpO1xuICAgIGlmICghc2VnbWVudFZhbHVlIHx8IHNlZ21lbnRWYWx1ZS5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpKSB7XG4gICAgICAgIHJldHVybiBzZWdtZW50UGF0aDtcbiAgICB9XG4gICAgc2VnbWVudFBhdGgucHVzaChzZWdtZW50VmFsdWUpO1xuICAgIHJldHVybiBnZXRTZWxlY3RlZExheW91dFNlZ21lbnRQYXRoKG5vZGUsIHBhcmFsbGVsUm91dGVLZXksIGZhbHNlLCBzZWdtZW50UGF0aCk7XG59XG4vLyBUT0RPLUFQUDogRXhwYW5kIGRlc2NyaXB0aW9uIHdoZW4gdGhlIGRvY3MgYXJlIHdyaXR0ZW4gZm9yIGl0LlxuLyoqXG4gKiBHZXQgdGhlIGNhbm9uaWNhbCBzZWdtZW50IHBhdGggZnJvbSB0aGUgY3VycmVudCBsZXZlbCB0byB0aGUgbGVhZiBub2RlLlxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzKHBhcmFsbGVsUm91dGVLZXkpIHtcbiAgICBpZiAocGFyYWxsZWxSb3V0ZUtleSA9PT0gdm9pZCAwKSBwYXJhbGxlbFJvdXRlS2V5ID0gXCJjaGlsZHJlblwiO1xuICAgIGNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yKFwidXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50c1wiKTtcbiAgICBjb25zdCB7IHRyZWUgfSA9IHVzZUNvbnRleHQoTGF5b3V0Um91dGVyQ29udGV4dCk7XG4gICAgcmV0dXJuIGdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgodHJlZSwgcGFyYWxsZWxSb3V0ZUtleSk7XG59XG4vLyBUT0RPLUFQUDogRXhwYW5kIGRlc2NyaXB0aW9uIHdoZW4gdGhlIGRvY3MgYXJlIHdyaXR0ZW4gZm9yIGl0LlxuLyoqXG4gKiBHZXQgdGhlIHNlZ21lbnQgYmVsb3cgdGhlIGN1cnJlbnQgbGV2ZWxcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50KHBhcmFsbGVsUm91dGVLZXkpIHtcbiAgICBpZiAocGFyYWxsZWxSb3V0ZUtleSA9PT0gdm9pZCAwKSBwYXJhbGxlbFJvdXRlS2V5ID0gXCJjaGlsZHJlblwiO1xuICAgIGNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yKFwidXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50XCIpO1xuICAgIGNvbnN0IHNlbGVjdGVkTGF5b3V0U2VnbWVudHMgPSB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzKHBhcmFsbGVsUm91dGVLZXkpO1xuICAgIGlmIChzZWxlY3RlZExheW91dFNlZ21lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGVkTGF5b3V0U2VnbWVudHNbMF07XG59XG5leHBvcnQgeyByZWRpcmVjdCwgcGVybWFuZW50UmVkaXJlY3QsIFJlZGlyZWN0VHlwZSB9IGZyb20gXCIuL3JlZGlyZWN0XCI7XG5leHBvcnQgeyBub3RGb3VuZCB9IGZyb20gXCIuL25vdC1mb3VuZFwiO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uYXZpZ2F0aW9uLmpzLm1hcCJdLCJuYW1lcyI6WyJ1c2VDb250ZXh0IiwidXNlTWVtbyIsIkFwcFJvdXRlckNvbnRleHQiLCJHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0IiwiTGF5b3V0Um91dGVyQ29udGV4dCIsIlNlYXJjaFBhcmFtc0NvbnRleHQiLCJQYXRobmFtZUNvbnRleHQiLCJQYXRoUGFyYW1zQ29udGV4dCIsImNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yIiwiZ2V0U2VnbWVudFZhbHVlIiwiUEFHRV9TRUdNRU5UX0tFWSIsIklOVEVSTkFMX1VSTFNFQVJDSFBBUkFNU19JTlNUQU5DRSIsIlN5bWJvbCIsInJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IiLCJFcnJvciIsIlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIiwiaXRlcmF0b3IiLCJhcHBlbmQiLCJkZWxldGUiLCJzZXQiLCJzb3J0IiwiY29uc3RydWN0b3IiLCJ1cmxTZWFyY2hQYXJhbXMiLCJlbnRyaWVzIiwiYmluZCIsImZvckVhY2giLCJnZXQiLCJnZXRBbGwiLCJoYXMiLCJrZXlzIiwidmFsdWVzIiwidG9TdHJpbmciLCJzaXplIiwidXNlU2VhcmNoUGFyYW1zIiwic2VhcmNoUGFyYW1zIiwicmVhZG9ubHlTZWFyY2hQYXJhbXMiLCJiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmciLCJyZXF1aXJlIiwidXNlUGF0aG5hbWUiLCJTZXJ2ZXJJbnNlcnRlZEhUTUxDb250ZXh0IiwidXNlU2VydmVySW5zZXJ0ZWRIVE1MIiwidXNlUm91dGVyIiwicm91dGVyIiwiZ2V0U2VsZWN0ZWRQYXJhbXMiLCJ0cmVlIiwicGFyYW1zIiwicGFyYWxsZWxSb3V0ZXMiLCJwYXJhbGxlbFJvdXRlIiwiT2JqZWN0Iiwic2VnbWVudCIsImlzRHluYW1pY1BhcmFtZXRlciIsIkFycmF5IiwiaXNBcnJheSIsInNlZ21lbnRWYWx1ZSIsInN0YXJ0c1dpdGgiLCJpc0NhdGNoQWxsIiwic3BsaXQiLCJ1c2VQYXJhbXMiLCJnbG9iYWxMYXlvdXRSb3V0ZXIiLCJwYXRoUGFyYW1zIiwiZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aCIsInBhcmFsbGVsUm91dGVLZXkiLCJmaXJzdCIsInNlZ21lbnRQYXRoIiwibm9kZSIsIl9wYXJhbGxlbFJvdXRlc19jaGlsZHJlbiIsImNoaWxkcmVuIiwicHVzaCIsInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMiLCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnQiLCJzZWxlY3RlZExheW91dFNlZ21lbnRzIiwibGVuZ3RoIiwicmVkaXJlY3QiLCJwZXJtYW5lbnRSZWRpcmVjdCIsIlJlZGlyZWN0VHlwZSIsIm5vdEZvdW5kIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/navigation.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/not-found-boundary.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NotFoundBoundary: () => (/* binding */ NotFoundBoundary)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./navigation */ \"(ssr)/../../node_modules/next/dist/esm/client/components/navigation.js\");\n/* harmony import */ var _not_found__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n/* harmony import */ var _shared_lib_utils_warn_once__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/lib/utils/warn-once */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js\");\n/* harmony import */ var _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ NotFoundBoundary auto */ \n\n\n\n\n\nclass NotFoundErrorBoundary extends (react__WEBPACK_IMPORTED_MODULE_1___default().Component) {\n componentDidCatch() {\n if ( true && // A missing children slot is the typical not-found case, so no need to warn\n !this.props.missingSlots.has(\"children\")) {\n let warningMessage = \"No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\\n\" + \"Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\\n\\n\";\n if (this.props.missingSlots.size > 0) {\n const formattedSlots = Array.from(this.props.missingSlots).sort((a, b)=>a.localeCompare(b)).map((slot)=>\"@\" + slot).join(\", \");\n warningMessage += \"Missing slots: \" + formattedSlots;\n }\n (0,_shared_lib_utils_warn_once__WEBPACK_IMPORTED_MODULE_4__.warnOnce)(warningMessage);\n }\n }\n static getDerivedStateFromError(error) {\n if ((0,_not_found__WEBPACK_IMPORTED_MODULE_3__.isNotFoundError)(error)) {\n return {\n notFoundTriggered: true\n };\n }\n // Re-throw if error is not for 404\n throw error;\n }\n static getDerivedStateFromProps(props, state) {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */ if (props.pathname !== state.previousPathname && state.notFoundTriggered) {\n return {\n notFoundTriggered: false,\n previousPathname: props.pathname\n };\n }\n return {\n notFoundTriggered: state.notFoundTriggered,\n previousPathname: props.pathname\n };\n }\n render() {\n if (this.state.notFoundTriggered) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }),\n true && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"next-error\",\n content: \"not-found\"\n }),\n this.props.notFoundStyles,\n this.props.notFound\n ]\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.state = {\n notFoundTriggered: !!props.asNotFound,\n previousPathname: props.pathname\n };\n }\n}\nfunction NotFoundBoundary(param) {\n let { notFound, notFoundStyles, asNotFound, children } = param;\n const pathname = (0,_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n const missingSlots = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_5__.MissingSlotContext);\n return notFound ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(NotFoundErrorBoundary, {\n pathname: pathname,\n notFound: notFound,\n notFoundStyles: notFoundStyles,\n asNotFound: asNotFound,\n missingSlots: missingSlots,\n children: children\n }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: children\n });\n} //# sourceMappingURL=not-found-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O3NFQUVzRjtBQUM1QztBQUNDO0FBQ0c7QUFDYztBQUM0QjtBQUN4RixNQUFNWSw4QkFBOEJOLHdEQUFlO0lBQy9DUSxvQkFBb0I7UUFDaEIsSUFBSUMsS0FBc0MsSUFBSSw0RUFBNEU7UUFDMUgsQ0FBQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsWUFBWSxDQUFDQyxHQUFHLENBQUMsYUFBYTtZQUN0QyxJQUFJQyxpQkFBaUIsNEhBQTRIO1lBQ2pKLElBQUksSUFBSSxDQUFDSCxLQUFLLENBQUNDLFlBQVksQ0FBQ0csSUFBSSxHQUFHLEdBQUc7Z0JBQ2xDLE1BQU1DLGlCQUFpQkMsTUFBTUMsSUFBSSxDQUFDLElBQUksQ0FBQ1AsS0FBSyxDQUFDQyxZQUFZLEVBQUVPLElBQUksQ0FBQyxDQUFDQyxHQUFHQyxJQUFJRCxFQUFFRSxhQUFhLENBQUNELElBQUlFLEdBQUcsQ0FBQyxDQUFDQyxPQUFPLE1BQU1BLE1BQU1DLElBQUksQ0FBQztnQkFDekhYLGtCQUFrQixvQkFBb0JFO1lBQzFDO1lBQ0FYLHFFQUFRQSxDQUFDUztRQUNiO0lBQ0o7SUFDQSxPQUFPWSx5QkFBeUJDLEtBQUssRUFBRTtRQUNuQyxJQUFJdkIsMkRBQWVBLENBQUN1QixRQUFRO1lBQ3hCLE9BQU87Z0JBQ0hDLG1CQUFtQjtZQUN2QjtRQUNKO1FBQ0EsbUNBQW1DO1FBQ25DLE1BQU1EO0lBQ1Y7SUFDQSxPQUFPRSx5QkFBeUJsQixLQUFLLEVBQUVtQixLQUFLLEVBQUU7UUFDMUM7Ozs7O0tBS0gsR0FBRyxJQUFJbkIsTUFBTW9CLFFBQVEsS0FBS0QsTUFBTUUsZ0JBQWdCLElBQUlGLE1BQU1GLGlCQUFpQixFQUFFO1lBQ3RFLE9BQU87Z0JBQ0hBLG1CQUFtQjtnQkFDbkJJLGtCQUFrQnJCLE1BQU1vQixRQUFRO1lBQ3BDO1FBQ0o7UUFDQSxPQUFPO1lBQ0hILG1CQUFtQkUsTUFBTUYsaUJBQWlCO1lBQzFDSSxrQkFBa0JyQixNQUFNb0IsUUFBUTtRQUNwQztJQUNKO0lBQ0FFLFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQ0gsS0FBSyxDQUFDRixpQkFBaUIsRUFBRTtZQUM5QixPQUFPLFdBQVcsR0FBRzlCLHVEQUFLQSxDQUFDRSx1REFBU0EsRUFBRTtnQkFDbENrQyxVQUFVO29CQUNOLFdBQVcsR0FBR3RDLHNEQUFJQSxDQUFDLFFBQVE7d0JBQ3ZCdUMsTUFBTTt3QkFDTkMsU0FBUztvQkFDYjtvQkFyRHBCLEtBc0QwRCxJQUFJLFdBQVcsR0FBR3hDLHNEQUFJQSxDQUFDLFFBQVE7d0JBQ2pFdUMsTUFBTTt3QkFDTkMsU0FBUztvQkFDYjtvQkFDQSxJQUFJLENBQUN6QixLQUFLLENBQUMwQixjQUFjO29CQUN6QixJQUFJLENBQUMxQixLQUFLLENBQUMyQixRQUFRO2lCQUN0QjtZQUNMO1FBQ0o7UUFDQSxPQUFPLElBQUksQ0FBQzNCLEtBQUssQ0FBQ3VCLFFBQVE7SUFDOUI7SUFDQUssWUFBWTVCLEtBQUssQ0FBQztRQUNkLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNtQixLQUFLLEdBQUc7WUFDVEYsbUJBQW1CLENBQUMsQ0FBQ2pCLE1BQU02QixVQUFVO1lBQ3JDUixrQkFBa0JyQixNQUFNb0IsUUFBUTtRQUNwQztJQUNKO0FBQ0o7QUFDTyxTQUFTVSxpQkFBaUJDLEtBQUs7SUFDbEMsSUFBSSxFQUFFSixRQUFRLEVBQUVELGNBQWMsRUFBRUcsVUFBVSxFQUFFTixRQUFRLEVBQUUsR0FBR1E7SUFDekQsTUFBTVgsV0FBVzVCLHdEQUFXQTtJQUM1QixNQUFNUyxlQUFlVixpREFBVUEsQ0FBQ0ksNkZBQWtCQTtJQUNsRCxPQUFPZ0MsV0FBVyxXQUFXLEdBQUcxQyxzREFBSUEsQ0FBQ1csdUJBQXVCO1FBQ3hEd0IsVUFBVUE7UUFDVk8sVUFBVUE7UUFDVkQsZ0JBQWdCQTtRQUNoQkcsWUFBWUE7UUFDWjVCLGNBQWNBO1FBQ2RzQixVQUFVQTtJQUNkLEtBQUssV0FBVyxHQUFHdEMsc0RBQUlBLENBQUNJLHVEQUFTQSxFQUFFO1FBQy9Ca0MsVUFBVUE7SUFDZDtBQUNKLEVBRUEsOENBQThDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtYm91bmRhcnkuanM/YzM4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVBhdGhuYW1lIH0gZnJvbSBcIi4vbmF2aWdhdGlvblwiO1xuaW1wb3J0IHsgaXNOb3RGb3VuZEVycm9yIH0gZnJvbSBcIi4vbm90LWZvdW5kXCI7XG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3dhcm4tb25jZVwiO1xuaW1wb3J0IHsgTWlzc2luZ1Nsb3RDb250ZXh0IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCI7XG5jbGFzcyBOb3RGb3VuZEVycm9yQm91bmRhcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIGNvbXBvbmVudERpZENhdGNoKCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIiAmJiAvLyBBIG1pc3NpbmcgY2hpbGRyZW4gc2xvdCBpcyB0aGUgdHlwaWNhbCBub3QtZm91bmQgY2FzZSwgc28gbm8gbmVlZCB0byB3YXJuXG4gICAgICAgICF0aGlzLnByb3BzLm1pc3NpbmdTbG90cy5oYXMoXCJjaGlsZHJlblwiKSkge1xuICAgICAgICAgICAgbGV0IHdhcm5pbmdNZXNzYWdlID0gXCJObyBkZWZhdWx0IGNvbXBvbmVudCB3YXMgZm91bmQgZm9yIGEgcGFyYWxsZWwgcm91dGUgcmVuZGVyZWQgb24gdGhpcyBwYWdlLiBGYWxsaW5nIGJhY2sgdG8gbmVhcmVzdCBOb3RGb3VuZCBib3VuZGFyeS5cXG5cIiArIFwiTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9wYXJhbGxlbC1yb3V0ZXMjZGVmYXVsdGpzXFxuXFxuXCI7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5taXNzaW5nU2xvdHMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRTbG90cyA9IEFycmF5LmZyb20odGhpcy5wcm9wcy5taXNzaW5nU2xvdHMpLnNvcnQoKGEsIGIpPT5hLmxvY2FsZUNvbXBhcmUoYikpLm1hcCgoc2xvdCk9PlwiQFwiICsgc2xvdCkuam9pbihcIiwgXCIpO1xuICAgICAgICAgICAgICAgIHdhcm5pbmdNZXNzYWdlICs9IFwiTWlzc2luZyBzbG90czogXCIgKyBmb3JtYXR0ZWRTbG90cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdhcm5PbmNlKHdhcm5pbmdNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSB7XG4gICAgICAgIGlmIChpc05vdEZvdW5kRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5vdEZvdW5kVHJpZ2dlcmVkOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlLXRocm93IGlmIGVycm9yIGlzIG5vdCBmb3IgNDA0XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKHByb3BzLCBzdGF0ZSkge1xuICAgICAgICAvKipcbiAgICAgKiBIYW5kbGVzIHJlc2V0IG9mIHRoZSBlcnJvciBib3VuZGFyeSB3aGVuIGEgbmF2aWdhdGlvbiBoYXBwZW5zLlxuICAgICAqIEVuc3VyZXMgdGhlIGVycm9yIGJvdW5kYXJ5IGRvZXMgbm90IHN0YXkgZW5hYmxlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS5cbiAgICAgKiBBcHByb2FjaCBvZiBzZXRTdGF0ZSBpbiByZW5kZXIgaXMgc2FmZSBhcyBpdCBjaGVja3MgdGhlIHByZXZpb3VzIHBhdGhuYW1lIGFuZCB0aGVuIG92ZXJyaWRlc1xuICAgICAqIGl0IGFzIG91dGxpbmVkIGluIGh0dHBzOi8vcmVhY3QuZGV2L3JlZmVyZW5jZS9yZWFjdC91c2VTdGF0ZSNzdG9yaW5nLWluZm9ybWF0aW9uLWZyb20tcHJldmlvdXMtcmVuZGVyc1xuICAgICAqLyBpZiAocHJvcHMucGF0aG5hbWUgIT09IHN0YXRlLnByZXZpb3VzUGF0aG5hbWUgJiYgc3RhdGUubm90Rm91bmRUcmlnZ2VyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbm90Rm91bmRUcmlnZ2VyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzUGF0aG5hbWU6IHByb3BzLnBhdGhuYW1lXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub3RGb3VuZFRyaWdnZXJlZDogc3RhdGUubm90Rm91bmRUcmlnZ2VyZWQsXG4gICAgICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLm5vdEZvdW5kVHJpZ2dlcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicm9ib3RzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIm5vaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIiAmJiAvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibmV4dC1lcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJub3QtZm91bmRcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5ub3RGb3VuZFN0eWxlcyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5ub3RGb3VuZFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcyl7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIG5vdEZvdW5kVHJpZ2dlcmVkOiAhIXByb3BzLmFzTm90Rm91bmQsXG4gICAgICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZVxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBOb3RGb3VuZEJvdW5kYXJ5KHBhcmFtKSB7XG4gICAgbGV0IHsgbm90Rm91bmQsIG5vdEZvdW5kU3R5bGVzLCBhc05vdEZvdW5kLCBjaGlsZHJlbiB9ID0gcGFyYW07XG4gICAgY29uc3QgcGF0aG5hbWUgPSB1c2VQYXRobmFtZSgpO1xuICAgIGNvbnN0IG1pc3NpbmdTbG90cyA9IHVzZUNvbnRleHQoTWlzc2luZ1Nsb3RDb250ZXh0KTtcbiAgICByZXR1cm4gbm90Rm91bmQgPyAvKiNfX1BVUkVfXyovIF9qc3goTm90Rm91bmRFcnJvckJvdW5kYXJ5LCB7XG4gICAgICAgIHBhdGhuYW1lOiBwYXRobmFtZSxcbiAgICAgICAgbm90Rm91bmQ6IG5vdEZvdW5kLFxuICAgICAgICBub3RGb3VuZFN0eWxlczogbm90Rm91bmRTdHlsZXMsXG4gICAgICAgIGFzTm90Rm91bmQ6IGFzTm90Rm91bmQsXG4gICAgICAgIG1pc3NpbmdTbG90czogbWlzc2luZ1Nsb3RzLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KSA6IC8qI19fUFVSRV9fKi8gX2pzeChfRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vdC1mb3VuZC1ib3VuZGFyeS5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiUmVhY3QiLCJ1c2VDb250ZXh0IiwidXNlUGF0aG5hbWUiLCJpc05vdEZvdW5kRXJyb3IiLCJ3YXJuT25jZSIsIk1pc3NpbmdTbG90Q29udGV4dCIsIk5vdEZvdW5kRXJyb3JCb3VuZGFyeSIsIkNvbXBvbmVudCIsImNvbXBvbmVudERpZENhdGNoIiwicHJvY2VzcyIsInByb3BzIiwibWlzc2luZ1Nsb3RzIiwiaGFzIiwid2FybmluZ01lc3NhZ2UiLCJzaXplIiwiZm9ybWF0dGVkU2xvdHMiLCJBcnJheSIsImZyb20iLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwibWFwIiwic2xvdCIsImpvaW4iLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsIm5vdEZvdW5kVHJpZ2dlcmVkIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwic3RhdGUiLCJwYXRobmFtZSIsInByZXZpb3VzUGF0aG5hbWUiLCJyZW5kZXIiLCJjaGlsZHJlbiIsIm5hbWUiLCJjb250ZW50Iiwibm90Rm91bmRTdHlsZXMiLCJub3RGb3VuZCIsImNvbnN0cnVjdG9yIiwiYXNOb3RGb3VuZCIsIk5vdEZvdW5kQm91bmRhcnkiLCJwYXJhbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/not-found.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNotFoundError: () => (/* binding */ isNotFoundError),\n/* harmony export */ notFound: () => (/* binding */ notFound)\n/* harmony export */ });\nconst NOT_FOUND_ERROR_CODE = \"NEXT_NOT_FOUND\";\n/**\n * When used in a React server component, this will set the status code to 404.\n * When used in a custom app route it will just send a 404 status.\n */ function notFound() {\n // eslint-disable-next-line no-throw-literal\n const error = new Error(NOT_FOUND_ERROR_CODE);\n error.digest = NOT_FOUND_ERROR_CODE;\n throw error;\n}\n/**\n * Checks an error to determine if it's an error generated by the `notFound()`\n * helper.\n *\n * @param error the error that may reference a not found error\n * @returns true if the error is a not found error\n */ function isNotFoundError(error) {\n if (typeof error !== \"object\" || error === null || !(\"digest\" in error)) {\n return false;\n }\n return error.digest === NOT_FOUND_ERROR_CODE;\n} //# sourceMappingURL=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTUEsdUJBQXVCO0FBQzdCOzs7Q0FHQyxHQUFVLFNBQVNDO0lBQ2hCLDRDQUE0QztJQUM1QyxNQUFNQyxRQUFRLElBQUlDLE1BQU1IO0lBQ3hCRSxNQUFNRSxNQUFNLEdBQUdKO0lBQ2YsTUFBTUU7QUFDVjtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNHLGdCQUFnQkgsS0FBSztJQUNyQyxJQUFJLE9BQU9BLFVBQVUsWUFBWUEsVUFBVSxRQUFRLENBQUUsYUFBWUEsS0FBSSxHQUFJO1FBQ3JFLE9BQU87SUFDWDtJQUNBLE9BQU9BLE1BQU1FLE1BQU0sS0FBS0o7QUFDNUIsRUFFQSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC5qcz9iMGI4Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE5PVF9GT1VORF9FUlJPUl9DT0RFID0gXCJORVhUX05PVF9GT1VORFwiO1xuLyoqXG4gKiBXaGVuIHVzZWQgaW4gYSBSZWFjdCBzZXJ2ZXIgY29tcG9uZW50LCB0aGlzIHdpbGwgc2V0IHRoZSBzdGF0dXMgY29kZSB0byA0MDQuXG4gKiBXaGVuIHVzZWQgaW4gYSBjdXN0b20gYXBwIHJvdXRlIGl0IHdpbGwganVzdCBzZW5kIGEgNDA0IHN0YXR1cy5cbiAqLyBleHBvcnQgZnVuY3Rpb24gbm90Rm91bmQoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWxcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihOT1RfRk9VTkRfRVJST1JfQ09ERSk7XG4gICAgZXJyb3IuZGlnZXN0ID0gTk9UX0ZPVU5EX0VSUk9SX0NPREU7XG4gICAgdGhyb3cgZXJyb3I7XG59XG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlIGBub3RGb3VuZCgpYFxuICogaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgbm90IGZvdW5kIGVycm9yXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBlcnJvciBpcyBhIG5vdCBmb3VuZCBlcnJvclxuICovIGV4cG9ydCBmdW5jdGlvbiBpc05vdEZvdW5kRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIGVycm9yICE9PSBcIm9iamVjdFwiIHx8IGVycm9yID09PSBudWxsIHx8ICEoXCJkaWdlc3RcIiBpbiBlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3IuZGlnZXN0ID09PSBOT1RfRk9VTkRfRVJST1JfQ09ERTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm90LWZvdW5kLmpzLm1hcCJdLCJuYW1lcyI6WyJOT1RfRk9VTkRfRVJST1JfQ09ERSIsIm5vdEZvdW5kIiwiZXJyb3IiLCJFcnJvciIsImRpZ2VzdCIsImlzTm90Rm91bmRFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/parallel-route-default.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/parallel-route-default.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PARALLEL_ROUTE_DEFAULT_PATH: () => (/* binding */ PARALLEL_ROUTE_DEFAULT_PATH),\n/* harmony export */ \"default\": () => (/* binding */ ParallelRouteDefault)\n/* harmony export */ });\n/* harmony import */ var _not_found__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n\nconst PARALLEL_ROUTE_DEFAULT_PATH = \"next/dist/client/components/parallel-route-default\";\nfunction ParallelRouteDefault() {\n (0,_not_found__WEBPACK_IMPORTED_MODULE_0__.notFound)();\n} //# sourceMappingURL=parallel-route-default.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcGFyYWxsZWwtcm91dGUtZGVmYXVsdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUM7QUFDaEMsTUFBTUMsOEJBQThCLHFEQUFxRDtBQUNqRixTQUFTQztJQUNwQkYsb0RBQVFBO0FBQ1osRUFFQSxrREFBa0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3BhcmFsbGVsLXJvdXRlLWRlZmF1bHQuanM/ZTFlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3RGb3VuZCB9IGZyb20gXCIuL25vdC1mb3VuZFwiO1xuZXhwb3J0IGNvbnN0IFBBUkFMTEVMX1JPVVRFX0RFRkFVTFRfUEFUSCA9IFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3BhcmFsbGVsLXJvdXRlLWRlZmF1bHRcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBhcmFsbGVsUm91dGVEZWZhdWx0KCkge1xuICAgIG5vdEZvdW5kKCk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcmFsbGVsLXJvdXRlLWRlZmF1bHQuanMubWFwIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwiUEFSQUxMRUxfUk9VVEVfREVGQVVMVF9QQVRIIiwiUGFyYWxsZWxSb3V0ZURlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/parallel-route-default.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/promise-queue.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/promise-queue.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PromiseQueue: () => (/* binding */ PromiseQueue)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_base */ \"(ssr)/../../node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\");\n/* harmony import */ var _swc_helpers_class_private_field_loose_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_key */ \"(ssr)/../../node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\");\n/*\n This is a simple promise queue that allows you to limit the number of concurrent promises\n that are running at any given time. It's used to limit the number of concurrent\n prefetch requests that are being made to the server but could be used for other\n things as well.\n*/ \n\nvar _maxConcurrency = /*#__PURE__*/ (0,_swc_helpers_class_private_field_loose_key__WEBPACK_IMPORTED_MODULE_0__._)(\"_maxConcurrency\"), _runningCount = /*#__PURE__*/ (0,_swc_helpers_class_private_field_loose_key__WEBPACK_IMPORTED_MODULE_0__._)(\"_runningCount\"), _queue = /*#__PURE__*/ (0,_swc_helpers_class_private_field_loose_key__WEBPACK_IMPORTED_MODULE_0__._)(\"_queue\"), _processNext = /*#__PURE__*/ (0,_swc_helpers_class_private_field_loose_key__WEBPACK_IMPORTED_MODULE_0__._)(\"_processNext\");\nclass PromiseQueue {\n enqueue(promiseFn) {\n let taskResolve;\n let taskReject;\n const taskPromise = new Promise((resolve, reject)=>{\n taskResolve = resolve;\n taskReject = reject;\n });\n const task = async ()=>{\n try {\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _runningCount)[_runningCount]++;\n const result = await promiseFn();\n taskResolve(result);\n } catch (error) {\n taskReject(error);\n } finally{\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _runningCount)[_runningCount]--;\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _processNext)[_processNext]();\n }\n };\n const enqueueResult = {\n promiseFn: taskPromise,\n task\n };\n // wonder if we should take a LIFO approach here\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _queue)[_queue].push(enqueueResult);\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _processNext)[_processNext]();\n return taskPromise;\n }\n bump(promiseFn) {\n const index = (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn);\n if (index > -1) {\n const bumpedItem = (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _queue)[_queue].splice(index, 1)[0];\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _queue)[_queue].unshift(bumpedItem);\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _processNext)[_processNext](true);\n }\n }\n constructor(maxConcurrency = 5){\n Object.defineProperty(this, _processNext, {\n value: processNext\n });\n Object.defineProperty(this, _maxConcurrency, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _runningCount, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _queue, {\n writable: true,\n value: void 0\n });\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency;\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _runningCount)[_runningCount] = 0;\n (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _queue)[_queue] = [];\n }\n}\nfunction processNext(forced) {\n if (forced === void 0) forced = false;\n if (((0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _runningCount)[_runningCount] < (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _maxConcurrency)[_maxConcurrency] || forced) && (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _queue)[_queue].length > 0) {\n var _class_private_field_loose_base__queue_shift;\n (_class_private_field_loose_base__queue_shift = (0,_swc_helpers_class_private_field_loose_base__WEBPACK_IMPORTED_MODULE_1__._)(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task();\n }\n} //# sourceMappingURL=promise-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcHJvbWlzZS1xdWV1ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7Ozs7QUFLQSxHQUF5RztBQUNMO0FBQ3BHLElBQUlHLGtCQUFrQixXQUFXLEdBQUdELDZFQUE4QkEsQ0FBQyxvQkFBb0JFLGdCQUFnQixXQUFXLEdBQUdGLDZFQUE4QkEsQ0FBQyxrQkFBa0JHLFNBQVMsV0FBVyxHQUFHSCw2RUFBOEJBLENBQUMsV0FBV0ksZUFBZSxXQUFXLEdBQUdKLDZFQUE4QkEsQ0FBQztBQUM1UixNQUFNSztJQUNUQyxRQUFRQyxTQUFTLEVBQUU7UUFDZixJQUFJQztRQUNKLElBQUlDO1FBQ0osTUFBTUMsY0FBYyxJQUFJQyxRQUFRLENBQUNDLFNBQVNDO1lBQ3RDTCxjQUFjSTtZQUNkSCxhQUFhSTtRQUNqQjtRQUNBLE1BQU1DLE9BQU87WUFDVCxJQUFJO2dCQUNBZiw4RUFBK0JBLENBQUMsSUFBSSxFQUFFRyxjQUFjLENBQUNBLGNBQWM7Z0JBQ25FLE1BQU1hLFNBQVMsTUFBTVI7Z0JBQ3JCQyxZQUFZTztZQUNoQixFQUFFLE9BQU9DLE9BQU87Z0JBQ1pQLFdBQVdPO1lBQ2YsU0FBUztnQkFDTGpCLDhFQUErQkEsQ0FBQyxJQUFJLEVBQUVHLGNBQWMsQ0FBQ0EsY0FBYztnQkFDbkVILDhFQUErQkEsQ0FBQyxJQUFJLEVBQUVLLGFBQWEsQ0FBQ0EsYUFBYTtZQUNyRTtRQUNKO1FBQ0EsTUFBTWEsZ0JBQWdCO1lBQ2xCVixXQUFXRztZQUNYSTtRQUNKO1FBQ0EsZ0RBQWdEO1FBQ2hEZiw4RUFBK0JBLENBQUMsSUFBSSxFQUFFSSxPQUFPLENBQUNBLE9BQU8sQ0FBQ2UsSUFBSSxDQUFDRDtRQUMzRGxCLDhFQUErQkEsQ0FBQyxJQUFJLEVBQUVLLGFBQWEsQ0FBQ0EsYUFBYTtRQUNqRSxPQUFPTTtJQUNYO0lBQ0FTLEtBQUtaLFNBQVMsRUFBRTtRQUNaLE1BQU1hLFFBQVFyQiw4RUFBK0JBLENBQUMsSUFBSSxFQUFFSSxPQUFPLENBQUNBLE9BQU8sQ0FBQ2tCLFNBQVMsQ0FBQyxDQUFDQyxPQUFPQSxLQUFLZixTQUFTLEtBQUtBO1FBQ3pHLElBQUlhLFFBQVEsQ0FBQyxHQUFHO1lBQ1osTUFBTUcsYUFBYXhCLDhFQUErQkEsQ0FBQyxJQUFJLEVBQUVJLE9BQU8sQ0FBQ0EsT0FBTyxDQUFDcUIsTUFBTSxDQUFDSixPQUFPLEVBQUUsQ0FBQyxFQUFFO1lBQzVGckIsOEVBQStCQSxDQUFDLElBQUksRUFBRUksT0FBTyxDQUFDQSxPQUFPLENBQUNzQixPQUFPLENBQUNGO1lBQzlEeEIsOEVBQStCQSxDQUFDLElBQUksRUFBRUssYUFBYSxDQUFDQSxhQUFhLENBQUM7UUFDdEU7SUFDSjtJQUNBc0IsWUFBWUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQkMsT0FBT0MsY0FBYyxDQUFDLElBQUksRUFBRXpCLGNBQWM7WUFDdEMwQixPQUFPQztRQUNYO1FBQ0FILE9BQU9DLGNBQWMsQ0FBQyxJQUFJLEVBQUU1QixpQkFBaUI7WUFDekMrQixVQUFVO1lBQ1ZGLE9BQU8sS0FBSztRQUNoQjtRQUNBRixPQUFPQyxjQUFjLENBQUMsSUFBSSxFQUFFM0IsZUFBZTtZQUN2QzhCLFVBQVU7WUFDVkYsT0FBTyxLQUFLO1FBQ2hCO1FBQ0FGLE9BQU9DLGNBQWMsQ0FBQyxJQUFJLEVBQUUxQixRQUFRO1lBQ2hDNkIsVUFBVTtZQUNWRixPQUFPLEtBQUs7UUFDaEI7UUFDQS9CLDhFQUErQkEsQ0FBQyxJQUFJLEVBQUVFLGdCQUFnQixDQUFDQSxnQkFBZ0IsR0FBRzBCO1FBQzFFNUIsOEVBQStCQSxDQUFDLElBQUksRUFBRUcsY0FBYyxDQUFDQSxjQUFjLEdBQUc7UUFDdEVILDhFQUErQkEsQ0FBQyxJQUFJLEVBQUVJLE9BQU8sQ0FBQ0EsT0FBTyxHQUFHLEVBQUU7SUFDOUQ7QUFDSjtBQUNBLFNBQVM0QixZQUFZRSxNQUFNO0lBQ3ZCLElBQUlBLFdBQVcsS0FBSyxHQUFHQSxTQUFTO0lBQ2hDLElBQUksQ0FBQ2xDLDhFQUErQkEsQ0FBQyxJQUFJLEVBQUVHLGNBQWMsQ0FBQ0EsY0FBYyxHQUFHSCw4RUFBK0JBLENBQUMsSUFBSSxFQUFFRSxnQkFBZ0IsQ0FBQ0EsZ0JBQWdCLElBQUlnQyxNQUFLLEtBQU1sQyw4RUFBK0JBLENBQUMsSUFBSSxFQUFFSSxPQUFPLENBQUNBLE9BQU8sQ0FBQytCLE1BQU0sR0FBRyxHQUFHO1FBQy9OLElBQUlDO1FBQ0hBLENBQUFBLCtDQUErQ3BDLDhFQUErQkEsQ0FBQyxJQUFJLEVBQUVJLE9BQU8sQ0FBQ0EsT0FBTyxDQUFDaUMsS0FBSyxFQUFDLEtBQU0sT0FBTyxLQUFLLElBQUlELDZDQUE2Q3JCLElBQUk7SUFDdkw7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcHJvbWlzZS1xdWV1ZS5qcz9iNTE5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgVGhpcyBpcyBhIHNpbXBsZSBwcm9taXNlIHF1ZXVlIHRoYXQgYWxsb3dzIHlvdSB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgcHJvbWlzZXNcbiAgICB0aGF0IGFyZSBydW5uaW5nIGF0IGFueSBnaXZlbiB0aW1lLiBJdCdzIHVzZWQgdG8gbGltaXQgdGhlIG51bWJlciBvZiBjb25jdXJyZW50XG4gICAgcHJlZmV0Y2ggcmVxdWVzdHMgdGhhdCBhcmUgYmVpbmcgbWFkZSB0byB0aGUgc2VydmVyIGJ1dCBjb3VsZCBiZSB1c2VkIGZvciBvdGhlclxuICAgIHRoaW5ncyBhcyB3ZWxsLlxuKi8gaW1wb3J0IHsgXyBhcyBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlIH0gZnJvbSBcIkBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2VcIjtcbmltcG9ydCB7IF8gYXMgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5IH0gZnJvbSBcIkBzd2MvaGVscGVycy9fL19jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleVwiO1xudmFyIF9tYXhDb25jdXJyZW5jeSA9IC8qI19fUFVSRV9fKi8gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5KFwiX21heENvbmN1cnJlbmN5XCIpLCBfcnVubmluZ0NvdW50ID0gLyojX19QVVJFX18qLyBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkoXCJfcnVubmluZ0NvdW50XCIpLCBfcXVldWUgPSAvKiNfX1BVUkVfXyovIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleShcIl9xdWV1ZVwiKSwgX3Byb2Nlc3NOZXh0ID0gLyojX19QVVJFX18qLyBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkoXCJfcHJvY2Vzc05leHRcIik7XG5leHBvcnQgY2xhc3MgUHJvbWlzZVF1ZXVlIHtcbiAgICBlbnF1ZXVlKHByb21pc2VGbikge1xuICAgICAgICBsZXQgdGFza1Jlc29sdmU7XG4gICAgICAgIGxldCB0YXNrUmVqZWN0O1xuICAgICAgICBjb25zdCB0YXNrUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgICAgICB0YXNrUmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgICAgICB0YXNrUmVqZWN0ID0gcmVqZWN0O1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdGFzayA9IGFzeW5jICgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UodGhpcywgX3J1bm5pbmdDb3VudClbX3J1bm5pbmdDb3VudF0rKztcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNlRm4oKTtcbiAgICAgICAgICAgICAgICB0YXNrUmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0YXNrUmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlKHRoaXMsIF9ydW5uaW5nQ291bnQpW19ydW5uaW5nQ291bnRdLS07XG4gICAgICAgICAgICAgICAgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSh0aGlzLCBfcHJvY2Vzc05leHQpW19wcm9jZXNzTmV4dF0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZW5xdWV1ZVJlc3VsdCA9IHtcbiAgICAgICAgICAgIHByb21pc2VGbjogdGFza1Byb21pc2UsXG4gICAgICAgICAgICB0YXNrXG4gICAgICAgIH07XG4gICAgICAgIC8vIHdvbmRlciBpZiB3ZSBzaG91bGQgdGFrZSBhIExJRk8gYXBwcm9hY2ggaGVyZVxuICAgICAgICBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlKHRoaXMsIF9xdWV1ZSlbX3F1ZXVlXS5wdXNoKGVucXVldWVSZXN1bHQpO1xuICAgICAgICBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlKHRoaXMsIF9wcm9jZXNzTmV4dClbX3Byb2Nlc3NOZXh0XSgpO1xuICAgICAgICByZXR1cm4gdGFza1Byb21pc2U7XG4gICAgfVxuICAgIGJ1bXAocHJvbWlzZUZuKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSh0aGlzLCBfcXVldWUpW19xdWV1ZV0uZmluZEluZGV4KChpdGVtKT0+aXRlbS5wcm9taXNlRm4gPT09IHByb21pc2VGbik7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBidW1wZWRJdGVtID0gX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSh0aGlzLCBfcXVldWUpW19xdWV1ZV0uc3BsaWNlKGluZGV4LCAxKVswXTtcbiAgICAgICAgICAgIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UodGhpcywgX3F1ZXVlKVtfcXVldWVdLnVuc2hpZnQoYnVtcGVkSXRlbSk7XG4gICAgICAgICAgICBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlKHRoaXMsIF9wcm9jZXNzTmV4dClbX3Byb2Nlc3NOZXh0XSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihtYXhDb25jdXJyZW5jeSA9IDUpe1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgX3Byb2Nlc3NOZXh0LCB7XG4gICAgICAgICAgICB2YWx1ZTogcHJvY2Vzc05leHRcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBfbWF4Q29uY3VycmVuY3ksIHtcbiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6IHZvaWQgMFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIF9ydW5uaW5nQ291bnQsIHtcbiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6IHZvaWQgMFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIF9xdWV1ZSwge1xuICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogdm9pZCAwXG4gICAgICAgIH0pO1xuICAgICAgICBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlKHRoaXMsIF9tYXhDb25jdXJyZW5jeSlbX21heENvbmN1cnJlbmN5XSA9IG1heENvbmN1cnJlbmN5O1xuICAgICAgICBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlKHRoaXMsIF9ydW5uaW5nQ291bnQpW19ydW5uaW5nQ291bnRdID0gMDtcbiAgICAgICAgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSh0aGlzLCBfcXVldWUpW19xdWV1ZV0gPSBbXTtcbiAgICB9XG59XG5mdW5jdGlvbiBwcm9jZXNzTmV4dChmb3JjZWQpIHtcbiAgICBpZiAoZm9yY2VkID09PSB2b2lkIDApIGZvcmNlZCA9IGZhbHNlO1xuICAgIGlmICgoX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSh0aGlzLCBfcnVubmluZ0NvdW50KVtfcnVubmluZ0NvdW50XSA8IF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UodGhpcywgX21heENvbmN1cnJlbmN5KVtfbWF4Q29uY3VycmVuY3ldIHx8IGZvcmNlZCkgJiYgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSh0aGlzLCBfcXVldWUpW19xdWV1ZV0ubGVuZ3RoID4gMCkge1xuICAgICAgICB2YXIgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZV9fcXVldWVfc2hpZnQ7XG4gICAgICAgIChfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlX19xdWV1ZV9zaGlmdCA9IF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UodGhpcywgX3F1ZXVlKVtfcXVldWVdLnNoaWZ0KCkpID09IG51bGwgPyB2b2lkIDAgOiBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlX19xdWV1ZV9zaGlmdC50YXNrKCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcm9taXNlLXF1ZXVlLmpzLm1hcCJdLCJuYW1lcyI6WyJfIiwiX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSIsIl9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleSIsIl9tYXhDb25jdXJyZW5jeSIsIl9ydW5uaW5nQ291bnQiLCJfcXVldWUiLCJfcHJvY2Vzc05leHQiLCJQcm9taXNlUXVldWUiLCJlbnF1ZXVlIiwicHJvbWlzZUZuIiwidGFza1Jlc29sdmUiLCJ0YXNrUmVqZWN0IiwidGFza1Byb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInRhc2siLCJyZXN1bHQiLCJlcnJvciIsImVucXVldWVSZXN1bHQiLCJwdXNoIiwiYnVtcCIsImluZGV4IiwiZmluZEluZGV4IiwiaXRlbSIsImJ1bXBlZEl0ZW0iLCJzcGxpY2UiLCJ1bnNoaWZ0IiwiY29uc3RydWN0b3IiLCJtYXhDb25jdXJyZW5jeSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJwcm9jZXNzTmV4dCIsIndyaXRhYmxlIiwiZm9yY2VkIiwibGVuZ3RoIiwiX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZV9fcXVldWVfc2hpZnQiLCJzaGlmdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/promise-queue.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/hot-reloader-client.js":
-/*!***************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/hot-reloader-client.js ***!
- \***************************************************************************************************/
-/***/ ((module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ HotReload)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/../../node_modules/next/dist/compiled/strip-ansi/index.js\");\n/* harmony import */ var next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _dev_error_overlay_format_webpack_messages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../dev/error-overlay/format-webpack-messages */ \"(ssr)/../../node_modules/next/dist/esm/client/dev/error-overlay/format-webpack-messages.js\");\n/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../navigation */ \"(ssr)/../../node_modules/next/dist/esm/client/components/navigation.js\");\n/* harmony import */ var _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/error-overlay-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/error-overlay-reducer.js\");\n/* harmony import */ var _internal_helpers_parseStack__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./internal/helpers/parseStack */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parseStack.js\");\n/* harmony import */ var _internal_ReactDevOverlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./internal/ReactDevOverlay */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/ReactDevOverlay.js\");\n/* harmony import */ var _internal_helpers_use_error_handler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./internal/helpers/use-error-handler */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-error-handler.js\");\n/* harmony import */ var _internal_helpers_use_websocket__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./internal/helpers/use-websocket */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-websocket.js\");\n/* harmony import */ var _internal_helpers_parse_component_stack__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internal/helpers/parse-component-stack */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js\");\n/* harmony import */ var _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../server/dev/hot-reloader-types */ \"(ssr)/../../node_modules/next/dist/esm/server/dev/hot-reloader-types.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet mostRecentCompilationHash = null;\nlet __nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet reloading = false;\nlet startLatency = null;\nfunction onBeforeFastRefresh(dispatcher, hasUpdates) {\n if (hasUpdates) {\n dispatcher.onBeforeRefresh();\n }\n}\nfunction onFastRefresh(dispatcher, sendMessage, updatedModules) {\n let endLatency = Date.now();\n dispatcher.onBuildOk();\n sendMessage(JSON.stringify({\n event: \"client-hmr-latency\",\n id: window.__nextDevClientId,\n startTime: startLatency,\n endTime: endLatency,\n page: window.location.pathname,\n updatedModules,\n // Whether the page (tab) was hidden at the time the event occurred.\n // This can impact the accuracy of the event's timing.\n isPageHidden: document.visibilityState === \"hidden\"\n }));\n if (updatedModules.length > 0) {\n dispatcher.onRefresh();\n }\n}\n// There is a newer version of the code available.\nfunction handleAvailableHash(hash) {\n // Update last known compilation hash.\n mostRecentCompilationHash = hash;\n}\n/**\n * Is there a newer version of this code available?\n * For webpack: Check if the hash changed compared to __webpack_hash__\n * For Turbopack: Always true because it doesn't have __webpack_hash__\n */ function isUpdateAvailable() {\n if (false) {}\n /* globals __webpack_hash__ */ // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n return mostRecentCompilationHash !== __webpack_require__.h();\n}\n// Webpack disallows updates in other states.\nfunction canApplyUpdates() {\n // @ts-expect-error module.hot exists\n return module.hot.status() === \"idle\";\n}\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n function handler(status) {\n if (status === \"idle\") {\n // @ts-expect-error module.hot exists\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n // @ts-expect-error module.hot exists\n module.hot.addStatusHandler(handler);\n }\n}\nfunction performFullReload(err, sendMessage) {\n const stackTrace = err && (err.stack && err.stack.split(\"\\n\").slice(0, 5).join(\"\\n\") || err.message || err + \"\");\n sendMessage(JSON.stringify({\n event: \"client-full-reload\",\n stackTrace,\n hadRuntimeError: !!_internal_helpers_use_error_handler__WEBPACK_IMPORTED_MODULE_8__.RuntimeErrorHandler.hadRuntimeError\n }));\n if (reloading) return;\n reloading = true;\n window.location.reload();\n}\n// Attempt to update code on the fly, fall back to a hard reload.\nfunction tryApplyUpdates(onBeforeUpdate, onHotUpdateSuccess, sendMessage, dispatcher) {\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n dispatcher.onBuildOk();\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || _internal_helpers_use_error_handler__WEBPACK_IMPORTED_MODULE_8__.RuntimeErrorHandler.hadRuntimeError || !updatedModules) {\n if (err) {\n console.warn(\"[Fast Refresh] performing full reload\\n\\n\" + \"Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\\n\" + \"You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\\n\" + \"Consider migrating the non-React component export to a separate file and importing it into both files.\\n\\n\" + \"It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\\n\" + \"Fast Refresh requires at least one parent function component in your React tree.\");\n } else if (_internal_helpers_use_error_handler__WEBPACK_IMPORTED_MODULE_8__.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(\"[Fast Refresh] performing full reload because your application had an unrecoverable error\");\n }\n performFullReload(err, sendMessage);\n return;\n }\n const hasUpdates = Boolean(updatedModules.length);\n if (typeof onHotUpdateSuccess === \"function\") {\n // Maybe we want to do something.\n onHotUpdateSuccess(updatedModules);\n }\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n tryApplyUpdates(hasUpdates ? ()=>{} : onBeforeUpdate, hasUpdates ? ()=>dispatcher.onBuildOk() : onHotUpdateSuccess, sendMessage, dispatcher);\n } else {\n dispatcher.onBuildOk();\n if (false) {}\n }\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n // @ts-expect-error module.hot exists\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (!updatedModules) {\n return null;\n }\n if (typeof onBeforeUpdate === \"function\") {\n const hasUpdates = Boolean(updatedModules.length);\n onBeforeUpdate(hasUpdates);\n }\n // https://webpack.js.org/api/hot-module-replacement/#apply\n // @ts-expect-error module.hot exists\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\nfunction processMessage(obj, sendMessage, router, dispatcher) {\n if (!(\"action\" in obj)) {\n return;\n }\n function handleErrors(errors) {\n // \"Massage\" webpack messages.\n const formatted = (0,_dev_error_overlay_format_webpack_messages__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n errors: errors,\n warnings: []\n });\n // Only show the first error.\n dispatcher.onBuildError(formatted.errors[0]);\n // Also log them to the console.\n for(let i = 0; i < formatted.errors.length; i++){\n console.error(next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_2___default()(formatted.errors[i]));\n }\n // Do not attempt to reload now.\n // We will reload on next success instead.\n if (false) {}\n }\n function handleHotUpdate(updatedModules) {\n if (false) {} else {\n tryApplyUpdates(function onBeforeHotUpdate(hasUpdates) {\n onBeforeFastRefresh(dispatcher, hasUpdates);\n }, function onSuccessfulHotUpdate(webpackUpdatedModules) {\n // Only dismiss it when we're sure it's a hot update.\n // Otherwise it would flicker right before the reload.\n onFastRefresh(dispatcher, sendMessage, webpackUpdatedModules);\n }, sendMessage, dispatcher);\n }\n }\n switch(obj.action){\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.BUILDING:\n {\n startLatency = Date.now();\n console.log(\"[Fast Refresh] rebuilding\");\n break;\n }\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.FINISH_BUILDING:\n {\n break;\n }\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.BUILT:\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.SYNC:\n {\n if (obj.hash) {\n handleAvailableHash(obj.hash);\n }\n const { errors, warnings } = obj;\n // Is undefined when it's a 'built' event\n if (\"versionInfo\" in obj) {\n dispatcher.onVersionInfo(obj.versionInfo);\n }\n const hasErrors = Boolean(errors && errors.length);\n // Compilation with errors (e.g. syntax error or missing modules).\n if (hasErrors) {\n sendMessage(JSON.stringify({\n event: \"client-error\",\n errorCount: errors.length,\n clientId: __nextDevClientId\n }));\n handleErrors(errors);\n return;\n }\n const hasWarnings = Boolean(warnings && warnings.length);\n if (hasWarnings) {\n sendMessage(JSON.stringify({\n event: \"client-warning\",\n warningCount: warnings.length,\n clientId: __nextDevClientId\n }));\n // Print warnings to the console.\n const formattedMessages = (0,_dev_error_overlay_format_webpack_messages__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n warnings: warnings,\n errors: []\n });\n for(let i = 0; i < formattedMessages.warnings.length; i++){\n if (i === 5) {\n console.warn(\"There were more warnings in other files.\\n\" + \"You can find a complete log in the terminal.\");\n break;\n }\n console.warn(next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_2___default()(formattedMessages.warnings[i]));\n }\n // No early return here as we need to apply modules in the same way between warnings only and compiles without warnings\n }\n sendMessage(JSON.stringify({\n event: \"client-success\",\n clientId: __nextDevClientId\n }));\n if (obj.action === _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.BUILT) {\n // Handle hot updates\n handleHotUpdate(obj.updatedModules);\n }\n return;\n }\n // TODO-APP: make server component change more granular\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES:\n {\n sendMessage(JSON.stringify({\n event: \"server-component-reload-page\",\n clientId: __nextDevClientId\n }));\n if (_internal_helpers_use_error_handler__WEBPACK_IMPORTED_MODULE_8__.RuntimeErrorHandler.hadRuntimeError) {\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.startTransition)(()=>{\n // @ts-ignore it exists, it's just hidden\n router.fastRefresh();\n dispatcher.onRefresh();\n });\n if (false) {}\n return;\n }\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE:\n {\n sendMessage(JSON.stringify({\n event: \"client-reload-page\",\n clientId: __nextDevClientId\n }));\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.REMOVED_PAGE:\n {\n // TODO-APP: potentially only refresh if the currently viewed page was removed.\n // @ts-ignore it exists, it's just hidden\n router.fastRefresh();\n return;\n }\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.ADDED_PAGE:\n {\n // TODO-APP: potentially only refresh if the currently viewed page was added.\n // @ts-ignore it exists, it's just hidden\n router.fastRefresh();\n return;\n }\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR:\n {\n const { errorJSON } = obj;\n if (errorJSON) {\n const { message, stack } = JSON.parse(errorJSON);\n const error = new Error(message);\n error.stack = stack;\n handleErrors([\n error\n ]);\n }\n return;\n }\n case _server_dev_hot_reloader_types__WEBPACK_IMPORTED_MODULE_11__.HMR_ACTIONS_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE:\n {\n return;\n }\n default:\n {}\n }\n}\nfunction HotReload(param) {\n let { assetPrefix, children } = param;\n const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useReducer)(_internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.errorOverlayReducer, _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.INITIAL_OVERLAY_STATE);\n const dispatcher = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return {\n onBuildOk () {\n dispatch({\n type: _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.ACTION_BUILD_OK\n });\n },\n onBuildError (message) {\n dispatch({\n type: _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.ACTION_BUILD_ERROR,\n message\n });\n },\n onBeforeRefresh () {\n dispatch({\n type: _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.ACTION_BEFORE_REFRESH\n });\n },\n onRefresh () {\n dispatch({\n type: _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.ACTION_REFRESH\n });\n },\n onVersionInfo (versionInfo) {\n dispatch({\n type: _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.ACTION_VERSION_INFO,\n versionInfo\n });\n }\n };\n }, [\n dispatch\n ]);\n const handleOnUnhandledError = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((error)=>{\n // Component stack is added to the error in use-error-handler in case there was a hydration errror\n const componentStack = error._componentStack;\n dispatch({\n type: _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.ACTION_UNHANDLED_ERROR,\n reason: error,\n frames: (0,_internal_helpers_parseStack__WEBPACK_IMPORTED_MODULE_6__.parseStack)(error.stack),\n componentStackFrames: componentStack && (0,_internal_helpers_parse_component_stack__WEBPACK_IMPORTED_MODULE_10__.parseComponentStack)(componentStack)\n });\n }, []);\n const handleOnUnhandledRejection = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((reason)=>{\n dispatch({\n type: _internal_error_overlay_reducer__WEBPACK_IMPORTED_MODULE_5__.ACTION_UNHANDLED_REJECTION,\n reason: reason,\n frames: (0,_internal_helpers_parseStack__WEBPACK_IMPORTED_MODULE_6__.parseStack)(reason.stack)\n });\n }, []);\n const handleOnReactError = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{\n _internal_helpers_use_error_handler__WEBPACK_IMPORTED_MODULE_8__.RuntimeErrorHandler.hadRuntimeError = true;\n }, []);\n (0,_internal_helpers_use_error_handler__WEBPACK_IMPORTED_MODULE_8__.useErrorHandler)(handleOnUnhandledError, handleOnUnhandledRejection);\n const webSocketRef = (0,_internal_helpers_use_websocket__WEBPACK_IMPORTED_MODULE_9__.useWebsocket)(assetPrefix);\n (0,_internal_helpers_use_websocket__WEBPACK_IMPORTED_MODULE_9__.useWebsocketPing)(webSocketRef);\n const sendMessage = (0,_internal_helpers_use_websocket__WEBPACK_IMPORTED_MODULE_9__.useSendMessage)(webSocketRef);\n const processTurbopackMessage = (0,_internal_helpers_use_websocket__WEBPACK_IMPORTED_MODULE_9__.useTurbopack)(sendMessage);\n const router = (0,_navigation__WEBPACK_IMPORTED_MODULE_4__.useRouter)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const handler = (event)=>{\n try {\n const obj = JSON.parse(event.data);\n const handledByTurbopack = processTurbopackMessage == null ? void 0 : processTurbopackMessage(obj);\n if (!handledByTurbopack) {\n processMessage(obj, sendMessage, router, dispatcher);\n }\n } catch (err) {\n var _err_stack;\n console.warn(\"[HMR] Invalid message: \" + event.data + \"\\n\" + ((_err_stack = err == null ? void 0 : err.stack) != null ? _err_stack : \"\"));\n }\n };\n const websocket = webSocketRef.current;\n if (websocket) {\n websocket.addEventListener(\"message\", handler);\n }\n return ()=>websocket && websocket.removeEventListener(\"message\", handler);\n }, [\n sendMessage,\n router,\n webSocketRef,\n dispatcher,\n processTurbopackMessage\n ]);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_internal_ReactDevOverlay__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onReactError: handleOnReactError,\n state: state,\n children: children\n });\n} //# sourceMappingURL=hot-reloader-client.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaG90LXJlbG9hZGVyLWNsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0Q7QUFDNEM7QUFDdEM7QUFDOEI7QUFDMUM7QUFDeUU7QUFDK0Q7QUFDdkg7QUFDRjtBQUNtQztBQUNvQjtBQUNqQztBQUNNO0FBQ3JGLElBQUk4Qiw0QkFBNEI7QUFDaEMsSUFBSUMsb0JBQW9CQyxLQUFLQyxLQUFLLENBQUNELEtBQUtFLE1BQU0sS0FBSyxNQUFNQyxLQUFLQyxHQUFHO0FBQ2pFLElBQUlDLFlBQVk7QUFDaEIsSUFBSUMsZUFBZTtBQUNuQixTQUFTQyxvQkFBb0JDLFVBQVUsRUFBRUMsVUFBVTtJQUMvQyxJQUFJQSxZQUFZO1FBQ1pELFdBQVdFLGVBQWU7SUFDOUI7QUFDSjtBQUNBLFNBQVNDLGNBQWNILFVBQVUsRUFBRUksV0FBVyxFQUFFQyxjQUFjO0lBQzFELElBQUlDLGFBQWFYLEtBQUtDLEdBQUc7SUFDekJJLFdBQVdPLFNBQVM7SUFDcEJILFlBQVlJLEtBQUtDLFNBQVMsQ0FBQztRQUN2QkMsT0FBTztRQUNQQyxJQUFJQyxPQUFPckIsaUJBQWlCO1FBQzVCc0IsV0FBV2Y7UUFDWGdCLFNBQVNSO1FBQ1RTLE1BQU1ILE9BQU9JLFFBQVEsQ0FBQ0MsUUFBUTtRQUM5Qlo7UUFDQSxvRUFBb0U7UUFDcEUsc0RBQXNEO1FBQ3REYSxjQUFjQyxTQUFTQyxlQUFlLEtBQUs7SUFDL0M7SUFDQSxJQUFJZixlQUFlZ0IsTUFBTSxHQUFHLEdBQUc7UUFDM0JyQixXQUFXc0IsU0FBUztJQUN4QjtBQUNKO0FBQ0Esa0RBQWtEO0FBQ2xELFNBQVNDLG9CQUFvQkMsSUFBSTtJQUM3QixzQ0FBc0M7SUFDdENsQyw0QkFBNEJrQztBQUNoQztBQUNBOzs7O0NBSUMsR0FBRyxTQUFTQztJQUNULElBQUlDLEtBQXFCLEVBQUUs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TUFBTTJHLElBQUksR0FBRyxPQUFRLEVBQUNFLGFBQWEvRSxPQUFPLE9BQU8sS0FBSyxJQUFJQSxJQUFJRSxLQUFLLEtBQUssT0FBTzZFLGFBQWEsRUFBQztZQUMxSTtRQUNKO1FBQ0EsTUFBTUMsWUFBWUwsYUFBYU0sT0FBTztRQUN0QyxJQUFJRCxXQUFXO1lBQ1hBLFVBQVVFLGdCQUFnQixDQUFDLFdBQVd0RjtRQUMxQztRQUNBLE9BQU8sSUFBSW9GLGFBQWFBLFVBQVVHLG1CQUFtQixDQUFDLFdBQVd2RjtJQUNyRSxHQUFHO1FBQ0NoQztRQUNBNEQ7UUFDQW1EO1FBQ0FuSDtRQUNBb0g7S0FDSDtJQUNELE9BQU8sV0FBVyxHQUFHM0osc0RBQUlBLENBQUNvQixpRUFBZUEsRUFBRTtRQUN2QytJLGNBQWNWO1FBQ2RWLE9BQU9BO1FBQ1BELFVBQVVBO0lBQ2Q7QUFDSixFQUVBLCtDQUErQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaG90LXJlbG9hZGVyLWNsaWVudC5qcz8wZDJmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVkdWNlciwgdXNlTWVtbywgc3RhcnRUcmFuc2l0aW9uIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaVwiO1xuaW1wb3J0IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyBmcm9tIFwiLi4vLi4vZGV2L2Vycm9yLW92ZXJsYXkvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXNcIjtcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gXCIuLi9uYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBBQ1RJT05fVkVSU0lPTl9JTkZPLCBJTklUSUFMX09WRVJMQVlfU1RBVEUsIGVycm9yT3ZlcmxheVJlZHVjZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC9lcnJvci1vdmVybGF5LXJlZHVjZXJcIjtcbmltcG9ydCB7IEFDVElPTl9CVUlMRF9PSywgQUNUSU9OX0JVSUxEX0VSUk9SLCBBQ1RJT05fQkVGT1JFX1JFRlJFU0gsIEFDVElPTl9SRUZSRVNILCBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SLCBBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTiB9IGZyb20gXCIuL2ludGVybmFsL2Vycm9yLW92ZXJsYXktcmVkdWNlclwiO1xuaW1wb3J0IHsgcGFyc2VTdGFjayB9IGZyb20gXCIuL2ludGVybmFsL2hlbHBlcnMvcGFyc2VTdGFja1wiO1xuaW1wb3J0IFJlYWN0RGV2T3ZlcmxheSBmcm9tIFwiLi9pbnRlcm5hbC9SZWFjdERldk92ZXJsYXlcIjtcbmltcG9ydCB7IFJ1bnRpbWVFcnJvckhhbmRsZXIsIHVzZUVycm9ySGFuZGxlciB9IGZyb20gXCIuL2ludGVybmFsL2hlbHBlcnMvdXNlLWVycm9yLWhhbmRsZXJcIjtcbmltcG9ydCB7IHVzZVNlbmRNZXNzYWdlLCB1c2VUdXJib3BhY2ssIHVzZVdlYnNvY2tldCwgdXNlV2Vic29ja2V0UGluZyB9IGZyb20gXCIuL2ludGVybmFsL2hlbHBlcnMvdXNlLXdlYnNvY2tldFwiO1xuaW1wb3J0IHsgcGFyc2VDb21wb25lbnRTdGFjayB9IGZyb20gXCIuL2ludGVybmFsL2hlbHBlcnMvcGFyc2UtY29tcG9uZW50LXN0YWNrXCI7XG5pbXBvcnQgeyBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXNcIjtcbmxldCBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoID0gbnVsbDtcbmxldCBfX25leHREZXZDbGllbnRJZCA9IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMCArIERhdGUubm93KCkpO1xubGV0IHJlbG9hZGluZyA9IGZhbHNlO1xubGV0IHN0YXJ0TGF0ZW5jeSA9IG51bGw7XG5mdW5jdGlvbiBvbkJlZm9yZUZhc3RSZWZyZXNoKGRpc3BhdGNoZXIsIGhhc1VwZGF0ZXMpIHtcbiAgICBpZiAoaGFzVXBkYXRlcykge1xuICAgICAgICBkaXNwYXRjaGVyLm9uQmVmb3JlUmVmcmVzaCgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG9uRmFzdFJlZnJlc2goZGlzcGF0Y2hlciwgc2VuZE1lc3NhZ2UsIHVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgbGV0IGVuZExhdGVuY3kgPSBEYXRlLm5vdygpO1xuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKCk7XG4gICAgc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBldmVudDogXCJjbGllbnQtaG1yLWxhdGVuY3lcIixcbiAgICAgICAgaWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgc3RhcnRUaW1lOiBzdGFydExhdGVuY3ksXG4gICAgICAgIGVuZFRpbWU6IGVuZExhdGVuY3ksXG4gICAgICAgIHBhZ2U6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICAgICAgdXBkYXRlZE1vZHVsZXMsXG4gICAgICAgIC8vIFdoZXRoZXIgdGhlIHBhZ2UgKHRhYikgd2FzIGhpZGRlbiBhdCB0aGUgdGltZSB0aGUgZXZlbnQgb2NjdXJyZWQuXG4gICAgICAgIC8vIFRoaXMgY2FuIGltcGFjdCB0aGUgYWNjdXJhY3kgb2YgdGhlIGV2ZW50J3MgdGltaW5nLlxuICAgICAgICBpc1BhZ2VIaWRkZW46IGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gXCJoaWRkZW5cIlxuICAgIH0pKTtcbiAgICBpZiAodXBkYXRlZE1vZHVsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpO1xuICAgIH1cbn1cbi8vIFRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgY29kZSBhdmFpbGFibGUuXG5mdW5jdGlvbiBoYW5kbGVBdmFpbGFibGVIYXNoKGhhc2gpIHtcbiAgICAvLyBVcGRhdGUgbGFzdCBrbm93biBjb21waWxhdGlvbiBoYXNoLlxuICAgIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2ggPSBoYXNoO1xufVxuLyoqXG4gKiBJcyB0aGVyZSBhIG5ld2VyIHZlcnNpb24gb2YgdGhpcyBjb2RlIGF2YWlsYWJsZT9cbiAqIEZvciB3ZWJwYWNrOiBDaGVjayBpZiB0aGUgaGFzaCBjaGFuZ2VkIGNvbXBhcmVkIHRvIF9fd2VicGFja19oYXNoX19cbiAqIEZvciBUdXJib3BhY2s6IEFsd2F5cyB0cnVlIGJlY2F1c2UgaXQgZG9lc24ndCBoYXZlIF9fd2VicGFja19oYXNoX19cbiAqLyBmdW5jdGlvbiBpc1VwZGF0ZUF2YWlsYWJsZSgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKiBnbG9iYWxzIF9fd2VicGFja19oYXNoX18gKi8gLy8gX193ZWJwYWNrX2hhc2hfXyBpcyB0aGUgaGFzaCBvZiB0aGUgY3VycmVudCBjb21waWxhdGlvbi5cbiAgICAvLyBJdCdzIGEgZ2xvYmFsIHZhcmlhYmxlIGluamVjdGVkIGJ5IFdlYnBhY2suXG4gICAgcmV0dXJuIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2ggIT09IF9fd2VicGFja19oYXNoX187XG59XG4vLyBXZWJwYWNrIGRpc2FsbG93cyB1cGRhdGVzIGluIG90aGVyIHN0YXRlcy5cbmZ1bmN0aW9uIGNhbkFwcGx5VXBkYXRlcygpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG1vZHVsZS5ob3QgZXhpc3RzXG4gICAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09IFwiaWRsZVwiO1xufVxuZnVuY3Rpb24gYWZ0ZXJBcHBseVVwZGF0ZXMoZm4pIHtcbiAgICBpZiAoY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICAgICAgZm4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmdW5jdGlvbiBoYW5kbGVyKHN0YXR1cykge1xuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJpZGxlXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG1vZHVsZS5ob3QgZXhpc3RzXG4gICAgICAgICAgICAgICAgbW9kdWxlLmhvdC5yZW1vdmVTdGF0dXNIYW5kbGVyKGhhbmRsZXIpO1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBtb2R1bGUuaG90IGV4aXN0c1xuICAgICAgICBtb2R1bGUuaG90LmFkZFN0YXR1c0hhbmRsZXIoaGFuZGxlcik7XG4gICAgfVxufVxuZnVuY3Rpb24gcGVyZm9ybUZ1bGxSZWxvYWQoZXJyLCBzZW5kTWVzc2FnZSkge1xuICAgIGNvbnN0IHN0YWNrVHJhY2UgPSBlcnIgJiYgKGVyci5zdGFjayAmJiBlcnIuc3RhY2suc3BsaXQoXCJcXG5cIikuc2xpY2UoMCwgNSkuam9pbihcIlxcblwiKSB8fCBlcnIubWVzc2FnZSB8fCBlcnIgKyBcIlwiKTtcbiAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGV2ZW50OiBcImNsaWVudC1mdWxsLXJlbG9hZFwiLFxuICAgICAgICBzdGFja1RyYWNlLFxuICAgICAgICBoYWRSdW50aW1lRXJyb3I6ICEhUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3JcbiAgICB9KSk7XG4gICAgaWYgKHJlbG9hZGluZykgcmV0dXJuO1xuICAgIHJlbG9hZGluZyA9IHRydWU7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xufVxuLy8gQXR0ZW1wdCB0byB1cGRhdGUgY29kZSBvbiB0aGUgZmx5LCBmYWxsIGJhY2sgdG8gYSBoYXJkIHJlbG9hZC5cbmZ1bmN0aW9uIHRyeUFwcGx5VXBkYXRlcyhvbkJlZm9yZVVwZGF0ZSwgb25Ib3RVcGRhdGVTdWNjZXNzLCBzZW5kTWVzc2FnZSwgZGlzcGF0Y2hlcikge1xuICAgIGlmICghaXNVcGRhdGVBdmFpbGFibGUoKSB8fCAhY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICAgICAgZGlzcGF0Y2hlci5vbkJ1aWxkT2soKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVBcHBseVVwZGF0ZXMoZXJyLCB1cGRhdGVkTW9kdWxlcykge1xuICAgICAgICBpZiAoZXJyIHx8IFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yIHx8ICF1cGRhdGVkTW9kdWxlcykge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIltGYXN0IFJlZnJlc2hdIHBlcmZvcm1pbmcgZnVsbCByZWxvYWRcXG5cXG5cIiArIFwiRmFzdCBSZWZyZXNoIHdpbGwgcGVyZm9ybSBhIGZ1bGwgcmVsb2FkIHdoZW4geW91IGVkaXQgYSBmaWxlIHRoYXQncyBpbXBvcnRlZCBieSBtb2R1bGVzIG91dHNpZGUgb2YgdGhlIFJlYWN0IHJlbmRlcmluZyB0cmVlLlxcblwiICsgXCJZb3UgbWlnaHQgaGF2ZSBhIGZpbGUgd2hpY2ggZXhwb3J0cyBhIFJlYWN0IGNvbXBvbmVudCBidXQgYWxzbyBleHBvcnRzIGEgdmFsdWUgdGhhdCBpcyBpbXBvcnRlZCBieSBhIG5vbi1SZWFjdCBjb21wb25lbnQgZmlsZS5cXG5cIiArIFwiQ29uc2lkZXIgbWlncmF0aW5nIHRoZSBub24tUmVhY3QgY29tcG9uZW50IGV4cG9ydCB0byBhIHNlcGFyYXRlIGZpbGUgYW5kIGltcG9ydGluZyBpdCBpbnRvIGJvdGggZmlsZXMuXFxuXFxuXCIgKyBcIkl0IGlzIGFsc28gcG9zc2libGUgdGhlIHBhcmVudCBjb21wb25lbnQgb2YgdGhlIGNvbXBvbmVudCB5b3UgZWRpdGVkIGlzIGEgY2xhc3MgY29tcG9uZW50LCB3aGljaCBkaXNhYmxlcyBGYXN0IFJlZnJlc2guXFxuXCIgKyBcIkZhc3QgUmVmcmVzaCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgcGFyZW50IGZ1bmN0aW9uIGNvbXBvbmVudCBpbiB5b3VyIFJlYWN0IHRyZWUuXCIpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIltGYXN0IFJlZnJlc2hdIHBlcmZvcm1pbmcgZnVsbCByZWxvYWQgYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGhhZCBhbiB1bnJlY292ZXJhYmxlIGVycm9yXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQoZXJyLCBzZW5kTWVzc2FnZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzVXBkYXRlcyA9IEJvb2xlYW4odXBkYXRlZE1vZHVsZXMubGVuZ3RoKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvbkhvdFVwZGF0ZVN1Y2Nlc3MgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgLy8gTWF5YmUgd2Ugd2FudCB0byBkbyBzb21ldGhpbmcuXG4gICAgICAgICAgICBvbkhvdFVwZGF0ZVN1Y2Nlc3ModXBkYXRlZE1vZHVsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1VwZGF0ZUF2YWlsYWJsZSgpKSB7XG4gICAgICAgICAgICAvLyBXaGlsZSB3ZSB3ZXJlIHVwZGF0aW5nLCB0aGVyZSB3YXMgYSBuZXcgdXBkYXRlISBEbyBpdCBhZ2Fpbi5cbiAgICAgICAgICAgIHRyeUFwcGx5VXBkYXRlcyhoYXNVcGRhdGVzID8gKCk9Pnt9IDogb25CZWZvcmVVcGRhdGUsIGhhc1VwZGF0ZXMgPyAoKT0+ZGlzcGF0Y2hlci5vbkJ1aWxkT2soKSA6IG9uSG90VXBkYXRlU3VjY2Vzcywgc2VuZE1lc3NhZ2UsIGRpc3BhdGNoZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5vbkJ1aWxkT2soKTtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJBcHBseVVwZGF0ZXMoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9hcGkvaG90LW1vZHVsZS1yZXBsYWNlbWVudC8jY2hlY2tcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG1vZHVsZS5ob3QgZXhpc3RzXG4gICAgbW9kdWxlLmhvdC5jaGVjaygvKiBhdXRvQXBwbHkgKi8gZmFsc2UpLnRoZW4oKHVwZGF0ZWRNb2R1bGVzKT0+e1xuICAgICAgICBpZiAoIXVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9uQmVmb3JlVXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VwZGF0ZXMgPSBCb29sZWFuKHVwZGF0ZWRNb2R1bGVzLmxlbmd0aCk7XG4gICAgICAgICAgICBvbkJlZm9yZVVwZGF0ZShoYXNVcGRhdGVzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBodHRwczovL3dlYnBhY2suanMub3JnL2FwaS9ob3QtbW9kdWxlLXJlcGxhY2VtZW50LyNhcHBseVxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG1vZHVsZS5ob3QgZXhpc3RzXG4gICAgICAgIHJldHVybiBtb2R1bGUuaG90LmFwcGx5KCk7XG4gICAgfSkudGhlbigodXBkYXRlZE1vZHVsZXMpPT57XG4gICAgICAgIGhhbmRsZUFwcGx5VXBkYXRlcyhudWxsLCB1cGRhdGVkTW9kdWxlcyk7XG4gICAgfSwgKGVycik9PntcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKGVyciwgbnVsbCk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBwcm9jZXNzTWVzc2FnZShvYmosIHNlbmRNZXNzYWdlLCByb3V0ZXIsIGRpc3BhdGNoZXIpIHtcbiAgICBpZiAoIShcImFjdGlvblwiIGluIG9iaikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVFcnJvcnMoZXJyb3JzKSB7XG4gICAgICAgIC8vIFwiTWFzc2FnZVwiIHdlYnBhY2sgbWVzc2FnZXMuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyh7XG4gICAgICAgICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgICAgICAgIHdhcm5pbmdzOiBbXVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvci5cbiAgICAgICAgZGlzcGF0Y2hlci5vbkJ1aWxkRXJyb3IoZm9ybWF0dGVkLmVycm9yc1swXSk7XG4gICAgICAgIC8vIEFsc28gbG9nIHRoZW0gdG8gdGhlIGNvbnNvbGUuXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWQuZXJyb3JzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3Ioc3RyaXBBbnNpKGZvcm1hdHRlZC5lcnJvcnNbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0byByZWxvYWQgbm93LlxuICAgICAgICAvLyBXZSB3aWxsIHJlbG9hZCBvbiBuZXh0IHN1Y2Nlc3MgaW5zdGVhZC5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IoZm9ybWF0dGVkLmVycm9yc1swXSk7XG4gICAgICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVIb3RVcGRhdGUodXBkYXRlZE1vZHVsZXMpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgb25GYXN0UmVmcmVzaChkaXNwYXRjaGVyLCBzZW5kTWVzc2FnZSwgdXBkYXRlZE1vZHVsZXMgfHwgW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5QXBwbHlVcGRhdGVzKGZ1bmN0aW9uIG9uQmVmb3JlSG90VXBkYXRlKGhhc1VwZGF0ZXMpIHtcbiAgICAgICAgICAgICAgICBvbkJlZm9yZUZhc3RSZWZyZXNoKGRpc3BhdGNoZXIsIGhhc1VwZGF0ZXMpO1xuICAgICAgICAgICAgfSwgZnVuY3Rpb24gb25TdWNjZXNzZnVsSG90VXBkYXRlKHdlYnBhY2tVcGRhdGVkTW9kdWxlcykge1xuICAgICAgICAgICAgICAgIC8vIE9ubHkgZGlzbWlzcyBpdCB3aGVuIHdlJ3JlIHN1cmUgaXQncyBhIGhvdCB1cGRhdGUuXG4gICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGl0IHdvdWxkIGZsaWNrZXIgcmlnaHQgYmVmb3JlIHRoZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgb25GYXN0UmVmcmVzaChkaXNwYXRjaGVyLCBzZW5kTWVzc2FnZSwgd2VicGFja1VwZGF0ZWRNb2R1bGVzKTtcbiAgICAgICAgICAgIH0sIHNlbmRNZXNzYWdlLCBkaXNwYXRjaGVyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2gob2JqLmFjdGlvbil7XG4gICAgICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxESU5HOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0YXJ0TGF0ZW5jeSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbRmFzdCBSZWZyZXNoXSByZWJ1aWxkaW5nXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5GSU5JU0hfQlVJTERJTkc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxUOlxuICAgICAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TWU5DOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzaCkge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdmFpbGFibGVIYXNoKG9iai5oYXNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMsIHdhcm5pbmdzIH0gPSBvYmo7XG4gICAgICAgICAgICAgICAgLy8gSXMgdW5kZWZpbmVkIHdoZW4gaXQncyBhICdidWlsdCcgZXZlbnRcbiAgICAgICAgICAgICAgICBpZiAoXCJ2ZXJzaW9uSW5mb1wiIGluIG9iaikge1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLm9uVmVyc2lvbkluZm8ob2JqLnZlcnNpb25JbmZvKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzRXJyb3JzID0gQm9vbGVhbihlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgLy8gQ29tcGlsYXRpb24gd2l0aCBlcnJvcnMgKGUuZy4gc3ludGF4IGVycm9yIG9yIG1pc3NpbmcgbW9kdWxlcykuXG4gICAgICAgICAgICAgICAgaWYgKGhhc0Vycm9ycykge1xuICAgICAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudDogXCJjbGllbnQtZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ291bnQ6IGVycm9ycy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNXYXJuaW5ncyA9IEJvb2xlYW4od2FybmluZ3MgJiYgd2FybmluZ3MubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzV2FybmluZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ6IFwiY2xpZW50LXdhcm5pbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdDb3VudDogd2FybmluZ3MubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQ6IF9fbmV4dERldkNsaWVudElkXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gUHJpbnQgd2FybmluZ3MgdG8gdGhlIGNvbnNvbGUuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZE1lc3NhZ2VzID0gZm9ybWF0V2VicGFja01lc3NhZ2VzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzOiB3YXJuaW5ncyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW11cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWRNZXNzYWdlcy53YXJuaW5ncy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gNSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlRoZXJlIHdlcmUgbW9yZSB3YXJuaW5ncyBpbiBvdGhlciBmaWxlcy5cXG5cIiArIFwiWW91IGNhbiBmaW5kIGEgY29tcGxldGUgbG9nIGluIHRoZSB0ZXJtaW5hbC5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oc3RyaXBBbnNpKGZvcm1hdHRlZE1lc3NhZ2VzLndhcm5pbmdzW2ldKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBObyBlYXJseSByZXR1cm4gaGVyZSBhcyB3ZSBuZWVkIHRvIGFwcGx5IG1vZHVsZXMgaW4gdGhlIHNhbWUgd2F5IGJldHdlZW4gd2FybmluZ3Mgb25seSBhbmQgY29tcGlsZXMgd2l0aG91dCB3YXJuaW5nc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiBcImNsaWVudC1zdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICBpZiAob2JqLmFjdGlvbiA9PT0gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxUKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBob3QgdXBkYXRlc1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVIb3RVcGRhdGUob2JqLnVwZGF0ZWRNb2R1bGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAvLyBUT0RPLUFQUDogbWFrZSBzZXJ2ZXIgY29tcG9uZW50IGNoYW5nZSBtb3JlIGdyYW51bGFyXG4gICAgICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFUzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiBcInNlcnZlci1jb21wb25lbnQtcmVsb2FkLXBhZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQ6IF9fbmV4dERldkNsaWVudElkXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVsb2FkaW5nKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIHJlbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKT0+e1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlIGl0IGV4aXN0cywgaXQncyBqdXN0IGhpZGRlblxuICAgICAgICAgICAgICAgICAgICByb3V0ZXIuZmFzdFJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5vblJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5fX05FWFRfSE1SX0NCKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5SRUxPQURfUEFHRTpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiBcImNsaWVudC1yZWxvYWQtcGFnZVwiLFxuICAgICAgICAgICAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlbG9hZGluZykgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHJlbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuUkVNT1ZFRF9QQUdFOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBwb3RlbnRpYWxseSBvbmx5IHJlZnJlc2ggaWYgdGhlIGN1cnJlbnRseSB2aWV3ZWQgcGFnZSB3YXMgcmVtb3ZlZC5cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlIGl0IGV4aXN0cywgaXQncyBqdXN0IGhpZGRlblxuICAgICAgICAgICAgICAgIHJvdXRlci5mYXN0UmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQURERURfUEFHRTpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPLUFQUDogcG90ZW50aWFsbHkgb25seSByZWZyZXNoIGlmIHRoZSBjdXJyZW50bHkgdmlld2VkIHBhZ2Ugd2FzIGFkZGVkLlxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgaXQgZXhpc3RzLCBpdCdzIGp1c3QgaGlkZGVuXG4gICAgICAgICAgICAgICAgcm91dGVyLmZhc3RSZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TRVJWRVJfRVJST1I6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvckpTT04gfSA9IG9iajtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JKU09OKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgc3RhY2sgfSA9IEpTT04ucGFyc2UoZXJyb3JKU09OKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLnN0YWNrID0gc3RhY2s7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZUVycm9ycyhbXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5ERVZfUEFHRVNfTUFOSUZFU1RfVVBEQVRFOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHt9XG4gICAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG90UmVsb2FkKHBhcmFtKSB7XG4gICAgbGV0IHsgYXNzZXRQcmVmaXgsIGNoaWxkcmVuIH0gPSBwYXJhbTtcbiAgICBjb25zdCBbc3RhdGUsIGRpc3BhdGNoXSA9IHVzZVJlZHVjZXIoZXJyb3JPdmVybGF5UmVkdWNlciwgSU5JVElBTF9PVkVSTEFZX1NUQVRFKTtcbiAgICBjb25zdCBkaXNwYXRjaGVyID0gdXNlTWVtbygoKT0+e1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgb25CdWlsZE9rICgpIHtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEFDVElPTl9CVUlMRF9PS1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQnVpbGRFcnJvciAobWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogQUNUSU9OX0JVSUxEX0VSUk9SLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25CZWZvcmVSZWZyZXNoICgpIHtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEFDVElPTl9CRUZPUkVfUkVGUkVTSFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uUmVmcmVzaCAoKSB7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBBQ1RJT05fUkVGUkVTSFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uVmVyc2lvbkluZm8gKHZlcnNpb25JbmZvKSB7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBBQ1RJT05fVkVSU0lPTl9JTkZPLFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uSW5mb1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgZGlzcGF0Y2hcbiAgICBdKTtcbiAgICBjb25zdCBoYW5kbGVPblVuaGFuZGxlZEVycm9yID0gdXNlQ2FsbGJhY2soKGVycm9yKT0+e1xuICAgICAgICAvLyBDb21wb25lbnQgc3RhY2sgaXMgYWRkZWQgdG8gdGhlIGVycm9yIGluIHVzZS1lcnJvci1oYW5kbGVyIGluIGNhc2UgdGhlcmUgd2FzIGEgaHlkcmF0aW9uIGVycnJvclxuICAgICAgICBjb25zdCBjb21wb25lbnRTdGFjayA9IGVycm9yLl9jb21wb25lbnRTdGFjaztcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogQUNUSU9OX1VOSEFORExFRF9FUlJPUixcbiAgICAgICAgICAgIHJlYXNvbjogZXJyb3IsXG4gICAgICAgICAgICBmcmFtZXM6IHBhcnNlU3RhY2soZXJyb3Iuc3RhY2spLFxuICAgICAgICAgICAgY29tcG9uZW50U3RhY2tGcmFtZXM6IGNvbXBvbmVudFN0YWNrICYmIHBhcnNlQ29tcG9uZW50U3RhY2soY29tcG9uZW50U3RhY2spXG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbiA9IHVzZUNhbGxiYWNrKChyZWFzb24pPT57XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6IEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OLFxuICAgICAgICAgICAgcmVhc29uOiByZWFzb24sXG4gICAgICAgICAgICBmcmFtZXM6IHBhcnNlU3RhY2socmVhc29uLnN0YWNrKVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlT25SZWFjdEVycm9yID0gdXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IgPSB0cnVlO1xuICAgIH0sIFtdKTtcbiAgICB1c2VFcnJvckhhbmRsZXIoaGFuZGxlT25VbmhhbmRsZWRFcnJvciwgaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pO1xuICAgIGNvbnN0IHdlYlNvY2tldFJlZiA9IHVzZVdlYnNvY2tldChhc3NldFByZWZpeCk7XG4gICAgdXNlV2Vic29ja2V0UGluZyh3ZWJTb2NrZXRSZWYpO1xuICAgIGNvbnN0IHNlbmRNZXNzYWdlID0gdXNlU2VuZE1lc3NhZ2Uod2ViU29ja2V0UmVmKTtcbiAgICBjb25zdCBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSA9IHVzZVR1cmJvcGFjayhzZW5kTWVzc2FnZSk7XG4gICAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XG4gICAgdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlZEJ5VHVyYm9wYWNrID0gcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UgPT0gbnVsbCA/IHZvaWQgMCA6IHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlKG9iaik7XG4gICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVkQnlUdXJib3BhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc01lc3NhZ2Uob2JqLCBzZW5kTWVzc2FnZSwgcm91dGVyLCBkaXNwYXRjaGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2Vycl9zdGFjaztcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJbSE1SXSBJbnZhbGlkIG1lc3NhZ2U6IFwiICsgZXZlbnQuZGF0YSArIFwiXFxuXCIgKyAoKF9lcnJfc3RhY2sgPSBlcnIgPT0gbnVsbCA/IHZvaWQgMCA6IGVyci5zdGFjaykgIT0gbnVsbCA/IF9lcnJfc3RhY2sgOiBcIlwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHdlYnNvY2tldCA9IHdlYlNvY2tldFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAod2Vic29ja2V0KSB7XG4gICAgICAgICAgICB3ZWJzb2NrZXQuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpPT53ZWJzb2NrZXQgJiYgd2Vic29ja2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgIH0sIFtcbiAgICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICAgIHJvdXRlcixcbiAgICAgICAgd2ViU29ja2V0UmVmLFxuICAgICAgICBkaXNwYXRjaGVyLFxuICAgICAgICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZVxuICAgIF0pO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goUmVhY3REZXZPdmVybGF5LCB7XG4gICAgICAgIG9uUmVhY3RFcnJvcjogaGFuZGxlT25SZWFjdEVycm9yLFxuICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3QtcmVsb2FkZXItY2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVJlZHVjZXIiLCJ1c2VNZW1vIiwic3RhcnRUcmFuc2l0aW9uIiwic3RyaXBBbnNpIiwiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwidXNlUm91dGVyIiwiQUNUSU9OX1ZFUlNJT05fSU5GTyIsIklOSVRJQUxfT1ZFUkxBWV9TVEFURSIsImVycm9yT3ZlcmxheVJlZHVjZXIiLCJBQ1RJT05fQlVJTERfT0siLCJBQ1RJT05fQlVJTERfRVJST1IiLCJBQ1RJT05fQkVGT1JFX1JFRlJFU0giLCJBQ1RJT05fUkVGUkVTSCIsIkFDVElPTl9VTkhBTkRMRURfRVJST1IiLCJBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTiIsInBhcnNlU3RhY2siLCJSZWFjdERldk92ZXJsYXkiLCJSdW50aW1lRXJyb3JIYW5kbGVyIiwidXNlRXJyb3JIYW5kbGVyIiwidXNlU2VuZE1lc3NhZ2UiLCJ1c2VUdXJib3BhY2siLCJ1c2VXZWJzb2NrZXQiLCJ1c2VXZWJzb2NrZXRQaW5nIiwicGFyc2VDb21wb25lbnRTdGFjayIsIkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiIsIm1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2giLCJfX25leHREZXZDbGllbnRJZCIsIk1hdGgiLCJyb3VuZCIsInJhbmRvbSIsIkRhdGUiLCJub3ciLCJyZWxvYWRpbmciLCJzdGFydExhdGVuY3kiLCJvbkJlZm9yZUZhc3RSZWZyZXNoIiwiZGlzcGF0Y2hlciIsImhhc1VwZGF0ZXMiLCJvbkJlZm9yZVJlZnJlc2giLCJvbkZhc3RSZWZyZXNoIiwic2VuZE1lc3NhZ2UiLCJ1cGRhdGVkTW9kdWxlcyIsImVuZExhdGVuY3kiLCJvbkJ1aWxkT2siLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJpZCIsIndpbmRvdyIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJwYWdlIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImlzUGFnZUhpZGRlbiIsImRvY3VtZW50IiwidmlzaWJpbGl0eVN0YXRlIiwibGVuZ3RoIiwib25SZWZyZXNoIiwiaGFuZGxlQXZhaWxhYmxlSGFzaCIsImhhc2giLCJpc1VwZGF0ZUF2YWlsYWJsZSIsInByb2Nlc3MiLCJlbnYiLCJUVVJCT1BBQ0siLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsImhhbmRsZXIiLCJyZW1vdmVTdGF0dXNIYW5kbGVyIiwiYWRkU3RhdHVzSGFuZGxlciIsInBlcmZvcm1GdWxsUmVsb2FkIiwiZXJyIiwic3RhY2tUcmFjZSIsInN0YWNrIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJtZXNzYWdlIiwiaGFkUnVudGltZUVycm9yIiwicmVsb2FkIiwidHJ5QXBwbHlVcGRhdGVzIiwib25CZWZvcmVVcGRhdGUiLCJvbkhvdFVwZGF0ZVN1Y2Nlc3MiLCJoYW5kbGVBcHBseVVwZGF0ZXMiLCJjb25zb2xlIiwid2FybiIsIkJvb2xlYW4iLCJfX05FWFRfVEVTVF9NT0RFIiwic2VsZiIsIl9fTkVYVF9ITVJfQ0IiLCJjaGVjayIsInRoZW4iLCJhcHBseSIsInByb2Nlc3NNZXNzYWdlIiwib2JqIiwicm91dGVyIiwiaGFuZGxlRXJyb3JzIiwiZXJyb3JzIiwiZm9ybWF0dGVkIiwid2FybmluZ3MiLCJvbkJ1aWxkRXJyb3IiLCJpIiwiZXJyb3IiLCJoYW5kbGVIb3RVcGRhdGUiLCJvbkJlZm9yZUhvdFVwZGF0ZSIsIm9uU3VjY2Vzc2Z1bEhvdFVwZGF0ZSIsIndlYnBhY2tVcGRhdGVkTW9kdWxlcyIsImFjdGlvbiIsIkJVSUxESU5HIiwibG9nIiwiRklOSVNIX0JVSUxESU5HIiwiQlVJTFQiLCJTWU5DIiwib25WZXJzaW9uSW5mbyIsInZlcnNpb25JbmZvIiwiaGFzRXJyb3JzIiwiZXJyb3JDb3VudCIsImNsaWVudElkIiwiaGFzV2FybmluZ3MiLCJ3YXJuaW5nQ291bnQiLCJmb3JtYXR0ZWRNZXNzYWdlcyIsIlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFUyIsImZhc3RSZWZyZXNoIiwiUkVMT0FEX1BBR0UiLCJSRU1PVkVEX1BBR0UiLCJBRERFRF9QQUdFIiwiU0VSVkVSX0VSUk9SIiwiZXJyb3JKU09OIiwicGFyc2UiLCJFcnJvciIsIkRFVl9QQUdFU19NQU5JRkVTVF9VUERBVEUiLCJIb3RSZWxvYWQiLCJwYXJhbSIsImFzc2V0UHJlZml4IiwiY2hpbGRyZW4iLCJzdGF0ZSIsImRpc3BhdGNoIiwidHlwZSIsImhhbmRsZU9uVW5oYW5kbGVkRXJyb3IiLCJjb21wb25lbnRTdGFjayIsIl9jb21wb25lbnRTdGFjayIsInJlYXNvbiIsImZyYW1lcyIsImNvbXBvbmVudFN0YWNrRnJhbWVzIiwiaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24iLCJoYW5kbGVPblJlYWN0RXJyb3IiLCJ3ZWJTb2NrZXRSZWYiLCJwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSIsImRhdGEiLCJoYW5kbGVkQnlUdXJib3BhY2siLCJfZXJyX3N0YWNrIiwid2Vic29ja2V0IiwiY3VycmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25SZWFjdEVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/hot-reloader-client.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/ReactDevOverlay.js":
-/*!********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/ReactDevOverlay.js ***!
- \********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./error-overlay-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/error-overlay-reducer.js\");\n/* harmony import */ var _components_ShadowPortal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/ShadowPortal */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/ShadowPortal.js\");\n/* harmony import */ var _container_BuildError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./container/BuildError */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/BuildError.js\");\n/* harmony import */ var _container_Errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./container/Errors */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/Errors.js\");\n/* harmony import */ var _container_RootLayoutError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./container/RootLayoutError */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RootLayoutError.js\");\n/* harmony import */ var _helpers_parseStack__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./helpers/parseStack */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parseStack.js\");\n/* harmony import */ var _styles_Base__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./styles/Base */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/Base.js\");\n/* harmony import */ var _styles_ComponentStyles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./styles/ComponentStyles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/ComponentStyles.js\");\n/* harmony import */ var _styles_CssReset__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./styles/CssReset */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/CssReset.js\");\n\n\n\n\n\n\n\n\n\n\n\nclass ReactDevOverlay extends react__WEBPACK_IMPORTED_MODULE_1__.PureComponent {\n static getDerivedStateFromError(error) {\n const e = error;\n const event = {\n type: _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_2__.ACTION_UNHANDLED_ERROR,\n reason: error,\n frames: (0,_helpers_parseStack__WEBPACK_IMPORTED_MODULE_7__.parseStack)(e.stack)\n };\n const errorEvent = {\n id: 0,\n event\n };\n return {\n reactError: errorEvent\n };\n }\n componentDidCatch(componentErr) {\n this.props.onReactError(componentErr);\n }\n render() {\n const { state, children } = this.props;\n const { reactError } = this.state;\n const hasBuildError = state.buildError != null;\n const hasRuntimeErrors = Boolean(state.errors.length);\n const rootLayoutMissingTagsError = state.rootLayoutMissingTagsError;\n const isMounted = hasBuildError || hasRuntimeErrors || reactError || rootLayoutMissingTagsError;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n reactError ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"html\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"head\", {}),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"body\", {})\n ]\n }) : children,\n isMounted ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components_ShadowPortal__WEBPACK_IMPORTED_MODULE_3__.ShadowPortal, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_styles_CssReset__WEBPACK_IMPORTED_MODULE_10__.CssReset, {}),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_styles_Base__WEBPACK_IMPORTED_MODULE_8__.Base, {}),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_styles_ComponentStyles__WEBPACK_IMPORTED_MODULE_9__.ComponentStyles, {}),\n rootLayoutMissingTagsError ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_container_RootLayoutError__WEBPACK_IMPORTED_MODULE_6__.RootLayoutError, {\n missingTags: rootLayoutMissingTagsError.missingTags\n }) : hasBuildError ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_container_BuildError__WEBPACK_IMPORTED_MODULE_4__.BuildError, {\n message: state.buildError,\n versionInfo: state.versionInfo\n }) : reactError ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_container_Errors__WEBPACK_IMPORTED_MODULE_5__.Errors, {\n versionInfo: state.versionInfo,\n initialDisplayState: \"fullscreen\",\n errors: [\n reactError\n ]\n }) : hasRuntimeErrors ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_container_Errors__WEBPACK_IMPORTED_MODULE_5__.Errors, {\n initialDisplayState: \"minimized\",\n errors: state.errors,\n versionInfo: state.versionInfo\n }) : undefined\n ]\n }) : undefined\n ]\n });\n }\n constructor(...args){\n super(...args);\n this.state = {\n reactError: null\n };\n }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactDevOverlay); //# sourceMappingURL=ReactDevOverlay.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvUmVhY3REZXZPdmVybGF5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc0Y7QUFDdkQ7QUFDa0M7QUFDUjtBQUNMO0FBQ1I7QUFDa0I7QUFDWjtBQUNiO0FBQ3NCO0FBQ2Q7QUFDN0MsTUFBTWdCLHdCQUF3QlYsZ0RBQW1CO0lBQzdDLE9BQU9ZLHlCQUF5QkMsS0FBSyxFQUFFO1FBQ25DLE1BQU1DLElBQUlEO1FBQ1YsTUFBTUUsUUFBUTtZQUNWQyxNQUFNZiwwRUFBc0JBO1lBQzVCZ0IsUUFBUUo7WUFDUkssUUFBUVosK0RBQVVBLENBQUNRLEVBQUVLLEtBQUs7UUFDOUI7UUFDQSxNQUFNQyxhQUFhO1lBQ2ZDLElBQUk7WUFDSk47UUFDSjtRQUNBLE9BQU87WUFDSE8sWUFBWUY7UUFDaEI7SUFDSjtJQUNBRyxrQkFBa0JDLFlBQVksRUFBRTtRQUM1QixJQUFJLENBQUNDLEtBQUssQ0FBQ0MsWUFBWSxDQUFDRjtJQUM1QjtJQUNBRyxTQUFTO1FBQ0wsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQ0osS0FBSztRQUN0QyxNQUFNLEVBQUVILFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQ00sS0FBSztRQUNqQyxNQUFNRSxnQkFBZ0JGLE1BQU1HLFVBQVUsSUFBSTtRQUMxQyxNQUFNQyxtQkFBbUJDLFFBQVFMLE1BQU1NLE1BQU0sQ0FBQ0MsTUFBTTtRQUNwRCxNQUFNQyw2QkFBNkJSLE1BQU1RLDBCQUEwQjtRQUNuRSxNQUFNQyxZQUFZUCxpQkFBaUJFLG9CQUFvQlYsY0FBY2M7UUFDckUsT0FBTyxXQUFXLEdBQUd2Qyx1REFBS0EsQ0FBQ0UsdURBQVNBLEVBQUU7WUFDbEM4QixVQUFVO2dCQUNOUCxhQUFhLFdBQVcsR0FBR3pCLHVEQUFLQSxDQUFDLFFBQVE7b0JBQ3JDZ0MsVUFBVTt3QkFDTixXQUFXLEdBQUdsQyxzREFBSUEsQ0FBQyxRQUFRLENBQUM7d0JBQzVCLFdBQVcsR0FBR0Esc0RBQUlBLENBQUMsUUFBUSxDQUFDO3FCQUMvQjtnQkFDTCxLQUFLa0M7Z0JBQ0xRLFlBQVksV0FBVyxHQUFHeEMsdURBQUtBLENBQUNLLGtFQUFZQSxFQUFFO29CQUMxQzJCLFVBQVU7d0JBQ04sV0FBVyxHQUFHbEMsc0RBQUlBLENBQUNjLHVEQUFRQSxFQUFFLENBQUM7d0JBQzlCLFdBQVcsR0FBR2Qsc0RBQUlBLENBQUNZLDhDQUFJQSxFQUFFLENBQUM7d0JBQzFCLFdBQVcsR0FBR1osc0RBQUlBLENBQUNhLG9FQUFlQSxFQUFFLENBQUM7d0JBQ3JDNEIsNkJBQTZCLFdBQVcsR0FBR3pDLHNEQUFJQSxDQUFDVSx1RUFBZUEsRUFBRTs0QkFDN0RpQyxhQUFhRiwyQkFBMkJFLFdBQVc7d0JBQ3ZELEtBQUtSLGdCQUFnQixXQUFXLEdBQUduQyxzREFBSUEsQ0FBQ1EsNkRBQVVBLEVBQUU7NEJBQ2hEb0MsU0FBU1gsTUFBTUcsVUFBVTs0QkFDekJTLGFBQWFaLE1BQU1ZLFdBQVc7d0JBQ2xDLEtBQUtsQixhQUFhLFdBQVcsR0FBRzNCLHNEQUFJQSxDQUFDUyxxREFBTUEsRUFBRTs0QkFDekNvQyxhQUFhWixNQUFNWSxXQUFXOzRCQUM5QkMscUJBQXFCOzRCQUNyQlAsUUFBUTtnQ0FDSlo7NkJBQ0g7d0JBQ0wsS0FBS1UsbUJBQW1CLFdBQVcsR0FBR3JDLHNEQUFJQSxDQUFDUyxxREFBTUEsRUFBRTs0QkFDL0NxQyxxQkFBcUI7NEJBQ3JCUCxRQUFRTixNQUFNTSxNQUFNOzRCQUNwQk0sYUFBYVosTUFBTVksV0FBVzt3QkFDbEMsS0FBS0U7cUJBQ1I7Z0JBQ0wsS0FBS0E7YUFDUjtRQUNMO0lBQ0o7SUFDQUMsWUFBWSxHQUFHQyxJQUFJLENBQUM7UUFDaEIsS0FBSyxJQUFJQTtRQUNULElBQUksQ0FBQ2hCLEtBQUssR0FBRztZQUNUTixZQUFZO1FBQ2hCO0lBQ0o7QUFDSjtBQUNBLGlFQUFlWixlQUFlQSxFQUFDLENBRS9CLDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvUmVhY3REZXZPdmVybGF5LmpzP2ZkMjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SIH0gZnJvbSBcIi4vZXJyb3Itb3ZlcmxheS1yZWR1Y2VyXCI7XG5pbXBvcnQgeyBTaGFkb3dQb3J0YWwgfSBmcm9tIFwiLi9jb21wb25lbnRzL1NoYWRvd1BvcnRhbFwiO1xuaW1wb3J0IHsgQnVpbGRFcnJvciB9IGZyb20gXCIuL2NvbnRhaW5lci9CdWlsZEVycm9yXCI7XG5pbXBvcnQgeyBFcnJvcnMgfSBmcm9tIFwiLi9jb250YWluZXIvRXJyb3JzXCI7XG5pbXBvcnQgeyBSb290TGF5b3V0RXJyb3IgfSBmcm9tIFwiLi9jb250YWluZXIvUm9vdExheW91dEVycm9yXCI7XG5pbXBvcnQgeyBwYXJzZVN0YWNrIH0gZnJvbSBcIi4vaGVscGVycy9wYXJzZVN0YWNrXCI7XG5pbXBvcnQgeyBCYXNlIH0gZnJvbSBcIi4vc3R5bGVzL0Jhc2VcIjtcbmltcG9ydCB7IENvbXBvbmVudFN0eWxlcyB9IGZyb20gXCIuL3N0eWxlcy9Db21wb25lbnRTdHlsZXNcIjtcbmltcG9ydCB7IENzc1Jlc2V0IH0gZnJvbSBcIi4vc3R5bGVzL0Nzc1Jlc2V0XCI7XG5jbGFzcyBSZWFjdERldk92ZXJsYXkgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IGUgPSBlcnJvcjtcbiAgICAgICAgY29uc3QgZXZlbnQgPSB7XG4gICAgICAgICAgICB0eXBlOiBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SLFxuICAgICAgICAgICAgcmVhc29uOiBlcnJvcixcbiAgICAgICAgICAgIGZyYW1lczogcGFyc2VTdGFjayhlLnN0YWNrKVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBlcnJvckV2ZW50ID0ge1xuICAgICAgICAgICAgaWQ6IDAsXG4gICAgICAgICAgICBldmVudFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVhY3RFcnJvcjogZXJyb3JFdmVudFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb21wb25lbnREaWRDYXRjaChjb21wb25lbnRFcnIpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblJlYWN0RXJyb3IoY29tcG9uZW50RXJyKTtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHN0YXRlLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgeyByZWFjdEVycm9yIH0gPSB0aGlzLnN0YXRlO1xuICAgICAgICBjb25zdCBoYXNCdWlsZEVycm9yID0gc3RhdGUuYnVpbGRFcnJvciAhPSBudWxsO1xuICAgICAgICBjb25zdCBoYXNSdW50aW1lRXJyb3JzID0gQm9vbGVhbihzdGF0ZS5lcnJvcnMubGVuZ3RoKTtcbiAgICAgICAgY29uc3Qgcm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3IgPSBzdGF0ZS5yb290TGF5b3V0TWlzc2luZ1RhZ3NFcnJvcjtcbiAgICAgICAgY29uc3QgaXNNb3VudGVkID0gaGFzQnVpbGRFcnJvciB8fCBoYXNSdW50aW1lRXJyb3JzIHx8IHJlYWN0RXJyb3IgfHwgcm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3I7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKF9GcmFnbWVudCwge1xuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICByZWFjdEVycm9yID8gLyojX19QVVJFX18qLyBfanN4cyhcImh0bWxcIiwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiaGVhZFwiLCB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJib2R5XCIsIHt9KVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSkgOiBjaGlsZHJlbixcbiAgICAgICAgICAgICAgICBpc01vdW50ZWQgPyAvKiNfX1BVUkVfXyovIF9qc3hzKFNoYWRvd1BvcnRhbCwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KENzc1Jlc2V0LCB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goQmFzZSwge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KENvbXBvbmVudFN0eWxlcywge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3IgPyAvKiNfX1BVUkVfXyovIF9qc3goUm9vdExheW91dEVycm9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZ1RhZ3M6IHJvb3RMYXlvdXRNaXNzaW5nVGFnc0Vycm9yLm1pc3NpbmdUYWdzXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSA6IGhhc0J1aWxkRXJyb3IgPyAvKiNfX1BVUkVfXyovIF9qc3goQnVpbGRFcnJvciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHN0YXRlLmJ1aWxkRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbkluZm86IHN0YXRlLnZlcnNpb25JbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSA6IHJlYWN0RXJyb3IgPyAvKiNfX1BVUkVfXyovIF9qc3goRXJyb3JzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbkluZm86IHN0YXRlLnZlcnNpb25JbmZvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxEaXNwbGF5U3RhdGU6IFwiZnVsbHNjcmVlblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFjdEVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgOiBoYXNSdW50aW1lRXJyb3JzID8gLyojX19QVVJFX18qLyBfanN4KEVycm9ycywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxEaXNwbGF5U3RhdGU6IFwibWluaW1pemVkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzOiBzdGF0ZS5lcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbkluZm86IHN0YXRlLnZlcnNpb25JbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3Mpe1xuICAgICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHJlYWN0RXJyb3I6IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgZGVmYXVsdCBSZWFjdERldk92ZXJsYXk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWN0RGV2T3ZlcmxheS5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiUmVhY3QiLCJBQ1RJT05fVU5IQU5ETEVEX0VSUk9SIiwiU2hhZG93UG9ydGFsIiwiQnVpbGRFcnJvciIsIkVycm9ycyIsIlJvb3RMYXlvdXRFcnJvciIsInBhcnNlU3RhY2siLCJCYXNlIiwiQ29tcG9uZW50U3R5bGVzIiwiQ3NzUmVzZXQiLCJSZWFjdERldk92ZXJsYXkiLCJQdXJlQ29tcG9uZW50IiwiZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIiwiZXJyb3IiLCJlIiwiZXZlbnQiLCJ0eXBlIiwicmVhc29uIiwiZnJhbWVzIiwic3RhY2siLCJlcnJvckV2ZW50IiwiaWQiLCJyZWFjdEVycm9yIiwiY29tcG9uZW50RGlkQ2F0Y2giLCJjb21wb25lbnRFcnIiLCJwcm9wcyIsIm9uUmVhY3RFcnJvciIsInJlbmRlciIsInN0YXRlIiwiY2hpbGRyZW4iLCJoYXNCdWlsZEVycm9yIiwiYnVpbGRFcnJvciIsImhhc1J1bnRpbWVFcnJvcnMiLCJCb29sZWFuIiwiZXJyb3JzIiwibGVuZ3RoIiwicm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3IiLCJpc01vdW50ZWQiLCJtaXNzaW5nVGFncyIsIm1lc3NhZ2UiLCJ2ZXJzaW9uSW5mbyIsImluaXRpYWxEaXNwbGF5U3RhdGUiLCJ1bmRlZmluZWQiLCJjb25zdHJ1Y3RvciIsImFyZ3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/ReactDevOverlay.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js":
-/*!***********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js ***!
- \***********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CodeFrame: () => (/* binding */ CodeFrame)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var next_dist_compiled_anser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/compiled/anser */ \"(ssr)/../../node_modules/next/dist/compiled/anser/index.js\");\n/* harmony import */ var next_dist_compiled_anser__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_anser__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/../../node_modules/next/dist/compiled/strip-ansi/index.js\");\n/* harmony import */ var next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _helpers_stack_frame__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/stack-frame */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\n/* harmony import */ var _helpers_use_open_in_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\n\n\n\n\n\n\nconst CodeFrame = function CodeFrame(param) {\n let { stackFrame, codeFrame } = param;\n // Strip leading spaces out of the code frame:\n const formattedFrame = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>{\n const lines = codeFrame.split(/\\r?\\n/g);\n const prefixLength = lines.map((line)=>/^>? +\\d+ +\\| [ ]+/.exec(next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_3___default()(line)) === null ? null : /^>? +\\d+ +\\| ( *)/.exec(next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_3___default()(line))).filter(Boolean).map((v)=>v.pop()).reduce((c, n)=>isNaN(c) ? n.length : Math.min(c, n.length), NaN);\n if (prefixLength > 1) {\n const p = \" \".repeat(prefixLength);\n return lines.map((line, a)=>~(a = line.indexOf(\"|\")) ? line.substring(0, a) + line.substring(a).replace(p, \"\") : line).join(\"\\n\");\n }\n return lines.join(\"\\n\");\n }, [\n codeFrame\n ]);\n const decoded = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>{\n return next_dist_compiled_anser__WEBPACK_IMPORTED_MODULE_1___default().ansiToJson(formattedFrame, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }, [\n formattedFrame\n ]);\n const open = (0,_helpers_use_open_in_editor__WEBPACK_IMPORTED_MODULE_5__.useOpenInEditor)({\n file: stackFrame.file,\n lineNumber: stackFrame.lineNumber,\n column: stackFrame.column\n });\n // TODO: make the caret absolute\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n \"data-nextjs-codeframe\": true,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"p\", {\n role: \"link\",\n onClick: open,\n tabIndex: 1,\n title: \"Click to open in your editor\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"span\", {\n children: [\n (0,_helpers_stack_frame__WEBPACK_IMPORTED_MODULE_4__.getFrameSource)(stackFrame),\n \" @ \",\n stackFrame.methodName\n ]\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\n })\n ]\n })\n ]\n })\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"pre\", {\n children: decoded.map((entry, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", {\n style: {\n color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined,\n ...entry.decoration === \"bold\" ? {\n fontWeight: 800\n } : entry.decoration === \"italic\" ? {\n fontStyle: \"italic\"\n } : undefined\n },\n children: entry.content\n }, \"frame-\" + index))\n })\n ]\n });\n}; //# sourceMappingURL=CodeFrame.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Db2RlRnJhbWUvQ29kZUZyYW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBK0Q7QUFDbEI7QUFDZDtBQUN1QjtBQUNLO0FBQ1E7QUFDNUQsTUFBTVMsWUFBWSxTQUFTQSxVQUFVQyxLQUFLO0lBQzdDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxTQUFTLEVBQUUsR0FBR0Y7SUFDaEMsOENBQThDO0lBQzlDLE1BQU1HLGlCQUFpQlIsMENBQWEsQ0FBQztRQUNqQyxNQUFNVSxRQUFRSCxVQUFVSSxLQUFLLENBQUM7UUFDOUIsTUFBTUMsZUFBZUYsTUFBTUcsR0FBRyxDQUFDLENBQUNDLE9BQU8sb0JBQW9CQyxJQUFJLENBQUNkLG9FQUFTQSxDQUFDYSxXQUFXLE9BQU8sT0FBTyxvQkFBb0JDLElBQUksQ0FBQ2Qsb0VBQVNBLENBQUNhLFFBQVFFLE1BQU0sQ0FBQ0MsU0FBU0osR0FBRyxDQUFDLENBQUNLLElBQUlBLEVBQUVDLEdBQUcsSUFBSUMsTUFBTSxDQUFDLENBQUNDLEdBQUdDLElBQUlDLE1BQU1GLEtBQUtDLEVBQUVFLE1BQU0sR0FBR0MsS0FBS0MsR0FBRyxDQUFDTCxHQUFHQyxFQUFFRSxNQUFNLEdBQUdHO1FBQzVPLElBQUlmLGVBQWUsR0FBRztZQUNsQixNQUFNZ0IsSUFBSSxJQUFJQyxNQUFNLENBQUNqQjtZQUNyQixPQUFPRixNQUFNRyxHQUFHLENBQUMsQ0FBQ0MsTUFBTWdCLElBQUksQ0FBRUEsQ0FBQUEsSUFBSWhCLEtBQUtpQixPQUFPLENBQUMsSUFBRyxJQUFLakIsS0FBS2tCLFNBQVMsQ0FBQyxHQUFHRixLQUFLaEIsS0FBS2tCLFNBQVMsQ0FBQ0YsR0FBR0csT0FBTyxDQUFDTCxHQUFHLE1BQU1kLE1BQU1vQixJQUFJLENBQUM7UUFDaEk7UUFDQSxPQUFPeEIsTUFBTXdCLElBQUksQ0FBQztJQUN0QixHQUFHO1FBQ0MzQjtLQUNIO0lBQ0QsTUFBTTRCLFVBQVVuQywwQ0FBYSxDQUFDO1FBQzFCLE9BQU9ELDBFQUFnQixDQUFDUyxnQkFBZ0I7WUFDcEM2QixNQUFNO1lBQ05DLGFBQWE7WUFDYkMsY0FBYztRQUNsQjtJQUNKLEdBQUc7UUFDQy9CO0tBQ0g7SUFDRCxNQUFNZ0MsT0FBT3JDLDRFQUFlQSxDQUFDO1FBQ3pCc0MsTUFBTW5DLFdBQVdtQyxJQUFJO1FBQ3JCQyxZQUFZcEMsV0FBV29DLFVBQVU7UUFDakNDLFFBQVFyQyxXQUFXcUMsTUFBTTtJQUM3QjtJQUNBLGdDQUFnQztJQUNoQyxPQUFPLFdBQVcsR0FBRzdDLHVEQUFLQSxDQUFDLE9BQU87UUFDOUIseUJBQXlCO1FBQ3pCOEMsVUFBVTtZQUNOLFdBQVcsR0FBR2hELHNEQUFJQSxDQUFDLE9BQU87Z0JBQ3RCZ0QsVUFBVSxXQUFXLEdBQUc5Qyx1REFBS0EsQ0FBQyxLQUFLO29CQUMvQitDLE1BQU07b0JBQ05DLFNBQVNOO29CQUNUTyxVQUFVO29CQUNWQyxPQUFPO29CQUNQSixVQUFVO3dCQUNOLFdBQVcsR0FBRzlDLHVEQUFLQSxDQUFDLFFBQVE7NEJBQ3hCOEMsVUFBVTtnQ0FDTjFDLG9FQUFjQSxDQUFDSTtnQ0FDZjtnQ0FDQUEsV0FBVzJDLFVBQVU7NkJBQ3hCO3dCQUNMO3dCQUNBLFdBQVcsR0FBR25ELHVEQUFLQSxDQUFDLE9BQU87NEJBQ3ZCb0QsT0FBTzs0QkFDUEMsU0FBUzs0QkFDVEMsTUFBTTs0QkFDTkMsUUFBUTs0QkFDUkMsYUFBYTs0QkFDYkMsZUFBZTs0QkFDZkMsZ0JBQWdCOzRCQUNoQlosVUFBVTtnQ0FDTixXQUFXLEdBQUdoRCxzREFBSUEsQ0FBQyxRQUFRO29DQUN2QjZELEdBQUc7Z0NBQ1A7Z0NBQ0EsV0FBVyxHQUFHN0Qsc0RBQUlBLENBQUMsWUFBWTtvQ0FDM0I4RCxRQUFRO2dDQUNaO2dDQUNBLFdBQVcsR0FBRzlELHNEQUFJQSxDQUFDLFFBQVE7b0NBQ3ZCK0QsSUFBSTtvQ0FDSkMsSUFBSTtvQ0FDSkMsSUFBSTtvQ0FDSkMsSUFBSTtnQ0FDUjs2QkFDSDt3QkFDTDtxQkFDSDtnQkFDTDtZQUNKO1lBQ0EsV0FBVyxHQUFHbEUsc0RBQUlBLENBQUMsT0FBTztnQkFDdEJnRCxVQUFVVCxRQUFRdEIsR0FBRyxDQUFDLENBQUNrRCxPQUFPQyxRQUFRLFdBQVcsR0FBR3BFLHNEQUFJQSxDQUFDLFFBQVE7d0JBQ3pEcUUsT0FBTzs0QkFDSEMsT0FBT0gsTUFBTUksRUFBRSxHQUFHLGlCQUFpQkosTUFBTUksRUFBRSxHQUFHLE1BQU1DOzRCQUNwRCxHQUFHTCxNQUFNTSxVQUFVLEtBQUssU0FBUztnQ0FDN0JDLFlBQVk7NEJBQ2hCLElBQUlQLE1BQU1NLFVBQVUsS0FBSyxXQUFXO2dDQUNoQ0UsV0FBVzs0QkFDZixJQUFJSCxTQUFTO3dCQUNqQjt3QkFDQXhCLFVBQVVtQixNQUFNUyxPQUFPO29CQUMzQixHQUFHLFdBQVdSO1lBQ3RCO1NBQ0g7SUFDTDtBQUNKLEVBQUUsQ0FFRixxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL0NvZGVGcmFtZS5qcz8wYjQ5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQW5zZXIgZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9hbnNlclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaVwiO1xuaW1wb3J0IHsgZ2V0RnJhbWVTb3VyY2UgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9zdGFjay1mcmFtZVwiO1xuaW1wb3J0IHsgdXNlT3BlbkluRWRpdG9yIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvdXNlLW9wZW4taW4tZWRpdG9yXCI7XG5leHBvcnQgY29uc3QgQ29kZUZyYW1lID0gZnVuY3Rpb24gQ29kZUZyYW1lKHBhcmFtKSB7XG4gICAgbGV0IHsgc3RhY2tGcmFtZSwgY29kZUZyYW1lIH0gPSBwYXJhbTtcbiAgICAvLyBTdHJpcCBsZWFkaW5nIHNwYWNlcyBvdXQgb2YgdGhlIGNvZGUgZnJhbWU6XG4gICAgY29uc3QgZm9ybWF0dGVkRnJhbWUgPSBSZWFjdC51c2VNZW1vKCgpPT57XG4gICAgICAgIGNvbnN0IGxpbmVzID0gY29kZUZyYW1lLnNwbGl0KC9cXHI/XFxuL2cpO1xuICAgICAgICBjb25zdCBwcmVmaXhMZW5ndGggPSBsaW5lcy5tYXAoKGxpbmUpPT4vXj4/ICtcXGQrICtcXHwgWyBdKy8uZXhlYyhzdHJpcEFuc2kobGluZSkpID09PSBudWxsID8gbnVsbCA6IC9ePj8gK1xcZCsgK1xcfCAoICopLy5leGVjKHN0cmlwQW5zaShsaW5lKSkpLmZpbHRlcihCb29sZWFuKS5tYXAoKHYpPT52LnBvcCgpKS5yZWR1Y2UoKGMsIG4pPT5pc05hTihjKSA/IG4ubGVuZ3RoIDogTWF0aC5taW4oYywgbi5sZW5ndGgpLCBOYU4pO1xuICAgICAgICBpZiAocHJlZml4TGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgcCA9IFwiIFwiLnJlcGVhdChwcmVmaXhMZW5ndGgpO1xuICAgICAgICAgICAgcmV0dXJuIGxpbmVzLm1hcCgobGluZSwgYSk9Pn4oYSA9IGxpbmUuaW5kZXhPZihcInxcIikpID8gbGluZS5zdWJzdHJpbmcoMCwgYSkgKyBsaW5lLnN1YnN0cmluZyhhKS5yZXBsYWNlKHAsIFwiXCIpIDogbGluZSkuam9pbihcIlxcblwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGluZXMuam9pbihcIlxcblwiKTtcbiAgICB9LCBbXG4gICAgICAgIGNvZGVGcmFtZVxuICAgIF0pO1xuICAgIGNvbnN0IGRlY29kZWQgPSBSZWFjdC51c2VNZW1vKCgpPT57XG4gICAgICAgIHJldHVybiBBbnNlci5hbnNpVG9Kc29uKGZvcm1hdHRlZEZyYW1lLCB7XG4gICAgICAgICAgICBqc29uOiB0cnVlLFxuICAgICAgICAgICAgdXNlX2NsYXNzZXM6IHRydWUsXG4gICAgICAgICAgICByZW1vdmVfZW1wdHk6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBmb3JtYXR0ZWRGcmFtZVxuICAgIF0pO1xuICAgIGNvbnN0IG9wZW4gPSB1c2VPcGVuSW5FZGl0b3Ioe1xuICAgICAgICBmaWxlOiBzdGFja0ZyYW1lLmZpbGUsXG4gICAgICAgIGxpbmVOdW1iZXI6IHN0YWNrRnJhbWUubGluZU51bWJlcixcbiAgICAgICAgY29sdW1uOiBzdGFja0ZyYW1lLmNvbHVtblxuICAgIH0pO1xuICAgIC8vIFRPRE86IG1ha2UgdGhlIGNhcmV0IGFic29sdXRlXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJkaXZcIiwge1xuICAgICAgICBcImRhdGEtbmV4dGpzLWNvZGVmcmFtZVwiOiB0cnVlLFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4cyhcInBcIiwge1xuICAgICAgICAgICAgICAgICAgICByb2xlOiBcImxpbmtcIixcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogb3BlbixcbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg6IDEsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkNsaWNrIHRvIG9wZW4gaW4geW91ciBlZGl0b3JcIixcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRGcmFtZVNvdXJjZShzdGFja0ZyYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgQCBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tGcmFtZS5tZXRob2ROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKFwic3ZnXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBcIjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJwYXRoXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ6IFwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwicG9seWxpbmVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBcIjE1IDMgMjEgMyAyMSA5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcImxpbmVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDE6IFwiMTBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkxOiBcIjE0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MjogXCIyMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTI6IFwiM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInByZVwiLCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGRlY29kZWQubWFwKChlbnRyeSwgaW5kZXgpPT4vKiNfX1BVUkVfXyovIF9qc3goXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGVudHJ5LmZnID8gXCJ2YXIoLS1jb2xvci1cIiArIGVudHJ5LmZnICsgXCIpXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZW50cnkuZGVjb3JhdGlvbiA9PT0gXCJib2xkXCIgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDgwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiBlbnRyeS5kZWNvcmF0aW9uID09PSBcIml0YWxpY1wiID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U3R5bGU6IFwiaXRhbGljXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGVudHJ5LmNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgfSwgXCJmcmFtZS1cIiArIGluZGV4KSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvZGVGcmFtZS5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkFuc2VyIiwiUmVhY3QiLCJzdHJpcEFuc2kiLCJnZXRGcmFtZVNvdXJjZSIsInVzZU9wZW5JbkVkaXRvciIsIkNvZGVGcmFtZSIsInBhcmFtIiwic3RhY2tGcmFtZSIsImNvZGVGcmFtZSIsImZvcm1hdHRlZEZyYW1lIiwidXNlTWVtbyIsImxpbmVzIiwic3BsaXQiLCJwcmVmaXhMZW5ndGgiLCJtYXAiLCJsaW5lIiwiZXhlYyIsImZpbHRlciIsIkJvb2xlYW4iLCJ2IiwicG9wIiwicmVkdWNlIiwiYyIsIm4iLCJpc05hTiIsImxlbmd0aCIsIk1hdGgiLCJtaW4iLCJOYU4iLCJwIiwicmVwZWF0IiwiYSIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJyZXBsYWNlIiwiam9pbiIsImRlY29kZWQiLCJhbnNpVG9Kc29uIiwianNvbiIsInVzZV9jbGFzc2VzIiwicmVtb3ZlX2VtcHR5Iiwib3BlbiIsImZpbGUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwiY2hpbGRyZW4iLCJyb2xlIiwib25DbGljayIsInRhYkluZGV4IiwidGl0bGUiLCJtZXRob2ROYW1lIiwieG1sbnMiLCJ2aWV3Qm94IiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiZCIsInBvaW50cyIsIngxIiwieTEiLCJ4MiIsInkyIiwiZW50cnkiLCJpbmRleCIsInN0eWxlIiwiY29sb3IiLCJmZyIsInVuZGVmaW5lZCIsImRlY29yYXRpb24iLCJmb250V2VpZ2h0IiwiZm9udFN0eWxlIiwiY29udGVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/index.js":
-/*!*******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/index.js ***!
- \*******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CodeFrame: () => (/* reexport safe */ _CodeFrame__WEBPACK_IMPORTED_MODULE_0__.CodeFrame)\n/* harmony export */ });\n/* harmony import */ var _CodeFrame__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CodeFrame */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js\");\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Db2RlRnJhbWUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0MsQ0FFeEMsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0NvZGVGcmFtZS9pbmRleC5qcz9jNTE4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvZGVGcmFtZSB9IGZyb20gXCIuL0NvZGVGcmFtZVwiO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiQ29kZUZyYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js":
-/*!********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js ***!
- \********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n [data-nextjs-codeframe] {\\n overflow: auto;\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-codeframe] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n [data-nextjs-codeframe] > div {\\n display: inline-block;\\n width: auto;\\n min-width: 100%;\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n }\\n [data-nextjs-codeframe] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-codeframe] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-codeframe] div > p > svg {\\n width: auto;\\n height: 1em;\\n margin-left: 8px;\\n }\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__.noop)(_templateObject());\n //# sourceMappingURL=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Db2RlRnJhbWUvc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRztBQUNwRyxTQUFTRTtJQUNMLE1BQU1DLE9BQU9GLDZFQUE4QkEsQ0FBQztRQUN4QztLQUNIO0lBQ0RDLGtCQUFrQjtRQUNkLE9BQU9DO0lBQ1g7SUFDQSxPQUFPQTtBQUNYO0FBQzBEO0FBQzFELE1BQU1HLFNBQVNELDREQUFHQSxDQUFDSDtBQUNELENBRWxCLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Db2RlRnJhbWUvc3R5bGVzLmpzP2M2YWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyBhcyBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgfSBmcm9tIFwiQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlXCI7XG5mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKSB7XG4gICAgY29uc3QgZGF0YSA9IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZShbXG4gICAgICAgIFwiXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSB7XFxuICAgIG92ZXJmbG93OiBhdXRvO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1iZyk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWZnKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdOjpzZWxlY3Rpb24sXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSAqOjpzZWxlY3Rpb24ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXNlbGVjdGlvbik7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSAqIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiAqIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxcbiAgICAgIGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gZGl2IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAxMDAlO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtYmxhY2spO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYgPiBwIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gZGl2ID4gcDpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIGRpdiA+IHAgPiBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiAxZW07XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBkaXYgPiBwcmUge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuXCJcbiAgICBdKTtcbiAgICBfdGVtcGxhdGVPYmplY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcbiAgICByZXR1cm4gZGF0YTtcbn1cbmltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiO1xuY29uc3Qgc3R5bGVzID0gY3NzKF90ZW1wbGF0ZU9iamVjdCgpKTtcbmV4cG9ydCB7IHN0eWxlcyB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbIl8iLCJfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UiLCJfdGVtcGxhdGVPYmplY3QiLCJkYXRhIiwibm9vcCIsImNzcyIsInN0eWxlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js":
-/*!*****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js ***!
- \*****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Dialog: () => (/* binding */ Dialog)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _hooks_use_on_click_outside__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../hooks/use-on-click-outside */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js\");\n\n\n\nconst Dialog = function Dialog(param) {\n let { children, type, onClose, ...props } = param;\n const [dialog, setDialog] = react__WEBPACK_IMPORTED_MODULE_1__.useState(null);\n const [role, setRole] = react__WEBPACK_IMPORTED_MODULE_1__.useState(typeof document !== \"undefined\" && document.hasFocus() ? \"dialog\" : undefined);\n const onDialog = react__WEBPACK_IMPORTED_MODULE_1__.useCallback((node)=>{\n setDialog(node);\n }, []);\n (0,_hooks_use_on_click_outside__WEBPACK_IMPORTED_MODULE_2__.useOnClickOutside)(dialog, onClose);\n // Make HTMLElements with `role=link` accessible to be triggered by the\n // keyboard, i.e. [Enter].\n react__WEBPACK_IMPORTED_MODULE_1__.useEffect(()=>{\n if (dialog == null) {\n return;\n }\n const root = dialog.getRootNode();\n // Always true, but we do this for TypeScript:\n if (!(root instanceof ShadowRoot)) {\n return;\n }\n const shadowRoot = root;\n function handler(e) {\n const el = shadowRoot.activeElement;\n if (e.key === \"Enter\" && el instanceof HTMLElement && el.getAttribute(\"role\") === \"link\") {\n e.preventDefault();\n e.stopPropagation();\n el.click();\n }\n }\n function handleFocus() {\n // safari will force itself as the active application when a background page triggers any sort of autofocus\n // this is a workaround to only set the dialog role if the document has focus\n setRole(document.hasFocus() ? \"dialog\" : undefined);\n }\n shadowRoot.addEventListener(\"keydown\", handler);\n window.addEventListener(\"focus\", handleFocus);\n window.addEventListener(\"blur\", handleFocus);\n return ()=>{\n shadowRoot.removeEventListener(\"keydown\", handler);\n window.removeEventListener(\"focus\", handleFocus);\n window.removeEventListener(\"blur\", handleFocus);\n };\n }, [\n dialog\n ]);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n ref: onDialog,\n \"data-nextjs-dialog\": true,\n tabIndex: -1,\n role: role,\n \"aria-labelledby\": props[\"aria-labelledby\"],\n \"aria-describedby\": props[\"aria-describedby\"],\n \"aria-modal\": \"true\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n \"data-nextjs-dialog-banner\": true,\n className: \"banner-\" + type\n }),\n children\n ]\n });\n};\n //# sourceMappingURL=Dialog.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStEO0FBQ2hDO0FBQ3NDO0FBQ3JFLE1BQU1NLFNBQVMsU0FBU0EsT0FBT0MsS0FBSztJQUNoQyxJQUFJLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUUsR0FBR0MsT0FBTyxHQUFHSjtJQUM1QyxNQUFNLENBQUNLLFFBQVFDLFVBQVUsR0FBR1QsMkNBQWMsQ0FBQztJQUMzQyxNQUFNLENBQUNXLE1BQU1DLFFBQVEsR0FBR1osMkNBQWMsQ0FBQyxPQUFPYSxhQUFhLGVBQWVBLFNBQVNDLFFBQVEsS0FBSyxXQUFXQztJQUMzRyxNQUFNQyxXQUFXaEIsOENBQWlCLENBQUMsQ0FBQ2tCO1FBQ2hDVCxVQUFVUztJQUNkLEdBQUcsRUFBRTtJQUNMakIsOEVBQWlCQSxDQUFDTyxRQUFRRjtJQUMxQix1RUFBdUU7SUFDdkUsMEJBQTBCO0lBQzFCTiw0Q0FBZSxDQUFDO1FBQ1osSUFBSVEsVUFBVSxNQUFNO1lBQ2hCO1FBQ0o7UUFDQSxNQUFNWSxPQUFPWixPQUFPYSxXQUFXO1FBQy9CLDhDQUE4QztRQUM5QyxJQUFJLENBQUVELENBQUFBLGdCQUFnQkUsVUFBUyxHQUFJO1lBQy9CO1FBQ0o7UUFDQSxNQUFNQyxhQUFhSDtRQUNuQixTQUFTSSxRQUFRQyxDQUFDO1lBQ2QsTUFBTUMsS0FBS0gsV0FBV0ksYUFBYTtZQUNuQyxJQUFJRixFQUFFRyxHQUFHLEtBQUssV0FBV0YsY0FBY0csZUFBZUgsR0FBR0ksWUFBWSxDQUFDLFlBQVksUUFBUTtnQkFDdEZMLEVBQUVNLGNBQWM7Z0JBQ2hCTixFQUFFTyxlQUFlO2dCQUNqQk4sR0FBR08sS0FBSztZQUNaO1FBQ0o7UUFDQSxTQUFTQztZQUNMLDJHQUEyRztZQUMzRyw2RUFBNkU7WUFDN0V0QixRQUFRQyxTQUFTQyxRQUFRLEtBQUssV0FBV0M7UUFDN0M7UUFDQVEsV0FBV1ksZ0JBQWdCLENBQUMsV0FBV1g7UUFDdkNZLE9BQU9ELGdCQUFnQixDQUFDLFNBQVNEO1FBQ2pDRSxPQUFPRCxnQkFBZ0IsQ0FBQyxRQUFRRDtRQUNoQyxPQUFPO1lBQ0hYLFdBQVdjLG1CQUFtQixDQUFDLFdBQVdiO1lBQzFDWSxPQUFPQyxtQkFBbUIsQ0FBQyxTQUFTSDtZQUNwQ0UsT0FBT0MsbUJBQW1CLENBQUMsUUFBUUg7UUFDdkM7SUFDSixHQUFHO1FBQ0MxQjtLQUNIO0lBQ0QsT0FBTyxXQUFXLEdBQUdULHVEQUFLQSxDQUFDLE9BQU87UUFDOUJ1QyxLQUFLdEI7UUFDTCxzQkFBc0I7UUFDdEJ1QixVQUFVLENBQUM7UUFDWDVCLE1BQU1BO1FBQ04sbUJBQW1CSixLQUFLLENBQUMsa0JBQWtCO1FBQzNDLG9CQUFvQkEsS0FBSyxDQUFDLG1CQUFtQjtRQUM3QyxjQUFjO1FBQ2RILFVBQVU7WUFDTixXQUFXLEdBQUdQLHNEQUFJQSxDQUFDLE9BQU87Z0JBQ3RCLDZCQUE2QjtnQkFDN0IyQyxXQUFXLFlBQVluQztZQUMzQjtZQUNBRDtTQUNIO0lBQ0w7QUFDSjtBQUNrQixDQUVsQixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcz8zMGQzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZS1vbi1jbGljay1vdXRzaWRlXCI7XG5jb25zdCBEaWFsb2cgPSBmdW5jdGlvbiBEaWFsb2cocGFyYW0pIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgdHlwZSwgb25DbG9zZSwgLi4ucHJvcHMgfSA9IHBhcmFtO1xuICAgIGNvbnN0IFtkaWFsb2csIHNldERpYWxvZ10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbcm9sZSwgc2V0Um9sZV0gPSBSZWFjdC51c2VTdGF0ZSh0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnQuaGFzRm9jdXMoKSA/IFwiZGlhbG9nXCIgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IG9uRGlhbG9nID0gUmVhY3QudXNlQ2FsbGJhY2soKG5vZGUpPT57XG4gICAgICAgIHNldERpYWxvZyhub2RlKTtcbiAgICB9LCBbXSk7XG4gICAgdXNlT25DbGlja091dHNpZGUoZGlhbG9nLCBvbkNsb3NlKTtcbiAgICAvLyBNYWtlIEhUTUxFbGVtZW50cyB3aXRoIGByb2xlPWxpbmtgIGFjY2Vzc2libGUgdG8gYmUgdHJpZ2dlcmVkIGJ5IHRoZVxuICAgIC8vIGtleWJvYXJkLCBpLmUuIFtFbnRlcl0uXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChkaWFsb2cgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvb3QgPSBkaWFsb2cuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgLy8gQWx3YXlzIHRydWUsIGJ1dCB3ZSBkbyB0aGlzIGZvciBUeXBlU2NyaXB0OlxuICAgICAgICBpZiAoIShyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaGFkb3dSb290ID0gcm9vdDtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihlKSB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiICYmIGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgZWwuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSA9PT0gXCJsaW5rXCIpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlbC5jbGljaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZUZvY3VzKCkge1xuICAgICAgICAgICAgLy8gc2FmYXJpIHdpbGwgZm9yY2UgaXRzZWxmIGFzIHRoZSBhY3RpdmUgYXBwbGljYXRpb24gd2hlbiBhIGJhY2tncm91bmQgcGFnZSB0cmlnZ2VycyBhbnkgc29ydCBvZiBhdXRvZm9jdXNcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIG9ubHkgc2V0IHRoZSBkaWFsb2cgcm9sZSBpZiB0aGUgZG9jdW1lbnQgaGFzIGZvY3VzXG4gICAgICAgICAgICBzZXRSb2xlKGRvY3VtZW50Lmhhc0ZvY3VzKCkgPyBcImRpYWxvZ1wiIDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICBzaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZXIpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIGhhbmRsZUZvY3VzKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsIGhhbmRsZUZvY3VzKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBzaGFkb3dSb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCBoYW5kbGVGb2N1cyk7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgaGFuZGxlRm9jdXMpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgZGlhbG9nXG4gICAgXSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJkaXZcIiwge1xuICAgICAgICByZWY6IG9uRGlhbG9nLFxuICAgICAgICBcImRhdGEtbmV4dGpzLWRpYWxvZ1wiOiB0cnVlLFxuICAgICAgICB0YWJJbmRleDogLTEsXG4gICAgICAgIHJvbGU6IHJvbGUsXG4gICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHByb3BzW1wiYXJpYS1sYWJlbGxlZGJ5XCJdLFxuICAgICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogcHJvcHNbXCJhcmlhLWRlc2NyaWJlZGJ5XCJdLFxuICAgICAgICBcImFyaWEtbW9kYWxcIjogXCJ0cnVlXCIsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgIFwiZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lclwiOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJiYW5uZXItXCIgKyB0eXBlXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG5leHBvcnQgeyBEaWFsb2cgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlhbG9nLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJ1c2VPbkNsaWNrT3V0c2lkZSIsIkRpYWxvZyIsInBhcmFtIiwiY2hpbGRyZW4iLCJ0eXBlIiwib25DbG9zZSIsInByb3BzIiwiZGlhbG9nIiwic2V0RGlhbG9nIiwidXNlU3RhdGUiLCJyb2xlIiwic2V0Um9sZSIsImRvY3VtZW50IiwiaGFzRm9jdXMiLCJ1bmRlZmluZWQiLCJvbkRpYWxvZyIsInVzZUNhbGxiYWNrIiwibm9kZSIsInVzZUVmZmVjdCIsInJvb3QiLCJnZXRSb290Tm9kZSIsIlNoYWRvd1Jvb3QiLCJzaGFkb3dSb290IiwiaGFuZGxlciIsImUiLCJlbCIsImFjdGl2ZUVsZW1lbnQiLCJrZXkiLCJIVE1MRWxlbWVudCIsImdldEF0dHJpYnV0ZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY2xpY2siLCJoYW5kbGVGb2N1cyIsImFkZEV2ZW50TGlzdGVuZXIiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVmIiwidGFiSW5kZXgiLCJjbGFzc05hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js":
-/*!*********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js ***!
- \*********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DialogBody: () => (/* binding */ DialogBody)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst DialogBody = function DialogBody(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n \"data-nextjs-dialog-body\": true,\n className: className,\n children: children\n });\n};\n //# sourceMappingURL=DialogBody.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nQm9keS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWdEO0FBQ2pCO0FBQy9CLE1BQU1HLGFBQWEsU0FBU0EsV0FBV0MsS0FBSztJQUN4QyxJQUFJLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFLEdBQUdGO0lBQzlCLE9BQU8sV0FBVyxHQUFHSCxzREFBSUEsQ0FBQyxPQUFPO1FBQzdCLDJCQUEyQjtRQUMzQkssV0FBV0E7UUFDWEQsVUFBVUE7SUFDZDtBQUNKO0FBQ3NCLENBRXRCLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nQm9keS5qcz9mNTAzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmNvbnN0IERpYWxvZ0JvZHkgPSBmdW5jdGlvbiBEaWFsb2dCb2R5KHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSB9ID0gcGFyYW07XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChcImRpdlwiLCB7XG4gICAgICAgIFwiZGF0YS1uZXh0anMtZGlhbG9nLWJvZHlcIjogdHJ1ZSxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pO1xufTtcbmV4cG9ydCB7IERpYWxvZ0JvZHkgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlhbG9nQm9keS5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIlJlYWN0IiwiRGlhbG9nQm9keSIsInBhcmFtIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js":
-/*!************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js ***!
- \************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DialogContent: () => (/* binding */ DialogContent)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst DialogContent = function DialogContent(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n \"data-nextjs-dialog-content\": true,\n className: className,\n children: children\n });\n};\n //# sourceMappingURL=DialogContent.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nQ29udGVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWdEO0FBQ2pCO0FBQy9CLE1BQU1HLGdCQUFnQixTQUFTQSxjQUFjQyxLQUFLO0lBQzlDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUUsR0FBR0Y7SUFDOUIsT0FBTyxXQUFXLEdBQUdILHNEQUFJQSxDQUFDLE9BQU87UUFDN0IsOEJBQThCO1FBQzlCSyxXQUFXQTtRQUNYRCxVQUFVQTtJQUNkO0FBQ0o7QUFDeUIsQ0FFekIseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dDb250ZW50LmpzPzgwYjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuY29uc3QgRGlhbG9nQ29udGVudCA9IGZ1bmN0aW9uIERpYWxvZ0NvbnRlbnQocGFyYW0pIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgY2xhc3NOYW1lIH0gPSBwYXJhbTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFwiZGl2XCIsIHtcbiAgICAgICAgXCJkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudFwiOiB0cnVlLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgfSk7XG59O1xuZXhwb3J0IHsgRGlhbG9nQ29udGVudCB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1EaWFsb2dDb250ZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJEaWFsb2dDb250ZW50IiwicGFyYW0iLCJjaGlsZHJlbiIsImNsYXNzTmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js":
-/*!***********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js ***!
- \***********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DialogHeader: () => (/* binding */ DialogHeader)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst DialogHeader = function DialogHeader(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n \"data-nextjs-dialog-header\": true,\n className: className,\n children: children\n });\n};\n //# sourceMappingURL=DialogHeader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nSGVhZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0Q7QUFDakI7QUFDL0IsTUFBTUcsZUFBZSxTQUFTQSxhQUFhQyxLQUFLO0lBQzVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUUsR0FBR0Y7SUFDOUIsT0FBTyxXQUFXLEdBQUdILHNEQUFJQSxDQUFDLE9BQU87UUFDN0IsNkJBQTZCO1FBQzdCSyxXQUFXQTtRQUNYRCxVQUFVQTtJQUNkO0FBQ0o7QUFDd0IsQ0FFeEIsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dIZWFkZXIuanM/OTg0MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5jb25zdCBEaWFsb2dIZWFkZXIgPSBmdW5jdGlvbiBEaWFsb2dIZWFkZXIocGFyYW0pIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgY2xhc3NOYW1lIH0gPSBwYXJhbTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFwiZGl2XCIsIHtcbiAgICAgICAgXCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXCI6IHRydWUsXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KTtcbn07XG5leHBvcnQgeyBEaWFsb2dIZWFkZXIgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlhbG9nSGVhZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJEaWFsb2dIZWFkZXIiLCJwYXJhbSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/index.js":
-/*!****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/index.js ***!
- \****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Dialog: () => (/* reexport safe */ _Dialog__WEBPACK_IMPORTED_MODULE_0__.Dialog),\n/* harmony export */ DialogBody: () => (/* reexport safe */ _DialogBody__WEBPACK_IMPORTED_MODULE_1__.DialogBody),\n/* harmony export */ DialogContent: () => (/* reexport safe */ _DialogContent__WEBPACK_IMPORTED_MODULE_2__.DialogContent),\n/* harmony export */ DialogHeader: () => (/* reexport safe */ _DialogHeader__WEBPACK_IMPORTED_MODULE_3__.DialogHeader),\n/* harmony export */ styles: () => (/* reexport safe */ _styles__WEBPACK_IMPORTED_MODULE_4__.styles)\n/* harmony export */ });\n/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Dialog */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js\");\n/* harmony import */ var _DialogBody__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DialogBody */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js\");\n/* harmony import */ var _DialogContent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DialogContent */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js\");\n/* harmony import */ var _DialogHeader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DialogHeader */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js\");\n/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./styles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/styles.js\");\n\n\n\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFrQztBQUNRO0FBQ007QUFDRjtBQUNaLENBRWxDLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvaW5kZXguanM/OWJkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEaWFsb2cgfSBmcm9tIFwiLi9EaWFsb2dcIjtcbmV4cG9ydCB7IERpYWxvZ0JvZHkgfSBmcm9tIFwiLi9EaWFsb2dCb2R5XCI7XG5leHBvcnQgeyBEaWFsb2dDb250ZW50IH0gZnJvbSBcIi4vRGlhbG9nQ29udGVudFwiO1xuZXhwb3J0IHsgRGlhbG9nSGVhZGVyIH0gZnJvbSBcIi4vRGlhbG9nSGVhZGVyXCI7XG5leHBvcnQgeyBzdHlsZXMgfSBmcm9tIFwiLi9zdHlsZXNcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIkRpYWxvZyIsIkRpYWxvZ0JvZHkiLCJEaWFsb2dDb250ZW50IiwiRGlhbG9nSGVhZGVyIiwic3R5bGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/styles.js":
-/*!*****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/styles.js ***!
- \*****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n [data-nextjs-dialog] {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n outline: none;\\n background: white;\\n border-radius: var(--size-gap);\\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\\n rgba(0, 0, 0, 0.25);\\n max-height: calc(100% - 56px);\\n overflow-y: hidden;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n max-height: calc(100% - 15px);\\n }\\n }\\n\\n @media (min-width: 576px) {\\n [data-nextjs-dialog] {\\n max-width: 540px;\\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog] {\\n max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog] {\\n max-width: 960px;\\n }\\n }\\n\\n [data-nextjs-dialog-banner] {\\n position: relative;\\n }\\n [data-nextjs-dialog-banner].banner-warning {\\n border-color: var(--color-ansi-yellow);\\n }\\n [data-nextjs-dialog-banner].banner-error {\\n border-color: var(--color-ansi-red);\\n }\\n\\n [data-nextjs-dialog-banner]::after {\\n z-index: 2;\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n /* banner width: */\\n border-top-width: var(--size-gap-half);\\n border-bottom-width: 0;\\n border-top-style: solid;\\n border-bottom-style: solid;\\n border-top-color: inherit;\\n border-bottom-color: transparent;\\n }\\n\\n [data-nextjs-dialog-content] {\\n overflow-y: auto;\\n border: none;\\n margin: 0;\\n /* calc(padding + banner width offset) */\\n padding: calc(var(--size-gap-double) + var(--size-gap-half))\\n var(--size-gap-double);\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__.noop)(_templateObject());\n //# sourceMappingURL=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRztBQUNwRyxTQUFTRTtJQUNMLE1BQU1DLE9BQU9GLDZFQUE4QkEsQ0FBQztRQUN4QztLQUNIO0lBQ0RDLGtCQUFrQjtRQUNkLE9BQU9DO0lBQ1g7SUFDQSxPQUFPQTtBQUNYO0FBQzBEO0FBQzFELE1BQU1HLFNBQVNELDREQUFHQSxDQUFDSDtBQUNELENBRWxCLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvc3R5bGVzLmpzPzVlN2MiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyBhcyBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgfSBmcm9tIFwiQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlXCI7XG5mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKSB7XG4gICAgY29uc3QgZGF0YSA9IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZShbXG4gICAgICAgIFwiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXApO1xcbiAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtZ2FwLWhhbGYpIHZhcigtLXNpemUtZ2FwLWRvdWJsZSlcXG4gICAgICByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NnB4KTtcXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xcbiAgfVxcblxcbiAgQG1lZGlhIChtYXgtaGVpZ2h0OiA4MTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNXB4KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcXG4gICAgICBtYXgtd2lkdGg6IDU0MHB4O1xcbiAgICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tc2l6ZS1nYXApIHZhcigtLXNpemUtZ2FwLXF1YWQpIHJnYmEoMCwgMCwgMCwgMC4yNSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA3MjBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcXG4gICAgICBtYXgtd2lkdGg6IDk2MHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0uYmFubmVyLXdhcm5pbmcge1xcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFuc2kteWVsbG93KTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXS5iYW5uZXItZXJyb3Ige1xcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXTo6YWZ0ZXIge1xcbiAgICB6LWluZGV4OiAyO1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgLyogYmFubmVyIHdpZHRoOiAqL1xcbiAgICBib3JkZXItdG9wLXdpZHRoOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0O1xcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0ge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgLyogY2FsYyhwYWRkaW5nICsgYmFubmVyIHdpZHRoIG9mZnNldCkgKi9cXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXFxuICAgICAgdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSA+IFtkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXSB7XFxuICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSA+IFtkYXRhLW5leHRqcy1kaWFsb2ctYm9keV0ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgfVxcblwiXG4gICAgXSk7XG4gICAgX3RlbXBsYXRlT2JqZWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH07XG4gICAgcmV0dXJuIGRhdGE7XG59XG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIjtcbmNvbnN0IHN0eWxlcyA9IGNzcyhfdGVtcGxhdGVPYmplY3QoKSk7XG5leHBvcnQgeyBzdHlsZXMgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGVzLmpzLm1hcCJdLCJuYW1lcyI6WyJfIiwiX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIiwiX3RlbXBsYXRlT2JqZWN0IiwiZGF0YSIsIm5vb3AiLCJjc3MiLCJzdHlsZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/styles.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js":
-/*!***********************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js ***!
- \***********************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LeftRightDialogHeader: () => (/* binding */ LeftRightDialogHeader)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _icons_CloseIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../icons/CloseIcon */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/icons/CloseIcon.js\");\n\n\n\nconst LeftRightDialogHeader = function LeftRightDialogHeader(param) {\n let { children, className, previous, next, close } = param;\n const buttonLeft = react__WEBPACK_IMPORTED_MODULE_1__.useRef(null);\n const buttonRight = react__WEBPACK_IMPORTED_MODULE_1__.useRef(null);\n const buttonClose = react__WEBPACK_IMPORTED_MODULE_1__.useRef(null);\n const [nav, setNav] = react__WEBPACK_IMPORTED_MODULE_1__.useState(null);\n const onNav = react__WEBPACK_IMPORTED_MODULE_1__.useCallback((el)=>{\n setNav(el);\n }, []);\n react__WEBPACK_IMPORTED_MODULE_1__.useEffect(()=>{\n if (nav == null) {\n return;\n }\n const root = nav.getRootNode();\n const d = self.document;\n function handler(e) {\n if (e.key === \"ArrowLeft\") {\n e.stopPropagation();\n if (buttonLeft.current) {\n buttonLeft.current.focus();\n }\n previous && previous();\n } else if (e.key === \"ArrowRight\") {\n e.stopPropagation();\n if (buttonRight.current) {\n buttonRight.current.focus();\n }\n next && next();\n } else if (e.key === \"Escape\") {\n e.stopPropagation();\n if (root instanceof ShadowRoot) {\n const a = root.activeElement;\n if (a && a !== buttonClose.current && a instanceof HTMLElement) {\n a.blur();\n return;\n }\n }\n if (close) {\n close();\n }\n }\n }\n root.addEventListener(\"keydown\", handler);\n if (root !== d) {\n d.addEventListener(\"keydown\", handler);\n }\n return function() {\n root.removeEventListener(\"keydown\", handler);\n if (root !== d) {\n d.removeEventListener(\"keydown\", handler);\n }\n };\n }, [\n close,\n nav,\n next,\n previous\n ]);\n // Unlock focus for browsers like Firefox, that break all user focus if the\n // currently focused item becomes disabled.\n react__WEBPACK_IMPORTED_MODULE_1__.useEffect(()=>{\n if (nav == null) {\n return;\n }\n const root = nav.getRootNode();\n // Always true, but we do this for TypeScript:\n if (root instanceof ShadowRoot) {\n const a = root.activeElement;\n if (previous == null) {\n if (buttonLeft.current && a === buttonLeft.current) {\n buttonLeft.current.blur();\n }\n } else if (next == null) {\n if (buttonRight.current && a === buttonRight.current) {\n buttonRight.current.blur();\n }\n }\n }\n }, [\n nav,\n next,\n previous\n ]);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n \"data-nextjs-dialog-left-right\": true,\n className: className,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"nav\", {\n ref: onNav,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", {\n ref: buttonLeft,\n type: \"button\",\n disabled: previous == null ? true : undefined,\n \"aria-disabled\": previous == null ? true : undefined,\n onClick: previous != null ? previous : undefined,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"title\", {\n children: \"previous\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M6.99996 1.16666L1.16663 6.99999L6.99996 12.8333M12.8333 6.99999H1.99996H12.8333Z\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })\n ]\n })\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", {\n ref: buttonRight,\n type: \"button\",\n disabled: next == null ? true : undefined,\n \"aria-disabled\": next == null ? true : undefined,\n onClick: next != null ? next : undefined,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"title\", {\n children: \"next\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M6.99996 1.16666L12.8333 6.99999L6.99996 12.8333M1.16663 6.99999H12H1.16663Z\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })\n ]\n })\n }),\n \"\\xa0\",\n children\n ]\n }),\n close ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", {\n \"data-nextjs-errors-dialog-left-right-close-button\": true,\n ref: buttonClose,\n type: \"button\",\n onClick: close,\n \"aria-label\": \"Close\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", {\n \"aria-hidden\": \"true\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_icons_CloseIcon__WEBPACK_IMPORTED_MODULE_2__.CloseIcon, {})\n })\n }) : null\n ]\n });\n};\n //# sourceMappingURL=LeftRightDialogHeader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStEO0FBQ2hDO0FBQ21CO0FBQ2xELE1BQU1NLHdCQUF3QixTQUFTQSxzQkFBc0JDLEtBQUs7SUFDOUQsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRSxHQUFHTDtJQUNyRCxNQUFNTSxhQUFhVCx5Q0FBWSxDQUFDO0lBQ2hDLE1BQU1XLGNBQWNYLHlDQUFZLENBQUM7SUFDakMsTUFBTVksY0FBY1oseUNBQVksQ0FBQztJQUNqQyxNQUFNLENBQUNhLEtBQUtDLE9BQU8sR0FBR2QsMkNBQWMsQ0FBQztJQUNyQyxNQUFNZ0IsUUFBUWhCLDhDQUFpQixDQUFDLENBQUNrQjtRQUM3QkosT0FBT0k7SUFDWCxHQUFHLEVBQUU7SUFDTGxCLDRDQUFlLENBQUM7UUFDWixJQUFJYSxPQUFPLE1BQU07WUFDYjtRQUNKO1FBQ0EsTUFBTU8sT0FBT1AsSUFBSVEsV0FBVztRQUM1QixNQUFNQyxJQUFJQyxLQUFLQyxRQUFRO1FBQ3ZCLFNBQVNDLFFBQVFDLENBQUM7WUFDZCxJQUFJQSxFQUFFQyxHQUFHLEtBQUssYUFBYTtnQkFDdkJELEVBQUVFLGVBQWU7Z0JBQ2pCLElBQUluQixXQUFXb0IsT0FBTyxFQUFFO29CQUNwQnBCLFdBQVdvQixPQUFPLENBQUNDLEtBQUs7Z0JBQzVCO2dCQUNBeEIsWUFBWUE7WUFDaEIsT0FBTyxJQUFJb0IsRUFBRUMsR0FBRyxLQUFLLGNBQWM7Z0JBQy9CRCxFQUFFRSxlQUFlO2dCQUNqQixJQUFJakIsWUFBWWtCLE9BQU8sRUFBRTtvQkFDckJsQixZQUFZa0IsT0FBTyxDQUFDQyxLQUFLO2dCQUM3QjtnQkFDQXZCLFFBQVFBO1lBQ1osT0FBTyxJQUFJbUIsRUFBRUMsR0FBRyxLQUFLLFVBQVU7Z0JBQzNCRCxFQUFFRSxlQUFlO2dCQUNqQixJQUFJUixnQkFBZ0JXLFlBQVk7b0JBQzVCLE1BQU1DLElBQUlaLEtBQUthLGFBQWE7b0JBQzVCLElBQUlELEtBQUtBLE1BQU1wQixZQUFZaUIsT0FBTyxJQUFJRyxhQUFhRSxhQUFhO3dCQUM1REYsRUFBRUcsSUFBSTt3QkFDTjtvQkFDSjtnQkFDSjtnQkFDQSxJQUFJM0IsT0FBTztvQkFDUEE7Z0JBQ0o7WUFDSjtRQUNKO1FBQ0FZLEtBQUtnQixnQkFBZ0IsQ0FBQyxXQUFXWDtRQUNqQyxJQUFJTCxTQUFTRSxHQUFHO1lBQ1pBLEVBQUVjLGdCQUFnQixDQUFDLFdBQVdYO1FBQ2xDO1FBQ0EsT0FBTztZQUNITCxLQUFLaUIsbUJBQW1CLENBQUMsV0FBV1o7WUFDcEMsSUFBSUwsU0FBU0UsR0FBRztnQkFDWkEsRUFBRWUsbUJBQW1CLENBQUMsV0FBV1o7WUFDckM7UUFDSjtJQUNKLEdBQUc7UUFDQ2pCO1FBQ0FLO1FBQ0FOO1FBQ0FEO0tBQ0g7SUFDRCwyRUFBMkU7SUFDM0UsMkNBQTJDO0lBQzNDTiw0Q0FBZSxDQUFDO1FBQ1osSUFBSWEsT0FBTyxNQUFNO1lBQ2I7UUFDSjtRQUNBLE1BQU1PLE9BQU9QLElBQUlRLFdBQVc7UUFDNUIsOENBQThDO1FBQzlDLElBQUlELGdCQUFnQlcsWUFBWTtZQUM1QixNQUFNQyxJQUFJWixLQUFLYSxhQUFhO1lBQzVCLElBQUkzQixZQUFZLE1BQU07Z0JBQ2xCLElBQUlHLFdBQVdvQixPQUFPLElBQUlHLE1BQU12QixXQUFXb0IsT0FBTyxFQUFFO29CQUNoRHBCLFdBQVdvQixPQUFPLENBQUNNLElBQUk7Z0JBQzNCO1lBQ0osT0FBTyxJQUFJNUIsUUFBUSxNQUFNO2dCQUNyQixJQUFJSSxZQUFZa0IsT0FBTyxJQUFJRyxNQUFNckIsWUFBWWtCLE9BQU8sRUFBRTtvQkFDbERsQixZQUFZa0IsT0FBTyxDQUFDTSxJQUFJO2dCQUM1QjtZQUNKO1FBQ0o7SUFDSixHQUFHO1FBQ0N0QjtRQUNBTjtRQUNBRDtLQUNIO0lBQ0QsT0FBTyxXQUFXLEdBQUdQLHVEQUFLQSxDQUFDLE9BQU87UUFDOUIsaUNBQWlDO1FBQ2pDTSxXQUFXQTtRQUNYRCxVQUFVO1lBQ04sV0FBVyxHQUFHTCx1REFBS0EsQ0FBQyxPQUFPO2dCQUN2QnVDLEtBQUt0QjtnQkFDTFosVUFBVTtvQkFDTixXQUFXLEdBQUdQLHNEQUFJQSxDQUFDLFVBQVU7d0JBQ3pCeUMsS0FBSzdCO3dCQUNMOEIsTUFBTTt3QkFDTkMsVUFBVWxDLFlBQVksT0FBTyxPQUFPbUM7d0JBQ3BDLGlCQUFpQm5DLFlBQVksT0FBTyxPQUFPbUM7d0JBQzNDQyxTQUFTcEMsWUFBWSxPQUFPQSxXQUFXbUM7d0JBQ3ZDckMsVUFBVSxXQUFXLEdBQUdMLHVEQUFLQSxDQUFDLE9BQU87NEJBQ2pDNEMsU0FBUzs0QkFDVEMsTUFBTTs0QkFDTkMsT0FBTzs0QkFDUHpDLFVBQVU7Z0NBQ04sV0FBVyxHQUFHUCxzREFBSUEsQ0FBQyxTQUFTO29DQUN4Qk8sVUFBVTtnQ0FDZDtnQ0FDQSxXQUFXLEdBQUdQLHNEQUFJQSxDQUFDLFFBQVE7b0NBQ3ZCeUIsR0FBRztvQ0FDSHdCLFFBQVE7b0NBQ1JDLGFBQWE7b0NBQ2JDLGVBQWU7b0NBQ2ZDLGdCQUFnQjtnQ0FDcEI7NkJBQ0g7d0JBQ0w7b0JBQ0o7b0JBQ0EsV0FBVyxHQUFHcEQsc0RBQUlBLENBQUMsVUFBVTt3QkFDekJ5QyxLQUFLM0I7d0JBQ0w0QixNQUFNO3dCQUNOQyxVQUFVakMsUUFBUSxPQUFPLE9BQU9rQzt3QkFDaEMsaUJBQWlCbEMsUUFBUSxPQUFPLE9BQU9rQzt3QkFDdkNDLFNBQVNuQyxRQUFRLE9BQU9BLE9BQU9rQzt3QkFDL0JyQyxVQUFVLFdBQVcsR0FBR0wsdURBQUtBLENBQUMsT0FBTzs0QkFDakM0QyxTQUFTOzRCQUNUQyxNQUFNOzRCQUNOQyxPQUFPOzRCQUNQekMsVUFBVTtnQ0FDTixXQUFXLEdBQUdQLHNEQUFJQSxDQUFDLFNBQVM7b0NBQ3hCTyxVQUFVO2dDQUNkO2dDQUNBLFdBQVcsR0FBR1Asc0RBQUlBLENBQUMsUUFBUTtvQ0FDdkJ5QixHQUFHO29DQUNId0IsUUFBUTtvQ0FDUkMsYUFBYTtvQ0FDYkMsZUFBZTtvQ0FDZkMsZ0JBQWdCO2dDQUNwQjs2QkFDSDt3QkFDTDtvQkFDSjtvQkFDQTtvQkFDQTdDO2lCQUNIO1lBQ0w7WUFDQUksUUFBUSxXQUFXLEdBQUdYLHNEQUFJQSxDQUFDLFVBQVU7Z0JBQ2pDLHFEQUFxRDtnQkFDckR5QyxLQUFLMUI7Z0JBQ0wyQixNQUFNO2dCQUNORyxTQUFTbEM7Z0JBQ1QsY0FBYztnQkFDZEosVUFBVSxXQUFXLEdBQUdQLHNEQUFJQSxDQUFDLFFBQVE7b0JBQ2pDLGVBQWU7b0JBQ2ZPLFVBQVUsV0FBVyxHQUFHUCxzREFBSUEsQ0FBQ0ksdURBQVNBLEVBQUUsQ0FBQztnQkFDN0M7WUFDSixLQUFLO1NBQ1I7SUFDTDtBQUNKO0FBQ2lDLENBRWpDLGlEQUFpRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyLmpzP2JkZWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ2xvc2VJY29uIH0gZnJvbSBcIi4uLy4uL2ljb25zL0Nsb3NlSWNvblwiO1xuY29uc3QgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyID0gZnVuY3Rpb24gTGVmdFJpZ2h0RGlhbG9nSGVhZGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgcHJldmlvdXMsIG5leHQsIGNsb3NlIH0gPSBwYXJhbTtcbiAgICBjb25zdCBidXR0b25MZWZ0ID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGJ1dHRvblJpZ2h0ID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGJ1dHRvbkNsb3NlID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtuYXYsIHNldE5hdl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBvbk5hdiA9IFJlYWN0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgc2V0TmF2KGVsKTtcbiAgICB9LCBbXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChuYXYgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvb3QgPSBuYXYuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgY29uc3QgZCA9IHNlbGYuZG9jdW1lbnQ7XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZSkge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSBcIkFycm93TGVmdFwiKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoYnV0dG9uTGVmdC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbkxlZnQuY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwcmV2aW91cyAmJiBwcmV2aW91cygpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gXCJBcnJvd1JpZ2h0XCIpIHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGlmIChidXR0b25SaWdodC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblJpZ2h0LmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV4dCAmJiBuZXh0KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAocm9vdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHJvb3QuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgJiYgYSAhPT0gYnV0dG9uQ2xvc2UuY3VycmVudCAmJiBhIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjbG9zZSkge1xuICAgICAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZXIpO1xuICAgICAgICBpZiAocm9vdCAhPT0gZCkge1xuICAgICAgICAgICAgZC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgaWYgKHJvb3QgIT09IGQpIHtcbiAgICAgICAgICAgICAgICBkLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgY2xvc2UsXG4gICAgICAgIG5hdixcbiAgICAgICAgbmV4dCxcbiAgICAgICAgcHJldmlvdXNcbiAgICBdKTtcbiAgICAvLyBVbmxvY2sgZm9jdXMgZm9yIGJyb3dzZXJzIGxpa2UgRmlyZWZveCwgdGhhdCBicmVhayBhbGwgdXNlciBmb2N1cyBpZiB0aGVcbiAgICAvLyBjdXJyZW50bHkgZm9jdXNlZCBpdGVtIGJlY29tZXMgZGlzYWJsZWQuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChuYXYgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvb3QgPSBuYXYuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgLy8gQWx3YXlzIHRydWUsIGJ1dCB3ZSBkbyB0aGlzIGZvciBUeXBlU2NyaXB0OlxuICAgICAgICBpZiAocm9vdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSByb290LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAocHJldmlvdXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChidXR0b25MZWZ0LmN1cnJlbnQgJiYgYSA9PT0gYnV0dG9uTGVmdC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbkxlZnQuY3VycmVudC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoYnV0dG9uUmlnaHQuY3VycmVudCAmJiBhID09PSBidXR0b25SaWdodC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblJpZ2h0LmN1cnJlbnQuYmx1cigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgbmF2LFxuICAgICAgICBuZXh0LFxuICAgICAgICBwcmV2aW91c1xuICAgIF0pO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKFwiZGl2XCIsIHtcbiAgICAgICAgXCJkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodFwiOiB0cnVlLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJuYXZcIiwge1xuICAgICAgICAgICAgICAgIHJlZjogb25OYXYsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogYnV0dG9uTGVmdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogcHJldmlvdXMgPT0gbnVsbCA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogcHJldmlvdXMgPT0gbnVsbCA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBwcmV2aW91cyAhPSBudWxsID8gcHJldmlvdXMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4cyhcInN2Z1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveDogXCIwIDAgMTQgMTRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInRpdGxlXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBcInByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInBhdGhcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZDogXCJNNi45OTk5NiAxLjE2NjY2TDEuMTY2NjMgNi45OTk5OUw2Ljk5OTk2IDEyLjgzMzNNMTIuODMzMyA2Ljk5OTk5SDEuOTk5OTZIMTIuODMzM1pcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBcIjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogYnV0dG9uUmlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG5leHQgPT0gbnVsbCA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogbmV4dCA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG5leHQgIT0gbnVsbCA/IG5leHQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4cyhcInN2Z1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveDogXCIwIDAgMTQgMTRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInRpdGxlXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBcIm5leHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwicGF0aFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkOiBcIk02Ljk5OTk2IDEuMTY2NjZMMTIuODMzMyA2Ljk5OTk5TDYuOTk5OTYgMTIuODMzM00xLjE2NjYzIDYuOTk5OTlIMTJIMS4xNjY2M1pcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBcIjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgXCJcXHhhMFwiLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2xvc2UgPyAvKiNfX1BVUkVfXyovIF9qc3goXCJidXR0b25cIiwge1xuICAgICAgICAgICAgICAgIFwiZGF0YS1uZXh0anMtZXJyb3JzLWRpYWxvZy1sZWZ0LXJpZ2h0LWNsb3NlLWJ1dHRvblwiOiB0cnVlLFxuICAgICAgICAgICAgICAgIHJlZjogYnV0dG9uQ2xvc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiBjbG9zZSxcbiAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogXCJDbG9zZVwiLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChDbG9zZUljb24sIHt9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KSA6IG51bGxcbiAgICAgICAgXVxuICAgIH0pO1xufTtcbmV4cG9ydCB7IExlZnRSaWdodERpYWxvZ0hlYWRlciB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1MZWZ0UmlnaHREaWFsb2dIZWFkZXIuanMubWFwIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJSZWFjdCIsIkNsb3NlSWNvbiIsIkxlZnRSaWdodERpYWxvZ0hlYWRlciIsInBhcmFtIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJwcmV2aW91cyIsIm5leHQiLCJjbG9zZSIsImJ1dHRvbkxlZnQiLCJ1c2VSZWYiLCJidXR0b25SaWdodCIsImJ1dHRvbkNsb3NlIiwibmF2Iiwic2V0TmF2IiwidXNlU3RhdGUiLCJvbk5hdiIsInVzZUNhbGxiYWNrIiwiZWwiLCJ1c2VFZmZlY3QiLCJyb290IiwiZ2V0Um9vdE5vZGUiLCJkIiwic2VsZiIsImRvY3VtZW50IiwiaGFuZGxlciIsImUiLCJrZXkiLCJzdG9wUHJvcGFnYXRpb24iLCJjdXJyZW50IiwiZm9jdXMiLCJTaGFkb3dSb290IiwiYSIsImFjdGl2ZUVsZW1lbnQiLCJIVE1MRWxlbWVudCIsImJsdXIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlZiIsInR5cGUiLCJkaXNhYmxlZCIsInVuZGVmaW5lZCIsIm9uQ2xpY2siLCJ2aWV3Qm94IiwiZmlsbCIsInhtbG5zIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js":
-/*!*******************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js ***!
- \*******************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LeftRightDialogHeader: () => (/* reexport safe */ _LeftRightDialogHeader__WEBPACK_IMPORTED_MODULE_0__.LeftRightDialogHeader),\n/* harmony export */ styles: () => (/* reexport safe */ _styles__WEBPACK_IMPORTED_MODULE_1__.styles)\n/* harmony export */ });\n/* harmony import */ var _LeftRightDialogHeader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LeftRightDialogHeader */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\");\n/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./styles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\");\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFnRTtBQUM5QixDQUVsQyxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL2luZGV4LmpzP2ZjZjkiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFJpZ2h0RGlhbG9nSGVhZGVyXCI7XG5leHBvcnQgeyBzdHlsZXMgfSBmcm9tIFwiLi9zdHlsZXNcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIkxlZnRSaWdodERpYWxvZ0hlYWRlciIsInN0eWxlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js":
-/*!********************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js ***!
- \********************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n [data-nextjs-dialog-left-right] {\\n display: flex;\\n flex-direction: row;\\n align-content: center;\\n align-items: center;\\n justify-content: space-between;\\n }\\n [data-nextjs-dialog-left-right] > nav {\\n flex: 1;\\n display: flex;\\n align-items: center;\\n margin-right: var(--size-gap);\\n }\\n [data-nextjs-dialog-left-right] > nav > button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n width: calc(var(--size-gap-double) + var(--size-gap));\\n height: calc(var(--size-gap-double) + var(--size-gap));\\n font-size: 0;\\n border: none;\\n background-color: rgba(255, 85, 85, 0.1);\\n color: var(--color-ansi-red);\\n cursor: pointer;\\n transition: background-color 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > nav > button > svg {\\n width: auto;\\n height: calc(var(--size-gap) + var(--size-gap-half));\\n }\\n [data-nextjs-dialog-left-right] > nav > button:hover {\\n background-color: rgba(255, 85, 85, 0.2);\\n }\\n [data-nextjs-dialog-left-right] > nav > button:disabled {\\n background-color: rgba(255, 85, 85, 0.1);\\n color: rgba(255, 85, 85, 0.4);\\n cursor: not-allowed;\\n }\\n\\n [data-nextjs-dialog-left-right] > nav > button:first-of-type {\\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\\n margin-right: 1px;\\n }\\n [data-nextjs-dialog-left-right] > nav > button:last-of-type {\\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\\n }\\n\\n [data-nextjs-dialog-left-right] > button:last-of-type {\\n border: 0;\\n padding: 0;\\n\\n background-color: transparent;\\n appearance: none;\\n\\n opacity: 0.4;\\n transition: opacity 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > button:last-of-type:hover {\\n opacity: 0.7;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__.noop)(_templateObject());\n //# sourceMappingURL=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRztBQUNwRyxTQUFTRTtJQUNMLE1BQU1DLE9BQU9GLDZFQUE4QkEsQ0FBQztRQUN4QztLQUNIO0lBQ0RDLGtCQUFrQjtRQUNkLE9BQU9DO0lBQ1g7SUFDQSxPQUFPQTtBQUNYO0FBQzBEO0FBQzFELE1BQU1HLFNBQVNELDREQUFHQSxDQUFDSDtBQUNELENBRWxCLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvc3R5bGVzLmpzP2M4OTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyBhcyBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgfSBmcm9tIFwiQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlXCI7XG5mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKSB7XG4gICAgY29uc3QgZGF0YSA9IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZShbXG4gICAgICAgIFwiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2IHtcXG4gICAgZmxleDogMTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcblxcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcXG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcCkpO1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC4xKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2U7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uID4gc3ZnIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC4yKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjEpO1xcbiAgICBjb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC40KTtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246Zmlyc3Qtb2YtdHlwZSB7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpIDAgMCB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tc2l6ZS1nYXAtaGFsZikgdmFyKC0tc2l6ZS1nYXAtaGFsZikgMDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBidXR0b246bGFzdC1vZi10eXBlIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcblxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcXG5cXG4gICAgb3BhY2l0eTogMC40O1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gYnV0dG9uOmxhc3Qtb2YtdHlwZTpob3ZlciB7XFxuICAgIG9wYWNpdHk6IDAuNztcXG4gIH1cXG5cIlxuICAgIF0pO1xuICAgIF90ZW1wbGF0ZU9iamVjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xufVxuaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlXCI7XG5jb25zdCBzdHlsZXMgPSBjc3MoX3RlbXBsYXRlT2JqZWN0KCkpO1xuZXhwb3J0IHsgc3R5bGVzIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5qcy5tYXAiXSwibmFtZXMiOlsiXyIsIl90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSIsIl90ZW1wbGF0ZU9iamVjdCIsImRhdGEiLCJub29wIiwiY3NzIiwic3R5bGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js":
-/*!*******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js ***!
- \*******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Overlay: () => (/* binding */ Overlay)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var _maintain_tab_focus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maintain--tab-focus */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _body_locker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./body-locker */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js\");\n// @ts-ignore\n\n\n\n\nconst Overlay = function Overlay(param) {\n let { className, children, fixed } = param;\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(()=>{\n (0,_body_locker__WEBPACK_IMPORTED_MODULE_3__.lock)();\n return ()=>{\n (0,_body_locker__WEBPACK_IMPORTED_MODULE_3__.unlock)();\n };\n }, []);\n const [overlay, setOverlay] = react__WEBPACK_IMPORTED_MODULE_2__.useState(null);\n const onOverlay = react__WEBPACK_IMPORTED_MODULE_2__.useCallback((el)=>{\n setOverlay(el);\n }, []);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(()=>{\n if (overlay == null) {\n return;\n }\n const handle2 = (0,_maintain_tab_focus__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n context: overlay\n });\n return ()=>{\n handle2.disengage();\n };\n }, [\n overlay\n ]);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n \"data-nextjs-dialog-overlay\": true,\n className: className,\n ref: onOverlay,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n \"data-nextjs-dialog-backdrop\": true,\n \"data-nextjs-dialog-backdrop-fixed\": fixed ? true : undefined\n }),\n children\n ]\n });\n};\n //# sourceMappingURL=Overlay.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsYUFBYTtBQUNrRDtBQUNsQjtBQUNkO0FBQ2M7QUFDN0MsTUFBTVEsVUFBVSxTQUFTQSxRQUFRQyxLQUFLO0lBQ2xDLElBQUksRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLEtBQUssRUFBRSxHQUFHSDtJQUNyQ0osNENBQWUsQ0FBQztRQUNaQyxrREFBSUE7UUFDSixPQUFPO1lBQ0hDLG9EQUFNQTtRQUNWO0lBQ0osR0FBRyxFQUFFO0lBQ0wsTUFBTSxDQUFDTyxTQUFTQyxXQUFXLEdBQUdWLDJDQUFjLENBQUM7SUFDN0MsTUFBTVksWUFBWVosOENBQWlCLENBQUMsQ0FBQ2M7UUFDakNKLFdBQVdJO0lBQ2YsR0FBRyxFQUFFO0lBQ0xkLDRDQUFlLENBQUM7UUFDWixJQUFJUyxXQUFXLE1BQU07WUFDakI7UUFDSjtRQUNBLE1BQU1NLFVBQVVoQiwrREFBUUEsQ0FBQztZQUNyQmlCLFNBQVNQO1FBQ2I7UUFDQSxPQUFPO1lBQ0hNLFFBQVFFLFNBQVM7UUFDckI7SUFDSixHQUFHO1FBQ0NSO0tBQ0g7SUFDRCxPQUFPLFdBQVcsR0FBR1gsdURBQUtBLENBQUMsT0FBTztRQUM5Qiw4QkFBOEI7UUFDOUJPLFdBQVdBO1FBQ1hhLEtBQUtOO1FBQ0xOLFVBQVU7WUFDTixXQUFXLEdBQUdWLHNEQUFJQSxDQUFDLE9BQU87Z0JBQ3RCLCtCQUErQjtnQkFDL0IscUNBQXFDVyxRQUFRLE9BQU9ZO1lBQ3hEO1lBQ0FiO1NBQ0g7SUFDTDtBQUNKO0FBQ21CLENBRW5CLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkuanM/MmE1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IGFsbHlUcmFwIGZyb20gXCIuL21haW50YWluLS10YWItZm9jdXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgbG9jaywgdW5sb2NrIH0gZnJvbSBcIi4vYm9keS1sb2NrZXJcIjtcbmNvbnN0IE92ZXJsYXkgPSBmdW5jdGlvbiBPdmVybGF5KHBhcmFtKSB7XG4gICAgbGV0IHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgZml4ZWQgfSA9IHBhcmFtO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBsb2NrKCk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgdW5sb2NrKCk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IFtvdmVybGF5LCBzZXRPdmVybGF5XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG9uT3ZlcmxheSA9IFJlYWN0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgc2V0T3ZlcmxheShlbCk7XG4gICAgfSwgW10pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAob3ZlcmxheSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFuZGxlMiA9IGFsbHlUcmFwKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IG92ZXJsYXlcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgaGFuZGxlMi5kaXNlbmdhZ2UoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIG92ZXJsYXlcbiAgICBdKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhcImRpdlwiLCB7XG4gICAgICAgIFwiZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXlcIjogdHJ1ZSxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIHJlZjogb25PdmVybGF5LFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICBcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgIFwiZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wLWZpeGVkXCI6IGZpeGVkID8gdHJ1ZSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICBdXG4gICAgfSk7XG59O1xuZXhwb3J0IHsgT3ZlcmxheSB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1PdmVybGF5LmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiYWxseVRyYXAiLCJSZWFjdCIsImxvY2siLCJ1bmxvY2siLCJPdmVybGF5IiwicGFyYW0iLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsImZpeGVkIiwidXNlRWZmZWN0Iiwib3ZlcmxheSIsInNldE92ZXJsYXkiLCJ1c2VTdGF0ZSIsIm9uT3ZlcmxheSIsInVzZUNhbGxiYWNrIiwiZWwiLCJoYW5kbGUyIiwiY29udGV4dCIsImRpc2VuZ2FnZSIsInJlZiIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js":
-/*!***********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js ***!
- \***********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ lock: () => (/* binding */ lock),\n/* harmony export */ unlock: () => (/* binding */ unlock)\n/* harmony export */ });\nlet previousBodyPaddingRight;\nlet previousBodyOverflowSetting;\nlet activeLocks = 0;\nfunction lock() {\n setTimeout(()=>{\n if (activeLocks++ > 0) {\n return;\n }\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n if (scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = \"\" + scrollBarGap + \"px\";\n }\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n });\n}\nfunction unlock() {\n setTimeout(()=>{\n if (activeLocks === 0 || --activeLocks !== 0) {\n return;\n }\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n previousBodyPaddingRight = undefined;\n }\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n previousBodyOverflowSetting = undefined;\n }\n });\n} //# sourceMappingURL=body-locker.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L2JvZHktbG9ja2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBSUE7QUFDSixJQUFJQztBQUNKLElBQUlDLGNBQWM7QUFDWCxTQUFTQztJQUNaQyxXQUFXO1FBQ1AsSUFBSUYsZ0JBQWdCLEdBQUc7WUFDbkI7UUFDSjtRQUNBLE1BQU1HLGVBQWVDLE9BQU9DLFVBQVUsR0FBR0MsU0FBU0MsZUFBZSxDQUFDQyxXQUFXO1FBQzdFLElBQUlMLGVBQWUsR0FBRztZQUNsQkwsMkJBQTJCUSxTQUFTRyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsWUFBWTtZQUMzREwsU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNDLFlBQVksR0FBRyxLQUFLUixlQUFlO1FBQzNEO1FBQ0FKLDhCQUE4Qk8sU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNFLFFBQVE7UUFDMUROLFNBQVNHLElBQUksQ0FBQ0MsS0FBSyxDQUFDRSxRQUFRLEdBQUc7SUFDbkM7QUFDSjtBQUNPLFNBQVNDO0lBQ1pYLFdBQVc7UUFDUCxJQUFJRixnQkFBZ0IsS0FBSyxFQUFFQSxnQkFBZ0IsR0FBRztZQUMxQztRQUNKO1FBQ0EsSUFBSUYsNkJBQTZCZ0IsV0FBVztZQUN4Q1IsU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNDLFlBQVksR0FBR2I7WUFDbkNBLDJCQUEyQmdCO1FBQy9CO1FBQ0EsSUFBSWYsZ0NBQWdDZSxXQUFXO1lBQzNDUixTQUFTRyxJQUFJLENBQUNDLEtBQUssQ0FBQ0UsUUFBUSxHQUFHYjtZQUMvQkEsOEJBQThCZTtRQUNsQztJQUNKO0FBQ0osRUFFQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9ib2R5LWxvY2tlci5qcz80MDAxIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQ7XG5sZXQgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nO1xubGV0IGFjdGl2ZUxvY2tzID0gMDtcbmV4cG9ydCBmdW5jdGlvbiBsb2NrKCkge1xuICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgaWYgKGFjdGl2ZUxvY2tzKysgPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2Nyb2xsQmFyR2FwID0gd2luZG93LmlubmVyV2lkdGggLSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGlmIChzY3JvbGxCYXJHYXAgPiAwKSB7XG4gICAgICAgICAgICBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQgPSBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodDtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gXCJcIiArIHNjcm9sbEJhckdhcCArIFwicHhcIjtcbiAgICAgICAgfVxuICAgICAgICBwcmV2aW91c0JvZHlPdmVyZmxvd1NldHRpbmcgPSBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93O1xuICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gXCJoaWRkZW5cIjtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1bmxvY2soKSB7XG4gICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICBpZiAoYWN0aXZlTG9ja3MgPT09IDAgfHwgLS1hY3RpdmVMb2NrcyAhPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQ7XG4gICAgICAgICAgICBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nO1xuICAgICAgICAgICAgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvZHktbG9ja2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQiLCJwcmV2aW91c0JvZHlPdmVyZmxvd1NldHRpbmciLCJhY3RpdmVMb2NrcyIsImxvY2siLCJzZXRUaW1lb3V0Iiwic2Nyb2xsQmFyR2FwIiwid2luZG93IiwiaW5uZXJXaWR0aCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiY2xpZW50V2lkdGgiLCJib2R5Iiwic3R5bGUiLCJwYWRkaW5nUmlnaHQiLCJvdmVyZmxvdyIsInVubG9jayIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/index.js":
-/*!*****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/index.js ***!
- \*****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Overlay: () => (/* reexport safe */ _Overlay__WEBPACK_IMPORTED_MODULE_0__.Overlay)\n/* harmony export */ });\n/* harmony import */ var _Overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Overlay */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js\");\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW9DLENBRXBDLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L2luZGV4LmpzPzJhYmEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgT3ZlcmxheSB9IGZyb20gXCIuL092ZXJsYXlcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIk92ZXJsYXkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js":
-/*!*******************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js ***!
- \*******************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_platform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/platform */ \"(ssr)/../../node_modules/next/dist/compiled/platform/platform.js\");\n/* harmony import */ var next_dist_compiled_platform__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_platform__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_compiled_css_escape__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/compiled/css.escape */ \"(ssr)/../../node_modules/next/dist/compiled/css.escape/css.escape.js\");\n/* harmony import */ var next_dist_compiled_css_escape__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_css_escape__WEBPACK_IMPORTED_MODULE_1__);\n/* eslint-disable */ // @ts-nocheck\n// Copied from https://github.com/medialize/ally.js\n// License: MIT\n// Copyright (c) 2015 Rodney Rehm\n//\n// Entrypoint: ally.js/maintain/tab-focus\n\n\n// input may be undefined, selector-tring, Node, NodeList, HTMLCollection, array of Nodes\n// yes, to some extent this is a bad replica of jQuery's constructor function\nfunction nodeArray(input) {\n if (!input) {\n return [];\n }\n if (Array.isArray(input)) {\n return input;\n }\n // instanceof Node - does not work with iframes\n if (input.nodeType !== undefined) {\n return [\n input\n ];\n }\n if (typeof input === \"string\") {\n input = document.querySelectorAll(input);\n }\n if (input.length !== undefined) {\n return [].slice.call(input, 0);\n }\n throw new TypeError(\"unexpected input \" + String(input));\n}\nfunction contextToElement(_ref) {\n var context = _ref.context, _ref$label = _ref.label, label = _ref$label === undefined ? \"context-to-element\" : _ref$label, resolveDocument = _ref.resolveDocument, defaultToDocument = _ref.defaultToDocument;\n var element = nodeArray(context)[0];\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement;\n }\n if (!element && defaultToDocument) {\n return document.documentElement;\n }\n if (!element) {\n throw new TypeError(label + \" requires valid options.context\");\n }\n if (element.nodeType !== Node.ELEMENT_NODE && element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n throw new TypeError(label + \" requires options.context to be an Element\");\n }\n return element;\n}\nfunction getShadowHost() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var element = contextToElement({\n label: \"get/shadow-host\",\n context: context\n });\n // walk up to the root\n var container = null;\n while(element){\n container = element;\n element = element.parentNode;\n }\n // https://developer.mozilla.org/docs/Web/API/Node.nodeType\n // NOTE: Firefox 34 does not expose ShadowRoot.host (but 37 does)\n if (container.nodeType === container.DOCUMENT_FRAGMENT_NODE && container.host) {\n // the root is attached to a fragment node that has a host\n return container.host;\n }\n return null;\n}\nfunction getDocument(node) {\n if (!node) {\n return document;\n }\n if (node.nodeType === Node.DOCUMENT_NODE) {\n return node;\n }\n return node.ownerDocument || document;\n}\nfunction isActiveElement(context) {\n var element = contextToElement({\n label: \"is/active-element\",\n resolveDocument: true,\n context: context\n });\n var _document = getDocument(element);\n if (_document.activeElement === element) {\n return true;\n }\n var shadowHost = getShadowHost({\n context: element\n });\n if (shadowHost && shadowHost.shadowRoot.activeElement === element) {\n return true;\n }\n return false;\n}\n// [elem, elem.parent, elem.parent.parent, …, html]\n// will not contain the shadowRoot (DOCUMENT_FRAGMENT_NODE) and shadowHost\nfunction getParents() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var list = [];\n var element = contextToElement({\n label: \"get/parents\",\n context: context\n });\n while(element){\n list.push(element);\n // IE does know support parentElement on SVGElement\n element = element.parentNode;\n if (element && element.nodeType !== Node.ELEMENT_NODE) {\n element = null;\n }\n }\n return list;\n}\n// Element.prototype.matches may be available at a different name\n// https://developer.mozilla.org/en/docs/Web/API/Element/matches\nvar names = [\n \"matches\",\n \"webkitMatchesSelector\",\n \"mozMatchesSelector\",\n \"msMatchesSelector\"\n];\nvar name = null;\nfunction findMethodName(element) {\n names.some(function(_name) {\n if (!element[_name]) {\n return false;\n }\n name = _name;\n return true;\n });\n}\nfunction elementMatches(element, selector) {\n if (!name) {\n findMethodName(element);\n }\n return element[name](selector);\n}\n// deep clone of original platform\nvar platform = JSON.parse(JSON.stringify((next_dist_compiled_platform__WEBPACK_IMPORTED_MODULE_0___default())));\n// operating system\nvar os = platform.os.family || \"\";\nvar ANDROID = os === \"Android\";\nvar WINDOWS = os.slice(0, 7) === \"Windows\";\nvar OSX = os === \"OS X\";\nvar IOS = os === \"iOS\";\n// layout\nvar BLINK = platform.layout === \"Blink\";\nvar GECKO = platform.layout === \"Gecko\";\nvar TRIDENT = platform.layout === \"Trident\";\nvar EDGE = platform.layout === \"EdgeHTML\";\nvar WEBKIT = platform.layout === \"WebKit\";\n// browser version (not layout engine version!)\nvar version = parseFloat(platform.version);\nvar majorVersion = Math.floor(version);\nplatform.majorVersion = majorVersion;\nplatform.is = {\n // operating system\n ANDROID: ANDROID,\n WINDOWS: WINDOWS,\n OSX: OSX,\n IOS: IOS,\n // layout\n BLINK: BLINK,\n GECKO: GECKO,\n TRIDENT: TRIDENT,\n EDGE: EDGE,\n WEBKIT: WEBKIT,\n // INTERNET EXPLORERS\n IE9: TRIDENT && majorVersion === 9,\n IE10: TRIDENT && majorVersion === 10,\n IE11: TRIDENT && majorVersion === 11\n};\nfunction before() {\n var data = {\n // remember what had focus to restore after test\n activeElement: document.activeElement,\n // remember scroll positions to restore after test\n windowScrollTop: window.scrollTop,\n windowScrollLeft: window.scrollLeft,\n bodyScrollTop: document.body.scrollTop,\n bodyScrollLeft: document.body.scrollLeft\n };\n // wrap tests in an element hidden from screen readers to prevent them\n // from announcing focus, which can be quite irritating to the user\n var iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"style\", \"position:absolute; position:fixed; top:0; left:-2px; width:1px; height:1px; overflow:hidden;\");\n iframe.setAttribute(\"aria-live\", \"off\");\n iframe.setAttribute(\"aria-busy\", \"true\");\n iframe.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(iframe);\n var _window = iframe.contentWindow;\n var _document = _window.document;\n _document.open();\n _document.close();\n var wrapper = _document.createElement(\"div\");\n _document.body.appendChild(wrapper);\n data.iframe = iframe;\n data.wrapper = wrapper;\n data.window = _window;\n data.document = _document;\n return data;\n}\n// options.element:\n// {string} element name\n// {function} callback(wrapper, document) to generate an element\n// options.mutate: (optional)\n// {function} callback(element, wrapper, document) to manipulate element prior to focus-test.\n// Can return DOMElement to define focus target (default: element)\n// options.validate: (optional)\n// {function} callback(element, focusTarget, document) to manipulate test-result\nfunction test(data, options) {\n // make sure we operate on a clean slate\n data.wrapper.innerHTML = \"\";\n // create dummy element to test focusability of\n var element = typeof options.element === \"string\" ? data.document.createElement(options.element) : options.element(data.wrapper, data.document);\n // allow callback to further specify dummy element\n // and optionally define element to focus\n var focus = options.mutate && options.mutate(element, data.wrapper, data.document);\n if (!focus && focus !== false) {\n focus = element;\n }\n // element needs to be part of the DOM to be focusable\n !element.parentNode && data.wrapper.appendChild(element);\n // test if the element with invalid tabindex can be focused\n focus && focus.focus && focus.focus();\n // validate test's result\n return options.validate ? options.validate(element, focus, data.document) : data.document.activeElement === focus;\n}\nfunction after(data) {\n // restore focus to what it was before test and cleanup\n if (data.activeElement === document.body) {\n document.activeElement && document.activeElement.blur && document.activeElement.blur();\n if (platform.is.IE10) {\n // IE10 does not redirect focus to <body> when the activeElement is removed\n document.body.focus();\n }\n } else {\n data.activeElement && data.activeElement.focus && data.activeElement.focus();\n }\n document.body.removeChild(data.iframe);\n // restore scroll position\n window.scrollTop = data.windowScrollTop;\n window.scrollLeft = data.windowScrollLeft;\n document.body.scrollTop = data.bodyScrollTop;\n document.body.scrollLeft = data.bodyScrollLeft;\n}\nfunction detectFocus(tests) {\n var data = before();\n var results = {};\n Object.keys(tests).map(function(key) {\n results[key] = test(data, tests[key]);\n });\n after(data);\n return results;\n}\n// this file is overwritten by `npm run build:pre`\nvar version$1 = \"1.4.1\";\n/*\n Facility to cache test results in localStorage.\n\n USAGE:\n cache.get('key');\n cache.set('key', 'value');\n */ function readLocalStorage(key) {\n // allow reading from storage to retrieve previous support results\n // even while the document does not have focus\n var data = void 0;\n try {\n data = window.localStorage && window.localStorage.getItem(key);\n data = data ? JSON.parse(data) : {};\n } catch (e) {\n data = {};\n }\n return data;\n}\nfunction writeLocalStorage(key, value) {\n if (!document.hasFocus()) {\n // if the document does not have focus when tests are executed, focus() may\n // not be handled properly and events may not be dispatched immediately.\n // This can happen when a document is reloaded while Developer Tools have focus.\n try {\n window.localStorage && window.localStorage.removeItem(key);\n } catch (e) {\n // ignore\n }\n return;\n }\n try {\n window.localStorage && window.localStorage.setItem(key, JSON.stringify(value));\n } catch (e) {\n // ignore\n }\n}\nvar userAgent = false || \"\";\nvar cacheKey = \"ally-supports-cache\";\nvar cache = readLocalStorage(cacheKey);\n// update the cache if ally or the user agent changed (newer version, etc)\nif (cache.userAgent !== userAgent || cache.version !== version$1) {\n cache = {};\n}\ncache.userAgent = userAgent;\ncache.version = version$1;\nvar cache$1 = {\n get: function get() {\n return cache;\n },\n set: function set(values) {\n Object.keys(values).forEach(function(key) {\n cache[key] = values[key];\n });\n cache.time = new Date().toISOString();\n writeLocalStorage(cacheKey, cache);\n }\n};\nfunction cssShadowPiercingDeepCombinator() {\n var combinator = void 0;\n // see https://dev.w3.org/csswg/css-scoping-1/#deep-combinator\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1117572\n // https://code.google.com/p/chromium/issues/detail?id=446051\n try {\n document.querySelector(\"html >>> :first-child\");\n combinator = \">>>\";\n } catch (noArrowArrowArrow) {\n try {\n // old syntax supported at least up to Chrome 41\n // https://code.google.com/p/chromium/issues/detail?id=446051\n document.querySelector(\"html /deep/ :first-child\");\n combinator = \"/deep/\";\n } catch (noDeep) {\n combinator = \"\";\n }\n }\n return combinator;\n}\nvar gif = \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaImgTabindex = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\">' + '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" src=\"' + gif + '\">';\n return element.querySelector(\"area\");\n }\n};\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaTabindex = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\">' + '<area href=\"#void\" tabindex=\"-1\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" alt=\"\" src=\"' + gif + '\">';\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n var focus = element.querySelector(\"area\");\n focus.focus();\n return _document.activeElement === focus;\n }\n};\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaWithoutHref = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-area-href-test\">' + '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-area-href-test\" alt=\"\" src=\"' + gif + '\">';\n return element.querySelector(\"area\");\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n return _document.activeElement === focusTarget;\n }\n};\nvar focusAudioWithoutControls = {\n name: \"can-focus-audio-without-controls\",\n element: \"audio\",\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute(\"src\", gif);\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\nvar invalidGif = \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ\";\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusBrokenImageMap = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"broken-image-map-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#broken-image-map-test\" alt=\"\" src=\"' + invalidGif + '\">';\n return element.querySelector(\"area\");\n }\n};\n// Children of focusable elements with display:flex are focusable in IE10-11\nvar focusChildrenOfFocusableFlexbox = {\n element: \"div\",\n mutate: function mutate(element) {\n element.setAttribute(\"tabindex\", \"-1\");\n element.setAttribute(\"style\", \"display: -webkit-flex; display: -ms-flexbox; display: flex;\");\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n return element.querySelector(\"span\");\n }\n};\n// fieldset[tabindex=0][disabled] should not be focusable, but Blink and WebKit disagree\n// @specification https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\n// @browser-issue Chromium https://crbug.com/453847\n// @browser-issue WebKit https://bugs.webkit.org/show_bug.cgi?id=141086\nvar focusFieldsetDisabled = {\n element: \"fieldset\",\n mutate: function mutate(element) {\n element.setAttribute(\"tabindex\", 0);\n element.setAttribute(\"disabled\", \"disabled\");\n }\n};\nvar focusFieldset = {\n element: \"fieldset\",\n mutate: function mutate(element) {\n element.innerHTML = \"<legend>legend</legend><p>content</p>\";\n }\n};\n// elements with display:flex are focusable in IE10-11\nvar focusFlexboxContainer = {\n element: \"span\",\n mutate: function mutate(element) {\n element.setAttribute(\"style\", \"display: -webkit-flex; display: -ms-flexbox; display: flex;\");\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n }\n};\n// form[tabindex=0][disabled] should be focusable as the\n// specification doesn't know the disabled attribute on the form element\n// @specification https://www.w3.org/TR/html5/forms.html#the-form-element\nvar focusFormDisabled = {\n element: \"form\",\n mutate: function mutate(element) {\n element.setAttribute(\"tabindex\", 0);\n element.setAttribute(\"disabled\", \"disabled\");\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// fixes https://github.com/medialize/ally.js/issues/20\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-ismap\nvar focusImgIsmap = {\n element: \"a\",\n mutate: function mutate(element) {\n element.href = \"#void\";\n element.innerHTML = '<img ismap src=\"' + gif + '\" alt=\"\">';\n return element.querySelector(\"img\");\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusImgUsemapTabindex = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" ' + 'src=\"' + gif + '\">';\n return element.querySelector(\"img\");\n }\n};\nvar focusInHiddenIframe = {\n element: function element(wrapper, _document) {\n var iframe = _document.createElement(\"iframe\");\n // iframe must be part of the DOM before accessing the contentWindow is possible\n wrapper.appendChild(iframe);\n // create the iframe's default document (<html><head></head><body></body></html>)\n var iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.close();\n return iframe;\n },\n mutate: function mutate(iframe) {\n iframe.style.visibility = \"hidden\";\n var iframeDocument = iframe.contentWindow.document;\n var input = iframeDocument.createElement(\"input\");\n iframeDocument.body.appendChild(input);\n return input;\n },\n validate: function validate(iframe) {\n var iframeDocument = iframe.contentWindow.document;\n var focus = iframeDocument.querySelector(\"input\");\n return iframeDocument.activeElement === focus;\n }\n};\nvar result = !platform.is.WEBKIT;\nfunction focusInZeroDimensionObject() {\n return result;\n}\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusInvalidTabindex = {\n element: \"div\",\n mutate: function mutate(element) {\n element.setAttribute(\"tabindex\", \"invalid-value\");\n }\n};\nvar focusLabelTabindex = {\n element: \"label\",\n mutate: function mutate(element) {\n element.setAttribute(\"tabindex\", \"-1\");\n },\n validate: function validate(element, focusTarget, _document) {\n // force layout in Chrome 49, otherwise the element won't be focusable\n /* eslint-disable no-unused-vars */ var variableToPreventDeadCodeElimination = element.offsetHeight;\n /* eslint-enable no-unused-vars */ element.focus();\n return _document.activeElement === element;\n }\n};\nvar svg = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtb\" + \"G5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ic3ZnIj48dGV4dCB4PSIxMCIgeT0iMjAiIGlkPSJ\" + \"zdmctbGluay10ZXh0Ij50ZXh0PC90ZXh0Pjwvc3ZnPg==\";\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvgHidden = {\n element: \"object\",\n mutate: function mutate(element) {\n element.setAttribute(\"type\", \"image/svg+xml\");\n element.setAttribute(\"data\", svg);\n element.setAttribute(\"width\", \"200\");\n element.setAttribute(\"height\", \"50\");\n element.style.visibility = \"hidden\";\n }\n};\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvg = {\n name: \"can-focus-object-svg\",\n element: \"object\",\n mutate: function mutate(element) {\n element.setAttribute(\"type\", \"image/svg+xml\");\n element.setAttribute(\"data\", svg);\n element.setAttribute(\"width\", \"200\");\n element.setAttribute(\"height\", \"50\");\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // Firefox seems to be handling the object creation asynchronously and thereby produces a false negative test result.\n // Because we know Firefox is able to focus object elements referencing SVGs, we simply cheat by sniffing the user agent string\n return true;\n }\n return _document.activeElement === element;\n }\n};\n// Every Environment except IE9 considers SWF objects focusable\nvar result$1 = !platform.is.IE9;\nfunction focusObjectSwf() {\n return result$1;\n}\nvar focusRedirectImgUsemap = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"focus-redirect-img-usemap\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#focus-redirect-img-usemap\" alt=\"\" ' + 'src=\"' + gif + '\">';\n // focus the <img>, not the <div>\n return element.querySelector(\"img\");\n },\n validate: function validate(element, focusTarget, _document) {\n var target = element.querySelector(\"area\");\n return _document.activeElement === target;\n }\n};\n// see https://jsbin.com/nenirisage/edit?html,js,console,output\nvar focusRedirectLegend = {\n element: \"fieldset\",\n mutate: function mutate(element) {\n element.innerHTML = '<legend>legend</legend><input tabindex=\"-1\"><input tabindex=\"0\">';\n // take care of focus in validate();\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n var focusable = element.querySelector('input[tabindex=\"-1\"]');\n var tabbable = element.querySelector('input[tabindex=\"0\"]');\n // Firefox requires this test to focus the <fieldset> first, while this is not necessary in\n // https://jsbin.com/nenirisage/edit?html,js,console,output\n element.focus();\n element.querySelector(\"legend\").focus();\n return _document.activeElement === focusable && \"focusable\" || _document.activeElement === tabbable && \"tabbable\" || \"\";\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollBody = {\n element: \"div\",\n mutate: function mutate(element) {\n element.setAttribute(\"style\", \"width: 100px; height: 50px; overflow: auto;\");\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n return element.querySelector(\"div\");\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainerWithoutOverflow = {\n element: \"div\",\n mutate: function mutate(element) {\n element.setAttribute(\"style\", \"width: 100px; height: 50px;\");\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainer = {\n element: \"div\",\n mutate: function mutate(element) {\n element.setAttribute(\"style\", \"width: 100px; height: 50px; overflow: auto;\");\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\nvar focusSummary = {\n element: \"details\",\n mutate: function mutate(element) {\n element.innerHTML = \"<summary>foo</summary><p>content</p>\";\n return element.firstElementChild;\n }\n};\nfunction makeFocusableForeignObject() {\n // Constructs <foreignObject width=\"30\" height=\"30\"><input type=\"text\"/></foreignObject>\n // without raising a Trusted Types violation\n var foreignObject = document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\");\n foreignObject.width.baseVal.value = 30;\n foreignObject.height.baseVal.value = 30;\n foreignObject.appendChild(document.createElement(\"input\"));\n foreignObject.lastChild.type = \"text\";\n return foreignObject;\n}\nfunction focusSvgForeignObjectHack(element) {\n // Edge13, Edge14: foreignObject focus hack\n // https://jsbin.com/kunehinugi/edit?html,js,output\n // https://jsbin.com/fajagi/3/edit?html,js,output\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === \"svg\";\n if (!isSvgElement) {\n return false;\n }\n // inject and focus an <input> element into the SVG element to receive focus\n var foreignObject = makeFocusableForeignObject();\n element.appendChild(foreignObject);\n var input = foreignObject.querySelector(\"input\");\n input.focus();\n // upon disabling the activeElement, IE and Edge\n // will not shift focus to <body> like all the other\n // browsers, but instead find the first focusable\n // ancestor and shift focus to that\n input.disabled = true;\n // clean up\n element.removeChild(foreignObject);\n return true;\n}\nfunction generate(element) {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' + element + \"</svg>\";\n}\nfunction focus(element) {\n if (element.focus) {\n return;\n }\n try {\n HTMLElement.prototype.focus.call(element);\n } catch (e) {\n focusSvgForeignObjectHack(element);\n }\n}\nfunction validate(element, focusTarget, _document) {\n focus(focusTarget);\n return _document.activeElement === focusTarget;\n}\nvar focusSvgFocusableAttribute = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = generate('<text focusable=\"true\">a</text>');\n return element.querySelector(\"text\");\n },\n validate: validate\n};\nvar focusSvgTabindexAttribute = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"0\">a</text>');\n return element.querySelector(\"text\");\n },\n validate: validate\n};\nvar focusSvgNegativeTabindexAttribute = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"-1\">a</text>');\n return element.querySelector(\"text\");\n },\n validate: validate\n};\nvar focusSvgUseTabindex = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = generate([\n '<g id=\"ally-test-target\"><a xlink:href=\"#void\"><text>link</text></a></g>',\n '<use xlink:href=\"#ally-test-target\" x=\"0\" y=\"0\" tabindex=\"-1\" />'\n ].join(\"\"));\n return element.querySelector(\"use\");\n },\n validate: validate\n};\nvar focusSvgForeignobjectTabindex = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = generate('<foreignObject tabindex=\"-1\"><input type=\"text\" /></foreignObject>');\n // Safari 8's quersSelector() can't identify foreignObject, but getElementyByTagName() can\n return element.querySelector(\"foreignObject\") || element.getElementsByTagName(\"foreignObject\")[0];\n },\n validate: validate\n};\n// Firefox seems to be handling the SVG-document-in-iframe creation asynchronously\n// and thereby produces a false negative test result. Thus the test is pointless\n// and we resort to UA sniffing once again.\n// see http://jsbin.com/vunadohoko/1/edit?js,console,output\nvar result$2 = Boolean(platform.is.GECKO && typeof SVGElement !== \"undefined\" && SVGElement.prototype.focus);\nfunction focusSvgInIframe() {\n return result$2;\n}\nvar focusSvg = {\n element: \"div\",\n mutate: function mutate(element) {\n element.innerHTML = generate(\"\");\n return element.firstChild;\n },\n validate: validate\n};\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusTabindexTrailingCharacters = {\n element: \"div\",\n mutate: function mutate(element) {\n element.setAttribute(\"tabindex\", \"3x\");\n }\n};\nvar focusTable = {\n element: \"table\",\n mutate: function mutate(element, wrapper, _document) {\n // IE9 has a problem replacing TBODY contents with innerHTML.\n // https://stackoverflow.com/a/8097055/515124\n // element.innerHTML = '<tr><td>cell</td></tr>';\n var fragment = _document.createDocumentFragment();\n fragment.innerHTML = \"<tr><td>cell</td></tr>\";\n element.appendChild(fragment);\n }\n};\nvar focusVideoWithoutControls = {\n element: \"video\",\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute(\"src\", gif);\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\n// https://jsbin.com/vafaba/3/edit?html,js,console,output\nvar result$3 = platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE;\nfunction tabsequenceAreaAtImgPosition() {\n return result$3;\n}\nvar testCallbacks = {\n cssShadowPiercingDeepCombinator: cssShadowPiercingDeepCombinator,\n focusInZeroDimensionObject: focusInZeroDimensionObject,\n focusObjectSwf: focusObjectSwf,\n focusSvgInIframe: focusSvgInIframe,\n tabsequenceAreaAtImgPosition: tabsequenceAreaAtImgPosition\n};\nvar testDescriptions = {\n focusAreaImgTabindex: focusAreaImgTabindex,\n focusAreaTabindex: focusAreaTabindex,\n focusAreaWithoutHref: focusAreaWithoutHref,\n focusAudioWithoutControls: focusAudioWithoutControls,\n focusBrokenImageMap: focusBrokenImageMap,\n focusChildrenOfFocusableFlexbox: focusChildrenOfFocusableFlexbox,\n focusFieldsetDisabled: focusFieldsetDisabled,\n focusFieldset: focusFieldset,\n focusFlexboxContainer: focusFlexboxContainer,\n focusFormDisabled: focusFormDisabled,\n focusImgIsmap: focusImgIsmap,\n focusImgUsemapTabindex: focusImgUsemapTabindex,\n focusInHiddenIframe: focusInHiddenIframe,\n focusInvalidTabindex: focusInvalidTabindex,\n focusLabelTabindex: focusLabelTabindex,\n focusObjectSvg: focusObjectSvg,\n focusObjectSvgHidden: focusObjectSvgHidden,\n focusRedirectImgUsemap: focusRedirectImgUsemap,\n focusRedirectLegend: focusRedirectLegend,\n focusScrollBody: focusScrollBody,\n focusScrollContainerWithoutOverflow: focusScrollContainerWithoutOverflow,\n focusScrollContainer: focusScrollContainer,\n focusSummary: focusSummary,\n focusSvgFocusableAttribute: focusSvgFocusableAttribute,\n focusSvgTabindexAttribute: focusSvgTabindexAttribute,\n focusSvgNegativeTabindexAttribute: focusSvgNegativeTabindexAttribute,\n focusSvgUseTabindex: focusSvgUseTabindex,\n focusSvgForeignobjectTabindex: focusSvgForeignobjectTabindex,\n focusSvg: focusSvg,\n focusTabindexTrailingCharacters: focusTabindexTrailingCharacters,\n focusTable: focusTable,\n focusVideoWithoutControls: focusVideoWithoutControls\n};\nfunction executeTests() {\n var results = detectFocus(testDescriptions);\n Object.keys(testCallbacks).forEach(function(key) {\n results[key] = testCallbacks[key]();\n });\n return results;\n}\nvar supportsCache = null;\nfunction _supports() {\n if (supportsCache) {\n return supportsCache;\n }\n supportsCache = cache$1.get();\n if (!supportsCache.time) {\n cache$1.set(executeTests());\n supportsCache = cache$1.get();\n }\n return supportsCache;\n}\nvar supports = void 0;\n// https://www.w3.org/TR/html5/infrastructure.html#rules-for-parsing-integers\n// NOTE: all browsers agree to allow trailing spaces as well\nvar validIntegerPatternNoTrailing = /^\\s*(-|\\+)?[0-9]+\\s*$/;\nvar validIntegerPatternWithTrailing = /^\\s*(-|\\+)?[0-9]+.*$/;\nfunction isValidTabindex(context) {\n if (!supports) {\n supports = _supports();\n }\n var validIntegerPattern = supports.focusTabindexTrailingCharacters ? validIntegerPatternWithTrailing : validIntegerPatternNoTrailing;\n var element = contextToElement({\n label: \"is/valid-tabindex\",\n resolveDocument: true,\n context: context\n });\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute(\"tabindex\");\n var hasTabIndex = element.hasAttribute(\"tabIndex\");\n if (!hasTabindex && !hasTabIndex) {\n return false;\n }\n // older Firefox and Internet Explorer don't support tabindex on SVG elements\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === \"svg\";\n if (isSvgElement && !supports.focusSvgTabindexAttribute) {\n return false;\n }\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n if (supports.focusInvalidTabindex) {\n return true;\n }\n // an element matches the tabindex selector even if its value is invalid\n var tabindex = element.getAttribute(hasTabindex ? \"tabindex\" : \"tabIndex\");\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n // @browser-issue Trident https://connect.microsoft.com/IE/feedback/details/1072965\n if (tabindex === \"-32768\") {\n return false;\n }\n return Boolean(tabindex && validIntegerPattern.test(tabindex));\n}\nfunction tabindexValue(element) {\n if (!isValidTabindex(element)) {\n return null;\n }\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute(\"tabindex\");\n var attributeName = hasTabindex ? \"tabindex\" : \"tabIndex\";\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n var tabindex = parseInt(element.getAttribute(attributeName), 10);\n return isNaN(tabindex) ? -1 : tabindex;\n}\n// this is a shared utility file for focus-relevant.js and tabbable.js\n// separate testing of this file's functions is not necessary,\n// as they're implicitly tested by way of the consumers\nfunction isUserModifyWritable(style) {\n // https://www.w3.org/TR/1999/WD-css3-userint-19990916#user-modify\n // https://github.com/medialize/ally.js/issues/17\n var userModify = style.webkitUserModify || \"\";\n return Boolean(userModify && userModify.indexOf(\"write\") !== -1);\n}\nfunction hasCssOverflowScroll(style) {\n return [\n style.getPropertyValue(\"overflow\"),\n style.getPropertyValue(\"overflow-x\"),\n style.getPropertyValue(\"overflow-y\")\n ].some(function(overflow) {\n return overflow === \"auto\" || overflow === \"scroll\";\n });\n}\nfunction hasCssDisplayFlex(style) {\n return style.display.indexOf(\"flex\") > -1;\n}\nfunction isScrollableContainer(element, nodeName, parentNodeName, parentStyle) {\n if (nodeName !== \"div\" && nodeName !== \"span\") {\n // Internet Explorer advances scrollable containers and bodies to focusable\n // only if the scrollable container is <div> or <span> - this does *not*\n // happen for <section>, <article>, …\n return false;\n }\n if (parentNodeName && parentNodeName !== \"div\" && parentNodeName !== \"span\" && !hasCssOverflowScroll(parentStyle)) {\n return false;\n }\n return element.offsetHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth;\n}\nvar supports$1 = void 0;\nfunction isFocusRelevantRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n flexbox: false,\n scrollable: false,\n shadow: false\n } : _ref$except;\n if (!supports$1) {\n supports$1 = _supports();\n }\n var element = contextToElement({\n label: \"is/focus-relevant\",\n resolveDocument: true,\n context: context\n });\n if (!except.shadow && element.shadowRoot) {\n // a ShadowDOM host receives focus when the focus moves to its content\n return true;\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === \"input\" && element.type === \"hidden\") {\n // input[type=\"hidden\"] supports.cannot be focused\n return false;\n }\n if (nodeName === \"input\" || nodeName === \"select\" || nodeName === \"button\" || nodeName === \"textarea\") {\n return true;\n }\n if (nodeName === \"legend\" && supports$1.focusRedirectLegend) {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === \"label\") {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === \"area\") {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === \"a\" && element.hasAttribute(\"href\")) {\n return true;\n }\n if (nodeName === \"object\" && element.hasAttribute(\"usemap\")) {\n // object[usemap] is not focusable in any browser\n return false;\n }\n if (nodeName === \"object\") {\n var svgType = element.getAttribute(\"type\");\n if (!supports$1.focusObjectSvg && svgType === \"image/svg+xml\") {\n // object[type=\"image/svg+xml\"] is not focusable in Internet Explorer\n return false;\n } else if (!supports$1.focusObjectSwf && svgType === \"application/x-shockwave-flash\") {\n // object[type=\"application/x-shockwave-flash\"] is not focusable in Internet Explorer 9\n return false;\n }\n }\n if (nodeName === \"iframe\" || nodeName === \"object\") {\n // browsing context containers\n return true;\n }\n if (nodeName === \"embed\" || nodeName === \"keygen\") {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n if (element.hasAttribute(\"contenteditable\")) {\n // also see CSS property user-modify below\n return true;\n }\n if (nodeName === \"audio\" && (supports$1.focusAudioWithoutControls || element.hasAttribute(\"controls\"))) {\n return true;\n }\n if (nodeName === \"video\" && (supports$1.focusVideoWithoutControls || element.hasAttribute(\"controls\"))) {\n return true;\n }\n if (supports$1.focusSummary && nodeName === \"summary\") {\n return true;\n }\n var validTabindex = isValidTabindex(element);\n if (nodeName === \"img\" && element.hasAttribute(\"usemap\")) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return validTabindex && supports$1.focusImgUsemapTabindex || supports$1.focusRedirectImgUsemap;\n }\n if (supports$1.focusTable && (nodeName === \"table\" || nodeName === \"td\")) {\n // IE10-11 supports.can focus <table> and <td>\n return true;\n }\n if (supports$1.focusFieldset && nodeName === \"fieldset\") {\n // IE10-11 supports.can focus <fieldset>\n return true;\n }\n var isSvgElement = nodeName === \"svg\";\n var isSvgContent = element.ownerSVGElement;\n var focusableAttribute = element.getAttribute(\"focusable\");\n var tabindex = tabindexValue(element);\n if (nodeName === \"use\" && tabindex !== null && !supports$1.focusSvgUseTabindex) {\n // <use> cannot be made focusable by adding a tabindex attribute anywhere but Blink and WebKit\n return false;\n }\n if (nodeName === \"foreignobject\") {\n // <use> can only be made focusable in Blink and WebKit\n return tabindex !== null && supports$1.focusSvgForeignobjectTabindex;\n }\n if (elementMatches(element, \"svg a\") && element.hasAttribute(\"xlink:href\")) {\n return true;\n }\n if ((isSvgElement || isSvgContent) && element.focus && !supports$1.focusSvgNegativeTabindexAttribute && tabindex < 0) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return false;\n }\n if (isSvgElement) {\n return validTabindex || supports$1.focusSvg || supports$1.focusSvgInIframe || // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n Boolean(supports$1.focusSvgFocusableAttribute && focusableAttribute && focusableAttribute === \"true\");\n }\n if (isSvgContent) {\n if (supports$1.focusSvgTabindexAttribute && validTabindex) {\n return true;\n }\n if (supports$1.focusSvgFocusableAttribute) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n return focusableAttribute === \"true\";\n }\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n if (validTabindex) {\n return true;\n }\n var style = window.getComputedStyle(element, null);\n if (isUserModifyWritable(style)) {\n return true;\n }\n if (supports$1.focusImgIsmap && nodeName === \"img\" && element.hasAttribute(\"ismap\")) {\n // IE10-11 considers the <img> in <a href><img ismap> focusable\n // https://github.com/medialize/ally.js/issues/20\n var hasLinkParent = getParents({\n context: element\n }).some(function(parent) {\n return parent.nodeName.toLowerCase() === \"a\" && parent.hasAttribute(\"href\");\n });\n if (hasLinkParent) {\n return true;\n }\n }\n // https://github.com/medialize/ally.js/issues/21\n if (!except.scrollable && supports$1.focusScrollContainer) {\n if (supports$1.focusScrollContainerWithoutOverflow) {\n // Internet Explorer does will consider the scrollable area focusable\n // if the element is a <div> or a <span> and it is in fact scrollable,\n // regardless of the CSS overflow property\n if (isScrollableContainer(element, nodeName)) {\n return true;\n }\n } else if (hasCssOverflowScroll(style)) {\n // Firefox requires proper overflow setting, IE does not necessarily\n // https://developer.mozilla.org/docs/Web/CSS/overflow\n return true;\n }\n }\n if (!except.flexbox && supports$1.focusFlexboxContainer && hasCssDisplayFlex(style)) {\n // elements with display:flex are focusable in IE10-11\n return true;\n }\n var parent = element.parentElement;\n if (!except.scrollable && parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n if (supports$1.focusScrollBody && isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n // scrollable bodies are focusable Internet Explorer\n // https://github.com/medialize/ally.js/issues/21\n return true;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11\n if (supports$1.focusChildrenOfFocusableFlexbox) {\n if (hasCssDisplayFlex(parentStyle)) {\n return true;\n }\n }\n }\n // NOTE: elements marked as inert are not focusable,\n // but that property is not exposed to the DOM\n // https://www.w3.org/TR/html5/editing.html#inert\n return false;\n}\n// bind exceptions to an iterator callback\nisFocusRelevantRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusRelevant = function isFocusRelevant(context) {\n return isFocusRelevantRules({\n context: context,\n except: except\n });\n };\n isFocusRelevant.rules = isFocusRelevantRules;\n return isFocusRelevant;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusRelevant = isFocusRelevantRules.except({});\nfunction findIndex(array, callback) {\n // attempt to use native or polyfilled Array#findIndex first\n if (array.findIndex) {\n return array.findIndex(callback);\n }\n var length = array.length;\n // shortcut if the array is empty\n if (length === 0) {\n return -1;\n }\n // otherwise loop over array\n for(var i = 0; i < length; i++){\n if (callback(array[i], i, array)) {\n return i;\n }\n }\n return -1;\n}\nfunction getContentDocument(node) {\n try {\n // works on <object> and <iframe>\n return node.contentDocument || // works on <object> and <iframe>\n node.contentWindow && node.contentWindow.document || // works on <object> and <iframe> that contain SVG\n node.getSVGDocument && node.getSVGDocument() || null;\n } catch (e) {\n // SecurityError: Failed to read the 'contentDocument' property from 'HTMLObjectElement'\n // also IE may throw member not found exception e.g. on <object type=\"image/png\">\n return null;\n }\n}\nfunction getWindow(node) {\n var _document = getDocument(node);\n return _document.defaultView || window;\n}\nvar shadowPrefix = void 0;\nfunction selectInShadows(selector) {\n if (typeof shadowPrefix !== \"string\") {\n var operator = cssShadowPiercingDeepCombinator();\n if (operator) {\n shadowPrefix = \", html \" + operator + \" \";\n }\n }\n if (!shadowPrefix) {\n return selector;\n }\n return selector + shadowPrefix + selector.replace(/\\s*,\\s*/g, \",\").split(\",\").join(shadowPrefix);\n}\nvar selector = void 0;\nfunction findDocumentHostElement(_window) {\n if (!selector) {\n selector = selectInShadows(\"object, iframe\");\n }\n if (_window._frameElement !== undefined) {\n return _window._frameElement;\n }\n _window._frameElement = null;\n var potentialHosts = _window.parent.document.querySelectorAll(selector);\n [].some.call(potentialHosts, function(element) {\n var _document = getContentDocument(element);\n if (_document !== _window.document) {\n return false;\n }\n _window._frameElement = element;\n return true;\n });\n return _window._frameElement;\n}\nfunction getFrameElement(element) {\n var _window = getWindow(element);\n if (!_window.parent || _window.parent === _window) {\n // if there is no parent browsing context,\n // we're not going to get a frameElement either way\n return null;\n }\n try {\n // see https://developer.mozilla.org/docs/Web/API/Window/frameElement\n // does not work within <embed> anywhere, and not within in <object> in IE\n return _window.frameElement || findDocumentHostElement(_window);\n } catch (e) {\n return null;\n }\n}\n// https://www.w3.org/TR/html5/rendering.html#being-rendered\n// <area> is not rendered, but we *consider* it visible to simplfiy this function's usage\nvar notRenderedElementsPattern = /^(area)$/;\nfunction computedStyle(element, property) {\n return window.getComputedStyle(element, null).getPropertyValue(property);\n}\nfunction notDisplayed(_path) {\n return _path.some(function(element) {\n // display:none is not visible (optimized away at layout)\n return computedStyle(element, \"display\") === \"none\";\n });\n}\nfunction notVisible(_path) {\n // https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L109-L114\n // NOTE: a nested element can reverse visibility:hidden|collapse by explicitly setting visibility:visible\n // NOTE: visibility can be [\"\", \"visible\", \"hidden\", \"collapse\"]\n var hidden = findIndex(_path, function(element) {\n var visibility = computedStyle(element, \"visibility\");\n return visibility === \"hidden\" || visibility === \"collapse\";\n });\n if (hidden === -1) {\n // there is no hidden element\n return false;\n }\n var visible = findIndex(_path, function(element) {\n return computedStyle(element, \"visibility\") === \"visible\";\n });\n if (visible === -1) {\n // there is no visible element (but a hidden element)\n return true;\n }\n if (hidden < visible) {\n // there is a hidden element and it's closer than the first visible element\n return true;\n }\n // there may be a hidden element, but the closest element is visible\n return false;\n}\nfunction collapsedParent(_path) {\n var offset = 1;\n if (_path[0].nodeName.toLowerCase() === \"summary\") {\n offset = 2;\n }\n return _path.slice(offset).some(function(element) {\n // \"content children\" of a closed details element are not visible\n return element.nodeName.toLowerCase() === \"details\" && element.open === false;\n });\n}\nfunction isVisibleRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n notRendered: false,\n cssDisplay: false,\n cssVisibility: false,\n detailsElement: false,\n browsingContext: false\n } : _ref$except;\n var element = contextToElement({\n label: \"is/visible\",\n resolveDocument: true,\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (!except.notRendered && notRenderedElementsPattern.test(nodeName)) {\n return true;\n }\n var _path = getParents({\n context: element\n });\n // in Internet Explorer <audio> has a default display: none, where others have display: inline\n // but IE allows focusing <audio style=\"display:none\">, but not <div display:none><audio>\n // this is irrelevant to other browsers, as the controls attribute is required to make <audio> focusable\n var isAudioWithoutControls = nodeName === \"audio\" && !element.hasAttribute(\"controls\");\n if (!except.cssDisplay && notDisplayed(isAudioWithoutControls ? _path.slice(1) : _path)) {\n return false;\n }\n if (!except.cssVisibility && notVisible(_path)) {\n return false;\n }\n if (!except.detailsElement && collapsedParent(_path)) {\n return false;\n }\n if (!except.browsingContext) {\n // elements within a browsing context are affected by the\n // browsing context host element's visibility and tabindex\n var frameElement = getFrameElement(element);\n var _isVisible = isVisibleRules.except(except);\n if (frameElement && !_isVisible(frameElement)) {\n return false;\n }\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisVisibleRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isVisible = function isVisible(context) {\n return isVisibleRules({\n context: context,\n except: except\n });\n };\n isVisible.rules = isVisibleRules;\n return isVisible;\n};\n// provide isVisible(context) as default iterator callback\nvar isVisible = isVisibleRules.except({});\nfunction getMapByName(name, _document) {\n // apparently getElementsByName() also considers id attribute in IE & opera\n // https://developer.mozilla.org/docs/Web/API/Document/getElementsByName\n var map = _document.querySelector('map[name=\"' + next_dist_compiled_css_escape__WEBPACK_IMPORTED_MODULE_1___default()(name) + '\"]');\n return map || null;\n}\nfunction getImageOfArea(element) {\n var map = element.parentElement;\n if (!map.name || map.nodeName.toLowerCase() !== \"map\") {\n return null;\n }\n // NOTE: image maps can also be applied to <object> with image content,\n // but no browser supports this at the moment\n // HTML5 specifies HTMLMapElement.images to be an HTMLCollection of all\n // <img> and <object> referencing the <map> element, but no browser implements this\n // https://www.w3.org/TR/html5/embedded-content-0.html#the-map-element\n // https://developer.mozilla.org/docs/Web/API/HTMLMapElement\n // the image must be valid and loaded for the map to take effect\n var _document = getDocument(element);\n return _document.querySelector('img[usemap=\"#' + next_dist_compiled_css_escape__WEBPACK_IMPORTED_MODULE_1___default()(map.name) + '\"]') || null;\n}\nvar supports$2 = void 0;\n// https://developer.mozilla.org/docs/Web/HTML/Element/map\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\n// https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L88-L107\nfunction isValidArea(context) {\n if (!supports$2) {\n supports$2 = _supports();\n }\n var element = contextToElement({\n label: \"is/valid-area\",\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== \"area\") {\n return false;\n }\n var hasTabindex = element.hasAttribute(\"tabindex\");\n if (!supports$2.focusAreaTabindex && hasTabindex) {\n // Blink and WebKit do not consider <area tabindex=\"-1\" href=\"#void\"> focusable\n return false;\n }\n var img = getImageOfArea(element);\n if (!img || !isVisible(img)) {\n return false;\n }\n // Firefox only allows fully loaded images to reference image maps\n // https://stereochro.me/ideas/detecting-broken-images-js\n if (!supports$2.focusBrokenImageMap && (!img.complete || !img.naturalHeight || img.offsetWidth <= 0 || img.offsetHeight <= 0)) {\n return false;\n }\n // Firefox supports.can focus area elements even if they don't have an href attribute\n if (!supports$2.focusAreaWithoutHref && !element.href) {\n // Internet explorer supports.can focus area elements without href if either\n // the area element or the image element has a tabindex attribute\n return supports$2.focusAreaTabindex && hasTabindex || supports$2.focusAreaImgTabindex && img.hasAttribute(\"tabindex\");\n }\n // https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\n var childOfInteractive = getParents({\n context: img\n }).slice(1).some(function(_element) {\n var name = _element.nodeName.toLowerCase();\n return name === \"button\" || name === \"a\";\n });\n if (childOfInteractive) {\n return false;\n }\n return true;\n}\nvar supports$3 = void 0;\n// https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\nvar disabledElementsPattern = void 0;\nvar disabledElements = {\n input: true,\n select: true,\n textarea: true,\n button: true,\n fieldset: true,\n form: true\n};\nfunction isNativeDisabledSupported(context) {\n if (!supports$3) {\n supports$3 = _supports();\n if (supports$3.focusFieldsetDisabled) {\n delete disabledElements.fieldset;\n }\n if (supports$3.focusFormDisabled) {\n delete disabledElements.form;\n }\n disabledElementsPattern = new RegExp(\"^(\" + Object.keys(disabledElements).join(\"|\") + \")$\");\n }\n var element = contextToElement({\n label: \"is/native-disabled-supported\",\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n return Boolean(disabledElementsPattern.test(nodeName));\n}\nvar supports$4 = void 0;\nfunction isDisabledFieldset(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === \"fieldset\" && element.disabled;\n}\nfunction isDisabledForm(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === \"form\" && element.disabled;\n}\nfunction isDisabled(context) {\n if (!supports$4) {\n supports$4 = _supports();\n }\n var element = contextToElement({\n label: \"is/disabled\",\n context: context\n });\n if (element.hasAttribute(\"data-ally-disabled\")) {\n // treat ally's element/disabled like the DOM native element.disabled\n return true;\n }\n if (!isNativeDisabledSupported(element)) {\n // non-form elements do not support the disabled attribute\n return false;\n }\n if (element.disabled) {\n // the element itself is disabled\n return true;\n }\n var parents = getParents({\n context: element\n });\n if (parents.some(isDisabledFieldset)) {\n // a parental <fieldset> is disabld and inherits the state onto this element\n return true;\n }\n if (!supports$4.focusFormDisabled && parents.some(isDisabledForm)) {\n // a parental <form> is disabld and inherits the state onto this element\n return true;\n }\n return false;\n}\nfunction isOnlyTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n onlyFocusableBrowsingContext: false,\n visible: false\n } : _ref$except;\n var element = contextToElement({\n label: \"is/only-tabbable\",\n resolveDocument: true,\n context: context\n });\n if (!except.visible && !isVisible(element)) {\n return false;\n }\n if (!except.onlyFocusableBrowsingContext && (platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE)) {\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (tabindexValue(frameElement) < 0) {\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var tabindex = tabindexValue(element);\n if (nodeName === \"label\" && platform.is.GECKO) {\n // Firefox cannot focus, but tab to: label[tabindex=0]\n return tabindex !== null && tabindex >= 0;\n }\n // SVG Elements were keyboard focusable but not script focusable before Firefox 51.\n // Firefox 51 added the focus management DOM API (.focus and .blur) to SVGElement,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=778654\n if (platform.is.GECKO && element.ownerSVGElement && !element.focus) {\n if (nodeName === \"a\" && element.hasAttribute(\"xlink:href\")) {\n // any focusable child of <svg> cannot be focused, but tabbed to\n if (platform.is.GECKO) {\n return true;\n }\n }\n }\n return false;\n}\n// bind exceptions to an iterator callback\nisOnlyTabbableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isOnlyTabbable = function isOnlyTabbable(context) {\n return isOnlyTabbableRules({\n context: context,\n except: except\n });\n };\n isOnlyTabbable.rules = isOnlyTabbableRules;\n return isOnlyTabbable;\n};\n// provide isOnlyTabbable(context) as default iterator callback\nvar isOnlyTabbable = isOnlyTabbableRules.except({});\nvar supports$5 = void 0;\nfunction isOnlyFocusRelevant(element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === \"embed\" || nodeName === \"keygen\") {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n var _tabindex = tabindexValue(element);\n if (element.shadowRoot && _tabindex === null) {\n // ShadowDOM host elements *may* receive focus\n // even though they are not considered focuable\n return true;\n }\n if (nodeName === \"label\") {\n // <label tabindex=\"0\"> is only tabbable in Firefox, not script-focusable\n // there's no way to make an element focusable other than by adding a tabindex,\n // and focus behavior of the label element seems hard-wired to ignore tabindex\n // in some browsers (like Gecko, Blink and WebKit)\n return !supports$5.focusLabelTabindex || _tabindex === null;\n }\n if (nodeName === \"legend\") {\n return _tabindex === null;\n }\n if (supports$5.focusSvgFocusableAttribute && (element.ownerSVGElement || nodeName === \"svg\")) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n var focusableAttribute = element.getAttribute(\"focusable\");\n return focusableAttribute && focusableAttribute === \"false\";\n }\n if (nodeName === \"img\" && element.hasAttribute(\"usemap\")) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return _tabindex === null || !supports$5.focusImgUsemapTabindex;\n }\n if (nodeName === \"area\") {\n // all <area>s are considered relevant,\n // but only the valid <area>s are focusable\n return !isValidArea(element);\n }\n return false;\n}\nfunction isFocusableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n disabled: false,\n visible: false,\n onlyTabbable: false\n } : _ref$except;\n if (!supports$5) {\n supports$5 = _supports();\n }\n var _isOnlyTabbable = isOnlyTabbable.rules.except({\n onlyFocusableBrowsingContext: true,\n visible: except.visible\n });\n var element = contextToElement({\n label: \"is/focusable\",\n resolveDocument: true,\n context: context\n });\n var focusRelevant = isFocusRelevant.rules({\n context: element,\n except: except\n });\n if (!focusRelevant || isOnlyFocusRelevant(element)) {\n return false;\n }\n if (!except.disabled && isDisabled(element)) {\n return false;\n }\n if (!except.onlyTabbable && _isOnlyTabbable(element)) {\n // some elements may be keyboard focusable, but not script focusable\n return false;\n }\n // elements that are not rendered, cannot be focused\n if (!except.visible) {\n var visibilityOptions = {\n context: element,\n except: {}\n };\n if (supports$5.focusInHiddenIframe) {\n // WebKit and Blink can focus content in hidden <iframe> and <object>\n visibilityOptions.except.browsingContext = true;\n }\n if (supports$5.focusObjectSvgHidden) {\n // Blink allows focusing the object element, even if it has visibility: hidden;\n // @browser-issue Blink https://code.google.com/p/chromium/issues/detail?id=586191\n var _nodeName2 = element.nodeName.toLowerCase();\n if (_nodeName2 === \"object\") {\n visibilityOptions.except.cssVisibility = true;\n }\n }\n if (!isVisible.rules(visibilityOptions)) {\n return false;\n }\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n var _nodeName = frameElement.nodeName.toLowerCase();\n if (_nodeName === \"object\" && !supports$5.focusInZeroDimensionObject) {\n if (!frameElement.offsetWidth || !frameElement.offsetHeight) {\n // WebKit can not focus content in <object> if it doesn't have dimensions\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === \"svg\" && supports$5.focusSvgInIframe && !frameElement && element.getAttribute(\"tabindex\") === null) {\n return false;\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisFocusableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusable = function isFocusable(context) {\n return isFocusableRules({\n context: context,\n except: except\n });\n };\n isFocusable.rules = isFocusableRules;\n return isFocusable;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusable = isFocusableRules.except({});\nfunction createFilter(condition) {\n // see https://developer.mozilla.org/docs/Web/API/NodeFilter\n var filter = function filter(node) {\n if (node.shadowRoot) {\n // return ShadowRoot elements regardless of them being focusable,\n // so they can be walked recursively later\n return NodeFilter.FILTER_ACCEPT;\n }\n if (condition(node)) {\n // finds elements that could have been found by document.querySelectorAll()\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n };\n // IE requires a function, Browsers require {acceptNode: function}\n // see http://www.bennadel.com/blog/2607-finding-html-comment-nodes-in-the-dom-using-treewalker.htm\n filter.acceptNode = filter;\n return filter;\n}\nvar PossiblyFocusableFilter = createFilter(isFocusRelevant);\nfunction queryFocusableStrict() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!context) {\n context = document.documentElement;\n }\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var _document = getDocument(context);\n // see https://developer.mozilla.org/docs/Web/API/Document/createTreeWalker\n var walker = _document.createTreeWalker(context, NodeFilter.SHOW_ELEMENT, strategy === \"all\" ? PossiblyFocusableFilter : createFilter(_isFocusable), false);\n var list = [];\n while(walker.nextNode()){\n if (walker.currentNode.shadowRoot) {\n if (_isFocusable(walker.currentNode)) {\n list.push(walker.currentNode);\n }\n list = list.concat(queryFocusableStrict({\n context: walker.currentNode.shadowRoot,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }));\n } else {\n list.push(walker.currentNode);\n }\n }\n // add context if requested and focusable\n if (includeContext) {\n if (strategy === \"all\") {\n if (isFocusRelevant(context)) {\n list.unshift(context);\n }\n } else if (_isFocusable(context)) {\n list.unshift(context);\n }\n }\n return list;\n}\n// NOTE: this selector MUST *never* be used directly,\nvar supports$6 = void 0;\nvar selector$1 = void 0;\nfunction selector$2() {\n if (!supports$6) {\n supports$6 = _supports();\n }\n if (typeof selector$1 === \"string\") {\n return selector$1;\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n selector$1 = \"\" + // IE11 supports.can focus <table> and <td>\n (supports$6.focusTable ? \"table, td,\" : \"\") + // IE11 supports.can focus <fieldset>\n (supports$6.focusFieldset ? \"fieldset,\" : \"\") + // Namespace problems of [xlink:href] explained in https://stackoverflow.com/a/23047888/515124\n // svg a[*|href] does not match in IE9, but since we're filtering\n // through is/focusable we can include all <a> from SVG\n \"svg a,\" + // may behave as 'svg, svg *,' in chrome as *every* svg element with a focus event listener is focusable\n // navigational elements\n \"a[href],\" + // validity determined by is/valid-area.js\n \"area[href],\" + // validity determined by is/disabled.js\n \"input, select, textarea, button,\" + // browsing context containers\n \"iframe, object, embed,\" + // interactive content\n \"keygen,\" + (supports$6.focusAudioWithoutControls ? \"audio,\" : \"audio[controls],\") + (supports$6.focusVideoWithoutControls ? \"video,\" : \"video[controls],\") + (supports$6.focusSummary ? \"summary,\" : \"\") + // validity determined by is/valid-tabindex.js\n \"[tabindex],\" + // editing hosts\n \"[contenteditable]\";\n // where ShadowDOM is supported, we also want the shadowed focusable elements (via \">>>\" or \"/deep/\")\n selector$1 = selectInShadows(selector$1);\n return selector$1;\n}\nfunction queryFocusableQuick() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable;\n var _selector = selector$2();\n var elements = context.querySelectorAll(_selector);\n // the selector potentially matches more than really is focusable\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var result = [].filter.call(elements, _isFocusable);\n // add context if requested and focusable\n if (includeContext && _isFocusable(context)) {\n result.unshift(context);\n }\n return result;\n}\nfunction queryFocusable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, _ref$strategy = _ref.strategy, strategy = _ref$strategy === undefined ? \"quick\" : _ref$strategy;\n var element = contextToElement({\n label: \"query/focusable\",\n resolveDocument: true,\n defaultToDocument: true,\n context: context\n });\n var options = {\n context: element,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n };\n if (strategy === \"quick\") {\n return queryFocusableQuick(options);\n } else if (strategy === \"strict\" || strategy === \"all\") {\n return queryFocusableStrict(options);\n }\n throw new TypeError('query/focusable requires option.strategy to be one of [\"quick\", \"strict\", \"all\"]');\n}\nvar supports$7 = void 0;\n// Internet Explorer 11 considers fieldset, table, td focusable, but not tabbable\n// Internet Explorer 11 considers body to have [tabindex=0], but does not allow tabbing to it\nvar focusableElementsPattern = /^(fieldset|table|td|body)$/;\nfunction isTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n flexbox: false,\n scrollable: false,\n shadow: false,\n visible: false,\n onlyTabbable: false\n } : _ref$except;\n if (!supports$7) {\n supports$7 = _supports();\n }\n var element = contextToElement({\n label: \"is/tabbable\",\n resolveDocument: true,\n context: context\n });\n if (platform.is.BLINK && platform.is.ANDROID && platform.majorVersion > 42) {\n // External keyboard support worked fine in CHrome 42, but stopped working in Chrome 45.\n // The on-screen keyboard does not provide a way to focus the next input element (like iOS does).\n // That leaves us with no option to advance focus by keyboard, ergo nothing is tabbable (keyboard focusable).\n return false;\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only does not consider anything from another browsing context keyboard focusable\n return false;\n }\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n if (tabindexValue(frameElement) < 0) {\n return false;\n }\n if (!except.visible && (platform.is.BLINK || platform.is.WEBKIT) && !isVisible(frameElement)) {\n // Blink and WebKit consider elements in hidden browsing contexts focusable, but not tabbable\n return false;\n }\n // Webkit and Blink don't consider anything in <object> tabbable\n // Blink fixed that fixed in Chrome 54, Opera 41\n var frameNodeName = frameElement.nodeName.toLowerCase();\n if (frameNodeName === \"object\") {\n var isFixedBlink = platform.name === \"Chrome\" && platform.majorVersion >= 54 || platform.name === \"Opera\" && platform.majorVersion >= 41;\n if (platform.is.WEBKIT || platform.is.BLINK && !isFixedBlink) {\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var _tabindex = tabindexValue(element);\n var tabindex = _tabindex === null ? null : _tabindex >= 0;\n if (platform.is.EDGE && platform.majorVersion >= 14 && frameElement && element.ownerSVGElement && _tabindex < 0) {\n // Edge 14+ considers <a xlink:href=\"…\" tabindex=\"-1\"> keyboard focusable\n // if the element is in a nested browsing context\n return true;\n }\n var hasTabbableTabindexOrNone = tabindex !== false;\n var hasTabbableTabindex = _tabindex !== null && _tabindex >= 0;\n // NOTE: Firefox 31 considers [contenteditable] to have [tabindex=-1], but allows tabbing to it\n // fixed in Firefox 40 the latest - https://bugzilla.mozilla.org/show_bug.cgi?id=1185657\n if (element.hasAttribute(\"contenteditable\")) {\n // tabbing can still be disabled by explicitly providing [tabindex=\"-1\"]\n return hasTabbableTabindexOrNone;\n }\n if (focusableElementsPattern.test(nodeName) && tabindex !== true) {\n return false;\n }\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only considers a hand full of elements tabbable (keyboard focusable)\n // this holds true even with external keyboards\n var potentiallyTabbable = nodeName === \"input\" && element.type === \"text\" || element.type === \"password\" || nodeName === \"select\" || nodeName === \"textarea\" || element.hasAttribute(\"contenteditable\");\n if (!potentiallyTabbable) {\n var style = window.getComputedStyle(element, null);\n potentiallyTabbable = isUserModifyWritable(style);\n }\n if (!potentiallyTabbable) {\n return false;\n }\n }\n if (nodeName === \"use\" && _tabindex !== null) {\n if (platform.is.BLINK || platform.is.WEBKIT && platform.majorVersion === 9) {\n // In Chrome and Safari 9 the <use> element is keyboard focusable even for tabindex=\"-1\"\n return true;\n }\n }\n if (elementMatches(element, \"svg a\") && element.hasAttribute(\"xlink:href\")) {\n if (hasTabbableTabindexOrNone) {\n // in Trident and Gecko SVGElement does not handle the tabIndex property properly\n return true;\n }\n if (element.focus && !supports$7.focusSvgNegativeTabindexAttribute) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return true;\n }\n }\n if (nodeName === \"svg\" && supports$7.focusSvgInIframe && hasTabbableTabindexOrNone) {\n return true;\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n if (nodeName === \"svg\") {\n if (supports$7.focusSvg) {\n // older Internet Explorers consider <svg> keyboard focusable\n // unless they have focsable=\"false\", but then they wouldn't\n // be focusable and thus not even reach this filter\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute(\"focusable\") || hasTabbableTabindex;\n }\n if (element.ownerSVGElement) {\n if (supports$7.focusSvgTabindexAttribute && hasTabbableTabindex) {\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute(\"focusable\");\n }\n }\n if (element.tabIndex === undefined) {\n return Boolean(except.onlyTabbable);\n }\n if (nodeName === \"audio\") {\n if (!element.hasAttribute(\"controls\")) {\n // In Internet Explorer the <audio> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n } else if (platform.is.BLINK) {\n // In Chrome <audio controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === \"video\") {\n if (!element.hasAttribute(\"controls\")) {\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // In Internet Explorer and Edge the <video> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n }\n } else if (platform.is.BLINK || platform.is.GECKO) {\n // In Chrome and Firefox <video controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === \"object\") {\n if (platform.is.BLINK || platform.is.WEBKIT) {\n // In all Blink and WebKit based browsers <embed> and <object> are never keyboard focusable, even with tabindex=\"0\" set\n return false;\n }\n }\n if (nodeName === \"iframe\") {\n // In Internet Explorer all iframes are only focusable\n // In WebKit, Blink and Gecko iframes may be tabbable depending on content.\n // Since we can't reliably investigate iframe documents because of the\n // SameOriginPolicy, we're declaring everything only focusable.\n return false;\n }\n if (!except.scrollable && platform.is.GECKO) {\n // Firefox considers scrollable containers keyboard focusable,\n // even though their tabIndex property is -1\n var _style = window.getComputedStyle(element, null);\n if (hasCssOverflowScroll(_style)) {\n return hasTabbableTabindexOrNone;\n }\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // IE and Edge degrade <area> to script focusable, if the image\n // using the <map> has been given tabindex=\"-1\"\n if (nodeName === \"area\") {\n var img = getImageOfArea(element);\n if (img && tabindexValue(img) < 0) {\n return false;\n }\n }\n var _style2 = window.getComputedStyle(element, null);\n if (isUserModifyWritable(_style2)) {\n // prevent being swallowed by the overzealous isScrollableContainer() below\n return element.tabIndex >= 0;\n }\n if (!except.flexbox && hasCssDisplayFlex(_style2)) {\n if (_tabindex !== null) {\n return hasTabbableTabindex;\n }\n return isFocusRelevantWithoutFlexbox(element) && isTabbableWithoutFlexbox(element);\n }\n // IE considers scrollable containers script focusable only,\n // even though their tabIndex property is 0\n if (isScrollableContainer(element, nodeName)) {\n return false;\n }\n var parent = element.parentElement;\n if (parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n // IE considers scrollable bodies script focusable only,\n if (isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n return false;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11,\n // even though their tabIndex property suggests otherwise\n if (hasCssDisplayFlex(parentStyle)) {\n // value of tabindex takes precedence\n return hasTabbableTabindex;\n }\n }\n }\n // https://www.w3.org/WAI/PF/aria-practices/#focus_tabindex\n return element.tabIndex >= 0;\n}\n// bind exceptions to an iterator callback\nisTabbableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isTabbable = function isTabbable(context) {\n return isTabbableRules({\n context: context,\n except: except\n });\n };\n isTabbable.rules = isTabbableRules;\n return isTabbable;\n};\nvar isFocusRelevantWithoutFlexbox = isFocusRelevant.rules.except({\n flexbox: true\n});\nvar isTabbableWithoutFlexbox = isTabbableRules.except({\n flexbox: true\n});\n// provide isTabbable(context) as default iterator callback\nvar isTabbable = isTabbableRules.except({});\nfunction queryTabbable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n var _isTabbable = isTabbable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n return queryFocusable({\n context: context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }).filter(_isTabbable);\n}\n// sorts a list of elements according to their order in the DOM\nfunction compareDomPosition(a, b) {\n return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n}\nfunction sortDomOrder(elements) {\n return elements.sort(compareDomPosition);\n}\nfunction getFirstSuccessorOffset(list, target) {\n // find the first element that comes AFTER the target element\n return findIndex(list, function(element) {\n return target.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_FOLLOWING;\n });\n}\nfunction findInsertionOffsets(list, elements, resolveElement) {\n // instead of mutating the elements list directly, remember position and map\n // to inject later, when we can do this more efficiently\n var insertions = [];\n elements.forEach(function(element) {\n var replace = true;\n var offset = list.indexOf(element);\n if (offset === -1) {\n // element is not in target list\n offset = getFirstSuccessorOffset(list, element);\n replace = false;\n }\n if (offset === -1) {\n // there is no successor in the tabsequence,\n // meaning the image must be the last element\n offset = list.length;\n }\n // allow the consumer to replace the injected element\n var injections = nodeArray(resolveElement ? resolveElement(element) : element);\n if (!injections.length) {\n // we can't inject zero elements\n return;\n }\n insertions.push({\n offset: offset,\n replace: replace,\n elements: injections\n });\n });\n return insertions;\n}\nfunction insertElementsAtOffsets(list, insertions) {\n // remember the number of elements we have already injected\n // so we account for the caused index offset\n var inserted = 0;\n // make sure that we insert the elements in sequence,\n // otherwise the offset compensation won't work\n insertions.sort(function(a, b) {\n return a.offset - b.offset;\n });\n insertions.forEach(function(insertion) {\n // array.splice has an annoying function signature :(\n var remove = insertion.replace ? 1 : 0;\n var args = [\n insertion.offset + inserted,\n remove\n ].concat(insertion.elements);\n list.splice.apply(list, args);\n inserted += insertion.elements.length - remove;\n });\n}\nfunction mergeInDomOrder() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, list = _ref.list, elements = _ref.elements, resolveElement = _ref.resolveElement;\n // operate on a copy so we don't mutate the original array\n var _list = list.slice(0);\n // make sure the elements we're injecting are provided in DOM order\n var _elements = nodeArray(elements).slice(0);\n sortDomOrder(_elements);\n // find the offsets within the target array (list) at which to inject\n // each individual element (from elements)\n var insertions = findInsertionOffsets(_list, _elements, resolveElement);\n // actually inject the elements into the target array at the identified positions\n insertElementsAtOffsets(_list, insertions);\n return _list;\n}\nvar _createClass = function() {\n function defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nvar Maps = function() {\n function Maps(context) {\n _classCallCheck(this, Maps);\n this._document = getDocument(context);\n this.maps = {};\n }\n _createClass(Maps, [\n {\n key: \"getAreasFor\",\n value: function getAreasFor(name) {\n if (!this.maps[name]) {\n // the map is not defined within the context, so we\n // have to go find it elsewhere in the document\n this.addMapByName(name);\n }\n return this.maps[name];\n }\n },\n {\n key: \"addMapByName\",\n value: function addMapByName(name) {\n var map = getMapByName(name, this._document);\n if (!map) {\n // if there is no map, the img[usemap] wasn't doing anything anyway\n return;\n }\n this.maps[map.name] = queryTabbable({\n context: map\n });\n }\n },\n {\n key: \"extractAreasFromList\",\n value: function extractAreasFromList(elements) {\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n return elements.filter(function(element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== \"area\") {\n return true;\n }\n var map = element.parentNode;\n if (!this.maps[map.name]) {\n this.maps[map.name] = [];\n }\n this.maps[map.name].push(element);\n return false;\n }, this);\n }\n }\n ]);\n return Maps;\n}();\nfunction sortArea(elements, context) {\n // images - unless they are focusable themselves, likely not\n // part of the elements list, so we'll have to find them and\n // sort them into the elements list manually\n var usemaps = context.querySelectorAll(\"img[usemap]\");\n var maps = new Maps(context);\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n var _elements = maps.extractAreasFromList(elements);\n if (!usemaps.length) {\n // the context does not contain any <area>s so no need\n // to replace anything, just remove any maps\n return _elements;\n }\n return mergeInDomOrder({\n list: _elements,\n elements: usemaps,\n resolveElement: function resolveElement(image) {\n var name = image.getAttribute(\"usemap\").slice(1);\n return maps.getAreasFor(name);\n }\n });\n}\nvar _createClass$1 = function() {\n function defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nvar Shadows = function() {\n function Shadows(context, sortElements) {\n _classCallCheck$1(this, Shadows);\n // document context we're working with\n this.context = context;\n // callback that sorts an array of elements\n this.sortElements = sortElements;\n // reference to create unique IDs for each ShadowHost\n this.hostCounter = 1;\n // reference map for child-ShadowHosts of a ShadowHost\n this.inHost = {};\n // reference map for child-ShadowHost of the document\n this.inDocument = [];\n // reference map for ShadowHosts\n this.hosts = {};\n // reference map for tabbable elements of a ShadowHost\n this.elements = {};\n }\n // remember which hosts we have to sort within later\n _createClass$1(Shadows, [\n {\n key: \"_registerHost\",\n value: function _registerHost(host) {\n if (host._sortingId) {\n return;\n }\n // make the ShadowHost identifiable (see cleanup() for undo)\n host._sortingId = \"shadow-\" + this.hostCounter++;\n this.hosts[host._sortingId] = host;\n // hosts may contain other hosts\n var parentHost = getShadowHost({\n context: host\n });\n if (parentHost) {\n this._registerHost(parentHost);\n this._registerHostParent(host, parentHost);\n } else {\n this.inDocument.push(host);\n }\n }\n },\n {\n key: \"_registerHostParent\",\n value: function _registerHostParent(host, parent) {\n if (!this.inHost[parent._sortingId]) {\n this.inHost[parent._sortingId] = [];\n }\n this.inHost[parent._sortingId].push(host);\n }\n },\n {\n key: \"_registerElement\",\n value: function _registerElement(element, host) {\n if (!this.elements[host._sortingId]) {\n this.elements[host._sortingId] = [];\n }\n this.elements[host._sortingId].push(element);\n }\n },\n {\n key: \"extractElements\",\n value: function extractElements(elements) {\n return elements.filter(function(element) {\n var host = getShadowHost({\n context: element\n });\n if (!host) {\n return true;\n }\n this._registerHost(host);\n this._registerElement(element, host);\n return false;\n }, this);\n }\n },\n {\n key: \"sort\",\n value: function sort(elements) {\n var _elements = this._injectHosts(elements);\n _elements = this._replaceHosts(_elements);\n this._cleanup();\n return _elements;\n }\n },\n {\n key: \"_injectHosts\",\n value: function _injectHosts(elements) {\n Object.keys(this.hosts).forEach(function(_sortingId) {\n var _list = this.elements[_sortingId];\n var _elements = this.inHost[_sortingId];\n var _context = this.hosts[_sortingId].shadowRoot;\n this.elements[_sortingId] = this._merge(_list, _elements, _context);\n }, this);\n return this._merge(elements, this.inDocument, this.context);\n }\n },\n {\n key: \"_merge\",\n value: function _merge(list, elements, context) {\n var merged = mergeInDomOrder({\n list: list,\n elements: elements\n });\n return this.sortElements(merged, context);\n }\n },\n {\n key: \"_replaceHosts\",\n value: function _replaceHosts(elements) {\n return mergeInDomOrder({\n list: elements,\n elements: this.inDocument,\n resolveElement: this._resolveHostElement.bind(this)\n });\n }\n },\n {\n key: \"_resolveHostElement\",\n value: function _resolveHostElement(host) {\n var merged = mergeInDomOrder({\n list: this.elements[host._sortingId],\n elements: this.inHost[host._sortingId],\n resolveElement: this._resolveHostElement.bind(this)\n });\n var _tabindex = tabindexValue(host);\n if (_tabindex !== null && _tabindex > -1) {\n return [\n host\n ].concat(merged);\n }\n return merged;\n }\n },\n {\n key: \"_cleanup\",\n value: function _cleanup() {\n // remove those identifers we put on the ShadowHost to avoid using Map()\n Object.keys(this.hosts).forEach(function(key) {\n delete this.hosts[key]._sortingId;\n }, this);\n }\n }\n ]);\n return Shadows;\n}();\nfunction sortShadowed(elements, context, sortElements) {\n var shadows = new Shadows(context, sortElements);\n var _elements = shadows.extractElements(elements);\n if (_elements.length === elements.length) {\n // no shadowed content found, no need to continue\n return sortElements(elements);\n }\n return shadows.sort(_elements);\n}\nfunction sortTabindex(elements) {\n // https://developer.mozilla.org/docs/Web/API/HTMLElement.tabIndex\n // elements with tabIndex \"0\" (including tabbableElements without tabIndex) should be navigated in the order they appear.\n // elements with a positive tabIndex:\n // Elements that have identical tabIndexes should be navigated in the order they appear.\n // Navigation proceeds from the lowest tabIndex to the highest tabIndex.\n // NOTE: sort implementation may be unstable and thus mess up DOM order,\n // that's why we build a map that's being sorted instead. If we were able to rely\n // on a stable sorting algorithm, sortTabindex() could be as simple as\n // elements.sort(function(a, b) { return a.tabIndex - b.tabIndex; });\n // at this time Chrome does not use a stable sorting algorithm\n // see http://blog.rodneyrehm.de/archives/14-Sorting-Were-Doing-It-Wrong.html#stability\n // NOTE: compareDocumentPosition seemed like more overhead than just sorting this with buckets\n // https://developer.mozilla.org/docs/Web/API/Node.compareDocumentPosition\n var map = {};\n var indexes = [];\n var normal = elements.filter(function(element) {\n // in Trident and Gecko SVGElement does not know about the tabIndex property\n var tabIndex = element.tabIndex;\n if (tabIndex === undefined) {\n tabIndex = tabindexValue(element);\n }\n // extract elements that don't need sorting\n if (tabIndex <= 0 || tabIndex === null || tabIndex === undefined) {\n return true;\n }\n if (!map[tabIndex]) {\n // create sortable bucket for dom-order-preservation of elements with the same tabIndex\n map[tabIndex] = [];\n // maintain a list of unique tabIndexes\n indexes.push(tabIndex);\n }\n // sort element into the proper bucket\n map[tabIndex].push(element);\n // element moved to sorting map, so not \"normal\" anymore\n return false;\n });\n // sort the tabindex ascending,\n // then resolve them to their appropriate buckets,\n // then flatten the array of arrays to an array\n var _elements = indexes.sort().map(function(tabIndex) {\n return map[tabIndex];\n }).reduceRight(function(previous, current) {\n return current.concat(previous);\n }, normal);\n return _elements;\n}\nvar supports$8 = void 0;\nfunction moveContextToBeginning(elements, context) {\n var pos = elements.indexOf(context);\n if (pos > 0) {\n var tmp = elements.splice(pos, 1);\n return tmp.concat(elements);\n }\n return elements;\n}\nfunction sortElements(elements, _context) {\n if (supports$8.tabsequenceAreaAtImgPosition) {\n // Some browsers sort <area> in DOM order, some place the <area>s\n // where the <img> referecing them would've been in DOM order.\n // https://github.com/medialize/ally.js/issues/5\n elements = sortArea(elements, _context);\n }\n elements = sortTabindex(elements);\n return elements;\n}\nfunction queryTabsequence() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!supports$8) {\n supports$8 = _supports();\n }\n var _context = nodeArray(context)[0] || document.documentElement;\n var elements = queryTabbable({\n context: _context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n });\n if (document.body.createShadowRoot && platform.is.BLINK) {\n // sort tabindex localized to shadow dom\n // see https://github.com/medialize/ally.js/issues/6\n elements = sortShadowed(elements, _context, sortElements);\n } else {\n elements = sortElements(elements, _context);\n }\n if (includeContext) {\n // if we include the context itself, it has to be the first\n // element of the sequence\n elements = moveContextToBeginning(elements, _context);\n }\n return elements;\n}\n// codes mostly cloned from https://github.com/keithamus/jwerty/blob/master/jwerty.js\n// deliberately not exposing characters like <,.-#* because they vary *wildly*\n// across keyboard layouts and may cause various problems\n// (e.g. \"*\" is \"Shift +\" on a German Mac keyboard)\n// (e.g. \"@\" is \"Alt L\" on a German Mac keyboard)\nvar keycode = {\n // Element Focus\n tab: 9,\n // Navigation\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n pageUp: 33,\n \"page-up\": 33,\n pageDown: 34,\n \"page-down\": 34,\n end: 35,\n home: 36,\n // Action\n enter: 13,\n escape: 27,\n space: 32,\n // Modifier\n shift: 16,\n capsLock: 20,\n \"caps-lock\": 20,\n ctrl: 17,\n alt: 18,\n meta: 91,\n // in firefox: 224\n // on mac (chrome): meta-left=91, meta-right=93\n // on win (IE11): meta-left=91, meta-right=92\n pause: 19,\n // Content Manipulation\n insert: 45,\n delete: 46,\n backspace: 8,\n // the same logical key may be identified through different keyCodes\n _alias: {\n 91: [\n 92,\n 93,\n 224\n ]\n }\n};\n// Function keys (112 - 137)\n// NOTE: not every keyboard knows F13+\nfor(var n = 1; n < 26; n++){\n keycode[\"f\" + n] = n + 111;\n}\n// Number keys (48-57, numpad 96-105)\n// NOTE: not every keyboard knows num-0+\nfor(var _n = 0; _n < 10; _n++){\n var code = _n + 48;\n var numCode = _n + 96;\n keycode[_n] = code;\n keycode[\"num-\" + _n] = numCode;\n keycode._alias[code] = [\n numCode\n ];\n}\n// Latin characters (65 - 90)\nfor(var _n2 = 0; _n2 < 26; _n2++){\n var _code = _n2 + 65;\n var name$1 = String.fromCharCode(_code).toLowerCase();\n keycode[name$1] = _code;\n}\nvar modifier = {\n alt: \"altKey\",\n ctrl: \"ctrlKey\",\n meta: \"metaKey\",\n shift: \"shiftKey\"\n};\nvar modifierSequence = Object.keys(modifier).map(function(name) {\n return modifier[name];\n});\nfunction createExpectedModifiers(ignoreModifiers) {\n var value = ignoreModifiers ? null : false;\n return {\n altKey: value,\n ctrlKey: value,\n metaKey: value,\n shiftKey: value\n };\n}\nfunction resolveModifiers(modifiers) {\n var ignoreModifiers = modifiers.indexOf(\"*\") !== -1;\n var expected = createExpectedModifiers(ignoreModifiers);\n modifiers.forEach(function(token) {\n if (token === \"*\") {\n // we've already covered the all-in operator\n return;\n }\n // we want the modifier pressed\n var value = true;\n var operator = token.slice(0, 1);\n if (operator === \"?\") {\n // we don't care if the modifier is pressed\n value = null;\n } else if (operator === \"!\") {\n // we do not want the modifier pressed\n value = false;\n }\n if (value !== true) {\n // compensate for the modifier's operator\n token = token.slice(1);\n }\n var propertyName = modifier[token];\n if (!propertyName) {\n throw new TypeError('Unknown modifier \"' + token + '\"');\n }\n expected[propertyName] = value;\n });\n return expected;\n}\nfunction resolveKey(key) {\n var code = keycode[key] || parseInt(key, 10);\n if (!code || typeof code !== \"number\" || isNaN(code)) {\n throw new TypeError('Unknown key \"' + key + '\"');\n }\n return [\n code\n ].concat(keycode._alias[code] || []);\n}\nfunction matchModifiers(expected, event) {\n // returns true on match\n return !modifierSequence.some(function(prop) {\n // returns true on mismatch\n return typeof expected[prop] === \"boolean\" && Boolean(event[prop]) !== expected[prop];\n });\n}\nfunction keyBinding(text) {\n return text.split(/\\s+/).map(function(_text) {\n var tokens = _text.split(\"+\");\n var _modifiers = resolveModifiers(tokens.slice(0, -1));\n var _keyCodes = resolveKey(tokens.slice(-1));\n return {\n keyCodes: _keyCodes,\n modifiers: _modifiers,\n matchModifiers: matchModifiers.bind(null, _modifiers)\n };\n });\n}\n// Node.compareDocumentPosition is available since IE9\n// see https://developer.mozilla.org/docs/Web/API/Node.compareDocumentPosition\n// callback returns true when element is contained by parent or is the parent suited for use with Array.some()\n/*\n USAGE:\n var isChildOf = getParentComparator({parent: someNode});\n listOfElements.some(isChildOf)\n*/ function getParentComparator() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, parent = _ref.parent, element = _ref.element, includeSelf = _ref.includeSelf;\n if (parent) {\n return function isChildOf(node) {\n return Boolean(includeSelf && node === parent || parent.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n } else if (element) {\n return function isParentOf(node) {\n return Boolean(includeSelf && element === node || node.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n }\n throw new TypeError(\"util/compare-position#getParentComparator required either options.parent or options.element\");\n}\n// Bug 286933 - Key events in the autocomplete popup should be hidden from page scripts\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=286933\nfunction whenKey() {\n var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var bindings = {};\n var context = nodeArray(map.context)[0] || document.documentElement;\n delete map.context;\n var filter = nodeArray(map.filter);\n delete map.filter;\n var mapKeys = Object.keys(map);\n if (!mapKeys.length) {\n throw new TypeError(\"when/key requires at least one option key\");\n }\n var registerBinding = function registerBinding(event) {\n event.keyCodes.forEach(function(code) {\n if (!bindings[code]) {\n bindings[code] = [];\n }\n bindings[code].push(event);\n });\n };\n mapKeys.forEach(function(text) {\n if (typeof map[text] !== \"function\") {\n throw new TypeError('when/key requires option[\"' + text + '\"] to be a function');\n }\n var addCallback = function addCallback(event) {\n event.callback = map[text];\n return event;\n };\n keyBinding(text).map(addCallback).forEach(registerBinding);\n });\n var handleKeyDown = function handleKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n if (filter.length) {\n // ignore elements within the exempted sub-trees\n var isParentOfElement = getParentComparator({\n element: event.target,\n includeSelf: true\n });\n if (filter.some(isParentOfElement)) {\n return;\n }\n }\n var key = event.keyCode || event.which;\n if (!bindings[key]) {\n return;\n }\n bindings[key].forEach(function(_event) {\n if (!_event.matchModifiers(event)) {\n return;\n }\n _event.callback.call(context, event, disengage);\n });\n };\n context.addEventListener(\"keydown\", handleKeyDown, false);\n var disengage = function disengage() {\n context.removeEventListener(\"keydown\", handleKeyDown, false);\n };\n return {\n disengage: disengage\n };\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(param) {\n let { context } = param === void 0 ? {} : param;\n if (!context) {\n context = document.documentElement;\n }\n // Make sure the supports tests are run before intercepting the Tab key,\n // or IE10 and IE11 will fail to process the first Tab key event. Not\n // limiting this warm-up to IE because it may be a problem elsewhere, too.\n queryTabsequence();\n return whenKey({\n // Safari on OSX may require ALT+TAB to reach links,\n // see https://github.com/medialize/ally.js/issues/146\n \"?alt+?shift+tab\": function altShiftTab(event) {\n // we're completely taking over the Tab key handling\n event.preventDefault();\n var sequence = queryTabsequence({\n context: context\n });\n var backward = event.shiftKey;\n var first = sequence[0];\n var last = sequence[sequence.length - 1];\n // wrap around first to last, last to first\n var source = backward ? first : last;\n var target = backward ? last : first;\n if (isActiveElement(source)) {\n target.focus();\n return;\n }\n // find current position in tabsequence\n var currentIndex = void 0;\n var found = sequence.some(function(element, index) {\n if (!isActiveElement(element)) {\n return false;\n }\n currentIndex = index;\n return true;\n });\n if (!found) {\n // redirect to first as we're not in our tabsequence\n first.focus();\n return;\n }\n // shift focus to previous/next element in the sequence\n var offset = backward ? -1 : 1;\n sequence[currentIndex + offset].focus();\n }\n });\n} //# sourceMappingURL=maintain--tab-focus.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L21haW50YWluLS10YWItZm9jdXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxrQkFBa0IsR0FBRyxjQUFjO0FBQ25DLG1EQUFtRDtBQUNuRCxlQUFlO0FBQ2YsaUNBQWlDO0FBQ2pDLEVBQUU7QUFDRix5Q0FBeUM7QUFDVztBQUNFO0FBQ3RELHlGQUF5RjtBQUN6Riw2RUFBNkU7QUFDN0UsU0FBU0UsVUFBVUMsS0FBSztJQUNwQixJQUFJLENBQUNBLE9BQU87UUFDUixPQUFPLEVBQUU7SUFDYjtJQUNBLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0YsUUFBUTtRQUN0QixPQUFPQTtJQUNYO0lBQ0EsK0NBQStDO0lBQy9DLElBQUlBLE1BQU1HLFFBQVEsS0FBS0MsV0FBVztRQUM5QixPQUFPO1lBQ0hKO1NBQ0g7SUFDTDtJQUNBLElBQUksT0FBT0EsVUFBVSxVQUFVO1FBQzNCQSxRQUFRSyxTQUFTQyxnQkFBZ0IsQ0FBQ047SUFDdEM7SUFDQSxJQUFJQSxNQUFNTyxNQUFNLEtBQUtILFdBQVc7UUFDNUIsT0FBTyxFQUFFLENBQUNJLEtBQUssQ0FBQ0MsSUFBSSxDQUFDVCxPQUFPO0lBQ2hDO0lBQ0EsTUFBTSxJQUFJVSxVQUFVLHNCQUFzQkMsT0FBT1g7QUFDckQ7QUFDQSxTQUFTWSxpQkFBaUJDLElBQUk7SUFDMUIsSUFBSUMsVUFBVUQsS0FBS0MsT0FBTyxFQUFFQyxhQUFhRixLQUFLRyxLQUFLLEVBQUVBLFFBQVFELGVBQWVYLFlBQVksdUJBQXVCVyxZQUFZRSxrQkFBa0JKLEtBQUtJLGVBQWUsRUFBRUMsb0JBQW9CTCxLQUFLSyxpQkFBaUI7SUFDN00sSUFBSUMsVUFBVXBCLFVBQVVlLFFBQVEsQ0FBQyxFQUFFO0lBQ25DLElBQUlHLG1CQUFtQkUsV0FBV0EsUUFBUWhCLFFB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QUFDbGdCLGdCQUFnQmQsVUFBVTtvQkFDM0IsT0FBTztnQkFDWDtnQkFDQThnQixlQUFlRTtnQkFDZixPQUFPO1lBQ1g7WUFDQSxJQUFJLENBQUNELE9BQU87Z0JBQ1Isb0RBQW9EO2dCQUNwREosTUFBTS9iLEtBQUs7Z0JBQ1g7WUFDSjtZQUNBLHVEQUF1RDtZQUN2RCxJQUFJcU0sU0FBU3lQLFdBQVcsQ0FBQyxJQUFJO1lBQzdCRCxRQUFRLENBQUNLLGVBQWU3UCxPQUFPLENBQUNyTSxLQUFLO1FBQ3pDO0lBQ0o7QUFDSixFQUVBLCtDQUErQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L21haW50YWluLS10YWItZm9jdXMuanM/Y2YwZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqLyAvLyBAdHMtbm9jaGVja1xuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzXG4vLyBMaWNlbnNlOiBNSVRcbi8vIENvcHlyaWdodCAoYykgMjAxNSBSb2RuZXkgUmVobVxuLy9cbi8vIEVudHJ5cG9pbnQ6IGFsbHkuanMvbWFpbnRhaW4vdGFiLWZvY3VzXG5pbXBvcnQgX3BsYXRmb3JtIGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvcGxhdGZvcm1cIjtcbmltcG9ydCBjc3NFc2NhcGUgZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9jc3MuZXNjYXBlXCI7XG4vLyBpbnB1dCBtYXkgYmUgdW5kZWZpbmVkLCBzZWxlY3Rvci10cmluZywgTm9kZSwgTm9kZUxpc3QsIEhUTUxDb2xsZWN0aW9uLCBhcnJheSBvZiBOb2Rlc1xuLy8geWVzLCB0byBzb21lIGV4dGVudCB0aGlzIGlzIGEgYmFkIHJlcGxpY2Egb2YgalF1ZXJ5J3MgY29uc3RydWN0b3IgZnVuY3Rpb25cbmZ1bmN0aW9uIG5vZGVBcnJheShpbnB1dCkge1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cbiAgICAvLyBpbnN0YW5jZW9mIE5vZGUgLSBkb2VzIG5vdCB3b3JrIHdpdGggaWZyYW1lc1xuICAgIGlmIChpbnB1dC5ub2RlVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBpbnB1dFxuICAgICAgICBdO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChpbnB1dCk7XG4gICAgfVxuICAgIGlmIChpbnB1dC5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gW10uc2xpY2UuY2FsbChpbnB1dCwgMCk7XG4gICAgfVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJ1bmV4cGVjdGVkIGlucHV0IFwiICsgU3RyaW5nKGlucHV0KSk7XG59XG5mdW5jdGlvbiBjb250ZXh0VG9FbGVtZW50KF9yZWYpIHtcbiAgICB2YXIgY29udGV4dCA9IF9yZWYuY29udGV4dCwgX3JlZiRsYWJlbCA9IF9yZWYubGFiZWwsIGxhYmVsID0gX3JlZiRsYWJlbCA9PT0gdW5kZWZpbmVkID8gXCJjb250ZXh0LXRvLWVsZW1lbnRcIiA6IF9yZWYkbGFiZWwsIHJlc29sdmVEb2N1bWVudCA9IF9yZWYucmVzb2x2ZURvY3VtZW50LCBkZWZhdWx0VG9Eb2N1bWVudCA9IF9yZWYuZGVmYXVsdFRvRG9jdW1lbnQ7XG4gICAgdmFyIGVsZW1lbnQgPSBub2RlQXJyYXkoY29udGV4dClbMF07XG4gICAgaWYgKHJlc29sdmVEb2N1bWVudCAmJiBlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkge1xuICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgfVxuICAgIGlmICghZWxlbWVudCAmJiBkZWZhdWx0VG9Eb2N1bWVudCkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIH1cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihsYWJlbCArIFwiIHJlcXVpcmVzIHZhbGlkIG9wdGlvbnMuY29udGV4dFwiKTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGxhYmVsICsgXCIgcmVxdWlyZXMgb3B0aW9ucy5jb250ZXh0IHRvIGJlIGFuIEVsZW1lbnRcIik7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50O1xufVxuZnVuY3Rpb24gZ2V0U2hhZG93SG9zdCgpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQ7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6IFwiZ2V0L3NoYWRvdy1ob3N0XCIsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICAvLyB3YWxrIHVwIHRvIHRoZSByb290XG4gICAgdmFyIGNvbnRhaW5lciA9IG51bGw7XG4gICAgd2hpbGUoZWxlbWVudCl7XG4gICAgICAgIGNvbnRhaW5lciA9IGVsZW1lbnQ7XG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Ob2RlLm5vZGVUeXBlXG4gICAgLy8gTk9URTogRmlyZWZveCAzNCBkb2VzIG5vdCBleHBvc2UgU2hhZG93Um9vdC5ob3N0IChidXQgMzcgZG9lcylcbiAgICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBjb250YWluZXIuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSAmJiBjb250YWluZXIuaG9zdCkge1xuICAgICAgICAvLyB0aGUgcm9vdCBpcyBhdHRhY2hlZCB0byBhIGZyYWdtZW50IG5vZGUgdGhhdCBoYXMgYSBob3N0XG4gICAgICAgIHJldHVybiBjb250YWluZXIuaG9zdDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBnZXREb2N1bWVudChub2RlKSB7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudDtcbiAgICB9XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudDtcbn1cbmZ1bmN0aW9uIGlzQWN0aXZlRWxlbWVudChjb250ZXh0KSB7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6IFwiaXMvYWN0aXZlLWVsZW1lbnRcIixcbiAgICAgICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgdmFyIF9kb2N1bWVudCA9IGdldERvY3VtZW50KGVsZW1lbnQpO1xuICAgIGlmIChfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHNoYWRvd0hvc3QgPSBnZXRTaGFkb3dIb3N0KHtcbiAgICAgICAgY29udGV4dDogZWxlbWVudFxuICAgIH0pO1xuICAgIGlmIChzaGFkb3dIb3N0ICYmIHNoYWRvd0hvc3Quc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG4vLyBbZWxlbSwgZWxlbS5wYXJlbnQsIGVsZW0ucGFyZW50LnBhcmVudCwg4oCmLCBodG1sXVxuLy8gd2lsbCBub3QgY29udGFpbiB0aGUgc2hhZG93Um9vdCAoRE9DVU1FTlRfRlJBR01FTlRfTk9ERSkgYW5kIHNoYWRvd0hvc3RcbmZ1bmN0aW9uIGdldFBhcmVudHMoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0O1xuICAgIHZhciBsaXN0ID0gW107XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6IFwiZ2V0L3BhcmVudHNcIixcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHdoaWxlKGVsZW1lbnQpe1xuICAgICAgICBsaXN0LnB1c2goZWxlbWVudCk7XG4gICAgICAgIC8vIElFIGRvZXMga25vdyBzdXBwb3J0IHBhcmVudEVsZW1lbnQgb24gU1ZHRWxlbWVudFxuICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlO1xuICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgICAgICAgZWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG59XG4vLyBFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzIG1heSBiZSBhdmFpbGFibGUgYXQgYSBkaWZmZXJlbnQgbmFtZVxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvQVBJL0VsZW1lbnQvbWF0Y2hlc1xudmFyIG5hbWVzID0gW1xuICAgIFwibWF0Y2hlc1wiLFxuICAgIFwid2Via2l0TWF0Y2hlc1NlbGVjdG9yXCIsXG4gICAgXCJtb3pNYXRjaGVzU2VsZWN0b3JcIixcbiAgICBcIm1zTWF0Y2hlc1NlbGVjdG9yXCJcbl07XG52YXIgbmFtZSA9IG51bGw7XG5mdW5jdGlvbiBmaW5kTWV0aG9kTmFtZShlbGVtZW50KSB7XG4gICAgbmFtZXMuc29tZShmdW5jdGlvbihfbmFtZSkge1xuICAgICAgICBpZiAoIWVsZW1lbnRbX25hbWVdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbmFtZSA9IF9uYW1lO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGVsZW1lbnRNYXRjaGVzKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICAgIGZpbmRNZXRob2ROYW1lKGVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudFtuYW1lXShzZWxlY3Rvcik7XG59XG4vLyBkZWVwIGNsb25lIG9mIG9yaWdpbmFsIHBsYXRmb3JtXG52YXIgcGxhdGZvcm0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KF9wbGF0Zm9ybSkpO1xuLy8gb3BlcmF0aW5nIHN5c3RlbVxudmFyIG9zID0gcGxhdGZvcm0ub3MuZmFtaWx5IHx8IFwiXCI7XG52YXIgQU5EUk9JRCA9IG9zID09PSBcIkFuZHJvaWRcIjtcbnZhciBXSU5ET1dTID0gb3Muc2xpY2UoMCwgNykgPT09IFwiV2luZG93c1wiO1xudmFyIE9TWCA9IG9zID09PSBcIk9TIFhcIjtcbnZhciBJT1MgPSBvcyA9PT0gXCJpT1NcIjtcbi8vIGxheW91dFxudmFyIEJMSU5LID0gcGxhdGZvcm0ubGF5b3V0ID09PSBcIkJsaW5rXCI7XG52YXIgR0VDS08gPSBwbGF0Zm9ybS5sYXlvdXQgPT09IFwiR2Vja29cIjtcbnZhciBUUklERU5UID0gcGxhdGZvcm0ubGF5b3V0ID09PSBcIlRyaWRlbnRcIjtcbnZhciBFREdFID0gcGxhdGZvcm0ubGF5b3V0ID09PSBcIkVkZ2VIVE1MXCI7XG52YXIgV0VCS0lUID0gcGxhdGZvcm0ubGF5b3V0ID09PSBcIldlYktpdFwiO1xuLy8gYnJvd3NlciB2ZXJzaW9uIChub3QgbGF5b3V0IGVuZ2luZSB2ZXJzaW9uISlcbnZhciB2ZXJzaW9uID0gcGFyc2VGbG9hdChwbGF0Zm9ybS52ZXJzaW9uKTtcbnZhciBtYWpvclZlcnNpb24gPSBNYXRoLmZsb29yKHZlcnNpb24pO1xucGxhdGZvcm0ubWFqb3JWZXJzaW9uID0gbWFqb3JWZXJzaW9uO1xucGxhdGZvcm0uaXMgPSB7XG4gICAgLy8gb3BlcmF0aW5nIHN5c3RlbVxuICAgIEFORFJPSUQ6IEFORFJPSUQsXG4gICAgV0lORE9XUzogV0lORE9XUyxcbiAgICBPU1g6IE9TWCxcbiAgICBJT1M6IElPUyxcbiAgICAvLyBsYXlvdXRcbiAgICBCTElOSzogQkxJTkssXG4gICAgR0VDS086IEdFQ0tPLFxuICAgIFRSSURFTlQ6IFRSSURFTlQsXG4gICAgRURHRTogRURHRSxcbiAgICBXRUJLSVQ6IFdFQktJVCxcbiAgICAvLyBJTlRFUk5FVCBFWFBMT1JFUlNcbiAgICBJRTk6IFRSSURFTlQgJiYgbWFqb3JWZXJzaW9uID09PSA5LFxuICAgIElFMTA6IFRSSURFTlQgJiYgbWFqb3JWZXJzaW9uID09PSAxMCxcbiAgICBJRTExOiBUUklERU5UICYmIG1ham9yVmVyc2lvbiA9PT0gMTFcbn07XG5mdW5jdGlvbiBiZWZvcmUoKSB7XG4gICAgdmFyIGRhdGEgPSB7XG4gICAgICAgIC8vIHJlbWVtYmVyIHdoYXQgaGFkIGZvY3VzIHRvIHJlc3RvcmUgYWZ0ZXIgdGVzdFxuICAgICAgICBhY3RpdmVFbGVtZW50OiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LFxuICAgICAgICAvLyByZW1lbWJlciBzY3JvbGwgcG9zaXRpb25zIHRvIHJlc3RvcmUgYWZ0ZXIgdGVzdFxuICAgICAgICB3aW5kb3dTY3JvbGxUb3A6IHdpbmRvdy5zY3JvbGxUb3AsXG4gICAgICAgIHdpbmRvd1Njcm9sbExlZnQ6IHdpbmRvdy5zY3JvbGxMZWZ0LFxuICAgICAgICBib2R5U2Nyb2xsVG9wOiBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCxcbiAgICAgICAgYm9keVNjcm9sbExlZnQ6IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdFxuICAgIH07XG4gICAgLy8gd3JhcCB0ZXN0cyBpbiBhbiBlbGVtZW50IGhpZGRlbiBmcm9tIHNjcmVlbiByZWFkZXJzIHRvIHByZXZlbnQgdGhlbVxuICAgIC8vIGZyb20gYW5ub3VuY2luZyBmb2N1cywgd2hpY2ggY2FuIGJlIHF1aXRlIGlycml0YXRpbmcgdG8gdGhlIHVzZXJcbiAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtcbiAgICBpZnJhbWUuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgXCJwb3NpdGlvbjphYnNvbHV0ZTsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0Oi0ycHg7IHdpZHRoOjFweDsgaGVpZ2h0OjFweDsgb3ZlcmZsb3c6aGlkZGVuO1wiKTtcbiAgICBpZnJhbWUuc2V0QXR0cmlidXRlKFwiYXJpYS1saXZlXCIsIFwib2ZmXCIpO1xuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWJ1c3lcIiwgXCJ0cnVlXCIpO1xuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCBcInRydWVcIik7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICAgIHZhciBfd2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7XG4gICAgdmFyIF9kb2N1bWVudCA9IF93aW5kb3cuZG9jdW1lbnQ7XG4gICAgX2RvY3VtZW50Lm9wZW4oKTtcbiAgICBfZG9jdW1lbnQuY2xvc2UoKTtcbiAgICB2YXIgd3JhcHBlciA9IF9kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIF9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdyYXBwZXIpO1xuICAgIGRhdGEuaWZyYW1lID0gaWZyYW1lO1xuICAgIGRhdGEud3JhcHBlciA9IHdyYXBwZXI7XG4gICAgZGF0YS53aW5kb3cgPSBfd2luZG93O1xuICAgIGRhdGEuZG9jdW1lbnQgPSBfZG9jdW1lbnQ7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vLyBvcHRpb25zLmVsZW1lbnQ6XG4vLyAge3N0cmluZ30gZWxlbWVudCBuYW1lXG4vLyAge2Z1bmN0aW9ufSBjYWxsYmFjayh3cmFwcGVyLCBkb2N1bWVudCkgdG8gZ2VuZXJhdGUgYW4gZWxlbWVudFxuLy8gb3B0aW9ucy5tdXRhdGU6IChvcHRpb25hbClcbi8vICB7ZnVuY3Rpb259IGNhbGxiYWNrKGVsZW1lbnQsIHdyYXBwZXIsIGRvY3VtZW50KSB0byBtYW5pcHVsYXRlIGVsZW1lbnQgcHJpb3IgdG8gZm9jdXMtdGVzdC5cbi8vICAgICAgICAgICAgIENhbiByZXR1cm4gRE9NRWxlbWVudCB0byBkZWZpbmUgZm9jdXMgdGFyZ2V0IChkZWZhdWx0OiBlbGVtZW50KVxuLy8gb3B0aW9ucy52YWxpZGF0ZTogKG9wdGlvbmFsKVxuLy8gIHtmdW5jdGlvbn0gY2FsbGJhY2soZWxlbWVudCwgZm9jdXNUYXJnZXQsIGRvY3VtZW50KSB0byBtYW5pcHVsYXRlIHRlc3QtcmVzdWx0XG5mdW5jdGlvbiB0ZXN0KGRhdGEsIG9wdGlvbnMpIHtcbiAgICAvLyBtYWtlIHN1cmUgd2Ugb3BlcmF0ZSBvbiBhIGNsZWFuIHNsYXRlXG4gICAgZGF0YS53cmFwcGVyLmlubmVySFRNTCA9IFwiXCI7XG4gICAgLy8gY3JlYXRlIGR1bW15IGVsZW1lbnQgdG8gdGVzdCBmb2N1c2FiaWxpdHkgb2ZcbiAgICB2YXIgZWxlbWVudCA9IHR5cGVvZiBvcHRpb25zLmVsZW1lbnQgPT09IFwic3RyaW5nXCIgPyBkYXRhLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQob3B0aW9ucy5lbGVtZW50KSA6IG9wdGlvbnMuZWxlbWVudChkYXRhLndyYXBwZXIsIGRhdGEuZG9jdW1lbnQpO1xuICAgIC8vIGFsbG93IGNhbGxiYWNrIHRvIGZ1cnRoZXIgc3BlY2lmeSBkdW1teSBlbGVtZW50XG4gICAgLy8gYW5kIG9wdGlvbmFsbHkgZGVmaW5lIGVsZW1lbnQgdG8gZm9jdXNcbiAgICB2YXIgZm9jdXMgPSBvcHRpb25zLm11dGF0ZSAmJiBvcHRpb25zLm11dGF0ZShlbGVtZW50LCBkYXRhLndyYXBwZXIsIGRhdGEuZG9jdW1lbnQpO1xuICAgIGlmICghZm9jdXMgJiYgZm9jdXMgIT09IGZhbHNlKSB7XG4gICAgICAgIGZvY3VzID0gZWxlbWVudDtcbiAgICB9XG4gICAgLy8gZWxlbWVudCBuZWVkcyB0byBiZSBwYXJ0IG9mIHRoZSBET00gdG8gYmUgZm9jdXNhYmxlXG4gICAgIWVsZW1lbnQucGFyZW50Tm9kZSAmJiBkYXRhLndyYXBwZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgLy8gdGVzdCBpZiB0aGUgZWxlbWVudCB3aXRoIGludmFsaWQgdGFiaW5kZXggY2FuIGJlIGZvY3VzZWRcbiAgICBmb2N1cyAmJiBmb2N1cy5mb2N1cyAmJiBmb2N1cy5mb2N1cygpO1xuICAgIC8vIHZhbGlkYXRlIHRlc3QncyByZXN1bHRcbiAgICByZXR1cm4gb3B0aW9ucy52YWxpZGF0ZSA/IG9wdGlvbnMudmFsaWRhdGUoZWxlbWVudCwgZm9jdXMsIGRhdGEuZG9jdW1lbnQpIDogZGF0YS5kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmb2N1cztcbn1cbmZ1bmN0aW9uIGFmdGVyKGRhdGEpIHtcbiAgICAvLyByZXN0b3JlIGZvY3VzIHRvIHdoYXQgaXQgd2FzIGJlZm9yZSB0ZXN0IGFuZCBjbGVhbnVwXG4gICAgaWYgKGRhdGEuYWN0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1ciAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgaWYgKHBsYXRmb3JtLmlzLklFMTApIHtcbiAgICAgICAgICAgIC8vIElFMTAgZG9lcyBub3QgcmVkaXJlY3QgZm9jdXMgdG8gPGJvZHk+IHdoZW4gdGhlIGFjdGl2ZUVsZW1lbnQgaXMgcmVtb3ZlZFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YS5hY3RpdmVFbGVtZW50ICYmIGRhdGEuYWN0aXZlRWxlbWVudC5mb2N1cyAmJiBkYXRhLmFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkYXRhLmlmcmFtZSk7XG4gICAgLy8gcmVzdG9yZSBzY3JvbGwgcG9zaXRpb25cbiAgICB3aW5kb3cuc2Nyb2xsVG9wID0gZGF0YS53aW5kb3dTY3JvbGxUb3A7XG4gICAgd2luZG93LnNjcm9sbExlZnQgPSBkYXRhLndpbmRvd1Njcm9sbExlZnQ7XG4gICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSBkYXRhLmJvZHlTY3JvbGxUb3A7XG4gICAgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0ID0gZGF0YS5ib2R5U2Nyb2xsTGVmdDtcbn1cbmZ1bmN0aW9uIGRldGVjdEZvY3VzKHRlc3RzKSB7XG4gICAgdmFyIGRhdGEgPSBiZWZvcmUoKTtcbiAgICB2YXIgcmVzdWx0cyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHRlc3RzKS5tYXAoZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIHJlc3VsdHNba2V5XSA9IHRlc3QoZGF0YSwgdGVzdHNba2V5XSk7XG4gICAgfSk7XG4gICAgYWZ0ZXIoZGF0YSk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG4vLyB0aGlzIGZpbGUgaXMgb3ZlcndyaXR0ZW4gYnkgYG5wbSBydW4gYnVpbGQ6cHJlYFxudmFyIHZlcnNpb24kMSA9IFwiMS40LjFcIjtcbi8qXG4gICAgRmFjaWxpdHkgdG8gY2FjaGUgdGVzdCByZXN1bHRzIGluIGxvY2FsU3RvcmFnZS5cblxuICAgIFVTQUdFOlxuICAgICAgY2FjaGUuZ2V0KCdrZXknKTtcbiAgICAgIGNhY2hlLnNldCgna2V5JywgJ3ZhbHVlJyk7XG4gKi8gZnVuY3Rpb24gcmVhZExvY2FsU3RvcmFnZShrZXkpIHtcbiAgICAvLyBhbGxvdyByZWFkaW5nIGZyb20gc3RvcmFnZSB0byByZXRyaWV2ZSBwcmV2aW91cyBzdXBwb3J0IHJlc3VsdHNcbiAgICAvLyBldmVuIHdoaWxlIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGZvY3VzXG4gICAgdmFyIGRhdGEgPSB2b2lkIDA7XG4gICAgdHJ5IHtcbiAgICAgICAgZGF0YSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UgJiYgd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIGRhdGEgPSBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IHt9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZGF0YSA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbn1cbmZ1bmN0aW9uIHdyaXRlTG9jYWxTdG9yYWdlKGtleSwgdmFsdWUpIHtcbiAgICBpZiAoIWRvY3VtZW50Lmhhc0ZvY3VzKCkpIHtcbiAgICAgICAgLy8gaWYgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgZm9jdXMgd2hlbiB0ZXN0cyBhcmUgZXhlY3V0ZWQsIGZvY3VzKCkgbWF5XG4gICAgICAgIC8vIG5vdCBiZSBoYW5kbGVkIHByb3Blcmx5IGFuZCBldmVudHMgbWF5IG5vdCBiZSBkaXNwYXRjaGVkIGltbWVkaWF0ZWx5LlxuICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gd2hlbiBhIGRvY3VtZW50IGlzIHJlbG9hZGVkIHdoaWxlIERldmVsb3BlciBUb29scyBoYXZlIGZvY3VzLlxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZSAmJiB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpZ25vcmVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UgJiYgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgLy8gaWdub3JlXG4gICAgfVxufVxudmFyIHVzZXJBZ2VudCA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgfHwgXCJcIjtcbnZhciBjYWNoZUtleSA9IFwiYWxseS1zdXBwb3J0cy1jYWNoZVwiO1xudmFyIGNhY2hlID0gcmVhZExvY2FsU3RvcmFnZShjYWNoZUtleSk7XG4vLyB1cGRhdGUgdGhlIGNhY2hlIGlmIGFsbHkgb3IgdGhlIHVzZXIgYWdlbnQgY2hhbmdlZCAobmV3ZXIgdmVyc2lvbiwgZXRjKVxuaWYgKGNhY2hlLnVzZXJBZ2VudCAhPT0gdXNlckFnZW50IHx8IGNhY2hlLnZlcnNpb24gIT09IHZlcnNpb24kMSkge1xuICAgIGNhY2hlID0ge307XG59XG5jYWNoZS51c2VyQWdlbnQgPSB1c2VyQWdlbnQ7XG5jYWNoZS52ZXJzaW9uID0gdmVyc2lvbiQxO1xudmFyIGNhY2hlJDEgPSB7XG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgIHJldHVybiBjYWNoZTtcbiAgICB9LFxuICAgIHNldDogZnVuY3Rpb24gc2V0KHZhbHVlcykge1xuICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZXMpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBjYWNoZVtrZXldID0gdmFsdWVzW2tleV07XG4gICAgICAgIH0pO1xuICAgICAgICBjYWNoZS50aW1lID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICB3cml0ZUxvY2FsU3RvcmFnZShjYWNoZUtleSwgY2FjaGUpO1xuICAgIH1cbn07XG5mdW5jdGlvbiBjc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yKCkge1xuICAgIHZhciBjb21iaW5hdG9yID0gdm9pZCAwO1xuICAgIC8vIHNlZSBodHRwczovL2Rldi53My5vcmcvY3Nzd2cvY3NzLXNjb3BpbmctMS8jZGVlcC1jb21iaW5hdG9yXG4gICAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNzU3MlxuICAgIC8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NDYwNTFcbiAgICB0cnkge1xuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaHRtbCA+Pj4gOmZpcnN0LWNoaWxkXCIpO1xuICAgICAgICBjb21iaW5hdG9yID0gXCI+Pj5cIjtcbiAgICB9IGNhdGNoIChub0Fycm93QXJyb3dBcnJvdykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gb2xkIHN5bnRheCBzdXBwb3J0ZWQgYXQgbGVhc3QgdXAgdG8gQ2hyb21lIDQxXG4gICAgICAgICAgICAvLyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDQ2MDUxXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaHRtbCAvZGVlcC8gOmZpcnN0LWNoaWxkXCIpO1xuICAgICAgICAgICAgY29tYmluYXRvciA9IFwiL2RlZXAvXCI7XG4gICAgICAgIH0gY2F0Y2ggKG5vRGVlcCkge1xuICAgICAgICAgICAgY29tYmluYXRvciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbWJpbmF0b3I7XG59XG52YXIgZ2lmID0gXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTdcIjtcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbnZhciBmb2N1c0FyZWFJbWdUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiBcImRpdlwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj4nICsgJzxhcmVhIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgKyAnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiB0YWJpbmRleD1cIi0xXCIgYWx0PVwiXCIgc3JjPVwiJyArIGdpZiArICdcIj4nO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiYXJlYVwiKTtcbiAgICB9XG59O1xuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxudmFyIGZvY3VzQXJlYVRhYmluZGV4ID0ge1xuICAgIGVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiPicgKyAnPGFyZWEgaHJlZj1cIiN2b2lkXCIgdGFiaW5kZXg9XCItMVwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgKyAnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiBhbHQ9XCJcIiBzcmM9XCInICsgZ2lmICsgJ1wiPic7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgICAgIGlmIChwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAgICAgLy8gZml4ZXMgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8zNVxuICAgICAgICAgICAgLy8gRmlyZWZveCBsb2FkcyB0aGUgRGF0YVVSSSBhc3luY2hyb25vdXNseSwgY2F1c2luZyBhIGZhbHNlLW5lZ2F0aXZlXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZm9jdXMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJhcmVhXCIpO1xuICAgICAgICBmb2N1cy5mb2N1cygpO1xuICAgICAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzO1xuICAgIH1cbn07XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNBcmVhV2l0aG91dEhyZWYgPSB7XG4gICAgZWxlbWVudDogXCJkaXZcIixcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxtYXAgbmFtZT1cImltYWdlLW1hcC1hcmVhLWhyZWYtdGVzdFwiPicgKyAnPGFyZWEgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArICc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtYXJlYS1ocmVmLXRlc3RcIiBhbHQ9XCJcIiBzcmM9XCInICsgZ2lmICsgJ1wiPic7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJhcmVhXCIpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAgICAgICAvLyBmaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4gICAgICAgICAgICAvLyBGaXJlZm94IGxvYWRzIHRoZSBEYXRhVVJJIGFzeW5jaHJvbm91c2x5LCBjYXVzaW5nIGEgZmFsc2UtbmVnYXRpdmVcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXNUYXJnZXQ7XG4gICAgfVxufTtcbnZhciBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzID0ge1xuICAgIG5hbWU6IFwiY2FuLWZvY3VzLWF1ZGlvLXdpdGhvdXQtY29udHJvbHNcIixcbiAgICBlbGVtZW50OiBcImF1ZGlvXCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gaW52YWxpZCBtZWRpYSBmaWxlIGNhbiB0cmlnZ2VyIHdhcm5pbmcgaW4gY29uc29sZSwgZGF0YS11cmkgdG8gcHJldmVudCBIVFRQIHJlcXVlc3RcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3JjXCIsIGdpZik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gSUU5IG1heSB0aHJvdyBcIkVycm9yOiBOb3QgaW1wbGVtZW50ZWRcIlxuICAgICAgICB9XG4gICAgfVxufTtcbnZhciBpbnZhbGlkR2lmID0gXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL1paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpcIjtcbi8vIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMzVcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbnZhciBmb2N1c0Jyb2tlbkltYWdlTWFwID0ge1xuICAgIGVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8bWFwIG5hbWU9XCJicm9rZW4taW1hZ2UtbWFwLXRlc3RcIj48YXJlYSBocmVmPVwiI3ZvaWRcIiBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICsgJzxpbWcgdXNlbWFwPVwiI2Jyb2tlbi1pbWFnZS1tYXAtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicgKyBpbnZhbGlkR2lmICsgJ1wiPic7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJhcmVhXCIpO1xuICAgIH1cbn07XG4vLyBDaGlsZHJlbiBvZiBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG52YXIgZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveCA9IHtcbiAgICBlbGVtZW50OiBcImRpdlwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcIi0xXCIpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIFwiZGlzcGxheTogLXdlYmtpdC1mbGV4OyBkaXNwbGF5OiAtbXMtZmxleGJveDsgZGlzcGxheTogZmxleDtcIik7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxzcGFuIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+aGVsbG88L3NwYW4+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcihcInNwYW5cIik7XG4gICAgfVxufTtcbi8vIGZpZWxkc2V0W3RhYmluZGV4PTBdW2Rpc2FibGVkXSBzaG91bGQgbm90IGJlIGZvY3VzYWJsZSwgYnV0IEJsaW5rIGFuZCBXZWJLaXQgZGlzYWdyZWVcbi8vIEBzcGVjaWZpY2F0aW9uIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9kaXNhYmxlZC1lbGVtZW50cy5odG1sI2NvbmNlcHQtZWxlbWVudC1kaXNhYmxlZFxuLy8gQGJyb3dzZXItaXNzdWUgQ2hyb21pdW0gaHR0cHM6Ly9jcmJ1Zy5jb20vNDUzODQ3XG4vLyBAYnJvd3Nlci1pc3N1ZSBXZWJLaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTA4NlxudmFyIGZvY3VzRmllbGRzZXREaXNhYmxlZCA9IHtcbiAgICBlbGVtZW50OiBcImZpZWxkc2V0XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsIDApO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcImRpc2FibGVkXCIsIFwiZGlzYWJsZWRcIik7XG4gICAgfVxufTtcbnZhciBmb2N1c0ZpZWxkc2V0ID0ge1xuICAgIGVsZW1lbnQ6IFwiZmllbGRzZXRcIixcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gXCI8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPjxwPmNvbnRlbnQ8L3A+XCI7XG4gICAgfVxufTtcbi8vIGVsZW1lbnRzIHdpdGggZGlzcGxheTpmbGV4IGFyZSBmb2N1c2FibGUgaW4gSUUxMC0xMVxudmFyIGZvY3VzRmxleGJveENvbnRhaW5lciA9IHtcbiAgICBlbGVtZW50OiBcInNwYW5cIixcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgXCJkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4O1wiKTtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5oZWxsbzwvc3Bhbj4nO1xuICAgIH1cbn07XG4vLyBmb3JtW3RhYmluZGV4PTBdW2Rpc2FibGVkXSBzaG91bGQgYmUgZm9jdXNhYmxlIGFzIHRoZVxuLy8gc3BlY2lmaWNhdGlvbiBkb2Vzbid0IGtub3cgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBvbiB0aGUgZm9ybSBlbGVtZW50XG4vLyBAc3BlY2lmaWNhdGlvbiBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZm9ybXMuaHRtbCN0aGUtZm9ybS1lbGVtZW50XG52YXIgZm9jdXNGb3JtRGlzYWJsZWQgPSB7XG4gICAgZWxlbWVudDogXCJmb3JtXCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsIDApO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcImRpc2FibGVkXCIsIFwiZGlzYWJsZWRcIik7XG4gICAgfVxufTtcbi8vIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMzVcbi8vIGZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjBcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci1pc21hcFxudmFyIGZvY3VzSW1nSXNtYXAgPSB7XG4gICAgZWxlbWVudDogXCJhXCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmhyZWYgPSBcIiN2b2lkXCI7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxpbWcgaXNtYXAgc3JjPVwiJyArIGdpZiArICdcIiBhbHQ9XCJcIj4nO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW1nXCIpO1xuICAgIH1cbn07XG4vLyBOT1RFOiBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNJbWdVc2VtYXBUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiBcImRpdlwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj48YXJlYSBocmVmPVwiI3ZvaWRcIiBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICsgJzxpbWcgdXNlbWFwPVwiI2ltYWdlLW1hcC10YWJpbmRleC10ZXN0XCIgdGFiaW5kZXg9XCItMVwiIGFsdD1cIlwiICcgKyAnc3JjPVwiJyArIGdpZiArICdcIj4nO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW1nXCIpO1xuICAgIH1cbn07XG52YXIgZm9jdXNJbkhpZGRlbklmcmFtZSA9IHtcbiAgICBlbGVtZW50OiBmdW5jdGlvbiBlbGVtZW50KHdyYXBwZXIsIF9kb2N1bWVudCkge1xuICAgICAgICB2YXIgaWZyYW1lID0gX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7XG4gICAgICAgIC8vIGlmcmFtZSBtdXN0IGJlIHBhcnQgb2YgdGhlIERPTSBiZWZvcmUgYWNjZXNzaW5nIHRoZSBjb250ZW50V2luZG93IGlzIHBvc3NpYmxlXG4gICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgICAgICAgLy8gY3JlYXRlIHRoZSBpZnJhbWUncyBkZWZhdWx0IGRvY3VtZW50ICg8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4pXG4gICAgICAgIHZhciBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICAgICAgICBpZnJhbWVEb2N1bWVudC5vcGVuKCk7XG4gICAgICAgIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gICAgICAgIHJldHVybiBpZnJhbWU7XG4gICAgfSxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShpZnJhbWUpIHtcbiAgICAgICAgaWZyYW1lLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgICB2YXIgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgICAgICAgdmFyIGlucHV0ID0gaWZyYW1lRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuICAgICAgICBpZnJhbWVEb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlucHV0KTtcbiAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGlmcmFtZSkge1xuICAgICAgICB2YXIgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgICAgICAgdmFyIGZvY3VzID0gaWZyYW1lRG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImlucHV0XCIpO1xuICAgICAgICByZXR1cm4gaWZyYW1lRG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXM7XG4gICAgfVxufTtcbnZhciByZXN1bHQgPSAhcGxhdGZvcm0uaXMuV0VCS0lUO1xuZnVuY3Rpb24gZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3QoKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIEZpcmVmb3ggYWxsb3dzICphbnkqIHZhbHVlIGFuZCB0cmVhdHMgaW52YWxpZCB2YWx1ZXMgbGlrZSB0YWJpbmRleD1cIi0xXCJcbi8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgwNTRcbnZhciBmb2N1c0ludmFsaWRUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiBcImRpdlwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcImludmFsaWQtdmFsdWVcIik7XG4gICAgfVxufTtcbnZhciBmb2N1c0xhYmVsVGFiaW5kZXggPSB7XG4gICAgZWxlbWVudDogXCJsYWJlbFwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcIi0xXCIpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgLy8gZm9yY2UgbGF5b3V0IGluIENocm9tZSA0OSwgb3RoZXJ3aXNlIHRoZSBlbGVtZW50IHdvbid0IGJlIGZvY3VzYWJsZVxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqLyB2YXIgdmFyaWFibGVUb1ByZXZlbnREZWFkQ29kZUVsaW1pbmF0aW9uID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi8gZWxlbWVudC5mb2N1cygpO1xuICAgICAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQ7XG4gICAgfVxufTtcbnZhciBzdmcgPSBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiXCIgKyBcIkc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQnBaRDBpYzNabklqNDhkR1Y0ZENCNFBTSXhNQ0lnZVQwaU1qQWlJR2xrUFNKXCIgKyBcInpkbWN0YkdsdWF5MTBaWGgwSWo1MFpYaDBQQzkwWlhoMFBqd3ZjM1puUGc9PVwiO1xuLy8gTm90ZTogSUUxMCBvbiBCcm93c2VyU3RhY2sgZG9lcyBub3QgbGlrZSB0aGlzIHRlc3RcbnZhciBmb2N1c09iamVjdFN2Z0hpZGRlbiA9IHtcbiAgICBlbGVtZW50OiBcIm9iamVjdFwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwiaW1hZ2Uvc3ZnK3htbFwiKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkYXRhXCIsIHN2Zyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgXCIyMDBcIik7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIFwiNTBcIik7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG4gICAgfVxufTtcbi8vIE5vdGU6IElFMTAgb24gQnJvd3NlclN0YWNrIGRvZXMgbm90IGxpa2UgdGhpcyB0ZXN0XG52YXIgZm9jdXNPYmplY3RTdmcgPSB7XG4gICAgbmFtZTogXCJjYW4tZm9jdXMtb2JqZWN0LXN2Z1wiLFxuICAgIGVsZW1lbnQ6IFwib2JqZWN0XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcInR5cGVcIiwgXCJpbWFnZS9zdmcreG1sXCIpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcImRhdGFcIiwgc3ZnKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBcIjIwMFwiKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgXCI1MFwiKTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgICAgIGlmIChwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAgICAgLy8gRmlyZWZveCBzZWVtcyB0byBiZSBoYW5kbGluZyB0aGUgb2JqZWN0IGNyZWF0aW9uIGFzeW5jaHJvbm91c2x5IGFuZCB0aGVyZWJ5IHByb2R1Y2VzIGEgZmFsc2UgbmVnYXRpdmUgdGVzdCByZXN1bHQuXG4gICAgICAgICAgICAvLyBCZWNhdXNlIHdlIGtub3cgRmlyZWZveCBpcyBhYmxlIHRvIGZvY3VzIG9iamVjdCBlbGVtZW50cyByZWZlcmVuY2luZyBTVkdzLCB3ZSBzaW1wbHkgY2hlYXQgYnkgc25pZmZpbmcgdGhlIHVzZXIgYWdlbnQgc3RyaW5nXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQ7XG4gICAgfVxufTtcbi8vIEV2ZXJ5IEVudmlyb25tZW50IGV4Y2VwdCBJRTkgY29uc2lkZXJzIFNXRiBvYmplY3RzIGZvY3VzYWJsZVxudmFyIHJlc3VsdCQxID0gIXBsYXRmb3JtLmlzLklFOTtcbmZ1bmN0aW9uIGZvY3VzT2JqZWN0U3dmKCkge1xuICAgIHJldHVybiByZXN1bHQkMTtcbn1cbnZhciBmb2N1c1JlZGlyZWN0SW1nVXNlbWFwID0ge1xuICAgIGVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8bWFwIG5hbWU9XCJmb2N1cy1yZWRpcmVjdC1pbWctdXNlbWFwXCI+PGFyZWEgaHJlZj1cIiN2b2lkXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArICc8aW1nIHVzZW1hcD1cIiNmb2N1cy1yZWRpcmVjdC1pbWctdXNlbWFwXCIgYWx0PVwiXCIgJyArICdzcmM9XCInICsgZ2lmICsgJ1wiPic7XG4gICAgICAgIC8vIGZvY3VzIHRoZSA8aW1nPiwgbm90IHRoZSA8ZGl2PlxuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW1nXCIpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcihcImFyZWFcIik7XG4gICAgICAgIHJldHVybiBfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGFyZ2V0O1xuICAgIH1cbn07XG4vLyBzZWUgaHR0cHM6Ly9qc2Jpbi5jb20vbmVuaXJpc2FnZS9lZGl0P2h0bWwsanMsY29uc29sZSxvdXRwdXRcbnZhciBmb2N1c1JlZGlyZWN0TGVnZW5kID0ge1xuICAgIGVsZW1lbnQ6IFwiZmllbGRzZXRcIixcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+PGlucHV0IHRhYmluZGV4PVwiLTFcIj48aW5wdXQgdGFiaW5kZXg9XCIwXCI+JztcbiAgICAgICAgLy8gdGFrZSBjYXJlIG9mIGZvY3VzIGluIHZhbGlkYXRlKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgICAgIHZhciBmb2N1c2FibGUgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4PVwiLTFcIl0nKTtcbiAgICAgICAgdmFyIHRhYmJhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0YWJpbmRleD1cIjBcIl0nKTtcbiAgICAgICAgLy8gRmlyZWZveCByZXF1aXJlcyB0aGlzIHRlc3QgdG8gZm9jdXMgdGhlIDxmaWVsZHNldD4gZmlyc3QsIHdoaWxlIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBpblxuICAgICAgICAvLyBodHRwczovL2pzYmluLmNvbS9uZW5pcmlzYWdlL2VkaXQ/aHRtbCxqcyxjb25zb2xlLG91dHB1dFxuICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGVsZW1lbnQucXVlcnlTZWxlY3RvcihcImxlZ2VuZFwiKS5mb2N1cygpO1xuICAgICAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzYWJsZSAmJiBcImZvY3VzYWJsZVwiIHx8IF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0YWJiYWJsZSAmJiBcInRhYmJhYmxlXCIgfHwgXCJcIjtcbiAgICB9XG59O1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8yMVxudmFyIGZvY3VzU2Nyb2xsQm9keSA9IHtcbiAgICBlbGVtZW50OiBcImRpdlwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBcIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBvdmVyZmxvdzogYXV0bztcIik7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2XCIpO1xuICAgIH1cbn07XG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG52YXIgZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3cgPSB7XG4gICAgZWxlbWVudDogXCJkaXZcIixcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgXCJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDtcIik7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nO1xuICAgIH1cbn07XG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG52YXIgZm9jdXNTY3JvbGxDb250YWluZXIgPSB7XG4gICAgZWxlbWVudDogXCJkaXZcIixcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgXCJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgb3ZlcmZsb3c6IGF1dG87XCIpO1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8ZGl2IHN0eWxlPVwid2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDQwcHg7XCI+c2Nyb2xsYWJsZSBjb250ZW50PC9kaXY+JztcbiAgICB9XG59O1xudmFyIGZvY3VzU3VtbWFyeSA9IHtcbiAgICBlbGVtZW50OiBcImRldGFpbHNcIixcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gXCI8c3VtbWFyeT5mb288L3N1bW1hcnk+PHA+Y29udGVudDwvcD5cIjtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgfVxufTtcbmZ1bmN0aW9uIG1ha2VGb2N1c2FibGVGb3JlaWduT2JqZWN0KCkge1xuICAgIC8vIENvbnN0cnVjdHMgPGZvcmVpZ25PYmplY3Qgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIvPjwvZm9yZWlnbk9iamVjdD5cbiAgICAvLyB3aXRob3V0IHJhaXNpbmcgYSBUcnVzdGVkIFR5cGVzIHZpb2xhdGlvblxuICAgIHZhciBmb3JlaWduT2JqZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJmb3JlaWduT2JqZWN0XCIpO1xuICAgIGZvcmVpZ25PYmplY3Qud2lkdGguYmFzZVZhbC52YWx1ZSA9IDMwO1xuICAgIGZvcmVpZ25PYmplY3QuaGVpZ2h0LmJhc2VWYWwudmFsdWUgPSAzMDtcbiAgICBmb3JlaWduT2JqZWN0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKSk7XG4gICAgZm9yZWlnbk9iamVjdC5sYXN0Q2hpbGQudHlwZSA9IFwidGV4dFwiO1xuICAgIHJldHVybiBmb3JlaWduT2JqZWN0O1xufVxuZnVuY3Rpb24gZm9jdXNTdmdGb3JlaWduT2JqZWN0SGFjayhlbGVtZW50KSB7XG4gICAgLy8gRWRnZTEzLCBFZGdlMTQ6IGZvcmVpZ25PYmplY3QgZm9jdXMgaGFja1xuICAgIC8vIGh0dHBzOi8vanNiaW4uY29tL2t1bmVoaW51Z2kvZWRpdD9odG1sLGpzLG91dHB1dFxuICAgIC8vIGh0dHBzOi8vanNiaW4uY29tL2ZhamFnaS8zL2VkaXQ/aHRtbCxqcyxvdXRwdXRcbiAgICB2YXIgaXNTdmdFbGVtZW50ID0gZWxlbWVudC5vd25lclNWR0VsZW1lbnQgfHwgZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBcInN2Z1wiO1xuICAgIGlmICghaXNTdmdFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gaW5qZWN0IGFuZCBmb2N1cyBhbiA8aW5wdXQ+IGVsZW1lbnQgaW50byB0aGUgU1ZHIGVsZW1lbnQgdG8gcmVjZWl2ZSBmb2N1c1xuICAgIHZhciBmb3JlaWduT2JqZWN0ID0gbWFrZUZvY3VzYWJsZUZvcmVpZ25PYmplY3QoKTtcbiAgICBlbGVtZW50LmFwcGVuZENoaWxkKGZvcmVpZ25PYmplY3QpO1xuICAgIHZhciBpbnB1dCA9IGZvcmVpZ25PYmplY3QucXVlcnlTZWxlY3RvcihcImlucHV0XCIpO1xuICAgIGlucHV0LmZvY3VzKCk7XG4gICAgLy8gdXBvbiBkaXNhYmxpbmcgdGhlIGFjdGl2ZUVsZW1lbnQsIElFIGFuZCBFZGdlXG4gICAgLy8gd2lsbCBub3Qgc2hpZnQgZm9jdXMgdG8gPGJvZHk+IGxpa2UgYWxsIHRoZSBvdGhlclxuICAgIC8vIGJyb3dzZXJzLCBidXQgaW5zdGVhZCBmaW5kIHRoZSBmaXJzdCBmb2N1c2FibGVcbiAgICAvLyBhbmNlc3RvciBhbmQgc2hpZnQgZm9jdXMgdG8gdGhhdFxuICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAvLyBjbGVhbiB1cFxuICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQoZm9yZWlnbk9iamVjdCk7XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBnZW5lcmF0ZShlbGVtZW50KSB7XG4gICAgcmV0dXJuICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj4nICsgZWxlbWVudCArIFwiPC9zdmc+XCI7XG59XG5mdW5jdGlvbiBmb2N1cyhlbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBIVE1MRWxlbWVudC5wcm90b3R5cGUuZm9jdXMuY2FsbChlbGVtZW50KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGZvY3VzU3ZnRm9yZWlnbk9iamVjdEhhY2soZWxlbWVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgIGZvY3VzKGZvY3VzVGFyZ2V0KTtcbiAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzVGFyZ2V0O1xufVxudmFyIGZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlID0ge1xuICAgIGVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGdlbmVyYXRlKCc8dGV4dCBmb2N1c2FibGU9XCJ0cnVlXCI+YTwvdGV4dD4nKTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcihcInRleHRcIik7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbn07XG52YXIgZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSA9IHtcbiAgICBlbGVtZW50OiBcImRpdlwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZSgnPHRleHQgdGFiaW5kZXg9XCIwXCI+YTwvdGV4dD4nKTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcihcInRleHRcIik7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbn07XG52YXIgZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlID0ge1xuICAgIGVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGdlbmVyYXRlKCc8dGV4dCB0YWJpbmRleD1cIi0xXCI+YTwvdGV4dD4nKTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcihcInRleHRcIik7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbn07XG52YXIgZm9jdXNTdmdVc2VUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiBcImRpdlwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZShbXG4gICAgICAgICAgICAnPGcgaWQ9XCJhbGx5LXRlc3QtdGFyZ2V0XCI+PGEgeGxpbms6aHJlZj1cIiN2b2lkXCI+PHRleHQ+bGluazwvdGV4dD48L2E+PC9nPicsXG4gICAgICAgICAgICAnPHVzZSB4bGluazpocmVmPVwiI2FsbHktdGVzdC10YXJnZXRcIiB4PVwiMFwiIHk9XCIwXCIgdGFiaW5kZXg9XCItMVwiIC8+J1xuICAgICAgICBdLmpvaW4oXCJcIikpO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwidXNlXCIpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlXG59O1xudmFyIGZvY3VzU3ZnRm9yZWlnbm9iamVjdFRhYmluZGV4ID0ge1xuICAgIGVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGdlbmVyYXRlKCc8Zm9yZWlnbk9iamVjdCB0YWJpbmRleD1cIi0xXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgLz48L2ZvcmVpZ25PYmplY3Q+Jyk7XG4gICAgICAgIC8vIFNhZmFyaSA4J3MgcXVlcnNTZWxlY3RvcigpIGNhbid0IGlkZW50aWZ5IGZvcmVpZ25PYmplY3QsIGJ1dCBnZXRFbGVtZW50eUJ5VGFnTmFtZSgpIGNhblxuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZm9yZWlnbk9iamVjdFwiKSB8fCBlbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZm9yZWlnbk9iamVjdFwiKVswXTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxufTtcbi8vIEZpcmVmb3ggc2VlbXMgdG8gYmUgaGFuZGxpbmcgdGhlIFNWRy1kb2N1bWVudC1pbi1pZnJhbWUgY3JlYXRpb24gYXN5bmNocm9ub3VzbHlcbi8vIGFuZCB0aGVyZWJ5IHByb2R1Y2VzIGEgZmFsc2UgbmVnYXRpdmUgdGVzdCByZXN1bHQuIFRodXMgdGhlIHRlc3QgaXMgcG9pbnRsZXNzXG4vLyBhbmQgd2UgcmVzb3J0IHRvIFVBIHNuaWZmaW5nIG9uY2UgYWdhaW4uXG4vLyBzZWUgaHR0cDovL2pzYmluLmNvbS92dW5hZG9ob2tvLzEvZWRpdD9qcyxjb25zb2xlLG91dHB1dFxudmFyIHJlc3VsdCQyID0gQm9vbGVhbihwbGF0Zm9ybS5pcy5HRUNLTyAmJiB0eXBlb2YgU1ZHRWxlbWVudCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTVkdFbGVtZW50LnByb3RvdHlwZS5mb2N1cyk7XG5mdW5jdGlvbiBmb2N1c1N2Z0luSWZyYW1lKCkge1xuICAgIHJldHVybiByZXN1bHQkMjtcbn1cbnZhciBmb2N1c1N2ZyA9IHtcbiAgICBlbGVtZW50OiBcImRpdlwiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZShcIlwiKTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuZmlyc3RDaGlsZDtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxufTtcbi8vIEZpcmVmb3ggYWxsb3dzICphbnkqIHZhbHVlIGFuZCB0cmVhdHMgaW52YWxpZCB2YWx1ZXMgbGlrZSB0YWJpbmRleD1cIi0xXCJcbi8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgwNTRcbnZhciBmb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzID0ge1xuICAgIGVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsIFwiM3hcIik7XG4gICAgfVxufTtcbnZhciBmb2N1c1RhYmxlID0ge1xuICAgIGVsZW1lbnQ6IFwidGFibGVcIixcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50LCB3cmFwcGVyLCBfZG9jdW1lbnQpIHtcbiAgICAgICAgLy8gSUU5IGhhcyBhIHByb2JsZW0gcmVwbGFjaW5nIFRCT0RZIGNvbnRlbnRzIHdpdGggaW5uZXJIVE1MLlxuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvODA5NzA1NS81MTUxMjRcbiAgICAgICAgLy8gZWxlbWVudC5pbm5lckhUTUwgPSAnPHRyPjx0ZD5jZWxsPC90ZD48L3RyPic7XG4gICAgICAgIHZhciBmcmFnbWVudCA9IF9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmlubmVySFRNTCA9IFwiPHRyPjx0ZD5jZWxsPC90ZD48L3RyPlwiO1xuICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGZyYWdtZW50KTtcbiAgICB9XG59O1xudmFyIGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHMgPSB7XG4gICAgZWxlbWVudDogXCJ2aWRlb1wiLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIGludmFsaWQgbWVkaWEgZmlsZSBjYW4gdHJpZ2dlciB3YXJuaW5nIGluIGNvbnNvbGUsIGRhdGEtdXJpIHRvIHByZXZlbnQgSFRUUCByZXF1ZXN0XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcInNyY1wiLCBnaWYpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIElFOSBtYXkgdGhyb3cgXCJFcnJvcjogTm90IGltcGxlbWVudGVkXCJcbiAgICAgICAgfVxuICAgIH1cbn07XG4vLyBodHRwczovL2pzYmluLmNvbS92YWZhYmEvMy9lZGl0P2h0bWwsanMsY29uc29sZSxvdXRwdXRcbnZhciByZXN1bHQkMyA9IHBsYXRmb3JtLmlzLkdFQ0tPIHx8IHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRTtcbmZ1bmN0aW9uIHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHJlc3VsdCQzO1xufVxudmFyIHRlc3RDYWxsYmFja3MgPSB7XG4gICAgY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcjogY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcixcbiAgICBmb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdDogZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3QsXG4gICAgZm9jdXNPYmplY3RTd2Y6IGZvY3VzT2JqZWN0U3dmLFxuICAgIGZvY3VzU3ZnSW5JZnJhbWU6IGZvY3VzU3ZnSW5JZnJhbWUsXG4gICAgdGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbjogdGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvblxufTtcbnZhciB0ZXN0RGVzY3JpcHRpb25zID0ge1xuICAgIGZvY3VzQXJlYUltZ1RhYmluZGV4OiBmb2N1c0FyZWFJbWdUYWJpbmRleCxcbiAgICBmb2N1c0FyZWFUYWJpbmRleDogZm9jdXNBcmVhVGFiaW5kZXgsXG4gICAgZm9jdXNBcmVhV2l0aG91dEhyZWY6IGZvY3VzQXJlYVdpdGhvdXRIcmVmLFxuICAgIGZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHM6IGZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHMsXG4gICAgZm9jdXNCcm9rZW5JbWFnZU1hcDogZm9jdXNCcm9rZW5JbWFnZU1hcCxcbiAgICBmb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94OiBmb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94LFxuICAgIGZvY3VzRmllbGRzZXREaXNhYmxlZDogZm9jdXNGaWVsZHNldERpc2FibGVkLFxuICAgIGZvY3VzRmllbGRzZXQ6IGZvY3VzRmllbGRzZXQsXG4gICAgZm9jdXNGbGV4Ym94Q29udGFpbmVyOiBmb2N1c0ZsZXhib3hDb250YWluZXIsXG4gICAgZm9jdXNGb3JtRGlzYWJsZWQ6IGZvY3VzRm9ybURpc2FibGVkLFxuICAgIGZvY3VzSW1nSXNtYXA6IGZvY3VzSW1nSXNtYXAsXG4gICAgZm9jdXNJbWdVc2VtYXBUYWJpbmRleDogZm9jdXNJbWdVc2VtYXBUYWJpbmRleCxcbiAgICBmb2N1c0luSGlkZGVuSWZyYW1lOiBmb2N1c0luSGlkZGVuSWZyYW1lLFxuICAgIGZvY3VzSW52YWxpZFRhYmluZGV4OiBmb2N1c0ludmFsaWRUYWJpbmRleCxcbiAgICBmb2N1c0xhYmVsVGFiaW5kZXg6IGZvY3VzTGFiZWxUYWJpbmRleCxcbiAgICBmb2N1c09iamVjdFN2ZzogZm9jdXNPYmplY3RTdmcsXG4gICAgZm9jdXNPYmplY3RTdmdIaWRkZW46IGZvY3VzT2JqZWN0U3ZnSGlkZGVuLFxuICAgIGZvY3VzUmVkaXJlY3RJbWdVc2VtYXA6IGZvY3VzUmVkaXJlY3RJbWdVc2VtYXAsXG4gICAgZm9jdXNSZWRpcmVjdExlZ2VuZDogZm9jdXNSZWRpcmVjdExlZ2VuZCxcbiAgICBmb2N1c1Njcm9sbEJvZHk6IGZvY3VzU2Nyb2xsQm9keSxcbiAgICBmb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdzogZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3csXG4gICAgZm9jdXNTY3JvbGxDb250YWluZXI6IGZvY3VzU2Nyb2xsQ29udGFpbmVyLFxuICAgIGZvY3VzU3VtbWFyeTogZm9jdXNTdW1tYXJ5LFxuICAgIGZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlOiBmb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSxcbiAgICBmb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlOiBmb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlLFxuICAgIGZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZTogZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlLFxuICAgIGZvY3VzU3ZnVXNlVGFiaW5kZXg6IGZvY3VzU3ZnVXNlVGFiaW5kZXgsXG4gICAgZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXg6IGZvY3VzU3ZnRm9yZWlnbm9iamVjdFRhYmluZGV4LFxuICAgIGZvY3VzU3ZnOiBmb2N1c1N2ZyxcbiAgICBmb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzOiBmb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzLFxuICAgIGZvY3VzVGFibGU6IGZvY3VzVGFibGUsXG4gICAgZm9jdXNWaWRlb1dpdGhvdXRDb250cm9sczogZm9jdXNWaWRlb1dpdGhvdXRDb250cm9sc1xufTtcbmZ1bmN0aW9uIGV4ZWN1dGVUZXN0cygpIHtcbiAgICB2YXIgcmVzdWx0cyA9IGRldGVjdEZvY3VzKHRlc3REZXNjcmlwdGlvbnMpO1xuICAgIE9iamVjdC5rZXlzKHRlc3RDYWxsYmFja3MpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIHJlc3VsdHNba2V5XSA9IHRlc3RDYWxsYmFja3Nba2V5XSgpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRzO1xufVxudmFyIHN1cHBvcnRzQ2FjaGUgPSBudWxsO1xuZnVuY3Rpb24gX3N1cHBvcnRzKCkge1xuICAgIGlmIChzdXBwb3J0c0NhY2hlKSB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0c0NhY2hlO1xuICAgIH1cbiAgICBzdXBwb3J0c0NhY2hlID0gY2FjaGUkMS5nZXQoKTtcbiAgICBpZiAoIXN1cHBvcnRzQ2FjaGUudGltZSkge1xuICAgICAgICBjYWNoZSQxLnNldChleGVjdXRlVGVzdHMoKSk7XG4gICAgICAgIHN1cHBvcnRzQ2FjaGUgPSBjYWNoZSQxLmdldCgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwcG9ydHNDYWNoZTtcbn1cbnZhciBzdXBwb3J0cyA9IHZvaWQgMDtcbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9pbmZyYXN0cnVjdHVyZS5odG1sI3J1bGVzLWZvci1wYXJzaW5nLWludGVnZXJzXG4vLyBOT1RFOiBhbGwgYnJvd3NlcnMgYWdyZWUgdG8gYWxsb3cgdHJhaWxpbmcgc3BhY2VzIGFzIHdlbGxcbnZhciB2YWxpZEludGVnZXJQYXR0ZXJuTm9UcmFpbGluZyA9IC9eXFxzKigtfFxcKyk/WzAtOV0rXFxzKiQvO1xudmFyIHZhbGlkSW50ZWdlclBhdHRlcm5XaXRoVHJhaWxpbmcgPSAvXlxccyooLXxcXCspP1swLTldKy4qJC87XG5mdW5jdGlvbiBpc1ZhbGlkVGFiaW5kZXgoY29udGV4dCkge1xuICAgIGlmICghc3VwcG9ydHMpIHtcbiAgICAgICAgc3VwcG9ydHMgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIHZhbGlkSW50ZWdlclBhdHRlcm4gPSBzdXBwb3J0cy5mb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzID8gdmFsaWRJbnRlZ2VyUGF0dGVybldpdGhUcmFpbGluZyA6IHZhbGlkSW50ZWdlclBhdHRlcm5Ob1RyYWlsaW5nO1xuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiBcImlzL3ZhbGlkLXRhYmluZGV4XCIsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIC8vIEVkZ2UgMTQgaGFzIGEgY2FwaXRhbGl6YXRpb24gcHJvYmxlbSBvbiBTVkcgZWxlbWVudHMsXG4gICAgLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzkyODIwNTgvXG4gICAgdmFyIGhhc1RhYmluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKTtcbiAgICB2YXIgaGFzVGFiSW5kZXggPSBlbGVtZW50Lmhhc0F0dHJpYnV0ZShcInRhYkluZGV4XCIpO1xuICAgIGlmICghaGFzVGFiaW5kZXggJiYgIWhhc1RhYkluZGV4KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gb2xkZXIgRmlyZWZveCBhbmQgSW50ZXJuZXQgRXhwbG9yZXIgZG9uJ3Qgc3VwcG9ydCB0YWJpbmRleCBvbiBTVkcgZWxlbWVudHNcbiAgICB2YXIgaXNTdmdFbGVtZW50ID0gZWxlbWVudC5vd25lclNWR0VsZW1lbnQgfHwgZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBcInN2Z1wiO1xuICAgIGlmIChpc1N2Z0VsZW1lbnQgJiYgIXN1cHBvcnRzLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBAYnJvd3Nlci1pc3N1ZSBHZWNrbyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4MDU0XG4gICAgaWYgKHN1cHBvcnRzLmZvY3VzSW52YWxpZFRhYmluZGV4KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBhbiBlbGVtZW50IG1hdGNoZXMgdGhlIHRhYmluZGV4IHNlbGVjdG9yIGV2ZW4gaWYgaXRzIHZhbHVlIGlzIGludmFsaWRcbiAgICB2YXIgdGFiaW5kZXggPSBlbGVtZW50LmdldEF0dHJpYnV0ZShoYXNUYWJpbmRleCA/IFwidGFiaW5kZXhcIiA6IFwidGFiSW5kZXhcIik7XG4gICAgLy8gSUUxMSBwYXJzZXMgdGFiaW5kZXg9XCJcIiBhcyB0aGUgdmFsdWUgXCItMzI3NjhcIlxuICAgIC8vIEBicm93c2VyLWlzc3VlIFRyaWRlbnQgaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vSUUvZmVlZGJhY2svZGV0YWlscy8xMDcyOTY1XG4gICAgaWYgKHRhYmluZGV4ID09PSBcIi0zMjc2OFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIEJvb2xlYW4odGFiaW5kZXggJiYgdmFsaWRJbnRlZ2VyUGF0dGVybi50ZXN0KHRhYmluZGV4KSk7XG59XG5mdW5jdGlvbiB0YWJpbmRleFZhbHVlKGVsZW1lbnQpIHtcbiAgICBpZiAoIWlzVmFsaWRUYWJpbmRleChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLy8gRWRnZSAxNCBoYXMgYSBjYXBpdGFsaXphdGlvbiBwcm9ibGVtIG9uIFNWRyBlbGVtZW50cyxcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvOTI4MjA1OC9cbiAgICB2YXIgaGFzVGFiaW5kZXggPSBlbGVtZW50Lmhhc0F0dHJpYnV0ZShcInRhYmluZGV4XCIpO1xuICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gaGFzVGFiaW5kZXggPyBcInRhYmluZGV4XCIgOiBcInRhYkluZGV4XCI7XG4gICAgLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODA1NFxuICAgIHZhciB0YWJpbmRleCA9IHBhcnNlSW50KGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpLCAxMCk7XG4gICAgcmV0dXJuIGlzTmFOKHRhYmluZGV4KSA/IC0xIDogdGFiaW5kZXg7XG59XG4vLyB0aGlzIGlzIGEgc2hhcmVkIHV0aWxpdHkgZmlsZSBmb3IgZm9jdXMtcmVsZXZhbnQuanMgYW5kIHRhYmJhYmxlLmpzXG4vLyBzZXBhcmF0ZSB0ZXN0aW5nIG9mIHRoaXMgZmlsZSdzIGZ1bmN0aW9ucyBpcyBub3QgbmVjZXNzYXJ5LFxuLy8gYXMgdGhleSdyZSBpbXBsaWNpdGx5IHRlc3RlZCBieSB3YXkgb2YgdGhlIGNvbnN1bWVyc1xuZnVuY3Rpb24gaXNVc2VyTW9kaWZ5V3JpdGFibGUoc3R5bGUpIHtcbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvMTk5OS9XRC1jc3MzLXVzZXJpbnQtMTk5OTA5MTYjdXNlci1tb2RpZnlcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzE3XG4gICAgdmFyIHVzZXJNb2RpZnkgPSBzdHlsZS53ZWJraXRVc2VyTW9kaWZ5IHx8IFwiXCI7XG4gICAgcmV0dXJuIEJvb2xlYW4odXNlck1vZGlmeSAmJiB1c2VyTW9kaWZ5LmluZGV4T2YoXCJ3cml0ZVwiKSAhPT0gLTEpO1xufVxuZnVuY3Rpb24gaGFzQ3NzT3ZlcmZsb3dTY3JvbGwoc3R5bGUpIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFwib3ZlcmZsb3dcIiksXG4gICAgICAgIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoXCJvdmVyZmxvdy14XCIpLFxuICAgICAgICBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFwib3ZlcmZsb3cteVwiKVxuICAgIF0uc29tZShmdW5jdGlvbihvdmVyZmxvdykge1xuICAgICAgICByZXR1cm4gb3ZlcmZsb3cgPT09IFwiYXV0b1wiIHx8IG92ZXJmbG93ID09PSBcInNjcm9sbFwiO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gaGFzQ3NzRGlzcGxheUZsZXgoc3R5bGUpIHtcbiAgICByZXR1cm4gc3R5bGUuZGlzcGxheS5pbmRleE9mKFwiZmxleFwiKSA+IC0xO1xufVxuZnVuY3Rpb24gaXNTY3JvbGxhYmxlQ29udGFpbmVyKGVsZW1lbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpIHtcbiAgICBpZiAobm9kZU5hbWUgIT09IFwiZGl2XCIgJiYgbm9kZU5hbWUgIT09IFwic3BhblwiKSB7XG4gICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIGFkdmFuY2VzIHNjcm9sbGFibGUgY29udGFpbmVycyBhbmQgYm9kaWVzIHRvIGZvY3VzYWJsZVxuICAgICAgICAvLyBvbmx5IGlmIHRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciBpcyA8ZGl2PiBvciA8c3Bhbj4gLSB0aGlzIGRvZXMgKm5vdCpcbiAgICAgICAgLy8gaGFwcGVuIGZvciA8c2VjdGlvbj4sIDxhcnRpY2xlPiwg4oCmXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHBhcmVudE5vZGVOYW1lICYmIHBhcmVudE5vZGVOYW1lICE9PSBcImRpdlwiICYmIHBhcmVudE5vZGVOYW1lICE9PSBcInNwYW5cIiAmJiAhaGFzQ3NzT3ZlcmZsb3dTY3JvbGwocGFyZW50U3R5bGUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IDwgZWxlbWVudC5zY3JvbGxIZWlnaHQgfHwgZWxlbWVudC5vZmZzZXRXaWR0aCA8IGVsZW1lbnQuc2Nyb2xsV2lkdGg7XG59XG52YXIgc3VwcG9ydHMkMSA9IHZvaWQgMDtcbmZ1bmN0aW9uIGlzRm9jdXNSZWxldmFudFJ1bGVzKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCwgZXhjZXB0ID0gX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZCA/IHtcbiAgICAgICAgZmxleGJveDogZmFsc2UsXG4gICAgICAgIHNjcm9sbGFibGU6IGZhbHNlLFxuICAgICAgICBzaGFkb3c6IGZhbHNlXG4gICAgfSA6IF9yZWYkZXhjZXB0O1xuICAgIGlmICghc3VwcG9ydHMkMSkge1xuICAgICAgICBzdXBwb3J0cyQxID0gX3N1cHBvcnRzKCk7XG4gICAgfVxuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiBcImlzL2ZvY3VzLXJlbGV2YW50XCIsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIGlmICghZXhjZXB0LnNoYWRvdyAmJiBlbGVtZW50LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgLy8gYSBTaGFkb3dET00gaG9zdCByZWNlaXZlcyBmb2N1cyB3aGVuIHRoZSBmb2N1cyBtb3ZlcyB0byBpdHMgY29udGVudFxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gXCJpbnB1dFwiICYmIGVsZW1lbnQudHlwZSA9PT0gXCJoaWRkZW5cIikge1xuICAgICAgICAvLyBpbnB1dFt0eXBlPVwiaGlkZGVuXCJdIHN1cHBvcnRzLmNhbm5vdCBiZSBmb2N1c2VkXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSBcImlucHV0XCIgfHwgbm9kZU5hbWUgPT09IFwic2VsZWN0XCIgfHwgbm9kZU5hbWUgPT09IFwiYnV0dG9uXCIgfHwgbm9kZU5hbWUgPT09IFwidGV4dGFyZWFcIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSBcImxlZ2VuZFwiICYmIHN1cHBvcnRzJDEuZm9jdXNSZWRpcmVjdExlZ2VuZCkge1xuICAgICAgICAvLyBzcGVjaWZpY3MgZmlsdGVyZWQgaW4gaXMvZm9jdXNhYmxlXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwibGFiZWxcIikge1xuICAgICAgICAvLyBzcGVjaWZpY3MgZmlsdGVyZWQgaW4gaXMvZm9jdXNhYmxlXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwiYXJlYVwiKSB7XG4gICAgICAgIC8vIHNwZWNpZmljcyBmaWx0ZXJlZCBpbiBpcy9mb2N1c2FibGVcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gXCJhXCIgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJocmVmXCIpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwib2JqZWN0XCIgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJ1c2VtYXBcIikpIHtcbiAgICAgICAgLy8gb2JqZWN0W3VzZW1hcF0gaXMgbm90IGZvY3VzYWJsZSBpbiBhbnkgYnJvd3NlclxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICB2YXIgc3ZnVHlwZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidHlwZVwiKTtcbiAgICAgICAgaWYgKCFzdXBwb3J0cyQxLmZvY3VzT2JqZWN0U3ZnICYmIHN2Z1R5cGUgPT09IFwiaW1hZ2Uvc3ZnK3htbFwiKSB7XG4gICAgICAgICAgICAvLyBvYmplY3RbdHlwZT1cImltYWdlL3N2Zyt4bWxcIl0gaXMgbm90IGZvY3VzYWJsZSBpbiBJbnRlcm5ldCBFeHBsb3JlclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKCFzdXBwb3J0cyQxLmZvY3VzT2JqZWN0U3dmICYmIHN2Z1R5cGUgPT09IFwiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2hcIikge1xuICAgICAgICAgICAgLy8gb2JqZWN0W3R5cGU9XCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaFwiXSBpcyBub3QgZm9jdXNhYmxlIGluIEludGVybmV0IEV4cGxvcmVyIDlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwiaWZyYW1lXCIgfHwgbm9kZU5hbWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgLy8gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXJzXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwiZW1iZWRcIiB8fCBub2RlTmFtZSA9PT0gXCJrZXlnZW5cIikge1xuICAgICAgICAvLyBlbWJlZCBpcyBjb25zaWRlcmVkIGZvY3VzLXJlbGV2YW50IGJ1dCBub3QgZm9jdXNhYmxlXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzgyXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJjb250ZW50ZWRpdGFibGVcIikpIHtcbiAgICAgICAgLy8gYWxzbyBzZWUgQ1NTIHByb3BlcnR5IHVzZXItbW9kaWZ5IGJlbG93XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwiYXVkaW9cIiAmJiAoc3VwcG9ydHMkMS5mb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKFwiY29udHJvbHNcIikpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwidmlkZW9cIiAmJiAoc3VwcG9ydHMkMS5mb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKFwiY29udHJvbHNcIikpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1N1bW1hcnkgJiYgbm9kZU5hbWUgPT09IFwic3VtbWFyeVwiKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgdmFsaWRUYWJpbmRleCA9IGlzVmFsaWRUYWJpbmRleChlbGVtZW50KTtcbiAgICBpZiAobm9kZU5hbWUgPT09IFwiaW1nXCIgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJ1c2VtYXBcIikpIHtcbiAgICAgICAgLy8gR2Vja28sIFRyaWRlbnQgYW5kIEVkZ2UgZG8gbm90IGFsbG93IGFuIGltYWdlIHdpdGggYW4gaW1hZ2UgbWFwIGFuZCB0YWJpbmRleCB0byBiZSBmb2N1c2VkLFxuICAgICAgICAvLyBpdCBhcHBlYXJzIHRoZSB0YWJpbmRleCBpcyBvdmVycnVsZWQgc28gZm9jdXMgaXMgc3RpbGwgZm9yd2FyZGVkIHRvIHRoZSA8bWFwPlxuICAgICAgICByZXR1cm4gdmFsaWRUYWJpbmRleCAmJiBzdXBwb3J0cyQxLmZvY3VzSW1nVXNlbWFwVGFiaW5kZXggfHwgc3VwcG9ydHMkMS5mb2N1c1JlZGlyZWN0SW1nVXNlbWFwO1xuICAgIH1cbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1RhYmxlICYmIChub2RlTmFtZSA9PT0gXCJ0YWJsZVwiIHx8IG5vZGVOYW1lID09PSBcInRkXCIpKSB7XG4gICAgICAgIC8vIElFMTAtMTEgc3VwcG9ydHMuY2FuIGZvY3VzIDx0YWJsZT4gYW5kIDx0ZD5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzRmllbGRzZXQgJiYgbm9kZU5hbWUgPT09IFwiZmllbGRzZXRcIikge1xuICAgICAgICAvLyBJRTEwLTExIHN1cHBvcnRzLmNhbiBmb2N1cyA8ZmllbGRzZXQ+XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgaXNTdmdFbGVtZW50ID0gbm9kZU5hbWUgPT09IFwic3ZnXCI7XG4gICAgdmFyIGlzU3ZnQ29udGVudCA9IGVsZW1lbnQub3duZXJTVkdFbGVtZW50O1xuICAgIHZhciBmb2N1c2FibGVBdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShcImZvY3VzYWJsZVwiKTtcbiAgICB2YXIgdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gXCJ1c2VcIiAmJiB0YWJpbmRleCAhPT0gbnVsbCAmJiAhc3VwcG9ydHMkMS5mb2N1c1N2Z1VzZVRhYmluZGV4KSB7XG4gICAgICAgIC8vIDx1c2U+IGNhbm5vdCBiZSBtYWRlIGZvY3VzYWJsZSBieSBhZGRpbmcgYSB0YWJpbmRleCBhdHRyaWJ1dGUgYW55d2hlcmUgYnV0IEJsaW5rIGFuZCBXZWJLaXRcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwiZm9yZWlnbm9iamVjdFwiKSB7XG4gICAgICAgIC8vIDx1c2U+IGNhbiBvbmx5IGJlIG1hZGUgZm9jdXNhYmxlIGluIEJsaW5rIGFuZCBXZWJLaXRcbiAgICAgICAgcmV0dXJuIHRhYmluZGV4ICE9PSBudWxsICYmIHN1cHBvcnRzJDEuZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXg7XG4gICAgfVxuICAgIGlmIChlbGVtZW50TWF0Y2hlcyhlbGVtZW50LCBcInN2ZyBhXCIpICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKFwieGxpbms6aHJlZlwiKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKChpc1N2Z0VsZW1lbnQgfHwgaXNTdmdDb250ZW50KSAmJiBlbGVtZW50LmZvY3VzICYmICFzdXBwb3J0cyQxLmZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSAmJiB0YWJpbmRleCA8IDApIHtcbiAgICAgICAgLy8gRmlyZWZveCA1MSBhbmQgNTIgdHJlYXQgYW55IG5hdGl2ZWx5IHRhYmJhYmxlIFNWRyBlbGVtZW50IHdpdGhcbiAgICAgICAgLy8gdGFiaW5kZXg9XCItMVwiIGFzIHRhYmJhYmxlIGFuZCBldmVyeXRoaW5nIGVsc2UgYXMgaW5lcnRcbiAgICAgICAgLy8gc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDIzNDBcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaXNTdmdFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB2YWxpZFRhYmluZGV4IHx8IHN1cHBvcnRzJDEuZm9jdXNTdmcgfHwgc3VwcG9ydHMkMS5mb2N1c1N2Z0luSWZyYW1lIHx8IC8vIEludGVybmV0IEV4cGxvcmVyIHVuZGVyc3RhbmRzIHRoZSBmb2N1c2FibGUgYXR0cmlidXRlIGludHJvZHVjZWQgaW4gU1ZHIFRpbnkgMS4yXG4gICAgICAgIEJvb2xlYW4oc3VwcG9ydHMkMS5mb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSAmJiBmb2N1c2FibGVBdHRyaWJ1dGUgJiYgZm9jdXNhYmxlQXR0cmlidXRlID09PSBcInRydWVcIik7XG4gICAgfVxuICAgIGlmIChpc1N2Z0NvbnRlbnQpIHtcbiAgICAgICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSAmJiB2YWxpZFRhYmluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgdW5kZXJzdGFuZHMgdGhlIGZvY3VzYWJsZSBhdHRyaWJ1dGUgaW50cm9kdWNlZCBpbiBTVkcgVGlueSAxLjJcbiAgICAgICAgICAgIHJldHVybiBmb2N1c2FibGVBdHRyaWJ1dGUgPT09IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwjc2VxdWVudGlhbC1mb2N1cy1uYXZpZ2F0aW9uLWFuZC10aGUtdGFiaW5kZXgtYXR0cmlidXRlXG4gICAgaWYgKHZhbGlkVGFiaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpO1xuICAgIGlmIChpc1VzZXJNb2RpZnlXcml0YWJsZShzdHlsZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzSW1nSXNtYXAgJiYgbm9kZU5hbWUgPT09IFwiaW1nXCIgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJpc21hcFwiKSkge1xuICAgICAgICAvLyBJRTEwLTExIGNvbnNpZGVycyB0aGUgPGltZz4gaW4gPGEgaHJlZj48aW1nIGlzbWFwPiBmb2N1c2FibGVcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8yMFxuICAgICAgICB2YXIgaGFzTGlua1BhcmVudCA9IGdldFBhcmVudHMoe1xuICAgICAgICAgICAgY29udGV4dDogZWxlbWVudFxuICAgICAgICB9KS5zb21lKGZ1bmN0aW9uKHBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBcImFcIiAmJiBwYXJlbnQuaGFzQXR0cmlidXRlKFwiaHJlZlwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChoYXNMaW5rUGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG4gICAgaWYgKCFleGNlcHQuc2Nyb2xsYWJsZSAmJiBzdXBwb3J0cyQxLmZvY3VzU2Nyb2xsQ29udGFpbmVyKSB7XG4gICAgICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzU2Nyb2xsQ29udGFpbmVyV2l0aG91dE92ZXJmbG93KSB7XG4gICAgICAgICAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciBkb2VzIHdpbGwgY29uc2lkZXIgdGhlIHNjcm9sbGFibGUgYXJlYSBmb2N1c2FibGVcbiAgICAgICAgICAgIC8vIGlmIHRoZSBlbGVtZW50IGlzIGEgPGRpdj4gb3IgYSA8c3Bhbj4gYW5kIGl0IGlzIGluIGZhY3Qgc2Nyb2xsYWJsZSxcbiAgICAgICAgICAgIC8vIHJlZ2FyZGxlc3Mgb2YgdGhlIENTUyBvdmVyZmxvdyBwcm9wZXJ0eVxuICAgICAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50LCBub2RlTmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChoYXNDc3NPdmVyZmxvd1Njcm9sbChzdHlsZSkpIHtcbiAgICAgICAgICAgIC8vIEZpcmVmb3ggcmVxdWlyZXMgcHJvcGVyIG92ZXJmbG93IHNldHRpbmcsIElFIGRvZXMgbm90IG5lY2Vzc2FyaWx5XG4gICAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9DU1Mvb3ZlcmZsb3dcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghZXhjZXB0LmZsZXhib3ggJiYgc3VwcG9ydHMkMS5mb2N1c0ZsZXhib3hDb250YWluZXIgJiYgaGFzQ3NzRGlzcGxheUZsZXgoc3R5bGUpKSB7XG4gICAgICAgIC8vIGVsZW1lbnRzIHdpdGggZGlzcGxheTpmbGV4IGFyZSBmb2N1c2FibGUgaW4gSUUxMC0xMVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBpZiAoIWV4Y2VwdC5zY3JvbGxhYmxlICYmIHBhcmVudCkge1xuICAgICAgICB2YXIgcGFyZW50Tm9kZU5hbWUgPSBwYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgdmFyIHBhcmVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50LCBudWxsKTtcbiAgICAgICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTY3JvbGxCb2R5ICYmIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihwYXJlbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpKSB7XG4gICAgICAgICAgICAvLyBzY3JvbGxhYmxlIGJvZGllcyBhcmUgZm9jdXNhYmxlIEludGVybmV0IEV4cGxvcmVyXG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDaGlsZHJlbiBvZiBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG4gICAgICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzQ2hpbGRyZW5PZkZvY3VzYWJsZUZsZXhib3gpIHtcbiAgICAgICAgICAgIGlmIChoYXNDc3NEaXNwbGF5RmxleChwYXJlbnRTdHlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBOT1RFOiBlbGVtZW50cyBtYXJrZWQgYXMgaW5lcnQgYXJlIG5vdCBmb2N1c2FibGUsXG4gICAgLy8gYnV0IHRoYXQgcHJvcGVydHkgaXMgbm90IGV4cG9zZWQgdG8gdGhlIERPTVxuICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwjaW5lcnRcbiAgICByZXR1cm4gZmFsc2U7XG59XG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzRm9jdXNSZWxldmFudFJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBleGNlcHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBpc0ZvY3VzUmVsZXZhbnQgPSBmdW5jdGlvbiBpc0ZvY3VzUmVsZXZhbnQoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gaXNGb2N1c1JlbGV2YW50UnVsZXMoe1xuICAgICAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgICAgICAgIGV4Y2VwdDogZXhjZXB0XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgaXNGb2N1c1JlbGV2YW50LnJ1bGVzID0gaXNGb2N1c1JlbGV2YW50UnVsZXM7XG4gICAgcmV0dXJuIGlzRm9jdXNSZWxldmFudDtcbn07XG4vLyBwcm92aWRlIGlzRm9jdXNSZWxldmFudChjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNGb2N1c1JlbGV2YW50ID0gaXNGb2N1c1JlbGV2YW50UnVsZXMuZXhjZXB0KHt9KTtcbmZ1bmN0aW9uIGZpbmRJbmRleChhcnJheSwgY2FsbGJhY2spIHtcbiAgICAvLyBhdHRlbXB0IHRvIHVzZSBuYXRpdmUgb3IgcG9seWZpbGxlZCBBcnJheSNmaW5kSW5kZXggZmlyc3RcbiAgICBpZiAoYXJyYXkuZmluZEluZGV4KSB7XG4gICAgICAgIHJldHVybiBhcnJheS5maW5kSW5kZXgoY2FsbGJhY2spO1xuICAgIH1cbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgIC8vIHNob3J0Y3V0IGlmIHRoZSBhcnJheSBpcyBlbXB0eVxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICAvLyBvdGhlcndpc2UgbG9vcCBvdmVyIGFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKXtcbiAgICAgICAgaWYgKGNhbGxiYWNrKGFycmF5W2ldLCBpLCBhcnJheSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn1cbmZ1bmN0aW9uIGdldENvbnRlbnREb2N1bWVudChub2RlKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd29ya3Mgb24gPG9iamVjdD4gYW5kIDxpZnJhbWU+XG4gICAgICAgIHJldHVybiBub2RlLmNvbnRlbnREb2N1bWVudCB8fCAvLyB3b3JrcyBvbiA8b2JqZWN0PiBhbmQgPGlmcmFtZT5cbiAgICAgICAgbm9kZS5jb250ZW50V2luZG93ICYmIG5vZGUuY29udGVudFdpbmRvdy5kb2N1bWVudCB8fCAvLyB3b3JrcyBvbiA8b2JqZWN0PiBhbmQgPGlmcmFtZT4gdGhhdCBjb250YWluIFNWR1xuICAgICAgICBub2RlLmdldFNWR0RvY3VtZW50ICYmIG5vZGUuZ2V0U1ZHRG9jdW1lbnQoKSB8fCBudWxsO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gU2VjdXJpdHlFcnJvcjogRmFpbGVkIHRvIHJlYWQgdGhlICdjb250ZW50RG9jdW1lbnQnIHByb3BlcnR5IGZyb20gJ0hUTUxPYmplY3RFbGVtZW50J1xuICAgICAgICAvLyBhbHNvIElFIG1heSB0aHJvdyBtZW1iZXIgbm90IGZvdW5kIGV4Y2VwdGlvbiBlLmcuIG9uIDxvYmplY3QgdHlwZT1cImltYWdlL3BuZ1wiPlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICAgIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChub2RlKTtcbiAgICByZXR1cm4gX2RvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcbn1cbnZhciBzaGFkb3dQcmVmaXggPSB2b2lkIDA7XG5mdW5jdGlvbiBzZWxlY3RJblNoYWRvd3Moc2VsZWN0b3IpIHtcbiAgICBpZiAodHlwZW9mIHNoYWRvd1ByZWZpeCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB2YXIgb3BlcmF0b3IgPSBjc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yKCk7XG4gICAgICAgIGlmIChvcGVyYXRvcikge1xuICAgICAgICAgICAgc2hhZG93UHJlZml4ID0gXCIsIGh0bWwgXCIgKyBvcGVyYXRvciArIFwiIFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghc2hhZG93UHJlZml4KSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RvcjtcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdG9yICsgc2hhZG93UHJlZml4ICsgc2VsZWN0b3IucmVwbGFjZSgvXFxzKixcXHMqL2csIFwiLFwiKS5zcGxpdChcIixcIikuam9pbihzaGFkb3dQcmVmaXgpO1xufVxudmFyIHNlbGVjdG9yID0gdm9pZCAwO1xuZnVuY3Rpb24gZmluZERvY3VtZW50SG9zdEVsZW1lbnQoX3dpbmRvdykge1xuICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RJblNoYWRvd3MoXCJvYmplY3QsIGlmcmFtZVwiKTtcbiAgICB9XG4gICAgaWYgKF93aW5kb3cuX2ZyYW1lRWxlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBfd2luZG93Ll9mcmFtZUVsZW1lbnQ7XG4gICAgfVxuICAgIF93aW5kb3cuX2ZyYW1lRWxlbWVudCA9IG51bGw7XG4gICAgdmFyIHBvdGVudGlhbEhvc3RzID0gX3dpbmRvdy5wYXJlbnQuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgW10uc29tZS5jYWxsKHBvdGVudGlhbEhvc3RzLCBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgIHZhciBfZG9jdW1lbnQgPSBnZXRDb250ZW50RG9jdW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGlmIChfZG9jdW1lbnQgIT09IF93aW5kb3cuZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBfd2luZG93Ll9mcmFtZUVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gX3dpbmRvdy5fZnJhbWVFbGVtZW50O1xufVxuZnVuY3Rpb24gZ2V0RnJhbWVFbGVtZW50KGVsZW1lbnQpIHtcbiAgICB2YXIgX3dpbmRvdyA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgICBpZiAoIV93aW5kb3cucGFyZW50IHx8IF93aW5kb3cucGFyZW50ID09PSBfd2luZG93KSB7XG4gICAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIHBhcmVudCBicm93c2luZyBjb250ZXh0LFxuICAgICAgICAvLyB3ZSdyZSBub3QgZ29pbmcgdG8gZ2V0IGEgZnJhbWVFbGVtZW50IGVpdGhlciB3YXlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvV2luZG93L2ZyYW1lRWxlbWVudFxuICAgICAgICAvLyBkb2VzIG5vdCB3b3JrIHdpdGhpbiA8ZW1iZWQ+IGFueXdoZXJlLCBhbmQgbm90IHdpdGhpbiBpbiA8b2JqZWN0PiBpbiBJRVxuICAgICAgICByZXR1cm4gX3dpbmRvdy5mcmFtZUVsZW1lbnQgfHwgZmluZERvY3VtZW50SG9zdEVsZW1lbnQoX3dpbmRvdyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvcmVuZGVyaW5nLmh0bWwjYmVpbmctcmVuZGVyZWRcbi8vIDxhcmVhPiBpcyBub3QgcmVuZGVyZWQsIGJ1dCB3ZSAqY29uc2lkZXIqIGl0IHZpc2libGUgdG8gc2ltcGxmaXkgdGhpcyBmdW5jdGlvbidzIHVzYWdlXG52YXIgbm90UmVuZGVyZWRFbGVtZW50c1BhdHRlcm4gPSAvXihhcmVhKSQvO1xuZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShlbGVtZW50LCBwcm9wZXJ0eSkge1xuICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTtcbn1cbmZ1bmN0aW9uIG5vdERpc3BsYXllZChfcGF0aCkge1xuICAgIHJldHVybiBfcGF0aC5zb21lKGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgLy8gZGlzcGxheTpub25lIGlzIG5vdCB2aXNpYmxlIChvcHRpbWl6ZWQgYXdheSBhdCBsYXlvdXQpXG4gICAgICAgIHJldHVybiBjb21wdXRlZFN0eWxlKGVsZW1lbnQsIFwiZGlzcGxheVwiKSA9PT0gXCJub25lXCI7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBub3RWaXNpYmxlKF9wYXRoKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkvYmxvYi9tYXN0ZXIvdWkvY29yZS5qcyNMMTA5LUwxMTRcbiAgICAvLyBOT1RFOiBhIG5lc3RlZCBlbGVtZW50IGNhbiByZXZlcnNlIHZpc2liaWxpdHk6aGlkZGVufGNvbGxhcHNlIGJ5IGV4cGxpY2l0bHkgc2V0dGluZyB2aXNpYmlsaXR5OnZpc2libGVcbiAgICAvLyBOT1RFOiB2aXNpYmlsaXR5IGNhbiBiZSBbXCJcIiwgXCJ2aXNpYmxlXCIsIFwiaGlkZGVuXCIsIFwiY29sbGFwc2VcIl1cbiAgICB2YXIgaGlkZGVuID0gZmluZEluZGV4KF9wYXRoLCBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgIHZhciB2aXNpYmlsaXR5ID0gY29tcHV0ZWRTdHlsZShlbGVtZW50LCBcInZpc2liaWxpdHlcIik7XG4gICAgICAgIHJldHVybiB2aXNpYmlsaXR5ID09PSBcImhpZGRlblwiIHx8IHZpc2liaWxpdHkgPT09IFwiY29sbGFwc2VcIjtcbiAgICB9KTtcbiAgICBpZiAoaGlkZGVuID09PSAtMSkge1xuICAgICAgICAvLyB0aGVyZSBpcyBubyBoaWRkZW4gZWxlbWVudFxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciB2aXNpYmxlID0gZmluZEluZGV4KF9wYXRoLCBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBjb21wdXRlZFN0eWxlKGVsZW1lbnQsIFwidmlzaWJpbGl0eVwiKSA9PT0gXCJ2aXNpYmxlXCI7XG4gICAgfSk7XG4gICAgaWYgKHZpc2libGUgPT09IC0xKSB7XG4gICAgICAgIC8vIHRoZXJlIGlzIG5vIHZpc2libGUgZWxlbWVudCAoYnV0IGEgaGlkZGVuIGVsZW1lbnQpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoaGlkZGVuIDwgdmlzaWJsZSkge1xuICAgICAgICAvLyB0aGVyZSBpcyBhIGhpZGRlbiBlbGVtZW50IGFuZCBpdCdzIGNsb3NlciB0aGFuIHRoZSBmaXJzdCB2aXNpYmxlIGVsZW1lbnRcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIHRoZXJlIG1heSBiZSBhIGhpZGRlbiBlbGVtZW50LCBidXQgdGhlIGNsb3Nlc3QgZWxlbWVudCBpcyB2aXNpYmxlXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gY29sbGFwc2VkUGFyZW50KF9wYXRoKSB7XG4gICAgdmFyIG9mZnNldCA9IDE7XG4gICAgaWYgKF9wYXRoWzBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwic3VtbWFyeVwiKSB7XG4gICAgICAgIG9mZnNldCA9IDI7XG4gICAgfVxuICAgIHJldHVybiBfcGF0aC5zbGljZShvZmZzZXQpLnNvbWUoZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAvLyBcImNvbnRlbnQgY2hpbGRyZW5cIiBvZiBhIGNsb3NlZCBkZXRhaWxzIGVsZW1lbnQgYXJlIG5vdCB2aXNpYmxlXG4gICAgICAgIHJldHVybiBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiZGV0YWlsc1wiICYmIGVsZW1lbnQub3BlbiA9PT0gZmFsc2U7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBpc1Zpc2libGVSdWxlcygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsIGV4Y2VwdCA9IF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWQgPyB7XG4gICAgICAgIG5vdFJlbmRlcmVkOiBmYWxzZSxcbiAgICAgICAgY3NzRGlzcGxheTogZmFsc2UsXG4gICAgICAgIGNzc1Zpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICBkZXRhaWxzRWxlbWVudDogZmFsc2UsXG4gICAgICAgIGJyb3dzaW5nQ29udGV4dDogZmFsc2VcbiAgICB9IDogX3JlZiRleGNlcHQ7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6IFwiaXMvdmlzaWJsZVwiLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFleGNlcHQubm90UmVuZGVyZWQgJiYgbm90UmVuZGVyZWRFbGVtZW50c1BhdHRlcm4udGVzdChub2RlTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBfcGF0aCA9IGdldFBhcmVudHMoe1xuICAgICAgICBjb250ZXh0OiBlbGVtZW50XG4gICAgfSk7XG4gICAgLy8gaW4gSW50ZXJuZXQgRXhwbG9yZXIgPGF1ZGlvPiBoYXMgYSBkZWZhdWx0IGRpc3BsYXk6IG5vbmUsIHdoZXJlIG90aGVycyBoYXZlIGRpc3BsYXk6IGlubGluZVxuICAgIC8vIGJ1dCBJRSBhbGxvd3MgZm9jdXNpbmcgPGF1ZGlvIHN0eWxlPVwiZGlzcGxheTpub25lXCI+LCBidXQgbm90IDxkaXYgZGlzcGxheTpub25lPjxhdWRpbz5cbiAgICAvLyB0aGlzIGlzIGlycmVsZXZhbnQgdG8gb3RoZXIgYnJvd3NlcnMsIGFzIHRoZSBjb250cm9scyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgdG8gbWFrZSA8YXVkaW8+IGZvY3VzYWJsZVxuICAgIHZhciBpc0F1ZGlvV2l0aG91dENvbnRyb2xzID0gbm9kZU5hbWUgPT09IFwiYXVkaW9cIiAmJiAhZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJjb250cm9sc1wiKTtcbiAgICBpZiAoIWV4Y2VwdC5jc3NEaXNwbGF5ICYmIG5vdERpc3BsYXllZChpc0F1ZGlvV2l0aG91dENvbnRyb2xzID8gX3BhdGguc2xpY2UoMSkgOiBfcGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VwdC5jc3NWaXNpYmlsaXR5ICYmIG5vdFZpc2libGUoX3BhdGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFleGNlcHQuZGV0YWlsc0VsZW1lbnQgJiYgY29sbGFwc2VkUGFyZW50KF9wYXRoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghZXhjZXB0LmJyb3dzaW5nQ29udGV4dCkge1xuICAgICAgICAvLyBlbGVtZW50cyB3aXRoaW4gYSBicm93c2luZyBjb250ZXh0IGFyZSBhZmZlY3RlZCBieSB0aGVcbiAgICAgICAgLy8gYnJvd3NpbmcgY29udGV4dCBob3N0IGVsZW1lbnQncyB2aXNpYmlsaXR5IGFuZCB0YWJpbmRleFxuICAgICAgICB2YXIgZnJhbWVFbGVtZW50ID0gZ2V0RnJhbWVFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB2YXIgX2lzVmlzaWJsZSA9IGlzVmlzaWJsZVJ1bGVzLmV4Y2VwdChleGNlcHQpO1xuICAgICAgICBpZiAoZnJhbWVFbGVtZW50ICYmICFfaXNWaXNpYmxlKGZyYW1lRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbi8vIGJpbmQgZXhjZXB0aW9ucyB0byBhbiBpdGVyYXRvciBjYWxsYmFja1xuaXNWaXNpYmxlUnVsZXMuZXhjZXB0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGV4Y2VwdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgdmFyIGlzVmlzaWJsZSA9IGZ1bmN0aW9uIGlzVmlzaWJsZShjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiBpc1Zpc2libGVSdWxlcyh7XG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgICAgZXhjZXB0OiBleGNlcHRcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBpc1Zpc2libGUucnVsZXMgPSBpc1Zpc2libGVSdWxlcztcbiAgICByZXR1cm4gaXNWaXNpYmxlO1xufTtcbi8vIHByb3ZpZGUgaXNWaXNpYmxlKGNvbnRleHQpIGFzIGRlZmF1bHQgaXRlcmF0b3IgY2FsbGJhY2tcbnZhciBpc1Zpc2libGUgPSBpc1Zpc2libGVSdWxlcy5leGNlcHQoe30pO1xuZnVuY3Rpb24gZ2V0TWFwQnlOYW1lKG5hbWUsIF9kb2N1bWVudCkge1xuICAgIC8vIGFwcGFyZW50bHkgZ2V0RWxlbWVudHNCeU5hbWUoKSBhbHNvIGNvbnNpZGVycyBpZCBhdHRyaWJ1dGUgaW4gSUUgJiBvcGVyYVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Eb2N1bWVudC9nZXRFbGVtZW50c0J5TmFtZVxuICAgIHZhciBtYXAgPSBfZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWFwW25hbWU9XCInICsgY3NzRXNjYXBlKG5hbWUpICsgJ1wiXScpO1xuICAgIHJldHVybiBtYXAgfHwgbnVsbDtcbn1cbmZ1bmN0aW9uIGdldEltYWdlT2ZBcmVhKGVsZW1lbnQpIHtcbiAgICB2YXIgbWFwID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmICghbWFwLm5hbWUgfHwgbWFwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09IFwibWFwXCIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIE5PVEU6IGltYWdlIG1hcHMgY2FuIGFsc28gYmUgYXBwbGllZCB0byA8b2JqZWN0PiB3aXRoIGltYWdlIGNvbnRlbnQsXG4gICAgLy8gYnV0IG5vIGJyb3dzZXIgc3VwcG9ydHMgdGhpcyBhdCB0aGUgbW9tZW50XG4gICAgLy8gSFRNTDUgc3BlY2lmaWVzIEhUTUxNYXBFbGVtZW50LmltYWdlcyB0byBiZSBhbiBIVE1MQ29sbGVjdGlvbiBvZiBhbGxcbiAgICAvLyA8aW1nPiBhbmQgPG9iamVjdD4gcmVmZXJlbmNpbmcgdGhlIDxtYXA+IGVsZW1lbnQsIGJ1dCBubyBicm93c2VyIGltcGxlbWVudHMgdGhpc1xuICAgIC8vICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VtYmVkZGVkLWNvbnRlbnQtMC5odG1sI3RoZS1tYXAtZWxlbWVudFxuICAgIC8vICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxNYXBFbGVtZW50XG4gICAgLy8gdGhlIGltYWdlIG11c3QgYmUgdmFsaWQgYW5kIGxvYWRlZCBmb3IgdGhlIG1hcCB0byB0YWtlIGVmZmVjdFxuICAgIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChlbGVtZW50KTtcbiAgICByZXR1cm4gX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZ1t1c2VtYXA9XCIjJyArIGNzc0VzY2FwZShtYXAubmFtZSkgKyAnXCJdJykgfHwgbnVsbDtcbn1cbnZhciBzdXBwb3J0cyQyID0gdm9pZCAwO1xuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRNTC9FbGVtZW50L21hcFxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkvYmxvYi9tYXN0ZXIvdWkvY29yZS5qcyNMODgtTDEwN1xuZnVuY3Rpb24gaXNWYWxpZEFyZWEoY29udGV4dCkge1xuICAgIGlmICghc3VwcG9ydHMkMikge1xuICAgICAgICBzdXBwb3J0cyQyID0gX3N1cHBvcnRzKCk7XG4gICAgfVxuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiBcImlzL3ZhbGlkLWFyZWFcIixcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9kZU5hbWUgIT09IFwiYXJlYVwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIGhhc1RhYmluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKTtcbiAgICBpZiAoIXN1cHBvcnRzJDIuZm9jdXNBcmVhVGFiaW5kZXggJiYgaGFzVGFiaW5kZXgpIHtcbiAgICAgICAgLy8gQmxpbmsgYW5kIFdlYktpdCBkbyBub3QgY29uc2lkZXIgPGFyZWEgdGFiaW5kZXg9XCItMVwiIGhyZWY9XCIjdm9pZFwiPiBmb2N1c2FibGVcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgaW1nID0gZ2V0SW1hZ2VPZkFyZWEoZWxlbWVudCk7XG4gICAgaWYgKCFpbWcgfHwgIWlzVmlzaWJsZShpbWcpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gRmlyZWZveCBvbmx5IGFsbG93cyBmdWxseSBsb2FkZWQgaW1hZ2VzIHRvIHJlZmVyZW5jZSBpbWFnZSBtYXBzXG4gICAgLy8gaHR0cHM6Ly9zdGVyZW9jaHJvLm1lL2lkZWFzL2RldGVjdGluZy1icm9rZW4taW1hZ2VzLWpzXG4gICAgaWYgKCFzdXBwb3J0cyQyLmZvY3VzQnJva2VuSW1hZ2VNYXAgJiYgKCFpbWcuY29tcGxldGUgfHwgIWltZy5uYXR1cmFsSGVpZ2h0IHx8IGltZy5vZmZzZXRXaWR0aCA8PSAwIHx8IGltZy5vZmZzZXRIZWlnaHQgPD0gMCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBGaXJlZm94IHN1cHBvcnRzLmNhbiBmb2N1cyBhcmVhIGVsZW1lbnRzIGV2ZW4gaWYgdGhleSBkb24ndCBoYXZlIGFuIGhyZWYgYXR0cmlidXRlXG4gICAgaWYgKCFzdXBwb3J0cyQyLmZvY3VzQXJlYVdpdGhvdXRIcmVmICYmICFlbGVtZW50LmhyZWYpIHtcbiAgICAgICAgLy8gSW50ZXJuZXQgZXhwbG9yZXIgc3VwcG9ydHMuY2FuIGZvY3VzIGFyZWEgZWxlbWVudHMgd2l0aG91dCBocmVmIGlmIGVpdGhlclxuICAgICAgICAvLyB0aGUgYXJlYSBlbGVtZW50IG9yIHRoZSBpbWFnZSBlbGVtZW50IGhhcyBhIHRhYmluZGV4IGF0dHJpYnV0ZVxuICAgICAgICByZXR1cm4gc3VwcG9ydHMkMi5mb2N1c0FyZWFUYWJpbmRleCAmJiBoYXNUYWJpbmRleCB8fCBzdXBwb3J0cyQyLmZvY3VzQXJlYUltZ1RhYmluZGV4ICYmIGltZy5oYXNBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKTtcbiAgICB9XG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxuICAgIHZhciBjaGlsZE9mSW50ZXJhY3RpdmUgPSBnZXRQYXJlbnRzKHtcbiAgICAgICAgY29udGV4dDogaW1nXG4gICAgfSkuc2xpY2UoMSkuc29tZShmdW5jdGlvbihfZWxlbWVudCkge1xuICAgICAgICB2YXIgbmFtZSA9IF9lbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBuYW1lID09PSBcImJ1dHRvblwiIHx8IG5hbWUgPT09IFwiYVwiO1xuICAgIH0pO1xuICAgIGlmIChjaGlsZE9mSW50ZXJhY3RpdmUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbnZhciBzdXBwb3J0cyQzID0gdm9pZCAwO1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2Rpc2FibGVkLWVsZW1lbnRzLmh0bWwjY29uY2VwdC1lbGVtZW50LWRpc2FibGVkXG52YXIgZGlzYWJsZWRFbGVtZW50c1BhdHRlcm4gPSB2b2lkIDA7XG52YXIgZGlzYWJsZWRFbGVtZW50cyA9IHtcbiAgICBpbnB1dDogdHJ1ZSxcbiAgICBzZWxlY3Q6IHRydWUsXG4gICAgdGV4dGFyZWE6IHRydWUsXG4gICAgYnV0dG9uOiB0cnVlLFxuICAgIGZpZWxkc2V0OiB0cnVlLFxuICAgIGZvcm06IHRydWVcbn07XG5mdW5jdGlvbiBpc05hdGl2ZURpc2FibGVkU3VwcG9ydGVkKGNvbnRleHQpIHtcbiAgICBpZiAoIXN1cHBvcnRzJDMpIHtcbiAgICAgICAgc3VwcG9ydHMkMyA9IF9zdXBwb3J0cygpO1xuICAgICAgICBpZiAoc3VwcG9ydHMkMy5mb2N1c0ZpZWxkc2V0RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBkaXNhYmxlZEVsZW1lbnRzLmZpZWxkc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdXBwb3J0cyQzLmZvY3VzRm9ybURpc2FibGVkKSB7XG4gICAgICAgICAgICBkZWxldGUgZGlzYWJsZWRFbGVtZW50cy5mb3JtO1xuICAgICAgICB9XG4gICAgICAgIGRpc2FibGVkRWxlbWVudHNQYXR0ZXJuID0gbmV3IFJlZ0V4cChcIl4oXCIgKyBPYmplY3Qua2V5cyhkaXNhYmxlZEVsZW1lbnRzKS5qb2luKFwifFwiKSArIFwiKSRcIik7XG4gICAgfVxuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiBcImlzL25hdGl2ZS1kaXNhYmxlZC1zdXBwb3J0ZWRcIixcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gQm9vbGVhbihkaXNhYmxlZEVsZW1lbnRzUGF0dGVybi50ZXN0KG5vZGVOYW1lKSk7XG59XG52YXIgc3VwcG9ydHMkNCA9IHZvaWQgMDtcbmZ1bmN0aW9uIGlzRGlzYWJsZWRGaWVsZHNldChlbGVtZW50KSB7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBub2RlTmFtZSA9PT0gXCJmaWVsZHNldFwiICYmIGVsZW1lbnQuZGlzYWJsZWQ7XG59XG5mdW5jdGlvbiBpc0Rpc2FibGVkRm9ybShlbGVtZW50KSB7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBub2RlTmFtZSA9PT0gXCJmb3JtXCIgJiYgZWxlbWVudC5kaXNhYmxlZDtcbn1cbmZ1bmN0aW9uIGlzRGlzYWJsZWQoY29udGV4dCkge1xuICAgIGlmICghc3VwcG9ydHMkNCkge1xuICAgICAgICBzdXBwb3J0cyQ0ID0gX3N1cHBvcnRzKCk7XG4gICAgfVxuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiBcImlzL2Rpc2FibGVkXCIsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJkYXRhLWFsbHktZGlzYWJsZWRcIikpIHtcbiAgICAgICAgLy8gdHJlYXQgYWxseSdzIGVsZW1lbnQvZGlzYWJsZWQgbGlrZSB0aGUgRE9NIG5hdGl2ZSBlbGVtZW50LmRpc2FibGVkXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWlzTmF0aXZlRGlzYWJsZWRTdXBwb3J0ZWQoZWxlbWVudCkpIHtcbiAgICAgICAgLy8gbm9uLWZvcm0gZWxlbWVudHMgZG8gbm90IHN1cHBvcnQgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChlbGVtZW50LmRpc2FibGVkKSB7XG4gICAgICAgIC8vIHRoZSBlbGVtZW50IGl0c2VsZiBpcyBkaXNhYmxlZFxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHBhcmVudHMgPSBnZXRQYXJlbnRzKHtcbiAgICAgICAgY29udGV4dDogZWxlbWVudFxuICAgIH0pO1xuICAgIGlmIChwYXJlbnRzLnNvbWUoaXNEaXNhYmxlZEZpZWxkc2V0KSkge1xuICAgICAgICAvLyBhIHBhcmVudGFsIDxmaWVsZHNldD4gaXMgZGlzYWJsZCBhbmQgaW5oZXJpdHMgdGhlIHN0YXRlIG9udG8gdGhpcyBlbGVtZW50XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXN1cHBvcnRzJDQuZm9jdXNGb3JtRGlzYWJsZWQgJiYgcGFyZW50cy5zb21lKGlzRGlzYWJsZWRGb3JtKSkge1xuICAgICAgICAvLyBhIHBhcmVudGFsIDxmb3JtPiBpcyBkaXNhYmxkIGFuZCBpbmhlcml0cyB0aGUgc3RhdGUgb250byB0aGlzIGVsZW1lbnRcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzT25seVRhYmJhYmxlUnVsZXMoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBfcmVmJGV4Y2VwdCA9IF9yZWYuZXhjZXB0LCBleGNlcHQgPSBfcmVmJGV4Y2VwdCA9PT0gdW5kZWZpbmVkID8ge1xuICAgICAgICBvbmx5Rm9jdXNhYmxlQnJvd3NpbmdDb250ZXh0OiBmYWxzZSxcbiAgICAgICAgdmlzaWJsZTogZmFsc2VcbiAgICB9IDogX3JlZiRleGNlcHQ7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6IFwiaXMvb25seS10YWJiYWJsZVwiLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICBpZiAoIWV4Y2VwdC52aXNpYmxlICYmICFpc1Zpc2libGUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VwdC5vbmx5Rm9jdXNhYmxlQnJvd3NpbmdDb250ZXh0ICYmIChwbGF0Zm9ybS5pcy5HRUNLTyB8fCBwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0UpKSB7XG4gICAgICAgIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGlmIChmcmFtZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmICh0YWJpbmRleFZhbHVlKGZyYW1lRWxlbWVudCkgPCAwKSB7XG4gICAgICAgICAgICAgICAgLy8gaWZyYW1lW3RhYmluZGV4PVwiLTFcIl0gYW5kIG9iamVjdFt0YWJpbmRleD1cIi0xXCJdIGluaGVyaXQgdGhlXG4gICAgICAgICAgICAgICAgLy8gdGFiYmFibGUgZGVtb3Rpb24gb250byBlbGVtZW50cyBvZiB0aGVpciBicm93c2luZyBjb250ZXh0c1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFyIHRhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KTtcbiAgICBpZiAobm9kZU5hbWUgPT09IFwibGFiZWxcIiAmJiBwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAvLyBGaXJlZm94IGNhbm5vdCBmb2N1cywgYnV0IHRhYiB0bzogbGFiZWxbdGFiaW5kZXg9MF1cbiAgICAgICAgcmV0dXJuIHRhYmluZGV4ICE9PSBudWxsICYmIHRhYmluZGV4ID49IDA7XG4gICAgfVxuICAgIC8vIFNWRyBFbGVtZW50cyB3ZXJlIGtleWJvYXJkIGZvY3VzYWJsZSBidXQgbm90IHNjcmlwdCBmb2N1c2FibGUgYmVmb3JlIEZpcmVmb3ggNTEuXG4gICAgLy8gRmlyZWZveCA1MSBhZGRlZCB0aGUgZm9jdXMgbWFuYWdlbWVudCBET00gQVBJICguZm9jdXMgYW5kIC5ibHVyKSB0byBTVkdFbGVtZW50LFxuICAgIC8vIHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg2NTRcbiAgICBpZiAocGxhdGZvcm0uaXMuR0VDS08gJiYgZWxlbWVudC5vd25lclNWR0VsZW1lbnQgJiYgIWVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgaWYgKG5vZGVOYW1lID09PSBcImFcIiAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShcInhsaW5rOmhyZWZcIikpIHtcbiAgICAgICAgICAgIC8vIGFueSBmb2N1c2FibGUgY2hpbGQgb2YgPHN2Zz4gY2Fubm90IGJlIGZvY3VzZWQsIGJ1dCB0YWJiZWQgdG9cbiAgICAgICAgICAgIGlmIChwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbi8vIGJpbmQgZXhjZXB0aW9ucyB0byBhbiBpdGVyYXRvciBjYWxsYmFja1xuaXNPbmx5VGFiYmFibGVSdWxlcy5leGNlcHQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgZXhjZXB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgaXNPbmx5VGFiYmFibGUgPSBmdW5jdGlvbiBpc09ubHlUYWJiYWJsZShjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiBpc09ubHlUYWJiYWJsZVJ1bGVzKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgICBleGNlcHQ6IGV4Y2VwdFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGlzT25seVRhYmJhYmxlLnJ1bGVzID0gaXNPbmx5VGFiYmFibGVSdWxlcztcbiAgICByZXR1cm4gaXNPbmx5VGFiYmFibGU7XG59O1xuLy8gcHJvdmlkZSBpc09ubHlUYWJiYWJsZShjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNPbmx5VGFiYmFibGUgPSBpc09ubHlUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7fSk7XG52YXIgc3VwcG9ydHMkNSA9IHZvaWQgMDtcbmZ1bmN0aW9uIGlzT25seUZvY3VzUmVsZXZhbnQoZWxlbWVudCkge1xuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9kZU5hbWUgPT09IFwiZW1iZWRcIiB8fCBub2RlTmFtZSA9PT0gXCJrZXlnZW5cIikge1xuICAgICAgICAvLyBlbWJlZCBpcyBjb25zaWRlcmVkIGZvY3VzLXJlbGV2YW50IGJ1dCBub3QgZm9jdXNhYmxlXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzgyXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgX3RhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KTtcbiAgICBpZiAoZWxlbWVudC5zaGFkb3dSb290ICYmIF90YWJpbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAvLyBTaGFkb3dET00gaG9zdCBlbGVtZW50cyAqbWF5KiByZWNlaXZlIGZvY3VzXG4gICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdCBjb25zaWRlcmVkIGZvY3VhYmxlXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwibGFiZWxcIikge1xuICAgICAgICAvLyA8bGFiZWwgdGFiaW5kZXg9XCIwXCI+IGlzIG9ubHkgdGFiYmFibGUgaW4gRmlyZWZveCwgbm90IHNjcmlwdC1mb2N1c2FibGVcbiAgICAgICAgLy8gdGhlcmUncyBubyB3YXkgdG8gbWFrZSBhbiBlbGVtZW50IGZvY3VzYWJsZSBvdGhlciB0aGFuIGJ5IGFkZGluZyBhIHRhYmluZGV4LFxuICAgICAgICAvLyBhbmQgZm9jdXMgYmVoYXZpb3Igb2YgdGhlIGxhYmVsIGVsZW1lbnQgc2VlbXMgaGFyZC13aXJlZCB0byBpZ25vcmUgdGFiaW5kZXhcbiAgICAgICAgLy8gaW4gc29tZSBicm93c2VycyAobGlrZSBHZWNrbywgQmxpbmsgYW5kIFdlYktpdClcbiAgICAgICAgcmV0dXJuICFzdXBwb3J0cyQ1LmZvY3VzTGFiZWxUYWJpbmRleCB8fCBfdGFiaW5kZXggPT09IG51bGw7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gXCJsZWdlbmRcIikge1xuICAgICAgICByZXR1cm4gX3RhYmluZGV4ID09PSBudWxsO1xuICAgIH1cbiAgICBpZiAoc3VwcG9ydHMkNS5mb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSAmJiAoZWxlbWVudC5vd25lclNWR0VsZW1lbnQgfHwgbm9kZU5hbWUgPT09IFwic3ZnXCIpKSB7XG4gICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIHVuZGVyc3RhbmRzIHRoZSBmb2N1c2FibGUgYXR0cmlidXRlIGludHJvZHVjZWQgaW4gU1ZHIFRpbnkgMS4yXG4gICAgICAgIHZhciBmb2N1c2FibGVBdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShcImZvY3VzYWJsZVwiKTtcbiAgICAgICAgcmV0dXJuIGZvY3VzYWJsZUF0dHJpYnV0ZSAmJiBmb2N1c2FibGVBdHRyaWJ1dGUgPT09IFwiZmFsc2VcIjtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSBcImltZ1wiICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKFwidXNlbWFwXCIpKSB7XG4gICAgICAgIC8vIEdlY2tvLCBUcmlkZW50IGFuZCBFZGdlIGRvIG5vdCBhbGxvdyBhbiBpbWFnZSB3aXRoIGFuIGltYWdlIG1hcCBhbmQgdGFiaW5kZXggdG8gYmUgZm9jdXNlZCxcbiAgICAgICAgLy8gaXQgYXBwZWFycyB0aGUgdGFiaW5kZXggaXMgb3ZlcnJ1bGVkIHNvIGZvY3VzIGlzIHN0aWxsIGZvcndhcmRlZCB0byB0aGUgPG1hcD5cbiAgICAgICAgcmV0dXJuIF90YWJpbmRleCA9PT0gbnVsbCB8fCAhc3VwcG9ydHMkNS5mb2N1c0ltZ1VzZW1hcFRhYmluZGV4O1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwiYXJlYVwiKSB7XG4gICAgICAgIC8vIGFsbCA8YXJlYT5zIGFyZSBjb25zaWRlcmVkIHJlbGV2YW50LFxuICAgICAgICAvLyBidXQgb25seSB0aGUgdmFsaWQgPGFyZWE+cyBhcmUgZm9jdXNhYmxlXG4gICAgICAgIHJldHVybiAhaXNWYWxpZEFyZWEoZWxlbWVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzRm9jdXNhYmxlUnVsZXMoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBfcmVmJGV4Y2VwdCA9IF9yZWYuZXhjZXB0LCBleGNlcHQgPSBfcmVmJGV4Y2VwdCA9PT0gdW5kZWZpbmVkID8ge1xuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICBvbmx5VGFiYmFibGU6IGZhbHNlXG4gICAgfSA6IF9yZWYkZXhjZXB0O1xuICAgIGlmICghc3VwcG9ydHMkNSkge1xuICAgICAgICBzdXBwb3J0cyQ1ID0gX3N1cHBvcnRzKCk7XG4gICAgfVxuICAgIHZhciBfaXNPbmx5VGFiYmFibGUgPSBpc09ubHlUYWJiYWJsZS5ydWxlcy5leGNlcHQoe1xuICAgICAgICBvbmx5Rm9jdXNhYmxlQnJvd3NpbmdDb250ZXh0OiB0cnVlLFxuICAgICAgICB2aXNpYmxlOiBleGNlcHQudmlzaWJsZVxuICAgIH0pO1xuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiBcImlzL2ZvY3VzYWJsZVwiLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICB2YXIgZm9jdXNSZWxldmFudCA9IGlzRm9jdXNSZWxldmFudC5ydWxlcyh7XG4gICAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICAgIGV4Y2VwdDogZXhjZXB0XG4gICAgfSk7XG4gICAgaWYgKCFmb2N1c1JlbGV2YW50IHx8IGlzT25seUZvY3VzUmVsZXZhbnQoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VwdC5kaXNhYmxlZCAmJiBpc0Rpc2FibGVkKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFleGNlcHQub25seVRhYmJhYmxlICYmIF9pc09ubHlUYWJiYWJsZShlbGVtZW50KSkge1xuICAgICAgICAvLyBzb21lIGVsZW1lbnRzIG1heSBiZSBrZXlib2FyZCBmb2N1c2FibGUsIGJ1dCBub3Qgc2NyaXB0IGZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCByZW5kZXJlZCwgY2Fubm90IGJlIGZvY3VzZWRcbiAgICBpZiAoIWV4Y2VwdC52aXNpYmxlKSB7XG4gICAgICAgIHZhciB2aXNpYmlsaXR5T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICAgICAgICBleGNlcHQ6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChzdXBwb3J0cyQ1LmZvY3VzSW5IaWRkZW5JZnJhbWUpIHtcbiAgICAgICAgICAgIC8vIFdlYktpdCBhbmQgQmxpbmsgY2FuIGZvY3VzIGNvbnRlbnQgaW4gaGlkZGVuIDxpZnJhbWU+IGFuZCA8b2JqZWN0PlxuICAgICAgICAgICAgdmlzaWJpbGl0eU9wdGlvbnMuZXhjZXB0LmJyb3dzaW5nQ29udGV4dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1cHBvcnRzJDUuZm9jdXNPYmplY3RTdmdIaWRkZW4pIHtcbiAgICAgICAgICAgIC8vIEJsaW5rIGFsbG93cyBmb2N1c2luZyB0aGUgb2JqZWN0IGVsZW1lbnQsIGV2ZW4gaWYgaXQgaGFzIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIC8vIEBicm93c2VyLWlzc3VlIEJsaW5rIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODYxOTFcbiAgICAgICAgICAgIHZhciBfbm9kZU5hbWUyID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKF9ub2RlTmFtZTIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5T3B0aW9ucy5leGNlcHQuY3NzVmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1Zpc2libGUucnVsZXModmlzaWJpbGl0eU9wdGlvbnMpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KTtcbiAgICBpZiAoZnJhbWVFbGVtZW50KSB7XG4gICAgICAgIHZhciBfbm9kZU5hbWUgPSBmcmFtZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKF9ub2RlTmFtZSA9PT0gXCJvYmplY3RcIiAmJiAhc3VwcG9ydHMkNS5mb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdCkge1xuICAgICAgICAgICAgaWYgKCFmcmFtZUVsZW1lbnQub2Zmc2V0V2lkdGggfHwgIWZyYW1lRWxlbWVudC5vZmZzZXRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIG5vdCBmb2N1cyBjb250ZW50IGluIDxvYmplY3Q+IGlmIGl0IGRvZXNuJ3QgaGF2ZSBkaW1lbnNpb25zXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9kZU5hbWUgPT09IFwic3ZnXCIgJiYgc3VwcG9ydHMkNS5mb2N1c1N2Z0luSWZyYW1lICYmICFmcmFtZUVsZW1lbnQgJiYgZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuLy8gYmluZCBleGNlcHRpb25zIHRvIGFuIGl0ZXJhdG9yIGNhbGxiYWNrXG5pc0ZvY3VzYWJsZVJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBleGNlcHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBpc0ZvY3VzYWJsZSA9IGZ1bmN0aW9uIGlzRm9jdXNhYmxlKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGlzRm9jdXNhYmxlUnVsZXMoe1xuICAgICAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgICAgICAgIGV4Y2VwdDogZXhjZXB0XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgaXNGb2N1c2FibGUucnVsZXMgPSBpc0ZvY3VzYWJsZVJ1bGVzO1xuICAgIHJldHVybiBpc0ZvY3VzYWJsZTtcbn07XG4vLyBwcm92aWRlIGlzRm9jdXNSZWxldmFudChjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNGb2N1c2FibGUgPSBpc0ZvY3VzYWJsZVJ1bGVzLmV4Y2VwdCh7fSk7XG5mdW5jdGlvbiBjcmVhdGVGaWx0ZXIoY29uZGl0aW9uKSB7XG4gICAgLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Ob2RlRmlsdGVyXG4gICAgdmFyIGZpbHRlciA9IGZ1bmN0aW9uIGZpbHRlcihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIC8vIHJldHVybiBTaGFkb3dSb290IGVsZW1lbnRzIHJlZ2FyZGxlc3Mgb2YgdGhlbSBiZWluZyBmb2N1c2FibGUsXG4gICAgICAgICAgICAvLyBzbyB0aGV5IGNhbiBiZSB3YWxrZWQgcmVjdXJzaXZlbHkgbGF0ZXJcbiAgICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmRpdGlvbihub2RlKSkge1xuICAgICAgICAgICAgLy8gZmluZHMgZWxlbWVudHMgdGhhdCBjb3VsZCBoYXZlIGJlZW4gZm91bmQgYnkgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgpXG4gICAgICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgIH07XG4gICAgLy8gSUUgcmVxdWlyZXMgYSBmdW5jdGlvbiwgQnJvd3NlcnMgcmVxdWlyZSB7YWNjZXB0Tm9kZTogZnVuY3Rpb259XG4gICAgLy8gc2VlIGh0dHA6Ly93d3cuYmVubmFkZWwuY29tL2Jsb2cvMjYwNy1maW5kaW5nLWh0bWwtY29tbWVudC1ub2Rlcy1pbi10aGUtZG9tLXVzaW5nLXRyZWV3YWxrZXIuaHRtXG4gICAgZmlsdGVyLmFjY2VwdE5vZGUgPSBmaWx0ZXI7XG4gICAgcmV0dXJuIGZpbHRlcjtcbn1cbnZhciBQb3NzaWJseUZvY3VzYWJsZUZpbHRlciA9IGNyZWF0ZUZpbHRlcihpc0ZvY3VzUmVsZXZhbnQpO1xuZnVuY3Rpb24gcXVlcnlGb2N1c2FibGVTdHJpY3QoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBpbmNsdWRlQ29udGV4dCA9IF9yZWYuaW5jbHVkZUNvbnRleHQsIGluY2x1ZGVPbmx5VGFiYmFibGUgPSBfcmVmLmluY2x1ZGVPbmx5VGFiYmFibGUsIHN0cmF0ZWd5ID0gX3JlZi5zdHJhdGVneTtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgY29udGV4dCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB9XG4gICAgdmFyIF9pc0ZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlLnJ1bGVzLmV4Y2VwdCh7XG4gICAgICAgIG9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZVxuICAgIH0pO1xuICAgIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChjb250ZXh0KTtcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0RvY3VtZW50L2NyZWF0ZVRyZWVXYWxrZXJcbiAgICB2YXIgd2Fsa2VyID0gX2RvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoLy8gcm9vdCBlbGVtZW50IHRvIHN0YXJ0IHNlYXJjaCBpblxuICAgIGNvbnRleHQsIC8vIGVsZW1lbnQgdHlwZSBmaWx0ZXJcbiAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgLy8gY3VzdG9tIE5vZGVGaWx0ZXIgZmlsdGVyXG4gICAgc3RyYXRlZ3kgPT09IFwiYWxsXCIgPyBQb3NzaWJseUZvY3VzYWJsZUZpbHRlciA6IGNyZWF0ZUZpbHRlcihfaXNGb2N1c2FibGUpLCAvLyBkZXByZWNhdGVkLCBidXQgSUUgcmVxdWlyZXMgaXRcbiAgICBmYWxzZSk7XG4gICAgdmFyIGxpc3QgPSBbXTtcbiAgICB3aGlsZSh3YWxrZXIubmV4dE5vZGUoKSl7XG4gICAgICAgIGlmICh3YWxrZXIuY3VycmVudE5vZGUuc2hhZG93Um9vdCkge1xuICAgICAgICAgICAgaWYgKF9pc0ZvY3VzYWJsZSh3YWxrZXIuY3VycmVudE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKHdhbGtlci5jdXJyZW50Tm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaXN0ID0gbGlzdC5jb25jYXQocXVlcnlGb2N1c2FibGVTdHJpY3Qoe1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHdhbGtlci5jdXJyZW50Tm9kZS5zaGFkb3dSb290LFxuICAgICAgICAgICAgICAgIGluY2x1ZGVPbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgICAgICAgICAgICAgc3RyYXRlZ3k6IHN0cmF0ZWd5XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0LnB1c2god2Fsa2VyLmN1cnJlbnROb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBhZGQgY29udGV4dCBpZiByZXF1ZXN0ZWQgYW5kIGZvY3VzYWJsZVxuICAgIGlmIChpbmNsdWRlQ29udGV4dCkge1xuICAgICAgICBpZiAoc3RyYXRlZ3kgPT09IFwiYWxsXCIpIHtcbiAgICAgICAgICAgIGlmIChpc0ZvY3VzUmVsZXZhbnQoY29udGV4dCkpIHtcbiAgICAgICAgICAgICAgICBsaXN0LnVuc2hpZnQoY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoX2lzRm9jdXNhYmxlKGNvbnRleHQpKSB7XG4gICAgICAgICAgICBsaXN0LnVuc2hpZnQoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG59XG4vLyBOT1RFOiB0aGlzIHNlbGVjdG9yIE1VU1QgKm5ldmVyKiBiZSB1c2VkIGRpcmVjdGx5LFxudmFyIHN1cHBvcnRzJDYgPSB2b2lkIDA7XG52YXIgc2VsZWN0b3IkMSA9IHZvaWQgMDtcbmZ1bmN0aW9uIHNlbGVjdG9yJDIoKSB7XG4gICAgaWYgKCFzdXBwb3J0cyQ2KSB7XG4gICAgICAgIHN1cHBvcnRzJDYgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzZWxlY3RvciQxID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RvciQxO1xuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZWRpdGluZy5odG1sI3NlcXVlbnRpYWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQtdGhlLXRhYmluZGV4LWF0dHJpYnV0ZVxuICAgIHNlbGVjdG9yJDEgPSBcIlwiICsgLy8gSUUxMSBzdXBwb3J0cy5jYW4gZm9jdXMgPHRhYmxlPiBhbmQgPHRkPlxuICAgIChzdXBwb3J0cyQ2LmZvY3VzVGFibGUgPyBcInRhYmxlLCB0ZCxcIiA6IFwiXCIpICsgLy8gSUUxMSBzdXBwb3J0cy5jYW4gZm9jdXMgPGZpZWxkc2V0PlxuICAgIChzdXBwb3J0cyQ2LmZvY3VzRmllbGRzZXQgPyBcImZpZWxkc2V0LFwiIDogXCJcIikgKyAvLyBOYW1lc3BhY2UgcHJvYmxlbXMgb2YgW3hsaW5rOmhyZWZdIGV4cGxhaW5lZCBpbiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjMwNDc4ODgvNTE1MTI0XG4gICAgLy8gc3ZnIGFbKnxocmVmXSBkb2VzIG5vdCBtYXRjaCBpbiBJRTksIGJ1dCBzaW5jZSB3ZSdyZSBmaWx0ZXJpbmdcbiAgICAvLyB0aHJvdWdoIGlzL2ZvY3VzYWJsZSB3ZSBjYW4gaW5jbHVkZSBhbGwgPGE+IGZyb20gU1ZHXG4gICAgXCJzdmcgYSxcIiArIC8vIG1heSBiZWhhdmUgYXMgJ3N2Zywgc3ZnICosJyBpbiBjaHJvbWUgYXMgKmV2ZXJ5KiBzdmcgZWxlbWVudCB3aXRoIGEgZm9jdXMgZXZlbnQgbGlzdGVuZXIgaXMgZm9jdXNhYmxlXG4gICAgLy8gbmF2aWdhdGlvbmFsIGVsZW1lbnRzXG4gICAgXCJhW2hyZWZdLFwiICsgLy8gdmFsaWRpdHkgZGV0ZXJtaW5lZCBieSBpcy92YWxpZC1hcmVhLmpzXG4gICAgXCJhcmVhW2hyZWZdLFwiICsgLy8gdmFsaWRpdHkgZGV0ZXJtaW5lZCBieSBpcy9kaXNhYmxlZC5qc1xuICAgIFwiaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGJ1dHRvbixcIiArIC8vIGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVyc1xuICAgIFwiaWZyYW1lLCBvYmplY3QsIGVtYmVkLFwiICsgLy8gaW50ZXJhY3RpdmUgY29udGVudFxuICAgIFwia2V5Z2VuLFwiICsgKHN1cHBvcnRzJDYuZm9jdXNBdWRpb1dpdGhvdXRDb250cm9scyA/IFwiYXVkaW8sXCIgOiBcImF1ZGlvW2NvbnRyb2xzXSxcIikgKyAoc3VwcG9ydHMkNi5mb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzID8gXCJ2aWRlbyxcIiA6IFwidmlkZW9bY29udHJvbHNdLFwiKSArIChzdXBwb3J0cyQ2LmZvY3VzU3VtbWFyeSA/IFwic3VtbWFyeSxcIiA6IFwiXCIpICsgLy8gdmFsaWRpdHkgZGV0ZXJtaW5lZCBieSBpcy92YWxpZC10YWJpbmRleC5qc1xuICAgIFwiW3RhYmluZGV4XSxcIiArIC8vIGVkaXRpbmcgaG9zdHNcbiAgICBcIltjb250ZW50ZWRpdGFibGVdXCI7XG4gICAgLy8gd2hlcmUgU2hhZG93RE9NIGlzIHN1cHBvcnRlZCwgd2UgYWxzbyB3YW50IHRoZSBzaGFkb3dlZCBmb2N1c2FibGUgZWxlbWVudHMgKHZpYSBcIj4+PlwiIG9yIFwiL2RlZXAvXCIpXG4gICAgc2VsZWN0b3IkMSA9IHNlbGVjdEluU2hhZG93cyhzZWxlY3RvciQxKTtcbiAgICByZXR1cm4gc2VsZWN0b3IkMTtcbn1cbmZ1bmN0aW9uIHF1ZXJ5Rm9jdXNhYmxlUXVpY2soKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBpbmNsdWRlQ29udGV4dCA9IF9yZWYuaW5jbHVkZUNvbnRleHQsIGluY2x1ZGVPbmx5VGFiYmFibGUgPSBfcmVmLmluY2x1ZGVPbmx5VGFiYmFibGU7XG4gICAgdmFyIF9zZWxlY3RvciA9IHNlbGVjdG9yJDIoKTtcbiAgICB2YXIgZWxlbWVudHMgPSBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoX3NlbGVjdG9yKTtcbiAgICAvLyB0aGUgc2VsZWN0b3IgcG90ZW50aWFsbHkgbWF0Y2hlcyBtb3JlIHRoYW4gcmVhbGx5IGlzIGZvY3VzYWJsZVxuICAgIHZhciBfaXNGb2N1c2FibGUgPSBpc0ZvY3VzYWJsZS5ydWxlcy5leGNlcHQoe1xuICAgICAgICBvbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGVcbiAgICB9KTtcbiAgICB2YXIgcmVzdWx0ID0gW10uZmlsdGVyLmNhbGwoZWxlbWVudHMsIF9pc0ZvY3VzYWJsZSk7XG4gICAgLy8gYWRkIGNvbnRleHQgaWYgcmVxdWVzdGVkIGFuZCBmb2N1c2FibGVcbiAgICBpZiAoaW5jbHVkZUNvbnRleHQgJiYgX2lzRm9jdXNhYmxlKGNvbnRleHQpKSB7XG4gICAgICAgIHJlc3VsdC51bnNoaWZ0KGNvbnRleHQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gcXVlcnlGb2N1c2FibGUoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBpbmNsdWRlQ29udGV4dCA9IF9yZWYuaW5jbHVkZUNvbnRleHQsIGluY2x1ZGVPbmx5VGFiYmFibGUgPSBfcmVmLmluY2x1ZGVPbmx5VGFiYmFibGUsIF9yZWYkc3RyYXRlZ3kgPSBfcmVmLnN0cmF0ZWd5LCBzdHJhdGVneSA9IF9yZWYkc3RyYXRlZ3kgPT09IHVuZGVmaW5lZCA/IFwicXVpY2tcIiA6IF9yZWYkc3RyYXRlZ3k7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6IFwicXVlcnkvZm9jdXNhYmxlXCIsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFRvRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgY29udGV4dDogZWxlbWVudCxcbiAgICAgICAgaW5jbHVkZUNvbnRleHQ6IGluY2x1ZGVDb250ZXh0LFxuICAgICAgICBpbmNsdWRlT25seVRhYmJhYmxlOiBpbmNsdWRlT25seVRhYmJhYmxlLFxuICAgICAgICBzdHJhdGVneTogc3RyYXRlZ3lcbiAgICB9O1xuICAgIGlmIChzdHJhdGVneSA9PT0gXCJxdWlja1wiKSB7XG4gICAgICAgIHJldHVybiBxdWVyeUZvY3VzYWJsZVF1aWNrKG9wdGlvbnMpO1xuICAgIH0gZWxzZSBpZiAoc3RyYXRlZ3kgPT09IFwic3RyaWN0XCIgfHwgc3RyYXRlZ3kgPT09IFwiYWxsXCIpIHtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlU3RyaWN0KG9wdGlvbnMpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdxdWVyeS9mb2N1c2FibGUgcmVxdWlyZXMgb3B0aW9uLnN0cmF0ZWd5IHRvIGJlIG9uZSBvZiBbXCJxdWlja1wiLCBcInN0cmljdFwiLCBcImFsbFwiXScpO1xufVxudmFyIHN1cHBvcnRzJDcgPSB2b2lkIDA7XG4vLyBJbnRlcm5ldCBFeHBsb3JlciAxMSBjb25zaWRlcnMgZmllbGRzZXQsIHRhYmxlLCB0ZCBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGVcbi8vIEludGVybmV0IEV4cGxvcmVyIDExIGNvbnNpZGVycyBib2R5IHRvIGhhdmUgW3RhYmluZGV4PTBdLCBidXQgZG9lcyBub3QgYWxsb3cgdGFiYmluZyB0byBpdFxudmFyIGZvY3VzYWJsZUVsZW1lbnRzUGF0dGVybiA9IC9eKGZpZWxkc2V0fHRhYmxlfHRkfGJvZHkpJC87XG5mdW5jdGlvbiBpc1RhYmJhYmxlUnVsZXMoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBfcmVmJGV4Y2VwdCA9IF9yZWYuZXhjZXB0LCBleGNlcHQgPSBfcmVmJGV4Y2VwdCA9PT0gdW5kZWZpbmVkID8ge1xuICAgICAgICBmbGV4Ym94OiBmYWxzZSxcbiAgICAgICAgc2Nyb2xsYWJsZTogZmFsc2UsXG4gICAgICAgIHNoYWRvdzogZmFsc2UsXG4gICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICBvbmx5VGFiYmFibGU6IGZhbHNlXG4gICAgfSA6IF9yZWYkZXhjZXB0O1xuICAgIGlmICghc3VwcG9ydHMkNykge1xuICAgICAgICBzdXBwb3J0cyQ3ID0gX3N1cHBvcnRzKCk7XG4gICAgfVxuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiBcImlzL3RhYmJhYmxlXCIsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIGlmIChwbGF0Zm9ybS5pcy5CTElOSyAmJiBwbGF0Zm9ybS5pcy5BTkRST0lEICYmIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA+IDQyKSB7XG4gICAgICAgIC8vIEV4dGVybmFsIGtleWJvYXJkIHN1cHBvcnQgd29ya2VkIGZpbmUgaW4gQ0hyb21lIDQyLCBidXQgc3RvcHBlZCB3b3JraW5nIGluIENocm9tZSA0NS5cbiAgICAgICAgLy8gVGhlIG9uLXNjcmVlbiBrZXlib2FyZCBkb2VzIG5vdCBwcm92aWRlIGEgd2F5IHRvIGZvY3VzIHRoZSBuZXh0IGlucHV0IGVsZW1lbnQgKGxpa2UgaU9TIGRvZXMpLlxuICAgICAgICAvLyBUaGF0IGxlYXZlcyB1cyB3aXRoIG5vIG9wdGlvbiB0byBhZHZhbmNlIGZvY3VzIGJ5IGtleWJvYXJkLCBlcmdvIG5vdGhpbmcgaXMgdGFiYmFibGUgKGtleWJvYXJkIGZvY3VzYWJsZSkuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KTtcbiAgICBpZiAoZnJhbWVFbGVtZW50KSB7XG4gICAgICAgIGlmIChwbGF0Zm9ybS5pcy5XRUJLSVQgJiYgcGxhdGZvcm0uaXMuSU9TKSB7XG4gICAgICAgICAgICAvLyBpT1Mgb25seSBkb2VzIG5vdCBjb25zaWRlciBhbnl0aGluZyBmcm9tIGFub3RoZXIgYnJvd3NpbmcgY29udGV4dCBrZXlib2FyZCBmb2N1c2FibGVcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZnJhbWVbdGFiaW5kZXg9XCItMVwiXSBhbmQgb2JqZWN0W3RhYmluZGV4PVwiLTFcIl0gaW5oZXJpdCB0aGVcbiAgICAgICAgLy8gdGFiYmFibGUgZGVtb3Rpb24gb250byBlbGVtZW50cyBvZiB0aGVpciBicm93c2luZyBjb250ZXh0c1xuICAgICAgICBpZiAodGFiaW5kZXhWYWx1ZShmcmFtZUVsZW1lbnQpIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXhjZXB0LnZpc2libGUgJiYgKHBsYXRmb3JtLmlzLkJMSU5LIHx8IHBsYXRmb3JtLmlzLldFQktJVCkgJiYgIWlzVmlzaWJsZShmcmFtZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAvLyBCbGluayBhbmQgV2ViS2l0IGNvbnNpZGVyIGVsZW1lbnRzIGluIGhpZGRlbiBicm93c2luZyBjb250ZXh0cyBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGVcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZWJraXQgYW5kIEJsaW5rIGRvbid0IGNvbnNpZGVyIGFueXRoaW5nIGluIDxvYmplY3Q+IHRhYmJhYmxlXG4gICAgICAgIC8vIEJsaW5rIGZpeGVkIHRoYXQgZml4ZWQgaW4gQ2hyb21lIDU0LCBPcGVyYSA0MVxuICAgICAgICB2YXIgZnJhbWVOb2RlTmFtZSA9IGZyYW1lRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoZnJhbWVOb2RlTmFtZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgdmFyIGlzRml4ZWRCbGluayA9IHBsYXRmb3JtLm5hbWUgPT09IFwiQ2hyb21lXCIgJiYgcGxhdGZvcm0ubWFqb3JWZXJzaW9uID49IDU0IHx8IHBsYXRmb3JtLm5hbWUgPT09IFwiT3BlcmFcIiAmJiBwbGF0Zm9ybS5tYWpvclZlcnNpb24gPj0gNDE7XG4gICAgICAgICAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUIHx8IHBsYXRmb3JtLmlzLkJMSU5LICYmICFpc0ZpeGVkQmxpbmspIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBfdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgIHZhciB0YWJpbmRleCA9IF90YWJpbmRleCA9PT0gbnVsbCA/IG51bGwgOiBfdGFiaW5kZXggPj0gMDtcbiAgICBpZiAocGxhdGZvcm0uaXMuRURHRSAmJiBwbGF0Zm9ybS5tYWpvclZlcnNpb24gPj0gMTQgJiYgZnJhbWVFbGVtZW50ICYmIGVsZW1lbnQub3duZXJTVkdFbGVtZW50ICYmIF90YWJpbmRleCA8IDApIHtcbiAgICAgICAgLy8gRWRnZSAxNCsgY29uc2lkZXJzIDxhIHhsaW5rOmhyZWY9XCLigKZcIiB0YWJpbmRleD1cIi0xXCI+IGtleWJvYXJkIGZvY3VzYWJsZVxuICAgICAgICAvLyBpZiB0aGUgZWxlbWVudCBpcyBpbiBhIG5lc3RlZCBicm93c2luZyBjb250ZXh0XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgaGFzVGFiYmFibGVUYWJpbmRleE9yTm9uZSA9IHRhYmluZGV4ICE9PSBmYWxzZTtcbiAgICB2YXIgaGFzVGFiYmFibGVUYWJpbmRleCA9IF90YWJpbmRleCAhPT0gbnVsbCAmJiBfdGFiaW5kZXggPj0gMDtcbiAgICAvLyBOT1RFOiBGaXJlZm94IDMxIGNvbnNpZGVycyBbY29udGVudGVkaXRhYmxlXSB0byBoYXZlIFt0YWJpbmRleD0tMV0sIGJ1dCBhbGxvd3MgdGFiYmluZyB0byBpdFxuICAgIC8vIGZpeGVkIGluIEZpcmVmb3ggNDAgdGhlIGxhdGVzdCAtIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExODU2NTdcbiAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJjb250ZW50ZWRpdGFibGVcIikpIHtcbiAgICAgICAgLy8gdGFiYmluZyBjYW4gc3RpbGwgYmUgZGlzYWJsZWQgYnkgZXhwbGljaXRseSBwcm92aWRpbmcgW3RhYmluZGV4PVwiLTFcIl1cbiAgICAgICAgcmV0dXJuIGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmU7XG4gICAgfVxuICAgIGlmIChmb2N1c2FibGVFbGVtZW50c1BhdHRlcm4udGVzdChub2RlTmFtZSkgJiYgdGFiaW5kZXggIT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLmlzLklPUykge1xuICAgICAgICAvLyBpT1Mgb25seSBjb25zaWRlcnMgYSBoYW5kIGZ1bGwgb2YgZWxlbWVudHMgdGFiYmFibGUgKGtleWJvYXJkIGZvY3VzYWJsZSlcbiAgICAgICAgLy8gdGhpcyBob2xkcyB0cnVlIGV2ZW4gd2l0aCBleHRlcm5hbCBrZXlib2FyZHNcbiAgICAgICAgdmFyIHBvdGVudGlhbGx5VGFiYmFibGUgPSBub2RlTmFtZSA9PT0gXCJpbnB1dFwiICYmIGVsZW1lbnQudHlwZSA9PT0gXCJ0ZXh0XCIgfHwgZWxlbWVudC50eXBlID09PSBcInBhc3N3b3JkXCIgfHwgbm9kZU5hbWUgPT09IFwic2VsZWN0XCIgfHwgbm9kZU5hbWUgPT09IFwidGV4dGFyZWFcIiB8fCBlbGVtZW50Lmhhc0F0dHJpYnV0ZShcImNvbnRlbnRlZGl0YWJsZVwiKTtcbiAgICAgICAgaWYgKCFwb3RlbnRpYWxseVRhYmJhYmxlKSB7XG4gICAgICAgICAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgICAgIHBvdGVudGlhbGx5VGFiYmFibGUgPSBpc1VzZXJNb2RpZnlXcml0YWJsZShzdHlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwb3RlbnRpYWxseVRhYmJhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSBcInVzZVwiICYmIF90YWJpbmRleCAhPT0gbnVsbCkge1xuICAgICAgICBpZiAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA9PT0gOSkge1xuICAgICAgICAgICAgLy8gSW4gQ2hyb21lIGFuZCBTYWZhcmkgOSB0aGUgPHVzZT4gZWxlbWVudCBpcyBrZXlib2FyZCBmb2N1c2FibGUgZXZlbiBmb3IgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZWxlbWVudE1hdGNoZXMoZWxlbWVudCwgXCJzdmcgYVwiKSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShcInhsaW5rOmhyZWZcIikpIHtcbiAgICAgICAgaWYgKGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmUpIHtcbiAgICAgICAgICAgIC8vIGluIFRyaWRlbnQgYW5kIEdlY2tvIFNWR0VsZW1lbnQgZG9lcyBub3QgaGFuZGxlIHRoZSB0YWJJbmRleCBwcm9wZXJ0eSBwcm9wZXJseVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQuZm9jdXMgJiYgIXN1cHBvcnRzJDcuZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlKSB7XG4gICAgICAgICAgICAvLyBGaXJlZm94IDUxIGFuZCA1MiB0cmVhdCBhbnkgbmF0aXZlbHkgdGFiYmFibGUgU1ZHIGVsZW1lbnQgd2l0aFxuICAgICAgICAgICAgLy8gdGFiaW5kZXg9XCItMVwiIGFzIHRhYmJhYmxlIGFuZCBldmVyeXRoaW5nIGVsc2UgYXMgaW5lcnRcbiAgICAgICAgICAgIC8vIHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAyMzQwXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwic3ZnXCIgJiYgc3VwcG9ydHMkNy5mb2N1c1N2Z0luSWZyYW1lICYmIGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0UpIHtcbiAgICAgICAgaWYgKG5vZGVOYW1lID09PSBcInN2Z1wiKSB7XG4gICAgICAgICAgICBpZiAoc3VwcG9ydHMkNy5mb2N1c1N2Zykge1xuICAgICAgICAgICAgICAgIC8vIG9sZGVyIEludGVybmV0IEV4cGxvcmVycyBjb25zaWRlciA8c3ZnPiBrZXlib2FyZCBmb2N1c2FibGVcbiAgICAgICAgICAgICAgICAvLyB1bmxlc3MgdGhleSBoYXZlIGZvY3NhYmxlPVwiZmFsc2VcIiwgYnV0IHRoZW4gdGhleSB3b3VsZG4ndFxuICAgICAgICAgICAgICAgIC8vIGJlIGZvY3VzYWJsZSBhbmQgdGh1cyBub3QgZXZlbiByZWFjaCB0aGlzIGZpbHRlclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZWxlbWVudHMgdGhhdCBoYXZlIFtmb2N1c2FibGVdIGFyZSBhdXRvbWF0aWNhbGx5IGtleWJvYXJkIGZvY3VzYWJsZSByZWdhcmRsZXNzIG9mIHRoZSBhdHRyaWJ1dGUncyB2YWx1ZVxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaGFzQXR0cmlidXRlKFwiZm9jdXNhYmxlXCIpIHx8IGhhc1RhYmJhYmxlVGFiaW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQub3duZXJTVkdFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoc3VwcG9ydHMkNy5mb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlICYmIGhhc1RhYmJhYmxlVGFiaW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVsZW1lbnRzIHRoYXQgaGF2ZSBbZm9jdXNhYmxlXSBhcmUgYXV0b21hdGljYWxseSBrZXlib2FyZCBmb2N1c2FibGUgcmVnYXJkbGVzcyBvZiB0aGUgYXR0cmlidXRlJ3MgdmFsdWVcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShcImZvY3VzYWJsZVwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZWxlbWVudC50YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKGV4Y2VwdC5vbmx5VGFiYmFibGUpO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwiYXVkaW9cIikge1xuICAgICAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlKFwiY29udHJvbHNcIikpIHtcbiAgICAgICAgICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIHRoZSA8YXVkaW8+IGVsZW1lbnQgaXMgZm9jdXNhYmxlLCBidXQgbm90IHRhYmJhYmxlLCBhbmQgdGFiSW5kZXggcHJvcGVydHkgaXMgd3JvbmdcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChwbGF0Zm9ybS5pcy5CTElOSykge1xuICAgICAgICAgICAgLy8gSW4gQ2hyb21lIDxhdWRpbyBjb250cm9scyB0YWJpbmRleD1cIi0xXCI+IHJlbWFpbnMga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09IFwidmlkZW9cIikge1xuICAgICAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlKFwiY29udHJvbHNcIikpIHtcbiAgICAgICAgICAgIGlmIChwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0UpIHtcbiAgICAgICAgICAgICAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciBhbmQgRWRnZSB0aGUgPHZpZGVvPiBlbGVtZW50IGlzIGZvY3VzYWJsZSwgYnV0IG5vdCB0YWJiYWJsZSwgYW5kIHRhYkluZGV4IHByb3BlcnR5IGlzIHdyb25nXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHBsYXRmb3JtLmlzLkJMSU5LIHx8IHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAgICAgICAvLyBJbiBDaHJvbWUgYW5kIEZpcmVmb3ggPHZpZGVvIGNvbnRyb2xzIHRhYmluZGV4PVwiLTFcIj4gcmVtYWlucyBrZXlib2FyZCBmb2N1c2FibGVcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuV0VCS0lUKSB7XG4gICAgICAgICAgICAvLyBJbiBhbGwgQmxpbmsgYW5kIFdlYktpdCBiYXNlZCBicm93c2VycyA8ZW1iZWQ+IGFuZCA8b2JqZWN0PiBhcmUgbmV2ZXIga2V5Ym9hcmQgZm9jdXNhYmxlLCBldmVuIHdpdGggdGFiaW5kZXg9XCIwXCIgc2V0XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSBcImlmcmFtZVwiKSB7XG4gICAgICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIGFsbCBpZnJhbWVzIGFyZSBvbmx5IGZvY3VzYWJsZVxuICAgICAgICAvLyBJbiBXZWJLaXQsIEJsaW5rIGFuZCBHZWNrbyBpZnJhbWVzIG1heSBiZSB0YWJiYWJsZSBkZXBlbmRpbmcgb24gY29udGVudC5cbiAgICAgICAgLy8gU2luY2Ugd2UgY2FuJ3QgcmVsaWFibHkgaW52ZXN0aWdhdGUgaWZyYW1lIGRvY3VtZW50cyBiZWNhdXNlIG9mIHRoZVxuICAgICAgICAvLyBTYW1lT3JpZ2luUG9saWN5LCB3ZSdyZSBkZWNsYXJpbmcgZXZlcnl0aGluZyBvbmx5IGZvY3VzYWJsZS5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VwdC5zY3JvbGxhYmxlICYmIHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAgIC8vIEZpcmVmb3ggY29uc2lkZXJzIHNjcm9sbGFibGUgY29udGFpbmVycyBrZXlib2FyZCBmb2N1c2FibGUsXG4gICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IGlzIC0xXG4gICAgICAgIHZhciBfc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgaWYgKGhhc0Nzc092ZXJmbG93U2Nyb2xsKF9zdHlsZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBoYXNUYWJiYWJsZVRhYmluZGV4T3JOb25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0UpIHtcbiAgICAgICAgLy8gSUUgYW5kIEVkZ2UgZGVncmFkZSA8YXJlYT4gdG8gc2NyaXB0IGZvY3VzYWJsZSwgaWYgdGhlIGltYWdlXG4gICAgICAgIC8vIHVzaW5nIHRoZSA8bWFwPiBoYXMgYmVlbiBnaXZlbiB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgaWYgKG5vZGVOYW1lID09PSBcImFyZWFcIikge1xuICAgICAgICAgICAgdmFyIGltZyA9IGdldEltYWdlT2ZBcmVhKGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGltZyAmJiB0YWJpbmRleFZhbHVlKGltZykgPCAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciBfc3R5bGUyID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIGlmIChpc1VzZXJNb2RpZnlXcml0YWJsZShfc3R5bGUyKSkge1xuICAgICAgICAgICAgLy8gcHJldmVudCBiZWluZyBzd2FsbG93ZWQgYnkgdGhlIG92ZXJ6ZWFsb3VzIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcigpIGJlbG93XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC50YWJJbmRleCA+PSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXhjZXB0LmZsZXhib3ggJiYgaGFzQ3NzRGlzcGxheUZsZXgoX3N0eWxlMikpIHtcbiAgICAgICAgICAgIGlmIChfdGFiaW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpc0ZvY3VzUmVsZXZhbnRXaXRob3V0RmxleGJveChlbGVtZW50KSAmJiBpc1RhYmJhYmxlV2l0aG91dEZsZXhib3goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSUUgY29uc2lkZXJzIHNjcm9sbGFibGUgY29udGFpbmVycyBzY3JpcHQgZm9jdXNhYmxlIG9ubHksXG4gICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IGlzIDBcbiAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50LCBub2RlTmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICB2YXIgcGFyZW50Tm9kZU5hbWUgPSBwYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHZhciBwYXJlbnRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCwgbnVsbCk7XG4gICAgICAgICAgICAvLyBJRSBjb25zaWRlcnMgc2Nyb2xsYWJsZSBib2RpZXMgc2NyaXB0IGZvY3VzYWJsZSBvbmx5LFxuICAgICAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihwYXJlbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hpbGRyZW4gb2YgZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggZGlzcGxheTpmbGV4IGFyZSBmb2N1c2FibGUgaW4gSUUxMC0xMSxcbiAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IHN1Z2dlc3RzIG90aGVyd2lzZVxuICAgICAgICAgICAgaWYgKGhhc0Nzc0Rpc3BsYXlGbGV4KHBhcmVudFN0eWxlKSkge1xuICAgICAgICAgICAgICAgIC8vIHZhbHVlIG9mIHRhYmluZGV4IHRha2VzIHByZWNlZGVuY2VcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvV0FJL1BGL2FyaWEtcHJhY3RpY2VzLyNmb2N1c190YWJpbmRleFxuICAgIHJldHVybiBlbGVtZW50LnRhYkluZGV4ID49IDA7XG59XG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzVGFiYmFibGVSdWxlcy5leGNlcHQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgZXhjZXB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgaXNUYWJiYWJsZSA9IGZ1bmN0aW9uIGlzVGFiYmFibGUoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gaXNUYWJiYWJsZVJ1bGVzKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgICBleGNlcHQ6IGV4Y2VwdFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGlzVGFiYmFibGUucnVsZXMgPSBpc1RhYmJhYmxlUnVsZXM7XG4gICAgcmV0dXJuIGlzVGFiYmFibGU7XG59O1xudmFyIGlzRm9jdXNSZWxldmFudFdpdGhvdXRGbGV4Ym94ID0gaXNGb2N1c1JlbGV2YW50LnJ1bGVzLmV4Y2VwdCh7XG4gICAgZmxleGJveDogdHJ1ZVxufSk7XG52YXIgaXNUYWJiYWJsZVdpdGhvdXRGbGV4Ym94ID0gaXNUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7XG4gICAgZmxleGJveDogdHJ1ZVxufSk7XG4vLyBwcm92aWRlIGlzVGFiYmFibGUoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzVGFiYmFibGUgPSBpc1RhYmJhYmxlUnVsZXMuZXhjZXB0KHt9KTtcbmZ1bmN0aW9uIHF1ZXJ5VGFiYmFibGUoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBpbmNsdWRlQ29udGV4dCA9IF9yZWYuaW5jbHVkZUNvbnRleHQsIGluY2x1ZGVPbmx5VGFiYmFibGUgPSBfcmVmLmluY2x1ZGVPbmx5VGFiYmFibGUsIHN0cmF0ZWd5ID0gX3JlZi5zdHJhdGVneTtcbiAgICB2YXIgX2lzVGFiYmFibGUgPSBpc1RhYmJhYmxlLnJ1bGVzLmV4Y2VwdCh7XG4gICAgICAgIG9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZVxuICAgIH0pO1xuICAgIHJldHVybiBxdWVyeUZvY3VzYWJsZSh7XG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgIGluY2x1ZGVDb250ZXh0OiBpbmNsdWRlQ29udGV4dCxcbiAgICAgICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICAgICAgc3RyYXRlZ3k6IHN0cmF0ZWd5XG4gICAgfSkuZmlsdGVyKF9pc1RhYmJhYmxlKTtcbn1cbi8vIHNvcnRzIGEgbGlzdCBvZiBlbGVtZW50cyBhY2NvcmRpbmcgdG8gdGhlaXIgb3JkZXIgaW4gdGhlIERPTVxuZnVuY3Rpb24gY29tcGFyZURvbVBvc2l0aW9uKGEsIGIpIHtcbiAgICByZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HID8gLTEgOiAxO1xufVxuZnVuY3Rpb24gc29ydERvbU9yZGVyKGVsZW1lbnRzKSB7XG4gICAgcmV0dXJuIGVsZW1lbnRzLnNvcnQoY29tcGFyZURvbVBvc2l0aW9uKTtcbn1cbmZ1bmN0aW9uIGdldEZpcnN0U3VjY2Vzc29yT2Zmc2V0KGxpc3QsIHRhcmdldCkge1xuICAgIC8vIGZpbmQgdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBjb21lcyBBRlRFUiB0aGUgdGFyZ2V0IGVsZW1lbnRcbiAgICByZXR1cm4gZmluZEluZGV4KGxpc3QsIGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbGVtZW50KSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZmluZEluc2VydGlvbk9mZnNldHMobGlzdCwgZWxlbWVudHMsIHJlc29sdmVFbGVtZW50KSB7XG4gICAgLy8gaW5zdGVhZCBvZiBtdXRhdGluZyB0aGUgZWxlbWVudHMgbGlzdCBkaXJlY3RseSwgcmVtZW1iZXIgcG9zaXRpb24gYW5kIG1hcFxuICAgIC8vIHRvIGluamVjdCBsYXRlciwgd2hlbiB3ZSBjYW4gZG8gdGhpcyBtb3JlIGVmZmljaWVudGx5XG4gICAgdmFyIGluc2VydGlvbnMgPSBbXTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgdmFyIHJlcGxhY2UgPSB0cnVlO1xuICAgICAgICB2YXIgb2Zmc2V0ID0gbGlzdC5pbmRleE9mKGVsZW1lbnQpO1xuICAgICAgICBpZiAob2Zmc2V0ID09PSAtMSkge1xuICAgICAgICAgICAgLy8gZWxlbWVudCBpcyBub3QgaW4gdGFyZ2V0IGxpc3RcbiAgICAgICAgICAgIG9mZnNldCA9IGdldEZpcnN0U3VjY2Vzc29yT2Zmc2V0KGxpc3QsIGVsZW1lbnQpO1xuICAgICAgICAgICAgcmVwbGFjZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvZmZzZXQgPT09IC0xKSB7XG4gICAgICAgICAgICAvLyB0aGVyZSBpcyBubyBzdWNjZXNzb3IgaW4gdGhlIHRhYnNlcXVlbmNlLFxuICAgICAgICAgICAgLy8gbWVhbmluZyB0aGUgaW1hZ2UgbXVzdCBiZSB0aGUgbGFzdCBlbGVtZW50XG4gICAgICAgICAgICBvZmZzZXQgPSBsaXN0Lmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICAvLyBhbGxvdyB0aGUgY29uc3VtZXIgdG8gcmVwbGFjZSB0aGUgaW5qZWN0ZWQgZWxlbWVudFxuICAgICAgICB2YXIgaW5qZWN0aW9ucyA9IG5vZGVBcnJheShyZXNvbHZlRWxlbWVudCA/IHJlc29sdmVFbGVtZW50KGVsZW1lbnQpIDogZWxlbWVudCk7XG4gICAgICAgIGlmICghaW5qZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIHdlIGNhbid0IGluamVjdCB6ZXJvIGVsZW1lbnRzXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgcmVwbGFjZTogcmVwbGFjZSxcbiAgICAgICAgICAgIGVsZW1lbnRzOiBpbmplY3Rpb25zXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBpbnNlcnRpb25zO1xufVxuZnVuY3Rpb24gaW5zZXJ0RWxlbWVudHNBdE9mZnNldHMobGlzdCwgaW5zZXJ0aW9ucykge1xuICAgIC8vIHJlbWVtYmVyIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2UgaGF2ZSBhbHJlYWR5IGluamVjdGVkXG4gICAgLy8gc28gd2UgYWNjb3VudCBmb3IgdGhlIGNhdXNlZCBpbmRleCBvZmZzZXRcbiAgICB2YXIgaW5zZXJ0ZWQgPSAwO1xuICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHdlIGluc2VydCB0aGUgZWxlbWVudHMgaW4gc2VxdWVuY2UsXG4gICAgLy8gb3RoZXJ3aXNlIHRoZSBvZmZzZXQgY29tcGVuc2F0aW9uIHdvbid0IHdvcmtcbiAgICBpbnNlcnRpb25zLnNvcnQoZnVuY3Rpb24oYSwgYikge1xuICAgICAgICByZXR1cm4gYS5vZmZzZXQgLSBiLm9mZnNldDtcbiAgICB9KTtcbiAgICBpbnNlcnRpb25zLmZvckVhY2goZnVuY3Rpb24oaW5zZXJ0aW9uKSB7XG4gICAgICAgIC8vIGFycmF5LnNwbGljZSBoYXMgYW4gYW5ub3lpbmcgZnVuY3Rpb24gc2lnbmF0dXJlIDooXG4gICAgICAgIHZhciByZW1vdmUgPSBpbnNlcnRpb24ucmVwbGFjZSA/IDEgOiAwO1xuICAgICAgICB2YXIgYXJncyA9IFtcbiAgICAgICAgICAgIGluc2VydGlvbi5vZmZzZXQgKyBpbnNlcnRlZCxcbiAgICAgICAgICAgIHJlbW92ZVxuICAgICAgICBdLmNvbmNhdChpbnNlcnRpb24uZWxlbWVudHMpO1xuICAgICAgICBsaXN0LnNwbGljZS5hcHBseShsaXN0LCBhcmdzKTtcbiAgICAgICAgaW5zZXJ0ZWQgKz0gaW5zZXJ0aW9uLmVsZW1lbnRzLmxlbmd0aCAtIHJlbW92ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG1lcmdlSW5Eb21PcmRlcigpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGxpc3QgPSBfcmVmLmxpc3QsIGVsZW1lbnRzID0gX3JlZi5lbGVtZW50cywgcmVzb2x2ZUVsZW1lbnQgPSBfcmVmLnJlc29sdmVFbGVtZW50O1xuICAgIC8vIG9wZXJhdGUgb24gYSBjb3B5IHNvIHdlIGRvbid0IG11dGF0ZSB0aGUgb3JpZ2luYWwgYXJyYXlcbiAgICB2YXIgX2xpc3QgPSBsaXN0LnNsaWNlKDApO1xuICAgIC8vIG1ha2Ugc3VyZSB0aGUgZWxlbWVudHMgd2UncmUgaW5qZWN0aW5nIGFyZSBwcm92aWRlZCBpbiBET00gb3JkZXJcbiAgICB2YXIgX2VsZW1lbnRzID0gbm9kZUFycmF5KGVsZW1lbnRzKS5zbGljZSgwKTtcbiAgICBzb3J0RG9tT3JkZXIoX2VsZW1lbnRzKTtcbiAgICAvLyBmaW5kIHRoZSBvZmZzZXRzIHdpdGhpbiB0aGUgdGFyZ2V0IGFycmF5IChsaXN0KSBhdCB3aGljaCB0byBpbmplY3RcbiAgICAvLyBlYWNoIGluZGl2aWR1YWwgZWxlbWVudCAoZnJvbSBlbGVtZW50cylcbiAgICB2YXIgaW5zZXJ0aW9ucyA9IGZpbmRJbnNlcnRpb25PZmZzZXRzKF9saXN0LCBfZWxlbWVudHMsIHJlc29sdmVFbGVtZW50KTtcbiAgICAvLyBhY3R1YWxseSBpbmplY3QgdGhlIGVsZW1lbnRzIGludG8gdGhlIHRhcmdldCBhcnJheSBhdCB0aGUgaWRlbnRpZmllZCBwb3NpdGlvbnNcbiAgICBpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyhfbGlzdCwgaW5zZXJ0aW9ucyk7XG4gICAgcmV0dXJuIF9saXN0O1xufVxudmFyIF9jcmVhdGVDbGFzcyA9IGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICAgICAgICBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICAgICAgICBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICAgICAgcmV0dXJuIENvbnN0cnVjdG9yO1xuICAgIH07XG59KCk7XG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgICB9XG59XG52YXIgTWFwcyA9IGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIE1hcHMoY29udGV4dCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFwcyk7XG4gICAgICAgIHRoaXMuX2RvY3VtZW50ID0gZ2V0RG9jdW1lbnQoY29udGV4dCk7XG4gICAgICAgIHRoaXMubWFwcyA9IHt9O1xuICAgIH1cbiAgICBfY3JlYXRlQ2xhc3MoTWFwcywgW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiZ2V0QXJlYXNGb3JcIixcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRBcmVhc0ZvcihuYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hcHNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG1hcCBpcyBub3QgZGVmaW5lZCB3aXRoaW4gdGhlIGNvbnRleHQsIHNvIHdlXG4gICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgdG8gZ28gZmluZCBpdCBlbHNld2hlcmUgaW4gdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTWFwQnlOYW1lKG5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXBzW25hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiYWRkTWFwQnlOYW1lXCIsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gYWRkTWFwQnlOYW1lKG5hbWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbWFwID0gZ2V0TWFwQnlOYW1lKG5hbWUsIHRoaXMuX2RvY3VtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoIW1hcCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBubyBtYXAsIHRoZSBpbWdbdXNlbWFwXSB3YXNuJ3QgZG9pbmcgYW55dGhpbmcgYW55d2F5XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5tYXBzW21hcC5uYW1lXSA9IHF1ZXJ5VGFiYmFibGUoe1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBtYXBcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImV4dHJhY3RBcmVhc0Zyb21MaXN0XCIsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXh0cmFjdEFyZWFzRnJvbUxpc3QoZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgYWxsIDxhcmVhPiBlbGVtZW50cyBmcm9tIHRoZSBlbGVtZW50cyBsaXN0LFxuICAgICAgICAgICAgICAgIC8vIGJ1dCBwdXQgdGhlbSB0aGUgbWFwIGZvciBsYXRlciByZXRyaWV2YWxcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZU5hbWUgIT09IFwiYXJlYVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgbWFwID0gZWxlbWVudC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWFwc1ttYXAubmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFwc1ttYXAubmFtZV0gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcHNbbWFwLm5hbWVdLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF0pO1xuICAgIHJldHVybiBNYXBzO1xufSgpO1xuZnVuY3Rpb24gc29ydEFyZWEoZWxlbWVudHMsIGNvbnRleHQpIHtcbiAgICAvLyBpbWFnZXMgLSB1bmxlc3MgdGhleSBhcmUgZm9jdXNhYmxlIHRoZW1zZWx2ZXMsIGxpa2VseSBub3RcbiAgICAvLyBwYXJ0IG9mIHRoZSBlbGVtZW50cyBsaXN0LCBzbyB3ZSdsbCBoYXZlIHRvIGZpbmQgdGhlbSBhbmRcbiAgICAvLyBzb3J0IHRoZW0gaW50byB0aGUgZWxlbWVudHMgbGlzdCBtYW51YWxseVxuICAgIHZhciB1c2VtYXBzID0gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKFwiaW1nW3VzZW1hcF1cIik7XG4gICAgdmFyIG1hcHMgPSBuZXcgTWFwcyhjb250ZXh0KTtcbiAgICAvLyByZW1vdmUgYWxsIDxhcmVhPiBlbGVtZW50cyBmcm9tIHRoZSBlbGVtZW50cyBsaXN0LFxuICAgIC8vIGJ1dCBwdXQgdGhlbSB0aGUgbWFwIGZvciBsYXRlciByZXRyaWV2YWxcbiAgICB2YXIgX2VsZW1lbnRzID0gbWFwcy5leHRyYWN0QXJlYXNGcm9tTGlzdChlbGVtZW50cyk7XG4gICAgaWYgKCF1c2VtYXBzLmxlbmd0aCkge1xuICAgICAgICAvLyB0aGUgY29udGV4dCBkb2VzIG5vdCBjb250YWluIGFueSA8YXJlYT5zIHNvIG5vIG5lZWRcbiAgICAgICAgLy8gdG8gcmVwbGFjZSBhbnl0aGluZywganVzdCByZW1vdmUgYW55IG1hcHNcbiAgICAgICAgcmV0dXJuIF9lbGVtZW50cztcbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgIGxpc3Q6IF9lbGVtZW50cyxcbiAgICAgICAgZWxlbWVudHM6IHVzZW1hcHMsXG4gICAgICAgIHJlc29sdmVFbGVtZW50OiBmdW5jdGlvbiByZXNvbHZlRWxlbWVudChpbWFnZSkge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBpbWFnZS5nZXRBdHRyaWJ1dGUoXCJ1c2VtYXBcIikuc2xpY2UoMSk7XG4gICAgICAgICAgICByZXR1cm4gbWFwcy5nZXRBcmVhc0ZvcihuYW1lKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxudmFyIF9jcmVhdGVDbGFzcyQxID0gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgICAgICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24oQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgICAgIGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gICAgICAgIGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICAgICAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gICAgfTtcbn0oKTtcbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayQxKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICAgIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gICAgfVxufVxudmFyIFNoYWRvd3MgPSBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiBTaGFkb3dzKGNvbnRleHQsIHNvcnRFbGVtZW50cykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2skMSh0aGlzLCBTaGFkb3dzKTtcbiAgICAgICAgLy8gZG9jdW1lbnQgY29udGV4dCB3ZSdyZSB3b3JraW5nIHdpdGhcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgLy8gY2FsbGJhY2sgdGhhdCBzb3J0cyBhbiBhcnJheSBvZiBlbGVtZW50c1xuICAgICAgICB0aGlzLnNvcnRFbGVtZW50cyA9IHNvcnRFbGVtZW50cztcbiAgICAgICAgLy8gcmVmZXJlbmNlIHRvIGNyZWF0ZSB1bmlxdWUgSURzIGZvciBlYWNoIFNoYWRvd0hvc3RcbiAgICAgICAgdGhpcy5ob3N0Q291bnRlciA9IDE7XG4gICAgICAgIC8vIHJlZmVyZW5jZSBtYXAgZm9yIGNoaWxkLVNoYWRvd0hvc3RzIG9mIGEgU2hhZG93SG9zdFxuICAgICAgICB0aGlzLmluSG9zdCA9IHt9O1xuICAgICAgICAvLyByZWZlcmVuY2UgbWFwIGZvciBjaGlsZC1TaGFkb3dIb3N0IG9mIHRoZSBkb2N1bWVudFxuICAgICAgICB0aGlzLmluRG9jdW1lbnQgPSBbXTtcbiAgICAgICAgLy8gcmVmZXJlbmNlIG1hcCBmb3IgU2hhZG93SG9zdHNcbiAgICAgICAgdGhpcy5ob3N0cyA9IHt9O1xuICAgICAgICAvLyByZWZlcmVuY2UgbWFwIGZvciB0YWJiYWJsZSBlbGVtZW50cyBvZiBhIFNoYWRvd0hvc3RcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IHt9O1xuICAgIH1cbiAgICAvLyByZW1lbWJlciB3aGljaCBob3N0cyB3ZSBoYXZlIHRvIHNvcnQgd2l0aGluIGxhdGVyXG4gICAgX2NyZWF0ZUNsYXNzJDEoU2hhZG93cywgW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiX3JlZ2lzdGVySG9zdFwiLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9yZWdpc3Rlckhvc3QoaG9zdCkge1xuICAgICAgICAgICAgICAgIGlmIChob3N0Ll9zb3J0aW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBtYWtlIHRoZSBTaGFkb3dIb3N0IGlkZW50aWZpYWJsZSAoc2VlIGNsZWFudXAoKSBmb3IgdW5kbylcbiAgICAgICAgICAgICAgICBob3N0Ll9zb3J0aW5nSWQgPSBcInNoYWRvdy1cIiArIHRoaXMuaG9zdENvdW50ZXIrKztcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RzW2hvc3QuX3NvcnRpbmdJZF0gPSBob3N0O1xuICAgICAgICAgICAgICAgIC8vIGhvc3RzIG1heSBjb250YWluIG90aGVyIGhvc3RzXG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudEhvc3QgPSBnZXRTaGFkb3dIb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogaG9zdFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRIb3N0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVySG9zdChwYXJlbnRIb3N0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJIb3N0UGFyZW50KGhvc3QsIHBhcmVudEhvc3QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5Eb2N1bWVudC5wdXNoKGhvc3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIl9yZWdpc3Rlckhvc3RQYXJlbnRcIixcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVnaXN0ZXJIb3N0UGFyZW50KGhvc3QsIHBhcmVudCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbkhvc3RbcGFyZW50Ll9zb3J0aW5nSWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5Ib3N0W3BhcmVudC5fc29ydGluZ0lkXSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmluSG9zdFtwYXJlbnQuX3NvcnRpbmdJZF0ucHVzaChob3N0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIl9yZWdpc3RlckVsZW1lbnRcIixcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVnaXN0ZXJFbGVtZW50KGVsZW1lbnQsIGhvc3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZWxlbWVudHNbaG9zdC5fc29ydGluZ0lkXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2hvc3QuX3NvcnRpbmdJZF0gPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tob3N0Ll9zb3J0aW5nSWRdLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJleHRyYWN0RWxlbWVudHNcIixcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBleHRyYWN0RWxlbWVudHMoZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGhvc3QgPSBnZXRTaGFkb3dIb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaG9zdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJIb3N0KGhvc3QpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWdpc3RlckVsZW1lbnQoZWxlbWVudCwgaG9zdCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcInNvcnRcIixcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzb3J0KGVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9lbGVtZW50cyA9IHRoaXMuX2luamVjdEhvc3RzKGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBfZWxlbWVudHMgPSB0aGlzLl9yZXBsYWNlSG9zdHMoX2VsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9lbGVtZW50cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIl9pbmplY3RIb3N0c1wiLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbmplY3RIb3N0cyhlbGVtZW50cykge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaG9zdHMpLmZvckVhY2goZnVuY3Rpb24oX3NvcnRpbmdJZCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2xpc3QgPSB0aGlzLmVsZW1lbnRzW19zb3J0aW5nSWRdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2VsZW1lbnRzID0gdGhpcy5pbkhvc3RbX3NvcnRpbmdJZF07XG4gICAgICAgICAgICAgICAgICAgIHZhciBfY29udGV4dCA9IHRoaXMuaG9zdHNbX3NvcnRpbmdJZF0uc2hhZG93Um9vdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tfc29ydGluZ0lkXSA9IHRoaXMuX21lcmdlKF9saXN0LCBfZWxlbWVudHMsIF9jb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbWVyZ2UoZWxlbWVudHMsIHRoaXMuaW5Eb2N1bWVudCwgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIl9tZXJnZVwiLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9tZXJnZShsaXN0LCBlbGVtZW50cywgY29udGV4dCkge1xuICAgICAgICAgICAgICAgIHZhciBtZXJnZWQgPSBtZXJnZUluRG9tT3JkZXIoe1xuICAgICAgICAgICAgICAgICAgICBsaXN0OiBsaXN0LFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogZWxlbWVudHNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zb3J0RWxlbWVudHMobWVyZ2VkLCBjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIl9yZXBsYWNlSG9zdHNcIixcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVwbGFjZUhvc3RzKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Q6IGVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogdGhpcy5pbkRvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlRWxlbWVudDogdGhpcy5fcmVzb2x2ZUhvc3RFbGVtZW50LmJpbmQodGhpcylcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcIl9yZXNvbHZlSG9zdEVsZW1lbnRcIixcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVzb2x2ZUhvc3RFbGVtZW50KGhvc3QpIHtcbiAgICAgICAgICAgICAgICB2YXIgbWVyZ2VkID0gbWVyZ2VJbkRvbU9yZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdDogdGhpcy5lbGVtZW50c1tob3N0Ll9zb3J0aW5nSWRdLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogdGhpcy5pbkhvc3RbaG9zdC5fc29ydGluZ0lkXSxcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZUVsZW1lbnQ6IHRoaXMuX3Jlc29sdmVIb3N0RWxlbWVudC5iaW5kKHRoaXMpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdmFyIF90YWJpbmRleCA9IHRhYmluZGV4VmFsdWUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaWYgKF90YWJpbmRleCAhPT0gbnVsbCAmJiBfdGFiaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgaG9zdFxuICAgICAgICAgICAgICAgICAgICBdLmNvbmNhdChtZXJnZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbWVyZ2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiX2NsZWFudXBcIixcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfY2xlYW51cCgpIHtcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhvc2UgaWRlbnRpZmVycyB3ZSBwdXQgb24gdGhlIFNoYWRvd0hvc3QgdG8gYXZvaWQgdXNpbmcgTWFwKClcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmhvc3RzKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5ob3N0c1trZXldLl9zb3J0aW5nSWQ7XG4gICAgICAgICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBdKTtcbiAgICByZXR1cm4gU2hhZG93cztcbn0oKTtcbmZ1bmN0aW9uIHNvcnRTaGFkb3dlZChlbGVtZW50cywgY29udGV4dCwgc29ydEVsZW1lbnRzKSB7XG4gICAgdmFyIHNoYWRvd3MgPSBuZXcgU2hhZG93cyhjb250ZXh0LCBzb3J0RWxlbWVudHMpO1xuICAgIHZhciBfZWxlbWVudHMgPSBzaGFkb3dzLmV4dHJhY3RFbGVtZW50cyhlbGVtZW50cyk7XG4gICAgaWYgKF9lbGVtZW50cy5sZW5ndGggPT09IGVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAvLyBubyBzaGFkb3dlZCBjb250ZW50IGZvdW5kLCBubyBuZWVkIHRvIGNvbnRpbnVlXG4gICAgICAgIHJldHVybiBzb3J0RWxlbWVudHMoZWxlbWVudHMpO1xuICAgIH1cbiAgICByZXR1cm4gc2hhZG93cy5zb3J0KF9lbGVtZW50cyk7XG59XG5mdW5jdGlvbiBzb3J0VGFiaW5kZXgoZWxlbWVudHMpIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTEVsZW1lbnQudGFiSW5kZXhcbiAgICAvLyBlbGVtZW50cyB3aXRoIHRhYkluZGV4IFwiMFwiIChpbmNsdWRpbmcgdGFiYmFibGVFbGVtZW50cyB3aXRob3V0IHRhYkluZGV4KSBzaG91bGQgYmUgbmF2aWdhdGVkIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhci5cbiAgICAvLyBlbGVtZW50cyB3aXRoIGEgcG9zaXRpdmUgdGFiSW5kZXg6XG4gICAgLy8gICBFbGVtZW50cyB0aGF0IGhhdmUgaWRlbnRpY2FsIHRhYkluZGV4ZXMgc2hvdWxkIGJlIG5hdmlnYXRlZCBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIuXG4gICAgLy8gICBOYXZpZ2F0aW9uIHByb2NlZWRzIGZyb20gdGhlIGxvd2VzdCB0YWJJbmRleCB0byB0aGUgaGlnaGVzdCB0YWJJbmRleC5cbiAgICAvLyBOT1RFOiBzb3J0IGltcGxlbWVudGF0aW9uIG1heSBiZSB1bnN0YWJsZSBhbmQgdGh1cyBtZXNzIHVwIERPTSBvcmRlcixcbiAgICAvLyB0aGF0J3Mgd2h5IHdlIGJ1aWxkIGEgbWFwIHRoYXQncyBiZWluZyBzb3J0ZWQgaW5zdGVhZC4gSWYgd2Ugd2VyZSBhYmxlIHRvIHJlbHlcbiAgICAvLyBvbiBhIHN0YWJsZSBzb3J0aW5nIGFsZ29yaXRobSwgc29ydFRhYmluZGV4KCkgY291bGQgYmUgYXMgc2ltcGxlIGFzXG4gICAgLy8gZWxlbWVudHMuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhLnRhYkluZGV4IC0gYi50YWJJbmRleDsgfSk7XG4gICAgLy8gYXQgdGhpcyB0aW1lIENocm9tZSBkb2VzIG5vdCB1c2UgYSBzdGFibGUgc29ydGluZyBhbGdvcml0aG1cbiAgICAvLyBzZWUgaHR0cDovL2Jsb2cucm9kbmV5cmVobS5kZS9hcmNoaXZlcy8xNC1Tb3J0aW5nLVdlcmUtRG9pbmctSXQtV3JvbmcuaHRtbCNzdGFiaWxpdHlcbiAgICAvLyBOT1RFOiBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBzZWVtZWQgbGlrZSBtb3JlIG92ZXJoZWFkIHRoYW4ganVzdCBzb3J0aW5nIHRoaXMgd2l0aCBidWNrZXRzXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL05vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb25cbiAgICB2YXIgbWFwID0ge307XG4gICAgdmFyIGluZGV4ZXMgPSBbXTtcbiAgICB2YXIgbm9ybWFsID0gZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgLy8gaW4gVHJpZGVudCBhbmQgR2Vja28gU1ZHRWxlbWVudCBkb2VzIG5vdCBrbm93IGFib3V0IHRoZSB0YWJJbmRleCBwcm9wZXJ0eVxuICAgICAgICB2YXIgdGFiSW5kZXggPSBlbGVtZW50LnRhYkluZGV4O1xuICAgICAgICBpZiAodGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGFiSW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGV4dHJhY3QgZWxlbWVudHMgdGhhdCBkb24ndCBuZWVkIHNvcnRpbmdcbiAgICAgICAgaWYgKHRhYkluZGV4IDw9IDAgfHwgdGFiSW5kZXggPT09IG51bGwgfHwgdGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtYXBbdGFiSW5kZXhdKSB7XG4gICAgICAgICAgICAvLyBjcmVhdGUgc29ydGFibGUgYnVja2V0IGZvciBkb20tb3JkZXItcHJlc2VydmF0aW9uIG9mIGVsZW1lbnRzIHdpdGggdGhlIHNhbWUgdGFiSW5kZXhcbiAgICAgICAgICAgIG1hcFt0YWJJbmRleF0gPSBbXTtcbiAgICAgICAgICAgIC8vIG1haW50YWluIGEgbGlzdCBvZiB1bmlxdWUgdGFiSW5kZXhlc1xuICAgICAgICAgICAgaW5kZXhlcy5wdXNoKHRhYkluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzb3J0IGVsZW1lbnQgaW50byB0aGUgcHJvcGVyIGJ1Y2tldFxuICAgICAgICBtYXBbdGFiSW5kZXhdLnB1c2goZWxlbWVudCk7XG4gICAgICAgIC8vIGVsZW1lbnQgbW92ZWQgdG8gc29ydGluZyBtYXAsIHNvIG5vdCBcIm5vcm1hbFwiIGFueW1vcmVcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIC8vIHNvcnQgdGhlIHRhYmluZGV4IGFzY2VuZGluZyxcbiAgICAvLyB0aGVuIHJlc29sdmUgdGhlbSB0byB0aGVpciBhcHByb3ByaWF0ZSBidWNrZXRzLFxuICAgIC8vIHRoZW4gZmxhdHRlbiB0aGUgYXJyYXkgb2YgYXJyYXlzIHRvIGFuIGFycmF5XG4gICAgdmFyIF9lbGVtZW50cyA9IGluZGV4ZXMuc29ydCgpLm1hcChmdW5jdGlvbih0YWJJbmRleCkge1xuICAgICAgICByZXR1cm4gbWFwW3RhYkluZGV4XTtcbiAgICB9KS5yZWR1Y2VSaWdodChmdW5jdGlvbihwcmV2aW91cywgY3VycmVudCkge1xuICAgICAgICByZXR1cm4gY3VycmVudC5jb25jYXQocHJldmlvdXMpO1xuICAgIH0sIG5vcm1hbCk7XG4gICAgcmV0dXJuIF9lbGVtZW50cztcbn1cbnZhciBzdXBwb3J0cyQ4ID0gdm9pZCAwO1xuZnVuY3Rpb24gbW92ZUNvbnRleHRUb0JlZ2lubmluZyhlbGVtZW50cywgY29udGV4dCkge1xuICAgIHZhciBwb3MgPSBlbGVtZW50cy5pbmRleE9mKGNvbnRleHQpO1xuICAgIGlmIChwb3MgPiAwKSB7XG4gICAgICAgIHZhciB0bXAgPSBlbGVtZW50cy5zcGxpY2UocG9zLCAxKTtcbiAgICAgICAgcmV0dXJuIHRtcC5jb25jYXQoZWxlbWVudHMpO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudHM7XG59XG5mdW5jdGlvbiBzb3J0RWxlbWVudHMoZWxlbWVudHMsIF9jb250ZXh0KSB7XG4gICAgaWYgKHN1cHBvcnRzJDgudGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbikge1xuICAgICAgICAvLyBTb21lIGJyb3dzZXJzIHNvcnQgPGFyZWE+IGluIERPTSBvcmRlciwgc29tZSBwbGFjZSB0aGUgPGFyZWE+c1xuICAgICAgICAvLyB3aGVyZSB0aGUgPGltZz4gcmVmZXJlY2luZyB0aGVtIHdvdWxkJ3ZlIGJlZW4gaW4gRE9NIG9yZGVyLlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzVcbiAgICAgICAgZWxlbWVudHMgPSBzb3J0QXJlYShlbGVtZW50cywgX2NvbnRleHQpO1xuICAgIH1cbiAgICBlbGVtZW50cyA9IHNvcnRUYWJpbmRleChlbGVtZW50cyk7XG4gICAgcmV0dXJuIGVsZW1lbnRzO1xufVxuZnVuY3Rpb24gcXVlcnlUYWJzZXF1ZW5jZSgpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCwgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZSwgc3RyYXRlZ3kgPSBfcmVmLnN0cmF0ZWd5O1xuICAgIGlmICghc3VwcG9ydHMkOCkge1xuICAgICAgICBzdXBwb3J0cyQ4ID0gX3N1cHBvcnRzKCk7XG4gICAgfVxuICAgIHZhciBfY29udGV4dCA9IG5vZGVBcnJheShjb250ZXh0KVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgdmFyIGVsZW1lbnRzID0gcXVlcnlUYWJiYWJsZSh7XG4gICAgICAgIGNvbnRleHQ6IF9jb250ZXh0LFxuICAgICAgICBpbmNsdWRlQ29udGV4dDogaW5jbHVkZUNvbnRleHQsXG4gICAgICAgIGluY2x1ZGVPbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgICAgIHN0cmF0ZWd5OiBzdHJhdGVneVxuICAgIH0pO1xuICAgIGlmIChkb2N1bWVudC5ib2R5LmNyZWF0ZVNoYWRvd1Jvb3QgJiYgcGxhdGZvcm0uaXMuQkxJTkspIHtcbiAgICAgICAgLy8gc29ydCB0YWJpbmRleCBsb2NhbGl6ZWQgdG8gc2hhZG93IGRvbVxuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy82XG4gICAgICAgIGVsZW1lbnRzID0gc29ydFNoYWRvd2VkKGVsZW1lbnRzLCBfY29udGV4dCwgc29ydEVsZW1lbnRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50cyA9IHNvcnRFbGVtZW50cyhlbGVtZW50cywgX2NvbnRleHQpO1xuICAgIH1cbiAgICBpZiAoaW5jbHVkZUNvbnRleHQpIHtcbiAgICAgICAgLy8gaWYgd2UgaW5jbHVkZSB0aGUgY29udGV4dCBpdHNlbGYsIGl0IGhhcyB0byBiZSB0aGUgZmlyc3RcbiAgICAgICAgLy8gZWxlbWVudCBvZiB0aGUgc2VxdWVuY2VcbiAgICAgICAgZWxlbWVudHMgPSBtb3ZlQ29udGV4dFRvQmVnaW5uaW5nKGVsZW1lbnRzLCBfY29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbn1cbi8vIGNvZGVzIG1vc3RseSBjbG9uZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2p3ZXJ0eS9ibG9iL21hc3Rlci9qd2VydHkuanNcbi8vIGRlbGliZXJhdGVseSBub3QgZXhwb3NpbmcgY2hhcmFjdGVycyBsaWtlIDwsLi0jKiBiZWNhdXNlIHRoZXkgdmFyeSAqd2lsZGx5KlxuLy8gYWNyb3NzIGtleWJvYXJkIGxheW91dHMgYW5kIG1heSBjYXVzZSB2YXJpb3VzIHByb2JsZW1zXG4vLyAoZS5nLiBcIipcIiBpcyBcIlNoaWZ0ICtcIiBvbiBhIEdlcm1hbiBNYWMga2V5Ym9hcmQpXG4vLyAoZS5nLiBcIkBcIiBpcyBcIkFsdCBMXCIgb24gYSBHZXJtYW4gTWFjIGtleWJvYXJkKVxudmFyIGtleWNvZGUgPSB7XG4gICAgLy8gRWxlbWVudCBGb2N1c1xuICAgIHRhYjogOSxcbiAgICAvLyBOYXZpZ2F0aW9uXG4gICAgbGVmdDogMzcsXG4gICAgdXA6IDM4LFxuICAgIHJpZ2h0OiAzOSxcbiAgICBkb3duOiA0MCxcbiAgICBwYWdlVXA6IDMzLFxuICAgIFwicGFnZS11cFwiOiAzMyxcbiAgICBwYWdlRG93bjogMzQsXG4gICAgXCJwYWdlLWRvd25cIjogMzQsXG4gICAgZW5kOiAzNSxcbiAgICBob21lOiAzNixcbiAgICAvLyBBY3Rpb25cbiAgICBlbnRlcjogMTMsXG4gICAgZXNjYXBlOiAyNyxcbiAgICBzcGFjZTogMzIsXG4gICAgLy8gTW9kaWZpZXJcbiAgICBzaGlmdDogMTYsXG4gICAgY2Fwc0xvY2s6IDIwLFxuICAgIFwiY2Fwcy1sb2NrXCI6IDIwLFxuICAgIGN0cmw6IDE3LFxuICAgIGFsdDogMTgsXG4gICAgbWV0YTogOTEsXG4gICAgLy8gaW4gZmlyZWZveDogMjI0XG4gICAgLy8gb24gbWFjIChjaHJvbWUpOiBtZXRhLWxlZnQ9OTEsIG1ldGEtcmlnaHQ9OTNcbiAgICAvLyBvbiB3aW4gKElFMTEpOiBtZXRhLWxlZnQ9OTEsIG1ldGEtcmlnaHQ9OTJcbiAgICBwYXVzZTogMTksXG4gICAgLy8gQ29udGVudCBNYW5pcHVsYXRpb25cbiAgICBpbnNlcnQ6IDQ1LFxuICAgIGRlbGV0ZTogNDYsXG4gICAgYmFja3NwYWNlOiA4LFxuICAgIC8vIHRoZSBzYW1lIGxvZ2ljYWwga2V5IG1heSBiZSBpZGVudGlmaWVkIHRocm91Z2ggZGlmZmVyZW50IGtleUNvZGVzXG4gICAgX2FsaWFzOiB7XG4gICAgICAgIDkxOiBbXG4gICAgICAgICAgICA5MixcbiAgICAgICAgICAgIDkzLFxuICAgICAgICAgICAgMjI0XG4gICAgICAgIF1cbiAgICB9XG59O1xuLy8gRnVuY3Rpb24ga2V5cyAoMTEyIC0gMTM3KVxuLy8gTk9URTogbm90IGV2ZXJ5IGtleWJvYXJkIGtub3dzIEYxMytcbmZvcih2YXIgbiA9IDE7IG4gPCAyNjsgbisrKXtcbiAgICBrZXljb2RlW1wiZlwiICsgbl0gPSBuICsgMTExO1xufVxuLy8gTnVtYmVyIGtleXMgKDQ4LTU3LCBudW1wYWQgOTYtMTA1KVxuLy8gTk9URTogbm90IGV2ZXJ5IGtleWJvYXJkIGtub3dzIG51bS0wK1xuZm9yKHZhciBfbiA9IDA7IF9uIDwgMTA7IF9uKyspe1xuICAgIHZhciBjb2RlID0gX24gKyA0ODtcbiAgICB2YXIgbnVtQ29kZSA9IF9uICsgOTY7XG4gICAga2V5Y29kZVtfbl0gPSBjb2RlO1xuICAgIGtleWNvZGVbXCJudW0tXCIgKyBfbl0gPSBudW1Db2RlO1xuICAgIGtleWNvZGUuX2FsaWFzW2NvZGVdID0gW1xuICAgICAgICBudW1Db2RlXG4gICAgXTtcbn1cbi8vIExhdGluIGNoYXJhY3RlcnMgKDY1IC0gOTApXG5mb3IodmFyIF9uMiA9IDA7IF9uMiA8IDI2OyBfbjIrKyl7XG4gICAgdmFyIF9jb2RlID0gX24yICsgNjU7XG4gICAgdmFyIG5hbWUkMSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoX2NvZGUpLnRvTG93ZXJDYXNlKCk7XG4gICAga2V5Y29kZVtuYW1lJDFdID0gX2NvZGU7XG59XG52YXIgbW9kaWZpZXIgPSB7XG4gICAgYWx0OiBcImFsdEtleVwiLFxuICAgIGN0cmw6IFwiY3RybEtleVwiLFxuICAgIG1ldGE6IFwibWV0YUtleVwiLFxuICAgIHNoaWZ0OiBcInNoaWZ0S2V5XCJcbn07XG52YXIgbW9kaWZpZXJTZXF1ZW5jZSA9IE9iamVjdC5rZXlzKG1vZGlmaWVyKS5tYXAoZnVuY3Rpb24obmFtZSkge1xuICAgIHJldHVybiBtb2RpZmllcltuYW1lXTtcbn0pO1xuZnVuY3Rpb24gY3JlYXRlRXhwZWN0ZWRNb2RpZmllcnMoaWdub3JlTW9kaWZpZXJzKSB7XG4gICAgdmFyIHZhbHVlID0gaWdub3JlTW9kaWZpZXJzID8gbnVsbCA6IGZhbHNlO1xuICAgIHJldHVybiB7XG4gICAgICAgIGFsdEtleTogdmFsdWUsXG4gICAgICAgIGN0cmxLZXk6IHZhbHVlLFxuICAgICAgICBtZXRhS2V5OiB2YWx1ZSxcbiAgICAgICAgc2hpZnRLZXk6IHZhbHVlXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcnMobW9kaWZpZXJzKSB7XG4gICAgdmFyIGlnbm9yZU1vZGlmaWVycyA9IG1vZGlmaWVycy5pbmRleE9mKFwiKlwiKSAhPT0gLTE7XG4gICAgdmFyIGV4cGVjdGVkID0gY3JlYXRlRXhwZWN0ZWRNb2RpZmllcnMoaWdub3JlTW9kaWZpZXJzKTtcbiAgICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbih0b2tlbikge1xuICAgICAgICBpZiAodG9rZW4gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICAvLyB3ZSd2ZSBhbHJlYWR5IGNvdmVyZWQgdGhlIGFsbC1pbiBvcGVyYXRvclxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdlIHdhbnQgdGhlIG1vZGlmaWVyIHByZXNzZWRcbiAgICAgICAgdmFyIHZhbHVlID0gdHJ1ZTtcbiAgICAgICAgdmFyIG9wZXJhdG9yID0gdG9rZW4uc2xpY2UoMCwgMSk7XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gXCI/XCIpIHtcbiAgICAgICAgICAgIC8vIHdlIGRvbid0IGNhcmUgaWYgdGhlIG1vZGlmaWVyIGlzIHByZXNzZWRcbiAgICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gXCIhXCIpIHtcbiAgICAgICAgICAgIC8vIHdlIGRvIG5vdCB3YW50IHRoZSBtb2RpZmllciBwcmVzc2VkXG4gICAgICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgLy8gY29tcGVuc2F0ZSBmb3IgdGhlIG1vZGlmaWVyJ3Mgb3BlcmF0b3JcbiAgICAgICAgICAgIHRva2VuID0gdG9rZW4uc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IG1vZGlmaWVyW3Rva2VuXTtcbiAgICAgICAgaWYgKCFwcm9wZXJ0eU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gbW9kaWZpZXIgXCInICsgdG9rZW4gKyAnXCInKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3RlZFtwcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIGV4cGVjdGVkO1xufVxuZnVuY3Rpb24gcmVzb2x2ZUtleShrZXkpIHtcbiAgICB2YXIgY29kZSA9IGtleWNvZGVba2V5XSB8fCBwYXJzZUludChrZXksIDEwKTtcbiAgICBpZiAoIWNvZGUgfHwgdHlwZW9mIGNvZGUgIT09IFwibnVtYmVyXCIgfHwgaXNOYU4oY29kZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBrZXkgXCInICsga2V5ICsgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIGNvZGVcbiAgICBdLmNvbmNhdChrZXljb2RlLl9hbGlhc1tjb2RlXSB8fCBbXSk7XG59XG5mdW5jdGlvbiBtYXRjaE1vZGlmaWVycyhleHBlY3RlZCwgZXZlbnQpIHtcbiAgICAvLyByZXR1cm5zIHRydWUgb24gbWF0Y2hcbiAgICByZXR1cm4gIW1vZGlmaWVyU2VxdWVuY2Uuc29tZShmdW5jdGlvbihwcm9wKSB7XG4gICAgICAgIC8vIHJldHVybnMgdHJ1ZSBvbiBtaXNtYXRjaFxuICAgICAgICByZXR1cm4gdHlwZW9mIGV4cGVjdGVkW3Byb3BdID09PSBcImJvb2xlYW5cIiAmJiBCb29sZWFuKGV2ZW50W3Byb3BdKSAhPT0gZXhwZWN0ZWRbcHJvcF07XG4gICAgfSk7XG59XG5mdW5jdGlvbiBrZXlCaW5kaW5nKHRleHQpIHtcbiAgICByZXR1cm4gdGV4dC5zcGxpdCgvXFxzKy8pLm1hcChmdW5jdGlvbihfdGV4dCkge1xuICAgICAgICB2YXIgdG9rZW5zID0gX3RleHQuc3BsaXQoXCIrXCIpO1xuICAgICAgICB2YXIgX21vZGlmaWVycyA9IHJlc29sdmVNb2RpZmllcnModG9rZW5zLnNsaWNlKDAsIC0xKSk7XG4gICAgICAgIHZhciBfa2V5Q29kZXMgPSByZXNvbHZlS2V5KHRva2Vucy5zbGljZSgtMSkpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5Q29kZXM6IF9rZXlDb2RlcyxcbiAgICAgICAgICAgIG1vZGlmaWVyczogX21vZGlmaWVycyxcbiAgICAgICAgICAgIG1hdGNoTW9kaWZpZXJzOiBtYXRjaE1vZGlmaWVycy5iaW5kKG51bGwsIF9tb2RpZmllcnMpXG4gICAgICAgIH07XG4gICAgfSk7XG59XG4vLyBOb2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGlzIGF2YWlsYWJsZSBzaW5jZSBJRTlcbi8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuLy8gY2FsbGJhY2sgcmV0dXJucyB0cnVlIHdoZW4gZWxlbWVudCBpcyBjb250YWluZWQgYnkgcGFyZW50IG9yIGlzIHRoZSBwYXJlbnQgc3VpdGVkIGZvciB1c2Ugd2l0aCBBcnJheS5zb21lKClcbi8qXG4gIFVTQUdFOlxuICAgIHZhciBpc0NoaWxkT2YgPSBnZXRQYXJlbnRDb21wYXJhdG9yKHtwYXJlbnQ6IHNvbWVOb2RlfSk7XG4gICAgbGlzdE9mRWxlbWVudHMuc29tZShpc0NoaWxkT2YpXG4qLyBmdW5jdGlvbiBnZXRQYXJlbnRDb21wYXJhdG9yKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgcGFyZW50ID0gX3JlZi5wYXJlbnQsIGVsZW1lbnQgPSBfcmVmLmVsZW1lbnQsIGluY2x1ZGVTZWxmID0gX3JlZi5pbmNsdWRlU2VsZjtcbiAgICBpZiAocGFyZW50KSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBpc0NoaWxkT2Yobm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW4oaW5jbHVkZVNlbGYgJiYgbm9kZSA9PT0gcGFyZW50IHx8IHBhcmVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihub2RlKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKTtcbiAgICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGlzUGFyZW50T2Yobm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW4oaW5jbHVkZVNlbGYgJiYgZWxlbWVudCA9PT0gbm9kZSB8fCBub2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVsZW1lbnQpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwidXRpbC9jb21wYXJlLXBvc2l0aW9uI2dldFBhcmVudENvbXBhcmF0b3IgcmVxdWlyZWQgZWl0aGVyIG9wdGlvbnMucGFyZW50IG9yIG9wdGlvbnMuZWxlbWVudFwiKTtcbn1cbi8vIEJ1ZyAyODY5MzMgLSBLZXkgZXZlbnRzIGluIHRoZSBhdXRvY29tcGxldGUgcG9wdXAgc2hvdWxkIGJlIGhpZGRlbiBmcm9tIHBhZ2Ugc2NyaXB0c1xuLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2OTMzXG5mdW5jdGlvbiB3aGVuS2V5KCkge1xuICAgIHZhciBtYXAgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBiaW5kaW5ncyA9IHt9O1xuICAgIHZhciBjb250ZXh0ID0gbm9kZUFycmF5KG1hcC5jb250ZXh0KVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgZGVsZXRlIG1hcC5jb250ZXh0O1xuICAgIHZhciBmaWx0ZXIgPSBub2RlQXJyYXkobWFwLmZpbHRlcik7XG4gICAgZGVsZXRlIG1hcC5maWx0ZXI7XG4gICAgdmFyIG1hcEtleXMgPSBPYmplY3Qua2V5cyhtYXApO1xuICAgIGlmICghbWFwS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIndoZW4va2V5IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBvcHRpb24ga2V5XCIpO1xuICAgIH1cbiAgICB2YXIgcmVnaXN0ZXJCaW5kaW5nID0gZnVuY3Rpb24gcmVnaXN0ZXJCaW5kaW5nKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LmtleUNvZGVzLmZvckVhY2goZnVuY3Rpb24oY29kZSkge1xuICAgICAgICAgICAgaWYgKCFiaW5kaW5nc1tjb2RlXSkge1xuICAgICAgICAgICAgICAgIGJpbmRpbmdzW2NvZGVdID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiaW5kaW5nc1tjb2RlXS5wdXNoKGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBtYXBLZXlzLmZvckVhY2goZnVuY3Rpb24odGV4dCkge1xuICAgICAgICBpZiAodHlwZW9mIG1hcFt0ZXh0XSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd3aGVuL2tleSByZXF1aXJlcyBvcHRpb25bXCInICsgdGV4dCArICdcIl0gdG8gYmUgYSBmdW5jdGlvbicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhZGRDYWxsYmFjayA9IGZ1bmN0aW9uIGFkZENhbGxiYWNrKGV2ZW50KSB7XG4gICAgICAgICAgICBldmVudC5jYWxsYmFjayA9IG1hcFt0ZXh0XTtcbiAgICAgICAgICAgIHJldHVybiBldmVudDtcbiAgICAgICAgfTtcbiAgICAgICAga2V5QmluZGluZyh0ZXh0KS5tYXAoYWRkQ2FsbGJhY2spLmZvckVhY2gocmVnaXN0ZXJCaW5kaW5nKTtcbiAgICB9KTtcbiAgICB2YXIgaGFuZGxlS2V5RG93biA9IGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gaWdub3JlIGVsZW1lbnRzIHdpdGhpbiB0aGUgZXhlbXB0ZWQgc3ViLXRyZWVzXG4gICAgICAgICAgICB2YXIgaXNQYXJlbnRPZkVsZW1lbnQgPSBnZXRQYXJlbnRDb21wYXJhdG9yKHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBldmVudC50YXJnZXQsXG4gICAgICAgICAgICAgICAgaW5jbHVkZVNlbGY6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGZpbHRlci5zb21lKGlzUGFyZW50T2ZFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaDtcbiAgICAgICAgaWYgKCFiaW5kaW5nc1trZXldKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYmluZGluZ3Nba2V5XS5mb3JFYWNoKGZ1bmN0aW9uKF9ldmVudCkge1xuICAgICAgICAgICAgaWYgKCFfZXZlbnQubWF0Y2hNb2RpZmllcnMoZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX2V2ZW50LmNhbGxiYWNrLmNhbGwoY29udGV4dCwgZXZlbnQsIGRpc2VuZ2FnZSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29udGV4dC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCBmYWxzZSk7XG4gICAgdmFyIGRpc2VuZ2FnZSA9IGZ1bmN0aW9uIGRpc2VuZ2FnZSgpIHtcbiAgICAgICAgY29udGV4dC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCBmYWxzZSk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkaXNlbmdhZ2U6IGRpc2VuZ2FnZVxuICAgIH07XG59XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihwYXJhbSkge1xuICAgIGxldCB7IGNvbnRleHQgfSA9IHBhcmFtID09PSB2b2lkIDAgPyB7fSA6IHBhcmFtO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICBjb250ZXh0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIH1cbiAgICAvLyBNYWtlIHN1cmUgdGhlIHN1cHBvcnRzIHRlc3RzIGFyZSBydW4gYmVmb3JlIGludGVyY2VwdGluZyB0aGUgVGFiIGtleSxcbiAgICAvLyBvciBJRTEwIGFuZCBJRTExIHdpbGwgZmFpbCB0byBwcm9jZXNzIHRoZSBmaXJzdCBUYWIga2V5IGV2ZW50LiBOb3RcbiAgICAvLyBsaW1pdGluZyB0aGlzIHdhcm0tdXAgdG8gSUUgYmVjYXVzZSBpdCBtYXkgYmUgYSBwcm9ibGVtIGVsc2V3aGVyZSwgdG9vLlxuICAgIHF1ZXJ5VGFic2VxdWVuY2UoKTtcbiAgICByZXR1cm4gd2hlbktleSh7XG4gICAgICAgIC8vIFNhZmFyaSBvbiBPU1ggbWF5IHJlcXVpcmUgQUxUK1RBQiB0byByZWFjaCBsaW5rcyxcbiAgICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMTQ2XG4gICAgICAgIFwiP2FsdCs/c2hpZnQrdGFiXCI6IGZ1bmN0aW9uIGFsdFNoaWZ0VGFiKGV2ZW50KSB7XG4gICAgICAgICAgICAvLyB3ZSdyZSBjb21wbGV0ZWx5IHRha2luZyBvdmVyIHRoZSBUYWIga2V5IGhhbmRsaW5nXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdmFyIHNlcXVlbmNlID0gcXVlcnlUYWJzZXF1ZW5jZSh7XG4gICAgICAgICAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgYmFja3dhcmQgPSBldmVudC5zaGlmdEtleTtcbiAgICAgICAgICAgIHZhciBmaXJzdCA9IHNlcXVlbmNlWzBdO1xuICAgICAgICAgICAgdmFyIGxhc3QgPSBzZXF1ZW5jZVtzZXF1ZW5jZS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIC8vIHdyYXAgYXJvdW5kIGZpcnN0IHRvIGxhc3QsIGxhc3QgdG8gZmlyc3RcbiAgICAgICAgICAgIHZhciBzb3VyY2UgPSBiYWNrd2FyZCA/IGZpcnN0IDogbGFzdDtcbiAgICAgICAgICAgIHZhciB0YXJnZXQgPSBiYWNrd2FyZCA/IGxhc3QgOiBmaXJzdDtcbiAgICAgICAgICAgIGlmIChpc0FjdGl2ZUVsZW1lbnQoc291cmNlKSkge1xuICAgICAgICAgICAgICAgIHRhcmdldC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGZpbmQgY3VycmVudCBwb3NpdGlvbiBpbiB0YWJzZXF1ZW5jZVxuICAgICAgICAgICAgdmFyIGN1cnJlbnRJbmRleCA9IHZvaWQgMDtcbiAgICAgICAgICAgIHZhciBmb3VuZCA9IHNlcXVlbmNlLnNvbWUoZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzQWN0aXZlRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gZmlyc3QgYXMgd2UncmUgbm90IGluIG91ciB0YWJzZXF1ZW5jZVxuICAgICAgICAgICAgICAgIGZpcnN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2hpZnQgZm9jdXMgdG8gcHJldmlvdXMvbmV4dCBlbGVtZW50IGluIHRoZSBzZXF1ZW5jZVxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IGJhY2t3YXJkID8gLTEgOiAxO1xuICAgICAgICAgICAgc2VxdWVuY2VbY3VycmVudEluZGV4ICsgb2Zmc2V0XS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1haW50YWluLS10YWItZm9jdXMuanMubWFwIl0sIm5hbWVzIjpbIl9wbGF0Zm9ybSIsImNzc0VzY2FwZSIsIm5vZGVBcnJheSIsImlucHV0IiwiQXJyYXkiLCJpc0FycmF5Iiwibm9kZVR5cGUiLCJ1bmRlZmluZWQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJzbGljZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJjb250ZXh0VG9FbGVtZW50IiwiX3JlZiIsImNvbnRleHQiLCJfcmVmJGxhYmVsIiwibGFiZWwiLCJyZXNvbHZlRG9jdW1lbnQiLCJkZWZhdWx0VG9Eb2N1bWVudCIsImVsZW1lbnQiLCJOb2RlIiwiRE9DVU1FTlRfTk9ERSIsImRvY3VtZW50RWxlbWVudCIsIkVMRU1FTlRfTk9ERSIsIkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUiLCJnZXRTaGFkb3dIb3N0IiwiYXJndW1lbnRzIiwiY29udGFpbmVyIiwicGFyZW50Tm9kZSIsImhvc3QiLCJnZXREb2N1bWVudCIsIm5vZGUiLCJvd25lckRvY3VtZW50IiwiaXNBY3RpdmVFbGVtZW50IiwiX2RvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsInNoYWRvd0hvc3QiLCJzaGFkb3dSb290IiwiZ2V0UGFyZW50cyIsImxpc3QiLCJwdXNoIiwibmFtZXMiLCJuYW1lIiwiZmluZE1ldGhvZE5hbWUiLCJzb21lIiwiX25hbWUiLCJlbGVtZW50TWF0Y2hlcyIsInNlbGVjdG9yIiwicGxhdGZvcm0iLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJvcyIsImZhbWlseSIsIkFORFJPSUQiLCJXSU5ET1dTIiwiT1NYIiwiSU9TIiwiQkxJTksiLCJsYXlvdXQiLCJHRUNLTyIsIlRSSURFTlQiLCJFREdFIiwiV0VCS0lUIiwidmVyc2lvbiIsInBhcnNlRmxvYXQiLCJtYWpvclZlcnNpb24iLCJNYXRoIiwiZmxvb3IiLCJpcyIsIklFOSIsIklFMTAiLCJJRTExIiwiYmVmb3JlIiwiZGF0YSIsIndpbmRvd1Njcm9sbFRvcCIsIndpbmRvdyIsInNjcm9sbFRvcCIsIndpbmRvd1Njcm9sbExlZnQiLCJzY3JvbGxMZWZ0IiwiYm9keVNjcm9sbFRvcCIsImJvZHkiLCJib2R5U2Nyb2xsTGVmdCIsImlmcmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsIl93aW5kb3ciLCJjb250ZW50V2luZG93Iiwib3BlbiIsImNsb3NlIiwid3JhcHBlciIsInRlc3QiLCJvcHRpb25zIiwiaW5uZXJIVE1MIiwiZm9jdXMiLCJtdXRhdGUiLCJ2YWxpZGF0ZSIsImFmdGVyIiwiYmx1ciIsInJlbW92ZUNoaWxkIiwiZGV0ZWN0Rm9jdXMiLCJ0ZXN0cyIsInJlc3VsdHMiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwia2V5IiwidmVyc2lvbiQxIiwicmVhZExvY2FsU3RvcmFnZSIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJlIiwid3JpdGVMb2NhbFN0b3JhZ2UiLCJ2YWx1ZSIsImhhc0ZvY3VzIiwicmVtb3ZlSXRlbSIsInNldEl0ZW0iLCJ1c2VyQWdlbnQiLCJuYXZpZ2F0b3IiLCJjYWNoZUtleSIsImNhY2hlIiwiY2FjaGUkMSIsImdldCIsInNldCIsInZhbHVlcyIsImZvckVhY2giLCJ0aW1lIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwiY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvciIsImNvbWJpbmF0b3IiLCJxdWVyeVNlbGVjdG9yIiwibm9BcnJvd0Fycm93QXJyb3ciLCJub0RlZXAiLCJnaWYiLCJmb2N1c0FyZWFJbWdUYWJpbmRleCIsImZvY3VzQXJlYVRhYmluZGV4IiwiZm9jdXNUYXJnZXQiLCJmb2N1c0FyZWFXaXRob3V0SHJlZiIsImZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHMiLCJpbnZhbGlkR2lmIiwiZm9jdXNCcm9rZW5JbWFnZU1hcCIsImZvY3VzQ2hpbGRyZW5PZkZvY3VzYWJsZUZsZXhib3giLCJmb2N1c0ZpZWxkc2V0RGlzYWJsZWQiLCJmb2N1c0ZpZWxkc2V0IiwiZm9jdXNGbGV4Ym94Q29udGFpbmVyIiwiZm9jdXNGb3JtRGlzYWJsZWQiLCJmb2N1c0ltZ0lzbWFwIiwiaHJlZiIsImZvY3VzSW1nVXNlbWFwVGFiaW5kZXgiLCJmb2N1c0luSGlkZGVuSWZyYW1lIiwiaWZyYW1lRG9jdW1lbnQiLCJzdHlsZSIsInZpc2liaWxpdHkiLCJyZXN1bHQiLCJmb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdCIsImZvY3VzSW52YWxpZFRhYmluZGV4IiwiZm9jdXNMYWJlbFRhYmluZGV4IiwidmFyaWFibGVUb1ByZXZlbnREZWFkQ29kZUVsaW1pbmF0aW9uIiwib2Zmc2V0SGVpZ2h0Iiwic3ZnIiwiZm9jdXNPYmplY3RTdmdIaWRkZW4iLCJmb2N1c09iamVjdFN2ZyIsInJlc3VsdCQxIiwiZm9jdXNPYmplY3RTd2YiLCJmb2N1c1JlZGlyZWN0SW1nVXNlbWFwIiwidGFyZ2V0IiwiZm9jdXNSZWRpcmVjdExlZ2VuZCIsImZvY3VzYWJsZSIsInRhYmJhYmxlIiwiZm9jdXNTY3JvbGxCb2R5IiwiZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3ciLCJmb2N1c1Njcm9sbENvbnRhaW5lciIsImZvY3VzU3VtbWFyeSIsImZpcnN0RWxlbWVudENoaWxkIiwibWFrZUZvY3VzYWJsZUZvcmVpZ25PYmplY3QiLCJmb3JlaWduT2JqZWN0IiwiY3JlYXRlRWxlbWVudE5TIiwid2lkdGgiLCJiYXNlVmFsIiwiaGVpZ2h0IiwibGFzdENoaWxkIiwidHlwZSIsImZvY3VzU3ZnRm9yZWlnbk9iamVjdEhhY2siLCJpc1N2Z0VsZW1lbnQiLCJvd25lclNWR0VsZW1lbnQiLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwiZGlzYWJsZWQiLCJnZW5lcmF0ZSIsIkhUTUxFbGVtZW50IiwicHJvdG90eXBlIiwiZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUiLCJmb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlIiwiZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlIiwiZm9jdXNTdmdVc2VUYWJpbmRleCIsImpvaW4iLCJmb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwicmVzdWx0JDIiLCJCb29sZWFuIiwiU1ZHRWxlbWVudCIsImZvY3VzU3ZnSW5JZnJhbWUiLCJmb2N1c1N2ZyIsImZpcnN0Q2hpbGQiLCJmb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzIiwiZm9jdXNUYWJsZSIsImZyYWdtZW50IiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsImZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHMiLCJyZXN1bHQkMyIsInRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb24iLCJ0ZXN0Q2FsbGJhY2tzIiwidGVzdERlc2NyaXB0aW9ucyIsImV4ZWN1dGVUZXN0cyIsInN1cHBvcnRzQ2FjaGUiLCJfc3VwcG9ydHMiLCJzdXBwb3J0cyIsInZhbGlkSW50ZWdlclBhdHRlcm5Ob1RyYWlsaW5nIiwidmFsaWRJbnRlZ2VyUGF0dGVybldpdGhUcmFpbGluZyIsImlzVmFsaWRUYWJpbmRleCIsInZhbGlkSW50ZWdlclBhdHRlcm4iLCJoYXNUYWJpbmRleCIsImhhc0F0dHJpYnV0ZSIsImhhc1RhYkluZGV4IiwidGFiaW5kZXgiLCJnZXRBdHRyaWJ1dGUiLCJ0YWJpbmRleFZhbHVlIiwiYXR0cmlidXRlTmFtZSIsInBhcnNlSW50IiwiaXNOYU4iLCJpc1VzZXJNb2RpZnlXcml0YWJsZSIsInVzZXJNb2RpZnkiLCJ3ZWJraXRVc2VyTW9kaWZ5IiwiaW5kZXhPZiIsImhhc0Nzc092ZXJmbG93U2Nyb2xsIiwiZ2V0UHJvcGVydHlWYWx1ZSIsIm92ZXJmbG93IiwiaGFzQ3NzRGlzcGxheUZsZXgiLCJkaXNwbGF5IiwiaXNTY3JvbGxhYmxlQ29udGFpbmVyIiwicGFyZW50Tm9kZU5hbWUiLCJwYXJlbnRTdHlsZSIsInNjcm9sbEhlaWdodCIsIm9mZnNldFdpZHRoIiwic2Nyb2xsV2lkdGgiLCJzdXBwb3J0cyQxIiwiaXNGb2N1c1JlbGV2YW50UnVsZXMiLCJfcmVmJGV4Y2VwdCIsImV4Y2VwdCIsImZsZXhib3giLCJzY3JvbGxhYmxlIiwic2hhZG93Iiwic3ZnVHlwZSIsInZhbGlkVGFiaW5kZXgiLCJpc1N2Z0NvbnRlbnQiLCJmb2N1c2FibGVBdHRyaWJ1dGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiaGFzTGlua1BhcmVudCIsInBhcmVudCIsInBhcmVudEVsZW1lbnQiLCJpc0ZvY3VzUmVsZXZhbnQiLCJydWxlcyIsImZpbmRJbmRleCIsImFycmF5IiwiY2FsbGJhY2siLCJpIiwiZ2V0Q29udGVudERvY3VtZW50IiwiY29udGVudERvY3VtZW50IiwiZ2V0U1ZHRG9jdW1lbnQiLCJnZXRXaW5kb3ciLCJkZWZhdWx0VmlldyIsInNoYWRvd1ByZWZpeCIsInNlbGVjdEluU2hhZG93cyIsIm9wZXJhdG9yIiwicmVwbGFjZSIsInNwbGl0IiwiZmluZERvY3VtZW50SG9zdEVsZW1lbnQiLCJfZnJhbWVFbGVtZW50IiwicG90ZW50aWFsSG9zdHMiLCJnZXRGcmFtZUVsZW1lbnQiLCJmcmFtZUVsZW1lbnQiLCJub3RSZW5kZXJlZEVsZW1lbnRzUGF0dGVybiIsImNvbXB1dGVkU3R5bGUiLCJwcm9wZXJ0eSIsIm5vdERpc3BsYXllZCIsIl9wYXRoIiwibm90VmlzaWJsZSIsImhpZGRlbiIsInZpc2libGUiLCJjb2xsYXBzZWRQYXJlbnQiLCJvZmZzZXQiLCJpc1Zpc2libGVSdWxlcyIsIm5vdFJlbmRlcmVkIiwiY3NzRGlzcGxheSIsImNzc1Zpc2liaWxpdHkiLCJkZXRhaWxzRWxlbWVudCIsImJyb3dzaW5nQ29udGV4dCIsImlzQXVkaW9XaXRob3V0Q29udHJvbHMiLCJfaXNWaXNpYmxlIiwiaXNWaXNpYmxlIiwiZ2V0TWFwQnlOYW1lIiwiZ2V0SW1hZ2VPZkFyZWEiLCJzdXBwb3J0cyQyIiwiaXNWYWxpZEFyZWEiLCJpbWciLCJjb21wbGV0ZSIsIm5hdHVyYWxIZWlnaHQiLCJjaGlsZE9mSW50ZXJhY3RpdmUiLCJfZWxlbWVudCIsInN1cHBvcnRzJDMiLCJkaXNhYmxlZEVsZW1lbnRzUGF0dGVybiIsImRpc2FibGVkRWxlbWVudHMiLCJzZWxlY3QiLCJ0ZXh0YXJlYSIsImJ1dHRvbiIsImZpZWxkc2V0IiwiZm9ybSIsImlzTmF0aXZlRGlzYWJsZWRTdXBwb3J0ZWQiLCJSZWdFeHAiLCJzdXBwb3J0cyQ0IiwiaXNEaXNhYmxlZEZpZWxkc2V0IiwiaXNEaXNhYmxlZEZvcm0iLCJpc0Rpc2FibGVkIiwicGFyZW50cyIsImlzT25seVRhYmJhYmxlUnVsZXMiLCJvbmx5Rm9jdXNhYmxlQnJvd3NpbmdDb250ZXh0IiwiaXNPbmx5VGFiYmFibGUiLCJzdXBwb3J0cyQ1IiwiaXNPbmx5Rm9jdXNSZWxldmFudCIsIl90YWJpbmRleCIsImlzRm9jdXNhYmxlUnVsZXMiLCJvbmx5VGFiYmFibGUiLCJfaXNPbmx5VGFiYmFibGUiLCJmb2N1c1JlbGV2YW50IiwidmlzaWJpbGl0eU9wdGlvbnMiLCJfbm9kZU5hbWUyIiwiX25vZGVOYW1lIiwiaXNGb2N1c2FibGUiLCJjcmVhdGVGaWx0ZXIiLCJjb25kaXRpb24iLCJmaWx0ZXIiLCJOb2RlRmlsdGVyIiwiRklMVEVSX0FDQ0VQVCIsIkZJTFRFUl9TS0lQIiwiYWNjZXB0Tm9kZSIsIlBvc3NpYmx5Rm9jdXNhYmxlRmlsdGVyIiwicXVlcnlGb2N1c2FibGVTdHJpY3QiLCJpbmNsdWRlQ29udGV4dCIsImluY2x1ZGVPbmx5VGFiYmFibGUiLCJzdHJhdGVneSIsIl9pc0ZvY3VzYWJsZSIsIndhbGtlciIsImNyZWF0ZVRyZWVXYWxrZXIiLCJTSE9XX0VMRU1FTlQiLCJuZXh0Tm9kZSIsImN1cnJlbnROb2RlIiwiY29uY2F0IiwidW5zaGlmdCIsInN1cHBvcnRzJDYiLCJzZWxlY3RvciQxIiwic2VsZWN0b3IkMiIsInF1ZXJ5Rm9jdXNhYmxlUXVpY2siLCJfc2VsZWN0b3IiLCJlbGVtZW50cyIsInF1ZXJ5Rm9jdXNhYmxlIiwiX3JlZiRzdHJhdGVneSIsInN1cHBvcnRzJDciLCJmb2N1c2FibGVFbGVtZW50c1BhdHRlcm4iLCJpc1RhYmJhYmxlUnVsZXMiLCJmcmFtZU5vZGVOYW1lIiwiaXNGaXhlZEJsaW5rIiwiaGFzVGFiYmFibGVUYWJpbmRleE9yTm9uZSIsImhhc1RhYmJhYmxlVGFiaW5kZXgiLCJwb3RlbnRpYWxseVRhYmJhYmxlIiwidGFiSW5kZXgiLCJfc3R5bGUiLCJfc3R5bGUyIiwiaXNGb2N1c1JlbGV2YW50V2l0aG91dEZsZXhib3giLCJpc1RhYmJhYmxlV2l0aG91dEZsZXhib3giLCJpc1RhYmJhYmxlIiwicXVlcnlUYWJiYWJsZSIsIl9pc1RhYmJhYmxlIiwiY29tcGFyZURvbVBvc2l0aW9uIiwiYSIsImIiLCJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsIkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyIsInNvcnREb21PcmRlciIsInNvcnQiLCJnZXRGaXJzdFN1Y2Nlc3Nvck9mZnNldCIsImZpbmRJbnNlcnRpb25PZmZzZXRzIiwicmVzb2x2ZUVsZW1lbnQiLCJpbnNlcnRpb25zIiwiaW5qZWN0aW9ucyIsImluc2VydEVsZW1lbnRzQXRPZmZzZXRzIiwiaW5zZXJ0ZWQiLCJpbnNlcnRpb24iLCJyZW1vdmUiLCJhcmdzIiwic3BsaWNlIiwiYXBwbHkiLCJtZXJnZUluRG9tT3JkZXIiLCJfbGlzdCIsIl9lbGVtZW50cyIsIl9jcmVhdGVDbGFzcyIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJkZWZpbmVQcm9wZXJ0eSIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJNYXBzIiwibWFwcyIsImdldEFyZWFzRm9yIiwiYWRkTWFwQnlOYW1lIiwiZXh0cmFjdEFyZWFzRnJvbUxpc3QiLCJzb3J0QXJlYSIsInVzZW1hcHMiLCJpbWFnZSIsIl9jcmVhdGVDbGFzcyQxIiwiX2NsYXNzQ2FsbENoZWNrJDEiLCJTaGFkb3dzIiwic29ydEVsZW1lbnRzIiwiaG9zdENvdW50ZXIiLCJpbkhvc3QiLCJpbkRvY3VtZW50IiwiaG9zdHMiLCJfcmVnaXN0ZXJIb3N0IiwiX3NvcnRpbmdJZCIsInBhcmVudEhvc3QiLCJfcmVnaXN0ZXJIb3N0UGFyZW50IiwiX3JlZ2lzdGVyRWxlbWVudCIsImV4dHJhY3RFbGVtZW50cyIsIl9pbmplY3RIb3N0cyIsIl9yZXBsYWNlSG9zdHMiLCJfY2xlYW51cCIsIl9jb250ZXh0IiwiX21lcmdlIiwibWVyZ2VkIiwiX3Jlc29sdmVIb3N0RWxlbWVudCIsImJpbmQiLCJzb3J0U2hhZG93ZWQiLCJzaGFkb3dzIiwic29ydFRhYmluZGV4IiwiaW5kZXhlcyIsIm5vcm1hbCIsInJlZHVjZVJpZ2h0IiwicHJldmlvdXMiLCJjdXJyZW50Iiwic3VwcG9ydHMkOCIsIm1vdmVDb250ZXh0VG9CZWdpbm5pbmciLCJwb3MiLCJ0bXAiLCJxdWVyeVRhYnNlcXVlbmNlIiwiY3JlYXRlU2hhZG93Um9vdCIsImtleWNvZGUiLCJ0YWIiLCJsZWZ0IiwidXAiLCJyaWdodCIsImRvd24iLCJwYWdlVXAiLCJwYWdlRG93biIsImVuZCIsImhvbWUiLCJlbnRlciIsImVzY2FwZSIsInNwYWNlIiwic2hpZnQiLCJjYXBzTG9jayIsImN0cmwiLCJhbHQiLCJtZXRhIiwicGF1c2UiLCJpbnNlcnQiLCJkZWxldGUiLCJiYWNrc3BhY2UiLCJfYWxpYXMiLCJuIiwiX24iLCJjb2RlIiwibnVtQ29kZSIsIl9uMiIsIl9jb2RlIiwibmFtZSQxIiwiZnJvbUNoYXJDb2RlIiwibW9kaWZpZXIiLCJtb2RpZmllclNlcXVlbmNlIiwiY3JlYXRlRXhwZWN0ZWRNb2RpZmllcnMiLCJpZ25vcmVNb2RpZmllcnMiLCJhbHRLZXkiLCJjdHJsS2V5IiwibWV0YUtleSIsInNoaWZ0S2V5IiwicmVzb2x2ZU1vZGlmaWVycyIsIm1vZGlmaWVycyIsImV4cGVjdGVkIiwidG9rZW4iLCJwcm9wZXJ0eU5hbWUiLCJyZXNvbHZlS2V5IiwibWF0Y2hNb2RpZmllcnMiLCJldmVudCIsInByb3AiLCJrZXlCaW5kaW5nIiwidGV4dCIsIl90ZXh0IiwidG9rZW5zIiwiX21vZGlmaWVycyIsIl9rZXlDb2RlcyIsImtleUNvZGVzIiwiZ2V0UGFyZW50Q29tcGFyYXRvciIsImluY2x1ZGVTZWxmIiwiaXNDaGlsZE9mIiwiRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIiwiaXNQYXJlbnRPZiIsIndoZW5LZXkiLCJiaW5kaW5ncyIsIm1hcEtleXMiLCJyZWdpc3RlckJpbmRpbmciLCJhZGRDYWxsYmFjayIsImhhbmRsZUtleURvd24iLCJkZWZhdWx0UHJldmVudGVkIiwiaXNQYXJlbnRPZkVsZW1lbnQiLCJrZXlDb2RlIiwid2hpY2giLCJfZXZlbnQiLCJkaXNlbmdhZ2UiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInBhcmFtIiwiYWx0U2hpZnRUYWIiLCJwcmV2ZW50RGVmYXVsdCIsInNlcXVlbmNlIiwiYmFja3dhcmQiLCJmaXJzdCIsImxhc3QiLCJzb3VyY2UiLCJjdXJyZW50SW5kZXgiLCJmb3VuZCIsImluZGV4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/styles.js":
-/*!******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/styles.js ***!
- \******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n overflow: auto;\\n z-index: 9000;\\n\\n display: flex;\\n align-content: center;\\n align-items: center;\\n flex-direction: column;\\n padding: 10vh 15px 0;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n padding: 15px 15px 0;\\n }\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: rgba(17, 17, 17, 0.2);\\n pointer-events: all;\\n z-index: -1;\\n }\\n\\n [data-nextjs-dialog-backdrop-fixed] {\\n cursor: not-allowed;\\n -webkit-backdrop-filter: blur(8px);\\n backdrop-filter: blur(8px);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__.noop)(_templateObject());\n //# sourceMappingURL=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0c7QUFDcEcsU0FBU0U7SUFDTCxNQUFNQyxPQUFPRiw2RUFBOEJBLENBQUM7UUFDeEM7S0FDSDtJQUNEQyxrQkFBa0I7UUFDZCxPQUFPQztJQUNYO0lBQ0EsT0FBT0E7QUFDWDtBQUMwRDtBQUMxRCxNQUFNRyxTQUFTRCw0REFBR0EsQ0FBQ0g7QUFDRCxDQUVsQixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMuanM/ZmM0MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIGFzIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSB9IGZyb20gXCJAc3djL2hlbHBlcnMvXy9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2VcIjtcbmZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpIHtcbiAgICBjb25zdCBkYXRhID0gX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlKFtcbiAgICAgICAgXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgIHotaW5kZXg6IDkwMDA7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcGFkZGluZzogMTB2aCAxNXB4IDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LCAxNywgMTcsIDAuMik7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZF0ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcXG4gIH1cXG5cIlxuICAgIF0pO1xuICAgIF90ZW1wbGF0ZU9iamVjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xufVxuaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlXCI7XG5jb25zdCBzdHlsZXMgPSBjc3MoX3RlbXBsYXRlT2JqZWN0KCkpO1xuZXhwb3J0IHsgc3R5bGVzIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5qcy5tYXAiXSwibmFtZXMiOlsiXyIsIl90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSIsIl90ZW1wbGF0ZU9iamVjdCIsImRhdGEiLCJub29wIiwiY3NzIiwic3R5bGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/styles.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/ShadowPortal.js":
-/*!****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/ShadowPortal.js ***!
- \****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ShadowPortal: () => (/* binding */ ShadowPortal)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n\n\nfunction ShadowPortal(param) {\n let { children } = param;\n let portalNode = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n let shadowNode = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n let [, forceUpdate] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect(()=>{\n const ownerDocument = document;\n portalNode.current = ownerDocument.createElement(\"nextjs-portal\");\n shadowNode.current = portalNode.current.attachShadow({\n mode: \"open\"\n });\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return ()=>{\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, []);\n return shadowNode.current ? /*#__PURE__*/ (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(children, shadowNode.current) : null;\n} //# sourceMappingURL=ShadowPortal.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9TaGFkb3dQb3J0YWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUErQjtBQUNVO0FBQ2xDLFNBQVNFLGFBQWFDLEtBQUs7SUFDOUIsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0Q7SUFDbkIsSUFBSUUsYUFBYUwseUNBQVksQ0FBQztJQUM5QixJQUFJTyxhQUFhUCx5Q0FBWSxDQUFDO0lBQzlCLElBQUksR0FBR1EsWUFBWSxHQUFHUiwyQ0FBYztJQUNwQ0Esa0RBQXFCLENBQUM7UUFDbEIsTUFBTVcsZ0JBQWdCQztRQUN0QlAsV0FBV1EsT0FBTyxHQUFHRixjQUFjRyxhQUFhLENBQUM7UUFDakRQLFdBQVdNLE9BQU8sR0FBR1IsV0FBV1EsT0FBTyxDQUFDRSxZQUFZLENBQUM7WUFDakRDLE1BQU07UUFDVjtRQUNBTCxjQUFjTSxJQUFJLENBQUNDLFdBQVcsQ0FBQ2IsV0FBV1EsT0FBTztRQUNqREwsWUFBWSxDQUFDO1FBQ2IsT0FBTztZQUNILElBQUlILFdBQVdRLE9BQU8sSUFBSVIsV0FBV1EsT0FBTyxDQUFDRixhQUFhLEVBQUU7Z0JBQ3hETixXQUFXUSxPQUFPLENBQUNGLGFBQWEsQ0FBQ00sSUFBSSxDQUFDRSxXQUFXLENBQUNkLFdBQVdRLE9BQU87WUFDeEU7UUFDSjtJQUNKLEdBQUcsRUFBRTtJQUNMLE9BQU9OLFdBQVdNLE9BQU8sR0FBRyxXQUFXLEdBQUdaLHVEQUFZQSxDQUFDRyxVQUFVRyxXQUFXTSxPQUFPLElBQUk7QUFDM0YsRUFFQSx3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvU2hhZG93UG9ydGFsLmpzP2Y1M2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5leHBvcnQgZnVuY3Rpb24gU2hhZG93UG9ydGFsKHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4gfSA9IHBhcmFtO1xuICAgIGxldCBwb3J0YWxOb2RlID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGxldCBzaGFkb3dOb2RlID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGxldCBbLCBmb3JjZVVwZGF0ZV0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICAgIFJlYWN0LnVzZUxheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBvd25lckRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHBvcnRhbE5vZGUuY3VycmVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm5leHRqcy1wb3J0YWxcIik7XG4gICAgICAgIHNoYWRvd05vZGUuY3VycmVudCA9IHBvcnRhbE5vZGUuY3VycmVudC5hdHRhY2hTaGFkb3coe1xuICAgICAgICAgICAgbW9kZTogXCJvcGVuXCJcbiAgICAgICAgfSk7XG4gICAgICAgIG93bmVyRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpO1xuICAgICAgICBmb3JjZVVwZGF0ZSh7fSk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgaWYgKHBvcnRhbE5vZGUuY3VycmVudCAmJiBwb3J0YWxOb2RlLmN1cnJlbnQub3duZXJEb2N1bWVudCkge1xuICAgICAgICAgICAgICAgIHBvcnRhbE5vZGUuY3VycmVudC5vd25lckRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocG9ydGFsTm9kZS5jdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIHNoYWRvd05vZGUuY3VycmVudCA/IC8qI19fUFVSRV9fKi8gY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCBzaGFkb3dOb2RlLmN1cnJlbnQpIDogbnVsbDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2hhZG93UG9ydGFsLmpzLm1hcCJdLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVBvcnRhbCIsIlNoYWRvd1BvcnRhbCIsInBhcmFtIiwiY2hpbGRyZW4iLCJwb3J0YWxOb2RlIiwidXNlUmVmIiwic2hhZG93Tm9kZSIsImZvcmNlVXBkYXRlIiwidXNlU3RhdGUiLCJ1c2VMYXlvdXRFZmZlY3QiLCJvd25lckRvY3VtZW50IiwiZG9jdW1lbnQiLCJjdXJyZW50IiwiY3JlYXRlRWxlbWVudCIsImF0dGFjaFNoYWRvdyIsIm1vZGUiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJyZW1vdmVDaGlsZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/ShadowPortal.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js":
-/*!***********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js ***!
- \***********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EditorLink: () => (/* binding */ EditorLink)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers_use_open_in_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\n\n\n\nfunction EditorLink(param) {\n let { file, isSourceFile, location } = param;\n var _location_line, _location_column;\n const open = (0,_helpers_use_open_in_editor__WEBPACK_IMPORTED_MODULE_2__.useOpenInEditor)({\n file,\n lineNumber: (_location_line = location == null ? void 0 : location.line) != null ? _location_line : 1,\n column: (_location_column = location == null ? void 0 : location.column) != null ? _location_column : 0\n });\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n \"data-with-open-in-editor-link\": true,\n \"data-with-open-in-editor-link-source-file\": isSourceFile ? true : undefined,\n \"data-with-open-in-editor-link-import-trace\": isSourceFile ? undefined : true,\n tabIndex: 10,\n role: \"link\",\n onClick: open,\n title: \"Click to open in your editor\",\n children: [\n file,\n location ? \":\" + location.line + \":\" + location.column : null,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\n })\n ]\n })\n ]\n });\n} //# sourceMappingURL=EditorLink.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9FZGl0b3JMaW5rLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStEO0FBQ3JDO0FBQ3lDO0FBQzVELFNBQVNNLFdBQVdDLEtBQUs7SUFDNUIsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFlBQVksRUFBRUMsUUFBUSxFQUFFLEdBQUdIO0lBQ3ZDLElBQUlJLGdCQUFnQkM7SUFDcEIsTUFBTUMsT0FBT1IsNEVBQWVBLENBQUM7UUFDekJHO1FBQ0FNLFlBQVksQ0FBQ0gsaUJBQWlCRCxZQUFZLE9BQU8sS0FBSyxJQUFJQSxTQUFTSyxJQUFJLEtBQUssT0FBT0osaUJBQWlCO1FBQ3BHSyxRQUFRLENBQUNKLG1CQUFtQkYsWUFBWSxPQUFPLEtBQUssSUFBSUEsU0FBU00sTUFBTSxLQUFLLE9BQU9KLG1CQUFtQjtJQUMxRztJQUNBLE9BQU8sV0FBVyxHQUFHVCx1REFBS0EsQ0FBQyxPQUFPO1FBQzlCLGlDQUFpQztRQUNqQyw2Q0FBNkNNLGVBQWUsT0FBT1E7UUFDbkUsOENBQThDUixlQUFlUSxZQUFZO1FBQ3pFQyxVQUFVO1FBQ1ZDLE1BQU07UUFDTkMsU0FBU1A7UUFDVFEsT0FBTztRQUNQQyxVQUFVO1lBQ05kO1lBQ0FFLFdBQVcsTUFBTUEsU0FBU0ssSUFBSSxHQUFHLE1BQU1MLFNBQVNNLE1BQU0sR0FBRztZQUN6RCxXQUFXLEdBQUdiLHVEQUFLQSxDQUFDLE9BQU87Z0JBQ3ZCb0IsT0FBTztnQkFDUEMsU0FBUztnQkFDVEMsTUFBTTtnQkFDTkMsUUFBUTtnQkFDUkMsYUFBYTtnQkFDYkMsZUFBZTtnQkFDZkMsZ0JBQWdCO2dCQUNoQlAsVUFBVTtvQkFDTixXQUFXLEdBQUdyQixzREFBSUEsQ0FBQyxRQUFRO3dCQUN2QjZCLEdBQUc7b0JBQ1A7b0JBQ0EsV0FBVyxHQUFHN0Isc0RBQUlBLENBQUMsWUFBWTt3QkFDM0I4QixRQUFRO29CQUNaO29CQUNBLFdBQVcsR0FBRzlCLHNEQUFJQSxDQUFDLFFBQVE7d0JBQ3ZCK0IsSUFBSTt3QkFDSkMsSUFBSTt3QkFDSkMsSUFBSTt3QkFDSkMsSUFBSTtvQkFDUjtpQkFDSDtZQUNMO1NBQ0g7SUFDTDtBQUNKLEVBRUEsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1Rlcm1pbmFsL0VkaXRvckxpbmsuanM/ZDhhNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlT3BlbkluRWRpdG9yIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvdXNlLW9wZW4taW4tZWRpdG9yXCI7XG5leHBvcnQgZnVuY3Rpb24gRWRpdG9yTGluayhwYXJhbSkge1xuICAgIGxldCB7IGZpbGUsIGlzU291cmNlRmlsZSwgbG9jYXRpb24gfSA9IHBhcmFtO1xuICAgIHZhciBfbG9jYXRpb25fbGluZSwgX2xvY2F0aW9uX2NvbHVtbjtcbiAgICBjb25zdCBvcGVuID0gdXNlT3BlbkluRWRpdG9yKHtcbiAgICAgICAgZmlsZSxcbiAgICAgICAgbGluZU51bWJlcjogKF9sb2NhdGlvbl9saW5lID0gbG9jYXRpb24gPT0gbnVsbCA/IHZvaWQgMCA6IGxvY2F0aW9uLmxpbmUpICE9IG51bGwgPyBfbG9jYXRpb25fbGluZSA6IDEsXG4gICAgICAgIGNvbHVtbjogKF9sb2NhdGlvbl9jb2x1bW4gPSBsb2NhdGlvbiA9PSBudWxsID8gdm9pZCAwIDogbG9jYXRpb24uY29sdW1uKSAhPSBudWxsID8gX2xvY2F0aW9uX2NvbHVtbiA6IDBcbiAgICB9KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhcImRpdlwiLCB7XG4gICAgICAgIFwiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtcIjogdHJ1ZSxcbiAgICAgICAgXCJkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1zb3VyY2UtZmlsZVwiOiBpc1NvdXJjZUZpbGUgPyB0cnVlIDogdW5kZWZpbmVkLFxuICAgICAgICBcImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLWltcG9ydC10cmFjZVwiOiBpc1NvdXJjZUZpbGUgPyB1bmRlZmluZWQgOiB0cnVlLFxuICAgICAgICB0YWJJbmRleDogMTAsXG4gICAgICAgIHJvbGU6IFwibGlua1wiLFxuICAgICAgICBvbkNsaWNrOiBvcGVuLFxuICAgICAgICB0aXRsZTogXCJDbGljayB0byBvcGVuIGluIHlvdXIgZWRpdG9yXCIsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgbG9jYXRpb24gPyBcIjpcIiArIGxvY2F0aW9uLmxpbmUgKyBcIjpcIiArIGxvY2F0aW9uLmNvbHVtbiA6IG51bGwsXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKFwic3ZnXCIsIHtcbiAgICAgICAgICAgICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgICAgICAgICAgIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCIsXG4gICAgICAgICAgICAgICAgZmlsbDogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBcIjJcIixcbiAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJwYXRoXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ6IFwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwicG9seWxpbmVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBcIjE1IDMgMjEgMyAyMSA5XCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcImxpbmVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDE6IFwiMTBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHkxOiBcIjE0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB4MjogXCIyMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTI6IFwiM1wiXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1FZGl0b3JMaW5rLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJ1c2VPcGVuSW5FZGl0b3IiLCJFZGl0b3JMaW5rIiwicGFyYW0iLCJmaWxlIiwiaXNTb3VyY2VGaWxlIiwibG9jYXRpb24iLCJfbG9jYXRpb25fbGluZSIsIl9sb2NhdGlvbl9jb2x1bW4iLCJvcGVuIiwibGluZU51bWJlciIsImxpbmUiLCJjb2x1bW4iLCJ1bmRlZmluZWQiLCJ0YWJJbmRleCIsInJvbGUiLCJvbkNsaWNrIiwidGl0bGUiLCJjaGlsZHJlbiIsInhtbG5zIiwidmlld0JveCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImQiLCJwb2ludHMiLCJ4MSIsInkxIiwieDIiLCJ5MiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js":
-/*!*********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js ***!
- \*********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Terminal: () => (/* binding */ Terminal)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var next_dist_compiled_anser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/compiled/anser */ \"(ssr)/../../node_modules/next/dist/compiled/anser/index.js\");\n/* harmony import */ var next_dist_compiled_anser__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_anser__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _hot_linked_text__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hot-linked-text */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\n/* harmony import */ var _EditorLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EditorLink */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js\");\n\n\n\n\n\nfunction getFile(lines) {\n const contentFileName = lines.shift();\n if (!contentFileName) return null;\n const [fileName, line, column] = contentFileName.split(\":\", 3);\n const parsedLine = Number(line);\n const parsedColumn = Number(column);\n const hasLocation = !Number.isNaN(parsedLine) && !Number.isNaN(parsedColumn);\n return {\n fileName: hasLocation ? fileName : contentFileName,\n location: hasLocation ? {\n line: parsedLine,\n column: parsedColumn\n } : undefined\n };\n}\nfunction getImportTraceFiles(lines) {\n if (lines.some((line)=>/ReactServerComponentsError:/.test(line)) || lines.some((line)=>/Import trace for requested module:/.test(line))) {\n // Grab the lines at the end containing the files\n const files = [];\n while(/.+\\..+/.test(lines[lines.length - 1]) && !lines[lines.length - 1].includes(\":\")){\n const file = lines.pop().trim();\n files.unshift(file);\n }\n return files;\n }\n return [];\n}\nfunction getEditorLinks(content) {\n const lines = content.split(\"\\n\");\n const file = getFile(lines);\n const importTraceFiles = getImportTraceFiles(lines);\n return {\n file,\n source: lines.join(\"\\n\"),\n importTraceFiles\n };\n}\nconst Terminal = function Terminal(param) {\n let { content } = param;\n const { file, source, importTraceFiles } = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>getEditorLinks(content), [\n content\n ]);\n const decoded = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>{\n return next_dist_compiled_anser__WEBPACK_IMPORTED_MODULE_1___default().ansiToJson(source, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }, [\n source\n ]);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n \"data-nextjs-terminal\": true,\n children: [\n file && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_EditorLink__WEBPACK_IMPORTED_MODULE_4__.EditorLink, {\n isSourceFile: true,\n file: file.fileName,\n location: file.location\n }, file.fileName),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"pre\", {\n children: [\n decoded.map((entry, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", {\n style: {\n color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined,\n ...entry.decoration === \"bold\" ? {\n fontWeight: 800\n } : entry.decoration === \"italic\" ? {\n fontStyle: \"italic\"\n } : undefined\n },\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_hot_linked_text__WEBPACK_IMPORTED_MODULE_3__.HotlinkedText, {\n text: entry.content\n })\n }, \"terminal-entry-\" + index)),\n importTraceFiles.map((importTraceFile)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_EditorLink__WEBPACK_IMPORTED_MODULE_4__.EditorLink, {\n isSourceFile: false,\n file: importTraceFile\n }, importTraceFile))\n ]\n })\n ]\n });\n}; //# sourceMappingURL=Terminal.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9UZXJtaW5hbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUErRDtBQUNsQjtBQUNkO0FBQ29CO0FBQ1Q7QUFDMUMsU0FBU1EsUUFBUUMsS0FBSztJQUNsQixNQUFNQyxrQkFBa0JELE1BQU1FLEtBQUs7SUFDbkMsSUFBSSxDQUFDRCxpQkFBaUIsT0FBTztJQUM3QixNQUFNLENBQUNFLFVBQVVDLE1BQU1DLE9BQU8sR0FBR0osZ0JBQWdCSyxLQUFLLENBQUMsS0FBSztJQUM1RCxNQUFNQyxhQUFhQyxPQUFPSjtJQUMxQixNQUFNSyxlQUFlRCxPQUFPSDtJQUM1QixNQUFNSyxjQUFjLENBQUNGLE9BQU9HLEtBQUssQ0FBQ0osZUFBZSxDQUFDQyxPQUFPRyxLQUFLLENBQUNGO0lBQy9ELE9BQU87UUFDSE4sVUFBVU8sY0FBY1AsV0FBV0Y7UUFDbkNXLFVBQVVGLGNBQWM7WUFDcEJOLE1BQU1HO1lBQ05GLFFBQVFJO1FBQ1osSUFBSUk7SUFDUjtBQUNKO0FBQ0EsU0FBU0Msb0JBQW9CZCxLQUFLO0lBQzlCLElBQUlBLE1BQU1lLElBQUksQ0FBQyxDQUFDWCxPQUFPLDhCQUE4QlksSUFBSSxDQUFDWixVQUFVSixNQUFNZSxJQUFJLENBQUMsQ0FBQ1gsT0FBTyxxQ0FBcUNZLElBQUksQ0FBQ1osUUFBUTtRQUNySSxpREFBaUQ7UUFDakQsTUFBTWEsUUFBUSxFQUFFO1FBQ2hCLE1BQU0sU0FBU0QsSUFBSSxDQUFDaEIsS0FBSyxDQUFDQSxNQUFNa0IsTUFBTSxHQUFHLEVBQUUsS0FBSyxDQUFDbEIsS0FBSyxDQUFDQSxNQUFNa0IsTUFBTSxHQUFHLEVBQUUsQ0FBQ0MsUUFBUSxDQUFDLEtBQUs7WUFDbkYsTUFBTUMsT0FBT3BCLE1BQU1xQixHQUFHLEdBQUdDLElBQUk7WUFDN0JMLE1BQU1NLE9BQU8sQ0FBQ0g7UUFDbEI7UUFDQSxPQUFPSDtJQUNYO0lBQ0EsT0FBTyxFQUFFO0FBQ2I7QUFDQSxTQUFTTyxlQUFlQyxPQUFPO0lBQzNCLE1BQU16QixRQUFReUIsUUFBUW5CLEtBQUssQ0FBQztJQUM1QixNQUFNYyxPQUFPckIsUUFBUUM7SUFDckIsTUFBTTBCLG1CQUFtQlosb0JBQW9CZDtJQUM3QyxPQUFPO1FBQ0hvQjtRQUNBTyxRQUFRM0IsTUFBTTRCLElBQUksQ0FBQztRQUNuQkY7SUFDSjtBQUNKO0FBQ08sTUFBTUcsV0FBVyxTQUFTQSxTQUFTQyxLQUFLO0lBQzNDLElBQUksRUFBRUwsT0FBTyxFQUFFLEdBQUdLO0lBQ2xCLE1BQU0sRUFBRVYsSUFBSSxFQUFFTyxNQUFNLEVBQUVELGdCQUFnQixFQUFFLEdBQUc5QiwwQ0FBYSxDQUFDLElBQUk0QixlQUFlQyxVQUFVO1FBQ2xGQTtLQUNIO0lBQ0QsTUFBTU8sVUFBVXBDLDBDQUFhLENBQUM7UUFDMUIsT0FBT0QsMEVBQWdCLENBQUNnQyxRQUFRO1lBQzVCTyxNQUFNO1lBQ05DLGFBQWE7WUFDYkMsY0FBYztRQUNsQjtJQUNKLEdBQUc7UUFDQ1Q7S0FDSDtJQUNELE9BQU8sV0FBVyxHQUFHakMsdURBQUtBLENBQUMsT0FBTztRQUM5Qix3QkFBd0I7UUFDeEIyQyxVQUFVO1lBQ05qQixRQUFRLFdBQVcsR0FBRzVCLHNEQUFJQSxDQUFDTSxtREFBVUEsRUFBRTtnQkFDbkN3QyxjQUFjO2dCQUNkbEIsTUFBTUEsS0FBS2pCLFFBQVE7Z0JBQ25CUyxVQUFVUSxLQUFLUixRQUFRO1lBQzNCLEdBQUdRLEtBQUtqQixRQUFRO1lBQ2hCLFdBQVcsR0FBR1QsdURBQUtBLENBQUMsT0FBTztnQkFDdkIyQyxVQUFVO29CQUNOTCxRQUFRTyxHQUFHLENBQUMsQ0FBQ0MsT0FBT0MsUUFBUSxXQUFXLEdBQUdqRCxzREFBSUEsQ0FBQyxRQUFROzRCQUMvQ2tELE9BQU87Z0NBQ0hDLE9BQU9ILE1BQU1JLEVBQUUsR0FBRyxpQkFBaUJKLE1BQU1JLEVBQUUsR0FBRyxNQUFNL0I7Z0NBQ3BELEdBQUcyQixNQUFNSyxVQUFVLEtBQUssU0FBUztvQ0FDN0JDLFlBQVk7Z0NBQ2hCLElBQUlOLE1BQU1LLFVBQVUsS0FBSyxXQUFXO29DQUNoQ0UsV0FBVztnQ0FDZixJQUFJbEMsU0FBUzs0QkFDakI7NEJBQ0F3QixVQUFVLFdBQVcsR0FBRzdDLHNEQUFJQSxDQUFDSywyREFBYUEsRUFBRTtnQ0FDeENtRCxNQUFNUixNQUFNZixPQUFPOzRCQUN2Qjt3QkFDSixHQUFHLG9CQUFvQmdCO29CQUMzQmYsaUJBQWlCYSxHQUFHLENBQUMsQ0FBQ1Usa0JBQWtCLFdBQVcsR0FBR3pELHNEQUFJQSxDQUFDTSxtREFBVUEsRUFBRTs0QkFDL0R3QyxjQUFjOzRCQUNkbEIsTUFBTTZCO3dCQUNWLEdBQUdBO2lCQUNWO1lBQ0w7U0FDSDtJQUNMO0FBQ0osRUFBRSxDQUVGLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9UZXJtaW5hbC5qcz9iYzU2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQW5zZXIgZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9hbnNlclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBIb3RsaW5rZWRUZXh0IH0gZnJvbSBcIi4uL2hvdC1saW5rZWQtdGV4dFwiO1xuaW1wb3J0IHsgRWRpdG9yTGluayB9IGZyb20gXCIuL0VkaXRvckxpbmtcIjtcbmZ1bmN0aW9uIGdldEZpbGUobGluZXMpIHtcbiAgICBjb25zdCBjb250ZW50RmlsZU5hbWUgPSBsaW5lcy5zaGlmdCgpO1xuICAgIGlmICghY29udGVudEZpbGVOYW1lKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbZmlsZU5hbWUsIGxpbmUsIGNvbHVtbl0gPSBjb250ZW50RmlsZU5hbWUuc3BsaXQoXCI6XCIsIDMpO1xuICAgIGNvbnN0IHBhcnNlZExpbmUgPSBOdW1iZXIobGluZSk7XG4gICAgY29uc3QgcGFyc2VkQ29sdW1uID0gTnVtYmVyKGNvbHVtbik7XG4gICAgY29uc3QgaGFzTG9jYXRpb24gPSAhTnVtYmVyLmlzTmFOKHBhcnNlZExpbmUpICYmICFOdW1iZXIuaXNOYU4ocGFyc2VkQ29sdW1uKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWxlTmFtZTogaGFzTG9jYXRpb24gPyBmaWxlTmFtZSA6IGNvbnRlbnRGaWxlTmFtZSxcbiAgICAgICAgbG9jYXRpb246IGhhc0xvY2F0aW9uID8ge1xuICAgICAgICAgICAgbGluZTogcGFyc2VkTGluZSxcbiAgICAgICAgICAgIGNvbHVtbjogcGFyc2VkQ29sdW1uXG4gICAgICAgIH0gOiB1bmRlZmluZWRcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0SW1wb3J0VHJhY2VGaWxlcyhsaW5lcykge1xuICAgIGlmIChsaW5lcy5zb21lKChsaW5lKT0+L1JlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yOi8udGVzdChsaW5lKSkgfHwgbGluZXMuc29tZSgobGluZSk9Pi9JbXBvcnQgdHJhY2UgZm9yIHJlcXVlc3RlZCBtb2R1bGU6Ly50ZXN0KGxpbmUpKSkge1xuICAgICAgICAvLyBHcmFiIHRoZSBsaW5lcyBhdCB0aGUgZW5kIGNvbnRhaW5pbmcgdGhlIGZpbGVzXG4gICAgICAgIGNvbnN0IGZpbGVzID0gW107XG4gICAgICAgIHdoaWxlKC8uK1xcLi4rLy50ZXN0KGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdKSAmJiAhbGluZXNbbGluZXMubGVuZ3RoIC0gMV0uaW5jbHVkZXMoXCI6XCIpKXtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBsaW5lcy5wb3AoKS50cmltKCk7XG4gICAgICAgICAgICBmaWxlcy51bnNoaWZ0KGZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWxlcztcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xufVxuZnVuY3Rpb24gZ2V0RWRpdG9yTGlua3MoY29udGVudCkge1xuICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdChcIlxcblwiKTtcbiAgICBjb25zdCBmaWxlID0gZ2V0RmlsZShsaW5lcyk7XG4gICAgY29uc3QgaW1wb3J0VHJhY2VGaWxlcyA9IGdldEltcG9ydFRyYWNlRmlsZXMobGluZXMpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGZpbGUsXG4gICAgICAgIHNvdXJjZTogbGluZXMuam9pbihcIlxcblwiKSxcbiAgICAgICAgaW1wb3J0VHJhY2VGaWxlc1xuICAgIH07XG59XG5leHBvcnQgY29uc3QgVGVybWluYWwgPSBmdW5jdGlvbiBUZXJtaW5hbChwYXJhbSkge1xuICAgIGxldCB7IGNvbnRlbnQgfSA9IHBhcmFtO1xuICAgIGNvbnN0IHsgZmlsZSwgc291cmNlLCBpbXBvcnRUcmFjZUZpbGVzIH0gPSBSZWFjdC51c2VNZW1vKCgpPT5nZXRFZGl0b3JMaW5rcyhjb250ZW50KSwgW1xuICAgICAgICBjb250ZW50XG4gICAgXSk7XG4gICAgY29uc3QgZGVjb2RlZCA9IFJlYWN0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgcmV0dXJuIEFuc2VyLmFuc2lUb0pzb24oc291cmNlLCB7XG4gICAgICAgICAgICBqc29uOiB0cnVlLFxuICAgICAgICAgICAgdXNlX2NsYXNzZXM6IHRydWUsXG4gICAgICAgICAgICByZW1vdmVfZW1wdHk6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBzb3VyY2VcbiAgICBdKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhcImRpdlwiLCB7XG4gICAgICAgIFwiZGF0YS1uZXh0anMtdGVybWluYWxcIjogdHJ1ZSxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIGZpbGUgJiYgLyojX19QVVJFX18qLyBfanN4KEVkaXRvckxpbmssIHtcbiAgICAgICAgICAgICAgICBpc1NvdXJjZUZpbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsZTogZmlsZS5maWxlTmFtZSxcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogZmlsZS5sb2NhdGlvblxuICAgICAgICAgICAgfSwgZmlsZS5maWxlTmFtZSksXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKFwicHJlXCIsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICBkZWNvZGVkLm1hcCgoZW50cnksIGluZGV4KT0+LyojX19QVVJFX18qLyBfanN4KFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGVudHJ5LmZnID8gXCJ2YXIoLS1jb2xvci1cIiArIGVudHJ5LmZnICsgXCIpXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LmRlY29yYXRpb24gPT09IFwiYm9sZFwiID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogODAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiBlbnRyeS5kZWNvcmF0aW9uID09PSBcIml0YWxpY1wiID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFN0eWxlOiBcIml0YWxpY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goSG90bGlua2VkVGV4dCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBlbnRyeS5jb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIFwidGVybWluYWwtZW50cnktXCIgKyBpbmRleCkpLFxuICAgICAgICAgICAgICAgICAgICBpbXBvcnRUcmFjZUZpbGVzLm1hcCgoaW1wb3J0VHJhY2VGaWxlKT0+LyojX19QVVJFX18qLyBfanN4KEVkaXRvckxpbmssIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NvdXJjZUZpbGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IGltcG9ydFRyYWNlRmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgaW1wb3J0VHJhY2VGaWxlKSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgfSk7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UZXJtaW5hbC5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkFuc2VyIiwiUmVhY3QiLCJIb3RsaW5rZWRUZXh0IiwiRWRpdG9yTGluayIsImdldEZpbGUiLCJsaW5lcyIsImNvbnRlbnRGaWxlTmFtZSIsInNoaWZ0IiwiZmlsZU5hbWUiLCJsaW5lIiwiY29sdW1uIiwic3BsaXQiLCJwYXJzZWRMaW5lIiwiTnVtYmVyIiwicGFyc2VkQ29sdW1uIiwiaGFzTG9jYXRpb24iLCJpc05hTiIsImxvY2F0aW9uIiwidW5kZWZpbmVkIiwiZ2V0SW1wb3J0VHJhY2VGaWxlcyIsInNvbWUiLCJ0ZXN0IiwiZmlsZXMiLCJsZW5ndGgiLCJpbmNsdWRlcyIsImZpbGUiLCJwb3AiLCJ0cmltIiwidW5zaGlmdCIsImdldEVkaXRvckxpbmtzIiwiY29udGVudCIsImltcG9ydFRyYWNlRmlsZXMiLCJzb3VyY2UiLCJqb2luIiwiVGVybWluYWwiLCJwYXJhbSIsInVzZU1lbW8iLCJkZWNvZGVkIiwiYW5zaVRvSnNvbiIsImpzb24iLCJ1c2VfY2xhc3NlcyIsInJlbW92ZV9lbXB0eSIsImNoaWxkcmVuIiwiaXNTb3VyY2VGaWxlIiwibWFwIiwiZW50cnkiLCJpbmRleCIsInN0eWxlIiwiY29sb3IiLCJmZyIsImRlY29yYXRpb24iLCJmb250V2VpZ2h0IiwiZm9udFN0eWxlIiwidGV4dCIsImltcG9ydFRyYWNlRmlsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/index.js":
-/*!******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/index.js ***!
- \******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Terminal: () => (/* reexport safe */ _Terminal__WEBPACK_IMPORTED_MODULE_0__.Terminal)\n/* harmony export */ });\n/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Terminal */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js\");\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFzQyxDQUV0QyxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvaW5kZXguanM/YzNlNCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBUZXJtaW5hbCB9IGZyb20gXCIuL1Rlcm1pbmFsXCI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJUZXJtaW5hbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/styles.js":
-/*!*******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/styles.js ***!
- \*******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n [data-nextjs-terminal] {\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n [data-nextjs-terminal] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n\\n [data-nextjs-terminal] pre {\\n white-space: pre-wrap;\\n word-break: break-word;\\n }\\n\\n [data-with-open-in-editor-link] svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n }\\n [data-with-open-in-editor-link] {\\n cursor: pointer;\\n }\\n [data-with-open-in-editor-link]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-with-open-in-editor-link-source-file] {\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n }\\n [data-with-open-in-editor-link-import-trace] {\\n margin-left: var(--size-gap-double);\\n }\\n [data-nextjs-terminal] a {\\n color: inherit;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__.noop)(_templateObject());\n //# sourceMappingURL=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9zdHlsZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9HO0FBQ3BHLFNBQVNFO0lBQ0wsTUFBTUMsT0FBT0YsNkVBQThCQSxDQUFDO1FBQ3hDO0tBQ0g7SUFDREMsa0JBQWtCO1FBQ2QsT0FBT0M7SUFDWDtJQUNBLE9BQU9BO0FBQ1g7QUFDMEQ7QUFDMUQsTUFBTUcsU0FBU0QsNERBQUdBLENBQUNIO0FBQ0QsQ0FFbEIsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1Rlcm1pbmFsL3N0eWxlcy5qcz80OWIxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gYXMgX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIH0gZnJvbSBcIkBzd2MvaGVscGVycy9fL190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZVwiO1xuZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCkge1xuICAgIGNvbnN0IGRhdGEgPSBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UoW1xuICAgICAgICBcIlxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSB7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJnKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZmcpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXTo6c2VsZWN0aW9uLFxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqOjpzZWxlY3Rpb24ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXNlbGVjdGlvbik7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdICoge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdID4gKiB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSlcXG4gICAgICBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdIHByZSB7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG4gIH1cXG5cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGlua10gc3ZnIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwKTtcXG4gIH1cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGlua10ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICB9XFxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtdOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLXNvdXJjZS1maWxlXSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjayk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIH1cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1pbXBvcnQtdHJhY2VdIHtcXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdIGEge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gIH1cXG5cIlxuICAgIF0pO1xuICAgIF90ZW1wbGF0ZU9iamVjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xufVxuaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlXCI7XG5jb25zdCBzdHlsZXMgPSBjc3MoX3RlbXBsYXRlT2JqZWN0KCkpO1xuZXhwb3J0IHsgc3R5bGVzIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5qcy5tYXAiXSwibmFtZXMiOlsiXyIsIl90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSIsIl90ZW1wbGF0ZU9iamVjdCIsImRhdGEiLCJub29wIiwiY3NzIiwic3R5bGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/styles.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/Toast.js":
-/*!***************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/Toast.js ***!
- \***************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Toast: () => (/* binding */ Toast)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst Toast = function Toast(param) {\n let { onClick, children, className } = param;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n \"data-nextjs-toast\": true,\n onClick: onClick,\n className: className,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n \"data-nextjs-toast-wrapper\": true,\n children: children\n })\n });\n}; //# sourceMappingURL=Toast.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWdEO0FBQ2pCO0FBQ3hCLE1BQU1HLFFBQVEsU0FBU0EsTUFBTUMsS0FBSztJQUNyQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUUsR0FBR0g7SUFDdkMsT0FBTyxXQUFXLEdBQUdILHNEQUFJQSxDQUFDLE9BQU87UUFDN0IscUJBQXFCO1FBQ3JCSSxTQUFTQTtRQUNURSxXQUFXQTtRQUNYRCxVQUFVLFdBQVcsR0FBR0wsc0RBQUlBLENBQUMsT0FBTztZQUNoQyw2QkFBNkI7WUFDN0JLLFVBQVVBO1FBQ2Q7SUFDSjtBQUNKLEVBQUUsQ0FFRixpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QuanM/NjY1NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgY29uc3QgVG9hc3QgPSBmdW5jdGlvbiBUb2FzdChwYXJhbSkge1xuICAgIGxldCB7IG9uQ2xpY2ssIGNoaWxkcmVuLCBjbGFzc05hbWUgfSA9IHBhcmFtO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goXCJkaXZcIiwge1xuICAgICAgICBcImRhdGEtbmV4dGpzLXRvYXN0XCI6IHRydWUsXG4gICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2ssXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFwiZGl2XCIsIHtcbiAgICAgICAgICAgIFwiZGF0YS1uZXh0anMtdG9hc3Qtd3JhcHBlclwiOiB0cnVlLFxuICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgICAgIH0pXG4gICAgfSk7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ub2FzdC5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIlJlYWN0IiwiVG9hc3QiLCJwYXJhbSIsIm9uQ2xpY2siLCJjaGlsZHJlbiIsImNsYXNzTmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/Toast.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/index.js":
-/*!***************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/index.js ***!
- \***************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Toast: () => (/* reexport safe */ _Toast__WEBPACK_IMPORTED_MODULE_1__.Toast),\n/* harmony export */ styles: () => (/* reexport safe */ _styles__WEBPACK_IMPORTED_MODULE_0__.styles)\n/* harmony export */ });\n/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/styles.js\");\n/* harmony import */ var _Toast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Toast */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/Toast.js\");\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Ub2FzdC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWtDO0FBQ0YsQ0FFaEMsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1RvYXN0L2luZGV4LmpzP2ZjZDciXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgc3R5bGVzIH0gZnJvbSBcIi4vc3R5bGVzXCI7XG5leHBvcnQgeyBUb2FzdCB9IGZyb20gXCIuL1RvYXN0XCI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJzdHlsZXMiLCJUb2FzdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/styles.js":
-/*!****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/styles.js ***!
- \****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n [data-nextjs-toast] {\\n position: fixed;\\n bottom: var(--size-gap-double);\\n left: var(--size-gap-double);\\n max-width: 420px;\\n z-index: 9000;\\n }\\n\\n @media (max-width: 440px) {\\n [data-nextjs-toast] {\\n max-width: 90vw;\\n left: 5vw;\\n }\\n }\\n\\n [data-nextjs-toast-wrapper] {\\n padding: 16px;\\n border-radius: var(--size-gap-half);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\\n rgba(0, 0, 0, 0.25);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__.noop)(_templateObject());\n //# sourceMappingURL=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Ub2FzdC9zdHlsZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9HO0FBQ3BHLFNBQVNFO0lBQ0wsTUFBTUMsT0FBT0YsNkVBQThCQSxDQUFDO1FBQ3hDO0tBQ0g7SUFDREMsa0JBQWtCO1FBQ2QsT0FBT0M7SUFDWDtJQUNBLE9BQU9BO0FBQ1g7QUFDMEQ7QUFDMUQsTUFBTUcsU0FBU0QsNERBQUdBLENBQUNIO0FBQ0QsQ0FFbEIsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1RvYXN0L3N0eWxlcy5qcz9mOWNkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gYXMgX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIH0gZnJvbSBcIkBzd2MvaGVscGVycy9fL190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZVwiO1xuZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCkge1xuICAgIGNvbnN0IGRhdGEgPSBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UoW1xuICAgICAgICBcIlxcbiAgW2RhdGEtbmV4dGpzLXRvYXN0XSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgICBsZWZ0OiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgICBtYXgtd2lkdGg6IDQyMHB4O1xcbiAgICB6LWluZGV4OiA5MDAwO1xcbiAgfVxcblxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ0MHB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy10b2FzdF0ge1xcbiAgICAgIG1heC13aWR0aDogOTB2dztcXG4gICAgICBsZWZ0OiA1dnc7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy10b2FzdC13cmFwcGVyXSB7XFxuICAgIHBhZGRpbmc6IDE2cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICAgIGJveC1zaGFkb3c6IDBweCB2YXIoLS1zaXplLWdhcC1kb3VibGUpIHZhcigtLXNpemUtZ2FwLXF1YWQpXFxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcXG4gIH1cXG5cIlxuICAgIF0pO1xuICAgIF90ZW1wbGF0ZU9iamVjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xufVxuaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlXCI7XG5jb25zdCBzdHlsZXMgPSBjc3MoX3RlbXBsYXRlT2JqZWN0KCkpO1xuZXhwb3J0IHsgc3R5bGVzIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5qcy5tYXAiXSwibmFtZXMiOlsiXyIsIl90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSIsIl90ZW1wbGF0ZU9iamVjdCIsImRhdGEiLCJub29wIiwiY3NzIiwic3R5bGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/styles.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js":
-/*!*********************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js ***!
- \*********************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VersionStalenessInfo: () => (/* binding */ VersionStalenessInfo)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction VersionStalenessInfo(props) {\n if (!props) return null;\n const { staleness, installed, expected } = props;\n let text = \"\";\n let title = \"\";\n let indicatorClass = \"\";\n switch(staleness){\n case \"fresh\":\n text = \"Next.js is up to date\";\n title = \"Latest available version is detected (\" + installed + \").\";\n indicatorClass = \"fresh\";\n break;\n case \"stale-patch\":\n case \"stale-minor\":\n text = \"Next.js (\" + installed + \") out of date\";\n title = \"There is a newer version (\" + expected + \") available, upgrade recommended! \";\n indicatorClass = \"stale\";\n break;\n case \"stale-major\":\n {\n text = \"Next.js (\" + installed + \") is outdated\";\n title = \"An outdated version detected (latest is \" + expected + \"), upgrade is highly recommended!\";\n indicatorClass = \"outdated\";\n break;\n }\n case \"stale-prerelease\":\n {\n text = \"Next.js (\" + installed + \") is outdated\";\n title = \"There is a newer canary version (\" + expected + \") available, please upgrade! \";\n indicatorClass = \"stale\";\n break;\n }\n case \"newer-than-npm\":\n case \"unknown\":\n break;\n default:\n break;\n }\n if (!text) return null;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"small\", {\n className: \"nextjs-container-build-error-version-status\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", {\n className: indicatorClass\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"small\", {\n className: \"nextjs-container-build-error-version-status\",\n title: title,\n children: text\n }),\n \" \",\n staleness === \"fresh\" || staleness === \"unknown\" ? null : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"a\", {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n href: \"https://nextjs.org/docs/messages/version-staleness\",\n children: \"(learn more)\"\n })\n ]\n });\n} //# sourceMappingURL=VersionStalenessInfo.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9WZXJzaW9uU3RhbGVuZXNzSW5mby9WZXJzaW9uU3RhbGVuZXNzSW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQStEO0FBQ3JDO0FBQ25CLFNBQVNLLHFCQUFxQkMsS0FBSztJQUN0QyxJQUFJLENBQUNBLE9BQU8sT0FBTztJQUNuQixNQUFNLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUUsR0FBR0g7SUFDM0MsSUFBSUksT0FBTztJQUNYLElBQUlDLFFBQVE7SUFDWixJQUFJQyxpQkFBaUI7SUFDckIsT0FBT0w7UUFDSCxLQUFLO1lBQ0RHLE9BQU87WUFDUEMsUUFBUSwyQ0FBMkNILFlBQVk7WUFDL0RJLGlCQUFpQjtZQUNqQjtRQUNKLEtBQUs7UUFDTCxLQUFLO1lBQ0RGLE9BQU8sY0FBY0YsWUFBWTtZQUNqQ0csUUFBUSwrQkFBK0JGLFdBQVc7WUFDbERHLGlCQUFpQjtZQUNqQjtRQUNKLEtBQUs7WUFDRDtnQkFDSUYsT0FBTyxjQUFjRixZQUFZO2dCQUNqQ0csUUFBUSw2Q0FBNkNGLFdBQVc7Z0JBQ2hFRyxpQkFBaUI7Z0JBQ2pCO1lBQ0o7UUFDSixLQUFLO1lBQ0Q7Z0JBQ0lGLE9BQU8sY0FBY0YsWUFBWTtnQkFDakNHLFFBQVEsc0NBQXNDRixXQUFXO2dCQUN6REcsaUJBQWlCO2dCQUNqQjtZQUNKO1FBQ0osS0FBSztRQUNMLEtBQUs7WUFDRDtRQUNKO1lBQ0k7SUFDUjtJQUNBLElBQUksQ0FBQ0YsTUFBTSxPQUFPO0lBQ2xCLE9BQU8sV0FBVyxHQUFHUCx1REFBS0EsQ0FBQyxTQUFTO1FBQ2hDVSxXQUFXO1FBQ1hDLFVBQVU7WUFDTixXQUFXLEdBQUdiLHNEQUFJQSxDQUFDLFFBQVE7Z0JBQ3ZCWSxXQUFXRDtZQUNmO1lBQ0EsV0FBVyxHQUFHWCxzREFBSUEsQ0FBQyxTQUFTO2dCQUN4QlksV0FBVztnQkFDWEYsT0FBT0E7Z0JBQ1BHLFVBQVVKO1lBQ2Q7WUFDQTtZQUNBSCxjQUFjLFdBQVdBLGNBQWMsWUFBWSxPQUFPLFdBQVcsR0FBR04sc0RBQUlBLENBQUMsS0FBSztnQkFDOUVjLFFBQVE7Z0JBQ1JDLEtBQUs7Z0JBQ0xDLE1BQU07Z0JBQ05ILFVBQVU7WUFDZDtTQUNIO0lBQ0w7QUFDSixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9WZXJzaW9uU3RhbGVuZXNzSW5mby9WZXJzaW9uU3RhbGVuZXNzSW5mby5qcz82ZTQ1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgZnVuY3Rpb24gVmVyc2lvblN0YWxlbmVzc0luZm8ocHJvcHMpIHtcbiAgICBpZiAoIXByb3BzKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IHN0YWxlbmVzcywgaW5zdGFsbGVkLCBleHBlY3RlZCB9ID0gcHJvcHM7XG4gICAgbGV0IHRleHQgPSBcIlwiO1xuICAgIGxldCB0aXRsZSA9IFwiXCI7XG4gICAgbGV0IGluZGljYXRvckNsYXNzID0gXCJcIjtcbiAgICBzd2l0Y2goc3RhbGVuZXNzKXtcbiAgICAgICAgY2FzZSBcImZyZXNoXCI6XG4gICAgICAgICAgICB0ZXh0ID0gXCJOZXh0LmpzIGlzIHVwIHRvIGRhdGVcIjtcbiAgICAgICAgICAgIHRpdGxlID0gXCJMYXRlc3QgYXZhaWxhYmxlIHZlcnNpb24gaXMgZGV0ZWN0ZWQgKFwiICsgaW5zdGFsbGVkICsgXCIpLlwiO1xuICAgICAgICAgICAgaW5kaWNhdG9yQ2xhc3MgPSBcImZyZXNoXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInN0YWxlLXBhdGNoXCI6XG4gICAgICAgIGNhc2UgXCJzdGFsZS1taW5vclwiOlxuICAgICAgICAgICAgdGV4dCA9IFwiTmV4dC5qcyAoXCIgKyBpbnN0YWxsZWQgKyBcIikgb3V0IG9mIGRhdGVcIjtcbiAgICAgICAgICAgIHRpdGxlID0gXCJUaGVyZSBpcyBhIG5ld2VyIHZlcnNpb24gKFwiICsgZXhwZWN0ZWQgKyBcIikgYXZhaWxhYmxlLCB1cGdyYWRlIHJlY29tbWVuZGVkISBcIjtcbiAgICAgICAgICAgIGluZGljYXRvckNsYXNzID0gXCJzdGFsZVwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzdGFsZS1tYWpvclwiOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQgPSBcIk5leHQuanMgKFwiICsgaW5zdGFsbGVkICsgXCIpIGlzIG91dGRhdGVkXCI7XG4gICAgICAgICAgICAgICAgdGl0bGUgPSBcIkFuIG91dGRhdGVkIHZlcnNpb24gZGV0ZWN0ZWQgKGxhdGVzdCBpcyBcIiArIGV4cGVjdGVkICsgXCIpLCB1cGdyYWRlIGlzIGhpZ2hseSByZWNvbW1lbmRlZCFcIjtcbiAgICAgICAgICAgICAgICBpbmRpY2F0b3JDbGFzcyA9IFwib3V0ZGF0ZWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBcInN0YWxlLXByZXJlbGVhc2VcIjpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gXCJOZXh0LmpzIChcIiArIGluc3RhbGxlZCArIFwiKSBpcyBvdXRkYXRlZFwiO1xuICAgICAgICAgICAgICAgIHRpdGxlID0gXCJUaGVyZSBpcyBhIG5ld2VyIGNhbmFyeSB2ZXJzaW9uIChcIiArIGV4cGVjdGVkICsgXCIpIGF2YWlsYWJsZSwgcGxlYXNlIHVwZ3JhZGUhIFwiO1xuICAgICAgICAgICAgICAgIGluZGljYXRvckNsYXNzID0gXCJzdGFsZVwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIFwibmV3ZXItdGhhbi1ucG1cIjpcbiAgICAgICAgY2FzZSBcInVua25vd25cIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICghdGV4dCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJzbWFsbFwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzXCIsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGluZGljYXRvckNsYXNzXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInNtYWxsXCIsIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwibmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1c1wiLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGV4dFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBcIiBcIixcbiAgICAgICAgICAgIHN0YWxlbmVzcyA9PT0gXCJmcmVzaFwiIHx8IHN0YWxlbmVzcyA9PT0gXCJ1bmtub3duXCIgPyBudWxsIDogLyojX19QVVJFX18qLyBfanN4KFwiYVwiLCB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBcIl9ibGFua1wiLFxuICAgICAgICAgICAgICAgIHJlbDogXCJub29wZW5lciBub3JlZmVycmVyXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogXCJodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy92ZXJzaW9uLXN0YWxlbmVzc1wiLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBcIihsZWFybiBtb3JlKVwiXG4gICAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVZlcnNpb25TdGFsZW5lc3NJbmZvLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJWZXJzaW9uU3RhbGVuZXNzSW5mbyIsInByb3BzIiwic3RhbGVuZXNzIiwiaW5zdGFsbGVkIiwiZXhwZWN0ZWQiLCJ0ZXh0IiwidGl0bGUiLCJpbmRpY2F0b3JDbGFzcyIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwidGFyZ2V0IiwicmVsIiwiaHJlZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js":
-/*!******************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js ***!
- \******************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VersionStalenessInfo: () => (/* reexport safe */ _VersionStalenessInfo__WEBPACK_IMPORTED_MODULE_1__.VersionStalenessInfo),\n/* harmony export */ styles: () => (/* reexport safe */ _styles__WEBPACK_IMPORTED_MODULE_0__.styles)\n/* harmony export */ });\n/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js\");\n/* harmony import */ var _VersionStalenessInfo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VersionStalenessInfo */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js\");\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9WZXJzaW9uU3RhbGVuZXNzSW5mby9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWtDO0FBQzRCLENBRTlELGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9WZXJzaW9uU3RhbGVuZXNzSW5mby9pbmRleC5qcz83MGVjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHN0eWxlcyB9IGZyb20gXCIuL3N0eWxlc1wiO1xuZXhwb3J0IHsgVmVyc2lvblN0YWxlbmVzc0luZm8gfSBmcm9tIFwiLi9WZXJzaW9uU3RhbGVuZXNzSW5mb1wiO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsic3R5bGVzIiwiVmVyc2lvblN0YWxlbmVzc0luZm8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js":
-/*!*******************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js ***!
- \*******************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n .nextjs-container-build-error-version-status {\\n flex: 1;\\n text-align: right;\\n }\\n .nextjs-container-build-error-version-status small {\\n margin-left: var(--size-gap);\\n font-size: var(--size-font-small);\\n }\\n .nextjs-container-build-error-version-status a {\\n font-size: var(--size-font-small);\\n }\\n .nextjs-container-build-error-version-status span {\\n display: inline-block;\\n width: 10px;\\n height: 10px;\\n border-radius: 5px;\\n background: var(--color-ansi-bright-black);\\n }\\n .nextjs-container-build-error-version-status span.fresh {\\n background: var(--color-ansi-green);\\n }\\n .nextjs-container-build-error-version-status span.stale {\\n background: var(--color-ansi-yellow);\\n }\\n .nextjs-container-build-error-version-status span.outdated {\\n background: var(--color-ansi-red);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_1__.noop)(_templateObject());\n //# sourceMappingURL=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9WZXJzaW9uU3RhbGVuZXNzSW5mby9zdHlsZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9HO0FBQ3BHLFNBQVNFO0lBQ0wsTUFBTUMsT0FBT0YsNkVBQThCQSxDQUFDO1FBQ3hDO0tBQ0g7SUFDREMsa0JBQWtCO1FBQ2QsT0FBT0M7SUFDWDtJQUNBLE9BQU9BO0FBQ1g7QUFDMEQ7QUFDMUQsTUFBTUcsU0FBU0QsNERBQUdBLENBQUNIO0FBQ0QsQ0FFbEIsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1ZlcnNpb25TdGFsZW5lc3NJbmZvL3N0eWxlcy5qcz83MjlkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gYXMgX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIH0gZnJvbSBcIkBzd2MvaGVscGVycy9fL190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZVwiO1xuZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCkge1xuICAgIGNvbnN0IGRhdGEgPSBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UoW1xuICAgICAgICBcIlxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMge1xcbiAgICBmbGV4OiAxO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHNtYWxsIHtcXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgYSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHNwYW4ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHdpZHRoOiAxMHB4O1xcbiAgICBoZWlnaHQ6IDEwcHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtYmxhY2spO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgc3Bhbi5mcmVzaCB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFuc2ktZ3JlZW4pO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgc3Bhbi5zdGFsZSB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFuc2kteWVsbG93KTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHNwYW4ub3V0ZGF0ZWQge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuXCJcbiAgICBdKTtcbiAgICBfdGVtcGxhdGVPYmplY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcbiAgICByZXR1cm4gZGF0YTtcbn1cbmltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiO1xuY29uc3Qgc3R5bGVzID0gY3NzKF90ZW1wbGF0ZU9iamVjdCgpKTtcbmV4cG9ydCB7IHN0eWxlcyB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbIl8iLCJfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UiLCJfdGVtcGxhdGVPYmplY3QiLCJkYXRhIiwibm9vcCIsImNzcyIsInN0eWxlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/get-words-and-whitespaces.js":
-/*!*********************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/get-words-and-whitespaces.js ***!
- \*********************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getWordsAndWhitespaces: () => (/* binding */ getWordsAndWhitespaces)\n/* harmony export */ });\n// Returns true if the given character is a whitespace character, false otherwise.\nfunction isWhitespace(char) {\n return char === \" \" || char === \"\\n\" || char === \"\t\" || char === \"\\r\";\n}\n/**\n * Get sequences of words and whitespaces from a string.\n *\n * e.g. \"Hello world \\n\\n\" -> [\"Hello\", \" \", \"world\", \" \\n\\n\"]\n */ function getWordsAndWhitespaces(text) {\n const wordsAndWhitespaces = [];\n let current = \"\";\n let currentIsWhitespace = false;\n for (const char of text){\n if (current.length === 0) {\n current += char;\n currentIsWhitespace = isWhitespace(char);\n continue;\n }\n const nextIsWhitespace = isWhitespace(char);\n if (currentIsWhitespace === nextIsWhitespace) {\n current += char;\n } else {\n wordsAndWhitespaces.push(current);\n current = char;\n currentIsWhitespace = nextIsWhitespace;\n }\n }\n if (current.length > 0) {\n wordsAndWhitespaces.push(current);\n }\n return wordsAndWhitespaces;\n} //# sourceMappingURL=get-words-and-whitespaces.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9ob3QtbGlua2VkLXRleHQvZ2V0LXdvcmRzLWFuZC13aGl0ZXNwYWNlcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsa0ZBQWtGO0FBQ2xGLFNBQVNBLGFBQWFDLElBQUk7SUFDdEIsT0FBT0EsU0FBUyxPQUFPQSxTQUFTLFFBQVFBLFNBQVMsT0FBT0EsU0FBUztBQUNyRTtBQUNBOzs7O0NBSUMsR0FBVSxTQUFTQyx1QkFBdUJDLElBQUk7SUFDM0MsTUFBTUMsc0JBQXNCLEVBQUU7SUFDOUIsSUFBSUMsVUFBVTtJQUNkLElBQUlDLHNCQUFzQjtJQUMxQixLQUFLLE1BQU1MLFFBQVFFLEtBQUs7UUFDcEIsSUFBSUUsUUFBUUUsTUFBTSxLQUFLLEdBQUc7WUFDdEJGLFdBQVdKO1lBQ1hLLHNCQUFzQk4sYUFBYUM7WUFDbkM7UUFDSjtRQUNBLE1BQU1PLG1CQUFtQlIsYUFBYUM7UUFDdEMsSUFBSUssd0JBQXdCRSxrQkFBa0I7WUFDMUNILFdBQVdKO1FBQ2YsT0FBTztZQUNIRyxvQkFBb0JLLElBQUksQ0FBQ0o7WUFDekJBLFVBQVVKO1lBQ1ZLLHNCQUFzQkU7UUFDMUI7SUFDSjtJQUNBLElBQUlILFFBQVFFLE1BQU0sR0FBRyxHQUFHO1FBQ3BCSCxvQkFBb0JLLElBQUksQ0FBQ0o7SUFDN0I7SUFDQSxPQUFPRDtBQUNYLEVBRUEscURBQXFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL2hvdC1saW5rZWQtdGV4dC9nZXQtd29yZHMtYW5kLXdoaXRlc3BhY2VzLmpzP2Y2M2YiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLlxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNoYXIpIHtcbiAgICByZXR1cm4gY2hhciA9PT0gXCIgXCIgfHwgY2hhciA9PT0gXCJcXG5cIiB8fCBjaGFyID09PSBcIlx0XCIgfHwgY2hhciA9PT0gXCJcXHJcIjtcbn1cbi8qKlxuICogR2V0IHNlcXVlbmNlcyBvZiB3b3JkcyBhbmQgd2hpdGVzcGFjZXMgZnJvbSBhIHN0cmluZy5cbiAqXG4gKiBlLmcuIFwiSGVsbG8gd29ybGQgXFxuXFxuXCIgLT4gW1wiSGVsbG9cIiwgXCIgXCIsIFwid29ybGRcIiwgXCIgXFxuXFxuXCJdXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldFdvcmRzQW5kV2hpdGVzcGFjZXModGV4dCkge1xuICAgIGNvbnN0IHdvcmRzQW5kV2hpdGVzcGFjZXMgPSBbXTtcbiAgICBsZXQgY3VycmVudCA9IFwiXCI7XG4gICAgbGV0IGN1cnJlbnRJc1doaXRlc3BhY2UgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGNoYXIgb2YgdGV4dCl7XG4gICAgICAgIGlmIChjdXJyZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY3VycmVudCArPSBjaGFyO1xuICAgICAgICAgICAgY3VycmVudElzV2hpdGVzcGFjZSA9IGlzV2hpdGVzcGFjZShjaGFyKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRJc1doaXRlc3BhY2UgPSBpc1doaXRlc3BhY2UoY2hhcik7XG4gICAgICAgIGlmIChjdXJyZW50SXNXaGl0ZXNwYWNlID09PSBuZXh0SXNXaGl0ZXNwYWNlKSB7XG4gICAgICAgICAgICBjdXJyZW50ICs9IGNoYXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3b3Jkc0FuZFdoaXRlc3BhY2VzLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgICBjdXJyZW50ID0gY2hhcjtcbiAgICAgICAgICAgIGN1cnJlbnRJc1doaXRlc3BhY2UgPSBuZXh0SXNXaGl0ZXNwYWNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChjdXJyZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgd29yZHNBbmRXaGl0ZXNwYWNlcy5wdXNoKGN1cnJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gd29yZHNBbmRXaGl0ZXNwYWNlcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXdvcmRzLWFuZC13aGl0ZXNwYWNlcy5qcy5tYXAiXSwibmFtZXMiOlsiaXNXaGl0ZXNwYWNlIiwiY2hhciIsImdldFdvcmRzQW5kV2hpdGVzcGFjZXMiLCJ0ZXh0Iiwid29yZHNBbmRXaGl0ZXNwYWNlcyIsImN1cnJlbnQiLCJjdXJyZW50SXNXaGl0ZXNwYWNlIiwibGVuZ3RoIiwibmV4dElzV2hpdGVzcGFjZSIsInB1c2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/get-words-and-whitespaces.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js":
-/*!*************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js ***!
- \*************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HotlinkedText: () => (/* binding */ HotlinkedText)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _get_words_and_whitespaces__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./get-words-and-whitespaces */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/get-words-and-whitespaces.js\");\n\n\n\nconst linkRegex = /https?:\\/\\/[^\\s/$.?#].[^\\s\"]*/i;\nconst HotlinkedText = function HotlinkedText(props) {\n const { text } = props;\n const wordsAndWhitespaces = (0,_get_words_and_whitespaces__WEBPACK_IMPORTED_MODULE_2__.getWordsAndWhitespaces)(text);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: linkRegex.test(text) ? wordsAndWhitespaces.map((word, index)=>{\n if (linkRegex.test(word)) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"a\", {\n href: word,\n children: word\n })\n }, \"link-\" + index);\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), {\n children: word\n }, \"text-\" + index);\n }) : text\n });\n}; //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9ob3QtbGlua2VkLXRleHQvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBdUU7QUFDN0M7QUFDMkM7QUFDckUsTUFBTU0sWUFBWTtBQUNYLE1BQU1DLGdCQUFnQixTQUFTQSxjQUFjQyxLQUFLO0lBQ3JELE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdEO0lBQ2pCLE1BQU1FLHNCQUFzQkwsa0ZBQXNCQSxDQUFDSTtJQUNuRCxPQUFPLFdBQVcsR0FBR1Isc0RBQUlBLENBQUNFLHVEQUFTQSxFQUFFO1FBQ2pDUSxVQUFVTCxVQUFVTSxJQUFJLENBQUNILFFBQVFDLG9CQUFvQkcsR0FBRyxDQUFDLENBQUNDLE1BQU1DO1lBQzVELElBQUlULFVBQVVNLElBQUksQ0FBQ0UsT0FBTztnQkFDdEIsT0FBTyxXQUFXLEdBQUdiLHNEQUFJQSxDQUFDRyx1REFBYyxFQUFFO29CQUN0Q08sVUFBVSxXQUFXLEdBQUdWLHNEQUFJQSxDQUFDLEtBQUs7d0JBQzlCZSxNQUFNRjt3QkFDTkgsVUFBVUc7b0JBQ2Q7Z0JBQ0osR0FBRyxVQUFVQztZQUNqQjtZQUNBLE9BQU8sV0FBVyxHQUFHZCxzREFBSUEsQ0FBQ0csdURBQWMsRUFBRTtnQkFDdENPLFVBQVVHO1lBQ2QsR0FBRyxVQUFVQztRQUNqQixLQUFLTjtJQUNUO0FBQ0osRUFBRSxDQUVGLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9ob3QtbGlua2VkLXRleHQvaW5kZXguanM/NzFlNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRXb3Jkc0FuZFdoaXRlc3BhY2VzIH0gZnJvbSBcIi4vZ2V0LXdvcmRzLWFuZC13aGl0ZXNwYWNlc1wiO1xuY29uc3QgbGlua1JlZ2V4ID0gL2h0dHBzPzpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc1wiXSovaTtcbmV4cG9ydCBjb25zdCBIb3RsaW5rZWRUZXh0ID0gZnVuY3Rpb24gSG90bGlua2VkVGV4dChwcm9wcykge1xuICAgIGNvbnN0IHsgdGV4dCB9ID0gcHJvcHM7XG4gICAgY29uc3Qgd29yZHNBbmRXaGl0ZXNwYWNlcyA9IGdldFdvcmRzQW5kV2hpdGVzcGFjZXModGV4dCk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChfRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGxpbmtSZWdleC50ZXN0KHRleHQpID8gd29yZHNBbmRXaGl0ZXNwYWNlcy5tYXAoKHdvcmQsIGluZGV4KT0+e1xuICAgICAgICAgICAgaWYgKGxpbmtSZWdleC50ZXN0KHdvcmQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChSZWFjdC5GcmFnbWVudCwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFwiYVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmOiB3b3JkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHdvcmRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9LCBcImxpbmstXCIgKyBpbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFJlYWN0LkZyYWdtZW50LCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IHdvcmRcbiAgICAgICAgICAgIH0sIFwidGV4dC1cIiArIGluZGV4KTtcbiAgICAgICAgfSkgOiB0ZXh0XG4gICAgfSk7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiUmVhY3QiLCJnZXRXb3Jkc0FuZFdoaXRlc3BhY2VzIiwibGlua1JlZ2V4IiwiSG90bGlua2VkVGV4dCIsInByb3BzIiwidGV4dCIsIndvcmRzQW5kV2hpdGVzcGFjZXMiLCJjaGlsZHJlbiIsInRlc3QiLCJtYXAiLCJ3b3JkIiwiaW5kZXgiLCJocmVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/BuildError.js":
-/*!*************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/BuildError.js ***!
- \*************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BuildError: () => (/* binding */ BuildError),\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_Dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Dialog */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\n/* harmony import */ var _components_Overlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Overlay */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/index.js\");\n/* harmony import */ var _components_Terminal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Terminal */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/index.js\");\n/* harmony import */ var _components_VersionStalenessInfo__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n .nextjs-container-build-error-header {\\n display: flex;\\n align-items: center;\\n }\\n .nextjs-container-build-error-header > h4 {\\n line-height: 1.5;\\n margin: 0;\\n padding: 0;\\n }\\n\\n .nextjs-container-build-error-body footer {\\n margin-top: var(--size-gap);\\n }\\n .nextjs-container-build-error-body footer p {\\n margin: 0;\\n }\\n\\n .nextjs-container-build-error-body small {\\n color: #757575;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\n\n\n\n\n\n\nconst BuildError = function BuildError(param) {\n let { message, versionInfo } = param;\n const noop = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(()=>{}, []);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Overlay__WEBPACK_IMPORTED_MODULE_4__.Overlay, {\n fixed: true,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__.Dialog, {\n type: \"error\",\n \"aria-labelledby\": \"nextjs__container_build_error_label\",\n \"aria-describedby\": \"nextjs__container_build_error_desc\",\n onClose: noop,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__.DialogContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__.DialogHeader, {\n className: \"nextjs-container-build-error-header\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"h4\", {\n id: \"nextjs__container_build_error_label\",\n children: \"Failed to compile\"\n }),\n versionInfo ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_VersionStalenessInfo__WEBPACK_IMPORTED_MODULE_6__.VersionStalenessInfo, {\n ...versionInfo\n }) : null\n ]\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__.DialogBody, {\n className: \"nextjs-container-build-error-body\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Terminal__WEBPACK_IMPORTED_MODULE_5__.Terminal, {\n content: message\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"footer\", {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"p\", {\n id: \"nextjs__container_build_error_desc\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"small\", {\n children: \"This error occurred during the build process and can only be dismissed by fixing the error.\"\n })\n })\n })\n ]\n })\n ]\n })\n })\n });\n};\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_7__.noop)(_templateObject()); //# sourceMappingURL=BuildError.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL0J1aWxkRXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBb0c7QUFDcEcsU0FBU0U7SUFDTCxNQUFNQyxPQUFPRiw2RUFBOEJBLENBQUM7UUFDeEM7S0FDSDtJQUNEQyxrQkFBa0I7UUFDZCxPQUFPQztJQUNYO0lBQ0EsT0FBT0E7QUFDWDtBQUMrRDtBQUNoQztBQUN3RDtBQUN2QztBQUNFO0FBQ3dCO0FBQ25CO0FBQ2hELE1BQU1lLGFBQWEsU0FBU0EsV0FBV0MsS0FBSztJQUMvQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxFQUFFLEdBQUdGO0lBQy9CLE1BQU1ILE9BQU9SLDhDQUFpQixDQUFDLEtBQUssR0FBRyxFQUFFO0lBQ3pDLE9BQU8sV0FBVyxHQUFHSCxzREFBSUEsQ0FBQ1Esd0RBQU9BLEVBQUU7UUFDL0JVLE9BQU87UUFDUEMsVUFBVSxXQUFXLEdBQUduQixzREFBSUEsQ0FBQ0ksc0RBQU1BLEVBQUU7WUFDakNnQixNQUFNO1lBQ04sbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQkMsU0FBU1Y7WUFDVFEsVUFBVSxXQUFXLEdBQUdqQix1REFBS0EsQ0FBQ0ksNkRBQWFBLEVBQUU7Z0JBQ3pDYSxVQUFVO29CQUNOLFdBQVcsR0FBR2pCLHVEQUFLQSxDQUFDSyw0REFBWUEsRUFBRTt3QkFDOUJlLFdBQVc7d0JBQ1hILFVBQVU7NEJBQ04sV0FBVyxHQUFHbkIsc0RBQUlBLENBQUMsTUFBTTtnQ0FDckJ1QixJQUFJO2dDQUNKSixVQUFVOzRCQUNkOzRCQUNBSCxjQUFjLFdBQVcsR0FBR2hCLHNEQUFJQSxDQUFDVSxrRkFBb0JBLEVBQUU7Z0NBQ25ELEdBQUdNLFdBQVc7NEJBQ2xCLEtBQUs7eUJBQ1I7b0JBQ0w7b0JBQ0EsV0FBVyxHQUFHZCx1REFBS0EsQ0FBQ0csMERBQVVBLEVBQUU7d0JBQzVCaUIsV0FBVzt3QkFDWEgsVUFBVTs0QkFDTixXQUFXLEdBQUduQixzREFBSUEsQ0FBQ1MsMERBQVFBLEVBQUU7Z0NBQ3pCZSxTQUFTVDs0QkFDYjs0QkFDQSxXQUFXLEdBQUdmLHNEQUFJQSxDQUFDLFVBQVU7Z0NBQ3pCbUIsVUFBVSxXQUFXLEdBQUduQixzREFBSUEsQ0FBQyxLQUFLO29DQUM5QnVCLElBQUk7b0NBQ0pKLFVBQVUsV0FBVyxHQUFHbkIsc0RBQUlBLENBQUMsU0FBUzt3Q0FDbENtQixVQUFVO29DQUNkO2dDQUNKOzRCQUNKO3lCQUNIO29CQUNMO2lCQUNIO1lBQ0w7UUFDSjtJQUNKO0FBQ0osRUFBRTtBQUNLLE1BQU1NLFNBQVNiLDREQUFHQSxDQUFDZixtQkFBbUIsQ0FFN0Msc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb250YWluZXIvQnVpbGRFcnJvci5qcz8yOWZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gYXMgX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIH0gZnJvbSBcIkBzd2MvaGVscGVycy9fL190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZVwiO1xuZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCkge1xuICAgIGNvbnN0IGRhdGEgPSBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UoW1xuICAgICAgICBcIlxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItaGVhZGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWhlYWRlciA+IGg0IHtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBmb290ZXIge1xcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1ib2R5IGZvb3RlciBwIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBzbWFsbCB7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgfVxcblwiXG4gICAgXSk7XG4gICAgX3RlbXBsYXRlT2JqZWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH07XG4gICAgcmV0dXJuIGRhdGE7XG59XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBEaWFsb2csIERpYWxvZ0JvZHksIERpYWxvZ0NvbnRlbnQsIERpYWxvZ0hlYWRlciB9IGZyb20gXCIuLi9jb21wb25lbnRzL0RpYWxvZ1wiO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gXCIuLi9jb21wb25lbnRzL092ZXJsYXlcIjtcbmltcG9ydCB7IFRlcm1pbmFsIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvVGVybWluYWxcIjtcbmltcG9ydCB7IFZlcnNpb25TdGFsZW5lc3NJbmZvIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm9cIjtcbmltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSBcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiO1xuZXhwb3J0IGNvbnN0IEJ1aWxkRXJyb3IgPSBmdW5jdGlvbiBCdWlsZEVycm9yKHBhcmFtKSB7XG4gICAgbGV0IHsgbWVzc2FnZSwgdmVyc2lvbkluZm8gfSA9IHBhcmFtO1xuICAgIGNvbnN0IG5vb3AgPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e30sIFtdKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KE92ZXJsYXksIHtcbiAgICAgICAgZml4ZWQ6IHRydWUsXG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goRGlhbG9nLCB7XG4gICAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2xhYmVsXCIsXG4gICAgICAgICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogXCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9kZXNjXCIsXG4gICAgICAgICAgICBvbkNsb3NlOiBub29wLFxuICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeHMoRGlhbG9nQ29udGVudCwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoRGlhbG9nSGVhZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwibmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1oZWFkZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiaDRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9sYWJlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogXCJGYWlsZWQgdG8gY29tcGlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbkluZm8gPyAvKiNfX1BVUkVfXyovIF9qc3goVmVyc2lvblN0YWxlbmVzc0luZm8sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udmVyc2lvbkluZm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoRGlhbG9nQm9keSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcIm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goVGVybWluYWwsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogbWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcImZvb3RlclwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goXCJwXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2Rlc2NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goXCJzbWFsbFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFwiVGhpcyBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MgYW5kIGNhbiBvbmx5IGJlIGRpc21pc3NlZCBieSBmaXhpbmcgdGhlIGVycm9yLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9KTtcbn07XG5leHBvcnQgY29uc3Qgc3R5bGVzID0gY3NzKF90ZW1wbGF0ZU9iamVjdCgpKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QnVpbGRFcnJvci5qcy5tYXAiXSwibmFtZXMiOlsiXyIsIl90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSIsIl90ZW1wbGF0ZU9iamVjdCIsImRhdGEiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJEaWFsb2ciLCJEaWFsb2dCb2R5IiwiRGlhbG9nQ29udGVudCIsIkRpYWxvZ0hlYWRlciIsIk92ZXJsYXkiLCJUZXJtaW5hbCIsIlZlcnNpb25TdGFsZW5lc3NJbmZvIiwibm9vcCIsImNzcyIsIkJ1aWxkRXJyb3IiLCJwYXJhbSIsIm1lc3NhZ2UiLCJ2ZXJzaW9uSW5mbyIsInVzZUNhbGxiYWNrIiwiZml4ZWQiLCJjaGlsZHJlbiIsInR5cGUiLCJvbkNsb3NlIiwiY2xhc3NOYW1lIiwiaWQiLCJjb250ZW50Iiwic3R5bGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/BuildError.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/Errors.js":
-/*!*********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/Errors.js ***!
- \*********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Errors: () => (/* binding */ Errors),\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error-overlay-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/error-overlay-reducer.js\");\n/* harmony import */ var _components_Dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Dialog */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\n/* harmony import */ var _components_LeftRightDialogHeader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/LeftRightDialogHeader */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js\");\n/* harmony import */ var _components_Overlay__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Overlay */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/index.js\");\n/* harmony import */ var _components_Toast__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/Toast */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/index.js\");\n/* harmony import */ var _helpers_getErrorByType__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/getErrorByType */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/getErrorByType.js\");\n/* harmony import */ var _helpers_nodeStackFrames__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/nodeStackFrames */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n/* harmony import */ var _icons_CloseIcon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../icons/CloseIcon */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/icons/CloseIcon.js\");\n/* harmony import */ var _RuntimeError__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./RuntimeError */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\");\n/* harmony import */ var _components_VersionStalenessInfo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\n/* harmony import */ var _components_hot_linked_text__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../components/hot-linked-text */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: 0;\\n margin-top: calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-font-small);\\n color: var(--color-accents-1);\\n margin-left: var(--size-gap-double);\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > p {\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n font-weight: bold;\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n color: var(--color-ansi-red);\\n white-space: pre-wrap;\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n }\\n .nextjs-container-errors-header > p > a {\\n color: var(--color-ansi-red);\\n }\\n\\n .nextjs-container-errors-body > h2:not(:first-child) {\\n margin-top: calc(var(--size-gap-double) + var(--size-gap));\\n }\\n .nextjs-container-errors-body > h2 {\\n margin-bottom: var(--size-gap);\\n font-size: var(--size-font-big);\\n }\\n\\n .nextjs-toast-errors-parent {\\n cursor: pointer;\\n transition: transform 0.2s ease;\\n }\\n .nextjs-toast-errors-parent:hover {\\n transform: scale(1.1);\\n }\\n .nextjs-toast-errors {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n }\\n .nextjs-toast-errors > svg {\\n margin-right: var(--size-gap);\\n }\\n .nextjs-toast-errors-hide-button {\\n margin-left: var(--size-gap-triple);\\n border: none;\\n background: none;\\n color: var(--color-ansi-bright-white);\\n padding: 0;\\n transition: opacity 0.25s ease;\\n opacity: 0.7;\\n }\\n .nextjs-toast-errors-hide-button:hover {\\n opacity: 1;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getErrorSignature(ev) {\n const { event } = ev;\n switch(event.type){\n case _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_3__.ACTION_UNHANDLED_ERROR:\n case _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_3__.ACTION_UNHANDLED_REJECTION:\n {\n return event.reason.name + \"::\" + event.reason.message + \"::\" + event.reason.stack;\n }\n default:\n {}\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = event;\n return \"\";\n}\nconst Errors = function Errors(param) {\n let { errors, initialDisplayState, versionInfo } = param;\n const [lookups, setLookups] = react__WEBPACK_IMPORTED_MODULE_2__.useState({});\n const [readyErrors, nextError] = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>{\n let ready = [];\n let next = null;\n // Ensure errors are displayed in the order they occurred in:\n for(let idx = 0; idx < errors.length; ++idx){\n const e = errors[idx];\n const { id } = e;\n if (id in lookups) {\n ready.push(lookups[id]);\n continue;\n }\n // Check for duplicate errors\n if (idx > 0) {\n const prev = errors[idx - 1];\n if (getErrorSignature(prev) === getErrorSignature(e)) {\n continue;\n }\n }\n next = e;\n break;\n }\n return [\n ready,\n next\n ];\n }, [\n errors,\n lookups\n ]);\n const isLoading = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>{\n return readyErrors.length < 1 && Boolean(errors.length);\n }, [\n errors.length,\n readyErrors.length\n ]);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(()=>{\n if (nextError == null) {\n return;\n }\n let mounted = true;\n (0,_helpers_getErrorByType__WEBPACK_IMPORTED_MODULE_8__.getErrorByType)(nextError).then((resolved)=>{\n // We don't care if the desired error changed while we were resolving,\n // thus we're not tracking it using a ref. Once the work has been done,\n // we'll store it.\n if (mounted) {\n setLookups((m)=>({\n ...m,\n [resolved.id]: resolved\n }));\n }\n }, ()=>{\n // TODO: handle this, though an edge case\n });\n return ()=>{\n mounted = false;\n };\n }, [\n nextError\n ]);\n const [displayState, setDisplayState] = react__WEBPACK_IMPORTED_MODULE_2__.useState(initialDisplayState);\n const [activeIdx, setActiveIndex] = react__WEBPACK_IMPORTED_MODULE_2__.useState(0);\n const previous = react__WEBPACK_IMPORTED_MODULE_2__.useCallback((e)=>{\n e == null ? void 0 : e.preventDefault();\n setActiveIndex((v)=>Math.max(0, v - 1));\n }, []);\n const next = react__WEBPACK_IMPORTED_MODULE_2__.useCallback((e)=>{\n e == null ? void 0 : e.preventDefault();\n setActiveIndex((v)=>Math.max(0, Math.min(readyErrors.length - 1, v + 1)));\n }, [\n readyErrors.length\n ]);\n var _readyErrors_activeIdx;\n const activeError = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>(_readyErrors_activeIdx = readyErrors[activeIdx]) != null ? _readyErrors_activeIdx : null, [\n activeIdx,\n readyErrors\n ]);\n // Reset component state when there are no errors to be displayed.\n // This should never happen, but lets handle it.\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(()=>{\n if (errors.length < 1) {\n setLookups({});\n setDisplayState(\"hidden\");\n setActiveIndex(0);\n }\n }, [\n errors.length\n ]);\n const minimize = react__WEBPACK_IMPORTED_MODULE_2__.useCallback((e)=>{\n e == null ? void 0 : e.preventDefault();\n setDisplayState(\"minimized\");\n }, []);\n const hide = react__WEBPACK_IMPORTED_MODULE_2__.useCallback((e)=>{\n e == null ? void 0 : e.preventDefault();\n setDisplayState(\"hidden\");\n }, []);\n const fullscreen = react__WEBPACK_IMPORTED_MODULE_2__.useCallback((e)=>{\n e == null ? void 0 : e.preventDefault();\n setDisplayState(\"fullscreen\");\n }, []);\n // This component shouldn't be rendered with no errors, but if it is, let's\n // handle it gracefully by rendering nothing.\n if (errors.length < 1 || activeError == null) {\n return null;\n }\n if (isLoading) {\n // TODO: better loading state\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Overlay__WEBPACK_IMPORTED_MODULE_6__.Overlay, {});\n }\n if (displayState === \"hidden\") {\n return null;\n }\n if (displayState === \"minimized\") {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Toast__WEBPACK_IMPORTED_MODULE_7__.Toast, {\n className: \"nextjs-toast-errors-parent\",\n onClick: fullscreen,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(\"div\", {\n className: \"nextjs-toast-errors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"10\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"line\", {\n x1: \"12\",\n y1: \"8\",\n x2: \"12\",\n y2: \"12\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"line\", {\n x1: \"12\",\n y1: \"16\",\n x2: \"12.01\",\n y2: \"16\"\n })\n ]\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(\"span\", {\n children: [\n readyErrors.length,\n \" error\",\n readyErrors.length > 1 ? \"s\" : \"\"\n ]\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"button\", {\n \"data-nextjs-toast-errors-hide-button\": true,\n className: \"nextjs-toast-errors-hide-button\",\n type: \"button\",\n onClick: (e)=>{\n e.stopPropagation();\n hide();\n },\n \"aria-label\": \"Hide Errors\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_icons_CloseIcon__WEBPACK_IMPORTED_MODULE_11__.CloseIcon, {})\n })\n ]\n })\n });\n }\n const isServerError = [\n \"server\",\n \"edge-server\"\n ].includes((0,_helpers_nodeStackFrames__WEBPACK_IMPORTED_MODULE_9__.getErrorSource)(activeError.error) || \"\");\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Overlay__WEBPACK_IMPORTED_MODULE_6__.Overlay, {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog, {\n type: \"error\",\n \"aria-labelledby\": \"nextjs__container_errors_label\",\n \"aria-describedby\": \"nextjs__container_errors_desc\",\n onClose: isServerError ? undefined : minimize,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_components_Dialog__WEBPACK_IMPORTED_MODULE_4__.DialogContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_components_Dialog__WEBPACK_IMPORTED_MODULE_4__.DialogHeader, {\n className: \"nextjs-container-errors-header\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_components_LeftRightDialogHeader__WEBPACK_IMPORTED_MODULE_5__.LeftRightDialogHeader, {\n previous: activeIdx > 0 ? previous : null,\n next: activeIdx < readyErrors.length - 1 ? next : null,\n close: isServerError ? undefined : minimize,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(\"small\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"span\", {\n children: activeIdx + 1\n }),\n \" of\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"span\", {\n children: readyErrors.length\n }),\n \" unhandled error\",\n readyErrors.length < 2 ? \"\" : \"s\"\n ]\n }),\n versionInfo ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_VersionStalenessInfo__WEBPACK_IMPORTED_MODULE_13__.VersionStalenessInfo, {\n ...versionInfo\n }) : null\n ]\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"h1\", {\n id: \"nextjs__container_errors_label\",\n children: isServerError ? \"Server Error\" : \"Unhandled Runtime Error\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(\"p\", {\n id: \"nextjs__container_errors_desc\",\n children: [\n activeError.error.name,\n \":\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_hot_linked_text__WEBPACK_IMPORTED_MODULE_14__.HotlinkedText, {\n text: activeError.error.message\n })\n ]\n }),\n isServerError ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"small\", {\n children: \"This error happened while generating the page. Any console logs will be displayed in the terminal window.\"\n })\n }) : undefined\n ]\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Dialog__WEBPACK_IMPORTED_MODULE_4__.DialogBody, {\n className: \"nextjs-container-errors-body\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_RuntimeError__WEBPACK_IMPORTED_MODULE_12__.RuntimeError, {\n error: activeError\n }, activeError.id.toString())\n })\n ]\n })\n })\n });\n};\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_10__.noop)(_templateObject()); //# sourceMappingURL=Errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL0Vycm9ycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBb0c7QUFDcEcsU0FBU0U7SUFDTCxNQUFNQyxPQUFPRiw2RUFBOEJBLENBQUM7UUFDeEM7S0FDSDtJQUNEQyxrQkFBa0I7UUFDZCxPQUFPQztJQUNYO0lBQ0EsT0FBT0E7QUFDWDtBQUMrRDtBQUNoQztBQUMrRDtBQUNQO0FBQ1g7QUFDNUI7QUFDSjtBQUNlO0FBQ0M7QUFDTDtBQUNSO0FBQ0Q7QUFDNEI7QUFDWjtBQUM5RCxTQUFTdUIsa0JBQWtCQyxFQUFFO0lBQ3pCLE1BQU0sRUFBRUMsS0FBSyxFQUFFLEdBQUdEO0lBQ2xCLE9BQU9DLE1BQU1DLElBQUk7UUFDYixLQUFLcEIsMEVBQXNCQTtRQUMzQixLQUFLQyw4RUFBMEJBO1lBQzNCO2dCQUNJLE9BQU9rQixNQUFNRSxNQUFNLENBQUNDLElBQUksR0FBRyxPQUFPSCxNQUFNRSxNQUFNLENBQUNFLE9BQU8sR0FBRyxPQUFPSixNQUFNRSxNQUFNLENBQUNHLEtBQUs7WUFDdEY7UUFDSjtZQUNJLENBQUM7SUFDVDtJQUNBLDZEQUE2RDtJQUM3RCxNQUFNakMsSUFBSTRCO0lBQ1YsT0FBTztBQUNYO0FBQ08sTUFBTU0sU0FBUyxTQUFTQSxPQUFPQyxLQUFLO0lBQ3ZDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxtQkFBbUIsRUFBRUMsV0FBVyxFQUFFLEdBQUdIO0lBQ25ELE1BQU0sQ0FBQ0ksU0FBU0MsV0FBVyxHQUFHaEMsMkNBQWMsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sQ0FBQ2tDLGFBQWFDLFVBQVUsR0FBR25DLDBDQUFhLENBQUM7UUFDM0MsSUFBSXFDLFFBQVEsRUFBRTtRQUNkLElBQUlDLE9BQU87UUFDWCw2REFBNkQ7UUFDN0QsSUFBSSxJQUFJQyxNQUFN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Q1gsR0FBR0EsWUFBWXRCLEVBQUUsQ0FBQ3FELFFBQVE7b0JBQzlCO2lCQUNIO1lBQ0w7UUFDSjtJQUNKO0FBQ0osRUFBRTtBQUNLLE1BQU1DLFNBQVNuRiw2REFBR0EsQ0FBQ25CLG1CQUFtQixDQUU3QyxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9FcnJvcnMuanM/ODM4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIGFzIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSB9IGZyb20gXCJAc3djL2hlbHBlcnMvXy9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2VcIjtcbmZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpIHtcbiAgICBjb25zdCBkYXRhID0gX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlKFtcbiAgICAgICAgXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBoMSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LWJpZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnZ2VyKTtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XFxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCA+IHNwYW4ge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IHAge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnKTtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBkaXYgPiBzbWFsbCB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gcCA+IGEge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgPiBoMjpub3QoOmZpcnN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGgyIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1iaWcpO1xcbiAgfVxcblxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50IHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50OmhvdmVyIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycyA+IHN2ZyB7XFxuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc2l6ZS1nYXApO1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtaGlkZS1idXR0b24ge1xcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXAtdHJpcGxlKTtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XFxuICAgIG9wYWNpdHk6IDAuNztcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLWhpZGUtYnV0dG9uOmhvdmVyIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG5cIlxuICAgIF0pO1xuICAgIF90ZW1wbGF0ZU9iamVjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xufVxuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQUNUSU9OX1VOSEFORExFRF9FUlJPUiwgQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04gfSBmcm9tIFwiLi4vZXJyb3Itb3ZlcmxheS1yZWR1Y2VyXCI7XG5pbXBvcnQgeyBEaWFsb2csIERpYWxvZ0JvZHksIERpYWxvZ0NvbnRlbnQsIERpYWxvZ0hlYWRlciB9IGZyb20gXCIuLi9jb21wb25lbnRzL0RpYWxvZ1wiO1xuaW1wb3J0IHsgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyXCI7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvT3ZlcmxheVwiO1xuaW1wb3J0IHsgVG9hc3QgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9Ub2FzdFwiO1xuaW1wb3J0IHsgZ2V0RXJyb3JCeVR5cGUgfSBmcm9tIFwiLi4vaGVscGVycy9nZXRFcnJvckJ5VHlwZVwiO1xuaW1wb3J0IHsgZ2V0RXJyb3JTb3VyY2UgfSBmcm9tIFwiLi4vaGVscGVycy9ub2RlU3RhY2tGcmFtZXNcIjtcbmltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSBcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgQ2xvc2VJY29uIH0gZnJvbSBcIi4uL2ljb25zL0Nsb3NlSWNvblwiO1xuaW1wb3J0IHsgUnVudGltZUVycm9yIH0gZnJvbSBcIi4vUnVudGltZUVycm9yXCI7XG5pbXBvcnQgeyBWZXJzaW9uU3RhbGVuZXNzSW5mbyB9IGZyb20gXCIuLi9jb21wb25lbnRzL1ZlcnNpb25TdGFsZW5lc3NJbmZvXCI7XG5pbXBvcnQgeyBIb3RsaW5rZWRUZXh0IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaG90LWxpbmtlZC10ZXh0XCI7XG5mdW5jdGlvbiBnZXRFcnJvclNpZ25hdHVyZShldikge1xuICAgIGNvbnN0IHsgZXZlbnQgfSA9IGV2O1xuICAgIHN3aXRjaChldmVudC50eXBlKXtcbiAgICAgICAgY2FzZSBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SOlxuICAgICAgICBjYXNlIEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5yZWFzb24ubmFtZSArIFwiOjpcIiArIGV2ZW50LnJlYXNvbi5tZXNzYWdlICsgXCI6OlwiICsgZXZlbnQucmVhc29uLnN0YWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAge31cbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNvbnN0IF8gPSBldmVudDtcbiAgICByZXR1cm4gXCJcIjtcbn1cbmV4cG9ydCBjb25zdCBFcnJvcnMgPSBmdW5jdGlvbiBFcnJvcnMocGFyYW0pIHtcbiAgICBsZXQgeyBlcnJvcnMsIGluaXRpYWxEaXNwbGF5U3RhdGUsIHZlcnNpb25JbmZvIH0gPSBwYXJhbTtcbiAgICBjb25zdCBbbG9va3Vwcywgc2V0TG9va3Vwc10gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3JlYWR5RXJyb3JzLCBuZXh0RXJyb3JdID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICBsZXQgcmVhZHkgPSBbXTtcbiAgICAgICAgbGV0IG5leHQgPSBudWxsO1xuICAgICAgICAvLyBFbnN1cmUgZXJyb3JzIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIG9yZGVyIHRoZXkgb2NjdXJyZWQgaW46XG4gICAgICAgIGZvcihsZXQgaWR4ID0gMDsgaWR4IDwgZXJyb3JzLmxlbmd0aDsgKytpZHgpe1xuICAgICAgICAgICAgY29uc3QgZSA9IGVycm9yc1tpZHhdO1xuICAgICAgICAgICAgY29uc3QgeyBpZCB9ID0gZTtcbiAgICAgICAgICAgIGlmIChpZCBpbiBsb29rdXBzKSB7XG4gICAgICAgICAgICAgICAgcmVhZHkucHVzaChsb29rdXBzW2lkXSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIGVycm9yc1xuICAgICAgICAgICAgaWYgKGlkeCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gZXJyb3JzW2lkeCAtIDFdO1xuICAgICAgICAgICAgICAgIGlmIChnZXRFcnJvclNpZ25hdHVyZShwcmV2KSA9PT0gZ2V0RXJyb3JTaWduYXR1cmUoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dCA9IGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgcmVhZHksXG4gICAgICAgICAgICBuZXh0XG4gICAgICAgIF07XG4gICAgfSwgW1xuICAgICAgICBlcnJvcnMsXG4gICAgICAgIGxvb2t1cHNcbiAgICBdKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBSZWFjdC51c2VNZW1vKCgpPT57XG4gICAgICAgIHJldHVybiByZWFkeUVycm9ycy5sZW5ndGggPCAxICYmIEJvb2xlYW4oZXJyb3JzLmxlbmd0aCk7XG4gICAgfSwgW1xuICAgICAgICBlcnJvcnMubGVuZ3RoLFxuICAgICAgICByZWFkeUVycm9ycy5sZW5ndGhcbiAgICBdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKG5leHRFcnJvciA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1vdW50ZWQgPSB0cnVlO1xuICAgICAgICBnZXRFcnJvckJ5VHlwZShuZXh0RXJyb3IpLnRoZW4oKHJlc29sdmVkKT0+e1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgY2FyZSBpZiB0aGUgZGVzaXJlZCBlcnJvciBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgcmVzb2x2aW5nLFxuICAgICAgICAgICAgLy8gdGh1cyB3ZSdyZSBub3QgdHJhY2tpbmcgaXQgdXNpbmcgYSByZWYuIE9uY2UgdGhlIHdvcmsgaGFzIGJlZW4gZG9uZSxcbiAgICAgICAgICAgIC8vIHdlJ2xsIHN0b3JlIGl0LlxuICAgICAgICAgICAgaWYgKG1vdW50ZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRMb29rdXBzKChtKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLm0sXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVzb2x2ZWQuaWRdOiByZXNvbHZlZFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sICgpPT57XG4gICAgICAgIC8vIFRPRE86IGhhbmRsZSB0aGlzLCB0aG91Z2ggYW4gZWRnZSBjYXNlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIG1vdW50ZWQgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIG5leHRFcnJvclxuICAgIF0pO1xuICAgIGNvbnN0IFtkaXNwbGF5U3RhdGUsIHNldERpc3BsYXlTdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZShpbml0aWFsRGlzcGxheVN0YXRlKTtcbiAgICBjb25zdCBbYWN0aXZlSWR4LCBzZXRBY3RpdmVJbmRleF0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBwcmV2aW91cyA9IFJlYWN0LnVzZUNhbGxiYWNrKChlKT0+e1xuICAgICAgICBlID09IG51bGwgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KCh2KT0+TWF0aC5tYXgoMCwgdiAtIDEpKTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgbmV4dCA9IFJlYWN0LnVzZUNhbGxiYWNrKChlKT0+e1xuICAgICAgICBlID09IG51bGwgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KCh2KT0+TWF0aC5tYXgoMCwgTWF0aC5taW4ocmVhZHlFcnJvcnMubGVuZ3RoIC0gMSwgdiArIDEpKSk7XG4gICAgfSwgW1xuICAgICAgICByZWFkeUVycm9ycy5sZW5ndGhcbiAgICBdKTtcbiAgICB2YXIgX3JlYWR5RXJyb3JzX2FjdGl2ZUlkeDtcbiAgICBjb25zdCBhY3RpdmVFcnJvciA9IFJlYWN0LnVzZU1lbW8oKCk9PihfcmVhZHlFcnJvcnNfYWN0aXZlSWR4ID0gcmVhZHlFcnJvcnNbYWN0aXZlSWR4XSkgIT0gbnVsbCA/IF9yZWFkeUVycm9yc19hY3RpdmVJZHggOiBudWxsLCBbXG4gICAgICAgIGFjdGl2ZUlkeCxcbiAgICAgICAgcmVhZHlFcnJvcnNcbiAgICBdKTtcbiAgICAvLyBSZXNldCBjb21wb25lbnQgc3RhdGUgd2hlbiB0aGVyZSBhcmUgbm8gZXJyb3JzIHRvIGJlIGRpc3BsYXllZC5cbiAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBsZXRzIGhhbmRsZSBpdC5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICBzZXRMb29rdXBzKHt9KTtcbiAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZShcImhpZGRlblwiKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KDApO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBlcnJvcnMubGVuZ3RoXG4gICAgXSk7XG4gICAgY29uc3QgbWluaW1pemUgPSBSZWFjdC51c2VDYWxsYmFjaygoZSk9PntcbiAgICAgICAgZSA9PSBudWxsID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXREaXNwbGF5U3RhdGUoXCJtaW5pbWl6ZWRcIik7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhpZGUgPSBSZWFjdC51c2VDYWxsYmFjaygoZSk9PntcbiAgICAgICAgZSA9PSBudWxsID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXREaXNwbGF5U3RhdGUoXCJoaWRkZW5cIik7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGZ1bGxzY3JlZW4gPSBSZWFjdC51c2VDYWxsYmFjaygoZSk9PntcbiAgICAgICAgZSA9PSBudWxsID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXREaXNwbGF5U3RhdGUoXCJmdWxsc2NyZWVuXCIpO1xuICAgIH0sIFtdKTtcbiAgICAvLyBUaGlzIGNvbXBvbmVudCBzaG91bGRuJ3QgYmUgcmVuZGVyZWQgd2l0aCBubyBlcnJvcnMsIGJ1dCBpZiBpdCBpcywgbGV0J3NcbiAgICAvLyBoYW5kbGUgaXQgZ3JhY2VmdWxseSBieSByZW5kZXJpbmcgbm90aGluZy5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA8IDEgfHwgYWN0aXZlRXJyb3IgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGlzTG9hZGluZykge1xuICAgICAgICAvLyBUT0RPOiBiZXR0ZXIgbG9hZGluZyBzdGF0ZVxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KE92ZXJsYXksIHt9KTtcbiAgICB9XG4gICAgaWYgKGRpc3BsYXlTdGF0ZSA9PT0gXCJoaWRkZW5cIikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGRpc3BsYXlTdGF0ZSA9PT0gXCJtaW5pbWl6ZWRcIikge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFRvYXN0LCB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IFwibmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnRcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bGxzY3JlZW4sXG4gICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4cyhcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcIm5leHRqcy10b2FzdC1lcnJvcnNcIixcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKFwic3ZnXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIyNFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjI0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IFwiY3VycmVudENvbG9yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogXCIyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbjogXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJjaXJjbGVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeDogXCIxMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeTogXCIxMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByOiBcIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJsaW5lXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDE6IFwiMTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IFwiOFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MjogXCIxMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MjogXCIxMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwibGluZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgxOiBcIjEyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkxOiBcIjE2XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyOiBcIjEyLjAxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkyOiBcIjE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4cyhcInNwYW5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkeUVycm9ycy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkeUVycm9ycy5sZW5ndGggPiAxID8gXCJzXCIgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJidXR0b25cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkYXRhLW5leHRqcy10b2FzdC1lcnJvcnMtaGlkZS1idXR0b25cIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJuZXh0anMtdG9hc3QtZXJyb3JzLWhpZGUtYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiSGlkZSBFcnJvcnNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goQ2xvc2VJY29uLCB7fSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgaXNTZXJ2ZXJFcnJvciA9IFtcbiAgICAgICAgXCJzZXJ2ZXJcIixcbiAgICAgICAgXCJlZGdlLXNlcnZlclwiXG4gICAgXS5pbmNsdWRlcyhnZXRFcnJvclNvdXJjZShhY3RpdmVFcnJvci5lcnJvcikgfHwgXCJcIik7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChPdmVybGF5LCB7XG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goRGlhbG9nLCB7XG4gICAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiLFxuICAgICAgICAgICAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IFwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2NcIixcbiAgICAgICAgICAgIG9uQ2xvc2U6IGlzU2VydmVyRXJyb3IgPyB1bmRlZmluZWQgOiBtaW5pbWl6ZSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3hzKERpYWxvZ0NvbnRlbnQsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKERpYWxvZ0hlYWRlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcIm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKExlZnRSaWdodERpYWxvZ0hlYWRlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91czogYWN0aXZlSWR4ID4gMCA/IHByZXZpb3VzIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogYWN0aXZlSWR4IDwgcmVhZHlFcnJvcnMubGVuZ3RoIC0gMSA/IG5leHQgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTogaXNTZXJ2ZXJFcnJvciA/IHVuZGVmaW5lZCA6IG1pbmltaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4cyhcInNtYWxsXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBhY3RpdmVJZHggKyAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBvZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogcmVhZHlFcnJvcnMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiB1bmhhbmRsZWQgZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZHlFcnJvcnMubGVuZ3RoIDwgMiA/IFwiXCIgOiBcInNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbkluZm8gPyAvKiNfX1BVUkVfXyovIF9qc3goVmVyc2lvblN0YWxlbmVzc0luZm8sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi52ZXJzaW9uSW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJoMVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogaXNTZXJ2ZXJFcnJvciA/IFwiU2VydmVyIEVycm9yXCIgOiBcIlVuaGFuZGxlZCBSdW50aW1lIEVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKFwicFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVFcnJvci5lcnJvci5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI6XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChIb3RsaW5rZWRUZXh0LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogYWN0aXZlRXJyb3IuZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VydmVyRXJyb3IgPyAvKiNfX1BVUkVfXyovIF9qc3goXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFwic21hbGxcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFwiVGhpcyBlcnJvciBoYXBwZW5lZCB3aGlsZSBnZW5lcmF0aW5nIHRoZSBwYWdlLiBBbnkgY29uc29sZSBsb2dzIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB0ZXJtaW5hbCB3aW5kb3cuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KERpYWxvZ0JvZHksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFJ1bnRpbWVFcnJvciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBhY3RpdmVFcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgYWN0aXZlRXJyb3IuaWQudG9TdHJpbmcoKSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBzdHlsZXMgPSBjc3MoX3RlbXBsYXRlT2JqZWN0KCkpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1FcnJvcnMuanMubWFwIl0sIm5hbWVzIjpbIl8iLCJfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UiLCJfdGVtcGxhdGVPYmplY3QiLCJkYXRhIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwiQUNUSU9OX1VOSEFORExFRF9FUlJPUiIsIkFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OIiwiRGlhbG9nIiwiRGlhbG9nQm9keSIsIkRpYWxvZ0NvbnRlbnQiLCJEaWFsb2dIZWFkZXIiLCJMZWZ0UmlnaHREaWFsb2dIZWFkZXIiLCJPdmVybGF5IiwiVG9hc3QiLCJnZXRFcnJvckJ5VHlwZSIsImdldEVycm9yU291cmNlIiwibm9vcCIsImNzcyIsIkNsb3NlSWNvbiIsIlJ1bnRpbWVFcnJvciIsIlZlcnNpb25TdGFsZW5lc3NJbmZvIiwiSG90bGlua2VkVGV4dCIsImdldEVycm9yU2lnbmF0dXJlIiwiZXYiLCJldmVudCIsInR5cGUiLCJyZWFzb24iLCJuYW1lIiwibWVzc2FnZSIsInN0YWNrIiwiRXJyb3JzIiwicGFyYW0iLCJlcnJvcnMiLCJpbml0aWFsRGlzcGxheVN0YXRlIiwidmVyc2lvbkluZm8iLCJsb29rdXBzIiwic2V0TG9va3VwcyIsInVzZVN0YXRlIiwicmVhZHlFcnJvcnMiLCJuZXh0RXJyb3IiLCJ1c2VNZW1vIiwicmVhZHkiLCJuZXh0IiwiaWR4IiwibGVuZ3RoIiwiZSIsImlkIiwicHVzaCIsInByZXYiLCJpc0xvYWRpbmciLCJCb29sZWFuIiwidXNlRWZmZWN0IiwibW91bnRlZCIsInRoZW4iLCJyZXNvbHZlZCIsIm0iLCJkaXNwbGF5U3RhdGUiLCJzZXREaXNwbGF5U3RhdGUiLCJhY3RpdmVJZHgiLCJzZXRBY3RpdmVJbmRleCIsInByZXZpb3VzIiwidXNlQ2FsbGJhY2siLCJwcmV2ZW50RGVmYXVsdCIsInYiLCJNYXRoIiwibWF4IiwibWluIiwiX3JlYWR5RXJyb3JzX2FjdGl2ZUlkeCIsImFjdGl2ZUVycm9yIiwibWluaW1pemUiLCJoaWRlIiwiZnVsbHNjcmVlbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJjaGlsZHJlbiIsInhtbG5zIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiY3giLCJjeSIsInIiLCJ4MSIsInkxIiwieDIiLCJ5MiIsInN0b3BQcm9wYWdhdGlvbiIsImlzU2VydmVyRXJyb3IiLCJpbmNsdWRlcyIsImVycm9yIiwib25DbG9zZSIsInVuZGVmaW5lZCIsImNsb3NlIiwidGV4dCIsInRvU3RyaW5nIiwic3R5bGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/Errors.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RootLayoutError.js":
-/*!******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RootLayoutError.js ***!
- \******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RootLayoutError: () => (/* binding */ RootLayoutError),\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_Dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Dialog */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\n/* harmony import */ var _components_Overlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Overlay */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/index.js\");\n/* harmony import */ var _components_Terminal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Terminal */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/index.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n .nextjs-container-root-layout-error-header > h4 {\\n line-height: 1.5;\\n margin: 0;\\n padding: 0;\\n }\\n\\n .nextjs-container-root-layout-error-body footer {\\n margin-top: var(--size-gap);\\n }\\n .nextjs-container-root-layout-error-body footer p {\\n margin: 0;\\n }\\n\\n .nextjs-container-root-layout-error-body small {\\n color: #757575;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\n\n\n\n\n\nconst RootLayoutError = function BuildError(param) {\n let { missingTags } = param;\n const message = \"Please make sure to include the following tags in your root layout: <html>, <body>.\\n\\n\" + (\"Missing required root layout tag\" + (missingTags.length === 1 ? \"\" : \"s\") + \": \") + missingTags.join(\", \");\n const noop = react__WEBPACK_IMPORTED_MODULE_2___default().useCallback(()=>{}, []);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Overlay__WEBPACK_IMPORTED_MODULE_4__.Overlay, {\n fixed: true,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__.Dialog, {\n type: \"error\",\n \"aria-labelledby\": \"nextjs__container_root_layout_error_label\",\n \"aria-describedby\": \"nextjs__container_root_layout_error_desc\",\n onClose: noop,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__.DialogContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__.DialogHeader, {\n className: \"nextjs-container-root-layout-error-header\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"h4\", {\n id: \"nextjs__container_root_layout_error_label\",\n children: \"Missing required tags\"\n })\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__.DialogBody, {\n className: \"nextjs-container-root-layout-error-body\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_Terminal__WEBPACK_IMPORTED_MODULE_5__.Terminal, {\n content: message\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"footer\", {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"p\", {\n id: \"nextjs__container_root_layout_error_desc\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"small\", {\n children: \"This error and can only be dismissed by providing all required tags.\"\n })\n })\n })\n ]\n })\n ]\n })\n })\n });\n};\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_6__.noop)(_templateObject()); //# sourceMappingURL=RootLayoutError.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1Jvb3RMYXlvdXRFcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQW9HO0FBQ3BHLFNBQVNFO0lBQ0wsTUFBTUMsT0FBT0YsNkVBQThCQSxDQUFDO1FBQ3hDO0tBQ0g7SUFDREMsa0JBQWtCO1FBQ2QsT0FBT0M7SUFDWDtJQUNBLE9BQU9BO0FBQ1g7QUFDK0Q7QUFDckM7QUFDNkQ7QUFDdkM7QUFDRTtBQUNLO0FBQ2hELE1BQU1jLGtCQUFrQixTQUFTQyxXQUFXQyxLQUFLO0lBQ3BELElBQUksRUFBRUMsV0FBVyxFQUFFLEdBQUdEO0lBQ3RCLE1BQU1FLFVBQVUsNEZBQTZGLHNDQUFzQ0QsQ0FBQUEsWUFBWUUsTUFBTSxLQUFLLElBQUksS0FBSyxHQUFFLElBQUssSUFBRyxJQUFLRixZQUFZRyxJQUFJLENBQUM7SUFDbk4sTUFBTVIsT0FBT1Asd0RBQWlCLENBQUMsS0FBSyxHQUFHLEVBQUU7SUFDekMsT0FBTyxXQUFXLEdBQUdILHNEQUFJQSxDQUFDUSx3REFBT0EsRUFBRTtRQUMvQlksT0FBTztRQUNQQyxVQUFVLFdBQVcsR0FBR3JCLHNEQUFJQSxDQUFDSSxzREFBTUEsRUFBRTtZQUNqQ2tCLE1BQU07WUFDTixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCQyxTQUFTYjtZQUNUVyxVQUFVLFdBQVcsR0FBR25CLHVEQUFLQSxDQUFDSSw2REFBYUEsRUFBRTtnQkFDekNlLFVBQVU7b0JBQ04sV0FBVyxHQUFHckIsc0RBQUlBLENBQUNPLDREQUFZQSxFQUFFO3dCQUM3QmlCLFdBQVc7d0JBQ1hILFVBQVUsV0FBVyxHQUFHckIsc0RBQUlBLENBQUMsTUFBTTs0QkFDL0J5QixJQUFJOzRCQUNKSixVQUFVO3dCQUNkO29CQUNKO29CQUNBLFdBQVcsR0FBR25CLHVEQUFLQSxDQUFDRywwREFBVUEsRUFBRTt3QkFDNUJtQixXQUFXO3dCQUNYSCxVQUFVOzRCQUNOLFdBQVcsR0FBR3JCLHNEQUFJQSxDQUFDUywwREFBUUEsRUFBRTtnQ0FDekJpQixTQUFTVjs0QkFDYjs0QkFDQSxXQUFXLEdBQUdoQixzREFBSUEsQ0FBQyxVQUFVO2dDQUN6QnFCLFVBQVUsV0FBVyxHQUFHckIsc0RBQUlBLENBQUMsS0FBSztvQ0FDOUJ5QixJQUFJO29DQUNKSixVQUFVLFdBQVcsR0FBR3JCLHNEQUFJQSxDQUFDLFNBQVM7d0NBQ2xDcUIsVUFBVTtvQ0FDZDtnQ0FDSjs0QkFDSjt5QkFDSDtvQkFDTDtpQkFDSDtZQUNMO1FBQ0o7SUFDSjtBQUNKLEVBQUU7QUFDSyxNQUFNTSxTQUFTaEIsNERBQUdBLENBQUNkLG1CQUFtQixDQUU3QywyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9Sb290TGF5b3V0RXJyb3IuanM/YzVjMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIGFzIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSB9IGZyb20gXCJAc3djL2hlbHBlcnMvXy9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2VcIjtcbmZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpIHtcbiAgICBjb25zdCBkYXRhID0gX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlKFtcbiAgICAgICAgXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLXJvb3QtbGF5b3V0LWVycm9yLWhlYWRlciA+IGg0IHtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItcm9vdC1sYXlvdXQtZXJyb3ItYm9keSBmb290ZXIge1xcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1yb290LWxheW91dC1lcnJvci1ib2R5IGZvb3RlciBwIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItcm9vdC1sYXlvdXQtZXJyb3ItYm9keSBzbWFsbCB7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgfVxcblwiXG4gICAgXSk7XG4gICAgX3RlbXBsYXRlT2JqZWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH07XG4gICAgcmV0dXJuIGRhdGE7XG59XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgRGlhbG9nLCBEaWFsb2dCb2R5LCBEaWFsb2dDb250ZW50LCBEaWFsb2dIZWFkZXIgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9EaWFsb2dcIjtcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9PdmVybGF5XCI7XG5pbXBvcnQgeyBUZXJtaW5hbCB9IGZyb20gXCIuLi9jb21wb25lbnRzL1Rlcm1pbmFsXCI7XG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIjtcbmV4cG9ydCBjb25zdCBSb290TGF5b3V0RXJyb3IgPSBmdW5jdGlvbiBCdWlsZEVycm9yKHBhcmFtKSB7XG4gICAgbGV0IHsgbWlzc2luZ1RhZ3MgfSA9IHBhcmFtO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBcIlBsZWFzZSBtYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgZm9sbG93aW5nIHRhZ3MgaW4geW91ciByb290IGxheW91dDogPGh0bWw+LCA8Ym9keT4uXFxuXFxuXCIgKyAoXCJNaXNzaW5nIHJlcXVpcmVkIHJvb3QgbGF5b3V0IHRhZ1wiICsgKG1pc3NpbmdUYWdzLmxlbmd0aCA9PT0gMSA/IFwiXCIgOiBcInNcIikgKyBcIjogXCIpICsgbWlzc2luZ1RhZ3Muam9pbihcIiwgXCIpO1xuICAgIGNvbnN0IG5vb3AgPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e30sIFtdKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KE92ZXJsYXksIHtcbiAgICAgICAgZml4ZWQ6IHRydWUsXG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goRGlhbG9nLCB7XG4gICAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX3Jvb3RfbGF5b3V0X2Vycm9yX2xhYmVsXCIsXG4gICAgICAgICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogXCJuZXh0anNfX2NvbnRhaW5lcl9yb290X2xheW91dF9lcnJvcl9kZXNjXCIsXG4gICAgICAgICAgICBvbkNsb3NlOiBub29wLFxuICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeHMoRGlhbG9nQ29udGVudCwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChEaWFsb2dIZWFkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLXJvb3QtbGF5b3V0LWVycm9yLWhlYWRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChcImg0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJuZXh0anNfX2NvbnRhaW5lcl9yb290X2xheW91dF9lcnJvcl9sYWJlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBcIk1pc3NpbmcgcmVxdWlyZWQgdGFnc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4cyhEaWFsb2dCb2R5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwibmV4dGpzLWNvbnRhaW5lci1yb290LWxheW91dC1lcnJvci1ib2R5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChUZXJtaW5hbCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBtZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiZm9vdGVyXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChcInBcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwibmV4dGpzX19jb250YWluZXJfcm9vdF9sYXlvdXRfZXJyb3JfZGVzY1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChcInNtYWxsXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogXCJUaGlzIGVycm9yIGFuZCBjYW4gb25seSBiZSBkaXNtaXNzZWQgYnkgcHJvdmlkaW5nIGFsbCByZXF1aXJlZCB0YWdzLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9KTtcbn07XG5leHBvcnQgY29uc3Qgc3R5bGVzID0gY3NzKF90ZW1wbGF0ZU9iamVjdCgpKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Um9vdExheW91dEVycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJfIiwiX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIiwiX3RlbXBsYXRlT2JqZWN0IiwiZGF0YSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJSZWFjdCIsIkRpYWxvZyIsIkRpYWxvZ0JvZHkiLCJEaWFsb2dDb250ZW50IiwiRGlhbG9nSGVhZGVyIiwiT3ZlcmxheSIsIlRlcm1pbmFsIiwibm9vcCIsImNzcyIsIlJvb3RMYXlvdXRFcnJvciIsIkJ1aWxkRXJyb3IiLCJwYXJhbSIsIm1pc3NpbmdUYWdzIiwibWVzc2FnZSIsImxlbmd0aCIsImpvaW4iLCJ1c2VDYWxsYmFjayIsImZpeGVkIiwiY2hpbGRyZW4iLCJ0eXBlIiwib25DbG9zZSIsImNsYXNzTmFtZSIsImlkIiwiY29udGVudCIsInN0eWxlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RootLayoutError.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js":
-/*!******************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js ***!
- \******************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CallStackFrame: () => (/* binding */ CallStackFrame)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers_stack_frame__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/stack-frame */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\n/* harmony import */ var _helpers_use_open_in_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\n\n\n\n\nconst CallStackFrame = function CallStackFrame(param) {\n let { frame } = param;\n var _frame_originalStackFrame;\n // TODO: ability to expand resolved frames\n // TODO: render error or external indicator\n const f = (_frame_originalStackFrame = frame.originalStackFrame) != null ? _frame_originalStackFrame : frame.sourceStackFrame;\n const hasSource = Boolean(frame.originalCodeFrame);\n const open = (0,_helpers_use_open_in_editor__WEBPACK_IMPORTED_MODULE_3__.useOpenInEditor)(hasSource ? {\n file: f.file,\n lineNumber: f.lineNumber,\n column: f.column\n } : undefined);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n \"data-nextjs-call-stack-frame\": true,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"h3\", {\n \"data-nextjs-frame-expanded\": Boolean(frame.expanded),\n children: f.methodName\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n \"data-has-source\": hasSource ? \"true\" : undefined,\n tabIndex: hasSource ? 10 : undefined,\n role: hasSource ? \"link\" : undefined,\n onClick: open,\n title: hasSource ? \"Click to open in your editor\" : undefined,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", {\n children: (0,_helpers_stack_frame__WEBPACK_IMPORTED_MODULE_2__.getFrameSource)(f)\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\n })\n ]\n })\n ]\n })\n ]\n });\n}; //# sourceMappingURL=CallStackFrame.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9DYWxsU3RhY2tGcmFtZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBK0Q7QUFDckM7QUFDaUM7QUFDUTtBQUM1RCxNQUFNTyxpQkFBaUIsU0FBU0EsZUFBZUMsS0FBSztJQUN2RCxJQUFJLEVBQUVDLEtBQUssRUFBRSxHQUFHRDtJQUNoQixJQUFJRTtJQUNKLDBDQUEwQztJQUMxQywyQ0FBMkM7SUFDM0MsTUFBTUMsSUFBSSxDQUFDRCw0QkFBNEJELE1BQU1HLGtCQUFrQixLQUFLLE9BQU9GLDRCQUE0QkQsTUFBTUksZ0JBQWdCO0lBQzdILE1BQU1DLFlBQVlDLFFBQVFOLE1BQU1PLGlCQUFpQjtJQUNqRCxNQUFNQyxPQUFPWCw0RUFBZUEsQ0FBQ1EsWUFBWTtRQUNyQ0ksTUFBTVAsRUFBRU8sSUFBSTtRQUNaQyxZQUFZUixFQUFFUSxVQUFVO1FBQ3hCQyxRQUFRVCxFQUFFUyxNQUFNO0lBQ3BCLElBQUlDO0lBQ0osT0FBTyxXQUFXLEdBQUdsQix1REFBS0EsQ0FBQyxPQUFPO1FBQzlCLGdDQUFnQztRQUNoQ21CLFVBQVU7WUFDTixXQUFXLEdBQUdyQixzREFBSUEsQ0FBQyxNQUFNO2dCQUNyQiw4QkFBOEJjLFFBQVFOLE1BQU1jLFFBQVE7Z0JBQ3BERCxVQUFVWCxFQUFFYSxVQUFVO1lBQzFCO1lBQ0EsV0FBVyxHQUFHckIsdURBQUtBLENBQUMsT0FBTztnQkFDdkIsbUJBQW1CVyxZQUFZLFNBQVNPO2dCQUN4Q0ksVUFBVVgsWUFBWSxLQUFLTztnQkFDM0JLLE1BQU1aLFlBQVksU0FBU087Z0JBQzNCTSxTQUFTVjtnQkFDVFcsT0FBT2QsWUFBWSxpQ0FBaUNPO2dCQUNwREMsVUFBVTtvQkFDTixXQUFXLEdBQUdyQixzREFBSUEsQ0FBQyxRQUFRO3dCQUN2QnFCLFVBQVVqQixvRUFBY0EsQ0FBQ007b0JBQzdCO29CQUNBLFdBQVcsR0FBR1IsdURBQUtBLENBQUMsT0FBTzt3QkFDdkIwQixPQUFPO3dCQUNQQyxTQUFTO3dCQUNUQyxNQUFNO3dCQUNOQyxRQUFRO3dCQUNSQyxhQUFhO3dCQUNiQyxlQUFlO3dCQUNmQyxnQkFBZ0I7d0JBQ2hCYixVQUFVOzRCQUNOLFdBQVcsR0FBR3JCLHNEQUFJQSxDQUFDLFFBQVE7Z0NBQ3ZCbUMsR0FBRzs0QkFDUDs0QkFDQSxXQUFXLEdBQUduQyxzREFBSUEsQ0FBQyxZQUFZO2dDQUMzQm9DLFFBQVE7NEJBQ1o7NEJBQ0EsV0FBVyxHQUFHcEMsc0RBQUlBLENBQUMsUUFBUTtnQ0FDdkJxQyxJQUFJO2dDQUNKQyxJQUFJO2dDQUNKQyxJQUFJO2dDQUNKQyxJQUFJOzRCQUNSO3lCQUNIO29CQUNMO2lCQUNIO1lBQ0w7U0FDSDtJQUNMO0FBQ0osRUFBRSxDQUVGLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9DYWxsU3RhY2tGcmFtZS5qcz9iMjI5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRGcmFtZVNvdXJjZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3N0YWNrLWZyYW1lXCI7XG5pbXBvcnQgeyB1c2VPcGVuSW5FZGl0b3IgfSBmcm9tIFwiLi4vLi4vaGVscGVycy91c2Utb3Blbi1pbi1lZGl0b3JcIjtcbmV4cG9ydCBjb25zdCBDYWxsU3RhY2tGcmFtZSA9IGZ1bmN0aW9uIENhbGxTdGFja0ZyYW1lKHBhcmFtKSB7XG4gICAgbGV0IHsgZnJhbWUgfSA9IHBhcmFtO1xuICAgIHZhciBfZnJhbWVfb3JpZ2luYWxTdGFja0ZyYW1lO1xuICAgIC8vIFRPRE86IGFiaWxpdHkgdG8gZXhwYW5kIHJlc29sdmVkIGZyYW1lc1xuICAgIC8vIFRPRE86IHJlbmRlciBlcnJvciBvciBleHRlcm5hbCBpbmRpY2F0b3JcbiAgICBjb25zdCBmID0gKF9mcmFtZV9vcmlnaW5hbFN0YWNrRnJhbWUgPSBmcmFtZS5vcmlnaW5hbFN0YWNrRnJhbWUpICE9IG51bGwgPyBfZnJhbWVfb3JpZ2luYWxTdGFja0ZyYW1lIDogZnJhbWUuc291cmNlU3RhY2tGcmFtZTtcbiAgICBjb25zdCBoYXNTb3VyY2UgPSBCb29sZWFuKGZyYW1lLm9yaWdpbmFsQ29kZUZyYW1lKTtcbiAgICBjb25zdCBvcGVuID0gdXNlT3BlbkluRWRpdG9yKGhhc1NvdXJjZSA/IHtcbiAgICAgICAgZmlsZTogZi5maWxlLFxuICAgICAgICBsaW5lTnVtYmVyOiBmLmxpbmVOdW1iZXIsXG4gICAgICAgIGNvbHVtbjogZi5jb2x1bW5cbiAgICB9IDogdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhcImRpdlwiLCB7XG4gICAgICAgIFwiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZVwiOiB0cnVlLFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiaDNcIiwge1xuICAgICAgICAgICAgICAgIFwiZGF0YS1uZXh0anMtZnJhbWUtZXhwYW5kZWRcIjogQm9vbGVhbihmcmFtZS5leHBhbmRlZCksXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGYubWV0aG9kTmFtZVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICBcImRhdGEtaGFzLXNvdXJjZVwiOiBoYXNTb3VyY2UgPyBcInRydWVcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB0YWJJbmRleDogaGFzU291cmNlID8gMTAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcm9sZTogaGFzU291cmNlID8gXCJsaW5rXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgb25DbGljazogb3BlbixcbiAgICAgICAgICAgICAgICB0aXRsZTogaGFzU291cmNlID8gXCJDbGljayB0byBvcGVuIGluIHlvdXIgZWRpdG9yXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogZ2V0RnJhbWVTb3VyY2UoZilcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJzdmdcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBcIjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInBhdGhcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkOiBcIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJwb2x5bGluZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50czogXCIxNSAzIDIxIDMgMjEgOVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwibGluZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgxOiBcIjEwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkxOiBcIjE0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyOiBcIjIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkyOiBcIjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgIH0pO1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q2FsbFN0YWNrRnJhbWUuanMubWFwIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJSZWFjdCIsImdldEZyYW1lU291cmNlIiwidXNlT3BlbkluRWRpdG9yIiwiQ2FsbFN0YWNrRnJhbWUiLCJwYXJhbSIsImZyYW1lIiwiX2ZyYW1lX29yaWdpbmFsU3RhY2tGcmFtZSIsImYiLCJvcmlnaW5hbFN0YWNrRnJhbWUiLCJzb3VyY2VTdGFja0ZyYW1lIiwiaGFzU291cmNlIiwiQm9vbGVhbiIsIm9yaWdpbmFsQ29kZUZyYW1lIiwib3BlbiIsImZpbGUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwidW5kZWZpbmVkIiwiY2hpbGRyZW4iLCJleHBhbmRlZCIsIm1ldGhvZE5hbWUiLCJ0YWJJbmRleCIsInJvbGUiLCJvbkNsaWNrIiwidGl0bGUiLCJ4bWxucyIsInZpZXdCb3giLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJkIiwicG9pbnRzIiwieDEiLCJ5MSIsIngyIiwieTIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/ComponentStackFrameRow.js":
-/*!**************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/ComponentStackFrameRow.js ***!
- \**************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ComponentStackFrameRow: () => (/* binding */ ComponentStackFrameRow)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers_use_open_in_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\n\n\n\nfunction EditorLink(param) {\n let { children, componentStackFrame: { file, column, lineNumber } } = param;\n const open = (0,_helpers_use_open_in_editor__WEBPACK_IMPORTED_MODULE_2__.useOpenInEditor)({\n file,\n column,\n lineNumber\n });\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n tabIndex: 10,\n role: \"link\",\n onClick: open,\n title: \"Click to open in your editor\",\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\n })\n ]\n })\n ]\n });\n}\nfunction formatLineNumber(lineNumber, column) {\n if (!column) {\n return lineNumber;\n }\n return lineNumber + \":\" + column;\n}\nfunction LocationLine(param) {\n let { componentStackFrame } = param;\n const { file, lineNumber, column } = componentStackFrame;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n file,\n \" \",\n lineNumber ? \"(\" + formatLineNumber(lineNumber, column) + \")\" : \"\"\n ]\n });\n}\nfunction SourceLocation(param) {\n let { componentStackFrame } = param;\n const { file, canOpenInEditor } = componentStackFrame;\n if (file && canOpenInEditor) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(EditorLink, {\n componentStackFrame: componentStackFrame,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(LocationLine, {\n componentStackFrame: componentStackFrame\n })\n })\n });\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(LocationLine, {\n componentStackFrame: componentStackFrame\n })\n });\n}\nfunction ComponentStackFrameRow(param) {\n let { componentStackFrame } = param;\n const { component } = componentStackFrame;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n \"data-nextjs-component-stack-frame\": true,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"h3\", {\n children: component\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SourceLocation, {\n componentStackFrame: componentStackFrame\n })\n ]\n });\n} //# sourceMappingURL=ComponentStackFrameRow.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9Db21wb25lbnRTdGFja0ZyYW1lUm93LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNGO0FBQzVEO0FBQ3lDO0FBQ25FLFNBQVNRLFdBQVdDLEtBQUs7SUFDckIsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsVUFBVSxFQUFFLEVBQUUsR0FBR0w7SUFDdEUsTUFBTU0sT0FBT1IsNEVBQWVBLENBQUM7UUFDekJLO1FBQ0FDO1FBQ0FDO0lBQ0o7SUFDQSxPQUFPLFdBQVcsR0FBR1gsdURBQUtBLENBQUMsT0FBTztRQUM5QmEsVUFBVTtRQUNWQyxNQUFNO1FBQ05DLFNBQVNIO1FBQ1RJLE9BQU87UUFDUFQsVUFBVTtZQUNOQTtZQUNBLFdBQVcsR0FBR1AsdURBQUtBLENBQUMsT0FBTztnQkFDdkJpQixPQUFPO2dCQUNQQyxTQUFTO2dCQUNUQyxNQUFNO2dCQUNOQyxRQUFRO2dCQUNSQyxhQUFhO2dCQUNiQyxlQUFlO2dCQUNmQyxnQkFBZ0I7Z0JBQ2hCaEIsVUFBVTtvQkFDTixXQUFXLEdBQUdULHNEQUFJQSxDQUFDLFFBQVE7d0JBQ3ZCMEIsR0FBRztvQkFDUDtvQkFDQSxXQUFXLEdBQUcxQixzREFBSUEsQ0FBQyxZQUFZO3dCQUMzQjJCLFFBQVE7b0JBQ1o7b0JBQ0EsV0FBVyxHQUFHM0Isc0RBQUlBLENBQUMsUUFBUTt3QkFDdkI0QixJQUFJO3dCQUNKQyxJQUFJO3dCQUNKQyxJQUFJO3dCQUNKQyxJQUFJO29CQUNSO2lCQUNIO1lBQ0w7U0FDSDtJQUNMO0FBQ0o7QUFDQSxTQUFTQyxpQkFBaUJuQixVQUFVLEVBQUVELE1BQU07SUFDeEMsSUFBSSxDQUFDQSxRQUFRO1FBQ1QsT0FBT0M7SUFDWDtJQUNBLE9BQU9BLGFBQWEsTUFBTUQ7QUFDOUI7QUFDQSxTQUFTcUIsYUFBYXpCLEtBQUs7SUFDdkIsSUFBSSxFQUFFRSxtQkFBbUIsRUFBRSxHQUFHRjtJQUM5QixNQUFNLEVBQUVHLElBQUksRUFBRUUsVUFBVSxFQUFFRCxNQUFNLEVBQUUsR0FBR0Y7SUFDckMsT0FBTyxXQUFXLEdBQUdSLHVEQUFLQSxDQUFDRSx1REFBU0EsRUFBRTtRQUNsQ0ssVUFBVTtZQUNORTtZQUNBO1lBQ0FFLGFBQWEsTUFBTW1CLGlCQUFpQm5CLFlBQVlELFVBQVUsTUFBTTtTQUNuRTtJQUNMO0FBQ0o7QUFDQSxTQUFTc0IsZUFBZTFCLEtBQUs7SUFDekIsSUFBSSxFQUFFRSxtQkFBbUIsRUFBRSxHQUFHRjtJQUM5QixNQUFNLEVBQUVHLElBQUksRUFBRXdCLGVBQWUsRUFBRSxHQUFHekI7SUFDbEMsSUFBSUMsUUFBUXdCLGlCQUFpQjtRQUN6QixPQUFPLFdBQVcsR0FBR25DLHNEQUFJQSxDQUFDTyxZQUFZO1lBQ2xDRyxxQkFBcUJBO1lBQ3JCRCxVQUFVLFdBQVcsR0FBR1Qsc0RBQUlBLENBQUMsUUFBUTtnQkFDakNTLFVBQVUsV0FBVyxHQUFHVCxzREFBSUEsQ0FBQ2lDLGNBQWM7b0JBQ3ZDdkIscUJBQXFCQTtnQkFDekI7WUFDSjtRQUNKO0lBQ0o7SUFDQSxPQUFPLFdBQVcsR0FBR1Ysc0RBQUlBLENBQUMsT0FBTztRQUM3QlMsVUFBVSxXQUFXLEdBQUdULHNEQUFJQSxDQUFDaUMsY0FBYztZQUN2Q3ZCLHFCQUFxQkE7UUFDekI7SUFDSjtBQUNKO0FBQ08sU0FBUzBCLHVCQUF1QjVCLEtBQUs7SUFDeEMsSUFBSSxFQUFFRSxtQkFBbUIsRUFBRSxHQUFHRjtJQUM5QixNQUFNLEVBQUU2QixTQUFTLEVBQUUsR0FBRzNCO0lBQ3RCLE9BQU8sV0FBVyxHQUFHUix1REFBS0EsQ0FBQyxPQUFPO1FBQzlCLHFDQUFxQztRQUNyQ08sVUFBVTtZQUNOLFdBQVcsR0FBR1Qsc0RBQUlBLENBQUMsTUFBTTtnQkFDckJTLFVBQVU0QjtZQUNkO1lBQ0EsV0FBVyxHQUFHckMsc0RBQUlBLENBQUNrQyxnQkFBZ0I7Z0JBQy9CeEIscUJBQXFCQTtZQUN6QjtTQUNIO0lBQ0w7QUFDSixFQUVBLGtEQUFrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9Db21wb25lbnRTdGFja0ZyYW1lUm93LmpzPzA2YzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlT3BlbkluRWRpdG9yIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvdXNlLW9wZW4taW4tZWRpdG9yXCI7XG5mdW5jdGlvbiBFZGl0b3JMaW5rKHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4sIGNvbXBvbmVudFN0YWNrRnJhbWU6IHsgZmlsZSwgY29sdW1uLCBsaW5lTnVtYmVyIH0gfSA9IHBhcmFtO1xuICAgIGNvbnN0IG9wZW4gPSB1c2VPcGVuSW5FZGl0b3Ioe1xuICAgICAgICBmaWxlLFxuICAgICAgICBjb2x1bW4sXG4gICAgICAgIGxpbmVOdW1iZXJcbiAgICB9KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhcImRpdlwiLCB7XG4gICAgICAgIHRhYkluZGV4OiAxMCxcbiAgICAgICAgcm9sZTogXCJsaW5rXCIsXG4gICAgICAgIG9uQ2xpY2s6IG9wZW4sXG4gICAgICAgIHRpdGxlOiBcIkNsaWNrIHRvIG9wZW4gaW4geW91ciBlZGl0b3JcIixcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4cyhcInN2Z1wiLCB7XG4gICAgICAgICAgICAgICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICAgICAgICAgICAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgICAgICAgICAgICAgIGZpbGw6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogXCIyXCIsXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCIsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwicGF0aFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkOiBcIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInBvbHlsaW5lXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50czogXCIxNSAzIDIxIDMgMjEgOVwiXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJsaW5lXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHgxOiBcIjEwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB5MTogXCIxNFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgeDI6IFwiMjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHkyOiBcIjNcIlxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGZvcm1hdExpbmVOdW1iZXIobGluZU51bWJlciwgY29sdW1uKSB7XG4gICAgaWYgKCFjb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIGxpbmVOdW1iZXI7XG4gICAgfVxuICAgIHJldHVybiBsaW5lTnVtYmVyICsgXCI6XCIgKyBjb2x1bW47XG59XG5mdW5jdGlvbiBMb2NhdGlvbkxpbmUocGFyYW0pIHtcbiAgICBsZXQgeyBjb21wb25lbnRTdGFja0ZyYW1lIH0gPSBwYXJhbTtcbiAgICBjb25zdCB7IGZpbGUsIGxpbmVOdW1iZXIsIGNvbHVtbiB9ID0gY29tcG9uZW50U3RhY2tGcmFtZTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICBcIiBcIixcbiAgICAgICAgICAgIGxpbmVOdW1iZXIgPyBcIihcIiArIGZvcm1hdExpbmVOdW1iZXIobGluZU51bWJlciwgY29sdW1uKSArIFwiKVwiIDogXCJcIlxuICAgICAgICBdXG4gICAgfSk7XG59XG5mdW5jdGlvbiBTb3VyY2VMb2NhdGlvbihwYXJhbSkge1xuICAgIGxldCB7IGNvbXBvbmVudFN0YWNrRnJhbWUgfSA9IHBhcmFtO1xuICAgIGNvbnN0IHsgZmlsZSwgY2FuT3BlbkluRWRpdG9yIH0gPSBjb21wb25lbnRTdGFja0ZyYW1lO1xuICAgIGlmIChmaWxlICYmIGNhbk9wZW5JbkVkaXRvcikge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KEVkaXRvckxpbmssIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrRnJhbWU6IGNvbXBvbmVudFN0YWNrRnJhbWUsXG4gICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChMb2NhdGlvbkxpbmUsIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50U3RhY2tGcmFtZTogY29tcG9uZW50U3RhY2tGcmFtZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChcImRpdlwiLCB7XG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goTG9jYXRpb25MaW5lLCB7XG4gICAgICAgICAgICBjb21wb25lbnRTdGFja0ZyYW1lOiBjb21wb25lbnRTdGFja0ZyYW1lXG4gICAgICAgIH0pXG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gQ29tcG9uZW50U3RhY2tGcmFtZVJvdyhwYXJhbSkge1xuICAgIGxldCB7IGNvbXBvbmVudFN0YWNrRnJhbWUgfSA9IHBhcmFtO1xuICAgIGNvbnN0IHsgY29tcG9uZW50IH0gPSBjb21wb25lbnRTdGFja0ZyYW1lO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKFwiZGl2XCIsIHtcbiAgICAgICAgXCJkYXRhLW5leHRqcy1jb21wb25lbnQtc3RhY2stZnJhbWVcIjogdHJ1ZSxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcImgzXCIsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogY29tcG9uZW50XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChTb3VyY2VMb2NhdGlvbiwge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrRnJhbWU6IGNvbXBvbmVudFN0YWNrRnJhbWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q29tcG9uZW50U3RhY2tGcmFtZVJvdy5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiUmVhY3QiLCJ1c2VPcGVuSW5FZGl0b3IiLCJFZGl0b3JMaW5rIiwicGFyYW0iLCJjaGlsZHJlbiIsImNvbXBvbmVudFN0YWNrRnJhbWUiLCJmaWxlIiwiY29sdW1uIiwibGluZU51bWJlciIsIm9wZW4iLCJ0YWJJbmRleCIsInJvbGUiLCJvbkNsaWNrIiwidGl0bGUiLCJ4bWxucyIsInZpZXdCb3giLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJkIiwicG9pbnRzIiwieDEiLCJ5MSIsIngyIiwieTIiLCJmb3JtYXRMaW5lTnVtYmVyIiwiTG9jYXRpb25MaW5lIiwiU291cmNlTG9jYXRpb24iLCJjYW5PcGVuSW5FZGl0b3IiLCJDb21wb25lbnRTdGFja0ZyYW1lUm93IiwiY29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/ComponentStackFrameRow.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/FrameworkIcon.js":
-/*!*****************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/FrameworkIcon.js ***!
- \*****************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FrameworkIcon: () => (/* binding */ FrameworkIcon)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction FrameworkIcon(param) {\n let { framework } = param;\n if (framework === \"react\") {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n \"data-nextjs-call-stack-framework-icon\": \"react\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 410 369\",\n fill: \"none\",\n shapeRendering: \"geometricPrecision\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M204.995 224.552C226.56 224.552 244.042 207.07 244.042 185.506C244.042 163.941 226.56 146.459 204.995 146.459C183.43 146.459 165.948 163.941 165.948 185.506C165.948 207.07 183.43 224.552 204.995 224.552Z\",\n fill: \"currentColor\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M409.99 184.505C409.99 153.707 381.437 126.667 335.996 108.925C343.342 60.6535 334.19 22.3878 307.492 6.98883C283.649 -6.77511 250.631 -0.0395641 214.512 25.9753C211.316 28.2692 208.143 30.7097 204.97 33.2477C201.822 30.7097 198.65 28.2692 195.477 25.9753C159.359 -0.0395641 126.34 -6.79951 102.497 6.98883C75.8237 22.3878 66.6721 60.6291 74.0422 108.852C28.5529 126.618 0 153.682 0 184.505C0 215.303 28.5528 242.342 73.9934 260.084C66.6477 308.356 75.7993 346.621 102.497 362.02C110.575 366.682 119.727 369 129.684 369C149.085 369 171.61 360.215 195.477 343.034C198.674 340.74 201.847 338.3 205.019 335.762C208.167 338.3 211.34 340.74 214.512 343.034C238.38 360.239 260.905 369 280.306 369C290.263 369 299.415 366.682 307.492 362.02C331.335 348.256 342 316.287 337.534 271.993C337.143 268.089 336.631 264.135 335.996 260.109C381.461 242.367 409.99 215.327 409.99 184.505ZM225.934 41.8136C246.238 27.1955 265.127 19.5814 280.306 19.5814C286.871 19.5814 292.728 20.9968 297.731 23.8765C315.204 33.9798 322.672 62.9475 317.327 102.433C299.756 97.0401 280.306 92.9158 259.392 90.2802C246.872 73.8074 233.597 58.9453 220.003 46.2551C221.98 44.7421 223.957 43.229 225.934 41.8136ZM112.259 23.8765C117.262 20.9968 123.119 19.5814 129.684 19.5814C144.863 19.5814 163.752 27.1711 184.056 41.8136C186.033 43.229 188.01 44.7176 189.986 46.2551C176.393 58.9453 163.142 73.783 150.622 90.2558C129.732 92.8914 110.258 97.0401 92.687 102.409C87.3424 62.9475 94.7857 33.9798 112.259 23.8765ZM19.5233 184.505C19.5233 164.322 40.9014 143.359 77.776 128.253C81.9003 146.141 88.0502 165.054 96.1768 184.456C88.0014 203.881 81.8515 222.819 77.7272 240.732C40.9014 225.626 19.5233 204.687 19.5233 184.505ZM184.056 327.196C154.966 348.134 128.805 354.675 112.259 345.133C94.7857 335.029 87.3181 306.062 92.6626 266.576C110.234 271.969 129.684 276.093 150.598 278.729C163.117 295.202 176.393 310.064 189.986 322.754C188.01 324.292 186.033 325.78 184.056 327.196ZM204.995 310.04C180.591 287.685 157.138 257.815 137.347 223.551C132.051 214.4 121.344 191.396 117 182.489C113.535 190.786 110.112 198.398 107.427 206.5C109.623 210.575 118.092 229.213 120.434 233.288C125.071 241.317 129.928 249.127 134.931 256.692C120.898 254.227 107.915 251.055 96.1035 247.321C102.815 217.011 116.213 182.064 137.347 145.458C142.545 136.453 153.838 116.346 159.5 108C150.568 109.147 143.395 108.767 135 110.5C132.56 114.453 122.777 131.645 120.434 135.721C115.749 143.823 111.454 151.925 107.427 159.978C102.546 146.581 98.8124 133.744 96.1524 121.64C125.755 112.293 162.727 106.411 204.995 106.411C215.562 106.411 237.63 106.197 247.49 106.905C242.048 99.7544 237.38 93.2819 231.694 86.888C227.082 86.7416 209.705 86.888 204.995 86.888C195.672 86.888 186.545 87.2053 177.589 87.7422C186.472 77.1752 195.672 67.5111 204.995 58.9697C229.375 81.3239 252.851 111.195 272.643 145.458C277.841 154.463 289.073 175.426 293.49 184.505C296.98 176.207 300.281 168.64 302.99 160.489C300.793 156.389 291.898 139.747 289.555 135.696C284.918 127.667 280.062 119.858 275.059 112.317C289.092 114.782 302.075 117.954 313.886 121.688C307.175 151.998 293.777 186.945 272.643 223.551C267.445 232.556 252.651 253.178 246.99 261.524C255.922 260.377 265.595 258.663 273.99 256.93C276.43 252.976 287.212 237.364 289.555 233.288C294.216 225.235 298.512 217.182 302.489 209.153C307.224 222.185 310.982 234.997 313.715 247.394C284.138 256.741 247.214 262.598 204.995 262.598C194.428 262.598 169.859 261.208 160 260.5C165.442 267.65 171.304 275.095 176.99 281.489C181.602 281.635 200.285 282.121 204.995 282.121C214.317 282.121 223.444 281.804 232.401 281.267C223.493 291.834 214.317 301.498 204.995 310.04ZM297.731 345.133C281.185 354.699 254.999 348.159 225.934 327.196C223.957 325.78 221.98 324.292 220.003 322.754C233.597 310.064 246.848 295.226 259.367 278.753C280.233 276.118 299.659 271.993 317.205 266.625C317.547 269.089 317.888 271.554 318.132 273.97C321.72 309.649 314.277 335.566 297.731 345.133ZM332.262 240.756C328.065 222.599 321.842 203.686 313.813 184.578C321.988 165.152 328.138 146.215 332.262 128.302C369.088 143.408 390.466 164.322 390.466 184.505C390.466 204.687 369.113 225.626 332.262 240.756Z\",\n fill: \"currentColor\"\n })\n ]\n });\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n \"data-nextjs-call-stack-framework-icon\": \"next\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 180 180\",\n fill: \"none\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"mask\", {\n id: \"mask0_408_139\",\n maskUnits: \"userSpaceOnUse\",\n x: \"0\",\n y: \"0\",\n width: \"180\",\n height: \"180\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"circle\", {\n cx: \"90\",\n cy: \"90\",\n r: \"90\",\n fill: \"black\"\n })\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"g\", {\n mask: \"url(#mask0_408_139)\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"circle\", {\n cx: \"90\",\n cy: \"90\",\n r: \"87\",\n fill: \"black\",\n stroke: \"white\",\n strokeWidth: \"6\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z\",\n fill: \"url(#paint0_linear_408_139)\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"rect\", {\n x: \"115\",\n y: \"54\",\n width: \"12\",\n height: \"72\",\n fill: \"url(#paint1_linear_408_139)\"\n })\n ]\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"defs\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"linearGradient\", {\n id: \"paint0_linear_408_139\",\n x1: \"109\",\n y1: \"116.5\",\n x2: \"144.5\",\n y2: \"160.5\",\n gradientUnits: \"userSpaceOnUse\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"stop\", {\n stopColor: \"white\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"stop\", {\n offset: \"1\",\n stopColor: \"white\",\n stopOpacity: \"0\"\n })\n ]\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"linearGradient\", {\n id: \"paint1_linear_408_139\",\n x1: \"121\",\n y1: \"54\",\n x2: \"120.799\",\n y2: \"106.875\",\n gradientUnits: \"userSpaceOnUse\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"stop\", {\n stopColor: \"white\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"stop\", {\n offset: \"1\",\n stopColor: \"white\",\n stopOpacity: \"0\"\n })\n ]\n })\n ]\n })\n ]\n });\n} //# sourceMappingURL=FrameworkIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9GcmFtZXdvcmtJY29uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBK0Q7QUFDckM7QUFDbkIsU0FBU0ssY0FBY0MsS0FBSztJQUMvQixJQUFJLEVBQUVDLFNBQVMsRUFBRSxHQUFHRDtJQUNwQixJQUFJQyxjQUFjLFNBQVM7UUFDdkIsT0FBTyxXQUFXLEdBQUdKLHVEQUFLQSxDQUFDLE9BQU87WUFDOUIseUNBQXlDO1lBQ3pDSyxPQUFPO1lBQ1BDLE9BQU87WUFDUEMsUUFBUTtZQUNSQyxTQUFTO1lBQ1RDLE1BQU07WUFDTkMsZ0JBQWdCO1lBQ2hCQyxRQUFRO1lBQ1JDLGVBQWU7WUFDZkMsZ0JBQWdCO1lBQ2hCQyxhQUFhO1lBQ2JDLFVBQVU7Z0JBQ04sV0FBVyxHQUFHakIsc0RBQUlBLENBQUMsUUFBUTtvQkFDdkJrQixHQUFHO29CQUNIUCxNQUFNO2dCQUNWO2dCQUNBLFdBQVcsR0FBR1gsc0RBQUlBLENBQUMsUUFBUTtvQkFDdkJrQixHQUFHO29CQUNIUCxNQUFNO2dCQUNWO2FBQ0g7UUFDTDtJQUNKO0lBQ0EsT0FBTyxXQUFXLEdBQUdULHVEQUFLQSxDQUFDLE9BQU87UUFDOUIseUNBQXlDO1FBQ3pDSyxPQUFPO1FBQ1BDLE9BQU87UUFDUEMsUUFBUTtRQUNSQyxTQUFTO1FBQ1RDLE1BQU07UUFDTk0sVUFBVTtZQUNOLFdBQVcsR0FBR2pCLHNEQUFJQSxDQUFDLFFBQVE7Z0JBQ3ZCbUIsSUFBSTtnQkFDSkMsV0FBVztnQkFDWEMsR0FBRztnQkFDSEMsR0FBRztnQkFDSGQsT0FBTztnQkFDUEMsUUFBUTtnQkFDUlEsVUFBVSxXQUFXLEdBQUdqQixzREFBSUEsQ0FBQyxVQUFVO29CQUNuQ3VCLElBQUk7b0JBQ0pDLElBQUk7b0JBQ0pDLEdBQUc7b0JBQ0hkLE1BQU07Z0JBQ1Y7WUFDSjtZQUNBLFdBQVcsR0FBR1QsdURBQUtBLENBQUMsS0FBSztnQkFDckJ3QixNQUFNO2dCQUNOVCxVQUFVO29CQUNOLFdBQVcsR0FBR2pCLHNEQUFJQSxDQUFDLFVBQVU7d0JBQ3pCdUIsSUFBSTt3QkFDSkMsSUFBSTt3QkFDSkMsR0FBRzt3QkFDSGQsTUFBTTt3QkFDTkUsUUFBUTt3QkFDUkcsYUFBYTtvQkFDakI7b0JBQ0EsV0FBVyxHQUFHaEIsc0RBQUlBLENBQUMsUUFBUTt3QkFDdkJrQixHQUFHO3dCQUNIUCxNQUFNO29CQUNWO29CQUNBLFdBQVcsR0FBR1gsc0RBQUlBLENBQUMsUUFBUTt3QkFDdkJxQixHQUFHO3dCQUNIQyxHQUFHO3dCQUNIZCxPQUFPO3dCQUNQQyxRQUFRO3dCQUNSRSxNQUFNO29CQUNWO2lCQUNIO1lBQ0w7WUFDQSxXQUFXLEdBQUdULHVEQUFLQSxDQUFDLFFBQVE7Z0JBQ3hCZSxVQUFVO29CQUNOLFdBQVcsR0FBR2YsdURBQUtBLENBQUMsa0JBQWtCO3dCQUNsQ2lCLElBQUk7d0JBQ0pRLElBQUk7d0JBQ0pDLElBQUk7d0JBQ0pDLElBQUk7d0JBQ0pDLElBQUk7d0JBQ0pDLGVBQWU7d0JBQ2ZkLFVBQVU7NEJBQ04sV0FBVyxHQUFHakIsc0RBQUlBLENBQUMsUUFBUTtnQ0FDdkJnQyxXQUFXOzRCQUNmOzRCQUNBLFdBQVcsR0FBR2hDLHNEQUFJQSxDQUFDLFFBQVE7Z0NBQ3ZCaUMsUUFBUTtnQ0FDUkQsV0FBVztnQ0FDWEUsYUFBYTs0QkFDakI7eUJBQ0g7b0JBQ0w7b0JBQ0EsV0FBVyxHQUFHaEMsdURBQUtBLENBQUMsa0JBQWtCO3dCQUNsQ2lCLElBQUk7d0JBQ0pRLElBQUk7d0JBQ0pDLElBQUk7d0JBQ0pDLElBQUk7d0JBQ0pDLElBQUk7d0JBQ0pDLGVBQWU7d0JBQ2ZkLFVBQVU7NEJBQ04sV0FBVyxHQUFHakIsc0RBQUlBLENBQUMsUUFBUTtnQ0FDdkJnQyxXQUFXOzRCQUNmOzRCQUNBLFdBQVcsR0FBR2hDLHNEQUFJQSxDQUFDLFFBQVE7Z0NBQ3ZCaUMsUUFBUTtnQ0FDUkQsV0FBVztnQ0FDWEUsYUFBYTs0QkFDakI7eUJBQ0g7b0JBQ0w7aUJBQ0g7WUFDTDtTQUNIO0lBQ0w7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9GcmFtZXdvcmtJY29uLmpzPzhiM2MiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCBmdW5jdGlvbiBGcmFtZXdvcmtJY29uKHBhcmFtKSB7XG4gICAgbGV0IHsgZnJhbWV3b3JrIH0gPSBwYXJhbTtcbiAgICBpZiAoZnJhbWV3b3JrID09PSBcInJlYWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJzdmdcIiwge1xuICAgICAgICAgICAgXCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1ld29yay1pY29uXCI6IFwicmVhY3RcIixcbiAgICAgICAgICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgICAgICAgICB3aWR0aDogXCIyMFwiLFxuICAgICAgICAgICAgaGVpZ2h0OiBcIjIwXCIsXG4gICAgICAgICAgICB2aWV3Qm94OiBcIjAgMCA0MTAgMzY5XCIsXG4gICAgICAgICAgICBmaWxsOiBcIm5vbmVcIixcbiAgICAgICAgICAgIHNoYXBlUmVuZGVyaW5nOiBcImdlb21ldHJpY1ByZWNpc2lvblwiLFxuICAgICAgICAgICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLFxuICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBcIjVcIixcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwicGF0aFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGQ6IFwiTTIwNC45OTUgMjI0LjU1MkMyMjYuNTYgMjI0LjU1MiAyNDQuMDQyIDIwNy4wNyAyNDQuMDQyIDE4NS41MDZDMjQ0LjA0MiAxNjMuOTQxIDIyNi41NiAxNDYuNDU5IDIwNC45OTUgMTQ2LjQ1OUMxODMuNDMgMTQ2LjQ1OSAxNjUuOTQ4IDE2My45NDEgMTY1Ljk0OCAxODUuNTA2QzE2NS45NDggMjA3LjA3IDE4My40MyAyMjQuNTUyIDIwNC45OTUgMjI0LjU1MlpcIixcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogXCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInBhdGhcIiwge1xuICAgICAgICAgICAgICAgICAgICBkOiBcIk00MDkuOTkgMTg0LjUwNUM0MDkuOTkgMTUzLjcwNyAzODEuNDM3IDEyNi42NjcgMzM1Ljk5NiAxMDguOTI1QzM0My4zNDIgNjAuNjUzNSAzMzQuMTkgMjIuMzg3OCAzMDcuNDkyIDYuOTg4ODNDMjgzLjY0OSAtNi43NzUxMSAyNTAuNjMxIC0wLjAzOTU2NDEgMjE0LjUxMiAyNS45NzUzQzIxMS4zMTYgMjguMjY5MiAyMDguMTQzIDMwLjcwOTcgMjA0Ljk3IDMzLjI0NzdDMjAxLjgyMiAzMC43MDk3IDE5OC42NSAyOC4yNjkyIDE5NS40NzcgMjUuOTc1M0MxNTkuMzU5IC0wLjAzOTU2NDEgMTI2LjM0IC02Ljc5OTUxIDEwMi40OTcgNi45ODg4M0M3NS44MjM3IDIyLjM4NzggNjYuNjcyMSA2MC42MjkxIDc0LjA0MjIgMTA4Ljg1MkMyOC41NTI5IDEyNi42MTggMCAxNTMuNjgyIDAgMTg0LjUwNUMwIDIxNS4zMDMgMjguNTUyOCAyNDIuMzQyIDczLjk5MzQgMjYwLjA4NEM2Ni42NDc3IDMwOC4zNTYgNzUuNzk5MyAzNDYuNjIxIDEwMi40OTcgMzYyLjAyQzExMC41NzUgMzY2LjY4MiAxMTkuNzI3IDM2OSAxMjkuNjg0IDM2OUMxNDkuMDg1IDM2OSAxNzEuNjEgMzYwLjIxNSAxOTUuNDc3IDM0My4wMzRDMTk4LjY3NCAzNDAuNzQgMjAxLjg0NyAzMzguMyAyMDUuMDE5IDMzNS43NjJDMjA4LjE2NyAzMzguMyAyMTEuMzQgMzQwLjc0IDIxNC41MTIgMzQzLjAzNEMyMzguMzggMzYwLjIzOSAyNjAuOTA1IDM2OSAyODAuMzA2IDM2OUMyOTAuMjYzIDM2OSAyOTkuNDE1IDM2Ni42ODIgMzA3LjQ5MiAzNjIuMDJDMzMxLjMzNSAzNDguMjU2IDM0MiAzMTYuMjg3IDMzNy41MzQgMjcxLjk5M0MzMzcuMTQzIDI2OC4wODkgMzM2LjYzMSAyNjQuMTM1IDMzNS45OTYgMjYwLjEwOUMzODEuNDYxIDI0Mi4zNjcgNDA5Ljk5IDIxNS4zMjcgNDA5Ljk5IDE4NC41MDVaTTIyNS45MzQgNDEuODEzNkMyNDYuMjM4IDI3LjE5NTUgMjY1LjEyNyAxOS41ODE0IDI4MC4zMDYgMTkuNTgxNEMyODYuODcxIDE5LjU4MTQgMjkyLjcyOCAyMC45OTY4IDI5Ny43MzEgMjMuODc2NUMzMTUuMjA0IDMzLjk3OTggMzIyLjY3MiA2Mi45NDc1IDMxNy4zMjcgMTAyLjQzM0MyOTkuNzU2IDk3LjA0MDEgMjgwLjMwNiA5Mi45MTU4IDI1OS4zOTIgOTAuMjgwMkMyNDYuODcyIDczLjgwNzQgMjMzLjU5NyA1OC45NDUzIDIyMC4wMDMgNDYuMjU1MUMyMjEuOTggNDQuNzQyMSAyMjMuOTU3IDQzLjIyOSAyMjUuOTM0IDQxLjgxMzZaTTExMi4yNTkgMjMuODc2NUMxMTcuMjYyIDIwLjk5NjggMTIzLjExOSAxOS41ODE0IDEyOS42ODQgMTkuNTgxNEMxNDQuODYzIDE5LjU4MTQgMTYzLjc1MiAyNy4xNzExIDE4NC4wNTYgNDEuODEzNkMxODYuMDMzIDQzLjIyOSAxODguMDEgNDQuNzE3NiAxODkuOTg2IDQ2LjI1NTFDMTc2LjM5MyA1OC45NDUzIDE2My4xNDIgNzMuNzgzIDE1MC42MjIgOTAuMjU1OEMxMjkuNzMyIDkyLjg5MTQgMTEwLjI1OCA5Ny4wNDAxIDkyLjY4NyAxMDIuNDA5Qzg3LjM0MjQgNjIuOTQ3NSA5NC43ODU3IDMzLjk3OTggMTEyLjI1OSAyMy44NzY1Wk0xOS41MjMzIDE4NC41MDVDMTkuNTIzMyAxNjQuMzIyIDQwLjkwMTQgMTQzLjM1OSA3Ny43NzYgMTI4LjI1M0M4MS45MDAzIDE0Ni4xNDEgODguMDUwMiAxNjUuMDU0IDk2LjE3NjggMTg0LjQ1NkM4OC4wMDE0IDIwMy44ODEgODEuODUxNSAyMjIuODE5IDc3LjcyNzIgMjQwLjczMkM0MC45MDE0IDIyNS42MjYgMTkuNTIzMyAyMDQuNjg3IDE5LjUyMzMgMTg0LjUwNVpNMTg0LjA1NiAzMjcuMTk2QzE1NC45NjYgMzQ4LjEzNCAxMjguODA1IDM1NC42NzUgMTEyLjI1OSAzNDUuMTMzQzk0Ljc4NTcgMzM1LjAyOSA4Ny4zMTgxIDMwNi4wNjIgOTIuNjYyNiAyNjYuNTc2QzExMC4yMzQgMjcxLjk2OSAxMjkuNjg0IDI3Ni4wOTMgMTUwLjU5OCAyNzguNzI5QzE2My4xMTcgMjk1LjIwMiAxNzYuMzkzIDMxMC4wNjQgMTg5Ljk4NiAzMjIuNzU0QzE4OC4wMSAzMjQuMjkyIDE4Ni4wMzMgMzI1Ljc4IDE4NC4wNTYgMzI3LjE5NlpNMjA0Ljk5NSAzMTAuMDRDMTgwLjU5MSAyODcuNjg1IDE1Ny4xMzggMjU3LjgxNSAxMzcuMzQ3IDIyMy41NTFDMTMyLjA1MSAyMTQuNCAxMjEuMzQ0IDE5MS4zOTYgMTE3IDE4Mi40ODlDMTEzLjUzNSAxOTAuNzg2IDExMC4xMTIgMTk4LjM5OCAxMDcuNDI3IDIwNi41QzEwOS42MjMgMjEwLjU3NSAxMTguMDkyIDIyOS4yMTMgMTIwLjQzNCAyMzMuMjg4QzEyNS4wNzEgMjQxLjMxNyAxMjkuOTI4IDI0OS4xMjcgMTM0LjkzMSAyNTYuNjkyQzEyMC44OTggMjU0LjIyNyAxMDcuOTE1IDI1MS4wNTUgOTYuMTAzNSAyNDcuMzIxQzEwMi44MTUgMjE3LjAxMSAxMTYuMjEzIDE4Mi4wNjQgMTM3LjM0NyAxNDUuNDU4QzE0Mi41NDUgMTM2LjQ1MyAxNTMuODM4IDExNi4zNDYgMTU5LjUgMTA4QzE1MC41NjggMTA5LjE0NyAxNDMuMzk1IDEwOC43NjcgMTM1IDExMC41QzEzMi41NiAxMTQuNDUzIDEyMi43NzcgMTMxLjY0NSAxMjAuNDM0IDEzNS43MjFDMTE1Ljc0OSAxNDMuODIzIDExMS40NTQgMTUxLjkyNSAxMDcuNDI3IDE1OS45NzhDMTAyLjU0NiAxNDYuNTgxIDk4LjgxMjQgMTMzLjc0NCA5Ni4xNTI0IDEyMS42NEMxMjUuNzU1IDExMi4yOTMgMTYyLjcyNyAxMDYuNDExIDIwNC45OTUgMTA2LjQxMUMyMTUuNTYyIDEwNi40MTEgMjM3LjYzIDEwNi4xOTcgMjQ3LjQ5IDEwNi45MDVDMjQyLjA0OCA5OS43NTQ0IDIzNy4zOCA5My4yODE5IDIzMS42OTQgODYuODg4QzIyNy4wODIgODYuNzQxNiAyMDkuNzA1IDg2Ljg4OCAyMDQuOTk1IDg2Ljg4OEMxOTUuNjcyIDg2Ljg4OCAxODYuNTQ1IDg3LjIwNTMgMTc3LjU4OSA4Ny43NDIyQzE4Ni40NzIgNzcuMTc1MiAxOTUuNjcyIDY3LjUxMTEgMjA0Ljk5NSA1OC45Njk3QzIyOS4zNzUgODEuMzIzOSAyNTIuODUxIDExMS4xOTUgMjcyLjY0MyAxNDUuNDU4QzI3Ny44NDEgMTU0LjQ2MyAyODkuMDczIDE3NS40MjYgMjkzLjQ5IDE4NC41MDVDMjk2Ljk4IDE3Ni4yMDcgMzAwLjI4MSAxNjguNjQgMzAyLjk5IDE2MC40ODlDMzAwLjc5MyAxNTYuMzg5IDI5MS44OTggMTM5Ljc0NyAyODkuNTU1IDEzNS42OTZDMjg0LjkxOCAxMjcuNjY3IDI4MC4wNjIgMTE5Ljg1OCAyNzUuMDU5IDExMi4zMTdDMjg5LjA5MiAxMTQuNzgyIDMwMi4wNzUgMTE3Ljk1NCAzMTMuODg2IDEyMS42ODhDMzA3LjE3NSAxNTEuOTk4IDI5My43NzcgMTg2Ljk0NSAyNzIuNjQzIDIyMy41NTFDMjY3LjQ0NSAyMzIuNTU2IDI1Mi42NTEgMjUzLjE3OCAyNDYuOTkgMjYxLjUyNEMyNTUuOTIyIDI2MC4zNzcgMjY1LjU5NSAyNTguNjYzIDI3My45OSAyNTYuOTNDMjc2LjQzIDI1Mi45NzYgMjg3LjIxMiAyMzcuMzY0IDI4OS41NTUgMjMzLjI4OEMyOTQuMjE2IDIyNS4yMzUgMjk4LjUxMiAyMTcuMTgyIDMwMi40ODkgMjA5LjE1M0MzMDcuMjI0IDIyMi4xODUgMzEwLjk4MiAyMzQuOTk3IDMxMy43MTUgMjQ3LjM5NEMyODQuMTM4IDI1Ni43NDEgMjQ3LjIxNCAyNjIuNTk4IDIwNC45OTUgMjYyLjU5OEMxOTQuNDI4IDI2Mi41OTggMTY5Ljg1OSAyNjEuMjA4IDE2MCAyNjAuNUMxNjUuNDQyIDI2Ny42NSAxNzEuMzA0IDI3NS4wOTUgMTc2Ljk5IDI4MS40ODlDMTgxLjYwMiAyODEuNjM1IDIwMC4yODUgMjgyLjEyMSAyMDQuOTk1IDI4Mi4xMjFDMjE0LjMxNyAyODIuMTIxIDIyMy40NDQgMjgxLjgwNCAyMzIuNDAxIDI4MS4yNjdDMjIzLjQ5MyAyOTEuODM0IDIxNC4zMTcgMzAxLjQ5OCAyMDQuOTk1IDMxMC4wNFpNMjk3LjczMSAzNDUuMTMzQzI4MS4xODUgMzU0LjY5OSAyNTQuOTk5IDM0OC4xNTkgMjI1LjkzNCAzMjcuMTk2QzIyMy45NTcgMzI1Ljc4IDIyMS45OCAzMjQuMjkyIDIyMC4wMDMgMzIyLjc1NEMyMzMuNTk3IDMxMC4wNjQgMjQ2Ljg0OCAyOTUuMjI2IDI1OS4zNjcgMjc4Ljc1M0MyODAuMjMzIDI3Ni4xMTggMjk5LjY1OSAyNzEuOTkzIDMxNy4yMDUgMjY2LjYyNUMzMTcuNTQ3IDI2OS4wODkgMzE3Ljg4OCAyNzEuNTU0IDMxOC4xMzIgMjczLjk3QzMyMS43MiAzMDkuNjQ5IDMxNC4yNzcgMzM1LjU2NiAyOTcuNzMxIDM0NS4xMzNaTTMzMi4yNjIgMjQwLjc1NkMzMjguMDY1IDIyMi41OTkgMzIxLjg0MiAyMDMuNjg2IDMxMy44MTMgMTg0LjU3OEMzMjEuOTg4IDE2NS4xNTIgMzI4LjEzOCAxNDYuMjE1IDMzMi4yNjIgMTI4LjMwMkMzNjkuMDg4IDE0My40MDggMzkwLjQ2NiAxNjQuMzIyIDM5MC40NjYgMTg0LjUwNUMzOTAuNDY2IDIwNC42ODcgMzY5LjExMyAyMjUuNjI2IDMzMi4yNjIgMjQwLjc1NlpcIixcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogXCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhcInN2Z1wiLCB7XG4gICAgICAgIFwiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZXdvcmstaWNvblwiOiBcIm5leHRcIixcbiAgICAgICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICAgICAgd2lkdGg6IFwiMjBcIixcbiAgICAgICAgaGVpZ2h0OiBcIjIwXCIsXG4gICAgICAgIHZpZXdCb3g6IFwiMCAwIDE4MCAxODBcIixcbiAgICAgICAgZmlsbDogXCJub25lXCIsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJtYXNrXCIsIHtcbiAgICAgICAgICAgICAgICBpZDogXCJtYXNrMF80MDhfMTM5XCIsXG4gICAgICAgICAgICAgICAgbWFza1VuaXRzOiBcInVzZXJTcGFjZU9uVXNlXCIsXG4gICAgICAgICAgICAgICAgeDogXCIwXCIsXG4gICAgICAgICAgICAgICAgeTogXCIwXCIsXG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiMTgwXCIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjE4MFwiLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goXCJjaXJjbGVcIiwge1xuICAgICAgICAgICAgICAgICAgICBjeDogXCI5MFwiLFxuICAgICAgICAgICAgICAgICAgICBjeTogXCI5MFwiLFxuICAgICAgICAgICAgICAgICAgICByOiBcIjkwXCIsXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IFwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJnXCIsIHtcbiAgICAgICAgICAgICAgICBtYXNrOiBcInVybCgjbWFzazBfNDA4XzEzOSlcIixcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJjaXJjbGVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3g6IFwiOTBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGN5OiBcIjkwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByOiBcIjg3XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcImJsYWNrXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IFwid2hpdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBcIjZcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwicGF0aFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkOiBcIk0xNDkuNTA4IDE1Ny41Mkw2OS4xNDIgNTRINTRWMTI1Ljk3SDY2LjExMzZWNjkuMzgzNkwxMzkuOTk5IDE2NC44NDVDMTQzLjMzMyAxNjIuNjE0IDE0Ni41MDkgMTYwLjE2NSAxNDkuNTA4IDE1Ny41MlpcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IFwidXJsKCNwYWludDBfbGluZWFyXzQwOF8xMzkpXCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInJlY3RcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogXCIxMTVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IFwiNTRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiNzJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IFwidXJsKCNwYWludDFfbGluZWFyXzQwOF8xMzkpXCJcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJkZWZzXCIsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicGFpbnQwX2xpbmVhcl80MDhfMTM5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB4MTogXCIxMDlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHkxOiBcIjExNi41XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB4MjogXCIxNDQuNVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTI6IFwiMTYwLjVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyYWRpZW50VW5pdHM6IFwidXNlclNwYWNlT25Vc2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwic3RvcFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BDb2xvcjogXCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwic3RvcFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BDb2xvcjogXCJ3aGl0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wT3BhY2l0eTogXCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4cyhcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInBhaW50MV9saW5lYXJfNDA4XzEzOVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgeDE6IFwiMTIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB5MTogXCI1NFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgeDI6IFwiMTIwLjc5OVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTI6IFwiMTA2Ljg3NVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JhZGllbnRVbml0czogXCJ1c2VyU3BhY2VPblVzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJzdG9wXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcENvbG9yOiBcIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJzdG9wXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcENvbG9yOiBcIndoaXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BPcGFjaXR5OiBcIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1GcmFtZXdvcmtJY29uLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJGcmFtZXdvcmtJY29uIiwicGFyYW0iLCJmcmFtZXdvcmsiLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJzaGFwZVJlbmRlcmluZyIsInN0cm9rZSIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInN0cm9rZVdpZHRoIiwiY2hpbGRyZW4iLCJkIiwiaWQiLCJtYXNrVW5pdHMiLCJ4IiwieSIsImN4IiwiY3kiLCJyIiwibWFzayIsIngxIiwieTEiLCJ4MiIsInkyIiwiZ3JhZGllbnRVbml0cyIsInN0b3BDb2xvciIsIm9mZnNldCIsInN0b3BPcGFjaXR5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/FrameworkIcon.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/GroupedStackFrames.js":
-/*!**********************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/GroupedStackFrames.js ***!
- \**********************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GroupedStackFrames: () => (/* binding */ GroupedStackFrames)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var _CallStackFrame__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CallStackFrame */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js\");\n/* harmony import */ var _FrameworkIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FrameworkIcon */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/FrameworkIcon.js\");\n\n\n\nfunction FrameworkGroup(param) {\n let { framework, stackFrames, all } = param;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"details\", {\n \"data-nextjs-collapsed-call-stack-details\": true,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"summary\", {\n tabIndex: 10,\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"svg\", {\n \"data-nextjs-call-stack-chevron-icon\": true,\n fill: \"none\",\n height: \"20\",\n width: \"20\",\n shapeRendering: \"geometricPrecision\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"2\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M9 18l6-6-6-6\"\n })\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FrameworkIcon__WEBPACK_IMPORTED_MODULE_2__.FrameworkIcon, {\n framework: framework\n }),\n framework === \"react\" ? \"React\" : \"Next.js\"\n ]\n }),\n stackFrames.map((frame, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CallStackFrame__WEBPACK_IMPORTED_MODULE_1__.CallStackFrame, {\n frame: frame\n }, \"call-stack-\" + index + \"-\" + all))\n ]\n })\n });\n}\nfunction GroupedStackFrames(param) {\n let { groupedStackFrames, all } = param;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: groupedStackFrames.map((stackFramesGroup, groupIndex)=>{\n // Collapse React and Next.js frames\n if (stackFramesGroup.framework) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(FrameworkGroup, {\n framework: stackFramesGroup.framework,\n stackFrames: stackFramesGroup.stackFrames,\n all: all\n }, \"call-stack-framework-group-\" + groupIndex + \"-\" + all);\n }\n return stackFramesGroup.stackFrames.map((frame, frameIndex)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CallStackFrame__WEBPACK_IMPORTED_MODULE_1__.CallStackFrame, {\n frame: frame\n }, \"call-stack-\" + groupIndex + \"-\" + frameIndex + \"-\" + all));\n })\n });\n} //# sourceMappingURL=GroupedStackFrames.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9Hcm91cGVkU3RhY2tGcmFtZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFzRjtBQUNwQztBQUNGO0FBQ2hELFNBQVNRLGVBQWVDLEtBQUs7SUFDekIsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsR0FBRyxFQUFFLEdBQUdIO0lBQ3RDLE9BQU8sV0FBVyxHQUFHUixzREFBSUEsQ0FBQ0ksdURBQVNBLEVBQUU7UUFDakNRLFVBQVUsV0FBVyxHQUFHVix1REFBS0EsQ0FBQyxXQUFXO1lBQ3JDLDRDQUE0QztZQUM1Q1UsVUFBVTtnQkFDTixXQUFXLEdBQUdWLHVEQUFLQSxDQUFDLFdBQVc7b0JBQzNCVyxVQUFVO29CQUNWRCxVQUFVO3dCQUNOLFdBQVcsR0FBR1osc0RBQUlBLENBQUMsT0FBTzs0QkFDdEIsdUNBQXVDOzRCQUN2Q2MsTUFBTTs0QkFDTkMsUUFBUTs0QkFDUkMsT0FBTzs0QkFDUEMsZ0JBQWdCOzRCQUNoQkMsUUFBUTs0QkFDUkMsZUFBZTs0QkFDZkMsZ0JBQWdCOzRCQUNoQkMsYUFBYTs0QkFDYkMsU0FBUzs0QkFDVFYsVUFBVSxXQUFXLEdBQUdaLHNEQUFJQSxDQUFDLFFBQVE7Z0NBQ2pDdUIsR0FBRzs0QkFDUDt3QkFDSjt3QkFDQSxXQUFXLEdBQUd2QixzREFBSUEsQ0FBQ00seURBQWFBLEVBQUU7NEJBQzlCRyxXQUFXQTt3QkFDZjt3QkFDQUEsY0FBYyxVQUFVLFVBQVU7cUJBQ3JDO2dCQUNMO2dCQUNBQyxZQUFZYyxHQUFHLENBQUMsQ0FBQ0MsT0FBT0MsUUFBUSxXQUFXLEdBQUcxQixzREFBSUEsQ0FBQ0ssMkRBQWNBLEVBQUU7d0JBQzNEb0IsT0FBT0E7b0JBQ1gsR0FBRyxnQkFBZ0JDLFFBQVEsTUFBTWY7YUFDeEM7UUFDTDtJQUNKO0FBQ0o7QUFDTyxTQUFTZ0IsbUJBQW1CbkIsS0FBSztJQUNwQyxJQUFJLEVBQUVvQixrQkFBa0IsRUFBRWpCLEdBQUcsRUFBRSxHQUFHSDtJQUNsQyxPQUFPLFdBQVcsR0FBR1Isc0RBQUlBLENBQUNJLHVEQUFTQSxFQUFFO1FBQ2pDUSxVQUFVZ0IsbUJBQW1CSixHQUFHLENBQUMsQ0FBQ0ssa0JBQWtCQztZQUNoRCxvQ0FBb0M7WUFDcEMsSUFBSUQsaUJBQWlCcEIsU0FBUyxFQUFFO2dCQUM1QixPQUFPLFdBQVcsR0FBR1Qsc0RBQUlBLENBQUNPLGdCQUFnQjtvQkFDdENFLFdBQVdvQixpQkFBaUJwQixTQUFTO29CQUNyQ0MsYUFBYW1CLGlCQUFpQm5CLFdBQVc7b0JBQ3pDQyxLQUFLQTtnQkFDVCxHQUFHLGdDQUFnQ21CLGFBQWEsTUFBTW5CO1lBQzFEO1lBQ0EsT0FDQWtCLGlCQUFpQm5CLFdBQVcsQ0FBQ2MsR0FBRyxDQUFDLENBQUNDLE9BQU9NLGFBQWEsV0FBVyxHQUFHL0Isc0RBQUlBLENBQUNLLDJEQUFjQSxFQUFFO29CQUNqRm9CLE9BQU9BO2dCQUNYLEdBQUcsZ0JBQWdCSyxhQUFhLE1BQU1DLGFBQWEsTUFBTXBCO1FBQ2pFO0lBQ0o7QUFDSixFQUVBLDhDQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9Hcm91cGVkU3RhY2tGcmFtZXMuanM/ODg1NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBDYWxsU3RhY2tGcmFtZSB9IGZyb20gXCIuL0NhbGxTdGFja0ZyYW1lXCI7XG5pbXBvcnQgeyBGcmFtZXdvcmtJY29uIH0gZnJvbSBcIi4vRnJhbWV3b3JrSWNvblwiO1xuZnVuY3Rpb24gRnJhbWV3b3JrR3JvdXAocGFyYW0pIHtcbiAgICBsZXQgeyBmcmFtZXdvcmssIHN0YWNrRnJhbWVzLCBhbGwgfSA9IHBhcmFtO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goX0ZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3hzKFwiZGV0YWlsc1wiLCB7XG4gICAgICAgICAgICBcImRhdGEtbmV4dGpzLWNvbGxhcHNlZC1jYWxsLXN0YWNrLWRldGFpbHNcIjogdHJ1ZSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4cyhcInN1bW1hcnlcIiwge1xuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleDogMTAsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJzdmdcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jaGV2cm9uLWljb25cIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMjBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIyMFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlUmVuZGVyaW5nOiBcImdlb21ldHJpY1ByZWNpc2lvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogXCIyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveDogXCIwIDAgMjQgMjRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFwicGF0aFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ6IFwiTTkgMThsNi02LTYtNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KEZyYW1ld29ya0ljb24sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZXdvcms6IGZyYW1ld29ya1xuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBmcmFtZXdvcmsgPT09IFwicmVhY3RcIiA/IFwiUmVhY3RcIiA6IFwiTmV4dC5qc1wiXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFja0ZyYW1lcy5tYXAoKGZyYW1lLCBpbmRleCk9Pi8qI19fUFVSRV9fKi8gX2pzeChDYWxsU3RhY2tGcmFtZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWU6IGZyYW1lXG4gICAgICAgICAgICAgICAgICAgIH0sIFwiY2FsbC1zdGFjay1cIiArIGluZGV4ICsgXCItXCIgKyBhbGwpKVxuICAgICAgICAgICAgXVxuICAgICAgICB9KVxuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIEdyb3VwZWRTdGFja0ZyYW1lcyhwYXJhbSkge1xuICAgIGxldCB7IGdyb3VwZWRTdGFja0ZyYW1lcywgYWxsIH0gPSBwYXJhbTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KF9GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogZ3JvdXBlZFN0YWNrRnJhbWVzLm1hcCgoc3RhY2tGcmFtZXNHcm91cCwgZ3JvdXBJbmRleCk9PntcbiAgICAgICAgICAgIC8vIENvbGxhcHNlIFJlYWN0IGFuZCBOZXh0LmpzIGZyYW1lc1xuICAgICAgICAgICAgaWYgKHN0YWNrRnJhbWVzR3JvdXAuZnJhbWV3b3JrKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChGcmFtZXdvcmtHcm91cCwge1xuICAgICAgICAgICAgICAgICAgICBmcmFtZXdvcms6IHN0YWNrRnJhbWVzR3JvdXAuZnJhbWV3b3JrLFxuICAgICAgICAgICAgICAgICAgICBzdGFja0ZyYW1lczogc3RhY2tGcmFtZXNHcm91cC5zdGFja0ZyYW1lcyxcbiAgICAgICAgICAgICAgICAgICAgYWxsOiBhbGxcbiAgICAgICAgICAgICAgICB9LCBcImNhbGwtc3RhY2stZnJhbWV3b3JrLWdyb3VwLVwiICsgZ3JvdXBJbmRleCArIFwiLVwiICsgYWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybigvLyBEb24ndCBncm91cCBub24gUmVhY3QgYW5kIE5leHQuanMgZnJhbWVzXG4gICAgICAgICAgICBzdGFja0ZyYW1lc0dyb3VwLnN0YWNrRnJhbWVzLm1hcCgoZnJhbWUsIGZyYW1lSW5kZXgpPT4vKiNfX1BVUkVfXyovIF9qc3goQ2FsbFN0YWNrRnJhbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgZnJhbWU6IGZyYW1lXG4gICAgICAgICAgICAgICAgfSwgXCJjYWxsLXN0YWNrLVwiICsgZ3JvdXBJbmRleCArIFwiLVwiICsgZnJhbWVJbmRleCArIFwiLVwiICsgYWxsKSkpO1xuICAgICAgICB9KVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Hcm91cGVkU3RhY2tGcmFtZXMuanMubWFwIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkNhbGxTdGFja0ZyYW1lIiwiRnJhbWV3b3JrSWNvbiIsIkZyYW1ld29ya0dyb3VwIiwicGFyYW0iLCJmcmFtZXdvcmsiLCJzdGFja0ZyYW1lcyIsImFsbCIsImNoaWxkcmVuIiwidGFiSW5kZXgiLCJmaWxsIiwiaGVpZ2h0Iiwid2lkdGgiLCJzaGFwZVJlbmRlcmluZyIsInN0cm9rZSIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInN0cm9rZVdpZHRoIiwidmlld0JveCIsImQiLCJtYXAiLCJmcmFtZSIsImluZGV4IiwiR3JvdXBlZFN0YWNrRnJhbWVzIiwiZ3JvdXBlZFN0YWNrRnJhbWVzIiwic3RhY2tGcmFtZXNHcm91cCIsImdyb3VwSW5kZXgiLCJmcmFtZUluZGV4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/GroupedStackFrames.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/index.js":
-/*!*********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/index.js ***!
- \*********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RuntimeError: () => (/* binding */ RuntimeError),\n/* harmony export */ styles: () => (/* binding */ styles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_CodeFrame__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/CodeFrame */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/index.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n/* harmony import */ var _helpers_group_stack_frames_by_framework__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/group-stack-frames-by-framework */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/group-stack-frames-by-framework.js\");\n/* harmony import */ var _CallStackFrame__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CallStackFrame */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js\");\n/* harmony import */ var _GroupedStackFrames__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./GroupedStackFrames */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/GroupedStackFrames.js\");\n/* harmony import */ var _ComponentStackFrameRow__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ComponentStackFrameRow */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/ComponentStackFrameRow.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n button[data-nextjs-data-runtime-error-collapsed-action] {\\n background: none;\\n border: none;\\n padding: 0;\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-bigger);\\n color: var(--color-accents-3);\\n }\\n\\n [data-nextjs-call-stack-frame]:not(:last-child),\\n [data-nextjs-component-stack-frame]:not(:last-child) {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-nextjs-call-stack-frame] > h3,\\n [data-nextjs-component-stack-frame] > h3 {\\n margin-top: 0;\\n margin-bottom: var(--size-gap);\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-font);\\n color: #222;\\n }\\n [data-nextjs-call-stack-frame] > h3[data-nextjs-frame-expanded='false'] {\\n color: #666;\\n }\\n [data-nextjs-call-stack-frame] > div,\\n [data-nextjs-component-stack-frame] > div {\\n display: flex;\\n align-items: center;\\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\\n font-size: var(--size-font-small);\\n color: #999;\\n }\\n [data-nextjs-call-stack-frame] > div > svg,\\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n flex-shrink: 0;\\n\\n display: none;\\n }\\n\\n [data-nextjs-call-stack-frame] > div[data-has-source],\\n [data-nextjs-component-stack-frame] > [role='link'] {\\n cursor: pointer;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover,\\n [data-nextjs-component-stack-frame] > [role='link']:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg,\\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\\n display: unset;\\n }\\n\\n [data-nextjs-call-stack-framework-icon] {\\n margin-right: var(--size-gap);\\n }\\n [data-nextjs-call-stack-framework-icon='next'] > mask {\\n mask-type: alpha;\\n }\\n [data-nextjs-call-stack-framework-icon='react'] {\\n color: rgb(20, 158, 202);\\n }\\n [data-nextjs-collapsed-call-stack-details][open]\\n [data-nextjs-call-stack-chevron-icon] {\\n transform: rotate(90deg);\\n }\\n [data-nextjs-collapsed-call-stack-details] summary {\\n display: flex;\\n align-items: center;\\n margin: var(--size-gap-double) 0;\\n list-style: none;\\n }\\n [data-nextjs-collapsed-call-stack-details] summary::-webkit-details-marker {\\n display: none;\\n }\\n\\n [data-nextjs-collapsed-call-stack-details] h3 {\\n color: #666;\\n }\\n [data-nextjs-collapsed-call-stack-details] [data-nextjs-call-stack-frame] {\\n margin-bottom: var(--size-gap-double);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\n\n\n\n\n\n\n\nconst RuntimeError = function RuntimeError(param) {\n let { error } = param;\n const firstFirstPartyFrameIndex = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>{\n return error.frames.findIndex((entry)=>entry.expanded && Boolean(entry.originalCodeFrame) && Boolean(entry.originalStackFrame));\n }, [\n error.frames\n ]);\n const firstFrame = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>{\n var _error_frames_firstFirstPartyFrameIndex;\n return (_error_frames_firstFirstPartyFrameIndex = error.frames[firstFirstPartyFrameIndex]) != null ? _error_frames_firstFirstPartyFrameIndex : null;\n }, [\n error.frames,\n firstFirstPartyFrameIndex\n ]);\n const allLeadingFrames = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>firstFirstPartyFrameIndex < 0 ? [] : error.frames.slice(0, firstFirstPartyFrameIndex), [\n error.frames,\n firstFirstPartyFrameIndex\n ]);\n const [all, setAll] = react__WEBPACK_IMPORTED_MODULE_2__.useState(firstFrame == null);\n const toggleAll = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(()=>{\n setAll((v)=>!v);\n }, []);\n const leadingFrames = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>allLeadingFrames.filter((f)=>f.expanded || all), [\n all,\n allLeadingFrames\n ]);\n const allCallStackFrames = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>error.frames.slice(firstFirstPartyFrameIndex + 1), [\n error.frames,\n firstFirstPartyFrameIndex\n ]);\n const visibleCallStackFrames = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>allCallStackFrames.filter((f)=>f.expanded || all), [\n all,\n allCallStackFrames\n ]);\n const canShowMore = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>{\n return allCallStackFrames.length !== visibleCallStackFrames.length || all && firstFrame != null;\n }, [\n all,\n allCallStackFrames.length,\n firstFrame,\n visibleCallStackFrames.length\n ]);\n const stackFramesGroupedByFramework = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(()=>(0,_helpers_group_stack_frames_by_framework__WEBPACK_IMPORTED_MODULE_5__.groupStackFramesByFramework)(visibleCallStackFrames), [\n visibleCallStackFrames\n ]);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [\n firstFrame ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"h2\", {\n children: \"Source\"\n }),\n leadingFrames.map((frame, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_CallStackFrame__WEBPACK_IMPORTED_MODULE_6__.CallStackFrame, {\n frame: frame\n }, \"leading-frame-\" + index + \"-\" + all)),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_components_CodeFrame__WEBPACK_IMPORTED_MODULE_3__.CodeFrame, {\n stackFrame: firstFrame.originalStackFrame,\n codeFrame: firstFrame.originalCodeFrame\n })\n ]\n }) : undefined,\n error.componentStackFrames ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"h2\", {\n children: \"Component Stack\"\n }),\n error.componentStackFrames.map((componentStackFrame, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_ComponentStackFrameRow__WEBPACK_IMPORTED_MODULE_8__.ComponentStackFrameRow, {\n componentStackFrame: componentStackFrame\n }, index))\n ]\n }) : null,\n stackFramesGroupedByFramework.length ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"h2\", {\n children: \"Call Stack\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_GroupedStackFrames__WEBPACK_IMPORTED_MODULE_7__.GroupedStackFrames, {\n groupedStackFrames: stackFramesGroupedByFramework,\n all: all\n })\n ]\n }) : undefined,\n canShowMore ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(\"button\", {\n tabIndex: 10,\n \"data-nextjs-data-runtime-error-collapsed-action\": true,\n type: \"button\",\n onClick: toggleAll,\n children: [\n all ? \"Hide\" : \"Show\",\n \" collapsed frames\"\n ]\n })\n }) : undefined\n ]\n });\n};\nconst styles = (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_4__.noop)(_templateObject());\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBb0c7QUFDcEcsU0FBU0U7SUFDTCxNQUFNQyxPQUFPRiw2RUFBOEJBLENBQUM7UUFDeEM7S0FDSDtJQUNEQyxrQkFBa0I7UUFDZCxPQUFPQztJQUNYO0lBQ0EsT0FBT0E7QUFDWDtBQUNzRjtBQUN2RDtBQUN3QjtBQUNHO0FBQ2tDO0FBQzFDO0FBQ1E7QUFDUTtBQUNsRSxNQUFNZSxlQUFlLFNBQVNBLGFBQWFDLEtBQUs7SUFDNUMsSUFBSSxFQUFFQyxLQUFLLEVBQUUsR0FBR0Q7SUFDaEIsTUFBTUUsNEJBQTRCWCwwQ0FBYSxDQUFDO1FBQzVDLE9BQU9VLE1BQU1HLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDLENBQUNDLFFBQVFBLE1BQU1DLFFBQVEsSUFBSUMsUUFBUUYsTUFBTUcsaUJBQWlCLEtBQUtELFFBQVFGLE1BQU1JLGtCQUFrQjtJQUNqSSxHQUFHO1FBQ0NULE1BQU1HLE1BQU07S0FDZjtJQUNELE1BQU1PLGFBQWFwQiwwQ0FBYSxDQUFDO1FBQzdCLElBQUlxQjtRQUNKLE9BQU8sQ0FBQ0EsMENBQTBDWCxNQUFNRyxNQUFNLENBQUNGLDBCQUEwQixLQUFLLE9BQU9VLDBDQUEwQztJQUNuSixHQUFHO1FBQ0NYLE1BQU1HLE1BQU07UUFDWkY7S0FDSDtJQUNELE1BQU1XLG1CQUFtQnRCLDBDQUFhLENBQUMsSUFBSVcsNEJBQTRCLElBQUksRUFBRSxHQUFHRCxNQUFNRyxNQUFNLENBQUNVLEtBQUssQ0FBQyxHQUFHWiw0QkFBNEI7UUFDOUhELE1BQU1HLE1BQU07UUFDWkY7S0FDSDtJQUNELE1BQU0sQ0FBQ2EsS0FBS0MsT0FBTyxHQUFHekIsMkNBQWMsQ0FBQ29CLGNBQWM7SUFDbkQsTUFBTU8sWUFB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O0FBQ3JCLENBRXhCLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29udGFpbmVyL1J1bnRpbWVFcnJvci9pbmRleC5qcz85NzRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gYXMgX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIH0gZnJvbSBcIkBzd2MvaGVscGVycy9fL190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZVwiO1xuZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCkge1xuICAgIGNvbnN0IGRhdGEgPSBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UoW1xuICAgICAgICBcIlxcbiAgYnV0dG9uW2RhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb2xsYXBzZWQtYWN0aW9uXSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS1mb250LWJpZ2dlcik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTMpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdOm5vdCg6bGFzdC1jaGlsZCksXFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGgzLFxcbiAgW2RhdGEtbmV4dGpzLWNvbXBvbmVudC1zdGFjay1mcmFtZV0gPiBoMyB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQpO1xcbiAgICBjb2xvcjogIzIyMjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGgzW2RhdGEtbmV4dGpzLWZyYW1lLWV4cGFuZGVkPSdmYWxzZSddIHtcXG4gICAgY29sb3I6ICM2NjY7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXYsXFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXSA+IGRpdiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgY29sb3I6ICM5OTk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXYgPiBzdmcsXFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXSA+IFtyb2xlPSdsaW5rJ10gPiBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXApO1xcbiAgICBmbGV4LXNocmluazogMDtcXG5cXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdLFxcbiAgW2RhdGEtbmV4dGpzLWNvbXBvbmVudC1zdGFjay1mcmFtZV0gPiBbcm9sZT0nbGluayddIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV06aG92ZXIsXFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXSA+IFtyb2xlPSdsaW5rJ106aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXSA+IHN2ZyxcXG4gIFtkYXRhLW5leHRqcy1jb21wb25lbnQtc3RhY2stZnJhbWVdID4gW3JvbGU9J2xpbmsnXSA+IHN2ZyB7XFxuICAgIGRpc3BsYXk6IHVuc2V0O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWV3b3JrLWljb25dIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZXdvcmstaWNvbj0nbmV4dCddID4gbWFzayB7XFxuICAgIG1hc2stdHlwZTogYWxwaGE7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZXdvcmstaWNvbj0ncmVhY3QnXSB7XFxuICAgIGNvbG9yOiByZ2IoMjAsIDE1OCwgMjAyKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2xsYXBzZWQtY2FsbC1zdGFjay1kZXRhaWxzXVtvcGVuXVxcbiAgICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jaGV2cm9uLWljb25dIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbGxhcHNlZC1jYWxsLXN0YWNrLWRldGFpbHNdIHN1bW1hcnkge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBtYXJnaW46IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2xsYXBzZWQtY2FsbC1zdGFjay1kZXRhaWxzXSBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2xsYXBzZWQtY2FsbC1zdGFjay1kZXRhaWxzXSBoMyB7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbGxhcHNlZC1jYWxsLXN0YWNrLWRldGFpbHNdIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSB7XFxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICB9XFxuXCJcbiAgICBdKTtcbiAgICBfdGVtcGxhdGVPYmplY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcbiAgICByZXR1cm4gZGF0YTtcbn1cbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzLCBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ29kZUZyYW1lIH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ29kZUZyYW1lXCI7XG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIjtcbmltcG9ydCB7IGdyb3VwU3RhY2tGcmFtZXNCeUZyYW1ld29yayB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL2dyb3VwLXN0YWNrLWZyYW1lcy1ieS1mcmFtZXdvcmtcIjtcbmltcG9ydCB7IENhbGxTdGFja0ZyYW1lIH0gZnJvbSBcIi4vQ2FsbFN0YWNrRnJhbWVcIjtcbmltcG9ydCB7IEdyb3VwZWRTdGFja0ZyYW1lcyB9IGZyb20gXCIuL0dyb3VwZWRTdGFja0ZyYW1lc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RhY2tGcmFtZVJvdyB9IGZyb20gXCIuL0NvbXBvbmVudFN0YWNrRnJhbWVSb3dcIjtcbmNvbnN0IFJ1bnRpbWVFcnJvciA9IGZ1bmN0aW9uIFJ1bnRpbWVFcnJvcihwYXJhbSkge1xuICAgIGxldCB7IGVycm9yIH0gPSBwYXJhbTtcbiAgICBjb25zdCBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4ID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICByZXR1cm4gZXJyb3IuZnJhbWVzLmZpbmRJbmRleCgoZW50cnkpPT5lbnRyeS5leHBhbmRlZCAmJiBCb29sZWFuKGVudHJ5Lm9yaWdpbmFsQ29kZUZyYW1lKSAmJiBCb29sZWFuKGVudHJ5Lm9yaWdpbmFsU3RhY2tGcmFtZSkpO1xuICAgIH0sIFtcbiAgICAgICAgZXJyb3IuZnJhbWVzXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RGcmFtZSA9IFJlYWN0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgdmFyIF9lcnJvcl9mcmFtZXNfZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleDtcbiAgICAgICAgcmV0dXJuIChfZXJyb3JfZnJhbWVzX2ZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXggPSBlcnJvci5mcmFtZXNbZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleF0pICE9IG51bGwgPyBfZXJyb3JfZnJhbWVzX2ZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXggOiBudWxsO1xuICAgIH0sIFtcbiAgICAgICAgZXJyb3IuZnJhbWVzLFxuICAgICAgICBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4XG4gICAgXSk7XG4gICAgY29uc3QgYWxsTGVhZGluZ0ZyYW1lcyA9IFJlYWN0LnVzZU1lbW8oKCk9PmZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXggPCAwID8gW10gOiBlcnJvci5mcmFtZXMuc2xpY2UoMCwgZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCksIFtcbiAgICAgICAgZXJyb3IuZnJhbWVzLFxuICAgICAgICBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4XG4gICAgXSk7XG4gICAgY29uc3QgW2FsbCwgc2V0QWxsXSA9IFJlYWN0LnVzZVN0YXRlKGZpcnN0RnJhbWUgPT0gbnVsbCk7XG4gICAgY29uc3QgdG9nZ2xlQWxsID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgc2V0QWxsKCh2KT0+IXYpO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBsZWFkaW5nRnJhbWVzID0gUmVhY3QudXNlTWVtbygoKT0+YWxsTGVhZGluZ0ZyYW1lcy5maWx0ZXIoKGYpPT5mLmV4cGFuZGVkIHx8IGFsbCksIFtcbiAgICAgICAgYWxsLFxuICAgICAgICBhbGxMZWFkaW5nRnJhbWVzXG4gICAgXSk7XG4gICAgY29uc3QgYWxsQ2FsbFN0YWNrRnJhbWVzID0gUmVhY3QudXNlTWVtbygoKT0+ZXJyb3IuZnJhbWVzLnNsaWNlKGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXggKyAxKSwgW1xuICAgICAgICBlcnJvci5mcmFtZXMsXG4gICAgICAgIGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXhcbiAgICBdKTtcbiAgICBjb25zdCB2aXNpYmxlQ2FsbFN0YWNrRnJhbWVzID0gUmVhY3QudXNlTWVtbygoKT0+YWxsQ2FsbFN0YWNrRnJhbWVzLmZpbHRlcigoZik9PmYuZXhwYW5kZWQgfHwgYWxsKSwgW1xuICAgICAgICBhbGwsXG4gICAgICAgIGFsbENhbGxTdGFja0ZyYW1lc1xuICAgIF0pO1xuICAgIGNvbnN0IGNhblNob3dNb3JlID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICByZXR1cm4gYWxsQ2FsbFN0YWNrRnJhbWVzLmxlbmd0aCAhPT0gdmlzaWJsZUNhbGxTdGFja0ZyYW1lcy5sZW5ndGggfHwgYWxsICYmIGZpcnN0RnJhbWUgIT0gbnVsbDtcbiAgICB9LCBbXG4gICAgICAgIGFsbCxcbiAgICAgICAgYWxsQ2FsbFN0YWNrRnJhbWVzLmxlbmd0aCxcbiAgICAgICAgZmlyc3RGcmFtZSxcbiAgICAgICAgdmlzaWJsZUNhbGxTdGFja0ZyYW1lcy5sZW5ndGhcbiAgICBdKTtcbiAgICBjb25zdCBzdGFja0ZyYW1lc0dyb3VwZWRCeUZyYW1ld29yayA9IFJlYWN0LnVzZU1lbW8oKCk9Pmdyb3VwU3RhY2tGcmFtZXNCeUZyYW1ld29yayh2aXNpYmxlQ2FsbFN0YWNrRnJhbWVzKSwgW1xuICAgICAgICB2aXNpYmxlQ2FsbFN0YWNrRnJhbWVzXG4gICAgXSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoUmVhY3QuRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIGZpcnN0RnJhbWUgPyAvKiNfX1BVUkVfXyovIF9qc3hzKFJlYWN0LkZyYWdtZW50LCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwiaDJcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFwiU291cmNlXCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIGxlYWRpbmdGcmFtZXMubWFwKChmcmFtZSwgaW5kZXgpPT4vKiNfX1BVUkVfXyovIF9qc3goQ2FsbFN0YWNrRnJhbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZTogZnJhbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIFwibGVhZGluZy1mcmFtZS1cIiArIGluZGV4ICsgXCItXCIgKyBhbGwpKSxcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KENvZGVGcmFtZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tGcmFtZTogZmlyc3RGcmFtZS5vcmlnaW5hbFN0YWNrRnJhbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlRnJhbWU6IGZpcnN0RnJhbWUub3JpZ2luYWxDb2RlRnJhbWVcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGVycm9yLmNvbXBvbmVudFN0YWNrRnJhbWVzID8gLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJoMlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogXCJDb21wb25lbnQgU3RhY2tcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuY29tcG9uZW50U3RhY2tGcmFtZXMubWFwKChjb21wb25lbnRTdGFja0ZyYW1lLCBpbmRleCk9Pi8qI19fUFVSRV9fKi8gX2pzeChDb21wb25lbnRTdGFja0ZyYW1lUm93LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50U3RhY2tGcmFtZTogY29tcG9uZW50U3RhY2tGcmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgaW5kZXgpKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgICAgIHN0YWNrRnJhbWVzR3JvdXBlZEJ5RnJhbWV3b3JrLmxlbmd0aCA/IC8qI19fUFVSRV9fKi8gX2pzeHMoUmVhY3QuRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJoMlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogXCJDYWxsIFN0YWNrXCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChHcm91cGVkU3RhY2tGcmFtZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwZWRTdGFja0ZyYW1lczogc3RhY2tGcmFtZXNHcm91cGVkQnlGcmFtZXdvcmssXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGw6IGFsbFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2FuU2hvd01vcmUgPyAvKiNfX1BVUkVfXyovIF9qc3goUmVhY3QuRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4cyhcImJ1dHRvblwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHRhYkluZGV4OiAxMCxcbiAgICAgICAgICAgICAgICAgICAgXCJkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29sbGFwc2VkLWFjdGlvblwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0b2dnbGVBbGwsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGwgPyBcIkhpZGVcIiA6IFwiU2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgY29sbGFwc2VkIGZyYW1lc1wiXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSkgOiB1bmRlZmluZWRcbiAgICAgICAgXVxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBzdHlsZXMgPSBjc3MoX3RlbXBsYXRlT2JqZWN0KCkpO1xuZXhwb3J0IHsgUnVudGltZUVycm9yIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJfIiwiX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIiwiX3RlbXBsYXRlT2JqZWN0IiwiZGF0YSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIlJlYWN0IiwiQ29kZUZyYW1lIiwibm9vcCIsImNzcyIsImdyb3VwU3RhY2tGcmFtZXNCeUZyYW1ld29yayIsIkNhbGxTdGFja0ZyYW1lIiwiR3JvdXBlZFN0YWNrRnJhbWVzIiwiQ29tcG9uZW50U3RhY2tGcmFtZVJvdyIsIlJ1bnRpbWVFcnJvciIsInBhcmFtIiwiZXJyb3IiLCJmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4IiwidXNlTWVtbyIsImZyYW1lcyIsImZpbmRJbmRleCIsImVudHJ5IiwiZXhwYW5kZWQiLCJCb29sZWFuIiwib3JpZ2luYWxDb2RlRnJhbWUiLCJvcmlnaW5hbFN0YWNrRnJhbWUiLCJmaXJzdEZyYW1lIiwiX2Vycm9yX2ZyYW1lc19maXJzdEZpcnN0UGFydHlGcmFtZUluZGV4IiwiYWxsTGVhZGluZ0ZyYW1lcyIsInNsaWNlIiwiYWxsIiwic2V0QWxsIiwidXNlU3RhdGUiLCJ0b2dnbGVBbGwiLCJ1c2VDYWxsYmFjayIsInYiLCJsZWFkaW5nRnJhbWVzIiwiZmlsdGVyIiwiZiIsImFsbENhbGxTdGFja0ZyYW1lcyIsInZpc2libGVDYWxsU3RhY2tGcmFtZXMiLCJjYW5TaG93TW9yZSIsImxlbmd0aCIsInN0YWNrRnJhbWVzR3JvdXBlZEJ5RnJhbWV3b3JrIiwiY2hpbGRyZW4iLCJtYXAiLCJmcmFtZSIsImluZGV4Iiwic3RhY2tGcmFtZSIsImNvZGVGcmFtZSIsInVuZGVmaW5lZCIsImNvbXBvbmVudFN0YWNrRnJhbWVzIiwiY29tcG9uZW50U3RhY2tGcmFtZSIsImdyb3VwZWRTdGFja0ZyYW1lcyIsInRhYkluZGV4IiwidHlwZSIsIm9uQ2xpY2siLCJzdHlsZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/error-overlay-reducer.js":
-/*!**************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/error-overlay-reducer.js ***!
- \**************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACTION_BEFORE_REFRESH: () => (/* binding */ ACTION_BEFORE_REFRESH),\n/* harmony export */ ACTION_BUILD_ERROR: () => (/* binding */ ACTION_BUILD_ERROR),\n/* harmony export */ ACTION_BUILD_OK: () => (/* binding */ ACTION_BUILD_OK),\n/* harmony export */ ACTION_REFRESH: () => (/* binding */ ACTION_REFRESH),\n/* harmony export */ ACTION_UNHANDLED_ERROR: () => (/* binding */ ACTION_UNHANDLED_ERROR),\n/* harmony export */ ACTION_UNHANDLED_REJECTION: () => (/* binding */ ACTION_UNHANDLED_REJECTION),\n/* harmony export */ ACTION_VERSION_INFO: () => (/* binding */ ACTION_VERSION_INFO),\n/* harmony export */ INITIAL_OVERLAY_STATE: () => (/* binding */ INITIAL_OVERLAY_STATE),\n/* harmony export */ errorOverlayReducer: () => (/* binding */ errorOverlayReducer)\n/* harmony export */ });\nconst ACTION_BUILD_OK = \"build-ok\";\nconst ACTION_BUILD_ERROR = \"build-error\";\nconst ACTION_BEFORE_REFRESH = \"before-fast-refresh\";\nconst ACTION_REFRESH = \"fast-refresh\";\nconst ACTION_UNHANDLED_ERROR = \"unhandled-error\";\nconst ACTION_UNHANDLED_REJECTION = \"unhandled-rejection\";\nconst ACTION_VERSION_INFO = \"version-info\";\nconst INITIAL_OVERLAY_STATE = {\n nextId: 1,\n buildError: null,\n errors: [],\n notFound: false,\n refreshState: {\n type: \"idle\"\n },\n versionInfo: {\n installed: \"0.0.0\",\n staleness: \"unknown\"\n }\n};\nfunction pushErrorFilterDuplicates(errors, err) {\n return [\n ...errors.filter((e)=>{\n // Filter out duplicate errors\n return e.event.reason !== err.event.reason;\n }),\n err\n ];\n}\nconst errorOverlayReducer = (state, action)=>{\n switch(action.type){\n case ACTION_BUILD_OK:\n {\n return {\n ...state,\n buildError: null\n };\n }\n case ACTION_BUILD_ERROR:\n {\n return {\n ...state,\n buildError: action.message\n };\n }\n case ACTION_BEFORE_REFRESH:\n {\n return {\n ...state,\n refreshState: {\n type: \"pending\",\n errors: []\n }\n };\n }\n case ACTION_REFRESH:\n {\n return {\n ...state,\n buildError: null,\n errors: // and UNHANDLED_REJECTION events might be dispatched between the\n // BEFORE_REFRESH and the REFRESH event. We want to keep those errors\n // around until the next refresh. Otherwise we run into a race\n // condition where those errors would be cleared on refresh completion\n // before they can be displayed.\n state.refreshState.type === \"pending\" ? state.refreshState.errors : [],\n refreshState: {\n type: \"idle\"\n }\n };\n }\n case ACTION_UNHANDLED_ERROR:\n case ACTION_UNHANDLED_REJECTION:\n {\n switch(state.refreshState.type){\n case \"idle\":\n {\n return {\n ...state,\n nextId: state.nextId + 1,\n errors: pushErrorFilterDuplicates(state.errors, {\n id: state.nextId,\n event: action\n })\n };\n }\n case \"pending\":\n {\n return {\n ...state,\n nextId: state.nextId + 1,\n refreshState: {\n ...state.refreshState,\n errors: pushErrorFilterDuplicates(state.refreshState.errors, {\n id: state.nextId,\n event: action\n })\n }\n };\n }\n default:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = state.refreshState;\n return state;\n }\n }\n case ACTION_VERSION_INFO:\n {\n return {\n ...state,\n versionInfo: action.versionInfo\n };\n }\n default:\n {\n return state;\n }\n }\n}; //# sourceMappingURL=error-overlay-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvZXJyb3Itb3ZlcmxheS1yZWR1Y2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFPLE1BQU1BLGtCQUFrQixXQUFXO0FBQ25DLE1BQU1DLHFCQUFxQixjQUFjO0FBQ3pDLE1BQU1DLHdCQUF3QixzQkFBc0I7QUFDcEQsTUFBTUMsaUJBQWlCLGVBQWU7QUFDdEMsTUFBTUMseUJBQXlCLGtCQUFrQjtBQUNqRCxNQUFNQyw2QkFBNkIsc0JBQXNCO0FBQ3pELE1BQU1DLHNCQUFzQixlQUFlO0FBQzNDLE1BQU1DLHdCQUF3QjtJQUNqQ0MsUUFBUTtJQUNSQyxZQUFZO0lBQ1pDLFFBQVEsRUFBRTtJQUNWQyxVQUFVO0lBQ1ZDLGNBQWM7UUFDVkMsTUFBTTtJQUNWO0lBQ0FDLGFBQWE7UUFDVEMsV0FBVztRQUNYQyxXQUFXO0lBQ2Y7QUFDSixFQUFFO0FBQ0YsU0FBU0MsMEJBQTBCUCxNQUFNLEVBQUVRLEdBQUc7SUFDMUMsT0FBTztXQUNBUixPQUFPUyxNQUFNLENBQUMsQ0FBQ0M7WUFDZCw4QkFBOEI7WUFDOUIsT0FBT0EsRUFBRUMsS0FBSyxDQUFDQyxNQUFNLEtBQUtKLElBQUlHLEtBQUssQ0FBQ0MsTUFBTTtRQUM5QztRQUNBSjtLQUNIO0FBQ0w7QUFDTyxNQUFNSyxzQkFBc0IsQ0FBQ0MsT0FBT0M7SUFDdkMsT0FBT0EsT0FBT1osSUFBSTtRQUNkLEtBQUtiO1lBQ0Q7Z0JBQ0ksT0FBTztvQkFDSCxHQUFHd0IsS0FBSztvQkFDUmYsWUFBWTtnQkFDaEI7WUFDSjtRQUNKLEtBQUtSO1lBQ0Q7Z0JBQ0ksT0FBTztvQkFDSCxHQUFHdUIsS0FBSztvQkFDUmYsWUFBWWdCLE9BQU9DLE9BQU87Z0JBQzlCO1lBQ0o7UUFDSixLQUFLeEI7WUFDRDtnQkFDSSxPQUFPO29CQUNILEdBQUdzQixLQUFLO29CQUNSWixjQUFjO3dCQUNWQyxNQUFNO3dCQUNOSCxRQUFRLEVBQUU7b0JBQ2Q7Z0JBQ0o7WUFDSjtRQUNKLEtBQUtQO1lBQ0Q7Z0JBQ0ksT0FBTztvQkFDSCxHQUFHcUIsS0FBSztvQkFDUmYsWUFBWTtvQkFDWkMsUUFDQSxpRUFBaUU7b0JBQ2pFLHFFQUFxRTtvQkFDckUsOERBQThEO29CQUM5RCxzRUFBc0U7b0JBQ3RFLGdDQUFnQztvQkFDaENjLE1BQU1aLFlBQVksQ0FBQ0MsSUFBSSxLQUFLLFlBQVlXLE1BQU1aLFlBQVksQ0FBQ0YsTUFBTSxHQUFHLEVBQUU7b0JBQ3RFRSxjQUFjO3dCQUNWQyxNQUFNO29CQUNWO2dCQUNKO1lBQ0o7UUFDSixLQUFLVDtRQUNMLEtBQUtDO1lBQ0Q7Z0JBQ0ksT0FBT21CLE1BQU1aLFlBQVksQ0FBQ0MsSUFBSTtvQkFDMUIsS0FBSzt3QkFDRDs0QkFDSSxPQUFPO2dDQUNILEdBQUdXLEtBQUs7Z0NBQ1JoQixRQUFRZ0IsTUFBTWhCLE1BQU0sR0FBRztnQ0FDdkJFLFFBQVFPLDBCQUEwQk8sTUFBTWQsTUFBTSxFQUFFO29DQUM1Q2lCLElBQUlILE1BQU1oQixNQUFNO29DQUNoQmEsT0FBT0k7Z0NBQ1g7NEJBQ0o7d0JBQ0o7b0JBQ0osS0FBSzt3QkFDRDs0QkFDSSxPQUFPO2dDQUNILEdBQUdELEtBQUs7Z0NBQ1JoQixRQUFRZ0IsTUFBTWhCLE1BQU0sR0FBRztnQ0FDdkJJLGNBQWM7b0NBQ1YsR0FBR1ksTUFBTVosWUFBWTtvQ0FDckJGLFFBQVFPLDBCQUEwQk8sTUFBTVosWUFBWSxDQUFDRixNQUFNLEVBQUU7d0NBQ3pEaUIsSUFBSUgsTUFBTWhCLE1BQU07d0NBQ2hCYSxPQUFPSTtvQ0FDWDtnQ0FDSjs0QkFDSjt3QkFDSjtvQkFDSjt3QkFDSSw2REFBNkQ7d0JBQzdELE1BQU1HLElBQUlKLE1BQU1aLFlBQVk7d0JBQzVCLE9BQU9ZO2dCQUNmO1lBQ0o7UUFDSixLQUFLbEI7WUFDRDtnQkFDSSxPQUFPO29CQUNILEdBQUdrQixLQUFLO29CQUNSVixhQUFhVyxPQUFPWCxXQUFXO2dCQUNuQztZQUNKO1FBQ0o7WUFDSTtnQkFDSSxPQUFPVTtZQUNYO0lBQ1I7QUFDSixFQUFFLENBRUYsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9lcnJvci1vdmVybGF5LXJlZHVjZXIuanM/MTEzMyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUNUSU9OX0JVSUxEX09LID0gXCJidWlsZC1va1wiO1xuZXhwb3J0IGNvbnN0IEFDVElPTl9CVUlMRF9FUlJPUiA9IFwiYnVpbGQtZXJyb3JcIjtcbmV4cG9ydCBjb25zdCBBQ1RJT05fQkVGT1JFX1JFRlJFU0ggPSBcImJlZm9yZS1mYXN0LXJlZnJlc2hcIjtcbmV4cG9ydCBjb25zdCBBQ1RJT05fUkVGUkVTSCA9IFwiZmFzdC1yZWZyZXNoXCI7XG5leHBvcnQgY29uc3QgQUNUSU9OX1VOSEFORExFRF9FUlJPUiA9IFwidW5oYW5kbGVkLWVycm9yXCI7XG5leHBvcnQgY29uc3QgQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04gPSBcInVuaGFuZGxlZC1yZWplY3Rpb25cIjtcbmV4cG9ydCBjb25zdCBBQ1RJT05fVkVSU0lPTl9JTkZPID0gXCJ2ZXJzaW9uLWluZm9cIjtcbmV4cG9ydCBjb25zdCBJTklUSUFMX09WRVJMQVlfU1RBVEUgPSB7XG4gICAgbmV4dElkOiAxLFxuICAgIGJ1aWxkRXJyb3I6IG51bGwsXG4gICAgZXJyb3JzOiBbXSxcbiAgICBub3RGb3VuZDogZmFsc2UsXG4gICAgcmVmcmVzaFN0YXRlOiB7XG4gICAgICAgIHR5cGU6IFwiaWRsZVwiXG4gICAgfSxcbiAgICB2ZXJzaW9uSW5mbzoge1xuICAgICAgICBpbnN0YWxsZWQ6IFwiMC4wLjBcIixcbiAgICAgICAgc3RhbGVuZXNzOiBcInVua25vd25cIlxuICAgIH1cbn07XG5mdW5jdGlvbiBwdXNoRXJyb3JGaWx0ZXJEdXBsaWNhdGVzKGVycm9ycywgZXJyKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgLi4uZXJyb3JzLmZpbHRlcigoZSk9PntcbiAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgZHVwbGljYXRlIGVycm9yc1xuICAgICAgICAgICAgcmV0dXJuIGUuZXZlbnQucmVhc29uICE9PSBlcnIuZXZlbnQucmVhc29uO1xuICAgICAgICB9KSxcbiAgICAgICAgZXJyXG4gICAgXTtcbn1cbmV4cG9ydCBjb25zdCBlcnJvck92ZXJsYXlSZWR1Y2VyID0gKHN0YXRlLCBhY3Rpb24pPT57XG4gICAgc3dpdGNoKGFjdGlvbi50eXBlKXtcbiAgICAgICAgY2FzZSBBQ1RJT05fQlVJTERfT0s6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkRXJyb3I6IG51bGxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEFDVElPTl9CVUlMRF9FUlJPUjpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRFcnJvcjogYWN0aW9uLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEFDVElPTl9CRUZPUkVfUkVGUkVTSDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInBlbmRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogW11cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgQUNUSU9OX1JFRlJFU0g6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkRXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yczogLy8gRXJyb3JzIGNhbiBjb21lIGluIGR1cmluZyB1cGRhdGVzLiBJbiB0aGlzIGNhc2UsIFVOSEFORExFRF9FUlJPUlxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgVU5IQU5ETEVEX1JFSkVDVElPTiBldmVudHMgbWlnaHQgYmUgZGlzcGF0Y2hlZCBiZXR3ZWVuIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBCRUZPUkVfUkVGUkVTSCBhbmQgdGhlIFJFRlJFU0ggZXZlbnQuIFdlIHdhbnQgdG8ga2VlcCB0aG9zZSBlcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgLy8gYXJvdW5kIHVudGlsIHRoZSBuZXh0IHJlZnJlc2guIE90aGVyd2lzZSB3ZSBydW4gaW50byBhIHJhY2VcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uZGl0aW9uIHdoZXJlIHRob3NlIGVycm9ycyB3b3VsZCBiZSBjbGVhcmVkIG9uIHJlZnJlc2ggY29tcGxldGlvblxuICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhleSBjYW4gYmUgZGlzcGxheWVkLlxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5yZWZyZXNoU3RhdGUudHlwZSA9PT0gXCJwZW5kaW5nXCIgPyBzdGF0ZS5yZWZyZXNoU3RhdGUuZXJyb3JzIDogW10sXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgQUNUSU9OX1VOSEFORExFRF9FUlJPUjpcbiAgICAgICAgY2FzZSBBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTjpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2goc3RhdGUucmVmcmVzaFN0YXRlLnR5cGUpe1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiaWRsZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0SWQ6IHN0YXRlLm5leHRJZCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogcHVzaEVycm9yRmlsdGVyRHVwbGljYXRlcyhzdGF0ZS5lcnJvcnMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBzdGF0ZS5uZXh0SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudDogYWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dElkOiBzdGF0ZS5uZXh0SWQgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlLnJlZnJlc2hTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yczogcHVzaEVycm9yRmlsdGVyRHVwbGljYXRlcyhzdGF0ZS5yZWZyZXNoU3RhdGUuZXJyb3JzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHN0YXRlLm5leHRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudDogYWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBzdGF0ZS5yZWZyZXNoU3RhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEFDVElPTl9WRVJTSU9OX0lORk86XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb25JbmZvOiBhY3Rpb24udmVyc2lvbkluZm9cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci1vdmVybGF5LXJlZHVjZXIuanMubWFwIl0sIm5hbWVzIjpbIkFDVElPTl9CVUlMRF9PSyIsIkFDVElPTl9CVUlMRF9FUlJPUiIsIkFDVElPTl9CRUZPUkVfUkVGUkVTSCIsIkFDVElPTl9SRUZSRVNIIiwiQUNUSU9OX1VOSEFORExFRF9FUlJPUiIsIkFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OIiwiQUNUSU9OX1ZFUlNJT05fSU5GTyIsIklOSVRJQUxfT1ZFUkxBWV9TVEFURSIsIm5leHRJZCIsImJ1aWxkRXJyb3IiLCJlcnJvcnMiLCJub3RGb3VuZCIsInJlZnJlc2hTdGF0ZSIsInR5cGUiLCJ2ZXJzaW9uSW5mbyIsImluc3RhbGxlZCIsInN0YWxlbmVzcyIsInB1c2hFcnJvckZpbHRlckR1cGxpY2F0ZXMiLCJlcnIiLCJmaWx0ZXIiLCJlIiwiZXZlbnQiLCJyZWFzb24iLCJlcnJvck92ZXJsYXlSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJtZXNzYWdlIiwiaWQiLCJfIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/error-overlay-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/get-socket-url.js":
-/*!***************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/get-socket-url.js ***!
- \***************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getSocketUrl: () => (/* binding */ getSocketUrl)\n/* harmony export */ });\nfunction getSocketProtocol(assetPrefix) {\n let protocol = window.location.protocol;\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (e) {}\n return protocol === \"http:\" ? \"ws\" : \"wss\";\n}\nfunction getSocketUrl(assetPrefix) {\n const { hostname, port } = window.location;\n const protocol = getSocketProtocol(assetPrefix);\n const normalizedAssetPrefix = assetPrefix.replace(/^\\/+/, \"\");\n let url = protocol + \"://\" + hostname + \":\" + port + (normalizedAssetPrefix ? \"/\" + normalizedAssetPrefix : \"\");\n if (normalizedAssetPrefix.startsWith(\"http\")) {\n url = protocol + \"://\" + normalizedAssetPrefix.split(\"://\", 2)[1];\n }\n return url;\n} //# sourceMappingURL=get-socket-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9nZXQtc29ja2V0LXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBU0Esa0JBQWtCQyxXQUFXO0lBQ2xDLElBQUlDLFdBQVdDLE9BQU9DLFFBQVEsQ0FBQ0YsUUFBUTtJQUN2QyxJQUFJO1FBQ0EsdUJBQXVCO1FBQ3ZCQSxXQUFXLElBQUlHLElBQUlKLGFBQWFDLFFBQVE7SUFDNUMsRUFBRSxPQUFPSSxHQUFHLENBQUM7SUFDYixPQUFPSixhQUFhLFVBQVUsT0FBTztBQUN6QztBQUNPLFNBQVNLLGFBQWFOLFdBQVc7SUFDcEMsTUFBTSxFQUFFTyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFHTixPQUFPQyxRQUFRO0lBQzFDLE1BQU1GLFdBQVdGLGtCQUFrQkM7SUFDbkMsTUFBTVMsd0JBQXdCVCxZQUFZVSxPQUFPLENBQUMsUUFBUTtJQUMxRCxJQUFJQyxNQUFNVixXQUFXLFFBQVFNLFdBQVcsTUFBTUMsT0FBUUMsQ0FBQUEsd0JBQXdCLE1BQU1BLHdCQUF3QixFQUFDO0lBQzdHLElBQUlBLHNCQUFzQkcsVUFBVSxDQUFDLFNBQVM7UUFDMUNELE1BQU1WLFdBQVcsUUFBUVEsc0JBQXNCSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtJQUNyRTtJQUNBLE9BQU9GO0FBQ1gsRUFFQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZ2V0LXNvY2tldC11cmwuanM/N2U5MyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeCkge1xuICAgIGxldCBwcm90b2NvbCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbDtcbiAgICB0cnkge1xuICAgICAgICAvLyBhc3NldFByZWZpeCBpcyBhIHVybFxuICAgICAgICBwcm90b2NvbCA9IG5ldyBVUkwoYXNzZXRQcmVmaXgpLnByb3RvY29sO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgcmV0dXJuIHByb3RvY29sID09PSBcImh0dHA6XCIgPyBcIndzXCIgOiBcIndzc1wiO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvY2tldFVybChhc3NldFByZWZpeCkge1xuICAgIGNvbnN0IHsgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICBjb25zdCBwcm90b2NvbCA9IGdldFNvY2tldFByb3RvY29sKGFzc2V0UHJlZml4KTtcbiAgICBjb25zdCBub3JtYWxpemVkQXNzZXRQcmVmaXggPSBhc3NldFByZWZpeC5yZXBsYWNlKC9eXFwvKy8sIFwiXCIpO1xuICAgIGxldCB1cmwgPSBwcm90b2NvbCArIFwiOi8vXCIgKyBob3N0bmFtZSArIFwiOlwiICsgcG9ydCArIChub3JtYWxpemVkQXNzZXRQcmVmaXggPyBcIi9cIiArIG5vcm1hbGl6ZWRBc3NldFByZWZpeCA6IFwiXCIpO1xuICAgIGlmIChub3JtYWxpemVkQXNzZXRQcmVmaXguc3RhcnRzV2l0aChcImh0dHBcIikpIHtcbiAgICAgICAgdXJsID0gcHJvdG9jb2wgKyBcIjovL1wiICsgbm9ybWFsaXplZEFzc2V0UHJlZml4LnNwbGl0KFwiOi8vXCIsIDIpWzFdO1xuICAgIH1cbiAgICByZXR1cm4gdXJsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtc29ja2V0LXVybC5qcy5tYXAiXSwibmFtZXMiOlsiZ2V0U29ja2V0UHJvdG9jb2wiLCJhc3NldFByZWZpeCIsInByb3RvY29sIiwid2luZG93IiwibG9jYXRpb24iLCJVUkwiLCJlIiwiZ2V0U29ja2V0VXJsIiwiaG9zdG5hbWUiLCJwb3J0Iiwibm9ybWFsaXplZEFzc2V0UHJlZml4IiwicmVwbGFjZSIsInVybCIsInN0YXJ0c1dpdGgiLCJzcGxpdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/get-socket-url.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/getErrorByType.js":
-/*!***************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/getErrorByType.js ***!
- \***************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getErrorByType: () => (/* binding */ getErrorByType)\n/* harmony export */ });\n/* harmony import */ var _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../error-overlay-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/error-overlay-reducer.js\");\n/* harmony import */ var _nodeStackFrames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nodeStackFrames */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js\");\n/* harmony import */ var _stack_frame__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stack-frame */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\n\n\n\nasync function getErrorByType(ev) {\n const { id, event } = ev;\n switch(event.type){\n case _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_0__.ACTION_UNHANDLED_ERROR:\n case _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_0__.ACTION_UNHANDLED_REJECTION:\n {\n const readyRuntimeError = {\n id,\n runtime: true,\n error: event.reason,\n frames: await (0,_stack_frame__WEBPACK_IMPORTED_MODULE_2__.getOriginalStackFrames)(event.frames, (0,_nodeStackFrames__WEBPACK_IMPORTED_MODULE_1__.getErrorSource)(event.reason), event.reason.toString())\n };\n if (event.type === _error_overlay_reducer__WEBPACK_IMPORTED_MODULE_0__.ACTION_UNHANDLED_ERROR) {\n readyRuntimeError.componentStackFrames = event.componentStackFrames;\n }\n return readyRuntimeError;\n }\n default:\n {\n break;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = event;\n throw new Error(\"type system invariant violation\");\n} //# sourceMappingURL=getErrorByType.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9nZXRFcnJvckJ5VHlwZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQThGO0FBQzNDO0FBQ0k7QUFDaEQsZUFBZUksZUFBZUMsRUFBRTtJQUNuQyxNQUFNLEVBQUVDLEVBQUUsRUFBRUMsS0FBSyxFQUFFLEdBQUdGO0lBQ3RCLE9BQU9FLE1BQU1DLElBQUk7UUFDYixLQUFLUiwwRUFBc0JBO1FBQzNCLEtBQUtDLDhFQUEwQkE7WUFDM0I7Z0JBQ0ksTUFBTVEsb0JBQW9CO29CQUN0Qkg7b0JBQ0FJLFNBQVM7b0JBQ1RDLE9BQU9KLE1BQU1LLE1BQU07b0JBQ25CQyxRQUFRLE1BQU1WLG9FQUFzQkEsQ0FBQ0ksTUFBTU0sTUFBTSxFQUFFWCxnRUFBY0EsQ0FBQ0ssTUFBTUssTUFBTSxHQUFHTCxNQUFNSyxNQUFNLENBQUNFLFFBQVE7Z0JBQzFHO2dCQUNBLElBQUlQLE1BQU1DLElBQUksS0FBS1IsMEVBQXNCQSxFQUFFO29CQUN2Q1Msa0JBQWtCTSxvQkFBb0IsR0FBR1IsTUFBTVEsb0JBQW9CO2dCQUN2RTtnQkFDQSxPQUFPTjtZQUNYO1FBQ0o7WUFDSTtnQkFDSTtZQUNKO0lBQ1I7SUFDQSw2REFBNkQ7SUFDN0QsTUFBTU8sSUFBSVQ7SUFDVixNQUFNLElBQUlVLE1BQU07QUFDcEIsRUFFQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZ2V0RXJyb3JCeVR5cGUuanM/NTZkOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SLCBBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTiB9IGZyb20gXCIuLi9lcnJvci1vdmVybGF5LXJlZHVjZXJcIjtcbmltcG9ydCB7IGdldEVycm9yU291cmNlIH0gZnJvbSBcIi4vbm9kZVN0YWNrRnJhbWVzXCI7XG5pbXBvcnQgeyBnZXRPcmlnaW5hbFN0YWNrRnJhbWVzIH0gZnJvbSBcIi4vc3RhY2stZnJhbWVcIjtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFcnJvckJ5VHlwZShldikge1xuICAgIGNvbnN0IHsgaWQsIGV2ZW50IH0gPSBldjtcbiAgICBzd2l0Y2goZXZlbnQudHlwZSl7XG4gICAgICAgIGNhc2UgQUNUSU9OX1VOSEFORExFRF9FUlJPUjpcbiAgICAgICAgY2FzZSBBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTjpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWFkeVJ1bnRpbWVFcnJvciA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgIHJ1bnRpbWU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBldmVudC5yZWFzb24sXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lczogYXdhaXQgZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyhldmVudC5mcmFtZXMsIGdldEVycm9yU291cmNlKGV2ZW50LnJlYXNvbiksIGV2ZW50LnJlYXNvbi50b1N0cmluZygpKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEFDVElPTl9VTkhBTkRMRURfRVJST1IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVhZHlSdW50aW1lRXJyb3IuY29tcG9uZW50U3RhY2tGcmFtZXMgPSBldmVudC5jb21wb25lbnRTdGFja0ZyYW1lcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlYWR5UnVudGltZUVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgXyA9IGV2ZW50O1xuICAgIHRocm93IG5ldyBFcnJvcihcInR5cGUgc3lzdGVtIGludmFyaWFudCB2aW9sYXRpb25cIik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldEVycm9yQnlUeXBlLmpzLm1hcCJdLCJuYW1lcyI6WyJBQ1RJT05fVU5IQU5ETEVEX0VSUk9SIiwiQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04iLCJnZXRFcnJvclNvdXJjZSIsImdldE9yaWdpbmFsU3RhY2tGcmFtZXMiLCJnZXRFcnJvckJ5VHlwZSIsImV2IiwiaWQiLCJldmVudCIsInR5cGUiLCJyZWFkeVJ1bnRpbWVFcnJvciIsInJ1bnRpbWUiLCJlcnJvciIsInJlYXNvbiIsImZyYW1lcyIsInRvU3RyaW5nIiwiY29tcG9uZW50U3RhY2tGcmFtZXMiLCJfIiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/getErrorByType.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/group-stack-frames-by-framework.js":
-/*!********************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/group-stack-frames-by-framework.js ***!
- \********************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ groupStackFramesByFramework: () => (/* binding */ groupStackFramesByFramework)\n/* harmony export */ });\n/**\n * Get the origin framework of the stack frame by package name.\n */ function getFramework(sourcePackage) {\n if (!sourcePackage) return undefined;\n if (/^(react|react-dom|react-is|react-refresh|react-server-dom-webpack|react-server-dom-turbopack|scheduler)$/.test(sourcePackage)) {\n return \"react\";\n } else if (sourcePackage === \"next\") {\n return \"next\";\n }\n return undefined;\n}\n/**\n * Group sequences of stack frames by framework.\n *\n * Given the following stack frames:\n * Error\n * user code\n * user code\n * react\n * react\n * next\n * next\n * react\n * react\n *\n * The grouped stack frames would be:\n * > user code\n * > react\n * > next\n * > react\n *\n */ function groupStackFramesByFramework(stackFrames) {\n const stackFramesGroupedByFramework = [];\n for (const stackFrame of stackFrames){\n const currentGroup = stackFramesGroupedByFramework[stackFramesGroupedByFramework.length - 1];\n const framework = getFramework(stackFrame.sourcePackage);\n if (currentGroup && currentGroup.framework === framework) {\n currentGroup.stackFrames.push(stackFrame);\n } else {\n stackFramesGroupedByFramework.push({\n framework: framework,\n stackFrames: [\n stackFrame\n ]\n });\n }\n }\n return stackFramesGroupedByFramework;\n} //# sourceMappingURL=group-stack-frames-by-framework.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9ncm91cC1zdGFjay1mcmFtZXMtYnktZnJhbWV3b3JrLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Q0FFQyxHQUFHLFNBQVNBLGFBQWFDLGFBQWE7SUFDbkMsSUFBSSxDQUFDQSxlQUFlLE9BQU9DO0lBQzNCLElBQUksMkdBQTJHQyxJQUFJLENBQUNGLGdCQUFnQjtRQUNoSSxPQUFPO0lBQ1gsT0FBTyxJQUFJQSxrQkFBa0IsUUFBUTtRQUNqQyxPQUFPO0lBQ1g7SUFDQSxPQUFPQztBQUNYO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBb0JDLEdBQVUsU0FBU0UsNEJBQTRCQyxXQUFXO0lBQ3ZELE1BQU1DLGdDQUFnQyxFQUFFO0lBQ3hDLEtBQUssTUFBTUMsY0FBY0YsWUFBWTtRQUNqQyxNQUFNRyxlQUFlRiw2QkFBNkIsQ0FBQ0EsOEJBQThCRyxNQUFNLEdBQUcsRUFBRTtRQUM1RixNQUFNQyxZQUFZVixhQUFhTyxXQUFXTixhQUFhO1FBQ3ZELElBQUlPLGdCQUFnQkEsYUFBYUUsU0FBUyxLQUFLQSxXQUFXO1lBQ3RERixhQUFhSCxXQUFXLENBQUNNLElBQUksQ0FBQ0o7UUFDbEMsT0FBTztZQUNIRCw4QkFBOEJLLElBQUksQ0FBQztnQkFDL0JELFdBQVdBO2dCQUNYTCxhQUFhO29CQUNURTtpQkFDSDtZQUNMO1FBQ0o7SUFDSjtJQUNBLE9BQU9EO0FBQ1gsRUFFQSwyREFBMkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZ3JvdXAtc3RhY2stZnJhbWVzLWJ5LWZyYW1ld29yay5qcz84NTIxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2V0IHRoZSBvcmlnaW4gZnJhbWV3b3JrIG9mIHRoZSBzdGFjayBmcmFtZSBieSBwYWNrYWdlIG5hbWUuXG4gKi8gZnVuY3Rpb24gZ2V0RnJhbWV3b3JrKHNvdXJjZVBhY2thZ2UpIHtcbiAgICBpZiAoIXNvdXJjZVBhY2thZ2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKC9eKHJlYWN0fHJlYWN0LWRvbXxyZWFjdC1pc3xyZWFjdC1yZWZyZXNofHJlYWN0LXNlcnZlci1kb20td2VicGFja3xyZWFjdC1zZXJ2ZXItZG9tLXR1cmJvcGFja3xzY2hlZHVsZXIpJC8udGVzdChzb3VyY2VQYWNrYWdlKSkge1xuICAgICAgICByZXR1cm4gXCJyZWFjdFwiO1xuICAgIH0gZWxzZSBpZiAoc291cmNlUGFja2FnZSA9PT0gXCJuZXh0XCIpIHtcbiAgICAgICAgcmV0dXJuIFwibmV4dFwiO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuLyoqXG4gKiBHcm91cCBzZXF1ZW5jZXMgb2Ygc3RhY2sgZnJhbWVzIGJ5IGZyYW1ld29yay5cbiAqXG4gKiBHaXZlbiB0aGUgZm9sbG93aW5nIHN0YWNrIGZyYW1lczpcbiAqIEVycm9yXG4gKiAgIHVzZXIgY29kZVxuICogICB1c2VyIGNvZGVcbiAqICAgcmVhY3RcbiAqICAgcmVhY3RcbiAqICAgbmV4dFxuICogICBuZXh0XG4gKiAgIHJlYWN0XG4gKiAgIHJlYWN0XG4gKlxuICogVGhlIGdyb3VwZWQgc3RhY2sgZnJhbWVzIHdvdWxkIGJlOlxuICogPiB1c2VyIGNvZGVcbiAqID4gcmVhY3RcbiAqID4gbmV4dFxuICogPiByZWFjdFxuICpcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ3JvdXBTdGFja0ZyYW1lc0J5RnJhbWV3b3JrKHN0YWNrRnJhbWVzKSB7XG4gICAgY29uc3Qgc3RhY2tGcmFtZXNHcm91cGVkQnlGcmFtZXdvcmsgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHN0YWNrRnJhbWUgb2Ygc3RhY2tGcmFtZXMpe1xuICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSBzdGFja0ZyYW1lc0dyb3VwZWRCeUZyYW1ld29ya1tzdGFja0ZyYW1lc0dyb3VwZWRCeUZyYW1ld29yay5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgZnJhbWV3b3JrID0gZ2V0RnJhbWV3b3JrKHN0YWNrRnJhbWUuc291cmNlUGFja2FnZSk7XG4gICAgICAgIGlmIChjdXJyZW50R3JvdXAgJiYgY3VycmVudEdyb3VwLmZyYW1ld29yayA9PT0gZnJhbWV3b3JrKSB7XG4gICAgICAgICAgICBjdXJyZW50R3JvdXAuc3RhY2tGcmFtZXMucHVzaChzdGFja0ZyYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YWNrRnJhbWVzR3JvdXBlZEJ5RnJhbWV3b3JrLnB1c2goe1xuICAgICAgICAgICAgICAgIGZyYW1ld29yazogZnJhbWV3b3JrLFxuICAgICAgICAgICAgICAgIHN0YWNrRnJhbWVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHN0YWNrRnJhbWVcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RhY2tGcmFtZXNHcm91cGVkQnlGcmFtZXdvcms7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdyb3VwLXN0YWNrLWZyYW1lcy1ieS1mcmFtZXdvcmsuanMubWFwIl0sIm5hbWVzIjpbImdldEZyYW1ld29yayIsInNvdXJjZVBhY2thZ2UiLCJ1bmRlZmluZWQiLCJ0ZXN0IiwiZ3JvdXBTdGFja0ZyYW1lc0J5RnJhbWV3b3JrIiwic3RhY2tGcmFtZXMiLCJzdGFja0ZyYW1lc0dyb3VwZWRCeUZyYW1ld29yayIsInN0YWNrRnJhbWUiLCJjdXJyZW50R3JvdXAiLCJsZW5ndGgiLCJmcmFtZXdvcmsiLCJwdXNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/group-stack-frames-by-framework.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js":
-/*!*********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js ***!
- \*********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hydrationErrorComponentStack: () => (/* binding */ hydrationErrorComponentStack),\n/* harmony export */ hydrationErrorWarning: () => (/* binding */ hydrationErrorWarning),\n/* harmony export */ patchConsoleError: () => (/* binding */ patchConsoleError)\n/* harmony export */ });\nlet hydrationErrorWarning;\nlet hydrationErrorComponentStack;\n// https://github.com/facebook/react/blob/main/packages/react-dom/src/__tests__/ReactDOMHydrationDiff-test.js used as a reference\nconst knownHydrationWarnings = new Set([\n 'Warning: Text content did not match. Server: \"%s\" Client: \"%s\"%s',\n \"Warning: Expected server HTML to contain a matching <%s> in <%s>.%s\",\n 'Warning: Expected server HTML to contain a matching text node for \"%s\" in <%s>.%s',\n \"Warning: Did not expect server HTML to contain a <%s> in <%s>.%s\",\n 'Warning: Did not expect server HTML to contain the text node \"%s\" in <%s>.%s'\n]);\n/**\n * Patch console.error to capture hydration errors.\n * If any of the knownHydrationWarnings are logged, store the message and component stack.\n * When the hydration runtime error is thrown, the message and component stack are added to the error.\n * This results in a more helpful error message in the error overlay.\n */ function patchConsoleError() {\n const prev = console.error;\n console.error = function(msg, serverContent, clientContent, componentStack) {\n if (knownHydrationWarnings.has(msg)) {\n hydrationErrorWarning = msg.replace(\"%s\", serverContent).replace(\"%s\", clientContent).replace(\"%s\", \"\");\n hydrationErrorComponentStack = componentStack;\n }\n // @ts-expect-error argument is defined\n prev.apply(console, arguments);\n };\n} //# sourceMappingURL=hydration-error-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9oeWRyYXRpb24tZXJyb3ItaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFJQSxzQkFBc0I7QUFDMUIsSUFBSUMsNkJBQTZCO0FBQ3hDLGlJQUFpSTtBQUNqSSxNQUFNQyx5QkFBeUIsSUFBSUMsSUFBSTtJQUNuQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0g7QUFDRDs7Ozs7Q0FLQyxHQUFVLFNBQVNDO0lBQ2hCLE1BQU1DLE9BQU9DLFFBQVFDLEtBQUs7SUFDMUJELFFBQVFDLEtBQUssR0FBRyxTQUFTQyxHQUFHLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxjQUFjO1FBQ3RFLElBQUlULHVCQUF1QlUsR0FBRyxDQUFDSixNQUFNO1lBQ2pDUix3QkFBd0JRLElBQUlLLE9BQU8sQ0FBQyxNQUFNSixlQUFlSSxPQUFPLENBQUMsTUFBTUgsZUFBZUcsT0FBTyxDQUFDLE1BQU07WUFDcEdaLCtCQUErQlU7UUFDbkM7UUFDQSx1Q0FBdUM7UUFDdkNOLEtBQUtTLEtBQUssQ0FBQ1IsU0FBU1M7SUFDeEI7QUFDSixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9oeWRyYXRpb24tZXJyb3ItaW5mby5qcz85OTcxIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBsZXQgaHlkcmF0aW9uRXJyb3JXYXJuaW5nO1xuZXhwb3J0IGxldCBoeWRyYXRpb25FcnJvckNvbXBvbmVudFN0YWNrO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvbWFpbi9wYWNrYWdlcy9yZWFjdC1kb20vc3JjL19fdGVzdHNfXy9SZWFjdERPTUh5ZHJhdGlvbkRpZmYtdGVzdC5qcyB1c2VkIGFzIGEgcmVmZXJlbmNlXG5jb25zdCBrbm93bkh5ZHJhdGlvbldhcm5pbmdzID0gbmV3IFNldChbXG4gICAgJ1dhcm5pbmc6IFRleHQgY29udGVudCBkaWQgbm90IG1hdGNoLiBTZXJ2ZXI6IFwiJXNcIiBDbGllbnQ6IFwiJXNcIiVzJyxcbiAgICBcIldhcm5pbmc6IEV4cGVjdGVkIHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gYSBtYXRjaGluZyA8JXM+IGluIDwlcz4uJXNcIixcbiAgICAnV2FybmluZzogRXhwZWN0ZWQgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIG1hdGNoaW5nIHRleHQgbm9kZSBmb3IgXCIlc1wiIGluIDwlcz4uJXMnLFxuICAgIFwiV2FybmluZzogRGlkIG5vdCBleHBlY3Qgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIDwlcz4gaW4gPCVzPi4lc1wiLFxuICAgICdXYXJuaW5nOiBEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIHRoZSB0ZXh0IG5vZGUgXCIlc1wiIGluIDwlcz4uJXMnXG5dKTtcbi8qKlxuICogUGF0Y2ggY29uc29sZS5lcnJvciB0byBjYXB0dXJlIGh5ZHJhdGlvbiBlcnJvcnMuXG4gKiBJZiBhbnkgb2YgdGhlIGtub3duSHlkcmF0aW9uV2FybmluZ3MgYXJlIGxvZ2dlZCwgc3RvcmUgdGhlIG1lc3NhZ2UgYW5kIGNvbXBvbmVudCBzdGFjay5cbiAqIFdoZW4gdGhlIGh5ZHJhdGlvbiBydW50aW1lIGVycm9yIGlzIHRocm93biwgdGhlIG1lc3NhZ2UgYW5kIGNvbXBvbmVudCBzdGFjayBhcmUgYWRkZWQgdG8gdGhlIGVycm9yLlxuICogVGhpcyByZXN1bHRzIGluIGEgbW9yZSBoZWxwZnVsIGVycm9yIG1lc3NhZ2UgaW4gdGhlIGVycm9yIG92ZXJsYXkuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHBhdGNoQ29uc29sZUVycm9yKCkge1xuICAgIGNvbnN0IHByZXYgPSBjb25zb2xlLmVycm9yO1xuICAgIGNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbihtc2csIHNlcnZlckNvbnRlbnQsIGNsaWVudENvbnRlbnQsIGNvbXBvbmVudFN0YWNrKSB7XG4gICAgICAgIGlmIChrbm93bkh5ZHJhdGlvbldhcm5pbmdzLmhhcyhtc2cpKSB7XG4gICAgICAgICAgICBoeWRyYXRpb25FcnJvcldhcm5pbmcgPSBtc2cucmVwbGFjZShcIiVzXCIsIHNlcnZlckNvbnRlbnQpLnJlcGxhY2UoXCIlc1wiLCBjbGllbnRDb250ZW50KS5yZXBsYWNlKFwiJXNcIiwgXCJcIik7XG4gICAgICAgICAgICBoeWRyYXRpb25FcnJvckNvbXBvbmVudFN0YWNrID0gY29tcG9uZW50U3RhY2s7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBhcmd1bWVudCBpcyBkZWZpbmVkXG4gICAgICAgIHByZXYuYXBwbHkoY29uc29sZSwgYXJndW1lbnRzKTtcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oeWRyYXRpb24tZXJyb3ItaW5mby5qcy5tYXAiXSwibmFtZXMiOlsiaHlkcmF0aW9uRXJyb3JXYXJuaW5nIiwiaHlkcmF0aW9uRXJyb3JDb21wb25lbnRTdGFjayIsImtub3duSHlkcmF0aW9uV2FybmluZ3MiLCJTZXQiLCJwYXRjaENvbnNvbGVFcnJvciIsInByZXYiLCJjb25zb2xlIiwiZXJyb3IiLCJtc2ciLCJzZXJ2ZXJDb250ZW50IiwiY2xpZW50Q29udGVudCIsImNvbXBvbmVudFN0YWNrIiwiaGFzIiwicmVwbGFjZSIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js":
-/*!****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js ***!
- \****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decorateServerError: () => (/* binding */ decorateServerError),\n/* harmony export */ getErrorSource: () => (/* binding */ getErrorSource),\n/* harmony export */ getFilesystemFrame: () => (/* binding */ getFilesystemFrame),\n/* harmony export */ getServerError: () => (/* binding */ getServerError)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_stacktrace_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"(ssr)/../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");\n/* harmony import */ var next_dist_compiled_stacktrace_parser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_stacktrace_parser__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction getFilesystemFrame(frame) {\n const f = {\n ...frame\n };\n if (typeof f.file === \"string\") {\n if (f.file.startsWith(\"/\") || // Win32:\n /^[a-z]:\\\\/i.test(f.file) || // Win32 UNC:\n f.file.startsWith(\"\\\\\\\\\")) {\n f.file = \"file://\" + f.file;\n }\n }\n return f;\n}\nconst symbolError = Symbol(\"NextjsError\");\nfunction getErrorSource(error) {\n return error[symbolError] || null;\n}\nfunction decorateServerError(error, type) {\n Object.defineProperty(error, symbolError, {\n writable: false,\n enumerable: false,\n configurable: false,\n value: type\n });\n}\nfunction getServerError(error, type) {\n let n;\n try {\n throw new Error(error.message);\n } catch (e) {\n n = e;\n }\n n.name = error.name;\n try {\n n.stack = n.toString() + \"\\n\" + (0,next_dist_compiled_stacktrace_parser__WEBPACK_IMPORTED_MODULE_0__.parse)(error.stack).map(getFilesystemFrame).map((f)=>{\n let str = \" at \" + f.methodName;\n if (f.file) {\n let loc = f.file;\n if (f.lineNumber) {\n loc += \":\" + f.lineNumber;\n if (f.column) {\n loc += \":\" + f.column;\n }\n }\n str += \" (\" + loc + \")\";\n }\n return str;\n }).join(\"\\n\");\n } catch (e) {\n n.stack = error.stack;\n }\n decorateServerError(n, type);\n return n;\n} //# sourceMappingURL=nodeStackFrames.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9ub2RlU3RhY2tGcmFtZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZEO0FBQ3RELFNBQVNDLG1CQUFtQkMsS0FBSztJQUNwQyxNQUFNQyxJQUFJO1FBQ04sR0FBR0QsS0FBSztJQUNaO0lBQ0EsSUFBSSxPQUFPQyxFQUFFQyxJQUFJLEtBQUssVUFBVTtRQUM1QixJQUNBRCxFQUFFQyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxRQUFRLFNBQVM7UUFDbkMsYUFBYUMsSUFBSSxDQUFDSCxFQUFFQyxJQUFJLEtBQUssYUFBYTtRQUMxQ0QsRUFBRUMsSUFBSSxDQUFDQyxVQUFVLENBQUMsU0FBUztZQUN2QkYsRUFBRUMsSUFBSSxHQUFHLFlBQVlELEVBQUVDLElBQUk7UUFDL0I7SUFDSjtJQUNBLE9BQU9EO0FBQ1g7QUFDQSxNQUFNSSxjQUFjQyxPQUFPO0FBQ3BCLFNBQVNDLGVBQWVDLEtBQUs7SUFDaEMsT0FBT0EsS0FBSyxDQUFDSCxZQUFZLElBQUk7QUFDakM7QUFDTyxTQUFTSSxvQkFBb0JELEtBQUssRUFBRUUsSUFBSTtJQUMzQ0MsT0FBT0MsY0FBYyxDQUFDSixPQUFPSCxhQUFhO1FBQ3RDUSxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsY0FBYztRQUNkQyxPQUFPTjtJQUNYO0FBQ0o7QUFDTyxTQUFTTyxlQUFlVCxLQUFLLEVBQUVFLElBQUk7SUFDdEMsSUFBSVE7SUFDSixJQUFJO1FBQ0EsTUFBTSxJQUFJQyxNQUFNWCxNQUFNWSxPQUFPO0lBQ2pDLEVBQUUsT0FBT0MsR0FBRztRQUNSSCxJQUFJRztJQUNSO0lBQ0FILEVBQUVJLElBQUksR0FBR2QsTUFBTWMsSUFBSTtJQUNuQixJQUFJO1FBQ0FKLEVBQUVLLEtBQUssR0FBR0wsRUFBRU0sUUFBUSxLQUFLLE9BQU8xQiwyRUFBS0EsQ0FBQ1UsTUFBTWUsS0FBSyxFQUFFRSxHQUFHLENBQUMxQixvQkFBb0IwQixHQUFHLENBQUMsQ0FBQ3hCO1lBQzVFLElBQUl5QixNQUFNLFlBQVl6QixFQUFFMEIsVUFBVTtZQUNsQyxJQUFJMUIsRUFBRUMsSUFBSSxFQUFFO2dCQUNSLElBQUkwQixNQUFNM0IsRUFBRUMsSUFBSTtnQkFDaEIsSUFBSUQsRUFBRTRCLFVBQVUsRUFBRTtvQkFDZEQsT0FBTyxNQUFNM0IsRUFBRTRCLFVBQVU7b0JBQ3pCLElBQUk1QixFQUFFNkIsTUFBTSxFQUFFO3dCQUNWRixPQUFPLE1BQU0zQixFQUFFNkIsTUFBTTtvQkFDekI7Z0JBQ0o7Z0JBQ0FKLE9BQU8sT0FBT0UsTUFBTTtZQUN4QjtZQUNBLE9BQU9GO1FBQ1gsR0FBR0ssSUFBSSxDQUFDO0lBQ1osRUFBRSxPQUFPVixHQUFHO1FBQ1JILEVBQUVLLEtBQUssR0FBR2YsTUFBTWUsS0FBSztJQUN6QjtJQUNBZCxvQkFBb0JTLEdBQUdSO0lBQ3ZCLE9BQU9RO0FBQ1gsRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvbm9kZVN0YWNrRnJhbWVzLmpzPzJiNjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0YWNrdHJhY2UtcGFyc2VyXCI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZXN5c3RlbUZyYW1lKGZyYW1lKSB7XG4gICAgY29uc3QgZiA9IHtcbiAgICAgICAgLi4uZnJhbWVcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgZi5maWxlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICgvLyBQb3NpeDpcbiAgICAgICAgZi5maWxlLnN0YXJ0c1dpdGgoXCIvXCIpIHx8IC8vIFdpbjMyOlxuICAgICAgICAvXlthLXpdOlxcXFwvaS50ZXN0KGYuZmlsZSkgfHwgLy8gV2luMzIgVU5DOlxuICAgICAgICBmLmZpbGUuc3RhcnRzV2l0aChcIlxcXFxcXFxcXCIpKSB7XG4gICAgICAgICAgICBmLmZpbGUgPSBcImZpbGU6Ly9cIiArIGYuZmlsZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZjtcbn1cbmNvbnN0IHN5bWJvbEVycm9yID0gU3ltYm9sKFwiTmV4dGpzRXJyb3JcIik7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JTb3VyY2UoZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Jbc3ltYm9sRXJyb3JdIHx8IG51bGw7XG59XG5leHBvcnQgZnVuY3Rpb24gZGVjb3JhdGVTZXJ2ZXJFcnJvcihlcnJvciwgdHlwZSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnJvciwgc3ltYm9sRXJyb3IsIHtcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IHR5cGVcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2ZXJFcnJvcihlcnJvciwgdHlwZSkge1xuICAgIGxldCBuO1xuICAgIHRyeSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIG4gPSBlO1xuICAgIH1cbiAgICBuLm5hbWUgPSBlcnJvci5uYW1lO1xuICAgIHRyeSB7XG4gICAgICAgIG4uc3RhY2sgPSBuLnRvU3RyaW5nKCkgKyBcIlxcblwiICsgcGFyc2UoZXJyb3Iuc3RhY2spLm1hcChnZXRGaWxlc3lzdGVtRnJhbWUpLm1hcCgoZik9PntcbiAgICAgICAgICAgIGxldCBzdHIgPSBcIiAgICBhdCBcIiArIGYubWV0aG9kTmFtZTtcbiAgICAgICAgICAgIGlmIChmLmZpbGUpIHtcbiAgICAgICAgICAgICAgICBsZXQgbG9jID0gZi5maWxlO1xuICAgICAgICAgICAgICAgIGlmIChmLmxpbmVOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jICs9IFwiOlwiICsgZi5saW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZi5jb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYyArPSBcIjpcIiArIGYuY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0ciArPSBcIiAoXCIgKyBsb2MgKyBcIilcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHI7XG4gICAgICAgIH0pLmpvaW4oXCJcXG5cIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBuLnN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gICAgfVxuICAgIGRlY29yYXRlU2VydmVyRXJyb3IobiwgdHlwZSk7XG4gICAgcmV0dXJuIG47XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vZGVTdGFja0ZyYW1lcy5qcy5tYXAiXSwibmFtZXMiOlsicGFyc2UiLCJnZXRGaWxlc3lzdGVtRnJhbWUiLCJmcmFtZSIsImYiLCJmaWxlIiwic3RhcnRzV2l0aCIsInRlc3QiLCJzeW1ib2xFcnJvciIsIlN5bWJvbCIsImdldEVycm9yU291cmNlIiwiZXJyb3IiLCJkZWNvcmF0ZVNlcnZlckVycm9yIiwidHlwZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwidmFsdWUiLCJnZXRTZXJ2ZXJFcnJvciIsIm4iLCJFcnJvciIsIm1lc3NhZ2UiLCJlIiwibmFtZSIsInN0YWNrIiwidG9TdHJpbmciLCJtYXAiLCJzdHIiLCJtZXRob2ROYW1lIiwibG9jIiwibGluZU51bWJlciIsImNvbHVtbiIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js":
-/*!**************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js ***!
- \**************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ noop: () => (/* binding */ noop)\n/* harmony export */ });\nfunction noop(strings) {\n for(var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n keys[_key - 1] = arguments[_key];\n }\n const lastIndex = strings.length - 1;\n return strings.slice(0, lastIndex).reduce((p, s, i)=>p + s + keys[i], \"\") + strings[lastIndex];\n} //# sourceMappingURL=noop-template.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9ub29wLXRlbXBsYXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxTQUFTQSxLQUFLQyxPQUFPO0lBQ3hCLElBQUksSUFBSUMsT0FBT0MsVUFBVUMsTUFBTSxFQUFFQyxPQUFPLElBQUlDLE1BQU1KLE9BQU8sSUFBSUEsT0FBTyxJQUFJLElBQUlLLE9BQU8sR0FBR0EsT0FBT0wsTUFBTUssT0FBTztRQUN0R0YsSUFBSSxDQUFDRSxPQUFPLEVBQUUsR0FBR0osU0FBUyxDQUFDSSxLQUFLO0lBQ3BDO0lBQ0EsTUFBTUMsWUFBWVAsUUFBUUcsTUFBTSxHQUFHO0lBQ25DLE9BQU9ILFFBQVFRLEtBQUssQ0FBQyxHQUFHRCxXQUFXRSxNQUFNLENBQUMsQ0FBQ0MsR0FBR0MsR0FBR0MsSUFBSUYsSUFBSUMsSUFBSVAsSUFBSSxDQUFDUSxFQUFFLEVBQUUsTUFBTVosT0FBTyxDQUFDTyxVQUFVO0FBQ2xHLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL25vb3AtdGVtcGxhdGUuanM/MzI1NyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbm9vcChzdHJpbmdzKSB7XG4gICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwga2V5cyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcbiAgICAgICAga2V5c1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIGNvbnN0IGxhc3RJbmRleCA9IHN0cmluZ3MubGVuZ3RoIC0gMTtcbiAgICByZXR1cm4gc3RyaW5ncy5zbGljZSgwLCBsYXN0SW5kZXgpLnJlZHVjZSgocCwgcywgaSk9PnAgKyBzICsga2V5c1tpXSwgXCJcIikgKyBzdHJpbmdzW2xhc3RJbmRleF07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vb3AtdGVtcGxhdGUuanMubWFwIl0sIm5hbWVzIjpbIm5vb3AiLCJzdHJpbmdzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImtleXMiLCJBcnJheSIsIl9rZXkiLCJsYXN0SW5kZXgiLCJzbGljZSIsInJlZHVjZSIsInAiLCJzIiwiaSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js":
-/*!**********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js ***!
- \**********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseComponentStack: () => (/* binding */ parseComponentStack)\n/* harmony export */ });\nvar LocationType;\n(function(LocationType) {\n LocationType[\"FILE\"] = \"file\";\n LocationType[\"WEBPACK_INTERNAL\"] = \"webpack-internal\";\n LocationType[\"HTTP\"] = \"http\";\n LocationType[\"PROTOCOL_RELATIVE\"] = \"protocol-relative\";\n LocationType[\"UNKNOWN\"] = \"unknown\";\n})(LocationType || (LocationType = {}));\n/**\n * Get the type of frame line based on the location\n */ function getLocationType(location) {\n if (location.startsWith(\"file://\")) {\n return \"file\";\n }\n if (location.startsWith(\"webpack-internal://\")) {\n return \"webpack-internal\";\n }\n if (location.startsWith(\"http://\") || location.startsWith(\"https://\")) {\n return \"http\";\n }\n if (location.startsWith(\"//\")) {\n return \"protocol-relative\";\n }\n return \"unknown\";\n}\nfunction parseStackFrameLocation(location) {\n const locationType = getLocationType(location);\n const modulePath = location == null ? void 0 : location.replace(/^(webpack-internal:\\/\\/\\/|file:\\/\\/)(\\(.*\\)\\/)?/, \"\");\n var _modulePath_match;\n const [, file, lineNumber, column] = (_modulePath_match = modulePath == null ? void 0 : modulePath.match(/^(.+):(\\d+):(\\d+)/)) != null ? _modulePath_match : [];\n switch(locationType){\n case \"file\":\n case \"webpack-internal\":\n return {\n canOpenInEditor: true,\n file,\n lineNumber: lineNumber ? Number(lineNumber) : undefined,\n column: column ? Number(column) : undefined\n };\n // When the location is a URL we only show the file\n // TODO: Resolve http(s) URLs through sourcemaps\n case \"http\":\n case \"protocol-relative\":\n case \"unknown\":\n default:\n {\n return {\n canOpenInEditor: false\n };\n }\n }\n}\nfunction parseComponentStack(componentStack) {\n const componentStackFrames = [];\n for (const line of componentStack.trim().split(\"\\n\")){\n // Get component and file from the component stack line\n const match = /at ([^ ]+)( \\((.*)\\))?/.exec(line);\n if (match == null ? void 0 : match[1]) {\n const component = match[1];\n const location = match[3];\n if (!location) {\n componentStackFrames.push({\n canOpenInEditor: false,\n component\n });\n continue;\n }\n // Stop parsing the component stack if we reach a Next.js component\n if (location == null ? void 0 : location.includes(\"next/dist\")) {\n break;\n }\n const frameLocation = parseStackFrameLocation(location);\n componentStackFrames.push({\n component,\n ...frameLocation\n });\n }\n }\n return componentStackFrames;\n} //# sourceMappingURL=parse-component-stack.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9wYXJzZS1jb21wb25lbnQtc3RhY2suanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUlBO0FBQ0gsVUFBU0EsWUFBWTtJQUNsQkEsWUFBWSxDQUFDLE9BQU8sR0FBRztJQUN2QkEsWUFBWSxDQUFDLG1CQUFtQixHQUFHO0lBQ25DQSxZQUFZLENBQUMsT0FBTyxHQUFHO0lBQ3ZCQSxZQUFZLENBQUMsb0JBQW9CLEdBQUc7SUFDcENBLFlBQVksQ0FBQyxVQUFVLEdBQUc7QUFDOUIsR0FBR0EsZ0JBQWlCQSxDQUFBQSxlQUFlLENBQUM7QUFDcEM7O0NBRUMsR0FBRyxTQUFTQyxnQkFBZ0JDLFFBQVE7SUFDakMsSUFBSUEsU0FBU0MsVUFBVSxDQUFDLFlBQVk7UUFDaEMsT0FBTztJQUNYO0lBQ0EsSUFBSUQsU0FBU0MsVUFBVSxDQUFDLHdCQUF3QjtRQUM1QyxPQUFPO0lBQ1g7SUFDQSxJQUFJRCxTQUFTQyxVQUFVLENBQUMsY0FBY0QsU0FBU0MsVUFBVSxDQUFDLGFBQWE7UUFDbkUsT0FBTztJQUNYO0lBQ0EsSUFBSUQsU0FBU0MsVUFBVSxDQUFDLE9BQU87UUFDM0IsT0FBTztJQUNYO0lBQ0EsT0FBTztBQUNYO0FBQ0EsU0FBU0Msd0JBQXdCRixRQUFRO0lBQ3JDLE1BQU1HLGVBQWVKLGdCQUFnQkM7SUFDckMsTUFBTUksYUFBYUosWUFBWSxPQUFPLEtBQUssSUFBSUEsU0FBU0ssT0FBTyxDQUFDLG1EQUFtRDtJQUNuSCxJQUFJQztJQUNKLE1BQU0sR0FBR0MsTUFBTUMsWUFBWUMsT0FBTyxHQUFHLENBQUNILG9CQUFvQkYsY0FBYyxPQUFPLEtBQUssSUFBSUEsV0FBV00sS0FBSyxDQUFDLG9CQUFtQixLQUFNLE9BQU9KLG9CQUFvQixFQUFFO0lBQy9KLE9BQU9IO1FBQ0gsS0FBSztRQUNMLEtBQUs7WUFDRCxPQUFPO2dCQUNIUSxpQkFBaUI7Z0JBQ2pCSjtnQkFDQUMsWUFBWUEsYUFBYUksT0FBT0osY0FBY0s7Z0JBQzlDSixRQUFRQSxTQUFTRyxPQUFPSCxVQUFVSTtZQUN0QztRQUNKLG1EQUFtRDtRQUNuRCxnREFBZ0Q7UUFDaEQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0w7WUFDSTtnQkFDSSxPQUFPO29CQUNIRixpQkFBaUI7Z0JBQ3JCO1lBQ0o7SUFDUjtBQUNKO0FBQ08sU0FBU0csb0JBQW9CQyxjQUFjO0lBQzlDLE1BQU1DLHVCQUF1QixFQUFFO0lBQy9CLEtBQUssTUFBTUMsUUFBUUYsZUFBZUcsSUFBSSxHQUFHQyxLQUFLLENBQUMsTUFBTTtRQUNqRCx1REFBdUQ7UUFDdkQsTUFBTVQsUUFBUSx5QkFBeUJVLElBQUksQ0FBQ0g7UUFDNUMsSUFBSVAsU0FBUyxPQUFPLEtBQUssSUFBSUEsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxNQUFNVyxZQUFZWCxLQUFLLENBQUMsRUFBRTtZQUMxQixNQUFNVixXQUFXVSxLQUFLLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUNWLFVBQVU7Z0JBQ1hnQixxQkFBcUJNLElBQUksQ0FBQztvQkFDdEJYLGlCQUFpQjtvQkFDakJVO2dCQUNKO2dCQUNBO1lBQ0o7WUFDQSxtRUFBbUU7WUFDbkUsSUFBSXJCLFlBQVksT0FBTyxLQUFLLElBQUlBLFNBQVN1QixRQUFRLENBQUMsY0FBYztnQkFDNUQ7WUFDSjtZQUNBLE1BQU1DLGdCQUFnQnRCLHdCQUF3QkY7WUFDOUNnQixxQkFBcUJNLElBQUksQ0FBQztnQkFDdEJEO2dCQUNBLEdBQUdHLGFBQWE7WUFDcEI7UUFDSjtJQUNKO0lBQ0EsT0FBT1I7QUFDWCxFQUVBLGlEQUFpRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9wYXJzZS1jb21wb25lbnQtc3RhY2suanM/MmM4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTG9jYXRpb25UeXBlO1xuKGZ1bmN0aW9uKExvY2F0aW9uVHlwZSkge1xuICAgIExvY2F0aW9uVHlwZVtcIkZJTEVcIl0gPSBcImZpbGVcIjtcbiAgICBMb2NhdGlvblR5cGVbXCJXRUJQQUNLX0lOVEVSTkFMXCJdID0gXCJ3ZWJwYWNrLWludGVybmFsXCI7XG4gICAgTG9jYXRpb25UeXBlW1wiSFRUUFwiXSA9IFwiaHR0cFwiO1xuICAgIExvY2F0aW9uVHlwZVtcIlBST1RPQ09MX1JFTEFUSVZFXCJdID0gXCJwcm90b2NvbC1yZWxhdGl2ZVwiO1xuICAgIExvY2F0aW9uVHlwZVtcIlVOS05PV05cIl0gPSBcInVua25vd25cIjtcbn0pKExvY2F0aW9uVHlwZSB8fCAoTG9jYXRpb25UeXBlID0ge30pKTtcbi8qKlxuICogR2V0IHRoZSB0eXBlIG9mIGZyYW1lIGxpbmUgYmFzZWQgb24gdGhlIGxvY2F0aW9uXG4gKi8gZnVuY3Rpb24gZ2V0TG9jYXRpb25UeXBlKGxvY2F0aW9uKSB7XG4gICAgaWYgKGxvY2F0aW9uLnN0YXJ0c1dpdGgoXCJmaWxlOi8vXCIpKSB7XG4gICAgICAgIHJldHVybiBcImZpbGVcIjtcbiAgICB9XG4gICAgaWYgKGxvY2F0aW9uLnN0YXJ0c1dpdGgoXCJ3ZWJwYWNrLWludGVybmFsOi8vXCIpKSB7XG4gICAgICAgIHJldHVybiBcIndlYnBhY2staW50ZXJuYWxcIjtcbiAgICB9XG4gICAgaWYgKGxvY2F0aW9uLnN0YXJ0c1dpdGgoXCJodHRwOi8vXCIpIHx8IGxvY2F0aW9uLnN0YXJ0c1dpdGgoXCJodHRwczovL1wiKSkge1xuICAgICAgICByZXR1cm4gXCJodHRwXCI7XG4gICAgfVxuICAgIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKFwiLy9cIikpIHtcbiAgICAgICAgcmV0dXJuIFwicHJvdG9jb2wtcmVsYXRpdmVcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwidW5rbm93blwiO1xufVxuZnVuY3Rpb24gcGFyc2VTdGFja0ZyYW1lTG9jYXRpb24obG9jYXRpb24pIHtcbiAgICBjb25zdCBsb2NhdGlvblR5cGUgPSBnZXRMb2NhdGlvblR5cGUobG9jYXRpb24pO1xuICAgIGNvbnN0IG1vZHVsZVBhdGggPSBsb2NhdGlvbiA9PSBudWxsID8gdm9pZCAwIDogbG9jYXRpb24ucmVwbGFjZSgvXih3ZWJwYWNrLWludGVybmFsOlxcL1xcL1xcL3xmaWxlOlxcL1xcLykoXFwoLipcXClcXC8pPy8sIFwiXCIpO1xuICAgIHZhciBfbW9kdWxlUGF0aF9tYXRjaDtcbiAgICBjb25zdCBbLCBmaWxlLCBsaW5lTnVtYmVyLCBjb2x1bW5dID0gKF9tb2R1bGVQYXRoX21hdGNoID0gbW9kdWxlUGF0aCA9PSBudWxsID8gdm9pZCAwIDogbW9kdWxlUGF0aC5tYXRjaCgvXiguKyk6KFxcZCspOihcXGQrKS8pKSAhPSBudWxsID8gX21vZHVsZVBhdGhfbWF0Y2ggOiBbXTtcbiAgICBzd2l0Y2gobG9jYXRpb25UeXBlKXtcbiAgICAgICAgY2FzZSBcImZpbGVcIjpcbiAgICAgICAgY2FzZSBcIndlYnBhY2staW50ZXJuYWxcIjpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY2FuT3BlbkluRWRpdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlciA/IE51bWJlcihsaW5lTnVtYmVyKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjb2x1bW46IGNvbHVtbiA/IE51bWJlcihjb2x1bW4pIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9O1xuICAgICAgICAvLyBXaGVuIHRoZSBsb2NhdGlvbiBpcyBhIFVSTCB3ZSBvbmx5IHNob3cgdGhlIGZpbGVcbiAgICAgICAgLy8gVE9ETzogUmVzb2x2ZSBodHRwKHMpIFVSTHMgdGhyb3VnaCBzb3VyY2VtYXBzXG4gICAgICAgIGNhc2UgXCJodHRwXCI6XG4gICAgICAgIGNhc2UgXCJwcm90b2NvbC1yZWxhdGl2ZVwiOlxuICAgICAgICBjYXNlIFwidW5rbm93blwiOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGNhbk9wZW5JbkVkaXRvcjogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvbXBvbmVudFN0YWNrKGNvbXBvbmVudFN0YWNrKSB7XG4gICAgY29uc3QgY29tcG9uZW50U3RhY2tGcmFtZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgY29tcG9uZW50U3RhY2sudHJpbSgpLnNwbGl0KFwiXFxuXCIpKXtcbiAgICAgICAgLy8gR2V0IGNvbXBvbmVudCBhbmQgZmlsZSBmcm9tIHRoZSBjb21wb25lbnQgc3RhY2sgbGluZVxuICAgICAgICBjb25zdCBtYXRjaCA9IC9hdCAoW14gXSspKCBcXCgoLiopXFwpKT8vLmV4ZWMobGluZSk7XG4gICAgICAgIGlmIChtYXRjaCA9PSBudWxsID8gdm9pZCAwIDogbWF0Y2hbMV0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IG1hdGNoWzFdO1xuICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBtYXRjaFszXTtcbiAgICAgICAgICAgIGlmICghbG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRTdGFja0ZyYW1lcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgY2FuT3BlbkluRWRpdG9yOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTdG9wIHBhcnNpbmcgdGhlIGNvbXBvbmVudCBzdGFjayBpZiB3ZSByZWFjaCBhIE5leHQuanMgY29tcG9uZW50XG4gICAgICAgICAgICBpZiAobG9jYXRpb24gPT0gbnVsbCA/IHZvaWQgMCA6IGxvY2F0aW9uLmluY2x1ZGVzKFwibmV4dC9kaXN0XCIpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmcmFtZUxvY2F0aW9uID0gcGFyc2VTdGFja0ZyYW1lTG9jYXRpb24obG9jYXRpb24pO1xuICAgICAgICAgICAgY29tcG9uZW50U3RhY2tGcmFtZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgICAgICAgIC4uLmZyYW1lTG9jYXRpb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb21wb25lbnRTdGFja0ZyYW1lcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFyc2UtY29tcG9uZW50LXN0YWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJMb2NhdGlvblR5cGUiLCJnZXRMb2NhdGlvblR5cGUiLCJsb2NhdGlvbiIsInN0YXJ0c1dpdGgiLCJwYXJzZVN0YWNrRnJhbWVMb2NhdGlvbiIsImxvY2F0aW9uVHlwZSIsIm1vZHVsZVBhdGgiLCJyZXBsYWNlIiwiX21vZHVsZVBhdGhfbWF0Y2giLCJmaWxlIiwibGluZU51bWJlciIsImNvbHVtbiIsIm1hdGNoIiwiY2FuT3BlbkluRWRpdG9yIiwiTnVtYmVyIiwidW5kZWZpbmVkIiwicGFyc2VDb21wb25lbnRTdGFjayIsImNvbXBvbmVudFN0YWNrIiwiY29tcG9uZW50U3RhY2tGcmFtZXMiLCJsaW5lIiwidHJpbSIsInNwbGl0IiwiZXhlYyIsImNvbXBvbmVudCIsInB1c2giLCJpbmNsdWRlcyIsImZyYW1lTG9jYXRpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parseStack.js":
-/*!***********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parseStack.js ***!
- \***********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseStack: () => (/* binding */ parseStack)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_stacktrace_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"(ssr)/../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");\n/* harmony import */ var next_dist_compiled_stacktrace_parser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_stacktrace_parser__WEBPACK_IMPORTED_MODULE_0__);\n\nconst regexNextStatic = /\\/_next(\\/static\\/.+)/;\nfunction parseStack(stack) {\n const frames = (0,next_dist_compiled_stacktrace_parser__WEBPACK_IMPORTED_MODULE_0__.parse)(stack);\n return frames.map((frame)=>{\n try {\n const url = new URL(frame.file);\n const res = regexNextStatic.exec(url.pathname);\n if (res) {\n var _process_env___NEXT_DIST_DIR_replace, _process_env___NEXT_DIST_DIR;\n const distDir = (_process_env___NEXT_DIST_DIR = \"/Users/dhravyashah/Documents/code/anycontext/apps/web/.next\") == null ? void 0 : (_process_env___NEXT_DIST_DIR_replace = _process_env___NEXT_DIST_DIR.replace(/\\\\/g, \"/\")) == null ? void 0 : _process_env___NEXT_DIST_DIR_replace.replace(/\\/$/, \"\");\n if (distDir) {\n frame.file = \"file://\" + distDir.concat(res.pop());\n }\n }\n } catch (e) {}\n return frame;\n });\n} //# sourceMappingURL=parseStack.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9wYXJzZVN0YWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE2RDtBQUM3RCxNQUFNQyxrQkFBa0I7QUFDakIsU0FBU0MsV0FBV0MsS0FBSztJQUM1QixNQUFNQyxTQUFTSiwyRUFBS0EsQ0FBQ0c7SUFDckIsT0FBT0MsT0FBT0MsR0FBRyxDQUFDLENBQUNDO1FBQ2YsSUFBSTtZQUNBLE1BQU1DLE1BQU0sSUFBSUMsSUFBSUYsTUFBTUcsSUFBSTtZQUM5QixNQUFNQyxNQUFNVCxnQkFBZ0JVLElBQUksQ0FBQ0osSUFBSUssUUFBUTtZQUM3QyxJQUFJRixLQUFLO2dCQUNMLElBQUlHLHNDQUFzQ0M7Z0JBQzFDLE1BQU1DLFVBQVUsQ0FBQ0QsK0JBQStCRSw2REFBMkIsS0FBSyxPQUFPLEtBQUssSUFBSSxDQUFDSCx1Q0FBdUNDLDZCQUE2QkssT0FBTyxDQUFDLE9BQU8sSUFBRyxLQUFNLE9BQU8sS0FBSyxJQUFJTixxQ0FBcUNNLE9BQU8sQ0FBQyxPQUFPO2dCQUNqUSxJQUFJSixTQUFTO29CQUNUVCxNQUFNRyxJQUFJLEdBQUcsWUFBWU0sUUFBUUssTUFBTSxDQUFDVixJQUFJVyxHQUFHO2dCQUNuRDtZQUNKO1FBQ0osRUFBRSxPQUFPQyxHQUFHLENBQUM7UUFDYixPQUFPaEI7SUFDWDtBQUNKLEVBRUEsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL3BhcnNlU3RhY2suanM/Mjc1YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZSB9IGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvc3RhY2t0cmFjZS1wYXJzZXJcIjtcbmNvbnN0IHJlZ2V4TmV4dFN0YXRpYyA9IC9cXC9fbmV4dChcXC9zdGF0aWNcXC8uKykvO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgICBjb25zdCBmcmFtZXMgPSBwYXJzZShzdGFjayk7XG4gICAgcmV0dXJuIGZyYW1lcy5tYXAoKGZyYW1lKT0+e1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChmcmFtZS5maWxlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHJlZ2V4TmV4dFN0YXRpYy5leGVjKHVybC5wYXRobmFtZSk7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9wcm9jZXNzX2Vudl9fX05FWFRfRElTVF9ESVJfcmVwbGFjZSwgX3Byb2Nlc3NfZW52X19fTkVYVF9ESVNUX0RJUjtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXN0RGlyID0gKF9wcm9jZXNzX2Vudl9fX05FWFRfRElTVF9ESVIgPSBwcm9jZXNzLmVudi5fX05FWFRfRElTVF9ESVIpID09IG51bGwgPyB2b2lkIDAgOiAoX3Byb2Nlc3NfZW52X19fTkVYVF9ESVNUX0RJUl9yZXBsYWNlID0gX3Byb2Nlc3NfZW52X19fTkVYVF9ESVNUX0RJUi5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wcm9jZXNzX2Vudl9fX05FWFRfRElTVF9ESVJfcmVwbGFjZS5yZXBsYWNlKC9cXC8kLywgXCJcIik7XG4gICAgICAgICAgICAgICAgaWYgKGRpc3REaXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZnJhbWUuZmlsZSA9IFwiZmlsZTovL1wiICsgZGlzdERpci5jb25jYXQocmVzLnBvcCgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFyc2VTdGFjay5qcy5tYXAiXSwibmFtZXMiOlsicGFyc2UiLCJyZWdleE5leHRTdGF0aWMiLCJwYXJzZVN0YWNrIiwic3RhY2siLCJmcmFtZXMiLCJtYXAiLCJmcmFtZSIsInVybCIsIlVSTCIsImZpbGUiLCJyZXMiLCJleGVjIiwicGF0aG5hbWUiLCJfcHJvY2Vzc19lbnZfX19ORVhUX0RJU1RfRElSX3JlcGxhY2UiLCJfcHJvY2Vzc19lbnZfX19ORVhUX0RJU1RfRElSIiwiZGlzdERpciIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfRElTVF9ESVIiLCJyZXBsYWNlIiwiY29uY2F0IiwicG9wIiwiZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parseStack.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/stack-frame.js":
-/*!************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/stack-frame.js ***!
- \************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getFrameSource: () => (/* binding */ getFrameSource),\n/* harmony export */ getOriginalStackFrame: () => (/* binding */ getOriginalStackFrame),\n/* harmony export */ getOriginalStackFrames: () => (/* binding */ getOriginalStackFrames)\n/* harmony export */ });\nfunction getOriginalStackFrame(source, type, errorMessage) {\n var _source_file, _source_file1;\n async function _getOriginalStackFrame() {\n var /* collapsed */ _source_file, _body_originalStackFrame_file, _body_originalStackFrame;\n const params = new URLSearchParams();\n params.append(\"isServer\", String(type === \"server\"));\n params.append(\"isEdgeServer\", String(type === \"edge-server\"));\n params.append(\"isAppDirectory\", \"true\");\n params.append(\"errorMessage\", errorMessage);\n for(const key in source){\n var _source_key;\n params.append(key, ((_source_key = source[key]) != null ? _source_key : \"\").toString());\n }\n const controller = new AbortController();\n const tm = setTimeout(()=>controller.abort(), 3000);\n const res = await self.fetch(( false || \"\") + \"/__nextjs_original-stack-frame?\" + params.toString(), {\n signal: controller.signal\n }).finally(()=>{\n clearTimeout(tm);\n });\n if (!res.ok || res.status === 204) {\n return Promise.reject(new Error(await res.text()));\n }\n const body = await res.json();\n var _ref;\n return {\n error: false,\n reason: null,\n external: false,\n expanded: !Boolean((_ref = ((_source_file = source.file) == null ? void 0 : _source_file.includes(\"node_modules\")) || ((_body_originalStackFrame = body.originalStackFrame) == null ? void 0 : (_body_originalStackFrame_file = _body_originalStackFrame.file) == null ? void 0 : _body_originalStackFrame_file.includes(\"node_modules\"))) != null ? _ref : true),\n sourceStackFrame: source,\n originalStackFrame: body.originalStackFrame,\n originalCodeFrame: body.originalCodeFrame || null,\n sourcePackage: body.sourcePackage\n };\n }\n if (source.file === \"<anonymous>\" || ((_source_file = source.file) == null ? void 0 : _source_file.match(/^node:/)) || ((_source_file1 = source.file) == null ? void 0 : _source_file1.match(/https?:\\/\\//))) {\n return Promise.resolve({\n error: false,\n reason: null,\n external: true,\n expanded: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null\n });\n }\n var _err_message, _ref;\n return _getOriginalStackFrame().catch((err)=>({\n error: true,\n reason: (_ref = (_err_message = err == null ? void 0 : err.message) != null ? _err_message : err == null ? void 0 : err.toString()) != null ? _ref : \"Unknown Error\",\n external: false,\n expanded: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null\n }));\n}\nfunction getOriginalStackFrames(frames, type, errorMessage) {\n return Promise.all(frames.map((frame)=>getOriginalStackFrame(frame, type, errorMessage)));\n}\nfunction formatFrameSourceFile(file) {\n return file.replace(/^webpack-internal:(\\/)+(\\.)?/, \"\").replace(/^webpack:(\\/)+(\\.)?/, \"\");\n}\nfunction getFrameSource(frame) {\n let str = \"\";\n try {\n var _globalThis_location;\n const u = new URL(frame.file);\n // Strip the origin for same-origin scripts.\n if (typeof globalThis !== \"undefined\" && ((_globalThis_location = globalThis.location) == null ? void 0 : _globalThis_location.origin) !== u.origin) {\n // URLs can be valid without an `origin`, so long as they have a\n // `protocol`. However, `origin` is preferred.\n if (u.origin === \"null\") {\n str += u.protocol;\n } else {\n str += u.origin;\n }\n }\n // Strip query string information as it's typically too verbose to be\n // meaningful.\n str += u.pathname;\n str += \" \";\n str = formatFrameSourceFile(str);\n } catch (e) {\n str += formatFrameSourceFile(frame.file || \"(unknown)\") + \" \";\n }\n if (frame.lineNumber != null) {\n if (frame.column != null) {\n str += \"(\" + frame.lineNumber + \":\" + frame.column + \") \";\n } else {\n str += \"(\" + frame.lineNumber + \") \";\n }\n }\n return str.slice(0, -1);\n} //# sourceMappingURL=stack-frame.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9zdGFjay1mcmFtZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxTQUFTQSxzQkFBc0JDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxZQUFZO0lBQzVELElBQUlDLGNBQWNDO0lBQ2xCLGVBQWVDO1FBQ1gsSUFBSSxhQUFhLEdBQUdGLGNBQWNHLCtCQUErQkM7UUFDakUsTUFBTUMsU0FBUyxJQUFJQztRQUNuQkQsT0FBT0UsTUFBTSxDQUFDLFlBQVlDLE9BQU9WLFNBQVM7UUFDMUNPLE9BQU9FLE1BQU0sQ0FBQyxnQkFBZ0JDLE9BQU9WLFNBQVM7UUFDOUNPLE9BQU9FLE1BQU0sQ0FBQyxrQkFBa0I7UUFDaENGLE9BQU9FLE1BQU0sQ0FBQyxnQkFBZ0JSO1FBQzlCLElBQUksTUFBTVUsT0FBT1osT0FBTztZQUNwQixJQUFJYTtZQUNKTCxPQUFPRSxNQUFNLENBQUNFLEtBQUssQ0FBQyxDQUFDQyxjQUFjYixNQUFNLENBQUNZLElBQUksS0FBSyxPQUFPQyxjQUFjLEVBQUMsRUFBR0MsUUFBUTtRQUN4RjtRQUNBLE1BQU1DLGFBQWEsSUFBSUM7UUFDdkIsTUFBTUMsS0FBS0MsV0FBVyxJQUFJSCxXQUFXSSxLQUFLLElBQUk7UUFDOUMsTUFBTUMsTUFBTSxNQUFNQyxLQUFLQyxLQUFLLENBQUMsQ0FBQ0MsTUFBa0MsSUFBSSxFQUFDLElBQUssb0NBQW9DZixPQUFPTSxRQUFRLElBQUk7WUFDN0hZLFFBQVFYLFdBQVdXLE1BQU07UUFDN0IsR0FBR0MsT0FBTyxDQUFDO1lBQ1BDLGFBQWFYO1FBQ2pCO1FBQ0EsSUFBSSxDQUFDRyxJQUFJUyxFQUFFLElBQUlULElBQUlVLE1BQU0sS0FBSyxLQUFLO1lBQy9CLE9BQU9DLFFBQVFDLE1BQU0sQ0FBQyxJQUFJQyxNQUFNLE1BQU1iLElBQUljLElBQUk7UUFDbEQ7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QUFJZ0IsTUFBTWMsVUFBVSxJQUFJLE1BQU07UUFDMUIsSUFBSWQsTUFBTWUsTUFBTSxJQUFJLE1BQU07WUFDdEJYLE9BQU8sTUFBTUosTUFBTWMsVUFBVSxHQUFHLE1BQU1kLE1BQU1lLE1BQU0sR0FBRztRQUN6RCxPQUFPO1lBQ0hYLE9BQU8sTUFBTUosTUFBTWMsVUFBVSxHQUFHO1FBQ3BDO0lBQ0o7SUFDQSxPQUFPVixJQUFJWSxLQUFLLENBQUMsR0FBRyxDQUFDO0FBQ3pCLEVBRUEsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL3N0YWNrLWZyYW1lLmpzP2NkOWUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldE9yaWdpbmFsU3RhY2tGcmFtZShzb3VyY2UsIHR5cGUsIGVycm9yTWVzc2FnZSkge1xuICAgIHZhciBfc291cmNlX2ZpbGUsIF9zb3VyY2VfZmlsZTE7XG4gICAgYXN5bmMgZnVuY3Rpb24gX2dldE9yaWdpbmFsU3RhY2tGcmFtZSgpIHtcbiAgICAgICAgdmFyIC8qIGNvbGxhcHNlZCAqLyBfc291cmNlX2ZpbGUsIF9ib2R5X29yaWdpbmFsU3RhY2tGcmFtZV9maWxlLCBfYm9keV9vcmlnaW5hbFN0YWNrRnJhbWU7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgcGFyYW1zLmFwcGVuZChcImlzU2VydmVyXCIsIFN0cmluZyh0eXBlID09PSBcInNlcnZlclwiKSk7XG4gICAgICAgIHBhcmFtcy5hcHBlbmQoXCJpc0VkZ2VTZXJ2ZXJcIiwgU3RyaW5nKHR5cGUgPT09IFwiZWRnZS1zZXJ2ZXJcIikpO1xuICAgICAgICBwYXJhbXMuYXBwZW5kKFwiaXNBcHBEaXJlY3RvcnlcIiwgXCJ0cnVlXCIpO1xuICAgICAgICBwYXJhbXMuYXBwZW5kKFwiZXJyb3JNZXNzYWdlXCIsIGVycm9yTWVzc2FnZSk7XG4gICAgICAgIGZvcihjb25zdCBrZXkgaW4gc291cmNlKXtcbiAgICAgICAgICAgIHZhciBfc291cmNlX2tleTtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoa2V5LCAoKF9zb3VyY2Vfa2V5ID0gc291cmNlW2tleV0pICE9IG51bGwgPyBfc291cmNlX2tleSA6IFwiXCIpLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgIGNvbnN0IHRtID0gc2V0VGltZW91dCgoKT0+Y29udHJvbGxlci5hYm9ydCgpLCAzMDAwKTtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VsZi5mZXRjaCgocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCBcIlwiKSArIFwiL19fbmV4dGpzX29yaWdpbmFsLXN0YWNrLWZyYW1lP1wiICsgcGFyYW1zLnRvU3RyaW5nKCksIHtcbiAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgfSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRtKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghcmVzLm9rIHx8IHJlcy5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihhd2FpdCByZXMudGV4dCgpKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICAgIHZhciBfcmVmO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICAgICAgcmVhc29uOiBudWxsLFxuICAgICAgICAgICAgZXh0ZXJuYWw6IGZhbHNlLFxuICAgICAgICAgICAgZXhwYW5kZWQ6ICFCb29sZWFuKChfcmVmID0gKChfc291cmNlX2ZpbGUgPSBzb3VyY2UuZmlsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zb3VyY2VfZmlsZS5pbmNsdWRlcyhcIm5vZGVfbW9kdWxlc1wiKSkgfHwgKChfYm9keV9vcmlnaW5hbFN0YWNrRnJhbWUgPSBib2R5Lm9yaWdpbmFsU3RhY2tGcmFtZSkgPT0gbnVsbCA/IHZvaWQgMCA6IChfYm9keV9vcmlnaW5hbFN0YWNrRnJhbWVfZmlsZSA9IF9ib2R5X29yaWdpbmFsU3RhY2tGcmFtZS5maWxlKSA9PSBudWxsID8gdm9pZCAwIDogX2JvZHlfb3JpZ2luYWxTdGFja0ZyYW1lX2ZpbGUuaW5jbHVkZXMoXCJub2RlX21vZHVsZXNcIikpKSAhPSBudWxsID8gX3JlZiA6IHRydWUpLFxuICAgICAgICAgICAgc291cmNlU3RhY2tGcmFtZTogc291cmNlLFxuICAgICAgICAgICAgb3JpZ2luYWxTdGFja0ZyYW1lOiBib2R5Lm9yaWdpbmFsU3RhY2tGcmFtZSxcbiAgICAgICAgICAgIG9yaWdpbmFsQ29kZUZyYW1lOiBib2R5Lm9yaWdpbmFsQ29kZUZyYW1lIHx8IG51bGwsXG4gICAgICAgICAgICBzb3VyY2VQYWNrYWdlOiBib2R5LnNvdXJjZVBhY2thZ2VcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHNvdXJjZS5maWxlID09PSBcIjxhbm9ueW1vdXM+XCIgfHwgKChfc291cmNlX2ZpbGUgPSBzb3VyY2UuZmlsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zb3VyY2VfZmlsZS5tYXRjaCgvXm5vZGU6LykpIHx8ICgoX3NvdXJjZV9maWxlMSA9IHNvdXJjZS5maWxlKSA9PSBudWxsID8gdm9pZCAwIDogX3NvdXJjZV9maWxlMS5tYXRjaCgvaHR0cHM/OlxcL1xcLy8pKSkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgICAgIHJlYXNvbjogbnVsbCxcbiAgICAgICAgICAgIGV4dGVybmFsOiB0cnVlLFxuICAgICAgICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc291cmNlU3RhY2tGcmFtZTogc291cmNlLFxuICAgICAgICAgICAgb3JpZ2luYWxTdGFja0ZyYW1lOiBudWxsLFxuICAgICAgICAgICAgb3JpZ2luYWxDb2RlRnJhbWU6IG51bGxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHZhciBfZXJyX21lc3NhZ2UsIF9yZWY7XG4gICAgcmV0dXJuIF9nZXRPcmlnaW5hbFN0YWNrRnJhbWUoKS5jYXRjaCgoZXJyKT0+KHtcbiAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgcmVhc29uOiAoX3JlZiA9IChfZXJyX21lc3NhZ2UgPSBlcnIgPT0gbnVsbCA/IHZvaWQgMCA6IGVyci5tZXNzYWdlKSAhPSBudWxsID8gX2Vycl9tZXNzYWdlIDogZXJyID09IG51bGwgPyB2b2lkIDAgOiBlcnIudG9TdHJpbmcoKSkgIT0gbnVsbCA/IF9yZWYgOiBcIlVua25vd24gRXJyb3JcIixcbiAgICAgICAgICAgIGV4dGVybmFsOiBmYWxzZSxcbiAgICAgICAgICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNvdXJjZVN0YWNrRnJhbWU6IHNvdXJjZSxcbiAgICAgICAgICAgIG9yaWdpbmFsU3RhY2tGcmFtZTogbnVsbCxcbiAgICAgICAgICAgIG9yaWdpbmFsQ29kZUZyYW1lOiBudWxsXG4gICAgICAgIH0pKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmlnaW5hbFN0YWNrRnJhbWVzKGZyYW1lcywgdHlwZSwgZXJyb3JNZXNzYWdlKSB7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGZyYW1lcy5tYXAoKGZyYW1lKT0+Z2V0T3JpZ2luYWxTdGFja0ZyYW1lKGZyYW1lLCB0eXBlLCBlcnJvck1lc3NhZ2UpKSk7XG59XG5mdW5jdGlvbiBmb3JtYXRGcmFtZVNvdXJjZUZpbGUoZmlsZSkge1xuICAgIHJldHVybiBmaWxlLnJlcGxhY2UoL153ZWJwYWNrLWludGVybmFsOihcXC8pKyhcXC4pPy8sIFwiXCIpLnJlcGxhY2UoL153ZWJwYWNrOihcXC8pKyhcXC4pPy8sIFwiXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldEZyYW1lU291cmNlKGZyYW1lKSB7XG4gICAgbGV0IHN0ciA9IFwiXCI7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIF9nbG9iYWxUaGlzX2xvY2F0aW9uO1xuICAgICAgICBjb25zdCB1ID0gbmV3IFVSTChmcmFtZS5maWxlKTtcbiAgICAgICAgLy8gU3RyaXAgdGhlIG9yaWdpbiBmb3Igc2FtZS1vcmlnaW4gc2NyaXB0cy5cbiAgICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSBcInVuZGVmaW5lZFwiICYmICgoX2dsb2JhbFRoaXNfbG9jYXRpb24gPSBnbG9iYWxUaGlzLmxvY2F0aW9uKSA9PSBudWxsID8gdm9pZCAwIDogX2dsb2JhbFRoaXNfbG9jYXRpb24ub3JpZ2luKSAhPT0gdS5vcmlnaW4pIHtcbiAgICAgICAgICAgIC8vIFVSTHMgY2FuIGJlIHZhbGlkIHdpdGhvdXQgYW4gYG9yaWdpbmAsIHNvIGxvbmcgYXMgdGhleSBoYXZlIGFcbiAgICAgICAgICAgIC8vIGBwcm90b2NvbGAuIEhvd2V2ZXIsIGBvcmlnaW5gIGlzIHByZWZlcnJlZC5cbiAgICAgICAgICAgIGlmICh1Lm9yaWdpbiA9PT0gXCJudWxsXCIpIHtcbiAgICAgICAgICAgICAgICBzdHIgKz0gdS5wcm90b2NvbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RyICs9IHUub3JpZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFN0cmlwIHF1ZXJ5IHN0cmluZyBpbmZvcm1hdGlvbiBhcyBpdCdzIHR5cGljYWxseSB0b28gdmVyYm9zZSB0byBiZVxuICAgICAgICAvLyBtZWFuaW5nZnVsLlxuICAgICAgICBzdHIgKz0gdS5wYXRobmFtZTtcbiAgICAgICAgc3RyICs9IFwiIFwiO1xuICAgICAgICBzdHIgPSBmb3JtYXRGcmFtZVNvdXJjZUZpbGUoc3RyKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHN0ciArPSBmb3JtYXRGcmFtZVNvdXJjZUZpbGUoZnJhbWUuZmlsZSB8fCBcIih1bmtub3duKVwiKSArIFwiIFwiO1xuICAgIH1cbiAgICBpZiAoZnJhbWUubGluZU51bWJlciAhPSBudWxsKSB7XG4gICAgICAgIGlmIChmcmFtZS5jb2x1bW4gIT0gbnVsbCkge1xuICAgICAgICAgICAgc3RyICs9IFwiKFwiICsgZnJhbWUubGluZU51bWJlciArIFwiOlwiICsgZnJhbWUuY29sdW1uICsgXCIpIFwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RyICs9IFwiKFwiICsgZnJhbWUubGluZU51bWJlciArIFwiKSBcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RyLnNsaWNlKDAsIC0xKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhY2stZnJhbWUuanMubWFwIl0sIm5hbWVzIjpbImdldE9yaWdpbmFsU3RhY2tGcmFtZSIsInNvdXJjZSIsInR5cGUiLCJlcnJvck1lc3NhZ2UiLCJfc291cmNlX2ZpbGUiLCJfc291cmNlX2ZpbGUxIiwiX2dldE9yaWdpbmFsU3RhY2tGcmFtZSIsIl9ib2R5X29yaWdpbmFsU3RhY2tGcmFtZV9maWxlIiwiX2JvZHlfb3JpZ2luYWxTdGFja0ZyYW1lIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwiU3RyaW5nIiwia2V5IiwiX3NvdXJjZV9rZXkiLCJ0b1N0cmluZyIsImNvbnRyb2xsZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJ0bSIsInNldFRpbWVvdXQiLCJhYm9ydCIsInJlcyIsInNlbGYiLCJmZXRjaCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwic2lnbmFsIiwiZmluYWxseSIsImNsZWFyVGltZW91dCIsIm9rIiwic3RhdHVzIiwiUHJvbWlzZSIsInJlamVjdCIsIkVycm9yIiwidGV4dCIsImJvZHkiLCJqc29uIiwiX3JlZiIsImVycm9yIiwicmVhc29uIiwiZXh0ZXJuYWwiLCJleHBhbmRlZCIsIkJvb2xlYW4iLCJmaWxlIiwiaW5jbHVkZXMiLCJvcmlnaW5hbFN0YWNrRnJhbWUiLCJzb3VyY2VTdGFja0ZyYW1lIiwib3JpZ2luYWxDb2RlRnJhbWUiLCJzb3VyY2VQYWNrYWdlIiwibWF0Y2giLCJyZXNvbHZlIiwiX2Vycl9tZXNzYWdlIiwiY2F0Y2giLCJlcnIiLCJtZXNzYWdlIiwiZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyIsImZyYW1lcyIsImFsbCIsIm1hcCIsImZyYW1lIiwiZm9ybWF0RnJhbWVTb3VyY2VGaWxlIiwicmVwbGFjZSIsImdldEZyYW1lU291cmNlIiwic3RyIiwiX2dsb2JhbFRoaXNfbG9jYXRpb24iLCJ1IiwiVVJMIiwiZ2xvYmFsVGhpcyIsImxvY2F0aW9uIiwib3JpZ2luIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwic2xpY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/stack-frame.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-error-handler.js":
-/*!******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-error-handler.js ***!
- \******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RuntimeErrorHandler: () => (/* binding */ RuntimeErrorHandler),\n/* harmony export */ useErrorHandler: () => (/* binding */ useErrorHandler)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _hydration_error_info__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hydration-error-info */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\");\n/* harmony import */ var _is_next_router_error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../is-next-router-error */ \"(ssr)/../../node_modules/next/dist/esm/client/components/is-next-router-error.js\");\n\n\n\nconst RuntimeErrorHandler = {\n hadRuntimeError: false\n};\nfunction isHydrationError(error) {\n return error.message.match(/(hydration|content does not match|did not match)/i) != null;\n}\nif (false) {}\nconst errorQueue = [];\nconst rejectionQueue = [];\nconst errorHandlers = [];\nconst rejectionHandlers = [];\nif (false) {}\nfunction useErrorHandler(handleOnUnhandledError, handleOnUnhandledRejection) {\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n // Handle queued errors.\n errorQueue.forEach(handleOnUnhandledError);\n rejectionQueue.forEach(handleOnUnhandledRejection);\n // Listen to new errors.\n errorHandlers.push(handleOnUnhandledError);\n rejectionHandlers.push(handleOnUnhandledRejection);\n return ()=>{\n // Remove listeners.\n errorHandlers.splice(errorHandlers.indexOf(handleOnUnhandledError), 1);\n rejectionHandlers.splice(rejectionHandlers.indexOf(handleOnUnhandledRejection), 1);\n };\n }, [\n handleOnUnhandledError,\n handleOnUnhandledRejection\n ]);\n} //# sourceMappingURL=use-error-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy91c2UtZXJyb3ItaGFuZGxlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBa0M7QUFDMkQ7QUFDM0I7QUFDM0QsTUFBTUksc0JBQXNCO0lBQy9CQyxpQkFBaUI7QUFDckIsRUFBRTtBQUNGLFNBQVNDLGlCQUFpQkMsS0FBSztJQUMzQixPQUFPQSxNQUFNQyxPQUFPLENBQUNDLEtBQUssQ0FBQyx3REFBd0Q7QUFDdkY7QUFDQSxJQUFJLEtBQTZCLEVBQUUsRUFLbEM7QUFDRCxNQUFNSSxhQUFhLEVBQUU7QUFDckIsTUFBTUMsaUJBQWlCLEVBQUU7QUFDekIsTUFBTUMsZ0JBQWdCLEVBQUU7QUFDeEIsTUFBTUMsb0JBQW9CLEVBQUU7QUFDNUIsSUFBSSxLQUE2QixFQUFFLEVBMkNsQztBQUNNLFNBQVNXLGdCQUFnQkMsc0JBQXNCLEVBQUVDLDBCQUEwQjtJQUM5RTdCLGdEQUFTQSxDQUFDO1FBQ04sd0JBQXdCO1FBQ3hCYSxXQUFXaUIsT0FBTyxDQUFDRjtRQUNuQmQsZUFBZWdCLE9BQU8sQ0FBQ0Q7UUFDdkIsd0JBQXdCO1FBQ3hCZCxjQUFjUyxJQUFJLENBQUNJO1FBQ25CWixrQkFBa0JRLElBQUksQ0FBQ0s7UUFDdkIsT0FBTztZQUNILG9CQUFvQjtZQUNwQmQsY0FBY2dCLE1BQU0sQ0FBQ2hCLGNBQWNpQixPQUFPLENBQUNKLHlCQUF5QjtZQUNwRVosa0JBQWtCZSxNQUFNLENBQUNmLGtCQUFrQmdCLE9BQU8sQ0FBQ0gsNkJBQTZCO1FBQ3BGO0lBQ0osR0FBRztRQUNDRDtRQUNBQztLQUNIO0FBQ0wsRUFFQSw2Q0FBNkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvdXNlLWVycm9yLWhhbmRsZXIuanM/YzVhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGh5ZHJhdGlvbkVycm9yV2FybmluZywgaHlkcmF0aW9uRXJyb3JDb21wb25lbnRTdGFjayB9IGZyb20gXCIuL2h5ZHJhdGlvbi1lcnJvci1pbmZvXCI7XG5pbXBvcnQgeyBpc05leHRSb3V0ZXJFcnJvciB9IGZyb20gXCIuLi8uLi8uLi9pcy1uZXh0LXJvdXRlci1lcnJvclwiO1xuZXhwb3J0IGNvbnN0IFJ1bnRpbWVFcnJvckhhbmRsZXIgPSB7XG4gICAgaGFkUnVudGltZUVycm9yOiBmYWxzZVxufTtcbmZ1bmN0aW9uIGlzSHlkcmF0aW9uRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IubWVzc2FnZS5tYXRjaCgvKGh5ZHJhdGlvbnxjb250ZW50IGRvZXMgbm90IG1hdGNofGRpZCBub3QgbWF0Y2gpL2kpICE9IG51bGw7XG59XG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIEluY3JlYXNlIHRoZSBudW1iZXIgb2Ygc3RhY2sgZnJhbWVzIG9uIHRoZSBjbGllbnRcbiAgICAgICAgRXJyb3Iuc3RhY2tUcmFjZUxpbWl0ID0gNTA7XG4gICAgfSBjYXRjaCAoZSkge31cbn1cbmNvbnN0IGVycm9yUXVldWUgPSBbXTtcbmNvbnN0IHJlamVjdGlvblF1ZXVlID0gW107XG5jb25zdCBlcnJvckhhbmRsZXJzID0gW107XG5jb25zdCByZWplY3Rpb25IYW5kbGVycyA9IFtdO1xuaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAvLyBUaGVzZSBldmVudCBoYW5kbGVycyBtdXN0IGJlIGFkZGVkIG91dHNpZGUgb2YgdGhlIGhvb2sgYmVjYXVzZSB0aGVyZSBpcyBub1xuICAgIC8vIGd1YXJhbnRlZSB0aGF0IHRoZSBob29rIHdpbGwgYmUgYWxpdmUgaW4gYSBtb3VudGVkIGNvbXBvbmVudCBpbiB0aW1lIHRvXG4gICAgLy8gd2hlbiB0aGUgZXJyb3JzIG9jY3VyLlxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgKGV2KT0+e1xuICAgICAgICBpZiAoaXNOZXh0Um91dGVyRXJyb3IoZXYuZXJyb3IpKSB7XG4gICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXYgPT0gbnVsbCA/IHZvaWQgMCA6IGV2LmVycm9yO1xuICAgICAgICBpZiAoIWVycm9yIHx8ICEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikgfHwgdHlwZW9mIGVycm9yLnN0YWNrICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAvLyBBIG5vbi1lcnJvciB3YXMgdGhyb3duLCB3ZSBkb24ndCBoYXZlIGFueXRoaW5nIHRvIHNob3cuIDotKFxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0h5ZHJhdGlvbkVycm9yKGVycm9yKSAmJiAhZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3JlYWN0LWh5ZHJhdGlvbi1lcnJvclwiKSkge1xuICAgICAgICAgICAgaWYgKGh5ZHJhdGlvbkVycm9yV2FybmluZykge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwYXRjaGVkIGNvbnNvbGUuZXJyb3IgZm91bmQgaHlkcmF0aW9uIGVycm9ycyBsb2dnZWQgYnkgUmVhY3RcbiAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGxvZ2dlZCB3YXJuaW5nIHRvIHRoZSBlcnJvciBtZXNzYWdlXG4gICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSArPSBcIlxcblxcblwiICsgaHlkcmF0aW9uRXJyb3JXYXJuaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGh5ZHJhdGlvbkVycm9yQ29tcG9uZW50U3RhY2spIHtcbiAgICAgICAgICAgICAgICBlcnJvci5fY29tcG9uZW50U3RhY2sgPSBoeWRyYXRpb25FcnJvckNvbXBvbmVudFN0YWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSArPSBcIlxcblxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcmVhY3QtaHlkcmF0aW9uLWVycm9yXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZSA9IGVycm9yO1xuICAgICAgICBlcnJvclF1ZXVlLnB1c2goZSk7XG4gICAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiBlcnJvckhhbmRsZXJzKXtcbiAgICAgICAgICAgIGhhbmRsZXIoZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInVuaGFuZGxlZHJlamVjdGlvblwiLCAoZXYpPT57XG4gICAgICAgIGNvbnN0IHJlYXNvbiA9IGV2ID09IG51bGwgPyB2b2lkIDAgOiBldi5yZWFzb247XG4gICAgICAgIGlmICghcmVhc29uIHx8ICEocmVhc29uIGluc3RhbmNlb2YgRXJyb3IpIHx8IHR5cGVvZiByZWFzb24uc3RhY2sgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIC8vIEEgbm9uLWVycm9yIHdhcyB0aHJvd24sIHdlIGRvbid0IGhhdmUgYW55dGhpbmcgdG8gc2hvdy4gOi0oXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZSA9IHJlYXNvbjtcbiAgICAgICAgcmVqZWN0aW9uUXVldWUucHVzaChlKTtcbiAgICAgICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHJlamVjdGlvbkhhbmRsZXJzKXtcbiAgICAgICAgICAgIGhhbmRsZXIoZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VFcnJvckhhbmRsZXIoaGFuZGxlT25VbmhhbmRsZWRFcnJvciwgaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pIHtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgLy8gSGFuZGxlIHF1ZXVlZCBlcnJvcnMuXG4gICAgICAgIGVycm9yUXVldWUuZm9yRWFjaChoYW5kbGVPblVuaGFuZGxlZEVycm9yKTtcbiAgICAgICAgcmVqZWN0aW9uUXVldWUuZm9yRWFjaChoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbik7XG4gICAgICAgIC8vIExpc3RlbiB0byBuZXcgZXJyb3JzLlxuICAgICAgICBlcnJvckhhbmRsZXJzLnB1c2goaGFuZGxlT25VbmhhbmRsZWRFcnJvcik7XG4gICAgICAgIHJlamVjdGlvbkhhbmRsZXJzLnB1c2goaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIC8vIFJlbW92ZSBsaXN0ZW5lcnMuXG4gICAgICAgICAgICBlcnJvckhhbmRsZXJzLnNwbGljZShlcnJvckhhbmRsZXJzLmluZGV4T2YoaGFuZGxlT25VbmhhbmRsZWRFcnJvciksIDEpO1xuICAgICAgICAgICAgcmVqZWN0aW9uSGFuZGxlcnMuc3BsaWNlKHJlamVjdGlvbkhhbmRsZXJzLmluZGV4T2YoaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pLCAxKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGhhbmRsZU9uVW5oYW5kbGVkRXJyb3IsXG4gICAgICAgIGhhbmRsZU9uVW5oYW5kbGVkUmVqZWN0aW9uXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1lcnJvci1oYW5kbGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJoeWRyYXRpb25FcnJvcldhcm5pbmciLCJoeWRyYXRpb25FcnJvckNvbXBvbmVudFN0YWNrIiwiaXNOZXh0Um91dGVyRXJyb3IiLCJSdW50aW1lRXJyb3JIYW5kbGVyIiwiaGFkUnVudGltZUVycm9yIiwiaXNIeWRyYXRpb25FcnJvciIsImVycm9yIiwibWVzc2FnZSIsIm1hdGNoIiwiRXJyb3IiLCJzdGFja1RyYWNlTGltaXQiLCJlIiwiZXJyb3JRdWV1ZSIsInJlamVjdGlvblF1ZXVlIiwiZXJyb3JIYW5kbGVycyIsInJlamVjdGlvbkhhbmRsZXJzIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2IiwicHJldmVudERlZmF1bHQiLCJzdGFjayIsImluY2x1ZGVzIiwiX2NvbXBvbmVudFN0YWNrIiwicHVzaCIsImhhbmRsZXIiLCJyZWFzb24iLCJ1c2VFcnJvckhhbmRsZXIiLCJoYW5kbGVPblVuaGFuZGxlZEVycm9yIiwiaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24iLCJmb3JFYWNoIiwic3BsaWNlIiwiaW5kZXhPZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-error-handler.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js":
-/*!*******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js ***!
- \*******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useOpenInEditor: () => (/* binding */ useOpenInEditor)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction useOpenInEditor(param) {\n let { file, lineNumber, column } = param === void 0 ? {} : param;\n const openInEditor = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{\n if (file == null || lineNumber == null || column == null) return;\n const params = new URLSearchParams();\n params.append(\"file\", file);\n params.append(\"lineNumber\", String(lineNumber));\n params.append(\"column\", String(column));\n self.fetch(( false || \"\") + \"/__nextjs_launch-editor?\" + params.toString()).then(()=>{}, ()=>{\n console.error(\"There was an issue opening this code in your editor.\");\n });\n }, [\n file,\n lineNumber,\n column\n ]);\n return openInEditor;\n} //# sourceMappingURL=use-open-in-editor.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy91c2Utb3Blbi1pbi1lZGl0b3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9DO0FBQzdCLFNBQVNDLGdCQUFnQkMsS0FBSztJQUNqQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQUUsR0FBR0gsVUFBVSxLQUFLLElBQUksQ0FBQyxJQUFJQTtJQUMzRCxNQUFNSSxlQUFlTixrREFBV0EsQ0FBQztRQUM3QixJQUFJRyxRQUFRLFFBQVFDLGNBQWMsUUFBUUMsVUFBVSxNQUFNO1FBQzFELE1BQU1FLFNBQVMsSUFBSUM7UUFDbkJELE9BQU9FLE1BQU0sQ0FBQyxRQUFRTjtRQUN0QkksT0FBT0UsTUFBTSxDQUFDLGNBQWNDLE9BQU9OO1FBQ25DRyxPQUFPRSxNQUFNLENBQUMsVUFBVUMsT0FBT0w7UUFDL0JNLEtBQUtDLEtBQUssQ0FBQyxDQUFDQyxNQUFrQyxJQUFJLEVBQUMsSUFBSyw2QkFBNkJOLE9BQU9TLFFBQVEsSUFBSUMsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNqSEMsUUFBUUMsS0FBSyxDQUFDO1FBQ2xCO0lBQ0osR0FBRztRQUNDaEI7UUFDQUM7UUFDQUM7S0FDSDtJQUNELE9BQU9DO0FBQ1gsRUFFQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvdXNlLW9wZW4taW4tZWRpdG9yLmpzPzMzMmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCBmdW5jdGlvbiB1c2VPcGVuSW5FZGl0b3IocGFyYW0pIHtcbiAgICBsZXQgeyBmaWxlLCBsaW5lTnVtYmVyLCBjb2x1bW4gfSA9IHBhcmFtID09PSB2b2lkIDAgPyB7fSA6IHBhcmFtO1xuICAgIGNvbnN0IG9wZW5JbkVkaXRvciA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGlmIChmaWxlID09IG51bGwgfHwgbGluZU51bWJlciA9PSBudWxsIHx8IGNvbHVtbiA9PSBudWxsKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgcGFyYW1zLmFwcGVuZChcImZpbGVcIiwgZmlsZSk7XG4gICAgICAgIHBhcmFtcy5hcHBlbmQoXCJsaW5lTnVtYmVyXCIsIFN0cmluZyhsaW5lTnVtYmVyKSk7XG4gICAgICAgIHBhcmFtcy5hcHBlbmQoXCJjb2x1bW5cIiwgU3RyaW5nKGNvbHVtbikpO1xuICAgICAgICBzZWxmLmZldGNoKChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8IFwiXCIpICsgXCIvX19uZXh0anNfbGF1bmNoLWVkaXRvcj9cIiArIHBhcmFtcy50b1N0cmluZygpKS50aGVuKCgpPT57fSwgKCk9PntcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaGVyZSB3YXMgYW4gaXNzdWUgb3BlbmluZyB0aGlzIGNvZGUgaW4geW91ciBlZGl0b3IuXCIpO1xuICAgICAgICB9KTtcbiAgICB9LCBbXG4gICAgICAgIGZpbGUsXG4gICAgICAgIGxpbmVOdW1iZXIsXG4gICAgICAgIGNvbHVtblxuICAgIF0pO1xuICAgIHJldHVybiBvcGVuSW5FZGl0b3I7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1vcGVuLWluLWVkaXRvci5qcy5tYXAiXSwibmFtZXMiOlsidXNlQ2FsbGJhY2siLCJ1c2VPcGVuSW5FZGl0b3IiLCJwYXJhbSIsImZpbGUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwib3BlbkluRWRpdG9yIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwiU3RyaW5nIiwic2VsZiIsImZldGNoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJ0b1N0cmluZyIsInRoZW4iLCJjb25zb2xlIiwiZXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-websocket.js":
-/*!**************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-websocket.js ***!
- \**************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSendMessage: () => (/* binding */ useSendMessage),\n/* harmony export */ useTurbopack: () => (/* binding */ useTurbopack),\n/* harmony export */ useWebsocket: () => (/* binding */ useWebsocket),\n/* harmony export */ useWebsocketPing: () => (/* binding */ useWebsocketPing)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\");\n/* harmony import */ var _get_socket_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./get-socket-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/get-socket-url.js\");\n\n\n\nfunction useWebsocket(assetPrefix) {\n const webSocketRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n if (webSocketRef.current) {\n return;\n }\n const url = (0,_get_socket_url__WEBPACK_IMPORTED_MODULE_2__.getSocketUrl)(assetPrefix);\n webSocketRef.current = new window.WebSocket(\"\" + url + \"/_next/webpack-hmr\");\n }, [\n assetPrefix\n ]);\n return webSocketRef;\n}\nfunction useSendMessage(webSocketRef) {\n const sendMessage = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((data)=>{\n const socket = webSocketRef.current;\n if (!socket || socket.readyState !== socket.OPEN) {\n return;\n }\n return socket.send(data);\n }, [\n webSocketRef\n ]);\n return sendMessage;\n}\nfunction useTurbopack(sendMessage) {\n const turbopackState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({\n init: false,\n // Until the dynamic import resolves, queue any turbopack messages which will be replayed.\n queue: [],\n callback: undefined\n });\n const processTurbopackMessage = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((msg)=>{\n var _msg_type;\n if (\"type\" in msg && ((_msg_type = msg.type) == null ? void 0 : _msg_type.startsWith(\"turbopack-\"))) {\n const { callback, queue } = turbopackState.current;\n if (callback) {\n callback(msg);\n } else {\n queue.push(msg);\n }\n return true;\n }\n return false;\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n const { current: initCurrent } = turbopackState;\n // TODO(WEB-1589): only install if `process.turbopack` set.\n if (initCurrent.init) {\n return;\n }\n initCurrent.init = true;\n Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @vercel/turbopack-ecmascript-runtime/dev/client/hmr-client.ts */ \"(ssr)/../../node_modules/next/dist/esm/client/dev/noop-turbopack-hmr.js\")).then((param)=>{\n let { connect } = param;\n const { current } = turbopackState;\n connect({\n addMessageListener (cb) {\n current.callback = cb;\n // Replay all Turbopack messages before we were able to establish the HMR client.\n for (const msg of current.queue){\n cb(msg);\n }\n current.queue = undefined;\n },\n sendMessage\n });\n });\n }, [\n sendMessage\n ]);\n return processTurbopackMessage;\n}\nfunction useWebsocketPing(websocketRef) {\n const sendMessage = useSendMessage(websocketRef);\n const { tree } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__.GlobalLayoutRouterContext);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n // Taken from on-demand-entries-client.js\n const interval = setInterval(()=>{\n sendMessage(JSON.stringify({\n event: \"ping\",\n tree,\n appDirRoute: true\n }));\n }, 2500);\n return ()=>clearInterval(interval);\n }, [\n tree,\n sendMessage\n ]);\n} //# sourceMappingURL=use-websocket.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy91c2Utd2Vic29ja2V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQW1FO0FBQ3FDO0FBQ3hEO0FBQ3pDLFNBQVNNLGFBQWFDLFdBQVc7SUFDcEMsTUFBTUMsZUFBZUwsNkNBQU1BO0lBQzNCRCxnREFBU0EsQ0FBQztRQUNOLElBQUlNLGFBQWFDLE9BQU8sRUFBRTtZQUN0QjtRQUNKO1FBQ0EsTUFBTUMsTUFBTUwsNkRBQVlBLENBQUNFO1FBQ3pCQyxhQUFhQyxPQUFPLEdBQUcsSUFBSUUsT0FBT0MsU0FBUyxDQUFDLEtBQUtGLE1BQU07SUFDM0QsR0FBRztRQUNDSDtLQUNIO0lBQ0QsT0FBT0M7QUFDWDtBQUNPLFNBQVNLLGVBQWVMLFlBQVk7SUFDdkMsTUFBTU0sY0FBY2Qsa0RBQVdBLENBQUMsQ0FBQ2U7UUFDN0IsTUFBTUMsU0FBU1IsYUFBYUMsT0FBTztRQUNuQyxJQUFJLENBQUNPLFVBQVVBLE9BQU9DLFVBQVUsS0FBS0QsT0FBT0UsSUFBSSxFQUFFO1lBQzlDO1FBQ0o7UUFDQSxPQUFPRixPQUFPRyxJQUFJLENBQUNKO0lBQ3ZCLEdBQUc7UUFDQ1A7S0FDSDtJQUNELE9BQU9NO0FBQ1g7QUFDTyxTQUFTTSxhQUFhTixXQUFXO0lBQ3BDLE1BQU1PLGlCQUFpQmxCLDZDQUFNQSxDQUFDO1FBQzFCbUIsTUFBTTtRQUNOLDBGQUEwRjtRQUMxRkMsT0FBTyxFQUFFO1FBQ1RDLFVBQVVDO0lBQ2Q7SUFDQSxNQUFNQywwQkFBMEIxQixrREFBV0EsQ0FBQyxDQUFDMkI7UUFDekMsSUFBSUM7UUFDSixJQUFJLFVBQVVELE9BQVEsRUFBQ0MsWUFBWUQsSUFBSUUsSUFBSSxLQUFLLE9BQU8sS0FBSyxJQUFJRCxVQUFVRSxVQUFVLENBQUMsYUFBWSxHQUFJO1lBQ2pHLE1BQU0sRUFBRU4sUUFBUSxFQUFFRCxLQUFLLEVBQUUsR0FBR0YsZUFBZVosT0FBTztZQUNsRCxJQUFJZSxVQUFVO2dCQUNWQSxTQUFTRztZQUNiLE9BQU87Z0JBQ0hKLE1BQU1RLElBQUksQ0FBQ0o7WUFDZjtZQUNBLE9BQU87UUFDWDtRQUNBLE9BQU87SUFDWCxHQUFHLEVBQUU7SUFDTHpCLGdEQUFTQSxDQUFDO1FBQ04sTUFBTSxFQUFFTyxTQUFTdUIsV0FBVyxFQUFFLEdBQUdYO1FBQ2pDLDJEQUEyRDtRQUMzRCxJQUFJVyxZQUFZVixJQUFJLEVBQUU7WUFDbEI7UUFDSjtRQUNBVSxZQUFZVixJQUFJLEdBQUc7UUFDbkIsb09BQ2dFLENBQUNXLElBQUksQ0FBQyxDQUFDQztZQUNuRSxJQUFJLEVBQUVDLE9BQU8sRUFBRSxHQUFHRDtZQUNsQixNQUFNLEVBQUV6QixPQUFPLEVBQUUsR0FBR1k7WUFDcEJjLFFBQVE7Z0JBQ0pDLG9CQUFvQkMsRUFBRTtvQkFDbEI1QixRQUFRZSxRQUFRLEdBQUdhO29CQUNuQixpRkFBaUY7b0JBQ2pGLEtBQUssTUFBTVYsT0FBT2xCLFFBQVFjLEtBQUssQ0FBQzt3QkFDNUJjLEdBQUdWO29CQUNQO29CQUNBbEIsUUFBUWMsS0FBSyxHQUFHRTtnQkFDcEI7Z0JBQ0FYO1lBQ0o7UUFDSjtJQUNKLEdBQUc7UUFDQ0E7S0FDSDtJQUNELE9BQU9ZO0FBQ1g7QUFDTyxTQUFTWSxpQkFBaUJDLFlBQVk7SUFDekMsTUFBTXpCLGNBQWNELGVBQWUwQjtJQUNuQyxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHdkMsaURBQVVBLENBQUNHLG9HQUF5QkE7SUFDckRGLGdEQUFTQSxDQUFDO1FBQ04seUNBQXlDO1FBQ3pDLE1BQU11QyxXQUFXQyxZQUFZO1lBQ3pCNUIsWUFBWTZCLEtBQUtDLFNBQVMsQ0FBQztnQkFDdkJDLE9BQU87Z0JBQ1BMO2dCQUNBTSxhQUFhO1lBQ2pCO1FBQ0osR0FBRztRQUNILE9BQU8sSUFBSUMsY0FBY047SUFDN0IsR0FBRztRQUNDRDtRQUNBMUI7S0FDSDtBQUNMLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL3VzZS13ZWJzb2NrZXQuanM/ZTMzNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEdsb2JhbExheW91dFJvdXRlckNvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbmltcG9ydCB7IGdldFNvY2tldFVybCB9IGZyb20gXCIuL2dldC1zb2NrZXQtdXJsXCI7XG5leHBvcnQgZnVuY3Rpb24gdXNlV2Vic29ja2V0KGFzc2V0UHJlZml4KSB7XG4gICAgY29uc3Qgd2ViU29ja2V0UmVmID0gdXNlUmVmKCk7XG4gICAgdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmICh3ZWJTb2NrZXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVybCA9IGdldFNvY2tldFVybChhc3NldFByZWZpeCk7XG4gICAgICAgIHdlYlNvY2tldFJlZi5jdXJyZW50ID0gbmV3IHdpbmRvdy5XZWJTb2NrZXQoXCJcIiArIHVybCArIFwiL19uZXh0L3dlYnBhY2staG1yXCIpO1xuICAgIH0sIFtcbiAgICAgICAgYXNzZXRQcmVmaXhcbiAgICBdKTtcbiAgICByZXR1cm4gd2ViU29ja2V0UmVmO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbmRNZXNzYWdlKHdlYlNvY2tldFJlZikge1xuICAgIGNvbnN0IHNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soKGRhdGEpPT57XG4gICAgICAgIGNvbnN0IHNvY2tldCA9IHdlYlNvY2tldFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIXNvY2tldCB8fCBzb2NrZXQucmVhZHlTdGF0ZSAhPT0gc29ja2V0Lk9QRU4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc29ja2V0LnNlbmQoZGF0YSk7XG4gICAgfSwgW1xuICAgICAgICB3ZWJTb2NrZXRSZWZcbiAgICBdKTtcbiAgICByZXR1cm4gc2VuZE1lc3NhZ2U7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlVHVyYm9wYWNrKHNlbmRNZXNzYWdlKSB7XG4gICAgY29uc3QgdHVyYm9wYWNrU3RhdGUgPSB1c2VSZWYoe1xuICAgICAgICBpbml0OiBmYWxzZSxcbiAgICAgICAgLy8gVW50aWwgdGhlIGR5bmFtaWMgaW1wb3J0IHJlc29sdmVzLCBxdWV1ZSBhbnkgdHVyYm9wYWNrIG1lc3NhZ2VzIHdoaWNoIHdpbGwgYmUgcmVwbGF5ZWQuXG4gICAgICAgIHF1ZXVlOiBbXSxcbiAgICAgICAgY2FsbGJhY2s6IHVuZGVmaW5lZFxuICAgIH0pO1xuICAgIGNvbnN0IHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlID0gdXNlQ2FsbGJhY2soKG1zZyk9PntcbiAgICAgICAgdmFyIF9tc2dfdHlwZTtcbiAgICAgICAgaWYgKFwidHlwZVwiIGluIG1zZyAmJiAoKF9tc2dfdHlwZSA9IG1zZy50eXBlKSA9PSBudWxsID8gdm9pZCAwIDogX21zZ190eXBlLnN0YXJ0c1dpdGgoXCJ0dXJib3BhY2stXCIpKSkge1xuICAgICAgICAgICAgY29uc3QgeyBjYWxsYmFjaywgcXVldWUgfSA9IHR1cmJvcGFja1N0YXRlLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhtc2cpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWV1ZS5wdXNoKG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSwgW10pO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCB7IGN1cnJlbnQ6IGluaXRDdXJyZW50IH0gPSB0dXJib3BhY2tTdGF0ZTtcbiAgICAgICAgLy8gVE9ETyhXRUItMTU4OSk6IG9ubHkgaW5zdGFsbCBpZiBgcHJvY2Vzcy50dXJib3BhY2tgIHNldC5cbiAgICAgICAgaWYgKGluaXRDdXJyZW50LmluaXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpbml0Q3VycmVudC5pbml0ID0gdHJ1ZTtcbiAgICAgICAgaW1wb3J0KC8vIEB0cy1leHBlY3QtZXJyb3IgcmVxdWlyZXMgXCJtb2R1bGVSZXNvbHV0aW9uXCI6IFwibm9kZTE2XCIgaW4gdHNjb25maWcuanNvbiBhbmQgbm90IC50cyBleHRlbnNpb25cbiAgICAgICAgXCJAdmVyY2VsL3R1cmJvcGFjay1lY21hc2NyaXB0LXJ1bnRpbWUvZGV2L2NsaWVudC9obXItY2xpZW50LnRzXCIpLnRoZW4oKHBhcmFtKT0+e1xuICAgICAgICAgICAgbGV0IHsgY29ubmVjdCB9ID0gcGFyYW07XG4gICAgICAgICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IHR1cmJvcGFja1N0YXRlO1xuICAgICAgICAgICAgY29ubmVjdCh7XG4gICAgICAgICAgICAgICAgYWRkTWVzc2FnZUxpc3RlbmVyIChjYikge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50LmNhbGxiYWNrID0gY2I7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcGxheSBhbGwgVHVyYm9wYWNrIG1lc3NhZ2VzIGJlZm9yZSB3ZSB3ZXJlIGFibGUgdG8gZXN0YWJsaXNoIHRoZSBITVIgY2xpZW50LlxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1zZyBvZiBjdXJyZW50LnF1ZXVlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiKG1zZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudC5xdWV1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBzZW5kTWVzc2FnZVxuICAgIF0pO1xuICAgIHJldHVybiBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VXZWJzb2NrZXRQaW5nKHdlYnNvY2tldFJlZikge1xuICAgIGNvbnN0IHNlbmRNZXNzYWdlID0gdXNlU2VuZE1lc3NhZ2Uod2Vic29ja2V0UmVmKTtcbiAgICBjb25zdCB7IHRyZWUgfSA9IHVzZUNvbnRleHQoR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCk7XG4gICAgdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIC8vIFRha2VuIGZyb20gb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzXG4gICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCk9PntcbiAgICAgICAgICAgIHNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBldmVudDogXCJwaW5nXCIsXG4gICAgICAgICAgICAgICAgdHJlZSxcbiAgICAgICAgICAgICAgICBhcHBEaXJSb3V0ZTogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9LCAyNTAwKTtcbiAgICAgICAgcmV0dXJuICgpPT5jbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICB9LCBbXG4gICAgICAgIHRyZWUsXG4gICAgICAgIHNlbmRNZXNzYWdlXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS13ZWJzb2NrZXQuanMubWFwIl0sIm5hbWVzIjpbInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJnZXRTb2NrZXRVcmwiLCJ1c2VXZWJzb2NrZXQiLCJhc3NldFByZWZpeCIsIndlYlNvY2tldFJlZiIsImN1cnJlbnQiLCJ1cmwiLCJ3aW5kb3ciLCJXZWJTb2NrZXQiLCJ1c2VTZW5kTWVzc2FnZSIsInNlbmRNZXNzYWdlIiwiZGF0YSIsInNvY2tldCIsInJlYWR5U3RhdGUiLCJPUEVOIiwic2VuZCIsInVzZVR1cmJvcGFjayIsInR1cmJvcGFja1N0YXRlIiwiaW5pdCIsInF1ZXVlIiwiY2FsbGJhY2siLCJ1bmRlZmluZWQiLCJwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSIsIm1zZyIsIl9tc2dfdHlwZSIsInR5cGUiLCJzdGFydHNXaXRoIiwicHVzaCIsImluaXRDdXJyZW50IiwidGhlbiIsInBhcmFtIiwiY29ubmVjdCIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsImNiIiwidXNlV2Vic29ja2V0UGluZyIsIndlYnNvY2tldFJlZiIsInRyZWUiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwiYXBwRGlyUm91dGUiLCJjbGVhckludGVydmFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-websocket.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js":
-/*!*******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js ***!
- \*******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useOnClickOutside: () => (/* binding */ useOnClickOutside)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction useOnClickOutside(el, handler) {\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (el == null || handler == null) {\n return;\n }\n const listener = (e)=>{\n // Do nothing if clicking ref's element or descendent elements\n if (!el || el.contains(e.target)) {\n return;\n }\n handler(e);\n };\n const root = el.getRootNode();\n root.addEventListener(\"mousedown\", listener);\n root.addEventListener(\"touchstart\", listener);\n return function() {\n root.removeEventListener(\"mousedown\", listener);\n root.removeEventListener(\"touchstart\", listener);\n };\n }, [\n handler,\n el\n ]);\n} //# sourceMappingURL=use-on-click-outside.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaG9va3MvdXNlLW9uLWNsaWNrLW91dHNpZGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQStCO0FBQ3hCLFNBQVNDLGtCQUFrQkMsRUFBRSxFQUFFQyxPQUFPO0lBQ3pDSCw0Q0FBZSxDQUFDO1FBQ1osSUFBSUUsTUFBTSxRQUFRQyxXQUFXLE1BQU07WUFDL0I7UUFDSjtRQUNBLE1BQU1FLFdBQVcsQ0FBQ0M7WUFDZCw4REFBOEQ7WUFDOUQsSUFBSSxDQUFDSixNQUFNQSxHQUFHSyxRQUFRLENBQUNELEVBQUVFLE1BQU0sR0FBRztnQkFDOUI7WUFDSjtZQUNBTCxRQUFRRztRQUNaO1FBQ0EsTUFBTUcsT0FBT1AsR0FBR1EsV0FBVztRQUMzQkQsS0FBS0UsZ0JBQWdCLENBQUMsYUFBYU47UUFDbkNJLEtBQUtFLGdCQUFnQixDQUFDLGNBQWNOO1FBQ3BDLE9BQU87WUFDSEksS0FBS0csbUJBQW1CLENBQUMsYUFBYVA7WUFDdENJLEtBQUtHLG1CQUFtQixDQUFDLGNBQWNQO1FBQzNDO0lBQ0osR0FBRztRQUNDRjtRQUNBRDtLQUNIO0FBQ0wsRUFFQSxnREFBZ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hvb2tzL3VzZS1vbi1jbGljay1vdXRzaWRlLmpzPzA5N2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgZnVuY3Rpb24gdXNlT25DbGlja091dHNpZGUoZWwsIGhhbmRsZXIpIHtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKGVsID09IG51bGwgfHwgaGFuZGxlciA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGlzdGVuZXIgPSAoZSk9PntcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmcgaWYgY2xpY2tpbmcgcmVmJ3MgZWxlbWVudCBvciBkZXNjZW5kZW50IGVsZW1lbnRzXG4gICAgICAgICAgICBpZiAoIWVsIHx8IGVsLmNvbnRhaW5zKGUudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhbmRsZXIoZSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJvb3QgPSBlbC5nZXRSb290Tm9kZSgpO1xuICAgICAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgbGlzdGVuZXIpO1xuICAgICAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsIGxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIGxpc3RlbmVyKTtcbiAgICAgICAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgbGlzdGVuZXIpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgaGFuZGxlcixcbiAgICAgICAgZWxcbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlLW9uLWNsaWNrLW91dHNpZGUuanMubWFwIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlT25DbGlja091dHNpZGUiLCJlbCIsImhhbmRsZXIiLCJ1c2VFZmZlY3QiLCJsaXN0ZW5lciIsImUiLCJjb250YWlucyIsInRhcmdldCIsInJvb3QiLCJnZXRSb290Tm9kZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/icons/CloseIcon.js":
-/*!********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/icons/CloseIcon.js ***!
- \********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CloseIcon: () => (/* binding */ CloseIcon)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst CloseIcon = ()=>{\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"svg\", {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M18 6L6 18\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"path\", {\n d: \"M6 6L18 18\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })\n ]\n });\n};\n //# sourceMappingURL=CloseIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaWNvbnMvQ2xvc2VJY29uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBK0Q7QUFDaEM7QUFDL0IsTUFBTUssWUFBWTtJQUNkLE9BQU8sV0FBVyxHQUFHRix1REFBS0EsQ0FBQyxPQUFPO1FBQzlCRyxPQUFPO1FBQ1BDLFFBQVE7UUFDUkMsU0FBUztRQUNUQyxNQUFNO1FBQ05DLE9BQU87UUFDUEMsVUFBVTtZQUNOLFdBQVcsR0FBR1Ysc0RBQUlBLENBQUMsUUFBUTtnQkFDdkJXLEdBQUc7Z0JBQ0hDLFFBQVE7Z0JBQ1JDLGFBQWE7Z0JBQ2JDLGVBQWU7Z0JBQ2ZDLGdCQUFnQjtZQUNwQjtZQUNBLFdBQVcsR0FBR2Ysc0RBQUlBLENBQUMsUUFBUTtnQkFDdkJXLEdBQUc7Z0JBQ0hDLFFBQVE7Z0JBQ1JDLGFBQWE7Z0JBQ2JDLGVBQWU7Z0JBQ2ZDLGdCQUFnQjtZQUNwQjtTQUNIO0lBQ0w7QUFDSjtBQUNxQixDQUVyQixxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2ljb25zL0Nsb3NlSWNvbi5qcz85OTM2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmNvbnN0IENsb3NlSWNvbiA9ICgpPT57XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJzdmdcIiwge1xuICAgICAgICB3aWR0aDogXCIyNFwiLFxuICAgICAgICBoZWlnaHQ6IFwiMjRcIixcbiAgICAgICAgdmlld0JveDogXCIwIDAgMjQgMjRcIixcbiAgICAgICAgZmlsbDogXCJub25lXCIsXG4gICAgICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJwYXRoXCIsIHtcbiAgICAgICAgICAgICAgICBkOiBcIk0xOCA2TDYgMThcIixcbiAgICAgICAgICAgICAgICBzdHJva2U6IFwiY3VycmVudENvbG9yXCIsXG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IFwiMlwiLFxuICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIixcbiAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbjogXCJyb3VuZFwiXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcInBhdGhcIiwge1xuICAgICAgICAgICAgICAgIGQ6IFwiTTYgNkwxOCAxOFwiLFxuICAgICAgICAgICAgICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogXCIyXCIsXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLFxuICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG5leHBvcnQgeyBDbG9zZUljb24gfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q2xvc2VJY29uLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJDbG9zZUljb24iLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwieG1sbnMiLCJjaGlsZHJlbiIsImQiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/icons/CloseIcon.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/Base.js":
-/*!****************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/Base.js ***!
- \****************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Base: () => (/* binding */ Base)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n :host {\\n --size-gap-half: 4px;\\n --size-gap: 8px;\\n --size-gap-double: 16px;\\n --size-gap-triple: 24px;\\n --size-gap-quad: 32px;\\n\\n --size-font-small: 14px;\\n --size-font: 16px;\\n --size-font-big: 20px;\\n --size-font-bigger: 24px;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono',\\n Menlo, Courier, monospace;\\n\\n --color-ansi-selection: rgba(95, 126, 151, 0.48);\\n --color-ansi-bg: #111111;\\n --color-ansi-fg: #cccccc;\\n\\n --color-ansi-white: #777777;\\n --color-ansi-black: #141414;\\n --color-ansi-blue: #00aaff;\\n --color-ansi-cyan: #88ddff;\\n --color-ansi-green: #98ec65;\\n --color-ansi-magenta: #aa88ff;\\n --color-ansi-red: #ff5555;\\n --color-ansi-yellow: #ffcc33;\\n --color-ansi-bright-white: #ffffff;\\n --color-ansi-bright-black: #777777;\\n --color-ansi-bright-blue: #33bbff;\\n --color-ansi-bright-cyan: #bbecff;\\n --color-ansi-bright-green: #b6f292;\\n --color-ansi-bright-magenta: #cebbff;\\n --color-ansi-bright-red: #ff8888;\\n --color-ansi-bright-yellow: #ffd966;\\n }\\n\\n .mono {\\n font-family: var(--font-stack-monospace);\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: var(--size-gap);\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\n\n\nfunction Base() {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"style\", {\n children: (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_3__.noop)(_templateObject())\n });\n} //# sourceMappingURL=Base.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvc3R5bGVzL0Jhc2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQW9HO0FBQ3BHLFNBQVNFO0lBQ0wsTUFBTUMsT0FBT0YsNkVBQThCQSxDQUFDO1FBQ3hDO0tBQ0g7SUFDREMsa0JBQWtCO1FBQ2QsT0FBT0M7SUFDWDtJQUNBLE9BQU9BO0FBQ1g7QUFDZ0Q7QUFDakI7QUFDd0I7QUFDaEQsU0FBU007SUFDWixPQUFPLFdBQVcsR0FBR0osc0RBQUlBLENBQUMsU0FBUztRQUMvQkssVUFBVUYsNERBQUdBLENBQUNOO0lBQ2xCO0FBQ0osRUFFQSxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9CYXNlLmpzPzliYzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyBhcyBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgfSBmcm9tIFwiQHN3Yy9oZWxwZXJzL18vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlXCI7XG5mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKSB7XG4gICAgY29uc3QgZGF0YSA9IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZShbXG4gICAgICAgIFwiXFxuICAgICAgICA6aG9zdCB7XFxuICAgICAgICAgIC0tc2l6ZS1nYXAtaGFsZjogNHB4O1xcbiAgICAgICAgICAtLXNpemUtZ2FwOiA4cHg7XFxuICAgICAgICAgIC0tc2l6ZS1nYXAtZG91YmxlOiAxNnB4O1xcbiAgICAgICAgICAtLXNpemUtZ2FwLXRyaXBsZTogMjRweDtcXG4gICAgICAgICAgLS1zaXplLWdhcC1xdWFkOiAzMnB4O1xcblxcbiAgICAgICAgICAtLXNpemUtZm9udC1zbWFsbDogMTRweDtcXG4gICAgICAgICAgLS1zaXplLWZvbnQ6IDE2cHg7XFxuICAgICAgICAgIC0tc2l6ZS1mb250LWJpZzogMjBweDtcXG4gICAgICAgICAgLS1zaXplLWZvbnQtYmlnZ2VyOiAyNHB4O1xcblxcbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMTogIzgwODA4MDtcXG4gICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTI6ICMyMjIyMjI7XFxuICAgICAgICAgIC0tY29sb3ItYWNjZW50cy0zOiAjNDA0MDQwO1xcblxcbiAgICAgICAgICAtLWZvbnQtc3RhY2stbW9ub3NwYWNlOiAnU0ZNb25vLVJlZ3VsYXInLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsXFxuICAgICAgICAgICAgTWVubG8sIENvdXJpZXIsIG1vbm9zcGFjZTtcXG5cXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXNlbGVjdGlvbjogcmdiYSg5NSwgMTI2LCAxNTEsIDAuNDgpO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYmc6ICMxMTExMTE7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1mZzogI2NjY2NjYztcXG5cXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXdoaXRlOiAjNzc3Nzc3O1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYmxhY2s6ICMxNDE0MTQ7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1ibHVlOiAjMDBhYWZmO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktY3lhbjogIzg4ZGRmZjtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWdyZWVuOiAjOThlYzY1O1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktbWFnZW50YTogI2FhODhmZjtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXJlZDogI2ZmNTU1NTtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXllbGxvdzogI2ZmY2MzMztcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZTogI2ZmZmZmZjtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjazogIzc3Nzc3NztcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ibHVlOiAjMzNiYmZmO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWN5YW46ICNiYmVjZmY7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtZ3JlZW46ICNiNmYyOTI7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtbWFnZW50YTogI2NlYmJmZjtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1yZWQ6ICNmZjg4ODg7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQteWVsbG93OiAjZmZkOTY2O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLm1vbm8ge1xcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgaDEsXFxuICAgICAgICBoMixcXG4gICAgICAgIGgzLFxcbiAgICAgICAgaDQsXFxuICAgICAgICBoNSxcXG4gICAgICAgIGg2IHtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xcbiAgICAgICAgfVxcbiAgICAgIFwiXG4gICAgXSk7XG4gICAgX3RlbXBsYXRlT2JqZWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH07XG4gICAgcmV0dXJuIGRhdGE7XG59XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBCYXNlKCkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goXCJzdHlsZVwiLCB7XG4gICAgICAgIGNoaWxkcmVuOiBjc3MoX3RlbXBsYXRlT2JqZWN0KCkpXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJhc2UuanMubWFwIl0sIm5hbWVzIjpbIl8iLCJfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UiLCJfdGVtcGxhdGVPYmplY3QiLCJkYXRhIiwianN4IiwiX2pzeCIsIlJlYWN0Iiwibm9vcCIsImNzcyIsIkJhc2UiLCJjaGlsZHJlbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/Base.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/ComponentStyles.js":
-/*!***************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/ComponentStyles.js ***!
- \***************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ComponentStyles: () => (/* binding */ ComponentStyles)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_CodeFrame_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/CodeFrame/styles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js\");\n/* harmony import */ var _components_Dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Dialog */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\n/* harmony import */ var _components_LeftRightDialogHeader_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/LeftRightDialogHeader/styles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\");\n/* harmony import */ var _components_Overlay_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Overlay/styles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/styles.js\");\n/* harmony import */ var _components_Terminal_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/Terminal/styles */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/styles.js\");\n/* harmony import */ var _components_Toast__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/Toast */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/index.js\");\n/* harmony import */ var _components_VersionStalenessInfo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\n/* harmony import */ var _container_BuildError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../container/BuildError */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/BuildError.js\");\n/* harmony import */ var _container_RootLayoutError__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../container/RootLayoutError */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RootLayoutError.js\");\n/* harmony import */ var _container_Errors__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../container/Errors */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/Errors.js\");\n/* harmony import */ var _container_RuntimeError__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../container/RuntimeError */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\");\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction ComponentStyles() {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"style\", {\n children: (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_14__.noop)(_templateObject(), _components_Overlay_styles__WEBPACK_IMPORTED_MODULE_6__.styles, _components_Toast__WEBPACK_IMPORTED_MODULE_8__.styles, _components_Dialog__WEBPACK_IMPORTED_MODULE_4__.styles, _components_LeftRightDialogHeader_styles__WEBPACK_IMPORTED_MODULE_5__.styles, _components_CodeFrame_styles__WEBPACK_IMPORTED_MODULE_3__.styles, _components_Terminal_styles__WEBPACK_IMPORTED_MODULE_7__.styles, _container_BuildError__WEBPACK_IMPORTED_MODULE_10__.styles, _container_RootLayoutError__WEBPACK_IMPORTED_MODULE_11__.styles, _container_Errors__WEBPACK_IMPORTED_MODULE_12__.styles, _container_RuntimeError__WEBPACK_IMPORTED_MODULE_13__.styles, _components_VersionStalenessInfo__WEBPACK_IMPORTED_MODULE_9__.styles)\n });\n} //# sourceMappingURL=ComponentStyles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvc3R5bGVzL0NvbXBvbmVudFN0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFvRztBQUNwRyxTQUFTRTtJQUNMLE1BQU1DLE9BQU9GLDZFQUE4QkEsQ0FBQztRQUN4QztRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDSDtJQUNEQyxrQkFBa0I7UUFDZCxPQUFPQztJQUNYO0lBQ0EsT0FBT0E7QUFDWDtBQUNnRDtBQUNqQjtBQUNzQztBQUNiO0FBQ3FDO0FBQzVCO0FBQ0U7QUFDYjtBQUMwQjtBQUNYO0FBQ1U7QUFDVjtBQUNhO0FBQzNCO0FBQ2hELFNBQVNrQjtJQUNaLE9BQU8sV0FBVyxHQUFHaEIsc0RBQUlBLENBQUMsU0FBUztRQUMvQmlCLFVBQVVGLDZEQUFHQSxDQUFDbEIsbUJBQW1CUyw4REFBT0EsRUFBRUUscURBQUtBLEVBQUVKLHNEQUFNQSxFQUFFQyw0RUFBcUJBLEVBQUVGLGdFQUFTQSxFQUFFSSwrREFBUUEsRUFBRUcsMERBQWdCQSxFQUFFQywrREFBcUJBLEVBQUVDLHNEQUFvQkEsRUFBRUMsNERBQTJCQSxFQUFFSixvRUFBZ0JBO0lBQ3JOO0FBQ0osRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9Db21wb25lbnRTdHlsZXMuanM/NmEwYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIGFzIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSB9IGZyb20gXCJAc3djL2hlbHBlcnMvXy9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2VcIjtcbmZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpIHtcbiAgICBjb25zdCBkYXRhID0gX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlKFtcbiAgICAgICAgXCJcXG4gICAgICAgIFwiLFxuICAgICAgICBcIlxcbiAgICAgICAgXCIsXG4gICAgICAgIFwiXFxuICAgICAgICBcIixcbiAgICAgICAgXCJcXG4gICAgICAgIFwiLFxuICAgICAgICBcIlxcbiAgICAgICAgXCIsXG4gICAgICAgIFwiXFxuICAgICAgICBcIixcbiAgICAgICAgXCJcXG4gICAgICAgIFxcbiAgICAgICAgXCIsXG4gICAgICAgIFwiXFxuICAgICAgICBcIixcbiAgICAgICAgXCJcXG4gICAgICAgIFwiLFxuICAgICAgICBcIlxcbiAgICAgICAgXCIsXG4gICAgICAgIFwiXFxuICAgICAgICBcIixcbiAgICAgICAgXCJcXG4gICAgICBcIlxuICAgIF0pO1xuICAgIF90ZW1wbGF0ZU9iamVjdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xufVxuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgc3R5bGVzIGFzIGNvZGVGcmFtZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL0NvZGVGcmFtZS9zdHlsZXNcIjtcbmltcG9ydCB7IHN0eWxlcyBhcyBkaWFsb2cgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9EaWFsb2dcIjtcbmltcG9ydCB7IHN0eWxlcyBhcyBsZWZ0UmlnaHREaWFsb2dIZWFkZXIgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvc3R5bGVzXCI7XG5pbXBvcnQgeyBzdHlsZXMgYXMgb3ZlcmxheSB9IGZyb20gXCIuLi9jb21wb25lbnRzL092ZXJsYXkvc3R5bGVzXCI7XG5pbXBvcnQgeyBzdHlsZXMgYXMgdGVybWluYWwgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9UZXJtaW5hbC9zdHlsZXNcIjtcbmltcG9ydCB7IHN0eWxlcyBhcyB0b2FzdCB9IGZyb20gXCIuLi9jb21wb25lbnRzL1RvYXN0XCI7XG5pbXBvcnQgeyBzdHlsZXMgYXMgdmVyc2lvblN0YWxlbmVzcyB9IGZyb20gXCIuLi9jb21wb25lbnRzL1ZlcnNpb25TdGFsZW5lc3NJbmZvXCI7XG5pbXBvcnQgeyBzdHlsZXMgYXMgYnVpbGRFcnJvclN0eWxlcyB9IGZyb20gXCIuLi9jb250YWluZXIvQnVpbGRFcnJvclwiO1xuaW1wb3J0IHsgc3R5bGVzIGFzIHJvb3RMYXlvdXRFcnJvclN0eWxlcyB9IGZyb20gXCIuLi9jb250YWluZXIvUm9vdExheW91dEVycm9yXCI7XG5pbXBvcnQgeyBzdHlsZXMgYXMgY29udGFpbmVyRXJyb3JTdHlsZXMgfSBmcm9tIFwiLi4vY29udGFpbmVyL0Vycm9yc1wiO1xuaW1wb3J0IHsgc3R5bGVzIGFzIGNvbnRhaW5lclJ1bnRpbWVFcnJvclN0eWxlcyB9IGZyb20gXCIuLi9jb250YWluZXIvUnVudGltZUVycm9yXCI7XG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBDb21wb25lbnRTdHlsZXMoKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChcInN0eWxlXCIsIHtcbiAgICAgICAgY2hpbGRyZW46IGNzcyhfdGVtcGxhdGVPYmplY3QoKSwgb3ZlcmxheSwgdG9hc3QsIGRpYWxvZywgbGVmdFJpZ2h0RGlhbG9nSGVhZGVyLCBjb2RlRnJhbWUsIHRlcm1pbmFsLCBidWlsZEVycm9yU3R5bGVzLCByb290TGF5b3V0RXJyb3JTdHlsZXMsIGNvbnRhaW5lckVycm9yU3R5bGVzLCBjb250YWluZXJSdW50aW1lRXJyb3JTdHlsZXMsIHZlcnNpb25TdGFsZW5lc3MpXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvbXBvbmVudFN0eWxlcy5qcy5tYXAiXSwibmFtZXMiOlsiXyIsIl90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSIsIl90ZW1wbGF0ZU9iamVjdCIsImRhdGEiLCJqc3giLCJfanN4IiwiUmVhY3QiLCJzdHlsZXMiLCJjb2RlRnJhbWUiLCJkaWFsb2ciLCJsZWZ0UmlnaHREaWFsb2dIZWFkZXIiLCJvdmVybGF5IiwidGVybWluYWwiLCJ0b2FzdCIsInZlcnNpb25TdGFsZW5lc3MiLCJidWlsZEVycm9yU3R5bGVzIiwicm9vdExheW91dEVycm9yU3R5bGVzIiwiY29udGFpbmVyRXJyb3JTdHlsZXMiLCJjb250YWluZXJSdW50aW1lRXJyb3JTdHlsZXMiLCJub29wIiwiY3NzIiwiQ29tcG9uZW50U3R5bGVzIiwiY2hpbGRyZW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/ComponentStyles.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/CssReset.js":
-/*!********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/CssReset.js ***!
- \********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CssReset: () => (/* binding */ CssReset)\n/* harmony export */ });\n/* harmony import */ var _swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _helpers_noop_template__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\n\nfunction _templateObject() {\n const data = (0,_swc_helpers_tagged_template_literal_loose__WEBPACK_IMPORTED_MODULE_0__._)([\n \"\\n :host {\\n all: initial;\\n\\n /* the direction property is not reset by 'all' */\\n direction: ltr;\\n }\\n\\n /*!\\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\\n * Copyright 2011-2019 The Bootstrap Authors\\n * Copyright 2011-2019 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\\n */\\n *,\\n *::before,\\n *::after {\\n box-sizing: border-box;\\n }\\n\\n :host {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n }\\n\\n article,\\n aside,\\n figcaption,\\n figure,\\n footer,\\n header,\\n hgroup,\\n main,\\n nav,\\n section {\\n display: block;\\n }\\n\\n :host {\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,\\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\\n 'Noto Color Emoji';\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #212529;\\n text-align: left;\\n background-color: #fff;\\n }\\n\\n [tabindex='-1']:focus:not(:focus-visible) {\\n outline: 0 !important;\\n }\\n\\n hr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-top: 0;\\n margin-bottom: 8px;\\n }\\n\\n p {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n abbr[title],\\n abbr[data-original-title] {\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n cursor: help;\\n border-bottom: 0;\\n -webkit-text-decoration-skip-ink: none;\\n text-decoration-skip-ink: none;\\n }\\n\\n address {\\n margin-bottom: 16px;\\n font-style: normal;\\n line-height: inherit;\\n }\\n\\n ol,\\n ul,\\n dl {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n ol ol,\\n ul ul,\\n ol ul,\\n ul ol {\\n margin-bottom: 0;\\n }\\n\\n dt {\\n font-weight: 700;\\n }\\n\\n dd {\\n margin-bottom: 8px;\\n margin-left: 0;\\n }\\n\\n blockquote {\\n margin: 0 0 16px;\\n }\\n\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n\\n small {\\n font-size: 80%;\\n }\\n\\n sub,\\n sup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n }\\n\\n sub {\\n bottom: -0.25em;\\n }\\n\\n sup {\\n top: -0.5em;\\n }\\n\\n a {\\n color: #007bff;\\n text-decoration: none;\\n background-color: transparent;\\n }\\n\\n a:hover {\\n color: #0056b3;\\n text-decoration: underline;\\n }\\n\\n a:not([href]) {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n a:not([href]):hover {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n pre,\\n code,\\n kbd,\\n samp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas,\\n 'Liberation Mono', 'Courier New', monospace;\\n font-size: 1em;\\n }\\n\\n pre {\\n margin-top: 0;\\n margin-bottom: 16px;\\n overflow: auto;\\n }\\n\\n figure {\\n margin: 0 0 16px;\\n }\\n\\n img {\\n vertical-align: middle;\\n border-style: none;\\n }\\n\\n svg {\\n overflow: hidden;\\n vertical-align: middle;\\n }\\n\\n table {\\n border-collapse: collapse;\\n }\\n\\n caption {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom;\\n }\\n\\n th {\\n text-align: inherit;\\n }\\n\\n label {\\n display: inline-block;\\n margin-bottom: 8px;\\n }\\n\\n button {\\n border-radius: 0;\\n }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n }\\n\\n input,\\n button,\\n select,\\n optgroup,\\n textarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n }\\n\\n button,\\n input {\\n overflow: visible;\\n }\\n\\n button,\\n select {\\n text-transform: none;\\n }\\n\\n select {\\n word-wrap: normal;\\n }\\n\\n button,\\n [type='button'],\\n [type='reset'],\\n [type='submit'] {\\n -webkit-appearance: button;\\n }\\n\\n button:not(:disabled),\\n [type='button']:not(:disabled),\\n [type='reset']:not(:disabled),\\n [type='submit']:not(:disabled) {\\n cursor: pointer;\\n }\\n\\n button::-moz-focus-inner,\\n [type='button']::-moz-focus-inner,\\n [type='reset']::-moz-focus-inner,\\n [type='submit']::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n }\\n\\n input[type='radio'],\\n input[type='checkbox'] {\\n box-sizing: border-box;\\n padding: 0;\\n }\\n\\n input[type='date'],\\n input[type='time'],\\n input[type='datetime-local'],\\n input[type='month'] {\\n -webkit-appearance: listbox;\\n }\\n\\n textarea {\\n overflow: auto;\\n resize: vertical;\\n }\\n\\n fieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n }\\n\\n legend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n padding: 0;\\n margin-bottom: 8px;\\n font-size: 24px;\\n line-height: inherit;\\n color: inherit;\\n white-space: normal;\\n }\\n\\n progress {\\n vertical-align: baseline;\\n }\\n\\n [type='number']::-webkit-inner-spin-button,\\n [type='number']::-webkit-outer-spin-button {\\n height: auto;\\n }\\n\\n [type='search'] {\\n outline-offset: -2px;\\n -webkit-appearance: none;\\n }\\n\\n [type='search']::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n\\n ::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button;\\n }\\n\\n output {\\n display: inline-block;\\n }\\n\\n summary {\\n display: list-item;\\n cursor: pointer;\\n }\\n\\n template {\\n display: none;\\n }\\n\\n [hidden] {\\n display: none !important;\\n }\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\n\n\n\nfunction CssReset() {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"style\", {\n children: (0,_helpers_noop_template__WEBPACK_IMPORTED_MODULE_3__.noop)(_templateObject())\n });\n} //# sourceMappingURL=CssReset.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvc3R5bGVzL0Nzc1Jlc2V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFvRztBQUNwRyxTQUFTRTtJQUNMLE1BQU1DLE9BQU9GLDZFQUE4QkEsQ0FBQztRQUN4QztLQUNIO0lBQ0RDLGtCQUFrQjtRQUNkLE9BQU9DO0lBQ1g7SUFDQSxPQUFPQTtBQUNYO0FBQ2dEO0FBQ2pCO0FBQ3dCO0FBQ2hELFNBQVNNO0lBQ1osT0FBTyxXQUFXLEdBQUdKLHNEQUFJQSxDQUFDLFNBQVM7UUFDL0JLLFVBQVVGLDREQUFHQSxDQUFDTjtJQUNsQjtBQUNKLEVBRUEsb0NBQW9DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9zdHlsZXMvQ3NzUmVzZXQuanM/ZTNhNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIGFzIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSB9IGZyb20gXCJAc3djL2hlbHBlcnMvXy9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2VcIjtcbmZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpIHtcbiAgICBjb25zdCBkYXRhID0gX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlKFtcbiAgICAgICAgXCJcXG4gICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgYWxsOiBpbml0aWFsO1xcblxcbiAgICAgICAgICAvKiB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IGlzIG5vdCByZXNldCBieSAnYWxsJyAqL1xcbiAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC8qIVxcbiAgICAgICAgICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXFxuICAgICAgICAgKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFRoZSBCb290c3RyYXAgQXV0aG9yc1xcbiAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXFxuICAgICAgICAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiAgICAgICAgICogRm9ya2VkIGZyb20gTm9ybWFsaXplLmNzcywgbGljZW5zZWQgTUlUIChodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpXFxuICAgICAgICAgKi9cXG4gICAgICAgICosXFxuICAgICAgICAqOjpiZWZvcmUsXFxuICAgICAgICAqOjphZnRlciB7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICB9XFxuXFxuICAgICAgICA6aG9zdCB7XFxuICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcXG4gICAgICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhcnRpY2xlLFxcbiAgICAgICAgYXNpZGUsXFxuICAgICAgICBmaWdjYXB0aW9uLFxcbiAgICAgICAgZmlndXJlLFxcbiAgICAgICAgZm9vdGVyLFxcbiAgICAgICAgaGVhZGVyLFxcbiAgICAgICAgaGdyb3VwLFxcbiAgICAgICAgbWFpbixcXG4gICAgICAgIG5hdixcXG4gICAgICAgIHNlY3Rpb24ge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sXFxuICAgICAgICAgICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsICdOb3RvIFNhbnMnLCBzYW5zLXNlcmlmLFxcbiAgICAgICAgICAgICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLFxcbiAgICAgICAgICAgICdOb3RvIENvbG9yIEVtb2ppJztcXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xcbiAgICAgICAgICBjb2xvcjogIzIxMjUyOTtcXG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIFt0YWJpbmRleD0nLTEnXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcXG4gICAgICAgICAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgaHIge1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgICAgICAgaGVpZ2h0OiAwO1xcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGgxLFxcbiAgICAgICAgaDIsXFxuICAgICAgICBoMyxcXG4gICAgICAgIGg0LFxcbiAgICAgICAgaDUsXFxuICAgICAgICBoNiB7XFxuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHAge1xcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYWJiclt0aXRsZV0sXFxuICAgICAgICBhYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdIHtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgIGN1cnNvcjogaGVscDtcXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcXG4gICAgICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGFkZHJlc3Mge1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgb2wsXFxuICAgICAgICB1bCxcXG4gICAgICAgIGRsIHtcXG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIG9sIG9sLFxcbiAgICAgICAgdWwgdWwsXFxuICAgICAgICBvbCB1bCxcXG4gICAgICAgIHVsIG9sIHtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGR0IHtcXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGRkIHtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGJsb2NrcXVvdGUge1xcbiAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYixcXG4gICAgICAgIHN0cm9uZyB7XFxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBzbWFsbCB7XFxuICAgICAgICAgIGZvbnQtc2l6ZTogODAlO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgc3ViLFxcbiAgICAgICAgc3VwIHtcXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgICBmb250LXNpemU6IDc1JTtcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XFxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHN1YiB7XFxuICAgICAgICAgIGJvdHRvbTogLTAuMjVlbTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHN1cCB7XFxuICAgICAgICAgIHRvcDogLTAuNWVtO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYSB7XFxuICAgICAgICAgIGNvbG9yOiAjMDA3YmZmO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYTpob3ZlciB7XFxuICAgICAgICAgIGNvbG9yOiAjMDA1NmIzO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGE6bm90KFtocmVmXSkge1xcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYTpub3QoW2hyZWZdKTpob3ZlciB7XFxuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBwcmUsXFxuICAgICAgICBjb2RlLFxcbiAgICAgICAga2JkLFxcbiAgICAgICAgc2FtcCB7XFxuICAgICAgICAgIGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsXFxuICAgICAgICAgICAgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcXG4gICAgICAgICAgZm9udC1zaXplOiAxZW07XFxuICAgICAgICB9XFxuXFxuICAgICAgICBwcmUge1xcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGZpZ3VyZSB7XFxuICAgICAgICAgIG1hcmdpbjogMCAwIDE2cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpbWcge1xcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBzdmcge1xcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgdGFibGUge1xcbiAgICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgY2FwdGlvbiB7XFxuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcXG4gICAgICAgICAgY29sb3I6ICM2Yzc1N2Q7XFxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICAgIGNhcHRpb24tc2lkZTogYm90dG9tO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgdGgge1xcbiAgICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgbGFiZWwge1xcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGJ1dHRvbiB7XFxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBidXR0b246Zm9jdXMge1xcbiAgICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkO1xcbiAgICAgICAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpbnB1dCxcXG4gICAgICAgIGJ1dHRvbixcXG4gICAgICAgIHNlbGVjdCxcXG4gICAgICAgIG9wdGdyb3VwLFxcbiAgICAgICAgdGV4dGFyZWEge1xcbiAgICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xcbiAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgaW5wdXQge1xcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGJ1dHRvbixcXG4gICAgICAgIHNlbGVjdCB7XFxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgc2VsZWN0IHtcXG4gICAgICAgICAgd29yZC13cmFwOiBub3JtYWw7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBidXR0b24sXFxuICAgICAgICBbdHlwZT0nYnV0dG9uJ10sXFxuICAgICAgICBbdHlwZT0ncmVzZXQnXSxcXG4gICAgICAgIFt0eXBlPSdzdWJtaXQnXSB7XFxuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgW3R5cGU9J2J1dHRvbiddOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgW3R5cGU9J3Jlc2V0J106bm90KDpkaXNhYmxlZCksXFxuICAgICAgICBbdHlwZT0nc3VibWl0J106bm90KDpkaXNhYmxlZCkge1xcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICBbdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICBbdHlwZT0ncmVzZXQnXTo6LW1vei1mb2N1cy1pbm5lcixcXG4gICAgICAgIFt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XFxuICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ10sXFxuICAgICAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGlucHV0W3R5cGU9J2RhdGUnXSxcXG4gICAgICAgIGlucHV0W3R5cGU9J3RpbWUnXSxcXG4gICAgICAgIGlucHV0W3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sXFxuICAgICAgICBpbnB1dFt0eXBlPSdtb250aCddIHtcXG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgdGV4dGFyZWEge1xcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcXG4gICAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGZpZWxkc2V0IHtcXG4gICAgICAgICAgbWluLXdpZHRoOiAwO1xcbiAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGxlZ2VuZCB7XFxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgcHJvZ3Jlc3Mge1xcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXFxuICAgICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XFxuICAgICAgICB9XFxuXFxuICAgICAgICBbdHlwZT0nc2VhcmNoJ10ge1xcbiAgICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcXG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcXG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XFxuICAgICAgICAgIGZvbnQ6IGluaGVyaXQ7XFxuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgb3V0cHV0IHtcXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgc3VtbWFyeSB7XFxuICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgdGVtcGxhdGUge1xcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgW2hpZGRlbl0ge1xcbiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICB9XFxuICAgICAgXCJcbiAgICBdKTtcbiAgICBfdGVtcGxhdGVPYmplY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcbiAgICByZXR1cm4gZGF0YTtcbn1cbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSBcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIENzc1Jlc2V0KCkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goXCJzdHlsZVwiLCB7XG4gICAgICAgIGNoaWxkcmVuOiBjc3MoX3RlbXBsYXRlT2JqZWN0KCkpXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNzc1Jlc2V0LmpzLm1hcCJdLCJuYW1lcyI6WyJfIiwiX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIiwiX3RlbXBsYXRlT2JqZWN0IiwiZGF0YSIsImpzeCIsIl9qc3giLCJSZWFjdCIsIm5vb3AiLCJjc3MiLCJDc3NSZXNldCIsImNoaWxkcmVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/CssReset.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/redirect-boundary.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/redirect-boundary.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RedirectBoundary: () => (/* binding */ RedirectBoundary),\n/* harmony export */ RedirectErrorBoundary: () => (/* binding */ RedirectErrorBoundary)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./navigation */ \"(ssr)/../../node_modules/next/dist/esm/client/components/navigation.js\");\n/* harmony import */ var _redirect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./redirect */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js\");\n/* __next_internal_client_entry_do_not_use__ RedirectErrorBoundary,RedirectBoundary auto */ \n\n\n\nfunction HandleRedirect(param) {\n let { redirect, reset, redirectType } = param;\n const router = (0,_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n react__WEBPACK_IMPORTED_MODULE_1___default().startTransition(()=>{\n if (redirectType === _redirect__WEBPACK_IMPORTED_MODULE_3__.RedirectType.push) {\n router.push(redirect, {});\n } else {\n router.replace(redirect, {});\n }\n reset();\n });\n }, [\n redirect,\n redirectType,\n reset,\n router\n ]);\n return null;\n}\nclass RedirectErrorBoundary extends (react__WEBPACK_IMPORTED_MODULE_1___default().Component) {\n static getDerivedStateFromError(error) {\n if ((0,_redirect__WEBPACK_IMPORTED_MODULE_3__.isRedirectError)(error)) {\n const url = (0,_redirect__WEBPACK_IMPORTED_MODULE_3__.getURLFromRedirectError)(error);\n const redirectType = (0,_redirect__WEBPACK_IMPORTED_MODULE_3__.getRedirectTypeFromError)(error);\n return {\n redirect: url,\n redirectType\n };\n }\n // Re-throw if error is not for redirect\n throw error;\n }\n render() {\n const { redirect, redirectType } = this.state;\n if (redirect !== null && redirectType !== null) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(HandleRedirect, {\n redirect: redirect,\n redirectType: redirectType,\n reset: ()=>this.setState({\n redirect: null\n })\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.state = {\n redirect: null,\n redirectType: null\n };\n }\n}\nfunction RedirectBoundary(param) {\n let { children } = param;\n const router = (0,_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(RedirectErrorBoundary, {\n router: router,\n children: children\n });\n} //# sourceMappingURL=redirect-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QtYm91bmRhcnkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs0RkFFZ0Q7QUFDUDtBQUNBO0FBQ3FFO0FBQzlHLFNBQVNTLGVBQWVDLEtBQUs7SUFDekIsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsWUFBWSxFQUFFLEdBQUdIO0lBQ3hDLE1BQU1JLFNBQVNWLHNEQUFTQTtJQUN4QkQsZ0RBQVNBLENBQUM7UUFDTkQsNERBQXFCLENBQUM7WUFDbEIsSUFBSVcsaUJBQWlCUixtREFBWUEsQ0FBQ1csSUFBSSxFQUFFO2dCQUNwQ0YsT0FBT0UsSUFBSSxDQUFDTCxVQUFVLENBQUM7WUFDM0IsT0FBTztnQkFDSEcsT0FBT0csT0FBTyxDQUFDTixVQUFVLENBQUM7WUFDOUI7WUFDQUM7UUFDSjtJQUNKLEdBQUc7UUFDQ0Q7UUFDQUU7UUFDQUQ7UUFDQUU7S0FDSDtJQUNELE9BQU87QUFDWDtBQUNPLE1BQU1JLDhCQUE4QmhCLHdEQUFlO0lBQ3RELE9BQU9rQix5QkFBeUJDLEtBQUssRUFBRTtRQUNuQyxJQUFJYiwwREFBZUEsQ0FBQ2EsUUFBUTtZQUN4QixNQUFNQyxNQUFNZixrRUFBdUJBLENBQUNjO1lBQ3BDLE1BQU1SLGVBQWVQLG1FQUF3QkEsQ0FBQ2U7WUFDOUMsT0FBTztnQkFDSFYsVUFBVVc7Z0JBQ1ZUO1lBQ0o7UUFDSjtRQUNBLHdDQUF3QztRQUN4QyxNQUFNUTtJQUNWO0lBQ0FFLFNBQVM7UUFDTCxNQUFNLEVBQUVaLFFBQVEsRUFBRUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDVyxLQUFLO1FBQzdDLElBQUliLGFBQWEsUUFBUUUsaUJBQWlCLE1BQU07WUFDNUMsT0FBTyxXQUFXLEdBQUdaLHNEQUFJQSxDQUFDUSxnQkFBZ0I7Z0JBQ3RDRSxVQUFVQTtnQkFDVkUsY0FBY0E7Z0JBQ2RELE9BQU8sSUFBSSxJQUFJLENBQUNhLFFBQVEsQ0FBQzt3QkFDakJkLFVBQVU7b0JBQ2Q7WUFDUjtRQUNKO1FBQ0EsT0FBTyxJQUFJLENBQUNlLEtBQUssQ0FBQ0MsUUFBUTtJQUM5QjtJQUNBQyxZQUFZRixLQUFLLENBQUM7UUFDZCxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDRixLQUFLLEdBQUc7WUFDVGIsVUFBVTtZQUNWRSxjQUFjO1FBQ2xCO0lBQ0o7QUFDSjtBQUNPLFNBQVNnQixpQkFBaUJuQixLQUFLO0lBQ2xDLElBQUksRUFBRWlCLFFBQVEsRUFBRSxHQUFHakI7SUFDbkIsTUFBTUksU0FBU1Ysc0RBQVNBO0lBQ3hCLE9BQU8sV0FBVyxHQUFHSCxzREFBSUEsQ0FBQ2lCLHVCQUF1QjtRQUM3Q0osUUFBUUE7UUFDUmEsVUFBVUE7SUFDZDtBQUNKLEVBRUEsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1ib3VuZGFyeS5qcz9mM2Y2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSBcIi4vbmF2aWdhdGlvblwiO1xuaW1wb3J0IHsgUmVkaXJlY3RUeXBlLCBnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IsIGdldFVSTEZyb21SZWRpcmVjdEVycm9yLCBpc1JlZGlyZWN0RXJyb3IgfSBmcm9tIFwiLi9yZWRpcmVjdFwiO1xuZnVuY3Rpb24gSGFuZGxlUmVkaXJlY3QocGFyYW0pIHtcbiAgICBsZXQgeyByZWRpcmVjdCwgcmVzZXQsIHJlZGlyZWN0VHlwZSB9ID0gcGFyYW07XG4gICAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XG4gICAgdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIFJlYWN0LnN0YXJ0VHJhbnNpdGlvbigoKT0+e1xuICAgICAgICAgICAgaWYgKHJlZGlyZWN0VHlwZSA9PT0gUmVkaXJlY3RUeXBlLnB1c2gpIHtcbiAgICAgICAgICAgICAgICByb3V0ZXIucHVzaChyZWRpcmVjdCwge30pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByb3V0ZXIucmVwbGFjZShyZWRpcmVjdCwge30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICByZWRpcmVjdCxcbiAgICAgICAgcmVkaXJlY3RUeXBlLFxuICAgICAgICByZXNldCxcbiAgICAgICAgcm91dGVyXG4gICAgXSk7XG4gICAgcmV0dXJuIG51bGw7XG59XG5leHBvcnQgY2xhc3MgUmVkaXJlY3RFcnJvckJvdW5kYXJ5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKSB7XG4gICAgICAgIGlmIChpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvcihlcnJvcik7XG4gICAgICAgICAgICBjb25zdCByZWRpcmVjdFR5cGUgPSBnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWRpcmVjdDogdXJsLFxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VHlwZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZS10aHJvdyBpZiBlcnJvciBpcyBub3QgZm9yIHJlZGlyZWN0XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgcmVkaXJlY3QsIHJlZGlyZWN0VHlwZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgaWYgKHJlZGlyZWN0ICE9PSBudWxsICYmIHJlZGlyZWN0VHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChIYW5kbGVSZWRpcmVjdCwge1xuICAgICAgICAgICAgICAgIHJlZGlyZWN0OiByZWRpcmVjdCxcbiAgICAgICAgICAgICAgICByZWRpcmVjdFR5cGU6IHJlZGlyZWN0VHlwZSxcbiAgICAgICAgICAgICAgICByZXNldDogKCk9PnRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcyl7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHJlZGlyZWN0OiBudWxsLFxuICAgICAgICAgICAgcmVkaXJlY3RUeXBlOiBudWxsXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIFJlZGlyZWN0Qm91bmRhcnkocGFyYW0pIHtcbiAgICBsZXQgeyBjaGlsZHJlbiB9ID0gcGFyYW07XG4gICAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChSZWRpcmVjdEVycm9yQm91bmRhcnksIHtcbiAgICAgICAgcm91dGVyOiByb3V0ZXIsXG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWRpcmVjdC1ib3VuZGFyeS5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlUm91dGVyIiwiUmVkaXJlY3RUeXBlIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwiZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IiLCJpc1JlZGlyZWN0RXJyb3IiLCJIYW5kbGVSZWRpcmVjdCIsInBhcmFtIiwicmVkaXJlY3QiLCJyZXNldCIsInJlZGlyZWN0VHlwZSIsInJvdXRlciIsInN0YXJ0VHJhbnNpdGlvbiIsInB1c2giLCJyZXBsYWNlIiwiUmVkaXJlY3RFcnJvckJvdW5kYXJ5IiwiQ29tcG9uZW50IiwiZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIiwiZXJyb3IiLCJ1cmwiLCJyZW5kZXIiLCJzdGF0ZSIsInNldFN0YXRlIiwicHJvcHMiLCJjaGlsZHJlbiIsImNvbnN0cnVjdG9yIiwiUmVkaXJlY3RCb3VuZGFyeSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/redirect-boundary.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/redirect-status-code.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RedirectStatusCode: () => (/* binding */ RedirectStatusCode)\n/* harmony export */ });\nvar RedirectStatusCode;\n(function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n})(RedirectStatusCode || (RedirectStatusCode = {})); //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLElBQUlBLG1CQUFtQjtBQUM3QixVQUFTQSxrQkFBa0I7SUFDeEJBLGtCQUFrQixDQUFDQSxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHO0lBQzNEQSxrQkFBa0IsQ0FBQ0Esa0JBQWtCLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxHQUFHO0lBQ3BFQSxrQkFBa0IsQ0FBQ0Esa0JBQWtCLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxHQUFHO0FBQ3hFLEdBQUdBLHNCQUF1QkEsQ0FBQUEscUJBQXFCLENBQUMsS0FFaEQsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS5qcz83ZWI4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgUmVkaXJlY3RTdGF0dXNDb2RlO1xuKGZ1bmN0aW9uKFJlZGlyZWN0U3RhdHVzQ29kZSkge1xuICAgIFJlZGlyZWN0U3RhdHVzQ29kZVtSZWRpcmVjdFN0YXR1c0NvZGVbXCJTZWVPdGhlclwiXSA9IDMwM10gPSBcIlNlZU90aGVyXCI7XG4gICAgUmVkaXJlY3RTdGF0dXNDb2RlW1JlZGlyZWN0U3RhdHVzQ29kZVtcIlRlbXBvcmFyeVJlZGlyZWN0XCJdID0gMzA3XSA9IFwiVGVtcG9yYXJ5UmVkaXJlY3RcIjtcbiAgICBSZWRpcmVjdFN0YXR1c0NvZGVbUmVkaXJlY3RTdGF0dXNDb2RlW1wiUGVybWFuZW50UmVkaXJlY3RcIl0gPSAzMDhdID0gXCJQZXJtYW5lbnRSZWRpcmVjdFwiO1xufSkoUmVkaXJlY3RTdGF0dXNDb2RlIHx8IChSZWRpcmVjdFN0YXR1c0NvZGUgPSB7fSkpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWRpcmVjdC1zdGF0dXMtY29kZS5qcy5tYXAiXSwibmFtZXMiOlsiUmVkaXJlY3RTdGF0dXNDb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/redirect.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RedirectType: () => (/* binding */ RedirectType),\n/* harmony export */ getRedirectError: () => (/* binding */ getRedirectError),\n/* harmony export */ getRedirectStatusCodeFromError: () => (/* binding */ getRedirectStatusCodeFromError),\n/* harmony export */ getRedirectTypeFromError: () => (/* binding */ getRedirectTypeFromError),\n/* harmony export */ getURLFromRedirectError: () => (/* binding */ getURLFromRedirectError),\n/* harmony export */ isRedirectError: () => (/* binding */ isRedirectError),\n/* harmony export */ permanentRedirect: () => (/* binding */ permanentRedirect),\n/* harmony export */ redirect: () => (/* binding */ redirect)\n/* harmony export */ });\n/* harmony import */ var _request_async_storage_external__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./request-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?b6eb\");\n/* harmony import */ var _action_async_storage_external__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./action-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/action-async-storage.external.js?8c5f\");\n/* harmony import */ var _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./redirect-status-code */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js\");\n\n\n\nconst REDIRECT_ERROR_CODE = \"NEXT_REDIRECT\";\nvar RedirectType;\n(function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n})(RedirectType || (RedirectType = {}));\nfunction getRedirectError(url, type, statusCode) {\n if (statusCode === void 0) statusCode = _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.TemporaryRedirect;\n const error = new Error(REDIRECT_ERROR_CODE);\n error.digest = REDIRECT_ERROR_CODE + \";\" + type + \";\" + url + \";\" + statusCode + \";\";\n const requestStore = _request_async_storage_external__WEBPACK_IMPORTED_MODULE_0__.requestAsyncStorage.getStore();\n if (requestStore) {\n error.mutableCookies = requestStore.mutableCookies;\n }\n return error;\n}\n/**\n * When used in a streaming context, this will insert a meta tag to\n * redirect the user to the target page. When used in a custom app route, it\n * will serve a 307/303 to the caller.\n *\n * @param url the url to redirect to\n */ function redirect(url, type) {\n if (type === void 0) type = \"replace\";\n const actionStore = _action_async_storage_external__WEBPACK_IMPORTED_MODULE_1__.actionAsyncStorage.getStore();\n throw getRedirectError(url, type, // as we don't want the POST request to follow the redirect,\n // as it could result in erroneous re-submissions.\n (actionStore == null ? void 0 : actionStore.isAction) ? _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.SeeOther : _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.TemporaryRedirect);\n}\n/**\n * When used in a streaming context, this will insert a meta tag to\n * redirect the user to the target page. When used in a custom app route, it\n * will serve a 308/303 to the caller.\n *\n * @param url the url to redirect to\n */ function permanentRedirect(url, type) {\n if (type === void 0) type = \"replace\";\n const actionStore = _action_async_storage_external__WEBPACK_IMPORTED_MODULE_1__.actionAsyncStorage.getStore();\n throw getRedirectError(url, type, // as we don't want the POST request to follow the redirect,\n // as it could result in erroneous re-submissions.\n (actionStore == null ? void 0 : actionStore.isAction) ? _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.SeeOther : _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.PermanentRedirect);\n}\n/**\n * Checks an error to determine if it's an error generated by the\n * `redirect(url)` helper.\n *\n * @param error the error that may reference a redirect error\n * @returns true if the error is a redirect error\n */ function isRedirectError(error) {\n if (typeof error !== \"object\" || error === null || !(\"digest\" in error) || typeof error.digest !== \"string\") {\n return false;\n }\n const [errorCode, type, destination, status] = error.digest.split(\";\", 4);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === \"replace\" || type === \"push\") && typeof destination === \"string\" && !isNaN(statusCode) && statusCode in _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode;\n}\nfunction getURLFromRedirectError(error) {\n if (!isRedirectError(error)) return null;\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(\";\", 3)[2];\n}\nfunction getRedirectTypeFromError(error) {\n if (!isRedirectError(error)) {\n throw new Error(\"Not a redirect error\");\n }\n return error.digest.split(\";\", 2)[1];\n}\nfunction getRedirectStatusCodeFromError(error) {\n if (!isRedirectError(error)) {\n throw new Error(\"Not a redirect error\");\n }\n return Number(error.digest.split(\";\", 4)[3]);\n} //# sourceMappingURL=redirect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBdUU7QUFDRjtBQUNUO0FBQzVELE1BQU1HLHNCQUFzQjtBQUNyQixJQUFJQyxhQUFhO0FBQ3ZCLFVBQVNBLFlBQVk7SUFDbEJBLFlBQVksQ0FBQyxPQUFPLEdBQUc7SUFDdkJBLFlBQVksQ0FBQyxVQUFVLEdBQUc7QUFDOUIsR0FBR0EsZ0JBQWlCQSxDQUFBQSxlQUFlLENBQUM7QUFDN0IsU0FBU0MsaUJBQWlCQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsVUFBVTtJQUNsRCxJQUFJQSxlQUFlLEtBQUssR0FBR0EsYUFBYU4scUVBQWtCQSxDQUFDTyxpQkFBaUI7SUFDNUUsTUFBTUMsUUFBUSxJQUFJQyxNQUFNUjtJQUN4Qk8sTUFBTUUsTUFBTSxHQUFHVCxzQkFBc0IsTUFBTUksT0FBTyxNQUFNRCxNQUFNLE1BQU1FLGFBQWE7SUFDakYsTUFBTUssZUFBZWIsZ0ZBQW1CQSxDQUFDYyxRQUFRO0lBQ2pELElBQUlELGNBQWM7UUFDZEgsTUFBTUssY0FBYyxHQUFHRixhQUFhRSxjQUFjO0lBQ3REO0lBQ0EsT0FBT0w7QUFDWDtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNNLFNBQVNWLEdBQUcsRUFBRUMsSUFBSTtJQUNsQyxJQUFJQSxTQUFTLEtBQUssR0FBR0EsT0FBTztJQUM1QixNQUFNVSxjQUFjaEIsOEVBQWtCQSxDQUFDYSxRQUFRO0lBQy9DLE1BQU1ULGlCQUFpQkMsS0FBS0MsTUFHNUIsNERBRjREO0lBQzVELGtEQUFrRDtJQUNqRFUsQ0FBQUEsZUFBZSxPQUFPLEtBQUssSUFBSUEsWUFBWUMsUUFBUSxJQUFJaEIscUVBQWtCQSxDQUFDaUIsUUFBUSxHQUFHakIscUVBQWtCQSxDQUFDTyxpQkFBaUI7QUFDOUg7QUFDQTs7Ozs7O0NBTUMsR0FBVSxTQUFTVyxrQkFBa0JkLEdBQUcsRUFBRUMsSUFBSTtJQUMzQyxJQUFJQSxTQUFTLEtBQUssR0FBR0EsT0FBTztJQUM1QixNQUFNVSxjQUFjaEIsOEVBQWtCQSxDQUFDYSxRQUFRO0lBQy9DLE1BQU1ULGlCQUFpQkMsS0FBS0MsTUFHNUIsNERBRjREO0lBQzVELGtEQUFrRDtJQUNqRFUsQ0FBQUEsZUFBZSxPQUFPLEtBQUssSUFBSUEsWUFBWUMsUUFBUSxJQUFJaEIscUVBQWtCQSxDQUFDaUIsUUFBUSxHQUFHakIscUVBQWtCQSxDQUFDbUIsaUJBQWlCO0FBQzlIO0FBQ0E7Ozs7OztDQU1DLEdBQVUsU0FBU0MsZ0JBQWdCWixLQUFLO0lBQ3JDLElBQUksT0FBT0EsVUFBVSxZQUFZQSxVQUFVLFFBQVEsQ0FBRSxhQUFZQSxLQUFJLEtBQU0sT0FBT0EsTUFBTUUsTUFBTSxLQUFLLFVBQVU7UUFDekcsT0FBTztJQUNYO0lBQ0EsTUFBTSxDQUFDVyxXQUFXaEIsTUFBTWlCLGFBQWFDLE9BQU8sR0FBR2YsTUFBTUUsTUFBTSxDQUFDYyxLQUFLLENBQUMsS0FBSztJQUN2RSxNQUFNbEIsYUFBYW1CLE9BQU9GO0lBQzFCLE9BQU9GLGNBQWNwQix1QkFBd0JJLENBQUFBLFNBQVMsYUFBYUEsU0FBUyxNQUFLLEtBQU0sT0FBT2lCLGdCQUFnQixZQUFZLENBQUNJLE1BQU1wQixlQUFlQSxjQUFjTixxRUFBa0JBO0FBQ3BMO0FBQ08sU0FBUzJCLHdCQUF3Qm5CLEtBQUs7SUFDekMsSUFBSSxDQUFDWSxnQkFBZ0JaLFFBQVEsT0FBTztJQUNwQyx3RUFBd0U7SUFDeEUsa0JBQWtCO0lBQ2xCLE9BQU9BLE1BQU1FLE1BQU0sQ0FBQ2MsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7QUFDeEM7QUFDTyxTQUFTSSx5QkFBeUJwQixLQUFLO0lBQzFDLElBQUksQ0FBQ1ksZ0JBQWdCWixRQUFRO1FBQ3pCLE1BQU0sSUFBSUMsTUFBTTtJQUNwQjtJQUNBLE9BQU9ELE1BQU1FLE1BQU0sQ0FBQ2MsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7QUFDeEM7QUFDTyxTQUFTSywrQkFBK0JyQixLQUFLO0lBQ2hELElBQUksQ0FBQ1ksZ0JBQWdCWixRQUFRO1FBQ3pCLE1BQU0sSUFBSUMsTUFBTTtJQUNwQjtJQUNBLE9BQU9nQixPQUFPakIsTUFBTUUsTUFBTSxDQUFDYyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtBQUMvQyxFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QuanM/MDdhZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXF1ZXN0QXN5bmNTdG9yYWdlIH0gZnJvbSBcIi4vcmVxdWVzdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCI7XG5pbXBvcnQgeyBhY3Rpb25Bc3luY1N0b3JhZ2UgfSBmcm9tIFwiLi9hY3Rpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiO1xuaW1wb3J0IHsgUmVkaXJlY3RTdGF0dXNDb2RlIH0gZnJvbSBcIi4vcmVkaXJlY3Qtc3RhdHVzLWNvZGVcIjtcbmNvbnN0IFJFRElSRUNUX0VSUk9SX0NPREUgPSBcIk5FWFRfUkVESVJFQ1RcIjtcbmV4cG9ydCB2YXIgUmVkaXJlY3RUeXBlO1xuKGZ1bmN0aW9uKFJlZGlyZWN0VHlwZSkge1xuICAgIFJlZGlyZWN0VHlwZVtcInB1c2hcIl0gPSBcInB1c2hcIjtcbiAgICBSZWRpcmVjdFR5cGVbXCJyZXBsYWNlXCJdID0gXCJyZXBsYWNlXCI7XG59KShSZWRpcmVjdFR5cGUgfHwgKFJlZGlyZWN0VHlwZSA9IHt9KSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkaXJlY3RFcnJvcih1cmwsIHR5cGUsIHN0YXR1c0NvZGUpIHtcbiAgICBpZiAoc3RhdHVzQ29kZSA9PT0gdm9pZCAwKSBzdGF0dXNDb2RlID0gUmVkaXJlY3RTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0O1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFJFRElSRUNUX0VSUk9SX0NPREUpO1xuICAgIGVycm9yLmRpZ2VzdCA9IFJFRElSRUNUX0VSUk9SX0NPREUgKyBcIjtcIiArIHR5cGUgKyBcIjtcIiArIHVybCArIFwiO1wiICsgc3RhdHVzQ29kZSArIFwiO1wiO1xuICAgIGNvbnN0IHJlcXVlc3RTdG9yZSA9IHJlcXVlc3RBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAocmVxdWVzdFN0b3JlKSB7XG4gICAgICAgIGVycm9yLm11dGFibGVDb29raWVzID0gcmVxdWVzdFN0b3JlLm11dGFibGVDb29raWVzO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3I7XG59XG4vKipcbiAqIFdoZW4gdXNlZCBpbiBhIHN0cmVhbWluZyBjb250ZXh0LCB0aGlzIHdpbGwgaW5zZXJ0IGEgbWV0YSB0YWcgdG9cbiAqIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS4gV2hlbiB1c2VkIGluIGEgY3VzdG9tIGFwcCByb3V0ZSwgaXRcbiAqIHdpbGwgc2VydmUgYSAzMDcvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKlxuICogQHBhcmFtIHVybCB0aGUgdXJsIHRvIHJlZGlyZWN0IHRvXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlZGlyZWN0KHVybCwgdHlwZSkge1xuICAgIGlmICh0eXBlID09PSB2b2lkIDApIHR5cGUgPSBcInJlcGxhY2VcIjtcbiAgICBjb25zdCBhY3Rpb25TdG9yZSA9IGFjdGlvbkFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIHRocm93IGdldFJlZGlyZWN0RXJyb3IodXJsLCB0eXBlLCAvLyBJZiB3ZSdyZSBpbiBhbiBhY3Rpb24sIHdlIHdhbnQgdG8gdXNlIGEgMzAzIHJlZGlyZWN0XG4gICAgLy8gYXMgd2UgZG9uJ3Qgd2FudCB0aGUgUE9TVCByZXF1ZXN0IHRvIGZvbGxvdyB0aGUgcmVkaXJlY3QsXG4gICAgLy8gYXMgaXQgY291bGQgcmVzdWx0IGluIGVycm9uZW91cyByZS1zdWJtaXNzaW9ucy5cbiAgICAoYWN0aW9uU3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IGFjdGlvblN0b3JlLmlzQWN0aW9uKSA/IFJlZGlyZWN0U3RhdHVzQ29kZS5TZWVPdGhlciA6IFJlZGlyZWN0U3RhdHVzQ29kZS5UZW1wb3JhcnlSZWRpcmVjdCk7XG59XG4vKipcbiAqIFdoZW4gdXNlZCBpbiBhIHN0cmVhbWluZyBjb250ZXh0LCB0aGlzIHdpbGwgaW5zZXJ0IGEgbWV0YSB0YWcgdG9cbiAqIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS4gV2hlbiB1c2VkIGluIGEgY3VzdG9tIGFwcCByb3V0ZSwgaXRcbiAqIHdpbGwgc2VydmUgYSAzMDgvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKlxuICogQHBhcmFtIHVybCB0aGUgdXJsIHRvIHJlZGlyZWN0IHRvXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHBlcm1hbmVudFJlZGlyZWN0KHVybCwgdHlwZSkge1xuICAgIGlmICh0eXBlID09PSB2b2lkIDApIHR5cGUgPSBcInJlcGxhY2VcIjtcbiAgICBjb25zdCBhY3Rpb25TdG9yZSA9IGFjdGlvbkFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIHRocm93IGdldFJlZGlyZWN0RXJyb3IodXJsLCB0eXBlLCAvLyBJZiB3ZSdyZSBpbiBhbiBhY3Rpb24sIHdlIHdhbnQgdG8gdXNlIGEgMzAzIHJlZGlyZWN0XG4gICAgLy8gYXMgd2UgZG9uJ3Qgd2FudCB0aGUgUE9TVCByZXF1ZXN0IHRvIGZvbGxvdyB0aGUgcmVkaXJlY3QsXG4gICAgLy8gYXMgaXQgY291bGQgcmVzdWx0IGluIGVycm9uZW91cyByZS1zdWJtaXNzaW9ucy5cbiAgICAoYWN0aW9uU3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IGFjdGlvblN0b3JlLmlzQWN0aW9uKSA/IFJlZGlyZWN0U3RhdHVzQ29kZS5TZWVPdGhlciA6IFJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCk7XG59XG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqLyBleHBvcnQgZnVuY3Rpb24gaXNSZWRpcmVjdEVycm9yKGVycm9yKSB7XG4gICAgaWYgKHR5cGVvZiBlcnJvciAhPT0gXCJvYmplY3RcIiB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKFwiZGlnZXN0XCIgaW4gZXJyb3IpIHx8IHR5cGVvZiBlcnJvci5kaWdlc3QgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBbZXJyb3JDb2RlLCB0eXBlLCBkZXN0aW5hdGlvbiwgc3RhdHVzXSA9IGVycm9yLmRpZ2VzdC5zcGxpdChcIjtcIiwgNCk7XG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IE51bWJlcihzdGF0dXMpO1xuICAgIHJldHVybiBlcnJvckNvZGUgPT09IFJFRElSRUNUX0VSUk9SX0NPREUgJiYgKHR5cGUgPT09IFwicmVwbGFjZVwiIHx8IHR5cGUgPT09IFwicHVzaFwiKSAmJiB0eXBlb2YgZGVzdGluYXRpb24gPT09IFwic3RyaW5nXCIgJiYgIWlzTmFOKHN0YXR1c0NvZGUpICYmIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFVSTEZyb21SZWRpcmVjdEVycm9yKGVycm9yKSB7XG4gICAgaWYgKCFpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSByZXR1cm4gbnVsbDtcbiAgICAvLyBTbGljZXMgb2ZmIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRpZ2VzdCB0aGF0IGNvbnRhaW5zIHRoZSBjb2RlIGFuZCB0aGVcbiAgICAvLyBzZXBhcmF0aW5nICc7Jy5cbiAgICByZXR1cm4gZXJyb3IuZGlnZXN0LnNwbGl0KFwiO1wiLCAzKVsyXTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAoIWlzUmVkaXJlY3RFcnJvcihlcnJvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGEgcmVkaXJlY3QgZXJyb3JcIik7XG4gICAgfVxuICAgIHJldHVybiBlcnJvci5kaWdlc3Quc3BsaXQoXCI7XCIsIDIpWzFdO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZGlyZWN0U3RhdHVzQ29kZUZyb21FcnJvcihlcnJvcikge1xuICAgIGlmICghaXNSZWRpcmVjdEVycm9yKGVycm9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb3QgYSByZWRpcmVjdCBlcnJvclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIE51bWJlcihlcnJvci5kaWdlc3Quc3BsaXQoXCI7XCIsIDQpWzNdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVkaXJlY3QuanMubWFwIl0sIm5hbWVzIjpbInJlcXVlc3RBc3luY1N0b3JhZ2UiLCJhY3Rpb25Bc3luY1N0b3JhZ2UiLCJSZWRpcmVjdFN0YXR1c0NvZGUiLCJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiZ2V0UmVkaXJlY3RFcnJvciIsInVybCIsInR5cGUiLCJzdGF0dXNDb2RlIiwiVGVtcG9yYXJ5UmVkaXJlY3QiLCJlcnJvciIsIkVycm9yIiwiZGlnZXN0IiwicmVxdWVzdFN0b3JlIiwiZ2V0U3RvcmUiLCJtdXRhYmxlQ29va2llcyIsInJlZGlyZWN0IiwiYWN0aW9uU3RvcmUiLCJpc0FjdGlvbiIsIlNlZU90aGVyIiwicGVybWFuZW50UmVkaXJlY3QiLCJQZXJtYW5lbnRSZWRpcmVjdCIsImlzUmVkaXJlY3RFcnJvciIsImVycm9yQ29kZSIsImRlc3RpbmF0aW9uIiwic3RhdHVzIiwic3BsaXQiLCJOdW1iZXIiLCJpc05hTiIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwiZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/render-from-template-context.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/render-from-template-context.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RenderFromTemplateContext)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\nfunction RenderFromTemplateContext() {\n const children = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.TemplateContext);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: children\n });\n} //# sourceMappingURL=render-from-template-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs2REFFdUU7QUFDN0I7QUFDMkM7QUFDdEUsU0FBU087SUFDcEIsTUFBTUMsV0FBV0gsaURBQVVBLENBQUNDLDBGQUFlQTtJQUMzQyxPQUFPLFdBQVcsR0FBR0wsc0RBQUlBLENBQUNFLHVEQUFTQSxFQUFFO1FBQ2pDSyxVQUFVQTtJQUNkO0FBQ0osRUFFQSx3REFBd0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanM/YWRiYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFRlbXBsYXRlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUmVuZGVyRnJvbVRlbXBsYXRlQ29udGV4dCgpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IHVzZUNvbnRleHQoVGVtcGxhdGVDb250ZXh0KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KF9GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiUmVhY3QiLCJ1c2VDb250ZXh0IiwiVGVtcGxhdGVDb250ZXh0IiwiUmVuZGVyRnJvbVRlbXBsYXRlQ29udGV4dCIsImNoaWxkcmVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/render-from-template-context.js\n");
-
-/***/ }),
-
-/***/ "(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?b6eb":
-/*!********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/request-async-storage.external.js ***!
- \********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ requestAsyncStorage: () => (/* binding */ requestAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var _async_local_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./async-local-storage */ \"(shared)/../../node_modules/next/dist/esm/client/components/async-local-storage.js\");\n\nconst requestAsyncStorage = (0,_async_local_storage__WEBPACK_IMPORTED_MODULE_0__.createAsyncLocalStorage)(); //# sourceMappingURL=request-async-storage.external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVxdWVzdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzP2I2ZWIiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBZ0U7QUFDekQsTUFBTUMsc0JBQXNCRCw2RUFBdUJBLEdBQUcsQ0FFN0QsMERBQTBEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZXF1ZXN0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanM/MTliNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSB9IGZyb20gXCIuL2FzeW5jLWxvY2FsLXN0b3JhZ2VcIjtcbmV4cG9ydCBjb25zdCByZXF1ZXN0QXN5bmNTdG9yYWdlID0gY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UoKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSIsInJlcXVlc3RBc3luY1N0b3JhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?b6eb\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-flight-data.js":
-/*!**********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/apply-flight-data.js ***!
- \**********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyFlightData: () => (/* binding */ applyFlightData)\n/* harmony export */ });\n/* harmony import */ var _fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fill-lazy-items-till-leaf-with-head */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\n/* harmony import */ var _fill_cache_with_new_subtree_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fill-cache-with-new-subtree-data */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-new-subtree-data.js\");\n\n\nfunction applyFlightData(existingCache, cache, flightDataPath, wasPrefetched) {\n if (wasPrefetched === void 0) wasPrefetched = false;\n // The one before last item is the router state tree patch\n const [treePatch, cacheNodeSeedData, head] = flightDataPath.slice(-3);\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (cacheNodeSeedData === null) {\n return false;\n }\n if (flightDataPath.length === 3) {\n const rsc = cacheNodeSeedData[2];\n cache.rsc = rsc;\n // This is a PPR-only field. When PPR is enabled, we shouldn't hit\n // this path during a navigation, but until PPR is fully implemented\n // yet it's possible the existing node does have a non-null\n // `prefetchRsc`. As an incremental step, we'll just de-opt to the\n // old behavior — no PPR value.\n cache.prefetchRsc = null;\n (0,_fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_0__.fillLazyItemsTillLeafWithHead)(cache, existingCache, treePatch, cacheNodeSeedData, head, wasPrefetched);\n } else {\n // Copy rsc for the root node of the cache.\n cache.rsc = existingCache.rsc;\n // This is a PPR-only field. Unlike the previous branch, since we're\n // just cloning the existing cache node, we might as well keep the\n // PPR value, if it exists.\n cache.prefetchRsc = existingCache.prefetchRsc;\n cache.parallelRoutes = new Map(existingCache.parallelRoutes);\n // Create a copy of the existing cache with the rsc applied.\n (0,_fill_cache_with_new_subtree_data__WEBPACK_IMPORTED_MODULE_1__.fillCacheWithNewSubTreeData)(cache, existingCache, flightDataPath, wasPrefetched);\n }\n return true;\n} //# sourceMappingURL=apply-flight-data.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvYXBwbHktZmxpZ2h0LWRhdGEuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXNGO0FBQ0w7QUFDMUUsU0FBU0UsZ0JBQWdCQyxhQUFhLEVBQUVDLEtBQUssRUFBRUMsY0FBYyxFQUFFQyxhQUFhO0lBQy9FLElBQUlBLGtCQUFrQixLQUFLLEdBQUdBLGdCQUFnQjtJQUM5QywwREFBMEQ7SUFDMUQsTUFBTSxDQUFDQyxXQUFXQyxtQkFBbUJDLEtBQUssR0FBR0osZUFBZUssS0FBSyxDQUFDLENBQUM7SUFDbkUsOEZBQThGO0lBQzlGLElBQUlGLHNCQUFzQixNQUFNO1FBQzVCLE9BQU87SUFDWDtJQUNBLElBQUlILGVBQWVNLE1BQU0sS0FBSyxHQUFHO1FBQzdCLE1BQU1DLE1BQU1KLGlCQUFpQixDQUFDLEVBQUU7UUFDaENKLE1BQU1RLEdBQUcsR0FBR0E7UUFDWixrRUFBa0U7UUFDbEUsb0VBQW9FO1FBQ3BFLDJEQUEyRDtRQUMzRCxrRUFBa0U7UUFDbEUsK0JBQStCO1FBQy9CUixNQUFNUyxXQUFXLEdBQUc7UUFDcEJiLG1HQUE2QkEsQ0FBQ0ksT0FBT0QsZUFBZUksV0FBV0MsbUJBQW1CQyxNQUFNSDtJQUM1RixPQUFPO1FBQ0gsMkNBQTJDO1FBQzNDRixNQUFNUSxHQUFHLEdBQUdULGNBQWNTLEdBQUc7UUFDN0Isb0VBQW9FO1FBQ3BFLGtFQUFrRTtRQUNsRSwyQkFBMkI7UUFDM0JSLE1BQU1TLFdBQVcsR0FBR1YsY0FBY1UsV0FBVztRQUM3Q1QsTUFBTVUsY0FBYyxHQUFHLElBQUlDLElBQUlaLGNBQWNXLGNBQWM7UUFDM0QsNERBQTREO1FBQzVEYiw4RkFBMkJBLENBQUNHLE9BQU9ELGVBQWVFLGdCQUFnQkM7SUFDdEU7SUFDQSxPQUFPO0FBQ1gsRUFFQSw2Q0FBNkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FwcGx5LWZsaWdodC1kYXRhLmpzPzhkYWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQgfSBmcm9tIFwiLi9maWxsLWxhenktaXRlbXMtdGlsbC1sZWFmLXdpdGgtaGVhZFwiO1xuaW1wb3J0IHsgZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhIH0gZnJvbSBcIi4vZmlsbC1jYWNoZS13aXRoLW5ldy1zdWJ0cmVlLWRhdGFcIjtcbmV4cG9ydCBmdW5jdGlvbiBhcHBseUZsaWdodERhdGEoZXhpc3RpbmdDYWNoZSwgY2FjaGUsIGZsaWdodERhdGFQYXRoLCB3YXNQcmVmZXRjaGVkKSB7XG4gICAgaWYgKHdhc1ByZWZldGNoZWQgPT09IHZvaWQgMCkgd2FzUHJlZmV0Y2hlZCA9IGZhbHNlO1xuICAgIC8vIFRoZSBvbmUgYmVmb3JlIGxhc3QgaXRlbSBpcyB0aGUgcm91dGVyIHN0YXRlIHRyZWUgcGF0Y2hcbiAgICBjb25zdCBbdHJlZVBhdGNoLCBjYWNoZU5vZGVTZWVkRGF0YSwgaGVhZF0gPSBmbGlnaHREYXRhUGF0aC5zbGljZSgtMyk7XG4gICAgLy8gSGFuZGxlcyBjYXNlIHdoZXJlIHByZWZldGNoIG9ubHkgcmV0dXJucyB0aGUgcm91dGVyIHRyZWUgcGF0Y2ggd2l0aG91dCByZW5kZXJlZCBjb21wb25lbnRzLlxuICAgIGlmIChjYWNoZU5vZGVTZWVkRGF0YSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChmbGlnaHREYXRhUGF0aC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgY29uc3QgcnNjID0gY2FjaGVOb2RlU2VlZERhdGFbMl07XG4gICAgICAgIGNhY2hlLnJzYyA9IHJzYztcbiAgICAgICAgLy8gVGhpcyBpcyBhIFBQUi1vbmx5IGZpZWxkLiBXaGVuIFBQUiBpcyBlbmFibGVkLCB3ZSBzaG91bGRuJ3QgaGl0XG4gICAgICAgIC8vIHRoaXMgcGF0aCBkdXJpbmcgYSBuYXZpZ2F0aW9uLCBidXQgdW50aWwgUFBSIGlzIGZ1bGx5IGltcGxlbWVudGVkXG4gICAgICAgIC8vIHlldCBpdCdzIHBvc3NpYmxlIHRoZSBleGlzdGluZyBub2RlIGRvZXMgaGF2ZSBhIG5vbi1udWxsXG4gICAgICAgIC8vIGBwcmVmZXRjaFJzY2AuIEFzIGFuIGluY3JlbWVudGFsIHN0ZXAsIHdlJ2xsIGp1c3QgZGUtb3B0IHRvIHRoZVxuICAgICAgICAvLyBvbGQgYmVoYXZpb3Ig4oCUIG5vIFBQUiB2YWx1ZS5cbiAgICAgICAgY2FjaGUucHJlZmV0Y2hSc2MgPSBudWxsO1xuICAgICAgICBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZChjYWNoZSwgZXhpc3RpbmdDYWNoZSwgdHJlZVBhdGNoLCBjYWNoZU5vZGVTZWVkRGF0YSwgaGVhZCwgd2FzUHJlZmV0Y2hlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQ29weSByc2MgZm9yIHRoZSByb290IG5vZGUgb2YgdGhlIGNhY2hlLlxuICAgICAgICBjYWNoZS5yc2MgPSBleGlzdGluZ0NhY2hlLnJzYztcbiAgICAgICAgLy8gVGhpcyBpcyBhIFBQUi1vbmx5IGZpZWxkLiBVbmxpa2UgdGhlIHByZXZpb3VzIGJyYW5jaCwgc2luY2Ugd2UncmVcbiAgICAgICAgLy8ganVzdCBjbG9uaW5nIHRoZSBleGlzdGluZyBjYWNoZSBub2RlLCB3ZSBtaWdodCBhcyB3ZWxsIGtlZXAgdGhlXG4gICAgICAgIC8vIFBQUiB2YWx1ZSwgaWYgaXQgZXhpc3RzLlxuICAgICAgICBjYWNoZS5wcmVmZXRjaFJzYyA9IGV4aXN0aW5nQ2FjaGUucHJlZmV0Y2hSc2M7XG4gICAgICAgIGNhY2hlLnBhcmFsbGVsUm91dGVzID0gbmV3IE1hcChleGlzdGluZ0NhY2hlLnBhcmFsbGVsUm91dGVzKTtcbiAgICAgICAgLy8gQ3JlYXRlIGEgY29weSBvZiB0aGUgZXhpc3RpbmcgY2FjaGUgd2l0aCB0aGUgcnNjIGFwcGxpZWQuXG4gICAgICAgIGZpbGxDYWNoZVdpdGhOZXdTdWJUcmVlRGF0YShjYWNoZSwgZXhpc3RpbmdDYWNoZSwgZmxpZ2h0RGF0YVBhdGgsIHdhc1ByZWZldGNoZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwbHktZmxpZ2h0LWRhdGEuanMubWFwIl0sIm5hbWVzIjpbImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwiZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhIiwiYXBwbHlGbGlnaHREYXRhIiwiZXhpc3RpbmdDYWNoZSIsImNhY2hlIiwiZmxpZ2h0RGF0YVBhdGgiLCJ3YXNQcmVmZXRjaGVkIiwidHJlZVBhdGNoIiwiY2FjaGVOb2RlU2VlZERhdGEiLCJoZWFkIiwic2xpY2UiLCJsZW5ndGgiLCJyc2MiLCJwcmVmZXRjaFJzYyIsInBhcmFsbGVsUm91dGVzIiwiTWFwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-flight-data.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js":
-/*!*************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js ***!
- \*************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyRouterStatePatchToFullTree: () => (/* binding */ applyRouterStatePatchToFullTree),\n/* harmony export */ applyRouterStatePatchToTreeSkipDefault: () => (/* binding */ applyRouterStatePatchToTreeSkipDefault)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n/* harmony import */ var _match_segments__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../match-segments */ \"(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js\");\n\n\n/**\n * Deep merge of the two router states. Parallel route keys are preserved if the patch doesn't have them.\n */ function applyPatch(initialTree, patchTree, applyPatchToDefaultSegment) {\n if (applyPatchToDefaultSegment === void 0) applyPatchToDefaultSegment = false;\n const [initialSegment, initialParallelRoutes] = initialTree;\n const [patchSegment, patchParallelRoutes] = patchTree;\n // if the applied patch segment is __DEFAULT__ then it can be ignored in favor of the initial tree\n // this is because the __DEFAULT__ segment is used as a placeholder on navigation\n // however, there are cases where we _do_ want to apply the patch to the default segment,\n // such as when revalidating the router cache with router.refresh/revalidatePath\n if (!applyPatchToDefaultSegment && patchSegment === _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SEGMENT_KEY && initialSegment !== _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SEGMENT_KEY) {\n return initialTree;\n }\n if ((0,_match_segments__WEBPACK_IMPORTED_MODULE_1__.matchSegment)(initialSegment, patchSegment)) {\n const newParallelRoutes = {};\n for(const key in initialParallelRoutes){\n const isInPatchTreeParallelRoutes = typeof patchParallelRoutes[key] !== \"undefined\";\n if (isInPatchTreeParallelRoutes) {\n newParallelRoutes[key] = applyPatch(initialParallelRoutes[key], patchParallelRoutes[key], applyPatchToDefaultSegment);\n } else {\n newParallelRoutes[key] = initialParallelRoutes[key];\n }\n }\n for(const key in patchParallelRoutes){\n if (newParallelRoutes[key]) {\n continue;\n }\n newParallelRoutes[key] = patchParallelRoutes[key];\n }\n const tree = [\n initialSegment,\n newParallelRoutes\n ];\n if (initialTree[2]) {\n tree[2] = initialTree[2];\n }\n if (initialTree[3]) {\n tree[3] = initialTree[3];\n }\n if (initialTree[4]) {\n tree[4] = initialTree[4];\n }\n return tree;\n }\n return patchTree;\n}\nfunction applyRouterStatePatchToTreeImpl(flightSegmentPath, flightRouterState, treePatch, applyPatchDefaultSegment) {\n if (applyPatchDefaultSegment === void 0) applyPatchDefaultSegment = false;\n const [segment, parallelRoutes, , , isRootLayout] = flightRouterState;\n // Root refresh\n if (flightSegmentPath.length === 1) {\n const tree = applyPatch(flightRouterState, treePatch, applyPatchDefaultSegment);\n return tree;\n }\n const [currentSegment, parallelRouteKey] = flightSegmentPath;\n // Tree path returned from the server should always match up with the current tree in the browser\n if (!(0,_match_segments__WEBPACK_IMPORTED_MODULE_1__.matchSegment)(currentSegment, segment)) {\n return null;\n }\n const lastSegment = flightSegmentPath.length === 2;\n let parallelRoutePatch;\n if (lastSegment) {\n parallelRoutePatch = applyPatch(parallelRoutes[parallelRouteKey], treePatch, applyPatchDefaultSegment);\n } else {\n parallelRoutePatch = applyRouterStatePatchToTreeImpl(flightSegmentPath.slice(2), parallelRoutes[parallelRouteKey], treePatch, applyPatchDefaultSegment);\n if (parallelRoutePatch === null) {\n return null;\n }\n }\n const tree = [\n flightSegmentPath[0],\n {\n ...parallelRoutes,\n [parallelRouteKey]: parallelRoutePatch\n }\n ];\n // Current segment is the root layout\n if (isRootLayout) {\n tree[4] = true;\n }\n return tree;\n}\n/**\n * Apply the router state from the Flight response to the tree, including default segments.\n * Useful for patching the router cache when we expect to revalidate the full tree, such as with router.refresh or revalidatePath.\n * Creates a new router state tree.\n */ function applyRouterStatePatchToFullTree(flightSegmentPath, flightRouterState, treePatch) {\n return applyRouterStatePatchToTreeImpl(flightSegmentPath, flightRouterState, treePatch, true);\n}\n/**\n * Apply the router state from the Flight response, but skip patching default segments.\n * Useful for patching the router cache when navigating, where we persist the existing default segment if there isn't a new one.\n * Creates a new router state tree.\n */ function applyRouterStatePatchToTreeSkipDefault(flightSegmentPath, flightRouterState, treePatch) {\n return applyRouterStatePatchToTreeImpl(flightSegmentPath, flightRouterState, treePatch, false);\n} //# sourceMappingURL=apply-router-state-patch-to-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvYXBwbHktcm91dGVyLXN0YXRlLXBhdGNoLXRvLXRyZWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFrRTtBQUNqQjtBQUNqRDs7Q0FFQyxHQUFHLFNBQVNFLFdBQVdDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQywwQkFBMEI7SUFDdEUsSUFBSUEsK0JBQStCLEtBQUssR0FBR0EsNkJBQTZCO0lBQ3hFLE1BQU0sQ0FBQ0MsZ0JBQWdCQyxzQkFBc0IsR0FBR0o7SUFDaEQsTUFBTSxDQUFDSyxjQUFjQyxvQkFBb0IsR0FBR0w7SUFDNUMsa0dBQWtHO0lBQ2xHLGlGQUFpRjtJQUNqRix5RkFBeUY7SUFDekYsZ0ZBQWdGO0lBQ2hGLElBQUksQ0FBQ0MsOEJBQThCRyxpQkFBaUJSLG9FQUFtQkEsSUFBSU0sbUJBQW1CTixvRUFBbUJBLEVBQUU7UUFDL0csT0FBT0c7SUFDWDtJQUNBLElBQUlGLDZEQUFZQSxDQUFDSyxnQkFBZ0JFLGVBQWU7UUFDNUMsTUFBTUUsb0JBQW9CLENBQUM7UUFDM0IsSUFBSSxNQUFNQyxPQUFPSixzQkFBc0I7WUFDbkMsTUFBTUssOEJBQThCLE9BQU9ILG1CQUFtQixDQUFDRSxJQUFJLEtBQUs7WUFDeEUsSUFBSUMsNkJBQTZCO2dCQUM3QkYsaUJBQWlCLENBQUNDLElBQUksR0FBR1QsV0FBV0sscUJBQXFCLENBQUNJLElBQUksRUFBRUYsbUJBQW1CLENBQUNFLElBQUksRUFBRU47WUFDOUYsT0FBTztnQkFDSEssaUJBQWlCLENBQUNDLElBQUksR0FBR0oscUJBQXFCLENBQUNJLElBQUk7WUFDdkQ7UUFDSjtRQUNBLElBQUksTUFBTUEsT0FBT0Ysb0JBQW9CO1lBQ2pDLElBQUlDLGlCQUFpQixDQUFDQyxJQUFJLEVBQUU7Z0JBQ3hCO1lBQ0o7WUFDQUQsaUJBQWlCLENBQUNDLElBQUksR0FBR0YsbUJBQW1CLENBQUNFLElBQUk7UUFDckQ7UUFDQSxNQUFNRSxPQUFPO1lBQ1RQO1lBQ0FJO1NBQ0g7UUFDRCxJQUFJUCxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ2hCVSxJQUFJLENBQUMsRUFBRSxHQUFHVixXQUFXLENBQUMsRUFBRTtRQUM1QjtRQUNBLElBQUlBLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDaEJVLElBQUksQ0FBQyxFQUFFLEdBQUdWLFdBQVcsQ0FBQyxFQUFFO1FBQzVCO1FBQ0EsSUFBSUEsV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUNoQlUsSUFBSSxDQUFDLEVBQUUsR0FBR1YsV0FBVyxDQUFDLEVBQUU7UUFDNUI7UUFDQSxPQUFPVTtJQUNYO0lBQ0EsT0FBT1Q7QUFDWDtBQUNBLFNBQVNVLGdDQUFnQ0MsaUJBQWlCLEVBQUVDLGlCQUFpQixFQUFFQyxTQUFTLEVBQUVDLHdCQUF3QjtJQUM5RyxJQUFJQSw2QkFBNkIsS0FBSyxHQUFHQSwyQkFBMkI7SUFDcEUsTUFBTSxDQUFDQyxTQUFTQyxvQkFBb0JDLGFBQWEsR0FBR0w7SUFDcEQsZUFBZTtJQUNmLElBQUlELGtCQUFrQk8sTUFBTSxLQUFLLEdBQUc7UUFDaEMsTUFBTVQsT0FBT1gsV0FBV2MsbUJBQW1CQyxXQUFXQztRQUN0RCxPQUFPTDtJQUNYO0lBQ0EsTUFBTSxDQUFDVSxnQkFBZ0JDLGlCQUFpQixHQUFHVDtJQUMzQyxpR0FBaUc7SUFDakcsSUFBSSxDQUFDZCw2REFBWUEsQ0FBQ3NCLGdCQUFnQkosVUFBVTtRQUN4QyxPQUFPO0lBQ1g7SUFDQSxNQUFNTSxjQUFjVixrQkFBa0JPLE1BQU0sS0FBSztJQUNqRCxJQUFJSTtJQUNKLElBQUlELGFBQWE7UUFDYkMscUJBQXFCeEIsV0FBV2tCLGNBQWMsQ0FBQ0ksaUJBQWlCLEVBQUVQLFdBQVdDO0lBQ2pGLE9BQU87UUFDSFEscUJBQXFCWixnQ0FBZ0NDLGtCQUFrQlksS0FBSyxDQUFDLElBQUlQLGNBQWMsQ0FBQ0ksaUJBQWlCLEVBQUVQLFdBQVdDO1FBQzlILElBQUlRLHVCQUF1QixNQUFNO1lBQzdCLE9BQU87UUFDWDtJQUNKO0lBQ0EsTUFBTWIsT0FBTztRQUNURSxpQkFBaUIsQ0FBQyxFQUFFO1FBQ3BCO1lBQ0ksR0FBR0ssY0FBYztZQUNqQixDQUFDSSxpQkFBaUIsRUFBRUU7UUFDeEI7S0FDSDtJQUNELHFDQUFxQztJQUNyQyxJQUFJTCxjQUFjO1FBQ2RSLElBQUksQ0FBQyxFQUFFLEdBQUc7SUFDZDtJQUNBLE9BQU9BO0FBQ1g7QUFDQTs7OztDQUlDLEdBQVUsU0FBU2UsZ0NBQWdDYixpQkFBaUIsRUFBRUMsaUJBQWlCLEVBQUVDLFNBQVM7SUFDL0YsT0FBT0gsZ0NBQWdDQyxtQkFBbUJDLG1CQUFtQkMsV0FBVztBQUM1RjtBQUNBOzs7O0NBSUMsR0FBVSxTQUFTWSx1Q0FBdUNkLGlCQUFpQixFQUFFQyxpQkFBaUIsRUFBRUMsU0FBUztJQUN0RyxPQUFPSCxnQ0FBZ0NDLG1CQUFtQkMsbUJBQW1CQyxXQUFXO0FBQzVGLEVBRUEsNERBQTREIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZS5qcz80ZDRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfU0VHTUVOVF9LRVkgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50XCI7XG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tIFwiLi4vbWF0Y2gtc2VnbWVudHNcIjtcbi8qKlxuICogRGVlcCBtZXJnZSBvZiB0aGUgdHdvIHJvdXRlciBzdGF0ZXMuIFBhcmFsbGVsIHJvdXRlIGtleXMgYXJlIHByZXNlcnZlZCBpZiB0aGUgcGF0Y2ggZG9lc24ndCBoYXZlIHRoZW0uXG4gKi8gZnVuY3Rpb24gYXBwbHlQYXRjaChpbml0aWFsVHJlZSwgcGF0Y2hUcmVlLCBhcHBseVBhdGNoVG9EZWZhdWx0U2VnbWVudCkge1xuICAgIGlmIChhcHBseVBhdGNoVG9EZWZhdWx0U2VnbWVudCA9PT0gdm9pZCAwKSBhcHBseVBhdGNoVG9EZWZhdWx0U2VnbWVudCA9IGZhbHNlO1xuICAgIGNvbnN0IFtpbml0aWFsU2VnbWVudCwgaW5pdGlhbFBhcmFsbGVsUm91dGVzXSA9IGluaXRpYWxUcmVlO1xuICAgIGNvbnN0IFtwYXRjaFNlZ21lbnQsIHBhdGNoUGFyYWxsZWxSb3V0ZXNdID0gcGF0Y2hUcmVlO1xuICAgIC8vIGlmIHRoZSBhcHBsaWVkIHBhdGNoIHNlZ21lbnQgaXMgX19ERUZBVUxUX18gdGhlbiBpdCBjYW4gYmUgaWdub3JlZCBpbiBmYXZvciBvZiB0aGUgaW5pdGlhbCB0cmVlXG4gICAgLy8gdGhpcyBpcyBiZWNhdXNlIHRoZSBfX0RFRkFVTFRfXyBzZWdtZW50IGlzIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBvbiBuYXZpZ2F0aW9uXG4gICAgLy8gaG93ZXZlciwgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIF9kb18gd2FudCB0byBhcHBseSB0aGUgcGF0Y2ggdG8gdGhlIGRlZmF1bHQgc2VnbWVudCxcbiAgICAvLyBzdWNoIGFzIHdoZW4gcmV2YWxpZGF0aW5nIHRoZSByb3V0ZXIgY2FjaGUgd2l0aCByb3V0ZXIucmVmcmVzaC9yZXZhbGlkYXRlUGF0aFxuICAgIGlmICghYXBwbHlQYXRjaFRvRGVmYXVsdFNlZ21lbnQgJiYgcGF0Y2hTZWdtZW50ID09PSBERUZBVUxUX1NFR01FTlRfS0VZICYmIGluaXRpYWxTZWdtZW50ICE9PSBERUZBVUxUX1NFR01FTlRfS0VZKSB7XG4gICAgICAgIHJldHVybiBpbml0aWFsVHJlZTtcbiAgICB9XG4gICAgaWYgKG1hdGNoU2VnbWVudChpbml0aWFsU2VnbWVudCwgcGF0Y2hTZWdtZW50KSkge1xuICAgICAgICBjb25zdCBuZXdQYXJhbGxlbFJvdXRlcyA9IHt9O1xuICAgICAgICBmb3IoY29uc3Qga2V5IGluIGluaXRpYWxQYXJhbGxlbFJvdXRlcyl7XG4gICAgICAgICAgICBjb25zdCBpc0luUGF0Y2hUcmVlUGFyYWxsZWxSb3V0ZXMgPSB0eXBlb2YgcGF0Y2hQYXJhbGxlbFJvdXRlc1trZXldICE9PSBcInVuZGVmaW5lZFwiO1xuICAgICAgICAgICAgaWYgKGlzSW5QYXRjaFRyZWVQYXJhbGxlbFJvdXRlcykge1xuICAgICAgICAgICAgICAgIG5ld1BhcmFsbGVsUm91dGVzW2tleV0gPSBhcHBseVBhdGNoKGluaXRpYWxQYXJhbGxlbFJvdXRlc1trZXldLCBwYXRjaFBhcmFsbGVsUm91dGVzW2tleV0sIGFwcGx5UGF0Y2hUb0RlZmF1bHRTZWdtZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UGFyYWxsZWxSb3V0ZXNba2V5XSA9IGluaXRpYWxQYXJhbGxlbFJvdXRlc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvcihjb25zdCBrZXkgaW4gcGF0Y2hQYXJhbGxlbFJvdXRlcyl7XG4gICAgICAgICAgICBpZiAobmV3UGFyYWxsZWxSb3V0ZXNba2V5XSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3UGFyYWxsZWxSb3V0ZXNba2V5XSA9IHBhdGNoUGFyYWxsZWxSb3V0ZXNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0cmVlID0gW1xuICAgICAgICAgICAgaW5pdGlhbFNlZ21lbnQsXG4gICAgICAgICAgICBuZXdQYXJhbGxlbFJvdXRlc1xuICAgICAgICBdO1xuICAgICAgICBpZiAoaW5pdGlhbFRyZWVbMl0pIHtcbiAgICAgICAgICAgIHRyZWVbMl0gPSBpbml0aWFsVHJlZVsyXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5pdGlhbFRyZWVbM10pIHtcbiAgICAgICAgICAgIHRyZWVbM10gPSBpbml0aWFsVHJlZVszXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5pdGlhbFRyZWVbNF0pIHtcbiAgICAgICAgICAgIHRyZWVbNF0gPSBpbml0aWFsVHJlZVs0XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJlZTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGNoVHJlZTtcbn1cbmZ1bmN0aW9uIGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZUltcGwoZmxpZ2h0U2VnbWVudFBhdGgsIGZsaWdodFJvdXRlclN0YXRlLCB0cmVlUGF0Y2gsIGFwcGx5UGF0Y2hEZWZhdWx0U2VnbWVudCkge1xuICAgIGlmIChhcHBseVBhdGNoRGVmYXVsdFNlZ21lbnQgPT09IHZvaWQgMCkgYXBwbHlQYXRjaERlZmF1bHRTZWdtZW50ID0gZmFsc2U7XG4gICAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCAsICwgaXNSb290TGF5b3V0XSA9IGZsaWdodFJvdXRlclN0YXRlO1xuICAgIC8vIFJvb3QgcmVmcmVzaFxuICAgIGlmIChmbGlnaHRTZWdtZW50UGF0aC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgY29uc3QgdHJlZSA9IGFwcGx5UGF0Y2goZmxpZ2h0Um91dGVyU3RhdGUsIHRyZWVQYXRjaCwgYXBwbHlQYXRjaERlZmF1bHRTZWdtZW50KTtcbiAgICAgICAgcmV0dXJuIHRyZWU7XG4gICAgfVxuICAgIGNvbnN0IFtjdXJyZW50U2VnbWVudCwgcGFyYWxsZWxSb3V0ZUtleV0gPSBmbGlnaHRTZWdtZW50UGF0aDtcbiAgICAvLyBUcmVlIHBhdGggcmV0dXJuZWQgZnJvbSB0aGUgc2VydmVyIHNob3VsZCBhbHdheXMgbWF0Y2ggdXAgd2l0aCB0aGUgY3VycmVudCB0cmVlIGluIHRoZSBicm93c2VyXG4gICAgaWYgKCFtYXRjaFNlZ21lbnQoY3VycmVudFNlZ21lbnQsIHNlZ21lbnQpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBsYXN0U2VnbWVudCA9IGZsaWdodFNlZ21lbnRQYXRoLmxlbmd0aCA9PT0gMjtcbiAgICBsZXQgcGFyYWxsZWxSb3V0ZVBhdGNoO1xuICAgIGlmIChsYXN0U2VnbWVudCkge1xuICAgICAgICBwYXJhbGxlbFJvdXRlUGF0Y2ggPSBhcHBseVBhdGNoKHBhcmFsbGVsUm91dGVzW3BhcmFsbGVsUm91dGVLZXldLCB0cmVlUGF0Y2gsIGFwcGx5UGF0Y2hEZWZhdWx0U2VnbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYWxsZWxSb3V0ZVBhdGNoID0gYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlSW1wbChmbGlnaHRTZWdtZW50UGF0aC5zbGljZSgyKSwgcGFyYWxsZWxSb3V0ZXNbcGFyYWxsZWxSb3V0ZUtleV0sIHRyZWVQYXRjaCwgYXBwbHlQYXRjaERlZmF1bHRTZWdtZW50KTtcbiAgICAgICAgaWYgKHBhcmFsbGVsUm91dGVQYXRjaCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdHJlZSA9IFtcbiAgICAgICAgZmxpZ2h0U2VnbWVudFBhdGhbMF0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFsbGVsUm91dGVzLFxuICAgICAgICAgICAgW3BhcmFsbGVsUm91dGVLZXldOiBwYXJhbGxlbFJvdXRlUGF0Y2hcbiAgICAgICAgfVxuICAgIF07XG4gICAgLy8gQ3VycmVudCBzZWdtZW50IGlzIHRoZSByb290IGxheW91dFxuICAgIGlmIChpc1Jvb3RMYXlvdXQpIHtcbiAgICAgICAgdHJlZVs0XSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0cmVlO1xufVxuLyoqXG4gKiBBcHBseSB0aGUgcm91dGVyIHN0YXRlIGZyb20gdGhlIEZsaWdodCByZXNwb25zZSB0byB0aGUgdHJlZSwgaW5jbHVkaW5nIGRlZmF1bHQgc2VnbWVudHMuXG4gKiBVc2VmdWwgZm9yIHBhdGNoaW5nIHRoZSByb3V0ZXIgY2FjaGUgd2hlbiB3ZSBleHBlY3QgdG8gcmV2YWxpZGF0ZSB0aGUgZnVsbCB0cmVlLCBzdWNoIGFzIHdpdGggcm91dGVyLnJlZnJlc2ggb3IgcmV2YWxpZGF0ZVBhdGguXG4gKiBDcmVhdGVzIGEgbmV3IHJvdXRlciBzdGF0ZSB0cmVlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb0Z1bGxUcmVlKGZsaWdodFNlZ21lbnRQYXRoLCBmbGlnaHRSb3V0ZXJTdGF0ZSwgdHJlZVBhdGNoKSB7XG4gICAgcmV0dXJuIGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZUltcGwoZmxpZ2h0U2VnbWVudFBhdGgsIGZsaWdodFJvdXRlclN0YXRlLCB0cmVlUGF0Y2gsIHRydWUpO1xufVxuLyoqXG4gKiBBcHBseSB0aGUgcm91dGVyIHN0YXRlIGZyb20gdGhlIEZsaWdodCByZXNwb25zZSwgYnV0IHNraXAgcGF0Y2hpbmcgZGVmYXVsdCBzZWdtZW50cy5cbiAqIFVzZWZ1bCBmb3IgcGF0Y2hpbmcgdGhlIHJvdXRlciBjYWNoZSB3aGVuIG5hdmlnYXRpbmcsIHdoZXJlIHdlIHBlcnNpc3QgdGhlIGV4aXN0aW5nIGRlZmF1bHQgc2VnbWVudCBpZiB0aGVyZSBpc24ndCBhIG5ldyBvbmUuXG4gKiBDcmVhdGVzIGEgbmV3IHJvdXRlciBzdGF0ZSB0cmVlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWVTa2lwRGVmYXVsdChmbGlnaHRTZWdtZW50UGF0aCwgZmxpZ2h0Um91dGVyU3RhdGUsIHRyZWVQYXRjaCkge1xuICAgIHJldHVybiBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWVJbXBsKGZsaWdodFNlZ21lbnRQYXRoLCBmbGlnaHRSb3V0ZXJTdGF0ZSwgdHJlZVBhdGNoLCBmYWxzZSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlLmpzLm1hcCJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwibWF0Y2hTZWdtZW50IiwiYXBwbHlQYXRjaCIsImluaXRpYWxUcmVlIiwicGF0Y2hUcmVlIiwiYXBwbHlQYXRjaFRvRGVmYXVsdFNlZ21lbnQiLCJpbml0aWFsU2VnbWVudCIsImluaXRpYWxQYXJhbGxlbFJvdXRlcyIsInBhdGNoU2VnbWVudCIsInBhdGNoUGFyYWxsZWxSb3V0ZXMiLCJuZXdQYXJhbGxlbFJvdXRlcyIsImtleSIsImlzSW5QYXRjaFRyZWVQYXJhbGxlbFJvdXRlcyIsInRyZWUiLCJhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWVJbXBsIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsInRyZWVQYXRjaCIsImFwcGx5UGF0Y2hEZWZhdWx0U2VnbWVudCIsInNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlcyIsImlzUm9vdExheW91dCIsImxlbmd0aCIsImN1cnJlbnRTZWdtZW50IiwicGFyYWxsZWxSb3V0ZUtleSIsImxhc3RTZWdtZW50IiwicGFyYWxsZWxSb3V0ZVBhdGNoIiwic2xpY2UiLCJhcHBseVJvdXRlclN0YXRlUGF0Y2hUb0Z1bGxUcmVlIiwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlU2tpcERlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/compute-changed-path.js":
-/*!*************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/compute-changed-path.js ***!
- \*************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ computeChangedPath: () => (/* binding */ computeChangedPath),\n/* harmony export */ extractPathFromFlightRouterState: () => (/* binding */ extractPathFromFlightRouterState)\n/* harmony export */ });\n/* harmony import */ var _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../server/future/helpers/interception-routes */ \"(ssr)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\");\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n/* harmony import */ var _match_segments__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../match-segments */ \"(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js\");\n\n\n\nconst removeLeadingSlash = (segment)=>{\n return segment[0] === \"/\" ? segment.slice(1) : segment;\n};\nconst segmentToPathname = (segment)=>{\n if (typeof segment === \"string\") {\n return segment;\n }\n return segment[1];\n};\nfunction normalizeSegments(segments) {\n return segments.reduce((acc, segment)=>{\n segment = removeLeadingSlash(segment);\n if (segment === \"\" || (0,_shared_lib_segment__WEBPACK_IMPORTED_MODULE_1__.isGroupSegment)(segment)) {\n return acc;\n }\n return acc + \"/\" + segment;\n }, \"\") || \"/\";\n}\nfunction extractPathFromFlightRouterState(flightRouterState) {\n const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0];\n if (segment === _shared_lib_segment__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SEGMENT_KEY || _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined;\n if (segment.startsWith(_shared_lib_segment__WEBPACK_IMPORTED_MODULE_1__.PAGE_SEGMENT_KEY)) return \"\";\n const segments = [\n segment\n ];\n var _flightRouterState_;\n const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {};\n const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined;\n if (childrenPath !== undefined) {\n segments.push(childrenPath);\n } else {\n for (const [key, value] of Object.entries(parallelRoutes)){\n if (key === \"children\") continue;\n const childPath = extractPathFromFlightRouterState(value);\n if (childPath !== undefined) {\n segments.push(childPath);\n }\n }\n }\n return normalizeSegments(segments);\n}\nfunction computeChangedPathImpl(treeA, treeB) {\n const [segmentA, parallelRoutesA] = treeA;\n const [segmentB, parallelRoutesB] = treeB;\n const normalizedSegmentA = segmentToPathname(segmentA);\n const normalizedSegmentB = segmentToPathname(segmentB);\n if (_server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) {\n return \"\";\n }\n if (!(0,_match_segments__WEBPACK_IMPORTED_MODULE_2__.matchSegment)(segmentA, segmentB)) {\n var _extractPathFromFlightRouterState;\n // once we find where the tree changed, we compute the rest of the path by traversing the tree\n return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : \"\";\n }\n for(const parallelRouterKey in parallelRoutesA){\n if (parallelRoutesB[parallelRouterKey]) {\n const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]);\n if (changedPath !== null) {\n return segmentToPathname(segmentB) + \"/\" + changedPath;\n }\n }\n }\n return null;\n}\nfunction computeChangedPath(treeA, treeB) {\n const changedPath = computeChangedPathImpl(treeA, treeB);\n if (changedPath == null || changedPath === \"/\") {\n return changedPath;\n }\n // lightweight normalization to remove route groups\n return normalizeSegments(changedPath.split(\"/\"));\n} //# sourceMappingURL=compute-changed-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY29tcHV0ZS1jaGFuZ2VkLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBZ0c7QUFDSTtBQUNuRDtBQUNqRCxNQUFNSyxxQkFBcUIsQ0FBQ0M7SUFDeEIsT0FBT0EsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNQSxRQUFRQyxLQUFLLENBQUMsS0FBS0Q7QUFDbkQ7QUFDQSxNQUFNRSxvQkFBb0IsQ0FBQ0Y7SUFDdkIsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDN0IsT0FBT0E7SUFDWDtJQUNBLE9BQU9BLE9BQU8sQ0FBQyxFQUFFO0FBQ3JCO0FBQ0EsU0FBU0csa0JBQWtCQyxRQUFRO0lBQy9CLE9BQU9BLFNBQVNDLE1BQU0sQ0FBQyxDQUFDQyxLQUFLTjtRQUN6QkEsVUFBVUQsbUJBQW1CQztRQUM3QixJQUFJQSxZQUFZLE1BQU1MLG1FQUFjQSxDQUFDSyxVQUFVO1lBQzNDLE9BQU9NO1FBQ1g7UUFDQSxPQUFPQSxNQUFNLE1BQU1OO0lBQ3ZCLEdBQUcsT0FBTztBQUNkO0FBQ08sU0FBU08saUNBQWlDQyxpQkFBaUI7SUFDOUQsTUFBTVIsVUFBVVMsTUFBTUMsT0FBTyxDQUFDRixpQkFBaUIsQ0FBQyxFQUFFLElBQUlBLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUdBLGlCQUFpQixDQUFDLEVBQUU7SUFDcEcsSUFBSVIsWUFBWUosb0VBQW1CQSxJQUFJRixrR0FBMEJBLENBQUNpQixJQUFJLENBQUMsQ0FBQ0MsSUFBSVosUUFBUWEsVUFBVSxDQUFDRCxLQUFLLE9BQU9FO0lBQzNHLElBQUlkLFFBQVFhLFVBQVUsQ0FBQ2hCLGlFQUFnQkEsR0FBRyxPQUFPO0lBQ2pELE1BQU1PLFdBQVc7UUFDYko7S0FDSDtJQUNELElBQUllO0lBQ0osTUFBTUMsaUJBQWlCLENBQUNELHNCQUFzQlAsaUJBQWlCLENBQUMsRUFBRSxLQUFLLE9BQU9PLHNCQUFzQixDQUFDO0lBQ3JHLE1BQU1FLGVBQWVELGVBQWVFLFFBQVEsR0FBR1gsaUNBQWlDUyxlQUFlRSxRQUFRLElBQUlKO0lBQzNHLElBQUlHLGlCQUFpQkgsV0FBVztRQUM1QlYsU0FBU2UsSUFBSSxDQUFDRjtJQUNsQixPQUFPO1FBQ0gsS0FBSyxNQUFNLENBQUNHLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDUCxnQkFBZ0I7WUFDdEQsSUFBSUksUUFBUSxZQUFZO1lBQ3hCLE1BQU1JLFlBQVlqQixpQ0FBaUNjO1lBQ25ELElBQUlHLGNBQWNWLFdBQVc7Z0JBQ3pCVixTQUFTZSxJQUFJLENBQUNLO1lBQ2xCO1FBQ0o7SUFDSjtJQUNBLE9BQU9yQixrQkFBa0JDO0FBQzdCO0FBQ0EsU0FBU3FCLHVCQUF1QkMsS0FBSyxFQUFFQyxLQUFLO0lBQ3hDLE1BQU0sQ0FBQ0MsVUFBVUMsZ0JBQWdCLEdBQUdIO0lBQ3BDLE1BQU0sQ0FBQ0ksVUFBVUMsZ0JBQWdCLEdBQUdKO0lBQ3BDLE1BQU1LLHFCQUFxQjlCLGtCQUFrQjBCO0lBQzdDLE1BQU1LLHFCQUFxQi9CLGtCQUFrQjRCO0lBQzdDLElBQUlwQyxrR0FBMEJBLENBQUNpQixJQUFJLENBQUMsQ0FBQ0MsSUFBSW9CLG1CQUFtQm5CLFVBQVUsQ0FBQ0QsTUFBTXFCLG1CQUFtQnBCLFVBQVUsQ0FBQ0QsS0FBSztRQUM1RyxPQUFPO0lBQ1g7SUFDQSxJQUFJLENBQUNkLDZEQUFZQSxDQUFDOEIsVUFBVUUsV0FBVztRQUNuQyxJQUFJSTtRQUNKLDhGQUE4RjtRQUM5RixPQUFPLENBQUNBLG9DQUFvQzNCLGlDQUFpQ29CLE1BQUssS0FBTSxPQUFPTyxvQ0FBb0M7SUFDdkk7SUFDQSxJQUFJLE1BQU1DLHFCQUFxQk4sZ0JBQWdCO1FBQzNDLElBQUlFLGVBQWUsQ0FBQ0ksa0JBQWtCLEVBQUU7WUFDcEMsTUFBTUMsY0FBY1gsdUJBQXVCSSxlQUFlLENBQUNNLGtCQUFrQixFQUFFSixlQUFlLENBQUNJLGtCQUFrQjtZQUNqSCxJQUFJQyxnQkFBZ0IsTUFBTTtnQkFDdEIsT0FBT2xDLGtCQUFrQjRCLFlBQVksTUFBTU07WUFDL0M7UUFDSjtJQUNKO0lBQ0EsT0FBTztBQUNYO0FBQ08sU0FBU0MsbUJBQW1CWCxLQUFLLEVBQUVDLEtBQUs7SUFDM0MsTUFBTVMsY0FBY1gsdUJBQXVCQyxPQUFPQztJQUNsRCxJQUFJUyxlQUFlLFFBQVFBLGdCQUFnQixLQUFLO1FBQzVDLE9BQU9BO0lBQ1g7SUFDQSxtREFBbUQ7SUFDbkQsT0FBT2pDLGtCQUFrQmlDLFlBQVlFLEtBQUssQ0FBQztBQUMvQyxFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY29tcHV0ZS1jaGFuZ2VkLXBhdGguanM/MGY1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2ZXIvZnV0dXJlL2hlbHBlcnMvaW50ZXJjZXB0aW9uLXJvdXRlc1wiO1xuaW1wb3J0IHsgaXNHcm91cFNlZ21lbnQsIERFRkFVTFRfU0VHTUVOVF9LRVksIFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50XCI7XG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tIFwiLi4vbWF0Y2gtc2VnbWVudHNcIjtcbmNvbnN0IHJlbW92ZUxlYWRpbmdTbGFzaCA9IChzZWdtZW50KT0+e1xuICAgIHJldHVybiBzZWdtZW50WzBdID09PSBcIi9cIiA/IHNlZ21lbnQuc2xpY2UoMSkgOiBzZWdtZW50O1xufTtcbmNvbnN0IHNlZ21lbnRUb1BhdGhuYW1lID0gKHNlZ21lbnQpPT57XG4gICAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBzZWdtZW50O1xuICAgIH1cbiAgICByZXR1cm4gc2VnbWVudFsxXTtcbn07XG5mdW5jdGlvbiBub3JtYWxpemVTZWdtZW50cyhzZWdtZW50cykge1xuICAgIHJldHVybiBzZWdtZW50cy5yZWR1Y2UoKGFjYywgc2VnbWVudCk9PntcbiAgICAgICAgc2VnbWVudCA9IHJlbW92ZUxlYWRpbmdTbGFzaChzZWdtZW50KTtcbiAgICAgICAgaWYgKHNlZ21lbnQgPT09IFwiXCIgfHwgaXNHcm91cFNlZ21lbnQoc2VnbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYyArIFwiL1wiICsgc2VnbWVudDtcbiAgICB9LCBcIlwiKSB8fCBcIi9cIjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZShmbGlnaHRSb3V0ZXJTdGF0ZSkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBBcnJheS5pc0FycmF5KGZsaWdodFJvdXRlclN0YXRlWzBdKSA/IGZsaWdodFJvdXRlclN0YXRlWzBdWzFdIDogZmxpZ2h0Um91dGVyU3RhdGVbMF07XG4gICAgaWYgKHNlZ21lbnQgPT09IERFRkFVTFRfU0VHTUVOVF9LRVkgfHwgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuc29tZSgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkgcmV0dXJuIFwiXCI7XG4gICAgY29uc3Qgc2VnbWVudHMgPSBbXG4gICAgICAgIHNlZ21lbnRcbiAgICBdO1xuICAgIHZhciBfZmxpZ2h0Um91dGVyU3RhdGVfO1xuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVzID0gKF9mbGlnaHRSb3V0ZXJTdGF0ZV8gPSBmbGlnaHRSb3V0ZXJTdGF0ZVsxXSkgIT0gbnVsbCA/IF9mbGlnaHRSb3V0ZXJTdGF0ZV8gOiB7fTtcbiAgICBjb25zdCBjaGlsZHJlblBhdGggPSBwYXJhbGxlbFJvdXRlcy5jaGlsZHJlbiA/IGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuKSA6IHVuZGVmaW5lZDtcbiAgICBpZiAoY2hpbGRyZW5QYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2VnbWVudHMucHVzaChjaGlsZHJlblBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFsbGVsUm91dGVzKSl7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBcImNoaWxkcmVuXCIpIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRQYXRoID0gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGNoaWxkUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2VnbWVudHMucHVzaChjaGlsZFBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub3JtYWxpemVTZWdtZW50cyhzZWdtZW50cyk7XG59XG5mdW5jdGlvbiBjb21wdXRlQ2hhbmdlZFBhdGhJbXBsKHRyZWVBLCB0cmVlQikge1xuICAgIGNvbnN0IFtzZWdtZW50QSwgcGFyYWxsZWxSb3V0ZXNBXSA9IHRyZWVBO1xuICAgIGNvbnN0IFtzZWdtZW50QiwgcGFyYWxsZWxSb3V0ZXNCXSA9IHRyZWVCO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTZWdtZW50QSA9IHNlZ21lbnRUb1BhdGhuYW1lKHNlZ21lbnRBKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2VnbWVudEIgPSBzZWdtZW50VG9QYXRobmFtZShzZWdtZW50Qik7XG4gICAgaWYgKElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pPT5ub3JtYWxpemVkU2VnbWVudEEuc3RhcnRzV2l0aChtKSB8fCBub3JtYWxpemVkU2VnbWVudEIuc3RhcnRzV2l0aChtKSkpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGlmICghbWF0Y2hTZWdtZW50KHNlZ21lbnRBLCBzZWdtZW50QikpIHtcbiAgICAgICAgdmFyIF9leHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZTtcbiAgICAgICAgLy8gb25jZSB3ZSBmaW5kIHdoZXJlIHRoZSB0cmVlIGNoYW5nZWQsIHdlIGNvbXB1dGUgdGhlIHJlc3Qgb2YgdGhlIHBhdGggYnkgdHJhdmVyc2luZyB0aGUgdHJlZVxuICAgICAgICByZXR1cm4gKF9leHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSA9IGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKHRyZWVCKSkgIT0gbnVsbCA/IF9leHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSA6IFwiXCI7XG4gICAgfVxuICAgIGZvcihjb25zdCBwYXJhbGxlbFJvdXRlcktleSBpbiBwYXJhbGxlbFJvdXRlc0Epe1xuICAgICAgICBpZiAocGFyYWxsZWxSb3V0ZXNCW3BhcmFsbGVsUm91dGVyS2V5XSkge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlZFBhdGggPSBjb21wdXRlQ2hhbmdlZFBhdGhJbXBsKHBhcmFsbGVsUm91dGVzQVtwYXJhbGxlbFJvdXRlcktleV0sIHBhcmFsbGVsUm91dGVzQltwYXJhbGxlbFJvdXRlcktleV0pO1xuICAgICAgICAgICAgaWYgKGNoYW5nZWRQYXRoICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlZ21lbnRUb1BhdGhuYW1lKHNlZ21lbnRCKSArIFwiL1wiICsgY2hhbmdlZFBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUNoYW5nZWRQYXRoKHRyZWVBLCB0cmVlQikge1xuICAgIGNvbnN0IGNoYW5nZWRQYXRoID0gY29tcHV0ZUNoYW5nZWRQYXRoSW1wbCh0cmVlQSwgdHJlZUIpO1xuICAgIGlmIChjaGFuZ2VkUGF0aCA9PSBudWxsIHx8IGNoYW5nZWRQYXRoID09PSBcIi9cIikge1xuICAgICAgICByZXR1cm4gY2hhbmdlZFBhdGg7XG4gICAgfVxuICAgIC8vIGxpZ2h0d2VpZ2h0IG5vcm1hbGl6YXRpb24gdG8gcmVtb3ZlIHJvdXRlIGdyb3Vwc1xuICAgIHJldHVybiBub3JtYWxpemVTZWdtZW50cyhjaGFuZ2VkUGF0aC5zcGxpdChcIi9cIikpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wdXRlLWNoYW5nZWQtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJpc0dyb3VwU2VnbWVudCIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJQQUdFX1NFR01FTlRfS0VZIiwibWF0Y2hTZWdtZW50IiwicmVtb3ZlTGVhZGluZ1NsYXNoIiwic2VnbWVudCIsInNsaWNlIiwic2VnbWVudFRvUGF0aG5hbWUiLCJub3JtYWxpemVTZWdtZW50cyIsInNlZ21lbnRzIiwicmVkdWNlIiwiYWNjIiwiZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIkFycmF5IiwiaXNBcnJheSIsInNvbWUiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsIl9mbGlnaHRSb3V0ZXJTdGF0ZV8iLCJwYXJhbGxlbFJvdXRlcyIsImNoaWxkcmVuUGF0aCIsImNoaWxkcmVuIiwicHVzaCIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyIsImNoaWxkUGF0aCIsImNvbXB1dGVDaGFuZ2VkUGF0aEltcGwiLCJ0cmVlQSIsInRyZWVCIiwic2VnbWVudEEiLCJwYXJhbGxlbFJvdXRlc0EiLCJzZWdtZW50QiIsInBhcmFsbGVsUm91dGVzQiIsIm5vcm1hbGl6ZWRTZWdtZW50QSIsIm5vcm1hbGl6ZWRTZWdtZW50QiIsIl9leHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSIsInBhcmFsbGVsUm91dGVyS2V5IiwiY2hhbmdlZFBhdGgiLCJjb21wdXRlQ2hhbmdlZFBhdGgiLCJzcGxpdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/compute-changed-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js":
-/*!*************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js ***!
- \*************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createHrefFromUrl: () => (/* binding */ createHrefFromUrl)\n/* harmony export */ });\nfunction createHrefFromUrl(url, includeHash) {\n if (includeHash === void 0) includeHash = true;\n return url.pathname + url.search + (includeHash ? url.hash : \"\");\n} //# sourceMappingURL=create-href-from-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY3JlYXRlLWhyZWYtZnJvbS11cmwuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLGtCQUFrQkMsR0FBRyxFQUFFQyxXQUFXO0lBQzlDLElBQUlBLGdCQUFnQixLQUFLLEdBQUdBLGNBQWM7SUFDMUMsT0FBT0QsSUFBSUUsUUFBUSxHQUFHRixJQUFJRyxNQUFNLEdBQUlGLENBQUFBLGNBQWNELElBQUlJLElBQUksR0FBRyxFQUFDO0FBQ2xFLEVBRUEsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9jcmVhdGUtaHJlZi1mcm9tLXVybC5qcz84Y2I4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIcmVmRnJvbVVybCh1cmwsIGluY2x1ZGVIYXNoKSB7XG4gICAgaWYgKGluY2x1ZGVIYXNoID09PSB2b2lkIDApIGluY2x1ZGVIYXNoID0gdHJ1ZTtcbiAgICByZXR1cm4gdXJsLnBhdGhuYW1lICsgdXJsLnNlYXJjaCArIChpbmNsdWRlSGFzaCA/IHVybC5oYXNoIDogXCJcIik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1ocmVmLWZyb20tdXJsLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVIcmVmRnJvbVVybCIsInVybCIsImluY2x1ZGVIYXNoIiwicGF0aG5hbWUiLCJzZWFyY2giLCJoYXNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-initial-router-state.js":
-/*!********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/create-initial-router-state.js ***!
- \********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createInitialRouterState: () => (/* binding */ createInitialRouterState)\n/* harmony export */ });\n/* harmony import */ var _create_href_from_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n/* harmony import */ var _fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fill-lazy-items-till-leaf-with-head */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\n/* harmony import */ var _compute_changed_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compute-changed-path */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/compute-changed-path.js\");\n\n\n\nfunction createInitialRouterState(param) {\n let { buildId, initialTree, initialSeedData, initialCanonicalUrl, initialParallelRoutes, isServer, location, initialHead } = param;\n const rsc = initialSeedData[2];\n const cache = {\n lazyData: null,\n rsc: rsc,\n prefetchRsc: null,\n // The cache gets seeded during the first render. `initialParallelRoutes` ensures the cache from the first render is there during the second render.\n parallelRoutes: isServer ? new Map() : initialParallelRoutes\n };\n // When the cache hasn't been seeded yet we fill the cache with the head.\n if (initialParallelRoutes === null || initialParallelRoutes.size === 0) {\n (0,_fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_1__.fillLazyItemsTillLeafWithHead)(cache, undefined, initialTree, initialSeedData, initialHead);\n }\n var _ref;\n return {\n buildId,\n tree: initialTree,\n cache,\n prefetchCache: new Map(),\n pushRef: {\n pendingPush: false,\n mpaNavigation: false,\n // First render needs to preserve the previous window.history.state\n // to avoid it being overwritten on navigation back/forward with MPA Navigation.\n preserveCustomHistoryState: true\n },\n focusAndScrollRef: {\n apply: false,\n onlyHashChange: false,\n hashFragment: null,\n segmentPaths: []\n },\n canonicalUrl: // This is safe to do as canonicalUrl can't be rendered, it's only used to control the history updates in the useEffect further down in this file.\n location ? (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_0__.createHrefFromUrl)(location) : initialCanonicalUrl,\n nextUrl: (_ref = (0,_compute_changed_path__WEBPACK_IMPORTED_MODULE_2__.extractPathFromFlightRouterState)(initialTree) || (location == null ? void 0 : location.pathname)) != null ? _ref : null\n };\n} //# sourceMappingURL=create-initial-router-state.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY3JlYXRlLWluaXRpYWwtcm91dGVyLXN0YXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMkQ7QUFDMkI7QUFDWjtBQUNuRSxTQUFTRyx5QkFBeUJDLEtBQUs7SUFDMUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsZUFBZSxFQUFFQyxtQkFBbUIsRUFBRUMscUJBQXFCLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUUsR0FBR1I7SUFDN0gsTUFBTVMsTUFBTU4sZUFBZSxDQUFDLEVBQUU7SUFDOUIsTUFBTU8sUUFBUTtRQUNWQyxVQUFVO1FBQ1ZGLEtBQUtBO1FBQ0xHLGFBQWE7UUFDYixvSkFBb0o7UUFDcEpDLGdCQUFnQlAsV0FBVyxJQUFJUSxRQUFRVDtJQUMzQztJQUNBLHlFQUF5RTtJQUN6RSxJQUFJQSwwQkFBMEIsUUFBUUEsc0JBQXNCVSxJQUFJLEtBQUssR0FBRztRQUNwRWxCLG1HQUE2QkEsQ0FBQ2EsT0FBT00sV0FBV2QsYUFBYUMsaUJBQWlCSztJQUNsRjtJQUNBLElBQ0FTO0lBQ0EsT0FBTztRQUNIaEI7UUFDQWlCLE1BQU1oQjtRQUNOUTtRQUNBUyxlQUFlLElBQUlMO1FBQ25CTSxTQUFTO1lBQ0xDLGFBQWE7WUFDYkMsZUFBZTtZQUNmLG1FQUFtRTtZQUNuRSxnRkFBZ0Y7WUFDaEZDLDRCQUE0QjtRQUNoQztRQUNBQyxtQkFBbUI7WUFDZkMsT0FBTztZQUNQQyxnQkFBZ0I7WUFDaEJDLGNBQWM7WUFDZEMsY0FBYyxFQUFFO1FBQ3BCO1FBQ0FDLGNBQ0Esa0pBQWtKO1FBQ2xKdEIsV0FBV1gsd0VBQWlCQSxDQUFDVyxZQUFZSDtRQUN6QzBCLFNBQVMsQ0FBQ2IsT0FBT25CLHVGQUFnQ0EsQ0FBQ0ksZ0JBQWlCSyxDQUFBQSxZQUFZLE9BQU8sS0FBSyxJQUFJQSxTQUFTd0IsUUFBUSxNQUFNLE9BQU9kLE9BQU87SUFDeEk7QUFDSixFQUVBLHVEQUF1RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY3JlYXRlLWluaXRpYWwtcm91dGVyLXN0YXRlLmpzPzhkZTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tIFwiLi9jcmVhdGUtaHJlZi1mcm9tLXVybFwiO1xuaW1wb3J0IHsgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQgfSBmcm9tIFwiLi9maWxsLWxhenktaXRlbXMtdGlsbC1sZWFmLXdpdGgtaGVhZFwiO1xuaW1wb3J0IHsgZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUgfSBmcm9tIFwiLi9jb21wdXRlLWNoYW5nZWQtcGF0aFwiO1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluaXRpYWxSb3V0ZXJTdGF0ZShwYXJhbSkge1xuICAgIGxldCB7IGJ1aWxkSWQsIGluaXRpYWxUcmVlLCBpbml0aWFsU2VlZERhdGEsIGluaXRpYWxDYW5vbmljYWxVcmwsIGluaXRpYWxQYXJhbGxlbFJvdXRlcywgaXNTZXJ2ZXIsIGxvY2F0aW9uLCBpbml0aWFsSGVhZCB9ID0gcGFyYW07XG4gICAgY29uc3QgcnNjID0gaW5pdGlhbFNlZWREYXRhWzJdO1xuICAgIGNvbnN0IGNhY2hlID0ge1xuICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgcnNjOiByc2MsXG4gICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICAvLyBUaGUgY2FjaGUgZ2V0cyBzZWVkZWQgZHVyaW5nIHRoZSBmaXJzdCByZW5kZXIuIGBpbml0aWFsUGFyYWxsZWxSb3V0ZXNgIGVuc3VyZXMgdGhlIGNhY2hlIGZyb20gdGhlIGZpcnN0IHJlbmRlciBpcyB0aGVyZSBkdXJpbmcgdGhlIHNlY29uZCByZW5kZXIuXG4gICAgICAgIHBhcmFsbGVsUm91dGVzOiBpc1NlcnZlciA/IG5ldyBNYXAoKSA6IGluaXRpYWxQYXJhbGxlbFJvdXRlc1xuICAgIH07XG4gICAgLy8gV2hlbiB0aGUgY2FjaGUgaGFzbid0IGJlZW4gc2VlZGVkIHlldCB3ZSBmaWxsIHRoZSBjYWNoZSB3aXRoIHRoZSBoZWFkLlxuICAgIGlmIChpbml0aWFsUGFyYWxsZWxSb3V0ZXMgPT09IG51bGwgfHwgaW5pdGlhbFBhcmFsbGVsUm91dGVzLnNpemUgPT09IDApIHtcbiAgICAgICAgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQoY2FjaGUsIHVuZGVmaW5lZCwgaW5pdGlhbFRyZWUsIGluaXRpYWxTZWVkRGF0YSwgaW5pdGlhbEhlYWQpO1xuICAgIH1cbiAgICB2YXIgLy8gdGhlIHx8IG9wZXJhdG9yIGlzIGludGVudGlvbmFsLCB0aGUgcGF0aG5hbWUgY2FuIGJlIGFuIGVtcHR5IHN0cmluZ1xuICAgIF9yZWY7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgdHJlZTogaW5pdGlhbFRyZWUsXG4gICAgICAgIGNhY2hlLFxuICAgICAgICBwcmVmZXRjaENhY2hlOiBuZXcgTWFwKCksXG4gICAgICAgIHB1c2hSZWY6IHtcbiAgICAgICAgICAgIHBlbmRpbmdQdXNoOiBmYWxzZSxcbiAgICAgICAgICAgIG1wYU5hdmlnYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgLy8gRmlyc3QgcmVuZGVyIG5lZWRzIHRvIHByZXNlcnZlIHRoZSBwcmV2aW91cyB3aW5kb3cuaGlzdG9yeS5zdGF0ZVxuICAgICAgICAgICAgLy8gdG8gYXZvaWQgaXQgYmVpbmcgb3ZlcndyaXR0ZW4gb24gbmF2aWdhdGlvbiBiYWNrL2ZvcndhcmQgd2l0aCBNUEEgTmF2aWdhdGlvbi5cbiAgICAgICAgICAgIHByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmOiB7XG4gICAgICAgICAgICBhcHBseTogZmFsc2UsXG4gICAgICAgICAgICBvbmx5SGFzaENoYW5nZTogZmFsc2UsXG4gICAgICAgICAgICBoYXNoRnJhZ21lbnQ6IG51bGwsXG4gICAgICAgICAgICBzZWdtZW50UGF0aHM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIGNhbm9uaWNhbFVybDogLy8gbG9jYXRpb24uaHJlZiBpcyByZWFkIGFzIHRoZSBpbml0aWFsIHZhbHVlIGZvciBjYW5vbmljYWxVcmwgaW4gdGhlIGJyb3dzZXJcbiAgICAgICAgLy8gVGhpcyBpcyBzYWZlIHRvIGRvIGFzIGNhbm9uaWNhbFVybCBjYW4ndCBiZSByZW5kZXJlZCwgaXQncyBvbmx5IHVzZWQgdG8gY29udHJvbCB0aGUgaGlzdG9yeSB1cGRhdGVzIGluIHRoZSB1c2VFZmZlY3QgZnVydGhlciBkb3duIGluIHRoaXMgZmlsZS5cbiAgICAgICAgbG9jYXRpb24gPyBjcmVhdGVIcmVmRnJvbVVybChsb2NhdGlvbikgOiBpbml0aWFsQ2Fub25pY2FsVXJsLFxuICAgICAgICBuZXh0VXJsOiAoX3JlZiA9IGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKGluaXRpYWxUcmVlKSB8fCAobG9jYXRpb24gPT0gbnVsbCA/IHZvaWQgMCA6IGxvY2F0aW9uLnBhdGhuYW1lKSkgIT0gbnVsbCA/IF9yZWYgOiBudWxsXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLWluaXRpYWwtcm91dGVyLXN0YXRlLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVIcmVmRnJvbVVybCIsImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwiZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUiLCJjcmVhdGVJbml0aWFsUm91dGVyU3RhdGUiLCJwYXJhbSIsImJ1aWxkSWQiLCJpbml0aWFsVHJlZSIsImluaXRpYWxTZWVkRGF0YSIsImluaXRpYWxDYW5vbmljYWxVcmwiLCJpbml0aWFsUGFyYWxsZWxSb3V0ZXMiLCJpc1NlcnZlciIsImxvY2F0aW9uIiwiaW5pdGlhbEhlYWQiLCJyc2MiLCJjYWNoZSIsImxhenlEYXRhIiwicHJlZmV0Y2hSc2MiLCJwYXJhbGxlbFJvdXRlcyIsIk1hcCIsInNpemUiLCJ1bmRlZmluZWQiLCJfcmVmIiwidHJlZSIsInByZWZldGNoQ2FjaGUiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJtcGFOYXZpZ2F0aW9uIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJmb2N1c0FuZFNjcm9sbFJlZiIsImFwcGx5Iiwib25seUhhc2hDaGFuZ2UiLCJoYXNoRnJhZ21lbnQiLCJzZWdtZW50UGF0aHMiLCJjYW5vbmljYWxVcmwiLCJuZXh0VXJsIiwicGF0aG5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-initial-router-state.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js":
-/*!****************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js ***!
- \****************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRouterCacheKey: () => (/* binding */ createRouterCacheKey)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n\nfunction createRouterCacheKey(segment, withoutSearchParameters) {\n if (withoutSearchParameters === void 0) withoutSearchParameters = false;\n // if the segment is an array, it means it's a dynamic segment\n // for example, ['lang', 'en', 'd']. We need to convert it to a string to store it as a cache node key.\n if (Array.isArray(segment)) {\n return (segment[0] + \"|\" + segment[1] + \"|\" + segment[2]).toLowerCase();\n }\n // Page segments might have search parameters, ie __PAGE__?foo=bar\n // When `withoutSearchParameters` is true, we only want to return the page segment\n if (withoutSearchParameters && segment.startsWith(_shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.PAGE_SEGMENT_KEY)) {\n return _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.PAGE_SEGMENT_KEY;\n }\n return segment;\n} //# sourceMappingURL=create-router-cache-key.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY3JlYXRlLXJvdXRlci1jYWNoZS1rZXkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBK0Q7QUFDeEQsU0FBU0MscUJBQXFCQyxPQUFPLEVBQUVDLHVCQUF1QjtJQUNqRSxJQUFJQSw0QkFBNEIsS0FBSyxHQUFHQSwwQkFBMEI7SUFDbEUsOERBQThEO0lBQzlELHVHQUF1RztJQUN2RyxJQUFJQyxNQUFNQyxPQUFPLENBQUNILFVBQVU7UUFDeEIsT0FBTyxDQUFDQSxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU1BLE9BQU8sQ0FBQyxFQUFFLEdBQUcsTUFBTUEsT0FBTyxDQUFDLEVBQUUsRUFBRUksV0FBVztJQUN6RTtJQUNBLGtFQUFrRTtJQUNsRSxrRkFBa0Y7SUFDbEYsSUFBSUgsMkJBQTJCRCxRQUFRSyxVQUFVLENBQUNQLGlFQUFnQkEsR0FBRztRQUNqRSxPQUFPQSxpRUFBZ0JBO0lBQzNCO0lBQ0EsT0FBT0U7QUFDWCxFQUVBLG1EQUFtRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY3JlYXRlLXJvdXRlci1jYWNoZS1rZXkuanM/ZTY4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiO1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnQsIHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzKSB7XG4gICAgaWYgKHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzID09PSB2b2lkIDApIHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzID0gZmFsc2U7XG4gICAgLy8gaWYgdGhlIHNlZ21lbnQgaXMgYW4gYXJyYXksIGl0IG1lYW5zIGl0J3MgYSBkeW5hbWljIHNlZ21lbnRcbiAgICAvLyBmb3IgZXhhbXBsZSwgWydsYW5nJywgJ2VuJywgJ2QnXS4gV2UgbmVlZCB0byBjb252ZXJ0IGl0IHRvIGEgc3RyaW5nIHRvIHN0b3JlIGl0IGFzIGEgY2FjaGUgbm9kZSBrZXkuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIChzZWdtZW50WzBdICsgXCJ8XCIgKyBzZWdtZW50WzFdICsgXCJ8XCIgKyBzZWdtZW50WzJdKS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICAvLyBQYWdlIHNlZ21lbnRzIG1pZ2h0IGhhdmUgc2VhcmNoIHBhcmFtZXRlcnMsIGllIF9fUEFHRV9fP2Zvbz1iYXJcbiAgICAvLyBXaGVuIGB3aXRob3V0U2VhcmNoUGFyYW1ldGVyc2AgaXMgdHJ1ZSwgd2Ugb25seSB3YW50IHRvIHJldHVybiB0aGUgcGFnZSBzZWdtZW50XG4gICAgaWYgKHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzICYmIHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgICAgICByZXR1cm4gUEFHRV9TRUdNRU5UX0tFWTtcbiAgICB9XG4gICAgcmV0dXJuIHNlZ21lbnQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1yb3V0ZXItY2FjaGUta2V5LmpzLm1hcCJdLCJuYW1lcyI6WyJQQUdFX1NFR01FTlRfS0VZIiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJzZWdtZW50Iiwid2l0aG91dFNlYXJjaFBhcmFtZXRlcnMiLCJBcnJheSIsImlzQXJyYXkiLCJ0b0xvd2VyQ2FzZSIsInN0YXJ0c1dpdGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js":
-/*!**************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js ***!
- \**************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fetchServerResponse: () => (/* binding */ fetchServerResponse)\n/* harmony export */ });\n/* harmony import */ var _app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _app_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../app-router */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\");\n/* harmony import */ var _app_call_server__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../app-call-server */ \"(ssr)/../../node_modules/next/dist/esm/client/app-call-server.js\");\n/* harmony import */ var _router_reducer_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js\");\n/* harmony import */ var _shared_lib_hash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../shared/lib/hash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/hash.js\");\n/* __next_internal_client_entry_do_not_use__ fetchServerResponse auto */ // @ts-ignore\n// eslint-disable-next-line import/no-extraneous-dependencies\n// import { createFromFetch } from 'react-server-dom-webpack/client'\nconst { createFromFetch } = true ? __webpack_require__(/*! react-server-dom-webpack/client.edge */ \"(ssr)/../../node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js\") : 0;\n\n\n\n\n\nfunction doMpaNavigation(url) {\n return [\n (0,_app_router__WEBPACK_IMPORTED_MODULE_1__.urlToUrlWithoutFlightMarker)(url).toString(),\n undefined\n ];\n}\n/**\n * Fetch the flight data for the provided url. Takes in the current router state to decide what to render server-side.\n */ async function fetchServerResponse(url, flightRouterState, nextUrl, currentBuildId, prefetchKind) {\n const headers = {\n // Enable flight response\n [_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.RSC_HEADER]: \"1\",\n // Provide the current router state\n [_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_ROUTER_STATE_TREE]: encodeURIComponent(JSON.stringify(flightRouterState))\n };\n /**\n * Three cases:\n * - `prefetchKind` is `undefined`, it means it's a normal navigation, so we want to prefetch the page data fully\n * - `prefetchKind` is `full` - we want to prefetch the whole page so same as above\n * - `prefetchKind` is `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully\n */ if (prefetchKind === _router_reducer_types__WEBPACK_IMPORTED_MODULE_3__.PrefetchKind.AUTO) {\n headers[_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_ROUTER_PREFETCH_HEADER] = \"1\";\n }\n if (nextUrl) {\n headers[_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_URL] = nextUrl;\n }\n const uniqueCacheQuery = (0,_shared_lib_hash__WEBPACK_IMPORTED_MODULE_4__.hexHash)([\n headers[_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_ROUTER_PREFETCH_HEADER] || \"0\",\n headers[_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_ROUTER_STATE_TREE],\n headers[_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_URL]\n ].join(\",\"));\n try {\n let fetchUrl = new URL(url);\n if (false) {}\n // Add unique cache query to avoid caching conflicts on CDN which don't respect to Vary header\n fetchUrl.searchParams.set(_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_RSC_UNION_QUERY, uniqueCacheQuery);\n const res = await fetch(fetchUrl, {\n // Backwards compat for older browsers. `same-origin` is the default in modern browsers.\n credentials: \"same-origin\",\n headers\n });\n const responseUrl = (0,_app_router__WEBPACK_IMPORTED_MODULE_1__.urlToUrlWithoutFlightMarker)(res.url);\n const canonicalUrl = res.redirected ? responseUrl : undefined;\n const contentType = res.headers.get(\"content-type\") || \"\";\n const postponed = !!res.headers.get(_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_DID_POSTPONE_HEADER);\n let isFlightResponse = contentType === _app_router_headers__WEBPACK_IMPORTED_MODULE_0__.RSC_CONTENT_TYPE_HEADER;\n if (false) {}\n // If fetch returns something different than flight response handle it like a mpa navigation\n // If the fetch was not 200, we also handle it like a mpa navigation\n if (!isFlightResponse || !res.ok) {\n // in case the original URL came with a hash, preserve it before redirecting to the new URL\n if (url.hash) {\n responseUrl.hash = url.hash;\n }\n return doMpaNavigation(responseUrl.toString());\n }\n // Handle the `fetch` readable stream that can be unwrapped by `React.use`.\n const [buildId, flightData] = await createFromFetch(Promise.resolve(res), {\n callServer: _app_call_server__WEBPACK_IMPORTED_MODULE_2__.callServer\n });\n if (currentBuildId !== buildId) {\n return doMpaNavigation(res.url);\n }\n return [\n flightData,\n canonicalUrl,\n postponed\n ];\n } catch (err) {\n console.error(\"Failed to fetch RSC payload for \" + url + \". Falling back to browser navigation.\", err);\n // If fetch fails handle it like a mpa navigation\n // TODO-APP: Add a test for the case where a CORS request fails, e.g. external url redirect coming from the response.\n // See https://github.com/vercel/next.js/issues/43605#issuecomment-1451617521 for a reproduction.\n return [\n url.toString(),\n undefined\n ];\n }\n} //# sourceMappingURL=fetch-server-response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozt5RUFFQSxhQUFhO0FBQ2IsNkRBQTZEO0FBQzdELG9FQUFvRTtBQUNwRSxNQUFNLEVBQUVBLGVBQWUsRUFBRSxHQUFHLEtBQTBCLEdBQUdJLG1CQUFPQSxDQUFDLGlJQUFzQyxJQUFJQSxDQUEwQztBQUNzQztBQUMvSDtBQUNUO0FBQ0c7QUFDSDtBQUNuRCxTQUFTWSxnQkFBZ0JDLEdBQUc7SUFDeEIsT0FBTztRQUNITCx3RUFBMkJBLENBQUNLLEtBQUtDLFFBQVE7UUFDekNDO0tBQ0g7QUFDTDtBQUNBOztDQUVDLEdBQVUsZUFBZUMsb0JBQW9CSCxHQUFHLEVBQUVJLGlCQUFpQixFQUFFQyxPQUFPLEVBQUVDLGNBQWMsRUFBRUMsWUFBWTtJQUN2RyxNQUFNQyxVQUFVO1FBQ1oseUJBQXlCO1FBQ3pCLENBQUNoQiwyREFBVUEsQ0FBQyxFQUFFO1FBQ2QsbUNBQW1DO1FBQ25DLENBQUNILHVFQUFzQkEsQ0FBQyxFQUFFb0IsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNQO0lBQ2hFO0lBQ0E7Ozs7O0dBS0QsR0FBRyxJQUFJRyxpQkFBaUJWLCtEQUFZQSxDQUFDZSxJQUFJLEVBQUU7UUFDdENKLE9BQU8sQ0FBQ3BCLDRFQUEyQkEsQ0FBQyxHQUFHO0lBQzNDO0lBQ0EsSUFBSWlCLFNBQVM7UUFDVEcsT0FBTyxDQUFDakIseURBQVFBLENBQUMsR0FBR2M7SUFDeEI7SUFDQSxNQUFNUSxtQkFBbUJmLHlEQUFPQSxDQUFDO1FBQzdCVSxPQUFPLENBQUNwQiw0RUFBMkJBLENBQUMsSUFBSTtRQUN4Q29CLE9BQU8sQ0FBQ25CLHVFQUFzQkEsQ0FBQztRQUMvQm1CLE9BQU8sQ0FBQ2pCLHlEQUFRQSxDQUFDO0tBQ3BCLENBQUN1QixJQUFJLENBQUM7SUFDUCxJQUFJO1FBQ0EsSUFBSUMsV0FBVyxJQUFJQyxJQUFJaEI7UUFDdkIsSUFBSWhCLEtBQXFDLEVBQUUsRUFRMUM7UUFDRCw4RkFBOEY7UUFDOUYrQixTQUFTSyxZQUFZLENBQUNDLEdBQUcsQ0FBQy9CLHFFQUFvQkEsRUFBRXVCO1FBQ2hELE1BQU1TLE1BQU0sTUFBTUMsTUFBTVIsVUFBVTtZQUM5Qix3RkFBd0Y7WUFDeEZTLGFBQWE7WUFDYmhCO1FBQ0o7UUFDQSxNQUFNaUIsY0FBYzlCLHdFQUEyQkEsQ0FBQzJCLElBQUl0QixHQUFHO1FBQ3ZELE1BQU0wQixlQUFlSixJQUFJSyxVQUFVLEdBQUdGLGNBQWN2QjtRQUNwRCxNQUFNMEIsY0FBY04sSUFBSWQsT0FBTyxDQUFDcUIsR0FBRyxDQUFDLG1CQUFtQjtRQUN2RCxNQUFNQyxZQUFZLENBQUMsQ0FBQ1IsSUFBSWQsT0FBTyxDQUFDcUIsR0FBRyxDQUFDbkMseUVBQXdCQTtRQUM1RCxJQUFJcUMsbUJBQW1CSCxnQkFBZ0JuQyx3RUFBdUJBO1FBQzlELElBQUlULEtBQXFDLEVBQUUsRUFNMUM7UUFDRCw0RkFBNEY7UUFDNUYsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQytDLG9CQUFvQixDQUFDVCxJQUFJVyxFQUFFLEVBQUU7WUFDOUIsMkZBQTJGO1lBQzNGLElBQUlqQyxJQUFJa0MsSUFBSSxFQUFFO2dCQUNWVCxZQUFZUyxJQUFJLEdBQUdsQyxJQUFJa0MsSUFBSTtZQUMvQjtZQUNBLE9BQU9uQyxnQkFBZ0IwQixZQUFZeEIsUUFBUTtRQUMvQztRQUNBLDJFQUEyRTtRQUMzRSxNQUFNLENBQUNrQyxTQUFTQyxXQUFXLEdBQUcsTUFBTXJELGdCQUFnQnNELFFBQVFDLE9BQU8sQ0FBQ2hCLE1BQU07WUFDdEUxQixVQUFVQSwwREFBQUE7UUFDZDtRQUNBLElBQUlVLG1CQUFtQjZCLFNBQVM7WUFDNUIsT0FBT3BDLGdCQUFnQnVCLElBQUl0QixHQUFHO1FBQ2xDO1FBQ0EsT0FBTztZQUNIb0M7WUFDQVY7WUFDQUk7U0FDSDtJQUNMLEVBQUUsT0FBT1MsS0FBSztRQUNWQyxRQUFRQyxLQUFLLENBQUMscUNBQXFDekMsTUFBTSx5Q0FBeUN1QztRQUNsRyxpREFBaUQ7UUFDakQscUhBQXFIO1FBQ3JILGlHQUFpRztRQUNqRyxPQUFPO1lBQ0h2QyxJQUFJQyxRQUFRO1lBQ1pDO1NBQ0g7SUFDTDtBQUNKLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9mZXRjaC1zZXJ2ZXItcmVzcG9uc2UuanM/NDcyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuLy8gQHRzLWlnbm9yZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuLy8gaW1wb3J0IHsgY3JlYXRlRnJvbUZldGNoIH0gZnJvbSAncmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudCdcbmNvbnN0IHsgY3JlYXRlRnJvbUZldGNoIH0gPSAhIXByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA/IHJlcXVpcmUoXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50LmVkZ2VcIikgOiByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiKTtcbmltcG9ydCB7IE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiwgTkVYVF9ST1VURVJfU1RBVEVfVFJFRSwgTkVYVF9SU0NfVU5JT05fUVVFUlksIE5FWFRfVVJMLCBSU0NfSEVBREVSLCBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiwgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSIH0gZnJvbSBcIi4uL2FwcC1yb3V0ZXItaGVhZGVyc1wiO1xuaW1wb3J0IHsgdXJsVG9VcmxXaXRob3V0RmxpZ2h0TWFya2VyIH0gZnJvbSBcIi4uL2FwcC1yb3V0ZXJcIjtcbmltcG9ydCB7IGNhbGxTZXJ2ZXIgfSBmcm9tIFwiLi4vLi4vYXBwLWNhbGwtc2VydmVyXCI7XG5pbXBvcnQgeyBQcmVmZXRjaEtpbmQgfSBmcm9tIFwiLi9yb3V0ZXItcmVkdWNlci10eXBlc1wiO1xuaW1wb3J0IHsgaGV4SGFzaCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvbGliL2hhc2hcIjtcbmZ1bmN0aW9uIGRvTXBhTmF2aWdhdGlvbih1cmwpIHtcbiAgICByZXR1cm4gW1xuICAgICAgICB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIodXJsKS50b1N0cmluZygpLFxuICAgICAgICB1bmRlZmluZWRcbiAgICBdO1xufVxuLyoqXG4gKiBGZXRjaCB0aGUgZmxpZ2h0IGRhdGEgZm9yIHRoZSBwcm92aWRlZCB1cmwuIFRha2VzIGluIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZSB0byBkZWNpZGUgd2hhdCB0byByZW5kZXIgc2VydmVyLXNpZGUuXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoU2VydmVyUmVzcG9uc2UodXJsLCBmbGlnaHRSb3V0ZXJTdGF0ZSwgbmV4dFVybCwgY3VycmVudEJ1aWxkSWQsIHByZWZldGNoS2luZCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAgIC8vIEVuYWJsZSBmbGlnaHQgcmVzcG9uc2VcbiAgICAgICAgW1JTQ19IRUFERVJdOiBcIjFcIixcbiAgICAgICAgLy8gUHJvdmlkZSB0aGUgY3VycmVudCByb3V0ZXIgc3RhdGVcbiAgICAgICAgW05FWFRfUk9VVEVSX1NUQVRFX1RSRUVdOiBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmxpZ2h0Um91dGVyU3RhdGUpKVxuICAgIH07XG4gICAgLyoqXG4gICAqIFRocmVlIGNhc2VzOlxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGB1bmRlZmluZWRgLCBpdCBtZWFucyBpdCdzIGEgbm9ybWFsIG5hdmlnYXRpb24sIHNvIHdlIHdhbnQgdG8gcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseVxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGBmdWxsYCAtIHdlIHdhbnQgdG8gcHJlZmV0Y2ggdGhlIHdob2xlIHBhZ2Ugc28gc2FtZSBhcyBhYm92ZVxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGBhdXRvYCAtIGlmIHRoZSBwYWdlIGlzIGR5bmFtaWMsIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgcGFydGlhbGx5LCBpZiBzdGF0aWMgcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseVxuICAgKi8gaWYgKHByZWZldGNoS2luZCA9PT0gUHJlZmV0Y2hLaW5kLkFVVE8pIHtcbiAgICAgICAgaGVhZGVyc1tORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVJdID0gXCIxXCI7XG4gICAgfVxuICAgIGlmIChuZXh0VXJsKSB7XG4gICAgICAgIGhlYWRlcnNbTkVYVF9VUkxdID0gbmV4dFVybDtcbiAgICB9XG4gICAgY29uc3QgdW5pcXVlQ2FjaGVRdWVyeSA9IGhleEhhc2goW1xuICAgICAgICBoZWFkZXJzW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0gfHwgXCIwXCIsXG4gICAgICAgIGhlYWRlcnNbTkVYVF9ST1VURVJfU1RBVEVfVFJFRV0sXG4gICAgICAgIGhlYWRlcnNbTkVYVF9VUkxdXG4gICAgXS5qb2luKFwiLFwiKSk7XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IGZldGNoVXJsID0gbmV3IFVSTCh1cmwpO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NPTkZJR19PVVRQVVQgPT09IFwiZXhwb3J0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZmV0Y2hVcmwucGF0aG5hbWUuZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZldGNoVXJsLnBhdGhuYW1lICs9IFwiaW5kZXgudHh0XCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2hVcmwucGF0aG5hbWUgKz0gXCIudHh0XCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEFkZCB1bmlxdWUgY2FjaGUgcXVlcnkgdG8gYXZvaWQgY2FjaGluZyBjb25mbGljdHMgb24gQ0ROIHdoaWNoIGRvbid0IHJlc3BlY3QgdG8gVmFyeSBoZWFkZXJcbiAgICAgICAgZmV0Y2hVcmwuc2VhcmNoUGFyYW1zLnNldChORVhUX1JTQ19VTklPTl9RVUVSWSwgdW5pcXVlQ2FjaGVRdWVyeSk7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGZldGNoVXJsLCB7XG4gICAgICAgICAgICAvLyBCYWNrd2FyZHMgY29tcGF0IGZvciBvbGRlciBicm93c2Vycy4gYHNhbWUtb3JpZ2luYCBpcyB0aGUgZGVmYXVsdCBpbiBtb2Rlcm4gYnJvd3NlcnMuXG4gICAgICAgICAgICBjcmVkZW50aWFsczogXCJzYW1lLW9yaWdpblwiLFxuICAgICAgICAgICAgaGVhZGVyc1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2VVcmwgPSB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIocmVzLnVybCk7XG4gICAgICAgIGNvbnN0IGNhbm9uaWNhbFVybCA9IHJlcy5yZWRpcmVjdGVkID8gcmVzcG9uc2VVcmwgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KFwiY29udGVudC10eXBlXCIpIHx8IFwiXCI7XG4gICAgICAgIGNvbnN0IHBvc3Rwb25lZCA9ICEhcmVzLmhlYWRlcnMuZ2V0KE5FWFRfRElEX1BPU1RQT05FX0hFQURFUik7XG4gICAgICAgIGxldCBpc0ZsaWdodFJlc3BvbnNlID0gY29udGVudFR5cGUgPT09IFJTQ19DT05URU5UX1RZUEVfSEVBREVSO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NPTkZJR19PVVRQVVQgPT09IFwiZXhwb3J0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzRmxpZ2h0UmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNGbGlnaHRSZXNwb25zZSA9IGNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoXCJ0ZXh0L3BsYWluXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBmZXRjaCByZXR1cm5zIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiBmbGlnaHQgcmVzcG9uc2UgaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgICAgICAvLyBJZiB0aGUgZmV0Y2ggd2FzIG5vdCAyMDAsIHdlIGFsc28gaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgICAgICBpZiAoIWlzRmxpZ2h0UmVzcG9uc2UgfHwgIXJlcy5vaykge1xuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGUgb3JpZ2luYWwgVVJMIGNhbWUgd2l0aCBhIGhhc2gsIHByZXNlcnZlIGl0IGJlZm9yZSByZWRpcmVjdGluZyB0byB0aGUgbmV3IFVSTFxuICAgICAgICAgICAgaWYgKHVybC5oYXNoKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VVcmwuaGFzaCA9IHVybC5oYXNoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGRvTXBhTmF2aWdhdGlvbihyZXNwb25zZVVybC50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBIYW5kbGUgdGhlIGBmZXRjaGAgcmVhZGFibGUgc3RyZWFtIHRoYXQgY2FuIGJlIHVud3JhcHBlZCBieSBgUmVhY3QudXNlYC5cbiAgICAgICAgY29uc3QgW2J1aWxkSWQsIGZsaWdodERhdGFdID0gYXdhaXQgY3JlYXRlRnJvbUZldGNoKFByb21pc2UucmVzb2x2ZShyZXMpLCB7XG4gICAgICAgICAgICBjYWxsU2VydmVyXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY3VycmVudEJ1aWxkSWQgIT09IGJ1aWxkSWQpIHtcbiAgICAgICAgICAgIHJldHVybiBkb01wYU5hdmlnYXRpb24ocmVzLnVybCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIGZsaWdodERhdGEsXG4gICAgICAgICAgICBjYW5vbmljYWxVcmwsXG4gICAgICAgICAgICBwb3N0cG9uZWRcbiAgICAgICAgXTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBmZXRjaCBSU0MgcGF5bG9hZCBmb3IgXCIgKyB1cmwgKyBcIi4gRmFsbGluZyBiYWNrIHRvIGJyb3dzZXIgbmF2aWdhdGlvbi5cIiwgZXJyKTtcbiAgICAgICAgLy8gSWYgZmV0Y2ggZmFpbHMgaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgICAgICAvLyBUT0RPLUFQUDogQWRkIGEgdGVzdCBmb3IgdGhlIGNhc2Ugd2hlcmUgYSBDT1JTIHJlcXVlc3QgZmFpbHMsIGUuZy4gZXh0ZXJuYWwgdXJsIHJlZGlyZWN0IGNvbWluZyBmcm9tIHRoZSByZXNwb25zZS5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNDM2MDUjaXNzdWVjb21tZW50LTE0NTE2MTc1MjEgZm9yIGEgcmVwcm9kdWN0aW9uLlxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdXJsLnRvU3RyaW5nKCksXG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZldGNoLXNlcnZlci1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlRnJvbUZldGNoIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsInJlcXVpcmUiLCJORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJORVhUX1VSTCIsIlJTQ19IRUFERVIiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIk5FWFRfRElEX1BPU1RQT05FX0hFQURFUiIsInVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlciIsImNhbGxTZXJ2ZXIiLCJQcmVmZXRjaEtpbmQiLCJoZXhIYXNoIiwiZG9NcGFOYXZpZ2F0aW9uIiwidXJsIiwidG9TdHJpbmciLCJ1bmRlZmluZWQiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJuZXh0VXJsIiwiY3VycmVudEJ1aWxkSWQiLCJwcmVmZXRjaEtpbmQiLCJoZWFkZXJzIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsIkFVVE8iLCJ1bmlxdWVDYWNoZVF1ZXJ5Iiwiam9pbiIsImZldGNoVXJsIiwiVVJMIiwiX19ORVhUX0NPTkZJR19PVVRQVVQiLCJwYXRobmFtZSIsImVuZHNXaXRoIiwic2VhcmNoUGFyYW1zIiwic2V0IiwicmVzIiwiZmV0Y2giLCJjcmVkZW50aWFscyIsInJlc3BvbnNlVXJsIiwiY2Fub25pY2FsVXJsIiwicmVkaXJlY3RlZCIsImNvbnRlbnRUeXBlIiwiZ2V0IiwicG9zdHBvbmVkIiwiaXNGbGlnaHRSZXNwb25zZSIsInN0YXJ0c1dpdGgiLCJvayIsImhhc2giLCJidWlsZElkIiwiZmxpZ2h0RGF0YSIsIlByb21pc2UiLCJyZXNvbHZlIiwiZXJyIiwiY29uc29sZSIsImVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-data-property.js":
-/*!**********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-data-property.js ***!
- \**********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillCacheWithDataProperty: () => (/* binding */ fillCacheWithDataProperty)\n/* harmony export */ });\n/* harmony import */ var _create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\");\n\n/**\n * Kick off fetch based on the common layout between two routes. Fill cache with data property holding the in-progress fetch.\n */ function fillCacheWithDataProperty(newCache, existingCache, flightSegmentPath, fetchResponse) {\n const isLastEntry = flightSegmentPath.length <= 2;\n const [parallelRouteKey, segment] = flightSegmentPath;\n const cacheKey = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__.createRouterCacheKey)(segment);\n const existingChildSegmentMap = existingCache.parallelRoutes.get(parallelRouteKey);\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey);\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap);\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap);\n }\n const existingChildCacheNode = existingChildSegmentMap == null ? void 0 : existingChildSegmentMap.get(cacheKey);\n let childCacheNode = childSegmentMap.get(cacheKey);\n // In case of last segment start off the fetch at this level and don't copy further down.\n if (isLastEntry) {\n if (!childCacheNode || !childCacheNode.lazyData || childCacheNode === existingChildCacheNode) {\n childSegmentMap.set(cacheKey, {\n lazyData: fetchResponse(),\n rsc: null,\n prefetchRsc: null,\n parallelRoutes: new Map()\n });\n }\n return;\n }\n if (!childCacheNode || !existingChildCacheNode) {\n // Start fetch in the place where the existing cache doesn't have the data yet.\n if (!childCacheNode) {\n childSegmentMap.set(cacheKey, {\n lazyData: fetchResponse(),\n rsc: null,\n prefetchRsc: null,\n parallelRoutes: new Map()\n });\n }\n return;\n }\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n parallelRoutes: new Map(childCacheNode.parallelRoutes)\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n return fillCacheWithDataProperty(childCacheNode, existingChildCacheNode, flightSegmentPath.slice(2), fetchResponse);\n} //# sourceMappingURL=fill-cache-with-data-property.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmlsbC1jYWNoZS13aXRoLWRhdGEtcHJvcGVydHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUU7QUFDakU7O0NBRUMsR0FBVSxTQUFTQywwQkFBMEJDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxpQkFBaUIsRUFBRUMsYUFBYTtJQUNuRyxNQUFNQyxjQUFjRixrQkFBa0JHLE1BQU0sSUFBSTtJQUNoRCxNQUFNLENBQUNDLGtCQUFrQkMsUUFBUSxHQUFHTDtJQUNwQyxNQUFNTSxXQUFXViw4RUFBb0JBLENBQUNTO0lBQ3RDLE1BQU1FLDBCQUEwQlIsY0FBY1MsY0FBYyxDQUFDQyxHQUFHLENBQUNMO0lBQ2pFLElBQUlNLGtCQUFrQlosU0FBU1UsY0FBYyxDQUFDQyxHQUFHLENBQUNMO0lBQ2xELElBQUksQ0FBQ00sbUJBQW1CQSxvQkFBb0JILHlCQUF5QjtRQUNqRUcsa0JBQWtCLElBQUlDLElBQUlKO1FBQzFCVCxTQUFTVSxjQUFjLENBQUNJLEdBQUcsQ0FBQ1Isa0JBQWtCTTtJQUNsRDtJQUNBLE1BQU1HLHlCQUF5Qk4sMkJBQTJCLE9BQU8sS0FBSyxJQUFJQSx3QkFBd0JFLEdBQUcsQ0FBQ0g7SUFDdEcsSUFBSVEsaUJBQWlCSixnQkFBZ0JELEdBQUcsQ0FBQ0g7SUFDekMseUZBQXlGO0lBQ3pGLElBQUlKLGFBQWE7UUFDYixJQUFJLENBQUNZLGtCQUFrQixDQUFDQSxlQUFlQyxRQUFRLElBQUlELG1CQUFtQkQsd0JBQXdCO1lBQzFGSCxnQkFBZ0JFLEdBQUcsQ0FBQ04sVUFBVTtnQkFDMUJTLFVBQVVkO2dCQUNWZSxLQUFLO2dCQUNMQyxhQUFhO2dCQUNiVCxnQkFBZ0IsSUFBSUc7WUFDeEI7UUFDSjtRQUNBO0lBQ0o7SUFDQSxJQUFJLENBQUNHLGtCQUFrQixDQUFDRCx3QkFBd0I7UUFDNUMsK0VBQStFO1FBQy9FLElBQUksQ0FBQ0MsZ0JBQWdCO1lBQ2pCSixnQkFBZ0JFLEdBQUcsQ0FBQ04sVUFBVTtnQkFDMUJTLFVBQVVkO2dCQUNWZSxLQUFLO2dCQUNMQyxhQUFhO2dCQUNiVCxnQkFBZ0IsSUFBSUc7WUFDeEI7UUFDSjtRQUNBO0lBQ0o7SUFDQSxJQUFJRyxtQkFBbUJELHdCQUF3QjtRQUMzQ0MsaUJBQWlCO1lBQ2JDLFVBQVVELGVBQWVDLFFBQVE7WUFDakNDLEtBQUtGLGVBQWVFLEdBQUc7WUFDdkJDLGFBQWFILGVBQWVHLFdBQVc7WUFDdkNULGdCQUFnQixJQUFJRyxJQUFJRyxlQUFlTixjQUFjO1FBQ3pEO1FBQ0FFLGdCQUFnQkUsR0FBRyxDQUFDTixVQUFVUTtJQUNsQztJQUNBLE9BQU9qQiwwQkFBMEJpQixnQkFBZ0JELHdCQUF3QmIsa0JBQWtCa0IsS0FBSyxDQUFDLElBQUlqQjtBQUN6RyxFQUVBLHlEQUF5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmlsbC1jYWNoZS13aXRoLWRhdGEtcHJvcGVydHkuanM/Y2NmMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gXCIuL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5XCI7XG4vKipcbiAqIEtpY2sgb2ZmIGZldGNoIGJhc2VkIG9uIHRoZSBjb21tb24gbGF5b3V0IGJldHdlZW4gdHdvIHJvdXRlcy4gRmlsbCBjYWNoZSB3aXRoIGRhdGEgcHJvcGVydHkgaG9sZGluZyB0aGUgaW4tcHJvZ3Jlc3MgZmV0Y2guXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGZpbGxDYWNoZVdpdGhEYXRhUHJvcGVydHkobmV3Q2FjaGUsIGV4aXN0aW5nQ2FjaGUsIGZsaWdodFNlZ21lbnRQYXRoLCBmZXRjaFJlc3BvbnNlKSB7XG4gICAgY29uc3QgaXNMYXN0RW50cnkgPSBmbGlnaHRTZWdtZW50UGF0aC5sZW5ndGggPD0gMjtcbiAgICBjb25zdCBbcGFyYWxsZWxSb3V0ZUtleSwgc2VnbWVudF0gPSBmbGlnaHRTZWdtZW50UGF0aDtcbiAgICBjb25zdCBjYWNoZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnQpO1xuICAgIGNvbnN0IGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwID0gZXhpc3RpbmdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSk7XG4gICAgbGV0IGNoaWxkU2VnbWVudE1hcCA9IG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KTtcbiAgICBpZiAoIWNoaWxkU2VnbWVudE1hcCB8fCBjaGlsZFNlZ21lbnRNYXAgPT09IGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwKSB7XG4gICAgICAgIGNoaWxkU2VnbWVudE1hcCA9IG5ldyBNYXAoZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApO1xuICAgICAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5zZXQocGFyYWxsZWxSb3V0ZUtleSwgY2hpbGRTZWdtZW50TWFwKTtcbiAgICB9XG4gICAgY29uc3QgZXhpc3RpbmdDaGlsZENhY2hlTm9kZSA9IGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwID09IG51bGwgPyB2b2lkIDAgOiBleGlzdGluZ0NoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpO1xuICAgIGxldCBjaGlsZENhY2hlTm9kZSA9IGNoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpO1xuICAgIC8vIEluIGNhc2Ugb2YgbGFzdCBzZWdtZW50IHN0YXJ0IG9mZiB0aGUgZmV0Y2ggYXQgdGhpcyBsZXZlbCBhbmQgZG9uJ3QgY29weSBmdXJ0aGVyIGRvd24uXG4gICAgaWYgKGlzTGFzdEVudHJ5KSB7XG4gICAgICAgIGlmICghY2hpbGRDYWNoZU5vZGUgfHwgIWNoaWxkQ2FjaGVOb2RlLmxhenlEYXRhIHx8IGNoaWxkQ2FjaGVOb2RlID09PSBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKSB7XG4gICAgICAgICAgICBjaGlsZFNlZ21lbnRNYXAuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgICAgbGF6eURhdGE6IGZldGNoUmVzcG9uc2UoKSxcbiAgICAgICAgICAgICAgICByc2M6IG51bGwsXG4gICAgICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWNoaWxkQ2FjaGVOb2RlIHx8ICFleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKSB7XG4gICAgICAgIC8vIFN0YXJ0IGZldGNoIGluIHRoZSBwbGFjZSB3aGVyZSB0aGUgZXhpc3RpbmcgY2FjaGUgZG9lc24ndCBoYXZlIHRoZSBkYXRhIHlldC5cbiAgICAgICAgaWYgKCFjaGlsZENhY2hlTm9kZSkge1xuICAgICAgICAgICAgY2hpbGRTZWdtZW50TWFwLnNldChjYWNoZUtleSwge1xuICAgICAgICAgICAgICAgIGxhenlEYXRhOiBmZXRjaFJlc3BvbnNlKCksXG4gICAgICAgICAgICAgICAgcnNjOiBudWxsLFxuICAgICAgICAgICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICAgICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoaWxkQ2FjaGVOb2RlID09PSBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKSB7XG4gICAgICAgIGNoaWxkQ2FjaGVOb2RlID0ge1xuICAgICAgICAgICAgbGF6eURhdGE6IGNoaWxkQ2FjaGVOb2RlLmxhenlEYXRhLFxuICAgICAgICAgICAgcnNjOiBjaGlsZENhY2hlTm9kZS5yc2MsXG4gICAgICAgICAgICBwcmVmZXRjaFJzYzogY2hpbGRDYWNoZU5vZGUucHJlZmV0Y2hSc2MsXG4gICAgICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcChjaGlsZENhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcylcbiAgICAgICAgfTtcbiAgICAgICAgY2hpbGRTZWdtZW50TWFwLnNldChjYWNoZUtleSwgY2hpbGRDYWNoZU5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsbENhY2hlV2l0aERhdGFQcm9wZXJ0eShjaGlsZENhY2hlTm9kZSwgZXhpc3RpbmdDaGlsZENhY2hlTm9kZSwgZmxpZ2h0U2VnbWVudFBhdGguc2xpY2UoMiksIGZldGNoUmVzcG9uc2UpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1maWxsLWNhY2hlLXdpdGgtZGF0YS1wcm9wZXJ0eS5qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJmaWxsQ2FjaGVXaXRoRGF0YVByb3BlcnR5IiwibmV3Q2FjaGUiLCJleGlzdGluZ0NhY2hlIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJmZXRjaFJlc3BvbnNlIiwiaXNMYXN0RW50cnkiLCJsZW5ndGgiLCJwYXJhbGxlbFJvdXRlS2V5Iiwic2VnbWVudCIsImNhY2hlS2V5IiwiZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAiLCJwYXJhbGxlbFJvdXRlcyIsImdldCIsImNoaWxkU2VnbWVudE1hcCIsIk1hcCIsInNldCIsImV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUiLCJjaGlsZENhY2hlTm9kZSIsImxhenlEYXRhIiwicnNjIiwicHJlZmV0Y2hSc2MiLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-data-property.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-new-subtree-data.js":
-/*!*************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-new-subtree-data.js ***!
- \*************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillCacheWithNewSubTreeData: () => (/* binding */ fillCacheWithNewSubTreeData)\n/* harmony export */ });\n/* harmony import */ var _invalidate_cache_by_router_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invalidate-cache-by-router-state */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-by-router-state.js\");\n/* harmony import */ var _fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fill-lazy-items-till-leaf-with-head */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\n/* harmony import */ var _create_router_cache_key__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\");\n\n\n\n/**\n * Fill cache with rsc based on flightDataPath\n */ function fillCacheWithNewSubTreeData(newCache, existingCache, flightDataPath, wasPrefetched) {\n const isLastEntry = flightDataPath.length <= 5;\n const [parallelRouteKey, segment] = flightDataPath;\n const cacheKey = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_2__.createRouterCacheKey)(segment);\n const existingChildSegmentMap = existingCache.parallelRoutes.get(parallelRouteKey);\n if (!existingChildSegmentMap) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return;\n }\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey);\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap);\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap);\n }\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey);\n let childCacheNode = childSegmentMap.get(cacheKey);\n if (isLastEntry) {\n if (!childCacheNode || !childCacheNode.lazyData || childCacheNode === existingChildCacheNode) {\n const seedData = flightDataPath[3];\n const rsc = seedData[2];\n childCacheNode = {\n lazyData: null,\n rsc,\n prefetchRsc: null,\n // Ensure segments other than the one we got data for are preserved.\n parallelRoutes: existingChildCacheNode ? new Map(existingChildCacheNode.parallelRoutes) : new Map()\n };\n if (existingChildCacheNode) {\n (0,_invalidate_cache_by_router_state__WEBPACK_IMPORTED_MODULE_0__.invalidateCacheByRouterState)(childCacheNode, existingChildCacheNode, flightDataPath[2]);\n }\n (0,_fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_1__.fillLazyItemsTillLeafWithHead)(childCacheNode, existingChildCacheNode, flightDataPath[2], seedData, flightDataPath[4], wasPrefetched);\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n return;\n }\n if (!childCacheNode || !existingChildCacheNode) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return;\n }\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n parallelRoutes: new Map(childCacheNode.parallelRoutes)\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n fillCacheWithNewSubTreeData(childCacheNode, existingChildCacheNode, flightDataPath.slice(2), wasPrefetched);\n} //# sourceMappingURL=fill-cache-with-new-subtree-data.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmlsbC1jYWNoZS13aXRoLW5ldy1zdWJ0cmVlLWRhdGEuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFrRjtBQUNJO0FBQ3JCO0FBQ2pFOztDQUVDLEdBQVUsU0FBU0csNEJBQTRCQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMsY0FBYyxFQUFFQyxhQUFhO0lBQ2xHLE1BQU1DLGNBQWNGLGVBQWVHLE1BQU0sSUFBSTtJQUM3QyxNQUFNLENBQUNDLGtCQUFrQkMsUUFBUSxHQUFHTDtJQUNwQyxNQUFNTSxXQUFXViw4RUFBb0JBLENBQUNTO0lBQ3RDLE1BQU1FLDBCQUEwQlIsY0FBY1MsY0FBYyxDQUFDQyxHQUFHLENBQUNMO0lBQ2pFLElBQUksQ0FBQ0cseUJBQXlCO1FBQzFCLDZFQUE2RTtRQUM3RSxzRUFBc0U7UUFDdEU7SUFDSjtJQUNBLElBQUlHLGtCQUFrQlosU0FBU1UsY0FBYyxDQUFDQyxHQUFHLENBQUNMO0lBQ2xELElBQUksQ0FBQ00sbUJBQW1CQSxvQkFBb0JILHlCQUF5QjtRQUNqRUcsa0JBQWtCLElBQUlDLElBQUlKO1FBQzFCVCxTQUFTVSxjQUFjLENBQUNJLEdBQUcsQ0FBQ1Isa0JBQWtCTTtJQUNsRDtJQUNBLE1BQU1HLHlCQUF5Qk4sd0JBQXdCRSxHQUFHLENBQUNIO0lBQzNELElBQUlRLGlCQUFpQkosZ0JBQWdCRCxHQUFHLENBQUNIO0lBQ3pDLElBQUlKLGFBQWE7UUFDYixJQUFJLENBQUNZLGtCQUFrQixDQUFDQSxlQUFlQyxRQUFRLElBQUlELG1CQUFtQkQsd0JBQXdCO1lBQzFGLE1BQU1HLFdBQVdoQixjQUFjLENBQUMsRUFBRTtZQUNsQyxNQUFNaUIsTUFBTUQsUUFBUSxDQUFDLEVBQUU7WUFDdkJGLGlCQUFpQjtnQkFDYkMsVUFBVTtnQkFDVkU7Z0JBQ0FDLGFBQWE7Z0JBQ2Isb0VBQW9FO2dCQUNwRVYsZ0JBQWdCSyx5QkFBeUIsSUFBSUYsSUFBSUUsdUJBQXVCTCxjQUFjLElBQUksSUFBSUc7WUFDbEc7WUFDQSxJQUFJRSx3QkFBd0I7Z0JBQ3hCbkIsK0ZBQTRCQSxDQUFDb0IsZ0JBQWdCRCx3QkFBd0JiLGNBQWMsQ0FBQyxFQUFFO1lBQzFGO1lBQ0FMLG1HQUE2QkEsQ0FBQ21CLGdCQUFnQkQsd0JBQXdCYixjQUFjLENBQUMsRUFBRSxFQUFFZ0IsVUFBVWhCLGNBQWMsQ0FBQyxFQUFFLEVBQUVDO1lBQ3RIUyxnQkFBZ0JFLEdBQUcsQ0FBQ04sVUFBVVE7UUFDbEM7UUFDQTtJQUNKO0lBQ0EsSUFBSSxDQUFDQSxrQkFBa0IsQ0FBQ0Qsd0JBQXdCO1FBQzVDLDZFQUE2RTtRQUM3RSxzRUFBc0U7UUFDdEU7SUFDSjtJQUNBLElBQUlDLG1CQUFtQkQsd0JBQXdCO1FBQzNDQyxpQkFBaUI7WUFDYkMsVUFBVUQsZUFBZUMsUUFBUTtZQUNqQ0UsS0FBS0gsZUFBZUcsR0FBRztZQUN2QkMsYUFBYUosZUFBZUksV0FBVztZQUN2Q1YsZ0JBQWdCLElBQUlHLElBQUlHLGVBQWVOLGNBQWM7UUFDekQ7UUFDQUUsZ0JBQWdCRSxHQUFHLENBQUNOLFVBQVVRO0lBQ2xDO0lBQ0FqQiw0QkFBNEJpQixnQkFBZ0JELHdCQUF3QmIsZUFBZW1CLEtBQUssQ0FBQyxJQUFJbEI7QUFDakcsRUFFQSw0REFBNEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZpbGwtY2FjaGUtd2l0aC1uZXctc3VidHJlZS1kYXRhLmpzPzRkMzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YWxpZGF0ZUNhY2hlQnlSb3V0ZXJTdGF0ZSB9IGZyb20gXCIuL2ludmFsaWRhdGUtY2FjaGUtYnktcm91dGVyLXN0YXRlXCI7XG5pbXBvcnQgeyBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCB9IGZyb20gXCIuL2ZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkXCI7XG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gXCIuL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5XCI7XG4vKipcbiAqIEZpbGwgY2FjaGUgd2l0aCByc2MgYmFzZWQgb24gZmxpZ2h0RGF0YVBhdGhcbiAqLyBleHBvcnQgZnVuY3Rpb24gZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhKG5ld0NhY2hlLCBleGlzdGluZ0NhY2hlLCBmbGlnaHREYXRhUGF0aCwgd2FzUHJlZmV0Y2hlZCkge1xuICAgIGNvbnN0IGlzTGFzdEVudHJ5ID0gZmxpZ2h0RGF0YVBhdGgubGVuZ3RoIDw9IDU7XG4gICAgY29uc3QgW3BhcmFsbGVsUm91dGVLZXksIHNlZ21lbnRdID0gZmxpZ2h0RGF0YVBhdGg7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50KTtcbiAgICBjb25zdCBleGlzdGluZ0NoaWxkU2VnbWVudE1hcCA9IGV4aXN0aW5nQ2FjaGUucGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVLZXkpO1xuICAgIGlmICghZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApIHtcbiAgICAgICAgLy8gQmFpbG91dCBiZWNhdXNlIHRoZSBleGlzdGluZyBjYWNoZSBkb2VzIG5vdCBoYXZlIHRoZSBwYXRoIHRvIHRoZSBsZWFmIG5vZGVcbiAgICAgICAgLy8gV2lsbCB0cmlnZ2VyIGxhenkgZmV0Y2ggaW4gbGF5b3V0LXJvdXRlciBiZWNhdXNlIG9mIG1pc3Npbmcgc2VnbWVudFxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBjaGlsZFNlZ21lbnRNYXAgPSBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSk7XG4gICAgaWYgKCFjaGlsZFNlZ21lbnRNYXAgfHwgY2hpbGRTZWdtZW50TWFwID09PSBleGlzdGluZ0NoaWxkU2VnbWVudE1hcCkge1xuICAgICAgICBjaGlsZFNlZ21lbnRNYXAgPSBuZXcgTWFwKGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwKTtcbiAgICAgICAgbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuc2V0KHBhcmFsbGVsUm91dGVLZXksIGNoaWxkU2VnbWVudE1hcCk7XG4gICAgfVxuICAgIGNvbnN0IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUgPSBleGlzdGluZ0NoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpO1xuICAgIGxldCBjaGlsZENhY2hlTm9kZSA9IGNoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChpc0xhc3RFbnRyeSkge1xuICAgICAgICBpZiAoIWNoaWxkQ2FjaGVOb2RlIHx8ICFjaGlsZENhY2hlTm9kZS5sYXp5RGF0YSB8fCBjaGlsZENhY2hlTm9kZSA9PT0gZXhpc3RpbmdDaGlsZENhY2hlTm9kZSkge1xuICAgICAgICAgICAgY29uc3Qgc2VlZERhdGEgPSBmbGlnaHREYXRhUGF0aFszXTtcbiAgICAgICAgICAgIGNvbnN0IHJzYyA9IHNlZWREYXRhWzJdO1xuICAgICAgICAgICAgY2hpbGRDYWNoZU5vZGUgPSB7XG4gICAgICAgICAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgICAgICAgICAgcnNjLFxuICAgICAgICAgICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSBzZWdtZW50cyBvdGhlciB0aGFuIHRoZSBvbmUgd2UgZ290IGRhdGEgZm9yIGFyZSBwcmVzZXJ2ZWQuXG4gICAgICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUgPyBuZXcgTWFwKGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMpIDogbmV3IE1hcCgpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUpIHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlQ2FjaGVCeVJvdXRlclN0YXRlKGNoaWxkQ2FjaGVOb2RlLCBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlLCBmbGlnaHREYXRhUGF0aFsyXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZChjaGlsZENhY2hlTm9kZSwgZXhpc3RpbmdDaGlsZENhY2hlTm9kZSwgZmxpZ2h0RGF0YVBhdGhbMl0sIHNlZWREYXRhLCBmbGlnaHREYXRhUGF0aFs0XSwgd2FzUHJlZmV0Y2hlZCk7XG4gICAgICAgICAgICBjaGlsZFNlZ21lbnRNYXAuc2V0KGNhY2hlS2V5LCBjaGlsZENhY2hlTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWNoaWxkQ2FjaGVOb2RlIHx8ICFleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKSB7XG4gICAgICAgIC8vIEJhaWxvdXQgYmVjYXVzZSB0aGUgZXhpc3RpbmcgY2FjaGUgZG9lcyBub3QgaGF2ZSB0aGUgcGF0aCB0byB0aGUgbGVhZiBub2RlXG4gICAgICAgIC8vIFdpbGwgdHJpZ2dlciBsYXp5IGZldGNoIGluIGxheW91dC1yb3V0ZXIgYmVjYXVzZSBvZiBtaXNzaW5nIHNlZ21lbnRcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY2hpbGRDYWNoZU5vZGUgPT09IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUpIHtcbiAgICAgICAgY2hpbGRDYWNoZU5vZGUgPSB7XG4gICAgICAgICAgICBsYXp5RGF0YTogY2hpbGRDYWNoZU5vZGUubGF6eURhdGEsXG4gICAgICAgICAgICByc2M6IGNoaWxkQ2FjaGVOb2RlLnJzYyxcbiAgICAgICAgICAgIHByZWZldGNoUnNjOiBjaGlsZENhY2hlTm9kZS5wcmVmZXRjaFJzYyxcbiAgICAgICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKGNoaWxkQ2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzKVxuICAgICAgICB9O1xuICAgICAgICBjaGlsZFNlZ21lbnRNYXAuc2V0KGNhY2hlS2V5LCBjaGlsZENhY2hlTm9kZSk7XG4gICAgfVxuICAgIGZpbGxDYWNoZVdpdGhOZXdTdWJUcmVlRGF0YShjaGlsZENhY2hlTm9kZSwgZXhpc3RpbmdDaGlsZENhY2hlTm9kZSwgZmxpZ2h0RGF0YVBhdGguc2xpY2UoMiksIHdhc1ByZWZldGNoZWQpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1maWxsLWNhY2hlLXdpdGgtbmV3LXN1YnRyZWUtZGF0YS5qcy5tYXAiXSwibmFtZXMiOlsiaW52YWxpZGF0ZUNhY2hlQnlSb3V0ZXJTdGF0ZSIsImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGEiLCJuZXdDYWNoZSIsImV4aXN0aW5nQ2FjaGUiLCJmbGlnaHREYXRhUGF0aCIsIndhc1ByZWZldGNoZWQiLCJpc0xhc3RFbnRyeSIsImxlbmd0aCIsInBhcmFsbGVsUm91dGVLZXkiLCJzZWdtZW50IiwiY2FjaGVLZXkiLCJleGlzdGluZ0NoaWxkU2VnbWVudE1hcCIsInBhcmFsbGVsUm91dGVzIiwiZ2V0IiwiY2hpbGRTZWdtZW50TWFwIiwiTWFwIiwic2V0IiwiZXhpc3RpbmdDaGlsZENhY2hlTm9kZSIsImNoaWxkQ2FjaGVOb2RlIiwibGF6eURhdGEiLCJzZWVkRGF0YSIsInJzYyIsInByZWZldGNoUnNjIiwic2xpY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-new-subtree-data.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js":
-/*!****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js ***!
- \****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillLazyItemsTillLeafWithHead: () => (/* binding */ fillLazyItemsTillLeafWithHead)\n/* harmony export */ });\n/* harmony import */ var _create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\");\n\nfunction fillLazyItemsTillLeafWithHead(newCache, existingCache, routerState, cacheNodeSeedData, head, wasPrefetched) {\n const isLastSegment = Object.keys(routerState[1]).length === 0;\n if (isLastSegment) {\n newCache.head = head;\n return;\n }\n // Remove segment that we got data for so that it is filled in during rendering of rsc.\n for(const key in routerState[1]){\n const parallelRouteState = routerState[1][key];\n const segmentForParallelRoute = parallelRouteState[0];\n const cacheKey = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__.createRouterCacheKey)(segmentForParallelRoute);\n // TODO: We should traverse the cacheNodeSeedData tree instead of the router\n // state tree. Ideally, they would always be the same shape, but because of\n // the loading.js pattern, cacheNodeSeedData sometimes only represents a\n // partial tree. That's why this node is sometimes null. Once PPR lands,\n // loading.js will no longer have special behavior and we can traverse the\n // data tree instead.\n //\n // We should also consider merging the router state tree and the data tree\n // in the response format, so that we don't have to send the keys twice.\n // Then the client can convert them into separate representations.\n const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[1][key] !== undefined ? cacheNodeSeedData[1][key] : null;\n if (existingCache) {\n const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key);\n if (existingParallelRoutesCacheNode) {\n let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode);\n const existingCacheNode = parallelRouteCacheNode.get(cacheKey);\n let newCacheNode;\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const seedNode = parallelSeedData[2];\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n // This is a PPR-only field. When PPR is enabled, we shouldn't hit\n // this path during a navigation, but until PPR is fully implemented\n // yet it's possible the existing node does have a non-null\n // `prefetchRsc`. As an incremental step, we'll just de-opt to the\n // old behavior — no PPR value.\n prefetchRsc: null,\n parallelRoutes: new Map(existingCacheNode == null ? void 0 : existingCacheNode.parallelRoutes)\n };\n } else if (wasPrefetched && existingCacheNode) {\n // No new data was sent from the server, but the existing cache node\n // was prefetched, so we should reuse that.\n newCacheNode = {\n lazyData: existingCacheNode.lazyData,\n rsc: existingCacheNode.rsc,\n // This is a PPR-only field. Unlike the previous branch, since we're\n // just cloning the existing cache node, we might as well keep the\n // PPR value, if it exists.\n prefetchRsc: existingCacheNode.prefetchRsc,\n parallelRoutes: new Map(existingCacheNode.parallelRoutes)\n };\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n parallelRoutes: new Map(existingCacheNode == null ? void 0 : existingCacheNode.parallelRoutes)\n };\n }\n // Overrides the cache key with the new cache node.\n parallelRouteCacheNode.set(cacheKey, newCacheNode);\n // Traverse deeper to apply the head / fill lazy items till the head.\n fillLazyItemsTillLeafWithHead(newCacheNode, existingCacheNode, parallelRouteState, parallelSeedData ? parallelSeedData : null, head, wasPrefetched);\n newCache.parallelRoutes.set(key, parallelRouteCacheNode);\n continue;\n }\n }\n let newCacheNode;\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const seedNode = parallelSeedData[2];\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n prefetchRsc: null,\n parallelRoutes: new Map()\n };\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n parallelRoutes: new Map()\n };\n }\n const existingParallelRoutes = newCache.parallelRoutes.get(key);\n if (existingParallelRoutes) {\n existingParallelRoutes.set(cacheKey, newCacheNode);\n } else {\n newCache.parallelRoutes.set(key, new Map([\n [\n cacheKey,\n newCacheNode\n ]\n ]));\n }\n fillLazyItemsTillLeafWithHead(newCacheNode, undefined, parallelRouteState, parallelSeedData, head, wasPrefetched);\n }\n} //# sourceMappingURL=fill-lazy-items-till-leaf-with-head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmlsbC1sYXp5LWl0ZW1zLXRpbGwtbGVhZi13aXRoLWhlYWQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUU7QUFDMUQsU0FBU0MsOEJBQThCQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxpQkFBaUIsRUFBRUMsSUFBSSxFQUFFQyxhQUFhO0lBQ3RILE1BQU1DLGdCQUFnQkMsT0FBT0MsSUFBSSxDQUFDTixXQUFXLENBQUMsRUFBRSxFQUFFTyxNQUFNLEtBQUs7SUFDN0QsSUFBSUgsZUFBZTtRQUNmTixTQUFTSSxJQUFJLEdBQUdBO1FBQ2hCO0lBQ0o7SUFDQSx1RkFBdUY7SUFDdkYsSUFBSSxNQUFNTSxPQUFPUixXQUFXLENBQUMsRUFBRSxDQUFDO1FBQzVCLE1BQU1TLHFCQUFxQlQsV0FBVyxDQUFDLEVBQUUsQ0FBQ1EsSUFBSTtRQUM5QyxNQUFNRSwwQkFBMEJELGtCQUFrQixDQUFDLEVBQUU7UUFDckQsTUFBTUUsV0FBV2YsOEVBQW9CQSxDQUFDYztRQUN0Qyw0RUFBNEU7UUFDNUUsMkVBQTJFO1FBQzNFLHdFQUF3RTtRQUN4RSx3RUFBd0U7UUFDeEUsMEVBQTBFO1FBQzFFLHFCQUFxQjtRQUNyQixFQUFFO1FBQ0YsMEVBQTBFO1FBQzFFLHdFQUF3RTtRQUN4RSxrRUFBa0U7UUFDbEUsTUFBTUUsbUJBQW1CWCxzQkFBc0IsUUFBUUEsaUJBQWlCLENBQUMsRUFBRSxDQUFDTyxJQUFJLEtBQUtLLFlBQVlaLGlCQUFpQixDQUFDLEVBQUUsQ0FBQ08sSUFBSSxHQUFHO1FBQzdILElBQUlULGVBQWU7WUFDZixNQUFNZSxrQ0FBa0NmLGNBQWNnQixjQUFjLENBQUNDLEdBQUcsQ0FBQ1I7WUFDekUsSUFBSU0saUNBQWlDO2dCQUNqQyxJQUFJRyx5QkFBeUIsSUFBSUMsSUFBSUo7Z0JBQ3JDLE1BQU1LLG9CQUFvQkYsdUJBQXVCRCxHQUFHLENBQUNMO2dCQUNyRCxJQUFJUztnQkFDSixJQUFJUixxQkFBcUIsTUFBTTtvQkFDM0IscUNBQXFDO29CQUNyQyxNQUFNUyxXQUFXVCxnQkFBZ0IsQ0FBQyxFQUFFO29CQUNwQ1EsZUFBZTt3QkFDWEUsVUFBVTt3QkFDVkMsS0FBS0Y7d0JBQ0wsa0VBQWtFO3dCQUNsRSxvRUFBb0U7d0JBQ3BFLDJEQUEyRDt3QkFDM0Qsa0VBQWtFO3dCQUNsRSwrQkFBK0I7d0JBQy9CRyxhQUFhO3dCQUNiVCxnQkFBZ0IsSUFBSUcsSUFBSUMscUJBQXFCLE9BQU8sS0FBSyxJQUFJQSxrQkFBa0JKLGNBQWM7b0JBQ2pHO2dCQUNKLE9BQU8sSUFBSVosaUJBQWlCZ0IsbUJBQW1CO29CQUMzQyxvRUFBb0U7b0JBQ3BFLDJDQUEyQztvQkFDM0NDLGVBQWU7d0JBQ1hFLFVBQVVILGtCQUFrQkcsUUFBUTt3QkFDcENDLEtBQUtKLGtCQUFrQkksR0FBRzt3QkFDMUIsb0VBQW9FO3dCQUNwRSxrRUFBa0U7d0JBQ2xFLDJCQUEyQjt3QkFDM0JDLGFBQWFMLGtCQUFrQkssV0FBVzt3QkFDMUNULGdCQUFnQixJQUFJRyxJQUFJQyxrQkFBa0JKLGNBQWM7b0JBQzVEO2dCQUNKLE9BQU87b0JBQ0gsa0VBQWtFO29CQUNsRSxpQkFBaUI7b0JBQ2pCSyxlQUFlO3dCQUNYRSxVQUFVO3dCQUNWQyxLQUFLO3dCQUNMQyxhQUFhO3dCQUNiVCxnQkFBZ0IsSUFBSUcsSUFBSUMscUJBQXFCLE9BQU8sS0FBSyxJQUFJQSxrQkFBa0JKLGNBQWM7b0JBQ2pHO2dCQUNKO2dCQUNBLG1EQUFtRDtnQkFDbkRFLHVCQUF1QlEsR0FBRyxDQUFDZCxVQUFVUztnQkFDckMscUVBQXFFO2dCQUNyRXZCLDhCQUE4QnVCLGNBQWNELG1CQUFtQlYsb0JBQW9CRyxtQkFBbUJBLG1CQUFtQixNQUFNVixNQUFNQztnQkFDcklMLFNBQVNpQixjQUFjLENBQUNVLEdBQUcsQ0FBQ2pCLEtBQUtTO2dCQUNqQztZQUNKO1FBQ0o7UUFDQSxJQUFJRztRQUNKLElBQUlSLHFCQUFxQixNQUFNO1lBQzNCLHFDQUFxQztZQUNyQyxNQUFNUyxXQUFXVCxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3BDUSxlQUFlO2dCQUNYRSxVQUFVO2dCQUNWQyxLQUFLRjtnQkFDTEcsYUFBYTtnQkFDYlQsZ0JBQWdCLElBQUlHO1lBQ3hCO1FBQ0osT0FBTztZQUNILGtFQUFrRTtZQUNsRSxpQkFBaUI7WUFDakJFLGVBQWU7Z0JBQ1hFLFVBQVU7Z0JBQ1ZDLEtBQUs7Z0JBQ0xDLGFBQWE7Z0JBQ2JULGdCQUFnQixJQUFJRztZQUN4QjtRQUNKO1FBQ0EsTUFBTVEseUJBQXlCNUIsU0FBU2lCLGNBQWMsQ0FBQ0MsR0FBRyxDQUFDUjtRQUMzRCxJQUFJa0Isd0JBQXdCO1lBQ3hCQSx1QkFBdUJELEdBQUcsQ0FBQ2QsVUFBVVM7UUFDekMsT0FBTztZQUNIdEIsU0FBU2lCLGNBQWMsQ0FBQ1UsR0FBRyxDQUFDakIsS0FBSyxJQUFJVSxJQUFJO2dCQUNyQztvQkFDSVA7b0JBQ0FTO2lCQUNIO2FBQ0o7UUFDTDtRQUNBdkIsOEJBQThCdUIsY0FBY1AsV0FBV0osb0JBQW9CRyxrQkFBa0JWLE1BQU1DO0lBQ3ZHO0FBQ0osRUFFQSwrREFBK0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkLmpzPzNjMzIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUm91dGVyQ2FjaGVLZXkgfSBmcm9tIFwiLi9jcmVhdGUtcm91dGVyLWNhY2hlLWtleVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkKG5ld0NhY2hlLCBleGlzdGluZ0NhY2hlLCByb3V0ZXJTdGF0ZSwgY2FjaGVOb2RlU2VlZERhdGEsIGhlYWQsIHdhc1ByZWZldGNoZWQpIHtcbiAgICBjb25zdCBpc0xhc3RTZWdtZW50ID0gT2JqZWN0LmtleXMocm91dGVyU3RhdGVbMV0pLmxlbmd0aCA9PT0gMDtcbiAgICBpZiAoaXNMYXN0U2VnbWVudCkge1xuICAgICAgICBuZXdDYWNoZS5oZWFkID0gaGVhZDtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBSZW1vdmUgc2VnbWVudCB0aGF0IHdlIGdvdCBkYXRhIGZvciBzbyB0aGF0IGl0IGlzIGZpbGxlZCBpbiBkdXJpbmcgcmVuZGVyaW5nIG9mIHJzYy5cbiAgICBmb3IoY29uc3Qga2V5IGluIHJvdXRlclN0YXRlWzFdKXtcbiAgICAgICAgY29uc3QgcGFyYWxsZWxSb3V0ZVN0YXRlID0gcm91dGVyU3RhdGVbMV1ba2V5XTtcbiAgICAgICAgY29uc3Qgc2VnbWVudEZvclBhcmFsbGVsUm91dGUgPSBwYXJhbGxlbFJvdXRlU3RhdGVbMF07XG4gICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudEZvclBhcmFsbGVsUm91dGUpO1xuICAgICAgICAvLyBUT0RPOiBXZSBzaG91bGQgdHJhdmVyc2UgdGhlIGNhY2hlTm9kZVNlZWREYXRhIHRyZWUgaW5zdGVhZCBvZiB0aGUgcm91dGVyXG4gICAgICAgIC8vIHN0YXRlIHRyZWUuIElkZWFsbHksIHRoZXkgd291bGQgYWx3YXlzIGJlIHRoZSBzYW1lIHNoYXBlLCBidXQgYmVjYXVzZSBvZlxuICAgICAgICAvLyB0aGUgbG9hZGluZy5qcyBwYXR0ZXJuLCBjYWNoZU5vZGVTZWVkRGF0YSBzb21ldGltZXMgb25seSByZXByZXNlbnRzIGFcbiAgICAgICAgLy8gcGFydGlhbCB0cmVlLiBUaGF0J3Mgd2h5IHRoaXMgbm9kZSBpcyBzb21ldGltZXMgbnVsbC4gT25jZSBQUFIgbGFuZHMsXG4gICAgICAgIC8vIGxvYWRpbmcuanMgd2lsbCBubyBsb25nZXIgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yIGFuZCB3ZSBjYW4gdHJhdmVyc2UgdGhlXG4gICAgICAgIC8vIGRhdGEgdHJlZSBpbnN0ZWFkLlxuICAgICAgICAvL1xuICAgICAgICAvLyBXZSBzaG91bGQgYWxzbyBjb25zaWRlciBtZXJnaW5nIHRoZSByb3V0ZXIgc3RhdGUgdHJlZSBhbmQgdGhlIGRhdGEgdHJlZVxuICAgICAgICAvLyBpbiB0aGUgcmVzcG9uc2UgZm9ybWF0LCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gc2VuZCB0aGUga2V5cyB0d2ljZS5cbiAgICAgICAgLy8gVGhlbiB0aGUgY2xpZW50IGNhbiBjb252ZXJ0IHRoZW0gaW50byBzZXBhcmF0ZSByZXByZXNlbnRhdGlvbnMuXG4gICAgICAgIGNvbnN0IHBhcmFsbGVsU2VlZERhdGEgPSBjYWNoZU5vZGVTZWVkRGF0YSAhPT0gbnVsbCAmJiBjYWNoZU5vZGVTZWVkRGF0YVsxXVtrZXldICE9PSB1bmRlZmluZWQgPyBjYWNoZU5vZGVTZWVkRGF0YVsxXVtrZXldIDogbnVsbDtcbiAgICAgICAgaWYgKGV4aXN0aW5nQ2FjaGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXNDYWNoZU5vZGUgPSBleGlzdGluZ0NhY2hlLnBhcmFsbGVsUm91dGVzLmdldChrZXkpO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXNDYWNoZU5vZGUpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZSA9IG5ldyBNYXAoZXhpc3RpbmdQYXJhbGxlbFJvdXRlc0NhY2hlTm9kZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdDYWNoZU5vZGUgPSBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlLmdldChjYWNoZUtleSk7XG4gICAgICAgICAgICAgICAgbGV0IG5ld0NhY2hlTm9kZTtcbiAgICAgICAgICAgICAgICBpZiAocGFyYWxsZWxTZWVkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBOZXcgZGF0YSB3YXMgc2VudCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlZWROb2RlID0gcGFyYWxsZWxTZWVkRGF0YVsyXTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q2FjaGVOb2RlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICByc2M6IHNlZWROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIFBQUi1vbmx5IGZpZWxkLiBXaGVuIFBQUiBpcyBlbmFibGVkLCB3ZSBzaG91bGRuJ3QgaGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHBhdGggZHVyaW5nIGEgbmF2aWdhdGlvbiwgYnV0IHVudGlsIFBQUiBpcyBmdWxseSBpbXBsZW1lbnRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8geWV0IGl0J3MgcG9zc2libGUgdGhlIGV4aXN0aW5nIG5vZGUgZG9lcyBoYXZlIGEgbm9uLW51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcmVmZXRjaFJzY2AuIEFzIGFuIGluY3JlbWVudGFsIHN0ZXAsIHdlJ2xsIGp1c3QgZGUtb3B0IHRvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2xkIGJlaGF2aW9yIOKAlCBubyBQUFIgdmFsdWUuXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKGV4aXN0aW5nQ2FjaGVOb2RlID09IG51bGwgPyB2b2lkIDAgOiBleGlzdGluZ0NhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcylcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdhc1ByZWZldGNoZWQgJiYgZXhpc3RpbmdDYWNoZU5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm8gbmV3IGRhdGEgd2FzIHNlbnQgZnJvbSB0aGUgc2VydmVyLCBidXQgdGhlIGV4aXN0aW5nIGNhY2hlIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgLy8gd2FzIHByZWZldGNoZWQsIHNvIHdlIHNob3VsZCByZXVzZSB0aGF0LlxuICAgICAgICAgICAgICAgICAgICBuZXdDYWNoZU5vZGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXp5RGF0YTogZXhpc3RpbmdDYWNoZU5vZGUubGF6eURhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICByc2M6IGV4aXN0aW5nQ2FjaGVOb2RlLnJzYyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBQUFItb25seSBmaWVsZC4gVW5saWtlIHRoZSBwcmV2aW91cyBicmFuY2gsIHNpbmNlIHdlJ3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IGNsb25pbmcgdGhlIGV4aXN0aW5nIGNhY2hlIG5vZGUsIHdlIG1pZ2h0IGFzIHdlbGwga2VlcCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiB2YWx1ZSwgaWYgaXQgZXhpc3RzLlxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IGV4aXN0aW5nQ2FjaGVOb2RlLnByZWZldGNoUnNjLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoZXhpc3RpbmdDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm8gZGF0YSBhdmFpbGFibGUgZm9yIHRoaXMgbm9kZS4gVGhpcyB3aWxsIHRyaWdnZXIgYSBsYXp5IGZldGNoXG4gICAgICAgICAgICAgICAgICAgIC8vIGR1cmluZyByZW5kZXIuXG4gICAgICAgICAgICAgICAgICAgIG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcnNjOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcChleGlzdGluZ0NhY2hlTm9kZSA9PSBudWxsID8gdm9pZCAwIDogZXhpc3RpbmdDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIE92ZXJyaWRlcyB0aGUgY2FjaGUga2V5IHdpdGggdGhlIG5ldyBjYWNoZSBub2RlLlxuICAgICAgICAgICAgICAgIHBhcmFsbGVsUm91dGVDYWNoZU5vZGUuc2V0KGNhY2hlS2V5LCBuZXdDYWNoZU5vZGUpO1xuICAgICAgICAgICAgICAgIC8vIFRyYXZlcnNlIGRlZXBlciB0byBhcHBseSB0aGUgaGVhZCAvIGZpbGwgbGF6eSBpdGVtcyB0aWxsIHRoZSBoZWFkLlxuICAgICAgICAgICAgICAgIGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkKG5ld0NhY2hlTm9kZSwgZXhpc3RpbmdDYWNoZU5vZGUsIHBhcmFsbGVsUm91dGVTdGF0ZSwgcGFyYWxsZWxTZWVkRGF0YSA/IHBhcmFsbGVsU2VlZERhdGEgOiBudWxsLCBoZWFkLCB3YXNQcmVmZXRjaGVkKTtcbiAgICAgICAgICAgICAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5zZXQoa2V5LCBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgbmV3Q2FjaGVOb2RlO1xuICAgICAgICBpZiAocGFyYWxsZWxTZWVkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gTmV3IGRhdGEgd2FzIHNlbnQgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICAgICAgY29uc3Qgc2VlZE5vZGUgPSBwYXJhbGxlbFNlZWREYXRhWzJdO1xuICAgICAgICAgICAgbmV3Q2FjaGVOb2RlID0ge1xuICAgICAgICAgICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICAgICAgICAgIHJzYzogc2VlZE5vZGUsXG4gICAgICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5vIGRhdGEgYXZhaWxhYmxlIGZvciB0aGlzIG5vZGUuIFRoaXMgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaFxuICAgICAgICAgICAgLy8gZHVyaW5nIHJlbmRlci5cbiAgICAgICAgICAgIG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgICAgICAgICByc2M6IG51bGwsXG4gICAgICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBleGlzdGluZ1BhcmFsbGVsUm91dGVzID0gbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuZ2V0KGtleSk7XG4gICAgICAgIGlmIChleGlzdGluZ1BhcmFsbGVsUm91dGVzKSB7XG4gICAgICAgICAgICBleGlzdGluZ1BhcmFsbGVsUm91dGVzLnNldChjYWNoZUtleSwgbmV3Q2FjaGVOb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLnNldChrZXksIG5ldyBNYXAoW1xuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgICAgIG5ld0NhY2hlTm9kZVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIF0pKTtcbiAgICAgICAgfVxuICAgICAgICBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZChuZXdDYWNoZU5vZGUsIHVuZGVmaW5lZCwgcGFyYWxsZWxSb3V0ZVN0YXRlLCBwYXJhbGxlbFNlZWREYXRhLCBoZWFkLCB3YXNQcmVmZXRjaGVkKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwibmV3Q2FjaGUiLCJleGlzdGluZ0NhY2hlIiwicm91dGVyU3RhdGUiLCJjYWNoZU5vZGVTZWVkRGF0YSIsImhlYWQiLCJ3YXNQcmVmZXRjaGVkIiwiaXNMYXN0U2VnbWVudCIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJrZXkiLCJwYXJhbGxlbFJvdXRlU3RhdGUiLCJzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSIsImNhY2hlS2V5IiwicGFyYWxsZWxTZWVkRGF0YSIsInVuZGVmaW5lZCIsImV4aXN0aW5nUGFyYWxsZWxSb3V0ZXNDYWNoZU5vZGUiLCJwYXJhbGxlbFJvdXRlcyIsImdldCIsInBhcmFsbGVsUm91dGVDYWNoZU5vZGUiLCJNYXAiLCJleGlzdGluZ0NhY2hlTm9kZSIsIm5ld0NhY2hlTm9kZSIsInNlZWROb2RlIiwibGF6eURhdGEiLCJyc2MiLCJwcmVmZXRjaFJzYyIsInNldCIsImV4aXN0aW5nUGFyYWxsZWxSb3V0ZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/get-prefetch-cache-entry-status.js":
-/*!************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/get-prefetch-cache-entry-status.js ***!
- \************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PrefetchCacheEntryStatus: () => (/* binding */ PrefetchCacheEntryStatus),\n/* harmony export */ getPrefetchEntryCacheStatus: () => (/* binding */ getPrefetchEntryCacheStatus)\n/* harmony export */ });\nconst FIVE_MINUTES = 5 * 60 * 1000;\nconst THIRTY_SECONDS = 30 * 1000;\nvar PrefetchCacheEntryStatus;\n(function(PrefetchCacheEntryStatus) {\n PrefetchCacheEntryStatus[\"fresh\"] = \"fresh\";\n PrefetchCacheEntryStatus[\"reusable\"] = \"reusable\";\n PrefetchCacheEntryStatus[\"expired\"] = \"expired\";\n PrefetchCacheEntryStatus[\"stale\"] = \"stale\";\n})(PrefetchCacheEntryStatus || (PrefetchCacheEntryStatus = {}));\nfunction getPrefetchEntryCacheStatus(param) {\n let { kind, prefetchTime, lastUsedTime } = param;\n // if the cache entry was prefetched or read less than 30s ago, then we want to re-use it\n if (Date.now() < (lastUsedTime != null ? lastUsedTime : prefetchTime) + THIRTY_SECONDS) {\n return lastUsedTime ? \"reusable\" : \"fresh\";\n }\n // if the cache entry was prefetched less than 5 mins ago, then we want to re-use only the loading state\n if (kind === \"auto\") {\n if (Date.now() < prefetchTime + FIVE_MINUTES) {\n return \"stale\";\n }\n }\n // if the cache entry was prefetched less than 5 mins ago and was a \"full\" prefetch, then we want to re-use it \"full\n if (kind === \"full\") {\n if (Date.now() < prefetchTime + FIVE_MINUTES) {\n return \"reusable\";\n }\n }\n return \"expired\";\n} //# sourceMappingURL=get-prefetch-cache-entry-status.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZ2V0LXByZWZldGNoLWNhY2hlLWVudHJ5LXN0YXR1cy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLE1BQU1BLGVBQWUsSUFBSSxLQUFLO0FBQzlCLE1BQU1DLGlCQUFpQixLQUFLO0FBQ3JCLElBQUlDLHlCQUF5QjtBQUNuQyxVQUFTQSx3QkFBd0I7SUFDOUJBLHdCQUF3QixDQUFDLFFBQVEsR0FBRztJQUNwQ0Esd0JBQXdCLENBQUMsV0FBVyxHQUFHO0lBQ3ZDQSx3QkFBd0IsQ0FBQyxVQUFVLEdBQUc7SUFDdENBLHdCQUF3QixDQUFDLFFBQVEsR0FBRztBQUN4QyxHQUFHQSw0QkFBNkJBLENBQUFBLDJCQUEyQixDQUFDO0FBQ3JELFNBQVNDLDRCQUE0QkMsS0FBSztJQUM3QyxJQUFJLEVBQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFQyxZQUFZLEVBQUUsR0FBR0g7SUFDM0MseUZBQXlGO0lBQ3pGLElBQUlJLEtBQUtDLEdBQUcsS0FBSyxDQUFDRixnQkFBZ0IsT0FBT0EsZUFBZUQsWUFBVyxJQUFLTCxnQkFBZ0I7UUFDcEYsT0FBT00sZUFBZSxhQUFhO0lBQ3ZDO0lBQ0Esd0dBQXdHO0lBQ3hHLElBQUlGLFNBQVMsUUFBUTtRQUNqQixJQUFJRyxLQUFLQyxHQUFHLEtBQUtILGVBQWVOLGNBQWM7WUFDMUMsT0FBTztRQUNYO0lBQ0o7SUFDQSxvSEFBb0g7SUFDcEgsSUFBSUssU0FBUyxRQUFRO1FBQ2pCLElBQUlHLEtBQUtDLEdBQUcsS0FBS0gsZUFBZU4sY0FBYztZQUMxQyxPQUFPO1FBQ1g7SUFDSjtJQUNBLE9BQU87QUFDWCxFQUVBLDJEQUEyRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZ2V0LXByZWZldGNoLWNhY2hlLWVudHJ5LXN0YXR1cy5qcz8wMzY0Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEZJVkVfTUlOVVRFUyA9IDUgKiA2MCAqIDEwMDA7XG5jb25zdCBUSElSVFlfU0VDT05EUyA9IDMwICogMTAwMDtcbmV4cG9ydCB2YXIgUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzO1xuKGZ1bmN0aW9uKFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cykge1xuICAgIFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1c1tcImZyZXNoXCJdID0gXCJmcmVzaFwiO1xuICAgIFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1c1tcInJldXNhYmxlXCJdID0gXCJyZXVzYWJsZVwiO1xuICAgIFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1c1tcImV4cGlyZWRcIl0gPSBcImV4cGlyZWRcIjtcbiAgICBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXNbXCJzdGFsZVwiXSA9IFwic3RhbGVcIjtcbn0pKFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyB8fCAoUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzID0ge30pKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmVmZXRjaEVudHJ5Q2FjaGVTdGF0dXMocGFyYW0pIHtcbiAgICBsZXQgeyBraW5kLCBwcmVmZXRjaFRpbWUsIGxhc3RVc2VkVGltZSB9ID0gcGFyYW07XG4gICAgLy8gaWYgdGhlIGNhY2hlIGVudHJ5IHdhcyBwcmVmZXRjaGVkIG9yIHJlYWQgbGVzcyB0aGFuIDMwcyBhZ28sIHRoZW4gd2Ugd2FudCB0byByZS11c2UgaXRcbiAgICBpZiAoRGF0ZS5ub3coKSA8IChsYXN0VXNlZFRpbWUgIT0gbnVsbCA/IGxhc3RVc2VkVGltZSA6IHByZWZldGNoVGltZSkgKyBUSElSVFlfU0VDT05EUykge1xuICAgICAgICByZXR1cm4gbGFzdFVzZWRUaW1lID8gXCJyZXVzYWJsZVwiIDogXCJmcmVzaFwiO1xuICAgIH1cbiAgICAvLyBpZiB0aGUgY2FjaGUgZW50cnkgd2FzIHByZWZldGNoZWQgbGVzcyB0aGFuIDUgbWlucyBhZ28sIHRoZW4gd2Ugd2FudCB0byByZS11c2Ugb25seSB0aGUgbG9hZGluZyBzdGF0ZVxuICAgIGlmIChraW5kID09PSBcImF1dG9cIikge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSA8IHByZWZldGNoVGltZSArIEZJVkVfTUlOVVRFUykge1xuICAgICAgICAgICAgcmV0dXJuIFwic3RhbGVcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiB0aGUgY2FjaGUgZW50cnkgd2FzIHByZWZldGNoZWQgbGVzcyB0aGFuIDUgbWlucyBhZ28gYW5kIHdhcyBhIFwiZnVsbFwiIHByZWZldGNoLCB0aGVuIHdlIHdhbnQgdG8gcmUtdXNlIGl0IFwiZnVsbFxuICAgIGlmIChraW5kID09PSBcImZ1bGxcIikge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSA8IHByZWZldGNoVGltZSArIEZJVkVfTUlOVVRFUykge1xuICAgICAgICAgICAgcmV0dXJuIFwicmV1c2FibGVcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gXCJleHBpcmVkXCI7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1wcmVmZXRjaC1jYWNoZS1lbnRyeS1zdGF0dXMuanMubWFwIl0sIm5hbWVzIjpbIkZJVkVfTUlOVVRFUyIsIlRISVJUWV9TRUNPTkRTIiwiUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzIiwiZ2V0UHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzIiwicGFyYW0iLCJraW5kIiwicHJlZmV0Y2hUaW1lIiwibGFzdFVzZWRUaW1lIiwiRGF0ZSIsIm5vdyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/get-prefetch-cache-entry-status.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js":
-/*!*******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js ***!
- \*******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleMutable: () => (/* binding */ handleMutable)\n/* harmony export */ });\n/* harmony import */ var _compute_changed_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./compute-changed-path */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/compute-changed-path.js\");\n\nfunction isNotUndefined(value) {\n return typeof value !== \"undefined\";\n}\nfunction handleMutable(state, mutable) {\n var _mutable_canonicalUrl;\n var _mutable_shouldScroll;\n // shouldScroll is true by default, can override to false.\n const shouldScroll = (_mutable_shouldScroll = mutable.shouldScroll) != null ? _mutable_shouldScroll : true;\n let nextUrl = state.nextUrl;\n if (isNotUndefined(mutable.patchedTree)) {\n // If we received a patched tree, we need to compute the changed path.\n const changedPath = (0,_compute_changed_path__WEBPACK_IMPORTED_MODULE_0__.computeChangedPath)(state.tree, mutable.patchedTree);\n if (changedPath) {\n // If the tree changed, we need to update the nextUrl\n nextUrl = changedPath;\n } else if (!nextUrl) {\n // if the tree ends up being the same (ie, no changed path), and we don't have a nextUrl, then we should use the canonicalUrl\n nextUrl = state.canonicalUrl;\n }\n // otherwise this will be a no-op and continue to use the existing nextUrl\n }\n var _mutable_scrollableSegments;\n return {\n buildId: state.buildId,\n // Set href.\n canonicalUrl: isNotUndefined(mutable.canonicalUrl) ? mutable.canonicalUrl === state.canonicalUrl ? state.canonicalUrl : mutable.canonicalUrl : state.canonicalUrl,\n pushRef: {\n pendingPush: isNotUndefined(mutable.pendingPush) ? mutable.pendingPush : state.pushRef.pendingPush,\n mpaNavigation: isNotUndefined(mutable.mpaNavigation) ? mutable.mpaNavigation : state.pushRef.mpaNavigation,\n preserveCustomHistoryState: isNotUndefined(mutable.preserveCustomHistoryState) ? mutable.preserveCustomHistoryState : state.pushRef.preserveCustomHistoryState\n },\n // All navigation requires scroll and focus management to trigger.\n focusAndScrollRef: {\n apply: shouldScroll ? isNotUndefined(mutable == null ? void 0 : mutable.scrollableSegments) ? true : state.focusAndScrollRef.apply : false,\n onlyHashChange: !!mutable.hashFragment && state.canonicalUrl.split(\"#\", 1)[0] === ((_mutable_canonicalUrl = mutable.canonicalUrl) == null ? void 0 : _mutable_canonicalUrl.split(\"#\", 1)[0]),\n hashFragment: shouldScroll ? mutable.hashFragment && mutable.hashFragment !== \"\" ? decodeURIComponent(mutable.hashFragment.slice(1)) : state.focusAndScrollRef.hashFragment : null,\n segmentPaths: shouldScroll ? (_mutable_scrollableSegments = mutable == null ? void 0 : mutable.scrollableSegments) != null ? _mutable_scrollableSegments : state.focusAndScrollRef.segmentPaths : []\n },\n // Apply cache.\n cache: mutable.cache ? mutable.cache : state.cache,\n prefetchCache: mutable.prefetchCache ? mutable.prefetchCache : state.prefetchCache,\n // Apply patched router state.\n tree: isNotUndefined(mutable.patchedTree) ? mutable.patchedTree : state.tree,\n nextUrl\n };\n} //# sourceMappingURL=handle-mutable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaGFuZGxlLW11dGFibGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNEQ7QUFDNUQsU0FBU0MsZUFBZUMsS0FBSztJQUN6QixPQUFPLE9BQU9BLFVBQVU7QUFDNUI7QUFDTyxTQUFTQyxjQUFjQyxLQUFLLEVBQUVDLE9BQU87SUFDeEMsSUFBSUM7SUFDSixJQUFJQztJQUNKLDBEQUEwRDtJQUMxRCxNQUFNQyxlQUFlLENBQUNELHdCQUF3QkYsUUFBUUcsWUFBWSxLQUFLLE9BQU9ELHdCQUF3QjtJQUN0RyxJQUFJRSxVQUFVTCxNQUFNSyxPQUFPO0lBQzNCLElBQUlSLGVBQWVJLFFBQVFLLFdBQVcsR0FBRztRQUNyQyxzRUFBc0U7UUFDdEUsTUFBTUMsY0FBY1gseUVBQWtCQSxDQUFDSSxNQUFNUSxJQUFJLEVBQUVQLFFBQVFLLFdBQVc7UUFDdEUsSUFBSUMsYUFBYTtZQUNiLHFEQUFxRDtZQUNyREYsVUFBVUU7UUFDZCxPQUFPLElBQUksQ0FBQ0YsU0FBUztZQUNqQiw2SEFBNkg7WUFDN0hBLFVBQVVMLE1BQU1TLFlBQVk7UUFDaEM7SUFDSiwwRUFBMEU7SUFDMUU7SUFDQSxJQUFJQztJQUNKLE9BQU87UUFDSEMsU0FBU1gsTUFBTVcsT0FBTztRQUN0QixZQUFZO1FBQ1pGLGNBQWNaLGVBQWVJLFFBQVFRLFlBQVksSUFBSVIsUUFBUVEsWUFBWSxLQUFLVCxNQUFNUyxZQUFZLEdBQUdULE1BQU1TLFlBQVksR0FBR1IsUUFBUVEsWUFBWSxHQUFHVCxNQUFNUyxZQUFZO1FBQ2pLRyxTQUFTO1lBQ0xDLGFBQWFoQixlQUFlSSxRQUFRWSxXQUFXLElBQUlaLFFBQVFZLFdBQVcsR0FBR2IsTUFBTVksT0FBTyxDQUFDQyxXQUFXO1lBQ2xHQyxlQUFlakIsZUFBZUksUUFBUWEsYUFBYSxJQUFJYixRQUFRYSxhQUFhLEdBQUdkLE1BQU1ZLE9BQU8sQ0FBQ0UsYUFBYTtZQUMxR0MsNEJBQTRCbEIsZUFBZUksUUFBUWMsMEJBQTBCLElBQUlkLFFBQVFjLDBCQUEwQixHQUFHZixNQUFNWSxPQUFPLENBQUNHLDBCQUEwQjtRQUNsSztRQUNBLGtFQUFrRTtRQUNsRUMsbUJBQW1CO1lBQ2ZDLE9BQU9iLGVBQWVQLGVBQWVJLFdBQVcsT0FBTyxLQUFLLElBQUlBLFFBQVFpQixrQkFBa0IsSUFBSSxPQUFPbEIsTUFBTWdCLGlCQUFpQixDQUFDQyxLQUFLLEdBQUc7WUFDcklFLGdCQUFnQixDQUFDLENBQUNsQixRQUFRbUIsWUFBWSxJQUFJcEIsTUFBTVMsWUFBWSxDQUFDWSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFNLEVBQUNuQix3QkFBd0JELFFBQVFRLFlBQVksS0FBSyxPQUFPLEtBQUssSUFBSVAsc0JBQXNCbUIsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDM0xELGNBQWNoQixlQUNkSCxRQUFRbUIsWUFBWSxJQUFJbkIsUUFBUW1CLFlBQVksS0FBSyxLQUFLRSxtQkFBbUJyQixRQUFRbUIsWUFBWSxDQUFDRyxLQUFLLENBQUMsTUFBTXZCLE1BQU1nQixpQkFBaUIsQ0FBQ0ksWUFBWSxHQUFHO1lBQ2pKSSxjQUFjcEIsZUFBZSxDQUFDTSw4QkFBOEJULFdBQVcsT0FBTyxLQUFLLElBQUlBLFFBQVFpQixrQkFBa0IsS0FBSyxPQUFPUiw4QkFBOEJWLE1BQU1nQixpQkFBaUIsQ0FBQ1EsWUFBWSxHQUFHLEVBQUU7UUFDeE07UUFDQSxlQUFlO1FBQ2ZDLE9BQU94QixRQUFRd0IsS0FBSyxHQUFHeEIsUUFBUXdCLEtBQUssR0FBR3pCLE1BQU15QixLQUFLO1FBQ2xEQyxlQUFlekIsUUFBUXlCLGFBQWEsR0FBR3pCLFFBQVF5QixhQUFhLEdBQUcxQixNQUFNMEIsYUFBYTtRQUNsRiw4QkFBOEI7UUFDOUJsQixNQUFNWCxlQUFlSSxRQUFRSyxXQUFXLElBQUlMLFFBQVFLLFdBQVcsR0FBR04sTUFBTVEsSUFBSTtRQUM1RUg7SUFDSjtBQUNKLEVBRUEsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9oYW5kbGUtbXV0YWJsZS5qcz80NDZhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVDaGFuZ2VkUGF0aCB9IGZyb20gXCIuL2NvbXB1dGUtY2hhbmdlZC1wYXRoXCI7XG5mdW5jdGlvbiBpc05vdFVuZGVmaW5lZCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgIT09IFwidW5kZWZpbmVkXCI7XG59XG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlTXV0YWJsZShzdGF0ZSwgbXV0YWJsZSkge1xuICAgIHZhciBfbXV0YWJsZV9jYW5vbmljYWxVcmw7XG4gICAgdmFyIF9tdXRhYmxlX3Nob3VsZFNjcm9sbDtcbiAgICAvLyBzaG91bGRTY3JvbGwgaXMgdHJ1ZSBieSBkZWZhdWx0LCBjYW4gb3ZlcnJpZGUgdG8gZmFsc2UuXG4gICAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gKF9tdXRhYmxlX3Nob3VsZFNjcm9sbCA9IG11dGFibGUuc2hvdWxkU2Nyb2xsKSAhPSBudWxsID8gX211dGFibGVfc2hvdWxkU2Nyb2xsIDogdHJ1ZTtcbiAgICBsZXQgbmV4dFVybCA9IHN0YXRlLm5leHRVcmw7XG4gICAgaWYgKGlzTm90VW5kZWZpbmVkKG11dGFibGUucGF0Y2hlZFRyZWUpKSB7XG4gICAgICAgIC8vIElmIHdlIHJlY2VpdmVkIGEgcGF0Y2hlZCB0cmVlLCB3ZSBuZWVkIHRvIGNvbXB1dGUgdGhlIGNoYW5nZWQgcGF0aC5cbiAgICAgICAgY29uc3QgY2hhbmdlZFBhdGggPSBjb21wdXRlQ2hhbmdlZFBhdGgoc3RhdGUudHJlZSwgbXV0YWJsZS5wYXRjaGVkVHJlZSk7XG4gICAgICAgIGlmIChjaGFuZ2VkUGF0aCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHRyZWUgY2hhbmdlZCwgd2UgbmVlZCB0byB1cGRhdGUgdGhlIG5leHRVcmxcbiAgICAgICAgICAgIG5leHRVcmwgPSBjaGFuZ2VkUGF0aDtcbiAgICAgICAgfSBlbHNlIGlmICghbmV4dFVybCkge1xuICAgICAgICAgICAgLy8gaWYgdGhlIHRyZWUgZW5kcyB1cCBiZWluZyB0aGUgc2FtZSAoaWUsIG5vIGNoYW5nZWQgcGF0aCksIGFuZCB3ZSBkb24ndCBoYXZlIGEgbmV4dFVybCwgdGhlbiB3ZSBzaG91bGQgdXNlIHRoZSBjYW5vbmljYWxVcmxcbiAgICAgICAgICAgIG5leHRVcmwgPSBzdGF0ZS5jYW5vbmljYWxVcmw7XG4gICAgICAgIH1cbiAgICAvLyBvdGhlcndpc2UgdGhpcyB3aWxsIGJlIGEgbm8tb3AgYW5kIGNvbnRpbnVlIHRvIHVzZSB0aGUgZXhpc3RpbmcgbmV4dFVybFxuICAgIH1cbiAgICB2YXIgX211dGFibGVfc2Nyb2xsYWJsZVNlZ21lbnRzO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJ1aWxkSWQ6IHN0YXRlLmJ1aWxkSWQsXG4gICAgICAgIC8vIFNldCBocmVmLlxuICAgICAgICBjYW5vbmljYWxVcmw6IGlzTm90VW5kZWZpbmVkKG11dGFibGUuY2Fub25pY2FsVXJsKSA/IG11dGFibGUuY2Fub25pY2FsVXJsID09PSBzdGF0ZS5jYW5vbmljYWxVcmwgPyBzdGF0ZS5jYW5vbmljYWxVcmwgOiBtdXRhYmxlLmNhbm9uaWNhbFVybCA6IHN0YXRlLmNhbm9uaWNhbFVybCxcbiAgICAgICAgcHVzaFJlZjoge1xuICAgICAgICAgICAgcGVuZGluZ1B1c2g6IGlzTm90VW5kZWZpbmVkKG11dGFibGUucGVuZGluZ1B1c2gpID8gbXV0YWJsZS5wZW5kaW5nUHVzaCA6IHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2gsXG4gICAgICAgICAgICBtcGFOYXZpZ2F0aW9uOiBpc05vdFVuZGVmaW5lZChtdXRhYmxlLm1wYU5hdmlnYXRpb24pID8gbXV0YWJsZS5tcGFOYXZpZ2F0aW9uIDogc3RhdGUucHVzaFJlZi5tcGFOYXZpZ2F0aW9uLFxuICAgICAgICAgICAgcHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU6IGlzTm90VW5kZWZpbmVkKG11dGFibGUucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUpID8gbXV0YWJsZS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSA6IHN0YXRlLnB1c2hSZWYucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGVcbiAgICAgICAgfSxcbiAgICAgICAgLy8gQWxsIG5hdmlnYXRpb24gcmVxdWlyZXMgc2Nyb2xsIGFuZCBmb2N1cyBtYW5hZ2VtZW50IHRvIHRyaWdnZXIuXG4gICAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmOiB7XG4gICAgICAgICAgICBhcHBseTogc2hvdWxkU2Nyb2xsID8gaXNOb3RVbmRlZmluZWQobXV0YWJsZSA9PSBudWxsID8gdm9pZCAwIDogbXV0YWJsZS5zY3JvbGxhYmxlU2VnbWVudHMpID8gdHJ1ZSA6IHN0YXRlLmZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5IDogZmFsc2UsXG4gICAgICAgICAgICBvbmx5SGFzaENoYW5nZTogISFtdXRhYmxlLmhhc2hGcmFnbWVudCAmJiBzdGF0ZS5jYW5vbmljYWxVcmwuc3BsaXQoXCIjXCIsIDEpWzBdID09PSAoKF9tdXRhYmxlX2Nhbm9uaWNhbFVybCA9IG11dGFibGUuY2Fub25pY2FsVXJsKSA9PSBudWxsID8gdm9pZCAwIDogX211dGFibGVfY2Fub25pY2FsVXJsLnNwbGl0KFwiI1wiLCAxKVswXSksXG4gICAgICAgICAgICBoYXNoRnJhZ21lbnQ6IHNob3VsZFNjcm9sbCA/IC8vICN0b3AgaXMgaGFuZGxlZCBpbiBsYXlvdXQtcm91dGVyLlxuICAgICAgICAgICAgbXV0YWJsZS5oYXNoRnJhZ21lbnQgJiYgbXV0YWJsZS5oYXNoRnJhZ21lbnQgIT09IFwiXCIgPyBkZWNvZGVVUklDb21wb25lbnQobXV0YWJsZS5oYXNoRnJhZ21lbnQuc2xpY2UoMSkpIDogc3RhdGUuZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50IDogbnVsbCxcbiAgICAgICAgICAgIHNlZ21lbnRQYXRoczogc2hvdWxkU2Nyb2xsID8gKF9tdXRhYmxlX3Njcm9sbGFibGVTZWdtZW50cyA9IG11dGFibGUgPT0gbnVsbCA/IHZvaWQgMCA6IG11dGFibGUuc2Nyb2xsYWJsZVNlZ21lbnRzKSAhPSBudWxsID8gX211dGFibGVfc2Nyb2xsYWJsZVNlZ21lbnRzIDogc3RhdGUuZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzIDogW11cbiAgICAgICAgfSxcbiAgICAgICAgLy8gQXBwbHkgY2FjaGUuXG4gICAgICAgIGNhY2hlOiBtdXRhYmxlLmNhY2hlID8gbXV0YWJsZS5jYWNoZSA6IHN0YXRlLmNhY2hlLFxuICAgICAgICBwcmVmZXRjaENhY2hlOiBtdXRhYmxlLnByZWZldGNoQ2FjaGUgPyBtdXRhYmxlLnByZWZldGNoQ2FjaGUgOiBzdGF0ZS5wcmVmZXRjaENhY2hlLFxuICAgICAgICAvLyBBcHBseSBwYXRjaGVkIHJvdXRlciBzdGF0ZS5cbiAgICAgICAgdHJlZTogaXNOb3RVbmRlZmluZWQobXV0YWJsZS5wYXRjaGVkVHJlZSkgPyBtdXRhYmxlLnBhdGNoZWRUcmVlIDogc3RhdGUudHJlZSxcbiAgICAgICAgbmV4dFVybFxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhbmRsZS1tdXRhYmxlLmpzLm1hcCJdLCJuYW1lcyI6WyJjb21wdXRlQ2hhbmdlZFBhdGgiLCJpc05vdFVuZGVmaW5lZCIsInZhbHVlIiwiaGFuZGxlTXV0YWJsZSIsInN0YXRlIiwibXV0YWJsZSIsIl9tdXRhYmxlX2Nhbm9uaWNhbFVybCIsIl9tdXRhYmxlX3Nob3VsZFNjcm9sbCIsInNob3VsZFNjcm9sbCIsIm5leHRVcmwiLCJwYXRjaGVkVHJlZSIsImNoYW5nZWRQYXRoIiwidHJlZSIsImNhbm9uaWNhbFVybCIsIl9tdXRhYmxlX3Njcm9sbGFibGVTZWdtZW50cyIsImJ1aWxkSWQiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJtcGFOYXZpZ2F0aW9uIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJmb2N1c0FuZFNjcm9sbFJlZiIsImFwcGx5Iiwic2Nyb2xsYWJsZVNlZ21lbnRzIiwib25seUhhc2hDaGFuZ2UiLCJoYXNoRnJhZ21lbnQiLCJzcGxpdCIsImRlY29kZVVSSUNvbXBvbmVudCIsInNsaWNlIiwic2VnbWVudFBhdGhzIiwiY2FjaGUiLCJwcmVmZXRjaENhY2hlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-segment-mismatch.js":
-/*!****************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/handle-segment-mismatch.js ***!
- \****************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleSegmentMismatch: () => (/* binding */ handleSegmentMismatch)\n/* harmony export */ });\n/* harmony import */ var _reducers_navigate_reducer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reducers/navigate-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js\");\n\n/**\n * Handles the case where the client router attempted to patch the tree but, due to a mismatch, the patch failed.\n * This will perform an MPA navigation to return the router to a valid state.\n */ function handleSegmentMismatch(state, action, treePatch) {\n if (true) {\n console.warn(\"Performing hard navigation because your application experienced an unrecoverable error. If this keeps occurring, please file a Next.js issue.\\n\\n\" + \"Reason: Segment mismatch\\n\" + (\"Last Action: \" + action.type + \"\\n\\n\") + (\"Current Tree: \" + JSON.stringify(state.tree) + \"\\n\\n\") + (\"Tree Patch Payload: \" + JSON.stringify(treePatch)));\n }\n return (0,_reducers_navigate_reducer__WEBPACK_IMPORTED_MODULE_0__.handleExternalUrl)(state, {}, state.canonicalUrl, true);\n} //# sourceMappingURL=handle-segment-mismatch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaGFuZGxlLXNlZ21lbnQtbWlzbWF0Y2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBZ0U7QUFDaEU7OztDQUdDLEdBQVUsU0FBU0Msc0JBQXNCQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsU0FBUztJQUM5RCxJQUFJQyxJQUFzQyxFQUFFO1FBQ3hDQyxRQUFRQyxJQUFJLENBQUMsc0pBQXNKLCtCQUFnQyxtQkFBa0JKLE9BQU9LLElBQUksR0FBRyxNQUFLLElBQU0sb0JBQW1CQyxLQUFLQyxTQUFTLENBQUNSLE1BQU1TLElBQUksSUFBSSxNQUFLLElBQU0sMEJBQXlCRixLQUFLQyxTQUFTLENBQUNOLFVBQVM7SUFDOVY7SUFDQSxPQUFPSiw2RUFBaUJBLENBQUNFLE9BQU8sQ0FBQyxHQUFHQSxNQUFNVSxZQUFZLEVBQUU7QUFDNUQsRUFFQSxtREFBbUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2hhbmRsZS1zZWdtZW50LW1pc21hdGNoLmpzPzI5MzkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFuZGxlRXh0ZXJuYWxVcmwgfSBmcm9tIFwiLi9yZWR1Y2Vycy9uYXZpZ2F0ZS1yZWR1Y2VyXCI7XG4vKipcbiAqIEhhbmRsZXMgdGhlIGNhc2Ugd2hlcmUgdGhlIGNsaWVudCByb3V0ZXIgYXR0ZW1wdGVkIHRvIHBhdGNoIHRoZSB0cmVlIGJ1dCwgZHVlIHRvIGEgbWlzbWF0Y2gsIHRoZSBwYXRjaCBmYWlsZWQuXG4gKiBUaGlzIHdpbGwgcGVyZm9ybSBhbiBNUEEgbmF2aWdhdGlvbiB0byByZXR1cm4gdGhlIHJvdXRlciB0byBhIHZhbGlkIHN0YXRlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTZWdtZW50TWlzbWF0Y2goc3RhdGUsIGFjdGlvbiwgdHJlZVBhdGNoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwiUGVyZm9ybWluZyBoYXJkIG5hdmlnYXRpb24gYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGV4cGVyaWVuY2VkIGFuIHVucmVjb3ZlcmFibGUgZXJyb3IuIElmIHRoaXMga2VlcHMgb2NjdXJyaW5nLCBwbGVhc2UgZmlsZSBhIE5leHQuanMgaXNzdWUuXFxuXFxuXCIgKyBcIlJlYXNvbjogU2VnbWVudCBtaXNtYXRjaFxcblwiICsgKFwiTGFzdCBBY3Rpb246IFwiICsgYWN0aW9uLnR5cGUgKyBcIlxcblxcblwiKSArIChcIkN1cnJlbnQgVHJlZTogXCIgKyBKU09OLnN0cmluZ2lmeShzdGF0ZS50cmVlKSArIFwiXFxuXFxuXCIpICsgKFwiVHJlZSBQYXRjaCBQYXlsb2FkOiBcIiArIEpTT04uc3RyaW5naWZ5KHRyZWVQYXRjaCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCB7fSwgc3RhdGUuY2Fub25pY2FsVXJsLCB0cnVlKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFuZGxlLXNlZ21lbnQtbWlzbWF0Y2guanMubWFwIl0sIm5hbWVzIjpbImhhbmRsZUV4dGVybmFsVXJsIiwiaGFuZGxlU2VnbWVudE1pc21hdGNoIiwic3RhdGUiLCJhY3Rpb24iLCJ0cmVlUGF0Y2giLCJwcm9jZXNzIiwiY29uc29sZSIsIndhcm4iLCJ0eXBlIiwiSlNPTiIsInN0cmluZ2lmeSIsInRyZWUiLCJjYW5vbmljYWxVcmwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-segment-mismatch.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js":
-/*!**********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js ***!
- \**********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ invalidateCacheBelowFlightSegmentPath: () => (/* binding */ invalidateCacheBelowFlightSegmentPath)\n/* harmony export */ });\n/* harmony import */ var _create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\");\n\n/**\n * Fill cache up to the end of the flightSegmentPath, invalidating anything below it.\n */ function invalidateCacheBelowFlightSegmentPath(newCache, existingCache, flightSegmentPath) {\n const isLastEntry = flightSegmentPath.length <= 2;\n const [parallelRouteKey, segment] = flightSegmentPath;\n const cacheKey = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__.createRouterCacheKey)(segment);\n const existingChildSegmentMap = existingCache.parallelRoutes.get(parallelRouteKey);\n if (!existingChildSegmentMap) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return;\n }\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey);\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap);\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap);\n }\n // In case of last entry don't copy further down.\n if (isLastEntry) {\n childSegmentMap.delete(cacheKey);\n return;\n }\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey);\n let childCacheNode = childSegmentMap.get(cacheKey);\n if (!childCacheNode || !existingChildCacheNode) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return;\n }\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n parallelRoutes: new Map(childCacheNode.parallelRoutes)\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n invalidateCacheBelowFlightSegmentPath(childCacheNode, existingChildCacheNode, flightSegmentPath.slice(2));\n} //# sourceMappingURL=invalidate-cache-below-flight-segmentpath.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaW52YWxpZGF0ZS1jYWNoZS1iZWxvdy1mbGlnaHQtc2VnbWVudHBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUU7QUFDakU7O0NBRUMsR0FBVSxTQUFTQyxzQ0FBc0NDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxpQkFBaUI7SUFDaEcsTUFBTUMsY0FBY0Qsa0JBQWtCRSxNQUFNLElBQUk7SUFDaEQsTUFBTSxDQUFDQyxrQkFBa0JDLFFBQVEsR0FBR0o7SUFDcEMsTUFBTUssV0FBV1QsOEVBQW9CQSxDQUFDUTtJQUN0QyxNQUFNRSwwQkFBMEJQLGNBQWNRLGNBQWMsQ0FBQ0MsR0FBRyxDQUFDTDtJQUNqRSxJQUFJLENBQUNHLHlCQUF5QjtRQUMxQiw2RUFBNkU7UUFDN0Usc0VBQXNFO1FBQ3RFO0lBQ0o7SUFDQSxJQUFJRyxrQkFBa0JYLFNBQVNTLGNBQWMsQ0FBQ0MsR0FBRyxDQUFDTDtJQUNsRCxJQUFJLENBQUNNLG1CQUFtQkEsb0JBQW9CSCx5QkFBeUI7UUFDakVHLGtCQUFrQixJQUFJQyxJQUFJSjtRQUMxQlIsU0FBU1MsY0FBYyxDQUFDSSxHQUFHLENBQUNSLGtCQUFrQk07SUFDbEQ7SUFDQSxpREFBaUQ7SUFDakQsSUFBSVIsYUFBYTtRQUNiUSxnQkFBZ0JHLE1BQU0sQ0FBQ1A7UUFDdkI7SUFDSjtJQUNBLE1BQU1RLHlCQUF5QlAsd0JBQXdCRSxHQUFHLENBQUNIO0lBQzNELElBQUlTLGlCQUFpQkwsZ0JBQWdCRCxHQUFHLENBQUNIO0lBQ3pDLElBQUksQ0FBQ1Msa0JBQWtCLENBQUNELHdCQUF3QjtRQUM1Qyw2RUFBNkU7UUFDN0Usc0VBQXNFO1FBQ3RFO0lBQ0o7SUFDQSxJQUFJQyxtQkFBbUJELHdCQUF3QjtRQUMzQ0MsaUJBQWlCO1lBQ2JDLFVBQVVELGVBQWVDLFFBQVE7WUFDakNDLEtBQUtGLGVBQWVFLEdBQUc7WUFDdkJDLGFBQWFILGVBQWVHLFdBQVc7WUFDdkNWLGdCQUFnQixJQUFJRyxJQUFJSSxlQUFlUCxjQUFjO1FBQ3pEO1FBQ0FFLGdCQUFnQkUsR0FBRyxDQUFDTixVQUFVUztJQUNsQztJQUNBakIsc0NBQXNDaUIsZ0JBQWdCRCx3QkFBd0JiLGtCQUFrQmtCLEtBQUssQ0FBQztBQUMxRyxFQUVBLHFFQUFxRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaW52YWxpZGF0ZS1jYWNoZS1iZWxvdy1mbGlnaHQtc2VnbWVudHBhdGguanM/N2JjNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gXCIuL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5XCI7XG4vKipcbiAqIEZpbGwgY2FjaGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZmxpZ2h0U2VnbWVudFBhdGgsIGludmFsaWRhdGluZyBhbnl0aGluZyBiZWxvdyBpdC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gaW52YWxpZGF0ZUNhY2hlQmVsb3dGbGlnaHRTZWdtZW50UGF0aChuZXdDYWNoZSwgZXhpc3RpbmdDYWNoZSwgZmxpZ2h0U2VnbWVudFBhdGgpIHtcbiAgICBjb25zdCBpc0xhc3RFbnRyeSA9IGZsaWdodFNlZ21lbnRQYXRoLmxlbmd0aCA8PSAyO1xuICAgIGNvbnN0IFtwYXJhbGxlbFJvdXRlS2V5LCBzZWdtZW50XSA9IGZsaWdodFNlZ21lbnRQYXRoO1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudCk7XG4gICAgY29uc3QgZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAgPSBleGlzdGluZ0NhY2hlLnBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KTtcbiAgICBpZiAoIWV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwKSB7XG4gICAgICAgIC8vIEJhaWxvdXQgYmVjYXVzZSB0aGUgZXhpc3RpbmcgY2FjaGUgZG9lcyBub3QgaGF2ZSB0aGUgcGF0aCB0byB0aGUgbGVhZiBub2RlXG4gICAgICAgIC8vIFdpbGwgdHJpZ2dlciBsYXp5IGZldGNoIGluIGxheW91dC1yb3V0ZXIgYmVjYXVzZSBvZiBtaXNzaW5nIHNlZ21lbnRcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgY2hpbGRTZWdtZW50TWFwID0gbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVLZXkpO1xuICAgIGlmICghY2hpbGRTZWdtZW50TWFwIHx8IGNoaWxkU2VnbWVudE1hcCA9PT0gZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApIHtcbiAgICAgICAgY2hpbGRTZWdtZW50TWFwID0gbmV3IE1hcChleGlzdGluZ0NoaWxkU2VnbWVudE1hcCk7XG4gICAgICAgIG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlS2V5LCBjaGlsZFNlZ21lbnRNYXApO1xuICAgIH1cbiAgICAvLyBJbiBjYXNlIG9mIGxhc3QgZW50cnkgZG9uJ3QgY29weSBmdXJ0aGVyIGRvd24uXG4gICAgaWYgKGlzTGFzdEVudHJ5KSB7XG4gICAgICAgIGNoaWxkU2VnbWVudE1hcC5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUgPSBleGlzdGluZ0NoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpO1xuICAgIGxldCBjaGlsZENhY2hlTm9kZSA9IGNoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpO1xuICAgIGlmICghY2hpbGRDYWNoZU5vZGUgfHwgIWV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUpIHtcbiAgICAgICAgLy8gQmFpbG91dCBiZWNhdXNlIHRoZSBleGlzdGluZyBjYWNoZSBkb2VzIG5vdCBoYXZlIHRoZSBwYXRoIHRvIHRoZSBsZWFmIG5vZGVcbiAgICAgICAgLy8gV2lsbCB0cmlnZ2VyIGxhenkgZmV0Y2ggaW4gbGF5b3V0LXJvdXRlciBiZWNhdXNlIG9mIG1pc3Npbmcgc2VnbWVudFxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGlsZENhY2hlTm9kZSA9PT0gZXhpc3RpbmdDaGlsZENhY2hlTm9kZSkge1xuICAgICAgICBjaGlsZENhY2hlTm9kZSA9IHtcbiAgICAgICAgICAgIGxhenlEYXRhOiBjaGlsZENhY2hlTm9kZS5sYXp5RGF0YSxcbiAgICAgICAgICAgIHJzYzogY2hpbGRDYWNoZU5vZGUucnNjLFxuICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IGNoaWxkQ2FjaGVOb2RlLnByZWZldGNoUnNjLFxuICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoY2hpbGRDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMpXG4gICAgICAgIH07XG4gICAgICAgIGNoaWxkU2VnbWVudE1hcC5zZXQoY2FjaGVLZXksIGNoaWxkQ2FjaGVOb2RlKTtcbiAgICB9XG4gICAgaW52YWxpZGF0ZUNhY2hlQmVsb3dGbGlnaHRTZWdtZW50UGF0aChjaGlsZENhY2hlTm9kZSwgZXhpc3RpbmdDaGlsZENhY2hlTm9kZSwgZmxpZ2h0U2VnbWVudFBhdGguc2xpY2UoMikpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnZhbGlkYXRlLWNhY2hlLWJlbG93LWZsaWdodC1zZWdtZW50cGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJpbnZhbGlkYXRlQ2FjaGVCZWxvd0ZsaWdodFNlZ21lbnRQYXRoIiwibmV3Q2FjaGUiLCJleGlzdGluZ0NhY2hlIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJpc0xhc3RFbnRyeSIsImxlbmd0aCIsInBhcmFsbGVsUm91dGVLZXkiLCJzZWdtZW50IiwiY2FjaGVLZXkiLCJleGlzdGluZ0NoaWxkU2VnbWVudE1hcCIsInBhcmFsbGVsUm91dGVzIiwiZ2V0IiwiY2hpbGRTZWdtZW50TWFwIiwiTWFwIiwic2V0IiwiZGVsZXRlIiwiZXhpc3RpbmdDaGlsZENhY2hlTm9kZSIsImNoaWxkQ2FjaGVOb2RlIiwibGF6eURhdGEiLCJyc2MiLCJwcmVmZXRjaFJzYyIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-by-router-state.js":
-/*!*************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-by-router-state.js ***!
- \*************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ invalidateCacheByRouterState: () => (/* binding */ invalidateCacheByRouterState)\n/* harmony export */ });\n/* harmony import */ var _create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\");\n\n/**\n * Invalidate cache one level down from the router state.\n */ function invalidateCacheByRouterState(newCache, existingCache, routerState) {\n // Remove segment that we got data for so that it is filled in during rendering of rsc.\n for(const key in routerState[1]){\n const segmentForParallelRoute = routerState[1][key][0];\n const cacheKey = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__.createRouterCacheKey)(segmentForParallelRoute);\n const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key);\n if (existingParallelRoutesCacheNode) {\n let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode);\n parallelRouteCacheNode.delete(cacheKey);\n newCache.parallelRoutes.set(key, parallelRouteCacheNode);\n }\n }\n} //# sourceMappingURL=invalidate-cache-by-router-state.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaW52YWxpZGF0ZS1jYWNoZS1ieS1yb3V0ZXItc3RhdGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUU7QUFDakU7O0NBRUMsR0FBVSxTQUFTQyw2QkFBNkJDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxXQUFXO0lBQ2pGLHVGQUF1RjtJQUN2RixJQUFJLE1BQU1DLE9BQU9ELFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTUUsMEJBQTBCRixXQUFXLENBQUMsRUFBRSxDQUFDQyxJQUFJLENBQUMsRUFBRTtRQUN0RCxNQUFNRSxXQUFXUCw4RUFBb0JBLENBQUNNO1FBQ3RDLE1BQU1FLGtDQUFrQ0wsY0FBY00sY0FBYyxDQUFDQyxHQUFHLENBQUNMO1FBQ3pFLElBQUlHLGlDQUFpQztZQUNqQyxJQUFJRyx5QkFBeUIsSUFBSUMsSUFBSUo7WUFDckNHLHVCQUF1QkUsTUFBTSxDQUFDTjtZQUM5QkwsU0FBU08sY0FBYyxDQUFDSyxHQUFHLENBQUNULEtBQUtNO1FBQ3JDO0lBQ0o7QUFDSixFQUVBLDREQUE0RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaW52YWxpZGF0ZS1jYWNoZS1ieS1yb3V0ZXItc3RhdGUuanM/M2Y2ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gXCIuL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5XCI7XG4vKipcbiAqIEludmFsaWRhdGUgY2FjaGUgb25lIGxldmVsIGRvd24gZnJvbSB0aGUgcm91dGVyIHN0YXRlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlQ2FjaGVCeVJvdXRlclN0YXRlKG5ld0NhY2hlLCBleGlzdGluZ0NhY2hlLCByb3V0ZXJTdGF0ZSkge1xuICAgIC8vIFJlbW92ZSBzZWdtZW50IHRoYXQgd2UgZ290IGRhdGEgZm9yIHNvIHRoYXQgaXQgaXMgZmlsbGVkIGluIGR1cmluZyByZW5kZXJpbmcgb2YgcnNjLlxuICAgIGZvcihjb25zdCBrZXkgaW4gcm91dGVyU3RhdGVbMV0pe1xuICAgICAgICBjb25zdCBzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSA9IHJvdXRlclN0YXRlWzFdW2tleV1bMF07XG4gICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudEZvclBhcmFsbGVsUm91dGUpO1xuICAgICAgICBjb25zdCBleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlID0gZXhpc3RpbmdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXNDYWNoZU5vZGUpIHtcbiAgICAgICAgICAgIGxldCBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlID0gbmV3IE1hcChleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlKTtcbiAgICAgICAgICAgIHBhcmFsbGVsUm91dGVDYWNoZU5vZGUuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgICAgICAgIG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLnNldChrZXksIHBhcmFsbGVsUm91dGVDYWNoZU5vZGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnZhbGlkYXRlLWNhY2hlLWJ5LXJvdXRlci1zdGF0ZS5qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJpbnZhbGlkYXRlQ2FjaGVCeVJvdXRlclN0YXRlIiwibmV3Q2FjaGUiLCJleGlzdGluZ0NhY2hlIiwicm91dGVyU3RhdGUiLCJrZXkiLCJzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSIsImNhY2hlS2V5IiwiZXhpc3RpbmdQYXJhbGxlbFJvdXRlc0NhY2hlTm9kZSIsInBhcmFsbGVsUm91dGVzIiwiZ2V0IiwicGFyYWxsZWxSb3V0ZUNhY2hlTm9kZSIsIk1hcCIsImRlbGV0ZSIsInNldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-by-router-state.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js":
-/*!*************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js ***!
- \*************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNavigatingToNewRootLayout: () => (/* binding */ isNavigatingToNewRootLayout)\n/* harmony export */ });\nfunction isNavigatingToNewRootLayout(currentTree, nextTree) {\n // Compare segments\n const currentTreeSegment = currentTree[0];\n const nextTreeSegment = nextTree[0];\n // If any segment is different before we find the root layout, the root layout has changed.\n // E.g. /same/(group1)/layout.js -> /same/(group2)/layout.js\n // First segment is 'same' for both, keep looking. (group1) changed to (group2) before the root layout was found, it must have changed.\n if (Array.isArray(currentTreeSegment) && Array.isArray(nextTreeSegment)) {\n // Compare dynamic param name and type but ignore the value, different values would not affect the current root layout\n // /[name] - /slug1 and /slug2, both values (slug1 & slug2) still has the same layout /[name]/layout.js\n if (currentTreeSegment[0] !== nextTreeSegment[0] || currentTreeSegment[2] !== nextTreeSegment[2]) {\n return true;\n }\n } else if (currentTreeSegment !== nextTreeSegment) {\n return true;\n }\n // Current tree root layout found\n if (currentTree[4]) {\n // If the next tree doesn't have the root layout flag, it must have changed.\n return !nextTree[4];\n }\n // Current tree didn't have its root layout here, must have changed.\n if (nextTree[4]) {\n return true;\n }\n // We can't assume it's `parallelRoutes.children` here in case the root layout is `app/@something/layout.js`\n // But it's not possible to be more than one parallelRoutes before the root layout is found\n // TODO-APP: change to traverse all parallel routes\n const currentTreeChild = Object.values(currentTree[1])[0];\n const nextTreeChild = Object.values(nextTree[1])[0];\n if (!currentTreeChild || !nextTreeChild) return true;\n return isNavigatingToNewRootLayout(currentTreeChild, nextTreeChild);\n} //# sourceMappingURL=is-navigating-to-new-root-layout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaXMtbmF2aWdhdGluZy10by1uZXctcm9vdC1sYXlvdXQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLDRCQUE0QkMsV0FBVyxFQUFFQyxRQUFRO0lBQzdELG1CQUFtQjtJQUNuQixNQUFNQyxxQkFBcUJGLFdBQVcsQ0FBQyxFQUFFO0lBQ3pDLE1BQU1HLGtCQUFrQkYsUUFBUSxDQUFDLEVBQUU7SUFDbkMsMkZBQTJGO0lBQzNGLDREQUE0RDtJQUM1RCx1SUFBdUk7SUFDdkksSUFBSUcsTUFBTUMsT0FBTyxDQUFDSCx1QkFBdUJFLE1BQU1DLE9BQU8sQ0FBQ0Ysa0JBQWtCO1FBQ3JFLHNIQUFzSDtRQUN0SCx1R0FBdUc7UUFDdkcsSUFBSUQsa0JBQWtCLENBQUMsRUFBRSxLQUFLQyxlQUFlLENBQUMsRUFBRSxJQUFJRCxrQkFBa0IsQ0FBQyxFQUFFLEtBQUtDLGVBQWUsQ0FBQyxFQUFFLEVBQUU7WUFDOUYsT0FBTztRQUNYO0lBQ0osT0FBTyxJQUFJRCx1QkFBdUJDLGlCQUFpQjtRQUMvQyxPQUFPO0lBQ1g7SUFDQSxpQ0FBaUM7SUFDakMsSUFBSUgsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUNoQiw0RUFBNEU7UUFDNUUsT0FBTyxDQUFDQyxRQUFRLENBQUMsRUFBRTtJQUN2QjtJQUNBLHFFQUFxRTtJQUNyRSxJQUFJQSxRQUFRLENBQUMsRUFBRSxFQUFFO1FBQ2IsT0FBTztJQUNYO0lBQ0EsNEdBQTRHO0lBQzVHLDJGQUEyRjtJQUMzRixtREFBbUQ7SUFDbkQsTUFBTUssbUJBQW1CQyxPQUFPQyxNQUFNLENBQUNSLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0lBQ3pELE1BQU1TLGdCQUFnQkYsT0FBT0MsTUFBTSxDQUFDUCxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtJQUNuRCxJQUFJLENBQUNLLG9CQUFvQixDQUFDRyxlQUFlLE9BQU87SUFDaEQsT0FBT1YsNEJBQTRCTyxrQkFBa0JHO0FBQ3pELEVBRUEsNERBQTREIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9pcy1uYXZpZ2F0aW5nLXRvLW5ldy1yb290LWxheW91dC5qcz81NzgyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQoY3VycmVudFRyZWUsIG5leHRUcmVlKSB7XG4gICAgLy8gQ29tcGFyZSBzZWdtZW50c1xuICAgIGNvbnN0IGN1cnJlbnRUcmVlU2VnbWVudCA9IGN1cnJlbnRUcmVlWzBdO1xuICAgIGNvbnN0IG5leHRUcmVlU2VnbWVudCA9IG5leHRUcmVlWzBdO1xuICAgIC8vIElmIGFueSBzZWdtZW50IGlzIGRpZmZlcmVudCBiZWZvcmUgd2UgZmluZCB0aGUgcm9vdCBsYXlvdXQsIHRoZSByb290IGxheW91dCBoYXMgY2hhbmdlZC5cbiAgICAvLyBFLmcuIC9zYW1lLyhncm91cDEpL2xheW91dC5qcyAtPiAvc2FtZS8oZ3JvdXAyKS9sYXlvdXQuanNcbiAgICAvLyBGaXJzdCBzZWdtZW50IGlzICdzYW1lJyBmb3IgYm90aCwga2VlcCBsb29raW5nLiAoZ3JvdXAxKSBjaGFuZ2VkIHRvIChncm91cDIpIGJlZm9yZSB0aGUgcm9vdCBsYXlvdXQgd2FzIGZvdW5kLCBpdCBtdXN0IGhhdmUgY2hhbmdlZC5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50VHJlZVNlZ21lbnQpICYmIEFycmF5LmlzQXJyYXkobmV4dFRyZWVTZWdtZW50KSkge1xuICAgICAgICAvLyBDb21wYXJlIGR5bmFtaWMgcGFyYW0gbmFtZSBhbmQgdHlwZSBidXQgaWdub3JlIHRoZSB2YWx1ZSwgZGlmZmVyZW50IHZhbHVlcyB3b3VsZCBub3QgYWZmZWN0IHRoZSBjdXJyZW50IHJvb3QgbGF5b3V0XG4gICAgICAgIC8vIC9bbmFtZV0gLSAvc2x1ZzEgYW5kIC9zbHVnMiwgYm90aCB2YWx1ZXMgKHNsdWcxICYgc2x1ZzIpIHN0aWxsIGhhcyB0aGUgc2FtZSBsYXlvdXQgL1tuYW1lXS9sYXlvdXQuanNcbiAgICAgICAgaWYgKGN1cnJlbnRUcmVlU2VnbWVudFswXSAhPT0gbmV4dFRyZWVTZWdtZW50WzBdIHx8IGN1cnJlbnRUcmVlU2VnbWVudFsyXSAhPT0gbmV4dFRyZWVTZWdtZW50WzJdKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY3VycmVudFRyZWVTZWdtZW50ICE9PSBuZXh0VHJlZVNlZ21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIEN1cnJlbnQgdHJlZSByb290IGxheW91dCBmb3VuZFxuICAgIGlmIChjdXJyZW50VHJlZVs0XSkge1xuICAgICAgICAvLyBJZiB0aGUgbmV4dCB0cmVlIGRvZXNuJ3QgaGF2ZSB0aGUgcm9vdCBsYXlvdXQgZmxhZywgaXQgbXVzdCBoYXZlIGNoYW5nZWQuXG4gICAgICAgIHJldHVybiAhbmV4dFRyZWVbNF07XG4gICAgfVxuICAgIC8vIEN1cnJlbnQgdHJlZSAgZGlkbid0IGhhdmUgaXRzIHJvb3QgbGF5b3V0IGhlcmUsIG11c3QgaGF2ZSBjaGFuZ2VkLlxuICAgIGlmIChuZXh0VHJlZVs0XSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gV2UgY2FuJ3QgYXNzdW1lIGl0J3MgYHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuYCBoZXJlIGluIGNhc2UgdGhlIHJvb3QgbGF5b3V0IGlzIGBhcHAvQHNvbWV0aGluZy9sYXlvdXQuanNgXG4gICAgLy8gQnV0IGl0J3Mgbm90IHBvc3NpYmxlIHRvIGJlIG1vcmUgdGhhbiBvbmUgcGFyYWxsZWxSb3V0ZXMgYmVmb3JlIHRoZSByb290IGxheW91dCBpcyBmb3VuZFxuICAgIC8vIFRPRE8tQVBQOiBjaGFuZ2UgdG8gdHJhdmVyc2UgYWxsIHBhcmFsbGVsIHJvdXRlc1xuICAgIGNvbnN0IGN1cnJlbnRUcmVlQ2hpbGQgPSBPYmplY3QudmFsdWVzKGN1cnJlbnRUcmVlWzFdKVswXTtcbiAgICBjb25zdCBuZXh0VHJlZUNoaWxkID0gT2JqZWN0LnZhbHVlcyhuZXh0VHJlZVsxXSlbMF07XG4gICAgaWYgKCFjdXJyZW50VHJlZUNoaWxkIHx8ICFuZXh0VHJlZUNoaWxkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KGN1cnJlbnRUcmVlQ2hpbGQsIG5leHRUcmVlQ2hpbGQpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1uYXZpZ2F0aW5nLXRvLW5ldy1yb290LWxheW91dC5qcy5tYXAiXSwibmFtZXMiOlsiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiY3VycmVudFRyZWUiLCJuZXh0VHJlZSIsImN1cnJlbnRUcmVlU2VnbWVudCIsIm5leHRUcmVlU2VnbWVudCIsIkFycmF5IiwiaXNBcnJheSIsImN1cnJlbnRUcmVlQ2hpbGQiLCJPYmplY3QiLCJ2YWx1ZXMiLCJuZXh0VHJlZUNoaWxkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/ppr-navigations.js":
-/*!********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/ppr-navigations.js ***!
- \********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ abortTask: () => (/* binding */ abortTask),\n/* harmony export */ listenForDynamicRequest: () => (/* binding */ listenForDynamicRequest),\n/* harmony export */ updateCacheNodeOnNavigation: () => (/* binding */ updateCacheNodeOnNavigation),\n/* harmony export */ updateCacheNodeOnPopstateRestoration: () => (/* binding */ updateCacheNodeOnPopstateRestoration)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n/* harmony import */ var _match_segments__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../match-segments */ \"(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js\");\n/* harmony import */ var _create_router_cache_key__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\");\n\n\n\n// Creates a new Cache Node tree (i.e. copy-on-write) that represents the\n// optimistic result of a navigation, using both the current Cache Node tree and\n// data that was prefetched prior to navigation.\n//\n// At the moment we call this function, we haven't yet received the navigation\n// response from the server. It could send back something completely different\n// from the tree that was prefetched — due to rewrites, default routes, parallel\n// routes, etc.\n//\n// But in most cases, it will return the same tree that we prefetched, just with\n// the dynamic holes filled in. So we optimistically assume this will happen,\n// and accept that the real result could be arbitrarily different.\n//\n// We'll reuse anything that was already in the previous tree, since that's what\n// the server does.\n//\n// New segments (ones that don't appear in the old tree) are assigned an\n// unresolved promise. The data for these promises will be fulfilled later, when\n// the navigation response is received.\n//\n// The tree can be rendered immediately after it is created (that's why this is\n// a synchronous function). Any new trees that do not have prefetch data will\n// suspend during rendering, until the dynamic data streams in.\n//\n// Returns a Task object, which contains both the updated Cache Node and a path\n// to the pending subtrees that need to be resolved by the navigation response.\n//\n// A return value of `null` means there were no changes, and the previous tree\n// can be reused without initiating a server request.\nfunction updateCacheNodeOnNavigation(oldCacheNode, oldRouterState, newRouterState, prefetchData, prefetchHead, isPrefetchStale) {\n // Diff the old and new trees to reuse the shared layouts.\n const oldRouterStateChildren = oldRouterState[1];\n const newRouterStateChildren = newRouterState[1];\n const prefetchDataChildren = prefetchData[1];\n const oldParallelRoutes = oldCacheNode.parallelRoutes;\n // Clone the current set of segment children, even if they aren't active in\n // the new tree.\n // TODO: We currently retain all the inactive segments indefinitely, until\n // there's an explicit refresh, or a parent layout is lazily refreshed. We\n // rely on this for popstate navigations, which update the Router State Tree\n // but do not eagerly perform a data fetch, because they expect the segment\n // data to already be in the Cache Node tree. For highly static sites that\n // are mostly read-only, this may happen only rarely, causing memory to\n // leak. We should figure out a better model for the lifetime of inactive\n // segments, so we can maintain instant back/forward navigations without\n // leaking memory indefinitely.\n const prefetchParallelRoutes = new Map(oldParallelRoutes);\n // As we diff the trees, we may sometimes modify (copy-on-write, not mutate)\n // the Route Tree that was returned by the server — for example, in the case\n // of default parallel routes, we preserve the currently active segment. To\n // avoid mutating the original tree, we clone the router state children along\n // the return path.\n let patchedRouterStateChildren = {};\n let taskChildren = null;\n for(let parallelRouteKey in newRouterStateChildren){\n const newRouterStateChild = newRouterStateChildren[parallelRouteKey];\n const oldRouterStateChild = oldRouterStateChildren[parallelRouteKey];\n const oldSegmentMapChild = oldParallelRoutes.get(parallelRouteKey);\n const prefetchDataChild = prefetchDataChildren[parallelRouteKey];\n const newSegmentChild = newRouterStateChild[0];\n const newSegmentKeyChild = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_2__.createRouterCacheKey)(newSegmentChild);\n const oldSegmentChild = oldRouterStateChild !== undefined ? oldRouterStateChild[0] : undefined;\n const oldCacheNodeChild = oldSegmentMapChild !== undefined ? oldSegmentMapChild.get(newSegmentKeyChild) : undefined;\n let taskChild;\n if (newSegmentChild === _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.PAGE_SEGMENT_KEY) {\n // This is a leaf segment — a page, not a shared layout. We always apply\n // its data.\n taskChild = spawnPendingTask(newRouterStateChild, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchStale);\n } else if (newSegmentChild === _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SEGMENT_KEY) {\n // This is another kind of leaf segment — a default route.\n //\n // Default routes have special behavior. When there's no matching segment\n // for a parallel route, Next.js preserves the currently active segment\n // during a client navigation — but not for initial render. The server\n // leaves it to the client to account for this. So we need to handle\n // it here.\n if (oldRouterStateChild !== undefined) {\n // Reuse the existing Router State for this segment. We spawn a \"task\"\n // just to keep track of the updated router state; unlike most, it's\n // already fulfilled and won't be affected by the dynamic response.\n taskChild = spawnReusedTask(oldRouterStateChild);\n } else {\n // There's no currently active segment. Switch to the \"create\" path.\n taskChild = spawnPendingTask(newRouterStateChild, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchStale);\n }\n } else if (oldSegmentChild !== undefined && (0,_match_segments__WEBPACK_IMPORTED_MODULE_1__.matchSegment)(newSegmentChild, oldSegmentChild)) {\n if (oldCacheNodeChild !== undefined && oldRouterStateChild !== undefined) {\n // This segment exists in both the old and new trees.\n if (prefetchDataChild !== undefined && prefetchDataChild !== null) {\n // Recursively update the children.\n taskChild = updateCacheNodeOnNavigation(oldCacheNodeChild, oldRouterStateChild, newRouterStateChild, prefetchDataChild, prefetchHead, isPrefetchStale);\n } else {\n // The server didn't send any prefetch data for this segment. This\n // shouldn't happen because the Route Tree and the Seed Data tree\n // should always be the same shape, but until we unify those types\n // it's still possible. For now we're going to deopt and trigger a\n // lazy fetch during render.\n taskChild = spawnTaskForMissingData(newRouterStateChild);\n }\n } else {\n // Either there's no existing Cache Node for this segment, or this\n // segment doesn't exist in the old Router State tree. Switch to the\n // \"create\" path.\n taskChild = spawnPendingTask(newRouterStateChild, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchStale);\n }\n } else {\n // This is a new tree. Switch to the \"create\" path.\n taskChild = spawnPendingTask(newRouterStateChild, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchStale);\n }\n if (taskChild !== null) {\n // Something changed in the child tree. Keep track of the child task.\n if (taskChildren === null) {\n taskChildren = new Map();\n }\n taskChildren.set(parallelRouteKey, taskChild);\n const newCacheNodeChild = taskChild.node;\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild = new Map(oldSegmentMapChild);\n newSegmentMapChild.set(newSegmentKeyChild, newCacheNodeChild);\n prefetchParallelRoutes.set(parallelRouteKey, newSegmentMapChild);\n }\n // The child tree's route state may be different from the prefetched\n // route sent by the server. We need to clone it as we traverse back up\n // the tree.\n patchedRouterStateChildren[parallelRouteKey] = taskChild.route;\n } else {\n // The child didn't change. We can use the prefetched router state.\n patchedRouterStateChildren[parallelRouteKey] = newRouterStateChild;\n }\n }\n if (taskChildren === null) {\n // No new tasks were spawned.\n return null;\n }\n const newCacheNode = {\n lazyData: null,\n rsc: oldCacheNode.rsc,\n // We intentionally aren't updating the prefetchRsc field, since this node\n // is already part of the current tree, because it would be weird for\n // prefetch data to be newer than the final data. It probably won't ever be\n // observable anyway, but it could happen if the segment is unmounted then\n // mounted again, because LayoutRouter will momentarily switch to rendering\n // prefetchRsc, via useDeferredValue.\n prefetchRsc: oldCacheNode.prefetchRsc,\n head: oldCacheNode.head,\n prefetchHead: oldCacheNode.prefetchHead,\n // Everything is cloned except for the children, which we computed above.\n parallelRoutes: prefetchParallelRoutes\n };\n return {\n // Return a cloned copy of the router state with updated children.\n route: patchRouterStateWithNewChildren(newRouterState, patchedRouterStateChildren),\n node: newCacheNode,\n children: taskChildren\n };\n}\nfunction patchRouterStateWithNewChildren(baseRouterState, newChildren) {\n const clone = [\n baseRouterState[0],\n newChildren\n ];\n // Based on equivalent logic in apply-router-state-patch-to-tree, but should\n // confirm whether we need to copy all of these fields. Not sure the server\n // ever sends, e.g. the refetch marker.\n if (2 in baseRouterState) {\n clone[2] = baseRouterState[2];\n }\n if (3 in baseRouterState) {\n clone[3] = baseRouterState[3];\n }\n if (4 in baseRouterState) {\n clone[4] = baseRouterState[4];\n }\n return clone;\n}\nfunction spawnPendingTask(routerState, prefetchData, prefetchHead, isPrefetchStale) {\n // Create a task that will later be fulfilled by data from the server.\n const pendingCacheNode = createPendingCacheNode(routerState, prefetchData, prefetchHead, isPrefetchStale);\n return {\n route: routerState,\n node: pendingCacheNode,\n children: null\n };\n}\nfunction spawnReusedTask(reusedRouterState) {\n // Create a task that reuses an existing segment, e.g. when reusing\n // the current active segment in place of a default route.\n return {\n route: reusedRouterState,\n node: null,\n children: null\n };\n}\nfunction spawnTaskForMissingData(routerState) {\n // Create a task for a new subtree that wasn't prefetched by the server.\n // This shouldn't really ever happen but it's here just in case the Seed Data\n // Tree and the Router State Tree disagree unexpectedly.\n const pendingCacheNode = createPendingCacheNode(routerState, null, null, false);\n return {\n route: routerState,\n node: pendingCacheNode,\n children: null\n };\n}\n// Writes a dynamic server response into the tree created by\n// updateCacheNodeOnNavigation. All pending promises that were spawned by the\n// navigation will be resolved, either with dynamic data from the server, or\n// `null` to indicate that the data is missing.\n//\n// A `null` value will trigger a lazy fetch during render, which will then patch\n// up the tree using the same mechanism as the non-PPR implementation\n// (serverPatchReducer).\n//\n// Usually, the server will respond with exactly the subset of data that we're\n// waiting for — everything below the nearest shared layout. But technically,\n// the server can return anything it wants.\n//\n// This does _not_ create a new tree; it modifies the existing one in place.\n// Which means it must follow the Suspense rules of cache safety.\nfunction listenForDynamicRequest(task, responsePromise) {\n responsePromise.then((response)=>{\n const flightData = response[0];\n for (const flightDataPath of flightData){\n const segmentPath = flightDataPath.slice(0, -3);\n const serverRouterState = flightDataPath[flightDataPath.length - 3];\n const dynamicData = flightDataPath[flightDataPath.length - 2];\n const dynamicHead = flightDataPath[flightDataPath.length - 1];\n if (typeof segmentPath === \"string\") {\n continue;\n }\n writeDynamicDataIntoPendingTask(task, segmentPath, serverRouterState, dynamicData, dynamicHead);\n }\n // Now that we've exhausted all the data we received from the server, if\n // there are any remaining pending tasks in the tree, abort them now.\n // If there's any missing data, it will trigger a lazy fetch.\n abortTask(task, null);\n }, (error)=>{\n // This will trigger an error during render\n abortTask(task, error);\n });\n}\nfunction writeDynamicDataIntoPendingTask(rootTask, segmentPath, serverRouterState, dynamicData, dynamicHead) {\n // The data sent by the server represents only a subtree of the app. We need\n // to find the part of the task tree that matches the server response, and\n // fulfill it using the dynamic data.\n //\n // segmentPath represents the parent path of subtree. It's a repeating pattern\n // of parallel route key and segment:\n //\n // [string, Segment, string, Segment, string, Segment, ...]\n //\n // Iterate through the path and finish any tasks that match this payload.\n let task = rootTask;\n for(let i = 0; i < segmentPath.length; i += 2){\n const parallelRouteKey = segmentPath[i];\n const segment = segmentPath[i + 1];\n const taskChildren = task.children;\n if (taskChildren !== null) {\n const taskChild = taskChildren.get(parallelRouteKey);\n if (taskChild !== undefined) {\n const taskSegment = taskChild.route[0];\n if ((0,_match_segments__WEBPACK_IMPORTED_MODULE_1__.matchSegment)(segment, taskSegment)) {\n // Found a match for this task. Keep traversing down the task tree.\n task = taskChild;\n continue;\n }\n }\n }\n // We didn't find a child task that matches the server data. Exit. We won't\n // abort the task, though, because a different FlightDataPath may be able to\n // fulfill it (see loop in listenForDynamicRequest). We only abort tasks\n // once we've run out of data.\n return;\n }\n finishTaskUsingDynamicDataPayload(task, serverRouterState, dynamicData, dynamicHead);\n}\nfunction finishTaskUsingDynamicDataPayload(task, serverRouterState, dynamicData, dynamicHead) {\n // dynamicData may represent a larger subtree than the task. Before we can\n // finish the task, we need to line them up.\n const taskChildren = task.children;\n const taskNode = task.node;\n if (taskChildren === null) {\n // We've reached the leaf node of the pending task. The server data tree\n // lines up the pending Cache Node tree. We can now switch to the\n // normal algorithm.\n if (taskNode !== null) {\n finishPendingCacheNode(taskNode, task.route, serverRouterState, dynamicData, dynamicHead);\n // Null this out to indicate that the task is complete.\n task.node = null;\n }\n return;\n }\n // The server returned more data than we need to finish the task. Skip over\n // the extra segments until we reach the leaf task node.\n const serverChildren = serverRouterState[1];\n const dynamicDataChildren = dynamicData[1];\n for(const parallelRouteKey in serverRouterState){\n const serverRouterStateChild = serverChildren[parallelRouteKey];\n const dynamicDataChild = dynamicDataChildren[parallelRouteKey];\n const taskChild = taskChildren.get(parallelRouteKey);\n if (taskChild !== undefined) {\n const taskSegment = taskChild.route[0];\n if ((0,_match_segments__WEBPACK_IMPORTED_MODULE_1__.matchSegment)(serverRouterStateChild[0], taskSegment) && dynamicDataChild !== null && dynamicDataChild !== undefined) {\n // Found a match for this task. Keep traversing down the task tree.\n return finishTaskUsingDynamicDataPayload(taskChild, serverRouterStateChild, dynamicDataChild, dynamicHead);\n }\n }\n // We didn't find a child task that matches the server data. We won't abort\n // the task, though, because a different FlightDataPath may be able to\n // fulfill it (see loop in listenForDynamicRequest). We only abort tasks\n // once we've run out of data.\n }\n}\nfunction createPendingCacheNode(routerState, prefetchData, prefetchHead, isPrefetchStale) {\n const routerStateChildren = routerState[1];\n const prefetchDataChildren = prefetchData !== null ? prefetchData[1] : null;\n const parallelRoutes = new Map();\n for(let parallelRouteKey in routerStateChildren){\n const routerStateChild = routerStateChildren[parallelRouteKey];\n const prefetchDataChild = prefetchDataChildren !== null ? prefetchDataChildren[parallelRouteKey] : null;\n const segmentChild = routerStateChild[0];\n const segmentKeyChild = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_2__.createRouterCacheKey)(segmentChild);\n const newCacheNodeChild = createPendingCacheNode(routerStateChild, prefetchDataChild === undefined ? null : prefetchDataChild, prefetchHead, isPrefetchStale);\n const newSegmentMapChild = new Map();\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild);\n parallelRoutes.set(parallelRouteKey, newSegmentMapChild);\n }\n // The head is assigned to every leaf segment delivered by the server. Based\n // on corresponding logic in fill-lazy-items-till-leaf-with-head.ts\n const isLeafSegment = parallelRoutes.size === 0;\n const maybePrefetchRsc = prefetchData !== null ? prefetchData[2] : null;\n return {\n lazyData: null,\n parallelRoutes: parallelRoutes,\n prefetchRsc: // dynamic data to stream in.\n // TODO: This check is aruably too deep in the stack. Might be better to\n // pass an empty prefetchData Cache Seed object instead.\n !isPrefetchStale && maybePrefetchRsc !== undefined ? maybePrefetchRsc : null,\n prefetchHead: !isPrefetchStale && isLeafSegment ? prefetchHead : null,\n // Create a deferred promise. This will be fulfilled once the dynamic\n // response is received from the server.\n rsc: createDeferredRsc(),\n head: isLeafSegment ? createDeferredRsc() : null\n };\n}\nfunction finishPendingCacheNode(cacheNode, taskState, serverState, dynamicData, dynamicHead) {\n // Writes a dynamic response into an existing Cache Node tree. This does _not_\n // create a new tree, it updates the existing tree in-place. So it must follow\n // the Suspense rules of cache safety — it can resolve pending promises, but\n // it cannot overwrite existing data. It can add segments to the tree (because\n // a missing segment will cause the layout router to suspend).\n // but it cannot delete them.\n //\n // We must resolve every promise in the tree, or else it will suspend\n // indefinitely. If we did not receive data for a segment, we will resolve its\n // data promise to `null` to trigger a lazy fetch during render.\n const taskStateChildren = taskState[1];\n const serverStateChildren = serverState[1];\n const dataChildren = dynamicData[1];\n // The router state that we traverse the tree with (taskState) is the same one\n // that we used to construct the pending Cache Node tree. That way we're sure\n // to resolve all the pending promises.\n const parallelRoutes = cacheNode.parallelRoutes;\n for(let parallelRouteKey in taskStateChildren){\n const taskStateChild = taskStateChildren[parallelRouteKey];\n const serverStateChild = serverStateChildren[parallelRouteKey];\n const dataChild = dataChildren[parallelRouteKey];\n const segmentMapChild = parallelRoutes.get(parallelRouteKey);\n const taskSegmentChild = taskStateChild[0];\n const taskSegmentKeyChild = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_2__.createRouterCacheKey)(taskSegmentChild);\n const cacheNodeChild = segmentMapChild !== undefined ? segmentMapChild.get(taskSegmentKeyChild) : undefined;\n if (cacheNodeChild !== undefined) {\n if (serverStateChild !== undefined && (0,_match_segments__WEBPACK_IMPORTED_MODULE_1__.matchSegment)(taskSegmentChild, serverStateChild[0])) {\n if (dataChild !== undefined && dataChild !== null) {\n // This is the happy path. Recursively update all the children.\n finishPendingCacheNode(cacheNodeChild, taskStateChild, serverStateChild, dataChild, dynamicHead);\n } else {\n // The server never returned data for this segment. Trigger a lazy\n // fetch during render. This shouldn't happen because the Route Tree\n // and the Seed Data tree sent by the server should always be the same\n // shape when part of the same server response.\n abortPendingCacheNode(taskStateChild, cacheNodeChild, null);\n }\n } else {\n // The server never returned data for this segment. Trigger a lazy\n // fetch during render.\n abortPendingCacheNode(taskStateChild, cacheNodeChild, null);\n }\n } else {\n // The server response matches what was expected to receive, but there's\n // no matching Cache Node in the task tree. This is a bug in the\n // implementation because we should have created a node for every\n // segment in the tree that's associated with this task.\n }\n }\n // Use the dynamic data from the server to fulfill the deferred RSC promise\n // on the Cache Node.\n const rsc = cacheNode.rsc;\n const dynamicSegmentData = dynamicData[2];\n if (rsc === null) {\n // This is a lazy cache node. We can overwrite it. This is only safe\n // because we know that the LayoutRouter suspends if `rsc` is `null`.\n cacheNode.rsc = dynamicSegmentData;\n } else if (isDeferredRsc(rsc)) {\n // This is a deferred RSC promise. We can fulfill it with the data we just\n // received from the server. If it was already resolved by a different\n // navigation, then this does nothing because we can't overwrite data.\n rsc.resolve(dynamicSegmentData);\n } else {\n // This is not a deferred RSC promise, nor is it empty, so it must have\n // been populated by a different navigation. We must not overwrite it.\n }\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved with the dynamic head from\n // the server.\n const head = cacheNode.head;\n if (isDeferredRsc(head)) {\n head.resolve(dynamicHead);\n }\n}\nfunction abortTask(task, error) {\n const cacheNode = task.node;\n if (cacheNode === null) {\n // This indicates the task is already complete.\n return;\n }\n const taskChildren = task.children;\n if (taskChildren === null) {\n // Reached the leaf task node. This is the root of a pending cache\n // node tree.\n abortPendingCacheNode(task.route, cacheNode, error);\n } else {\n // This is an intermediate task node. Keep traversing until we reach a\n // task node with no children. That will be the root of the cache node tree\n // that needs to be resolved.\n for (const taskChild of taskChildren.values()){\n abortTask(taskChild, error);\n }\n }\n // Null this out to indicate that the task is complete.\n task.node = null;\n}\nfunction abortPendingCacheNode(routerState, cacheNode, error) {\n // For every pending segment in the tree, resolve its `rsc` promise to `null`\n // to trigger a lazy fetch during render.\n //\n // Or, if an error object is provided, it will error instead.\n const routerStateChildren = routerState[1];\n const parallelRoutes = cacheNode.parallelRoutes;\n for(let parallelRouteKey in routerStateChildren){\n const routerStateChild = routerStateChildren[parallelRouteKey];\n const segmentMapChild = parallelRoutes.get(parallelRouteKey);\n if (segmentMapChild === undefined) {\n continue;\n }\n const segmentChild = routerStateChild[0];\n const segmentKeyChild = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_2__.createRouterCacheKey)(segmentChild);\n const cacheNodeChild = segmentMapChild.get(segmentKeyChild);\n if (cacheNodeChild !== undefined) {\n abortPendingCacheNode(routerStateChild, cacheNodeChild, error);\n } else {\n // This shouldn't happen because we're traversing the same tree that was\n // used to construct the cache nodes in the first place.\n }\n }\n const rsc = cacheNode.rsc;\n if (isDeferredRsc(rsc)) {\n if (error === null) {\n // This will trigger a lazy fetch during render.\n rsc.resolve(null);\n } else {\n // This will trigger an error during rendering.\n rsc.reject(error);\n }\n }\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved. If an error was provided, we\n // will not resolve it with an error, since this is rendered at the root of\n // the app. We want the segment to error, not the entire app.\n const head = cacheNode.head;\n if (isDeferredRsc(head)) {\n head.resolve(null);\n }\n}\nfunction updateCacheNodeOnPopstateRestoration(oldCacheNode, routerState) {\n // A popstate navigation reads data from the local cache. It does not issue\n // new network requests (unless the cache entries have been evicted). So, we\n // update the cache to drop the prefetch data for any segment whose dynamic\n // data was already received. This prevents an unnecessary flash back to PPR\n // state during a back/forward navigation.\n //\n // This function clones the entire cache node tree and sets the `prefetchRsc`\n // field to `null` to prevent it from being rendered. We can't mutate the node\n // in place because this is a concurrent data structure.\n const routerStateChildren = routerState[1];\n const oldParallelRoutes = oldCacheNode.parallelRoutes;\n const newParallelRoutes = new Map(oldParallelRoutes);\n for(let parallelRouteKey in routerStateChildren){\n const routerStateChild = routerStateChildren[parallelRouteKey];\n const segmentChild = routerStateChild[0];\n const segmentKeyChild = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_2__.createRouterCacheKey)(segmentChild);\n const oldSegmentMapChild = oldParallelRoutes.get(parallelRouteKey);\n if (oldSegmentMapChild !== undefined) {\n const oldCacheNodeChild = oldSegmentMapChild.get(segmentKeyChild);\n if (oldCacheNodeChild !== undefined) {\n const newCacheNodeChild = updateCacheNodeOnPopstateRestoration(oldCacheNodeChild, routerStateChild);\n const newSegmentMapChild = new Map(oldSegmentMapChild);\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild);\n newParallelRoutes.set(parallelRouteKey, newSegmentMapChild);\n }\n }\n }\n // Only show prefetched data if the dynamic data is still pending.\n //\n // Tehnically, what we're actually checking is whether the dynamic network\n // response was received. But since it's a streaming response, this does not\n // mean that all the dynamic data has fully streamed in. It just means that\n // _some_ of the dynamic data was received. But as a heuristic, we assume that\n // the rest dynamic data will stream in quickly, so it's still better to skip\n // the prefetch state.\n const rsc = oldCacheNode.rsc;\n const shouldUsePrefetch = isDeferredRsc(rsc) && rsc.status === \"pending\";\n return {\n lazyData: null,\n rsc,\n head: oldCacheNode.head,\n prefetchHead: shouldUsePrefetch ? oldCacheNode.prefetchHead : null,\n prefetchRsc: shouldUsePrefetch ? oldCacheNode.prefetchRsc : null,\n // These are the cloned children we computed above\n parallelRoutes: newParallelRoutes\n };\n}\nconst DEFERRED = Symbol();\n// This type exists to distinguish a DeferredRsc from a Flight promise. It's a\n// compromise to avoid adding an extra field on every Cache Node, which would be\n// awkward because the pre-PPR parts of codebase would need to account for it,\n// too. We can remove it once type Cache Node type is more settled.\nfunction isDeferredRsc(value) {\n return value && value.tag === DEFERRED;\n}\nfunction createDeferredRsc() {\n let resolve;\n let reject;\n const pendingRsc = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n pendingRsc.status = \"pending\";\n pendingRsc.resolve = (value)=>{\n if (pendingRsc.status === \"pending\") {\n const fulfilledRsc = pendingRsc;\n fulfilledRsc.status = \"fulfilled\";\n fulfilledRsc.value = value;\n resolve(value);\n }\n };\n pendingRsc.reject = (error)=>{\n if (pendingRsc.status === \"pending\") {\n const rejectedRsc = pendingRsc;\n rejectedRsc.status = \"rejected\";\n rejectedRsc.reason = error;\n reject(error);\n }\n };\n pendingRsc.tag = DEFERRED;\n return pendingRsc;\n} //# sourceMappingURL=ppr-navigations.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcHByLW5hdmlnYXRpb25zLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBb0Y7QUFDbkM7QUFDZ0I7QUFDakUseUVBQXlFO0FBQ3pFLGdGQUFnRjtBQUNoRixnREFBZ0Q7QUFDaEQsRUFBRTtBQUNGLDhFQUE4RTtBQUM5RSw4RUFBOEU7QUFDOUUsZ0ZBQWdGO0FBQ2hGLGVBQWU7QUFDZixFQUFFO0FBQ0YsZ0ZBQWdGO0FBQ2hGLDZFQUE2RTtBQUM3RSxrRUFBa0U7QUFDbEUsRUFBRTtBQUNGLGdGQUFnRjtBQUNoRixtQkFBbUI7QUFDbkIsRUFBRTtBQUNGLHdFQUF3RTtBQUN4RSxnRkFBZ0Y7QUFDaEYsdUNBQXVDO0FBQ3ZDLEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNkVBQTZFO0FBQzdFLCtEQUErRDtBQUMvRCxFQUFFO0FBQ0YsK0VBQStFO0FBQy9FLCtFQUErRTtBQUMvRSxFQUFFO0FBQ0YsOEVBQThFO0FBQzlFLHFEQUFxRDtBQUM5QyxTQUFTSSw0QkFBNEJDLFlBQVksRUFBRUMsY0FBYyxFQUFFQyxjQUFjLEVBQUVDLFlBQVksRUFBRUMsWUFBWSxFQUFFQyxlQUFlO0lBQ2pJLDBEQUEwRDtJQUMxRCxNQUFNQyx5QkFBeUJMLGNBQWMsQ0FBQyxFQUFFO0lBQ2hELE1BQU1NLHlCQUF5QkwsY0FBYyxDQUFDLEVBQUU7SUFDaEQsTUFBTU0sdUJBQXVCTCxZQUFZLENBQUMsRUFBRTtJQUM1QyxNQUFNTSxvQkFBb0JULGFBQWFVLGNBQWM7SUFDckQsMkVBQTJFO0lBQzNFLGdCQUFnQjtJQUNoQiwwRUFBMEU7SUFDMUUsMEVBQTBFO0lBQzFFLDRFQUE0RTtJQUM1RSwyRUFBMkU7SUFDM0UsMEVBQTBFO0lBQzFFLHVFQUF1RTtJQUN2RSx5RUFBeUU7SUFDekUsd0VBQXdFO0lBQ3hFLCtCQUErQjtJQUMvQixNQUFNQyx5QkFBeUIsSUFB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V0FBV0QsR0FBRyxHQUFHSDtJQUNqQixPQUFPSTtBQUNYLEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9wcHItbmF2aWdhdGlvbnMuanM/YjEzMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX1NFR01FTlRfS0VZLCBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiO1xuaW1wb3J0IHsgbWF0Y2hTZWdtZW50IH0gZnJvbSBcIi4uL21hdGNoLXNlZ21lbnRzXCI7XG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gXCIuL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5XCI7XG4vLyBDcmVhdGVzIGEgbmV3IENhY2hlIE5vZGUgdHJlZSAoaS5lLiBjb3B5LW9uLXdyaXRlKSB0aGF0IHJlcHJlc2VudHMgdGhlXG4vLyBvcHRpbWlzdGljIHJlc3VsdCBvZiBhIG5hdmlnYXRpb24sIHVzaW5nIGJvdGggdGhlIGN1cnJlbnQgQ2FjaGUgTm9kZSB0cmVlIGFuZFxuLy8gZGF0YSB0aGF0IHdhcyBwcmVmZXRjaGVkIHByaW9yIHRvIG5hdmlnYXRpb24uXG4vL1xuLy8gQXQgdGhlIG1vbWVudCB3ZSBjYWxsIHRoaXMgZnVuY3Rpb24sIHdlIGhhdmVuJ3QgeWV0IHJlY2VpdmVkIHRoZSBuYXZpZ2F0aW9uXG4vLyByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuIEl0IGNvdWxkIHNlbmQgYmFjayBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnRcbi8vIGZyb20gdGhlIHRyZWUgdGhhdCB3YXMgcHJlZmV0Y2hlZCDigJQgZHVlIHRvIHJld3JpdGVzLCBkZWZhdWx0IHJvdXRlcywgcGFyYWxsZWxcbi8vIHJvdXRlcywgZXRjLlxuLy9cbi8vIEJ1dCBpbiBtb3N0IGNhc2VzLCBpdCB3aWxsIHJldHVybiB0aGUgc2FtZSB0cmVlIHRoYXQgd2UgcHJlZmV0Y2hlZCwganVzdCB3aXRoXG4vLyB0aGUgZHluYW1pYyBob2xlcyBmaWxsZWQgaW4uIFNvIHdlIG9wdGltaXN0aWNhbGx5IGFzc3VtZSB0aGlzIHdpbGwgaGFwcGVuLFxuLy8gYW5kIGFjY2VwdCB0aGF0IHRoZSByZWFsIHJlc3VsdCBjb3VsZCBiZSBhcmJpdHJhcmlseSBkaWZmZXJlbnQuXG4vL1xuLy8gV2UnbGwgcmV1c2UgYW55dGhpbmcgdGhhdCB3YXMgYWxyZWFkeSBpbiB0aGUgcHJldmlvdXMgdHJlZSwgc2luY2UgdGhhdCdzIHdoYXRcbi8vIHRoZSBzZXJ2ZXIgZG9lcy5cbi8vXG4vLyBOZXcgc2VnbWVudHMgKG9uZXMgdGhhdCBkb24ndCBhcHBlYXIgaW4gdGhlIG9sZCB0cmVlKSBhcmUgYXNzaWduZWQgYW5cbi8vIHVucmVzb2x2ZWQgcHJvbWlzZS4gVGhlIGRhdGEgZm9yIHRoZXNlIHByb21pc2VzIHdpbGwgYmUgZnVsZmlsbGVkIGxhdGVyLCB3aGVuXG4vLyB0aGUgbmF2aWdhdGlvbiByZXNwb25zZSBpcyByZWNlaXZlZC5cbi8vXG4vLyBUaGUgdHJlZSBjYW4gYmUgcmVuZGVyZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgaXQgaXMgY3JlYXRlZCAodGhhdCdzIHdoeSB0aGlzIGlzXG4vLyBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uKS4gQW55IG5ldyB0cmVlcyB0aGF0IGRvIG5vdCBoYXZlIHByZWZldGNoIGRhdGEgd2lsbFxuLy8gc3VzcGVuZCBkdXJpbmcgcmVuZGVyaW5nLCB1bnRpbCB0aGUgZHluYW1pYyBkYXRhIHN0cmVhbXMgaW4uXG4vL1xuLy8gUmV0dXJucyBhIFRhc2sgb2JqZWN0LCB3aGljaCBjb250YWlucyBib3RoIHRoZSB1cGRhdGVkIENhY2hlIE5vZGUgYW5kIGEgcGF0aFxuLy8gdG8gdGhlIHBlbmRpbmcgc3VidHJlZXMgdGhhdCBuZWVkIHRvIGJlIHJlc29sdmVkIGJ5IHRoZSBuYXZpZ2F0aW9uIHJlc3BvbnNlLlxuLy9cbi8vIEEgcmV0dXJuIHZhbHVlIG9mIGBudWxsYCBtZWFucyB0aGVyZSB3ZXJlIG5vIGNoYW5nZXMsIGFuZCB0aGUgcHJldmlvdXMgdHJlZVxuLy8gY2FuIGJlIHJldXNlZCB3aXRob3V0IGluaXRpYXRpbmcgYSBzZXJ2ZXIgcmVxdWVzdC5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24ob2xkQ2FjaGVOb2RlLCBvbGRSb3V0ZXJTdGF0ZSwgbmV3Um91dGVyU3RhdGUsIHByZWZldGNoRGF0YSwgcHJlZmV0Y2hIZWFkLCBpc1ByZWZldGNoU3RhbGUpIHtcbiAgICAvLyBEaWZmIHRoZSBvbGQgYW5kIG5ldyB0cmVlcyB0byByZXVzZSB0aGUgc2hhcmVkIGxheW91dHMuXG4gICAgY29uc3Qgb2xkUm91dGVyU3RhdGVDaGlsZHJlbiA9IG9sZFJvdXRlclN0YXRlWzFdO1xuICAgIGNvbnN0IG5ld1JvdXRlclN0YXRlQ2hpbGRyZW4gPSBuZXdSb3V0ZXJTdGF0ZVsxXTtcbiAgICBjb25zdCBwcmVmZXRjaERhdGFDaGlsZHJlbiA9IHByZWZldGNoRGF0YVsxXTtcbiAgICBjb25zdCBvbGRQYXJhbGxlbFJvdXRlcyA9IG9sZENhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcztcbiAgICAvLyBDbG9uZSB0aGUgY3VycmVudCBzZXQgb2Ygc2VnbWVudCBjaGlsZHJlbiwgZXZlbiBpZiB0aGV5IGFyZW4ndCBhY3RpdmUgaW5cbiAgICAvLyB0aGUgbmV3IHRyZWUuXG4gICAgLy8gVE9ETzogV2UgY3VycmVudGx5IHJldGFpbiBhbGwgdGhlIGluYWN0aXZlIHNlZ21lbnRzIGluZGVmaW5pdGVseSwgdW50aWxcbiAgICAvLyB0aGVyZSdzIGFuIGV4cGxpY2l0IHJlZnJlc2gsIG9yIGEgcGFyZW50IGxheW91dCBpcyBsYXppbHkgcmVmcmVzaGVkLiBXZVxuICAgIC8vIHJlbHkgb24gdGhpcyBmb3IgcG9wc3RhdGUgbmF2aWdhdGlvbnMsIHdoaWNoIHVwZGF0ZSB0aGUgUm91dGVyIFN0YXRlIFRyZWVcbiAgICAvLyBidXQgZG8gbm90IGVhZ2VybHkgcGVyZm9ybSBhIGRhdGEgZmV0Y2gsIGJlY2F1c2UgdGhleSBleHBlY3QgdGhlIHNlZ21lbnRcbiAgICAvLyBkYXRhIHRvIGFscmVhZHkgYmUgaW4gdGhlIENhY2hlIE5vZGUgdHJlZS4gRm9yIGhpZ2hseSBzdGF0aWMgc2l0ZXMgdGhhdFxuICAgIC8vIGFyZSBtb3N0bHkgcmVhZC1vbmx5LCB0aGlzIG1heSBoYXBwZW4gb25seSByYXJlbHksIGNhdXNpbmcgbWVtb3J5IHRvXG4gICAgLy8gbGVhay4gV2Ugc2hvdWxkIGZpZ3VyZSBvdXQgYSBiZXR0ZXIgbW9kZWwgZm9yIHRoZSBsaWZldGltZSBvZiBpbmFjdGl2ZVxuICAgIC8vIHNlZ21lbnRzLCBzbyB3ZSBjYW4gbWFpbnRhaW4gaW5zdGFudCBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbnMgd2l0aG91dFxuICAgIC8vIGxlYWtpbmcgbWVtb3J5IGluZGVmaW5pdGVseS5cbiAgICBjb25zdCBwcmVmZXRjaFBhcmFsbGVsUm91dGVzID0gbmV3IE1hcChvbGRQYXJhbGxlbFJvdXRlcyk7XG4gICAgLy8gQXMgd2UgZGlmZiB0aGUgdHJlZXMsIHdlIG1heSBzb21ldGltZXMgbW9kaWZ5IChjb3B5LW9uLXdyaXRlLCBub3QgbXV0YXRlKVxuICAgIC8vIHRoZSBSb3V0ZSBUcmVlIHRoYXQgd2FzIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIg4oCUIGZvciBleGFtcGxlLCBpbiB0aGUgY2FzZVxuICAgIC8vIG9mIGRlZmF1bHQgcGFyYWxsZWwgcm91dGVzLCB3ZSBwcmVzZXJ2ZSB0aGUgY3VycmVudGx5IGFjdGl2ZSBzZWdtZW50LiBUb1xuICAgIC8vIGF2b2lkIG11dGF0aW5nIHRoZSBvcmlnaW5hbCB0cmVlLCB3ZSBjbG9uZSB0aGUgcm91dGVyIHN0YXRlIGNoaWxkcmVuIGFsb25nXG4gICAgLy8gdGhlIHJldHVybiBwYXRoLlxuICAgIGxldCBwYXRjaGVkUm91dGVyU3RhdGVDaGlsZHJlbiA9IHt9O1xuICAgIGxldCB0YXNrQ2hpbGRyZW4gPSBudWxsO1xuICAgIGZvcihsZXQgcGFyYWxsZWxSb3V0ZUtleSBpbiBuZXdSb3V0ZXJTdGF0ZUNoaWxkcmVuKXtcbiAgICAgICAgY29uc3QgbmV3Um91dGVyU3RhdGVDaGlsZCA9IG5ld1JvdXRlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV07XG4gICAgICAgIGNvbnN0IG9sZFJvdXRlclN0YXRlQ2hpbGQgPSBvbGRSb3V0ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldO1xuICAgICAgICBjb25zdCBvbGRTZWdtZW50TWFwQ2hpbGQgPSBvbGRQYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSk7XG4gICAgICAgIGNvbnN0IHByZWZldGNoRGF0YUNoaWxkID0gcHJlZmV0Y2hEYXRhQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV07XG4gICAgICAgIGNvbnN0IG5ld1NlZ21lbnRDaGlsZCA9IG5ld1JvdXRlclN0YXRlQ2hpbGRbMF07XG4gICAgICAgIGNvbnN0IG5ld1NlZ21lbnRLZXlDaGlsZCA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KG5ld1NlZ21lbnRDaGlsZCk7XG4gICAgICAgIGNvbnN0IG9sZFNlZ21lbnRDaGlsZCA9IG9sZFJvdXRlclN0YXRlQ2hpbGQgIT09IHVuZGVmaW5lZCA/IG9sZFJvdXRlclN0YXRlQ2hpbGRbMF0gOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG9sZENhY2hlTm9kZUNoaWxkID0gb2xkU2VnbWVudE1hcENoaWxkICE9PSB1bmRlZmluZWQgPyBvbGRTZWdtZW50TWFwQ2hpbGQuZ2V0KG5ld1NlZ21lbnRLZXlDaGlsZCkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGxldCB0YXNrQ2hpbGQ7XG4gICAgICAgIGlmIChuZXdTZWdtZW50Q2hpbGQgPT09IFBBR0VfU0VHTUVOVF9LRVkpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBsZWFmIHNlZ21lbnQg4oCUIGEgcGFnZSwgbm90IGEgc2hhcmVkIGxheW91dC4gV2UgYWx3YXlzIGFwcGx5XG4gICAgICAgICAgICAvLyBpdHMgZGF0YS5cbiAgICAgICAgICAgIHRhc2tDaGlsZCA9IHNwYXduUGVuZGluZ1Rhc2sobmV3Um91dGVyU3RhdGVDaGlsZCwgcHJlZmV0Y2hEYXRhQ2hpbGQgIT09IHVuZGVmaW5lZCA/IHByZWZldGNoRGF0YUNoaWxkIDogbnVsbCwgcHJlZmV0Y2hIZWFkLCBpc1ByZWZldGNoU3RhbGUpO1xuICAgICAgICB9IGVsc2UgaWYgKG5ld1NlZ21lbnRDaGlsZCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWSkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBhbm90aGVyIGtpbmQgb2YgbGVhZiBzZWdtZW50IOKAlCBhIGRlZmF1bHQgcm91dGUuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gRGVmYXVsdCByb3V0ZXMgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yLiBXaGVuIHRoZXJlJ3Mgbm8gbWF0Y2hpbmcgc2VnbWVudFxuICAgICAgICAgICAgLy8gZm9yIGEgcGFyYWxsZWwgcm91dGUsIE5leHQuanMgcHJlc2VydmVzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHNlZ21lbnRcbiAgICAgICAgICAgIC8vIGR1cmluZyBhIGNsaWVudCBuYXZpZ2F0aW9uIOKAlCBidXQgbm90IGZvciBpbml0aWFsIHJlbmRlci4gVGhlIHNlcnZlclxuICAgICAgICAgICAgLy8gbGVhdmVzIGl0IHRvIHRoZSBjbGllbnQgdG8gYWNjb3VudCBmb3IgdGhpcy4gU28gd2UgbmVlZCB0byBoYW5kbGVcbiAgICAgICAgICAgIC8vIGl0IGhlcmUuXG4gICAgICAgICAgICBpZiAob2xkUm91dGVyU3RhdGVDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgLy8gUmV1c2UgdGhlIGV4aXN0aW5nIFJvdXRlciBTdGF0ZSBmb3IgdGhpcyBzZWdtZW50LiBXZSBzcGF3biBhIFwidGFza1wiXG4gICAgICAgICAgICAgICAgLy8ganVzdCB0byBrZWVwIHRyYWNrIG9mIHRoZSB1cGRhdGVkIHJvdXRlciBzdGF0ZTsgdW5saWtlIG1vc3QsIGl0J3NcbiAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGZ1bGZpbGxlZCBhbmQgd29uJ3QgYmUgYWZmZWN0ZWQgYnkgdGhlIGR5bmFtaWMgcmVzcG9uc2UuXG4gICAgICAgICAgICAgICAgdGFza0NoaWxkID0gc3Bhd25SZXVzZWRUYXNrKG9sZFJvdXRlclN0YXRlQ2hpbGQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVyZSdzIG5vIGN1cnJlbnRseSBhY3RpdmUgc2VnbWVudC4gU3dpdGNoIHRvIHRoZSBcImNyZWF0ZVwiIHBhdGguXG4gICAgICAgICAgICAgICAgdGFza0NoaWxkID0gc3Bhd25QZW5kaW5nVGFzayhuZXdSb3V0ZXJTdGF0ZUNoaWxkLCBwcmVmZXRjaERhdGFDaGlsZCAhPT0gdW5kZWZpbmVkID8gcHJlZmV0Y2hEYXRhQ2hpbGQgOiBudWxsLCBwcmVmZXRjaEhlYWQsIGlzUHJlZmV0Y2hTdGFsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob2xkU2VnbWVudENoaWxkICE9PSB1bmRlZmluZWQgJiYgbWF0Y2hTZWdtZW50KG5ld1NlZ21lbnRDaGlsZCwgb2xkU2VnbWVudENoaWxkKSkge1xuICAgICAgICAgICAgaWYgKG9sZENhY2hlTm9kZUNoaWxkICE9PSB1bmRlZmluZWQgJiYgb2xkUm91dGVyU3RhdGVDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBzZWdtZW50IGV4aXN0cyBpbiBib3RoIHRoZSBvbGQgYW5kIG5ldyB0cmVlcy5cbiAgICAgICAgICAgICAgICBpZiAocHJlZmV0Y2hEYXRhQ2hpbGQgIT09IHVuZGVmaW5lZCAmJiBwcmVmZXRjaERhdGFDaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBSZWN1cnNpdmVseSB1cGRhdGUgdGhlIGNoaWxkcmVuLlxuICAgICAgICAgICAgICAgICAgICB0YXNrQ2hpbGQgPSB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24ob2xkQ2FjaGVOb2RlQ2hpbGQsIG9sZFJvdXRlclN0YXRlQ2hpbGQsIG5ld1JvdXRlclN0YXRlQ2hpbGQsIHByZWZldGNoRGF0YUNoaWxkLCBwcmVmZXRjaEhlYWQsIGlzUHJlZmV0Y2hTdGFsZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHNlcnZlciBkaWRuJ3Qgc2VuZCBhbnkgcHJlZmV0Y2ggZGF0YSBmb3IgdGhpcyBzZWdtZW50LiBUaGlzXG4gICAgICAgICAgICAgICAgICAgIC8vIHNob3VsZG4ndCBoYXBwZW4gYmVjYXVzZSB0aGUgUm91dGUgVHJlZSBhbmQgdGhlIFNlZWQgRGF0YSB0cmVlXG4gICAgICAgICAgICAgICAgICAgIC8vIHNob3VsZCBhbHdheXMgYmUgdGhlIHNhbWUgc2hhcGUsIGJ1dCB1bnRpbCB3ZSB1bmlmeSB0aG9zZSB0eXBlc1xuICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIHN0aWxsIHBvc3NpYmxlLiBGb3Igbm93IHdlJ3JlIGdvaW5nIHRvIGRlb3B0IGFuZCB0cmlnZ2VyIGFcbiAgICAgICAgICAgICAgICAgICAgLy8gbGF6eSBmZXRjaCBkdXJpbmcgcmVuZGVyLlxuICAgICAgICAgICAgICAgICAgICB0YXNrQ2hpbGQgPSBzcGF3blRhc2tGb3JNaXNzaW5nRGF0YShuZXdSb3V0ZXJTdGF0ZUNoaWxkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEVpdGhlciB0aGVyZSdzIG5vIGV4aXN0aW5nIENhY2hlIE5vZGUgZm9yIHRoaXMgc2VnbWVudCwgb3IgdGhpc1xuICAgICAgICAgICAgICAgIC8vIHNlZ21lbnQgZG9lc24ndCBleGlzdCBpbiB0aGUgb2xkIFJvdXRlciBTdGF0ZSB0cmVlLiBTd2l0Y2ggdG8gdGhlXG4gICAgICAgICAgICAgICAgLy8gXCJjcmVhdGVcIiBwYXRoLlxuICAgICAgICAgICAgICAgIHRhc2tDaGlsZCA9IHNwYXduUGVuZGluZ1Rhc2sobmV3Um91dGVyU3RhdGVDaGlsZCwgcHJlZmV0Y2hEYXRhQ2hpbGQgIT09IHVuZGVmaW5lZCA/IHByZWZldGNoRGF0YUNoaWxkIDogbnVsbCwgcHJlZmV0Y2hIZWFkLCBpc1ByZWZldGNoU3RhbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBhIG5ldyB0cmVlLiBTd2l0Y2ggdG8gdGhlIFwiY3JlYXRlXCIgcGF0aC5cbiAgICAgICAgICAgIHRhc2tDaGlsZCA9IHNwYXduUGVuZGluZ1Rhc2sobmV3Um91dGVyU3RhdGVDaGlsZCwgcHJlZmV0Y2hEYXRhQ2hpbGQgIT09IHVuZGVmaW5lZCA/IHByZWZldGNoRGF0YUNoaWxkIDogbnVsbCwgcHJlZmV0Y2hIZWFkLCBpc1ByZWZldGNoU3RhbGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXNrQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFNvbWV0aGluZyBjaGFuZ2VkIGluIHRoZSBjaGlsZCB0cmVlLiBLZWVwIHRyYWNrIG9mIHRoZSBjaGlsZCB0YXNrLlxuICAgICAgICAgICAgaWYgKHRhc2tDaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRhc2tDaGlsZHJlbiA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhc2tDaGlsZHJlbi5zZXQocGFyYWxsZWxSb3V0ZUtleSwgdGFza0NoaWxkKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NhY2hlTm9kZUNoaWxkID0gdGFza0NoaWxkLm5vZGU7XG4gICAgICAgICAgICBpZiAobmV3Q2FjaGVOb2RlQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWdtZW50TWFwQ2hpbGQgPSBuZXcgTWFwKG9sZFNlZ21lbnRNYXBDaGlsZCk7XG4gICAgICAgICAgICAgICAgbmV3U2VnbWVudE1hcENoaWxkLnNldChuZXdTZWdtZW50S2V5Q2hpbGQsIG5ld0NhY2hlTm9kZUNoaWxkKTtcbiAgICAgICAgICAgICAgICBwcmVmZXRjaFBhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlS2V5LCBuZXdTZWdtZW50TWFwQ2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVGhlIGNoaWxkIHRyZWUncyByb3V0ZSBzdGF0ZSBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIHByZWZldGNoZWRcbiAgICAgICAgICAgIC8vIHJvdXRlIHNlbnQgYnkgdGhlIHNlcnZlci4gV2UgbmVlZCB0byBjbG9uZSBpdCBhcyB3ZSB0cmF2ZXJzZSBiYWNrIHVwXG4gICAgICAgICAgICAvLyB0aGUgdHJlZS5cbiAgICAgICAgICAgIHBhdGNoZWRSb3V0ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldID0gdGFza0NoaWxkLnJvdXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhlIGNoaWxkIGRpZG4ndCBjaGFuZ2UuIFdlIGNhbiB1c2UgdGhlIHByZWZldGNoZWQgcm91dGVyIHN0YXRlLlxuICAgICAgICAgICAgcGF0Y2hlZFJvdXRlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV0gPSBuZXdSb3V0ZXJTdGF0ZUNoaWxkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0YXNrQ2hpbGRyZW4gPT09IG51bGwpIHtcbiAgICAgICAgLy8gTm8gbmV3IHRhc2tzIHdlcmUgc3Bhd25lZC5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIHJzYzogb2xkQ2FjaGVOb2RlLnJzYyxcbiAgICAgICAgLy8gV2UgaW50ZW50aW9uYWxseSBhcmVuJ3QgdXBkYXRpbmcgdGhlIHByZWZldGNoUnNjIGZpZWxkLCBzaW5jZSB0aGlzIG5vZGVcbiAgICAgICAgLy8gaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBjdXJyZW50IHRyZWUsIGJlY2F1c2UgaXQgd291bGQgYmUgd2VpcmQgZm9yXG4gICAgICAgIC8vIHByZWZldGNoIGRhdGEgdG8gYmUgbmV3ZXIgdGhhbiB0aGUgZmluYWwgZGF0YS4gSXQgcHJvYmFibHkgd29uJ3QgZXZlciBiZVxuICAgICAgICAvLyBvYnNlcnZhYmxlIGFueXdheSwgYnV0IGl0IGNvdWxkIGhhcHBlbiBpZiB0aGUgc2VnbWVudCBpcyB1bm1vdW50ZWQgdGhlblxuICAgICAgICAvLyBtb3VudGVkIGFnYWluLCBiZWNhdXNlIExheW91dFJvdXRlciB3aWxsIG1vbWVudGFyaWx5IHN3aXRjaCB0byByZW5kZXJpbmdcbiAgICAgICAgLy8gcHJlZmV0Y2hSc2MsIHZpYSB1c2VEZWZlcnJlZFZhbHVlLlxuICAgICAgICBwcmVmZXRjaFJzYzogb2xkQ2FjaGVOb2RlLnByZWZldGNoUnNjLFxuICAgICAgICBoZWFkOiBvbGRDYWNoZU5vZGUuaGVhZCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkOiBvbGRDYWNoZU5vZGUucHJlZmV0Y2hIZWFkLFxuICAgICAgICAvLyBFdmVyeXRoaW5nIGlzIGNsb25lZCBleGNlcHQgZm9yIHRoZSBjaGlsZHJlbiwgd2hpY2ggd2UgY29tcHV0ZWQgYWJvdmUuXG4gICAgICAgIHBhcmFsbGVsUm91dGVzOiBwcmVmZXRjaFBhcmFsbGVsUm91dGVzXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBSZXR1cm4gYSBjbG9uZWQgY29weSBvZiB0aGUgcm91dGVyIHN0YXRlIHdpdGggdXBkYXRlZCBjaGlsZHJlbi5cbiAgICAgICAgcm91dGU6IHBhdGNoUm91dGVyU3RhdGVXaXRoTmV3Q2hpbGRyZW4obmV3Um91dGVyU3RhdGUsIHBhdGNoZWRSb3V0ZXJTdGF0ZUNoaWxkcmVuKSxcbiAgICAgICAgbm9kZTogbmV3Q2FjaGVOb2RlLFxuICAgICAgICBjaGlsZHJlbjogdGFza0NoaWxkcmVuXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHBhdGNoUm91dGVyU3RhdGVXaXRoTmV3Q2hpbGRyZW4oYmFzZVJvdXRlclN0YXRlLCBuZXdDaGlsZHJlbikge1xuICAgIGNvbnN0IGNsb25lID0gW1xuICAgICAgICBiYXNlUm91dGVyU3RhdGVbMF0sXG4gICAgICAgIG5ld0NoaWxkcmVuXG4gICAgXTtcbiAgICAvLyBCYXNlZCBvbiBlcXVpdmFsZW50IGxvZ2ljIGluIGFwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlLCBidXQgc2hvdWxkXG4gICAgLy8gY29uZmlybSB3aGV0aGVyIHdlIG5lZWQgdG8gY29weSBhbGwgb2YgdGhlc2UgZmllbGRzLiBOb3Qgc3VyZSB0aGUgc2VydmVyXG4gICAgLy8gZXZlciBzZW5kcywgZS5nLiB0aGUgcmVmZXRjaCBtYXJrZXIuXG4gICAgaWYgKDIgaW4gYmFzZVJvdXRlclN0YXRlKSB7XG4gICAgICAgIGNsb25lWzJdID0gYmFzZVJvdXRlclN0YXRlWzJdO1xuICAgIH1cbiAgICBpZiAoMyBpbiBiYXNlUm91dGVyU3RhdGUpIHtcbiAgICAgICAgY2xvbmVbM10gPSBiYXNlUm91dGVyU3RhdGVbM107XG4gICAgfVxuICAgIGlmICg0IGluIGJhc2VSb3V0ZXJTdGF0ZSkge1xuICAgICAgICBjbG9uZVs0XSA9IGJhc2VSb3V0ZXJTdGF0ZVs0XTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lO1xufVxuZnVuY3Rpb24gc3Bhd25QZW5kaW5nVGFzayhyb3V0ZXJTdGF0ZSwgcHJlZmV0Y2hEYXRhLCBwcmVmZXRjaEhlYWQsIGlzUHJlZmV0Y2hTdGFsZSkge1xuICAgIC8vIENyZWF0ZSBhIHRhc2sgdGhhdCB3aWxsIGxhdGVyIGJlIGZ1bGZpbGxlZCBieSBkYXRhIGZyb20gdGhlIHNlcnZlci5cbiAgICBjb25zdCBwZW5kaW5nQ2FjaGVOb2RlID0gY3JlYXRlUGVuZGluZ0NhY2hlTm9kZShyb3V0ZXJTdGF0ZSwgcHJlZmV0Y2hEYXRhLCBwcmVmZXRjaEhlYWQsIGlzUHJlZmV0Y2hTdGFsZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcm91dGU6IHJvdXRlclN0YXRlLFxuICAgICAgICBub2RlOiBwZW5kaW5nQ2FjaGVOb2RlLFxuICAgICAgICBjaGlsZHJlbjogbnVsbFxuICAgIH07XG59XG5mdW5jdGlvbiBzcGF3blJldXNlZFRhc2socmV1c2VkUm91dGVyU3RhdGUpIHtcbiAgICAvLyBDcmVhdGUgYSB0YXNrIHRoYXQgcmV1c2VzIGFuIGV4aXN0aW5nIHNlZ21lbnQsIGUuZy4gd2hlbiByZXVzaW5nXG4gICAgLy8gdGhlIGN1cnJlbnQgYWN0aXZlIHNlZ21lbnQgaW4gcGxhY2Ugb2YgYSBkZWZhdWx0IHJvdXRlLlxuICAgIHJldHVybiB7XG4gICAgICAgIHJvdXRlOiByZXVzZWRSb3V0ZXJTdGF0ZSxcbiAgICAgICAgbm9kZTogbnVsbCxcbiAgICAgICAgY2hpbGRyZW46IG51bGxcbiAgICB9O1xufVxuZnVuY3Rpb24gc3Bhd25UYXNrRm9yTWlzc2luZ0RhdGEocm91dGVyU3RhdGUpIHtcbiAgICAvLyBDcmVhdGUgYSB0YXNrIGZvciBhIG5ldyBzdWJ0cmVlIHRoYXQgd2Fzbid0IHByZWZldGNoZWQgYnkgdGhlIHNlcnZlci5cbiAgICAvLyBUaGlzIHNob3VsZG4ndCByZWFsbHkgZXZlciBoYXBwZW4gYnV0IGl0J3MgaGVyZSBqdXN0IGluIGNhc2UgdGhlIFNlZWQgRGF0YVxuICAgIC8vIFRyZWUgYW5kIHRoZSBSb3V0ZXIgU3RhdGUgVHJlZSBkaXNhZ3JlZSB1bmV4cGVjdGVkbHkuXG4gICAgY29uc3QgcGVuZGluZ0NhY2hlTm9kZSA9IGNyZWF0ZVBlbmRpbmdDYWNoZU5vZGUocm91dGVyU3RhdGUsIG51bGwsIG51bGwsIGZhbHNlKTtcbiAgICByZXR1cm4ge1xuICAgICAgICByb3V0ZTogcm91dGVyU3RhdGUsXG4gICAgICAgIG5vZGU6IHBlbmRpbmdDYWNoZU5vZGUsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsXG4gICAgfTtcbn1cbi8vIFdyaXRlcyBhIGR5bmFtaWMgc2VydmVyIHJlc3BvbnNlIGludG8gdGhlIHRyZWUgY3JlYXRlZCBieVxuLy8gdXBkYXRlQ2FjaGVOb2RlT25OYXZpZ2F0aW9uLiBBbGwgcGVuZGluZyBwcm9taXNlcyB0aGF0IHdlcmUgc3Bhd25lZCBieSB0aGVcbi8vIG5hdmlnYXRpb24gd2lsbCBiZSByZXNvbHZlZCwgZWl0aGVyIHdpdGggZHluYW1pYyBkYXRhIGZyb20gdGhlIHNlcnZlciwgb3Jcbi8vIGBudWxsYCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBkYXRhIGlzIG1pc3NpbmcuXG4vL1xuLy8gQSBgbnVsbGAgdmFsdWUgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaCBkdXJpbmcgcmVuZGVyLCB3aGljaCB3aWxsIHRoZW4gcGF0Y2hcbi8vIHVwIHRoZSB0cmVlIHVzaW5nIHRoZSBzYW1lIG1lY2hhbmlzbSBhcyB0aGUgbm9uLVBQUiBpbXBsZW1lbnRhdGlvblxuLy8gKHNlcnZlclBhdGNoUmVkdWNlcikuXG4vL1xuLy8gVXN1YWxseSwgdGhlIHNlcnZlciB3aWxsIHJlc3BvbmQgd2l0aCBleGFjdGx5IHRoZSBzdWJzZXQgb2YgZGF0YSB0aGF0IHdlJ3JlXG4vLyB3YWl0aW5nIGZvciDigJQgZXZlcnl0aGluZyBiZWxvdyB0aGUgbmVhcmVzdCBzaGFyZWQgbGF5b3V0LiBCdXQgdGVjaG5pY2FsbHksXG4vLyB0aGUgc2VydmVyIGNhbiByZXR1cm4gYW55dGhpbmcgaXQgd2FudHMuXG4vL1xuLy8gVGhpcyBkb2VzIF9ub3RfIGNyZWF0ZSBhIG5ldyB0cmVlOyBpdCBtb2RpZmllcyB0aGUgZXhpc3Rpbmcgb25lIGluIHBsYWNlLlxuLy8gV2hpY2ggbWVhbnMgaXQgbXVzdCBmb2xsb3cgdGhlIFN1c3BlbnNlIHJ1bGVzIG9mIGNhY2hlIHNhZmV0eS5cbmV4cG9ydCBmdW5jdGlvbiBsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCh0YXNrLCByZXNwb25zZVByb21pc2UpIHtcbiAgICByZXNwb25zZVByb21pc2UudGhlbigocmVzcG9uc2UpPT57XG4gICAgICAgIGNvbnN0IGZsaWdodERhdGEgPSByZXNwb25zZVswXTtcbiAgICAgICAgZm9yIChjb25zdCBmbGlnaHREYXRhUGF0aCBvZiBmbGlnaHREYXRhKXtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRQYXRoID0gZmxpZ2h0RGF0YVBhdGguc2xpY2UoMCwgLTMpO1xuICAgICAgICAgICAgY29uc3Qgc2VydmVyUm91dGVyU3RhdGUgPSBmbGlnaHREYXRhUGF0aFtmbGlnaHREYXRhUGF0aC5sZW5ndGggLSAzXTtcbiAgICAgICAgICAgIGNvbnN0IGR5bmFtaWNEYXRhID0gZmxpZ2h0RGF0YVBhdGhbZmxpZ2h0RGF0YVBhdGgubGVuZ3RoIC0gMl07XG4gICAgICAgICAgICBjb25zdCBkeW5hbWljSGVhZCA9IGZsaWdodERhdGFQYXRoW2ZsaWdodERhdGFQYXRoLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBzZWdtZW50UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JpdGVEeW5hbWljRGF0YUludG9QZW5kaW5nVGFzayh0YXNrLCBzZWdtZW50UGF0aCwgc2VydmVyUm91dGVyU3RhdGUsIGR5bmFtaWNEYXRhLCBkeW5hbWljSGVhZCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm93IHRoYXQgd2UndmUgZXhoYXVzdGVkIGFsbCB0aGUgZGF0YSB3ZSByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIsIGlmXG4gICAgICAgIC8vIHRoZXJlIGFyZSBhbnkgcmVtYWluaW5nIHBlbmRpbmcgdGFza3MgaW4gdGhlIHRyZWUsIGFib3J0IHRoZW0gbm93LlxuICAgICAgICAvLyBJZiB0aGVyZSdzIGFueSBtaXNzaW5nIGRhdGEsIGl0IHdpbGwgdHJpZ2dlciBhIGxhenkgZmV0Y2guXG4gICAgICAgIGFib3J0VGFzayh0YXNrLCBudWxsKTtcbiAgICB9LCAoZXJyb3IpPT57XG4gICAgICAgIC8vIFRoaXMgd2lsbCB0cmlnZ2VyIGFuIGVycm9yIGR1cmluZyByZW5kZXJcbiAgICAgICAgYWJvcnRUYXNrKHRhc2ssIGVycm9yKTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHdyaXRlRHluYW1pY0RhdGFJbnRvUGVuZGluZ1Rhc2socm9vdFRhc2ssIHNlZ21lbnRQYXRoLCBzZXJ2ZXJSb3V0ZXJTdGF0ZSwgZHluYW1pY0RhdGEsIGR5bmFtaWNIZWFkKSB7XG4gICAgLy8gVGhlIGRhdGEgc2VudCBieSB0aGUgc2VydmVyIHJlcHJlc2VudHMgb25seSBhIHN1YnRyZWUgb2YgdGhlIGFwcC4gV2UgbmVlZFxuICAgIC8vIHRvIGZpbmQgdGhlIHBhcnQgb2YgdGhlIHRhc2sgdHJlZSB0aGF0IG1hdGNoZXMgdGhlIHNlcnZlciByZXNwb25zZSwgYW5kXG4gICAgLy8gZnVsZmlsbCBpdCB1c2luZyB0aGUgZHluYW1pYyBkYXRhLlxuICAgIC8vXG4gICAgLy8gc2VnbWVudFBhdGggcmVwcmVzZW50cyB0aGUgcGFyZW50IHBhdGggb2Ygc3VidHJlZS4gSXQncyBhIHJlcGVhdGluZyBwYXR0ZXJuXG4gICAgLy8gb2YgcGFyYWxsZWwgcm91dGUga2V5IGFuZCBzZWdtZW50OlxuICAgIC8vXG4gICAgLy8gICBbc3RyaW5nLCBTZWdtZW50LCBzdHJpbmcsIFNlZ21lbnQsIHN0cmluZywgU2VnbWVudCwgLi4uXVxuICAgIC8vXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBwYXRoIGFuZCBmaW5pc2ggYW55IHRhc2tzIHRoYXQgbWF0Y2ggdGhpcyBwYXlsb2FkLlxuICAgIGxldCB0YXNrID0gcm9vdFRhc2s7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHNlZ21lbnRQYXRoLmxlbmd0aDsgaSArPSAyKXtcbiAgICAgICAgY29uc3QgcGFyYWxsZWxSb3V0ZUtleSA9IHNlZ21lbnRQYXRoW2ldO1xuICAgICAgICBjb25zdCBzZWdtZW50ID0gc2VnbWVudFBhdGhbaSArIDFdO1xuICAgICAgICBjb25zdCB0YXNrQ2hpbGRyZW4gPSB0YXNrLmNoaWxkcmVuO1xuICAgICAgICBpZiAodGFza0NoaWxkcmVuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB0YXNrQ2hpbGQgPSB0YXNrQ2hpbGRyZW4uZ2V0KHBhcmFsbGVsUm91dGVLZXkpO1xuICAgICAgICAgICAgaWYgKHRhc2tDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFza1NlZ21lbnQgPSB0YXNrQ2hpbGQucm91dGVbMF07XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoU2VnbWVudChzZWdtZW50LCB0YXNrU2VnbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRm91bmQgYSBtYXRjaCBmb3IgdGhpcyB0YXNrLiBLZWVwIHRyYXZlcnNpbmcgZG93biB0aGUgdGFzayB0cmVlLlxuICAgICAgICAgICAgICAgICAgICB0YXNrID0gdGFza0NoaWxkO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2UgZGlkbid0IGZpbmQgYSBjaGlsZCB0YXNrIHRoYXQgbWF0Y2hlcyB0aGUgc2VydmVyIGRhdGEuIEV4aXQuIFdlIHdvbid0XG4gICAgICAgIC8vIGFib3J0IHRoZSB0YXNrLCB0aG91Z2gsIGJlY2F1c2UgYSBkaWZmZXJlbnQgRmxpZ2h0RGF0YVBhdGggbWF5IGJlIGFibGUgdG9cbiAgICAgICAgLy8gZnVsZmlsbCBpdCAoc2VlIGxvb3AgaW4gbGlzdGVuRm9yRHluYW1pY1JlcXVlc3QpLiBXZSBvbmx5IGFib3J0IHRhc2tzXG4gICAgICAgIC8vIG9uY2Ugd2UndmUgcnVuIG91dCBvZiBkYXRhLlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZpbmlzaFRhc2tVc2luZ0R5bmFtaWNEYXRhUGF5bG9hZCh0YXNrLCBzZXJ2ZXJSb3V0ZXJTdGF0ZSwgZHluYW1pY0RhdGEsIGR5bmFtaWNIZWFkKTtcbn1cbmZ1bmN0aW9uIGZpbmlzaFRhc2tVc2luZ0R5bmFtaWNEYXRhUGF5bG9hZCh0YXNrLCBzZXJ2ZXJSb3V0ZXJTdGF0ZSwgZHluYW1pY0RhdGEsIGR5bmFtaWNIZWFkKSB7XG4gICAgLy8gZHluYW1pY0RhdGEgbWF5IHJlcHJlc2VudCBhIGxhcmdlciBzdWJ0cmVlIHRoYW4gdGhlIHRhc2suIEJlZm9yZSB3ZSBjYW5cbiAgICAvLyBmaW5pc2ggdGhlIHRhc2ssIHdlIG5lZWQgdG8gbGluZSB0aGVtIHVwLlxuICAgIGNvbnN0IHRhc2tDaGlsZHJlbiA9IHRhc2suY2hpbGRyZW47XG4gICAgY29uc3QgdGFza05vZGUgPSB0YXNrLm5vZGU7XG4gICAgaWYgKHRhc2tDaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgICAgICAvLyBXZSd2ZSByZWFjaGVkIHRoZSBsZWFmIG5vZGUgb2YgdGhlIHBlbmRpbmcgdGFzay4gVGhlIHNlcnZlciBkYXRhIHRyZWVcbiAgICAgICAgLy8gbGluZXMgdXAgdGhlIHBlbmRpbmcgQ2FjaGUgTm9kZSB0cmVlLiBXZSBjYW4gbm93IHN3aXRjaCB0byB0aGVcbiAgICAgICAgLy8gbm9ybWFsIGFsZ29yaXRobS5cbiAgICAgICAgaWYgKHRhc2tOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBmaW5pc2hQZW5kaW5nQ2FjaGVOb2RlKHRhc2tOb2RlLCB0YXNrLnJvdXRlLCBzZXJ2ZXJSb3V0ZXJTdGF0ZSwgZHluYW1pY0RhdGEsIGR5bmFtaWNIZWFkKTtcbiAgICAgICAgICAgIC8vIE51bGwgdGhpcyBvdXQgdG8gaW5kaWNhdGUgdGhhdCB0aGUgdGFzayBpcyBjb21wbGV0ZS5cbiAgICAgICAgICAgIHRhc2subm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBUaGUgc2VydmVyIHJldHVybmVkIG1vcmUgZGF0YSB0aGFuIHdlIG5lZWQgdG8gZmluaXNoIHRoZSB0YXNrLiBTa2lwIG92ZXJcbiAgICAvLyB0aGUgZXh0cmEgc2VnbWVudHMgdW50aWwgd2UgcmVhY2ggdGhlIGxlYWYgdGFzayBub2RlLlxuICAgIGNvbnN0IHNlcnZlckNoaWxkcmVuID0gc2VydmVyUm91dGVyU3RhdGVbMV07XG4gICAgY29uc3QgZHluYW1pY0RhdGFDaGlsZHJlbiA9IGR5bmFtaWNEYXRhWzFdO1xuICAgIGZvcihjb25zdCBwYXJhbGxlbFJvdXRlS2V5IGluIHNlcnZlclJvdXRlclN0YXRlKXtcbiAgICAgICAgY29uc3Qgc2VydmVyUm91dGVyU3RhdGVDaGlsZCA9IHNlcnZlckNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldO1xuICAgICAgICBjb25zdCBkeW5hbWljRGF0YUNoaWxkID0gZHluYW1pY0RhdGFDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XTtcbiAgICAgICAgY29uc3QgdGFza0NoaWxkID0gdGFza0NoaWxkcmVuLmdldChwYXJhbGxlbFJvdXRlS2V5KTtcbiAgICAgICAgaWYgKHRhc2tDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCB0YXNrU2VnbWVudCA9IHRhc2tDaGlsZC5yb3V0ZVswXTtcbiAgICAgICAgICAgIGlmIChtYXRjaFNlZ21lbnQoc2VydmVyUm91dGVyU3RhdGVDaGlsZFswXSwgdGFza1NlZ21lbnQpICYmIGR5bmFtaWNEYXRhQ2hpbGQgIT09IG51bGwgJiYgZHluYW1pY0RhdGFDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgLy8gRm91bmQgYSBtYXRjaCBmb3IgdGhpcyB0YXNrLiBLZWVwIHRyYXZlcnNpbmcgZG93biB0aGUgdGFzayB0cmVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBmaW5pc2hUYXNrVXNpbmdEeW5hbWljRGF0YVBheWxvYWQodGFza0NoaWxkLCBzZXJ2ZXJSb3V0ZXJTdGF0ZUNoaWxkLCBkeW5hbWljRGF0YUNoaWxkLCBkeW5hbWljSGVhZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAvLyBXZSBkaWRuJ3QgZmluZCBhIGNoaWxkIHRhc2sgdGhhdCBtYXRjaGVzIHRoZSBzZXJ2ZXIgZGF0YS4gV2Ugd29uJ3QgYWJvcnRcbiAgICAvLyB0aGUgdGFzaywgdGhvdWdoLCBiZWNhdXNlIGEgZGlmZmVyZW50IEZsaWdodERhdGFQYXRoIG1heSBiZSBhYmxlIHRvXG4gICAgLy8gZnVsZmlsbCBpdCAoc2VlIGxvb3AgaW4gbGlzdGVuRm9yRHluYW1pY1JlcXVlc3QpLiBXZSBvbmx5IGFib3J0IHRhc2tzXG4gICAgLy8gb25jZSB3ZSd2ZSBydW4gb3V0IG9mIGRhdGEuXG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlUGVuZGluZ0NhY2hlTm9kZShyb3V0ZXJTdGF0ZSwgcHJlZmV0Y2hEYXRhLCBwcmVmZXRjaEhlYWQsIGlzUHJlZmV0Y2hTdGFsZSkge1xuICAgIGNvbnN0IHJvdXRlclN0YXRlQ2hpbGRyZW4gPSByb3V0ZXJTdGF0ZVsxXTtcbiAgICBjb25zdCBwcmVmZXRjaERhdGFDaGlsZHJlbiA9IHByZWZldGNoRGF0YSAhPT0gbnVsbCA/IHByZWZldGNoRGF0YVsxXSA6IG51bGw7XG4gICAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBuZXcgTWFwKCk7XG4gICAgZm9yKGxldCBwYXJhbGxlbFJvdXRlS2V5IGluIHJvdXRlclN0YXRlQ2hpbGRyZW4pe1xuICAgICAgICBjb25zdCByb3V0ZXJTdGF0ZUNoaWxkID0gcm91dGVyU3RhdGVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XTtcbiAgICAgICAgY29uc3QgcHJlZmV0Y2hEYXRhQ2hpbGQgPSBwcmVmZXRjaERhdGFDaGlsZHJlbiAhPT0gbnVsbCA/IHByZWZldGNoRGF0YUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldIDogbnVsbDtcbiAgICAgICAgY29uc3Qgc2VnbWVudENoaWxkID0gcm91dGVyU3RhdGVDaGlsZFswXTtcbiAgICAgICAgY29uc3Qgc2VnbWVudEtleUNoaWxkID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudENoaWxkKTtcbiAgICAgICAgY29uc3QgbmV3Q2FjaGVOb2RlQ2hpbGQgPSBjcmVhdGVQZW5kaW5nQ2FjaGVOb2RlKHJvdXRlclN0YXRlQ2hpbGQsIHByZWZldGNoRGF0YUNoaWxkID09PSB1bmRlZmluZWQgPyBudWxsIDogcHJlZmV0Y2hEYXRhQ2hpbGQsIHByZWZldGNoSGVhZCwgaXNQcmVmZXRjaFN0YWxlKTtcbiAgICAgICAgY29uc3QgbmV3U2VnbWVudE1hcENoaWxkID0gbmV3IE1hcCgpO1xuICAgICAgICBuZXdTZWdtZW50TWFwQ2hpbGQuc2V0KHNlZ21lbnRLZXlDaGlsZCwgbmV3Q2FjaGVOb2RlQ2hpbGQpO1xuICAgICAgICBwYXJhbGxlbFJvdXRlcy5zZXQocGFyYWxsZWxSb3V0ZUtleSwgbmV3U2VnbWVudE1hcENoaWxkKTtcbiAgICB9XG4gICAgLy8gVGhlIGhlYWQgaXMgYXNzaWduZWQgdG8gZXZlcnkgbGVhZiBzZWdtZW50IGRlbGl2ZXJlZCBieSB0aGUgc2VydmVyLiBCYXNlZFxuICAgIC8vIG9uIGNvcnJlc3BvbmRpbmcgbG9naWMgaW4gZmlsbC1sYXp5LWl0ZW1zLXRpbGwtbGVhZi13aXRoLWhlYWQudHNcbiAgICBjb25zdCBpc0xlYWZTZWdtZW50ID0gcGFyYWxsZWxSb3V0ZXMuc2l6ZSA9PT0gMDtcbiAgICBjb25zdCBtYXliZVByZWZldGNoUnNjID0gcHJlZmV0Y2hEYXRhICE9PSBudWxsID8gcHJlZmV0Y2hEYXRhWzJdIDogbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IHBhcmFsbGVsUm91dGVzLFxuICAgICAgICBwcmVmZXRjaFJzYzogLy8gSWYgdGhlIHByZWZldGNoZWQgY2FjaGUgZW50cnkgaXMgc3RhbGUsIHdlIGRvbid0IHNob3cgaXQuIFdlIHdhaXQgZm9yIHRoZVxuICAgICAgICAvLyBkeW5hbWljIGRhdGEgdG8gc3RyZWFtIGluLlxuICAgICAgICAvLyBUT0RPOiBUaGlzIGNoZWNrIGlzIGFydWFibHkgdG9vIGRlZXAgaW4gdGhlIHN0YWNrLiBNaWdodCBiZSBiZXR0ZXIgdG9cbiAgICAgICAgLy8gcGFzcyBhbiBlbXB0eSBwcmVmZXRjaERhdGEgQ2FjaGUgU2VlZCBvYmplY3QgaW5zdGVhZC5cbiAgICAgICAgIWlzUHJlZmV0Y2hTdGFsZSAmJiBtYXliZVByZWZldGNoUnNjICE9PSB1bmRlZmluZWQgPyBtYXliZVByZWZldGNoUnNjIDogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkOiAhaXNQcmVmZXRjaFN0YWxlICYmIGlzTGVhZlNlZ21lbnQgPyBwcmVmZXRjaEhlYWQgOiBudWxsLFxuICAgICAgICAvLyBDcmVhdGUgYSBkZWZlcnJlZCBwcm9taXNlLiBUaGlzIHdpbGwgYmUgZnVsZmlsbGVkIG9uY2UgdGhlIGR5bmFtaWNcbiAgICAgICAgLy8gcmVzcG9uc2UgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICByc2M6IGNyZWF0ZURlZmVycmVkUnNjKCksXG4gICAgICAgIGhlYWQ6IGlzTGVhZlNlZ21lbnQgPyBjcmVhdGVEZWZlcnJlZFJzYygpIDogbnVsbFxuICAgIH07XG59XG5mdW5jdGlvbiBmaW5pc2hQZW5kaW5nQ2FjaGVOb2RlKGNhY2hlTm9kZSwgdGFza1N0YXRlLCBzZXJ2ZXJTdGF0ZSwgZHluYW1pY0RhdGEsIGR5bmFtaWNIZWFkKSB7XG4gICAgLy8gV3JpdGVzIGEgZHluYW1pYyByZXNwb25zZSBpbnRvIGFuIGV4aXN0aW5nIENhY2hlIE5vZGUgdHJlZS4gVGhpcyBkb2VzIF9ub3RfXG4gICAgLy8gY3JlYXRlIGEgbmV3IHRyZWUsIGl0IHVwZGF0ZXMgdGhlIGV4aXN0aW5nIHRyZWUgaW4tcGxhY2UuIFNvIGl0IG11c3QgZm9sbG93XG4gICAgLy8gdGhlIFN1c3BlbnNlIHJ1bGVzIG9mIGNhY2hlIHNhZmV0eSDigJQgaXQgY2FuIHJlc29sdmUgcGVuZGluZyBwcm9taXNlcywgYnV0XG4gICAgLy8gaXQgY2Fubm90IG92ZXJ3cml0ZSBleGlzdGluZyBkYXRhLiBJdCBjYW4gYWRkIHNlZ21lbnRzIHRvIHRoZSB0cmVlIChiZWNhdXNlXG4gICAgLy8gYSBtaXNzaW5nIHNlZ21lbnQgd2lsbCBjYXVzZSB0aGUgbGF5b3V0IHJvdXRlciB0byBzdXNwZW5kKS5cbiAgICAvLyBidXQgaXQgY2Fubm90IGRlbGV0ZSB0aGVtLlxuICAgIC8vXG4gICAgLy8gV2UgbXVzdCByZXNvbHZlIGV2ZXJ5IHByb21pc2UgaW4gdGhlIHRyZWUsIG9yIGVsc2UgaXQgd2lsbCBzdXNwZW5kXG4gICAgLy8gaW5kZWZpbml0ZWx5LiBJZiB3ZSBkaWQgbm90IHJlY2VpdmUgZGF0YSBmb3IgYSBzZWdtZW50LCB3ZSB3aWxsIHJlc29sdmUgaXRzXG4gICAgLy8gZGF0YSBwcm9taXNlIHRvIGBudWxsYCB0byB0cmlnZ2VyIGEgbGF6eSBmZXRjaCBkdXJpbmcgcmVuZGVyLlxuICAgIGNvbnN0IHRhc2tTdGF0ZUNoaWxkcmVuID0gdGFza1N0YXRlWzFdO1xuICAgIGNvbnN0IHNlcnZlclN0YXRlQ2hpbGRyZW4gPSBzZXJ2ZXJTdGF0ZVsxXTtcbiAgICBjb25zdCBkYXRhQ2hpbGRyZW4gPSBkeW5hbWljRGF0YVsxXTtcbiAgICAvLyBUaGUgcm91dGVyIHN0YXRlIHRoYXQgd2UgdHJhdmVyc2UgdGhlIHRyZWUgd2l0aCAodGFza1N0YXRlKSBpcyB0aGUgc2FtZSBvbmVcbiAgICAvLyB0aGF0IHdlIHVzZWQgdG8gY29uc3RydWN0IHRoZSBwZW5kaW5nIENhY2hlIE5vZGUgdHJlZS4gVGhhdCB3YXkgd2UncmUgc3VyZVxuICAgIC8vIHRvIHJlc29sdmUgYWxsIHRoZSBwZW5kaW5nIHByb21pc2VzLlxuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVzID0gY2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzO1xuICAgIGZvcihsZXQgcGFyYWxsZWxSb3V0ZUtleSBpbiB0YXNrU3RhdGVDaGlsZHJlbil7XG4gICAgICAgIGNvbnN0IHRhc2tTdGF0ZUNoaWxkID0gdGFza1N0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV07XG4gICAgICAgIGNvbnN0IHNlcnZlclN0YXRlQ2hpbGQgPSBzZXJ2ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldO1xuICAgICAgICBjb25zdCBkYXRhQ2hpbGQgPSBkYXRhQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV07XG4gICAgICAgIGNvbnN0IHNlZ21lbnRNYXBDaGlsZCA9IHBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KTtcbiAgICAgICAgY29uc3QgdGFza1NlZ21lbnRDaGlsZCA9IHRhc2tTdGF0ZUNoaWxkWzBdO1xuICAgICAgICBjb25zdCB0YXNrU2VnbWVudEtleUNoaWxkID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkodGFza1NlZ21lbnRDaGlsZCk7XG4gICAgICAgIGNvbnN0IGNhY2hlTm9kZUNoaWxkID0gc2VnbWVudE1hcENoaWxkICE9PSB1bmRlZmluZWQgPyBzZWdtZW50TWFwQ2hpbGQuZ2V0KHRhc2tTZWdtZW50S2V5Q2hpbGQpIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY2FjaGVOb2RlQ2hpbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHNlcnZlclN0YXRlQ2hpbGQgIT09IHVuZGVmaW5lZCAmJiBtYXRjaFNlZ21lbnQodGFza1NlZ21lbnRDaGlsZCwgc2VydmVyU3RhdGVDaGlsZFswXSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YUNoaWxkICE9PSB1bmRlZmluZWQgJiYgZGF0YUNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGhhcHB5IHBhdGguIFJlY3Vyc2l2ZWx5IHVwZGF0ZSBhbGwgdGhlIGNoaWxkcmVuLlxuICAgICAgICAgICAgICAgICAgICBmaW5pc2hQZW5kaW5nQ2FjaGVOb2RlKGNhY2hlTm9kZUNoaWxkLCB0YXNrU3RhdGVDaGlsZCwgc2VydmVyU3RhdGVDaGlsZCwgZGF0YUNoaWxkLCBkeW5hbWljSGVhZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHNlcnZlciBuZXZlciByZXR1cm5lZCBkYXRhIGZvciB0aGlzIHNlZ21lbnQuIFRyaWdnZXIgYSBsYXp5XG4gICAgICAgICAgICAgICAgICAgIC8vIGZldGNoIGR1cmluZyByZW5kZXIuIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBiZWNhdXNlIHRoZSBSb3V0ZSBUcmVlXG4gICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgU2VlZCBEYXRhIHRyZWUgc2VudCBieSB0aGUgc2VydmVyIHNob3VsZCBhbHdheXMgYmUgdGhlIHNhbWVcbiAgICAgICAgICAgICAgICAgICAgLy8gc2hhcGUgd2hlbiBwYXJ0IG9mIHRoZSBzYW1lIHNlcnZlciByZXNwb25zZS5cbiAgICAgICAgICAgICAgICAgICAgYWJvcnRQZW5kaW5nQ2FjaGVOb2RlKHRhc2tTdGF0ZUNoaWxkLCBjYWNoZU5vZGVDaGlsZCwgbnVsbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgc2VydmVyIG5ldmVyIHJldHVybmVkIGRhdGEgZm9yIHRoaXMgc2VnbWVudC4gVHJpZ2dlciBhIGxhenlcbiAgICAgICAgICAgICAgICAvLyBmZXRjaCBkdXJpbmcgcmVuZGVyLlxuICAgICAgICAgICAgICAgIGFib3J0UGVuZGluZ0NhY2hlTm9kZSh0YXNrU3RhdGVDaGlsZCwgY2FjaGVOb2RlQ2hpbGQsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgc2VydmVyIHJlc3BvbnNlIG1hdGNoZXMgd2hhdCB3YXMgZXhwZWN0ZWQgdG8gcmVjZWl2ZSwgYnV0IHRoZXJlJ3NcbiAgICAgICAgLy8gbm8gbWF0Y2hpbmcgQ2FjaGUgTm9kZSBpbiB0aGUgdGFzayB0cmVlLiBUaGlzIGlzIGEgYnVnIGluIHRoZVxuICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlIHdlIHNob3VsZCBoYXZlIGNyZWF0ZWQgYSBub2RlIGZvciBldmVyeVxuICAgICAgICAvLyBzZWdtZW50IGluIHRoZSB0cmVlIHRoYXQncyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YXNrLlxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFVzZSB0aGUgZHluYW1pYyBkYXRhIGZyb20gdGhlIHNlcnZlciB0byBmdWxmaWxsIHRoZSBkZWZlcnJlZCBSU0MgcHJvbWlzZVxuICAgIC8vIG9uIHRoZSBDYWNoZSBOb2RlLlxuICAgIGNvbnN0IHJzYyA9IGNhY2hlTm9kZS5yc2M7XG4gICAgY29uc3QgZHluYW1pY1NlZ21lbnREYXRhID0gZHluYW1pY0RhdGFbMl07XG4gICAgaWYgKHJzYyA9PT0gbnVsbCkge1xuICAgICAgICAvLyBUaGlzIGlzIGEgbGF6eSBjYWNoZSBub2RlLiBXZSBjYW4gb3ZlcndyaXRlIGl0LiBUaGlzIGlzIG9ubHkgc2FmZVxuICAgICAgICAvLyBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGUgTGF5b3V0Um91dGVyIHN1c3BlbmRzIGlmIGByc2NgIGlzIGBudWxsYC5cbiAgICAgICAgY2FjaGVOb2RlLnJzYyA9IGR5bmFtaWNTZWdtZW50RGF0YTtcbiAgICB9IGVsc2UgaWYgKGlzRGVmZXJyZWRSc2MocnNjKSkge1xuICAgICAgICAvLyBUaGlzIGlzIGEgZGVmZXJyZWQgUlNDIHByb21pc2UuIFdlIGNhbiBmdWxmaWxsIGl0IHdpdGggdGhlIGRhdGEgd2UganVzdFxuICAgICAgICAvLyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuIElmIGl0IHdhcyBhbHJlYWR5IHJlc29sdmVkIGJ5IGEgZGlmZmVyZW50XG4gICAgICAgIC8vIG5hdmlnYXRpb24sIHRoZW4gdGhpcyBkb2VzIG5vdGhpbmcgYmVjYXVzZSB3ZSBjYW4ndCBvdmVyd3JpdGUgZGF0YS5cbiAgICAgICAgcnNjLnJlc29sdmUoZHluYW1pY1NlZ21lbnREYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaXMgbm90IGEgZGVmZXJyZWQgUlNDIHByb21pc2UsIG5vciBpcyBpdCBlbXB0eSwgc28gaXQgbXVzdCBoYXZlXG4gICAgLy8gYmVlbiBwb3B1bGF0ZWQgYnkgYSBkaWZmZXJlbnQgbmF2aWdhdGlvbi4gV2UgbXVzdCBub3Qgb3ZlcndyaXRlIGl0LlxuICAgIH1cbiAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgbGVhZiBzZWdtZW50LiBJZiBzbywgaXQgd2lsbCBoYXZlIGEgYGhlYWRgIHByb3BlcnR5IHdpdGhcbiAgICAvLyBhIHBlbmRpbmcgcHJvbWlzZSB0aGF0IG5lZWRzIHRvIGJlIHJlc29sdmVkIHdpdGggdGhlIGR5bmFtaWMgaGVhZCBmcm9tXG4gICAgLy8gdGhlIHNlcnZlci5cbiAgICBjb25zdCBoZWFkID0gY2FjaGVOb2RlLmhlYWQ7XG4gICAgaWYgKGlzRGVmZXJyZWRSc2MoaGVhZCkpIHtcbiAgICAgICAgaGVhZC5yZXNvbHZlKGR5bmFtaWNIZWFkKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWJvcnRUYXNrKHRhc2ssIGVycm9yKSB7XG4gICAgY29uc3QgY2FjaGVOb2RlID0gdGFzay5ub2RlO1xuICAgIGlmIChjYWNoZU5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVGhpcyBpbmRpY2F0ZXMgdGhlIHRhc2sgaXMgYWxyZWFkeSBjb21wbGV0ZS5cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0YXNrQ2hpbGRyZW4gPSB0YXNrLmNoaWxkcmVuO1xuICAgIGlmICh0YXNrQ2hpbGRyZW4gPT09IG51bGwpIHtcbiAgICAgICAgLy8gUmVhY2hlZCB0aGUgbGVhZiB0YXNrIG5vZGUuIFRoaXMgaXMgdGhlIHJvb3Qgb2YgYSBwZW5kaW5nIGNhY2hlXG4gICAgICAgIC8vIG5vZGUgdHJlZS5cbiAgICAgICAgYWJvcnRQZW5kaW5nQ2FjaGVOb2RlKHRhc2sucm91dGUsIGNhY2hlTm9kZSwgZXJyb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYW4gaW50ZXJtZWRpYXRlIHRhc2sgbm9kZS4gS2VlcCB0cmF2ZXJzaW5nIHVudGlsIHdlIHJlYWNoIGFcbiAgICAgICAgLy8gdGFzayBub2RlIHdpdGggbm8gY2hpbGRyZW4uIFRoYXQgd2lsbCBiZSB0aGUgcm9vdCBvZiB0aGUgY2FjaGUgbm9kZSB0cmVlXG4gICAgICAgIC8vIHRoYXQgbmVlZHMgdG8gYmUgcmVzb2x2ZWQuXG4gICAgICAgIGZvciAoY29uc3QgdGFza0NoaWxkIG9mIHRhc2tDaGlsZHJlbi52YWx1ZXMoKSl7XG4gICAgICAgICAgICBhYm9ydFRhc2sodGFza0NoaWxkLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTnVsbCB0aGlzIG91dCB0byBpbmRpY2F0ZSB0aGF0IHRoZSB0YXNrIGlzIGNvbXBsZXRlLlxuICAgIHRhc2subm9kZSA9IG51bGw7XG59XG5mdW5jdGlvbiBhYm9ydFBlbmRpbmdDYWNoZU5vZGUocm91dGVyU3RhdGUsIGNhY2hlTm9kZSwgZXJyb3IpIHtcbiAgICAvLyBGb3IgZXZlcnkgcGVuZGluZyBzZWdtZW50IGluIHRoZSB0cmVlLCByZXNvbHZlIGl0cyBgcnNjYCBwcm9taXNlIHRvIGBudWxsYFxuICAgIC8vIHRvIHRyaWdnZXIgYSBsYXp5IGZldGNoIGR1cmluZyByZW5kZXIuXG4gICAgLy9cbiAgICAvLyBPciwgaWYgYW4gZXJyb3Igb2JqZWN0IGlzIHByb3ZpZGVkLCBpdCB3aWxsIGVycm9yIGluc3RlYWQuXG4gICAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZHJlbiA9IHJvdXRlclN0YXRlWzFdO1xuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVzID0gY2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzO1xuICAgIGZvcihsZXQgcGFyYWxsZWxSb3V0ZUtleSBpbiByb3V0ZXJTdGF0ZUNoaWxkcmVuKXtcbiAgICAgICAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZCA9IHJvdXRlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV07XG4gICAgICAgIGNvbnN0IHNlZ21lbnRNYXBDaGlsZCA9IHBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KTtcbiAgICAgICAgaWYgKHNlZ21lbnRNYXBDaGlsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWdtZW50Q2hpbGQgPSByb3V0ZXJTdGF0ZUNoaWxkWzBdO1xuICAgICAgICBjb25zdCBzZWdtZW50S2V5Q2hpbGQgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50Q2hpbGQpO1xuICAgICAgICBjb25zdCBjYWNoZU5vZGVDaGlsZCA9IHNlZ21lbnRNYXBDaGlsZC5nZXQoc2VnbWVudEtleUNoaWxkKTtcbiAgICAgICAgaWYgKGNhY2hlTm9kZUNoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFib3J0UGVuZGluZ0NhY2hlTm9kZShyb3V0ZXJTdGF0ZUNoaWxkLCBjYWNoZU5vZGVDaGlsZCwgZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gYmVjYXVzZSB3ZSdyZSB0cmF2ZXJzaW5nIHRoZSBzYW1lIHRyZWUgdGhhdCB3YXNcbiAgICAgICAgLy8gdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGNhY2hlIG5vZGVzIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByc2MgPSBjYWNoZU5vZGUucnNjO1xuICAgIGlmIChpc0RlZmVycmVkUnNjKHJzYykpIHtcbiAgICAgICAgaWYgKGVycm9yID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBUaGlzIHdpbGwgdHJpZ2dlciBhIGxhenkgZmV0Y2ggZHVyaW5nIHJlbmRlci5cbiAgICAgICAgICAgIHJzYy5yZXNvbHZlKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhpcyB3aWxsIHRyaWdnZXIgYW4gZXJyb3IgZHVyaW5nIHJlbmRlcmluZy5cbiAgICAgICAgICAgIHJzYy5yZWplY3QoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSBsZWFmIHNlZ21lbnQuIElmIHNvLCBpdCB3aWxsIGhhdmUgYSBgaGVhZGAgcHJvcGVydHkgd2l0aFxuICAgIC8vIGEgcGVuZGluZyBwcm9taXNlIHRoYXQgbmVlZHMgdG8gYmUgcmVzb2x2ZWQuIElmIGFuIGVycm9yIHdhcyBwcm92aWRlZCwgd2VcbiAgICAvLyB3aWxsIG5vdCByZXNvbHZlIGl0IHdpdGggYW4gZXJyb3IsIHNpbmNlIHRoaXMgaXMgcmVuZGVyZWQgYXQgdGhlIHJvb3Qgb2ZcbiAgICAvLyB0aGUgYXBwLiBXZSB3YW50IHRoZSBzZWdtZW50IHRvIGVycm9yLCBub3QgdGhlIGVudGlyZSBhcHAuXG4gICAgY29uc3QgaGVhZCA9IGNhY2hlTm9kZS5oZWFkO1xuICAgIGlmIChpc0RlZmVycmVkUnNjKGhlYWQpKSB7XG4gICAgICAgIGhlYWQucmVzb2x2ZShudWxsKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FjaGVOb2RlT25Qb3BzdGF0ZVJlc3RvcmF0aW9uKG9sZENhY2hlTm9kZSwgcm91dGVyU3RhdGUpIHtcbiAgICAvLyBBIHBvcHN0YXRlIG5hdmlnYXRpb24gcmVhZHMgZGF0YSBmcm9tIHRoZSBsb2NhbCBjYWNoZS4gSXQgZG9lcyBub3QgaXNzdWVcbiAgICAvLyBuZXcgbmV0d29yayByZXF1ZXN0cyAodW5sZXNzIHRoZSBjYWNoZSBlbnRyaWVzIGhhdmUgYmVlbiBldmljdGVkKS4gU28sIHdlXG4gICAgLy8gdXBkYXRlIHRoZSBjYWNoZSB0byBkcm9wIHRoZSBwcmVmZXRjaCAgZGF0YSBmb3IgYW55IHNlZ21lbnQgd2hvc2UgZHluYW1pY1xuICAgIC8vIGRhdGEgd2FzIGFscmVhZHkgcmVjZWl2ZWQuIFRoaXMgcHJldmVudHMgYW4gdW5uZWNlc3NhcnkgZmxhc2ggYmFjayB0byBQUFJcbiAgICAvLyBzdGF0ZSBkdXJpbmcgYSBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbi5cbiAgICAvL1xuICAgIC8vIFRoaXMgZnVuY3Rpb24gY2xvbmVzIHRoZSBlbnRpcmUgY2FjaGUgbm9kZSB0cmVlIGFuZCBzZXRzIHRoZSBgcHJlZmV0Y2hSc2NgXG4gICAgLy8gZmllbGQgdG8gYG51bGxgIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyByZW5kZXJlZC4gV2UgY2FuJ3QgbXV0YXRlIHRoZSBub2RlXG4gICAgLy8gaW4gcGxhY2UgYmVjYXVzZSB0aGlzIGlzIGEgY29uY3VycmVudCBkYXRhIHN0cnVjdHVyZS5cbiAgICBjb25zdCByb3V0ZXJTdGF0ZUNoaWxkcmVuID0gcm91dGVyU3RhdGVbMV07XG4gICAgY29uc3Qgb2xkUGFyYWxsZWxSb3V0ZXMgPSBvbGRDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXM7XG4gICAgY29uc3QgbmV3UGFyYWxsZWxSb3V0ZXMgPSBuZXcgTWFwKG9sZFBhcmFsbGVsUm91dGVzKTtcbiAgICBmb3IobGV0IHBhcmFsbGVsUm91dGVLZXkgaW4gcm91dGVyU3RhdGVDaGlsZHJlbil7XG4gICAgICAgIGNvbnN0IHJvdXRlclN0YXRlQ2hpbGQgPSByb3V0ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldO1xuICAgICAgICBjb25zdCBzZWdtZW50Q2hpbGQgPSByb3V0ZXJTdGF0ZUNoaWxkWzBdO1xuICAgICAgICBjb25zdCBzZWdtZW50S2V5Q2hpbGQgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50Q2hpbGQpO1xuICAgICAgICBjb25zdCBvbGRTZWdtZW50TWFwQ2hpbGQgPSBvbGRQYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSk7XG4gICAgICAgIGlmIChvbGRTZWdtZW50TWFwQ2hpbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgb2xkQ2FjaGVOb2RlQ2hpbGQgPSBvbGRTZWdtZW50TWFwQ2hpbGQuZ2V0KHNlZ21lbnRLZXlDaGlsZCk7XG4gICAgICAgICAgICBpZiAob2xkQ2FjaGVOb2RlQ2hpbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NhY2hlTm9kZUNoaWxkID0gdXBkYXRlQ2FjaGVOb2RlT25Qb3BzdGF0ZVJlc3RvcmF0aW9uKG9sZENhY2hlTm9kZUNoaWxkLCByb3V0ZXJTdGF0ZUNoaWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWdtZW50TWFwQ2hpbGQgPSBuZXcgTWFwKG9sZFNlZ21lbnRNYXBDaGlsZCk7XG4gICAgICAgICAgICAgICAgbmV3U2VnbWVudE1hcENoaWxkLnNldChzZWdtZW50S2V5Q2hpbGQsIG5ld0NhY2hlTm9kZUNoaWxkKTtcbiAgICAgICAgICAgICAgICBuZXdQYXJhbGxlbFJvdXRlcy5zZXQocGFyYWxsZWxSb3V0ZUtleSwgbmV3U2VnbWVudE1hcENoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBPbmx5IHNob3cgcHJlZmV0Y2hlZCBkYXRhIGlmIHRoZSBkeW5hbWljIGRhdGEgaXMgc3RpbGwgcGVuZGluZy5cbiAgICAvL1xuICAgIC8vIFRlaG5pY2FsbHksIHdoYXQgd2UncmUgYWN0dWFsbHkgY2hlY2tpbmcgaXMgd2hldGhlciB0aGUgZHluYW1pYyBuZXR3b3JrXG4gICAgLy8gcmVzcG9uc2Ugd2FzIHJlY2VpdmVkLiBCdXQgc2luY2UgaXQncyBhIHN0cmVhbWluZyByZXNwb25zZSwgdGhpcyBkb2VzIG5vdFxuICAgIC8vIG1lYW4gdGhhdCBhbGwgdGhlIGR5bmFtaWMgZGF0YSBoYXMgZnVsbHkgc3RyZWFtZWQgaW4uIEl0IGp1c3QgbWVhbnMgdGhhdFxuICAgIC8vIF9zb21lXyBvZiB0aGUgZHluYW1pYyBkYXRhIHdhcyByZWNlaXZlZC4gQnV0IGFzIGEgaGV1cmlzdGljLCB3ZSBhc3N1bWUgdGhhdFxuICAgIC8vIHRoZSByZXN0IGR5bmFtaWMgZGF0YSB3aWxsIHN0cmVhbSBpbiBxdWlja2x5LCBzbyBpdCdzIHN0aWxsIGJldHRlciB0byBza2lwXG4gICAgLy8gdGhlIHByZWZldGNoIHN0YXRlLlxuICAgIGNvbnN0IHJzYyA9IG9sZENhY2hlTm9kZS5yc2M7XG4gICAgY29uc3Qgc2hvdWxkVXNlUHJlZmV0Y2ggPSBpc0RlZmVycmVkUnNjKHJzYykgJiYgcnNjLnN0YXR1cyA9PT0gXCJwZW5kaW5nXCI7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIHJzYyxcbiAgICAgICAgaGVhZDogb2xkQ2FjaGVOb2RlLmhlYWQsXG4gICAgICAgIHByZWZldGNoSGVhZDogc2hvdWxkVXNlUHJlZmV0Y2ggPyBvbGRDYWNoZU5vZGUucHJlZmV0Y2hIZWFkIDogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IHNob3VsZFVzZVByZWZldGNoID8gb2xkQ2FjaGVOb2RlLnByZWZldGNoUnNjIDogbnVsbCxcbiAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBjbG9uZWQgY2hpbGRyZW4gd2UgY29tcHV0ZWQgYWJvdmVcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ld1BhcmFsbGVsUm91dGVzXG4gICAgfTtcbn1cbmNvbnN0IERFRkVSUkVEID0gU3ltYm9sKCk7XG4vLyBUaGlzIHR5cGUgZXhpc3RzIHRvIGRpc3Rpbmd1aXNoIGEgRGVmZXJyZWRSc2MgZnJvbSBhIEZsaWdodCBwcm9taXNlLiBJdCdzIGFcbi8vIGNvbXByb21pc2UgdG8gYXZvaWQgYWRkaW5nIGFuIGV4dHJhIGZpZWxkIG9uIGV2ZXJ5IENhY2hlIE5vZGUsIHdoaWNoIHdvdWxkIGJlXG4vLyBhd2t3YXJkIGJlY2F1c2UgdGhlIHByZS1QUFIgcGFydHMgb2YgY29kZWJhc2Ugd291bGQgbmVlZCB0byBhY2NvdW50IGZvciBpdCxcbi8vIHRvby4gV2UgY2FuIHJlbW92ZSBpdCBvbmNlIHR5cGUgQ2FjaGUgTm9kZSB0eXBlIGlzIG1vcmUgc2V0dGxlZC5cbmZ1bmN0aW9uIGlzRGVmZXJyZWRSc2ModmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUudGFnID09PSBERUZFUlJFRDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZmVycmVkUnNjKCkge1xuICAgIGxldCByZXNvbHZlO1xuICAgIGxldCByZWplY3Q7XG4gICAgY29uc3QgcGVuZGluZ1JzYyA9IG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgcmVzb2x2ZSA9IHJlcztcbiAgICAgICAgcmVqZWN0ID0gcmVqO1xuICAgIH0pO1xuICAgIHBlbmRpbmdSc2Muc3RhdHVzID0gXCJwZW5kaW5nXCI7XG4gICAgcGVuZGluZ1JzYy5yZXNvbHZlID0gKHZhbHVlKT0+e1xuICAgICAgICBpZiAocGVuZGluZ1JzYy5zdGF0dXMgPT09IFwicGVuZGluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCBmdWxmaWxsZWRSc2MgPSBwZW5kaW5nUnNjO1xuICAgICAgICAgICAgZnVsZmlsbGVkUnNjLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCI7XG4gICAgICAgICAgICBmdWxmaWxsZWRSc2MudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBwZW5kaW5nUnNjLnJlamVjdCA9IChlcnJvcik9PntcbiAgICAgICAgaWYgKHBlbmRpbmdSc2Muc3RhdHVzID09PSBcInBlbmRpbmdcIikge1xuICAgICAgICAgICAgY29uc3QgcmVqZWN0ZWRSc2MgPSBwZW5kaW5nUnNjO1xuICAgICAgICAgICAgcmVqZWN0ZWRSc2Muc3RhdHVzID0gXCJyZWplY3RlZFwiO1xuICAgICAgICAgICAgcmVqZWN0ZWRSc2MucmVhc29uID0gZXJyb3I7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBwZW5kaW5nUnNjLnRhZyA9IERFRkVSUkVEO1xuICAgIHJldHVybiBwZW5kaW5nUnNjO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcHItbmF2aWdhdGlvbnMuanMubWFwIl0sIm5hbWVzIjpbIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJQQUdFX1NFR01FTlRfS0VZIiwibWF0Y2hTZWdtZW50IiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJ1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24iLCJvbGRDYWNoZU5vZGUiLCJvbGRSb3V0ZXJTdGF0ZSIsIm5ld1JvdXRlclN0YXRlIiwicHJlZmV0Y2hEYXRhIiwicHJlZmV0Y2hIZWFkIiwiaXNQcmVmZXRjaFN0YWxlIiwib2xkUm91dGVyU3RhdGVDaGlsZHJlbiIsIm5ld1JvdXRlclN0YXRlQ2hpbGRyZW4iLCJwcmVmZXRjaERhdGFDaGlsZHJlbiIsIm9sZFBhcmFsbGVsUm91dGVzIiwicGFyYWxsZWxSb3V0ZXMiLCJwcmVmZXRjaFBhcmFsbGVsUm91dGVzIiwiTWFwIiwicGF0Y2hlZFJvdXRlclN0YXRlQ2hpbGRyZW4iLCJ0YXNrQ2hpbGRyZW4iLCJwYXJhbGxlbFJvdXRlS2V5IiwibmV3Um91dGVyU3RhdGVDaGlsZCIsIm9sZFJvdXRlclN0YXRlQ2hpbGQiLCJvbGRTZWdtZW50TWFwQ2hpbGQiLCJnZXQiLCJwcmVmZXRjaERhdGFDaGlsZCIsIm5ld1NlZ21lbnRDaGlsZCIsIm5ld1NlZ21lbnRLZXlDaGlsZCIsIm9sZFNlZ21lbnRDaGlsZCIsInVuZGVmaW5lZCIsIm9sZENhY2hlTm9kZUNoaWxkIiwidGFza0NoaWxkIiwic3Bhd25QZW5kaW5nVGFzayIsInNwYXduUmV1c2VkVGFzayIsInNwYXduVGFza0Zvck1pc3NpbmdEYXRhIiwic2V0IiwibmV3Q2FjaGVOb2RlQ2hpbGQiLCJub2RlIiwibmV3U2VnbWVudE1hcENoaWxkIiwicm91dGUiLCJuZXdDYWNoZU5vZGUiLCJsYXp5RGF0YSIsInJzYyIsInByZWZldGNoUnNjIiwiaGVhZCIsInBhdGNoUm91dGVyU3RhdGVXaXRoTmV3Q2hpbGRyZW4iLCJjaGlsZHJlbiIsImJhc2VSb3V0ZXJTdGF0ZSIsIm5ld0NoaWxkcmVuIiwiY2xvbmUiLCJyb3V0ZXJTdGF0ZSIsInBlbmRpbmdDYWNoZU5vZGUiLCJjcmVhdGVQZW5kaW5nQ2FjaGVOb2RlIiwicmV1c2VkUm91dGVyU3RhdGUiLCJsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCIsInRhc2siLCJyZXNwb25zZVByb21pc2UiLCJ0aGVuIiwicmVzcG9uc2UiLCJmbGlnaHREYXRhIiwiZmxpZ2h0RGF0YVBhdGgiLCJzZWdtZW50UGF0aCIsInNsaWNlIiwic2VydmVyUm91dGVyU3RhdGUiLCJsZW5ndGgiLCJkeW5hbWljRGF0YSIsImR5bmFtaWNIZWFkIiwid3JpdGVEeW5hbWljRGF0YUludG9QZW5kaW5nVGFzayIsImFib3J0VGFzayIsImVycm9yIiwicm9vdFRhc2siLCJpIiwic2VnbWVudCIsInRhc2tTZWdtZW50IiwiZmluaXNoVGFza1VzaW5nRHluYW1pY0RhdGFQYXlsb2FkIiwidGFza05vZGUiLCJmaW5pc2hQZW5kaW5nQ2FjaGVOb2RlIiwic2VydmVyQ2hpbGRyZW4iLCJkeW5hbWljRGF0YUNoaWxkcmVuIiwic2VydmVyUm91dGVyU3RhdGVDaGlsZCIsImR5bmFtaWNEYXRhQ2hpbGQiLCJyb3V0ZXJTdGF0ZUNoaWxkcmVuIiwicm91dGVyU3RhdGVDaGlsZCIsInNlZ21lbnRDaGlsZCIsInNlZ21lbnRLZXlDaGlsZCIsImlzTGVhZlNlZ21lbnQiLCJzaXplIiwibWF5YmVQcmVmZXRjaFJzYyIsImNyZWF0ZURlZmVycmVkUnNjIiwiY2FjaGVOb2RlIiwidGFza1N0YXRlIiwic2VydmVyU3RhdGUiLCJ0YXNrU3RhdGVDaGlsZHJlbiIsInNlcnZlclN0YXRlQ2hpbGRyZW4iLCJkYXRhQ2hpbGRyZW4iLCJ0YXNrU3RhdGVDaGlsZCIsInNlcnZlclN0YXRlQ2hpbGQiLCJkYXRhQ2hpbGQiLCJzZWdtZW50TWFwQ2hpbGQiLCJ0YXNrU2VnbWVudENoaWxkIiwidGFza1NlZ21lbnRLZXlDaGlsZCIsImNhY2hlTm9kZUNoaWxkIiwiYWJvcnRQZW5kaW5nQ2FjaGVOb2RlIiwiZHluYW1pY1NlZ21lbnREYXRhIiwiaXNEZWZlcnJlZFJzYyIsInJlc29sdmUiLCJ2YWx1ZXMiLCJyZWplY3QiLCJ1cGRhdGVDYWNoZU5vZGVPblBvcHN0YXRlUmVzdG9yYXRpb24iLCJuZXdQYXJhbGxlbFJvdXRlcyIsInNob3VsZFVzZVByZWZldGNoIiwic3RhdHVzIiwiREVGRVJSRUQiLCJTeW1ib2wiLCJ2YWx1ZSIsInRhZyIsInBlbmRpbmdSc2MiLCJQcm9taXNlIiwicmVzIiwicmVqIiwiZnVsZmlsbGVkUnNjIiwicmVqZWN0ZWRSc2MiLCJyZWFzb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/ppr-navigations.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/create-prefetch-cache-key.js":
-/*!***************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/create-prefetch-cache-key.js ***!
- \***************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPrefetchCacheKey: () => (/* binding */ createPrefetchCacheKey)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../shared/lib/router/utils/add-path-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\");\n/* harmony import */ var _shared_lib_router_utils_path_has_prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../shared/lib/router/utils/path-has-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\");\n/* harmony import */ var _create_href_from_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n\n\n\n/**\n * Creates a cache key for the router prefetch cache\n *\n * @param url - The URL being navigated to\n * @param nextUrl - an internal URL, primarily used for handling rewrites. Defaults to '/'.\n * @return The generated prefetch cache key.\n */ function createPrefetchCacheKey(url, nextUrl) {\n const pathnameFromUrl = (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_2__.createHrefFromUrl)(url, false);\n // delimit the prefix so we don't conflict with other pages\n const nextUrlPrefix = \"\" + nextUrl + \"%\";\n // Route interception depends on `nextUrl` values which aren't a 1:1 mapping to a URL\n // The cache key that we store needs to use `nextUrl` to properly distinguish cache entries\n if (nextUrl && !(0,_shared_lib_router_utils_path_has_prefix__WEBPACK_IMPORTED_MODULE_1__.pathHasPrefix)(pathnameFromUrl, nextUrl)) {\n return (0,_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_0__.addPathPrefix)(pathnameFromUrl, nextUrlPrefix);\n }\n return pathnameFromUrl;\n} //# sourceMappingURL=create-prefetch-cache-key.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvY3JlYXRlLXByZWZldGNoLWNhY2hlLWtleS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9GO0FBQ0E7QUFDeEI7QUFDNUQ7Ozs7OztDQU1DLEdBQVUsU0FBU0csdUJBQXVCQyxHQUFHLEVBQUVDLE9BQU87SUFDbkQsTUFBTUMsa0JBQWtCSix3RUFBaUJBLENBQUNFLEtBQzFDO0lBQ0EsMkRBQTJEO0lBQzNELE1BQU1HLGdCQUFnQixLQUFLRixVQUFVO0lBQ3JDLHFGQUFxRjtJQUNyRiwyRkFBMkY7SUFDM0YsSUFBSUEsV0FBVyxDQUFDSix1RkFBYUEsQ0FBQ0ssaUJBQWlCRCxVQUFVO1FBQ3JELE9BQU9MLHVGQUFhQSxDQUFDTSxpQkFBaUJDO0lBQzFDO0lBQ0EsT0FBT0Q7QUFDWCxFQUVBLHFEQUFxRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvY3JlYXRlLXByZWZldGNoLWNhY2hlLWtleS5qcz9iZmNiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCI7XG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeFwiO1xuaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tIFwiLi4vY3JlYXRlLWhyZWYtZnJvbS11cmxcIjtcbi8qKlxuICogQ3JlYXRlcyBhIGNhY2hlIGtleSBmb3IgdGhlIHJvdXRlciBwcmVmZXRjaCBjYWNoZVxuICpcbiAqIEBwYXJhbSB1cmwgLSBUaGUgVVJMIGJlaW5nIG5hdmlnYXRlZCB0b1xuICogQHBhcmFtIG5leHRVcmwgLSBhbiBpbnRlcm5hbCBVUkwsIHByaW1hcmlseSB1c2VkIGZvciBoYW5kbGluZyByZXdyaXRlcy4gRGVmYXVsdHMgdG8gJy8nLlxuICogQHJldHVybiBUaGUgZ2VuZXJhdGVkIHByZWZldGNoIGNhY2hlIGtleS5cbiAqLyBleHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleSh1cmwsIG5leHRVcmwpIHtcbiAgICBjb25zdCBwYXRobmFtZUZyb21VcmwgPSBjcmVhdGVIcmVmRnJvbVVybCh1cmwsIC8vIEVuc3VyZXMgdGhlIGhhc2ggaXMgbm90IHBhcnQgb2YgdGhlIGNhY2hlIGtleSBhcyBpdCBkb2VzIG5vdCBpbXBhY3QgdGhlIHNlcnZlciBmZXRjaFxuICAgIGZhbHNlKTtcbiAgICAvLyBkZWxpbWl0IHRoZSBwcmVmaXggc28gd2UgZG9uJ3QgY29uZmxpY3Qgd2l0aCBvdGhlciBwYWdlc1xuICAgIGNvbnN0IG5leHRVcmxQcmVmaXggPSBcIlwiICsgbmV4dFVybCArIFwiJVwiO1xuICAgIC8vIFJvdXRlIGludGVyY2VwdGlvbiBkZXBlbmRzIG9uIGBuZXh0VXJsYCB2YWx1ZXMgd2hpY2ggYXJlbid0IGEgMToxIG1hcHBpbmcgdG8gYSBVUkxcbiAgICAvLyBUaGUgY2FjaGUga2V5IHRoYXQgd2Ugc3RvcmUgbmVlZHMgdG8gdXNlIGBuZXh0VXJsYCB0byBwcm9wZXJseSBkaXN0aW5ndWlzaCBjYWNoZSBlbnRyaWVzXG4gICAgaWYgKG5leHRVcmwgJiYgIXBhdGhIYXNQcmVmaXgocGF0aG5hbWVGcm9tVXJsLCBuZXh0VXJsKSkge1xuICAgICAgICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRobmFtZUZyb21VcmwsIG5leHRVcmxQcmVmaXgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aG5hbWVGcm9tVXJsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtcHJlZmV0Y2gtY2FjaGUta2V5LmpzLm1hcCJdLCJuYW1lcyI6WyJhZGRQYXRoUHJlZml4IiwicGF0aEhhc1ByZWZpeCIsImNyZWF0ZUhyZWZGcm9tVXJsIiwiY3JlYXRlUHJlZmV0Y2hDYWNoZUtleSIsInVybCIsIm5leHRVcmwiLCJwYXRobmFtZUZyb21VcmwiLCJuZXh0VXJsUHJlZml4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/create-prefetch-cache-key.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/fast-refresh-reducer.js":
-/*!**********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/fast-refresh-reducer.js ***!
- \**********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fastRefreshReducer: () => (/* binding */ fastRefreshReducer)\n/* harmony export */ });\n/* harmony import */ var _fetch_server_response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js\");\n/* harmony import */ var _create_href_from_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n/* harmony import */ var _apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\n/* harmony import */ var _is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\n/* harmony import */ var _navigate_reducer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js\");\n/* harmony import */ var _handle_mutable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js\");\n/* harmony import */ var _apply_flight_data__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-flight-data.js\");\n/* harmony import */ var _app_router__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../app-router */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\");\n/* harmony import */ var _handle_segment_mismatch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-segment-mismatch.js\");\n\n\n\n\n\n\n\n\n\n// A version of refresh reducer that keeps the cache around instead of wiping all of it.\nfunction fastRefreshReducerImpl(state, action) {\n const { origin } = action;\n const mutable = {};\n const href = state.canonicalUrl;\n mutable.preserveCustomHistoryState = false;\n const cache = (0,_app_router__WEBPACK_IMPORTED_MODULE_7__.createEmptyCacheNode)();\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n cache.lazyData = (0,_fetch_server_response__WEBPACK_IMPORTED_MODULE_0__.fetchServerResponse)(new URL(href, origin), [\n state.tree[0],\n state.tree[1],\n state.tree[2],\n \"refetch\"\n ], state.nextUrl, state.buildId);\n return cache.lazyData.then((param)=>{\n let [flightData, canonicalUrlOverride] = param;\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === \"string\") {\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_4__.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n // Remove cache.lazyData as it has been resolved at this point.\n cache.lazyData = null;\n let currentTree = state.tree;\n let currentCache = state.cache;\n for (const flightDataPath of flightData){\n // FlightDataPath with more than two items means unexpected Flight data was returned\n if (flightDataPath.length !== 3) {\n // TODO-APP: handle this case better\n console.log(\"REFRESH FAILED\");\n return state;\n }\n // Given the path can only have two items the items are only the router state and rsc for the root.\n const [treePatch] = flightDataPath;\n const newTree = (0,_apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_2__.applyRouterStatePatchToTreeSkipDefault)([\n \"\"\n ], currentTree, treePatch);\n if (newTree === null) {\n return (0,_handle_segment_mismatch__WEBPACK_IMPORTED_MODULE_8__.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0,_is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_3__.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_4__.handleExternalUrl)(state, mutable, href, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = canonicalUrlOverride ? (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_1__.createHrefFromUrl)(canonicalUrlOverride) : undefined;\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n const applied = (0,_apply_flight_data__WEBPACK_IMPORTED_MODULE_6__.applyFlightData)(currentCache, cache, flightDataPath);\n if (applied) {\n mutable.cache = cache;\n currentCache = cache;\n }\n mutable.patchedTree = newTree;\n mutable.canonicalUrl = href;\n currentTree = newTree;\n }\n return (0,_handle_mutable__WEBPACK_IMPORTED_MODULE_5__.handleMutable)(state, mutable);\n }, ()=>state);\n}\nfunction fastRefreshReducerNoop(state, _action) {\n return state;\n}\nconst fastRefreshReducer = false ? 0 : fastRefreshReducerImpl; //# sourceMappingURL=fast-refresh-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZmFzdC1yZWZyZXNoLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUErRDtBQUNIO0FBQ2lDO0FBQ1g7QUFDM0I7QUFDTDtBQUNLO0FBQ0M7QUFDVztBQUNuRSx3RkFBd0Y7QUFDeEYsU0FBU1MsdUJBQXVCQyxLQUFLLEVBQUVDLE1BQU07SUFDekMsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR0Q7SUFDbkIsTUFBTUUsVUFBVSxDQUFDO0lBQ2pCLE1BQU1DLE9BQU9KLE1BQU1LLFlBQVk7SUFDL0JGLFFBQVFHLDBCQUEwQixHQUFHO0lBQ3JDLE1BQU1DLFFBQVFWLGlFQUFvQkE7SUFDbEMsdURBQXVEO0lBQ3ZELHdDQUF3QztJQUN4Q1UsTUFBTUMsUUFBUSxHQUFHbEIsMkVBQW1CQSxDQUFDLElBQUltQixJQUFJTCxNQUFNRixTQUFTO1FBQ3hERixNQUFNVSxJQUFJLENBQUMsRUFBRTtRQUNiVixNQUFNVSxJQUFJLENBQUMsRUFBRTtRQUNiVixNQUFNVSxJQUFJLENBQUMsRUFBRTtRQUNiO0tBQ0gsRUFBRVYsTUFBTVcsT0FBTyxFQUFFWCxNQUFNWSxPQUFPO0lBQy9CLE9BQU9MLE1BQU1DLFFBQVEsQ0FBQ0ssSUFBSSxDQUFDLENBQUNDO1FBQ3hCLElBQUksQ0FBQ0MsWUFBWUMscUJBQXFCLEdBQUdGO1FBQ3pDLDREQUE0RDtRQUM1RCxJQUFJLE9BQU9DLGVBQWUsVUFBVTtZQUNoQyxPQUFPckIsb0VBQWlCQSxDQUFDTSxPQUFPRyxTQUFTWSxZQUFZZixNQUFNaUIsT0FBTyxDQUFDQyxXQUFXO1FBQ2xGO1FBQ0EsK0RBQStEO1FBQy9EWCxNQUFNQyxRQUFRLEdBQUc7UUFDakIsSUFBSVcsY0FBY25CLE1BQU1VLElBQUk7UUFDNUIsSUFBSVUsZUFBZXBCLE1BQU1PLEtBQUs7UUFDOUIsS0FBSyxNQUFNYyxrQkFBa0JOLFdBQVc7WUFDcEMsb0ZBQW9GO1lBQ3BGLElBQUlNLGVBQWVDLE1BQU0sS0FBSyxHQUFHO2dCQUM3QixvQ0FBb0M7Z0JBQ3BDQyxRQUFRQyxHQUFHLENBQUM7Z0JBQ1osT0FBT3hCO1lBQ1g7WUFDQSxtR0FBbUc7WUFDbkcsTUFBTSxDQUFDeUIsVUFBVSxHQUFHSjtZQUNwQixNQUFNSyxVQUFVbEMseUdBQXNDQSxDQUN0RDtnQkFDSTthQUNILEVBQUUyQixhQUFhTTtZQUNoQixJQUFJQyxZQUFZLE1BQU07Z0JBQ2xCLE9BQU81QiwrRUFBcUJBLENBQUNFLE9BQU9DLFFBQVF3QjtZQUNoRDtZQUNBLElBQUloQyw4RkFBMkJBLENBQUMwQixhQUFhTyxVQUFVO2dCQUNuRCxPQUFPaEMsb0VBQWlCQSxDQUFDTSxPQUFPRyxTQUFTQyxNQUFNSixNQUFNaUIsT0FBTyxDQUFDQyxXQUFXO1lBQzVFO1lBQ0EsTUFBTVMsMkJBQTJCWCx1QkFBdUJ6Qix3RUFBaUJBLENBQUN5Qix3QkFBd0JZO1lBQ2xHLElBQUlaLHNCQUFzQjtnQkFDdEJiLFFBQVFFLFlBQVksR0FBR3NCO1lBQzNCO1lBQ0EsTUFBTUUsVUFBVWpDLG1FQUFlQSxDQUFDd0IsY0FBY2IsT0FBT2M7WUFDckQsSUFBSVEsU0FBUztnQkFDVDFCLFFBQVFJLEtBQUssR0FBR0E7Z0JBQ2hCYSxlQUFlYjtZQUNuQjtZQUNBSixRQUFRMkIsV0FBVyxHQUFHSjtZQUN0QnZCLFFBQVFFLFlBQVksR0FBR0Q7WUFDdkJlLGNBQWNPO1FBQ2xCO1FBQ0EsT0FBTy9CLDhEQUFhQSxDQUFDSyxPQUFPRztJQUNoQyxHQUFHLElBQUlIO0FBQ1g7QUFDQSxTQUFTK0IsdUJBQXVCL0IsS0FBSyxFQUFFZ0MsT0FBTztJQUMxQyxPQUFPaEM7QUFDWDtBQUNPLE1BQU1pQyxxQkFBcUJDLE1BQXFDLEdBQUdILENBQXNCQSxHQUFHaEMsdUJBQXVCLENBRTFILGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZmFzdC1yZWZyZXNoLXJlZHVjZXIuanM/YTU3NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaFNlcnZlclJlc3BvbnNlIH0gZnJvbSBcIi4uL2ZldGNoLXNlcnZlci1yZXNwb25zZVwiO1xuaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tIFwiLi4vY3JlYXRlLWhyZWYtZnJvbS11cmxcIjtcbmltcG9ydCB7IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZVNraXBEZWZhdWx0IH0gZnJvbSBcIi4uL2FwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlXCI7XG5pbXBvcnQgeyBpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQgfSBmcm9tIFwiLi4vaXMtbmF2aWdhdGluZy10by1uZXctcm9vdC1sYXlvdXRcIjtcbmltcG9ydCB7IGhhbmRsZUV4dGVybmFsVXJsIH0gZnJvbSBcIi4vbmF2aWdhdGUtcmVkdWNlclwiO1xuaW1wb3J0IHsgaGFuZGxlTXV0YWJsZSB9IGZyb20gXCIuLi9oYW5kbGUtbXV0YWJsZVwiO1xuaW1wb3J0IHsgYXBwbHlGbGlnaHREYXRhIH0gZnJvbSBcIi4uL2FwcGx5LWZsaWdodC1kYXRhXCI7XG5pbXBvcnQgeyBjcmVhdGVFbXB0eUNhY2hlTm9kZSB9IGZyb20gXCIuLi8uLi9hcHAtcm91dGVyXCI7XG5pbXBvcnQgeyBoYW5kbGVTZWdtZW50TWlzbWF0Y2ggfSBmcm9tIFwiLi4vaGFuZGxlLXNlZ21lbnQtbWlzbWF0Y2hcIjtcbi8vIEEgdmVyc2lvbiBvZiByZWZyZXNoIHJlZHVjZXIgdGhhdCBrZWVwcyB0aGUgY2FjaGUgYXJvdW5kIGluc3RlYWQgb2Ygd2lwaW5nIGFsbCBvZiBpdC5cbmZ1bmN0aW9uIGZhc3RSZWZyZXNoUmVkdWNlckltcGwoc3RhdGUsIGFjdGlvbikge1xuICAgIGNvbnN0IHsgb3JpZ2luIH0gPSBhY3Rpb247XG4gICAgY29uc3QgbXV0YWJsZSA9IHt9O1xuICAgIGNvbnN0IGhyZWYgPSBzdGF0ZS5jYW5vbmljYWxVcmw7XG4gICAgbXV0YWJsZS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSA9IGZhbHNlO1xuICAgIGNvbnN0IGNhY2hlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKTtcbiAgICAvLyBUT0RPLUFQUDogdmVyaWZ5IHRoYXQgYGhyZWZgIGlzIG5vdCBhbiBleHRlcm5hbCB1cmwuXG4gICAgLy8gRmV0Y2ggZGF0YSBmcm9tIHRoZSByb290IG9mIHRoZSB0cmVlLlxuICAgIGNhY2hlLmxhenlEYXRhID0gZmV0Y2hTZXJ2ZXJSZXNwb25zZShuZXcgVVJMKGhyZWYsIG9yaWdpbiksIFtcbiAgICAgICAgc3RhdGUudHJlZVswXSxcbiAgICAgICAgc3RhdGUudHJlZVsxXSxcbiAgICAgICAgc3RhdGUudHJlZVsyXSxcbiAgICAgICAgXCJyZWZldGNoXCJcbiAgICBdLCBzdGF0ZS5uZXh0VXJsLCBzdGF0ZS5idWlsZElkKTtcbiAgICByZXR1cm4gY2FjaGUubGF6eURhdGEudGhlbigocGFyYW0pPT57XG4gICAgICAgIGxldCBbZmxpZ2h0RGF0YSwgY2Fub25pY2FsVXJsT3ZlcnJpZGVdID0gcGFyYW07XG4gICAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbmF2aWdhdGluZyB0byBwYWdlIGluIGBwYWdlc2AgZnJvbSBgYXBwYFxuICAgICAgICBpZiAodHlwZW9mIGZsaWdodERhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwgbXV0YWJsZSwgZmxpZ2h0RGF0YSwgc3RhdGUucHVzaFJlZi5wZW5kaW5nUHVzaCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVtb3ZlIGNhY2hlLmxhenlEYXRhIGFzIGl0IGhhcyBiZWVuIHJlc29sdmVkIGF0IHRoaXMgcG9pbnQuXG4gICAgICAgIGNhY2hlLmxhenlEYXRhID0gbnVsbDtcbiAgICAgICAgbGV0IGN1cnJlbnRUcmVlID0gc3RhdGUudHJlZTtcbiAgICAgICAgbGV0IGN1cnJlbnRDYWNoZSA9IHN0YXRlLmNhY2hlO1xuICAgICAgICBmb3IgKGNvbnN0IGZsaWdodERhdGFQYXRoIG9mIGZsaWdodERhdGEpe1xuICAgICAgICAgICAgLy8gRmxpZ2h0RGF0YVBhdGggd2l0aCBtb3JlIHRoYW4gdHdvIGl0ZW1zIG1lYW5zIHVuZXhwZWN0ZWQgRmxpZ2h0IGRhdGEgd2FzIHJldHVybmVkXG4gICAgICAgICAgICBpZiAoZmxpZ2h0RGF0YVBhdGgubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETy1BUFA6IGhhbmRsZSB0aGlzIGNhc2UgYmV0dGVyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJSRUZSRVNIIEZBSUxFRFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBHaXZlbiB0aGUgcGF0aCBjYW4gb25seSBoYXZlIHR3byBpdGVtcyB0aGUgaXRlbXMgYXJlIG9ubHkgdGhlIHJvdXRlciBzdGF0ZSBhbmQgcnNjIGZvciB0aGUgcm9vdC5cbiAgICAgICAgICAgIGNvbnN0IFt0cmVlUGF0Y2hdID0gZmxpZ2h0RGF0YVBhdGg7XG4gICAgICAgICAgICBjb25zdCBuZXdUcmVlID0gYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlU2tpcERlZmF1bHQoLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgIF0sIGN1cnJlbnRUcmVlLCB0cmVlUGF0Y2gpO1xuICAgICAgICAgICAgaWYgKG5ld1RyZWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlU2VnbWVudE1pc21hdGNoKHN0YXRlLCBhY3Rpb24sIHRyZWVQYXRjaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KGN1cnJlbnRUcmVlLCBuZXdUcmVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwgbXV0YWJsZSwgaHJlZiwgc3RhdGUucHVzaFJlZi5wZW5kaW5nUHVzaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYgPSBjYW5vbmljYWxVcmxPdmVycmlkZSA/IGNyZWF0ZUhyZWZGcm9tVXJsKGNhbm9uaWNhbFVybE92ZXJyaWRlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChjYW5vbmljYWxVcmxPdmVycmlkZSkge1xuICAgICAgICAgICAgICAgIG11dGFibGUuY2Fub25pY2FsVXJsID0gY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYXBwbGllZCA9IGFwcGx5RmxpZ2h0RGF0YShjdXJyZW50Q2FjaGUsIGNhY2hlLCBmbGlnaHREYXRhUGF0aCk7XG4gICAgICAgICAgICBpZiAoYXBwbGllZCkge1xuICAgICAgICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZTtcbiAgICAgICAgICAgICAgICBjdXJyZW50Q2FjaGUgPSBjYWNoZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG11dGFibGUucGF0Y2hlZFRyZWUgPSBuZXdUcmVlO1xuICAgICAgICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSBocmVmO1xuICAgICAgICAgICAgY3VycmVudFRyZWUgPSBuZXdUcmVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKTtcbiAgICB9LCAoKT0+c3RhdGUpO1xufVxuZnVuY3Rpb24gZmFzdFJlZnJlc2hSZWR1Y2VyTm9vcChzdGF0ZSwgX2FjdGlvbikge1xuICAgIHJldHVybiBzdGF0ZTtcbn1cbmV4cG9ydCBjb25zdCBmYXN0UmVmcmVzaFJlZHVjZXIgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmYXN0UmVmcmVzaFJlZHVjZXJOb29wIDogZmFzdFJlZnJlc2hSZWR1Y2VySW1wbDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmFzdC1yZWZyZXNoLXJlZHVjZXIuanMubWFwIl0sIm5hbWVzIjpbImZldGNoU2VydmVyUmVzcG9uc2UiLCJjcmVhdGVIcmVmRnJvbVVybCIsImFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZVNraXBEZWZhdWx0IiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiaGFuZGxlRXh0ZXJuYWxVcmwiLCJoYW5kbGVNdXRhYmxlIiwiYXBwbHlGbGlnaHREYXRhIiwiY3JlYXRlRW1wdHlDYWNoZU5vZGUiLCJoYW5kbGVTZWdtZW50TWlzbWF0Y2giLCJmYXN0UmVmcmVzaFJlZHVjZXJJbXBsIiwic3RhdGUiLCJhY3Rpb24iLCJvcmlnaW4iLCJtdXRhYmxlIiwiaHJlZiIsImNhbm9uaWNhbFVybCIsInByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlIiwiY2FjaGUiLCJsYXp5RGF0YSIsIlVSTCIsInRyZWUiLCJuZXh0VXJsIiwiYnVpbGRJZCIsInRoZW4iLCJwYXJhbSIsImZsaWdodERhdGEiLCJjYW5vbmljYWxVcmxPdmVycmlkZSIsInB1c2hSZWYiLCJwZW5kaW5nUHVzaCIsImN1cnJlbnRUcmVlIiwiY3VycmVudENhY2hlIiwiZmxpZ2h0RGF0YVBhdGgiLCJsZW5ndGgiLCJjb25zb2xlIiwibG9nIiwidHJlZVBhdGNoIiwibmV3VHJlZSIsImNhbm9uaWNhbFVybE92ZXJyaWRlSHJlZiIsInVuZGVmaW5lZCIsImFwcGxpZWQiLCJwYXRjaGVkVHJlZSIsImZhc3RSZWZyZXNoUmVkdWNlck5vb3AiLCJfYWN0aW9uIiwiZmFzdFJlZnJlc2hSZWR1Y2VyIiwicHJvY2VzcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/fast-refresh-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/find-head-in-cache.js":
-/*!********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/find-head-in-cache.js ***!
- \********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ findHeadInCache: () => (/* binding */ findHeadInCache)\n/* harmony export */ });\n/* harmony import */ var _create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../create-router-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js\");\n\nfunction findHeadInCache(cache, parallelRoutes) {\n return findHeadInCacheImpl(cache, parallelRoutes, \"\");\n}\nfunction findHeadInCacheImpl(cache, parallelRoutes, keyPrefix) {\n const isLastItem = Object.keys(parallelRoutes).length === 0;\n if (isLastItem) {\n // Returns the entire Cache Node of the segment whose head we will render.\n return [\n cache,\n keyPrefix\n ];\n }\n for(const key in parallelRoutes){\n const [segment, childParallelRoutes] = parallelRoutes[key];\n const childSegmentMap = cache.parallelRoutes.get(key);\n if (!childSegmentMap) {\n continue;\n }\n const cacheKey = (0,_create_router_cache_key__WEBPACK_IMPORTED_MODULE_0__.createRouterCacheKey)(segment);\n const cacheNode = childSegmentMap.get(cacheKey);\n if (!cacheNode) {\n continue;\n }\n const item = findHeadInCacheImpl(cacheNode, childParallelRoutes, keyPrefix + \"/\" + cacheKey);\n if (item) {\n return item;\n }\n }\n return null;\n} //# sourceMappingURL=find-head-in-cache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZmluZC1oZWFkLWluLWNhY2hlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWtFO0FBQzNELFNBQVNDLGdCQUFnQkMsS0FBSyxFQUFFQyxjQUFjO0lBQ2pELE9BQU9DLG9CQUFvQkYsT0FBT0MsZ0JBQWdCO0FBQ3REO0FBQ0EsU0FBU0Msb0JBQW9CRixLQUFLLEVBQUVDLGNBQWMsRUFBRUUsU0FBUztJQUN6RCxNQUFNQyxhQUFhQyxPQUFPQyxJQUFJLENBQUNMLGdCQUFnQk0sTUFBTSxLQUFLO0lBQzFELElBQUlILFlBQVk7UUFDWiwwRUFBMEU7UUFDMUUsT0FBTztZQUNISjtZQUNBRztTQUNIO0lBQ0w7SUFDQSxJQUFJLE1BQU1LLE9BQU9QLGVBQWU7UUFDNUIsTUFBTSxDQUFDUSxTQUFTQyxvQkFBb0IsR0FBR1QsY0FBYyxDQUFDTyxJQUFJO1FBQzFELE1BQU1HLGtCQUFrQlgsTUFBTUMsY0FBYyxDQUFDVyxHQUFHLENBQUNKO1FBQ2pELElBQUksQ0FBQ0csaUJBQWlCO1lBQ2xCO1FBQ0o7UUFDQSxNQUFNRSxXQUFXZiw4RUFBb0JBLENBQUNXO1FBQ3RDLE1BQU1LLFlBQVlILGdCQUFnQkMsR0FBRyxDQUFDQztRQUN0QyxJQUFJLENBQUNDLFdBQVc7WUFDWjtRQUNKO1FBQ0EsTUFBTUMsT0FBT2Isb0JBQW9CWSxXQUFXSixxQkFBcUJQLFlBQVksTUFBTVU7UUFDbkYsSUFBSUUsTUFBTTtZQUNOLE9BQU9BO1FBQ1g7SUFDSjtJQUNBLE9BQU87QUFDWCxFQUVBLDhDQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZmluZC1oZWFkLWluLWNhY2hlLmpzPzdiZWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUm91dGVyQ2FjaGVLZXkgfSBmcm9tIFwiLi4vY3JlYXRlLXJvdXRlci1jYWNoZS1rZXlcIjtcbmV4cG9ydCBmdW5jdGlvbiBmaW5kSGVhZEluQ2FjaGUoY2FjaGUsIHBhcmFsbGVsUm91dGVzKSB7XG4gICAgcmV0dXJuIGZpbmRIZWFkSW5DYWNoZUltcGwoY2FjaGUsIHBhcmFsbGVsUm91dGVzLCBcIlwiKTtcbn1cbmZ1bmN0aW9uIGZpbmRIZWFkSW5DYWNoZUltcGwoY2FjaGUsIHBhcmFsbGVsUm91dGVzLCBrZXlQcmVmaXgpIHtcbiAgICBjb25zdCBpc0xhc3RJdGVtID0gT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpLmxlbmd0aCA9PT0gMDtcbiAgICBpZiAoaXNMYXN0SXRlbSkge1xuICAgICAgICAvLyBSZXR1cm5zIHRoZSBlbnRpcmUgQ2FjaGUgTm9kZSBvZiB0aGUgc2VnbWVudCB3aG9zZSBoZWFkIHdlIHdpbGwgcmVuZGVyLlxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgY2FjaGUsXG4gICAgICAgICAgICBrZXlQcmVmaXhcbiAgICAgICAgXTtcbiAgICB9XG4gICAgZm9yKGNvbnN0IGtleSBpbiBwYXJhbGxlbFJvdXRlcyl7XG4gICAgICAgIGNvbnN0IFtzZWdtZW50LCBjaGlsZFBhcmFsbGVsUm91dGVzXSA9IHBhcmFsbGVsUm91dGVzW2tleV07XG4gICAgICAgIGNvbnN0IGNoaWxkU2VnbWVudE1hcCA9IGNhY2hlLnBhcmFsbGVsUm91dGVzLmdldChrZXkpO1xuICAgICAgICBpZiAoIWNoaWxkU2VnbWVudE1hcCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50KTtcbiAgICAgICAgY29uc3QgY2FjaGVOb2RlID0gY2hpbGRTZWdtZW50TWFwLmdldChjYWNoZUtleSk7XG4gICAgICAgIGlmICghY2FjaGVOb2RlKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtID0gZmluZEhlYWRJbkNhY2hlSW1wbChjYWNoZU5vZGUsIGNoaWxkUGFyYWxsZWxSb3V0ZXMsIGtleVByZWZpeCArIFwiL1wiICsgY2FjaGVLZXkpO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbmQtaGVhZC1pbi1jYWNoZS5qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJmaW5kSGVhZEluQ2FjaGUiLCJjYWNoZSIsInBhcmFsbGVsUm91dGVzIiwiZmluZEhlYWRJbkNhY2hlSW1wbCIsImtleVByZWZpeCIsImlzTGFzdEl0ZW0iLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwia2V5Iiwic2VnbWVudCIsImNoaWxkUGFyYWxsZWxSb3V0ZXMiLCJjaGlsZFNlZ21lbnRNYXAiLCJnZXQiLCJjYWNoZUtleSIsImNhY2hlTm9kZSIsIml0ZW0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/find-head-in-cache.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js":
-/*!*******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js ***!
- \*******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getSegmentValue: () => (/* binding */ getSegmentValue)\n/* harmony export */ });\nfunction getSegmentValue(segment) {\n return Array.isArray(segment) ? segment[1] : segment;\n} //# sourceMappingURL=get-segment-value.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLGdCQUFnQkMsT0FBTztJQUNuQyxPQUFPQyxNQUFNQyxPQUFPLENBQUNGLFdBQVdBLE9BQU8sQ0FBQyxFQUFFLEdBQUdBO0FBQ2pELEVBRUEsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9nZXQtc2VnbWVudC12YWx1ZS5qcz84MTRiIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRTZWdtZW50VmFsdWUoc2VnbWVudCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHNlZ21lbnQpID8gc2VnbWVudFsxXSA6IHNlZ21lbnQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1zZWdtZW50LXZhbHVlLmpzLm1hcCJdLCJuYW1lcyI6WyJnZXRTZWdtZW50VmFsdWUiLCJzZWdtZW50IiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js":
-/*!******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js ***!
- \******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleExternalUrl: () => (/* binding */ handleExternalUrl),\n/* harmony export */ navigateReducer: () => (/* binding */ navigateReducer)\n/* harmony export */ });\n/* harmony import */ var _fetch_server_response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js\");\n/* harmony import */ var _create_href_from_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n/* harmony import */ var _invalidate_cache_below_flight_segmentpath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../invalidate-cache-below-flight-segmentpath */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js\");\n/* harmony import */ var _fill_cache_with_data_property__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../fill-cache-with-data-property */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-data-property.js\");\n/* harmony import */ var _apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\n/* harmony import */ var _should_hard_navigate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../should-hard-navigate */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/should-hard-navigate.js\");\n/* harmony import */ var _is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\n/* harmony import */ var _router_reducer_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../router-reducer-types */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js\");\n/* harmony import */ var _handle_mutable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js\");\n/* harmony import */ var _apply_flight_data__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-flight-data.js\");\n/* harmony import */ var _get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../get-prefetch-cache-entry-status */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/get-prefetch-cache-entry-status.js\");\n/* harmony import */ var _prune_prefetch_cache__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./prune-prefetch-cache */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prune-prefetch-cache.js\");\n/* harmony import */ var _prefetch_reducer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./prefetch-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prefetch-reducer.js\");\n/* harmony import */ var _app_router__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../app-router */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\");\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n/* harmony import */ var _ppr_navigations__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../ppr-navigations */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/ppr-navigations.js\");\n/* harmony import */ var _create_prefetch_cache_key__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./create-prefetch-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/create-prefetch-cache-key.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction handleExternalUrl(state, mutable, url, pendingPush) {\n mutable.mpaNavigation = true;\n mutable.canonicalUrl = url;\n mutable.pendingPush = pendingPush;\n mutable.scrollableSegments = undefined;\n return (0,_handle_mutable__WEBPACK_IMPORTED_MODULE_8__.handleMutable)(state, mutable);\n}\nfunction generateSegmentsFromPatch(flightRouterPatch) {\n const segments = [];\n const [segment, parallelRoutes] = flightRouterPatch;\n if (Object.keys(parallelRoutes).length === 0) {\n return [\n [\n segment\n ]\n ];\n }\n for (const [parallelRouteKey, parallelRoute] of Object.entries(parallelRoutes)){\n for (const childSegment of generateSegmentsFromPatch(parallelRoute)){\n // If the segment is empty, it means we are at the root of the tree\n if (segment === \"\") {\n segments.push([\n parallelRouteKey,\n ...childSegment\n ]);\n } else {\n segments.push([\n segment,\n parallelRouteKey,\n ...childSegment\n ]);\n }\n }\n }\n return segments;\n}\nfunction addRefetchToLeafSegments(newCache, currentCache, flightSegmentPath, treePatch, data) {\n let appliedPatch = false;\n newCache.rsc = currentCache.rsc;\n newCache.prefetchRsc = currentCache.prefetchRsc;\n newCache.parallelRoutes = new Map(currentCache.parallelRoutes);\n const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map((segment)=>[\n ...flightSegmentPath,\n ...segment\n ]);\n for (const segmentPaths of segmentPathsToFill){\n (0,_fill_cache_with_data_property__WEBPACK_IMPORTED_MODULE_3__.fillCacheWithDataProperty)(newCache, currentCache, segmentPaths, data);\n appliedPatch = true;\n }\n return appliedPatch;\n}\n// These implementations are expected to diverge significantly, so I've forked\n// the entire function. The one that's disabled should be dead code eliminated\n// because the check here is statically inlined at build time.\nconst navigateReducer = false ? 0 : navigateReducer_noPPR;\n// This is the implementation when PPR is disabled. We can assume its behavior\n// is relatively stable because it's been running in production for a while.\nfunction navigateReducer_noPPR(state, action) {\n const { url, isExternalUrl, navigateType, shouldScroll } = action;\n const mutable = {};\n const { hash } = url;\n const href = (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_1__.createHrefFromUrl)(url);\n const pendingPush = navigateType === \"push\";\n // we want to prune the prefetch cache on every navigation to avoid it growing too large\n (0,_prune_prefetch_cache__WEBPACK_IMPORTED_MODULE_11__.prunePrefetchCache)(state.prefetchCache);\n mutable.preserveCustomHistoryState = false;\n if (isExternalUrl) {\n return handleExternalUrl(state, mutable, url.toString(), pendingPush);\n }\n const prefetchCacheKey = (0,_create_prefetch_cache_key__WEBPACK_IMPORTED_MODULE_16__.createPrefetchCacheKey)(url, state.nextUrl);\n let prefetchValues = state.prefetchCache.get(prefetchCacheKey);\n // If we don't have a prefetch value, we need to create one\n if (!prefetchValues) {\n const data = (0,_fetch_server_response__WEBPACK_IMPORTED_MODULE_0__.fetchServerResponse)(url, state.tree, state.nextUrl, state.buildId, // in order to simulate the behavior of the prefetch cache\n true ? _router_reducer_types__WEBPACK_IMPORTED_MODULE_7__.PrefetchKind.AUTO : 0);\n const newPrefetchValue = {\n data,\n // this will make sure that the entry will be discarded after 30s\n kind: true ? _router_reducer_types__WEBPACK_IMPORTED_MODULE_7__.PrefetchKind.AUTO : 0,\n prefetchTime: Date.now(),\n treeAtTimeOfPrefetch: state.tree,\n lastUsedTime: null\n };\n state.prefetchCache.set(prefetchCacheKey, newPrefetchValue);\n prefetchValues = newPrefetchValue;\n }\n const prefetchEntryCacheStatus = (0,_get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_10__.getPrefetchEntryCacheStatus)(prefetchValues);\n // The one before last item is the router state tree patch\n const { treeAtTimeOfPrefetch, data } = prefetchValues;\n _prefetch_reducer__WEBPACK_IMPORTED_MODULE_12__.prefetchQueue.bump(data);\n return data.then((param)=>{\n let [flightData, canonicalUrlOverride, postponed] = param;\n // we only want to mark this once\n if (prefetchValues && !prefetchValues.lastUsedTime) {\n // important: we should only mark the cache node as dirty after we unsuspend from the call above\n prefetchValues.lastUsedTime = Date.now();\n }\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === \"string\") {\n return handleExternalUrl(state, mutable, flightData, pendingPush);\n }\n let currentTree = state.tree;\n let currentCache = state.cache;\n let scrollableSegments = [];\n for (const flightDataPath of flightData){\n const flightSegmentPath = flightDataPath.slice(0, -4);\n // The one before last item is the router state tree patch\n const treePatch = flightDataPath.slice(-3)[0];\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = [\n \"\",\n ...flightSegmentPath\n ];\n // Create new tree based on the flightSegmentPath and router state patch\n let newTree = (0,_apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_4__.applyRouterStatePatchToTreeSkipDefault)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch);\n // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch\n // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch.\n if (newTree === null) {\n newTree = (0,_apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_4__.applyRouterStatePatchToTreeSkipDefault)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch);\n }\n if (newTree !== null) {\n if ((0,_is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_6__.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return handleExternalUrl(state, mutable, href, pendingPush);\n }\n const cache = (0,_app_router__WEBPACK_IMPORTED_MODULE_13__.createEmptyCacheNode)();\n let applied = (0,_apply_flight_data__WEBPACK_IMPORTED_MODULE_9__.applyFlightData)(currentCache, cache, flightDataPath, (prefetchValues == null ? void 0 : prefetchValues.kind) === \"auto\" && prefetchEntryCacheStatus === _get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_10__.PrefetchCacheEntryStatus.reusable);\n if (!applied && prefetchEntryCacheStatus === _get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_10__.PrefetchCacheEntryStatus.stale || // TODO-APP: If the prefetch was postponed, we don't want to apply it\n // until we land router changes to handle the postponed case.\n postponed) {\n applied = addRefetchToLeafSegments(cache, currentCache, flightSegmentPath, treePatch, ()=>(0,_fetch_server_response__WEBPACK_IMPORTED_MODULE_0__.fetchServerResponse)(url, currentTree, state.nextUrl, state.buildId));\n }\n const hardNavigate = (0,_should_hard_navigate__WEBPACK_IMPORTED_MODULE_5__.shouldHardNavigate)(flightSegmentPathWithLeadingEmpty, currentTree);\n if (hardNavigate) {\n // Copy rsc for the root node of the cache.\n cache.rsc = currentCache.rsc;\n cache.prefetchRsc = currentCache.prefetchRsc;\n (0,_invalidate_cache_below_flight_segmentpath__WEBPACK_IMPORTED_MODULE_2__.invalidateCacheBelowFlightSegmentPath)(cache, currentCache, flightSegmentPath);\n // Ensure the existing cache value is used when the cache was not invalidated.\n mutable.cache = cache;\n } else if (applied) {\n mutable.cache = cache;\n }\n currentCache = cache;\n currentTree = newTree;\n for (const subSegment of generateSegmentsFromPatch(treePatch)){\n const scrollableSegmentPath = [\n ...flightSegmentPath,\n ...subSegment\n ];\n // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case.\n if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _shared_lib_segment__WEBPACK_IMPORTED_MODULE_14__.DEFAULT_SEGMENT_KEY) {\n scrollableSegments.push(scrollableSegmentPath);\n }\n }\n }\n }\n mutable.patchedTree = currentTree;\n mutable.canonicalUrl = canonicalUrlOverride ? (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_1__.createHrefFromUrl)(canonicalUrlOverride) : href;\n mutable.pendingPush = pendingPush;\n mutable.scrollableSegments = scrollableSegments;\n mutable.hashFragment = hash;\n mutable.shouldScroll = shouldScroll;\n return (0,_handle_mutable__WEBPACK_IMPORTED_MODULE_8__.handleMutable)(state, mutable);\n }, ()=>state);\n}\n// This is the experimental PPR implementation. It's closer to the behavior we\n// want, but is likelier to include accidental regressions because it rewrites\n// existing functionality.\nfunction navigateReducer_PPR(state, action) {\n const { url, isExternalUrl, navigateType, shouldScroll } = action;\n const mutable = {};\n const { hash } = url;\n const href = (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_1__.createHrefFromUrl)(url);\n const pendingPush = navigateType === \"push\";\n // we want to prune the prefetch cache on every navigation to avoid it growing too large\n (0,_prune_prefetch_cache__WEBPACK_IMPORTED_MODULE_11__.prunePrefetchCache)(state.prefetchCache);\n mutable.preserveCustomHistoryState = false;\n if (isExternalUrl) {\n return handleExternalUrl(state, mutable, url.toString(), pendingPush);\n }\n const prefetchCacheKey = (0,_create_prefetch_cache_key__WEBPACK_IMPORTED_MODULE_16__.createPrefetchCacheKey)(url, state.nextUrl);\n let prefetchValues = state.prefetchCache.get(prefetchCacheKey);\n // If we don't have a prefetch value, we need to create one\n if (!prefetchValues) {\n const data = (0,_fetch_server_response__WEBPACK_IMPORTED_MODULE_0__.fetchServerResponse)(url, state.tree, state.nextUrl, state.buildId, // in order to simulate the behavior of the prefetch cache\n true ? _router_reducer_types__WEBPACK_IMPORTED_MODULE_7__.PrefetchKind.AUTO : 0);\n const newPrefetchValue = {\n data,\n // this will make sure that the entry will be discarded after 30s\n kind: true ? _router_reducer_types__WEBPACK_IMPORTED_MODULE_7__.PrefetchKind.AUTO : 0,\n prefetchTime: Date.now(),\n treeAtTimeOfPrefetch: state.tree,\n lastUsedTime: null\n };\n state.prefetchCache.set(prefetchCacheKey, newPrefetchValue);\n prefetchValues = newPrefetchValue;\n }\n const prefetchEntryCacheStatus = (0,_get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_10__.getPrefetchEntryCacheStatus)(prefetchValues);\n // The one before last item is the router state tree patch\n const { treeAtTimeOfPrefetch, data } = prefetchValues;\n _prefetch_reducer__WEBPACK_IMPORTED_MODULE_12__.prefetchQueue.bump(data);\n return data.then((param)=>{\n let [flightData, canonicalUrlOverride, _postponed] = param;\n // we only want to mark this once\n if (prefetchValues && !prefetchValues.lastUsedTime) {\n // important: we should only mark the cache node as dirty after we unsuspend from the call above\n prefetchValues.lastUsedTime = Date.now();\n }\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === \"string\") {\n return handleExternalUrl(state, mutable, flightData, pendingPush);\n }\n let currentTree = state.tree;\n let currentCache = state.cache;\n let scrollableSegments = [];\n // TODO: In practice, this is always a single item array. We probably\n // aren't going to every send multiple segments, at least not in this\n // format. So we could remove the extra wrapper for now until\n // that settles.\n for (const flightDataPath of flightData){\n const flightSegmentPath = flightDataPath.slice(0, -4);\n // The one before last item is the router state tree patch\n const treePatch = flightDataPath.slice(-3)[0];\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = [\n \"\",\n ...flightSegmentPath\n ];\n // Create new tree based on the flightSegmentPath and router state patch\n let newTree = (0,_apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_4__.applyRouterStatePatchToTreeSkipDefault)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch);\n // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch\n // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch.\n if (newTree === null) {\n newTree = (0,_apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_4__.applyRouterStatePatchToTreeSkipDefault)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch);\n }\n if (newTree !== null) {\n if ((0,_is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_6__.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return handleExternalUrl(state, mutable, href, pendingPush);\n }\n if (// will always send back a static response that's rendered from\n // the root. If for some reason it doesn't, we fall back to the\n // non-PPR implementation.\n // TODO: We should get rid of the else branch and do all navigations\n // via updateCacheNodeOnNavigation. The current structure is just\n // an incremental step.\n flightDataPath.length === 3) {\n const prefetchedTree = flightDataPath[0];\n const seedData = flightDataPath[1];\n const head = flightDataPath[2];\n // Check whether the prefetched data is stale. If so, we'll\n // ignore it and wait for the dynamic data to stream in before\n // showing new segments.\n const isPrefetchStale = prefetchEntryCacheStatus === _get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_10__.PrefetchCacheEntryStatus.stale;\n const task = (0,_ppr_navigations__WEBPACK_IMPORTED_MODULE_15__.updateCacheNodeOnNavigation)(currentCache, currentTree, prefetchedTree, seedData, head, isPrefetchStale);\n if (task !== null && task.node !== null) {\n // We've created a new Cache Node tree that contains a prefetched\n // version of the next page. This can be rendered instantly.\n // Use the tree computed by updateCacheNodeOnNavigation instead\n // of the one computed by applyRouterStatePatchToTreeSkipDefault.\n // TODO: We should remove applyRouterStatePatchToTreeSkipDefault\n // from the PPR path entirely.\n const patchedRouterState = task.route;\n newTree = patchedRouterState;\n const newCache = task.node;\n // The prefetched tree has dynamic holes in it. We initiate a\n // dynamic request to fill them in.\n //\n // Do not block on the result. We'll immediately render the Cache\n // Node tree and suspend on the dynamic parts. When the request\n // comes in, we'll fill in missing data and ping React to\n // re-render. Unlike the lazy fetching model in the non-PPR\n // implementation, this is modeled as a single React update +\n // streaming, rather than multiple top-level updates. (However,\n // even in the new model, we'll still need to sometimes update the\n // root multiple times per navigation, like if the server sends us\n // a different response than we expected. For now, we revert back\n // to the lazy fetching mechanism in that case.)\n (0,_ppr_navigations__WEBPACK_IMPORTED_MODULE_15__.listenForDynamicRequest)(task, (0,_fetch_server_response__WEBPACK_IMPORTED_MODULE_0__.fetchServerResponse)(url, currentTree, state.nextUrl, state.buildId));\n mutable.cache = newCache;\n } else {\n // Nothing changed, so reuse the old cache.\n // TODO: What if the head changed but not any of the segment data?\n // Is that possible? If so, we should clone the whole tree and\n // update the head.\n newTree = prefetchedTree;\n }\n } else {\n // The static response does not include any dynamic holes, so\n // there's no need to do a second request.\n // TODO: As an incremental step this just reverts back to the\n // non-PPR implementation. We can simplify this branch further,\n // given that PPR prefetches are always static and return the whole\n // tree. Or in the meantime we could factor it out into a\n // separate function.\n const cache = (0,_app_router__WEBPACK_IMPORTED_MODULE_13__.createEmptyCacheNode)();\n let applied = (0,_apply_flight_data__WEBPACK_IMPORTED_MODULE_9__.applyFlightData)(currentCache, cache, flightDataPath, (prefetchValues == null ? void 0 : prefetchValues.kind) === \"auto\" && prefetchEntryCacheStatus === _get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_10__.PrefetchCacheEntryStatus.reusable);\n if (!applied && prefetchEntryCacheStatus === _get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_10__.PrefetchCacheEntryStatus.stale) {\n applied = addRefetchToLeafSegments(cache, currentCache, flightSegmentPath, treePatch, ()=>(0,_fetch_server_response__WEBPACK_IMPORTED_MODULE_0__.fetchServerResponse)(url, currentTree, state.nextUrl, state.buildId));\n }\n const hardNavigate = (0,_should_hard_navigate__WEBPACK_IMPORTED_MODULE_5__.shouldHardNavigate)(flightSegmentPathWithLeadingEmpty, currentTree);\n if (hardNavigate) {\n // Copy rsc for the root node of the cache.\n cache.rsc = currentCache.rsc;\n cache.prefetchRsc = currentCache.prefetchRsc;\n (0,_invalidate_cache_below_flight_segmentpath__WEBPACK_IMPORTED_MODULE_2__.invalidateCacheBelowFlightSegmentPath)(cache, currentCache, flightSegmentPath);\n // Ensure the existing cache value is used when the cache was not invalidated.\n mutable.cache = cache;\n } else if (applied) {\n mutable.cache = cache;\n }\n }\n currentTree = newTree;\n for (const subSegment of generateSegmentsFromPatch(treePatch)){\n const scrollableSegmentPath = [\n ...flightSegmentPath,\n ...subSegment\n ];\n // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case.\n if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _shared_lib_segment__WEBPACK_IMPORTED_MODULE_14__.DEFAULT_SEGMENT_KEY) {\n scrollableSegments.push(scrollableSegmentPath);\n }\n }\n }\n }\n mutable.patchedTree = currentTree;\n mutable.canonicalUrl = canonicalUrlOverride ? (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_1__.createHrefFromUrl)(canonicalUrlOverride) : href;\n mutable.pendingPush = pendingPush;\n mutable.scrollableSegments = scrollableSegments;\n mutable.hashFragment = hash;\n mutable.shouldScroll = shouldScroll;\n return (0,_handle_mutable__WEBPACK_IMPORTED_MODULE_8__.handleMutable)(state, mutable);\n }, ()=>state);\n} //# sourceMappingURL=navigate-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvbmF2aWdhdGUtcmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQStEO0FBQ0g7QUFDeUM7QUFDeEI7QUFDZ0I7QUFDaEM7QUFDcUI7QUFDM0I7QUFDTDtBQUNLO0FBQ29EO0FBQy9DO0FBQ1Q7QUFDSztBQUNhO0FBQ3FCO0FBQ3JCO0FBQzlELFNBQVNtQixrQkFBa0JDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxHQUFHLEVBQUVDLFdBQVc7SUFDOURGLFFBQVFHLGFBQWEsR0FBRztJQUN4QkgsUUFBUUksWUFBWSxHQUFHSDtJQUN2QkQsUUFBUUUsV0FBVyxHQUFHQTtJQUN0QkYsUUFBUUssa0JBQWtCLEdBQUdDO0lBQzdCLE9BQU9uQiw4REFBYUEsQ0FBQ1ksT0FBT0M7QUFDaEM7QUFDQSxTQUFTTywwQkFBMEJDLGlCQUFpQjtJQUNoRCxNQUFNQyxXQUFXLEVBQUU7SUFDbkIsTUFBTSxDQUFDQyxTQUFTQyxlQUFlLEdBQUdIO0lBQ2xDLElBQUlJLE9BQU9DLElBQUksQ0FBQ0YsZ0JBQWdCRyxNQUFNLEtBQUssR0FBRztRQUMxQyxPQUFPO1lBQ0g7Z0JBQ0lKO2FBQ0g7U0FDSjtJQUNMO0lBQ0EsS0FBSyxNQUFNLENBQUNLLGtCQUFrQkMsY0FBYyxJQUFJSixPQUFPSyxPQUFPLENBQUNOLGdCQUFnQjtRQUMzRSxLQUFLLE1BQU1PLGdCQUFnQlgsMEJBQTBCUyxlQUFlO1lBQ2hFLG1FQUFtRTtZQUNuRSxJQUFJTixZQUFZLElBQUk7Z0JBQ2hCRCxTQUFTVSxJQUFJLENBQUM7b0JBQ1ZKO3VCQUNHRztpQkFDTjtZQUNMLE9BQU87Z0JBQ0hULFNBQVNVLElBQUksQ0FBQztvQkFDVlQ7b0JBQ0FLO3VCQUNHRztpQkFDTjtZQUNMO1FBQ0o7SUFDSjtJQUNBLE9BQU9UO0FBQ1g7QUFDQSxTQUFT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Q3BCO2dCQUNKO2dCQUNBRCxjQUFjSztnQkFDZCxLQUFLLE1BQU1LLGNBQWMxRSwwQkFBMEJpQixXQUFXO29CQUMxRCxNQUFNMEQsd0JBQXdCOzJCQUN2QjNEOzJCQUNBMEQ7cUJBQ047b0JBQ0Qsa0ZBQWtGO29CQUNsRixJQUFJQyxxQkFBcUIsQ0FBQ0Esc0JBQXNCcEUsTUFBTSxHQUFHLEVBQUUsS0FBS3BCLHFFQUFtQkEsRUFBRTt3QkFDakZXLG1CQUFtQmMsSUFBSSxDQUFDK0Q7b0JBQzVCO2dCQUNKO1lBQ0o7UUFDSjtRQUNBbEYsUUFBUW1GLFdBQVcsR0FBR1o7UUFDdEJ2RSxRQUFRSSxZQUFZLEdBQUdpRSx1QkFBdUJ6Rix3RUFBaUJBLENBQUN5Rix3QkFBd0J6QjtRQUN4RjVDLFFBQVFFLFdBQVcsR0FBR0E7UUFDdEJGLFFBQVFLLGtCQUFrQixHQUFHQTtRQUM3QkwsUUFBUW9GLFlBQVksR0FBR3pDO1FBQ3ZCM0MsUUFBUTBDLFlBQVksR0FBR0E7UUFDdkIsT0FBT3ZELDhEQUFhQSxDQUFDWSxPQUFPQztJQUNoQyxHQUFHLElBQUlEO0FBQ1gsRUFFQSw0Q0FBNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL25hdmlnYXRlLXJlZHVjZXIuanM/ZmMwOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaFNlcnZlclJlc3BvbnNlIH0gZnJvbSBcIi4uL2ZldGNoLXNlcnZlci1yZXNwb25zZVwiO1xuaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tIFwiLi4vY3JlYXRlLWhyZWYtZnJvbS11cmxcIjtcbmltcG9ydCB7IGludmFsaWRhdGVDYWNoZUJlbG93RmxpZ2h0U2VnbWVudFBhdGggfSBmcm9tIFwiLi4vaW52YWxpZGF0ZS1jYWNoZS1iZWxvdy1mbGlnaHQtc2VnbWVudHBhdGhcIjtcbmltcG9ydCB7IGZpbGxDYWNoZVdpdGhEYXRhUHJvcGVydHkgfSBmcm9tIFwiLi4vZmlsbC1jYWNoZS13aXRoLWRhdGEtcHJvcGVydHlcIjtcbmltcG9ydCB7IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZVNraXBEZWZhdWx0IH0gZnJvbSBcIi4uL2FwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlXCI7XG5pbXBvcnQgeyBzaG91bGRIYXJkTmF2aWdhdGUgfSBmcm9tIFwiLi4vc2hvdWxkLWhhcmQtbmF2aWdhdGVcIjtcbmltcG9ydCB7IGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCB9IGZyb20gXCIuLi9pcy1uYXZpZ2F0aW5nLXRvLW5ldy1yb290LWxheW91dFwiO1xuaW1wb3J0IHsgUHJlZmV0Y2hLaW5kIH0gZnJvbSBcIi4uL3JvdXRlci1yZWR1Y2VyLXR5cGVzXCI7XG5pbXBvcnQgeyBoYW5kbGVNdXRhYmxlIH0gZnJvbSBcIi4uL2hhbmRsZS1tdXRhYmxlXCI7XG5pbXBvcnQgeyBhcHBseUZsaWdodERhdGEgfSBmcm9tIFwiLi4vYXBwbHktZmxpZ2h0LWRhdGFcIjtcbmltcG9ydCB7IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cywgZ2V0UHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzIH0gZnJvbSBcIi4uL2dldC1wcmVmZXRjaC1jYWNoZS1lbnRyeS1zdGF0dXNcIjtcbmltcG9ydCB7IHBydW5lUHJlZmV0Y2hDYWNoZSB9IGZyb20gXCIuL3BydW5lLXByZWZldGNoLWNhY2hlXCI7XG5pbXBvcnQgeyBwcmVmZXRjaFF1ZXVlIH0gZnJvbSBcIi4vcHJlZmV0Y2gtcmVkdWNlclwiO1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlDYWNoZU5vZGUgfSBmcm9tIFwiLi4vLi4vYXBwLXJvdXRlclwiO1xuaW1wb3J0IHsgREVGQVVMVF9TRUdNRU5UX0tFWSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnRcIjtcbmltcG9ydCB7IGxpc3RlbkZvckR5bmFtaWNSZXF1ZXN0LCB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24gfSBmcm9tIFwiLi4vcHByLW5hdmlnYXRpb25zXCI7XG5pbXBvcnQgeyBjcmVhdGVQcmVmZXRjaENhY2hlS2V5IH0gZnJvbSBcIi4vY3JlYXRlLXByZWZldGNoLWNhY2hlLWtleVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCB1cmwsIHBlbmRpbmdQdXNoKSB7XG4gICAgbXV0YWJsZS5tcGFOYXZpZ2F0aW9uID0gdHJ1ZTtcbiAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IHVybDtcbiAgICBtdXRhYmxlLnBlbmRpbmdQdXNoID0gcGVuZGluZ1B1c2g7XG4gICAgbXV0YWJsZS5zY3JvbGxhYmxlU2VnbWVudHMgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGhhbmRsZU11dGFibGUoc3RhdGUsIG11dGFibGUpO1xufVxuZnVuY3Rpb24gZ2VuZXJhdGVTZWdtZW50c0Zyb21QYXRjaChmbGlnaHRSb3V0ZXJQYXRjaCkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gW107XG4gICAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzXSA9IGZsaWdodFJvdXRlclBhdGNoO1xuICAgIGlmIChPYmplY3Qua2V5cyhwYXJhbGxlbFJvdXRlcykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgc2VnbWVudFxuICAgICAgICAgICAgXVxuICAgICAgICBdO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtwYXJhbGxlbFJvdXRlS2V5LCBwYXJhbGxlbFJvdXRlXSBvZiBPYmplY3QuZW50cmllcyhwYXJhbGxlbFJvdXRlcykpe1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkU2VnbWVudCBvZiBnZW5lcmF0ZVNlZ21lbnRzRnJvbVBhdGNoKHBhcmFsbGVsUm91dGUpKXtcbiAgICAgICAgICAgIC8vIElmIHRoZSBzZWdtZW50IGlzIGVtcHR5LCBpdCBtZWFucyB3ZSBhcmUgYXQgdGhlIHJvb3Qgb2YgdGhlIHRyZWVcbiAgICAgICAgICAgIGlmIChzZWdtZW50ID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgc2VnbWVudHMucHVzaChbXG4gICAgICAgICAgICAgICAgICAgIHBhcmFsbGVsUm91dGVLZXksXG4gICAgICAgICAgICAgICAgICAgIC4uLmNoaWxkU2VnbWVudFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZWdtZW50cy5wdXNoKFtcbiAgICAgICAgICAgICAgICAgICAgc2VnbWVudCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZUtleSxcbiAgICAgICAgICAgICAgICAgICAgLi4uY2hpbGRTZWdtZW50XG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHNlZ21lbnRzO1xufVxuZnVuY3Rpb24gYWRkUmVmZXRjaFRvTGVhZlNlZ21lbnRzKG5ld0NhY2hlLCBjdXJyZW50Q2FjaGUsIGZsaWdodFNlZ21lbnRQYXRoLCB0cmVlUGF0Y2gsIGRhdGEpIHtcbiAgICBsZXQgYXBwbGllZFBhdGNoID0gZmFsc2U7XG4gICAgbmV3Q2FjaGUucnNjID0gY3VycmVudENhY2hlLnJzYztcbiAgICBuZXdDYWNoZS5wcmVmZXRjaFJzYyA9IGN1cnJlbnRDYWNoZS5wcmVmZXRjaFJzYztcbiAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcyA9IG5ldyBNYXAoY3VycmVudENhY2hlLnBhcmFsbGVsUm91dGVzKTtcbiAgICBjb25zdCBzZWdtZW50UGF0aHNUb0ZpbGwgPSBnZW5lcmF0ZVNlZ21lbnRzRnJvbVBhdGNoKHRyZWVQYXRjaCkubWFwKChzZWdtZW50KT0+W1xuICAgICAgICAgICAgLi4uZmxpZ2h0U2VnbWVudFBhdGgsXG4gICAgICAgICAgICAuLi5zZWdtZW50XG4gICAgICAgIF0pO1xuICAgIGZvciAoY29uc3Qgc2VnbWVudFBhdGhzIG9mIHNlZ21lbnRQYXRoc1RvRmlsbCl7XG4gICAgICAgIGZpbGxDYWNoZVdpdGhEYXRhUHJvcGVydHkobmV3Q2FjaGUsIGN1cnJlbnRDYWNoZSwgc2VnbWVudFBhdGhzLCBkYXRhKTtcbiAgICAgICAgYXBwbGllZFBhdGNoID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFwcGxpZWRQYXRjaDtcbn1cbi8vIFRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgZXhwZWN0ZWQgdG8gZGl2ZXJnZSBzaWduaWZpY2FudGx5LCBzbyBJJ3ZlIGZvcmtlZFxuLy8gdGhlIGVudGlyZSBmdW5jdGlvbi4gVGhlIG9uZSB0aGF0J3MgZGlzYWJsZWQgc2hvdWxkIGJlIGRlYWQgY29kZSBlbGltaW5hdGVkXG4vLyBiZWNhdXNlIHRoZSBjaGVjayBoZXJlIGlzIHN0YXRpY2FsbHkgaW5saW5lZCBhdCBidWlsZCB0aW1lLlxuZXhwb3J0IGNvbnN0IG5hdmlnYXRlUmVkdWNlciA9IHByb2Nlc3MuZW52Ll9fTkVYVF9QUFIgPyBuYXZpZ2F0ZVJlZHVjZXJfUFBSIDogbmF2aWdhdGVSZWR1Y2VyX25vUFBSO1xuLy8gVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24gd2hlbiBQUFIgaXMgZGlzYWJsZWQuIFdlIGNhbiBhc3N1bWUgaXRzIGJlaGF2aW9yXG4vLyBpcyByZWxhdGl2ZWx5IHN0YWJsZSBiZWNhdXNlIGl0J3MgYmVlbiBydW5uaW5nIGluIHByb2R1Y3Rpb24gZm9yIGEgd2hpbGUuXG5mdW5jdGlvbiBuYXZpZ2F0ZVJlZHVjZXJfbm9QUFIoc3RhdGUsIGFjdGlvbikge1xuICAgIGNvbnN0IHsgdXJsLCBpc0V4dGVybmFsVXJsLCBuYXZpZ2F0ZVR5cGUsIHNob3VsZFNjcm9sbCB9ID0gYWN0aW9uO1xuICAgIGNvbnN0IG11dGFibGUgPSB7fTtcbiAgICBjb25zdCB7IGhhc2ggfSA9IHVybDtcbiAgICBjb25zdCBocmVmID0gY3JlYXRlSHJlZkZyb21VcmwodXJsKTtcbiAgICBjb25zdCBwZW5kaW5nUHVzaCA9IG5hdmlnYXRlVHlwZSA9PT0gXCJwdXNoXCI7XG4gICAgLy8gd2Ugd2FudCB0byBwcnVuZSB0aGUgcHJlZmV0Y2ggY2FjaGUgb24gZXZlcnkgbmF2aWdhdGlvbiB0byBhdm9pZCBpdCBncm93aW5nIHRvbyBsYXJnZVxuICAgIHBydW5lUHJlZmV0Y2hDYWNoZShzdGF0ZS5wcmVmZXRjaENhY2hlKTtcbiAgICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlID0gZmFsc2U7XG4gICAgaWYgKGlzRXh0ZXJuYWxVcmwpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCB1cmwudG9TdHJpbmcoKSwgcGVuZGluZ1B1c2gpO1xuICAgIH1cbiAgICBjb25zdCBwcmVmZXRjaENhY2hlS2V5ID0gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleSh1cmwsIHN0YXRlLm5leHRVcmwpO1xuICAgIGxldCBwcmVmZXRjaFZhbHVlcyA9IHN0YXRlLnByZWZldGNoQ2FjaGUuZ2V0KHByZWZldGNoQ2FjaGVLZXkpO1xuICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBwcmVmZXRjaCB2YWx1ZSwgd2UgbmVlZCB0byBjcmVhdGUgb25lXG4gICAgaWYgKCFwcmVmZXRjaFZhbHVlcykge1xuICAgICAgICBjb25zdCBkYXRhID0gZmV0Y2hTZXJ2ZXJSZXNwb25zZSh1cmwsIHN0YXRlLnRyZWUsIHN0YXRlLm5leHRVcmwsIHN0YXRlLmJ1aWxkSWQsIC8vIGluIGRldiwgdGhlcmUncyBuZXZlciBnb25uYSBiZSBhIHByZWZldGNoIGVudHJ5IHNvIHdlIHdhbnQgdG8gcHJlZmV0Y2ggaGVyZVxuICAgICAgICAvLyBpbiBvcmRlciB0byBzaW11bGF0ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIHByZWZldGNoIGNhY2hlXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIgPyBQcmVmZXRjaEtpbmQuQVVUTyA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5ld1ByZWZldGNoVmFsdWUgPSB7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgLy8gdGhpcyB3aWxsIG1ha2Ugc3VyZSB0aGF0IHRoZSBlbnRyeSB3aWxsIGJlIGRpc2NhcmRlZCBhZnRlciAzMHNcbiAgICAgICAgICAgIGtpbmQ6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIgPyBQcmVmZXRjaEtpbmQuQVVUTyA6IFByZWZldGNoS2luZC5URU1QT1JBUlksXG4gICAgICAgICAgICBwcmVmZXRjaFRpbWU6IERhdGUubm93KCksXG4gICAgICAgICAgICB0cmVlQXRUaW1lT2ZQcmVmZXRjaDogc3RhdGUudHJlZSxcbiAgICAgICAgICAgIGxhc3RVc2VkVGltZTogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBzdGF0ZS5wcmVmZXRjaENhY2hlLnNldChwcmVmZXRjaENhY2hlS2V5LCBuZXdQcmVmZXRjaFZhbHVlKTtcbiAgICAgICAgcHJlZmV0Y2hWYWx1ZXMgPSBuZXdQcmVmZXRjaFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBwcmVmZXRjaEVudHJ5Q2FjaGVTdGF0dXMgPSBnZXRQcmVmZXRjaEVudHJ5Q2FjaGVTdGF0dXMocHJlZmV0Y2hWYWx1ZXMpO1xuICAgIC8vIFRoZSBvbmUgYmVmb3JlIGxhc3QgaXRlbSBpcyB0aGUgcm91dGVyIHN0YXRlIHRyZWUgcGF0Y2hcbiAgICBjb25zdCB7IHRyZWVBdFRpbWVPZlByZWZldGNoLCBkYXRhIH0gPSBwcmVmZXRjaFZhbHVlcztcbiAgICBwcmVmZXRjaFF1ZXVlLmJ1bXAoZGF0YSk7XG4gICAgcmV0dXJuIGRhdGEudGhlbigocGFyYW0pPT57XG4gICAgICAgIGxldCBbZmxpZ2h0RGF0YSwgY2Fub25pY2FsVXJsT3ZlcnJpZGUsIHBvc3Rwb25lZF0gPSBwYXJhbTtcbiAgICAgICAgLy8gd2Ugb25seSB3YW50IHRvIG1hcmsgdGhpcyBvbmNlXG4gICAgICAgIGlmIChwcmVmZXRjaFZhbHVlcyAmJiAhcHJlZmV0Y2hWYWx1ZXMubGFzdFVzZWRUaW1lKSB7XG4gICAgICAgICAgICAvLyBpbXBvcnRhbnQ6IHdlIHNob3VsZCBvbmx5IG1hcmsgdGhlIGNhY2hlIG5vZGUgYXMgZGlydHkgYWZ0ZXIgd2UgdW5zdXNwZW5kIGZyb20gdGhlIGNhbGwgYWJvdmVcbiAgICAgICAgICAgIHByZWZldGNoVmFsdWVzLmxhc3RVc2VkVGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBuYXZpZ2F0aW5nIHRvIHBhZ2UgaW4gYHBhZ2VzYCBmcm9tIGBhcHBgXG4gICAgICAgIGlmICh0eXBlb2YgZmxpZ2h0RGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCBmbGlnaHREYXRhLCBwZW5kaW5nUHVzaCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGN1cnJlbnRUcmVlID0gc3RhdGUudHJlZTtcbiAgICAgICAgbGV0IGN1cnJlbnRDYWNoZSA9IHN0YXRlLmNhY2hlO1xuICAgICAgICBsZXQgc2Nyb2xsYWJsZVNlZ21lbnRzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZmxpZ2h0RGF0YVBhdGggb2YgZmxpZ2h0RGF0YSl7XG4gICAgICAgICAgICBjb25zdCBmbGlnaHRTZWdtZW50UGF0aCA9IGZsaWdodERhdGFQYXRoLnNsaWNlKDAsIC00KTtcbiAgICAgICAgICAgIC8vIFRoZSBvbmUgYmVmb3JlIGxhc3QgaXRlbSBpcyB0aGUgcm91dGVyIHN0YXRlIHRyZWUgcGF0Y2hcbiAgICAgICAgICAgIGNvbnN0IHRyZWVQYXRjaCA9IGZsaWdodERhdGFQYXRoLnNsaWNlKC0zKVswXTtcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgICAgIGNvbnN0IGZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSA9IFtcbiAgICAgICAgICAgICAgICBcIlwiLFxuICAgICAgICAgICAgICAgIC4uLmZsaWdodFNlZ21lbnRQYXRoXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgLy8gQ3JlYXRlIG5ldyB0cmVlIGJhc2VkIG9uIHRoZSBmbGlnaHRTZWdtZW50UGF0aCBhbmQgcm91dGVyIHN0YXRlIHBhdGNoXG4gICAgICAgICAgICBsZXQgbmV3VHJlZSA9IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZVNraXBEZWZhdWx0KC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgICAgIGZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSwgY3VycmVudFRyZWUsIHRyZWVQYXRjaCk7XG4gICAgICAgICAgICAvLyBJZiB0aGUgdHJlZSBwYXRjaCBjYW4ndCBiZSBhcHBsaWVkIHRvIHRoZSBjdXJyZW50IHRyZWUgdGhlbiB3ZSB1c2UgdGhlIHRyZWUgYXQgdGltZSBvZiBwcmVmZXRjaFxuICAgICAgICAgICAgLy8gVE9ETy1BUFA6IFRoaXMgc2hvdWxkIGluc3RlYWQgZmlsbCBpbiB0aGUgbWlzc2luZyBwaWVjZXMgaW4gYGN1cnJlbnRUcmVlYCB3aXRoIHRoZSBkYXRhIGZyb20gYHRyZWVBdFRpbWVPZlByZWZldGNoYCwgdGhlbiBhcHBseSB0aGUgcGF0Y2guXG4gICAgICAgICAgICBpZiAobmV3VHJlZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWVTa2lwRGVmYXVsdCgvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICAgICAgICAgICAgZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5LCB0cmVlQXRUaW1lT2ZQcmVmZXRjaCwgdHJlZVBhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuZXdUcmVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dChjdXJyZW50VHJlZSwgbmV3VHJlZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCBocmVmLCBwZW5kaW5nUHVzaCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNhY2hlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKTtcbiAgICAgICAgICAgICAgICBsZXQgYXBwbGllZCA9IGFwcGx5RmxpZ2h0RGF0YShjdXJyZW50Q2FjaGUsIGNhY2hlLCBmbGlnaHREYXRhUGF0aCwgKHByZWZldGNoVmFsdWVzID09IG51bGwgPyB2b2lkIDAgOiBwcmVmZXRjaFZhbHVlcy5raW5kKSA9PT0gXCJhdXRvXCIgJiYgcHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzID09PSBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMucmV1c2FibGUpO1xuICAgICAgICAgICAgICAgIGlmICghYXBwbGllZCAmJiBwcmVmZXRjaEVudHJ5Q2FjaGVTdGF0dXMgPT09IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5zdGFsZSB8fCAvLyBUT0RPLUFQUDogSWYgdGhlIHByZWZldGNoIHdhcyBwb3N0cG9uZWQsIHdlIGRvbid0IHdhbnQgdG8gYXBwbHkgaXRcbiAgICAgICAgICAgICAgICAvLyB1bnRpbCB3ZSBsYW5kIHJvdXRlciBjaGFuZ2VzIHRvIGhhbmRsZSB0aGUgcG9zdHBvbmVkIGNhc2UuXG4gICAgICAgICAgICAgICAgcG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGFwcGxpZWQgPSBhZGRSZWZldGNoVG9MZWFmU2VnbWVudHMoY2FjaGUsIGN1cnJlbnRDYWNoZSwgZmxpZ2h0U2VnbWVudFBhdGgsIHRyZWVQYXRjaCwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuICAgICAgICAgICAgICAgICAgICAoKT0+ZmV0Y2hTZXJ2ZXJSZXNwb25zZSh1cmwsIGN1cnJlbnRUcmVlLCBzdGF0ZS5uZXh0VXJsLCBzdGF0ZS5idWlsZElkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGhhcmROYXZpZ2F0ZSA9IHNob3VsZEhhcmROYXZpZ2F0ZSgvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICAgICAgICAgICAgZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5LCBjdXJyZW50VHJlZSk7XG4gICAgICAgICAgICAgICAgaWYgKGhhcmROYXZpZ2F0ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IHJzYyBmb3IgdGhlIHJvb3Qgbm9kZSBvZiB0aGUgY2FjaGUuXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlLnJzYyA9IGN1cnJlbnRDYWNoZS5yc2M7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlLnByZWZldGNoUnNjID0gY3VycmVudENhY2hlLnByZWZldGNoUnNjO1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkYXRlQ2FjaGVCZWxvd0ZsaWdodFNlZ21lbnRQYXRoKGNhY2hlLCBjdXJyZW50Q2FjaGUsIGZsaWdodFNlZ21lbnRQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBleGlzdGluZyBjYWNoZSB2YWx1ZSBpcyB1c2VkIHdoZW4gdGhlIGNhY2hlIHdhcyBub3QgaW52YWxpZGF0ZWQuXG4gICAgICAgICAgICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFwcGxpZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbXV0YWJsZS5jYWNoZSA9IGNhY2hlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdXJyZW50Q2FjaGUgPSBjYWNoZTtcbiAgICAgICAgICAgICAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWU7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJTZWdtZW50IG9mIGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2godHJlZVBhdGNoKSl7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNjcm9sbGFibGVTZWdtZW50UGF0aCA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZsaWdodFNlZ21lbnRQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3ViU2VnbWVudFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IHRoZSBfX0RFRkFVTFRfXyBwYXRocyBhcyB0aGV5IHNob3VsZG4ndCBiZSBzY3JvbGxlZCB0byBpbiB0aGlzIGNhc2UuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlU2VnbWVudFBhdGhbc2Nyb2xsYWJsZVNlZ21lbnRQYXRoLmxlbmd0aCAtIDFdICE9PSBERUZBVUxUX1NFR01FTlRfS0VZKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlU2VnbWVudHMucHVzaChzY3JvbGxhYmxlU2VnbWVudFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG11dGFibGUucGF0Y2hlZFRyZWUgPSBjdXJyZW50VHJlZTtcbiAgICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSBjYW5vbmljYWxVcmxPdmVycmlkZSA/IGNyZWF0ZUhyZWZGcm9tVXJsKGNhbm9uaWNhbFVybE92ZXJyaWRlKSA6IGhyZWY7XG4gICAgICAgIG11dGFibGUucGVuZGluZ1B1c2ggPSBwZW5kaW5nUHVzaDtcbiAgICAgICAgbXV0YWJsZS5zY3JvbGxhYmxlU2VnbWVudHMgPSBzY3JvbGxhYmxlU2VnbWVudHM7XG4gICAgICAgIG11dGFibGUuaGFzaEZyYWdtZW50ID0gaGFzaDtcbiAgICAgICAgbXV0YWJsZS5zaG91bGRTY3JvbGwgPSBzaG91bGRTY3JvbGw7XG4gICAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKTtcbiAgICB9LCAoKT0+c3RhdGUpO1xufVxuLy8gVGhpcyBpcyB0aGUgZXhwZXJpbWVudGFsIFBQUiBpbXBsZW1lbnRhdGlvbi4gSXQncyBjbG9zZXIgdG8gdGhlIGJlaGF2aW9yIHdlXG4vLyB3YW50LCBidXQgaXMgbGlrZWxpZXIgdG8gaW5jbHVkZSBhY2NpZGVudGFsIHJlZ3Jlc3Npb25zIGJlY2F1c2UgaXQgcmV3cml0ZXNcbi8vIGV4aXN0aW5nIGZ1bmN0aW9uYWxpdHkuXG5mdW5jdGlvbiBuYXZpZ2F0ZVJlZHVjZXJfUFBSKHN0YXRlLCBhY3Rpb24pIHtcbiAgICBjb25zdCB7IHVybCwgaXNFeHRlcm5hbFVybCwgbmF2aWdhdGVUeXBlLCBzaG91bGRTY3JvbGwgfSA9IGFjdGlvbjtcbiAgICBjb25zdCBtdXRhYmxlID0ge307XG4gICAgY29uc3QgeyBoYXNoIH0gPSB1cmw7XG4gICAgY29uc3QgaHJlZiA9IGNyZWF0ZUhyZWZGcm9tVXJsKHVybCk7XG4gICAgY29uc3QgcGVuZGluZ1B1c2ggPSBuYXZpZ2F0ZVR5cGUgPT09IFwicHVzaFwiO1xuICAgIC8vIHdlIHdhbnQgdG8gcHJ1bmUgdGhlIHByZWZldGNoIGNhY2hlIG9uIGV2ZXJ5IG5hdmlnYXRpb24gdG8gYXZvaWQgaXQgZ3Jvd2luZyB0b28gbGFyZ2VcbiAgICBwcnVuZVByZWZldGNoQ2FjaGUoc3RhdGUucHJlZmV0Y2hDYWNoZSk7XG4gICAgbXV0YWJsZS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSA9IGZhbHNlO1xuICAgIGlmIChpc0V4dGVybmFsVXJsKSB7XG4gICAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwgbXV0YWJsZSwgdXJsLnRvU3RyaW5nKCksIHBlbmRpbmdQdXNoKTtcbiAgICB9XG4gICAgY29uc3QgcHJlZmV0Y2hDYWNoZUtleSA9IGNyZWF0ZVByZWZldGNoQ2FjaGVLZXkodXJsLCBzdGF0ZS5uZXh0VXJsKTtcbiAgICBsZXQgcHJlZmV0Y2hWYWx1ZXMgPSBzdGF0ZS5wcmVmZXRjaENhY2hlLmdldChwcmVmZXRjaENhY2hlS2V5KTtcbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgcHJlZmV0Y2ggdmFsdWUsIHdlIG5lZWQgdG8gY3JlYXRlIG9uZVxuICAgIGlmICghcHJlZmV0Y2hWYWx1ZXMpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGZldGNoU2VydmVyUmVzcG9uc2UodXJsLCBzdGF0ZS50cmVlLCBzdGF0ZS5uZXh0VXJsLCBzdGF0ZS5idWlsZElkLCAvLyBpbiBkZXYsIHRoZXJlJ3MgbmV2ZXIgZ29ubmEgYmUgYSBwcmVmZXRjaCBlbnRyeSBzbyB3ZSB3YW50IHRvIHByZWZldGNoIGhlcmVcbiAgICAgICAgLy8gaW4gb3JkZXIgdG8gc2ltdWxhdGUgdGhlIGJlaGF2aW9yIG9mIHRoZSBwcmVmZXRjaCBjYWNoZVxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiID8gUHJlZmV0Y2hLaW5kLkFVVE8gOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBuZXdQcmVmZXRjaFZhbHVlID0ge1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIC8vIHRoaXMgd2lsbCBtYWtlIHN1cmUgdGhhdCB0aGUgZW50cnkgd2lsbCBiZSBkaXNjYXJkZWQgYWZ0ZXIgMzBzXG4gICAgICAgICAgICBraW5kOiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiID8gUHJlZmV0Y2hLaW5kLkFVVE8gOiBQcmVmZXRjaEtpbmQuVEVNUE9SQVJZLFxuICAgICAgICAgICAgcHJlZmV0Y2hUaW1lOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgdHJlZUF0VGltZU9mUHJlZmV0Y2g6IHN0YXRlLnRyZWUsXG4gICAgICAgICAgICBsYXN0VXNlZFRpbWU6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgc3RhdGUucHJlZmV0Y2hDYWNoZS5zZXQocHJlZmV0Y2hDYWNoZUtleSwgbmV3UHJlZmV0Y2hWYWx1ZSk7XG4gICAgICAgIHByZWZldGNoVmFsdWVzID0gbmV3UHJlZmV0Y2hWYWx1ZTtcbiAgICB9XG4gICAgY29uc3QgcHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzID0gZ2V0UHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzKHByZWZldGNoVmFsdWVzKTtcbiAgICAvLyBUaGUgb25lIGJlZm9yZSBsYXN0IGl0ZW0gaXMgdGhlIHJvdXRlciBzdGF0ZSB0cmVlIHBhdGNoXG4gICAgY29uc3QgeyB0cmVlQXRUaW1lT2ZQcmVmZXRjaCwgZGF0YSB9ID0gcHJlZmV0Y2hWYWx1ZXM7XG4gICAgcHJlZmV0Y2hRdWV1ZS5idW1wKGRhdGEpO1xuICAgIHJldHVybiBkYXRhLnRoZW4oKHBhcmFtKT0+e1xuICAgICAgICBsZXQgW2ZsaWdodERhdGEsIGNhbm9uaWNhbFVybE92ZXJyaWRlLCBfcG9zdHBvbmVkXSA9IHBhcmFtO1xuICAgICAgICAvLyB3ZSBvbmx5IHdhbnQgdG8gbWFyayB0aGlzIG9uY2VcbiAgICAgICAgaWYgKHByZWZldGNoVmFsdWVzICYmICFwcmVmZXRjaFZhbHVlcy5sYXN0VXNlZFRpbWUpIHtcbiAgICAgICAgICAgIC8vIGltcG9ydGFudDogd2Ugc2hvdWxkIG9ubHkgbWFyayB0aGUgY2FjaGUgbm9kZSBhcyBkaXJ0eSBhZnRlciB3ZSB1bnN1c3BlbmQgZnJvbSB0aGUgY2FsbCBhYm92ZVxuICAgICAgICAgICAgcHJlZmV0Y2hWYWx1ZXMubGFzdFVzZWRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5hdmlnYXRpbmcgdG8gcGFnZSBpbiBgcGFnZXNgIGZyb20gYGFwcGBcbiAgICAgICAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIGZsaWdodERhdGEsIHBlbmRpbmdQdXNoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3VycmVudFRyZWUgPSBzdGF0ZS50cmVlO1xuICAgICAgICBsZXQgY3VycmVudENhY2hlID0gc3RhdGUuY2FjaGU7XG4gICAgICAgIGxldCBzY3JvbGxhYmxlU2VnbWVudHMgPSBbXTtcbiAgICAgICAgLy8gVE9ETzogSW4gcHJhY3RpY2UsIHRoaXMgaXMgYWx3YXlzIGEgc2luZ2xlIGl0ZW0gYXJyYXkuIFdlIHByb2JhYmx5XG4gICAgICAgIC8vIGFyZW4ndCBnb2luZyB0byBldmVyeSBzZW5kIG11bHRpcGxlIHNlZ21lbnRzLCBhdCBsZWFzdCBub3QgaW4gdGhpc1xuICAgICAgICAvLyBmb3JtYXQuIFNvIHdlIGNvdWxkIHJlbW92ZSB0aGUgZXh0cmEgd3JhcHBlciBmb3Igbm93IHVudGlsXG4gICAgICAgIC8vIHRoYXQgc2V0dGxlcy5cbiAgICAgICAgZm9yIChjb25zdCBmbGlnaHREYXRhUGF0aCBvZiBmbGlnaHREYXRhKXtcbiAgICAgICAgICAgIGNvbnN0IGZsaWdodFNlZ21lbnRQYXRoID0gZmxpZ2h0RGF0YVBhdGguc2xpY2UoMCwgLTQpO1xuICAgICAgICAgICAgLy8gVGhlIG9uZSBiZWZvcmUgbGFzdCBpdGVtIGlzIHRoZSByb3V0ZXIgc3RhdGUgdHJlZSBwYXRjaFxuICAgICAgICAgICAgY29uc3QgdHJlZVBhdGNoID0gZmxpZ2h0RGF0YVBhdGguc2xpY2UoLTMpWzBdO1xuICAgICAgICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgICAgY29uc3QgZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5ID0gW1xuICAgICAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICAgICAgLi4uZmxpZ2h0U2VnbWVudFBhdGhcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICAvLyBDcmVhdGUgbmV3IHRyZWUgYmFzZWQgb24gdGhlIGZsaWdodFNlZ21lbnRQYXRoIGFuZCByb3V0ZXIgc3RhdGUgcGF0Y2hcbiAgICAgICAgICAgIGxldCBuZXdUcmVlID0gYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlU2tpcERlZmF1bHQoLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgICAgZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5LCBjdXJyZW50VHJlZSwgdHJlZVBhdGNoKTtcbiAgICAgICAgICAgIC8vIElmIHRoZSB0cmVlIHBhdGNoIGNhbid0IGJlIGFwcGxpZWQgdG8gdGhlIGN1cnJlbnQgdHJlZSB0aGVuIHdlIHVzZSB0aGUgdHJlZSBhdCB0aW1lIG9mIHByZWZldGNoXG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogVGhpcyBzaG91bGQgaW5zdGVhZCBmaWxsIGluIHRoZSBtaXNzaW5nIHBpZWNlcyBpbiBgY3VycmVudFRyZWVgIHdpdGggdGhlIGRhdGEgZnJvbSBgdHJlZUF0VGltZU9mUHJlZmV0Y2hgLCB0aGVuIGFwcGx5IHRoZSBwYXRjaC5cbiAgICAgICAgICAgIGlmIChuZXdUcmVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbmV3VHJlZSA9IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZVNraXBEZWZhdWx0KC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgICAgICAgICBmbGlnaHRTZWdtZW50UGF0aFdpdGhMZWFkaW5nRW1wdHksIHRyZWVBdFRpbWVPZlByZWZldGNoLCB0cmVlUGF0Y2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5ld1RyZWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KGN1cnJlbnRUcmVlLCBuZXdUcmVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIGhyZWYsIHBlbmRpbmdQdXNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKC8vIFRoaXMgaXMganVzdCBhIHBhcmFub2lkIGNoZWNrLiBXaGVuIFBQUiBpcyBlbmFibGVkLCB0aGUgc2VydmVyXG4gICAgICAgICAgICAgICAgLy8gd2lsbCBhbHdheXMgc2VuZCBiYWNrIGEgc3RhdGljIHJlc3BvbnNlIHRoYXQncyByZW5kZXJlZCBmcm9tXG4gICAgICAgICAgICAgICAgLy8gdGhlIHJvb3QuIElmIGZvciBzb21lIHJlYXNvbiBpdCBkb2Vzbid0LCB3ZSBmYWxsIGJhY2sgdG8gdGhlXG4gICAgICAgICAgICAgICAgLy8gbm9uLVBQUiBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBXZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGUgZWxzZSBicmFuY2ggYW5kIGRvIGFsbCBuYXZpZ2F0aW9uc1xuICAgICAgICAgICAgICAgIC8vIHZpYSB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24uIFRoZSBjdXJyZW50IHN0cnVjdHVyZSBpcyBqdXN0XG4gICAgICAgICAgICAgICAgLy8gYW4gaW5jcmVtZW50YWwgc3RlcC5cbiAgICAgICAgICAgICAgICBmbGlnaHREYXRhUGF0aC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlZmV0Y2hlZFRyZWUgPSBmbGlnaHREYXRhUGF0aFswXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VlZERhdGEgPSBmbGlnaHREYXRhUGF0aFsxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhZCA9IGZsaWdodERhdGFQYXRoWzJdO1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBwcmVmZXRjaGVkIGRhdGEgaXMgc3RhbGUuIElmIHNvLCB3ZSdsbFxuICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgaXQgYW5kIHdhaXQgZm9yIHRoZSBkeW5hbWljIGRhdGEgdG8gc3RyZWFtIGluIGJlZm9yZVxuICAgICAgICAgICAgICAgICAgICAvLyBzaG93aW5nIG5ldyBzZWdtZW50cy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQcmVmZXRjaFN0YWxlID0gcHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzID09PSBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMuc3RhbGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhc2sgPSB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24oY3VycmVudENhY2hlLCBjdXJyZW50VHJlZSwgcHJlZmV0Y2hlZFRyZWUsIHNlZWREYXRhLCBoZWFkLCBpc1ByZWZldGNoU3RhbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFzayAhPT0gbnVsbCAmJiB0YXNrLm5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGNyZWF0ZWQgYSBuZXcgQ2FjaGUgTm9kZSB0cmVlIHRoYXQgY29udGFpbnMgYSBwcmVmZXRjaGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZXJzaW9uIG9mIHRoZSBuZXh0IHBhZ2UuIFRoaXMgY2FuIGJlIHJlbmRlcmVkIGluc3RhbnRseS5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgdHJlZSBjb21wdXRlZCBieSB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24gaW5zdGVhZFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIG9uZSBjb21wdXRlZCBieSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWVTa2lwRGVmYXVsdC5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IFdlIHNob3VsZCByZW1vdmUgYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlU2tpcERlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlIFBQUiBwYXRoIGVudGlyZWx5LlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0Y2hlZFJvdXRlclN0YXRlID0gdGFzay5yb3V0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RyZWUgPSBwYXRjaGVkUm91dGVyU3RhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdDYWNoZSA9IHRhc2subm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwcmVmZXRjaGVkIHRyZWUgaGFzIGR5bmFtaWMgaG9sZXMgaW4gaXQuIFdlIGluaXRpYXRlIGFcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR5bmFtaWMgcmVxdWVzdCB0byBmaWxsIHRoZW0gaW4uXG4gICAgICAgICAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IGJsb2NrIG9uIHRoZSByZXN1bHQuIFdlJ2xsIGltbWVkaWF0ZWx5IHJlbmRlciB0aGUgQ2FjaGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vZGUgdHJlZSBhbmQgc3VzcGVuZCBvbiB0aGUgZHluYW1pYyBwYXJ0cy4gV2hlbiB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tZXMgaW4sIHdlJ2xsIGZpbGwgaW4gbWlzc2luZyBkYXRhIGFuZCBwaW5nIFJlYWN0IHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZS1yZW5kZXIuIFVubGlrZSB0aGUgbGF6eSBmZXRjaGluZyBtb2RlbCBpbiB0aGUgbm9uLVBQUlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24sIHRoaXMgaXMgbW9kZWxlZCBhcyBhIHNpbmdsZSBSZWFjdCB1cGRhdGUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RyZWFtaW5nLCByYXRoZXIgdGhhbiBtdWx0aXBsZSB0b3AtbGV2ZWwgdXBkYXRlcy4gKEhvd2V2ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVuIGluIHRoZSBuZXcgbW9kZWwsIHdlJ2xsIHN0aWxsIG5lZWQgdG8gc29tZXRpbWVzIHVwZGF0ZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvb3QgbXVsdGlwbGUgdGltZXMgcGVyIG5hdmlnYXRpb24sIGxpa2UgaWYgdGhlIHNlcnZlciBzZW5kcyB1c1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBkaWZmZXJlbnQgcmVzcG9uc2UgdGhhbiB3ZSBleHBlY3RlZC4gRm9yIG5vdywgd2UgcmV2ZXJ0IGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBsYXp5IGZldGNoaW5nIG1lY2hhbmlzbSBpbiB0aGF0IGNhc2UuKVxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuRm9yRHluYW1pY1JlcXVlc3QodGFzaywgZmV0Y2hTZXJ2ZXJSZXNwb25zZSh1cmwsIGN1cnJlbnRUcmVlLCBzdGF0ZS5uZXh0VXJsLCBzdGF0ZS5idWlsZElkKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtdXRhYmxlLmNhY2hlID0gbmV3Q2FjaGU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RoaW5nIGNoYW5nZWQsIHNvIHJldXNlIHRoZSBvbGQgY2FjaGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBXaGF0IGlmIHRoZSBoZWFkIGNoYW5nZWQgYnV0IG5vdCBhbnkgb2YgdGhlIHNlZ21lbnQgZGF0YT9cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElzIHRoYXQgcG9zc2libGU/IElmIHNvLCB3ZSBzaG91bGQgY2xvbmUgdGhlIHdob2xlIHRyZWUgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGhlYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdUcmVlID0gcHJlZmV0Y2hlZFRyZWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc3RhdGljIHJlc3BvbnNlIGRvZXMgbm90IGluY2x1ZGUgYW55IGR5bmFtaWMgaG9sZXMsIHNvXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlJ3Mgbm8gbmVlZCB0byBkbyBhIHNlY29uZCByZXF1ZXN0LlxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBBcyBhbiBpbmNyZW1lbnRhbCBzdGVwIHRoaXMganVzdCByZXZlcnRzIGJhY2sgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vbi1QUFIgaW1wbGVtZW50YXRpb24uIFdlIGNhbiBzaW1wbGlmeSB0aGlzIGJyYW5jaCBmdXJ0aGVyLFxuICAgICAgICAgICAgICAgICAgICAvLyBnaXZlbiB0aGF0IFBQUiBwcmVmZXRjaGVzIGFyZSBhbHdheXMgc3RhdGljIGFuZCByZXR1cm4gdGhlIHdob2xlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRyZWUuIE9yIGluIHRoZSBtZWFudGltZSB3ZSBjb3VsZCBmYWN0b3IgaXQgb3V0IGludG8gYVxuICAgICAgICAgICAgICAgICAgICAvLyBzZXBhcmF0ZSBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FjaGUgPSBjcmVhdGVFbXB0eUNhY2hlTm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgYXBwbGllZCA9IGFwcGx5RmxpZ2h0RGF0YShjdXJyZW50Q2FjaGUsIGNhY2hlLCBmbGlnaHREYXRhUGF0aCwgKHByZWZldGNoVmFsdWVzID09IG51bGwgPyB2b2lkIDAgOiBwcmVmZXRjaFZhbHVlcy5raW5kKSA9PT0gXCJhdXRvXCIgJiYgcHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzID09PSBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMucmV1c2FibGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFwcGxpZWQgJiYgcHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzID09PSBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMuc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWQgPSBhZGRSZWZldGNoVG9MZWFmU2VnbWVudHMoY2FjaGUsIGN1cnJlbnRDYWNoZSwgZmxpZ2h0U2VnbWVudFBhdGgsIHRyZWVQYXRjaCwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuICAgICAgICAgICAgICAgICAgICAgICAgKCk9PmZldGNoU2VydmVyUmVzcG9uc2UodXJsLCBjdXJyZW50VHJlZSwgc3RhdGUubmV4dFVybCwgc3RhdGUuYnVpbGRJZCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhcmROYXZpZ2F0ZSA9IHNob3VsZEhhcmROYXZpZ2F0ZSgvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICAgICAgICAgICAgICAgIGZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSwgY3VycmVudFRyZWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFyZE5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IHJzYyBmb3IgdGhlIHJvb3Qgbm9kZSBvZiB0aGUgY2FjaGUuXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZS5yc2MgPSBjdXJyZW50Q2FjaGUucnNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUucHJlZmV0Y2hSc2MgPSBjdXJyZW50Q2FjaGUucHJlZmV0Y2hSc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkYXRlQ2FjaGVCZWxvd0ZsaWdodFNlZ21lbnRQYXRoKGNhY2hlLCBjdXJyZW50Q2FjaGUsIGZsaWdodFNlZ21lbnRQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgZXhpc3RpbmcgY2FjaGUgdmFsdWUgaXMgdXNlZCB3aGVuIHRoZSBjYWNoZSB3YXMgbm90IGludmFsaWRhdGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgbXV0YWJsZS5jYWNoZSA9IGNhY2hlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFwcGxpZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWU7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJTZWdtZW50IG9mIGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2godHJlZVBhdGNoKSl7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNjcm9sbGFibGVTZWdtZW50UGF0aCA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZsaWdodFNlZ21lbnRQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3ViU2VnbWVudFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IHRoZSBfX0RFRkFVTFRfXyBwYXRocyBhcyB0aGV5IHNob3VsZG4ndCBiZSBzY3JvbGxlZCB0byBpbiB0aGlzIGNhc2UuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlU2VnbWVudFBhdGhbc2Nyb2xsYWJsZVNlZ21lbnRQYXRoLmxlbmd0aCAtIDFdICE9PSBERUZBVUxUX1NFR01FTlRfS0VZKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlU2VnbWVudHMucHVzaChzY3JvbGxhYmxlU2VnbWVudFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG11dGFibGUucGF0Y2hlZFRyZWUgPSBjdXJyZW50VHJlZTtcbiAgICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSBjYW5vbmljYWxVcmxPdmVycmlkZSA/IGNyZWF0ZUhyZWZGcm9tVXJsKGNhbm9uaWNhbFVybE92ZXJyaWRlKSA6IGhyZWY7XG4gICAgICAgIG11dGFibGUucGVuZGluZ1B1c2ggPSBwZW5kaW5nUHVzaDtcbiAgICAgICAgbXV0YWJsZS5zY3JvbGxhYmxlU2VnbWVudHMgPSBzY3JvbGxhYmxlU2VnbWVudHM7XG4gICAgICAgIG11dGFibGUuaGFzaEZyYWdtZW50ID0gaGFzaDtcbiAgICAgICAgbXV0YWJsZS5zaG91bGRTY3JvbGwgPSBzaG91bGRTY3JvbGw7XG4gICAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKTtcbiAgICB9LCAoKT0+c3RhdGUpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uYXZpZ2F0ZS1yZWR1Y2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJmZXRjaFNlcnZlclJlc3BvbnNlIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJpbnZhbGlkYXRlQ2FjaGVCZWxvd0ZsaWdodFNlZ21lbnRQYXRoIiwiZmlsbENhY2hlV2l0aERhdGFQcm9wZXJ0eSIsImFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZVNraXBEZWZhdWx0Iiwic2hvdWxkSGFyZE5hdmlnYXRlIiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiUHJlZmV0Y2hLaW5kIiwiaGFuZGxlTXV0YWJsZSIsImFwcGx5RmxpZ2h0RGF0YSIsIlByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyIsImdldFByZWZldGNoRW50cnlDYWNoZVN0YXR1cyIsInBydW5lUHJlZmV0Y2hDYWNoZSIsInByZWZldGNoUXVldWUiLCJjcmVhdGVFbXB0eUNhY2hlTm9kZSIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCIsInVwZGF0ZUNhY2hlTm9kZU9uTmF2aWdhdGlvbiIsImNyZWF0ZVByZWZldGNoQ2FjaGVLZXkiLCJoYW5kbGVFeHRlcm5hbFVybCIsInN0YXRlIiwibXV0YWJsZSIsInVybCIsInBlbmRpbmdQdXNoIiwibXBhTmF2aWdhdGlvbiIsImNhbm9uaWNhbFVybCIsInNjcm9sbGFibGVTZWdtZW50cyIsInVuZGVmaW5lZCIsImdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2giLCJmbGlnaHRSb3V0ZXJQYXRjaCIsInNlZ21lbnRzIiwic2VnbWVudCIsInBhcmFsbGVsUm91dGVzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsInBhcmFsbGVsUm91dGVLZXkiLCJwYXJhbGxlbFJvdXRlIiwiZW50cmllcyIsImNoaWxkU2VnbWVudCIsInB1c2giLCJhZGRSZWZldGNoVG9MZWFmU2VnbWVudHMiLCJuZXdDYWNoZSIsImN1cnJlbnRDYWNoZSIsImZsaWdodFNlZ21lbnRQYXRoIiwidHJlZVBhdGNoIiwiZGF0YSIsImFwcGxpZWRQYXRjaCIsInJzYyIsInByZWZldGNoUnNjIiwiTWFwIiwic2VnbWVudFBhdGhzVG9GaWxsIiwibWFwIiwic2VnbWVudFBhdGhzIiwibmF2aWdhdGVSZWR1Y2VyIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9QUFIiLCJuYXZpZ2F0ZVJlZHVjZXJfUFBSIiwibmF2aWdhdGVSZWR1Y2VyX25vUFBSIiwiYWN0aW9uIiwiaXNFeHRlcm5hbFVybCIsIm5hdmlnYXRlVHlwZSIsInNob3VsZFNjcm9sbCIsImhhc2giLCJocmVmIiwicHJlZmV0Y2hDYWNoZSIsInByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlIiwidG9TdHJpbmciLCJwcmVmZXRjaENhY2hlS2V5IiwibmV4dFVybCIsInByZWZldGNoVmFsdWVzIiwiZ2V0IiwidHJlZSIsImJ1aWxkSWQiLCJBVVRPIiwibmV3UHJlZmV0Y2hWYWx1ZSIsImtpbmQiLCJURU1QT1JBUlkiLCJwcmVmZXRjaFRpbWUiLCJEYXRlIiwibm93IiwidHJlZUF0VGltZU9mUHJlZmV0Y2giLCJsYXN0VXNlZFRpbWUiLCJzZXQiLCJwcmVmZXRjaEVudHJ5Q2FjaGVTdGF0dXMiLCJidW1wIiwidGhlbiIsInBhcmFtIiwiZmxpZ2h0RGF0YSIsImNhbm9uaWNhbFVybE92ZXJyaWRlIiwicG9zdHBvbmVkIiwiY3VycmVudFRyZWUiLCJjYWNoZSIsImZsaWdodERhdGFQYXRoIiwic2xpY2UiLCJmbGlnaHRTZWdtZW50UGF0aFdpdGhMZWFkaW5nRW1wdHkiLCJuZXdUcmVlIiwiYXBwbGllZCIsInJldXNhYmxlIiwic3RhbGUiLCJoYXJkTmF2aWdhdGUiLCJzdWJTZWdtZW50Iiwic2Nyb2xsYWJsZVNlZ21lbnRQYXRoIiwicGF0Y2hlZFRyZWUiLCJoYXNoRnJhZ21lbnQiLCJfcG9zdHBvbmVkIiwicHJlZmV0Y2hlZFRyZWUiLCJzZWVkRGF0YSIsImhlYWQiLCJpc1ByZWZldGNoU3RhbGUiLCJ0YXNrIiwibm9kZSIsInBhdGNoZWRSb3V0ZXJTdGF0ZSIsInJvdXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prefetch-reducer.js":
-/*!******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prefetch-reducer.js ***!
- \******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ prefetchQueue: () => (/* binding */ prefetchQueue),\n/* harmony export */ prefetchReducer: () => (/* binding */ prefetchReducer)\n/* harmony export */ });\n/* harmony import */ var _fetch_server_response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js\");\n/* harmony import */ var _router_reducer_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../router-reducer-types */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js\");\n/* harmony import */ var _prune_prefetch_cache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./prune-prefetch-cache */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prune-prefetch-cache.js\");\n/* harmony import */ var _app_router_headers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _promise_queue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../promise-queue */ \"(ssr)/../../node_modules/next/dist/esm/client/components/promise-queue.js\");\n/* harmony import */ var _create_prefetch_cache_key__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./create-prefetch-cache-key */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/create-prefetch-cache-key.js\");\n\n\n\n\n\n\nconst prefetchQueue = new _promise_queue__WEBPACK_IMPORTED_MODULE_4__.PromiseQueue(5);\nfunction prefetchReducer(state, action) {\n // let's prune the prefetch cache before we do anything else\n (0,_prune_prefetch_cache__WEBPACK_IMPORTED_MODULE_2__.prunePrefetchCache)(state.prefetchCache);\n const { url } = action;\n url.searchParams.delete(_app_router_headers__WEBPACK_IMPORTED_MODULE_3__.NEXT_RSC_UNION_QUERY);\n const prefetchCacheKey = (0,_create_prefetch_cache_key__WEBPACK_IMPORTED_MODULE_5__.createPrefetchCacheKey)(url, state.nextUrl);\n const cacheEntry = state.prefetchCache.get(prefetchCacheKey);\n if (cacheEntry) {\n /**\n * If the cache entry present was marked as temporary, it means that we prefetched it from the navigate reducer,\n * where we didn't have the prefetch intent. We want to update it to the new, more accurate, kind here.\n */ if (cacheEntry.kind === _router_reducer_types__WEBPACK_IMPORTED_MODULE_1__.PrefetchKind.TEMPORARY) {\n state.prefetchCache.set(prefetchCacheKey, {\n ...cacheEntry,\n kind: action.kind\n });\n }\n /**\n * if the prefetch action was a full prefetch and that the current cache entry wasn't one, we want to re-prefetch,\n * otherwise we can re-use the current cache entry\n **/ if (!(cacheEntry.kind === _router_reducer_types__WEBPACK_IMPORTED_MODULE_1__.PrefetchKind.AUTO && action.kind === _router_reducer_types__WEBPACK_IMPORTED_MODULE_1__.PrefetchKind.FULL)) {\n return state;\n }\n }\n // fetchServerResponse is intentionally not awaited so that it can be unwrapped in the navigate-reducer\n const serverResponse = prefetchQueue.enqueue(()=>(0,_fetch_server_response__WEBPACK_IMPORTED_MODULE_0__.fetchServerResponse)(url, state.tree, state.nextUrl, state.buildId, action.kind));\n // Create new tree based on the flightSegmentPath and router state patch\n state.prefetchCache.set(prefetchCacheKey, {\n // Create new tree based on the flightSegmentPath and router state patch\n treeAtTimeOfPrefetch: state.tree,\n data: serverResponse,\n kind: action.kind,\n prefetchTime: Date.now(),\n lastUsedTime: null\n });\n return state;\n} //# sourceMappingURL=prefetch-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcHJlZmV0Y2gtcmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUErRDtBQUNSO0FBQ0s7QUFDSTtBQUNiO0FBQ2tCO0FBQzlELE1BQU1NLGdCQUFnQixJQUFJRix3REFBWUEsQ0FBQyxHQUFHO0FBQzFDLFNBQVNHLGdCQUFnQkMsS0FBSyxFQUFFQyxNQUFNO0lBQ3pDLDREQUE0RDtJQUM1RFAseUVBQWtCQSxDQUFDTSxNQUFNRSxhQUFhO0lBQ3RDLE1BQU0sRUFBRUMsR0FBRyxFQUFFLEdBQUdGO0lBQ2hCRSxJQUFJQyxZQUFZLENBQUNDLE1BQU0sQ0FBQ1YscUVBQW9CQTtJQUM1QyxNQUFNVyxtQkFBbUJULGtGQUFzQkEsQ0FBQ00sS0FBS0gsTUFBTU8sT0FBTztJQUNsRSxNQUFNQyxhQUFhUixNQUFNRSxhQUFhLENBQUNPLEdBQUcsQ0FBQ0g7SUFDM0MsSUFBSUUsWUFBWTtRQUNaOzs7S0FHSCxHQUFHLElBQUlBLFdBQVdFLElBQUksS0FBS2pCLCtEQUFZQSxDQUFDa0IsU0FBUyxFQUFFO1lBQzVDWCxNQUFNRSxhQUFhLENBQUNVLEdBQUcsQ0FBQ04sa0JBQWtCO2dCQUN0QyxHQUFHRSxVQUFVO2dCQUNiRSxNQUFNVCxPQUFPUyxJQUFJO1lBQ3JCO1FBQ0o7UUFDQTs7O01BR0YsR0FBRyxJQUFJLENBQUVGLENBQUFBLFdBQVdFLElBQUksS0FBS2pCLCtEQUFZQSxDQUFDb0IsSUFBSSxJQUFJWixPQUFPUyxJQUFJLEtBQUtqQiwrREFBWUEsQ0FBQ3FCLElBQUksR0FBRztZQUNoRixPQUFPZDtRQUNYO0lBQ0o7SUFDQSx1R0FBdUc7SUFDdkcsTUFBTWUsaUJBQWlCakIsY0FBY2tCLE9BQU8sQ0FBQyxJQUFJeEIsMkVBQW1CQSxDQUFDVyxLQUNqRUgsTUFBTWlCLElBQUksRUFBRWpCLE1BQU1PLE9BQU8sRUFBRVAsTUFBTWtCLE9BQU8sRUFBRWpCLE9BQU9TLElBQUk7SUFDekQsd0VBQXdFO0lBQ3hFVixNQUFNRSxhQUFhLENBQUNVLEdBQUcsQ0FBQ04sa0JBQWtCO1FBQ3RDLHdFQUF3RTtRQUN4RWEsc0JBQXNCbkIsTUFBTWlCLElBQUk7UUFDaENHLE1BQU1MO1FBQ05MLE1BQU1ULE9BQU9TLElBQUk7UUFDakJXLGNBQWNDLEtBQUtDLEdBQUc7UUFDdEJDLGNBQWM7SUFDbEI7SUFDQSxPQUFPeEI7QUFDWCxFQUVBLDRDQUE0QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcHJlZmV0Y2gtcmVkdWNlci5qcz81OGY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZldGNoU2VydmVyUmVzcG9uc2UgfSBmcm9tIFwiLi4vZmV0Y2gtc2VydmVyLXJlc3BvbnNlXCI7XG5pbXBvcnQgeyBQcmVmZXRjaEtpbmQgfSBmcm9tIFwiLi4vcm91dGVyLXJlZHVjZXItdHlwZXNcIjtcbmltcG9ydCB7IHBydW5lUHJlZmV0Y2hDYWNoZSB9IGZyb20gXCIuL3BydW5lLXByZWZldGNoLWNhY2hlXCI7XG5pbXBvcnQgeyBORVhUX1JTQ19VTklPTl9RVUVSWSB9IGZyb20gXCIuLi8uLi9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbmltcG9ydCB7IFByb21pc2VRdWV1ZSB9IGZyb20gXCIuLi8uLi9wcm9taXNlLXF1ZXVlXCI7XG5pbXBvcnQgeyBjcmVhdGVQcmVmZXRjaENhY2hlS2V5IH0gZnJvbSBcIi4vY3JlYXRlLXByZWZldGNoLWNhY2hlLWtleVwiO1xuZXhwb3J0IGNvbnN0IHByZWZldGNoUXVldWUgPSBuZXcgUHJvbWlzZVF1ZXVlKDUpO1xuZXhwb3J0IGZ1bmN0aW9uIHByZWZldGNoUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gICAgLy8gbGV0J3MgcHJ1bmUgdGhlIHByZWZldGNoIGNhY2hlIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyBlbHNlXG4gICAgcHJ1bmVQcmVmZXRjaENhY2hlKHN0YXRlLnByZWZldGNoQ2FjaGUpO1xuICAgIGNvbnN0IHsgdXJsIH0gPSBhY3Rpb247XG4gICAgdXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoTkVYVF9SU0NfVU5JT05fUVVFUlkpO1xuICAgIGNvbnN0IHByZWZldGNoQ2FjaGVLZXkgPSBjcmVhdGVQcmVmZXRjaENhY2hlS2V5KHVybCwgc3RhdGUubmV4dFVybCk7XG4gICAgY29uc3QgY2FjaGVFbnRyeSA9IHN0YXRlLnByZWZldGNoQ2FjaGUuZ2V0KHByZWZldGNoQ2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZUVudHJ5KSB7XG4gICAgICAgIC8qKlxuICAgICAqIElmIHRoZSBjYWNoZSBlbnRyeSBwcmVzZW50IHdhcyBtYXJrZWQgYXMgdGVtcG9yYXJ5LCBpdCBtZWFucyB0aGF0IHdlIHByZWZldGNoZWQgaXQgZnJvbSB0aGUgbmF2aWdhdGUgcmVkdWNlcixcbiAgICAgKiB3aGVyZSB3ZSBkaWRuJ3QgaGF2ZSB0aGUgcHJlZmV0Y2ggaW50ZW50LiBXZSB3YW50IHRvIHVwZGF0ZSBpdCB0byB0aGUgbmV3LCBtb3JlIGFjY3VyYXRlLCBraW5kIGhlcmUuXG4gICAgICovIGlmIChjYWNoZUVudHJ5LmtpbmQgPT09IFByZWZldGNoS2luZC5URU1QT1JBUlkpIHtcbiAgICAgICAgICAgIHN0YXRlLnByZWZldGNoQ2FjaGUuc2V0KHByZWZldGNoQ2FjaGVLZXksIHtcbiAgICAgICAgICAgICAgICAuLi5jYWNoZUVudHJ5LFxuICAgICAgICAgICAgICAgIGtpbmQ6IGFjdGlvbi5raW5kXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgKiBpZiB0aGUgcHJlZmV0Y2ggYWN0aW9uIHdhcyBhIGZ1bGwgcHJlZmV0Y2ggYW5kIHRoYXQgdGhlIGN1cnJlbnQgY2FjaGUgZW50cnkgd2Fzbid0IG9uZSwgd2Ugd2FudCB0byByZS1wcmVmZXRjaCxcbiAgICAgKiBvdGhlcndpc2Ugd2UgY2FuIHJlLXVzZSB0aGUgY3VycmVudCBjYWNoZSBlbnRyeVxuICAgICAqKi8gaWYgKCEoY2FjaGVFbnRyeS5raW5kID09PSBQcmVmZXRjaEtpbmQuQVVUTyAmJiBhY3Rpb24ua2luZCA9PT0gUHJlZmV0Y2hLaW5kLkZVTEwpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gZmV0Y2hTZXJ2ZXJSZXNwb25zZSBpcyBpbnRlbnRpb25hbGx5IG5vdCBhd2FpdGVkIHNvIHRoYXQgaXQgY2FuIGJlIHVud3JhcHBlZCBpbiB0aGUgbmF2aWdhdGUtcmVkdWNlclxuICAgIGNvbnN0IHNlcnZlclJlc3BvbnNlID0gcHJlZmV0Y2hRdWV1ZS5lbnF1ZXVlKCgpPT5mZXRjaFNlcnZlclJlc3BvbnNlKHVybCwgLy8gaW5pdGlhbFRyZWUgaXMgdXNlZCB3aGVuIGhpc3Rvcnkuc3RhdGUudHJlZSBpcyBtaXNzaW5nIGJlY2F1c2UgdGhlIGhpc3Rvcnkgc3RhdGUgaXMgc2V0IGluIGB1c2VFZmZlY3RgIGJlbG93LCBpdCBiZWluZyBtaXNzaW5nIG1lYW5zIHRoaXMgaXMgdGhlIGh5ZHJhdGlvbiBjYXNlLlxuICAgICAgICBzdGF0ZS50cmVlLCBzdGF0ZS5uZXh0VXJsLCBzdGF0ZS5idWlsZElkLCBhY3Rpb24ua2luZCkpO1xuICAgIC8vIENyZWF0ZSBuZXcgdHJlZSBiYXNlZCBvbiB0aGUgZmxpZ2h0U2VnbWVudFBhdGggYW5kIHJvdXRlciBzdGF0ZSBwYXRjaFxuICAgIHN0YXRlLnByZWZldGNoQ2FjaGUuc2V0KHByZWZldGNoQ2FjaGVLZXksIHtcbiAgICAgICAgLy8gQ3JlYXRlIG5ldyB0cmVlIGJhc2VkIG9uIHRoZSBmbGlnaHRTZWdtZW50UGF0aCBhbmQgcm91dGVyIHN0YXRlIHBhdGNoXG4gICAgICAgIHRyZWVBdFRpbWVPZlByZWZldGNoOiBzdGF0ZS50cmVlLFxuICAgICAgICBkYXRhOiBzZXJ2ZXJSZXNwb25zZSxcbiAgICAgICAga2luZDogYWN0aW9uLmtpbmQsXG4gICAgICAgIHByZWZldGNoVGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgbGFzdFVzZWRUaW1lOiBudWxsXG4gICAgfSk7XG4gICAgcmV0dXJuIHN0YXRlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmVmZXRjaC1yZWR1Y2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJmZXRjaFNlcnZlclJlc3BvbnNlIiwiUHJlZmV0Y2hLaW5kIiwicHJ1bmVQcmVmZXRjaENhY2hlIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJQcm9taXNlUXVldWUiLCJjcmVhdGVQcmVmZXRjaENhY2hlS2V5IiwicHJlZmV0Y2hRdWV1ZSIsInByZWZldGNoUmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwicHJlZmV0Y2hDYWNoZSIsInVybCIsInNlYXJjaFBhcmFtcyIsImRlbGV0ZSIsInByZWZldGNoQ2FjaGVLZXkiLCJuZXh0VXJsIiwiY2FjaGVFbnRyeSIsImdldCIsImtpbmQiLCJURU1QT1JBUlkiLCJzZXQiLCJBVVRPIiwiRlVMTCIsInNlcnZlclJlc3BvbnNlIiwiZW5xdWV1ZSIsInRyZWUiLCJidWlsZElkIiwidHJlZUF0VGltZU9mUHJlZmV0Y2giLCJkYXRhIiwicHJlZmV0Y2hUaW1lIiwiRGF0ZSIsIm5vdyIsImxhc3RVc2VkVGltZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prefetch-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prune-prefetch-cache.js":
-/*!**********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prune-prefetch-cache.js ***!
- \**********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ prunePrefetchCache: () => (/* binding */ prunePrefetchCache)\n/* harmony export */ });\n/* harmony import */ var _get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../get-prefetch-cache-entry-status */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/get-prefetch-cache-entry-status.js\");\n\nfunction prunePrefetchCache(prefetchCache) {\n for (const [href, prefetchCacheEntry] of prefetchCache){\n if ((0,_get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_0__.getPrefetchEntryCacheStatus)(prefetchCacheEntry) === _get_prefetch_cache_entry_status__WEBPACK_IMPORTED_MODULE_0__.PrefetchCacheEntryStatus.expired) {\n prefetchCache.delete(href);\n }\n }\n} //# sourceMappingURL=prune-prefetch-cache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcHJ1bmUtcHJlZmV0Y2gtY2FjaGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMkc7QUFDcEcsU0FBU0UsbUJBQW1CQyxhQUFhO0lBQzVDLEtBQUssTUFBTSxDQUFDQyxNQUFNQyxtQkFBbUIsSUFBSUYsY0FBYztRQUNuRCxJQUFJRiw2RkFBMkJBLENBQUNJLHdCQUF3Qkwsc0ZBQXdCQSxDQUFDTSxPQUFPLEVBQUU7WUFDdEZILGNBQWNJLE1BQU0sQ0FBQ0g7UUFDekI7SUFDSjtBQUNKLEVBRUEsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9wcnVuZS1wcmVmZXRjaC1jYWNoZS5qcz8yMjljIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cywgZ2V0UHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzIH0gZnJvbSBcIi4uL2dldC1wcmVmZXRjaC1jYWNoZS1lbnRyeS1zdGF0dXNcIjtcbmV4cG9ydCBmdW5jdGlvbiBwcnVuZVByZWZldGNoQ2FjaGUocHJlZmV0Y2hDYWNoZSkge1xuICAgIGZvciAoY29uc3QgW2hyZWYsIHByZWZldGNoQ2FjaGVFbnRyeV0gb2YgcHJlZmV0Y2hDYWNoZSl7XG4gICAgICAgIGlmIChnZXRQcmVmZXRjaEVudHJ5Q2FjaGVTdGF0dXMocHJlZmV0Y2hDYWNoZUVudHJ5KSA9PT0gUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLmV4cGlyZWQpIHtcbiAgICAgICAgICAgIHByZWZldGNoQ2FjaGUuZGVsZXRlKGhyZWYpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcnVuZS1wcmVmZXRjaC1jYWNoZS5qcy5tYXAiXSwibmFtZXMiOlsiUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzIiwiZ2V0UHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzIiwicHJ1bmVQcmVmZXRjaENhY2hlIiwicHJlZmV0Y2hDYWNoZSIsImhyZWYiLCJwcmVmZXRjaENhY2hlRW50cnkiLCJleHBpcmVkIiwiZGVsZXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prune-prefetch-cache.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/refresh-reducer.js":
-/*!*****************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/refresh-reducer.js ***!
- \*****************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ refreshReducer: () => (/* binding */ refreshReducer)\n/* harmony export */ });\n/* harmony import */ var _fetch_server_response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js\");\n/* harmony import */ var _create_href_from_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n/* harmony import */ var _apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\n/* harmony import */ var _is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\n/* harmony import */ var _navigate_reducer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js\");\n/* harmony import */ var _handle_mutable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js\");\n/* harmony import */ var _fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../fill-lazy-items-till-leaf-with-head */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\n/* harmony import */ var _app_router__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../app-router */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\");\n/* harmony import */ var _handle_segment_mismatch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-segment-mismatch.js\");\n\n\n\n\n\n\n\n\n\nfunction refreshReducer(state, action) {\n const { origin } = action;\n const mutable = {};\n const href = state.canonicalUrl;\n let currentTree = state.tree;\n mutable.preserveCustomHistoryState = false;\n const cache = (0,_app_router__WEBPACK_IMPORTED_MODULE_7__.createEmptyCacheNode)();\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n cache.lazyData = (0,_fetch_server_response__WEBPACK_IMPORTED_MODULE_0__.fetchServerResponse)(new URL(href, origin), [\n currentTree[0],\n currentTree[1],\n currentTree[2],\n \"refetch\"\n ], state.nextUrl, state.buildId);\n return cache.lazyData.then((param)=>{\n let [flightData, canonicalUrlOverride] = param;\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === \"string\") {\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_4__.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n // Remove cache.lazyData as it has been resolved at this point.\n cache.lazyData = null;\n for (const flightDataPath of flightData){\n // FlightDataPath with more than two items means unexpected Flight data was returned\n if (flightDataPath.length !== 3) {\n // TODO-APP: handle this case better\n console.log(\"REFRESH FAILED\");\n return state;\n }\n // Given the path can only have two items the items are only the router state and rsc for the root.\n const [treePatch] = flightDataPath;\n const newTree = (0,_apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_2__.applyRouterStatePatchToFullTree)([\n \"\"\n ], currentTree, treePatch);\n if (newTree === null) {\n return (0,_handle_segment_mismatch__WEBPACK_IMPORTED_MODULE_8__.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0,_is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_3__.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_4__.handleExternalUrl)(state, mutable, href, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = canonicalUrlOverride ? (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_1__.createHrefFromUrl)(canonicalUrlOverride) : undefined;\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n // The one before last item is the router state tree patch\n const [cacheNodeSeedData, head] = flightDataPath.slice(-2);\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[2];\n cache.rsc = rsc;\n cache.prefetchRsc = null;\n (0,_fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_6__.fillLazyItemsTillLeafWithHead)(cache, undefined, treePatch, cacheNodeSeedData, head);\n mutable.cache = cache;\n mutable.prefetchCache = new Map();\n }\n mutable.patchedTree = newTree;\n mutable.canonicalUrl = href;\n currentTree = newTree;\n }\n return (0,_handle_mutable__WEBPACK_IMPORTED_MODULE_5__.handleMutable)(state, mutable);\n }, ()=>state);\n} //# sourceMappingURL=refresh-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcmVmcmVzaC1yZWR1Y2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBK0Q7QUFDSDtBQUMwQjtBQUNKO0FBQzNCO0FBQ0w7QUFDcUM7QUFDL0I7QUFDVztBQUM1RCxTQUFTUyxlQUFlQyxLQUFLLEVBQUVDLE1BQU07SUFDeEMsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR0Q7SUFDbkIsTUFBTUUsVUFBVSxDQUFDO0lBQ2pCLE1BQU1DLE9BQU9KLE1BQU1LLFlBQVk7SUFDL0IsSUFBSUMsY0FBY04sTUFBTU8sSUFBSTtJQUM1QkosUUFBUUssMEJBQTBCLEdBQUc7SUFDckMsTUFBTUMsUUFBUVosaUVBQW9CQTtJQUNsQyx1REFBdUQ7SUFDdkQsd0NBQXdDO0lBQ3hDWSxNQUFNQyxRQUFRLEdBQUdwQiwyRUFBbUJBLENBQUMsSUFBSXFCLElBQUlQLE1BQU1GLFNBQVM7UUFDeERJLFdBQVcsQ0FBQyxFQUFFO1FBQ2RBLFdBQVcsQ0FBQyxFQUFFO1FBQ2RBLFdBQVcsQ0FBQyxFQUFFO1FBQ2Q7S0FDSCxFQUFFTixNQUFNWSxPQUFPLEVBQUVaLE1BQU1hLE9BQU87SUFDL0IsT0FBT0osTUFBTUMsUUFBUSxDQUFDSSxJQUFJLENBQUMsQ0FBQ0M7UUFDeEIsSUFBSSxDQUFDQyxZQUFZQyxxQkFBcUIsR0FBR0Y7UUFDekMsNERBQTREO1FBQzVELElBQUksT0FBT0MsZUFBZSxVQUFVO1lBQ2hDLE9BQU90QixvRUFBaUJBLENBQUNNLE9BQU9HLFNBQVNhLFlBQVloQixNQUFNa0IsT0FBTyxDQUFDQyxXQUFXO1FBQ2xGO1FBQ0EsK0RBQStEO1FBQy9EVixNQUFNQyxRQUFRLEdBQUc7UUFDakIsS0FBSyxNQUFNVSxrQkFBa0JKLFdBQVc7WUFDcEMsb0ZBQW9GO1lBQ3BGLElBQUlJLGVBQWVDLE1BQU0sS0FBSyxHQUFHO2dCQUM3QixvQ0FBb0M7Z0JBQ3BDQyxRQUFRQyxHQUFHLENBQUM7Z0JBQ1osT0FBT3ZCO1lBQ1g7WUFDQSxtR0FBbUc7WUFDbkcsTUFBTSxDQUFDd0IsVUFBVSxHQUFHSjtZQUNwQixNQUFNSyxVQUFVakMsa0dBQStCQSxDQUMvQztnQkFDSTthQUNILEVBQUVjLGFBQWFrQjtZQUNoQixJQUFJQyxZQUFZLE1BQU07Z0JBQ2xCLE9BQU8zQiwrRUFBcUJBLENBQUNFLE9BQU9DLFFBQVF1QjtZQUNoRDtZQUNBLElBQUkvQiw4RkFBMkJBLENBQUNhLGFBQWFtQixVQUFVO2dCQUNuRCxPQUFPL0Isb0VBQWlCQSxDQUFDTSxPQUFPRyxTQUFTQyxNQUFNSixNQUFNa0IsT0FBTyxDQUFDQyxXQUFXO1lBQzVFO1lBQ0EsTUFBTU8sMkJBQTJCVCx1QkFBdUIxQix3RUFBaUJBLENBQUMwQix3QkFBd0JVO1lBQ2xHLElBQUlWLHNCQUFzQjtnQkFDdEJkLFFBQVFFLFlBQVksR0FBR3FCO1lBQzNCO1lBQ0EsMERBQTBEO1lBQzFELE1BQU0sQ0FBQ0UsbUJBQW1CQyxLQUFLLEdBQUdULGVBQWVVLEtBQUssQ0FBQyxDQUFDO1lBQ3hELDhGQUE4RjtZQUM5RixJQUFJRixzQkFBc0IsTUFBTTtnQkFDNUIsTUFBTUcsTUFBTUgsaUJBQWlCLENBQUMsRUFBRTtnQkFDaENuQixNQUFNc0IsR0FBRyxHQUFHQTtnQkFDWnRCLE1BQU11QixXQUFXLEdBQUc7Z0JBQ3BCcEMsbUdBQTZCQSxDQUFDYSxPQUM5QmtCLFdBQVdILFdBQVdJLG1CQUFtQkM7Z0JBQ3pDMUIsUUFBUU0sS0FBSyxHQUFHQTtnQkFDaEJOLFFBQVE4QixhQUFhLEdBQUcsSUFBSUM7WUFDaEM7WUFDQS9CLFFBQVFnQyxXQUFXLEdBQUdWO1lBQ3RCdEIsUUFBUUUsWUFBWSxHQUFHRDtZQUN2QkUsY0FBY21CO1FBQ2xCO1FBQ0EsT0FBTzlCLDhEQUFhQSxDQUFDSyxPQUFPRztJQUNoQyxHQUFHLElBQUlIO0FBQ1gsRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3JlZnJlc2gtcmVkdWNlci5qcz84YTY2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZldGNoU2VydmVyUmVzcG9uc2UgfSBmcm9tIFwiLi4vZmV0Y2gtc2VydmVyLXJlc3BvbnNlXCI7XG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gXCIuLi9jcmVhdGUtaHJlZi1mcm9tLXVybFwiO1xuaW1wb3J0IHsgYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9GdWxsVHJlZSB9IGZyb20gXCIuLi9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZVwiO1xuaW1wb3J0IHsgaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IH0gZnJvbSBcIi4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0XCI7XG5pbXBvcnQgeyBoYW5kbGVFeHRlcm5hbFVybCB9IGZyb20gXCIuL25hdmlnYXRlLXJlZHVjZXJcIjtcbmltcG9ydCB7IGhhbmRsZU11dGFibGUgfSBmcm9tIFwiLi4vaGFuZGxlLW11dGFibGVcIjtcbmltcG9ydCB7IGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIH0gZnJvbSBcIi4uL2ZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkXCI7XG5pbXBvcnQgeyBjcmVhdGVFbXB0eUNhY2hlTm9kZSB9IGZyb20gXCIuLi8uLi9hcHAtcm91dGVyXCI7XG5pbXBvcnQgeyBoYW5kbGVTZWdtZW50TWlzbWF0Y2ggfSBmcm9tIFwiLi4vaGFuZGxlLXNlZ21lbnQtbWlzbWF0Y2hcIjtcbmV4cG9ydCBmdW5jdGlvbiByZWZyZXNoUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gICAgY29uc3QgeyBvcmlnaW4gfSA9IGFjdGlvbjtcbiAgICBjb25zdCBtdXRhYmxlID0ge307XG4gICAgY29uc3QgaHJlZiA9IHN0YXRlLmNhbm9uaWNhbFVybDtcbiAgICBsZXQgY3VycmVudFRyZWUgPSBzdGF0ZS50cmVlO1xuICAgIG11dGFibGUucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUgPSBmYWxzZTtcbiAgICBjb25zdCBjYWNoZSA9IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlKCk7XG4gICAgLy8gVE9ETy1BUFA6IHZlcmlmeSB0aGF0IGBocmVmYCBpcyBub3QgYW4gZXh0ZXJuYWwgdXJsLlxuICAgIC8vIEZldGNoIGRhdGEgZnJvbSB0aGUgcm9vdCBvZiB0aGUgdHJlZS5cbiAgICBjYWNoZS5sYXp5RGF0YSA9IGZldGNoU2VydmVyUmVzcG9uc2UobmV3IFVSTChocmVmLCBvcmlnaW4pLCBbXG4gICAgICAgIGN1cnJlbnRUcmVlWzBdLFxuICAgICAgICBjdXJyZW50VHJlZVsxXSxcbiAgICAgICAgY3VycmVudFRyZWVbMl0sXG4gICAgICAgIFwicmVmZXRjaFwiXG4gICAgXSwgc3RhdGUubmV4dFVybCwgc3RhdGUuYnVpbGRJZCk7XG4gICAgcmV0dXJuIGNhY2hlLmxhenlEYXRhLnRoZW4oKHBhcmFtKT0+e1xuICAgICAgICBsZXQgW2ZsaWdodERhdGEsIGNhbm9uaWNhbFVybE92ZXJyaWRlXSA9IHBhcmFtO1xuICAgICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5hdmlnYXRpbmcgdG8gcGFnZSBpbiBgcGFnZXNgIGZyb20gYGFwcGBcbiAgICAgICAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIGZsaWdodERhdGEsIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2gpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlbW92ZSBjYWNoZS5sYXp5RGF0YSBhcyBpdCBoYXMgYmVlbiByZXNvbHZlZCBhdCB0aGlzIHBvaW50LlxuICAgICAgICBjYWNoZS5sYXp5RGF0YSA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZmxpZ2h0RGF0YVBhdGggb2YgZmxpZ2h0RGF0YSl7XG4gICAgICAgICAgICAvLyBGbGlnaHREYXRhUGF0aCB3aXRoIG1vcmUgdGhhbiB0d28gaXRlbXMgbWVhbnMgdW5leHBlY3RlZCBGbGlnaHQgZGF0YSB3YXMgcmV0dXJuZWRcbiAgICAgICAgICAgIGlmIChmbGlnaHREYXRhUGF0aC5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPLUFQUDogaGFuZGxlIHRoaXMgY2FzZSBiZXR0ZXJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlJFRlJFU0ggRkFJTEVEXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEdpdmVuIHRoZSBwYXRoIGNhbiBvbmx5IGhhdmUgdHdvIGl0ZW1zIHRoZSBpdGVtcyBhcmUgb25seSB0aGUgcm91dGVyIHN0YXRlIGFuZCByc2MgZm9yIHRoZSByb290LlxuICAgICAgICAgICAgY29uc3QgW3RyZWVQYXRjaF0gPSBmbGlnaHREYXRhUGF0aDtcbiAgICAgICAgICAgIGNvbnN0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb0Z1bGxUcmVlKC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICBdLCBjdXJyZW50VHJlZSwgdHJlZVBhdGNoKTtcbiAgICAgICAgICAgIGlmIChuZXdUcmVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVNlZ21lbnRNaXNtYXRjaChzdGF0ZSwgYWN0aW9uLCB0cmVlUGF0Y2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dChjdXJyZW50VHJlZSwgbmV3VHJlZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIGhyZWYsIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmID0gY2Fub25pY2FsVXJsT3ZlcnJpZGUgPyBjcmVhdGVIcmVmRnJvbVVybChjYW5vbmljYWxVcmxPdmVycmlkZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoY2Fub25pY2FsVXJsT3ZlcnJpZGUpIHtcbiAgICAgICAgICAgICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IGNhbm9uaWNhbFVybE92ZXJyaWRlSHJlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoZSBvbmUgYmVmb3JlIGxhc3QgaXRlbSBpcyB0aGUgcm91dGVyIHN0YXRlIHRyZWUgcGF0Y2hcbiAgICAgICAgICAgIGNvbnN0IFtjYWNoZU5vZGVTZWVkRGF0YSwgaGVhZF0gPSBmbGlnaHREYXRhUGF0aC5zbGljZSgtMik7XG4gICAgICAgICAgICAvLyBIYW5kbGVzIGNhc2Ugd2hlcmUgcHJlZmV0Y2ggb25seSByZXR1cm5zIHRoZSByb3V0ZXIgdHJlZSBwYXRjaCB3aXRob3V0IHJlbmRlcmVkIGNvbXBvbmVudHMuXG4gICAgICAgICAgICBpZiAoY2FjaGVOb2RlU2VlZERhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByc2MgPSBjYWNoZU5vZGVTZWVkRGF0YVsyXTtcbiAgICAgICAgICAgICAgICBjYWNoZS5yc2MgPSByc2M7XG4gICAgICAgICAgICAgICAgY2FjaGUucHJlZmV0Y2hSc2MgPSBudWxsO1xuICAgICAgICAgICAgICAgIGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkKGNhY2hlLCAvLyBFeGlzdGluZyBjYWNoZSBpcyBub3QgcGFzc2VkIGluIGFzIGByb3V0ZXIucmVmcmVzaCgpYCBoYXMgdG8gaW52YWxpZGF0ZSB0aGUgZW50aXJlIGNhY2hlLlxuICAgICAgICAgICAgICAgIHVuZGVmaW5lZCwgdHJlZVBhdGNoLCBjYWNoZU5vZGVTZWVkRGF0YSwgaGVhZCk7XG4gICAgICAgICAgICAgICAgbXV0YWJsZS5jYWNoZSA9IGNhY2hlO1xuICAgICAgICAgICAgICAgIG11dGFibGUucHJlZmV0Y2hDYWNoZSA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG11dGFibGUucGF0Y2hlZFRyZWUgPSBuZXdUcmVlO1xuICAgICAgICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSBocmVmO1xuICAgICAgICAgICAgY3VycmVudFRyZWUgPSBuZXdUcmVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKTtcbiAgICB9LCAoKT0+c3RhdGUpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWZyZXNoLXJlZHVjZXIuanMubWFwIl0sIm5hbWVzIjpbImZldGNoU2VydmVyUmVzcG9uc2UiLCJjcmVhdGVIcmVmRnJvbVVybCIsImFwcGx5Um91dGVyU3RhdGVQYXRjaFRvRnVsbFRyZWUiLCJpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQiLCJoYW5kbGVFeHRlcm5hbFVybCIsImhhbmRsZU11dGFibGUiLCJmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCIsImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwiaGFuZGxlU2VnbWVudE1pc21hdGNoIiwicmVmcmVzaFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsIm9yaWdpbiIsIm11dGFibGUiLCJocmVmIiwiY2Fub25pY2FsVXJsIiwiY3VycmVudFRyZWUiLCJ0cmVlIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJjYWNoZSIsImxhenlEYXRhIiwiVVJMIiwibmV4dFVybCIsImJ1aWxkSWQiLCJ0aGVuIiwicGFyYW0iLCJmbGlnaHREYXRhIiwiY2Fub25pY2FsVXJsT3ZlcnJpZGUiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJmbGlnaHREYXRhUGF0aCIsImxlbmd0aCIsImNvbnNvbGUiLCJsb2ciLCJ0cmVlUGF0Y2giLCJuZXdUcmVlIiwiY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmIiwidW5kZWZpbmVkIiwiY2FjaGVOb2RlU2VlZERhdGEiLCJoZWFkIiwic2xpY2UiLCJyc2MiLCJwcmVmZXRjaFJzYyIsInByZWZldGNoQ2FjaGUiLCJNYXAiLCJwYXRjaGVkVHJlZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/refresh-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/restore-reducer.js":
-/*!*****************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/restore-reducer.js ***!
- \*****************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ restoreReducer: () => (/* binding */ restoreReducer)\n/* harmony export */ });\n/* harmony import */ var _create_href_from_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n/* harmony import */ var _compute_changed_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../compute-changed-path */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/compute-changed-path.js\");\n/* harmony import */ var _ppr_navigations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ppr-navigations */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/ppr-navigations.js\");\n\n\n\nfunction restoreReducer(state, action) {\n const { url, tree } = action;\n const href = (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_0__.createHrefFromUrl)(url);\n const oldCache = state.cache;\n const newCache = false ? // prevents an unnecessary flash back to PPR state during a\n // back/forward navigation.\n 0 : oldCache;\n var _extractPathFromFlightRouterState;\n return {\n buildId: state.buildId,\n // Set canonical url\n canonicalUrl: href,\n pushRef: {\n pendingPush: false,\n mpaNavigation: false,\n // Ensures that the custom history state that was set is preserved when applying this update.\n preserveCustomHistoryState: true\n },\n focusAndScrollRef: state.focusAndScrollRef,\n cache: newCache,\n prefetchCache: state.prefetchCache,\n // Restore provided tree\n tree: tree,\n nextUrl: (_extractPathFromFlightRouterState = (0,_compute_changed_path__WEBPACK_IMPORTED_MODULE_1__.extractPathFromFlightRouterState)(tree)) != null ? _extractPathFromFlightRouterState : url.pathname\n };\n} //# sourceMappingURL=restore-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcmVzdG9yZS1yZWR1Y2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBNEQ7QUFDZTtBQUNEO0FBQ25FLFNBQVNHLGVBQWVDLEtBQUssRUFBRUMsTUFBTTtJQUN4QyxNQUFNLEVBQUVDLEdBQUcsRUFBRUMsSUFBSSxFQUFFLEdBQUdGO0lBQ3RCLE1BQU1HLE9BQU9SLHdFQUFpQkEsQ0FBQ007SUFDL0IsTUFBTUcsV0FBV0wsTUFBTU0sS0FBSztJQUM1QixNQUFNQyxXQUFXQyxNQUFzQixHQUN2QywyREFBMkQ7SUFDM0QsMkJBQTJCO0lBQzNCVixDQUFvREssR0FBR0U7SUFDdkQsSUFBSU07SUFDSixPQUFPO1FBQ0hDLFNBQVNaLE1BQU1ZLE9BQU87UUFDdEIsb0JBQW9CO1FBQ3BCQyxjQUFjVDtRQUNkVSxTQUFTO1lBQ0xDLGFBQWE7WUFDYkMsZUFBZTtZQUNmLDZGQUE2RjtZQUM3RkMsNEJBQTRCO1FBQ2hDO1FBQ0FDLG1CQUFtQmxCLE1BQU1rQixpQkFBaUI7UUFDMUNaLE9BQU9DO1FBQ1BZLGVBQWVuQixNQUFNbUIsYUFBYTtRQUNsQyx3QkFBd0I7UUFDeEJoQixNQUFNQTtRQUNOaUIsU0FBUyxDQUFDVCxvQ0FBb0NkLHVGQUFnQ0EsQ0FBQ00sS0FBSSxLQUFNLE9BQU9RLG9DQUFvQ1QsSUFBSW1CLFFBQVE7SUFDcEo7QUFDSixFQUVBLDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcmVzdG9yZS1yZWR1Y2VyLmpzPzg3YmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tIFwiLi4vY3JlYXRlLWhyZWYtZnJvbS11cmxcIjtcbmltcG9ydCB7IGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlIH0gZnJvbSBcIi4uL2NvbXB1dGUtY2hhbmdlZC1wYXRoXCI7XG5pbXBvcnQgeyB1cGRhdGVDYWNoZU5vZGVPblBvcHN0YXRlUmVzdG9yYXRpb24gfSBmcm9tIFwiLi4vcHByLW5hdmlnYXRpb25zXCI7XG5leHBvcnQgZnVuY3Rpb24gcmVzdG9yZVJlZHVjZXIoc3RhdGUsIGFjdGlvbikge1xuICAgIGNvbnN0IHsgdXJsLCB0cmVlIH0gPSBhY3Rpb247XG4gICAgY29uc3QgaHJlZiA9IGNyZWF0ZUhyZWZGcm9tVXJsKHVybCk7XG4gICAgY29uc3Qgb2xkQ2FjaGUgPSBzdGF0ZS5jYWNoZTtcbiAgICBjb25zdCBuZXdDYWNoZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9QUFIgPyAvLyBkYXRhIGZvciBhbnkgc2VnbWVudCB3aG9zZSBkeW5hbWljIGRhdGEgd2FzIGFscmVhZHkgcmVjZWl2ZWQuIFRoaXNcbiAgICAvLyBwcmV2ZW50cyBhbiB1bm5lY2Vzc2FyeSBmbGFzaCBiYWNrIHRvIFBQUiBzdGF0ZSBkdXJpbmcgYVxuICAgIC8vIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uLlxuICAgIHVwZGF0ZUNhY2hlTm9kZU9uUG9wc3RhdGVSZXN0b3JhdGlvbihvbGRDYWNoZSwgdHJlZSkgOiBvbGRDYWNoZTtcbiAgICB2YXIgX2V4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJ1aWxkSWQ6IHN0YXRlLmJ1aWxkSWQsXG4gICAgICAgIC8vIFNldCBjYW5vbmljYWwgdXJsXG4gICAgICAgIGNhbm9uaWNhbFVybDogaHJlZixcbiAgICAgICAgcHVzaFJlZjoge1xuICAgICAgICAgICAgcGVuZGluZ1B1c2g6IGZhbHNlLFxuICAgICAgICAgICAgbXBhTmF2aWdhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGN1c3RvbSBoaXN0b3J5IHN0YXRlIHRoYXQgd2FzIHNldCBpcyBwcmVzZXJ2ZWQgd2hlbiBhcHBseWluZyB0aGlzIHVwZGF0ZS5cbiAgICAgICAgICAgIHByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmOiBzdGF0ZS5mb2N1c0FuZFNjcm9sbFJlZixcbiAgICAgICAgY2FjaGU6IG5ld0NhY2hlLFxuICAgICAgICBwcmVmZXRjaENhY2hlOiBzdGF0ZS5wcmVmZXRjaENhY2hlLFxuICAgICAgICAvLyBSZXN0b3JlIHByb3ZpZGVkIHRyZWVcbiAgICAgICAgdHJlZTogdHJlZSxcbiAgICAgICAgbmV4dFVybDogKF9leHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSA9IGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKHRyZWUpKSAhPSBudWxsID8gX2V4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlIDogdXJsLnBhdGhuYW1lXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzdG9yZS1yZWR1Y2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVIcmVmRnJvbVVybCIsImV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlIiwidXBkYXRlQ2FjaGVOb2RlT25Qb3BzdGF0ZVJlc3RvcmF0aW9uIiwicmVzdG9yZVJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInVybCIsInRyZWUiLCJocmVmIiwib2xkQ2FjaGUiLCJjYWNoZSIsIm5ld0NhY2hlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9QUFIiLCJfZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUiLCJidWlsZElkIiwiY2Fub25pY2FsVXJsIiwicHVzaFJlZiIsInBlbmRpbmdQdXNoIiwibXBhTmF2aWdhdGlvbiIsInByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlIiwiZm9jdXNBbmRTY3JvbGxSZWYiLCJwcmVmZXRjaENhY2hlIiwibmV4dFVybCIsInBhdGhuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/restore-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/server-action-reducer.js":
-/*!***********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/server-action-reducer.js ***!
- \***********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ serverActionReducer: () => (/* binding */ serverActionReducer)\n/* harmony export */ });\n/* harmony import */ var _app_call_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../app-call-server */ \"(ssr)/../../node_modules/next/dist/esm/client/app-call-server.js\");\n/* harmony import */ var _app_router_headers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _add_base_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../add-base-path */ \"(ssr)/../../node_modules/next/dist/esm/client/add-base-path.js\");\n/* harmony import */ var _create_href_from_url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n/* harmony import */ var _navigate_reducer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js\");\n/* harmony import */ var _apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\n/* harmony import */ var _is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\n/* harmony import */ var _handle_mutable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js\");\n/* harmony import */ var _fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../fill-lazy-items-till-leaf-with-head */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\n/* harmony import */ var _app_router__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../app-router */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\");\n/* harmony import */ var _compute_changed_path__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../compute-changed-path */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/compute-changed-path.js\");\n/* harmony import */ var _handle_segment_mismatch__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-segment-mismatch.js\");\n\n\n// // eslint-disable-next-line import/no-extraneous-dependencies\n// import { createFromFetch } from 'react-server-dom-webpack/client'\n// // eslint-disable-next-line import/no-extraneous-dependencies\n// import { encodeReply } from 'react-server-dom-webpack/client'\nconst { createFromFetch, encodeReply } = true ? __webpack_require__(/*! react-server-dom-webpack/client.edge */ \"(ssr)/../../node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js\") : 0;\n\n\n\n\n\n\n\n\n\n\nasync function fetchServerAction(state, param) {\n let { actionId, actionArgs } = param;\n const body = await encodeReply(actionArgs);\n const newNextUrl = (0,_compute_changed_path__WEBPACK_IMPORTED_MODULE_10__.extractPathFromFlightRouterState)(state.tree);\n // only pass along the `nextUrl` param (used for interception routes) if it exists and\n // if it's different from the current `nextUrl`. This indicates the route has already been intercepted,\n // and so the action should be as well. Otherwise the server action might be intercepted\n // with the wrong action id (ie, one that corresponds with the intercepted route)\n const includeNextUrl = state.nextUrl && state.nextUrl !== newNextUrl;\n const res = await fetch(\"\", {\n method: \"POST\",\n headers: {\n Accept: _app_router_headers__WEBPACK_IMPORTED_MODULE_1__.RSC_CONTENT_TYPE_HEADER,\n [_app_router_headers__WEBPACK_IMPORTED_MODULE_1__.ACTION]: actionId,\n [_app_router_headers__WEBPACK_IMPORTED_MODULE_1__.NEXT_ROUTER_STATE_TREE]: encodeURIComponent(JSON.stringify(state.tree)),\n ... false ? 0 : {},\n ...includeNextUrl ? {\n [_app_router_headers__WEBPACK_IMPORTED_MODULE_1__.NEXT_URL]: state.nextUrl\n } : {}\n },\n body\n });\n const location = res.headers.get(\"x-action-redirect\");\n let revalidatedParts;\n try {\n const revalidatedHeader = JSON.parse(res.headers.get(\"x-action-revalidated\") || \"[[],0,0]\");\n revalidatedParts = {\n paths: revalidatedHeader[0] || [],\n tag: !!revalidatedHeader[1],\n cookie: revalidatedHeader[2]\n };\n } catch (e) {\n revalidatedParts = {\n paths: [],\n tag: false,\n cookie: false\n };\n }\n const redirectLocation = location ? new URL((0,_add_base_path__WEBPACK_IMPORTED_MODULE_2__.addBasePath)(location), new URL(state.canonicalUrl, window.location.href)) : undefined;\n let isFlightResponse = res.headers.get(\"content-type\") === _app_router_headers__WEBPACK_IMPORTED_MODULE_1__.RSC_CONTENT_TYPE_HEADER;\n if (isFlightResponse) {\n const response = await createFromFetch(Promise.resolve(res), {\n callServer: _app_call_server__WEBPACK_IMPORTED_MODULE_0__.callServer\n });\n if (location) {\n // if it was a redirection, then result is just a regular RSC payload\n const [, actionFlightData] = response != null ? response : [];\n return {\n actionFlightData: actionFlightData,\n redirectLocation,\n revalidatedParts\n };\n }\n // otherwise it's a tuple of [actionResult, actionFlightData]\n const [actionResult, [, actionFlightData]] = response != null ? response : [];\n return {\n actionResult,\n actionFlightData,\n redirectLocation,\n revalidatedParts\n };\n }\n return {\n redirectLocation,\n revalidatedParts\n };\n}\n/*\n * This reducer is responsible for calling the server action and processing any side-effects from the server action.\n * It does not mutate the state by itself but rather delegates to other reducers to do the actual mutation.\n */ function serverActionReducer(state, action) {\n const { resolve, reject } = action;\n const mutable = {};\n const href = state.canonicalUrl;\n let currentTree = state.tree;\n mutable.preserveCustomHistoryState = false;\n mutable.inFlightServerAction = fetchServerAction(state, action);\n // suspends until the server action is resolved.\n return mutable.inFlightServerAction.then((param)=>{\n let { actionResult, actionFlightData: flightData, redirectLocation } = param;\n // Make sure the redirection is a push instead of a replace.\n // Issue: https://github.com/vercel/next.js/issues/53911\n if (redirectLocation) {\n state.pushRef.pendingPush = true;\n mutable.pendingPush = true;\n }\n if (!flightData) {\n if (!mutable.actionResultResolved) {\n resolve(actionResult);\n mutable.actionResultResolved = true;\n }\n // If there is a redirect but no flight data we need to do a mpaNavigation.\n if (redirectLocation) {\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_4__.handleExternalUrl)(state, mutable, redirectLocation.href, state.pushRef.pendingPush);\n }\n return state;\n }\n if (typeof flightData === \"string\") {\n // Handle case when navigating to page in `pages` from `app`\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_4__.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n // Remove cache.data as it has been resolved at this point.\n mutable.inFlightServerAction = null;\n for (const flightDataPath of flightData){\n // FlightDataPath with more than two items means unexpected Flight data was returned\n if (flightDataPath.length !== 3) {\n // TODO-APP: handle this case better\n console.log(\"SERVER ACTION APPLY FAILED\");\n return state;\n }\n // Given the path can only have two items the items are only the router state and rsc for the root.\n const [treePatch] = flightDataPath;\n const newTree = (0,_apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_5__.applyRouterStatePatchToFullTree)([\n \"\"\n ], currentTree, treePatch);\n if (newTree === null) {\n return (0,_handle_segment_mismatch__WEBPACK_IMPORTED_MODULE_11__.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0,_is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_6__.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_4__.handleExternalUrl)(state, mutable, href, state.pushRef.pendingPush);\n }\n // The one before last item is the router state tree patch\n const [cacheNodeSeedData, head] = flightDataPath.slice(-2);\n const rsc = cacheNodeSeedData !== null ? cacheNodeSeedData[2] : null;\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (rsc !== null) {\n const cache = (0,_app_router__WEBPACK_IMPORTED_MODULE_9__.createEmptyCacheNode)();\n cache.rsc = rsc;\n cache.prefetchRsc = null;\n (0,_fill_lazy_items_till_leaf_with_head__WEBPACK_IMPORTED_MODULE_8__.fillLazyItemsTillLeafWithHead)(cache, undefined, treePatch, cacheNodeSeedData, head);\n mutable.cache = cache;\n mutable.prefetchCache = new Map();\n }\n mutable.patchedTree = newTree;\n mutable.canonicalUrl = href;\n currentTree = newTree;\n }\n if (redirectLocation) {\n const newHref = (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_3__.createHrefFromUrl)(redirectLocation, false);\n mutable.canonicalUrl = newHref;\n }\n if (!mutable.actionResultResolved) {\n resolve(actionResult);\n mutable.actionResultResolved = true;\n }\n return (0,_handle_mutable__WEBPACK_IMPORTED_MODULE_7__.handleMutable)(state, mutable);\n }, (e)=>{\n if (e.status === \"rejected\") {\n if (!mutable.actionResultResolved) {\n reject(e.reason);\n mutable.actionResultResolved = true;\n }\n // When the server action is rejected we don't update the state and instead call the reject handler of the promise.\n return state;\n }\n throw e;\n });\n} //# sourceMappingURL=server-action-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvc2VydmVyLWFjdGlvbi1yZWR1Y2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc0Q7QUFDdUQ7QUFDN0csZ0VBQWdFO0FBQ2hFLG9FQUFvRTtBQUNwRSxnRUFBZ0U7QUFDaEUsZ0VBQWdFO0FBQ2hFLE1BQU0sRUFBRUssZUFBZSxFQUFFQyxXQUFXLEVBQUUsR0FBRyxLQUEwQixHQUFHSSxtQkFBT0EsQ0FBQyxpSUFBc0MsSUFBSUEsQ0FBMEM7QUFDN0c7QUFDTztBQUNMO0FBQytCO0FBQ0o7QUFDaEM7QUFDcUM7QUFDL0I7QUFDbUI7QUFDUjtBQUNuRSxlQUFlVyxrQkFBa0JDLEtBQUssRUFBRUMsS0FBSztJQUN6QyxJQUFJLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFLEdBQUdGO0lBQy9CLE1BQU1HLE9BQU8sTUFBTXBCLFlBQVltQjtJQUMvQixNQUFNRSxhQUFhUix3RkFBZ0NBLENBQUNHLE1BQU1NLElBQUk7SUFDOUQsc0ZBQXNGO0lBQ3RGLHVHQUF1RztJQUN2Ryx3RkFBd0Y7SUFDeEYsaUZBQWlGO0lBQ2pGLE1BQU1DLGlCQUFpQlAsTUFBTVEsT0FBTyxJQUFJUixNQUFNUSxPQUFPLEtBQUtIO0lBQzFELE1BQU1JLE1BQU0sTUFBTUMsTUFBTSxJQUFJO1FBQ3hCQyxRQUFRO1FBQ1JDLFNBQVM7WUFDTEMsUUFBUS9CLHdFQUF1QkE7WUFDL0IsQ0FBQ0gsdURBQU1BLENBQUMsRUFBRXVCO1lBQ1YsQ0FBQ3RCLHVFQUFzQkEsQ0FBQyxFQUFFa0MsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNoQixNQUFNTSxJQUFJO1lBQ3RFLEdBQUdyQixNQUEwRSxHQUFHLENBRS9FLEdBQUcsQ0FBQyxDQUFDO1lBQ04sR0FBR3NCLGlCQUFpQjtnQkFDaEIsQ0FBQzFCLHlEQUFRQSxDQUFDLEVBQUVtQixNQUFN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QU11QyxVQUFVN0Usd0VBQWlCQSxDQUFDc0Msa0JBQWtCO1lBQ3BEZSxRQUFRYixZQUFZLEdBQUdxQztRQUMzQjtRQUNBLElBQUksQ0FBQ3hCLFFBQVFRLG9CQUFvQixFQUFFO1lBQy9CZCxRQUFRRTtZQUNSSSxRQUFRUSxvQkFBb0IsR0FBRztRQUNuQztRQUNBLE9BQU96RCw4REFBYUEsQ0FBQ00sT0FBTzJDO0lBQ2hDLEdBQUcsQ0FBQ2hCO1FBQ0EsSUFBSUEsRUFBRXlDLE1BQU0sS0FBSyxZQUFZO1lBQ3pCLElBQUksQ0FBQ3pCLFFBQVFRLG9CQUFvQixFQUFFO2dCQUMvQlQsT0FBT2YsRUFBRTBDLE1BQU07Z0JBQ2YxQixRQUFRUSxvQkFBb0IsR0FBRztZQUNuQztZQUNBLG1IQUFtSDtZQUNuSCxPQUFPbkQ7UUFDWDtRQUNBLE1BQU0yQjtJQUNWO0FBQ0osRUFFQSxpREFBaUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3NlcnZlci1hY3Rpb24tcmVkdWNlci5qcz8zNjU4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbGxTZXJ2ZXIgfSBmcm9tIFwiLi4vLi4vLi4vYXBwLWNhbGwtc2VydmVyXCI7XG5pbXBvcnQgeyBBQ1RJT04sIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUUsIE5FWFRfVVJMLCBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiB9IGZyb20gXCIuLi8uLi9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbi8vIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbi8vIGltcG9ydCB7IGNyZWF0ZUZyb21GZXRjaCB9IGZyb20gJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnXG4vLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG4vLyBpbXBvcnQgeyBlbmNvZGVSZXBseSB9IGZyb20gJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnXG5jb25zdCB7IGNyZWF0ZUZyb21GZXRjaCwgZW5jb2RlUmVwbHkgfSA9ICEhcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID8gcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQuZWRnZVwiKSA6IHJlcXVpcmUoXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50XCIpO1xuaW1wb3J0IHsgYWRkQmFzZVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vYWRkLWJhc2UtcGF0aFwiO1xuaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tIFwiLi4vY3JlYXRlLWhyZWYtZnJvbS11cmxcIjtcbmltcG9ydCB7IGhhbmRsZUV4dGVybmFsVXJsIH0gZnJvbSBcIi4vbmF2aWdhdGUtcmVkdWNlclwiO1xuaW1wb3J0IHsgYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9GdWxsVHJlZSB9IGZyb20gXCIuLi9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZVwiO1xuaW1wb3J0IHsgaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IH0gZnJvbSBcIi4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0XCI7XG5pbXBvcnQgeyBoYW5kbGVNdXRhYmxlIH0gZnJvbSBcIi4uL2hhbmRsZS1tdXRhYmxlXCI7XG5pbXBvcnQgeyBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCB9IGZyb20gXCIuLi9maWxsLWxhenktaXRlbXMtdGlsbC1sZWFmLXdpdGgtaGVhZFwiO1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlDYWNoZU5vZGUgfSBmcm9tIFwiLi4vLi4vYXBwLXJvdXRlclwiO1xuaW1wb3J0IHsgZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUgfSBmcm9tIFwiLi4vY29tcHV0ZS1jaGFuZ2VkLXBhdGhcIjtcbmltcG9ydCB7IGhhbmRsZVNlZ21lbnRNaXNtYXRjaCB9IGZyb20gXCIuLi9oYW5kbGUtc2VnbWVudC1taXNtYXRjaFwiO1xuYXN5bmMgZnVuY3Rpb24gZmV0Y2hTZXJ2ZXJBY3Rpb24oc3RhdGUsIHBhcmFtKSB7XG4gICAgbGV0IHsgYWN0aW9uSWQsIGFjdGlvbkFyZ3MgfSA9IHBhcmFtO1xuICAgIGNvbnN0IGJvZHkgPSBhd2FpdCBlbmNvZGVSZXBseShhY3Rpb25BcmdzKTtcbiAgICBjb25zdCBuZXdOZXh0VXJsID0gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUoc3RhdGUudHJlZSk7XG4gICAgLy8gb25seSBwYXNzIGFsb25nIHRoZSBgbmV4dFVybGAgcGFyYW0gKHVzZWQgZm9yIGludGVyY2VwdGlvbiByb3V0ZXMpIGlmIGl0IGV4aXN0cyBhbmRcbiAgICAvLyBpZiBpdCdzIGRpZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50IGBuZXh0VXJsYC4gVGhpcyBpbmRpY2F0ZXMgdGhlIHJvdXRlIGhhcyBhbHJlYWR5IGJlZW4gaW50ZXJjZXB0ZWQsXG4gICAgLy8gYW5kIHNvIHRoZSBhY3Rpb24gc2hvdWxkIGJlIGFzIHdlbGwuIE90aGVyd2lzZSB0aGUgc2VydmVyIGFjdGlvbiBtaWdodCBiZSBpbnRlcmNlcHRlZFxuICAgIC8vIHdpdGggdGhlIHdyb25nIGFjdGlvbiBpZCAoaWUsIG9uZSB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIGludGVyY2VwdGVkIHJvdXRlKVxuICAgIGNvbnN0IGluY2x1ZGVOZXh0VXJsID0gc3RhdGUubmV4dFVybCAmJiBzdGF0ZS5uZXh0VXJsICE9PSBuZXdOZXh0VXJsO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKFwiXCIsIHtcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgQWNjZXB0OiBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUixcbiAgICAgICAgICAgIFtBQ1RJT05dOiBhY3Rpb25JZCxcbiAgICAgICAgICAgIFtORVhUX1JPVVRFUl9TVEFURV9UUkVFXTogZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHN0YXRlLnRyZWUpKSxcbiAgICAgICAgICAgIC4uLnByb2Nlc3MuZW52Ll9fTkVYVF9BQ1RJT05TX0RFUExPWU1FTlRfSUQgJiYgcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEID8ge1xuICAgICAgICAgICAgICAgIFwieC1kZXBsb3ltZW50LWlkXCI6IHByb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRFxuICAgICAgICAgICAgfSA6IHt9LFxuICAgICAgICAgICAgLi4uaW5jbHVkZU5leHRVcmwgPyB7XG4gICAgICAgICAgICAgICAgW05FWFRfVVJMXTogc3RhdGUubmV4dFVybFxuICAgICAgICAgICAgfSA6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIGJvZHlcbiAgICB9KTtcbiAgICBjb25zdCBsb2NhdGlvbiA9IHJlcy5oZWFkZXJzLmdldChcIngtYWN0aW9uLXJlZGlyZWN0XCIpO1xuICAgIGxldCByZXZhbGlkYXRlZFBhcnRzO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJldmFsaWRhdGVkSGVhZGVyID0gSlNPTi5wYXJzZShyZXMuaGVhZGVycy5nZXQoXCJ4LWFjdGlvbi1yZXZhbGlkYXRlZFwiKSB8fCBcIltbXSwwLDBdXCIpO1xuICAgICAgICByZXZhbGlkYXRlZFBhcnRzID0ge1xuICAgICAgICAgICAgcGF0aHM6IHJldmFsaWRhdGVkSGVhZGVyWzBdIHx8IFtdLFxuICAgICAgICAgICAgdGFnOiAhIXJldmFsaWRhdGVkSGVhZGVyWzFdLFxuICAgICAgICAgICAgY29va2llOiByZXZhbGlkYXRlZEhlYWRlclsyXVxuICAgICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV2YWxpZGF0ZWRQYXJ0cyA9IHtcbiAgICAgICAgICAgIHBhdGhzOiBbXSxcbiAgICAgICAgICAgIHRhZzogZmFsc2UsXG4gICAgICAgICAgICBjb29raWU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHJlZGlyZWN0TG9jYXRpb24gPSBsb2NhdGlvbiA/IG5ldyBVUkwoYWRkQmFzZVBhdGgobG9jYXRpb24pLCAvLyBFbnN1cmUgcmVsYXRpdmUgcmVkaXJlY3RzIGluIFNlcnZlciBBY3Rpb25zIHdvcmssIGUuZy4gcmVkaXJlY3QoJy4vc29tZXdoZXJlLWVsc2UnKVxuICAgIG5ldyBVUkwoc3RhdGUuY2Fub25pY2FsVXJsLCB3aW5kb3cubG9jYXRpb24uaHJlZikpIDogdW5kZWZpbmVkO1xuICAgIGxldCBpc0ZsaWdodFJlc3BvbnNlID0gcmVzLmhlYWRlcnMuZ2V0KFwiY29udGVudC10eXBlXCIpID09PSBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUjtcbiAgICBpZiAoaXNGbGlnaHRSZXNwb25zZSkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNyZWF0ZUZyb21GZXRjaChQcm9taXNlLnJlc29sdmUocmVzKSwge1xuICAgICAgICAgICAgY2FsbFNlcnZlclxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICAvLyBpZiBpdCB3YXMgYSByZWRpcmVjdGlvbiwgdGhlbiByZXN1bHQgaXMganVzdCBhIHJlZ3VsYXIgUlNDIHBheWxvYWRcbiAgICAgICAgICAgIGNvbnN0IFssIGFjdGlvbkZsaWdodERhdGFdID0gcmVzcG9uc2UgIT0gbnVsbCA/IHJlc3BvbnNlIDogW107XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGFjdGlvbkZsaWdodERhdGE6IGFjdGlvbkZsaWdodERhdGEsXG4gICAgICAgICAgICAgICAgcmVkaXJlY3RMb2NhdGlvbixcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlZFBhcnRzXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIG90aGVyd2lzZSBpdCdzIGEgdHVwbGUgb2YgW2FjdGlvblJlc3VsdCwgYWN0aW9uRmxpZ2h0RGF0YV1cbiAgICAgICAgY29uc3QgW2FjdGlvblJlc3VsdCwgWywgYWN0aW9uRmxpZ2h0RGF0YV1dID0gcmVzcG9uc2UgIT0gbnVsbCA/IHJlc3BvbnNlIDogW107XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY3Rpb25SZXN1bHQsXG4gICAgICAgICAgICBhY3Rpb25GbGlnaHREYXRhLFxuICAgICAgICAgICAgcmVkaXJlY3RMb2NhdGlvbixcbiAgICAgICAgICAgIHJldmFsaWRhdGVkUGFydHNcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVkaXJlY3RMb2NhdGlvbixcbiAgICAgICAgcmV2YWxpZGF0ZWRQYXJ0c1xuICAgIH07XG59XG4vKlxuICogVGhpcyByZWR1Y2VyIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIHRoZSBzZXJ2ZXIgYWN0aW9uIGFuZCBwcm9jZXNzaW5nIGFueSBzaWRlLWVmZmVjdHMgZnJvbSB0aGUgc2VydmVyIGFjdGlvbi5cbiAqIEl0IGRvZXMgbm90IG11dGF0ZSB0aGUgc3RhdGUgYnkgaXRzZWxmIGJ1dCByYXRoZXIgZGVsZWdhdGVzIHRvIG90aGVyIHJlZHVjZXJzIHRvIGRvIHRoZSBhY3R1YWwgbXV0YXRpb24uXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHNlcnZlckFjdGlvblJlZHVjZXIoc3RhdGUsIGFjdGlvbikge1xuICAgIGNvbnN0IHsgcmVzb2x2ZSwgcmVqZWN0IH0gPSBhY3Rpb247XG4gICAgY29uc3QgbXV0YWJsZSA9IHt9O1xuICAgIGNvbnN0IGhyZWYgPSBzdGF0ZS5jYW5vbmljYWxVcmw7XG4gICAgbGV0IGN1cnJlbnRUcmVlID0gc3RhdGUudHJlZTtcbiAgICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlID0gZmFsc2U7XG4gICAgbXV0YWJsZS5pbkZsaWdodFNlcnZlckFjdGlvbiA9IGZldGNoU2VydmVyQWN0aW9uKHN0YXRlLCBhY3Rpb24pO1xuICAgIC8vIHN1c3BlbmRzIHVudGlsIHRoZSBzZXJ2ZXIgYWN0aW9uIGlzIHJlc29sdmVkLlxuICAgIHJldHVybiBtdXRhYmxlLmluRmxpZ2h0U2VydmVyQWN0aW9uLnRoZW4oKHBhcmFtKT0+e1xuICAgICAgICBsZXQgeyBhY3Rpb25SZXN1bHQsIGFjdGlvbkZsaWdodERhdGE6IGZsaWdodERhdGEsIHJlZGlyZWN0TG9jYXRpb24gfSA9IHBhcmFtO1xuICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHJlZGlyZWN0aW9uIGlzIGEgcHVzaCBpbnN0ZWFkIG9mIGEgcmVwbGFjZS5cbiAgICAgICAgLy8gSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNTM5MTFcbiAgICAgICAgaWYgKHJlZGlyZWN0TG9jYXRpb24pIHtcbiAgICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2ggPSB0cnVlO1xuICAgICAgICAgICAgbXV0YWJsZS5wZW5kaW5nUHVzaCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmbGlnaHREYXRhKSB7XG4gICAgICAgICAgICBpZiAoIW11dGFibGUuYWN0aW9uUmVzdWx0UmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGFjdGlvblJlc3VsdCk7XG4gICAgICAgICAgICAgICAgbXV0YWJsZS5hY3Rpb25SZXN1bHRSZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHJlZGlyZWN0IGJ1dCBubyBmbGlnaHQgZGF0YSB3ZSBuZWVkIHRvIGRvIGEgbXBhTmF2aWdhdGlvbi5cbiAgICAgICAgICAgIGlmIChyZWRpcmVjdExvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCByZWRpcmVjdExvY2F0aW9uLmhyZWYsIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZmxpZ2h0RGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBuYXZpZ2F0aW5nIHRvIHBhZ2UgaW4gYHBhZ2VzYCBmcm9tIGBhcHBgXG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIGZsaWdodERhdGEsIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2gpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlbW92ZSBjYWNoZS5kYXRhIGFzIGl0IGhhcyBiZWVuIHJlc29sdmVkIGF0IHRoaXMgcG9pbnQuXG4gICAgICAgIG11dGFibGUuaW5GbGlnaHRTZXJ2ZXJBY3Rpb24gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGZsaWdodERhdGFQYXRoIG9mIGZsaWdodERhdGEpe1xuICAgICAgICAgICAgLy8gRmxpZ2h0RGF0YVBhdGggd2l0aCBtb3JlIHRoYW4gdHdvIGl0ZW1zIG1lYW5zIHVuZXhwZWN0ZWQgRmxpZ2h0IGRhdGEgd2FzIHJldHVybmVkXG4gICAgICAgICAgICBpZiAoZmxpZ2h0RGF0YVBhdGgubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETy1BUFA6IGhhbmRsZSB0aGlzIGNhc2UgYmV0dGVyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJTRVJWRVIgQUNUSU9OIEFQUExZIEZBSUxFRFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBHaXZlbiB0aGUgcGF0aCBjYW4gb25seSBoYXZlIHR3byBpdGVtcyB0aGUgaXRlbXMgYXJlIG9ubHkgdGhlIHJvdXRlciBzdGF0ZSBhbmQgcnNjIGZvciB0aGUgcm9vdC5cbiAgICAgICAgICAgIGNvbnN0IFt0cmVlUGF0Y2hdID0gZmxpZ2h0RGF0YVBhdGg7XG4gICAgICAgICAgICBjb25zdCBuZXdUcmVlID0gYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9GdWxsVHJlZSgvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgXSwgY3VycmVudFRyZWUsIHRyZWVQYXRjaCk7XG4gICAgICAgICAgICBpZiAobmV3VHJlZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVTZWdtZW50TWlzbWF0Y2goc3RhdGUsIGFjdGlvbiwgdHJlZVBhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQoY3VycmVudFRyZWUsIG5ld1RyZWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCBocmVmLCBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoZSBvbmUgYmVmb3JlIGxhc3QgaXRlbSBpcyB0aGUgcm91dGVyIHN0YXRlIHRyZWUgcGF0Y2hcbiAgICAgICAgICAgIGNvbnN0IFtjYWNoZU5vZGVTZWVkRGF0YSwgaGVhZF0gPSBmbGlnaHREYXRhUGF0aC5zbGljZSgtMik7XG4gICAgICAgICAgICBjb25zdCByc2MgPSBjYWNoZU5vZGVTZWVkRGF0YSAhPT0gbnVsbCA/IGNhY2hlTm9kZVNlZWREYXRhWzJdIDogbnVsbDtcbiAgICAgICAgICAgIC8vIEhhbmRsZXMgY2FzZSB3aGVyZSBwcmVmZXRjaCBvbmx5IHJldHVybnMgdGhlIHJvdXRlciB0cmVlIHBhdGNoIHdpdGhvdXQgcmVuZGVyZWQgY29tcG9uZW50cy5cbiAgICAgICAgICAgIGlmIChyc2MgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWNoZSA9IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlKCk7XG4gICAgICAgICAgICAgICAgY2FjaGUucnNjID0gcnNjO1xuICAgICAgICAgICAgICAgIGNhY2hlLnByZWZldGNoUnNjID0gbnVsbDtcbiAgICAgICAgICAgICAgICBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZChjYWNoZSwgLy8gRXhpc3RpbmcgY2FjaGUgaXMgbm90IHBhc3NlZCBpbiBhcyBgcm91dGVyLnJlZnJlc2goKWAgaGFzIHRvIGludmFsaWRhdGUgdGhlIGVudGlyZSBjYWNoZS5cbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsIHRyZWVQYXRjaCwgY2FjaGVOb2RlU2VlZERhdGEsIGhlYWQpO1xuICAgICAgICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZTtcbiAgICAgICAgICAgICAgICBtdXRhYmxlLnByZWZldGNoQ2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtdXRhYmxlLnBhdGNoZWRUcmVlID0gbmV3VHJlZTtcbiAgICAgICAgICAgIG11dGFibGUuY2Fub25pY2FsVXJsID0gaHJlZjtcbiAgICAgICAgICAgIGN1cnJlbnRUcmVlID0gbmV3VHJlZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVkaXJlY3RMb2NhdGlvbikge1xuICAgICAgICAgICAgY29uc3QgbmV3SHJlZiA9IGNyZWF0ZUhyZWZGcm9tVXJsKHJlZGlyZWN0TG9jYXRpb24sIGZhbHNlKTtcbiAgICAgICAgICAgIG11dGFibGUuY2Fub25pY2FsVXJsID0gbmV3SHJlZjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW11dGFibGUuYWN0aW9uUmVzdWx0UmVzb2x2ZWQpIHtcbiAgICAgICAgICAgIHJlc29sdmUoYWN0aW9uUmVzdWx0KTtcbiAgICAgICAgICAgIG11dGFibGUuYWN0aW9uUmVzdWx0UmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKTtcbiAgICB9LCAoZSk9PntcbiAgICAgICAgaWYgKGUuc3RhdHVzID09PSBcInJlamVjdGVkXCIpIHtcbiAgICAgICAgICAgIGlmICghbXV0YWJsZS5hY3Rpb25SZXN1bHRSZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgIHJlamVjdChlLnJlYXNvbik7XG4gICAgICAgICAgICAgICAgbXV0YWJsZS5hY3Rpb25SZXN1bHRSZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXaGVuIHRoZSBzZXJ2ZXIgYWN0aW9uIGlzIHJlamVjdGVkIHdlIGRvbid0IHVwZGF0ZSB0aGUgc3RhdGUgYW5kIGluc3RlYWQgY2FsbCB0aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhlIHByb21pc2UuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VydmVyLWFjdGlvbi1yZWR1Y2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJjYWxsU2VydmVyIiwiQUNUSU9OIiwiTkVYVF9ST1VURVJfU1RBVEVfVFJFRSIsIk5FWFRfVVJMIiwiUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIiLCJjcmVhdGVGcm9tRmV0Y2giLCJlbmNvZGVSZXBseSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJyZXF1aXJlIiwiYWRkQmFzZVBhdGgiLCJjcmVhdGVIcmVmRnJvbVVybCIsImhhbmRsZUV4dGVybmFsVXJsIiwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9GdWxsVHJlZSIsImlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCIsImhhbmRsZU11dGFibGUiLCJmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCIsImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwiZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUiLCJoYW5kbGVTZWdtZW50TWlzbWF0Y2giLCJmZXRjaFNlcnZlckFjdGlvbiIsInN0YXRlIiwicGFyYW0iLCJhY3Rpb25JZCIsImFjdGlvbkFyZ3MiLCJib2R5IiwibmV3TmV4dFVybCIsInRyZWUiLCJpbmNsdWRlTmV4dFVybCIsIm5leHRVcmwiLCJyZXMiLCJmZXRjaCIsIm1ldGhvZCIsImhlYWRlcnMiLCJBY2NlcHQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJKU09OIiwic3RyaW5naWZ5IiwiX19ORVhUX0FDVElPTlNfREVQTE9ZTUVOVF9JRCIsIk5FWFRfREVQTE9ZTUVOVF9JRCIsImxvY2F0aW9uIiwiZ2V0IiwicmV2YWxpZGF0ZWRQYXJ0cyIsInJldmFsaWRhdGVkSGVhZGVyIiwicGFyc2UiLCJwYXRocyIsInRhZyIsImNvb2tpZSIsImUiLCJyZWRpcmVjdExvY2F0aW9uIiwiVVJMIiwiY2Fub25pY2FsVXJsIiwid2luZG93IiwiaHJlZiIsInVuZGVmaW5lZCIsImlzRmxpZ2h0UmVzcG9uc2UiLCJyZXNwb25zZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWN0aW9uRmxpZ2h0RGF0YSIsImFjdGlvblJlc3VsdCIsInNlcnZlckFjdGlvblJlZHVjZXIiLCJhY3Rpb24iLCJyZWplY3QiLCJtdXRhYmxlIiwiY3VycmVudFRyZWUiLCJwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSIsImluRmxpZ2h0U2VydmVyQWN0aW9uIiwidGhlbiIsImZsaWdodERhdGEiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJhY3Rpb25SZXN1bHRSZXNvbHZlZCIsImZsaWdodERhdGFQYXRoIiwibGVuZ3RoIiwiY29uc29sZSIsImxvZyIsInRyZWVQYXRjaCIsIm5ld1RyZWUiLCJjYWNoZU5vZGVTZWVkRGF0YSIsImhlYWQiLCJzbGljZSIsInJzYyIsImNhY2hlIiwicHJlZmV0Y2hSc2MiLCJwcmVmZXRjaENhY2hlIiwiTWFwIiwicGF0Y2hlZFRyZWUiLCJuZXdIcmVmIiwic3RhdHVzIiwicmVhc29uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/server-action-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/server-patch-reducer.js":
-/*!**********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/server-patch-reducer.js ***!
- \**********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ serverPatchReducer: () => (/* binding */ serverPatchReducer)\n/* harmony export */ });\n/* harmony import */ var _create_href_from_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js\");\n/* harmony import */ var _apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\n/* harmony import */ var _is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\n/* harmony import */ var _navigate_reducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js\");\n/* harmony import */ var _apply_flight_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/apply-flight-data.js\");\n/* harmony import */ var _handle_mutable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js\");\n/* harmony import */ var _app_router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../app-router */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js\");\n/* harmony import */ var _handle_segment_mismatch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/handle-segment-mismatch.js\");\n\n\n\n\n\n\n\n\nfunction serverPatchReducer(state, action) {\n const { flightData, overrideCanonicalUrl } = action;\n const mutable = {};\n mutable.preserveCustomHistoryState = false;\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === \"string\") {\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_3__.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n let currentTree = state.tree;\n let currentCache = state.cache;\n for (const flightDataPath of flightData){\n // Slices off the last segment (which is at -4) as it doesn't exist in the tree yet\n const flightSegmentPath = flightDataPath.slice(0, -4);\n const [treePatch] = flightDataPath.slice(-3, -2);\n const newTree = (0,_apply_router_state_patch_to_tree__WEBPACK_IMPORTED_MODULE_1__.applyRouterStatePatchToTreeSkipDefault)([\n \"\",\n ...flightSegmentPath\n ], currentTree, treePatch);\n if (newTree === null) {\n return (0,_handle_segment_mismatch__WEBPACK_IMPORTED_MODULE_7__.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0,_is_navigating_to_new_root_layout__WEBPACK_IMPORTED_MODULE_2__.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0,_navigate_reducer__WEBPACK_IMPORTED_MODULE_3__.handleExternalUrl)(state, mutable, state.canonicalUrl, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = overrideCanonicalUrl ? (0,_create_href_from_url__WEBPACK_IMPORTED_MODULE_0__.createHrefFromUrl)(overrideCanonicalUrl) : undefined;\n if (canonicalUrlOverrideHref) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n const cache = (0,_app_router__WEBPACK_IMPORTED_MODULE_6__.createEmptyCacheNode)();\n (0,_apply_flight_data__WEBPACK_IMPORTED_MODULE_4__.applyFlightData)(currentCache, cache, flightDataPath);\n mutable.patchedTree = newTree;\n mutable.cache = cache;\n currentCache = cache;\n currentTree = newTree;\n }\n return (0,_handle_mutable__WEBPACK_IMPORTED_MODULE_5__.handleMutable)(state, mutable);\n} //# sourceMappingURL=server-patch-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvc2VydmVyLXBhdGNoLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQTREO0FBQ2lDO0FBQ1g7QUFDM0I7QUFDQTtBQUNMO0FBQ007QUFDVztBQUM1RCxTQUFTUSxtQkFBbUJDLEtBQUssRUFBRUMsTUFBTTtJQUM1QyxNQUFNLEVBQUVDLFVBQVUsRUFBRUMsb0JBQW9CLEVBQUUsR0FBR0Y7SUFDN0MsTUFBTUcsVUFBVSxDQUFDO0lBQ2pCQSxRQUFRQywwQkFBMEIsR0FBRztJQUNyQyw0REFBNEQ7SUFDNUQsSUFBSSxPQUFPSCxlQUFlLFVBQVU7UUFDaEMsT0FBT1Isb0VBQWlCQSxDQUFDTSxPQUFPSSxTQUFTRixZQUFZRixNQUFNTSxPQUFPLENBQUNDLFdBQVc7SUFDbEY7SUFDQSxJQUFJQyxjQUFjUixNQUFNUyxJQUFJO0lBQzVCLElBQUlDLGVBQWVWLE1BQU1XLEtBQUs7SUFDOUIsS0FBSyxNQUFNQyxrQkFBa0JWLFdBQVc7UUFDcEMsbUZBQW1GO1FBQ25GLE1BQU1XLG9CQUFvQkQsZUFBZUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNuRCxNQUFNLENBQUNDLFVBQVUsR0FBR0gsZUFBZUUsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzlDLE1BQU1FLFVBQVV4Qix5R0FBc0NBLENBQ3REO1lBQ0k7ZUFDR3FCO1NBQ04sRUFBRUwsYUFBYU87UUFDaEIsSUFBSUMsWUFBWSxNQUFNO1lBQ2xCLE9BQU9sQiwrRUFBcUJBLENBQUNFLE9BQU9DLFFBQVFjO1FBQ2hEO1FBQ0EsSUFBSXRCLDhGQUEyQkEsQ0FBQ2UsYUFBYVEsVUFBVTtZQUNuRCxPQUFPdEIsb0VBQWlCQSxDQUFDTSxPQUFPSSxTQUFTSixNQUFNaUIsWUFBWSxFQUFFakIsTUFBTU0sT0FBTyxDQUFDQyxXQUFXO1FBQzFGO1FBQ0EsTUFBTVcsMkJBQTJCZix1QkFBdUJaLHdFQUFpQkEsQ0FBQ1ksd0JBQXdCZ0I7UUFDbEcsSUFBSUQsMEJBQTBCO1lBQzFCZCxRQUFRYSxZQUFZLEdBQUdDO1FBQzNCO1FBQ0EsTUFBTVAsUUFBUWQsaUVBQW9CQTtRQUNsQ0YsbUVBQWVBLENBQUNlLGNBQWNDLE9BQU9DO1FBQ3JDUixRQUFRZ0IsV0FBVyxHQUFHSjtRQUN0QlosUUFBUU8sS0FBSyxHQUFHQTtRQUNoQkQsZUFBZUM7UUFDZkgsY0FBY1E7SUFDbEI7SUFDQSxPQUFPcEIsOERBQWFBLENBQUNJLE9BQU9JO0FBQ2hDLEVBRUEsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9zZXJ2ZXItcGF0Y2gtcmVkdWNlci5qcz80ZjFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhyZWZGcm9tVXJsIH0gZnJvbSBcIi4uL2NyZWF0ZS1ocmVmLWZyb20tdXJsXCI7XG5pbXBvcnQgeyBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWVTa2lwRGVmYXVsdCB9IGZyb20gXCIuLi9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZVwiO1xuaW1wb3J0IHsgaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IH0gZnJvbSBcIi4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0XCI7XG5pbXBvcnQgeyBoYW5kbGVFeHRlcm5hbFVybCB9IGZyb20gXCIuL25hdmlnYXRlLXJlZHVjZXJcIjtcbmltcG9ydCB7IGFwcGx5RmxpZ2h0RGF0YSB9IGZyb20gXCIuLi9hcHBseS1mbGlnaHQtZGF0YVwiO1xuaW1wb3J0IHsgaGFuZGxlTXV0YWJsZSB9IGZyb20gXCIuLi9oYW5kbGUtbXV0YWJsZVwiO1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlDYWNoZU5vZGUgfSBmcm9tIFwiLi4vLi4vYXBwLXJvdXRlclwiO1xuaW1wb3J0IHsgaGFuZGxlU2VnbWVudE1pc21hdGNoIH0gZnJvbSBcIi4uL2hhbmRsZS1zZWdtZW50LW1pc21hdGNoXCI7XG5leHBvcnQgZnVuY3Rpb24gc2VydmVyUGF0Y2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pIHtcbiAgICBjb25zdCB7IGZsaWdodERhdGEsIG92ZXJyaWRlQ2Fub25pY2FsVXJsIH0gPSBhY3Rpb247XG4gICAgY29uc3QgbXV0YWJsZSA9IHt9O1xuICAgIG11dGFibGUucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUgPSBmYWxzZTtcbiAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5hdmlnYXRpbmcgdG8gcGFnZSBpbiBgcGFnZXNgIGZyb20gYGFwcGBcbiAgICBpZiAodHlwZW9mIGZsaWdodERhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCBmbGlnaHREYXRhLCBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoKTtcbiAgICB9XG4gICAgbGV0IGN1cnJlbnRUcmVlID0gc3RhdGUudHJlZTtcbiAgICBsZXQgY3VycmVudENhY2hlID0gc3RhdGUuY2FjaGU7XG4gICAgZm9yIChjb25zdCBmbGlnaHREYXRhUGF0aCBvZiBmbGlnaHREYXRhKXtcbiAgICAgICAgLy8gU2xpY2VzIG9mZiB0aGUgbGFzdCBzZWdtZW50ICh3aGljaCBpcyBhdCAtNCkgYXMgaXQgZG9lc24ndCBleGlzdCBpbiB0aGUgdHJlZSB5ZXRcbiAgICAgICAgY29uc3QgZmxpZ2h0U2VnbWVudFBhdGggPSBmbGlnaHREYXRhUGF0aC5zbGljZSgwLCAtNCk7XG4gICAgICAgIGNvbnN0IFt0cmVlUGF0Y2hdID0gZmxpZ2h0RGF0YVBhdGguc2xpY2UoLTMsIC0yKTtcbiAgICAgICAgY29uc3QgbmV3VHJlZSA9IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZVNraXBEZWZhdWx0KC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgW1xuICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgIC4uLmZsaWdodFNlZ21lbnRQYXRoXG4gICAgICAgIF0sIGN1cnJlbnRUcmVlLCB0cmVlUGF0Y2gpO1xuICAgICAgICBpZiAobmV3VHJlZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVNlZ21lbnRNaXNtYXRjaChzdGF0ZSwgYWN0aW9uLCB0cmVlUGF0Y2gpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQoY3VycmVudFRyZWUsIG5ld1RyZWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIHN0YXRlLmNhbm9uaWNhbFVybCwgc3RhdGUucHVzaFJlZi5wZW5kaW5nUHVzaCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmID0gb3ZlcnJpZGVDYW5vbmljYWxVcmwgPyBjcmVhdGVIcmVmRnJvbVVybChvdmVycmlkZUNhbm9uaWNhbFVybCkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYpIHtcbiAgICAgICAgICAgIG11dGFibGUuY2Fub25pY2FsVXJsID0gY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhY2hlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKTtcbiAgICAgICAgYXBwbHlGbGlnaHREYXRhKGN1cnJlbnRDYWNoZSwgY2FjaGUsIGZsaWdodERhdGFQYXRoKTtcbiAgICAgICAgbXV0YWJsZS5wYXRjaGVkVHJlZSA9IG5ld1RyZWU7XG4gICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZTtcbiAgICAgICAgY3VycmVudENhY2hlID0gY2FjaGU7XG4gICAgICAgIGN1cnJlbnRUcmVlID0gbmV3VHJlZTtcbiAgICB9XG4gICAgcmV0dXJuIGhhbmRsZU11dGFibGUoc3RhdGUsIG11dGFibGUpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItcGF0Y2gtcmVkdWNlci5qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlSHJlZkZyb21VcmwiLCJhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWVTa2lwRGVmYXVsdCIsImlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCIsImhhbmRsZUV4dGVybmFsVXJsIiwiYXBwbHlGbGlnaHREYXRhIiwiaGFuZGxlTXV0YWJsZSIsImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwiaGFuZGxlU2VnbWVudE1pc21hdGNoIiwic2VydmVyUGF0Y2hSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJmbGlnaHREYXRhIiwib3ZlcnJpZGVDYW5vbmljYWxVcmwiLCJtdXRhYmxlIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJjdXJyZW50VHJlZSIsInRyZWUiLCJjdXJyZW50Q2FjaGUiLCJjYWNoZSIsImZsaWdodERhdGFQYXRoIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJzbGljZSIsInRyZWVQYXRjaCIsIm5ld1RyZWUiLCJjYW5vbmljYWxVcmwiLCJjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYiLCJ1bmRlZmluZWQiLCJwYXRjaGVkVHJlZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/server-patch-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js":
-/*!*************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js ***!
- \*************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACTION_FAST_REFRESH: () => (/* binding */ ACTION_FAST_REFRESH),\n/* harmony export */ ACTION_NAVIGATE: () => (/* binding */ ACTION_NAVIGATE),\n/* harmony export */ ACTION_PREFETCH: () => (/* binding */ ACTION_PREFETCH),\n/* harmony export */ ACTION_REFRESH: () => (/* binding */ ACTION_REFRESH),\n/* harmony export */ ACTION_RESTORE: () => (/* binding */ ACTION_RESTORE),\n/* harmony export */ ACTION_SERVER_ACTION: () => (/* binding */ ACTION_SERVER_ACTION),\n/* harmony export */ ACTION_SERVER_PATCH: () => (/* binding */ ACTION_SERVER_PATCH),\n/* harmony export */ PrefetchKind: () => (/* binding */ PrefetchKind),\n/* harmony export */ isThenable: () => (/* binding */ isThenable)\n/* harmony export */ });\nconst ACTION_REFRESH = \"refresh\";\nconst ACTION_NAVIGATE = \"navigate\";\nconst ACTION_RESTORE = \"restore\";\nconst ACTION_SERVER_PATCH = \"server-patch\";\nconst ACTION_PREFETCH = \"prefetch\";\nconst ACTION_FAST_REFRESH = \"fast-refresh\";\nconst ACTION_SERVER_ACTION = \"server-action\";\nvar PrefetchKind;\n(function(PrefetchKind) {\n PrefetchKind[\"AUTO\"] = \"auto\";\n PrefetchKind[\"FULL\"] = \"full\";\n PrefetchKind[\"TEMPORARY\"] = \"temporary\";\n})(PrefetchKind || (PrefetchKind = {}));\nfunction isThenable(value) {\n // TODO: We don't gain anything from this abstraction. It's unsound, and only\n // makes sense in the specific places where we use it. So it's better to keep\n // the type coercion inline, instead of leaking this to other places in\n // the codebase.\n return value && (typeof value === \"object\" || typeof value === \"function\") && typeof value.then === \"function\";\n} //# sourceMappingURL=router-reducer-types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQU8sTUFBTUEsaUJBQWlCLFVBQVU7QUFDakMsTUFBTUMsa0JBQWtCLFdBQVc7QUFDbkMsTUFBTUMsaUJBQWlCLFVBQVU7QUFDakMsTUFBTUMsc0JBQXNCLGVBQWU7QUFDM0MsTUFBTUMsa0JBQWtCLFdBQVc7QUFDbkMsTUFBTUMsc0JBQXNCLGVBQWU7QUFDM0MsTUFBTUMsdUJBQXVCLGdCQUFnQjtBQUM3QyxJQUFJQyxhQUFhO0FBQ3ZCLFVBQVNBLFlBQVk7SUFDbEJBLFlBQVksQ0FBQyxPQUFPLEdBQUc7SUFDdkJBLFlBQVksQ0FBQyxPQUFPLEdBQUc7SUFDdkJBLFlBQVksQ0FBQyxZQUFZLEdBQUc7QUFDaEMsR0FBR0EsZ0JBQWlCQSxDQUFBQSxlQUFlLENBQUM7QUFDN0IsU0FBU0MsV0FBV0MsS0FBSztJQUM1Qiw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLHVFQUF1RTtJQUN2RSxnQkFBZ0I7SUFDaEIsT0FBT0EsU0FBVSxRQUFPQSxVQUFVLFlBQVksT0FBT0EsVUFBVSxVQUFTLEtBQU0sT0FBT0EsTUFBTUMsSUFBSSxLQUFLO0FBQ3hHLEVBRUEsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yb3V0ZXItcmVkdWNlci10eXBlcy5qcz9iN2I3Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBQ1RJT05fUkVGUkVTSCA9IFwicmVmcmVzaFwiO1xuZXhwb3J0IGNvbnN0IEFDVElPTl9OQVZJR0FURSA9IFwibmF2aWdhdGVcIjtcbmV4cG9ydCBjb25zdCBBQ1RJT05fUkVTVE9SRSA9IFwicmVzdG9yZVwiO1xuZXhwb3J0IGNvbnN0IEFDVElPTl9TRVJWRVJfUEFUQ0ggPSBcInNlcnZlci1wYXRjaFwiO1xuZXhwb3J0IGNvbnN0IEFDVElPTl9QUkVGRVRDSCA9IFwicHJlZmV0Y2hcIjtcbmV4cG9ydCBjb25zdCBBQ1RJT05fRkFTVF9SRUZSRVNIID0gXCJmYXN0LXJlZnJlc2hcIjtcbmV4cG9ydCBjb25zdCBBQ1RJT05fU0VSVkVSX0FDVElPTiA9IFwic2VydmVyLWFjdGlvblwiO1xuZXhwb3J0IHZhciBQcmVmZXRjaEtpbmQ7XG4oZnVuY3Rpb24oUHJlZmV0Y2hLaW5kKSB7XG4gICAgUHJlZmV0Y2hLaW5kW1wiQVVUT1wiXSA9IFwiYXV0b1wiO1xuICAgIFByZWZldGNoS2luZFtcIkZVTExcIl0gPSBcImZ1bGxcIjtcbiAgICBQcmVmZXRjaEtpbmRbXCJURU1QT1JBUllcIl0gPSBcInRlbXBvcmFyeVwiO1xufSkoUHJlZmV0Y2hLaW5kIHx8IChQcmVmZXRjaEtpbmQgPSB7fSkpO1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGUodmFsdWUpIHtcbiAgICAvLyBUT0RPOiBXZSBkb24ndCBnYWluIGFueXRoaW5nIGZyb20gdGhpcyBhYnN0cmFjdGlvbi4gSXQncyB1bnNvdW5kLCBhbmQgb25seVxuICAgIC8vIG1ha2VzIHNlbnNlIGluIHRoZSBzcGVjaWZpYyBwbGFjZXMgd2hlcmUgd2UgdXNlIGl0LiBTbyBpdCdzIGJldHRlciB0byBrZWVwXG4gICAgLy8gdGhlIHR5cGUgY29lcmNpb24gaW5saW5lLCBpbnN0ZWFkIG9mIGxlYWtpbmcgdGhpcyB0byBvdGhlciBwbGFjZXMgaW5cbiAgICAvLyB0aGUgY29kZWJhc2UuXG4gICAgcmV0dXJuIHZhbHVlICYmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIpICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSBcImZ1bmN0aW9uXCI7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci1yZWR1Y2VyLXR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6WyJBQ1RJT05fUkVGUkVTSCIsIkFDVElPTl9OQVZJR0FURSIsIkFDVElPTl9SRVNUT1JFIiwiQUNUSU9OX1NFUlZFUl9QQVRDSCIsIkFDVElPTl9QUkVGRVRDSCIsIkFDVElPTl9GQVNUX1JFRlJFU0giLCJBQ1RJT05fU0VSVkVSX0FDVElPTiIsIlByZWZldGNoS2luZCIsImlzVGhlbmFibGUiLCJ2YWx1ZSIsInRoZW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer.js":
-/*!*******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer.js ***!
- \*******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ reducer: () => (/* binding */ reducer)\n/* harmony export */ });\n/* harmony import */ var _router_reducer_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js\");\n/* harmony import */ var _reducers_navigate_reducer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reducers/navigate-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js\");\n/* harmony import */ var _reducers_server_patch_reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reducers/server-patch-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/server-patch-reducer.js\");\n/* harmony import */ var _reducers_restore_reducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reducers/restore-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/restore-reducer.js\");\n/* harmony import */ var _reducers_refresh_reducer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reducers/refresh-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/refresh-reducer.js\");\n/* harmony import */ var _reducers_prefetch_reducer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reducers/prefetch-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/prefetch-reducer.js\");\n/* harmony import */ var _reducers_fast_refresh_reducer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./reducers/fast-refresh-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/fast-refresh-reducer.js\");\n/* harmony import */ var _reducers_server_action_reducer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./reducers/server-action-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/server-action-reducer.js\");\n\n\n\n\n\n\n\n\n/**\n * Reducer that handles the app-router state updates.\n */ function clientReducer(state, action) {\n switch(action.type){\n case _router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_NAVIGATE:\n {\n return (0,_reducers_navigate_reducer__WEBPACK_IMPORTED_MODULE_1__.navigateReducer)(state, action);\n }\n case _router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_SERVER_PATCH:\n {\n return (0,_reducers_server_patch_reducer__WEBPACK_IMPORTED_MODULE_2__.serverPatchReducer)(state, action);\n }\n case _router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_RESTORE:\n {\n return (0,_reducers_restore_reducer__WEBPACK_IMPORTED_MODULE_3__.restoreReducer)(state, action);\n }\n case _router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_REFRESH:\n {\n return (0,_reducers_refresh_reducer__WEBPACK_IMPORTED_MODULE_4__.refreshReducer)(state, action);\n }\n case _router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_FAST_REFRESH:\n {\n return (0,_reducers_fast_refresh_reducer__WEBPACK_IMPORTED_MODULE_6__.fastRefreshReducer)(state, action);\n }\n case _router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_PREFETCH:\n {\n return (0,_reducers_prefetch_reducer__WEBPACK_IMPORTED_MODULE_5__.prefetchReducer)(state, action);\n }\n case _router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_SERVER_ACTION:\n {\n return (0,_reducers_server_action_reducer__WEBPACK_IMPORTED_MODULE_7__.serverActionReducer)(state, action);\n }\n // This case should never be hit as dispatch is strongly typed.\n default:\n throw new Error(\"Unknown action\");\n }\n}\nfunction serverReducer(state, _action) {\n return state;\n}\n// we don't run the client reducer on the server, so we use a noop function for better tree shaking\nconst reducer = true ? serverReducer : 0; //# sourceMappingURL=router-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQTBLO0FBQzVHO0FBQ087QUFDVDtBQUNBO0FBQ0U7QUFDTztBQUNFO0FBQ3ZFOztDQUVDLEdBQUcsU0FBU2MsY0FBY0MsS0FBSyxFQUFFQyxNQUFNO0lBQ3BDLE9BQU9BLE9BQU9DLElBQUk7UUFDZCxLQUFLakIsa0VBQWVBO1lBQ2hCO2dCQUNJLE9BQU9PLDJFQUFlQSxDQUFDUSxPQUFPQztZQUNsQztRQUNKLEtBQUtmLHNFQUFtQkE7WUFDcEI7Z0JBQ0ksT0FBT08sa0ZBQWtCQSxDQUFDTyxPQUFPQztZQUNyQztRQUNKLEtBQUtkLGlFQUFjQTtZQUNmO2dCQUNJLE9BQU9PLHlFQUFjQSxDQUFDTSxPQUFPQztZQUNqQztRQUNKLEtBQUtiLGlFQUFjQTtZQUNmO2dCQUNJLE9BQU9PLHlFQUFjQSxDQUFDSyxPQUFPQztZQUNqQztRQUNKLEtBQUtYLHNFQUFtQkE7WUFDcEI7Z0JBQ0ksT0FBT08sa0ZBQWtCQSxDQUFDRyxPQUFPQztZQUNyQztRQUNKLEtBQUtaLGtFQUFlQTtZQUNoQjtnQkFDSSxPQUFPTywyRUFBZUEsQ0FBQ0ksT0FBT0M7WUFDbEM7UUFDSixLQUFLVix1RUFBb0JBO1lBQ3JCO2dCQUNJLE9BQU9PLG9GQUFtQkEsQ0FBQ0UsT0FBT0M7WUFDdEM7UUFDSiwrREFBK0Q7UUFDL0Q7WUFDSSxNQUFNLElBQUlFLE1BQU07SUFDeEI7QUFDSjtBQUNBLFNBQVNDLGNBQWNKLEtBQUssRUFBRUssT0FBTztJQUNqQyxPQUFPTDtBQUNYO0FBQ0EsbUdBQW1HO0FBQzVGLE1BQU1NLFVBQVUsS0FBNkIsR0FBR0YsZ0JBQWdCTCxDQUFhQSxDQUFDLENBRXJGLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXIuanM/YjhhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQ1RJT05fTkFWSUdBVEUsIEFDVElPTl9TRVJWRVJfUEFUQ0gsIEFDVElPTl9SRVNUT1JFLCBBQ1RJT05fUkVGUkVTSCwgQUNUSU9OX1BSRUZFVENILCBBQ1RJT05fRkFTVF9SRUZSRVNILCBBQ1RJT05fU0VSVkVSX0FDVElPTiB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyLXR5cGVzXCI7XG5pbXBvcnQgeyBuYXZpZ2F0ZVJlZHVjZXIgfSBmcm9tIFwiLi9yZWR1Y2Vycy9uYXZpZ2F0ZS1yZWR1Y2VyXCI7XG5pbXBvcnQgeyBzZXJ2ZXJQYXRjaFJlZHVjZXIgfSBmcm9tIFwiLi9yZWR1Y2Vycy9zZXJ2ZXItcGF0Y2gtcmVkdWNlclwiO1xuaW1wb3J0IHsgcmVzdG9yZVJlZHVjZXIgfSBmcm9tIFwiLi9yZWR1Y2Vycy9yZXN0b3JlLXJlZHVjZXJcIjtcbmltcG9ydCB7IHJlZnJlc2hSZWR1Y2VyIH0gZnJvbSBcIi4vcmVkdWNlcnMvcmVmcmVzaC1yZWR1Y2VyXCI7XG5pbXBvcnQgeyBwcmVmZXRjaFJlZHVjZXIgfSBmcm9tIFwiLi9yZWR1Y2Vycy9wcmVmZXRjaC1yZWR1Y2VyXCI7XG5pbXBvcnQgeyBmYXN0UmVmcmVzaFJlZHVjZXIgfSBmcm9tIFwiLi9yZWR1Y2Vycy9mYXN0LXJlZnJlc2gtcmVkdWNlclwiO1xuaW1wb3J0IHsgc2VydmVyQWN0aW9uUmVkdWNlciB9IGZyb20gXCIuL3JlZHVjZXJzL3NlcnZlci1hY3Rpb24tcmVkdWNlclwiO1xuLyoqXG4gKiBSZWR1Y2VyIHRoYXQgaGFuZGxlcyB0aGUgYXBwLXJvdXRlciBzdGF0ZSB1cGRhdGVzLlxuICovIGZ1bmN0aW9uIGNsaWVudFJlZHVjZXIoc3RhdGUsIGFjdGlvbikge1xuICAgIHN3aXRjaChhY3Rpb24udHlwZSl7XG4gICAgICAgIGNhc2UgQUNUSU9OX05BVklHQVRFOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiBuYXZpZ2F0ZVJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgQUNUSU9OX1NFUlZFUl9QQVRDSDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VydmVyUGF0Y2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEFDVElPTl9SRVNUT1JFOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN0b3JlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBBQ1RJT05fUkVGUkVTSDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVmcmVzaFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgQUNUSU9OX0ZBU1RfUkVGUkVTSDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFzdFJlZnJlc2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEFDVElPTl9QUkVGRVRDSDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJlZmV0Y2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIEFDVElPTl9TRVJWRVJfQUNUSU9OOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZXJ2ZXJBY3Rpb25SZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAvLyBUaGlzIGNhc2Ugc2hvdWxkIG5ldmVyIGJlIGhpdCBhcyBkaXNwYXRjaCBpcyBzdHJvbmdseSB0eXBlZC5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYWN0aW9uXCIpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHNlcnZlclJlZHVjZXIoc3RhdGUsIF9hY3Rpb24pIHtcbiAgICByZXR1cm4gc3RhdGU7XG59XG4vLyB3ZSBkb24ndCBydW4gdGhlIGNsaWVudCByZWR1Y2VyIG9uIHRoZSBzZXJ2ZXIsIHNvIHdlIHVzZSBhIG5vb3AgZnVuY3Rpb24gZm9yIGJldHRlciB0cmVlIHNoYWtpbmdcbmV4cG9ydCBjb25zdCByZWR1Y2VyID0gdHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiA/IHNlcnZlclJlZHVjZXIgOiBjbGllbnRSZWR1Y2VyO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZXItcmVkdWNlci5qcy5tYXAiXSwibmFtZXMiOlsiQUNUSU9OX05BVklHQVRFIiwiQUNUSU9OX1NFUlZFUl9QQVRDSCIsIkFDVElPTl9SRVNUT1JFIiwiQUNUSU9OX1JFRlJFU0giLCJBQ1RJT05fUFJFRkVUQ0giLCJBQ1RJT05fRkFTVF9SRUZSRVNIIiwiQUNUSU9OX1NFUlZFUl9BQ1RJT04iLCJuYXZpZ2F0ZVJlZHVjZXIiLCJzZXJ2ZXJQYXRjaFJlZHVjZXIiLCJyZXN0b3JlUmVkdWNlciIsInJlZnJlc2hSZWR1Y2VyIiwicHJlZmV0Y2hSZWR1Y2VyIiwiZmFzdFJlZnJlc2hSZWR1Y2VyIiwic2VydmVyQWN0aW9uUmVkdWNlciIsImNsaWVudFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJFcnJvciIsInNlcnZlclJlZHVjZXIiLCJfYWN0aW9uIiwicmVkdWNlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/should-hard-navigate.js":
-/*!*************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/should-hard-navigate.js ***!
- \*************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ shouldHardNavigate: () => (/* binding */ shouldHardNavigate)\n/* harmony export */ });\n/* harmony import */ var _match_segments__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../match-segments */ \"(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js\");\n\n// TODO-APP: flightSegmentPath will be empty in case of static response, needs to be handled.\nfunction shouldHardNavigate(flightSegmentPath, flightRouterState) {\n const [segment, parallelRoutes] = flightRouterState;\n // TODO-APP: Check if `as` can be replaced.\n const [currentSegment, parallelRouteKey] = flightSegmentPath;\n // Check if current segment matches the existing segment.\n if (!(0,_match_segments__WEBPACK_IMPORTED_MODULE_0__.matchSegment)(currentSegment, segment)) {\n // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered.\n if (Array.isArray(currentSegment)) {\n return true;\n }\n // If the existing segment did not match soft navigation is triggered.\n return false;\n }\n const lastSegment = flightSegmentPath.length <= 2;\n if (lastSegment) {\n return false;\n }\n return shouldHardNavigate(flightSegmentPath.slice(2), parallelRoutes[parallelRouteKey]);\n} //# sourceMappingURL=should-hard-navigate.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvc2hvdWxkLWhhcmQtbmF2aWdhdGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7QUFDakQsNkZBQTZGO0FBQ3RGLFNBQVNDLG1CQUFtQkMsaUJBQWlCLEVBQUVDLGlCQUFpQjtJQUNuRSxNQUFNLENBQUNDLFNBQVNDLGVBQWUsR0FBR0Y7SUFDbEMsMkNBQTJDO0lBQzNDLE1BQU0sQ0FBQ0csZ0JBQWdCQyxpQkFBaUIsR0FBR0w7SUFDM0MseURBQXlEO0lBQ3pELElBQUksQ0FBQ0YsNkRBQVlBLENBQUNNLGdCQUFnQkYsVUFBVTtRQUN4QyxrR0FBa0c7UUFDbEcsSUFBSUksTUFBTUMsT0FBTyxDQUFDSCxpQkFBaUI7WUFDL0IsT0FBTztRQUNYO1FBQ0Esc0VBQXNFO1FBQ3RFLE9BQU87SUFDWDtJQUNBLE1BQU1JLGNBQWNSLGtCQUFrQlMsTUFBTSxJQUFJO0lBQ2hELElBQUlELGFBQWE7UUFDYixPQUFPO0lBQ1g7SUFDQSxPQUFPVCxtQkFBbUJDLGtCQUFrQlUsS0FBSyxDQUFDLElBQUlQLGNBQWMsQ0FBQ0UsaUJBQWlCO0FBQzFGLEVBRUEsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9zaG91bGQtaGFyZC1uYXZpZ2F0ZS5qcz84YTY2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hdGNoU2VnbWVudCB9IGZyb20gXCIuLi9tYXRjaC1zZWdtZW50c1wiO1xuLy8gVE9ETy1BUFA6IGZsaWdodFNlZ21lbnRQYXRoIHdpbGwgYmUgZW1wdHkgaW4gY2FzZSBvZiBzdGF0aWMgcmVzcG9uc2UsIG5lZWRzIHRvIGJlIGhhbmRsZWQuXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkSGFyZE5hdmlnYXRlKGZsaWdodFNlZ21lbnRQYXRoLCBmbGlnaHRSb3V0ZXJTdGF0ZSkge1xuICAgIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlc10gPSBmbGlnaHRSb3V0ZXJTdGF0ZTtcbiAgICAvLyBUT0RPLUFQUDogQ2hlY2sgaWYgYGFzYCBjYW4gYmUgcmVwbGFjZWQuXG4gICAgY29uc3QgW2N1cnJlbnRTZWdtZW50LCBwYXJhbGxlbFJvdXRlS2V5XSA9IGZsaWdodFNlZ21lbnRQYXRoO1xuICAgIC8vIENoZWNrIGlmIGN1cnJlbnQgc2VnbWVudCBtYXRjaGVzIHRoZSBleGlzdGluZyBzZWdtZW50LlxuICAgIGlmICghbWF0Y2hTZWdtZW50KGN1cnJlbnRTZWdtZW50LCBzZWdtZW50KSkge1xuICAgICAgICAvLyBJZiBkeW5hbWljIHBhcmFtZXRlciBpbiB0cmVlIGRvZXNuJ3QgbWF0Y2ggdXAgd2l0aCBzZWdtZW50IHBhdGggYSBoYXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkLlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50U2VnbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSBleGlzdGluZyBzZWdtZW50IGRpZCBub3QgbWF0Y2ggc29mdCBuYXZpZ2F0aW9uIGlzIHRyaWdnZXJlZC5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBsYXN0U2VnbWVudCA9IGZsaWdodFNlZ21lbnRQYXRoLmxlbmd0aCA8PSAyO1xuICAgIGlmIChsYXN0U2VnbWVudCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBzaG91bGRIYXJkTmF2aWdhdGUoZmxpZ2h0U2VnbWVudFBhdGguc2xpY2UoMiksIHBhcmFsbGVsUm91dGVzW3BhcmFsbGVsUm91dGVLZXldKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2hvdWxkLWhhcmQtbmF2aWdhdGUuanMubWFwIl0sIm5hbWVzIjpbIm1hdGNoU2VnbWVudCIsInNob3VsZEhhcmROYXZpZ2F0ZSIsImZsaWdodFNlZ21lbnRQYXRoIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJzZWdtZW50IiwicGFyYWxsZWxSb3V0ZXMiLCJjdXJyZW50U2VnbWVudCIsInBhcmFsbGVsUm91dGVLZXkiLCJBcnJheSIsImlzQXJyYXkiLCJsYXN0U2VnbWVudCIsImxlbmd0aCIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/should-hard-navigate.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js":
-/*!****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js ***!
- \****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createSearchParamsBailoutProxy: () => (/* binding */ createSearchParamsBailoutProxy)\n/* harmony export */ });\n/* harmony import */ var _static_generation_bailout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./static-generation-bailout */ \"(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js\");\n\nfunction createSearchParamsBailoutProxy() {\n return new Proxy({}, {\n get (_target, prop) {\n // React adds some properties on the object when serializing for client components\n if (typeof prop === \"string\") {\n (0,_static_generation_bailout__WEBPACK_IMPORTED_MODULE_0__.staticGenerationBailout)(\"searchParams.\" + prop);\n }\n }\n });\n} //# sourceMappingURL=searchparams-bailout-proxy.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJveHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBc0U7QUFDL0QsU0FBU0M7SUFDWixPQUFPLElBQUlDLE1BQU0sQ0FBQyxHQUFHO1FBQ2pCQyxLQUFLQyxPQUFPLEVBQUVDLElBQUk7WUFDZCxrRkFBa0Y7WUFDbEYsSUFBSSxPQUFPQSxTQUFTLFVBQVU7Z0JBQzFCTCxtRkFBdUJBLENBQUMsa0JBQWtCSztZQUM5QztRQUNKO0lBQ0o7QUFDSixFQUVBLHNEQUFzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJveHkuanM/NjI2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGF0aWNHZW5lcmF0aW9uQmFpbG91dCB9IGZyb20gXCIuL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXRcIjtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWFyY2hQYXJhbXNCYWlsb3V0UHJveHkoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm94eSh7fSwge1xuICAgICAgICBnZXQgKF90YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFJlYWN0IGFkZHMgc29tZSBwcm9wZXJ0aWVzIG9uIHRoZSBvYmplY3Qgd2hlbiBzZXJpYWxpemluZyBmb3IgY2xpZW50IGNvbXBvbmVudHNcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25CYWlsb3V0KFwic2VhcmNoUGFyYW1zLlwiICsgcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VhcmNocGFyYW1zLWJhaWxvdXQtcHJveHkuanMubWFwIl0sIm5hbWVzIjpbInN0YXRpY0dlbmVyYXRpb25CYWlsb3V0IiwiY3JlYXRlU2VhcmNoUGFyYW1zQmFpbG91dFByb3h5IiwiUHJveHkiLCJnZXQiLCJfdGFyZ2V0IiwicHJvcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js\n");
-
-/***/ }),
-
-/***/ "(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?af3b":
-/*!******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js ***!
- \******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ staticGenerationAsyncStorage: () => (/* binding */ staticGenerationAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var _async_local_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./async-local-storage */ \"(shared)/../../node_modules/next/dist/esm/client/components/async-local-storage.js\");\n\nconst staticGenerationAsyncStorage = (0,_async_local_storage__WEBPACK_IMPORTED_MODULE_0__.createAsyncLocalStorage)(); //# sourceMappingURL=static-generation-async-storage.external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbC5qcz9hZjNiIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWdFO0FBQ3pELE1BQU1DLCtCQUErQkQsNkVBQXVCQSxHQUFHLENBRXRFLG9FQUFvRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbC5qcz85Y2YyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSBcIi4vYXN5bmMtbG9jYWwtc3RvcmFnZVwiO1xuZXhwb3J0IGNvbnN0IHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UgPSBjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSgpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGF0aWMtZ2VuZXJhdGlvbi1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSIsInN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?af3b\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/static-generation-bailout.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isStaticGenBailoutError: () => (/* binding */ isStaticGenBailoutError),\n/* harmony export */ staticGenerationBailout: () => (/* binding */ staticGenerationBailout)\n/* harmony export */ });\n/* harmony import */ var _hooks_server_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hooks-server-context */ \"(ssr)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js\");\n/* harmony import */ var _static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./static-generation-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?af3b\");\n\n\nconst NEXT_STATIC_GEN_BAILOUT = \"NEXT_STATIC_GEN_BAILOUT\";\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args);\n this.code = NEXT_STATIC_GEN_BAILOUT;\n }\n}\nfunction isStaticGenBailoutError(error) {\n if (typeof error !== \"object\" || error === null || !(\"code\" in error)) {\n return false;\n }\n return error.code === NEXT_STATIC_GEN_BAILOUT;\n}\nfunction formatErrorMessage(reason, opts) {\n const { dynamic, link } = opts || {};\n const suffix = link ? \" See more info here: \" + link : \"\";\n return \"Page\" + (dynamic ? ' with `dynamic = \"' + dynamic + '\"`' : \"\") + \" couldn't be rendered statically because it used `\" + reason + \"`.\" + suffix;\n}\nconst staticGenerationBailout = (reason, param)=>{\n let { dynamic, link } = param === void 0 ? {} : param;\n const staticGenerationStore = _static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_1__.staticGenerationAsyncStorage.getStore();\n if (!staticGenerationStore) return false;\n if (staticGenerationStore.forceStatic) {\n return true;\n }\n if (staticGenerationStore.dynamicShouldError) {\n throw new StaticGenBailoutError(formatErrorMessage(reason, {\n link,\n dynamic: dynamic != null ? dynamic : \"error\"\n }));\n }\n const message = formatErrorMessage(reason, {\n dynamic,\n // this error should be caught by Next to bail out of static generation\n // in case it's uncaught, this link provides some additional context as to why\n link: \"https://nextjs.org/docs/messages/dynamic-server-error\"\n });\n // If postpone is available, we should postpone the render.\n staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, reason);\n // As this is a bailout, we don't want to revalidate, so set the revalidate\n // to 0.\n staticGenerationStore.revalidate = 0;\n if (staticGenerationStore.isStaticGeneration) {\n const err = new _hooks_server_context__WEBPACK_IMPORTED_MODULE_0__.DynamicServerError(message);\n staticGenerationStore.dynamicUsageDescription = reason;\n staticGenerationStore.dynamicUsageStack = err.stack;\n throw err;\n }\n return false;\n}; //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTREO0FBQzhCO0FBQzFGLE1BQU1FLDBCQUEwQjtBQUNoQyxNQUFNQyw4QkFBOEJDO0lBQ2hDQyxZQUFZLEdBQUdDLElBQUksQ0FBQztRQUNoQixLQUFLLElBQUlBO1FBQ1QsSUFBSSxDQUFDQyxJQUFJLEdBQUdMO0lBQ2hCO0FBQ0o7QUFDTyxTQUFTTSx3QkFBd0JDLEtBQUs7SUFDekMsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUksR0FBSTtRQUNuRSxPQUFPO0lBQ1g7SUFDQSxPQUFPQSxNQUFNRixJQUFJLEtBQUtMO0FBQzFCO0FBQ0EsU0FBU1EsbUJBQW1CQyxNQUFNLEVBQUVDLElBQUk7SUFDcEMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRSxHQUFHRixRQUFRLENBQUM7SUFDbkMsTUFBTUcsU0FBU0QsT0FBTywwQkFBMEJBLE9BQU87SUFDdkQsT0FBTyxTQUFVRCxDQUFBQSxVQUFVLHVCQUF1QkEsVUFBVSxPQUFPLEVBQUMsSUFBSyx1REFBdURGLFNBQVMsT0FBT0k7QUFDcEo7QUFDTyxNQUFNQywwQkFBMEIsQ0FBQ0wsUUFBUU07SUFDNUMsSUFBSSxFQUFFSixPQUFPLEVBQUVDLElBQUksRUFBRSxHQUFHRyxVQUFVLEtBQUssSUFBSSxDQUFDLElBQUlBO0lBQ2hELE1BQU1DLHdCQUF3QmpCLG1HQUE0QkEsQ0FBQ2tCLFFBQVE7SUFDbkUsSUFBSSxDQUFDRCx1QkFBdUIsT0FBTztJQUNuQyxJQUFJQSxzQkFBc0JFLFdBQVcsRUFBRTtRQUNuQyxPQUFPO0lBQ1g7SUFDQSxJQUFJRixzQkFBc0JHLGtCQUFrQixFQUFFO1FBQzFDLE1BQU0sSUFBSWxCLHNCQUFzQk8sbUJBQW1CQyxRQUFRO1lBQ3ZERztZQUNBRCxTQUFTQSxXQUFXLE9BQU9BLFVBQVU7UUFDekM7SUFDSjtJQUNBLE1BQU1TLFVBQVVaLG1CQUFtQkMsUUFBUTtRQUN2Q0U7UUFDQSx1RUFBdUU7UUFDdkUsOEVBQThFO1FBQzlFQyxNQUFNO0lBQ1Y7SUFDQSwyREFBMkQ7SUFDM0RJLHNCQUFzQkssUUFBUSxJQUFJLE9BQU8sS0FBSyxJQUFJTCxzQkFBc0JLLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDTix1QkFBdUJQO0lBQzdHLDJFQUEyRTtJQUMzRSxRQUFRO0lBQ1JPLHNCQUFzQk8sVUFBVSxHQUFHO0lBQ25DLElBQUlQLHNCQUFzQlEsa0JBQWtCLEVBQUU7UUFDMUMsTUFBTUMsTUFBTSxJQUFJM0IscUVBQWtCQSxDQUFDc0I7UUFDbkNKLHNCQUFzQlUsdUJBQXVCLEdBQUdqQjtRQUNoRE8sc0JBQXNCVyxpQkFBaUIsR0FBR0YsSUFBSUcsS0FBSztRQUNuRCxNQUFNSDtJQUNWO0lBQ0EsT0FBTztBQUNYLEVBQUUsQ0FFRixxREFBcUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanM/YTQxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljU2VydmVyRXJyb3IgfSBmcm9tIFwiLi9ob29rcy1zZXJ2ZXItY29udGV4dFwiO1xuaW1wb3J0IHsgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZSB9IGZyb20gXCIuL3N0YXRpYy1nZW5lcmF0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIjtcbmNvbnN0IE5FWFRfU1RBVElDX0dFTl9CQUlMT1VUID0gXCJORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFwiO1xuY2xhc3MgU3RhdGljR2VuQmFpbG91dEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3Mpe1xuICAgICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgICAgdGhpcy5jb2RlID0gTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQ7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGljR2VuQmFpbG91dEVycm9yKGVycm9yKSB7XG4gICAgaWYgKHR5cGVvZiBlcnJvciAhPT0gXCJvYmplY3RcIiB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKFwiY29kZVwiIGluIGVycm9yKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBlcnJvci5jb2RlID09PSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVDtcbn1cbmZ1bmN0aW9uIGZvcm1hdEVycm9yTWVzc2FnZShyZWFzb24sIG9wdHMpIHtcbiAgICBjb25zdCB7IGR5bmFtaWMsIGxpbmsgfSA9IG9wdHMgfHwge307XG4gICAgY29uc3Qgc3VmZml4ID0gbGluayA/IFwiIFNlZSBtb3JlIGluZm8gaGVyZTogXCIgKyBsaW5rIDogXCJcIjtcbiAgICByZXR1cm4gXCJQYWdlXCIgKyAoZHluYW1pYyA/ICcgd2l0aCBgZHluYW1pYyA9IFwiJyArIGR5bmFtaWMgKyAnXCJgJyA6IFwiXCIpICsgXCIgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgYFwiICsgcmVhc29uICsgXCJgLlwiICsgc3VmZml4O1xufVxuZXhwb3J0IGNvbnN0IHN0YXRpY0dlbmVyYXRpb25CYWlsb3V0ID0gKHJlYXNvbiwgcGFyYW0pPT57XG4gICAgbGV0IHsgZHluYW1pYywgbGluayB9ID0gcGFyYW0gPT09IHZvaWQgMCA/IHt9IDogcGFyYW07XG4gICAgY29uc3Qgc3RhdGljR2VuZXJhdGlvblN0b3JlID0gc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICghc3RhdGljR2VuZXJhdGlvblN0b3JlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihmb3JtYXRFcnJvck1lc3NhZ2UocmVhc29uLCB7XG4gICAgICAgICAgICBsaW5rLFxuICAgICAgICAgICAgZHluYW1pYzogZHluYW1pYyAhPSBudWxsID8gZHluYW1pYyA6IFwiZXJyb3JcIlxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UocmVhc29uLCB7XG4gICAgICAgIGR5bmFtaWMsXG4gICAgICAgIC8vIHRoaXMgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBieSBOZXh0IHRvIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uXG4gICAgICAgIC8vIGluIGNhc2UgaXQncyB1bmNhdWdodCwgdGhpcyBsaW5rIHByb3ZpZGVzIHNvbWUgYWRkaXRpb25hbCBjb250ZXh0IGFzIHRvIHdoeVxuICAgICAgICBsaW5rOiBcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yXCJcbiAgICB9KTtcbiAgICAvLyBJZiBwb3N0cG9uZSBpcyBhdmFpbGFibGUsIHdlIHNob3VsZCBwb3N0cG9uZSB0aGUgcmVuZGVyLlxuICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5wb3N0cG9uZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lLmNhbGwoc3RhdGljR2VuZXJhdGlvblN0b3JlLCByZWFzb24pO1xuICAgIC8vIEFzIHRoaXMgaXMgYSBiYWlsb3V0LCB3ZSBkb24ndCB3YW50IHRvIHJldmFsaWRhdGUsIHNvIHNldCB0aGUgcmV2YWxpZGF0ZVxuICAgIC8vIHRvIDAuXG4gICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGUgPSAwO1xuICAgIGlmIChzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBEeW5hbWljU2VydmVyRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5keW5hbWljVXNhZ2VEZXNjcmlwdGlvbiA9IHJlYXNvbjtcbiAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZVN0YWNrID0gZXJyLnN0YWNrO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMubWFwIl0sIm5hbWVzIjpbIkR5bmFtaWNTZXJ2ZXJFcnJvciIsInN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UiLCJORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCIsIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJhcmdzIiwiY29kZSIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiZXJyb3IiLCJmb3JtYXRFcnJvck1lc3NhZ2UiLCJyZWFzb24iLCJvcHRzIiwiZHluYW1pYyIsImxpbmsiLCJzdWZmaXgiLCJzdGF0aWNHZW5lcmF0aW9uQmFpbG91dCIsInBhcmFtIiwic3RhdGljR2VuZXJhdGlvblN0b3JlIiwiZ2V0U3RvcmUiLCJmb3JjZVN0YXRpYyIsImR5bmFtaWNTaG91bGRFcnJvciIsIm1lc3NhZ2UiLCJwb3N0cG9uZSIsImNhbGwiLCJyZXZhbGlkYXRlIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwiZXJyIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJkeW5hbWljVXNhZ2VTdGFjayIsInN0YWNrIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":
-/*!*************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js ***!
- \*************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ StaticGenerationSearchParamsBailoutProvider)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _searchparams_bailout_proxy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./searchparams-bailout-proxy */ \"(ssr)/../../node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\nfunction StaticGenerationSearchParamsBailoutProvider(param) {\n let { Component, propsForComponent, isStaticGeneration } = param;\n if (isStaticGeneration) {\n const searchParams = (0,_searchparams_bailout_proxy__WEBPACK_IMPORTED_MODULE_2__.createSearchParamsBailoutProxy)();\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Component, {\n searchParams: searchParams,\n ...propsForComponent\n });\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Component, {\n ...propsForComponent\n });\n} //# sourceMappingURL=static-generation-searchparams-bailout-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJvdmlkZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7NkRBRWdEO0FBQ3RCO0FBQ29EO0FBQy9ELFNBQVNJLDRDQUE0Q0MsS0FBSztJQUNyRSxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsaUJBQWlCLEVBQUVDLGtCQUFrQixFQUFFLEdBQUdIO0lBQzNELElBQUlHLG9CQUFvQjtRQUNwQixNQUFNQyxlQUFlTiwyRkFBOEJBO1FBQ25ELE9BQU8sV0FBVyxHQUFHRixzREFBSUEsQ0FBQ0ssV0FBVztZQUNqQ0csY0FBY0E7WUFDZCxHQUFHRixpQkFBaUI7UUFDeEI7SUFDSjtJQUNBLE9BQU8sV0FBVyxHQUFHTixzREFBSUEsQ0FBQ0ssV0FBVztRQUNqQyxHQUFHQyxpQkFBaUI7SUFDeEI7QUFDSixFQUVBLDJFQUEyRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJvdmlkZXIuanM/ZmM4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZVNlYXJjaFBhcmFtc0JhaWxvdXRQcm94eSB9IGZyb20gXCIuL3NlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3h5XCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTdGF0aWNHZW5lcmF0aW9uU2VhcmNoUGFyYW1zQmFpbG91dFByb3ZpZGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgQ29tcG9uZW50LCBwcm9wc0ZvckNvbXBvbmVudCwgaXNTdGF0aWNHZW5lcmF0aW9uIH0gPSBwYXJhbTtcbiAgICBpZiAoaXNTdGF0aWNHZW5lcmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IGNyZWF0ZVNlYXJjaFBhcmFtc0JhaWxvdXRQcm94eSgpO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KENvbXBvbmVudCwge1xuICAgICAgICAgICAgc2VhcmNoUGFyYW1zOiBzZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICAuLi5wcm9wc0ZvckNvbXBvbmVudFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChDb21wb25lbnQsIHtcbiAgICAgICAgLi4ucHJvcHNGb3JDb21wb25lbnRcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhdGljLWdlbmVyYXRpb24tc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJvdmlkZXIuanMubWFwIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJSZWFjdCIsImNyZWF0ZVNlYXJjaFBhcmFtc0JhaWxvdXRQcm94eSIsIlN0YXRpY0dlbmVyYXRpb25TZWFyY2hQYXJhbXNCYWlsb3V0UHJvdmlkZXIiLCJwYXJhbSIsIkNvbXBvbmVudCIsInByb3BzRm9yQ29tcG9uZW50IiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwic2VhcmNoUGFyYW1zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/components/use-reducer-with-devtools.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/use-reducer-with-devtools.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useReducerWithReduxDevtools: () => (/* binding */ useReducerWithReduxDevtools),\n/* harmony export */ useUnwrapState: () => (/* binding */ useUnwrapState)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js\");\n/* harmony import */ var _shared_lib_router_action_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/lib/router/action-queue */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/action-queue.js\");\n\n\n\n\nfunction normalizeRouterState(val) {\n if (val instanceof Map) {\n const obj = {};\n for (const [key, value] of val.entries()){\n if (typeof value === \"function\") {\n obj[key] = \"fn()\";\n continue;\n }\n if (typeof value === \"object\" && value !== null) {\n if (value.$$typeof) {\n obj[key] = value.$$typeof.toString();\n continue;\n }\n if (value._bundlerConfig) {\n obj[key] = \"FlightData\";\n continue;\n }\n }\n obj[key] = normalizeRouterState(value);\n }\n return obj;\n }\n if (typeof val === \"object\" && val !== null) {\n const obj = {};\n for(const key in val){\n const value = val[key];\n if (typeof value === \"function\") {\n obj[key] = \"fn()\";\n continue;\n }\n if (typeof value === \"object\" && value !== null) {\n if (value.$$typeof) {\n obj[key] = value.$$typeof.toString();\n continue;\n }\n if (value.hasOwnProperty(\"_bundlerConfig\")) {\n obj[key] = \"FlightData\";\n continue;\n }\n }\n obj[key] = normalizeRouterState(value);\n }\n return obj;\n }\n if (Array.isArray(val)) {\n return val.map(normalizeRouterState);\n }\n return val;\n}\nfunction useUnwrapState(state) {\n // reducer actions can be async, so sometimes we need to suspend until the state is resolved\n if ((0,_router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_1__.isThenable)(state)) {\n const result = (0,react__WEBPACK_IMPORTED_MODULE_0__.use)(state);\n return result;\n }\n return state;\n}\nfunction useReducerWithReduxDevtoolsNoop(initialState) {\n return [\n initialState,\n ()=>{},\n ()=>{}\n ];\n}\nfunction useReducerWithReduxDevtoolsImpl(initialState) {\n const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0___default().useState(initialState);\n const actionQueue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_router_action_queue__WEBPACK_IMPORTED_MODULE_2__.ActionQueueContext);\n if (!actionQueue) {\n throw new Error(\"Invariant: Missing ActionQueueContext\");\n }\n const devtoolsConnectionRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n const enabledRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n if (devtoolsConnectionRef.current || enabledRef.current === false) {\n return;\n }\n if (enabledRef.current === undefined && typeof window.__REDUX_DEVTOOLS_EXTENSION__ === \"undefined\") {\n enabledRef.current = false;\n return;\n }\n devtoolsConnectionRef.current = window.__REDUX_DEVTOOLS_EXTENSION__.connect({\n instanceId: 8000,\n name: \"next-router\"\n });\n if (devtoolsConnectionRef.current) {\n devtoolsConnectionRef.current.init(normalizeRouterState(initialState));\n if (actionQueue) {\n actionQueue.devToolsInstance = devtoolsConnectionRef.current;\n }\n }\n return ()=>{\n devtoolsConnectionRef.current = undefined;\n };\n }, [\n initialState,\n actionQueue\n ]);\n const dispatch = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((action)=>{\n if (!actionQueue.state) {\n // we lazy initialize the mutable action queue state since the data needed\n // to generate the state is not available when the actionQueue context is created\n actionQueue.state = initialState;\n }\n actionQueue.dispatch(action, setState);\n }, [\n actionQueue,\n initialState\n ]);\n // Sync is called after a state update in the HistoryUpdater,\n // for debugging purposes. Since the reducer state may be a Promise,\n // we let the app router use() it and sync on the resolved value if\n // something changed.\n // Using the `state` here would be referentially unstable and cause\n // undesirable re-renders and history updates.\n const sync = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((resolvedState)=>{\n if (devtoolsConnectionRef.current) {\n devtoolsConnectionRef.current.send({\n type: \"RENDER_SYNC\"\n }, normalizeRouterState(resolvedState));\n }\n }, []);\n return [\n state,\n dispatch,\n sync\n ];\n}\nconst useReducerWithReduxDevtools = false ? 0 : useReducerWithReduxDevtoolsNoop; //# sourceMappingURL=use-reducer-with-devtools.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvdXNlLXJlZHVjZXItd2l0aC1kZXZ0b29scy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBK0M7QUFDUTtBQUNZO0FBQ087QUFDMUUsU0FBU1EscUJBQXFCQyxHQUFHO0lBQzdCLElBQUlBLGVBQWVDLEtBQUs7UUFDcEIsTUFBTUMsTUFBTSxDQUFDO1FBQ2IsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUosSUFBSUssT0FBTyxHQUFHO1lBQ3JDLElBQUksT0FBT0QsVUFBVSxZQUFZO2dCQUM3QkYsR0FBRyxDQUFDQyxJQUFJLEdBQUc7Z0JBQ1g7WUFDSjtZQUNBLElBQUksT0FBT0MsVUFBVSxZQUFZQSxVQUFVLE1BQU07Z0JBQzdDLElBQUlBLE1BQU1FLFFBQVEsRUFBRTtvQkFDaEJKLEdBQUcsQ0FBQ0MsSUFBSSxHQUFHQyxNQUFNRSxRQUFRLENBQUNDLFFBQVE7b0JBQ2xDO2dCQUNKO2dCQUNBLElBQUlILE1BQU1JLGNBQWMsRUFBRTtvQkFDdEJOLEdBQUcsQ0FBQ0MsSUFBSSxHQUFHO29CQUNYO2dCQUNKO1lBQ0o7WUFDQUQsR0FBRyxDQUFDQyxJQUFJLEdBQUdKLHFCQUFxQks7UUFDcEM7UUFDQSxPQUFPRjtJQUNYO0lBQ0EsSUFBSSxPQUFPRixRQUFRLFlBQVlBLFFBQVEsTUFBTTtRQUN6QyxNQUFNRSxNQUFNLENBQUM7UUFDYixJQUFJLE1BQU1DLE9BQU9ILElBQUk7WUFDakIsTUFBTUksUUFBUUosR0FBRyxDQUFDRyxJQUFJO1lBQ3RCLElBQUksT0FBT0MsVUFBVSxZQUFZO2dCQUM3QkYsR0FBRyxDQUFDQyxJQUFJLEdBQUc7Z0JBQ1g7WUFDSjtZQUNBLElBQUksT0FBT0MsVUFBVSxZQUFZQSxVQUFVLE1BQU07Z0JBQzdDLElBQUlBLE1BQU1FLFFBQVEsRUFBRTtvQkFDaEJKLEdBQUcsQ0FBQ0MsSUFBSSxHQUFHQyxNQUFNRSxRQUFRLENBQUNDLFFBQVE7b0JBQ2xDO2dCQUNKO2dCQUNBLElBQUlILE1BQU1LLGNBQWMsQ0FBQyxtQkFBbUI7b0JBQ3hDUCxHQUFHLENBQUNDLElBQUksR0FBRztvQkFDWDtnQkFDSjtZQUNKO1lBQ0FELEdBQUcsQ0FBQ0MsSUFBSSxHQUFHSixxQkFBcUJLO1FBQ3BDO1FBQ0EsT0FBT0Y7SUFDWDtJQUNBLElBQUlRLE1BQU1DLE9BQU8sQ0FBQ1gsTUFBTTtRQUNwQixPQUFPQSxJQUFJWSxHQUFHLENBQUNiO0lBQ25CO0lBQ0EsT0FBT0M7QUFDWDtBQUNPLFNBQVNhLGVBQWVDLEtBQUs7SUFDaEMsNEZBQTRGO0lBQzVGLElBQUlqQixnRkFBVUEsQ0FBQ2lCLFFBQVE7UUFDbkIsTUFBTUMsU0FBU3ZCLDBDQUFHQSxDQUFDc0I7UUFDbkIsT0FBT0M7SUFDWDtJQUNBLE9BQU9EO0FBQ1g7QUFDQSxTQUFTRSxnQ0FBZ0NDLFlBQVk7SUFDakQsT0FBTztRQUNIQTtRQUNBLEtBQUs7UUFDTCxLQUFLO0tBQ1I7QUFDTDtBQUNBLFNBQVNDLGdDQUFnQ0QsWUFBWTtJQUNqRCxNQUFNLENBQUNILE9BQU9LLFNBQVMsR0FBRzVCLHFEQUFjLENBQUMwQjtJQUN6QyxNQUFNSSxjQUFjNUIsaURBQVVBLENBQUNLLCtFQUFrQkE7SUFDakQsSUFBSSxDQUFDdUIsYUFBYTtRQUNkLE1BQU0sSUFBSUMsTUFBTTtJQUNwQjtJQUNBLE1BQU1DLHdCQUF3QjdCLDZDQUFNQTtJQUNwQyxNQUFNOEIsYUFBYTlCLDZDQUFNQTtJQUN6QkMsZ0RBQVNBLENBQUM7UUFDTixJQUFJNEIsc0JBQXNCRSxPQUFPLElBQUlELFdBQVdDLE9BQU8sS0FBSyxPQUFPO1lBQy9EO1FBQ0o7UUFDQSxJQUFJRCxXQUFXQyxPQUFPLEtBQUtDLGFBQWEsT0FBT0MsT0FBT0MsNEJBQTRCLEtBQUssYUFBYTtZQUNoR0osV0FBV0MsT0FBTyxHQUFHO1lBQ3JCO1FBQ0o7UUFDQUYsc0JBQXNCRSxPQUFPLEdBQUdFLE9BQU9DLDRCQUE0QixDQUFDQyxPQUFPLENBQUM7WUFDeEVDLFlBQVk7WUFDWkMsTUFBTTtRQUNWO1FBQ0EsSUFBSVIsc0JBQXNCRSxPQUFPLEVBQUU7WUFDL0JGLHNCQUFzQkUsT0FBTyxDQUFDTyxJQUFJLENBQUNqQyxxQkFBcUJrQjtZQUN4RCxJQUFJSSxhQUFhO2dCQUNiQSxZQUFZWSxnQkFBZ0IsR0FBR1Ysc0JBQXNCRSxPQUFPO1lBQ2hFO1FBQ0o7UUFDQSxPQUFPO1lBQ0hGLHNCQUFzQkUsT0FBTyxHQUFHQztRQUNwQztJQUNKLEdBQUc7UUFDQ1Q7UUFDQUk7S0FDSDtJQUNELE1BQU1hLFdBQVd0QyxrREFBV0EsQ0FBQyxDQUFDdUM7UUFDMUIsSUFBSSxDQUFDZCxZQUFZUCxLQUFLLEVBQUU7WUFDcEIsMEVBQTBFO1lBQzFFLGlGQUFpRjtZQUNqRk8sWUFBWVAsS0FBSyxHQUFHRztRQUN4QjtRQUNBSSxZQUFZYSxRQUFRLENBQUNDLFFBQVFoQjtJQUNqQyxHQUFHO1FBQ0NFO1FBQ0FKO0tBQ0g7SUFDRCw2REFBNkQ7SUFDN0Qsb0VBQW9FO0lBQ3BFLG1FQUFtRTtJQUNuRSxxQkFBcUI7SUFDckIsbUVBQW1FO0lBQ25FLDhDQUE4QztJQUM5QyxNQUFNbUIsT0FBT3hDLGtEQUFXQSxDQUFDLENBQUN5QztRQUN0QixJQUFJZCxzQkFBc0JFLE9BQU8sRUFBRTtZQUMvQkYsc0JBQXNCRSxPQUFPLENBQUNhLElBQUksQ0FBQztnQkFDL0JDLE1BQU07WUFDVixHQUFHeEMscUJBQXFCc0M7UUFDNUI7SUFDSixHQUFHLEVBQUU7SUFDTCxPQUFPO1FBQ0h2QjtRQUNBb0I7UUFDQUU7S0FDSDtBQUNMO0FBQ08sTUFBTUksOEJBQThCLE1BQTZCLEdBQUd0QixDQUErQkEsR0FBR0YsZ0NBQWdDLENBRTdJLHFEQUFxRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvdXNlLXJlZHVjZXItd2l0aC1kZXZ0b29scy5qcz9lMGExIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2UsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgaXNUaGVuYWJsZSB9IGZyb20gXCIuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzXCI7XG5pbXBvcnQgeyBBY3Rpb25RdWV1ZUNvbnRleHQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvYWN0aW9uLXF1ZXVlXCI7XG5mdW5jdGlvbiBub3JtYWxpemVSb3V0ZXJTdGF0ZSh2YWwpIHtcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiB2YWwuZW50cmllcygpKXtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIG9ialtrZXldID0gXCJmbigpXCI7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialtrZXldID0gdmFsdWUuJCR0eXBlb2YudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5fYnVuZGxlckNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgICBvYmpba2V5XSA9IFwiRmxpZ2h0RGF0YVwiO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYmpba2V5XSA9IG5vcm1hbGl6ZVJvdXRlclN0YXRlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiAmJiB2YWwgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgb2JqID0ge307XG4gICAgICAgIGZvcihjb25zdCBrZXkgaW4gdmFsKXtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdmFsW2tleV07XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBvYmpba2V5XSA9IFwiZm4oKVwiO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS4kJHR5cGVvZikge1xuICAgICAgICAgICAgICAgICAgICBvYmpba2V5XSA9IHZhbHVlLiQkdHlwZW9mLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoXCJfYnVuZGxlckNvbmZpZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICBvYmpba2V5XSA9IFwiRmxpZ2h0RGF0YVwiO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYmpba2V5XSA9IG5vcm1hbGl6ZVJvdXRlclN0YXRlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgIHJldHVybiB2YWwubWFwKG5vcm1hbGl6ZVJvdXRlclN0YXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VVbndyYXBTdGF0ZShzdGF0ZSkge1xuICAgIC8vIHJlZHVjZXIgYWN0aW9ucyBjYW4gYmUgYXN5bmMsIHNvIHNvbWV0aW1lcyB3ZSBuZWVkIHRvIHN1c3BlbmQgdW50aWwgdGhlIHN0YXRlIGlzIHJlc29sdmVkXG4gICAgaWYgKGlzVGhlbmFibGUoc3RhdGUpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHVzZShzdGF0ZSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbn1cbmZ1bmN0aW9uIHVzZVJlZHVjZXJXaXRoUmVkdXhEZXZ0b29sc05vb3AoaW5pdGlhbFN0YXRlKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgICAoKT0+e30sXG4gICAgICAgICgpPT57fVxuICAgIF07XG59XG5mdW5jdGlvbiB1c2VSZWR1Y2VyV2l0aFJlZHV4RGV2dG9vbHNJbXBsKGluaXRpYWxTdGF0ZSkge1xuICAgIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gUmVhY3QudXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICBjb25zdCBhY3Rpb25RdWV1ZSA9IHVzZUNvbnRleHQoQWN0aW9uUXVldWVDb250ZXh0KTtcbiAgICBpZiAoIWFjdGlvblF1ZXVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogTWlzc2luZyBBY3Rpb25RdWV1ZUNvbnRleHRcIik7XG4gICAgfVxuICAgIGNvbnN0IGRldnRvb2xzQ29ubmVjdGlvblJlZiA9IHVzZVJlZigpO1xuICAgIGNvbnN0IGVuYWJsZWRSZWYgPSB1c2VSZWYoKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKGRldnRvb2xzQ29ubmVjdGlvblJlZi5jdXJyZW50IHx8IGVuYWJsZWRSZWYuY3VycmVudCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5hYmxlZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIHdpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBlbmFibGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZXZ0b29sc0Nvbm5lY3Rpb25SZWYuY3VycmVudCA9IHdpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fLmNvbm5lY3Qoe1xuICAgICAgICAgICAgaW5zdGFuY2VJZDogODAwMCxcbiAgICAgICAgICAgIG5hbWU6IFwibmV4dC1yb3V0ZXJcIlxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRldnRvb2xzQ29ubmVjdGlvblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBkZXZ0b29sc0Nvbm5lY3Rpb25SZWYuY3VycmVudC5pbml0KG5vcm1hbGl6ZVJvdXRlclN0YXRlKGluaXRpYWxTdGF0ZSkpO1xuICAgICAgICAgICAgaWYgKGFjdGlvblF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUXVldWUuZGV2VG9vbHNJbnN0YW5jZSA9IGRldnRvb2xzQ29ubmVjdGlvblJlZi5jdXJyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgZGV2dG9vbHNDb25uZWN0aW9uUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBpbml0aWFsU3RhdGUsXG4gICAgICAgIGFjdGlvblF1ZXVlXG4gICAgXSk7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjaygoYWN0aW9uKT0+e1xuICAgICAgICBpZiAoIWFjdGlvblF1ZXVlLnN0YXRlKSB7XG4gICAgICAgICAgICAvLyB3ZSBsYXp5IGluaXRpYWxpemUgdGhlIG11dGFibGUgYWN0aW9uIHF1ZXVlIHN0YXRlIHNpbmNlIHRoZSBkYXRhIG5lZWRlZFxuICAgICAgICAgICAgLy8gdG8gZ2VuZXJhdGUgdGhlIHN0YXRlIGlzIG5vdCBhdmFpbGFibGUgd2hlbiB0aGUgYWN0aW9uUXVldWUgY29udGV4dCBpcyBjcmVhdGVkXG4gICAgICAgICAgICBhY3Rpb25RdWV1ZS5zdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBhY3Rpb25RdWV1ZS5kaXNwYXRjaChhY3Rpb24sIHNldFN0YXRlKTtcbiAgICB9LCBbXG4gICAgICAgIGFjdGlvblF1ZXVlLFxuICAgICAgICBpbml0aWFsU3RhdGVcbiAgICBdKTtcbiAgICAvLyBTeW5jIGlzIGNhbGxlZCBhZnRlciBhIHN0YXRlIHVwZGF0ZSBpbiB0aGUgSGlzdG9yeVVwZGF0ZXIsXG4gICAgLy8gZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gU2luY2UgdGhlIHJlZHVjZXIgc3RhdGUgbWF5IGJlIGEgUHJvbWlzZSxcbiAgICAvLyB3ZSBsZXQgdGhlIGFwcCByb3V0ZXIgdXNlKCkgaXQgYW5kIHN5bmMgb24gdGhlIHJlc29sdmVkIHZhbHVlIGlmXG4gICAgLy8gc29tZXRoaW5nIGNoYW5nZWQuXG4gICAgLy8gVXNpbmcgdGhlIGBzdGF0ZWAgaGVyZSB3b3VsZCBiZSByZWZlcmVudGlhbGx5IHVuc3RhYmxlIGFuZCBjYXVzZVxuICAgIC8vIHVuZGVzaXJhYmxlIHJlLXJlbmRlcnMgYW5kIGhpc3RvcnkgdXBkYXRlcy5cbiAgICBjb25zdCBzeW5jID0gdXNlQ2FsbGJhY2soKHJlc29sdmVkU3RhdGUpPT57XG4gICAgICAgIGlmIChkZXZ0b29sc0Nvbm5lY3Rpb25SZWYuY3VycmVudCkge1xuICAgICAgICAgICAgZGV2dG9vbHNDb25uZWN0aW9uUmVmLmN1cnJlbnQuc2VuZCh7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJSRU5ERVJfU1lOQ1wiXG4gICAgICAgICAgICB9LCBub3JtYWxpemVSb3V0ZXJTdGF0ZShyZXNvbHZlZFN0YXRlKSk7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBzeW5jXG4gICAgXTtcbn1cbmV4cG9ydCBjb25zdCB1c2VSZWR1Y2VyV2l0aFJlZHV4RGV2dG9vbHMgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gdXNlUmVkdWNlcldpdGhSZWR1eERldnRvb2xzSW1wbCA6IHVzZVJlZHVjZXJXaXRoUmVkdXhEZXZ0b29sc05vb3A7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1yZWR1Y2VyLXdpdGgtZGV2dG9vbHMuanMubWFwIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlIiwidXNlQ29udGV4dCIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwiaXNUaGVuYWJsZSIsIkFjdGlvblF1ZXVlQ29udGV4dCIsIm5vcm1hbGl6ZVJvdXRlclN0YXRlIiwidmFsIiwiTWFwIiwib2JqIiwia2V5IiwidmFsdWUiLCJlbnRyaWVzIiwiJCR0eXBlb2YiLCJ0b1N0cmluZyIsIl9idW5kbGVyQ29uZmlnIiwiaGFzT3duUHJvcGVydHkiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJ1c2VVbndyYXBTdGF0ZSIsInN0YXRlIiwicmVzdWx0IiwidXNlUmVkdWNlcldpdGhSZWR1eERldnRvb2xzTm9vcCIsImluaXRpYWxTdGF0ZSIsInVzZVJlZHVjZXJXaXRoUmVkdXhEZXZ0b29sc0ltcGwiLCJzZXRTdGF0ZSIsInVzZVN0YXRlIiwiYWN0aW9uUXVldWUiLCJFcnJvciIsImRldnRvb2xzQ29ubmVjdGlvblJlZiIsImVuYWJsZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwid2luZG93IiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyIsImNvbm5lY3QiLCJpbnN0YW5jZUlkIiwibmFtZSIsImluaXQiLCJkZXZUb29sc0luc3RhbmNlIiwiZGlzcGF0Y2giLCJhY3Rpb24iLCJzeW5jIiwicmVzb2x2ZWRTdGF0ZSIsInNlbmQiLCJ0eXBlIiwidXNlUmVkdWNlcldpdGhSZWR1eERldnRvb2xzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/components/use-reducer-with-devtools.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/dev/error-overlay/format-webpack-messages.js":
-/*!********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/dev/error-overlay/format-webpack-messages.js ***!
- \********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ formatWebpackMessages)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/../../node_modules/next/dist/compiled/strip-ansi/index.js\");\n/* harmony import */ var next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_0__);\n/**\nMIT License\n\nCopyright (c) 2015-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/ \n// This file is based on https://github.com/facebook/create-react-app/blob/7b1a32be6ec9f99a6c9a3c66813f3ac09c4736b9/packages/react-dev-utils/formatWebpackMessages.js\n// It's been edited to remove chalk and CRA-specific logic\nconst friendlySyntaxErrorLabel = \"Syntax error:\";\nconst WEBPACK_BREAKING_CHANGE_POLYFILLS = \"\\n\\nBREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.\";\nfunction isLikelyASyntaxError(message) {\n return next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_0___default()(message).includes(friendlySyntaxErrorLabel);\n}\nlet hadMissingSassError = false;\n// Cleans up webpack error messages.\nfunction formatMessage(message, verbose, importTraceNote) {\n // TODO: Replace this once webpack 5 is stable\n if (typeof message === \"object\" && message.message) {\n const filteredModuleTrace = message.moduleTrace && message.moduleTrace.filter((trace)=>!/next-(middleware|client-pages|route|edge-function)-loader\\.js/.test(trace.originName));\n let body = message.message;\n const breakingChangeIndex = body.indexOf(WEBPACK_BREAKING_CHANGE_POLYFILLS);\n if (breakingChangeIndex >= 0) {\n body = body.slice(0, breakingChangeIndex);\n }\n message = (message.moduleName ? next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_0___default()(message.moduleName) + \"\\n\" : \"\") + (message.file ? next_dist_compiled_strip_ansi__WEBPACK_IMPORTED_MODULE_0___default()(message.file) + \"\\n\" : \"\") + body + (message.details && verbose ? \"\\n\" + message.details : \"\") + (filteredModuleTrace && filteredModuleTrace.length ? (importTraceNote || \"\\n\\nImport trace for requested module:\") + filteredModuleTrace.map((trace)=>\"\\n\" + trace.moduleName).join(\"\") : \"\") + (message.stack && verbose ? \"\\n\" + message.stack : \"\");\n }\n let lines = message.split(\"\\n\");\n // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n lines = lines.filter((line)=>!/Module [A-z ]+\\(from/.test(line));\n // Transform parsing error into syntax error\n // TODO: move this to our ESLint formatter?\n lines = lines.map((line)=>{\n const parsingError = /Line (\\d+):(?:(\\d+):)?\\s*Parsing error: (.+)$/.exec(line);\n if (!parsingError) {\n return line;\n }\n const [, errorLine, errorColumn, errorMessage] = parsingError;\n return friendlySyntaxErrorLabel + \" \" + errorMessage + \" (\" + errorLine + \":\" + errorColumn + \")\";\n });\n message = lines.join(\"\\n\");\n // Smoosh syntax errors (commonly found in CSS)\n message = message.replace(/SyntaxError\\s+\\((\\d+):(\\d+)\\)\\s*(.+?)\\n/g, \"\" + friendlySyntaxErrorLabel + \" $3 ($1:$2)\\n\");\n // Clean up export errors\n message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$2'.\");\n message = message.replace(/^.*export 'default' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$2' does not contain a default export (imported as '$1').\");\n message = message.replace(/^.*export '(.+?)' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$3' (imported as '$2').\");\n lines = message.split(\"\\n\");\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === \"\") {\n lines.splice(1, 1);\n }\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].indexOf(\"Module not found: \") === 0) {\n lines = [\n lines[0],\n lines[1].replace(\"Error: \", \"\").replace(\"Module not found: Cannot find file:\", \"Cannot find file:\"),\n ...lines.slice(2)\n ];\n }\n // Add helpful message for users trying to use Sass for the first time\n if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {\n // ./file.module.scss (<<loader info>>) => ./file.module.scss\n const firstLine = lines[0].split(\"!\");\n lines[0] = firstLine[firstLine.length - 1];\n lines[1] = \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\";\n lines[1] += \"Run `npm i sass` or `yarn add sass` inside your workspace.\\n\";\n lines[1] += \"\\nLearn more: https://nextjs.org/docs/messages/install-sass\";\n // dispose of unhelpful stack trace\n lines = lines.slice(0, 2);\n hadMissingSassError = true;\n } else if (hadMissingSassError && message.match(/(sass-loader|resolve-url-loader: CSS error)/)) {\n // dispose of unhelpful stack trace following missing sass module\n lines = [];\n }\n if (!verbose) {\n message = lines.join(\"\\n\");\n // Internal stacks are generally useless so we strip them... with the\n // exception of stacks containing `webpack:` because they're normally\n // from user code generated by Webpack. For more information see\n // https://github.com/facebook/create-react-app/pull/1050\n message = message.replace(/^\\s*at\\s((?!webpack:).)*:\\d+:\\d+[\\s)]*(\\n|$)/gm, \"\") // at ... ...:x:y\n ;\n message = message.replace(/^\\s*at\\s<anonymous>(\\n|$)/gm, \"\") // at <anonymous>\n ;\n message = message.replace(/File was processed with these loaders:\\n(.+[\\\\/](next[\\\\/]dist[\\\\/].+|@next[\\\\/]react-refresh-utils[\\\\/]loader)\\.js\\n)*You may need an additional loader to handle the result of these loaders.\\n/g, \"\");\n lines = message.split(\"\\n\");\n }\n // Remove duplicated newlines\n lines = lines.filter((line, index, arr)=>index === 0 || line.trim() !== \"\" || line.trim() !== arr[index - 1].trim());\n // Reassemble the message\n message = lines.join(\"\\n\");\n return message.trim();\n}\nfunction formatWebpackMessages(json, verbose) {\n const formattedErrors = json.errors.map((message)=>{\n const isUnknownNextFontError = message.message.includes(\"An error occured in `next/font`.\");\n return formatMessage(message, isUnknownNextFontError || verbose);\n });\n const formattedWarnings = json.warnings.map((message)=>{\n return formatMessage(message, verbose);\n });\n // Reorder errors to put the most relevant ones first.\n let reactServerComponentsError = -1;\n for(let i = 0; i < formattedErrors.length; i++){\n const error = formattedErrors[i];\n if (error.includes(\"ReactServerComponentsError\")) {\n reactServerComponentsError = i;\n break;\n }\n }\n // Move the reactServerComponentsError to the top if it exists\n if (reactServerComponentsError !== -1) {\n const error = formattedErrors.splice(reactServerComponentsError, 1);\n formattedErrors.unshift(error[0]);\n }\n const result = {\n ...json,\n errors: formattedErrors,\n warnings: formattedWarnings\n };\n if (!verbose && result.errors.some(isLikelyASyntaxError)) {\n // If there are any syntax errors, show just them.\n result.errors = result.errors.filter(isLikelyASyntaxError);\n result.warnings = [];\n }\n return result;\n} //# sourceMappingURL=format-webpack-messages.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2Rldi9lcnJvci1vdmVybGF5L2Zvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBLEdBQXlEO0FBQ3pELHFLQUFxSztBQUNySywwREFBMEQ7QUFDMUQsTUFBTUMsMkJBQTJCO0FBQ2pDLE1BQU1DLG9DQUFvQztBQUMxQyxTQUFTQyxxQkFBcUJDLE9BQU87SUFDakMsT0FBT0osb0VBQVNBLENBQUNJLFNBQVNDLFFBQVEsQ0FBQ0o7QUFDdkM7QUFDQSxJQUFJSyxzQkFBc0I7QUFDMUIsb0NBQW9DO0FBQ3BDLFNBQVNDLGNBQWNILE9BQU8sRUFBRUksT0FBTyxFQUFFQyxlQUFlO0lBQ3BELDhDQUE4QztJQUM5QyxJQUFJLE9BQU9MLFlBQVksWUFBWUEsUUFBUUEsT0FBTyxFQUFFO1FBQ2hELE1BQU1NLHNCQUFzQk4sUUFBUU8sV0FBVyxJQUFJUCxRQUFRTyxXQUFXLENBQUNDLE1BQU0sQ0FBQyxDQUFDQyxRQUFRLENBQUMsZ0VBQWdFQyxJQUFJLENBQUNELE1BQU1FLFVBQVU7UUFDN0ssSUFBSUMsT0FBT1osUUFBUUEsT0FBTztRQUMxQixNQUFNYSxzQkFBc0JELEtBQUtFLE9BQU8sQ0FBQ2hCO1FBQ3pDLElBQUllLHVCQUF1QixHQUFHO1lBQzFCRCxPQUFPQSxLQUFLRyxLQUFLLENBQUMsR0FBR0Y7UUFDekI7UUFDQWIsVUFBVSxDQUFDQSxRQUFRZ0IsVUFBVSxHQUFHcEIsb0VBQVNBLENBQUNJLFFBQVFnQixVQUFVLElBQUksT0FBTyxFQUFDLElBQU1oQixDQUFBQSxRQUFRaUIsSUFBSSxHQUFHckIsb0VBQVNBLENBQUNJLFFBQVFpQixJQUFJLElBQUksT0FBTyxFQUFDLElBQUtMLE9BQVFaLENBQUFBLFFBQVFrQixPQUFPLElBQUlkLFVBQVUsT0FBT0osUUFBUWtCLE9BQU8sR0FBRyxFQUFDLElB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Q1gsR0FBR1YsSUFBSTtRQUNQRSxRQUFRRDtRQUNSSSxVQUFVRDtJQUNkO0lBQ0EsSUFBSSxDQUFDdkMsV0FBVzZDLE9BQU9SLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDbkQsdUJBQXVCO1FBQ3RELGtEQUFrRDtRQUNsRGtELE9BQU9SLE1BQU0sR0FBR1EsT0FBT1IsTUFBTSxDQUFDakMsTUFBTSxDQUFDVDtRQUNyQ2tELE9BQU9MLFFBQVEsR0FBRyxFQUFFO0lBQ3hCO0lBQ0EsT0FBT0s7QUFDWCxFQUVBLG1EQUFtRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2Rldi9lcnJvci1vdmVybGF5L2Zvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLmpzPzA4MDAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG5NSVQgTGljZW5zZVxuXG5Db3B5cmlnaHQgKGMpIDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cblxuUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxub2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xudG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG5mdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG5UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG5BVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG5MSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcblNPRlRXQVJFLlxuKi8gaW1wb3J0IHN0cmlwQW5zaSBmcm9tIFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIjtcbi8vIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcC9ibG9iLzdiMWEzMmJlNmVjOWY5OWE2YzlhM2M2NjgxM2YzYWMwOWM0NzM2YjkvcGFja2FnZXMvcmVhY3QtZGV2LXV0aWxzL2Zvcm1hdFdlYnBhY2tNZXNzYWdlcy5qc1xuLy8gSXQncyBiZWVuIGVkaXRlZCB0byByZW1vdmUgY2hhbGsgYW5kIENSQS1zcGVjaWZpYyBsb2dpY1xuY29uc3QgZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsID0gXCJTeW50YXggZXJyb3I6XCI7XG5jb25zdCBXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMgPSBcIlxcblxcbkJSRUFLSU5HIENIQU5HRTogd2VicGFjayA8IDUgdXNlZCB0byBpbmNsdWRlIHBvbHlmaWxscyBmb3Igbm9kZS5qcyBjb3JlIG1vZHVsZXMgYnkgZGVmYXVsdC5cIjtcbmZ1bmN0aW9uIGlzTGlrZWx5QVN5bnRheEVycm9yKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gc3RyaXBBbnNpKG1lc3NhZ2UpLmluY2x1ZGVzKGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCk7XG59XG5sZXQgaGFkTWlzc2luZ1Nhc3NFcnJvciA9IGZhbHNlO1xuLy8gQ2xlYW5zIHVwIHdlYnBhY2sgZXJyb3IgbWVzc2FnZXMuXG5mdW5jdGlvbiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UsIHZlcmJvc2UsIGltcG9ydFRyYWNlTm90ZSkge1xuICAgIC8vIFRPRE86IFJlcGxhY2UgdGhpcyBvbmNlIHdlYnBhY2sgNSBpcyBzdGFibGVcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09IFwib2JqZWN0XCIgJiYgbWVzc2FnZS5tZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkTW9kdWxlVHJhY2UgPSBtZXNzYWdlLm1vZHVsZVRyYWNlICYmIG1lc3NhZ2UubW9kdWxlVHJhY2UuZmlsdGVyKCh0cmFjZSk9PiEvbmV4dC0obWlkZGxld2FyZXxjbGllbnQtcGFnZXN8cm91dGV8ZWRnZS1mdW5jdGlvbiktbG9hZGVyXFwuanMvLnRlc3QodHJhY2Uub3JpZ2luTmFtZSkpO1xuICAgICAgICBsZXQgYm9keSA9IG1lc3NhZ2UubWVzc2FnZTtcbiAgICAgICAgY29uc3QgYnJlYWtpbmdDaGFuZ2VJbmRleCA9IGJvZHkuaW5kZXhPZihXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMpO1xuICAgICAgICBpZiAoYnJlYWtpbmdDaGFuZ2VJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBib2R5ID0gYm9keS5zbGljZSgwLCBicmVha2luZ0NoYW5nZUluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICBtZXNzYWdlID0gKG1lc3NhZ2UubW9kdWxlTmFtZSA/IHN0cmlwQW5zaShtZXNzYWdlLm1vZHVsZU5hbWUpICsgXCJcXG5cIiA6IFwiXCIpICsgKG1lc3NhZ2UuZmlsZSA/IHN0cmlwQW5zaShtZXNzYWdlLmZpbGUpICsgXCJcXG5cIiA6IFwiXCIpICsgYm9keSArIChtZXNzYWdlLmRldGFpbHMgJiYgdmVyYm9zZSA/IFwiXFxuXCIgKyBtZXNzYWdlLmRldGFpbHMgOiBcIlwiKSArIChmaWx0ZXJlZE1vZHVsZVRyYWNlICYmIGZpbHRlcmVkTW9kdWxlVHJhY2UubGVuZ3RoID8gKGltcG9ydFRyYWNlTm90ZSB8fCBcIlxcblxcbkltcG9ydCB0cmFjZSBmb3IgcmVxdWVzdGVkIG1vZHVsZTpcIikgKyBmaWx0ZXJlZE1vZHVsZVRyYWNlLm1hcCgodHJhY2UpPT5cIlxcblwiICsgdHJhY2UubW9kdWxlTmFtZSkuam9pbihcIlwiKSA6IFwiXCIpICsgKG1lc3NhZ2Uuc3RhY2sgJiYgdmVyYm9zZSA/IFwiXFxuXCIgKyBtZXNzYWdlLnN0YWNrIDogXCJcIik7XG4gICAgfVxuICAgIGxldCBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoXCJcXG5cIik7XG4gICAgLy8gU3RyaXAgV2VicGFjay1hZGRlZCBoZWFkZXJzIG9mZiBlcnJvcnMvd2FybmluZ3NcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvbWFzdGVyL2xpYi9Nb2R1bGVFcnJvci5qc1xuICAgIGxpbmVzID0gbGluZXMuZmlsdGVyKChsaW5lKT0+IS9Nb2R1bGUgW0EteiBdK1xcKGZyb20vLnRlc3QobGluZSkpO1xuICAgIC8vIFRyYW5zZm9ybSBwYXJzaW5nIGVycm9yIGludG8gc3ludGF4IGVycm9yXG4gICAgLy8gVE9ETzogbW92ZSB0aGlzIHRvIG91ciBFU0xpbnQgZm9ybWF0dGVyP1xuICAgIGxpbmVzID0gbGluZXMubWFwKChsaW5lKT0+e1xuICAgICAgICBjb25zdCBwYXJzaW5nRXJyb3IgPSAvTGluZSAoXFxkKyk6KD86KFxcZCspOik/XFxzKlBhcnNpbmcgZXJyb3I6ICguKykkLy5leGVjKGxpbmUpO1xuICAgICAgICBpZiAoIXBhcnNpbmdFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgWywgZXJyb3JMaW5lLCBlcnJvckNvbHVtbiwgZXJyb3JNZXNzYWdlXSA9IHBhcnNpbmdFcnJvcjtcbiAgICAgICAgcmV0dXJuIGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCArIFwiIFwiICsgZXJyb3JNZXNzYWdlICsgXCIgKFwiICsgZXJyb3JMaW5lICsgXCI6XCIgKyBlcnJvckNvbHVtbiArIFwiKVwiO1xuICAgIH0pO1xuICAgIG1lc3NhZ2UgPSBsaW5lcy5qb2luKFwiXFxuXCIpO1xuICAgIC8vIFNtb29zaCBzeW50YXggZXJyb3JzIChjb21tb25seSBmb3VuZCBpbiBDU1MpXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvU3ludGF4RXJyb3JcXHMrXFwoKFxcZCspOihcXGQrKVxcKVxccyooLis/KVxcbi9nLCBcIlwiICsgZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsICsgXCIgJDMgKCQxOiQyKVxcblwiKTtcbiAgICAvLyBDbGVhbiB1cCBleHBvcnQgZXJyb3JzXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXi4qZXhwb3J0ICcoLis/KScgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLCBcIkF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMScgaXMgbm90IGV4cG9ydGVkIGZyb20gJyQyJy5cIik7XG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXi4qZXhwb3J0ICdkZWZhdWx0JyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSwgXCJBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDInIGRvZXMgbm90IGNvbnRhaW4gYSBkZWZhdWx0IGV4cG9ydCAoaW1wb3J0ZWQgYXMgJyQxJykuXCIpO1xuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL14uKmV4cG9ydCAnKC4rPyknIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLCBcIkF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMScgaXMgbm90IGV4cG9ydGVkIGZyb20gJyQzJyAoaW1wb3J0ZWQgYXMgJyQyJykuXCIpO1xuICAgIGxpbmVzID0gbWVzc2FnZS5zcGxpdChcIlxcblwiKTtcbiAgICAvLyBSZW1vdmUgbGVhZGluZyBuZXdsaW5lXG4gICAgaWYgKGxpbmVzLmxlbmd0aCA+IDIgJiYgbGluZXNbMV0udHJpbSgpID09PSBcIlwiKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSgxLCAxKTtcbiAgICB9XG4gICAgLy8gQ2xlYW5zIHVwIHZlcmJvc2UgXCJtb2R1bGUgbm90IGZvdW5kXCIgbWVzc2FnZXMgZm9yIGZpbGVzIGFuZCBwYWNrYWdlcy5cbiAgICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0uaW5kZXhPZihcIk1vZHVsZSBub3QgZm91bmQ6IFwiKSA9PT0gMCkge1xuICAgICAgICBsaW5lcyA9IFtcbiAgICAgICAgICAgIGxpbmVzWzBdLFxuICAgICAgICAgICAgbGluZXNbMV0ucmVwbGFjZShcIkVycm9yOiBcIiwgXCJcIikucmVwbGFjZShcIk1vZHVsZSBub3QgZm91bmQ6IENhbm5vdCBmaW5kIGZpbGU6XCIsIFwiQ2Fubm90IGZpbmQgZmlsZTpcIiksXG4gICAgICAgICAgICAuLi5saW5lcy5zbGljZSgyKVxuICAgICAgICBdO1xuICAgIH1cbiAgICAvLyBBZGQgaGVscGZ1bCBtZXNzYWdlIGZvciB1c2VycyB0cnlpbmcgdG8gdXNlIFNhc3MgZm9yIHRoZSBmaXJzdCB0aW1lXG4gICAgaWYgKGxpbmVzWzFdICYmIGxpbmVzWzFdLm1hdGNoKC9DYW5ub3QgZmluZCBtb2R1bGUuK3Nhc3MvKSkge1xuICAgICAgICAvLyAuL2ZpbGUubW9kdWxlLnNjc3MgKDw8bG9hZGVyIGluZm8+PikgPT4gLi9maWxlLm1vZHVsZS5zY3NzXG4gICAgICAgIGNvbnN0IGZpcnN0TGluZSA9IGxpbmVzWzBdLnNwbGl0KFwiIVwiKTtcbiAgICAgICAgbGluZXNbMF0gPSBmaXJzdExpbmVbZmlyc3RMaW5lLmxlbmd0aCAtIDFdO1xuICAgICAgICBsaW5lc1sxXSA9IFwiVG8gdXNlIE5leHQuanMnIGJ1aWx0LWluIFNhc3Mgc3VwcG9ydCwgeW91IGZpcnN0IG5lZWQgdG8gaW5zdGFsbCBgc2Fzc2AuXFxuXCI7XG4gICAgICAgIGxpbmVzWzFdICs9IFwiUnVuIGBucG0gaSBzYXNzYCBvciBgeWFybiBhZGQgc2Fzc2AgaW5zaWRlIHlvdXIgd29ya3NwYWNlLlxcblwiO1xuICAgICAgICBsaW5lc1sxXSArPSBcIlxcbkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2luc3RhbGwtc2Fzc1wiO1xuICAgICAgICAvLyBkaXNwb3NlIG9mIHVuaGVscGZ1bCBzdGFjayB0cmFjZVxuICAgICAgICBsaW5lcyA9IGxpbmVzLnNsaWNlKDAsIDIpO1xuICAgICAgICBoYWRNaXNzaW5nU2Fzc0Vycm9yID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGhhZE1pc3NpbmdTYXNzRXJyb3IgJiYgbWVzc2FnZS5tYXRjaCgvKHNhc3MtbG9hZGVyfHJlc29sdmUtdXJsLWxvYWRlcjogQ1NTIGVycm9yKS8pKSB7XG4gICAgICAgIC8vIGRpc3Bvc2Ugb2YgdW5oZWxwZnVsIHN0YWNrIHRyYWNlIGZvbGxvd2luZyBtaXNzaW5nIHNhc3MgbW9kdWxlXG4gICAgICAgIGxpbmVzID0gW107XG4gICAgfVxuICAgIGlmICghdmVyYm9zZSkge1xuICAgICAgICBtZXNzYWdlID0gbGluZXMuam9pbihcIlxcblwiKTtcbiAgICAgICAgLy8gSW50ZXJuYWwgc3RhY2tzIGFyZSBnZW5lcmFsbHkgdXNlbGVzcyBzbyB3ZSBzdHJpcCB0aGVtLi4uIHdpdGggdGhlXG4gICAgICAgIC8vIGV4Y2VwdGlvbiBvZiBzdGFja3MgY29udGFpbmluZyBgd2VicGFjazpgIGJlY2F1c2UgdGhleSdyZSBub3JtYWxseVxuICAgICAgICAvLyBmcm9tIHVzZXIgY29kZSBnZW5lcmF0ZWQgYnkgV2VicGFjay4gRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL3B1bGwvMTA1MFxuICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eXFxzKmF0XFxzKCg/IXdlYnBhY2s6KS4pKjpcXGQrOlxcZCtbXFxzKV0qKFxcbnwkKS9nbSwgXCJcIikgLy8gYXQgLi4uIC4uLjp4OnlcbiAgICAgICAgO1xuICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eXFxzKmF0XFxzPGFub255bW91cz4oXFxufCQpL2dtLCBcIlwiKSAvLyBhdCA8YW5vbnltb3VzPlxuICAgICAgICA7XG4gICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL0ZpbGUgd2FzIHByb2Nlc3NlZCB3aXRoIHRoZXNlIGxvYWRlcnM6XFxuKC4rW1xcXFwvXShuZXh0W1xcXFwvXWRpc3RbXFxcXC9dLit8QG5leHRbXFxcXC9dcmVhY3QtcmVmcmVzaC11dGlsc1tcXFxcL11sb2FkZXIpXFwuanNcXG4pKllvdSBtYXkgbmVlZCBhbiBhZGRpdGlvbmFsIGxvYWRlciB0byBoYW5kbGUgdGhlIHJlc3VsdCBvZiB0aGVzZSBsb2FkZXJzLlxcbi9nLCBcIlwiKTtcbiAgICAgICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KFwiXFxuXCIpO1xuICAgIH1cbiAgICAvLyBSZW1vdmUgZHVwbGljYXRlZCBuZXdsaW5lc1xuICAgIGxpbmVzID0gbGluZXMuZmlsdGVyKChsaW5lLCBpbmRleCwgYXJyKT0+aW5kZXggPT09IDAgfHwgbGluZS50cmltKCkgIT09IFwiXCIgfHwgbGluZS50cmltKCkgIT09IGFycltpbmRleCAtIDFdLnRyaW0oKSk7XG4gICAgLy8gUmVhc3NlbWJsZSB0aGUgbWVzc2FnZVxuICAgIG1lc3NhZ2UgPSBsaW5lcy5qb2luKFwiXFxuXCIpO1xuICAgIHJldHVybiBtZXNzYWdlLnRyaW0oKTtcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvcm1hdFdlYnBhY2tNZXNzYWdlcyhqc29uLCB2ZXJib3NlKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0ganNvbi5lcnJvcnMubWFwKChtZXNzYWdlKT0+e1xuICAgICAgICBjb25zdCBpc1Vua25vd25OZXh0Rm9udEVycm9yID0gbWVzc2FnZS5tZXNzYWdlLmluY2x1ZGVzKFwiQW4gZXJyb3Igb2NjdXJlZCBpbiBgbmV4dC9mb250YC5cIik7XG4gICAgICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UsIGlzVW5rbm93bk5leHRGb250RXJyb3IgfHwgdmVyYm9zZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZm9ybWF0dGVkV2FybmluZ3MgPSBqc29uLndhcm5pbmdzLm1hcCgobWVzc2FnZSk9PntcbiAgICAgICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgdmVyYm9zZSk7XG4gICAgfSk7XG4gICAgLy8gUmVvcmRlciBlcnJvcnMgdG8gcHV0IHRoZSBtb3N0IHJlbGV2YW50IG9uZXMgZmlyc3QuXG4gICAgbGV0IHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yID0gLTE7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZEVycm9ycy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZm9ybWF0dGVkRXJyb3JzW2ldO1xuICAgICAgICBpZiAoZXJyb3IuaW5jbHVkZXMoXCJSZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvclwiKSkge1xuICAgICAgICAgICAgcmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTW92ZSB0aGUgcmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgdG8gdGhlIHRvcCBpZiBpdCBleGlzdHNcbiAgICBpZiAocmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZm9ybWF0dGVkRXJyb3JzLnNwbGljZShyZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciwgMSk7XG4gICAgICAgIGZvcm1hdHRlZEVycm9ycy51bnNoaWZ0KGVycm9yWzBdKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAuLi5qc29uLFxuICAgICAgICBlcnJvcnM6IGZvcm1hdHRlZEVycm9ycyxcbiAgICAgICAgd2FybmluZ3M6IGZvcm1hdHRlZFdhcm5pbmdzXG4gICAgfTtcbiAgICBpZiAoIXZlcmJvc2UgJiYgcmVzdWx0LmVycm9ycy5zb21lKGlzTGlrZWx5QVN5bnRheEVycm9yKSkge1xuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IHN5bnRheCBlcnJvcnMsIHNob3cganVzdCB0aGVtLlxuICAgICAgICByZXN1bHQuZXJyb3JzID0gcmVzdWx0LmVycm9ycy5maWx0ZXIoaXNMaWtlbHlBU3ludGF4RXJyb3IpO1xuICAgICAgICByZXN1bHQud2FybmluZ3MgPSBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LXdlYnBhY2stbWVzc2FnZXMuanMubWFwIl0sIm5hbWVzIjpbInN0cmlwQW5zaSIsImZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCIsIldFQlBBQ0tfQlJFQUtJTkdfQ0hBTkdFX1BPTFlGSUxMUyIsImlzTGlrZWx5QVN5bnRheEVycm9yIiwibWVzc2FnZSIsImluY2x1ZGVzIiwiaGFkTWlzc2luZ1Nhc3NFcnJvciIsImZvcm1hdE1lc3NhZ2UiLCJ2ZXJib3NlIiwiaW1wb3J0VHJhY2VOb3RlIiwiZmlsdGVyZWRNb2R1bGVUcmFjZSIsIm1vZHVsZVRyYWNlIiwiZmlsdGVyIiwidHJhY2UiLCJ0ZXN0Iiwib3JpZ2luTmFtZSIsImJvZHkiLCJicmVha2luZ0NoYW5nZUluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwibW9kdWxlTmFtZSIsImZpbGUiLCJkZXRhaWxzIiwibGVuZ3RoIiwibWFwIiwiam9pbiIsInN0YWNrIiwibGluZXMiLCJzcGxpdCIsImxpbmUiLCJwYXJzaW5nRXJyb3IiLCJleGVjIiwiZXJyb3JMaW5lIiwiZXJyb3JDb2x1bW4iLCJlcnJvck1lc3NhZ2UiLCJyZXBsYWNlIiwidHJpbSIsInNwbGljZSIsIm1hdGNoIiwiZmlyc3RMaW5lIiwiaW5kZXgiLCJhcnIiLCJmb3JtYXRXZWJwYWNrTWVzc2FnZXMiLCJqc29uIiwiZm9ybWF0dGVkRXJyb3JzIiwiZXJyb3JzIiwiaXNVbmtub3duTmV4dEZvbnRFcnJvciIsImZvcm1hdHRlZFdhcm5pbmdzIiwid2FybmluZ3MiLCJyZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciIsImkiLCJlcnJvciIsInVuc2hpZnQiLCJyZXN1bHQiLCJzb21lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/dev/error-overlay/format-webpack-messages.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/dev/noop-turbopack-hmr.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/dev/noop-turbopack-hmr.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ connect: () => (/* binding */ connect)\n/* harmony export */ });\n// The Turbopack HMR client can't be properly omitted at the moment (WEB-1589),\n// so instead we remap its import to this file in webpack builds.\nfunction connect() {} //# sourceMappingURL=noop-turbopack-hmr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2Rldi9ub29wLXR1cmJvcGFjay1obXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLCtFQUErRTtBQUMvRSxpRUFBaUU7QUFDMUQsU0FBU0EsV0FBVyxFQUUzQiw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9kZXYvbm9vcC10dXJib3BhY2staG1yLmpzPzQ3ZjciXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhlIFR1cmJvcGFjayBITVIgY2xpZW50IGNhbid0IGJlIHByb3Blcmx5IG9taXR0ZWQgYXQgdGhlIG1vbWVudCAoV0VCLTE1ODkpLFxuLy8gc28gaW5zdGVhZCB3ZSByZW1hcCBpdHMgaW1wb3J0IHRvIHRoaXMgZmlsZSBpbiB3ZWJwYWNrIGJ1aWxkcy5cbmV4cG9ydCBmdW5jdGlvbiBjb25uZWN0KCkge31cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9vcC10dXJib3BhY2staG1yLmpzLm1hcCJdLCJuYW1lcyI6WyJjb25uZWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/dev/noop-turbopack-hmr.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/has-base-path.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/has-base-path.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasBasePath: () => (/* binding */ hasBasePath)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils_path_has_prefix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/router/utils/path-has-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\");\n\nconst basePath = false || \"\";\nfunction hasBasePath(path) {\n return (0,_shared_lib_router_utils_path_has_prefix__WEBPACK_IMPORTED_MODULE_0__.pathHasPrefix)(path, basePath);\n} //# sourceMappingURL=has-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2hhcy1iYXNlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMkU7QUFDM0UsTUFBTUMsV0FBV0MsTUFBa0MsSUFBSTtBQUNoRCxTQUFTRyxZQUFZQyxJQUFJO0lBQzVCLE9BQU9OLHVGQUFhQSxDQUFDTSxNQUFNTDtBQUMvQixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2hhcy1iYXNlLXBhdGguanM/YzJlMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeFwiO1xuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8IFwiXCI7XG5leHBvcnQgZnVuY3Rpb24gaGFzQmFzZVBhdGgocGF0aCkge1xuICAgIHJldHVybiBwYXRoSGFzUHJlZml4KHBhdGgsIGJhc2VQYXRoKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFzLWJhc2UtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsicGF0aEhhc1ByZWZpeCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJoYXNCYXNlUGF0aCIsInBhdGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/has-base-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/image-component.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/image-component.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Image: () => (/* binding */ Image)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n/* harmony import */ var _shared_lib_head__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/lib/head */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/head.js\");\n/* harmony import */ var _shared_lib_get_img_props__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/lib/get-img-props */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/get-img-props.js\");\n/* harmony import */ var _shared_lib_image_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/lib/image-config */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config.js\");\n/* harmony import */ var _shared_lib_image_config_context_shared_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../shared/lib/image-config-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_utils_warn_once__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../shared/lib/utils/warn-once */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js\");\n/* harmony import */ var _shared_lib_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router-context.shared-runtime.js\");\n/* harmony import */ var next_dist_shared_lib_image_loader__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/dist/shared/lib/image-loader */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/image-loader.js\");\n/* __next_internal_client_entry_do_not_use__ Image auto */ \n\n\n\n\n\n\n\n\n// @ts-ignore - This is replaced by webpack alias\n\n// This is replaced by webpack define plugin\nconst configEnv = {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[]};\nif (true) {\n globalThis.__NEXT_IMAGE_IMPORTED = true;\n}\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized) {\n const src = img == null ? void 0 : img.src;\n if (!img || img[\"data-loaded-src\"] === src) {\n return;\n }\n img[\"data-loaded-src\"] = src;\n const p = \"decode\" in img ? img.decode() : Promise.resolve();\n p.catch(()=>{}).then(()=>{\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return;\n }\n if (placeholder !== \"empty\") {\n setBlurComplete(true);\n }\n if (onLoadRef == null ? void 0 : onLoadRef.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event(\"load\");\n Object.defineProperty(event, \"target\", {\n writable: false,\n value: img\n });\n let prevented = false;\n let stopped = false;\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: ()=>prevented,\n isPropagationStopped: ()=>stopped,\n persist: ()=>{},\n preventDefault: ()=>{\n prevented = true;\n event.preventDefault();\n },\n stopPropagation: ()=>{\n stopped = true;\n event.stopPropagation();\n }\n });\n }\n if (onLoadingCompleteRef == null ? void 0 : onLoadingCompleteRef.current) {\n onLoadingCompleteRef.current(img);\n }\n if (true) {\n const origSrc = new URL(src, \"http://n\").searchParams.get(\"url\") || src;\n if (img.getAttribute(\"data-nimg\") === \"fill\") {\n if (!unoptimized && (!img.getAttribute(\"sizes\") || img.getAttribute(\"sizes\") === \"100vw\")) {\n let widthViewportRatio = img.getBoundingClientRect().width / window.innerWidth;\n if (widthViewportRatio < 0.6) {\n (0,_shared_lib_utils_warn_once__WEBPACK_IMPORTED_MODULE_7__.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement);\n const valid = [\n \"absolute\",\n \"fixed\",\n \"relative\"\n ];\n if (!valid.includes(position)) {\n (0,_shared_lib_utils_warn_once__WEBPACK_IMPORTED_MODULE_7__.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" and parent element with invalid \"position\". Provided \"' + position + '\" should be one of ' + valid.map(String).join(\",\") + \".\");\n }\n }\n if (img.height === 0) {\n (0,_shared_lib_utils_warn_once__WEBPACK_IMPORTED_MODULE_7__.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.');\n }\n }\n const heightModified = img.height.toString() !== img.getAttribute(\"height\");\n const widthModified = img.width.toString() !== img.getAttribute(\"width\");\n if (heightModified && !widthModified || !heightModified && widthModified) {\n (0,_shared_lib_utils_warn_once__WEBPACK_IMPORTED_MODULE_7__.warnOnce)('Image with src \"' + origSrc + '\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles \\'width: \"auto\"\\' or \\'height: \"auto\"\\' to maintain the aspect ratio.');\n }\n }\n });\n}\nfunction getDynamicProps(fetchPriority) {\n const [majorStr, minorStr] = react__WEBPACK_IMPORTED_MODULE_1__.version.split(\".\", 2);\n const major = parseInt(majorStr, 10);\n const minor = parseInt(minorStr, 10);\n if (major > 18 || major === 18 && minor >= 3) {\n // In React 18.3.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return {\n fetchPriority\n };\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return {\n fetchpriority: fetchPriority\n };\n}\nconst ImageElement = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((param, forwardedRef)=>{\n let { src, srcSet, sizes, height, width, decoding, className, style, fetchPriority, placeholder, loading, unoptimized, fill, onLoadRef, onLoadingCompleteRef, setBlurComplete, setShowAltText, onLoad, onError, ...rest } = param;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"img\", {\n ...rest,\n ...getDynamicProps(fetchPriority),\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading: loading,\n width: width,\n height: height,\n decoding: decoding,\n \"data-nimg\": fill ? \"fill\" : \"1\",\n className: className,\n style: style,\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes: sizes,\n srcSet: srcSet,\n src: src,\n ref: (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((img)=>{\n if (forwardedRef) {\n if (typeof forwardedRef === \"function\") forwardedRef(img);\n else if (typeof forwardedRef === \"object\") {\n // @ts-ignore - .current is read only it's usually assigned by react internally\n forwardedRef.current = img;\n }\n }\n if (!img) {\n return;\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src;\n }\n if (true) {\n if (!src) {\n console.error('Image is missing required \"src\" property:', img);\n }\n if (img.getAttribute(\"alt\") === null) {\n console.error('Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.');\n }\n }\n if (img.complete) {\n handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized);\n }\n }, [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n forwardedRef\n ]),\n onLoad: (event)=>{\n const img = event.currentTarget;\n handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized);\n },\n onError: (event)=>{\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true);\n if (placeholder !== \"empty\") {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true);\n }\n if (onError) {\n onError(event);\n }\n }\n });\n});\nfunction ImagePreload(param) {\n let { isAppRouter, imgAttributes } = param;\n const opts = {\n as: \"image\",\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority)\n };\n if (isAppRouter && react_dom__WEBPACK_IMPORTED_MODULE_2__.preload) {\n // See https://github.com/facebook/react/pull/26940\n react_dom__WEBPACK_IMPORTED_MODULE_2__.preload(imgAttributes.src, opts);\n return null;\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_lib_head__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: \"preload\",\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href: imgAttributes.srcSet ? undefined : imgAttributes.src,\n ...opts\n }, \"__nimg-\" + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes)\n });\n}\nconst Image = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const pagesRouter = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_shared_lib_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_8__.RouterContext);\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n const configContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_shared_lib_image_config_context_shared_runtime__WEBPACK_IMPORTED_MODULE_6__.ImageConfigContext);\n const config = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const c = configEnv || configContext || _shared_lib_image_config__WEBPACK_IMPORTED_MODULE_5__.imageConfigDefault;\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n return {\n ...c,\n allSizes,\n deviceSizes\n };\n }, [\n configContext\n ]);\n const { onLoad, onLoadingComplete } = props;\n const onLoadRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(onLoad);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n onLoadRef.current = onLoad;\n }, [\n onLoad\n ]);\n const onLoadingCompleteRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(onLoadingComplete);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n onLoadingCompleteRef.current = onLoadingComplete;\n }, [\n onLoadingComplete\n ]);\n const [blurComplete, setBlurComplete] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showAltText, setShowAltText] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const { props: imgAttributes, meta: imgMeta } = (0,_shared_lib_get_img_props__WEBPACK_IMPORTED_MODULE_4__.getImgProps)(props, {\n defaultLoader: next_dist_shared_lib_image_loader__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n imgConf: config,\n blurComplete,\n showAltText\n });\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ImageElement, {\n ...imgAttributes,\n unoptimized: imgMeta.unoptimized,\n placeholder: imgMeta.placeholder,\n fill: imgMeta.fill,\n onLoadRef: onLoadRef,\n onLoadingCompleteRef: onLoadingCompleteRef,\n setBlurComplete: setBlurComplete,\n setShowAltText: setShowAltText,\n ref: forwardedRef\n }),\n imgMeta.priority ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ImagePreload, {\n isAppRouter: isAppRouter,\n imgAttributes: imgAttributes\n }) : null\n ]\n });\n}); //# sourceMappingURL=image-component.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2ltYWdlLWNvbXBvbmVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7MkRBRXNGO0FBQzRCO0FBQ2pGO0FBQ0s7QUFDb0I7QUFDTTtBQUN1QjtBQUM5QjtBQUNtQjtBQUM1RSxpREFBaUQ7QUFDYTtBQUM5RCw0Q0FBNEM7QUFDNUMsTUFBTXVCLFlBQVlDLDBOQUE2QjtBQUMvQyxJQUFJLElBQTZCLEVBQUU7SUFDL0JHLFdBQVdDLHFCQUFxQixHQUFHO0FBQ3ZDO0FBQ0EsMEVBQTBFO0FBQzFFLGlEQUFpRDtBQUNqRCxTQUFTQyxjQUFjQyxHQUFHLEVBQUVDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxvQkFBb0IsRUFBRUMsZUFBZSxFQUFFQyxXQUFXO0lBQ2xHLE1BQU1DLE1BQU1OLE9BQU8sT0FBTyxLQUFLLElBQUlBLElBQUlNLEdBQUc7SUFDMUMsSUFBSSxDQUFDTixPQUFPQSxHQUFHLENBQUMsa0JBQWtCLEtBQUtNLEtBQUs7UUFDeEM7SUFDSjtJQUNBTixHQUFHLENBQUMsa0JBQWtCLEdBQUdNO0lBQ3pCLE1BQU1DLElBQUksWUFBWVAsTUFBTUEsSUFBSVEsTUFBTSxLQUFLQyxRQUFRQyxPQUFPO0lBQzFESCxFQUFFSSxLQUFLLENBQUMsS0FBSyxHQUFHQyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDWixJQUFJYSxhQUFhLElBQUksQ0FBQ2IsSUFBSWMsV0FBVyxFQUFFO1lBQ3hDLHdDQUF3QztZQUN4Qyx1QkFBdUI7WUFDdkIsc0NBQXNDO1lBQ3RDLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkI7UUFDSjtRQUNBLElBQUliLGdCQUFnQixTQUFTO1lBQ3pCRyxnQkFBZ0I7UUFDcEI7UUFDQSxJQUFJRixhQUFhLE9BQU8sS0FBSyxJQUFJQSxVQUFVYSxPQUFPLEVBQUU7WUFDaEQsK0NBQStDO1lBQy9DLDBDQUEwQztZQUMxQywyQ0FBMkM7WUFDM0MsTUFBTUMsUUFB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Q053QixVQUFVYSxPQUFPLEdBQUcwRDtJQUN4QixHQUFHO1FBQ0NBO0tBQ0g7SUFDRCxNQUFNdEUsdUJBQXVCMUIsNkNBQU1BLENBQUNnSTtJQUNwQy9ILGdEQUFTQSxDQUFDO1FBQ055QixxQkFBcUJZLE9BQU8sR0FBRzBGO0lBQ25DLEdBQUc7UUFDQ0E7S0FDSDtJQUNELE1BQU0sQ0FBQ0MsY0FBY3RHLGdCQUFnQixHQUFHdEIsK0NBQVFBLENBQUM7SUFDakQsTUFBTSxDQUFDNkgsYUFBYW5DLGVBQWUsR0FBRzFGLCtDQUFRQSxDQUFDO0lBQy9DLE1BQU0sRUFBRWlILE9BQU9iLGFBQWEsRUFBRTBCLE1BQU1DLE9BQU8sRUFBRSxHQUFHMUgsc0VBQVdBLENBQUM0RyxPQUFPO1FBQy9EdkcsYUFBYUEsMkVBQUFBO1FBQ2JzSCxTQUFTWjtRQUNUUTtRQUNBQztJQUNKO0lBQ0EsT0FBTyxXQUFXLEdBQUd0SSx1REFBS0EsQ0FBQ0UsdURBQVNBLEVBQUU7UUFDbENtSCxVQUFVO1lBQ04sV0FBVyxHQUFHdkgsc0RBQUlBLENBQUMyRixjQUFjO2dCQUM3QixHQUFHb0IsYUFBYTtnQkFDaEI3RSxhQUFhd0csUUFBUXhHLFdBQVc7Z0JBQ2hDSixhQUFhNEcsUUFBUTVHLFdBQVc7Z0JBQ2hDc0UsTUFBTXNDLFFBQVF0QyxJQUFJO2dCQUNsQnJFLFdBQVdBO2dCQUNYQyxzQkFBc0JBO2dCQUN0QkMsaUJBQWlCQTtnQkFDakJvRSxnQkFBZ0JBO2dCQUNoQkksS0FBS1o7WUFDVDtZQUNBNkMsUUFBUUUsUUFBUSxHQUFHLFdBQVcsR0FBRzVJLHNEQUFJQSxDQUFDNkcsY0FBYztnQkFDaERDLGFBQWFBO2dCQUNiQyxlQUFlQTtZQUNuQixLQUFLO1NBQ1I7SUFDTDtBQUNKLEdBQUcsQ0FFSCwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9pbWFnZS1jb21wb25lbnQuanM/YjJiZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbywgdXNlU3RhdGUsIGZvcndhcmRSZWYsIHZlcnNpb24gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgSGVhZCBmcm9tIFwiLi4vc2hhcmVkL2xpYi9oZWFkXCI7XG5pbXBvcnQgeyBnZXRJbWdQcm9wcyB9IGZyb20gXCIuLi9zaGFyZWQvbGliL2dldC1pbWctcHJvcHNcIjtcbmltcG9ydCB7IGltYWdlQ29uZmlnRGVmYXVsdCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL2ltYWdlLWNvbmZpZ1wiO1xuaW1wb3J0IHsgSW1hZ2VDb25maWdDb250ZXh0IH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlXCI7XG5pbXBvcnQgeyBSb3V0ZXJDb250ZXh0IH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbi8vIEB0cy1pZ25vcmUgLSBUaGlzIGlzIHJlcGxhY2VkIGJ5IHdlYnBhY2sgYWxpYXNcbmltcG9ydCBkZWZhdWx0TG9hZGVyIGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pbWFnZS1sb2FkZXJcIjtcbi8vIFRoaXMgaXMgcmVwbGFjZWQgYnkgd2VicGFjayBkZWZpbmUgcGx1Z2luXG5jb25zdCBjb25maWdFbnYgPSBwcm9jZXNzLmVudi5fX05FWFRfSU1BR0VfT1BUUztcbmlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgZ2xvYmFsVGhpcy5fX05FWFRfSU1BR0VfSU1QT1JURUQgPSB0cnVlO1xufVxuLy8gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8zOTc3NzgzMy8yNjY1MzUgZm9yIHdoeSB3ZSB1c2UgdGhpcyByZWZcbi8vIGhhbmRsZXIgaW5zdGVhZCBvZiB0aGUgaW1nJ3Mgb25Mb2FkIGF0dHJpYnV0ZS5cbmZ1bmN0aW9uIGhhbmRsZUxvYWRpbmcoaW1nLCBwbGFjZWhvbGRlciwgb25Mb2FkUmVmLCBvbkxvYWRpbmdDb21wbGV0ZVJlZiwgc2V0Qmx1ckNvbXBsZXRlLCB1bm9wdGltaXplZCkge1xuICAgIGNvbnN0IHNyYyA9IGltZyA9PSBudWxsID8gdm9pZCAwIDogaW1nLnNyYztcbiAgICBpZiAoIWltZyB8fCBpbWdbXCJkYXRhLWxvYWRlZC1zcmNcIl0gPT09IHNyYykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGltZ1tcImRhdGEtbG9hZGVkLXNyY1wiXSA9IHNyYztcbiAgICBjb25zdCBwID0gXCJkZWNvZGVcIiBpbiBpbWcgPyBpbWcuZGVjb2RlKCkgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBwLmNhdGNoKCgpPT57fSkudGhlbigoKT0+e1xuICAgICAgICBpZiAoIWltZy5wYXJlbnRFbGVtZW50IHx8ICFpbWcuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgIC8vIEV4aXQgZWFybHkgaW4gY2FzZSBvZiByYWNlIGNvbmRpdGlvbjpcbiAgICAgICAgICAgIC8vIC0gb25sb2FkKCkgaXMgY2FsbGVkXG4gICAgICAgICAgICAvLyAtIGRlY29kZSgpIGlzIGNhbGxlZCBidXQgaW5jb21wbGV0ZVxuICAgICAgICAgICAgLy8gLSB1bm1vdW50IGlzIGNhbGxlZFxuICAgICAgICAgICAgLy8gLSBkZWNvZGUoKSBjb21wbGV0ZXNcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGxhY2Vob2xkZXIgIT09IFwiZW1wdHlcIikge1xuICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvbkxvYWRSZWYgPT0gbnVsbCA/IHZvaWQgMCA6IG9uTG9hZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAvLyBTaW5jZSB3ZSBkb24ndCBoYXZlIHRoZSBTeW50aGV0aWNFdmVudCBoZXJlLFxuICAgICAgICAgICAgLy8gd2UgbXVzdCBjcmVhdGUgb25lIHdpdGggdGhlIHNhbWUgc2hhcGUuXG4gICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2V2ZW50cy5odG1sXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudChcImxvYWRcIik7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsIFwidGFyZ2V0XCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGltZ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgcHJldmVudGVkID0gZmFsc2U7XG4gICAgICAgICAgICBsZXQgc3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgb25Mb2FkUmVmLmN1cnJlbnQoe1xuICAgICAgICAgICAgICAgIC4uLmV2ZW50LFxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudCxcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBpbWcsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBpbWcsXG4gICAgICAgICAgICAgICAgaXNEZWZhdWx0UHJldmVudGVkOiAoKT0+cHJldmVudGVkLFxuICAgICAgICAgICAgICAgIGlzUHJvcGFnYXRpb25TdG9wcGVkOiAoKT0+c3RvcHBlZCxcbiAgICAgICAgICAgICAgICBwZXJzaXN0OiAoKT0+e30sXG4gICAgICAgICAgICAgICAgcHJldmVudERlZmF1bHQ6ICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHByZXZlbnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246ICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHN0b3BwZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob25Mb2FkaW5nQ29tcGxldGVSZWYgPT0gbnVsbCA/IHZvaWQgMCA6IG9uTG9hZGluZ0NvbXBsZXRlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG9uTG9hZGluZ0NvbXBsZXRlUmVmLmN1cnJlbnQoaW1nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICBjb25zdCBvcmlnU3JjID0gbmV3IFVSTChzcmMsIFwiaHR0cDovL25cIikuc2VhcmNoUGFyYW1zLmdldChcInVybFwiKSB8fCBzcmM7XG4gICAgICAgICAgICBpZiAoaW1nLmdldEF0dHJpYnV0ZShcImRhdGEtbmltZ1wiKSA9PT0gXCJmaWxsXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXVub3B0aW1pemVkICYmICghaW1nLmdldEF0dHJpYnV0ZShcInNpemVzXCIpIHx8IGltZy5nZXRBdHRyaWJ1dGUoXCJzaXplc1wiKSA9PT0gXCIxMDB2d1wiKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgd2lkdGhWaWV3cG9ydFJhdGlvID0gaW1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC8gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aFZpZXdwb3J0UmF0aW8gPCAwLjYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5PbmNlKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBvcmlnU3JjICsgJ1wiIGhhcyBcImZpbGxcIiBidXQgaXMgbWlzc2luZyBcInNpemVzXCIgcHJvcC4gUGxlYXNlIGFkZCBpdCB0byBpbXByb3ZlIHBhZ2UgcGVyZm9ybWFuY2UuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI3NpemVzJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGltZy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcG9zaXRpb24gfSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGltZy5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZpeGVkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlbGF0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWxpZC5pbmNsdWRlcyhwb3NpdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5PbmNlKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBvcmlnU3JjICsgJ1wiIGhhcyBcImZpbGxcIiBhbmQgcGFyZW50IGVsZW1lbnQgd2l0aCBpbnZhbGlkIFwicG9zaXRpb25cIi4gUHJvdmlkZWQgXCInICsgcG9zaXRpb24gKyAnXCIgc2hvdWxkIGJlIG9uZSBvZiAnICsgdmFsaWQubWFwKFN0cmluZykuam9pbihcIixcIikgKyBcIi5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGltZy5oZWlnaHQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIG9yaWdTcmMgKyAnXCIgaGFzIFwiZmlsbFwiIGFuZCBhIGhlaWdodCB2YWx1ZSBvZiAwLiBUaGlzIGlzIGxpa2VseSBiZWNhdXNlIHRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgaW1hZ2UgaGFzIG5vdCBiZWVuIHN0eWxlZCB0byBoYXZlIGEgc2V0IGhlaWdodC4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoZWlnaHRNb2RpZmllZCA9IGltZy5oZWlnaHQudG9TdHJpbmcoKSAhPT0gaW1nLmdldEF0dHJpYnV0ZShcImhlaWdodFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoTW9kaWZpZWQgPSBpbWcud2lkdGgudG9TdHJpbmcoKSAhPT0gaW1nLmdldEF0dHJpYnV0ZShcIndpZHRoXCIpO1xuICAgICAgICAgICAgaWYgKGhlaWdodE1vZGlmaWVkICYmICF3aWR0aE1vZGlmaWVkIHx8ICFoZWlnaHRNb2RpZmllZCAmJiB3aWR0aE1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIG9yaWdTcmMgKyAnXCIgaGFzIGVpdGhlciB3aWR0aCBvciBoZWlnaHQgbW9kaWZpZWQsIGJ1dCBub3QgdGhlIG90aGVyLiBJZiB5b3UgdXNlIENTUyB0byBjaGFuZ2UgdGhlIHNpemUgb2YgeW91ciBpbWFnZSwgYWxzbyBpbmNsdWRlIHRoZSBzdHlsZXMgXFwnd2lkdGg6IFwiYXV0b1wiXFwnIG9yIFxcJ2hlaWdodDogXCJhdXRvXCJcXCcgdG8gbWFpbnRhaW4gdGhlIGFzcGVjdCByYXRpby4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0RHluYW1pY1Byb3BzKGZldGNoUHJpb3JpdHkpIHtcbiAgICBjb25zdCBbbWFqb3JTdHIsIG1pbm9yU3RyXSA9IHZlcnNpb24uc3BsaXQoXCIuXCIsIDIpO1xuICAgIGNvbnN0IG1ham9yID0gcGFyc2VJbnQobWFqb3JTdHIsIDEwKTtcbiAgICBjb25zdCBtaW5vciA9IHBhcnNlSW50KG1pbm9yU3RyLCAxMCk7XG4gICAgaWYgKG1ham9yID4gMTggfHwgbWFqb3IgPT09IDE4ICYmIG1pbm9yID49IDMpIHtcbiAgICAgICAgLy8gSW4gUmVhY3QgMTguMy4wIG9yIG5ld2VyLCB3ZSBtdXN0IHVzZSBjYW1lbENhc2VcbiAgICAgICAgLy8gcHJvcCB0byBhdm9pZCBcIldhcm5pbmc6IEludmFsaWQgRE9NIHByb3BlcnR5XCIuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yNTkyN1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmV0Y2hQcmlvcml0eVxuICAgICAgICB9O1xuICAgIH1cbiAgICAvLyBJbiBSZWFjdCAxOC4yLjAgb3Igb2xkZXIsIHdlIG11c3QgdXNlIGxvd2VyY2FzZSBwcm9wXG4gICAgLy8gdG8gYXZvaWQgXCJXYXJuaW5nOiBJbnZhbGlkIERPTSBwcm9wZXJ0eVwiLlxuICAgIHJldHVybiB7XG4gICAgICAgIGZldGNocHJpb3JpdHk6IGZldGNoUHJpb3JpdHlcbiAgICB9O1xufVxuY29uc3QgSW1hZ2VFbGVtZW50ID0gLyojX19QVVJFX18qLyBmb3J3YXJkUmVmKChwYXJhbSwgZm9yd2FyZGVkUmVmKT0+e1xuICAgIGxldCB7IHNyYywgc3JjU2V0LCBzaXplcywgaGVpZ2h0LCB3aWR0aCwgZGVjb2RpbmcsIGNsYXNzTmFtZSwgc3R5bGUsIGZldGNoUHJpb3JpdHksIHBsYWNlaG9sZGVyLCBsb2FkaW5nLCB1bm9wdGltaXplZCwgZmlsbCwgb25Mb2FkUmVmLCBvbkxvYWRpbmdDb21wbGV0ZVJlZiwgc2V0Qmx1ckNvbXBsZXRlLCBzZXRTaG93QWx0VGV4dCwgb25Mb2FkLCBvbkVycm9yLCAuLi5yZXN0IH0gPSBwYXJhbTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFwiaW1nXCIsIHtcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgLi4uZ2V0RHluYW1pY1Byb3BzKGZldGNoUHJpb3JpdHkpLFxuICAgICAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYGxvYWRpbmdgIGJlZm9yZSBgc3JjYCBiZWNhdXNlIFJlYWN0IHVwZGF0ZXNcbiAgICAgICAgLy8gcHJvcHMgaW4gb3JkZXIgd2hpY2ggY2F1c2VzIFNhZmFyaS9GaXJlZm94IHRvIG5vdCBsYXp5IGxvYWQgcHJvcGVybHkuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzI1ODgzXG4gICAgICAgIGxvYWRpbmc6IGxvYWRpbmcsXG4gICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgIGRlY29kaW5nOiBkZWNvZGluZyxcbiAgICAgICAgXCJkYXRhLW5pbWdcIjogZmlsbCA/IFwiZmlsbFwiIDogXCIxXCIsXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgIC8vIEl0J3MgaW50ZW5kZWQgdG8ga2VlcCBgc3JjYCB0aGUgbGFzdCBhdHRyaWJ1dGUgYmVjYXVzZSBSZWFjdCB1cGRhdGVzXG4gICAgICAgIC8vIGF0dHJpYnV0ZXMgaW4gb3JkZXIuIElmIHdlIGtlZXAgYHNyY2AgdGhlIGZpcnN0IG9uZSwgU2FmYXJpIHdpbGxcbiAgICAgICAgLy8gaW1tZWRpYXRlbHkgc3RhcnQgdG8gZmV0Y2ggYHNyY2AsIGJlZm9yZSBgc2l6ZXNgIGFuZCBgc3JjU2V0YCBhcmUgZXZlblxuICAgICAgICAvLyB1cGRhdGVkIGJ5IFJlYWN0LiBUaGF0IGNhdXNlcyBtdWx0aXBsZSB1bm5lY2Vzc2FyeSByZXF1ZXN0cyBpZiBgc3JjU2V0YFxuICAgICAgICAvLyBhbmQgYHNpemVzYCBhcmUgZGVmaW5lZC5cbiAgICAgICAgLy8gVGhpcyBidWcgY2Fubm90IGJlIHJlcHJvZHVjZWQgaW4gQ2hyb21lIG9yIEZpcmVmb3guXG4gICAgICAgIHNpemVzOiBzaXplcyxcbiAgICAgICAgc3JjU2V0OiBzcmNTZXQsXG4gICAgICAgIHNyYzogc3JjLFxuICAgICAgICByZWY6IHVzZUNhbGxiYWNrKChpbWcpPT57XG4gICAgICAgICAgICBpZiAoZm9yd2FyZGVkUmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmb3J3YXJkZWRSZWYgPT09IFwiZnVuY3Rpb25cIikgZm9yd2FyZGVkUmVmKGltZyk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGZvcndhcmRlZFJlZiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlIC0gLmN1cnJlbnQgaXMgcmVhZCBvbmx5IGl0J3MgdXN1YWxseSBhc3NpZ25lZCBieSByZWFjdCBpbnRlcm5hbGx5XG4gICAgICAgICAgICAgICAgICAgIGZvcndhcmRlZFJlZi5jdXJyZW50ID0gaW1nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaW1nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaGFzIGFuIGVycm9yIGJlZm9yZSByZWFjdCBoeWRyYXRlcywgdGhlbiB0aGUgZXJyb3IgaXMgbG9zdC5cbiAgICAgICAgICAgICAgICAvLyBUaGUgd29ya2Fyb3VuZCBpcyB0byB3YWl0IHVudGlsIHRoZSBpbWFnZSBpcyBtb3VudGVkIHdoaWNoIGlzIGFmdGVyIGh5ZHJhdGlvbixcbiAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIHNldCB0aGUgc3JjIGFnYWluIHRvIHRyaWdnZXIgdGhlIGVycm9yIGhhbmRsZXIgKGlmIHRoZXJlIHdhcyBhbiBlcnJvcikuXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgICAgICAgICAgICAgaW1nLnNyYyA9IGltZy5zcmM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignSW1hZ2UgaXMgbWlzc2luZyByZXF1aXJlZCBcInNyY1wiIHByb3BlcnR5OicsIGltZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpbWcuZ2V0QXR0cmlidXRlKFwiYWx0XCIpID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ltYWdlIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJhbHRcIiBwcm9wZXJ0eS4gUGxlYXNlIGFkZCBBbHRlcm5hdGl2ZSBUZXh0IHRvIGRlc2NyaWJlIHRoZSBpbWFnZSBmb3Igc2NyZWVuIHJlYWRlcnMgYW5kIHNlYXJjaCBlbmdpbmVzLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbWcuY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVMb2FkaW5nKGltZywgcGxhY2Vob2xkZXIsIG9uTG9hZFJlZiwgb25Mb2FkaW5nQ29tcGxldGVSZWYsIHNldEJsdXJDb21wbGV0ZSwgdW5vcHRpbWl6ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICAgIG9uTG9hZFJlZixcbiAgICAgICAgICAgIG9uTG9hZGluZ0NvbXBsZXRlUmVmLFxuICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlLFxuICAgICAgICAgICAgb25FcnJvcixcbiAgICAgICAgICAgIHVub3B0aW1pemVkLFxuICAgICAgICAgICAgZm9yd2FyZGVkUmVmXG4gICAgICAgIF0pLFxuICAgICAgICBvbkxvYWQ6IChldmVudCk9PntcbiAgICAgICAgICAgIGNvbnN0IGltZyA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICBoYW5kbGVMb2FkaW5nKGltZywgcGxhY2Vob2xkZXIsIG9uTG9hZFJlZiwgb25Mb2FkaW5nQ29tcGxldGVSZWYsIHNldEJsdXJDb21wbGV0ZSwgdW5vcHRpbWl6ZWQpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVycm9yOiAoZXZlbnQpPT57XG4gICAgICAgICAgICAvLyBpZiB0aGUgcmVhbCBpbWFnZSBmYWlscyB0byBsb2FkLCB0aGlzIHdpbGwgZW5zdXJlIFwiYWx0XCIgaXMgdmlzaWJsZVxuICAgICAgICAgICAgc2V0U2hvd0FsdFRleHQodHJ1ZSk7XG4gICAgICAgICAgICBpZiAocGxhY2Vob2xkZXIgIT09IFwiZW1wdHlcIikge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSByZWFsIGltYWdlIGZhaWxzIHRvIGxvYWQsIHRoaXMgd2lsbCBzdGlsbCByZW1vdmUgdGhlIHBsYWNlaG9sZGVyLlxuICAgICAgICAgICAgICAgIHNldEJsdXJDb21wbGV0ZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgb25FcnJvcihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuZnVuY3Rpb24gSW1hZ2VQcmVsb2FkKHBhcmFtKSB7XG4gICAgbGV0IHsgaXNBcHBSb3V0ZXIsIGltZ0F0dHJpYnV0ZXMgfSA9IHBhcmFtO1xuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgIGFzOiBcImltYWdlXCIsXG4gICAgICAgIGltYWdlU3JjU2V0OiBpbWdBdHRyaWJ1dGVzLnNyY1NldCxcbiAgICAgICAgaW1hZ2VTaXplczogaW1nQXR0cmlidXRlcy5zaXplcyxcbiAgICAgICAgY3Jvc3NPcmlnaW46IGltZ0F0dHJpYnV0ZXMuY3Jvc3NPcmlnaW4sXG4gICAgICAgIHJlZmVycmVyUG9saWN5OiBpbWdBdHRyaWJ1dGVzLnJlZmVycmVyUG9saWN5LFxuICAgICAgICAuLi5nZXREeW5hbWljUHJvcHMoaW1nQXR0cmlidXRlcy5mZXRjaFByaW9yaXR5KVxuICAgIH07XG4gICAgaWYgKGlzQXBwUm91dGVyICYmIFJlYWN0RE9NLnByZWxvYWQpIHtcbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzI2OTQwXG4gICAgICAgIFJlYWN0RE9NLnByZWxvYWQoaW1nQXR0cmlidXRlcy5zcmMsIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogdXBncmFkZSB0byBgQHR5cGVzL3JlYWN0LWRvbUAxOC4zLnhgXG4gICAgICAgIG9wdHMpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChIZWFkLCB7XG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goXCJsaW5rXCIsIHtcbiAgICAgICAgICAgIHJlbDogXCJwcmVsb2FkXCIsXG4gICAgICAgICAgICAvLyBOb3RlIGhvdyB3ZSBvbWl0IHRoZSBgaHJlZmAgYXR0cmlidXRlLCBhcyBpdCB3b3VsZCBvbmx5IGJlIHJlbGV2YW50XG4gICAgICAgICAgICAvLyBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBgaW1hZ2VzcmNzZXRgLCBhbmQgaW4gdGhvc2UgY2FzZXNcbiAgICAgICAgICAgIC8vIGl0IHdvdWxkIGNhdXNlIHRoZSBpbmNvcnJlY3QgaW1hZ2UgdG8gYmUgcHJlbG9hZGVkLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NlbWFudGljcy5odG1sI2F0dHItbGluay1pbWFnZXNyY3NldFxuICAgICAgICAgICAgaHJlZjogaW1nQXR0cmlidXRlcy5zcmNTZXQgPyB1bmRlZmluZWQgOiBpbWdBdHRyaWJ1dGVzLnNyYyxcbiAgICAgICAgICAgIC4uLm9wdHNcbiAgICAgICAgfSwgXCJfX25pbWctXCIgKyBpbWdBdHRyaWJ1dGVzLnNyYyArIGltZ0F0dHJpYnV0ZXMuc3JjU2V0ICsgaW1nQXR0cmlidXRlcy5zaXplcylcbiAgICB9KTtcbn1cbmV4cG9ydCBjb25zdCBJbWFnZSA9IC8qI19fUFVSRV9fKi8gZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICBjb25zdCBwYWdlc1JvdXRlciA9IHVzZUNvbnRleHQoUm91dGVyQ29udGV4dCk7XG4gICAgLy8gV2UncmUgaW4gdGhlIGFwcCBkaXJlY3RvcnkgaWYgdGhlcmUgaXMgbm8gcGFnZXMgcm91dGVyLlxuICAgIGNvbnN0IGlzQXBwUm91dGVyID0gIXBhZ2VzUm91dGVyO1xuICAgIGNvbnN0IGNvbmZpZ0NvbnRleHQgPSB1c2VDb250ZXh0KEltYWdlQ29uZmlnQ29udGV4dCk7XG4gICAgY29uc3QgY29uZmlnID0gdXNlTWVtbygoKT0+e1xuICAgICAgICBjb25zdCBjID0gY29uZmlnRW52IHx8IGNvbmZpZ0NvbnRleHQgfHwgaW1hZ2VDb25maWdEZWZhdWx0O1xuICAgICAgICBjb25zdCBhbGxTaXplcyA9IFtcbiAgICAgICAgICAgIC4uLmMuZGV2aWNlU2l6ZXMsXG4gICAgICAgICAgICAuLi5jLmltYWdlU2l6ZXNcbiAgICAgICAgXS5zb3J0KChhLCBiKT0+YSAtIGIpO1xuICAgICAgICBjb25zdCBkZXZpY2VTaXplcyA9IGMuZGV2aWNlU2l6ZXMuc29ydCgoYSwgYik9PmEgLSBiKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICBhbGxTaXplcyxcbiAgICAgICAgICAgIGRldmljZVNpemVzXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBjb25maWdDb250ZXh0XG4gICAgXSk7XG4gICAgY29uc3QgeyBvbkxvYWQsIG9uTG9hZGluZ0NvbXBsZXRlIH0gPSBwcm9wcztcbiAgICBjb25zdCBvbkxvYWRSZWYgPSB1c2VSZWYob25Mb2FkKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgb25Mb2FkUmVmLmN1cnJlbnQgPSBvbkxvYWQ7XG4gICAgfSwgW1xuICAgICAgICBvbkxvYWRcbiAgICBdKTtcbiAgICBjb25zdCBvbkxvYWRpbmdDb21wbGV0ZVJlZiA9IHVzZVJlZihvbkxvYWRpbmdDb21wbGV0ZSk7XG4gICAgdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIG9uTG9hZGluZ0NvbXBsZXRlUmVmLmN1cnJlbnQgPSBvbkxvYWRpbmdDb21wbGV0ZTtcbiAgICB9LCBbXG4gICAgICAgIG9uTG9hZGluZ0NvbXBsZXRlXG4gICAgXSk7XG4gICAgY29uc3QgW2JsdXJDb21wbGV0ZSwgc2V0Qmx1ckNvbXBsZXRlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hvd0FsdFRleHQsIHNldFNob3dBbHRUZXh0XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB7IHByb3BzOiBpbWdBdHRyaWJ1dGVzLCBtZXRhOiBpbWdNZXRhIH0gPSBnZXRJbWdQcm9wcyhwcm9wcywge1xuICAgICAgICBkZWZhdWx0TG9hZGVyLFxuICAgICAgICBpbWdDb25mOiBjb25maWcsXG4gICAgICAgIGJsdXJDb21wbGV0ZSxcbiAgICAgICAgc2hvd0FsdFRleHRcbiAgICB9KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChJbWFnZUVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgICAuLi5pbWdBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgIHVub3B0aW1pemVkOiBpbWdNZXRhLnVub3B0aW1pemVkLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBpbWdNZXRhLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIGZpbGw6IGltZ01ldGEuZmlsbCxcbiAgICAgICAgICAgICAgICBvbkxvYWRSZWY6IG9uTG9hZFJlZixcbiAgICAgICAgICAgICAgICBvbkxvYWRpbmdDb21wbGV0ZVJlZjogb25Mb2FkaW5nQ29tcGxldGVSZWYsXG4gICAgICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlOiBzZXRCbHVyQ29tcGxldGUsXG4gICAgICAgICAgICAgICAgc2V0U2hvd0FsdFRleHQ6IHNldFNob3dBbHRUZXh0LFxuICAgICAgICAgICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGltZ01ldGEucHJpb3JpdHkgPyAvKiNfX1BVUkVfXyovIF9qc3goSW1hZ2VQcmVsb2FkLCB7XG4gICAgICAgICAgICAgICAgaXNBcHBSb3V0ZXI6IGlzQXBwUm91dGVyLFxuICAgICAgICAgICAgICAgIGltZ0F0dHJpYnV0ZXM6IGltZ0F0dHJpYnV0ZXNcbiAgICAgICAgICAgIH0pIDogbnVsbFxuICAgICAgICBdXG4gICAgfSk7XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hZ2UtY29tcG9uZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJSZWFjdCIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImZvcndhcmRSZWYiLCJ2ZXJzaW9uIiwiUmVhY3RET00iLCJIZWFkIiwiZ2V0SW1nUHJvcHMiLCJpbWFnZUNvbmZpZ0RlZmF1bHQiLCJJbWFnZUNvbmZpZ0NvbnRleHQiLCJ3YXJuT25jZSIsIlJvdXRlckNvbnRleHQiLCJkZWZhdWx0TG9hZGVyIiwiY29uZmlnRW52IiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JTUFHRV9PUFRTIiwiZ2xvYmFsVGhpcyIsIl9fTkVYVF9JTUFHRV9JTVBPUlRFRCIsImhhbmRsZUxvYWRpbmciLCJpbWciLCJwbGFjZWhvbGRlciIsIm9uTG9hZFJlZiIsIm9uTG9hZGluZ0NvbXBsZXRlUmVmIiwic2V0Qmx1ckNvbXBsZXRlIiwidW5vcHRpbWl6ZWQiLCJzcmMiLCJwIiwiZGVjb2RlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjYXRjaCIsInRoZW4iLCJwYXJlbnRFbGVtZW50IiwiaXNDb25uZWN0ZWQiLCJjdXJyZW50IiwiZXZlbnQiLCJFdmVudCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJ2YWx1ZSIsInByZXZlbnRlZCIsInN0b3BwZWQiLCJuYXRpdmVFdmVudCIsImN1cnJlbnRUYXJnZXQiLCJ0YXJnZXQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJpc1Byb3BhZ2F0aW9uU3RvcHBlZCIsInBlcnNpc3QiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIm9yaWdTcmMiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJnZXQiLCJnZXRBdHRyaWJ1dGUiLCJ3aWR0aFZpZXdwb3J0UmF0aW8iLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJwb3NpdGlvbiIsImdldENvbXB1dGVkU3R5bGUiLCJ2YWxpZCIsImluY2x1ZGVzIiwibWFwIiwiU3RyaW5nIiwiam9pbiIsImhlaWdodCIsImhlaWdodE1vZGlmaWVkIiwidG9TdHJpbmciLCJ3aWR0aE1vZGlmaWVkIiwiZ2V0RHluYW1pY1Byb3BzIiwiZmV0Y2hQcmlvcml0eSIsIm1ham9yU3RyIiwibWlub3JTdHIiLCJzcGxpdCIsIm1ham9yIiwicGFyc2VJbnQiLCJtaW5vciIsImZldGNocHJpb3JpdHkiLCJJbWFnZUVsZW1lbnQiLCJwYXJhbSIsImZvcndhcmRlZFJlZiIsInNyY1NldCIsInNpemVzIiwiZGVjb2RpbmciLCJjbGFzc05hbWUiLCJzdHlsZSIsImxvYWRpbmciLCJmaWxsIiwic2V0U2hvd0FsdFRleHQiLCJvbkxvYWQiLCJvbkVycm9yIiwicmVzdCIsInJlZiIsImNvbnNvbGUiLCJlcnJvciIsImNvbXBsZXRlIiwiSW1hZ2VQcmVsb2FkIiwiaXNBcHBSb3V0ZXIiLCJpbWdBdHRyaWJ1dGVzIiwib3B0cyIsImFzIiwiaW1hZ2VTcmNTZXQiLCJpbWFnZVNpemVzIiwiY3Jvc3NPcmlnaW4iLCJyZWZlcnJlclBvbGljeSIsInByZWxvYWQiLCJjaGlsZHJlbiIsInJlbCIsImhyZWYiLCJ1bmRlZmluZWQiLCJJbWFnZSIsInByb3BzIiwicGFnZXNSb3V0ZXIiLCJjb25maWdDb250ZXh0IiwiY29uZmlnIiwiYyIsImFsbFNpemVzIiwiZGV2aWNlU2l6ZXMiLCJzb3J0IiwiYSIsImIiLCJvbkxvYWRpbmdDb21wbGV0ZSIsImJsdXJDb21wbGV0ZSIsInNob3dBbHRUZXh0IiwibWV0YSIsImltZ01ldGEiLCJpbWdDb25mIiwicHJpb3JpdHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/image-component.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/normalize-trailing-slash.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/normalize-trailing-slash.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizePathTrailingSlash: () => (/* binding */ normalizePathTrailingSlash)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n/* harmony import */ var _shared_lib_router_utils_parse_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\");\n\n\n/**\n * Normalizes the trailing slash of a path according to the `trailingSlash` option\n * in `next.config.js`.\n */ const normalizePathTrailingSlash = (path)=>{\n if (!path.startsWith(\"/\") || undefined) {\n return path;\n }\n const { pathname, query, hash } = (0,_shared_lib_router_utils_parse_path__WEBPACK_IMPORTED_MODULE_1__.parsePath)(path);\n if (false) {}\n return \"\" + (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_0__.removeTrailingSlash)(pathname) + query + hash;\n}; //# sourceMappingURL=normalize-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUY7QUFDckI7QUFDbEU7OztDQUdDLEdBQVUsTUFBTUUsNkJBQTZCLENBQUNDO0lBQzNDLElBQUksQ0FBQ0EsS0FBS0MsVUFBVSxDQUFDLFFBQVFDLFNBQXdDLEVBQUU7UUFDbkUsT0FBT0Y7SUFDWDtJQUNBLE1BQU0sRUFBRUssUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHVCw4RUFBU0EsQ0FBQ0U7SUFDNUMsSUFBSUUsS0FBaUMsRUFBRSxFQVF0QztJQUNELE9BQU8sS0FBS0wsbUdBQW1CQSxDQUFDUSxZQUFZQyxRQUFRQztBQUN4RCxFQUFFLENBRUYsb0RBQW9EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzP2E3OWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2hcIjtcbmltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoXCI7XG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIG9mIGEgcGF0aCBhY2NvcmRpbmcgdG8gdGhlIGB0cmFpbGluZ1NsYXNoYCBvcHRpb25cbiAqIGluIGBuZXh0LmNvbmZpZy5qc2AuXG4gKi8gZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoID0gKHBhdGgpPT57XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9NQU5VQUxfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aCk7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCkge1xuICAgICAgICBpZiAoL1xcLlteL10rXFwvPyQvLnRlc3QocGF0aG5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIiArIHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpICsgcXVlcnkgKyBoYXNoO1xuICAgICAgICB9IGVsc2UgaWYgKHBhdGhuYW1lLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCIgKyBwYXRobmFtZSArIHF1ZXJ5ICsgaGFzaDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRobmFtZSArIFwiL1wiICsgcXVlcnkgKyBoYXNoO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBcIlwiICsgcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSkgKyBxdWVyeSArIGhhc2g7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMubWFwIl0sIm5hbWVzIjpbInJlbW92ZVRyYWlsaW5nU2xhc2giLCJwYXJzZVBhdGgiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsInBhdGgiLCJzdGFydHNXaXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9NQU5VQUxfVFJBSUxJTkdfU0xBU0giLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInRlc3QiLCJlbmRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/normalize-trailing-slash.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/client/remove-base-path.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/remove-base-path.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removeBasePath: () => (/* binding */ removeBasePath)\n/* harmony export */ });\n/* harmony import */ var _has_base_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./has-base-path */ \"(ssr)/../../node_modules/next/dist/esm/client/has-base-path.js\");\n\nconst basePath = false || \"\";\nfunction removeBasePath(path) {\n if (false) {}\n // Can't trim the basePath if it has zero length!\n if (basePath.length === 0) return path;\n path = path.slice(basePath.length);\n if (!path.startsWith(\"/\")) path = \"/\" + path;\n return path;\n} //# sourceMappingURL=remove-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L3JlbW92ZS1iYXNlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBOEM7QUFDOUMsTUFBTUMsV0FBV0MsTUFBa0MsSUFBSTtBQUNoRCxTQUFTRyxlQUFlQyxJQUFJO0lBQy9CLElBQUlKLEtBQTBDLEVBQUUsRUFJL0M7SUFDRCxpREFBaUQ7SUFDakQsSUFBSUQsU0FBU08sTUFBTSxLQUFLLEdBQUcsT0FBT0Y7SUFDbENBLE9BQU9BLEtBQUtHLEtBQUssQ0FBQ1IsU0FBU08sTUFBTTtJQUNqQyxJQUFJLENBQUNGLEtBQUtJLFVBQVUsQ0FBQyxNQUFNSixPQUFPLE1BQU1BO0lBQ3hDLE9BQU9BO0FBQ1gsRUFFQSw0Q0FBNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9yZW1vdmUtYmFzZS1wYXRoLmpzPzNhMDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tIFwiLi9oYXMtYmFzZS1wYXRoXCI7XG5jb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggfHwgXCJcIjtcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVCYXNlUGF0aChwYXRoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCkge1xuICAgICAgICBpZiAoIWhhc0Jhc2VQYXRoKHBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDYW4ndCB0cmltIHRoZSBiYXNlUGF0aCBpZiBpdCBoYXMgemVybyBsZW5ndGghXG4gICAgaWYgKGJhc2VQYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHBhdGg7XG4gICAgcGF0aCA9IHBhdGguc2xpY2UoYmFzZVBhdGgubGVuZ3RoKTtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aChcIi9cIikpIHBhdGggPSBcIi9cIiArIHBhdGg7XG4gICAgcmV0dXJuIHBhdGg7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbW92ZS1iYXNlLXBhdGguanMubWFwIl0sIm5hbWVzIjpbImhhc0Jhc2VQYXRoIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInJlbW92ZUJhc2VQYXRoIiwicGF0aCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImxlbmd0aCIsInNsaWNlIiwic3RhcnRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/client/remove-base-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/export/helpers/is-dynamic-usage-error.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/export/helpers/is-dynamic-usage-error.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isDynamicUsageError: () => (/* binding */ isDynamicUsageError)\n/* harmony export */ });\n/* harmony import */ var _client_components_hooks_server_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(ssr)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js\");\n/* harmony import */ var _client_components_not_found__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../client/components/not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n/* harmony import */ var _client_components_redirect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../client/components/redirect */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js\");\n/* harmony import */ var _shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js\");\n\n\n\n\nconst isDynamicUsageError = (err)=>(0,_client_components_hooks_server_context__WEBPACK_IMPORTED_MODULE_0__.isDynamicServerError)(err) || (0,_shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_3__.isBailoutToCSRError)(err) || (0,_client_components_not_found__WEBPACK_IMPORTED_MODULE_1__.isNotFoundError)(err) || (0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_2__.isRedirectError)(err); //# sourceMappingURL=is-dynamic-usage-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vZXhwb3J0L2hlbHBlcnMvaXMtZHluYW1pYy11c2FnZS1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFvRjtBQUNoQjtBQUNEO0FBQ2dCO0FBQzVFLE1BQU1JLHNCQUFzQixDQUFDQyxNQUFNTCw2RkFBb0JBLENBQUNLLFFBQVFGLDRGQUFtQkEsQ0FBQ0UsUUFBUUosNkVBQWVBLENBQUNJLFFBQVFILDRFQUFlQSxDQUFDRyxLQUFLLENBRWhKLGtEQUFrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vZXhwb3J0L2hlbHBlcnMvaXMtZHluYW1pYy11c2FnZS1lcnJvci5qcz9kOGIyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRHluYW1pY1NlcnZlckVycm9yIH0gZnJvbSBcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0XCI7XG5pbXBvcnQgeyBpc05vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kXCI7XG5pbXBvcnQgeyBpc1JlZGlyZWN0RXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3RcIjtcbmltcG9ydCB7IGlzQmFpbG91dFRvQ1NSRXJyb3IgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3JcIjtcbmV4cG9ydCBjb25zdCBpc0R5bmFtaWNVc2FnZUVycm9yID0gKGVycik9PmlzRHluYW1pY1NlcnZlckVycm9yKGVycikgfHwgaXNCYWlsb3V0VG9DU1JFcnJvcihlcnIpIHx8IGlzTm90Rm91bmRFcnJvcihlcnIpIHx8IGlzUmVkaXJlY3RFcnJvcihlcnIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1keW5hbWljLXVzYWdlLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJpc0R5bmFtaWNTZXJ2ZXJFcnJvciIsImlzTm90Rm91bmRFcnJvciIsImlzUmVkaXJlY3RFcnJvciIsImlzQmFpbG91dFRvQ1NSRXJyb3IiLCJpc0R5bmFtaWNVc2FnZUVycm9yIiwiZXJyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/export/helpers/is-dynamic-usage-error.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/client-reference.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/client-reference.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isClientReference: () => (/* binding */ isClientReference)\n/* harmony export */ });\nfunction isClientReference(reference) {\n return (reference == null ? void 0 : reference.$$typeof) === Symbol.for(\"react.client.reference\");\n} //# sourceMappingURL=client-reference.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2NsaWVudC1yZWZlcmVuY2UuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLGtCQUFrQkMsU0FBUztJQUN2QyxPQUFPLENBQUNBLGFBQWEsT0FBTyxLQUFLLElBQUlBLFVBQVVDLFFBQVEsTUFBTUMsT0FBT0MsR0FBRyxDQUFDO0FBQzVFLEVBRUEsNENBQTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvY2xpZW50LXJlZmVyZW5jZS5qcz8yMWMxIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0NsaWVudFJlZmVyZW5jZShyZWZlcmVuY2UpIHtcbiAgICByZXR1cm4gKHJlZmVyZW5jZSA9PSBudWxsID8gdm9pZCAwIDogcmVmZXJlbmNlLiQkdHlwZW9mKSA9PT0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsaWVudC1yZWZlcmVuY2UuanMubWFwIl0sIm5hbWVzIjpbImlzQ2xpZW50UmVmZXJlbmNlIiwicmVmZXJlbmNlIiwiJCR0eXBlb2YiLCJTeW1ib2wiLCJmb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/client-reference.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/constants.js":
-/*!*********************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/constants.js ***!
- \*********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ APP_DIR_ALIAS: () => (/* binding */ APP_DIR_ALIAS),\n/* harmony export */ CACHE_ONE_YEAR: () => (/* binding */ CACHE_ONE_YEAR),\n/* harmony export */ DOT_NEXT_ALIAS: () => (/* binding */ DOT_NEXT_ALIAS),\n/* harmony export */ ESLINT_DEFAULT_DIRS: () => (/* binding */ ESLINT_DEFAULT_DIRS),\n/* harmony export */ ESLINT_PROMPT_VALUES: () => (/* binding */ ESLINT_PROMPT_VALUES),\n/* harmony export */ GSP_NO_RETURNED_VALUE: () => (/* binding */ GSP_NO_RETURNED_VALUE),\n/* harmony export */ GSSP_COMPONENT_MEMBER_ERROR: () => (/* binding */ GSSP_COMPONENT_MEMBER_ERROR),\n/* harmony export */ GSSP_NO_RETURNED_VALUE: () => (/* binding */ GSSP_NO_RETURNED_VALUE),\n/* harmony export */ INSTRUMENTATION_HOOK_FILENAME: () => (/* binding */ INSTRUMENTATION_HOOK_FILENAME),\n/* harmony export */ MIDDLEWARE_FILENAME: () => (/* binding */ MIDDLEWARE_FILENAME),\n/* harmony export */ MIDDLEWARE_LOCATION_REGEXP: () => (/* binding */ MIDDLEWARE_LOCATION_REGEXP),\n/* harmony export */ NEXT_BODY_SUFFIX: () => (/* binding */ NEXT_BODY_SUFFIX),\n/* harmony export */ NEXT_CACHE_IMPLICIT_TAG_ID: () => (/* binding */ NEXT_CACHE_IMPLICIT_TAG_ID),\n/* harmony export */ NEXT_CACHE_REVALIDATED_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_REVALIDATED_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: () => (/* binding */ NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER),\n/* harmony export */ NEXT_CACHE_SOFT_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_SOFT_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_SOFT_TAG_MAX_LENGTH: () => (/* binding */ NEXT_CACHE_SOFT_TAG_MAX_LENGTH),\n/* harmony export */ NEXT_CACHE_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_TAG_MAX_LENGTH: () => (/* binding */ NEXT_CACHE_TAG_MAX_LENGTH),\n/* harmony export */ NEXT_DATA_SUFFIX: () => (/* binding */ NEXT_DATA_SUFFIX),\n/* harmony export */ NEXT_META_SUFFIX: () => (/* binding */ NEXT_META_SUFFIX),\n/* harmony export */ NEXT_QUERY_PARAM_PREFIX: () => (/* binding */ NEXT_QUERY_PARAM_PREFIX),\n/* harmony export */ NON_STANDARD_NODE_ENV: () => (/* binding */ NON_STANDARD_NODE_ENV),\n/* harmony export */ PAGES_DIR_ALIAS: () => (/* binding */ PAGES_DIR_ALIAS),\n/* harmony export */ PRERENDER_REVALIDATE_HEADER: () => (/* binding */ PRERENDER_REVALIDATE_HEADER),\n/* harmony export */ PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: () => (/* binding */ PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER),\n/* harmony export */ PUBLIC_DIR_MIDDLEWARE_CONFLICT: () => (/* binding */ PUBLIC_DIR_MIDDLEWARE_CONFLICT),\n/* harmony export */ ROOT_DIR_ALIAS: () => (/* binding */ ROOT_DIR_ALIAS),\n/* harmony export */ RSC_ACTION_CLIENT_WRAPPER_ALIAS: () => (/* binding */ RSC_ACTION_CLIENT_WRAPPER_ALIAS),\n/* harmony export */ RSC_ACTION_ENCRYPTION_ALIAS: () => (/* binding */ RSC_ACTION_ENCRYPTION_ALIAS),\n/* harmony export */ RSC_ACTION_PROXY_ALIAS: () => (/* binding */ RSC_ACTION_PROXY_ALIAS),\n/* harmony export */ RSC_ACTION_VALIDATE_ALIAS: () => (/* binding */ RSC_ACTION_VALIDATE_ALIAS),\n/* harmony export */ RSC_MOD_REF_PROXY_ALIAS: () => (/* binding */ RSC_MOD_REF_PROXY_ALIAS),\n/* harmony export */ RSC_PREFETCH_SUFFIX: () => (/* binding */ RSC_PREFETCH_SUFFIX),\n/* harmony export */ RSC_SUFFIX: () => (/* binding */ RSC_SUFFIX),\n/* harmony export */ SERVER_PROPS_EXPORT_ERROR: () => (/* binding */ SERVER_PROPS_EXPORT_ERROR),\n/* harmony export */ SERVER_PROPS_GET_INIT_PROPS_CONFLICT: () => (/* binding */ SERVER_PROPS_GET_INIT_PROPS_CONFLICT),\n/* harmony export */ SERVER_PROPS_SSG_CONFLICT: () => (/* binding */ SERVER_PROPS_SSG_CONFLICT),\n/* harmony export */ SERVER_RUNTIME: () => (/* binding */ SERVER_RUNTIME),\n/* harmony export */ SSG_FALLBACK_EXPORT_ERROR: () => (/* binding */ SSG_FALLBACK_EXPORT_ERROR),\n/* harmony export */ SSG_GET_INITIAL_PROPS_CONFLICT: () => (/* binding */ SSG_GET_INITIAL_PROPS_CONFLICT),\n/* harmony export */ STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: () => (/* binding */ STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR),\n/* harmony export */ UNSTABLE_REVALIDATE_RENAME_ERROR: () => (/* binding */ UNSTABLE_REVALIDATE_RENAME_ERROR),\n/* harmony export */ WEBPACK_LAYERS: () => (/* binding */ WEBPACK_LAYERS),\n/* harmony export */ WEBPACK_RESOURCE_QUERIES: () => (/* binding */ WEBPACK_RESOURCE_QUERIES)\n/* harmony export */ });\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst PRERENDER_REVALIDATE_HEADER = \"x-prerender-revalidate\";\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = \"x-prerender-revalidate-if-generated\";\nconst RSC_PREFETCH_SUFFIX = \".prefetch.rsc\";\nconst RSC_SUFFIX = \".rsc\";\nconst NEXT_DATA_SUFFIX = \".json\";\nconst NEXT_META_SUFFIX = \".meta\";\nconst NEXT_BODY_SUFFIX = \".body\";\nconst NEXT_CACHE_TAGS_HEADER = \"x-next-cache-tags\";\nconst NEXT_CACHE_SOFT_TAGS_HEADER = \"x-next-cache-soft-tags\";\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = \"x-next-revalidated-tags\";\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = \"x-next-revalidate-tag-token\";\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = \"_N_T_\";\n// in seconds\nconst CACHE_ONE_YEAR = 31536000;\n// Patterns to detect middleware files\nconst MIDDLEWARE_FILENAME = \"middleware\";\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\n// Pattern to detect instrumentation hooks file\nconst INSTRUMENTATION_HOOK_FILENAME = \"instrumentation\";\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nconst PAGES_DIR_ALIAS = \"private-next-pages\";\nconst DOT_NEXT_ALIAS = \"private-dot-next\";\nconst ROOT_DIR_ALIAS = \"private-next-root-dir\";\nconst APP_DIR_ALIAS = \"private-next-app-dir\";\nconst RSC_MOD_REF_PROXY_ALIAS = \"private-next-rsc-mod-ref-proxy\";\nconst RSC_ACTION_VALIDATE_ALIAS = \"private-next-rsc-action-validate\";\nconst RSC_ACTION_PROXY_ALIAS = \"private-next-rsc-action-proxy\";\nconst RSC_ACTION_ENCRYPTION_ALIAS = \"private-next-rsc-action-encryption\";\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = \"private-next-rsc-action-client-wrapper\";\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = \"Your `getStaticProps` function did not return an object. Did you forget to add a `return`?\";\nconst GSSP_NO_RETURNED_VALUE = \"Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?\";\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = \"The `unstable_revalidate` property is available for general use.\\n\" + \"Please use `revalidate` instead.\";\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n \"app\",\n \"pages\",\n \"components\",\n \"lib\",\n \"src\"\n];\nconst ESLINT_PROMPT_VALUES = [\n {\n title: \"Strict\",\n recommended: true,\n config: {\n extends: \"next/core-web-vitals\"\n }\n },\n {\n title: \"Base\",\n config: {\n extends: \"next\"\n }\n },\n {\n title: \"Cancel\",\n config: null\n }\n];\nconst SERVER_RUNTIME = {\n edge: \"edge\",\n experimentalEdge: \"experimental-edge\",\n nodejs: \"nodejs\"\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: \"shared\",\n /**\n * React Server Components layer (rsc).\n */ reactServerComponents: \"rsc\",\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: \"ssr\",\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: \"action-browser\",\n /**\n * The layer for the API routes.\n */ api: \"api\",\n /**\n * The layer for the middleware code.\n */ middleware: \"middleware\",\n /**\n * The layer for assets on the edge.\n */ edgeAsset: \"edge-asset\",\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: \"app-pages-browser\",\n /**\n * The server bundle layer for metadata routes.\n */ appMetadataRoute: \"app-metadata-route\",\n /**\n * The layer for the server bundle for App Route handlers.\n */ appRouteHandler: \"app-route-handler\"\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n server: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler\n ],\n nonClientServerTarget: [\n // plus middleware and pages api\n WEBPACK_LAYERS_NAMES.middleware,\n WEBPACK_LAYERS_NAMES.api\n ],\n app: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: \"__next_edge_ssr_entry__\",\n metadata: \"__next_metadata__\",\n metadataRoute: \"__next_metadata_route__\",\n metadataImageMeta: \"__next_metadata_image_meta__\"\n};\n //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSwwQkFBMEIsT0FBTztBQUN2QyxNQUFNQyw4QkFBOEIseUJBQXlCO0FBQzdELE1BQU1DLDZDQUE2QyxzQ0FBc0M7QUFDekYsTUFBTUMsc0JBQXNCLGdCQUFnQjtBQUM1QyxNQUFNQyxhQUFhLE9BQU87QUFDMUIsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMseUJBQXlCLG9CQUFvQjtBQUNuRCxNQUFNQyw4QkFBOEIseUJBQXlCO0FBQzdELE1BQU1DLHFDQUFxQywwQkFBMEI7QUFDckUsTUFBTUMseUNBQXlDLDhCQUE4QjtBQUM3RSxNQUFNQyw0QkFBNEIsSUFBSTtBQUN0QyxNQUFNQyxpQ0FBaUMsS0FBSztBQUM1QyxNQUFNQyw2QkFBNkIsUUFBUTtBQUNsRCxhQUFhO0FBQ04sTUFBTUMsaUJBQWlCLFNBQVM7QUFDdkMsc0NBQXNDO0FBQy9CLE1BQU1DLHNCQUFzQixhQUFhO0FBQ3pDLE1BQU1DLDZCQUE2QixDQUFDLFNBQVMsRUFBRUQsb0JBQW9CLENBQUMsQ0FBQztBQUM1RSwrQ0FBK0M7QUFDeEMsTUFBTUUsZ0NBQWdDLGtCQUFrQjtBQUMvRCwwR0FBMEc7QUFDMUcsaUNBQWlDO0FBQzFCLE1BQU1DLGtCQUFrQixxQkFBcUI7QUFDN0MsTUFBTUMsaUJBQWlCLG1CQUFtQjtBQUMxQyxNQUFNQyxpQkFBaUIsd0JBQXdCO0FBQy9DLE1BQU1DLGdCQUFnQix1QkFBdUI7QUFDN0MsTUFBTUMsMEJBQTBCLGlDQUFpQztBQUNqRSxNQUFNQyw0QkFBNEIsbUNBQW1DO0FBQ3JFLE1BQU1DLHlCQUF5QixnQ0FBZ0M7QUFDL0QsTUFBTUMsOEJBQThCLHFDQUFxQztBQUN6RSxNQUFNQyxrQ0FBa0MseUNBQXlDO0FBQ2pGLE1BQU1DLGlDQUFpQyxDQUFDLDZLQUE2SyxDQUFDLENBQUM7QUFDdk4sTUFBTUMsaUNBQWlDLENBQUMsbUdBQW1HLENBQUMsQ0FBQztBQUM3SSxNQUFNQyx1Q0FBdUMsQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO0FBQ3ZJLE1BQU1DLDRCQUE0QixDQUFDLHNIQUFzSCxDQUFDLENBQUM7QUFDM0osTUFBTUMsNkNBQTZDLENBQUMsdUdBQXVHLENBQUMsQ0FBQztBQUM3SixNQUFNQyw0QkFBNEIsQ0FBQyx1SEFBdUgsQ0FBQyxDQUFDO0FBQzVKLE1BQU1DLHdCQUF3Qiw2RkFBNkY7QUFDM0gsTUFBTUMseUJBQXlCLGlHQUFpRztBQUNoSSxNQUFNQyxtQ0FBbUMsdUVBQXVFLG1DQUFtQztBQUNuSixNQUFNQyw4QkFBOEIsQ0FBQyx3SkFBd0osQ0FBQyxDQUFDO0FBQy9MLE1BQU1DLHdCQUF3QixDQUFDLGlOQUFpTixDQUFDLENBQUM7QUFDbFAsTUFBTUMsNEJBQTRCLENBQUMsd0pBQXdKLENBQUMsQ0FBQztBQUM3TCxNQUFNQyxzQkFBc0I7SUFDL0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDSyxNQUFNQyx1QkFBdUI7SUFDaEM7UUFDSUMsT0FBTztRQUNQQyxhQUFhO1FBQ2JDLFFBQVE7WUFDSkMsU0FBUztRQUNiO0lBQ0o7SUFDQTtRQUNJSCxPQUFPO1FBQ1BFLFFBQVE7WUFDSkMsU0FBUztRQUNiO0lBQ0o7SUFDQTtRQUNJSCxPQUFPO1FBQ1BFLFFBQVE7SUFDWjtDQUNILENBQUM7QUFDSyxNQUFNRSxpQkFBaUI7SUFDMUJDLE1BQU07SUFDTkMsa0JBQWtCO0lBQ2xCQyxRQUFRO0FBQ1osRUFBRTtBQUNGOzs7Q0FHQyxHQUFHLE1BQU1DLHVCQUF1QjtJQUM3Qjs7R0FFRCxHQUFHQyxRQUFRO0lBQ1Y7O0dBRUQsR0FBR0MsdUJBQXVCO0lBQ3pCOztHQUVELEdBQUdDLHFCQUFxQjtJQUN2Qjs7R0FFRCxHQUFHQyxlQUFlO0lBQ2pCOztHQUVELEdBQUdDLEtBQUs7SUFDUDs7R0FFRCxHQUFHQyxZQUFZO0lBQ2Q7O0dBRUQsR0FBR0MsV0FBVztJQUNiOztHQUVELEdBQUdDLGlCQUFpQjtJQUNuQjs7R0FFRCxHQUFHQyxrQkFBa0I7SUFDcEI7O0dBRUQsR0FBR0MsaUJBQWlCO0FBQ3ZCO0FBQ0EsTUFBTUMsaUJBQWlCO0lBQ25CLEdBQUdYLG9CQUFvQjtJQUN2QlksT0FBTztRQUNIQyxRQUFRO1lBQ0piLHFCQUFxQkUscUJBQXFCO1lBQzFDRixxQkFBcUJJLGFBQWE7WUFDbENKLHFCQUFxQlMsZ0JBQWdCO1lBQ3JDVCxxQkFBcUJVLGVBQWU7U0FDdkM7UUFDREksdUJBQXVCO1lBQ25CLGdDQUFnQztZQUNoQ2QscUJBQXFCTSxVQUFVO1lBQy9CTixxQkFBcUJLLEdBQUc7U0FDM0I7UUFDRFUsS0FBSztZQUNEZixxQkFBcUJFLHFCQUFxQjtZQUMxQ0YscUJBQXFCSSxhQUFhO1lBQ2xDSixxQkFBcUJTLGdCQUFnQjtZQUNyQ1QscUJBQXFCVSxlQUFlO1lBQ3BDVixxQkFBcUJHLG1CQUFtQjtZQUN4Q0gscUJBQXFCUSxlQUFlO1lBQ3BDUixxQkFBcUJDLE1BQU07U0FDOUI7SUFDTDtBQUNKO0FBQ0EsTUFBTWUsMkJBQTJCO0lBQzdCQyxjQUFjO0lBQ2RDLFVBQVU7SUFDVkMsZUFBZTtJQUNmQyxtQkFBbUI7QUFDdkI7QUFDb0QsQ0FFcEQscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvY29uc3RhbnRzLmpzPzBiOTMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYID0gXCJueHRQXCI7XG5leHBvcnQgY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSID0gXCJ4LXByZXJlbmRlci1yZXZhbGlkYXRlXCI7XG5leHBvcnQgY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSID0gXCJ4LXByZXJlbmRlci1yZXZhbGlkYXRlLWlmLWdlbmVyYXRlZFwiO1xuZXhwb3J0IGNvbnN0IFJTQ19QUkVGRVRDSF9TVUZGSVggPSBcIi5wcmVmZXRjaC5yc2NcIjtcbmV4cG9ydCBjb25zdCBSU0NfU1VGRklYID0gXCIucnNjXCI7XG5leHBvcnQgY29uc3QgTkVYVF9EQVRBX1NVRkZJWCA9IFwiLmpzb25cIjtcbmV4cG9ydCBjb25zdCBORVhUX01FVEFfU1VGRklYID0gXCIubWV0YVwiO1xuZXhwb3J0IGNvbnN0IE5FWFRfQk9EWV9TVUZGSVggPSBcIi5ib2R5XCI7XG5leHBvcnQgY29uc3QgTkVYVF9DQUNIRV9UQUdTX0hFQURFUiA9IFwieC1uZXh0LWNhY2hlLXRhZ3NcIjtcbmV4cG9ydCBjb25zdCBORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVIgPSBcIngtbmV4dC1jYWNoZS1zb2Z0LXRhZ3NcIjtcbmV4cG9ydCBjb25zdCBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSID0gXCJ4LW5leHQtcmV2YWxpZGF0ZWQtdGFnc1wiO1xuZXhwb3J0IGNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSID0gXCJ4LW5leHQtcmV2YWxpZGF0ZS10YWctdG9rZW5cIjtcbmV4cG9ydCBjb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIID0gMjU2O1xuZXhwb3J0IGNvbnN0IE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSCA9IDEwMjQ7XG5leHBvcnQgY29uc3QgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQgPSBcIl9OX1RfXCI7XG4vLyBpbiBzZWNvbmRzXG5leHBvcnQgY29uc3QgQ0FDSEVfT05FX1lFQVIgPSAzMTUzNjAwMDtcbi8vIFBhdHRlcm5zIHRvIGRldGVjdCBtaWRkbGV3YXJlIGZpbGVzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9GSUxFTkFNRSA9IFwibWlkZGxld2FyZVwiO1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQID0gYCg/OnNyYy8pPyR7TUlERExFV0FSRV9GSUxFTkFNRX1gO1xuLy8gUGF0dGVybiB0byBkZXRlY3QgaW5zdHJ1bWVudGF0aW9uIGhvb2tzIGZpbGVcbmV4cG9ydCBjb25zdCBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRSA9IFwiaW5zdHJ1bWVudGF0aW9uXCI7XG4vLyBCZWNhdXNlIG9uIFdpbmRvd3MgYWJzb2x1dGUgcGF0aHMgaW4gdGhlIGdlbmVyYXRlZCBjb2RlIGNhbiBicmVhayBiZWNhdXNlIG9mIG51bWJlcnMsIGVnIDEgaW4gdGhlIHBhdGgsXG4vLyB3ZSBoYXZlIHRvIHVzZSBhIHByaXZhdGUgYWxpYXNcbmV4cG9ydCBjb25zdCBQQUdFU19ESVJfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1wYWdlc1wiO1xuZXhwb3J0IGNvbnN0IERPVF9ORVhUX0FMSUFTID0gXCJwcml2YXRlLWRvdC1uZXh0XCI7XG5leHBvcnQgY29uc3QgUk9PVF9ESVJfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yb290LWRpclwiO1xuZXhwb3J0IGNvbnN0IEFQUF9ESVJfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1hcHAtZGlyXCI7XG5leHBvcnQgY29uc3QgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yc2MtbW9kLXJlZi1wcm94eVwiO1xuZXhwb3J0IGNvbnN0IFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLXZhbGlkYXRlXCI7XG5leHBvcnQgY29uc3QgUlNDX0FDVElPTl9QUk9YWV9BTElBUyA9IFwicHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tcHJveHlcIjtcbmV4cG9ydCBjb25zdCBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWVuY3J5cHRpb25cIjtcbmV4cG9ydCBjb25zdCBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTID0gXCJwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1jbGllbnQtd3JhcHBlclwiO1xuZXhwb3J0IGNvbnN0IFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVCA9IGBZb3UgY2FuIG5vdCBoYXZlIGEgJ19uZXh0JyBmb2xkZXIgaW5zaWRlIG9mIHlvdXIgcHVibGljIGZvbGRlci4gVGhpcyBjb25mbGljdHMgd2l0aCB0aGUgaW50ZXJuYWwgJy9fbmV4dCcgcm91dGUuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3B1YmxpYy1uZXh0LWZvbGRlci1jb25mbGljdGA7XG5leHBvcnQgY29uc3QgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTdGF0aWNQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSB5b3VyIGdldEluaXRpYWxQcm9wc2A7XG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFBsZWFzZSByZW1vdmUgZ2V0SW5pdGlhbFByb3BzLmA7XG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0U3RhdGljUHJvcHMgb3IgZ2V0U3RhdGljUGF0aHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFRvIHVzZSBTU0csIHBsZWFzZSByZW1vdmUgZ2V0U2VydmVyU2lkZVByb3BzYDtcbmV4cG9ydCBjb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1IgPSBgY2FuIG5vdCBoYXZlIGdldEluaXRpYWxQcm9wcy9nZXRTZXJ2ZXJTaWRlUHJvcHMsIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLzQwNC1nZXQtaW5pdGlhbC1wcm9wc2A7XG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUiA9IGBwYWdlcyB3aXRoIFxcYGdldFNlcnZlclNpZGVQcm9wc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtZXhwb3J0YDtcbmV4cG9ydCBjb25zdCBHU1BfTk9fUkVUVVJORURfVkFMVUUgPSBcIllvdXIgYGdldFN0YXRpY1Byb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gP1wiO1xuZXhwb3J0IGNvbnN0IEdTU1BfTk9fUkVUVVJORURfVkFMVUUgPSBcIllvdXIgYGdldFNlcnZlclNpZGVQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD9cIjtcbmV4cG9ydCBjb25zdCBVTlNUQUJMRV9SRVZBTElEQVRFX1JFTkFNRV9FUlJPUiA9IFwiVGhlIGB1bnN0YWJsZV9yZXZhbGlkYXRlYCBwcm9wZXJ0eSBpcyBhdmFpbGFibGUgZm9yIGdlbmVyYWwgdXNlLlxcblwiICsgXCJQbGVhc2UgdXNlIGByZXZhbGlkYXRlYCBpbnN0ZWFkLlwiO1xuZXhwb3J0IGNvbnN0IEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUiA9IGBjYW4gbm90IGJlIGF0dGFjaGVkIHRvIGEgcGFnZSdzIGNvbXBvbmVudCBhbmQgbXVzdCBiZSBleHBvcnRlZCBmcm9tIHRoZSBwYWdlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtY29tcG9uZW50LW1lbWJlcmA7XG5leHBvcnQgY29uc3QgTk9OX1NUQU5EQVJEX05PREVfRU5WID0gYFlvdSBhcmUgdXNpbmcgYSBub24tc3RhbmRhcmQgXCJOT0RFX0VOVlwiIHZhbHVlIGluIHlvdXIgZW52aXJvbm1lbnQuIFRoaXMgY3JlYXRlcyBpbmNvbnNpc3RlbmNpZXMgaW4gdGhlIHByb2plY3QgYW5kIGlzIHN0cm9uZ2x5IGFkdmlzZWQgYWdhaW5zdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9ub24tc3RhbmRhcmQtbm9kZS1lbnZgO1xuZXhwb3J0IGNvbnN0IFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1IgPSBgUGFnZXMgd2l0aCBcXGBmYWxsYmFja1xcYCBlbmFibGVkIGluIFxcYGdldFN0YXRpY1BhdGhzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3NnLWZhbGxiYWNrLXRydWUtZXhwb3J0YDtcbmV4cG9ydCBjb25zdCBFU0xJTlRfREVGQVVMVF9ESVJTID0gW1xuICAgIFwiYXBwXCIsXG4gICAgXCJwYWdlc1wiLFxuICAgIFwiY29tcG9uZW50c1wiLFxuICAgIFwibGliXCIsXG4gICAgXCJzcmNcIlxuXTtcbmV4cG9ydCBjb25zdCBFU0xJTlRfUFJPTVBUX1ZBTFVFUyA9IFtcbiAgICB7XG4gICAgICAgIHRpdGxlOiBcIlN0cmljdFwiLFxuICAgICAgICByZWNvbW1lbmRlZDogdHJ1ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBleHRlbmRzOiBcIm5leHQvY29yZS13ZWItdml0YWxzXCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aXRsZTogXCJCYXNlXCIsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgZXh0ZW5kczogXCJuZXh0XCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aXRsZTogXCJDYW5jZWxcIixcbiAgICAgICAgY29uZmlnOiBudWxsXG4gICAgfVxuXTtcbmV4cG9ydCBjb25zdCBTRVJWRVJfUlVOVElNRSA9IHtcbiAgICBlZGdlOiBcImVkZ2VcIixcbiAgICBleHBlcmltZW50YWxFZGdlOiBcImV4cGVyaW1lbnRhbC1lZGdlXCIsXG4gICAgbm9kZWpzOiBcIm5vZGVqc1wiXG59O1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHdlYnBhY2sgbGF5ZXJzLiBUaGVzZSBsYXllcnMgYXJlIHRoZSBwcmltaXRpdmVzIGZvciB0aGVcbiAqIHdlYnBhY2sgY2h1bmtzLlxuICovIGNvbnN0IFdFQlBBQ0tfTEFZRVJTX05BTUVTID0ge1xuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBzaGFyZWQgY29kZSBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlciBidW5kbGVzLlxuICAgKi8gc2hhcmVkOiBcInNoYXJlZFwiLFxuICAgIC8qKlxuICAgKiBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBsYXllciAocnNjKS5cbiAgICovIHJlYWN0U2VydmVyQ29tcG9uZW50czogXCJyc2NcIixcbiAgICAvKipcbiAgICogU2VydmVyIFNpZGUgUmVuZGVyaW5nIGxheWVyIGZvciBhcHAgKHNzcikuXG4gICAqLyBzZXJ2ZXJTaWRlUmVuZGVyaW5nOiBcInNzclwiLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBhY3Rpb25zLlxuICAgKi8gYWN0aW9uQnJvd3NlcjogXCJhY3Rpb24tYnJvd3NlclwiLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpOiBcImFwaVwiLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBtaWRkbGV3YXJlIGNvZGUuXG4gICAqLyBtaWRkbGV3YXJlOiBcIm1pZGRsZXdhcmVcIixcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBhc3NldHMgb24gdGhlIGVkZ2UuXG4gICAqLyBlZGdlQXNzZXQ6IFwiZWRnZS1hc3NldFwiLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBBcHAgZGlyZWN0b3J5LlxuICAgKi8gYXBwUGFnZXNCcm93c2VyOiBcImFwcC1wYWdlcy1icm93c2VyXCIsXG4gICAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgYnVuZGxlIGxheWVyIGZvciBtZXRhZGF0YSByb3V0ZXMuXG4gICAqLyBhcHBNZXRhZGF0YVJvdXRlOiBcImFwcC1tZXRhZGF0YS1yb3V0ZVwiLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBzZXJ2ZXIgYnVuZGxlIGZvciBBcHAgUm91dGUgaGFuZGxlcnMuXG4gICAqLyBhcHBSb3V0ZUhhbmRsZXI6IFwiYXBwLXJvdXRlLWhhbmRsZXJcIlxufTtcbmNvbnN0IFdFQlBBQ0tfTEFZRVJTID0ge1xuICAgIC4uLldFQlBBQ0tfTEFZRVJTX05BTUVTLFxuICAgIEdST1VQOiB7XG4gICAgICAgIHNlcnZlcjogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcE1ldGFkYXRhUm91dGUsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBSb3V0ZUhhbmRsZXJcbiAgICAgICAgXSxcbiAgICAgICAgbm9uQ2xpZW50U2VydmVyVGFyZ2V0OiBbXG4gICAgICAgICAgICAvLyBwbHVzIG1pZGRsZXdhcmUgYW5kIHBhZ2VzIGFwaVxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMubWlkZGxld2FyZSxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwaVxuICAgICAgICBdLFxuICAgICAgICBhcHA6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBNZXRhZGF0YVJvdXRlLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUm91dGVIYW5kbGVyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNoYXJlZFxuICAgICAgICBdXG4gICAgfVxufTtcbmNvbnN0IFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUyA9IHtcbiAgICBlZGdlU1NSRW50cnk6IFwiX19uZXh0X2VkZ2Vfc3NyX2VudHJ5X19cIixcbiAgICBtZXRhZGF0YTogXCJfX25leHRfbWV0YWRhdGFfX1wiLFxuICAgIG1ldGFkYXRhUm91dGU6IFwiX19uZXh0X21ldGFkYXRhX3JvdXRlX19cIixcbiAgICBtZXRhZGF0YUltYWdlTWV0YTogXCJfX25leHRfbWV0YWRhdGFfaW1hZ2VfbWV0YV9fXCJcbn07XG5leHBvcnQgeyBXRUJQQUNLX0xBWUVSUywgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOlsiTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgiLCJQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIiLCJQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIiLCJSU0NfUFJFRkVUQ0hfU1VGRklYIiwiUlNDX1NVRkZJWCIsIk5FWFRfREFUQV9TVUZGSVgiLCJORVhUX01FVEFfU1VGRklYIiwiTkVYVF9CT0RZX1NVRkZJWCIsIk5FWFRfQ0FDSEVfVEFHU19IRUFERVIiLCJORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVIiLCJORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSIiwiTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVIiLCJORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIIiwiTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIIiwiTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQiLCJDQUNIRV9PTkVfWUVBUiIsIk1JRERMRVdBUkVfRklMRU5BTUUiLCJNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUCIsIklOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FIiwiUEFHRVNfRElSX0FMSUFTIiwiRE9UX05FWFRfQUxJQVMiLCJST09UX0RJUl9BTElBUyIsIkFQUF9ESVJfQUxJQVMiLCJSU0NfTU9EX1JFRl9QUk9YWV9BTElBUyIsIlJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVMiLCJSU0NfQUNUSU9OX1BST1hZX0FMSUFTIiwiUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTIiwiUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUyIsIlBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVCIsIlNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVCIsIlNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVCIsIlNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1QiLCJTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1IiLCJTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SIiwiR1NQX05PX1JFVFVSTkVEX1ZBTFVFIiwiR1NTUF9OT19SRVRVUk5FRF9WQUxVRSIsIlVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SIiwiR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SIiwiTk9OX1NUQU5EQVJEX05PREVfRU5WIiwiU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUiIsIkVTTElOVF9ERUZBVUxUX0RJUlMiLCJFU0xJTlRfUFJPTVBUX1ZBTFVFUyIsInRpdGxlIiwicmVjb21tZW5kZWQiLCJjb25maWciLCJleHRlbmRzIiwiU0VSVkVSX1JVTlRJTUUiLCJlZGdlIiwiZXhwZXJpbWVudGFsRWRnZSIsIm5vZGVqcyIsIldFQlBBQ0tfTEFZRVJTX05BTUVTIiwic2hhcmVkIiwicmVhY3RTZXJ2ZXJDb21wb25lbnRzIiwic2VydmVyU2lkZVJlbmRlcmluZyIsImFjdGlvbkJyb3dzZXIiLCJhcGkiLCJtaWRkbGV3YXJlIiwiZWRnZUFzc2V0IiwiYXBwUGFnZXNCcm93c2VyIiwiYXBwTWV0YWRhdGFSb3V0ZSIsImFwcFJvdXRlSGFuZGxlciIsIldFQlBBQ0tfTEFZRVJTIiwiR1JPVVAiLCJzZXJ2ZXIiLCJub25DbGllbnRTZXJ2ZXJUYXJnZXQiLCJhcHAiLCJXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVMiLCJlZGdlU1NSRW50cnkiLCJtZXRhZGF0YSIsIm1ldGFkYXRhUm91dGUiLCJtZXRhZGF0YUltYWdlTWV0YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/constants.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/detached-promise.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/detached-promise.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DetachedPromise: () => (/* binding */ DetachedPromise)\n/* harmony export */ });\n/**\n * A `Promise.withResolvers` implementation that exposes the `resolve` and\n * `reject` functions on a `Promise`.\n *\n * @see https://tc39.es/proposal-promise-with-resolvers/\n */ class DetachedPromise {\n constructor(){\n let resolve;\n let reject;\n // Create the promise and assign the resolvers to the object.\n this.promise = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n // We know that resolvers is defined because the Promise constructor runs\n // synchronously.\n this.resolve = resolve;\n this.reject = reject;\n }\n} //# sourceMappingURL=detached-promise.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2RldGFjaGVkLXByb21pc2UuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7OztDQUtDLEdBQVUsTUFBTUE7SUFDYkMsYUFBYTtRQUNULElBQUlDO1FBQ0osSUFBSUM7UUFDSiw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDQyxPQUFPLEdBQUcsSUFBSUMsUUFBUSxDQUFDQyxLQUFLQztZQUM3QkwsVUFBVUk7WUFDVkgsU0FBU0k7UUFDYjtRQUNBLHlFQUF5RTtRQUN6RSxpQkFBaUI7UUFDakIsSUFBSSxDQUFDTCxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO0lBQ2xCO0FBQ0osRUFFQSw0Q0FBNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzPzQzODkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGBQcm9taXNlLndpdGhSZXNvbHZlcnNgIGltcGxlbWVudGF0aW9uIHRoYXQgZXhwb3NlcyB0aGUgYHJlc29sdmVgIGFuZFxuICogYHJlamVjdGAgZnVuY3Rpb25zIG9uIGEgYFByb21pc2VgLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXByb21pc2Utd2l0aC1yZXNvbHZlcnMvXG4gKi8gZXhwb3J0IGNsYXNzIERldGFjaGVkUHJvbWlzZSB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgbGV0IHJlc29sdmU7XG4gICAgICAgIGxldCByZWplY3Q7XG4gICAgICAgIC8vIENyZWF0ZSB0aGUgcHJvbWlzZSBhbmQgYXNzaWduIHRoZSByZXNvbHZlcnMgdG8gdGhlIG9iamVjdC5cbiAgICAgICAgdGhpcy5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlcywgcmVqKT0+e1xuICAgICAgICAgICAgcmVzb2x2ZSA9IHJlcztcbiAgICAgICAgICAgIHJlamVjdCA9IHJlajtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFdlIGtub3cgdGhhdCByZXNvbHZlcnMgaXMgZGVmaW5lZCBiZWNhdXNlIHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIHJ1bnNcbiAgICAgICAgLy8gc3luY2hyb25vdXNseS5cbiAgICAgICAgdGhpcy5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgdGhpcy5yZWplY3QgPSByZWplY3Q7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZXRhY2hlZC1wcm9taXNlLmpzLm1hcCJdLCJuYW1lcyI6WyJEZXRhY2hlZFByb21pc2UiLCJjb25zdHJ1Y3RvciIsInJlc29sdmUiLCJyZWplY3QiLCJwcm9taXNlIiwiUHJvbWlzZSIsInJlcyIsInJlaiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/detached-promise.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/format-server-error.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/format-server-error.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatServerError: () => (/* binding */ formatServerError)\n/* harmony export */ });\nconst invalidServerComponentReactHooks = [\n \"useDeferredValue\",\n \"useEffect\",\n \"useImperativeHandle\",\n \"useInsertionEffect\",\n \"useLayoutEffect\",\n \"useReducer\",\n \"useRef\",\n \"useState\",\n \"useSyncExternalStore\",\n \"useTransition\",\n \"experimental_useOptimistic\",\n \"useOptimistic\"\n];\nfunction setMessage(error, message) {\n error.message = message;\n if (error.stack) {\n const lines = error.stack.split(\"\\n\");\n lines[0] = message;\n error.stack = lines.join(\"\\n\");\n }\n}\nfunction formatServerError(error) {\n if (typeof (error == null ? void 0 : error.message) !== \"string\") return;\n if (error.message.includes(\"Class extends value undefined is not a constructor or null\")) {\n const addedMessage = \"This might be caused by a React Class Component being rendered in a Server Component, React Class Components only works in Client Components. Read more: https://nextjs.org/docs/messages/class-component-in-server-component\";\n // If this error instance already has the message, don't add it again\n if (error.message.includes(addedMessage)) return;\n setMessage(error, `${error.message}\n\n${addedMessage}`);\n return;\n }\n if (error.message.includes(\"createContext is not a function\")) {\n setMessage(error, 'createContext only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component');\n return;\n }\n for (const clientHook of invalidServerComponentReactHooks){\n const regex = new RegExp(`\\\\b${clientHook}\\\\b.*is not a function`);\n if (regex.test(error.message)) {\n setMessage(error, `${clientHook} only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`);\n return;\n }\n }\n} //# sourceMappingURL=format-server-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2Zvcm1hdC1zZXJ2ZXItZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE1BQU1BLG1DQUFtQztJQUNyQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDSDtBQUNELFNBQVNDLFdBQVdDLEtBQUssRUFBRUMsT0FBTztJQUM5QkQsTUFBTUMsT0FBTyxHQUFHQTtJQUNoQixJQUFJRCxNQUFNRSxLQUFLLEVBQUU7UUFDYixNQUFNQyxRQUFRSCxNQUFNRSxLQUFLLENBQUNFLEtBQUssQ0FBQztRQUNoQ0QsS0FBSyxDQUFDLEVBQUUsR0FBR0Y7UUFDWEQsTUFBTUUsS0FBSyxHQUFHQyxNQUFNRSxJQUFJLENBQUM7SUFDN0I7QUFDSjtBQUNPLFNBQVNDLGtCQUFrQk4sS0FBSztJQUNuQyxJQUFJLE9BQVFBLENBQUFBLFNBQVMsT0FBTyxLQUFLLElBQUlBLE1BQU1DLE9BQU8sTUFBTSxVQUFVO0lBQ2xFLElBQUlELE1BQU1DLE9BQU8sQ0FBQ00sUUFBUSxDQUFDLCtEQUErRDtRQUN0RixNQUFNQyxlQUFlO1FBQ3JCLHFFQUFxRTtRQUNyRSxJQUFJUixNQUFNQyxPQUFPLENBQUNNLFFBQVEsQ0FBQ0MsZUFBZTtRQUMxQ1QsV0FBV0MsT0FBTyxDQUFDLEVBQUVBLE1BQU1DLE9BQU8sQ0FBQzs7QUFFM0MsRUFBRU8sYUFBYSxDQUFDO1FBQ1I7SUFDSjtJQUNBLElBQUlSLE1BQU1DLE9BQU8sQ0FBQ00sUUFBUSxDQUFDLG9DQUFvQztRQUMzRFIsV0FBV0MsT0FBTztRQUNsQjtJQUNKO0lBQ0EsS0FBSyxNQUFNUyxjQUFjWCxpQ0FBaUM7UUFDdEQsTUFBTVksUUFBUSxJQUFJQyxPQUFPLENBQUMsR0FBRyxFQUFFRixXQUFXLHNCQUFzQixDQUFDO1FBQ2pFLElBQUlDLE1BQU1FLElBQUksQ0FBQ1osTUFBTUMsT0FBTyxHQUFHO1lBQzNCRixXQUFXQyxPQUFPLENBQUMsRUFBRVMsV0FBVyxvTEFBb0wsQ0FBQztZQUNyTjtRQUNKO0lBQ0o7QUFDSixFQUVBLCtDQUErQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2Zvcm1hdC1zZXJ2ZXItZXJyb3IuanM/MjBhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpbnZhbGlkU2VydmVyQ29tcG9uZW50UmVhY3RIb29rcyA9IFtcbiAgICBcInVzZURlZmVycmVkVmFsdWVcIixcbiAgICBcInVzZUVmZmVjdFwiLFxuICAgIFwidXNlSW1wZXJhdGl2ZUhhbmRsZVwiLFxuICAgIFwidXNlSW5zZXJ0aW9uRWZmZWN0XCIsXG4gICAgXCJ1c2VMYXlvdXRFZmZlY3RcIixcbiAgICBcInVzZVJlZHVjZXJcIixcbiAgICBcInVzZVJlZlwiLFxuICAgIFwidXNlU3RhdGVcIixcbiAgICBcInVzZVN5bmNFeHRlcm5hbFN0b3JlXCIsXG4gICAgXCJ1c2VUcmFuc2l0aW9uXCIsXG4gICAgXCJleHBlcmltZW50YWxfdXNlT3B0aW1pc3RpY1wiLFxuICAgIFwidXNlT3B0aW1pc3RpY1wiXG5dO1xuZnVuY3Rpb24gc2V0TWVzc2FnZShlcnJvciwgbWVzc2FnZSkge1xuICAgIGVycm9yLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIGlmIChlcnJvci5zdGFjaykge1xuICAgICAgICBjb25zdCBsaW5lcyA9IGVycm9yLnN0YWNrLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgICBsaW5lc1swXSA9IG1lc3NhZ2U7XG4gICAgICAgIGVycm9yLnN0YWNrID0gbGluZXMuam9pbihcIlxcblwiKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2VydmVyRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIChlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZSkgIT09IFwic3RyaW5nXCIpIHJldHVybjtcbiAgICBpZiAoZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcIkNsYXNzIGV4dGVuZHMgdmFsdWUgdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIikpIHtcbiAgICAgICAgY29uc3QgYWRkZWRNZXNzYWdlID0gXCJUaGlzIG1pZ2h0IGJlIGNhdXNlZCBieSBhIFJlYWN0IENsYXNzIENvbXBvbmVudCBiZWluZyByZW5kZXJlZCBpbiBhIFNlcnZlciBDb21wb25lbnQsIFJlYWN0IENsYXNzIENvbXBvbmVudHMgb25seSB3b3JrcyBpbiBDbGllbnQgQ29tcG9uZW50cy4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9jbGFzcy1jb21wb25lbnQtaW4tc2VydmVyLWNvbXBvbmVudFwiO1xuICAgICAgICAvLyBJZiB0aGlzIGVycm9yIGluc3RhbmNlIGFscmVhZHkgaGFzIHRoZSBtZXNzYWdlLCBkb24ndCBhZGQgaXQgYWdhaW5cbiAgICAgICAgaWYgKGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoYWRkZWRNZXNzYWdlKSkgcmV0dXJuO1xuICAgICAgICBzZXRNZXNzYWdlKGVycm9yLCBgJHtlcnJvci5tZXNzYWdlfVxuXG4ke2FkZGVkTWVzc2FnZX1gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImNyZWF0ZUNvbnRleHQgaXMgbm90IGEgZnVuY3Rpb25cIikpIHtcbiAgICAgICAgc2V0TWVzc2FnZShlcnJvciwgJ2NyZWF0ZUNvbnRleHQgb25seSB3b3JrcyBpbiBDbGllbnQgQ29tcG9uZW50cy4gQWRkIHRoZSBcInVzZSBjbGllbnRcIiBkaXJlY3RpdmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSB0byB1c2UgaXQuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvY29udGV4dC1pbi1zZXJ2ZXItY29tcG9uZW50Jyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChjb25zdCBjbGllbnRIb29rIG9mIGludmFsaWRTZXJ2ZXJDb21wb25lbnRSZWFjdEhvb2tzKXtcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcYiR7Y2xpZW50SG9va31cXFxcYi4qaXMgbm90IGEgZnVuY3Rpb25gKTtcbiAgICAgICAgaWYgKHJlZ2V4LnRlc3QoZXJyb3IubWVzc2FnZSkpIHtcbiAgICAgICAgICAgIHNldE1lc3NhZ2UoZXJyb3IsIGAke2NsaWVudEhvb2t9IG9ubHkgd29ya3MgaW4gQ2xpZW50IENvbXBvbmVudHMuIEFkZCB0aGUgXCJ1c2UgY2xpZW50XCIgZGlyZWN0aXZlIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUgdG8gdXNlIGl0LiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3JlYWN0LWNsaWVudC1ob29rLWluLXNlcnZlci1jb21wb25lbnRgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LXNlcnZlci1lcnJvci5qcy5tYXAiXSwibmFtZXMiOlsiaW52YWxpZFNlcnZlckNvbXBvbmVudFJlYWN0SG9va3MiLCJzZXRNZXNzYWdlIiwiZXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJsaW5lcyIsInNwbGl0Iiwiam9pbiIsImZvcm1hdFNlcnZlckVycm9yIiwiaW5jbHVkZXMiLCJhZGRlZE1lc3NhZ2UiLCJjbGllbnRIb29rIiwicmVnZXgiLCJSZWdFeHAiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/format-server-error.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/interop-default.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/interop-default.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ interopDefault: () => (/* binding */ interopDefault)\n/* harmony export */ });\nfunction interopDefault(mod) {\n return mod.default || mod;\n} //# sourceMappingURL=interop-default.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2ludGVyb3AtZGVmYXVsdC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sU0FBU0EsZUFBZUMsR0FBRztJQUM5QixPQUFPQSxJQUFJQyxPQUFPLElBQUlEO0FBQzFCLEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvaW50ZXJvcC1kZWZhdWx0LmpzP2EyOTIiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGludGVyb3BEZWZhdWx0KG1vZCkge1xuICAgIHJldHVybiBtb2QuZGVmYXVsdCB8fCBtb2Q7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVyb3AtZGVmYXVsdC5qcy5tYXAiXSwibmFtZXMiOlsiaW50ZXJvcERlZmF1bHQiLCJtb2QiLCJkZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/interop-default.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/is-api-route.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/is-api-route.js ***!
- \************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAPIRoute: () => (/* binding */ isAPIRoute)\n/* harmony export */ });\nfunction isAPIRoute(value) {\n return value === \"/api\" || Boolean(value == null ? void 0 : value.startsWith(\"/api/\"));\n} //# sourceMappingURL=is-api-route.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWFwaS1yb3V0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sU0FBU0EsV0FBV0MsS0FBSztJQUM1QixPQUFPQSxVQUFVLFVBQVVDLFFBQVFELFNBQVMsT0FBTyxLQUFLLElBQUlBLE1BQU1FLFVBQVUsQ0FBQztBQUNqRixFQUVBLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWFwaS1yb3V0ZS5qcz8xZDc2Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0FQSVJvdXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBcIi9hcGlcIiB8fCBCb29sZWFuKHZhbHVlID09IG51bGwgPyB2b2lkIDAgOiB2YWx1ZS5zdGFydHNXaXRoKFwiL2FwaS9cIikpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1hcGktcm91dGUuanMubWFwIl0sIm5hbWVzIjpbImlzQVBJUm91dGUiLCJ2YWx1ZSIsIkJvb2xlYW4iLCJzdGFydHNXaXRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/is-api-route.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/is-app-page-route.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/is-app-page-route.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAppPageRoute: () => (/* binding */ isAppPageRoute)\n/* harmony export */ });\nfunction isAppPageRoute(route) {\n return route.endsWith(\"/page\");\n} //# sourceMappingURL=is-app-page-route.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWFwcC1wYWdlLXJvdXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxTQUFTQSxlQUFlQyxLQUFLO0lBQ2hDLE9BQU9BLE1BQU1DLFFBQVEsQ0FBQztBQUMxQixFQUVBLDZDQUE2QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWFwcC1wYWdlLXJvdXRlLmpzPzhjOTQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzQXBwUGFnZVJvdXRlKHJvdXRlKSB7XG4gICAgcmV0dXJuIHJvdXRlLmVuZHNXaXRoKFwiL3BhZ2VcIik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWFwcC1wYWdlLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6WyJpc0FwcFBhZ2VSb3V0ZSIsInJvdXRlIiwiZW5kc1dpdGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/is-app-page-route.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/is-app-route-route.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/is-app-route-route.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAppRouteRoute: () => (/* binding */ isAppRouteRoute)\n/* harmony export */ });\nfunction isAppRouteRoute(route) {\n return route.endsWith(\"/route\");\n} //# sourceMappingURL=is-app-route-route.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWFwcC1yb3V0ZS1yb3V0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sU0FBU0EsZ0JBQWdCQyxLQUFLO0lBQ2pDLE9BQU9BLE1BQU1DLFFBQVEsQ0FBQztBQUMxQixFQUVBLDhDQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWFwcC1yb3V0ZS1yb3V0ZS5qcz9hOTIyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0FwcFJvdXRlUm91dGUocm91dGUpIHtcbiAgICByZXR1cm4gcm91dGUuZW5kc1dpdGgoXCIvcm91dGVcIik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWFwcC1yb3V0ZS1yb3V0ZS5qcy5tYXAiXSwibmFtZXMiOlsiaXNBcHBSb3V0ZVJvdXRlIiwicm91dGUiLCJlbmRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/is-app-route-route.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/is-edge-runtime.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/is-edge-runtime.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isEdgeRuntime: () => (/* binding */ isEdgeRuntime)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n\nfunction isEdgeRuntime(value) {\n return value === _constants__WEBPACK_IMPORTED_MODULE_0__.SERVER_RUNTIME.experimentalEdge || value === _constants__WEBPACK_IMPORTED_MODULE_0__.SERVER_RUNTIME.edge;\n} //# sourceMappingURL=is-edge-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWVkZ2UtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2QztBQUN0QyxTQUFTQyxjQUFjQyxLQUFLO0lBQy9CLE9BQU9BLFVBQVVGLHNEQUFjQSxDQUFDRyxnQkFBZ0IsSUFBSUQsVUFBVUYsc0RBQWNBLENBQUNJLElBQUk7QUFDckYsRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2xpYi9pcy1lZGdlLXJ1bnRpbWUuanM/YzViNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVJWRVJfUlVOVElNRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0IGZ1bmN0aW9uIGlzRWRnZVJ1bnRpbWUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IFNFUlZFUl9SVU5USU1FLmV4cGVyaW1lbnRhbEVkZ2UgfHwgdmFsdWUgPT09IFNFUlZFUl9SVU5USU1FLmVkZ2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVkZ2UtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOlsiU0VSVkVSX1JVTlRJTUUiLCJpc0VkZ2VSdW50aW1lIiwidmFsdWUiLCJleHBlcmltZW50YWxFZGdlIiwiZWRnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/is-edge-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/is-error.js":
-/*!********************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/is-error.js ***!
- \********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isError),\n/* harmony export */ getProperError: () => (/* binding */ getProperError)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_is_plain_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/is-plain-object.js\");\n\nfunction isError(err) {\n return typeof err === \"object\" && err !== null && \"name\" in err && \"message\" in err;\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === \"undefined\") {\n return new Error(\"An undefined error was thrown, \" + \"see here for more info: https://nextjs.org/docs/messages/threw-undefined\");\n }\n if (err === null) {\n return new Error(\"A null error was thrown, \" + \"see here for more info: https://nextjs.org/docs/messages/threw-undefined\");\n }\n }\n return new Error((0,_shared_lib_is_plain_object__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(err) ? JSON.stringify(err) : err + \"\");\n} //# sourceMappingURL=is-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4RDtBQUMvQyxTQUFTQyxRQUFRQyxHQUFHO0lBQy9CLE9BQU8sT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsVUFBVUEsT0FBTyxhQUFhQTtBQUNwRjtBQUNPLFNBQVNDLGVBQWVELEdBQUc7SUFDOUIsSUFBSUQsUUFBUUMsTUFBTTtRQUNkLE9BQU9BO0lBQ1g7SUFDQSxJQUFJRSxJQUFzQyxFQUFFO1FBQ3hDLHdEQUF3RDtRQUN4RCwyQkFBMkI7UUFDM0IsSUFBSSxPQUFPRixRQUFRLGFBQWE7WUFDNUIsT0FBTyxJQUFJRyxNQUFNLG9DQUFvQztRQUN6RDtRQUNBLElBQUlILFFBQVEsTUFBTTtZQUNkLE9BQU8sSUFBSUcsTUFBTSw4QkFBOEI7UUFDbkQ7SUFDSjtJQUNBLE9BQU8sSUFBSUEsTUFBTUwsMEVBQWFBLENBQUNFLE9BQU9JLEtBQUtDLFNBQVMsQ0FBQ0wsT0FBT0EsTUFBTTtBQUN0RSxFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2lzLWVycm9yLmpzP2QwY2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGFpbk9iamVjdCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL2lzLXBsYWluLW9iamVjdFwiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gXCJvYmplY3RcIiAmJiBlcnIgIT09IG51bGwgJiYgXCJuYW1lXCIgaW4gZXJyICYmIFwibWVzc2FnZVwiIGluIGVycjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wZXJFcnJvcihlcnIpIHtcbiAgICBpZiAoaXNFcnJvcihlcnIpKSB7XG4gICAgICAgIHJldHVybiBlcnI7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgIC8vIHByb3ZpZGUgYmV0dGVyIGVycm9yIGZvciBjYXNlIHdoZXJlIGB0aHJvdyB1bmRlZmluZWRgXG4gICAgICAgIC8vIGlzIGNhbGxlZCBpbiBkZXZlbG9wbWVudFxuICAgICAgICBpZiAodHlwZW9mIGVyciA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcIkFuIHVuZGVmaW5lZCBlcnJvciB3YXMgdGhyb3duLCBcIiArIFwic2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoXCJBIG51bGwgZXJyb3Igd2FzIHRocm93biwgXCIgKyBcInNlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3RocmV3LXVuZGVmaW5lZFwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEVycm9yKGlzUGxhaW5PYmplY3QoZXJyKSA/IEpTT04uc3RyaW5naWZ5KGVycikgOiBlcnIgKyBcIlwiKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbImlzUGxhaW5PYmplY3QiLCJpc0Vycm9yIiwiZXJyIiwiZ2V0UHJvcGVyRXJyb3IiLCJwcm9jZXNzIiwiRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/is-error.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/clone-metadata.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/clone-metadata.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cloneMetadata: () => (/* binding */ cloneMetadata)\n/* harmony export */ });\nconst TYPE_URL = \"__METADATA_URL\";\nfunction replacer(_key, val) {\n // clone URL as string but recover it as URL\n if (val instanceof URL) {\n return {\n _type: TYPE_URL,\n value: val.href\n };\n }\n return val;\n}\nfunction reviver(_key, val) {\n if (typeof val === \"object\" && val !== null && val._type === TYPE_URL) {\n return new URL(val.value);\n }\n return val;\n}\nfunction cloneMetadata(metadata) {\n const jsonString = JSON.stringify(metadata, replacer);\n return JSON.parse(jsonString, reviver);\n} //# sourceMappingURL=clone-metadata.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2Nsb25lLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxXQUFXO0FBQ2pCLFNBQVNDLFNBQVNDLElBQUksRUFBRUMsR0FBRztJQUN2Qiw0Q0FBNEM7SUFDNUMsSUFBSUEsZUFBZUMsS0FBSztRQUNwQixPQUFPO1lBQ0hDLE9BQU9MO1lBQ1BNLE9BQU9ILElBQUlJLElBQUk7UUFDbkI7SUFDSjtJQUNBLE9BQU9KO0FBQ1g7QUFDQSxTQUFTSyxRQUFRTixJQUFJLEVBQUVDLEdBQUc7SUFDdEIsSUFBSSxPQUFPQSxRQUFRLFlBQVlBLFFBQVEsUUFBUUEsSUFBSUUsS0FBSyxLQUFLTCxVQUFVO1FBQ25FLE9BQU8sSUFBSUksSUFBSUQsSUFBSUcsS0FBSztJQUM1QjtJQUNBLE9BQU9IO0FBQ1g7QUFDTyxTQUFTTSxjQUFjQyxRQUFRO0lBQ2xDLE1BQU1DLGFBQWFDLEtBQUtDLFNBQVMsQ0FBQ0gsVUFBVVQ7SUFDNUMsT0FBT1csS0FBS0UsS0FBSyxDQUFDSCxZQUFZSDtBQUNsQyxFQUVBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2Nsb25lLW1ldGFkYXRhLmpzPzViZGIiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVFlQRV9VUkwgPSBcIl9fTUVUQURBVEFfVVJMXCI7XG5mdW5jdGlvbiByZXBsYWNlcihfa2V5LCB2YWwpIHtcbiAgICAvLyBjbG9uZSBVUkwgYXMgc3RyaW5nIGJ1dCByZWNvdmVyIGl0IGFzIFVSTFxuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIF90eXBlOiBUWVBFX1VSTCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWwuaHJlZlxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufVxuZnVuY3Rpb24gcmV2aXZlcihfa2V5LCB2YWwpIHtcbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiAmJiB2YWwgIT09IG51bGwgJiYgdmFsLl90eXBlID09PSBUWVBFX1VSTCkge1xuICAgICAgICByZXR1cm4gbmV3IFVSTCh2YWwudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lTWV0YWRhdGEobWV0YWRhdGEpIHtcbiAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEsIHJlcGxhY2VyKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uU3RyaW5nLCByZXZpdmVyKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xvbmUtbWV0YWRhdGEuanMubWFwIl0sIm5hbWVzIjpbIlRZUEVfVVJMIiwicmVwbGFjZXIiLCJfa2V5IiwidmFsIiwiVVJMIiwiX3R5cGUiLCJ2YWx1ZSIsImhyZWYiLCJyZXZpdmVyIiwiY2xvbmVNZXRhZGF0YSIsIm1ldGFkYXRhIiwianNvblN0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJwYXJzZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/clone-metadata.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/constants.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/constants.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IconKeys: () => (/* binding */ IconKeys),\n/* harmony export */ ViewportMetaKeys: () => (/* binding */ ViewportMetaKeys)\n/* harmony export */ });\nconst ViewportMetaKeys = {\n width: \"width\",\n height: \"height\",\n initialScale: \"initial-scale\",\n minimumScale: \"minimum-scale\",\n maximumScale: \"maximum-scale\",\n viewportFit: \"viewport-fit\",\n userScalable: \"user-scalable\",\n interactiveWidget: \"interactive-widget\"\n};\nconst IconKeys = [\n \"icon\",\n \"shortcut\",\n \"apple\",\n \"other\"\n]; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPLE1BQU1BLG1CQUFtQjtJQUM1QkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLGNBQWM7SUFDZEMsY0FBYztJQUNkQyxjQUFjO0lBQ2RDLGFBQWE7SUFDYkMsY0FBYztJQUNkQyxtQkFBbUI7QUFDdkIsRUFBRTtBQUNLLE1BQU1DLFdBQVc7SUFDcEI7SUFDQTtJQUNBO0lBQ0E7Q0FDSCxDQUFDLENBRUYscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvY29uc3RhbnRzLmpzPzc5MzAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZpZXdwb3J0TWV0YUtleXMgPSB7XG4gICAgd2lkdGg6IFwid2lkdGhcIixcbiAgICBoZWlnaHQ6IFwiaGVpZ2h0XCIsXG4gICAgaW5pdGlhbFNjYWxlOiBcImluaXRpYWwtc2NhbGVcIixcbiAgICBtaW5pbXVtU2NhbGU6IFwibWluaW11bS1zY2FsZVwiLFxuICAgIG1heGltdW1TY2FsZTogXCJtYXhpbXVtLXNjYWxlXCIsXG4gICAgdmlld3BvcnRGaXQ6IFwidmlld3BvcnQtZml0XCIsXG4gICAgdXNlclNjYWxhYmxlOiBcInVzZXItc2NhbGFibGVcIixcbiAgICBpbnRlcmFjdGl2ZVdpZGdldDogXCJpbnRlcmFjdGl2ZS13aWRnZXRcIlxufTtcbmV4cG9ydCBjb25zdCBJY29uS2V5cyA9IFtcbiAgICBcImljb25cIixcbiAgICBcInNob3J0Y3V0XCIsXG4gICAgXCJhcHBsZVwiLFxuICAgIFwib3RoZXJcIlxuXTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJWaWV3cG9ydE1ldGFLZXlzIiwid2lkdGgiLCJoZWlnaHQiLCJpbml0aWFsU2NhbGUiLCJtaW5pbXVtU2NhbGUiLCJtYXhpbXVtU2NhbGUiLCJ2aWV3cG9ydEZpdCIsInVzZXJTY2FsYWJsZSIsImludGVyYWN0aXZlV2lkZ2V0IiwiSWNvbktleXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/constants.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/default-metadata.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/default-metadata.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createDefaultMetadata: () => (/* binding */ createDefaultMetadata),\n/* harmony export */ createDefaultViewport: () => (/* binding */ createDefaultViewport)\n/* harmony export */ });\nfunction createDefaultViewport() {\n return {\n // name=viewport\n width: \"device-width\",\n initialScale: 1,\n // visual metadata\n themeColor: null,\n colorScheme: null\n };\n}\nfunction createDefaultMetadata() {\n return {\n // Deprecated ones\n viewport: null,\n themeColor: null,\n colorScheme: null,\n metadataBase: null,\n // Other values are all null\n title: null,\n description: null,\n applicationName: null,\n authors: null,\n generator: null,\n keywords: null,\n referrer: null,\n creator: null,\n publisher: null,\n robots: null,\n manifest: null,\n alternates: {\n canonical: null,\n languages: null,\n media: null,\n types: null\n },\n icons: null,\n openGraph: null,\n twitter: null,\n verification: {},\n appleWebApp: null,\n formatDetection: null,\n itunes: null,\n abstract: null,\n appLinks: null,\n archives: null,\n assets: null,\n bookmarks: null,\n category: null,\n classification: null,\n other: {}\n };\n} //# sourceMappingURL=default-metadata.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2RlZmF1bHQtbWV0YWRhdGEuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTQTtJQUNaLE9BQU87UUFDSCxnQkFBZ0I7UUFDaEJDLE9BQU87UUFDUEMsY0FBYztRQUNkLGtCQUFrQjtRQUNsQkMsWUFBWTtRQUNaQyxhQUFhO0lBQ2pCO0FBQ0o7QUFDTyxTQUFTQztJQUNaLE9BQU87UUFDSCxrQkFBa0I7UUFDbEJDLFVBQVU7UUFDVkgsWUFBWTtRQUNaQyxhQUFhO1FBQ2JHLGNBQWM7UUFDZCw0QkFBNEI7UUFDNUJDLE9BQU87UUFDUEMsYUFBYTtRQUNiQyxpQkFBaUI7UUFDakJDLFNBQVM7UUFDVEMsV0FBVztRQUNYQyxVQUFVO1FBQ1ZDLFVBQVU7UUFDVkMsU0FBUztRQUNUQyxXQUFXO1FBQ1hDLFFBQVE7UUFDUkMsVUFBVTtRQUNWQyxZQUFZO1lBQ1JDLFdBQVc7WUFDWEMsV0FBVztZQUNYQyxPQUFPO1lBQ1BDLE9BQU87UUFDWDtRQUNBQyxPQUFPO1FBQ1BDLFdBQVc7UUFDWEMsU0FBUztRQUNUQyxjQUFjLENBQUM7UUFDZkMsYUFBYTtRQUNiQyxpQkFBaUI7UUFDakJDLFFBQVE7UUFDUkMsVUFBVTtRQUNWQyxVQUFVO1FBQ1ZDLFVBQVU7UUFDVkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFVBQVU7UUFDVkMsZ0JBQWdCO1FBQ2hCQyxPQUFPLENBQUM7SUFDWjtBQUNKLEVBRUEsNENBQTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvZGVmYXVsdC1tZXRhZGF0YS5qcz8zMzZhIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0Vmlld3BvcnQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLy8gbmFtZT12aWV3cG9ydFxuICAgICAgICB3aWR0aDogXCJkZXZpY2Utd2lkdGhcIixcbiAgICAgICAgaW5pdGlhbFNjYWxlOiAxLFxuICAgICAgICAvLyB2aXN1YWwgbWV0YWRhdGFcbiAgICAgICAgdGhlbWVDb2xvcjogbnVsbCxcbiAgICAgICAgY29sb3JTY2hlbWU6IG51bGxcbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRNZXRhZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBEZXByZWNhdGVkIG9uZXNcbiAgICAgICAgdmlld3BvcnQ6IG51bGwsXG4gICAgICAgIHRoZW1lQ29sb3I6IG51bGwsXG4gICAgICAgIGNvbG9yU2NoZW1lOiBudWxsLFxuICAgICAgICBtZXRhZGF0YUJhc2U6IG51bGwsXG4gICAgICAgIC8vIE90aGVyIHZhbHVlcyBhcmUgYWxsIG51bGxcbiAgICAgICAgdGl0bGU6IG51bGwsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBudWxsLFxuICAgICAgICBhcHBsaWNhdGlvbk5hbWU6IG51bGwsXG4gICAgICAgIGF1dGhvcnM6IG51bGwsXG4gICAgICAgIGdlbmVyYXRvcjogbnVsbCxcbiAgICAgICAga2V5d29yZHM6IG51bGwsXG4gICAgICAgIHJlZmVycmVyOiBudWxsLFxuICAgICAgICBjcmVhdG9yOiBudWxsLFxuICAgICAgICBwdWJsaXNoZXI6IG51bGwsXG4gICAgICAgIHJvYm90czogbnVsbCxcbiAgICAgICAgbWFuaWZlc3Q6IG51bGwsXG4gICAgICAgIGFsdGVybmF0ZXM6IHtcbiAgICAgICAgICAgIGNhbm9uaWNhbDogbnVsbCxcbiAgICAgICAgICAgIGxhbmd1YWdlczogbnVsbCxcbiAgICAgICAgICAgIG1lZGlhOiBudWxsLFxuICAgICAgICAgICAgdHlwZXM6IG51bGxcbiAgICAgICAgfSxcbiAgICAgICAgaWNvbnM6IG51bGwsXG4gICAgICAgIG9wZW5HcmFwaDogbnVsbCxcbiAgICAgICAgdHdpdHRlcjogbnVsbCxcbiAgICAgICAgdmVyaWZpY2F0aW9uOiB7fSxcbiAgICAgICAgYXBwbGVXZWJBcHA6IG51bGwsXG4gICAgICAgIGZvcm1hdERldGVjdGlvbjogbnVsbCxcbiAgICAgICAgaXR1bmVzOiBudWxsLFxuICAgICAgICBhYnN0cmFjdDogbnVsbCxcbiAgICAgICAgYXBwTGlua3M6IG51bGwsXG4gICAgICAgIGFyY2hpdmVzOiBudWxsLFxuICAgICAgICBhc3NldHM6IG51bGwsXG4gICAgICAgIGJvb2ttYXJrczogbnVsbCxcbiAgICAgICAgY2F0ZWdvcnk6IG51bGwsXG4gICAgICAgIGNsYXNzaWZpY2F0aW9uOiBudWxsLFxuICAgICAgICBvdGhlcjoge31cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0LW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVEZWZhdWx0Vmlld3BvcnQiLCJ3aWR0aCIsImluaXRpYWxTY2FsZSIsInRoZW1lQ29sb3IiLCJjb2xvclNjaGVtZSIsImNyZWF0ZURlZmF1bHRNZXRhZGF0YSIsInZpZXdwb3J0IiwibWV0YWRhdGFCYXNlIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImFwcGxpY2F0aW9uTmFtZSIsImF1dGhvcnMiLCJnZW5lcmF0b3IiLCJrZXl3b3JkcyIsInJlZmVycmVyIiwiY3JlYXRvciIsInB1Ymxpc2hlciIsInJvYm90cyIsIm1hbmlmZXN0IiwiYWx0ZXJuYXRlcyIsImNhbm9uaWNhbCIsImxhbmd1YWdlcyIsIm1lZGlhIiwidHlwZXMiLCJpY29ucyIsIm9wZW5HcmFwaCIsInR3aXR0ZXIiLCJ2ZXJpZmljYXRpb24iLCJhcHBsZVdlYkFwcCIsImZvcm1hdERldGVjdGlvbiIsIml0dW5lcyIsImFic3RyYWN0IiwiYXBwTGlua3MiLCJhcmNoaXZlcyIsImFzc2V0cyIsImJvb2ttYXJrcyIsImNhdGVnb3J5IiwiY2xhc3NpZmljYXRpb24iLCJvdGhlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/default-metadata.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/alternate.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/generate/alternate.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AlternatesMetadata: () => (/* binding */ AlternatesMetadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _meta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./meta */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/meta.js\");\n\n\n\nfunction AlternateLink({ descriptor, ...props }) {\n if (!descriptor.url) return null;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n ...props,\n ...descriptor.title && {\n title: descriptor.title\n },\n href: descriptor.url.toString()\n });\n}\nfunction AlternatesMetadata({ alternates }) {\n if (!alternates) return null;\n const { canonical, languages, media, types } = alternates;\n return (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MetaFilter)([\n canonical ? AlternateLink({\n rel: \"canonical\",\n descriptor: canonical\n }) : null,\n languages ? Object.entries(languages).flatMap(([locale, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: \"alternate\",\n hrefLang: locale,\n descriptor\n }))) : null,\n media ? Object.entries(media).flatMap(([mediaName, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: \"alternate\",\n media: mediaName,\n descriptor\n }))) : null,\n types ? Object.entries(types).flatMap(([type, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: \"alternate\",\n type,\n descriptor\n }))) : null\n ]);\n} //# sourceMappingURL=alternate.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dlbmVyYXRlL2FsdGVybmF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFnRDtBQUN0QjtBQUNVO0FBQ3BDLFNBQVNJLGNBQWMsRUFBRUMsVUFBVSxFQUFFLEdBQUdDLE9BQU87SUFDM0MsSUFBSSxDQUFDRCxXQUFXRSxHQUFHLEVBQUUsT0FBTztJQUM1QixPQUFPLFdBQVcsR0FBR04sc0RBQUlBLENBQUMsUUFBUTtRQUM5QixHQUFHSyxLQUFLO1FBQ1IsR0FBR0QsV0FBV0csS0FBSyxJQUFJO1lBQ25CQSxPQUFPSCxXQUFXRyxLQUFLO1FBQzNCLENBQUM7UUFDREMsTUFBTUosV0FBV0UsR0FBRyxDQUFDRyxRQUFRO0lBQ2pDO0FBQ0o7QUFDTyxTQUFTQyxtQkFBbUIsRUFBRUMsVUFBVSxFQUFFO0lBQzdDLElBQUksQ0FBQ0EsWUFBWSxPQUFPO0lBQ3hCLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFLEdBQUdKO0lBQy9DLE9BQU9ULGlEQUFVQSxDQUFDO1FBQ2RVLFlBQVlULGNBQWM7WUFDdEJhLEtBQUs7WUFDTFosWUFBWVE7UUFDaEIsS0FBSztRQUNMQyxZQUFZSSxPQUFPQyxPQUFPLENBQUNMLFdBQVdNLE9BQU8sQ0FBQyxDQUFDLENBQUNDLFFBQVFDLFlBQVksR0FBR0EsZUFBZSxPQUFPLEtBQUssSUFBSUEsWUFBWUMsR0FBRyxDQUFDLENBQUNsQixhQUFhRCxjQUFjO29CQUN0SWEsS0FBSztvQkFDTE8sVUFBVUg7b0JBQ1ZoQjtnQkFDSixPQUFPO1FBQ2ZVLFFBQVFHLE9BQU9DLE9BQU8sQ0FBQ0osT0FBT0ssT0FBTyxDQUFDLENBQUMsQ0FBQ0ssV0FBV0gsWUFBWSxHQUFHQSxlQUFlLE9BQU8sS0FBSyxJQUFJQSxZQUFZQyxHQUFHLENBQUMsQ0FBQ2xCLGFBQWFELGNBQWM7b0JBQ2pJYSxLQUFLO29CQUNMRixPQUFPVTtvQkFDUHBCO2dCQUNKLE9BQU87UUFDZlcsUUFBUUUsT0FBT0MsT0FBTyxDQUFDSCxPQUFPSSxPQUFPLENBQUMsQ0FBQyxDQUFDTSxNQUFNSixZQUFZLEdBQUdBLGVBQWUsT0FBTyxLQUFLLElBQUlBLFlBQVlDLEdBQUcsQ0FBQyxDQUFDbEIsYUFBYUQsY0FBYztvQkFDNUhhLEtBQUs7b0JBQ0xTO29CQUNBckI7Z0JBQ0osT0FBTztLQUNsQjtBQUNMLEVBRUEscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvYWx0ZXJuYXRlLmpzP2M0MTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IE1ldGFGaWx0ZXIgfSBmcm9tIFwiLi9tZXRhXCI7XG5mdW5jdGlvbiBBbHRlcm5hdGVMaW5rKHsgZGVzY3JpcHRvciwgLi4ucHJvcHMgfSkge1xuICAgIGlmICghZGVzY3JpcHRvci51cmwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goXCJsaW5rXCIsIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC4uLmRlc2NyaXB0b3IudGl0bGUgJiYge1xuICAgICAgICAgICAgdGl0bGU6IGRlc2NyaXB0b3IudGl0bGVcbiAgICAgICAgfSxcbiAgICAgICAgaHJlZjogZGVzY3JpcHRvci51cmwudG9TdHJpbmcoKVxuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIEFsdGVybmF0ZXNNZXRhZGF0YSh7IGFsdGVybmF0ZXMgfSkge1xuICAgIGlmICghYWx0ZXJuYXRlcykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyBjYW5vbmljYWwsIGxhbmd1YWdlcywgbWVkaWEsIHR5cGVzIH0gPSBhbHRlcm5hdGVzO1xuICAgIHJldHVybiBNZXRhRmlsdGVyKFtcbiAgICAgICAgY2Fub25pY2FsID8gQWx0ZXJuYXRlTGluayh7XG4gICAgICAgICAgICByZWw6IFwiY2Fub25pY2FsXCIsXG4gICAgICAgICAgICBkZXNjcmlwdG9yOiBjYW5vbmljYWxcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICBsYW5ndWFnZXMgPyBPYmplY3QuZW50cmllcyhsYW5ndWFnZXMpLmZsYXRNYXAoKFtsb2NhbGUsIGRlc2NyaXB0b3JzXSk9PmRlc2NyaXB0b3JzID09IG51bGwgPyB2b2lkIDAgOiBkZXNjcmlwdG9ycy5tYXAoKGRlc2NyaXB0b3IpPT5BbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgICAgICAgICAgcmVsOiBcImFsdGVybmF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICBocmVmTGFuZzogbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgfSkpKSA6IG51bGwsXG4gICAgICAgIG1lZGlhID8gT2JqZWN0LmVudHJpZXMobWVkaWEpLmZsYXRNYXAoKFttZWRpYU5hbWUsIGRlc2NyaXB0b3JzXSk9PmRlc2NyaXB0b3JzID09IG51bGwgPyB2b2lkIDAgOiBkZXNjcmlwdG9ycy5tYXAoKGRlc2NyaXB0b3IpPT5BbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgICAgICAgICAgcmVsOiBcImFsdGVybmF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICBtZWRpYTogbWVkaWFOYW1lLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgfSkpKSA6IG51bGwsXG4gICAgICAgIHR5cGVzID8gT2JqZWN0LmVudHJpZXModHlwZXMpLmZsYXRNYXAoKFt0eXBlLCBkZXNjcmlwdG9yc10pPT5kZXNjcmlwdG9ycyA9PSBudWxsID8gdm9pZCAwIDogZGVzY3JpcHRvcnMubWFwKChkZXNjcmlwdG9yKT0+QWx0ZXJuYXRlTGluayh7XG4gICAgICAgICAgICAgICAgICAgIHJlbDogXCJhbHRlcm5hdGVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIH0pKSkgOiBudWxsXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFsdGVybmF0ZS5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIlJlYWN0IiwiTWV0YUZpbHRlciIsIkFsdGVybmF0ZUxpbmsiLCJkZXNjcmlwdG9yIiwicHJvcHMiLCJ1cmwiLCJ0aXRsZSIsImhyZWYiLCJ0b1N0cmluZyIsIkFsdGVybmF0ZXNNZXRhZGF0YSIsImFsdGVybmF0ZXMiLCJjYW5vbmljYWwiLCJsYW5ndWFnZXMiLCJtZWRpYSIsInR5cGVzIiwicmVsIiwiT2JqZWN0IiwiZW50cmllcyIsImZsYXRNYXAiLCJsb2NhbGUiLCJkZXNjcmlwdG9ycyIsIm1hcCIsImhyZWZMYW5nIiwibWVkaWFOYW1lIiwidHlwZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/alternate.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/basic.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/generate/basic.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppleWebAppMeta: () => (/* binding */ AppleWebAppMeta),\n/* harmony export */ BasicMeta: () => (/* binding */ BasicMeta),\n/* harmony export */ FormatDetectionMeta: () => (/* binding */ FormatDetectionMeta),\n/* harmony export */ ItunesMeta: () => (/* binding */ ItunesMeta),\n/* harmony export */ VerificationMeta: () => (/* binding */ VerificationMeta),\n/* harmony export */ ViewportMeta: () => (/* binding */ ViewportMeta)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _meta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./meta */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/meta.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/constants.js\");\n\n\n\n\n// convert viewport object to string for viewport meta tag\nfunction resolveViewportLayout(viewport) {\n let resolved = null;\n if (viewport && typeof viewport === \"object\") {\n resolved = \"\";\n for(const viewportKey_ in _constants__WEBPACK_IMPORTED_MODULE_3__.ViewportMetaKeys){\n const viewportKey = viewportKey_;\n if (viewportKey in viewport) {\n let value = viewport[viewportKey];\n if (typeof value === \"boolean\") value = value ? \"yes\" : \"no\";\n if (resolved) resolved += \", \";\n resolved += `${_constants__WEBPACK_IMPORTED_MODULE_3__.ViewportMetaKeys[viewportKey]}=${value}`;\n }\n }\n }\n return resolved;\n}\nfunction ViewportMeta({ viewport }) {\n return (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MetaFilter)([\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"viewport\",\n content: resolveViewportLayout(viewport)\n }),\n ...viewport.themeColor ? viewport.themeColor.map((themeColor)=>(0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"theme-color\",\n content: themeColor.color,\n media: themeColor.media\n })) : [],\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"color-scheme\",\n content: viewport.colorScheme\n })\n ]);\n}\nfunction BasicMeta({ metadata }) {\n var _metadata_keywords, _metadata_robots, _metadata_robots1;\n return (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MetaFilter)([\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }),\n metadata.title !== null && metadata.title.absolute ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"title\", {\n children: metadata.title.absolute\n }) : null,\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"description\",\n content: metadata.description\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"application-name\",\n content: metadata.applicationName\n }),\n ...metadata.authors ? metadata.authors.map((author)=>[\n author.url ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: \"author\",\n href: author.url.toString()\n }) : null,\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"author\",\n content: author.name\n })\n ]) : [],\n metadata.manifest ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: \"manifest\",\n href: metadata.manifest.toString()\n }) : null,\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"generator\",\n content: metadata.generator\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"keywords\",\n content: (_metadata_keywords = metadata.keywords) == null ? void 0 : _metadata_keywords.join(\",\")\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"referrer\",\n content: metadata.referrer\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"creator\",\n content: metadata.creator\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"publisher\",\n content: metadata.publisher\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"robots\",\n content: (_metadata_robots = metadata.robots) == null ? void 0 : _metadata_robots.basic\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"googlebot\",\n content: (_metadata_robots1 = metadata.robots) == null ? void 0 : _metadata_robots1.googleBot\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"abstract\",\n content: metadata.abstract\n }),\n ...metadata.archives ? metadata.archives.map((archive)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: \"archives\",\n href: archive\n })) : [],\n ...metadata.assets ? metadata.assets.map((asset)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: \"assets\",\n href: asset\n })) : [],\n ...metadata.bookmarks ? metadata.bookmarks.map((bookmark)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: \"bookmarks\",\n href: bookmark\n })) : [],\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"category\",\n content: metadata.category\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"classification\",\n content: metadata.classification\n }),\n ...metadata.other ? Object.entries(metadata.other).map(([name, content])=>{\n if (Array.isArray(content)) {\n return content.map((contentItem)=>(0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name,\n content: contentItem\n }));\n } else {\n return (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name,\n content\n });\n }\n }) : []\n ]);\n}\nfunction ItunesMeta({ itunes }) {\n if (!itunes) return null;\n const { appId, appArgument } = itunes;\n let content = `app-id=${appId}`;\n if (appArgument) {\n content += `, app-argument=${appArgument}`;\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"apple-itunes-app\",\n content: content\n });\n}\nconst formatDetectionKeys = [\n \"telephone\",\n \"date\",\n \"address\",\n \"email\",\n \"url\"\n];\nfunction FormatDetectionMeta({ formatDetection }) {\n if (!formatDetection) return null;\n let content = \"\";\n for (const key of formatDetectionKeys){\n if (key in formatDetection) {\n if (content) content += \", \";\n content += `${key}=no`;\n }\n }\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"format-detection\",\n content: content\n });\n}\nfunction AppleWebAppMeta({ appleWebApp }) {\n if (!appleWebApp) return null;\n const { capable, title, startupImage, statusBarStyle } = appleWebApp;\n return (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MetaFilter)([\n capable ? (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"apple-mobile-web-app-capable\",\n content: \"yes\"\n }) : null,\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"apple-mobile-web-app-title\",\n content: title\n }),\n startupImage ? startupImage.map((image)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n href: image.url,\n media: image.media,\n rel: \"apple-touch-startup-image\"\n })) : null,\n statusBarStyle ? (0,_meta__WEBPACK_IMPORTED_MODULE_2__.Meta)({\n name: \"apple-mobile-web-app-status-bar-style\",\n content: statusBarStyle\n }) : null\n ]);\n}\nfunction VerificationMeta({ verification }) {\n if (!verification) return null;\n return (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MetaFilter)([\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MultiMeta)({\n namePrefix: \"google-site-verification\",\n contents: verification.google\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MultiMeta)({\n namePrefix: \"y_key\",\n contents: verification.yahoo\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MultiMeta)({\n namePrefix: \"yandex-verification\",\n contents: verification.yandex\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MultiMeta)({\n namePrefix: \"me\",\n contents: verification.me\n }),\n ...verification.other ? Object.entries(verification.other).map(([key, value])=>(0,_meta__WEBPACK_IMPORTED_MODULE_2__.MultiMeta)({\n namePrefix: key,\n contents: value\n })) : []\n ]);\n} //# sourceMappingURL=basic.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dlbmVyYXRlL2Jhc2ljLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQWdEO0FBQ3RCO0FBQzJCO0FBQ0w7QUFDaEQsMERBQTBEO0FBQzFELFNBQVNPLHNCQUFzQkMsUUFBUTtJQUNuQyxJQUFJQyxXQUFXO0lBQ2YsSUFBSUQsWUFBWSxPQUFPQSxhQUFhLFVBQVU7UUFDMUNDLFdBQVc7UUFDWCxJQUFJLE1BQU1DLGdCQUFnQkosd0RBQWdCQSxDQUFDO1lBQ3ZDLE1BQU1LLGNBQWNEO1lBQ3BCLElBQUlDLGVBQWVILFVBQVU7Z0JBQ3pCLElBQUlJLFFBQVFKLFFBQVEsQ0FBQ0csWUFBWTtnQkFDakMsSUFBSSxPQUFPQyxVQUFVLFdBQVdBLFFBQVFBLFFBQVEsUUFBUTtnQkFDeEQsSUFBSUgsVUFBVUEsWUFBWTtnQkFDMUJBLFlBQVksQ0FBQyxFQUFFSCx3REFBZ0IsQ0FBQ0ssWUFBWSxDQUFDLENBQUMsRUFBRUMsTUFBTSxDQUFDO1lBQzNEO1FBQ0o7SUFDSjtJQUNBLE9BQU9IO0FBQ1g7QUFDTyxTQUFTSSxhQUFhLEVBQUVMLFFBQVEsRUFBRTtJQUNyQyxPQUFPSixpREFBVUEsQ0FBQztRQUNkRCwyQ0FBSUEsQ0FBQztZQUNEVyxNQUFNO1lBQ05DLFNBQVNSLHNCQUFzQkM7UUFDbkM7V0FDR0EsU0FBU1EsVUFBVSxHQUFHUixTQUFTUSxVQUFVLENBQUNDLEdBQUcsQ0FBQyxDQUFDRCxhQUFhYiwyQ0FBSUEsQ0FBQztnQkFDNURXLE1BQU07Z0JBQ05DLFNBQVNDLFdBQVdFLEtBQUs7Z0JBQ3pCQyxPQUFPSCxXQUFXRyxLQUFLO1lBQzNCLE1BQU0sRUFBRTtRQUNaaEIsMkNBQUlBLENBQUM7WUFDRFcsTUFBTTtZQUNOQyxTQUFTUCxTQUFTWSxXQUFXO1FBQ2pDO0tBQ0g7QUFDTDtBQUNPLFNBQVNDLFVBQVUsRUFBRUMsUUFBUSxFQUFFO0lBQ2xDLElBQUlDLG9C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LGFBQWFyQixLQUFLLEdBQUdDLE9BQU9DLE9BQU8sQ0FBQ21CLGFBQWFyQixLQUFLLEVBQUV4QyxHQUFHLENBQUMsQ0FBQyxDQUFDcUQsS0FBSzFELE1BQU0sR0FBR1AsZ0RBQVNBLENBQUM7Z0JBQ2pGMEUsWUFBWVQ7Z0JBQ1pVLFVBQVVwRTtZQUNkLE1BQU0sRUFBRTtLQUNmO0FBQ0wsRUFFQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9iYXNpYy5qcz85YWQ1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBNZXRhLCBNZXRhRmlsdGVyLCBNdWx0aU1ldGEgfSBmcm9tIFwiLi9tZXRhXCI7XG5pbXBvcnQgeyBWaWV3cG9ydE1ldGFLZXlzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuLy8gY29udmVydCB2aWV3cG9ydCBvYmplY3QgdG8gc3RyaW5nIGZvciB2aWV3cG9ydCBtZXRhIHRhZ1xuZnVuY3Rpb24gcmVzb2x2ZVZpZXdwb3J0TGF5b3V0KHZpZXdwb3J0KSB7XG4gICAgbGV0IHJlc29sdmVkID0gbnVsbDtcbiAgICBpZiAodmlld3BvcnQgJiYgdHlwZW9mIHZpZXdwb3J0ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJlc29sdmVkID0gXCJcIjtcbiAgICAgICAgZm9yKGNvbnN0IHZpZXdwb3J0S2V5XyBpbiBWaWV3cG9ydE1ldGFLZXlzKXtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0S2V5ID0gdmlld3BvcnRLZXlfO1xuICAgICAgICAgICAgaWYgKHZpZXdwb3J0S2V5IGluIHZpZXdwb3J0KSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdmlld3BvcnRbdmlld3BvcnRLZXldO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSB2YWx1ZSA9IHZhbHVlID8gXCJ5ZXNcIiA6IFwibm9cIjtcbiAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQpIHJlc29sdmVkICs9IFwiLCBcIjtcbiAgICAgICAgICAgICAgICByZXNvbHZlZCArPSBgJHtWaWV3cG9ydE1ldGFLZXlzW3ZpZXdwb3J0S2V5XX09JHt2YWx1ZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBWaWV3cG9ydE1ldGEoeyB2aWV3cG9ydCB9KSB7XG4gICAgcmV0dXJuIE1ldGFGaWx0ZXIoW1xuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwidmlld3BvcnRcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IHJlc29sdmVWaWV3cG9ydExheW91dCh2aWV3cG9ydClcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnZpZXdwb3J0LnRoZW1lQ29sb3IgPyB2aWV3cG9ydC50aGVtZUNvbG9yLm1hcCgodGhlbWVDb2xvcik9Pk1ldGEoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFwidGhlbWUtY29sb3JcIixcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGVtZUNvbG9yLmNvbG9yLFxuICAgICAgICAgICAgICAgIG1lZGlhOiB0aGVtZUNvbG9yLm1lZGlhXG4gICAgICAgICAgICB9KSkgOiBbXSxcbiAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICBuYW1lOiBcImNvbG9yLXNjaGVtZVwiLFxuICAgICAgICAgICAgY29udGVudDogdmlld3BvcnQuY29sb3JTY2hlbWVcbiAgICAgICAgfSlcbiAgICBdKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBCYXNpY01ldGEoeyBtZXRhZGF0YSB9KSB7XG4gICAgdmFyIF9tZXRhZGF0YV9rZXl3b3JkcywgX21ldGFkYXRhX3JvYm90cywgX21ldGFkYXRhX3JvYm90czE7XG4gICAgcmV0dXJuIE1ldGFGaWx0ZXIoW1xuICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgICAgIGNoYXJTZXQ6IFwidXRmLThcIlxuICAgICAgICB9KSxcbiAgICAgICAgbWV0YWRhdGEudGl0bGUgIT09IG51bGwgJiYgbWV0YWRhdGEudGl0bGUuYWJzb2x1dGUgPyAvKiNfX1BVUkVfXyovIF9qc3goXCJ0aXRsZVwiLCB7XG4gICAgICAgICAgICBjaGlsZHJlbjogbWV0YWRhdGEudGl0bGUuYWJzb2x1dGVcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmRlc2NyaXB0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwiYXBwbGljYXRpb24tbmFtZVwiLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuYXBwbGljYXRpb25OYW1lXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5tZXRhZGF0YS5hdXRob3JzID8gbWV0YWRhdGEuYXV0aG9ycy5tYXAoKGF1dGhvcik9PltcbiAgICAgICAgICAgICAgICBhdXRob3IudXJsID8gLyojX19QVVJFX18qLyBfanN4KFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIHJlbDogXCJhdXRob3JcIixcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogYXV0aG9yLnVybC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImF1dGhvclwiLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdXRob3IubmFtZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdKSA6IFtdLFxuICAgICAgICBtZXRhZGF0YS5tYW5pZmVzdCA/IC8qI19fUFVSRV9fKi8gX2pzeChcImxpbmtcIiwge1xuICAgICAgICAgICAgcmVsOiBcIm1hbmlmZXN0XCIsXG4gICAgICAgICAgICBocmVmOiBtZXRhZGF0YS5tYW5pZmVzdC50b1N0cmluZygpXG4gICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICBuYW1lOiBcImdlbmVyYXRvclwiLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuZ2VuZXJhdG9yXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwia2V5d29yZHNcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfbWV0YWRhdGFfa2V5d29yZHMgPSBtZXRhZGF0YS5rZXl3b3JkcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9tZXRhZGF0YV9rZXl3b3Jkcy5qb2luKFwiLFwiKVxuICAgICAgICB9KSxcbiAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICBuYW1lOiBcInJlZmVycmVyXCIsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5yZWZlcnJlclxuICAgICAgICB9KSxcbiAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICBuYW1lOiBcImNyZWF0b3JcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmNyZWF0b3JcbiAgICAgICAgfSksXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgbmFtZTogXCJwdWJsaXNoZXJcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLnB1Ymxpc2hlclxuICAgICAgICB9KSxcbiAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICBuYW1lOiBcInJvYm90c1wiLFxuICAgICAgICAgICAgY29udGVudDogKF9tZXRhZGF0YV9yb2JvdHMgPSBtZXRhZGF0YS5yb2JvdHMpID09IG51bGwgPyB2b2lkIDAgOiBfbWV0YWRhdGFfcm9ib3RzLmJhc2ljXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwiZ29vZ2xlYm90XCIsXG4gICAgICAgICAgICBjb250ZW50OiAoX21ldGFkYXRhX3JvYm90czEgPSBtZXRhZGF0YS5yb2JvdHMpID09IG51bGwgPyB2b2lkIDAgOiBfbWV0YWRhdGFfcm9ib3RzMS5nb29nbGVCb3RcbiAgICAgICAgfSksXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgbmFtZTogXCJhYnN0cmFjdFwiLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuYWJzdHJhY3RcbiAgICAgICAgfSksXG4gICAgICAgIC4uLm1ldGFkYXRhLmFyY2hpdmVzID8gbWV0YWRhdGEuYXJjaGl2ZXMubWFwKChhcmNoaXZlKT0+LyojX19QVVJFX18qLyBfanN4KFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgcmVsOiBcImFyY2hpdmVzXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogYXJjaGl2ZVxuICAgICAgICAgICAgfSkpIDogW10sXG4gICAgICAgIC4uLm1ldGFkYXRhLmFzc2V0cyA/IG1ldGFkYXRhLmFzc2V0cy5tYXAoKGFzc2V0KT0+LyojX19QVVJFX18qLyBfanN4KFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgcmVsOiBcImFzc2V0c1wiLFxuICAgICAgICAgICAgICAgIGhyZWY6IGFzc2V0XG4gICAgICAgICAgICB9KSkgOiBbXSxcbiAgICAgICAgLi4ubWV0YWRhdGEuYm9va21hcmtzID8gbWV0YWRhdGEuYm9va21hcmtzLm1hcCgoYm9va21hcmspPT4vKiNfX1BVUkVfXyovIF9qc3goXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwiYm9va21hcmtzXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogYm9va21hcmtcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwiY2F0ZWdvcnlcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmNhdGVnb3J5XG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwiY2xhc3NpZmljYXRpb25cIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmNsYXNzaWZpY2F0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5tZXRhZGF0YS5vdGhlciA/IE9iamVjdC5lbnRyaWVzKG1ldGFkYXRhLm90aGVyKS5tYXAoKFtuYW1lLCBjb250ZW50XSk9PntcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQubWFwKChjb250ZW50SXRlbSk9Pk1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRJdGVtXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pIDogW11cbiAgICBdKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBJdHVuZXNNZXRhKHsgaXR1bmVzIH0pIHtcbiAgICBpZiAoIWl0dW5lcykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyBhcHBJZCwgYXBwQXJndW1lbnQgfSA9IGl0dW5lcztcbiAgICBsZXQgY29udGVudCA9IGBhcHAtaWQ9JHthcHBJZH1gO1xuICAgIGlmIChhcHBBcmd1bWVudCkge1xuICAgICAgICBjb250ZW50ICs9IGAsIGFwcC1hcmd1bWVudD0ke2FwcEFyZ3VtZW50fWA7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgbmFtZTogXCJhcHBsZS1pdHVuZXMtYXBwXCIsXG4gICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRcbiAgICB9KTtcbn1cbmNvbnN0IGZvcm1hdERldGVjdGlvbktleXMgPSBbXG4gICAgXCJ0ZWxlcGhvbmVcIixcbiAgICBcImRhdGVcIixcbiAgICBcImFkZHJlc3NcIixcbiAgICBcImVtYWlsXCIsXG4gICAgXCJ1cmxcIlxuXTtcbmV4cG9ydCBmdW5jdGlvbiBGb3JtYXREZXRlY3Rpb25NZXRhKHsgZm9ybWF0RGV0ZWN0aW9uIH0pIHtcbiAgICBpZiAoIWZvcm1hdERldGVjdGlvbikgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNvbnRlbnQgPSBcIlwiO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGZvcm1hdERldGVjdGlvbktleXMpe1xuICAgICAgICBpZiAoa2V5IGluIGZvcm1hdERldGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQpIGNvbnRlbnQgKz0gXCIsIFwiO1xuICAgICAgICAgICAgY29udGVudCArPSBgJHtrZXl9PW5vYDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFwibWV0YVwiLCB7XG4gICAgICAgIG5hbWU6IFwiZm9ybWF0LWRldGVjdGlvblwiLFxuICAgICAgICBjb250ZW50OiBjb250ZW50XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gQXBwbGVXZWJBcHBNZXRhKHsgYXBwbGVXZWJBcHAgfSkge1xuICAgIGlmICghYXBwbGVXZWJBcHApIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgY2FwYWJsZSwgdGl0bGUsIHN0YXJ0dXBJbWFnZSwgc3RhdHVzQmFyU3R5bGUgfSA9IGFwcGxlV2ViQXBwO1xuICAgIHJldHVybiBNZXRhRmlsdGVyKFtcbiAgICAgICAgY2FwYWJsZSA/IE1ldGEoe1xuICAgICAgICAgICAgbmFtZTogXCJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlXCIsXG4gICAgICAgICAgICBjb250ZW50OiBcInllc1wiXG4gICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICBuYW1lOiBcImFwcGxlLW1vYmlsZS13ZWItYXBwLXRpdGxlXCIsXG4gICAgICAgICAgICBjb250ZW50OiB0aXRsZVxuICAgICAgICB9KSxcbiAgICAgICAgc3RhcnR1cEltYWdlID8gc3RhcnR1cEltYWdlLm1hcCgoaW1hZ2UpPT4vKiNfX1BVUkVfXyovIF9qc3goXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICBocmVmOiBpbWFnZS51cmwsXG4gICAgICAgICAgICAgICAgbWVkaWE6IGltYWdlLm1lZGlhLFxuICAgICAgICAgICAgICAgIHJlbDogXCJhcHBsZS10b3VjaC1zdGFydHVwLWltYWdlXCJcbiAgICAgICAgICAgIH0pKSA6IG51bGwsXG4gICAgICAgIHN0YXR1c0JhclN0eWxlID8gTWV0YSh7XG4gICAgICAgICAgICBuYW1lOiBcImFwcGxlLW1vYmlsZS13ZWItYXBwLXN0YXR1cy1iYXItc3R5bGVcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IHN0YXR1c0JhclN0eWxlXG4gICAgICAgIH0pIDogbnVsbFxuICAgIF0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIFZlcmlmaWNhdGlvbk1ldGEoeyB2ZXJpZmljYXRpb24gfSkge1xuICAgIGlmICghdmVyaWZpY2F0aW9uKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gTWV0YUZpbHRlcihbXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiBcImdvb2dsZS1zaXRlLXZlcmlmaWNhdGlvblwiLFxuICAgICAgICAgICAgY29udGVudHM6IHZlcmlmaWNhdGlvbi5nb29nbGVcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiBcInlfa2V5XCIsXG4gICAgICAgICAgICBjb250ZW50czogdmVyaWZpY2F0aW9uLnlhaG9vXG4gICAgICAgIH0pLFxuICAgICAgICBNdWx0aU1ldGEoe1xuICAgICAgICAgICAgbmFtZVByZWZpeDogXCJ5YW5kZXgtdmVyaWZpY2F0aW9uXCIsXG4gICAgICAgICAgICBjb250ZW50czogdmVyaWZpY2F0aW9uLnlhbmRleFxuICAgICAgICB9KSxcbiAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6IFwibWVcIixcbiAgICAgICAgICAgIGNvbnRlbnRzOiB2ZXJpZmljYXRpb24ubWVcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnZlcmlmaWNhdGlvbi5vdGhlciA/IE9iamVjdC5lbnRyaWVzKHZlcmlmaWNhdGlvbi5vdGhlcikubWFwKChba2V5LCB2YWx1ZV0pPT5NdWx0aU1ldGEoe1xuICAgICAgICAgICAgICAgIG5hbWVQcmVmaXg6IGtleSxcbiAgICAgICAgICAgICAgICBjb250ZW50czogdmFsdWVcbiAgICAgICAgICAgIH0pKSA6IFtdXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2ljLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJNZXRhIiwiTWV0YUZpbHRlciIsIk11bHRpTWV0YSIsIlZpZXdwb3J0TWV0YUtleXMiLCJyZXNvbHZlVmlld3BvcnRMYXlvdXQiLCJ2aWV3cG9ydCIsInJlc29sdmVkIiwidmlld3BvcnRLZXlfIiwidmlld3BvcnRLZXkiLCJ2YWx1ZSIsIlZpZXdwb3J0TWV0YSIsIm5hbWUiLCJjb250ZW50IiwidGhlbWVDb2xvciIsIm1hcCIsImNvbG9yIiwibWVkaWEiLCJjb2xvclNjaGVtZSIsIkJhc2ljTWV0YSIsIm1ldGFkYXRhIiwiX21ldGFkYXRhX2tleXdvcmRzIiwiX21ldGFkYXRhX3JvYm90cyIsIl9tZXRhZGF0YV9yb2JvdHMxIiwiY2hhclNldCIsInRpdGxlIiwiYWJzb2x1dGUiLCJjaGlsZHJlbiIsImRlc2NyaXB0aW9uIiwiYXBwbGljYXRpb25OYW1lIiwiYXV0aG9ycyIsImF1dGhvciIsInVybCIsInJlbCIsImhyZWYiLCJ0b1N0cmluZyIsIm1hbmlmZXN0IiwiZ2VuZXJhdG9yIiwia2V5d29yZHMiLCJqb2luIiwicmVmZXJyZXIiLCJjcmVhdG9yIiwicHVibGlzaGVyIiwicm9ib3RzIiwiYmFzaWMiLCJnb29nbGVCb3QiLCJhYnN0cmFjdCIsImFyY2hpdmVzIiwiYXJjaGl2ZSIsImFzc2V0cyIsImFzc2V0IiwiYm9va21hcmtzIiwiYm9va21hcmsiLCJjYXRlZ29yeSIsImNsYXNzaWZpY2F0aW9uIiwib3RoZXIiLCJPYmplY3QiLCJlbnRyaWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGVudEl0ZW0iLCJJdHVuZXNNZXRhIiwiaXR1bmVzIiwiYXBwSWQiLCJhcHBBcmd1bWVudCIsImZvcm1hdERldGVjdGlvbktleXMiLCJGb3JtYXREZXRlY3Rpb25NZXRhIiwiZm9ybWF0RGV0ZWN0aW9uIiwia2V5IiwiQXBwbGVXZWJBcHBNZXRhIiwiYXBwbGVXZWJBcHAiLCJjYXBhYmxlIiwic3RhcnR1cEltYWdlIiwic3RhdHVzQmFyU3R5bGUiLCJpbWFnZSIsIlZlcmlmaWNhdGlvbk1ldGEiLCJ2ZXJpZmljYXRpb24iLCJuYW1lUHJlZml4IiwiY29udGVudHMiLCJnb29nbGUiLCJ5YWhvbyIsInlhbmRleCIsIm1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/basic.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/icons.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/generate/icons.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IconsMetadata: () => (/* binding */ IconsMetadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _meta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./meta */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/meta.js\");\n\n\n\nfunction IconDescriptorLink({ icon }) {\n const { url, rel = \"icon\", ...props } = icon;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: rel,\n href: url.toString(),\n ...props\n });\n}\nfunction IconLink({ rel, icon }) {\n if (typeof icon === \"object\" && !(icon instanceof URL)) {\n if (!icon.rel && rel) icon.rel = rel;\n return IconDescriptorLink({\n icon\n });\n } else {\n const href = icon.toString();\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: rel,\n href: href\n });\n }\n}\nfunction IconsMetadata({ icons }) {\n if (!icons) return null;\n const shortcutList = icons.shortcut;\n const iconList = icons.icon;\n const appleList = icons.apple;\n const otherList = icons.other;\n return (0,_meta__WEBPACK_IMPORTED_MODULE_2__.MetaFilter)([\n shortcutList ? shortcutList.map((icon)=>IconLink({\n rel: \"shortcut icon\",\n icon\n })) : null,\n iconList ? iconList.map((icon)=>IconLink({\n rel: \"icon\",\n icon\n })) : null,\n appleList ? appleList.map((icon)=>IconLink({\n rel: \"apple-touch-icon\",\n icon\n })) : null,\n otherList ? otherList.map((icon)=>IconDescriptorLink({\n icon\n })) : null\n ]);\n} //# sourceMappingURL=icons.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dlbmVyYXRlL2ljb25zLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWdEO0FBQ3RCO0FBQ1U7QUFDcEMsU0FBU0ksbUJBQW1CLEVBQUVDLElBQUksRUFBRTtJQUNoQyxNQUFNLEVBQUVDLEdBQUcsRUFBRUMsTUFBTSxNQUFNLEVBQUUsR0FBR0MsT0FBTyxHQUFHSDtJQUN4QyxPQUFPLFdBQVcsR0FBR0osc0RBQUlBLENBQUMsUUFBUTtRQUM5Qk0sS0FBS0E7UUFDTEUsTUFBTUgsSUFBSUksUUFBUTtRQUNsQixHQUFHRixLQUFLO0lBQ1o7QUFDSjtBQUNBLFNBQVNHLFNBQVMsRUFBRUosR0FBRyxFQUFFRixJQUFJLEVBQUU7SUFDM0IsSUFBSSxPQUFPQSxTQUFTLFlBQVksQ0FBRUEsQ0FBQUEsZ0JBQWdCTyxHQUFFLEdBQUk7UUFDcEQsSUFBSSxDQUFDUCxLQUFLRSxHQUFHLElBQUlBLEtBQUtGLEtBQUtFLEdBQUcsR0FBR0E7UUFDakMsT0FBT0gsbUJBQW1CO1lBQ3RCQztRQUNKO0lBQ0osT0FBTztRQUNILE1BQU1JLE9BQU9KLEtBQUtLLFFBQVE7UUFDMUIsT0FBTyxXQUFXLEdBQUdULHNEQUFJQSxDQUFDLFFBQVE7WUFDOUJNLEtBQUtBO1lBQ0xFLE1BQU1BO1FBQ1Y7SUFDSjtBQUNKO0FBQ08sU0FBU0ksY0FBYyxFQUFFQyxLQUFLLEVBQUU7SUFDbkMsSUFBSSxDQUFDQSxPQUFPLE9BQU87SUFDbkIsTUFBTUMsZUFBZUQsTUFBTUUsUUFBUTtJQUNuQyxNQUFNQyxXQUFXSCxNQUFNVCxJQUFJO0lBQzNCLE1BQU1hLFlBQVlKLE1BQU1LLEtBQUs7SUFDN0IsTUFBTUMsWUFBWU4sTUFBTU8sS0FBSztJQUM3QixPQUFPbEIsaURBQVVBLENBQUM7UUFDZFksZUFBZUEsYUFBYU8sR0FBRyxDQUFDLENBQUNqQixPQUFPTSxTQUFTO2dCQUN6Q0osS0FBSztnQkFDTEY7WUFDSixNQUFNO1FBQ1ZZLFdBQVdBLFNBQVNLLEdBQUcsQ0FBQyxDQUFDakIsT0FBT00sU0FBUztnQkFDakNKLEtBQUs7Z0JBQ0xGO1lBQ0osTUFBTTtRQUNWYSxZQUFZQSxVQUFVSSxHQUFHLENBQUMsQ0FBQ2pCLE9BQU9NLFNBQVM7Z0JBQ25DSixLQUFLO2dCQUNMRjtZQUNKLE1BQU07UUFDVmUsWUFBWUEsVUFBVUUsR0FBRyxDQUFDLENBQUNqQixPQUFPRCxtQkFBbUI7Z0JBQzdDQztZQUNKLE1BQU07S0FDYjtBQUNMLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvaWNvbnMuanM/NTAxZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgTWV0YUZpbHRlciB9IGZyb20gXCIuL21ldGFcIjtcbmZ1bmN0aW9uIEljb25EZXNjcmlwdG9yTGluayh7IGljb24gfSkge1xuICAgIGNvbnN0IHsgdXJsLCByZWwgPSBcImljb25cIiwgLi4ucHJvcHMgfSA9IGljb247XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChcImxpbmtcIiwge1xuICAgICAgICByZWw6IHJlbCxcbiAgICAgICAgaHJlZjogdXJsLnRvU3RyaW5nKCksXG4gICAgICAgIC4uLnByb3BzXG4gICAgfSk7XG59XG5mdW5jdGlvbiBJY29uTGluayh7IHJlbCwgaWNvbiB9KSB7XG4gICAgaWYgKHR5cGVvZiBpY29uID09PSBcIm9iamVjdFwiICYmICEoaWNvbiBpbnN0YW5jZW9mIFVSTCkpIHtcbiAgICAgICAgaWYgKCFpY29uLnJlbCAmJiByZWwpIGljb24ucmVsID0gcmVsO1xuICAgICAgICByZXR1cm4gSWNvbkRlc2NyaXB0b3JMaW5rKHtcbiAgICAgICAgICAgIGljb25cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaHJlZiA9IGljb24udG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChcImxpbmtcIiwge1xuICAgICAgICAgICAgcmVsOiByZWwsXG4gICAgICAgICAgICBocmVmOiBocmVmXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBJY29uc01ldGFkYXRhKHsgaWNvbnMgfSkge1xuICAgIGlmICghaWNvbnMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHNob3J0Y3V0TGlzdCA9IGljb25zLnNob3J0Y3V0O1xuICAgIGNvbnN0IGljb25MaXN0ID0gaWNvbnMuaWNvbjtcbiAgICBjb25zdCBhcHBsZUxpc3QgPSBpY29ucy5hcHBsZTtcbiAgICBjb25zdCBvdGhlckxpc3QgPSBpY29ucy5vdGhlcjtcbiAgICByZXR1cm4gTWV0YUZpbHRlcihbXG4gICAgICAgIHNob3J0Y3V0TGlzdCA/IHNob3J0Y3V0TGlzdC5tYXAoKGljb24pPT5JY29uTGluayh7XG4gICAgICAgICAgICAgICAgcmVsOiBcInNob3J0Y3V0IGljb25cIixcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBpY29uTGlzdCA/IGljb25MaXN0Lm1hcCgoaWNvbik9Pkljb25MaW5rKHtcbiAgICAgICAgICAgICAgICByZWw6IFwiaWNvblwiLFxuICAgICAgICAgICAgICAgIGljb25cbiAgICAgICAgICAgIH0pKSA6IG51bGwsXG4gICAgICAgIGFwcGxlTGlzdCA/IGFwcGxlTGlzdC5tYXAoKGljb24pPT5JY29uTGluayh7XG4gICAgICAgICAgICAgICAgcmVsOiBcImFwcGxlLXRvdWNoLWljb25cIixcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBvdGhlckxpc3QgPyBvdGhlckxpc3QubWFwKChpY29uKT0+SWNvbkRlc2NyaXB0b3JMaW5rKHtcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWljb25zLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJNZXRhRmlsdGVyIiwiSWNvbkRlc2NyaXB0b3JMaW5rIiwiaWNvbiIsInVybCIsInJlbCIsInByb3BzIiwiaHJlZiIsInRvU3RyaW5nIiwiSWNvbkxpbmsiLCJVUkwiLCJJY29uc01ldGFkYXRhIiwiaWNvbnMiLCJzaG9ydGN1dExpc3QiLCJzaG9ydGN1dCIsImljb25MaXN0IiwiYXBwbGVMaXN0IiwiYXBwbGUiLCJvdGhlckxpc3QiLCJvdGhlciIsIm1hcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/icons.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/meta.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/generate/meta.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Meta: () => (/* binding */ Meta),\n/* harmony export */ MetaFilter: () => (/* binding */ MetaFilter),\n/* harmony export */ MultiMeta: () => (/* binding */ MultiMeta)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _non_nullable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../non-nullable */ \"(ssr)/../../node_modules/next/dist/esm/lib/non-nullable.js\");\n\n\n\nfunction Meta({ name, property, content, media }) {\n if (typeof content !== \"undefined\" && content !== null && content !== \"\") {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n ...name ? {\n name\n } : {\n property\n },\n ...media ? {\n media\n } : undefined,\n content: typeof content === \"string\" ? content : content.toString()\n });\n }\n return null;\n}\nfunction MetaFilter(items) {\n const acc = [];\n for (const item of items){\n if (Array.isArray(item)) {\n acc.push(...item.filter(_non_nullable__WEBPACK_IMPORTED_MODULE_2__.nonNullable));\n } else if ((0,_non_nullable__WEBPACK_IMPORTED_MODULE_2__.nonNullable)(item)) {\n acc.push(item);\n }\n }\n return acc;\n}\nfunction camelToSnake(camelCaseStr) {\n return camelCaseStr.replace(/([A-Z])/g, function(match) {\n return \"_\" + match.toLowerCase();\n });\n}\nfunction getMetaKey(prefix, key) {\n // Use `twitter:image` and `og:image` instead of `twitter:image:url` and `og:image:url`\n // to be more compatible as it's a more common format\n if ((prefix === \"og:image\" || prefix === \"twitter:image\") && key === \"url\") {\n return prefix;\n }\n if (prefix.startsWith(\"og:\") || prefix.startsWith(\"twitter:\")) {\n key = camelToSnake(key);\n }\n return prefix + \":\" + key;\n}\nfunction ExtendMeta({ content, namePrefix, propertyPrefix }) {\n if (!content) return null;\n return MetaFilter(Object.entries(content).map(([k, v])=>{\n return typeof v === \"undefined\" ? null : Meta({\n ...propertyPrefix && {\n property: getMetaKey(propertyPrefix, k)\n },\n ...namePrefix && {\n name: getMetaKey(namePrefix, k)\n },\n content: typeof v === \"string\" ? v : v == null ? void 0 : v.toString()\n });\n }));\n}\nfunction MultiMeta({ propertyPrefix, namePrefix, contents }) {\n if (typeof contents === \"undefined\" || contents === null) {\n return null;\n }\n return MetaFilter(contents.map((content)=>{\n if (typeof content === \"string\" || typeof content === \"number\" || content instanceof URL) {\n return Meta({\n ...propertyPrefix ? {\n property: propertyPrefix\n } : {\n name: namePrefix\n },\n content\n });\n } else {\n return ExtendMeta({\n namePrefix,\n propertyPrefix,\n content\n });\n }\n }));\n} //# sourceMappingURL=meta.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dlbmVyYXRlL21ldGEuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFnRDtBQUN0QjtBQUN1QjtBQUMxQyxTQUFTSSxLQUFLLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLEtBQUssRUFBRTtJQUNuRCxJQUFJLE9BQU9ELFlBQVksZUFBZUEsWUFBWSxRQUFRQSxZQUFZLElBQUk7UUFDdEUsT0FBTyxXQUFXLEdBQUdOLHNEQUFJQSxDQUFDLFFBQVE7WUFDOUIsR0FBR0ksT0FBTztnQkFDTkE7WUFDSixJQUFJO2dCQUNBQztZQUNKLENBQUM7WUFDRCxHQUFHRSxRQUFRO2dCQUNQQTtZQUNKLElBQUlDLFNBQVM7WUFDYkYsU0FBUyxPQUFPQSxZQUFZLFdBQVdBLFVBQVVBLFFBQVFHLFFBQVE7UUFDckU7SUFDSjtJQUNBLE9BQU87QUFDWDtBQUNPLFNBQVNDLFdBQVdDLEtBQUs7SUFDNUIsTUFBTUMsTUFBTSxFQUFFO0lBQ2QsS0FBSyxNQUFNQyxRQUFRRixNQUFNO1FBQ3JCLElBQUlHLE1BQU1DLE9BQU8sQ0FBQ0YsT0FBTztZQUNyQkQsSUFBSUksSUFBSSxJQUFJSCxLQUFLSSxNQUFNLENBQUNmLHNEQUFXQTtRQUN2QyxPQUFPLElBQUlBLDBEQUFXQSxDQUFDVyxPQUFPO1lBQzFCRCxJQUFJSSxJQUFJLENBQUNIO1FBQ2I7SUFDSjtJQUNBLE9BQU9EO0FBQ1g7QUFDQSxTQUFTTSxhQUFhQyxZQUFZO0lBQzlCLE9BQU9BLGFBQWFDLE9BQU8sQ0FBQyxZQUFZLFNBQVNDLEtBQUs7UUFDbEQsT0FBTyxNQUFNQSxNQUFNQyxXQUFXO0lBQ2xDO0FBQ0o7QUFDQSxTQUFTQyxXQUFXQyxNQUFNLEVBQUVDLEdBQUc7SUFDM0IsdUZBQXVGO0lBQ3ZGLHFEQUFxRDtJQUNyRCxJQUFJLENBQUNELFdBQVcsY0FBY0EsV0FBVyxlQUFjLEtBQU1DLFFBQVEsT0FBTztRQUN4RSxPQUFPRDtJQUNYO0lBQ0EsSUFBSUEsT0FBT0UsVUFBVSxDQUFDLFVBQVVGLE9BQU9FLFVBQVUsQ0FBQyxhQUFhO1FBQzNERCxNQUFNUCxhQUFhTztJQUN2QjtJQUNBLE9BQU9ELFNBQVMsTUFBTUM7QUFDMUI7QUFDQSxTQUFTRSxXQUFXLEVBQUVyQixPQUFPLEVBQUVzQixVQUFVLEVBQUVDLGNBQWMsRUFBRTtJQUN2RCxJQUFJLENBQUN2QixTQUFTLE9BQU87SUFDckIsT0FBT0ksV0FBV29CLE9BQU9DLE9BQU8sQ0FBQ3pCLFNBQVMwQixHQUFHLENBQUMsQ0FBQyxDQUFDQyxHQUFHQyxFQUFFO1FBQ2pELE9BQU8sT0FBT0EsTUFBTSxjQUFjLE9BQU8vQixLQUFLO1lBQzFDLEdBQUcwQixrQkFBa0I7Z0JBQ2pCeEIsVUFBVWtCLFdBQVdNLGdCQUFnQkk7WUFDekMsQ0FBQztZQUNELEdBQUdMLGNBQWM7Z0JBQ2J4QixNQUFNbUIsV0FBV0ssWUFBWUs7WUFDakMsQ0FBQztZQUNEM0IsU0FBUyxPQUFPNEIsTUFBTSxXQUFXQSxJQUFJQSxLQUFLLE9BQU8sS0FBSyxJQUFJQSxFQUFFekIsUUFBUTtRQUN4RTtJQUNKO0FBQ0o7QUFDTyxTQUFTMEIsVUFBVSxFQUFFTixjQUFjLEVBQUVELFVBQVUsRUFBRVEsUUFBUSxFQUFFO0lBQzlELElBQUksT0FBT0EsYUFBYSxlQUFlQSxhQUFhLE1BQU07UUFDdEQsT0FBTztJQUNYO0lBQ0EsT0FBTzFCLFdBQVcwQixTQUFTSixHQUFHLENBQUMsQ0FBQzFCO1FBQzVCLElBQUksT0FBT0EsWUFBWSxZQUFZLE9BQU9BLFlBQVksWUFBWUEsbUJBQW1CK0IsS0FBSztZQUN0RixPQUFPbEMsS0FBSztnQkFDUixHQUFHMEIsaUJBQWlCO29CQUNoQnhCLFVBQVV3QjtnQkFDZCxJQUFJO29CQUNBekIsTUFBTXdCO2dCQUNWLENBQUM7Z0JBQ0R0QjtZQUNKO1FBQ0osT0FBTztZQUNILE9BQU9xQixXQUFXO2dCQUNkQztnQkFDQUM7Z0JBQ0F2QjtZQUNKO1FBQ0o7SUFDSjtBQUNKLEVBRUEsZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvbWV0YS5qcz81NjU1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBub25OdWxsYWJsZSB9IGZyb20gXCIuLi8uLi9ub24tbnVsbGFibGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBNZXRhKHsgbmFtZSwgcHJvcGVydHksIGNvbnRlbnQsIG1lZGlhIH0pIHtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09IFwidW5kZWZpbmVkXCIgJiYgY29udGVudCAhPT0gbnVsbCAmJiBjb250ZW50ICE9PSBcIlwiKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgICAgIC4uLm5hbWUgPyB7XG4gICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLm1lZGlhID8ge1xuICAgICAgICAgICAgICAgIG1lZGlhXG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY29udGVudDogdHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIgPyBjb250ZW50IDogY29udGVudC50b1N0cmluZygpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBNZXRhRmlsdGVyKGl0ZW1zKSB7XG4gICAgY29uc3QgYWNjID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKXtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKC4uLml0ZW0uZmlsdGVyKG5vbk51bGxhYmxlKSk7XG4gICAgICAgIH0gZWxzZSBpZiAobm9uTnVsbGFibGUoaXRlbSkpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG59XG5mdW5jdGlvbiBjYW1lbFRvU25ha2UoY2FtZWxDYXNlU3RyKSB7XG4gICAgcmV0dXJuIGNhbWVsQ2FzZVN0ci5yZXBsYWNlKC8oW0EtWl0pL2csIGZ1bmN0aW9uKG1hdGNoKSB7XG4gICAgICAgIHJldHVybiBcIl9cIiArIG1hdGNoLnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRNZXRhS2V5KHByZWZpeCwga2V5KSB7XG4gICAgLy8gVXNlIGB0d2l0dGVyOmltYWdlYCBhbmQgYG9nOmltYWdlYCBpbnN0ZWFkIG9mIGB0d2l0dGVyOmltYWdlOnVybGAgYW5kIGBvZzppbWFnZTp1cmxgXG4gICAgLy8gdG8gYmUgbW9yZSBjb21wYXRpYmxlIGFzIGl0J3MgYSBtb3JlIGNvbW1vbiBmb3JtYXRcbiAgICBpZiAoKHByZWZpeCA9PT0gXCJvZzppbWFnZVwiIHx8IHByZWZpeCA9PT0gXCJ0d2l0dGVyOmltYWdlXCIpICYmIGtleSA9PT0gXCJ1cmxcIikge1xuICAgICAgICByZXR1cm4gcHJlZml4O1xuICAgIH1cbiAgICBpZiAocHJlZml4LnN0YXJ0c1dpdGgoXCJvZzpcIikgfHwgcHJlZml4LnN0YXJ0c1dpdGgoXCJ0d2l0dGVyOlwiKSkge1xuICAgICAgICBrZXkgPSBjYW1lbFRvU25ha2Uoa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIHByZWZpeCArIFwiOlwiICsga2V5O1xufVxuZnVuY3Rpb24gRXh0ZW5kTWV0YSh7IGNvbnRlbnQsIG5hbWVQcmVmaXgsIHByb3BlcnR5UHJlZml4IH0pIHtcbiAgICBpZiAoIWNvbnRlbnQpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBNZXRhRmlsdGVyKE9iamVjdC5lbnRyaWVzKGNvbnRlbnQpLm1hcCgoW2ssIHZdKT0+e1xuICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwidW5kZWZpbmVkXCIgPyBudWxsIDogTWV0YSh7XG4gICAgICAgICAgICAuLi5wcm9wZXJ0eVByZWZpeCAmJiB7XG4gICAgICAgICAgICAgICAgcHJvcGVydHk6IGdldE1ldGFLZXkocHJvcGVydHlQcmVmaXgsIGspXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4ubmFtZVByZWZpeCAmJiB7XG4gICAgICAgICAgICAgICAgbmFtZTogZ2V0TWV0YUtleShuYW1lUHJlZml4LCBrKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR5cGVvZiB2ID09PSBcInN0cmluZ1wiID8gdiA6IHYgPT0gbnVsbCA/IHZvaWQgMCA6IHYudG9TdHJpbmcoKVxuICAgICAgICB9KTtcbiAgICB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gTXVsdGlNZXRhKHsgcHJvcGVydHlQcmVmaXgsIG5hbWVQcmVmaXgsIGNvbnRlbnRzIH0pIHtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnRzID09PSBcInVuZGVmaW5lZFwiIHx8IGNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gTWV0YUZpbHRlcihjb250ZW50cy5tYXAoKGNvbnRlbnQpPT57XG4gICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgY29udGVudCA9PT0gXCJudW1iZXJcIiB8fCBjb250ZW50IGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgICAgICByZXR1cm4gTWV0YSh7XG4gICAgICAgICAgICAgICAgLi4ucHJvcGVydHlQcmVmaXggPyB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBwcm9wZXJ0eVByZWZpeFxuICAgICAgICAgICAgICAgIH0gOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWVQcmVmaXhcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEV4dGVuZE1ldGEoe1xuICAgICAgICAgICAgICAgIG5hbWVQcmVmaXgsXG4gICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXgsXG4gICAgICAgICAgICAgICAgY29udGVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1ldGEuanMubWFwIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJSZWFjdCIsIm5vbk51bGxhYmxlIiwiTWV0YSIsIm5hbWUiLCJwcm9wZXJ0eSIsImNvbnRlbnQiLCJtZWRpYSIsInVuZGVmaW5lZCIsInRvU3RyaW5nIiwiTWV0YUZpbHRlciIsIml0ZW1zIiwiYWNjIiwiaXRlbSIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJmaWx0ZXIiLCJjYW1lbFRvU25ha2UiLCJjYW1lbENhc2VTdHIiLCJyZXBsYWNlIiwibWF0Y2giLCJ0b0xvd2VyQ2FzZSIsImdldE1ldGFLZXkiLCJwcmVmaXgiLCJrZXkiLCJzdGFydHNXaXRoIiwiRXh0ZW5kTWV0YSIsIm5hbWVQcmVmaXgiLCJwcm9wZXJ0eVByZWZpeCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJrIiwidiIsIk11bHRpTWV0YSIsImNvbnRlbnRzIiwiVVJMIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/meta.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/opengraph.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/generate/opengraph.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppLinksMeta: () => (/* binding */ AppLinksMeta),\n/* harmony export */ OpenGraphMetadata: () => (/* binding */ OpenGraphMetadata),\n/* harmony export */ TwitterMetadata: () => (/* binding */ TwitterMetadata)\n/* harmony export */ });\n/* harmony import */ var _meta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./meta */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/meta.js\");\n\nfunction OpenGraphMetadata({ openGraph }) {\n var _openGraph_title, _openGraph_url, _openGraph_ttl;\n if (!openGraph) {\n return null;\n }\n let typedOpenGraph;\n if (\"type\" in openGraph) {\n const openGraphType = openGraph.type;\n switch(openGraphType){\n case \"website\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"website\"\n })\n ];\n break;\n case \"article\":\n var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime;\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"article\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"article:published_time\",\n content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString()\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"article:modified_time\",\n content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString()\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"article:expiration_time\",\n content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString()\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"article:author\",\n contents: openGraph.authors\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"article:section\",\n content: openGraph.section\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"article:tag\",\n contents: openGraph.tags\n })\n ];\n break;\n case \"book\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"book\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"book:isbn\",\n content: openGraph.isbn\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"book:release_date\",\n content: openGraph.releaseDate\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"book:author\",\n contents: openGraph.authors\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"book:tag\",\n contents: openGraph.tags\n })\n ];\n break;\n case \"profile\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"profile\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"profile:first_name\",\n content: openGraph.firstName\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"profile:last_name\",\n content: openGraph.lastName\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"profile:username\",\n content: openGraph.username\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"profile:gender\",\n content: openGraph.gender\n })\n ];\n break;\n case \"music.song\":\n var _openGraph_duration;\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"music.song\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"music:duration\",\n content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString()\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"music:album\",\n contents: openGraph.albums\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"music:musician\",\n contents: openGraph.musicians\n })\n ];\n break;\n case \"music.album\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"music.album\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"music:song\",\n contents: openGraph.songs\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"music:musician\",\n contents: openGraph.musicians\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"music:release_date\",\n content: openGraph.releaseDate\n })\n ];\n break;\n case \"music.playlist\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"music.playlist\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"music:song\",\n contents: openGraph.songs\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"music:creator\",\n contents: openGraph.creators\n })\n ];\n break;\n case \"music.radio_station\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"music.radio_station\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"music:creator\",\n contents: openGraph.creators\n })\n ];\n break;\n case \"video.movie\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"video.movie\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"video:actor\",\n contents: openGraph.actors\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"video:director\",\n contents: openGraph.directors\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"video:writer\",\n contents: openGraph.writers\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"video:duration\",\n content: openGraph.duration\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"video:release_date\",\n content: openGraph.releaseDate\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"video:tag\",\n contents: openGraph.tags\n })\n ];\n break;\n case \"video.episode\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"video.episode\"\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"video:actor\",\n contents: openGraph.actors\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"video:director\",\n contents: openGraph.directors\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"video:writer\",\n contents: openGraph.writers\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"video:duration\",\n content: openGraph.duration\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"video:release_date\",\n content: openGraph.releaseDate\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"video:tag\",\n contents: openGraph.tags\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"video:series\",\n content: openGraph.series\n })\n ];\n break;\n case \"video.tv_show\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"video.tv_show\"\n })\n ];\n break;\n case \"video.other\":\n typedOpenGraph = [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:type\",\n content: \"video.other\"\n })\n ];\n break;\n default:\n const _exhaustiveCheck = openGraphType;\n throw new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`);\n }\n }\n return (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MetaFilter)([\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:determiner\",\n content: openGraph.determiner\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:title\",\n content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:description\",\n content: openGraph.description\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:url\",\n content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString()\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:site_name\",\n content: openGraph.siteName\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:locale\",\n content: openGraph.locale\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:country_name\",\n content: openGraph.countryName\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n property: \"og:ttl\",\n content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString()\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"og:image\",\n contents: openGraph.images\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"og:video\",\n contents: openGraph.videos\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"og:audio\",\n contents: openGraph.audio\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"og:email\",\n contents: openGraph.emails\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"og:phone_number\",\n contents: openGraph.phoneNumbers\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"og:fax_number\",\n contents: openGraph.faxNumbers\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"og:locale:alternate\",\n contents: openGraph.alternateLocale\n }),\n ...typedOpenGraph ? typedOpenGraph : []\n ]);\n}\nfunction TwitterAppItem({ app, type }) {\n var _app_url_type, _app_url;\n return [\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: `twitter:app:name:${type}`,\n content: app.name\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: `twitter:app:id:${type}`,\n content: app.id[type]\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: `twitter:app:url:${type}`,\n content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString()\n })\n ];\n}\nfunction TwitterMetadata({ twitter }) {\n var _twitter_title;\n if (!twitter) return null;\n const { card } = twitter;\n return (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MetaFilter)([\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:card\",\n content: card\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:site\",\n content: twitter.site\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:site:id\",\n content: twitter.siteId\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:creator\",\n content: twitter.creator\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:creator:id\",\n content: twitter.creatorId\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:title\",\n content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:description\",\n content: twitter.description\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n namePrefix: \"twitter:image\",\n contents: twitter.images\n }),\n ...card === \"player\" ? twitter.players.flatMap((player)=>[\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:player\",\n content: player.playerUrl.toString()\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:player:stream\",\n content: player.streamUrl.toString()\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:player:width\",\n content: player.width\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.Meta)({\n name: \"twitter:player:height\",\n content: player.height\n })\n ]) : [],\n ...card === \"app\" ? [\n TwitterAppItem({\n app: twitter.app,\n type: \"iphone\"\n }),\n TwitterAppItem({\n app: twitter.app,\n type: \"ipad\"\n }),\n TwitterAppItem({\n app: twitter.app,\n type: \"googleplay\"\n })\n ] : []\n ]);\n}\nfunction AppLinksMeta({ appLinks }) {\n if (!appLinks) return null;\n return (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MetaFilter)([\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"al:ios\",\n contents: appLinks.ios\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"al:iphone\",\n contents: appLinks.iphone\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"al:ipad\",\n contents: appLinks.ipad\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"al:android\",\n contents: appLinks.android\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"al:windows_phone\",\n contents: appLinks.windows_phone\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"al:windows\",\n contents: appLinks.windows\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"al:windows_universal\",\n contents: appLinks.windows_universal\n }),\n (0,_meta__WEBPACK_IMPORTED_MODULE_0__.MultiMeta)({\n propertyPrefix: \"al:web\",\n contents: appLinks.web\n })\n ]);\n} //# sourceMappingURL=opengraph.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dlbmVyYXRlL29wZW5ncmFwaC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXFEO0FBQzlDLFNBQVNHLGtCQUFrQixFQUFFQyxTQUFTLEVBQUU7SUFDM0MsSUFBSUMsa0JBQWtCQyxnQkFBZ0JDO0lBQ3RDLElBQUksQ0FBQ0gsV0FBVztRQUNaLE9BQU87SUFDWDtJQUNBLElBQUlJO0lBQ0osSUFBSSxVQUFVSixXQUFXO1FBQ3JCLE1BQU1LLGdCQUFnQkwsVUFBVU0sSUFBSTtRQUNwQyxPQUFPRDtZQUNILEtBQUs7Z0JBQ0RELGlCQUFpQjtvQkFDYlIsMkNBQUlBLENBQUM7d0JBQ0RXLFVBQVU7d0JBQ1ZDLFNBQVM7b0JBQ2I7aUJBQ0g7Z0JBQ0Q7WUFDSixLQUFLO2dCQUNELElBQUlDLDBCQUEwQkMseUJBQXlCQztnQkFDdkRQLGlCQUFpQjtvQkFDYlIsMkNBQUlBLENBQUM7d0JBQ0RXLFVBQVU7d0JBQ1ZDLFNBQVM7b0JBQ2I7b0JBQ0FaLDJDQUFJQSxDQUFDO3dCQUNEVyxVQUFVO3dCQUNWQyxTQUFTLENBQUNDLDJCQUEyQlQsVUFBVVksYUFBYSxLQUFLLE9BQU8sS0FBSyxJQUFJSCx5QkFBeUJJLFFBQVE7b0JBQ3RIO29CQUNBakIsMkNBQUlBLENBQUM7d0JBQ0RXLFVBQVU7d0JBQ1ZDLFNBQVMsQ0FBQ0UsMEJBQTBCVixVQUFVYyxZQUFZLEtBQUssT0FBTyxLQUFLLElBQUlKLHdCQUF3QkcsUUFBUTtvQkFDbkg7b0JBQ0FqQiwyQ0FBSUEsQ0FBQzt3QkFDRFcsVUFBVTt3QkFDVkMsU0FBUyxDQUFDRyw0QkFBNEJYLFVBQVVlLGNBQWMsS0FBSyxPQUFPLEtBQUssSUFBSUosMEJBQTBCRSxRQUFRO29CQUN6SDtvQkFDQWYsZ0RBQVNBLENBQUM7d0JBQ05rQixnQkFBZ0I7d0JBQ2hCQyxVQUFVakIsVUFBVWtCLE9BQU87b0JBQy9CO29CQUNBdEIsMkNBQUlBLENBQUM7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O1FBQ0FwRixnREFBU0EsQ0FBQztZQUNOa0IsZ0JBQWdCO1lBQ2hCQyxVQUFVNkQsU0FBU0ssYUFBYTtRQUNwQztRQUNBckYsZ0RBQVNBLENBQUM7WUFDTmtCLGdCQUFnQjtZQUNoQkMsVUFBVTZELFNBQVNNLE9BQU87UUFDOUI7UUFDQXRGLGdEQUFTQSxDQUFDO1lBQ05rQixnQkFBZ0I7WUFDaEJDLFVBQVU2RCxTQUFTTyxpQkFBaUI7UUFDeEM7UUFDQXZGLGdEQUFTQSxDQUFDO1lBQ05rQixnQkFBZ0I7WUFDaEJDLFVBQVU2RCxTQUFTUSxHQUFHO1FBQzFCO0tBQ0g7QUFDTCxFQUVBLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dlbmVyYXRlL29wZW5ncmFwaC5qcz9lMWE4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGEsIE1ldGFGaWx0ZXIsIE11bHRpTWV0YSB9IGZyb20gXCIuL21ldGFcIjtcbmV4cG9ydCBmdW5jdGlvbiBPcGVuR3JhcGhNZXRhZGF0YSh7IG9wZW5HcmFwaCB9KSB7XG4gICAgdmFyIF9vcGVuR3JhcGhfdGl0bGUsIF9vcGVuR3JhcGhfdXJsLCBfb3BlbkdyYXBoX3R0bDtcbiAgICBpZiAoIW9wZW5HcmFwaCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgbGV0IHR5cGVkT3BlbkdyYXBoO1xuICAgIGlmIChcInR5cGVcIiBpbiBvcGVuR3JhcGgpIHtcbiAgICAgICAgY29uc3Qgb3BlbkdyYXBoVHlwZSA9IG9wZW5HcmFwaC50eXBlO1xuICAgICAgICBzd2l0Y2gob3BlbkdyYXBoVHlwZSl7XG4gICAgICAgICAgICBjYXNlIFwid2Vic2l0ZVwiOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBcIm9nOnR5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwid2Vic2l0ZVwiXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJhcnRpY2xlXCI6XG4gICAgICAgICAgICAgICAgdmFyIF9vcGVuR3JhcGhfcHVibGlzaGVkVGltZSwgX29wZW5HcmFwaF9tb2RpZmllZFRpbWUsIF9vcGVuR3JhcGhfZXhwaXJhdGlvblRpbWU7XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwib2c6dHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJhcnRpY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwiYXJ0aWNsZTpwdWJsaXNoZWRfdGltZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfcHVibGlzaGVkVGltZSA9IG9wZW5HcmFwaC5wdWJsaXNoZWRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwiYXJ0aWNsZTptb2RpZmllZF90aW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF9tb2RpZmllZFRpbWUgPSBvcGVuR3JhcGgubW9kaWZpZWRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF9tb2RpZmllZFRpbWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJhcnRpY2xlOmV4cGlyYXRpb25fdGltZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfZXhwaXJhdGlvblRpbWUgPSBvcGVuR3JhcGguZXhwaXJhdGlvblRpbWUpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX2V4cGlyYXRpb25UaW1lLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJhcnRpY2xlOmF1dGhvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdXRob3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBcImFydGljbGU6c2VjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJhcnRpY2xlOnRhZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC50YWdzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJib29rXCI6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwib2c6dHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJib29rXCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwiYm9vazppc2JuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguaXNiblxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJib29rOnJlbGVhc2VfZGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnJlbGVhc2VEYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBNdWx0aU1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6IFwiYm9vazphdXRob3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguYXV0aG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcImJvb2s6dGFnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnRhZ3NcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInByb2ZpbGVcIjpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJvZzp0eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcInByb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJwcm9maWxlOmZpcnN0X25hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5maXJzdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwicHJvZmlsZTpsYXN0X25hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5sYXN0TmFtZVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJwcm9maWxlOnVzZXJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgudXNlcm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwicHJvZmlsZTpnZW5kZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5nZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm11c2ljLnNvbmdcIjpcbiAgICAgICAgICAgICAgICB2YXIgX29wZW5HcmFwaF9kdXJhdGlvbjtcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJvZzp0eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIm11c2ljLnNvbmdcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJtdXNpYzpkdXJhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfZHVyYXRpb24gPSBvcGVuR3JhcGguZHVyYXRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX2R1cmF0aW9uLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJtdXNpYzphbGJ1bVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hbGJ1bXNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJtdXNpYzptdXNpY2lhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5tdXNpY2lhbnNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm11c2ljLmFsYnVtXCI6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwib2c6dHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJtdXNpYy5hbGJ1bVwiXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBNdWx0aU1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6IFwibXVzaWM6c29uZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5zb25nc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcIm11c2ljOm11c2ljaWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLm11c2ljaWFuc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJtdXNpYzpyZWxlYXNlX2RhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5yZWxlYXNlRGF0ZVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibXVzaWMucGxheWxpc3RcIjpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJvZzp0eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIm11c2ljLnBsYXlsaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJtdXNpYzpzb25nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnNvbmdzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBNdWx0aU1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6IFwibXVzaWM6Y3JlYXRvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5jcmVhdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibXVzaWMucmFkaW9fc3RhdGlvblwiOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBcIm9nOnR5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwibXVzaWMucmFkaW9fc3RhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBNdWx0aU1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6IFwibXVzaWM6Y3JlYXRvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5jcmVhdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwidmlkZW8ubW92aWVcIjpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJvZzp0eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcInZpZGVvLm1vdmllXCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJ2aWRlbzphY3RvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hY3RvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJ2aWRlbzpkaXJlY3RvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5kaXJlY3RvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJ2aWRlbzp3cml0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgud3JpdGVyc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJ2aWRlbzpkdXJhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmR1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBcInZpZGVvOnJlbGVhc2VfZGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnJlbGVhc2VEYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBNdWx0aU1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6IFwidmlkZW86dGFnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnRhZ3NcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInZpZGVvLmVwaXNvZGVcIjpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJvZzp0eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcInZpZGVvLmVwaXNvZGVcIlxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcInZpZGVvOmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmFjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcInZpZGVvOmRpcmVjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmRpcmVjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcInZpZGVvOndyaXRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC53cml0ZXJzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBcInZpZGVvOmR1cmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZHVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IFwidmlkZW86cmVsZWFzZV9kYXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJ2aWRlbzp0YWdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJ2aWRlbzpzZXJpZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5zZXJpZXNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInZpZGVvLnR2X3Nob3dcIjpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJvZzp0eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcInZpZGVvLnR2X3Nob3dcIlxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwidmlkZW8ub3RoZXJcIjpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogXCJvZzp0eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcInZpZGVvLm90aGVyXCJcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjb25zdCBfZXhoYXVzdGl2ZUNoZWNrID0gb3BlbkdyYXBoVHlwZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgT3BlbkdyYXBoIHR5cGU6ICR7X2V4aGF1c3RpdmVDaGVja31gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gTWV0YUZpbHRlcihbXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgcHJvcGVydHk6IFwib2c6ZGV0ZXJtaW5lclwiLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmRldGVybWluZXJcbiAgICAgICAgfSksXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgcHJvcGVydHk6IFwib2c6dGl0bGVcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfb3BlbkdyYXBoX3RpdGxlID0gb3BlbkdyYXBoLnRpdGxlKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF90aXRsZS5hYnNvbHV0ZVxuICAgICAgICB9KSxcbiAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eTogXCJvZzpkZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmRlc2NyaXB0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiBcIm9nOnVybFwiLFxuICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfdXJsID0gb3BlbkdyYXBoLnVybCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcGVuR3JhcGhfdXJsLnRvU3RyaW5nKClcbiAgICAgICAgfSksXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgcHJvcGVydHk6IFwib2c6c2l0ZV9uYW1lXCIsXG4gICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguc2l0ZU5hbWVcbiAgICAgICAgfSksXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgcHJvcGVydHk6IFwib2c6bG9jYWxlXCIsXG4gICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgubG9jYWxlXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiBcIm9nOmNvdW50cnlfbmFtZVwiLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmNvdW50cnlOYW1lXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiBcIm9nOnR0bFwiLFxuICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfdHRsID0gb3BlbkdyYXBoLnR0bCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcGVuR3JhcGhfdHRsLnRvU3RyaW5nKClcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJvZzppbWFnZVwiLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5pbWFnZXNcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJvZzp2aWRlb1wiLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC52aWRlb3NcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJvZzphdWRpb1wiLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdWRpb1xuICAgICAgICB9KSxcbiAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcIm9nOmVtYWlsXCIsXG4gICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmVtYWlsc1xuICAgICAgICB9KSxcbiAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcIm9nOnBob25lX251bWJlclwiLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5waG9uZU51bWJlcnNcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJvZzpmYXhfbnVtYmVyXCIsXG4gICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmZheE51bWJlcnNcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJvZzpsb2NhbGU6YWx0ZXJuYXRlXCIsXG4gICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmFsdGVybmF0ZUxvY2FsZVxuICAgICAgICB9KSxcbiAgICAgICAgLi4udHlwZWRPcGVuR3JhcGggPyB0eXBlZE9wZW5HcmFwaCA6IFtdXG4gICAgXSk7XG59XG5mdW5jdGlvbiBUd2l0dGVyQXBwSXRlbSh7IGFwcCwgdHlwZSB9KSB7XG4gICAgdmFyIF9hcHBfdXJsX3R5cGUsIF9hcHBfdXJsO1xuICAgIHJldHVybiBbXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgbmFtZTogYHR3aXR0ZXI6YXBwOm5hbWU6JHt0eXBlfWAsXG4gICAgICAgICAgICBjb250ZW50OiBhcHAubmFtZVxuICAgICAgICB9KSxcbiAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICBuYW1lOiBgdHdpdHRlcjphcHA6aWQ6JHt0eXBlfWAsXG4gICAgICAgICAgICBjb250ZW50OiBhcHAuaWRbdHlwZV1cbiAgICAgICAgfSksXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgbmFtZTogYHR3aXR0ZXI6YXBwOnVybDoke3R5cGV9YCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfYXBwX3VybCA9IGFwcC51cmwpID09IG51bGwgPyB2b2lkIDAgOiAoX2FwcF91cmxfdHlwZSA9IF9hcHBfdXJsW3R5cGVdKSA9PSBudWxsID8gdm9pZCAwIDogX2FwcF91cmxfdHlwZS50b1N0cmluZygpXG4gICAgICAgIH0pXG4gICAgXTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBUd2l0dGVyTWV0YWRhdGEoeyB0d2l0dGVyIH0pIHtcbiAgICB2YXIgX3R3aXR0ZXJfdGl0bGU7XG4gICAgaWYgKCF0d2l0dGVyKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGNhcmQgfSA9IHR3aXR0ZXI7XG4gICAgcmV0dXJuIE1ldGFGaWx0ZXIoW1xuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwidHdpdHRlcjpjYXJkXCIsXG4gICAgICAgICAgICBjb250ZW50OiBjYXJkXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwidHdpdHRlcjpzaXRlXCIsXG4gICAgICAgICAgICBjb250ZW50OiB0d2l0dGVyLnNpdGVcbiAgICAgICAgfSksXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgbmFtZTogXCJ0d2l0dGVyOnNpdGU6aWRcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR3aXR0ZXIuc2l0ZUlkXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwidHdpdHRlcjpjcmVhdG9yXCIsXG4gICAgICAgICAgICBjb250ZW50OiB0d2l0dGVyLmNyZWF0b3JcbiAgICAgICAgfSksXG4gICAgICAgIE1ldGEoe1xuICAgICAgICAgICAgbmFtZTogXCJ0d2l0dGVyOmNyZWF0b3I6aWRcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR3aXR0ZXIuY3JlYXRvcklkXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwidHdpdHRlcjp0aXRsZVwiLFxuICAgICAgICAgICAgY29udGVudDogKF90d2l0dGVyX3RpdGxlID0gdHdpdHRlci50aXRsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90d2l0dGVyX3RpdGxlLmFic29sdXRlXG4gICAgICAgIH0pLFxuICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgIG5hbWU6IFwidHdpdHRlcjpkZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgY29udGVudDogdHdpdHRlci5kZXNjcmlwdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6IFwidHdpdHRlcjppbWFnZVwiLFxuICAgICAgICAgICAgY29udGVudHM6IHR3aXR0ZXIuaW1hZ2VzXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5jYXJkID09PSBcInBsYXllclwiID8gdHdpdHRlci5wbGF5ZXJzLmZsYXRNYXAoKHBsYXllcik9PltcbiAgICAgICAgICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJ0d2l0dGVyOnBsYXllclwiLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBwbGF5ZXIucGxheWVyVXJsLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBNZXRhKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJ0d2l0dGVyOnBsYXllcjpzdHJlYW1cIixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogcGxheWVyLnN0cmVhbVVybC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwidHdpdHRlcjpwbGF5ZXI6d2lkdGhcIixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogcGxheWVyLndpZHRoXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgTWV0YSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwidHdpdHRlcjpwbGF5ZXI6aGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHBsYXllci5oZWlnaHRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSkgOiBbXSxcbiAgICAgICAgLi4uY2FyZCA9PT0gXCJhcHBcIiA/IFtcbiAgICAgICAgICAgIFR3aXR0ZXJBcHBJdGVtKHtcbiAgICAgICAgICAgICAgICBhcHA6IHR3aXR0ZXIuYXBwLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiaXBob25lXCJcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgVHdpdHRlckFwcEl0ZW0oe1xuICAgICAgICAgICAgICAgIGFwcDogdHdpdHRlci5hcHAsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJpcGFkXCJcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgVHdpdHRlckFwcEl0ZW0oe1xuICAgICAgICAgICAgICAgIGFwcDogdHdpdHRlci5hcHAsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnb29nbGVwbGF5XCJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF0gOiBbXVxuICAgIF0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIEFwcExpbmtzTWV0YSh7IGFwcExpbmtzIH0pIHtcbiAgICBpZiAoIWFwcExpbmtzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gTWV0YUZpbHRlcihbXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJhbDppb3NcIixcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy5pb3NcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJhbDppcGhvbmVcIixcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy5pcGhvbmVcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJhbDppcGFkXCIsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3MuaXBhZFxuICAgICAgICB9KSxcbiAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcImFsOmFuZHJvaWRcIixcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy5hbmRyb2lkXG4gICAgICAgIH0pLFxuICAgICAgICBNdWx0aU1ldGEoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6IFwiYWw6d2luZG93c19waG9uZVwiLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLndpbmRvd3NfcGhvbmVcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJhbDp3aW5kb3dzXCIsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3Mud2luZG93c1xuICAgICAgICB9KSxcbiAgICAgICAgTXVsdGlNZXRhKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiBcImFsOndpbmRvd3NfdW5pdmVyc2FsXCIsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3Mud2luZG93c191bml2ZXJzYWxcbiAgICAgICAgfSksXG4gICAgICAgIE11bHRpTWV0YSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogXCJhbDp3ZWJcIixcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy53ZWJcbiAgICAgICAgfSlcbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b3BlbmdyYXBoLmpzLm1hcCJdLCJuYW1lcyI6WyJNZXRhIiwiTWV0YUZpbHRlciIsIk11bHRpTWV0YSIsIk9wZW5HcmFwaE1ldGFkYXRhIiwib3BlbkdyYXBoIiwiX29wZW5HcmFwaF90aXRsZSIsIl9vcGVuR3JhcGhfdXJsIiwiX29wZW5HcmFwaF90dGwiLCJ0eXBlZE9wZW5HcmFwaCIsIm9wZW5HcmFwaFR5cGUiLCJ0eXBlIiwicHJvcGVydHkiLCJjb250ZW50IiwiX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lIiwiX29wZW5HcmFwaF9tb2RpZmllZFRpbWUiLCJfb3BlbkdyYXBoX2V4cGlyYXRpb25UaW1lIiwicHVibGlzaGVkVGltZSIsInRvU3RyaW5nIiwibW9kaWZpZWRUaW1lIiwiZXhwaXJhdGlvblRpbWUiLCJwcm9wZXJ0eVByZWZpeCIsImNvbnRlbnRzIiwiYXV0aG9ycyIsInNlY3Rpb24iLCJ0YWdzIiwiaXNibiIsInJlbGVhc2VEYXRlIiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJ1c2VybmFtZSIsImdlbmRlciIsIl9vcGVuR3JhcGhfZHVyYXRpb24iLCJkdXJhdGlvbiIsImFsYnVtcyIsIm11c2ljaWFucyIsInNvbmdzIiwiY3JlYXRvcnMiLCJhY3RvcnMiLCJkaXJlY3RvcnMiLCJ3cml0ZXJzIiwic2VyaWVzIiwiX2V4aGF1c3RpdmVDaGVjayIsIkVycm9yIiwiZGV0ZXJtaW5lciIsInRpdGxlIiwiYWJzb2x1dGUiLCJkZXNjcmlwdGlvbiIsInVybCIsInNpdGVOYW1lIiwibG9jYWxlIiwiY291bnRyeU5hbWUiLCJ0dGwiLCJpbWFnZXMiLCJ2aWRlb3MiLCJhdWRpbyIsImVtYWlscyIsInBob25lTnVtYmVycyIsImZheE51bWJlcnMiLCJhbHRlcm5hdGVMb2NhbGUiLCJUd2l0dGVyQXBwSXRlbSIsImFwcCIsIl9hcHBfdXJsX3R5cGUiLCJfYXBwX3VybCIsIm5hbWUiLCJpZCIsIlR3aXR0ZXJNZXRhZGF0YSIsInR3aXR0ZXIiLCJfdHdpdHRlcl90aXRsZSIsImNhcmQiLCJzaXRlIiwic2l0ZUlkIiwiY3JlYXRvciIsImNyZWF0b3JJZCIsIm5hbWVQcmVmaXgiLCJwbGF5ZXJzIiwiZmxhdE1hcCIsInBsYXllciIsInBsYXllclVybCIsInN0cmVhbVVybCIsIndpZHRoIiwiaGVpZ2h0IiwiQXBwTGlua3NNZXRhIiwiYXBwTGlua3MiLCJpb3MiLCJpcGhvbmUiLCJpcGFkIiwiYW5kcm9pZCIsIndpbmRvd3NfcGhvbmUiLCJ3aW5kb3dzIiwid2luZG93c191bml2ZXJzYWwiLCJ3ZWIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/opengraph.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/utils.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/generate/utils.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveArray: () => (/* binding */ resolveArray),\n/* harmony export */ resolveAsArrayOrUndefined: () => (/* binding */ resolveAsArrayOrUndefined)\n/* harmony export */ });\nfunction resolveArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return [\n value\n ];\n}\nfunction resolveAsArrayOrUndefined(value) {\n if (typeof value === \"undefined\" || value === null) {\n return undefined;\n }\n return resolveArray(value);\n}\n //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dlbmVyYXRlL3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsYUFBYUMsS0FBSztJQUN2QixJQUFJQyxNQUFNQyxPQUFPLENBQUNGLFFBQVE7UUFDdEIsT0FBT0E7SUFDWDtJQUNBLE9BQU87UUFDSEE7S0FDSDtBQUNMO0FBQ0EsU0FBU0csMEJBQTBCSCxLQUFLO0lBQ3BDLElBQUksT0FBT0EsVUFBVSxlQUFlQSxVQUFVLE1BQU07UUFDaEQsT0FBT0k7SUFDWDtJQUNBLE9BQU9MLGFBQWFDO0FBQ3hCO0FBQ21ELENBRW5ELGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dlbmVyYXRlL3V0aWxzLmpzPzM3NGIiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gcmVzb2x2ZUFycmF5KHZhbHVlKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgICAgdmFsdWVcbiAgICBdO1xufVxuZnVuY3Rpb24gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVBcnJheSh2YWx1ZSk7XG59XG5leHBvcnQgeyByZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkLCByZXNvbHZlQXJyYXkgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbInJlc29sdmVBcnJheSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwicmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/utils.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/get-metadata-route.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/get-metadata-route.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillMetadataSegment: () => (/* binding */ fillMetadataSegment),\n/* harmony export */ normalizeMetadataRoute: () => (/* binding */ normalizeMetadataRoute)\n/* harmony export */ });\n/* harmony import */ var _is_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-metadata-route */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/lib/isomorphic/path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _server_server_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../server/server-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/server-utils.js\");\n/* harmony import */ var _shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/lib/router/utils/route-regex */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js\");\n/* harmony import */ var _shared_lib_hash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/lib/hash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/hash.js\");\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _shared_lib_page_path_normalize_path_sep__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../shared/lib/page-path/normalize-path-sep */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\");\n\n\n\n\n\n\n\n/*\n * If there's special convention like (...) or @ in the page path,\n * Give it a unique hash suffix to avoid conflicts\n *\n * e.g.\n * /app/open-graph.tsx -> /open-graph/route\n * /app/(post)/open-graph.tsx -> /open-graph/route-[0-9a-z]{6}\n */ function getMetadataRouteSuffix(page) {\n let suffix = \"\";\n if (page.includes(\"(\") && page.includes(\")\") || page.includes(\"@\")) {\n suffix = (0,_shared_lib_hash__WEBPACK_IMPORTED_MODULE_4__.djb2Hash)(page).toString(36).slice(0, 6);\n }\n return suffix;\n}\n/**\n * Fill the dynamic segment in the metadata route\n *\n * Example:\n * fillMetadataSegment('/a/[slug]', { params: { slug: 'b' } }, 'open-graph') -> '/a/b/open-graph'\n *\n */ function fillMetadataSegment(segment, params, imageSegment) {\n const pathname = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_5__.normalizeAppPath)(segment);\n const routeRegex = (0,_shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_3__.getNamedRouteRegex)(pathname, false);\n const route = (0,_server_server_utils__WEBPACK_IMPORTED_MODULE_2__.interpolateDynamicPath)(pathname, params, routeRegex);\n const suffix = getMetadataRouteSuffix(segment);\n const routeSuffix = suffix ? `-${suffix}` : \"\";\n const { name, ext } = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().parse(imageSegment);\n return (0,_shared_lib_page_path_normalize_path_sep__WEBPACK_IMPORTED_MODULE_6__.normalizePathSep)(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().join(route, `${name}${routeSuffix}${ext}`));\n}\n/**\n * Map metadata page key to the corresponding route\n *\n * static file page key: /app/robots.txt -> /robots.xml -> /robots.txt/route\n * dynamic route page key: /app/robots.tsx -> /robots -> /robots.txt/route\n *\n * @param page\n * @returns\n */ function normalizeMetadataRoute(page) {\n if (!(0,_is_metadata_route__WEBPACK_IMPORTED_MODULE_0__.isMetadataRoute)(page)) {\n return page;\n }\n let route = page;\n let suffix = \"\";\n if (page === \"/robots\") {\n route += \".txt\";\n } else if (page === \"/manifest\") {\n route += \".webmanifest\";\n } else if (page.endsWith(\"/sitemap\")) {\n route += \".xml\";\n } else {\n // Remove the file extension, e.g. /route-path/robots.txt -> /route-path\n const pathnamePrefix = page.slice(0, -(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().basename(page).length + 1));\n suffix = getMetadataRouteSuffix(pathnamePrefix);\n }\n // Support both /<metadata-route.ext> and custom routes /<metadata-route>/route.ts.\n // If it's a metadata file route, we need to append /[id]/route to the page.\n if (!route.endsWith(\"/route\")) {\n const { dir, name: baseName, ext } = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().parse(route);\n const isStaticRoute = (0,_is_metadata_route__WEBPACK_IMPORTED_MODULE_0__.isStaticMetadataRoute)(page);\n route = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().posix.join(dir, `${baseName}${suffix ? `-${suffix}` : \"\"}${ext}`, isStaticRoute ? \"\" : \"[[...__metadata_id__]]\", \"route\");\n }\n return route;\n} //# sourceMappingURL=get-metadata-route.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dldC1tZXRhZGF0YS1yb3V0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQTZFO0FBQ3pCO0FBQ2U7QUFDWTtBQUM5QjtBQUMwQjtBQUNNO0FBQ2pGOzs7Ozs7O0NBT0MsR0FBRyxTQUFTUSx1QkFBdUJDLElBQUk7SUFDcEMsSUFBSUMsU0FBUztJQUNiLElBQUlELEtBQUtFLFFBQVEsQ0FBQyxRQUFRRixLQUFLRSxRQUFRLENBQUMsUUFBUUYsS0FBS0UsUUFBUSxDQUFDLE1BQU07UUFDaEVELFNBQVNMLDBEQUFRQSxDQUFDSSxNQUFNRyxRQUFRLENBQUMsSUFBSUMsS0FBSyxDQUFDLEdBQUc7SUFDbEQ7SUFDQSxPQUFPSDtBQUNYO0FBQ0E7Ozs7OztDQU1DLEdBQVUsU0FBU0ksb0JBQW9CQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsWUFBWTtJQUNqRSxNQUFNQyxXQUFXWixvRkFBZ0JBLENBQUNTO0lBQ2xDLE1BQU1JLGFBQWFmLHdGQUFrQkEsQ0FBQ2MsVUFBVTtJQUNoRCxNQUFNRSxRQUFRakIsNEVBQXNCQSxDQUFDZSxVQUFVRixRQUFRRztJQUN2RCxNQUFNVCxTQUFTRix1QkFBdUJPO0lBQ3RDLE1BQU1NLGNBQWNYLFNBQVMsQ0FBQyxDQUFDLEVBQUVBLE9BQU8sQ0FBQyxHQUFHO0lBQzVDLE1BQU0sRUFBRVksSUFBSSxFQUFFQyxHQUFHLEVBQUUsR0FBR3JCLHdFQUFVLENBQUNlO0lBQ2pDLE9BQU9WLDBGQUFnQkEsQ0FBQ0wsdUVBQVMsQ0FBQ2tCLE9BQU8sQ0FBQyxFQUFFRSxLQUFLLEVBQUVELFlBQVksRUFBRUUsSUFBSSxDQUFDO0FBQzFFO0FBQ0E7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTRyx1QkFBdUJqQixJQUFJO0lBQzNDLElBQUksQ0FBQ1QsbUVBQWVBLENBQUNTLE9BQU87UUFDeEIsT0FBT0E7SUFDWDtJQUNBLElBQUlXLFFBQVFYO0lBQ1osSUFBSUMsU0FBUztJQUNiLElBQUlELFNBQVMsV0FBVztRQUNwQlcsU0FBUztJQUNiLE9BQU8sSUFBSVgsU0FBUyxhQUFhO1FBQzdCVyxTQUFTO0lBQ2IsT0FBTyxJQUFJWCxLQUFLa0IsUUFBUSxDQUFDLGFBQWE7UUFDbENQLFNBQVM7SUFDYixPQUFPO1FBQ0gsd0VBQXdFO1FBQ3hFLE1BQU1RLGlCQUFpQm5CLEtBQUtJLEtBQUssQ0FBQyxHQUFHLENBQUVYLENBQUFBLDJFQUFhLENBQUNPLE1BQU1xQixNQUFNLEdBQUc7UUFDcEVwQixTQUFTRix1QkFBdUJvQjtJQUNwQztJQUNBLG1GQUFtRjtJQUNuRiw0RUFBNEU7SUFDNUUsSUFBSSxDQUFDUixNQUFNTyxRQUFRLENBQUMsV0FBVztRQUMzQixNQUFNLEVBQUVJLEdBQUcsRUFBRVQsTUFBTVUsUUFBUSxFQUFFVCxHQUFHLEVBQUUsR0FBR3JCLHdFQUFVLENBQUNrQjtRQUNoRCxNQUFNYSxnQkFBZ0JoQyx5RUFBcUJBLENBQUNRO1FBQzVDVyxRQUFRbEIsd0VBQVUsQ0FBQ3VCLElBQUksQ0FBQ00sS0FBSyxDQUFDLEVBQUVDLFNBQVMsRUFBRXRCLFNBQVMsQ0FBQyxDQUFDLEVBQUVBLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRWEsSUFBSSxDQUFDLEVBQUVVLGdCQUFnQixLQUFLLDBCQUEwQjtJQUNsSTtJQUNBLE9BQU9iO0FBQ1gsRUFFQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2xpYi9tZXRhZGF0YS9nZXQtbWV0YWRhdGEtcm91dGUuanM/MWQxMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01ldGFkYXRhUm91dGUsIGlzU3RhdGljTWV0YWRhdGFSb3V0ZSB9IGZyb20gXCIuL2lzLW1ldGFkYXRhLXJvdXRlXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGhcIjtcbmltcG9ydCB7IGludGVycG9sYXRlRHluYW1pY1BhdGggfSBmcm9tIFwiLi4vLi4vc2VydmVyL3NlcnZlci11dGlsc1wiO1xuaW1wb3J0IHsgZ2V0TmFtZWRSb3V0ZVJlZ2V4IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4XCI7XG5pbXBvcnQgeyBkamIySGFzaCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2hhc2hcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVQYXRoU2VwIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcFwiO1xuLypcbiAqIElmIHRoZXJlJ3Mgc3BlY2lhbCBjb252ZW50aW9uIGxpa2UgKC4uLikgb3IgQCBpbiB0aGUgcGFnZSBwYXRoLFxuICogR2l2ZSBpdCBhIHVuaXF1ZSBoYXNoIHN1ZmZpeCB0byBhdm9pZCBjb25mbGljdHNcbiAqXG4gKiBlLmcuXG4gKiAvYXBwL29wZW4tZ3JhcGgudHN4IC0+IC9vcGVuLWdyYXBoL3JvdXRlXG4gKiAvYXBwLyhwb3N0KS9vcGVuLWdyYXBoLnRzeCAtPiAvb3Blbi1ncmFwaC9yb3V0ZS1bMC05YS16XXs2fVxuICovIGZ1bmN0aW9uIGdldE1ldGFkYXRhUm91dGVTdWZmaXgocGFnZSkge1xuICAgIGxldCBzdWZmaXggPSBcIlwiO1xuICAgIGlmIChwYWdlLmluY2x1ZGVzKFwiKFwiKSAmJiBwYWdlLmluY2x1ZGVzKFwiKVwiKSB8fCBwYWdlLmluY2x1ZGVzKFwiQFwiKSkge1xuICAgICAgICBzdWZmaXggPSBkamIySGFzaChwYWdlKS50b1N0cmluZygzNikuc2xpY2UoMCwgNik7XG4gICAgfVxuICAgIHJldHVybiBzdWZmaXg7XG59XG4vKipcbiAqIEZpbGwgdGhlIGR5bmFtaWMgc2VnbWVudCBpbiB0aGUgbWV0YWRhdGEgcm91dGVcbiAqXG4gKiBFeGFtcGxlOlxuICogZmlsbE1ldGFkYXRhU2VnbWVudCgnL2EvW3NsdWddJywgeyBwYXJhbXM6IHsgc2x1ZzogJ2InIH0gfSwgJ29wZW4tZ3JhcGgnKSAtPiAnL2EvYi9vcGVuLWdyYXBoJ1xuICpcbiAqLyBleHBvcnQgZnVuY3Rpb24gZmlsbE1ldGFkYXRhU2VnbWVudChzZWdtZW50LCBwYXJhbXMsIGltYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHBhdGhuYW1lID0gbm9ybWFsaXplQXBwUGF0aChzZWdtZW50KTtcbiAgICBjb25zdCByb3V0ZVJlZ2V4ID0gZ2V0TmFtZWRSb3V0ZVJlZ2V4KHBhdGhuYW1lLCBmYWxzZSk7XG4gICAgY29uc3Qgcm91dGUgPSBpbnRlcnBvbGF0ZUR5bmFtaWNQYXRoKHBhdGhuYW1lLCBwYXJhbXMsIHJvdXRlUmVnZXgpO1xuICAgIGNvbnN0IHN1ZmZpeCA9IGdldE1ldGFkYXRhUm91dGVTdWZmaXgoc2VnbWVudCk7XG4gICAgY29uc3Qgcm91dGVTdWZmaXggPSBzdWZmaXggPyBgLSR7c3VmZml4fWAgOiBcIlwiO1xuICAgIGNvbnN0IHsgbmFtZSwgZXh0IH0gPSBwYXRoLnBhcnNlKGltYWdlU2VnbWVudCk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVBhdGhTZXAocGF0aC5qb2luKHJvdXRlLCBgJHtuYW1lfSR7cm91dGVTdWZmaXh9JHtleHR9YCkpO1xufVxuLyoqXG4gKiBNYXAgbWV0YWRhdGEgcGFnZSBrZXkgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcm91dGVcbiAqXG4gKiBzdGF0aWMgZmlsZSBwYWdlIGtleTogICAgL2FwcC9yb2JvdHMudHh0IC0+IC9yb2JvdHMueG1sIC0+IC9yb2JvdHMudHh0L3JvdXRlXG4gKiBkeW5hbWljIHJvdXRlIHBhZ2Uga2V5OiAgL2FwcC9yb2JvdHMudHN4IC0+IC9yb2JvdHMgLT4gL3JvYm90cy50eHQvcm91dGVcbiAqXG4gKiBAcGFyYW0gcGFnZVxuICogQHJldHVybnNcbiAqLyBleHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTWV0YWRhdGFSb3V0ZShwYWdlKSB7XG4gICAgaWYgKCFpc01ldGFkYXRhUm91dGUocGFnZSkpIHtcbiAgICAgICAgcmV0dXJuIHBhZ2U7XG4gICAgfVxuICAgIGxldCByb3V0ZSA9IHBhZ2U7XG4gICAgbGV0IHN1ZmZpeCA9IFwiXCI7XG4gICAgaWYgKHBhZ2UgPT09IFwiL3JvYm90c1wiKSB7XG4gICAgICAgIHJvdXRlICs9IFwiLnR4dFwiO1xuICAgIH0gZWxzZSBpZiAocGFnZSA9PT0gXCIvbWFuaWZlc3RcIikge1xuICAgICAgICByb3V0ZSArPSBcIi53ZWJtYW5pZmVzdFwiO1xuICAgIH0gZWxzZSBpZiAocGFnZS5lbmRzV2l0aChcIi9zaXRlbWFwXCIpKSB7XG4gICAgICAgIHJvdXRlICs9IFwiLnhtbFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZmlsZSBleHRlbnNpb24sIGUuZy4gL3JvdXRlLXBhdGgvcm9ib3RzLnR4dCAtPiAvcm91dGUtcGF0aFxuICAgICAgICBjb25zdCBwYXRobmFtZVByZWZpeCA9IHBhZ2Uuc2xpY2UoMCwgLShwYXRoLmJhc2VuYW1lKHBhZ2UpLmxlbmd0aCArIDEpKTtcbiAgICAgICAgc3VmZml4ID0gZ2V0TWV0YWRhdGFSb3V0ZVN1ZmZpeChwYXRobmFtZVByZWZpeCk7XG4gICAgfVxuICAgIC8vIFN1cHBvcnQgYm90aCAvPG1ldGFkYXRhLXJvdXRlLmV4dD4gYW5kIGN1c3RvbSByb3V0ZXMgLzxtZXRhZGF0YS1yb3V0ZT4vcm91dGUudHMuXG4gICAgLy8gSWYgaXQncyBhIG1ldGFkYXRhIGZpbGUgcm91dGUsIHdlIG5lZWQgdG8gYXBwZW5kIC9baWRdL3JvdXRlIHRvIHRoZSBwYWdlLlxuICAgIGlmICghcm91dGUuZW5kc1dpdGgoXCIvcm91dGVcIikpIHtcbiAgICAgICAgY29uc3QgeyBkaXIsIG5hbWU6IGJhc2VOYW1lLCBleHQgfSA9IHBhdGgucGFyc2Uocm91dGUpO1xuICAgICAgICBjb25zdCBpc1N0YXRpY1JvdXRlID0gaXNTdGF0aWNNZXRhZGF0YVJvdXRlKHBhZ2UpO1xuICAgICAgICByb3V0ZSA9IHBhdGgucG9zaXguam9pbihkaXIsIGAke2Jhc2VOYW1lfSR7c3VmZml4ID8gYC0ke3N1ZmZpeH1gIDogXCJcIn0ke2V4dH1gLCBpc1N0YXRpY1JvdXRlID8gXCJcIiA6IFwiW1suLi5fX21ldGFkYXRhX2lkX19dXVwiLCBcInJvdXRlXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcm91dGU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1tZXRhZGF0YS1yb3V0ZS5qcy5tYXAiXSwibmFtZXMiOlsiaXNNZXRhZGF0YVJvdXRlIiwiaXNTdGF0aWNNZXRhZGF0YVJvdXRlIiwicGF0aCIsImludGVycG9sYXRlRHluYW1pY1BhdGgiLCJnZXROYW1lZFJvdXRlUmVnZXgiLCJkamIySGFzaCIsIm5vcm1hbGl6ZUFwcFBhdGgiLCJub3JtYWxpemVQYXRoU2VwIiwiZ2V0TWV0YWRhdGFSb3V0ZVN1ZmZpeCIsInBhZ2UiLCJzdWZmaXgiLCJpbmNsdWRlcyIsInRvU3RyaW5nIiwic2xpY2UiLCJmaWxsTWV0YWRhdGFTZWdtZW50Iiwic2VnbWVudCIsInBhcmFtcyIsImltYWdlU2VnbWVudCIsInBhdGhuYW1lIiwicm91dGVSZWdleCIsInJvdXRlIiwicm91dGVTdWZmaXgiLCJuYW1lIiwiZXh0IiwicGFyc2UiLCJqb2luIiwibm9ybWFsaXplTWV0YWRhdGFSb3V0ZSIsImVuZHNXaXRoIiwicGF0aG5hbWVQcmVmaXgiLCJiYXNlbmFtZSIsImxlbmd0aCIsImRpciIsImJhc2VOYW1lIiwiaXNTdGF0aWNSb3V0ZSIsInBvc2l4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/is-metadata-route.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/is-metadata-route.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ STATIC_METADATA_IMAGES: () => (/* binding */ STATIC_METADATA_IMAGES),\n/* harmony export */ isMetadataRoute: () => (/* binding */ isMetadataRoute),\n/* harmony export */ isMetadataRouteFile: () => (/* binding */ isMetadataRouteFile),\n/* harmony export */ isStaticMetadataRoute: () => (/* binding */ isStaticMetadataRoute),\n/* harmony export */ isStaticMetadataRouteFile: () => (/* binding */ isStaticMetadataRouteFile)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_page_path_normalize_path_sep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/page-path/normalize-path-sep */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\");\n\nconst STATIC_METADATA_IMAGES = {\n icon: {\n filename: \"icon\",\n extensions: [\n \"ico\",\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"svg\"\n ]\n },\n apple: {\n filename: \"apple-icon\",\n extensions: [\n \"jpg\",\n \"jpeg\",\n \"png\"\n ]\n },\n favicon: {\n filename: \"favicon\",\n extensions: [\n \"ico\"\n ]\n },\n openGraph: {\n filename: \"opengraph-image\",\n extensions: [\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"gif\"\n ]\n },\n twitter: {\n filename: \"twitter-image\",\n extensions: [\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"gif\"\n ]\n }\n};\n// Match routes that are metadata routes, e.g. /sitemap.xml, /favicon.<ext>, /<icon>.<ext>, etc.\n// TODO-METADATA: support more metadata routes with more extensions\nconst defaultExtensions = [\n \"js\",\n \"jsx\",\n \"ts\",\n \"tsx\"\n];\nconst getExtensionRegexString = (extensions)=>`(?:${extensions.join(\"|\")})`;\n// When you only pass the file extension as `[]`, it will only match the static convention files\n// e.g. /robots.txt, /sitemap.xml, /favicon.ico, /manifest.json\n// When you pass the file extension as `['js', 'jsx', 'ts', 'tsx']`, it will also match the dynamic convention files\n// e.g. /robots.js, /sitemap.tsx, /favicon.jsx, /manifest.ts\n// When `withExtension` is false, it will match the static convention files without the extension, by default it's true\n// e.g. /robots, /sitemap, /favicon, /manifest, use to match dynamic API routes like app/robots.ts\nfunction isMetadataRouteFile(appDirRelativePath, pageExtensions, withExtension) {\n const metadataRouteFilesRegex = [\n new RegExp(`^[\\\\\\\\/]robots${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(\"txt\"))}$` : \"\"}`),\n new RegExp(`^[\\\\\\\\/]manifest${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(\"webmanifest\", \"json\"))}$` : \"\"}`),\n new RegExp(`^[\\\\\\\\/]favicon\\\\.ico$`),\n new RegExp(`[\\\\\\\\/]sitemap${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(\"xml\"))}$` : \"\"}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.icon.filename}\\\\d?${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.icon.extensions))}$` : \"\"}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.apple.filename}\\\\d?${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.apple.extensions))}$` : \"\"}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}\\\\d?${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.openGraph.extensions))}$` : \"\"}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}\\\\d?${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.twitter.extensions))}$` : \"\"}`)\n ];\n const normalizedAppDirRelativePath = (0,_shared_lib_page_path_normalize_path_sep__WEBPACK_IMPORTED_MODULE_0__.normalizePathSep)(appDirRelativePath);\n return metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath));\n}\nfunction isStaticMetadataRouteFile(appDirRelativePath) {\n return isMetadataRouteFile(appDirRelativePath, [], true);\n}\nfunction isStaticMetadataRoute(page) {\n return page === \"/robots\" || page === \"/manifest\" || isStaticMetadataRouteFile(page);\n}\n/*\n * Remove the 'app' prefix or '/route' suffix, only check the route name since they're only allowed in root app directory\n * e.g.\n * /app/robots -> /robots\n * app/robots -> /robots\n * /robots -> /robots\n */ function isMetadataRoute(route) {\n let page = route.replace(/^\\/?app\\//, \"\").replace(/\\/route$/, \"\");\n if (page[0] !== \"/\") page = \"/\" + page;\n return !page.endsWith(\"/page\") && isMetadataRouteFile(page, defaultExtensions, false);\n} //# sourceMappingURL=is-metadata-route.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2lzLW1ldGFkYXRhLXJvdXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFpRjtBQUMxRSxNQUFNQyx5QkFBeUI7SUFDbENDLE1BQU07UUFDRkMsVUFBVTtRQUNWQyxZQUFZO1lBQ1I7WUFDQTtZQUNBO1lBQ0E7WUFDQTtTQUNIO0lBQ0w7SUFDQUMsT0FBTztRQUNIRixVQUFVO1FBQ1ZDLFlBQVk7WUFDUjtZQUNBO1lBQ0E7U0FDSDtJQUNMO0lBQ0FFLFNBQVM7UUFDTEgsVUFBVTtRQUNWQyxZQUFZO1lBQ1I7U0FDSDtJQUNMO0lBQ0FHLFdBQVc7UUFDUEosVUFBVTtRQUNWQyxZQUFZO1lBQ1I7WUFDQTtZQUNBO1lBQ0E7U0FDSDtJQUNMO0lBQ0FJLFNBQVM7UUFDTEwsVUFBVTtRQUNWQyxZQUFZO1lBQ1I7WUFDQTtZQUNBO1lBQ0E7U0FDSDtJQUNMO0FBQ0osRUFBRTtBQUNGLGdHQUFnRztBQUNoRyxtRUFBbUU7QUFDbkUsTUFBTUssb0JBQW9CO0lBQ3RCO0lBQ0E7SUFDQTtJQUNBO0NBQ0g7QUFDRCxNQUFNQywwQkFBMEIsQ0FBQ04sYUFBYSxDQUFDLEdBQUcsRUFBRUEsV0FBV08sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNFLGdHQUFnRztBQUNoRywrREFBK0Q7QUFDL0Qsb0hBQW9IO0FBQ3BILDREQUE0RDtBQUM1RCx1SEFBdUg7QUFDdkgsa0dBQWtHO0FBQzNGLFNBQVNDLG9CQUFvQkMsa0JBQWtCLEVBQUVDLGNBQWMsRUFBRUMsYUFBYTtJQUNqRixNQUFNQywwQkFBMEI7UUFDNUIsSUFBSUMsT0FBTyxDQUFDLGNBQWMsRUFBRUYsZ0JBQWdCLENBQUMsR0FBRyxFQUFFTCx3QkFBd0JJLGVBQWVJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNqSCxJQUFJRCxPQUFPLENBQUMsZ0JBQWdCLEVBQUVGLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUMsZUFBZSxTQUFTLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNuSSxJQUFJRCxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDbkMsSUFBSUEsT0FBTyxDQUFDLGNBQWMsRUFBRUYsZ0JBQWdCLENBQUMsR0FBRyxFQUFFTCx3QkFBd0JJLGVBQWVJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNqSCxJQUFJRCxPQUFPLENBQUMsT0FBTyxFQUFFaEIsdUJBQXVCQyxJQUFJLENBQUNDLFFBQVEsQ0FBQyxJQUFJLEVBQUVZLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUNqQix1QkFBdUJDLElBQUksQ0FBQ0UsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN0TCxJQUFJYSxPQUFPLENBQUMsT0FBTyxFQUFFaEIsdUJBQXVCSSxLQUFLLENBQUNGLFFBQVEsQ0FBQyxJQUFJLEVBQUVZLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUNqQix1QkFBdUJJLEtBQUssQ0FBQ0QsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN4TCxJQUFJYSxPQUFPLENBQUMsT0FBTyxFQUFFaEIsdUJBQXVCTSxTQUFTLENBQUNKLFFBQVEsQ0FBQyxJQUFJLEVBQUVZLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUNqQix1QkFBdUJNLFNBQVMsQ0FBQ0gsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNoTSxJQUFJYSxPQUFPLENBQUMsT0FBTyxFQUFFaEIsdUJBQXVCTyxPQUFPLENBQUNMLFFBQVEsQ0FBQyxJQUFJLEVBQUVZLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUNqQix1QkFBdUJPLE9BQU8sQ0FBQ0osVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUMvTDtJQUNELE1BQU1lLCtCQUErQm5CLDBGQUFnQkEsQ0FBQ2E7SUFDdEQsT0FBT0csd0JBQXdCSSxJQUFJLENBQUMsQ0FBQ0MsSUFBSUEsRUFBRUMsSUFBSSxDQUFDSDtBQUNwRDtBQUNPLFNBQVNJLDBCQUEwQlYsa0JBQWtCO0lBQ3hELE9BQU9ELG9CQUFvQkMsb0JBQW9CLEVBQUUsRUFBRTtBQUN2RDtBQUNPLFNBQVNXLHNCQUFzQkMsSUFBSTtJQUN0QyxPQUFPQSxTQUFTLGFBQWFBLFNBQVMsZUFBZUYsMEJBQTBCRTtBQUNuRjtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNDLGdCQUFnQkMsS0FBSztJQUNyQyxJQUFJRixPQUFPRSxNQUFNQyxPQUFPLENBQUMsYUFBYSxJQUFJQSxPQUFPLENBQUMsWUFBWTtJQUM5RCxJQUFJSCxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDbEMsT0FBTyxDQUFDQSxLQUFLSSxRQUFRLENBQUMsWUFBWWpCLG9CQUFvQmEsTUFBTWhCLG1CQUFtQjtBQUNuRixFQUVBLDZDQUE2QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2lzLW1ldGFkYXRhLXJvdXRlLmpzPzk1NWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplUGF0aFNlcCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXBcIjtcbmV4cG9ydCBjb25zdCBTVEFUSUNfTUVUQURBVEFfSU1BR0VTID0ge1xuICAgIGljb246IHtcbiAgICAgICAgZmlsZW5hbWU6IFwiaWNvblwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICBcImljb1wiLFxuICAgICAgICAgICAgXCJqcGdcIixcbiAgICAgICAgICAgIFwianBlZ1wiLFxuICAgICAgICAgICAgXCJwbmdcIixcbiAgICAgICAgICAgIFwic3ZnXCJcbiAgICAgICAgXVxuICAgIH0sXG4gICAgYXBwbGU6IHtcbiAgICAgICAgZmlsZW5hbWU6IFwiYXBwbGUtaWNvblwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICBcImpwZ1wiLFxuICAgICAgICAgICAgXCJqcGVnXCIsXG4gICAgICAgICAgICBcInBuZ1wiXG4gICAgICAgIF1cbiAgICB9LFxuICAgIGZhdmljb246IHtcbiAgICAgICAgZmlsZW5hbWU6IFwiZmF2aWNvblwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICBcImljb1wiXG4gICAgICAgIF1cbiAgICB9LFxuICAgIG9wZW5HcmFwaDoge1xuICAgICAgICBmaWxlbmFtZTogXCJvcGVuZ3JhcGgtaW1hZ2VcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1xuICAgICAgICAgICAgXCJqcGdcIixcbiAgICAgICAgICAgIFwianBlZ1wiLFxuICAgICAgICAgICAgXCJwbmdcIixcbiAgICAgICAgICAgIFwiZ2lmXCJcbiAgICAgICAgXVxuICAgIH0sXG4gICAgdHdpdHRlcjoge1xuICAgICAgICBmaWxlbmFtZTogXCJ0d2l0dGVyLWltYWdlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICAgIFwianBnXCIsXG4gICAgICAgICAgICBcImpwZWdcIixcbiAgICAgICAgICAgIFwicG5nXCIsXG4gICAgICAgICAgICBcImdpZlwiXG4gICAgICAgIF1cbiAgICB9XG59O1xuLy8gTWF0Y2ggcm91dGVzIHRoYXQgYXJlIG1ldGFkYXRhIHJvdXRlcywgZS5nLiAvc2l0ZW1hcC54bWwsIC9mYXZpY29uLjxleHQ+LCAvPGljb24+LjxleHQ+LCBldGMuXG4vLyBUT0RPLU1FVEFEQVRBOiBzdXBwb3J0IG1vcmUgbWV0YWRhdGEgcm91dGVzIHdpdGggbW9yZSBleHRlbnNpb25zXG5jb25zdCBkZWZhdWx0RXh0ZW5zaW9ucyA9IFtcbiAgICBcImpzXCIsXG4gICAgXCJqc3hcIixcbiAgICBcInRzXCIsXG4gICAgXCJ0c3hcIlxuXTtcbmNvbnN0IGdldEV4dGVuc2lvblJlZ2V4U3RyaW5nID0gKGV4dGVuc2lvbnMpPT5gKD86JHtleHRlbnNpb25zLmpvaW4oXCJ8XCIpfSlgO1xuLy8gV2hlbiB5b3Ugb25seSBwYXNzIHRoZSBmaWxlIGV4dGVuc2lvbiBhcyBgW11gLCBpdCB3aWxsIG9ubHkgbWF0Y2ggdGhlIHN0YXRpYyBjb252ZW50aW9uIGZpbGVzXG4vLyBlLmcuIC9yb2JvdHMudHh0LCAvc2l0ZW1hcC54bWwsIC9mYXZpY29uLmljbywgL21hbmlmZXN0Lmpzb25cbi8vIFdoZW4geW91IHBhc3MgdGhlIGZpbGUgZXh0ZW5zaW9uIGFzIGBbJ2pzJywgJ2pzeCcsICd0cycsICd0c3gnXWAsIGl0IHdpbGwgYWxzbyBtYXRjaCB0aGUgZHluYW1pYyBjb252ZW50aW9uIGZpbGVzXG4vLyBlLmcuIC9yb2JvdHMuanMsIC9zaXRlbWFwLnRzeCwgL2Zhdmljb24uanN4LCAvbWFuaWZlc3QudHNcbi8vIFdoZW4gYHdpdGhFeHRlbnNpb25gIGlzIGZhbHNlLCBpdCB3aWxsIG1hdGNoIHRoZSBzdGF0aWMgY29udmVudGlvbiBmaWxlcyB3aXRob3V0IHRoZSBleHRlbnNpb24sIGJ5IGRlZmF1bHQgaXQncyB0cnVlXG4vLyBlLmcuIC9yb2JvdHMsIC9zaXRlbWFwLCAvZmF2aWNvbiwgL21hbmlmZXN0LCB1c2UgdG8gbWF0Y2ggZHluYW1pYyBBUEkgcm91dGVzIGxpa2UgYXBwL3JvYm90cy50c1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWV0YWRhdGFSb3V0ZUZpbGUoYXBwRGlyUmVsYXRpdmVQYXRoLCBwYWdlRXh0ZW5zaW9ucywgd2l0aEV4dGVuc2lvbikge1xuICAgIGNvbnN0IG1ldGFkYXRhUm91dGVGaWxlc1JlZ2V4ID0gW1xuICAgICAgICBuZXcgUmVnRXhwKGBeW1xcXFxcXFxcL11yb2JvdHMke3dpdGhFeHRlbnNpb24gPyBgXFxcXC4ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKHBhZ2VFeHRlbnNpb25zLmNvbmNhdChcInR4dFwiKSl9JGAgOiBcIlwifWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBeW1xcXFxcXFxcL11tYW5pZmVzdCR7d2l0aEV4dGVuc2lvbiA/IGBcXFxcLiR7Z2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmcocGFnZUV4dGVuc2lvbnMuY29uY2F0KFwid2VibWFuaWZlc3RcIiwgXCJqc29uXCIpKX0kYCA6IFwiXCJ9YCksXG4gICAgICAgIG5ldyBSZWdFeHAoYF5bXFxcXFxcXFwvXWZhdmljb25cXFxcLmljbyRgKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL11zaXRlbWFwJHt3aXRoRXh0ZW5zaW9uID8gYFxcXFwuJHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhwYWdlRXh0ZW5zaW9ucy5jb25jYXQoXCJ4bWxcIikpfSRgIDogXCJcIn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMuaWNvbi5maWxlbmFtZX1cXFxcZD8ke3dpdGhFeHRlbnNpb24gPyBgXFxcXC4ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKHBhZ2VFeHRlbnNpb25zLmNvbmNhdChTVEFUSUNfTUVUQURBVEFfSU1BR0VTLmljb24uZXh0ZW5zaW9ucykpfSRgIDogXCJcIn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMuYXBwbGUuZmlsZW5hbWV9XFxcXGQ/JHt3aXRoRXh0ZW5zaW9uID8gYFxcXFwuJHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhwYWdlRXh0ZW5zaW9ucy5jb25jYXQoU1RBVElDX01FVEFEQVRBX0lNQUdFUy5hcHBsZS5leHRlbnNpb25zKSl9JGAgOiBcIlwifWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBbXFxcXFxcXFwvXSR7U1RBVElDX01FVEFEQVRBX0lNQUdFUy5vcGVuR3JhcGguZmlsZW5hbWV9XFxcXGQ/JHt3aXRoRXh0ZW5zaW9uID8gYFxcXFwuJHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhwYWdlRXh0ZW5zaW9ucy5jb25jYXQoU1RBVElDX01FVEFEQVRBX0lNQUdFUy5vcGVuR3JhcGguZXh0ZW5zaW9ucykpfSRgIDogXCJcIn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMudHdpdHRlci5maWxlbmFtZX1cXFxcZD8ke3dpdGhFeHRlbnNpb24gPyBgXFxcXC4ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKHBhZ2VFeHRlbnNpb25zLmNvbmNhdChTVEFUSUNfTUVUQURBVEFfSU1BR0VTLnR3aXR0ZXIuZXh0ZW5zaW9ucykpfSRgIDogXCJcIn1gKVxuICAgIF07XG4gICAgY29uc3Qgbm9ybWFsaXplZEFwcERpclJlbGF0aXZlUGF0aCA9IG5vcm1hbGl6ZVBhdGhTZXAoYXBwRGlyUmVsYXRpdmVQYXRoKTtcbiAgICByZXR1cm4gbWV0YWRhdGFSb3V0ZUZpbGVzUmVnZXguc29tZSgocik9PnIudGVzdChub3JtYWxpemVkQXBwRGlyUmVsYXRpdmVQYXRoKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZShhcHBEaXJSZWxhdGl2ZVBhdGgpIHtcbiAgICByZXR1cm4gaXNNZXRhZGF0YVJvdXRlRmlsZShhcHBEaXJSZWxhdGl2ZVBhdGgsIFtdLCB0cnVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXRpY01ldGFkYXRhUm91dGUocGFnZSkge1xuICAgIHJldHVybiBwYWdlID09PSBcIi9yb2JvdHNcIiB8fCBwYWdlID09PSBcIi9tYW5pZmVzdFwiIHx8IGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUocGFnZSk7XG59XG4vKlxuICogUmVtb3ZlIHRoZSAnYXBwJyBwcmVmaXggb3IgJy9yb3V0ZScgc3VmZml4LCBvbmx5IGNoZWNrIHRoZSByb3V0ZSBuYW1lIHNpbmNlIHRoZXkncmUgb25seSBhbGxvd2VkIGluIHJvb3QgYXBwIGRpcmVjdG9yeVxuICogZS5nLlxuICogL2FwcC9yb2JvdHMgLT4gL3JvYm90c1xuICogYXBwL3JvYm90cyAtPiAvcm9ib3RzXG4gKiAvcm9ib3RzIC0+IC9yb2JvdHNcbiAqLyBleHBvcnQgZnVuY3Rpb24gaXNNZXRhZGF0YVJvdXRlKHJvdXRlKSB7XG4gICAgbGV0IHBhZ2UgPSByb3V0ZS5yZXBsYWNlKC9eXFwvP2FwcFxcLy8sIFwiXCIpLnJlcGxhY2UoL1xcL3JvdXRlJC8sIFwiXCIpO1xuICAgIGlmIChwYWdlWzBdICE9PSBcIi9cIikgcGFnZSA9IFwiL1wiICsgcGFnZTtcbiAgICByZXR1cm4gIXBhZ2UuZW5kc1dpdGgoXCIvcGFnZVwiKSAmJiBpc01ldGFkYXRhUm91dGVGaWxlKHBhZ2UsIGRlZmF1bHRFeHRlbnNpb25zLCBmYWxzZSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW1ldGFkYXRhLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6WyJub3JtYWxpemVQYXRoU2VwIiwiU1RBVElDX01FVEFEQVRBX0lNQUdFUyIsImljb24iLCJmaWxlbmFtZSIsImV4dGVuc2lvbnMiLCJhcHBsZSIsImZhdmljb24iLCJvcGVuR3JhcGgiLCJ0d2l0dGVyIiwiZGVmYXVsdEV4dGVuc2lvbnMiLCJnZXRFeHRlbnNpb25SZWdleFN0cmluZyIsImpvaW4iLCJpc01ldGFkYXRhUm91dGVGaWxlIiwiYXBwRGlyUmVsYXRpdmVQYXRoIiwicGFnZUV4dGVuc2lvbnMiLCJ3aXRoRXh0ZW5zaW9uIiwibWV0YWRhdGFSb3V0ZUZpbGVzUmVnZXgiLCJSZWdFeHAiLCJjb25jYXQiLCJub3JtYWxpemVkQXBwRGlyUmVsYXRpdmVQYXRoIiwic29tZSIsInIiLCJ0ZXN0IiwiaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSIsImlzU3RhdGljTWV0YWRhdGFSb3V0ZSIsInBhZ2UiLCJpc01ldGFkYXRhUm91dGUiLCJyb3V0ZSIsInJlcGxhY2UiLCJlbmRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/metadata.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/metadata.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMetadataComponents: () => (/* binding */ createMetadataComponents)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _generate_basic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./generate/basic */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/basic.js\");\n/* harmony import */ var _generate_alternate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./generate/alternate */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/alternate.js\");\n/* harmony import */ var _generate_opengraph__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./generate/opengraph */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/opengraph.js\");\n/* harmony import */ var _generate_icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./generate/icons */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/icons.js\");\n/* harmony import */ var _resolve_metadata__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./resolve-metadata */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolve-metadata.js\");\n/* harmony import */ var _generate_meta__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./generate/meta */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/meta.js\");\n/* harmony import */ var _default_metadata__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./default-metadata */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/default-metadata.js\");\n/* harmony import */ var _client_components_not_found__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../client/components/not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n\n\n\n\n\n\n\n\n\n\n// Use a promise to share the status of the metadata resolving,\n// returning two components `MetadataTree` and `MetadataOutlet`\n// `MetadataTree` is the one that will be rendered at first in the content sequence for metadata tags.\n// `MetadataOutlet` is the one that will be rendered under error boundaries for metadata resolving errors.\n// In this way we can let the metadata tags always render successfully,\n// and the error will be caught by the error boundary and trigger fallbacks.\nfunction createMetadataComponents({ tree, pathname, searchParams, getDynamicParamFromSegment, appUsingSizeAdjustment, errorType }) {\n const metadataContext = {\n pathname\n };\n let resolve;\n // Only use promise.resolve here to avoid unhandled rejections\n const metadataErrorResolving = new Promise((res)=>{\n resolve = res;\n });\n async function MetadataTree() {\n const defaultMetadata = (0,_default_metadata__WEBPACK_IMPORTED_MODULE_8__.createDefaultMetadata)();\n const defaultViewport = (0,_default_metadata__WEBPACK_IMPORTED_MODULE_8__.createDefaultViewport)();\n let metadata = defaultMetadata;\n let viewport = defaultViewport;\n let error;\n const errorMetadataItem = [\n null,\n null,\n null\n ];\n const errorConvention = errorType === \"redirect\" ? undefined : errorType;\n const [resolvedError, resolvedMetadata, resolvedViewport] = await (0,_resolve_metadata__WEBPACK_IMPORTED_MODULE_6__.resolveMetadata)({\n tree,\n parentParams: {},\n metadataItems: [],\n errorMetadataItem,\n searchParams,\n getDynamicParamFromSegment,\n errorConvention,\n metadataContext\n });\n if (!resolvedError) {\n viewport = resolvedViewport;\n metadata = resolvedMetadata;\n resolve(undefined);\n } else {\n error = resolvedError;\n // If the error triggers in initial metadata resolving, re-resolve with proper error type.\n // They'll be saved for flight data, when hydrates, it will replaces the SSR'd metadata with this.\n // for not-found error: resolve not-found metadata\n if (!errorType && (0,_client_components_not_found__WEBPACK_IMPORTED_MODULE_9__.isNotFoundError)(resolvedError)) {\n const [notFoundMetadataError, notFoundMetadata, notFoundViewport] = await (0,_resolve_metadata__WEBPACK_IMPORTED_MODULE_6__.resolveMetadata)({\n tree,\n parentParams: {},\n metadataItems: [],\n errorMetadataItem,\n searchParams,\n getDynamicParamFromSegment,\n errorConvention: \"not-found\",\n metadataContext\n });\n viewport = notFoundViewport;\n metadata = notFoundMetadata;\n error = notFoundMetadataError || error;\n }\n resolve(error);\n }\n const elements = (0,_generate_meta__WEBPACK_IMPORTED_MODULE_7__.MetaFilter)([\n (0,_generate_basic__WEBPACK_IMPORTED_MODULE_2__.ViewportMeta)({\n viewport: viewport\n }),\n (0,_generate_basic__WEBPACK_IMPORTED_MODULE_2__.BasicMeta)({\n metadata\n }),\n (0,_generate_alternate__WEBPACK_IMPORTED_MODULE_3__.AlternatesMetadata)({\n alternates: metadata.alternates\n }),\n (0,_generate_basic__WEBPACK_IMPORTED_MODULE_2__.ItunesMeta)({\n itunes: metadata.itunes\n }),\n (0,_generate_basic__WEBPACK_IMPORTED_MODULE_2__.FormatDetectionMeta)({\n formatDetection: metadata.formatDetection\n }),\n (0,_generate_basic__WEBPACK_IMPORTED_MODULE_2__.VerificationMeta)({\n verification: metadata.verification\n }),\n (0,_generate_basic__WEBPACK_IMPORTED_MODULE_2__.AppleWebAppMeta)({\n appleWebApp: metadata.appleWebApp\n }),\n (0,_generate_opengraph__WEBPACK_IMPORTED_MODULE_4__.OpenGraphMetadata)({\n openGraph: metadata.openGraph\n }),\n (0,_generate_opengraph__WEBPACK_IMPORTED_MODULE_4__.TwitterMetadata)({\n twitter: metadata.twitter\n }),\n (0,_generate_opengraph__WEBPACK_IMPORTED_MODULE_4__.AppLinksMeta)({\n appLinks: metadata.appLinks\n }),\n (0,_generate_icons__WEBPACK_IMPORTED_MODULE_5__.IconsMetadata)({\n icons: metadata.icons\n })\n ]);\n if (appUsingSizeAdjustment) elements.push(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"next-size-adjust\"\n }));\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: elements.map((el, index)=>{\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(el, {\n key: index\n });\n })\n });\n }\n async function MetadataOutlet() {\n const error = await metadataErrorResolving;\n if (error) {\n throw error;\n }\n return null;\n }\n return [\n MetadataTree,\n MetadataOutlet\n ];\n} //# sourceMappingURL=metadata.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL21ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUF1RTtBQUM3QztBQUNxRztBQUNyRTtBQUM4QjtBQUN2QztBQUNJO0FBQ1I7QUFDcUM7QUFDZDtBQUNwRSwrREFBK0Q7QUFDL0QsK0RBQStEO0FBQy9ELHNHQUFzRztBQUN0RywwR0FBMEc7QUFDMUcsdUVBQXVFO0FBQ3ZFLDRFQUE0RTtBQUNyRSxTQUFTcUIseUJBQXlCLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxZQUFZLEVBQUVDLDBCQUEwQixFQUFFQyxzQkFBc0IsRUFBRUMsU0FBUyxFQUFFO0lBQ3BJLE1BQU1DLGtCQUFrQjtRQUNwQkw7SUFDSjtJQUNBLElBQUlNO0lBQ0osOERBQThEO0lBQzlELE1BQU1DLHlCQUF5QixJQUFJQyxRQUFRLENBQUNDO1FBQ3hDSCxVQUFVRztJQUNkO0lBQ0EsZUFBZUM7UUFDWCxNQUFNQyxrQkFBa0JoQix3RUFBcUJBO1FBQzdDLE1BQU1pQixrQkFBa0JoQix3RUFBcUJBO1FBQzdDLElBQUlpQixXQUFXRjtRQUNmLElBQUlHLFdBQVdGO1FBQ2YsSUFBSUc7UUFDSixNQUFNQyxvQkFBb0I7WUFDdEI7WUFDQTtZQUNBO1NBQ0g7UUFDRCxNQUFNQyxrQkFBa0JiLGNBQWMsYUFBYWMsWUFBWWQ7UUFDL0QsTUFBTSxDQUFDZSxlQUFlQyxrQkFBa0JDLGlCQUFpQixHQUFHLE1BQU01QixrRUFBZUEsQ0FBQztZQUM5RU07WUFDQXVCLGNBQWMsQ0FBQztZQUNmQyxlQUFlLEVBQUU7WUFDakJQO1lBQ0FmO1lBQ0FDO1lBQ0FlO1lBQ0FaO1FBQ0o7UUFDQSxJQUFJLENBQUNjLGVBQWU7WUFDaEJMLFdBQVdPO1lBQ1hSLFdBQVdPO1lBQ1hkLFFBQVFZO1FBQ1osT0FBTztZQUNISCxRQUFRSTtZQUNSLDBGQUEwRjtZQUMxRixrR0FBa0c7WUFDbEcsa0RBQWtEO1lBQ2xELElBQUksQ0FBQ2YsYUFBYVAsNkVBQWVBLENBQUNzQixnQkFBZ0I7Z0JBQzlDLE1BQU0sQ0FBQ0ssdUJBQXVCQyxrQkFBa0JDLGlCQUFpQixHQUFHLE1BQU1qQyxrRUFBZUEsQ0FBQztvQkFDdEZNO29CQUNBdUIsY0FBYyxDQUFDO29CQUNmQyxlQUFlLEVBQUU7b0JBQ2pCUDtvQkFDQWY7b0JBQ0FDO29CQUNBZSxpQkFBaUI7b0JBQ2pCWjtnQkFDSjtnQkFDQVMsV0FBV1k7Z0JBQ1hiLFdBQVdZO2dCQUNYVixRQUFRUyx5QkFBeUJUO1lBQ3JDO1lBQ0FULFFBQVFTO1FBQ1o7UUFDQSxNQUFNWSxXQUFXakMsMERBQVVBLENBQUM7WUFDeEJSLDZEQUFZQSxDQUFDO2dCQUNUNEIsVUFBVUE7WUFDZDtZQUNBN0IsMERBQVNBLENBQUM7Z0JBQ040QjtZQUNKO1lBQ0F6Qix1RUFBa0JBLENBQUM7Z0JBQ2Z3QyxZQUFZZixTQUFTZSxVQUFVO1lBQ25DO1lBQ0E1QywyREFBVUEsQ0FBQztnQkFDUDZDLFFBQVFoQixTQUFTZ0IsTUFBTTtZQUMzQjtZQUNBOUMsb0VBQW1CQSxDQUFDO2dCQUNoQitDLGlCQUFpQmpCLFNBQVNpQixlQUFlO1lBQzdDO1lBQ0EzQyxpRUFBZ0JBLENBQUM7Z0JBQ2I0QyxjQUFjbEIsU0FBU2tCLFlBQVk7WUFDdkM7WUFDQWpELGdFQUFlQSxDQUFDO2dCQUNaa0QsYUFBYW5CLFNBQVNtQixXQUFXO1lBQ3JDO1lBQ0EzQyxzRUFBaUJBLENBQUM7Z0JBQ2Q0QyxXQUFXcEIsU0FBU29CLFNBQVM7WUFDakM7WUFDQTNDLG9FQUFlQSxDQUFDO2dCQUNaNEMsU0FBU3JCLFNBQVNxQixPQUFPO1lBQzdCO1lBQ0EzQyxpRUFBWUEsQ0FBQztnQkFDVDRDLFVBQVV0QixTQUFTc0IsUUFBUTtZQUMvQjtZQUNBM0MsOERBQWFBLENBQUM7Z0JBQ1Y0QyxPQUFPdkIsU0FBU3VCLEtBQUs7WUFDekI7U0FDSDtRQUNELElBQUlqQyx3QkFBd0J3QixTQUFTVSxJQUFJLENBQUMsV0FBVyxHQUFHM0Qsc0RBQUlBLENBQUMsUUFBUTtZQUNqRTRELE1BQU07UUFDVjtRQUNBLE9BQU8sV0FBVyxHQUFHNUQsc0RBQUlBLENBQUNFLHVEQUFTQSxFQUFFO1lBQ2pDMkQsVUFBVVosU0FBU2EsR0FBRyxDQUFDLENBQUNDLElBQUlDO2dCQUN4QixPQUFPLFdBQVcsR0FBRzdELHlEQUFrQixDQUFDNEQsSUFBSTtvQkFDeENHLEtBQUtGO2dCQUNUO1lBQ0o7UUFDSjtJQUNKO0lBQ0EsZUFBZUc7UUFDWCxNQUFNOUIsUUFBUSxNQUFNUjtRQUNwQixJQUFJUSxPQUFPO1lBQ1AsTUFBTUE7UUFDVjtRQUNBLE9BQU87SUFDWDtJQUNBLE9BQU87UUFDSEw7UUFDQW1DO0tBQ0g7QUFDTCxFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL21ldGFkYXRhLmpzP2Q3MDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQXBwbGVXZWJBcHBNZXRhLCBGb3JtYXREZXRlY3Rpb25NZXRhLCBJdHVuZXNNZXRhLCBCYXNpY01ldGEsIFZpZXdwb3J0TWV0YSwgVmVyaWZpY2F0aW9uTWV0YSB9IGZyb20gXCIuL2dlbmVyYXRlL2Jhc2ljXCI7XG5pbXBvcnQgeyBBbHRlcm5hdGVzTWV0YWRhdGEgfSBmcm9tIFwiLi9nZW5lcmF0ZS9hbHRlcm5hdGVcIjtcbmltcG9ydCB7IE9wZW5HcmFwaE1ldGFkYXRhLCBUd2l0dGVyTWV0YWRhdGEsIEFwcExpbmtzTWV0YSB9IGZyb20gXCIuL2dlbmVyYXRlL29wZW5ncmFwaFwiO1xuaW1wb3J0IHsgSWNvbnNNZXRhZGF0YSB9IGZyb20gXCIuL2dlbmVyYXRlL2ljb25zXCI7XG5pbXBvcnQgeyByZXNvbHZlTWV0YWRhdGEgfSBmcm9tIFwiLi9yZXNvbHZlLW1ldGFkYXRhXCI7XG5pbXBvcnQgeyBNZXRhRmlsdGVyIH0gZnJvbSBcIi4vZ2VuZXJhdGUvbWV0YVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdE1ldGFkYXRhLCBjcmVhdGVEZWZhdWx0Vmlld3BvcnQgfSBmcm9tIFwiLi9kZWZhdWx0LW1ldGFkYXRhXCI7XG5pbXBvcnQgeyBpc05vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kXCI7XG4vLyBVc2UgYSBwcm9taXNlIHRvIHNoYXJlIHRoZSBzdGF0dXMgb2YgdGhlIG1ldGFkYXRhIHJlc29sdmluZyxcbi8vIHJldHVybmluZyB0d28gY29tcG9uZW50cyBgTWV0YWRhdGFUcmVlYCBhbmQgYE1ldGFkYXRhT3V0bGV0YFxuLy8gYE1ldGFkYXRhVHJlZWAgaXMgdGhlIG9uZSB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgYXQgZmlyc3QgaW4gdGhlIGNvbnRlbnQgc2VxdWVuY2UgZm9yIG1ldGFkYXRhIHRhZ3MuXG4vLyBgTWV0YWRhdGFPdXRsZXRgIGlzIHRoZSBvbmUgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIHVuZGVyIGVycm9yIGJvdW5kYXJpZXMgZm9yIG1ldGFkYXRhIHJlc29sdmluZyBlcnJvcnMuXG4vLyBJbiB0aGlzIHdheSB3ZSBjYW4gbGV0IHRoZSBtZXRhZGF0YSB0YWdzIGFsd2F5cyByZW5kZXIgc3VjY2Vzc2Z1bGx5LFxuLy8gYW5kIHRoZSBlcnJvciB3aWxsIGJlIGNhdWdodCBieSB0aGUgZXJyb3IgYm91bmRhcnkgYW5kIHRyaWdnZXIgZmFsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cyh7IHRyZWUsIHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBhcHBVc2luZ1NpemVBZGp1c3RtZW50LCBlcnJvclR5cGUgfSkge1xuICAgIGNvbnN0IG1ldGFkYXRhQ29udGV4dCA9IHtcbiAgICAgICAgcGF0aG5hbWVcbiAgICB9O1xuICAgIGxldCByZXNvbHZlO1xuICAgIC8vIE9ubHkgdXNlIHByb21pc2UucmVzb2x2ZSBoZXJlIHRvIGF2b2lkIHVuaGFuZGxlZCByZWplY3Rpb25zXG4gICAgY29uc3QgbWV0YWRhdGFFcnJvclJlc29sdmluZyA9IG5ldyBQcm9taXNlKChyZXMpPT57XG4gICAgICAgIHJlc29sdmUgPSByZXM7XG4gICAgfSk7XG4gICAgYXN5bmMgZnVuY3Rpb24gTWV0YWRhdGFUcmVlKCkge1xuICAgICAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGEgPSBjcmVhdGVEZWZhdWx0TWV0YWRhdGEoKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdFZpZXdwb3J0ID0gY3JlYXRlRGVmYXVsdFZpZXdwb3J0KCk7XG4gICAgICAgIGxldCBtZXRhZGF0YSA9IGRlZmF1bHRNZXRhZGF0YTtcbiAgICAgICAgbGV0IHZpZXdwb3J0ID0gZGVmYXVsdFZpZXdwb3J0O1xuICAgICAgICBsZXQgZXJyb3I7XG4gICAgICAgIGNvbnN0IGVycm9yTWV0YWRhdGFJdGVtID0gW1xuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBudWxsXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGVycm9yQ29udmVudGlvbiA9IGVycm9yVHlwZSA9PT0gXCJyZWRpcmVjdFwiID8gdW5kZWZpbmVkIDogZXJyb3JUeXBlO1xuICAgICAgICBjb25zdCBbcmVzb2x2ZWRFcnJvciwgcmVzb2x2ZWRNZXRhZGF0YSwgcmVzb2x2ZWRWaWV3cG9ydF0gPSBhd2FpdCByZXNvbHZlTWV0YWRhdGEoe1xuICAgICAgICAgICAgdHJlZSxcbiAgICAgICAgICAgIHBhcmVudFBhcmFtczoge30sXG4gICAgICAgICAgICBtZXRhZGF0YUl0ZW1zOiBbXSxcbiAgICAgICAgICAgIGVycm9yTWV0YWRhdGFJdGVtLFxuICAgICAgICAgICAgc2VhcmNoUGFyYW1zLFxuICAgICAgICAgICAgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsXG4gICAgICAgICAgICBlcnJvckNvbnZlbnRpb24sXG4gICAgICAgICAgICBtZXRhZGF0YUNvbnRleHRcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghcmVzb2x2ZWRFcnJvcikge1xuICAgICAgICAgICAgdmlld3BvcnQgPSByZXNvbHZlZFZpZXdwb3J0O1xuICAgICAgICAgICAgbWV0YWRhdGEgPSByZXNvbHZlZE1ldGFkYXRhO1xuICAgICAgICAgICAgcmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IgPSByZXNvbHZlZEVycm9yO1xuICAgICAgICAgICAgLy8gSWYgdGhlIGVycm9yIHRyaWdnZXJzIGluIGluaXRpYWwgbWV0YWRhdGEgcmVzb2x2aW5nLCByZS1yZXNvbHZlIHdpdGggcHJvcGVyIGVycm9yIHR5cGUuXG4gICAgICAgICAgICAvLyBUaGV5J2xsIGJlIHNhdmVkIGZvciBmbGlnaHQgZGF0YSwgd2hlbiBoeWRyYXRlcywgaXQgd2lsbCByZXBsYWNlcyB0aGUgU1NSJ2QgbWV0YWRhdGEgd2l0aCB0aGlzLlxuICAgICAgICAgICAgLy8gZm9yIG5vdC1mb3VuZCBlcnJvcjogcmVzb2x2ZSBub3QtZm91bmQgbWV0YWRhdGFcbiAgICAgICAgICAgIGlmICghZXJyb3JUeXBlICYmIGlzTm90Rm91bmRFcnJvcihyZXNvbHZlZEVycm9yKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtub3RGb3VuZE1ldGFkYXRhRXJyb3IsIG5vdEZvdW5kTWV0YWRhdGEsIG5vdEZvdW5kVmlld3BvcnRdID0gYXdhaXQgcmVzb2x2ZU1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgdHJlZSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50UGFyYW1zOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFJdGVtczogW10sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yTWV0YWRhdGFJdGVtLFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LFxuICAgICAgICAgICAgICAgICAgICBlcnJvckNvbnZlbnRpb246IFwibm90LWZvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhQ29udGV4dFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHZpZXdwb3J0ID0gbm90Rm91bmRWaWV3cG9ydDtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IG5vdEZvdW5kTWV0YWRhdGE7XG4gICAgICAgICAgICAgICAgZXJyb3IgPSBub3RGb3VuZE1ldGFkYXRhRXJyb3IgfHwgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IE1ldGFGaWx0ZXIoW1xuICAgICAgICAgICAgVmlld3BvcnRNZXRhKHtcbiAgICAgICAgICAgICAgICB2aWV3cG9ydDogdmlld3BvcnRcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgQmFzaWNNZXRhKHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBBbHRlcm5hdGVzTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgIGFsdGVybmF0ZXM6IG1ldGFkYXRhLmFsdGVybmF0ZXNcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgSXR1bmVzTWV0YSh7XG4gICAgICAgICAgICAgICAgaXR1bmVzOiBtZXRhZGF0YS5pdHVuZXNcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgRm9ybWF0RGV0ZWN0aW9uTWV0YSh7XG4gICAgICAgICAgICAgICAgZm9ybWF0RGV0ZWN0aW9uOiBtZXRhZGF0YS5mb3JtYXREZXRlY3Rpb25cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgVmVyaWZpY2F0aW9uTWV0YSh7XG4gICAgICAgICAgICAgICAgdmVyaWZpY2F0aW9uOiBtZXRhZGF0YS52ZXJpZmljYXRpb25cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgQXBwbGVXZWJBcHBNZXRhKHtcbiAgICAgICAgICAgICAgICBhcHBsZVdlYkFwcDogbWV0YWRhdGEuYXBwbGVXZWJBcHBcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgT3BlbkdyYXBoTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgIG9wZW5HcmFwaDogbWV0YWRhdGEub3BlbkdyYXBoXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFR3aXR0ZXJNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgdHdpdHRlcjogbWV0YWRhdGEudHdpdHRlclxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBBcHBMaW5rc01ldGEoe1xuICAgICAgICAgICAgICAgIGFwcExpbmtzOiBtZXRhZGF0YS5hcHBMaW5rc1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBJY29uc01ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICBpY29uczogbWV0YWRhdGEuaWNvbnNcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF0pO1xuICAgICAgICBpZiAoYXBwVXNpbmdTaXplQWRqdXN0bWVudCkgZWxlbWVudHMucHVzaCgvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgICAgIG5hbWU6IFwibmV4dC1zaXplLWFkanVzdFwiXG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChfRnJhZ21lbnQsIHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBlbGVtZW50cy5tYXAoKGVsLCBpbmRleCk9PntcbiAgICAgICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jbG9uZUVsZW1lbnQoZWwsIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGZ1bmN0aW9uIE1ldGFkYXRhT3V0bGV0KCkge1xuICAgICAgICBjb25zdCBlcnJvciA9IGF3YWl0IG1ldGFkYXRhRXJyb3JSZXNvbHZpbmc7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIE1ldGFkYXRhVHJlZSxcbiAgICAgICAgTWV0YWRhdGFPdXRsZXRcbiAgICBdO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXRhZGF0YS5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiUmVhY3QiLCJBcHBsZVdlYkFwcE1ldGEiLCJGb3JtYXREZXRlY3Rpb25NZXRhIiwiSXR1bmVzTWV0YSIsIkJhc2ljTWV0YSIsIlZpZXdwb3J0TWV0YSIsIlZlcmlmaWNhdGlvbk1ldGEiLCJBbHRlcm5hdGVzTWV0YWRhdGEiLCJPcGVuR3JhcGhNZXRhZGF0YSIsIlR3aXR0ZXJNZXRhZGF0YSIsIkFwcExpbmtzTWV0YSIsIkljb25zTWV0YWRhdGEiLCJyZXNvbHZlTWV0YWRhdGEiLCJNZXRhRmlsdGVyIiwiY3JlYXRlRGVmYXVsdE1ldGFkYXRhIiwiY3JlYXRlRGVmYXVsdFZpZXdwb3J0IiwiaXNOb3RGb3VuZEVycm9yIiwiY3JlYXRlTWV0YWRhdGFDb21wb25lbnRzIiwidHJlZSIsInBhdGhuYW1lIiwic2VhcmNoUGFyYW1zIiwiZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQiLCJhcHBVc2luZ1NpemVBZGp1c3RtZW50IiwiZXJyb3JUeXBlIiwibWV0YWRhdGFDb250ZXh0IiwicmVzb2x2ZSIsIm1ldGFkYXRhRXJyb3JSZXNvbHZpbmciLCJQcm9taXNlIiwicmVzIiwiTWV0YWRhdGFUcmVlIiwiZGVmYXVsdE1ldGFkYXRhIiwiZGVmYXVsdFZpZXdwb3J0IiwibWV0YWRhdGEiLCJ2aWV3cG9ydCIsImVycm9yIiwiZXJyb3JNZXRhZGF0YUl0ZW0iLCJlcnJvckNvbnZlbnRpb24iLCJ1bmRlZmluZWQiLCJyZXNvbHZlZEVycm9yIiwicmVzb2x2ZWRNZXRhZGF0YSIsInJlc29sdmVkVmlld3BvcnQiLCJwYXJlbnRQYXJhbXMiLCJtZXRhZGF0YUl0ZW1zIiwibm90Rm91bmRNZXRhZGF0YUVycm9yIiwibm90Rm91bmRNZXRhZGF0YSIsIm5vdEZvdW5kVmlld3BvcnQiLCJlbGVtZW50cyIsImFsdGVybmF0ZXMiLCJpdHVuZXMiLCJmb3JtYXREZXRlY3Rpb24iLCJ2ZXJpZmljYXRpb24iLCJhcHBsZVdlYkFwcCIsIm9wZW5HcmFwaCIsInR3aXR0ZXIiLCJhcHBMaW5rcyIsImljb25zIiwicHVzaCIsIm5hbWUiLCJjaGlsZHJlbiIsIm1hcCIsImVsIiwiaW5kZXgiLCJjbG9uZUVsZW1lbnQiLCJrZXkiLCJNZXRhZGF0YU91dGxldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/metadata.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolve-metadata.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/resolve-metadata.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ accumulateMetadata: () => (/* binding */ accumulateMetadata),\n/* harmony export */ accumulateViewport: () => (/* binding */ accumulateViewport),\n/* harmony export */ collectMetadata: () => (/* binding */ collectMetadata),\n/* harmony export */ resolveMetadata: () => (/* binding */ resolveMetadata),\n/* harmony export */ resolveMetadataItems: () => (/* binding */ resolveMetadataItems)\n/* harmony export */ });\n/* harmony import */ var _default_metadata__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./default-metadata */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/default-metadata.js\");\n/* harmony import */ var _resolvers_resolve_opengraph__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resolvers/resolve-opengraph */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-opengraph.js\");\n/* harmony import */ var _resolvers_resolve_title__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolvers/resolve-title */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-title.js\");\n/* harmony import */ var _generate_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./generate/utils */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/utils.js\");\n/* harmony import */ var _client_reference__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../client-reference */ \"(ssr)/../../node_modules/next/dist/esm/lib/client-reference.js\");\n/* harmony import */ var _server_lib_app_dir_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../server/lib/app-dir-module */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/app-dir-module.js\");\n/* harmony import */ var _interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../interop-default */ \"(ssr)/../../node_modules/next/dist/esm/lib/interop-default.js\");\n/* harmony import */ var _resolvers_resolve_basics__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./resolvers/resolve-basics */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-basics.js\");\n/* harmony import */ var _resolvers_resolve_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./resolvers/resolve-icons */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-icons.js\");\n/* harmony import */ var _server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../server/lib/trace/tracer */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n/* harmony import */ var _server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../server/lib/trace/constants */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n/* harmony import */ var _build_output_log__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../build/output/log */ \"(ssr)/../../node_modules/next/dist/esm/build/output/log.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction hasIconsProperty(icons, prop) {\n if (!icons) return false;\n if (prop === \"icon\") {\n // Detect if icons.icon will be presented, icons array and icons string will all be merged into icons.icon\n return !!(typeof icons === \"string\" || icons instanceof URL || Array.isArray(icons) || prop in icons && icons[prop]);\n } else {\n // Detect if icons.apple will be presented, only icons.apple will be merged into icons.apple\n return !!(typeof icons === \"object\" && prop in icons && icons[prop]);\n }\n}\nfunction mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates) {\n var _source_twitter, _source_openGraph;\n if (!staticFilesMetadata) return;\n const { icon, apple, openGraph, twitter, manifest } = staticFilesMetadata;\n // file based metadata is specified and current level metadata icons is not specified\n if (icon && !hasIconsProperty(source == null ? void 0 : source.icons, \"icon\") || apple && !hasIconsProperty(source == null ? void 0 : source.icons, \"apple\")) {\n target.icons = {\n icon: icon || [],\n apple: apple || []\n };\n }\n // file based metadata is specified and current level metadata twitter.images is not specified\n if (twitter && !(source == null ? void 0 : (_source_twitter = source.twitter) == null ? void 0 : _source_twitter.hasOwnProperty(\"images\"))) {\n const resolvedTwitter = (0,_resolvers_resolve_opengraph__WEBPACK_IMPORTED_MODULE_1__.resolveTwitter)({\n ...target.twitter,\n images: twitter\n }, target.metadataBase, titleTemplates.twitter);\n target.twitter = resolvedTwitter;\n }\n // file based metadata is specified and current level metadata openGraph.images is not specified\n if (openGraph && !(source == null ? void 0 : (_source_openGraph = source.openGraph) == null ? void 0 : _source_openGraph.hasOwnProperty(\"images\"))) {\n const resolvedOpenGraph = (0,_resolvers_resolve_opengraph__WEBPACK_IMPORTED_MODULE_1__.resolveOpenGraph)({\n ...target.openGraph,\n images: openGraph\n }, target.metadataBase, metadataContext, titleTemplates.openGraph);\n target.openGraph = resolvedOpenGraph;\n }\n if (manifest) {\n target.manifest = manifest;\n }\n return target;\n}\n// Merge the source metadata into the resolved target metadata.\nfunction mergeMetadata({ source, target, staticFilesMetadata, titleTemplates, metadataContext, buildState }) {\n // If there's override metadata, prefer it otherwise fallback to the default metadata.\n const metadataBase = typeof (source == null ? void 0 : source.metadataBase) !== \"undefined\" ? source.metadataBase : target.metadataBase;\n for(const key_ in source){\n const key = key_;\n switch(key){\n case \"title\":\n {\n target.title = (0,_resolvers_resolve_title__WEBPACK_IMPORTED_MODULE_2__.resolveTitle)(source.title, titleTemplates.title);\n break;\n }\n case \"alternates\":\n {\n target.alternates = (0,_resolvers_resolve_basics__WEBPACK_IMPORTED_MODULE_7__.resolveAlternates)(source.alternates, metadataBase, metadataContext);\n break;\n }\n case \"openGraph\":\n {\n target.openGraph = (0,_resolvers_resolve_opengraph__WEBPACK_IMPORTED_MODULE_1__.resolveOpenGraph)(source.openGraph, metadataBase, metadataContext, titleTemplates.openGraph);\n break;\n }\n case \"twitter\":\n {\n target.twitter = (0,_resolvers_resolve_opengraph__WEBPACK_IMPORTED_MODULE_1__.resolveTwitter)(source.twitter, metadataBase, titleTemplates.twitter);\n break;\n }\n case \"verification\":\n target.verification = (0,_resolvers_resolve_basics__WEBPACK_IMPORTED_MODULE_7__.resolveVerification)(source.verification);\n break;\n case \"icons\":\n {\n target.icons = (0,_resolvers_resolve_icons__WEBPACK_IMPORTED_MODULE_8__.resolveIcons)(source.icons);\n break;\n }\n case \"appleWebApp\":\n target.appleWebApp = (0,_resolvers_resolve_basics__WEBPACK_IMPORTED_MODULE_7__.resolveAppleWebApp)(source.appleWebApp);\n break;\n case \"appLinks\":\n target.appLinks = (0,_resolvers_resolve_basics__WEBPACK_IMPORTED_MODULE_7__.resolveAppLinks)(source.appLinks);\n break;\n case \"robots\":\n {\n target.robots = (0,_resolvers_resolve_basics__WEBPACK_IMPORTED_MODULE_7__.resolveRobots)(source.robots);\n break;\n }\n case \"archives\":\n case \"assets\":\n case \"bookmarks\":\n case \"keywords\":\n {\n target[key] = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_3__.resolveAsArrayOrUndefined)(source[key]);\n break;\n }\n case \"authors\":\n {\n target[key] = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_3__.resolveAsArrayOrUndefined)(source.authors);\n break;\n }\n case \"itunes\":\n {\n target[key] = (0,_resolvers_resolve_basics__WEBPACK_IMPORTED_MODULE_7__.resolveItunes)(source.itunes, metadataBase, metadataContext);\n break;\n }\n // directly assign fields that fallback to null\n case \"applicationName\":\n case \"description\":\n case \"generator\":\n case \"creator\":\n case \"publisher\":\n case \"category\":\n case \"classification\":\n case \"referrer\":\n case \"formatDetection\":\n case \"manifest\":\n // @ts-ignore TODO: support inferring\n target[key] = source[key] || null;\n break;\n case \"other\":\n target.other = Object.assign({}, target.other, source.other);\n break;\n case \"metadataBase\":\n target.metadataBase = metadataBase;\n break;\n default:\n {\n if (key === \"viewport\" || key === \"themeColor\" || key === \"colorScheme\") {\n buildState.warnings.add(`Unsupported metadata ${key} is configured in metadata export in ${metadataContext.pathname}. Please move it to viewport export instead.\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-viewport`);\n }\n break;\n }\n }\n }\n mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates);\n}\nfunction mergeViewport({ target, source }) {\n if (!source) return;\n for(const key_ in source){\n const key = key_;\n switch(key){\n case \"themeColor\":\n {\n target.themeColor = (0,_resolvers_resolve_basics__WEBPACK_IMPORTED_MODULE_7__.resolveThemeColor)(source.themeColor);\n break;\n }\n case \"colorScheme\":\n target.colorScheme = source.colorScheme || null;\n break;\n default:\n if (typeof source[key] !== \"undefined\") {\n // @ts-ignore viewport properties\n target[key] = source[key];\n }\n break;\n }\n }\n}\nasync function getDefinedViewport(mod, props, tracingProps) {\n if ((0,_client_reference__WEBPACK_IMPORTED_MODULE_4__.isClientReference)(mod)) {\n return null;\n }\n if (typeof mod.generateViewport === \"function\") {\n const { route } = tracingProps;\n return (parent)=>(0,_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_9__.getTracer)().trace(_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_10__.ResolveMetadataSpan.generateViewport, {\n spanName: `generateViewport ${route}`,\n attributes: {\n \"next.page\": route\n }\n }, ()=>mod.generateViewport(props, parent));\n }\n return mod.viewport || null;\n}\nasync function getDefinedMetadata(mod, props, tracingProps) {\n // Layer is a client component, we just skip it. It can't have metadata exported.\n // Return early to avoid accessing properties error for client references.\n if ((0,_client_reference__WEBPACK_IMPORTED_MODULE_4__.isClientReference)(mod)) {\n return null;\n }\n if (typeof mod.generateMetadata === \"function\") {\n const { route } = tracingProps;\n return (parent)=>(0,_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_9__.getTracer)().trace(_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_10__.ResolveMetadataSpan.generateMetadata, {\n spanName: `generateMetadata ${route}`,\n attributes: {\n \"next.page\": route\n }\n }, ()=>mod.generateMetadata(props, parent));\n }\n return mod.metadata || null;\n}\nasync function collectStaticImagesFiles(metadata, props, type) {\n var _this;\n if (!(metadata == null ? void 0 : metadata[type])) return undefined;\n const iconPromises = metadata[type].map(async (imageModule)=>(0,_interop_default__WEBPACK_IMPORTED_MODULE_6__.interopDefault)(await imageModule(props)));\n return (iconPromises == null ? void 0 : iconPromises.length) > 0 ? (_this = await Promise.all(iconPromises)) == null ? void 0 : _this.flat() : undefined;\n}\nasync function resolveStaticMetadata(components, props) {\n const { metadata } = components;\n if (!metadata) return null;\n const [icon, apple, openGraph, twitter] = await Promise.all([\n collectStaticImagesFiles(metadata, props, \"icon\"),\n collectStaticImagesFiles(metadata, props, \"apple\"),\n collectStaticImagesFiles(metadata, props, \"openGraph\"),\n collectStaticImagesFiles(metadata, props, \"twitter\")\n ]);\n const staticMetadata = {\n icon,\n apple,\n openGraph,\n twitter,\n manifest: metadata.manifest\n };\n return staticMetadata;\n}\n// [layout.metadata, static files metadata] -> ... -> [page.metadata, static files metadata]\nasync function collectMetadata({ tree, metadataItems, errorMetadataItem, props, route, errorConvention }) {\n let mod;\n let modType;\n const hasErrorConventionComponent = Boolean(errorConvention && tree[2][errorConvention]);\n if (errorConvention) {\n mod = await (0,_server_lib_app_dir_module__WEBPACK_IMPORTED_MODULE_5__.getComponentTypeModule)(tree, \"layout\");\n modType = errorConvention;\n } else {\n [mod, modType] = await (0,_server_lib_app_dir_module__WEBPACK_IMPORTED_MODULE_5__.getLayoutOrPageModule)(tree);\n }\n if (modType) {\n route += `/${modType}`;\n }\n const staticFilesMetadata = await resolveStaticMetadata(tree[2], props);\n const metadataExport = mod ? await getDefinedMetadata(mod, props, {\n route\n }) : null;\n const viewportExport = mod ? await getDefinedViewport(mod, props, {\n route\n }) : null;\n metadataItems.push([\n metadataExport,\n staticFilesMetadata,\n viewportExport\n ]);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await (0,_server_lib_app_dir_module__WEBPACK_IMPORTED_MODULE_5__.getComponentTypeModule)(tree, errorConvention);\n const errorViewportExport = errorMod ? await getDefinedViewport(errorMod, props, {\n route\n }) : null;\n const errorMetadataExport = errorMod ? await getDefinedMetadata(errorMod, props, {\n route\n }) : null;\n errorMetadataItem[0] = errorMetadataExport;\n errorMetadataItem[1] = staticFilesMetadata;\n errorMetadataItem[2] = errorViewportExport;\n }\n}\nasync function resolveMetadataItems({ tree, parentParams, metadataItems, errorMetadataItem, treePrefix = [], getDynamicParamFromSegment, searchParams, errorConvention }) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = [\n ...treePrefix,\n segment\n ];\n const isPage = typeof page !== \"undefined\";\n // Handle dynamic segment params.\n const segmentParam = getDynamicParamFromSegment(segment);\n /**\n * Create object holding the parent params and current params\n */ const currentParams = segmentParam && segmentParam.value !== null ? {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n } : parentParams;\n const layerProps = {\n params: currentParams,\n ...isPage && {\n searchParams\n }\n };\n await collectMetadata({\n tree,\n metadataItems,\n errorMetadataItem,\n errorConvention,\n props: layerProps,\n route: currentTreePrefix // __PAGE__ shouldn't be shown in a route\n .filter((s)=>s !== _shared_lib_segment__WEBPACK_IMPORTED_MODULE_11__.PAGE_SEGMENT_KEY).join(\"/\")\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveMetadataItems({\n tree: childTree,\n metadataItems,\n errorMetadataItem,\n parentParams: currentParams,\n treePrefix: currentTreePrefix,\n searchParams,\n getDynamicParamFromSegment,\n errorConvention\n });\n }\n if (Object.keys(parallelRoutes).length === 0 && errorConvention) {\n // If there are no parallel routes, place error metadata as the last item.\n // e.g. layout -> layout -> not-found\n metadataItems.push(errorMetadataItem);\n }\n return metadataItems;\n}\nconst hasTitle = (metadata)=>{\n var _metadata_title;\n return !!(metadata == null ? void 0 : (_metadata_title = metadata.title) == null ? void 0 : _metadata_title.absolute);\n};\nfunction inheritFromMetadata(metadata, target) {\n if (target) {\n if (!hasTitle(target) && hasTitle(metadata)) {\n target.title = metadata.title;\n }\n if (!target.description && metadata.description) {\n target.description = metadata.description;\n }\n }\n}\nconst commonOgKeys = [\n \"title\",\n \"description\",\n \"images\"\n];\nfunction postProcessMetadata(metadata, titleTemplates) {\n const { openGraph, twitter } = metadata;\n // If there's no title and description configured in openGraph or twitter,\n // use the title and description from metadata.\n inheritFromMetadata(metadata, openGraph);\n inheritFromMetadata(metadata, twitter);\n if (openGraph) {\n // If there's openGraph information but not configured in twitter,\n // inherit them from openGraph metadata.\n let autoFillProps = {};\n const hasTwTitle = hasTitle(twitter);\n const hasTwDescription = twitter == null ? void 0 : twitter.description;\n const hasTwImages = Boolean((twitter == null ? void 0 : twitter.hasOwnProperty(\"images\")) && twitter.images);\n if (!hasTwTitle) autoFillProps.title = openGraph.title;\n if (!hasTwDescription) autoFillProps.description = openGraph.description;\n if (!hasTwImages) autoFillProps.images = openGraph.images;\n if (Object.keys(autoFillProps).length > 0) {\n const partialTwitter = (0,_resolvers_resolve_opengraph__WEBPACK_IMPORTED_MODULE_1__.resolveTwitter)(autoFillProps, metadata.metadataBase, titleTemplates.twitter);\n if (metadata.twitter) {\n metadata.twitter = Object.assign({}, metadata.twitter, {\n ...!hasTwTitle && {\n title: partialTwitter == null ? void 0 : partialTwitter.title\n },\n ...!hasTwDescription && {\n description: partialTwitter == null ? void 0 : partialTwitter.description\n },\n ...!hasTwImages && {\n images: partialTwitter == null ? void 0 : partialTwitter.images\n }\n });\n } else {\n metadata.twitter = partialTwitter;\n }\n }\n }\n return metadata;\n}\nfunction collectMetadataExportPreloading(results, dynamicMetadataExportFn, resolvers) {\n results.push(dynamicMetadataExportFn(new Promise((resolve)=>{\n resolvers.push(resolve);\n })));\n}\nasync function getMetadataFromExport(getPreloadMetadataExport, dynamicMetadataResolveState, metadataItems, currentIndex, resolvedMetadata, metadataResults) {\n const metadataExport = getPreloadMetadataExport(metadataItems[currentIndex]);\n const dynamicMetadataResolvers = dynamicMetadataResolveState.resolvers;\n let metadata = null;\n if (typeof metadataExport === \"function\") {\n // Only preload at the beginning when resolves are empty\n if (!dynamicMetadataResolvers.length) {\n for(let j = currentIndex; j < metadataItems.length; j++){\n const preloadMetadataExport = getPreloadMetadataExport(metadataItems[j]) // metadataItems[j][0]\n ;\n // call each `generateMetadata function concurrently and stash their resolver\n if (typeof preloadMetadataExport === \"function\") {\n collectMetadataExportPreloading(metadataResults, preloadMetadataExport, dynamicMetadataResolvers);\n }\n }\n }\n const resolveParent = dynamicMetadataResolvers[dynamicMetadataResolveState.resolvingIndex];\n const metadataResult = metadataResults[dynamicMetadataResolveState.resolvingIndex++];\n // In dev we clone and freeze to prevent relying on mutating resolvedMetadata directly.\n // In prod we just pass resolvedMetadata through without any copying.\n const currentResolvedMetadata = true ? Object.freeze((__webpack_require__(/*! ./clone-metadata */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/clone-metadata.js\").cloneMetadata)(resolvedMetadata)) : 0;\n // This resolve should unblock the generateMetadata function if it awaited the parent\n // argument. If it didn't await the parent argument it might already have a value since it was\n // called concurrently. Regardless we await the return value before continuing on to the next layer\n resolveParent(currentResolvedMetadata);\n metadata = metadataResult instanceof Promise ? await metadataResult : metadataResult;\n } else if (metadataExport !== null && typeof metadataExport === \"object\") {\n // This metadataExport is the object form\n metadata = metadataExport;\n }\n return metadata;\n}\nasync function accumulateMetadata(metadataItems, metadataContext) {\n const resolvedMetadata = (0,_default_metadata__WEBPACK_IMPORTED_MODULE_0__.createDefaultMetadata)();\n const metadataResults = [];\n let titleTemplates = {\n title: null,\n twitter: null,\n openGraph: null\n };\n // Loop over all metadata items again, merging synchronously any static object exports,\n // awaiting any static promise exports, and resolving parent metadata and awaiting any generated metadata\n const dynamicMetadataResolvers = {\n resolvers: [],\n resolvingIndex: 0\n };\n const buildState = {\n warnings: new Set()\n };\n for(let i = 0; i < metadataItems.length; i++){\n const staticFilesMetadata = metadataItems[i][1];\n const metadata = await getMetadataFromExport((metadataItem)=>metadataItem[0], dynamicMetadataResolvers, metadataItems, i, resolvedMetadata, metadataResults);\n mergeMetadata({\n target: resolvedMetadata,\n source: metadata,\n metadataContext,\n staticFilesMetadata,\n titleTemplates,\n buildState\n });\n // If the layout is the same layer with page, skip the leaf layout and leaf page\n // The leaf layout and page are the last two items\n if (i < metadataItems.length - 2) {\n var _resolvedMetadata_title, _resolvedMetadata_openGraph, _resolvedMetadata_twitter;\n titleTemplates = {\n title: ((_resolvedMetadata_title = resolvedMetadata.title) == null ? void 0 : _resolvedMetadata_title.template) || null,\n openGraph: ((_resolvedMetadata_openGraph = resolvedMetadata.openGraph) == null ? void 0 : _resolvedMetadata_openGraph.title.template) || null,\n twitter: ((_resolvedMetadata_twitter = resolvedMetadata.twitter) == null ? void 0 : _resolvedMetadata_twitter.title.template) || null\n };\n }\n }\n // Only log warnings if there are any, and only once after the metadata resolving process is finished\n if (buildState.warnings.size > 0) {\n for (const warning of buildState.warnings){\n _build_output_log__WEBPACK_IMPORTED_MODULE_12__.warn(warning);\n }\n }\n return postProcessMetadata(resolvedMetadata, titleTemplates);\n}\nasync function accumulateViewport(metadataItems) {\n const resolvedViewport = (0,_default_metadata__WEBPACK_IMPORTED_MODULE_0__.createDefaultViewport)();\n const viewportResults = [];\n const dynamicMetadataResolvers = {\n resolvers: [],\n resolvingIndex: 0\n };\n for(let i = 0; i < metadataItems.length; i++){\n const viewport = await getMetadataFromExport((metadataItem)=>metadataItem[2], dynamicMetadataResolvers, metadataItems, i, resolvedViewport, viewportResults);\n mergeViewport({\n target: resolvedViewport,\n source: viewport\n });\n }\n return resolvedViewport;\n}\nasync function resolveMetadata({ tree, parentParams, metadataItems, errorMetadataItem, getDynamicParamFromSegment, searchParams, errorConvention, metadataContext }) {\n const resolvedMetadataItems = await resolveMetadataItems({\n tree,\n parentParams,\n metadataItems,\n errorMetadataItem,\n getDynamicParamFromSegment,\n searchParams,\n errorConvention\n });\n let error;\n let metadata = (0,_default_metadata__WEBPACK_IMPORTED_MODULE_0__.createDefaultMetadata)();\n let viewport = (0,_default_metadata__WEBPACK_IMPORTED_MODULE_0__.createDefaultViewport)();\n try {\n viewport = await accumulateViewport(resolvedMetadataItems);\n metadata = await accumulateMetadata(resolvedMetadataItems, metadataContext);\n } catch (err) {\n error = err;\n }\n return [\n error,\n metadata,\n viewport\n ];\n} //# sourceMappingURL=resolve-metadata.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL3Jlc29sdmUtbWV0YWRhdGEuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWtGO0FBQ0Q7QUFDeEI7QUFDSTtBQUNMO0FBQ3dDO0FBQzVDO0FBQ3NIO0FBQ2pIO0FBQ0M7QUFDYTtBQUNYO0FBQ2Q7QUFDOUMsU0FBU3NCLGlCQUFpQkMsS0FBSyxFQUFFQyxJQUFJO0lBQ2pDLElBQUksQ0FBQ0QsT0FBTyxPQUFPO0lBQ25CLElBQUlDLFNBQVMsUUFBUTtRQUNqQiwwR0FBMEc7UUFDMUcsT0FBTyxDQUFDLENBQUUsUUFBT0QsVUFBVSxZQUFZQSxpQkFBaUJFLE9BQU9DLE1BQU1DLE9BQU8sQ0FBQ0osVUFBVUMsUUFBUUQsU0FBU0EsS0FBSyxDQUFDQyxLQUFLO0lBQ3ZILE9BQU87UUFDSCw0RkFBNEY7UUFDNUYsT0FBTyxDQUFDLENBQUUsUUFBT0QsVUFBVSxZQUFZQyxRQUFRRCxTQUFTQSxLQUFLLENBQUNDLEtBQUs7SUFDdkU7QUFDSjtBQUNBLFNBQVNJLG9CQUFvQkMsTUFBTSxFQUFFQyxNQUFNLEVBQUVDLG1CQUFtQixFQUFFQyxlQUFlLEVBQUVDLGNBQWM7SUFDN0YsSUFBSUMsaUJBQWlCQztJQUNyQixJQUFJLENBQUNKLHFCQUFxQjtJQUMxQixNQUFNLEVBQUVLLElBQUksRUFBRUMsS0FBSyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFLEdBQUdUO0lBQ3RELHFGQUFxRjtJQUNyRixJQUFJSyxRQUFRLENBQUNkLGlCQUFpQk8sVUFBVSxPQUFPLEtBQUssSUFBSUEsT0FBT04sS0FBSyxFQUFFLFdBQVdjLFNBQVMsQ0FBQ2YsaUJBQWlCTyxVQUFVLE9BQU8sS0FBSyxJQUFJQSxPQUFPTixLQUFLLEVBQUUsVUFBVTtRQUMxSk8sT0FBT1AsS0FBSyxHQUFHO1lBQ1hhLE1BQU1BLFFBQVEsRUFBRTtZQUNoQkMsT0FBT0EsU0FB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O0lBQy9ELEVBQUUsT0FBT3FKLEtBQUs7UUFDVkQsUUFBUUM7SUFDWjtJQUNBLE9BQU87UUFDSEQ7UUFDQXBHO1FBQ0FIO0tBQ0g7QUFDTCxFQUVBLDRDQUE0QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL3Jlc29sdmUtbWV0YWRhdGEuanM/NDBmOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVEZWZhdWx0TWV0YWRhdGEsIGNyZWF0ZURlZmF1bHRWaWV3cG9ydCB9IGZyb20gXCIuL2RlZmF1bHQtbWV0YWRhdGFcIjtcbmltcG9ydCB7IHJlc29sdmVPcGVuR3JhcGgsIHJlc29sdmVUd2l0dGVyIH0gZnJvbSBcIi4vcmVzb2x2ZXJzL3Jlc29sdmUtb3BlbmdyYXBoXCI7XG5pbXBvcnQgeyByZXNvbHZlVGl0bGUgfSBmcm9tIFwiLi9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZVwiO1xuaW1wb3J0IHsgcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCB9IGZyb20gXCIuL2dlbmVyYXRlL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0NsaWVudFJlZmVyZW5jZSB9IGZyb20gXCIuLi9jbGllbnQtcmVmZXJlbmNlXCI7XG5pbXBvcnQgeyBnZXRDb21wb25lbnRUeXBlTW9kdWxlLCBnZXRMYXlvdXRPclBhZ2VNb2R1bGUgfSBmcm9tIFwiLi4vLi4vc2VydmVyL2xpYi9hcHAtZGlyLW1vZHVsZVwiO1xuaW1wb3J0IHsgaW50ZXJvcERlZmF1bHQgfSBmcm9tIFwiLi4vaW50ZXJvcC1kZWZhdWx0XCI7XG5pbXBvcnQgeyByZXNvbHZlQWx0ZXJuYXRlcywgcmVzb2x2ZUFwcGxlV2ViQXBwLCByZXNvbHZlQXBwTGlua3MsIHJlc29sdmVSb2JvdHMsIHJlc29sdmVUaGVtZUNvbG9yLCByZXNvbHZlVmVyaWZpY2F0aW9uLCByZXNvbHZlSXR1bmVzIH0gZnJvbSBcIi4vcmVzb2x2ZXJzL3Jlc29sdmUtYmFzaWNzXCI7XG5pbXBvcnQgeyByZXNvbHZlSWNvbnMgfSBmcm9tIFwiLi9yZXNvbHZlcnMvcmVzb2x2ZS1pY29uc1wiO1xuaW1wb3J0IHsgZ2V0VHJhY2VyIH0gZnJvbSBcIi4uLy4uL3NlcnZlci9saWIvdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBSZXNvbHZlTWV0YWRhdGFTcGFuIH0gZnJvbSBcIi4uLy4uL3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiO1xuaW1wb3J0ICogYXMgTG9nIGZyb20gXCIuLi8uLi9idWlsZC9vdXRwdXQvbG9nXCI7XG5mdW5jdGlvbiBoYXNJY29uc1Byb3BlcnR5KGljb25zLCBwcm9wKSB7XG4gICAgaWYgKCFpY29ucykgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChwcm9wID09PSBcImljb25cIikge1xuICAgICAgICAvLyBEZXRlY3QgaWYgaWNvbnMuaWNvbiB3aWxsIGJlIHByZXNlbnRlZCwgaWNvbnMgYXJyYXkgYW5kIGljb25zIHN0cmluZyB3aWxsIGFsbCBiZSBtZXJnZWQgaW50byBpY29ucy5pY29uXG4gICAgICAgIHJldHVybiAhISh0eXBlb2YgaWNvbnMgPT09IFwic3RyaW5nXCIgfHwgaWNvbnMgaW5zdGFuY2VvZiBVUkwgfHwgQXJyYXkuaXNBcnJheShpY29ucykgfHwgcHJvcCBpbiBpY29ucyAmJiBpY29uc1twcm9wXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRGV0ZWN0IGlmIGljb25zLmFwcGxlIHdpbGwgYmUgcHJlc2VudGVkLCBvbmx5IGljb25zLmFwcGxlIHdpbGwgYmUgbWVyZ2VkIGludG8gaWNvbnMuYXBwbGVcbiAgICAgICAgcmV0dXJuICEhKHR5cGVvZiBpY29ucyA9PT0gXCJvYmplY3RcIiAmJiBwcm9wIGluIGljb25zICYmIGljb25zW3Byb3BdKTtcbiAgICB9XG59XG5mdW5jdGlvbiBtZXJnZVN0YXRpY01ldGFkYXRhKHNvdXJjZSwgdGFyZ2V0LCBzdGF0aWNGaWxlc01ldGFkYXRhLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGVzKSB7XG4gICAgdmFyIF9zb3VyY2VfdHdpdHRlciwgX3NvdXJjZV9vcGVuR3JhcGg7XG4gICAgaWYgKCFzdGF0aWNGaWxlc01ldGFkYXRhKSByZXR1cm47XG4gICAgY29uc3QgeyBpY29uLCBhcHBsZSwgb3BlbkdyYXBoLCB0d2l0dGVyLCBtYW5pZmVzdCB9ID0gc3RhdGljRmlsZXNNZXRhZGF0YTtcbiAgICAvLyBmaWxlIGJhc2VkIG1ldGFkYXRhIGlzIHNwZWNpZmllZCBhbmQgY3VycmVudCBsZXZlbCBtZXRhZGF0YSBpY29ucyBpcyBub3Qgc3BlY2lmaWVkXG4gICAgaWYgKGljb24gJiYgIWhhc0ljb25zUHJvcGVydHkoc291cmNlID09IG51bGwgPyB2b2lkIDAgOiBzb3VyY2UuaWNvbnMsIFwiaWNvblwiKSB8fCBhcHBsZSAmJiAhaGFzSWNvbnNQcm9wZXJ0eShzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IHNvdXJjZS5pY29ucywgXCJhcHBsZVwiKSkge1xuICAgICAgICB0YXJnZXQuaWNvbnMgPSB7XG4gICAgICAgICAgICBpY29uOiBpY29uIHx8IFtdLFxuICAgICAgICAgICAgYXBwbGU6IGFwcGxlIHx8IFtdXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8vIGZpbGUgYmFzZWQgbWV0YWRhdGEgaXMgc3BlY2lmaWVkIGFuZCBjdXJyZW50IGxldmVsIG1ldGFkYXRhIHR3aXR0ZXIuaW1hZ2VzIGlzIG5vdCBzcGVjaWZpZWRcbiAgICBpZiAodHdpdHRlciAmJiAhKHNvdXJjZSA9PSBudWxsID8gdm9pZCAwIDogKF9zb3VyY2VfdHdpdHRlciA9IHNvdXJjZS50d2l0dGVyKSA9PSBudWxsID8gdm9pZCAwIDogX3NvdXJjZV90d2l0dGVyLmhhc093blByb3BlcnR5KFwiaW1hZ2VzXCIpKSkge1xuICAgICAgICBjb25zdCByZXNvbHZlZFR3aXR0ZXIgPSByZXNvbHZlVHdpdHRlcih7XG4gICAgICAgICAgICAuLi50YXJnZXQudHdpdHRlcixcbiAgICAgICAgICAgIGltYWdlczogdHdpdHRlclxuICAgICAgICB9LCB0YXJnZXQubWV0YWRhdGFCYXNlLCB0aXRsZVRlbXBsYXRlcy50d2l0dGVyKTtcbiAgICAgICAgdGFyZ2V0LnR3aXR0ZXIgPSByZXNvbHZlZFR3aXR0ZXI7XG4gICAgfVxuICAgIC8vIGZpbGUgYmFzZWQgbWV0YWRhdGEgaXMgc3BlY2lmaWVkIGFuZCBjdXJyZW50IGxldmVsIG1ldGFkYXRhIG9wZW5HcmFwaC5pbWFnZXMgaXMgbm90IHNwZWNpZmllZFxuICAgIGlmIChvcGVuR3JhcGggJiYgIShzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IChfc291cmNlX29wZW5HcmFwaCA9IHNvdXJjZS5vcGVuR3JhcGgpID09IG51bGwgPyB2b2lkIDAgOiBfc291cmNlX29wZW5HcmFwaC5oYXNPd25Qcm9wZXJ0eShcImltYWdlc1wiKSkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRPcGVuR3JhcGggPSByZXNvbHZlT3BlbkdyYXBoKHtcbiAgICAgICAgICAgIC4uLnRhcmdldC5vcGVuR3JhcGgsXG4gICAgICAgICAgICBpbWFnZXM6IG9wZW5HcmFwaFxuICAgICAgICB9LCB0YXJnZXQubWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGVzLm9wZW5HcmFwaCk7XG4gICAgICAgIHRhcmdldC5vcGVuR3JhcGggPSByZXNvbHZlZE9wZW5HcmFwaDtcbiAgICB9XG4gICAgaWYgKG1hbmlmZXN0KSB7XG4gICAgICAgIHRhcmdldC5tYW5pZmVzdCA9IG1hbmlmZXN0O1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuLy8gTWVyZ2UgdGhlIHNvdXJjZSBtZXRhZGF0YSBpbnRvIHRoZSByZXNvbHZlZCB0YXJnZXQgbWV0YWRhdGEuXG5mdW5jdGlvbiBtZXJnZU1ldGFkYXRhKHsgc291cmNlLCB0YXJnZXQsIHN0YXRpY0ZpbGVzTWV0YWRhdGEsIHRpdGxlVGVtcGxhdGVzLCBtZXRhZGF0YUNvbnRleHQsIGJ1aWxkU3RhdGUgfSkge1xuICAgIC8vIElmIHRoZXJlJ3Mgb3ZlcnJpZGUgbWV0YWRhdGEsIHByZWZlciBpdCBvdGhlcndpc2UgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgbWV0YWRhdGEuXG4gICAgY29uc3QgbWV0YWRhdGFCYXNlID0gdHlwZW9mIChzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IHNvdXJjZS5tZXRhZGF0YUJhc2UpICE9PSBcInVuZGVmaW5lZFwiID8gc291cmNlLm1ldGFkYXRhQmFzZSA6IHRhcmdldC5tZXRhZGF0YUJhc2U7XG4gICAgZm9yKGNvbnN0IGtleV8gaW4gc291cmNlKXtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5XztcbiAgICAgICAgc3dpdGNoKGtleSl7XG4gICAgICAgICAgICBjYXNlIFwidGl0bGVcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC50aXRsZSA9IHJlc29sdmVUaXRsZShzb3VyY2UudGl0bGUsIHRpdGxlVGVtcGxhdGVzLnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcImFsdGVybmF0ZXNcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5hbHRlcm5hdGVzID0gcmVzb2x2ZUFsdGVybmF0ZXMoc291cmNlLmFsdGVybmF0ZXMsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIm9wZW5HcmFwaFwiOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lm9wZW5HcmFwaCA9IHJlc29sdmVPcGVuR3JhcGgoc291cmNlLm9wZW5HcmFwaCwgbWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGVzLm9wZW5HcmFwaCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJ0d2l0dGVyXCI6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQudHdpdHRlciA9IHJlc29sdmVUd2l0dGVyKHNvdXJjZS50d2l0dGVyLCBtZXRhZGF0YUJhc2UsIHRpdGxlVGVtcGxhdGVzLnR3aXR0ZXIpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwidmVyaWZpY2F0aW9uXCI6XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnZlcmlmaWNhdGlvbiA9IHJlc29sdmVWZXJpZmljYXRpb24oc291cmNlLnZlcmlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiaWNvbnNcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5pY29ucyA9IHJlc29sdmVJY29ucyhzb3VyY2UuaWNvbnMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiYXBwbGVXZWJBcHBcIjpcbiAgICAgICAgICAgICAgICB0YXJnZXQuYXBwbGVXZWJBcHAgPSByZXNvbHZlQXBwbGVXZWJBcHAoc291cmNlLmFwcGxlV2ViQXBwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJhcHBMaW5rc1wiOlxuICAgICAgICAgICAgICAgIHRhcmdldC5hcHBMaW5rcyA9IHJlc29sdmVBcHBMaW5rcyhzb3VyY2UuYXBwTGlua3MpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInJvYm90c1wiOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnJvYm90cyA9IHJlc29sdmVSb2JvdHMoc291cmNlLnJvYm90cyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJhcmNoaXZlc1wiOlxuICAgICAgICAgICAgY2FzZSBcImFzc2V0c1wiOlxuICAgICAgICAgICAgY2FzZSBcImJvb2ttYXJrc1wiOlxuICAgICAgICAgICAgY2FzZSBcImtleXdvcmRzXCI6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQoc291cmNlW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiYXV0aG9yc1wiOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSByZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKHNvdXJjZS5hdXRob3JzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIml0dW5lc1wiOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSByZXNvbHZlSXR1bmVzKHNvdXJjZS5pdHVuZXMsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZGlyZWN0bHkgYXNzaWduIGZpZWxkcyB0aGF0IGZhbGxiYWNrIHRvIG51bGxcbiAgICAgICAgICAgIGNhc2UgXCJhcHBsaWNhdGlvbk5hbWVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJkZXNjcmlwdGlvblwiOlxuICAgICAgICAgICAgY2FzZSBcImdlbmVyYXRvclwiOlxuICAgICAgICAgICAgY2FzZSBcImNyZWF0b3JcIjpcbiAgICAgICAgICAgIGNhc2UgXCJwdWJsaXNoZXJcIjpcbiAgICAgICAgICAgIGNhc2UgXCJjYXRlZ29yeVwiOlxuICAgICAgICAgICAgY2FzZSBcImNsYXNzaWZpY2F0aW9uXCI6XG4gICAgICAgICAgICBjYXNlIFwicmVmZXJyZXJcIjpcbiAgICAgICAgICAgIGNhc2UgXCJmb3JtYXREZXRlY3Rpb25cIjpcbiAgICAgICAgICAgIGNhc2UgXCJtYW5pZmVzdFwiOlxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgVE9ETzogc3VwcG9ydCBpbmZlcnJpbmdcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwib3RoZXJcIjpcbiAgICAgICAgICAgICAgICB0YXJnZXQub3RoZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0YXJnZXQub3RoZXIsIHNvdXJjZS5vdGhlcik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibWV0YWRhdGFCYXNlXCI6XG4gICAgICAgICAgICAgICAgdGFyZ2V0Lm1ldGFkYXRhQmFzZSA9IG1ldGFkYXRhQmFzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcInZpZXdwb3J0XCIgfHwga2V5ID09PSBcInRoZW1lQ29sb3JcIiB8fCBrZXkgPT09IFwiY29sb3JTY2hlbWVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRTdGF0ZS53YXJuaW5ncy5hZGQoYFVuc3VwcG9ydGVkIG1ldGFkYXRhICR7a2V5fSBpcyBjb25maWd1cmVkIGluIG1ldGFkYXRhIGV4cG9ydCBpbiAke21ldGFkYXRhQ29udGV4dC5wYXRobmFtZX0uIFBsZWFzZSBtb3ZlIGl0IHRvIHZpZXdwb3J0IGV4cG9ydCBpbnN0ZWFkLlxcblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2dlbmVyYXRlLXZpZXdwb3J0YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG1lcmdlU3RhdGljTWV0YWRhdGEoc291cmNlLCB0YXJnZXQsIHN0YXRpY0ZpbGVzTWV0YWRhdGEsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZXMpO1xufVxuZnVuY3Rpb24gbWVyZ2VWaWV3cG9ydCh7IHRhcmdldCwgc291cmNlIH0pIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuO1xuICAgIGZvcihjb25zdCBrZXlfIGluIHNvdXJjZSl7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleV87XG4gICAgICAgIHN3aXRjaChrZXkpe1xuICAgICAgICAgICAgY2FzZSBcInRoZW1lQ29sb3JcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC50aGVtZUNvbG9yID0gcmVzb2x2ZVRoZW1lQ29sb3Ioc291cmNlLnRoZW1lQ29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiY29sb3JTY2hlbWVcIjpcbiAgICAgICAgICAgICAgICB0YXJnZXQuY29sb3JTY2hlbWUgPSBzb3VyY2UuY29sb3JTY2hlbWUgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2Vba2V5XSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlIHZpZXdwb3J0IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5hc3luYyBmdW5jdGlvbiBnZXREZWZpbmVkVmlld3BvcnQobW9kLCBwcm9wcywgdHJhY2luZ1Byb3BzKSB7XG4gICAgaWYgKGlzQ2xpZW50UmVmZXJlbmNlKG1vZCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbW9kLmdlbmVyYXRlVmlld3BvcnQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCB7IHJvdXRlIH0gPSB0cmFjaW5nUHJvcHM7XG4gICAgICAgIHJldHVybiAocGFyZW50KT0+Z2V0VHJhY2VyKCkudHJhY2UoUmVzb2x2ZU1ldGFkYXRhU3Bhbi5nZW5lcmF0ZVZpZXdwb3J0LCB7XG4gICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGBnZW5lcmF0ZVZpZXdwb3J0ICR7cm91dGV9YCxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibmV4dC5wYWdlXCI6IHJvdXRlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgKCk9Pm1vZC5nZW5lcmF0ZVZpZXdwb3J0KHByb3BzLCBwYXJlbnQpKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZC52aWV3cG9ydCB8fCBudWxsO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0RGVmaW5lZE1ldGFkYXRhKG1vZCwgcHJvcHMsIHRyYWNpbmdQcm9wcykge1xuICAgIC8vIExheWVyIGlzIGEgY2xpZW50IGNvbXBvbmVudCwgd2UganVzdCBza2lwIGl0LiBJdCBjYW4ndCBoYXZlIG1ldGFkYXRhIGV4cG9ydGVkLlxuICAgIC8vIFJldHVybiBlYXJseSB0byBhdm9pZCBhY2Nlc3NpbmcgcHJvcGVydGllcyBlcnJvciBmb3IgY2xpZW50IHJlZmVyZW5jZXMuXG4gICAgaWYgKGlzQ2xpZW50UmVmZXJlbmNlKG1vZCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbW9kLmdlbmVyYXRlTWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCB7IHJvdXRlIH0gPSB0cmFjaW5nUHJvcHM7XG4gICAgICAgIHJldHVybiAocGFyZW50KT0+Z2V0VHJhY2VyKCkudHJhY2UoUmVzb2x2ZU1ldGFkYXRhU3Bhbi5nZW5lcmF0ZU1ldGFkYXRhLCB7XG4gICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGBnZW5lcmF0ZU1ldGFkYXRhICR7cm91dGV9YCxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibmV4dC5wYWdlXCI6IHJvdXRlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgKCk9Pm1vZC5nZW5lcmF0ZU1ldGFkYXRhKHByb3BzLCBwYXJlbnQpKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZC5tZXRhZGF0YSB8fCBudWxsO1xufVxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdFN0YXRpY0ltYWdlc0ZpbGVzKG1ldGFkYXRhLCBwcm9wcywgdHlwZSkge1xuICAgIHZhciBfdGhpcztcbiAgICBpZiAoIShtZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogbWV0YWRhdGFbdHlwZV0pKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGljb25Qcm9taXNlcyA9IG1ldGFkYXRhW3R5cGVdLm1hcChhc3luYyAoaW1hZ2VNb2R1bGUpPT5pbnRlcm9wRGVmYXVsdChhd2FpdCBpbWFnZU1vZHVsZShwcm9wcykpKTtcbiAgICByZXR1cm4gKGljb25Qcm9taXNlcyA9PSBudWxsID8gdm9pZCAwIDogaWNvblByb21pc2VzLmxlbmd0aCkgPiAwID8gKF90aGlzID0gYXdhaXQgUHJvbWlzZS5hbGwoaWNvblByb21pc2VzKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzLmZsYXQoKSA6IHVuZGVmaW5lZDtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTdGF0aWNNZXRhZGF0YShjb21wb25lbnRzLCBwcm9wcykge1xuICAgIGNvbnN0IHsgbWV0YWRhdGEgfSA9IGNvbXBvbmVudHM7XG4gICAgaWYgKCFtZXRhZGF0YSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgW2ljb24sIGFwcGxlLCBvcGVuR3JhcGgsIHR3aXR0ZXJdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCBcImljb25cIiksXG4gICAgICAgIGNvbGxlY3RTdGF0aWNJbWFnZXNGaWxlcyhtZXRhZGF0YSwgcHJvcHMsIFwiYXBwbGVcIiksXG4gICAgICAgIGNvbGxlY3RTdGF0aWNJbWFnZXNGaWxlcyhtZXRhZGF0YSwgcHJvcHMsIFwib3BlbkdyYXBoXCIpLFxuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCBcInR3aXR0ZXJcIilcbiAgICBdKTtcbiAgICBjb25zdCBzdGF0aWNNZXRhZGF0YSA9IHtcbiAgICAgICAgaWNvbixcbiAgICAgICAgYXBwbGUsXG4gICAgICAgIG9wZW5HcmFwaCxcbiAgICAgICAgdHdpdHRlcixcbiAgICAgICAgbWFuaWZlc3Q6IG1ldGFkYXRhLm1hbmlmZXN0XG4gICAgfTtcbiAgICByZXR1cm4gc3RhdGljTWV0YWRhdGE7XG59XG4vLyBbbGF5b3V0Lm1ldGFkYXRhLCBzdGF0aWMgZmlsZXMgbWV0YWRhdGFdIC0+IC4uLiAtPiBbcGFnZS5tZXRhZGF0YSwgc3RhdGljIGZpbGVzIG1ldGFkYXRhXVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RNZXRhZGF0YSh7IHRyZWUsIG1ldGFkYXRhSXRlbXMsIGVycm9yTWV0YWRhdGFJdGVtLCBwcm9wcywgcm91dGUsIGVycm9yQ29udmVudGlvbiB9KSB7XG4gICAgbGV0IG1vZDtcbiAgICBsZXQgbW9kVHlwZTtcbiAgICBjb25zdCBoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQgPSBCb29sZWFuKGVycm9yQ29udmVudGlvbiAmJiB0cmVlWzJdW2Vycm9yQ29udmVudGlvbl0pO1xuICAgIGlmIChlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgbW9kID0gYXdhaXQgZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSh0cmVlLCBcImxheW91dFwiKTtcbiAgICAgICAgbW9kVHlwZSA9IGVycm9yQ29udmVudGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBbbW9kLCBtb2RUeXBlXSA9IGF3YWl0IGdldExheW91dE9yUGFnZU1vZHVsZSh0cmVlKTtcbiAgICB9XG4gICAgaWYgKG1vZFR5cGUpIHtcbiAgICAgICAgcm91dGUgKz0gYC8ke21vZFR5cGV9YDtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGljRmlsZXNNZXRhZGF0YSA9IGF3YWl0IHJlc29sdmVTdGF0aWNNZXRhZGF0YSh0cmVlWzJdLCBwcm9wcyk7XG4gICAgY29uc3QgbWV0YWRhdGFFeHBvcnQgPSBtb2QgPyBhd2FpdCBnZXREZWZpbmVkTWV0YWRhdGEobW9kLCBwcm9wcywge1xuICAgICAgICByb3V0ZVxuICAgIH0pIDogbnVsbDtcbiAgICBjb25zdCB2aWV3cG9ydEV4cG9ydCA9IG1vZCA/IGF3YWl0IGdldERlZmluZWRWaWV3cG9ydChtb2QsIHByb3BzLCB7XG4gICAgICAgIHJvdXRlXG4gICAgfSkgOiBudWxsO1xuICAgIG1ldGFkYXRhSXRlbXMucHVzaChbXG4gICAgICAgIG1ldGFkYXRhRXhwb3J0LFxuICAgICAgICBzdGF0aWNGaWxlc01ldGFkYXRhLFxuICAgICAgICB2aWV3cG9ydEV4cG9ydFxuICAgIF0pO1xuICAgIGlmIChoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQgJiYgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTW9kID0gYXdhaXQgZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSh0cmVlLCBlcnJvckNvbnZlbnRpb24pO1xuICAgICAgICBjb25zdCBlcnJvclZpZXdwb3J0RXhwb3J0ID0gZXJyb3JNb2QgPyBhd2FpdCBnZXREZWZpbmVkVmlld3BvcnQoZXJyb3JNb2QsIHByb3BzLCB7XG4gICAgICAgICAgICByb3V0ZVxuICAgICAgICB9KSA6IG51bGw7XG4gICAgICAgIGNvbnN0IGVycm9yTWV0YWRhdGFFeHBvcnQgPSBlcnJvck1vZCA/IGF3YWl0IGdldERlZmluZWRNZXRhZGF0YShlcnJvck1vZCwgcHJvcHMsIHtcbiAgICAgICAgICAgIHJvdXRlXG4gICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgZXJyb3JNZXRhZGF0YUl0ZW1bMF0gPSBlcnJvck1ldGFkYXRhRXhwb3J0O1xuICAgICAgICBlcnJvck1ldGFkYXRhSXRlbVsxXSA9IHN0YXRpY0ZpbGVzTWV0YWRhdGE7XG4gICAgICAgIGVycm9yTWV0YWRhdGFJdGVtWzJdID0gZXJyb3JWaWV3cG9ydEV4cG9ydDtcbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZU1ldGFkYXRhSXRlbXMoeyB0cmVlLCBwYXJlbnRQYXJhbXMsIG1ldGFkYXRhSXRlbXMsIGVycm9yTWV0YWRhdGFJdGVtLCB0cmVlUHJlZml4ID0gW10sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiB9KSB7XG4gICAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCB7IHBhZ2UgfV0gPSB0cmVlO1xuICAgIGNvbnN0IGN1cnJlbnRUcmVlUHJlZml4ID0gW1xuICAgICAgICAuLi50cmVlUHJlZml4LFxuICAgICAgICBzZWdtZW50XG4gICAgXTtcbiAgICBjb25zdCBpc1BhZ2UgPSB0eXBlb2YgcGFnZSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAvLyBIYW5kbGUgZHluYW1pYyBzZWdtZW50IHBhcmFtcy5cbiAgICBjb25zdCBzZWdtZW50UGFyYW0gPSBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudChzZWdtZW50KTtcbiAgICAvKipcbiAgICogQ3JlYXRlIG9iamVjdCBob2xkaW5nIHRoZSBwYXJlbnQgcGFyYW1zIGFuZCBjdXJyZW50IHBhcmFtc1xuICAgKi8gY29uc3QgY3VycmVudFBhcmFtcyA9IC8vIEhhbmRsZSBudWxsIGNhc2Ugd2hlcmUgZHluYW1pYyBwYXJhbSBpcyBvcHRpb25hbFxuICAgIHNlZ21lbnRQYXJhbSAmJiBzZWdtZW50UGFyYW0udmFsdWUgIT09IG51bGwgPyB7XG4gICAgICAgIC4uLnBhcmVudFBhcmFtcyxcbiAgICAgICAgW3NlZ21lbnRQYXJhbS5wYXJhbV06IHNlZ21lbnRQYXJhbS52YWx1ZVxuICAgIH0gOiBwYXJlbnRQYXJhbXM7XG4gICAgY29uc3QgbGF5ZXJQcm9wcyA9IHtcbiAgICAgICAgcGFyYW1zOiBjdXJyZW50UGFyYW1zLFxuICAgICAgICAuLi5pc1BhZ2UgJiYge1xuICAgICAgICAgICAgc2VhcmNoUGFyYW1zXG4gICAgICAgIH1cbiAgICB9O1xuICAgIGF3YWl0IGNvbGxlY3RNZXRhZGF0YSh7XG4gICAgICAgIHRyZWUsXG4gICAgICAgIG1ldGFkYXRhSXRlbXMsXG4gICAgICAgIGVycm9yTWV0YWRhdGFJdGVtLFxuICAgICAgICBlcnJvckNvbnZlbnRpb24sXG4gICAgICAgIHByb3BzOiBsYXllclByb3BzLFxuICAgICAgICByb3V0ZTogY3VycmVudFRyZWVQcmVmaXgvLyBfX1BBR0VfXyBzaG91bGRuJ3QgYmUgc2hvd24gaW4gYSByb3V0ZVxuICAgICAgICAuZmlsdGVyKChzKT0+cyAhPT0gUEFHRV9TRUdNRU5UX0tFWSkuam9pbihcIi9cIilcbiAgICB9KTtcbiAgICBmb3IoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKXtcbiAgICAgICAgY29uc3QgY2hpbGRUcmVlID0gcGFyYWxsZWxSb3V0ZXNba2V5XTtcbiAgICAgICAgYXdhaXQgcmVzb2x2ZU1ldGFkYXRhSXRlbXMoe1xuICAgICAgICAgICAgdHJlZTogY2hpbGRUcmVlLFxuICAgICAgICAgICAgbWV0YWRhdGFJdGVtcyxcbiAgICAgICAgICAgIGVycm9yTWV0YWRhdGFJdGVtLFxuICAgICAgICAgICAgcGFyZW50UGFyYW1zOiBjdXJyZW50UGFyYW1zLFxuICAgICAgICAgICAgdHJlZVByZWZpeDogY3VycmVudFRyZWVQcmVmaXgsXG4gICAgICAgICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCxcbiAgICAgICAgICAgIGVycm9yQ29udmVudGlvblxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKHBhcmFsbGVsUm91dGVzKS5sZW5ndGggPT09IDAgJiYgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBwYXJhbGxlbCByb3V0ZXMsIHBsYWNlIGVycm9yIG1ldGFkYXRhIGFzIHRoZSBsYXN0IGl0ZW0uXG4gICAgICAgIC8vIGUuZy4gbGF5b3V0IC0+IGxheW91dCAtPiBub3QtZm91bmRcbiAgICAgICAgbWV0YWRhdGFJdGVtcy5wdXNoKGVycm9yTWV0YWRhdGFJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhSXRlbXM7XG59XG5jb25zdCBoYXNUaXRsZSA9IChtZXRhZGF0YSk9PntcbiAgICB2YXIgX21ldGFkYXRhX3RpdGxlO1xuICAgIHJldHVybiAhIShtZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogKF9tZXRhZGF0YV90aXRsZSA9IG1ldGFkYXRhLnRpdGxlKSA9PSBudWxsID8gdm9pZCAwIDogX21ldGFkYXRhX3RpdGxlLmFic29sdXRlKTtcbn07XG5mdW5jdGlvbiBpbmhlcml0RnJvbU1ldGFkYXRhKG1ldGFkYXRhLCB0YXJnZXQpIHtcbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgIGlmICghaGFzVGl0bGUodGFyZ2V0KSAmJiBoYXNUaXRsZShtZXRhZGF0YSkpIHtcbiAgICAgICAgICAgIHRhcmdldC50aXRsZSA9IG1ldGFkYXRhLnRpdGxlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGFyZ2V0LmRlc2NyaXB0aW9uICYmIG1ldGFkYXRhLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0YXJnZXQuZGVzY3JpcHRpb24gPSBtZXRhZGF0YS5kZXNjcmlwdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbmNvbnN0IGNvbW1vbk9nS2V5cyA9IFtcbiAgICBcInRpdGxlXCIsXG4gICAgXCJkZXNjcmlwdGlvblwiLFxuICAgIFwiaW1hZ2VzXCJcbl07XG5mdW5jdGlvbiBwb3N0UHJvY2Vzc01ldGFkYXRhKG1ldGFkYXRhLCB0aXRsZVRlbXBsYXRlcykge1xuICAgIGNvbnN0IHsgb3BlbkdyYXBoLCB0d2l0dGVyIH0gPSBtZXRhZGF0YTtcbiAgICAvLyBJZiB0aGVyZSdzIG5vIHRpdGxlIGFuZCBkZXNjcmlwdGlvbiBjb25maWd1cmVkIGluIG9wZW5HcmFwaCBvciB0d2l0dGVyLFxuICAgIC8vIHVzZSB0aGUgdGl0bGUgYW5kIGRlc2NyaXB0aW9uIGZyb20gbWV0YWRhdGEuXG4gICAgaW5oZXJpdEZyb21NZXRhZGF0YShtZXRhZGF0YSwgb3BlbkdyYXBoKTtcbiAgICBpbmhlcml0RnJvbU1ldGFkYXRhKG1ldGFkYXRhLCB0d2l0dGVyKTtcbiAgICBpZiAob3BlbkdyYXBoKSB7XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgb3BlbkdyYXBoIGluZm9ybWF0aW9uIGJ1dCBub3QgY29uZmlndXJlZCBpbiB0d2l0dGVyLFxuICAgICAgICAvLyBpbmhlcml0IHRoZW0gZnJvbSBvcGVuR3JhcGggbWV0YWRhdGEuXG4gICAgICAgIGxldCBhdXRvRmlsbFByb3BzID0ge307XG4gICAgICAgIGNvbnN0IGhhc1R3VGl0bGUgPSBoYXNUaXRsZSh0d2l0dGVyKTtcbiAgICAgICAgY29uc3QgaGFzVHdEZXNjcmlwdGlvbiA9IHR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHR3aXR0ZXIuZGVzY3JpcHRpb247XG4gICAgICAgIGNvbnN0IGhhc1R3SW1hZ2VzID0gQm9vbGVhbigodHdpdHRlciA9PSBudWxsID8gdm9pZCAwIDogdHdpdHRlci5oYXNPd25Qcm9wZXJ0eShcImltYWdlc1wiKSkgJiYgdHdpdHRlci5pbWFnZXMpO1xuICAgICAgICBpZiAoIWhhc1R3VGl0bGUpIGF1dG9GaWxsUHJvcHMudGl0bGUgPSBvcGVuR3JhcGgudGl0bGU7XG4gICAgICAgIGlmICghaGFzVHdEZXNjcmlwdGlvbikgYXV0b0ZpbGxQcm9wcy5kZXNjcmlwdGlvbiA9IG9wZW5HcmFwaC5kZXNjcmlwdGlvbjtcbiAgICAgICAgaWYgKCFoYXNUd0ltYWdlcykgYXV0b0ZpbGxQcm9wcy5pbWFnZXMgPSBvcGVuR3JhcGguaW1hZ2VzO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoYXV0b0ZpbGxQcm9wcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcGFydGlhbFR3aXR0ZXIgPSByZXNvbHZlVHdpdHRlcihhdXRvRmlsbFByb3BzLCBtZXRhZGF0YS5tZXRhZGF0YUJhc2UsIHRpdGxlVGVtcGxhdGVzLnR3aXR0ZXIpO1xuICAgICAgICAgICAgaWYgKG1ldGFkYXRhLnR3aXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YS50d2l0dGVyID0gT2JqZWN0LmFzc2lnbih7fSwgbWV0YWRhdGEudHdpdHRlciwge1xuICAgICAgICAgICAgICAgICAgICAuLi4haGFzVHdUaXRsZSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGFydGlhbFR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcnRpYWxUd2l0dGVyLnRpdGxlXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLiFoYXNUd0Rlc2NyaXB0aW9uICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwYXJ0aWFsVHdpdHRlciA9PSBudWxsID8gdm9pZCAwIDogcGFydGlhbFR3aXR0ZXIuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uIWhhc1R3SW1hZ2VzICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlczogcGFydGlhbFR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcnRpYWxUd2l0dGVyLmltYWdlc1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhLnR3aXR0ZXIgPSBwYXJ0aWFsVHdpdHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWV0YWRhdGE7XG59XG5mdW5jdGlvbiBjb2xsZWN0TWV0YWRhdGFFeHBvcnRQcmVsb2FkaW5nKHJlc3VsdHMsIGR5bmFtaWNNZXRhZGF0YUV4cG9ydEZuLCByZXNvbHZlcnMpIHtcbiAgICByZXN1bHRzLnB1c2goZHluYW1pY01ldGFkYXRhRXhwb3J0Rm4obmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIHJlc29sdmVycy5wdXNoKHJlc29sdmUpO1xuICAgIH0pKSk7XG59XG5hc3luYyBmdW5jdGlvbiBnZXRNZXRhZGF0YUZyb21FeHBvcnQoZ2V0UHJlbG9hZE1ldGFkYXRhRXhwb3J0LCBkeW5hbWljTWV0YWRhdGFSZXNvbHZlU3RhdGUsIG1ldGFkYXRhSXRlbXMsIGN1cnJlbnRJbmRleCwgcmVzb2x2ZWRNZXRhZGF0YSwgbWV0YWRhdGFSZXN1bHRzKSB7XG4gICAgY29uc3QgbWV0YWRhdGFFeHBvcnQgPSBnZXRQcmVsb2FkTWV0YWRhdGFFeHBvcnQobWV0YWRhdGFJdGVtc1tjdXJyZW50SW5kZXhdKTtcbiAgICBjb25zdCBkeW5hbWljTWV0YWRhdGFSZXNvbHZlcnMgPSBkeW5hbWljTWV0YWRhdGFSZXNvbHZlU3RhdGUucmVzb2x2ZXJzO1xuICAgIGxldCBtZXRhZGF0YSA9IG51bGw7XG4gICAgaWYgKHR5cGVvZiBtZXRhZGF0YUV4cG9ydCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIC8vIE9ubHkgcHJlbG9hZCBhdCB0aGUgYmVnaW5uaW5nIHdoZW4gcmVzb2x2ZXMgYXJlIGVtcHR5XG4gICAgICAgIGlmICghZHluYW1pY01ldGFkYXRhUmVzb2x2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yKGxldCBqID0gY3VycmVudEluZGV4OyBqIDwgbWV0YWRhdGFJdGVtcy5sZW5ndGg7IGorKyl7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlbG9hZE1ldGFkYXRhRXhwb3J0ID0gZ2V0UHJlbG9hZE1ldGFkYXRhRXhwb3J0KG1ldGFkYXRhSXRlbXNbal0pIC8vIG1ldGFkYXRhSXRlbXNbal1bMF1cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gY2FsbCBlYWNoIGBnZW5lcmF0ZU1ldGFkYXRhIGZ1bmN0aW9uIGNvbmN1cnJlbnRseSBhbmQgc3Rhc2ggdGhlaXIgcmVzb2x2ZXJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByZWxvYWRNZXRhZGF0YUV4cG9ydCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3RNZXRhZGF0YUV4cG9ydFByZWxvYWRpbmcobWV0YWRhdGFSZXN1bHRzLCBwcmVsb2FkTWV0YWRhdGFFeHBvcnQsIGR5bmFtaWNNZXRhZGF0YVJlc29sdmVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc29sdmVQYXJlbnQgPSBkeW5hbWljTWV0YWRhdGFSZXNvbHZlcnNbZHluYW1pY01ldGFkYXRhUmVzb2x2ZVN0YXRlLnJlc29sdmluZ0luZGV4XTtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFSZXN1bHQgPSBtZXRhZGF0YVJlc3VsdHNbZHluYW1pY01ldGFkYXRhUmVzb2x2ZVN0YXRlLnJlc29sdmluZ0luZGV4KytdO1xuICAgICAgICAvLyBJbiBkZXYgd2UgY2xvbmUgYW5kIGZyZWV6ZSB0byBwcmV2ZW50IHJlbHlpbmcgb24gbXV0YXRpbmcgcmVzb2x2ZWRNZXRhZGF0YSBkaXJlY3RseS5cbiAgICAgICAgLy8gSW4gcHJvZCB3ZSBqdXN0IHBhc3MgcmVzb2x2ZWRNZXRhZGF0YSB0aHJvdWdoIHdpdGhvdXQgYW55IGNvcHlpbmcuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRSZXNvbHZlZE1ldGFkYXRhID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIiA/IE9iamVjdC5mcmVlemUocmVxdWlyZShcIi4vY2xvbmUtbWV0YWRhdGFcIikuY2xvbmVNZXRhZGF0YShyZXNvbHZlZE1ldGFkYXRhKSkgOiByZXNvbHZlZE1ldGFkYXRhO1xuICAgICAgICAvLyBUaGlzIHJlc29sdmUgc2hvdWxkIHVuYmxvY2sgdGhlIGdlbmVyYXRlTWV0YWRhdGEgZnVuY3Rpb24gaWYgaXQgYXdhaXRlZCB0aGUgcGFyZW50XG4gICAgICAgIC8vIGFyZ3VtZW50LiBJZiBpdCBkaWRuJ3QgYXdhaXQgdGhlIHBhcmVudCBhcmd1bWVudCBpdCBtaWdodCBhbHJlYWR5IGhhdmUgYSB2YWx1ZSBzaW5jZSBpdCB3YXNcbiAgICAgICAgLy8gY2FsbGVkIGNvbmN1cnJlbnRseS4gUmVnYXJkbGVzcyB3ZSBhd2FpdCB0aGUgcmV0dXJuIHZhbHVlIGJlZm9yZSBjb250aW51aW5nIG9uIHRvIHRoZSBuZXh0IGxheWVyXG4gICAgICAgIHJlc29sdmVQYXJlbnQoY3VycmVudFJlc29sdmVkTWV0YWRhdGEpO1xuICAgICAgICBtZXRhZGF0YSA9IG1ldGFkYXRhUmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSA/IGF3YWl0IG1ldGFkYXRhUmVzdWx0IDogbWV0YWRhdGFSZXN1bHQ7XG4gICAgfSBlbHNlIGlmIChtZXRhZGF0YUV4cG9ydCAhPT0gbnVsbCAmJiB0eXBlb2YgbWV0YWRhdGFFeHBvcnQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgLy8gVGhpcyBtZXRhZGF0YUV4cG9ydCBpcyB0aGUgb2JqZWN0IGZvcm1cbiAgICAgICAgbWV0YWRhdGEgPSBtZXRhZGF0YUV4cG9ydDtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFjY3VtdWxhdGVNZXRhZGF0YShtZXRhZGF0YUl0ZW1zLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBjb25zdCByZXNvbHZlZE1ldGFkYXRhID0gY3JlYXRlRGVmYXVsdE1ldGFkYXRhKCk7XG4gICAgY29uc3QgbWV0YWRhdGFSZXN1bHRzID0gW107XG4gICAgbGV0IHRpdGxlVGVtcGxhdGVzID0ge1xuICAgICAgICB0aXRsZTogbnVsbCxcbiAgICAgICAgdHdpdHRlcjogbnVsbCxcbiAgICAgICAgb3BlbkdyYXBoOiBudWxsXG4gICAgfTtcbiAgICAvLyBMb29wIG92ZXIgYWxsIG1ldGFkYXRhIGl0ZW1zIGFnYWluLCBtZXJnaW5nIHN5bmNocm9ub3VzbHkgYW55IHN0YXRpYyBvYmplY3QgZXhwb3J0cyxcbiAgICAvLyBhd2FpdGluZyBhbnkgc3RhdGljIHByb21pc2UgZXhwb3J0cywgYW5kIHJlc29sdmluZyBwYXJlbnQgbWV0YWRhdGEgYW5kIGF3YWl0aW5nIGFueSBnZW5lcmF0ZWQgbWV0YWRhdGFcbiAgICBjb25zdCBkeW5hbWljTWV0YWRhdGFSZXNvbHZlcnMgPSB7XG4gICAgICAgIHJlc29sdmVyczogW10sXG4gICAgICAgIHJlc29sdmluZ0luZGV4OiAwXG4gICAgfTtcbiAgICBjb25zdCBidWlsZFN0YXRlID0ge1xuICAgICAgICB3YXJuaW5nczogbmV3IFNldCgpXG4gICAgfTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbWV0YWRhdGFJdGVtcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IHN0YXRpY0ZpbGVzTWV0YWRhdGEgPSBtZXRhZGF0YUl0ZW1zW2ldWzFdO1xuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IGdldE1ldGFkYXRhRnJvbUV4cG9ydCgobWV0YWRhdGFJdGVtKT0+bWV0YWRhdGFJdGVtWzBdLCBkeW5hbWljTWV0YWRhdGFSZXNvbHZlcnMsIG1ldGFkYXRhSXRlbXMsIGksIHJlc29sdmVkTWV0YWRhdGEsIG1ldGFkYXRhUmVzdWx0cyk7XG4gICAgICAgIG1lcmdlTWV0YWRhdGEoe1xuICAgICAgICAgICAgdGFyZ2V0OiByZXNvbHZlZE1ldGFkYXRhLFxuICAgICAgICAgICAgc291cmNlOiBtZXRhZGF0YSxcbiAgICAgICAgICAgIG1ldGFkYXRhQ29udGV4dCxcbiAgICAgICAgICAgIHN0YXRpY0ZpbGVzTWV0YWRhdGEsXG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlcyxcbiAgICAgICAgICAgIGJ1aWxkU3RhdGVcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIElmIHRoZSBsYXlvdXQgaXMgdGhlIHNhbWUgbGF5ZXIgd2l0aCBwYWdlLCBza2lwIHRoZSBsZWFmIGxheW91dCBhbmQgbGVhZiBwYWdlXG4gICAgICAgIC8vIFRoZSBsZWFmIGxheW91dCBhbmQgcGFnZSBhcmUgdGhlIGxhc3QgdHdvIGl0ZW1zXG4gICAgICAgIGlmIChpIDwgbWV0YWRhdGFJdGVtcy5sZW5ndGggLSAyKSB7XG4gICAgICAgICAgICB2YXIgX3Jlc29sdmVkTWV0YWRhdGFfdGl0bGUsIF9yZXNvbHZlZE1ldGFkYXRhX29wZW5HcmFwaCwgX3Jlc29sdmVkTWV0YWRhdGFfdHdpdHRlcjtcbiAgICAgICAgICAgIHRpdGxlVGVtcGxhdGVzID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAoKF9yZXNvbHZlZE1ldGFkYXRhX3RpdGxlID0gcmVzb2x2ZWRNZXRhZGF0YS50aXRsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlZE1ldGFkYXRhX3RpdGxlLnRlbXBsYXRlKSB8fCBudWxsLFxuICAgICAgICAgICAgICAgIG9wZW5HcmFwaDogKChfcmVzb2x2ZWRNZXRhZGF0YV9vcGVuR3JhcGggPSByZXNvbHZlZE1ldGFkYXRhLm9wZW5HcmFwaCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlZE1ldGFkYXRhX29wZW5HcmFwaC50aXRsZS50ZW1wbGF0ZSkgfHwgbnVsbCxcbiAgICAgICAgICAgICAgICB0d2l0dGVyOiAoKF9yZXNvbHZlZE1ldGFkYXRhX3R3aXR0ZXIgPSByZXNvbHZlZE1ldGFkYXRhLnR3aXR0ZXIpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRNZXRhZGF0YV90d2l0dGVyLnRpdGxlLnRlbXBsYXRlKSB8fCBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE9ubHkgbG9nIHdhcm5pbmdzIGlmIHRoZXJlIGFyZSBhbnksIGFuZCBvbmx5IG9uY2UgYWZ0ZXIgdGhlIG1ldGFkYXRhIHJlc29sdmluZyBwcm9jZXNzIGlzIGZpbmlzaGVkXG4gICAgaWYgKGJ1aWxkU3RhdGUud2FybmluZ3Muc2l6ZSA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCB3YXJuaW5nIG9mIGJ1aWxkU3RhdGUud2FybmluZ3Mpe1xuICAgICAgICAgICAgTG9nLndhcm4od2FybmluZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBvc3RQcm9jZXNzTWV0YWRhdGEocmVzb2x2ZWRNZXRhZGF0YSwgdGl0bGVUZW1wbGF0ZXMpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFjY3VtdWxhdGVWaWV3cG9ydChtZXRhZGF0YUl0ZW1zKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRWaWV3cG9ydCA9IGNyZWF0ZURlZmF1bHRWaWV3cG9ydCgpO1xuICAgIGNvbnN0IHZpZXdwb3J0UmVzdWx0cyA9IFtdO1xuICAgIGNvbnN0IGR5bmFtaWNNZXRhZGF0YVJlc29sdmVycyA9IHtcbiAgICAgICAgcmVzb2x2ZXJzOiBbXSxcbiAgICAgICAgcmVzb2x2aW5nSW5kZXg6IDBcbiAgICB9O1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBtZXRhZGF0YUl0ZW1zLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSBhd2FpdCBnZXRNZXRhZGF0YUZyb21FeHBvcnQoKG1ldGFkYXRhSXRlbSk9Pm1ldGFkYXRhSXRlbVsyXSwgZHluYW1pY01ldGFkYXRhUmVzb2x2ZXJzLCBtZXRhZGF0YUl0ZW1zLCBpLCByZXNvbHZlZFZpZXdwb3J0LCB2aWV3cG9ydFJlc3VsdHMpO1xuICAgICAgICBtZXJnZVZpZXdwb3J0KHtcbiAgICAgICAgICAgIHRhcmdldDogcmVzb2x2ZWRWaWV3cG9ydCxcbiAgICAgICAgICAgIHNvdXJjZTogdmlld3BvcnRcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFZpZXdwb3J0O1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVNZXRhZGF0YSh7IHRyZWUsIHBhcmVudFBhcmFtcywgbWV0YWRhdGFJdGVtcywgZXJyb3JNZXRhZGF0YUl0ZW0sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgbWV0YWRhdGFDb250ZXh0IH0pIHtcbiAgICBjb25zdCByZXNvbHZlZE1ldGFkYXRhSXRlbXMgPSBhd2FpdCByZXNvbHZlTWV0YWRhdGFJdGVtcyh7XG4gICAgICAgIHRyZWUsXG4gICAgICAgIHBhcmVudFBhcmFtcyxcbiAgICAgICAgbWV0YWRhdGFJdGVtcyxcbiAgICAgICAgZXJyb3JNZXRhZGF0YUl0ZW0sXG4gICAgICAgIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LFxuICAgICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICAgIGVycm9yQ29udmVudGlvblxuICAgIH0pO1xuICAgIGxldCBlcnJvcjtcbiAgICBsZXQgbWV0YWRhdGEgPSBjcmVhdGVEZWZhdWx0TWV0YWRhdGEoKTtcbiAgICBsZXQgdmlld3BvcnQgPSBjcmVhdGVEZWZhdWx0Vmlld3BvcnQoKTtcbiAgICB0cnkge1xuICAgICAgICB2aWV3cG9ydCA9IGF3YWl0IGFjY3VtdWxhdGVWaWV3cG9ydChyZXNvbHZlZE1ldGFkYXRhSXRlbXMpO1xuICAgICAgICBtZXRhZGF0YSA9IGF3YWl0IGFjY3VtdWxhdGVNZXRhZGF0YShyZXNvbHZlZE1ldGFkYXRhSXRlbXMsIG1ldGFkYXRhQ29udGV4dCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGVycm9yID0gZXJyO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgICBlcnJvcixcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHZpZXdwb3J0XG4gICAgXTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1tZXRhZGF0YS5qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlRGVmYXVsdE1ldGFkYXRhIiwiY3JlYXRlRGVmYXVsdFZpZXdwb3J0IiwicmVzb2x2ZU9wZW5HcmFwaCIsInJlc29sdmVUd2l0dGVyIiwicmVzb2x2ZVRpdGxlIiwicmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCIsImlzQ2xpZW50UmVmZXJlbmNlIiwiZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSIsImdldExheW91dE9yUGFnZU1vZHVsZSIsImludGVyb3BEZWZhdWx0IiwicmVzb2x2ZUFsdGVybmF0ZXMiLCJyZXNvbHZlQXBwbGVXZWJBcHAiLCJyZXNvbHZlQXBwTGlua3MiLCJyZXNvbHZlUm9ib3RzIiwicmVzb2x2ZVRoZW1lQ29sb3IiLCJyZXNvbHZlVmVyaWZpY2F0aW9uIiwicmVzb2x2ZUl0dW5lcyIsInJlc29sdmVJY29ucyIsImdldFRyYWNlciIsIlJlc29sdmVNZXRhZGF0YVNwYW4iLCJQQUdFX1NFR01FTlRfS0VZIiwiTG9nIiwiaGFzSWNvbnNQcm9wZXJ0eSIsImljb25zIiwicHJvcCIsIlVSTCIsIkFycmF5IiwiaXNBcnJheSIsIm1lcmdlU3RhdGljTWV0YWRhdGEiLCJzb3VyY2UiLCJ0YXJnZXQiLCJzdGF0aWNGaWxlc01ldGFkYXRhIiwibWV0YWRhdGFDb250ZXh0IiwidGl0bGVUZW1wbGF0ZXMiLCJfc291cmNlX3R3aXR0ZXIiLCJfc291cmNlX29wZW5HcmFwaCIsImljb24iLCJhcHBsZSIsIm9wZW5HcmFwaCIsInR3aXR0ZXIiLCJtYW5pZmVzdCIsImhhc093blByb3BlcnR5IiwicmVzb2x2ZWRUd2l0dGVyIiwiaW1hZ2VzIiwibWV0YWRhdGFCYXNlIiwicmVzb2x2ZWRPcGVuR3JhcGgiLCJtZXJnZU1ldGFkYXRhIiwiYnVpbGRTdGF0ZSIsImtleV8iLCJrZXkiLCJ0aXRsZSIsImFsdGVybmF0ZXMiLCJ2ZXJpZmljYXRpb24iLCJhcHBsZVdlYkFwcCIsImFwcExpbmtzIiwicm9ib3RzIiwiYXV0aG9ycyIsIml0dW5lcyIsIm90aGVyIiwiT2JqZWN0IiwiYXNzaWduIiwid2FybmluZ3MiLCJhZGQiLCJwYXRobmFtZSIsIm1lcmdlVmlld3BvcnQiLCJ0aGVtZUNvbG9yIiwiY29sb3JTY2hlbWUiLCJnZXREZWZpbmVkVmlld3BvcnQiLCJtb2QiLCJwcm9wcyIsInRyYWNpbmdQcm9wcyIsImdlbmVyYXRlVmlld3BvcnQiLCJyb3V0ZSIsInBhcmVudCIsInRyYWNlIiwic3Bhbk5hbWUiLCJhdHRyaWJ1dGVzIiwidmlld3BvcnQiLCJnZXREZWZpbmVkTWV0YWRhdGEiLCJnZW5lcmF0ZU1ldGFkYXRhIiwibWV0YWRhdGEiLCJjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMiLCJ0eXBlIiwiX3RoaXMiLCJ1bmRlZmluZWQiLCJpY29uUHJvbWlzZXMiLCJtYXAiLCJpbWFnZU1vZHVsZSIsImxlbmd0aCIsIlByb21pc2UiLCJhbGwiLCJmbGF0IiwicmVzb2x2ZVN0YXRpY01ldGFkYXRhIiwiY29tcG9uZW50cyIsInN0YXRpY01ldGFkYXRhIiwiY29sbGVjdE1ldGFkYXRhIiwidHJlZSIsIm1ldGFkYXRhSXRlbXMiLCJlcnJvck1ldGFkYXRhSXRlbSIsImVycm9yQ29udmVudGlvbiIsIm1vZFR5cGUiLCJoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQiLCJCb29sZWFuIiwibWV0YWRhdGFFeHBvcnQiLCJ2aWV3cG9ydEV4cG9ydCIsInB1c2giLCJlcnJvck1vZCIsImVycm9yVmlld3BvcnRFeHBvcnQiLCJlcnJvck1ldGFkYXRhRXhwb3J0IiwicmVzb2x2ZU1ldGFkYXRhSXRlbXMiLCJwYXJlbnRQYXJhbXMiLCJ0cmVlUHJlZml4IiwiZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQiLCJzZWFyY2hQYXJhbXMiLCJzZWdtZW50IiwicGFyYWxsZWxSb3V0ZXMiLCJwYWdlIiwiY3VycmVudFRyZWVQcmVmaXgiLCJpc1BhZ2UiLCJzZWdtZW50UGFyYW0iLCJjdXJyZW50UGFyYW1zIiwidmFsdWUiLCJwYXJhbSIsImxheWVyUHJvcHMiLCJwYXJhbXMiLCJmaWx0ZXIiLCJzIiwiam9pbiIsImNoaWxkVHJlZSIsImtleXMiLCJoYXNUaXRsZSIsIl9tZXRhZGF0YV90aXRsZSIsImFic29sdXRlIiwiaW5oZXJpdEZyb21NZXRhZGF0YSIsImRlc2NyaXB0aW9uIiwiY29tbW9uT2dLZXlzIiwicG9zdFByb2Nlc3NNZXRhZGF0YSIsImF1dG9GaWxsUHJvcHMiLCJoYXNUd1RpdGxlIiwiaGFzVHdEZXNjcmlwdGlvbiIsImhhc1R3SW1hZ2VzIiwicGFydGlhbFR3aXR0ZXIiLCJjb2xsZWN0TWV0YWRhdGFFeHBvcnRQcmVsb2FkaW5nIiwicmVzdWx0cyIsImR5bmFtaWNNZXRhZGF0YUV4cG9ydEZuIiwicmVzb2x2ZXJzIiwicmVzb2x2ZSIsImdldE1ldGFkYXRhRnJvbUV4cG9ydCIsImdldFByZWxvYWRNZXRhZGF0YUV4cG9ydCIsImR5bmFtaWNNZXRhZGF0YVJlc29sdmVTdGF0ZSIsImN1cnJlbnRJbmRleCIsInJlc29sdmVkTWV0YWRhdGEiLCJtZXRhZGF0YVJlc3VsdHMiLCJkeW5hbWljTWV0YWRhdGFSZXNvbHZlcnMiLCJqIiwicHJlbG9hZE1ldGFkYXRhRXhwb3J0IiwicmVzb2x2ZVBhcmVudCIsInJlc29sdmluZ0luZGV4IiwibWV0YWRhdGFSZXN1bHQiLCJjdXJyZW50UmVzb2x2ZWRNZXRhZGF0YSIsInByb2Nlc3MiLCJmcmVlemUiLCJyZXF1aXJlIiwiY2xvbmVNZXRhZGF0YSIsImFjY3VtdWxhdGVNZXRhZGF0YSIsIlNldCIsImkiLCJtZXRhZGF0YUl0ZW0iLCJfcmVzb2x2ZWRNZXRhZGF0YV90aXRsZSIsIl9yZXNvbHZlZE1ldGFkYXRhX29wZW5HcmFwaCIsIl9yZXNvbHZlZE1ldGFkYXRhX3R3aXR0ZXIiLCJ0ZW1wbGF0ZSIsInNpemUiLCJ3YXJuaW5nIiwid2FybiIsImFjY3VtdWxhdGVWaWV3cG9ydCIsInJlc29sdmVkVmlld3BvcnQiLCJ2aWV3cG9ydFJlc3VsdHMiLCJyZXNvbHZlTWV0YWRhdGEiLCJyZXNvbHZlZE1ldGFkYXRhSXRlbXMiLCJlcnJvciIsImVyciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolve-metadata.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-basics.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-basics.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveAlternates: () => (/* binding */ resolveAlternates),\n/* harmony export */ resolveAppLinks: () => (/* binding */ resolveAppLinks),\n/* harmony export */ resolveAppleWebApp: () => (/* binding */ resolveAppleWebApp),\n/* harmony export */ resolveItunes: () => (/* binding */ resolveItunes),\n/* harmony export */ resolveRobots: () => (/* binding */ resolveRobots),\n/* harmony export */ resolveThemeColor: () => (/* binding */ resolveThemeColor),\n/* harmony export */ resolveVerification: () => (/* binding */ resolveVerification)\n/* harmony export */ });\n/* harmony import */ var _generate_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generate/utils */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/utils.js\");\n/* harmony import */ var _resolve_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resolve-url */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-url.js\");\n\n\nfunction resolveAlternateUrl(url, metadataBase, pathname) {\n // If alter native url is an URL instance,\n // we treat it as a URL base and resolve with current pathname\n if (url instanceof URL) {\n url = new URL(pathname, url);\n }\n return (0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.resolveAbsoluteUrlWithPathname)(url, metadataBase, pathname);\n}\nconst resolveThemeColor = (themeColor)=>{\n var _resolveAsArrayOrUndefined;\n if (!themeColor) return null;\n const themeColorDescriptors = [];\n (_resolveAsArrayOrUndefined = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(themeColor)) == null ? void 0 : _resolveAsArrayOrUndefined.forEach((descriptor)=>{\n if (typeof descriptor === \"string\") themeColorDescriptors.push({\n color: descriptor\n });\n else if (typeof descriptor === \"object\") themeColorDescriptors.push({\n color: descriptor.color,\n media: descriptor.media\n });\n });\n return themeColorDescriptors;\n};\nfunction resolveUrlValuesOfObject(obj, metadataBase, pathname) {\n if (!obj) return null;\n const result = {};\n for (const [key, value] of Object.entries(obj)){\n if (typeof value === \"string\" || value instanceof URL) {\n result[key] = [\n {\n url: resolveAlternateUrl(value, metadataBase, pathname)\n }\n ];\n } else {\n result[key] = [];\n value == null ? void 0 : value.forEach((item, index)=>{\n const url = resolveAlternateUrl(item.url, metadataBase, pathname);\n result[key][index] = {\n url,\n title: item.title\n };\n });\n }\n }\n return result;\n}\nfunction resolveCanonicalUrl(urlOrDescriptor, metadataBase, pathname) {\n if (!urlOrDescriptor) return null;\n const url = typeof urlOrDescriptor === \"string\" || urlOrDescriptor instanceof URL ? urlOrDescriptor : urlOrDescriptor.url;\n // Return string url because structureClone can't handle URL instance\n return {\n url: resolveAlternateUrl(url, metadataBase, pathname)\n };\n}\nconst resolveAlternates = (alternates, metadataBase, { pathname })=>{\n if (!alternates) return null;\n const canonical = resolveCanonicalUrl(alternates.canonical, metadataBase, pathname);\n const languages = resolveUrlValuesOfObject(alternates.languages, metadataBase, pathname);\n const media = resolveUrlValuesOfObject(alternates.media, metadataBase, pathname);\n const types = resolveUrlValuesOfObject(alternates.types, metadataBase, pathname);\n const result = {\n canonical,\n languages,\n media,\n types\n };\n return result;\n};\nconst robotsKeys = [\n \"noarchive\",\n \"nosnippet\",\n \"noimageindex\",\n \"nocache\",\n \"notranslate\",\n \"indexifembedded\",\n \"nositelinkssearchbox\",\n \"unavailable_after\",\n \"max-video-preview\",\n \"max-image-preview\",\n \"max-snippet\"\n];\nconst resolveRobotsValue = (robots)=>{\n if (!robots) return null;\n if (typeof robots === \"string\") return robots;\n const values = [];\n if (robots.index) values.push(\"index\");\n else if (typeof robots.index === \"boolean\") values.push(\"noindex\");\n if (robots.follow) values.push(\"follow\");\n else if (typeof robots.follow === \"boolean\") values.push(\"nofollow\");\n for (const key of robotsKeys){\n const value = robots[key];\n if (typeof value !== \"undefined\" && value !== false) {\n values.push(typeof value === \"boolean\" ? key : `${key}:${value}`);\n }\n }\n return values.join(\", \");\n};\nconst resolveRobots = (robots)=>{\n if (!robots) return null;\n return {\n basic: resolveRobotsValue(robots),\n googleBot: typeof robots !== \"string\" ? resolveRobotsValue(robots.googleBot) : null\n };\n};\nconst VerificationKeys = [\n \"google\",\n \"yahoo\",\n \"yandex\",\n \"me\",\n \"other\"\n];\nconst resolveVerification = (verification)=>{\n if (!verification) return null;\n const res = {};\n for (const key of VerificationKeys){\n const value = verification[key];\n if (value) {\n if (key === \"other\") {\n res.other = {};\n for(const otherKey in verification.other){\n const otherValue = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(verification.other[otherKey]);\n if (otherValue) res.other[otherKey] = otherValue;\n }\n } else res[key] = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(value);\n }\n }\n return res;\n};\nconst resolveAppleWebApp = (appWebApp)=>{\n var _resolveAsArrayOrUndefined;\n if (!appWebApp) return null;\n if (appWebApp === true) {\n return {\n capable: true\n };\n }\n const startupImages = appWebApp.startupImage ? (_resolveAsArrayOrUndefined = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(appWebApp.startupImage)) == null ? void 0 : _resolveAsArrayOrUndefined.map((item)=>typeof item === \"string\" ? {\n url: item\n } : item) : null;\n return {\n capable: \"capable\" in appWebApp ? !!appWebApp.capable : true,\n title: appWebApp.title || null,\n startupImage: startupImages,\n statusBarStyle: appWebApp.statusBarStyle || \"default\"\n };\n};\nconst resolveAppLinks = (appLinks)=>{\n if (!appLinks) return null;\n for(const key in appLinks){\n // @ts-ignore // TODO: type infer\n appLinks[key] = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(appLinks[key]);\n }\n return appLinks;\n};\nconst resolveItunes = (itunes, metadataBase, { pathname })=>{\n if (!itunes) return null;\n return {\n appId: itunes.appId,\n appArgument: itunes.appArgument ? resolveAlternateUrl(itunes.appArgument, metadataBase, pathname) : undefined\n };\n}; //# sourceMappingURL=resolve-basics.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLWJhc2ljcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBOEQ7QUFDQztBQUMvRCxTQUFTRSxvQkFBb0JDLEdBQUcsRUFBRUMsWUFBWSxFQUFFQyxRQUFRO0lBQ3BELDBDQUEwQztJQUMxQyw4REFBOEQ7SUFDOUQsSUFBSUYsZUFBZUcsS0FBSztRQUNwQkgsTUFBTSxJQUFJRyxJQUFJRCxVQUFVRjtJQUM1QjtJQUNBLE9BQU9GLDRFQUE4QkEsQ0FBQ0UsS0FBS0MsY0FBY0M7QUFDN0Q7QUFDTyxNQUFNRSxvQkFBb0IsQ0FBQ0M7SUFDOUIsSUFBSUM7SUFDSixJQUFJLENBQUNELFlBQVksT0FBTztJQUN4QixNQUFNRSx3QkFBd0IsRUFBRTtJQUMvQkQsQ0FBQUEsNkJBQTZCVCwwRUFBeUJBLENBQUNRLFdBQVUsS0FBTSxPQUFPLEtBQUssSUFBSUMsMkJBQTJCRSxPQUFPLENBQUMsQ0FBQ0M7UUFDeEgsSUFBSSxPQUFPQSxlQUFlLFVBQVVGLHNCQUFzQkcsSUFBSSxDQUFDO1lBQzNEQyxPQUFPRjtRQUNYO2FBQ0ssSUFBSSxPQUFPQSxlQUFlLFVBQVVGLHNCQUFzQkcsSUFBSSxDQUFDO1lBQ2hFQyxPQUFPRixXQUFXRSxLQUFLO1lBQ3ZCQyxPQUFPSCxXQUFXRyxLQUFLO1FBQzNCO0lBQ0o7SUFDQSxPQUFPTDtBQUNYLEVBQUU7QUFDRixTQUFTTSx5QkFBeUJDLEdBQUcsRUFBRWIsWUFBWSxFQUFFQyxRQUFRO0lBQ3pELElBQUksQ0FBQ1ksS0FBSyxPQUFPO0lBQ2pCLE1BQU1DLFNBQVMsQ0FBQztJQUNoQixLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUNMLEtBQUs7UUFDM0MsSUFBSSxPQUFPRyxVQUFVLFlBQVlBLGlCQUFpQmQsS0FBSztZQUNuRFksTUFBTSxDQUFDQyxJQUFJLEdBQUc7Z0JB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Q0FBQ3RDLElBQUksR0FBR25CLDBFQUF5QkEsQ0FBQ3lELFFBQVEsQ0FBQ3RDLElBQUk7SUFDM0Q7SUFDQSxPQUFPc0M7QUFDWCxFQUFFO0FBQ0ssTUFBTUMsZ0JBQWdCLENBQUNDLFFBQVF2RCxjQUFjLEVBQUVDLFFBQVEsRUFBRTtJQUM1RCxJQUFJLENBQUNzRCxRQUFRLE9BQU87SUFDcEIsT0FBTztRQUNIQyxPQUFPRCxPQUFPQyxLQUFLO1FBQ25CQyxhQUFhRixPQUFPRSxXQUFXLEdBQUczRCxvQkFBb0J5RCxPQUFPRSxXQUFXLEVBQUV6RCxjQUFjQyxZQUFZeUQ7SUFDeEc7QUFDSixFQUFFLENBRUYsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvcmVzb2x2ZXJzL3Jlc29sdmUtYmFzaWNzLmpzPzRlMzEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCB9IGZyb20gXCIuLi9nZW5lcmF0ZS91dGlsc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lIH0gZnJvbSBcIi4vcmVzb2x2ZS11cmxcIjtcbmZ1bmN0aW9uIHJlc29sdmVBbHRlcm5hdGVVcmwodXJsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lKSB7XG4gICAgLy8gSWYgYWx0ZXIgbmF0aXZlIHVybCBpcyBhbiBVUkwgaW5zdGFuY2UsXG4gICAgLy8gd2UgdHJlYXQgaXQgYXMgYSBVUkwgYmFzZSBhbmQgcmVzb2x2ZSB3aXRoIGN1cnJlbnQgcGF0aG5hbWVcbiAgICBpZiAodXJsIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgIHVybCA9IG5ldyBVUkwocGF0aG5hbWUsIHVybCk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWUodXJsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lKTtcbn1cbmV4cG9ydCBjb25zdCByZXNvbHZlVGhlbWVDb2xvciA9ICh0aGVtZUNvbG9yKT0+e1xuICAgIHZhciBfcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZDtcbiAgICBpZiAoIXRoZW1lQ29sb3IpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHRoZW1lQ29sb3JEZXNjcmlwdG9ycyA9IFtdO1xuICAgIChfcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCA9IHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQodGhlbWVDb2xvcikpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZC5mb3JFYWNoKChkZXNjcmlwdG9yKT0+e1xuICAgICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IgPT09IFwic3RyaW5nXCIpIHRoZW1lQ29sb3JEZXNjcmlwdG9ycy5wdXNoKHtcbiAgICAgICAgICAgIGNvbG9yOiBkZXNjcmlwdG9yXG4gICAgICAgIH0pO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgZGVzY3JpcHRvciA9PT0gXCJvYmplY3RcIikgdGhlbWVDb2xvckRlc2NyaXB0b3JzLnB1c2goe1xuICAgICAgICAgICAgY29sb3I6IGRlc2NyaXB0b3IuY29sb3IsXG4gICAgICAgICAgICBtZWRpYTogZGVzY3JpcHRvci5tZWRpYVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhlbWVDb2xvckRlc2NyaXB0b3JzO1xufTtcbmZ1bmN0aW9uIHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChvYmosIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUpIHtcbiAgICBpZiAoIW9iaikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSl7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiByZXNvbHZlQWx0ZXJuYXRlVXJsKHZhbHVlLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IFtdO1xuICAgICAgICAgICAgdmFsdWUgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbHVlLmZvckVhY2goKGl0ZW0sIGluZGV4KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHJlc29sdmVBbHRlcm5hdGVVcmwoaXRlbS51cmwsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldW2luZGV4XSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUNhbm9uaWNhbFVybCh1cmxPckRlc2NyaXB0b3IsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUpIHtcbiAgICBpZiAoIXVybE9yRGVzY3JpcHRvcikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgdXJsID0gdHlwZW9mIHVybE9yRGVzY3JpcHRvciA9PT0gXCJzdHJpbmdcIiB8fCB1cmxPckRlc2NyaXB0b3IgaW5zdGFuY2VvZiBVUkwgPyB1cmxPckRlc2NyaXB0b3IgOiB1cmxPckRlc2NyaXB0b3IudXJsO1xuICAgIC8vIFJldHVybiBzdHJpbmcgdXJsIGJlY2F1c2Ugc3RydWN0dXJlQ2xvbmUgY2FuJ3QgaGFuZGxlIFVSTCBpbnN0YW5jZVxuICAgIHJldHVybiB7XG4gICAgICAgIHVybDogcmVzb2x2ZUFsdGVybmF0ZVVybCh1cmwsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUpXG4gICAgfTtcbn1cbmV4cG9ydCBjb25zdCByZXNvbHZlQWx0ZXJuYXRlcyA9IChhbHRlcm5hdGVzLCBtZXRhZGF0YUJhc2UsIHsgcGF0aG5hbWUgfSk9PntcbiAgICBpZiAoIWFsdGVybmF0ZXMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGNhbm9uaWNhbCA9IHJlc29sdmVDYW5vbmljYWxVcmwoYWx0ZXJuYXRlcy5jYW5vbmljYWwsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUpO1xuICAgIGNvbnN0IGxhbmd1YWdlcyA9IHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChhbHRlcm5hdGVzLmxhbmd1YWdlcywgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSk7XG4gICAgY29uc3QgbWVkaWEgPSByZXNvbHZlVXJsVmFsdWVzT2ZPYmplY3QoYWx0ZXJuYXRlcy5tZWRpYSwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSk7XG4gICAgY29uc3QgdHlwZXMgPSByZXNvbHZlVXJsVmFsdWVzT2ZPYmplY3QoYWx0ZXJuYXRlcy50eXBlcywgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICBjYW5vbmljYWwsXG4gICAgICAgIGxhbmd1YWdlcyxcbiAgICAgICAgbWVkaWEsXG4gICAgICAgIHR5cGVzXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IHJvYm90c0tleXMgPSBbXG4gICAgXCJub2FyY2hpdmVcIixcbiAgICBcIm5vc25pcHBldFwiLFxuICAgIFwibm9pbWFnZWluZGV4XCIsXG4gICAgXCJub2NhY2hlXCIsXG4gICAgXCJub3RyYW5zbGF0ZVwiLFxuICAgIFwiaW5kZXhpZmVtYmVkZGVkXCIsXG4gICAgXCJub3NpdGVsaW5rc3NlYXJjaGJveFwiLFxuICAgIFwidW5hdmFpbGFibGVfYWZ0ZXJcIixcbiAgICBcIm1heC12aWRlby1wcmV2aWV3XCIsXG4gICAgXCJtYXgtaW1hZ2UtcHJldmlld1wiLFxuICAgIFwibWF4LXNuaXBwZXRcIlxuXTtcbmNvbnN0IHJlc29sdmVSb2JvdHNWYWx1ZSA9IChyb2JvdHMpPT57XG4gICAgaWYgKCFyb2JvdHMpIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygcm9ib3RzID09PSBcInN0cmluZ1wiKSByZXR1cm4gcm9ib3RzO1xuICAgIGNvbnN0IHZhbHVlcyA9IFtdO1xuICAgIGlmIChyb2JvdHMuaW5kZXgpIHZhbHVlcy5wdXNoKFwiaW5kZXhcIik7XG4gICAgZWxzZSBpZiAodHlwZW9mIHJvYm90cy5pbmRleCA9PT0gXCJib29sZWFuXCIpIHZhbHVlcy5wdXNoKFwibm9pbmRleFwiKTtcbiAgICBpZiAocm9ib3RzLmZvbGxvdykgdmFsdWVzLnB1c2goXCJmb2xsb3dcIik7XG4gICAgZWxzZSBpZiAodHlwZW9mIHJvYm90cy5mb2xsb3cgPT09IFwiYm9vbGVhblwiKSB2YWx1ZXMucHVzaChcIm5vZm9sbG93XCIpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHJvYm90c0tleXMpe1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJvYm90c1trZXldO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiICYmIHZhbHVlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2godHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIiA/IGtleSA6IGAke2tleX06JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzLmpvaW4oXCIsIFwiKTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZVJvYm90cyA9IChyb2JvdHMpPT57XG4gICAgaWYgKCFyb2JvdHMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJhc2ljOiByZXNvbHZlUm9ib3RzVmFsdWUocm9ib3RzKSxcbiAgICAgICAgZ29vZ2xlQm90OiB0eXBlb2Ygcm9ib3RzICE9PSBcInN0cmluZ1wiID8gcmVzb2x2ZVJvYm90c1ZhbHVlKHJvYm90cy5nb29nbGVCb3QpIDogbnVsbFxuICAgIH07XG59O1xuY29uc3QgVmVyaWZpY2F0aW9uS2V5cyA9IFtcbiAgICBcImdvb2dsZVwiLFxuICAgIFwieWFob29cIixcbiAgICBcInlhbmRleFwiLFxuICAgIFwibWVcIixcbiAgICBcIm90aGVyXCJcbl07XG5leHBvcnQgY29uc3QgcmVzb2x2ZVZlcmlmaWNhdGlvbiA9ICh2ZXJpZmljYXRpb24pPT57XG4gICAgaWYgKCF2ZXJpZmljYXRpb24pIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJlcyA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIFZlcmlmaWNhdGlvbktleXMpe1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZlcmlmaWNhdGlvbltrZXldO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IFwib3RoZXJcIikge1xuICAgICAgICAgICAgICAgIHJlcy5vdGhlciA9IHt9O1xuICAgICAgICAgICAgICAgIGZvcihjb25zdCBvdGhlcktleSBpbiB2ZXJpZmljYXRpb24ub3RoZXIpe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvdGhlclZhbHVlID0gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCh2ZXJpZmljYXRpb24ub3RoZXJbb3RoZXJLZXldKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyVmFsdWUpIHJlcy5vdGhlcltvdGhlcktleV0gPSBvdGhlclZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSByZXNba2V5XSA9IHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBcHBsZVdlYkFwcCA9IChhcHBXZWJBcHApPT57XG4gICAgdmFyIF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkO1xuICAgIGlmICghYXBwV2ViQXBwKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoYXBwV2ViQXBwID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjYXBhYmxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0dXBJbWFnZXMgPSBhcHBXZWJBcHAuc3RhcnR1cEltYWdlID8gKF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkID0gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZChhcHBXZWJBcHAuc3RhcnR1cEltYWdlKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkLm1hcCgoaXRlbSk9PnR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiID8ge1xuICAgICAgICAgICAgdXJsOiBpdGVtXG4gICAgICAgIH0gOiBpdGVtKSA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2FwYWJsZTogXCJjYXBhYmxlXCIgaW4gYXBwV2ViQXBwID8gISFhcHBXZWJBcHAuY2FwYWJsZSA6IHRydWUsXG4gICAgICAgIHRpdGxlOiBhcHBXZWJBcHAudGl0bGUgfHwgbnVsbCxcbiAgICAgICAgc3RhcnR1cEltYWdlOiBzdGFydHVwSW1hZ2VzLFxuICAgICAgICBzdGF0dXNCYXJTdHlsZTogYXBwV2ViQXBwLnN0YXR1c0JhclN0eWxlIHx8IFwiZGVmYXVsdFwiXG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUFwcExpbmtzID0gKGFwcExpbmtzKT0+e1xuICAgIGlmICghYXBwTGlua3MpIHJldHVybiBudWxsO1xuICAgIGZvcihjb25zdCBrZXkgaW4gYXBwTGlua3Mpe1xuICAgICAgICAvLyBAdHMtaWdub3JlIC8vIFRPRE86IHR5cGUgaW5mZXJcbiAgICAgICAgYXBwTGlua3Nba2V5XSA9IHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQoYXBwTGlua3Nba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiBhcHBMaW5rcztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUl0dW5lcyA9IChpdHVuZXMsIG1ldGFkYXRhQmFzZSwgeyBwYXRobmFtZSB9KT0+e1xuICAgIGlmICghaXR1bmVzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcHBJZDogaXR1bmVzLmFwcElkLFxuICAgICAgICBhcHBBcmd1bWVudDogaXR1bmVzLmFwcEFyZ3VtZW50ID8gcmVzb2x2ZUFsdGVybmF0ZVVybChpdHVuZXMuYXBwQXJndW1lbnQsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUpIDogdW5kZWZpbmVkXG4gICAgfTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtYmFzaWNzLmpzLm1hcCJdLCJuYW1lcyI6WyJyZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkIiwicmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lIiwicmVzb2x2ZUFsdGVybmF0ZVVybCIsInVybCIsIm1ldGFkYXRhQmFzZSIsInBhdGhuYW1lIiwiVVJMIiwicmVzb2x2ZVRoZW1lQ29sb3IiLCJ0aGVtZUNvbG9yIiwiX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQiLCJ0aGVtZUNvbG9yRGVzY3JpcHRvcnMiLCJmb3JFYWNoIiwiZGVzY3JpcHRvciIsInB1c2giLCJjb2xvciIsIm1lZGlhIiwicmVzb2x2ZVVybFZhbHVlc09mT2JqZWN0Iiwib2JqIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwiaXRlbSIsImluZGV4IiwidGl0bGUiLCJyZXNvbHZlQ2Fub25pY2FsVXJsIiwidXJsT3JEZXNjcmlwdG9yIiwicmVzb2x2ZUFsdGVybmF0ZXMiLCJhbHRlcm5hdGVzIiwiY2Fub25pY2FsIiwibGFuZ3VhZ2VzIiwidHlwZXMiLCJyb2JvdHNLZXlzIiwicmVzb2x2ZVJvYm90c1ZhbHVlIiwicm9ib3RzIiwidmFsdWVzIiwiZm9sbG93Iiwiam9pbiIsInJlc29sdmVSb2JvdHMiLCJiYXNpYyIsImdvb2dsZUJvdCIsIlZlcmlmaWNhdGlvbktleXMiLCJyZXNvbHZlVmVyaWZpY2F0aW9uIiwidmVyaWZpY2F0aW9uIiwicmVzIiwib3RoZXIiLCJvdGhlcktleSIsIm90aGVyVmFsdWUiLCJyZXNvbHZlQXBwbGVXZWJBcHAiLCJhcHBXZWJBcHAiLCJjYXBhYmxlIiwic3RhcnR1cEltYWdlcyIsInN0YXJ0dXBJbWFnZSIsIm1hcCIsInN0YXR1c0JhclN0eWxlIiwicmVzb2x2ZUFwcExpbmtzIiwiYXBwTGlua3MiLCJyZXNvbHZlSXR1bmVzIiwiaXR1bmVzIiwiYXBwSWQiLCJhcHBBcmd1bWVudCIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-basics.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-icons.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-icons.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveIcon: () => (/* binding */ resolveIcon),\n/* harmony export */ resolveIcons: () => (/* binding */ resolveIcons)\n/* harmony export */ });\n/* harmony import */ var _generate_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generate/utils */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/utils.js\");\n/* harmony import */ var _resolve_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resolve-url */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-url.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/constants.js\");\n\n\n\nfunction resolveIcon(icon) {\n if ((0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.isStringOrURL)(icon)) return {\n url: icon\n };\n else if (Array.isArray(icon)) return icon;\n return icon;\n}\nconst resolveIcons = (icons)=>{\n if (!icons) {\n return null;\n }\n const resolved = {\n icon: [],\n apple: []\n };\n if (Array.isArray(icons)) {\n resolved.icon = icons.map(resolveIcon).filter(Boolean);\n } else if ((0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.isStringOrURL)(icons)) {\n resolved.icon = [\n resolveIcon(icons)\n ];\n } else {\n for (const key of _constants__WEBPACK_IMPORTED_MODULE_2__.IconKeys){\n const values = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(icons[key]);\n if (values) resolved[key] = values.map(resolveIcon);\n }\n }\n return resolved;\n}; //# sourceMappingURL=resolve-icons.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLWljb25zLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQThEO0FBQ2hCO0FBQ047QUFDakMsU0FBU0csWUFBWUMsSUFBSTtJQUM1QixJQUFJSCwyREFBYUEsQ0FBQ0csT0FBTyxPQUFPO1FBQzVCQyxLQUFLRDtJQUNUO1NBQ0ssSUFBSUUsTUFBTUMsT0FBTyxDQUFDSCxPQUFPLE9BQU9BO0lBQ3JDLE9BQU9BO0FBQ1g7QUFDTyxNQUFNSSxlQUFlLENBQUNDO0lBQ3pCLElBQUksQ0FBQ0EsT0FBTztRQUNSLE9BQU87SUFDWDtJQUNBLE1BQU1DLFdBQVc7UUFDYk4sTUFBTSxFQUFFO1FBQ1JPLE9BQU8sRUFBRTtJQUNiO0lBQ0EsSUFBSUwsTUFBTUMsT0FBTyxDQUFDRSxRQUFRO1FBQ3RCQyxTQUFTTixJQUFJLEdBQUdLLE1BQU1HLEdBQUcsQ0FBQ1QsYUFBYVUsTUFBTSxDQUFDQztJQUNsRCxPQUFPLElBQUliLDJEQUFhQSxDQUFDUSxRQUFRO1FBQzdCQyxTQUFTTixJQUFJLEdBQUc7WUFDWkQsWUFBWU07U0FDZjtJQUNMLE9BQU87UUFDSCxLQUFLLE1BQU1NLE9BQU9iLGdEQUFRQSxDQUFDO1lBQ3ZCLE1BQU1jLFNBQVNoQiwwRUFBeUJBLENBQUNTLEtBQUssQ0FBQ00sSUFBSTtZQUNuRCxJQUFJQyxRQUFRTixRQUFRLENBQUNLLElBQUksR0FBR0MsT0FBT0osR0FBRyxDQUFDVDtRQUMzQztJQUNKO0lBQ0EsT0FBT087QUFDWCxFQUFFLENBRUYseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvcmVzb2x2ZXJzL3Jlc29sdmUtaWNvbnMuanM/ZDQxZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkIH0gZnJvbSBcIi4uL2dlbmVyYXRlL3V0aWxzXCI7XG5pbXBvcnQgeyBpc1N0cmluZ09yVVJMIH0gZnJvbSBcIi4vcmVzb2x2ZS11cmxcIjtcbmltcG9ydCB7IEljb25LZXlzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVJY29uKGljb24pIHtcbiAgICBpZiAoaXNTdHJpbmdPclVSTChpY29uKSkgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBpY29uXG4gICAgfTtcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGljb24pKSByZXR1cm4gaWNvbjtcbiAgICByZXR1cm4gaWNvbjtcbn1cbmV4cG9ydCBjb25zdCByZXNvbHZlSWNvbnMgPSAoaWNvbnMpPT57XG4gICAgaWYgKCFpY29ucykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB7XG4gICAgICAgIGljb246IFtdLFxuICAgICAgICBhcHBsZTogW11cbiAgICB9O1xuICAgIGlmIChBcnJheS5pc0FycmF5KGljb25zKSkge1xuICAgICAgICByZXNvbHZlZC5pY29uID0gaWNvbnMubWFwKHJlc29sdmVJY29uKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZ09yVVJMKGljb25zKSkge1xuICAgICAgICByZXNvbHZlZC5pY29uID0gW1xuICAgICAgICAgICAgcmVzb2x2ZUljb24oaWNvbnMpXG4gICAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgSWNvbktleXMpe1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZChpY29uc1trZXldKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZXMpIHJlc29sdmVkW2tleV0gPSB2YWx1ZXMubWFwKHJlc29sdmVJY29uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLWljb25zLmpzLm1hcCJdLCJuYW1lcyI6WyJyZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkIiwiaXNTdHJpbmdPclVSTCIsIkljb25LZXlzIiwicmVzb2x2ZUljb24iLCJpY29uIiwidXJsIiwiQXJyYXkiLCJpc0FycmF5IiwicmVzb2x2ZUljb25zIiwiaWNvbnMiLCJyZXNvbHZlZCIsImFwcGxlIiwibWFwIiwiZmlsdGVyIiwiQm9vbGVhbiIsImtleSIsInZhbHVlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-icons.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-opengraph.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-opengraph.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveImages: () => (/* binding */ resolveImages),\n/* harmony export */ resolveOpenGraph: () => (/* binding */ resolveOpenGraph),\n/* harmony export */ resolveTwitter: () => (/* binding */ resolveTwitter)\n/* harmony export */ });\n/* harmony import */ var _generate_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generate/utils */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/generate/utils.js\");\n/* harmony import */ var _resolve_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resolve-url */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-url.js\");\n/* harmony import */ var _resolve_title__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-title */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-title.js\");\n\n\n\nconst OgTypeFields = {\n article: [\n \"authors\",\n \"tags\"\n ],\n song: [\n \"albums\",\n \"musicians\"\n ],\n playlist: [\n \"albums\",\n \"musicians\"\n ],\n radio: [\n \"creators\"\n ],\n video: [\n \"actors\",\n \"directors\",\n \"writers\",\n \"tags\"\n ],\n basic: [\n \"emails\",\n \"phoneNumbers\",\n \"faxNumbers\",\n \"alternateLocale\",\n \"audio\",\n \"videos\"\n ]\n};\nfunction resolveImages(images, metadataBase) {\n const resolvedImages = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(images);\n if (!resolvedImages) return resolvedImages;\n const nonNullableImages = [];\n for (const item of resolvedImages){\n if (!item) continue;\n const isItemUrl = (0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.isStringOrURL)(item);\n const inputUrl = isItemUrl ? item : item.url;\n if (!inputUrl) continue;\n nonNullableImages.push(isItemUrl ? {\n url: (0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.resolveUrl)(item, metadataBase)\n } : {\n ...item,\n // Update image descriptor url\n url: (0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.resolveUrl)(item.url, metadataBase)\n });\n }\n return nonNullableImages;\n}\nfunction getFieldsByOgType(ogType) {\n switch(ogType){\n case \"article\":\n case \"book\":\n return OgTypeFields.article;\n case \"music.song\":\n case \"music.album\":\n return OgTypeFields.song;\n case \"music.playlist\":\n return OgTypeFields.playlist;\n case \"music.radio_station\":\n return OgTypeFields.radio;\n case \"video.movie\":\n case \"video.episode\":\n return OgTypeFields.video;\n default:\n return OgTypeFields.basic;\n }\n}\nconst resolveOpenGraph = (openGraph, metadataBase, { pathname }, titleTemplate)=>{\n if (!openGraph) return null;\n function resolveProps(target, og) {\n const ogType = og && \"type\" in og ? og.type : undefined;\n const keys = getFieldsByOgType(ogType);\n for (const k of keys){\n const key = k;\n if (key in og && key !== \"url\") {\n const value = og[key];\n if (value) {\n const arrayValue = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(value);\n target[key] = arrayValue;\n }\n }\n }\n const imageMetadataBase = (0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.getSocialImageFallbackMetadataBase)(metadataBase);\n target.images = resolveImages(og.images, imageMetadataBase);\n }\n const resolved = {\n ...openGraph,\n title: (0,_resolve_title__WEBPACK_IMPORTED_MODULE_2__.resolveTitle)(openGraph.title, titleTemplate)\n };\n resolveProps(resolved, openGraph);\n resolved.url = openGraph.url ? (0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.resolveAbsoluteUrlWithPathname)(openGraph.url, metadataBase, pathname) : null;\n return resolved;\n};\nconst TwitterBasicInfoKeys = [\n \"site\",\n \"siteId\",\n \"creator\",\n \"creatorId\",\n \"description\"\n];\nconst resolveTwitter = (twitter, metadataBase, titleTemplate)=>{\n var _resolved_images;\n if (!twitter) return null;\n let card = \"card\" in twitter ? twitter.card : undefined;\n const resolved = {\n ...twitter,\n title: (0,_resolve_title__WEBPACK_IMPORTED_MODULE_2__.resolveTitle)(twitter.title, titleTemplate)\n };\n for (const infoKey of TwitterBasicInfoKeys){\n resolved[infoKey] = twitter[infoKey] || null;\n }\n const imageMetadataBase = (0,_resolve_url__WEBPACK_IMPORTED_MODULE_1__.getSocialImageFallbackMetadataBase)(metadataBase);\n resolved.images = resolveImages(twitter.images, imageMetadataBase);\n card = card || (((_resolved_images = resolved.images) == null ? void 0 : _resolved_images.length) ? \"summary_large_image\" : \"summary\");\n resolved.card = card;\n if (\"card\" in resolved) {\n switch(resolved.card){\n case \"player\":\n {\n resolved.players = (0,_generate_utils__WEBPACK_IMPORTED_MODULE_0__.resolveAsArrayOrUndefined)(resolved.players) || [];\n break;\n }\n case \"app\":\n {\n resolved.app = resolved.app || {};\n break;\n }\n default:\n break;\n }\n }\n return resolved;\n}; //# sourceMappingURL=resolve-opengraph.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLW9wZW5ncmFwaC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBOEQ7QUFDZ0U7QUFDL0U7QUFDL0MsTUFBTU0sZUFBZTtJQUNqQkMsU0FBUztRQUNMO1FBQ0E7S0FDSDtJQUNEQyxNQUFNO1FBQ0Y7UUFDQTtLQUNIO0lBQ0RDLFVBQVU7UUFDTjtRQUNBO0tBQ0g7SUFDREMsT0FBTztRQUNIO0tBQ0g7SUFDREMsT0FBTztRQUNIO1FBQ0E7UUFDQTtRQUNBO0tBQ0g7SUFDREMsT0FBTztRQUNIO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtLQUNIO0FBQ0w7QUFDTyxTQUFTQyxjQUFjQyxNQUFNLEVBQUVDLFlBQVk7SUFDOUMsTUFBTUMsaUJBQWlCaEIsMEVBQXlCQSxDQUFDYztJQUNqRCxJQUFJLENBQUNFLGdCQUFnQixPQUFPQTtJQUM1QixNQUFNQyxvQkFBb0IsRUFBRTtJQUM1QixLQUFLLE1BQU1DLFFBQVFGLGVBQWU7UUFDOUIsSUFBSSxDQUFDRSxNQUFNO1FBQ1gsTUFBTUMsWUFBWWpCLDJEQUFhQSxDQUFDZ0I7UUFDaEMsTUFBTUUsV0FBV0QsWUFBWUQsT0FBT0EsS0FBS0csR0FBRztRQUM1QyxJQUFJLENBQUNELFVBQVU7UUFDZkgsa0JBQWtCSyxJQUFJLENBQUNILFlBQVk7WUFDL0JFLEtBQUtsQix3REFBVUEsQ0FBQ2UsTUFBTUg7UUFDMUIsSUFBSTtZQUNBLEdBQUdHLElBQUk7WUFDUCw4QkFBOEI7WUFDOUJHLEtBQUtsQix3REFBVUEsQ0FBQ2UsS0FBS0csR0FBRyxFQUFFTjtRQUM5QjtJQUNKO0lBQ0EsT0FBT0U7QUFDWDtBQUNBLFNBQVNNLGtCQUFrQkMsTUFBTTtJQUM3QixPQUFPQTtRQUNILEtBQUs7UUFDTCxLQUFLO1lBQ0QsT0FBT2xCLGFBQWFDLE9BQU87UUFDL0IsS0FBSztRQUNMLEtBQUs7WUFDRCxPQUFPRCxhQUFhRSxJQUFJO1FBQzVCLEtBQUs7WUFDRCxPQUFPRixhQUFhRyxRQUFRO1FBQ2hDLEtBQUs7WUFDRCxPQUFPSCxhQUFhSSxLQUFLO1FBQzdCLEtBQUs7UUFDTCxLQUFLO1lBQ0QsT0FBT0osYUFBYUssS0FBSztRQUM3QjtZQUNJLE9BQU9MLGFBQWFNLEtBQUs7SUFDakM7QUFDSjtBQUNPLE1BQU1hLG1CQUFtQixDQUFDQyxXQUFXWCxjQUFjLEVBQUVZLFFBQVEsRUFBRSxFQUFFQztJQUNwRSxJQUFJLENBQUNGLFdBQVcsT0FBTztJQUN2QixTQUFTRyxhQUFhQyxNQUFNLEVBQUVDLEVBQUU7UUFDNUIsTUFBTVAsU0FBU08sTUFBTSxVQUFVQSxLQUFLQSxHQUFHQyxJQUFJLEdBQUdDO1FBQzlDLE1BQU1DLE9BQU9YLGtCQUFrQkM7UUFDL0IsS0FBSyxNQUFNVyxLQUFLRCxLQUFLO1lBQ2pCLE1BQU1FLE1BQU1EO1lBQ1osSUFBSUMsT0FBT0wsTUFBTUssUUFBUSxPQUFPO2dCQUM1QixNQUFNQyxRQUFRTixFQUFFLENBQUNLLElBQUk7Z0JBQ3JCLElBQUlDLE9BQU87b0JBQ1AsTUFBTUMsYUFBYXRDLDBFQUF5QkEsQ0FBQ3FDO29CQUM3Q1AsTUFBTSxDQUFDTSxJQUFJLEdBQUdFO2dCQUNsQjtZQUNKO1FBQ0o7UUFDQSxNQUFNQyxvQkFBb0J0QyxnRkFBa0NBLENBQUNjO1FBQzdEZSxPQUFPaEIsTUFBTSxHQUFHRCxjQUFja0IsR0FBR2pCLE1BQU0sRUFBRXlCO0lBQzdDO0lBQ0EsTUFBTUMsV0FBVztRQUNiLEdBQUdkLFNBQVM7UUFDWmUsT0FBT3BDLDREQUFZQSxDQUFDcUIsVUFBVWUsS0FBSyxFQUFFYjtJQUN6QztJQUNBQyxhQUFhVyxVQUFVZDtJQUN2QmMsU0FBU25CLEdBQUcsR0FBR0ssVUFBVUwsR0FBRyxHQUFHakIsNEVBQThCQSxDQUFDc0IsVUFBVUwsR0FBRyxFQUFFTixjQUFjWSxZQUFZO0lBQ3ZHLE9BQU9hO0FBQ1gsRUFBRTtBQUNGLE1BQU1FLHVCQUF1QjtJQUN6QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0g7QUFDTSxNQUFNQyxpQkFBaUIsQ0FBQ0MsU0FBUzdCLGNBQWNhO0lBQ2xELElBQUlpQjtJQUNKLElBQUksQ0FBQ0QsU0FBUyxPQUFPO0lBQ3JCLElBQUlFLE9BQU8sVUFBVUYsVUFBVUEsUUFBUUUsSUFBSSxHQUFHYjtJQUM5QyxNQUFNTyxXQUFXO1FBQ2IsR0FBR0ksT0FBTztRQUNWSCxPQUFPcEMsNERBQVlBLENBQUN1QyxRQUFRSCxLQUFLLEVBQUViO0lBQ3ZDO0lBQ0EsS0FBSyxNQUFNbUIsV0FBV0wscUJBQXFCO1FBQ3ZDRixRQUFRLENBQUNPLFFBQVEsR0FBR0gsT0FBTyxDQUFDRyxRQUFRLElBQUk7SUFDNUM7SUFDQSxNQUFNUixvQkFBb0J0QyxnRkFBa0NBLENBQUNjO0lBQzdEeUIsU0FBUzFCLE1BQU0sR0FBR0QsY0FBYytCLFFBQVE5QixNQUFNLEVBQUV5QjtJQUNoRE8sT0FBT0EsUUFBUyxFQUFDLENBQUNELG1CQUFtQkwsU0FBUzFCLE1BQU0sS0FBSyxPQUFPLEtBQUssSUFBSStCLGlCQUFpQkcsTUFBTSxJQUFJLHdCQUF3QixTQUFRO0lBQ3BJUixTQUFTTSxJQUFJLEdBQUdBO0lBQ2hCLElBQUksVUFBVU4sVUFBVTtRQUNwQixPQUFPQSxTQUFTTSxJQUFJO1lBQ2hCLEtBQUs7Z0JBQ0Q7b0JBQ0lOLFNBQVNTLE9BQU8sR0FBR2pELDBFQUF5QkEsQ0FBQ3dDLFNBQVNTLE9BQU8sS0FBSyxFQUFFO29CQUNwRTtnQkFDSjtZQUNKLEtBQUs7Z0JBQ0Q7b0JBQ0lULFNBQVNVLEdBQUcsR0FBR1YsU0FBU1UsR0FBRyxJQUFJLENBQUM7b0JBQ2hDO2dCQUNKO1lBQ0o7Z0JBQ0k7UUFDUjtJQUNKO0lBQ0EsT0FBT1Y7QUFDWCxFQUFFLENBRUYsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvcmVzb2x2ZXJzL3Jlc29sdmUtb3BlbmdyYXBoLmpzPzg1NWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCB9IGZyb20gXCIuLi9nZW5lcmF0ZS91dGlsc1wiO1xuaW1wb3J0IHsgZ2V0U29jaWFsSW1hZ2VGYWxsYmFja01ldGFkYXRhQmFzZSwgaXNTdHJpbmdPclVSTCwgcmVzb2x2ZVVybCwgcmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lIH0gZnJvbSBcIi4vcmVzb2x2ZS11cmxcIjtcbmltcG9ydCB7IHJlc29sdmVUaXRsZSB9IGZyb20gXCIuL3Jlc29sdmUtdGl0bGVcIjtcbmNvbnN0IE9nVHlwZUZpZWxkcyA9IHtcbiAgICBhcnRpY2xlOiBbXG4gICAgICAgIFwiYXV0aG9yc1wiLFxuICAgICAgICBcInRhZ3NcIlxuICAgIF0sXG4gICAgc29uZzogW1xuICAgICAgICBcImFsYnVtc1wiLFxuICAgICAgICBcIm11c2ljaWFuc1wiXG4gICAgXSxcbiAgICBwbGF5bGlzdDogW1xuICAgICAgICBcImFsYnVtc1wiLFxuICAgICAgICBcIm11c2ljaWFuc1wiXG4gICAgXSxcbiAgICByYWRpbzogW1xuICAgICAgICBcImNyZWF0b3JzXCJcbiAgICBdLFxuICAgIHZpZGVvOiBbXG4gICAgICAgIFwiYWN0b3JzXCIsXG4gICAgICAgIFwiZGlyZWN0b3JzXCIsXG4gICAgICAgIFwid3JpdGVyc1wiLFxuICAgICAgICBcInRhZ3NcIlxuICAgIF0sXG4gICAgYmFzaWM6IFtcbiAgICAgICAgXCJlbWFpbHNcIixcbiAgICAgICAgXCJwaG9uZU51bWJlcnNcIixcbiAgICAgICAgXCJmYXhOdW1iZXJzXCIsXG4gICAgICAgIFwiYWx0ZXJuYXRlTG9jYWxlXCIsXG4gICAgICAgIFwiYXVkaW9cIixcbiAgICAgICAgXCJ2aWRlb3NcIlxuICAgIF1cbn07XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUltYWdlcyhpbWFnZXMsIG1ldGFkYXRhQmFzZSkge1xuICAgIGNvbnN0IHJlc29sdmVkSW1hZ2VzID0gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZChpbWFnZXMpO1xuICAgIGlmICghcmVzb2x2ZWRJbWFnZXMpIHJldHVybiByZXNvbHZlZEltYWdlcztcbiAgICBjb25zdCBub25OdWxsYWJsZUltYWdlcyA9IFtdO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiByZXNvbHZlZEltYWdlcyl7XG4gICAgICAgIGlmICghaXRlbSkgY29udGludWU7XG4gICAgICAgIGNvbnN0IGlzSXRlbVVybCA9IGlzU3RyaW5nT3JVUkwoaXRlbSk7XG4gICAgICAgIGNvbnN0IGlucHV0VXJsID0gaXNJdGVtVXJsID8gaXRlbSA6IGl0ZW0udXJsO1xuICAgICAgICBpZiAoIWlucHV0VXJsKSBjb250aW51ZTtcbiAgICAgICAgbm9uTnVsbGFibGVJbWFnZXMucHVzaChpc0l0ZW1VcmwgPyB7XG4gICAgICAgICAgICB1cmw6IHJlc29sdmVVcmwoaXRlbSwgbWV0YWRhdGFCYXNlKVxuICAgICAgICB9IDoge1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBpbWFnZSBkZXNjcmlwdG9yIHVybFxuICAgICAgICAgICAgdXJsOiByZXNvbHZlVXJsKGl0ZW0udXJsLCBtZXRhZGF0YUJhc2UpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbm9uTnVsbGFibGVJbWFnZXM7XG59XG5mdW5jdGlvbiBnZXRGaWVsZHNCeU9nVHlwZShvZ1R5cGUpIHtcbiAgICBzd2l0Y2gob2dUeXBlKXtcbiAgICAgICAgY2FzZSBcImFydGljbGVcIjpcbiAgICAgICAgY2FzZSBcImJvb2tcIjpcbiAgICAgICAgICAgIHJldHVybiBPZ1R5cGVGaWVsZHMuYXJ0aWNsZTtcbiAgICAgICAgY2FzZSBcIm11c2ljLnNvbmdcIjpcbiAgICAgICAgY2FzZSBcIm11c2ljLmFsYnVtXCI6XG4gICAgICAgICAgICByZXR1cm4gT2dUeXBlRmllbGRzLnNvbmc7XG4gICAgICAgIGNhc2UgXCJtdXNpYy5wbGF5bGlzdFwiOlxuICAgICAgICAgICAgcmV0dXJuIE9nVHlwZUZpZWxkcy5wbGF5bGlzdDtcbiAgICAgICAgY2FzZSBcIm11c2ljLnJhZGlvX3N0YXRpb25cIjpcbiAgICAgICAgICAgIHJldHVybiBPZ1R5cGVGaWVsZHMucmFkaW87XG4gICAgICAgIGNhc2UgXCJ2aWRlby5tb3ZpZVwiOlxuICAgICAgICBjYXNlIFwidmlkZW8uZXBpc29kZVwiOlxuICAgICAgICAgICAgcmV0dXJuIE9nVHlwZUZpZWxkcy52aWRlbztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBPZ1R5cGVGaWVsZHMuYmFzaWM7XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IHJlc29sdmVPcGVuR3JhcGggPSAob3BlbkdyYXBoLCBtZXRhZGF0YUJhc2UsIHsgcGF0aG5hbWUgfSwgdGl0bGVUZW1wbGF0ZSk9PntcbiAgICBpZiAoIW9wZW5HcmFwaCkgcmV0dXJuIG51bGw7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVByb3BzKHRhcmdldCwgb2cpIHtcbiAgICAgICAgY29uc3Qgb2dUeXBlID0gb2cgJiYgXCJ0eXBlXCIgaW4gb2cgPyBvZy50eXBlIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBrZXlzID0gZ2V0RmllbGRzQnlPZ1R5cGUob2dUeXBlKTtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpe1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaztcbiAgICAgICAgICAgIGlmIChrZXkgaW4gb2cgJiYga2V5ICE9PSBcInVybFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvZ1trZXldO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhcnJheVZhbHVlID0gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gYXJyYXlWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW1hZ2VNZXRhZGF0YUJhc2UgPSBnZXRTb2NpYWxJbWFnZUZhbGxiYWNrTWV0YWRhdGFCYXNlKG1ldGFkYXRhQmFzZSk7XG4gICAgICAgIHRhcmdldC5pbWFnZXMgPSByZXNvbHZlSW1hZ2VzKG9nLmltYWdlcywgaW1hZ2VNZXRhZGF0YUJhc2UpO1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZCA9IHtcbiAgICAgICAgLi4ub3BlbkdyYXBoLFxuICAgICAgICB0aXRsZTogcmVzb2x2ZVRpdGxlKG9wZW5HcmFwaC50aXRsZSwgdGl0bGVUZW1wbGF0ZSlcbiAgICB9O1xuICAgIHJlc29sdmVQcm9wcyhyZXNvbHZlZCwgb3BlbkdyYXBoKTtcbiAgICByZXNvbHZlZC51cmwgPSBvcGVuR3JhcGgudXJsID8gcmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lKG9wZW5HcmFwaC51cmwsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUpIDogbnVsbDtcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59O1xuY29uc3QgVHdpdHRlckJhc2ljSW5mb0tleXMgPSBbXG4gICAgXCJzaXRlXCIsXG4gICAgXCJzaXRlSWRcIixcbiAgICBcImNyZWF0b3JcIixcbiAgICBcImNyZWF0b3JJZFwiLFxuICAgIFwiZGVzY3JpcHRpb25cIlxuXTtcbmV4cG9ydCBjb25zdCByZXNvbHZlVHdpdHRlciA9ICh0d2l0dGVyLCBtZXRhZGF0YUJhc2UsIHRpdGxlVGVtcGxhdGUpPT57XG4gICAgdmFyIF9yZXNvbHZlZF9pbWFnZXM7XG4gICAgaWYgKCF0d2l0dGVyKSByZXR1cm4gbnVsbDtcbiAgICBsZXQgY2FyZCA9IFwiY2FyZFwiIGluIHR3aXR0ZXIgPyB0d2l0dGVyLmNhcmQgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB7XG4gICAgICAgIC4uLnR3aXR0ZXIsXG4gICAgICAgIHRpdGxlOiByZXNvbHZlVGl0bGUodHdpdHRlci50aXRsZSwgdGl0bGVUZW1wbGF0ZSlcbiAgICB9O1xuICAgIGZvciAoY29uc3QgaW5mb0tleSBvZiBUd2l0dGVyQmFzaWNJbmZvS2V5cyl7XG4gICAgICAgIHJlc29sdmVkW2luZm9LZXldID0gdHdpdHRlcltpbmZvS2V5XSB8fCBudWxsO1xuICAgIH1cbiAgICBjb25zdCBpbWFnZU1ldGFkYXRhQmFzZSA9IGdldFNvY2lhbEltYWdlRmFsbGJhY2tNZXRhZGF0YUJhc2UobWV0YWRhdGFCYXNlKTtcbiAgICByZXNvbHZlZC5pbWFnZXMgPSByZXNvbHZlSW1hZ2VzKHR3aXR0ZXIuaW1hZ2VzLCBpbWFnZU1ldGFkYXRhQmFzZSk7XG4gICAgY2FyZCA9IGNhcmQgfHwgKCgoX3Jlc29sdmVkX2ltYWdlcyA9IHJlc29sdmVkLmltYWdlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlZF9pbWFnZXMubGVuZ3RoKSA/IFwic3VtbWFyeV9sYXJnZV9pbWFnZVwiIDogXCJzdW1tYXJ5XCIpO1xuICAgIHJlc29sdmVkLmNhcmQgPSBjYXJkO1xuICAgIGlmIChcImNhcmRcIiBpbiByZXNvbHZlZCkge1xuICAgICAgICBzd2l0Y2gocmVzb2x2ZWQuY2FyZCl7XG4gICAgICAgICAgICBjYXNlIFwicGxheWVyXCI6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZC5wbGF5ZXJzID0gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZChyZXNvbHZlZC5wbGF5ZXJzKSB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcImFwcFwiOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQuYXBwID0gcmVzb2x2ZWQuYXBwIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZDtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtb3BlbmdyYXBoLmpzLm1hcCJdLCJuYW1lcyI6WyJyZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkIiwiZ2V0U29jaWFsSW1hZ2VGYWxsYmFja01ldGFkYXRhQmFzZSIsImlzU3RyaW5nT3JVUkwiLCJyZXNvbHZlVXJsIiwicmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lIiwicmVzb2x2ZVRpdGxlIiwiT2dUeXBlRmllbGRzIiwiYXJ0aWNsZSIsInNvbmciLCJwbGF5bGlzdCIsInJhZGlvIiwidmlkZW8iLCJiYXNpYyIsInJlc29sdmVJbWFnZXMiLCJpbWFnZXMiLCJtZXRhZGF0YUJhc2UiLCJyZXNvbHZlZEltYWdlcyIsIm5vbk51bGxhYmxlSW1hZ2VzIiwiaXRlbSIsImlzSXRlbVVybCIsImlucHV0VXJsIiwidXJsIiwicHVzaCIsImdldEZpZWxkc0J5T2dUeXBlIiwib2dUeXBlIiwicmVzb2x2ZU9wZW5HcmFwaCIsIm9wZW5HcmFwaCIsInBhdGhuYW1lIiwidGl0bGVUZW1wbGF0ZSIsInJlc29sdmVQcm9wcyIsInRhcmdldCIsIm9nIiwidHlwZSIsInVuZGVmaW5lZCIsImtleXMiLCJrIiwia2V5IiwidmFsdWUiLCJhcnJheVZhbHVlIiwiaW1hZ2VNZXRhZGF0YUJhc2UiLCJyZXNvbHZlZCIsInRpdGxlIiwiVHdpdHRlckJhc2ljSW5mb0tleXMiLCJyZXNvbHZlVHdpdHRlciIsInR3aXR0ZXIiLCJfcmVzb2x2ZWRfaW1hZ2VzIiwiY2FyZCIsImluZm9LZXkiLCJsZW5ndGgiLCJwbGF5ZXJzIiwiYXBwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-opengraph.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-title.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-title.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveTitle: () => (/* binding */ resolveTitle)\n/* harmony export */ });\nfunction resolveTitleTemplate(template, title) {\n return template ? template.replace(/%s/g, title) : title;\n}\nfunction resolveTitle(title, stashedTemplate) {\n let resolved;\n const template = typeof title !== \"string\" && title && \"template\" in title ? title.template : null;\n if (typeof title === \"string\") {\n resolved = resolveTitleTemplate(stashedTemplate, title);\n } else if (title) {\n if (\"default\" in title) {\n resolved = resolveTitleTemplate(stashedTemplate, title.default);\n }\n if (\"absolute\" in title && title.absolute) {\n resolved = title.absolute;\n }\n }\n if (title && typeof title !== \"string\") {\n return {\n template,\n absolute: resolved || \"\"\n };\n } else {\n return {\n absolute: resolved || title || \"\",\n template\n };\n }\n} //# sourceMappingURL=resolve-title.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLXRpdGxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUFTQSxxQkFBcUJDLFFBQVEsRUFBRUMsS0FBSztJQUN6QyxPQUFPRCxXQUFXQSxTQUFTRSxPQUFPLENBQUMsT0FBT0QsU0FBU0E7QUFDdkQ7QUFDTyxTQUFTRSxhQUFhRixLQUFLLEVBQUVHLGVBQWU7SUFDL0MsSUFBSUM7SUFDSixNQUFNTCxXQUFXLE9BQU9DLFVBQVUsWUFBWUEsU0FBUyxjQUFjQSxRQUFRQSxNQUFNRCxRQUFRLEdBQUc7SUFDOUYsSUFBSSxPQUFPQyxVQUFVLFVBQVU7UUFDM0JJLFdBQVdOLHFCQUFxQkssaUJBQWlCSDtJQUNyRCxPQUFPLElBQUlBLE9BQU87UUFDZCxJQUFJLGFBQWFBLE9BQU87WUFDcEJJLFdBQVdOLHFCQUFxQkssaUJBQWlCSCxNQUFNSyxPQUFPO1FBQ2xFO1FBQ0EsSUFBSSxjQUFjTCxTQUFTQSxNQUFNTSxRQUFRLEVBQUU7WUFDdkNGLFdBQVdKLE1BQU1NLFFBQVE7UUFDN0I7SUFDSjtJQUNBLElBQUlOLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3BDLE9BQU87WUFDSEQ7WUFDQU8sVUFBVUYsWUFBWTtRQUMxQjtJQUNKLE9BQU87UUFDSCxPQUFPO1lBQ0hFLFVBQVVGLFlBQVlKLFNBQVM7WUFDL0JEO1FBQ0o7SUFDSjtBQUNKLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbWV0YWRhdGEvcmVzb2x2ZXJzL3Jlc29sdmUtdGl0bGUuanM/ZGNlZiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiByZXNvbHZlVGl0bGVUZW1wbGF0ZSh0ZW1wbGF0ZSwgdGl0bGUpIHtcbiAgICByZXR1cm4gdGVtcGxhdGUgPyB0ZW1wbGF0ZS5yZXBsYWNlKC8lcy9nLCB0aXRsZSkgOiB0aXRsZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVGl0bGUodGl0bGUsIHN0YXNoZWRUZW1wbGF0ZSkge1xuICAgIGxldCByZXNvbHZlZDtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHR5cGVvZiB0aXRsZSAhPT0gXCJzdHJpbmdcIiAmJiB0aXRsZSAmJiBcInRlbXBsYXRlXCIgaW4gdGl0bGUgPyB0aXRsZS50ZW1wbGF0ZSA6IG51bGw7XG4gICAgaWYgKHR5cGVvZiB0aXRsZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXNvbHZlZCA9IHJlc29sdmVUaXRsZVRlbXBsYXRlKHN0YXNoZWRUZW1wbGF0ZSwgdGl0bGUpO1xuICAgIH0gZWxzZSBpZiAodGl0bGUpIHtcbiAgICAgICAgaWYgKFwiZGVmYXVsdFwiIGluIHRpdGxlKSB7XG4gICAgICAgICAgICByZXNvbHZlZCA9IHJlc29sdmVUaXRsZVRlbXBsYXRlKHN0YXNoZWRUZW1wbGF0ZSwgdGl0bGUuZGVmYXVsdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwiYWJzb2x1dGVcIiBpbiB0aXRsZSAmJiB0aXRsZS5hYnNvbHV0ZSkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSB0aXRsZS5hYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodGl0bGUgJiYgdHlwZW9mIHRpdGxlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZSxcbiAgICAgICAgICAgIGFic29sdXRlOiByZXNvbHZlZCB8fCBcIlwiXG4gICAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFic29sdXRlOiByZXNvbHZlZCB8fCB0aXRsZSB8fCBcIlwiLFxuICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdGl0bGUuanMubWFwIl0sIm5hbWVzIjpbInJlc29sdmVUaXRsZVRlbXBsYXRlIiwidGVtcGxhdGUiLCJ0aXRsZSIsInJlcGxhY2UiLCJyZXNvbHZlVGl0bGUiLCJzdGFzaGVkVGVtcGxhdGUiLCJyZXNvbHZlZCIsImRlZmF1bHQiLCJhYnNvbHV0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-title.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-url.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-url.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getSocialImageFallbackMetadataBase: () => (/* binding */ getSocialImageFallbackMetadataBase),\n/* harmony export */ isStringOrURL: () => (/* binding */ isStringOrURL),\n/* harmony export */ resolveAbsoluteUrlWithPathname: () => (/* binding */ resolveAbsoluteUrlWithPathname),\n/* harmony export */ resolveRelativeUrl: () => (/* binding */ resolveRelativeUrl),\n/* harmony export */ resolveUrl: () => (/* binding */ resolveUrl)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/isomorphic/path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _build_output_log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../build/output/log */ \"(ssr)/../../node_modules/next/dist/esm/build/output/log.js\");\n\n\nfunction isStringOrURL(icon) {\n return typeof icon === \"string\" || icon instanceof URL;\n}\nfunction createLocalMetadataBase() {\n return new URL(`http://localhost:${process.env.PORT || 3000}`);\n}\n// For deployment url for metadata routes, prefer to use the deployment url if possible\n// as these routes are unique to the deployments url.\nfunction getSocialImageFallbackMetadataBase(metadataBase) {\n const isMetadataBaseMissing = !metadataBase;\n const defaultMetadataBase = createLocalMetadataBase();\n const deploymentUrl = process.env.VERCEL_URL && new URL(`https://${process.env.VERCEL_URL}`);\n let fallbackMetadata;\n if (true) {\n fallbackMetadata = defaultMetadataBase;\n } else {}\n if (isMetadataBaseMissing) {\n _build_output_log__WEBPACK_IMPORTED_MODULE_1__.warnOnce(\"\");\n _build_output_log__WEBPACK_IMPORTED_MODULE_1__.warnOnce(`metadata.metadataBase is not set for resolving social open graph or twitter images, using \"${fallbackMetadata.origin}\". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase`);\n }\n return fallbackMetadata;\n}\nfunction resolveUrl(url, metadataBase) {\n if (url instanceof URL) return url;\n if (!url) return null;\n try {\n // If we can construct a URL instance from url, ignore metadataBase\n const parsedUrl = new URL(url);\n return parsedUrl;\n } catch {}\n if (!metadataBase) {\n metadataBase = createLocalMetadataBase();\n }\n // Handle relative or absolute paths\n const basePath = metadataBase.pathname || \"\";\n const joinedPath = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0___default().posix.join(basePath, url);\n return new URL(joinedPath, metadataBase);\n}\n// Resolve with `pathname` if `url` is a relative path.\nfunction resolveRelativeUrl(url, pathname) {\n if (typeof url === \"string\" && url.startsWith(\"./\")) {\n return _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0___default().posix.resolve(pathname, url);\n }\n return url;\n}\n// Resolve `pathname` if `url` is a relative path the compose with `metadataBase`.\nfunction resolveAbsoluteUrlWithPathname(url, metadataBase, pathname) {\n url = resolveRelativeUrl(url, pathname);\n const result = metadataBase ? resolveUrl(url, metadataBase) : url;\n return result.toString();\n}\n //# sourceMappingURL=resolve-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUF1RDtBQUNOO0FBQ2pELFNBQVNFLGNBQWNDLElBQUk7SUFDdkIsT0FBTyxPQUFPQSxTQUFTLFlBQVlBLGdCQUFnQkM7QUFDdkQ7QUFDQSxTQUFTQztJQUNMLE9BQU8sSUFBSUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFRSxRQUFRQyxHQUFHLENBQUNDLElBQUksSUFBSSxLQUFLLENBQUM7QUFDakU7QUFDQSx1RkFBdUY7QUFDdkYscURBQXFEO0FBQzlDLFNBQVNDLG1DQUFtQ0MsWUFBWTtJQUMzRCxNQUFNQyx3QkFBd0IsQ0FBQ0Q7SUFDL0IsTUFBTUUsc0JBQXNCUDtJQUM1QixNQUFNUSxnQkFBZ0JQLFFBQVFDLEdBQUcsQ0FBQ08sVUFBVSxJQUFJLElBQUlWLElBQUksQ0FBQyxRQUFRLEVBQUVFLFFBQVFDLEdBQUcsQ0FBQ08sVUFBVSxDQUFDLENBQUM7SUFDM0YsSUFBSUM7SUFDSixJQUFJVCxJQUFzQyxFQUFFO1FBQ3hDUyxtQkFBbUJIO0lBQ3ZCLE9BQU8sRUFFTjtJQUNELElBQUlELHVCQUF1QjtRQUN2QlYsdURBQVksQ0FBQztRQUNiQSx1REFBWSxDQUFDLENBQUMsMkZBQTJGLEVBQUVjLGlCQUFpQkcsTUFBTSxDQUFDLHlGQUF5RixDQUFDO0lBQ2pPO0lBQ0EsT0FBT0g7QUFDWDtBQUNBLFNBQVNJLFdBQVdDLEdBQUcsRUFBRVYsWUFBWTtJQUNqQyxJQUFJVSxlQUFlaEIsS0FBSyxPQUFPZ0I7SUFDL0IsSUFBSSxDQUFDQSxLQUFLLE9BQU87SUFDakIsSUFBSTtRQUNBLG1FQUFtRTtRQUNuRSxNQUFNQyxZQUFZLElBQUlqQixJQUFJZ0I7UUFDMUIsT0FBT0M7SUFDWCxFQUFFLE9BQU8sQ0FBQztJQUNWLElBQUksQ0FBQ1gsY0FBYztRQUNmQSxlQUFlTDtJQUNuQjtJQUNBLG9DQUFvQztJQUNwQyxNQUFNaUIsV0FBV1osYUFBYWEsUUFBUSxJQUFJO0lBQzFDLE1BQU1DLGFBQWF4Qix3RUFBVSxDQUFDMEIsSUFBSSxDQUFDSixVQUFVRjtJQUM3QyxPQUFPLElBQUloQixJQUFJb0IsWUFBWWQ7QUFDL0I7QUFDQSx1REFBdUQ7QUFDdkQsU0FBU2lCLG1CQUFtQlAsR0FBRyxFQUFFRyxRQUFRO0lBQ3JDLElBQUksT0FBT0gsUUFBUSxZQUFZQSxJQUFJUSxVQUFVLENBQUMsT0FBTztRQUNqRCxPQUFPNUIsd0VBQVUsQ0FBQzZCLE9BQU8sQ0FBQ04sVUFBVUg7SUFDeEM7SUFDQSxPQUFPQTtBQUNYO0FBQ0Esa0ZBQWtGO0FBQ2xGLFNBQVNVLCtCQUErQlYsR0FBRyxFQUFFVixZQUFZLEVBQUVhLFFBQVE7SUFDL0RILE1BQU1PLG1CQUFtQlAsS0FBS0c7SUFDOUIsTUFBTVEsU0FBU3JCLGVBQWVTLFdBQVdDLEtBQUtWLGdCQUFnQlU7SUFDOUQsT0FBT1csT0FBT0MsUUFBUTtBQUMxQjtBQUMyRixDQUUzRix1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS11cmwuanM/YzlmYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGhcIjtcbmltcG9ydCAqIGFzIExvZyBmcm9tIFwiLi4vLi4vLi4vYnVpbGQvb3V0cHV0L2xvZ1wiO1xuZnVuY3Rpb24gaXNTdHJpbmdPclVSTChpY29uKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpY29uID09PSBcInN0cmluZ1wiIHx8IGljb24gaW5zdGFuY2VvZiBVUkw7XG59XG5mdW5jdGlvbiBjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSgpIHtcbiAgICByZXR1cm4gbmV3IFVSTChgaHR0cDovL2xvY2FsaG9zdDoke3Byb2Nlc3MuZW52LlBPUlQgfHwgMzAwMH1gKTtcbn1cbi8vIEZvciBkZXBsb3ltZW50IHVybCBmb3IgbWV0YWRhdGEgcm91dGVzLCBwcmVmZXIgdG8gdXNlIHRoZSBkZXBsb3ltZW50IHVybCBpZiBwb3NzaWJsZVxuLy8gYXMgdGhlc2Ugcm91dGVzIGFyZSB1bmlxdWUgdG8gdGhlIGRlcGxveW1lbnRzIHVybC5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb2NpYWxJbWFnZUZhbGxiYWNrTWV0YWRhdGFCYXNlKG1ldGFkYXRhQmFzZSkge1xuICAgIGNvbnN0IGlzTWV0YWRhdGFCYXNlTWlzc2luZyA9ICFtZXRhZGF0YUJhc2U7XG4gICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhQmFzZSA9IGNyZWF0ZUxvY2FsTWV0YWRhdGFCYXNlKCk7XG4gICAgY29uc3QgZGVwbG95bWVudFVybCA9IHByb2Nlc3MuZW52LlZFUkNFTF9VUkwgJiYgbmV3IFVSTChgaHR0cHM6Ly8ke3Byb2Nlc3MuZW52LlZFUkNFTF9VUkx9YCk7XG4gICAgbGV0IGZhbGxiYWNrTWV0YWRhdGE7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgZmFsbGJhY2tNZXRhZGF0YSA9IGRlZmF1bHRNZXRhZGF0YUJhc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmFsbGJhY2tNZXRhZGF0YSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiAmJiBkZXBsb3ltZW50VXJsICYmIHByb2Nlc3MuZW52LlZFUkNFTF9FTlYgPT09IFwicHJldmlld1wiID8gZGVwbG95bWVudFVybCA6IG1ldGFkYXRhQmFzZSB8fCBkZXBsb3ltZW50VXJsIHx8IGRlZmF1bHRNZXRhZGF0YUJhc2U7XG4gICAgfVxuICAgIGlmIChpc01ldGFkYXRhQmFzZU1pc3NpbmcpIHtcbiAgICAgICAgTG9nLndhcm5PbmNlKFwiXCIpO1xuICAgICAgICBMb2cud2Fybk9uY2UoYG1ldGFkYXRhLm1ldGFkYXRhQmFzZSBpcyBub3Qgc2V0IGZvciByZXNvbHZpbmcgc29jaWFsIG9wZW4gZ3JhcGggb3IgdHdpdHRlciBpbWFnZXMsIHVzaW5nIFwiJHtmYWxsYmFja01ldGFkYXRhLm9yaWdpbn1cIi4gU2VlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9nZW5lcmF0ZS1tZXRhZGF0YSNtZXRhZGF0YWJhc2VgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrTWV0YWRhdGE7XG59XG5mdW5jdGlvbiByZXNvbHZlVXJsKHVybCwgbWV0YWRhdGFCYXNlKSB7XG4gICAgaWYgKHVybCBpbnN0YW5jZW9mIFVSTCkgcmV0dXJuIHVybDtcbiAgICBpZiAoIXVybCkgcmV0dXJuIG51bGw7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gSWYgd2UgY2FuIGNvbnN0cnVjdCBhIFVSTCBpbnN0YW5jZSBmcm9tIHVybCwgaWdub3JlIG1ldGFkYXRhQmFzZVxuICAgICAgICBjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybCk7XG4gICAgICAgIHJldHVybiBwYXJzZWRVcmw7XG4gICAgfSBjYXRjaCAge31cbiAgICBpZiAoIW1ldGFkYXRhQmFzZSkge1xuICAgICAgICBtZXRhZGF0YUJhc2UgPSBjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSgpO1xuICAgIH1cbiAgICAvLyBIYW5kbGUgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aHNcbiAgICBjb25zdCBiYXNlUGF0aCA9IG1ldGFkYXRhQmFzZS5wYXRobmFtZSB8fCBcIlwiO1xuICAgIGNvbnN0IGpvaW5lZFBhdGggPSBwYXRoLnBvc2l4LmpvaW4oYmFzZVBhdGgsIHVybCk7XG4gICAgcmV0dXJuIG5ldyBVUkwoam9pbmVkUGF0aCwgbWV0YWRhdGFCYXNlKTtcbn1cbi8vIFJlc29sdmUgd2l0aCBgcGF0aG5hbWVgIGlmIGB1cmxgIGlzIGEgcmVsYXRpdmUgcGF0aC5cbmZ1bmN0aW9uIHJlc29sdmVSZWxhdGl2ZVVybCh1cmwsIHBhdGhuYW1lKSB7XG4gICAgaWYgKHR5cGVvZiB1cmwgPT09IFwic3RyaW5nXCIgJiYgdXJsLnN0YXJ0c1dpdGgoXCIuL1wiKSkge1xuICAgICAgICByZXR1cm4gcGF0aC5wb3NpeC5yZXNvbHZlKHBhdGhuYW1lLCB1cmwpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsO1xufVxuLy8gUmVzb2x2ZSBgcGF0aG5hbWVgIGlmIGB1cmxgIGlzIGEgcmVsYXRpdmUgcGF0aCB0aGUgY29tcG9zZSB3aXRoIGBtZXRhZGF0YUJhc2VgLlxuZnVuY3Rpb24gcmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lKHVybCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSkge1xuICAgIHVybCA9IHJlc29sdmVSZWxhdGl2ZVVybCh1cmwsIHBhdGhuYW1lKTtcbiAgICBjb25zdCByZXN1bHQgPSBtZXRhZGF0YUJhc2UgPyByZXNvbHZlVXJsKHVybCwgbWV0YWRhdGFCYXNlKSA6IHVybDtcbiAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7XG59XG5leHBvcnQgeyBpc1N0cmluZ09yVVJMLCByZXNvbHZlVXJsLCByZXNvbHZlUmVsYXRpdmVVcmwsIHJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZSwgIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdXJsLmpzLm1hcCJdLCJuYW1lcyI6WyJwYXRoIiwiTG9nIiwiaXNTdHJpbmdPclVSTCIsImljb24iLCJVUkwiLCJjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1JUIiwiZ2V0U29jaWFsSW1hZ2VGYWxsYmFja01ldGFkYXRhQmFzZSIsIm1ldGFkYXRhQmFzZSIsImlzTWV0YWRhdGFCYXNlTWlzc2luZyIsImRlZmF1bHRNZXRhZGF0YUJhc2UiLCJkZXBsb3ltZW50VXJsIiwiVkVSQ0VMX1VSTCIsImZhbGxiYWNrTWV0YWRhdGEiLCJWRVJDRUxfRU5WIiwid2Fybk9uY2UiLCJvcmlnaW4iLCJyZXNvbHZlVXJsIiwidXJsIiwicGFyc2VkVXJsIiwiYmFzZVBhdGgiLCJwYXRobmFtZSIsImpvaW5lZFBhdGgiLCJwb3NpeCIsImpvaW4iLCJyZXNvbHZlUmVsYXRpdmVVcmwiLCJzdGFydHNXaXRoIiwicmVzb2x2ZSIsInJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZSIsInJlc3VsdCIsInRvU3RyaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-url.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/non-nullable.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/non-nullable.js ***!
- \************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ nonNullable: () => (/* binding */ nonNullable)\n/* harmony export */ });\nfunction nonNullable(value) {\n return value !== null && value !== undefined;\n} //# sourceMappingURL=non-nullable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL25vbi1udWxsYWJsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sU0FBU0EsWUFBWUMsS0FBSztJQUM3QixPQUFPQSxVQUFVLFFBQVFBLFVBQVVDO0FBQ3ZDLEVBRUEsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvbm9uLW51bGxhYmxlLmpzPzk4OTIiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG5vbk51bGxhYmxlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vbi1udWxsYWJsZS5qcy5tYXAiXSwibmFtZXMiOlsibm9uTnVsbGFibGUiLCJ2YWx1ZSIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/non-nullable.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/page-types.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/page-types.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PAGE_TYPES: () => (/* binding */ PAGE_TYPES)\n/* harmony export */ });\nvar PAGE_TYPES;\n(function(PAGE_TYPES) {\n PAGE_TYPES[\"PAGES\"] = \"pages\";\n PAGE_TYPES[\"ROOT\"] = \"root\";\n PAGE_TYPES[\"APP\"] = \"app\";\n})(PAGE_TYPES || (PAGE_TYPES = {})); //# sourceMappingURL=page-types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL3BhZ2UtdHlwZXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLElBQUlBLFdBQVc7QUFDckIsVUFBU0EsVUFBVTtJQUNoQkEsVUFBVSxDQUFDLFFBQVEsR0FBRztJQUN0QkEsVUFBVSxDQUFDLE9BQU8sR0FBRztJQUNyQkEsVUFBVSxDQUFDLE1BQU0sR0FBRztBQUN4QixHQUFHQSxjQUFlQSxDQUFBQSxhQUFhLENBQUMsS0FFaEMsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvcGFnZS10eXBlcy5qcz8wM2JmIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgUEFHRV9UWVBFUztcbihmdW5jdGlvbihQQUdFX1RZUEVTKSB7XG4gICAgUEFHRV9UWVBFU1tcIlBBR0VTXCJdID0gXCJwYWdlc1wiO1xuICAgIFBBR0VfVFlQRVNbXCJST09UXCJdID0gXCJyb290XCI7XG4gICAgUEFHRV9UWVBFU1tcIkFQUFwiXSA9IFwiYXBwXCI7XG59KShQQUdFX1RZUEVTIHx8IChQQUdFX1RZUEVTID0ge30pKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZS10eXBlcy5qcy5tYXAiXSwibmFtZXMiOlsiUEFHRV9UWVBFUyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/page-types.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/picocolors.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/picocolors.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bgBlack: () => (/* binding */ bgBlack),\n/* harmony export */ bgBlue: () => (/* binding */ bgBlue),\n/* harmony export */ bgCyan: () => (/* binding */ bgCyan),\n/* harmony export */ bgGreen: () => (/* binding */ bgGreen),\n/* harmony export */ bgMagenta: () => (/* binding */ bgMagenta),\n/* harmony export */ bgRed: () => (/* binding */ bgRed),\n/* harmony export */ bgWhite: () => (/* binding */ bgWhite),\n/* harmony export */ bgYellow: () => (/* binding */ bgYellow),\n/* harmony export */ black: () => (/* binding */ black),\n/* harmony export */ blue: () => (/* binding */ blue),\n/* harmony export */ bold: () => (/* binding */ bold),\n/* harmony export */ cyan: () => (/* binding */ cyan),\n/* harmony export */ dim: () => (/* binding */ dim),\n/* harmony export */ gray: () => (/* binding */ gray),\n/* harmony export */ green: () => (/* binding */ green),\n/* harmony export */ hidden: () => (/* binding */ hidden),\n/* harmony export */ inverse: () => (/* binding */ inverse),\n/* harmony export */ italic: () => (/* binding */ italic),\n/* harmony export */ magenta: () => (/* binding */ magenta),\n/* harmony export */ purple: () => (/* binding */ purple),\n/* harmony export */ red: () => (/* binding */ red),\n/* harmony export */ reset: () => (/* binding */ reset),\n/* harmony export */ strikethrough: () => (/* binding */ strikethrough),\n/* harmony export */ underline: () => (/* binding */ underline),\n/* harmony export */ white: () => (/* binding */ white),\n/* harmony export */ yellow: () => (/* binding */ yellow)\n/* harmony export */ });\n// ISC License\n// Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n//\n// https://github.com/alexeyraspopov/picocolors/blob/b6261487e7b81aaab2440e397a356732cad9e342/picocolors.js#L1\nvar _globalThis;\nconst { env, stdout } = ((_globalThis = globalThis) == null ? void 0 : _globalThis.process) ?? {};\nconst enabled = env && !env.NO_COLOR && (env.FORCE_COLOR || (stdout == null ? void 0 : stdout.isTTY) && !env.CI && env.TERM !== \"dumb\");\nconst replaceClose = (str, close, replace, index)=>{\n const start = str.substring(0, index) + replace;\n const end = str.substring(index + close.length);\n const nextIndex = end.indexOf(close);\n return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;\n};\nconst formatter = (open, close, replace = open)=>{\n if (!enabled) return String;\n return (input)=>{\n const string = \"\" + input;\n const index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n};\nconst reset = enabled ? (s)=>`\\x1b[0m${s}\\x1b[0m` : String;\nconst bold = formatter(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\");\nconst dim = formatter(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\");\nconst italic = formatter(\"\\x1b[3m\", \"\\x1b[23m\");\nconst underline = formatter(\"\\x1b[4m\", \"\\x1b[24m\");\nconst inverse = formatter(\"\\x1b[7m\", \"\\x1b[27m\");\nconst hidden = formatter(\"\\x1b[8m\", \"\\x1b[28m\");\nconst strikethrough = formatter(\"\\x1b[9m\", \"\\x1b[29m\");\nconst black = formatter(\"\\x1b[30m\", \"\\x1b[39m\");\nconst red = formatter(\"\\x1b[31m\", \"\\x1b[39m\");\nconst green = formatter(\"\\x1b[32m\", \"\\x1b[39m\");\nconst yellow = formatter(\"\\x1b[33m\", \"\\x1b[39m\");\nconst blue = formatter(\"\\x1b[34m\", \"\\x1b[39m\");\nconst magenta = formatter(\"\\x1b[35m\", \"\\x1b[39m\");\nconst purple = formatter(\"\\x1b[38;2;173;127;168m\", \"\\x1b[39m\");\nconst cyan = formatter(\"\\x1b[36m\", \"\\x1b[39m\");\nconst white = formatter(\"\\x1b[37m\", \"\\x1b[39m\");\nconst gray = formatter(\"\\x1b[90m\", \"\\x1b[39m\");\nconst bgBlack = formatter(\"\\x1b[40m\", \"\\x1b[49m\");\nconst bgRed = formatter(\"\\x1b[41m\", \"\\x1b[49m\");\nconst bgGreen = formatter(\"\\x1b[42m\", \"\\x1b[49m\");\nconst bgYellow = formatter(\"\\x1b[43m\", \"\\x1b[49m\");\nconst bgBlue = formatter(\"\\x1b[44m\", \"\\x1b[49m\");\nconst bgMagenta = formatter(\"\\x1b[45m\", \"\\x1b[49m\");\nconst bgCyan = formatter(\"\\x1b[46m\", \"\\x1b[49m\");\nconst bgWhite = formatter(\"\\x1b[47m\", \"\\x1b[49m\"); //# sourceMappingURL=picocolors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL3BpY29jb2xvcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxjQUFjO0FBQ2Qsd0VBQXdFO0FBQ3hFLDJFQUEyRTtBQUMzRSx5RUFBeUU7QUFDekUsb0VBQW9FO0FBQ3BFLDJFQUEyRTtBQUMzRSxtRUFBbUU7QUFDbkUsMEVBQTBFO0FBQzFFLHlFQUF5RTtBQUN6RSx3RUFBd0U7QUFDeEUsMEVBQTBFO0FBQzFFLGlFQUFpRTtBQUNqRSxFQUFFO0FBQ0YsOEdBQThHO0FBQzlHLElBQUlBO0FBQ0osTUFBTSxFQUFFQyxHQUFHLEVBQUVDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQ0YsY0FBY0csVUFBUyxLQUFNLE9BQU8sS0FBSyxJQUFJSCxZQUFZSSxPQUFPLEtBQUssQ0FBQztBQUNoRyxNQUFNQyxVQUFVSixPQUFPLENBQUNBLElBQUlLLFFBQVEsSUFBS0wsQ0FBQUEsSUFBSU0sV0FBVyxJQUFJLENBQUNMLFVBQVUsT0FBTyxLQUFLLElBQUlBLE9BQU9NLEtBQUssS0FBSyxDQUFDUCxJQUFJUSxFQUFFLElBQUlSLElBQUlTLElBQUksS0FBSyxNQUFLO0FBQ3JJLE1BQU1DLGVBQWUsQ0FBQ0MsS0FBS0MsT0FBT0MsU0FBU0M7SUFDdkMsTUFBTUMsUUFBUUosSUFBSUssU0FBUyxDQUFDLEdBQUdGLFNBQVNEO0lBQ3hDLE1BQU1JLE1BQU1OLElBQUlLLFNBQVMsQ0FBQ0YsUUFBUUYsTUFBTU0sTUFBTTtJQUM5QyxNQUFNQyxZQUFZRixJQUFJRyxPQUFPLENBQUNSO0lBQzlCLE9BQU8sQ0FBQ08sWUFBWUosUUFBUUwsYUFBYU8sS0FBS0wsT0FBT0MsU0FBU00sYUFBYUosUUFBUUU7QUFDdkY7QUFDQSxNQUFNSSxZQUFZLENBQUNDLE1BQU1WLE9BQU9DLFVBQVVTLElBQUk7SUFDMUMsSUFBSSxDQUFDbEIsU0FBUyxPQUFPbUI7SUFDckIsT0FBTyxDQUFDQztRQUNKLE1BQU1DLFNBQVMsS0FBS0Q7UUFDcEIsTUFBTVYsUUFBUVcsT0FBT0wsT0FBTyxDQUFDUixPQUFPVSxLQUFLSixNQUFNO1FBQy9DLE9BQU8sQ0FBQ0osUUFBUVEsT0FBT1osYUFBYWUsUUFBUWIsT0FBT0MsU0FBU0MsU0FBU0YsUUFBUVUsT0FBT0csU0FBU2I7SUFDakc7QUFDSjtBQUNPLE1BQU1jLFFBQVF0QixVQUFVLENBQUN1QixJQUFJLENBQUMsT0FBTyxFQUFFQSxFQUFFLE9BQU8sQ0FBQyxHQUFHSixPQUFPO0FBQzNELE1BQU1LLE9BQU9QLFVBQVUsV0FBVyxZQUFZLG1CQUFtQjtBQUNqRSxNQUFNUSxNQUFNUixVQUFVLFdBQVcsWUFBWSxtQkFBbUI7QUFDaEUsTUFBTVMsU0FBU1QsVUFBVSxXQUFXLFlBQVk7QUFDaEQsTUFBTVUsWUFBWVYsVUFBVSxXQUFXLFlBQVk7QUFDbkQsTUFBTVcsVUFBVVgsVUFBVSxXQUFXLFlBQVk7QUFDakQsTUFBTVksU0FBU1osVUFBVSxXQUFXLFlBQVk7QUFDaEQsTUFBTWEsZ0JBQWdCYixVQUFVLFdBQVcsWUFBWTtBQUN2RCxNQUFNYyxRQUFRZCxVQUFVLFlBQVksWUFBWTtBQUNoRCxNQUFNZSxNQUFNZixVQUFVLFlBQVksWUFBWTtBQUM5QyxNQUFNZ0IsUUFBUWhCLFVBQVUsWUFBWSxZQUFZO0FBQ2hELE1BQU1pQixTQUFTakIsVUFBVSxZQUFZLFlBQVk7QUFDakQsTUFBTWtCLE9BQU9sQixVQUFVLFlBQVksWUFBWTtBQUMvQyxNQUFNbUIsVUFBVW5CLFVBQVUsWUFBWSxZQUFZO0FBQ2xELE1BQU1vQixTQUFTcEIsVUFBVSwwQkFBMEIsWUFBWTtBQUMvRCxNQUFNcUIsT0FBT3JCLFVBQVUsWUFBWSxZQUFZO0FBQy9DLE1BQU1zQixRQUFRdEIsVUFBVSxZQUFZLFlBQVk7QUFDaEQsTUFBTXVCLE9BQU92QixVQUFVLFlBQVksWUFBWTtBQUMvQyxNQUFNd0IsVUFBVXhCLFVBQVUsWUFBWSxZQUFZO0FBQ2xELE1BQU15QixRQUFRekIsVUFBVSxZQUFZLFlBQVk7QUFDaEQsTUFBTTBCLFVBQVUxQixVQUFVLFlBQVksWUFBWTtBQUNsRCxNQUFNMkIsV0FBVzNCLFVBQVUsWUFBWSxZQUFZO0FBQ25ELE1BQU00QixTQUFTNUIsVUFBVSxZQUFZLFlBQVk7QUFDakQsTUFBTTZCLFlBQVk3QixVQUFVLFlBQVksWUFBWTtBQUNwRCxNQUFNOEIsU0FBUzlCLFVBQVUsWUFBWSxZQUFZO0FBQ2pELE1BQU0rQixVQUFVL0IsVUFBVSxZQUFZLFlBQVksQ0FFekQsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvcGljb2NvbG9ycy5qcz9lMDdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIElTQyBMaWNlbnNlXG4vLyBDb3B5cmlnaHQgKGMpIDIwMjEgQWxleGV5IFJhc3BvcG92LCBLb3N0aWFudHluIERlbnlzb3YsIEFudG9uIFZlcmlub3Zcbi8vIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuLy8gcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZVxuLy8gY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy5cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTXG4vLyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUlxuLy8gQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFU1xuLy8gV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOXG4vLyBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRlxuLy8gT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbi8vXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYWxleGV5cmFzcG9wb3YvcGljb2NvbG9ycy9ibG9iL2I2MjYxNDg3ZTdiODFhYWFiMjQ0MGUzOTdhMzU2NzMyY2FkOWUzNDIvcGljb2NvbG9ycy5qcyNMMVxudmFyIF9nbG9iYWxUaGlzO1xuY29uc3QgeyBlbnYsIHN0ZG91dCB9ID0gKChfZ2xvYmFsVGhpcyA9IGdsb2JhbFRoaXMpID09IG51bGwgPyB2b2lkIDAgOiBfZ2xvYmFsVGhpcy5wcm9jZXNzKSA/PyB7fTtcbmNvbnN0IGVuYWJsZWQgPSBlbnYgJiYgIWVudi5OT19DT0xPUiAmJiAoZW52LkZPUkNFX0NPTE9SIHx8IChzdGRvdXQgPT0gbnVsbCA/IHZvaWQgMCA6IHN0ZG91dC5pc1RUWSkgJiYgIWVudi5DSSAmJiBlbnYuVEVSTSAhPT0gXCJkdW1iXCIpO1xuY29uc3QgcmVwbGFjZUNsb3NlID0gKHN0ciwgY2xvc2UsIHJlcGxhY2UsIGluZGV4KT0+e1xuICAgIGNvbnN0IHN0YXJ0ID0gc3RyLnN1YnN0cmluZygwLCBpbmRleCkgKyByZXBsYWNlO1xuICAgIGNvbnN0IGVuZCA9IHN0ci5zdWJzdHJpbmcoaW5kZXggKyBjbG9zZS5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRJbmRleCA9IGVuZC5pbmRleE9mKGNsb3NlKTtcbiAgICByZXR1cm4gfm5leHRJbmRleCA/IHN0YXJ0ICsgcmVwbGFjZUNsb3NlKGVuZCwgY2xvc2UsIHJlcGxhY2UsIG5leHRJbmRleCkgOiBzdGFydCArIGVuZDtcbn07XG5jb25zdCBmb3JtYXR0ZXIgPSAob3BlbiwgY2xvc2UsIHJlcGxhY2UgPSBvcGVuKT0+e1xuICAgIGlmICghZW5hYmxlZCkgcmV0dXJuIFN0cmluZztcbiAgICByZXR1cm4gKGlucHV0KT0+e1xuICAgICAgICBjb25zdCBzdHJpbmcgPSBcIlwiICsgaW5wdXQ7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIH5pbmRleCA/IG9wZW4gKyByZXBsYWNlQ2xvc2Uoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpICsgY2xvc2UgOiBvcGVuICsgc3RyaW5nICsgY2xvc2U7XG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzZXQgPSBlbmFibGVkID8gKHMpPT5gXFx4MWJbMG0ke3N9XFx4MWJbMG1gIDogU3RyaW5nO1xuZXhwb3J0IGNvbnN0IGJvbGQgPSBmb3JtYXR0ZXIoXCJcXHgxYlsxbVwiLCBcIlxceDFiWzIybVwiLCBcIlxceDFiWzIybVxceDFiWzFtXCIpO1xuZXhwb3J0IGNvbnN0IGRpbSA9IGZvcm1hdHRlcihcIlxceDFiWzJtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMm1cIik7XG5leHBvcnQgY29uc3QgaXRhbGljID0gZm9ybWF0dGVyKFwiXFx4MWJbM21cIiwgXCJcXHgxYlsyM21cIik7XG5leHBvcnQgY29uc3QgdW5kZXJsaW5lID0gZm9ybWF0dGVyKFwiXFx4MWJbNG1cIiwgXCJcXHgxYlsyNG1cIik7XG5leHBvcnQgY29uc3QgaW52ZXJzZSA9IGZvcm1hdHRlcihcIlxceDFiWzdtXCIsIFwiXFx4MWJbMjdtXCIpO1xuZXhwb3J0IGNvbnN0IGhpZGRlbiA9IGZvcm1hdHRlcihcIlxceDFiWzhtXCIsIFwiXFx4MWJbMjhtXCIpO1xuZXhwb3J0IGNvbnN0IHN0cmlrZXRocm91Z2ggPSBmb3JtYXR0ZXIoXCJcXHgxYls5bVwiLCBcIlxceDFiWzI5bVwiKTtcbmV4cG9ydCBjb25zdCBibGFjayA9IGZvcm1hdHRlcihcIlxceDFiWzMwbVwiLCBcIlxceDFiWzM5bVwiKTtcbmV4cG9ydCBjb25zdCByZWQgPSBmb3JtYXR0ZXIoXCJcXHgxYlszMW1cIiwgXCJcXHgxYlszOW1cIik7XG5leHBvcnQgY29uc3QgZ3JlZW4gPSBmb3JtYXR0ZXIoXCJcXHgxYlszMm1cIiwgXCJcXHgxYlszOW1cIik7XG5leHBvcnQgY29uc3QgeWVsbG93ID0gZm9ybWF0dGVyKFwiXFx4MWJbMzNtXCIsIFwiXFx4MWJbMzltXCIpO1xuZXhwb3J0IGNvbnN0IGJsdWUgPSBmb3JtYXR0ZXIoXCJcXHgxYlszNG1cIiwgXCJcXHgxYlszOW1cIik7XG5leHBvcnQgY29uc3QgbWFnZW50YSA9IGZvcm1hdHRlcihcIlxceDFiWzM1bVwiLCBcIlxceDFiWzM5bVwiKTtcbmV4cG9ydCBjb25zdCBwdXJwbGUgPSBmb3JtYXR0ZXIoXCJcXHgxYlszODsyOzE3MzsxMjc7MTY4bVwiLCBcIlxceDFiWzM5bVwiKTtcbmV4cG9ydCBjb25zdCBjeWFuID0gZm9ybWF0dGVyKFwiXFx4MWJbMzZtXCIsIFwiXFx4MWJbMzltXCIpO1xuZXhwb3J0IGNvbnN0IHdoaXRlID0gZm9ybWF0dGVyKFwiXFx4MWJbMzdtXCIsIFwiXFx4MWJbMzltXCIpO1xuZXhwb3J0IGNvbnN0IGdyYXkgPSBmb3JtYXR0ZXIoXCJcXHgxYls5MG1cIiwgXCJcXHgxYlszOW1cIik7XG5leHBvcnQgY29uc3QgYmdCbGFjayA9IGZvcm1hdHRlcihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKTtcbmV4cG9ydCBjb25zdCBiZ1JlZCA9IGZvcm1hdHRlcihcIlxceDFiWzQxbVwiLCBcIlxceDFiWzQ5bVwiKTtcbmV4cG9ydCBjb25zdCBiZ0dyZWVuID0gZm9ybWF0dGVyKFwiXFx4MWJbNDJtXCIsIFwiXFx4MWJbNDltXCIpO1xuZXhwb3J0IGNvbnN0IGJnWWVsbG93ID0gZm9ybWF0dGVyKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpO1xuZXhwb3J0IGNvbnN0IGJnQmx1ZSA9IGZvcm1hdHRlcihcIlxceDFiWzQ0bVwiLCBcIlxceDFiWzQ5bVwiKTtcbmV4cG9ydCBjb25zdCBiZ01hZ2VudGEgPSBmb3JtYXR0ZXIoXCJcXHgxYls0NW1cIiwgXCJcXHgxYls0OW1cIik7XG5leHBvcnQgY29uc3QgYmdDeWFuID0gZm9ybWF0dGVyKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpO1xuZXhwb3J0IGNvbnN0IGJnV2hpdGUgPSBmb3JtYXR0ZXIoXCJcXHgxYls0N21cIiwgXCJcXHgxYls0OW1cIik7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBpY29jb2xvcnMuanMubWFwIl0sIm5hbWVzIjpbIl9nbG9iYWxUaGlzIiwiZW52Iiwic3Rkb3V0IiwiZ2xvYmFsVGhpcyIsInByb2Nlc3MiLCJlbmFibGVkIiwiTk9fQ09MT1IiLCJGT1JDRV9DT0xPUiIsImlzVFRZIiwiQ0kiLCJURVJNIiwicmVwbGFjZUNsb3NlIiwic3RyIiwiY2xvc2UiLCJyZXBsYWNlIiwiaW5kZXgiLCJzdGFydCIsInN1YnN0cmluZyIsImVuZCIsImxlbmd0aCIsIm5leHRJbmRleCIsImluZGV4T2YiLCJmb3JtYXR0ZXIiLCJvcGVuIiwiU3RyaW5nIiwiaW5wdXQiLCJzdHJpbmciLCJyZXNldCIsInMiLCJib2xkIiwiZGltIiwiaXRhbGljIiwidW5kZXJsaW5lIiwiaW52ZXJzZSIsImhpZGRlbiIsInN0cmlrZXRocm91Z2giLCJibGFjayIsInJlZCIsImdyZWVuIiwieWVsbG93IiwiYmx1ZSIsIm1hZ2VudGEiLCJwdXJwbGUiLCJjeWFuIiwid2hpdGUiLCJncmF5IiwiYmdCbGFjayIsImJnUmVkIiwiYmdHcmVlbiIsImJnWWVsbG93IiwiYmdCbHVlIiwiYmdNYWdlbnRhIiwiYmdDeWFuIiwiYmdXaGl0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/picocolors.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/redirect-status.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/redirect-status.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ allowedStatusCodes: () => (/* binding */ allowedStatusCodes),\n/* harmony export */ getRedirectStatus: () => (/* binding */ getRedirectStatus),\n/* harmony export */ modifyRouteRegex: () => (/* binding */ modifyRouteRegex)\n/* harmony export */ });\n/* harmony import */ var _client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/redirect-status-code */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js\");\n\nconst allowedStatusCodes = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction getRedirectStatus(route) {\n return route.statusCode || (route.permanent ? _client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_0__.RedirectStatusCode.PermanentRedirect : _client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_0__.RedirectStatusCode.TemporaryRedirect);\n}\n// for redirects we restrict matching /_next and for all routes\n// we add an optional trailing slash at the end for easier\n// configuring between trailingSlash: true/false\nfunction modifyRouteRegex(regex, restrictedPaths) {\n if (restrictedPaths) {\n regex = regex.replace(/\\^/, `^(?!${restrictedPaths.map((path)=>path.replace(/\\//g, \"\\\\/\")).join(\"|\")})`);\n }\n regex = regex.replace(/\\$$/, \"(?:\\\\/)?$\");\n return regex;\n} //# sourceMappingURL=redirect-status.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL3JlZGlyZWN0LXN0YXR1cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQStFO0FBQ3hFLE1BQU1DLHFCQUFxQixJQUFJQyxJQUFJO0lBQ3RDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDSCxFQUFFO0FBQ0ksU0FBU0Msa0JBQWtCQyxLQUFLO0lBQ25DLE9BQU9BLE1BQU1DLFVBQVUsSUFBS0QsQ0FBQUEsTUFBTUUsU0FBUyxHQUFHTix1RkFBa0JBLENBQUNPLGlCQUFpQixHQUFHUCx1RkFBa0JBLENBQUNRLGlCQUFpQjtBQUM3SDtBQUNBLCtEQUErRDtBQUMvRCwwREFBMEQ7QUFDMUQsZ0RBQWdEO0FBQ3pDLFNBQVNDLGlCQUFpQkMsS0FBSyxFQUFFQyxlQUFlO0lBQ25ELElBQUlBLGlCQUFpQjtRQUNqQkQsUUFBUUEsTUFBTUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUVELGdCQUFnQkUsR0FBRyxDQUFDLENBQUNDLE9BQU9BLEtBQUtGLE9BQU8sQ0FBQyxPQUFPLFFBQVFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRztJQUNBTCxRQUFRQSxNQUFNRSxPQUFPLENBQUMsT0FBTztJQUM3QixPQUFPRjtBQUNYLEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvcmVkaXJlY3Qtc3RhdHVzLmpzPzU1MTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVkaXJlY3RTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlXCI7XG5leHBvcnQgY29uc3QgYWxsb3dlZFN0YXR1c0NvZGVzID0gbmV3IFNldChbXG4gICAgMzAxLFxuICAgIDMwMixcbiAgICAzMDMsXG4gICAgMzA3LFxuICAgIDMwOFxuXSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkaXJlY3RTdGF0dXMocm91dGUpIHtcbiAgICByZXR1cm4gcm91dGUuc3RhdHVzQ29kZSB8fCAocm91dGUucGVybWFuZW50ID8gUmVkaXJlY3RTdGF0dXNDb2RlLlBlcm1hbmVudFJlZGlyZWN0IDogUmVkaXJlY3RTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0KTtcbn1cbi8vIGZvciByZWRpcmVjdHMgd2UgcmVzdHJpY3QgbWF0Y2hpbmcgL19uZXh0IGFuZCBmb3IgYWxsIHJvdXRlc1xuLy8gd2UgYWRkIGFuIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGF0IHRoZSBlbmQgZm9yIGVhc2llclxuLy8gY29uZmlndXJpbmcgYmV0d2VlbiB0cmFpbGluZ1NsYXNoOiB0cnVlL2ZhbHNlXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZ5Um91dGVSZWdleChyZWdleCwgcmVzdHJpY3RlZFBhdGhzKSB7XG4gICAgaWYgKHJlc3RyaWN0ZWRQYXRocykge1xuICAgICAgICByZWdleCA9IHJlZ2V4LnJlcGxhY2UoL1xcXi8sIGBeKD8hJHtyZXN0cmljdGVkUGF0aHMubWFwKChwYXRoKT0+cGF0aC5yZXBsYWNlKC9cXC8vZywgXCJcXFxcL1wiKSkuam9pbihcInxcIil9KWApO1xuICAgIH1cbiAgICByZWdleCA9IHJlZ2V4LnJlcGxhY2UoL1xcJCQvLCBcIig/OlxcXFwvKT8kXCIpO1xuICAgIHJldHVybiByZWdleDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVkaXJlY3Qtc3RhdHVzLmpzLm1hcCJdLCJuYW1lcyI6WyJSZWRpcmVjdFN0YXR1c0NvZGUiLCJhbGxvd2VkU3RhdHVzQ29kZXMiLCJTZXQiLCJnZXRSZWRpcmVjdFN0YXR1cyIsInJvdXRlIiwic3RhdHVzQ29kZSIsInBlcm1hbmVudCIsIlBlcm1hbmVudFJlZGlyZWN0IiwiVGVtcG9yYXJ5UmVkaXJlY3QiLCJtb2RpZnlSb3V0ZVJlZ2V4IiwicmVnZXgiLCJyZXN0cmljdGVkUGF0aHMiLCJyZXBsYWNlIiwibWFwIiwicGF0aCIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/redirect-status.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/lib/scheduler.js":
-/*!*********************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/scheduler.js ***!
- \*********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scheduleImmediate: () => (/* binding */ scheduleImmediate),\n/* harmony export */ scheduleOnNextTick: () => (/* binding */ scheduleOnNextTick)\n/* harmony export */ });\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */ const scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n process.nextTick(cb);\n });\n};\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */ const scheduleImmediate = (cb)=>{\n if (true) {\n setTimeout(cb, 0);\n } else {}\n}; //# sourceMappingURL=scheduler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL3NjaGVkdWxlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7OztDQUtDLEdBQVUsTUFBTUEscUJBQXFCLENBQUNDO0lBQ25DLDZFQUE2RTtJQUM3RSw0RUFBNEU7SUFDNUUsdUNBQXVDO0lBQ3ZDLEVBQUU7SUFDRixrTEFBa0w7SUFDbEwsRUFBRTtJQUNGQyxRQUFRQyxPQUFPLEdBQUdDLElBQUksQ0FBQztRQUNuQkMsUUFBUUMsUUFBUSxDQUFDTDtJQUNyQjtBQUNKLEVBQUU7QUFDRjs7Ozs7Q0FLQyxHQUFVLE1BQU1NLG9CQUFvQixDQUFDTjtJQUNsQyxJQUFJSSxJQUFtQyxFQUFFO1FBQ3JDSyxXQUFXVCxJQUFJO0lBQ25CLE9BQU8sRUFFTjtBQUNMLEVBQUUsQ0FFRixxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2xpYi9zY2hlZHVsZXIuanM/M2ZiMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjaGVkdWxlcyBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiB0aGUgbmV4dCB0aWNrIGFmdGVyIHRoZSBvdGhlciBwcm9taXNlc1xuICogaGF2ZSBiZWVuIHJlc29sdmVkLlxuICpcbiAqIEBwYXJhbSBjYiB0aGUgZnVuY3Rpb24gdG8gc2NoZWR1bGVcbiAqLyBleHBvcnQgY29uc3Qgc2NoZWR1bGVPbk5leHRUaWNrID0gKGNiKT0+e1xuICAgIC8vIFdlIHVzZSBQcm9taXNlLnJlc29sdmUoKS50aGVuKCkgaGVyZSBzbyB0aGF0IHRoZSBvcGVyYXRpb24gaXMgc2NoZWR1bGVkIGF0XG4gICAgLy8gdGhlIGVuZCBvZiB0aGUgcHJvbWlzZSBqb2IgcXVldWUsIHdlIHRoZW4gYWRkIGl0IHRvIHRoZSBuZXh0IHByb2Nlc3MgdGlja1xuICAgIC8vIHRvIGVuc3VyZSBpdCdzIGV2YWx1YXRlZCBhZnRlcndhcmRzLlxuICAgIC8vXG4gICAgLy8gVGhpcyB3YXMgaW5zcGlyZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEYXRhTG9hZGVyIGludGVyZmFjZTogaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwvZGF0YWxvYWRlci9ibG9iL2QzMzZiZDE1MjgyNjY0ZTBiZTRiNGE2NTdjYjc5NmYwOWJhZmJjNmIvc3JjL2luZGV4LmpzI0wyMTMtTDI1NVxuICAgIC8vXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e1xuICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGNiKTtcbiAgICB9KTtcbn07XG4vKipcbiAqIFNjaGVkdWxlcyBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB1c2luZyBgc2V0SW1tZWRpYXRlYCBvciBgc2V0VGltZW91dGAgaWZcbiAqIGBzZXRJbW1lZGlhdGVgIGlzIG5vdCBhdmFpbGFibGUgKGxpa2UgaW4gdGhlIEVkZ2UgcnVudGltZSkuXG4gKlxuICogQHBhcmFtIGNiIHRoZSBmdW5jdGlvbiB0byBzY2hlZHVsZVxuICovIGV4cG9ydCBjb25zdCBzY2hlZHVsZUltbWVkaWF0ZSA9IChjYik9PntcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIikge1xuICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJbW1lZGlhdGUoY2IpO1xuICAgIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjaGVkdWxlci5qcy5tYXAiXSwibmFtZXMiOlsic2NoZWR1bGVPbk5leHRUaWNrIiwiY2IiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJwcm9jZXNzIiwibmV4dFRpY2siLCJzY2hlZHVsZUltbWVkaWF0ZSIsImVudiIsIk5FWFRfUlVOVElNRSIsInNldFRpbWVvdXQiLCJzZXRJbW1lZGlhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/lib/scheduler.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getCookieParser: () => (/* binding */ getCookieParser)\n/* harmony export */ });\n/**\n * Parse cookies from the `headers` of request\n * @param req request object\n */ function getCookieParser(headers) {\n return function parseCookie() {\n const { cookie } = headers;\n if (!cookie) {\n return {};\n }\n const { parse: parseCookieFn } = __webpack_require__(/*! next/dist/compiled/cookie */ \"(ssr)/../../node_modules/next/dist/compiled/cookie/index.js\");\n return parseCookieFn(Array.isArray(cookie) ? cookie.join(\"; \") : cookie);\n };\n} //# sourceMappingURL=get-cookie-parser.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwaS11dGlscy9nZXQtY29va2llLXBhcnNlci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7OztDQUdDLEdBQVUsU0FBU0EsZ0JBQWdCQyxPQUFPO0lBQ3ZDLE9BQU8sU0FBU0M7UUFDWixNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHRjtRQUNuQixJQUFJLENBQUNFLFFBQVE7WUFDVCxPQUFPLENBQUM7UUFDWjtRQUNBLE1BQU0sRUFBRUMsT0FBT0MsYUFBYSxFQUFFLEdBQUdDLG1CQUFPQSxDQUFDLDhGQUEyQjtRQUNwRSxPQUFPRCxjQUFjRSxNQUFNQyxPQUFPLENBQUNMLFVBQVVBLE9BQU9NLElBQUksQ0FBQyxRQUFRTjtJQUNyRTtBQUNKLEVBRUEsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBpLXV0aWxzL2dldC1jb29raWUtcGFyc2VyLmpzPzkzYzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJzZSBjb29raWVzIGZyb20gdGhlIGBoZWFkZXJzYCBvZiByZXF1ZXN0XG4gKiBAcGFyYW0gcmVxIHJlcXVlc3Qgb2JqZWN0XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldENvb2tpZVBhcnNlcihoZWFkZXJzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHBhcnNlQ29va2llKCkge1xuICAgICAgICBjb25zdCB7IGNvb2tpZSB9ID0gaGVhZGVycztcbiAgICAgICAgaWYgKCFjb29raWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHBhcnNlOiBwYXJzZUNvb2tpZUZuIH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZVwiKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ29va2llRm4oQXJyYXkuaXNBcnJheShjb29raWUpID8gY29va2llLmpvaW4oXCI7IFwiKSA6IGNvb2tpZSk7XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWNvb2tpZS1wYXJzZXIuanMubWFwIl0sIm5hbWVzIjpbImdldENvb2tpZVBhcnNlciIsImhlYWRlcnMiLCJwYXJzZUNvb2tpZSIsImNvb2tpZSIsInBhcnNlIiwicGFyc2VDb29raWVGbiIsInJlcXVpcmUiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/api-utils/index.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/api-utils/index.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ApiError: () => (/* binding */ ApiError),\n/* harmony export */ COOKIE_NAME_PRERENDER_BYPASS: () => (/* binding */ COOKIE_NAME_PRERENDER_BYPASS),\n/* harmony export */ COOKIE_NAME_PRERENDER_DATA: () => (/* binding */ COOKIE_NAME_PRERENDER_DATA),\n/* harmony export */ RESPONSE_LIMIT_DEFAULT: () => (/* binding */ RESPONSE_LIMIT_DEFAULT),\n/* harmony export */ SYMBOL_CLEARED_COOKIES: () => (/* binding */ SYMBOL_CLEARED_COOKIES),\n/* harmony export */ SYMBOL_PREVIEW_DATA: () => (/* binding */ SYMBOL_PREVIEW_DATA),\n/* harmony export */ checkIsOnDemandRevalidate: () => (/* binding */ checkIsOnDemandRevalidate),\n/* harmony export */ clearPreviewData: () => (/* binding */ clearPreviewData),\n/* harmony export */ redirect: () => (/* binding */ redirect),\n/* harmony export */ sendError: () => (/* binding */ sendError),\n/* harmony export */ sendStatusCode: () => (/* binding */ sendStatusCode),\n/* harmony export */ setLazyProp: () => (/* binding */ setLazyProp)\n/* harmony export */ });\n/* harmony import */ var _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../web/spec-extension/adapters/headers */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n\n\n/**\n *\n * @param res response object\n * @param statusCode `HTTP` status code of response\n */ function sendStatusCode(res, statusCode) {\n res.statusCode = statusCode;\n return res;\n}\n/**\n *\n * @param res response object\n * @param [statusOrUrl] `HTTP` status code of redirect\n * @param url URL of redirect\n */ function redirect(res, statusOrUrl, url) {\n if (typeof statusOrUrl === \"string\") {\n url = statusOrUrl;\n statusOrUrl = 307;\n }\n if (typeof statusOrUrl !== \"number\" || typeof url !== \"string\") {\n throw new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`);\n }\n res.writeHead(statusOrUrl, {\n Location: url\n });\n res.write(url);\n res.end();\n return res;\n}\nfunction checkIsOnDemandRevalidate(req, previewProps) {\n const headers = _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_0__.HeadersAdapter.from(req.headers);\n const previewModeId = headers.get(_lib_constants__WEBPACK_IMPORTED_MODULE_1__.PRERENDER_REVALIDATE_HEADER);\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.has(_lib_constants__WEBPACK_IMPORTED_MODULE_1__.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);\n return {\n isOnDemandRevalidate,\n revalidateOnlyGenerated\n };\n}\nconst COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`;\nconst COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`;\nconst RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024;\nconst SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA);\nconst SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS);\nfunction clearPreviewData(res, options = {}) {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res;\n }\n const { serialize } = __webpack_require__(/*! next/dist/compiled/cookie */ \"(ssr)/../../node_modules/next/dist/compiled/cookie/index.js\");\n const previous = res.getHeader(\"Set-Cookie\");\n res.setHeader(`Set-Cookie`, [\n ...typeof previous === \"string\" ? [\n previous\n ] : Array.isArray(previous) ? previous : [],\n serialize(COOKIE_NAME_PRERENDER_BYPASS, \"\", {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: false ? 0 : \"lax\",\n secure: \"development\" !== \"development\",\n path: \"/\",\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, \"\", {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: false ? 0 : \"lax\",\n secure: \"development\" !== \"development\",\n path: \"/\",\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n })\n ]);\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false\n });\n return res;\n}\n/**\n * Custom error class\n */ class ApiError extends Error {\n constructor(statusCode, message){\n super(message);\n this.statusCode = statusCode;\n }\n}\n/**\n * Sends error in `response`\n * @param res response object\n * @param statusCode of response\n * @param message of response\n */ function sendError(res, statusCode, message) {\n res.statusCode = statusCode;\n res.statusMessage = message;\n res.end(message);\n}\n/**\n * Execute getter function only if its needed\n * @param LazyProps `req` and `params` for lazyProp\n * @param prop name of property\n * @param getter function to get data\n */ function setLazyProp({ req }, prop, getter) {\n const opts = {\n configurable: true,\n enumerable: true\n };\n const optsReset = {\n ...opts,\n writable: true\n };\n Object.defineProperty(req, prop, {\n ...opts,\n get: ()=>{\n const value = getter();\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n return value;\n },\n set: (value)=>{\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n }\n });\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwaS11dGlscy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUF3RTtBQUNzQztBQUM5Rzs7OztDQUlDLEdBQVUsU0FBU0csZUFBZUMsR0FBRyxFQUFFQyxVQUFVO0lBQzlDRCxJQUFJQyxVQUFVLEdBQUdBO0lBQ2pCLE9BQU9EO0FBQ1g7QUFDQTs7Ozs7Q0FLQyxHQUFVLFNBQVNFLFNBQVNGLEdBQUcsRUFBRUcsV0FBVyxFQUFFQyxHQUFHO0lBQzlDLElBQUksT0FBT0QsZ0JBQWdCLFVBQVU7UUFDakNDLE1BQU1EO1FBQ05BLGNBQWM7SUFDbEI7SUFDQSxJQUFJLE9BQU9BLGdCQUFnQixZQUFZLE9BQU9DLFFBQVEsVUFBVTtRQUM1RCxNQUFNLElBQUlDLE1BQU0sQ0FBQyxxS0FBcUssQ0FBQztJQUMzTDtJQUNBTCxJQUFJTSxTQUFTLENBQUNILGFBQWE7UUFDdkJJLFVBQVVIO0lBQ2Q7SUFDQUosSUFBSVEsS0FBSyxDQUFDSjtJQUNWSixJQUFJUyxHQUFHO0lBQ1AsT0FBT1Q7QUFDWDtBQUNPLFNBQVNVLDBCQUEwQkMsR0FBRyxFQUFFQyxZQUFZO0lBQ3ZELE1BQU1DLFVBQVVqQixnRkFBY0EsQ0FBQ2tCLElBQUksQ0FBQ0gsSUFBSUUsT0FBTztJQUMvQyxNQUFNRSxnQkFBZ0JGLFFBQVFHLEdBQUcsQ0FBQ25CLHVFQUEyQkE7SUFDN0QsTUFBTW9CLHVCQUF1QkYsa0JBQWtCSCxhQUFhRyxhQUFhO0lBQ3pFLE1BQU1HLDBCQUEwQkwsUUFBUU0sR0FBRyxDQUFDckIsc0ZBQTBDQTtJQUN0RixPQUFPO1FBQ0htQjtRQUNBQztJQUNKO0FBQ0o7QUFDTyxNQUFNRSwrQkFBK0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzFELE1BQU1DLDZCQUE2QixDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDekQsTUFBTUMseUJBQXlCLElBQUksT0FBTyxLQUFLO0FBQy9DLE1BQU1DLHNCQUFzQkMsT0FBT0gsNEJBQTRCO0FBQy9ELE1BQU1JLHlCQUF5QkQsT0FBT0osOEJBQThCO0FBQ3BFLFNBQVNNLGlCQUFpQjFCLEdBQUcsRUFBRTJCLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLElBQUlGLDBCQUEwQnpCLEtBQUs7UUFDL0IsT0FBT0E7SUFDWDtJQUNBLE1BQU0sRUFBRTRCLFNBQVMsRUFBRSxHQUFHQyxtQkFBT0EsQ0FBQyw4RkFBMkI7SUFDekQsTUFBTUMsV0FBVzlCLElBQUkrQixTQUFTLENBQUM7SUFDL0IvQixJQUFJZ0MsU0FBUyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUU7V0FDckIsT0FBT0YsYUFBYSxXQUFXO1lBQzlCQTtTQUNILEdBQUdHLE1BQU1DLE9BQU8sQ0FBQ0osWUFBWUEsV0FBVyxFQUFFO1FBQzNDRixVQUFVUiw4QkFBOEIsSUFBSTtZQUN4QywyREFBMkQ7WUFDM0Qsb0RBQW9EO1lBQ3BELHdFQUF3RTtZQUN4RWUsU0FBUyxJQUFJQyxLQUFLO1lBQ2xCQyxVQUFVO1lBQ1ZDLFVBQVVDLE1BQXNDLEdBQUcsQ0FBTSxHQUFHO1lBQzVEQyxRQUFRRCxrQkFBeUI7WUFDakNFLE1BQU07WUFDTixHQUFHZCxRQUFRYyxJQUFJLEtBQUtDLFlBQVk7Z0JBQzVCRCxNQUFNZCxRQUFRYyxJQUFJO1lBQ3RCLElBQUlDLFNBQVM7UUFDakI7UUFDQWQsVUFBVVAsNEJBQTRCLElBQUk7WUFDdEMsMkRBQTJEO1lBQzNELG9EQUFvRDtZQUNwRCx3RUFBd0U7WUFDeEVjLFNBQVMsSUFBSUMsS0FBSztZQUNsQkMsVUFBVTtZQUNWQyxVQUFVQyxNQUFzQyxHQUFHLENBQU0sR0FBRztZQUM1REMsUUFBUUQsa0JBQXlCO1lBQ2pDRSxNQUFNO1lBQ04sR0FBR2QsUUFBUWMsSUFBSSxLQUFLQyxZQUFZO2dCQUM1QkQsTUFBTWQsUUFBUWMsSUFBSTtZQUN0QixJQUFJQyxTQUFTO1FBQ2pCO0tBQ0g7SUFDREMsT0FBT0MsY0FBYyxDQUFDNUMsS0FBS3lCLHdCQUF3QjtRQUMvQ29CLE9BQU87UUFDUEMsWUFBWTtJQUNoQjtJQUNBLE9BQU85QztBQUNYO0FBQ0E7O0NBRUMsR0FBVSxNQUFNK0MsaUJBQWlCMUM7SUFDOUIyQyxZQUFZL0MsVUFBVSxFQUFFZ0QsT0FBTyxDQUFDO1FBQzVCLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNoRCxVQUFVLEdBQUdBO0lBQ3RCO0FBQ0o7QUFDQTs7Ozs7Q0FLQyxHQUFVLFNBQVNpRCxVQUFVbEQsR0FBRyxFQUFFQyxVQUFVLEVBQUVnRCxPQUFPO0lBQ2xEakQsSUFBSUMsVUFBVSxHQUFHQTtJQUNqQkQsSUFBSW1ELGFBQWEsR0FBR0Y7SUFDcEJqRCxJQUFJUyxHQUFHLENBQUN3QztBQUNaO0FBQ0E7Ozs7O0NBS0MsR0FBVSxTQUFTRyxZQUFZLEVBQUV6QyxHQUFHLEVBQUUsRUFBRTBDLElBQUksRUFBRUMsTUFBTTtJQUNqRCxNQUFNQyxPQUFPO1FBQ1RDLGNBQWM7UUFDZFYsWUFBWTtJQUNoQjtJQUNBLE1BQU1XLFlBQVk7UUFDZCxHQUFHRixJQUFJO1FBQ1BHLFVBQVU7SUFDZDtJQUNBZixPQUFPQyxjQUFjLENBQUNqQyxLQUFLMEMsTUFBTTtRQUM3QixHQUFHRSxJQUFJO1FBQ1B2QyxLQUFLO1lBQ0QsTUFBTTZCLFFBQVFTO1lBQ2QsOERBQThEO1lBQzlEWCxPQUFPQyxjQUFjLENBQUNqQyxLQUFLMEMsTUFBTTtnQkFDN0IsR0FBR0ksU0FBUztnQkFDWlo7WUFDSjtZQUNBLE9BQU9BO1FBQ1g7UUFDQWMsS0FBSyxDQUFDZDtZQUNGRixPQUFPQyxjQUFjLENBQUNqQyxLQUFLMEMsTUFBTTtnQkFDN0IsR0FBR0ksU0FBUztnQkFDWlo7WUFDSjtRQUNKO0lBQ0o7QUFDSixFQUVBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwaS11dGlscy9pbmRleC5qcz8xNjc3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlcnNBZGFwdGVyIH0gZnJvbSBcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzXCI7XG5pbXBvcnQgeyBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIsIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUiB9IGZyb20gXCIuLi8uLi9saWIvY29uc3RhbnRzXCI7XG4vKipcbiAqXG4gKiBAcGFyYW0gcmVzIHJlc3BvbnNlIG9iamVjdFxuICogQHBhcmFtIHN0YXR1c0NvZGUgYEhUVFBgIHN0YXR1cyBjb2RlIG9mIHJlc3BvbnNlXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHNlbmRTdGF0dXNDb2RlKHJlcywgc3RhdHVzQ29kZSkge1xuICAgIHJlcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICByZXR1cm4gcmVzO1xufVxuLyoqXG4gKlxuICogQHBhcmFtIHJlcyByZXNwb25zZSBvYmplY3RcbiAqIEBwYXJhbSBbc3RhdHVzT3JVcmxdIGBIVFRQYCBzdGF0dXMgY29kZSBvZiByZWRpcmVjdFxuICogQHBhcmFtIHVybCBVUkwgb2YgcmVkaXJlY3RcbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVkaXJlY3QocmVzLCBzdGF0dXNPclVybCwgdXJsKSB7XG4gICAgaWYgKHR5cGVvZiBzdGF0dXNPclVybCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB1cmwgPSBzdGF0dXNPclVybDtcbiAgICAgICAgc3RhdHVzT3JVcmwgPSAzMDc7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygc3RhdHVzT3JVcmwgIT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHVybCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVkaXJlY3QgYXJndW1lbnRzLiBQbGVhc2UgdXNlIGEgc2luZ2xlIGFyZ3VtZW50IFVSTCwgZS5nLiByZXMucmVkaXJlY3QoJy9kZXN0aW5hdGlvbicpIG9yIHVzZSBhIHN0YXR1cyBjb2RlIGFuZCBVUkwsIGUuZy4gcmVzLnJlZGlyZWN0KDMwNywgJy9kZXN0aW5hdGlvbicpLmApO1xuICAgIH1cbiAgICByZXMud3JpdGVIZWFkKHN0YXR1c09yVXJsLCB7XG4gICAgICAgIExvY2F0aW9uOiB1cmxcbiAgICB9KTtcbiAgICByZXMud3JpdGUodXJsKTtcbiAgICByZXMuZW5kKCk7XG4gICAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlKHJlcSwgcHJldmlld1Byb3BzKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IEhlYWRlcnNBZGFwdGVyLmZyb20ocmVxLmhlYWRlcnMpO1xuICAgIGNvbnN0IHByZXZpZXdNb2RlSWQgPSBoZWFkZXJzLmdldChQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIpO1xuICAgIGNvbnN0IGlzT25EZW1hbmRSZXZhbGlkYXRlID0gcHJldmlld01vZGVJZCA9PT0gcHJldmlld1Byb3BzLnByZXZpZXdNb2RlSWQ7XG4gICAgY29uc3QgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQgPSBoZWFkZXJzLmhhcyhQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlLFxuICAgICAgICByZXZhbGlkYXRlT25seUdlbmVyYXRlZFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUyA9IGBfX3ByZXJlbmRlcl9ieXBhc3NgO1xuZXhwb3J0IGNvbnN0IENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBID0gYF9fbmV4dF9wcmV2aWV3X2RhdGFgO1xuZXhwb3J0IGNvbnN0IFJFU1BPTlNFX0xJTUlUX0RFRkFVTFQgPSA0ICogMTAyNCAqIDEwMjQ7XG5leHBvcnQgY29uc3QgU1lNQk9MX1BSRVZJRVdfREFUQSA9IFN5bWJvbChDT09LSUVfTkFNRV9QUkVSRU5ERVJfREFUQSk7XG5leHBvcnQgY29uc3QgU1lNQk9MX0NMRUFSRURfQ09PS0lFUyA9IFN5bWJvbChDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTKTtcbmV4cG9ydCBmdW5jdGlvbiBjbGVhclByZXZpZXdEYXRhKHJlcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKFNZTUJPTF9DTEVBUkVEX0NPT0tJRVMgaW4gcmVzKSB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGNvbnN0IHsgc2VyaWFsaXplIH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZVwiKTtcbiAgICBjb25zdCBwcmV2aW91cyA9IHJlcy5nZXRIZWFkZXIoXCJTZXQtQ29va2llXCIpO1xuICAgIHJlcy5zZXRIZWFkZXIoYFNldC1Db29raWVgLCBbXG4gICAgICAgIC4uLnR5cGVvZiBwcmV2aW91cyA9PT0gXCJzdHJpbmdcIiA/IFtcbiAgICAgICAgICAgIHByZXZpb3VzXG4gICAgICAgIF0gOiBBcnJheS5pc0FycmF5KHByZXZpb3VzKSA/IHByZXZpb3VzIDogW10sXG4gICAgICAgIHNlcmlhbGl6ZShDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTLCBcIlwiLCB7XG4gICAgICAgICAgICAvLyBUbyBkZWxldGUgYSBjb29raWUsIHNldCBgZXhwaXJlc2AgdG8gYSBkYXRlIGluIHRoZSBwYXN0OlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEuMVxuICAgICAgICAgICAgLy8gYE1heC1BZ2U6IDBgIGlzIG5vdCB2YWxpZCwgdGh1cyBpZ25vcmVkLCBhbmQgdGhlIGNvb2tpZSBpcyBwZXJzaXN0ZWQuXG4gICAgICAgICAgICBleHBpcmVzOiBuZXcgRGF0ZSgwKSxcbiAgICAgICAgICAgIGh0dHBPbmx5OiB0cnVlLFxuICAgICAgICAgICAgc2FtZVNpdGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcImRldmVsb3BtZW50XCIgPyBcIm5vbmVcIiA6IFwibGF4XCIsXG4gICAgICAgICAgICBzZWN1cmU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcImRldmVsb3BtZW50XCIsXG4gICAgICAgICAgICBwYXRoOiBcIi9cIixcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucGF0aCAhPT0gdW5kZWZpbmVkID8ge1xuICAgICAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aFxuICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9KSxcbiAgICAgICAgc2VyaWFsaXplKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBLCBcIlwiLCB7XG4gICAgICAgICAgICAvLyBUbyBkZWxldGUgYSBjb29raWUsIHNldCBgZXhwaXJlc2AgdG8gYSBkYXRlIGluIHRoZSBwYXN0OlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEuMVxuICAgICAgICAgICAgLy8gYE1heC1BZ2U6IDBgIGlzIG5vdCB2YWxpZCwgdGh1cyBpZ25vcmVkLCBhbmQgdGhlIGNvb2tpZSBpcyBwZXJzaXN0ZWQuXG4gICAgICAgICAgICBleHBpcmVzOiBuZXcgRGF0ZSgwKSxcbiAgICAgICAgICAgIGh0dHBPbmx5OiB0cnVlLFxuICAgICAgICAgICAgc2FtZVNpdGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcImRldmVsb3BtZW50XCIgPyBcIm5vbmVcIiA6IFwibGF4XCIsXG4gICAgICAgICAgICBzZWN1cmU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcImRldmVsb3BtZW50XCIsXG4gICAgICAgICAgICBwYXRoOiBcIi9cIixcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucGF0aCAhPT0gdW5kZWZpbmVkID8ge1xuICAgICAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aFxuICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9KVxuICAgIF0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXMsIFNZTUJPTF9DTEVBUkVEX0NPT0tJRVMsIHtcbiAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlcztcbn1cbi8qKlxuICogQ3VzdG9tIGVycm9yIGNsYXNzXG4gKi8gZXhwb3J0IGNsYXNzIEFwaUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHN0YXR1c0NvZGUsIG1lc3NhZ2Upe1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICB9XG59XG4vKipcbiAqIFNlbmRzIGVycm9yIGluIGByZXNwb25zZWBcbiAqIEBwYXJhbSByZXMgcmVzcG9uc2Ugb2JqZWN0XG4gKiBAcGFyYW0gc3RhdHVzQ29kZSBvZiByZXNwb25zZVxuICogQHBhcmFtIG1lc3NhZ2Ugb2YgcmVzcG9uc2VcbiAqLyBleHBvcnQgZnVuY3Rpb24gc2VuZEVycm9yKHJlcywgc3RhdHVzQ29kZSwgbWVzc2FnZSkge1xuICAgIHJlcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICByZXMuc3RhdHVzTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgcmVzLmVuZChtZXNzYWdlKTtcbn1cbi8qKlxuICogRXhlY3V0ZSBnZXR0ZXIgZnVuY3Rpb24gb25seSBpZiBpdHMgbmVlZGVkXG4gKiBAcGFyYW0gTGF6eVByb3BzIGByZXFgIGFuZCBgcGFyYW1zYCBmb3IgbGF6eVByb3BcbiAqIEBwYXJhbSBwcm9wIG5hbWUgb2YgcHJvcGVydHlcbiAqIEBwYXJhbSBnZXR0ZXIgZnVuY3Rpb24gdG8gZ2V0IGRhdGFcbiAqLyBleHBvcnQgZnVuY3Rpb24gc2V0TGF6eVByb3AoeyByZXEgfSwgcHJvcCwgZ2V0dGVyKSB7XG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgfTtcbiAgICBjb25zdCBvcHRzUmVzZXQgPSB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCBwcm9wLCB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIGdldDogKCk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0dGVyKCk7XG4gICAgICAgICAgICAvLyB3ZSBzZXQgdGhlIHByb3BlcnR5IG9uIHRoZSBvYmplY3QgdG8gYXZvaWQgcmVjYWxjdWxhdGluZyBpdFxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIC4uLm9wdHNSZXNldCxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogKHZhbHVlKT0+e1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIC4uLm9wdHNSZXNldCxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIkhlYWRlcnNBZGFwdGVyIiwiUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSIiwiUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSIiwic2VuZFN0YXR1c0NvZGUiLCJyZXMiLCJzdGF0dXNDb2RlIiwicmVkaXJlY3QiLCJzdGF0dXNPclVybCIsInVybCIsIkVycm9yIiwid3JpdGVIZWFkIiwiTG9jYXRpb24iLCJ3cml0ZSIsImVuZCIsImNoZWNrSXNPbkRlbWFuZFJldmFsaWRhdGUiLCJyZXEiLCJwcmV2aWV3UHJvcHMiLCJoZWFkZXJzIiwiZnJvbSIsInByZXZpZXdNb2RlSWQiLCJnZXQiLCJpc09uRGVtYW5kUmV2YWxpZGF0ZSIsInJldmFsaWRhdGVPbmx5R2VuZXJhdGVkIiwiaGFzIiwiQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUyIsIkNPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBIiwiUkVTUE9OU0VfTElNSVRfREVGQVVMVCIsIlNZTUJPTF9QUkVWSUVXX0RBVEEiLCJTeW1ib2wiLCJTWU1CT0xfQ0xFQVJFRF9DT09LSUVTIiwiY2xlYXJQcmV2aWV3RGF0YSIsIm9wdGlvbnMiLCJzZXJpYWxpemUiLCJyZXF1aXJlIiwicHJldmlvdXMiLCJnZXRIZWFkZXIiLCJzZXRIZWFkZXIiLCJBcnJheSIsImlzQXJyYXkiLCJleHBpcmVzIiwiRGF0ZSIsImh0dHBPbmx5Iiwic2FtZVNpdGUiLCJwcm9jZXNzIiwic2VjdXJlIiwicGF0aCIsInVuZGVmaW5lZCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiQXBpRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJzZW5kRXJyb3IiLCJzdGF0dXNNZXNzYWdlIiwic2V0TGF6eVByb3AiLCJwcm9wIiwiZ2V0dGVyIiwib3B0cyIsImNvbmZpZ3VyYWJsZSIsIm9wdHNSZXNldCIsIndyaXRhYmxlIiwic2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/api-utils/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/api-utils/web.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/api-utils/web.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ byteLength: () => (/* binding */ byteLength)\n/* harmony export */ });\n// Buffer.byteLength polyfill in the Edge runtime, with only utf8 strings\n// supported at the moment.\nfunction byteLength(payload) {\n return new TextEncoder().encode(payload).buffer.byteLength;\n} //# sourceMappingURL=web.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwaS11dGlscy93ZWIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlFQUF5RTtBQUN6RSwyQkFBMkI7QUFDcEIsU0FBU0EsV0FBV0MsT0FBTztJQUM5QixPQUFPLElBQUlDLGNBQWNDLE1BQU0sQ0FBQ0YsU0FBU0csTUFBTSxDQUFDSixVQUFVO0FBQzlELEVBRUEsK0JBQStCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBpLXV0aWxzL3dlYi5qcz8xOGZiIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEJ1ZmZlci5ieXRlTGVuZ3RoIHBvbHlmaWxsIGluIHRoZSBFZGdlIHJ1bnRpbWUsIHdpdGggb25seSB1dGY4IHN0cmluZ3Ncbi8vIHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50LlxuZXhwb3J0IGZ1bmN0aW9uIGJ5dGVMZW5ndGgocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocGF5bG9hZCkuYnVmZmVyLmJ5dGVMZW5ndGg7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXdlYi5qcy5tYXAiXSwibmFtZXMiOlsiYnl0ZUxlbmd0aCIsInBheWxvYWQiLCJUZXh0RW5jb2RlciIsImVuY29kZSIsImJ1ZmZlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/api-utils/web.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/action-encryption-utils.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/action-encryption-utils.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrayBufferToString: () => (/* binding */ arrayBufferToString),\n/* harmony export */ decrypt: () => (/* binding */ decrypt),\n/* harmony export */ encrypt: () => (/* binding */ encrypt),\n/* harmony export */ generateRandomActionKeyRaw: () => (/* binding */ generateRandomActionKeyRaw),\n/* harmony export */ getActionEncryptionKey: () => (/* binding */ getActionEncryptionKey),\n/* harmony export */ getClientReferenceManifestSingleton: () => (/* binding */ getClientReferenceManifestSingleton),\n/* harmony export */ getServerModuleMap: () => (/* binding */ getServerModuleMap),\n/* harmony export */ setReferenceManifestsSingleton: () => (/* binding */ setReferenceManifestsSingleton),\n/* harmony export */ stringToUint8Array: () => (/* binding */ stringToUint8Array)\n/* harmony export */ });\n// Keep the key in memory as it should never change during the lifetime of the server in\n// both development and production.\nlet __next_loaded_action_key;\nlet __next_internal_development_raw_action_key;\nfunction arrayBufferToString(buffer) {\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n // @anonrig: V8 has a limit of 65535 arguments in a function.\n // For len < 65535, this is faster.\n // https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623\n if (len < 65535) {\n return String.fromCharCode.apply(null, bytes);\n }\n let binary = \"\";\n for(let i = 0; i < len; i++){\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\nfunction stringToUint8Array(binary) {\n const len = binary.length;\n const arr = new Uint8Array(len);\n for(let i = 0; i < len; i++){\n arr[i] = binary.charCodeAt(i);\n }\n return arr;\n}\nfunction encrypt(key, iv, data) {\n return crypto.subtle.encrypt({\n name: \"AES-GCM\",\n iv\n }, key, data);\n}\nfunction decrypt(key, iv, data) {\n return crypto.subtle.decrypt({\n name: \"AES-GCM\",\n iv\n }, key, data);\n}\nasync function generateRandomActionKeyRaw(dev) {\n // For development, we just keep one key in memory for all actions.\n // This makes things faster.\n if (dev) {\n if (typeof __next_internal_development_raw_action_key !== \"undefined\") {\n return __next_internal_development_raw_action_key;\n }\n }\n const key = await crypto.subtle.generateKey({\n name: \"AES-GCM\",\n length: 256\n }, true, [\n \"encrypt\",\n \"decrypt\"\n ]);\n const exported = await crypto.subtle.exportKey(\"raw\", key);\n const b64 = btoa(arrayBufferToString(exported));\n __next_loaded_action_key = key;\n if (dev) {\n __next_internal_development_raw_action_key = b64;\n }\n return b64;\n}\n// This is a global singleton that is used to encode/decode the action bound args from\n// the closure. This can't be using a AsyncLocalStorage as it might happen on the module\n// level. Since the client reference manifest won't be mutated, let's use a global singleton\n// to keep it.\nconst SERVER_ACTION_MANIFESTS_SINGLETON = Symbol.for(\"next.server.action-manifests\");\nfunction setReferenceManifestsSingleton({ clientReferenceManifest, serverActionsManifest, serverModuleMap }) {\n // @ts-ignore\n globalThis[SERVER_ACTION_MANIFESTS_SINGLETON] = {\n clientReferenceManifest,\n serverActionsManifest,\n serverModuleMap\n };\n}\nfunction getServerModuleMap() {\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw new Error(\"Missing manifest for Server Actions. This is a bug in Next.js\");\n }\n return serverActionsManifestSingleton.serverModuleMap;\n}\nfunction getClientReferenceManifestSingleton() {\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw new Error(\"Missing manifest for Server Actions. This is a bug in Next.js\");\n }\n return serverActionsManifestSingleton.clientReferenceManifest;\n}\nasync function getActionEncryptionKey() {\n if (__next_loaded_action_key) {\n return __next_loaded_action_key;\n }\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw new Error(\"Missing manifest for Server Actions. This is a bug in Next.js\");\n }\n const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifestSingleton.serverActionsManifest.encryptionKey;\n if (rawKey === undefined) {\n throw new Error(\"Missing encryption key for Server Actions\");\n }\n __next_loaded_action_key = await crypto.subtle.importKey(\"raw\", stringToUint8Array(atob(rawKey)), \"AES-GCM\", true, [\n \"encrypt\",\n \"decrypt\"\n ]);\n return __next_loaded_action_key;\n} //# sourceMappingURL=action-encryption-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvYWN0aW9uLWVuY3J5cHRpb24tdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0ZBQXdGO0FBQ3hGLG1DQUFtQztBQUNuQyxJQUFJQTtBQUNKLElBQUlDO0FBQ0csU0FBU0Msb0JBQW9CQyxNQUFNO0lBQ3RDLE1BQU1DLFFBQVEsSUFBSUMsV0FBV0Y7SUFDN0IsTUFBTUcsTUFBTUYsTUFBTUcsVUFBVTtJQUM1Qiw2REFBNkQ7SUFDN0QsbUNBQW1DO0lBQ25DLDRFQUE0RTtJQUM1RSxJQUFJRCxNQUFNLE9BQU87UUFDYixPQUFPRSxPQUFPQyxZQUFZLENBQUNDLEtBQUssQ0FBQyxNQUFNTjtJQUMzQztJQUNBLElBQUlPLFNBQVM7SUFDYixJQUFJLElBQUlDLElBQUksR0FBR0EsSUFBSU4sS0FBS00sSUFBSTtRQUN4QkQsVUFBVUgsT0FBT0MsWUFBWSxDQUFDTCxLQUFLLENBQUNRLEVBQUU7SUFDMUM7SUFDQSxPQUFPRDtBQUNYO0FBQ08sU0FBU0UsbUJBQW1CRixNQUFNO0lBQ3JDLE1BQU1MLE1BQU1LLE9BQU9HLE1BQU07SUFDekIsTUFBTUMsTUFBTSxJQUFJVixXQUFXQztJQUMzQixJQUFJLElBQUlNLElBQUksR0FBR0EsSUFBSU4sS0FBS00sSUFBSTtRQUN4QkcsR0FBRyxDQUFDSCxFQUFFLEdBQUdELE9BQU9LLFVBQVUsQ0FBQ0o7SUFDL0I7SUFDQSxPQUFPRztBQUNYO0FBQ08sU0FBU0UsUUFBUUMsR0FBRyxFQUFFQyxFQUFFLEVBQUVDLElBQUk7SUFDakMsT0FBT0MsT0FBT0MsTUFBTSxDQUFDTCxPQUFPLENBQUM7UUFDekJNLE1BQU07UUFDTko7SUFDSixHQUFHRCxLQUFLRTtBQUNaO0FBQ08sU0FBU0ksUUFBUU4sR0FBRyxFQUFFQyxFQUFFLEVBQUVDLElBQUk7SUFDakMsT0FBT0MsT0FBT0MsTUFBTSxDQUFDRSxPQUFPLENBQUM7UUFDekJELE1BQU07UUFDTko7SUFDSixHQUFHRCxLQUFLRTtBQUNaO0FBQ08sZUFBZUssMkJBQTJCQyxHQUFHO0lBQ2hELG1FQUFtRTtJQUNuRSw0QkFBNEI7SUFDNUIsSUFBSUEsS0FBSztRQUNMLElBQUksT0FBT3pCLCtDQUErQyxhQUFhO1lBQ25FLE9BQU9BO1FBQ1g7SUFDSjtJQUNBLE1BQU1pQixNQUFNLE1BQU1HLE9BQU9DLE1BQU0sQ0FBQ0ssV0FBVyxDQUFDO1FBQ3hDSixNQUFNO1FBQ05ULFFBQVE7SUFDWixHQUFHLE1BQU07UUFDTDtRQUNBO0tBQ0g7SUFDRCxNQUFNYyxXQUFXLE1BQU1QLE9BQU9DLE1BQU0sQ0FBQ08sU0FBUyxDQUFDLE9BQU9YO0lBQ3RELE1BQU1ZLE1BQU1DLEtBQUs3QixvQkFBb0IwQjtJQUNyQzVCLDJCQUEyQmtCO0lBQzNCLElBQUlRLEtBQUs7UUFDTHpCLDZDQUE2QzZCO0lBQ2pEO0lBQ0EsT0FBT0E7QUFDWDtBQUNBLHNGQUFzRjtBQUN0Rix3RkFBd0Y7QUFDeEYsNEZBQTRGO0FBQzVGLGNBQWM7QUFDZCxNQUFNRSxvQ0FBb0NDLE9BQU9DLEdBQUcsQ0FBQztBQUM5QyxTQUFTQywrQkFBK0IsRUFBRUMsdUJBQXVCLEVBQUVDLHFCQUFxQixFQUFFQyxlQUFlLEVBQUU7SUFDOUcsYUFBYTtJQUNiQyxVQUFVLENBQUNQLGtDQUFrQyxHQUFHO1FBQzVDSTtRQUNBQztRQUNBQztJQUNKO0FBQ0o7QUFDTyxTQUFTRTtJQUNaLE1BQU1DLGlDQUFpQ0YsVUFBVSxDQUFDUCxrQ0FBa0M7SUFDcEYsSUFBSSxDQUFDUyxnQ0FBZ0M7UUFDakMsTUFBTSxJQUFJQyxNQUFNO0lBQ3BCO0lBQ0EsT0FBT0QsK0JBQStCSCxlQUFlO0FBQ3pEO0FBQ08sU0FBU0s7SUFDWixNQUFNRixpQ0FBaUNGLFVBQVUsQ0FBQ1Asa0NBQWtDO0lBQ3BGLElBQUksQ0FBQ1MsZ0NBQWdDO1FBQ2pDLE1BQU0sSUFBSUMsTUFBTTtJQUNwQjtJQUNBLE9BQU9ELCtCQUErQkwsdUJBQXVCO0FBQ2pFO0FBQ08sZUFBZVE7SUFDbEIsSUFBSTVDLDBCQUEwQjtRQUMxQixPQUFPQTtJQUNYO0lBQ0EsTUFBTXlDLGlDQUFpQ0YsVUFBVSxDQUFDUCxrQ0FBa0M7SUFDcEYsSUFBSSxDQUFDUyxnQ0FBZ0M7UUFDakMsTUFBTSxJQUFJQyxNQUFNO0lBQ3BCO0lBQ0EsTUFBTUcsU0FBU0MsUUFBUUMsR0FBRyxDQUFDQyxrQ0FBa0MsSUFBSVAsK0JBQStCSixxQkFBcUIsQ0FBQ1ksYUFBYTtJQUNuSSxJQUFJSixXQUFXSyxXQUFXO1FBQ3RCLE1BQU0sSUFBSVIsTUFBTTtJQUNwQjtJQUNBMUMsMkJBQTJCLE1BQU1xQixPQUFPQyxNQUFNLENBQUM2QixTQUFTLENBQUMsT0FBT3RDLG1CQUFtQnVDLEtBQUtQLFVBQVUsV0FBVyxNQUFNO1FBQy9HO1FBQ0E7S0FDSDtJQUNELE9BQU83QztBQUNYLEVBRUEsbURBQW1EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9hY3Rpb24tZW5jcnlwdGlvbi11dGlscy5qcz9iNGNjIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEtlZXAgdGhlIGtleSBpbiBtZW1vcnkgYXMgaXQgc2hvdWxkIG5ldmVyIGNoYW5nZSBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIHRoZSBzZXJ2ZXIgaW5cbi8vIGJvdGggZGV2ZWxvcG1lbnQgYW5kIHByb2R1Y3Rpb24uXG5sZXQgX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5O1xubGV0IF9fbmV4dF9pbnRlcm5hbF9kZXZlbG9wbWVudF9yYXdfYWN0aW9uX2tleTtcbmV4cG9ydCBmdW5jdGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikge1xuICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcbiAgICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoO1xuICAgIC8vIEBhbm9ucmlnOiBWOCBoYXMgYSBsaW1pdCBvZiA2NTUzNSBhcmd1bWVudHMgaW4gYSBmdW5jdGlvbi5cbiAgICAvLyBGb3IgbGVuIDwgNjU1MzUsIHRoaXMgaXMgZmFzdGVyLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzU2Mzc3I3B1bGxyZXF1ZXN0cmV2aWV3LTE2NTYxODE2MjNcbiAgICBpZiAobGVuIDwgNjU1MzUpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgYnl0ZXMpO1xuICAgIH1cbiAgICBsZXQgYmluYXJ5ID0gXCJcIjtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSk7XG4gICAgfVxuICAgIHJldHVybiBiaW5hcnk7XG59XG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9VaW50OEFycmF5KGJpbmFyeSkge1xuICAgIGNvbnN0IGxlbiA9IGJpbmFyeS5sZW5ndGg7XG4gICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICBhcnJbaV0gPSBiaW5hcnkuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBlbmNyeXB0KGtleSwgaXYsIGRhdGEpIHtcbiAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtcbiAgICAgICAgbmFtZTogXCJBRVMtR0NNXCIsXG4gICAgICAgIGl2XG4gICAgfSwga2V5LCBkYXRhKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0KGtleSwgaXYsIGRhdGEpIHtcbiAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZWNyeXB0KHtcbiAgICAgICAgbmFtZTogXCJBRVMtR0NNXCIsXG4gICAgICAgIGl2XG4gICAgfSwga2V5LCBkYXRhKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbUFjdGlvbktleVJhdyhkZXYpIHtcbiAgICAvLyBGb3IgZGV2ZWxvcG1lbnQsIHdlIGp1c3Qga2VlcCBvbmUga2V5IGluIG1lbW9yeSBmb3IgYWxsIGFjdGlvbnMuXG4gICAgLy8gVGhpcyBtYWtlcyB0aGluZ3MgZmFzdGVyLlxuICAgIGlmIChkZXYpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBfX25leHRfaW50ZXJuYWxfZGV2ZWxvcG1lbnRfcmF3X2FjdGlvbl9rZXkgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBfX25leHRfaW50ZXJuYWxfZGV2ZWxvcG1lbnRfcmF3X2FjdGlvbl9rZXk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7XG4gICAgICAgIG5hbWU6IFwiQUVTLUdDTVwiLFxuICAgICAgICBsZW5ndGg6IDI1NlxuICAgIH0sIHRydWUsIFtcbiAgICAgICAgXCJlbmNyeXB0XCIsXG4gICAgICAgIFwiZGVjcnlwdFwiXG4gICAgXSk7XG4gICAgY29uc3QgZXhwb3J0ZWQgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmV4cG9ydEtleShcInJhd1wiLCBrZXkpO1xuICAgIGNvbnN0IGI2NCA9IGJ0b2EoYXJyYXlCdWZmZXJUb1N0cmluZyhleHBvcnRlZCkpO1xuICAgIF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleSA9IGtleTtcbiAgICBpZiAoZGV2KSB7XG4gICAgICAgIF9fbmV4dF9pbnRlcm5hbF9kZXZlbG9wbWVudF9yYXdfYWN0aW9uX2tleSA9IGI2NDtcbiAgICB9XG4gICAgcmV0dXJuIGI2NDtcbn1cbi8vIFRoaXMgaXMgYSBnbG9iYWwgc2luZ2xldG9uIHRoYXQgaXMgdXNlZCB0byBlbmNvZGUvZGVjb2RlIHRoZSBhY3Rpb24gYm91bmQgYXJncyBmcm9tXG4vLyB0aGUgY2xvc3VyZS4gVGhpcyBjYW4ndCBiZSB1c2luZyBhIEFzeW5jTG9jYWxTdG9yYWdlIGFzIGl0IG1pZ2h0IGhhcHBlbiBvbiB0aGUgbW9kdWxlXG4vLyBsZXZlbC4gU2luY2UgdGhlIGNsaWVudCByZWZlcmVuY2UgbWFuaWZlc3Qgd29uJ3QgYmUgbXV0YXRlZCwgbGV0J3MgdXNlIGEgZ2xvYmFsIHNpbmdsZXRvblxuLy8gdG8ga2VlcCBpdC5cbmNvbnN0IFNFUlZFUl9BQ1RJT05fTUFOSUZFU1RTX1NJTkdMRVRPTiA9IFN5bWJvbC5mb3IoXCJuZXh0LnNlcnZlci5hY3Rpb24tbWFuaWZlc3RzXCIpO1xuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbih7IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LCBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsIHNlcnZlck1vZHVsZU1hcCB9KSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdsb2JhbFRoaXNbU0VSVkVSX0FDVElPTl9NQU5JRkVTVFNfU0lOR0xFVE9OXSA9IHtcbiAgICAgICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gICAgICAgIHNlcnZlckFjdGlvbnNNYW5pZmVzdCxcbiAgICAgICAgc2VydmVyTW9kdWxlTWFwXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2ZXJNb2R1bGVNYXAoKSB7XG4gICAgY29uc3Qgc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uID0gZ2xvYmFsVGhpc1tTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT05dO1xuICAgIGlmICghc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgbWFuaWZlc3QgZm9yIFNlcnZlciBBY3Rpb25zLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanNcIik7XG4gICAgfVxuICAgIHJldHVybiBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24uc2VydmVyTW9kdWxlTWFwO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaWVudFJlZmVyZW5jZU1hbmlmZXN0U2luZ2xldG9uKCkge1xuICAgIGNvbnN0IHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbiA9IGdsb2JhbFRoaXNbU0VSVkVSX0FDVElPTl9NQU5JRkVTVFNfU0lOR0xFVE9OXTtcbiAgICBpZiAoIXNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIG1hbmlmZXN0IGZvciBTZXJ2ZXIgQWN0aW9ucy4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uLmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0O1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFjdGlvbkVuY3J5cHRpb25LZXkoKSB7XG4gICAgaWYgKF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleSkge1xuICAgICAgICByZXR1cm4gX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5O1xuICAgIH1cbiAgICBjb25zdCBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24gPSBnbG9iYWxUaGlzW1NFUlZFUl9BQ1RJT05fTUFOSUZFU1RTX1NJTkdMRVRPTl07XG4gICAgaWYgKCFzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBtYW5pZmVzdCBmb3IgU2VydmVyIEFjdGlvbnMuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qc1wiKTtcbiAgICB9XG4gICAgY29uc3QgcmF3S2V5ID0gcHJvY2Vzcy5lbnYuTkVYVF9TRVJWRVJfQUNUSU9OU19FTkNSWVBUSU9OX0tFWSB8fCBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24uc2VydmVyQWN0aW9uc01hbmlmZXN0LmVuY3J5cHRpb25LZXk7XG4gICAgaWYgKHJhd0tleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgZW5jcnlwdGlvbiBrZXkgZm9yIFNlcnZlciBBY3Rpb25zXCIpO1xuICAgIH1cbiAgICBfX25leHRfbG9hZGVkX2FjdGlvbl9rZXkgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleShcInJhd1wiLCBzdHJpbmdUb1VpbnQ4QXJyYXkoYXRvYihyYXdLZXkpKSwgXCJBRVMtR0NNXCIsIHRydWUsIFtcbiAgICAgICAgXCJlbmNyeXB0XCIsXG4gICAgICAgIFwiZGVjcnlwdFwiXG4gICAgXSk7XG4gICAgcmV0dXJuIF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWN0aW9uLWVuY3J5cHRpb24tdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbIl9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleSIsIl9fbmV4dF9pbnRlcm5hbF9kZXZlbG9wbWVudF9yYXdfYWN0aW9uX2tleSIsImFycmF5QnVmZmVyVG9TdHJpbmciLCJidWZmZXIiLCJieXRlcyIsIlVpbnQ4QXJyYXkiLCJsZW4iLCJieXRlTGVuZ3RoIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiYXBwbHkiLCJiaW5hcnkiLCJpIiwic3RyaW5nVG9VaW50OEFycmF5IiwibGVuZ3RoIiwiYXJyIiwiY2hhckNvZGVBdCIsImVuY3J5cHQiLCJrZXkiLCJpdiIsImRhdGEiLCJjcnlwdG8iLCJzdWJ0bGUiLCJuYW1lIiwiZGVjcnlwdCIsImdlbmVyYXRlUmFuZG9tQWN0aW9uS2V5UmF3IiwiZGV2IiwiZ2VuZXJhdGVLZXkiLCJleHBvcnRlZCIsImV4cG9ydEtleSIsImI2NCIsImJ0b2EiLCJTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT04iLCJTeW1ib2wiLCJmb3IiLCJzZXRSZWZlcmVuY2VNYW5pZmVzdHNTaW5nbGV0b24iLCJjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCIsInNlcnZlckFjdGlvbnNNYW5pZmVzdCIsInNlcnZlck1vZHVsZU1hcCIsImdsb2JhbFRoaXMiLCJnZXRTZXJ2ZXJNb2R1bGVNYXAiLCJzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24iLCJFcnJvciIsImdldENsaWVudFJlZmVyZW5jZU1hbmlmZXN0U2luZ2xldG9uIiwiZ2V0QWN0aW9uRW5jcnlwdGlvbktleSIsInJhd0tleSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1NFUlZFUl9BQ1RJT05TX0VOQ1JZUFRJT05fS0VZIiwiZW5jcnlwdGlvbktleSIsInVuZGVmaW5lZCIsImltcG9ydEtleSIsImF0b2IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/action-encryption-utils.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/action-handler.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/action-handler.js ***!
- \****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleAction: () => (/* binding */ handleAction)\n/* harmony export */ });\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _client_components_not_found__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../client/components/not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n/* harmony import */ var _client_components_redirect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../client/components/redirect */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js\");\n/* harmony import */ var _render_result__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render-result */ \"(ssr)/../../node_modules/next/dist/esm/server/render-result.js\");\n/* harmony import */ var _flight_render_result__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flight-render-result */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/flight-render-result.js\");\n/* harmony import */ var _lib_server_ipc_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../lib/server-ipc/utils */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/server-ipc/utils.js\");\n/* harmony import */ var _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../web/spec-extension/adapters/request-cookies */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../lib/server-action-request-meta */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/server-action-request-meta.js\");\n/* harmony import */ var _csrf_protection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./csrf-protection */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/csrf-protection.js\");\n/* harmony import */ var _build_output_log__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../build/output/log */ \"(ssr)/../../node_modules/next/dist/esm/build/output/log.js\");\n\n\n\n\n\n\n\n\n\n\n\nfunction formDataFromSearchQueryString(query) {\n const searchParams = new URLSearchParams(query);\n const formData = new FormData();\n for (const [key, value] of searchParams){\n formData.append(key, value);\n }\n return formData;\n}\nfunction nodeHeadersToRecord(headers) {\n const record = {};\n for (const [key, value] of Object.entries(headers)){\n if (value !== undefined) {\n record[key] = Array.isArray(value) ? value.join(\", \") : `${value}`;\n }\n }\n return record;\n}\nfunction getForwardedHeaders(req, res) {\n // Get request headers and cookies\n const requestHeaders = req.headers;\n const requestCookies = requestHeaders[\"cookie\"] ?? \"\";\n // Get response headers and Set-Cookie header\n const responseHeaders = res.getHeaders();\n const rawSetCookies = responseHeaders[\"set-cookie\"];\n const setCookies = (Array.isArray(rawSetCookies) ? rawSetCookies : [\n rawSetCookies\n ]).map((setCookie)=>{\n // remove the suffixes like 'HttpOnly' and 'SameSite'\n const [cookie] = `${setCookie}`.split(\";\", 1);\n return cookie;\n });\n // Merge request and response headers\n const mergedHeaders = (0,_lib_server_ipc_utils__WEBPACK_IMPORTED_MODULE_5__.filterReqHeaders)({\n ...nodeHeadersToRecord(requestHeaders),\n ...nodeHeadersToRecord(responseHeaders)\n }, _lib_server_ipc_utils__WEBPACK_IMPORTED_MODULE_5__.actionsForbiddenHeaders);\n // Merge cookies\n const mergedCookies = requestCookies.split(\"; \").concat(setCookies).join(\"; \");\n // Update the 'cookie' header with the merged cookies\n mergedHeaders[\"cookie\"] = mergedCookies;\n // Remove headers that should not be forwarded\n delete mergedHeaders[\"transfer-encoding\"];\n return new Headers(mergedHeaders);\n}\nasync function addRevalidationHeader(res, { staticGenerationStore, requestStore }) {\n var _staticGenerationStore_revalidatedTags;\n await Promise.all(Object.values(staticGenerationStore.pendingRevalidates || []));\n // If a tag was revalidated, the client router needs to invalidate all the\n // client router cache as they may be stale. And if a path was revalidated, the\n // client needs to invalidate all subtrees below that path.\n // To keep the header size small, we use a tuple of\n // [[revalidatedPaths], isTagRevalidated ? 1 : 0, isCookieRevalidated ? 1 : 0]\n // instead of a JSON object.\n // TODO-APP: Currently the prefetch cache doesn't have subtree information,\n // so we need to invalidate the entire cache if a path was revalidated.\n // TODO-APP: Currently paths are treated as tags, so the second element of the tuple\n // is always empty.\n const isTagRevalidated = ((_staticGenerationStore_revalidatedTags = staticGenerationStore.revalidatedTags) == null ? void 0 : _staticGenerationStore_revalidatedTags.length) ? 1 : 0;\n const isCookieRevalidated = (0,_web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_6__.getModifiedCookieValues)(requestStore.mutableCookies).length ? 1 : 0;\n res.setHeader(\"x-action-revalidated\", JSON.stringify([\n [],\n isTagRevalidated,\n isCookieRevalidated\n ]));\n}\nasync function createRedirectRenderResult(req, res, redirectUrl, basePath, staticGenerationStore) {\n res.setHeader(\"x-action-redirect\", redirectUrl);\n // if we're redirecting to a relative path, we'll try to stream the response\n if (redirectUrl.startsWith(\"/\")) {\n var _staticGenerationStore_incrementalCache;\n const forwardedHeaders = getForwardedHeaders(req, res);\n forwardedHeaders.set(_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.RSC_HEADER, \"1\");\n const host = req.headers[\"host\"];\n const proto = ((_staticGenerationStore_incrementalCache = staticGenerationStore.incrementalCache) == null ? void 0 : _staticGenerationStore_incrementalCache.requestProtocol) || \"https\";\n const fetchUrl = new URL(`${proto}://${host}${basePath}${redirectUrl}`);\n if (staticGenerationStore.revalidatedTags) {\n var _staticGenerationStore_incrementalCache_prerenderManifest_preview, _staticGenerationStore_incrementalCache_prerenderManifest, _staticGenerationStore_incrementalCache1;\n forwardedHeaders.set(_lib_constants__WEBPACK_IMPORTED_MODULE_7__.NEXT_CACHE_REVALIDATED_TAGS_HEADER, staticGenerationStore.revalidatedTags.join(\",\"));\n forwardedHeaders.set(_lib_constants__WEBPACK_IMPORTED_MODULE_7__.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER, ((_staticGenerationStore_incrementalCache1 = staticGenerationStore.incrementalCache) == null ? void 0 : (_staticGenerationStore_incrementalCache_prerenderManifest = _staticGenerationStore_incrementalCache1.prerenderManifest) == null ? void 0 : (_staticGenerationStore_incrementalCache_prerenderManifest_preview = _staticGenerationStore_incrementalCache_prerenderManifest.preview) == null ? void 0 : _staticGenerationStore_incrementalCache_prerenderManifest_preview.previewModeId) || \"\");\n }\n // Ensures that when the path was revalidated we don't return a partial response on redirects\n // if (staticGenerationStore.pathWasRevalidated) {\n forwardedHeaders.delete(\"next-router-state-tree\");\n // }\n try {\n const headResponse = await fetch(fetchUrl, {\n method: \"HEAD\",\n headers: forwardedHeaders,\n next: {\n // @ts-ignore\n internal: 1\n }\n });\n if (headResponse.headers.get(\"content-type\") === _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.RSC_CONTENT_TYPE_HEADER) {\n const response = await fetch(fetchUrl, {\n method: \"GET\",\n headers: forwardedHeaders,\n next: {\n // @ts-ignore\n internal: 1\n }\n });\n // copy the headers from the redirect response to the response we're sending\n for (const [key, value] of response.headers){\n if (!_lib_server_ipc_utils__WEBPACK_IMPORTED_MODULE_5__.actionsForbiddenHeaders.includes(key)) {\n res.setHeader(key, value);\n }\n }\n return new _flight_render_result__WEBPACK_IMPORTED_MODULE_4__.FlightRenderResult(response.body);\n }\n } catch (err) {\n // we couldn't stream the redirect response, so we'll just do a normal redirect\n console.error(`failed to get redirect response`, err);\n }\n }\n return _render_result__WEBPACK_IMPORTED_MODULE_3__[\"default\"].fromStatic(\"{}\");\n}\nvar HostType;\n(function(HostType) {\n HostType[\"XForwardedHost\"] = \"x-forwarded-host\";\n HostType[\"Host\"] = \"host\";\n})(HostType || (HostType = {}));\n/**\n * Ensures the value of the header can't create long logs.\n */ function limitUntrustedHeaderValueForLogs(value) {\n return value.length > 100 ? value.slice(0, 100) + \"...\" : value;\n}\nasync function handleAction({ req, res, ComponentMod, serverModuleMap, generateFlight, staticGenerationStore, requestStore, serverActions, ctx }) {\n const contentType = req.headers[\"content-type\"];\n const { actionId, isURLEncodedAction, isMultipartAction, isFetchAction } = (0,_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_8__.getServerActionRequestMetadata)(req);\n // If it's not a Server Action, skip handling.\n if (!(0,_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_8__.getIsServerAction)(req)) {\n return;\n }\n if (staticGenerationStore.isStaticGeneration) {\n throw new Error(\"Invariant: server actions can't be handled during static rendering\");\n }\n // When running actions the default is no-store, you can still `cache: 'force-cache'`\n staticGenerationStore.fetchCache = \"default-no-store\";\n const originDomain = typeof req.headers[\"origin\"] === \"string\" ? new URL(req.headers[\"origin\"]).host : undefined;\n const forwardedHostHeader = req.headers[\"x-forwarded-host\"];\n const hostHeader = req.headers[\"host\"];\n const host = forwardedHostHeader ? {\n type: \"x-forwarded-host\",\n value: forwardedHostHeader\n } : hostHeader ? {\n type: \"host\",\n value: hostHeader\n } : undefined;\n let warning = undefined;\n function warnBadServerActionRequest() {\n if (warning) {\n (0,_build_output_log__WEBPACK_IMPORTED_MODULE_10__.warn)(warning);\n }\n }\n // This is to prevent CSRF attacks. If `x-forwarded-host` is set, we need to\n // ensure that the request is coming from the same host.\n if (!originDomain) {\n // This might be an old browser that doesn't send `host` header. We ignore\n // this case.\n warning = \"Missing `origin` header from a forwarded Server Actions request.\";\n } else if (!host || originDomain !== host.value) {\n // If the customer sets a list of allowed origins, we'll allow the request.\n // These are considered safe but might be different from forwarded host set\n // by the infra (i.e. reverse proxies).\n if ((0,_csrf_protection__WEBPACK_IMPORTED_MODULE_9__.isCsrfOriginAllowed)(originDomain, serverActions == null ? void 0 : serverActions.allowedOrigins)) {\n // Ignore it\n } else {\n if (host) {\n // This seems to be an CSRF attack. We should not proceed the action.\n console.error(`\\`${host.type}\\` header with value \\`${limitUntrustedHeaderValueForLogs(host.value)}\\` does not match \\`origin\\` header with value \\`${limitUntrustedHeaderValueForLogs(originDomain)}\\` from a forwarded Server Actions request. Aborting the action.`);\n } else {\n // This is an attack. We should not proceed the action.\n console.error(`\\`x-forwarded-host\\` or \\`host\\` headers are not provided. One of these is needed to compare the \\`origin\\` header from a forwarded Server Actions request. Aborting the action.`);\n }\n const error = new Error(\"Invalid Server Actions request.\");\n if (isFetchAction) {\n res.statusCode = 500;\n await Promise.all(Object.values(staticGenerationStore.pendingRevalidates || []));\n const promise = Promise.reject(error);\n try {\n // we need to await the promise to trigger the rejection early\n // so that it's already handled by the time we call\n // the RSC runtime. Otherwise, it will throw an unhandled\n // promise rejection error in the renderer.\n await promise;\n } catch {\n // swallow error, it's gonna be handled on the client\n }\n return {\n type: \"done\",\n result: await generateFlight(ctx, {\n actionResult: promise,\n // if the page was not revalidated, we can skip the rendering the flight tree\n skipFlight: !staticGenerationStore.pathWasRevalidated\n })\n };\n }\n throw error;\n }\n }\n // ensure we avoid caching server actions unexpectedly\n res.setHeader(\"Cache-Control\", \"no-cache, no-store, max-age=0, must-revalidate\");\n let bound = [];\n const { actionAsyncStorage } = ComponentMod;\n let actionResult;\n let formState;\n let actionModId;\n try {\n await actionAsyncStorage.run({\n isAction: true\n }, async ()=>{\n if (true) {\n // Use react-server-dom-webpack/server.edge\n const { decodeReply, decodeAction, decodeFormState } = ComponentMod;\n const webRequest = req;\n if (!webRequest.body) {\n throw new Error(\"invariant: Missing request body.\");\n }\n if (isMultipartAction) {\n // TODO-APP: Add streaming support\n const formData = await webRequest.request.formData();\n if (isFetchAction) {\n bound = await decodeReply(formData, serverModuleMap);\n } else {\n const action = await decodeAction(formData, serverModuleMap);\n if (typeof action === \"function\") {\n // Only warn if it's a server action, otherwise skip for other post requests\n warnBadServerActionRequest();\n const actionReturnedState = await action();\n formState = decodeFormState(actionReturnedState, formData);\n }\n // Skip the fetch path\n return;\n }\n } else {\n try {\n actionModId = getActionModIdOrError(actionId, serverModuleMap);\n } catch (err) {\n console.error(err);\n return {\n type: \"not-found\"\n };\n }\n let actionData = \"\";\n const reader = webRequest.body.getReader();\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n actionData += new TextDecoder().decode(value);\n }\n if (isURLEncodedAction) {\n const formData = formDataFromSearchQueryString(actionData);\n bound = await decodeReply(formData, serverModuleMap);\n } else {\n bound = await decodeReply(actionData, serverModuleMap);\n }\n }\n } else {}\n // actions.js\n // app/page.js\n // action worker1\n // appRender1\n // app/foo/page.js\n // action worker2\n // appRender\n // / -> fire action -> POST / -> appRender1 -> modId for the action file\n // /foo -> fire action -> POST /foo -> appRender2 -> modId for the action file\n try {\n actionModId = actionModId ?? getActionModIdOrError(actionId, serverModuleMap);\n } catch (err) {\n console.error(err);\n return {\n type: \"not-found\"\n };\n }\n const actionHandler = (await ComponentMod.__next_app__.require(actionModId))[actionId];\n const returnVal = await actionHandler.apply(null, bound);\n // For form actions, we need to continue rendering the page.\n if (isFetchAction) {\n await addRevalidationHeader(res, {\n staticGenerationStore,\n requestStore\n });\n actionResult = await generateFlight(ctx, {\n actionResult: Promise.resolve(returnVal),\n // if the page was not revalidated, we can skip the rendering the flight tree\n skipFlight: !staticGenerationStore.pathWasRevalidated\n });\n }\n });\n return {\n type: \"done\",\n result: actionResult,\n formState\n };\n } catch (err) {\n if ((0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_2__.isRedirectError)(err)) {\n const redirectUrl = (0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_2__.getURLFromRedirectError)(err);\n const statusCode = (0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_2__.getRedirectStatusCodeFromError)(err);\n await addRevalidationHeader(res, {\n staticGenerationStore,\n requestStore\n });\n // if it's a fetch action, we'll set the status code for logging/debugging purposes\n // but we won't set a Location header, as the redirect will be handled by the client router\n res.statusCode = statusCode;\n if (isFetchAction) {\n return {\n type: \"done\",\n result: await createRedirectRenderResult(req, res, redirectUrl, ctx.renderOpts.basePath, staticGenerationStore)\n };\n }\n if (err.mutableCookies) {\n const headers = new Headers();\n // If there were mutable cookies set, we need to set them on the\n // response.\n if ((0,_web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_6__.appendMutableCookies)(headers, err.mutableCookies)) {\n res.setHeader(\"set-cookie\", Array.from(headers.values()));\n }\n }\n res.setHeader(\"Location\", redirectUrl);\n return {\n type: \"done\",\n result: _render_result__WEBPACK_IMPORTED_MODULE_3__[\"default\"].fromStatic(\"\")\n };\n } else if ((0,_client_components_not_found__WEBPACK_IMPORTED_MODULE_1__.isNotFoundError)(err)) {\n res.statusCode = 404;\n await addRevalidationHeader(res, {\n staticGenerationStore,\n requestStore\n });\n if (isFetchAction) {\n const promise = Promise.reject(err);\n try {\n // we need to await the promise to trigger the rejection early\n // so that it's already handled by the time we call\n // the RSC runtime. Otherwise, it will throw an unhandled\n // promise rejection error in the renderer.\n await promise;\n } catch {\n // swallow error, it's gonna be handled on the client\n }\n return {\n type: \"done\",\n result: await generateFlight(ctx, {\n skipFlight: false,\n actionResult: promise,\n asNotFound: true\n })\n };\n }\n return {\n type: \"not-found\"\n };\n }\n if (isFetchAction) {\n res.statusCode = 500;\n await Promise.all(Object.values(staticGenerationStore.pendingRevalidates || []));\n const promise = Promise.reject(err);\n try {\n // we need to await the promise to trigger the rejection early\n // so that it's already handled by the time we call\n // the RSC runtime. Otherwise, it will throw an unhandled\n // promise rejection error in the renderer.\n await promise;\n } catch {\n // swallow error, it's gonna be handled on the client\n }\n return {\n type: \"done\",\n result: await generateFlight(ctx, {\n actionResult: promise,\n // if the page was not revalidated, we can skip the rendering the flight tree\n skipFlight: !staticGenerationStore.pathWasRevalidated\n })\n };\n }\n throw err;\n }\n}\n/**\n * Attempts to find the module ID for the action from the module map. When this fails, it could be a deployment skew where\n * the action came from a different deployment. It could also simply be an invalid POST request that is not a server action.\n * In either case, we'll throw an error to be handled by the caller.\n */ function getActionModIdOrError(actionId, serverModuleMap) {\n try {\n var _serverModuleMap_actionId;\n // if we're missing the action ID header, we can't do any further processing\n if (!actionId) {\n throw new Error(\"Invariant: Missing 'next-action' header.\");\n }\n const actionModId = serverModuleMap == null ? void 0 : (_serverModuleMap_actionId = serverModuleMap[actionId]) == null ? void 0 : _serverModuleMap_actionId.id;\n if (!actionModId) {\n throw new Error(\"Invariant: Couldn't find action module ID from module map.\");\n }\n return actionModId;\n } catch (err) {\n throw new Error(`Failed to find Server Action \"${actionId}\". This request might be from an older or newer deployment. ${err instanceof Error ? `Original error: ${err.message}` : \"\"}`);\n }\n} //# sourceMappingURL=action-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvYWN0aW9uLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQWlHO0FBQzdCO0FBQ3dEO0FBQ2hGO0FBQ2dCO0FBQ3dCO0FBQzJCO0FBQ0U7QUFDWDtBQUM5QztBQUNWO0FBQzlDLFNBQVNrQiw4QkFBOEJDLEtBQUs7SUFDeEMsTUFBTUMsZUFBZSxJQUFJQyxnQkFBZ0JGO0lBQ3pDLE1BQU1HLFdBQVcsSUFBSUM7SUFDckIsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUwsYUFBYTtRQUNwQ0UsU0FBU0ksTUFBTSxDQUFDRixLQUFLQztJQUN6QjtJQUNBLE9BQU9IO0FBQ1g7QUFDQSxTQUFTSyxvQkFBb0JDLE9BQU87SUFDaEMsTUFBTUMsU0FBUyxDQUFDO0lBQ2hCLEtBQUssTUFBTSxDQUFDTCxLQUFLQyxNQUFNLElBQUlLLE9BQU9DLE9BQU8sQ0FBQ0gsU0FBUztRQUMvQyxJQUFJSCxVQUFVTyxXQUFXO1lBQ3JCSCxNQUFNLENBQUNMLElBQUksR0FBR1MsTUFBTUMsT0FBTyxDQUFDVCxTQUFTQSxNQUFNVSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUVWLE1BQU0sQ0FBQztRQUN0RTtJQUNKO0lBQ0EsT0FBT0k7QUFDWDtBQUNBLFNBQVNPLG9CQUFvQkMsR0FBRyxFQUFFQyxHQUFHO0lBQ2pDLGtDQUFrQztJQUNsQyxNQUFNQyxpQkFBaUJGLElBQUlULE9BQU87SUFDbEMsTUFBTVksaUJBQWlCRCxjQUFjLENBQUMsU0FBUyxJQUFJO0lBQ25ELDZDQUE2QztJQUM3QyxNQUFNRSxrQkFBa0JILElBQUlJLFVBQVU7SUFDdEMsTUFBTUMsZ0JBQWdCRixlQUFlLENBQUMsYUFBYTtJQUNuRCxNQUFNRyxhQUFhLENBQUNYLE1BQU1DLE9BQU8sQ0FBQ1MsaUJBQWlCQSxnQkFBZ0I7UUFDL0RBO0tBQ0gsRUFBRUUsR0FBRyxDQUFDLENBQUND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QUFLO1FBQ1YsTUFBTSxJQUFJbUIsTUFBTSxDQUFDLDhCQUE4QixFQUFFTCxTQUFTLDREQUE0RCxFQUFFZCxlQUFlbUIsUUFBUSxDQUFDLGdCQUFnQixFQUFFbkIsSUFBSStGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzFMO0FBQ0osRUFFQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL2FjdGlvbi1oYW5kbGVyLmpzPzFlODMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUlNDX0hFQURFUiwgUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCI7XG5pbXBvcnQgeyBpc05vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kXCI7XG5pbXBvcnQgeyBnZXRSZWRpcmVjdFN0YXR1c0NvZGVGcm9tRXJyb3IsIGdldFVSTEZyb21SZWRpcmVjdEVycm9yLCBpc1JlZGlyZWN0RXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3RcIjtcbmltcG9ydCBSZW5kZXJSZXN1bHQgZnJvbSBcIi4uL3JlbmRlci1yZXN1bHRcIjtcbmltcG9ydCB7IEZsaWdodFJlbmRlclJlc3VsdCB9IGZyb20gXCIuL2ZsaWdodC1yZW5kZXItcmVzdWx0XCI7XG5pbXBvcnQgeyBmaWx0ZXJSZXFIZWFkZXJzLCBhY3Rpb25zRm9yYmlkZGVuSGVhZGVycyB9IGZyb20gXCIuLi9saWIvc2VydmVyLWlwYy91dGlsc1wiO1xuaW1wb3J0IHsgYXBwZW5kTXV0YWJsZUNvb2tpZXMsIGdldE1vZGlmaWVkQ29va2llVmFsdWVzIH0gZnJvbSBcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZXF1ZXN0LWNvb2tpZXNcIjtcbmltcG9ydCB7IE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIsIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSIH0gZnJvbSBcIi4uLy4uL2xpYi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldElzU2VydmVyQWN0aW9uLCBnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGEgfSBmcm9tIFwiLi4vbGliL3NlcnZlci1hY3Rpb24tcmVxdWVzdC1tZXRhXCI7XG5pbXBvcnQgeyBpc0NzcmZPcmlnaW5BbGxvd2VkIH0gZnJvbSBcIi4vY3NyZi1wcm90ZWN0aW9uXCI7XG5pbXBvcnQgeyB3YXJuIH0gZnJvbSBcIi4uLy4uL2J1aWxkL291dHB1dC9sb2dcIjtcbmZ1bmN0aW9uIGZvcm1EYXRhRnJvbVNlYXJjaFF1ZXJ5U3RyaW5nKHF1ZXJ5KSB7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeSk7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzZWFyY2hQYXJhbXMpe1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBmb3JtRGF0YTtcbn1cbmZ1bmN0aW9uIG5vZGVIZWFkZXJzVG9SZWNvcmQoaGVhZGVycykge1xuICAgIGNvbnN0IHJlY29yZCA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpKXtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlY29yZFtrZXldID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5qb2luKFwiLCBcIikgOiBgJHt2YWx1ZX1gO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZWNvcmQ7XG59XG5mdW5jdGlvbiBnZXRGb3J3YXJkZWRIZWFkZXJzKHJlcSwgcmVzKSB7XG4gICAgLy8gR2V0IHJlcXVlc3QgaGVhZGVycyBhbmQgY29va2llc1xuICAgIGNvbnN0IHJlcXVlc3RIZWFkZXJzID0gcmVxLmhlYWRlcnM7XG4gICAgY29uc3QgcmVxdWVzdENvb2tpZXMgPSByZXF1ZXN0SGVhZGVyc1tcImNvb2tpZVwiXSA/PyBcIlwiO1xuICAgIC8vIEdldCByZXNwb25zZSBoZWFkZXJzIGFuZCBTZXQtQ29va2llIGhlYWRlclxuICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVycyA9IHJlcy5nZXRIZWFkZXJzKCk7XG4gICAgY29uc3QgcmF3U2V0Q29va2llcyA9IHJlc3BvbnNlSGVhZGVyc1tcInNldC1jb29raWVcIl07XG4gICAgY29uc3Qgc2V0Q29va2llcyA9IChBcnJheS5pc0FycmF5KHJhd1NldENvb2tpZXMpID8gcmF3U2V0Q29va2llcyA6IFtcbiAgICAgICAgcmF3U2V0Q29va2llc1xuICAgIF0pLm1hcCgoc2V0Q29va2llKT0+e1xuICAgICAgICAvLyByZW1vdmUgdGhlIHN1ZmZpeGVzIGxpa2UgJ0h0dHBPbmx5JyBhbmQgJ1NhbWVTaXRlJ1xuICAgICAgICBjb25zdCBbY29va2llXSA9IGAke3NldENvb2tpZX1gLnNwbGl0KFwiO1wiLCAxKTtcbiAgICAgICAgcmV0dXJuIGNvb2tpZTtcbiAgICB9KTtcbiAgICAvLyBNZXJnZSByZXF1ZXN0IGFuZCByZXNwb25zZSBoZWFkZXJzXG4gICAgY29uc3QgbWVyZ2VkSGVhZGVycyA9IGZpbHRlclJlcUhlYWRlcnMoe1xuICAgICAgICAuLi5ub2RlSGVhZGVyc1RvUmVjb3JkKHJlcXVlc3RIZWFkZXJzKSxcbiAgICAgICAgLi4ubm9kZUhlYWRlcnNUb1JlY29yZChyZXNwb25zZUhlYWRlcnMpXG4gICAgfSwgYWN0aW9uc0ZvcmJpZGRlbkhlYWRlcnMpO1xuICAgIC8vIE1lcmdlIGNvb2tpZXNcbiAgICBjb25zdCBtZXJnZWRDb29raWVzID0gcmVxdWVzdENvb2tpZXMuc3BsaXQoXCI7IFwiKS5jb25jYXQoc2V0Q29va2llcykuam9pbihcIjsgXCIpO1xuICAgIC8vIFVwZGF0ZSB0aGUgJ2Nvb2tpZScgaGVhZGVyIHdpdGggdGhlIG1lcmdlZCBjb29raWVzXG4gICAgbWVyZ2VkSGVhZGVyc1tcImNvb2tpZVwiXSA9IG1lcmdlZENvb2tpZXM7XG4gICAgLy8gUmVtb3ZlIGhlYWRlcnMgdGhhdCBzaG91bGQgbm90IGJlIGZvcndhcmRlZFxuICAgIGRlbGV0ZSBtZXJnZWRIZWFkZXJzW1widHJhbnNmZXItZW5jb2RpbmdcIl07XG4gICAgcmV0dXJuIG5ldyBIZWFkZXJzKG1lcmdlZEhlYWRlcnMpO1xufVxuYXN5bmMgZnVuY3Rpb24gYWRkUmV2YWxpZGF0aW9uSGVhZGVyKHJlcywgeyBzdGF0aWNHZW5lcmF0aW9uU3RvcmUsIHJlcXVlc3RTdG9yZSB9KSB7XG4gICAgdmFyIF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfcmV2YWxpZGF0ZWRUYWdzO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKE9iamVjdC52YWx1ZXMoc3RhdGljR2VuZXJhdGlvblN0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyB8fCBbXSkpO1xuICAgIC8vIElmIGEgdGFnIHdhcyByZXZhbGlkYXRlZCwgdGhlIGNsaWVudCByb3V0ZXIgbmVlZHMgdG8gaW52YWxpZGF0ZSBhbGwgdGhlXG4gICAgLy8gY2xpZW50IHJvdXRlciBjYWNoZSBhcyB0aGV5IG1heSBiZSBzdGFsZS4gQW5kIGlmIGEgcGF0aCB3YXMgcmV2YWxpZGF0ZWQsIHRoZVxuICAgIC8vIGNsaWVudCBuZWVkcyB0byBpbnZhbGlkYXRlIGFsbCBzdWJ0cmVlcyBiZWxvdyB0aGF0IHBhdGguXG4gICAgLy8gVG8ga2VlcCB0aGUgaGVhZGVyIHNpemUgc21hbGwsIHdlIHVzZSBhIHR1cGxlIG9mXG4gICAgLy8gW1tyZXZhbGlkYXRlZFBhdGhzXSwgaXNUYWdSZXZhbGlkYXRlZCA/IDEgOiAwLCBpc0Nvb2tpZVJldmFsaWRhdGVkID8gMSA6IDBdXG4gICAgLy8gaW5zdGVhZCBvZiBhIEpTT04gb2JqZWN0LlxuICAgIC8vIFRPRE8tQVBQOiBDdXJyZW50bHkgdGhlIHByZWZldGNoIGNhY2hlIGRvZXNuJ3QgaGF2ZSBzdWJ0cmVlIGluZm9ybWF0aW9uLFxuICAgIC8vIHNvIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSB0aGUgZW50aXJlIGNhY2hlIGlmIGEgcGF0aCB3YXMgcmV2YWxpZGF0ZWQuXG4gICAgLy8gVE9ETy1BUFA6IEN1cnJlbnRseSBwYXRocyBhcmUgdHJlYXRlZCBhcyB0YWdzLCBzbyB0aGUgc2Vjb25kIGVsZW1lbnQgb2YgdGhlIHR1cGxlXG4gICAgLy8gaXMgYWx3YXlzIGVtcHR5LlxuICAgIGNvbnN0IGlzVGFnUmV2YWxpZGF0ZWQgPSAoKF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfcmV2YWxpZGF0ZWRUYWdzID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGVkVGFncykgPT0gbnVsbCA/IHZvaWQgMCA6IF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfcmV2YWxpZGF0ZWRUYWdzLmxlbmd0aCkgPyAxIDogMDtcbiAgICBjb25zdCBpc0Nvb2tpZVJldmFsaWRhdGVkID0gZ2V0TW9kaWZpZWRDb29raWVWYWx1ZXMocmVxdWVzdFN0b3JlLm11dGFibGVDb29raWVzKS5sZW5ndGggPyAxIDogMDtcbiAgICByZXMuc2V0SGVhZGVyKFwieC1hY3Rpb24tcmV2YWxpZGF0ZWRcIiwgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICBbXSxcbiAgICAgICAgaXNUYWdSZXZhbGlkYXRlZCxcbiAgICAgICAgaXNDb29raWVSZXZhbGlkYXRlZFxuICAgIF0pKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVJlZGlyZWN0UmVuZGVyUmVzdWx0KHJlcSwgcmVzLCByZWRpcmVjdFVybCwgYmFzZVBhdGgsIHN0YXRpY0dlbmVyYXRpb25TdG9yZSkge1xuICAgIHJlcy5zZXRIZWFkZXIoXCJ4LWFjdGlvbi1yZWRpcmVjdFwiLCByZWRpcmVjdFVybCk7XG4gICAgLy8gaWYgd2UncmUgcmVkaXJlY3RpbmcgdG8gYSByZWxhdGl2ZSBwYXRoLCB3ZSdsbCB0cnkgdG8gc3RyZWFtIHRoZSByZXNwb25zZVxuICAgIGlmIChyZWRpcmVjdFVybC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICB2YXIgX3N0YXRpY0dlbmVyYXRpb25TdG9yZV9pbmNyZW1lbnRhbENhY2hlO1xuICAgICAgICBjb25zdCBmb3J3YXJkZWRIZWFkZXJzID0gZ2V0Rm9yd2FyZGVkSGVhZGVycyhyZXEsIHJlcyk7XG4gICAgICAgIGZvcndhcmRlZEhlYWRlcnMuc2V0KFJTQ19IRUFERVIsIFwiMVwiKTtcbiAgICAgICAgY29uc3QgaG9zdCA9IHJlcS5oZWFkZXJzW1wiaG9zdFwiXTtcbiAgICAgICAgY29uc3QgcHJvdG8gPSAoKF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfaW5jcmVtZW50YWxDYWNoZSA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pbmNyZW1lbnRhbENhY2hlKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YXRpY0dlbmVyYXRpb25TdG9yZV9pbmNyZW1lbnRhbENhY2hlLnJlcXVlc3RQcm90b2NvbCkgfHwgXCJodHRwc1wiO1xuICAgICAgICBjb25zdCBmZXRjaFVybCA9IG5ldyBVUkwoYCR7cHJvdG99Oi8vJHtob3N0fSR7YmFzZVBhdGh9JHtyZWRpcmVjdFVybH1gKTtcbiAgICAgICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlZFRhZ3MpIHtcbiAgICAgICAgICAgIHZhciBfc3RhdGljR2VuZXJhdGlvblN0b3JlX2luY3JlbWVudGFsQ2FjaGVfcHJlcmVuZGVyTWFuaWZlc3RfcHJldmlldywgX3N0YXRpY0dlbmVyYXRpb25TdG9yZV9pbmNyZW1lbnRhbENhY2hlX3ByZXJlbmRlck1hbmlmZXN0LCBfc3RhdGljR2VuZXJhdGlvblN0b3JlX2luY3JlbWVudGFsQ2FjaGUxO1xuICAgICAgICAgICAgZm9yd2FyZGVkSGVhZGVycy5zZXQoTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUiwgc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGVkVGFncy5qb2luKFwiLFwiKSk7XG4gICAgICAgICAgICBmb3J3YXJkZWRIZWFkZXJzLnNldChORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUiwgKChfc3RhdGljR2VuZXJhdGlvblN0b3JlX2luY3JlbWVudGFsQ2FjaGUxID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUpID09IG51bGwgPyB2b2lkIDAgOiAoX3N0YXRpY0dlbmVyYXRpb25TdG9yZV9pbmNyZW1lbnRhbENhY2hlX3ByZXJlbmRlck1hbmlmZXN0ID0gX3N0YXRpY0dlbmVyYXRpb25TdG9yZV9pbmNyZW1lbnRhbENhY2hlMS5wcmVyZW5kZXJNYW5pZmVzdCkgPT0gbnVsbCA/IHZvaWQgMCA6IChfc3RhdGljR2VuZXJhdGlvblN0b3JlX2luY3JlbWVudGFsQ2FjaGVfcHJlcmVuZGVyTWFuaWZlc3RfcHJldmlldyA9IF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfaW5jcmVtZW50YWxDYWNoZV9wcmVyZW5kZXJNYW5pZmVzdC5wcmV2aWV3KSA9PSBudWxsID8gdm9pZCAwIDogX3N0YXRpY0dlbmVyYXRpb25TdG9yZV9pbmNyZW1lbnRhbENhY2hlX3ByZXJlbmRlck1hbmlmZXN0X3ByZXZpZXcucHJldmlld01vZGVJZCkgfHwgXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHdoZW4gdGhlIHBhdGggd2FzIHJldmFsaWRhdGVkIHdlIGRvbid0IHJldHVybiBhIHBhcnRpYWwgcmVzcG9uc2Ugb24gcmVkaXJlY3RzXG4gICAgICAgIC8vIGlmIChzdGF0aWNHZW5lcmF0aW9uU3RvcmUucGF0aFdhc1JldmFsaWRhdGVkKSB7XG4gICAgICAgIGZvcndhcmRlZEhlYWRlcnMuZGVsZXRlKFwibmV4dC1yb3V0ZXItc3RhdGUtdHJlZVwiKTtcbiAgICAgICAgLy8gfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgaGVhZFJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZmV0Y2hVcmwsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiSEVBRFwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGZvcndhcmRlZEhlYWRlcnMsXG4gICAgICAgICAgICAgICAgbmV4dDoge1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGludGVybmFsOiAxXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaGVhZFJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiY29udGVudC10eXBlXCIpID09PSBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZmV0Y2hVcmwsIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBmb3J3YXJkZWRIZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBuZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDogMVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gY29weSB0aGUgaGVhZGVycyBmcm9tIHRoZSByZWRpcmVjdCByZXNwb25zZSB0byB0aGUgcmVzcG9uc2Ugd2UncmUgc2VuZGluZ1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHJlc3BvbnNlLmhlYWRlcnMpe1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGlvbnNGb3JiaWRkZW5IZWFkZXJzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGbGlnaHRSZW5kZXJSZXN1bHQocmVzcG9uc2UuYm9keSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gd2UgY291bGRuJ3Qgc3RyZWFtIHRoZSByZWRpcmVjdCByZXNwb25zZSwgc28gd2UnbGwganVzdCBkbyBhIG5vcm1hbCByZWRpcmVjdFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgZmFpbGVkIHRvIGdldCByZWRpcmVjdCByZXNwb25zZWAsIGVycik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFJlbmRlclJlc3VsdC5mcm9tU3RhdGljKFwie31cIik7XG59XG52YXIgLy8gVXNlZCB0byBjb21wYXJlIEhvc3QgaGVhZGVyIGFuZCBPcmlnaW4gaGVhZGVyLlxuSG9zdFR5cGU7XG4oZnVuY3Rpb24oSG9zdFR5cGUpIHtcbiAgICBIb3N0VHlwZVtcIlhGb3J3YXJkZWRIb3N0XCJdID0gXCJ4LWZvcndhcmRlZC1ob3N0XCI7XG4gICAgSG9zdFR5cGVbXCJIb3N0XCJdID0gXCJob3N0XCI7XG59KShIb3N0VHlwZSB8fCAoSG9zdFR5cGUgPSB7fSkpO1xuLyoqXG4gKiBFbnN1cmVzIHRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIGNhbid0IGNyZWF0ZSBsb25nIGxvZ3MuXG4gKi8gZnVuY3Rpb24gbGltaXRVbnRydXN0ZWRIZWFkZXJWYWx1ZUZvckxvZ3ModmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoID4gMTAwID8gdmFsdWUuc2xpY2UoMCwgMTAwKSArIFwiLi4uXCIgOiB2YWx1ZTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVBY3Rpb24oeyByZXEsIHJlcywgQ29tcG9uZW50TW9kLCBzZXJ2ZXJNb2R1bGVNYXAsIGdlbmVyYXRlRmxpZ2h0LCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUsIHJlcXVlc3RTdG9yZSwgc2VydmVyQWN0aW9ucywgY3R4IH0pIHtcbiAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdO1xuICAgIGNvbnN0IHsgYWN0aW9uSWQsIGlzVVJMRW5jb2RlZEFjdGlvbiwgaXNNdWx0aXBhcnRBY3Rpb24sIGlzRmV0Y2hBY3Rpb24gfSA9IGdldFNlcnZlckFjdGlvblJlcXVlc3RNZXRhZGF0YShyZXEpO1xuICAgIC8vIElmIGl0J3Mgbm90IGEgU2VydmVyIEFjdGlvbiwgc2tpcCBoYW5kbGluZy5cbiAgICBpZiAoIWdldElzU2VydmVyQWN0aW9uKHJlcSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc3RhdGljR2VuZXJhdGlvblN0b3JlLmlzU3RhdGljR2VuZXJhdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IHNlcnZlciBhY3Rpb25zIGNhbid0IGJlIGhhbmRsZWQgZHVyaW5nIHN0YXRpYyByZW5kZXJpbmdcIik7XG4gICAgfVxuICAgIC8vIFdoZW4gcnVubmluZyBhY3Rpb25zIHRoZSBkZWZhdWx0IGlzIG5vLXN0b3JlLCB5b3UgY2FuIHN0aWxsIGBjYWNoZTogJ2ZvcmNlLWNhY2hlJ2BcbiAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZmV0Y2hDYWNoZSA9IFwiZGVmYXVsdC1uby1zdG9yZVwiO1xuICAgIGNvbnN0IG9yaWdpbkRvbWFpbiA9IHR5cGVvZiByZXEuaGVhZGVyc1tcIm9yaWdpblwiXSA9PT0gXCJzdHJpbmdcIiA/IG5ldyBVUkwocmVxLmhlYWRlcnNbXCJvcmlnaW5cIl0pLmhvc3QgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZm9yd2FyZGVkSG9zdEhlYWRlciA9IHJlcS5oZWFkZXJzW1wieC1mb3J3YXJkZWQtaG9zdFwiXTtcbiAgICBjb25zdCBob3N0SGVhZGVyID0gcmVxLmhlYWRlcnNbXCJob3N0XCJdO1xuICAgIGNvbnN0IGhvc3QgPSBmb3J3YXJkZWRIb3N0SGVhZGVyID8ge1xuICAgICAgICB0eXBlOiBcIngtZm9yd2FyZGVkLWhvc3RcIixcbiAgICAgICAgdmFsdWU6IGZvcndhcmRlZEhvc3RIZWFkZXJcbiAgICB9IDogaG9zdEhlYWRlciA/IHtcbiAgICAgICAgdHlwZTogXCJob3N0XCIsXG4gICAgICAgIHZhbHVlOiBob3N0SGVhZGVyXG4gICAgfSA6IHVuZGVmaW5lZDtcbiAgICBsZXQgd2FybmluZyA9IHVuZGVmaW5lZDtcbiAgICBmdW5jdGlvbiB3YXJuQmFkU2VydmVyQWN0aW9uUmVxdWVzdCgpIHtcbiAgICAgICAgaWYgKHdhcm5pbmcpIHtcbiAgICAgICAgICAgIHdhcm4od2FybmluZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gVGhpcyBpcyB0byBwcmV2ZW50IENTUkYgYXR0YWNrcy4gSWYgYHgtZm9yd2FyZGVkLWhvc3RgIGlzIHNldCwgd2UgbmVlZCB0b1xuICAgIC8vIGVuc3VyZSB0aGF0IHRoZSByZXF1ZXN0IGlzIGNvbWluZyBmcm9tIHRoZSBzYW1lIGhvc3QuXG4gICAgaWYgKCFvcmlnaW5Eb21haW4pIHtcbiAgICAgICAgLy8gVGhpcyBtaWdodCBiZSBhbiBvbGQgYnJvd3NlciB0aGF0IGRvZXNuJ3Qgc2VuZCBgaG9zdGAgaGVhZGVyLiBXZSBpZ25vcmVcbiAgICAgICAgLy8gdGhpcyBjYXNlLlxuICAgICAgICB3YXJuaW5nID0gXCJNaXNzaW5nIGBvcmlnaW5gIGhlYWRlciBmcm9tIGEgZm9yd2FyZGVkIFNlcnZlciBBY3Rpb25zIHJlcXVlc3QuXCI7XG4gICAgfSBlbHNlIGlmICghaG9zdCB8fCBvcmlnaW5Eb21haW4gIT09IGhvc3QudmFsdWUpIHtcbiAgICAgICAgLy8gSWYgdGhlIGN1c3RvbWVyIHNldHMgYSBsaXN0IG9mIGFsbG93ZWQgb3JpZ2lucywgd2UnbGwgYWxsb3cgdGhlIHJlcXVlc3QuXG4gICAgICAgIC8vIFRoZXNlIGFyZSBjb25zaWRlcmVkIHNhZmUgYnV0IG1pZ2h0IGJlIGRpZmZlcmVudCBmcm9tIGZvcndhcmRlZCBob3N0IHNldFxuICAgICAgICAvLyBieSB0aGUgaW5mcmEgKGkuZS4gcmV2ZXJzZSBwcm94aWVzKS5cbiAgICAgICAgaWYgKGlzQ3NyZk9yaWdpbkFsbG93ZWQob3JpZ2luRG9tYWluLCBzZXJ2ZXJBY3Rpb25zID09IG51bGwgPyB2b2lkIDAgOiBzZXJ2ZXJBY3Rpb25zLmFsbG93ZWRPcmlnaW5zKSkge1xuICAgICAgICAvLyBJZ25vcmUgaXRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChob3N0KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBzZWVtcyB0byBiZSBhbiBDU1JGIGF0dGFjay4gV2Ugc2hvdWxkIG5vdCBwcm9jZWVkIHRoZSBhY3Rpb24uXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgXFxgJHtob3N0LnR5cGV9XFxgIGhlYWRlciB3aXRoIHZhbHVlIFxcYCR7bGltaXRVbnRydXN0ZWRIZWFkZXJWYWx1ZUZvckxvZ3MoaG9zdC52YWx1ZSl9XFxgIGRvZXMgbm90IG1hdGNoIFxcYG9yaWdpblxcYCBoZWFkZXIgd2l0aCB2YWx1ZSBcXGAke2xpbWl0VW50cnVzdGVkSGVhZGVyVmFsdWVGb3JMb2dzKG9yaWdpbkRvbWFpbil9XFxgIGZyb20gYSBmb3J3YXJkZWQgU2VydmVyIEFjdGlvbnMgcmVxdWVzdC4gQWJvcnRpbmcgdGhlIGFjdGlvbi5gKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhbiBhdHRhY2suIFdlIHNob3VsZCBub3QgcHJvY2VlZCB0aGUgYWN0aW9uLlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFxcYHgtZm9yd2FyZGVkLWhvc3RcXGAgb3IgXFxgaG9zdFxcYCBoZWFkZXJzIGFyZSBub3QgcHJvdmlkZWQuIE9uZSBvZiB0aGVzZSBpcyBuZWVkZWQgdG8gY29tcGFyZSB0aGUgXFxgb3JpZ2luXFxgIGhlYWRlciBmcm9tIGEgZm9yd2FyZGVkIFNlcnZlciBBY3Rpb25zIHJlcXVlc3QuIEFib3J0aW5nIHRoZSBhY3Rpb24uYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcIkludmFsaWQgU2VydmVyIEFjdGlvbnMgcmVxdWVzdC5cIik7XG4gICAgICAgICAgICBpZiAoaXNGZXRjaEFjdGlvbikge1xuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKE9iamVjdC52YWx1ZXMoc3RhdGljR2VuZXJhdGlvblN0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyB8fCBbXSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBhd2FpdCB0aGUgcHJvbWlzZSB0byB0cmlnZ2VyIHRoZSByZWplY3Rpb24gZWFybHlcbiAgICAgICAgICAgICAgICAgICAgLy8gc28gdGhhdCBpdCdzIGFscmVhZHkgaGFuZGxlZCBieSB0aGUgdGltZSB3ZSBjYWxsXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBSU0MgcnVudGltZS4gT3RoZXJ3aXNlLCBpdCB3aWxsIHRocm93IGFuIHVuaGFuZGxlZFxuICAgICAgICAgICAgICAgICAgICAvLyBwcm9taXNlIHJlamVjdGlvbiBlcnJvciBpbiB0aGUgcmVuZGVyZXIuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb21pc2U7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgICAgIC8vIHN3YWxsb3cgZXJyb3IsIGl0J3MgZ29ubmEgYmUgaGFuZGxlZCBvbiB0aGUgY2xpZW50XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZG9uZVwiLFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGF3YWl0IGdlbmVyYXRlRmxpZ2h0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uUmVzdWx0OiBwcm9taXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHBhZ2Ugd2FzIG5vdCByZXZhbGlkYXRlZCwgd2UgY2FuIHNraXAgdGhlIHJlbmRlcmluZyB0aGUgZmxpZ2h0IHRyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBGbGlnaHQ6ICFzdGF0aWNHZW5lcmF0aW9uU3RvcmUucGF0aFdhc1JldmFsaWRhdGVkXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGVuc3VyZSB3ZSBhdm9pZCBjYWNoaW5nIHNlcnZlciBhY3Rpb25zIHVuZXhwZWN0ZWRseVxuICAgIHJlcy5zZXRIZWFkZXIoXCJDYWNoZS1Db250cm9sXCIsIFwibm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZVwiKTtcbiAgICBsZXQgYm91bmQgPSBbXTtcbiAgICBjb25zdCB7IGFjdGlvbkFzeW5jU3RvcmFnZSB9ID0gQ29tcG9uZW50TW9kO1xuICAgIGxldCBhY3Rpb25SZXN1bHQ7XG4gICAgbGV0IGZvcm1TdGF0ZTtcbiAgICBsZXQgYWN0aW9uTW9kSWQ7XG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYWN0aW9uQXN5bmNTdG9yYWdlLnJ1bih7XG4gICAgICAgICAgICBpc0FjdGlvbjogdHJ1ZVxuICAgICAgICB9LCBhc3luYyAoKT0+e1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gXCJlZGdlXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBVc2UgcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3NlcnZlci5lZGdlXG4gICAgICAgICAgICAgICAgY29uc3QgeyBkZWNvZGVSZXBseSwgZGVjb2RlQWN0aW9uLCBkZWNvZGVGb3JtU3RhdGUgfSA9IENvbXBvbmVudE1vZDtcbiAgICAgICAgICAgICAgICBjb25zdCB3ZWJSZXF1ZXN0ID0gcmVxO1xuICAgICAgICAgICAgICAgIGlmICghd2ViUmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImludmFyaWFudDogTWlzc2luZyByZXF1ZXN0IGJvZHkuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNNdWx0aXBhcnRBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETy1BUFA6IEFkZCBzdHJlYW1pbmcgc3VwcG9ydFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IGF3YWl0IHdlYlJlcXVlc3QucmVxdWVzdC5mb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGZXRjaEFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm91bmQgPSBhd2FpdCBkZWNvZGVSZXBseShmb3JtRGF0YSwgc2VydmVyTW9kdWxlTWFwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGF3YWl0IGRlY29kZUFjdGlvbihmb3JtRGF0YSwgc2VydmVyTW9kdWxlTWFwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHdhcm4gaWYgaXQncyBhIHNlcnZlciBhY3Rpb24sIG90aGVyd2lzZSBza2lwIGZvciBvdGhlciBwb3N0IHJlcXVlc3RzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybkJhZFNlcnZlckFjdGlvblJlcXVlc3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25SZXR1cm5lZFN0YXRlID0gYXdhaXQgYWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVN0YXRlID0gZGVjb2RlRm9ybVN0YXRlKGFjdGlvblJldHVybmVkU3RhdGUsIGZvcm1EYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNraXAgdGhlIGZldGNoIHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25Nb2RJZCA9IGdldEFjdGlvbk1vZElkT3JFcnJvcihhY3Rpb25JZCwgc2VydmVyTW9kdWxlTWFwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibm90LWZvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGlvbkRhdGEgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWFkZXIgPSB3ZWJSZXF1ZXN0LmJvZHkuZ2V0UmVhZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlKHRydWUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25EYXRhICs9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVVJMRW5jb2RlZEFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBmb3JtRGF0YUZyb21TZWFyY2hRdWVyeVN0cmluZyhhY3Rpb25EYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kID0gYXdhaXQgZGVjb2RlUmVwbHkoZm9ybURhdGEsIHNlcnZlck1vZHVsZU1hcCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3VuZCA9IGF3YWl0IGRlY29kZVJlcGx5KGFjdGlvbkRhdGEsIHNlcnZlck1vZHVsZU1hcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFVzZSByZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyLm5vZGUgd2hpY2ggc3VwcG9ydHMgc3RyZWFtaW5nXG4gICAgICAgICAgICAgICAgY29uc3QgeyBkZWNvZGVSZXBseSwgZGVjb2RlUmVwbHlGcm9tQnVzYm95LCBkZWNvZGVBY3Rpb24sIGRlY29kZUZvcm1TdGF0ZSB9ID0gcmVxdWlyZShgLi9yZWFjdC1zZXJ2ZXIubm9kZWApO1xuICAgICAgICAgICAgICAgIGlmIChpc011bHRpcGFydEFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGZXRjaEFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVzYm95ID0gcmVxdWlyZShcImJ1c2JveVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJiID0gYnVzYm95KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXEucGlwZShiYik7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3VuZCA9IGF3YWl0IGRlY29kZVJlcGx5RnJvbUJ1c2JveShiYiwgc2VydmVyTW9kdWxlTWFwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIE5vZGUuanMgcmVhZGFibGUgc3RyZWFtIHRvIGEgV2ViIFN0cmVhbS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRhYmxlU3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEub24oXCJkYXRhXCIsIChjaHVuayk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShuZXcgVWludDhBcnJheShjaHVuaykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLm9uKFwiZW5kXCIsICgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEub24oXCJlcnJvclwiLCAoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlYWN0IGRvZXNuJ3QgeWV0IHB1Ymxpc2ggYSBidXNib3kgdmVyc2lvbiBvZiBkZWNvZGVBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIHBvbHlmaWxsIHRoZSBwYXJzaW5nIG9mIEZvcm1EYXRhLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmFrZVJlcXVlc3QgPSBuZXcgUmVxdWVzdChcImh0dHA6Ly9sb2NhbGhvc3RcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogY29udGVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHJlYWRhYmxlU3RyZWFtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cGxleDogXCJoYWxmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBhd2FpdCBmYWtlUmVxdWVzdC5mb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gYXdhaXQgZGVjb2RlQWN0aW9uKGZvcm1EYXRhLCBzZXJ2ZXJNb2R1bGVNYXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgd2FybiBpZiBpdCdzIGEgc2VydmVyIGFjdGlvbiwgb3RoZXJ3aXNlIHNraXAgZm9yIG90aGVyIHBvc3QgcmVxdWVzdHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuQmFkU2VydmVyQWN0aW9uUmVxdWVzdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvblJldHVybmVkU3RhdGUgPSBhd2FpdCBhY3Rpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtU3RhdGUgPSBhd2FpdCBkZWNvZGVGb3JtU3RhdGUoYWN0aW9uUmV0dXJuZWRTdGF0ZSwgZm9ybURhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCB0aGUgZmV0Y2ggcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbk1vZElkID0gZ2V0QWN0aW9uTW9kSWRPckVycm9yKGFjdGlvbklkLCBzZXJ2ZXJNb2R1bGVNYXApO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJub3QtZm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaHVua3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiByZXEpe1xuICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goQnVmZmVyLmZyb20oY2h1bmspKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25EYXRhID0gQnVmZmVyLmNvbmNhdChjaHVua3MpLnRvU3RyaW5nKFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRhYmxlTGltaXQgPSAoc2VydmVyQWN0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogc2VydmVyQWN0aW9ucy5ib2R5U2l6ZUxpbWl0KSA/PyBcIjEgTUJcIjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGltaXQgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2J5dGVzXCIpLnBhcnNlKHJlYWRhYmxlTGltaXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aW9uRGF0YS5sZW5ndGggPiBsaW1pdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBBcGlFcnJvciB9ID0gcmVxdWlyZShcIi4uL2FwaS11dGlsc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcGlFcnJvcig0MTMsIGBCb2R5IGV4Y2VlZGVkICR7cmVhZGFibGVMaW1pdH0gbGltaXQuXG5UbyBjb25maWd1cmUgdGhlIGJvZHkgc2l6ZSBsaW1pdCBmb3IgU2VydmVyIEFjdGlvbnMsIHNlZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3NlcnZlci1hY3Rpb25zI3NpemUtbGltaXRhdGlvbmApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1VSTEVuY29kZWRBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gZm9ybURhdGFGcm9tU2VhcmNoUXVlcnlTdHJpbmcoYWN0aW9uRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3VuZCA9IGF3YWl0IGRlY29kZVJlcGx5KGZvcm1EYXRhLCBzZXJ2ZXJNb2R1bGVNYXApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm91bmQgPSBhd2FpdCBkZWNvZGVSZXBseShhY3Rpb25EYXRhLCBzZXJ2ZXJNb2R1bGVNYXApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gYWN0aW9ucy5qc1xuICAgICAgICAgICAgLy8gYXBwL3BhZ2UuanNcbiAgICAgICAgICAgIC8vICAgYWN0aW9uIHdvcmtlcjFcbiAgICAgICAgICAgIC8vICAgICBhcHBSZW5kZXIxXG4gICAgICAgICAgICAvLyBhcHAvZm9vL3BhZ2UuanNcbiAgICAgICAgICAgIC8vICAgYWN0aW9uIHdvcmtlcjJcbiAgICAgICAgICAgIC8vICAgICBhcHBSZW5kZXJcbiAgICAgICAgICAgIC8vIC8gLT4gZmlyZSBhY3Rpb24gLT4gUE9TVCAvIC0+IGFwcFJlbmRlcjEgLT4gbW9kSWQgZm9yIHRoZSBhY3Rpb24gZmlsZVxuICAgICAgICAgICAgLy8gL2ZvbyAtPiBmaXJlIGFjdGlvbiAtPiBQT1NUIC9mb28gLT4gYXBwUmVuZGVyMiAtPiBtb2RJZCBmb3IgdGhlIGFjdGlvbiBmaWxlXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGFjdGlvbk1vZElkID0gYWN0aW9uTW9kSWQgPz8gZ2V0QWN0aW9uTW9kSWRPckVycm9yKGFjdGlvbklkLCBzZXJ2ZXJNb2R1bGVNYXApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibm90LWZvdW5kXCJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWN0aW9uSGFuZGxlciA9IChhd2FpdCBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fLnJlcXVpcmUoYWN0aW9uTW9kSWQpKVsvLyBgYWN0aW9uSWRgIG11c3QgZXhpc3QgaWYgd2UgZ290IGhlcmUsIGFzIG90aGVyd2lzZSB3ZSB3b3VsZCBoYXZlIHRocm93biBhbiBlcnJvciBhYm92ZVxuICAgICAgICAgICAgYWN0aW9uSWRdO1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuVmFsID0gYXdhaXQgYWN0aW9uSGFuZGxlci5hcHBseShudWxsLCBib3VuZCk7XG4gICAgICAgICAgICAvLyBGb3IgZm9ybSBhY3Rpb25zLCB3ZSBuZWVkIHRvIGNvbnRpbnVlIHJlbmRlcmluZyB0aGUgcGFnZS5cbiAgICAgICAgICAgIGlmIChpc0ZldGNoQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgYWRkUmV2YWxpZGF0aW9uSGVhZGVyKHJlcywge1xuICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUsXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdG9yZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGFjdGlvblJlc3VsdCA9IGF3YWl0IGdlbmVyYXRlRmxpZ2h0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25SZXN1bHQ6IFByb21pc2UucmVzb2x2ZShyZXR1cm5WYWwpLFxuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcGFnZSB3YXMgbm90IHJldmFsaWRhdGVkLCB3ZSBjYW4gc2tpcCB0aGUgcmVuZGVyaW5nIHRoZSBmbGlnaHQgdHJlZVxuICAgICAgICAgICAgICAgICAgICBza2lwRmxpZ2h0OiAhc3RhdGljR2VuZXJhdGlvblN0b3JlLnBhdGhXYXNSZXZhbGlkYXRlZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwiZG9uZVwiLFxuICAgICAgICAgICAgcmVzdWx0OiBhY3Rpb25SZXN1bHQsXG4gICAgICAgICAgICBmb3JtU3RhdGVcbiAgICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzUmVkaXJlY3RFcnJvcihlcnIpKSB7XG4gICAgICAgICAgICBjb25zdCByZWRpcmVjdFVybCA9IGdldFVSTEZyb21SZWRpcmVjdEVycm9yKGVycik7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yKGVycik7XG4gICAgICAgICAgICBhd2FpdCBhZGRSZXZhbGlkYXRpb25IZWFkZXIocmVzLCB7XG4gICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RTdG9yZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBpZiBpdCdzIGEgZmV0Y2ggYWN0aW9uLCB3ZSdsbCBzZXQgdGhlIHN0YXR1cyBjb2RlIGZvciBsb2dnaW5nL2RlYnVnZ2luZyBwdXJwb3Nlc1xuICAgICAgICAgICAgLy8gYnV0IHdlIHdvbid0IHNldCBhIExvY2F0aW9uIGhlYWRlciwgYXMgdGhlIHJlZGlyZWN0IHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgY2xpZW50IHJvdXRlclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgICAgICAgICAgaWYgKGlzRmV0Y2hBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImRvbmVcIixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBhd2FpdCBjcmVhdGVSZWRpcmVjdFJlbmRlclJlc3VsdChyZXEsIHJlcywgcmVkaXJlY3RVcmwsIGN0eC5yZW5kZXJPcHRzLmJhc2VQYXRoLCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnIubXV0YWJsZUNvb2tpZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSB3ZXJlIG11dGFibGUgY29va2llcyBzZXQsIHdlIG5lZWQgdG8gc2V0IHRoZW0gb24gdGhlXG4gICAgICAgICAgICAgICAgLy8gcmVzcG9uc2UuXG4gICAgICAgICAgICAgICAgaWYgKGFwcGVuZE11dGFibGVDb29raWVzKGhlYWRlcnMsIGVyci5tdXRhYmxlQ29va2llcykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcInNldC1jb29raWVcIiwgQXJyYXkuZnJvbShoZWFkZXJzLnZhbHVlcygpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIkxvY2F0aW9uXCIsIHJlZGlyZWN0VXJsKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJkb25lXCIsXG4gICAgICAgICAgICAgICAgcmVzdWx0OiBSZW5kZXJSZXN1bHQuZnJvbVN0YXRpYyhcIlwiKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpc05vdEZvdW5kRXJyb3IoZXJyKSkge1xuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICBhd2FpdCBhZGRSZXZhbGlkYXRpb25IZWFkZXIocmVzLCB7XG4gICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RTdG9yZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXNGZXRjaEFjdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gYXdhaXQgdGhlIHByb21pc2UgdG8gdHJpZ2dlciB0aGUgcmVqZWN0aW9uIGVhcmx5XG4gICAgICAgICAgICAgICAgICAgIC8vIHNvIHRoYXQgaXQncyBhbHJlYWR5IGhhbmRsZWQgYnkgdGhlIHRpbWUgd2UgY2FsbFxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgUlNDIHJ1bnRpbWUuIE90aGVyd2lzZSwgaXQgd2lsbCB0aHJvdyBhbiB1bmhhbmRsZWRcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJvbWlzZSByZWplY3Rpb24gZXJyb3IgaW4gdGhlIHJlbmRlcmVyLlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBwcm9taXNlO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgICAgICAvLyBzd2FsbG93IGVycm9yLCBpdCdzIGdvbm5hIGJlIGhhbmRsZWQgb24gdGhlIGNsaWVudFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImRvbmVcIixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBhd2FpdCBnZW5lcmF0ZUZsaWdodChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBGbGlnaHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uUmVzdWx0OiBwcm9taXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXNOb3RGb3VuZDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwibm90LWZvdW5kXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRmV0Y2hBY3Rpb24pIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoT2JqZWN0LnZhbHVlcyhzdGF0aWNHZW5lcmF0aW9uU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzIHx8IFtdKSk7XG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBhd2FpdCB0aGUgcHJvbWlzZSB0byB0cmlnZ2VyIHRoZSByZWplY3Rpb24gZWFybHlcbiAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IGl0J3MgYWxyZWFkeSBoYW5kbGVkIGJ5IHRoZSB0aW1lIHdlIGNhbGxcbiAgICAgICAgICAgICAgICAvLyB0aGUgUlNDIHJ1bnRpbWUuIE90aGVyd2lzZSwgaXQgd2lsbCB0aHJvdyBhbiB1bmhhbmRsZWRcbiAgICAgICAgICAgICAgICAvLyBwcm9taXNlIHJlamVjdGlvbiBlcnJvciBpbiB0aGUgcmVuZGVyZXIuXG4gICAgICAgICAgICAgICAgYXdhaXQgcHJvbWlzZTtcbiAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgIC8vIHN3YWxsb3cgZXJyb3IsIGl0J3MgZ29ubmEgYmUgaGFuZGxlZCBvbiB0aGUgY2xpZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiZG9uZVwiLFxuICAgICAgICAgICAgICAgIHJlc3VsdDogYXdhaXQgZ2VuZXJhdGVGbGlnaHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvblJlc3VsdDogcHJvbWlzZSxcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHBhZ2Ugd2FzIG5vdCByZXZhbGlkYXRlZCwgd2UgY2FuIHNraXAgdGhlIHJlbmRlcmluZyB0aGUgZmxpZ2h0IHRyZWVcbiAgICAgICAgICAgICAgICAgICAgc2tpcEZsaWdodDogIXN0YXRpY0dlbmVyYXRpb25TdG9yZS5wYXRoV2FzUmV2YWxpZGF0ZWRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfVxufVxuLyoqXG4gKiBBdHRlbXB0cyB0byBmaW5kIHRoZSBtb2R1bGUgSUQgZm9yIHRoZSBhY3Rpb24gZnJvbSB0aGUgbW9kdWxlIG1hcC4gV2hlbiB0aGlzIGZhaWxzLCBpdCBjb3VsZCBiZSBhIGRlcGxveW1lbnQgc2tldyB3aGVyZVxuICogdGhlIGFjdGlvbiBjYW1lIGZyb20gYSBkaWZmZXJlbnQgZGVwbG95bWVudC4gSXQgY291bGQgYWxzbyBzaW1wbHkgYmUgYW4gaW52YWxpZCBQT1NUIHJlcXVlc3QgdGhhdCBpcyBub3QgYSBzZXJ2ZXIgYWN0aW9uLlxuICogSW4gZWl0aGVyIGNhc2UsIHdlJ2xsIHRocm93IGFuIGVycm9yIHRvIGJlIGhhbmRsZWQgYnkgdGhlIGNhbGxlci5cbiAqLyBmdW5jdGlvbiBnZXRBY3Rpb25Nb2RJZE9yRXJyb3IoYWN0aW9uSWQsIHNlcnZlck1vZHVsZU1hcCkge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBfc2VydmVyTW9kdWxlTWFwX2FjdGlvbklkO1xuICAgICAgICAvLyBpZiB3ZSdyZSBtaXNzaW5nIHRoZSBhY3Rpb24gSUQgaGVhZGVyLCB3ZSBjYW4ndCBkbyBhbnkgZnVydGhlciBwcm9jZXNzaW5nXG4gICAgICAgIGlmICghYWN0aW9uSWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogTWlzc2luZyAnbmV4dC1hY3Rpb24nIGhlYWRlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0aW9uTW9kSWQgPSBzZXJ2ZXJNb2R1bGVNYXAgPT0gbnVsbCA/IHZvaWQgMCA6IChfc2VydmVyTW9kdWxlTWFwX2FjdGlvbklkID0gc2VydmVyTW9kdWxlTWFwW2FjdGlvbklkXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zZXJ2ZXJNb2R1bGVNYXBfYWN0aW9uSWQuaWQ7XG4gICAgICAgIGlmICghYWN0aW9uTW9kSWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogQ291bGRuJ3QgZmluZCBhY3Rpb24gbW9kdWxlIElEIGZyb20gbW9kdWxlIG1hcC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGlvbk1vZElkO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmaW5kIFNlcnZlciBBY3Rpb24gXCIke2FjdGlvbklkfVwiLiBUaGlzIHJlcXVlc3QgbWlnaHQgYmUgZnJvbSBhbiBvbGRlciBvciBuZXdlciBkZXBsb3ltZW50LiAke2VyciBpbnN0YW5jZW9mIEVycm9yID8gYE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWAgOiBcIlwifWApO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWN0aW9uLWhhbmRsZXIuanMubWFwIl0sIm5hbWVzIjpbIlJTQ19IRUFERVIiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsImlzTm90Rm91bmRFcnJvciIsImdldFJlZGlyZWN0U3RhdHVzQ29kZUZyb21FcnJvciIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiUmVuZGVyUmVzdWx0IiwiRmxpZ2h0UmVuZGVyUmVzdWx0IiwiZmlsdGVyUmVxSGVhZGVycyIsImFjdGlvbnNGb3JiaWRkZW5IZWFkZXJzIiwiYXBwZW5kTXV0YWJsZUNvb2tpZXMiLCJnZXRNb2RpZmllZENvb2tpZVZhbHVlcyIsIk5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIiLCJORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUiIsImdldElzU2VydmVyQWN0aW9uIiwiZ2V0U2VydmVyQWN0aW9uUmVxdWVzdE1ldGFkYXRhIiwiaXNDc3JmT3JpZ2luQWxsb3dlZCIsIndhcm4iLCJmb3JtRGF0YUZyb21TZWFyY2hRdWVyeVN0cmluZyIsInF1ZXJ5Iiwic2VhcmNoUGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiZm9ybURhdGEiLCJGb3JtRGF0YSIsImtleSIsInZhbHVlIiwiYXBwZW5kIiwibm9kZUhlYWRlcnNUb1JlY29yZCIsImhlYWRlcnMiLCJyZWNvcmQiLCJPYmplY3QiLCJlbnRyaWVzIiwidW5kZWZpbmVkIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsImdldEZvcndhcmRlZEhlYWRlcnMiLCJyZXEiLCJyZXMiLCJyZXF1ZXN0SGVhZGVycyIsInJlcXVlc3RDb29raWVzIiwicmVzcG9uc2VIZWFkZXJzIiwiZ2V0SGVhZGVycyIsInJhd1NldENvb2tpZXMiLCJzZXRDb29raWVzIiwibWFwIiwic2V0Q29va2llIiwiY29va2llIiwic3BsaXQiLCJtZXJnZWRIZWFkZXJzIiwibWVyZ2VkQ29va2llcyIsImNvbmNhdCIsIkhlYWRlcnMiLCJhZGRSZXZhbGlkYXRpb25IZWFkZXIiLCJzdGF0aWNHZW5lcmF0aW9uU3RvcmUiLCJyZXF1ZXN0U3RvcmUiLCJfc3RhdGljR2VuZXJhdGlvblN0b3JlX3JldmFsaWRhdGVkVGFncyIsIlByb21pc2UiLCJhbGwiLCJ2YWx1ZXMiLCJwZW5kaW5nUmV2YWxpZGF0ZXMiLCJpc1RhZ1JldmFsaWRhdGVkIiwicmV2YWxpZGF0ZWRUYWdzIiwibGVuZ3RoIiwiaXNDb29raWVSZXZhbGlkYXRlZCIsIm11dGFibGVDb29raWVzIiwic2V0SGVhZGVyIiwiSlNPTiIsInN0cmluZ2lmeSIsImNyZWF0ZVJlZGlyZWN0UmVuZGVyUmVzdWx0IiwicmVkaXJlY3RVcmwiLCJiYXNlUGF0aCIsInN0YXJ0c1dpdGgiLCJfc3RhdGljR2VuZXJhdGlvblN0b3JlX2luY3JlbWVudGFsQ2FjaGUiLCJmb3J3YXJkZWRIZWFkZXJzIiwic2V0IiwiaG9zdCIsInByb3RvIiwiaW5jcmVtZW50YWxDYWNoZSIsInJlcXVlc3RQcm90b2NvbCIsImZldGNoVXJsIiwiVVJMIiwiX3N0YXRpY0dlbmVyYXRpb25TdG9yZV9pbmNyZW1lbnRhbENhY2hlX3ByZXJlbmRlck1hbmlmZXN0X3ByZXZpZXciLCJfc3RhdGljR2VuZXJhdGlvblN0b3JlX2luY3JlbWVudGFsQ2FjaGVfcHJlcmVuZGVyTWFuaWZlc3QiLCJfc3RhdGljR2VuZXJhdGlvblN0b3JlX2luY3JlbWVudGFsQ2FjaGUxIiwicHJlcmVuZGVyTWFuaWZlc3QiLCJwcmV2aWV3IiwicHJldmlld01vZGVJZCIsImRlbGV0ZSIsImhlYWRSZXNwb25zZSIsImZldGNoIiwibWV0aG9kIiwibmV4dCIsImludGVybmFsIiwiZ2V0IiwicmVzcG9uc2UiLCJpbmNsdWRlcyIsImJvZHkiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJmcm9tU3RhdGljIiwiSG9zdFR5cGUiLCJsaW1pdFVudHJ1c3RlZEhlYWRlclZhbHVlRm9yTG9ncyIsInNsaWNlIiwiaGFuZGxlQWN0aW9uIiwiQ29tcG9uZW50TW9kIiwic2VydmVyTW9kdWxlTWFwIiwiZ2VuZXJhdGVGbGlnaHQiLCJzZXJ2ZXJBY3Rpb25zIiwiY3R4IiwiY29udGVudFR5cGUiLCJhY3Rpb25JZCIsImlzVVJMRW5jb2RlZEFjdGlvbiIsImlzTXVsdGlwYXJ0QWN0aW9uIiwiaXNGZXRjaEFjdGlvbiIsImlzU3RhdGljR2VuZXJhdGlvbiIsIkVycm9yIiwiZmV0Y2hDYWNoZSIsIm9yaWdpbkRvbWFpbiIsImZvcndhcmRlZEhvc3RIZWFkZXIiLCJob3N0SGVhZGVyIiwidHlwZSIsIndhcm5pbmciLCJ3YXJuQmFkU2VydmVyQWN0aW9uUmVxdWVzdCIsImFsbG93ZWRPcmlnaW5zIiwic3RhdHVzQ29kZSIsInByb21pc2UiLCJyZWplY3QiLCJyZXN1bHQiLCJhY3Rpb25SZXN1bHQiLCJza2lwRmxpZ2h0IiwicGF0aFdhc1JldmFsaWRhdGVkIiwiYm91bmQiLCJhY3Rpb25Bc3luY1N0b3JhZ2UiLCJmb3JtU3RhdGUiLCJhY3Rpb25Nb2RJZCIsInJ1biIsImlzQWN0aW9uIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsImRlY29kZVJlcGx5IiwiZGVjb2RlQWN0aW9uIiwiZGVjb2RlRm9ybVN0YXRlIiwid2ViUmVxdWVzdCIsInJlcXVlc3QiLCJhY3Rpb24iLCJhY3Rpb25SZXR1cm5lZFN0YXRlIiwiZ2V0QWN0aW9uTW9kSWRPckVycm9yIiwiYWN0aW9uRGF0YSIsInJlYWRlciIsImdldFJlYWRlciIsImRvbmUiLCJyZWFkIiwiVGV4dERlY29kZXIiLCJkZWNvZGUiLCJkZWNvZGVSZXBseUZyb21CdXNib3kiLCJyZXF1aXJlIiwiYnVzYm95IiwiYmIiLCJwaXBlIiwicmVhZGFibGVTdHJlYW0iLCJSZWFkYWJsZVN0cmVhbSIsInN0YXJ0IiwiY29udHJvbGxlciIsIm9uIiwiY2h1bmsiLCJlbnF1ZXVlIiwiVWludDhBcnJheSIsImNsb3NlIiwiZmFrZVJlcXVlc3QiLCJSZXF1ZXN0IiwiZHVwbGV4IiwiY2h1bmtzIiwicHVzaCIsIkJ1ZmZlciIsImZyb20iLCJ0b1N0cmluZyIsInJlYWRhYmxlTGltaXQiLCJib2R5U2l6ZUxpbWl0IiwibGltaXQiLCJwYXJzZSIsIkFwaUVycm9yIiwiYWN0aW9uSGFuZGxlciIsIl9fbmV4dF9hcHBfXyIsInJldHVyblZhbCIsImFwcGx5IiwicmVzb2x2ZSIsInJlbmRlck9wdHMiLCJhc05vdEZvdW5kIiwiX3NlcnZlck1vZHVsZU1hcF9hY3Rpb25JZCIsImlkIiwibWVzc2FnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/action-handler.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/app-render.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/app-render.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ renderToHTMLOrFlight: () => (/* binding */ renderToHTMLOrFlight)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _create_server_components_renderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-server-components-renderer */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/create-server-components-renderer.js\");\n/* harmony import */ var _render_result__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render-result */ \"(ssr)/../../node_modules/next/dist/esm/server/render-result.js\");\n/* harmony import */ var _stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../stream-utils/node-web-streams-helper */ \"(ssr)/../../node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js\");\n/* harmony import */ var _client_components_match_segments__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../client/components/match-segments */ \"(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js\");\n/* harmony import */ var _internal_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/internal-utils.js\");\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _lib_metadata_metadata__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../lib/metadata/metadata */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/metadata.js\");\n/* harmony import */ var _async_storage_request_async_storage_wrapper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../async-storage/request-async-storage-wrapper */ \"(ssr)/../../node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js\");\n/* harmony import */ var _async_storage_static_generation_async_storage_wrapper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../async-storage/static-generation-async-storage-wrapper */ \"(ssr)/../../node_modules/next/dist/esm/server/async-storage/static-generation-async-storage-wrapper.js\");\n/* harmony import */ var _client_components_not_found__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../client/components/not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n/* harmony import */ var _client_components_redirect__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../client/components/redirect */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js\");\n/* harmony import */ var _lib_patch_fetch__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../lib/patch-fetch */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/patch-fetch.js\");\n/* harmony import */ var _lib_trace_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../lib/trace/constants */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n/* harmony import */ var _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../lib/trace/tracer */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n/* harmony import */ var _flight_render_result__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./flight-render-result */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/flight-render-result.js\");\n/* harmony import */ var _create_error_handler__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./create-error-handler */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/create-error-handler.js\");\n/* harmony import */ var _get_short_dynamic_param_type__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./get-short-dynamic-param-type */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-short-dynamic-param-type.js\");\n/* harmony import */ var _get_segment_param__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./get-segment-param */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-segment-param.js\");\n/* harmony import */ var _get_script_nonce_from_header__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./get-script-nonce-from-header */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-script-nonce-from-header.js\");\n/* harmony import */ var _parse_and_validate_flight_router_state__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./parse-and-validate-flight-router-state */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/parse-and-validate-flight-router-state.js\");\n/* harmony import */ var _validate_url__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./validate-url */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/validate-url.js\");\n/* harmony import */ var _create_flight_router_state_from_loader_tree__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./create-flight-router-state-from-loader-tree */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/create-flight-router-state-from-loader-tree.js\");\n/* harmony import */ var _action_handler__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./action-handler */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/action-handler.js\");\n/* harmony import */ var _shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js\");\n/* harmony import */ var _build_output_log__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../../build/output/log */ \"(ssr)/../../node_modules/next/dist/esm/build/output/log.js\");\n/* harmony import */ var _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../web/spec-extension/adapters/request-cookies */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\");\n/* harmony import */ var _server_inserted_html__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./server-inserted-html */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/server-inserted-html.js\");\n/* harmony import */ var _required_scripts__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./required-scripts */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/required-scripts.js\");\n/* harmony import */ var _shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../../shared/lib/router/utils/add-path-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\");\n/* harmony import */ var _make_get_server_inserted_html__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./make-get-server-inserted-html */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/make-get-server-inserted-html.js\");\n/* harmony import */ var _walk_tree_with_flight_router_state__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./walk-tree-with-flight-router-state */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/walk-tree-with-flight-router-state.js\");\n/* harmony import */ var _create_component_tree__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./create-component-tree */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/create-component-tree.js\");\n/* harmony import */ var _get_asset_query_string__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./get-asset-query-string */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-asset-query-string.js\");\n/* harmony import */ var _action_encryption_utils__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./action-encryption-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/action-encryption-utils.js\");\n/* harmony import */ var _static_static_renderer__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./static/static-renderer */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/static/static-renderer.js\");\n/* harmony import */ var _is_missing_postpone_error__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./is-missing-postpone-error */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/is-missing-postpone-error.js\");\n/* harmony import */ var _lib_detached_promise__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../../lib/detached-promise */ \"(ssr)/../../node_modules/next/dist/esm/lib/detached-promise.js\");\n/* harmony import */ var _client_components_hooks_server_context__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(ssr)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js\");\n/* harmony import */ var _use_flight_response__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./use-flight-response */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/use-flight-response.js\");\n/* harmony import */ var _client_components_static_generation_bailout__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction createNotFoundLoaderTree(loaderTree) {\n // Align the segment with parallel-route-default in next-app-loader\n return [\n \"\",\n {},\n loaderTree[2]\n ];\n}\n/* This method is important for intercepted routes to function:\n * when a route is intercepted, e.g. /blog/[slug], it will be rendered\n * with the layout of the previous page, e.g. /profile/[id]. The problem is\n * that the loader tree needs to know the dynamic param in order to render (id and slug in the example).\n * Normally they are read from the path but since we are intercepting the route, the path would not contain id,\n * so we need to read it from the router state.\n */ function findDynamicParamFromRouterState(providedFlightRouterState, segment) {\n if (!providedFlightRouterState) {\n return null;\n }\n const treeSegment = providedFlightRouterState[0];\n if ((0,_client_components_match_segments__WEBPACK_IMPORTED_MODULE_5__.canSegmentBeOverridden)(segment, treeSegment)) {\n if (!Array.isArray(treeSegment) || Array.isArray(segment)) {\n return null;\n }\n return {\n param: treeSegment[0],\n value: treeSegment[1],\n treeSegment: treeSegment,\n type: treeSegment[2]\n };\n }\n for (const parallelRouterState of Object.values(providedFlightRouterState[1])){\n const maybeDynamicParam = findDynamicParamFromRouterState(parallelRouterState, segment);\n if (maybeDynamicParam) {\n return maybeDynamicParam;\n }\n }\n return null;\n}\n/**\n * Returns a function that parses the dynamic segment and return the associated value.\n */ function makeGetDynamicParamFromSegment(params, providedFlightRouterState) {\n return function getDynamicParamFromSegment(segment) {\n const segmentParam = (0,_get_segment_param__WEBPACK_IMPORTED_MODULE_19__.getSegmentParam)(segment);\n if (!segmentParam) {\n return null;\n }\n const key = segmentParam.param;\n let value = params[key];\n // this is a special marker that will be present for interception routes\n if (value === \"__NEXT_EMPTY_PARAM__\") {\n value = undefined;\n }\n if (Array.isArray(value)) {\n value = value.map((i)=>encodeURIComponent(i));\n } else if (typeof value === \"string\") {\n value = encodeURIComponent(value);\n }\n if (!value) {\n // Handle case where optional catchall does not have a value, e.g. `/dashboard/[...slug]` when requesting `/dashboard`\n if (segmentParam.type === \"optional-catchall\") {\n const type = _get_short_dynamic_param_type__WEBPACK_IMPORTED_MODULE_18__.dynamicParamTypes[segmentParam.type];\n return {\n param: key,\n value: null,\n type: type,\n // This value always has to be a string.\n treeSegment: [\n key,\n \"\",\n type\n ]\n };\n }\n return findDynamicParamFromRouterState(providedFlightRouterState, segment);\n }\n const type = (0,_get_short_dynamic_param_type__WEBPACK_IMPORTED_MODULE_18__.getShortDynamicParamType)(segmentParam.type);\n return {\n param: key,\n // The value that is passed to user code.\n value: value,\n // The value that is rendered in the router tree.\n treeSegment: [\n key,\n Array.isArray(value) ? value.join(\"/\") : value,\n type\n ],\n type: type\n };\n };\n}\n// Handle Flight render request. This is only used when client-side navigating. E.g. when you `router.push('/dashboard')` or `router.reload()`.\nasync function generateFlight(ctx, options) {\n // Flight data that is going to be passed to the browser.\n // Currently a single item array but in the future multiple patches might be combined in a single request.\n let flightData = null;\n const { componentMod: { tree: loaderTree, renderToReadableStream }, getDynamicParamFromSegment, appUsingSizeAdjustment, staticGenerationStore: { urlPathname }, providedSearchParams, requestId, providedFlightRouterState } = ctx;\n if (!(options == null ? void 0 : options.skipFlight)) {\n const [MetadataTree, MetadataOutlet] = (0,_lib_metadata_metadata__WEBPACK_IMPORTED_MODULE_8__.createMetadataComponents)({\n tree: loaderTree,\n pathname: urlPathname,\n searchParams: providedSearchParams,\n getDynamicParamFromSegment,\n appUsingSizeAdjustment\n });\n flightData = (await (0,_walk_tree_with_flight_router_state__WEBPACK_IMPORTED_MODULE_32__.walkTreeWithFlightRouterState)({\n ctx,\n createSegmentPath: (child)=>child,\n loaderTreeToFilter: loaderTree,\n parentParams: {},\n flightRouterState: providedFlightRouterState,\n isFirst: true,\n // For flight, render metadata inside leaf page\n rscPayloadHead: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MetadataTree, {}, requestId),\n injectedCSS: new Set(),\n injectedJS: new Set(),\n injectedFontPreloadTags: new Set(),\n rootLayoutIncluded: false,\n asNotFound: ctx.isNotFoundPath || (options == null ? void 0 : options.asNotFound),\n metadataOutlet: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MetadataOutlet, {})\n })).map((path)=>path.slice(1)) // remove the '' (root) segment\n ;\n }\n const buildIdFlightDataPair = [\n ctx.renderOpts.buildId,\n flightData\n ];\n // For app dir, use the bundled version of Flight server renderer (renderToReadableStream)\n // which contains the subset React.\n const flightReadableStream = renderToReadableStream(options ? [\n options.actionResult,\n buildIdFlightDataPair\n ] : buildIdFlightDataPair, ctx.clientReferenceManifest.clientModules, {\n onError: ctx.flightDataRendererErrorHandler\n });\n return new _flight_render_result__WEBPACK_IMPORTED_MODULE_16__.FlightRenderResult(flightReadableStream);\n}\n/**\n * Creates a resolver that eagerly generates a flight payload that is then\n * resolved when the resolver is called.\n */ function createFlightDataResolver(ctx) {\n // Generate the flight data and as soon as it can, convert it into a string.\n const promise = generateFlight(ctx).then(async (result)=>({\n flightData: await result.toUnchunkedString(true)\n })) // Otherwise if it errored, return the error.\n .catch((err)=>({\n err\n }));\n return async ()=>{\n // Resolve the promise to get the flight data or error.\n const result = await promise;\n // If the flight data failed to render due to an error, re-throw the error\n // here.\n if (\"err\" in result) {\n throw result.err;\n }\n // Otherwise, return the flight data.\n return result.flightData;\n };\n}\n// This is the root component that runs in the RSC context\nasync function ReactServerApp({ tree, ctx, preinitScripts, asNotFound }) {\n preinitScripts();\n // Create full component tree from root to leaf.\n const injectedCSS = new Set();\n const injectedJS = new Set();\n const injectedFontPreloadTags = new Set();\n const missingSlots = new Set();\n const { getDynamicParamFromSegment, query, providedSearchParams, appUsingSizeAdjustment, componentMod: { AppRouter, GlobalError }, staticGenerationStore: { urlPathname } } = ctx;\n const initialTree = (0,_create_flight_router_state_from_loader_tree__WEBPACK_IMPORTED_MODULE_23__.createFlightRouterStateFromLoaderTree)(tree, getDynamicParamFromSegment, query);\n const [MetadataTree, MetadataOutlet] = (0,_lib_metadata_metadata__WEBPACK_IMPORTED_MODULE_8__.createMetadataComponents)({\n tree,\n errorType: asNotFound ? \"not-found\" : undefined,\n pathname: urlPathname,\n searchParams: providedSearchParams,\n getDynamicParamFromSegment: getDynamicParamFromSegment,\n appUsingSizeAdjustment: appUsingSizeAdjustment\n });\n const { seedData, styles } = await (0,_create_component_tree__WEBPACK_IMPORTED_MODULE_33__.createComponentTree)({\n ctx,\n createSegmentPath: (child)=>child,\n loaderTree: tree,\n parentParams: {},\n firstItem: true,\n injectedCSS,\n injectedJS,\n injectedFontPreloadTags,\n rootLayoutIncluded: false,\n asNotFound: asNotFound,\n metadataOutlet: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MetadataOutlet, {}),\n missingSlots\n });\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n styles,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AppRouter, {\n buildId: ctx.renderOpts.buildId,\n assetPrefix: ctx.assetPrefix,\n initialCanonicalUrl: urlPathname,\n // This is the router state tree.\n initialTree: initialTree,\n // This is the tree of React nodes that are seeded into the cache\n initialSeedData: seedData,\n initialHead: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n ctx.res.statusCode > 400 && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MetadataTree, {}, ctx.requestId)\n ]\n }),\n globalErrorComponent: GlobalError,\n // This is used to provide debug information (when in development mode)\n // about which slots were not filled by page components while creating the component tree.\n missingSlots: missingSlots\n })\n ]\n });\n}\n// This is the root component that runs in the RSC context\nasync function ReactServerError({ tree, ctx, preinitScripts, errorType }) {\n const { getDynamicParamFromSegment, query, providedSearchParams, appUsingSizeAdjustment, componentMod: { AppRouter, GlobalError }, staticGenerationStore: { urlPathname }, requestId, res } = ctx;\n preinitScripts();\n const [MetadataTree] = (0,_lib_metadata_metadata__WEBPACK_IMPORTED_MODULE_8__.createMetadataComponents)({\n tree,\n pathname: urlPathname,\n errorType,\n searchParams: providedSearchParams,\n getDynamicParamFromSegment,\n appUsingSizeAdjustment\n });\n const head = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MetadataTree, {}, requestId),\n res.statusCode >= 400 && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }),\n true && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"next-error\",\n content: \"not-found\"\n })\n ]\n });\n const initialTree = (0,_create_flight_router_state_from_loader_tree__WEBPACK_IMPORTED_MODULE_23__.createFlightRouterStateFromLoaderTree)(tree, getDynamicParamFromSegment, query);\n // For metadata notFound error there's no global not found boundary on top\n // so we create a not found page with AppRouter\n const initialSeedData = [\n initialTree[0],\n {},\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"html\", {\n id: \"__next_error__\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"head\", {}),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"body\", {})\n ]\n })\n ];\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AppRouter, {\n buildId: ctx.renderOpts.buildId,\n assetPrefix: ctx.assetPrefix,\n initialCanonicalUrl: urlPathname,\n initialTree: initialTree,\n initialHead: head,\n globalErrorComponent: GlobalError,\n initialSeedData: initialSeedData,\n missingSlots: new Set()\n });\n}\n// This component must run in an SSR context. It will render the RSC root component\nfunction ReactServerEntrypoint({ renderReactServer, inlinedDataTransformStream, clientReferenceManifest, formState, nonce }) {\n const writable = inlinedDataTransformStream.writable;\n const reactServerRequestStream = renderReactServer();\n const reactServerResponse = (0,_use_flight_response__WEBPACK_IMPORTED_MODULE_40__.useFlightResponse)(writable, reactServerRequestStream, clientReferenceManifest, formState, nonce);\n return react__WEBPACK_IMPORTED_MODULE_1___default().use(reactServerResponse);\n}\nasync function renderToHTMLOrFlightImpl(req, res, pagePath, query, renderOpts, baseCtx) {\n var _getTracer_getRootSpanAttributes;\n const isNotFoundPath = pagePath === \"/404\";\n // A unique request timestamp used by development to ensure that it's\n // consistent and won't change during this request. This is important to\n // avoid that resources can be deduped by React Float if the same resource is\n // rendered or preloaded multiple times: `<link href=\"a.css?v={Date.now()}\"/>`.\n const requestTimestamp = Date.now();\n const { buildManifest, subresourceIntegrityManifest, serverActionsManifest, ComponentMod, dev, nextFontManifest, supportsDynamicHTML, serverActions, appDirDevErrorLogger, assetPrefix = \"\", enableTainting } = renderOpts;\n // We need to expose the bundled `require` API globally for\n // react-server-dom-webpack. This is a hack until we find a better way.\n if (ComponentMod.__next_app__) {\n // @ts-ignore\n globalThis.__next_require__ = ComponentMod.__next_app__.require;\n // @ts-ignore\n globalThis.__next_chunk_load__ = ComponentMod.__next_app__.loadChunk;\n }\n const metadata = {};\n const appUsingSizeAdjustment = !!(nextFontManifest == null ? void 0 : nextFontManifest.appUsingSizeAdjust);\n // TODO: fix this typescript\n const clientReferenceManifest = renderOpts.clientReferenceManifest;\n const workerName = \"app\" + renderOpts.page;\n const serverModuleMap = new Proxy({}, {\n get: (_, id)=>{\n return {\n id: serverActionsManifest[ true ? \"edge\" : 0][id].workers[workerName],\n name: id,\n chunks: []\n };\n }\n });\n (0,_action_encryption_utils__WEBPACK_IMPORTED_MODULE_35__.setReferenceManifestsSingleton)({\n clientReferenceManifest,\n serverActionsManifest,\n serverModuleMap\n });\n const capturedErrors = [];\n const allCapturedErrors = [];\n const isNextExport = !!renderOpts.nextExport;\n const { staticGenerationStore, requestStore } = baseCtx;\n const { isStaticGeneration } = staticGenerationStore;\n // when static generation fails during PPR, we log the errors separately. We intentionally\n // silence the error logger in this case to avoid double logging.\n const silenceStaticGenerationErrors = renderOpts.experimental.ppr && isStaticGeneration;\n const serverComponentsErrorHandler = (0,_create_error_handler__WEBPACK_IMPORTED_MODULE_17__.createErrorHandler)({\n _source: \"serverComponentsRenderer\",\n dev,\n isNextExport,\n errorLogger: appDirDevErrorLogger,\n capturedErrors,\n silenceLogger: silenceStaticGenerationErrors\n });\n const flightDataRendererErrorHandler = (0,_create_error_handler__WEBPACK_IMPORTED_MODULE_17__.createErrorHandler)({\n _source: \"flightDataRenderer\",\n dev,\n isNextExport,\n errorLogger: appDirDevErrorLogger,\n capturedErrors,\n silenceLogger: silenceStaticGenerationErrors\n });\n const htmlRendererErrorHandler = (0,_create_error_handler__WEBPACK_IMPORTED_MODULE_17__.createErrorHandler)({\n _source: \"htmlRenderer\",\n dev,\n isNextExport,\n errorLogger: appDirDevErrorLogger,\n capturedErrors,\n allCapturedErrors,\n silenceLogger: silenceStaticGenerationErrors\n });\n /**\n * This postpone handler will be used to help us discriminate between a set of cases\n * 1. SSR or RSC postpone that was caught and not rethrown\n * 2. SSR postpone handled by React\n * 3. RSC postpone handled by React\n *\n * The previous technique for tracking postpones could not tell between cases 1 and 3\n * however we only want to warn on the first case\n */ // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let serverComponentsDidPostpone = false;\n const serverComponentsPostponeHandler = (_reason)=>{\n serverComponentsDidPostpone = true;\n };\n ComponentMod.patchFetch();\n /**\n * Rules of Static & Dynamic HTML:\n *\n * 1.) We must generate static HTML unless the caller explicitly opts\n * in to dynamic HTML support.\n *\n * 2.) If dynamic HTML support is requested, we must honor that request\n * or throw an error. It is the sole responsibility of the caller to\n * ensure they aren't e.g. requesting dynamic HTML for an AMP page.\n *\n * These rules help ensure that other existing features like request caching,\n * coalescing, and ISR continue working as intended.\n */ const generateStaticHTML = supportsDynamicHTML !== true;\n // Pull out the hooks/references from the component.\n const { createSearchParamsBailoutProxy, tree: loaderTree, taintObjectReference } = ComponentMod;\n if (enableTainting) {\n taintObjectReference(\"Do not pass process.env to client components since it will leak sensitive data\", process.env);\n }\n const { urlPathname } = staticGenerationStore;\n staticGenerationStore.fetchMetrics = [];\n metadata.fetchMetrics = staticGenerationStore.fetchMetrics;\n // don't modify original query object\n query = {\n ...query\n };\n (0,_internal_utils__WEBPACK_IMPORTED_MODULE_6__.stripInternalQueries)(query);\n const isRSCRequest = req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_7__.RSC_HEADER.toLowerCase()] !== undefined;\n const isPrefetchRSCRequest = isRSCRequest && req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_7__.NEXT_ROUTER_PREFETCH_HEADER.toLowerCase()] !== undefined;\n /**\n * Router state provided from the client-side router. Used to handle rendering from the common layout down.\n */ let providedFlightRouterState = isRSCRequest && (!isPrefetchRSCRequest || !renderOpts.experimental.ppr) ? (0,_parse_and_validate_flight_router_state__WEBPACK_IMPORTED_MODULE_21__.parseAndValidateFlightRouterState)(req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_7__.NEXT_ROUTER_STATE_TREE.toLowerCase()]) : undefined;\n /**\n * The metadata items array created in next-app-loader with all relevant information\n * that we need to resolve the final metadata.\n */ let requestId;\n if (true) {\n requestId = crypto.randomUUID();\n } else {}\n // During static generation we need to call the static generation bailout when reading searchParams\n const providedSearchParams = isStaticGeneration ? createSearchParamsBailoutProxy() : query;\n const searchParamsProps = {\n searchParams: providedSearchParams\n };\n /**\n * Dynamic parameters. E.g. when you visit `/dashboard/vercel` which is rendered by `/dashboard/[slug]` the value will be {\"slug\": \"vercel\"}.\n */ const params = renderOpts.params ?? {};\n const getDynamicParamFromSegment = makeGetDynamicParamFromSegment(params, providedFlightRouterState);\n const ctx = {\n ...baseCtx,\n getDynamicParamFromSegment,\n query,\n isPrefetch: isPrefetchRSCRequest,\n providedSearchParams,\n requestTimestamp,\n searchParamsProps,\n appUsingSizeAdjustment,\n providedFlightRouterState,\n requestId,\n defaultRevalidate: false,\n pagePath,\n clientReferenceManifest,\n assetPrefix,\n flightDataRendererErrorHandler,\n serverComponentsErrorHandler,\n isNotFoundPath,\n res\n };\n if (isRSCRequest && !isStaticGeneration) {\n return generateFlight(ctx);\n }\n const hasPostponed = typeof renderOpts.postponed === \"string\";\n // Create the resolver that can get the flight payload when it's ready or\n // throw the error if it occurred. If we are not generating static HTML, we\n // don't need to generate the flight payload because it's a dynamic request\n // which means we're either getting the flight payload only or just the\n // regular HTML.\n const flightDataResolver = isStaticGeneration ? createFlightDataResolver(ctx) : null;\n // Get the nonce from the incoming request if it has one.\n const csp = req.headers[\"content-security-policy\"] || req.headers[\"content-security-policy-report-only\"];\n let nonce;\n if (csp && typeof csp === \"string\") {\n nonce = (0,_get_script_nonce_from_header__WEBPACK_IMPORTED_MODULE_20__.getScriptNonceFromHeader)(csp);\n }\n const validateRootLayout = dev ? {\n assetPrefix: renderOpts.assetPrefix,\n getTree: ()=>(0,_create_flight_router_state_from_loader_tree__WEBPACK_IMPORTED_MODULE_23__.createFlightRouterStateFromLoaderTree)(loaderTree, getDynamicParamFromSegment, query)\n } : undefined;\n const { HeadManagerContext } = __webpack_require__(/*! ../../shared/lib/head-manager-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/head-manager-context.shared-runtime.js\");\n // On each render, create a new `ServerInsertedHTML` context to capture\n // injected nodes from user code (`useServerInsertedHTML`).\n const { ServerInsertedHTMLProvider, renderServerInsertedHTML } = (0,_server_inserted_html__WEBPACK_IMPORTED_MODULE_28__.createServerInsertedHTML)();\n (_getTracer_getRootSpanAttributes = (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_15__.getTracer)().getRootSpanAttributes()) == null ? void 0 : _getTracer_getRootSpanAttributes.set(\"next.route\", pagePath);\n // Create a promise that will help us signal when the headers have been\n // written to the metadata for static generation as they aren't written to the\n // response directly.\n const onHeadersFinished = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_38__.DetachedPromise();\n const renderToStream = (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_15__.getTracer)().wrap(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_14__.AppRenderSpan.getBodyResult, {\n spanName: `render route (app) ${pagePath}`,\n attributes: {\n \"next.route\": pagePath\n }\n }, async ({ asNotFound, tree, formState })=>{\n const polyfills = buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith(\".js\") && !polyfill.endsWith(\".module.js\")).map((polyfill)=>({\n src: `${assetPrefix}/_next/${polyfill}${(0,_get_asset_query_string__WEBPACK_IMPORTED_MODULE_34__.getAssetQueryString)(ctx, false)}`,\n integrity: subresourceIntegrityManifest == null ? void 0 : subresourceIntegrityManifest[polyfill],\n crossOrigin: renderOpts.crossOrigin,\n noModule: true,\n nonce\n }));\n const [preinitScripts, bootstrapScript] = (0,_required_scripts__WEBPACK_IMPORTED_MODULE_29__.getRequiredScripts)(buildManifest, assetPrefix, renderOpts.crossOrigin, subresourceIntegrityManifest, (0,_get_asset_query_string__WEBPACK_IMPORTED_MODULE_34__.getAssetQueryString)(ctx, true), nonce);\n // This will when called actually render the RSC layer. During an SSR pass it will\n // typically get passed to a Entrypoint component which calls initiates it during the\n // the SSR render however there are some cases where this\n const serverComponentsRenderer = (0,_create_server_components_renderer__WEBPACK_IMPORTED_MODULE_2__.createReactServerRenderer)(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ReactServerApp, {\n tree: tree,\n ctx: ctx,\n preinitScripts: preinitScripts,\n asNotFound: asNotFound\n }), ComponentMod, clientReferenceManifest, serverComponentsErrorHandler, serverComponentsPostponeHandler);\n const renderInlinedDataTransformStream = new TransformStream();\n const children = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(HeadManagerContext.Provider, {\n value: {\n appDir: true,\n nonce\n },\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ServerInsertedHTMLProvider, {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ReactServerEntrypoint, {\n renderReactServer: serverComponentsRenderer,\n inlinedDataTransformStream: renderInlinedDataTransformStream,\n clientReferenceManifest: clientReferenceManifest,\n formState: formState,\n nonce: nonce\n })\n })\n });\n const getServerInsertedHTML = (0,_make_get_server_inserted_html__WEBPACK_IMPORTED_MODULE_31__.makeGetServerInsertedHTML)({\n polyfills,\n renderServerInsertedHTML,\n hasPostponed\n });\n const renderer = (0,_static_static_renderer__WEBPACK_IMPORTED_MODULE_36__.createStaticRenderer)({\n ppr: renderOpts.experimental.ppr,\n isStaticGeneration,\n // If provided, the postpone state should be parsed as JSON so it can be\n // provided to React.\n postponed: renderOpts.postponed ? JSON.parse(renderOpts.postponed) : null,\n streamOptions: {\n onError: htmlRendererErrorHandler,\n onHeaders: (headers)=>{\n // If this is during static generation, we shouldn't write to the\n // headers object directly, instead we should add to the render\n // result.\n if (isStaticGeneration) {\n headers.forEach((value, key)=>{\n metadata.headers ??= {};\n metadata.headers[key] = value;\n });\n // Resolve the promise to continue the stream.\n onHeadersFinished.resolve();\n } else {\n headers.forEach((value, key)=>{\n res.appendHeader(key, value);\n });\n }\n },\n maxHeadersLength: 600,\n nonce,\n bootstrapScripts: [\n bootstrapScript\n ],\n formState\n }\n });\n try {\n let { stream, postponed } = await renderer.render(children);\n // If the stream was postponed, we need to add the result to the\n // metadata so that it can be resumed later.\n if (postponed) {\n // If our render did not produce a postponed state but we did postpone\n // during the RSC render we need to still treat this as a postpone\n metadata.postponed = JSON.stringify(postponed);\n // We don't need to \"continue\" this stream now as it's continued when\n // we resume the stream.\n return {\n stream\n };\n }\n const options = {\n inlinedDataStream: renderInlinedDataTransformStream.readable,\n isStaticGeneration: isStaticGeneration || generateStaticHTML,\n getServerInsertedHTML: ()=>getServerInsertedHTML(allCapturedErrors),\n serverInsertedHTMLToHead: !renderOpts.postponed,\n // If this render generated a postponed state or this is a resume\n // render, we don't want to validate the root layout as it's already\n // partially rendered.\n validateRootLayout: !postponed && !renderOpts.postponed ? validateRootLayout : undefined,\n // App Render doesn't need to inject any additional suffixes.\n suffix: undefined\n };\n if (renderOpts.postponed) {\n stream = await (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_4__.continuePostponedFizzStream)(stream, options);\n } else {\n stream = await (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_4__.continueFizzStream)(stream, options);\n }\n return {\n stream\n };\n } catch (err) {\n if ((0,_client_components_static_generation_bailout__WEBPACK_IMPORTED_MODULE_41__.isStaticGenBailoutError)(err) || typeof err === \"object\" && err !== null && \"message\" in err && typeof err.message === \"string\" && err.message.includes(\"https://nextjs.org/docs/advanced-features/static-html-export\")) {\n // Ensure that \"next dev\" prints the red error overlay\n throw err;\n }\n // If this is a static generation error, we need to throw it so that it\n // can be handled by the caller if we're in static generation mode.\n if (isStaticGeneration && (0,_client_components_hooks_server_context__WEBPACK_IMPORTED_MODULE_39__.isDynamicServerError)(err)) {\n throw err;\n }\n // If a bailout made it to this point, it means it wasn't wrapped inside\n // a suspense boundary.\n const shouldBailoutToCSR = (0,_shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_25__.isBailoutToCSRError)(err);\n if (shouldBailoutToCSR) {\n console.log();\n if (renderOpts.experimental.missingSuspenseWithCSRBailout) {\n (0,_build_output_log__WEBPACK_IMPORTED_MODULE_26__.error)(`${err.reason} should be wrapped in a suspense boundary at page \"${pagePath}\". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout`);\n throw err;\n }\n (0,_build_output_log__WEBPACK_IMPORTED_MODULE_26__.warn)(`Entire page \"${pagePath}\" deopted into client-side rendering due to \"${err.reason}\". Read more: https://nextjs.org/docs/messages/deopted-into-client-rendering`);\n }\n if ((0,_client_components_not_found__WEBPACK_IMPORTED_MODULE_11__.isNotFoundError)(err)) {\n res.statusCode = 404;\n }\n let hasRedirectError = false;\n if ((0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_12__.isRedirectError)(err)) {\n hasRedirectError = true;\n res.statusCode = (0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_12__.getRedirectStatusCodeFromError)(err);\n if (err.mutableCookies) {\n const headers = new Headers();\n // If there were mutable cookies set, we need to set them on the\n // response.\n if ((0,_web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_27__.appendMutableCookies)(headers, err.mutableCookies)) {\n res.setHeader(\"set-cookie\", Array.from(headers.values()));\n }\n }\n const redirectUrl = (0,_shared_lib_router_utils_add_path_prefix__WEBPACK_IMPORTED_MODULE_30__.addPathPrefix)((0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_12__.getURLFromRedirectError)(err), renderOpts.basePath);\n res.setHeader(\"Location\", redirectUrl);\n }\n const is404 = res.statusCode === 404;\n if (!is404 && !hasRedirectError && !shouldBailoutToCSR) {\n res.statusCode = 500;\n }\n const errorType = is404 ? \"not-found\" : hasRedirectError ? \"redirect\" : undefined;\n const [errorPreinitScripts, errorBootstrapScript] = (0,_required_scripts__WEBPACK_IMPORTED_MODULE_29__.getRequiredScripts)(buildManifest, assetPrefix, renderOpts.crossOrigin, subresourceIntegrityManifest, (0,_get_asset_query_string__WEBPACK_IMPORTED_MODULE_34__.getAssetQueryString)(ctx, false), nonce);\n const errorServerComponentsRenderer = (0,_create_server_components_renderer__WEBPACK_IMPORTED_MODULE_2__.createReactServerRenderer)(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ReactServerError, {\n tree: tree,\n ctx: ctx,\n preinitScripts: errorPreinitScripts,\n errorType: errorType\n }), ComponentMod, clientReferenceManifest, serverComponentsErrorHandler, serverComponentsPostponeHandler);\n // Preserve the existing RSC inline chunks from the page rendering.\n // To avoid the same stream being operated twice, clone the origin stream for error rendering.\n const errorInlinedDataTransformStream = (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_4__.cloneTransformStream)(renderInlinedDataTransformStream);\n try {\n const fizzStream = await (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_4__.renderToInitialFizzStream)({\n ReactDOMServer: __webpack_require__(/*! react-dom/server.edge */ \"(ssr)/../../node_modules/next/dist/esm/build/webpack/alias/react-dom-server-edge.js\"),\n element: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ReactServerEntrypoint, {\n renderReactServer: errorServerComponentsRenderer,\n inlinedDataTransformStream: errorInlinedDataTransformStream,\n clientReferenceManifest: clientReferenceManifest,\n formState: formState,\n nonce: nonce\n }),\n streamOptions: {\n nonce,\n // Include hydration scripts in the HTML\n bootstrapScripts: [\n errorBootstrapScript\n ],\n formState\n }\n });\n return {\n // Returning the error that was thrown so it can be used to handle\n // the response in the caller.\n err,\n stream: await (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_4__.continueFizzStream)(fizzStream, {\n inlinedDataStream: errorInlinedDataTransformStream.readable,\n isStaticGeneration,\n getServerInsertedHTML: ()=>getServerInsertedHTML([]),\n serverInsertedHTMLToHead: true,\n validateRootLayout,\n suffix: undefined\n })\n };\n } catch (finalErr) {\n if ( true && (0,_client_components_not_found__WEBPACK_IMPORTED_MODULE_11__.isNotFoundError)(finalErr)) {\n const bailOnNotFound = (__webpack_require__(/*! ../../client/components/dev-root-not-found-boundary */ \"(ssr)/../../node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js\").bailOnNotFound);\n bailOnNotFound();\n }\n throw finalErr;\n }\n }\n });\n // For action requests, we handle them differently with a special render result.\n const actionRequestResult = await (0,_action_handler__WEBPACK_IMPORTED_MODULE_24__.handleAction)({\n req,\n res,\n ComponentMod,\n serverModuleMap,\n generateFlight,\n staticGenerationStore,\n requestStore,\n serverActions,\n ctx\n });\n let formState = null;\n if (actionRequestResult) {\n if (actionRequestResult.type === \"not-found\") {\n const notFoundLoaderTree = createNotFoundLoaderTree(loaderTree);\n const response = await renderToStream({\n asNotFound: true,\n tree: notFoundLoaderTree,\n formState\n });\n return new _render_result__WEBPACK_IMPORTED_MODULE_3__[\"default\"](response.stream, {\n metadata\n });\n } else if (actionRequestResult.type === \"done\") {\n if (actionRequestResult.result) {\n actionRequestResult.result.assignMetadata(metadata);\n return actionRequestResult.result;\n } else if (actionRequestResult.formState) {\n formState = actionRequestResult.formState;\n }\n }\n }\n const options = {\n metadata\n };\n let response = await renderToStream({\n asNotFound: isNotFoundPath,\n tree: loaderTree,\n formState\n });\n // If we have pending revalidates, wait until they are all resolved.\n if (staticGenerationStore.pendingRevalidates) {\n options.waitUntil = Promise.all(Object.values(staticGenerationStore.pendingRevalidates));\n }\n (0,_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_13__.addImplicitTags)(staticGenerationStore);\n if (staticGenerationStore.tags) {\n metadata.fetchTags = staticGenerationStore.tags.join(\",\");\n }\n // Create the new render result for the response.\n const result = new _render_result__WEBPACK_IMPORTED_MODULE_3__[\"default\"](response.stream, options);\n // If we aren't performing static generation, we can return the result now.\n if (!isStaticGeneration) {\n return result;\n }\n // If this is static generation, we should read this in now rather than\n // sending it back to be sent to the client.\n response.stream = await result.toUnchunkedString(true);\n // Timeout after 1.5 seconds for the headers to write. If it takes\n // longer than this it's more likely that the stream has stalled and\n // there is a React bug. The headers will then be updated in the render\n // result below when the metadata is re-added to the new render result.\n const onTimeout = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_38__.DetachedPromise();\n const timeout = setTimeout(()=>{\n onTimeout.reject(new Error(\"Timeout waiting for headers to be emitted, this is a bug in Next.js\"));\n }, 1500);\n // Race against the timeout and the headers being written.\n await Promise.race([\n onHeadersFinished.promise,\n onTimeout.promise\n ]);\n // It got here, which means it did not reject, so clear the timeout to avoid\n // it from rejecting again (which is a no-op anyways).\n clearTimeout(timeout);\n // If PPR is enabled and the postpone was triggered but lacks the postponed\n // state information then we should error out unless the client side rendering\n // bailout error was also emitted which indicates that part of the stream was\n // not rendered.\n if (renderOpts.experimental.ppr && staticGenerationStore.postponeWasTriggered && !metadata.postponed && (!response.err || !(0,_shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_25__.isBailoutToCSRError)(response.err))) {\n // a call to postpone was made but was caught and not detected by Next.js. We should fail the build immediately\n // as we won't be able to generate the static part\n (0,_build_output_log__WEBPACK_IMPORTED_MODULE_26__.warn)(\"\");\n (0,_build_output_log__WEBPACK_IMPORTED_MODULE_26__.error)(`Prerendering ${urlPathname} needs to partially bail out because something dynamic was used. ` + `React throws a special object to indicate where we need to bail out but it was caught ` + `by a try/catch or a Promise was not awaited. These special objects should not be caught ` + `by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`);\n if (capturedErrors.length > 0) {\n (0,_build_output_log__WEBPACK_IMPORTED_MODULE_26__.warn)(\"The following error was thrown during build, and may help identify the source of the issue:\");\n (0,_build_output_log__WEBPACK_IMPORTED_MODULE_26__.error)(capturedErrors[0]);\n }\n throw new _is_missing_postpone_error__WEBPACK_IMPORTED_MODULE_37__.MissingPostponeDataError(`An unexpected error occurred while prerendering ${urlPathname}. Please check the logs above for more details.`);\n }\n if (!flightDataResolver) {\n throw new Error(\"Invariant: Flight data resolver is missing when generating static HTML\");\n }\n // If we encountered any unexpected errors during build we fail the\n // prerendering phase and the build.\n if (capturedErrors.length > 0) {\n throw capturedErrors[0];\n }\n // Wait for and collect the flight payload data if we don't have it\n // already\n const flightData = await flightDataResolver();\n if (flightData) {\n metadata.flightData = flightData;\n }\n // If force static is specifically set to false, we should not revalidate\n // the page.\n if (staticGenerationStore.forceStatic === false) {\n staticGenerationStore.revalidate = 0;\n }\n // Copy the revalidation value onto the render result metadata.\n metadata.revalidate = staticGenerationStore.revalidate ?? ctx.defaultRevalidate;\n // provide bailout info for debugging\n if (metadata.revalidate === 0) {\n metadata.staticBailoutInfo = {\n description: staticGenerationStore.dynamicUsageDescription,\n stack: staticGenerationStore.dynamicUsageStack\n };\n }\n return new _render_result__WEBPACK_IMPORTED_MODULE_3__[\"default\"](response.stream, options);\n}\nconst renderToHTMLOrFlight = (req, res, pagePath, query, renderOpts)=>{\n // TODO: this includes query string, should it?\n const pathname = (0,_validate_url__WEBPACK_IMPORTED_MODULE_22__.validateURL)(req.url);\n return _async_storage_request_async_storage_wrapper__WEBPACK_IMPORTED_MODULE_9__.RequestAsyncStorageWrapper.wrap(renderOpts.ComponentMod.requestAsyncStorage, {\n req,\n res,\n renderOpts\n }, (requestStore)=>_async_storage_static_generation_async_storage_wrapper__WEBPACK_IMPORTED_MODULE_10__.StaticGenerationAsyncStorageWrapper.wrap(renderOpts.ComponentMod.staticGenerationAsyncStorage, {\n urlPathname: pathname,\n renderOpts,\n postpone: (react__WEBPACK_IMPORTED_MODULE_1___default().unstable_postpone)\n }, (staticGenerationStore)=>renderToHTMLOrFlightImpl(req, res, pagePath, query, renderOpts, {\n requestStore,\n staticGenerationStore,\n componentMod: renderOpts.ComponentMod,\n renderOpts\n })));\n}; //# sourceMappingURL=app-render.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvYXBwLXJlbmRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFzRjtBQUM1RDtBQUNzRDtBQUNwQztBQUMrRztBQUMzRTtBQUN2QjtBQUNvRTtBQUN0RDtBQUNxQjtBQUNtQjtBQUMzQztBQUN3RDtBQUN2RTtBQUNFO0FBQ1A7QUFDWTtBQUNBO0FBQ2lDO0FBQ3ZDO0FBQ29CO0FBQ21CO0FBQ2hEO0FBQ3lEO0FBQ3REO0FBQ21DO0FBQzlCO0FBQ2lDO0FBQ3BCO0FBQ1Y7QUFDc0I7QUFDRjtBQUNTO0FBQ3ZCO0FBQ0M7QUFDWTtBQUNYO0FBQ087QUFDVjtBQUN1QjtBQUMxQjtBQUNrQztBQUM1RixTQUFTd0QseUJBQXlCQyxVQUFVO0lBQ3hDLG1FQUFtRTtJQUNuRSxPQUFPO1FBQ0g7UUFDQSxDQUFDO1FBQ0RBLFVBQVUsQ0FBQyxFQUFFO0tBQ2hCO0FBQ0w7QUFDQTs7Ozs7O0NBTUMsR0FBRyxTQUFTQyxnQ0FBZ0NDLHlCQUF5QixFQUFFQyxPQUFPO0lBQzNFLElBQUksQ0FBQ0QsMkJBQTJCO1FBQzVCLE9BQU87SUFDWDtJQUNBLE1BQU1FLGNBQWNGLHlCQUF5QixDQUFDLEVBQUU7SUFDaEQsSUFBSTlDLHlGQUFzQkEsQ0FBQytDLFNBQVNDLGNBQWM7UUFDOUMsSUFBSSxDQUFDQyxNQUFNQyxPQUFPLENBQUNGLGdCQUFnQkMsTUFBTUMsT0FBTyxDQUFDSCxVQUFVO1lBQ3ZELE9BQU87UUFDWDtRQUNBLE9BQU87WUFDSEksT0FBT0gsV0FBVyxDQUFDLEVBQUU7WUFDckJJLE9BQU9KLFdBQVcsQ0FBQyxFQUFFO1lBQ3JCQSxhQUFhQTtZQUNiSyxNQUFNTCxXQUFXLENBQUMsRUFBRTtRQUN4QjtJQUNKO0lBQ0EsS0FBSyxNQUFNTSx1QkFBdUJDLE9BQU9DLE1BQU0sQ0FBQ1YseUJBQXlCLENB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QyxNQUFNcEIsV0FBVzdELDJEQUFXQSxDQUFDa0ksSUFBSXlLLEdBQUc7SUFDcEMsT0FBTzNULG9HQUEwQkEsQ0FBQ21PLElBQUksQ0FBQ2xJLFdBQVcyRCxZQUFZLENBQUNnSyxtQkFBbUIsRUFBRTtRQUNoRjFLO1FBQ0FsQjtRQUNBL0I7SUFDSixHQUFHLENBQUN5RixlQUFlekwsd0hBQW1DQSxDQUFDa08sSUFBSSxDQUFDbEksV0FBVzJELFlBQVksQ0FBQ2lLLDRCQUE0QixFQUFFO1lBQzFHdFAsYUFBYU07WUFDYm9CO1lBQ0E2TixVQUFVM1UsZ0VBQXVCO1FBQ3JDLEdBQUcsQ0FBQ21GLHdCQUF3QjJFLHlCQUF5QkMsS0FBS2xCLEtBQUttQixVQUFVaEMsT0FBT2xCLFlBQVk7Z0JBQ3BGeUY7Z0JBQ0FwSDtnQkFDQUosY0FBYytCLFdBQVcyRCxZQUFZO2dCQUNyQzNEO1lBQ0o7QUFDWixFQUFFLENBRUYsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9hcHAtcmVuZGVyLmpzPzA1NTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUmVhY3RTZXJ2ZXJSZW5kZXJlciB9IGZyb20gXCIuL2NyZWF0ZS1zZXJ2ZXItY29tcG9uZW50cy1yZW5kZXJlclwiO1xuaW1wb3J0IFJlbmRlclJlc3VsdCBmcm9tIFwiLi4vcmVuZGVyLXJlc3VsdFwiO1xuaW1wb3J0IHsgcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbSwgY29udGludWVGaXp6U3RyZWFtLCBjbG9uZVRyYW5zZm9ybVN0cmVhbSwgY29udGludWVQb3N0cG9uZWRGaXp6U3RyZWFtIH0gZnJvbSBcIi4uL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlclwiO1xuaW1wb3J0IHsgY2FuU2VnbWVudEJlT3ZlcnJpZGRlbiB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9tYXRjaC1zZWdtZW50c1wiO1xuaW1wb3J0IHsgc3RyaXBJbnRlcm5hbFF1ZXJpZXMgfSBmcm9tIFwiLi4vaW50ZXJuYWwtdXRpbHNcIjtcbmltcG9ydCB7IE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiwgTkVYVF9ST1VURVJfU1RBVEVfVFJFRSwgUlNDX0hFQURFUiB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbmltcG9ydCB7IGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cyB9IGZyb20gXCIuLi8uLi9saWIvbWV0YWRhdGEvbWV0YWRhdGFcIjtcbmltcG9ydCB7IFJlcXVlc3RBc3luY1N0b3JhZ2VXcmFwcGVyIH0gZnJvbSBcIi4uL2FzeW5jLXN0b3JhZ2UvcmVxdWVzdC1hc3luYy1zdG9yYWdlLXdyYXBwZXJcIjtcbmltcG9ydCB7IFN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2VXcmFwcGVyIH0gZnJvbSBcIi4uL2FzeW5jLXN0b3JhZ2Uvc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS13cmFwcGVyXCI7XG5pbXBvcnQgeyBpc05vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kXCI7XG5pbXBvcnQgeyBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvciwgaXNSZWRpcmVjdEVycm9yLCBnZXRSZWRpcmVjdFN0YXR1c0NvZGVGcm9tRXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3RcIjtcbmltcG9ydCB7IGFkZEltcGxpY2l0VGFncyB9IGZyb20gXCIuLi9saWIvcGF0Y2gtZmV0Y2hcIjtcbmltcG9ydCB7IEFwcFJlbmRlclNwYW4gfSBmcm9tIFwiLi4vbGliL3RyYWNlL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0VHJhY2VyIH0gZnJvbSBcIi4uL2xpYi90cmFjZS90cmFjZXJcIjtcbmltcG9ydCB7IEZsaWdodFJlbmRlclJlc3VsdCB9IGZyb20gXCIuL2ZsaWdodC1yZW5kZXItcmVzdWx0XCI7XG5pbXBvcnQgeyBjcmVhdGVFcnJvckhhbmRsZXIgfSBmcm9tIFwiLi9jcmVhdGUtZXJyb3ItaGFuZGxlclwiO1xuaW1wb3J0IHsgZ2V0U2hvcnREeW5hbWljUGFyYW1UeXBlLCBkeW5hbWljUGFyYW1UeXBlcyB9IGZyb20gXCIuL2dldC1zaG9ydC1keW5hbWljLXBhcmFtLXR5cGVcIjtcbmltcG9ydCB7IGdldFNlZ21lbnRQYXJhbSB9IGZyb20gXCIuL2dldC1zZWdtZW50LXBhcmFtXCI7XG5pbXBvcnQgeyBnZXRTY3JpcHROb25jZUZyb21IZWFkZXIgfSBmcm9tIFwiLi9nZXQtc2NyaXB0LW5vbmNlLWZyb20taGVhZGVyXCI7XG5pbXBvcnQgeyBwYXJzZUFuZFZhbGlkYXRlRmxpZ2h0Um91dGVyU3RhdGUgfSBmcm9tIFwiLi9wYXJzZS1hbmQtdmFsaWRhdGUtZmxpZ2h0LXJvdXRlci1zdGF0ZVwiO1xuaW1wb3J0IHsgdmFsaWRhdGVVUkwgfSBmcm9tIFwiLi92YWxpZGF0ZS11cmxcIjtcbmltcG9ydCB7IGNyZWF0ZUZsaWdodFJvdXRlclN0YXRlRnJvbUxvYWRlclRyZWUgfSBmcm9tIFwiLi9jcmVhdGUtZmxpZ2h0LXJvdXRlci1zdGF0ZS1mcm9tLWxvYWRlci10cmVlXCI7XG5pbXBvcnQgeyBoYW5kbGVBY3Rpb24gfSBmcm9tIFwiLi9hY3Rpb24taGFuZGxlclwiO1xuaW1wb3J0IHsgaXNCYWlsb3V0VG9DU1JFcnJvciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzclwiO1xuaW1wb3J0IHsgd2FybiwgZXJyb3IgfSBmcm9tIFwiLi4vLi4vYnVpbGQvb3V0cHV0L2xvZ1wiO1xuaW1wb3J0IHsgYXBwZW5kTXV0YWJsZUNvb2tpZXMgfSBmcm9tIFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlcXVlc3QtY29va2llc1wiO1xuaW1wb3J0IHsgY3JlYXRlU2VydmVySW5zZXJ0ZWRIVE1MIH0gZnJvbSBcIi4vc2VydmVyLWluc2VydGVkLWh0bWxcIjtcbmltcG9ydCB7IGdldFJlcXVpcmVkU2NyaXB0cyB9IGZyb20gXCIuL3JlcXVpcmVkLXNjcmlwdHNcIjtcbmltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCI7XG5pbXBvcnQgeyBtYWtlR2V0U2VydmVySW5zZXJ0ZWRIVE1MIH0gZnJvbSBcIi4vbWFrZS1nZXQtc2VydmVyLWluc2VydGVkLWh0bWxcIjtcbmltcG9ydCB7IHdhbGtUcmVlV2l0aEZsaWdodFJvdXRlclN0YXRlIH0gZnJvbSBcIi4vd2Fsay10cmVlLXdpdGgtZmxpZ2h0LXJvdXRlci1zdGF0ZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ29tcG9uZW50VHJlZSB9IGZyb20gXCIuL2NyZWF0ZS1jb21wb25lbnQtdHJlZVwiO1xuaW1wb3J0IHsgZ2V0QXNzZXRRdWVyeVN0cmluZyB9IGZyb20gXCIuL2dldC1hc3NldC1xdWVyeS1zdHJpbmdcIjtcbmltcG9ydCB7IHNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbiB9IGZyb20gXCIuL2FjdGlvbi1lbmNyeXB0aW9uLXV0aWxzXCI7XG5pbXBvcnQgeyBjcmVhdGVTdGF0aWNSZW5kZXJlciB9IGZyb20gXCIuL3N0YXRpYy9zdGF0aWMtcmVuZGVyZXJcIjtcbmltcG9ydCB7IE1pc3NpbmdQb3N0cG9uZURhdGFFcnJvciB9IGZyb20gXCIuL2lzLW1pc3NpbmctcG9zdHBvbmUtZXJyb3JcIjtcbmltcG9ydCB7IERldGFjaGVkUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiO1xuaW1wb3J0IHsgaXNEeW5hbWljU2VydmVyRXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHRcIjtcbmltcG9ydCB7IHVzZUZsaWdodFJlc3BvbnNlIH0gZnJvbSBcIi4vdXNlLWZsaWdodC1yZXNwb25zZVwiO1xuaW1wb3J0IHsgaXNTdGF0aWNHZW5CYWlsb3V0RXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dFwiO1xuZnVuY3Rpb24gY3JlYXRlTm90Rm91bmRMb2FkZXJUcmVlKGxvYWRlclRyZWUpIHtcbiAgICAvLyBBbGlnbiB0aGUgc2VnbWVudCB3aXRoIHBhcmFsbGVsLXJvdXRlLWRlZmF1bHQgaW4gbmV4dC1hcHAtbG9hZGVyXG4gICAgcmV0dXJuIFtcbiAgICAgICAgXCJcIixcbiAgICAgICAge30sXG4gICAgICAgIGxvYWRlclRyZWVbMl1cbiAgICBdO1xufVxuLyogVGhpcyBtZXRob2QgaXMgaW1wb3J0YW50IGZvciBpbnRlcmNlcHRlZCByb3V0ZXMgdG8gZnVuY3Rpb246XG4gKiB3aGVuIGEgcm91dGUgaXMgaW50ZXJjZXB0ZWQsIGUuZy4gL2Jsb2cvW3NsdWddLCBpdCB3aWxsIGJlIHJlbmRlcmVkXG4gKiB3aXRoIHRoZSBsYXlvdXQgb2YgdGhlIHByZXZpb3VzIHBhZ2UsIGUuZy4gL3Byb2ZpbGUvW2lkXS4gVGhlIHByb2JsZW0gaXNcbiAqIHRoYXQgdGhlIGxvYWRlciB0cmVlIG5lZWRzIHRvIGtub3cgdGhlIGR5bmFtaWMgcGFyYW0gaW4gb3JkZXIgdG8gcmVuZGVyIChpZCBhbmQgc2x1ZyBpbiB0aGUgZXhhbXBsZSkuXG4gKiBOb3JtYWxseSB0aGV5IGFyZSByZWFkIGZyb20gdGhlIHBhdGggYnV0IHNpbmNlIHdlIGFyZSBpbnRlcmNlcHRpbmcgdGhlIHJvdXRlLCB0aGUgcGF0aCB3b3VsZCBub3QgY29udGFpbiBpZCxcbiAqIHNvIHdlIG5lZWQgdG8gcmVhZCBpdCBmcm9tIHRoZSByb3V0ZXIgc3RhdGUuXG4gKi8gZnVuY3Rpb24gZmluZER5bmFtaWNQYXJhbUZyb21Sb3V0ZXJTdGF0ZShwcm92aWRlZEZsaWdodFJvdXRlclN0YXRlLCBzZWdtZW50KSB7XG4gICAgaWYgKCFwcm92aWRlZEZsaWdodFJvdXRlclN0YXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCB0cmVlU2VnbWVudCA9IHByb3ZpZGVkRmxpZ2h0Um91dGVyU3RhdGVbMF07XG4gICAgaWYgKGNhblNlZ21lbnRCZU92ZXJyaWRkZW4oc2VnbWVudCwgdHJlZVNlZ21lbnQpKSB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh0cmVlU2VnbWVudCkgfHwgQXJyYXkuaXNBcnJheShzZWdtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtOiB0cmVlU2VnbWVudFswXSxcbiAgICAgICAgICAgIHZhbHVlOiB0cmVlU2VnbWVudFsxXSxcbiAgICAgICAgICAgIHRyZWVTZWdtZW50OiB0cmVlU2VnbWVudCxcbiAgICAgICAgICAgIHR5cGU6IHRyZWVTZWdtZW50WzJdXG4gICAgICAgIH07XG4gICAgfVxuICAgIGZvciAoY29uc3QgcGFyYWxsZWxSb3V0ZXJTdGF0ZSBvZiBPYmplY3QudmFsdWVzKHByb3ZpZGVkRmxpZ2h0Um91dGVyU3RhdGVbMV0pKXtcbiAgICAgICAgY29uc3QgbWF5YmVEeW5hbWljUGFyYW0gPSBmaW5kRHluYW1pY1BhcmFtRnJvbVJvdXRlclN0YXRlKHBhcmFsbGVsUm91dGVyU3RhdGUsIHNlZ21lbnQpO1xuICAgICAgICBpZiAobWF5YmVEeW5hbWljUGFyYW0pIHtcbiAgICAgICAgICAgIHJldHVybiBtYXliZUR5bmFtaWNQYXJhbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgcGFyc2VzIHRoZSBkeW5hbWljIHNlZ21lbnQgYW5kIHJldHVybiB0aGUgYXNzb2NpYXRlZCB2YWx1ZS5cbiAqLyBmdW5jdGlvbiBtYWtlR2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQocGFyYW1zLCBwcm92aWRlZEZsaWdodFJvdXRlclN0YXRlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50KC8vIFtzbHVnXSAvIFtbc2x1Z11dIC8gWy4uLnNsdWddXG4gICAgc2VnbWVudCkge1xuICAgICAgICBjb25zdCBzZWdtZW50UGFyYW0gPSBnZXRTZWdtZW50UGFyYW0oc2VnbWVudCk7XG4gICAgICAgIGlmICghc2VnbWVudFBhcmFtKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXkgPSBzZWdtZW50UGFyYW0ucGFyYW07XG4gICAgICAgIGxldCB2YWx1ZSA9IHBhcmFtc1trZXldO1xuICAgICAgICAvLyB0aGlzIGlzIGEgc3BlY2lhbCBtYXJrZXIgdGhhdCB3aWxsIGJlIHByZXNlbnQgZm9yIGludGVyY2VwdGlvbiByb3V0ZXNcbiAgICAgICAgaWYgKHZhbHVlID09PSBcIl9fTkVYVF9FTVBUWV9QQVJBTV9fXCIpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5tYXAoKGkpPT5lbmNvZGVVUklDb21wb25lbnQoaSkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZXJlIG9wdGlvbmFsIGNhdGNoYWxsIGRvZXMgbm90IGhhdmUgYSB2YWx1ZSwgZS5nLiBgL2Rhc2hib2FyZC9bLi4uc2x1Z11gIHdoZW4gcmVxdWVzdGluZyBgL2Rhc2hib2FyZGBcbiAgICAgICAgICAgIGlmIChzZWdtZW50UGFyYW0udHlwZSA9PT0gXCJvcHRpb25hbC1jYXRjaGFsbFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IGR5bmFtaWNQYXJhbVR5cGVzW3NlZ21lbnRQYXJhbS50eXBlXTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbToga2V5LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB2YWx1ZSBhbHdheXMgaGFzIHRvIGJlIGEgc3RyaW5nLlxuICAgICAgICAgICAgICAgICAgICB0cmVlU2VnbWVudDogW1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmluZER5bmFtaWNQYXJhbUZyb21Sb3V0ZXJTdGF0ZShwcm92aWRlZEZsaWdodFJvdXRlclN0YXRlLCBzZWdtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0eXBlID0gZ2V0U2hvcnREeW5hbWljUGFyYW1UeXBlKHNlZ21lbnRQYXJhbS50eXBlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtOiBrZXksXG4gICAgICAgICAgICAvLyBUaGUgdmFsdWUgdGhhdCBpcyBwYXNzZWQgdG8gdXNlciBjb2RlLlxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgLy8gVGhlIHZhbHVlIHRoYXQgaXMgcmVuZGVyZWQgaW4gdGhlIHJvdXRlciB0cmVlLlxuICAgICAgICAgICAgdHJlZVNlZ21lbnQ6IFtcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5qb2luKFwiL1wiKSA6IHZhbHVlLFxuICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0eXBlOiB0eXBlXG4gICAgICAgIH07XG4gICAgfTtcbn1cbi8vIEhhbmRsZSBGbGlnaHQgcmVuZGVyIHJlcXVlc3QuIFRoaXMgaXMgb25seSB1c2VkIHdoZW4gY2xpZW50LXNpZGUgbmF2aWdhdGluZy4gRS5nLiB3aGVuIHlvdSBgcm91dGVyLnB1c2goJy9kYXNoYm9hcmQnKWAgb3IgYHJvdXRlci5yZWxvYWQoKWAuXG5hc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUZsaWdodChjdHgsIG9wdGlvbnMpIHtcbiAgICAvLyBGbGlnaHQgZGF0YSB0aGF0IGlzIGdvaW5nIHRvIGJlIHBhc3NlZCB0byB0aGUgYnJvd3Nlci5cbiAgICAvLyBDdXJyZW50bHkgYSBzaW5nbGUgaXRlbSBhcnJheSBidXQgaW4gdGhlIGZ1dHVyZSBtdWx0aXBsZSBwYXRjaGVzIG1pZ2h0IGJlIGNvbWJpbmVkIGluIGEgc2luZ2xlIHJlcXVlc3QuXG4gICAgbGV0IGZsaWdodERhdGEgPSBudWxsO1xuICAgIGNvbnN0IHsgY29tcG9uZW50TW9kOiB7IHRyZWU6IGxvYWRlclRyZWUsIHJlbmRlclRvUmVhZGFibGVTdHJlYW0gfSwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIGFwcFVzaW5nU2l6ZUFkanVzdG1lbnQsIHN0YXRpY0dlbmVyYXRpb25TdG9yZTogeyB1cmxQYXRobmFtZSB9LCBwcm92aWRlZFNlYXJjaFBhcmFtcywgcmVxdWVzdElkLCBwcm92aWRlZEZsaWdodFJvdXRlclN0YXRlIH0gPSBjdHg7XG4gICAgaWYgKCEob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5za2lwRmxpZ2h0KSkge1xuICAgICAgICBjb25zdCBbTWV0YWRhdGFUcmVlLCBNZXRhZGF0YU91dGxldF0gPSBjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHMoe1xuICAgICAgICAgICAgdHJlZTogbG9hZGVyVHJlZSxcbiAgICAgICAgICAgIHBhdGhuYW1lOiB1cmxQYXRobmFtZSxcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtczogcHJvdmlkZWRTZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCxcbiAgICAgICAgICAgIGFwcFVzaW5nU2l6ZUFkanVzdG1lbnRcbiAgICAgICAgfSk7XG4gICAgICAgIGZsaWdodERhdGEgPSAoYXdhaXQgd2Fsa1RyZWVXaXRoRmxpZ2h0Um91dGVyU3RhdGUoe1xuICAgICAgICAgICAgY3R4LFxuICAgICAgICAgICAgY3JlYXRlU2VnbWVudFBhdGg6IChjaGlsZCk9PmNoaWxkLFxuICAgICAgICAgICAgbG9hZGVyVHJlZVRvRmlsdGVyOiBsb2FkZXJUcmVlLFxuICAgICAgICAgICAgcGFyZW50UGFyYW1zOiB7fSxcbiAgICAgICAgICAgIGZsaWdodFJvdXRlclN0YXRlOiBwcm92aWRlZEZsaWdodFJvdXRlclN0YXRlLFxuICAgICAgICAgICAgaXNGaXJzdDogdHJ1ZSxcbiAgICAgICAgICAgIC8vIEZvciBmbGlnaHQsIHJlbmRlciBtZXRhZGF0YSBpbnNpZGUgbGVhZiBwYWdlXG4gICAgICAgICAgICByc2NQYXlsb2FkSGVhZDogLy8gQWRkaW5nIHJlcXVlc3RJZCBhcyByZWFjdCBrZXkgdG8gbWFrZSBtZXRhZGF0YSByZW1vdW50IGZvciBlYWNoIHJlbmRlclxuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KE1ldGFkYXRhVHJlZSwge30sIHJlcXVlc3RJZCksXG4gICAgICAgICAgICBpbmplY3RlZENTUzogbmV3IFNldCgpLFxuICAgICAgICAgICAgaW5qZWN0ZWRKUzogbmV3IFNldCgpLFxuICAgICAgICAgICAgaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3M6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIHJvb3RMYXlvdXRJbmNsdWRlZDogZmFsc2UsXG4gICAgICAgICAgICBhc05vdEZvdW5kOiBjdHguaXNOb3RGb3VuZFBhdGggfHwgKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMuYXNOb3RGb3VuZCksXG4gICAgICAgICAgICBtZXRhZGF0YU91dGxldDogLyojX19QVVJFX18qLyBfanN4KE1ldGFkYXRhT3V0bGV0LCB7fSlcbiAgICAgICAgfSkpLm1hcCgocGF0aCk9PnBhdGguc2xpY2UoMSkpIC8vIHJlbW92ZSB0aGUgJycgKHJvb3QpIHNlZ21lbnRcbiAgICAgICAgO1xuICAgIH1cbiAgICBjb25zdCBidWlsZElkRmxpZ2h0RGF0YVBhaXIgPSBbXG4gICAgICAgIGN0eC5yZW5kZXJPcHRzLmJ1aWxkSWQsXG4gICAgICAgIGZsaWdodERhdGFcbiAgICBdO1xuICAgIC8vIEZvciBhcHAgZGlyLCB1c2UgdGhlIGJ1bmRsZWQgdmVyc2lvbiBvZiBGbGlnaHQgc2VydmVyIHJlbmRlcmVyIChyZW5kZXJUb1JlYWRhYmxlU3RyZWFtKVxuICAgIC8vIHdoaWNoIGNvbnRhaW5zIHRoZSBzdWJzZXQgUmVhY3QuXG4gICAgY29uc3QgZmxpZ2h0UmVhZGFibGVTdHJlYW0gPSByZW5kZXJUb1JlYWRhYmxlU3RyZWFtKG9wdGlvbnMgPyBbXG4gICAgICAgIG9wdGlvbnMuYWN0aW9uUmVzdWx0LFxuICAgICAgICBidWlsZElkRmxpZ2h0RGF0YVBhaXJcbiAgICBdIDogYnVpbGRJZEZsaWdodERhdGFQYWlyLCBjdHguY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QuY2xpZW50TW9kdWxlcywge1xuICAgICAgICBvbkVycm9yOiBjdHguZmxpZ2h0RGF0YVJlbmRlcmVyRXJyb3JIYW5kbGVyXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBGbGlnaHRSZW5kZXJSZXN1bHQoZmxpZ2h0UmVhZGFibGVTdHJlYW0pO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgcmVzb2x2ZXIgdGhhdCBlYWdlcmx5IGdlbmVyYXRlcyBhIGZsaWdodCBwYXlsb2FkIHRoYXQgaXMgdGhlblxuICogcmVzb2x2ZWQgd2hlbiB0aGUgcmVzb2x2ZXIgaXMgY2FsbGVkLlxuICovIGZ1bmN0aW9uIGNyZWF0ZUZsaWdodERhdGFSZXNvbHZlcihjdHgpIHtcbiAgICAvLyBHZW5lcmF0ZSB0aGUgZmxpZ2h0IGRhdGEgYW5kIGFzIHNvb24gYXMgaXQgY2FuLCBjb252ZXJ0IGl0IGludG8gYSBzdHJpbmcuXG4gICAgY29uc3QgcHJvbWlzZSA9IGdlbmVyYXRlRmxpZ2h0KGN0eCkudGhlbihhc3luYyAocmVzdWx0KT0+KHtcbiAgICAgICAgICAgIGZsaWdodERhdGE6IGF3YWl0IHJlc3VsdC50b1VuY2h1bmtlZFN0cmluZyh0cnVlKVxuICAgICAgICB9KSkvLyBPdGhlcndpc2UgaWYgaXQgZXJyb3JlZCwgcmV0dXJuIHRoZSBlcnJvci5cbiAgICAuY2F0Y2goKGVycik9Pih7XG4gICAgICAgICAgICBlcnJcbiAgICAgICAgfSkpO1xuICAgIHJldHVybiBhc3luYyAoKT0+e1xuICAgICAgICAvLyBSZXNvbHZlIHRoZSBwcm9taXNlIHRvIGdldCB0aGUgZmxpZ2h0IGRhdGEgb3IgZXJyb3IuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7XG4gICAgICAgIC8vIElmIHRoZSBmbGlnaHQgZGF0YSBmYWlsZWQgdG8gcmVuZGVyIGR1ZSB0byBhbiBlcnJvciwgcmUtdGhyb3cgdGhlIGVycm9yXG4gICAgICAgIC8vIGhlcmUuXG4gICAgICAgIGlmIChcImVyclwiIGluIHJlc3VsdCkge1xuICAgICAgICAgICAgdGhyb3cgcmVzdWx0LmVycjtcbiAgICAgICAgfVxuICAgICAgICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgZmxpZ2h0IGRhdGEuXG4gICAgICAgIHJldHVybiByZXN1bHQuZmxpZ2h0RGF0YTtcbiAgICB9O1xufVxuLy8gVGhpcyBpcyB0aGUgcm9vdCBjb21wb25lbnQgdGhhdCBydW5zIGluIHRoZSBSU0MgY29udGV4dFxuYXN5bmMgZnVuY3Rpb24gUmVhY3RTZXJ2ZXJBcHAoeyB0cmVlLCBjdHgsIHByZWluaXRTY3JpcHRzLCBhc05vdEZvdW5kIH0pIHtcbiAgICBwcmVpbml0U2NyaXB0cygpO1xuICAgIC8vIENyZWF0ZSBmdWxsIGNvbXBvbmVudCB0cmVlIGZyb20gcm9vdCB0byBsZWFmLlxuICAgIGNvbnN0IGluamVjdGVkQ1NTID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IGluamVjdGVkSlMgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3MgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgbWlzc2luZ1Nsb3RzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHsgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHF1ZXJ5LCBwcm92aWRlZFNlYXJjaFBhcmFtcywgYXBwVXNpbmdTaXplQWRqdXN0bWVudCwgY29tcG9uZW50TW9kOiB7IEFwcFJvdXRlciwgR2xvYmFsRXJyb3IgfSwgc3RhdGljR2VuZXJhdGlvblN0b3JlOiB7IHVybFBhdGhuYW1lIH0gfSA9IGN0eDtcbiAgICBjb25zdCBpbml0aWFsVHJlZSA9IGNyZWF0ZUZsaWdodFJvdXRlclN0YXRlRnJvbUxvYWRlclRyZWUodHJlZSwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHF1ZXJ5KTtcbiAgICBjb25zdCBbTWV0YWRhdGFUcmVlLCBNZXRhZGF0YU91dGxldF0gPSBjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHMoe1xuICAgICAgICB0cmVlLFxuICAgICAgICBlcnJvclR5cGU6IGFzTm90Rm91bmQgPyBcIm5vdC1mb3VuZFwiIDogdW5kZWZpbmVkLFxuICAgICAgICBwYXRobmFtZTogdXJsUGF0aG5hbWUsXG4gICAgICAgIHNlYXJjaFBhcmFtczogcHJvdmlkZWRTZWFyY2hQYXJhbXMsXG4gICAgICAgIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50OiBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCxcbiAgICAgICAgYXBwVXNpbmdTaXplQWRqdXN0bWVudDogYXBwVXNpbmdTaXplQWRqdXN0bWVudFxuICAgIH0pO1xuICAgIGNvbnN0IHsgc2VlZERhdGEsIHN0eWxlcyB9ID0gYXdhaXQgY3JlYXRlQ29tcG9uZW50VHJlZSh7XG4gICAgICAgIGN0eCxcbiAgICAgICAgY3JlYXRlU2VnbWVudFBhdGg6IChjaGlsZCk9PmNoaWxkLFxuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlLFxuICAgICAgICBwYXJlbnRQYXJhbXM6IHt9LFxuICAgICAgICBmaXJzdEl0ZW06IHRydWUsXG4gICAgICAgIGluamVjdGVkQ1NTLFxuICAgICAgICBpbmplY3RlZEpTLFxuICAgICAgICBpbmplY3RlZEZvbnRQcmVsb2FkVGFncyxcbiAgICAgICAgcm9vdExheW91dEluY2x1ZGVkOiBmYWxzZSxcbiAgICAgICAgYXNOb3RGb3VuZDogYXNOb3RGb3VuZCxcbiAgICAgICAgbWV0YWRhdGFPdXRsZXQ6IC8qI19fUFVSRV9fKi8gX2pzeChNZXRhZGF0YU91dGxldCwge30pLFxuICAgICAgICBtaXNzaW5nU2xvdHNcbiAgICB9KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHN0eWxlcyxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChBcHBSb3V0ZXIsIHtcbiAgICAgICAgICAgICAgICBidWlsZElkOiBjdHgucmVuZGVyT3B0cy5idWlsZElkLFxuICAgICAgICAgICAgICAgIGFzc2V0UHJlZml4OiBjdHguYXNzZXRQcmVmaXgsXG4gICAgICAgICAgICAgICAgaW5pdGlhbENhbm9uaWNhbFVybDogdXJsUGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgcm91dGVyIHN0YXRlIHRyZWUuXG4gICAgICAgICAgICAgICAgaW5pdGlhbFRyZWU6IGluaXRpYWxUcmVlLFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIHRyZWUgb2YgUmVhY3Qgbm9kZXMgdGhhdCBhcmUgc2VlZGVkIGludG8gdGhlIGNhY2hlXG4gICAgICAgICAgICAgICAgaW5pdGlhbFNlZWREYXRhOiBzZWVkRGF0YSxcbiAgICAgICAgICAgICAgICBpbml0aWFsSGVhZDogLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5yZXMuc3RhdHVzQ29kZSA+IDQwMCAmJiAvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInJvYm90c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwibm9pbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChNZXRhZGF0YVRyZWUsIHt9LCBjdHgucmVxdWVzdElkKVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZ2xvYmFsRXJyb3JDb21wb25lbnQ6IEdsb2JhbEVycm9yLFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBwcm92aWRlIGRlYnVnIGluZm9ybWF0aW9uICh3aGVuIGluIGRldmVsb3BtZW50IG1vZGUpXG4gICAgICAgICAgICAgICAgLy8gYWJvdXQgd2hpY2ggc2xvdHMgd2VyZSBub3QgZmlsbGVkIGJ5IHBhZ2UgY29tcG9uZW50cyB3aGlsZSBjcmVhdGluZyB0aGUgY29tcG9uZW50IHRyZWUuXG4gICAgICAgICAgICAgICAgbWlzc2luZ1Nsb3RzOiBtaXNzaW5nU2xvdHNcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn1cbi8vIFRoaXMgaXMgdGhlIHJvb3QgY29tcG9uZW50IHRoYXQgcnVucyBpbiB0aGUgUlNDIGNvbnRleHRcbmFzeW5jIGZ1bmN0aW9uIFJlYWN0U2VydmVyRXJyb3IoeyB0cmVlLCBjdHgsIHByZWluaXRTY3JpcHRzLCBlcnJvclR5cGUgfSkge1xuICAgIGNvbnN0IHsgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHF1ZXJ5LCBwcm92aWRlZFNlYXJjaFBhcmFtcywgYXBwVXNpbmdTaXplQWRqdXN0bWVudCwgY29tcG9uZW50TW9kOiB7IEFwcFJvdXRlciwgR2xvYmFsRXJyb3IgfSwgc3RhdGljR2VuZXJhdGlvblN0b3JlOiB7IHVybFBhdGhuYW1lIH0sIHJlcXVlc3RJZCwgcmVzIH0gPSBjdHg7XG4gICAgcHJlaW5pdFNjcmlwdHMoKTtcbiAgICBjb25zdCBbTWV0YWRhdGFUcmVlXSA9IGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cyh7XG4gICAgICAgIHRyZWUsXG4gICAgICAgIHBhdGhuYW1lOiB1cmxQYXRobmFtZSxcbiAgICAgICAgZXJyb3JUeXBlLFxuICAgICAgICBzZWFyY2hQYXJhbXM6IHByb3ZpZGVkU2VhcmNoUGFyYW1zLFxuICAgICAgICBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCxcbiAgICAgICAgYXBwVXNpbmdTaXplQWRqdXN0bWVudFxuICAgIH0pO1xuICAgIGNvbnN0IGhlYWQgPSAvKiNfX1BVUkVfXyovIF9qc3hzKF9GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KE1ldGFkYXRhVHJlZSwge30sIHJlcXVlc3RJZCksXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA+PSA0MDAgJiYgLyojX19QVVJFX18qLyBfanN4KFwibWV0YVwiLCB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJyb2JvdHNcIixcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIm5vaW5kZXhcIlxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIC8qI19fUFVSRV9fKi8gX2pzeChcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwibmV4dC1lcnJvclwiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwibm90LWZvdW5kXCJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBjb25zdCBpbml0aWFsVHJlZSA9IGNyZWF0ZUZsaWdodFJvdXRlclN0YXRlRnJvbUxvYWRlclRyZWUodHJlZSwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHF1ZXJ5KTtcbiAgICAvLyBGb3IgbWV0YWRhdGEgbm90Rm91bmQgZXJyb3IgdGhlcmUncyBubyBnbG9iYWwgbm90IGZvdW5kIGJvdW5kYXJ5IG9uIHRvcFxuICAgIC8vIHNvIHdlIGNyZWF0ZSBhIG5vdCBmb3VuZCBwYWdlIHdpdGggQXBwUm91dGVyXG4gICAgY29uc3QgaW5pdGlhbFNlZWREYXRhID0gW1xuICAgICAgICBpbml0aWFsVHJlZVswXSxcbiAgICAgICAge30sXG4gICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoXCJodG1sXCIsIHtcbiAgICAgICAgICAgIGlkOiBcIl9fbmV4dF9lcnJvcl9fXCIsXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcImhlYWRcIiwge30pLFxuICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChcImJvZHlcIiwge30pXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pXG4gICAgXTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KEFwcFJvdXRlciwge1xuICAgICAgICBidWlsZElkOiBjdHgucmVuZGVyT3B0cy5idWlsZElkLFxuICAgICAgICBhc3NldFByZWZpeDogY3R4LmFzc2V0UHJlZml4LFxuICAgICAgICBpbml0aWFsQ2Fub25pY2FsVXJsOiB1cmxQYXRobmFtZSxcbiAgICAgICAgaW5pdGlhbFRyZWU6IGluaXRpYWxUcmVlLFxuICAgICAgICBpbml0aWFsSGVhZDogaGVhZCxcbiAgICAgICAgZ2xvYmFsRXJyb3JDb21wb25lbnQ6IEdsb2JhbEVycm9yLFxuICAgICAgICBpbml0aWFsU2VlZERhdGE6IGluaXRpYWxTZWVkRGF0YSxcbiAgICAgICAgbWlzc2luZ1Nsb3RzOiBuZXcgU2V0KClcbiAgICB9KTtcbn1cbi8vIFRoaXMgY29tcG9uZW50IG11c3QgcnVuIGluIGFuIFNTUiBjb250ZXh0LiBJdCB3aWxsIHJlbmRlciB0aGUgUlNDIHJvb3QgY29tcG9uZW50XG5mdW5jdGlvbiBSZWFjdFNlcnZlckVudHJ5cG9pbnQoeyByZW5kZXJSZWFjdFNlcnZlciwgaW5saW5lZERhdGFUcmFuc2Zvcm1TdHJlYW0sIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LCBmb3JtU3RhdGUsIG5vbmNlIH0pIHtcbiAgICBjb25zdCB3cml0YWJsZSA9IGlubGluZWREYXRhVHJhbnNmb3JtU3RyZWFtLndyaXRhYmxlO1xuICAgIGNvbnN0IHJlYWN0U2VydmVyUmVxdWVzdFN0cmVhbSA9IHJlbmRlclJlYWN0U2VydmVyKCk7XG4gICAgY29uc3QgcmVhY3RTZXJ2ZXJSZXNwb25zZSA9IHVzZUZsaWdodFJlc3BvbnNlKHdyaXRhYmxlLCByZWFjdFNlcnZlclJlcXVlc3RTdHJlYW0sIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LCBmb3JtU3RhdGUsIG5vbmNlKTtcbiAgICByZXR1cm4gUmVhY3QudXNlKHJlYWN0U2VydmVyUmVzcG9uc2UpO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyVG9IVE1MT3JGbGlnaHRJbXBsKHJlcSwgcmVzLCBwYWdlUGF0aCwgcXVlcnksIHJlbmRlck9wdHMsIGJhc2VDdHgpIHtcbiAgICB2YXIgX2dldFRyYWNlcl9nZXRSb290U3BhbkF0dHJpYnV0ZXM7XG4gICAgY29uc3QgaXNOb3RGb3VuZFBhdGggPSBwYWdlUGF0aCA9PT0gXCIvNDA0XCI7XG4gICAgLy8gQSB1bmlxdWUgcmVxdWVzdCB0aW1lc3RhbXAgdXNlZCBieSBkZXZlbG9wbWVudCB0byBlbnN1cmUgdGhhdCBpdCdzXG4gICAgLy8gY29uc2lzdGVudCBhbmQgd29uJ3QgY2hhbmdlIGR1cmluZyB0aGlzIHJlcXVlc3QuIFRoaXMgaXMgaW1wb3J0YW50IHRvXG4gICAgLy8gYXZvaWQgdGhhdCByZXNvdXJjZXMgY2FuIGJlIGRlZHVwZWQgYnkgUmVhY3QgRmxvYXQgaWYgdGhlIHNhbWUgcmVzb3VyY2UgaXNcbiAgICAvLyByZW5kZXJlZCBvciBwcmVsb2FkZWQgbXVsdGlwbGUgdGltZXM6IGA8bGluayBocmVmPVwiYS5jc3M/dj17RGF0ZS5ub3coKX1cIi8+YC5cbiAgICBjb25zdCByZXF1ZXN0VGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCB7IGJ1aWxkTWFuaWZlc3QsIHN1YnJlc291cmNlSW50ZWdyaXR5TWFuaWZlc3QsIHNlcnZlckFjdGlvbnNNYW5pZmVzdCwgQ29tcG9uZW50TW9kLCBkZXYsIG5leHRGb250TWFuaWZlc3QsIHN1cHBvcnRzRHluYW1pY0hUTUwsIHNlcnZlckFjdGlvbnMsIGFwcERpckRldkVycm9yTG9nZ2VyLCBhc3NldFByZWZpeCA9IFwiXCIsIGVuYWJsZVRhaW50aW5nIH0gPSByZW5kZXJPcHRzO1xuICAgIC8vIFdlIG5lZWQgdG8gZXhwb3NlIHRoZSBidW5kbGVkIGByZXF1aXJlYCBBUEkgZ2xvYmFsbHkgZm9yXG4gICAgLy8gcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLiBUaGlzIGlzIGEgaGFjayB1bnRpbCB3ZSBmaW5kIGEgYmV0dGVyIHdheS5cbiAgICBpZiAoQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGdsb2JhbFRoaXMuX19uZXh0X3JlcXVpcmVfXyA9IENvbXBvbmVudE1vZC5fX25leHRfYXBwX18ucmVxdWlyZTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBnbG9iYWxUaGlzLl9fbmV4dF9jaHVua19sb2FkX18gPSBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fLmxvYWRDaHVuaztcbiAgICB9XG4gICAgY29uc3QgbWV0YWRhdGEgPSB7fTtcbiAgICBjb25zdCBhcHBVc2luZ1NpemVBZGp1c3RtZW50ID0gISEobmV4dEZvbnRNYW5pZmVzdCA9PSBudWxsID8gdm9pZCAwIDogbmV4dEZvbnRNYW5pZmVzdC5hcHBVc2luZ1NpemVBZGp1c3QpO1xuICAgIC8vIFRPRE86IGZpeCB0aGlzIHR5cGVzY3JpcHRcbiAgICBjb25zdCBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCA9IHJlbmRlck9wdHMuY2xpZW50UmVmZXJlbmNlTWFuaWZlc3Q7XG4gICAgY29uc3Qgd29ya2VyTmFtZSA9IFwiYXBwXCIgKyByZW5kZXJPcHRzLnBhZ2U7XG4gICAgY29uc3Qgc2VydmVyTW9kdWxlTWFwID0gbmV3IFByb3h5KHt9LCB7XG4gICAgICAgIGdldDogKF8sIGlkKT0+e1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogc2VydmVyQWN0aW9uc01hbmlmZXN0W3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gXCJlZGdlXCIgPyBcImVkZ2VcIiA6IFwibm9kZVwiXVtpZF0ud29ya2Vyc1t3b3JrZXJOYW1lXSxcbiAgICAgICAgICAgICAgICBuYW1lOiBpZCxcbiAgICAgICAgICAgICAgICBjaHVua3M6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgc2V0UmVmZXJlbmNlTWFuaWZlc3RzU2luZ2xldG9uKHtcbiAgICAgICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gICAgICAgIHNlcnZlckFjdGlvbnNNYW5pZmVzdCxcbiAgICAgICAgc2VydmVyTW9kdWxlTWFwXG4gICAgfSk7XG4gICAgY29uc3QgY2FwdHVyZWRFcnJvcnMgPSBbXTtcbiAgICBjb25zdCBhbGxDYXB0dXJlZEVycm9ycyA9IFtdO1xuICAgIGNvbnN0IGlzTmV4dEV4cG9ydCA9ICEhcmVuZGVyT3B0cy5uZXh0RXhwb3J0O1xuICAgIGNvbnN0IHsgc3RhdGljR2VuZXJhdGlvblN0b3JlLCByZXF1ZXN0U3RvcmUgfSA9IGJhc2VDdHg7XG4gICAgY29uc3QgeyBpc1N0YXRpY0dlbmVyYXRpb24gfSA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZTtcbiAgICAvLyB3aGVuIHN0YXRpYyBnZW5lcmF0aW9uIGZhaWxzIGR1cmluZyBQUFIsIHdlIGxvZyB0aGUgZXJyb3JzIHNlcGFyYXRlbHkuIFdlIGludGVudGlvbmFsbHlcbiAgICAvLyBzaWxlbmNlIHRoZSBlcnJvciBsb2dnZXIgaW4gdGhpcyBjYXNlIHRvIGF2b2lkIGRvdWJsZSBsb2dnaW5nLlxuICAgIGNvbnN0IHNpbGVuY2VTdGF0aWNHZW5lcmF0aW9uRXJyb3JzID0gcmVuZGVyT3B0cy5leHBlcmltZW50YWwucHByICYmIGlzU3RhdGljR2VuZXJhdGlvbjtcbiAgICBjb25zdCBzZXJ2ZXJDb21wb25lbnRzRXJyb3JIYW5kbGVyID0gY3JlYXRlRXJyb3JIYW5kbGVyKHtcbiAgICAgICAgX3NvdXJjZTogXCJzZXJ2ZXJDb21wb25lbnRzUmVuZGVyZXJcIixcbiAgICAgICAgZGV2LFxuICAgICAgICBpc05leHRFeHBvcnQsXG4gICAgICAgIGVycm9yTG9nZ2VyOiBhcHBEaXJEZXZFcnJvckxvZ2dlcixcbiAgICAgICAgY2FwdHVyZWRFcnJvcnMsXG4gICAgICAgIHNpbGVuY2VMb2dnZXI6IHNpbGVuY2VTdGF0aWNHZW5lcmF0aW9uRXJyb3JzXG4gICAgfSk7XG4gICAgY29uc3QgZmxpZ2h0RGF0YVJlbmRlcmVyRXJyb3JIYW5kbGVyID0gY3JlYXRlRXJyb3JIYW5kbGVyKHtcbiAgICAgICAgX3NvdXJjZTogXCJmbGlnaHREYXRhUmVuZGVyZXJcIixcbiAgICAgICAgZGV2LFxuICAgICAgICBpc05leHRFeHBvcnQsXG4gICAgICAgIGVycm9yTG9nZ2VyOiBhcHBEaXJEZXZFcnJvckxvZ2dlcixcbiAgICAgICAgY2FwdHVyZWRFcnJvcnMsXG4gICAgICAgIHNpbGVuY2VMb2dnZXI6IHNpbGVuY2VTdGF0aWNHZW5lcmF0aW9uRXJyb3JzXG4gICAgfSk7XG4gICAgY29uc3QgaHRtbFJlbmRlcmVyRXJyb3JIYW5kbGVyID0gY3JlYXRlRXJyb3JIYW5kbGVyKHtcbiAgICAgICAgX3NvdXJjZTogXCJodG1sUmVuZGVyZXJcIixcbiAgICAgICAgZGV2LFxuICAgICAgICBpc05leHRFeHBvcnQsXG4gICAgICAgIGVycm9yTG9nZ2VyOiBhcHBEaXJEZXZFcnJvckxvZ2dlcixcbiAgICAgICAgY2FwdHVyZWRFcnJvcnMsXG4gICAgICAgIGFsbENhcHR1cmVkRXJyb3JzLFxuICAgICAgICBzaWxlbmNlTG9nZ2VyOiBzaWxlbmNlU3RhdGljR2VuZXJhdGlvbkVycm9yc1xuICAgIH0pO1xuICAgIC8qKlxuICAgKiBUaGlzIHBvc3Rwb25lIGhhbmRsZXIgd2lsbCBiZSB1c2VkIHRvIGhlbHAgdXMgZGlzY3JpbWluYXRlIGJldHdlZW4gYSBzZXQgb2YgY2FzZXNcbiAgICogMS4gU1NSIG9yIFJTQyBwb3N0cG9uZSB0aGF0IHdhcyBjYXVnaHQgYW5kIG5vdCByZXRocm93blxuICAgKiAyLiBTU1IgcG9zdHBvbmUgaGFuZGxlZCBieSBSZWFjdFxuICAgKiAzLiBSU0MgcG9zdHBvbmUgaGFuZGxlZCBieSBSZWFjdFxuICAgKlxuICAgKiBUaGUgcHJldmlvdXMgdGVjaG5pcXVlIGZvciB0cmFja2luZyBwb3N0cG9uZXMgY291bGQgbm90IHRlbGwgYmV0d2VlbiBjYXNlcyAxIGFuZCAzXG4gICAqIGhvd2V2ZXIgd2Ugb25seSB3YW50IHRvIHdhcm4gb24gdGhlIGZpcnN0IGNhc2VcbiAgICovIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBsZXQgc2VydmVyQ29tcG9uZW50c0RpZFBvc3Rwb25lID0gZmFsc2U7XG4gICAgY29uc3Qgc2VydmVyQ29tcG9uZW50c1Bvc3Rwb25lSGFuZGxlciA9IChfcmVhc29uKT0+e1xuICAgICAgICBzZXJ2ZXJDb21wb25lbnRzRGlkUG9zdHBvbmUgPSB0cnVlO1xuICAgIH07XG4gICAgQ29tcG9uZW50TW9kLnBhdGNoRmV0Y2goKTtcbiAgICAvKipcbiAgICogUnVsZXMgb2YgU3RhdGljICYgRHluYW1pYyBIVE1MOlxuICAgKlxuICAgKiAgICAxLikgV2UgbXVzdCBnZW5lcmF0ZSBzdGF0aWMgSFRNTCB1bmxlc3MgdGhlIGNhbGxlciBleHBsaWNpdGx5IG9wdHNcbiAgICogICAgICAgIGluIHRvIGR5bmFtaWMgSFRNTCBzdXBwb3J0LlxuICAgKlxuICAgKiAgICAyLikgSWYgZHluYW1pYyBIVE1MIHN1cHBvcnQgaXMgcmVxdWVzdGVkLCB3ZSBtdXN0IGhvbm9yIHRoYXQgcmVxdWVzdFxuICAgKiAgICAgICAgb3IgdGhyb3cgYW4gZXJyb3IuIEl0IGlzIHRoZSBzb2xlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsZXIgdG9cbiAgICogICAgICAgIGVuc3VyZSB0aGV5IGFyZW4ndCBlLmcuIHJlcXVlc3RpbmcgZHluYW1pYyBIVE1MIGZvciBhbiBBTVAgcGFnZS5cbiAgICpcbiAgICogVGhlc2UgcnVsZXMgaGVscCBlbnN1cmUgdGhhdCBvdGhlciBleGlzdGluZyBmZWF0dXJlcyBsaWtlIHJlcXVlc3QgY2FjaGluZyxcbiAgICogY29hbGVzY2luZywgYW5kIElTUiBjb250aW51ZSB3b3JraW5nIGFzIGludGVuZGVkLlxuICAgKi8gY29uc3QgZ2VuZXJhdGVTdGF0aWNIVE1MID0gc3VwcG9ydHNEeW5hbWljSFRNTCAhPT0gdHJ1ZTtcbiAgICAvLyBQdWxsIG91dCB0aGUgaG9va3MvcmVmZXJlbmNlcyBmcm9tIHRoZSBjb21wb25lbnQuXG4gICAgY29uc3QgeyBjcmVhdGVTZWFyY2hQYXJhbXNCYWlsb3V0UHJveHksIHRyZWU6IGxvYWRlclRyZWUsIHRhaW50T2JqZWN0UmVmZXJlbmNlIH0gPSBDb21wb25lbnRNb2Q7XG4gICAgaWYgKGVuYWJsZVRhaW50aW5nKSB7XG4gICAgICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlKFwiRG8gbm90IHBhc3MgcHJvY2Vzcy5lbnYgdG8gY2xpZW50IGNvbXBvbmVudHMgc2luY2UgaXQgd2lsbCBsZWFrIHNlbnNpdGl2ZSBkYXRhXCIsIHByb2Nlc3MuZW52KTtcbiAgICB9XG4gICAgY29uc3QgeyB1cmxQYXRobmFtZSB9ID0gc3RhdGljR2VuZXJhdGlvblN0b3JlO1xuICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mZXRjaE1ldHJpY3MgPSBbXTtcbiAgICBtZXRhZGF0YS5mZXRjaE1ldHJpY3MgPSBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZmV0Y2hNZXRyaWNzO1xuICAgIC8vIGRvbid0IG1vZGlmeSBvcmlnaW5hbCBxdWVyeSBvYmplY3RcbiAgICBxdWVyeSA9IHtcbiAgICAgICAgLi4ucXVlcnlcbiAgICB9O1xuICAgIHN0cmlwSW50ZXJuYWxRdWVyaWVzKHF1ZXJ5KTtcbiAgICBjb25zdCBpc1JTQ1JlcXVlc3QgPSByZXEuaGVhZGVyc1tSU0NfSEVBREVSLnRvTG93ZXJDYXNlKCldICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgaXNQcmVmZXRjaFJTQ1JlcXVlc3QgPSBpc1JTQ1JlcXVlc3QgJiYgcmVxLmhlYWRlcnNbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSLnRvTG93ZXJDYXNlKCldICE9PSB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAqIFJvdXRlciBzdGF0ZSBwcm92aWRlZCBmcm9tIHRoZSBjbGllbnQtc2lkZSByb3V0ZXIuIFVzZWQgdG8gaGFuZGxlIHJlbmRlcmluZyBmcm9tIHRoZSBjb21tb24gbGF5b3V0IGRvd24uXG4gICAqLyBsZXQgcHJvdmlkZWRGbGlnaHRSb3V0ZXJTdGF0ZSA9IGlzUlNDUmVxdWVzdCAmJiAoIWlzUHJlZmV0Y2hSU0NSZXF1ZXN0IHx8ICFyZW5kZXJPcHRzLmV4cGVyaW1lbnRhbC5wcHIpID8gcGFyc2VBbmRWYWxpZGF0ZUZsaWdodFJvdXRlclN0YXRlKHJlcS5oZWFkZXJzW05FWFRfUk9VVEVSX1NUQVRFX1RSRUUudG9Mb3dlckNhc2UoKV0pIDogdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgKiBUaGUgbWV0YWRhdGEgaXRlbXMgYXJyYXkgY3JlYXRlZCBpbiBuZXh0LWFwcC1sb2FkZXIgd2l0aCBhbGwgcmVsZXZhbnQgaW5mb3JtYXRpb25cbiAgICogdGhhdCB3ZSBuZWVkIHRvIHJlc29sdmUgdGhlIGZpbmFsIG1ldGFkYXRhLlxuICAgKi8gbGV0IHJlcXVlc3RJZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIikge1xuICAgICAgICByZXF1ZXN0SWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcXVlc3RJZCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvbmFub2lkXCIpLm5hbm9pZCgpO1xuICAgIH1cbiAgICAvLyBEdXJpbmcgc3RhdGljIGdlbmVyYXRpb24gd2UgbmVlZCB0byBjYWxsIHRoZSBzdGF0aWMgZ2VuZXJhdGlvbiBiYWlsb3V0IHdoZW4gcmVhZGluZyBzZWFyY2hQYXJhbXNcbiAgICBjb25zdCBwcm92aWRlZFNlYXJjaFBhcmFtcyA9IGlzU3RhdGljR2VuZXJhdGlvbiA/IGNyZWF0ZVNlYXJjaFBhcmFtc0JhaWxvdXRQcm94eSgpIDogcXVlcnk7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zUHJvcHMgPSB7XG4gICAgICAgIHNlYXJjaFBhcmFtczogcHJvdmlkZWRTZWFyY2hQYXJhbXNcbiAgICB9O1xuICAgIC8qKlxuICAgKiBEeW5hbWljIHBhcmFtZXRlcnMuIEUuZy4gd2hlbiB5b3UgdmlzaXQgYC9kYXNoYm9hcmQvdmVyY2VsYCB3aGljaCBpcyByZW5kZXJlZCBieSBgL2Rhc2hib2FyZC9bc2x1Z11gIHRoZSB2YWx1ZSB3aWxsIGJlIHtcInNsdWdcIjogXCJ2ZXJjZWxcIn0uXG4gICAqLyBjb25zdCBwYXJhbXMgPSByZW5kZXJPcHRzLnBhcmFtcyA/PyB7fTtcbiAgICBjb25zdCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCA9IG1ha2VHZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudChwYXJhbXMsIHByb3ZpZGVkRmxpZ2h0Um91dGVyU3RhdGUpO1xuICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgLi4uYmFzZUN0eCxcbiAgICAgICAgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICBpc1ByZWZldGNoOiBpc1ByZWZldGNoUlNDUmVxdWVzdCxcbiAgICAgICAgcHJvdmlkZWRTZWFyY2hQYXJhbXMsXG4gICAgICAgIHJlcXVlc3RUaW1lc3RhbXAsXG4gICAgICAgIHNlYXJjaFBhcmFtc1Byb3BzLFxuICAgICAgICBhcHBVc2luZ1NpemVBZGp1c3RtZW50LFxuICAgICAgICBwcm92aWRlZEZsaWdodFJvdXRlclN0YXRlLFxuICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgIGRlZmF1bHRSZXZhbGlkYXRlOiBmYWxzZSxcbiAgICAgICAgcGFnZVBhdGgsXG4gICAgICAgIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LFxuICAgICAgICBhc3NldFByZWZpeCxcbiAgICAgICAgZmxpZ2h0RGF0YVJlbmRlcmVyRXJyb3JIYW5kbGVyLFxuICAgICAgICBzZXJ2ZXJDb21wb25lbnRzRXJyb3JIYW5kbGVyLFxuICAgICAgICBpc05vdEZvdW5kUGF0aCxcbiAgICAgICAgcmVzXG4gICAgfTtcbiAgICBpZiAoaXNSU0NSZXF1ZXN0ICYmICFpc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlRmxpZ2h0KGN0eCk7XG4gICAgfVxuICAgIGNvbnN0IGhhc1Bvc3Rwb25lZCA9IHR5cGVvZiByZW5kZXJPcHRzLnBvc3Rwb25lZCA9PT0gXCJzdHJpbmdcIjtcbiAgICAvLyBDcmVhdGUgdGhlIHJlc29sdmVyIHRoYXQgY2FuIGdldCB0aGUgZmxpZ2h0IHBheWxvYWQgd2hlbiBpdCdzIHJlYWR5IG9yXG4gICAgLy8gdGhyb3cgdGhlIGVycm9yIGlmIGl0IG9jY3VycmVkLiBJZiB3ZSBhcmUgbm90IGdlbmVyYXRpbmcgc3RhdGljIEhUTUwsIHdlXG4gICAgLy8gZG9uJ3QgbmVlZCB0byBnZW5lcmF0ZSB0aGUgZmxpZ2h0IHBheWxvYWQgYmVjYXVzZSBpdCdzIGEgZHluYW1pYyByZXF1ZXN0XG4gICAgLy8gd2hpY2ggbWVhbnMgd2UncmUgZWl0aGVyIGdldHRpbmcgdGhlIGZsaWdodCBwYXlsb2FkIG9ubHkgb3IganVzdCB0aGVcbiAgICAvLyByZWd1bGFyIEhUTUwuXG4gICAgY29uc3QgZmxpZ2h0RGF0YVJlc29sdmVyID0gaXNTdGF0aWNHZW5lcmF0aW9uID8gY3JlYXRlRmxpZ2h0RGF0YVJlc29sdmVyKGN0eCkgOiBudWxsO1xuICAgIC8vIEdldCB0aGUgbm9uY2UgZnJvbSB0aGUgaW5jb21pbmcgcmVxdWVzdCBpZiBpdCBoYXMgb25lLlxuICAgIGNvbnN0IGNzcCA9IHJlcS5oZWFkZXJzW1wiY29udGVudC1zZWN1cml0eS1wb2xpY3lcIl0gfHwgcmVxLmhlYWRlcnNbXCJjb250ZW50LXNlY3VyaXR5LXBvbGljeS1yZXBvcnQtb25seVwiXTtcbiAgICBsZXQgbm9uY2U7XG4gICAgaWYgKGNzcCAmJiB0eXBlb2YgY3NwID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIG5vbmNlID0gZ2V0U2NyaXB0Tm9uY2VGcm9tSGVhZGVyKGNzcCk7XG4gICAgfVxuICAgIGNvbnN0IHZhbGlkYXRlUm9vdExheW91dCA9IGRldiA/IHtcbiAgICAgICAgYXNzZXRQcmVmaXg6IHJlbmRlck9wdHMuYXNzZXRQcmVmaXgsXG4gICAgICAgIGdldFRyZWU6ICgpPT5jcmVhdGVGbGlnaHRSb3V0ZXJTdGF0ZUZyb21Mb2FkZXJUcmVlKGxvYWRlclRyZWUsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBxdWVyeSlcbiAgICB9IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiKTtcbiAgICAvLyBPbiBlYWNoIHJlbmRlciwgY3JlYXRlIGEgbmV3IGBTZXJ2ZXJJbnNlcnRlZEhUTUxgIGNvbnRleHQgdG8gY2FwdHVyZVxuICAgIC8vIGluamVjdGVkIG5vZGVzIGZyb20gdXNlciBjb2RlIChgdXNlU2VydmVySW5zZXJ0ZWRIVE1MYCkuXG4gICAgY29uc3QgeyBTZXJ2ZXJJbnNlcnRlZEhUTUxQcm92aWRlciwgcmVuZGVyU2VydmVySW5zZXJ0ZWRIVE1MIH0gPSBjcmVhdGVTZXJ2ZXJJbnNlcnRlZEhUTUwoKTtcbiAgICAoX2dldFRyYWNlcl9nZXRSb290U3BhbkF0dHJpYnV0ZXMgPSBnZXRUcmFjZXIoKS5nZXRSb290U3BhbkF0dHJpYnV0ZXMoKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9nZXRUcmFjZXJfZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzLnNldChcIm5leHQucm91dGVcIiwgcGFnZVBhdGgpO1xuICAgIC8vIENyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIGhlbHAgdXMgc2lnbmFsIHdoZW4gdGhlIGhlYWRlcnMgaGF2ZSBiZWVuXG4gICAgLy8gd3JpdHRlbiB0byB0aGUgbWV0YWRhdGEgZm9yIHN0YXRpYyBnZW5lcmF0aW9uIGFzIHRoZXkgYXJlbid0IHdyaXR0ZW4gdG8gdGhlXG4gICAgLy8gcmVzcG9uc2UgZGlyZWN0bHkuXG4gICAgY29uc3Qgb25IZWFkZXJzRmluaXNoZWQgPSBuZXcgRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgY29uc3QgcmVuZGVyVG9TdHJlYW0gPSBnZXRUcmFjZXIoKS53cmFwKEFwcFJlbmRlclNwYW4uZ2V0Qm9keVJlc3VsdCwge1xuICAgICAgICBzcGFuTmFtZTogYHJlbmRlciByb3V0ZSAoYXBwKSAke3BhZ2VQYXRofWAsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIFwibmV4dC5yb3V0ZVwiOiBwYWdlUGF0aFxuICAgICAgICB9XG4gICAgfSwgYXN5bmMgKHsgYXNOb3RGb3VuZCwgdHJlZSwgZm9ybVN0YXRlIH0pPT57XG4gICAgICAgIGNvbnN0IHBvbHlmaWxscyA9IGJ1aWxkTWFuaWZlc3QucG9seWZpbGxGaWxlcy5maWx0ZXIoKHBvbHlmaWxsKT0+cG9seWZpbGwuZW5kc1dpdGgoXCIuanNcIikgJiYgIXBvbHlmaWxsLmVuZHNXaXRoKFwiLm1vZHVsZS5qc1wiKSkubWFwKChwb2x5ZmlsbCk9Pih7XG4gICAgICAgICAgICAgICAgc3JjOiBgJHthc3NldFByZWZpeH0vX25leHQvJHtwb2x5ZmlsbH0ke2dldEFzc2V0UXVlcnlTdHJpbmcoY3R4LCBmYWxzZSl9YCxcbiAgICAgICAgICAgICAgICBpbnRlZ3JpdHk6IHN1YnJlc291cmNlSW50ZWdyaXR5TWFuaWZlc3QgPT0gbnVsbCA/IHZvaWQgMCA6IHN1YnJlc291cmNlSW50ZWdyaXR5TWFuaWZlc3RbcG9seWZpbGxdLFxuICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiByZW5kZXJPcHRzLmNyb3NzT3JpZ2luLFxuICAgICAgICAgICAgICAgIG5vTW9kdWxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIG5vbmNlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIGNvbnN0IFtwcmVpbml0U2NyaXB0cywgYm9vdHN0cmFwU2NyaXB0XSA9IGdldFJlcXVpcmVkU2NyaXB0cyhidWlsZE1hbmlmZXN0LCBhc3NldFByZWZpeCwgcmVuZGVyT3B0cy5jcm9zc09yaWdpbiwgc3VicmVzb3VyY2VJbnRlZ3JpdHlNYW5pZmVzdCwgZ2V0QXNzZXRRdWVyeVN0cmluZyhjdHgsIHRydWUpLCBub25jZSk7XG4gICAgICAgIC8vIFRoaXMgd2lsbCB3aGVuIGNhbGxlZCBhY3R1YWxseSByZW5kZXIgdGhlIFJTQyBsYXllci4gRHVyaW5nIGFuIFNTUiBwYXNzIGl0IHdpbGxcbiAgICAgICAgLy8gdHlwaWNhbGx5IGdldCBwYXNzZWQgdG8gYSBFbnRyeXBvaW50IGNvbXBvbmVudCB3aGljaCBjYWxscyBpbml0aWF0ZXMgaXQgZHVyaW5nIHRoZVxuICAgICAgICAvLyB0aGUgU1NSIHJlbmRlciBob3dldmVyIHRoZXJlIGFyZSBzb21lIGNhc2VzIHdoZXJlIHRoaXNcbiAgICAgICAgY29uc3Qgc2VydmVyQ29tcG9uZW50c1JlbmRlcmVyID0gY3JlYXRlUmVhY3RTZXJ2ZXJSZW5kZXJlcigvKiNfX1BVUkVfXyovIF9qc3goUmVhY3RTZXJ2ZXJBcHAsIHtcbiAgICAgICAgICAgIHRyZWU6IHRyZWUsXG4gICAgICAgICAgICBjdHg6IGN0eCxcbiAgICAgICAgICAgIHByZWluaXRTY3JpcHRzOiBwcmVpbml0U2NyaXB0cyxcbiAgICAgICAgICAgIGFzTm90Rm91bmQ6IGFzTm90Rm91bmRcbiAgICAgICAgfSksIENvbXBvbmVudE1vZCwgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsIHNlcnZlckNvbXBvbmVudHNFcnJvckhhbmRsZXIsIHNlcnZlckNvbXBvbmVudHNQb3N0cG9uZUhhbmRsZXIpO1xuICAgICAgICBjb25zdCByZW5kZXJJbmxpbmVkRGF0YVRyYW5zZm9ybVN0cmVhbSA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oKTtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSAvKiNfX1BVUkVfXyovIF9qc3goSGVhZE1hbmFnZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGFwcERpcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBub25jZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goU2VydmVySW5zZXJ0ZWRIVE1MUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFJlYWN0U2VydmVyRW50cnlwb2ludCwge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJSZWFjdFNlcnZlcjogc2VydmVyQ29tcG9uZW50c1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgICAgICBpbmxpbmVkRGF0YVRyYW5zZm9ybVN0cmVhbTogcmVuZGVySW5saW5lZERhdGFUcmFuc2Zvcm1TdHJlYW0sXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgZm9ybVN0YXRlOiBmb3JtU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIG5vbmNlOiBub25jZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MID0gbWFrZUdldFNlcnZlckluc2VydGVkSFRNTCh7XG4gICAgICAgICAgICBwb2x5ZmlsbHMsXG4gICAgICAgICAgICByZW5kZXJTZXJ2ZXJJbnNlcnRlZEhUTUwsXG4gICAgICAgICAgICBoYXNQb3N0cG9uZWRcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVyID0gY3JlYXRlU3RhdGljUmVuZGVyZXIoe1xuICAgICAgICAgICAgcHByOiByZW5kZXJPcHRzLmV4cGVyaW1lbnRhbC5wcHIsXG4gICAgICAgICAgICBpc1N0YXRpY0dlbmVyYXRpb24sXG4gICAgICAgICAgICAvLyBJZiBwcm92aWRlZCwgdGhlIHBvc3Rwb25lIHN0YXRlIHNob3VsZCBiZSBwYXJzZWQgYXMgSlNPTiBzbyBpdCBjYW4gYmVcbiAgICAgICAgICAgIC8vIHByb3ZpZGVkIHRvIFJlYWN0LlxuICAgICAgICAgICAgcG9zdHBvbmVkOiByZW5kZXJPcHRzLnBvc3Rwb25lZCA/IEpTT04ucGFyc2UocmVuZGVyT3B0cy5wb3N0cG9uZWQpIDogbnVsbCxcbiAgICAgICAgICAgIHN0cmVhbU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBvbkVycm9yOiBodG1sUmVuZGVyZXJFcnJvckhhbmRsZXIsXG4gICAgICAgICAgICAgICAgb25IZWFkZXJzOiAoaGVhZGVycyk9PntcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBkdXJpbmcgc3RhdGljIGdlbmVyYXRpb24sIHdlIHNob3VsZG4ndCB3cml0ZSB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gaGVhZGVycyBvYmplY3QgZGlyZWN0bHksIGluc3RlYWQgd2Ugc2hvdWxkIGFkZCB0byB0aGUgcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzU3RhdGljR2VuZXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwga2V5KT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmhlYWRlcnMgPz89IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNvbHZlIHRoZSBwcm9taXNlIHRvIGNvbnRpbnVlIHRoZSBzdHJlYW0uXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkhlYWRlcnNGaW5pc2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLmZvckVhY2goKHZhbHVlLCBrZXkpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtYXhIZWFkZXJzTGVuZ3RoOiA2MDAsXG4gICAgICAgICAgICAgICAgbm9uY2UsXG4gICAgICAgICAgICAgICAgYm9vdHN0cmFwU2NyaXB0czogW1xuICAgICAgICAgICAgICAgICAgICBib290c3RyYXBTY3JpcHRcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGZvcm1TdGF0ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCB7IHN0cmVhbSwgcG9zdHBvbmVkIH0gPSBhd2FpdCByZW5kZXJlci5yZW5kZXIoY2hpbGRyZW4pO1xuICAgICAgICAgICAgLy8gSWYgdGhlIHN0cmVhbSB3YXMgcG9zdHBvbmVkLCB3ZSBuZWVkIHRvIGFkZCB0aGUgcmVzdWx0IHRvIHRoZVxuICAgICAgICAgICAgLy8gbWV0YWRhdGEgc28gdGhhdCBpdCBjYW4gYmUgcmVzdW1lZCBsYXRlci5cbiAgICAgICAgICAgIGlmIChwb3N0cG9uZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBvdXIgcmVuZGVyIGRpZCBub3QgcHJvZHVjZSBhIHBvc3Rwb25lZCBzdGF0ZSBidXQgd2UgZGlkIHBvc3Rwb25lXG4gICAgICAgICAgICAgICAgLy8gZHVyaW5nIHRoZSBSU0MgcmVuZGVyIHdlIG5lZWQgdG8gc3RpbGwgdHJlYXQgdGhpcyBhcyBhIHBvc3Rwb25lXG4gICAgICAgICAgICAgICAgbWV0YWRhdGEucG9zdHBvbmVkID0gSlNPTi5zdHJpbmdpZnkocG9zdHBvbmVkKTtcbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIFwiY29udGludWVcIiB0aGlzIHN0cmVhbSBub3cgYXMgaXQncyBjb250aW51ZWQgd2hlblxuICAgICAgICAgICAgICAgIC8vIHdlIHJlc3VtZSB0aGUgc3RyZWFtLlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIGlubGluZWREYXRhU3RyZWFtOiByZW5kZXJJbmxpbmVkRGF0YVRyYW5zZm9ybVN0cmVhbS5yZWFkYWJsZSxcbiAgICAgICAgICAgICAgICBpc1N0YXRpY0dlbmVyYXRpb246IGlzU3RhdGljR2VuZXJhdGlvbiB8fCBnZW5lcmF0ZVN0YXRpY0hUTUwsXG4gICAgICAgICAgICAgICAgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MOiAoKT0+Z2V0U2VydmVySW5zZXJ0ZWRIVE1MKGFsbENhcHR1cmVkRXJyb3JzKSxcbiAgICAgICAgICAgICAgICBzZXJ2ZXJJbnNlcnRlZEhUTUxUb0hlYWQ6ICFyZW5kZXJPcHRzLnBvc3Rwb25lZCxcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIHJlbmRlciBnZW5lcmF0ZWQgYSBwb3N0cG9uZWQgc3RhdGUgb3IgdGhpcyBpcyBhIHJlc3VtZVxuICAgICAgICAgICAgICAgIC8vIHJlbmRlciwgd2UgZG9uJ3Qgd2FudCB0byB2YWxpZGF0ZSB0aGUgcm9vdCBsYXlvdXQgYXMgaXQncyBhbHJlYWR5XG4gICAgICAgICAgICAgICAgLy8gcGFydGlhbGx5IHJlbmRlcmVkLlxuICAgICAgICAgICAgICAgIHZhbGlkYXRlUm9vdExheW91dDogIXBvc3Rwb25lZCAmJiAhcmVuZGVyT3B0cy5wb3N0cG9uZWQgPyB2YWxpZGF0ZVJvb3RMYXlvdXQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgLy8gQXBwIFJlbmRlciBkb2Vzbid0IG5lZWQgdG8gaW5qZWN0IGFueSBhZGRpdGlvbmFsIHN1ZmZpeGVzLlxuICAgICAgICAgICAgICAgIHN1ZmZpeDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJlbmRlck9wdHMucG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgc3RyZWFtID0gYXdhaXQgY29udGludWVQb3N0cG9uZWRGaXp6U3RyZWFtKHN0cmVhbSwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0cmVhbSA9IGF3YWl0IGNvbnRpbnVlRml6elN0cmVhbShzdHJlYW0sIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdHJlYW1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKGlzU3RhdGljR2VuQmFpbG91dEVycm9yKGVycikgfHwgdHlwZW9mIGVyciA9PT0gXCJvYmplY3RcIiAmJiBlcnIgIT09IG51bGwgJiYgXCJtZXNzYWdlXCIgaW4gZXJyICYmIHR5cGVvZiBlcnIubWVzc2FnZSA9PT0gXCJzdHJpbmdcIiAmJiBlcnIubWVzc2FnZS5pbmNsdWRlcyhcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FkdmFuY2VkLWZlYXR1cmVzL3N0YXRpYy1odG1sLWV4cG9ydFwiKSkge1xuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IFwibmV4dCBkZXZcIiBwcmludHMgdGhlIHJlZCBlcnJvciBvdmVybGF5XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHN0YXRpYyBnZW5lcmF0aW9uIGVycm9yLCB3ZSBuZWVkIHRvIHRocm93IGl0IHNvIHRoYXQgaXRcbiAgICAgICAgICAgIC8vIGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIgaWYgd2UncmUgaW4gc3RhdGljIGdlbmVyYXRpb24gbW9kZS5cbiAgICAgICAgICAgIGlmIChpc1N0YXRpY0dlbmVyYXRpb24gJiYgaXNEeW5hbWljU2VydmVyRXJyb3IoZXJyKSkge1xuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIGEgYmFpbG91dCBtYWRlIGl0IHRvIHRoaXMgcG9pbnQsIGl0IG1lYW5zIGl0IHdhc24ndCB3cmFwcGVkIGluc2lkZVxuICAgICAgICAgICAgLy8gYSBzdXNwZW5zZSBib3VuZGFyeS5cbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEJhaWxvdXRUb0NTUiA9IGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyKTtcbiAgICAgICAgICAgIGlmIChzaG91bGRCYWlsb3V0VG9DU1IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgICAgICAgIGlmIChyZW5kZXJPcHRzLmV4cGVyaW1lbnRhbC5taXNzaW5nU3VzcGVuc2VXaXRoQ1NSQmFpbG91dCkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvcihgJHtlcnIucmVhc29ufSBzaG91bGQgYmUgd3JhcHBlZCBpbiBhIHN1c3BlbnNlIGJvdW5kYXJ5IGF0IHBhZ2UgXCIke3BhZ2VQYXRofVwiLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pc3Npbmctc3VzcGVuc2Utd2l0aC1jc3ItYmFpbG91dGApO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdhcm4oYEVudGlyZSBwYWdlIFwiJHtwYWdlUGF0aH1cIiBkZW9wdGVkIGludG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nIGR1ZSB0byBcIiR7ZXJyLnJlYXNvbn1cIi4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9kZW9wdGVkLWludG8tY2xpZW50LXJlbmRlcmluZ2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzTm90Rm91bmRFcnJvcihlcnIpKSB7XG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgaGFzUmVkaXJlY3RFcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGlzUmVkaXJlY3RFcnJvcihlcnIpKSB7XG4gICAgICAgICAgICAgICAgaGFzUmVkaXJlY3RFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSBnZXRSZWRpcmVjdFN0YXR1c0NvZGVGcm9tRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLm11dGFibGVDb29raWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSB3ZXJlIG11dGFibGUgY29va2llcyBzZXQsIHdlIG5lZWQgdG8gc2V0IHRoZW0gb24gdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlc3BvbnNlLlxuICAgICAgICAgICAgICAgICAgICBpZiAoYXBwZW5kTXV0YWJsZUNvb2tpZXMoaGVhZGVycywgZXJyLm11dGFibGVDb29raWVzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcInNldC1jb29raWVcIiwgQXJyYXkuZnJvbShoZWFkZXJzLnZhbHVlcygpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RVcmwgPSBhZGRQYXRoUHJlZml4KGdldFVSTEZyb21SZWRpcmVjdEVycm9yKGVyciksIHJlbmRlck9wdHMuYmFzZVBhdGgpO1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJMb2NhdGlvblwiLCByZWRpcmVjdFVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpczQwNCA9IHJlcy5zdGF0dXNDb2RlID09PSA0MDQ7XG4gICAgICAgICAgICBpZiAoIWlzNDA0ICYmICFoYXNSZWRpcmVjdEVycm9yICYmICFzaG91bGRCYWlsb3V0VG9DU1IpIHtcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGVycm9yVHlwZSA9IGlzNDA0ID8gXCJub3QtZm91bmRcIiA6IGhhc1JlZGlyZWN0RXJyb3IgPyBcInJlZGlyZWN0XCIgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBbZXJyb3JQcmVpbml0U2NyaXB0cywgZXJyb3JCb290c3RyYXBTY3JpcHRdID0gZ2V0UmVxdWlyZWRTY3JpcHRzKGJ1aWxkTWFuaWZlc3QsIGFzc2V0UHJlZml4LCByZW5kZXJPcHRzLmNyb3NzT3JpZ2luLCBzdWJyZXNvdXJjZUludGVncml0eU1hbmlmZXN0LCBnZXRBc3NldFF1ZXJ5U3RyaW5nKGN0eCwgZmFsc2UpLCBub25jZSk7XG4gICAgICAgICAgICBjb25zdCBlcnJvclNlcnZlckNvbXBvbmVudHNSZW5kZXJlciA9IGNyZWF0ZVJlYWN0U2VydmVyUmVuZGVyZXIoLyojX19QVVJFX18qLyBfanN4KFJlYWN0U2VydmVyRXJyb3IsIHtcbiAgICAgICAgICAgICAgICB0cmVlOiB0cmVlLFxuICAgICAgICAgICAgICAgIGN0eDogY3R4LFxuICAgICAgICAgICAgICAgIHByZWluaXRTY3JpcHRzOiBlcnJvclByZWluaXRTY3JpcHRzLFxuICAgICAgICAgICAgICAgIGVycm9yVHlwZTogZXJyb3JUeXBlXG4gICAgICAgICAgICB9KSwgQ29tcG9uZW50TW9kLCBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCwgc2VydmVyQ29tcG9uZW50c0Vycm9ySGFuZGxlciwgc2VydmVyQ29tcG9uZW50c1Bvc3Rwb25lSGFuZGxlcik7XG4gICAgICAgICAgICAvLyBQcmVzZXJ2ZSB0aGUgZXhpc3RpbmcgUlNDIGlubGluZSBjaHVua3MgZnJvbSB0aGUgcGFnZSByZW5kZXJpbmcuXG4gICAgICAgICAgICAvLyBUbyBhdm9pZCB0aGUgc2FtZSBzdHJlYW0gYmVpbmcgb3BlcmF0ZWQgdHdpY2UsIGNsb25lIHRoZSBvcmlnaW4gc3RyZWFtIGZvciBlcnJvciByZW5kZXJpbmcuXG4gICAgICAgICAgICBjb25zdCBlcnJvcklubGluZWREYXRhVHJhbnNmb3JtU3RyZWFtID0gY2xvbmVUcmFuc2Zvcm1TdHJlYW0ocmVuZGVySW5saW5lZERhdGFUcmFuc2Zvcm1TdHJlYW0pO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXp6U3RyZWFtID0gYXdhaXQgcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbSh7XG4gICAgICAgICAgICAgICAgICAgIFJlYWN0RE9NU2VydmVyOiByZXF1aXJlKFwicmVhY3QtZG9tL3NlcnZlci5lZGdlXCIpLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAvKiNfX1BVUkVfXyovIF9qc3goUmVhY3RTZXJ2ZXJFbnRyeXBvaW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJSZWFjdFNlcnZlcjogZXJyb3JTZXJ2ZXJDb21wb25lbnRzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmVkRGF0YVRyYW5zZm9ybVN0cmVhbTogZXJyb3JJbmxpbmVkRGF0YVRyYW5zZm9ybVN0cmVhbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1TdGF0ZTogZm9ybVN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbm9uY2U6IG5vbmNlXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBzdHJlYW1PcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub25jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluY2x1ZGUgaHlkcmF0aW9uIHNjcmlwdHMgaW4gdGhlIEhUTUxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvb3RzdHJhcFNjcmlwdHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckJvb3RzdHJhcFNjcmlwdFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1TdGF0ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmV0dXJuaW5nIHRoZSBlcnJvciB0aGF0IHdhcyB0aHJvd24gc28gaXQgY2FuIGJlIHVzZWQgdG8gaGFuZGxlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXNwb25zZSBpbiB0aGUgY2FsbGVyLlxuICAgICAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbTogYXdhaXQgY29udGludWVGaXp6U3RyZWFtKGZpenpTdHJlYW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZWREYXRhU3RyZWFtOiBlcnJvcklubGluZWREYXRhVHJhbnNmb3JtU3RyZWFtLnJlYWRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdGF0aWNHZW5lcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MOiAoKT0+Z2V0U2VydmVySW5zZXJ0ZWRIVE1MKFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckluc2VydGVkSFRNTFRvSGVhZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlUm9vdExheW91dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGZpbmFsRXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIgJiYgaXNOb3RGb3VuZEVycm9yKGZpbmFsRXJyKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYWlsT25Ob3RGb3VuZCA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9kZXYtcm9vdC1ub3QtZm91bmQtYm91bmRhcnlcIikuYmFpbE9uTm90Rm91bmQ7XG4gICAgICAgICAgICAgICAgICAgIGJhaWxPbk5vdEZvdW5kKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGZpbmFsRXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gRm9yIGFjdGlvbiByZXF1ZXN0cywgd2UgaGFuZGxlIHRoZW0gZGlmZmVyZW50bHkgd2l0aCBhIHNwZWNpYWwgcmVuZGVyIHJlc3VsdC5cbiAgICBjb25zdCBhY3Rpb25SZXF1ZXN0UmVzdWx0ID0gYXdhaXQgaGFuZGxlQWN0aW9uKHtcbiAgICAgICAgcmVxLFxuICAgICAgICByZXMsXG4gICAgICAgIENvbXBvbmVudE1vZCxcbiAgICAgICAgc2VydmVyTW9kdWxlTWFwLFxuICAgICAgICBnZW5lcmF0ZUZsaWdodCxcbiAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLFxuICAgICAgICByZXF1ZXN0U3RvcmUsXG4gICAgICAgIHNlcnZlckFjdGlvbnMsXG4gICAgICAgIGN0eFxuICAgIH0pO1xuICAgIGxldCBmb3JtU3RhdGUgPSBudWxsO1xuICAgIGlmIChhY3Rpb25SZXF1ZXN0UmVzdWx0KSB7XG4gICAgICAgIGlmIChhY3Rpb25SZXF1ZXN0UmVzdWx0LnR5cGUgPT09IFwibm90LWZvdW5kXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdEZvdW5kTG9hZGVyVHJlZSA9IGNyZWF0ZU5vdEZvdW5kTG9hZGVyVHJlZShsb2FkZXJUcmVlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVuZGVyVG9TdHJlYW0oe1xuICAgICAgICAgICAgICAgIGFzTm90Rm91bmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdHJlZTogbm90Rm91bmRMb2FkZXJUcmVlLFxuICAgICAgICAgICAgICAgIGZvcm1TdGF0ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlbmRlclJlc3VsdChyZXNwb25zZS5zdHJlYW0sIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uUmVxdWVzdFJlc3VsdC50eXBlID09PSBcImRvbmVcIikge1xuICAgICAgICAgICAgaWYgKGFjdGlvblJlcXVlc3RSZXN1bHQucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUmVxdWVzdFJlc3VsdC5yZXN1bHQuYXNzaWduTWV0YWRhdGEobWV0YWRhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb25SZXF1ZXN0UmVzdWx0LnJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uUmVxdWVzdFJlc3VsdC5mb3JtU3RhdGUpIHtcbiAgICAgICAgICAgICAgICBmb3JtU3RhdGUgPSBhY3Rpb25SZXF1ZXN0UmVzdWx0LmZvcm1TdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICBtZXRhZGF0YVxuICAgIH07XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgcmVuZGVyVG9TdHJlYW0oe1xuICAgICAgICBhc05vdEZvdW5kOiBpc05vdEZvdW5kUGF0aCxcbiAgICAgICAgdHJlZTogbG9hZGVyVHJlZSxcbiAgICAgICAgZm9ybVN0YXRlXG4gICAgfSk7XG4gICAgLy8gSWYgd2UgaGF2ZSBwZW5kaW5nIHJldmFsaWRhdGVzLCB3YWl0IHVudGlsIHRoZXkgYXJlIGFsbCByZXNvbHZlZC5cbiAgICBpZiAoc3RhdGljR2VuZXJhdGlvblN0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcykge1xuICAgICAgICBvcHRpb25zLndhaXRVbnRpbCA9IFByb21pc2UuYWxsKE9iamVjdC52YWx1ZXMoc3RhdGljR2VuZXJhdGlvblN0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcykpO1xuICAgIH1cbiAgICBhZGRJbXBsaWNpdFRhZ3Moc3RhdGljR2VuZXJhdGlvblN0b3JlKTtcbiAgICBpZiAoc3RhdGljR2VuZXJhdGlvblN0b3JlLnRhZ3MpIHtcbiAgICAgICAgbWV0YWRhdGEuZmV0Y2hUYWdzID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLnRhZ3Muam9pbihcIixcIik7XG4gICAgfVxuICAgIC8vIENyZWF0ZSB0aGUgbmV3IHJlbmRlciByZXN1bHQgZm9yIHRoZSByZXNwb25zZS5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgUmVuZGVyUmVzdWx0KHJlc3BvbnNlLnN0cmVhbSwgb3B0aW9ucyk7XG4gICAgLy8gSWYgd2UgYXJlbid0IHBlcmZvcm1pbmcgc3RhdGljIGdlbmVyYXRpb24sIHdlIGNhbiByZXR1cm4gdGhlIHJlc3VsdCBub3cuXG4gICAgaWYgKCFpc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLy8gSWYgdGhpcyBpcyBzdGF0aWMgZ2VuZXJhdGlvbiwgd2Ugc2hvdWxkIHJlYWQgdGhpcyBpbiBub3cgcmF0aGVyIHRoYW5cbiAgICAvLyBzZW5kaW5nIGl0IGJhY2sgdG8gYmUgc2VudCB0byB0aGUgY2xpZW50LlxuICAgIHJlc3BvbnNlLnN0cmVhbSA9IGF3YWl0IHJlc3VsdC50b1VuY2h1bmtlZFN0cmluZyh0cnVlKTtcbiAgICAvLyBUaW1lb3V0IGFmdGVyIDEuNSBzZWNvbmRzIGZvciB0aGUgaGVhZGVycyB0byB3cml0ZS4gSWYgaXQgdGFrZXNcbiAgICAvLyBsb25nZXIgdGhhbiB0aGlzIGl0J3MgbW9yZSBsaWtlbHkgdGhhdCB0aGUgc3RyZWFtIGhhcyBzdGFsbGVkIGFuZFxuICAgIC8vIHRoZXJlIGlzIGEgUmVhY3QgYnVnLiBUaGUgaGVhZGVycyB3aWxsIHRoZW4gYmUgdXBkYXRlZCBpbiB0aGUgcmVuZGVyXG4gICAgLy8gcmVzdWx0IGJlbG93IHdoZW4gdGhlIG1ldGFkYXRhIGlzIHJlLWFkZGVkIHRvIHRoZSBuZXcgcmVuZGVyIHJlc3VsdC5cbiAgICBjb25zdCBvblRpbWVvdXQgPSBuZXcgRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgb25UaW1lb3V0LnJlamVjdChuZXcgRXJyb3IoXCJUaW1lb3V0IHdhaXRpbmcgZm9yIGhlYWRlcnMgdG8gYmUgZW1pdHRlZCwgdGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzXCIpKTtcbiAgICB9LCAxNTAwKTtcbiAgICAvLyBSYWNlIGFnYWluc3QgdGhlIHRpbWVvdXQgYW5kIHRoZSBoZWFkZXJzIGJlaW5nIHdyaXR0ZW4uXG4gICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgb25IZWFkZXJzRmluaXNoZWQucHJvbWlzZSxcbiAgICAgICAgb25UaW1lb3V0LnByb21pc2VcbiAgICBdKTtcbiAgICAvLyBJdCBnb3QgaGVyZSwgd2hpY2ggbWVhbnMgaXQgZGlkIG5vdCByZWplY3QsIHNvIGNsZWFyIHRoZSB0aW1lb3V0IHRvIGF2b2lkXG4gICAgLy8gaXQgZnJvbSByZWplY3RpbmcgYWdhaW4gKHdoaWNoIGlzIGEgbm8tb3AgYW55d2F5cykuXG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgIC8vIElmIFBQUiBpcyBlbmFibGVkIGFuZCB0aGUgcG9zdHBvbmUgd2FzIHRyaWdnZXJlZCBidXQgbGFja3MgdGhlIHBvc3Rwb25lZFxuICAgIC8vIHN0YXRlIGluZm9ybWF0aW9uIHRoZW4gd2Ugc2hvdWxkIGVycm9yIG91dCB1bmxlc3MgdGhlIGNsaWVudCBzaWRlIHJlbmRlcmluZ1xuICAgIC8vIGJhaWxvdXQgZXJyb3Igd2FzIGFsc28gZW1pdHRlZCB3aGljaCBpbmRpY2F0ZXMgdGhhdCBwYXJ0IG9mIHRoZSBzdHJlYW0gd2FzXG4gICAgLy8gbm90IHJlbmRlcmVkLlxuICAgIGlmIChyZW5kZXJPcHRzLmV4cGVyaW1lbnRhbC5wcHIgJiYgc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lV2FzVHJpZ2dlcmVkICYmICFtZXRhZGF0YS5wb3N0cG9uZWQgJiYgKCFyZXNwb25zZS5lcnIgfHwgIWlzQmFpbG91dFRvQ1NSRXJyb3IocmVzcG9uc2UuZXJyKSkpIHtcbiAgICAgICAgLy8gYSBjYWxsIHRvIHBvc3Rwb25lIHdhcyBtYWRlIGJ1dCB3YXMgY2F1Z2h0IGFuZCBub3QgZGV0ZWN0ZWQgYnkgTmV4dC5qcy4gV2Ugc2hvdWxkIGZhaWwgdGhlIGJ1aWxkIGltbWVkaWF0ZWx5XG4gICAgICAgIC8vIGFzIHdlIHdvbid0IGJlIGFibGUgdG8gZ2VuZXJhdGUgdGhlIHN0YXRpYyBwYXJ0XG4gICAgICAgIHdhcm4oXCJcIik7XG4gICAgICAgIGVycm9yKGBQcmVyZW5kZXJpbmcgJHt1cmxQYXRobmFtZX0gbmVlZHMgdG8gcGFydGlhbGx5IGJhaWwgb3V0IGJlY2F1c2Ugc29tZXRoaW5nIGR5bmFtaWMgd2FzIHVzZWQuIGAgKyBgUmVhY3QgdGhyb3dzIGEgc3BlY2lhbCBvYmplY3QgdG8gaW5kaWNhdGUgd2hlcmUgd2UgbmVlZCB0byBiYWlsIG91dCBidXQgaXQgd2FzIGNhdWdodCBgICsgYGJ5IGEgdHJ5L2NhdGNoIG9yIGEgUHJvbWlzZSB3YXMgbm90IGF3YWl0ZWQuIFRoZXNlIHNwZWNpYWwgb2JqZWN0cyBzaG91bGQgbm90IGJlIGNhdWdodCBgICsgYGJ5IHlvdXIgb3duIHRyeS9jYXRjaC4gTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHByLWNhdWdodC1lcnJvcmApO1xuICAgICAgICBpZiAoY2FwdHVyZWRFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgd2FybihcIlRoZSBmb2xsb3dpbmcgZXJyb3Igd2FzIHRocm93biBkdXJpbmcgYnVpbGQsIGFuZCBtYXkgaGVscCBpZGVudGlmeSB0aGUgc291cmNlIG9mIHRoZSBpc3N1ZTpcIik7XG4gICAgICAgICAgICBlcnJvcihjYXB0dXJlZEVycm9yc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdQb3N0cG9uZURhdGFFcnJvcihgQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCB3aGlsZSBwcmVyZW5kZXJpbmcgJHt1cmxQYXRobmFtZX0uIFBsZWFzZSBjaGVjayB0aGUgbG9ncyBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzLmApO1xuICAgIH1cbiAgICBpZiAoIWZsaWdodERhdGFSZXNvbHZlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IEZsaWdodCBkYXRhIHJlc29sdmVyIGlzIG1pc3Npbmcgd2hlbiBnZW5lcmF0aW5nIHN0YXRpYyBIVE1MXCIpO1xuICAgIH1cbiAgICAvLyBJZiB3ZSBlbmNvdW50ZXJlZCBhbnkgdW5leHBlY3RlZCBlcnJvcnMgZHVyaW5nIGJ1aWxkIHdlIGZhaWwgdGhlXG4gICAgLy8gcHJlcmVuZGVyaW5nIHBoYXNlIGFuZCB0aGUgYnVpbGQuXG4gICAgaWYgKGNhcHR1cmVkRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgY2FwdHVyZWRFcnJvcnNbMF07XG4gICAgfVxuICAgIC8vIFdhaXQgZm9yIGFuZCBjb2xsZWN0IHRoZSBmbGlnaHQgcGF5bG9hZCBkYXRhIGlmIHdlIGRvbid0IGhhdmUgaXRcbiAgICAvLyBhbHJlYWR5XG4gICAgY29uc3QgZmxpZ2h0RGF0YSA9IGF3YWl0IGZsaWdodERhdGFSZXNvbHZlcigpO1xuICAgIGlmIChmbGlnaHREYXRhKSB7XG4gICAgICAgIG1ldGFkYXRhLmZsaWdodERhdGEgPSBmbGlnaHREYXRhO1xuICAgIH1cbiAgICAvLyBJZiBmb3JjZSBzdGF0aWMgaXMgc3BlY2lmaWNhbGx5IHNldCB0byBmYWxzZSwgd2Ugc2hvdWxkIG5vdCByZXZhbGlkYXRlXG4gICAgLy8gdGhlIHBhZ2UuXG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mb3JjZVN0YXRpYyA9PT0gZmFsc2UpIHtcbiAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGUgPSAwO1xuICAgIH1cbiAgICAvLyBDb3B5IHRoZSByZXZhbGlkYXRpb24gdmFsdWUgb250byB0aGUgcmVuZGVyIHJlc3VsdCBtZXRhZGF0YS5cbiAgICBtZXRhZGF0YS5yZXZhbGlkYXRlID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGUgPz8gY3R4LmRlZmF1bHRSZXZhbGlkYXRlO1xuICAgIC8vIHByb3ZpZGUgYmFpbG91dCBpbmZvIGZvciBkZWJ1Z2dpbmdcbiAgICBpZiAobWV0YWRhdGEucmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICBtZXRhZGF0YS5zdGF0aWNCYWlsb3V0SW5mbyA9IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZHluYW1pY1VzYWdlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICBzdGFjazogc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZVN0YWNrXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVuZGVyUmVzdWx0KHJlc3BvbnNlLnN0cmVhbSwgb3B0aW9ucyk7XG59XG5leHBvcnQgY29uc3QgcmVuZGVyVG9IVE1MT3JGbGlnaHQgPSAocmVxLCByZXMsIHBhZ2VQYXRoLCBxdWVyeSwgcmVuZGVyT3B0cyk9PntcbiAgICAvLyBUT0RPOiB0aGlzIGluY2x1ZGVzIHF1ZXJ5IHN0cmluZywgc2hvdWxkIGl0P1xuICAgIGNvbnN0IHBhdGhuYW1lID0gdmFsaWRhdGVVUkwocmVxLnVybCk7XG4gICAgcmV0dXJuIFJlcXVlc3RBc3luY1N0b3JhZ2VXcmFwcGVyLndyYXAocmVuZGVyT3B0cy5Db21wb25lbnRNb2QucmVxdWVzdEFzeW5jU3RvcmFnZSwge1xuICAgICAgICByZXEsXG4gICAgICAgIHJlcyxcbiAgICAgICAgcmVuZGVyT3B0c1xuICAgIH0sIChyZXF1ZXN0U3RvcmUpPT5TdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlV3JhcHBlci53cmFwKHJlbmRlck9wdHMuQ29tcG9uZW50TW9kLnN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UsIHtcbiAgICAgICAgICAgIHVybFBhdGhuYW1lOiBwYXRobmFtZSxcbiAgICAgICAgICAgIHJlbmRlck9wdHMsXG4gICAgICAgICAgICBwb3N0cG9uZTogUmVhY3QudW5zdGFibGVfcG9zdHBvbmVcbiAgICAgICAgfSwgKHN0YXRpY0dlbmVyYXRpb25TdG9yZSk9PnJlbmRlclRvSFRNTE9yRmxpZ2h0SW1wbChyZXEsIHJlcywgcGFnZVBhdGgsIHF1ZXJ5LCByZW5kZXJPcHRzLCB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JlLFxuICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZSxcbiAgICAgICAgICAgICAgICBjb21wb25lbnRNb2Q6IHJlbmRlck9wdHMuQ29tcG9uZW50TW9kLFxuICAgICAgICAgICAgICAgIHJlbmRlck9wdHNcbiAgICAgICAgICAgIH0pKSk7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcmVuZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJSZWFjdCIsImNyZWF0ZVJlYWN0U2VydmVyUmVuZGVyZXIiLCJSZW5kZXJSZXN1bHQiLCJyZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtIiwiY29udGludWVGaXp6U3RyZWFtIiwiY2xvbmVUcmFuc2Zvcm1TdHJlYW0iLCJjb250aW51ZVBvc3Rwb25lZEZpenpTdHJlYW0iLCJjYW5TZWdtZW50QmVPdmVycmlkZGVuIiwic3RyaXBJbnRlcm5hbFF1ZXJpZXMiLCJORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFIiwiUlNDX0hFQURFUiIsImNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cyIsIlJlcXVlc3RBc3luY1N0b3JhZ2VXcmFwcGVyIiwiU3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZVdyYXBwZXIiLCJpc05vdEZvdW5kRXJyb3IiLCJnZXRVUkxGcm9tUmVkaXJlY3RFcnJvciIsImlzUmVkaXJlY3RFcnJvciIsImdldFJlZGlyZWN0U3RhdHVzQ29kZUZyb21FcnJvciIsImFkZEltcGxpY2l0VGFncyIsIkFwcFJlbmRlclNwYW4iLCJnZXRUcmFjZXIiLCJGbGlnaHRSZW5kZXJSZXN1bHQiLCJjcmVhdGVFcnJvckhhbmRsZXIiLCJnZXRTaG9ydER5bmFtaWNQYXJhbVR5cGUiLCJkeW5hbWljUGFyYW1UeXBlcyIsImdldFNlZ21lbnRQYXJhbSIsImdldFNjcmlwdE5vbmNlRnJvbUhlYWRlciIsInBhcnNlQW5kVmFsaWRhdGVGbGlnaHRSb3V0ZXJTdGF0ZSIsInZhbGlkYXRlVVJMIiwiY3JlYXRlRmxpZ2h0Um91dGVyU3RhdGVGcm9tTG9hZGVyVHJlZSIsImhhbmRsZUFjdGlvbiIsImlzQmFpbG91dFRvQ1NSRXJyb3IiLCJ3YXJuIiwiZXJyb3IiLCJhcHBlbmRNdXRhYmxlQ29va2llcyIsImNyZWF0ZVNlcnZlckluc2VydGVkSFRNTCIsImdldFJlcXVpcmVkU2NyaXB0cyIsImFkZFBhdGhQcmVmaXgiLCJtYWtlR2V0U2VydmVySW5zZXJ0ZWRIVE1MIiwid2Fsa1RyZWVXaXRoRmxpZ2h0Um91dGVyU3RhdGUiLCJjcmVhdGVDb21wb25lbnRUcmVlIiwiZ2V0QXNzZXRRdWVyeVN0cmluZyIsInNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbiIsImNyZWF0ZVN0YXRpY1JlbmRlcmVyIiwiTWlzc2luZ1Bvc3Rwb25lRGF0YUVycm9yIiwiRGV0YWNoZWRQcm9taXNlIiwiaXNEeW5hbWljU2VydmVyRXJyb3IiLCJ1c2VGbGlnaHRSZXNwb25zZSIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiY3JlYXRlTm90Rm91bmRMb2FkZXJUcmVlIiwibG9hZGVyVHJlZSIsImZpbmREeW5hbWljUGFyYW1Gcm9tUm91dGVyU3RhdGUiLCJwcm92aWRlZEZsaWdodFJvdXRlclN0YXRlIiwic2VnbWVudCIsInRyZWVTZWdtZW50IiwiQXJyYXkiLCJpc0FycmF5IiwicGFyYW0iLCJ2YWx1ZSIsInR5cGUiLCJwYXJhbGxlbFJvdXRlclN0YXRlIiwiT2JqZWN0IiwidmFsdWVzIiwibWF5YmVEeW5hbWljUGFyYW0iLCJtYWtlR2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQiLCJwYXJhbXMiLCJnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCIsInNlZ21lbnRQYXJhbSIsImtleSIsInVuZGVmaW5lZCIsIm1hcCIsImkiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIiwiZ2VuZXJhdGVGbGlnaHQiLCJjdHgiLCJvcHRpb25zIiwiZmxpZ2h0RGF0YSIsImNvbXBvbmVudE1vZCIsInRyZWUiLCJyZW5kZXJUb1JlYWRhYmxlU3RyZWFtIiwiYXBwVXNpbmdTaXplQWRqdXN0bWVudCIsInN0YXRpY0dlbmVyYXRpb25TdG9yZSIsInVybFBhdGhuYW1lIiwicHJvdmlkZWRTZWFyY2hQYXJhbXMiLCJyZXF1ZXN0SWQiLCJza2lwRmxpZ2h0IiwiTWV0YWRhdGFUcmVlIiwiTWV0YWRhdGFPdXRsZXQiLCJwYXRobmFtZSIsInNlYXJjaFBhcmFtcyIsImNyZWF0ZVNlZ21lbnRQYXRoIiwiY2hpbGQiLCJsb2FkZXJUcmVlVG9GaWx0ZXIiLCJwYXJlbnRQYXJhbXMiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsImlzRmlyc3QiLCJyc2NQYXlsb2FkSGVhZCIsImluamVjdGVkQ1NTIiwiU2V0IiwiaW5qZWN0ZWRKUyIsImluamVjdGVkRm9udFByZWxvYWRUYWdzIiwicm9vdExheW91dEluY2x1ZGVkIiwiYXNOb3RGb3VuZCIsImlzTm90Rm91bmRQYXRoIiwibWV0YWRhdGFPdXRsZXQiLCJwYXRoIiwic2xpY2UiLCJidWlsZElkRmxpZ2h0RGF0YVBhaXIiLCJyZW5kZXJPcHRzIiwiYnVpbGRJZCIsImZsaWdodFJlYWRhYmxlU3RyZWFtIiwiYWN0aW9uUmVzdWx0IiwiY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QiLCJjbGllbnRNb2R1bGVzIiwib25FcnJvciIsImZsaWdodERhdGFSZW5kZXJlckVycm9ySGFuZGxlciIsImNyZWF0ZUZsaWdodERhdGFSZXNvbHZlciIsInByb21pc2UiLCJ0aGVuIiwicmVzdWx0IiwidG9VbmNodW5rZWRTdHJpbmciLCJjYXRjaCIsImVyciIsIlJlYWN0U2VydmVyQXBwIiwicHJlaW5pdFNjcmlwdHMiLCJtaXNzaW5nU2xvdHMiLCJxdWVyeSIsIkFwcFJvdXRlciIsIkdsb2JhbEVycm9yIiwiaW5pdGlhbFRyZWUiLCJlcnJvclR5cGUiLCJzZWVkRGF0YSIsInN0eWxlcyIsImZpcnN0SXRlbSIsImNoaWxkcmVuIiwiYXNzZXRQcmVmaXgiLCJpbml0aWFsQ2Fub25pY2FsVXJsIiwiaW5pdGlhbFNlZWREYXRhIiwiaW5pdGlhbEhlYWQiLCJyZXMiLCJzdGF0dXNDb2RlIiwibmFtZSIsImNvbnRlbnQiLCJnbG9iYWxFcnJvckNvbXBvbmVudCIsIlJlYWN0U2VydmVyRXJyb3IiLCJoZWFkIiwiaWQiLCJSZWFjdFNlcnZlckVudHJ5cG9pbnQiLCJyZW5kZXJSZWFjdFNlcnZlciIsImlubGluZWREYXRhVHJhbnNmb3JtU3RyZWFtIiwiZm9ybVN0YXRlIiwibm9uY2UiLCJ3cml0YWJsZSIsInJlYWN0U2VydmVyUmVxdWVzdFN0cmVhbSIsInJlYWN0U2VydmVyUmVzcG9uc2UiLCJ1c2UiLCJyZW5kZXJUb0hUTUxPckZsaWdodEltcGwiLCJyZXEiLCJwYWdlUGF0aCIsImJhc2VDdHgiLCJfZ2V0VHJhY2VyX2dldFJvb3RTcGFuQXR0cmlidXRlcyIsInJlcXVlc3RUaW1lc3RhbXAiLCJEYXRlIiwibm93IiwiYnVpbGRNYW5pZmVzdCIsInN1YnJlc291cmNlSW50ZWdyaXR5TWFuaWZlc3QiLCJzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QiLCJDb21wb25lbnRNb2QiLCJkZXYiLCJuZXh0Rm9udE1hbmlmZXN0Iiwic3VwcG9ydHNEeW5hbWljSFRNTCIsInNlcnZlckFjdGlvbnMiLCJhcHBEaXJEZXZFcnJvckxvZ2dlciIsImVuYWJsZVRhaW50aW5nIiwiX19uZXh0X2FwcF9fIiwiZ2xvYmFsVGhpcyIsIl9fbmV4dF9yZXF1aXJlX18iLCJyZXF1aXJlIiwiX19uZXh0X2NodW5rX2xvYWRfXyIsImxvYWRDaHVuayIsIm1ldGFkYXRhIiwiYXBwVXNpbmdTaXplQWRqdXN0Iiwid29ya2VyTmFtZSIsInBhZ2UiLCJzZXJ2ZXJNb2R1bGVNYXAiLCJQcm94eSIsImdldCIsIl8iLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwid29ya2VycyIsImNodW5rcyIsImNhcHR1cmVkRXJyb3JzIiwiYWxsQ2FwdHVyZWRFcnJvcnMiLCJpc05leHRFeHBvcnQiLCJuZXh0RXhwb3J0IiwicmVxdWVzdFN0b3JlIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwic2lsZW5jZVN0YXRpY0dlbmVyYXRpb25FcnJvcnMiLCJleHBlcmltZW50YWwiLCJwcHIiLCJzZXJ2ZXJDb21wb25lbnRzRXJyb3JIYW5kbGVyIiwiX3NvdXJjZSIsImVycm9yTG9nZ2VyIiwic2lsZW5jZUxvZ2dlciIsImh0bWxSZW5kZXJlckVycm9ySGFuZGxlciIsInNlcnZlckNvbXBvbmVudHNEaWRQb3N0cG9uZSIsInNlcnZlckNvbXBvbmVudHNQb3N0cG9uZUhhbmRsZXIiLCJfcmVhc29uIiwicGF0Y2hGZXRjaCIsImdlbmVyYXRlU3RhdGljSFRNTCIsImNyZWF0ZVNlYXJjaFBhcmFtc0JhaWxvdXRQcm94eSIsInRhaW50T2JqZWN0UmVmZXJlbmNlIiwiZmV0Y2hNZXRyaWNzIiwiaXNSU0NSZXF1ZXN0IiwiaGVhZGVycyIsInRvTG93ZXJDYXNlIiwiaXNQcmVmZXRjaFJTQ1JlcXVlc3QiLCJjcnlwdG8iLCJyYW5kb21VVUlEIiwibmFub2lkIiwic2VhcmNoUGFyYW1zUHJvcHMiLCJpc1ByZWZldGNoIiwiZGVmYXVsdFJldmFsaWRhdGUiLCJoYXNQb3N0cG9uZWQiLCJwb3N0cG9uZWQiLCJmbGlnaHREYXRhUmVzb2x2ZXIiLCJjc3AiLCJ2YWxpZGF0ZVJvb3RMYXlvdXQiLCJnZXRUcmVlIiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiU2VydmVySW5zZXJ0ZWRIVE1MUHJvdmlkZXIiLCJyZW5kZXJTZXJ2ZXJJbnNlcnRlZEhUTUwiLCJnZXRSb290U3BhbkF0dHJpYnV0ZXMiLCJzZXQiLCJvbkhlYWRlcnNGaW5pc2hlZCIsInJlbmRlclRvU3RyZWFtIiwid3JhcCIsImdldEJvZHlSZXN1bHQiLCJzcGFuTmFtZSIsImF0dHJpYnV0ZXMiLCJwb2x5ZmlsbHMiLCJwb2x5ZmlsbEZpbGVzIiwiZmlsdGVyIiwicG9seWZpbGwiLCJlbmRzV2l0aCIsInNyYyIsImludGVncml0eSIsImNyb3NzT3JpZ2luIiwibm9Nb2R1bGUiLCJib290c3RyYXBTY3JpcHQiLCJzZXJ2ZXJDb21wb25lbnRzUmVuZGVyZXIiLCJyZW5kZXJJbmxpbmVkRGF0YVRyYW5zZm9ybVN0cmVhbSIsIlRyYW5zZm9ybVN0cmVhbSIsIlByb3ZpZGVyIiwiYXBwRGlyIiwiZ2V0U2VydmVySW5zZXJ0ZWRIVE1MIiwicmVuZGVyZXIiLCJKU09OIiwicGFyc2UiLCJzdHJlYW1PcHRpb25zIiwib25IZWFkZXJzIiwiZm9yRWFjaCIsInJlc29sdmUiLCJhcHBlbmRIZWFkZXIiLCJtYXhIZWFkZXJzTGVuZ3RoIiwiYm9vdHN0cmFwU2NyaXB0cyIsInN0cmVhbSIsInJlbmRlciIsInN0cmluZ2lmeSIsImlubGluZWREYXRhU3RyZWFtIiwicmVhZGFibGUiLCJzZXJ2ZXJJbnNlcnRlZEhUTUxUb0hlYWQiLCJzdWZmaXgiLCJtZXNzYWdlIiwiaW5jbHVkZXMiLCJzaG91bGRCYWlsb3V0VG9DU1IiLCJjb25zb2xlIiwibG9nIiwibWlzc2luZ1N1c3BlbnNlV2l0aENTUkJhaWxvdXQiLCJyZWFzb24iLCJoYXNSZWRpcmVjdEVycm9yIiwibXV0YWJsZUNvb2tpZXMiLCJIZWFkZXJzIiwic2V0SGVhZGVyIiwiZnJvbSIsInJlZGlyZWN0VXJsIiwiYmFzZVBhdGgiLCJpczQwNCIsImVycm9yUHJlaW5pdFNjcmlwdHMiLCJlcnJvckJvb3RzdHJhcFNjcmlwdCIsImVycm9yU2VydmVyQ29tcG9uZW50c1JlbmRlcmVyIiwiZXJyb3JJbmxpbmVkRGF0YVRyYW5zZm9ybVN0cmVhbSIsImZpenpTdHJlYW0iLCJSZWFjdERPTVNlcnZlciIsImVsZW1lbnQiLCJmaW5hbEVyciIsImJhaWxPbk5vdEZvdW5kIiwiYWN0aW9uUmVxdWVzdFJlc3VsdCIsIm5vdEZvdW5kTG9hZGVyVHJlZSIsInJlc3BvbnNlIiwiYXNzaWduTWV0YWRhdGEiLCJwZW5kaW5nUmV2YWxpZGF0ZXMiLCJ3YWl0VW50aWwiLCJQcm9taXNlIiwiYWxsIiwidGFncyIsImZldGNoVGFncyIsIm9uVGltZW91dCIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwicmVqZWN0IiwiRXJyb3IiLCJyYWNlIiwiY2xlYXJUaW1lb3V0IiwicG9zdHBvbmVXYXNUcmlnZ2VyZWQiLCJsZW5ndGgiLCJmb3JjZVN0YXRpYyIsInJldmFsaWRhdGUiLCJzdGF0aWNCYWlsb3V0SW5mbyIsImRlc2NyaXB0aW9uIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJzdGFjayIsImR5bmFtaWNVc2FnZVN0YWNrIiwicmVuZGVyVG9IVE1MT3JGbGlnaHQiLCJ1cmwiLCJyZXF1ZXN0QXN5bmNTdG9yYWdlIiwic3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZSIsInBvc3Rwb25lIiwidW5zdGFibGVfcG9zdHBvbmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/app-render.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/create-component-styles-and-scripts.js":
-/*!*************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/create-component-styles-and-scripts.js ***!
- \*************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createComponentStylesAndScripts: () => (/* binding */ createComponentStylesAndScripts)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _interop_default__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./interop-default */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/interop-default.js\");\n/* harmony import */ var _get_css_inlined_link_tags__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-css-inlined-link-tags */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-css-inlined-link-tags.js\");\n/* harmony import */ var _get_asset_query_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./get-asset-query-string */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-asset-query-string.js\");\n\n\n\n\n\nasync function createComponentStylesAndScripts({ filePath, getComponent, injectedCSS, injectedJS, ctx }) {\n const { styles: cssHrefs, scripts: jsHrefs } = (0,_get_css_inlined_link_tags__WEBPACK_IMPORTED_MODULE_3__.getLinkAndScriptTags)(ctx.clientReferenceManifest, filePath, injectedCSS, injectedJS);\n const styles = cssHrefs ? cssHrefs.map((href, index)=>{\n const fullHref = `${ctx.assetPrefix}/_next/${href}${(0,_get_asset_query_string__WEBPACK_IMPORTED_MODULE_4__.getAssetQueryString)(ctx, true)}`;\n // `Precedence` is an opt-in signal for React to handle resource\n // loading and deduplication, etc. It's also used as the key to sort\n // resources so they will be injected in the correct order.\n // During HMR, it's critical to use different `precedence` values\n // for different stylesheets, so their order will be kept.\n // https://github.com/facebook/react/pull/25060\n const precedence = true ? \"next_\" + href : 0;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: \"stylesheet\",\n href: fullHref,\n // @ts-ignore\n precedence: precedence,\n crossOrigin: ctx.renderOpts.crossOrigin\n }, index);\n }) : null;\n const scripts = jsHrefs ? jsHrefs.map((href)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"script\", {\n src: `${ctx.assetPrefix}/_next/${href}`,\n async: true\n })) : null;\n const Comp = (0,_interop_default__WEBPACK_IMPORTED_MODULE_2__.interopDefault)(await getComponent());\n return [\n Comp,\n styles,\n scripts\n ];\n} //# sourceMappingURL=create-component-styles-and-scripts.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLWNvbXBvbmVudC1zdHlsZXMtYW5kLXNjcmlwdHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFnRDtBQUN0QjtBQUN5QjtBQUNnQjtBQUNKO0FBQ3hELGVBQWVNLGdDQUFnQyxFQUFFQyxRQUFRLEVBQUVDLFlBQVksRUFBRUMsV0FBVyxFQUFFQyxVQUFVLEVBQUVDLEdBQUcsRUFBRTtJQUMxRyxNQUFNLEVBQUVDLFFBQVFDLFFBQVEsRUFBRUMsU0FBU0MsT0FBTyxFQUFFLEdBQUdYLGdGQUFvQkEsQ0FBQ08sSUFBSUssdUJBQXVCLEVBQUVULFVBQVVFLGFBQWFDO0lBQ3hILE1BQU1FLFNBQVNDLFdBQVdBLFNBQVNJLEdBQUcsQ0FBQyxDQUFDQyxNQUFNQztRQUMxQyxNQUFNQyxXQUFXLENBQUMsRUFBRVQsSUFBSVUsV0FBVyxDQUFDLE9BQU8sRUFBRUgsS0FBSyxFQUFFYiw0RUFBbUJBLENBQUNNLEtBQUssTUFBTSxDQUFDO1FBQ3BGLGdFQUFnRTtRQUNoRSxvRUFBb0U7UUFDcEUsMkRBQTJEO1FBQzNELGlFQUFpRTtRQUNqRSwwREFBMEQ7UUFDMUQsK0NBQStDO1FBQy9DLE1BQU1XLGFBQWFDLEtBQXNDLEdBQUcsVUFBVUwsT0FBTyxDQUFNO1FBQ25GLE9BQU8sV0FBVyxHQUFHakIsc0RBQUlBLENBQUMsUUFBUTtZQUM5QnVCLEtBQUs7WUFDTE4sTUFBTUU7WUFDTixhQUFhO1lBQ2JFLFlBQVlBO1lBQ1pHLGFBQWFkLElBQUllLFVBQVUsQ0FBQ0QsV0FBVztRQUMzQyxHQUFHTjtJQUNQLEtBQUs7SUFDTCxNQUFNTCxVQUFVQyxVQUFVQSxRQUFRRSxHQUFHLENBQUMsQ0FBQ0MsT0FBTyxXQUFXLEdBQUdqQixzREFBSUEsQ0FBQyxVQUFVO1lBQ25FMEIsS0FBSyxDQUFDLEVBQUVoQixJQUFJVSxXQUFXLENBQUMsT0FBTyxFQUFFSCxLQUFLLENBQUM7WUFDdkNVLE9BQU87UUFDWCxNQUFNO0lBQ1YsTUFBTUMsT0FBTzFCLGdFQUFjQSxDQUFDLE1BQU1LO0lBQ2xDLE9BQU87UUFDSHFCO1FBQ0FqQjtRQUNBRTtLQUNIO0FBQ0wsRUFFQSwrREFBK0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL2NyZWF0ZS1jb21wb25lbnQtc3R5bGVzLWFuZC1zY3JpcHRzLmpzP2M1MDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGludGVyb3BEZWZhdWx0IH0gZnJvbSBcIi4vaW50ZXJvcC1kZWZhdWx0XCI7XG5pbXBvcnQgeyBnZXRMaW5rQW5kU2NyaXB0VGFncyB9IGZyb20gXCIuL2dldC1jc3MtaW5saW5lZC1saW5rLXRhZ3NcIjtcbmltcG9ydCB7IGdldEFzc2V0UXVlcnlTdHJpbmcgfSBmcm9tIFwiLi9nZXQtYXNzZXQtcXVlcnktc3RyaW5nXCI7XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50U3R5bGVzQW5kU2NyaXB0cyh7IGZpbGVQYXRoLCBnZXRDb21wb25lbnQsIGluamVjdGVkQ1NTLCBpbmplY3RlZEpTLCBjdHggfSkge1xuICAgIGNvbnN0IHsgc3R5bGVzOiBjc3NIcmVmcywgc2NyaXB0czoganNIcmVmcyB9ID0gZ2V0TGlua0FuZFNjcmlwdFRhZ3MoY3R4LmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LCBmaWxlUGF0aCwgaW5qZWN0ZWRDU1MsIGluamVjdGVkSlMpO1xuICAgIGNvbnN0IHN0eWxlcyA9IGNzc0hyZWZzID8gY3NzSHJlZnMubWFwKChocmVmLCBpbmRleCk9PntcbiAgICAgICAgY29uc3QgZnVsbEhyZWYgPSBgJHtjdHguYXNzZXRQcmVmaXh9L19uZXh0LyR7aHJlZn0ke2dldEFzc2V0UXVlcnlTdHJpbmcoY3R4LCB0cnVlKX1gO1xuICAgICAgICAvLyBgUHJlY2VkZW5jZWAgaXMgYW4gb3B0LWluIHNpZ25hbCBmb3IgUmVhY3QgdG8gaGFuZGxlIHJlc291cmNlXG4gICAgICAgIC8vIGxvYWRpbmcgYW5kIGRlZHVwbGljYXRpb24sIGV0Yy4gSXQncyBhbHNvIHVzZWQgYXMgdGhlIGtleSB0byBzb3J0XG4gICAgICAgIC8vIHJlc291cmNlcyBzbyB0aGV5IHdpbGwgYmUgaW5qZWN0ZWQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuXG4gICAgICAgIC8vIER1cmluZyBITVIsIGl0J3MgY3JpdGljYWwgdG8gdXNlIGRpZmZlcmVudCBgcHJlY2VkZW5jZWAgdmFsdWVzXG4gICAgICAgIC8vIGZvciBkaWZmZXJlbnQgc3R5bGVzaGVldHMsIHNvIHRoZWlyIG9yZGVyIHdpbGwgYmUga2VwdC5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjUwNjBcbiAgICAgICAgY29uc3QgcHJlY2VkZW5jZSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIgPyBcIm5leHRfXCIgKyBocmVmIDogXCJuZXh0XCI7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goXCJsaW5rXCIsIHtcbiAgICAgICAgICAgIHJlbDogXCJzdHlsZXNoZWV0XCIsXG4gICAgICAgICAgICBocmVmOiBmdWxsSHJlZixcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHByZWNlZGVuY2U6IHByZWNlZGVuY2UsXG4gICAgICAgICAgICBjcm9zc09yaWdpbjogY3R4LnJlbmRlck9wdHMuY3Jvc3NPcmlnaW5cbiAgICAgICAgfSwgaW5kZXgpO1xuICAgIH0pIDogbnVsbDtcbiAgICBjb25zdCBzY3JpcHRzID0ganNIcmVmcyA/IGpzSHJlZnMubWFwKChocmVmKT0+LyojX19QVVJFX18qLyBfanN4KFwic2NyaXB0XCIsIHtcbiAgICAgICAgICAgIHNyYzogYCR7Y3R4LmFzc2V0UHJlZml4fS9fbmV4dC8ke2hyZWZ9YCxcbiAgICAgICAgICAgIGFzeW5jOiB0cnVlXG4gICAgICAgIH0pKSA6IG51bGw7XG4gICAgY29uc3QgQ29tcCA9IGludGVyb3BEZWZhdWx0KGF3YWl0IGdldENvbXBvbmVudCgpKTtcbiAgICByZXR1cm4gW1xuICAgICAgICBDb21wLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgIHNjcmlwdHNcbiAgICBdO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtY29tcG9uZW50LXN0eWxlcy1hbmQtc2NyaXB0cy5qcy5tYXAiXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIlJlYWN0IiwiaW50ZXJvcERlZmF1bHQiLCJnZXRMaW5rQW5kU2NyaXB0VGFncyIsImdldEFzc2V0UXVlcnlTdHJpbmciLCJjcmVhdGVDb21wb25lbnRTdHlsZXNBbmRTY3JpcHRzIiwiZmlsZVBhdGgiLCJnZXRDb21wb25lbnQiLCJpbmplY3RlZENTUyIsImluamVjdGVkSlMiLCJjdHgiLCJzdHlsZXMiLCJjc3NIcmVmcyIsInNjcmlwdHMiLCJqc0hyZWZzIiwiY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QiLCJtYXAiLCJocmVmIiwiaW5kZXgiLCJmdWxsSHJlZiIsImFzc2V0UHJlZml4IiwicHJlY2VkZW5jZSIsInByb2Nlc3MiLCJyZWwiLCJjcm9zc09yaWdpbiIsInJlbmRlck9wdHMiLCJzcmMiLCJhc3luYyIsIkNvbXAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/create-component-styles-and-scripts.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/create-component-tree.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/create-component-tree.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Postpone: () => (/* binding */ Postpone),\n/* harmony export */ createComponentTree: () => (/* binding */ createComponentTree)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_client_reference__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/client-reference */ \"(ssr)/../../node_modules/next/dist/esm/lib/client-reference.js\");\n/* harmony import */ var _lib_app_dir_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/app-dir-module */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/app-dir-module.js\");\n/* harmony import */ var _interop_default__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./interop-default */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/interop-default.js\");\n/* harmony import */ var _parse_loader_tree__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./parse-loader-tree */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/parse-loader-tree.js\");\n/* harmony import */ var _create_component_styles_and_scripts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./create-component-styles-and-scripts */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/create-component-styles-and-scripts.js\");\n/* harmony import */ var _get_layer_assets__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./get-layer-assets */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-layer-assets.js\");\n/* harmony import */ var _has_loading_component_in_tree__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./has-loading-component-in-tree */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/has-loading-component-in-tree.js\");\n/* harmony import */ var _lib_patch_fetch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../lib/patch-fetch */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/patch-fetch.js\");\n/* harmony import */ var _client_components_parallel_route_default__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../client/components/parallel-route-default */ \"(ssr)/../../node_modules/next/dist/esm/client/components/parallel-route-default.js\");\n/* harmony import */ var _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../lib/trace/tracer */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n/* harmony import */ var _lib_trace_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../lib/trace/constants */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */ const Postpone = ({ postpone })=>{\n // Call the postpone API now with the reason set to \"force-dynamic\".\n return postpone('dynamic = \"force-dynamic\" was used');\n};\n/**\n * Use the provided loader tree to create the React Component tree.\n */ async function createComponentTree({ createSegmentPath, loaderTree: tree, parentParams, firstItem, rootLayoutIncluded, injectedCSS, injectedJS, injectedFontPreloadTags, asNotFound, metadataOutlet, ctx, missingSlots }) {\n const { renderOpts: { nextConfigOutput, experimental }, staticGenerationStore, componentMod: { staticGenerationBailout, NotFoundBoundary, LayoutRouter, RenderFromTemplateContext, StaticGenerationSearchParamsBailoutProvider, serverHooks: { DynamicServerError } }, pagePath, getDynamicParamFromSegment, isPrefetch, searchParamsProps } = ctx;\n const { page, layoutOrPagePath, segment, components, parallelRoutes } = (0,_parse_loader_tree__WEBPACK_IMPORTED_MODULE_5__.parseLoaderTree)(tree);\n const { layout, template, error, loading, \"not-found\": notFound } = components;\n const injectedCSSWithCurrentLayout = new Set(injectedCSS);\n const injectedJSWithCurrentLayout = new Set(injectedJS);\n const injectedFontPreloadTagsWithCurrentLayout = new Set(injectedFontPreloadTags);\n const layerAssets = (0,_get_layer_assets__WEBPACK_IMPORTED_MODULE_7__.getLayerAssets)({\n ctx,\n layoutOrPagePath,\n injectedCSS: injectedCSSWithCurrentLayout,\n injectedJS: injectedJSWithCurrentLayout,\n injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout\n });\n const [Template, templateStyles, templateScripts] = template ? await (0,_create_component_styles_and_scripts__WEBPACK_IMPORTED_MODULE_6__.createComponentStylesAndScripts)({\n ctx,\n filePath: template[1],\n getComponent: template[0],\n injectedCSS: injectedCSSWithCurrentLayout,\n injectedJS: injectedJSWithCurrentLayout\n }) : [\n (react__WEBPACK_IMPORTED_MODULE_1___default().Fragment)\n ];\n const [ErrorComponent, errorStyles, errorScripts] = error ? await (0,_create_component_styles_and_scripts__WEBPACK_IMPORTED_MODULE_6__.createComponentStylesAndScripts)({\n ctx,\n filePath: error[1],\n getComponent: error[0],\n injectedCSS: injectedCSSWithCurrentLayout,\n injectedJS: injectedJSWithCurrentLayout\n }) : [];\n const [Loading, loadingStyles, loadingScripts] = loading ? await (0,_create_component_styles_and_scripts__WEBPACK_IMPORTED_MODULE_6__.createComponentStylesAndScripts)({\n ctx,\n filePath: loading[1],\n getComponent: loading[0],\n injectedCSS: injectedCSSWithCurrentLayout,\n injectedJS: injectedJSWithCurrentLayout\n }) : [];\n const isLayout = typeof layout !== \"undefined\";\n const isPage = typeof page !== \"undefined\";\n const [layoutOrPageMod] = await (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_11__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_12__.NextNodeServerSpan.getLayoutOrPageModule, {\n hideSpan: !(isLayout || isPage),\n spanName: \"resolve segment modules\",\n attributes: {\n \"next.segment\": segment\n }\n }, ()=>(0,_lib_app_dir_module__WEBPACK_IMPORTED_MODULE_3__.getLayoutOrPageModule)(tree));\n /**\n * Checks if the current segment is a root layout.\n */ const rootLayoutAtThisLevel = isLayout && !rootLayoutIncluded;\n /**\n * Checks if the current segment or any level above it has a root layout.\n */ const rootLayoutIncludedAtThisLevelOrAbove = rootLayoutIncluded || rootLayoutAtThisLevel;\n const [NotFound, notFoundStyles] = notFound ? await (0,_create_component_styles_and_scripts__WEBPACK_IMPORTED_MODULE_6__.createComponentStylesAndScripts)({\n ctx,\n filePath: notFound[1],\n getComponent: notFound[0],\n injectedCSS: injectedCSSWithCurrentLayout,\n injectedJS: injectedJSWithCurrentLayout\n }) : [];\n let dynamic = layoutOrPageMod == null ? void 0 : layoutOrPageMod.dynamic;\n if (nextConfigOutput === \"export\") {\n if (!dynamic || dynamic === \"auto\") {\n dynamic = \"error\";\n } else if (dynamic === \"force-dynamic\") {\n staticGenerationStore.forceDynamic = true;\n staticGenerationStore.dynamicShouldError = true;\n staticGenerationBailout(`output: export`, {\n dynamic,\n link: \"https://nextjs.org/docs/advanced-features/static-html-export\"\n });\n }\n }\n if (typeof dynamic === \"string\") {\n // the nested most config wins so we only force-static\n // if it's configured above any parent that configured\n // otherwise\n if (dynamic === \"error\") {\n staticGenerationStore.dynamicShouldError = true;\n } else if (dynamic === \"force-dynamic\") {\n staticGenerationStore.forceDynamic = true;\n // TODO: (PPR) remove this bailout once PPR is the default\n if (!staticGenerationStore.postpone) {\n // If the postpone API isn't available, we can't postpone the render and\n // therefore we can't use the dynamic API.\n staticGenerationBailout(`force-dynamic`, {\n dynamic\n });\n }\n } else {\n staticGenerationStore.dynamicShouldError = false;\n if (dynamic === \"force-static\") {\n staticGenerationStore.forceStatic = true;\n } else {\n staticGenerationStore.forceStatic = false;\n }\n }\n }\n if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.fetchCache) === \"string\") {\n staticGenerationStore.fetchCache = layoutOrPageMod == null ? void 0 : layoutOrPageMod.fetchCache;\n }\n if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate) !== \"undefined\") {\n (0,_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_9__.validateRevalidate)(layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate, staticGenerationStore.urlPathname);\n }\n if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate) === \"number\") {\n ctx.defaultRevalidate = layoutOrPageMod.revalidate;\n if (typeof staticGenerationStore.revalidate === \"undefined\" || typeof staticGenerationStore.revalidate === \"number\" && staticGenerationStore.revalidate > ctx.defaultRevalidate) {\n staticGenerationStore.revalidate = ctx.defaultRevalidate;\n }\n if (!staticGenerationStore.forceStatic && staticGenerationStore.isStaticGeneration && ctx.defaultRevalidate === 0 && // If the postpone API isn't available, we can't postpone the render and\n // therefore we can't use the dynamic API.\n !staticGenerationStore.postpone) {\n const dynamicUsageDescription = `revalidate: 0 configured ${segment}`;\n staticGenerationStore.dynamicUsageDescription = dynamicUsageDescription;\n throw new DynamicServerError(dynamicUsageDescription);\n }\n }\n // If there's a dynamic usage error attached to the store, throw it.\n if (staticGenerationStore.dynamicUsageErr) {\n throw staticGenerationStore.dynamicUsageErr;\n }\n const LayoutOrPage = layoutOrPageMod ? (0,_interop_default__WEBPACK_IMPORTED_MODULE_4__.interopDefault)(layoutOrPageMod) : undefined;\n /**\n * The React Component to render.\n */ let Component = LayoutOrPage;\n const parallelKeys = Object.keys(parallelRoutes);\n const hasSlotKey = parallelKeys.length > 1;\n // TODO-APP: This is a hack to support unmatched parallel routes, which will throw `notFound()`.\n // This ensures that a `NotFoundBoundary` is available for when that happens,\n // but it's not ideal, as it needlessly invokes the `NotFound` component and renders the `RootLayout` twice.\n // We should instead look into handling the fallback behavior differently in development mode so that it doesn't\n // rely on the `NotFound` behavior.\n if (hasSlotKey && rootLayoutAtThisLevel && LayoutOrPage) {\n Component = (componentProps)=>{\n const NotFoundComponent = NotFound;\n const RootLayoutComponent = LayoutOrPage;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(NotFoundBoundary, {\n notFound: NotFoundComponent ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n layerAssets,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(RootLayoutComponent, {\n params: componentProps.params,\n children: [\n notFoundStyles,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(NotFoundComponent, {})\n ]\n })\n ]\n }) : undefined,\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(RootLayoutComponent, {\n ...componentProps\n })\n });\n };\n }\n if (true) {\n const { isValidElementType } = __webpack_require__(/*! next/dist/compiled/react-is */ \"(ssr)/../../node_modules/next/dist/compiled/react-is/index.js\");\n if ((isPage || typeof Component !== \"undefined\") && !isValidElementType(Component)) {\n throw new Error(`The default export is not a React Component in page: \"${pagePath}\"`);\n }\n if (typeof ErrorComponent !== \"undefined\" && !isValidElementType(ErrorComponent)) {\n throw new Error(`The default export of error is not a React Component in page: ${segment}`);\n }\n if (typeof Loading !== \"undefined\" && !isValidElementType(Loading)) {\n throw new Error(`The default export of loading is not a React Component in ${segment}`);\n }\n if (typeof NotFound !== \"undefined\" && !isValidElementType(NotFound)) {\n throw new Error(`The default export of notFound is not a React Component in ${segment}`);\n }\n }\n // Handle dynamic segment params.\n const segmentParam = getDynamicParamFromSegment(segment);\n /**\n * Create object holding the parent params and current params\n */ const currentParams = segmentParam && segmentParam.value !== null ? {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n } : parentParams;\n // Resolve the segment param\n const actualSegment = segmentParam ? segmentParam.treeSegment : segment;\n //\n // TODO: Combine this `map` traversal with the loop below that turns the array\n // into an object.\n const parallelRouteMap = await Promise.all(Object.keys(parallelRoutes).map(async (parallelRouteKey)=>{\n const isChildrenRouteKey = parallelRouteKey === \"children\";\n const currentSegmentPath = firstItem ? [\n parallelRouteKey\n ] : [\n actualSegment,\n parallelRouteKey\n ];\n const parallelRoute = parallelRoutes[parallelRouteKey];\n const notFoundComponent = NotFound && isChildrenRouteKey ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(NotFound, {}) : undefined;\n // if we're prefetching and that there's a Loading component, we bail out\n // otherwise we keep rendering for the prefetch.\n // We also want to bail out if there's no Loading component in the tree.\n let currentStyles = undefined;\n let childCacheNodeSeedData = null;\n if (// prefetch everything up to the first route segment that defines a\n // loading.tsx boundary. (We do the same if there's no loading\n // boundary in the entire tree, because we don't want to prefetch too\n // much) The rest of the tree is defered until the actual navigation.\n // It does not take into account whether the data is dynamic — even if\n // the tree is completely static, it will still defer everything\n // inside the loading boundary.\n //\n // This behavior predates PPR and is only relevant if the\n // PPR flag is not enabled.\n isPrefetch && (Loading || !(0,_has_loading_component_in_tree__WEBPACK_IMPORTED_MODULE_8__.hasLoadingComponentInTree)(parallelRoute)) && // The approach with PPR is different — loading.tsx behaves like a\n // regular Suspense boundary and has no special behavior.\n //\n // With PPR, we prefetch as deeply as possible, and only defer when\n // dynamic data is accessed. If so, we only defer the nearest parent\n // Suspense boundary of the dynamic data access, regardless of whether\n // the boundary is defined by loading.tsx or a normal <Suspense>\n // component in userspace.\n //\n // NOTE: In practice this usually means we'll end up prefetching more\n // than we were before PPR, which may or may not be considered a\n // performance regression by some apps. The plan is to address this\n // before General Availability of PPR by introducing granular\n // per-segment fetching, so we can reuse as much of the tree as\n // possible during both prefetches and dynamic navigations. But during\n // the beta period, we should be clear about this trade off in our\n // communications.\n !experimental.ppr) {\n // Don't prefetch this child. This will trigger a lazy fetch by the\n // client router.\n } else {\n // Create the child component\n if ( true && missingSlots) {\n // When we detect the default fallback (which triggers a 404), we collect the missing slots\n // to provide more helpful debug information during development mode.\n const parsedTree = (0,_parse_loader_tree__WEBPACK_IMPORTED_MODULE_5__.parseLoaderTree)(parallelRoute);\n if (parsedTree.layoutOrPagePath === _client_components_parallel_route_default__WEBPACK_IMPORTED_MODULE_10__.PARALLEL_ROUTE_DEFAULT_PATH) {\n missingSlots.add(parallelRouteKey);\n }\n }\n const { seedData, styles: childComponentStyles } = await createComponentTree({\n createSegmentPath: (child)=>{\n return createSegmentPath([\n ...currentSegmentPath,\n ...child\n ]);\n },\n loaderTree: parallelRoute,\n parentParams: currentParams,\n rootLayoutIncluded: rootLayoutIncludedAtThisLevelOrAbove,\n injectedCSS: injectedCSSWithCurrentLayout,\n injectedJS: injectedJSWithCurrentLayout,\n injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout,\n asNotFound,\n metadataOutlet,\n ctx,\n missingSlots\n });\n currentStyles = childComponentStyles;\n childCacheNodeSeedData = seedData;\n }\n // This is turned back into an object below.\n return [\n parallelRouteKey,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(LayoutRouter, {\n parallelRouterKey: parallelRouteKey,\n segmentPath: createSegmentPath(currentSegmentPath),\n loading: Loading ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Loading, {}) : undefined,\n loadingStyles: loadingStyles,\n loadingScripts: loadingScripts,\n // TODO-APP: Add test for loading returning `undefined`. This currently can't be tested as the `webdriver()` tab will wait for the full page to load before returning.\n hasLoading: Boolean(Loading),\n error: ErrorComponent,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n template: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Template, {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(RenderFromTemplateContext, {})\n }),\n templateStyles: templateStyles,\n templateScripts: templateScripts,\n notFound: notFoundComponent,\n notFoundStyles: notFoundStyles,\n styles: currentStyles\n }),\n childCacheNodeSeedData\n ];\n }));\n // Convert the parallel route map into an object after all promises have been resolved.\n let parallelRouteProps = {};\n let parallelRouteCacheNodeSeedData = {};\n for (const parallelRoute of parallelRouteMap){\n const [parallelRouteKey, parallelRouteProp, flightData] = parallelRoute;\n parallelRouteProps[parallelRouteKey] = parallelRouteProp;\n parallelRouteCacheNodeSeedData[parallelRouteKey] = flightData;\n }\n // When the segment does not have a layout or page we still have to add the layout router to ensure the path holds the loading component\n if (!Component) {\n return {\n seedData: [\n actualSegment,\n parallelRouteCacheNodeSeedData,\n // TODO: I don't think the extra fragment is necessary. React treats top\n // level fragments as transparent, i.e. the runtime behavior should be\n // identical even without it. But maybe there's some findDOMNode-related\n // reason that I'm not aware of, so I'm leaving it as-is out of extreme\n // caution, for now.\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: parallelRouteProps.children\n })\n ],\n styles: layerAssets\n };\n }\n // If force-dynamic is used and the current render supports postponing, we\n // replace it with a node that will postpone the render. This ensures that the\n // postpone is invoked during the react render phase and not during the next\n // render phase.\n if (staticGenerationStore.forceDynamic && staticGenerationStore.postpone) {\n return {\n seedData: [\n actualSegment,\n parallelRouteCacheNodeSeedData,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Postpone, {\n postpone: staticGenerationStore.postpone\n })\n ],\n styles: layerAssets\n };\n }\n const isClientComponent = (0,_lib_client_reference__WEBPACK_IMPORTED_MODULE_2__.isClientReference)(layoutOrPageMod);\n // If it's a not found route, and we don't have any matched parallel\n // routes, we try to render the not found component if it exists.\n let notFoundComponent = {};\n if (NotFound && asNotFound && // In development, it could hit the parallel-route-default not found, so we only need to check the segment.\n // Or if there's no parallel routes means it reaches the end.\n !parallelRouteMap.length) {\n notFoundComponent = {\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }),\n true && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"next-error\",\n content: \"not-found\"\n }),\n notFoundStyles,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(NotFound, {})\n ]\n })\n };\n }\n const props = {\n ...parallelRouteProps,\n ...notFoundComponent,\n // TODO-APP: params and query have to be blocked parallel route names. Might have to add a reserved name list.\n // Params are always the current params that apply to the layout\n // If you have a `/dashboard/[team]/layout.js` it will provide `team` as a param but not anything further down.\n params: currentParams,\n // Query is only provided to page\n ...(()=>{\n if (isClientComponent && staticGenerationStore.isStaticGeneration) {\n return {};\n }\n if (isPage) {\n return searchParamsProps;\n }\n })()\n };\n return {\n seedData: [\n actualSegment,\n parallelRouteCacheNodeSeedData,\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n isPage ? metadataOutlet : null,\n isPage && isClientComponent ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(StaticGenerationSearchParamsBailoutProvider, {\n propsForComponent: props,\n Component: Component,\n isStaticGeneration: staticGenerationStore.isStaticGeneration\n }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Component, {\n ...props\n }),\n null\n ]\n })\n ],\n styles: layerAssets\n };\n} //# sourceMappingURL=create-component-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLWNvbXBvbmVudC10cmVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc0Y7QUFDNUQ7QUFDcUM7QUFDRDtBQUNYO0FBQ0c7QUFDa0M7QUFDcEM7QUFDd0I7QUFDcEI7QUFDcUM7QUFDN0M7QUFDWTtBQUM1RDs7Q0FFQyxHQUFVLE1BQU1rQixXQUFXLENBQUMsRUFBRUMsUUFBUSxFQUFFO0lBQ3JDLG9FQUFvRTtJQUNwRSxPQUFPQSxTQUFTO0FBQ3BCLEVBQUU7QUFDRjs7Q0FFQyxHQUFVLGVBQWVDLG9CQUFvQixFQUFFQyxpQkFBaUIsRUFBRUMsWUFBWUMsSUFBSSxFQUFFQyxZQUFZLEVBQUVDLFNBQVMsRUFBRUMsa0JBQWtCLEVBQUVDLFdBQVcsRUFBRUMsVUFBVSxFQUFFQyx1QkFBdUIsRUFBRUMsVUFBVSxFQUFFQyxjQUFjLEVBQUVDLEdBQUcsRUFBRUMsWUFBWSxFQUFFO0lBQy9OLE1BQU0sRUFBRUMsWUFBWSxFQUFFQyxnQkFBZ0IsRUFBRUMsWUFBWSxFQUFFLEVBQUVDLHFCQUFxQixFQUFFQyxjQUFjLEVBQUVDLHVCQUF1QixFQUFFQyxnQkFBZ0IsRUFBRUMsWUFBWSxFQUFFQyx5QkFBeUIsRUFBRUMsMkNBQTJDLEVBQUVDLGFBQWEsRUFBRUMsa0JBQWtCLEVBQUUsRUFBRSxFQUFFQyxRQUFRLEVBQUVDLDBCQUEwQixFQUFFQyxVQUFVLEVBQUVDLGlCQUFpQixFQUFFLEdBQUdqQjtJQUMvVSxNQUFNLEVBQUVrQixJQUFJLEVBQUVDLGdCQUFnQixFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsY0FBYyxFQUFFLEdBQUc1QyxtRUFBZUEsQ0FBQ2E7SUFDeEYsTUFBTSxFQUFFZ0MsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFLGFBQWFDLFFBQVEsRUFBRSxHQUFHTjtJQUNwRSxNQUFNTywr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QUFJQSxDQUFDLFFBQVE7d0JBQ2pFb0osTUFBTTt3QkFDTkMsU0FBUztvQkFDYjtvQkFDQWhFO29CQUNBLFdBQVcsR0FBR3JGLHNEQUFJQSxDQUFDb0YsVUFBVSxDQUFDO2lCQUNqQztZQUNMO1FBQ0o7SUFDSjtJQUNBLE1BQU1rRSxRQUFRO1FBQ1YsR0FBR1Asa0JBQWtCO1FBQ3JCLEdBQUdkLGlCQUFpQjtRQUNwQiw4R0FBOEc7UUFDOUcsZ0VBQWdFO1FBQ2hFLCtHQUErRztRQUMvR25CLFFBQVFNO1FBQ1IsaUNBQWlDO1FBQ2pDLEdBQUcsQ0FBQztZQUNBLElBQUkrQixxQkFBcUIvRyxzQkFBc0IyRCxrQkFBa0IsRUFBRTtnQkFDL0QsT0FBTyxDQUFDO1lBQ1o7WUFDQSxJQUFJbkIsUUFBUTtnQkFDUixPQUFPNUI7WUFDWDtRQUNKLElBQUk7SUFDUjtJQUNBLE9BQU87UUFDSHVGLFVBQVU7WUFDTmhCO1lBQ0F5QjtZQUNBLFdBQVcsR0FBRzlJLHVEQUFLQSxDQUFDRSx1REFBU0EsRUFBRTtnQkFDM0J5RyxVQUFVO29CQUNOakMsU0FBUzlDLGlCQUFpQjtvQkFDMUI4QyxVQUFVdUUsb0JBQW9CLFdBQVcsR0FBR25KLHNEQUFJQSxDQUFDMEMsNkNBQTZDO3dCQUMxRjZHLG1CQUFtQkQ7d0JBQ25CbEQsV0FBV0E7d0JBQ1hMLG9CQUFvQjNELHNCQUFzQjJELGtCQUFrQjtvQkFDaEUsS0FBSyxXQUFXLEdBQUcvRixzREFBSUEsQ0FBQ29HLFdBQVc7d0JBQy9CLEdBQUdrRCxLQUFLO29CQUNaO29CQUNBO2lCQUNIO1lBQ0w7U0FDSDtRQUNEZCxRQUFRekU7SUFDWjtBQUNKLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9jcmVhdGUtY29tcG9uZW50LXRyZWUuanM/ZWQwNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBpc0NsaWVudFJlZmVyZW5jZSB9IGZyb20gXCIuLi8uLi9saWIvY2xpZW50LXJlZmVyZW5jZVwiO1xuaW1wb3J0IHsgZ2V0TGF5b3V0T3JQYWdlTW9kdWxlIH0gZnJvbSBcIi4uL2xpYi9hcHAtZGlyLW1vZHVsZVwiO1xuaW1wb3J0IHsgaW50ZXJvcERlZmF1bHQgfSBmcm9tIFwiLi9pbnRlcm9wLWRlZmF1bHRcIjtcbmltcG9ydCB7IHBhcnNlTG9hZGVyVHJlZSB9IGZyb20gXCIuL3BhcnNlLWxvYWRlci10cmVlXCI7XG5pbXBvcnQgeyBjcmVhdGVDb21wb25lbnRTdHlsZXNBbmRTY3JpcHRzIH0gZnJvbSBcIi4vY3JlYXRlLWNvbXBvbmVudC1zdHlsZXMtYW5kLXNjcmlwdHNcIjtcbmltcG9ydCB7IGdldExheWVyQXNzZXRzIH0gZnJvbSBcIi4vZ2V0LWxheWVyLWFzc2V0c1wiO1xuaW1wb3J0IHsgaGFzTG9hZGluZ0NvbXBvbmVudEluVHJlZSB9IGZyb20gXCIuL2hhcy1sb2FkaW5nLWNvbXBvbmVudC1pbi10cmVlXCI7XG5pbXBvcnQgeyB2YWxpZGF0ZVJldmFsaWRhdGUgfSBmcm9tIFwiLi4vbGliL3BhdGNoLWZldGNoXCI7XG5pbXBvcnQgeyBQQVJBTExFTF9ST1VURV9ERUZBVUxUX1BBVEggfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcGFyYWxsZWwtcm91dGUtZGVmYXVsdFwiO1xuaW1wb3J0IHsgZ2V0VHJhY2VyIH0gZnJvbSBcIi4uL2xpYi90cmFjZS90cmFjZXJcIjtcbmltcG9ydCB7IE5leHROb2RlU2VydmVyU3BhbiB9IGZyb20gXCIuLi9saWIvdHJhY2UvY29uc3RhbnRzXCI7XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgY2FsbCBgUmVhY3QucG9zdHBvbmVgIHRoYXQgdGhyb3dzIHRoZSBwb3N0cG9uZWQgZXJyb3IuXG4gKi8gZXhwb3J0IGNvbnN0IFBvc3Rwb25lID0gKHsgcG9zdHBvbmUgfSk9PntcbiAgICAvLyBDYWxsIHRoZSBwb3N0cG9uZSBBUEkgbm93IHdpdGggdGhlIHJlYXNvbiBzZXQgdG8gXCJmb3JjZS1keW5hbWljXCIuXG4gICAgcmV0dXJuIHBvc3Rwb25lKCdkeW5hbWljID0gXCJmb3JjZS1keW5hbWljXCIgd2FzIHVzZWQnKTtcbn07XG4vKipcbiAqIFVzZSB0aGUgcHJvdmlkZWQgbG9hZGVyIHRyZWUgdG8gY3JlYXRlIHRoZSBSZWFjdCBDb21wb25lbnQgdHJlZS5cbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50VHJlZSh7IGNyZWF0ZVNlZ21lbnRQYXRoLCBsb2FkZXJUcmVlOiB0cmVlLCBwYXJlbnRQYXJhbXMsIGZpcnN0SXRlbSwgcm9vdExheW91dEluY2x1ZGVkLCBpbmplY3RlZENTUywgaW5qZWN0ZWRKUywgaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3MsIGFzTm90Rm91bmQsIG1ldGFkYXRhT3V0bGV0LCBjdHgsIG1pc3NpbmdTbG90cyB9KSB7XG4gICAgY29uc3QgeyByZW5kZXJPcHRzOiB7IG5leHRDb25maWdPdXRwdXQsIGV4cGVyaW1lbnRhbCB9LCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUsIGNvbXBvbmVudE1vZDogeyBzdGF0aWNHZW5lcmF0aW9uQmFpbG91dCwgTm90Rm91bmRCb3VuZGFyeSwgTGF5b3V0Um91dGVyLCBSZW5kZXJGcm9tVGVtcGxhdGVDb250ZXh0LCBTdGF0aWNHZW5lcmF0aW9uU2VhcmNoUGFyYW1zQmFpbG91dFByb3ZpZGVyLCBzZXJ2ZXJIb29rczogeyBEeW5hbWljU2VydmVyRXJyb3IgfSB9LCBwYWdlUGF0aCwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIGlzUHJlZmV0Y2gsIHNlYXJjaFBhcmFtc1Byb3BzIH0gPSBjdHg7XG4gICAgY29uc3QgeyBwYWdlLCBsYXlvdXRPclBhZ2VQYXRoLCBzZWdtZW50LCBjb21wb25lbnRzLCBwYXJhbGxlbFJvdXRlcyB9ID0gcGFyc2VMb2FkZXJUcmVlKHRyZWUpO1xuICAgIGNvbnN0IHsgbGF5b3V0LCB0ZW1wbGF0ZSwgZXJyb3IsIGxvYWRpbmcsIFwibm90LWZvdW5kXCI6IG5vdEZvdW5kIH0gPSBjb21wb25lbnRzO1xuICAgIGNvbnN0IGluamVjdGVkQ1NTV2l0aEN1cnJlbnRMYXlvdXQgPSBuZXcgU2V0KGluamVjdGVkQ1NTKTtcbiAgICBjb25zdCBpbmplY3RlZEpTV2l0aEN1cnJlbnRMYXlvdXQgPSBuZXcgU2V0KGluamVjdGVkSlMpO1xuICAgIGNvbnN0IGluamVjdGVkRm9udFByZWxvYWRUYWdzV2l0aEN1cnJlbnRMYXlvdXQgPSBuZXcgU2V0KGluamVjdGVkRm9udFByZWxvYWRUYWdzKTtcbiAgICBjb25zdCBsYXllckFzc2V0cyA9IGdldExheWVyQXNzZXRzKHtcbiAgICAgICAgY3R4LFxuICAgICAgICBsYXlvdXRPclBhZ2VQYXRoLFxuICAgICAgICBpbmplY3RlZENTUzogaW5qZWN0ZWRDU1NXaXRoQ3VycmVudExheW91dCxcbiAgICAgICAgaW5qZWN0ZWRKUzogaW5qZWN0ZWRKU1dpdGhDdXJyZW50TGF5b3V0LFxuICAgICAgICBpbmplY3RlZEZvbnRQcmVsb2FkVGFnczogaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3NXaXRoQ3VycmVudExheW91dFxuICAgIH0pO1xuICAgIGNvbnN0IFtUZW1wbGF0ZSwgdGVtcGxhdGVTdHlsZXMsIHRlbXBsYXRlU2NyaXB0c10gPSB0ZW1wbGF0ZSA/IGF3YWl0IGNyZWF0ZUNvbXBvbmVudFN0eWxlc0FuZFNjcmlwdHMoe1xuICAgICAgICBjdHgsXG4gICAgICAgIGZpbGVQYXRoOiB0ZW1wbGF0ZVsxXSxcbiAgICAgICAgZ2V0Q29tcG9uZW50OiB0ZW1wbGF0ZVswXSxcbiAgICAgICAgaW5qZWN0ZWRDU1M6IGluamVjdGVkQ1NTV2l0aEN1cnJlbnRMYXlvdXQsXG4gICAgICAgIGluamVjdGVkSlM6IGluamVjdGVkSlNXaXRoQ3VycmVudExheW91dFxuICAgIH0pIDogW1xuICAgICAgICBSZWFjdC5GcmFnbWVudFxuICAgIF07XG4gICAgY29uc3QgW0Vycm9yQ29tcG9uZW50LCBlcnJvclN0eWxlcywgZXJyb3JTY3JpcHRzXSA9IGVycm9yID8gYXdhaXQgY3JlYXRlQ29tcG9uZW50U3R5bGVzQW5kU2NyaXB0cyh7XG4gICAgICAgIGN0eCxcbiAgICAgICAgZmlsZVBhdGg6IGVycm9yWzFdLFxuICAgICAgICBnZXRDb21wb25lbnQ6IGVycm9yWzBdLFxuICAgICAgICBpbmplY3RlZENTUzogaW5qZWN0ZWRDU1NXaXRoQ3VycmVudExheW91dCxcbiAgICAgICAgaW5qZWN0ZWRKUzogaW5qZWN0ZWRKU1dpdGhDdXJyZW50TGF5b3V0XG4gICAgfSkgOiBbXTtcbiAgICBjb25zdCBbTG9hZGluZywgbG9hZGluZ1N0eWxlcywgbG9hZGluZ1NjcmlwdHNdID0gbG9hZGluZyA/IGF3YWl0IGNyZWF0ZUNvbXBvbmVudFN0eWxlc0FuZFNjcmlwdHMoe1xuICAgICAgICBjdHgsXG4gICAgICAgIGZpbGVQYXRoOiBsb2FkaW5nWzFdLFxuICAgICAgICBnZXRDb21wb25lbnQ6IGxvYWRpbmdbMF0sXG4gICAgICAgIGluamVjdGVkQ1NTOiBpbmplY3RlZENTU1dpdGhDdXJyZW50TGF5b3V0LFxuICAgICAgICBpbmplY3RlZEpTOiBpbmplY3RlZEpTV2l0aEN1cnJlbnRMYXlvdXRcbiAgICB9KSA6IFtdO1xuICAgIGNvbnN0IGlzTGF5b3V0ID0gdHlwZW9mIGxheW91dCAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICBjb25zdCBpc1BhZ2UgPSB0eXBlb2YgcGFnZSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICBjb25zdCBbbGF5b3V0T3JQYWdlTW9kXSA9IGF3YWl0IGdldFRyYWNlcigpLnRyYWNlKE5leHROb2RlU2VydmVyU3Bhbi5nZXRMYXlvdXRPclBhZ2VNb2R1bGUsIHtcbiAgICAgICAgaGlkZVNwYW46ICEoaXNMYXlvdXQgfHwgaXNQYWdlKSxcbiAgICAgICAgc3Bhbk5hbWU6IFwicmVzb2x2ZSBzZWdtZW50IG1vZHVsZXNcIixcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgXCJuZXh0LnNlZ21lbnRcIjogc2VnbWVudFxuICAgICAgICB9XG4gICAgfSwgKCk9PmdldExheW91dE9yUGFnZU1vZHVsZSh0cmVlKSk7XG4gICAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBzZWdtZW50IGlzIGEgcm9vdCBsYXlvdXQuXG4gICAqLyBjb25zdCByb290TGF5b3V0QXRUaGlzTGV2ZWwgPSBpc0xheW91dCAmJiAhcm9vdExheW91dEluY2x1ZGVkO1xuICAgIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgc2VnbWVudCBvciBhbnkgbGV2ZWwgYWJvdmUgaXQgaGFzIGEgcm9vdCBsYXlvdXQuXG4gICAqLyBjb25zdCByb290TGF5b3V0SW5jbHVkZWRBdFRoaXNMZXZlbE9yQWJvdmUgPSByb290TGF5b3V0SW5jbHVkZWQgfHwgcm9vdExheW91dEF0VGhpc0xldmVsO1xuICAgIGNvbnN0IFtOb3RGb3VuZCwgbm90Rm91bmRTdHlsZXNdID0gbm90Rm91bmQgPyBhd2FpdCBjcmVhdGVDb21wb25lbnRTdHlsZXNBbmRTY3JpcHRzKHtcbiAgICAgICAgY3R4LFxuICAgICAgICBmaWxlUGF0aDogbm90Rm91bmRbMV0sXG4gICAgICAgIGdldENvbXBvbmVudDogbm90Rm91bmRbMF0sXG4gICAgICAgIGluamVjdGVkQ1NTOiBpbmplY3RlZENTU1dpdGhDdXJyZW50TGF5b3V0LFxuICAgICAgICBpbmplY3RlZEpTOiBpbmplY3RlZEpTV2l0aEN1cnJlbnRMYXlvdXRcbiAgICB9KSA6IFtdO1xuICAgIGxldCBkeW5hbWljID0gbGF5b3V0T3JQYWdlTW9kID09IG51bGwgPyB2b2lkIDAgOiBsYXlvdXRPclBhZ2VNb2QuZHluYW1pYztcbiAgICBpZiAobmV4dENvbmZpZ091dHB1dCA9PT0gXCJleHBvcnRcIikge1xuICAgICAgICBpZiAoIWR5bmFtaWMgfHwgZHluYW1pYyA9PT0gXCJhdXRvXCIpIHtcbiAgICAgICAgICAgIGR5bmFtaWMgPSBcImVycm9yXCI7XG4gICAgICAgIH0gZWxzZSBpZiAoZHluYW1pYyA9PT0gXCJmb3JjZS1keW5hbWljXCIpIHtcbiAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mb3JjZUR5bmFtaWMgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNTaG91bGRFcnJvciA9IHRydWU7XG4gICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uQmFpbG91dChgb3V0cHV0OiBleHBvcnRgLCB7XG4gICAgICAgICAgICAgICAgZHluYW1pYyxcbiAgICAgICAgICAgICAgICBsaW5rOiBcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FkdmFuY2VkLWZlYXR1cmVzL3N0YXRpYy1odG1sLWV4cG9ydFwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGR5bmFtaWMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgLy8gdGhlIG5lc3RlZCBtb3N0IGNvbmZpZyB3aW5zIHNvIHdlIG9ubHkgZm9yY2Utc3RhdGljXG4gICAgICAgIC8vIGlmIGl0J3MgY29uZmlndXJlZCBhYm92ZSBhbnkgcGFyZW50IHRoYXQgY29uZmlndXJlZFxuICAgICAgICAvLyBvdGhlcndpc2VcbiAgICAgICAgaWYgKGR5bmFtaWMgPT09IFwiZXJyb3JcIikge1xuICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNTaG91bGRFcnJvciA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoZHluYW1pYyA9PT0gXCJmb3JjZS1keW5hbWljXCIpIHtcbiAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mb3JjZUR5bmFtaWMgPSB0cnVlO1xuICAgICAgICAgICAgLy8gVE9ETzogKFBQUikgcmVtb3ZlIHRoaXMgYmFpbG91dCBvbmNlIFBQUiBpcyB0aGUgZGVmYXVsdFxuICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUucG9zdHBvbmUpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcG9zdHBvbmUgQVBJIGlzbid0IGF2YWlsYWJsZSwgd2UgY2FuJ3QgcG9zdHBvbmUgdGhlIHJlbmRlciBhbmRcbiAgICAgICAgICAgICAgICAvLyB0aGVyZWZvcmUgd2UgY2FuJ3QgdXNlIHRoZSBkeW5hbWljIEFQSS5cbiAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uQmFpbG91dChgZm9yY2UtZHluYW1pY2AsIHtcbiAgICAgICAgICAgICAgICAgICAgZHluYW1pY1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNTaG91bGRFcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGR5bmFtaWMgPT09IFwiZm9yY2Utc3RhdGljXCIpIHtcbiAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZm9yY2VTdGF0aWMgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZm9yY2VTdGF0aWMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIChsYXlvdXRPclBhZ2VNb2QgPT0gbnVsbCA/IHZvaWQgMCA6IGxheW91dE9yUGFnZU1vZC5mZXRjaENhY2hlKSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZmV0Y2hDYWNoZSA9IGxheW91dE9yUGFnZU1vZCA9PSBudWxsID8gdm9pZCAwIDogbGF5b3V0T3JQYWdlTW9kLmZldGNoQ2FjaGU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgKGxheW91dE9yUGFnZU1vZCA9PSBudWxsID8gdm9pZCAwIDogbGF5b3V0T3JQYWdlTW9kLnJldmFsaWRhdGUpICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHZhbGlkYXRlUmV2YWxpZGF0ZShsYXlvdXRPclBhZ2VNb2QgPT0gbnVsbCA/IHZvaWQgMCA6IGxheW91dE9yUGFnZU1vZC5yZXZhbGlkYXRlLCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUudXJsUGF0aG5hbWUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIChsYXlvdXRPclBhZ2VNb2QgPT0gbnVsbCA/IHZvaWQgMCA6IGxheW91dE9yUGFnZU1vZC5yZXZhbGlkYXRlKSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBjdHguZGVmYXVsdFJldmFsaWRhdGUgPSBsYXlvdXRPclBhZ2VNb2QucmV2YWxpZGF0ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gXCJ1bmRlZmluZWRcIiB8fCB0eXBlb2Ygc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGUgPT09IFwibnVtYmVyXCIgJiYgc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGUgPiBjdHguZGVmYXVsdFJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID0gY3R4LmRlZmF1bHRSZXZhbGlkYXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc3RhdGljR2VuZXJhdGlvblN0b3JlLmZvcmNlU3RhdGljICYmIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pc1N0YXRpY0dlbmVyYXRpb24gJiYgY3R4LmRlZmF1bHRSZXZhbGlkYXRlID09PSAwICYmIC8vIElmIHRoZSBwb3N0cG9uZSBBUEkgaXNuJ3QgYXZhaWxhYmxlLCB3ZSBjYW4ndCBwb3N0cG9uZSB0aGUgcmVuZGVyIGFuZFxuICAgICAgICAvLyB0aGVyZWZvcmUgd2UgY2FuJ3QgdXNlIHRoZSBkeW5hbWljIEFQSS5cbiAgICAgICAgIXN0YXRpY0dlbmVyYXRpb25TdG9yZS5wb3N0cG9uZSkge1xuICAgICAgICAgICAgY29uc3QgZHluYW1pY1VzYWdlRGVzY3JpcHRpb24gPSBgcmV2YWxpZGF0ZTogMCBjb25maWd1cmVkICR7c2VnbWVudH1gO1xuICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZHluYW1pY1VzYWdlRGVzY3JpcHRpb247XG4gICAgICAgICAgICB0aHJvdyBuZXcgRHluYW1pY1NlcnZlckVycm9yKGR5bmFtaWNVc2FnZURlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBJZiB0aGVyZSdzIGEgZHluYW1pYyB1c2FnZSBlcnJvciBhdHRhY2hlZCB0byB0aGUgc3RvcmUsIHRocm93IGl0LlxuICAgIGlmIChzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZHluYW1pY1VzYWdlRXJyKSB7XG4gICAgICAgIHRocm93IHN0YXRpY0dlbmVyYXRpb25TdG9yZS5keW5hbWljVXNhZ2VFcnI7XG4gICAgfVxuICAgIGNvbnN0IExheW91dE9yUGFnZSA9IGxheW91dE9yUGFnZU1vZCA/IGludGVyb3BEZWZhdWx0KGxheW91dE9yUGFnZU1vZCkgOiB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAqIFRoZSBSZWFjdCBDb21wb25lbnQgdG8gcmVuZGVyLlxuICAgKi8gbGV0IENvbXBvbmVudCA9IExheW91dE9yUGFnZTtcbiAgICBjb25zdCBwYXJhbGxlbEtleXMgPSBPYmplY3Qua2V5cyhwYXJhbGxlbFJvdXRlcyk7XG4gICAgY29uc3QgaGFzU2xvdEtleSA9IHBhcmFsbGVsS2V5cy5sZW5ndGggPiAxO1xuICAgIC8vIFRPRE8tQVBQOiBUaGlzIGlzIGEgaGFjayB0byBzdXBwb3J0IHVubWF0Y2hlZCBwYXJhbGxlbCByb3V0ZXMsIHdoaWNoIHdpbGwgdGhyb3cgYG5vdEZvdW5kKClgLlxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IGEgYE5vdEZvdW5kQm91bmRhcnlgIGlzIGF2YWlsYWJsZSBmb3Igd2hlbiB0aGF0IGhhcHBlbnMsXG4gICAgLy8gYnV0IGl0J3Mgbm90IGlkZWFsLCBhcyBpdCBuZWVkbGVzc2x5IGludm9rZXMgdGhlIGBOb3RGb3VuZGAgY29tcG9uZW50IGFuZCByZW5kZXJzIHRoZSBgUm9vdExheW91dGAgdHdpY2UuXG4gICAgLy8gV2Ugc2hvdWxkIGluc3RlYWQgbG9vayBpbnRvIGhhbmRsaW5nIHRoZSBmYWxsYmFjayBiZWhhdmlvciBkaWZmZXJlbnRseSBpbiBkZXZlbG9wbWVudCBtb2RlIHNvIHRoYXQgaXQgZG9lc24ndFxuICAgIC8vIHJlbHkgb24gdGhlIGBOb3RGb3VuZGAgYmVoYXZpb3IuXG4gICAgaWYgKGhhc1Nsb3RLZXkgJiYgcm9vdExheW91dEF0VGhpc0xldmVsICYmIExheW91dE9yUGFnZSkge1xuICAgICAgICBDb21wb25lbnQgPSAoY29tcG9uZW50UHJvcHMpPT57XG4gICAgICAgICAgICBjb25zdCBOb3RGb3VuZENvbXBvbmVudCA9IE5vdEZvdW5kO1xuICAgICAgICAgICAgY29uc3QgUm9vdExheW91dENvbXBvbmVudCA9IExheW91dE9yUGFnZTtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goTm90Rm91bmRCb3VuZGFyeSwge1xuICAgICAgICAgICAgICAgIG5vdEZvdW5kOiBOb3RGb3VuZENvbXBvbmVudCA/IC8qI19fUFVSRV9fKi8gX2pzeHMoX0ZyYWdtZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllckFzc2V0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoUm9vdExheW91dENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogY29tcG9uZW50UHJvcHMucGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goTm90Rm91bmRDb21wb25lbnQsIHt9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFJvb3RMYXlvdXRDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY29tcG9uZW50UHJvcHNcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgIGNvbnN0IHsgaXNWYWxpZEVsZW1lbnRUeXBlIH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LWlzXCIpO1xuICAgICAgICBpZiAoKGlzUGFnZSB8fCB0eXBlb2YgQ29tcG9uZW50ICE9PSBcInVuZGVmaW5lZFwiKSAmJiAhaXNWYWxpZEVsZW1lbnRUeXBlKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGRlZmF1bHQgZXhwb3J0IGlzIG5vdCBhIFJlYWN0IENvbXBvbmVudCBpbiBwYWdlOiBcIiR7cGFnZVBhdGh9XCJgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIEVycm9yQ29tcG9uZW50ICE9PSBcInVuZGVmaW5lZFwiICYmICFpc1ZhbGlkRWxlbWVudFR5cGUoRXJyb3JDb21wb25lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkZWZhdWx0IGV4cG9ydCBvZiBlcnJvciBpcyBub3QgYSBSZWFjdCBDb21wb25lbnQgaW4gcGFnZTogJHtzZWdtZW50fWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgTG9hZGluZyAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhaXNWYWxpZEVsZW1lbnRUeXBlKExvYWRpbmcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkZWZhdWx0IGV4cG9ydCBvZiBsb2FkaW5nIGlzIG5vdCBhIFJlYWN0IENvbXBvbmVudCBpbiAke3NlZ21lbnR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBOb3RGb3VuZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhaXNWYWxpZEVsZW1lbnRUeXBlKE5vdEZvdW5kKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZGVmYXVsdCBleHBvcnQgb2Ygbm90Rm91bmQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluICR7c2VnbWVudH1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBIYW5kbGUgZHluYW1pYyBzZWdtZW50IHBhcmFtcy5cbiAgICBjb25zdCBzZWdtZW50UGFyYW0gPSBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudChzZWdtZW50KTtcbiAgICAvKipcbiAgICogQ3JlYXRlIG9iamVjdCBob2xkaW5nIHRoZSBwYXJlbnQgcGFyYW1zIGFuZCBjdXJyZW50IHBhcmFtc1xuICAgKi8gY29uc3QgY3VycmVudFBhcmFtcyA9IC8vIEhhbmRsZSBudWxsIGNhc2Ugd2hlcmUgZHluYW1pYyBwYXJhbSBpcyBvcHRpb25hbFxuICAgIHNlZ21lbnRQYXJhbSAmJiBzZWdtZW50UGFyYW0udmFsdWUgIT09IG51bGwgPyB7XG4gICAgICAgIC4uLnBhcmVudFBhcmFtcyxcbiAgICAgICAgW3NlZ21lbnRQYXJhbS5wYXJhbV06IHNlZ21lbnRQYXJhbS52YWx1ZVxuICAgIH0gOiBwYXJlbnRQYXJhbXM7XG4gICAgLy8gUmVzb2x2ZSB0aGUgc2VnbWVudCBwYXJhbVxuICAgIGNvbnN0IGFjdHVhbFNlZ21lbnQgPSBzZWdtZW50UGFyYW0gPyBzZWdtZW50UGFyYW0udHJlZVNlZ21lbnQgOiBzZWdtZW50O1xuICAgIC8vXG4gICAgLy8gVE9ETzogQ29tYmluZSB0aGlzIGBtYXBgIHRyYXZlcnNhbCB3aXRoIHRoZSBsb29wIGJlbG93IHRoYXQgdHVybnMgdGhlIGFycmF5XG4gICAgLy8gaW50byBhbiBvYmplY3QuXG4gICAgY29uc3QgcGFyYWxsZWxSb3V0ZU1hcCA9IGF3YWl0IFByb21pc2UuYWxsKE9iamVjdC5rZXlzKHBhcmFsbGVsUm91dGVzKS5tYXAoYXN5bmMgKHBhcmFsbGVsUm91dGVLZXkpPT57XG4gICAgICAgIGNvbnN0IGlzQ2hpbGRyZW5Sb3V0ZUtleSA9IHBhcmFsbGVsUm91dGVLZXkgPT09IFwiY2hpbGRyZW5cIjtcbiAgICAgICAgY29uc3QgY3VycmVudFNlZ21lbnRQYXRoID0gZmlyc3RJdGVtID8gW1xuICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZUtleVxuICAgICAgICBdIDogW1xuICAgICAgICAgICAgYWN0dWFsU2VnbWVudCxcbiAgICAgICAgICAgIHBhcmFsbGVsUm91dGVLZXlcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgcGFyYWxsZWxSb3V0ZSA9IHBhcmFsbGVsUm91dGVzW3BhcmFsbGVsUm91dGVLZXldO1xuICAgICAgICBjb25zdCBub3RGb3VuZENvbXBvbmVudCA9IE5vdEZvdW5kICYmIGlzQ2hpbGRyZW5Sb3V0ZUtleSA/IC8qI19fUFVSRV9fKi8gX2pzeChOb3RGb3VuZCwge30pIDogdW5kZWZpbmVkO1xuICAgICAgICAvLyBpZiB3ZSdyZSBwcmVmZXRjaGluZyBhbmQgdGhhdCB0aGVyZSdzIGEgTG9hZGluZyBjb21wb25lbnQsIHdlIGJhaWwgb3V0XG4gICAgICAgIC8vIG90aGVyd2lzZSB3ZSBrZWVwIHJlbmRlcmluZyBmb3IgdGhlIHByZWZldGNoLlxuICAgICAgICAvLyBXZSBhbHNvIHdhbnQgdG8gYmFpbCBvdXQgaWYgdGhlcmUncyBubyBMb2FkaW5nIGNvbXBvbmVudCBpbiB0aGUgdHJlZS5cbiAgICAgICAgbGV0IGN1cnJlbnRTdHlsZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBjaGlsZENhY2hlTm9kZVNlZWREYXRhID0gbnVsbDtcbiAgICAgICAgaWYgKC8vIEJlZm9yZSBQUFIsIHRoZSB3YXkgaW5zdGFudCBuYXZpZ2F0aW9ucyB3b3JrIGluIE5leHQuanMgaXMgd2VcbiAgICAgICAgLy8gcHJlZmV0Y2ggZXZlcnl0aGluZyB1cCB0byB0aGUgZmlyc3Qgcm91dGUgc2VnbWVudCB0aGF0IGRlZmluZXMgYVxuICAgICAgICAvLyBsb2FkaW5nLnRzeCBib3VuZGFyeS4gKFdlIGRvIHRoZSBzYW1lIGlmIHRoZXJlJ3Mgbm8gbG9hZGluZ1xuICAgICAgICAvLyBib3VuZGFyeSBpbiB0aGUgZW50aXJlIHRyZWUsIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byBwcmVmZXRjaCB0b29cbiAgICAgICAgLy8gbXVjaCkgVGhlIHJlc3Qgb2YgdGhlIHRyZWUgaXMgZGVmZXJlZCB1bnRpbCB0aGUgYWN0dWFsIG5hdmlnYXRpb24uXG4gICAgICAgIC8vIEl0IGRvZXMgbm90IHRha2UgaW50byBhY2NvdW50IHdoZXRoZXIgdGhlIGRhdGEgaXMgZHluYW1pYyDigJQgZXZlbiBpZlxuICAgICAgICAvLyB0aGUgdHJlZSBpcyBjb21wbGV0ZWx5IHN0YXRpYywgaXQgd2lsbCBzdGlsbCBkZWZlciBldmVyeXRoaW5nXG4gICAgICAgIC8vIGluc2lkZSB0aGUgbG9hZGluZyBib3VuZGFyeS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhpcyBiZWhhdmlvciBwcmVkYXRlcyBQUFIgYW5kIGlzIG9ubHkgcmVsZXZhbnQgaWYgdGhlXG4gICAgICAgIC8vIFBQUiBmbGFnIGlzIG5vdCBlbmFibGVkLlxuICAgICAgICBpc1ByZWZldGNoICYmIChMb2FkaW5nIHx8ICFoYXNMb2FkaW5nQ29tcG9uZW50SW5UcmVlKHBhcmFsbGVsUm91dGUpKSAmJiAvLyBUaGUgYXBwcm9hY2ggd2l0aCBQUFIgaXMgZGlmZmVyZW50IOKAlCBsb2FkaW5nLnRzeCBiZWhhdmVzIGxpa2UgYVxuICAgICAgICAvLyByZWd1bGFyIFN1c3BlbnNlIGJvdW5kYXJ5IGFuZCBoYXMgbm8gc3BlY2lhbCBiZWhhdmlvci5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gV2l0aCBQUFIsIHdlIHByZWZldGNoIGFzIGRlZXBseSBhcyBwb3NzaWJsZSwgYW5kIG9ubHkgZGVmZXIgd2hlblxuICAgICAgICAvLyBkeW5hbWljIGRhdGEgaXMgYWNjZXNzZWQuIElmIHNvLCB3ZSBvbmx5IGRlZmVyIHRoZSBuZWFyZXN0IHBhcmVudFxuICAgICAgICAvLyBTdXNwZW5zZSBib3VuZGFyeSBvZiB0aGUgZHluYW1pYyBkYXRhIGFjY2VzcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyXG4gICAgICAgIC8vIHRoZSBib3VuZGFyeSBpcyBkZWZpbmVkIGJ5IGxvYWRpbmcudHN4IG9yIGEgbm9ybWFsIDxTdXNwZW5zZT5cbiAgICAgICAgLy8gY29tcG9uZW50IGluIHVzZXJzcGFjZS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gTk9URTogSW4gcHJhY3RpY2UgdGhpcyB1c3VhbGx5IG1lYW5zIHdlJ2xsIGVuZCB1cCBwcmVmZXRjaGluZyBtb3JlXG4gICAgICAgIC8vIHRoYW4gd2Ugd2VyZSBiZWZvcmUgUFBSLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSBjb25zaWRlcmVkIGFcbiAgICAgICAgLy8gcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBieSBzb21lIGFwcHMuIFRoZSBwbGFuIGlzIHRvIGFkZHJlc3MgdGhpc1xuICAgICAgICAvLyBiZWZvcmUgR2VuZXJhbCBBdmFpbGFiaWxpdHkgb2YgUFBSIGJ5IGludHJvZHVjaW5nIGdyYW51bGFyXG4gICAgICAgIC8vIHBlci1zZWdtZW50IGZldGNoaW5nLCBzbyB3ZSBjYW4gcmV1c2UgYXMgbXVjaCBvZiB0aGUgdHJlZSBhc1xuICAgICAgICAvLyBwb3NzaWJsZSBkdXJpbmcgYm90aCBwcmVmZXRjaGVzIGFuZCBkeW5hbWljIG5hdmlnYXRpb25zLiBCdXQgZHVyaW5nXG4gICAgICAgIC8vIHRoZSBiZXRhIHBlcmlvZCwgd2Ugc2hvdWxkIGJlIGNsZWFyIGFib3V0IHRoaXMgdHJhZGUgb2ZmIGluIG91clxuICAgICAgICAvLyBjb21tdW5pY2F0aW9ucy5cbiAgICAgICAgIWV4cGVyaW1lbnRhbC5wcHIpIHtcbiAgICAgICAgLy8gRG9uJ3QgcHJlZmV0Y2ggdGhpcyBjaGlsZC4gVGhpcyB3aWxsIHRyaWdnZXIgYSBsYXp5IGZldGNoIGJ5IHRoZVxuICAgICAgICAvLyBjbGllbnQgcm91dGVyLlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBjaGlsZCBjb21wb25lbnRcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIG1pc3NpbmdTbG90cykge1xuICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgZGV0ZWN0IHRoZSBkZWZhdWx0IGZhbGxiYWNrICh3aGljaCB0cmlnZ2VycyBhIDQwNCksIHdlIGNvbGxlY3QgdGhlIG1pc3Npbmcgc2xvdHNcbiAgICAgICAgICAgICAgICAvLyB0byBwcm92aWRlIG1vcmUgaGVscGZ1bCBkZWJ1ZyBpbmZvcm1hdGlvbiBkdXJpbmcgZGV2ZWxvcG1lbnQgbW9kZS5cbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRUcmVlID0gcGFyc2VMb2FkZXJUcmVlKHBhcmFsbGVsUm91dGUpO1xuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRUcmVlLmxheW91dE9yUGFnZVBhdGggPT09IFBBUkFMTEVMX1JPVVRFX0RFRkFVTFRfUEFUSCkge1xuICAgICAgICAgICAgICAgICAgICBtaXNzaW5nU2xvdHMuYWRkKHBhcmFsbGVsUm91dGVLZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgc2VlZERhdGEsIHN0eWxlczogY2hpbGRDb21wb25lbnRTdHlsZXMgfSA9IGF3YWl0IGNyZWF0ZUNvbXBvbmVudFRyZWUoe1xuICAgICAgICAgICAgICAgIGNyZWF0ZVNlZ21lbnRQYXRoOiAoY2hpbGQpPT57XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTZWdtZW50UGF0aChbXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jdXJyZW50U2VnbWVudFBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jaGlsZFxuICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxvYWRlclRyZWU6IHBhcmFsbGVsUm91dGUsXG4gICAgICAgICAgICAgICAgcGFyZW50UGFyYW1zOiBjdXJyZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIHJvb3RMYXlvdXRJbmNsdWRlZDogcm9vdExheW91dEluY2x1ZGVkQXRUaGlzTGV2ZWxPckFib3ZlLFxuICAgICAgICAgICAgICAgIGluamVjdGVkQ1NTOiBpbmplY3RlZENTU1dpdGhDdXJyZW50TGF5b3V0LFxuICAgICAgICAgICAgICAgIGluamVjdGVkSlM6IGluamVjdGVkSlNXaXRoQ3VycmVudExheW91dCxcbiAgICAgICAgICAgICAgICBpbmplY3RlZEZvbnRQcmVsb2FkVGFnczogaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3NXaXRoQ3VycmVudExheW91dCxcbiAgICAgICAgICAgICAgICBhc05vdEZvdW5kLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhT3V0bGV0LFxuICAgICAgICAgICAgICAgIGN0eCxcbiAgICAgICAgICAgICAgICBtaXNzaW5nU2xvdHNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY3VycmVudFN0eWxlcyA9IGNoaWxkQ29tcG9uZW50U3R5bGVzO1xuICAgICAgICAgICAgY2hpbGRDYWNoZU5vZGVTZWVkRGF0YSA9IHNlZWREYXRhO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoaXMgaXMgdHVybmVkIGJhY2sgaW50byBhbiBvYmplY3QgYmVsb3cuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBwYXJhbGxlbFJvdXRlS2V5LFxuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KExheW91dFJvdXRlciwge1xuICAgICAgICAgICAgICAgIHBhcmFsbGVsUm91dGVyS2V5OiBwYXJhbGxlbFJvdXRlS2V5LFxuICAgICAgICAgICAgICAgIHNlZ21lbnRQYXRoOiBjcmVhdGVTZWdtZW50UGF0aChjdXJyZW50U2VnbWVudFBhdGgpLFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IExvYWRpbmcgPyAvKiNfX1BVUkVfXyovIF9qc3goTG9hZGluZywge30pIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGxvYWRpbmdTdHlsZXM6IGxvYWRpbmdTdHlsZXMsXG4gICAgICAgICAgICAgICAgbG9hZGluZ1NjcmlwdHM6IGxvYWRpbmdTY3JpcHRzLFxuICAgICAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBBZGQgdGVzdCBmb3IgbG9hZGluZyByZXR1cm5pbmcgYHVuZGVmaW5lZGAuIFRoaXMgY3VycmVudGx5IGNhbid0IGJlIHRlc3RlZCBhcyB0aGUgYHdlYmRyaXZlcigpYCB0YWIgd2lsbCB3YWl0IGZvciB0aGUgZnVsbCBwYWdlIHRvIGxvYWQgYmVmb3JlIHJldHVybmluZy5cbiAgICAgICAgICAgICAgICBoYXNMb2FkaW5nOiBCb29sZWFuKExvYWRpbmcpLFxuICAgICAgICAgICAgICAgIGVycm9yOiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBlcnJvclN0eWxlczogZXJyb3JTdHlsZXMsXG4gICAgICAgICAgICAgICAgZXJyb3JTY3JpcHRzOiBlcnJvclNjcmlwdHMsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGU6IC8qI19fUFVSRV9fKi8gX2pzeChUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQsIHt9KVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlU3R5bGVzOiB0ZW1wbGF0ZVN0eWxlcyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZVNjcmlwdHM6IHRlbXBsYXRlU2NyaXB0cyxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogbm90Rm91bmRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgbm90Rm91bmRTdHlsZXM6IG5vdEZvdW5kU3R5bGVzLFxuICAgICAgICAgICAgICAgIHN0eWxlczogY3VycmVudFN0eWxlc1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjaGlsZENhY2hlTm9kZVNlZWREYXRhXG4gICAgICAgIF07XG4gICAgfSkpO1xuICAgIC8vIENvbnZlcnQgdGhlIHBhcmFsbGVsIHJvdXRlIG1hcCBpbnRvIGFuIG9iamVjdCBhZnRlciBhbGwgcHJvbWlzZXMgaGF2ZSBiZWVuIHJlc29sdmVkLlxuICAgIGxldCBwYXJhbGxlbFJvdXRlUHJvcHMgPSB7fTtcbiAgICBsZXQgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZVNlZWREYXRhID0ge307XG4gICAgZm9yIChjb25zdCBwYXJhbGxlbFJvdXRlIG9mIHBhcmFsbGVsUm91dGVNYXApe1xuICAgICAgICBjb25zdCBbcGFyYWxsZWxSb3V0ZUtleSwgcGFyYWxsZWxSb3V0ZVByb3AsIGZsaWdodERhdGFdID0gcGFyYWxsZWxSb3V0ZTtcbiAgICAgICAgcGFyYWxsZWxSb3V0ZVByb3BzW3BhcmFsbGVsUm91dGVLZXldID0gcGFyYWxsZWxSb3V0ZVByb3A7XG4gICAgICAgIHBhcmFsbGVsUm91dGVDYWNoZU5vZGVTZWVkRGF0YVtwYXJhbGxlbFJvdXRlS2V5XSA9IGZsaWdodERhdGE7XG4gICAgfVxuICAgIC8vIFdoZW4gdGhlIHNlZ21lbnQgZG9lcyBub3QgaGF2ZSBhIGxheW91dCBvciBwYWdlIHdlIHN0aWxsIGhhdmUgdG8gYWRkIHRoZSBsYXlvdXQgcm91dGVyIHRvIGVuc3VyZSB0aGUgcGF0aCBob2xkcyB0aGUgbG9hZGluZyBjb21wb25lbnRcbiAgICBpZiAoIUNvbXBvbmVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2VlZERhdGE6IFtcbiAgICAgICAgICAgICAgICBhY3R1YWxTZWdtZW50LFxuICAgICAgICAgICAgICAgIHBhcmFsbGVsUm91dGVDYWNoZU5vZGVTZWVkRGF0YSxcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBJIGRvbid0IHRoaW5rIHRoZSBleHRyYSBmcmFnbWVudCBpcyBuZWNlc3NhcnkuIFJlYWN0IHRyZWF0cyB0b3BcbiAgICAgICAgICAgICAgICAvLyBsZXZlbCBmcmFnbWVudHMgYXMgdHJhbnNwYXJlbnQsIGkuZS4gdGhlIHJ1bnRpbWUgYmVoYXZpb3Igc2hvdWxkIGJlXG4gICAgICAgICAgICAgICAgLy8gaWRlbnRpY2FsIGV2ZW4gd2l0aG91dCBpdC4gQnV0IG1heWJlIHRoZXJlJ3Mgc29tZSBmaW5kRE9NTm9kZS1yZWxhdGVkXG4gICAgICAgICAgICAgICAgLy8gcmVhc29uIHRoYXQgSSdtIG5vdCBhd2FyZSBvZiwgc28gSSdtIGxlYXZpbmcgaXQgYXMtaXMgb3V0IG9mIGV4dHJlbWVcbiAgICAgICAgICAgICAgICAvLyBjYXV0aW9uLCBmb3Igbm93LlxuICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChfRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHBhcmFsbGVsUm91dGVQcm9wcy5jaGlsZHJlblxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgc3R5bGVzOiBsYXllckFzc2V0c1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvLyBJZiBmb3JjZS1keW5hbWljIGlzIHVzZWQgYW5kIHRoZSBjdXJyZW50IHJlbmRlciBzdXBwb3J0cyBwb3N0cG9uaW5nLCB3ZVxuICAgIC8vIHJlcGxhY2UgaXQgd2l0aCBhIG5vZGUgdGhhdCB3aWxsIHBvc3Rwb25lIHRoZSByZW5kZXIuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZVxuICAgIC8vIHBvc3Rwb25lIGlzIGludm9rZWQgZHVyaW5nIHRoZSByZWFjdCByZW5kZXIgcGhhc2UgYW5kIG5vdCBkdXJpbmcgdGhlIG5leHRcbiAgICAvLyByZW5kZXIgcGhhc2UuXG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mb3JjZUR5bmFtaWMgJiYgc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWVkRGF0YTogW1xuICAgICAgICAgICAgICAgIGFjdHVhbFNlZ21lbnQsXG4gICAgICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZVNlZWREYXRhLFxuICAgICAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChQb3N0cG9uZSwge1xuICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZTogc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBzdHlsZXM6IGxheWVyQXNzZXRzXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGlzQ2xpZW50Q29tcG9uZW50ID0gaXNDbGllbnRSZWZlcmVuY2UobGF5b3V0T3JQYWdlTW9kKTtcbiAgICAvLyBJZiBpdCdzIGEgbm90IGZvdW5kIHJvdXRlLCBhbmQgd2UgZG9uJ3QgaGF2ZSBhbnkgbWF0Y2hlZCBwYXJhbGxlbFxuICAgIC8vIHJvdXRlcywgd2UgdHJ5IHRvIHJlbmRlciB0aGUgbm90IGZvdW5kIGNvbXBvbmVudCBpZiBpdCBleGlzdHMuXG4gICAgbGV0IG5vdEZvdW5kQ29tcG9uZW50ID0ge307XG4gICAgaWYgKE5vdEZvdW5kICYmIGFzTm90Rm91bmQgJiYgLy8gSW4gZGV2ZWxvcG1lbnQsIGl0IGNvdWxkIGhpdCB0aGUgcGFyYWxsZWwtcm91dGUtZGVmYXVsdCBub3QgZm91bmQsIHNvIHdlIG9ubHkgbmVlZCB0byBjaGVjayB0aGUgc2VnbWVudC5cbiAgICAvLyBPciBpZiB0aGVyZSdzIG5vIHBhcmFsbGVsIHJvdXRlcyBtZWFucyBpdCByZWFjaGVzIHRoZSBlbmQuXG4gICAgIXBhcmFsbGVsUm91dGVNYXAubGVuZ3RoKSB7XG4gICAgICAgIG5vdEZvdW5kQ29tcG9uZW50ID0ge1xuICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeHMoX0ZyYWdtZW50LCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwibWV0YVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInJvYm90c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJub2luZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIgJiYgLyojX19QVVJFX18qLyBfanN4KFwibWV0YVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm5leHQtZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwibm90LWZvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goTm90Rm91bmQsIHt9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICAuLi5wYXJhbGxlbFJvdXRlUHJvcHMsXG4gICAgICAgIC4uLm5vdEZvdW5kQ29tcG9uZW50LFxuICAgICAgICAvLyBUT0RPLUFQUDogcGFyYW1zIGFuZCBxdWVyeSBoYXZlIHRvIGJlIGJsb2NrZWQgcGFyYWxsZWwgcm91dGUgbmFtZXMuIE1pZ2h0IGhhdmUgdG8gYWRkIGEgcmVzZXJ2ZWQgbmFtZSBsaXN0LlxuICAgICAgICAvLyBQYXJhbXMgYXJlIGFsd2F5cyB0aGUgY3VycmVudCBwYXJhbXMgdGhhdCBhcHBseSB0byB0aGUgbGF5b3V0XG4gICAgICAgIC8vIElmIHlvdSBoYXZlIGEgYC9kYXNoYm9hcmQvW3RlYW1dL2xheW91dC5qc2AgaXQgd2lsbCBwcm92aWRlIGB0ZWFtYCBhcyBhIHBhcmFtIGJ1dCBub3QgYW55dGhpbmcgZnVydGhlciBkb3duLlxuICAgICAgICBwYXJhbXM6IGN1cnJlbnRQYXJhbXMsXG4gICAgICAgIC8vIFF1ZXJ5IGlzIG9ubHkgcHJvdmlkZWQgdG8gcGFnZVxuICAgICAgICAuLi4oKCk9PntcbiAgICAgICAgICAgIGlmIChpc0NsaWVudENvbXBvbmVudCAmJiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzUGFnZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWFyY2hQYXJhbXNQcm9wcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkoKVxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2VlZERhdGE6IFtcbiAgICAgICAgICAgIGFjdHVhbFNlZ21lbnQsXG4gICAgICAgICAgICBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlU2VlZERhdGEsXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3hzKF9GcmFnbWVudCwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIGlzUGFnZSA/IG1ldGFkYXRhT3V0bGV0IDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaXNQYWdlICYmIGlzQ2xpZW50Q29tcG9uZW50ID8gLyojX19QVVJFX18qLyBfanN4KFN0YXRpY0dlbmVyYXRpb25TZWFyY2hQYXJhbXNCYWlsb3V0UHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzRm9yQ29tcG9uZW50OiBwcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdGF0aWNHZW5lcmF0aW9uOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIH0pIDogLyojX19QVVJFX18qLyBfanN4KENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICBdLFxuICAgICAgICBzdHlsZXM6IGxheWVyQXNzZXRzXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLWNvbXBvbmVudC10cmVlLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJSZWFjdCIsImlzQ2xpZW50UmVmZXJlbmNlIiwiZ2V0TGF5b3V0T3JQYWdlTW9kdWxlIiwiaW50ZXJvcERlZmF1bHQiLCJwYXJzZUxvYWRlclRyZWUiLCJjcmVhdGVDb21wb25lbnRTdHlsZXNBbmRTY3JpcHRzIiwiZ2V0TGF5ZXJBc3NldHMiLCJoYXNMb2FkaW5nQ29tcG9uZW50SW5UcmVlIiwidmFsaWRhdGVSZXZhbGlkYXRlIiwiUEFSQUxMRUxfUk9VVEVfREVGQVVMVF9QQVRIIiwiZ2V0VHJhY2VyIiwiTmV4dE5vZGVTZXJ2ZXJTcGFuIiwiUG9zdHBvbmUiLCJwb3N0cG9uZSIsImNyZWF0ZUNvbXBvbmVudFRyZWUiLCJjcmVhdGVTZWdtZW50UGF0aCIsImxvYWRlclRyZWUiLCJ0cmVlIiwicGFyZW50UGFyYW1zIiwiZmlyc3RJdGVtIiwicm9vdExheW91dEluY2x1ZGVkIiwiaW5qZWN0ZWRDU1MiLCJpbmplY3RlZEpTIiwiaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3MiLCJhc05vdEZvdW5kIiwibWV0YWRhdGFPdXRsZXQiLCJjdHgiLCJtaXNzaW5nU2xvdHMiLCJyZW5kZXJPcHRzIiwibmV4dENvbmZpZ091dHB1dCIsImV4cGVyaW1lbnRhbCIsInN0YXRpY0dlbmVyYXRpb25TdG9yZSIsImNvbXBvbmVudE1vZCIsInN0YXRpY0dlbmVyYXRpb25CYWlsb3V0IiwiTm90Rm91bmRCb3VuZGFyeSIsIkxheW91dFJvdXRlciIsIlJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQiLCJTdGF0aWNHZW5lcmF0aW9uU2VhcmNoUGFyYW1zQmFpbG91dFByb3ZpZGVyIiwic2VydmVySG9va3MiLCJEeW5hbWljU2VydmVyRXJyb3IiLCJwYWdlUGF0aCIsImdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50IiwiaXNQcmVmZXRjaCIsInNlYXJjaFBhcmFtc1Byb3BzIiwicGFnZSIsImxheW91dE9yUGFnZVBhdGgiLCJzZWdtZW50IiwiY29tcG9uZW50cyIsInBhcmFsbGVsUm91dGVzIiwibGF5b3V0IiwidGVtcGxhdGUiLCJlcnJvciIsImxvYWRpbmciLCJub3RGb3VuZCIsImluamVjdGVkQ1NTV2l0aEN1cnJlbnRMYXlvdXQiLCJTZXQiLCJpbmplY3RlZEpTV2l0aEN1cnJlbnRMYXlvdXQiLCJpbmplY3RlZEZvbnRQcmVsb2FkVGFnc1dpdGhDdXJyZW50TGF5b3V0IiwibGF5ZXJBc3NldHMiLCJUZW1wbGF0ZSIsInRlbXBsYXRlU3R5bGVzIiwidGVtcGxhdGVTY3JpcHRzIiwiZmlsZVBhdGgiLCJnZXRDb21wb25lbnQiLCJFcnJvckNvbXBvbmVudCIsImVycm9yU3R5bGVzIiwiZXJyb3JTY3JpcHRzIiwiTG9hZGluZyIsImxvYWRpbmdTdHlsZXMiLCJsb2FkaW5nU2NyaXB0cyIsImlzTGF5b3V0IiwiaXNQYWdlIiwibGF5b3V0T3JQYWdlTW9kIiwidHJhY2UiLCJoaWRlU3BhbiIsInNwYW5OYW1lIiwiYXR0cmlidXRlcyIsInJvb3RMYXlvdXRBdFRoaXNMZXZlbCIsInJvb3RMYXlvdXRJbmNsdWRlZEF0VGhpc0xldmVsT3JBYm92ZSIsIk5vdEZvdW5kIiwibm90Rm91bmRTdHlsZXMiLCJkeW5hbWljIiwiZm9yY2VEeW5hbWljIiwiZHluYW1pY1Nob3VsZEVycm9yIiwibGluayIsImZvcmNlU3RhdGljIiwiZmV0Y2hDYWNoZSIsInJldmFsaWRhdGUiLCJ1cmxQYXRobmFtZSIsImRlZmF1bHRSZXZhbGlkYXRlIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJkeW5hbWljVXNhZ2VFcnIiLCJMYXlvdXRPclBhZ2UiLCJ1bmRlZmluZWQiLCJDb21wb25lbnQiLCJwYXJhbGxlbEtleXMiLCJPYmplY3QiLCJrZXlzIiwiaGFzU2xvdEtleSIsImxlbmd0aCIsImNvbXBvbmVudFByb3BzIiwiTm90Rm91bmRDb21wb25lbnQiLCJSb290TGF5b3V0Q29tcG9uZW50IiwiY2hpbGRyZW4iLCJwYXJhbXMiLCJwcm9jZXNzIiwiaXNWYWxpZEVsZW1lbnRUeXBlIiwicmVxdWlyZSIsIkVycm9yIiwic2VnbWVudFBhcmFtIiwiY3VycmVudFBhcmFtcyIsInZhbHVlIiwicGFyYW0iLCJhY3R1YWxTZWdtZW50IiwidHJlZVNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlTWFwIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInBhcmFsbGVsUm91dGVLZXkiLCJpc0NoaWxkcmVuUm91dGVLZXkiLCJjdXJyZW50U2VnbWVudFBhdGgiLCJwYXJhbGxlbFJvdXRlIiwibm90Rm91bmRDb21wb25lbnQiLCJjdXJyZW50U3R5bGVzIiwiY2hpbGRDYWNoZU5vZGVTZWVkRGF0YSIsInBwciIsInBhcnNlZFRyZWUiLCJhZGQiLCJzZWVkRGF0YSIsInN0eWxlcyIsImNoaWxkQ29tcG9uZW50U3R5bGVzIiwiY2hpbGQiLCJwYXJhbGxlbFJvdXRlcktleSIsInNlZ21lbnRQYXRoIiwiaGFzTG9hZGluZyIsIkJvb2xlYW4iLCJwYXJhbGxlbFJvdXRlUHJvcHMiLCJwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlU2VlZERhdGEiLCJwYXJhbGxlbFJvdXRlUHJvcCIsImZsaWdodERhdGEiLCJpc0NsaWVudENvbXBvbmVudCIsIm5hbWUiLCJjb250ZW50IiwicHJvcHMiLCJwcm9wc0ZvckNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/create-component-tree.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/create-error-handler.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/create-error-handler.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createErrorHandler: () => (/* binding */ createErrorHandler)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_string_hash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/string-hash */ \"(ssr)/../../node_modules/next/dist/compiled/string-hash/index.js\");\n/* harmony import */ var next_dist_compiled_string_hash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_string_hash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lib_format_server_error__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/format-server-error */ \"(ssr)/../../node_modules/next/dist/esm/lib/format-server-error.js\");\n/* harmony import */ var _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/trace/tracer */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n/* harmony import */ var _pipe_readable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../pipe-readable */ \"(ssr)/../../node_modules/next/dist/esm/server/pipe-readable.js\");\n/* harmony import */ var _export_helpers_is_dynamic_usage_error__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../export/helpers/is-dynamic-usage-error */ \"(ssr)/../../node_modules/next/dist/esm/export/helpers/is-dynamic-usage-error.js\");\n\n\n\n\n\n/**\n * Create error handler for renderers.\n * Tolerate dynamic server errors during prerendering so console\n * isn't spammed with unactionable errors\n */ function createErrorHandler({ _source, dev, isNextExport, errorLogger, capturedErrors, allCapturedErrors, silenceLogger }) {\n return (err)=>{\n var _err_message;\n if (allCapturedErrors) allCapturedErrors.push(err);\n // These errors are expected. We return the digest\n // so that they can be properly handled.\n if ((0,_export_helpers_is_dynamic_usage_error__WEBPACK_IMPORTED_MODULE_4__.isDynamicUsageError)(err)) return err.digest;\n // If the response was closed, we don't need to log the error.\n if ((0,_pipe_readable__WEBPACK_IMPORTED_MODULE_3__.isAbortError)(err)) return;\n // Format server errors in development to add more helpful error messages\n if (dev) {\n (0,_lib_format_server_error__WEBPACK_IMPORTED_MODULE_1__.formatServerError)(err);\n }\n // Used for debugging error source\n // console.error(_source, err)\n // Don't log the suppressed error during export\n if (!(isNextExport && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes(\"The specific message is omitted in production builds to avoid leaking sensitive details.\")))) {\n // Record exception in an active span, if available.\n const span = (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_2__.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setStatus({\n code: _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_2__.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n if (!silenceLogger) {\n if (errorLogger) {\n errorLogger(err).catch(()=>{});\n } else {\n // The error logger is currently not provided in the edge runtime.\n // Use `log-app-dir-error` instead.\n // It won't log the source code, but the error will be more useful.\n if (true) {\n const { logAppDirError } = __webpack_require__(/*! ../dev/log-app-dir-error */ \"(ssr)/../../node_modules/next/dist/esm/server/dev/log-app-dir-error.js\");\n logAppDirError(err);\n }\n if (false) {}\n }\n }\n }\n capturedErrors.push(err);\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n return next_dist_compiled_string_hash__WEBPACK_IMPORTED_MODULE_0___default()(err.message + err.stack + (err.digest || \"\")).toString();\n };\n} //# sourceMappingURL=create-error-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLWVycm9yLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUF3RDtBQUNVO0FBQ0Y7QUFDaEI7QUFDa0M7QUFDbEY7Ozs7Q0FJQyxHQUFVLFNBQVNNLG1CQUFtQixFQUVqQ0MsT0FBTyxFQUFFQyxHQUFHLEVBQUVDLFlBQVksRUFBRUMsV0FBVyxFQUFFQyxjQUFjLEVBQUVDLGlCQUFpQixFQUFFQyxhQUFhLEVBQUU7SUFDN0YsT0FBTyxDQUFDQztRQUNKLElBQUlDO1FBQ0osSUFBSUgsbUJBQW1CQSxrQkFBa0JJLElBQUksQ0FBQ0Y7UUFDOUMsa0RBQWtEO1FBQ2xELHdDQUF3QztRQUN4QyxJQUFJVCwyRkFBbUJBLENBQUNTLE1BQU0sT0FBT0EsSUFBSUcsTUFBTTtRQUMvQyw4REFBOEQ7UUFDOUQsSUFBSWIsNERBQVlBLENBQUNVLE1BQU07UUFDdkIseUVBQXlFO1FBQ3pFLElBQUlOLEtBQUs7WUFDTFAsMkVBQWlCQSxDQUFDYTtRQUN0QjtRQUNBLGtDQUFrQztRQUNsQyw4QkFBOEI7UUFDOUIsK0NBQStDO1FBQy9DLElBQUksQ0FBRUwsQ0FBQUEsZ0JBQWlCSyxDQUFBQSxPQUFPLE9BQU8sS0FBSyxJQUFJLENBQUNDLGVBQWVELElBQUlJLE9BQU8sS0FBSyxPQUFPLEtBQUssSUFBSUgsYUFBYUksUUFBUSxDQUFDLDJGQUEwRixDQUFDLEdBQUk7WUFDL00sb0RBQW9EO1lBQ3BELE1BQU1DLE9BQU9qQiw0REFBU0EsR0FBR2tCLGtCQUFrQjtZQUMzQyxJQUFJRCxNQUFNO2dCQUNOQSxLQUFLRSxlQUFlLENBQUNSO2dCQUNyQk0sS0FBS0csU0FBUyxDQUFDO29CQUNYQyxNQUFNdEIsNkRBQWNBLENBQUN1QixLQUFLO29CQUMxQlAsU0FBU0osSUFBSUksT0FBTztnQkFDeEI7WUFDSjtZQUNBLElBQUksQ0FBQ0wsZUFBZTtnQkFDaEIsSUFBSUgsYUFBYTtvQkFDYkEsWUFBWUksS0FBS1ksS0FBSyxDQUFDLEtBQUs7Z0JBQ2hDLE9BQU87b0JBQ0gsa0VBQWtFO29CQUNsRSxtQ0FBbUM7b0JBQ25DLG1FQUFtRTtvQkFDbkUsSUFBSUMsSUFBcUMsRUFBRTt3QkFDdkMsTUFBTSxFQUFFQyxjQUFjLEVBQUUsR0FBR0MsbUJBQU9BLENBQUMsd0dBQTBCO3dCQUM3REQsZUFBZWQ7b0JBQ25CO29CQUNBLElBQUlhLEtBQXFDLEVBQUUsRUFFMUM7Z0JBQ0w7WUFDSjtRQUNKO1FBQ0FoQixlQUFlSyxJQUFJLENBQUNGO1FBQ3BCLCtFQUErRTtRQUMvRSxPQUFPZCxxRUFBVUEsQ0FBQ2MsSUFBSUksT0FBTyxHQUFHSixJQUFJa0IsS0FBSyxHQUFJbEIsQ0FBQUEsSUFBSUcsTUFBTSxJQUFJLEVBQUMsR0FBSWdCLFFBQVE7SUFDNUU7QUFDSixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLWVycm9yLWhhbmRsZXIuanM/Yjg2NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3RyaW5nSGFzaCBmcm9tIFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmluZy1oYXNoXCI7XG5pbXBvcnQgeyBmb3JtYXRTZXJ2ZXJFcnJvciB9IGZyb20gXCIuLi8uLi9saWIvZm9ybWF0LXNlcnZlci1lcnJvclwiO1xuaW1wb3J0IHsgU3BhblN0YXR1c0NvZGUsIGdldFRyYWNlciB9IGZyb20gXCIuLi9saWIvdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBpc0Fib3J0RXJyb3IgfSBmcm9tIFwiLi4vcGlwZS1yZWFkYWJsZVwiO1xuaW1wb3J0IHsgaXNEeW5hbWljVXNhZ2VFcnJvciB9IGZyb20gXCIuLi8uLi9leHBvcnQvaGVscGVycy9pcy1keW5hbWljLXVzYWdlLWVycm9yXCI7XG4vKipcbiAqIENyZWF0ZSBlcnJvciBoYW5kbGVyIGZvciByZW5kZXJlcnMuXG4gKiBUb2xlcmF0ZSBkeW5hbWljIHNlcnZlciBlcnJvcnMgZHVyaW5nIHByZXJlbmRlcmluZyBzbyBjb25zb2xlXG4gKiBpc24ndCBzcGFtbWVkIHdpdGggdW5hY3Rpb25hYmxlIGVycm9yc1xuICovIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFcnJvckhhbmRsZXIoeyAvKipcbiAgICogVXNlZCBmb3IgZGVidWdnaW5nXG4gICAqLyBfc291cmNlLCBkZXYsIGlzTmV4dEV4cG9ydCwgZXJyb3JMb2dnZXIsIGNhcHR1cmVkRXJyb3JzLCBhbGxDYXB0dXJlZEVycm9ycywgc2lsZW5jZUxvZ2dlciB9KSB7XG4gICAgcmV0dXJuIChlcnIpPT57XG4gICAgICAgIHZhciBfZXJyX21lc3NhZ2U7XG4gICAgICAgIGlmIChhbGxDYXB0dXJlZEVycm9ycykgYWxsQ2FwdHVyZWRFcnJvcnMucHVzaChlcnIpO1xuICAgICAgICAvLyBUaGVzZSBlcnJvcnMgYXJlIGV4cGVjdGVkLiBXZSByZXR1cm4gdGhlIGRpZ2VzdFxuICAgICAgICAvLyBzbyB0aGF0IHRoZXkgY2FuIGJlIHByb3Blcmx5IGhhbmRsZWQuXG4gICAgICAgIGlmIChpc0R5bmFtaWNVc2FnZUVycm9yKGVycikpIHJldHVybiBlcnIuZGlnZXN0O1xuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2Ugd2FzIGNsb3NlZCwgd2UgZG9uJ3QgbmVlZCB0byBsb2cgdGhlIGVycm9yLlxuICAgICAgICBpZiAoaXNBYm9ydEVycm9yKGVycikpIHJldHVybjtcbiAgICAgICAgLy8gRm9ybWF0IHNlcnZlciBlcnJvcnMgaW4gZGV2ZWxvcG1lbnQgdG8gYWRkIG1vcmUgaGVscGZ1bCBlcnJvciBtZXNzYWdlc1xuICAgICAgICBpZiAoZGV2KSB7XG4gICAgICAgICAgICBmb3JtYXRTZXJ2ZXJFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFVzZWQgZm9yIGRlYnVnZ2luZyBlcnJvciBzb3VyY2VcbiAgICAgICAgLy8gY29uc29sZS5lcnJvcihfc291cmNlLCBlcnIpXG4gICAgICAgIC8vIERvbid0IGxvZyB0aGUgc3VwcHJlc3NlZCBlcnJvciBkdXJpbmcgZXhwb3J0XG4gICAgICAgIGlmICghKGlzTmV4dEV4cG9ydCAmJiAoZXJyID09IG51bGwgPyB2b2lkIDAgOiAoX2Vycl9tZXNzYWdlID0gZXJyLm1lc3NhZ2UpID09IG51bGwgPyB2b2lkIDAgOiBfZXJyX21lc3NhZ2UuaW5jbHVkZXMoXCJUaGUgc3BlY2lmaWMgbWVzc2FnZSBpcyBvbWl0dGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIHRvIGF2b2lkIGxlYWtpbmcgc2Vuc2l0aXZlIGRldGFpbHMuXCIpKSkpIHtcbiAgICAgICAgICAgIC8vIFJlY29yZCBleGNlcHRpb24gaW4gYW4gYWN0aXZlIHNwYW4sIGlmIGF2YWlsYWJsZS5cbiAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBnZXRUcmFjZXIoKS5nZXRBY3RpdmVTY29wZVNwYW4oKTtcbiAgICAgICAgICAgIGlmIChzcGFuKSB7XG4gICAgICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyKTtcbiAgICAgICAgICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IFNwYW5TdGF0dXNDb2RlLkVSUk9SLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzaWxlbmNlTG9nZ2VyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yTG9nZ2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yTG9nZ2VyKGVycikuY2F0Y2goKCk9Pnt9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZXJyb3IgbG9nZ2VyIGlzIGN1cnJlbnRseSBub3QgcHJvdmlkZWQgaW4gdGhlIGVkZ2UgcnVudGltZS5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGBsb2ctYXBwLWRpci1lcnJvcmAgaW5zdGVhZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gSXQgd29uJ3QgbG9nIHRoZSBzb3VyY2UgY29kZSwgYnV0IHRoZSBlcnJvciB3aWxsIGJlIG1vcmUgdXNlZnVsLlxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGxvZ0FwcERpckVycm9yIH0gPSByZXF1aXJlKFwiLi4vZGV2L2xvZy1hcHAtZGlyLWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nQXBwRGlyRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2FwdHVyZWRFcnJvcnMucHVzaChlcnIpO1xuICAgICAgICAvLyBUT0RPLUFQUDogbG9vayBhdCB1c2luZyB3ZWJjcnlwdG8gaW5zdGVhZC4gUmVxdWlyZXMgYSBwcm9taXNlIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgIHJldHVybiBzdHJpbmdIYXNoKGVyci5tZXNzYWdlICsgZXJyLnN0YWNrICsgKGVyci5kaWdlc3QgfHwgXCJcIikpLnRvU3RyaW5nKCk7XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLWVycm9yLWhhbmRsZXIuanMubWFwIl0sIm5hbWVzIjpbInN0cmluZ0hhc2giLCJmb3JtYXRTZXJ2ZXJFcnJvciIsIlNwYW5TdGF0dXNDb2RlIiwiZ2V0VHJhY2VyIiwiaXNBYm9ydEVycm9yIiwiaXNEeW5hbWljVXNhZ2VFcnJvciIsImNyZWF0ZUVycm9ySGFuZGxlciIsIl9zb3VyY2UiLCJkZXYiLCJpc05leHRFeHBvcnQiLCJlcnJvckxvZ2dlciIsImNhcHR1cmVkRXJyb3JzIiwiYWxsQ2FwdHVyZWRFcnJvcnMiLCJzaWxlbmNlTG9nZ2VyIiwiZXJyIiwiX2Vycl9tZXNzYWdlIiwicHVzaCIsImRpZ2VzdCIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsInNwYW4iLCJnZXRBY3RpdmVTY29wZVNwYW4iLCJyZWNvcmRFeGNlcHRpb24iLCJzZXRTdGF0dXMiLCJjb2RlIiwiRVJST1IiLCJjYXRjaCIsInByb2Nlc3MiLCJsb2dBcHBEaXJFcnJvciIsInJlcXVpcmUiLCJjb25zb2xlIiwiZXJyb3IiLCJzdGFjayIsInRvU3RyaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/create-error-handler.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/create-flight-router-state-from-loader-tree.js":
-/*!*********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/create-flight-router-state-from-loader-tree.js ***!
- \*********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addSearchParamsIfPageSegment: () => (/* binding */ addSearchParamsIfPageSegment),\n/* harmony export */ createFlightRouterStateFromLoaderTree: () => (/* binding */ createFlightRouterStateFromLoaderTree)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment === _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.PAGE_SEGMENT_KEY;\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== \"{}\" ? segment + \"?\" + stringifiedQuery : segment;\n }\n return segment;\n}\nfunction createFlightRouterStateFromLoaderTree([segment, parallelRoutes, { layout }], getDynamicParamFromSegment, searchParams, rootLayoutIncluded = false) {\n const dynamicParam = getDynamicParamFromSegment(segment);\n const treeSegment = dynamicParam ? dynamicParam.treeSegment : segment;\n const segmentTree = [\n addSearchParamsIfPageSegment(treeSegment, searchParams),\n {}\n ];\n if (!rootLayoutIncluded && typeof layout !== \"undefined\") {\n rootLayoutIncluded = true;\n segmentTree[4] = true;\n }\n segmentTree[1] = Object.keys(parallelRoutes).reduce((existingValue, currentValue)=>{\n existingValue[currentValue] = createFlightRouterStateFromLoaderTree(parallelRoutes[currentValue], getDynamicParamFromSegment, searchParams, rootLayoutIncluded);\n return existingValue;\n }, {});\n return segmentTree;\n} //# sourceMappingURL=create-flight-router-state-from-loader-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLWZsaWdodC1yb3V0ZXItc3RhdGUtZnJvbS1sb2FkZXItdHJlZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEQ7QUFDckQsU0FBU0MsNkJBQTZCQyxPQUFPLEVBQUVDLFlBQVk7SUFDOUQsTUFBTUMsZ0JBQWdCRixZQUFZRixpRUFBZ0JBO0lBQ2xELElBQUlJLGVBQWU7UUFDZixNQUFNQyxtQkFBbUJDLEtBQUtDLFNBQVMsQ0FBQ0o7UUFDeEMsT0FBT0UscUJBQXFCLE9BQU9ILFVBQVUsTUFBTUcsbUJBQW1CSDtJQUMxRTtJQUNBLE9BQU9BO0FBQ1g7QUFDTyxTQUFTTSxzQ0FBc0MsQ0FBQ04sU0FBU08sZ0JBQWdCLEVBQUVDLE1BQU0sRUFBRSxDQUFDLEVBQUVDLDBCQUEwQixFQUFFUixZQUFZLEVBQUVTLHFCQUFxQixLQUFLO0lBQzdKLE1BQU1DLGVBQWVGLDJCQUEyQlQ7SUFDaEQsTUFBTVksY0FBY0QsZUFBZUEsYUFBYUMsV0FBVyxHQUFHWjtJQUM5RCxNQUFNYSxjQUFjO1FBQ2hCZCw2QkFBNkJhLGFBQWFYO1FBQzFDLENBQUM7S0FDSjtJQUNELElBQUksQ0FBQ1Msc0JBQXNCLE9BQU9GLFdBQVcsYUFBYTtRQUN0REUscUJBQXFCO1FBQ3JCRyxXQUFXLENBQUMsRUFBRSxHQUFHO0lBQ3JCO0lBQ0FBLFdBQVcsQ0FBQyxFQUFFLEdBQUdDLE9BQU9DLElBQUksQ0FBQ1IsZ0JBQWdCUyxNQUFNLENBQUMsQ0FBQ0MsZUFBZUM7UUFDaEVELGFBQWEsQ0FBQ0MsYUFBYSxHQUFHWixzQ0FBc0NDLGNBQWMsQ0FBQ1csYUFBYSxFQUFFVCw0QkFBNEJSLGNBQWNTO1FBQzVJLE9BQU9PO0lBQ1gsR0FBRyxDQUFDO0lBQ0osT0FBT0o7QUFDWCxFQUVBLHVFQUF1RSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLWZsaWdodC1yb3V0ZXItc3RhdGUtZnJvbS1sb2FkZXItdHJlZS5qcz9mYzViIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50XCI7XG5leHBvcnQgZnVuY3Rpb24gYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudChzZWdtZW50LCBzZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBpc1BhZ2VTZWdtZW50ID0gc2VnbWVudCA9PT0gUEFHRV9TRUdNRU5UX0tFWTtcbiAgICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgICAgICBjb25zdCBzdHJpbmdpZmllZFF1ZXJ5ID0gSlNPTi5zdHJpbmdpZnkoc2VhcmNoUGFyYW1zKTtcbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09IFwie31cIiA/IHNlZ21lbnQgKyBcIj9cIiArIHN0cmluZ2lmaWVkUXVlcnkgOiBzZWdtZW50O1xuICAgIH1cbiAgICByZXR1cm4gc2VnbWVudDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGbGlnaHRSb3V0ZXJTdGF0ZUZyb21Mb2FkZXJUcmVlKFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlcywgeyBsYXlvdXQgfV0sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBzZWFyY2hQYXJhbXMsIHJvb3RMYXlvdXRJbmNsdWRlZCA9IGZhbHNlKSB7XG4gICAgY29uc3QgZHluYW1pY1BhcmFtID0gZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQoc2VnbWVudCk7XG4gICAgY29uc3QgdHJlZVNlZ21lbnQgPSBkeW5hbWljUGFyYW0gPyBkeW5hbWljUGFyYW0udHJlZVNlZ21lbnQgOiBzZWdtZW50O1xuICAgIGNvbnN0IHNlZ21lbnRUcmVlID0gW1xuICAgICAgICBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50KHRyZWVTZWdtZW50LCBzZWFyY2hQYXJhbXMpLFxuICAgICAgICB7fVxuICAgIF07XG4gICAgaWYgKCFyb290TGF5b3V0SW5jbHVkZWQgJiYgdHlwZW9mIGxheW91dCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByb290TGF5b3V0SW5jbHVkZWQgPSB0cnVlO1xuICAgICAgICBzZWdtZW50VHJlZVs0XSA9IHRydWU7XG4gICAgfVxuICAgIHNlZ21lbnRUcmVlWzFdID0gT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpLnJlZHVjZSgoZXhpc3RpbmdWYWx1ZSwgY3VycmVudFZhbHVlKT0+e1xuICAgICAgICBleGlzdGluZ1ZhbHVlW2N1cnJlbnRWYWx1ZV0gPSBjcmVhdGVGbGlnaHRSb3V0ZXJTdGF0ZUZyb21Mb2FkZXJUcmVlKHBhcmFsbGVsUm91dGVzW2N1cnJlbnRWYWx1ZV0sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBzZWFyY2hQYXJhbXMsIHJvb3RMYXlvdXRJbmNsdWRlZCk7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1ZhbHVlO1xuICAgIH0sIHt9KTtcbiAgICByZXR1cm4gc2VnbWVudFRyZWU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1mbGlnaHQtcm91dGVyLXN0YXRlLWZyb20tbG9hZGVyLXRyZWUuanMubWFwIl0sIm5hbWVzIjpbIlBBR0VfU0VHTUVOVF9LRVkiLCJhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50Iiwic2VnbWVudCIsInNlYXJjaFBhcmFtcyIsImlzUGFnZVNlZ21lbnQiLCJzdHJpbmdpZmllZFF1ZXJ5IiwiSlNPTiIsInN0cmluZ2lmeSIsImNyZWF0ZUZsaWdodFJvdXRlclN0YXRlRnJvbUxvYWRlclRyZWUiLCJwYXJhbGxlbFJvdXRlcyIsImxheW91dCIsImdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50Iiwicm9vdExheW91dEluY2x1ZGVkIiwiZHluYW1pY1BhcmFtIiwidHJlZVNlZ21lbnQiLCJzZWdtZW50VHJlZSIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJleGlzdGluZ1ZhbHVlIiwiY3VycmVudFZhbHVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/create-flight-router-state-from-loader-tree.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/create-server-components-renderer.js":
-/*!***********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/create-server-components-renderer.js ***!
- \***********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createReactServerRenderer: () => (/* binding */ createReactServerRenderer)\n/* harmony export */ });\n/**\n * Create a component that renders the Flight stream.\n * This is only used for renderToHTML, the Flight response does not need additional wrappers.\n */ function createReactServerRenderer(children, ComponentMod, clientReferenceManifest, onError, onPostpone) {\n let flightStream;\n return function renderToReactServerStream() {\n if (flightStream) {\n return flightStream;\n } else {\n flightStream = ComponentMod.renderToReadableStream(children, clientReferenceManifest.clientModules, {\n onError,\n onPostpone\n });\n return flightStream;\n }\n };\n} //# sourceMappingURL=create-server-components-renderer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLXNlcnZlci1jb21wb25lbnRzLXJlbmRlcmVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7O0NBR0MsR0FBVSxTQUFTQSwwQkFBMEJDLFFBQVEsRUFBRUMsWUFBWSxFQUFFQyx1QkFBdUIsRUFBRUMsT0FBTyxFQUFFQyxVQUFVO0lBQzlHLElBQUlDO0lBQ0osT0FBTyxTQUFTQztRQUNaLElBQUlELGNBQWM7WUFDZCxPQUFPQTtRQUNYLE9BQU87WUFDSEEsZUFBZUosYUFBYU0sc0JBQXNCLENBQUNQLFVBQVVFLHdCQUF3Qk0sYUFBYSxFQUFFO2dCQUNoR0w7Z0JBQ0FDO1lBQ0o7WUFDQSxPQUFPQztRQUNYO0lBQ0o7QUFDSixFQUVBLDZEQUE2RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLXNlcnZlci1jb21wb25lbnRzLXJlbmRlcmVyLmpzPzNiOGQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGUgYSBjb21wb25lbnQgdGhhdCByZW5kZXJzIHRoZSBGbGlnaHQgc3RyZWFtLlxuICogVGhpcyBpcyBvbmx5IHVzZWQgZm9yIHJlbmRlclRvSFRNTCwgdGhlIEZsaWdodCByZXNwb25zZSBkb2VzIG5vdCBuZWVkIGFkZGl0aW9uYWwgd3JhcHBlcnMuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlYWN0U2VydmVyUmVuZGVyZXIoY2hpbGRyZW4sIENvbXBvbmVudE1vZCwgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsIG9uRXJyb3IsIG9uUG9zdHBvbmUpIHtcbiAgICBsZXQgZmxpZ2h0U3RyZWFtO1xuICAgIHJldHVybiBmdW5jdGlvbiByZW5kZXJUb1JlYWN0U2VydmVyU3RyZWFtKCkge1xuICAgICAgICBpZiAoZmxpZ2h0U3RyZWFtKSB7XG4gICAgICAgICAgICByZXR1cm4gZmxpZ2h0U3RyZWFtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmxpZ2h0U3RyZWFtID0gQ29tcG9uZW50TW9kLnJlbmRlclRvUmVhZGFibGVTdHJlYW0oY2hpbGRyZW4sIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LmNsaWVudE1vZHVsZXMsIHtcbiAgICAgICAgICAgICAgICBvbkVycm9yLFxuICAgICAgICAgICAgICAgIG9uUG9zdHBvbmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGZsaWdodFN0cmVhbTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1zZXJ2ZXItY29tcG9uZW50cy1yZW5kZXJlci5qcy5tYXAiXSwibmFtZXMiOlsiY3JlYXRlUmVhY3RTZXJ2ZXJSZW5kZXJlciIsImNoaWxkcmVuIiwiQ29tcG9uZW50TW9kIiwiY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QiLCJvbkVycm9yIiwib25Qb3N0cG9uZSIsImZsaWdodFN0cmVhbSIsInJlbmRlclRvUmVhY3RTZXJ2ZXJTdHJlYW0iLCJyZW5kZXJUb1JlYWRhYmxlU3RyZWFtIiwiY2xpZW50TW9kdWxlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/create-server-components-renderer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/csrf-protection.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/csrf-protection.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isCsrfOriginAllowed: () => (/* binding */ isCsrfOriginAllowed)\n/* harmony export */ });\n// micromatch is only available at node runtime, so it cannot be used here since the code path that calls this function\n// can be run from edge. This is a simple implementation that safely achieves the required functionality.\n// the goal is to match the functionality for remotePatterns as defined here -\n// https://nextjs.org/docs/app/api-reference/components/image#remotepatterns\n// TODO - retrofit micromatch to work in edge and use that instead\nfunction matchWildcardDomain(domain, pattern) {\n const domainParts = domain.split(\".\");\n const patternParts = pattern.split(\".\");\n if (patternParts.length < 1) {\n // pattern is empty and therefore invalid to match against\n return false;\n }\n if (domainParts.length < patternParts.length) {\n // domain has too few segments and thus cannot match\n return false;\n }\n let depth = 0;\n while(patternParts.length && depth++ < 2){\n const patternPart = patternParts.pop();\n const domainPart = domainParts.pop();\n switch(patternPart){\n case \"\":\n case \"*\":\n case \"**\":\n {\n // invalid pattern. pattern segments must be non empty\n // Additionally wildcards are only supported below the domain level\n return false;\n }\n default:\n {\n if (domainPart !== patternPart) {\n return false;\n }\n }\n }\n }\n while(patternParts.length){\n const patternPart = patternParts.pop();\n const domainPart = domainParts.pop();\n switch(patternPart){\n case \"\":\n {\n // invalid pattern. pattern segments must be non empty\n return false;\n }\n case \"*\":\n {\n // wildcard matches anything so we continue if the domain part is non-empty\n if (domainPart) {\n continue;\n } else {\n return false;\n }\n }\n case \"**\":\n {\n // if this is not the last item in the pattern the pattern is invalid\n if (patternParts.length > 0) {\n return false;\n }\n // recursive wildcard matches anything so we terminate here if the domain part is non empty\n return domainPart !== undefined;\n }\n default:\n {\n if (domainPart !== patternPart) {\n return false;\n }\n }\n }\n }\n // We exhausted the pattern. If we also exhausted the domain we have a match\n return domainParts.length === 0;\n}\nconst isCsrfOriginAllowed = (originDomain, allowedOrigins = [])=>{\n return allowedOrigins.some((allowedOrigin)=>allowedOrigin && (allowedOrigin === originDomain || matchWildcardDomain(originDomain, allowedOrigin)));\n}; //# sourceMappingURL=csrf-protection.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvY3NyZi1wcm90ZWN0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1SEFBdUg7QUFDdkgseUdBQXlHO0FBQ3pHLDhFQUE4RTtBQUM5RSw0RUFBNEU7QUFDNUUsa0VBQWtFO0FBQ2xFLFNBQVNBLG9CQUFvQkMsTUFBTSxFQUFFQyxPQUFPO0lBQ3hDLE1BQU1DLGNBQWNGLE9BQU9HLEtBQUssQ0FBQztJQUNqQyxNQUFNQyxlQUFlSCxRQUFRRSxLQUFLLENBQUM7SUFDbkMsSUFBSUMsYUFBYUMsTUFBTSxHQUFHLEdBQUc7UUFDekIsMERBQTBEO1FBQzFELE9BQU87SUFDWDtJQUNBLElBQUlILFlBQVlHLE1BQU0sR0FBR0QsYUFBYUMsTUFBTSxFQUFFO1FBQzFDLG9EQUFvRDtRQUNwRCxPQUFPO0lBQ1g7SUFDQSxJQUFJQyxRQUFRO0lBQ1osTUFBTUYsYUFBYUMsTUFBTSxJQUFJQyxVQUFVLEVBQUU7UUFDckMsTUFBTUMsY0FBY0gsYUFBYUksR0FBRztRQUNwQyxNQUFNQyxhQUFhUCxZQUFZTSxHQUFHO1FBQ2xDLE9BQU9EO1lBQ0gsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO2dCQUNEO29CQUNJLHNEQUFzRDtvQkFDdEQsbUVBQW1FO29CQUNuRSxPQUFPO2dCQUNYO1lBQ0o7Z0JBQ0k7b0JBQ0ksSUFBSUUsZUFBZUYsYUFBYTt3QkFDNUIsT0FBTztvQkFDWDtnQkFDSjtRQUNSO0lBQ0o7SUFDQSxNQUFNSCxhQUFhQyxNQUFNLENBQUM7UUFDdEIsTUFBTUUsY0FBY0gsYUFBYUksR0FBRztRQUNwQyxNQUFNQyxhQUFhUCxZQUFZTSxHQUFHO1FBQ2xDLE9BQU9EO1lBQ0gsS0FBSztnQkFDRDtvQkFDSSxzREFBc0Q7b0JBQ3RELE9BQU87Z0JBQ1g7WUFDSixLQUFLO2dCQUNEO29CQUNJLDJFQUEyRTtvQkFDM0UsSUFBSUUsWUFBWTt3QkFDWjtvQkFDSixPQUFPO3dCQUNILE9BQU87b0JBQ1g7Z0JBQ0o7WUFDSixLQUFLO2dCQUNEO29CQUNJLHFFQUFxRTtvQkFDckUsSUFBSUwsYUFBYUMsTUFBTSxHQUFHLEdBQUc7d0JBQ3pCLE9BQU87b0JBQ1g7b0JBQ0EsMkZBQTJGO29CQUMzRixPQUFPSSxlQUFlQztnQkFDMUI7WUFDSjtnQkFDSTtvQkFDSSxJQUFJRCxlQUFlRixhQUFhO3dCQUM1QixPQUFPO29CQUNYO2dCQUNKO1FBQ1I7SUFDSjtJQUNBLDRFQUE0RTtJQUM1RSxPQUFPTCxZQUFZRyxNQUFNLEtBQUs7QUFDbEM7QUFDTyxNQUFNTSxzQkFBc0IsQ0FBQ0MsY0FBY0MsaUJBQWlCLEVBQUU7SUFDakUsT0FBT0EsZUFBZUMsSUFBSSxDQUFDLENBQUNDLGdCQUFnQkEsaUJBQWtCQSxDQUFBQSxrQkFBa0JILGdCQUFnQmIsb0JBQW9CYSxjQUFjRyxjQUFhO0FBQ25KLEVBQUUsQ0FFRiwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL2NzcmYtcHJvdGVjdGlvbi5qcz9jNjBkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIG1pY3JvbWF0Y2ggaXMgb25seSBhdmFpbGFibGUgYXQgbm9kZSBydW50aW1lLCBzbyBpdCBjYW5ub3QgYmUgdXNlZCBoZXJlIHNpbmNlIHRoZSBjb2RlIHBhdGggdGhhdCBjYWxscyB0aGlzIGZ1bmN0aW9uXG4vLyBjYW4gYmUgcnVuIGZyb20gZWRnZS4gVGhpcyBpcyBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHNhZmVseSBhY2hpZXZlcyB0aGUgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eS5cbi8vIHRoZSBnb2FsIGlzIHRvIG1hdGNoIHRoZSBmdW5jdGlvbmFsaXR5IGZvciByZW1vdGVQYXR0ZXJucyBhcyBkZWZpbmVkIGhlcmUgLVxuLy8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvY29tcG9uZW50cy9pbWFnZSNyZW1vdGVwYXR0ZXJuc1xuLy8gVE9ETyAtIHJldHJvZml0IG1pY3JvbWF0Y2ggdG8gd29yayBpbiBlZGdlIGFuZCB1c2UgdGhhdCBpbnN0ZWFkXG5mdW5jdGlvbiBtYXRjaFdpbGRjYXJkRG9tYWluKGRvbWFpbiwgcGF0dGVybikge1xuICAgIGNvbnN0IGRvbWFpblBhcnRzID0gZG9tYWluLnNwbGl0KFwiLlwiKTtcbiAgICBjb25zdCBwYXR0ZXJuUGFydHMgPSBwYXR0ZXJuLnNwbGl0KFwiLlwiKTtcbiAgICBpZiAocGF0dGVyblBhcnRzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgLy8gcGF0dGVybiBpcyBlbXB0eSBhbmQgdGhlcmVmb3JlIGludmFsaWQgdG8gbWF0Y2ggYWdhaW5zdFxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChkb21haW5QYXJ0cy5sZW5ndGggPCBwYXR0ZXJuUGFydHMubGVuZ3RoKSB7XG4gICAgICAgIC8vIGRvbWFpbiBoYXMgdG9vIGZldyBzZWdtZW50cyBhbmQgdGh1cyBjYW5ub3QgbWF0Y2hcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgZGVwdGggPSAwO1xuICAgIHdoaWxlKHBhdHRlcm5QYXJ0cy5sZW5ndGggJiYgZGVwdGgrKyA8IDIpe1xuICAgICAgICBjb25zdCBwYXR0ZXJuUGFydCA9IHBhdHRlcm5QYXJ0cy5wb3AoKTtcbiAgICAgICAgY29uc3QgZG9tYWluUGFydCA9IGRvbWFpblBhcnRzLnBvcCgpO1xuICAgICAgICBzd2l0Y2gocGF0dGVyblBhcnQpe1xuICAgICAgICAgICAgY2FzZSBcIlwiOlxuICAgICAgICAgICAgY2FzZSBcIipcIjpcbiAgICAgICAgICAgIGNhc2UgXCIqKlwiOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaW52YWxpZCBwYXR0ZXJuLiBwYXR0ZXJuIHNlZ21lbnRzIG11c3QgYmUgbm9uIGVtcHR5XG4gICAgICAgICAgICAgICAgICAgIC8vIEFkZGl0aW9uYWxseSB3aWxkY2FyZHMgYXJlIG9ubHkgc3VwcG9ydGVkIGJlbG93IHRoZSBkb21haW4gbGV2ZWxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZG9tYWluUGFydCAhPT0gcGF0dGVyblBhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB3aGlsZShwYXR0ZXJuUGFydHMubGVuZ3RoKXtcbiAgICAgICAgY29uc3QgcGF0dGVyblBhcnQgPSBwYXR0ZXJuUGFydHMucG9wKCk7XG4gICAgICAgIGNvbnN0IGRvbWFpblBhcnQgPSBkb21haW5QYXJ0cy5wb3AoKTtcbiAgICAgICAgc3dpdGNoKHBhdHRlcm5QYXJ0KXtcbiAgICAgICAgICAgIGNhc2UgXCJcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGludmFsaWQgcGF0dGVybi4gcGF0dGVybiBzZWdtZW50cyBtdXN0IGJlIG5vbiBlbXB0eVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIipcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdpbGRjYXJkIG1hdGNoZXMgYW55dGhpbmcgc28gd2UgY29udGludWUgaWYgdGhlIGRvbWFpbiBwYXJ0IGlzIG5vbi1lbXB0eVxuICAgICAgICAgICAgICAgICAgICBpZiAoZG9tYWluUGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiKipcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgbm90IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIHBhdHRlcm4gdGhlIHBhdHRlcm4gaXMgaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVyblBhcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyByZWN1cnNpdmUgd2lsZGNhcmQgbWF0Y2hlcyBhbnl0aGluZyBzbyB3ZSB0ZXJtaW5hdGUgaGVyZSBpZiB0aGUgZG9tYWluIHBhcnQgaXMgbm9uIGVtcHR5XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkb21haW5QYXJ0ICE9PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkb21haW5QYXJ0ICE9PSBwYXR0ZXJuUGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFdlIGV4aGF1c3RlZCB0aGUgcGF0dGVybi4gSWYgd2UgYWxzbyBleGhhdXN0ZWQgdGhlIGRvbWFpbiB3ZSBoYXZlIGEgbWF0Y2hcbiAgICByZXR1cm4gZG9tYWluUGFydHMubGVuZ3RoID09PSAwO1xufVxuZXhwb3J0IGNvbnN0IGlzQ3NyZk9yaWdpbkFsbG93ZWQgPSAob3JpZ2luRG9tYWluLCBhbGxvd2VkT3JpZ2lucyA9IFtdKT0+e1xuICAgIHJldHVybiBhbGxvd2VkT3JpZ2lucy5zb21lKChhbGxvd2VkT3JpZ2luKT0+YWxsb3dlZE9yaWdpbiAmJiAoYWxsb3dlZE9yaWdpbiA9PT0gb3JpZ2luRG9tYWluIHx8IG1hdGNoV2lsZGNhcmREb21haW4ob3JpZ2luRG9tYWluLCBhbGxvd2VkT3JpZ2luKSkpO1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3NyZi1wcm90ZWN0aW9uLmpzLm1hcCJdLCJuYW1lcyI6WyJtYXRjaFdpbGRjYXJkRG9tYWluIiwiZG9tYWluIiwicGF0dGVybiIsImRvbWFpblBhcnRzIiwic3BsaXQiLCJwYXR0ZXJuUGFydHMiLCJsZW5ndGgiLCJkZXB0aCIsInBhdHRlcm5QYXJ0IiwicG9wIiwiZG9tYWluUGFydCIsInVuZGVmaW5lZCIsImlzQ3NyZk9yaWdpbkFsbG93ZWQiLCJvcmlnaW5Eb21haW4iLCJhbGxvd2VkT3JpZ2lucyIsInNvbWUiLCJhbGxvd2VkT3JpZ2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/csrf-protection.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/flight-render-result.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/flight-render-result.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FlightRenderResult: () => (/* binding */ FlightRenderResult)\n/* harmony export */ });\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _render_result__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../render-result */ \"(ssr)/../../node_modules/next/dist/esm/server/render-result.js\");\n\n\n/**\n * Flight Response is always set to RSC_CONTENT_TYPE_HEADER to ensure it does not get interpreted as HTML.\n */ class FlightRenderResult extends _render_result__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n constructor(response){\n super(response, {\n contentType: _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.RSC_CONTENT_TYPE_HEADER,\n metadata: {}\n });\n }\n} //# sourceMappingURL=flight-render-result.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZmxpZ2h0LXJlbmRlci1yZXN1bHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXFGO0FBQ3pDO0FBQzVDOztDQUVDLEdBQVUsTUFBTUUsMkJBQTJCRCxzREFBWUE7SUFDcERFLFlBQVlDLFFBQVEsQ0FBQztRQUNqQixLQUFLLENBQUNBLFVBQVU7WUFDWkMsYUFBYUwsMEZBQXVCQTtZQUNwQ00sVUFBVSxDQUFDO1FBQ2Y7SUFDSjtBQUNKLEVBRUEsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9mbGlnaHQtcmVuZGVyLXJlc3VsdC5qcz81ZWNhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJTQ19DT05URU5UX1RZUEVfSEVBREVSIH0gZnJvbSBcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiO1xuaW1wb3J0IFJlbmRlclJlc3VsdCBmcm9tIFwiLi4vcmVuZGVyLXJlc3VsdFwiO1xuLyoqXG4gKiBGbGlnaHQgUmVzcG9uc2UgaXMgYWx3YXlzIHNldCB0byBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiB0byBlbnN1cmUgaXQgZG9lcyBub3QgZ2V0IGludGVycHJldGVkIGFzIEhUTUwuXG4gKi8gZXhwb3J0IGNsYXNzIEZsaWdodFJlbmRlclJlc3VsdCBleHRlbmRzIFJlbmRlclJlc3VsdCB7XG4gICAgY29uc3RydWN0b3IocmVzcG9uc2Upe1xuICAgICAgICBzdXBlcihyZXNwb25zZSwge1xuICAgICAgICAgICAgY29udGVudFR5cGU6IFJTQ19DT05URU5UX1RZUEVfSEVBREVSLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHt9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmxpZ2h0LXJlbmRlci1yZXN1bHQuanMubWFwIl0sIm5hbWVzIjpbIlJTQ19DT05URU5UX1RZUEVfSEVBREVSIiwiUmVuZGVyUmVzdWx0IiwiRmxpZ2h0UmVuZGVyUmVzdWx0IiwiY29uc3RydWN0b3IiLCJyZXNwb25zZSIsImNvbnRlbnRUeXBlIiwibWV0YWRhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/flight-render-result.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/get-asset-query-string.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/get-asset-query-string.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAssetQueryString: () => (/* binding */ getAssetQueryString)\n/* harmony export */ });\nconst isDev = \"development\" === \"development\";\nconst isTurbopack = !!false;\nfunction getAssetQueryString(ctx, addTimestamp) {\n let qs = \"\";\n // In development we add the request timestamp to allow react to\n // reload assets when a new RSC response is received.\n // Turbopack handles HMR of assets itself and react doesn't need to reload them\n // so this approach is not needed for Turbopack.\n if (isDev && !isTurbopack && addTimestamp) {\n qs += `?v=${ctx.requestTimestamp}`;\n }\n if (ctx.renderOpts.deploymentId) {\n qs += `${isDev ? \"&\" : \"?\"}dpl=${ctx.renderOpts.deploymentId}`;\n }\n return qs;\n} //# sourceMappingURL=get-asset-query-string.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LWFzc2V0LXF1ZXJ5LXN0cmluZy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTUEsUUFBUUMsa0JBQXlCO0FBQ3ZDLE1BQU1DLGNBQWMsQ0FBQyxDQUFDRCxLQUFxQjtBQUNwQyxTQUFTSSxvQkFBb0JDLEdBQUcsRUFBRUMsWUFBWTtJQUNqRCxJQUFJQyxLQUFLO0lBQ1QsZ0VBQWdFO0lBQ2hFLHFEQUFxRDtJQUNyRCwrRUFBK0U7SUFDL0UsZ0RBQWdEO0lBQ2hELElBQUlSLFNBQVMsQ0FBQ0UsZUFBZUssY0FBYztRQUN2Q0MsTUFBTSxDQUFDLEdBQUcsRUFBRUYsSUFBSUcsZ0JBQWdCLENBQUMsQ0FBQztJQUN0QztJQUNBLElBQUlILElBQUlJLFVBQVUsQ0FBQ0MsWUFBWSxFQUFFO1FBQzdCSCxNQUFNLENBQUMsRUFBRVIsUUFBUSxNQUFNLElBQUksSUFBSSxFQUFFTSxJQUFJSSxVQUFVLENBQUNDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFO0lBQ0EsT0FBT0g7QUFDWCxFQUVBLGtEQUFrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LWFzc2V0LXF1ZXJ5LXN0cmluZy5qcz9jMDczIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzRGV2ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGlzVHVyYm9wYWNrID0gISFwcm9jZXNzLmVudi5UVVJCT1BBQ0s7XG5leHBvcnQgZnVuY3Rpb24gZ2V0QXNzZXRRdWVyeVN0cmluZyhjdHgsIGFkZFRpbWVzdGFtcCkge1xuICAgIGxldCBxcyA9IFwiXCI7XG4gICAgLy8gSW4gZGV2ZWxvcG1lbnQgd2UgYWRkIHRoZSByZXF1ZXN0IHRpbWVzdGFtcCB0byBhbGxvdyByZWFjdCB0b1xuICAgIC8vIHJlbG9hZCBhc3NldHMgd2hlbiBhIG5ldyBSU0MgcmVzcG9uc2UgaXMgcmVjZWl2ZWQuXG4gICAgLy8gVHVyYm9wYWNrIGhhbmRsZXMgSE1SIG9mIGFzc2V0cyBpdHNlbGYgYW5kIHJlYWN0IGRvZXNuJ3QgbmVlZCB0byByZWxvYWQgdGhlbVxuICAgIC8vIHNvIHRoaXMgYXBwcm9hY2ggaXMgbm90IG5lZWRlZCBmb3IgVHVyYm9wYWNrLlxuICAgIGlmIChpc0RldiAmJiAhaXNUdXJib3BhY2sgJiYgYWRkVGltZXN0YW1wKSB7XG4gICAgICAgIHFzICs9IGA/dj0ke2N0eC5yZXF1ZXN0VGltZXN0YW1wfWA7XG4gICAgfVxuICAgIGlmIChjdHgucmVuZGVyT3B0cy5kZXBsb3ltZW50SWQpIHtcbiAgICAgICAgcXMgKz0gYCR7aXNEZXYgPyBcIiZcIiA6IFwiP1wifWRwbD0ke2N0eC5yZW5kZXJPcHRzLmRlcGxveW1lbnRJZH1gO1xuICAgIH1cbiAgICByZXR1cm4gcXM7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1hc3NldC1xdWVyeS1zdHJpbmcuanMubWFwIl0sIm5hbWVzIjpbImlzRGV2IiwicHJvY2VzcyIsImlzVHVyYm9wYWNrIiwiZW52IiwiVFVSQk9QQUNLIiwiZ2V0QXNzZXRRdWVyeVN0cmluZyIsImN0eCIsImFkZFRpbWVzdGFtcCIsInFzIiwicmVxdWVzdFRpbWVzdGFtcCIsInJlbmRlck9wdHMiLCJkZXBsb3ltZW50SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/get-asset-query-string.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/get-css-inlined-link-tags.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/get-css-inlined-link-tags.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getLinkAndScriptTags: () => (/* binding */ getLinkAndScriptTags)\n/* harmony export */ });\n/**\n * Get external stylesheet link hrefs based on server CSS manifest.\n */ function getLinkAndScriptTags(clientReferenceManifest, filePath, injectedCSS, injectedScripts, collectNewImports) {\n var _clientReferenceManifest_entryJSFiles;\n const filePathWithoutExt = filePath.replace(/\\.[^.]+$/, \"\");\n const cssChunks = new Set();\n const jsChunks = new Set();\n const entryCSSFiles = clientReferenceManifest.entryCSSFiles[filePathWithoutExt];\n const entryJSFiles = ((_clientReferenceManifest_entryJSFiles = clientReferenceManifest.entryJSFiles) == null ? void 0 : _clientReferenceManifest_entryJSFiles[filePathWithoutExt]) ?? [];\n if (entryCSSFiles) {\n for (const file of entryCSSFiles){\n if (!injectedCSS.has(file)) {\n if (collectNewImports) {\n injectedCSS.add(file);\n }\n cssChunks.add(file);\n }\n }\n }\n if (entryJSFiles) {\n for (const file of entryJSFiles){\n if (!injectedScripts.has(file)) {\n if (collectNewImports) {\n injectedScripts.add(file);\n }\n jsChunks.add(file);\n }\n }\n }\n return {\n styles: [\n ...cssChunks\n ],\n scripts: [\n ...jsChunks\n ]\n };\n} //# sourceMappingURL=get-css-inlined-link-tags.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LWNzcy1pbmxpbmVkLWxpbmstdGFncy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0NBRUMsR0FBVSxTQUFTQSxxQkFBcUJDLHVCQUF1QixFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsZUFBZSxFQUFFQyxpQkFBaUI7SUFDdkgsSUFBSUM7SUFDSixNQUFNQyxxQkFBcUJMLFNBQVNNLE9BQU8sQ0FBQyxZQUFZO0lBQ3hELE1BQU1DLFlBQVksSUFBSUM7SUFDdEIsTUFBTUMsV0FBVyxJQUFJRDtJQUNyQixNQUFNRSxnQkFBZ0JYLHdCQUF3QlcsYUFBYSxDQUFDTCxtQkFBbUI7SUFDL0UsTUFBTU0sZUFBZSxDQUFDLENBQUNQLHdDQUF3Q0wsd0JBQXdCWSxZQUFZLEtBQUssT0FBTyxLQUFLLElBQUlQLHFDQUFxQyxDQUFDQyxtQkFBbUIsS0FBSyxFQUFFO0lBQ3hMLElBQUlLLGVBQWU7UUFDZixLQUFLLE1BQU1FLFFBQVFGLGNBQWM7WUFDN0IsSUFBSSxDQUFDVCxZQUFZWSxHQUFHLENBQUNELE9BQU87Z0JBQ3hCLElBQUlULG1CQUFtQjtvQkFDbkJGLFlBQVlhLEdBQUcsQ0FBQ0Y7Z0JBQ3BCO2dCQUNBTCxVQUFVTyxHQUFHLENBQUNGO1lBQ2xCO1FBQ0o7SUFDSjtJQUNBLElBQUlELGNBQWM7UUFDZCxLQUFLLE1BQU1DLFFBQVFELGFBQWE7WUFDNUIsSUFBSSxDQUFDVCxnQkFBZ0JXLEdBQUcsQ0FBQ0QsT0FBTztnQkFDNUIsSUFBSVQsbUJBQW1CO29CQUNuQkQsZ0JBQWdCWSxHQUFHLENBQUNGO2dCQUN4QjtnQkFDQUgsU0FBU0ssR0FBRyxDQUFDRjtZQUNqQjtRQUNKO0lBQ0o7SUFDQSxPQUFPO1FBQ0hHLFFBQVE7ZUFDRFI7U0FDTjtRQUNEUyxTQUFTO2VBQ0ZQO1NBQ047SUFDTDtBQUNKLEVBRUEscURBQXFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9nZXQtY3NzLWlubGluZWQtbGluay10YWdzLmpzPzFlMTUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgZXh0ZXJuYWwgc3R5bGVzaGVldCBsaW5rIGhyZWZzIGJhc2VkIG9uIHNlcnZlciBDU1MgbWFuaWZlc3QuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldExpbmtBbmRTY3JpcHRUYWdzKGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LCBmaWxlUGF0aCwgaW5qZWN0ZWRDU1MsIGluamVjdGVkU2NyaXB0cywgY29sbGVjdE5ld0ltcG9ydHMpIHtcbiAgICB2YXIgX2NsaWVudFJlZmVyZW5jZU1hbmlmZXN0X2VudHJ5SlNGaWxlcztcbiAgICBjb25zdCBmaWxlUGF0aFdpdGhvdXRFeHQgPSBmaWxlUGF0aC5yZXBsYWNlKC9cXC5bXi5dKyQvLCBcIlwiKTtcbiAgICBjb25zdCBjc3NDaHVua3MgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QganNDaHVua3MgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgZW50cnlDU1NGaWxlcyA9IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LmVudHJ5Q1NTRmlsZXNbZmlsZVBhdGhXaXRob3V0RXh0XTtcbiAgICBjb25zdCBlbnRyeUpTRmlsZXMgPSAoKF9jbGllbnRSZWZlcmVuY2VNYW5pZmVzdF9lbnRyeUpTRmlsZXMgPSBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5lbnRyeUpTRmlsZXMpID09IG51bGwgPyB2b2lkIDAgOiBfY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RfZW50cnlKU0ZpbGVzW2ZpbGVQYXRoV2l0aG91dEV4dF0pID8/IFtdO1xuICAgIGlmIChlbnRyeUNTU0ZpbGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBlbnRyeUNTU0ZpbGVzKXtcbiAgICAgICAgICAgIGlmICghaW5qZWN0ZWRDU1MuaGFzKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbGxlY3ROZXdJbXBvcnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGluamVjdGVkQ1NTLmFkZChmaWxlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3NzQ2h1bmtzLmFkZChmaWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW50cnlKU0ZpbGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBlbnRyeUpTRmlsZXMpe1xuICAgICAgICAgICAgaWYgKCFpbmplY3RlZFNjcmlwdHMuaGFzKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbGxlY3ROZXdJbXBvcnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGluamVjdGVkU2NyaXB0cy5hZGQoZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGpzQ2h1bmtzLmFkZChmaWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBzdHlsZXM6IFtcbiAgICAgICAgICAgIC4uLmNzc0NodW5rc1xuICAgICAgICBdLFxuICAgICAgICBzY3JpcHRzOiBbXG4gICAgICAgICAgICAuLi5qc0NodW5rc1xuICAgICAgICBdXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWNzcy1pbmxpbmVkLWxpbmstdGFncy5qcy5tYXAiXSwibmFtZXMiOlsiZ2V0TGlua0FuZFNjcmlwdFRhZ3MiLCJjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCIsImZpbGVQYXRoIiwiaW5qZWN0ZWRDU1MiLCJpbmplY3RlZFNjcmlwdHMiLCJjb2xsZWN0TmV3SW1wb3J0cyIsIl9jbGllbnRSZWZlcmVuY2VNYW5pZmVzdF9lbnRyeUpTRmlsZXMiLCJmaWxlUGF0aFdpdGhvdXRFeHQiLCJyZXBsYWNlIiwiY3NzQ2h1bmtzIiwiU2V0IiwianNDaHVua3MiLCJlbnRyeUNTU0ZpbGVzIiwiZW50cnlKU0ZpbGVzIiwiZmlsZSIsImhhcyIsImFkZCIsInN0eWxlcyIsInNjcmlwdHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/get-css-inlined-link-tags.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/get-layer-assets.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/get-layer-assets.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getLayerAssets: () => (/* binding */ getLayerAssets)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _get_css_inlined_link_tags__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./get-css-inlined-link-tags */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-css-inlined-link-tags.js\");\n/* harmony import */ var _get_preloadable_fonts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-preloadable-fonts */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-preloadable-fonts.js\");\n/* harmony import */ var _get_asset_query_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./get-asset-query-string */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-asset-query-string.js\");\n\n\n\n\n\nfunction getLayerAssets({ ctx, layoutOrPagePath, injectedCSS: injectedCSSWithCurrentLayout, injectedJS: injectedJSWithCurrentLayout, injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout }) {\n const { styles: styleTags, scripts: scriptTags } = layoutOrPagePath ? (0,_get_css_inlined_link_tags__WEBPACK_IMPORTED_MODULE_2__.getLinkAndScriptTags)(ctx.clientReferenceManifest, layoutOrPagePath, injectedCSSWithCurrentLayout, injectedJSWithCurrentLayout, true) : {\n styles: [],\n scripts: []\n };\n const preloadedFontFiles = layoutOrPagePath ? (0,_get_preloadable_fonts__WEBPACK_IMPORTED_MODULE_3__.getPreloadableFonts)(ctx.renderOpts.nextFontManifest, layoutOrPagePath, injectedFontPreloadTagsWithCurrentLayout) : null;\n if (preloadedFontFiles) {\n if (preloadedFontFiles.length) {\n for(let i = 0; i < preloadedFontFiles.length; i++){\n const fontFilename = preloadedFontFiles[i];\n const ext = /\\.(woff|woff2|eot|ttf|otf)$/.exec(fontFilename)[1];\n const type = `font/${ext}`;\n const href = `${ctx.assetPrefix}/_next/${fontFilename}`;\n ctx.componentMod.preloadFont(href, type, ctx.renderOpts.crossOrigin);\n }\n } else {\n try {\n let url = new URL(ctx.assetPrefix);\n ctx.componentMod.preconnect(url.origin, \"anonymous\");\n } catch (error) {\n // assetPrefix must not be a fully qualified domain name. We assume\n // we should preconnect to same origin instead\n ctx.componentMod.preconnect(\"/\", \"anonymous\");\n }\n }\n }\n const styles = styleTags ? styleTags.map((href, index)=>{\n // In dev, Safari and Firefox will cache the resource during HMR:\n // - https://github.com/vercel/next.js/issues/5860\n // - https://bugs.webkit.org/show_bug.cgi?id=187726\n // Because of this, we add a `?v=` query to bypass the cache during\n // development. We need to also make sure that the number is always\n // increasing.\n const fullHref = `${ctx.assetPrefix}/_next/${href}${(0,_get_asset_query_string__WEBPACK_IMPORTED_MODULE_4__.getAssetQueryString)(ctx, true)}`;\n // `Precedence` is an opt-in signal for React to handle resource\n // loading and deduplication, etc. It's also used as the key to sort\n // resources so they will be injected in the correct order.\n // During HMR, it's critical to use different `precedence` values\n // for different stylesheets, so their order will be kept.\n // https://github.com/facebook/react/pull/25060\n const precedence = true ? \"next_\" + href : 0;\n ctx.componentMod.preloadStyle(fullHref, ctx.renderOpts.crossOrigin);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"link\", {\n rel: \"stylesheet\",\n href: fullHref,\n // @ts-ignore\n precedence: precedence,\n crossOrigin: ctx.renderOpts.crossOrigin\n }, index);\n }) : [];\n const scripts = scriptTags ? scriptTags.map((href, index)=>{\n const fullSrc = `${ctx.assetPrefix}/_next/${href}${(0,_get_asset_query_string__WEBPACK_IMPORTED_MODULE_4__.getAssetQueryString)(ctx, true)}`;\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"script\", {\n src: fullSrc,\n async: true\n }, `script-${index}`);\n }) : [];\n return styles.length || scripts.length ? [\n ...styles,\n ...scripts\n ] : null;\n} //# sourceMappingURL=get-layer-assets.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LWxheWVyLWFzc2V0cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQWdEO0FBQ3RCO0FBQ3lDO0FBQ0w7QUFDQztBQUN4RCxTQUFTTSxlQUFlLEVBQUVDLEdBQUcsRUFBRUMsZ0JBQWdCLEVBQUVDLGFBQWFDLDRCQUE0QixFQUFFQyxZQUFZQywyQkFBMkIsRUFBRUMseUJBQXlCQyx3Q0FBd0MsRUFBRTtJQUMzTSxNQUFNLEVBQUVDLFFBQVFDLFNBQVMsRUFBRUMsU0FBU0MsVUFBVSxFQUFFLEdBQUdWLG1CQUFtQkwsZ0ZBQW9CQSxDQUFDSSxJQUFJWSx1QkFBdUIsRUFBRVgsa0JBQWtCRSw4QkFBOEJFLDZCQUE2QixRQUFRO1FBQ3pNRyxRQUFRLEVBQUU7UUFDVkUsU0FBUyxFQUFFO0lBQ2Y7SUFDQSxNQUFNRyxxQkFBcUJaLG1CQUFtQkosMkVBQW1CQSxDQUFDRyxJQUFJYyxVQUFVLENBQUNDLGdCQUFnQixFQUFFZCxrQkFBa0JNLDRDQUE0QztJQUNqSyxJQUFJTSxvQkFBb0I7UUFDcEIsSUFBSUEsbUJBQW1CRyxNQUFNLEVBQUU7WUFDM0IsSUFBSSxJQUFJQyxJQUFJLEdBQUdBLElBQUlKLG1CQUFtQkcsTUFBTSxFQUFFQyxJQUFJO2dCQUM5QyxNQUFNQyxlQUFlTCxrQkFBa0IsQ0FBQ0ksRUFBRTtnQkFDMUMsTUFBTUUsTUFBTSw4QkFBOEJDLElBQUksQ0FBQ0YsYUFBYSxDQUFDLEVBQUU7Z0JBQy9ELE1BQU1HLE9BQU8sQ0FBQyxLQUFLLEVBQUVGLElBQUksQ0FBQztnQkFDMUIsTUFBTUcsT0FBTyxDQUFDLEVBQUV0QixJQUFJdUIsV0FBVyxDQUFDLE9BQU8sRUFBRUwsYUFBYSxDQUFDO2dCQUN2RGxCLElBQUl3QixZQUFZLENBQUNDLFdBQVcsQ0FBQ0gsTUFBTUQsTUFBTXJCLElBQUljLFVBQVUsQ0FBQ1ksV0FBVztZQUN2RTtRQUNKLE9BQU87WUFDSCxJQUFJO2dCQUNBLElBQUlDLE1BQU0sSUFBSUMsSUFBSTVCLElBQUl1QixXQUFXO2dCQUNqQ3ZCLElBQUl3QixZQUFZLENBQUNLLFVBQVUsQ0FBQ0YsSUFBSUcsTUFBTSxFQUFFO1lBQzVDLEVBQUUsT0FBT0MsT0FBTztnQkFDWixtRUFBbUU7Z0JBQ25FLDhDQUE4QztnQkFDOUMvQixJQUFJd0IsWUFBWSxDQUFDSyxVQUFVLENBQUMsS0FBSztZQUNyQztRQUNKO0lBQ0o7SUFDQSxNQUFNckIsU0FBU0MsWUFBWUEsVUFBVXVCLEdBQUcsQ0FBQyxDQUFDVixNQUFNVztRQUM1QyxpRUFBaUU7UUFDakUsa0RBQWtEO1FBQ2xELG1EQUFtRDtRQUNuRCxtRUFBbUU7UUFDbkUsbUVBQW1FO1FBQ25FLGNBQWM7UUFDZCxNQUFNQyxXQUFXLENBQUMsRUFBRWxDLElBQUl1QixXQUFXLENBQUMsT0FBTyxFQUFFRCxLQUFLLEVBQUV4Qiw0RUFBbUJBLENBQUNFLEtBQUssTUFBTSxDQUFDO1FBQ3BGLGdFQUFnRTtRQUNoRSxvRUFBb0U7UUFDcEUsMkRBQTJEO1FBQzNELGlFQUFpRTtRQUNqRSwwREFBMEQ7UUFDMUQsK0NBQStDO1FBQy9DLE1BQU1tQyxhQUFhQyxLQUFzQyxHQUFHLFVBQVVkLE9BQU8sQ0FBTTtRQUNuRnRCLElBQUl3QixZQUFZLENBQUNhLFlBQVksQ0FBQ0gsVUFBVWxDLElBQUljLFVBQVUsQ0FBQ1ksV0FBVztRQUNsRSxPQUFPLFdBQVcsR0FBR2hDLHNEQUFJQSxDQUFDLFFBQVE7WUFDOUI0QyxLQUFLO1lBQ0xoQixNQUFNWTtZQUNOLGFBQWE7WUFDYkMsWUFBWUE7WUFDWlQsYUFBYTFCLElBQUljLFVBQVUsQ0FBQ1ksV0FBVztRQUMzQyxHQUFHTztJQUNQLEtBQUssRUFBRTtJQUNQLE1BQU12QixVQUFVQyxhQUFhQSxXQUFXcUIsR0FBRyxDQUFDLENBQUNWLE1BQU1XO1FBQy9DLE1BQU1NLFVBQVUsQ0FBQyxFQUFFdkMsSUFBSXVCLFdBQVcsQ0FBQyxPQUFPLEVBQUVELEtBQUssRUFBRXhCLDRFQUFtQkEsQ0FBQ0UsS0FBSyxNQUFNLENBQUM7UUFDbkYsT0FBTyxXQUFXLEdBQUdOLHNEQUFJQSxDQUFDLFVBQVU7WUFDaEM4QyxLQUFLRDtZQUNMRSxPQUFPO1FBQ1gsR0FBRyxDQUFDLE9BQU8sRUFBRVIsTUFBTSxDQUFDO0lBQ3hCLEtBQUssRUFBRTtJQUNQLE9BQU96QixPQUFPUSxNQUFNLElBQUlOLFFBQVFNLE1BQU0sR0FBRztXQUNsQ1I7V0FDQUU7S0FDTixHQUFHO0FBQ1IsRUFFQSw0Q0FBNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL2dldC1sYXllci1hc3NldHMuanM/MDc1YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZ2V0TGlua0FuZFNjcmlwdFRhZ3MgfSBmcm9tIFwiLi9nZXQtY3NzLWlubGluZWQtbGluay10YWdzXCI7XG5pbXBvcnQgeyBnZXRQcmVsb2FkYWJsZUZvbnRzIH0gZnJvbSBcIi4vZ2V0LXByZWxvYWRhYmxlLWZvbnRzXCI7XG5pbXBvcnQgeyBnZXRBc3NldFF1ZXJ5U3RyaW5nIH0gZnJvbSBcIi4vZ2V0LWFzc2V0LXF1ZXJ5LXN0cmluZ1wiO1xuZXhwb3J0IGZ1bmN0aW9uIGdldExheWVyQXNzZXRzKHsgY3R4LCBsYXlvdXRPclBhZ2VQYXRoLCBpbmplY3RlZENTUzogaW5qZWN0ZWRDU1NXaXRoQ3VycmVudExheW91dCwgaW5qZWN0ZWRKUzogaW5qZWN0ZWRKU1dpdGhDdXJyZW50TGF5b3V0LCBpbmplY3RlZEZvbnRQcmVsb2FkVGFnczogaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3NXaXRoQ3VycmVudExheW91dCB9KSB7XG4gICAgY29uc3QgeyBzdHlsZXM6IHN0eWxlVGFncywgc2NyaXB0czogc2NyaXB0VGFncyB9ID0gbGF5b3V0T3JQYWdlUGF0aCA/IGdldExpbmtBbmRTY3JpcHRUYWdzKGN0eC5jbGllbnRSZWZlcmVuY2VNYW5pZmVzdCwgbGF5b3V0T3JQYWdlUGF0aCwgaW5qZWN0ZWRDU1NXaXRoQ3VycmVudExheW91dCwgaW5qZWN0ZWRKU1dpdGhDdXJyZW50TGF5b3V0LCB0cnVlKSA6IHtcbiAgICAgICAgc3R5bGVzOiBbXSxcbiAgICAgICAgc2NyaXB0czogW11cbiAgICB9O1xuICAgIGNvbnN0IHByZWxvYWRlZEZvbnRGaWxlcyA9IGxheW91dE9yUGFnZVBhdGggPyBnZXRQcmVsb2FkYWJsZUZvbnRzKGN0eC5yZW5kZXJPcHRzLm5leHRGb250TWFuaWZlc3QsIGxheW91dE9yUGFnZVBhdGgsIGluamVjdGVkRm9udFByZWxvYWRUYWdzV2l0aEN1cnJlbnRMYXlvdXQpIDogbnVsbDtcbiAgICBpZiAocHJlbG9hZGVkRm9udEZpbGVzKSB7XG4gICAgICAgIGlmIChwcmVsb2FkZWRGb250RmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJlbG9hZGVkRm9udEZpbGVzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICBjb25zdCBmb250RmlsZW5hbWUgPSBwcmVsb2FkZWRGb250RmlsZXNbaV07XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0ID0gL1xcLih3b2ZmfHdvZmYyfGVvdHx0dGZ8b3RmKSQvLmV4ZWMoZm9udEZpbGVuYW1lKVsxXTtcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gYGZvbnQvJHtleHR9YDtcbiAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gYCR7Y3R4LmFzc2V0UHJlZml4fS9fbmV4dC8ke2ZvbnRGaWxlbmFtZX1gO1xuICAgICAgICAgICAgICAgIGN0eC5jb21wb25lbnRNb2QucHJlbG9hZEZvbnQoaHJlZiwgdHlwZSwgY3R4LnJlbmRlck9wdHMuY3Jvc3NPcmlnaW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gbmV3IFVSTChjdHguYXNzZXRQcmVmaXgpO1xuICAgICAgICAgICAgICAgIGN0eC5jb21wb25lbnRNb2QucHJlY29ubmVjdCh1cmwub3JpZ2luLCBcImFub255bW91c1wiKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8gYXNzZXRQcmVmaXggbXVzdCBub3QgYmUgYSBmdWxseSBxdWFsaWZpZWQgZG9tYWluIG5hbWUuIFdlIGFzc3VtZVxuICAgICAgICAgICAgICAgIC8vIHdlIHNob3VsZCBwcmVjb25uZWN0IHRvIHNhbWUgb3JpZ2luIGluc3RlYWRcbiAgICAgICAgICAgICAgICBjdHguY29tcG9uZW50TW9kLnByZWNvbm5lY3QoXCIvXCIsIFwiYW5vbnltb3VzXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHN0eWxlcyA9IHN0eWxlVGFncyA/IHN0eWxlVGFncy5tYXAoKGhyZWYsIGluZGV4KT0+e1xuICAgICAgICAvLyBJbiBkZXYsIFNhZmFyaSBhbmQgRmlyZWZveCB3aWxsIGNhY2hlIHRoZSByZXNvdXJjZSBkdXJpbmcgSE1SOlxuICAgICAgICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNTg2MFxuICAgICAgICAvLyAtIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc3MjZcbiAgICAgICAgLy8gQmVjYXVzZSBvZiB0aGlzLCB3ZSBhZGQgYSBgP3Y9YCBxdWVyeSB0byBieXBhc3MgdGhlIGNhY2hlIGR1cmluZ1xuICAgICAgICAvLyBkZXZlbG9wbWVudC4gV2UgbmVlZCB0byBhbHNvIG1ha2Ugc3VyZSB0aGF0IHRoZSBudW1iZXIgaXMgYWx3YXlzXG4gICAgICAgIC8vIGluY3JlYXNpbmcuXG4gICAgICAgIGNvbnN0IGZ1bGxIcmVmID0gYCR7Y3R4LmFzc2V0UHJlZml4fS9fbmV4dC8ke2hyZWZ9JHtnZXRBc3NldFF1ZXJ5U3RyaW5nKGN0eCwgdHJ1ZSl9YDtcbiAgICAgICAgLy8gYFByZWNlZGVuY2VgIGlzIGFuIG9wdC1pbiBzaWduYWwgZm9yIFJlYWN0IHRvIGhhbmRsZSByZXNvdXJjZVxuICAgICAgICAvLyBsb2FkaW5nIGFuZCBkZWR1cGxpY2F0aW9uLCBldGMuIEl0J3MgYWxzbyB1c2VkIGFzIHRoZSBrZXkgdG8gc29ydFxuICAgICAgICAvLyByZXNvdXJjZXMgc28gdGhleSB3aWxsIGJlIGluamVjdGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLlxuICAgICAgICAvLyBEdXJpbmcgSE1SLCBpdCdzIGNyaXRpY2FsIHRvIHVzZSBkaWZmZXJlbnQgYHByZWNlZGVuY2VgIHZhbHVlc1xuICAgICAgICAvLyBmb3IgZGlmZmVyZW50IHN0eWxlc2hlZXRzLCBzbyB0aGVpciBvcmRlciB3aWxsIGJlIGtlcHQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzI1MDYwXG4gICAgICAgIGNvbnN0IHByZWNlZGVuY2UgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiID8gXCJuZXh0X1wiICsgaHJlZiA6IFwibmV4dFwiO1xuICAgICAgICBjdHguY29tcG9uZW50TW9kLnByZWxvYWRTdHlsZShmdWxsSHJlZiwgY3R4LnJlbmRlck9wdHMuY3Jvc3NPcmlnaW4pO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFwibGlua1wiLCB7XG4gICAgICAgICAgICByZWw6IFwic3R5bGVzaGVldFwiLFxuICAgICAgICAgICAgaHJlZjogZnVsbEhyZWYsXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBwcmVjZWRlbmNlOiBwcmVjZWRlbmNlLFxuICAgICAgICAgICAgY3Jvc3NPcmlnaW46IGN0eC5yZW5kZXJPcHRzLmNyb3NzT3JpZ2luXG4gICAgICAgIH0sIGluZGV4KTtcbiAgICB9KSA6IFtdO1xuICAgIGNvbnN0IHNjcmlwdHMgPSBzY3JpcHRUYWdzID8gc2NyaXB0VGFncy5tYXAoKGhyZWYsIGluZGV4KT0+e1xuICAgICAgICBjb25zdCBmdWxsU3JjID0gYCR7Y3R4LmFzc2V0UHJlZml4fS9fbmV4dC8ke2hyZWZ9JHtnZXRBc3NldFF1ZXJ5U3RyaW5nKGN0eCwgdHJ1ZSl9YDtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChcInNjcmlwdFwiLCB7XG4gICAgICAgICAgICBzcmM6IGZ1bGxTcmMsXG4gICAgICAgICAgICBhc3luYzogdHJ1ZVxuICAgICAgICB9LCBgc2NyaXB0LSR7aW5kZXh9YCk7XG4gICAgfSkgOiBbXTtcbiAgICByZXR1cm4gc3R5bGVzLmxlbmd0aCB8fCBzY3JpcHRzLmxlbmd0aCA/IFtcbiAgICAgICAgLi4uc3R5bGVzLFxuICAgICAgICAuLi5zY3JpcHRzXG4gICAgXSA6IG51bGw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1sYXllci1hc3NldHMuanMubWFwIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJSZWFjdCIsImdldExpbmtBbmRTY3JpcHRUYWdzIiwiZ2V0UHJlbG9hZGFibGVGb250cyIsImdldEFzc2V0UXVlcnlTdHJpbmciLCJnZXRMYXllckFzc2V0cyIsImN0eCIsImxheW91dE9yUGFnZVBhdGgiLCJpbmplY3RlZENTUyIsImluamVjdGVkQ1NTV2l0aEN1cnJlbnRMYXlvdXQiLCJpbmplY3RlZEpTIiwiaW5qZWN0ZWRKU1dpdGhDdXJyZW50TGF5b3V0IiwiaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3MiLCJpbmplY3RlZEZvbnRQcmVsb2FkVGFnc1dpdGhDdXJyZW50TGF5b3V0Iiwic3R5bGVzIiwic3R5bGVUYWdzIiwic2NyaXB0cyIsInNjcmlwdFRhZ3MiLCJjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCIsInByZWxvYWRlZEZvbnRGaWxlcyIsInJlbmRlck9wdHMiLCJuZXh0Rm9udE1hbmlmZXN0IiwibGVuZ3RoIiwiaSIsImZvbnRGaWxlbmFtZSIsImV4dCIsImV4ZWMiLCJ0eXBlIiwiaHJlZiIsImFzc2V0UHJlZml4IiwiY29tcG9uZW50TW9kIiwicHJlbG9hZEZvbnQiLCJjcm9zc09yaWdpbiIsInVybCIsIlVSTCIsInByZWNvbm5lY3QiLCJvcmlnaW4iLCJlcnJvciIsIm1hcCIsImluZGV4IiwiZnVsbEhyZWYiLCJwcmVjZWRlbmNlIiwicHJvY2VzcyIsInByZWxvYWRTdHlsZSIsInJlbCIsImZ1bGxTcmMiLCJzcmMiLCJhc3luYyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/get-layer-assets.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/get-preloadable-fonts.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/get-preloadable-fonts.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getPreloadableFonts: () => (/* binding */ getPreloadableFonts)\n/* harmony export */ });\n/**\n * Get hrefs for fonts to preload\n * Returns null if there are no fonts at all.\n * Returns string[] if there are fonts to preload (font paths)\n * Returns empty string[] if there are fonts but none to preload and no other fonts have been preloaded\n * Returns null if there are fonts but none to preload and at least some were previously preloaded\n */ function getPreloadableFonts(nextFontManifest, filePath, injectedFontPreloadTags) {\n if (!nextFontManifest || !filePath) {\n return null;\n }\n const filepathWithoutExtension = filePath.replace(/\\.[^.]+$/, \"\");\n const fontFiles = new Set();\n let foundFontUsage = false;\n const preloadedFontFiles = nextFontManifest.app[filepathWithoutExtension];\n if (preloadedFontFiles) {\n foundFontUsage = true;\n for (const fontFile of preloadedFontFiles){\n if (!injectedFontPreloadTags.has(fontFile)) {\n fontFiles.add(fontFile);\n injectedFontPreloadTags.add(fontFile);\n }\n }\n }\n if (fontFiles.size) {\n return [\n ...fontFiles\n ].sort();\n } else if (foundFontUsage && injectedFontPreloadTags.size === 0) {\n return [];\n } else {\n return null;\n }\n} //# sourceMappingURL=get-preloadable-fonts.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LXByZWxvYWRhYmxlLWZvbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7O0NBTUMsR0FBVSxTQUFTQSxvQkFBb0JDLGdCQUFnQixFQUFFQyxRQUFRLEVBQUVDLHVCQUF1QjtJQUN2RixJQUFJLENBQUNGLG9CQUFvQixDQUFDQyxVQUFVO1FBQ2hDLE9BQU87SUFDWDtJQUNBLE1BQU1FLDJCQUEyQkYsU0FBU0csT0FBTyxDQUFDLFlBQVk7SUFDOUQsTUFBTUMsWUFBWSxJQUFJQztJQUN0QixJQUFJQyxpQkFBaUI7SUFDckIsTUFBTUMscUJBQXFCUixpQkFBaUJTLEdBQUcsQ0FBQ04seUJBQXlCO0lBQ3pFLElBQUlLLG9CQUFvQjtRQUNwQkQsaUJBQWlCO1FBQ2pCLEtBQUssTUFBTUcsWUFBWUYsbUJBQW1CO1lBQ3RDLElBQUksQ0FBQ04sd0JBQXdCUyxHQUFHLENBQUNELFdBQVc7Z0JBQ3hDTCxVQUFVTyxHQUFHLENBQUNGO2dCQUNkUix3QkFBd0JVLEdBQUcsQ0FBQ0Y7WUFDaEM7UUFDSjtJQUNKO0lBQ0EsSUFBSUwsVUFBVVEsSUFBSSxFQUFFO1FBQ2hCLE9BQU87ZUFDQVI7U0FDTixDQUFDUyxJQUFJO0lBQ1YsT0FBTyxJQUFJUCxrQkFBa0JMLHdCQUF3QlcsSUFBSSxLQUFLLEdBQUc7UUFDN0QsT0FBTyxFQUFFO0lBQ2IsT0FBTztRQUNILE9BQU87SUFDWDtBQUNKLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9nZXQtcHJlbG9hZGFibGUtZm9udHMuanM/MWQ2MSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCBocmVmcyBmb3IgZm9udHMgdG8gcHJlbG9hZFxuICogUmV0dXJucyBudWxsIGlmIHRoZXJlIGFyZSBubyBmb250cyBhdCBhbGwuXG4gKiBSZXR1cm5zIHN0cmluZ1tdIGlmIHRoZXJlIGFyZSBmb250cyB0byBwcmVsb2FkIChmb250IHBhdGhzKVxuICogUmV0dXJucyBlbXB0eSBzdHJpbmdbXSBpZiB0aGVyZSBhcmUgZm9udHMgYnV0IG5vbmUgdG8gcHJlbG9hZCBhbmQgbm8gb3RoZXIgZm9udHMgaGF2ZSBiZWVuIHByZWxvYWRlZFxuICogUmV0dXJucyBudWxsIGlmIHRoZXJlIGFyZSBmb250cyBidXQgbm9uZSB0byBwcmVsb2FkIGFuZCBhdCBsZWFzdCBzb21lIHdlcmUgcHJldmlvdXNseSBwcmVsb2FkZWRcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0UHJlbG9hZGFibGVGb250cyhuZXh0Rm9udE1hbmlmZXN0LCBmaWxlUGF0aCwgaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3MpIHtcbiAgICBpZiAoIW5leHRGb250TWFuaWZlc3QgfHwgIWZpbGVQYXRoKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBmaWxlcGF0aFdpdGhvdXRFeHRlbnNpb24gPSBmaWxlUGF0aC5yZXBsYWNlKC9cXC5bXi5dKyQvLCBcIlwiKTtcbiAgICBjb25zdCBmb250RmlsZXMgPSBuZXcgU2V0KCk7XG4gICAgbGV0IGZvdW5kRm9udFVzYWdlID0gZmFsc2U7XG4gICAgY29uc3QgcHJlbG9hZGVkRm9udEZpbGVzID0gbmV4dEZvbnRNYW5pZmVzdC5hcHBbZmlsZXBhdGhXaXRob3V0RXh0ZW5zaW9uXTtcbiAgICBpZiAocHJlbG9hZGVkRm9udEZpbGVzKSB7XG4gICAgICAgIGZvdW5kRm9udFVzYWdlID0gdHJ1ZTtcbiAgICAgICAgZm9yIChjb25zdCBmb250RmlsZSBvZiBwcmVsb2FkZWRGb250RmlsZXMpe1xuICAgICAgICAgICAgaWYgKCFpbmplY3RlZEZvbnRQcmVsb2FkVGFncy5oYXMoZm9udEZpbGUpKSB7XG4gICAgICAgICAgICAgICAgZm9udEZpbGVzLmFkZChmb250RmlsZSk7XG4gICAgICAgICAgICAgICAgaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3MuYWRkKGZvbnRGaWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZm9udEZpbGVzLnNpemUpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmZvbnRGaWxlc1xuICAgICAgICBdLnNvcnQoKTtcbiAgICB9IGVsc2UgaWYgKGZvdW5kRm9udFVzYWdlICYmIGluamVjdGVkRm9udFByZWxvYWRUYWdzLnNpemUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXByZWxvYWRhYmxlLWZvbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJnZXRQcmVsb2FkYWJsZUZvbnRzIiwibmV4dEZvbnRNYW5pZmVzdCIsImZpbGVQYXRoIiwiaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3MiLCJmaWxlcGF0aFdpdGhvdXRFeHRlbnNpb24iLCJyZXBsYWNlIiwiZm9udEZpbGVzIiwiU2V0IiwiZm91bmRGb250VXNhZ2UiLCJwcmVsb2FkZWRGb250RmlsZXMiLCJhcHAiLCJmb250RmlsZSIsImhhcyIsImFkZCIsInNpemUiLCJzb3J0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/get-preloadable-fonts.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/get-script-nonce-from-header.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/get-script-nonce-from-header.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getScriptNonceFromHeader: () => (/* binding */ getScriptNonceFromHeader)\n/* harmony export */ });\n/* harmony import */ var _htmlescape__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../htmlescape */ \"(ssr)/../../node_modules/next/dist/esm/server/htmlescape.js\");\n\nfunction getScriptNonceFromHeader(cspHeaderValue) {\n var _directive_split_slice_map_find;\n const directives = cspHeaderValue // Directives are split by ';'.\n .split(\";\").map((directive)=>directive.trim());\n // First try to find the directive for the 'script-src', otherwise try to\n // fallback to the 'default-src'.\n const directive = directives.find((dir)=>dir.startsWith(\"script-src\")) || directives.find((dir)=>dir.startsWith(\"default-src\"));\n // If no directive could be found, then we're done.\n if (!directive) {\n return;\n }\n // Extract the nonce from the directive\n const nonce = (_directive_split_slice_map_find = directive.split(\" \") // Remove the 'strict-src'/'default-src' string, this can't be the nonce.\n .slice(1).map((source)=>source.trim()) // Find the first source with the 'nonce-' prefix.\n .find((source)=>source.startsWith(\"'nonce-\") && source.length > 8 && source.endsWith(\"'\"))) == null ? void 0 : _directive_split_slice_map_find.slice(7, -1);\n // If we could't find the nonce, then we're done.\n if (!nonce) {\n return;\n }\n // Don't accept the nonce value if it contains HTML escape characters.\n // Technically, the spec requires a base64'd value, but this is just an\n // extra layer.\n if (_htmlescape__WEBPACK_IMPORTED_MODULE_0__.ESCAPE_REGEX.test(nonce)) {\n throw new Error(\"Nonce value from Content-Security-Policy contained HTML escape characters.\\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters\");\n }\n return nonce;\n} //# sourceMappingURL=get-script-nonce-from-header.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LXNjcmlwdC1ub25jZS1mcm9tLWhlYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2QztBQUN0QyxTQUFTQyx5QkFBeUJDLGNBQWM7SUFDbkQsSUFBSUM7SUFDSixNQUFNQyxhQUFhRixlQUFjLCtCQUErQjtLQUMvREcsS0FBSyxDQUFDLEtBQUtDLEdBQUcsQ0FBQyxDQUFDQyxZQUFZQSxVQUFVQyxJQUFJO0lBQzNDLHlFQUF5RTtJQUN6RSxpQ0FBaUM7SUFDakMsTUFBTUQsWUFBWUgsV0FBV0ssSUFBSSxDQUFDLENBQUNDLE1BQU1BLElBQUlDLFVBQVUsQ0FBQyxrQkFBa0JQLFdBQVdLLElBQUksQ0FBQyxDQUFDQyxNQUFNQSxJQUFJQyxVQUFVLENBQUM7SUFDaEgsbURBQW1EO0lBQ25ELElBQUksQ0FBQ0osV0FBVztRQUNaO0lBQ0o7SUFDQSx1Q0FBdUM7SUFDdkMsTUFBTUssUUFBUSxDQUFDVCxrQ0FBa0NJLFVBQVVGLEtBQUssQ0FBQyxLQUFJLHlFQUF5RTtLQUM3SVEsS0FBSyxDQUFDLEdBQUdQLEdBQUcsQ0FBQyxDQUFDUSxTQUFTQSxPQUFPTixJQUFJLElBQUcsa0RBQWtEO0tBQ3ZGQyxJQUFJLENBQUMsQ0FBQ0ssU0FBU0EsT0FBT0gsVUFBVSxDQUFDLGNBQWNHLE9BQU9DLE1BQU0sR0FBRyxLQUFLRCxPQUFPRSxRQUFRLENBQUMsS0FBSSxLQUFNLE9BQU8sS0FBSyxJQUFJYixnQ0FBZ0NVLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDekosaURBQWlEO0lBQ2pELElBQUksQ0FBQ0QsT0FBTztRQUNSO0lBQ0o7SUFDQSxzRUFBc0U7SUFDdEUsdUVBQXVFO0lBQ3ZFLGVBQWU7SUFDZixJQUFJWixxREFBWUEsQ0FBQ2lCLElBQUksQ0FBQ0wsUUFBUTtRQUMxQixNQUFNLElBQUlNLE1BQU07SUFDcEI7SUFDQSxPQUFPTjtBQUNYLEVBRUEsd0RBQXdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9nZXQtc2NyaXB0LW5vbmNlLWZyb20taGVhZGVyLmpzP2NiMWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVNDQVBFX1JFR0VYIH0gZnJvbSBcIi4uL2h0bWxlc2NhcGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHROb25jZUZyb21IZWFkZXIoY3NwSGVhZGVyVmFsdWUpIHtcbiAgICB2YXIgX2RpcmVjdGl2ZV9zcGxpdF9zbGljZV9tYXBfZmluZDtcbiAgICBjb25zdCBkaXJlY3RpdmVzID0gY3NwSGVhZGVyVmFsdWUvLyBEaXJlY3RpdmVzIGFyZSBzcGxpdCBieSAnOycuXG4gICAgLnNwbGl0KFwiO1wiKS5tYXAoKGRpcmVjdGl2ZSk9PmRpcmVjdGl2ZS50cmltKCkpO1xuICAgIC8vIEZpcnN0IHRyeSB0byBmaW5kIHRoZSBkaXJlY3RpdmUgZm9yIHRoZSAnc2NyaXB0LXNyYycsIG90aGVyd2lzZSB0cnkgdG9cbiAgICAvLyBmYWxsYmFjayB0byB0aGUgJ2RlZmF1bHQtc3JjJy5cbiAgICBjb25zdCBkaXJlY3RpdmUgPSBkaXJlY3RpdmVzLmZpbmQoKGRpcik9PmRpci5zdGFydHNXaXRoKFwic2NyaXB0LXNyY1wiKSkgfHwgZGlyZWN0aXZlcy5maW5kKChkaXIpPT5kaXIuc3RhcnRzV2l0aChcImRlZmF1bHQtc3JjXCIpKTtcbiAgICAvLyBJZiBubyBkaXJlY3RpdmUgY291bGQgYmUgZm91bmQsIHRoZW4gd2UncmUgZG9uZS5cbiAgICBpZiAoIWRpcmVjdGl2ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIEV4dHJhY3QgdGhlIG5vbmNlIGZyb20gdGhlIGRpcmVjdGl2ZVxuICAgIGNvbnN0IG5vbmNlID0gKF9kaXJlY3RpdmVfc3BsaXRfc2xpY2VfbWFwX2ZpbmQgPSBkaXJlY3RpdmUuc3BsaXQoXCIgXCIpLy8gUmVtb3ZlIHRoZSAnc3RyaWN0LXNyYycvJ2RlZmF1bHQtc3JjJyBzdHJpbmcsIHRoaXMgY2FuJ3QgYmUgdGhlIG5vbmNlLlxuICAgIC5zbGljZSgxKS5tYXAoKHNvdXJjZSk9PnNvdXJjZS50cmltKCkpLy8gRmluZCB0aGUgZmlyc3Qgc291cmNlIHdpdGggdGhlICdub25jZS0nIHByZWZpeC5cbiAgICAuZmluZCgoc291cmNlKT0+c291cmNlLnN0YXJ0c1dpdGgoXCInbm9uY2UtXCIpICYmIHNvdXJjZS5sZW5ndGggPiA4ICYmIHNvdXJjZS5lbmRzV2l0aChcIidcIikpKSA9PSBudWxsID8gdm9pZCAwIDogX2RpcmVjdGl2ZV9zcGxpdF9zbGljZV9tYXBfZmluZC5zbGljZSg3LCAtMSk7XG4gICAgLy8gSWYgd2UgY291bGQndCBmaW5kIHRoZSBub25jZSwgdGhlbiB3ZSdyZSBkb25lLlxuICAgIGlmICghbm9uY2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBEb24ndCBhY2NlcHQgdGhlIG5vbmNlIHZhbHVlIGlmIGl0IGNvbnRhaW5zIEhUTUwgZXNjYXBlIGNoYXJhY3RlcnMuXG4gICAgLy8gVGVjaG5pY2FsbHksIHRoZSBzcGVjIHJlcXVpcmVzIGEgYmFzZTY0J2QgdmFsdWUsIGJ1dCB0aGlzIGlzIGp1c3QgYW5cbiAgICAvLyBleHRyYSBsYXllci5cbiAgICBpZiAoRVNDQVBFX1JFR0VYLnRlc3Qobm9uY2UpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vbmNlIHZhbHVlIGZyb20gQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgY29udGFpbmVkIEhUTUwgZXNjYXBlIGNoYXJhY3RlcnMuXFxuTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm9uY2UtY29udGFpbmVkLWludmFsaWQtY2hhcmFjdGVyc1wiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vbmNlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtc2NyaXB0LW5vbmNlLWZyb20taGVhZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJFU0NBUEVfUkVHRVgiLCJnZXRTY3JpcHROb25jZUZyb21IZWFkZXIiLCJjc3BIZWFkZXJWYWx1ZSIsIl9kaXJlY3RpdmVfc3BsaXRfc2xpY2VfbWFwX2ZpbmQiLCJkaXJlY3RpdmVzIiwic3BsaXQiLCJtYXAiLCJkaXJlY3RpdmUiLCJ0cmltIiwiZmluZCIsImRpciIsInN0YXJ0c1dpdGgiLCJub25jZSIsInNsaWNlIiwic291cmNlIiwibGVuZ3RoIiwiZW5kc1dpdGgiLCJ0ZXN0IiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/get-script-nonce-from-header.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/get-segment-param.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/get-segment-param.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getSegmentParam: () => (/* binding */ getSegmentParam)\n/* harmony export */ });\n/* harmony import */ var _future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../future/helpers/interception-routes */ \"(ssr)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\");\n\n/**\n * Parse dynamic route segment to type of parameter\n */ function getSegmentParam(segment) {\n const interceptionMarker = _future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.INTERCEPTION_ROUTE_MARKERS.find((marker)=>segment.startsWith(marker));\n // if an interception marker is part of the path segment, we need to jump ahead\n // to the relevant portion for param parsing\n if (interceptionMarker) {\n segment = segment.slice(interceptionMarker.length);\n }\n if (segment.startsWith(\"[[...\") && segment.endsWith(\"]]\")) {\n return {\n type: \"optional-catchall\",\n param: segment.slice(5, -2)\n };\n }\n if (segment.startsWith(\"[...\") && segment.endsWith(\"]\")) {\n return {\n type: \"catchall\",\n param: segment.slice(4, -1)\n };\n }\n if (segment.startsWith(\"[\") && segment.endsWith(\"]\")) {\n return {\n type: \"dynamic\",\n param: segment.slice(1, -1)\n };\n }\n return null;\n} //# sourceMappingURL=get-segment-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LXNlZ21lbnQtcGFyYW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBbUY7QUFDbkY7O0NBRUMsR0FBVSxTQUFTQyxnQkFBZ0JDLE9BQU87SUFDdkMsTUFBTUMscUJBQXFCSCwyRkFBMEJBLENBQUNJLElBQUksQ0FBQyxDQUFDQyxTQUFTSCxRQUFRSSxVQUFVLENBQUNEO0lBQ3hGLCtFQUErRTtJQUMvRSw0Q0FBNEM7SUFDNUMsSUFBSUYsb0JBQW9CO1FBQ3BCRCxVQUFVQSxRQUFRSyxLQUFLLENBQUNKLG1CQUFtQkssTUFBTTtJQUNyRDtJQUNBLElBQUlOLFFBQVFJLFVBQVUsQ0FBQyxZQUFZSixRQUFRTyxRQUFRLENBQUMsT0FBTztRQUN2RCxPQUFPO1lBQ0hDLE1BQU07WUFDTkMsT0FBT1QsUUFBUUssS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUM3QjtJQUNKO0lBQ0EsSUFBSUwsUUFBUUksVUFBVSxDQUFDLFdBQVdKLFFBQVFPLFFBQVEsQ0FBQyxNQUFNO1FBQ3JELE9BQU87WUFDSEMsTUFBTTtZQUNOQyxPQUFPVCxRQUFRSyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzdCO0lBQ0o7SUFDQSxJQUFJTCxRQUFRSSxVQUFVLENBQUMsUUFBUUosUUFBUU8sUUFBUSxDQUFDLE1BQU07UUFDbEQsT0FBTztZQUNIQyxNQUFNO1lBQ05DLE9BQU9ULFFBQVFLLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDN0I7SUFDSjtJQUNBLE9BQU87QUFDWCxFQUVBLDZDQUE2QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LXNlZ21lbnQtcGFyYW0uanM/OGE1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyB9IGZyb20gXCIuLi9mdXR1cmUvaGVscGVycy9pbnRlcmNlcHRpb24tcm91dGVzXCI7XG4vKipcbiAqIFBhcnNlIGR5bmFtaWMgcm91dGUgc2VnbWVudCB0byB0eXBlIG9mIHBhcmFtZXRlclxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRTZWdtZW50UGFyYW0oc2VnbWVudCkge1xuICAgIGNvbnN0IGludGVyY2VwdGlvbk1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG1hcmtlcik9PnNlZ21lbnQuc3RhcnRzV2l0aChtYXJrZXIpKTtcbiAgICAvLyBpZiBhbiBpbnRlcmNlcHRpb24gbWFya2VyIGlzIHBhcnQgb2YgdGhlIHBhdGggc2VnbWVudCwgd2UgbmVlZCB0byBqdW1wIGFoZWFkXG4gICAgLy8gdG8gdGhlIHJlbGV2YW50IHBvcnRpb24gZm9yIHBhcmFtIHBhcnNpbmdcbiAgICBpZiAoaW50ZXJjZXB0aW9uTWFya2VyKSB7XG4gICAgICAgIHNlZ21lbnQgPSBzZWdtZW50LnNsaWNlKGludGVyY2VwdGlvbk1hcmtlci5sZW5ndGgpO1xuICAgIH1cbiAgICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKFwiW1suLi5cIikgJiYgc2VnbWVudC5lbmRzV2l0aChcIl1dXCIpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9wdGlvbmFsLWNhdGNoYWxsXCIsXG4gICAgICAgICAgICBwYXJhbTogc2VnbWVudC5zbGljZSg1LCAtMilcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aChcIlsuLi5cIikgJiYgc2VnbWVudC5lbmRzV2l0aChcIl1cIikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwiY2F0Y2hhbGxcIixcbiAgICAgICAgICAgIHBhcmFtOiBzZWdtZW50LnNsaWNlKDQsIC0xKVxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKFwiW1wiKSAmJiBzZWdtZW50LmVuZHNXaXRoKFwiXVwiKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgICAgICBwYXJhbTogc2VnbWVudC5zbGljZSgxLCAtMSlcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1zZWdtZW50LXBhcmFtLmpzLm1hcCJdLCJuYW1lcyI6WyJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImdldFNlZ21lbnRQYXJhbSIsInNlZ21lbnQiLCJpbnRlcmNlcHRpb25NYXJrZXIiLCJmaW5kIiwibWFya2VyIiwic3RhcnRzV2l0aCIsInNsaWNlIiwibGVuZ3RoIiwiZW5kc1dpdGgiLCJ0eXBlIiwicGFyYW0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/get-segment-param.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/get-short-dynamic-param-type.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/get-short-dynamic-param-type.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dynamicParamTypes: () => (/* binding */ dynamicParamTypes),\n/* harmony export */ getShortDynamicParamType: () => (/* binding */ getShortDynamicParamType)\n/* harmony export */ });\nconst dynamicParamTypes = {\n catchall: \"c\",\n \"optional-catchall\": \"oc\",\n dynamic: \"d\"\n};\n/**\n * Shorten the dynamic param in order to make it smaller when transmitted to the browser.\n */ function getShortDynamicParamType(type) {\n const short = dynamicParamTypes[type];\n if (!short) {\n throw new Error(\"Unknown dynamic param type\");\n }\n return short;\n} //# sourceMappingURL=get-short-dynamic-param-type.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZ2V0LXNob3J0LWR5bmFtaWMtcGFyYW0tdHlwZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPLE1BQU1BLG9CQUFvQjtJQUM3QkMsVUFBVTtJQUNWLHFCQUFxQjtJQUNyQkMsU0FBUztBQUNiLEVBQUU7QUFDRjs7Q0FFQyxHQUFVLFNBQVNDLHlCQUF5QkMsSUFBSTtJQUM3QyxNQUFNQyxRQUFRTCxpQkFBaUIsQ0FBQ0ksS0FBSztJQUNyQyxJQUFJLENBQUNDLE9BQU87UUFDUixNQUFNLElBQUlDLE1BQU07SUFDcEI7SUFDQSxPQUFPRDtBQUNYLEVBRUEsd0RBQXdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9nZXQtc2hvcnQtZHluYW1pYy1wYXJhbS10eXBlLmpzPzlmZWIiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGR5bmFtaWNQYXJhbVR5cGVzID0ge1xuICAgIGNhdGNoYWxsOiBcImNcIixcbiAgICBcIm9wdGlvbmFsLWNhdGNoYWxsXCI6IFwib2NcIixcbiAgICBkeW5hbWljOiBcImRcIlxufTtcbi8qKlxuICogU2hvcnRlbiB0aGUgZHluYW1pYyBwYXJhbSBpbiBvcmRlciB0byBtYWtlIGl0IHNtYWxsZXIgd2hlbiB0cmFuc21pdHRlZCB0byB0aGUgYnJvd3Nlci5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0U2hvcnREeW5hbWljUGFyYW1UeXBlKHR5cGUpIHtcbiAgICBjb25zdCBzaG9ydCA9IGR5bmFtaWNQYXJhbVR5cGVzW3R5cGVdO1xuICAgIGlmICghc2hvcnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBkeW5hbWljIHBhcmFtIHR5cGVcIik7XG4gICAgfVxuICAgIHJldHVybiBzaG9ydDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXNob3J0LWR5bmFtaWMtcGFyYW0tdHlwZS5qcy5tYXAiXSwibmFtZXMiOlsiZHluYW1pY1BhcmFtVHlwZXMiLCJjYXRjaGFsbCIsImR5bmFtaWMiLCJnZXRTaG9ydER5bmFtaWNQYXJhbVR5cGUiLCJ0eXBlIiwic2hvcnQiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/get-short-dynamic-param-type.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/has-loading-component-in-tree.js":
-/*!*******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/has-loading-component-in-tree.js ***!
- \*******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasLoadingComponentInTree: () => (/* binding */ hasLoadingComponentInTree)\n/* harmony export */ });\nfunction hasLoadingComponentInTree(tree) {\n const [, parallelRoutes, { loading }] = tree;\n if (loading) {\n return true;\n }\n return Object.values(parallelRoutes).some((parallelRoute)=>hasLoadingComponentInTree(parallelRoute));\n} //# sourceMappingURL=has-loading-component-in-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvaGFzLWxvYWRpbmctY29tcG9uZW50LWluLXRyZWUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLDBCQUEwQkMsSUFBSTtJQUMxQyxNQUFNLEdBQUdDLGdCQUFnQixFQUFFQyxPQUFPLEVBQUUsQ0FBQyxHQUFHRjtJQUN4QyxJQUFJRSxTQUFTO1FBQ1QsT0FBTztJQUNYO0lBQ0EsT0FBT0MsT0FBT0MsTUFBTSxDQUFDSCxnQkFBZ0JJLElBQUksQ0FBQyxDQUFDQyxnQkFBZ0JQLDBCQUEwQk87QUFDekYsRUFFQSx5REFBeUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL2hhcy1sb2FkaW5nLWNvbXBvbmVudC1pbi10cmVlLmpzPzFmNjgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGhhc0xvYWRpbmdDb21wb25lbnRJblRyZWUodHJlZSkge1xuICAgIGNvbnN0IFssIHBhcmFsbGVsUm91dGVzLCB7IGxvYWRpbmcgfV0gPSB0cmVlO1xuICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhwYXJhbGxlbFJvdXRlcykuc29tZSgocGFyYWxsZWxSb3V0ZSk9Pmhhc0xvYWRpbmdDb21wb25lbnRJblRyZWUocGFyYWxsZWxSb3V0ZSkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oYXMtbG9hZGluZy1jb21wb25lbnQtaW4tdHJlZS5qcy5tYXAiXSwibmFtZXMiOlsiaGFzTG9hZGluZ0NvbXBvbmVudEluVHJlZSIsInRyZWUiLCJwYXJhbGxlbFJvdXRlcyIsImxvYWRpbmciLCJPYmplY3QiLCJ2YWx1ZXMiLCJzb21lIiwicGFyYWxsZWxSb3V0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/has-loading-component-in-tree.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/interop-default.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/interop-default.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ interopDefault: () => (/* binding */ interopDefault)\n/* harmony export */ });\n/**\n * Interop between \"export default\" and \"module.exports\".\n */ function interopDefault(mod) {\n return mod.default || mod;\n} //# sourceMappingURL=interop-default.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Q0FFQyxHQUFVLFNBQVNBLGVBQWVDLEdBQUc7SUFDbEMsT0FBT0EsSUFBSUMsT0FBTyxJQUFJRDtBQUMxQixFQUVBLDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0LmpzPzk0MmQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlcm9wIGJldHdlZW4gXCJleHBvcnQgZGVmYXVsdFwiIGFuZCBcIm1vZHVsZS5leHBvcnRzXCIuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGludGVyb3BEZWZhdWx0KG1vZCkge1xuICAgIHJldHVybiBtb2QuZGVmYXVsdCB8fCBtb2Q7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVyb3AtZGVmYXVsdC5qcy5tYXAiXSwibmFtZXMiOlsiaW50ZXJvcERlZmF1bHQiLCJtb2QiLCJkZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/interop-default.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/is-missing-postpone-error.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/is-missing-postpone-error.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MISSING_POSTPONE_DATA_ERROR: () => (/* binding */ MISSING_POSTPONE_DATA_ERROR),\n/* harmony export */ MissingPostponeDataError: () => (/* binding */ MissingPostponeDataError),\n/* harmony export */ isMissingPostponeDataError: () => (/* binding */ isMissingPostponeDataError)\n/* harmony export */ });\nconst MISSING_POSTPONE_DATA_ERROR = \"MISSING_POSTPONE_DATA_ERROR\";\nclass MissingPostponeDataError extends Error {\n constructor(type){\n super(`Missing Postpone Data Error: ${type}`);\n this.digest = MISSING_POSTPONE_DATA_ERROR;\n }\n}\nconst isMissingPostponeDataError = (err)=>err.digest === MISSING_POSTPONE_DATA_ERROR; //# sourceMappingURL=is-missing-postpone-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvaXMtbWlzc2luZy1wb3N0cG9uZS1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxNQUFNQSw4QkFBOEIsOEJBQThCO0FBQ2xFLE1BQU1DLGlDQUFpQ0M7SUFDMUNDLFlBQVlDLElBQUksQ0FBQztRQUNiLEtBQUssQ0FBQyxDQUFDLDZCQUE2QixFQUFFQSxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDQyxNQUFNLEdBQUdMO0lBQ2xCO0FBQ0o7QUFDTyxNQUFNTSw2QkFBNkIsQ0FBQ0MsTUFBTUEsSUFBSUYsTUFBTSxLQUFLTCw0QkFBNEIsQ0FFNUYscURBQXFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9pcy1taXNzaW5nLXBvc3Rwb25lLWVycm9yLmpzP2RmZDYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JU1NJTkdfUE9TVFBPTkVfREFUQV9FUlJPUiA9IFwiTUlTU0lOR19QT1NUUE9ORV9EQVRBX0VSUk9SXCI7XG5leHBvcnQgY2xhc3MgTWlzc2luZ1Bvc3Rwb25lRGF0YUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHR5cGUpe1xuICAgICAgICBzdXBlcihgTWlzc2luZyBQb3N0cG9uZSBEYXRhIEVycm9yOiAke3R5cGV9YCk7XG4gICAgICAgIHRoaXMuZGlnZXN0ID0gTUlTU0lOR19QT1NUUE9ORV9EQVRBX0VSUk9SO1xuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBpc01pc3NpbmdQb3N0cG9uZURhdGFFcnJvciA9IChlcnIpPT5lcnIuZGlnZXN0ID09PSBNSVNTSU5HX1BPU1RQT05FX0RBVEFfRVJST1I7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW1pc3NpbmctcG9zdHBvbmUtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIk1JU1NJTkdfUE9TVFBPTkVfREFUQV9FUlJPUiIsIk1pc3NpbmdQb3N0cG9uZURhdGFFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJ0eXBlIiwiZGlnZXN0IiwiaXNNaXNzaW5nUG9zdHBvbmVEYXRhRXJyb3IiLCJlcnIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/is-missing-postpone-error.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/make-get-server-inserted-html.js":
-/*!*******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/make-get-server-inserted-html.js ***!
- \*******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeGetServerInsertedHTML: () => (/* binding */ makeGetServerInsertedHTML)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _client_components_not_found__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../client/components/not-found */ \"(ssr)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n/* harmony import */ var _client_components_redirect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../client/components/redirect */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect.js\");\n/* harmony import */ var react_dom_server_edge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom/server.edge */ \"(ssr)/../../node_modules/next/dist/esm/build/webpack/alias/react-dom-server-edge.js\");\n/* harmony import */ var _stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../stream-utils/node-web-streams-helper */ \"(ssr)/../../node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js\");\n/* harmony import */ var _client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../client/components/redirect-status-code */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js\");\n\n\n\n\n\n\n\nfunction makeGetServerInsertedHTML({ polyfills, renderServerInsertedHTML, hasPostponed }) {\n let flushedErrorMetaTagsUntilIndex = 0;\n // If the render had postponed, then we have already flushed the polyfills.\n let polyfillsFlushed = hasPostponed;\n return async function getServerInsertedHTML(serverCapturedErrors) {\n // Loop through all the errors that have been captured but not yet\n // flushed.\n const errorMetaTags = [];\n while(flushedErrorMetaTagsUntilIndex < serverCapturedErrors.length){\n const error = serverCapturedErrors[flushedErrorMetaTagsUntilIndex];\n flushedErrorMetaTagsUntilIndex++;\n if ((0,_client_components_not_found__WEBPACK_IMPORTED_MODULE_2__.isNotFoundError)(error)) {\n errorMetaTags.push(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }, error.digest), true ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"next-error\",\n content: \"not-found\"\n }, \"next-error\") : 0);\n } else if ((0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_3__.isRedirectError)(error)) {\n const redirectUrl = (0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_3__.getURLFromRedirectError)(error);\n const statusCode = (0,_client_components_redirect__WEBPACK_IMPORTED_MODULE_3__.getRedirectStatusCodeFromError)(error);\n const isPermanent = statusCode === _client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_6__.RedirectStatusCode.PermanentRedirect ? true : false;\n if (redirectUrl) {\n errorMetaTags.push(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n httpEquiv: \"refresh\",\n content: `${isPermanent ? 0 : 1};url=${redirectUrl}`\n }, error.digest));\n }\n }\n }\n const stream = await (0,react_dom_server_edge__WEBPACK_IMPORTED_MODULE_4__.renderToReadableStream)(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n !polyfillsFlushed && (polyfills == null ? void 0 : polyfills.map((polyfill)=>{\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"script\", {\n ...polyfill\n }, polyfill.src);\n })),\n renderServerInsertedHTML(),\n errorMetaTags\n ]\n }));\n // Mark polyfills as flushed so they don't get flushed again.\n if (!polyfillsFlushed) polyfillsFlushed = true;\n // Wait for the stream to be ready.\n await stream.allReady;\n return (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_5__.streamToString)(stream);\n };\n} //# sourceMappingURL=make-get-server-inserted-html.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvbWFrZS1nZXQtc2VydmVyLWluc2VydGVkLWh0bWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXNGO0FBQzVEO0FBQzBDO0FBQ3dEO0FBQzdEO0FBQ1U7QUFDUztBQUMzRSxTQUFTYywwQkFBMEIsRUFBRUMsU0FBUyxFQUFFQyx3QkFBd0IsRUFBRUMsWUFBWSxFQUFFO0lBQzNGLElBQUlDLGlDQUFpQztJQUNyQywyRUFBMkU7SUFDM0UsSUFBSUMsbUJBQW1CRjtJQUN2QixPQUFPLGVBQWVHLHNCQUFzQkMsb0JBQW9CO1FBQzVELGtFQUFrRTtRQUNsRSxXQUFXO1FBQ1gsTUFBTUMsZ0JBQWdCLEVBQUU7UUFDeEIsTUFBTUosaUNBQWlDRyxxQkFBcUJFLE1BQU0sQ0FBQztZQUMvRCxNQUFNQyxRQUFRSCxvQkFBb0IsQ0FBQ0gsK0JBQStCO1lBQ2xFQTtZQUNBLElBQUlYLDZFQUFlQSxDQUFDaUIsUUFBUTtnQkFDeEJGLGNBQWNHLElBQUksQ0FBQyxXQUFXLEdBQUd4QixzREFBSUEsQ0FBQyxRQUFRO29CQUMxQ3lCLE1BQU07b0JBQ05DLFNBQVM7Z0JBQ2IsR0FBR0gsTUFBTUksTUFBTSxHQUFHQyxLQUFzQyxHQUFHLFdBQVcsR0FBRzVCLHNEQUFJQSxDQUFDLFFBQVE7b0JBQ2xGeUIsTUFBTTtvQkFDTkMsU0FBUztnQkFDYixHQUFHLGdCQUFnQixDQUFJO1lBQzNCLE9BQU8sSUFBSWxCLDRFQUFlQSxDQUFDZSxRQUFRO2dCQUMvQixNQUFNTSxjQUFjdEIsb0ZBQXVCQSxDQUFDZ0I7Z0JBQzVDLE1BQU1PLGFBQWFyQiwyRkFBOEJBLENBQUNjO2dCQUNsRCxNQUFNUSxjQUFjRCxlQUFlbEIsdUZBQWtCQSxDQUFDb0IsaUJBQWlCLEdBQUcsT0FBTztnQkFDakYsSUFBSUgsYUFBYTtvQkFDYlIsY0FBY0csSUFBSSxDQUFDLFdBQVcsR0FBR3hCLHNEQUFJQSxDQUFDLFFBQVE7d0JBQzFDaUMsV0FBVzt3QkFDWFAsU0FBUyxDQUFDLEVBQUVLLGNBQWMsSUFBSSxFQUFFLEtBQUssRUFBRUYsWUFBWSxDQUFDO29CQUN4RCxHQUFHTixNQUFNSSxNQUFNO2dCQUNuQjtZQUNKO1FBQ0o7UUFDQSxNQUFNTyxTQUFTLE1BQU14Qiw2RUFBc0JBLENBQUMsV0FBVyxHQUFHUix1REFBS0EsQ0FBQ0UsdURBQVNBLEVBQUU7WUFDdkUrQixVQUFVO2dCQUNOLENBQUNqQixvQkFBcUJKLENBQUFBLGFBQWEsT0FBTyxLQUFLLElBQUlBLFVBQVVzQixHQUFHLENBQUMsQ0FBQ0M7b0JBQzlELE9BQU8sV0FBVyxHQUFHckMsc0RBQUlBLENBQUMsVUFBVTt3QkFDaEMsR0FBR3FDLFFBQVE7b0JBQ2YsR0FBR0EsU0FBU0MsR0FBRztnQkFDbkIsRUFBQztnQkFDRHZCO2dCQUNBTTthQUNIO1FBQ0w7UUFDQSw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDSCxrQkFBa0JBLG1CQUFtQjtRQUMxQyxtQ0FBbUM7UUFDbkMsTUFBTWdCLE9BQU9LLFFBQVE7UUFDckIsT0FBTzVCLHFGQUFjQSxDQUFDdUI7SUFDMUI7QUFDSixFQUVBLHlEQUF5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvbWFrZS1nZXQtc2VydmVyLWluc2VydGVkLWh0bWwuanM/ZjM1NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBpc05vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kXCI7XG5pbXBvcnQgeyBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvciwgaXNSZWRpcmVjdEVycm9yLCBnZXRSZWRpcmVjdFN0YXR1c0NvZGVGcm9tRXJyb3IgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3RcIjtcbmltcG9ydCB7IHJlbmRlclRvUmVhZGFibGVTdHJlYW0gfSBmcm9tIFwicmVhY3QtZG9tL3NlcnZlci5lZGdlXCI7XG5pbXBvcnQgeyBzdHJlYW1Ub1N0cmluZyB9IGZyb20gXCIuLi9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXJcIjtcbmltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHZXRTZXJ2ZXJJbnNlcnRlZEhUTUwoeyBwb2x5ZmlsbHMsIHJlbmRlclNlcnZlckluc2VydGVkSFRNTCwgaGFzUG9zdHBvbmVkIH0pIHtcbiAgICBsZXQgZmx1c2hlZEVycm9yTWV0YVRhZ3NVbnRpbEluZGV4ID0gMDtcbiAgICAvLyBJZiB0aGUgcmVuZGVyIGhhZCBwb3N0cG9uZWQsIHRoZW4gd2UgaGF2ZSBhbHJlYWR5IGZsdXNoZWQgdGhlIHBvbHlmaWxscy5cbiAgICBsZXQgcG9seWZpbGxzRmx1c2hlZCA9IGhhc1Bvc3Rwb25lZDtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKHNlcnZlckNhcHR1cmVkRXJyb3JzKSB7XG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBjYXB0dXJlZCBidXQgbm90IHlldFxuICAgICAgICAvLyBmbHVzaGVkLlxuICAgICAgICBjb25zdCBlcnJvck1ldGFUYWdzID0gW107XG4gICAgICAgIHdoaWxlKGZsdXNoZWRFcnJvck1ldGFUYWdzVW50aWxJbmRleCA8IHNlcnZlckNhcHR1cmVkRXJyb3JzLmxlbmd0aCl7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHNlcnZlckNhcHR1cmVkRXJyb3JzW2ZsdXNoZWRFcnJvck1ldGFUYWdzVW50aWxJbmRleF07XG4gICAgICAgICAgICBmbHVzaGVkRXJyb3JNZXRhVGFnc1VudGlsSW5kZXgrKztcbiAgICAgICAgICAgIGlmIChpc05vdEZvdW5kRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXRhVGFncy5wdXNoKC8qI19fUFVSRV9fKi8gX2pzeChcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInJvYm90c1wiLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIm5vaW5kZXhcIlxuICAgICAgICAgICAgICAgIH0sIGVycm9yLmRpZ2VzdCksIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIgPyAvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJuZXh0LWVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwibm90LWZvdW5kXCJcbiAgICAgICAgICAgICAgICB9LCBcIm5leHQtZXJyb3JcIikgOiBudWxsKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNSZWRpcmVjdEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBnZXRSZWRpcmVjdFN0YXR1c0NvZGVGcm9tRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUGVybWFuZW50ID0gc3RhdHVzQ29kZSA9PT0gUmVkaXJlY3RTdGF0dXNDb2RlLlBlcm1hbmVudFJlZGlyZWN0ID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdFVybCkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvck1ldGFUYWdzLnB1c2goLyojX19QVVJFX18qLyBfanN4KFwibWV0YVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwRXF1aXY6IFwicmVmcmVzaFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogYCR7aXNQZXJtYW5lbnQgPyAwIDogMX07dXJsPSR7cmVkaXJlY3RVcmx9YFxuICAgICAgICAgICAgICAgICAgICB9LCBlcnJvci5kaWdlc3QpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgcmVuZGVyVG9SZWFkYWJsZVN0cmVhbSgvKiNfX1BVUkVfXyovIF9qc3hzKF9GcmFnbWVudCwge1xuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAhcG9seWZpbGxzRmx1c2hlZCAmJiAocG9seWZpbGxzID09IG51bGwgPyB2b2lkIDAgOiBwb2x5ZmlsbHMubWFwKChwb2x5ZmlsbCk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChcInNjcmlwdFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wb2x5ZmlsbFxuICAgICAgICAgICAgICAgICAgICB9LCBwb2x5ZmlsbC5zcmMpO1xuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICByZW5kZXJTZXJ2ZXJJbnNlcnRlZEhUTUwoKSxcbiAgICAgICAgICAgICAgICBlcnJvck1ldGFUYWdzXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pKTtcbiAgICAgICAgLy8gTWFyayBwb2x5ZmlsbHMgYXMgZmx1c2hlZCBzbyB0aGV5IGRvbid0IGdldCBmbHVzaGVkIGFnYWluLlxuICAgICAgICBpZiAoIXBvbHlmaWxsc0ZsdXNoZWQpIHBvbHlmaWxsc0ZsdXNoZWQgPSB0cnVlO1xuICAgICAgICAvLyBXYWl0IGZvciB0aGUgc3RyZWFtIHRvIGJlIHJlYWR5LlxuICAgICAgICBhd2FpdCBzdHJlYW0uYWxsUmVhZHk7XG4gICAgICAgIHJldHVybiBzdHJlYW1Ub1N0cmluZyhzdHJlYW0pO1xuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1ha2UtZ2V0LXNlcnZlci1pbnNlcnRlZC1odG1sLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJSZWFjdCIsImlzTm90Rm91bmRFcnJvciIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yIiwicmVuZGVyVG9SZWFkYWJsZVN0cmVhbSIsInN0cmVhbVRvU3RyaW5nIiwiUmVkaXJlY3RTdGF0dXNDb2RlIiwibWFrZUdldFNlcnZlckluc2VydGVkSFRNTCIsInBvbHlmaWxscyIsInJlbmRlclNlcnZlckluc2VydGVkSFRNTCIsImhhc1Bvc3Rwb25lZCIsImZsdXNoZWRFcnJvck1ldGFUYWdzVW50aWxJbmRleCIsInBvbHlmaWxsc0ZsdXNoZWQiLCJnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwiLCJzZXJ2ZXJDYXB0dXJlZEVycm9ycyIsImVycm9yTWV0YVRhZ3MiLCJsZW5ndGgiLCJlcnJvciIsInB1c2giLCJuYW1lIiwiY29udGVudCIsImRpZ2VzdCIsInByb2Nlc3MiLCJyZWRpcmVjdFVybCIsInN0YXR1c0NvZGUiLCJpc1Blcm1hbmVudCIsIlBlcm1hbmVudFJlZGlyZWN0IiwiaHR0cEVxdWl2Iiwic3RyZWFtIiwiY2hpbGRyZW4iLCJtYXAiLCJwb2x5ZmlsbCIsInNyYyIsImFsbFJlYWR5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/make-get-server-inserted-html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/parse-and-validate-flight-router-state.js":
-/*!****************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/parse-and-validate-flight-router-state.js ***!
- \****************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseAndValidateFlightRouterState: () => (/* binding */ parseAndValidateFlightRouterState)\n/* harmony export */ });\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/types.js\");\n/* harmony import */ var next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/compiled/superstruct */ \"(ssr)/../../node_modules/next/dist/compiled/superstruct/index.cjs\");\n/* harmony import */ var next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction parseAndValidateFlightRouterState(stateHeader) {\n if (typeof stateHeader === \"undefined\") {\n return undefined;\n }\n if (Array.isArray(stateHeader)) {\n throw new Error(\"Multiple router state headers were sent. This is not allowed.\");\n }\n // We limit the size of the router state header to ~40kb. This is to prevent\n // a malicious user from sending a very large header and slowing down the\n // resolving of the router state.\n // This is around 2,000 nested or parallel route segment states:\n // '{\"children\":[\"\",{}]}'.length === 20.\n if (stateHeader.length > 20 * 2000) {\n throw new Error(\"The router state header was too large.\");\n }\n try {\n const state = JSON.parse(decodeURIComponent(stateHeader));\n (0,next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_1__.assert)(state, _types__WEBPACK_IMPORTED_MODULE_0__.flightRouterStateSchema);\n return state;\n } catch {\n throw new Error(\"The router state header was sent but could not be parsed.\");\n }\n} //# sourceMappingURL=parse-and-validate-flight-router-state.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcGFyc2UtYW5kLXZhbGlkYXRlLWZsaWdodC1yb3V0ZXItc3RhdGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFrRDtBQUNNO0FBQ2pELFNBQVNFLGtDQUFrQ0MsV0FBVztJQUN6RCxJQUFJLE9BQU9BLGdCQUFnQixhQUFhO1FBQ3BDLE9BQU9DO0lBQ1g7SUFDQSxJQUFJQyxNQUFNQyxPQUFPLENBQUNILGNBQWM7UUFDNUIsTUFBTSxJQUFJSSxNQUFNO0lBQ3BCO0lBQ0EsNEVBQTRFO0lBQzVFLHlFQUF5RTtJQUN6RSxpQ0FBaUM7SUFDakMsZ0VBQWdFO0lBQ2hFLHdDQUF3QztJQUN4QyxJQUFJSixZQUFZSyxNQUFNLEdBQUcsS0FBSyxNQUFNO1FBQ2hDLE1BQU0sSUFBSUQsTUFBTTtJQUNwQjtJQUNBLElBQUk7UUFDQSxNQUFNRSxRQUFRQyxLQUFLQyxLQUFLLENBQUNDLG1CQUFtQlQ7UUFDNUNGLHNFQUFNQSxDQUFDUSxPQUFPVCwyREFBdUJBO1FBQ3JDLE9BQU9TO0lBQ1gsRUFBRSxPQUFPO1FBQ0wsTUFBTSxJQUFJRixNQUFNO0lBQ3BCO0FBQ0osRUFFQSxrRUFBa0UiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL3BhcnNlLWFuZC12YWxpZGF0ZS1mbGlnaHQtcm91dGVyLXN0YXRlLmpzPzQ5ODIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmxpZ2h0Um91dGVyU3RhdGVTY2hlbWEgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9zdXBlcnN0cnVjdFwiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQW5kVmFsaWRhdGVGbGlnaHRSb3V0ZXJTdGF0ZShzdGF0ZUhlYWRlcikge1xuICAgIGlmICh0eXBlb2Ygc3RhdGVIZWFkZXIgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3RhdGVIZWFkZXIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk11bHRpcGxlIHJvdXRlciBzdGF0ZSBoZWFkZXJzIHdlcmUgc2VudC4gVGhpcyBpcyBub3QgYWxsb3dlZC5cIik7XG4gICAgfVxuICAgIC8vIFdlIGxpbWl0IHRoZSBzaXplIG9mIHRoZSByb3V0ZXIgc3RhdGUgaGVhZGVyIHRvIH40MGtiLiBUaGlzIGlzIHRvIHByZXZlbnRcbiAgICAvLyBhIG1hbGljaW91cyB1c2VyIGZyb20gc2VuZGluZyBhIHZlcnkgbGFyZ2UgaGVhZGVyIGFuZCBzbG93aW5nIGRvd24gdGhlXG4gICAgLy8gcmVzb2x2aW5nIG9mIHRoZSByb3V0ZXIgc3RhdGUuXG4gICAgLy8gVGhpcyBpcyBhcm91bmQgMiwwMDAgbmVzdGVkIG9yIHBhcmFsbGVsIHJvdXRlIHNlZ21lbnQgc3RhdGVzOlxuICAgIC8vICd7XCJjaGlsZHJlblwiOltcIlwiLHt9XX0nLmxlbmd0aCA9PT0gMjAuXG4gICAgaWYgKHN0YXRlSGVhZGVyLmxlbmd0aCA+IDIwICogMjAwMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgcm91dGVyIHN0YXRlIGhlYWRlciB3YXMgdG9vIGxhcmdlLlwiKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChzdGF0ZUhlYWRlcikpO1xuICAgICAgICBhc3NlcnQoc3RhdGUsIGZsaWdodFJvdXRlclN0YXRlU2NoZW1hKTtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJvdXRlciBzdGF0ZSBoZWFkZXIgd2FzIHNlbnQgYnV0IGNvdWxkIG5vdCBiZSBwYXJzZWQuXCIpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFyc2UtYW5kLXZhbGlkYXRlLWZsaWdodC1yb3V0ZXItc3RhdGUuanMubWFwIl0sIm5hbWVzIjpbImZsaWdodFJvdXRlclN0YXRlU2NoZW1hIiwiYXNzZXJ0IiwicGFyc2VBbmRWYWxpZGF0ZUZsaWdodFJvdXRlclN0YXRlIiwic3RhdGVIZWFkZXIiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJFcnJvciIsImxlbmd0aCIsInN0YXRlIiwiSlNPTiIsInBhcnNlIiwiZGVjb2RlVVJJQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/parse-and-validate-flight-router-state.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/parse-loader-tree.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/parse-loader-tree.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseLoaderTree: () => (/* binding */ parseLoaderTree)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n\nfunction parseLoaderTree(tree) {\n const [segment, parallelRoutes, components] = tree;\n const { layout } = components;\n let { page } = components;\n // a __DEFAULT__ segment means that this route didn't match any of the\n // segments in the route, so we should use the default page\n page = segment === _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SEGMENT_KEY ? components.defaultPage : page;\n const layoutOrPagePath = (layout == null ? void 0 : layout[1]) || (page == null ? void 0 : page[1]);\n return {\n page,\n segment,\n components,\n layoutOrPagePath,\n parallelRoutes\n };\n} //# sourceMappingURL=parse-loader-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcGFyc2UtbG9hZGVyLXRyZWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBK0Q7QUFDeEQsU0FBU0MsZ0JBQWdCQyxJQUFJO0lBQ2hDLE1BQU0sQ0FBQ0MsU0FBU0MsZ0JBQWdCQyxXQUFXLEdBQUdIO0lBQzlDLE1BQU0sRUFBRUksTUFBTSxFQUFFLEdBQUdEO0lBQ25CLElBQUksRUFBRUUsSUFBSSxFQUFFLEdBQUdGO0lBQ2Ysc0VBQXNFO0lBQ3RFLDJEQUEyRDtJQUMzREUsT0FBT0osWUFBWUgsb0VBQW1CQSxHQUFHSyxXQUFXRyxXQUFXLEdBQUdEO0lBQ2xFLE1BQU1FLG1CQUFtQixDQUFDSCxVQUFVLE9BQU8sS0FBSyxJQUFJQSxNQUFNLENBQUMsRUFBRSxLQUFNQyxDQUFBQSxRQUFRLE9BQU8sS0FBSyxJQUFJQSxJQUFJLENBQUMsRUFBRTtJQUNsRyxPQUFPO1FBQ0hBO1FBQ0FKO1FBQ0FFO1FBQ0FJO1FBQ0FMO0lBQ0o7QUFDSixFQUVBLDZDQUE2QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcGFyc2UtbG9hZGVyLXRyZWUuanM/MDI1OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX1NFR01FTlRfS0VZIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTG9hZGVyVHJlZSh0cmVlKSB7XG4gICAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCBjb21wb25lbnRzXSA9IHRyZWU7XG4gICAgY29uc3QgeyBsYXlvdXQgfSA9IGNvbXBvbmVudHM7XG4gICAgbGV0IHsgcGFnZSB9ID0gY29tcG9uZW50cztcbiAgICAvLyBhIF9fREVGQVVMVF9fIHNlZ21lbnQgbWVhbnMgdGhhdCB0aGlzIHJvdXRlIGRpZG4ndCBtYXRjaCBhbnkgb2YgdGhlXG4gICAgLy8gc2VnbWVudHMgaW4gdGhlIHJvdXRlLCBzbyB3ZSBzaG91bGQgdXNlIHRoZSBkZWZhdWx0IHBhZ2VcbiAgICBwYWdlID0gc2VnbWVudCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWSA/IGNvbXBvbmVudHMuZGVmYXVsdFBhZ2UgOiBwYWdlO1xuICAgIGNvbnN0IGxheW91dE9yUGFnZVBhdGggPSAobGF5b3V0ID09IG51bGwgPyB2b2lkIDAgOiBsYXlvdXRbMV0pIHx8IChwYWdlID09IG51bGwgPyB2b2lkIDAgOiBwYWdlWzFdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYWdlLFxuICAgICAgICBzZWdtZW50LFxuICAgICAgICBjb21wb25lbnRzLFxuICAgICAgICBsYXlvdXRPclBhZ2VQYXRoLFxuICAgICAgICBwYXJhbGxlbFJvdXRlc1xuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLWxvYWRlci10cmVlLmpzLm1hcCJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwicGFyc2VMb2FkZXJUcmVlIiwidHJlZSIsInNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlcyIsImNvbXBvbmVudHMiLCJsYXlvdXQiLCJwYWdlIiwiZGVmYXVsdFBhZ2UiLCJsYXlvdXRPclBhZ2VQYXRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/parse-loader-tree.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/required-scripts.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/required-scripts.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getRequiredScripts: () => (/* binding */ getRequiredScripts)\n/* harmony export */ });\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n\nfunction getRequiredScripts(buildManifest, assetPrefix, crossOrigin, SRIManifest, qs, nonce) {\n let preinitScripts;\n let preinitScriptCommands = [];\n const bootstrapScript = {\n src: \"\",\n crossOrigin\n };\n const files = buildManifest.rootMainFiles;\n if (files.length === 0) {\n throw new Error(\"Invariant: missing bootstrap script. This is a bug in Next.js\");\n }\n if (SRIManifest) {\n bootstrapScript.src = `${assetPrefix}/_next/` + files[0] + qs;\n bootstrapScript.integrity = SRIManifest[files[0]];\n for(let i = 1; i < files.length; i++){\n const src = `${assetPrefix}/_next/` + files[i] + qs;\n const integrity = SRIManifest[files[i]];\n preinitScriptCommands.push(src, integrity);\n }\n preinitScripts = ()=>{\n // preinitScriptCommands is a double indexed array of src/integrity pairs\n for(let i = 0; i < preinitScriptCommands.length; i += 2){\n react_dom__WEBPACK_IMPORTED_MODULE_0__.preinit(preinitScriptCommands[i], {\n as: \"script\",\n integrity: preinitScriptCommands[i + 1],\n crossOrigin,\n nonce\n });\n }\n };\n } else {\n bootstrapScript.src = `${assetPrefix}/_next/` + files[0] + qs;\n for(let i = 1; i < files.length; i++){\n const src = `${assetPrefix}/_next/` + files[i] + qs;\n preinitScriptCommands.push(src);\n }\n preinitScripts = ()=>{\n // preinitScriptCommands is a singled indexed array of src values\n for(let i = 0; i < preinitScriptCommands.length; i++){\n react_dom__WEBPACK_IMPORTED_MODULE_0__.preinit(preinitScriptCommands[i], {\n as: \"script\",\n nonce,\n crossOrigin\n });\n }\n };\n }\n return [\n preinitScripts,\n bootstrapScript\n ];\n} //# sourceMappingURL=required-scripts.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcmVxdWlyZWQtc2NyaXB0cy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpQztBQUMxQixTQUFTQyxtQkFBbUJDLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLFdBQVcsRUFBRUMsRUFBRSxFQUFFQyxLQUFLO0lBQzlGLElBQUlDO0lBQ0osSUFBSUMsd0JBQXdCLEVBQUU7SUFDOUIsTUFBTUMsa0JBQWtCO1FBQ3BCQyxLQUFLO1FBQ0xQO0lBQ0o7SUFDQSxNQUFNUSxRQUFRVixjQUFjVyxhQUFhO0lBQ3pDLElBQUlELE1BQU1FLE1BQU0sS0FBSyxHQUFHO1FBQ3BCLE1BQU0sSUFBSUMsTUFBTTtJQUNwQjtJQUNBLElBQUlWLGFBQWE7UUFDYkssZ0JBQWdCQyxHQUFHLEdBQUcsQ0FBQyxFQUFFUixZQUFZLE9BQU8sQ0FBQyxHQUFHUyxLQUFLLENBQUMsRUFBRSxHQUFHTjtRQUMzREksZ0JBQWdCTSxTQUFTLEdBQUdYLFdBQVcsQ0FBQ08sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxJQUFJLElBQUlLLElBQUksR0FBR0EsSUFBSUwsTUFBTUUsTUFBTSxFQUFFRyxJQUFJO1lBQ2pDLE1BQU1OLE1BQU0sQ0FBQyxFQUFFUixZQUFZLE9BQU8sQ0FBQyxHQUFHUyxLQUFLLENBQUNLLEVBQUUsR0FBR1g7WUFDakQsTUFBTVUsWUFBWVgsV0FBVyxDQUFDTyxLQUFLLENBQUNLLEVBQUUsQ0FBQztZQUN2Q1Isc0JBQXNCUyxJQUFJLENBQUNQLEtBQUtLO1FBQ3BDO1FBQ0FSLGlCQUFpQjtZQUNiLHlFQUF5RTtZQUN6RSxJQUFJLElBQUlTLElBQUksR0FBR0EsSUFBSVIsc0JBQXNCSyxNQUFNLEVBQUVHLEtBQUssRUFBRTtnQkFDcERqQiw4Q0FBZ0IsQ0FBQ1MscUJBQXFCLENBQUNRLEVBQUUsRUFBRTtvQkFDdkNHLElBQUk7b0JBQ0pKLFdBQVdQLHFCQUFxQixDQUFDUSxJQUFJLEVBQUU7b0JBQ3ZDYjtvQkFDQUc7Z0JBQ0o7WUFDSjtRQUNKO0lBQ0osT0FBTztRQUNIRyxnQkFBZ0JDLEdBQUcsR0FBRyxDQUFDLEVBQUVSLFlBQVksT0FBTyxDQUFDLEdBQUdTLEtBQUssQ0FBQyxFQUFFLEdBQUdOO1FBQzNELElBQUksSUFBSVcsSUFBSSxHQUFHQSxJQUFJTCxNQUFNRSxNQUFNLEVBQUVHLElBQUk7WUFDakMsTUFBTU4sTUFBTSxDQUFDLEVBQUVSLFlBQVksT0FBTyxDQUFDLEdBQUdTLEtBQUssQ0FBQ0ssRUFBRSxHQUFHWDtZQUNqREcsc0JBQXNCUyxJQUFJLENBQUNQO1FBQy9CO1FBQ0FILGlCQUFpQjtZQUNiLGlFQUFpRTtZQUNqRSxJQUFJLElBQUlTLElBQUksR0FBR0EsSUFBSVIsc0JBQXNCSyxNQUFNLEVBQUVHLElBQUk7Z0JBQ2pEakIsOENBQWdCLENBQUNTLHFCQUFxQixDQUFDUSxFQUFFLEVBQUU7b0JBQ3ZDRyxJQUFJO29CQUNKYjtvQkFDQUg7Z0JBQ0o7WUFDSjtRQUNKO0lBQ0o7SUFDQSxPQUFPO1FBQ0hJO1FBQ0FFO0tBQ0g7QUFDTCxFQUVBLDRDQUE0QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcmVxdWlyZWQtc2NyaXB0cy5qcz9mZWZjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVxdWlyZWRTY3JpcHRzKGJ1aWxkTWFuaWZlc3QsIGFzc2V0UHJlZml4LCBjcm9zc09yaWdpbiwgU1JJTWFuaWZlc3QsIHFzLCBub25jZSkge1xuICAgIGxldCBwcmVpbml0U2NyaXB0cztcbiAgICBsZXQgcHJlaW5pdFNjcmlwdENvbW1hbmRzID0gW107XG4gICAgY29uc3QgYm9vdHN0cmFwU2NyaXB0ID0ge1xuICAgICAgICBzcmM6IFwiXCIsXG4gICAgICAgIGNyb3NzT3JpZ2luXG4gICAgfTtcbiAgICBjb25zdCBmaWxlcyA9IGJ1aWxkTWFuaWZlc3Qucm9vdE1haW5GaWxlcztcbiAgICBpZiAoZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogbWlzc2luZyBib290c3RyYXAgc2NyaXB0LiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanNcIik7XG4gICAgfVxuICAgIGlmIChTUklNYW5pZmVzdCkge1xuICAgICAgICBib290c3RyYXBTY3JpcHQuc3JjID0gYCR7YXNzZXRQcmVmaXh9L19uZXh0L2AgKyBmaWxlc1swXSArIHFzO1xuICAgICAgICBib290c3RyYXBTY3JpcHQuaW50ZWdyaXR5ID0gU1JJTWFuaWZlc3RbZmlsZXNbMF1dO1xuICAgICAgICBmb3IobGV0IGkgPSAxOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgY29uc3Qgc3JjID0gYCR7YXNzZXRQcmVmaXh9L19uZXh0L2AgKyBmaWxlc1tpXSArIHFzO1xuICAgICAgICAgICAgY29uc3QgaW50ZWdyaXR5ID0gU1JJTWFuaWZlc3RbZmlsZXNbaV1dO1xuICAgICAgICAgICAgcHJlaW5pdFNjcmlwdENvbW1hbmRzLnB1c2goc3JjLCBpbnRlZ3JpdHkpO1xuICAgICAgICB9XG4gICAgICAgIHByZWluaXRTY3JpcHRzID0gKCk9PntcbiAgICAgICAgICAgIC8vIHByZWluaXRTY3JpcHRDb21tYW5kcyBpcyBhIGRvdWJsZSBpbmRleGVkIGFycmF5IG9mIHNyYy9pbnRlZ3JpdHkgcGFpcnNcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBwcmVpbml0U2NyaXB0Q29tbWFuZHMubGVuZ3RoOyBpICs9IDIpe1xuICAgICAgICAgICAgICAgIFJlYWN0RE9NLnByZWluaXQocHJlaW5pdFNjcmlwdENvbW1hbmRzW2ldLCB7XG4gICAgICAgICAgICAgICAgICAgIGFzOiBcInNjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBpbnRlZ3JpdHk6IHByZWluaXRTY3JpcHRDb21tYW5kc1tpICsgMV0sXG4gICAgICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICBub25jZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGJvb3RzdHJhcFNjcmlwdC5zcmMgPSBgJHthc3NldFByZWZpeH0vX25leHQvYCArIGZpbGVzWzBdICsgcXM7XG4gICAgICAgIGZvcihsZXQgaSA9IDE7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zdCBzcmMgPSBgJHthc3NldFByZWZpeH0vX25leHQvYCArIGZpbGVzW2ldICsgcXM7XG4gICAgICAgICAgICBwcmVpbml0U2NyaXB0Q29tbWFuZHMucHVzaChzcmMpO1xuICAgICAgICB9XG4gICAgICAgIHByZWluaXRTY3JpcHRzID0gKCk9PntcbiAgICAgICAgICAgIC8vIHByZWluaXRTY3JpcHRDb21tYW5kcyBpcyBhIHNpbmdsZWQgaW5kZXhlZCBhcnJheSBvZiBzcmMgdmFsdWVzXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJlaW5pdFNjcmlwdENvbW1hbmRzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICBSZWFjdERPTS5wcmVpbml0KHByZWluaXRTY3JpcHRDb21tYW5kc1tpXSwge1xuICAgICAgICAgICAgICAgICAgICBhczogXCJzY3JpcHRcIixcbiAgICAgICAgICAgICAgICAgICAgbm9uY2UsXG4gICAgICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIHByZWluaXRTY3JpcHRzLFxuICAgICAgICBib290c3RyYXBTY3JpcHRcbiAgICBdO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1aXJlZC1zY3JpcHRzLmpzLm1hcCJdLCJuYW1lcyI6WyJSZWFjdERPTSIsImdldFJlcXVpcmVkU2NyaXB0cyIsImJ1aWxkTWFuaWZlc3QiLCJhc3NldFByZWZpeCIsImNyb3NzT3JpZ2luIiwiU1JJTWFuaWZlc3QiLCJxcyIsIm5vbmNlIiwicHJlaW5pdFNjcmlwdHMiLCJwcmVpbml0U2NyaXB0Q29tbWFuZHMiLCJib290c3RyYXBTY3JpcHQiLCJzcmMiLCJmaWxlcyIsInJvb3RNYWluRmlsZXMiLCJsZW5ndGgiLCJFcnJvciIsImludGVncml0eSIsImkiLCJwdXNoIiwicHJlaW5pdCIsImFzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/required-scripts.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/server-inserted-html.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/server-inserted-html.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createServerInsertedHTML: () => (/* binding */ createServerInsertedHTML)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/lib/server-inserted-html.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js\");\n// Provider for the `useServerInsertedHTML` API to register callbacks to insert\n// elements into the HTML stream.\n\n\n\nfunction createServerInsertedHTML() {\n const serverInsertedHTMLCallbacks = [];\n const addInsertedHtml = (handler)=>{\n serverInsertedHTMLCallbacks.push(handler);\n };\n return {\n ServerInsertedHTMLProvider ({ children }) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.ServerInsertedHTMLContext.Provider, {\n value: addInsertedHtml,\n children: children\n });\n },\n renderServerInsertedHTML () {\n return serverInsertedHTMLCallbacks.map((callback, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), {\n children: callback()\n }, \"__next_server_inserted__\" + index));\n }\n };\n} //# sourceMappingURL=server-inserted-html.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvc2VydmVyLWluc2VydGVkLWh0bWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSwrRUFBK0U7QUFDL0UsaUNBQWlDO0FBQ2U7QUFDdEI7QUFDdUU7QUFDMUYsU0FBU0k7SUFDWixNQUFNQyw4QkFBOEIsRUFBRTtJQUN0QyxNQUFNQyxrQkFBa0IsQ0FBQ0M7UUFDckJGLDRCQUE0QkcsSUFBSSxDQUFDRDtJQUNyQztJQUNBLE9BQU87UUFDSEUsNEJBQTRCLEVBQUVDLFFBQVEsRUFBRTtZQUNwQyxPQUFPLFdBQVcsR0FBR1Qsc0RBQUlBLENBQUNFLHNHQUF5QkEsQ0FBQ1EsUUFBUSxFQUFFO2dCQUMxREMsT0FBT047Z0JBQ1BJLFVBQVVBO1lBQ2Q7UUFDSjtRQUNBRztZQUNJLE9BQU9SLDRCQUE0QlMsR0FBRyxDQUFDLENBQUNDLFVBQVVDLFFBQVEsV0FBVyxHQUFHZixzREFBSUEsQ0FBQ0MsdURBQWMsRUFBRTtvQkFDckZRLFVBQVVLO2dCQUNkLEdBQUcsNkJBQTZCQztRQUN4QztJQUNKO0FBQ0osRUFFQSxnREFBZ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL3NlcnZlci1pbnNlcnRlZC1odG1sLmpzPzI2ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUHJvdmlkZXIgZm9yIHRoZSBgdXNlU2VydmVySW5zZXJ0ZWRIVE1MYCBBUEkgdG8gcmVnaXN0ZXIgY2FsbGJhY2tzIHRvIGluc2VydFxuLy8gZWxlbWVudHMgaW50byB0aGUgSFRNTCBzdHJlYW0uXG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3NlcnZlci1pbnNlcnRlZC1odG1sLnNoYXJlZC1ydW50aW1lXCI7XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmVySW5zZXJ0ZWRIVE1MKCkge1xuICAgIGNvbnN0IHNlcnZlckluc2VydGVkSFRNTENhbGxiYWNrcyA9IFtdO1xuICAgIGNvbnN0IGFkZEluc2VydGVkSHRtbCA9IChoYW5kbGVyKT0+e1xuICAgICAgICBzZXJ2ZXJJbnNlcnRlZEhUTUxDYWxsYmFja3MucHVzaChoYW5kbGVyKTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIFNlcnZlckluc2VydGVkSFRNTFByb3ZpZGVyICh7IGNoaWxkcmVuIH0pIHtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBhZGRJbnNlcnRlZEh0bWwsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVyU2VydmVySW5zZXJ0ZWRIVE1MICgpIHtcbiAgICAgICAgICAgIHJldHVybiBzZXJ2ZXJJbnNlcnRlZEhUTUxDYWxsYmFja3MubWFwKChjYWxsYmFjaywgaW5kZXgpPT4vKiNfX1BVUkVfXyovIF9qc3goUmVhY3QuRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGNhbGxiYWNrKClcbiAgICAgICAgICAgICAgICB9LCBcIl9fbmV4dF9zZXJ2ZXJfaW5zZXJ0ZWRfX1wiICsgaW5kZXgpKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcnZlci1pbnNlcnRlZC1odG1sLmpzLm1hcCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJTZXJ2ZXJJbnNlcnRlZEhUTUxDb250ZXh0IiwiY3JlYXRlU2VydmVySW5zZXJ0ZWRIVE1MIiwic2VydmVySW5zZXJ0ZWRIVE1MQ2FsbGJhY2tzIiwiYWRkSW5zZXJ0ZWRIdG1sIiwiaGFuZGxlciIsInB1c2giLCJTZXJ2ZXJJbnNlcnRlZEhUTUxQcm92aWRlciIsImNoaWxkcmVuIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInJlbmRlclNlcnZlckluc2VydGVkSFRNTCIsIm1hcCIsImNhbGxiYWNrIiwiaW5kZXgiLCJGcmFnbWVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/server-inserted-html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/static/static-renderer.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/static/static-renderer.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ServerRenderer: () => (/* binding */ ServerRenderer),\n/* harmony export */ createStaticRenderer: () => (/* binding */ createStaticRenderer)\n/* harmony export */ });\nclass StaticRenderer {\n constructor(options){\n this.options = options;\n this.prerender = false ? 0 : null;\n }\n async render(children) {\n const { prelude, postponed } = await this.prerender(children, this.options);\n return {\n stream: prelude,\n postponed\n };\n }\n}\nclass StaticResumeRenderer {\n constructor(postponed, options){\n this.postponed = postponed;\n this.options = options;\n this.resume = (__webpack_require__(/*! react-dom/server.edge */ \"(ssr)/../../node_modules/next/dist/esm/build/webpack/alias/react-dom-server-edge.js\").resume);\n }\n async render(children) {\n const stream = await this.resume(children, this.postponed, this.options);\n return {\n stream\n };\n }\n}\nclass ServerRenderer {\n constructor(options){\n this.options = options;\n this.renderToReadableStream = (__webpack_require__(/*! react-dom/server.edge */ \"(ssr)/../../node_modules/next/dist/esm/build/webpack/alias/react-dom-server-edge.js\").renderToReadableStream);\n }\n async render(children) {\n const stream = await this.renderToReadableStream(children, this.options);\n return {\n stream\n };\n }\n}\nfunction createStaticRenderer({ ppr, isStaticGeneration, postponed, streamOptions: { onError, onHeaders, maxHeadersLength, nonce, bootstrapScripts, formState } }) {\n if (ppr) {\n if (isStaticGeneration) {\n return new StaticRenderer({\n onError,\n onHeaders,\n maxHeadersLength,\n bootstrapScripts\n });\n }\n if (postponed) {\n return new StaticResumeRenderer(postponed, {\n onError,\n nonce\n });\n }\n }\n return new ServerRenderer({\n onError,\n onHeaders,\n maxHeadersLength,\n nonce,\n bootstrapScripts,\n formState\n });\n} //# sourceMappingURL=static-renderer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvc3RhdGljL3N0YXRpYy1yZW5kZXJlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLE1BQU1BO0lBQ0ZDLFlBQVlDLE9BQU8sQ0FBQztRQUNoQixJQUFJLENBQUNBLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFNBQVMsR0FBR0MsTUFBcUMsR0FBR0csQ0FBMEMsR0FBRztJQUMxRztJQUNBLE1BQU1DLE9BQU9DLFFBQVEsRUFBRTtRQUNuQixNQUFNLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUNSLFNBQVMsQ0FBQ00sVUFBVSxJQUFJLENBQUNQLE9BQU87UUFDMUUsT0FBTztZQUNIVSxRQUFRRjtZQUNSQztRQUNKO0lBQ0o7QUFDSjtBQUNBLE1BQU1FO0lBQ0ZaLFlBQVlVLFNBQVMsRUFBRVQsT0FBTyxDQUFDO1FBQzNCLElBQUksQ0FBQ1MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNULE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNZLE1BQU0sR0FBR1AsZ0pBQXVDO0lBQ3pEO0lBQ0EsTUFBTUMsT0FBT0MsUUFBUSxFQUFFO1FBQ25CLE1BQU1HLFNBQVMsTUFBTSxJQUFJLENBQUNFLE1BQU0sQ0FBQ0wsVUFBVSxJQUFJLENBQUNFLFNBQVMsRUFBRSxJQUFJLENBQUNULE9BQU87UUFDdkUsT0FBTztZQUNIVTtRQUNKO0lBQ0o7QUFDSjtBQUNPLE1BQU1HO0lBQ1RkLFlBQVlDLE9BQU8sQ0FBQztRQUNoQixJQUFJLENBQUNBLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNjLHNCQUFzQixHQUFHVCxnS0FBdUQ7SUFDekY7SUFDQSxNQUFNQyxPQUFPQyxRQUFRLEVBQUU7UUFDbkIsTUFBTUcsU0FBUyxNQUFNLElBQUksQ0FBQ0ksc0JBQXNCLENBQUNQLFVBQVUsSUFBSSxDQUFDUCxPQUFPO1FBQ3ZFLE9BQU87WUFDSFU7UUFDSjtJQUNKO0FBQ0o7QUFDTyxTQUFTSyxxQkFBcUIsRUFBRUMsR0FBRyxFQUFFQyxrQkFBa0IsRUFBRVIsU0FBUyxFQUFFUyxlQUFlLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxnQkFBZ0IsRUFBRUMsS0FBSyxFQUFFQyxnQkFBZ0IsRUFBRUMsU0FBUyxFQUFFLEVBQUU7SUFDcEssSUFBSVIsS0FBSztRQUNMLElBQUlDLG9CQUFvQjtZQUNwQixPQUFPLElBQUluQixlQUFlO2dCQUN0QnFCO2dCQUNBQztnQkFDQUM7Z0JBQ0FFO1lBQ0o7UUFDSjtRQUNBLElBQUlkLFdBQVc7WUFDWCxPQUFPLElBQUlFLHFCQUFxQkYsV0FBVztnQkFDdkNVO2dCQUNBRztZQUNKO1FBQ0o7SUFDSjtJQUNBLE9BQU8sSUFBSVQsZUFBZTtRQUN0Qk07UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7SUFDSjtBQUNKLEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9zdGF0aWMvc3RhdGljLXJlbmRlcmVyLmpzP2MyYjAiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgU3RhdGljUmVuZGVyZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpe1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnByZXJlbmRlciA9IHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QgPyByZXF1aXJlKFwicmVhY3QtZG9tL3N0YXRpYy5lZGdlXCIpLnByZXJlbmRlciA6IG51bGw7XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlcihjaGlsZHJlbikge1xuICAgICAgICBjb25zdCB7IHByZWx1ZGUsIHBvc3Rwb25lZCB9ID0gYXdhaXQgdGhpcy5wcmVyZW5kZXIoY2hpbGRyZW4sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdHJlYW06IHByZWx1ZGUsXG4gICAgICAgICAgICBwb3N0cG9uZWRcbiAgICAgICAgfTtcbiAgICB9XG59XG5jbGFzcyBTdGF0aWNSZXN1bWVSZW5kZXJlciB7XG4gICAgY29uc3RydWN0b3IocG9zdHBvbmVkLCBvcHRpb25zKXtcbiAgICAgICAgdGhpcy5wb3N0cG9uZWQgPSBwb3N0cG9uZWQ7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMucmVzdW1lID0gcmVxdWlyZShcInJlYWN0LWRvbS9zZXJ2ZXIuZWRnZVwiKS5yZXN1bWU7XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlcihjaGlsZHJlbikge1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCB0aGlzLnJlc3VtZShjaGlsZHJlbiwgdGhpcy5wb3N0cG9uZWQsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdHJlYW1cbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgU2VydmVyUmVuZGVyZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpe1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlbmRlclRvUmVhZGFibGVTdHJlYW0gPSByZXF1aXJlKFwicmVhY3QtZG9tL3NlcnZlci5lZGdlXCIpLnJlbmRlclRvUmVhZGFibGVTdHJlYW07XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlcihjaGlsZHJlbikge1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCB0aGlzLnJlbmRlclRvUmVhZGFibGVTdHJlYW0oY2hpbGRyZW4sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdHJlYW1cbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RhdGljUmVuZGVyZXIoeyBwcHIsIGlzU3RhdGljR2VuZXJhdGlvbiwgcG9zdHBvbmVkLCBzdHJlYW1PcHRpb25zOiB7IG9uRXJyb3IsIG9uSGVhZGVycywgbWF4SGVhZGVyc0xlbmd0aCwgbm9uY2UsIGJvb3RzdHJhcFNjcmlwdHMsIGZvcm1TdGF0ZSB9IH0pIHtcbiAgICBpZiAocHByKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU3RhdGljUmVuZGVyZXIoe1xuICAgICAgICAgICAgICAgIG9uRXJyb3IsXG4gICAgICAgICAgICAgICAgb25IZWFkZXJzLFxuICAgICAgICAgICAgICAgIG1heEhlYWRlcnNMZW5ndGgsXG4gICAgICAgICAgICAgICAgYm9vdHN0cmFwU2NyaXB0c1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvc3Rwb25lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTdGF0aWNSZXN1bWVSZW5kZXJlcihwb3N0cG9uZWQsIHtcbiAgICAgICAgICAgICAgICBvbkVycm9yLFxuICAgICAgICAgICAgICAgIG5vbmNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFNlcnZlclJlbmRlcmVyKHtcbiAgICAgICAgb25FcnJvcixcbiAgICAgICAgb25IZWFkZXJzLFxuICAgICAgICBtYXhIZWFkZXJzTGVuZ3RoLFxuICAgICAgICBub25jZSxcbiAgICAgICAgYm9vdHN0cmFwU2NyaXB0cyxcbiAgICAgICAgZm9ybVN0YXRlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXRpYy1yZW5kZXJlci5qcy5tYXAiXSwibmFtZXMiOlsiU3RhdGljUmVuZGVyZXIiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJwcmVyZW5kZXIiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0VYUEVSSU1FTlRBTF9SRUFDVCIsInJlcXVpcmUiLCJyZW5kZXIiLCJjaGlsZHJlbiIsInByZWx1ZGUiLCJwb3N0cG9uZWQiLCJzdHJlYW0iLCJTdGF0aWNSZXN1bWVSZW5kZXJlciIsInJlc3VtZSIsIlNlcnZlclJlbmRlcmVyIiwicmVuZGVyVG9SZWFkYWJsZVN0cmVhbSIsImNyZWF0ZVN0YXRpY1JlbmRlcmVyIiwicHByIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwic3RyZWFtT3B0aW9ucyIsIm9uRXJyb3IiLCJvbkhlYWRlcnMiLCJtYXhIZWFkZXJzTGVuZ3RoIiwibm9uY2UiLCJib290c3RyYXBTY3JpcHRzIiwiZm9ybVN0YXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/static/static-renderer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/strip-flight-headers.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/strip-flight-headers.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stripFlightHeaders: () => (/* binding */ stripFlightHeaders)\n/* harmony export */ });\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n\n/**\n * Removes the flight headers from the request.\n *\n * @param req the request to strip the headers from\n */ function stripFlightHeaders(headers) {\n for (const [header] of _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.FLIGHT_PARAMETERS){\n delete headers[header.toLowerCase()];\n }\n} //# sourceMappingURL=strip-flight-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvc3RyaXAtZmxpZ2h0LWhlYWRlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBK0U7QUFDL0U7Ozs7Q0FJQyxHQUFVLFNBQVNDLG1CQUFtQkMsT0FBTztJQUMxQyxLQUFLLE1BQU0sQ0FBQ0MsT0FBTyxJQUFJSCxvRkFBaUJBLENBQUM7UUFDckMsT0FBT0UsT0FBTyxDQUFDQyxPQUFPQyxXQUFXLEdBQUc7SUFDeEM7QUFDSixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvc3RyaXAtZmxpZ2h0LWhlYWRlcnMuanM/ZWU5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTElHSFRfUEFSQU1FVEVSUyB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbi8qKlxuICogUmVtb3ZlcyB0aGUgZmxpZ2h0IGhlYWRlcnMgZnJvbSB0aGUgcmVxdWVzdC5cbiAqXG4gKiBAcGFyYW0gcmVxIHRoZSByZXF1ZXN0IHRvIHN0cmlwIHRoZSBoZWFkZXJzIGZyb21cbiAqLyBleHBvcnQgZnVuY3Rpb24gc3RyaXBGbGlnaHRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBmb3IgKGNvbnN0IFtoZWFkZXJdIG9mIEZMSUdIVF9QQVJBTUVURVJTKXtcbiAgICAgICAgZGVsZXRlIGhlYWRlcnNbaGVhZGVyLnRvTG93ZXJDYXNlKCldO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RyaXAtZmxpZ2h0LWhlYWRlcnMuanMubWFwIl0sIm5hbWVzIjpbIkZMSUdIVF9QQVJBTUVURVJTIiwic3RyaXBGbGlnaHRIZWFkZXJzIiwiaGVhZGVycyIsImhlYWRlciIsInRvTG93ZXJDYXNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/strip-flight-headers.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/types.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/types.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ flightRouterStateSchema: () => (/* binding */ flightRouterStateSchema)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/superstruct */ \"(ssr)/../../node_modules/next/dist/compiled/superstruct/index.cjs\");\n/* harmony import */ var next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0__);\n\nconst dynamicParamTypesSchema = next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().enums([\n \"c\",\n \"oc\",\n \"d\"\n]);\nconst segmentSchema = next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().union([\n next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().string(),\n next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().tuple([\n next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().string(),\n next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().string(),\n dynamicParamTypesSchema\n ])\n]);\n// unfortunately the tuple is not understood well by Describe so we have to\n// use any here. This does not have any impact on the runtime type since the validation\n// does work correctly.\nconst flightRouterStateSchema = next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().tuple([\n segmentSchema,\n next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().record(next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().string(), next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().lazy(()=>flightRouterStateSchema)),\n next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().optional(next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().nullable(next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().string())),\n next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().optional(next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().nullable(next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().literal(\"refetch\"))),\n next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().optional(next_dist_compiled_superstruct__WEBPACK_IMPORTED_MODULE_0___default().boolean())\n]); //# sourceMappingURL=types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQStDO0FBQy9DLE1BQU1DLDBCQUEwQkQsMkVBQU8sQ0FBQztJQUNwQztJQUNBO0lBQ0E7Q0FDSDtBQUNELE1BQU1HLGdCQUFnQkgsMkVBQU8sQ0FBQztJQUMxQkEsNEVBQVE7SUFDUkEsMkVBQU8sQ0FBQztRQUNKQSw0RUFBUTtRQUNSQSw0RUFBUTtRQUNSQztLQUNIO0NBQ0o7QUFDRCwyRUFBMkU7QUFDM0UsdUZBQXVGO0FBQ3ZGLHVCQUF1QjtBQUNoQixNQUFNTSwwQkFBMEJQLDJFQUFPLENBQUM7SUFDM0NHO0lBQ0FILDRFQUFRLENBQUNBLDRFQUFRLElBQUlBLDBFQUFNLENBQUMsSUFBSU87SUFDaENQLDhFQUFVLENBQUNBLDhFQUFVLENBQUNBLDRFQUFRO0lBQzlCQSw4RUFBVSxDQUFDQSw4RUFBVSxDQUFDQSw2RUFBUyxDQUFDO0lBQ2hDQSw4RUFBVSxDQUFDQSw2RUFBUztDQUN2QixFQUFFLENBRUgsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcy5qcz81ODk5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzIGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvc3VwZXJzdHJ1Y3RcIjtcbmNvbnN0IGR5bmFtaWNQYXJhbVR5cGVzU2NoZW1hID0gcy5lbnVtcyhbXG4gICAgXCJjXCIsXG4gICAgXCJvY1wiLFxuICAgIFwiZFwiXG5dKTtcbmNvbnN0IHNlZ21lbnRTY2hlbWEgPSBzLnVuaW9uKFtcbiAgICBzLnN0cmluZygpLFxuICAgIHMudHVwbGUoW1xuICAgICAgICBzLnN0cmluZygpLFxuICAgICAgICBzLnN0cmluZygpLFxuICAgICAgICBkeW5hbWljUGFyYW1UeXBlc1NjaGVtYVxuICAgIF0pXG5dKTtcbi8vIHVuZm9ydHVuYXRlbHkgdGhlIHR1cGxlIGlzIG5vdCB1bmRlcnN0b29kIHdlbGwgYnkgRGVzY3JpYmUgc28gd2UgaGF2ZSB0b1xuLy8gdXNlIGFueSBoZXJlLiBUaGlzIGRvZXMgbm90IGhhdmUgYW55IGltcGFjdCBvbiB0aGUgcnVudGltZSB0eXBlIHNpbmNlIHRoZSB2YWxpZGF0aW9uXG4vLyBkb2VzIHdvcmsgY29ycmVjdGx5LlxuZXhwb3J0IGNvbnN0IGZsaWdodFJvdXRlclN0YXRlU2NoZW1hID0gcy50dXBsZShbXG4gICAgc2VnbWVudFNjaGVtYSxcbiAgICBzLnJlY29yZChzLnN0cmluZygpLCBzLmxhenkoKCk9PmZsaWdodFJvdXRlclN0YXRlU2NoZW1hKSksXG4gICAgcy5vcHRpb25hbChzLm51bGxhYmxlKHMuc3RyaW5nKCkpKSxcbiAgICBzLm9wdGlvbmFsKHMubnVsbGFibGUocy5saXRlcmFsKFwicmVmZXRjaFwiKSkpLFxuICAgIHMub3B0aW9uYWwocy5ib29sZWFuKCkpXG5dKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHlwZXMuanMubWFwIl0sIm5hbWVzIjpbInMiLCJkeW5hbWljUGFyYW1UeXBlc1NjaGVtYSIsImVudW1zIiwic2VnbWVudFNjaGVtYSIsInVuaW9uIiwic3RyaW5nIiwidHVwbGUiLCJmbGlnaHRSb3V0ZXJTdGF0ZVNjaGVtYSIsInJlY29yZCIsImxhenkiLCJvcHRpb25hbCIsIm51bGxhYmxlIiwibGl0ZXJhbCIsImJvb2xlYW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/types.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/use-flight-response.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/use-flight-response.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useFlightResponse: () => (/* binding */ useFlightResponse)\n/* harmony export */ });\n/* harmony import */ var _htmlescape__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../htmlescape */ \"(ssr)/../../node_modules/next/dist/esm/server/htmlescape.js\");\n/* harmony import */ var _stream_utils_encode_decode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stream-utils/encode-decode */ \"(ssr)/../../node_modules/next/dist/esm/server/stream-utils/encode-decode.js\");\n\n\nconst isEdgeRuntime = \"edge\" === \"edge\";\nconst INLINE_FLIGHT_PAYLOAD_BOOTSTRAP = 0;\nconst INLINE_FLIGHT_PAYLOAD_DATA = 1;\nconst INLINE_FLIGHT_PAYLOAD_FORM_STATE = 2;\nfunction createFlightTransformer(nonce, formState) {\n const startScriptTag = nonce ? `<script nonce=${JSON.stringify(nonce)}>` : \"<script>\";\n return new TransformStream({\n // Bootstrap the flight information.\n start (controller) {\n controller.enqueue(`${startScriptTag}(self.__next_f=self.__next_f||[]).push(${(0,_htmlescape__WEBPACK_IMPORTED_MODULE_0__.htmlEscapeJsonString)(JSON.stringify([\n INLINE_FLIGHT_PAYLOAD_BOOTSTRAP\n ]))});self.__next_f.push(${(0,_htmlescape__WEBPACK_IMPORTED_MODULE_0__.htmlEscapeJsonString)(JSON.stringify([\n INLINE_FLIGHT_PAYLOAD_FORM_STATE,\n formState\n ]))})</script>`);\n },\n transform (chunk, controller) {\n const scripts = `${startScriptTag}self.__next_f.push(${(0,_htmlescape__WEBPACK_IMPORTED_MODULE_0__.htmlEscapeJsonString)(JSON.stringify([\n INLINE_FLIGHT_PAYLOAD_DATA,\n chunk\n ]))})</script>`;\n controller.enqueue(scripts);\n }\n });\n}\nconst flightResponses = new WeakMap();\n/**\n * Render Flight stream.\n * This is only used for renderToHTML, the Flight response does not need additional wrappers.\n */ function useFlightResponse(writable, flightStream, clientReferenceManifest, formState, nonce) {\n const response = flightResponses.get(flightStream);\n if (response) {\n return response;\n }\n // react-server-dom-webpack/client.edge must not be hoisted for require cache clearing to work correctly\n let createFromReadableStream;\n // @TODO: investigate why the aliasing for turbopack doesn't pick this up, requiring this runtime check\n if (false) {} else {\n createFromReadableStream = (__webpack_require__(/*! react-server-dom-webpack/client.edge */ \"(ssr)/../../node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js\").createFromReadableStream);\n }\n const [renderStream, forwardStream] = flightStream.tee();\n const res = createFromReadableStream(renderStream, {\n ssrManifest: {\n moduleLoading: clientReferenceManifest.moduleLoading,\n moduleMap: isEdgeRuntime ? clientReferenceManifest.edgeSSRModuleMapping : clientReferenceManifest.ssrModuleMapping\n },\n nonce\n });\n flightResponses.set(flightStream, res);\n pipeFlightDataToInlinedStream(forwardStream, writable, nonce, formState);\n return res;\n}\nfunction pipeFlightDataToInlinedStream(flightStream, writable, nonce, formState) {\n flightStream.pipeThrough((0,_stream_utils_encode_decode__WEBPACK_IMPORTED_MODULE_1__.createDecodeTransformStream)()).pipeThrough(createFlightTransformer(nonce, formState)).pipeThrough((0,_stream_utils_encode_decode__WEBPACK_IMPORTED_MODULE_1__.createEncodeTransformStream)()).pipeTo(writable).catch((err)=>{\n console.error(\"Unexpected error while rendering Flight stream\", err);\n });\n} //# sourceMappingURL=use-flight-response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvdXNlLWZsaWdodC1yZXNwb25zZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBcUQ7QUFDb0Q7QUFDekcsTUFBTUcsZ0JBQWdCQyxNQUF3QixLQUFLO0FBQ25ELE1BQU1HLGtDQUFrQztBQUN4QyxNQUFNQyw2QkFBNkI7QUFDbkMsTUFBTUMsbUNBQW1DO0FBQ3pDLFNBQVNDLHdCQUF3QkMsS0FBSyxFQUFFQyxTQUFTO0lBQzdDLE1BQU1DLGlCQUFpQkYsUUFBUSxDQUFDLGNBQWMsRUFBRUcsS0FBS0MsU0FBUyxDQUFDSixPQUFPLENBQUMsQ0FBQyxHQUFHO0lBQzNFLE9BQU8sSUFBSUssZ0JBQWdCO1FBQ3ZCLG9DQUFvQztRQUNwQ0MsT0FBT0MsVUFBVTtZQUNiQSxXQUFXQyxPQUFPLENBQUMsQ0FBQyxFQUFFTixlQUFlLHVDQUF1QyxFQUFFYixpRUFBb0JBLENBQUNjLEtBQUtDLFNBQVMsQ0FBQztnQkFDOUdSO2FBQ0gsR0FBRyxxQkFBcUIsRUFBRVAsaUVBQW9CQSxDQUFDYyxLQUFLQyxTQUFTLENBQUM7Z0JBQzNETjtnQkFDQUc7YUFDSCxHQUFHLFVBQVUsQ0FBQztRQUNuQjtRQUNBUSxXQUFXQyxLQUFLLEVBQUVILFVBQVU7WUFDeEIsTUFBTUksVUFBVSxDQUFDLEVBQUVULGVBQWUsbUJBQW1CLEVBQUViLGlFQUFvQkEsQ0FBQ2MsS0FBS0MsU0FBUyxDQUFDO2dCQUN2RlA7Z0JBQ0FhO2FBQ0gsR0FBRyxVQUFVLENBQUM7WUFDZkgsV0FBV0MsT0FBTyxDQUFDRztRQUN2QjtJQUNKO0FBQ0o7QUFDQSxNQUFNQyxrQkFBa0IsSUFBSUM7QUFDNUI7OztDQUdDLEdBQVUsU0FBU0Msa0JBQWtCQyxRQUFRLEVBQUVDLFlBQVksRUFBRUMsdUJBQXVCLEVBQUVoQixTQUFTLEVBQUVELEtBQUs7SUFDbkcsTUFBTWtCLFdBQVdOLGdCQUFnQk8sR0FBRyxDQUFDSDtJQUNyQyxJQUFJRSxVQUFVO1FBQ1YsT0FBT0E7SUFDWDtJQUNBLHdHQUF3RztJQUN4RyxJQUFJRTtJQUNKLHVHQUF1RztJQUN2RyxJQUFJM0IsS0FBcUIsRUFBRSxFQUcxQixNQUFNO1FBQ0gyQiwyQkFDQUUsaUxBQXdFO0lBQzVFO0lBQ0EsTUFBTSxDQUFDQyxjQUFjQyxjQUFjLEdBQUdSLGFBQWFTLEdBQUc7SUFDdEQsTUFBTUMsTUFBTU4seUJBQXlCRyxjQUFjO1FBQy9DSSxhQUFhO1lBQ1RDLGVBQWVYLHdCQUF3QlcsYUFBYTtZQUNwREMsV0FBV3JDLGdCQUFnQnlCLHdCQUF3QmEsb0JBQW9CLEdBQUdiLHdCQUF3QmMsZ0JBQWdCO1FBQ3RIO1FBQ0EvQjtJQUNKO0lBQ0FZLGdCQUFnQm9CLEdBQUcsQ0FBQ2hCLGNBQWNVO0lBQ2xDTyw4QkFBOEJULGVBQWVULFVBQVVmLE9BQU9DO0lBQzlELE9BQU95QjtBQUNYO0FBQ0EsU0FBU08sOEJBQThCakIsWUFBWSxFQUFFRCxRQUFRLEVBQUVmLEtBQUssRUFBRUMsU0FBUztJQUMzRWUsYUFBYWtCLFdBQVcsQ0FBQzVDLHdGQUEyQkEsSUFBSTRDLFdBQVcsQ0FBQ25DLHdCQUF3QkMsT0FBT0MsWUFBWWlDLFdBQVcsQ0FBQzNDLHdGQUEyQkEsSUFBSTRDLE1BQU0sQ0FBQ3BCLFVBQVVxQixLQUFLLENBQUMsQ0FBQ0M7UUFDOUtDLFFBQVFDLEtBQUssQ0FBQyxrREFBa0RGO0lBQ3BFO0FBQ0osRUFFQSwrQ0FBK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL3VzZS1mbGlnaHQtcmVzcG9uc2UuanM/NGQxNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBodG1sRXNjYXBlSnNvblN0cmluZyB9IGZyb20gXCIuLi9odG1sZXNjYXBlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWNvZGVUcmFuc2Zvcm1TdHJlYW0sIGNyZWF0ZUVuY29kZVRyYW5zZm9ybVN0cmVhbSB9IGZyb20gXCIuLi9zdHJlYW0tdXRpbHMvZW5jb2RlLWRlY29kZVwiO1xuY29uc3QgaXNFZGdlUnVudGltZSA9IHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gXCJlZGdlXCI7XG5jb25zdCBJTkxJTkVfRkxJR0hUX1BBWUxPQURfQk9PVFNUUkFQID0gMDtcbmNvbnN0IElOTElORV9GTElHSFRfUEFZTE9BRF9EQVRBID0gMTtcbmNvbnN0IElOTElORV9GTElHSFRfUEFZTE9BRF9GT1JNX1NUQVRFID0gMjtcbmZ1bmN0aW9uIGNyZWF0ZUZsaWdodFRyYW5zZm9ybWVyKG5vbmNlLCBmb3JtU3RhdGUpIHtcbiAgICBjb25zdCBzdGFydFNjcmlwdFRhZyA9IG5vbmNlID8gYDxzY3JpcHQgbm9uY2U9JHtKU09OLnN0cmluZ2lmeShub25jZSl9PmAgOiBcIjxzY3JpcHQ+XCI7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICAvLyBCb290c3RyYXAgdGhlIGZsaWdodCBpbmZvcm1hdGlvbi5cbiAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShgJHtzdGFydFNjcmlwdFRhZ30oc2VsZi5fX25leHRfZj1zZWxmLl9fbmV4dF9mfHxbXSkucHVzaCgke2h0bWxFc2NhcGVKc29uU3RyaW5nKEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICAgICAgICBJTkxJTkVfRkxJR0hUX1BBWUxPQURfQk9PVFNUUkFQXG4gICAgICAgICAgICBdKSl9KTtzZWxmLl9fbmV4dF9mLnB1c2goJHtodG1sRXNjYXBlSnNvblN0cmluZyhKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgICAgICAgSU5MSU5FX0ZMSUdIVF9QQVlMT0FEX0ZPUk1fU1RBVEUsXG4gICAgICAgICAgICAgICAgZm9ybVN0YXRlXG4gICAgICAgICAgICBdKSl9KTwvc2NyaXB0PmApO1xuICAgICAgICB9LFxuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBzY3JpcHRzID0gYCR7c3RhcnRTY3JpcHRUYWd9c2VsZi5fX25leHRfZi5wdXNoKCR7aHRtbEVzY2FwZUpzb25TdHJpbmcoSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIElOTElORV9GTElHSFRfUEFZTE9BRF9EQVRBLFxuICAgICAgICAgICAgICAgIGNodW5rXG4gICAgICAgICAgICBdKSl9KTwvc2NyaXB0PmA7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoc2NyaXB0cyk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmNvbnN0IGZsaWdodFJlc3BvbnNlcyA9IG5ldyBXZWFrTWFwKCk7XG4vKipcbiAqIFJlbmRlciBGbGlnaHQgc3RyZWFtLlxuICogVGhpcyBpcyBvbmx5IHVzZWQgZm9yIHJlbmRlclRvSFRNTCwgdGhlIEZsaWdodCByZXNwb25zZSBkb2VzIG5vdCBuZWVkIGFkZGl0aW9uYWwgd3JhcHBlcnMuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUZsaWdodFJlc3BvbnNlKHdyaXRhYmxlLCBmbGlnaHRTdHJlYW0sIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LCBmb3JtU3RhdGUsIG5vbmNlKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBmbGlnaHRSZXNwb25zZXMuZ2V0KGZsaWdodFN0cmVhbSk7XG4gICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgLy8gcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudC5lZGdlIG11c3Qgbm90IGJlIGhvaXN0ZWQgZm9yIHJlcXVpcmUgY2FjaGUgY2xlYXJpbmcgdG8gd29yayBjb3JyZWN0bHlcbiAgICBsZXQgY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtO1xuICAgIC8vIEBUT0RPOiBpbnZlc3RpZ2F0ZSB3aHkgdGhlIGFsaWFzaW5nIGZvciB0dXJib3BhY2sgZG9lc24ndCBwaWNrIHRoaXMgdXAsIHJlcXVpcmluZyB0aGlzIHJ1bnRpbWUgY2hlY2tcbiAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgIGNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSA9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbiAgICAgICAgcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20tdHVyYm9wYWNrL2NsaWVudC5lZGdlXCIpLmNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0gPSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG4gICAgICAgIHJlcXVpcmUoXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50LmVkZ2VcIikuY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtO1xuICAgIH1cbiAgICBjb25zdCBbcmVuZGVyU3RyZWFtLCBmb3J3YXJkU3RyZWFtXSA9IGZsaWdodFN0cmVhbS50ZWUoKTtcbiAgICBjb25zdCByZXMgPSBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0ocmVuZGVyU3RyZWFtLCB7XG4gICAgICAgIHNzck1hbmlmZXN0OiB7XG4gICAgICAgICAgICBtb2R1bGVMb2FkaW5nOiBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5tb2R1bGVMb2FkaW5nLFxuICAgICAgICAgICAgbW9kdWxlTWFwOiBpc0VkZ2VSdW50aW1lID8gY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QuZWRnZVNTUk1vZHVsZU1hcHBpbmcgOiBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5zc3JNb2R1bGVNYXBwaW5nXG4gICAgICAgIH0sXG4gICAgICAgIG5vbmNlXG4gICAgfSk7XG4gICAgZmxpZ2h0UmVzcG9uc2VzLnNldChmbGlnaHRTdHJlYW0sIHJlcyk7XG4gICAgcGlwZUZsaWdodERhdGFUb0lubGluZWRTdHJlYW0oZm9yd2FyZFN0cmVhbSwgd3JpdGFibGUsIG5vbmNlLCBmb3JtU3RhdGUpO1xuICAgIHJldHVybiByZXM7XG59XG5mdW5jdGlvbiBwaXBlRmxpZ2h0RGF0YVRvSW5saW5lZFN0cmVhbShmbGlnaHRTdHJlYW0sIHdyaXRhYmxlLCBub25jZSwgZm9ybVN0YXRlKSB7XG4gICAgZmxpZ2h0U3RyZWFtLnBpcGVUaHJvdWdoKGNyZWF0ZURlY29kZVRyYW5zZm9ybVN0cmVhbSgpKS5waXBlVGhyb3VnaChjcmVhdGVGbGlnaHRUcmFuc2Zvcm1lcihub25jZSwgZm9ybVN0YXRlKSkucGlwZVRocm91Z2goY3JlYXRlRW5jb2RlVHJhbnNmb3JtU3RyZWFtKCkpLnBpcGVUbyh3cml0YWJsZSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgY29uc29sZS5lcnJvcihcIlVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgcmVuZGVyaW5nIEZsaWdodCBzdHJlYW1cIiwgZXJyKTtcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlLWZsaWdodC1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOlsiaHRtbEVzY2FwZUpzb25TdHJpbmciLCJjcmVhdGVEZWNvZGVUcmFuc2Zvcm1TdHJlYW0iLCJjcmVhdGVFbmNvZGVUcmFuc2Zvcm1TdHJlYW0iLCJpc0VkZ2VSdW50aW1lIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsIklOTElORV9GTElHSFRfUEFZTE9BRF9CT09UU1RSQVAiLCJJTkxJTkVfRkxJR0hUX1BBWUxPQURfREFUQSIsIklOTElORV9GTElHSFRfUEFZTE9BRF9GT1JNX1NUQVRFIiwiY3JlYXRlRmxpZ2h0VHJhbnNmb3JtZXIiLCJub25jZSIsImZvcm1TdGF0ZSIsInN0YXJ0U2NyaXB0VGFnIiwiSlNPTiIsInN0cmluZ2lmeSIsIlRyYW5zZm9ybVN0cmVhbSIsInN0YXJ0IiwiY29udHJvbGxlciIsImVucXVldWUiLCJ0cmFuc2Zvcm0iLCJjaHVuayIsInNjcmlwdHMiLCJmbGlnaHRSZXNwb25zZXMiLCJXZWFrTWFwIiwidXNlRmxpZ2h0UmVzcG9uc2UiLCJ3cml0YWJsZSIsImZsaWdodFN0cmVhbSIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0IiwicmVzcG9uc2UiLCJnZXQiLCJjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0iLCJUVVJCT1BBQ0siLCJyZXF1aXJlIiwicmVuZGVyU3RyZWFtIiwiZm9yd2FyZFN0cmVhbSIsInRlZSIsInJlcyIsInNzck1hbmlmZXN0IiwibW9kdWxlTG9hZGluZyIsIm1vZHVsZU1hcCIsImVkZ2VTU1JNb2R1bGVNYXBwaW5nIiwic3NyTW9kdWxlTWFwcGluZyIsInNldCIsInBpcGVGbGlnaHREYXRhVG9JbmxpbmVkU3RyZWFtIiwicGlwZVRocm91Z2giLCJwaXBlVG8iLCJjYXRjaCIsImVyciIsImNvbnNvbGUiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/use-flight-response.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/validate-url.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/validate-url.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ validateURL: () => (/* binding */ validateURL)\n/* harmony export */ });\nconst DUMMY_ORIGIN = \"http://n\";\nconst INVALID_URL_MESSAGE = \"Invalid request URL\";\nfunction validateURL(url) {\n if (!url) {\n throw new Error(INVALID_URL_MESSAGE);\n }\n try {\n const parsed = new URL(url, DUMMY_ORIGIN);\n // Avoid origin change by extra slashes in pathname\n if (parsed.origin !== DUMMY_ORIGIN) {\n throw new Error(INVALID_URL_MESSAGE);\n }\n return url;\n } catch {\n throw new Error(INVALID_URL_MESSAGE);\n }\n} //# sourceMappingURL=validate-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvdmFsaWRhdGUtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxlQUFlO0FBQ3JCLE1BQU1DLHNCQUFzQjtBQUNyQixTQUFTQyxZQUFZQyxHQUFHO0lBQzNCLElBQUksQ0FBQ0EsS0FBSztRQUNOLE1BQU0sSUFBSUMsTUFBTUg7SUFDcEI7SUFDQSxJQUFJO1FBQ0EsTUFBTUksU0FBUyxJQUFJQyxJQUFJSCxLQUFLSDtRQUM1QixtREFBbUQ7UUFDbkQsSUFBSUssT0FBT0UsTUFBTSxLQUFLUCxjQUFjO1lBQ2hDLE1BQU0sSUFBSUksTUFBTUg7UUFDcEI7UUFDQSxPQUFPRTtJQUNYLEVBQUUsT0FBTztRQUNMLE1BQU0sSUFBSUMsTUFBTUg7SUFDcEI7QUFDSixFQUVBLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvdmFsaWRhdGUtdXJsLmpzPzUzYWIiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFVNTVlfT1JJR0lOID0gXCJodHRwOi8vblwiO1xuY29uc3QgSU5WQUxJRF9VUkxfTUVTU0FHRSA9IFwiSW52YWxpZCByZXF1ZXN0IFVSTFwiO1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVVJMKHVybCkge1xuICAgIGlmICghdXJsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihJTlZBTElEX1VSTF9NRVNTQUdFKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gbmV3IFVSTCh1cmwsIERVTU1ZX09SSUdJTik7XG4gICAgICAgIC8vIEF2b2lkIG9yaWdpbiBjaGFuZ2UgYnkgZXh0cmEgc2xhc2hlcyBpbiBwYXRobmFtZVxuICAgICAgICBpZiAocGFyc2VkLm9yaWdpbiAhPT0gRFVNTVlfT1JJR0lOKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSU5WQUxJRF9VUkxfTUVTU0FHRSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICB9IGNhdGNoICB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihJTlZBTElEX1VSTF9NRVNTQUdFKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZhbGlkYXRlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsiRFVNTVlfT1JJR0lOIiwiSU5WQUxJRF9VUkxfTUVTU0FHRSIsInZhbGlkYXRlVVJMIiwidXJsIiwiRXJyb3IiLCJwYXJzZWQiLCJVUkwiLCJvcmlnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/validate-url.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/app-render/walk-tree-with-flight-router-state.js":
-/*!************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/walk-tree-with-flight-router-state.js ***!
- \************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ walkTreeWithFlightRouterState: () => (/* binding */ walkTreeWithFlightRouterState)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _client_components_match_segments__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../client/components/match-segments */ \"(ssr)/../../node_modules/next/dist/esm/client/components/match-segments.js\");\n/* harmony import */ var _get_css_inlined_link_tags__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-css-inlined-link-tags */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-css-inlined-link-tags.js\");\n/* harmony import */ var _get_preloadable_fonts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./get-preloadable-fonts */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-preloadable-fonts.js\");\n/* harmony import */ var _create_flight_router_state_from_loader_tree__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./create-flight-router-state-from-loader-tree */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/create-flight-router-state-from-loader-tree.js\");\n/* harmony import */ var _parse_loader_tree__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parse-loader-tree */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/parse-loader-tree.js\");\n/* harmony import */ var _get_layer_assets__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./get-layer-assets */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/get-layer-assets.js\");\n/* harmony import */ var _has_loading_component_in_tree__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./has-loading-component-in-tree */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/has-loading-component-in-tree.js\");\n/* harmony import */ var _create_component_tree__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./create-component-tree */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/create-component-tree.js\");\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Use router state to decide at what common layout to render the page.\n * This can either be the common layout between two pages or a specific place to start rendering from using the \"refetch\" marker in the tree.\n */ async function walkTreeWithFlightRouterState({ createSegmentPath, loaderTreeToFilter, parentParams, isFirst, flightRouterState, parentRendered, rscPayloadHead, injectedCSS, injectedJS, injectedFontPreloadTags, rootLayoutIncluded, asNotFound, metadataOutlet, ctx }) {\n const { renderOpts: { nextFontManifest, experimental }, query, isPrefetch, getDynamicParamFromSegment, componentMod: { tree: loaderTree } } = ctx;\n const [segment, parallelRoutes, components] = loaderTreeToFilter;\n const parallelRoutesKeys = Object.keys(parallelRoutes);\n const { layout } = components;\n const isLayout = typeof layout !== \"undefined\";\n /**\n * Checks if the current segment is a root layout.\n */ const rootLayoutAtThisLevel = isLayout && !rootLayoutIncluded;\n /**\n * Checks if the current segment or any level above it has a root layout.\n */ const rootLayoutIncludedAtThisLevelOrAbove = rootLayoutIncluded || rootLayoutAtThisLevel;\n // Because this function walks to a deeper point in the tree to start rendering we have to track the dynamic parameters up to the point where rendering starts\n const segmentParam = getDynamicParamFromSegment(segment);\n const currentParams = segmentParam && segmentParam.value !== null ? {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n } : parentParams;\n const actualSegment = (0,_create_flight_router_state_from_loader_tree__WEBPACK_IMPORTED_MODULE_5__.addSearchParamsIfPageSegment)(segmentParam ? segmentParam.treeSegment : segment, query);\n /**\n * Decide if the current segment is where rendering has to start.\n */ const renderComponentsOnThisLevel = !flightRouterState || // Segment in router state does not match current segment\n !(0,_client_components_match_segments__WEBPACK_IMPORTED_MODULE_2__.matchSegment)(actualSegment, flightRouterState[0]) || // Last item in the tree\n parallelRoutesKeys.length === 0 || // Explicit refresh\n flightRouterState[3] === \"refetch\";\n const shouldSkipComponentTree = !experimental.ppr && isPrefetch && !Boolean(components.loading) && (flightRouterState || // If there is no flightRouterState, we need to check the entire loader tree, as otherwise we'll be only checking the root\n !(0,_has_loading_component_in_tree__WEBPACK_IMPORTED_MODULE_8__.hasLoadingComponentInTree)(loaderTree));\n if (!parentRendered && renderComponentsOnThisLevel) {\n const overriddenSegment = flightRouterState && (0,_client_components_match_segments__WEBPACK_IMPORTED_MODULE_2__.canSegmentBeOverridden)(actualSegment, flightRouterState[0]) ? flightRouterState[0] : actualSegment;\n const routerState = (0,_create_flight_router_state_from_loader_tree__WEBPACK_IMPORTED_MODULE_5__.createFlightRouterStateFromLoaderTree)(loaderTreeToFilter, getDynamicParamFromSegment, query);\n if (shouldSkipComponentTree) {\n // Send only the router state\n return [\n [\n overriddenSegment,\n routerState,\n null,\n null\n ]\n ];\n } else {\n // Create component tree using the slice of the loaderTree\n const { seedData } = await (0,_create_component_tree__WEBPACK_IMPORTED_MODULE_9__.createComponentTree)({\n ctx,\n createSegmentPath,\n loaderTree: loaderTreeToFilter,\n parentParams: currentParams,\n firstItem: isFirst,\n injectedCSS,\n injectedJS,\n injectedFontPreloadTags,\n // This is intentionally not \"rootLayoutIncludedAtThisLevelOrAbove\" as createComponentTree starts at the current level and does a check for \"rootLayoutAtThisLevel\" too.\n rootLayoutIncluded,\n asNotFound,\n metadataOutlet\n });\n // Create head\n const { layoutOrPagePath } = (0,_parse_loader_tree__WEBPACK_IMPORTED_MODULE_6__.parseLoaderTree)(loaderTreeToFilter);\n const layerAssets = (0,_get_layer_assets__WEBPACK_IMPORTED_MODULE_7__.getLayerAssets)({\n ctx,\n layoutOrPagePath,\n injectedCSS: new Set(injectedCSS),\n injectedJS: new Set(injectedJS),\n injectedFontPreloadTags: new Set(injectedFontPreloadTags)\n });\n const head = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n layerAssets,\n rscPayloadHead\n ]\n });\n return [\n [\n overriddenSegment,\n routerState,\n seedData,\n head\n ]\n ];\n }\n }\n // If we are not rendering on this level we need to check if the current\n // segment has a layout. If so, we need to track all the used CSS to make\n // the result consistent.\n const layoutPath = layout == null ? void 0 : layout[1];\n const injectedCSSWithCurrentLayout = new Set(injectedCSS);\n const injectedJSWithCurrentLayout = new Set(injectedJS);\n const injectedFontPreloadTagsWithCurrentLayout = new Set(injectedFontPreloadTags);\n if (layoutPath) {\n (0,_get_css_inlined_link_tags__WEBPACK_IMPORTED_MODULE_3__.getLinkAndScriptTags)(ctx.clientReferenceManifest, layoutPath, injectedCSSWithCurrentLayout, injectedJSWithCurrentLayout, true);\n (0,_get_preloadable_fonts__WEBPACK_IMPORTED_MODULE_4__.getPreloadableFonts)(nextFontManifest, layoutPath, injectedFontPreloadTagsWithCurrentLayout);\n }\n // Walk through all parallel routes.\n const paths = (await Promise.all(parallelRoutesKeys.map(async (parallelRouteKey)=>{\n // for (const parallelRouteKey of parallelRoutesKeys) {\n const parallelRoute = parallelRoutes[parallelRouteKey];\n const currentSegmentPath = isFirst ? [\n parallelRouteKey\n ] : [\n actualSegment,\n parallelRouteKey\n ];\n const path = await walkTreeWithFlightRouterState({\n ctx,\n createSegmentPath: (child)=>{\n return createSegmentPath([\n ...currentSegmentPath,\n ...child\n ]);\n },\n loaderTreeToFilter: parallelRoute,\n parentParams: currentParams,\n flightRouterState: flightRouterState && flightRouterState[1][parallelRouteKey],\n parentRendered: parentRendered || renderComponentsOnThisLevel,\n isFirst: false,\n rscPayloadHead,\n injectedCSS: injectedCSSWithCurrentLayout,\n injectedJS: injectedJSWithCurrentLayout,\n injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout,\n rootLayoutIncluded: rootLayoutIncludedAtThisLevelOrAbove,\n asNotFound,\n metadataOutlet\n });\n return path.map((item)=>{\n // we don't need to send over default routes in the flight data\n // because they are always ignored by the client, unless it's a refetch\n if (item[0] === _shared_lib_segment__WEBPACK_IMPORTED_MODULE_10__.DEFAULT_SEGMENT_KEY && flightRouterState && !!flightRouterState[1][parallelRouteKey][0] && flightRouterState[1][parallelRouteKey][3] !== \"refetch\") {\n return null;\n }\n return [\n actualSegment,\n parallelRouteKey,\n ...item\n ];\n }).filter(Boolean);\n }))).flat();\n return paths;\n} //# sourceMappingURL=walk-tree-with-flight-router-state.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvd2Fsay10cmVlLXdpdGgtZmxpZ2h0LXJvdXRlci1zdGF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQXlFO0FBQy9DO0FBQ29FO0FBQzNCO0FBQ0w7QUFDc0U7QUFDOUU7QUFDRjtBQUN3QjtBQUNkO0FBQ0M7QUFDL0Q7OztDQUdDLEdBQVUsZUFBZWdCLDhCQUE4QixFQUFFQyxpQkFBaUIsRUFBRUMsa0JBQWtCLEVBQUVDLFlBQVksRUFBRUMsT0FBTyxFQUFFQyxpQkFBaUIsRUFBRUMsY0FBYyxFQUFFQyxjQUFjLEVBQUVDLFdBQVcsRUFBRUMsVUFBVSxFQUFFQyx1QkFBdUIsRUFBRUMsa0JBQWtCLEVBQUVDLFVBQVUsRUFBRUMsY0FBYyxFQUFFQyxHQUFHLEVBQUU7SUFDOVEsTUFBTSxFQUFFQyxZQUFZLEVBQUVDLGdCQUFnQixFQUFFQyxZQUFZLEVBQUUsRUFBRUMsS0FBSyxFQUFFQyxVQUFVLEVBQUVDLDBCQUEwQixFQUFFQyxjQUFjLEVBQUVDLE1BQU1DLFVBQVUsRUFBRSxFQUFFLEdBQUdUO0lBQzlJLE1BQU0sQ0FBQ1UsU0FBU0MsZ0JBQWdCQyxXQUFXLEdBQUd4QjtJQUM5QyxNQUFNeUIscUJBQXFCQyxPQUFPQyxJQUFJLENBQUNKO0lBQ3ZDLE1BQU0sRUFBRUssTUFBTSxFQUFFLEdBQUdKO0lBQ25CLE1BQU1LLFdBQVcsT0FBT0QsV0FBVztJQUNuQzs7R0FFRCxHQUFHLE1BQU1FLHdCQUF3QkQsWUFBWSxDQUFDcEI7SUFDN0M7O0dBRUQsR0FBRyxNQUFNc0IsdUNBQXVDdEIsc0JBQXNCcUI7SUFDckUsOEpBQThKO0lBQzlKLE1BQU1FLGVBQWVkLDJCQUEyQkk7SUFDaEQsTUFBTVcsZ0JBQ05ELGdCQUFnQkEsYUFBYUUsS0FBSyxLQUFLLE9BQU87UUFDMUMsR0FBR2pDLFlBQVk7UUFDZixDQUFDK0IsYUFBYUcsS0FBSyxDQUFDLEVB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Q21FO2dCQUNoQixPQUFPbkUsa0JBQWtCO3VCQUNsQmlFO3VCQUNBRTtpQkFDTjtZQUNMO1lBQ0FsRSxvQkFBb0IrRDtZQUNwQjlELGNBQWNnQztZQUNkOUIsbUJBQW1CQSxxQkFBcUJBLGlCQUFpQixDQUFDLEVBQUUsQ0FBQzJELGlCQUFpQjtZQUM5RTFELGdCQUFnQkEsa0JBQWtCa0M7WUFDbENwQyxTQUFTO1lBQ1RHO1lBQ0FDLGFBQWFnRDtZQUNiL0MsWUFBWWdEO1lBQ1ovQyx5QkFBeUJnRDtZQUN6Qi9DLG9CQUFvQnNCO1lBQ3BCckI7WUFDQUM7UUFDSjtRQUNBLE9BQU9zRCxLQUFLSixHQUFHLENBQUMsQ0FBQ007WUFDYiwrREFBK0Q7WUFDL0QsdUVBQXVFO1lBQ3ZFLElBQUlBLElBQUksQ0FBQyxFQUFFLEtBQUt0RSxxRUFBbUJBLElBQUlNLHFCQUFxQixDQUFDLENBQUNBLGlCQUFpQixDQUFDLEVBQUUsQ0FBQzJELGlCQUFpQixDQUFDLEVBQUUsSUFBSTNELGlCQUFpQixDQUFDLEVBQUUsQ0FBQzJELGlCQUFpQixDQUFDLEVBQUUsS0FBSyxXQUFXO2dCQUNoSyxPQUFPO1lBQ1g7WUFDQSxPQUFPO2dCQUNIMUI7Z0JBQ0EwQjttQkFDR0s7YUFDTjtRQUNMLEdBQUdDLE1BQU0sQ0FBQzFCO0lBQ2QsR0FBRSxFQUFHMkIsSUFBSTtJQUNULE9BQU9YO0FBQ1gsRUFFQSw4REFBOEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hcHAtcmVuZGVyL3dhbGstdHJlZS13aXRoLWZsaWdodC1yb3V0ZXItc3RhdGUuanM/MWM0YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3hzIGFzIF9qc3hzLCBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNhblNlZ21lbnRCZU92ZXJyaWRkZW4sIG1hdGNoU2VnbWVudCB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9tYXRjaC1zZWdtZW50c1wiO1xuaW1wb3J0IHsgZ2V0TGlua0FuZFNjcmlwdFRhZ3MgfSBmcm9tIFwiLi9nZXQtY3NzLWlubGluZWQtbGluay10YWdzXCI7XG5pbXBvcnQgeyBnZXRQcmVsb2FkYWJsZUZvbnRzIH0gZnJvbSBcIi4vZ2V0LXByZWxvYWRhYmxlLWZvbnRzXCI7XG5pbXBvcnQgeyBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50LCBjcmVhdGVGbGlnaHRSb3V0ZXJTdGF0ZUZyb21Mb2FkZXJUcmVlIH0gZnJvbSBcIi4vY3JlYXRlLWZsaWdodC1yb3V0ZXItc3RhdGUtZnJvbS1sb2FkZXItdHJlZVwiO1xuaW1wb3J0IHsgcGFyc2VMb2FkZXJUcmVlIH0gZnJvbSBcIi4vcGFyc2UtbG9hZGVyLXRyZWVcIjtcbmltcG9ydCB7IGdldExheWVyQXNzZXRzIH0gZnJvbSBcIi4vZ2V0LWxheWVyLWFzc2V0c1wiO1xuaW1wb3J0IHsgaGFzTG9hZGluZ0NvbXBvbmVudEluVHJlZSB9IGZyb20gXCIuL2hhcy1sb2FkaW5nLWNvbXBvbmVudC1pbi10cmVlXCI7XG5pbXBvcnQgeyBjcmVhdGVDb21wb25lbnRUcmVlIH0gZnJvbSBcIi4vY3JlYXRlLWNvbXBvbmVudC10cmVlXCI7XG5pbXBvcnQgeyBERUZBVUxUX1NFR01FTlRfS0VZIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiO1xuLyoqXG4gKiBVc2Ugcm91dGVyIHN0YXRlIHRvIGRlY2lkZSBhdCB3aGF0IGNvbW1vbiBsYXlvdXQgdG8gcmVuZGVyIHRoZSBwYWdlLlxuICogVGhpcyBjYW4gZWl0aGVyIGJlIHRoZSBjb21tb24gbGF5b3V0IGJldHdlZW4gdHdvIHBhZ2VzIG9yIGEgc3BlY2lmaWMgcGxhY2UgdG8gc3RhcnQgcmVuZGVyaW5nIGZyb20gdXNpbmcgdGhlIFwicmVmZXRjaFwiIG1hcmtlciBpbiB0aGUgdHJlZS5cbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gd2Fsa1RyZWVXaXRoRmxpZ2h0Um91dGVyU3RhdGUoeyBjcmVhdGVTZWdtZW50UGF0aCwgbG9hZGVyVHJlZVRvRmlsdGVyLCBwYXJlbnRQYXJhbXMsIGlzRmlyc3QsIGZsaWdodFJvdXRlclN0YXRlLCBwYXJlbnRSZW5kZXJlZCwgcnNjUGF5bG9hZEhlYWQsIGluamVjdGVkQ1NTLCBpbmplY3RlZEpTLCBpbmplY3RlZEZvbnRQcmVsb2FkVGFncywgcm9vdExheW91dEluY2x1ZGVkLCBhc05vdEZvdW5kLCBtZXRhZGF0YU91dGxldCwgY3R4IH0pIHtcbiAgICBjb25zdCB7IHJlbmRlck9wdHM6IHsgbmV4dEZvbnRNYW5pZmVzdCwgZXhwZXJpbWVudGFsIH0sIHF1ZXJ5LCBpc1ByZWZldGNoLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgY29tcG9uZW50TW9kOiB7IHRyZWU6IGxvYWRlclRyZWUgfSB9ID0gY3R4O1xuICAgIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlcywgY29tcG9uZW50c10gPSBsb2FkZXJUcmVlVG9GaWx0ZXI7XG4gICAgY29uc3QgcGFyYWxsZWxSb3V0ZXNLZXlzID0gT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpO1xuICAgIGNvbnN0IHsgbGF5b3V0IH0gPSBjb21wb25lbnRzO1xuICAgIGNvbnN0IGlzTGF5b3V0ID0gdHlwZW9mIGxheW91dCAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHNlZ21lbnQgaXMgYSByb290IGxheW91dC5cbiAgICovIGNvbnN0IHJvb3RMYXlvdXRBdFRoaXNMZXZlbCA9IGlzTGF5b3V0ICYmICFyb290TGF5b3V0SW5jbHVkZWQ7XG4gICAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBzZWdtZW50IG9yIGFueSBsZXZlbCBhYm92ZSBpdCBoYXMgYSByb290IGxheW91dC5cbiAgICovIGNvbnN0IHJvb3RMYXlvdXRJbmNsdWRlZEF0VGhpc0xldmVsT3JBYm92ZSA9IHJvb3RMYXlvdXRJbmNsdWRlZCB8fCByb290TGF5b3V0QXRUaGlzTGV2ZWw7XG4gICAgLy8gQmVjYXVzZSB0aGlzIGZ1bmN0aW9uIHdhbGtzIHRvIGEgZGVlcGVyIHBvaW50IGluIHRoZSB0cmVlIHRvIHN0YXJ0IHJlbmRlcmluZyB3ZSBoYXZlIHRvIHRyYWNrIHRoZSBkeW5hbWljIHBhcmFtZXRlcnMgdXAgdG8gdGhlIHBvaW50IHdoZXJlIHJlbmRlcmluZyBzdGFydHNcbiAgICBjb25zdCBzZWdtZW50UGFyYW0gPSBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudChzZWdtZW50KTtcbiAgICBjb25zdCBjdXJyZW50UGFyYW1zID0gLy8gSGFuZGxlIG51bGwgY2FzZSB3aGVyZSBkeW5hbWljIHBhcmFtIGlzIG9wdGlvbmFsXG4gICAgc2VnbWVudFBhcmFtICYmIHNlZ21lbnRQYXJhbS52YWx1ZSAhPT0gbnVsbCA/IHtcbiAgICAgICAgLi4ucGFyZW50UGFyYW1zLFxuICAgICAgICBbc2VnbWVudFBhcmFtLnBhcmFtXTogc2VnbWVudFBhcmFtLnZhbHVlXG4gICAgfSA6IHBhcmVudFBhcmFtcztcbiAgICBjb25zdCBhY3R1YWxTZWdtZW50ID0gYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudChzZWdtZW50UGFyYW0gPyBzZWdtZW50UGFyYW0udHJlZVNlZ21lbnQgOiBzZWdtZW50LCBxdWVyeSk7XG4gICAgLyoqXG4gICAqIERlY2lkZSBpZiB0aGUgY3VycmVudCBzZWdtZW50IGlzIHdoZXJlIHJlbmRlcmluZyBoYXMgdG8gc3RhcnQuXG4gICAqLyBjb25zdCByZW5kZXJDb21wb25lbnRzT25UaGlzTGV2ZWwgPSAvLyBObyBmdXJ0aGVyIHJvdXRlciBzdGF0ZSBhdmFpbGFibGVcbiAgICAhZmxpZ2h0Um91dGVyU3RhdGUgfHwgLy8gU2VnbWVudCBpbiByb3V0ZXIgc3RhdGUgZG9lcyBub3QgbWF0Y2ggY3VycmVudCBzZWdtZW50XG4gICAgIW1hdGNoU2VnbWVudChhY3R1YWxTZWdtZW50LCBmbGlnaHRSb3V0ZXJTdGF0ZVswXSkgfHwgLy8gTGFzdCBpdGVtIGluIHRoZSB0cmVlXG4gICAgcGFyYWxsZWxSb3V0ZXNLZXlzLmxlbmd0aCA9PT0gMCB8fCAvLyBFeHBsaWNpdCByZWZyZXNoXG4gICAgZmxpZ2h0Um91dGVyU3RhdGVbM10gPT09IFwicmVmZXRjaFwiO1xuICAgIGNvbnN0IHNob3VsZFNraXBDb21wb25lbnRUcmVlID0gLy8gbG9hZGluZy50c3ggaGFzIG5vIGVmZmVjdCBvbiBwcmVmZXRjaGluZyB3aGVuIFBQUiBpcyBlbmFibGVkXG4gICAgIWV4cGVyaW1lbnRhbC5wcHIgJiYgaXNQcmVmZXRjaCAmJiAhQm9vbGVhbihjb21wb25lbnRzLmxvYWRpbmcpICYmIChmbGlnaHRSb3V0ZXJTdGF0ZSB8fCAvLyBJZiB0aGVyZSBpcyBubyBmbGlnaHRSb3V0ZXJTdGF0ZSwgd2UgbmVlZCB0byBjaGVjayB0aGUgZW50aXJlIGxvYWRlciB0cmVlLCBhcyBvdGhlcndpc2Ugd2UnbGwgYmUgb25seSBjaGVja2luZyB0aGUgcm9vdFxuICAgICFoYXNMb2FkaW5nQ29tcG9uZW50SW5UcmVlKGxvYWRlclRyZWUpKTtcbiAgICBpZiAoIXBhcmVudFJlbmRlcmVkICYmIHJlbmRlckNvbXBvbmVudHNPblRoaXNMZXZlbCkge1xuICAgICAgICBjb25zdCBvdmVycmlkZGVuU2VnbWVudCA9IGZsaWdodFJvdXRlclN0YXRlICYmIGNhblNlZ21lbnRCZU92ZXJyaWRkZW4oYWN0dWFsU2VnbWVudCwgZmxpZ2h0Um91dGVyU3RhdGVbMF0pID8gZmxpZ2h0Um91dGVyU3RhdGVbMF0gOiBhY3R1YWxTZWdtZW50O1xuICAgICAgICBjb25zdCByb3V0ZXJTdGF0ZSA9IGNyZWF0ZUZsaWdodFJvdXRlclN0YXRlRnJvbUxvYWRlclRyZWUoLy8gQ3JlYXRlIHJvdXRlciBzdGF0ZSB1c2luZyB0aGUgc2xpY2Ugb2YgdGhlIGxvYWRlclRyZWVcbiAgICAgICAgbG9hZGVyVHJlZVRvRmlsdGVyLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgcXVlcnkpO1xuICAgICAgICBpZiAoc2hvdWxkU2tpcENvbXBvbmVudFRyZWUpIHtcbiAgICAgICAgICAgIC8vIFNlbmQgb25seSB0aGUgcm91dGVyIHN0YXRlXG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGRlblNlZ21lbnQsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlclN0YXRlLFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENyZWF0ZSBjb21wb25lbnQgdHJlZSB1c2luZyB0aGUgc2xpY2Ugb2YgdGhlIGxvYWRlclRyZWVcbiAgICAgICAgICAgIGNvbnN0IHsgc2VlZERhdGEgfSA9IGF3YWl0IGNyZWF0ZUNvbXBvbmVudFRyZWUoLy8gVGhpcyBlbnN1cmVzIGZsaWdodFJvdXRlclBhdGggaXMgdmFsaWQgYW5kIGZpbHRlcnMgZG93biB0aGUgdHJlZVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGN0eCxcbiAgICAgICAgICAgICAgICBjcmVhdGVTZWdtZW50UGF0aCxcbiAgICAgICAgICAgICAgICBsb2FkZXJUcmVlOiBsb2FkZXJUcmVlVG9GaWx0ZXIsXG4gICAgICAgICAgICAgICAgcGFyZW50UGFyYW1zOiBjdXJyZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIGZpcnN0SXRlbTogaXNGaXJzdCxcbiAgICAgICAgICAgICAgICBpbmplY3RlZENTUyxcbiAgICAgICAgICAgICAgICBpbmplY3RlZEpTLFxuICAgICAgICAgICAgICAgIGluamVjdGVkRm9udFByZWxvYWRUYWdzLFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBub3QgXCJyb290TGF5b3V0SW5jbHVkZWRBdFRoaXNMZXZlbE9yQWJvdmVcIiBhcyBjcmVhdGVDb21wb25lbnRUcmVlIHN0YXJ0cyBhdCB0aGUgY3VycmVudCBsZXZlbCBhbmQgZG9lcyBhIGNoZWNrIGZvciBcInJvb3RMYXlvdXRBdFRoaXNMZXZlbFwiIHRvby5cbiAgICAgICAgICAgICAgICByb290TGF5b3V0SW5jbHVkZWQsXG4gICAgICAgICAgICAgICAgYXNOb3RGb3VuZCxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YU91dGxldFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBDcmVhdGUgaGVhZFxuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXRPclBhZ2VQYXRoIH0gPSBwYXJzZUxvYWRlclRyZWUobG9hZGVyVHJlZVRvRmlsdGVyKTtcbiAgICAgICAgICAgIGNvbnN0IGxheWVyQXNzZXRzID0gZ2V0TGF5ZXJBc3NldHMoe1xuICAgICAgICAgICAgICAgIGN0eCxcbiAgICAgICAgICAgICAgICBsYXlvdXRPclBhZ2VQYXRoLFxuICAgICAgICAgICAgICAgIGluamVjdGVkQ1NTOiBuZXcgU2V0KGluamVjdGVkQ1NTKSxcbiAgICAgICAgICAgICAgICBpbmplY3RlZEpTOiBuZXcgU2V0KGluamVjdGVkSlMpLFxuICAgICAgICAgICAgICAgIGluamVjdGVkRm9udFByZWxvYWRUYWdzOiBuZXcgU2V0KGluamVjdGVkRm9udFByZWxvYWRUYWdzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBoZWFkID0gLyojX19QVVJFX18qLyBfanN4cyhfRnJhZ21lbnQsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICBsYXllckFzc2V0cyxcbiAgICAgICAgICAgICAgICAgICAgcnNjUGF5bG9hZEhlYWRcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBvdmVycmlkZGVuU2VnbWVudCxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVyU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIHNlZWREYXRhLFxuICAgICAgICAgICAgICAgICAgICBoZWFkXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBJZiB3ZSBhcmUgbm90IHJlbmRlcmluZyBvbiB0aGlzIGxldmVsIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlIGN1cnJlbnRcbiAgICAvLyBzZWdtZW50IGhhcyBhIGxheW91dC4gSWYgc28sIHdlIG5lZWQgdG8gdHJhY2sgYWxsIHRoZSB1c2VkIENTUyB0byBtYWtlXG4gICAgLy8gdGhlIHJlc3VsdCBjb25zaXN0ZW50LlxuICAgIGNvbnN0IGxheW91dFBhdGggPSBsYXlvdXQgPT0gbnVsbCA/IHZvaWQgMCA6IGxheW91dFsxXTtcbiAgICBjb25zdCBpbmplY3RlZENTU1dpdGhDdXJyZW50TGF5b3V0ID0gbmV3IFNldChpbmplY3RlZENTUyk7XG4gICAgY29uc3QgaW5qZWN0ZWRKU1dpdGhDdXJyZW50TGF5b3V0ID0gbmV3IFNldChpbmplY3RlZEpTKTtcbiAgICBjb25zdCBpbmplY3RlZEZvbnRQcmVsb2FkVGFnc1dpdGhDdXJyZW50TGF5b3V0ID0gbmV3IFNldChpbmplY3RlZEZvbnRQcmVsb2FkVGFncyk7XG4gICAgaWYgKGxheW91dFBhdGgpIHtcbiAgICAgICAgZ2V0TGlua0FuZFNjcmlwdFRhZ3MoY3R4LmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LCBsYXlvdXRQYXRoLCBpbmplY3RlZENTU1dpdGhDdXJyZW50TGF5b3V0LCBpbmplY3RlZEpTV2l0aEN1cnJlbnRMYXlvdXQsIHRydWUpO1xuICAgICAgICBnZXRQcmVsb2FkYWJsZUZvbnRzKG5leHRGb250TWFuaWZlc3QsIGxheW91dFBhdGgsIGluamVjdGVkRm9udFByZWxvYWRUYWdzV2l0aEN1cnJlbnRMYXlvdXQpO1xuICAgIH1cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIHBhcmFsbGVsIHJvdXRlcy5cbiAgICBjb25zdCBwYXRocyA9IChhd2FpdCBQcm9taXNlLmFsbChwYXJhbGxlbFJvdXRlc0tleXMubWFwKGFzeW5jIChwYXJhbGxlbFJvdXRlS2V5KT0+e1xuICAgICAgICAvLyBmb3IgKGNvbnN0IHBhcmFsbGVsUm91dGVLZXkgb2YgcGFyYWxsZWxSb3V0ZXNLZXlzKSB7XG4gICAgICAgIGNvbnN0IHBhcmFsbGVsUm91dGUgPSBwYXJhbGxlbFJvdXRlc1twYXJhbGxlbFJvdXRlS2V5XTtcbiAgICAgICAgY29uc3QgY3VycmVudFNlZ21lbnRQYXRoID0gaXNGaXJzdCA/IFtcbiAgICAgICAgICAgIHBhcmFsbGVsUm91dGVLZXlcbiAgICAgICAgXSA6IFtcbiAgICAgICAgICAgIGFjdHVhbFNlZ21lbnQsXG4gICAgICAgICAgICBwYXJhbGxlbFJvdXRlS2V5XG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHBhdGggPSBhd2FpdCB3YWxrVHJlZVdpdGhGbGlnaHRSb3V0ZXJTdGF0ZSh7XG4gICAgICAgICAgICBjdHgsXG4gICAgICAgICAgICBjcmVhdGVTZWdtZW50UGF0aDogKGNoaWxkKT0+e1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTZWdtZW50UGF0aChbXG4gICAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRTZWdtZW50UGF0aCxcbiAgICAgICAgICAgICAgICAgICAgLi4uY2hpbGRcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2FkZXJUcmVlVG9GaWx0ZXI6IHBhcmFsbGVsUm91dGUsXG4gICAgICAgICAgICBwYXJlbnRQYXJhbXM6IGN1cnJlbnRQYXJhbXMsXG4gICAgICAgICAgICBmbGlnaHRSb3V0ZXJTdGF0ZTogZmxpZ2h0Um91dGVyU3RhdGUgJiYgZmxpZ2h0Um91dGVyU3RhdGVbMV1bcGFyYWxsZWxSb3V0ZUtleV0sXG4gICAgICAgICAgICBwYXJlbnRSZW5kZXJlZDogcGFyZW50UmVuZGVyZWQgfHwgcmVuZGVyQ29tcG9uZW50c09uVGhpc0xldmVsLFxuICAgICAgICAgICAgaXNGaXJzdDogZmFsc2UsXG4gICAgICAgICAgICByc2NQYXlsb2FkSGVhZCxcbiAgICAgICAgICAgIGluamVjdGVkQ1NTOiBpbmplY3RlZENTU1dpdGhDdXJyZW50TGF5b3V0LFxuICAgICAgICAgICAgaW5qZWN0ZWRKUzogaW5qZWN0ZWRKU1dpdGhDdXJyZW50TGF5b3V0LFxuICAgICAgICAgICAgaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3M6IGluamVjdGVkRm9udFByZWxvYWRUYWdzV2l0aEN1cnJlbnRMYXlvdXQsXG4gICAgICAgICAgICByb290TGF5b3V0SW5jbHVkZWQ6IHJvb3RMYXlvdXRJbmNsdWRlZEF0VGhpc0xldmVsT3JBYm92ZSxcbiAgICAgICAgICAgIGFzTm90Rm91bmQsXG4gICAgICAgICAgICBtZXRhZGF0YU91dGxldFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBhdGgubWFwKChpdGVtKT0+e1xuICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBzZW5kIG92ZXIgZGVmYXVsdCByb3V0ZXMgaW4gdGhlIGZsaWdodCBkYXRhXG4gICAgICAgICAgICAvLyBiZWNhdXNlIHRoZXkgYXJlIGFsd2F5cyBpZ25vcmVkIGJ5IHRoZSBjbGllbnQsIHVubGVzcyBpdCdzIGEgcmVmZXRjaFxuICAgICAgICAgICAgaWYgKGl0ZW1bMF0gPT09IERFRkFVTFRfU0VHTUVOVF9LRVkgJiYgZmxpZ2h0Um91dGVyU3RhdGUgJiYgISFmbGlnaHRSb3V0ZXJTdGF0ZVsxXVtwYXJhbGxlbFJvdXRlS2V5XVswXSAmJiBmbGlnaHRSb3V0ZXJTdGF0ZVsxXVtwYXJhbGxlbFJvdXRlS2V5XVszXSAhPT0gXCJyZWZldGNoXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgYWN0dWFsU2VnbWVudCxcbiAgICAgICAgICAgICAgICBwYXJhbGxlbFJvdXRlS2V5LFxuICAgICAgICAgICAgICAgIC4uLml0ZW1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH0pLmZpbHRlcihCb29sZWFuKTtcbiAgICB9KSkpLmZsYXQoKTtcbiAgICByZXR1cm4gcGF0aHM7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXdhbGstdHJlZS13aXRoLWZsaWdodC1yb3V0ZXItc3RhdGUuanMubWFwIl0sIm5hbWVzIjpbImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiUmVhY3QiLCJjYW5TZWdtZW50QmVPdmVycmlkZGVuIiwibWF0Y2hTZWdtZW50IiwiZ2V0TGlua0FuZFNjcmlwdFRhZ3MiLCJnZXRQcmVsb2FkYWJsZUZvbnRzIiwiYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudCIsImNyZWF0ZUZsaWdodFJvdXRlclN0YXRlRnJvbUxvYWRlclRyZWUiLCJwYXJzZUxvYWRlclRyZWUiLCJnZXRMYXllckFzc2V0cyIsImhhc0xvYWRpbmdDb21wb25lbnRJblRyZWUiLCJjcmVhdGVDb21wb25lbnRUcmVlIiwiREVGQVVMVF9TRUdNRU5UX0tFWSIsIndhbGtUcmVlV2l0aEZsaWdodFJvdXRlclN0YXRlIiwiY3JlYXRlU2VnbWVudFBhdGgiLCJsb2FkZXJUcmVlVG9GaWx0ZXIiLCJwYXJlbnRQYXJhbXMiLCJpc0ZpcnN0IiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJwYXJlbnRSZW5kZXJlZCIsInJzY1BheWxvYWRIZWFkIiwiaW5qZWN0ZWRDU1MiLCJpbmplY3RlZEpTIiwiaW5qZWN0ZWRGb250UHJlbG9hZFRhZ3MiLCJyb290TGF5b3V0SW5jbHVkZWQiLCJhc05vdEZvdW5kIiwibWV0YWRhdGFPdXRsZXQiLCJjdHgiLCJyZW5kZXJPcHRzIiwibmV4dEZvbnRNYW5pZmVzdCIsImV4cGVyaW1lbnRhbCIsInF1ZXJ5IiwiaXNQcmVmZXRjaCIsImdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50IiwiY29tcG9uZW50TW9kIiwidHJlZSIsImxvYWRlclRyZWUiLCJzZWdtZW50IiwicGFyYWxsZWxSb3V0ZXMiLCJjb21wb25lbnRzIiwicGFyYWxsZWxSb3V0ZXNLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImxheW91dCIsImlzTGF5b3V0Iiwicm9vdExheW91dEF0VGhpc0xldmVsIiwicm9vdExheW91dEluY2x1ZGVkQXRUaGlzTGV2ZWxPckFib3ZlIiwic2VnbWVudFBhcmFtIiwiY3VycmVudFBhcmFtcyIsInZhbHVlIiwicGFyYW0iLCJhY3R1YWxTZWdtZW50IiwidHJlZVNlZ21lbnQiLCJyZW5kZXJDb21wb25lbnRzT25UaGlzTGV2ZWwiLCJsZW5ndGgiLCJzaG91bGRTa2lwQ29tcG9uZW50VHJlZSIsInBwciIsIkJvb2xlYW4iLCJsb2FkaW5nIiwib3ZlcnJpZGRlblNlZ21lbnQiLCJyb3V0ZXJTdGF0ZSIsInNlZWREYXRhIiwiZmlyc3RJdGVtIiwibGF5b3V0T3JQYWdlUGF0aCIsImxheWVyQXNzZXRzIiwiU2V0IiwiaGVhZCIsImNoaWxkcmVuIiwibGF5b3V0UGF0aCIsImluamVjdGVkQ1NTV2l0aEN1cnJlbnRMYXlvdXQiLCJpbmplY3RlZEpTV2l0aEN1cnJlbnRMYXlvdXQiLCJpbmplY3RlZEZvbnRQcmVsb2FkVGFnc1dpdGhDdXJyZW50TGF5b3V0IiwiY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QiLCJwYXRocyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJwYXJhbGxlbFJvdXRlS2V5IiwicGFyYWxsZWxSb3V0ZSIsImN1cnJlbnRTZWdtZW50UGF0aCIsInBhdGgiLCJjaGlsZCIsIml0ZW0iLCJmaWx0ZXIiLCJmbGF0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/app-render/walk-tree-with-flight-router-state.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DraftModeProvider: () => (/* binding */ DraftModeProvider)\n/* harmony export */ });\n/* harmony import */ var _api_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/api-utils/index.js\");\n\nclass DraftModeProvider {\n constructor(previewProps, req, cookies, mutableCookies){\n var _cookies_get;\n // The logic for draftMode() is very similar to tryGetPreviewData()\n // but Draft Mode does not have any data associated with it.\n const isOnDemandRevalidate = previewProps && (0,_api_utils__WEBPACK_IMPORTED_MODULE_0__.checkIsOnDemandRevalidate)(req, previewProps).isOnDemandRevalidate;\n const cookieValue = (_cookies_get = cookies.get(_api_utils__WEBPACK_IMPORTED_MODULE_0__.COOKIE_NAME_PRERENDER_BYPASS)) == null ? void 0 : _cookies_get.value;\n this.isEnabled = Boolean(!isOnDemandRevalidate && cookieValue && previewProps && cookieValue === previewProps.previewModeId);\n this._previewModeId = previewProps == null ? void 0 : previewProps.previewModeId;\n this._mutableCookies = mutableCookies;\n }\n enable() {\n if (!this._previewModeId) {\n throw new Error(\"Invariant: previewProps missing previewModeId this should never happen\");\n }\n this._mutableCookies.set({\n name: _api_utils__WEBPACK_IMPORTED_MODULE_0__.COOKIE_NAME_PRERENDER_BYPASS,\n value: this._previewModeId,\n httpOnly: true,\n sameSite: false ? 0 : \"lax\",\n secure: \"development\" !== \"development\",\n path: \"/\"\n });\n }\n disable() {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n this._mutableCookies.set({\n name: _api_utils__WEBPACK_IMPORTED_MODULE_0__.COOKIE_NAME_PRERENDER_BYPASS,\n value: \"\",\n httpOnly: true,\n sameSite: false ? 0 : \"lax\",\n secure: \"development\" !== \"development\",\n path: \"/\",\n expires: new Date(0)\n });\n }\n} //# sourceMappingURL=draft-mode-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FzeW5jLXN0b3JhZ2UvZHJhZnQtbW9kZS1wcm92aWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1RjtBQUNoRixNQUFNRTtJQUNUQyxZQUFZQyxZQUFZLEVBQUVDLEdBQUcsRUFBRUMsT0FBTyxFQUFFQyxjQUFjLENBQUM7UUFDbkQsSUFBSUM7UUFDSixtRUFBbUU7UUFDbkUsNERBQTREO1FBQzVELE1BQU1DLHVCQUF1QkwsZ0JBQWdCSCxxRUFBeUJBLENBQUNJLEtBQUtELGNBQWNLLG9CQUFvQjtRQUM5RyxNQUFNQyxjQUFjLENBQUNGLGVBQWVGLFFBQVFLLEdBQUcsQ0FBQ1gsb0VBQTRCQSxDQUFBLEtBQU0sT0FBTyxLQUFLLElBQUlRLGFBQWFJLEtBQUs7UUFDcEgsSUFBSSxDQUFDQyxTQUFTLEdBQUdDLFFBQVEsQ0FBQ0wsd0JBQXdCQyxlQUFlTixnQkFBZ0JNLGdCQUFnQk4sYUFBYVcsYUFBYTtRQUMzSCxJQUFJLENBQUNDLGNBQWMsR0FBR1osZ0JBQWdCLE9BQU8sS0FBSyxJQUFJQSxhQUFhVyxhQUFhO1FBQ2hGLElBQUksQ0FBQ0UsZUFBZSxHQUFHVjtJQUMzQjtJQUNBVyxTQUFTO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQ0YsY0FBYyxFQUFFO1lBQ3RCLE1BQU0sSUFBSUcsTUFBTTtRQUNwQjtRQUNBLElBQUksQ0FBQ0YsZUFBZSxDQUFDRyxHQUFHLENBQUM7WUFDckJDLE1BQU1yQixvRUFBNEJBO1lBQ2xDWSxPQUFPLElBQUksQ0FBQ0ksY0FBYztZQUMxQk0sVUFBVTtZQUNWQyxVQUFVQyxNQUFzQyxHQUFHLENBQU0sR0FBRztZQUM1REMsUUFBUUQsa0JBQXlCO1lBQ2pDRSxNQUFNO1FBQ1Y7SUFDSjtJQUNBQyxVQUFVO1FBQ04sMkRBQTJEO1FBQzNELG9EQUFvRDtRQUNwRCx3RUFBd0U7UUFDeEUsSUFBSSxDQUFDVixlQUFlLENBQUNHLEdBQUcsQ0FBQztZQUNyQkMsTUFBTXJCLG9FQUE0QkE7WUFDbENZLE9BQU87WUFDUFUsVUFBVTtZQUNWQyxVQUFVQyxNQUFzQyxHQUFHLENBQU0sR0FBRztZQUM1REMsUUFBUUQsa0JBQXlCO1lBQ2pDRSxNQUFNO1lBQ05FLFNBQVMsSUFBSUMsS0FBSztRQUN0QjtJQUNKO0FBQ0osRUFFQSwrQ0FBK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9hc3luYy1zdG9yYWdlL2RyYWZ0LW1vZGUtcHJvdmlkZXIuanM/NGEyOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTLCBjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlIH0gZnJvbSBcIi4uL2FwaS11dGlsc1wiO1xuZXhwb3J0IGNsYXNzIERyYWZ0TW9kZVByb3ZpZGVyIHtcbiAgICBjb25zdHJ1Y3RvcihwcmV2aWV3UHJvcHMsIHJlcSwgY29va2llcywgbXV0YWJsZUNvb2tpZXMpe1xuICAgICAgICB2YXIgX2Nvb2tpZXNfZ2V0O1xuICAgICAgICAvLyBUaGUgbG9naWMgZm9yIGRyYWZ0TW9kZSgpIGlzIHZlcnkgc2ltaWxhciB0byB0cnlHZXRQcmV2aWV3RGF0YSgpXG4gICAgICAgIC8vIGJ1dCBEcmFmdCBNb2RlIGRvZXMgbm90IGhhdmUgYW55IGRhdGEgYXNzb2NpYXRlZCB3aXRoIGl0LlxuICAgICAgICBjb25zdCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IHByZXZpZXdQcm9wcyAmJiBjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlKHJlcSwgcHJldmlld1Byb3BzKS5pc09uRGVtYW5kUmV2YWxpZGF0ZTtcbiAgICAgICAgY29uc3QgY29va2llVmFsdWUgPSAoX2Nvb2tpZXNfZ2V0ID0gY29va2llcy5nZXQoQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUykpID09IG51bGwgPyB2b2lkIDAgOiBfY29va2llc19nZXQudmFsdWU7XG4gICAgICAgIHRoaXMuaXNFbmFibGVkID0gQm9vbGVhbighaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgY29va2llVmFsdWUgJiYgcHJldmlld1Byb3BzICYmIGNvb2tpZVZhbHVlID09PSBwcmV2aWV3UHJvcHMucHJldmlld01vZGVJZCk7XG4gICAgICAgIHRoaXMuX3ByZXZpZXdNb2RlSWQgPSBwcmV2aWV3UHJvcHMgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXZpZXdQcm9wcy5wcmV2aWV3TW9kZUlkO1xuICAgICAgICB0aGlzLl9tdXRhYmxlQ29va2llcyA9IG11dGFibGVDb29raWVzO1xuICAgIH1cbiAgICBlbmFibGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5fcHJldmlld01vZGVJZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiBwcmV2aWV3UHJvcHMgbWlzc2luZyBwcmV2aWV3TW9kZUlkIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tdXRhYmxlQ29va2llcy5zZXQoe1xuICAgICAgICAgICAgbmFtZTogQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUyxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLl9wcmV2aWV3TW9kZUlkLFxuICAgICAgICAgICAgaHR0cE9ubHk6IHRydWUsXG4gICAgICAgICAgICBzYW1lU2l0ZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIiA/IFwibm9uZVwiIDogXCJsYXhcIixcbiAgICAgICAgICAgIHNlY3VyZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIixcbiAgICAgICAgICAgIHBhdGg6IFwiL1wiXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkaXNhYmxlKCkge1xuICAgICAgICAvLyBUbyBkZWxldGUgYSBjb29raWUsIHNldCBgZXhwaXJlc2AgdG8gYSBkYXRlIGluIHRoZSBwYXN0OlxuICAgICAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjI2NSNzZWN0aW9uLTQuMS4xXG4gICAgICAgIC8vIGBNYXgtQWdlOiAwYCBpcyBub3QgdmFsaWQsIHRodXMgaWdub3JlZCwgYW5kIHRoZSBjb29raWUgaXMgcGVyc2lzdGVkLlxuICAgICAgICB0aGlzLl9tdXRhYmxlQ29va2llcy5zZXQoe1xuICAgICAgICAgICAgbmFtZTogQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUyxcbiAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgaHR0cE9ubHk6IHRydWUsXG4gICAgICAgICAgICBzYW1lU2l0ZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIiA/IFwibm9uZVwiIDogXCJsYXhcIixcbiAgICAgICAgICAgIHNlY3VyZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIixcbiAgICAgICAgICAgIHBhdGg6IFwiL1wiLFxuICAgICAgICAgICAgZXhwaXJlczogbmV3IERhdGUoMClcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kcmFmdC1tb2RlLXByb3ZpZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTIiwiY2hlY2tJc09uRGVtYW5kUmV2YWxpZGF0ZSIsIkRyYWZ0TW9kZVByb3ZpZGVyIiwiY29uc3RydWN0b3IiLCJwcmV2aWV3UHJvcHMiLCJyZXEiLCJjb29raWVzIiwibXV0YWJsZUNvb2tpZXMiLCJfY29va2llc19nZXQiLCJpc09uRGVtYW5kUmV2YWxpZGF0ZSIsImNvb2tpZVZhbHVlIiwiZ2V0IiwidmFsdWUiLCJpc0VuYWJsZWQiLCJCb29sZWFuIiwicHJldmlld01vZGVJZCIsIl9wcmV2aWV3TW9kZUlkIiwiX211dGFibGVDb29raWVzIiwiZW5hYmxlIiwiRXJyb3IiLCJzZXQiLCJuYW1lIiwiaHR0cE9ubHkiLCJzYW1lU2l0ZSIsInByb2Nlc3MiLCJzZWN1cmUiLCJwYXRoIiwiZGlzYWJsZSIsImV4cGlyZXMiLCJEYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js":
-/*!**********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js ***!
- \**********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RequestAsyncStorageWrapper: () => (/* binding */ RequestAsyncStorageWrapper)\n/* harmony export */ });\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../web/spec-extension/adapters/headers */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js\");\n/* harmony import */ var _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../web/spec-extension/adapters/request-cookies */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\");\n/* harmony import */ var _web_spec_extension_cookies__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../web/spec-extension/cookies */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n/* harmony import */ var _draft_mode_provider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./draft-mode-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js\");\n\n\n\n\n\nfunction getHeaders(headers) {\n const cleaned = _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.from(headers);\n for (const param of _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.FLIGHT_PARAMETERS){\n cleaned.delete(param.toString().toLowerCase());\n }\n return _web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.seal(cleaned);\n}\nfunction getCookies(headers) {\n const cookies = new _web_spec_extension_cookies__WEBPACK_IMPORTED_MODULE_3__.RequestCookies(_web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.from(headers));\n return _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_2__.RequestCookiesAdapter.seal(cookies);\n}\nfunction getMutableCookies(headers, onUpdateCookies) {\n const cookies = new _web_spec_extension_cookies__WEBPACK_IMPORTED_MODULE_3__.RequestCookies(_web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.from(headers));\n return _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_2__.MutableRequestCookiesAdapter.wrap(cookies, onUpdateCookies);\n}\nconst RequestAsyncStorageWrapper = {\n /**\n * Wrap the callback with the given store so it can access the underlying\n * store using hooks.\n *\n * @param storage underlying storage object returned by the module\n * @param context context to seed the store\n * @param callback function to call within the scope of the context\n * @returns the result returned by the callback\n */ wrap (storage, { req, res, renderOpts }, callback) {\n let previewProps = undefined;\n if (renderOpts && \"previewProps\" in renderOpts) {\n // TODO: investigate why previewProps isn't on RenderOpts\n previewProps = renderOpts.previewProps;\n }\n function defaultOnUpdateCookies(cookies) {\n if (res) {\n res.setHeader(\"Set-Cookie\", cookies);\n }\n }\n const cache = {};\n const store = {\n get headers () {\n if (!cache.headers) {\n // Seal the headers object that'll freeze out any methods that could\n // mutate the underlying data.\n cache.headers = getHeaders(req.headers);\n }\n return cache.headers;\n },\n get cookies () {\n if (!cache.cookies) {\n // Seal the cookies object that'll freeze out any methods that could\n // mutate the underlying data.\n cache.cookies = getCookies(req.headers);\n }\n return cache.cookies;\n },\n get mutableCookies () {\n if (!cache.mutableCookies) {\n cache.mutableCookies = getMutableCookies(req.headers, (renderOpts == null ? void 0 : renderOpts.onUpdateCookies) || (res ? defaultOnUpdateCookies : undefined));\n }\n return cache.mutableCookies;\n },\n get draftMode () {\n if (!cache.draftMode) {\n cache.draftMode = new _draft_mode_provider__WEBPACK_IMPORTED_MODULE_4__.DraftModeProvider(previewProps, req, this.cookies, this.mutableCookies);\n }\n return cache.draftMode;\n }\n };\n return storage.run(store, callback, store);\n }\n}; //# sourceMappingURL=request-async-storage-wrapper.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FzeW5jLXN0b3JhZ2UvcmVxdWVzdC1hc3luYy1zdG9yYWdlLXdyYXBwZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQStFO0FBQ1A7QUFDNkM7QUFDdEQ7QUFDTDtBQUMxRCxTQUFTTSxXQUFXQyxPQUFPO0lBQ3ZCLE1BQU1DLFVBQVVQLGdGQUFjQSxDQUFDUSxJQUFJLENBQUNGO0lBQ3BDLEtBQUssTUFBTUcsU0FBU1Ysb0ZBQWlCQSxDQUFDO1FBQ2xDUSxRQUFRRyxNQUFNLENBQUNELE1BQU1FLFFBQVEsR0FBR0MsV0FBVztJQUMvQztJQUNBLE9BQU9aLGdGQUFjQSxDQUFDYSxJQUFJLENBQUNOO0FBQy9CO0FBQ0EsU0FBU08sV0FBV1IsT0FBTztJQUN2QixNQUFNUyxVQUFVLElBQUlaLHVFQUFjQSxDQUFDSCxnRkFBY0EsQ0FBQ1EsSUFBSSxDQUFDRjtJQUN2RCxPQUFPSiwrRkFBcUJBLENBQUNXLElBQUksQ0FBQ0U7QUFDdEM7QUFDQSxTQUFTQyxrQkFBa0JWLE9BQU8sRUFBRVcsZUFBZTtJQUMvQyxNQUFNRixVQUFVLElBQUlaLHVFQUFjQSxDQUFDSCxnRkFBY0EsQ0FBQ1EsSUFBSSxDQUFDRjtJQUN2RCxPQUFPTCxzR0FBNEJBLENBQUNpQixJQUFJLENBQUNILFNBQVNFO0FBQ3REO0FBQ08sTUFBTUUsNkJBQTZCO0lBQ3RDOzs7Ozs7OztHQVFELEdBQUdELE1BQU1FLE9BQU8sRUFBRSxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsVUFBVSxFQUFFLEVBQUVDLFFBQVE7UUFDL0MsSUFBSUMsZUFBZUM7UUFDbkIsSUFBSUgsY0FBYyxrQkFBa0JBLFlBQVk7WUFDNUMseURBQXlEO1lBQ3pERSxlQUFlRixXQUFXRSxZQUFZO1FBQzFDO1FBQ0EsU0FBU0UsdUJBQXVCWixPQUFPO1lBQ25DLElBQUlPLEtBQUs7Z0JBQ0xBLElBQUlNLFNBQVMsQ0FBQyxjQUFjYjtZQUNoQztRQUNKO1FBQ0EsTUFBTWMsUUFBUSxDQUFDO1FBQ2YsTUFBTUMsUUFBUTtZQUNWLElBQUl4QixXQUFXO2dCQUNYLElBQUksQ0FBQ3VCLE1BQU12QixPQUFPLEVBQUU7b0JBQ2hCLG9FQUFvRTtvQkFDcEUsOEJBQThCO29CQUM5QnVCLE1BQU12QixPQUFPLEdBQUdELFdBQVdnQixJQUFJZixPQUFPO2dCQUMxQztnQkFDQSxPQUFPdUIsTUFBTXZCLE9BQU87WUFDeEI7WUFDQSxJQUFJUyxXQUFXO2dCQUNYLElBQUksQ0FBQ2MsTUFBTWQsT0FBTyxFQUFFO29CQUNoQixvRUFBb0U7b0JBQ3BFLDhCQUE4QjtvQkFDOUJjLE1BQU1kLE9BQU8sR0FBR0QsV0FBV08sSUFBSWYsT0FBTztnQkFDMUM7Z0JBQ0EsT0FBT3VCLE1BQU1kLE9BQU87WUFDeEI7WUFDQSxJQUFJZ0Isa0JBQWtCO2dCQUNsQixJQUFJLENBQUNGLE1BQU1FLGNBQWMsRUFBRTtvQkFDdkJGLE1BQU1FLGNBQWMsR0FBR2Ysa0JBQWtCSyxJQUFJZixPQUFPLEVBQUUsQ0FBQ2lCLGNBQWMsT0FBTyxLQUFLLElBQUlBLFdBQVdOLGVBQWUsS0FBTUssQ0FBQUEsTUFBTUsseUJBQXlCRCxTQUFRO2dCQUNoSztnQkFDQSxPQUFPRyxNQUFNRSxjQUFjO1lBQy9CO1lBQ0EsSUFBSUMsYUFBYTtnQkFDYixJQUFJLENBQUNILE1BQU1HLFNBQVMsRUFBRTtvQkFDbEJILE1BQU1HLFNBQVMsR0FBRyxJQUFJNUIsbUVBQWlCQSxDQUFDcUIsY0FBY0osS0FBSyxJQUFJLENBQUNOLE9BQU8sRUFBRSxJQUFJLENBQUNnQixjQUFjO2dCQUNoRztnQkFDQSxPQUFPRixNQUFNRyxTQUFTO1lBQzFCO1FBQ0o7UUFDQSxPQUFPWixRQUFRYSxHQUFHLENBQUNILE9BQU9OLFVBQVVNO0lBQ3hDO0FBQ0osRUFBRSxDQUVGLHlEQUF5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FzeW5jLXN0b3JhZ2UvcmVxdWVzdC1hc3luYy1zdG9yYWdlLXdyYXBwZXIuanM/MjFiYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTElHSFRfUEFSQU1FVEVSUyB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbmltcG9ydCB7IEhlYWRlcnNBZGFwdGVyIH0gZnJvbSBcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzXCI7XG5pbXBvcnQgeyBNdXRhYmxlUmVxdWVzdENvb2tpZXNBZGFwdGVyLCBSZXF1ZXN0Q29va2llc0FkYXB0ZXIgfSBmcm9tIFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlcXVlc3QtY29va2llc1wiO1xuaW1wb3J0IHsgUmVxdWVzdENvb2tpZXMgfSBmcm9tIFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2Nvb2tpZXNcIjtcbmltcG9ydCB7IERyYWZ0TW9kZVByb3ZpZGVyIH0gZnJvbSBcIi4vZHJhZnQtbW9kZS1wcm92aWRlclwiO1xuZnVuY3Rpb24gZ2V0SGVhZGVycyhoZWFkZXJzKSB7XG4gICAgY29uc3QgY2xlYW5lZCA9IEhlYWRlcnNBZGFwdGVyLmZyb20oaGVhZGVycyk7XG4gICAgZm9yIChjb25zdCBwYXJhbSBvZiBGTElHSFRfUEFSQU1FVEVSUyl7XG4gICAgICAgIGNsZWFuZWQuZGVsZXRlKHBhcmFtLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuICAgIHJldHVybiBIZWFkZXJzQWRhcHRlci5zZWFsKGNsZWFuZWQpO1xufVxuZnVuY3Rpb24gZ2V0Q29va2llcyhoZWFkZXJzKSB7XG4gICAgY29uc3QgY29va2llcyA9IG5ldyBSZXF1ZXN0Q29va2llcyhIZWFkZXJzQWRhcHRlci5mcm9tKGhlYWRlcnMpKTtcbiAgICByZXR1cm4gUmVxdWVzdENvb2tpZXNBZGFwdGVyLnNlYWwoY29va2llcyk7XG59XG5mdW5jdGlvbiBnZXRNdXRhYmxlQ29va2llcyhoZWFkZXJzLCBvblVwZGF0ZUNvb2tpZXMpIHtcbiAgICBjb25zdCBjb29raWVzID0gbmV3IFJlcXVlc3RDb29raWVzKEhlYWRlcnNBZGFwdGVyLmZyb20oaGVhZGVycykpO1xuICAgIHJldHVybiBNdXRhYmxlUmVxdWVzdENvb2tpZXNBZGFwdGVyLndyYXAoY29va2llcywgb25VcGRhdGVDb29raWVzKTtcbn1cbmV4cG9ydCBjb25zdCBSZXF1ZXN0QXN5bmNTdG9yYWdlV3JhcHBlciA9IHtcbiAgICAvKipcbiAgICogV3JhcCB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgZ2l2ZW4gc3RvcmUgc28gaXQgY2FuIGFjY2VzcyB0aGUgdW5kZXJseWluZ1xuICAgKiBzdG9yZSB1c2luZyBob29rcy5cbiAgICpcbiAgICogQHBhcmFtIHN0b3JhZ2UgdW5kZXJseWluZyBzdG9yYWdlIG9iamVjdCByZXR1cm5lZCBieSB0aGUgbW9kdWxlXG4gICAqIEBwYXJhbSBjb250ZXh0IGNvbnRleHQgdG8gc2VlZCB0aGUgc3RvcmVcbiAgICogQHBhcmFtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgY29udGV4dFxuICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0IHJldHVybmVkIGJ5IHRoZSBjYWxsYmFja1xuICAgKi8gd3JhcCAoc3RvcmFnZSwgeyByZXEsIHJlcywgcmVuZGVyT3B0cyB9LCBjYWxsYmFjaykge1xuICAgICAgICBsZXQgcHJldmlld1Byb3BzID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAocmVuZGVyT3B0cyAmJiBcInByZXZpZXdQcm9wc1wiIGluIHJlbmRlck9wdHMpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IGludmVzdGlnYXRlIHdoeSBwcmV2aWV3UHJvcHMgaXNuJ3Qgb24gUmVuZGVyT3B0c1xuICAgICAgICAgICAgcHJldmlld1Byb3BzID0gcmVuZGVyT3B0cy5wcmV2aWV3UHJvcHM7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZGVmYXVsdE9uVXBkYXRlQ29va2llcyhjb29raWVzKSB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIlNldC1Db29raWVcIiwgY29va2llcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGUgPSB7fTtcbiAgICAgICAgY29uc3Qgc3RvcmUgPSB7XG4gICAgICAgICAgICBnZXQgaGVhZGVycyAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjYWNoZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNlYWwgdGhlIGhlYWRlcnMgb2JqZWN0IHRoYXQnbGwgZnJlZXplIG91dCBhbnkgbWV0aG9kcyB0aGF0IGNvdWxkXG4gICAgICAgICAgICAgICAgICAgIC8vIG11dGF0ZSB0aGUgdW5kZXJseWluZyBkYXRhLlxuICAgICAgICAgICAgICAgICAgICBjYWNoZS5oZWFkZXJzID0gZ2V0SGVhZGVycyhyZXEuaGVhZGVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS5oZWFkZXJzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBjb29raWVzICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNhY2hlLmNvb2tpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VhbCB0aGUgY29va2llcyBvYmplY3QgdGhhdCdsbCBmcmVlemUgb3V0IGFueSBtZXRob2RzIHRoYXQgY291bGRcbiAgICAgICAgICAgICAgICAgICAgLy8gbXV0YXRlIHRoZSB1bmRlcmx5aW5nIGRhdGEuXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlLmNvb2tpZXMgPSBnZXRDb29raWVzKHJlcS5oZWFkZXJzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLmNvb2tpZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IG11dGFibGVDb29raWVzICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNhY2hlLm11dGFibGVDb29raWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlLm11dGFibGVDb29raWVzID0gZ2V0TXV0YWJsZUNvb2tpZXMocmVxLmhlYWRlcnMsIChyZW5kZXJPcHRzID09IG51bGwgPyB2b2lkIDAgOiByZW5kZXJPcHRzLm9uVXBkYXRlQ29va2llcykgfHwgKHJlcyA/IGRlZmF1bHRPblVwZGF0ZUNvb2tpZXMgOiB1bmRlZmluZWQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLm11dGFibGVDb29raWVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBkcmFmdE1vZGUgKCkge1xuICAgICAgICAgICAgICAgIGlmICghY2FjaGUuZHJhZnRNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlLmRyYWZ0TW9kZSA9IG5ldyBEcmFmdE1vZGVQcm92aWRlcihwcmV2aWV3UHJvcHMsIHJlcSwgdGhpcy5jb29raWVzLCB0aGlzLm11dGFibGVDb29raWVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLmRyYWZ0TW9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHN0b3JhZ2UucnVuKHN0b3JlLCBjYWxsYmFjaywgc3RvcmUpO1xuICAgIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtYXN5bmMtc3RvcmFnZS13cmFwcGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJGTElHSFRfUEFSQU1FVEVSUyIsIkhlYWRlcnNBZGFwdGVyIiwiTXV0YWJsZVJlcXVlc3RDb29raWVzQWRhcHRlciIsIlJlcXVlc3RDb29raWVzQWRhcHRlciIsIlJlcXVlc3RDb29raWVzIiwiRHJhZnRNb2RlUHJvdmlkZXIiLCJnZXRIZWFkZXJzIiwiaGVhZGVycyIsImNsZWFuZWQiLCJmcm9tIiwicGFyYW0iLCJkZWxldGUiLCJ0b1N0cmluZyIsInRvTG93ZXJDYXNlIiwic2VhbCIsImdldENvb2tpZXMiLCJjb29raWVzIiwiZ2V0TXV0YWJsZUNvb2tpZXMiLCJvblVwZGF0ZUNvb2tpZXMiLCJ3cmFwIiwiUmVxdWVzdEFzeW5jU3RvcmFnZVdyYXBwZXIiLCJzdG9yYWdlIiwicmVxIiwicmVzIiwicmVuZGVyT3B0cyIsImNhbGxiYWNrIiwicHJldmlld1Byb3BzIiwidW5kZWZpbmVkIiwiZGVmYXVsdE9uVXBkYXRlQ29va2llcyIsInNldEhlYWRlciIsImNhY2hlIiwic3RvcmUiLCJtdXRhYmxlQ29va2llcyIsImRyYWZ0TW9kZSIsInJ1biJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/async-storage/static-generation-async-storage-wrapper.js":
-/*!********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/async-storage/static-generation-async-storage-wrapper.js ***!
- \********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StaticGenerationAsyncStorageWrapper: () => (/* binding */ StaticGenerationAsyncStorageWrapper)\n/* harmony export */ });\nconst StaticGenerationAsyncStorageWrapper = {\n wrap (storage, { urlPathname, renderOpts, postpone }, callback) {\n /**\n * Rules of Static & Dynamic HTML:\n *\n * 1.) We must generate static HTML unless the caller explicitly opts\n * in to dynamic HTML support.\n *\n * 2.) If dynamic HTML support is requested, we must honor that request\n * or throw an error. It is the sole responsibility of the caller to\n * ensure they aren't e.g. requesting dynamic HTML for an AMP page.\n *\n * 3.) If the request is in draft mode, we must generate dynamic HTML.\n *\n * 4.) If the request is a server action, we must generate dynamic HTML.\n *\n * These rules help ensure that other existing features like request caching,\n * coalescing, and ISR continue working as intended.\n */ const isStaticGeneration = !renderOpts.supportsDynamicHTML && !renderOpts.isDraftMode && !renderOpts.isServerAction;\n const store = {\n isStaticGeneration,\n urlPathname,\n pagePath: renderOpts.originalPathname,\n incrementalCache: // so that it can access the fs cache without mocks\n renderOpts.incrementalCache || globalThis.__incrementalCache,\n isRevalidate: renderOpts.isRevalidate,\n isPrerendering: renderOpts.nextExport,\n fetchCache: renderOpts.fetchCache,\n isOnDemandRevalidate: renderOpts.isOnDemandRevalidate,\n isDraftMode: renderOpts.isDraftMode,\n postpone: // we don't need to postpone.\n isStaticGeneration && renderOpts.experimental.ppr && postpone ? (reason)=>{\n // Keep track of if the postpone API has been called.\n store.postponeWasTriggered = true;\n return postpone(`This page needs to bail out of prerendering at this point because it used ${reason}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`);\n } : undefined\n };\n // TODO: remove this when we resolve accessing the store outside the execution context\n renderOpts.store = store;\n return storage.run(store, callback, store);\n }\n}; //# sourceMappingURL=static-generation-async-storage-wrapper.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FzeW5jLXN0b3JhZ2Uvc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS13cmFwcGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxzQ0FBc0M7SUFDL0NDLE1BQU1DLE9BQU8sRUFBRSxFQUFFQyxXQUFXLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFLEVBQUVDLFFBQVE7UUFDMUQ7Ozs7Ozs7Ozs7Ozs7Ozs7S0FnQkgsR0FBRyxNQUFNQyxxQkFBcUIsQ0FBQ0gsV0FBV0ksbUJBQW1CLElBQUksQ0FBQ0osV0FBV0ssV0FBVyxJQUFJLENBQUNMLFdBQVdNLGNBQWM7UUFDbkgsTUFBTUMsUUFBUTtZQUNWSjtZQUNBSjtZQUNBUyxVQUFVUixXQUFXUyxnQkFBZ0I7WUFDckNDLGtCQUNBLG1EQUFtRDtZQUNuRFYsV0FBV1UsZ0JBQWdCLElBQUlDLFdBQVdDLGtCQUFrQjtZQUM1REMsY0FBY2IsV0FBV2EsWUFBWTtZQUNyQ0MsZ0JBQWdCZCxXQUFXZSxVQUFVO1lBQ3JDQyxZQUFZaEIsV0FBV2dCLFVBQVU7WUFDakNDLHNCQUFzQmpCLFdBQVdpQixvQkFBb0I7WUFDckRaLGFBQWFMLFdBQVdLLFdBQVc7WUFDbkNKLFVBQ0EsNkJBQTZCO1lBQzdCRSxzQkFBc0JILFdBQVdrQixZQUFZLENBQUNDLEdBQUcsSUFBSWxCLFdBQVcsQ0FBQ21CO2dCQUM3RCxxREFBcUQ7Z0JBQ3JEYixNQUFNYyxvQkFBb0IsR0FBRztnQkFDN0IsT0FBT3BCLFNBQVMsQ0FBQywwRUFBMEUsRUFBRW1CLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQywrRUFBK0UsQ0FBQyxHQUFHLENBQUMsaUZBQWlGLENBQUM7WUFDclIsSUFBSUU7UUFDUjtRQUNBLHNGQUFzRjtRQUN0RnRCLFdBQVdPLEtBQUssR0FBR0E7UUFDbkIsT0FBT1QsUUFBUXlCLEdBQUcsQ0FBQ2hCLE9BQU9MLFVBQVVLO0lBQ3hDO0FBQ0osRUFBRSxDQUVGLG1FQUFtRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FzeW5jLXN0b3JhZ2Uvc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS13cmFwcGVyLmpzP2E5ZjgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2VXcmFwcGVyID0ge1xuICAgIHdyYXAgKHN0b3JhZ2UsIHsgdXJsUGF0aG5hbWUsIHJlbmRlck9wdHMsIHBvc3Rwb25lIH0sIGNhbGxiYWNrKSB7XG4gICAgICAgIC8qKlxuICAgICAqIFJ1bGVzIG9mIFN0YXRpYyAmIER5bmFtaWMgSFRNTDpcbiAgICAgKlxuICAgICAqICAgIDEuKSBXZSBtdXN0IGdlbmVyYXRlIHN0YXRpYyBIVE1MIHVubGVzcyB0aGUgY2FsbGVyIGV4cGxpY2l0bHkgb3B0c1xuICAgICAqICAgICAgICBpbiB0byBkeW5hbWljIEhUTUwgc3VwcG9ydC5cbiAgICAgKlxuICAgICAqICAgIDIuKSBJZiBkeW5hbWljIEhUTUwgc3VwcG9ydCBpcyByZXF1ZXN0ZWQsIHdlIG11c3QgaG9ub3IgdGhhdCByZXF1ZXN0XG4gICAgICogICAgICAgIG9yIHRocm93IGFuIGVycm9yLiBJdCBpcyB0aGUgc29sZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvXG4gICAgICogICAgICAgIGVuc3VyZSB0aGV5IGFyZW4ndCBlLmcuIHJlcXVlc3RpbmcgZHluYW1pYyBIVE1MIGZvciBhbiBBTVAgcGFnZS5cbiAgICAgKlxuICAgICAqICAgIDMuKSBJZiB0aGUgcmVxdWVzdCBpcyBpbiBkcmFmdCBtb2RlLCB3ZSBtdXN0IGdlbmVyYXRlIGR5bmFtaWMgSFRNTC5cbiAgICAgKlxuICAgICAqICAgIDQuKSBJZiB0aGUgcmVxdWVzdCBpcyBhIHNlcnZlciBhY3Rpb24sIHdlIG11c3QgZ2VuZXJhdGUgZHluYW1pYyBIVE1MLlxuICAgICAqXG4gICAgICogVGhlc2UgcnVsZXMgaGVscCBlbnN1cmUgdGhhdCBvdGhlciBleGlzdGluZyBmZWF0dXJlcyBsaWtlIHJlcXVlc3QgY2FjaGluZyxcbiAgICAgKiBjb2FsZXNjaW5nLCBhbmQgSVNSIGNvbnRpbnVlIHdvcmtpbmcgYXMgaW50ZW5kZWQuXG4gICAgICovIGNvbnN0IGlzU3RhdGljR2VuZXJhdGlvbiA9ICFyZW5kZXJPcHRzLnN1cHBvcnRzRHluYW1pY0hUTUwgJiYgIXJlbmRlck9wdHMuaXNEcmFmdE1vZGUgJiYgIXJlbmRlck9wdHMuaXNTZXJ2ZXJBY3Rpb247XG4gICAgICAgIGNvbnN0IHN0b3JlID0ge1xuICAgICAgICAgICAgaXNTdGF0aWNHZW5lcmF0aW9uLFxuICAgICAgICAgICAgdXJsUGF0aG5hbWUsXG4gICAgICAgICAgICBwYWdlUGF0aDogcmVuZGVyT3B0cy5vcmlnaW5hbFBhdGhuYW1lLFxuICAgICAgICAgICAgaW5jcmVtZW50YWxDYWNoZTogLy8gd2UgZmFsbGJhY2sgdG8gYSBnbG9iYWwgaW5jcmVtZW50YWwgY2FjaGUgZm9yIGVkZ2UtcnVudGltZSBsb2NhbGx5XG4gICAgICAgICAgICAvLyBzbyB0aGF0IGl0IGNhbiBhY2Nlc3MgdGhlIGZzIGNhY2hlIHdpdGhvdXQgbW9ja3NcbiAgICAgICAgICAgIHJlbmRlck9wdHMuaW5jcmVtZW50YWxDYWNoZSB8fCBnbG9iYWxUaGlzLl9faW5jcmVtZW50YWxDYWNoZSxcbiAgICAgICAgICAgIGlzUmV2YWxpZGF0ZTogcmVuZGVyT3B0cy5pc1JldmFsaWRhdGUsXG4gICAgICAgICAgICBpc1ByZXJlbmRlcmluZzogcmVuZGVyT3B0cy5uZXh0RXhwb3J0LFxuICAgICAgICAgICAgZmV0Y2hDYWNoZTogcmVuZGVyT3B0cy5mZXRjaENhY2hlLFxuICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGU6IHJlbmRlck9wdHMuaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICBpc0RyYWZ0TW9kZTogcmVuZGVyT3B0cy5pc0RyYWZ0TW9kZSxcbiAgICAgICAgICAgIHBvc3Rwb25lOiAvLyBJZiB3ZSBhcmVuJ3QgcGVyZm9ybWluZyBhIHN0YXRpYyBnZW5lcmF0aW9uIG9yIHdlIGFyZW4ndCB1c2luZyBQUFIgdGhlblxuICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBwb3N0cG9uZS5cbiAgICAgICAgICAgIGlzU3RhdGljR2VuZXJhdGlvbiAmJiByZW5kZXJPcHRzLmV4cGVyaW1lbnRhbC5wcHIgJiYgcG9zdHBvbmUgPyAocmVhc29uKT0+e1xuICAgICAgICAgICAgICAgIC8vIEtlZXAgdHJhY2sgb2YgaWYgdGhlIHBvc3Rwb25lIEFQSSBoYXMgYmVlbiBjYWxsZWQuXG4gICAgICAgICAgICAgICAgc3RvcmUucG9zdHBvbmVXYXNUcmlnZ2VyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3N0cG9uZShgVGhpcyBwYWdlIG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke3JlYXNvbn0uIGAgKyBgUmVhY3QgdGhyb3dzIHRoaXMgc3BlY2lhbCBvYmplY3QgdG8gaW5kaWNhdGUgd2hlcmUuIEl0IHNob3VsZCBub3QgYmUgY2F1Z2h0IGJ5IGAgKyBgeW91ciBvd24gdHJ5L2NhdGNoLiBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yYCk7XG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICAgIC8vIFRPRE86IHJlbW92ZSB0aGlzIHdoZW4gd2UgcmVzb2x2ZSBhY2Nlc3NpbmcgdGhlIHN0b3JlIG91dHNpZGUgdGhlIGV4ZWN1dGlvbiBjb250ZXh0XG4gICAgICAgIHJlbmRlck9wdHMuc3RvcmUgPSBzdG9yZTtcbiAgICAgICAgcmV0dXJuIHN0b3JhZ2UucnVuKHN0b3JlLCBjYWxsYmFjaywgc3RvcmUpO1xuICAgIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXRpYy1nZW5lcmF0aW9uLWFzeW5jLXN0b3JhZ2Utd3JhcHBlci5qcy5tYXAiXSwibmFtZXMiOlsiU3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZVdyYXBwZXIiLCJ3cmFwIiwic3RvcmFnZSIsInVybFBhdGhuYW1lIiwicmVuZGVyT3B0cyIsInBvc3Rwb25lIiwiY2FsbGJhY2siLCJpc1N0YXRpY0dlbmVyYXRpb24iLCJzdXBwb3J0c0R5bmFtaWNIVE1MIiwiaXNEcmFmdE1vZGUiLCJpc1NlcnZlckFjdGlvbiIsInN0b3JlIiwicGFnZVBhdGgiLCJvcmlnaW5hbFBhdGhuYW1lIiwiaW5jcmVtZW50YWxDYWNoZSIsImdsb2JhbFRoaXMiLCJfX2luY3JlbWVudGFsQ2FjaGUiLCJpc1JldmFsaWRhdGUiLCJpc1ByZXJlbmRlcmluZyIsIm5leHRFeHBvcnQiLCJmZXRjaENhY2hlIiwiaXNPbkRlbWFuZFJldmFsaWRhdGUiLCJleHBlcmltZW50YWwiLCJwcHIiLCJyZWFzb24iLCJwb3N0cG9uZVdhc1RyaWdnZXJlZCIsInVuZGVmaW5lZCIsInJ1biJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/async-storage/static-generation-async-storage-wrapper.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/base-http/index.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/base-http/index.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BaseNextRequest: () => (/* binding */ BaseNextRequest),\n/* harmony export */ BaseNextResponse: () => (/* binding */ BaseNextResponse)\n/* harmony export */ });\n/* harmony import */ var _client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../client/components/redirect-status-code */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js\");\n/* harmony import */ var _api_utils_get_cookie_parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api-utils/get-cookie-parser */ \"(ssr)/../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js\");\n\n\nclass BaseNextRequest {\n constructor(method, url, body){\n this.method = method;\n this.url = url;\n this.body = body;\n }\n // Utils implemented using the abstract methods above\n get cookies() {\n if (this._cookies) return this._cookies;\n return this._cookies = (0,_api_utils_get_cookie_parser__WEBPACK_IMPORTED_MODULE_1__.getCookieParser)(this.headers)();\n }\n}\nclass BaseNextResponse {\n constructor(destination){\n this.destination = destination;\n }\n // Utils implemented using the abstract methods above\n redirect(destination, statusCode) {\n this.setHeader(\"Location\", destination);\n this.statusCode = statusCode;\n // Since IE11 doesn't support the 308 header add backwards\n // compatibility using refresh header\n if (statusCode === _client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_0__.RedirectStatusCode.PermanentRedirect) {\n this.setHeader(\"Refresh\", `0;url=${destination}`);\n }\n return this;\n }\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Jhc2UtaHR0cC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWtGO0FBQ2pCO0FBQzFELE1BQU1FO0lBQ1RDLFlBQVlDLE1BQU0sRUFBRUMsR0FBRyxFQUFFQyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDRixNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO0lBQ2hCO0lBQ0EscURBQXFEO0lBQ3JELElBQUlDLFVBQVU7UUFDVixJQUFJLElBQUksQ0FBQ0MsUUFBUSxFQUFFLE9BQU8sSUFBSSxDQUFDQSxRQUFRO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDQSxRQUFRLEdBQUdQLDZFQUFlQSxDQUFDLElBQUksQ0FBQ1EsT0FBTztJQUN2RDtBQUNKO0FBQ08sTUFBTUM7SUFDVFAsWUFBWVEsV0FBVyxDQUFDO1FBQ3BCLElBQUksQ0FBQ0EsV0FBVyxHQUFHQTtJQUN2QjtJQUNBLHFEQUFxRDtJQUNyREMsU0FBU0QsV0FBVyxFQUFFRSxVQUFVLEVBQUU7UUFDOUIsSUFBSSxDQUFDQyxTQUFTLENBQUMsWUFBWUg7UUFDM0IsSUFBSSxDQUFDRSxVQUFVLEdBQUdBO1FBQ2xCLDBEQUEwRDtRQUMxRCxxQ0FBcUM7UUFDckMsSUFBSUEsZUFBZWIsdUZBQWtCQSxDQUFDZSxpQkFBaUIsRUFBRTtZQUNyRCxJQUFJLENBQUNELFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFSCxZQUFZLENBQUM7UUFDcEQ7UUFDQSxPQUFPLElBQUk7SUFDZjtBQUNKLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYmFzZS1odHRwL2luZGV4LmpzPzlmZGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVkaXJlY3RTdGF0dXNDb2RlIH0gZnJvbSBcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlXCI7XG5pbXBvcnQgeyBnZXRDb29raWVQYXJzZXIgfSBmcm9tIFwiLi4vYXBpLXV0aWxzL2dldC1jb29raWUtcGFyc2VyXCI7XG5leHBvcnQgY2xhc3MgQmFzZU5leHRSZXF1ZXN0IHtcbiAgICBjb25zdHJ1Y3RvcihtZXRob2QsIHVybCwgYm9keSl7XG4gICAgICAgIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICB9XG4gICAgLy8gVXRpbHMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIGFic3RyYWN0IG1ldGhvZHMgYWJvdmVcbiAgICBnZXQgY29va2llcygpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Nvb2tpZXMpIHJldHVybiB0aGlzLl9jb29raWVzO1xuICAgICAgICByZXR1cm4gdGhpcy5fY29va2llcyA9IGdldENvb2tpZVBhcnNlcih0aGlzLmhlYWRlcnMpKCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEJhc2VOZXh0UmVzcG9uc2Uge1xuICAgIGNvbnN0cnVjdG9yKGRlc3RpbmF0aW9uKXtcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuICAgIH1cbiAgICAvLyBVdGlscyBpbXBsZW1lbnRlZCB1c2luZyB0aGUgYWJzdHJhY3QgbWV0aG9kcyBhYm92ZVxuICAgIHJlZGlyZWN0KGRlc3RpbmF0aW9uLCBzdGF0dXNDb2RlKSB7XG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKFwiTG9jYXRpb25cIiwgZGVzdGluYXRpb24pO1xuICAgICAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgICAgICAvLyBTaW5jZSBJRTExIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgMzA4IGhlYWRlciBhZGQgYmFja3dhcmRzXG4gICAgICAgIC8vIGNvbXBhdGliaWxpdHkgdXNpbmcgcmVmcmVzaCBoZWFkZXJcbiAgICAgICAgaWYgKHN0YXR1c0NvZGUgPT09IFJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCkge1xuICAgICAgICAgICAgdGhpcy5zZXRIZWFkZXIoXCJSZWZyZXNoXCIsIGAwO3VybD0ke2Rlc3RpbmF0aW9ufWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSIsImdldENvb2tpZVBhcnNlciIsIkJhc2VOZXh0UmVxdWVzdCIsImNvbnN0cnVjdG9yIiwibWV0aG9kIiwidXJsIiwiYm9keSIsImNvb2tpZXMiLCJfY29va2llcyIsImhlYWRlcnMiLCJCYXNlTmV4dFJlc3BvbnNlIiwiZGVzdGluYXRpb24iLCJyZWRpcmVjdCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJQZXJtYW5lbnRSZWRpcmVjdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/base-http/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/base-http/web.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/base-http/web.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WebNextRequest: () => (/* binding */ WebNextRequest),\n/* harmony export */ WebNextResponse: () => (/* binding */ WebNextResponse)\n/* harmony export */ });\n/* harmony import */ var _web_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../web/utils */ \"(ssr)/../../node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ \"(ssr)/../../node_modules/next/dist/esm/server/base-http/index.js\");\n/* harmony import */ var _lib_detached_promise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/detached-promise */ \"(ssr)/../../node_modules/next/dist/esm/lib/detached-promise.js\");\n\n\n\nclass WebNextRequest extends _index__WEBPACK_IMPORTED_MODULE_1__.BaseNextRequest {\n constructor(request){\n const url = new URL(request.url);\n super(request.method, url.href.slice(url.origin.length), request.clone().body);\n this.request = request;\n this.headers = {};\n for (const [name, value] of request.headers.entries()){\n this.headers[name] = value;\n }\n }\n async parseBody(_limit) {\n throw new Error(\"parseBody is not implemented in the web runtime\");\n }\n}\nclass WebNextResponse extends _index__WEBPACK_IMPORTED_MODULE_1__.BaseNextResponse {\n constructor(transformStream = new TransformStream()){\n super(transformStream.writable);\n this.transformStream = transformStream;\n this.headers = new Headers();\n this.textBody = undefined;\n this.sendPromise = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_2__.DetachedPromise();\n this._sent = false;\n }\n setHeader(name, value) {\n this.headers.delete(name);\n for (const val of Array.isArray(value) ? value : [\n value\n ]){\n this.headers.append(name, val);\n }\n return this;\n }\n removeHeader(name) {\n this.headers.delete(name);\n return this;\n }\n getHeaderValues(name) {\n var _this_getHeader;\n // https://developer.mozilla.org/docs/Web/API/Headers/get#example\n return (_this_getHeader = this.getHeader(name)) == null ? void 0 : _this_getHeader.split(\",\").map((v)=>v.trimStart());\n }\n getHeader(name) {\n return this.headers.get(name) ?? undefined;\n }\n getHeaders() {\n return (0,_web_utils__WEBPACK_IMPORTED_MODULE_0__.toNodeOutgoingHttpHeaders)(this.headers);\n }\n hasHeader(name) {\n return this.headers.has(name);\n }\n appendHeader(name, value) {\n this.headers.append(name, value);\n return this;\n }\n body(value) {\n this.textBody = value;\n return this;\n }\n send() {\n this.sendPromise.resolve();\n this._sent = true;\n }\n get sent() {\n return this._sent;\n }\n async toResponse() {\n // If we haven't called `send` yet, wait for it to be called.\n if (!this.sent) await this.sendPromise.promise;\n return new Response(this.textBody ?? this.transformStream.readable, {\n headers: this.headers,\n status: this.statusCode,\n statusText: this.statusMessage\n });\n }\n} //# sourceMappingURL=web.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Jhc2UtaHR0cC93ZWIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBeUQ7QUFDRztBQUNDO0FBQ3RELE1BQU1JLHVCQUF1QkgsbURBQWVBO0lBQy9DSSxZQUFZQyxPQUFPLENBQUM7UUFDaEIsTUFBTUMsTUFBTSxJQUFJQyxJQUFJRixRQUFRQyxHQUFHO1FBQy9CLEtBQUssQ0FBQ0QsUUFBUUcsTUFBTSxFQUFFRixJQUFJRyxJQUFJLENBQUNDLEtBQUssQ0FBQ0osSUFBSUssTUFBTSxDQUFDQyxNQUFNLEdBQUdQLFFBQVFRLEtBQUssR0FBR0MsSUFBSTtRQUM3RSxJQUFJLENBQUNULE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNVLE9BQU8sR0FBRyxDQUFDO1FBQ2hCLEtBQUssTUFBTSxDQUFDQyxNQUFNQyxNQUFNLElBQUlaLFFBQVFVLE9BQU8sQ0FBQ0csT0FBTyxHQUFHO1lBQ2xELElBQUksQ0FBQ0gsT0FBTyxDQUFDQyxLQUFLLEdBQUdDO1FBQ3pCO0lBQ0o7SUFDQSxNQUFNRSxVQUFVQyxNQUFNLEVBQUU7UUFDcEIsTUFBTSxJQUFJQyxNQUFNO0lBQ3BCO0FBQ0o7QUFDTyxNQUFNQyx3QkFBd0JyQixvREFBZ0JBO0lBQ2pERyxZQUFZbUIsa0JBQWtCLElBQUlDLGlCQUFpQixDQUFDO1FBQ2hELEtBQUssQ0FBQ0QsZ0JBQWdCRSxRQUFRO1FBQzlCLElBQUksQ0FBQ0YsZUFBZSxHQUFHQTtRQUN2QixJQUFJLENBQUNSLE9BQU8sR0FBRyxJQUFJVztRQUNuQixJQUFJLENBQUNDLFFBQVEsR0FBR0M7UUFDaEIsSUFBSSxDQUFDQyxXQUFXLEdBQUcsSUFBSTNCLGtFQUFlQTtRQUN0QyxJQUFJLENBQUM0QixLQUFLLEdBQUc7SUFDakI7SUFDQUMsVUFBVWYsSUFBSSxFQUFFQyxLQUFLLEVBQUU7UUFDbkIsSUFBSSxDQUFDRixPQUFPLENBQUNpQixNQUFNLENBQUNoQjtRQUNwQixLQUFLLE1BQU1pQixPQUFPQyxNQUFNQyxPQUFPLENBQUNsQixTQUFTQSxRQUFRO1lBQzdDQTtTQUNILENBQUM7WUFDRSxJQUFJLENBQUNGLE9BQU8sQ0FBQ3FCLE1BQU0sQ0FBQ3BCLE1BQU1pQjtRQUM5QjtRQUNBLE9BQU8sSUFBSTtJQUNmO0lBQ0FJLGFBQWFyQixJQUFJLEVBQUU7UUFDZixJQUFJLENBQUNELE9BQU8sQ0FBQ2lCLE1BQU0sQ0FBQ2hCO1FBQ3BCLE9BQU8sSUFBSTtJQUNmO0lBQ0FzQixnQkFBZ0J0QixJQUFJLEVBQUU7UUFDbEIsSUFBSXVCO1FBQ0osaUVBQWlFO1FBQ2pFLE9BQU8sQ0FBQ0Esa0JBQWtCLElBQUksQ0FBQ0MsU0FBUyxDQUFDeEIsS0FBSSxLQUFNLE9BQU8sS0FBSyxJQUFJdUIsZ0JBQWdCRSxLQUFLLENBQUMsS0FBS0MsR0FBRyxDQUFDLENBQUNDLElBQUlBLEVBQUVDLFNBQVM7SUFDdEg7SUFDQUosVUFBVXhCLElBQUksRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDRCxPQUFPLENBQUM4QixHQUFHLENBQUM3QixTQUFTWTtJQUNyQztJQUNBa0IsYUFBYTtRQUNULE9BQU8vQyxxRUFBeUJBLENBQUMsSUFBSSxDQUFDZ0IsT0FBTztJQUNqRDtJQUNBZ0MsVUFBVS9CLElBQUksRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDRCxPQUFPLENBQUNpQyxHQUFHLENBQUNoQztJQUM1QjtJQUNBaUMsYUFBYWpDLElBQUksRUFBRUMsS0FBSyxFQUFFO1FBQ3RCLElBQUksQ0FBQ0YsT0FBTyxDQUFDcUIsTUFBTSxDQUFDcEIsTUFBTUM7UUFDMUIsT0FBTyxJQUFJO0lBQ2Y7SUFDQUgsS0FBS0csS0FBSyxFQUFFO1FBQ1IsSUFBSSxDQUFDVSxRQUFRLEdBQUdWO1FBQ2hCLE9BQU8sSUFBSTtJQUNmO0lBQ0FpQyxPQUFPO1FBQ0gsSUFBSSxDQUFDckIsV0FBVyxDQUFDc0IsT0FBTztRQUN4QixJQUFJLENBQUNyQixLQUFLLEdBQUc7SUFDakI7SUFDQSxJQUFJc0IsT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDdEIsS0FBSztJQUNyQjtJQUNBLE1BQU11QixhQUFhO1FBQ2YsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUNELElBQUksRUFBRSxNQUFNLElBQUksQ0FBQ3ZCLFdBQVcsQ0FBQ3lCLE9BQU87UUFDOUMsT0FBTyxJQUFJQyxTQUFTLElBQUksQ0FBQzVCLFFBQVEsSUFBSSxJQUFJLENBQUNKLGVBQWUsQ0FBQ2lDLFFBQVEsRUFBRTtZQUNoRXpDLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCMEMsUUFBUSxJQUFJLENBQUNDLFVBQVU7WUFDdkJDLFlBQVksSUFBSSxDQUFDQyxhQUFhO1FBQ2xDO0lBQ0o7QUFDSixFQUVBLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Jhc2UtaHR0cC93ZWIuanM/MjQ3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzIH0gZnJvbSBcIi4uL3dlYi91dGlsc1wiO1xuaW1wb3J0IHsgQmFzZU5leHRSZXF1ZXN0LCBCYXNlTmV4dFJlc3BvbnNlIH0gZnJvbSBcIi4vaW5kZXhcIjtcbmltcG9ydCB7IERldGFjaGVkUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiO1xuZXhwb3J0IGNsYXNzIFdlYk5leHRSZXF1ZXN0IGV4dGVuZHMgQmFzZU5leHRSZXF1ZXN0IHtcbiAgICBjb25zdHJ1Y3RvcihyZXF1ZXN0KXtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCk7XG4gICAgICAgIHN1cGVyKHJlcXVlc3QubWV0aG9kLCB1cmwuaHJlZi5zbGljZSh1cmwub3JpZ2luLmxlbmd0aCksIHJlcXVlc3QuY2xvbmUoKS5ib2R5KTtcbiAgICAgICAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdDtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiByZXF1ZXN0LmhlYWRlcnMuZW50cmllcygpKXtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHBhcnNlQm9keShfbGltaXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwicGFyc2VCb2R5IGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgd2ViIHJ1bnRpbWVcIik7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFdlYk5leHRSZXNwb25zZSBleHRlbmRzIEJhc2VOZXh0UmVzcG9uc2Uge1xuICAgIGNvbnN0cnVjdG9yKHRyYW5zZm9ybVN0cmVhbSA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oKSl7XG4gICAgICAgIHN1cGVyKHRyYW5zZm9ybVN0cmVhbS53cml0YWJsZSk7XG4gICAgICAgIHRoaXMudHJhbnNmb3JtU3RyZWFtID0gdHJhbnNmb3JtU3RyZWFtO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgICAgICB0aGlzLnRleHRCb2R5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnNlbmRQcm9taXNlID0gbmV3IERldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICB0aGlzLl9zZW50ID0gZmFsc2U7XG4gICAgfVxuICAgIHNldEhlYWRlcihuYW1lLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmhlYWRlcnMuZGVsZXRlKG5hbWUpO1xuICAgICAgICBmb3IgKGNvbnN0IHZhbCBvZiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXSl7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnMuYXBwZW5kKG5hbWUsIHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUhlYWRlcihuYW1lKSB7XG4gICAgICAgIHRoaXMuaGVhZGVycy5kZWxldGUobmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBnZXRIZWFkZXJWYWx1ZXMobmFtZSkge1xuICAgICAgICB2YXIgX3RoaXNfZ2V0SGVhZGVyO1xuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSGVhZGVycy9nZXQjZXhhbXBsZVxuICAgICAgICByZXR1cm4gKF90aGlzX2dldEhlYWRlciA9IHRoaXMuZ2V0SGVhZGVyKG5hbWUpKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfZ2V0SGVhZGVyLnNwbGl0KFwiLFwiKS5tYXAoKHYpPT52LnRyaW1TdGFydCgpKTtcbiAgICB9XG4gICAgZ2V0SGVhZGVyKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGVhZGVycy5nZXQobmFtZSkgPz8gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBnZXRIZWFkZXJzKCkge1xuICAgICAgICByZXR1cm4gdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpO1xuICAgIH1cbiAgICBoYXNIZWFkZXIobmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5oZWFkZXJzLmhhcyhuYW1lKTtcbiAgICB9XG4gICAgYXBwZW5kSGVhZGVyKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaGVhZGVycy5hcHBlbmQobmFtZSwgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYm9keSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnRleHRCb2R5ID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBzZW5kKCkge1xuICAgICAgICB0aGlzLnNlbmRQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgdGhpcy5fc2VudCA9IHRydWU7XG4gICAgfVxuICAgIGdldCBzZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VudDtcbiAgICB9XG4gICAgYXN5bmMgdG9SZXNwb25zZSgpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCBjYWxsZWQgYHNlbmRgIHlldCwgd2FpdCBmb3IgaXQgdG8gYmUgY2FsbGVkLlxuICAgICAgICBpZiAoIXRoaXMuc2VudCkgYXdhaXQgdGhpcy5zZW5kUHJvbWlzZS5wcm9taXNlO1xuICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKHRoaXMudGV4dEJvZHkgPz8gdGhpcy50cmFuc2Zvcm1TdHJlYW0ucmVhZGFibGUsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgc3RhdHVzVGV4dDogdGhpcy5zdGF0dXNNZXNzYWdlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2ViLmpzLm1hcCJdLCJuYW1lcyI6WyJ0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzIiwiQmFzZU5leHRSZXF1ZXN0IiwiQmFzZU5leHRSZXNwb25zZSIsIkRldGFjaGVkUHJvbWlzZSIsIldlYk5leHRSZXF1ZXN0IiwiY29uc3RydWN0b3IiLCJyZXF1ZXN0IiwidXJsIiwiVVJMIiwibWV0aG9kIiwiaHJlZiIsInNsaWNlIiwib3JpZ2luIiwibGVuZ3RoIiwiY2xvbmUiLCJib2R5IiwiaGVhZGVycyIsIm5hbWUiLCJ2YWx1ZSIsImVudHJpZXMiLCJwYXJzZUJvZHkiLCJfbGltaXQiLCJFcnJvciIsIldlYk5leHRSZXNwb25zZSIsInRyYW5zZm9ybVN0cmVhbSIsIlRyYW5zZm9ybVN0cmVhbSIsIndyaXRhYmxlIiwiSGVhZGVycyIsInRleHRCb2R5IiwidW5kZWZpbmVkIiwic2VuZFByb21pc2UiLCJfc2VudCIsInNldEhlYWRlciIsImRlbGV0ZSIsInZhbCIsIkFycmF5IiwiaXNBcnJheSIsImFwcGVuZCIsInJlbW92ZUhlYWRlciIsImdldEhlYWRlclZhbHVlcyIsIl90aGlzX2dldEhlYWRlciIsImdldEhlYWRlciIsInNwbGl0IiwibWFwIiwidiIsInRyaW1TdGFydCIsImdldCIsImdldEhlYWRlcnMiLCJoYXNIZWFkZXIiLCJoYXMiLCJhcHBlbmRIZWFkZXIiLCJzZW5kIiwicmVzb2x2ZSIsInNlbnQiLCJ0b1Jlc3BvbnNlIiwicHJvbWlzZSIsIlJlc3BvbnNlIiwicmVhZGFibGUiLCJzdGF0dXMiLCJzdGF0dXNDb2RlIiwic3RhdHVzVGV4dCIsInN0YXR1c01lc3NhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/base-http/web.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/base-server.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/base-server.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NoFallbackError: () => (/* binding */ NoFallbackError),\n/* harmony export */ WrappedBuildError: () => (/* binding */ WrappedBuildError),\n/* harmony export */ \"default\": () => (/* binding */ Server)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/utils.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! url */ \"(ssr)/../../node_modules/next/dist/compiled/native-url/index.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_format_hostname__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/format-hostname */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/format-hostname.js\");\n/* harmony import */ var _lib_redirect_status__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/redirect-status */ \"(ssr)/../../node_modules/next/dist/esm/lib/redirect-status.js\");\n/* harmony import */ var _lib_is_edge_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lib/is-edge-runtime */ \"(ssr)/../../node_modules/next/dist/esm/lib/is-edge-runtime.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n/* harmony import */ var _client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../client/components/redirect-status-code */ \"(ssr)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js\");\n/* harmony import */ var _shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../shared/lib/router/utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/index.js\");\n/* harmony import */ var _api_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./api-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/api-utils/index.js\");\n/* harmony import */ var _shared_lib_runtime_config_external__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../shared/lib/runtime-config.external */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/runtime-config.external.js\");\n/* harmony import */ var _lib_revalidate__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./lib/revalidate */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/revalidate.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils */ \"(ssr)/../../node_modules/next/dist/esm/server/utils.js\");\n/* harmony import */ var _shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../shared/lib/router/utils/is-bot */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js\");\n/* harmony import */ var _render_result__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./render-result */ \"(ssr)/../../node_modules/next/dist/esm/server/render-result.js\");\n/* harmony import */ var _shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n/* harmony import */ var _shared_lib_page_path_denormalize_page_path__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../shared/lib/page-path/denormalize-page-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/denormalize-page-path.js\");\n/* harmony import */ var _build_output_log__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../build/output/log */ \"(ssr)/../../node_modules/next/dist/esm/build/output/log.js\");\n/* harmony import */ var _shared_lib_router_utils_escape_path_delimiters__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../shared/lib/router/utils/escape-path-delimiters */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/escape-path-delimiters.js\");\n/* harmony import */ var _server_utils__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./server-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/server-utils.js\");\n/* harmony import */ var _lib_is_error__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../lib/is-error */ \"(ssr)/../../node_modules/next/dist/esm/lib/is-error.js\");\n/* harmony import */ var _request_meta__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./request-meta */ \"(ssr)/../../node_modules/next/dist/esm/server/request-meta.js\");\n/* harmony import */ var _shared_lib_router_utils_remove_path_prefix__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../shared/lib/router/utils/remove-path-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js\");\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../shared/lib/router/utils/app-paths */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _shared_lib_get_hostname__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../shared/lib/get-hostname */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/get-hostname.js\");\n/* harmony import */ var _shared_lib_router_utils_parse_url__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../shared/lib/router/utils/parse-url */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js\");\n/* harmony import */ var _shared_lib_router_utils_get_next_pathname_info__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../shared/lib/router/utils/get-next-pathname-info */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js\");\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _future_normalizers_locale_route_normalizer__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./future/normalizers/locale-route-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/locale-route-normalizer.js\");\n/* harmony import */ var _future_route_matcher_managers_default_route_matcher_manager__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./future/route-matcher-managers/default-route-matcher-manager */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-managers/default-route-matcher-manager.js\");\n/* harmony import */ var _future_route_matcher_providers_app_page_route_matcher_provider__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./future/route-matcher-providers/app-page-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\");\n/* harmony import */ var _future_route_matcher_providers_app_route_route_matcher_provider__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./future/route-matcher-providers/app-route-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/app-route-route-matcher-provider.js\");\n/* harmony import */ var _future_route_matcher_providers_pages_api_route_matcher_provider__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./future/route-matcher-providers/pages-api-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/pages-api-route-matcher-provider.js\");\n/* harmony import */ var _future_route_matcher_providers_pages_route_matcher_provider__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./future/route-matcher-providers/pages-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/pages-route-matcher-provider.js\");\n/* harmony import */ var _future_route_matcher_providers_helpers_manifest_loaders_server_manifest_loader__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js\");\n/* harmony import */ var _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./lib/trace/tracer */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n/* harmony import */ var _lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./lib/trace/constants */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n/* harmony import */ var _future_helpers_i18n_provider__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./future/helpers/i18n-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/helpers/i18n-provider.js\");\n/* harmony import */ var _send_response__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./send-response */ \"(ssr)/../../node_modules/next/dist/esm/server/send-response.js\");\n/* harmony import */ var _future_route_modules_helpers_response_handlers__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./future/route-modules/helpers/response-handlers */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/helpers/response-handlers.js\");\n/* harmony import */ var _web_utils__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./web/utils */ \"(ssr)/../../node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _shared_lib_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../shared/lib/i18n/normalize-locale-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js\");\n/* harmony import */ var _web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js\");\n/* harmony import */ var _lib_match_next_data_pathname__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./lib/match-next-data-pathname */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/match-next-data-pathname.js\");\n/* harmony import */ var _shared_lib_router_utils_get_route_from_asset_path__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../shared/lib/router/utils/get-route-from-asset-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/get-route-from-asset-path.js\");\n/* harmony import */ var _internal_utils__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./internal-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/internal-utils.js\");\n/* harmony import */ var _future_normalizers_request_rsc__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./future/normalizers/request/rsc */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/rsc.js\");\n/* harmony import */ var _future_normalizers_request_postponed__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./future/normalizers/request/postponed */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/postponed.js\");\n/* harmony import */ var _app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./app-render/strip-flight-headers */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/strip-flight-headers.js\");\n/* harmony import */ var _future_route_modules_checks__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./future/route-modules/checks */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/checks.js\");\n/* harmony import */ var _future_normalizers_request_prefetch_rsc__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./future/normalizers/request/prefetch-rsc */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/prefetch-rsc.js\");\n/* harmony import */ var _future_normalizers_request_next_data__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./future/normalizers/request/next-data */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/next-data.js\");\n/* harmony import */ var _lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./lib/server-action-request-meta */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/server-action-request-meta.js\");\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"buffer\")[\"Buffer\"];\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass NoFallbackError extends Error {\n}\n// Internal wrapper around build errors at development\n// time, to prevent us from propagating or logging them\nclass WrappedBuildError extends Error {\n constructor(innerError){\n super();\n this.innerError = innerError;\n }\n}\nclass Server {\n constructor(options){\n var _this_nextConfig_i18n, _this_nextConfig_experimental_amp, _this_nextConfig_i18n1;\n this.handleRSCRequest = (req, _res, parsedUrl)=>{\n var _this_normalizers_prefetchRSC, _this_normalizers_rsc;\n if (!parsedUrl.pathname) return false;\n if ((_this_normalizers_prefetchRSC = this.normalizers.prefetchRSC) == null ? void 0 : _this_normalizers_prefetchRSC.match(parsedUrl.pathname)) {\n parsedUrl.pathname = this.normalizers.prefetchRSC.normalize(parsedUrl.pathname, true);\n // Mark the request as a router prefetch request.\n req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.RSC_HEADER.toLowerCase()] = \"1\";\n req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.NEXT_ROUTER_PREFETCH_HEADER.toLowerCase()] = \"1\";\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"isRSCRequest\", true);\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"isPrefetchRSCRequest\", true);\n } else if ((_this_normalizers_rsc = this.normalizers.rsc) == null ? void 0 : _this_normalizers_rsc.match(parsedUrl.pathname)) {\n parsedUrl.pathname = this.normalizers.rsc.normalize(parsedUrl.pathname, true);\n // Mark the request as a RSC request.\n req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.RSC_HEADER.toLowerCase()] = \"1\";\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"isRSCRequest\", true);\n } else if (req.headers[\"x-now-route-matches\"]) {\n // If we didn't match, return with the flight headers stripped. If in\n // minimal mode we didn't match based on the path, this can't be a RSC\n // request. This is because Vercel only sends this header during\n // revalidation requests and we want the cache to instead depend on the\n // request path for flight information.\n (0,_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_48__.stripFlightHeaders)(req.headers);\n return false;\n } else {\n // Otherwise just return without doing anything.\n return false;\n }\n // If we're here, this is a data request, as it didn't return and it matched\n // either a RSC or a prefetch RSC request.\n parsedUrl.query.__nextDataReq = \"1\";\n if (req.url) {\n const parsed = (0,url__WEBPACK_IMPORTED_MODULE_1__.parse)(req.url);\n parsed.pathname = parsedUrl.pathname;\n req.url = (0,url__WEBPACK_IMPORTED_MODULE_1__.format)(parsed);\n }\n return false;\n };\n this.handleNextDataRequest = async (req, res, parsedUrl)=>{\n const middleware = this.getMiddleware();\n const params = (0,_lib_match_next_data_pathname__WEBPACK_IMPORTED_MODULE_43__.matchNextDataPathname)(parsedUrl.pathname);\n // ignore for non-next data URLs\n if (!params || !params.path) {\n return false;\n }\n if (params.path[0] !== this.buildId) {\n // Ignore if its a middleware request when we aren't on edge.\n if (false) {}\n // Make sure to 404 if the buildId isn't correct\n await this.render404(req, res, parsedUrl);\n return true;\n }\n // remove buildId from URL\n params.path.shift();\n const lastParam = params.path[params.path.length - 1];\n // show 404 if it doesn't end with .json\n if (typeof lastParam !== \"string\" || !lastParam.endsWith(\".json\")) {\n await this.render404(req, res, parsedUrl);\n return true;\n }\n // re-create page's pathname\n let pathname = `/${params.path.join(\"/\")}`;\n pathname = (0,_shared_lib_router_utils_get_route_from_asset_path__WEBPACK_IMPORTED_MODULE_44__[\"default\"])(pathname, \".json\");\n // ensure trailing slash is normalized per config\n if (middleware) {\n if (this.nextConfig.trailingSlash && !pathname.endsWith(\"/\")) {\n pathname += \"/\";\n }\n if (!this.nextConfig.trailingSlash && pathname.length > 1 && pathname.endsWith(\"/\")) {\n pathname = pathname.substring(0, pathname.length - 1);\n }\n }\n if (this.i18nProvider) {\n var _req_headers_host;\n // Remove the port from the hostname if present.\n const hostname = req == null ? void 0 : (_req_headers_host = req.headers.host) == null ? void 0 : _req_headers_host.split(\":\", 1)[0].toLowerCase();\n const domainLocale = this.i18nProvider.detectDomainLocale(hostname);\n const defaultLocale = (domainLocale == null ? void 0 : domainLocale.defaultLocale) ?? this.i18nProvider.config.defaultLocale;\n const localePathResult = this.i18nProvider.analyze(pathname);\n // If the locale is detected from the path, we need to remove it\n // from the pathname.\n if (localePathResult.detectedLocale) {\n pathname = localePathResult.pathname;\n }\n // Update the query with the detected locale and default locale.\n parsedUrl.query.__nextLocale = localePathResult.detectedLocale;\n parsedUrl.query.__nextDefaultLocale = defaultLocale;\n // If the locale is not detected from the path, we need to mark that\n // it was not inferred from default.\n if (!localePathResult.detectedLocale) {\n delete parsedUrl.query.__nextInferredLocaleFromDefault;\n }\n // If no locale was detected and we don't have middleware, we need\n // to render a 404 page.\n if (!localePathResult.detectedLocale && !middleware) {\n parsedUrl.query.__nextLocale = defaultLocale;\n await this.render404(req, res, parsedUrl);\n return true;\n }\n }\n parsedUrl.pathname = pathname;\n parsedUrl.query.__nextDataReq = \"1\";\n return false;\n };\n this.handleNextImageRequest = ()=>false;\n this.handleCatchallRenderRequest = ()=>false;\n this.handleCatchallMiddlewareRequest = ()=>false;\n /**\n * Normalizes a pathname without attaching any metadata from any matched\n * normalizer.\n *\n * @param pathname the pathname to normalize\n * @returns the normalized pathname\n */ this.normalize = (pathname)=>{\n const normalizers = [];\n if (this.normalizers.data) {\n normalizers.push(this.normalizers.data);\n }\n if (this.normalizers.postponed) {\n normalizers.push(this.normalizers.postponed);\n }\n // We have to put the prefetch normalizer before the RSC normalizer\n // because the RSC normalizer will match the prefetch RSC routes too.\n if (this.normalizers.prefetchRSC) {\n normalizers.push(this.normalizers.prefetchRSC);\n }\n if (this.normalizers.rsc) {\n normalizers.push(this.normalizers.rsc);\n }\n for (const normalizer of normalizers){\n if (!normalizer.match(pathname)) continue;\n return normalizer.normalize(pathname, true);\n }\n return pathname;\n };\n this.normalizeAndAttachMetadata = async (req, res, url)=>{\n let finished = await this.handleNextImageRequest(req, res, url);\n if (finished) return true;\n if (this.enabledDirectories.pages) {\n finished = await this.handleNextDataRequest(req, res, url);\n if (finished) return true;\n }\n return false;\n };\n this.prepared = false;\n this.preparedPromise = null;\n this.customErrorNo404Warn = (0,_shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.execOnce)(()=>{\n _build_output_log__WEBPACK_IMPORTED_MODULE_16__.warn(`You have added a custom /_error page without a custom /404 page. This prevents the 404 page from being auto statically optimized.\\nSee here for info: https://nextjs.org/docs/messages/custom-error-no-custom-404`);\n });\n const { dir = \".\", quiet = false, conf, dev = false, minimalMode = false, customServer = true, hostname, port } = options;\n this.serverOptions = options;\n this.dir = true ? dir : 0;\n this.quiet = quiet;\n this.loadEnvConfig({\n dev\n });\n // TODO: should conf be normalized to prevent missing\n // values from causing issues as this can be user provided\n this.nextConfig = conf;\n this.hostname = hostname;\n if (this.hostname) {\n // we format the hostname so that it can be fetched\n this.fetchHostname = (0,_lib_format_hostname__WEBPACK_IMPORTED_MODULE_2__.formatHostname)(this.hostname);\n }\n this.port = port;\n this.distDir = true ? this.nextConfig.distDir : 0;\n this.publicDir = this.getPublicDir();\n this.hasStaticDir = !minimalMode && this.getHasStaticDir();\n this.i18nProvider = ((_this_nextConfig_i18n = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n.locales) ? new _future_helpers_i18n_provider__WEBPACK_IMPORTED_MODULE_36__.I18NProvider(this.nextConfig.i18n) : undefined;\n // Configure the locale normalizer, it's used for routes inside `pages/`.\n this.localeNormalizer = this.i18nProvider ? new _future_normalizers_locale_route_normalizer__WEBPACK_IMPORTED_MODULE_27__.LocaleRouteNormalizer(this.i18nProvider) : undefined;\n // Only serverRuntimeConfig needs the default\n // publicRuntimeConfig gets it's default in client/index.js\n const { serverRuntimeConfig = {}, publicRuntimeConfig, assetPrefix, generateEtags } = this.nextConfig;\n this.buildId = this.getBuildId();\n // this is a hack to avoid Webpack knowing this is equal to this.minimalMode\n // because we replace this.minimalMode to true in production bundles.\n const minimalModeKey = \"minimalMode\";\n this[minimalModeKey] = minimalMode || !!process.env.NEXT_PRIVATE_MINIMAL_MODE;\n this.enabledDirectories = this.getEnabledDirectories(dev);\n this.normalizers = {\n // We should normalize the pathname from the RSC prefix only in minimal\n // mode as otherwise that route is not exposed external to the server as\n // we instead only rely on the headers.\n postponed: this.enabledDirectories.app && this.nextConfig.experimental.ppr && this.minimalMode ? new _future_normalizers_request_postponed__WEBPACK_IMPORTED_MODULE_47__.PostponedPathnameNormalizer() : undefined,\n rsc: this.enabledDirectories.app && this.minimalMode ? new _future_normalizers_request_rsc__WEBPACK_IMPORTED_MODULE_46__.RSCPathnameNormalizer() : undefined,\n prefetchRSC: this.enabledDirectories.app && this.nextConfig.experimental.ppr && this.minimalMode ? new _future_normalizers_request_prefetch_rsc__WEBPACK_IMPORTED_MODULE_50__.PrefetchRSCPathnameNormalizer() : undefined,\n data: this.enabledDirectories.pages ? new _future_normalizers_request_next_data__WEBPACK_IMPORTED_MODULE_51__.NextDataPathnameNormalizer(this.buildId) : undefined\n };\n this.nextFontManifest = this.getNextFontManifest();\n if (false) {}\n this.renderOpts = {\n deploymentId: this.nextConfig.experimental.deploymentId,\n strictNextHead: !!this.nextConfig.experimental.strictNextHead,\n poweredByHeader: this.nextConfig.poweredByHeader,\n canonicalBase: this.nextConfig.amp.canonicalBase || \"\",\n buildId: this.buildId,\n generateEtags,\n previewProps: this.getPrerenderManifest().preview,\n customServer: customServer === true ? true : undefined,\n ampOptimizerConfig: (_this_nextConfig_experimental_amp = this.nextConfig.experimental.amp) == null ? void 0 : _this_nextConfig_experimental_amp.optimizer,\n basePath: this.nextConfig.basePath,\n images: this.nextConfig.images,\n optimizeFonts: this.nextConfig.optimizeFonts,\n fontManifest: this.nextConfig.optimizeFonts && !dev ? this.getFontManifest() : undefined,\n optimizeCss: this.nextConfig.experimental.optimizeCss,\n nextConfigOutput: this.nextConfig.output,\n nextScriptWorkers: this.nextConfig.experimental.nextScriptWorkers,\n disableOptimizedLoading: this.nextConfig.experimental.disableOptimizedLoading,\n domainLocales: (_this_nextConfig_i18n1 = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n1.domains,\n distDir: this.distDir,\n serverComponents: this.enabledDirectories.app,\n enableTainting: this.nextConfig.experimental.taint,\n crossOrigin: this.nextConfig.crossOrigin ? this.nextConfig.crossOrigin : undefined,\n largePageDataBytes: this.nextConfig.experimental.largePageDataBytes,\n // Only the `publicRuntimeConfig` key is exposed to the client side\n // It'll be rendered as part of __NEXT_DATA__ on the client side\n runtimeConfig: Object.keys(publicRuntimeConfig).length > 0 ? publicRuntimeConfig : undefined,\n // @ts-expect-error internal field not publicly exposed\n isExperimentalCompile: this.nextConfig.experimental.isExperimentalCompile,\n experimental: {\n ppr: this.enabledDirectories.app && this.nextConfig.experimental.ppr === true,\n missingSuspenseWithCSRBailout: this.nextConfig.experimental.missingSuspenseWithCSRBailout === true\n }\n };\n // Initialize next/config with the environment configuration\n (0,_shared_lib_runtime_config_external__WEBPACK_IMPORTED_MODULE_9__.setConfig)({\n serverRuntimeConfig,\n publicRuntimeConfig\n });\n this.pagesManifest = this.getPagesManifest();\n this.appPathsManifest = this.getAppPathsManifest();\n this.appPathRoutes = this.getAppPathRoutes();\n // Configure the routes.\n this.matchers = this.getRouteMatchers();\n // Start route compilation. We don't wait for the routes to finish loading\n // because we use the `waitTillReady` promise below in `handleRequest` to\n // wait. Also we can't `await` in the constructor.\n void this.matchers.reload();\n this.setAssetPrefix(assetPrefix);\n this.responseCache = this.getResponseCache({\n dev\n });\n }\n reloadMatchers() {\n return this.matchers.reload();\n }\n getRouteMatchers() {\n // Create a new manifest loader that get's the manifests from the server.\n const manifestLoader = new _future_route_matcher_providers_helpers_manifest_loaders_server_manifest_loader__WEBPACK_IMPORTED_MODULE_33__.ServerManifestLoader((name)=>{\n switch(name){\n case _shared_lib_constants__WEBPACK_IMPORTED_MODULE_5__.PAGES_MANIFEST:\n return this.getPagesManifest() ?? null;\n case _shared_lib_constants__WEBPACK_IMPORTED_MODULE_5__.APP_PATHS_MANIFEST:\n return this.getAppPathsManifest() ?? null;\n default:\n return null;\n }\n });\n // Configure the matchers and handlers.\n const matchers = new _future_route_matcher_managers_default_route_matcher_manager__WEBPACK_IMPORTED_MODULE_28__.DefaultRouteMatcherManager();\n // Match pages under `pages/`.\n matchers.push(new _future_route_matcher_providers_pages_route_matcher_provider__WEBPACK_IMPORTED_MODULE_32__.PagesRouteMatcherProvider(this.distDir, manifestLoader, this.i18nProvider));\n // Match api routes under `pages/api/`.\n matchers.push(new _future_route_matcher_providers_pages_api_route_matcher_provider__WEBPACK_IMPORTED_MODULE_31__.PagesAPIRouteMatcherProvider(this.distDir, manifestLoader, this.i18nProvider));\n // If the app directory is enabled, then add the app matchers and handlers.\n if (this.enabledDirectories.app) {\n // Match app pages under `app/`.\n matchers.push(new _future_route_matcher_providers_app_page_route_matcher_provider__WEBPACK_IMPORTED_MODULE_29__.AppPageRouteMatcherProvider(this.distDir, manifestLoader));\n matchers.push(new _future_route_matcher_providers_app_route_route_matcher_provider__WEBPACK_IMPORTED_MODULE_30__.AppRouteRouteMatcherProvider(this.distDir, manifestLoader));\n }\n return matchers;\n }\n logError(err) {\n if (this.quiet) return;\n _build_output_log__WEBPACK_IMPORTED_MODULE_16__.error(err);\n }\n async handleRequest(req, res, parsedUrl) {\n await this.prepare();\n const method = req.method.toUpperCase();\n const tracer = (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)();\n return tracer.withPropagatedContext(req.headers, ()=>{\n return tracer.trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.SpanKind.SERVER,\n attributes: {\n \"http.method\": method,\n \"http.target\": req.url\n }\n }, async (span)=>this.handleRequestImpl(req, res, parsedUrl).finally(()=>{\n if (!span) return;\n span.setAttributes({\n \"http.status_code\": res.statusCode\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) return;\n if (rootSpanAttributes.get(\"next.span_type\") !== _lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get(\"next.span_type\")}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get(\"next.route\");\n if (route) {\n const newName = `${method} ${route}`;\n span.setAttributes({\n \"next.route\": route,\n \"http.route\": route,\n \"next.span_name\": newName\n });\n span.updateName(newName);\n }\n }));\n });\n }\n async handleRequestImpl(req, res, parsedUrl) {\n try {\n var _this_port, _originalRequest_socket, _originalRequest_socket1, _this_i18nProvider, _this_nextConfig_i18n;\n // Wait for the matchers to be ready.\n await this.matchers.waitTillReady();\n // ensure cookies set in middleware are merged and\n // not overridden by API routes/getServerSideProps\n const _res = res.originalResponse || res;\n const origSetHeader = _res.setHeader.bind(_res);\n _res.setHeader = (name, val)=>{\n // When renders /_error after page is failed,\n // it could attempt to set headers after headers\n if (_res.headersSent) {\n return;\n }\n if (name.toLowerCase() === \"set-cookie\") {\n const middlewareValue = (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"middlewareCookie\");\n if (!middlewareValue || !Array.isArray(val) || !val.every((item, idx)=>item === middlewareValue[idx])) {\n val = [\n // TODO: (wyattjoh) find out why this is called multiple times resulting in duplicate cookies being added\n ...new Set([\n ...middlewareValue || [],\n ...typeof val === \"string\" ? [\n val\n ] : Array.isArray(val) ? val : []\n ])\n ];\n }\n }\n return origSetHeader(name, val);\n };\n const urlParts = (req.url || \"\").split(\"?\", 1);\n const urlNoQuery = urlParts[0];\n // this normalizes repeated slashes in the path e.g. hello//world ->\n // hello/world or backslashes to forward slashes, this does not\n // handle trailing slash as that is handled the same as a next.config.js\n // redirect\n if (urlNoQuery == null ? void 0 : urlNoQuery.match(/(\\\\|\\/\\/)/)) {\n const cleanUrl = (0,_shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.normalizeRepeatedSlashes)(req.url);\n res.redirect(cleanUrl, 308).body(cleanUrl).send();\n return;\n }\n // Parse url if parsedUrl not provided\n if (!parsedUrl || typeof parsedUrl !== \"object\") {\n if (!req.url) {\n throw new Error(\"Invariant: url can not be undefined\");\n }\n parsedUrl = (0,url__WEBPACK_IMPORTED_MODULE_1__.parse)(req.url, true);\n }\n if (!parsedUrl.pathname) {\n throw new Error(\"Invariant: pathname can't be empty\");\n }\n // Parse the querystring ourselves if the user doesn't handle querystring parsing\n if (typeof parsedUrl.query === \"string\") {\n parsedUrl.query = Object.fromEntries(new URLSearchParams(parsedUrl.query));\n }\n req.headers[\"x-forwarded-host\"] ??= req.headers[\"host\"] ?? this.hostname;\n req.headers[\"x-forwarded-port\"] ??= (_this_port = this.port) == null ? void 0 : _this_port.toString();\n const { originalRequest } = req;\n req.headers[\"x-forwarded-proto\"] ??= ((_originalRequest_socket = originalRequest.socket) == null ? void 0 : _originalRequest_socket.encrypted) ? \"https\" : \"http\";\n req.headers[\"x-forwarded-for\"] ??= (_originalRequest_socket1 = originalRequest.socket) == null ? void 0 : _originalRequest_socket1.remoteAddress;\n // This should be done before any normalization of the pathname happens as\n // it captures the initial URL.\n this.attachRequestMeta(req, parsedUrl);\n let finished = false;\n if (this.minimalMode && this.enabledDirectories.app) {\n finished = await this.handleRSCRequest(req, res, parsedUrl);\n if (finished) return;\n }\n const domainLocale = (_this_i18nProvider = this.i18nProvider) == null ? void 0 : _this_i18nProvider.detectDomainLocale((0,_shared_lib_get_hostname__WEBPACK_IMPORTED_MODULE_23__.getHostname)(parsedUrl, req.headers));\n const defaultLocale = (domainLocale == null ? void 0 : domainLocale.defaultLocale) || ((_this_nextConfig_i18n = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n.defaultLocale);\n parsedUrl.query.__nextDefaultLocale = defaultLocale;\n const url = (0,_shared_lib_router_utils_parse_url__WEBPACK_IMPORTED_MODULE_24__.parseUrl)(req.url.replace(/^\\/+/, \"/\"));\n const pathnameInfo = (0,_shared_lib_router_utils_get_next_pathname_info__WEBPACK_IMPORTED_MODULE_25__.getNextPathnameInfo)(url.pathname, {\n nextConfig: this.nextConfig,\n i18nProvider: this.i18nProvider\n });\n url.pathname = pathnameInfo.pathname;\n if (pathnameInfo.basePath) {\n req.url = (0,_shared_lib_router_utils_remove_path_prefix__WEBPACK_IMPORTED_MODULE_21__.removePathPrefix)(req.url, this.nextConfig.basePath);\n }\n const useMatchedPathHeader = this.minimalMode && typeof req.headers[\"x-matched-path\"] === \"string\";\n // TODO: merge handling with x-invoke-path\n if (useMatchedPathHeader) {\n try {\n var _this_normalizers_data, _this_normalizers_postponed, _this_i18nProvider1, _this_getRoutesManifest;\n if (this.enabledDirectories.app) {\n // ensure /index path is normalized for prerender\n // in minimal mode\n if (req.url.match(/^\\/index($|\\?)/)) {\n req.url = req.url.replace(/^\\/index/, \"/\");\n }\n parsedUrl.pathname = parsedUrl.pathname === \"/index\" ? \"/\" : parsedUrl.pathname;\n }\n // x-matched-path is the source of truth, it tells what page\n // should be rendered because we don't process rewrites in minimalMode\n let { pathname: matchedPath } = new URL(req.headers[\"x-matched-path\"], \"http://localhost\");\n const { pathname: urlPathname } = new URL(req.url, \"http://localhost\");\n // For ISR the URL is normalized to the prerenderPath so if\n // it's a data request the URL path will be the data URL,\n // basePath is already stripped by this point\n if ((_this_normalizers_data = this.normalizers.data) == null ? void 0 : _this_normalizers_data.match(urlPathname)) {\n parsedUrl.query.__nextDataReq = \"1\";\n } else if (((_this_normalizers_postponed = this.normalizers.postponed) == null ? void 0 : _this_normalizers_postponed.match(matchedPath)) && req.method === \"POST\") {\n // Decode the postponed state from the request body, it will come as\n // an array of buffers, so collect them and then concat them to form\n // the string.\n const body = [];\n for await (const chunk of req.body){\n body.push(chunk);\n }\n const postponed = Buffer.concat(body).toString(\"utf8\");\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"postponed\", postponed);\n }\n matchedPath = this.normalize(matchedPath);\n const normalizedUrlPath = this.stripNextDataPath(urlPathname);\n // Perform locale detection and normalization.\n const localeAnalysisResult = (_this_i18nProvider1 = this.i18nProvider) == null ? void 0 : _this_i18nProvider1.analyze(matchedPath, {\n defaultLocale\n });\n // The locale result will be defined even if the locale was not\n // detected for the request because it will be inferred from the\n // default locale.\n if (localeAnalysisResult) {\n parsedUrl.query.__nextLocale = localeAnalysisResult.detectedLocale;\n // If the detected locale was inferred from the default locale, we\n // need to modify the metadata on the request to indicate that.\n if (localeAnalysisResult.inferredFromDefault) {\n parsedUrl.query.__nextInferredLocaleFromDefault = \"1\";\n } else {\n delete parsedUrl.query.__nextInferredLocaleFromDefault;\n }\n }\n // TODO: check if this is needed any more?\n matchedPath = (0,_shared_lib_page_path_denormalize_page_path__WEBPACK_IMPORTED_MODULE_15__.denormalizePagePath)(matchedPath);\n let srcPathname = matchedPath;\n let pageIsDynamic = (0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_7__.isDynamicRoute)(srcPathname);\n if (!pageIsDynamic) {\n const match = await this.matchers.match(srcPathname, {\n i18n: localeAnalysisResult\n });\n // Update the source pathname to the matched page's pathname.\n if (match) {\n srcPathname = match.definition.pathname;\n // The page is dynamic if the params are defined.\n pageIsDynamic = typeof match.params !== \"undefined\";\n }\n }\n // The rest of this function can't handle i18n properly, so ensure we\n // restore the pathname with the locale information stripped from it\n // now that we're done matching if we're using i18n.\n if (localeAnalysisResult) {\n matchedPath = localeAnalysisResult.pathname;\n }\n const utils = (0,_server_utils__WEBPACK_IMPORTED_MODULE_18__.getUtils)({\n pageIsDynamic,\n page: srcPathname,\n i18n: this.nextConfig.i18n,\n basePath: this.nextConfig.basePath,\n rewrites: ((_this_getRoutesManifest = this.getRoutesManifest()) == null ? void 0 : _this_getRoutesManifest.rewrites) || {\n beforeFiles: [],\n afterFiles: [],\n fallback: []\n },\n caseSensitive: !!this.nextConfig.experimental.caseSensitiveRoutes\n });\n // Ensure parsedUrl.pathname includes locale before processing\n // rewrites or they won't match correctly.\n if (defaultLocale && !pathnameInfo.locale) {\n parsedUrl.pathname = `/${defaultLocale}${parsedUrl.pathname}`;\n }\n const pathnameBeforeRewrite = parsedUrl.pathname;\n const rewriteParams = utils.handleRewrites(req, parsedUrl);\n const rewriteParamKeys = Object.keys(rewriteParams);\n const didRewrite = pathnameBeforeRewrite !== parsedUrl.pathname;\n if (didRewrite && parsedUrl.pathname) {\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"rewroteURL\", parsedUrl.pathname);\n }\n const routeParamKeys = new Set();\n for (const key of Object.keys(parsedUrl.query)){\n const value = parsedUrl.query[key];\n if (key !== _lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_QUERY_PARAM_PREFIX)) {\n const normalizedKey = key.substring(_lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_QUERY_PARAM_PREFIX.length);\n parsedUrl.query[normalizedKey] = value;\n routeParamKeys.add(normalizedKey);\n delete parsedUrl.query[key];\n }\n }\n // interpolate dynamic params and normalize URL if needed\n if (pageIsDynamic) {\n let params = {};\n let paramsResult = utils.normalizeDynamicRouteParams(parsedUrl.query);\n // for prerendered ISR paths we attempt parsing the route\n // params from the URL directly as route-matches may not\n // contain the correct values due to the filesystem path\n // matching before the dynamic route has been matched\n if (!paramsResult.hasValidParams && pageIsDynamic && !(0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_7__.isDynamicRoute)(normalizedUrlPath)) {\n let matcherParams = utils.dynamicRouteMatcher == null ? void 0 : utils.dynamicRouteMatcher.call(utils, normalizedUrlPath);\n if (matcherParams) {\n utils.normalizeDynamicRouteParams(matcherParams);\n Object.assign(paramsResult.params, matcherParams);\n paramsResult.hasValidParams = true;\n }\n }\n if (paramsResult.hasValidParams) {\n params = paramsResult.params;\n }\n if (req.headers[\"x-now-route-matches\"] && (0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_7__.isDynamicRoute)(matchedPath) && !paramsResult.hasValidParams) {\n const opts = {};\n const routeParams = utils.getParamsFromRouteMatches(req, opts, parsedUrl.query.__nextLocale || \"\");\n // If this returns a locale, it means that the locale was detected\n // from the pathname.\n if (opts.locale) {\n parsedUrl.query.__nextLocale = opts.locale;\n // As the locale was parsed from the pathname, we should mark\n // that the locale was not inferred as the default.\n delete parsedUrl.query.__nextInferredLocaleFromDefault;\n }\n paramsResult = utils.normalizeDynamicRouteParams(routeParams, true);\n if (paramsResult.hasValidParams) {\n params = paramsResult.params;\n }\n }\n // handle the actual dynamic route name being requested\n if (pageIsDynamic && utils.defaultRouteMatches && normalizedUrlPath === srcPathname && !paramsResult.hasValidParams && !utils.normalizeDynamicRouteParams({\n ...params\n }, true).hasValidParams) {\n params = utils.defaultRouteMatches;\n }\n if (params) {\n matchedPath = utils.interpolateDynamicPath(srcPathname, params);\n req.url = utils.interpolateDynamicPath(req.url, params);\n }\n }\n if (pageIsDynamic || didRewrite) {\n var _utils_defaultRouteRegex;\n utils.normalizeVercelUrl(req, true, [\n ...rewriteParamKeys,\n ...Object.keys(((_utils_defaultRouteRegex = utils.defaultRouteRegex) == null ? void 0 : _utils_defaultRouteRegex.groups) || {})\n ]);\n }\n for (const key of routeParamKeys){\n delete parsedUrl.query[key];\n }\n parsedUrl.pathname = matchedPath;\n url.pathname = parsedUrl.pathname;\n finished = await this.normalizeAndAttachMetadata(req, res, parsedUrl);\n if (finished) return;\n } catch (err) {\n if (err instanceof _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.DecodeError || err instanceof _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.NormalizeError) {\n res.statusCode = 400;\n return this.renderError(null, req, res, \"/_error\", {});\n }\n throw err;\n }\n }\n if (false) {}\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"isLocaleDomain\", Boolean(domainLocale));\n if (pathnameInfo.locale) {\n req.url = (0,url__WEBPACK_IMPORTED_MODULE_1__.format)(url);\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"didStripLocale\", true);\n }\n // If we aren't in minimal mode or there is no locale in the query\n // string, add the locale to the query string.\n if (!this.minimalMode || !parsedUrl.query.__nextLocale) {\n // If the locale is in the pathname, add it to the query string.\n if (pathnameInfo.locale) {\n parsedUrl.query.__nextLocale = pathnameInfo.locale;\n } else if (defaultLocale) {\n parsedUrl.query.__nextLocale = defaultLocale;\n parsedUrl.query.__nextInferredLocaleFromDefault = \"1\";\n }\n }\n // set incremental cache to request meta so it can\n // be passed down for edge functions and the fetch disk\n // cache can be leveraged locally\n if (!this.serverOptions.webServerConfig && !(0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"incrementalCache\")) {\n let protocol = \"https:\";\n try {\n const parsedFullUrl = new URL((0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"initURL\") || \"/\", \"http://n\");\n protocol = parsedFullUrl.protocol;\n } catch {}\n const incrementalCache = await this.getIncrementalCache({\n requestHeaders: Object.assign({}, req.headers),\n requestProtocol: protocol.substring(0, protocol.length - 1)\n });\n incrementalCache.resetRequestCache();\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"incrementalCache\", incrementalCache);\n globalThis.__incrementalCache = incrementalCache;\n }\n // when x-invoke-path is specified we can short short circuit resolving\n // we only honor this header if we are inside of a render worker to\n // prevent external users coercing the routing path\n const invokePath = req.headers[\"x-invoke-path\"];\n const useInvokePath = !useMatchedPathHeader && \"edge\" !== \"edge\" && 0;\n if (useInvokePath) {\n var _this_nextConfig_i18n1;\n if (req.headers[\"x-invoke-status\"]) {\n const invokeQuery = req.headers[\"x-invoke-query\"];\n if (typeof invokeQuery === \"string\") {\n Object.assign(parsedUrl.query, JSON.parse(decodeURIComponent(invokeQuery)));\n }\n res.statusCode = Number(req.headers[\"x-invoke-status\"]);\n let err = null;\n if (typeof req.headers[\"x-invoke-error\"] === \"string\") {\n const invokeError = JSON.parse(req.headers[\"x-invoke-error\"] || \"{}\");\n err = new Error(invokeError.message);\n }\n return this.renderError(err, req, res, \"/_error\", parsedUrl.query);\n }\n const parsedMatchedPath = new URL(invokePath || \"/\", \"http://n\");\n const invokePathnameInfo = (0,_shared_lib_router_utils_get_next_pathname_info__WEBPACK_IMPORTED_MODULE_25__.getNextPathnameInfo)(parsedMatchedPath.pathname, {\n nextConfig: this.nextConfig,\n parseData: false\n });\n if (invokePathnameInfo.locale) {\n parsedUrl.query.__nextLocale = invokePathnameInfo.locale;\n }\n if (parsedUrl.pathname !== parsedMatchedPath.pathname) {\n parsedUrl.pathname = parsedMatchedPath.pathname;\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(req, \"rewroteURL\", invokePathnameInfo.pathname);\n }\n const normalizeResult = (0,_shared_lib_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_41__.normalizeLocalePath)((0,_shared_lib_router_utils_remove_path_prefix__WEBPACK_IMPORTED_MODULE_21__.removePathPrefix)(parsedUrl.pathname, this.nextConfig.basePath || \"\"), ((_this_nextConfig_i18n1 = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n1.locales) || []);\n if (normalizeResult.detectedLocale) {\n parsedUrl.query.__nextLocale = normalizeResult.detectedLocale;\n }\n parsedUrl.pathname = normalizeResult.pathname;\n for (const key of Object.keys(parsedUrl.query)){\n if (!key.startsWith(\"__next\") && !key.startsWith(\"_next\")) {\n delete parsedUrl.query[key];\n }\n }\n const invokeQuery = req.headers[\"x-invoke-query\"];\n if (typeof invokeQuery === \"string\") {\n Object.assign(parsedUrl.query, JSON.parse(decodeURIComponent(invokeQuery)));\n }\n finished = await this.normalizeAndAttachMetadata(req, res, parsedUrl);\n if (finished) return;\n await this.handleCatchallRenderRequest(req, res, parsedUrl);\n return;\n }\n if (false) {}\n // This wasn't a request via the matched path or the invoke path, so\n // prepare for a legacy run by removing the base path.\n // ensure we strip the basePath when not using an invoke header\n if (!useMatchedPathHeader && pathnameInfo.basePath) {\n parsedUrl.pathname = (0,_shared_lib_router_utils_remove_path_prefix__WEBPACK_IMPORTED_MODULE_21__.removePathPrefix)(parsedUrl.pathname, pathnameInfo.basePath);\n }\n res.statusCode = 200;\n return await this.run(req, res, parsedUrl);\n } catch (err) {\n if (err instanceof NoFallbackError) {\n throw err;\n }\n if (err && typeof err === \"object\" && err.code === \"ERR_INVALID_URL\" || err instanceof _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.DecodeError || err instanceof _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.NormalizeError) {\n res.statusCode = 400;\n return this.renderError(null, req, res, \"/_error\", {});\n }\n if (this.minimalMode || this.renderOpts.dev || err.bubble) {\n throw err;\n }\n this.logError((0,_lib_is_error__WEBPACK_IMPORTED_MODULE_19__.getProperError)(err));\n res.statusCode = 500;\n res.body(\"Internal Server Error\").send();\n }\n }\n /**\n * @internal - this method is internal to Next.js and should not be used directly by end-users\n */ getRequestHandlerWithMetadata(meta) {\n const handler = this.getRequestHandler();\n return (req, res, parsedUrl)=>{\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.setRequestMeta)(req, meta);\n return handler(req, res, parsedUrl);\n };\n }\n getRequestHandler() {\n return this.handleRequest.bind(this);\n }\n setAssetPrefix(prefix) {\n this.renderOpts.assetPrefix = prefix ? prefix.replace(/\\/$/, \"\") : \"\";\n }\n /**\n * Runs async initialization of server.\n * It is idempotent, won't fire underlying initialization more than once.\n */ async prepare() {\n if (this.prepared) return;\n if (this.preparedPromise === null) {\n this.preparedPromise = this.prepareImpl().then(()=>{\n this.prepared = true;\n this.preparedPromise = null;\n });\n }\n return this.preparedPromise;\n }\n async prepareImpl() {}\n // Backwards compatibility\n async close() {}\n getAppPathRoutes() {\n const appPathRoutes = {};\n Object.keys(this.appPathsManifest || {}).forEach((entry)=>{\n const normalizedPath = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_22__.normalizeAppPath)(entry);\n if (!appPathRoutes[normalizedPath]) {\n appPathRoutes[normalizedPath] = [];\n }\n appPathRoutes[normalizedPath].push(entry);\n });\n return appPathRoutes;\n }\n async run(req, res, parsedUrl) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.run, async ()=>this.runImpl(req, res, parsedUrl));\n }\n async runImpl(req, res, parsedUrl) {\n await this.handleCatchallRenderRequest(req, res, parsedUrl);\n }\n async pipe(fn, partialContext) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.pipe, async ()=>this.pipeImpl(fn, partialContext));\n }\n async pipeImpl(fn, partialContext) {\n const isBotRequest = (0,_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_12__.isBot)(partialContext.req.headers[\"user-agent\"] || \"\");\n const ctx = {\n ...partialContext,\n renderOpts: {\n ...this.renderOpts,\n supportsDynamicHTML: !isBotRequest,\n isBot: !!isBotRequest\n }\n };\n const payload = await fn(ctx);\n if (payload === null) {\n return;\n }\n const { req, res } = ctx;\n const originalStatus = res.statusCode;\n const { body, type } = payload;\n let { revalidate } = payload;\n if (!res.sent) {\n const { generateEtags, poweredByHeader, dev } = this.renderOpts;\n // In dev, we should not cache pages for any reason.\n if (dev) {\n res.setHeader(\"Cache-Control\", \"no-store, must-revalidate\");\n revalidate = undefined;\n }\n await this.sendRenderResult(req, res, {\n result: body,\n type,\n generateEtags,\n poweredByHeader,\n revalidate\n });\n res.statusCode = originalStatus;\n }\n }\n async getStaticHTML(fn, partialContext) {\n const ctx = {\n ...partialContext,\n renderOpts: {\n ...this.renderOpts,\n supportsDynamicHTML: false\n }\n };\n const payload = await fn(ctx);\n if (payload === null) {\n return null;\n }\n return payload.body.toUnchunkedString();\n }\n async render(req, res, pathname, query = {}, parsedUrl, internalRender = false) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.render, async ()=>this.renderImpl(req, res, pathname, query, parsedUrl, internalRender));\n }\n async renderImpl(req, res, pathname, query = {}, parsedUrl, internalRender = false) {\n var _req_url;\n if (!pathname.startsWith(\"/\")) {\n console.warn(`Cannot render page with path \"${pathname}\", did you mean \"/${pathname}\"?. See more info here: https://nextjs.org/docs/messages/render-no-starting-slash`);\n }\n if (this.renderOpts.customServer && pathname === \"/index\" && !await this.hasPage(\"/index\")) {\n // maintain backwards compatibility for custom server\n // (see custom-server integration tests)\n pathname = \"/\";\n }\n // we allow custom servers to call render for all URLs\n // so check if we need to serve a static _next file or not.\n // we don't modify the URL for _next/data request but still\n // call render so we special case this to prevent an infinite loop\n if (!internalRender && !this.minimalMode && !query.__nextDataReq && (((_req_url = req.url) == null ? void 0 : _req_url.match(/^\\/_next\\//)) || this.hasStaticDir && req.url.match(/^\\/static\\//))) {\n return this.handleRequest(req, res, parsedUrl);\n }\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_11__.isBlockedPage)(pathname)) {\n return this.render404(req, res, parsedUrl);\n }\n return this.pipe((ctx)=>this.renderToResponse(ctx), {\n req,\n res,\n pathname,\n query\n });\n }\n async getStaticPaths({ pathname }) {\n var _this_getPrerenderManifest_dynamicRoutes_pathname;\n // Read whether or not fallback should exist from the manifest.\n const fallbackField = (_this_getPrerenderManifest_dynamicRoutes_pathname = this.getPrerenderManifest().dynamicRoutes[pathname]) == null ? void 0 : _this_getPrerenderManifest_dynamicRoutes_pathname.fallback;\n return {\n // `staticPaths` is intentionally set to `undefined` as it should've\n // been caught when checking disk data.\n staticPaths: undefined,\n fallbackMode: typeof fallbackField === \"string\" ? \"static\" : fallbackField === null ? \"blocking\" : fallbackField\n };\n }\n async renderToResponseWithComponents(requestContext, findComponentsResult) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.renderToResponseWithComponents, async ()=>this.renderToResponseWithComponentsImpl(requestContext, findComponentsResult));\n }\n stripInternalHeaders(req) {\n // Skip stripping internal headers in test mode while the header stripping\n // has been explicitly disabled. This allows tests to verify internal\n // routing behavior.\n if (false) {}\n // Strip the internal headers from both the request and the original\n // request.\n (0,_internal_utils__WEBPACK_IMPORTED_MODULE_45__.stripInternalHeaders)(req.headers);\n if (\"originalRequest\" in req && \"headers\" in req.originalRequest) {\n (0,_internal_utils__WEBPACK_IMPORTED_MODULE_45__.stripInternalHeaders)(req.originalRequest.headers);\n }\n }\n async renderToResponseWithComponentsImpl({ req, res, pathname, renderOpts: opts }, { components, query }) {\n var _components_Component, _this_nextConfig_i18n, _this_nextConfig_i18n1, _cacheEntry_value;\n const is404Page = true && pathname === \"/_not-found\" || pathname === \"/404\";\n // Strip the internal headers.\n this.stripInternalHeaders(req);\n const is500Page = pathname === \"/500\";\n const isAppPath = components.isAppPath === true;\n const hasServerProps = !!components.getServerSideProps;\n let hasStaticPaths = !!components.getStaticPaths;\n const isServerAction = (0,_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_52__.getIsServerAction)(req);\n const hasGetInitialProps = !!((_components_Component = components.Component) == null ? void 0 : _components_Component.getInitialProps);\n let isSSG = !!components.getStaticProps;\n // Compute the iSSG cache key. We use the rewroteUrl since\n // pages with fallback: false are allowed to be rewritten to\n // and we need to look up the path by the rewritten path\n let urlPathname = (0,url__WEBPACK_IMPORTED_MODULE_1__.parse)(req.url || \"\").pathname || \"/\";\n let resolvedUrlPathname = (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"rewroteURL\") || urlPathname;\n let staticPaths;\n let fallbackMode;\n let hasFallback = false;\n const isDynamic = (0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_7__.isDynamicRoute)(components.page);\n const prerenderManifest = this.getPrerenderManifest();\n if (isAppPath && isDynamic) {\n const pathsResult = await this.getStaticPaths({\n pathname,\n page: components.page,\n isAppPath,\n requestHeaders: req.headers\n });\n staticPaths = pathsResult.staticPaths;\n fallbackMode = pathsResult.fallbackMode;\n hasFallback = typeof fallbackMode !== \"undefined\";\n if (this.nextConfig.output === \"export\") {\n const page = components.page;\n if (fallbackMode !== \"static\") {\n throw new Error(`Page \"${page}\" is missing exported function \"generateStaticParams()\", which is required with \"output: export\" config.`);\n }\n const resolvedWithoutSlash = (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_14__.removeTrailingSlash)(resolvedUrlPathname);\n if (!(staticPaths == null ? void 0 : staticPaths.includes(resolvedWithoutSlash))) {\n throw new Error(`Page \"${page}\" is missing param \"${resolvedWithoutSlash}\" in \"generateStaticParams()\", which is required with \"output: export\" config.`);\n }\n }\n if (hasFallback) {\n hasStaticPaths = true;\n }\n }\n if (hasFallback || (staticPaths == null ? void 0 : staticPaths.includes(resolvedUrlPathname)) || // this signals revalidation in deploy environments\n // TODO: make this more generic\n req.headers[\"x-now-route-matches\"]) {\n isSSG = true;\n } else if (!this.renderOpts.dev) {\n isSSG ||= !!prerenderManifest.routes[pathname === \"/index\" ? \"/\" : pathname];\n }\n // Toggle whether or not this is a Data request\n let isDataReq = !!(query.__nextDataReq || req.headers[\"x-nextjs-data\"] && this.serverOptions.webServerConfig) && (isSSG || hasServerProps);\n /**\n * If true, this indicates that the request being made is for an app\n * prefetch request.\n */ const isPrefetchRSCRequest = (req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.NEXT_ROUTER_PREFETCH_HEADER.toLowerCase()] === \"1\" || (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"isPrefetchRSCRequest\")) ?? false;\n // when we are handling a middleware prefetch and it doesn't\n // resolve to a static data route we bail early to avoid\n // unexpected SSR invocations\n if (!isSSG && req.headers[\"x-middleware-prefetch\"] && !(is404Page || pathname === \"/_error\")) {\n res.setHeader(\"x-middleware-skip\", \"1\");\n res.setHeader(\"cache-control\", \"private, no-cache, no-store, max-age=0, must-revalidate\");\n res.body(\"{}\").send();\n return null;\n }\n delete query.__nextDataReq;\n // normalize req.url for SSG paths as it is not exposed\n // to getStaticProps and the asPath should not expose /_next/data\n if (isSSG && this.minimalMode && req.headers[\"x-matched-path\"] && req.url.startsWith(\"/_next/data\")) {\n req.url = this.stripNextDataPath(req.url);\n }\n if (!!req.headers[\"x-nextjs-data\"] && (!res.statusCode || res.statusCode === 200)) {\n res.setHeader(\"x-nextjs-matched-path\", `${query.__nextLocale ? `/${query.__nextLocale}` : \"\"}${pathname}`);\n }\n // Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later\n const isRSCRequest = (Boolean(req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.RSC_HEADER.toLowerCase()]) || (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"isRSCRequest\")) ?? false;\n // If we're in minimal mode, then try to get the postponed information from\n // the request metadata. If available, use it for resuming the postponed\n // render.\n const minimalPostponed = (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"postponed\");\n // If PPR is enabled, and this is a RSC request (but not a prefetch), then\n // we can use this fact to only generate the flight data for the request\n // because we can't cache the HTML (as it's also dynamic).\n const isDynamicRSCRequest = opts.experimental.ppr && isRSCRequest && !isPrefetchRSCRequest;\n // For pages we need to ensure the correct Vary header is set too, to avoid\n // caching issues when navigating between pages and app\n if (!isAppPath && isRSCRequest) {\n res.setHeader(\"vary\", _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.RSC_VARY_HEADER);\n }\n // we need to ensure the status code if /404 is visited directly\n if (is404Page && !isDataReq && !isRSCRequest) {\n res.statusCode = 404;\n }\n // ensure correct status is set when visiting a status page\n // directly e.g. /500\n if (_shared_lib_constants__WEBPACK_IMPORTED_MODULE_5__.STATIC_STATUS_PAGES.includes(pathname)) {\n res.statusCode = parseInt(pathname.slice(1), 10);\n }\n if (!isServerAction && // Resume can use non-GET/HEAD methods.\n !minimalPostponed && !is404Page && !is500Page && pathname !== \"/_error\" && req.method !== \"HEAD\" && req.method !== \"GET\" && (typeof components.Component === \"string\" || isSSG)) {\n res.statusCode = 405;\n res.setHeader(\"Allow\", [\n \"GET\",\n \"HEAD\"\n ]);\n await this.renderError(null, req, res, pathname);\n return null;\n }\n // handle static page\n if (typeof components.Component === \"string\") {\n return {\n type: \"html\",\n // TODO: Static pages should be serialized as RenderResult\n body: _render_result__WEBPACK_IMPORTED_MODULE_13__[\"default\"].fromStatic(components.Component)\n };\n }\n if (!query.amp) {\n delete query.amp;\n }\n if (opts.supportsDynamicHTML === true) {\n var _components_Document;\n const isBotRequest = (0,_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_12__.isBot)(req.headers[\"user-agent\"] || \"\");\n const isSupportedDocument = typeof ((_components_Document = components.Document) == null ? void 0 : _components_Document.getInitialProps) !== \"function\" || // The built-in `Document` component also supports dynamic HTML for concurrent mode.\n _shared_lib_constants__WEBPACK_IMPORTED_MODULE_5__.NEXT_BUILTIN_DOCUMENT in components.Document;\n // Disable dynamic HTML in cases that we know it won't be generated,\n // so that we can continue generating a cache key when possible.\n // TODO-APP: should the first render for a dynamic app path\n // be static so we can collect revalidate and populate the\n // cache if there are no dynamic data requirements\n opts.supportsDynamicHTML = !isSSG && !isBotRequest && !query.amp && isSupportedDocument;\n opts.isBot = isBotRequest;\n }\n // In development, we always want to generate dynamic HTML.\n if (!isDataReq && isAppPath && opts.dev && opts.supportsDynamicHTML === false) {\n opts.supportsDynamicHTML = true;\n }\n const defaultLocale = isSSG ? (_this_nextConfig_i18n = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n.defaultLocale : query.__nextDefaultLocale;\n const locale = query.__nextLocale;\n const locales = (_this_nextConfig_i18n1 = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n1.locales;\n let previewData;\n let isPreviewMode = false;\n if (hasServerProps || isSSG) {\n // For the edge runtime, we don't support preview mode in SSG.\n if (false) {}\n }\n if (isAppPath) {\n res.setHeader(\"vary\", _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.RSC_VARY_HEADER);\n if (!this.renderOpts.dev && !isPreviewMode && isSSG && isRSCRequest) {\n // If this is an RSC request but we aren't in minimal mode, then we mark\n // that this is a data request so that we can generate the flight data\n // only.\n if (!this.minimalMode) {\n isDataReq = true;\n }\n // If this is a dynamic RSC request, ensure that we don't purge the\n // flight headers to ensure that we will only produce the RSC response.\n // We only need to do this in non-edge environments (as edge doesn't\n // support static generation).\n if (!isDynamicRSCRequest && (!(0,_lib_is_edge_runtime__WEBPACK_IMPORTED_MODULE_4__.isEdgeRuntime)(opts.runtime) || this.serverOptions.webServerConfig)) {\n (0,_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_48__.stripFlightHeaders)(req.headers);\n }\n }\n }\n let isOnDemandRevalidate = false;\n let revalidateOnlyGenerated = false;\n if (isSSG) {\n ({ isOnDemandRevalidate, revalidateOnlyGenerated } = (0,_api_utils__WEBPACK_IMPORTED_MODULE_8__.checkIsOnDemandRevalidate)(req, this.renderOpts.previewProps));\n }\n if (isSSG && this.minimalMode && req.headers[\"x-matched-path\"]) {\n // the url value is already correct when the matched-path header is set\n resolvedUrlPathname = urlPathname;\n }\n urlPathname = (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_14__.removeTrailingSlash)(urlPathname);\n resolvedUrlPathname = (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_14__.removeTrailingSlash)(resolvedUrlPathname);\n if (this.localeNormalizer) {\n resolvedUrlPathname = this.localeNormalizer.normalize(resolvedUrlPathname);\n }\n const handleRedirect = (pageData)=>{\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH\n };\n const statusCode = (0,_lib_redirect_status__WEBPACK_IMPORTED_MODULE_3__.getRedirectStatus)(redirect);\n const { basePath } = this.nextConfig;\n if (basePath && redirect.basePath !== false && redirect.destination.startsWith(\"/\")) {\n redirect.destination = `${basePath}${redirect.destination}`;\n }\n if (redirect.destination.startsWith(\"/\")) {\n redirect.destination = (0,_shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.normalizeRepeatedSlashes)(redirect.destination);\n }\n res.redirect(redirect.destination, statusCode).body(redirect.destination).send();\n };\n // remove /_next/data prefix from urlPathname so it matches\n // for direct page visit and /_next/data visit\n if (isDataReq) {\n resolvedUrlPathname = this.stripNextDataPath(resolvedUrlPathname);\n urlPathname = this.stripNextDataPath(urlPathname);\n }\n let ssgCacheKey = null;\n if (!isPreviewMode && isSSG && !opts.supportsDynamicHTML && !isServerAction && !minimalPostponed && !isDynamicRSCRequest) {\n ssgCacheKey = `${locale ? `/${locale}` : \"\"}${(pathname === \"/\" || resolvedUrlPathname === \"/\") && locale ? \"\" : resolvedUrlPathname}${query.amp ? \".amp\" : \"\"}`;\n }\n if ((is404Page || is500Page) && isSSG) {\n ssgCacheKey = `${locale ? `/${locale}` : \"\"}${pathname}${query.amp ? \".amp\" : \"\"}`;\n }\n if (ssgCacheKey) {\n // we only encode path delimiters for path segments from\n // getStaticPaths so we need to attempt decoding the URL\n // to match against and only escape the path delimiters\n // this allows non-ascii values to be handled e.g. Japanese characters\n // TODO: investigate adding this handling for non-SSG pages so\n // non-ascii names work there also\n ssgCacheKey = ssgCacheKey.split(\"/\").map((seg)=>{\n try {\n seg = (0,_shared_lib_router_utils_escape_path_delimiters__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(decodeURIComponent(seg), true);\n } catch (_) {\n // An improperly encoded URL was provided\n throw new _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.DecodeError(\"failed to decode param\");\n }\n return seg;\n }).join(\"/\");\n // ensure /index and / is normalized to one key\n ssgCacheKey = ssgCacheKey === \"/index\" && pathname === \"/\" ? \"/\" : ssgCacheKey;\n }\n let protocol = \"https:\";\n try {\n const parsedFullUrl = new URL((0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"initURL\") || \"/\", \"http://n\");\n protocol = parsedFullUrl.protocol;\n } catch {}\n // use existing incrementalCache instance if available\n const incrementalCache = globalThis.__incrementalCache || await this.getIncrementalCache({\n requestHeaders: Object.assign({}, req.headers),\n requestProtocol: protocol.substring(0, protocol.length - 1)\n });\n incrementalCache == null ? void 0 : incrementalCache.resetRequestCache();\n const { routeModule } = components;\n const doRender = async ({ postponed })=>{\n // In development, we always want to generate dynamic HTML.\n const supportsDynamicHTML = // support dynamic HTML.\n !isDataReq && opts.dev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isSSG && !hasStaticPaths || // If this request has provided postponed data, it supports dynamic\n // HTML.\n typeof postponed === \"string\" || // If this is a dynamic RSC request, then this render supports dynamic\n // HTML (it's dynamic).\n isDynamicRSCRequest;\n const origQuery = (0,url__WEBPACK_IMPORTED_MODULE_1__.parse)(req.url || \"\", true).query;\n // clear any dynamic route params so they aren't in\n // the resolvedUrl\n if (opts.params) {\n Object.keys(opts.params).forEach((key)=>{\n delete origQuery[key];\n });\n }\n const hadTrailingSlash = urlPathname !== \"/\" && this.nextConfig.trailingSlash;\n const resolvedUrl = (0,url__WEBPACK_IMPORTED_MODULE_1__.format)({\n pathname: `${resolvedUrlPathname}${hadTrailingSlash ? \"/\" : \"\"}`,\n // make sure to only add query values from original URL\n query: origQuery\n });\n const renderOpts = {\n ...components,\n ...opts,\n ...isAppPath ? {\n incrementalCache,\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n isRevalidate: isSSG && !postponed && !isDynamicRSCRequest,\n originalPathname: components.ComponentMod.originalPathname,\n serverActions: this.nextConfig.experimental.serverActions\n } : {},\n isDataReq,\n resolvedUrl,\n locale,\n locales,\n defaultLocale,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath: hasServerProps || hasGetInitialProps ? (0,url__WEBPACK_IMPORTED_MODULE_1__.format)({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: `${urlPathname}${hadTrailingSlash ? \"/\" : \"\"}`,\n query: origQuery\n }) : resolvedUrl,\n supportsDynamicHTML,\n isOnDemandRevalidate,\n isDraftMode: isPreviewMode,\n isServerAction,\n postponed\n };\n // Legacy render methods will return a render result that needs to be\n // served by the server.\n let result;\n if (routeModule) {\n if ((0,_future_route_modules_checks__WEBPACK_IMPORTED_MODULE_49__.isAppRouteRouteModule)(routeModule)) {\n const context = {\n params: opts.params,\n prerenderManifest,\n renderOpts: {\n // App Route's cannot postpone, so don't enable it.\n experimental: {\n ppr: false\n },\n originalPathname: components.ComponentMod.originalPathname,\n supportsDynamicHTML,\n incrementalCache,\n isRevalidate: isSSG\n }\n };\n try {\n const request = _web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_42__.NextRequestAdapter.fromBaseNextRequest(req, (0,_web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_42__.signalFromNodeResponse)(res.originalResponse));\n const response = await routeModule.handle(request, context);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n const cacheTags = context.renderOpts.fetchTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isSSG && \"edge\" !== \"edge\") { var _context_renderOpts_store; }\n // Send the response now that we have copied it into the cache.\n await (0,_send_response__WEBPACK_IMPORTED_MODULE_37__.sendResponse)(req, res, response, context.renderOpts.waitUntil);\n return null;\n } catch (err) {\n // If this is during static generation, throw the error again.\n if (isSSG) throw err;\n _build_output_log__WEBPACK_IMPORTED_MODULE_16__.error(err);\n // Otherwise, send a 500 response.\n await (0,_send_response__WEBPACK_IMPORTED_MODULE_37__.sendResponse)(req, res, (0,_future_route_modules_helpers_response_handlers__WEBPACK_IMPORTED_MODULE_38__.handleInternalServerErrorResponse)());\n return null;\n }\n } else if ((0,_future_route_modules_checks__WEBPACK_IMPORTED_MODULE_49__.isPagesRouteModule)(routeModule)) {\n // Due to the way we pass data by mutating `renderOpts`, we can't extend\n // the object here but only updating its `clientReferenceManifest` and\n // `nextFontManifest` properties.\n // https://github.com/vercel/next.js/blob/df7cbd904c3bd85f399d1ce90680c0ecf92d2752/packages/next/server/render.tsx#L947-L952\n renderOpts.nextFontManifest = this.nextFontManifest;\n renderOpts.clientReferenceManifest = components.clientReferenceManifest;\n // Call the built-in render method on the module.\n result = await routeModule.render(req.originalRequest ?? req, res.originalResponse ?? res, {\n page: pathname,\n params: opts.params,\n query,\n renderOpts\n });\n } else if ((0,_future_route_modules_checks__WEBPACK_IMPORTED_MODULE_49__.isAppPageRouteModule)(routeModule)) {\n const module = components.routeModule;\n // Due to the way we pass data by mutating `renderOpts`, we can't extend the\n // object here but only updating its `nextFontManifest` field.\n // https://github.com/vercel/next.js/blob/df7cbd904c3bd85f399d1ce90680c0ecf92d2752/packages/next/server/render.tsx#L947-L952\n renderOpts.nextFontManifest = this.nextFontManifest;\n // Call the built-in render method on the module.\n result = await module.render(req.originalRequest ?? req, res.originalResponse ?? res, {\n page: is404Page ? \"/404\" : pathname,\n params: opts.params,\n query,\n renderOpts\n });\n } else {\n throw new Error(\"Invariant: Unknown route module type\");\n }\n } else {\n // If we didn't match a page, we should fallback to using the legacy\n // render method.\n result = await this.renderHTML(req, res, pathname, query, renderOpts);\n }\n const { metadata } = result;\n const { headers = {}, fetchTags: cacheTags } = metadata;\n if (cacheTags) {\n headers[_lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n req.fetchMetrics = metadata.fetchMetrics;\n // we don't throw static to dynamic errors in dev as isSSG\n // is a best guess in dev since we don't have the prerender pass\n // to know whether the path is actually static or not\n if (isAppPath && isSSG && metadata.revalidate === 0 && !this.renderOpts.dev && !renderOpts.experimental.ppr) {\n const staticBailoutInfo = metadata.staticBailoutInfo;\n const err = new Error(`Page changed from static to dynamic at runtime ${urlPathname}${(staticBailoutInfo == null ? void 0 : staticBailoutInfo.description) ? `, reason: ${staticBailoutInfo.description}` : ``}` + `\\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`);\n if (staticBailoutInfo == null ? void 0 : staticBailoutInfo.stack) {\n const stack = staticBailoutInfo.stack;\n err.stack = err.message + stack.substring(stack.indexOf(\"\\n\"));\n }\n throw err;\n }\n // Based on the metadata, we can determine what kind of cache result we\n // should return.\n // Handle `isNotFound`.\n if (\"isNotFound\" in metadata && metadata.isNotFound) {\n return {\n value: null,\n revalidate: metadata.revalidate\n };\n }\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: \"REDIRECT\",\n props: metadata.pageData ?? metadata.flightData\n },\n revalidate: metadata.revalidate\n };\n }\n // Handle `isNull`.\n if (result.isNull) {\n return null;\n }\n // We now have a valid HTML result that we can return to the user.\n return {\n value: {\n kind: \"PAGE\",\n html: result,\n pageData: metadata.pageData ?? metadata.flightData,\n postponed: metadata.postponed,\n headers,\n status: isAppPath ? res.statusCode : undefined\n },\n revalidate: metadata.revalidate\n };\n };\n const cacheEntry = await this.responseCache.get(ssgCacheKey, async (hasResolved, previousCacheEntry, isRevalidating)=>{\n const isProduction = !this.renderOpts.dev;\n const didRespond = hasResolved || res.sent;\n if (!staticPaths) {\n ({ staticPaths, fallbackMode } = hasStaticPaths ? await this.getStaticPaths({\n pathname,\n requestHeaders: req.headers,\n isAppPath,\n page: components.page\n }) : {\n staticPaths: undefined,\n fallbackMode: false\n });\n }\n if (fallbackMode === \"static\" && (0,_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_12__.isBot)(req.headers[\"user-agent\"] || \"\")) {\n fallbackMode = \"blocking\";\n }\n // skip on-demand revalidate if cache is not present and\n // revalidate-if-generated is set\n if (isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry && !this.minimalMode) {\n await this.render404(req, res);\n return null;\n }\n if ((previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) === -1) {\n isOnDemandRevalidate = true;\n }\n // only allow on-demand revalidate for fallback: true/blocking\n // or for prerendered fallback: false paths\n if (isOnDemandRevalidate && (fallbackMode !== false || previousCacheEntry)) {\n fallbackMode = \"blocking\";\n }\n // We use `ssgCacheKey` here as it is normalized to match the encoding\n // from getStaticPaths along with including the locale.\n //\n // We use the `resolvedUrlPathname` for the development case when this\n // is an app path since it doesn't include locale information.\n let staticPathKey = ssgCacheKey ?? (opts.dev && isAppPath ? resolvedUrlPathname : null);\n if (staticPathKey && query.amp) {\n staticPathKey = staticPathKey.replace(/\\.amp$/, \"\");\n }\n const isPageIncludedInStaticPaths = staticPathKey && (staticPaths == null ? void 0 : staticPaths.includes(staticPathKey));\n if (this.nextConfig.experimental.isExperimentalCompile) {\n fallbackMode = \"blocking\";\n }\n // When we did not respond from cache, we need to choose to block on\n // rendering or return a skeleton.\n //\n // - Data requests always block.\n // - Blocking mode fallback always blocks.\n // - Preview mode toggles all pages to be resolved in a blocking manner.\n // - Non-dynamic pages should block (though this is an impossible\n // case in production).\n // - Dynamic pages should return their skeleton if not defined in\n // getStaticPaths, then finish the data request on the client-side.\n //\n if (false) {}\n const result = await doRender({\n // Only requests that aren't revalidating can be resumed. If we have the\n // minimal postponed data, then we should resume the render with it.\n postponed: !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined\n });\n if (!result) {\n return null;\n }\n return {\n ...result,\n revalidate: result.revalidate !== undefined ? result.revalidate : /* default to minimum revalidate (this should be an invariant) */ 1\n };\n }, {\n routeKind: routeModule == null ? void 0 : routeModule.definition.kind,\n incrementalCache,\n isOnDemandRevalidate,\n isPrefetch: req.headers.purpose === \"prefetch\"\n });\n if (!cacheEntry) {\n if (ssgCacheKey && !(isOnDemandRevalidate && revalidateOnlyGenerated)) {\n // A cache entry might not be generated if a response is written\n // in `getInitialProps` or `getServerSideProps`, but those shouldn't\n // have a cache key. If we do have a cache key but we don't end up\n // with a cache entry, then either Next.js or the application has a\n // bug that needs fixing.\n throw new Error(\"invariant: cache entry required but not generated\");\n }\n return null;\n }\n const didPostpone = ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === \"PAGE\" && !!cacheEntry.value.postponed;\n if (isSSG && !this.minimalMode && // We don't want to send a cache header for requests that contain dynamic\n // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC\n // request, then we should set the cache header.\n !isDynamicRSCRequest && (!didPostpone || isPrefetchRSCRequest)) {\n // set x-nextjs-cache header to match the header\n // we set for the image-optimizer\n res.setHeader(\"x-nextjs-cache\", isOnDemandRevalidate ? \"REVALIDATED\" : cacheEntry.isMiss ? \"MISS\" : cacheEntry.isStale ? \"STALE\" : \"HIT\");\n }\n const { value: cachedData } = cacheEntry;\n // If the cache value is an image, we should error early.\n if ((cachedData == null ? void 0 : cachedData.kind) === \"IMAGE\") {\n throw new Error(\"invariant SSG should not return an image cache value\");\n }\n // Coerce the revalidate parameter from the render.\n let revalidate;\n // If this is a resume request in minimal mode it is streamed with dynamic\n // content and should not be cached.\n if (minimalPostponed) {\n revalidate = 0;\n } else if (this.minimalMode && isRSCRequest && !isPrefetchRSCRequest && opts.experimental.ppr) {\n revalidate = 0;\n } else if (typeof cacheEntry.revalidate !== \"undefined\" && (!this.renderOpts.dev || hasServerProps && !isDataReq)) {\n // If this is a preview mode request, we shouldn't cache it. We also don't\n // cache 404 pages.\n if (isPreviewMode || is404Page && !isDataReq) {\n revalidate = 0;\n } else if (!isSSG) {\n if (!res.getHeader(\"Cache-Control\")) {\n revalidate = 0;\n }\n } else if (typeof cacheEntry.revalidate === \"number\") {\n if (cacheEntry.revalidate < 1) {\n throw new Error(`Invariant: invalid Cache-Control duration provided: ${cacheEntry.revalidate} < 1`);\n }\n revalidate = cacheEntry.revalidate;\n } else if (cacheEntry.revalidate === false) {\n revalidate = _lib_constants__WEBPACK_IMPORTED_MODULE_40__.CACHE_ONE_YEAR;\n }\n }\n cacheEntry.revalidate = revalidate;\n // If there's a callback for `onCacheEntry`, call it with the cache entry\n // and the revalidate options.\n const onCacheEntry = (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"onCacheEntry\");\n if (onCacheEntry) {\n const finished = await onCacheEntry(cacheEntry, {\n url: (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(req, \"initURL\")\n });\n if (finished) {\n // TODO: maybe we have to end the request?\n return null;\n }\n }\n if (!cachedData) {\n if (cacheEntry.revalidate) {\n res.setHeader(\"Cache-Control\", (0,_lib_revalidate__WEBPACK_IMPORTED_MODULE_10__.formatRevalidate)(cacheEntry.revalidate));\n }\n if (isDataReq) {\n res.statusCode = 404;\n res.body('{\"notFound\":true}').send();\n return null;\n }\n if (this.renderOpts.dev) {\n query.__nextNotFoundSrcPage = pathname;\n }\n await this.render404(req, res, {\n pathname,\n query\n }, false);\n return null;\n } else if (cachedData.kind === \"REDIRECT\") {\n if (cacheEntry.revalidate) {\n res.setHeader(\"Cache-Control\", (0,_lib_revalidate__WEBPACK_IMPORTED_MODULE_10__.formatRevalidate)(cacheEntry.revalidate));\n }\n if (isDataReq) {\n return {\n type: \"json\",\n body: _render_result__WEBPACK_IMPORTED_MODULE_13__[\"default\"].fromStatic(JSON.stringify(cachedData.props)),\n revalidate: cacheEntry.revalidate\n };\n } else {\n await handleRedirect(cachedData.props);\n return null;\n }\n } else if (cachedData.kind === \"ROUTE\") {\n const headers = {\n ...cachedData.headers\n };\n if (!(this.minimalMode && isSSG)) {\n delete headers[_lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_CACHE_TAGS_HEADER];\n }\n await (0,_send_response__WEBPACK_IMPORTED_MODULE_37__.sendResponse)(req, res, new Response(cachedData.body, {\n headers: (0,_web_utils__WEBPACK_IMPORTED_MODULE_39__.fromNodeOutgoingHttpHeaders)(headers),\n status: cachedData.status || 200\n }));\n return null;\n } else if (isAppPath) {\n var _cachedData_headers;\n // If the request has a postponed state and it's a resume request we\n // should error.\n if (cachedData.postponed && minimalPostponed) {\n throw new Error(\"Invariant: postponed state should not be present on a resume request\");\n }\n if (cachedData.headers) {\n const headers = {\n ...cachedData.headers\n };\n if (!this.minimalMode || !isSSG) {\n delete headers[_lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_CACHE_TAGS_HEADER];\n }\n for (let [key, value] of Object.entries(headers)){\n if (typeof value === \"undefined\") continue;\n if (Array.isArray(value)) {\n for (const v of value){\n res.appendHeader(key, v);\n }\n } else if (typeof value === \"number\") {\n value = value.toString();\n res.appendHeader(key, value);\n } else {\n res.appendHeader(key, value);\n }\n }\n }\n if (this.minimalMode && isSSG && ((_cachedData_headers = cachedData.headers) == null ? void 0 : _cachedData_headers[_lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_CACHE_TAGS_HEADER])) {\n res.setHeader(_lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_CACHE_TAGS_HEADER, cachedData.headers[_lib_constants__WEBPACK_IMPORTED_MODULE_40__.NEXT_CACHE_TAGS_HEADER]);\n }\n if (cachedData.status) {\n res.statusCode = cachedData.status;\n }\n // Mark that the request did postpone if this is a data request.\n if (cachedData.postponed && isRSCRequest) {\n res.setHeader(_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.NEXT_DID_POSTPONE_HEADER, \"1\");\n }\n if (isDataReq) {\n // If this is a dynamic RSC request, then stream the response.\n if (isDynamicRSCRequest) {\n if (cachedData.pageData) {\n throw new Error(\"Invariant: Expected pageData to be undefined\");\n }\n if (cachedData.postponed) {\n throw new Error(\"Invariant: Expected postponed to be undefined\");\n }\n return {\n type: \"rsc\",\n body: cachedData.html,\n // Dynamic RSC responses cannot be cached, even if they're\n // configured with `force-static` because we have no way of\n // distinguishing between `force-static` and pages that have no\n // postponed state.\n // TODO: distinguish `force-static` from pages with no postponed state (static)\n revalidate: 0\n };\n }\n if (typeof cachedData.pageData !== \"string\") {\n throw new Error(`Invariant: expected pageData to be a string, got ${typeof cachedData.pageData}`);\n }\n // As this isn't a prefetch request, we should serve the static flight\n // data.\n return {\n type: \"rsc\",\n body: _render_result__WEBPACK_IMPORTED_MODULE_13__[\"default\"].fromStatic(cachedData.pageData),\n revalidate: cacheEntry.revalidate\n };\n }\n // This is a request for HTML data.\n let body = cachedData.html;\n // If there's no postponed state, we should just serve the HTML. This\n // should also be the case for a resume request because it's completed\n // as a server render (rather than a static render).\n if (!cachedData.postponed || this.minimalMode) {\n return {\n type: \"html\",\n body,\n revalidate: cacheEntry.revalidate\n };\n }\n // This request has postponed, so let's create a new transformer that the\n // dynamic data can pipe to that will attach the dynamic data to the end\n // of the response.\n const transformer = new TransformStream();\n body.chain(transformer.readable);\n // Perform the render again, but this time, provide the postponed state.\n // We don't await because we want the result to start streaming now, and\n // we've already chained the transformer's readable to the render result.\n doRender({\n postponed: cachedData.postponed\n }).then(async (result)=>{\n var _result_value;\n if (!result) {\n throw new Error(\"Invariant: expected a result to be returned\");\n }\n if (((_result_value = result.value) == null ? void 0 : _result_value.kind) !== \"PAGE\") {\n var _result_value1;\n throw new Error(`Invariant: expected a page response, got ${(_result_value1 = result.value) == null ? void 0 : _result_value1.kind}`);\n }\n // Pipe the resume result to the transformer.\n await result.value.html.pipeTo(transformer.writable);\n }).catch((err)=>{\n // An error occurred during piping or preparing the render, abort\n // the transformers writer so we can terminate the stream.\n transformer.writable.abort(err).catch((e)=>{\n console.error(\"couldn't abort transformer\", e);\n });\n });\n return {\n type: \"html\",\n body,\n // We don't want to cache the response if it has postponed data because\n // the response being sent to the client it's dynamic parts are streamed\n // to the client on the same request.\n revalidate: 0\n };\n } else if (isDataReq) {\n return {\n type: \"json\",\n body: _render_result__WEBPACK_IMPORTED_MODULE_13__[\"default\"].fromStatic(JSON.stringify(cachedData.pageData)),\n revalidate: cacheEntry.revalidate\n };\n } else {\n return {\n type: \"html\",\n body: cachedData.html,\n revalidate: cacheEntry.revalidate\n };\n }\n }\n stripNextDataPath(path, stripLocale = true) {\n if (path.includes(this.buildId)) {\n const splitPath = path.substring(path.indexOf(this.buildId) + this.buildId.length);\n path = (0,_shared_lib_page_path_denormalize_page_path__WEBPACK_IMPORTED_MODULE_15__.denormalizePagePath)(splitPath.replace(/\\.json$/, \"\"));\n }\n if (this.localeNormalizer && stripLocale) {\n return this.localeNormalizer.normalize(path);\n }\n return path;\n }\n // map the route to the actual bundle name\n getOriginalAppPaths(route) {\n if (this.enabledDirectories.app) {\n var _this_appPathRoutes;\n const originalAppPath = (_this_appPathRoutes = this.appPathRoutes) == null ? void 0 : _this_appPathRoutes[route];\n if (!originalAppPath) {\n return null;\n }\n return originalAppPath;\n }\n return null;\n }\n async renderPageComponent(ctx, bubbleNoFallback) {\n var _this_nextConfig_experimental_sri;\n const { query, pathname } = ctx;\n const appPaths = this.getOriginalAppPaths(pathname);\n const isAppPath = Array.isArray(appPaths);\n let page = pathname;\n if (isAppPath) {\n // the last item in the array is the root page, if there are parallel routes\n page = appPaths[appPaths.length - 1];\n }\n const result = await this.findPageComponents({\n page,\n query,\n params: ctx.renderOpts.params || {},\n isAppPath,\n sriEnabled: !!((_this_nextConfig_experimental_sri = this.nextConfig.experimental.sri) == null ? void 0 : _this_nextConfig_experimental_sri.algorithm),\n appPaths,\n // Ensuring for loading page component routes is done via the matcher.\n shouldEnsure: false\n });\n if (result) {\n try {\n return await this.renderToResponseWithComponents(ctx, result);\n } catch (err) {\n const isNoFallbackError = err instanceof NoFallbackError;\n if (!isNoFallbackError || isNoFallbackError && bubbleNoFallback) {\n throw err;\n }\n }\n }\n return false;\n }\n async renderToResponse(ctx) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.renderToResponse, {\n spanName: `rendering page`,\n attributes: {\n \"next.route\": ctx.pathname\n }\n }, async ()=>{\n return this.renderToResponseImpl(ctx);\n });\n }\n async renderToResponseImpl(ctx) {\n var _this_i18nProvider;\n const { res, query, pathname } = ctx;\n let page = pathname;\n const bubbleNoFallback = !!query._nextBubbleNoFallback;\n delete query[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_26__.NEXT_RSC_UNION_QUERY];\n delete query._nextBubbleNoFallback;\n const options = {\n i18n: (_this_i18nProvider = this.i18nProvider) == null ? void 0 : _this_i18nProvider.fromQuery(pathname, query)\n };\n try {\n for await (const match of this.matchers.matchAll(pathname, options)){\n // when a specific invoke-output is meant to be matched\n // ensure a prior dynamic route/page doesn't take priority\n const invokeOutput = ctx.req.headers[\"x-invoke-output\"];\n if (!this.minimalMode && typeof invokeOutput === \"string\" && (0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_7__.isDynamicRoute)(invokeOutput || \"\") && invokeOutput !== match.definition.pathname) {\n continue;\n }\n const result = await this.renderPageComponent({\n ...ctx,\n pathname: match.definition.pathname,\n renderOpts: {\n ...ctx.renderOpts,\n params: match.params\n }\n }, bubbleNoFallback);\n if (result !== false) return result;\n }\n // currently edge functions aren't receiving the x-matched-path\n // header so we need to fallback to matching the current page\n // when we weren't able to match via dynamic route to handle\n // the rewrite case\n // @ts-expect-error extended in child class web-server\n if (this.serverOptions.webServerConfig) {\n // @ts-expect-error extended in child class web-server\n ctx.pathname = this.serverOptions.webServerConfig.page;\n const result = await this.renderPageComponent(ctx, bubbleNoFallback);\n if (result !== false) return result;\n }\n } catch (error) {\n const err = (0,_lib_is_error__WEBPACK_IMPORTED_MODULE_19__.getProperError)(error);\n if (error instanceof _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.MissingStaticPage) {\n console.error(\"Invariant: failed to load static page\", JSON.stringify({\n page,\n url: ctx.req.url,\n matchedPath: ctx.req.headers[\"x-matched-path\"],\n initUrl: (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(ctx.req, \"initURL\"),\n didRewrite: !!(0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(ctx.req, \"rewroteURL\"),\n rewroteUrl: (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.getRequestMeta)(ctx.req, \"rewroteURL\")\n }, null, 2));\n throw err;\n }\n if (err instanceof NoFallbackError && bubbleNoFallback) {\n throw err;\n }\n if (err instanceof _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.DecodeError || err instanceof _shared_lib_utils__WEBPACK_IMPORTED_MODULE_0__.NormalizeError) {\n res.statusCode = 400;\n return await this.renderErrorToResponse(ctx, err);\n }\n res.statusCode = 500;\n // if pages/500 is present we still need to trigger\n // /_error `getInitialProps` to allow reporting error\n if (await this.hasPage(\"/500\")) {\n ctx.query.__nextCustomErrorRender = \"1\";\n await this.renderErrorToResponse(ctx, err);\n delete ctx.query.__nextCustomErrorRender;\n }\n const isWrappedError = err instanceof WrappedBuildError;\n if (!isWrappedError) {\n if (this.minimalMode && \"edge\" !== \"edge\" || this.renderOpts.dev) {\n if ((0,_lib_is_error__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(err)) err.page = page;\n throw err;\n }\n this.logError((0,_lib_is_error__WEBPACK_IMPORTED_MODULE_19__.getProperError)(err));\n }\n const response = await this.renderErrorToResponse(ctx, isWrappedError ? err.innerError : err);\n return response;\n }\n if (this.getMiddleware() && !!ctx.req.headers[\"x-nextjs-data\"] && (!res.statusCode || res.statusCode === 200 || res.statusCode === 404)) {\n res.setHeader(\"x-nextjs-matched-path\", `${query.__nextLocale ? `/${query.__nextLocale}` : \"\"}${pathname}`);\n res.statusCode = 200;\n res.setHeader(\"content-type\", \"application/json\");\n res.body(\"{}\");\n res.send();\n return null;\n }\n res.statusCode = 404;\n return this.renderErrorToResponse(ctx, null);\n }\n async renderToHTML(req, res, pathname, query = {}) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.renderToHTML, async ()=>{\n return this.renderToHTMLImpl(req, res, pathname, query);\n });\n }\n async renderToHTMLImpl(req, res, pathname, query = {}) {\n return this.getStaticHTML((ctx)=>this.renderToResponse(ctx), {\n req,\n res,\n pathname,\n query\n });\n }\n async renderError(err, req, res, pathname, query = {}, setHeaders = true) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.renderError, async ()=>{\n return this.renderErrorImpl(err, req, res, pathname, query, setHeaders);\n });\n }\n async renderErrorImpl(err, req, res, pathname, query = {}, setHeaders = true) {\n if (setHeaders) {\n res.setHeader(\"Cache-Control\", \"no-cache, no-store, max-age=0, must-revalidate\");\n }\n return this.pipe(async (ctx)=>{\n const response = await this.renderErrorToResponse(ctx, err);\n if (this.minimalMode && res.statusCode === 500) {\n throw err;\n }\n return response;\n }, {\n req,\n res,\n pathname,\n query\n });\n }\n async renderErrorToResponse(ctx, err) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_34__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_35__.BaseServerSpan.renderErrorToResponse, async ()=>{\n return this.renderErrorToResponseImpl(ctx, err);\n });\n }\n async renderErrorToResponseImpl(ctx, err) {\n // Short-circuit favicon.ico in development to avoid compiling 404 page when the app has no favicon.ico.\n // Since favicon.ico is automatically requested by the browser.\n if (this.renderOpts.dev && ctx.pathname === \"/favicon.ico\") {\n return {\n type: \"html\",\n body: _render_result__WEBPACK_IMPORTED_MODULE_13__[\"default\"].fromStatic(\"\")\n };\n }\n const { res, query } = ctx;\n try {\n let result = null;\n const is404 = res.statusCode === 404;\n let using404Page = false;\n if (is404) {\n if (this.enabledDirectories.app) {\n // Use the not-found entry in app directory\n result = await this.findPageComponents({\n page: this.renderOpts.dev ? \"/not-found\" : \"/_not-found\",\n query,\n params: {},\n isAppPath: true,\n shouldEnsure: true,\n url: ctx.req.url\n });\n using404Page = result !== null;\n }\n if (!result && await this.hasPage(\"/404\")) {\n result = await this.findPageComponents({\n page: \"/404\",\n query,\n params: {},\n isAppPath: false,\n // Ensuring can't be done here because you never \"match\" a 404 route.\n shouldEnsure: true,\n url: ctx.req.url\n });\n using404Page = result !== null;\n }\n }\n let statusPage = `/${res.statusCode}`;\n if (!ctx.query.__nextCustomErrorRender && !result && _shared_lib_constants__WEBPACK_IMPORTED_MODULE_5__.STATIC_STATUS_PAGES.includes(statusPage)) {\n // skip ensuring /500 in dev mode as it isn't used and the\n // dev overlay is used instead\n if (statusPage !== \"/500\" || !this.renderOpts.dev) {\n result = await this.findPageComponents({\n page: statusPage,\n query,\n params: {},\n isAppPath: false,\n // Ensuring can't be done here because you never \"match\" a 500\n // route.\n shouldEnsure: true,\n url: ctx.req.url\n });\n }\n }\n if (!result) {\n result = await this.findPageComponents({\n page: \"/_error\",\n query,\n params: {},\n isAppPath: false,\n // Ensuring can't be done here because you never \"match\" an error\n // route.\n shouldEnsure: true,\n url: ctx.req.url\n });\n statusPage = \"/_error\";\n }\n if ( true && !using404Page && await this.hasPage(\"/_error\") && !await this.hasPage(\"/404\")) {\n this.customErrorNo404Warn();\n }\n if (!result) {\n // this can occur when a project directory has been moved/deleted\n // which is handled in the parent process in development\n if (this.renderOpts.dev) {\n return {\n type: \"html\",\n // wait for dev-server to restart before refreshing\n body: _render_result__WEBPACK_IMPORTED_MODULE_13__[\"default\"].fromStatic(`\n <pre>missing required error components, refreshing...</pre>\n <script>\n async function check() {\n const res = await fetch(location.href).catch(() => ({}))\n\n if (res.status === 200) {\n location.reload()\n } else {\n setTimeout(check, 1000)\n }\n }\n check()\n </script>`)\n };\n }\n throw new WrappedBuildError(new Error(\"missing required error components\"));\n }\n // If the page has a route module, use it for the new match. If it doesn't\n // have a route module, remove the match.\n if (result.components.routeModule) {\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(ctx.req, \"match\", {\n definition: result.components.routeModule.definition,\n params: undefined\n });\n } else {\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.removeRequestMeta)(ctx.req, \"match\");\n }\n try {\n return await this.renderToResponseWithComponents({\n ...ctx,\n pathname: statusPage,\n renderOpts: {\n ...ctx.renderOpts,\n err\n }\n }, result);\n } catch (maybeFallbackError) {\n if (maybeFallbackError instanceof NoFallbackError) {\n throw new Error(\"invariant: failed to render error page\");\n }\n throw maybeFallbackError;\n }\n } catch (error) {\n const renderToHtmlError = (0,_lib_is_error__WEBPACK_IMPORTED_MODULE_19__.getProperError)(error);\n const isWrappedError = renderToHtmlError instanceof WrappedBuildError;\n if (!isWrappedError) {\n this.logError(renderToHtmlError);\n }\n res.statusCode = 500;\n const fallbackComponents = await this.getFallbackErrorComponents(ctx.req.url);\n if (fallbackComponents) {\n // There was an error, so use it's definition from the route module\n // to add the match to the request.\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_20__.addRequestMeta)(ctx.req, \"match\", {\n definition: fallbackComponents.routeModule.definition,\n params: undefined\n });\n return this.renderToResponseWithComponents({\n ...ctx,\n pathname: \"/_error\",\n renderOpts: {\n ...ctx.renderOpts,\n // We render `renderToHtmlError` here because `err` is\n // already captured in the stacktrace.\n err: isWrappedError ? renderToHtmlError.innerError : renderToHtmlError\n }\n }, {\n query,\n components: fallbackComponents\n });\n }\n return {\n type: \"html\",\n body: _render_result__WEBPACK_IMPORTED_MODULE_13__[\"default\"].fromStatic(\"Internal Server Error\")\n };\n }\n }\n async renderErrorToHTML(err, req, res, pathname, query = {}) {\n return this.getStaticHTML((ctx)=>this.renderErrorToResponse(ctx, err), {\n req,\n res,\n pathname,\n query\n });\n }\n async render404(req, res, parsedUrl, setHeaders = true) {\n const { pathname, query } = parsedUrl ? parsedUrl : (0,url__WEBPACK_IMPORTED_MODULE_1__.parse)(req.url, true);\n if (this.nextConfig.i18n) {\n query.__nextLocale ||= this.nextConfig.i18n.defaultLocale;\n query.__nextDefaultLocale ||= this.nextConfig.i18n.defaultLocale;\n }\n res.statusCode = 404;\n return this.renderError(null, req, res, pathname, query, setHeaders);\n }\n} //# sourceMappingURL=base-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Jhc2Utc2VydmVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBK0c7QUFDbEQ7QUFDTjtBQUNJO0FBQ0o7QUFDa0U7QUFDMUM7QUFDbkI7QUFDSjtBQUNVO0FBQ2Q7QUFDTDtBQUNQO0FBQ2tCO0FBQ2Y7QUFDNEM7QUFDSDtBQUN6QztBQUMwQztBQUMzQztBQUNnQjtBQUN5QztBQUNsQjtBQUNUO0FBQ2Y7QUFDdUI7QUFDUTtBQUMyRTtBQUM5RTtBQUNzQjtBQUNJO0FBQ0U7QUFDQTtBQUNQO0FBQ2M7QUFDL0Q7QUFDRjtBQUNPO0FBQ2Y7QUFDc0Q7QUFDaEI7QUFDYztBQUNwQjtBQUN5QjtBQUNqQztBQUNrQjtBQUNqQztBQUNpQjtBQUNZO0FBQ2Q7QUFDeUM7QUFDdEI7QUFDTjtBQUNmO0FBQzlELE1BQU04RSx3QkFBd0JDO0FBQ3JDO0FBQ0Esc0RBQXNEO0FBQ3RELHVEQUF1RDtBQUNoRCxNQUFNQywwQkFBMEJEO0lBQ25DRSxZQUFZQyxVQUFVLENBQUM7UUFDbkIsS0FBSztRQUNMLElBQUksQ0FBQ0EsVUFBVSxHQUFHQTtJQUN0QjtBQUNKO0FBQ2UsTUFBTUM7SUFDakJGLFlBQVlHLE9BQU8sQ0FBQztRQUNoQixJQUFJQyx1QkFBdUJDLG1DQUFtQ0M7UUFDOUQsSUFBSSxDQUFDQyxnQkFBZ0IsR0FBRyxDQUFDQyxLQUFLQyxNQUFNQztZQUNoQyxJQUFJQywrQkFBK0JDO1lBQ25DLElBQUksQ0FBQ0YsVUFBVUcsUUFBUSxFQUFFLE9BQU87WUFDaEMsSUFBSSxDQUFDRixnQ0FBZ0MsSUFBSSxDQUFDRyxXQUFXLENBQUNDLFdBQVcsS0FBSyxPQUFPLEtBQUssSUFBSUosOEJBQThCSyxLQUFLLENBQUNOLFVBQVVHLFFBQVEsR0FBRztnQkFDM0lILFVBQVVHLFFBQVEsR0FBRyxJQUFJ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QUNuRXRKO1lBQ0FrQjtZQUNBYjtZQUNBUTtRQUNKO0lBQ0o7SUFDQSxNQUFNYyxVQUFVM0IsR0FBRyxFQUFFa0IsR0FBRyxFQUFFaEIsU0FBUyxFQUFFOGUsYUFBYSxJQUFJLEVBQUU7UUFDcEQsTUFBTSxFQUFFM2UsUUFBUSxFQUFFUSxLQUFLLEVBQUUsR0FBR1gsWUFBWUEsWUFBWXBGLDBDQUFRQSxDQUFDa0YsSUFBSWUsR0FBRyxFQUFFO1FBQ3RFLElBQUksSUFBSSxDQUFDa0IsVUFBVSxDQUFDa0QsSUFBSSxFQUFFO1lBQ3RCdEUsTUFBTW1DLFlBQVksS0FBSyxJQUFJLENBQUNmLFVBQVUsQ0FBQ2tELElBQUksQ0FBQ3hDLGFBQWE7WUFDekQ5QixNQUFNb0MsbUJBQW1CLEtBQUssSUFBSSxDQUFDaEIsVUFBVSxDQUFDa0QsSUFBSSxDQUFDeEMsYUFBYTtRQUNwRTtRQUNBekIsSUFBSXFKLFVBQVUsR0FBRztRQUNqQixPQUFPLElBQUksQ0FBQ2lHLFdBQVcsQ0FBQyxNQUFNeFEsS0FBS2tCLEtBQUtiLFVBQVVRLE9BQU9tZTtJQUM3RDtBQUNKLEVBRUEsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYmFzZS1zZXJ2ZXIuanM/NmZiYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb3JtYWxpemVFcnJvciwgRGVjb2RlRXJyb3IsIG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcywgTWlzc2luZ1N0YXRpY1BhZ2UgfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi91dGlsc1wiO1xuaW1wb3J0IHsgZm9ybWF0IGFzIGZvcm1hdFVybCwgcGFyc2UgYXMgcGFyc2VVcmwgfSBmcm9tIFwidXJsXCI7XG5pbXBvcnQgeyBmb3JtYXRIb3N0bmFtZSB9IGZyb20gXCIuL2xpYi9mb3JtYXQtaG9zdG5hbWVcIjtcbmltcG9ydCB7IGdldFJlZGlyZWN0U3RhdHVzIH0gZnJvbSBcIi4uL2xpYi9yZWRpcmVjdC1zdGF0dXNcIjtcbmltcG9ydCB7IGlzRWRnZVJ1bnRpbWUgfSBmcm9tIFwiLi4vbGliL2lzLWVkZ2UtcnVudGltZVwiO1xuaW1wb3J0IHsgQVBQX1BBVEhTX01BTklGRVNULCBORVhUX0JVSUxUSU5fRE9DVU1FTlQsIFBBR0VTX01BTklGRVNULCBTVEFUSUNfU1RBVFVTX1BBR0VTIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGVcIjtcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzXCI7XG5pbXBvcnQgeyBjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlIH0gZnJvbSBcIi4vYXBpLXV0aWxzXCI7XG5pbXBvcnQgeyBzZXRDb25maWcgfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9ydW50aW1lLWNvbmZpZy5leHRlcm5hbFwiO1xuaW1wb3J0IHsgZm9ybWF0UmV2YWxpZGF0ZSB9IGZyb20gXCIuL2xpYi9yZXZhbGlkYXRlXCI7XG5pbXBvcnQgeyBleGVjT25jZSB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0Jsb2NrZWRQYWdlIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IGlzQm90IH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdFwiO1xuaW1wb3J0IFJlbmRlclJlc3VsdCBmcm9tIFwiLi9yZW5kZXItcmVzdWx0XCI7XG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaFwiO1xuaW1wb3J0IHsgZGVub3JtYWxpemVQYWdlUGF0aCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9kZW5vcm1hbGl6ZS1wYWdlLXBhdGhcIjtcbmltcG9ydCAqIGFzIExvZyBmcm9tIFwiLi4vYnVpbGQvb3V0cHV0L2xvZ1wiO1xuaW1wb3J0IGVzY2FwZVBhdGhEZWxpbWl0ZXJzIGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9lc2NhcGUtcGF0aC1kZWxpbWl0ZXJzXCI7XG5pbXBvcnQgeyBnZXRVdGlscyB9IGZyb20gXCIuL3NlcnZlci11dGlsc1wiO1xuaW1wb3J0IGlzRXJyb3IsIHsgZ2V0UHJvcGVyRXJyb3IgfSBmcm9tIFwiLi4vbGliL2lzLWVycm9yXCI7XG5pbXBvcnQgeyBhZGRSZXF1ZXN0TWV0YSwgZ2V0UmVxdWVzdE1ldGEsIHJlbW92ZVJlcXVlc3RNZXRhLCBzZXRSZXF1ZXN0TWV0YSB9IGZyb20gXCIuL3JlcXVlc3QtbWV0YVwiO1xuaW1wb3J0IHsgcmVtb3ZlUGF0aFByZWZpeCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtcGF0aC1wcmVmaXhcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCI7XG5pbXBvcnQgeyBnZXRIb3N0bmFtZSB9IGZyb20gXCIuLi9zaGFyZWQvbGliL2dldC1ob3N0bmFtZVwiO1xuaW1wb3J0IHsgcGFyc2VVcmwgYXMgcGFyc2VVcmxVdGlsIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXVybFwiO1xuaW1wb3J0IHsgZ2V0TmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbmV4dC1wYXRobmFtZS1pbmZvXCI7XG5pbXBvcnQgeyBSU0NfSEVBREVSLCBSU0NfVkFSWV9IRUFERVIsIE5FWFRfUlNDX1VOSU9OX1FVRVJZLCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIsIE5FWFRfRElEX1BPU1RQT05FX0hFQURFUiB9IGZyb20gXCIuLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbmltcG9ydCB7IExvY2FsZVJvdXRlTm9ybWFsaXplciB9IGZyb20gXCIuL2Z1dHVyZS9ub3JtYWxpemVycy9sb2NhbGUtcm91dGUtbm9ybWFsaXplclwiO1xuaW1wb3J0IHsgRGVmYXVsdFJvdXRlTWF0Y2hlck1hbmFnZXIgfSBmcm9tIFwiLi9mdXR1cmUvcm91dGUtbWF0Y2hlci1tYW5hZ2Vycy9kZWZhdWx0LXJvdXRlLW1hdGNoZXItbWFuYWdlclwiO1xuaW1wb3J0IHsgQXBwUGFnZVJvdXRlTWF0Y2hlclByb3ZpZGVyIH0gZnJvbSBcIi4vZnV0dXJlL3JvdXRlLW1hdGNoZXItcHJvdmlkZXJzL2FwcC1wYWdlLXJvdXRlLW1hdGNoZXItcHJvdmlkZXJcIjtcbmltcG9ydCB7IEFwcFJvdXRlUm91dGVNYXRjaGVyUHJvdmlkZXIgfSBmcm9tIFwiLi9mdXR1cmUvcm91dGUtbWF0Y2hlci1wcm92aWRlcnMvYXBwLXJvdXRlLXJvdXRlLW1hdGNoZXItcHJvdmlkZXJcIjtcbmltcG9ydCB7IFBhZ2VzQVBJUm91dGVNYXRjaGVyUHJvdmlkZXIgfSBmcm9tIFwiLi9mdXR1cmUvcm91dGUtbWF0Y2hlci1wcm92aWRlcnMvcGFnZXMtYXBpLXJvdXRlLW1hdGNoZXItcHJvdmlkZXJcIjtcbmltcG9ydCB7IFBhZ2VzUm91dGVNYXRjaGVyUHJvdmlkZXIgfSBmcm9tIFwiLi9mdXR1cmUvcm91dGUtbWF0Y2hlci1wcm92aWRlcnMvcGFnZXMtcm91dGUtbWF0Y2hlci1wcm92aWRlclwiO1xuaW1wb3J0IHsgU2VydmVyTWFuaWZlc3RMb2FkZXIgfSBmcm9tIFwiLi9mdXR1cmUvcm91dGUtbWF0Y2hlci1wcm92aWRlcnMvaGVscGVycy9tYW5pZmVzdC1sb2FkZXJzL3NlcnZlci1tYW5pZmVzdC1sb2FkZXJcIjtcbmltcG9ydCB7IGdldFRyYWNlciwgU3BhbktpbmQgfSBmcm9tIFwiLi9saWIvdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBCYXNlU2VydmVyU3BhbiB9IGZyb20gXCIuL2xpYi90cmFjZS9jb25zdGFudHNcIjtcbmltcG9ydCB7IEkxOE5Qcm92aWRlciB9IGZyb20gXCIuL2Z1dHVyZS9oZWxwZXJzL2kxOG4tcHJvdmlkZXJcIjtcbmltcG9ydCB7IHNlbmRSZXNwb25zZSB9IGZyb20gXCIuL3NlbmQtcmVzcG9uc2VcIjtcbmltcG9ydCB7IGhhbmRsZUludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSB9IGZyb20gXCIuL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2hlbHBlcnMvcmVzcG9uc2UtaGFuZGxlcnNcIjtcbmltcG9ydCB7IGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycywgdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyB9IGZyb20gXCIuL3dlYi91dGlsc1wiO1xuaW1wb3J0IHsgQ0FDSEVfT05FX1lFQVIsIE5FWFRfQ0FDSEVfVEFHU19IRUFERVIsIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYIH0gZnJvbSBcIi4uL2xpYi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUxvY2FsZVBhdGggfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aFwiO1xuaW1wb3J0IHsgTmV4dFJlcXVlc3RBZGFwdGVyLCBzaWduYWxGcm9tTm9kZVJlc3BvbnNlIH0gZnJvbSBcIi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL25leHQtcmVxdWVzdFwiO1xuaW1wb3J0IHsgbWF0Y2hOZXh0RGF0YVBhdGhuYW1lIH0gZnJvbSBcIi4vbGliL21hdGNoLW5leHQtZGF0YS1wYXRobmFtZVwiO1xuaW1wb3J0IGdldFJvdXRlRnJvbUFzc2V0UGF0aCBmcm9tIFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LXJvdXRlLWZyb20tYXNzZXQtcGF0aFwiO1xuaW1wb3J0IHsgc3RyaXBJbnRlcm5hbEhlYWRlcnMgfSBmcm9tIFwiLi9pbnRlcm5hbC11dGlsc1wiO1xuaW1wb3J0IHsgUlNDUGF0aG5hbWVOb3JtYWxpemVyIH0gZnJvbSBcIi4vZnV0dXJlL25vcm1hbGl6ZXJzL3JlcXVlc3QvcnNjXCI7XG5pbXBvcnQgeyBQb3N0cG9uZWRQYXRobmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9mdXR1cmUvbm9ybWFsaXplcnMvcmVxdWVzdC9wb3N0cG9uZWRcIjtcbmltcG9ydCB7IHN0cmlwRmxpZ2h0SGVhZGVycyB9IGZyb20gXCIuL2FwcC1yZW5kZXIvc3RyaXAtZmxpZ2h0LWhlYWRlcnNcIjtcbmltcG9ydCB7IGlzQXBwUGFnZVJvdXRlTW9kdWxlLCBpc0FwcFJvdXRlUm91dGVNb2R1bGUsIGlzUGFnZXNSb3V0ZU1vZHVsZSB9IGZyb20gXCIuL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2NoZWNrc1wiO1xuaW1wb3J0IHsgUHJlZmV0Y2hSU0NQYXRobmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9mdXR1cmUvbm9ybWFsaXplcnMvcmVxdWVzdC9wcmVmZXRjaC1yc2NcIjtcbmltcG9ydCB7IE5leHREYXRhUGF0aG5hbWVOb3JtYWxpemVyIH0gZnJvbSBcIi4vZnV0dXJlL25vcm1hbGl6ZXJzL3JlcXVlc3QvbmV4dC1kYXRhXCI7XG5pbXBvcnQgeyBnZXRJc1NlcnZlckFjdGlvbiB9IGZyb20gXCIuL2xpYi9zZXJ2ZXItYWN0aW9uLXJlcXVlc3QtbWV0YVwiO1xuZXhwb3J0IGNsYXNzIE5vRmFsbGJhY2tFcnJvciBleHRlbmRzIEVycm9yIHtcbn1cbi8vIEludGVybmFsIHdyYXBwZXIgYXJvdW5kIGJ1aWxkIGVycm9ycyBhdCBkZXZlbG9wbWVudFxuLy8gdGltZSwgdG8gcHJldmVudCB1cyBmcm9tIHByb3BhZ2F0aW5nIG9yIGxvZ2dpbmcgdGhlbVxuZXhwb3J0IGNsYXNzIFdyYXBwZWRCdWlsZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKGlubmVyRXJyb3Ipe1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlubmVyRXJyb3IgPSBpbm5lckVycm9yO1xuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlcnZlciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucyl7XG4gICAgICAgIHZhciBfdGhpc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcCwgX3RoaXNfbmV4dENvbmZpZ19pMThuMTtcbiAgICAgICAgdGhpcy5oYW5kbGVSU0NSZXF1ZXN0ID0gKHJlcSwgX3JlcywgcGFyc2VkVXJsKT0+e1xuICAgICAgICAgICAgdmFyIF90aGlzX25vcm1hbGl6ZXJzX3ByZWZldGNoUlNDLCBfdGhpc19ub3JtYWxpemVyc19yc2M7XG4gICAgICAgICAgICBpZiAoIXBhcnNlZFVybC5wYXRobmFtZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaWYgKChfdGhpc19ub3JtYWxpemVyc19wcmVmZXRjaFJTQyA9IHRoaXMubm9ybWFsaXplcnMucHJlZmV0Y2hSU0MpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19ub3JtYWxpemVyc19wcmVmZXRjaFJTQy5tYXRjaChwYXJzZWRVcmwucGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkVXJsLnBhdGhuYW1lID0gdGhpcy5ub3JtYWxpemVycy5wcmVmZXRjaFJTQy5ub3JtYWxpemUocGFyc2VkVXJsLnBhdGhuYW1lLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAvLyBNYXJrIHRoZSByZXF1ZXN0IGFzIGEgcm91dGVyIHByZWZldGNoIHJlcXVlc3QuXG4gICAgICAgICAgICAgICAgcmVxLmhlYWRlcnNbUlNDX0hFQURFUi50b0xvd2VyQ2FzZSgpXSA9IFwiMVwiO1xuICAgICAgICAgICAgICAgIHJlcS5oZWFkZXJzW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUi50b0xvd2VyQ2FzZSgpXSA9IFwiMVwiO1xuICAgICAgICAgICAgICAgIGFkZFJlcXVlc3RNZXRhKHJlcSwgXCJpc1JTQ1JlcXVlc3RcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgYWRkUmVxdWVzdE1ldGEocmVxLCBcImlzUHJlZmV0Y2hSU0NSZXF1ZXN0XCIsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgoX3RoaXNfbm9ybWFsaXplcnNfcnNjID0gdGhpcy5ub3JtYWxpemVycy5yc2MpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19ub3JtYWxpemVyc19yc2MubWF0Y2gocGFyc2VkVXJsLnBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHBhcnNlZFVybC5wYXRobmFtZSA9IHRoaXMubm9ybWFsaXplcnMucnNjLm5vcm1hbGl6ZShwYXJzZWRVcmwucGF0aG5hbWUsIHRydWUpO1xuICAgICAgICAgICAgICAgIC8vIE1hcmsgdGhlIHJlcXVlc3QgYXMgYSBSU0MgcmVxdWVzdC5cbiAgICAgICAgICAgICAgICByZXEuaGVhZGVyc1tSU0NfSEVBREVSLnRvTG93ZXJDYXNlKCldID0gXCIxXCI7XG4gICAgICAgICAgICAgICAgYWRkUmVxdWVzdE1ldGEocmVxLCBcImlzUlNDUmVxdWVzdFwiLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVxLmhlYWRlcnNbXCJ4LW5vdy1yb3V0ZS1tYXRjaGVzXCJdKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgZGlkbid0IG1hdGNoLCByZXR1cm4gd2l0aCB0aGUgZmxpZ2h0IGhlYWRlcnMgc3RyaXBwZWQuIElmIGluXG4gICAgICAgICAgICAgICAgLy8gbWluaW1hbCBtb2RlIHdlIGRpZG4ndCBtYXRjaCBiYXNlZCBvbiB0aGUgcGF0aCwgdGhpcyBjYW4ndCBiZSBhIFJTQ1xuICAgICAgICAgICAgICAgIC8vIHJlcXVlc3QuIFRoaXMgaXMgYmVjYXVzZSBWZXJjZWwgb25seSBzZW5kcyB0aGlzIGhlYWRlciBkdXJpbmdcbiAgICAgICAgICAgICAgICAvLyByZXZhbGlkYXRpb24gcmVxdWVzdHMgYW5kIHdlIHdhbnQgdGhlIGNhY2hlIHRvIGluc3RlYWQgZGVwZW5kIG9uIHRoZVxuICAgICAgICAgICAgICAgIC8vIHJlcXVlc3QgcGF0aCBmb3IgZmxpZ2h0IGluZm9ybWF0aW9uLlxuICAgICAgICAgICAgICAgIHN0cmlwRmxpZ2h0SGVhZGVycyhyZXEuaGVhZGVycyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UganVzdCByZXR1cm4gd2l0aG91dCBkb2luZyBhbnl0aGluZy5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBoZXJlLCB0aGlzIGlzIGEgZGF0YSByZXF1ZXN0LCBhcyBpdCBkaWRuJ3QgcmV0dXJuIGFuZCBpdCBtYXRjaGVkXG4gICAgICAgICAgICAvLyBlaXRoZXIgYSBSU0Mgb3IgYSBwcmVmZXRjaCBSU0MgcmVxdWVzdC5cbiAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeS5fX25leHREYXRhUmVxID0gXCIxXCI7XG4gICAgICAgICAgICBpZiAocmVxLnVybCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlVXJsKHJlcS51cmwpO1xuICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHBhcnNlZFVybC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICByZXEudXJsID0gZm9ybWF0VXJsKHBhcnNlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaGFuZGxlTmV4dERhdGFSZXF1ZXN0ID0gYXN5bmMgKHJlcSwgcmVzLCBwYXJzZWRVcmwpPT57XG4gICAgICAgICAgICBjb25zdCBtaWRkbGV3YXJlID0gdGhpcy5nZXRNaWRkbGV3YXJlKCk7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBtYXRjaE5leHREYXRhUGF0aG5hbWUocGFyc2VkVXJsLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIC8vIGlnbm9yZSBmb3Igbm9uLW5leHQgZGF0YSBVUkxzXG4gICAgICAgICAgICBpZiAoIXBhcmFtcyB8fCAhcGFyYW1zLnBhdGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyYW1zLnBhdGhbMF0gIT09IHRoaXMuYnVpbGRJZCkge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSBpZiBpdHMgYSBtaWRkbGV3YXJlIHJlcXVlc3Qgd2hlbiB3ZSBhcmVuJ3Qgb24gZWRnZS5cbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIiAmJiByZXEuaGVhZGVyc1tcIngtbWlkZGxld2FyZS1pbnZva2VcIl0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdG8gNDA0IGlmIHRoZSBidWlsZElkIGlzbid0IGNvcnJlY3RcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJlbmRlcjQwNChyZXEsIHJlcywgcGFyc2VkVXJsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJlbW92ZSBidWlsZElkIGZyb20gVVJMXG4gICAgICAgICAgICBwYXJhbXMucGF0aC5zaGlmdCgpO1xuICAgICAgICAgICAgY29uc3QgbGFzdFBhcmFtID0gcGFyYW1zLnBhdGhbcGFyYW1zLnBhdGgubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAvLyBzaG93IDQwNCBpZiBpdCBkb2Vzbid0IGVuZCB3aXRoIC5qc29uXG4gICAgICAgICAgICBpZiAodHlwZW9mIGxhc3RQYXJhbSAhPT0gXCJzdHJpbmdcIiB8fCAhbGFzdFBhcmFtLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJlbmRlcjQwNChyZXEsIHJlcywgcGFyc2VkVXJsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJlLWNyZWF0ZSBwYWdlJ3MgcGF0aG5hbWVcbiAgICAgICAgICAgIGxldCBwYXRobmFtZSA9IGAvJHtwYXJhbXMucGF0aC5qb2luKFwiL1wiKX1gO1xuICAgICAgICAgICAgcGF0aG5hbWUgPSBnZXRSb3V0ZUZyb21Bc3NldFBhdGgocGF0aG5hbWUsIFwiLmpzb25cIik7XG4gICAgICAgICAgICAvLyBlbnN1cmUgdHJhaWxpbmcgc2xhc2ggaXMgbm9ybWFsaXplZCBwZXIgY29uZmlnXG4gICAgICAgICAgICBpZiAobWlkZGxld2FyZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5leHRDb25maWcudHJhaWxpbmdTbGFzaCAmJiAhcGF0aG5hbWUuZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lICs9IFwiL1wiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubmV4dENvbmZpZy50cmFpbGluZ1NsYXNoICYmIHBhdGhuYW1lLmxlbmd0aCA+IDEgJiYgcGF0aG5hbWUuZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGF0aG5hbWUuc3Vic3RyaW5nKDAsIHBhdGhuYW1lLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmkxOG5Qcm92aWRlcikge1xuICAgICAgICAgICAgICAgIHZhciBfcmVxX2hlYWRlcnNfaG9zdDtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHBvcnQgZnJvbSB0aGUgaG9zdG5hbWUgaWYgcHJlc2VudC5cbiAgICAgICAgICAgICAgICBjb25zdCBob3N0bmFtZSA9IHJlcSA9PSBudWxsID8gdm9pZCAwIDogKF9yZXFfaGVhZGVyc19ob3N0ID0gcmVxLmhlYWRlcnMuaG9zdCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXFfaGVhZGVyc19ob3N0LnNwbGl0KFwiOlwiLCAxKVswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvbWFpbkxvY2FsZSA9IHRoaXMuaTE4blByb3ZpZGVyLmRldGVjdERvbWFpbkxvY2FsZShob3N0bmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdExvY2FsZSA9IChkb21haW5Mb2NhbGUgPT0gbnVsbCA/IHZvaWQgMCA6IGRvbWFpbkxvY2FsZS5kZWZhdWx0TG9jYWxlKSA/PyB0aGlzLmkxOG5Qcm92aWRlci5jb25maWcuZGVmYXVsdExvY2FsZTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gdGhpcy5pMThuUHJvdmlkZXIuYW5hbHl6ZShwYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGxvY2FsZSBpcyBkZXRlY3RlZCBmcm9tIHRoZSBwYXRoLCB3ZSBuZWVkIHRvIHJlbW92ZSBpdFxuICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlIHBhdGhuYW1lLlxuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBxdWVyeSB3aXRoIHRoZSBkZXRlY3RlZCBsb2NhbGUgYW5kIGRlZmF1bHQgbG9jYWxlLlxuICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeS5fX25leHRMb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeS5fX25leHREZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbG9jYWxlIGlzIG5vdCBkZXRlY3RlZCBmcm9tIHRoZSBwYXRoLCB3ZSBuZWVkIHRvIG1hcmsgdGhhdFxuICAgICAgICAgICAgICAgIC8vIGl0IHdhcyBub3QgaW5mZXJyZWQgZnJvbSBkZWZhdWx0LlxuICAgICAgICAgICAgICAgIGlmICghbG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkVXJsLnF1ZXJ5Ll9fbmV4dEluZmVycmVkTG9jYWxlRnJvbURlZmF1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIG5vIGxvY2FsZSB3YXMgZGV0ZWN0ZWQgYW5kIHdlIGRvbid0IGhhdmUgbWlkZGxld2FyZSwgd2UgbmVlZFxuICAgICAgICAgICAgICAgIC8vIHRvIHJlbmRlciBhIDQwNCBwYWdlLlxuICAgICAgICAgICAgICAgIGlmICghbG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZSAmJiAhbWlkZGxld2FyZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnkuX19uZXh0TG9jYWxlID0gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW5kZXI0MDQocmVxLCByZXMsIHBhcnNlZFVybCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnNlZFVybC5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICAgICAgICAgICAgcGFyc2VkVXJsLnF1ZXJ5Ll9fbmV4dERhdGFSZXEgPSBcIjFcIjtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYW5kbGVOZXh0SW1hZ2VSZXF1ZXN0ID0gKCk9PmZhbHNlO1xuICAgICAgICB0aGlzLmhhbmRsZUNhdGNoYWxsUmVuZGVyUmVxdWVzdCA9ICgpPT5mYWxzZTtcbiAgICAgICAgdGhpcy5oYW5kbGVDYXRjaGFsbE1pZGRsZXdhcmVSZXF1ZXN0ID0gKCk9PmZhbHNlO1xuICAgICAgICAvKipcbiAgICogTm9ybWFsaXplcyBhIHBhdGhuYW1lIHdpdGhvdXQgYXR0YWNoaW5nIGFueSBtZXRhZGF0YSBmcm9tIGFueSBtYXRjaGVkXG4gICAqIG5vcm1hbGl6ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRobmFtZSB0aGUgcGF0aG5hbWUgdG8gbm9ybWFsaXplXG4gICAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gICAqLyB0aGlzLm5vcm1hbGl6ZSA9IChwYXRobmFtZSk9PntcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZXJzID0gW107XG4gICAgICAgICAgICBpZiAodGhpcy5ub3JtYWxpemVycy5kYXRhKSB7XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplcnMucHVzaCh0aGlzLm5vcm1hbGl6ZXJzLmRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubm9ybWFsaXplcnMucG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplcnMucHVzaCh0aGlzLm5vcm1hbGl6ZXJzLnBvc3Rwb25lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHB1dCB0aGUgcHJlZmV0Y2ggbm9ybWFsaXplciBiZWZvcmUgdGhlIFJTQyBub3JtYWxpemVyXG4gICAgICAgICAgICAvLyBiZWNhdXNlIHRoZSBSU0Mgbm9ybWFsaXplciB3aWxsIG1hdGNoIHRoZSBwcmVmZXRjaCBSU0Mgcm91dGVzIHRvby5cbiAgICAgICAgICAgIGlmICh0aGlzLm5vcm1hbGl6ZXJzLnByZWZldGNoUlNDKSB7XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplcnMucHVzaCh0aGlzLm5vcm1hbGl6ZXJzLnByZWZldGNoUlNDKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm5vcm1hbGl6ZXJzLnJzYykge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZXJzLnB1c2godGhpcy5ub3JtYWxpemVycy5yc2MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBub3JtYWxpemVyIG9mIG5vcm1hbGl6ZXJzKXtcbiAgICAgICAgICAgICAgICBpZiAoIW5vcm1hbGl6ZXIubWF0Y2gocGF0aG5hbWUpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplci5ub3JtYWxpemUocGF0aG5hbWUsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLm5vcm1hbGl6ZUFuZEF0dGFjaE1ldGFkYXRhID0gYXN5bmMgKHJlcSwgcmVzLCB1cmwpPT57XG4gICAgICAgICAgICBsZXQgZmluaXNoZWQgPSBhd2FpdCB0aGlzLmhhbmRsZU5leHRJbWFnZVJlcXVlc3QocmVxLCByZXMsIHVybCk7XG4gICAgICAgICAgICBpZiAoZmluaXNoZWQpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuZW5hYmxlZERpcmVjdG9yaWVzLnBhZ2VzKSB7XG4gICAgICAgICAgICAgICAgZmluaXNoZWQgPSBhd2FpdCB0aGlzLmhhbmRsZU5leHREYXRhUmVxdWVzdChyZXEsIHJlcywgdXJsKTtcbiAgICAgICAgICAgICAgICBpZiAoZmluaXNoZWQpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnByZXBhcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHJlcGFyZWRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXN0b21FcnJvck5vNDA0V2FybiA9IGV4ZWNPbmNlKCgpPT57XG4gICAgICAgICAgICBMb2cud2FybihgWW91IGhhdmUgYWRkZWQgYSBjdXN0b20gL19lcnJvciBwYWdlIHdpdGhvdXQgYSBjdXN0b20gLzQwNCBwYWdlLiBUaGlzIHByZXZlbnRzIHRoZSA0MDQgcGFnZSBmcm9tIGJlaW5nIGF1dG8gc3RhdGljYWxseSBvcHRpbWl6ZWQuXFxuU2VlIGhlcmUgZm9yIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2N1c3RvbS1lcnJvci1uby1jdXN0b20tNDA0YCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB7IGRpciA9IFwiLlwiLCBxdWlldCA9IGZhbHNlLCBjb25mLCBkZXYgPSBmYWxzZSwgbWluaW1hbE1vZGUgPSBmYWxzZSwgY3VzdG9tU2VydmVyID0gdHJ1ZSwgaG9zdG5hbWUsIHBvcnQgfSA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuc2VydmVyT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuZGlyID0gcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIiA/IGRpciA6IHJlcXVpcmUoXCJwYXRoXCIpLnJlc29sdmUoZGlyKTtcbiAgICAgICAgdGhpcy5xdWlldCA9IHF1aWV0O1xuICAgICAgICB0aGlzLmxvYWRFbnZDb25maWcoe1xuICAgICAgICAgICAgZGV2XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUT0RPOiBzaG91bGQgY29uZiBiZSBub3JtYWxpemVkIHRvIHByZXZlbnQgbWlzc2luZ1xuICAgICAgICAvLyB2YWx1ZXMgZnJvbSBjYXVzaW5nIGlzc3VlcyBhcyB0aGlzIGNhbiBiZSB1c2VyIHByb3ZpZGVkXG4gICAgICAgIHRoaXMubmV4dENvbmZpZyA9IGNvbmY7XG4gICAgICAgIHRoaXMuaG9zdG5hbWUgPSBob3N0bmFtZTtcbiAgICAgICAgaWYgKHRoaXMuaG9zdG5hbWUpIHtcbiAgICAgICAgICAgIC8vIHdlIGZvcm1hdCB0aGUgaG9zdG5hbWUgc28gdGhhdCBpdCBjYW4gYmUgZmV0Y2hlZFxuICAgICAgICAgICAgdGhpcy5mZXRjaEhvc3RuYW1lID0gZm9ybWF0SG9zdG5hbWUodGhpcy5ob3N0bmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICAgICAgdGhpcy5kaXN0RGlyID0gcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIiA/IHRoaXMubmV4dENvbmZpZy5kaXN0RGlyIDogcmVxdWlyZShcInBhdGhcIikuam9pbih0aGlzLmRpciwgdGhpcy5uZXh0Q29uZmlnLmRpc3REaXIpO1xuICAgICAgICB0aGlzLnB1YmxpY0RpciA9IHRoaXMuZ2V0UHVibGljRGlyKCk7XG4gICAgICAgIHRoaXMuaGFzU3RhdGljRGlyID0gIW1pbmltYWxNb2RlICYmIHRoaXMuZ2V0SGFzU3RhdGljRGlyKCk7XG4gICAgICAgIHRoaXMuaTE4blByb3ZpZGVyID0gKChfdGhpc19uZXh0Q29uZmlnX2kxOG4gPSB0aGlzLm5leHRDb25maWcuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX25leHRDb25maWdfaTE4bi5sb2NhbGVzKSA/IG5ldyBJMThOUHJvdmlkZXIodGhpcy5uZXh0Q29uZmlnLmkxOG4pIDogdW5kZWZpbmVkO1xuICAgICAgICAvLyBDb25maWd1cmUgdGhlIGxvY2FsZSBub3JtYWxpemVyLCBpdCdzIHVzZWQgZm9yIHJvdXRlcyBpbnNpZGUgYHBhZ2VzL2AuXG4gICAgICAgIHRoaXMubG9jYWxlTm9ybWFsaXplciA9IHRoaXMuaTE4blByb3ZpZGVyID8gbmV3IExvY2FsZVJvdXRlTm9ybWFsaXplcih0aGlzLmkxOG5Qcm92aWRlcikgOiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIE9ubHkgc2VydmVyUnVudGltZUNvbmZpZyBuZWVkcyB0aGUgZGVmYXVsdFxuICAgICAgICAvLyBwdWJsaWNSdW50aW1lQ29uZmlnIGdldHMgaXQncyBkZWZhdWx0IGluIGNsaWVudC9pbmRleC5qc1xuICAgICAgICBjb25zdCB7IHNlcnZlclJ1bnRpbWVDb25maWcgPSB7fSwgcHVibGljUnVudGltZUNvbmZpZywgYXNzZXRQcmVmaXgsIGdlbmVyYXRlRXRhZ3MgfSA9IHRoaXMubmV4dENvbmZpZztcbiAgICAgICAgdGhpcy5idWlsZElkID0gdGhpcy5nZXRCdWlsZElkKCk7XG4gICAgICAgIC8vIHRoaXMgaXMgYSBoYWNrIHRvIGF2b2lkIFdlYnBhY2sga25vd2luZyB0aGlzIGlzIGVxdWFsIHRvIHRoaXMubWluaW1hbE1vZGVcbiAgICAgICAgLy8gYmVjYXVzZSB3ZSByZXBsYWNlIHRoaXMubWluaW1hbE1vZGUgdG8gdHJ1ZSBpbiBwcm9kdWN0aW9uIGJ1bmRsZXMuXG4gICAgICAgIGNvbnN0IG1pbmltYWxNb2RlS2V5ID0gXCJtaW5pbWFsTW9kZVwiO1xuICAgICAgICB0aGlzW21pbmltYWxNb2RlS2V5XSA9IG1pbmltYWxNb2RlIHx8ICEhcHJvY2Vzcy5lbnYuTkVYVF9QUklWQVRFX01JTklNQUxfTU9ERTtcbiAgICAgICAgdGhpcy5lbmFibGVkRGlyZWN0b3JpZXMgPSB0aGlzLmdldEVuYWJsZWREaXJlY3RvcmllcyhkZXYpO1xuICAgICAgICB0aGlzLm5vcm1hbGl6ZXJzID0ge1xuICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG5vcm1hbGl6ZSB0aGUgcGF0aG5hbWUgZnJvbSB0aGUgUlNDIHByZWZpeCBvbmx5IGluIG1pbmltYWxcbiAgICAgICAgICAgIC8vIG1vZGUgYXMgb3RoZXJ3aXNlIHRoYXQgcm91dGUgaXMgbm90IGV4cG9zZWQgZXh0ZXJuYWwgdG8gdGhlIHNlcnZlciBhc1xuICAgICAgICAgICAgLy8gd2UgaW5zdGVhZCBvbmx5IHJlbHkgb24gdGhlIGhlYWRlcnMuXG4gICAgICAgICAgICBwb3N0cG9uZWQ6IHRoaXMuZW5hYmxlZERpcmVjdG9yaWVzLmFwcCAmJiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLnBwciAmJiB0aGlzLm1pbmltYWxNb2RlID8gbmV3IFBvc3Rwb25lZFBhdGhuYW1lTm9ybWFsaXplcigpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcnNjOiB0aGlzLmVuYWJsZWREaXJlY3Rvcmllcy5hcHAgJiYgdGhpcy5taW5pbWFsTW9kZSA/IG5ldyBSU0NQYXRobmFtZU5vcm1hbGl6ZXIoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHByZWZldGNoUlNDOiB0aGlzLmVuYWJsZWREaXJlY3Rvcmllcy5hcHAgJiYgdGhpcy5uZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5wcHIgJiYgdGhpcy5taW5pbWFsTW9kZSA/IG5ldyBQcmVmZXRjaFJTQ1BhdGhuYW1lTm9ybWFsaXplcigpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZGF0YTogdGhpcy5lbmFibGVkRGlyZWN0b3JpZXMucGFnZXMgPyBuZXcgTmV4dERhdGFQYXRobmFtZU5vcm1hbGl6ZXIodGhpcy5idWlsZElkKSA6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm5leHRGb250TWFuaWZlc3QgPSB0aGlzLmdldE5leHRGb250TWFuaWZlc3QoKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gXCJlZGdlXCIpIHtcbiAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRCA9IHRoaXMubmV4dENvbmZpZy5leHBlcmltZW50YWwuZGVwbG95bWVudElkIHx8IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJPcHRzID0ge1xuICAgICAgICAgICAgZGVwbG95bWVudElkOiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLmRlcGxveW1lbnRJZCxcbiAgICAgICAgICAgIHN0cmljdE5leHRIZWFkOiAhIXRoaXMubmV4dENvbmZpZy5leHBlcmltZW50YWwuc3RyaWN0TmV4dEhlYWQsXG4gICAgICAgICAgICBwb3dlcmVkQnlIZWFkZXI6IHRoaXMubmV4dENvbmZpZy5wb3dlcmVkQnlIZWFkZXIsXG4gICAgICAgICAgICBjYW5vbmljYWxCYXNlOiB0aGlzLm5leHRDb25maWcuYW1wLmNhbm9uaWNhbEJhc2UgfHwgXCJcIixcbiAgICAgICAgICAgIGJ1aWxkSWQ6IHRoaXMuYnVpbGRJZCxcbiAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICBwcmV2aWV3UHJvcHM6IHRoaXMuZ2V0UHJlcmVuZGVyTWFuaWZlc3QoKS5wcmV2aWV3LFxuICAgICAgICAgICAgY3VzdG9tU2VydmVyOiBjdXN0b21TZXJ2ZXIgPT09IHRydWUgPyB0cnVlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgYW1wT3B0aW1pemVyQ29uZmlnOiAoX3RoaXNfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wID0gdGhpcy5uZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5hbXApID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9hbXAub3B0aW1pemVyLFxuICAgICAgICAgICAgYmFzZVBhdGg6IHRoaXMubmV4dENvbmZpZy5iYXNlUGF0aCxcbiAgICAgICAgICAgIGltYWdlczogdGhpcy5uZXh0Q29uZmlnLmltYWdlcyxcbiAgICAgICAgICAgIG9wdGltaXplRm9udHM6IHRoaXMubmV4dENvbmZpZy5vcHRpbWl6ZUZvbnRzLFxuICAgICAgICAgICAgZm9udE1hbmlmZXN0OiB0aGlzLm5leHRDb25maWcub3B0aW1pemVGb250cyAmJiAhZGV2ID8gdGhpcy5nZXRGb250TWFuaWZlc3QoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9wdGltaXplQ3NzOiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLm9wdGltaXplQ3NzLFxuICAgICAgICAgICAgbmV4dENvbmZpZ091dHB1dDogdGhpcy5uZXh0Q29uZmlnLm91dHB1dCxcbiAgICAgICAgICAgIG5leHRTY3JpcHRXb3JrZXJzOiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLm5leHRTY3JpcHRXb3JrZXJzLFxuICAgICAgICAgICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmc6IHRoaXMubmV4dENvbmZpZy5leHBlcmltZW50YWwuZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICAgICAgICBkb21haW5Mb2NhbGVzOiAoX3RoaXNfbmV4dENvbmZpZ19pMThuMSA9IHRoaXMubmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfbmV4dENvbmZpZ19pMThuMS5kb21haW5zLFxuICAgICAgICAgICAgZGlzdERpcjogdGhpcy5kaXN0RGlyLFxuICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50czogdGhpcy5lbmFibGVkRGlyZWN0b3JpZXMuYXBwLFxuICAgICAgICAgICAgZW5hYmxlVGFpbnRpbmc6IHRoaXMubmV4dENvbmZpZy5leHBlcmltZW50YWwudGFpbnQsXG4gICAgICAgICAgICBjcm9zc09yaWdpbjogdGhpcy5uZXh0Q29uZmlnLmNyb3NzT3JpZ2luID8gdGhpcy5uZXh0Q29uZmlnLmNyb3NzT3JpZ2luIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGFyZ2VQYWdlRGF0YUJ5dGVzOiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLmxhcmdlUGFnZURhdGFCeXRlcyxcbiAgICAgICAgICAgIC8vIE9ubHkgdGhlIGBwdWJsaWNSdW50aW1lQ29uZmlnYCBrZXkgaXMgZXhwb3NlZCB0byB0aGUgY2xpZW50IHNpZGVcbiAgICAgICAgICAgIC8vIEl0J2xsIGJlIHJlbmRlcmVkIGFzIHBhcnQgb2YgX19ORVhUX0RBVEFfXyBvbiB0aGUgY2xpZW50IHNpZGVcbiAgICAgICAgICAgIHJ1bnRpbWVDb25maWc6IE9iamVjdC5rZXlzKHB1YmxpY1J1bnRpbWVDb25maWcpLmxlbmd0aCA+IDAgPyBwdWJsaWNSdW50aW1lQ29uZmlnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBpbnRlcm5hbCBmaWVsZCBub3QgcHVibGljbHkgZXhwb3NlZFxuICAgICAgICAgICAgaXNFeHBlcmltZW50YWxDb21waWxlOiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLmlzRXhwZXJpbWVudGFsQ29tcGlsZSxcbiAgICAgICAgICAgIGV4cGVyaW1lbnRhbDoge1xuICAgICAgICAgICAgICAgIHBwcjogdGhpcy5lbmFibGVkRGlyZWN0b3JpZXMuYXBwICYmIHRoaXMubmV4dENvbmZpZy5leHBlcmltZW50YWwucHByID09PSB0cnVlLFxuICAgICAgICAgICAgICAgIG1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0OiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0ID09PSB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIEluaXRpYWxpemUgbmV4dC9jb25maWcgd2l0aCB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgICAgICBzZXRDb25maWcoe1xuICAgICAgICAgICAgc2VydmVyUnVudGltZUNvbmZpZyxcbiAgICAgICAgICAgIHB1YmxpY1J1bnRpbWVDb25maWdcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGFnZXNNYW5pZmVzdCA9IHRoaXMuZ2V0UGFnZXNNYW5pZmVzdCgpO1xuICAgICAgICB0aGlzLmFwcFBhdGhzTWFuaWZlc3QgPSB0aGlzLmdldEFwcFBhdGhzTWFuaWZlc3QoKTtcbiAgICAgICAgdGhpcy5hcHBQYXRoUm91dGVzID0gdGhpcy5nZXRBcHBQYXRoUm91dGVzKCk7XG4gICAgICAgIC8vIENvbmZpZ3VyZSB0aGUgcm91dGVzLlxuICAgICAgICB0aGlzLm1hdGNoZXJzID0gdGhpcy5nZXRSb3V0ZU1hdGNoZXJzKCk7XG4gICAgICAgIC8vIFN0YXJ0IHJvdXRlIGNvbXBpbGF0aW9uLiBXZSBkb24ndCB3YWl0IGZvciB0aGUgcm91dGVzIHRvIGZpbmlzaCBsb2FkaW5nXG4gICAgICAgIC8vIGJlY2F1c2Ugd2UgdXNlIHRoZSBgd2FpdFRpbGxSZWFkeWAgcHJvbWlzZSBiZWxvdyBpbiBgaGFuZGxlUmVxdWVzdGAgdG9cbiAgICAgICAgLy8gd2FpdC4gQWxzbyB3ZSBjYW4ndCBgYXdhaXRgIGluIHRoZSBjb25zdHJ1Y3Rvci5cbiAgICAgICAgdm9pZCB0aGlzLm1hdGNoZXJzLnJlbG9hZCgpO1xuICAgICAgICB0aGlzLnNldEFzc2V0UHJlZml4KGFzc2V0UHJlZml4KTtcbiAgICAgICAgdGhpcy5yZXNwb25zZUNhY2hlID0gdGhpcy5nZXRSZXNwb25zZUNhY2hlKHtcbiAgICAgICAgICAgIGRldlxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVsb2FkTWF0Y2hlcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hdGNoZXJzLnJlbG9hZCgpO1xuICAgIH1cbiAgICBnZXRSb3V0ZU1hdGNoZXJzKCkge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgbWFuaWZlc3QgbG9hZGVyIHRoYXQgZ2V0J3MgdGhlIG1hbmlmZXN0cyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgIGNvbnN0IG1hbmlmZXN0TG9hZGVyID0gbmV3IFNlcnZlck1hbmlmZXN0TG9hZGVyKChuYW1lKT0+e1xuICAgICAgICAgICAgc3dpdGNoKG5hbWUpe1xuICAgICAgICAgICAgICAgIGNhc2UgUEFHRVNfTUFOSUZFU1Q6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFBhZ2VzTWFuaWZlc3QoKSA/PyBudWxsO1xuICAgICAgICAgICAgICAgIGNhc2UgQVBQX1BBVEhTX01BTklGRVNUOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBcHBQYXRoc01hbmlmZXN0KCkgPz8gbnVsbDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIENvbmZpZ3VyZSB0aGUgbWF0Y2hlcnMgYW5kIGhhbmRsZXJzLlxuICAgICAgICBjb25zdCBtYXRjaGVycyA9IG5ldyBEZWZhdWx0Um91dGVNYXRjaGVyTWFuYWdlcigpO1xuICAgICAgICAvLyBNYXRjaCBwYWdlcyB1bmRlciBgcGFnZXMvYC5cbiAgICAgICAgbWF0Y2hlcnMucHVzaChuZXcgUGFnZXNSb3V0ZU1hdGNoZXJQcm92aWRlcih0aGlzLmRpc3REaXIsIG1hbmlmZXN0TG9hZGVyLCB0aGlzLmkxOG5Qcm92aWRlcikpO1xuICAgICAgICAvLyBNYXRjaCBhcGkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICAgICAgbWF0Y2hlcnMucHVzaChuZXcgUGFnZXNBUElSb3V0ZU1hdGNoZXJQcm92aWRlcih0aGlzLmRpc3REaXIsIG1hbmlmZXN0TG9hZGVyLCB0aGlzLmkxOG5Qcm92aWRlcikpO1xuICAgICAgICAvLyBJZiB0aGUgYXBwIGRpcmVjdG9yeSBpcyBlbmFibGVkLCB0aGVuIGFkZCB0aGUgYXBwIG1hdGNoZXJzIGFuZCBoYW5kbGVycy5cbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlZERpcmVjdG9yaWVzLmFwcCkge1xuICAgICAgICAgICAgLy8gTWF0Y2ggYXBwIHBhZ2VzIHVuZGVyIGBhcHAvYC5cbiAgICAgICAgICAgIG1hdGNoZXJzLnB1c2gobmV3IEFwcFBhZ2VSb3V0ZU1hdGNoZXJQcm92aWRlcih0aGlzLmRpc3REaXIsIG1hbmlmZXN0TG9hZGVyKSk7XG4gICAgICAgICAgICBtYXRjaGVycy5wdXNoKG5ldyBBcHBSb3V0ZVJvdXRlTWF0Y2hlclByb3ZpZGVyKHRoaXMuZGlzdERpciwgbWFuaWZlc3RMb2FkZXIpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF0Y2hlcnM7XG4gICAgfVxuICAgIGxvZ0Vycm9yKGVycikge1xuICAgICAgICBpZiAodGhpcy5xdWlldCkgcmV0dXJuO1xuICAgICAgICBMb2cuZXJyb3IoZXJyKTtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlUmVxdWVzdChyZXEsIHJlcywgcGFyc2VkVXJsKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZSgpO1xuICAgICAgICBjb25zdCBtZXRob2QgPSByZXEubWV0aG9kLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHRyYWNlciA9IGdldFRyYWNlcigpO1xuICAgICAgICByZXR1cm4gdHJhY2VyLndpdGhQcm9wYWdhdGVkQ29udGV4dChyZXEuaGVhZGVycywgKCk9PntcbiAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UoQmFzZVNlcnZlclNwYW4uaGFuZGxlUmVxdWVzdCwge1xuICAgICAgICAgICAgICAgIHNwYW5OYW1lOiBgJHttZXRob2R9ICR7cmVxLnVybH1gLFxuICAgICAgICAgICAgICAgIGtpbmQ6IFNwYW5LaW5kLlNFUlZFUixcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiaHR0cC5tZXRob2RcIjogbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICBcImh0dHAudGFyZ2V0XCI6IHJlcS51cmxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBhc3luYyAoc3Bhbik9PnRoaXMuaGFuZGxlUmVxdWVzdEltcGwocmVxLCByZXMsIHBhcnNlZFVybCkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXNwYW4pIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cC5zdGF0dXNfY29kZVwiOiByZXMuc3RhdHVzQ29kZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdFNwYW5BdHRyaWJ1dGVzID0gdHJhY2VyLmdldFJvb3RTcGFuQXR0cmlidXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBnZXQgYXR0cmlidXRlcywgcHJvYmFibHkgT1RFTCBpcyBub3QgZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJvb3RTcGFuQXR0cmlidXRlcykgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICBpZiAocm9vdFNwYW5BdHRyaWJ1dGVzLmdldChcIm5leHQuc3Bhbl90eXBlXCIpICE9PSBCYXNlU2VydmVyU3Bhbi5oYW5kbGVSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgcm9vdCBzcGFuIHR5cGUgJyR7cm9vdFNwYW5BdHRyaWJ1dGVzLmdldChcIm5leHQuc3Bhbl90eXBlXCIpfScuIFBsZWFzZSByZXBvcnQgdGhpcyBOZXh0LmpzIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qc2ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gcm9vdFNwYW5BdHRyaWJ1dGVzLmdldChcIm5leHQucm91dGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3TmFtZSA9IGAke21ldGhvZH0gJHtyb3V0ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5leHQucm91dGVcIjogcm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwLnJvdXRlXCI6IHJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmV4dC5zcGFuX25hbWVcIjogbmV3TmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuLnVwZGF0ZU5hbWUobmV3TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVSZXF1ZXN0SW1wbChyZXEsIHJlcywgcGFyc2VkVXJsKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgX3RoaXNfcG9ydCwgX29yaWdpbmFsUmVxdWVzdF9zb2NrZXQsIF9vcmlnaW5hbFJlcXVlc3Rfc29ja2V0MSwgX3RoaXNfaTE4blByb3ZpZGVyLCBfdGhpc19uZXh0Q29uZmlnX2kxOG47XG4gICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgbWF0Y2hlcnMgdG8gYmUgcmVhZHkuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLm1hdGNoZXJzLndhaXRUaWxsUmVhZHkoKTtcbiAgICAgICAgICAgIC8vIGVuc3VyZSBjb29raWVzIHNldCBpbiBtaWRkbGV3YXJlIGFyZSBtZXJnZWQgYW5kXG4gICAgICAgICAgICAvLyBub3Qgb3ZlcnJpZGRlbiBieSBBUEkgcm91dGVzL2dldFNlcnZlclNpZGVQcm9wc1xuICAgICAgICAgICAgY29uc3QgX3JlcyA9IHJlcy5vcmlnaW5hbFJlc3BvbnNlIHx8IHJlcztcbiAgICAgICAgICAgIGNvbnN0IG9yaWdTZXRIZWFkZXIgPSBfcmVzLnNldEhlYWRlci5iaW5kKF9yZXMpO1xuICAgICAgICAgICAgX3Jlcy5zZXRIZWFkZXIgPSAobmFtZSwgdmFsKT0+e1xuICAgICAgICAgICAgICAgIC8vIFdoZW4gcmVuZGVycyAvX2Vycm9yIGFmdGVyIHBhZ2UgaXMgZmFpbGVkLFxuICAgICAgICAgICAgICAgIC8vIGl0IGNvdWxkIGF0dGVtcHQgdG8gc2V0IGhlYWRlcnMgYWZ0ZXIgaGVhZGVyc1xuICAgICAgICAgICAgICAgIGlmIChfcmVzLmhlYWRlcnNTZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gXCJzZXQtY29va2llXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlkZGxld2FyZVZhbHVlID0gZ2V0UmVxdWVzdE1ldGEocmVxLCBcIm1pZGRsZXdhcmVDb29raWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbWlkZGxld2FyZVZhbHVlIHx8ICFBcnJheS5pc0FycmF5KHZhbCkgfHwgIXZhbC5ldmVyeSgoaXRlbSwgaWR4KT0+aXRlbSA9PT0gbWlkZGxld2FyZVZhbHVlW2lkeF0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogKHd5YXR0am9oKSBmaW5kIG91dCB3aHkgdGhpcyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgcmVzdWx0aW5nIGluIGR1cGxpY2F0ZSBjb29raWVzIGJlaW5nIGFkZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV3IFNldChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm1pZGRsZXdhcmVWYWx1ZSB8fCBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiA/IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdIDogQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsIDogW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ1NldEhlYWRlcihuYW1lLCB2YWwpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHVybFBhcnRzID0gKHJlcS51cmwgfHwgXCJcIikuc3BsaXQoXCI/XCIsIDEpO1xuICAgICAgICAgICAgY29uc3QgdXJsTm9RdWVyeSA9IHVybFBhcnRzWzBdO1xuICAgICAgICAgICAgLy8gdGhpcyBub3JtYWxpemVzIHJlcGVhdGVkIHNsYXNoZXMgaW4gdGhlIHBhdGggZS5nLiBoZWxsby8vd29ybGQgLT5cbiAgICAgICAgICAgIC8vIGhlbGxvL3dvcmxkIG9yIGJhY2tzbGFzaGVzIHRvIGZvcndhcmQgc2xhc2hlcywgdGhpcyBkb2VzIG5vdFxuICAgICAgICAgICAgLy8gaGFuZGxlIHRyYWlsaW5nIHNsYXNoIGFzIHRoYXQgaXMgaGFuZGxlZCB0aGUgc2FtZSBhcyBhIG5leHQuY29uZmlnLmpzXG4gICAgICAgICAgICAvLyByZWRpcmVjdFxuICAgICAgICAgICAgaWYgKHVybE5vUXVlcnkgPT0gbnVsbCA/IHZvaWQgMCA6IHVybE5vUXVlcnkubWF0Y2goLyhcXFxcfFxcL1xcLykvKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuVXJsID0gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKHJlcS51cmwpO1xuICAgICAgICAgICAgICAgIHJlcy5yZWRpcmVjdChjbGVhblVybCwgMzA4KS5ib2R5KGNsZWFuVXJsKS5zZW5kKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUGFyc2UgdXJsIGlmIHBhcnNlZFVybCBub3QgcHJvdmlkZWRcbiAgICAgICAgICAgIGlmICghcGFyc2VkVXJsIHx8IHR5cGVvZiBwYXJzZWRVcmwgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlcS51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiB1cmwgY2FuIG5vdCBiZSB1bmRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcnNlZFVybCA9IHBhcnNlVXJsKHJlcS51cmwsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFwYXJzZWRVcmwucGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IHBhdGhuYW1lIGNhbid0IGJlIGVtcHR5XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUGFyc2UgdGhlIHF1ZXJ5c3RyaW5nIG91cnNlbHZlcyBpZiB0aGUgdXNlciBkb2Vzbid0IGhhbmRsZSBxdWVyeXN0cmluZyBwYXJzaW5nXG4gICAgICAgICAgICBpZiAodHlwZW9mIHBhcnNlZFVybC5xdWVyeSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeSA9IE9iamVjdC5mcm9tRW50cmllcyhuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcnNlZFVybC5xdWVyeSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVxLmhlYWRlcnNbXCJ4LWZvcndhcmRlZC1ob3N0XCJdID8/PSByZXEuaGVhZGVyc1tcImhvc3RcIl0gPz8gdGhpcy5ob3N0bmFtZTtcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzW1wieC1mb3J3YXJkZWQtcG9ydFwiXSA/Pz0gKF90aGlzX3BvcnQgPSB0aGlzLnBvcnQpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19wb3J0LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICBjb25zdCB7IG9yaWdpbmFsUmVxdWVzdCB9ID0gcmVxO1xuICAgICAgICAgICAgcmVxLmhlYWRlcnNbXCJ4LWZvcndhcmRlZC1wcm90b1wiXSA/Pz0gKChfb3JpZ2luYWxSZXF1ZXN0X3NvY2tldCA9IG9yaWdpbmFsUmVxdWVzdC5zb2NrZXQpID09IG51bGwgPyB2b2lkIDAgOiBfb3JpZ2luYWxSZXF1ZXN0X3NvY2tldC5lbmNyeXB0ZWQpID8gXCJodHRwc1wiIDogXCJodHRwXCI7XG4gICAgICAgICAgICByZXEuaGVhZGVyc1tcIngtZm9yd2FyZGVkLWZvclwiXSA/Pz0gKF9vcmlnaW5hbFJlcXVlc3Rfc29ja2V0MSA9IG9yaWdpbmFsUmVxdWVzdC5zb2NrZXQpID09IG51bGwgPyB2b2lkIDAgOiBfb3JpZ2luYWxSZXF1ZXN0X3NvY2tldDEucmVtb3RlQWRkcmVzcztcbiAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIGFueSBub3JtYWxpemF0aW9uIG9mIHRoZSBwYXRobmFtZSBoYXBwZW5zIGFzXG4gICAgICAgICAgICAvLyBpdCBjYXB0dXJlcyB0aGUgaW5pdGlhbCBVUkwuXG4gICAgICAgICAgICB0aGlzLmF0dGFjaFJlcXVlc3RNZXRhKHJlcSwgcGFyc2VkVXJsKTtcbiAgICAgICAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbE1vZGUgJiYgdGhpcy5lbmFibGVkRGlyZWN0b3JpZXMuYXBwKSB7XG4gICAgICAgICAgICAgICAgZmluaXNoZWQgPSBhd2FpdCB0aGlzLmhhbmRsZVJTQ1JlcXVlc3QocmVxLCByZXMsIHBhcnNlZFVybCk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkb21haW5Mb2NhbGUgPSAoX3RoaXNfaTE4blByb3ZpZGVyID0gdGhpcy5pMThuUHJvdmlkZXIpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19pMThuUHJvdmlkZXIuZGV0ZWN0RG9tYWluTG9jYWxlKGdldEhvc3RuYW1lKHBhcnNlZFVybCwgcmVxLmhlYWRlcnMpKTtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSAoZG9tYWluTG9jYWxlID09IG51bGwgPyB2b2lkIDAgOiBkb21haW5Mb2NhbGUuZGVmYXVsdExvY2FsZSkgfHwgKChfdGhpc19uZXh0Q29uZmlnX2kxOG4gPSB0aGlzLm5leHRDb25maWcuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX25leHRDb25maWdfaTE4bi5kZWZhdWx0TG9jYWxlKTtcbiAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeS5fX25leHREZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IHBhcnNlVXJsVXRpbChyZXEudXJsLnJlcGxhY2UoL15cXC8rLywgXCIvXCIpKTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lSW5mbyA9IGdldE5leHRQYXRobmFtZUluZm8odXJsLnBhdGhuYW1lLCB7XG4gICAgICAgICAgICAgICAgbmV4dENvbmZpZzogdGhpcy5uZXh0Q29uZmlnLFxuICAgICAgICAgICAgICAgIGkxOG5Qcm92aWRlcjogdGhpcy5pMThuUHJvdmlkZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdXJsLnBhdGhuYW1lID0gcGF0aG5hbWVJbmZvLnBhdGhuYW1lO1xuICAgICAgICAgICAgaWYgKHBhdGhuYW1lSW5mby5iYXNlUGF0aCkge1xuICAgICAgICAgICAgICAgIHJlcS51cmwgPSByZW1vdmVQYXRoUHJlZml4KHJlcS51cmwsIHRoaXMubmV4dENvbmZpZy5iYXNlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1c2VNYXRjaGVkUGF0aEhlYWRlciA9IHRoaXMubWluaW1hbE1vZGUgJiYgdHlwZW9mIHJlcS5oZWFkZXJzW1wieC1tYXRjaGVkLXBhdGhcIl0gPT09IFwic3RyaW5nXCI7XG4gICAgICAgICAgICAvLyBUT0RPOiBtZXJnZSBoYW5kbGluZyB3aXRoIHgtaW52b2tlLXBhdGhcbiAgICAgICAgICAgIGlmICh1c2VNYXRjaGVkUGF0aEhlYWRlcikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdGhpc19ub3JtYWxpemVyc19kYXRhLCBfdGhpc19ub3JtYWxpemVyc19wb3N0cG9uZWQsIF90aGlzX2kxOG5Qcm92aWRlcjEsIF90aGlzX2dldFJvdXRlc01hbmlmZXN0O1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5lbmFibGVkRGlyZWN0b3JpZXMuYXBwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbnN1cmUgL2luZGV4IHBhdGggaXMgbm9ybWFsaXplZCBmb3IgcHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiBtaW5pbWFsIG1vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXEudXJsLm1hdGNoKC9eXFwvaW5kZXgoJHxcXD8pLykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEudXJsID0gcmVxLnVybC5yZXBsYWNlKC9eXFwvaW5kZXgvLCBcIi9cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucGF0aG5hbWUgPSBwYXJzZWRVcmwucGF0aG5hbWUgPT09IFwiL2luZGV4XCIgPyBcIi9cIiA6IHBhcnNlZFVybC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB4LW1hdGNoZWQtcGF0aCBpcyB0aGUgc291cmNlIG9mIHRydXRoLCBpdCB0ZWxscyB3aGF0IHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkIGJlIHJlbmRlcmVkIGJlY2F1c2Ugd2UgZG9uJ3QgcHJvY2VzcyByZXdyaXRlcyBpbiBtaW5pbWFsTW9kZVxuICAgICAgICAgICAgICAgICAgICBsZXQgeyBwYXRobmFtZTogbWF0Y2hlZFBhdGggfSA9IG5ldyBVUkwocmVxLmhlYWRlcnNbXCJ4LW1hdGNoZWQtcGF0aFwiXSwgXCJodHRwOi8vbG9jYWxob3N0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGhuYW1lOiB1cmxQYXRobmFtZSB9ID0gbmV3IFVSTChyZXEudXJsLCBcImh0dHA6Ly9sb2NhbGhvc3RcIik7XG4gICAgICAgICAgICAgICAgICAgIC8vIEZvciBJU1IgIHRoZSBVUkwgaXMgbm9ybWFsaXplZCB0byB0aGUgcHJlcmVuZGVyUGF0aCBzbyBpZlxuICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIGEgZGF0YSByZXF1ZXN0IHRoZSBVUkwgcGF0aCB3aWxsIGJlIHRoZSBkYXRhIFVSTCxcbiAgICAgICAgICAgICAgICAgICAgLy8gYmFzZVBhdGggaXMgYWxyZWFkeSBzdHJpcHBlZCBieSB0aGlzIHBvaW50XG4gICAgICAgICAgICAgICAgICAgIGlmICgoX3RoaXNfbm9ybWFsaXplcnNfZGF0YSA9IHRoaXMubm9ybWFsaXplcnMuZGF0YSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX25vcm1hbGl6ZXJzX2RhdGEubWF0Y2godXJsUGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnkuX19uZXh0RGF0YVJlcSA9IFwiMVwiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCgoX3RoaXNfbm9ybWFsaXplcnNfcG9zdHBvbmVkID0gdGhpcy5ub3JtYWxpemVycy5wb3N0cG9uZWQpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19ub3JtYWxpemVyc19wb3N0cG9uZWQubWF0Y2gobWF0Y2hlZFBhdGgpKSAmJiByZXEubWV0aG9kID09PSBcIlBPU1RcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGVjb2RlIHRoZSBwb3N0cG9uZWQgc3RhdGUgZnJvbSB0aGUgcmVxdWVzdCBib2R5LCBpdCB3aWxsIGNvbWUgYXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuIGFycmF5IG9mIGJ1ZmZlcnMsIHNvIGNvbGxlY3QgdGhlbSBhbmQgdGhlbiBjb25jYXQgdGhlbSB0byBmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc3RyaW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiByZXEuYm9keSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc3Rwb25lZCA9IEJ1ZmZlci5jb25jYXQoYm9keSkudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkUmVxdWVzdE1ldGEocmVxLCBcInBvc3Rwb25lZFwiLCBwb3N0cG9uZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZWRQYXRoID0gdGhpcy5ub3JtYWxpemUobWF0Y2hlZFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVXJsUGF0aCA9IHRoaXMuc3RyaXBOZXh0RGF0YVBhdGgodXJsUGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAvLyBQZXJmb3JtIGxvY2FsZSBkZXRlY3Rpb24gYW5kIG5vcm1hbGl6YXRpb24uXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZUFuYWx5c2lzUmVzdWx0ID0gKF90aGlzX2kxOG5Qcm92aWRlcjEgPSB0aGlzLmkxOG5Qcm92aWRlcikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX2kxOG5Qcm92aWRlcjEuYW5hbHl6ZShtYXRjaGVkUGF0aCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGxvY2FsZSByZXN1bHQgd2lsbCBiZSBkZWZpbmVkIGV2ZW4gaWYgdGhlIGxvY2FsZSB3YXMgbm90XG4gICAgICAgICAgICAgICAgICAgIC8vIGRldGVjdGVkIGZvciB0aGUgcmVxdWVzdCBiZWNhdXNlIGl0IHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBsb2NhbGUuXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGVBbmFseXNpc1Jlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkVXJsLnF1ZXJ5Ll9fbmV4dExvY2FsZSA9IGxvY2FsZUFuYWx5c2lzUmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRldGVjdGVkIGxvY2FsZSB3YXMgaW5mZXJyZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2NhbGUsIHdlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIG1vZGlmeSB0aGUgbWV0YWRhdGEgb24gdGhlIHJlcXVlc3QgdG8gaW5kaWNhdGUgdGhhdC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGVBbmFseXNpc1Jlc3VsdC5pbmZlcnJlZEZyb21EZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkVXJsLnF1ZXJ5Ll9fbmV4dEluZmVycmVkTG9jYWxlRnJvbURlZmF1bHQgPSBcIjFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZFVybC5xdWVyeS5fX25leHRJbmZlcnJlZExvY2FsZUZyb21EZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgbmVlZGVkIGFueSBtb3JlP1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkUGF0aCA9IGRlbm9ybWFsaXplUGFnZVBhdGgobWF0Y2hlZFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgc3JjUGF0aG5hbWUgPSBtYXRjaGVkUGF0aDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhZ2VJc0R5bmFtaWMgPSBpc0R5bmFtaWNSb3V0ZShzcmNQYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFnZUlzRHluYW1pYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBhd2FpdCB0aGlzLm1hdGNoZXJzLm1hdGNoKHNyY1BhdGhuYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaTE4bjogbG9jYWxlQW5hbHlzaXNSZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBzb3VyY2UgcGF0aG5hbWUgdG8gdGhlIG1hdGNoZWQgcGFnZSdzIHBhdGhuYW1lLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGF0aG5hbWUgPSBtYXRjaC5kZWZpbml0aW9uLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwYWdlIGlzIGR5bmFtaWMgaWYgdGhlIHBhcmFtcyBhcmUgZGVmaW5lZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlSXNEeW5hbWljID0gdHlwZW9mIG1hdGNoLnBhcmFtcyAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcmVzdCBvZiB0aGlzIGZ1bmN0aW9uIGNhbid0IGhhbmRsZSBpMThuIHByb3Blcmx5LCBzbyBlbnN1cmUgd2VcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVzdG9yZSB0aGUgcGF0aG5hbWUgd2l0aCB0aGUgbG9jYWxlIGluZm9ybWF0aW9uIHN0cmlwcGVkIGZyb20gaXRcbiAgICAgICAgICAgICAgICAgICAgLy8gbm93IHRoYXQgd2UncmUgZG9uZSBtYXRjaGluZyBpZiB3ZSdyZSB1c2luZyBpMThuLlxuICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlQW5hbHlzaXNSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRQYXRoID0gbG9jYWxlQW5hbHlzaXNSZXN1bHQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXRpbHMgPSBnZXRVdGlscyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlSXNEeW5hbWljLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogc3JjUGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpMThuOiB0aGlzLm5leHRDb25maWcuaTE4bixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VQYXRoOiB0aGlzLm5leHRDb25maWcuYmFzZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXdyaXRlczogKChfdGhpc19nZXRSb3V0ZXNNYW5pZmVzdCA9IHRoaXMuZ2V0Um91dGVzTWFuaWZlc3QoKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX2dldFJvdXRlc01hbmlmZXN0LnJld3JpdGVzKSB8fCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlRmlsZXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyRmlsZXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrOiBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6ICEhdGhpcy5uZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5jYXNlU2Vuc2l0aXZlUm91dGVzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgcGFyc2VkVXJsLnBhdGhuYW1lIGluY2x1ZGVzIGxvY2FsZSBiZWZvcmUgcHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAvLyByZXdyaXRlcyBvciB0aGV5IHdvbid0IG1hdGNoIGNvcnJlY3RseS5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlZmF1bHRMb2NhbGUgJiYgIXBhdGhuYW1lSW5mby5sb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5wYXRobmFtZSA9IGAvJHtkZWZhdWx0TG9jYWxlfSR7cGFyc2VkVXJsLnBhdGhuYW1lfWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aG5hbWVCZWZvcmVSZXdyaXRlID0gcGFyc2VkVXJsLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXdyaXRlUGFyYW1zID0gdXRpbHMuaGFuZGxlUmV3cml0ZXMocmVxLCBwYXJzZWRVcmwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXdyaXRlUGFyYW1LZXlzID0gT2JqZWN0LmtleXMocmV3cml0ZVBhcmFtcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpZFJld3JpdGUgPSBwYXRobmFtZUJlZm9yZVJld3JpdGUgIT09IHBhcnNlZFVybC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRpZFJld3JpdGUgJiYgcGFyc2VkVXJsLnBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRSZXF1ZXN0TWV0YShyZXEsIFwicmV3cm90ZVVSTFwiLCBwYXJzZWRVcmwucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlUGFyYW1LZXlzID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJzZWRVcmwucXVlcnkpKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyc2VkVXJsLnF1ZXJ5W2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ICE9PSBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCAmJiBrZXkuc3RhcnRzV2l0aChORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0ga2V5LnN1YnN0cmluZyhORVhUX1FVRVJZX1BBUkFNX1BSRUZJWC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeVtub3JtYWxpemVkS2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlUGFyYW1LZXlzLmFkZChub3JtYWxpemVkS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkVXJsLnF1ZXJ5W2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJwb2xhdGUgZHluYW1pYyBwYXJhbXMgYW5kIG5vcm1hbGl6ZSBVUkwgaWYgbmVlZGVkXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYWdlSXNEeW5hbWljKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyYW1zID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyYW1zUmVzdWx0ID0gdXRpbHMubm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKHBhcnNlZFVybC5xdWVyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgcHJlcmVuZGVyZWQgSVNSIHBhdGhzIHdlIGF0dGVtcHQgcGFyc2luZyB0aGUgcm91dGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhcmFtcyBmcm9tIHRoZSBVUkwgZGlyZWN0bHkgYXMgcm91dGUtbWF0Y2hlcyBtYXkgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250YWluIHRoZSBjb3JyZWN0IHZhbHVlcyBkdWUgdG8gdGhlIGZpbGVzeXN0ZW0gcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hpbmcgYmVmb3JlIHRoZSBkeW5hbWljIHJvdXRlIGhhcyBiZWVuIG1hdGNoZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyYW1zUmVzdWx0Lmhhc1ZhbGlkUGFyYW1zICYmIHBhZ2VJc0R5bmFtaWMgJiYgIWlzRHluYW1pY1JvdXRlKG5vcm1hbGl6ZWRVcmxQYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXRjaGVyUGFyYW1zID0gdXRpbHMuZHluYW1pY1JvdXRlTWF0Y2hlciA9PSBudWxsID8gdm9pZCAwIDogdXRpbHMuZHluYW1pY1JvdXRlTWF0Y2hlci5jYWxsKHV0aWxzLCBub3JtYWxpemVkVXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXJQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMubm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKG1hdGNoZXJQYXJhbXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtc1Jlc3VsdC5wYXJhbXMsIG1hdGNoZXJQYXJhbXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNSZXN1bHQuaGFzVmFsaWRQYXJhbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbXNSZXN1bHQuaGFzVmFsaWRQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXNSZXN1bHQucGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcS5oZWFkZXJzW1wieC1ub3ctcm91dGUtbWF0Y2hlc1wiXSAmJiBpc0R5bmFtaWNSb3V0ZShtYXRjaGVkUGF0aCkgJiYgIXBhcmFtc1Jlc3VsdC5oYXNWYWxpZFBhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdHMgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVBhcmFtcyA9IHV0aWxzLmdldFBhcmFtc0Zyb21Sb3V0ZU1hdGNoZXMocmVxLCBvcHRzLCBwYXJzZWRVcmwucXVlcnkuX19uZXh0TG9jYWxlIHx8IFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgcmV0dXJucyBhIGxvY2FsZSwgaXQgbWVhbnMgdGhhdCB0aGUgbG9jYWxlIHdhcyBkZXRlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlIHBhdGhuYW1lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRzLmxvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnkuX19uZXh0TG9jYWxlID0gb3B0cy5sb2NhbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzIHRoZSBsb2NhbGUgd2FzIHBhcnNlZCBmcm9tIHRoZSBwYXRobmFtZSwgd2Ugc2hvdWxkIG1hcmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCB0aGUgbG9jYWxlIHdhcyBub3QgaW5mZXJyZWQgYXMgdGhlIGRlZmF1bHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRVcmwucXVlcnkuX19uZXh0SW5mZXJyZWRMb2NhbGVGcm9tRGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zUmVzdWx0ID0gdXRpbHMubm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKHJvdXRlUGFyYW1zLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zUmVzdWx0Lmhhc1ZhbGlkUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtc1Jlc3VsdC5wYXJhbXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBhY3R1YWwgZHluYW1pYyByb3V0ZSBuYW1lIGJlaW5nIHJlcXVlc3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VJc0R5bmFtaWMgJiYgdXRpbHMuZGVmYXVsdFJvdXRlTWF0Y2hlcyAmJiBub3JtYWxpemVkVXJsUGF0aCA9PT0gc3JjUGF0aG5hbWUgJiYgIXBhcmFtc1Jlc3VsdC5oYXNWYWxpZFBhcmFtcyAmJiAhdXRpbHMubm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wYXJhbXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRydWUpLmhhc1ZhbGlkUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gdXRpbHMuZGVmYXVsdFJvdXRlTWF0Y2hlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkUGF0aCA9IHV0aWxzLmludGVycG9sYXRlRHluYW1pY1BhdGgoc3JjUGF0aG5hbWUsIHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnVybCA9IHV0aWxzLmludGVycG9sYXRlRHluYW1pY1BhdGgocmVxLnVybCwgcGFyYW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocGFnZUlzRHluYW1pYyB8fCBkaWRSZXdyaXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX3V0aWxzX2RlZmF1bHRSb3V0ZVJlZ2V4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMubm9ybWFsaXplVmVyY2VsVXJsKHJlcSwgdHJ1ZSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJld3JpdGVQYXJhbUtleXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uT2JqZWN0LmtleXMoKChfdXRpbHNfZGVmYXVsdFJvdXRlUmVnZXggPSB1dGlscy5kZWZhdWx0Um91dGVSZWdleCkgPT0gbnVsbCA/IHZvaWQgMCA6IF91dGlsc19kZWZhdWx0Um91dGVSZWdleC5ncm91cHMpIHx8IHt9KVxuICAgICAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2Ygcm91dGVQYXJhbUtleXMpe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZFVybC5xdWVyeVtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5wYXRobmFtZSA9IG1hdGNoZWRQYXRoO1xuICAgICAgICAgICAgICAgICAgICB1cmwucGF0aG5hbWUgPSBwYXJzZWRVcmwucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gYXdhaXQgdGhpcy5ub3JtYWxpemVBbmRBdHRhY2hNZXRhZGF0YShyZXEsIHJlcywgcGFyc2VkVXJsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBEZWNvZGVFcnJvciB8fCBlcnIgaW5zdGFuY2VvZiBOb3JtYWxpemVFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJFcnJvcihudWxsLCByZXEsIHJlcywgXCIvX2Vycm9yXCIsIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKC8vIEVkZ2UgcnVudGltZSBhbHdheXMgaGFzIG1pbmltYWwgbW9kZSBlbmFibGVkLlxuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIiAmJiAhdGhpcy5taW5pbWFsTW9kZSAmJiBkZWZhdWx0TG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBnZXRMb2NhbGVSZWRpcmVjdCB9ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaTE4bi9nZXQtbG9jYWxlLXJlZGlyZWN0XCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0gZ2V0TG9jYWxlUmVkaXJlY3Qoe1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBkb21haW5Mb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBuZXh0Q29uZmlnOiB0aGlzLm5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhMb2NhbGU6IHBhdGhuYW1lSW5mby5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIHVybFBhcnNlZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IHBhdGhuYW1lSW5mby5sb2NhbGUgPyBgLyR7cGF0aG5hbWVJbmZvLmxvY2FsZX0ke3VybC5wYXRobmFtZX1gIDogdXJsLnBhdGhuYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5yZWRpcmVjdChyZWRpcmVjdCwgUmVkaXJlY3RTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0KS5ib2R5KHJlZGlyZWN0KS5zZW5kKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWRkUmVxdWVzdE1ldGEocmVxLCBcImlzTG9jYWxlRG9tYWluXCIsIEJvb2xlYW4oZG9tYWluTG9jYWxlKSk7XG4gICAgICAgICAgICBpZiAocGF0aG5hbWVJbmZvLmxvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJlcS51cmwgPSBmb3JtYXRVcmwodXJsKTtcbiAgICAgICAgICAgICAgICBhZGRSZXF1ZXN0TWV0YShyZXEsIFwiZGlkU3RyaXBMb2NhbGVcIiwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB3ZSBhcmVuJ3QgaW4gbWluaW1hbCBtb2RlIG9yIHRoZXJlIGlzIG5vIGxvY2FsZSBpbiB0aGUgcXVlcnlcbiAgICAgICAgICAgIC8vIHN0cmluZywgYWRkIHRoZSBsb2NhbGUgdG8gdGhlIHF1ZXJ5IHN0cmluZy5cbiAgICAgICAgICAgIGlmICghdGhpcy5taW5pbWFsTW9kZSB8fCAhcGFyc2VkVXJsLnF1ZXJ5Ll9fbmV4dExvY2FsZSkge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsb2NhbGUgaXMgaW4gdGhlIHBhdGhuYW1lLCBhZGQgaXQgdG8gdGhlIHF1ZXJ5IHN0cmluZy5cbiAgICAgICAgICAgICAgICBpZiAocGF0aG5hbWVJbmZvLmxvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnkuX19uZXh0TG9jYWxlID0gcGF0aG5hbWVJbmZvLmxvY2FsZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRlZmF1bHRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkVXJsLnF1ZXJ5Ll9fbmV4dExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeS5fX25leHRJbmZlcnJlZExvY2FsZUZyb21EZWZhdWx0ID0gXCIxXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2V0IGluY3JlbWVudGFsIGNhY2hlIHRvIHJlcXVlc3QgbWV0YSBzbyBpdCBjYW5cbiAgICAgICAgICAgIC8vIGJlIHBhc3NlZCBkb3duIGZvciBlZGdlIGZ1bmN0aW9ucyBhbmQgdGhlIGZldGNoIGRpc2tcbiAgICAgICAgICAgIC8vIGNhY2hlIGNhbiBiZSBsZXZlcmFnZWQgbG9jYWxseVxuICAgICAgICAgICAgaWYgKCF0aGlzLnNlcnZlck9wdGlvbnMud2ViU2VydmVyQ29uZmlnICYmICFnZXRSZXF1ZXN0TWV0YShyZXEsIFwiaW5jcmVtZW50YWxDYWNoZVwiKSkge1xuICAgICAgICAgICAgICAgIGxldCBwcm90b2NvbCA9IFwiaHR0cHM6XCI7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkRnVsbFVybCA9IG5ldyBVUkwoZ2V0UmVxdWVzdE1ldGEocmVxLCBcImluaXRVUkxcIikgfHwgXCIvXCIsIFwiaHR0cDovL25cIik7XG4gICAgICAgICAgICAgICAgICAgIHByb3RvY29sID0gcGFyc2VkRnVsbFVybC5wcm90b2NvbDtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7fVxuICAgICAgICAgICAgICAgIGNvbnN0IGluY3JlbWVudGFsQ2FjaGUgPSBhd2FpdCB0aGlzLmdldEluY3JlbWVudGFsQ2FjaGUoe1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SGVhZGVyczogT2JqZWN0LmFzc2lnbih7fSwgcmVxLmhlYWRlcnMpLFxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0UHJvdG9jb2w6IHByb3RvY29sLnN1YnN0cmluZygwLCBwcm90b2NvbC5sZW5ndGggLSAxKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGluY3JlbWVudGFsQ2FjaGUucmVzZXRSZXF1ZXN0Q2FjaGUoKTtcbiAgICAgICAgICAgICAgICBhZGRSZXF1ZXN0TWV0YShyZXEsIFwiaW5jcmVtZW50YWxDYWNoZVwiLCBpbmNyZW1lbnRhbENhY2hlKTtcbiAgICAgICAgICAgICAgICBnbG9iYWxUaGlzLl9faW5jcmVtZW50YWxDYWNoZSA9IGluY3JlbWVudGFsQ2FjaGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB3aGVuIHgtaW52b2tlLXBhdGggaXMgc3BlY2lmaWVkIHdlIGNhbiBzaG9ydCBzaG9ydCBjaXJjdWl0IHJlc29sdmluZ1xuICAgICAgICAgICAgLy8gd2Ugb25seSBob25vciB0aGlzIGhlYWRlciBpZiB3ZSBhcmUgaW5zaWRlIG9mIGEgcmVuZGVyIHdvcmtlciB0b1xuICAgICAgICAgICAgLy8gcHJldmVudCBleHRlcm5hbCB1c2VycyBjb2VyY2luZyB0aGUgcm91dGluZyBwYXRoXG4gICAgICAgICAgICBjb25zdCBpbnZva2VQYXRoID0gcmVxLmhlYWRlcnNbXCJ4LWludm9rZS1wYXRoXCJdO1xuICAgICAgICAgICAgY29uc3QgdXNlSW52b2tlUGF0aCA9ICF1c2VNYXRjaGVkUGF0aEhlYWRlciAmJiBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09IFwiZWRnZVwiICYmIGludm9rZVBhdGg7XG4gICAgICAgICAgICBpZiAodXNlSW52b2tlUGF0aCkge1xuICAgICAgICAgICAgICAgIHZhciBfdGhpc19uZXh0Q29uZmlnX2kxOG4xO1xuICAgICAgICAgICAgICAgIGlmIChyZXEuaGVhZGVyc1tcIngtaW52b2tlLXN0YXR1c1wiXSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnZva2VRdWVyeSA9IHJlcS5oZWFkZXJzW1wieC1pbnZva2UtcXVlcnlcIl07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaW52b2tlUXVlcnkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyc2VkVXJsLnF1ZXJ5LCBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChpbnZva2VRdWVyeSkpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IE51bWJlcihyZXEuaGVhZGVyc1tcIngtaW52b2tlLXN0YXR1c1wiXSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlcnIgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlcS5oZWFkZXJzW1wieC1pbnZva2UtZXJyb3JcIl0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludm9rZUVycm9yID0gSlNPTi5wYXJzZShyZXEuaGVhZGVyc1tcIngtaW52b2tlLWVycm9yXCJdIHx8IFwie31cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBuZXcgRXJyb3IoaW52b2tlRXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRXJyb3IoZXJyLCByZXEsIHJlcywgXCIvX2Vycm9yXCIsIHBhcnNlZFVybC5xdWVyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZE1hdGNoZWRQYXRoID0gbmV3IFVSTChpbnZva2VQYXRoIHx8IFwiL1wiLCBcImh0dHA6Ly9uXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGludm9rZVBhdGhuYW1lSW5mbyA9IGdldE5leHRQYXRobmFtZUluZm8ocGFyc2VkTWF0Y2hlZFBhdGgucGF0aG5hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dENvbmZpZzogdGhpcy5uZXh0Q29uZmlnLFxuICAgICAgICAgICAgICAgICAgICBwYXJzZURhdGE6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGludm9rZVBhdGhuYW1lSW5mby5sb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkVXJsLnF1ZXJ5Ll9fbmV4dExvY2FsZSA9IGludm9rZVBhdGhuYW1lSW5mby5sb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRVcmwucGF0aG5hbWUgIT09IHBhcnNlZE1hdGNoZWRQYXRoLnBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5wYXRobmFtZSA9IHBhcnNlZE1hdGNoZWRQYXRoLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgICAgICBhZGRSZXF1ZXN0TWV0YShyZXEsIFwicmV3cm90ZVVSTFwiLCBpbnZva2VQYXRobmFtZUluZm8ucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVSZXN1bHQgPSBub3JtYWxpemVMb2NhbGVQYXRoKHJlbW92ZVBhdGhQcmVmaXgocGFyc2VkVXJsLnBhdGhuYW1lLCB0aGlzLm5leHRDb25maWcuYmFzZVBhdGggfHwgXCJcIiksICgoX3RoaXNfbmV4dENvbmZpZ19pMThuMSA9IHRoaXMubmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfbmV4dENvbmZpZ19pMThuMS5sb2NhbGVzKSB8fCBbXSk7XG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZVJlc3VsdC5kZXRlY3RlZExvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnkuX19uZXh0TG9jYWxlID0gbm9ybWFsaXplUmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJzZWRVcmwucGF0aG5hbWUgPSBub3JtYWxpemVSZXN1bHQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyc2VkVXJsLnF1ZXJ5KSl7XG4gICAgICAgICAgICAgICAgICAgIGlmICgha2V5LnN0YXJ0c1dpdGgoXCJfX25leHRcIikgJiYgIWtleS5zdGFydHNXaXRoKFwiX25leHRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRVcmwucXVlcnlba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBpbnZva2VRdWVyeSA9IHJlcS5oZWFkZXJzW1wieC1pbnZva2UtcXVlcnlcIl07XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnZva2VRdWVyeSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcnNlZFVybC5xdWVyeSwgSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoaW52b2tlUXVlcnkpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gYXdhaXQgdGhpcy5ub3JtYWxpemVBbmRBdHRhY2hNZXRhZGF0YShyZXEsIHJlcywgcGFyc2VkVXJsKTtcbiAgICAgICAgICAgICAgICBpZiAoZmluaXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUNhdGNoYWxsUmVuZGVyUmVxdWVzdChyZXEsIHJlcywgcGFyc2VkVXJsKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIiAmJiByZXEuaGVhZGVyc1tcIngtbWlkZGxld2FyZS1pbnZva2VcIl0pIHtcbiAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IGF3YWl0IHRoaXMubm9ybWFsaXplQW5kQXR0YWNoTWV0YWRhdGEocmVxLCByZXMsIHBhcnNlZFVybCk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgZmluaXNoZWQgPSBhd2FpdCB0aGlzLmhhbmRsZUNhdGNoYWxsTWlkZGxld2FyZVJlcXVlc3QocmVxLCByZXMsIHBhcnNlZFVybCk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgZXJyLnJlc3VsdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IG5ldyBSZXNwb25zZShudWxsLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ4LW1pZGRsZXdhcmUtbmV4dFwiOiBcIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZXJyLmJ1YmJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVGhpcyB3YXNuJ3QgYSByZXF1ZXN0IHZpYSB0aGUgbWF0Y2hlZCBwYXRoIG9yIHRoZSBpbnZva2UgcGF0aCwgc29cbiAgICAgICAgICAgIC8vIHByZXBhcmUgZm9yIGEgbGVnYWN5IHJ1biBieSByZW1vdmluZyB0aGUgYmFzZSBwYXRoLlxuICAgICAgICAgICAgLy8gZW5zdXJlIHdlIHN0cmlwIHRoZSBiYXNlUGF0aCB3aGVuIG5vdCB1c2luZyBhbiBpbnZva2UgaGVhZGVyXG4gICAgICAgICAgICBpZiAoIXVzZU1hdGNoZWRQYXRoSGVhZGVyICYmIHBhdGhuYW1lSW5mby5iYXNlUGF0aCkge1xuICAgICAgICAgICAgICAgIHBhcnNlZFVybC5wYXRobmFtZSA9IHJlbW92ZVBhdGhQcmVmaXgocGFyc2VkVXJsLnBhdGhuYW1lLCBwYXRobmFtZUluZm8uYmFzZVBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5ydW4ocmVxLCByZXMsIHBhcnNlZFVybCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vRmFsbGJhY2tFcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnIgJiYgdHlwZW9mIGVyciA9PT0gXCJvYmplY3RcIiAmJiBlcnIuY29kZSA9PT0gXCJFUlJfSU5WQUxJRF9VUkxcIiB8fCBlcnIgaW5zdGFuY2VvZiBEZWNvZGVFcnJvciB8fCBlcnIgaW5zdGFuY2VvZiBOb3JtYWxpemVFcnJvcikge1xuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAwO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlckVycm9yKG51bGwsIHJlcSwgcmVzLCBcIi9fZXJyb3JcIiwge30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbE1vZGUgfHwgdGhpcy5yZW5kZXJPcHRzLmRldiB8fCBlcnIuYnViYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sb2dFcnJvcihnZXRQcm9wZXJFcnJvcihlcnIpKTtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgICAgcmVzLmJvZHkoXCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIikuc2VuZCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgKiBAaW50ZXJuYWwgLSB0aGlzIG1ldGhvZCBpcyBpbnRlcm5hbCB0byBOZXh0LmpzIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgZGlyZWN0bHkgYnkgZW5kLXVzZXJzXG4gICAqLyBnZXRSZXF1ZXN0SGFuZGxlcldpdGhNZXRhZGF0YShtZXRhKSB7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmdldFJlcXVlc3RIYW5kbGVyKCk7XG4gICAgICAgIHJldHVybiAocmVxLCByZXMsIHBhcnNlZFVybCk9PntcbiAgICAgICAgICAgIHNldFJlcXVlc3RNZXRhKHJlcSwgbWV0YSk7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlcihyZXEsIHJlcywgcGFyc2VkVXJsKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0UmVxdWVzdEhhbmRsZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3QuYmluZCh0aGlzKTtcbiAgICB9XG4gICAgc2V0QXNzZXRQcmVmaXgocHJlZml4KSB7XG4gICAgICAgIHRoaXMucmVuZGVyT3B0cy5hc3NldFByZWZpeCA9IHByZWZpeCA/IHByZWZpeC5yZXBsYWNlKC9cXC8kLywgXCJcIikgOiBcIlwiO1xuICAgIH1cbiAgICAvKipcbiAgICogUnVucyBhc3luYyBpbml0aWFsaXphdGlvbiBvZiBzZXJ2ZXIuXG4gICAqIEl0IGlzIGlkZW1wb3RlbnQsIHdvbid0IGZpcmUgdW5kZXJseWluZyBpbml0aWFsaXphdGlvbiBtb3JlIHRoYW4gb25jZS5cbiAgICovIGFzeW5jIHByZXBhcmUoKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXBhcmVkKSByZXR1cm47XG4gICAgICAgIGlmICh0aGlzLnByZXBhcmVkUHJvbWlzZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5wcmVwYXJlZFByb21pc2UgPSB0aGlzLnByZXBhcmVJbXBsKCkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZWRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByZXBhcmVkUHJvbWlzZTtcbiAgICB9XG4gICAgYXN5bmMgcHJlcGFyZUltcGwoKSB7fVxuICAgIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgYXN5bmMgY2xvc2UoKSB7fVxuICAgIGdldEFwcFBhdGhSb3V0ZXMoKSB7XG4gICAgICAgIGNvbnN0IGFwcFBhdGhSb3V0ZXMgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5hcHBQYXRoc01hbmlmZXN0IHx8IHt9KS5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gbm9ybWFsaXplQXBwUGF0aChlbnRyeSk7XG4gICAgICAgICAgICBpZiAoIWFwcFBhdGhSb3V0ZXNbbm9ybWFsaXplZFBhdGhdKSB7XG4gICAgICAgICAgICAgICAgYXBwUGF0aFJvdXRlc1tub3JtYWxpemVkUGF0aF0gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFwcFBhdGhSb3V0ZXNbbm9ybWFsaXplZFBhdGhdLnB1c2goZW50cnkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFwcFBhdGhSb3V0ZXM7XG4gICAgfVxuICAgIGFzeW5jIHJ1bihyZXEsIHJlcywgcGFyc2VkVXJsKSB7XG4gICAgICAgIHJldHVybiBnZXRUcmFjZXIoKS50cmFjZShCYXNlU2VydmVyU3Bhbi5ydW4sIGFzeW5jICgpPT50aGlzLnJ1bkltcGwocmVxLCByZXMsIHBhcnNlZFVybCkpO1xuICAgIH1cbiAgICBhc3luYyBydW5JbXBsKHJlcSwgcmVzLCBwYXJzZWRVcmwpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVDYXRjaGFsbFJlbmRlclJlcXVlc3QocmVxLCByZXMsIHBhcnNlZFVybCk7XG4gICAgfVxuICAgIGFzeW5jIHBpcGUoZm4sIHBhcnRpYWxDb250ZXh0KSB7XG4gICAgICAgIHJldHVybiBnZXRUcmFjZXIoKS50cmFjZShCYXNlU2VydmVyU3Bhbi5waXBlLCBhc3luYyAoKT0+dGhpcy5waXBlSW1wbChmbiwgcGFydGlhbENvbnRleHQpKTtcbiAgICB9XG4gICAgYXN5bmMgcGlwZUltcGwoZm4sIHBhcnRpYWxDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGlzQm90UmVxdWVzdCA9IGlzQm90KHBhcnRpYWxDb250ZXh0LnJlcS5oZWFkZXJzW1widXNlci1hZ2VudFwiXSB8fCBcIlwiKTtcbiAgICAgICAgY29uc3QgY3R4ID0ge1xuICAgICAgICAgICAgLi4ucGFydGlhbENvbnRleHQsXG4gICAgICAgICAgICByZW5kZXJPcHRzOiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5yZW5kZXJPcHRzLFxuICAgICAgICAgICAgICAgIHN1cHBvcnRzRHluYW1pY0hUTUw6ICFpc0JvdFJlcXVlc3QsXG4gICAgICAgICAgICAgICAgaXNCb3Q6ICEhaXNCb3RSZXF1ZXN0XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBmbihjdHgpO1xuICAgICAgICBpZiAocGF5bG9hZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgcmVxLCByZXMgfSA9IGN0eDtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxTdGF0dXMgPSByZXMuc3RhdHVzQ29kZTtcbiAgICAgICAgY29uc3QgeyBib2R5LCB0eXBlIH0gPSBwYXlsb2FkO1xuICAgICAgICBsZXQgeyByZXZhbGlkYXRlIH0gPSBwYXlsb2FkO1xuICAgICAgICBpZiAoIXJlcy5zZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IGdlbmVyYXRlRXRhZ3MsIHBvd2VyZWRCeUhlYWRlciwgZGV2IH0gPSB0aGlzLnJlbmRlck9wdHM7XG4gICAgICAgICAgICAvLyBJbiBkZXYsIHdlIHNob3VsZCBub3QgY2FjaGUgcGFnZXMgZm9yIGFueSByZWFzb24uXG4gICAgICAgICAgICBpZiAoZGV2KSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNhY2hlLUNvbnRyb2xcIiwgXCJuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlXCIpO1xuICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNlbmRSZW5kZXJSZXN1bHQocmVxLCByZXMsIHtcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGJvZHksXG4gICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgIHBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gb3JpZ2luYWxTdGF0dXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0U3RhdGljSFRNTChmbiwgcGFydGlhbENvbnRleHQpIHtcbiAgICAgICAgY29uc3QgY3R4ID0ge1xuICAgICAgICAgICAgLi4ucGFydGlhbENvbnRleHQsXG4gICAgICAgICAgICByZW5kZXJPcHRzOiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5yZW5kZXJPcHRzLFxuICAgICAgICAgICAgICAgIHN1cHBvcnRzRHluYW1pY0hUTUw6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBmbihjdHgpO1xuICAgICAgICBpZiAocGF5bG9hZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBheWxvYWQuYm9keS50b1VuY2h1bmtlZFN0cmluZygpO1xuICAgIH1cbiAgICBhc3luYyByZW5kZXIocmVxLCByZXMsIHBhdGhuYW1lLCBxdWVyeSA9IHt9LCBwYXJzZWRVcmwsIGludGVybmFsUmVuZGVyID0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlcigpLnRyYWNlKEJhc2VTZXJ2ZXJTcGFuLnJlbmRlciwgYXN5bmMgKCk9PnRoaXMucmVuZGVySW1wbChyZXEsIHJlcywgcGF0aG5hbWUsIHF1ZXJ5LCBwYXJzZWRVcmwsIGludGVybmFsUmVuZGVyKSk7XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlckltcGwocmVxLCByZXMsIHBhdGhuYW1lLCBxdWVyeSA9IHt9LCBwYXJzZWRVcmwsIGludGVybmFsUmVuZGVyID0gZmFsc2UpIHtcbiAgICAgICAgdmFyIF9yZXFfdXJsO1xuICAgICAgICBpZiAoIXBhdGhuYW1lLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYENhbm5vdCByZW5kZXIgcGFnZSB3aXRoIHBhdGggXCIke3BhdGhuYW1lfVwiLCBkaWQgeW91IG1lYW4gXCIvJHtwYXRobmFtZX1cIj8uIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcmVuZGVyLW5vLXN0YXJ0aW5nLXNsYXNoYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVuZGVyT3B0cy5jdXN0b21TZXJ2ZXIgJiYgcGF0aG5hbWUgPT09IFwiL2luZGV4XCIgJiYgIWF3YWl0IHRoaXMuaGFzUGFnZShcIi9pbmRleFwiKSkge1xuICAgICAgICAgICAgLy8gbWFpbnRhaW4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGN1c3RvbSBzZXJ2ZXJcbiAgICAgICAgICAgIC8vIChzZWUgY3VzdG9tLXNlcnZlciBpbnRlZ3JhdGlvbiB0ZXN0cylcbiAgICAgICAgICAgIHBhdGhuYW1lID0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gd2UgYWxsb3cgY3VzdG9tIHNlcnZlcnMgdG8gY2FsbCByZW5kZXIgZm9yIGFsbCBVUkxzXG4gICAgICAgIC8vIHNvIGNoZWNrIGlmIHdlIG5lZWQgdG8gc2VydmUgYSBzdGF0aWMgX25leHQgZmlsZSBvciBub3QuXG4gICAgICAgIC8vIHdlIGRvbid0IG1vZGlmeSB0aGUgVVJMIGZvciBfbmV4dC9kYXRhIHJlcXVlc3QgYnV0IHN0aWxsXG4gICAgICAgIC8vIGNhbGwgcmVuZGVyIHNvIHdlIHNwZWNpYWwgY2FzZSB0aGlzIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcFxuICAgICAgICBpZiAoIWludGVybmFsUmVuZGVyICYmICF0aGlzLm1pbmltYWxNb2RlICYmICFxdWVyeS5fX25leHREYXRhUmVxICYmICgoKF9yZXFfdXJsID0gcmVxLnVybCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXFfdXJsLm1hdGNoKC9eXFwvX25leHRcXC8vKSkgfHwgdGhpcy5oYXNTdGF0aWNEaXIgJiYgcmVxLnVybC5tYXRjaCgvXlxcL3N0YXRpY1xcLy8pKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdChyZXEsIHJlcywgcGFyc2VkVXJsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNCbG9ja2VkUGFnZShwYXRobmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlcjQwNChyZXEsIHJlcywgcGFyc2VkVXJsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5waXBlKChjdHgpPT50aGlzLnJlbmRlclRvUmVzcG9uc2UoY3R4KSwge1xuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICBxdWVyeVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0U3RhdGljUGF0aHMoeyBwYXRobmFtZSB9KSB7XG4gICAgICAgIHZhciBfdGhpc19nZXRQcmVyZW5kZXJNYW5pZmVzdF9keW5hbWljUm91dGVzX3BhdGhuYW1lO1xuICAgICAgICAvLyBSZWFkIHdoZXRoZXIgb3Igbm90IGZhbGxiYWNrIHNob3VsZCBleGlzdCBmcm9tIHRoZSBtYW5pZmVzdC5cbiAgICAgICAgY29uc3QgZmFsbGJhY2tGaWVsZCA9IChfdGhpc19nZXRQcmVyZW5kZXJNYW5pZmVzdF9keW5hbWljUm91dGVzX3BhdGhuYW1lID0gdGhpcy5nZXRQcmVyZW5kZXJNYW5pZmVzdCgpLmR5bmFtaWNSb3V0ZXNbcGF0aG5hbWVdKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfZ2V0UHJlcmVuZGVyTWFuaWZlc3RfZHluYW1pY1JvdXRlc19wYXRobmFtZS5mYWxsYmFjaztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC8vIGBzdGF0aWNQYXRoc2AgaXMgaW50ZW50aW9uYWxseSBzZXQgdG8gYHVuZGVmaW5lZGAgYXMgaXQgc2hvdWxkJ3ZlXG4gICAgICAgICAgICAvLyBiZWVuIGNhdWdodCB3aGVuIGNoZWNraW5nIGRpc2sgZGF0YS5cbiAgICAgICAgICAgIHN0YXRpY1BhdGhzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBmYWxsYmFja01vZGU6IHR5cGVvZiBmYWxsYmFja0ZpZWxkID09PSBcInN0cmluZ1wiID8gXCJzdGF0aWNcIiA6IGZhbGxiYWNrRmllbGQgPT09IG51bGwgPyBcImJsb2NraW5nXCIgOiBmYWxsYmFja0ZpZWxkXG4gICAgICAgIH07XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50cyhyZXF1ZXN0Q29udGV4dCwgZmluZENvbXBvbmVudHNSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlcigpLnRyYWNlKEJhc2VTZXJ2ZXJTcGFuLnJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50cywgYXN5bmMgKCk9PnRoaXMucmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzSW1wbChyZXF1ZXN0Q29udGV4dCwgZmluZENvbXBvbmVudHNSZXN1bHQpKTtcbiAgICB9XG4gICAgc3RyaXBJbnRlcm5hbEhlYWRlcnMocmVxKSB7XG4gICAgICAgIC8vIFNraXAgc3RyaXBwaW5nIGludGVybmFsIGhlYWRlcnMgaW4gdGVzdCBtb2RlIHdoaWxlIHRoZSBoZWFkZXIgc3RyaXBwaW5nXG4gICAgICAgIC8vIGhhcyBiZWVuIGV4cGxpY2l0bHkgZGlzYWJsZWQuIFRoaXMgYWxsb3dzIHRlc3RzIHRvIHZlcmlmeSBpbnRlcm5hbFxuICAgICAgICAvLyByb3V0aW5nIGJlaGF2aW9yLlxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSAmJiBwcm9jZXNzLmVudi5fX05FWFRfTk9fU1RSSVBfSU5URVJOQUxfSEVBREVSUyA9PT0gXCIxXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBTdHJpcCB0aGUgaW50ZXJuYWwgaGVhZGVycyBmcm9tIGJvdGggdGhlIHJlcXVlc3QgYW5kIHRoZSBvcmlnaW5hbFxuICAgICAgICAvLyByZXF1ZXN0LlxuICAgICAgICBzdHJpcEludGVybmFsSGVhZGVycyhyZXEuaGVhZGVycyk7XG4gICAgICAgIGlmIChcIm9yaWdpbmFsUmVxdWVzdFwiIGluIHJlcSAmJiBcImhlYWRlcnNcIiBpbiByZXEub3JpZ2luYWxSZXF1ZXN0KSB7XG4gICAgICAgICAgICBzdHJpcEludGVybmFsSGVhZGVycyhyZXEub3JpZ2luYWxSZXF1ZXN0LmhlYWRlcnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50c0ltcGwoeyByZXEsIHJlcywgcGF0aG5hbWUsIHJlbmRlck9wdHM6IG9wdHMgfSwgeyBjb21wb25lbnRzLCBxdWVyeSB9KSB7XG4gICAgICAgIHZhciBfY29tcG9uZW50c19Db21wb25lbnQsIF90aGlzX25leHRDb25maWdfaTE4biwgX3RoaXNfbmV4dENvbmZpZ19pMThuMSwgX2NhY2hlRW50cnlfdmFsdWU7XG4gICAgICAgIGNvbnN0IGlzNDA0UGFnZSA9IC8vIEZvciBlZGdlIHJ1bnRpbWUgNDA0IHBhZ2UsIC9fbm90LWZvdW5kIG5lZWRzIHRvIGJlIHRyZWF0ZWQgYXMgNDA0IHBhZ2VcbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIiAmJiBwYXRobmFtZSA9PT0gXCIvX25vdC1mb3VuZFwiIHx8IHBhdGhuYW1lID09PSBcIi80MDRcIjtcbiAgICAgICAgLy8gU3RyaXAgdGhlIGludGVybmFsIGhlYWRlcnMuXG4gICAgICAgIHRoaXMuc3RyaXBJbnRlcm5hbEhlYWRlcnMocmVxKTtcbiAgICAgICAgY29uc3QgaXM1MDBQYWdlID0gcGF0aG5hbWUgPT09IFwiLzUwMFwiO1xuICAgICAgICBjb25zdCBpc0FwcFBhdGggPSBjb21wb25lbnRzLmlzQXBwUGF0aCA9PT0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaGFzU2VydmVyUHJvcHMgPSAhIWNvbXBvbmVudHMuZ2V0U2VydmVyU2lkZVByb3BzO1xuICAgICAgICBsZXQgaGFzU3RhdGljUGF0aHMgPSAhIWNvbXBvbmVudHMuZ2V0U3RhdGljUGF0aHM7XG4gICAgICAgIGNvbnN0IGlzU2VydmVyQWN0aW9uID0gZ2V0SXNTZXJ2ZXJBY3Rpb24ocmVxKTtcbiAgICAgICAgY29uc3QgaGFzR2V0SW5pdGlhbFByb3BzID0gISEoKF9jb21wb25lbnRzX0NvbXBvbmVudCA9IGNvbXBvbmVudHMuQ29tcG9uZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2NvbXBvbmVudHNfQ29tcG9uZW50LmdldEluaXRpYWxQcm9wcyk7XG4gICAgICAgIGxldCBpc1NTRyA9ICEhY29tcG9uZW50cy5nZXRTdGF0aWNQcm9wcztcbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgaVNTRyBjYWNoZSBrZXkuIFdlIHVzZSB0aGUgcmV3cm90ZVVybCBzaW5jZVxuICAgICAgICAvLyBwYWdlcyB3aXRoIGZhbGxiYWNrOiBmYWxzZSBhcmUgYWxsb3dlZCB0byBiZSByZXdyaXR0ZW4gdG9cbiAgICAgICAgLy8gYW5kIHdlIG5lZWQgdG8gbG9vayB1cCB0aGUgcGF0aCBieSB0aGUgcmV3cml0dGVuIHBhdGhcbiAgICAgICAgbGV0IHVybFBhdGhuYW1lID0gcGFyc2VVcmwocmVxLnVybCB8fCBcIlwiKS5wYXRobmFtZSB8fCBcIi9cIjtcbiAgICAgICAgbGV0IHJlc29sdmVkVXJsUGF0aG5hbWUgPSBnZXRSZXF1ZXN0TWV0YShyZXEsIFwicmV3cm90ZVVSTFwiKSB8fCB1cmxQYXRobmFtZTtcbiAgICAgICAgbGV0IHN0YXRpY1BhdGhzO1xuICAgICAgICBsZXQgZmFsbGJhY2tNb2RlO1xuICAgICAgICBsZXQgaGFzRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgaXNEeW5hbWljID0gaXNEeW5hbWljUm91dGUoY29tcG9uZW50cy5wYWdlKTtcbiAgICAgICAgY29uc3QgcHJlcmVuZGVyTWFuaWZlc3QgPSB0aGlzLmdldFByZXJlbmRlck1hbmlmZXN0KCk7XG4gICAgICAgIGlmIChpc0FwcFBhdGggJiYgaXNEeW5hbWljKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoc1Jlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0U3RhdGljUGF0aHMoe1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgICAgIHBhZ2U6IGNvbXBvbmVudHMucGFnZSxcbiAgICAgICAgICAgICAgICBpc0FwcFBhdGgsXG4gICAgICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnM6IHJlcS5oZWFkZXJzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHN0YXRpY1BhdGhzID0gcGF0aHNSZXN1bHQuc3RhdGljUGF0aHM7XG4gICAgICAgICAgICBmYWxsYmFja01vZGUgPSBwYXRoc1Jlc3VsdC5mYWxsYmFja01vZGU7XG4gICAgICAgICAgICBoYXNGYWxsYmFjayA9IHR5cGVvZiBmYWxsYmFja01vZGUgIT09IFwidW5kZWZpbmVkXCI7XG4gICAgICAgICAgICBpZiAodGhpcy5uZXh0Q29uZmlnLm91dHB1dCA9PT0gXCJleHBvcnRcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2UgPSBjb21wb25lbnRzLnBhZ2U7XG4gICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrTW9kZSAhPT0gXCJzdGF0aWNcIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhZ2UgXCIke3BhZ2V9XCIgaXMgbWlzc2luZyBleHBvcnRlZCBmdW5jdGlvbiBcImdlbmVyYXRlU3RhdGljUGFyYW1zKClcIiwgd2hpY2ggaXMgcmVxdWlyZWQgd2l0aCBcIm91dHB1dDogZXhwb3J0XCIgY29uZmlnLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZFdpdGhvdXRTbGFzaCA9IHJlbW92ZVRyYWlsaW5nU2xhc2gocmVzb2x2ZWRVcmxQYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKCEoc3RhdGljUGF0aHMgPT0gbnVsbCA/IHZvaWQgMCA6IHN0YXRpY1BhdGhzLmluY2x1ZGVzKHJlc29sdmVkV2l0aG91dFNsYXNoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYWdlIFwiJHtwYWdlfVwiIGlzIG1pc3NpbmcgcGFyYW0gXCIke3Jlc29sdmVkV2l0aG91dFNsYXNofVwiIGluIFwiZ2VuZXJhdGVTdGF0aWNQYXJhbXMoKVwiLCB3aGljaCBpcyByZXF1aXJlZCB3aXRoIFwib3V0cHV0OiBleHBvcnRcIiBjb25maWcuYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc0ZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaGFzU3RhdGljUGF0aHMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNGYWxsYmFjayB8fCAoc3RhdGljUGF0aHMgPT0gbnVsbCA/IHZvaWQgMCA6IHN0YXRpY1BhdGhzLmluY2x1ZGVzKHJlc29sdmVkVXJsUGF0aG5hbWUpKSB8fCAvLyB0aGlzIHNpZ25hbHMgcmV2YWxpZGF0aW9uIGluIGRlcGxveSBlbnZpcm9ubWVudHNcbiAgICAgICAgLy8gVE9ETzogbWFrZSB0aGlzIG1vcmUgZ2VuZXJpY1xuICAgICAgICByZXEuaGVhZGVyc1tcIngtbm93LXJvdXRlLW1hdGNoZXNcIl0pIHtcbiAgICAgICAgICAgIGlzU1NHID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5yZW5kZXJPcHRzLmRldikge1xuICAgICAgICAgICAgaXNTU0cgfHw9ICEhcHJlcmVuZGVyTWFuaWZlc3Qucm91dGVzW3BhdGhuYW1lID09PSBcIi9pbmRleFwiID8gXCIvXCIgOiBwYXRobmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgLy8gVG9nZ2xlIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMgYSBEYXRhIHJlcXVlc3RcbiAgICAgICAgbGV0IGlzRGF0YVJlcSA9ICEhKHF1ZXJ5Ll9fbmV4dERhdGFSZXEgfHwgcmVxLmhlYWRlcnNbXCJ4LW5leHRqcy1kYXRhXCJdICYmIHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWcpICYmIChpc1NTRyB8fCBoYXNTZXJ2ZXJQcm9wcyk7XG4gICAgICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3QgYmVpbmcgbWFkZSBpcyBmb3IgYW4gYXBwXG4gICAgICogcHJlZmV0Y2ggcmVxdWVzdC5cbiAgICAgKi8gY29uc3QgaXNQcmVmZXRjaFJTQ1JlcXVlc3QgPSAocmVxLmhlYWRlcnNbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSLnRvTG93ZXJDYXNlKCldID09PSBcIjFcIiB8fCBnZXRSZXF1ZXN0TWV0YShyZXEsIFwiaXNQcmVmZXRjaFJTQ1JlcXVlc3RcIikpID8/IGZhbHNlO1xuICAgICAgICAvLyB3aGVuIHdlIGFyZSBoYW5kbGluZyBhIG1pZGRsZXdhcmUgcHJlZmV0Y2ggYW5kIGl0IGRvZXNuJ3RcbiAgICAgICAgLy8gcmVzb2x2ZSB0byBhIHN0YXRpYyBkYXRhIHJvdXRlIHdlIGJhaWwgZWFybHkgdG8gYXZvaWRcbiAgICAgICAgLy8gdW5leHBlY3RlZCBTU1IgaW52b2NhdGlvbnNcbiAgICAgICAgaWYgKCFpc1NTRyAmJiByZXEuaGVhZGVyc1tcIngtbWlkZGxld2FyZS1wcmVmZXRjaFwiXSAmJiAhKGlzNDA0UGFnZSB8fCBwYXRobmFtZSA9PT0gXCIvX2Vycm9yXCIpKSB7XG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKFwieC1taWRkbGV3YXJlLXNraXBcIiwgXCIxXCIpO1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcImNhY2hlLWNvbnRyb2xcIiwgXCJwcml2YXRlLCBuby1jYWNoZSwgbm8tc3RvcmUsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlXCIpO1xuICAgICAgICAgICAgcmVzLmJvZHkoXCJ7fVwiKS5zZW5kKCk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgcXVlcnkuX19uZXh0RGF0YVJlcTtcbiAgICAgICAgLy8gbm9ybWFsaXplIHJlcS51cmwgZm9yIFNTRyBwYXRocyBhcyBpdCBpcyBub3QgZXhwb3NlZFxuICAgICAgICAvLyB0byBnZXRTdGF0aWNQcm9wcyBhbmQgdGhlIGFzUGF0aCBzaG91bGQgbm90IGV4cG9zZSAvX25leHQvZGF0YVxuICAgICAgICBpZiAoaXNTU0cgJiYgdGhpcy5taW5pbWFsTW9kZSAmJiByZXEuaGVhZGVyc1tcIngtbWF0Y2hlZC1wYXRoXCJdICYmIHJlcS51cmwuc3RhcnRzV2l0aChcIi9fbmV4dC9kYXRhXCIpKSB7XG4gICAgICAgICAgICByZXEudXJsID0gdGhpcy5zdHJpcE5leHREYXRhUGF0aChyZXEudXJsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISFyZXEuaGVhZGVyc1tcIngtbmV4dGpzLWRhdGFcIl0gJiYgKCFyZXMuc3RhdHVzQ29kZSB8fCByZXMuc3RhdHVzQ29kZSA9PT0gMjAwKSkge1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIngtbmV4dGpzLW1hdGNoZWQtcGF0aFwiLCBgJHtxdWVyeS5fX25leHRMb2NhbGUgPyBgLyR7cXVlcnkuX19uZXh0TG9jYWxlfWAgOiBcIlwifSR7cGF0aG5hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRG9uJ3QgZGVsZXRlIGhlYWRlcnNbUlNDXSB5ZXQsIGl0IHN0aWxsIG5lZWRzIHRvIGJlIHVzZWQgaW4gcmVuZGVyVG9IVE1MIGxhdGVyXG4gICAgICAgIGNvbnN0IGlzUlNDUmVxdWVzdCA9IChCb29sZWFuKHJlcS5oZWFkZXJzW1JTQ19IRUFERVIudG9Mb3dlckNhc2UoKV0pIHx8IGdldFJlcXVlc3RNZXRhKHJlcSwgXCJpc1JTQ1JlcXVlc3RcIikpID8/IGZhbHNlO1xuICAgICAgICAvLyBJZiB3ZSdyZSBpbiBtaW5pbWFsIG1vZGUsIHRoZW4gdHJ5IHRvIGdldCB0aGUgcG9zdHBvbmVkIGluZm9ybWF0aW9uIGZyb21cbiAgICAgICAgLy8gdGhlIHJlcXVlc3QgbWV0YWRhdGEuIElmIGF2YWlsYWJsZSwgdXNlIGl0IGZvciByZXN1bWluZyB0aGUgcG9zdHBvbmVkXG4gICAgICAgIC8vIHJlbmRlci5cbiAgICAgICAgY29uc3QgbWluaW1hbFBvc3Rwb25lZCA9IGdldFJlcXVlc3RNZXRhKHJlcSwgXCJwb3N0cG9uZWRcIik7XG4gICAgICAgIC8vIElmIFBQUiBpcyBlbmFibGVkLCBhbmQgdGhpcyBpcyBhIFJTQyByZXF1ZXN0IChidXQgbm90IGEgcHJlZmV0Y2gpLCB0aGVuXG4gICAgICAgIC8vIHdlIGNhbiB1c2UgdGhpcyBmYWN0IHRvIG9ubHkgZ2VuZXJhdGUgdGhlIGZsaWdodCBkYXRhIGZvciB0aGUgcmVxdWVzdFxuICAgICAgICAvLyBiZWNhdXNlIHdlIGNhbid0IGNhY2hlIHRoZSBIVE1MIChhcyBpdCdzIGFsc28gZHluYW1pYykuXG4gICAgICAgIGNvbnN0IGlzRHluYW1pY1JTQ1JlcXVlc3QgPSBvcHRzLmV4cGVyaW1lbnRhbC5wcHIgJiYgaXNSU0NSZXF1ZXN0ICYmICFpc1ByZWZldGNoUlNDUmVxdWVzdDtcbiAgICAgICAgLy8gRm9yIHBhZ2VzIHdlIG5lZWQgdG8gZW5zdXJlIHRoZSBjb3JyZWN0IFZhcnkgaGVhZGVyIGlzIHNldCB0b28sIHRvIGF2b2lkXG4gICAgICAgIC8vIGNhY2hpbmcgaXNzdWVzIHdoZW4gbmF2aWdhdGluZyBiZXR3ZWVuIHBhZ2VzIGFuZCBhcHBcbiAgICAgICAgaWYgKCFpc0FwcFBhdGggJiYgaXNSU0NSZXF1ZXN0KSB7XG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKFwidmFyeVwiLCBSU0NfVkFSWV9IRUFERVIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gZW5zdXJlIHRoZSBzdGF0dXMgY29kZSBpZiAvNDA0IGlzIHZpc2l0ZWQgZGlyZWN0bHlcbiAgICAgICAgaWYgKGlzNDA0UGFnZSAmJiAhaXNEYXRhUmVxICYmICFpc1JTQ1JlcXVlc3QpIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICB9XG4gICAgICAgIC8vIGVuc3VyZSBjb3JyZWN0IHN0YXR1cyBpcyBzZXQgd2hlbiB2aXNpdGluZyBhIHN0YXR1cyBwYWdlXG4gICAgICAgIC8vIGRpcmVjdGx5IGUuZy4gLzUwMFxuICAgICAgICBpZiAoU1RBVElDX1NUQVRVU19QQUdFUy5pbmNsdWRlcyhwYXRobmFtZSkpIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gcGFyc2VJbnQocGF0aG5hbWUuc2xpY2UoMSksIDEwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoLy8gU2VydmVyIGFjdGlvbnMgY2FuIHVzZSBub24tR0VUL0hFQUQgbWV0aG9kcy5cbiAgICAgICAgIWlzU2VydmVyQWN0aW9uICYmIC8vIFJlc3VtZSBjYW4gdXNlIG5vbi1HRVQvSEVBRCBtZXRob2RzLlxuICAgICAgICAhbWluaW1hbFBvc3Rwb25lZCAmJiAhaXM0MDRQYWdlICYmICFpczUwMFBhZ2UgJiYgcGF0aG5hbWUgIT09IFwiL19lcnJvclwiICYmIHJlcS5tZXRob2QgIT09IFwiSEVBRFwiICYmIHJlcS5tZXRob2QgIT09IFwiR0VUXCIgJiYgKHR5cGVvZiBjb21wb25lbnRzLkNvbXBvbmVudCA9PT0gXCJzdHJpbmdcIiB8fCBpc1NTRykpIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA1O1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIkFsbG93XCIsIFtcbiAgICAgICAgICAgICAgICBcIkdFVFwiLFxuICAgICAgICAgICAgICAgIFwiSEVBRFwiXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVuZGVyRXJyb3IobnVsbCwgcmVxLCByZXMsIHBhdGhuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIC8vIGhhbmRsZSBzdGF0aWMgcGFnZVxuICAgICAgICBpZiAodHlwZW9mIGNvbXBvbmVudHMuQ29tcG9uZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiaHRtbFwiLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86IFN0YXRpYyBwYWdlcyBzaG91bGQgYmUgc2VyaWFsaXplZCBhcyBSZW5kZXJSZXN1bHRcbiAgICAgICAgICAgICAgICBib2R5OiBSZW5kZXJSZXN1bHQuZnJvbVN0YXRpYyhjb21wb25lbnRzLkNvbXBvbmVudClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFxdWVyeS5hbXApIHtcbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeS5hbXA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdHMuc3VwcG9ydHNEeW5hbWljSFRNTCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdmFyIF9jb21wb25lbnRzX0RvY3VtZW50O1xuICAgICAgICAgICAgY29uc3QgaXNCb3RSZXF1ZXN0ID0gaXNCb3QocmVxLmhlYWRlcnNbXCJ1c2VyLWFnZW50XCJdIHx8IFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgaXNTdXBwb3J0ZWREb2N1bWVudCA9IHR5cGVvZiAoKF9jb21wb25lbnRzX0RvY3VtZW50ID0gY29tcG9uZW50cy5Eb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jb21wb25lbnRzX0RvY3VtZW50LmdldEluaXRpYWxQcm9wcykgIT09IFwiZnVuY3Rpb25cIiB8fCAvLyBUaGUgYnVpbHQtaW4gYERvY3VtZW50YCBjb21wb25lbnQgYWxzbyBzdXBwb3J0cyBkeW5hbWljIEhUTUwgZm9yIGNvbmN1cnJlbnQgbW9kZS5cbiAgICAgICAgICAgIE5FWFRfQlVJTFRJTl9ET0NVTUVOVCBpbiBjb21wb25lbnRzLkRvY3VtZW50O1xuICAgICAgICAgICAgLy8gRGlzYWJsZSBkeW5hbWljIEhUTUwgaW4gY2FzZXMgdGhhdCB3ZSBrbm93IGl0IHdvbid0IGJlIGdlbmVyYXRlZCxcbiAgICAgICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIGNvbnRpbnVlIGdlbmVyYXRpbmcgYSBjYWNoZSBrZXkgd2hlbiBwb3NzaWJsZS5cbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBzaG91bGQgdGhlIGZpcnN0IHJlbmRlciBmb3IgYSBkeW5hbWljIGFwcCBwYXRoXG4gICAgICAgICAgICAvLyBiZSBzdGF0aWMgc28gd2UgY2FuIGNvbGxlY3QgcmV2YWxpZGF0ZSBhbmQgcG9wdWxhdGUgdGhlXG4gICAgICAgICAgICAvLyBjYWNoZSBpZiB0aGVyZSBhcmUgbm8gZHluYW1pYyBkYXRhIHJlcXVpcmVtZW50c1xuICAgICAgICAgICAgb3B0cy5zdXBwb3J0c0R5bmFtaWNIVE1MID0gIWlzU1NHICYmICFpc0JvdFJlcXVlc3QgJiYgIXF1ZXJ5LmFtcCAmJiBpc1N1cHBvcnRlZERvY3VtZW50O1xuICAgICAgICAgICAgb3B0cy5pc0JvdCA9IGlzQm90UmVxdWVzdDtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbiBkZXZlbG9wbWVudCwgd2UgYWx3YXlzIHdhbnQgdG8gZ2VuZXJhdGUgZHluYW1pYyBIVE1MLlxuICAgICAgICBpZiAoIWlzRGF0YVJlcSAmJiBpc0FwcFBhdGggJiYgb3B0cy5kZXYgJiYgb3B0cy5zdXBwb3J0c0R5bmFtaWNIVE1MID09PSBmYWxzZSkge1xuICAgICAgICAgICAgb3B0cy5zdXBwb3J0c0R5bmFtaWNIVE1MID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWZhdWx0TG9jYWxlID0gaXNTU0cgPyAoX3RoaXNfbmV4dENvbmZpZ19pMThuID0gdGhpcy5uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19uZXh0Q29uZmlnX2kxOG4uZGVmYXVsdExvY2FsZSA6IHF1ZXJ5Ll9fbmV4dERlZmF1bHRMb2NhbGU7XG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IHF1ZXJ5Ll9fbmV4dExvY2FsZTtcbiAgICAgICAgY29uc3QgbG9jYWxlcyA9IChfdGhpc19uZXh0Q29uZmlnX2kxOG4xID0gdGhpcy5uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19uZXh0Q29uZmlnX2kxOG4xLmxvY2FsZXM7XG4gICAgICAgIGxldCBwcmV2aWV3RGF0YTtcbiAgICAgICAgbGV0IGlzUHJldmlld01vZGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGhhc1NlcnZlclByb3BzIHx8IGlzU1NHKSB7XG4gICAgICAgICAgICAvLyBGb3IgdGhlIGVkZ2UgcnVudGltZSwgd2UgZG9uJ3Qgc3VwcG9ydCBwcmV2aWV3IG1vZGUgaW4gU1NHLlxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gXCJlZGdlXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRyeUdldFByZXZpZXdEYXRhIH0gPSByZXF1aXJlKFwiLi9hcGktdXRpbHMvbm9kZS90cnktZ2V0LXByZXZpZXctZGF0YVwiKTtcbiAgICAgICAgICAgICAgICBwcmV2aWV3RGF0YSA9IHRyeUdldFByZXZpZXdEYXRhKHJlcSwgcmVzLCB0aGlzLnJlbmRlck9wdHMucHJldmlld1Byb3BzKTtcbiAgICAgICAgICAgICAgICBpc1ByZXZpZXdNb2RlID0gcHJldmlld0RhdGEgIT09IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpc0FwcFBhdGgpIHtcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJ2YXJ5XCIsIFJTQ19WQVJZX0hFQURFUik7XG4gICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyT3B0cy5kZXYgJiYgIWlzUHJldmlld01vZGUgJiYgaXNTU0cgJiYgaXNSU0NSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhbiBSU0MgcmVxdWVzdCBidXQgd2UgYXJlbid0IGluIG1pbmltYWwgbW9kZSwgdGhlbiB3ZSBtYXJrXG4gICAgICAgICAgICAgICAgLy8gdGhhdCB0aGlzIGlzIGEgZGF0YSByZXF1ZXN0IHNvIHRoYXQgd2UgY2FuIGdlbmVyYXRlIHRoZSBmbGlnaHQgZGF0YVxuICAgICAgICAgICAgICAgIC8vIG9ubHkuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1pbmltYWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzRGF0YVJlcSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBkeW5hbWljIFJTQyByZXF1ZXN0LCBlbnN1cmUgdGhhdCB3ZSBkb24ndCBwdXJnZSB0aGVcbiAgICAgICAgICAgICAgICAvLyBmbGlnaHQgaGVhZGVycyB0byBlbnN1cmUgdGhhdCB3ZSB3aWxsIG9ubHkgcHJvZHVjZSB0aGUgUlNDIHJlc3BvbnNlLlxuICAgICAgICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGluIG5vbi1lZGdlIGVudmlyb25tZW50cyAoYXMgZWRnZSBkb2Vzbid0XG4gICAgICAgICAgICAgICAgLy8gc3VwcG9ydCBzdGF0aWMgZ2VuZXJhdGlvbikuXG4gICAgICAgICAgICAgICAgaWYgKCFpc0R5bmFtaWNSU0NSZXF1ZXN0ICYmICghaXNFZGdlUnVudGltZShvcHRzLnJ1bnRpbWUpIHx8IHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmlwRmxpZ2h0SGVhZGVycyhyZXEuaGVhZGVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IGZhbHNlO1xuICAgICAgICBsZXQgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGlzU1NHKSB7XG4gICAgICAgICAgICAoeyBpc09uRGVtYW5kUmV2YWxpZGF0ZSwgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQgfSA9IGNoZWNrSXNPbkRlbWFuZFJldmFsaWRhdGUocmVxLCB0aGlzLnJlbmRlck9wdHMucHJldmlld1Byb3BzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzU1NHICYmIHRoaXMubWluaW1hbE1vZGUgJiYgcmVxLmhlYWRlcnNbXCJ4LW1hdGNoZWQtcGF0aFwiXSkge1xuICAgICAgICAgICAgLy8gdGhlIHVybCB2YWx1ZSBpcyBhbHJlYWR5IGNvcnJlY3Qgd2hlbiB0aGUgbWF0Y2hlZC1wYXRoIGhlYWRlciBpcyBzZXRcbiAgICAgICAgICAgIHJlc29sdmVkVXJsUGF0aG5hbWUgPSB1cmxQYXRobmFtZTtcbiAgICAgICAgfVxuICAgICAgICB1cmxQYXRobmFtZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2godXJsUGF0aG5hbWUpO1xuICAgICAgICByZXNvbHZlZFVybFBhdGhuYW1lID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChyZXNvbHZlZFVybFBhdGhuYW1lKTtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxlTm9ybWFsaXplcikge1xuICAgICAgICAgICAgcmVzb2x2ZWRVcmxQYXRobmFtZSA9IHRoaXMubG9jYWxlTm9ybWFsaXplci5ub3JtYWxpemUocmVzb2x2ZWRVcmxQYXRobmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFuZGxlUmVkaXJlY3QgPSAocGFnZURhdGEpPT57XG4gICAgICAgICAgICBjb25zdCByZWRpcmVjdCA9IHtcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVCxcbiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBwYWdlRGF0YS5wYWdlUHJvcHMuX19OX1JFRElSRUNUX1NUQVRVUyxcbiAgICAgICAgICAgICAgICBiYXNlUGF0aDogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVF9CQVNFX1BBVEhcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gZ2V0UmVkaXJlY3RTdGF0dXMocmVkaXJlY3QpO1xuICAgICAgICAgICAgY29uc3QgeyBiYXNlUGF0aCB9ID0gdGhpcy5uZXh0Q29uZmlnO1xuICAgICAgICAgICAgaWYgKGJhc2VQYXRoICYmIHJlZGlyZWN0LmJhc2VQYXRoICE9PSBmYWxzZSAmJiByZWRpcmVjdC5kZXN0aW5hdGlvbi5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgIHJlZGlyZWN0LmRlc3RpbmF0aW9uID0gYCR7YmFzZVBhdGh9JHtyZWRpcmVjdC5kZXN0aW5hdGlvbn1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlZGlyZWN0LmRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgcmVkaXJlY3QuZGVzdGluYXRpb24gPSBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMocmVkaXJlY3QuZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnJlZGlyZWN0KHJlZGlyZWN0LmRlc3RpbmF0aW9uLCBzdGF0dXNDb2RlKS5ib2R5KHJlZGlyZWN0LmRlc3RpbmF0aW9uKS5zZW5kKCk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIHJlbW92ZSAvX25leHQvZGF0YSBwcmVmaXggZnJvbSB1cmxQYXRobmFtZSBzbyBpdCBtYXRjaGVzXG4gICAgICAgIC8vIGZvciBkaXJlY3QgcGFnZSB2aXNpdCBhbmQgL19uZXh0L2RhdGEgdmlzaXRcbiAgICAgICAgaWYgKGlzRGF0YVJlcSkge1xuICAgICAgICAgICAgcmVzb2x2ZWRVcmxQYXRobmFtZSA9IHRoaXMuc3RyaXBOZXh0RGF0YVBhdGgocmVzb2x2ZWRVcmxQYXRobmFtZSk7XG4gICAgICAgICAgICB1cmxQYXRobmFtZSA9IHRoaXMuc3RyaXBOZXh0RGF0YVBhdGgodXJsUGF0aG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzc2dDYWNoZUtleSA9IG51bGw7XG4gICAgICAgIGlmICghaXNQcmV2aWV3TW9kZSAmJiBpc1NTRyAmJiAhb3B0cy5zdXBwb3J0c0R5bmFtaWNIVE1MICYmICFpc1NlcnZlckFjdGlvbiAmJiAhbWluaW1hbFBvc3Rwb25lZCAmJiAhaXNEeW5hbWljUlNDUmVxdWVzdCkge1xuICAgICAgICAgICAgc3NnQ2FjaGVLZXkgPSBgJHtsb2NhbGUgPyBgLyR7bG9jYWxlfWAgOiBcIlwifSR7KHBhdGhuYW1lID09PSBcIi9cIiB8fCByZXNvbHZlZFVybFBhdGhuYW1lID09PSBcIi9cIikgJiYgbG9jYWxlID8gXCJcIiA6IHJlc29sdmVkVXJsUGF0aG5hbWV9JHtxdWVyeS5hbXAgPyBcIi5hbXBcIiA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGlzNDA0UGFnZSB8fCBpczUwMFBhZ2UpICYmIGlzU1NHKSB7XG4gICAgICAgICAgICBzc2dDYWNoZUtleSA9IGAke2xvY2FsZSA/IGAvJHtsb2NhbGV9YCA6IFwiXCJ9JHtwYXRobmFtZX0ke3F1ZXJ5LmFtcCA/IFwiLmFtcFwiIDogXCJcIn1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzc2dDYWNoZUtleSkge1xuICAgICAgICAgICAgLy8gd2Ugb25seSBlbmNvZGUgcGF0aCBkZWxpbWl0ZXJzIGZvciBwYXRoIHNlZ21lbnRzIGZyb21cbiAgICAgICAgICAgIC8vIGdldFN0YXRpY1BhdGhzIHNvIHdlIG5lZWQgdG8gYXR0ZW1wdCBkZWNvZGluZyB0aGUgVVJMXG4gICAgICAgICAgICAvLyB0byBtYXRjaCBhZ2FpbnN0IGFuZCBvbmx5IGVzY2FwZSB0aGUgcGF0aCBkZWxpbWl0ZXJzXG4gICAgICAgICAgICAvLyB0aGlzIGFsbG93cyBub24tYXNjaWkgdmFsdWVzIHRvIGJlIGhhbmRsZWQgZS5nLiBKYXBhbmVzZSBjaGFyYWN0ZXJzXG4gICAgICAgICAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBhZGRpbmcgdGhpcyBoYW5kbGluZyBmb3Igbm9uLVNTRyBwYWdlcyBzb1xuICAgICAgICAgICAgLy8gbm9uLWFzY2lpIG5hbWVzIHdvcmsgdGhlcmUgYWxzb1xuICAgICAgICAgICAgc3NnQ2FjaGVLZXkgPSBzc2dDYWNoZUtleS5zcGxpdChcIi9cIikubWFwKChzZWcpPT57XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgc2VnID0gZXNjYXBlUGF0aERlbGltaXRlcnMoZGVjb2RlVVJJQ29tcG9uZW50KHNlZyksIHRydWUpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQW4gaW1wcm9wZXJseSBlbmNvZGVkIFVSTCB3YXMgcHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlY29kZUVycm9yKFwiZmFpbGVkIHRvIGRlY29kZSBwYXJhbVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlZztcbiAgICAgICAgICAgIH0pLmpvaW4oXCIvXCIpO1xuICAgICAgICAgICAgLy8gZW5zdXJlIC9pbmRleCBhbmQgLyBpcyBub3JtYWxpemVkIHRvIG9uZSBrZXlcbiAgICAgICAgICAgIHNzZ0NhY2hlS2V5ID0gc3NnQ2FjaGVLZXkgPT09IFwiL2luZGV4XCIgJiYgcGF0aG5hbWUgPT09IFwiL1wiID8gXCIvXCIgOiBzc2dDYWNoZUtleTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcHJvdG9jb2wgPSBcImh0dHBzOlwiO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkRnVsbFVybCA9IG5ldyBVUkwoZ2V0UmVxdWVzdE1ldGEocmVxLCBcImluaXRVUkxcIikgfHwgXCIvXCIsIFwiaHR0cDovL25cIik7XG4gICAgICAgICAgICBwcm90b2NvbCA9IHBhcnNlZEZ1bGxVcmwucHJvdG9jb2w7XG4gICAgICAgIH0gY2F0Y2ggIHt9XG4gICAgICAgIC8vIHVzZSBleGlzdGluZyBpbmNyZW1lbnRhbENhY2hlIGluc3RhbmNlIGlmIGF2YWlsYWJsZVxuICAgICAgICBjb25zdCBpbmNyZW1lbnRhbENhY2hlID0gZ2xvYmFsVGhpcy5fX2luY3JlbWVudGFsQ2FjaGUgfHwgYXdhaXQgdGhpcy5nZXRJbmNyZW1lbnRhbENhY2hlKHtcbiAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJzOiBPYmplY3QuYXNzaWduKHt9LCByZXEuaGVhZGVycyksXG4gICAgICAgICAgICByZXF1ZXN0UHJvdG9jb2w6IHByb3RvY29sLnN1YnN0cmluZygwLCBwcm90b2NvbC5sZW5ndGggLSAxKVxuICAgICAgICB9KTtcbiAgICAgICAgaW5jcmVtZW50YWxDYWNoZSA9PSBudWxsID8gdm9pZCAwIDogaW5jcmVtZW50YWxDYWNoZS5yZXNldFJlcXVlc3RDYWNoZSgpO1xuICAgICAgICBjb25zdCB7IHJvdXRlTW9kdWxlIH0gPSBjb21wb25lbnRzO1xuICAgICAgICBjb25zdCBkb1JlbmRlciA9IGFzeW5jICh7IHBvc3Rwb25lZCB9KT0+e1xuICAgICAgICAgICAgLy8gSW4gZGV2ZWxvcG1lbnQsIHdlIGFsd2F5cyB3YW50IHRvIGdlbmVyYXRlIGR5bmFtaWMgSFRNTC5cbiAgICAgICAgICAgIGNvbnN0IHN1cHBvcnRzRHluYW1pY0hUTUwgPSAvLyBJZiB0aGlzIGlzbid0IGEgZGF0YSByZXF1ZXN0IGFuZCB3ZSdyZSBub3QgaW4gZGV2ZWxvcG1lbnQsIHRoZW4gd2VcbiAgICAgICAgICAgIC8vIHN1cHBvcnQgZHluYW1pYyBIVE1MLlxuICAgICAgICAgICAgIWlzRGF0YVJlcSAmJiBvcHRzLmRldiA9PT0gdHJ1ZSB8fCAvLyBJZiB0aGlzIGlzIG5vdCBTU0cgb3IgZG9lcyBub3QgaGF2ZSBzdGF0aWMgcGF0aHMsIHRoZW4gaXQgc3VwcG9ydHNcbiAgICAgICAgICAgIC8vIGR5bmFtaWMgSFRNTC5cbiAgICAgICAgICAgICFpc1NTRyAmJiAhaGFzU3RhdGljUGF0aHMgfHwgLy8gSWYgdGhpcyByZXF1ZXN0IGhhcyBwcm92aWRlZCBwb3N0cG9uZWQgZGF0YSwgaXQgc3VwcG9ydHMgZHluYW1pY1xuICAgICAgICAgICAgLy8gSFRNTC5cbiAgICAgICAgICAgIHR5cGVvZiBwb3N0cG9uZWQgPT09IFwic3RyaW5nXCIgfHwgLy8gSWYgdGhpcyBpcyBhIGR5bmFtaWMgUlNDIHJlcXVlc3QsIHRoZW4gdGhpcyByZW5kZXIgc3VwcG9ydHMgZHluYW1pY1xuICAgICAgICAgICAgLy8gSFRNTCAoaXQncyBkeW5hbWljKS5cbiAgICAgICAgICAgIGlzRHluYW1pY1JTQ1JlcXVlc3Q7XG4gICAgICAgICAgICBjb25zdCBvcmlnUXVlcnkgPSBwYXJzZVVybChyZXEudXJsIHx8IFwiXCIsIHRydWUpLnF1ZXJ5O1xuICAgICAgICAgICAgLy8gY2xlYXIgYW55IGR5bmFtaWMgcm91dGUgcGFyYW1zIHNvIHRoZXkgYXJlbid0IGluXG4gICAgICAgICAgICAvLyB0aGUgcmVzb2x2ZWRVcmxcbiAgICAgICAgICAgIGlmIChvcHRzLnBhcmFtcykge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKG9wdHMucGFyYW1zKS5mb3JFYWNoKChrZXkpPT57XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBvcmlnUXVlcnlba2V5XTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGhhZFRyYWlsaW5nU2xhc2ggPSB1cmxQYXRobmFtZSAhPT0gXCIvXCIgJiYgdGhpcy5uZXh0Q29uZmlnLnRyYWlsaW5nU2xhc2g7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZFVybCA9IGZvcm1hdFVybCh7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWU6IGAke3Jlc29sdmVkVXJsUGF0aG5hbWV9JHtoYWRUcmFpbGluZ1NsYXNoID8gXCIvXCIgOiBcIlwifWAsXG4gICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRvIG9ubHkgYWRkIHF1ZXJ5IHZhbHVlcyBmcm9tIG9yaWdpbmFsIFVSTFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBvcmlnUXVlcnlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyT3B0cyA9IHtcbiAgICAgICAgICAgICAgICAuLi5jb21wb25lbnRzLFxuICAgICAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgICAgICAgICAgLi4uaXNBcHBQYXRoID8ge1xuICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRhbENhY2hlLFxuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgcmV2YWxpZGF0aW9uIHJlcXVlc3QgaWYgdGhlIHJlcXVlc3QgaXMgZm9yIGEgc3RhdGljXG4gICAgICAgICAgICAgICAgICAgIC8vIHBhZ2UgYW5kIGl0IGlzIG5vdCBiZWluZyByZXN1bWVkIGZyb20gYSBwb3N0cG9uZWQgcmVuZGVyIGFuZFxuICAgICAgICAgICAgICAgICAgICAvLyBpdCBpcyBub3QgYSBkeW5hbWljIFJTQyByZXF1ZXN0IHRoZW4gaXQgaXMgYSByZXZhbGlkYXRpb25cbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdC5cbiAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRlOiBpc1NTRyAmJiAhcG9zdHBvbmVkICYmICFpc0R5bmFtaWNSU0NSZXF1ZXN0LFxuICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFBhdGhuYW1lOiBjb21wb25lbnRzLkNvbXBvbmVudE1vZC5vcmlnaW5hbFBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJBY3Rpb25zOiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLnNlcnZlckFjdGlvbnNcbiAgICAgICAgICAgICAgICB9IDoge30sXG4gICAgICAgICAgICAgICAgaXNEYXRhUmVxLFxuICAgICAgICAgICAgICAgIHJlc29sdmVkVXJsLFxuICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGUsXG4gICAgICAgICAgICAgICAgLy8gRm9yIGdldFNlcnZlclNpZGVQcm9wcyBhbmQgZ2V0SW5pdGlhbFByb3BzIHdlIG5lZWQgdG8gZW5zdXJlIHdlIHVzZSB0aGUgb3JpZ2luYWwgVVJMXG4gICAgICAgICAgICAgICAgLy8gYW5kIG5vdCB0aGUgcmVzb2x2ZWQgVVJMIHRvIHByZXZlbnQgYSBoeWRyYXRpb24gbWlzbWF0Y2ggb25cbiAgICAgICAgICAgICAgICAvLyBhc1BhdGhcbiAgICAgICAgICAgICAgICByZXNvbHZlZEFzUGF0aDogaGFzU2VydmVyUHJvcHMgfHwgaGFzR2V0SW5pdGlhbFByb3BzID8gZm9ybWF0VXJsKHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgdXNlIHRoZSBvcmlnaW5hbCBVUkwgcGF0aG5hbWUgbGVzcyB0aGUgX25leHQvZGF0YSBwcmVmaXggaWZcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJlc2VudFxuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogYCR7dXJsUGF0aG5hbWV9JHtoYWRUcmFpbGluZ1NsYXNoID8gXCIvXCIgOiBcIlwifWAsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBvcmlnUXVlcnlcbiAgICAgICAgICAgICAgICB9KSA6IHJlc29sdmVkVXJsLFxuICAgICAgICAgICAgICAgIHN1cHBvcnRzRHluYW1pY0hUTUwsXG4gICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgaXNEcmFmdE1vZGU6IGlzUHJldmlld01vZGUsXG4gICAgICAgICAgICAgICAgaXNTZXJ2ZXJBY3Rpb24sXG4gICAgICAgICAgICAgICAgcG9zdHBvbmVkXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gTGVnYWN5IHJlbmRlciBtZXRob2RzIHdpbGwgcmV0dXJuIGEgcmVuZGVyIHJlc3VsdCB0aGF0IG5lZWRzIHRvIGJlXG4gICAgICAgICAgICAvLyBzZXJ2ZWQgYnkgdGhlIHNlcnZlci5cbiAgICAgICAgICAgIGxldCByZXN1bHQ7XG4gICAgICAgICAgICBpZiAocm91dGVNb2R1bGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNBcHBSb3V0ZVJvdXRlTW9kdWxlKHJvdXRlTW9kdWxlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBvcHRzLnBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXJlbmRlck1hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyT3B0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcCBSb3V0ZSdzIGNhbm5vdCBwb3N0cG9uZSwgc28gZG9uJ3QgZW5hYmxlIGl0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcHI6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFBhdGhuYW1lOiBjb21wb25lbnRzLkNvbXBvbmVudE1vZC5vcmlnaW5hbFBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzRHluYW1pY0hUTUwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50YWxDYWNoZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IGlzU1NHXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21CYXNlTmV4dFJlcXVlc3QocmVxLCBzaWduYWxGcm9tTm9kZVJlc3BvbnNlKHJlcy5vcmlnaW5hbFJlc3BvbnNlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJvdXRlTW9kdWxlLmhhbmRsZShyZXF1ZXN0LCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5mZXRjaE1ldHJpY3MgPSBjb250ZXh0LnJlbmRlck9wdHMuZmV0Y2hNZXRyaWNzO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FjaGVUYWdzID0gY29udGV4dC5yZW5kZXJPcHRzLmZldGNoVGFncztcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSByZXF1ZXN0IGlzIGZvciBhIHN0YXRpYyByZXNwb25zZSwgd2UgY2FuIGNhY2hlIGl0IHNvIGxvbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzIGl0J3Mgbm90IGVkZ2UuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTU0cgJiYgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfY29udGV4dF9yZW5kZXJPcHRzX3N0b3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCByZXNwb25zZS5ibG9iKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgaGVhZGVycyBmcm9tIHRoZSByZXNwb25zZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhyZXNwb25zZS5oZWFkZXJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVUYWdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbTkVYVF9DQUNIRV9UQUdTX0hFQURFUl0gPSBjYWNoZVRhZ3M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSAmJiBibG9iLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IGJsb2IudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2YWxpZGF0ZSA9ICgoX2NvbnRleHRfcmVuZGVyT3B0c19zdG9yZSA9IGNvbnRleHQucmVuZGVyT3B0cy5zdG9yZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jb250ZXh0X3JlbmRlck9wdHNfc3RvcmUucmV2YWxpZGF0ZSkgPz8gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBjYWNoZSBlbnRyeSBmb3IgdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhY2hlRW50cnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBcIlJPVVRFXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IEJ1ZmZlci5mcm9tKGF3YWl0IGJsb2IuYXJyYXlCdWZmZXIoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZUVudHJ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VuZCB0aGUgcmVzcG9uc2Ugbm93IHRoYXQgd2UgaGF2ZSBjb3BpZWQgaXQgaW50byB0aGUgY2FjaGUuXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZW5kUmVzcG9uc2UocmVxLCByZXMsIHJlc3BvbnNlLCBjb250ZXh0LnJlbmRlck9wdHMud2FpdFVudGlsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgZHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uLCB0aHJvdyB0aGUgZXJyb3IgYWdhaW4uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTU0cpIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgICAgIExvZy5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBzZW5kIGEgNTAwIHJlc3BvbnNlLlxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VuZFJlc3BvbnNlKHJlcSwgcmVzLCBoYW5kbGVJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNQYWdlc1JvdXRlTW9kdWxlKHJvdXRlTW9kdWxlKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBEdWUgdG8gdGhlIHdheSB3ZSBwYXNzIGRhdGEgYnkgbXV0YXRpbmcgYHJlbmRlck9wdHNgLCB3ZSBjYW4ndCBleHRlbmRcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG9iamVjdCBoZXJlIGJ1dCBvbmx5IHVwZGF0aW5nIGl0cyBgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RgIGFuZFxuICAgICAgICAgICAgICAgICAgICAvLyBgbmV4dEZvbnRNYW5pZmVzdGAgcHJvcGVydGllcy5cbiAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Jsb2IvZGY3Y2JkOTA0YzNiZDg1ZjM5OWQxY2U5MDY4MGMwZWNmOTJkMjc1Mi9wYWNrYWdlcy9uZXh0L3NlcnZlci9yZW5kZXIudHN4I0w5NDctTDk1MlxuICAgICAgICAgICAgICAgICAgICByZW5kZXJPcHRzLm5leHRGb250TWFuaWZlc3QgPSB0aGlzLm5leHRGb250TWFuaWZlc3Q7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdHMuY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QgPSBjb21wb25lbnRzLmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0O1xuICAgICAgICAgICAgICAgICAgICAvLyBDYWxsIHRoZSBidWlsdC1pbiByZW5kZXIgbWV0aG9kIG9uIHRoZSBtb2R1bGUuXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHJvdXRlTW9kdWxlLnJlbmRlcihyZXEub3JpZ2luYWxSZXF1ZXN0ID8/IHJlcSwgcmVzLm9yaWdpbmFsUmVzcG9uc2UgPz8gcmVzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogb3B0cy5wYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdHNcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0FwcFBhZ2VSb3V0ZU1vZHVsZShyb3V0ZU1vZHVsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlID0gY29tcG9uZW50cy5yb3V0ZU1vZHVsZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gRHVlIHRvIHRoZSB3YXkgd2UgcGFzcyBkYXRhIGJ5IG11dGF0aW5nIGByZW5kZXJPcHRzYCwgd2UgY2FuJ3QgZXh0ZW5kIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBvYmplY3QgaGVyZSBidXQgb25seSB1cGRhdGluZyBpdHMgYG5leHRGb250TWFuaWZlc3RgIGZpZWxkLlxuICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvYmxvYi9kZjdjYmQ5MDRjM2JkODVmMzk5ZDFjZTkwNjgwYzBlY2Y5MmQyNzUyL3BhY2thZ2VzL25leHQvc2VydmVyL3JlbmRlci50c3gjTDk0Ny1MOTUyXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdHMubmV4dEZvbnRNYW5pZmVzdCA9IHRoaXMubmV4dEZvbnRNYW5pZmVzdDtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgYnVpbHQtaW4gcmVuZGVyIG1ldGhvZCBvbiB0aGUgbW9kdWxlLlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBtb2R1bGUucmVuZGVyKHJlcS5vcmlnaW5hbFJlcXVlc3QgPz8gcmVxLCByZXMub3JpZ2luYWxSZXNwb25zZSA/PyByZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IGlzNDA0UGFnZSA/IFwiLzQwNFwiIDogcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG9wdHMucGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJPcHRzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogVW5rbm93biByb3V0ZSBtb2R1bGUgdHlwZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBtYXRjaCBhIHBhZ2UsIHdlIHNob3VsZCBmYWxsYmFjayB0byB1c2luZyB0aGUgbGVnYWN5XG4gICAgICAgICAgICAgICAgLy8gcmVuZGVyIG1ldGhvZC5cbiAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnJlbmRlckhUTUwocmVxLCByZXMsIHBhdGhuYW1lLCBxdWVyeSwgcmVuZGVyT3B0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IG1ldGFkYXRhIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICBjb25zdCB7IGhlYWRlcnMgPSB7fSwgLy8gQWRkIGFueSBmZXRjaCB0YWdzIHRoYXQgd2VyZSBvbiB0aGUgcGFnZSB0byB0aGUgcmVzcG9uc2UgaGVhZGVycy5cbiAgICAgICAgICAgIGZldGNoVGFnczogY2FjaGVUYWdzIH0gPSBtZXRhZGF0YTtcbiAgICAgICAgICAgIGlmIChjYWNoZVRhZ3MpIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzW05FWFRfQ0FDSEVfVEFHU19IRUFERVJdID0gY2FjaGVUYWdzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVxLmZldGNoTWV0cmljcyA9IG1ldGFkYXRhLmZldGNoTWV0cmljcztcbiAgICAgICAgICAgIC8vIHdlIGRvbid0IHRocm93IHN0YXRpYyB0byBkeW5hbWljIGVycm9ycyBpbiBkZXYgYXMgaXNTU0dcbiAgICAgICAgICAgIC8vIGlzIGEgYmVzdCBndWVzcyBpbiBkZXYgc2luY2Ugd2UgZG9uJ3QgaGF2ZSB0aGUgcHJlcmVuZGVyIHBhc3NcbiAgICAgICAgICAgIC8vIHRvIGtub3cgd2hldGhlciB0aGUgcGF0aCBpcyBhY3R1YWxseSBzdGF0aWMgb3Igbm90XG4gICAgICAgICAgICBpZiAoaXNBcHBQYXRoICYmIGlzU1NHICYmIG1ldGFkYXRhLnJldmFsaWRhdGUgPT09IDAgJiYgIXRoaXMucmVuZGVyT3B0cy5kZXYgJiYgIXJlbmRlck9wdHMuZXhwZXJpbWVudGFsLnBwcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRpY0JhaWxvdXRJbmZvID0gbWV0YWRhdGEuc3RhdGljQmFpbG91dEluZm87XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKGBQYWdlIGNoYW5nZWQgZnJvbSBzdGF0aWMgdG8gZHluYW1pYyBhdCBydW50aW1lICR7dXJsUGF0aG5hbWV9JHsoc3RhdGljQmFpbG91dEluZm8gPT0gbnVsbCA/IHZvaWQgMCA6IHN0YXRpY0JhaWxvdXRJbmZvLmRlc2NyaXB0aW9uKSA/IGAsIHJlYXNvbjogJHtzdGF0aWNCYWlsb3V0SW5mby5kZXNjcmlwdGlvbn1gIDogYGB9YCArIGBcXG5zZWUgbW9yZSBoZXJlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2FwcC1zdGF0aWMtdG8tZHluYW1pYy1lcnJvcmApO1xuICAgICAgICAgICAgICAgIGlmIChzdGF0aWNCYWlsb3V0SW5mbyA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljQmFpbG91dEluZm8uc3RhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSBzdGF0aWNCYWlsb3V0SW5mby5zdGFjaztcbiAgICAgICAgICAgICAgICAgICAgZXJyLnN0YWNrID0gZXJyLm1lc3NhZ2UgKyBzdGFjay5zdWJzdHJpbmcoc3RhY2suaW5kZXhPZihcIlxcblwiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEJhc2VkIG9uIHRoZSBtZXRhZGF0YSwgd2UgY2FuIGRldGVybWluZSB3aGF0IGtpbmQgb2YgY2FjaGUgcmVzdWx0IHdlXG4gICAgICAgICAgICAvLyBzaG91bGQgcmV0dXJuLlxuICAgICAgICAgICAgLy8gSGFuZGxlIGBpc05vdEZvdW5kYC5cbiAgICAgICAgICAgIGlmIChcImlzTm90Rm91bmRcIiBpbiBtZXRhZGF0YSAmJiBtZXRhZGF0YS5pc05vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG1ldGFkYXRhLnJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSGFuZGxlIGBpc1JlZGlyZWN0YC5cbiAgICAgICAgICAgIGlmIChtZXRhZGF0YS5pc1JlZGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IFwiUkVESVJFQ1RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBtZXRhZGF0YS5wYWdlRGF0YSA/PyBtZXRhZGF0YS5mbGlnaHREYXRhXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG1ldGFkYXRhLnJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSGFuZGxlIGBpc051bGxgLlxuICAgICAgICAgICAgaWYgKHJlc3VsdC5pc051bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIG5vdyBoYXZlIGEgdmFsaWQgSFRNTCByZXN1bHQgdGhhdCB3ZSBjYW4gcmV0dXJuIHRvIHRoZSB1c2VyLlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICBraW5kOiBcIlBBR0VcIixcbiAgICAgICAgICAgICAgICAgICAgaHRtbDogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YTogbWV0YWRhdGEucGFnZURhdGEgPz8gbWV0YWRhdGEuZmxpZ2h0RGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcG9zdHBvbmVkOiBtZXRhZGF0YS5wb3N0cG9uZWQsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogaXNBcHBQYXRoID8gcmVzLnN0YXR1c0NvZGUgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG1ldGFkYXRhLnJldmFsaWRhdGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNhY2hlRW50cnkgPSBhd2FpdCB0aGlzLnJlc3BvbnNlQ2FjaGUuZ2V0KHNzZ0NhY2hlS2V5LCBhc3luYyAoaGFzUmVzb2x2ZWQsIHByZXZpb3VzQ2FjaGVFbnRyeSwgaXNSZXZhbGlkYXRpbmcpPT57XG4gICAgICAgICAgICBjb25zdCBpc1Byb2R1Y3Rpb24gPSAhdGhpcy5yZW5kZXJPcHRzLmRldjtcbiAgICAgICAgICAgIGNvbnN0IGRpZFJlc3BvbmQgPSBoYXNSZXNvbHZlZCB8fCByZXMuc2VudDtcbiAgICAgICAgICAgIGlmICghc3RhdGljUGF0aHMpIHtcbiAgICAgICAgICAgICAgICAoeyBzdGF0aWNQYXRocywgZmFsbGJhY2tNb2RlIH0gPSBoYXNTdGF0aWNQYXRocyA/IGF3YWl0IHRoaXMuZ2V0U3RhdGljUGF0aHMoe1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnM6IHJlcS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBpc0FwcFBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2U6IGNvbXBvbmVudHMucGFnZVxuICAgICAgICAgICAgICAgIH0pIDoge1xuICAgICAgICAgICAgICAgICAgICBzdGF0aWNQYXRoczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBmYWxsYmFja01vZGU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmFsbGJhY2tNb2RlID09PSBcInN0YXRpY1wiICYmIGlzQm90KHJlcS5oZWFkZXJzW1widXNlci1hZ2VudFwiXSB8fCBcIlwiKSkge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrTW9kZSA9IFwiYmxvY2tpbmdcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHNraXAgb24tZGVtYW5kIHJldmFsaWRhdGUgaWYgY2FjaGUgaXMgbm90IHByZXNlbnQgYW5kXG4gICAgICAgICAgICAvLyByZXZhbGlkYXRlLWlmLWdlbmVyYXRlZCBpcyBzZXRcbiAgICAgICAgICAgIGlmIChpc09uRGVtYW5kUmV2YWxpZGF0ZSAmJiByZXZhbGlkYXRlT25seUdlbmVyYXRlZCAmJiAhcHJldmlvdXNDYWNoZUVudHJ5ICYmICF0aGlzLm1pbmltYWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW5kZXI0MDQocmVxLCByZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKChwcmV2aW91c0NhY2hlRW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXZpb3VzQ2FjaGVFbnRyeS5pc1N0YWxlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBvbmx5IGFsbG93IG9uLWRlbWFuZCByZXZhbGlkYXRlIGZvciBmYWxsYmFjazogdHJ1ZS9ibG9ja2luZ1xuICAgICAgICAgICAgLy8gb3IgZm9yIHByZXJlbmRlcmVkIGZhbGxiYWNrOiBmYWxzZSBwYXRoc1xuICAgICAgICAgICAgaWYgKGlzT25EZW1hbmRSZXZhbGlkYXRlICYmIChmYWxsYmFja01vZGUgIT09IGZhbHNlIHx8IHByZXZpb3VzQ2FjaGVFbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja01vZGUgPSBcImJsb2NraW5nXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSB1c2UgYHNzZ0NhY2hlS2V5YCBoZXJlIGFzIGl0IGlzIG5vcm1hbGl6ZWQgdG8gbWF0Y2ggdGhlIGVuY29kaW5nXG4gICAgICAgICAgICAvLyBmcm9tIGdldFN0YXRpY1BhdGhzIGFsb25nIHdpdGggaW5jbHVkaW5nIHRoZSBsb2NhbGUuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gV2UgdXNlIHRoZSBgcmVzb2x2ZWRVcmxQYXRobmFtZWAgZm9yIHRoZSBkZXZlbG9wbWVudCBjYXNlIHdoZW4gdGhpc1xuICAgICAgICAgICAgLy8gaXMgYW4gYXBwIHBhdGggc2luY2UgaXQgZG9lc24ndCBpbmNsdWRlIGxvY2FsZSBpbmZvcm1hdGlvbi5cbiAgICAgICAgICAgIGxldCBzdGF0aWNQYXRoS2V5ID0gc3NnQ2FjaGVLZXkgPz8gKG9wdHMuZGV2ICYmIGlzQXBwUGF0aCA/IHJlc29sdmVkVXJsUGF0aG5hbWUgOiBudWxsKTtcbiAgICAgICAgICAgIGlmIChzdGF0aWNQYXRoS2V5ICYmIHF1ZXJ5LmFtcCkge1xuICAgICAgICAgICAgICAgIHN0YXRpY1BhdGhLZXkgPSBzdGF0aWNQYXRoS2V5LnJlcGxhY2UoL1xcLmFtcCQvLCBcIlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzUGFnZUluY2x1ZGVkSW5TdGF0aWNQYXRocyA9IHN0YXRpY1BhdGhLZXkgJiYgKHN0YXRpY1BhdGhzID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNQYXRocy5pbmNsdWRlcyhzdGF0aWNQYXRoS2V5KSk7XG4gICAgICAgICAgICBpZiAodGhpcy5uZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5pc0V4cGVyaW1lbnRhbENvbXBpbGUpIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja01vZGUgPSBcImJsb2NraW5nXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGRpZCBub3QgcmVzcG9uZCBmcm9tIGNhY2hlLCB3ZSBuZWVkIHRvIGNob29zZSB0byBibG9jayBvblxuICAgICAgICAgICAgLy8gcmVuZGVyaW5nIG9yIHJldHVybiBhIHNrZWxldG9uLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIC0gRGF0YSByZXF1ZXN0cyBhbHdheXMgYmxvY2suXG4gICAgICAgICAgICAvLyAtIEJsb2NraW5nIG1vZGUgZmFsbGJhY2sgYWx3YXlzIGJsb2Nrcy5cbiAgICAgICAgICAgIC8vIC0gUHJldmlldyBtb2RlIHRvZ2dsZXMgYWxsIHBhZ2VzIHRvIGJlIHJlc29sdmVkIGluIGEgYmxvY2tpbmcgbWFubmVyLlxuICAgICAgICAgICAgLy8gLSBOb24tZHluYW1pYyBwYWdlcyBzaG91bGQgYmxvY2sgKHRob3VnaCB0aGlzIGlzIGFuIGltcG9zc2libGVcbiAgICAgICAgICAgIC8vICAgY2FzZSBpbiBwcm9kdWN0aW9uKS5cbiAgICAgICAgICAgIC8vIC0gRHluYW1pYyBwYWdlcyBzaG91bGQgcmV0dXJuIHRoZWlyIHNrZWxldG9uIGlmIG5vdCBkZWZpbmVkIGluXG4gICAgICAgICAgICAvLyAgIGdldFN0YXRpY1BhdGhzLCB0aGVuIGZpbmlzaCB0aGUgZGF0YSByZXF1ZXN0IG9uIHRoZSBjbGllbnQtc2lkZS5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIiAmJiAhdGhpcy5taW5pbWFsTW9kZSAmJiBmYWxsYmFja01vZGUgIT09IFwiYmxvY2tpbmdcIiAmJiBzdGF0aWNQYXRoS2V5ICYmICFkaWRSZXNwb25kICYmICFpc1ByZXZpZXdNb2RlICYmIGlzRHluYW1pYyAmJiAoaXNQcm9kdWN0aW9uIHx8ICFzdGF0aWNQYXRocyB8fCAhaXNQYWdlSW5jbHVkZWRJblN0YXRpY1BhdGhzKSkge1xuICAgICAgICAgICAgICAgIGlmICgvLyBJbiBkZXZlbG9wbWVudCwgZmFsbCB0aHJvdWdoIHRvIHJlbmRlciB0byBoYW5kbGUgbWlzc2luZ1xuICAgICAgICAgICAgICAgIC8vIGdldFN0YXRpY1BhdGhzLlxuICAgICAgICAgICAgICAgIChpc1Byb2R1Y3Rpb24gfHwgc3RhdGljUGF0aHMgJiYgKHN0YXRpY1BhdGhzID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNQYXRocy5sZW5ndGgpID4gMCkgJiYgLy8gV2hlbiBmYWxsYmFjayBpc24ndCBwcmVzZW50LCBhYm9ydCB0aGlzIHJlbmRlciBzbyB3ZSA0MDRcbiAgICAgICAgICAgICAgICBmYWxsYmFja01vZGUgIT09IFwic3RhdGljXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vRmFsbGJhY2tFcnJvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWlzRGF0YVJlcSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBQcm9kdWN0aW9uIGFscmVhZHkgZW1pdHRlZCB0aGUgZmFsbGJhY2sgYXMgc3RhdGljIEhUTUwuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1Byb2R1Y3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aGlzLmdldEZhbGxiYWNrKGxvY2FsZSA/IGAvJHtsb2NhbGV9JHtwYXRobmFtZX1gIDogcGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBcIlBBR0VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMoaHRtbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rwb25lZDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkuX19uZXh0RmFsbGJhY2sgPSBcInRydWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHBhc3MgYHVuZGVmaW5lZGAgYXMgdGhlcmUgY2Fubm90IGJlIGEgcG9zdHBvbmVkIHN0YXRlIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXZlbG9wbWVudC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRvUmVuZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZWQ6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBjYWNoaW5nIHRoaXMgcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0LnJldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZG9SZW5kZXIoe1xuICAgICAgICAgICAgICAgIC8vIE9ubHkgcmVxdWVzdHMgdGhhdCBhcmVuJ3QgcmV2YWxpZGF0aW5nIGNhbiBiZSByZXN1bWVkLiBJZiB3ZSBoYXZlIHRoZVxuICAgICAgICAgICAgICAgIC8vIG1pbmltYWwgcG9zdHBvbmVkIGRhdGEsIHRoZW4gd2Ugc2hvdWxkIHJlc3VtZSB0aGUgcmVuZGVyIHdpdGggaXQuXG4gICAgICAgICAgICAgICAgcG9zdHBvbmVkOiAhaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgIWlzUmV2YWxpZGF0aW5nICYmIG1pbmltYWxQb3N0cG9uZWQgPyBtaW5pbWFsUG9zdHBvbmVkIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiByZXN1bHQucmV2YWxpZGF0ZSAhPT0gdW5kZWZpbmVkID8gcmVzdWx0LnJldmFsaWRhdGUgOiAvKiBkZWZhdWx0IHRvIG1pbmltdW0gcmV2YWxpZGF0ZSAodGhpcyBzaG91bGQgYmUgYW4gaW52YXJpYW50KSAqLyAxXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICByb3V0ZUtpbmQ6IHJvdXRlTW9kdWxlID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZU1vZHVsZS5kZWZpbml0aW9uLmtpbmQsXG4gICAgICAgICAgICBpbmNyZW1lbnRhbENhY2hlLFxuICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICBpc1ByZWZldGNoOiByZXEuaGVhZGVycy5wdXJwb3NlID09PSBcInByZWZldGNoXCJcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghY2FjaGVFbnRyeSkge1xuICAgICAgICAgICAgaWYgKHNzZ0NhY2hlS2V5ICYmICEoaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQpKSB7XG4gICAgICAgICAgICAgICAgLy8gQSBjYWNoZSBlbnRyeSBtaWdodCBub3QgYmUgZ2VuZXJhdGVkIGlmIGEgcmVzcG9uc2UgaXMgd3JpdHRlblxuICAgICAgICAgICAgICAgIC8vIGluIGBnZXRJbml0aWFsUHJvcHNgIG9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLCBidXQgdGhvc2Ugc2hvdWxkbid0XG4gICAgICAgICAgICAgICAgLy8gaGF2ZSBhIGNhY2hlIGtleS4gSWYgd2UgZG8gaGF2ZSBhIGNhY2hlIGtleSBidXQgd2UgZG9uJ3QgZW5kIHVwXG4gICAgICAgICAgICAgICAgLy8gd2l0aCBhIGNhY2hlIGVudHJ5LCB0aGVuIGVpdGhlciBOZXh0LmpzIG9yIHRoZSBhcHBsaWNhdGlvbiBoYXMgYVxuICAgICAgICAgICAgICAgIC8vIGJ1ZyB0aGF0IG5lZWRzIGZpeGluZy5cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhcmlhbnQ6IGNhY2hlIGVudHJ5IHJlcXVpcmVkIGJ1dCBub3QgZ2VuZXJhdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlkUG9zdHBvbmUgPSAoKF9jYWNoZUVudHJ5X3ZhbHVlID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlLmtpbmQpID09PSBcIlBBR0VcIiAmJiAhIWNhY2hlRW50cnkudmFsdWUucG9zdHBvbmVkO1xuICAgICAgICBpZiAoaXNTU0cgJiYgIXRoaXMubWluaW1hbE1vZGUgJiYgLy8gV2UgZG9uJ3Qgd2FudCB0byBzZW5kIGEgY2FjaGUgaGVhZGVyIGZvciByZXF1ZXN0cyB0aGF0IGNvbnRhaW4gZHluYW1pY1xuICAgICAgICAvLyBkYXRhLiBJZiB0aGlzIGlzIGEgRHluYW1pYyBSU0MgcmVxdWVzdCBvciB3YXNuJ3QgYSBQcmVmZXRjaCBSU0NcbiAgICAgICAgLy8gcmVxdWVzdCwgdGhlbiB3ZSBzaG91bGQgc2V0IHRoZSBjYWNoZSBoZWFkZXIuXG4gICAgICAgICFpc0R5bmFtaWNSU0NSZXF1ZXN0ICYmICghZGlkUG9zdHBvbmUgfHwgaXNQcmVmZXRjaFJTQ1JlcXVlc3QpKSB7XG4gICAgICAgICAgICAvLyBzZXQgeC1uZXh0anMtY2FjaGUgaGVhZGVyIHRvIG1hdGNoIHRoZSBoZWFkZXJcbiAgICAgICAgICAgIC8vIHdlIHNldCBmb3IgdGhlIGltYWdlLW9wdGltaXplclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIngtbmV4dGpzLWNhY2hlXCIsIGlzT25EZW1hbmRSZXZhbGlkYXRlID8gXCJSRVZBTElEQVRFRFwiIDogY2FjaGVFbnRyeS5pc01pc3MgPyBcIk1JU1NcIiA6IGNhY2hlRW50cnkuaXNTdGFsZSA/IFwiU1RBTEVcIiA6IFwiSElUXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgdmFsdWU6IGNhY2hlZERhdGEgfSA9IGNhY2hlRW50cnk7XG4gICAgICAgIC8vIElmIHRoZSBjYWNoZSB2YWx1ZSBpcyBhbiBpbWFnZSwgd2Ugc2hvdWxkIGVycm9yIGVhcmx5LlxuICAgICAgICBpZiAoKGNhY2hlZERhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGNhY2hlZERhdGEua2luZCkgPT09IFwiSU1BR0VcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YXJpYW50IFNTRyBzaG91bGQgbm90IHJldHVybiBhbiBpbWFnZSBjYWNoZSB2YWx1ZVwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDb2VyY2UgdGhlIHJldmFsaWRhdGUgcGFyYW1ldGVyIGZyb20gdGhlIHJlbmRlci5cbiAgICAgICAgbGV0IHJldmFsaWRhdGU7XG4gICAgICAgIC8vIElmIHRoaXMgaXMgYSByZXN1bWUgcmVxdWVzdCBpbiBtaW5pbWFsIG1vZGUgaXQgaXMgc3RyZWFtZWQgd2l0aCBkeW5hbWljXG4gICAgICAgIC8vIGNvbnRlbnQgYW5kIHNob3VsZCBub3QgYmUgY2FjaGVkLlxuICAgICAgICBpZiAobWluaW1hbFBvc3Rwb25lZCkge1xuICAgICAgICAgICAgcmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5taW5pbWFsTW9kZSAmJiBpc1JTQ1JlcXVlc3QgJiYgIWlzUHJlZmV0Y2hSU0NSZXF1ZXN0ICYmIG9wdHMuZXhwZXJpbWVudGFsLnBwcikge1xuICAgICAgICAgICAgcmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNhY2hlRW50cnkucmV2YWxpZGF0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiAoIXRoaXMucmVuZGVyT3B0cy5kZXYgfHwgaGFzU2VydmVyUHJvcHMgJiYgIWlzRGF0YVJlcSkpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBwcmV2aWV3IG1vZGUgcmVxdWVzdCwgd2Ugc2hvdWxkbid0IGNhY2hlIGl0LiBXZSBhbHNvIGRvbid0XG4gICAgICAgICAgICAvLyBjYWNoZSA0MDQgcGFnZXMuXG4gICAgICAgICAgICBpZiAoaXNQcmV2aWV3TW9kZSB8fCBpczQwNFBhZ2UgJiYgIWlzRGF0YVJlcSkge1xuICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaXNTU0cpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlcy5nZXRIZWFkZXIoXCJDYWNoZS1Db250cm9sXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNhY2hlRW50cnkucmV2YWxpZGF0ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIGlmIChjYWNoZUVudHJ5LnJldmFsaWRhdGUgPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YXJpYW50OiBpbnZhbGlkIENhY2hlLUNvbnRyb2wgZHVyYXRpb24gcHJvdmlkZWQ6ICR7Y2FjaGVFbnRyeS5yZXZhbGlkYXRlfSA8IDFgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV2YWxpZGF0ZSA9IGNhY2hlRW50cnkucmV2YWxpZGF0ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FjaGVFbnRyeS5yZXZhbGlkYXRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSBDQUNIRV9PTkVfWUVBUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYWNoZUVudHJ5LnJldmFsaWRhdGUgPSByZXZhbGlkYXRlO1xuICAgICAgICAvLyBJZiB0aGVyZSdzIGEgY2FsbGJhY2sgZm9yIGBvbkNhY2hlRW50cnlgLCBjYWxsIGl0IHdpdGggdGhlIGNhY2hlIGVudHJ5XG4gICAgICAgIC8vIGFuZCB0aGUgcmV2YWxpZGF0ZSBvcHRpb25zLlxuICAgICAgICBjb25zdCBvbkNhY2hlRW50cnkgPSBnZXRSZXF1ZXN0TWV0YShyZXEsIFwib25DYWNoZUVudHJ5XCIpO1xuICAgICAgICBpZiAob25DYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBmaW5pc2hlZCA9IGF3YWl0IG9uQ2FjaGVFbnRyeShjYWNoZUVudHJ5LCB7XG4gICAgICAgICAgICAgICAgdXJsOiBnZXRSZXF1ZXN0TWV0YShyZXEsIFwiaW5pdFVSTFwiKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZmluaXNoZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBtYXliZSB3ZSBoYXZlIHRvIGVuZCB0aGUgcmVxdWVzdD9cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNhY2hlZERhdGEpIHtcbiAgICAgICAgICAgIGlmIChjYWNoZUVudHJ5LnJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ2FjaGUtQ29udHJvbFwiLCBmb3JtYXRSZXZhbGlkYXRlKGNhY2hlRW50cnkucmV2YWxpZGF0ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzRGF0YVJlcSkge1xuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICAgIHJlcy5ib2R5KCd7XCJub3RGb3VuZFwiOnRydWV9Jykuc2VuZCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyT3B0cy5kZXYpIHtcbiAgICAgICAgICAgICAgICBxdWVyeS5fX25leHROb3RGb3VuZFNyY1BhZ2UgPSBwYXRobmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVuZGVyNDA0KHJlcSwgcmVzLCB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgICAgIH0sIGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKGNhY2hlZERhdGEua2luZCA9PT0gXCJSRURJUkVDVFwiKSB7XG4gICAgICAgICAgICBpZiAoY2FjaGVFbnRyeS5yZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNhY2hlLUNvbnRyb2xcIiwgZm9ybWF0UmV2YWxpZGF0ZShjYWNoZUVudHJ5LnJldmFsaWRhdGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0RhdGFSZXEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImpzb25cIixcbiAgICAgICAgICAgICAgICAgICAgYm9keTogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMoLy8gQFRPRE86IEhhbmRsZSBmbGlnaHQgZGF0YS5cbiAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoY2FjaGVkRGF0YS5wcm9wcykpLFxuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBjYWNoZUVudHJ5LnJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVSZWRpcmVjdChjYWNoZWREYXRhLnByb3BzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjYWNoZWREYXRhLmtpbmQgPT09IFwiUk9VVEVcIikge1xuICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgICAgICAgICAgICAuLi5jYWNoZWREYXRhLmhlYWRlcnNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoISh0aGlzLm1pbmltYWxNb2RlICYmIGlzU1NHKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBoZWFkZXJzW05FWFRfQ0FDSEVfVEFHU19IRUFERVJdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgc2VuZFJlc3BvbnNlKHJlcSwgcmVzLCBuZXcgUmVzcG9uc2UoY2FjaGVkRGF0YS5ib2R5LCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKGhlYWRlcnMpLFxuICAgICAgICAgICAgICAgIHN0YXR1czogY2FjaGVkRGF0YS5zdGF0dXMgfHwgMjAwXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FwcFBhdGgpIHtcbiAgICAgICAgICAgIHZhciBfY2FjaGVkRGF0YV9oZWFkZXJzO1xuICAgICAgICAgICAgLy8gSWYgdGhlIHJlcXVlc3QgaGFzIGEgcG9zdHBvbmVkIHN0YXRlIGFuZCBpdCdzIGEgcmVzdW1lIHJlcXVlc3Qgd2VcbiAgICAgICAgICAgIC8vIHNob3VsZCBlcnJvci5cbiAgICAgICAgICAgIGlmIChjYWNoZWREYXRhLnBvc3Rwb25lZCAmJiBtaW5pbWFsUG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiBwb3N0cG9uZWQgc3RhdGUgc2hvdWxkIG5vdCBiZSBwcmVzZW50IG9uIGEgcmVzdW1lIHJlcXVlc3RcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FjaGVkRGF0YS5oZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2FjaGVkRGF0YS5oZWFkZXJzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWluaW1hbE1vZGUgfHwgIWlzU1NHKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBoZWFkZXJzW05FWFRfQ0FDSEVfVEFHU19IRUFERVJdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVycykpe1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFsdWUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIoa2V5LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kSGVhZGVyKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbE1vZGUgJiYgaXNTU0cgJiYgKChfY2FjaGVkRGF0YV9oZWFkZXJzID0gY2FjaGVkRGF0YS5oZWFkZXJzKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlZERhdGFfaGVhZGVyc1tORVhUX0NBQ0hFX1RBR1NfSEVBREVSXSkpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKE5FWFRfQ0FDSEVfVEFHU19IRUFERVIsIGNhY2hlZERhdGEuaGVhZGVyc1tORVhUX0NBQ0hFX1RBR1NfSEVBREVSXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FjaGVkRGF0YS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IGNhY2hlZERhdGEuc3RhdHVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTWFyayB0aGF0IHRoZSByZXF1ZXN0IGRpZCBwb3N0cG9uZSBpZiB0aGlzIGlzIGEgZGF0YSByZXF1ZXN0LlxuICAgICAgICAgICAgaWYgKGNhY2hlZERhdGEucG9zdHBvbmVkICYmIGlzUlNDUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSLCBcIjFcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNEYXRhUmVxKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIGR5bmFtaWMgUlNDIHJlcXVlc3QsIHRoZW4gc3RyZWFtIHRoZSByZXNwb25zZS5cbiAgICAgICAgICAgICAgICBpZiAoaXNEeW5hbWljUlNDUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkRGF0YS5wYWdlRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiBFeHBlY3RlZCBwYWdlRGF0YSB0byBiZSB1bmRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlZERhdGEucG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IEV4cGVjdGVkIHBvc3Rwb25lZCB0byBiZSB1bmRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicnNjXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBjYWNoZWREYXRhLmh0bWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBEeW5hbWljIFJTQyByZXNwb25zZXMgY2Fubm90IGJlIGNhY2hlZCwgZXZlbiBpZiB0aGV5J3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25maWd1cmVkIHdpdGggYGZvcmNlLXN0YXRpY2AgYmVjYXVzZSB3ZSBoYXZlIG5vIHdheSBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiBgZm9yY2Utc3RhdGljYCBhbmQgcGFnZXMgdGhhdCBoYXZlIG5vXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwb3N0cG9uZWQgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBkaXN0aW5ndWlzaCBgZm9yY2Utc3RhdGljYCBmcm9tIHBhZ2VzIHdpdGggbm8gcG9zdHBvbmVkIHN0YXRlIChzdGF0aWMpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkRGF0YS5wYWdlRGF0YSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFyaWFudDogZXhwZWN0ZWQgcGFnZURhdGEgdG8gYmUgYSBzdHJpbmcsIGdvdCAke3R5cGVvZiBjYWNoZWREYXRhLnBhZ2VEYXRhfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBBcyB0aGlzIGlzbid0IGEgcHJlZmV0Y2ggcmVxdWVzdCwgd2Ugc2hvdWxkIHNlcnZlIHRoZSBzdGF0aWMgZmxpZ2h0XG4gICAgICAgICAgICAgICAgLy8gZGF0YS5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJzY1wiLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBSZW5kZXJSZXN1bHQuZnJvbVN0YXRpYyhjYWNoZWREYXRhLnBhZ2VEYXRhKSxcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogY2FjaGVFbnRyeS5yZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSByZXF1ZXN0IGZvciBIVE1MIGRhdGEuXG4gICAgICAgICAgICBsZXQgYm9keSA9IGNhY2hlZERhdGEuaHRtbDtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gcG9zdHBvbmVkIHN0YXRlLCB3ZSBzaG91bGQganVzdCBzZXJ2ZSB0aGUgSFRNTC4gVGhpc1xuICAgICAgICAgICAgLy8gc2hvdWxkIGFsc28gYmUgdGhlIGNhc2UgZm9yIGEgcmVzdW1lIHJlcXVlc3QgYmVjYXVzZSBpdCdzIGNvbXBsZXRlZFxuICAgICAgICAgICAgLy8gYXMgYSBzZXJ2ZXIgcmVuZGVyIChyYXRoZXIgdGhhbiBhIHN0YXRpYyByZW5kZXIpLlxuICAgICAgICAgICAgaWYgKCFjYWNoZWREYXRhLnBvc3Rwb25lZCB8fCB0aGlzLm1pbmltYWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJodG1sXCIsXG4gICAgICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IGNhY2hlRW50cnkucmV2YWxpZGF0ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUaGlzIHJlcXVlc3QgaGFzIHBvc3Rwb25lZCwgc28gbGV0J3MgY3JlYXRlIGEgbmV3IHRyYW5zZm9ybWVyIHRoYXQgdGhlXG4gICAgICAgICAgICAvLyBkeW5hbWljIGRhdGEgY2FuIHBpcGUgdG8gdGhhdCB3aWxsIGF0dGFjaCB0aGUgZHluYW1pYyBkYXRhIHRvIHRoZSBlbmRcbiAgICAgICAgICAgIC8vIG9mIHRoZSByZXNwb25zZS5cbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gbmV3IFRyYW5zZm9ybVN0cmVhbSgpO1xuICAgICAgICAgICAgYm9keS5jaGFpbih0cmFuc2Zvcm1lci5yZWFkYWJsZSk7XG4gICAgICAgICAgICAvLyBQZXJmb3JtIHRoZSByZW5kZXIgYWdhaW4sIGJ1dCB0aGlzIHRpbWUsIHByb3ZpZGUgdGhlIHBvc3Rwb25lZCBzdGF0ZS5cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGF3YWl0IGJlY2F1c2Ugd2Ugd2FudCB0aGUgcmVzdWx0IHRvIHN0YXJ0IHN0cmVhbWluZyBub3csIGFuZFxuICAgICAgICAgICAgLy8gd2UndmUgYWxyZWFkeSBjaGFpbmVkIHRoZSB0cmFuc2Zvcm1lcidzIHJlYWRhYmxlIHRvIHRoZSByZW5kZXIgcmVzdWx0LlxuICAgICAgICAgICAgZG9SZW5kZXIoe1xuICAgICAgICAgICAgICAgIHBvc3Rwb25lZDogY2FjaGVkRGF0YS5wb3N0cG9uZWRcbiAgICAgICAgICAgIH0pLnRoZW4oYXN5bmMgKHJlc3VsdCk9PntcbiAgICAgICAgICAgICAgICB2YXIgX3Jlc3VsdF92YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IGV4cGVjdGVkIGEgcmVzdWx0IHRvIGJlIHJldHVybmVkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoKChfcmVzdWx0X3ZhbHVlID0gcmVzdWx0LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3VsdF92YWx1ZS5raW5kKSAhPT0gXCJQQUdFXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9yZXN1bHRfdmFsdWUxO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFyaWFudDogZXhwZWN0ZWQgYSBwYWdlIHJlc3BvbnNlLCBnb3QgJHsoX3Jlc3VsdF92YWx1ZTEgPSByZXN1bHQudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzdWx0X3ZhbHVlMS5raW5kfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBQaXBlIHRoZSByZXN1bWUgcmVzdWx0IHRvIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgICAgICAgICAgICBhd2FpdCByZXN1bHQudmFsdWUuaHRtbC5waXBlVG8odHJhbnNmb3JtZXIud3JpdGFibGUpO1xuICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAvLyBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGlwaW5nIG9yIHByZXBhcmluZyB0aGUgcmVuZGVyLCBhYm9ydFxuICAgICAgICAgICAgICAgIC8vIHRoZSB0cmFuc2Zvcm1lcnMgd3JpdGVyIHNvIHdlIGNhbiB0ZXJtaW5hdGUgdGhlIHN0cmVhbS5cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lci53cml0YWJsZS5hYm9ydChlcnIpLmNhdGNoKChlKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiY291bGRuJ3QgYWJvcnQgdHJhbnNmb3JtZXJcIiwgZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJodG1sXCIsXG4gICAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNhY2hlIHRoZSByZXNwb25zZSBpZiBpdCBoYXMgcG9zdHBvbmVkIGRhdGEgYmVjYXVzZVxuICAgICAgICAgICAgICAgIC8vIHRoZSByZXNwb25zZSBiZWluZyBzZW50IHRvIHRoZSBjbGllbnQgaXQncyBkeW5hbWljIHBhcnRzIGFyZSBzdHJlYW1lZFxuICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBjbGllbnQgb24gdGhlIHNhbWUgcmVxdWVzdC5cbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGF0YVJlcSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImpzb25cIixcbiAgICAgICAgICAgICAgICBib2R5OiBSZW5kZXJSZXN1bHQuZnJvbVN0YXRpYyhKU09OLnN0cmluZ2lmeShjYWNoZWREYXRhLnBhZ2VEYXRhKSksXG4gICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogY2FjaGVFbnRyeS5yZXZhbGlkYXRlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImh0bWxcIixcbiAgICAgICAgICAgICAgICBib2R5OiBjYWNoZWREYXRhLmh0bWwsXG4gICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogY2FjaGVFbnRyeS5yZXZhbGlkYXRlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0cmlwTmV4dERhdGFQYXRoKHBhdGgsIHN0cmlwTG9jYWxlID0gdHJ1ZSkge1xuICAgICAgICBpZiAocGF0aC5pbmNsdWRlcyh0aGlzLmJ1aWxkSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdFBhdGggPSBwYXRoLnN1YnN0cmluZyhwYXRoLmluZGV4T2YodGhpcy5idWlsZElkKSArIHRoaXMuYnVpbGRJZC5sZW5ndGgpO1xuICAgICAgICAgICAgcGF0aCA9IGRlbm9ybWFsaXplUGFnZVBhdGgoc3BsaXRQYXRoLnJlcGxhY2UoL1xcLmpzb24kLywgXCJcIikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxvY2FsZU5vcm1hbGl6ZXIgJiYgc3RyaXBMb2NhbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZU5vcm1hbGl6ZXIubm9ybWFsaXplKHBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICAvLyBtYXAgdGhlIHJvdXRlIHRvIHRoZSBhY3R1YWwgYnVuZGxlIG5hbWVcbiAgICBnZXRPcmlnaW5hbEFwcFBhdGhzKHJvdXRlKSB7XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZWREaXJlY3Rvcmllcy5hcHApIHtcbiAgICAgICAgICAgIHZhciBfdGhpc19hcHBQYXRoUm91dGVzO1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxBcHBQYXRoID0gKF90aGlzX2FwcFBhdGhSb3V0ZXMgPSB0aGlzLmFwcFBhdGhSb3V0ZXMpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19hcHBQYXRoUm91dGVzW3JvdXRlXTtcbiAgICAgICAgICAgIGlmICghb3JpZ2luYWxBcHBQYXRoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxBcHBQYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBhc3luYyByZW5kZXJQYWdlQ29tcG9uZW50KGN0eCwgYnViYmxlTm9GYWxsYmFjaykge1xuICAgICAgICB2YXIgX3RoaXNfbmV4dENvbmZpZ19leHBlcmltZW50YWxfc3JpO1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBwYXRobmFtZSB9ID0gY3R4O1xuICAgICAgICBjb25zdCBhcHBQYXRocyA9IHRoaXMuZ2V0T3JpZ2luYWxBcHBQYXRocyhwYXRobmFtZSk7XG4gICAgICAgIGNvbnN0IGlzQXBwUGF0aCA9IEFycmF5LmlzQXJyYXkoYXBwUGF0aHMpO1xuICAgICAgICBsZXQgcGFnZSA9IHBhdGhuYW1lO1xuICAgICAgICBpZiAoaXNBcHBQYXRoKSB7XG4gICAgICAgICAgICAvLyB0aGUgbGFzdCBpdGVtIGluIHRoZSBhcnJheSBpcyB0aGUgcm9vdCBwYWdlLCBpZiB0aGVyZSBhcmUgcGFyYWxsZWwgcm91dGVzXG4gICAgICAgICAgICBwYWdlID0gYXBwUGF0aHNbYXBwUGF0aHMubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5maW5kUGFnZUNvbXBvbmVudHMoe1xuICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgcGFyYW1zOiBjdHgucmVuZGVyT3B0cy5wYXJhbXMgfHwge30sXG4gICAgICAgICAgICBpc0FwcFBhdGgsXG4gICAgICAgICAgICBzcmlFbmFibGVkOiAhISgoX3RoaXNfbmV4dENvbmZpZ19leHBlcmltZW50YWxfc3JpID0gdGhpcy5uZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5zcmkpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9zcmkuYWxnb3JpdGhtKSxcbiAgICAgICAgICAgIGFwcFBhdGhzLFxuICAgICAgICAgICAgLy8gRW5zdXJpbmcgZm9yIGxvYWRpbmcgcGFnZSBjb21wb25lbnQgcm91dGVzIGlzIGRvbmUgdmlhIHRoZSBtYXRjaGVyLlxuICAgICAgICAgICAgc2hvdWxkRW5zdXJlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5yZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHMoY3R4LCByZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNOb0ZhbGxiYWNrRXJyb3IgPSBlcnIgaW5zdGFuY2VvZiBOb0ZhbGxiYWNrRXJyb3I7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05vRmFsbGJhY2tFcnJvciB8fCBpc05vRmFsbGJhY2tFcnJvciAmJiBidWJibGVOb0ZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBhc3luYyByZW5kZXJUb1Jlc3BvbnNlKGN0eCkge1xuICAgICAgICByZXR1cm4gZ2V0VHJhY2VyKCkudHJhY2UoQmFzZVNlcnZlclNwYW4ucmVuZGVyVG9SZXNwb25zZSwge1xuICAgICAgICAgICAgc3Bhbk5hbWU6IGByZW5kZXJpbmcgcGFnZWAsXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgXCJuZXh0LnJvdXRlXCI6IGN0eC5wYXRobmFtZVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBhc3luYyAoKT0+e1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyVG9SZXNwb25zZUltcGwoY3R4KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlclRvUmVzcG9uc2VJbXBsKGN0eCkge1xuICAgICAgICB2YXIgX3RoaXNfaTE4blByb3ZpZGVyO1xuICAgICAgICBjb25zdCB7IHJlcywgcXVlcnksIHBhdGhuYW1lIH0gPSBjdHg7XG4gICAgICAgIGxldCBwYWdlID0gcGF0aG5hbWU7XG4gICAgICAgIGNvbnN0IGJ1YmJsZU5vRmFsbGJhY2sgPSAhIXF1ZXJ5Ll9uZXh0QnViYmxlTm9GYWxsYmFjaztcbiAgICAgICAgZGVsZXRlIHF1ZXJ5W05FWFRfUlNDX1VOSU9OX1FVRVJZXTtcbiAgICAgICAgZGVsZXRlIHF1ZXJ5Ll9uZXh0QnViYmxlTm9GYWxsYmFjaztcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGkxOG46IChfdGhpc19pMThuUHJvdmlkZXIgPSB0aGlzLmkxOG5Qcm92aWRlcikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX2kxOG5Qcm92aWRlci5mcm9tUXVlcnkocGF0aG5hbWUsIHF1ZXJ5KVxuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZm9yIGF3YWl0IChjb25zdCBtYXRjaCBvZiB0aGlzLm1hdGNoZXJzLm1hdGNoQWxsKHBhdGhuYW1lLCBvcHRpb25zKSl7XG4gICAgICAgICAgICAgICAgLy8gd2hlbiBhIHNwZWNpZmljIGludm9rZS1vdXRwdXQgaXMgbWVhbnQgdG8gYmUgbWF0Y2hlZFxuICAgICAgICAgICAgICAgIC8vIGVuc3VyZSBhIHByaW9yIGR5bmFtaWMgcm91dGUvcGFnZSBkb2Vzbid0IHRha2UgcHJpb3JpdHlcbiAgICAgICAgICAgICAgICBjb25zdCBpbnZva2VPdXRwdXQgPSBjdHgucmVxLmhlYWRlcnNbXCJ4LWludm9rZS1vdXRwdXRcIl07XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1pbmltYWxNb2RlICYmIHR5cGVvZiBpbnZva2VPdXRwdXQgPT09IFwic3RyaW5nXCIgJiYgaXNEeW5hbWljUm91dGUoaW52b2tlT3V0cHV0IHx8IFwiXCIpICYmIGludm9rZU91dHB1dCAhPT0gbWF0Y2guZGVmaW5pdGlvbi5wYXRobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZW5kZXJQYWdlQ29tcG9uZW50KHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY3R4LFxuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogbWF0Y2guZGVmaW5pdGlvbi5wYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyT3B0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY3R4LnJlbmRlck9wdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG1hdGNoLnBhcmFtc1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgYnViYmxlTm9GYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gZmFsc2UpIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjdXJyZW50bHkgZWRnZSBmdW5jdGlvbnMgYXJlbid0IHJlY2VpdmluZyB0aGUgeC1tYXRjaGVkLXBhdGhcbiAgICAgICAgICAgIC8vIGhlYWRlciBzbyB3ZSBuZWVkIHRvIGZhbGxiYWNrIHRvIG1hdGNoaW5nIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgICAgIC8vIHdoZW4gd2Ugd2VyZW4ndCBhYmxlIHRvIG1hdGNoIHZpYSBkeW5hbWljIHJvdXRlIHRvIGhhbmRsZVxuICAgICAgICAgICAgLy8gdGhlIHJld3JpdGUgY2FzZVxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBleHRlbmRlZCBpbiBjaGlsZCBjbGFzcyB3ZWItc2VydmVyXG4gICAgICAgICAgICBpZiAodGhpcy5zZXJ2ZXJPcHRpb25zLndlYlNlcnZlckNvbmZpZykge1xuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZXh0ZW5kZWQgaW4gY2hpbGQgY2xhc3Mgd2ViLXNlcnZlclxuICAgICAgICAgICAgICAgIGN0eC5wYXRobmFtZSA9IHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWcucGFnZTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnJlbmRlclBhZ2VDb21wb25lbnQoY3R4LCBidWJibGVOb0ZhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IGVyciA9IGdldFByb3BlckVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE1pc3NpbmdTdGF0aWNQYWdlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkludmFyaWFudDogZmFpbGVkIHRvIGxvYWQgc3RhdGljIHBhZ2VcIiwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgICAgICAgICB1cmw6IGN0eC5yZXEudXJsLFxuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkUGF0aDogY3R4LnJlcS5oZWFkZXJzW1wieC1tYXRjaGVkLXBhdGhcIl0sXG4gICAgICAgICAgICAgICAgICAgIGluaXRVcmw6IGdldFJlcXVlc3RNZXRhKGN0eC5yZXEsIFwiaW5pdFVSTFwiKSxcbiAgICAgICAgICAgICAgICAgICAgZGlkUmV3cml0ZTogISFnZXRSZXF1ZXN0TWV0YShjdHgucmVxLCBcInJld3JvdGVVUkxcIiksXG4gICAgICAgICAgICAgICAgICAgIHJld3JvdGVVcmw6IGdldFJlcXVlc3RNZXRhKGN0eC5yZXEsIFwicmV3cm90ZVVSTFwiKVxuICAgICAgICAgICAgICAgIH0sIG51bGwsIDIpKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm9GYWxsYmFja0Vycm9yICYmIGJ1YmJsZU5vRmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRGVjb2RlRXJyb3IgfHwgZXJyIGluc3RhbmNlb2YgTm9ybWFsaXplRXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5yZW5kZXJFcnJvclRvUmVzcG9uc2UoY3R4LCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgICAvLyBpZiBwYWdlcy81MDAgaXMgcHJlc2VudCB3ZSBzdGlsbCBuZWVkIHRvIHRyaWdnZXJcbiAgICAgICAgICAgIC8vIC9fZXJyb3IgYGdldEluaXRpYWxQcm9wc2AgdG8gYWxsb3cgcmVwb3J0aW5nIGVycm9yXG4gICAgICAgICAgICBpZiAoYXdhaXQgdGhpcy5oYXNQYWdlKFwiLzUwMFwiKSkge1xuICAgICAgICAgICAgICAgIGN0eC5xdWVyeS5fX25leHRDdXN0b21FcnJvclJlbmRlciA9IFwiMVwiO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucmVuZGVyRXJyb3JUb1Jlc3BvbnNlKGN0eCwgZXJyKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgY3R4LnF1ZXJ5Ll9fbmV4dEN1c3RvbUVycm9yUmVuZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaXNXcmFwcGVkRXJyb3IgPSBlcnIgaW5zdGFuY2VvZiBXcmFwcGVkQnVpbGRFcnJvcjtcbiAgICAgICAgICAgIGlmICghaXNXcmFwcGVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsTW9kZSAmJiBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09IFwiZWRnZVwiIHx8IHRoaXMucmVuZGVyT3B0cy5kZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXJyb3IoZXJyKSkgZXJyLnBhZ2UgPSBwYWdlO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubG9nRXJyb3IoZ2V0UHJvcGVyRXJyb3IoZXJyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVuZGVyRXJyb3JUb1Jlc3BvbnNlKGN0eCwgaXNXcmFwcGVkRXJyb3IgPyBlcnIuaW5uZXJFcnJvciA6IGVycik7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZ2V0TWlkZGxld2FyZSgpICYmICEhY3R4LnJlcS5oZWFkZXJzW1wieC1uZXh0anMtZGF0YVwiXSAmJiAoIXJlcy5zdGF0dXNDb2RlIHx8IHJlcy5zdGF0dXNDb2RlID09PSAyMDAgfHwgcmVzLnN0YXR1c0NvZGUgPT09IDQwNCkpIHtcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJ4LW5leHRqcy1tYXRjaGVkLXBhdGhcIiwgYCR7cXVlcnkuX19uZXh0TG9jYWxlID8gYC8ke3F1ZXJ5Ll9fbmV4dExvY2FsZX1gIDogXCJcIn0ke3BhdGhuYW1lfWApO1xuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiY29udGVudC10eXBlXCIsIFwiYXBwbGljYXRpb24vanNvblwiKTtcbiAgICAgICAgICAgIHJlcy5ib2R5KFwie31cIik7XG4gICAgICAgICAgICByZXMuc2VuZCgpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckVycm9yVG9SZXNwb25zZShjdHgsIG51bGwpO1xuICAgIH1cbiAgICBhc3luYyByZW5kZXJUb0hUTUwocmVxLCByZXMsIHBhdGhuYW1lLCBxdWVyeSA9IHt9KSB7XG4gICAgICAgIHJldHVybiBnZXRUcmFjZXIoKS50cmFjZShCYXNlU2VydmVyU3Bhbi5yZW5kZXJUb0hUTUwsIGFzeW5jICgpPT57XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJUb0hUTUxJbXBsKHJlcSwgcmVzLCBwYXRobmFtZSwgcXVlcnkpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgcmVuZGVyVG9IVE1MSW1wbChyZXEsIHJlcywgcGF0aG5hbWUsIHF1ZXJ5ID0ge30pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhdGljSFRNTCgoY3R4KT0+dGhpcy5yZW5kZXJUb1Jlc3BvbnNlKGN0eCksIHtcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlckVycm9yKGVyciwgcmVxLCByZXMsIHBhdGhuYW1lLCBxdWVyeSA9IHt9LCBzZXRIZWFkZXJzID0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gZ2V0VHJhY2VyKCkudHJhY2UoQmFzZVNlcnZlclNwYW4ucmVuZGVyRXJyb3IsIGFzeW5jICgpPT57XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJFcnJvckltcGwoZXJyLCByZXEsIHJlcywgcGF0aG5hbWUsIHF1ZXJ5LCBzZXRIZWFkZXJzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlckVycm9ySW1wbChlcnIsIHJlcSwgcmVzLCBwYXRobmFtZSwgcXVlcnkgPSB7fSwgc2V0SGVhZGVycyA9IHRydWUpIHtcbiAgICAgICAgaWYgKHNldEhlYWRlcnMpIHtcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDYWNoZS1Db250cm9sXCIsIFwibm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZVwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5waXBlKGFzeW5jIChjdHgpPT57XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVuZGVyRXJyb3JUb1Jlc3BvbnNlKGN0eCwgZXJyKTtcbiAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxNb2RlICYmIHJlcy5zdGF0dXNDb2RlID09PSA1MDApIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHJlbmRlckVycm9yVG9SZXNwb25zZShjdHgsIGVycikge1xuICAgICAgICByZXR1cm4gZ2V0VHJhY2VyKCkudHJhY2UoQmFzZVNlcnZlclNwYW4ucmVuZGVyRXJyb3JUb1Jlc3BvbnNlLCBhc3luYyAoKT0+e1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRXJyb3JUb1Jlc3BvbnNlSW1wbChjdHgsIGVycik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyByZW5kZXJFcnJvclRvUmVzcG9uc2VJbXBsKGN0eCwgZXJyKSB7XG4gICAgICAgIC8vIFNob3J0LWNpcmN1aXQgZmF2aWNvbi5pY28gaW4gZGV2ZWxvcG1lbnQgdG8gYXZvaWQgY29tcGlsaW5nIDQwNCBwYWdlIHdoZW4gdGhlIGFwcCBoYXMgbm8gZmF2aWNvbi5pY28uXG4gICAgICAgIC8vIFNpbmNlIGZhdmljb24uaWNvIGlzIGF1dG9tYXRpY2FsbHkgcmVxdWVzdGVkIGJ5IHRoZSBicm93c2VyLlxuICAgICAgICBpZiAodGhpcy5yZW5kZXJPcHRzLmRldiAmJiBjdHgucGF0aG5hbWUgPT09IFwiL2Zhdmljb24uaWNvXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJodG1sXCIsXG4gICAgICAgICAgICAgICAgYm9keTogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMoXCJcIilcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyByZXMsIHF1ZXJ5IH0gPSBjdHg7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGlzNDA0ID0gcmVzLnN0YXR1c0NvZGUgPT09IDQwNDtcbiAgICAgICAgICAgIGxldCB1c2luZzQwNFBhZ2UgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChpczQwNCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVuYWJsZWREaXJlY3Rvcmllcy5hcHApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSBub3QtZm91bmQgZW50cnkgaW4gYXBwIGRpcmVjdG9yeVxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLmZpbmRQYWdlQ29tcG9uZW50cyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiB0aGlzLnJlbmRlck9wdHMuZGV2ID8gXCIvbm90LWZvdW5kXCIgOiBcIi9fbm90LWZvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0FwcFBhdGg6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRFbnN1cmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGN0eC5yZXEudXJsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB1c2luZzQwNFBhZ2UgPSByZXN1bHQgIT09IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0ICYmIGF3YWl0IHRoaXMuaGFzUGFnZShcIi80MDRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5maW5kUGFnZUNvbXBvbmVudHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogXCIvNDA0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0FwcFBhdGg6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRW5zdXJpbmcgY2FuJ3QgYmUgZG9uZSBoZXJlIGJlY2F1c2UgeW91IG5ldmVyIFwibWF0Y2hcIiBhIDQwNCByb3V0ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEVuc3VyZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogY3R4LnJlcS51cmxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHVzaW5nNDA0UGFnZSA9IHJlc3VsdCAhPT0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgc3RhdHVzUGFnZSA9IGAvJHtyZXMuc3RhdHVzQ29kZX1gO1xuICAgICAgICAgICAgaWYgKCFjdHgucXVlcnkuX19uZXh0Q3VzdG9tRXJyb3JSZW5kZXIgJiYgIXJlc3VsdCAmJiBTVEFUSUNfU1RBVFVTX1BBR0VTLmluY2x1ZGVzKHN0YXR1c1BhZ2UpKSB7XG4gICAgICAgICAgICAgICAgLy8gc2tpcCBlbnN1cmluZyAvNTAwIGluIGRldiBtb2RlIGFzIGl0IGlzbid0IHVzZWQgYW5kIHRoZVxuICAgICAgICAgICAgICAgIC8vIGRldiBvdmVybGF5IGlzIHVzZWQgaW5zdGVhZFxuICAgICAgICAgICAgICAgIGlmIChzdGF0dXNQYWdlICE9PSBcIi81MDBcIiB8fCAhdGhpcy5yZW5kZXJPcHRzLmRldikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLmZpbmRQYWdlQ29tcG9uZW50cyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBzdGF0dXNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNBcHBQYXRoOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyaW5nIGNhbid0IGJlIGRvbmUgaGVyZSBiZWNhdXNlIHlvdSBuZXZlciBcIm1hdGNoXCIgYSA1MDBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRW5zdXJlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBjdHgucmVxLnVybFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMuZmluZFBhZ2VDb21wb25lbnRzKHtcbiAgICAgICAgICAgICAgICAgICAgcGFnZTogXCIvX2Vycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICAgICAgICAgICAgICBpc0FwcFBhdGg6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAvLyBFbnN1cmluZyBjYW4ndCBiZSBkb25lIGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIgXCJtYXRjaFwiIGFuIGVycm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlLlxuICAgICAgICAgICAgICAgICAgICBzaG91bGRFbnN1cmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHVybDogY3R4LnJlcS51cmxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzdGF0dXNQYWdlID0gXCIvX2Vycm9yXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmICF1c2luZzQwNFBhZ2UgJiYgYXdhaXQgdGhpcy5oYXNQYWdlKFwiL19lcnJvclwiKSAmJiAhYXdhaXQgdGhpcy5oYXNQYWdlKFwiLzQwNFwiKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tRXJyb3JObzQwNFdhcm4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjYW4gb2NjdXIgd2hlbiBhIHByb2plY3QgZGlyZWN0b3J5IGhhcyBiZWVuIG1vdmVkL2RlbGV0ZWRcbiAgICAgICAgICAgICAgICAvLyB3aGljaCBpcyBoYW5kbGVkIGluIHRoZSBwYXJlbnQgcHJvY2VzcyBpbiBkZXZlbG9wbWVudFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlck9wdHMuZGV2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImh0bWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhaXQgZm9yIGRldi1zZXJ2ZXIgdG8gcmVzdGFydCBiZWZvcmUgcmVmcmVzaGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMoYFxuICAgICAgICAgICAgICA8cHJlPm1pc3NpbmcgcmVxdWlyZWQgZXJyb3IgY29tcG9uZW50cywgcmVmcmVzaGluZy4uLjwvcHJlPlxuICAgICAgICAgICAgICA8c2NyaXB0PlxuICAgICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGNoZWNrKCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gobG9jYXRpb24uaHJlZikuY2F0Y2goKCkgPT4gKHt9KSlcblxuICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChjaGVjaywgMTAwMClcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2hlY2soKVxuICAgICAgICAgICAgICA8L3NjcmlwdD5gKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV3JhcHBlZEJ1aWxkRXJyb3IobmV3IEVycm9yKFwibWlzc2luZyByZXF1aXJlZCBlcnJvciBjb21wb25lbnRzXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSBwYWdlIGhhcyBhIHJvdXRlIG1vZHVsZSwgdXNlIGl0IGZvciB0aGUgbmV3IG1hdGNoLiBJZiBpdCBkb2Vzbid0XG4gICAgICAgICAgICAvLyBoYXZlIGEgcm91dGUgbW9kdWxlLCByZW1vdmUgdGhlIG1hdGNoLlxuICAgICAgICAgICAgaWYgKHJlc3VsdC5jb21wb25lbnRzLnJvdXRlTW9kdWxlKSB7XG4gICAgICAgICAgICAgICAgYWRkUmVxdWVzdE1ldGEoY3R4LnJlcSwgXCJtYXRjaFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmluaXRpb246IHJlc3VsdC5jb21wb25lbnRzLnJvdXRlTW9kdWxlLmRlZmluaXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlbW92ZVJlcXVlc3RNZXRhKGN0eC5yZXEsIFwibWF0Y2hcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50cyh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmN0eCxcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IHN0YXR1c1BhZ2UsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmN0eC5yZW5kZXJPcHRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCByZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAobWF5YmVGYWxsYmFja0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heWJlRmFsbGJhY2tFcnJvciBpbnN0YW5jZW9mIE5vRmFsbGJhY2tFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhcmlhbnQ6IGZhaWxlZCB0byByZW5kZXIgZXJyb3IgcGFnZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgbWF5YmVGYWxsYmFja0Vycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyVG9IdG1sRXJyb3IgPSBnZXRQcm9wZXJFcnJvcihlcnJvcik7XG4gICAgICAgICAgICBjb25zdCBpc1dyYXBwZWRFcnJvciA9IHJlbmRlclRvSHRtbEVycm9yIGluc3RhbmNlb2YgV3JhcHBlZEJ1aWxkRXJyb3I7XG4gICAgICAgICAgICBpZiAoIWlzV3JhcHBlZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dFcnJvcihyZW5kZXJUb0h0bWxFcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrQ29tcG9uZW50cyA9IGF3YWl0IHRoaXMuZ2V0RmFsbGJhY2tFcnJvckNvbXBvbmVudHMoY3R4LnJlcS51cmwpO1xuICAgICAgICAgICAgaWYgKGZhbGxiYWNrQ29tcG9uZW50cykge1xuICAgICAgICAgICAgICAgIC8vIFRoZXJlIHdhcyBhbiBlcnJvciwgc28gdXNlIGl0J3MgZGVmaW5pdGlvbiBmcm9tIHRoZSByb3V0ZSBtb2R1bGVcbiAgICAgICAgICAgICAgICAvLyB0byBhZGQgdGhlIG1hdGNoIHRvIHRoZSByZXF1ZXN0LlxuICAgICAgICAgICAgICAgIGFkZFJlcXVlc3RNZXRhKGN0eC5yZXEsIFwibWF0Y2hcIiwge1xuICAgICAgICAgICAgICAgICAgICBkZWZpbml0aW9uOiBmYWxsYmFja0NvbXBvbmVudHMucm91dGVNb2R1bGUuZGVmaW5pdGlvbixcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jdHgsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBcIi9fZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyT3B0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY3R4LnJlbmRlck9wdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByZW5kZXIgYHJlbmRlclRvSHRtbEVycm9yYCBoZXJlIGJlY2F1c2UgYGVycmAgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgY2FwdHVyZWQgaW4gdGhlIHN0YWNrdHJhY2UuXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnI6IGlzV3JhcHBlZEVycm9yID8gcmVuZGVyVG9IdG1sRXJyb3IuaW5uZXJFcnJvciA6IHJlbmRlclRvSHRtbEVycm9yXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzOiBmYWxsYmFja0NvbXBvbmVudHNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJodG1sXCIsXG4gICAgICAgICAgICAgICAgYm9keTogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMoXCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIilcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgcmVuZGVyRXJyb3JUb0hUTUwoZXJyLCByZXEsIHJlcywgcGF0aG5hbWUsIHF1ZXJ5ID0ge30pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhdGljSFRNTCgoY3R4KT0+dGhpcy5yZW5kZXJFcnJvclRvUmVzcG9uc2UoY3R4LCBlcnIpLCB7XG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICByZXMsXG4gICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyByZW5kZXI0MDQocmVxLCByZXMsIHBhcnNlZFVybCwgc2V0SGVhZGVycyA9IHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnkgfSA9IHBhcnNlZFVybCA/IHBhcnNlZFVybCA6IHBhcnNlVXJsKHJlcS51cmwsIHRydWUpO1xuICAgICAgICBpZiAodGhpcy5uZXh0Q29uZmlnLmkxOG4pIHtcbiAgICAgICAgICAgIHF1ZXJ5Ll9fbmV4dExvY2FsZSB8fD0gdGhpcy5uZXh0Q29uZmlnLmkxOG4uZGVmYXVsdExvY2FsZTtcbiAgICAgICAgICAgIHF1ZXJ5Ll9fbmV4dERlZmF1bHRMb2NhbGUgfHw9IHRoaXMubmV4dENvbmZpZy5pMThuLmRlZmF1bHRMb2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckVycm9yKG51bGwsIHJlcSwgcmVzLCBwYXRobmFtZSwgcXVlcnksIHNldEhlYWRlcnMpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmFzZS1zZXJ2ZXIuanMubWFwIl0sIm5hbWVzIjpbIk5vcm1hbGl6ZUVycm9yIiwiRGVjb2RlRXJyb3IiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJNaXNzaW5nU3RhdGljUGFnZSIsImZvcm1hdCIsImZvcm1hdFVybCIsInBhcnNlIiwicGFyc2VVcmwiLCJmb3JtYXRIb3N0bmFtZSIsImdldFJlZGlyZWN0U3RhdHVzIiwiaXNFZGdlUnVudGltZSIsIkFQUF9QQVRIU19NQU5JRkVTVCIsIk5FWFRfQlVJTFRJTl9ET0NVTUVOVCIsIlBBR0VTX01BTklGRVNUIiwiU1RBVElDX1NUQVRVU19QQUdFUyIsIlJlZGlyZWN0U3RhdHVzQ29kZSIsImlzRHluYW1pY1JvdXRlIiwiY2hlY2tJc09uRGVtYW5kUmV2YWxpZGF0ZSIsInNldENvbmZpZyIsImZvcm1hdFJldmFsaWRhdGUiLCJleGVjT25jZSIsImlzQmxvY2tlZFBhZ2UiLCJpc0JvdCIsIlJlbmRlclJlc3VsdCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwiTG9nIiwiZXNjYXBlUGF0aERlbGltaXRlcnMiLCJnZXRVdGlscyIsImlzRXJyb3IiLCJnZXRQcm9wZXJFcnJvciIsImFkZFJlcXVlc3RNZXRhIiwiZ2V0UmVxdWVzdE1ldGEiLCJyZW1vdmVSZXF1ZXN0TWV0YSIsInNldFJlcXVlc3RNZXRhIiwicmVtb3ZlUGF0aFByZWZpeCIsIm5vcm1hbGl6ZUFwcFBhdGgiLCJnZXRIb3N0bmFtZSIsInBhcnNlVXJsVXRpbCIsImdldE5leHRQYXRobmFtZUluZm8iLCJSU0NfSEVBREVSIiwiUlNDX1ZBUllfSEVBREVSIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJMb2NhbGVSb3V0ZU5vcm1hbGl6ZXIiLCJEZWZhdWx0Um91dGVNYXRjaGVyTWFuYWdlciIsIkFwcFBhZ2VSb3V0ZU1hdGNoZXJQcm92aWRlciIsIkFwcFJvdXRlUm91dGVNYXRjaGVyUHJvdmlkZXIiLCJQYWdlc0FQSVJvdXRlTWF0Y2hlclByb3ZpZGVyIiwiUGFnZXNSb3V0ZU1hdGNoZXJQcm92aWRlciIsIlNlcnZlck1hbmlmZXN0TG9hZGVyIiwiZ2V0VHJhY2VyIiwiU3BhbktpbmQiLCJCYXNlU2VydmVyU3BhbiIsIkkxOE5Qcm92aWRlciIsInNlbmRSZXNwb25zZSIsImhhbmRsZUludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSIsImZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyIsInRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMiLCJDQUNIRV9PTkVfWUVBUiIsIk5FWFRfQ0FDSEVfVEFHU19IRUFERVIiLCJORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJOZXh0UmVxdWVzdEFkYXB0ZXIiLCJzaWduYWxGcm9tTm9kZVJlc3BvbnNlIiwibWF0Y2hOZXh0RGF0YVBhdGhuYW1lIiwiZ2V0Um91dGVGcm9tQXNzZXRQYXRoIiwic3RyaXBJbnRlcm5hbEhlYWRlcnMiLCJSU0NQYXRobmFtZU5vcm1hbGl6ZXIiLCJQb3N0cG9uZWRQYXRobmFtZU5vcm1hbGl6ZXIiLCJzdHJpcEZsaWdodEhlYWRlcnMiLCJpc0FwcFBhZ2VSb3V0ZU1vZHVsZSIsImlzQXBwUm91dGVSb3V0ZU1vZHVsZSIsImlzUGFnZXNSb3V0ZU1vZHVsZSIsIlByZWZldGNoUlNDUGF0aG5hbWVOb3JtYWxpemVyIiwiTmV4dERhdGFQYXRobmFtZU5vcm1hbGl6ZXIiLCJnZXRJc1NlcnZlckFjdGlvbiIsIk5vRmFsbGJhY2tFcnJvciIsIkVycm9yIiwiV3JhcHBlZEJ1aWxkRXJyb3IiLCJjb25zdHJ1Y3RvciIsImlubmVyRXJyb3IiLCJTZXJ2ZXIiLCJvcHRpb25zIiwiX3RoaXNfbmV4dENvbmZpZ19pMThuIiwiX3RoaXNfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wIiwiX3RoaXNfbmV4dENvbmZpZ19pMThuMSIsImhhbmRsZVJTQ1JlcXVlc3QiLCJyZXEiLCJfcmVzIiwicGFyc2VkVXJsIiwiX3RoaXNfbm9ybWFsaXplcnNfcHJlZmV0Y2hSU0MiLCJfdGhpc19ub3JtYWxpemVyc19yc2MiLCJwYXRobmFtZSIsIm5vcm1hbGl6ZXJzIiwicHJlZmV0Y2hSU0MiLCJtYXRjaCIsIm5vcm1hbGl6ZSIsImhlYWRlcnMiLCJ0b0xvd2VyQ2FzZSIsInJzYyIsInF1ZXJ5IiwiX19uZXh0RGF0YVJlcSIsInVybCIsInBhcnNlZCIsImhhbmRsZU5leHREYXRhUmVxdWVzdCIsInJlcyIsIm1pZGRsZXdhcmUiLCJnZXRNaWRkbGV3YXJlIiwicGFyYW1zIiwicGF0aCIsImJ1aWxkSWQiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwicmVuZGVyNDA0Iiwic2hpZnQiLCJsYXN0UGFyYW0iLCJsZW5ndGgiLCJlbmRzV2l0aCIsImpvaW4iLCJuZXh0Q29uZmlnIiwidHJhaWxpbmdTbGFzaCIsInN1YnN0cmluZyIsImkxOG5Qcm92aWRlciIsIl9yZXFfaGVhZGVyc19ob3N0IiwiaG9zdG5hbWUiLCJob3N0Iiwic3BsaXQiLCJkb21haW5Mb2NhbGUiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY29uZmlnIiwibG9jYWxlUGF0aFJlc3VsdCIsImFuYWx5emUiLCJkZXRlY3RlZExvY2FsZSIsIl9fbmV4dExvY2FsZSIsIl9fbmV4dERlZmF1bHRMb2NhbGUiLCJfX25leHRJbmZlcnJlZExvY2FsZUZyb21EZWZhdWx0IiwiaGFuZGxlTmV4dEltYWdlUmVxdWVzdCIsImhhbmRsZUNhdGNoYWxsUmVuZGVyUmVxdWVzdCIsImhhbmRsZUNhdGNoYWxsTWlkZGxld2FyZVJlcXVlc3QiLCJkYXRhIiwicHVzaCIsInBvc3Rwb25lZCIsIm5vcm1hbGl6ZXIiLCJub3JtYWxpemVBbmRBdHRhY2hNZXRhZGF0YSIsImZpbmlzaGVkIiwiZW5hYmxlZERpcmVjdG9yaWVzIiwicGFnZXMiLCJwcmVwYXJlZCIsInByZXBhcmVkUHJvbWlzZSIsImN1c3RvbUVycm9yTm80MDRXYXJuIiwid2FybiIsImRpciIsInF1aWV0IiwiY29uZiIsImRldiIsIm1pbmltYWxNb2RlIiwiY3VzdG9tU2VydmVyIiwicG9ydCIsInNlcnZlck9wdGlvbnMiLCJyZXF1aXJlIiwicmVzb2x2ZSIsImxvYWRFbnZDb25maWciLCJmZXRjaEhvc3RuYW1lIiwiZGlzdERpciIsInB1YmxpY0RpciIsImdldFB1YmxpY0RpciIsImhhc1N0YXRpY0RpciIsImdldEhhc1N0YXRpY0RpciIsImkxOG4iLCJsb2NhbGVzIiwidW5kZWZpbmVkIiwibG9jYWxlTm9ybWFsaXplciIsInNlcnZlclJ1bnRpbWVDb25maWciLCJwdWJsaWNSdW50aW1lQ29uZmlnIiwiYXNzZXRQcmVmaXgiLCJnZW5lcmF0ZUV0YWdzIiwiZ2V0QnVpbGRJZCIsIm1pbmltYWxNb2RlS2V5IiwiTkVYVF9QUklWQVRFX01JTklNQUxfTU9ERSIsImdldEVuYWJsZWREaXJlY3RvcmllcyIsImFwcCIsImV4cGVyaW1lbnRhbCIsInBwciIsIm5leHRGb250TWFuaWZlc3QiLCJnZXROZXh0Rm9udE1hbmlmZXN0IiwiTkVYVF9ERVBMT1lNRU5UX0lEIiwiZGVwbG95bWVudElkIiwicmVuZGVyT3B0cyIsInN0cmljdE5leHRIZWFkIiwicG93ZXJlZEJ5SGVhZGVyIiwiY2Fub25pY2FsQmFzZSIsImFtcCIsInByZXZpZXdQcm9wcyIsImdldFByZXJlbmRlck1hbmlmZXN0IiwicHJldmlldyIsImFtcE9wdGltaXplckNvbmZpZyIsIm9wdGltaXplciIsImJhc2VQYXRoIiwiaW1hZ2VzIiwib3B0aW1pemVGb250cyIsImZvbnRNYW5pZmVzdCIsImdldEZvbnRNYW5pZmVzdCIsIm9wdGltaXplQ3NzIiwibmV4dENvbmZpZ091dHB1dCIsIm91dHB1dCIsIm5leHRTY3JpcHRXb3JrZXJzIiwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciLCJkb21haW5Mb2NhbGVzIiwiZG9tYWlucyIsInNlcnZlckNvbXBvbmVudHMiLCJlbmFibGVUYWludGluZyIsInRhaW50IiwiY3Jvc3NPcmlnaW4iLCJsYXJnZVBhZ2VEYXRhQnl0ZXMiLCJydW50aW1lQ29uZmlnIiwiT2JqZWN0Iiwia2V5cyIsImlzRXhwZXJpbWVudGFsQ29tcGlsZSIsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0IiwicGFnZXNNYW5pZmVzdCIsImdldFBhZ2VzTWFuaWZlc3QiLCJhcHBQYXRoc01hbmlmZXN0IiwiZ2V0QXBwUGF0aHNNYW5pZmVzdCIsImFwcFBhdGhSb3V0ZXMiLCJnZXRBcHBQYXRoUm91dGVzIiwibWF0Y2hlcnMiLCJnZXRSb3V0ZU1hdGNoZXJzIiwicmVsb2FkIiwic2V0QXNzZXRQcmVmaXgiLCJyZXNwb25zZUNhY2hlIiwiZ2V0UmVzcG9uc2VDYWNoZSIsInJlbG9hZE1hdGNoZXJzIiwibWFuaWZlc3RMb2FkZXIiLCJuYW1lIiwibG9nRXJyb3IiLCJlcnIiLCJlcnJvciIsImhhbmRsZVJlcXVlc3QiLCJwcmVwYXJlIiwibWV0aG9kIiwidG9VcHBlckNhc2UiLCJ0cmFjZXIiLCJ3aXRoUHJvcGFnYXRlZENvbnRleHQiLCJ0cmFjZSIsInNwYW5OYW1lIiwia2luZCIsIlNFUlZFUiIsImF0dHJpYnV0ZXMiLCJzcGFuIiwiaGFuZGxlUmVxdWVzdEltcGwiLCJmaW5hbGx5Iiwic2V0QXR0cmlidXRlcyIsInN0YXR1c0NvZGUiLCJyb290U3BhbkF0dHJpYnV0ZXMiLCJnZXRSb290U3BhbkF0dHJpYnV0ZXMiLCJnZXQiLCJjb25zb2xlIiwicm91dGUiLCJuZXdOYW1lIiwidXBkYXRlTmFtZSIsIl90aGlzX3BvcnQiLCJfb3JpZ2luYWxSZXF1ZXN0X3NvY2tldCIsIl9vcmlnaW5hbFJlcXVlc3Rfc29ja2V0MSIsIl90aGlzX2kxOG5Qcm92aWRlciIsIndhaXRUaWxsUmVhZHkiLCJvcmlnaW5hbFJlc3BvbnNlIiwib3JpZ1NldEhlYWRlciIsInNldEhlYWRlciIsImJpbmQiLCJ2YWwiLCJoZWFkZXJzU2VudCIsIm1pZGRsZXdhcmVWYWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImV2ZXJ5IiwiaXRlbSIsImlkeCIsIlNldCIsInVybFBhcnRzIiwidXJsTm9RdWVyeSIsImNsZWFuVXJsIiwicmVkaXJlY3QiLCJib2R5Iiwic2VuZCIsImZyb21FbnRyaWVzIiwiVVJMU2VhcmNoUGFyYW1zIiwidG9TdHJpbmciLCJvcmlnaW5hbFJlcXVlc3QiLCJzb2NrZXQiLCJlbmNyeXB0ZWQiLCJyZW1vdGVBZGRyZXNzIiwiYXR0YWNoUmVxdWVzdE1ldGEiLCJyZXBsYWNlIiwicGF0aG5hbWVJbmZvIiwidXNlTWF0Y2hlZFBhdGhIZWFkZXIiLCJfdGhpc19ub3JtYWxpemVyc19kYXRhIiwiX3RoaXNfbm9ybWFsaXplcnNfcG9zdHBvbmVkIiwiX3RoaXNfaTE4blByb3ZpZGVyMSIsIl90aGlzX2dldFJvdXRlc01hbmlmZXN0IiwibWF0Y2hlZFBhdGgiLCJVUkwiLCJ1cmxQYXRobmFtZSIsImNodW5rIiwiQnVmZmVyIiwiY29uY2F0Iiwibm9ybWFsaXplZFVybFBhdGgiLCJzdHJpcE5leHREYXRhUGF0aCIsImxvY2FsZUFuYWx5c2lzUmVzdWx0IiwiaW5mZXJyZWRGcm9tRGVmYXVsdCIsInNyY1BhdGhuYW1lIiwicGFnZUlzRHluYW1pYyIsImRlZmluaXRpb24iLCJ1dGlscyIsInBhZ2UiLCJyZXdyaXRlcyIsImdldFJvdXRlc01hbmlmZXN0IiwiYmVmb3JlRmlsZXMiLCJhZnRlckZpbGVzIiwiZmFsbGJhY2siLCJjYXNlU2Vuc2l0aXZlIiwiY2FzZVNlbnNpdGl2ZVJvdXRlcyIsImxvY2FsZSIsInBhdGhuYW1lQmVmb3JlUmV3cml0ZSIsInJld3JpdGVQYXJhbXMiLCJoYW5kbGVSZXdyaXRlcyIsInJld3JpdGVQYXJhbUtleXMiLCJkaWRSZXdyaXRlIiwicm91dGVQYXJhbUtleXMiLCJrZXkiLCJ2YWx1ZSIsInN0YXJ0c1dpdGgiLCJub3JtYWxpemVkS2V5IiwiYWRkIiwicGFyYW1zUmVzdWx0Iiwibm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zIiwiaGFzVmFsaWRQYXJhbXMiLCJtYXRjaGVyUGFyYW1zIiwiZHluYW1pY1JvdXRlTWF0Y2hlciIsImNhbGwiLCJhc3NpZ24iLCJvcHRzIiwicm91dGVQYXJhbXMiLCJnZXRQYXJhbXNGcm9tUm91dGVNYXRjaGVzIiwiZGVmYXVsdFJvdXRlTWF0Y2hlcyIsImludGVycG9sYXRlRHluYW1pY1BhdGgiLCJfdXRpbHNfZGVmYXVsdFJvdXRlUmVnZXgiLCJub3JtYWxpemVWZXJjZWxVcmwiLCJkZWZhdWx0Um91dGVSZWdleCIsImdyb3VwcyIsInJlbmRlckVycm9yIiwiZ2V0TG9jYWxlUmVkaXJlY3QiLCJwYXRoTG9jYWxlIiwidXJsUGFyc2VkIiwiVGVtcG9yYXJ5UmVkaXJlY3QiLCJCb29sZWFuIiwid2ViU2VydmVyQ29uZmlnIiwicHJvdG9jb2wiLCJwYXJzZWRGdWxsVXJsIiwiaW5jcmVtZW50YWxDYWNoZSIsImdldEluY3JlbWVudGFsQ2FjaGUiLCJyZXF1ZXN0SGVhZGVycyIsInJlcXVlc3RQcm90b2NvbCIsInJlc2V0UmVxdWVzdENhY2hlIiwiZ2xvYmFsVGhpcyIsIl9faW5jcmVtZW50YWxDYWNoZSIsImludm9rZVBhdGgiLCJ1c2VJbnZva2VQYXRoIiwiaW52b2tlUXVlcnkiLCJKU09OIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiTnVtYmVyIiwiaW52b2tlRXJyb3IiLCJtZXNzYWdlIiwicGFyc2VkTWF0Y2hlZFBhdGgiLCJpbnZva2VQYXRobmFtZUluZm8iLCJwYXJzZURhdGEiLCJub3JtYWxpemVSZXN1bHQiLCJyZXN1bHQiLCJyZXNwb25zZSIsIlJlc3BvbnNlIiwiYnViYmxlIiwicnVuIiwiY29kZSIsImdldFJlcXVlc3RIYW5kbGVyV2l0aE1ldGFkYXRhIiwibWV0YSIsImhhbmRsZXIiLCJnZXRSZXF1ZXN0SGFuZGxlciIsInByZWZpeCIsInByZXBhcmVJbXBsIiwidGhlbiIsImNsb3NlIiwiZm9yRWFjaCIsImVudHJ5Iiwibm9ybWFsaXplZFBhdGgiLCJydW5JbXBsIiwicGlwZSIsImZuIiwicGFydGlhbENvbnRleHQiLCJwaXBlSW1wbCIsImlzQm90UmVxdWVzdCIsImN0eCIsInN1cHBvcnRzRHluYW1pY0hUTUwiLCJwYXlsb2FkIiwib3JpZ2luYWxTdGF0dXMiLCJ0eXBlIiwicmV2YWxpZGF0ZSIsInNlbnQiLCJzZW5kUmVuZGVyUmVzdWx0IiwiZ2V0U3RhdGljSFRNTCIsInRvVW5jaHVua2VkU3RyaW5nIiwicmVuZGVyIiwiaW50ZXJuYWxSZW5kZXIiLCJyZW5kZXJJbXBsIiwiX3JlcV91cmwiLCJoYXNQYWdlIiwicmVuZGVyVG9SZXNwb25zZSIsImdldFN0YXRpY1BhdGhzIiwiX3RoaXNfZ2V0UHJlcmVuZGVyTWFuaWZlc3RfZHluYW1pY1JvdXRlc19wYXRobmFtZSIsImZhbGxiYWNrRmllbGQiLCJkeW5hbWljUm91dGVzIiwic3RhdGljUGF0aHMiLCJmYWxsYmFja01vZGUiLCJyZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHMiLCJyZXF1ZXN0Q29udGV4dCIsImZpbmRDb21wb25lbnRzUmVzdWx0IiwicmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzSW1wbCIsIl9fTkVYVF9URVNUX01PREUiLCJfX05FWFRfTk9fU1RSSVBfSU5URVJOQUxfSEVBREVSUyIsImNvbXBvbmVudHMiLCJfY29tcG9uZW50c19Db21wb25lbnQiLCJfY2FjaGVFbnRyeV92YWx1ZSIsImlzNDA0UGFnZSIsImlzNTAwUGFnZSIsImlzQXBwUGF0aCIsImhhc1NlcnZlclByb3BzIiwiZ2V0U2VydmVyU2lkZVByb3BzIiwiaGFzU3RhdGljUGF0aHMiLCJpc1NlcnZlckFjdGlvbiIsImhhc0dldEluaXRpYWxQcm9wcyIsIkNvbXBvbmVudCIsImdldEluaXRpYWxQcm9wcyIsImlzU1NHIiwiZ2V0U3RhdGljUHJvcHMiLCJyZXNvbHZlZFVybFBhdGhuYW1lIiwiaGFzRmFsbGJhY2siLCJpc0R5bmFtaWMiLCJwcmVyZW5kZXJNYW5pZmVzdCIsInBhdGhzUmVzdWx0IiwicmVzb2x2ZWRXaXRob3V0U2xhc2giLCJpbmNsdWRlcyIsInJvdXRlcyIsImlzRGF0YVJlcSIsImlzUHJlZmV0Y2hSU0NSZXF1ZXN0IiwiaXNSU0NSZXF1ZXN0IiwibWluaW1hbFBvc3Rwb25lZCIsImlzRHluYW1pY1JTQ1JlcXVlc3QiLCJwYXJzZUludCIsInNsaWNlIiwiZnJvbVN0YXRpYyIsIl9jb21wb25lbnRzX0RvY3VtZW50IiwiaXNTdXBwb3J0ZWREb2N1bWVudCIsIkRvY3VtZW50IiwicHJldmlld0RhdGEiLCJpc1ByZXZpZXdNb2RlIiwidHJ5R2V0UHJldmlld0RhdGEiLCJydW50aW1lIiwiaXNPbkRlbWFuZFJldmFsaWRhdGUiLCJyZXZhbGlkYXRlT25seUdlbmVyYXRlZCIsImhhbmRsZVJlZGlyZWN0IiwicGFnZURhdGEiLCJkZXN0aW5hdGlvbiIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9TVEFUVVMiLCJfX05fUkVESVJFQ1RfQkFTRV9QQVRIIiwic3NnQ2FjaGVLZXkiLCJtYXAiLCJzZWciLCJfIiwicm91dGVNb2R1bGUiLCJkb1JlbmRlciIsIm9yaWdRdWVyeSIsImhhZFRyYWlsaW5nU2xhc2giLCJyZXNvbHZlZFVybCIsImlzUmV2YWxpZGF0ZSIsIm9yaWdpbmFsUGF0aG5hbWUiLCJDb21wb25lbnRNb2QiLCJzZXJ2ZXJBY3Rpb25zIiwicmVzb2x2ZWRBc1BhdGgiLCJpc0RyYWZ0TW9kZSIsImNvbnRleHQiLCJyZXF1ZXN0IiwiZnJvbUJhc2VOZXh0UmVxdWVzdCIsImhhbmRsZSIsImZldGNoTWV0cmljcyIsImNhY2hlVGFncyIsImZldGNoVGFncyIsIl9jb250ZXh0X3JlbmRlck9wdHNfc3RvcmUiLCJibG9iIiwic3RvcmUiLCJjYWNoZUVudHJ5Iiwic3RhdHVzIiwiZnJvbSIsImFycmF5QnVmZmVyIiwid2FpdFVudGlsIiwiY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QiLCJtb2R1bGUiLCJyZW5kZXJIVE1MIiwibWV0YWRhdGEiLCJzdGF0aWNCYWlsb3V0SW5mbyIsImRlc2NyaXB0aW9uIiwic3RhY2siLCJpbmRleE9mIiwiaXNOb3RGb3VuZCIsImlzUmVkaXJlY3QiLCJwcm9wcyIsImZsaWdodERhdGEiLCJpc051bGwiLCJodG1sIiwiaGFzUmVzb2x2ZWQiLCJwcmV2aW91c0NhY2hlRW50cnkiLCJpc1JldmFsaWRhdGluZyIsImlzUHJvZHVjdGlvbiIsImRpZFJlc3BvbmQiLCJpc1N0YWxlIiwic3RhdGljUGF0aEtleSIsImlzUGFnZUluY2x1ZGVkSW5TdGF0aWNQYXRocyIsImdldEZhbGxiYWNrIiwiX19uZXh0RmFsbGJhY2siLCJyb3V0ZUtpbmQiLCJpc1ByZWZldGNoIiwicHVycG9zZSIsImRpZFBvc3Rwb25lIiwiaXNNaXNzIiwiY2FjaGVkRGF0YSIsImdldEhlYWRlciIsIm9uQ2FjaGVFbnRyeSIsIl9fbmV4dE5vdEZvdW5kU3JjUGFnZSIsInN0cmluZ2lmeSIsIl9jYWNoZWREYXRhX2hlYWRlcnMiLCJlbnRyaWVzIiwidiIsImFwcGVuZEhlYWRlciIsInRyYW5zZm9ybWVyIiwiVHJhbnNmb3JtU3RyZWFtIiwiY2hhaW4iLCJyZWFkYWJsZSIsIl9yZXN1bHRfdmFsdWUiLCJfcmVzdWx0X3ZhbHVlMSIsInBpcGVUbyIsIndyaXRhYmxlIiwiY2F0Y2giLCJhYm9ydCIsImUiLCJzdHJpcExvY2FsZSIsInNwbGl0UGF0aCIsImdldE9yaWdpbmFsQXBwUGF0aHMiLCJfdGhpc19hcHBQYXRoUm91dGVzIiwib3JpZ2luYWxBcHBQYXRoIiwicmVuZGVyUGFnZUNvbXBvbmVudCIsImJ1YmJsZU5vRmFsbGJhY2siLCJfdGhpc19uZXh0Q29uZmlnX2V4cGVyaW1lbnRhbF9zcmkiLCJhcHBQYXRocyIsImZpbmRQYWdlQ29tcG9uZW50cyIsInNyaUVuYWJsZWQiLCJzcmkiLCJhbGdvcml0aG0iLCJzaG91bGRFbnN1cmUiLCJpc05vRmFsbGJhY2tFcnJvciIsInJlbmRlclRvUmVzcG9uc2VJbXBsIiwiX25leHRCdWJibGVOb0ZhbGxiYWNrIiwiZnJvbVF1ZXJ5IiwibWF0Y2hBbGwiLCJpbnZva2VPdXRwdXQiLCJpbml0VXJsIiwicmV3cm90ZVVybCIsInJlbmRlckVycm9yVG9SZXNwb25zZSIsIl9fbmV4dEN1c3RvbUVycm9yUmVuZGVyIiwiaXNXcmFwcGVkRXJyb3IiLCJyZW5kZXJUb0hUTUwiLCJyZW5kZXJUb0hUTUxJbXBsIiwic2V0SGVhZGVycyIsInJlbmRlckVycm9ySW1wbCIsInJlbmRlckVycm9yVG9SZXNwb25zZUltcGwiLCJpczQwNCIsInVzaW5nNDA0UGFnZSIsInN0YXR1c1BhZ2UiLCJtYXliZUZhbGxiYWNrRXJyb3IiLCJyZW5kZXJUb0h0bWxFcnJvciIsImZhbGxiYWNrQ29tcG9uZW50cyIsImdldEZhbGxiYWNrRXJyb3JDb21wb25lbnRzIiwicmVuZGVyRXJyb3JUb0hUTUwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/base-server.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/dev/hot-reloader-types.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/dev/hot-reloader-types.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HMR_ACTIONS_SENT_TO_BROWSER: () => (/* binding */ HMR_ACTIONS_SENT_TO_BROWSER)\n/* harmony export */ });\nvar HMR_ACTIONS_SENT_TO_BROWSER;\n(function(HMR_ACTIONS_SENT_TO_BROWSER) {\n HMR_ACTIONS_SENT_TO_BROWSER[\"ADDED_PAGE\"] = \"addedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"REMOVED_PAGE\"] = \"removedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"RELOAD_PAGE\"] = \"reloadPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_COMPONENT_CHANGES\"] = \"serverComponentChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"MIDDLEWARE_CHANGES\"] = \"middlewareChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"CLIENT_CHANGES\"] = \"clientChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ONLY_CHANGES\"] = \"serverOnlyChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SYNC\"] = \"sync\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILT\"] = \"built\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILDING\"] = \"building\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"FINISH_BUILDING\"] = \"finishBuilding\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_PAGES_MANIFEST_UPDATE\"] = \"devPagesManifestUpdate\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_MESSAGE\"] = \"turbopack-message\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ERROR\"] = \"serverError\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_CONNECTED\"] = \"turbopack-connected\";\n})(HMR_ACTIONS_SENT_TO_BROWSER || (HMR_ACTIONS_SENT_TO_BROWSER = {})); //# sourceMappingURL=hot-reloader-types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLElBQUlBLDRCQUE0QjtBQUN0QyxVQUFTQSwyQkFBMkI7SUFDakNBLDJCQUEyQixDQUFDLGFBQWEsR0FBRztJQUM1Q0EsMkJBQTJCLENBQUMsZUFBZSxHQUFHO0lBQzlDQSwyQkFBMkIsQ0FBQyxjQUFjLEdBQUc7SUFDN0NBLDJCQUEyQixDQUFDLDJCQUEyQixHQUFHO0lBQzFEQSwyQkFBMkIsQ0FBQyxxQkFBcUIsR0FBRztJQUNwREEsMkJBQTJCLENBQUMsaUJBQWlCLEdBQUc7SUFDaERBLDJCQUEyQixDQUFDLHNCQUFzQixHQUFHO0lBQ3JEQSwyQkFBMkIsQ0FBQyxPQUFPLEdBQUc7SUFDdENBLDJCQUEyQixDQUFDLFFBQVEsR0FBRztJQUN2Q0EsMkJBQTJCLENBQUMsV0FBVyxHQUFHO0lBQzFDQSwyQkFBMkIsQ0FBQyxrQkFBa0IsR0FBRztJQUNqREEsMkJBQTJCLENBQUMsNEJBQTRCLEdBQUc7SUFDM0RBLDJCQUEyQixDQUFDLG9CQUFvQixHQUFHO0lBQ25EQSwyQkFBMkIsQ0FBQyxlQUFlLEdBQUc7SUFDOUNBLDJCQUEyQixDQUFDLHNCQUFzQixHQUFHO0FBQ3pELEdBQUdBLCtCQUFnQ0EsQ0FBQUEsOEJBQThCLENBQUMsS0FFbEUsOENBQThDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcy5qcz8wODRjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSO1xuKGZ1bmN0aW9uKEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUikge1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkFEREVEX1BBR0VcIl0gPSBcImFkZGVkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlJFTU9WRURfUEFHRVwiXSA9IFwicmVtb3ZlZFBhZ2VcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJSRUxPQURfUEFHRVwiXSA9IFwicmVsb2FkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFU1wiXSA9IFwic2VydmVyQ29tcG9uZW50Q2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIk1JRERMRVdBUkVfQ0hBTkdFU1wiXSA9IFwibWlkZGxld2FyZUNoYW5nZXNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJDTElFTlRfQ0hBTkdFU1wiXSA9IFwiY2xpZW50Q2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9PTkxZX0NIQU5HRVNcIl0gPSBcInNlcnZlck9ubHlDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU1lOQ1wiXSA9IFwic3luY1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkJVSUxUXCJdID0gXCJidWlsdFwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkJVSUxESU5HXCJdID0gXCJidWlsZGluZ1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkZJTklTSF9CVUlMRElOR1wiXSA9IFwiZmluaXNoQnVpbGRpbmdcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJERVZfUEFHRVNfTUFOSUZFU1RfVVBEQVRFXCJdID0gXCJkZXZQYWdlc01hbmlmZXN0VXBkYXRlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiVFVSQk9QQUNLX01FU1NBR0VcIl0gPSBcInR1cmJvcGFjay1tZXNzYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU0VSVkVSX0VSUk9SXCJdID0gXCJzZXJ2ZXJFcnJvclwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlRVUkJPUEFDS19DT05ORUNURURcIl0gPSBcInR1cmJvcGFjay1jb25uZWN0ZWRcIjtcbn0pKEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiB8fCAoSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSID0ge30pKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG90LXJlbG9hZGVyLXR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6WyJITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/dev/hot-reloader-types.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/dev/log-app-dir-error.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/dev/log-app-dir-error.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ logAppDirError: () => (/* binding */ logAppDirError)\n/* harmony export */ });\n/* harmony import */ var _lib_is_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/is-error */ \"(ssr)/../../node_modules/next/dist/esm/lib/is-error.js\");\n/* harmony import */ var _build_output_log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../build/output/log */ \"(ssr)/../../node_modules/next/dist/esm/build/output/log.js\");\n\n\nfunction logAppDirError(err) {\n if ((0,_lib_is_error__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(err) && (err == null ? void 0 : err.stack)) {\n const cleanedStack = err.stack.split(\"\\n\").map((line)=>line.replace(/(webpack-internal:\\/\\/\\/|file:\\/\\/)(\\(.*\\)\\/)?/, \"\"));\n const filteredStack = cleanedStack // Only display stack frames from the user's code\n .filter((line)=>!/next[\\\\/]dist[\\\\/]compiled/.test(line) && !/node_modules[\\\\/]/.test(line) && !/node:internal[\\\\/]/.test(line));\n if (filteredStack.length === 1) {\n // This is an error that happened outside of user code, keep full stack\n _build_output_log__WEBPACK_IMPORTED_MODULE_1__.error(`Internal error: ${cleanedStack.join(\"\\n\")}`);\n } else {\n _build_output_log__WEBPACK_IMPORTED_MODULE_1__.error(filteredStack.join(\"\\n\"));\n }\n if (typeof err.digest !== \"undefined\") {\n console.error(`digest: ${JSON.stringify(err.digest)}`);\n }\n if (err.cause) console.error(\"Cause:\", err.cause);\n } else {\n _build_output_log__WEBPACK_IMPORTED_MODULE_1__.error(err);\n }\n} //# sourceMappingURL=log-app-dir-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Rldi9sb2ctYXBwLWRpci1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUM7QUFDSztBQUN2QyxTQUFTRSxlQUFlQyxHQUFHO0lBQzlCLElBQUlILHlEQUFPQSxDQUFDRyxRQUFTQSxDQUFBQSxPQUFPLE9BQU8sS0FBSyxJQUFJQSxJQUFJQyxLQUFLLEdBQUc7UUFDcEQsTUFBTUMsZUFBZUYsSUFBSUMsS0FBSyxDQUFDRSxLQUFLLENBQUMsTUFBTUMsR0FBRyxDQUFDLENBQUNDLE9BQzVDQSxLQUFLQyxPQUFPLENBQUMsa0RBQWtEO1FBQ25FLE1BQU1DLGdCQUFnQkwsYUFBWSxpREFBaUQ7U0FDbEZNLE1BQU0sQ0FBQyxDQUFDSCxPQUFPLENBQUMsNkJBQTZCSSxJQUFJLENBQUNKLFNBQVMsQ0FBQyxvQkFBb0JJLElBQUksQ0FBQ0osU0FBUyxDQUFDLHFCQUFxQkksSUFBSSxDQUFDSjtRQUMxSCxJQUFJRSxjQUFjRyxNQUFNLEtBQUssR0FBRztZQUM1Qix1RUFBdUU7WUFDdkVaLG9EQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUksYUFBYVUsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxRCxPQUFPO1lBQ0hkLG9EQUFTLENBQUNTLGNBQWNLLElBQUksQ0FBQztRQUNqQztRQUNBLElBQUksT0FBT1osSUFBSWEsTUFBTSxLQUFLLGFBQWE7WUFDbkNDLFFBQVFILEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRUksS0FBS0MsU0FBUyxDQUFDaEIsSUFBSWEsTUFBTSxFQUFFLENBQUM7UUFDekQ7UUFDQSxJQUFJYixJQUFJaUIsS0FBSyxFQUFFSCxRQUFRSCxLQUFLLENBQUMsVUFBVVgsSUFBSWlCLEtBQUs7SUFDcEQsT0FBTztRQUNIbkIsb0RBQVMsQ0FBQ0U7SUFDZDtBQUNKLEVBRUEsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZGV2L2xvZy1hcHAtZGlyLWVycm9yLmpzPzM1MjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzRXJyb3IgZnJvbSBcIi4uLy4uL2xpYi9pcy1lcnJvclwiO1xuaW1wb3J0ICogYXMgTG9nIGZyb20gXCIuLi8uLi9idWlsZC9vdXRwdXQvbG9nXCI7XG5leHBvcnQgZnVuY3Rpb24gbG9nQXBwRGlyRXJyb3IoZXJyKSB7XG4gICAgaWYgKGlzRXJyb3IoZXJyKSAmJiAoZXJyID09IG51bGwgPyB2b2lkIDAgOiBlcnIuc3RhY2spKSB7XG4gICAgICAgIGNvbnN0IGNsZWFuZWRTdGFjayA9IGVyci5zdGFjay5zcGxpdChcIlxcblwiKS5tYXAoKGxpbmUpPT4vLyBSZW1vdmUgJ3dlYnBhY2staW50ZXJuYWw6JyBub2lzZSBmcm9tIHRoZSBwYXRoXG4gICAgICAgICAgICBsaW5lLnJlcGxhY2UoLyh3ZWJwYWNrLWludGVybmFsOlxcL1xcL1xcL3xmaWxlOlxcL1xcLykoXFwoLipcXClcXC8pPy8sIFwiXCIpKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRTdGFjayA9IGNsZWFuZWRTdGFjay8vIE9ubHkgZGlzcGxheSBzdGFjayBmcmFtZXMgZnJvbSB0aGUgdXNlcidzIGNvZGVcbiAgICAgICAgLmZpbHRlcigobGluZSk9PiEvbmV4dFtcXFxcL11kaXN0W1xcXFwvXWNvbXBpbGVkLy50ZXN0KGxpbmUpICYmICEvbm9kZV9tb2R1bGVzW1xcXFwvXS8udGVzdChsaW5lKSAmJiAhL25vZGU6aW50ZXJuYWxbXFxcXC9dLy50ZXN0KGxpbmUpKTtcbiAgICAgICAgaWYgKGZpbHRlcmVkU3RhY2subGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIGFuIGVycm9yIHRoYXQgaGFwcGVuZWQgb3V0c2lkZSBvZiB1c2VyIGNvZGUsIGtlZXAgZnVsbCBzdGFja1xuICAgICAgICAgICAgTG9nLmVycm9yKGBJbnRlcm5hbCBlcnJvcjogJHtjbGVhbmVkU3RhY2suam9pbihcIlxcblwiKX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIExvZy5lcnJvcihmaWx0ZXJlZFN0YWNrLmpvaW4oXCJcXG5cIikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZXJyLmRpZ2VzdCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgZGlnZXN0OiAke0pTT04uc3RyaW5naWZ5KGVyci5kaWdlc3QpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIuY2F1c2UpIGNvbnNvbGUuZXJyb3IoXCJDYXVzZTpcIiwgZXJyLmNhdXNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBMb2cuZXJyb3IoZXJyKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvZy1hcHAtZGlyLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJpc0Vycm9yIiwiTG9nIiwibG9nQXBwRGlyRXJyb3IiLCJlcnIiLCJzdGFjayIsImNsZWFuZWRTdGFjayIsInNwbGl0IiwibWFwIiwibGluZSIsInJlcGxhY2UiLCJmaWx0ZXJlZFN0YWNrIiwiZmlsdGVyIiwidGVzdCIsImxlbmd0aCIsImVycm9yIiwiam9pbiIsImRpZ2VzdCIsImNvbnNvbGUiLCJKU09OIiwic3RyaW5naWZ5IiwiY2F1c2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/dev/log-app-dir-error.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/helpers/i18n-provider.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/helpers/i18n-provider.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ I18NProvider: () => (/* binding */ I18NProvider)\n/* harmony export */ });\n/**\n * The I18NProvider is used to match locale aware routes, detect the locale from\n * the pathname and hostname and normalize the pathname by removing the locale\n * prefix.\n */ class I18NProvider {\n constructor(config){\n var _config_domains;\n this.config = config;\n if (!config.locales.length) {\n throw new Error(\"Invariant: No locales provided\");\n }\n this.lowerCaseLocales = config.locales.map((locale)=>locale.toLowerCase());\n this.lowerCaseDomains = (_config_domains = config.domains) == null ? void 0 : _config_domains.map((domainLocale)=>{\n var _domainLocale_locales;\n const domain = domainLocale.domain.toLowerCase();\n return {\n defaultLocale: domainLocale.defaultLocale.toLowerCase(),\n hostname: domain.split(\":\", 1)[0],\n domain,\n locales: (_domainLocale_locales = domainLocale.locales) == null ? void 0 : _domainLocale_locales.map((locale)=>locale.toLowerCase()),\n http: domainLocale.http\n };\n });\n }\n /**\n * Detects the domain locale from the hostname and the detected locale if\n * provided.\n *\n * @param hostname The hostname to detect the domain locale from, this must be lowercased.\n * @param detectedLocale The detected locale to use if the hostname does not match.\n * @returns The domain locale if found, `undefined` otherwise.\n */ detectDomainLocale(hostname, detectedLocale) {\n if (!hostname || !this.lowerCaseDomains || !this.config.domains) return;\n if (detectedLocale) detectedLocale = detectedLocale.toLowerCase();\n for(let i = 0; i < this.lowerCaseDomains.length; i++){\n var // other domains locales.\n _domainLocale_locales;\n const domainLocale = this.lowerCaseDomains[i];\n if (domainLocale.hostname === hostname || ((_domainLocale_locales = domainLocale.locales) == null ? void 0 : _domainLocale_locales.some((locale)=>locale === detectedLocale))) {\n return this.config.domains[i];\n }\n }\n return;\n }\n /**\n * Pulls the pre-computed locale and inference results from the query\n * object.\n *\n * @param pathname the pathname that could contain a locale prefix\n * @param query the query object\n * @returns the locale analysis result\n */ fromQuery(pathname, query) {\n const detectedLocale = query.__nextLocale;\n // If a locale was detected on the query, analyze the pathname to ensure\n // that the locale matches.\n if (detectedLocale) {\n const analysis = this.analyze(pathname);\n // If the analysis contained a locale we should validate it against the\n // query and strip it from the pathname.\n if (analysis.detectedLocale) {\n if (analysis.detectedLocale !== detectedLocale) {\n throw new Error(`Invariant: The detected locale does not match the locale in the query. Expected to find '${detectedLocale}' in '${pathname}' but found '${analysis.detectedLocale}'}`);\n }\n pathname = analysis.pathname;\n }\n }\n return {\n pathname,\n detectedLocale,\n inferredFromDefault: query.__nextInferredLocaleFromDefault === \"1\"\n };\n }\n /**\n * Analyzes the pathname for a locale and returns the pathname without it.\n *\n * @param pathname The pathname that could contain a locale prefix.\n * @param options The options to use when matching the locale.\n * @returns The matched locale and the pathname without the locale prefix\n * (if any).\n */ analyze(pathname, options = {}) {\n let detectedLocale = options.defaultLocale;\n // By default, we assume that the default locale was inferred if there was\n // no detected locale.\n let inferredFromDefault = typeof detectedLocale === \"string\";\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split(\"/\", 2);\n if (!segments[1]) return {\n detectedLocale,\n pathname,\n inferredFromDefault\n };\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase();\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = this.lowerCaseLocales.indexOf(segment);\n if (index < 0) return {\n detectedLocale,\n pathname,\n inferredFromDefault\n };\n // Return the case-sensitive locale.\n detectedLocale = this.config.locales[index];\n inferredFromDefault = false;\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || \"/\";\n return {\n detectedLocale,\n pathname,\n inferredFromDefault\n };\n }\n} //# sourceMappingURL=i18n-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2kxOG4tcHJvdmlkZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0NBSUMsR0FBVSxNQUFNQTtJQUNiQyxZQUFZQyxNQUFNLENBQUM7UUFDZixJQUFJQztRQUNKLElBQUksQ0FBQ0QsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0EsT0FBT0UsT0FBTyxDQUFDQyxNQUFNLEVBQUU7WUFDeEIsTUFBTSxJQUFJQyxNQUFNO1FBQ3BCO1FBQ0EsSUFBSSxDQUFDQyxnQkFBZ0IsR0FBR0wsT0FBT0UsT0FBTyxDQUFDSSxHQUFHLENBQUMsQ0FBQ0MsU0FBU0EsT0FBT0MsV0FBVztRQUN2RSxJQUFJLENBQUNDLGdCQUFnQixHQUFHLENBQUNSLGtCQUFrQkQsT0FBT1UsT0FBTyxLQUFLLE9BQU8sS0FBSyxJQUFJVCxnQkFBZ0JLLEdBQUcsQ0FBQyxDQUFDSztZQUMvRixJQUFJQztZQUNKLE1BQU1DLFNBQVNGLGFBQWFFLE1BQU0sQ0FBQ0wsV0FBVztZQUM5QyxPQUFPO2dCQUNITSxlQUFlSCxhQUFhRyxhQUFhLENBQUNOLFdBQVc7Z0JBQ3JETyxVQUFVRixPQUFPRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtnQkFDakNIO2dCQUNBWCxTQUFTLENBQUNVLHdCQUF3QkQsYUFBYVQsT0FBTyxLQUFLLE9BQU8sS0FBSyxJQUFJVSxzQkFBc0JOLEdBQUcsQ0FBQyxDQUFDQyxTQUFTQSxPQUFPQyxXQUFXO2dCQUNqSVMsTUFBTU4sYUFBYU0sSUFBSTtZQUMzQjtRQUNKO0lBQ0o7SUFDQTs7Ozs7OztHQU9ELEdBQUdDLG1CQUFtQkgsUUFBUSxFQUFFSSxjQUFjLEVBQUU7UUFDM0MsSUFBSSxDQUFDSixZQUFZLENBQUMsSUFBSSxDQUFDTixnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQ1QsTUFBTSxDQUFDVSxPQUFPLEVBQUU7UUFDakUsSUFBSVMsZ0JBQWdCQSxpQkFBaUJBLGVBQWVYLFdBQVc7UUFDL0QsSUFBSSxJQUFJWSxJQUFJLEdBQUdBLElBQUksSUFBSSxDQUFDWCxnQkFBZ0IsQ0FBQ04sTUFBTSxFQUFFaUIsSUFBSTtZQUNqRCxJQUNBLHlCQUF5QjtZQUN6QlI7WUFDQSxNQUFNRCxlQUFlLElBQUksQ0FBQ0YsZ0JBQWdCLENBQUNXLEVBQUU7WUFDN0MsSUFDQVQsYUFBYUksUUFBUSxLQUFLQSxZQUFhLEVBQUNILHdCQUF3QkQsYUFBYVQsT0FBTyxLQUFLLE9BQU8sS0FBSyxJQUFJVSxzQkFBc0JTLElBQUksQ0FBQyxDQUFDZCxTQUFTQSxXQUFXWSxlQUFjLEdBQUk7Z0JBQ3ZLLE9BQU8sSUFBSSxDQUFDbkIsTUFBTSxDQUFDVSxPQUFPLENBQUNVLEVBQUU7WUFDakM7UUFDSjtRQUNBO0lBQ0o7SUFDQTs7Ozs7OztHQU9ELEdBQUdFLFVBQVVDLFFBQVEsRUFBRUMsS0FBSyxFQUFFO1FBQ3pCLE1BQU1MLGlCQUFpQkssTUFBTUMsWUFBWTtRQUN6Qyx3RUFBd0U7UUFDeEUsMkJBQTJCO1FBQzNCLElBQUlOLGdCQUFnQjtZQUNoQixNQUFNTyxXQUFXLElBQUksQ0FBQ0MsT0FBTyxDQUFDSjtZQUM5Qix1RUFBdUU7WUFDdkUsd0NBQXdDO1lBQ3hDLElBQUlHLFNBQVNQLGNBQWMsRUFBRTtnQkFDekIsSUFBSU8sU0FBU1AsY0FBYyxLQUFLQSxnQkFBZ0I7b0JBQzVDLE1BQU0sSUFBSWYsTUFBTSxDQUFDLHlGQUF5RixFQUFFZSxlQUFlLE1BQU0sRUFBRUksU0FBUyxhQUFhLEVBQUVHLFNBQVNQLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFMO2dCQUNBSSxXQUFXRyxTQUFTSCxRQUFRO1lBQ2hDO1FBQ0o7UUFDQSxPQUFPO1lBQ0hBO1lBQ0FKO1lBQ0FTLHFCQUFxQkosTUFBTUssK0JBQStCLEtBQUs7UUFDbkU7SUFDSjtJQUNBOzs7Ozs7O0dBT0QsR0FBR0YsUUFBUUosUUFBUSxFQUFFTyxVQUFVLENBQUMsQ0FBQyxFQUFFO1FBQzlCLElBQUlYLGlCQUFpQlcsUUFBUWhCLGFBQWE7UUFDMUMsMEVBQTBFO1FBQzFFLHNCQUFzQjtRQUN0QixJQUFJYyxzQkFBc0IsT0FBT1QsbUJBQW1CO1FBQ3BELG9FQUFvRTtRQUNwRSx5RUFBeUU7UUFDekUsTUFBTVksV0FBV1IsU0FBU1AsS0FBSyxDQUFDLEtBQUs7UUFDckMsSUFBSSxDQUFDZSxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU87WUFDckJaO1lBQ0FJO1lBQ0FLO1FBQ0o7UUFDQSwwREFBMEQ7UUFDMUQsTUFBTUksVUFBVUQsUUFBUSxDQUFDLEVBQUUsQ0FBQ3ZCLFdBQVc7UUFDdkMseUVBQXlFO1FBQ3pFLG1DQUFtQztRQUNuQyxNQUFNeUIsUUFBUSxJQUFJLENBQUM1QixnQkFBZ0IsQ0FBQzZCLE9BQU8sQ0FBQ0Y7UUFDNUMsSUFBSUMsUUFBUSxHQUFHLE9BQU87WUFDbEJkO1lBQ0FJO1lBQ0FLO1FBQ0o7UUFDQSxvQ0FBb0M7UUFDcENULGlCQUFpQixJQUFJLENBQUNuQixNQUFNLENBQUNFLE9BQU8sQ0FBQytCLE1BQU07UUFDM0NMLHNCQUFzQjtRQUN0QixnREFBZ0Q7UUFDaERMLFdBQVdBLFNBQVNZLEtBQUssQ0FBQ2hCLGVBQWVoQixNQUFNLEdBQUcsTUFBTTtRQUN4RCxPQUFPO1lBQ0hnQjtZQUNBSTtZQUNBSztRQUNKO0lBQ0o7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2kxOG4tcHJvdmlkZXIuanM/MWU5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBJMThOUHJvdmlkZXIgaXMgdXNlZCB0byBtYXRjaCBsb2NhbGUgYXdhcmUgcm91dGVzLCBkZXRlY3QgdGhlIGxvY2FsZSBmcm9tXG4gKiB0aGUgcGF0aG5hbWUgYW5kIGhvc3RuYW1lIGFuZCBub3JtYWxpemUgdGhlIHBhdGhuYW1lIGJ5IHJlbW92aW5nIHRoZSBsb2NhbGVcbiAqIHByZWZpeC5cbiAqLyBleHBvcnQgY2xhc3MgSTE4TlByb3ZpZGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb25maWcpe1xuICAgICAgICB2YXIgX2NvbmZpZ19kb21haW5zO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgaWYgKCFjb25maWcubG9jYWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogTm8gbG9jYWxlcyBwcm92aWRlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvd2VyQ2FzZUxvY2FsZXMgPSBjb25maWcubG9jYWxlcy5tYXAoKGxvY2FsZSk9PmxvY2FsZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgdGhpcy5sb3dlckNhc2VEb21haW5zID0gKF9jb25maWdfZG9tYWlucyA9IGNvbmZpZy5kb21haW5zKSA9PSBudWxsID8gdm9pZCAwIDogX2NvbmZpZ19kb21haW5zLm1hcCgoZG9tYWluTG9jYWxlKT0+e1xuICAgICAgICAgICAgdmFyIF9kb21haW5Mb2NhbGVfbG9jYWxlcztcbiAgICAgICAgICAgIGNvbnN0IGRvbWFpbiA9IGRvbWFpbkxvY2FsZS5kb21haW4udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogZG9tYWluTG9jYWxlLmRlZmF1bHRMb2NhbGUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICBob3N0bmFtZTogZG9tYWluLnNwbGl0KFwiOlwiLCAxKVswXSxcbiAgICAgICAgICAgICAgICBkb21haW4sXG4gICAgICAgICAgICAgICAgbG9jYWxlczogKF9kb21haW5Mb2NhbGVfbG9jYWxlcyA9IGRvbWFpbkxvY2FsZS5sb2NhbGVzKSA9PSBudWxsID8gdm9pZCAwIDogX2RvbWFpbkxvY2FsZV9sb2NhbGVzLm1hcCgobG9jYWxlKT0+bG9jYWxlLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICAgICAgICAgIGh0dHA6IGRvbWFpbkxvY2FsZS5odHRwXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAqIERldGVjdHMgdGhlIGRvbWFpbiBsb2NhbGUgZnJvbSB0aGUgaG9zdG5hbWUgYW5kIHRoZSBkZXRlY3RlZCBsb2NhbGUgaWZcbiAgICogcHJvdmlkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBob3N0bmFtZSBUaGUgaG9zdG5hbWUgdG8gZGV0ZWN0IHRoZSBkb21haW4gbG9jYWxlIGZyb20sIHRoaXMgbXVzdCBiZSBsb3dlcmNhc2VkLlxuICAgKiBAcGFyYW0gZGV0ZWN0ZWRMb2NhbGUgVGhlIGRldGVjdGVkIGxvY2FsZSB0byB1c2UgaWYgdGhlIGhvc3RuYW1lIGRvZXMgbm90IG1hdGNoLlxuICAgKiBAcmV0dXJucyBUaGUgZG9tYWluIGxvY2FsZSBpZiBmb3VuZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLlxuICAgKi8gZGV0ZWN0RG9tYWluTG9jYWxlKGhvc3RuYW1lLCBkZXRlY3RlZExvY2FsZSkge1xuICAgICAgICBpZiAoIWhvc3RuYW1lIHx8ICF0aGlzLmxvd2VyQ2FzZURvbWFpbnMgfHwgIXRoaXMuY29uZmlnLmRvbWFpbnMpIHJldHVybjtcbiAgICAgICAgaWYgKGRldGVjdGVkTG9jYWxlKSBkZXRlY3RlZExvY2FsZSA9IGRldGVjdGVkTG9jYWxlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLmxvd2VyQ2FzZURvbWFpbnMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgdmFyIC8vIENvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBlbnN1cmVzIHRoYXQgdGhlIGxvY2FsZSBpcyBub3QgcmVwZWF0ZWQgaW5cbiAgICAgICAgICAgIC8vIG90aGVyIGRvbWFpbnMgbG9jYWxlcy5cbiAgICAgICAgICAgIF9kb21haW5Mb2NhbGVfbG9jYWxlcztcbiAgICAgICAgICAgIGNvbnN0IGRvbWFpbkxvY2FsZSA9IHRoaXMubG93ZXJDYXNlRG9tYWluc1tpXTtcbiAgICAgICAgICAgIGlmICgvLyBXZSBhc3N1bWUgdGhhdCB0aGUgaG9zdG5hbWUgaXMgYWxyZWFkeSBsb3dlcmNhc2VkLlxuICAgICAgICAgICAgZG9tYWluTG9jYWxlLmhvc3RuYW1lID09PSBob3N0bmFtZSB8fCAoKF9kb21haW5Mb2NhbGVfbG9jYWxlcyA9IGRvbWFpbkxvY2FsZS5sb2NhbGVzKSA9PSBudWxsID8gdm9pZCAwIDogX2RvbWFpbkxvY2FsZV9sb2NhbGVzLnNvbWUoKGxvY2FsZSk9PmxvY2FsZSA9PT0gZGV0ZWN0ZWRMb2NhbGUpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5kb21haW5zW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLyoqXG4gICAqIFB1bGxzIHRoZSBwcmUtY29tcHV0ZWQgbG9jYWxlIGFuZCBpbmZlcmVuY2UgcmVzdWx0cyBmcm9tIHRoZSBxdWVyeVxuICAgKiBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRobmFtZSB0aGUgcGF0aG5hbWUgdGhhdCBjb3VsZCBjb250YWluIGEgbG9jYWxlIHByZWZpeFxuICAgKiBAcGFyYW0gcXVlcnkgdGhlIHF1ZXJ5IG9iamVjdFxuICAgKiBAcmV0dXJucyB0aGUgbG9jYWxlIGFuYWx5c2lzIHJlc3VsdFxuICAgKi8gZnJvbVF1ZXJ5KHBhdGhuYW1lLCBxdWVyeSkge1xuICAgICAgICBjb25zdCBkZXRlY3RlZExvY2FsZSA9IHF1ZXJ5Ll9fbmV4dExvY2FsZTtcbiAgICAgICAgLy8gSWYgYSBsb2NhbGUgd2FzIGRldGVjdGVkIG9uIHRoZSBxdWVyeSwgYW5hbHl6ZSB0aGUgcGF0aG5hbWUgdG8gZW5zdXJlXG4gICAgICAgIC8vIHRoYXQgdGhlIGxvY2FsZSBtYXRjaGVzLlxuICAgICAgICBpZiAoZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFuYWx5c2lzID0gdGhpcy5hbmFseXplKHBhdGhuYW1lKTtcbiAgICAgICAgICAgIC8vIElmIHRoZSBhbmFseXNpcyBjb250YWluZWQgYSBsb2NhbGUgd2Ugc2hvdWxkIHZhbGlkYXRlIGl0IGFnYWluc3QgdGhlXG4gICAgICAgICAgICAvLyBxdWVyeSBhbmQgc3RyaXAgaXQgZnJvbSB0aGUgcGF0aG5hbWUuXG4gICAgICAgICAgICBpZiAoYW5hbHlzaXMuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoYW5hbHlzaXMuZGV0ZWN0ZWRMb2NhbGUgIT09IGRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YXJpYW50OiBUaGUgZGV0ZWN0ZWQgbG9jYWxlIGRvZXMgbm90IG1hdGNoIHRoZSBsb2NhbGUgaW4gdGhlIHF1ZXJ5LiBFeHBlY3RlZCB0byBmaW5kICcke2RldGVjdGVkTG9jYWxlfScgaW4gJyR7cGF0aG5hbWV9JyBidXQgZm91bmQgJyR7YW5hbHlzaXMuZGV0ZWN0ZWRMb2NhbGV9J31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBhbmFseXNpcy5wYXRobmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICBkZXRlY3RlZExvY2FsZSxcbiAgICAgICAgICAgIGluZmVycmVkRnJvbURlZmF1bHQ6IHF1ZXJ5Ll9fbmV4dEluZmVycmVkTG9jYWxlRnJvbURlZmF1bHQgPT09IFwiMVwiXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgKiBBbmFseXplcyB0aGUgcGF0aG5hbWUgZm9yIGEgbG9jYWxlIGFuZCByZXR1cm5zIHRoZSBwYXRobmFtZSB3aXRob3V0IGl0LlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aG5hbWUgVGhlIHBhdGhuYW1lIHRoYXQgY291bGQgY29udGFpbiBhIGxvY2FsZSBwcmVmaXguXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIHVzZSB3aGVuIG1hdGNoaW5nIHRoZSBsb2NhbGUuXG4gICAqIEByZXR1cm5zIFRoZSBtYXRjaGVkIGxvY2FsZSBhbmQgdGhlIHBhdGhuYW1lIHdpdGhvdXQgdGhlIGxvY2FsZSBwcmVmaXhcbiAgICogICAgICAgICAgKGlmIGFueSkuXG4gICAqLyBhbmFseXplKHBhdGhuYW1lLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgbGV0IGRldGVjdGVkTG9jYWxlID0gb3B0aW9ucy5kZWZhdWx0TG9jYWxlO1xuICAgICAgICAvLyBCeSBkZWZhdWx0LCB3ZSBhc3N1bWUgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgd2FzIGluZmVycmVkIGlmIHRoZXJlIHdhc1xuICAgICAgICAvLyBubyBkZXRlY3RlZCBsb2NhbGUuXG4gICAgICAgIGxldCBpbmZlcnJlZEZyb21EZWZhdWx0ID0gdHlwZW9mIGRldGVjdGVkTG9jYWxlID09PSBcInN0cmluZ1wiO1xuICAgICAgICAvLyBUaGUgZmlyc3Qgc2VnbWVudCB3aWxsIGJlIGVtcHR5LCBiZWNhdXNlIGl0IGhhcyBhIGxlYWRpbmcgYC9gLiBJZlxuICAgICAgICAvLyB0aGVyZSBpcyBubyBmdXJ0aGVyIHNlZ21lbnQsIHRoZXJlIGlzIG5vIGxvY2FsZSAob3IgaXQncyB0aGUgZGVmYXVsdCkuXG4gICAgICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aG5hbWUuc3BsaXQoXCIvXCIsIDIpO1xuICAgICAgICBpZiAoIXNlZ21lbnRzWzFdKSByZXR1cm4ge1xuICAgICAgICAgICAgZGV0ZWN0ZWRMb2NhbGUsXG4gICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgIGluZmVycmVkRnJvbURlZmF1bHRcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVGhlIHNlY29uZCBzZWdtZW50IHdpbGwgY29udGFpbiB0aGUgbG9jYWxlIHBhcnQgaWYgYW55LlxuICAgICAgICBjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbMV0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgLy8gU2VlIGlmIHRoZSBzZWdtZW50IG1hdGNoZXMgb25lIG9mIHRoZSBsb2NhbGVzLiBJZiBpdCBkb2Vzbid0LCB0aGVyZSBpc1xuICAgICAgICAvLyBubyBsb2NhbGUgKG9yIGl0J3MgdGhlIGRlZmF1bHQpLlxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubG93ZXJDYXNlTG9jYWxlcy5pbmRleE9mKHNlZ21lbnQpO1xuICAgICAgICBpZiAoaW5kZXggPCAwKSByZXR1cm4ge1xuICAgICAgICAgICAgZGV0ZWN0ZWRMb2NhbGUsXG4gICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgIGluZmVycmVkRnJvbURlZmF1bHRcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSBjYXNlLXNlbnNpdGl2ZSBsb2NhbGUuXG4gICAgICAgIGRldGVjdGVkTG9jYWxlID0gdGhpcy5jb25maWcubG9jYWxlc1tpbmRleF07XG4gICAgICAgIGluZmVycmVkRnJvbURlZmF1bHQgPSBmYWxzZTtcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBgLyR7bG9jYWxlfWAgcGFydCBvZiB0aGUgcGF0aG5hbWUuXG4gICAgICAgIHBhdGhuYW1lID0gcGF0aG5hbWUuc2xpY2UoZGV0ZWN0ZWRMb2NhbGUubGVuZ3RoICsgMSkgfHwgXCIvXCI7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZXRlY3RlZExvY2FsZSxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgaW5mZXJyZWRGcm9tRGVmYXVsdFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aTE4bi1wcm92aWRlci5qcy5tYXAiXSwibmFtZXMiOlsiSTE4TlByb3ZpZGVyIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJfY29uZmlnX2RvbWFpbnMiLCJsb2NhbGVzIiwibGVuZ3RoIiwiRXJyb3IiLCJsb3dlckNhc2VMb2NhbGVzIiwibWFwIiwibG9jYWxlIiwidG9Mb3dlckNhc2UiLCJsb3dlckNhc2VEb21haW5zIiwiZG9tYWlucyIsImRvbWFpbkxvY2FsZSIsIl9kb21haW5Mb2NhbGVfbG9jYWxlcyIsImRvbWFpbiIsImRlZmF1bHRMb2NhbGUiLCJob3N0bmFtZSIsInNwbGl0IiwiaHR0cCIsImRldGVjdERvbWFpbkxvY2FsZSIsImRldGVjdGVkTG9jYWxlIiwiaSIsInNvbWUiLCJmcm9tUXVlcnkiLCJwYXRobmFtZSIsInF1ZXJ5IiwiX19uZXh0TG9jYWxlIiwiYW5hbHlzaXMiLCJhbmFseXplIiwiaW5mZXJyZWRGcm9tRGVmYXVsdCIsIl9fbmV4dEluZmVycmVkTG9jYWxlRnJvbURlZmF1bHQiLCJvcHRpb25zIiwic2VnbWVudHMiLCJzZWdtZW50IiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/helpers/i18n-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ INTERCEPTION_ROUTE_MARKERS: () => (/* binding */ INTERCEPTION_ROUTE_MARKERS),\n/* harmony export */ extractInterceptionRouteInformation: () => (/* binding */ extractInterceptionRouteInformation),\n/* harmony export */ isInterceptionRouteAppPath: () => (/* binding */ isInterceptionRouteAppPath)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/router/utils/app-paths */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n\n// order matters here, the first match will be used\nconst INTERCEPTION_ROUTE_MARKERS = [\n \"(..)(..)\",\n \"(.)\",\n \"(..)\",\n \"(...)\"\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split(\"/\").find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split(\"/\")){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw new Error(`Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`);\n }\n interceptingRoute = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_0__.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case \"(.)\":\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === \"/\") {\n interceptedRoute = `/${interceptedRoute}`;\n } else {\n interceptedRoute = interceptingRoute + \"/\" + interceptedRoute;\n }\n break;\n case \"(..)\":\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === \"/\") {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`);\n }\n interceptedRoute = interceptingRoute.split(\"/\").slice(0, -1).concat(interceptedRoute).join(\"/\");\n break;\n case \"(...)\":\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = \"/\" + interceptedRoute;\n break;\n case \"(..)(..)\":\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split(\"/\");\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`);\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join(\"/\");\n break;\n default:\n throw new Error(\"Invariant: unexpected marker\");\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE4RTtBQUM5RSxtREFBbUQ7QUFDNUMsTUFBTUMsNkJBQTZCO0lBQ3RDO0lBQ0E7SUFDQTtJQUNBO0NBQ0gsQ0FBQztBQUNLLFNBQVNDLDJCQUEyQkMsSUFBSTtJQUMzQyx3Q0FBd0M7SUFDeEMsT0FBT0EsS0FBS0MsS0FBSyxDQUFDLEtBQUtDLElBQUksQ0FBQyxDQUFDQyxVQUFVTCwyQkFBMkJJLElBQUksQ0FBQyxDQUFDRSxJQUFJRCxRQUFRRSxVQUFVLENBQUNELFNBQVNFO0FBQzVHO0FBQ08sU0FBU0Msb0NBQW9DUCxJQUFJO0lBQ3BELElBQUlRLG1CQUFtQkMsUUFBUUM7SUFDL0IsS0FBSyxNQUFNUCxXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBSztRQUNsQ1EsU0FBU1gsMkJBQTJCSSxJQUFJLENBQUMsQ0FBQ0UsSUFBSUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNqRSxJQUFJSyxRQUFRO1lBQ1IsQ0FBQ0QsbUJBQW1CRSxpQkFBaUIsR0FBR1YsS0FBS0MsS0FBSyxDQUFDUSxRQUFRO1lBQzNEO1FBQ0o7SUFDSjtJQUNBLElBQUksQ0FBQ0QscUJBQXFCLENBQUNDLFVBQVUsQ0FBQ0Msa0JBQWtCO1FBQ3BELE1BQU0sSUFBSUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFWCxLQUFLLGlGQUFpRixDQUFDO0lBQzFJO0lBQ0FRLG9CQUFvQlgsb0ZBQWdCQSxDQUFDVyxtQkFBbUIsaURBQWlEOztJQUV6RyxPQUFPQztRQUNILEtBQUs7WUFDRCxvSUFBb0k7WUFDcEksSUFBSUQsc0JBQXNCLEtBQUs7Z0JBQzNCRSxtQkFBbUIsQ0FBQyxDQUFDLEVBQUVBLGlCQUFpQixDQUFDO1lBQzdDLE9BQU87Z0JBQ0hBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQ2pEO1lBQ0E7UUFDSixLQUFLO1lBQ0QsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUMzQixNQUFNLElBQUlHLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRVgsS0FBSyw0REFBNEQsQ0FBQztZQUNySDtZQUNBVSxtQkFBbUJGLGtCQUFrQlAsS0FBSyxDQUFDLEtBQUtXLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsTUFBTSxDQUFDSCxrQkFBa0JJLElBQUksQ0FBQztZQUMzRjtRQUNKLEtBQUs7WUFDRCxrSUFBa0k7WUFDbElKLG1CQUFtQixNQUFNQTtZQUN6QjtRQUNKLEtBQUs7WUFDRCxpSUFBaUk7WUFDakksTUFBTUsseUJBQXlCUCxrQkFBa0JQLEtBQUssQ0FBQztZQUN2RCxJQUFJYyx1QkFBdUJDLE1BQU0sSUFBSSxHQUFHO2dCQUNwQyxNQUFNLElBQUlMLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRVgsS0FBSywrREFBK0QsQ0FBQztZQUN4SDtZQUNBVSxtQkFBbUJLLHVCQUF1QkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHQyxNQUFNLENBQUNILGtCQUFrQkksSUFBSSxDQUFDO1lBQ3JGO1FBQ0o7WUFDSSxNQUFNLElBQUlILE1BQU07SUFDeEI7SUFDQSxPQUFPO1FBQ0hIO1FBQ0FFO0lBQ0o7QUFDSixFQUVBLCtDQUErQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanM/YjAyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVBcHBQYXRoIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiO1xuLy8gb3JkZXIgbWF0dGVycyBoZXJlLCB0aGUgZmlyc3QgbWF0Y2ggd2lsbCBiZSB1c2VkXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgPSBbXG4gICAgXCIoLi4pKC4uKVwiLFxuICAgIFwiKC4pXCIsXG4gICAgXCIoLi4pXCIsXG4gICAgXCIoLi4uKVwiXG5dO1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGgpIHtcbiAgICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIHBhdGguc3BsaXQoXCIvXCIpLmZpbmQoKHNlZ21lbnQpPT5JTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKT0+c2VnbWVudC5zdGFydHNXaXRoKG0pKSkgIT09IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbihwYXRoKSB7XG4gICAgbGV0IGludGVyY2VwdGluZ1JvdXRlLCBtYXJrZXIsIGludGVyY2VwdGVkUm91dGU7XG4gICAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGguc3BsaXQoXCIvXCIpKXtcbiAgICAgICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSk7XG4gICAgICAgIGlmIChtYXJrZXIpIHtcbiAgICAgICAgICAgIFtpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZV0gPSBwYXRoLnNwbGl0KG1hcmtlciwgMik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWludGVyY2VwdGluZ1JvdXRlIHx8ICFtYXJrZXIgfHwgIWludGVyY2VwdGVkUm91dGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmApO1xuICAgIH1cbiAgICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcbiAgICA7XG4gICAgc3dpdGNoKG1hcmtlcil7XG4gICAgICAgIGNhc2UgXCIoLilcIjpcbiAgICAgICAgICAgIC8vICguKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggd2l0aCBzaWJsaW5nIHJvdXRlcywgc28gd2UganVzdCBuZWVkIHRvIGFwcGVuZCB0aGUgaW50ZXJjZXB0ZWQgcm91dGUgdG8gdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgICAgICAgaWYgKGludGVyY2VwdGluZ1JvdXRlID09PSBcIi9cIikge1xuICAgICAgICAgICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyBcIi9cIiArIGludGVyY2VwdGVkUm91dGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIiguLilcIjpcbiAgICAgICAgICAgIC8vICguLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIGF0IG9uZSBsZXZlbCB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICAgICAgICBpZiAoaW50ZXJjZXB0aW5nUm91dGUgPT09IFwiL1wiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCwgdXNlICguKSBpbnN0ZWFkLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KFwiL1wiKS5zbGljZSgwLCAtMSkuY29uY2F0KGludGVyY2VwdGVkUm91dGUpLmpvaW4oXCIvXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCIoLi4uKVwiOlxuICAgICAgICAgICAgLy8gKC4uLikgd2lsbCBtYXRjaCB0aGUgcm91dGUgc2VnbWVudCBpbiB0aGUgcm9vdCBkaXJlY3RvcnksIHNvIHdlIG5lZWQgdG8gdXNlIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmVwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IFwiL1wiICsgaW50ZXJjZXB0ZWRSb3V0ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiKC4uKSguLilcIjpcbiAgICAgICAgICAgIC8vICguLikoLi4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCBhdCB0d28gbGV2ZWxzIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCB0d28gc2VnbWVudHMgb2YgdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwgb3Igb25lIGxldmVsIHVwLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGUuc2xpY2UoMCwgLTIpLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKS5qb2luKFwiL1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaW50ZXJjZXB0aW5nUm91dGUsXG4gICAgICAgIGludGVyY2VwdGVkUm91dGVcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnRlcmNlcHRpb24tcm91dGVzLmpzLm1hcCJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsInBhdGgiLCJzcGxpdCIsImZpbmQiLCJzZWdtZW50IiwibSIsInN0YXJ0c1dpdGgiLCJ1bmRlZmluZWQiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwic2xpY2UiLCJjb25jYXQiLCJqb2luIiwic3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js":
-/*!**************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js ***!
- \**************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsoluteFilenameNormalizer: () => (/* binding */ AbsoluteFilenameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_page_path_absolute_path_to_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/page-path/absolute-path-to-page */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\");\n\n/**\n * Normalizes a given filename so that it's relative to the provided directory.\n * It will also strip the extension (if provided) and the trailing `/index`.\n */ class AbsoluteFilenameNormalizer {\n /**\n *\n * @param dir the directory for which the files should be made relative to\n * @param extensions the extensions the file could have\n * @param keepIndex when `true` the trailing `/index` is _not_ removed\n */ constructor(dir, extensions, pagesType){\n this.dir = dir;\n this.extensions = extensions;\n this.pagesType = pagesType;\n }\n normalize(filename) {\n return (0,_shared_lib_page_path_absolute_path_to_page__WEBPACK_IMPORTED_MODULE_0__.absolutePathToPage)(filename, {\n extensions: this.extensions,\n keepIndex: false,\n dir: this.dir,\n pagesType: this.pagesType\n });\n }\n} //# sourceMappingURL=absolute-filename-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9hYnNvbHV0ZS1maWxlbmFtZS1ub3JtYWxpemVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlGO0FBQ3pGOzs7Q0FHQyxHQUFVLE1BQU1DO0lBQ2I7Ozs7O0dBS0QsR0FBR0MsWUFBWUMsR0FBRyxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsQ0FBQztRQUNyQyxJQUFJLENBQUNGLEdBQUcsR0FBR0E7UUFDWCxJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ3JCO0lBQ0FDLFVBQVVDLFFBQVEsRUFBRTtRQUNoQixPQUFPUCwrRkFBa0JBLENBQUNPLFVBQVU7WUFDaENILFlBQVksSUFBSSxDQUFDQSxVQUFVO1lBQzNCSSxXQUFXO1lBQ1hMLEtBQUssSUFBSSxDQUFDQSxHQUFHO1lBQ2JFLFdBQVcsSUFBSSxDQUFDQSxTQUFTO1FBQzdCO0lBQ0o7QUFDSixFQUVBLHdEQUF3RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9hYnNvbHV0ZS1maWxlbmFtZS1ub3JtYWxpemVyLmpzPzNkZGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWJzb2x1dGVQYXRoVG9QYWdlIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL2Fic29sdXRlLXBhdGgtdG8tcGFnZVwiO1xuLyoqXG4gKiBOb3JtYWxpemVzIGEgZ2l2ZW4gZmlsZW5hbWUgc28gdGhhdCBpdCdzIHJlbGF0aXZlIHRvIHRoZSBwcm92aWRlZCBkaXJlY3RvcnkuXG4gKiBJdCB3aWxsIGFsc28gc3RyaXAgdGhlIGV4dGVuc2lvbiAoaWYgcHJvdmlkZWQpIGFuZCB0aGUgdHJhaWxpbmcgYC9pbmRleGAuXG4gKi8gZXhwb3J0IGNsYXNzIEFic29sdXRlRmlsZW5hbWVOb3JtYWxpemVyIHtcbiAgICAvKipcbiAgICpcbiAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0b3J5IGZvciB3aGljaCB0aGUgZmlsZXMgc2hvdWxkIGJlIG1hZGUgcmVsYXRpdmUgdG9cbiAgICogQHBhcmFtIGV4dGVuc2lvbnMgdGhlIGV4dGVuc2lvbnMgdGhlIGZpbGUgY291bGQgaGF2ZVxuICAgKiBAcGFyYW0ga2VlcEluZGV4IHdoZW4gYHRydWVgIHRoZSB0cmFpbGluZyBgL2luZGV4YCBpcyBfbm90XyByZW1vdmVkXG4gICAqLyBjb25zdHJ1Y3RvcihkaXIsIGV4dGVuc2lvbnMsIHBhZ2VzVHlwZSl7XG4gICAgICAgIHRoaXMuZGlyID0gZGlyO1xuICAgICAgICB0aGlzLmV4dGVuc2lvbnMgPSBleHRlbnNpb25zO1xuICAgICAgICB0aGlzLnBhZ2VzVHlwZSA9IHBhZ2VzVHlwZTtcbiAgICB9XG4gICAgbm9ybWFsaXplKGZpbGVuYW1lKSB7XG4gICAgICAgIHJldHVybiBhYnNvbHV0ZVBhdGhUb1BhZ2UoZmlsZW5hbWUsIHtcbiAgICAgICAgICAgIGV4dGVuc2lvbnM6IHRoaXMuZXh0ZW5zaW9ucyxcbiAgICAgICAgICAgIGtlZXBJbmRleDogZmFsc2UsXG4gICAgICAgICAgICBkaXI6IHRoaXMuZGlyLFxuICAgICAgICAgICAgcGFnZXNUeXBlOiB0aGlzLnBhZ2VzVHlwZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFic29sdXRlLWZpbGVuYW1lLW5vcm1hbGl6ZXIuanMubWFwIl0sIm5hbWVzIjpbImFic29sdXRlUGF0aFRvUGFnZSIsIkFic29sdXRlRmlsZW5hbWVOb3JtYWxpemVyIiwiY29uc3RydWN0b3IiLCJkaXIiLCJleHRlbnNpb25zIiwicGFnZXNUeXBlIiwibm9ybWFsaXplIiwiZmlsZW5hbWUiLCJrZWVwSW5kZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-bundle-path-normalizer.js":
-/*!**********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-bundle-path-normalizer.js ***!
- \**********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppBundlePathNormalizer: () => (/* binding */ AppBundlePathNormalizer),\n/* harmony export */ DevAppBundlePathNormalizer: () => (/* binding */ DevAppBundlePathNormalizer)\n/* harmony export */ });\n/* harmony import */ var _normalizers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../normalizers */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/normalizers.js\");\n/* harmony import */ var _prefixing_normalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../prefixing-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/prefixing-normalizer.js\");\n/* harmony import */ var _shared_lib_page_path_normalize_page_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../shared/lib/page-path/normalize-page-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-page-path.js\");\n\n\n\nclass AppBundlePathNormalizer extends _prefixing_normalizer__WEBPACK_IMPORTED_MODULE_1__.PrefixingNormalizer {\n constructor(){\n super(\"app\");\n }\n normalize(page) {\n return super.normalize((0,_shared_lib_page_path_normalize_page_path__WEBPACK_IMPORTED_MODULE_2__.normalizePagePath)(page));\n }\n}\nclass DevAppBundlePathNormalizer extends _normalizers__WEBPACK_IMPORTED_MODULE_0__.Normalizers {\n constructor(pageNormalizer){\n super([\n // This should normalize the filename to a page.\n pageNormalizer,\n // Normalize the app page to a pathname.\n new AppBundlePathNormalizer()\n ]);\n }\n normalize(filename) {\n return super.normalize(filename);\n }\n} //# sourceMappingURL=app-bundle-path-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9hcHAvYXBwLWJ1bmRsZS1wYXRoLW5vcm1hbGl6ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBZ0Q7QUFDaUI7QUFDMkI7QUFDckYsTUFBTUcsZ0NBQWdDRixzRUFBbUJBO0lBQzVERyxhQUFhO1FBQ1QsS0FBSyxDQUFDO0lBQ1Y7SUFDQUMsVUFBVUMsSUFBSSxFQUFFO1FBQ1osT0FBTyxLQUFLLENBQUNELFVBQVVILDRGQUFpQkEsQ0FBQ0k7SUFDN0M7QUFDSjtBQUNPLE1BQU1DLG1DQUFtQ1AscURBQVdBO0lBQ3ZESSxZQUFZSSxjQUFjLENBQUM7UUFDdkIsS0FBSyxDQUFDO1lBQ0YsZ0RBQWdEO1lBQ2hEQTtZQUNBLHdDQUF3QztZQUN4QyxJQUFJTDtTQUNQO0lBQ0w7SUFDQUUsVUFBVUksUUFBUSxFQUFFO1FBQ2hCLE9BQU8sS0FBSyxDQUFDSixVQUFVSTtJQUMzQjtBQUNKLEVBRUEsc0RBQXNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL2J1aWx0L2FwcC9hcHAtYnVuZGxlLXBhdGgtbm9ybWFsaXplci5qcz81M2M5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vcm1hbGl6ZXJzIH0gZnJvbSBcIi4uLy4uL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgeyBQcmVmaXhpbmdOb3JtYWxpemVyIH0gZnJvbSBcIi4uLy4uL3ByZWZpeGluZy1ub3JtYWxpemVyXCI7XG5pbXBvcnQgeyBub3JtYWxpemVQYWdlUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGFnZS1wYXRoXCI7XG5leHBvcnQgY2xhc3MgQXBwQnVuZGxlUGF0aE5vcm1hbGl6ZXIgZXh0ZW5kcyBQcmVmaXhpbmdOb3JtYWxpemVyIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihcImFwcFwiKTtcbiAgICB9XG4gICAgbm9ybWFsaXplKHBhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLm5vcm1hbGl6ZShub3JtYWxpemVQYWdlUGF0aChwYWdlKSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIERldkFwcEJ1bmRsZVBhdGhOb3JtYWxpemVyIGV4dGVuZHMgTm9ybWFsaXplcnMge1xuICAgIGNvbnN0cnVjdG9yKHBhZ2VOb3JtYWxpemVyKXtcbiAgICAgICAgc3VwZXIoW1xuICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm9ybWFsaXplIHRoZSBmaWxlbmFtZSB0byBhIHBhZ2UuXG4gICAgICAgICAgICBwYWdlTm9ybWFsaXplcixcbiAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgYXBwIHBhZ2UgdG8gYSBwYXRobmFtZS5cbiAgICAgICAgICAgIG5ldyBBcHBCdW5kbGVQYXRoTm9ybWFsaXplcigpXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBub3JtYWxpemUoZmlsZW5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLm5vcm1hbGl6ZShmaWxlbmFtZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtYnVuZGxlLXBhdGgtbm9ybWFsaXplci5qcy5tYXAiXSwibmFtZXMiOlsiTm9ybWFsaXplcnMiLCJQcmVmaXhpbmdOb3JtYWxpemVyIiwibm9ybWFsaXplUGFnZVBhdGgiLCJBcHBCdW5kbGVQYXRoTm9ybWFsaXplciIsImNvbnN0cnVjdG9yIiwibm9ybWFsaXplIiwicGFnZSIsIkRldkFwcEJ1bmRsZVBhdGhOb3JtYWxpemVyIiwicGFnZU5vcm1hbGl6ZXIiLCJmaWxlbmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-bundle-path-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-filename-normalizer.js":
-/*!*******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-filename-normalizer.js ***!
- \*******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppFilenameNormalizer: () => (/* binding */ AppFilenameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n/* harmony import */ var _prefixing_normalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../prefixing-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/prefixing-normalizer.js\");\n\n\nclass AppFilenameNormalizer extends _prefixing_normalizer__WEBPACK_IMPORTED_MODULE_1__.PrefixingNormalizer {\n constructor(distDir){\n super(distDir, _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__.SERVER_DIRECTORY);\n }\n normalize(manifestFilename) {\n return super.normalize(manifestFilename);\n }\n} //# sourceMappingURL=app-filename-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9hcHAvYXBwLWZpbGVuYW1lLW5vcm1hbGl6ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXVFO0FBQ047QUFDMUQsTUFBTUUsOEJBQThCRCxzRUFBbUJBO0lBQzFERSxZQUFZQyxPQUFPLENBQUM7UUFDaEIsS0FBSyxDQUFDQSxTQUFTSixtRUFBZ0JBO0lBQ25DO0lBQ0FLLFVBQVVDLGdCQUFnQixFQUFFO1FBQ3hCLE9BQU8sS0FBSyxDQUFDRCxVQUFVQztJQUMzQjtBQUNKLEVBRUEsbURBQW1EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL2J1aWx0L2FwcC9hcHAtZmlsZW5hbWUtbm9ybWFsaXplci5qcz80NzA4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFUlZFUl9ESVJFQ1RPUlkgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFByZWZpeGluZ05vcm1hbGl6ZXIgfSBmcm9tIFwiLi4vLi4vcHJlZml4aW5nLW5vcm1hbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBcHBGaWxlbmFtZU5vcm1hbGl6ZXIgZXh0ZW5kcyBQcmVmaXhpbmdOb3JtYWxpemVyIHtcbiAgICBjb25zdHJ1Y3RvcihkaXN0RGlyKXtcbiAgICAgICAgc3VwZXIoZGlzdERpciwgU0VSVkVSX0RJUkVDVE9SWSk7XG4gICAgfVxuICAgIG5vcm1hbGl6ZShtYW5pZmVzdEZpbGVuYW1lKSB7XG4gICAgICAgIHJldHVybiBzdXBlci5ub3JtYWxpemUobWFuaWZlc3RGaWxlbmFtZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtZmlsZW5hbWUtbm9ybWFsaXplci5qcy5tYXAiXSwibmFtZXMiOlsiU0VSVkVSX0RJUkVDVE9SWSIsIlByZWZpeGluZ05vcm1hbGl6ZXIiLCJBcHBGaWxlbmFtZU5vcm1hbGl6ZXIiLCJjb25zdHJ1Y3RvciIsImRpc3REaXIiLCJub3JtYWxpemUiLCJtYW5pZmVzdEZpbGVuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-filename-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js":
-/*!***************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js ***!
- \***************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DevAppPageNormalizer: () => (/* binding */ DevAppPageNormalizer)\n/* harmony export */ });\n/* harmony import */ var _lib_page_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../lib/page-types */ \"(ssr)/../../node_modules/next/dist/esm/lib/page-types.js\");\n/* harmony import */ var _absolute_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../absolute-filename-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\");\n\n\n/**\n * DevAppPageNormalizer is a normalizer that is used to normalize a pathname\n * to a page in the `app` directory.\n */ class DevAppPageNormalizer extends _absolute_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__.AbsoluteFilenameNormalizer {\n constructor(appDir, extensions){\n super(appDir, extensions, _lib_page_types__WEBPACK_IMPORTED_MODULE_0__.PAGE_TYPES.APP);\n }\n} //# sourceMappingURL=app-page-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9hcHAvYXBwLXBhZ2Utbm9ybWFsaXplci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMkQ7QUFDcUI7QUFDaEY7OztDQUdDLEdBQVUsTUFBTUUsNkJBQTZCRCxxRkFBMEJBO0lBQ3BFRSxZQUFZQyxNQUFNLEVBQUVDLFVBQVUsQ0FBQztRQUMzQixLQUFLLENBQUNELFFBQVFDLFlBQVlMLHVEQUFVQSxDQUFDTSxHQUFHO0lBQzVDO0FBQ0osRUFFQSwrQ0FBK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvbm9ybWFsaXplcnMvYnVpbHQvYXBwL2FwcC1wYWdlLW5vcm1hbGl6ZXIuanM/YzhiNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQQUdFX1RZUEVTIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2xpYi9wYWdlLXR5cGVzXCI7XG5pbXBvcnQgeyBBYnNvbHV0ZUZpbGVuYW1lTm9ybWFsaXplciB9IGZyb20gXCIuLi8uLi9hYnNvbHV0ZS1maWxlbmFtZS1ub3JtYWxpemVyXCI7XG4vKipcbiAqIERldkFwcFBhZ2VOb3JtYWxpemVyIGlzIGEgbm9ybWFsaXplciB0aGF0IGlzIHVzZWQgdG8gbm9ybWFsaXplIGEgcGF0aG5hbWVcbiAqIHRvIGEgcGFnZSBpbiB0aGUgYGFwcGAgZGlyZWN0b3J5LlxuICovIGV4cG9ydCBjbGFzcyBEZXZBcHBQYWdlTm9ybWFsaXplciBleHRlbmRzIEFic29sdXRlRmlsZW5hbWVOb3JtYWxpemVyIHtcbiAgICBjb25zdHJ1Y3RvcihhcHBEaXIsIGV4dGVuc2lvbnMpe1xuICAgICAgICBzdXBlcihhcHBEaXIsIGV4dGVuc2lvbnMsIFBBR0VfVFlQRVMuQVBQKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLW5vcm1hbGl6ZXIuanMubWFwIl0sIm5hbWVzIjpbIlBBR0VfVFlQRVMiLCJBYnNvbHV0ZUZpbGVuYW1lTm9ybWFsaXplciIsIkRldkFwcFBhZ2VOb3JtYWxpemVyIiwiY29uc3RydWN0b3IiLCJhcHBEaXIiLCJleHRlbnNpb25zIiwiQVBQIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-pathname-normalizer.js":
-/*!*******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-pathname-normalizer.js ***!
- \*******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppPathnameNormalizer: () => (/* binding */ AppPathnameNormalizer),\n/* harmony export */ DevAppPathnameNormalizer: () => (/* binding */ DevAppPathnameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../shared/lib/router/utils/app-paths */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _normalizers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../normalizers */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/normalizers.js\");\n/* harmony import */ var _wrap_normalizer_fn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../wrap-normalizer-fn */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/wrap-normalizer-fn.js\");\n/* harmony import */ var _underscore_normalizer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../underscore-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/underscore-normalizer.js\");\n\n\n\n\nclass AppPathnameNormalizer extends _normalizers__WEBPACK_IMPORTED_MODULE_1__.Normalizers {\n constructor(){\n super([\n // The pathname to match should have the trailing `/page` and other route\n // group information stripped from it.\n (0,_wrap_normalizer_fn__WEBPACK_IMPORTED_MODULE_2__.wrapNormalizerFn)(_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_0__.normalizeAppPath),\n // The page should have the `%5F` characters replaced with `_` characters.\n new _underscore_normalizer__WEBPACK_IMPORTED_MODULE_3__.UnderscoreNormalizer()\n ]);\n }\n normalize(page) {\n return super.normalize(page);\n }\n}\nclass DevAppPathnameNormalizer extends _normalizers__WEBPACK_IMPORTED_MODULE_1__.Normalizers {\n constructor(pageNormalizer){\n super([\n // This should normalize the filename to a page.\n pageNormalizer,\n // Normalize the app page to a pathname.\n new AppPathnameNormalizer()\n ]);\n }\n normalize(filename) {\n return super.normalize(filename);\n }\n} //# sourceMappingURL=app-pathname-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9hcHAvYXBwLXBhdGhuYW1lLW5vcm1hbGl6ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQW9GO0FBQ3BDO0FBQ1k7QUFDTztBQUM1RCxNQUFNSSw4QkFBOEJILHFEQUFXQTtJQUNsREksYUFBYTtRQUNULEtBQUssQ0FBQztZQUNGLHlFQUF5RTtZQUN6RSxzQ0FBc0M7WUFDdENILHFFQUFnQkEsQ0FBQ0YsZ0ZBQWdCQTtZQUNqQywwRUFBMEU7WUFDMUUsSUFBSUcsd0VBQW9CQTtTQUMzQjtJQUNMO0lBQ0FHLFVBQVVDLElBQUksRUFBRTtRQUNaLE9BQU8sS0FBSyxDQUFDRCxVQUFVQztJQUMzQjtBQUNKO0FBQ08sTUFBTUMsaUNBQWlDUCxxREFBV0E7SUFDckRJLFlBQVlJLGNBQWMsQ0FBQztRQUN2QixLQUFLLENBQUM7WUFDRixnREFBZ0Q7WUFDaERBO1lBQ0Esd0NBQXdDO1lBQ3hDLElBQUlMO1NBQ1A7SUFDTDtJQUNBRSxVQUFVSSxRQUFRLEVBQUU7UUFDaEIsT0FBTyxLQUFLLENBQUNKLFVBQVVJO0lBQzNCO0FBQ0osRUFFQSxtREFBbUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvbm9ybWFsaXplcnMvYnVpbHQvYXBwL2FwcC1wYXRobmFtZS1ub3JtYWxpemVyLmpzPzExMzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZXJzIH0gZnJvbSBcIi4uLy4uL25vcm1hbGl6ZXJzXCI7XG5pbXBvcnQgeyB3cmFwTm9ybWFsaXplckZuIH0gZnJvbSBcIi4uLy4uL3dyYXAtbm9ybWFsaXplci1mblwiO1xuaW1wb3J0IHsgVW5kZXJzY29yZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi4vLi4vdW5kZXJzY29yZS1ub3JtYWxpemVyXCI7XG5leHBvcnQgY2xhc3MgQXBwUGF0aG5hbWVOb3JtYWxpemVyIGV4dGVuZHMgTm9ybWFsaXplcnMge1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKFtcbiAgICAgICAgICAgIC8vIFRoZSBwYXRobmFtZSB0byBtYXRjaCBzaG91bGQgaGF2ZSB0aGUgdHJhaWxpbmcgYC9wYWdlYCBhbmQgb3RoZXIgcm91dGVcbiAgICAgICAgICAgIC8vIGdyb3VwIGluZm9ybWF0aW9uIHN0cmlwcGVkIGZyb20gaXQuXG4gICAgICAgICAgICB3cmFwTm9ybWFsaXplckZuKG5vcm1hbGl6ZUFwcFBhdGgpLFxuICAgICAgICAgICAgLy8gVGhlIHBhZ2Ugc2hvdWxkIGhhdmUgdGhlIGAlNUZgIGNoYXJhY3RlcnMgcmVwbGFjZWQgd2l0aCBgX2AgY2hhcmFjdGVycy5cbiAgICAgICAgICAgIG5ldyBVbmRlcnNjb3JlTm9ybWFsaXplcigpXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBub3JtYWxpemUocGFnZSkge1xuICAgICAgICByZXR1cm4gc3VwZXIubm9ybWFsaXplKHBhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBEZXZBcHBQYXRobmFtZU5vcm1hbGl6ZXIgZXh0ZW5kcyBOb3JtYWxpemVycyB7XG4gICAgY29uc3RydWN0b3IocGFnZU5vcm1hbGl6ZXIpe1xuICAgICAgICBzdXBlcihbXG4gICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBub3JtYWxpemUgdGhlIGZpbGVuYW1lIHRvIGEgcGFnZS5cbiAgICAgICAgICAgIHBhZ2VOb3JtYWxpemVyLFxuICAgICAgICAgICAgLy8gTm9ybWFsaXplIHRoZSBhcHAgcGFnZSB0byBhIHBhdGhuYW1lLlxuICAgICAgICAgICAgbmV3IEFwcFBhdGhuYW1lTm9ybWFsaXplcigpXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBub3JtYWxpemUoZmlsZW5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLm5vcm1hbGl6ZShmaWxlbmFtZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcGF0aG5hbWUtbm9ybWFsaXplci5qcy5tYXAiXSwibmFtZXMiOlsibm9ybWFsaXplQXBwUGF0aCIsIk5vcm1hbGl6ZXJzIiwid3JhcE5vcm1hbGl6ZXJGbiIsIlVuZGVyc2NvcmVOb3JtYWxpemVyIiwiQXBwUGF0aG5hbWVOb3JtYWxpemVyIiwiY29uc3RydWN0b3IiLCJub3JtYWxpemUiLCJwYWdlIiwiRGV2QXBwUGF0aG5hbWVOb3JtYWxpemVyIiwicGFnZU5vcm1hbGl6ZXIiLCJmaWxlbmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-pathname-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/index.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/app/index.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppNormalizers: () => (/* binding */ AppNormalizers),\n/* harmony export */ DevAppNormalizers: () => (/* binding */ DevAppNormalizers)\n/* harmony export */ });\n/* harmony import */ var _app_bundle_path_normalizer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app-bundle-path-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-bundle-path-normalizer.js\");\n/* harmony import */ var _app_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-filename-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-filename-normalizer.js\");\n/* harmony import */ var _app_page_normalizer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app-page-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js\");\n/* harmony import */ var _app_pathname_normalizer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app-pathname-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/app-pathname-normalizer.js\");\n\n\n\n\nclass AppNormalizers {\n constructor(distDir){\n this.filename = new _app_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__.AppFilenameNormalizer(distDir);\n this.pathname = new _app_pathname_normalizer__WEBPACK_IMPORTED_MODULE_3__.AppPathnameNormalizer();\n this.bundlePath = new _app_bundle_path_normalizer__WEBPACK_IMPORTED_MODULE_0__.AppBundlePathNormalizer();\n }\n}\nclass DevAppNormalizers {\n constructor(appDir, extensions){\n this.page = new _app_page_normalizer__WEBPACK_IMPORTED_MODULE_2__.DevAppPageNormalizer(appDir, extensions);\n this.pathname = new _app_pathname_normalizer__WEBPACK_IMPORTED_MODULE_3__.DevAppPathnameNormalizer(this.page);\n this.bundlePath = new _app_bundle_path_normalizer__WEBPACK_IMPORTED_MODULE_0__.DevAppBundlePathNormalizer(this.page);\n }\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9hcHAvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQW1HO0FBQ2pDO0FBQ0w7QUFDK0I7QUFDckYsTUFBTU07SUFDVEMsWUFBWUMsT0FBTyxDQUFDO1FBQ2hCLElBQUksQ0FBQ0MsUUFBUSxHQUFHLElBQUlQLDJFQUFxQkEsQ0FBQ007UUFDMUMsSUFBSSxDQUFDRSxRQUFRLEdBQUcsSUFBSU4sMkVBQXFCQTtRQUN6QyxJQUFJLENBQUNPLFVBQVUsR0FBRyxJQUFJWCxnRkFBdUJBO0lBQ2pEO0FBQ0o7QUFDTyxNQUFNWTtJQUNUTCxZQUFZTSxNQUFNLEVBQUVDLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUNDLElBQUksR0FBRyxJQUFJWixzRUFBb0JBLENBQUNVLFFBQVFDO1FBQzdDLElBQUksQ0FBQ0osUUFBUSxHQUFHLElBQUlMLDhFQUF3QkEsQ0FBQyxJQUFJLENBQUNVLElBQUk7UUFDdEQsSUFBSSxDQUFDSixVQUFVLEdBQUcsSUFBSVYsbUZBQTBCQSxDQUFDLElBQUksQ0FBQ2MsSUFBSTtJQUM5RDtBQUNKLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL2J1aWx0L2FwcC9pbmRleC5qcz8zMjIyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcEJ1bmRsZVBhdGhOb3JtYWxpemVyLCBEZXZBcHBCdW5kbGVQYXRoTm9ybWFsaXplciB9IGZyb20gXCIuL2FwcC1idW5kbGUtcGF0aC1ub3JtYWxpemVyXCI7XG5pbXBvcnQgeyBBcHBGaWxlbmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9hcHAtZmlsZW5hbWUtbm9ybWFsaXplclwiO1xuaW1wb3J0IHsgRGV2QXBwUGFnZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9hcHAtcGFnZS1ub3JtYWxpemVyXCI7XG5pbXBvcnQgeyBBcHBQYXRobmFtZU5vcm1hbGl6ZXIsIERldkFwcFBhdGhuYW1lTm9ybWFsaXplciB9IGZyb20gXCIuL2FwcC1wYXRobmFtZS1ub3JtYWxpemVyXCI7XG5leHBvcnQgY2xhc3MgQXBwTm9ybWFsaXplcnMge1xuICAgIGNvbnN0cnVjdG9yKGRpc3REaXIpe1xuICAgICAgICB0aGlzLmZpbGVuYW1lID0gbmV3IEFwcEZpbGVuYW1lTm9ybWFsaXplcihkaXN0RGlyKTtcbiAgICAgICAgdGhpcy5wYXRobmFtZSA9IG5ldyBBcHBQYXRobmFtZU5vcm1hbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5idW5kbGVQYXRoID0gbmV3IEFwcEJ1bmRsZVBhdGhOb3JtYWxpemVyKCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIERldkFwcE5vcm1hbGl6ZXJzIHtcbiAgICBjb25zdHJ1Y3RvcihhcHBEaXIsIGV4dGVuc2lvbnMpe1xuICAgICAgICB0aGlzLnBhZ2UgPSBuZXcgRGV2QXBwUGFnZU5vcm1hbGl6ZXIoYXBwRGlyLCBleHRlbnNpb25zKTtcbiAgICAgICAgdGhpcy5wYXRobmFtZSA9IG5ldyBEZXZBcHBQYXRobmFtZU5vcm1hbGl6ZXIodGhpcy5wYWdlKTtcbiAgICAgICAgdGhpcy5idW5kbGVQYXRoID0gbmV3IERldkFwcEJ1bmRsZVBhdGhOb3JtYWxpemVyKHRoaXMucGFnZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiQXBwQnVuZGxlUGF0aE5vcm1hbGl6ZXIiLCJEZXZBcHBCdW5kbGVQYXRoTm9ybWFsaXplciIsIkFwcEZpbGVuYW1lTm9ybWFsaXplciIsIkRldkFwcFBhZ2VOb3JtYWxpemVyIiwiQXBwUGF0aG5hbWVOb3JtYWxpemVyIiwiRGV2QXBwUGF0aG5hbWVOb3JtYWxpemVyIiwiQXBwTm9ybWFsaXplcnMiLCJjb25zdHJ1Y3RvciIsImRpc3REaXIiLCJmaWxlbmFtZSIsInBhdGhuYW1lIiwiYnVuZGxlUGF0aCIsIkRldkFwcE5vcm1hbGl6ZXJzIiwiYXBwRGlyIiwiZXh0ZW5zaW9ucyIsInBhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/index.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/pages/index.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DevPagesNormalizers: () => (/* binding */ DevPagesNormalizers),\n/* harmony export */ PagesNormalizers: () => (/* binding */ PagesNormalizers)\n/* harmony export */ });\n/* harmony import */ var _pages_bundle_path_normalizer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pages-bundle-path-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-bundle-path-normalizer.js\");\n/* harmony import */ var _pages_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pages-filename-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-filename-normalizer.js\");\n/* harmony import */ var _pages_page_normalizer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pages-page-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-page-normalizer.js\");\n/* harmony import */ var _pages_pathname_normalizer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pages-pathname-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-pathname-normalizer.js\");\n\n\n\n\nclass PagesNormalizers {\n constructor(distDir){\n this.filename = new _pages_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__.PagesFilenameNormalizer(distDir);\n this.bundlePath = new _pages_bundle_path_normalizer__WEBPACK_IMPORTED_MODULE_0__.PagesBundlePathNormalizer();\n // You'd think that we'd require a `pathname` normalizer here, but for\n // `/pages` we have to handle i18n routes, which means that we need to\n // analyze the page path to determine the locale prefix and it's locale.\n }\n}\nclass DevPagesNormalizers {\n constructor(pagesDir, extensions){\n this.page = new _pages_page_normalizer__WEBPACK_IMPORTED_MODULE_2__.DevPagesPageNormalizer(pagesDir, extensions);\n this.pathname = new _pages_pathname_normalizer__WEBPACK_IMPORTED_MODULE_3__.DevPagesPathnameNormalizer(pagesDir, extensions);\n this.bundlePath = new _pages_bundle_path_normalizer__WEBPACK_IMPORTED_MODULE_0__.DevPagesBundlePathNormalizer(this.page);\n }\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9wYWdlcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBeUc7QUFDbkM7QUFDTDtBQUNRO0FBQ2xFLE1BQU1LO0lBQ1RDLFlBQVlDLE9BQU8sQ0FBQztRQUNoQixJQUFJLENBQUNDLFFBQVEsR0FBRyxJQUFJTiwrRUFBdUJBLENBQUNLO1FBQzVDLElBQUksQ0FBQ0UsVUFBVSxHQUFHLElBQUlSLG9GQUF5QkE7SUFDbkQsc0VBQXNFO0lBQ3RFLHNFQUFzRTtJQUN0RSx3RUFBd0U7SUFDeEU7QUFDSjtBQUNPLE1BQU1TO0lBQ1RKLFlBQVlLLFFBQVEsRUFBRUMsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHLElBQUlWLDBFQUFzQkEsQ0FBQ1EsVUFBVUM7UUFDakQsSUFBSSxDQUFDRSxRQUFRLEdBQUcsSUFBSVYsa0ZBQTBCQSxDQUFDTyxVQUFVQztRQUN6RCxJQUFJLENBQUNILFVBQVUsR0FBRyxJQUFJVCx1RkFBNEJBLENBQUMsSUFBSSxDQUFDYSxJQUFJO0lBQ2hFO0FBQ0osRUFFQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvbm9ybWFsaXplcnMvYnVpbHQvcGFnZXMvaW5kZXguanM/NjFmYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXZQYWdlc0J1bmRsZVBhdGhOb3JtYWxpemVyLCBQYWdlc0J1bmRsZVBhdGhOb3JtYWxpemVyIH0gZnJvbSBcIi4vcGFnZXMtYnVuZGxlLXBhdGgtbm9ybWFsaXplclwiO1xuaW1wb3J0IHsgUGFnZXNGaWxlbmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9wYWdlcy1maWxlbmFtZS1ub3JtYWxpemVyXCI7XG5pbXBvcnQgeyBEZXZQYWdlc1BhZ2VOb3JtYWxpemVyIH0gZnJvbSBcIi4vcGFnZXMtcGFnZS1ub3JtYWxpemVyXCI7XG5pbXBvcnQgeyBEZXZQYWdlc1BhdGhuYW1lTm9ybWFsaXplciB9IGZyb20gXCIuL3BhZ2VzLXBhdGhuYW1lLW5vcm1hbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBQYWdlc05vcm1hbGl6ZXJzIHtcbiAgICBjb25zdHJ1Y3RvcihkaXN0RGlyKXtcbiAgICAgICAgdGhpcy5maWxlbmFtZSA9IG5ldyBQYWdlc0ZpbGVuYW1lTm9ybWFsaXplcihkaXN0RGlyKTtcbiAgICAgICAgdGhpcy5idW5kbGVQYXRoID0gbmV3IFBhZ2VzQnVuZGxlUGF0aE5vcm1hbGl6ZXIoKTtcbiAgICAvLyBZb3UnZCB0aGluayB0aGF0IHdlJ2QgcmVxdWlyZSBhIGBwYXRobmFtZWAgbm9ybWFsaXplciBoZXJlLCBidXQgZm9yXG4gICAgLy8gYC9wYWdlc2Agd2UgaGF2ZSB0byBoYW5kbGUgaTE4biByb3V0ZXMsIHdoaWNoIG1lYW5zIHRoYXQgd2UgbmVlZCB0b1xuICAgIC8vIGFuYWx5emUgdGhlIHBhZ2UgcGF0aCB0byBkZXRlcm1pbmUgdGhlIGxvY2FsZSBwcmVmaXggYW5kIGl0J3MgbG9jYWxlLlxuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBEZXZQYWdlc05vcm1hbGl6ZXJzIHtcbiAgICBjb25zdHJ1Y3RvcihwYWdlc0RpciwgZXh0ZW5zaW9ucyl7XG4gICAgICAgIHRoaXMucGFnZSA9IG5ldyBEZXZQYWdlc1BhZ2VOb3JtYWxpemVyKHBhZ2VzRGlyLCBleHRlbnNpb25zKTtcbiAgICAgICAgdGhpcy5wYXRobmFtZSA9IG5ldyBEZXZQYWdlc1BhdGhuYW1lTm9ybWFsaXplcihwYWdlc0RpciwgZXh0ZW5zaW9ucyk7XG4gICAgICAgIHRoaXMuYnVuZGxlUGF0aCA9IG5ldyBEZXZQYWdlc0J1bmRsZVBhdGhOb3JtYWxpemVyKHRoaXMucGFnZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiRGV2UGFnZXNCdW5kbGVQYXRoTm9ybWFsaXplciIsIlBhZ2VzQnVuZGxlUGF0aE5vcm1hbGl6ZXIiLCJQYWdlc0ZpbGVuYW1lTm9ybWFsaXplciIsIkRldlBhZ2VzUGFnZU5vcm1hbGl6ZXIiLCJEZXZQYWdlc1BhdGhuYW1lTm9ybWFsaXplciIsIlBhZ2VzTm9ybWFsaXplcnMiLCJjb25zdHJ1Y3RvciIsImRpc3REaXIiLCJmaWxlbmFtZSIsImJ1bmRsZVBhdGgiLCJEZXZQYWdlc05vcm1hbGl6ZXJzIiwicGFnZXNEaXIiLCJleHRlbnNpb25zIiwicGFnZSIsInBhdGhuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-bundle-path-normalizer.js":
-/*!**************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-bundle-path-normalizer.js ***!
- \**************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DevPagesBundlePathNormalizer: () => (/* binding */ DevPagesBundlePathNormalizer),\n/* harmony export */ PagesBundlePathNormalizer: () => (/* binding */ PagesBundlePathNormalizer)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_page_path_normalize_page_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../shared/lib/page-path/normalize-page-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-page-path.js\");\n/* harmony import */ var _normalizers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../normalizers */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/normalizers.js\");\n/* harmony import */ var _prefixing_normalizer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../prefixing-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/prefixing-normalizer.js\");\n/* harmony import */ var _wrap_normalizer_fn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../wrap-normalizer-fn */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/wrap-normalizer-fn.js\");\n\n\n\n\nclass PagesBundlePathNormalizer extends _normalizers__WEBPACK_IMPORTED_MODULE_1__.Normalizers {\n constructor(){\n super([\n // The bundle path should have the trailing `/index` stripped from\n // it.\n (0,_wrap_normalizer_fn__WEBPACK_IMPORTED_MODULE_3__.wrapNormalizerFn)(_shared_lib_page_path_normalize_page_path__WEBPACK_IMPORTED_MODULE_0__.normalizePagePath),\n // The page should prefixed with `pages/`.\n new _prefixing_normalizer__WEBPACK_IMPORTED_MODULE_2__.PrefixingNormalizer(\"pages\")\n ]);\n }\n normalize(page) {\n return super.normalize(page);\n }\n}\nclass DevPagesBundlePathNormalizer extends _normalizers__WEBPACK_IMPORTED_MODULE_1__.Normalizers {\n constructor(pagesNormalizer){\n super([\n // This should normalize the filename to a page.\n pagesNormalizer,\n // Normalize the app page to a pathname.\n new PagesBundlePathNormalizer()\n ]);\n }\n normalize(filename) {\n return super.normalize(filename);\n }\n} //# sourceMappingURL=pages-bundle-path-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9wYWdlcy9wYWdlcy1idW5kbGUtcGF0aC1ub3JtYWxpemVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE0RjtBQUM1QztBQUNpQjtBQUNMO0FBQ3JELE1BQU1JLGtDQUFrQ0gscURBQVdBO0lBQ3RESSxhQUFhO1FBQ1QsS0FBSyxDQUFDO1lBQ0Ysa0VBQWtFO1lBQ2xFLE1BQU07WUFDTkYscUVBQWdCQSxDQUFDSCx3RkFBaUJBO1lBQ2xDLDBDQUEwQztZQUMxQyxJQUFJRSxzRUFBbUJBLENBQUM7U0FDM0I7SUFDTDtJQUNBSSxVQUFVQyxJQUFJLEVBQUU7UUFDWixPQUFPLEtBQUssQ0FBQ0QsVUFBVUM7SUFDM0I7QUFDSjtBQUNPLE1BQU1DLHFDQUFxQ1AscURBQVdBO0lBQ3pESSxZQUFZSSxlQUFlLENBQUM7UUFDeEIsS0FBSyxDQUFDO1lBQ0YsZ0RBQWdEO1lBQ2hEQTtZQUNBLHdDQUF3QztZQUN4QyxJQUFJTDtTQUNQO0lBQ0w7SUFDQUUsVUFBVUksUUFBUSxFQUFFO1FBQ2hCLE9BQU8sS0FBSyxDQUFDSixVQUFVSTtJQUMzQjtBQUNKLEVBRUEsd0RBQXdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL2J1aWx0L3BhZ2VzL3BhZ2VzLWJ1bmRsZS1wYXRoLW5vcm1hbGl6ZXIuanM/YzA1NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVQYWdlUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGFnZS1wYXRoXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVycyB9IGZyb20gXCIuLi8uLi9ub3JtYWxpemVyc1wiO1xuaW1wb3J0IHsgUHJlZml4aW5nTm9ybWFsaXplciB9IGZyb20gXCIuLi8uLi9wcmVmaXhpbmctbm9ybWFsaXplclwiO1xuaW1wb3J0IHsgd3JhcE5vcm1hbGl6ZXJGbiB9IGZyb20gXCIuLi8uLi93cmFwLW5vcm1hbGl6ZXItZm5cIjtcbmV4cG9ydCBjbGFzcyBQYWdlc0J1bmRsZVBhdGhOb3JtYWxpemVyIGV4dGVuZHMgTm9ybWFsaXplcnMge1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKFtcbiAgICAgICAgICAgIC8vIFRoZSBidW5kbGUgcGF0aCBzaG91bGQgaGF2ZSB0aGUgdHJhaWxpbmcgYC9pbmRleGAgc3RyaXBwZWQgZnJvbVxuICAgICAgICAgICAgLy8gaXQuXG4gICAgICAgICAgICB3cmFwTm9ybWFsaXplckZuKG5vcm1hbGl6ZVBhZ2VQYXRoKSxcbiAgICAgICAgICAgIC8vIFRoZSBwYWdlIHNob3VsZCBwcmVmaXhlZCB3aXRoIGBwYWdlcy9gLlxuICAgICAgICAgICAgbmV3IFByZWZpeGluZ05vcm1hbGl6ZXIoXCJwYWdlc1wiKVxuICAgICAgICBdKTtcbiAgICB9XG4gICAgbm9ybWFsaXplKHBhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLm5vcm1hbGl6ZShwYWdlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRGV2UGFnZXNCdW5kbGVQYXRoTm9ybWFsaXplciBleHRlbmRzIE5vcm1hbGl6ZXJzIHtcbiAgICBjb25zdHJ1Y3RvcihwYWdlc05vcm1hbGl6ZXIpe1xuICAgICAgICBzdXBlcihbXG4gICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBub3JtYWxpemUgdGhlIGZpbGVuYW1lIHRvIGEgcGFnZS5cbiAgICAgICAgICAgIHBhZ2VzTm9ybWFsaXplcixcbiAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgYXBwIHBhZ2UgdG8gYSBwYXRobmFtZS5cbiAgICAgICAgICAgIG5ldyBQYWdlc0J1bmRsZVBhdGhOb3JtYWxpemVyKClcbiAgICAgICAgXSk7XG4gICAgfVxuICAgIG5vcm1hbGl6ZShmaWxlbmFtZSkge1xuICAgICAgICByZXR1cm4gc3VwZXIubm9ybWFsaXplKGZpbGVuYW1lKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLWJ1bmRsZS1wYXRoLW5vcm1hbGl6ZXIuanMubWFwIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVBhZ2VQYXRoIiwiTm9ybWFsaXplcnMiLCJQcmVmaXhpbmdOb3JtYWxpemVyIiwid3JhcE5vcm1hbGl6ZXJGbiIsIlBhZ2VzQnVuZGxlUGF0aE5vcm1hbGl6ZXIiLCJjb25zdHJ1Y3RvciIsIm5vcm1hbGl6ZSIsInBhZ2UiLCJEZXZQYWdlc0J1bmRsZVBhdGhOb3JtYWxpemVyIiwicGFnZXNOb3JtYWxpemVyIiwiZmlsZW5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-bundle-path-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-filename-normalizer.js":
-/*!***********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-filename-normalizer.js ***!
- \***********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PagesFilenameNormalizer: () => (/* binding */ PagesFilenameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n/* harmony import */ var _prefixing_normalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../prefixing-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/prefixing-normalizer.js\");\n\n\nclass PagesFilenameNormalizer extends _prefixing_normalizer__WEBPACK_IMPORTED_MODULE_1__.PrefixingNormalizer {\n constructor(distDir){\n super(distDir, _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__.SERVER_DIRECTORY);\n }\n normalize(manifestFilename) {\n return super.normalize(manifestFilename);\n }\n} //# sourceMappingURL=pages-filename-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9wYWdlcy9wYWdlcy1maWxlbmFtZS1ub3JtYWxpemVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1RTtBQUNOO0FBQzFELE1BQU1FLGdDQUFnQ0Qsc0VBQW1CQTtJQUM1REUsWUFBWUMsT0FBTyxDQUFDO1FBQ2hCLEtBQUssQ0FBQ0EsU0FBU0osbUVBQWdCQTtJQUNuQztJQUNBSyxVQUFVQyxnQkFBZ0IsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQ0QsVUFBVUM7SUFDM0I7QUFDSixFQUVBLHFEQUFxRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9wYWdlcy9wYWdlcy1maWxlbmFtZS1ub3JtYWxpemVyLmpzPzAxMjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0VSVkVSX0RJUkVDVE9SWSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUHJlZml4aW5nTm9ybWFsaXplciB9IGZyb20gXCIuLi8uLi9wcmVmaXhpbmctbm9ybWFsaXplclwiO1xuZXhwb3J0IGNsYXNzIFBhZ2VzRmlsZW5hbWVOb3JtYWxpemVyIGV4dGVuZHMgUHJlZml4aW5nTm9ybWFsaXplciB7XG4gICAgY29uc3RydWN0b3IoZGlzdERpcil7XG4gICAgICAgIHN1cGVyKGRpc3REaXIsIFNFUlZFUl9ESVJFQ1RPUlkpO1xuICAgIH1cbiAgICBub3JtYWxpemUobWFuaWZlc3RGaWxlbmFtZSkge1xuICAgICAgICByZXR1cm4gc3VwZXIubm9ybWFsaXplKG1hbmlmZXN0RmlsZW5hbWUpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtZmlsZW5hbWUtbm9ybWFsaXplci5qcy5tYXAiXSwibmFtZXMiOlsiU0VSVkVSX0RJUkVDVE9SWSIsIlByZWZpeGluZ05vcm1hbGl6ZXIiLCJQYWdlc0ZpbGVuYW1lTm9ybWFsaXplciIsImNvbnN0cnVjdG9yIiwiZGlzdERpciIsIm5vcm1hbGl6ZSIsIm1hbmlmZXN0RmlsZW5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-filename-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-page-normalizer.js":
-/*!*******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-page-normalizer.js ***!
- \*******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DevPagesPageNormalizer: () => (/* binding */ DevPagesPageNormalizer)\n/* harmony export */ });\n/* harmony import */ var _lib_page_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../lib/page-types */ \"(ssr)/../../node_modules/next/dist/esm/lib/page-types.js\");\n/* harmony import */ var _absolute_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../absolute-filename-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\");\n\n\nclass DevPagesPageNormalizer extends _absolute_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__.AbsoluteFilenameNormalizer {\n constructor(pagesDir, extensions){\n super(pagesDir, extensions, _lib_page_types__WEBPACK_IMPORTED_MODULE_0__.PAGE_TYPES.PAGES);\n }\n} //# sourceMappingURL=pages-page-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9wYWdlcy9wYWdlcy1wYWdlLW5vcm1hbGl6ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTJEO0FBQ3FCO0FBQ3pFLE1BQU1FLCtCQUErQkQscUZBQTBCQTtJQUNsRUUsWUFBWUMsUUFBUSxFQUFFQyxVQUFVLENBQUM7UUFDN0IsS0FBSyxDQUFDRCxVQUFVQyxZQUFZTCx1REFBVUEsQ0FBQ00sS0FBSztJQUNoRDtBQUNKLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL2J1aWx0L3BhZ2VzL3BhZ2VzLXBhZ2Utbm9ybWFsaXplci5qcz9hMGVlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBBR0VfVFlQRVMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbGliL3BhZ2UtdHlwZXNcIjtcbmltcG9ydCB7IEFic29sdXRlRmlsZW5hbWVOb3JtYWxpemVyIH0gZnJvbSBcIi4uLy4uL2Fic29sdXRlLWZpbGVuYW1lLW5vcm1hbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBEZXZQYWdlc1BhZ2VOb3JtYWxpemVyIGV4dGVuZHMgQWJzb2x1dGVGaWxlbmFtZU5vcm1hbGl6ZXIge1xuICAgIGNvbnN0cnVjdG9yKHBhZ2VzRGlyLCBleHRlbnNpb25zKXtcbiAgICAgICAgc3VwZXIocGFnZXNEaXIsIGV4dGVuc2lvbnMsIFBBR0VfVFlQRVMuUEFHRVMpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtcGFnZS1ub3JtYWxpemVyLmpzLm1hcCJdLCJuYW1lcyI6WyJQQUdFX1RZUEVTIiwiQWJzb2x1dGVGaWxlbmFtZU5vcm1hbGl6ZXIiLCJEZXZQYWdlc1BhZ2VOb3JtYWxpemVyIiwiY29uc3RydWN0b3IiLCJwYWdlc0RpciIsImV4dGVuc2lvbnMiLCJQQUdFUyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-page-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-pathname-normalizer.js":
-/*!***********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-pathname-normalizer.js ***!
- \***********************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DevPagesPathnameNormalizer: () => (/* binding */ DevPagesPathnameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _lib_page_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../lib/page-types */ \"(ssr)/../../node_modules/next/dist/esm/lib/page-types.js\");\n/* harmony import */ var _absolute_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../absolute-filename-normalizer */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js\");\n\n\nclass DevPagesPathnameNormalizer extends _absolute_filename_normalizer__WEBPACK_IMPORTED_MODULE_1__.AbsoluteFilenameNormalizer {\n constructor(pagesDir, extensions){\n super(pagesDir, extensions, _lib_page_types__WEBPACK_IMPORTED_MODULE_0__.PAGE_TYPES.PAGES);\n }\n} //# sourceMappingURL=pages-pathname-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9wYWdlcy9wYWdlcy1wYXRobmFtZS1ub3JtYWxpemVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEyRDtBQUNxQjtBQUN6RSxNQUFNRSxtQ0FBbUNELHFGQUEwQkE7SUFDdEVFLFlBQVlDLFFBQVEsRUFBRUMsVUFBVSxDQUFDO1FBQzdCLEtBQUssQ0FBQ0QsVUFBVUMsWUFBWUwsdURBQVVBLENBQUNNLEtBQUs7SUFDaEQ7QUFDSixFQUVBLHFEQUFxRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9idWlsdC9wYWdlcy9wYWdlcy1wYXRobmFtZS1ub3JtYWxpemVyLmpzPzc1ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUEFHRV9UWVBFUyB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9saWIvcGFnZS10eXBlc1wiO1xuaW1wb3J0IHsgQWJzb2x1dGVGaWxlbmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi4vLi4vYWJzb2x1dGUtZmlsZW5hbWUtbm9ybWFsaXplclwiO1xuZXhwb3J0IGNsYXNzIERldlBhZ2VzUGF0aG5hbWVOb3JtYWxpemVyIGV4dGVuZHMgQWJzb2x1dGVGaWxlbmFtZU5vcm1hbGl6ZXIge1xuICAgIGNvbnN0cnVjdG9yKHBhZ2VzRGlyLCBleHRlbnNpb25zKXtcbiAgICAgICAgc3VwZXIocGFnZXNEaXIsIGV4dGVuc2lvbnMsIFBBR0VfVFlQRVMuUEFHRVMpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtcGF0aG5hbWUtbm9ybWFsaXplci5qcy5tYXAiXSwibmFtZXMiOlsiUEFHRV9UWVBFUyIsIkFic29sdXRlRmlsZW5hbWVOb3JtYWxpemVyIiwiRGV2UGFnZXNQYXRobmFtZU5vcm1hbGl6ZXIiLCJjb25zdHJ1Y3RvciIsInBhZ2VzRGlyIiwiZXh0ZW5zaW9ucyIsIlBBR0VTIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-pathname-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/locale-route-normalizer.js":
-/*!*********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/locale-route-normalizer.js ***!
- \*********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LocaleRouteNormalizer: () => (/* binding */ LocaleRouteNormalizer)\n/* harmony export */ });\n/**\n * Normalizes the pathname by removing the locale prefix if any.\n */ class LocaleRouteNormalizer {\n constructor(provider){\n this.provider = provider;\n }\n /**\n * Normalizes the pathname by removing the locale prefix if any.\n *\n * @param pathname The pathname to normalize.\n * @returns The pathname without the locale prefix (if any).\n */ normalize(pathname) {\n const match = this.provider.analyze(pathname);\n return match.pathname;\n }\n} //# sourceMappingURL=locale-route-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9sb2NhbGUtcm91dGUtbm9ybWFsaXplci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0NBRUMsR0FBVSxNQUFNQTtJQUNiQyxZQUFZQyxRQUFRLENBQUM7UUFDakIsSUFBSSxDQUFDQSxRQUFRLEdBQUdBO0lBQ3BCO0lBQ0E7Ozs7O0dBS0QsR0FBR0MsVUFBVUMsUUFBUSxFQUFFO1FBQ2xCLE1BQU1DLFFBQVEsSUFBSSxDQUFDSCxRQUFRLENBQUNJLE9BQU8sQ0FBQ0Y7UUFDcEMsT0FBT0MsTUFBTUQsUUFBUTtJQUN6QjtBQUNKLEVBRUEsbURBQW1EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL2xvY2FsZS1yb3V0ZS1ub3JtYWxpemVyLmpzP2IyMjUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOb3JtYWxpemVzIHRoZSBwYXRobmFtZSBieSByZW1vdmluZyB0aGUgbG9jYWxlIHByZWZpeCBpZiBhbnkuXG4gKi8gZXhwb3J0IGNsYXNzIExvY2FsZVJvdXRlTm9ybWFsaXplciB7XG4gICAgY29uc3RydWN0b3IocHJvdmlkZXIpe1xuICAgICAgICB0aGlzLnByb3ZpZGVyID0gcHJvdmlkZXI7XG4gICAgfVxuICAgIC8qKlxuICAgKiBOb3JtYWxpemVzIHRoZSBwYXRobmFtZSBieSByZW1vdmluZyB0aGUgbG9jYWxlIHByZWZpeCBpZiBhbnkuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRobmFtZSBUaGUgcGF0aG5hbWUgdG8gbm9ybWFsaXplLlxuICAgKiBAcmV0dXJucyBUaGUgcGF0aG5hbWUgd2l0aG91dCB0aGUgbG9jYWxlIHByZWZpeCAoaWYgYW55KS5cbiAgICovIG5vcm1hbGl6ZShwYXRobmFtZSkge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMucHJvdmlkZXIuYW5hbHl6ZShwYXRobmFtZSk7XG4gICAgICAgIHJldHVybiBtYXRjaC5wYXRobmFtZTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvY2FsZS1yb3V0ZS1ub3JtYWxpemVyLmpzLm1hcCJdLCJuYW1lcyI6WyJMb2NhbGVSb3V0ZU5vcm1hbGl6ZXIiLCJjb25zdHJ1Y3RvciIsInByb3ZpZGVyIiwibm9ybWFsaXplIiwicGF0aG5hbWUiLCJtYXRjaCIsImFuYWx5emUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/locale-route-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/normalizers.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/normalizers.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Normalizers: () => (/* binding */ Normalizers)\n/* harmony export */ });\n/**\n * Normalizers combines many normalizers into a single normalizer interface that\n * will normalize the inputted pathname with each normalizer in order.\n */ class Normalizers {\n constructor(normalizers = []){\n this.normalizers = normalizers;\n }\n push(normalizer) {\n this.normalizers.push(normalizer);\n }\n normalize(pathname) {\n return this.normalizers.reduce((normalized, normalizer)=>normalizer.normalize(normalized), pathname);\n }\n} //# sourceMappingURL=normalizers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9ub3JtYWxpemVycy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7OztDQUdDLEdBQVUsTUFBTUE7SUFDYkMsWUFBWUMsY0FBYyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDQSxXQUFXLEdBQUdBO0lBQ3ZCO0lBQ0FDLEtBQUtDLFVBQVUsRUFBRTtRQUNiLElBQUksQ0FBQ0YsV0FBVyxDQUFDQyxJQUFJLENBQUNDO0lBQzFCO0lBQ0FDLFVBQVVDLFFBQVEsRUFBRTtRQUNoQixPQUFPLElBQUksQ0FBQ0osV0FBVyxDQUFDSyxNQUFNLENBQUMsQ0FBQ0MsWUFBWUosYUFBYUEsV0FBV0MsU0FBUyxDQUFDRyxhQUFhRjtJQUMvRjtBQUNKLEVBRUEsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL25vcm1hbGl6ZXJzLmpzPzY3NDciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOb3JtYWxpemVycyBjb21iaW5lcyBtYW55IG5vcm1hbGl6ZXJzIGludG8gYSBzaW5nbGUgbm9ybWFsaXplciBpbnRlcmZhY2UgdGhhdFxuICogd2lsbCBub3JtYWxpemUgdGhlIGlucHV0dGVkIHBhdGhuYW1lIHdpdGggZWFjaCBub3JtYWxpemVyIGluIG9yZGVyLlxuICovIGV4cG9ydCBjbGFzcyBOb3JtYWxpemVycyB7XG4gICAgY29uc3RydWN0b3Iobm9ybWFsaXplcnMgPSBbXSl7XG4gICAgICAgIHRoaXMubm9ybWFsaXplcnMgPSBub3JtYWxpemVycztcbiAgICB9XG4gICAgcHVzaChub3JtYWxpemVyKSB7XG4gICAgICAgIHRoaXMubm9ybWFsaXplcnMucHVzaChub3JtYWxpemVyKTtcbiAgICB9XG4gICAgbm9ybWFsaXplKHBhdGhuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZXJzLnJlZHVjZSgobm9ybWFsaXplZCwgbm9ybWFsaXplcik9Pm5vcm1hbGl6ZXIubm9ybWFsaXplKG5vcm1hbGl6ZWQpLCBwYXRobmFtZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub3JtYWxpemVycy5qcy5tYXAiXSwibmFtZXMiOlsiTm9ybWFsaXplcnMiLCJjb25zdHJ1Y3RvciIsIm5vcm1hbGl6ZXJzIiwicHVzaCIsIm5vcm1hbGl6ZXIiLCJub3JtYWxpemUiLCJwYXRobmFtZSIsInJlZHVjZSIsIm5vcm1hbGl6ZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/normalizers.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/prefixing-normalizer.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/prefixing-normalizer.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PrefixingNormalizer: () => (/* binding */ PrefixingNormalizer)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/isomorphic/path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0__);\n\nclass PrefixingNormalizer {\n constructor(...prefixes){\n this.prefix = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0___default().posix.join(...prefixes);\n }\n normalize(pathname) {\n return _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_0___default().posix.join(this.prefix, pathname);\n }\n} //# sourceMappingURL=prefixing-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9wcmVmaXhpbmctbm9ybWFsaXplci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUQ7QUFDaEQsTUFBTUM7SUFDVEMsWUFBWSxHQUFHQyxRQUFRLENBQUM7UUFDcEIsSUFBSSxDQUFDQyxNQUFNLEdBQUdKLHdFQUFVLENBQUNNLElBQUksSUFBSUg7SUFDckM7SUFDQUksVUFBVUMsUUFBUSxFQUFFO1FBQ2hCLE9BQU9SLHdFQUFVLENBQUNNLElBQUksQ0FBQyxJQUFJLENBQUNGLE1BQU0sRUFBRUk7SUFDeEM7QUFDSixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9wcmVmaXhpbmctbm9ybWFsaXplci5qcz8wYTQxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvbGliL2lzb21vcnBoaWMvcGF0aFwiO1xuZXhwb3J0IGNsYXNzIFByZWZpeGluZ05vcm1hbGl6ZXIge1xuICAgIGNvbnN0cnVjdG9yKC4uLnByZWZpeGVzKXtcbiAgICAgICAgdGhpcy5wcmVmaXggPSBwYXRoLnBvc2l4LmpvaW4oLi4ucHJlZml4ZXMpO1xuICAgIH1cbiAgICBub3JtYWxpemUocGF0aG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHBhdGgucG9zaXguam9pbih0aGlzLnByZWZpeCwgcGF0aG5hbWUpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlZml4aW5nLW5vcm1hbGl6ZXIuanMubWFwIl0sIm5hbWVzIjpbInBhdGgiLCJQcmVmaXhpbmdOb3JtYWxpemVyIiwiY29uc3RydWN0b3IiLCJwcmVmaXhlcyIsInByZWZpeCIsInBvc2l4Iiwiam9pbiIsIm5vcm1hbGl6ZSIsInBhdGhuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/prefixing-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/next-data.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/request/next-data.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NextDataPathnameNormalizer: () => (/* binding */ NextDataPathnameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_page_path_denormalize_page_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../shared/lib/page-path/denormalize-page-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/denormalize-page-path.js\");\n/* harmony import */ var _prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./prefix */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/prefix.js\");\n/* harmony import */ var _suffix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./suffix */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/suffix.js\");\n\n\n\nclass NextDataPathnameNormalizer {\n constructor(buildID){\n this.suffix = new _suffix__WEBPACK_IMPORTED_MODULE_2__.SuffixPathnameNormalizer(\".json\");\n if (!buildID) {\n throw new Error(\"Invariant: buildID is required\");\n }\n this.prefix = new _prefix__WEBPACK_IMPORTED_MODULE_1__.PrefixPathnameNormalizer(`/_next/data/${buildID}`);\n }\n match(pathname) {\n return this.prefix.match(pathname) && this.suffix.match(pathname);\n }\n normalize(pathname, matched) {\n // If we're not matched and we don't match, we don't need to normalize.\n if (!matched && !this.match(pathname)) return pathname;\n pathname = this.prefix.normalize(pathname, true);\n pathname = this.suffix.normalize(pathname, true);\n return (0,_shared_lib_page_path_denormalize_page_path__WEBPACK_IMPORTED_MODULE_0__.denormalizePagePath)(pathname);\n }\n} //# sourceMappingURL=next-data.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9yZXF1ZXN0L25leHQtZGF0YS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZGO0FBQ3pDO0FBQ0E7QUFDN0MsTUFBTUc7SUFDVEMsWUFBWUMsT0FBTyxDQUFDO1FBQ2hCLElBQUksQ0FBQ0MsTUFBTSxHQUFHLElBQUlKLDZEQUF3QkEsQ0FBQztRQUMzQyxJQUFJLENBQUNHLFNBQVM7WUFDVixNQUFNLElBQUlFLE1BQU07UUFDcEI7UUFDQSxJQUFJLENBQUNDLE1BQU0sR0FBRyxJQUFJUCw2REFBd0JBLENBQUMsQ0FBQyxZQUFZLEVBQUVJLFFBQVEsQ0FBQztJQUN2RTtJQUNBSSxNQUFNQyxRQUFRLEVBQUU7UUFDWixPQUFPLElBQUksQ0FBQ0YsTUFBTSxDQUFDQyxLQUFLLENBQUNDLGFBQWEsSUFBSSxDQUFDSixNQUFNLENBQUNHLEtBQUssQ0FBQ0M7SUFDNUQ7SUFDQUMsVUFBVUQsUUFBUSxFQUFFRSxPQUFPLEVBQUU7UUFDekIsdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQ0EsV0FBVyxDQUFDLElBQUksQ0FBQ0gsS0FBSyxDQUFDQyxXQUFXLE9BQU9BO1FBQzlDQSxXQUFXLElBQUksQ0FBQ0YsTUFBTSxDQUFDRyxTQUFTLENBQUNELFVBQVU7UUFDM0NBLFdBQVcsSUFBSSxDQUFDSixNQUFNLENBQUNLLFNBQVMsQ0FBQ0QsVUFBVTtRQUMzQyxPQUFPVixnR0FBbUJBLENBQUNVO0lBQy9CO0FBQ0osRUFFQSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvbm9ybWFsaXplcnMvcmVxdWVzdC9uZXh0LWRhdGEuanM/ZGRiMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZW5vcm1hbGl6ZVBhZ2VQYXRoIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aFwiO1xuaW1wb3J0IHsgUHJlZml4UGF0aG5hbWVOb3JtYWxpemVyIH0gZnJvbSBcIi4vcHJlZml4XCI7XG5pbXBvcnQgeyBTdWZmaXhQYXRobmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9zdWZmaXhcIjtcbmV4cG9ydCBjbGFzcyBOZXh0RGF0YVBhdGhuYW1lTm9ybWFsaXplciB7XG4gICAgY29uc3RydWN0b3IoYnVpbGRJRCl7XG4gICAgICAgIHRoaXMuc3VmZml4ID0gbmV3IFN1ZmZpeFBhdGhuYW1lTm9ybWFsaXplcihcIi5qc29uXCIpO1xuICAgICAgICBpZiAoIWJ1aWxkSUQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogYnVpbGRJRCBpcyByZXF1aXJlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZWZpeCA9IG5ldyBQcmVmaXhQYXRobmFtZU5vcm1hbGl6ZXIoYC9fbmV4dC9kYXRhLyR7YnVpbGRJRH1gKTtcbiAgICB9XG4gICAgbWF0Y2gocGF0aG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4Lm1hdGNoKHBhdGhuYW1lKSAmJiB0aGlzLnN1ZmZpeC5tYXRjaChwYXRobmFtZSk7XG4gICAgfVxuICAgIG5vcm1hbGl6ZShwYXRobmFtZSwgbWF0Y2hlZCkge1xuICAgICAgICAvLyBJZiB3ZSdyZSBub3QgbWF0Y2hlZCBhbmQgd2UgZG9uJ3QgbWF0Y2gsIHdlIGRvbid0IG5lZWQgdG8gbm9ybWFsaXplLlxuICAgICAgICBpZiAoIW1hdGNoZWQgJiYgIXRoaXMubWF0Y2gocGF0aG5hbWUpKSByZXR1cm4gcGF0aG5hbWU7XG4gICAgICAgIHBhdGhuYW1lID0gdGhpcy5wcmVmaXgubm9ybWFsaXplKHBhdGhuYW1lLCB0cnVlKTtcbiAgICAgICAgcGF0aG5hbWUgPSB0aGlzLnN1ZmZpeC5ub3JtYWxpemUocGF0aG5hbWUsIHRydWUpO1xuICAgICAgICByZXR1cm4gZGVub3JtYWxpemVQYWdlUGF0aChwYXRobmFtZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uZXh0LWRhdGEuanMubWFwIl0sIm5hbWVzIjpbImRlbm9ybWFsaXplUGFnZVBhdGgiLCJQcmVmaXhQYXRobmFtZU5vcm1hbGl6ZXIiLCJTdWZmaXhQYXRobmFtZU5vcm1hbGl6ZXIiLCJOZXh0RGF0YVBhdGhuYW1lTm9ybWFsaXplciIsImNvbnN0cnVjdG9yIiwiYnVpbGRJRCIsInN1ZmZpeCIsIkVycm9yIiwicHJlZml4IiwibWF0Y2giLCJwYXRobmFtZSIsIm5vcm1hbGl6ZSIsIm1hdGNoZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/next-data.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/postponed.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/request/postponed.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PostponedPathnameNormalizer: () => (/* binding */ PostponedPathnameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_page_path_denormalize_page_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../shared/lib/page-path/denormalize-page-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/denormalize-page-path.js\");\n/* harmony import */ var _prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./prefix */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/prefix.js\");\n\n\nconst prefix = \"/_next/postponed/resume\";\nclass PostponedPathnameNormalizer extends _prefix__WEBPACK_IMPORTED_MODULE_1__.PrefixPathnameNormalizer {\n constructor(){\n super(prefix);\n }\n normalize(pathname, matched) {\n // If we're not matched and we don't match, we don't need to normalize.\n if (!matched && !this.match(pathname)) return pathname;\n // Remove the prefix.\n pathname = super.normalize(pathname, true);\n return (0,_shared_lib_page_path_denormalize_page_path__WEBPACK_IMPORTED_MODULE_0__.denormalizePagePath)(pathname);\n }\n} //# sourceMappingURL=postponed.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9yZXF1ZXN0L3Bvc3Rwb25lZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNkY7QUFDekM7QUFDcEQsTUFBTUUsU0FBUztBQUNSLE1BQU1DLG9DQUFvQ0YsNkRBQXdCQTtJQUNyRUcsYUFBYTtRQUNULEtBQUssQ0FBQ0Y7SUFDVjtJQUNBRyxVQUFVQyxRQUFRLEVBQUVDLE9BQU8sRUFBRTtRQUN6Qix1RUFBdUU7UUFDdkUsSUFBSSxDQUFDQSxXQUFXLENBQUMsSUFBSSxDQUFDQyxLQUFLLENBQUNGLFdBQVcsT0FBT0E7UUFDOUMscUJBQXFCO1FBQ3JCQSxXQUFXLEtBQUssQ0FBQ0QsVUFBVUMsVUFBVTtRQUNyQyxPQUFPTixnR0FBbUJBLENBQUNNO0lBQy9CO0FBQ0osRUFFQSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvbm9ybWFsaXplcnMvcmVxdWVzdC9wb3N0cG9uZWQuanM/Y2YyMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZW5vcm1hbGl6ZVBhZ2VQYXRoIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aFwiO1xuaW1wb3J0IHsgUHJlZml4UGF0aG5hbWVOb3JtYWxpemVyIH0gZnJvbSBcIi4vcHJlZml4XCI7XG5jb25zdCBwcmVmaXggPSBcIi9fbmV4dC9wb3N0cG9uZWQvcmVzdW1lXCI7XG5leHBvcnQgY2xhc3MgUG9zdHBvbmVkUGF0aG5hbWVOb3JtYWxpemVyIGV4dGVuZHMgUHJlZml4UGF0aG5hbWVOb3JtYWxpemVyIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihwcmVmaXgpO1xuICAgIH1cbiAgICBub3JtYWxpemUocGF0aG5hbWUsIG1hdGNoZWQpIHtcbiAgICAgICAgLy8gSWYgd2UncmUgbm90IG1hdGNoZWQgYW5kIHdlIGRvbid0IG1hdGNoLCB3ZSBkb24ndCBuZWVkIHRvIG5vcm1hbGl6ZS5cbiAgICAgICAgaWYgKCFtYXRjaGVkICYmICF0aGlzLm1hdGNoKHBhdGhuYW1lKSkgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICAvLyBSZW1vdmUgdGhlIHByZWZpeC5cbiAgICAgICAgcGF0aG5hbWUgPSBzdXBlci5ub3JtYWxpemUocGF0aG5hbWUsIHRydWUpO1xuICAgICAgICByZXR1cm4gZGVub3JtYWxpemVQYWdlUGF0aChwYXRobmFtZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wb3N0cG9uZWQuanMubWFwIl0sIm5hbWVzIjpbImRlbm9ybWFsaXplUGFnZVBhdGgiLCJQcmVmaXhQYXRobmFtZU5vcm1hbGl6ZXIiLCJwcmVmaXgiLCJQb3N0cG9uZWRQYXRobmFtZU5vcm1hbGl6ZXIiLCJjb25zdHJ1Y3RvciIsIm5vcm1hbGl6ZSIsInBhdGhuYW1lIiwibWF0Y2hlZCIsIm1hdGNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/postponed.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/prefetch-rsc.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/request/prefetch-rsc.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PrefetchRSCPathnameNormalizer: () => (/* binding */ PrefetchRSCPathnameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _suffix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./suffix */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/suffix.js\");\n\n\nclass PrefetchRSCPathnameNormalizer extends _suffix__WEBPACK_IMPORTED_MODULE_1__.SuffixPathnameNormalizer {\n constructor(){\n super(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.RSC_PREFETCH_SUFFIX);\n }\n} //# sourceMappingURL=prefetch-rsc.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9yZXF1ZXN0L3ByZWZldGNoLXJzYy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBZ0U7QUFDWjtBQUM3QyxNQUFNRSxzQ0FBc0NELDZEQUF3QkE7SUFDdkVFLGFBQWE7UUFDVCxLQUFLLENBQUNILCtEQUFtQkE7SUFDN0I7QUFDSixFQUVBLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9yZXF1ZXN0L3ByZWZldGNoLXJzYy5qcz9lMmMzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJTQ19QUkVGRVRDSF9TVUZGSVggfSBmcm9tIFwiLi4vLi4vLi4vLi4vbGliL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgU3VmZml4UGF0aG5hbWVOb3JtYWxpemVyIH0gZnJvbSBcIi4vc3VmZml4XCI7XG5leHBvcnQgY2xhc3MgUHJlZmV0Y2hSU0NQYXRobmFtZU5vcm1hbGl6ZXIgZXh0ZW5kcyBTdWZmaXhQYXRobmFtZU5vcm1hbGl6ZXIge1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKFJTQ19QUkVGRVRDSF9TVUZGSVgpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlZmV0Y2gtcnNjLmpzLm1hcCJdLCJuYW1lcyI6WyJSU0NfUFJFRkVUQ0hfU1VGRklYIiwiU3VmZml4UGF0aG5hbWVOb3JtYWxpemVyIiwiUHJlZmV0Y2hSU0NQYXRobmFtZU5vcm1hbGl6ZXIiLCJjb25zdHJ1Y3RvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/prefetch-rsc.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/prefix.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/request/prefix.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PrefixPathnameNormalizer: () => (/* binding */ PrefixPathnameNormalizer)\n/* harmony export */ });\nclass PrefixPathnameNormalizer {\n constructor(prefix){\n this.prefix = prefix;\n if (prefix.endsWith(\"/\")) {\n throw new Error(`PrefixPathnameNormalizer: prefix \"${prefix}\" should not end with a slash`);\n }\n }\n match(pathname) {\n // If the pathname doesn't start with the prefix, we don't match.\n if (pathname !== this.prefix && !pathname.startsWith(this.prefix + \"/\")) {\n return false;\n }\n return true;\n }\n normalize(pathname, matched) {\n // If we're not matched and we don't match, we don't need to normalize.\n if (!matched && !this.match(pathname)) return pathname;\n if (pathname.length === this.prefix.length) {\n return \"/\";\n }\n return pathname.substring(this.prefix.length);\n }\n} //# sourceMappingURL=prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9yZXF1ZXN0L3ByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sTUFBTUE7SUFDVEMsWUFBWUMsTUFBTSxDQUFDO1FBQ2YsSUFBSSxDQUFDQSxNQUFNLEdBQUdBO1FBQ2QsSUFBSUEsT0FBT0MsUUFBUSxDQUFDLE1BQU07WUFDdEIsTUFBTSxJQUFJQyxNQUFNLENBQUMsa0NBQWtDLEVBQUVGLE9BQU8sNkJBQTZCLENBQUM7UUFDOUY7SUFDSjtJQUNBRyxNQUFNQyxRQUFRLEVBQUU7UUFDWixpRUFBaUU7UUFDakUsSUFBSUEsYUFBYSxJQUFJLENBQUNKLE1BQU0sSUFBSSxDQUFDSSxTQUFTQyxVQUFVLENBQUMsSUFBSSxDQUFDTCxNQUFNLEdBQUcsTUFBTTtZQUNyRSxPQUFPO1FBQ1g7UUFDQSxPQUFPO0lBQ1g7SUFDQU0sVUFBVUYsUUFBUSxFQUFFRyxPQUFPLEVBQUU7UUFDekIsdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQ0EsV0FBVyxDQUFDLElBQUksQ0FBQ0osS0FBSyxDQUFDQyxXQUFXLE9BQU9BO1FBQzlDLElBQUlBLFNBQVNJLE1BQU0sS0FBSyxJQUFJLENBQUNSLE1BQU0sQ0FBQ1EsTUFBTSxFQUFFO1lBQ3hDLE9BQU87UUFDWDtRQUNBLE9BQU9KLFNBQVNLLFNBQVMsQ0FBQyxJQUFJLENBQUNULE1BQU0sQ0FBQ1EsTUFBTTtJQUNoRDtBQUNKLEVBRUEsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL3JlcXVlc3QvcHJlZml4LmpzPzMyMDciXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFByZWZpeFBhdGhuYW1lTm9ybWFsaXplciB7XG4gICAgY29uc3RydWN0b3IocHJlZml4KXtcbiAgICAgICAgdGhpcy5wcmVmaXggPSBwcmVmaXg7XG4gICAgICAgIGlmIChwcmVmaXguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByZWZpeFBhdGhuYW1lTm9ybWFsaXplcjogcHJlZml4IFwiJHtwcmVmaXh9XCIgc2hvdWxkIG5vdCBlbmQgd2l0aCBhIHNsYXNoYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWF0Y2gocGF0aG5hbWUpIHtcbiAgICAgICAgLy8gSWYgdGhlIHBhdGhuYW1lIGRvZXNuJ3Qgc3RhcnQgd2l0aCB0aGUgcHJlZml4LCB3ZSBkb24ndCBtYXRjaC5cbiAgICAgICAgaWYgKHBhdGhuYW1lICE9PSB0aGlzLnByZWZpeCAmJiAhcGF0aG5hbWUuc3RhcnRzV2l0aCh0aGlzLnByZWZpeCArIFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBub3JtYWxpemUocGF0aG5hbWUsIG1hdGNoZWQpIHtcbiAgICAgICAgLy8gSWYgd2UncmUgbm90IG1hdGNoZWQgYW5kIHdlIGRvbid0IG1hdGNoLCB3ZSBkb24ndCBuZWVkIHRvIG5vcm1hbGl6ZS5cbiAgICAgICAgaWYgKCFtYXRjaGVkICYmICF0aGlzLm1hdGNoKHBhdGhuYW1lKSkgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICBpZiAocGF0aG5hbWUubGVuZ3RoID09PSB0aGlzLnByZWZpeC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGF0aG5hbWUuc3Vic3RyaW5nKHRoaXMucHJlZml4Lmxlbmd0aCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmVmaXguanMubWFwIl0sIm5hbWVzIjpbIlByZWZpeFBhdGhuYW1lTm9ybWFsaXplciIsImNvbnN0cnVjdG9yIiwicHJlZml4IiwiZW5kc1dpdGgiLCJFcnJvciIsIm1hdGNoIiwicGF0aG5hbWUiLCJzdGFydHNXaXRoIiwibm9ybWFsaXplIiwibWF0Y2hlZCIsImxlbmd0aCIsInN1YnN0cmluZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/prefix.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/rsc.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/request/rsc.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RSCPathnameNormalizer: () => (/* binding */ RSCPathnameNormalizer)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _suffix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./suffix */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/suffix.js\");\n\n\nclass RSCPathnameNormalizer extends _suffix__WEBPACK_IMPORTED_MODULE_1__.SuffixPathnameNormalizer {\n constructor(){\n super(_lib_constants__WEBPACK_IMPORTED_MODULE_0__.RSC_SUFFIX);\n }\n} //# sourceMappingURL=rsc.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9yZXF1ZXN0L3JzYy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUQ7QUFDSDtBQUM3QyxNQUFNRSw4QkFBOEJELDZEQUF3QkE7SUFDL0RFLGFBQWE7UUFDVCxLQUFLLENBQUNILHNEQUFVQTtJQUNwQjtBQUNKLEVBRUEsK0JBQStCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL3JlcXVlc3QvcnNjLmpzPzM3ZjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUlNDX1NVRkZJWCB9IGZyb20gXCIuLi8uLi8uLi8uLi9saWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBTdWZmaXhQYXRobmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9zdWZmaXhcIjtcbmV4cG9ydCBjbGFzcyBSU0NQYXRobmFtZU5vcm1hbGl6ZXIgZXh0ZW5kcyBTdWZmaXhQYXRobmFtZU5vcm1hbGl6ZXIge1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKFJTQ19TVUZGSVgpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cnNjLmpzLm1hcCJdLCJuYW1lcyI6WyJSU0NfU1VGRklYIiwiU3VmZml4UGF0aG5hbWVOb3JtYWxpemVyIiwiUlNDUGF0aG5hbWVOb3JtYWxpemVyIiwiY29uc3RydWN0b3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/rsc.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/suffix.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/request/suffix.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SuffixPathnameNormalizer: () => (/* binding */ SuffixPathnameNormalizer)\n/* harmony export */ });\nclass SuffixPathnameNormalizer {\n constructor(suffix){\n this.suffix = suffix;\n }\n match(pathname) {\n // If the pathname doesn't end in the suffix, we don't match.\n if (!pathname.endsWith(this.suffix)) return false;\n return true;\n }\n normalize(pathname, matched) {\n // If we're not matched and we don't match, we don't need to normalize.\n if (!matched && !this.match(pathname)) return pathname;\n return pathname.substring(0, pathname.length - this.suffix.length);\n }\n} //# sourceMappingURL=suffix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy9yZXF1ZXN0L3N1ZmZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sTUFBTUE7SUFDVEMsWUFBWUMsTUFBTSxDQUFDO1FBQ2YsSUFBSSxDQUFDQSxNQUFNLEdBQUdBO0lBQ2xCO0lBQ0FDLE1BQU1DLFFBQVEsRUFBRTtRQUNaLDZEQUE2RDtRQUM3RCxJQUFJLENBQUNBLFNBQVNDLFFBQVEsQ0FBQyxJQUFJLENBQUNILE1BQU0sR0FBRyxPQUFPO1FBQzVDLE9BQU87SUFDWDtJQUNBSSxVQUFVRixRQUFRLEVBQUVHLE9BQU8sRUFBRTtRQUN6Qix1RUFBdUU7UUFDdkUsSUFBSSxDQUFDQSxXQUFXLENBQUMsSUFBSSxDQUFDSixLQUFLLENBQUNDLFdBQVcsT0FBT0E7UUFDOUMsT0FBT0EsU0FBU0ksU0FBUyxDQUFDLEdBQUdKLFNBQVNLLE1BQU0sR0FBRyxJQUFJLENBQUNQLE1BQU0sQ0FBQ08sTUFBTTtJQUNyRTtBQUNKLEVBRUEsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL25vcm1hbGl6ZXJzL3JlcXVlc3Qvc3VmZml4LmpzP2IyMmMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN1ZmZpeFBhdGhuYW1lTm9ybWFsaXplciB7XG4gICAgY29uc3RydWN0b3Ioc3VmZml4KXtcbiAgICAgICAgdGhpcy5zdWZmaXggPSBzdWZmaXg7XG4gICAgfVxuICAgIG1hdGNoKHBhdGhuYW1lKSB7XG4gICAgICAgIC8vIElmIHRoZSBwYXRobmFtZSBkb2Vzbid0IGVuZCBpbiB0aGUgc3VmZml4LCB3ZSBkb24ndCBtYXRjaC5cbiAgICAgICAgaWYgKCFwYXRobmFtZS5lbmRzV2l0aCh0aGlzLnN1ZmZpeCkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIG5vcm1hbGl6ZShwYXRobmFtZSwgbWF0Y2hlZCkge1xuICAgICAgICAvLyBJZiB3ZSdyZSBub3QgbWF0Y2hlZCBhbmQgd2UgZG9uJ3QgbWF0Y2gsIHdlIGRvbid0IG5lZWQgdG8gbm9ybWFsaXplLlxuICAgICAgICBpZiAoIW1hdGNoZWQgJiYgIXRoaXMubWF0Y2gocGF0aG5hbWUpKSByZXR1cm4gcGF0aG5hbWU7XG4gICAgICAgIHJldHVybiBwYXRobmFtZS5zdWJzdHJpbmcoMCwgcGF0aG5hbWUubGVuZ3RoIC0gdGhpcy5zdWZmaXgubGVuZ3RoKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN1ZmZpeC5qcy5tYXAiXSwibmFtZXMiOlsiU3VmZml4UGF0aG5hbWVOb3JtYWxpemVyIiwiY29uc3RydWN0b3IiLCJzdWZmaXgiLCJtYXRjaCIsInBhdGhuYW1lIiwiZW5kc1dpdGgiLCJub3JtYWxpemUiLCJtYXRjaGVkIiwic3Vic3RyaW5nIiwibGVuZ3RoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/request/suffix.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/underscore-normalizer.js":
-/*!*******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/underscore-normalizer.js ***!
- \*******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ UnderscoreNormalizer: () => (/* binding */ UnderscoreNormalizer)\n/* harmony export */ });\n/**\n * UnderscoreNormalizer replaces all instances of %5F with _.\n */ class UnderscoreNormalizer {\n normalize(pathname) {\n return pathname.replace(/%5F/g, \"_\");\n }\n} //# sourceMappingURL=underscore-normalizer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy91bmRlcnNjb3JlLW5vcm1hbGl6ZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztDQUVDLEdBQVUsTUFBTUE7SUFDYkMsVUFBVUMsUUFBUSxFQUFFO1FBQ2hCLE9BQU9BLFNBQVNDLE9BQU8sQ0FBQyxRQUFRO0lBQ3BDO0FBQ0osRUFFQSxpREFBaUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvbm9ybWFsaXplcnMvdW5kZXJzY29yZS1ub3JtYWxpemVyLmpzP2U4MWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmRlcnNjb3JlTm9ybWFsaXplciByZXBsYWNlcyBhbGwgaW5zdGFuY2VzIG9mICU1RiB3aXRoIF8uXG4gKi8gZXhwb3J0IGNsYXNzIFVuZGVyc2NvcmVOb3JtYWxpemVyIHtcbiAgICBub3JtYWxpemUocGF0aG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lLnJlcGxhY2UoLyU1Ri9nLCBcIl9cIik7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11bmRlcnNjb3JlLW5vcm1hbGl6ZXIuanMubWFwIl0sIm5hbWVzIjpbIlVuZGVyc2NvcmVOb3JtYWxpemVyIiwibm9ybWFsaXplIiwicGF0aG5hbWUiLCJyZXBsYWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/underscore-normalizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/wrap-normalizer-fn.js":
-/*!****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/normalizers/wrap-normalizer-fn.js ***!
- \****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ wrapNormalizerFn: () => (/* binding */ wrapNormalizerFn)\n/* harmony export */ });\nfunction wrapNormalizerFn(fn) {\n return {\n normalize: fn\n };\n} //# sourceMappingURL=wrap-normalizer-fn.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy93cmFwLW5vcm1hbGl6ZXItZm4uanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLGlCQUFpQkMsRUFBRTtJQUMvQixPQUFPO1FBQ0hDLFdBQVdEO0lBQ2Y7QUFDSixFQUVBLDhDQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9ub3JtYWxpemVycy93cmFwLW5vcm1hbGl6ZXItZm4uanM/NTQyMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gd3JhcE5vcm1hbGl6ZXJGbihmbikge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5vcm1hbGl6ZTogZm5cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13cmFwLW5vcm1hbGl6ZXItZm4uanMubWFwIl0sIm5hbWVzIjpbIndyYXBOb3JtYWxpemVyRm4iLCJmbiIsIm5vcm1hbGl6ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/wrap-normalizer-fn.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-kind.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-kind.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RouteKind: () => (/* binding */ RouteKind)\n/* harmony export */ });\nvar RouteKind;\n(function(RouteKind) {\n RouteKind[/**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ \"PAGES\"] = \"PAGES\";\n RouteKind[/**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ \"PAGES_API\"] = \"PAGES_API\";\n RouteKind[/**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ \"APP_PAGE\"] = \"APP_PAGE\";\n RouteKind[/**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ \"APP_ROUTE\"] = \"APP_ROUTE\";\n})(RouteKind || (RouteKind = {})); //# sourceMappingURL=route-kind.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxJQUFJQSxVQUFVO0FBQ3BCLFVBQVNBLFNBQVM7SUFDZkEsU0FBUyxDQUFDOztHQUVYLEdBQUcsUUFBUSxHQUFHO0lBQ2JBLFNBQVMsQ0FBQzs7R0FFWCxHQUFHLFlBQVksR0FBRztJQUNqQkEsU0FBUyxDQUFDOzs7R0FHWCxHQUFHLFdBQVcsR0FBRztJQUNoQkEsU0FBUyxDQUFDOzs7R0FHWCxHQUFHLFlBQVksR0FBRztBQUNyQixHQUFHQSxhQUFjQSxDQUFBQSxZQUFZLENBQUMsS0FFOUIsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmQuanM/NmE0MyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIFJvdXRlS2luZDtcbihmdW5jdGlvbihSb3V0ZUtpbmQpIHtcbiAgICBSb3V0ZUtpbmRbLyoqXG4gICAqIGBQQUdFU2AgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBwYWdlcy9gLlxuICAgKi8gXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICBSb3V0ZUtpbmRbLyoqXG4gICAqIGBQQUdFU19BUElgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICovIFwiUEFHRVNfQVBJXCJdID0gXCJQQUdFU19BUElcIjtcbiAgICBSb3V0ZUtpbmRbLyoqXG4gICAqIGBBUFBfUEFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcGFnZS57aix0fXN7LHh9YC5cbiAgICovIFwiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgUm91dGVLaW5kWy8qKlxuICAgKiBgQVBQX1JPVVRFYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcm91dGUue2osdH1zeyx4fWAuXG4gICAqLyBcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG59KShSb3V0ZUtpbmQgfHwgKFJvdXRlS2luZCA9IHt9KSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWtpbmQuanMubWFwIl0sIm5hbWVzIjpbIlJvdXRlS2luZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-kind.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-managers/default-route-matcher-manager.js":
-/*!**************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matcher-managers/default-route-matcher-manager.js ***!
- \**************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DefaultRouteMatcherManager: () => (/* binding */ DefaultRouteMatcherManager)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/router/utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/index.js\");\n/* harmony import */ var _route_matchers_locale_route_matcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../route-matchers/locale-route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/locale-route-matcher.js\");\n/* harmony import */ var _shared_lib_page_path_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../shared/lib/page-path/ensure-leading-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\");\n/* harmony import */ var _lib_detached_promise__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../lib/detached-promise */ \"(ssr)/../../node_modules/next/dist/esm/lib/detached-promise.js\");\n\n\n\n\n\nclass DefaultRouteMatcherManager {\n /**\n * When this value changes, it indicates that a change has been introduced\n * that requires recompilation.\n */ get compilationID() {\n return this.providers.length;\n }\n async waitTillReady() {\n if (this.waitTillReadyPromise) {\n await this.waitTillReadyPromise;\n delete this.waitTillReadyPromise;\n }\n }\n async reload() {\n const { promise, resolve, reject } = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_3__.DetachedPromise();\n this.waitTillReadyPromise = promise;\n // Grab the compilation ID for this run, we'll verify it at the end to\n // ensure that if any routes were added before reloading is finished that\n // we error out.\n const compilationID = this.compilationID;\n try {\n // Collect all the matchers from each provider.\n const matchers = [];\n // Get all the providers matchers.\n const providersMatchers = await Promise.all(this.providers.map((provider)=>provider.matchers()));\n // Use this to detect duplicate pathnames.\n const all = new Map();\n const duplicates = {};\n for (const providerMatchers of providersMatchers){\n for (const matcher of providerMatchers){\n // Reset duplicated matches when reloading from pages conflicting state.\n if (matcher.duplicated) delete matcher.duplicated;\n // Test to see if the matcher being added is a duplicate.\n const duplicate = all.get(matcher.definition.pathname);\n if (duplicate) {\n // This looks a little weird, but essentially if the pathname\n // already exists in the duplicates map, then we got that array\n // reference. Otherwise, we create a new array with the original\n // duplicate first. Then we push the new matcher into the duplicate\n // array, and reset it to the duplicates object (which may be a\n // no-op if the pathname already existed in the duplicates object).\n // Then we set the array of duplicates on both the original\n // duplicate object and the new one, so we can keep them in sync.\n // If a new duplicate is found, and it matches an existing pathname,\n // the retrieval of the `other` will actually return the array\n // reference used by all other duplicates. This is why ReadonlyArray\n // is so important! Array's are always references!\n const others = duplicates[matcher.definition.pathname] ?? [\n duplicate\n ];\n others.push(matcher);\n duplicates[matcher.definition.pathname] = others;\n // Add duplicated details to each route.\n duplicate.duplicated = others;\n matcher.duplicated = others;\n // TODO: see if we should error for duplicates in production?\n }\n matchers.push(matcher);\n // Add the matcher's pathname to the set.\n all.set(matcher.definition.pathname, matcher);\n }\n }\n // Update the duplicate matchers. This is used in the development manager\n // to warn about duplicates.\n this.matchers.duplicates = duplicates;\n // If the cache is the same as what we just parsed, we can exit now. We\n // can tell by using the `===` which compares object identity, which for\n // the manifest matchers, will return the same matcher each time.\n if (this.previousMatchers.length === matchers.length && this.previousMatchers.every((cachedMatcher, index)=>cachedMatcher === matchers[index])) {\n return;\n }\n this.previousMatchers = matchers;\n // For matchers that are for static routes, filter them now.\n this.matchers.static = matchers.filter((matcher)=>!matcher.isDynamic);\n // For matchers that are for dynamic routes, filter them and sort them now.\n const dynamic = matchers.filter((matcher)=>matcher.isDynamic);\n // As `getSortedRoutes` only takes an array of strings, we need to create\n // a map of the pathnames (used for sorting) and the matchers. When we\n // have locales, there may be multiple matches for the same pathname. To\n // handle this, we keep a map of all the indexes (in `reference`) and\n // merge them in later.\n const reference = new Map();\n const pathnames = new Array();\n for(let index = 0; index < dynamic.length; index++){\n // Grab the pathname from the definition.\n const pathname = dynamic[index].definition.pathname;\n // Grab the index in the dynamic array, push it into the reference.\n const indexes = reference.get(pathname) ?? [];\n indexes.push(index);\n // If this is the first one set it. If it isn't, we don't need to\n // because pushing above on the array will mutate the array already\n // stored there because array's are always a reference!\n if (indexes.length === 1) reference.set(pathname, indexes);\n else continue;\n pathnames.push(pathname);\n }\n // Sort the array of pathnames.\n const sorted = (0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_0__.getSortedRoutes)(pathnames);\n // For each of the sorted pathnames, iterate over them, grabbing the list\n // of indexes and merging them back into the new `sortedDynamicMatchers`\n // array. The order of the same matching pathname doesn't matter because\n // they will have other matching characteristics (like the locale) that\n // is considered.\n const sortedDynamicMatchers = [];\n for (const pathname of sorted){\n const indexes = reference.get(pathname);\n if (!Array.isArray(indexes)) {\n throw new Error(\"Invariant: expected to find identity in indexes map\");\n }\n const dynamicMatches = indexes.map((index)=>dynamic[index]);\n sortedDynamicMatchers.push(...dynamicMatches);\n }\n this.matchers.dynamic = sortedDynamicMatchers;\n // This means that there was a new matcher pushed while we were waiting\n if (this.compilationID !== compilationID) {\n throw new Error(\"Invariant: expected compilation to finish before new matchers were added, possible missing await\");\n }\n } catch (err) {\n reject(err);\n } finally{\n // The compilation ID matched, so mark the complication as finished.\n this.lastCompilationID = compilationID;\n resolve();\n }\n }\n push(provider) {\n this.providers.push(provider);\n }\n async test(pathname, options) {\n // See if there's a match for the pathname...\n const match = await this.match(pathname, options);\n // This default implementation only needs to check to see if there _was_ a\n // match. The development matcher actually changes it's behavior by not\n // recompiling the routes.\n return match !== null;\n }\n async match(pathname, options) {\n // \"Iterate\" over the match options. Once we found a single match, exit with\n // it, otherwise return null below. If no match is found, the inner block\n // won't be called.\n for await (const match of this.matchAll(pathname, options)){\n return match;\n }\n return null;\n }\n /**\n * This is a point for other managers to override to inject other checking\n * behavior like duplicate route checking on a per-request basis.\n *\n * @param pathname the pathname to validate against\n * @param matcher the matcher to validate/test with\n * @returns the match if found\n */ validate(pathname, matcher, options) {\n var _options_i18n;\n if (matcher instanceof _route_matchers_locale_route_matcher__WEBPACK_IMPORTED_MODULE_1__.LocaleRouteMatcher) {\n return matcher.match(pathname, options);\n }\n // If the locale was inferred from the default locale, then it will have\n // already added a locale to the pathname. We need to remove it before\n // matching because this matcher is not locale aware.\n if ((_options_i18n = options.i18n) == null ? void 0 : _options_i18n.inferredFromDefault) {\n return matcher.match(options.i18n.pathname);\n }\n return matcher.match(pathname);\n }\n async *matchAll(pathname, options) {\n // Guard against the matcher manager from being run before it needs to be\n // recompiled. This was preferred to re-running the compilation here because\n // it should be re-ran only when it changes. If a match is attempted before\n // this is done, it indicates that there is a case where a provider is added\n // before it was recompiled (an error). We also don't want to affect request\n // times.\n if (this.lastCompilationID !== this.compilationID) {\n throw new Error(\"Invariant: expected routes to have been loaded before match\");\n }\n // Ensure that path matching is done with a leading slash.\n pathname = (0,_shared_lib_page_path_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_2__.ensureLeadingSlash)(pathname);\n // If this pathname doesn't look like a dynamic route, and this pathname is\n // listed in the normalized list of routes, then return it. This ensures\n // that when a route like `/user/[id]` is encountered, it doesn't just match\n // with the list of normalized routes.\n if (!(0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_0__.isDynamicRoute)(pathname)) {\n for (const matcher of this.matchers.static){\n const match = this.validate(pathname, matcher, options);\n if (!match) continue;\n yield match;\n }\n }\n // If we should skip handling dynamic routes, exit now.\n if (options == null ? void 0 : options.skipDynamic) return null;\n // Loop over the dynamic matchers, yielding each match.\n for (const matcher of this.matchers.dynamic){\n const match = this.validate(pathname, matcher, options);\n if (!match) continue;\n yield match;\n }\n // We tried direct matching against the pathname and against all the dynamic\n // paths, so there was no match.\n return null;\n }\n constructor(){\n this.providers = [];\n this.matchers = {\n static: [],\n dynamic: [],\n duplicates: {}\n };\n this.lastCompilationID = this.compilationID;\n this.previousMatchers = [];\n }\n} //# sourceMappingURL=default-route-matcher-manager.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLW1hbmFnZXJzL2RlZmF1bHQtcm91dGUtbWF0Y2hlci1tYW5hZ2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWtFO0FBQ0M7QUFDUztBQUNZO0FBQ3hCO0FBQ3pELE1BQU1LO0lBQ1Q7OztHQUdELEdBQUcsSUFBSUMsZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDQyxTQUFTLENBQUNDLE1BQU07SUFDaEM7SUFDQSxNQUFNQyxnQkFBZ0I7UUFDbEIsSUFBSSxJQUFJLENBQUNDLG9CQUFvQixFQUFFO1lBQzNCLE1BQU0sSUFBSSxDQUFDQSxvQkFBb0I7WUFDL0IsT0FBTyxJQUFJLENBQUNBLG9CQUFvQjtRQUNwQztJQUNKO0lBQ0EsTUFBTUMsU0FBUztRQUNYLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRSxHQUFHLElBQUlWLGtFQUFlQTtRQUN4RCxJQUFJLENBQUNNLG9CQUFvQixHQUFHRTtRQUM1QixzRUFBc0U7UUFDdEUseUVBQXlFO1FBQ3pFLGdCQUFnQjtRQUNoQixNQUFNTixnQkFBZ0IsSUFBSSxDQUFDQSxhQUFhO1FBQ3hDLElBQUk7WUFDQSwrQ0FBK0M7WUFDL0MsTUFBTVMsV0FBVyxFQUFFO1lBQ25CLGtDQUFrQztZQUNsQyxNQUFNQyxvQkFBb0IsTUFBTUMsUUFBUUMsR0FBRyxDQUFDLElBQUksQ0FBQ1gsU0FBUyxDQUFDWSxHQUFHLENBQUMsQ0FBQ0MsV0FBV0EsU0FBU0wsUUFBUTtZQUM1RiwwQ0FBMEM7WUFDMUMsTUFBTUcsTUFBTSxJQUFJRztZQUNoQixNQUFNQyxhQUFhLENBQUM7WUFDcEIsS0FBSyxNQUFNQyxvQkFBb0JQLGtCQUFrQjtnQkFDN0MsS0FBSyxNQUFNUSxXQUFXRCxpQkFBaUI7b0JBQ25DLHdFQUF3RTtvQkFDeEUsSUFBSUMsUUFBUUMsVUFBVSxFQUFFLE9BQU9ELFFBQVFDLFVBQVU7b0JBQ2pELHlEQUF5RDtvQkFDekQsTUFBTUMsWUFBWVIsSUFBSVMsR0FBRyxDQUFDSCxRQUFRSSxVQUFVLENBQUNDLFFBQVE7b0JBQ3JELElBQUlILFdBQVc7d0JBQ1gsNkRBQTZEO3dCQUM3RCwrREFBK0Q7d0JBQy9ELGdFQUFnRTt3QkFDaEUsbUVBQW1FO3dCQUNuRSwrREFBK0Q7d0JBQy9ELG1FQUFtRTt3QkFDbkUsMkRBQTJEO3dCQUMzRCxpRUFBaUU7d0JBQ2pFLG9FQUFvRTt3QkFDcEUsOERBQThEO3dCQUM5RCxvRUFBb0U7d0JBQ3BFLGtEQUFrRDt3QkFDbEQsTUFBTUksU0FBU1IsVUFBVSxDQUFDRSxRQUFRSSxVQUFVLENBQUNDLFFBQVEsQ0FBQyxJQUFJOzRCQUN0REg7eUJBQ0g7d0JBQ0RJLE9BQU9DLElBQUksQ0FBQ1A7d0JBQ1pGLFVBQVUsQ0FBQ0UsUUFBUUksVUFBVSxDQUFDQyxRQUFRLENBQUMsR0FBR0M7d0JBQzFDLHdDQUF3Qzt3QkFDeENKLFVBQVVELFVBQVUsR0FBR0s7d0JBQ3ZCTixRQUFRQyxVQUFVLEdBQUdLO29CQUN6Qiw2REFBNkQ7b0JBQzdEO29CQUNBZixTQUFTZ0IsSUFBSSxDQUFDUDtvQkFDZCx5Q0FBeUM7b0JBQ3pDTixJQUFJYyxHQUFHLENBQUNSLFFBQVFJLFVBQVUsQ0FBQ0MsUUFBUSxFQUFFTDtnQkFDekM7WUFDSjtZQUNBLHlFQUF5RTtZQUN6RSw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDVCxRQUFRLENBQUNPLFVBQVUsR0FBR0E7WUFDM0IsdUVBQXVFO1lBQ3ZFLHdFQUF3RTtZQUN4RSxpRUFBaUU7WUFDakUsSUFBSSxJQUFJLENBQUNXLGdCQUFnQixDQUFDekIsTUFBTSxLQUFLTyxTQUFTUCxNQUFNLElBQUksSUFBSSxDQUFDeUIsZ0JBQWdCLENBQUNDLEtBQUssQ0FBQyxDQUFDQyxlQUFlQyxRQUFRRCxrQkFBa0JwQixRQUFRLENBQUNxQixNQUFNLEdBQUc7Z0JBQzVJO1lBQ0o7WUFDQSxJQUFJLENBQUNILGdCQUFnQixHQUFHbEI7WUFDeEIsNERBQTREO1lBQzVELElBQUksQ0FBQ0EsUUFBUSxDQUFDc0IsTUFBTSxHQUFHdEIsU0FBU3VCLE1BQU0sQ0FBQyxDQUFDZCxVQUFVLENBQUNBLFFBQVFlLFNBQVM7WUFDcEUsMkVBQTJFO1lBQzNFLE1BQU1DLFVBQVV6QixTQUFTdUIsTUFBTSxDQUFDLENBQUNkLFVBQVVBLFFBQVFlLFNBQVM7WUFDNUQseUVBQXlFO1lBQ3pFLHNFQUFzRTtZQUN0RSx3RUFBd0U7WUFDeEUscUVBQXFFO1lBQ3JFLHVCQUF1QjtZQUN2QixNQUFNRSxZQUFZLElBQUlwQjtZQUN0QixNQUFNcUIsWUFBWSxJQUFJQztZQUN0QixJQUFJLElBQUlQLFFBQVEsR0FBR0EsUUFBUUksUUFBUWhDLE1BQU0sRUFBRTRCLFFBQVE7Z0JBQy9DLHlDQUF5QztnQkFDekMsTUFBTVAsV0FBV1csT0FBTyxDQUFDSixNQUFNLENBQUNSLFVBQVUsQ0FBQ0MsUUFBUTtnQkFDbkQsbUVBQW1FO2dCQUNuRSxNQUFNZSxVQUFVSCxVQUFVZCxHQUFHLENBQUNFLGFBQWEsRUFBRTtnQkFDN0NlLFFBQVFiLElBQUksQ0FBQ0s7Z0JBQ2IsaUVBQWlFO2dCQUNqRSxtRUFBbUU7Z0JBQ25FLHVEQUF1RDtnQkFDdkQsSUFBSVEsUUFBUXBDLE1BQU0sS0FBSyxHQUFHaUMsVUFBVVQsR0FBRyxDQUFDSCxVQUFVZTtxQkFDN0M7Z0JBQ0xGLFVBQVVYLElBQUksQ0FBQ0Y7WUFDbkI7WUFDQSwrQkFBK0I7WUFDL0IsTUFBTWdCLFNBQVM1Qyx5RUFBZUEsQ0FBQ3lDO1lBQy9CLHlFQUF5RTtZQUN6RSx3RUFBd0U7WUFDeEUsd0VBQXdFO1lBQ3hFLHVFQUF1RTtZQUN2RSxpQkFBaUI7WUFDakIsTUFBTUksd0JBQXdCLEVBQUU7WUFDaEMsS0FBSyxNQUFNakIsWUFBWWdCLE9BQU87Z0JBQzFCLE1BQU1ELFVBQVVILFVBQVVkLEdBQUcsQ0FBQ0U7Z0JBQzlCLElBQUksQ0FBQ2MsTUFBTUksT0FBTyxDQUFDSCxVQUFVO29CQUN6QixNQUFNLElBQUlJLE1BQU07Z0JBQ3BCO2dCQUNBLE1BQU1DLGlCQUFpQkwsUUFBUXpCLEdBQUcsQ0FBQyxDQUFDaUIsUUFBUUksT0FBTyxDQUFDSixNQUFNO2dCQUMxRFUsc0JBQXNCZixJQUFJLElBQUlrQjtZQUNsQztZQUNBLElBQUksQ0FBQ2xDLFFBQVEsQ0FBQ3lCLE9BQU8sR0FBR007WUFDeEIsdUVBQXVFO1lBQ3ZFLElBQUksSUFBSSxDQUFDeEMsYUFBYSxLQUFLQSxlQUFlO2dCQUN0QyxNQUFNLElBQUkwQyxNQUFNO1lBQ3BCO1FBQ0osRUFBRSxPQUFPRSxLQUFLO1lBQ1ZwQyxPQUFPb0M7UUFDWCxTQUFTO1lBQ0wsb0VBQW9FO1lBQ3BFLElBQUksQ0FBQ0MsaUJBQWlCLEdBQUc3QztZQUN6Qk87UUFDSjtJQUNKO0lBQ0FrQixLQUFLWCxRQUFRLEVBQUU7UUFDWCxJQUFJLENBQUNiLFNBQVMsQ0FBQ3dCLElBQUksQ0FBQ1g7SUFDeEI7SUFDQSxNQUFNZ0MsS0FBS3ZCLFFBQVEsRUFBRXdCLE9BQU8sRUFBRTtRQUMxQiw2Q0FBNkM7UUFDN0MsTUFBTUMsUUFBUSxNQUFNLElBQUksQ0FBQ0EsS0FBSyxDQUFDekIsVUFBVXdCO1FBQ3pDLDBFQUEwRTtRQUMxRSx1RUFBdUU7UUFDdkUsMEJBQTBCO1FBQzFCLE9BQU9DLFVBQVU7SUFDckI7SUFDQSxNQUFNQSxNQUFNekIsUUFBUSxFQUFFd0IsT0FBTyxFQUFFO1FBQzNCLDRFQUE0RTtRQUM1RSx5RUFBeUU7UUFDekUsbUJBQW1CO1FBQ25CLFdBQVcsTUFBTUMsU0FBUyxJQUFJLENBQUNDLFFBQVEsQ0FBQzFCLFVBQVV3QixTQUFTO1lBQ3ZELE9BQU9DO1FBQ1g7UUFDQSxPQUFPO0lBQ1g7SUFDQTs7Ozs7OztHQU9ELEdBQUdFLFNBQVMzQixRQUFRLEVBQUVMLE9BQU8sRUFBRTZCLE9BQU8sRUFBRTtRQUNuQyxJQUFJSTtRQUNKLElBQUlqQyxtQkFBbUJ0QixvRkFBa0JBLEVBQUU7WUFDdkMsT0FBT3NCLFFBQVE4QixLQUFLLENBQUN6QixVQUFVd0I7UUFDbkM7UUFDQSx3RUFBd0U7UUFDeEUsc0VBQXNFO1FBQ3RFLHFEQUFxRDtRQUNyRCxJQUFJLENBQUNJLGdCQUFnQkosUUFBUUssSUFBSSxLQUFLLE9BQU8sS0FBSyxJQUFJRCxjQUFjRSxtQkFBbUIsRUFBRTtZQUNyRixPQUFPbkMsUUFBUThCLEtBQUssQ0FBQ0QsUUFBUUssSUFBSSxDQUFDN0IsUUFBUTtRQUM5QztRQUNBLE9BQU9MLFFBQVE4QixLQUFLLENBQUN6QjtJQUN6QjtJQUNBLE9BQU8wQixTQUFTMUIsUUFBUSxFQUFFd0IsT0FBTyxFQUFFO1FBQy9CLHlFQUF5RTtRQUN6RSw0RUFBNEU7UUFDNUUsMkVBQTJFO1FBQzNFLDRFQUE0RTtRQUM1RSw0RUFBNEU7UUFDNUUsU0FBUztRQUNULElBQUksSUFBSSxDQUFDRixpQkFBaUIsS0FBSyxJQUFJLENBQUM3QyxhQUFhLEVBQUU7WUFDL0MsTUFBTSxJQUFJMEMsTUFBTTtRQUNwQjtRQUNBLDBEQUEwRDtRQUMxRG5CLFdBQVcxQiw4RkFBa0JBLENBQUMwQjtRQUM5QiwyRUFBMkU7UUFDM0Usd0VBQXdFO1FBQ3hFLDRFQUE0RTtRQUM1RSxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDN0Isd0VBQWNBLENBQUM2QixXQUFXO1lBQzNCLEtBQUssTUFBTUwsV0FBVyxJQUFJLENBQUNULFFBQVEsQ0FBQ3NCLE1BQU0sQ0FBQztnQkFDdkMsTUFBTWlCLFFBQVEsSUFBSSxDQUFDRSxRQUFRLENBQUMzQixVQUFVTCxTQUFTNkI7Z0JBQy9DLElBQUksQ0FBQ0MsT0FBTztnQkFDWixNQUFNQTtZQUNWO1FBQ0o7UUFDQSx1REFBdUQ7UUFDdkQsSUFBSUQsV0FBVyxPQUFPLEtBQUssSUFBSUEsUUFBUU8sV0FBVyxFQUFFLE9BQU87UUFDM0QsdURBQXVEO1FBQ3ZELEtBQUssTUFBTXBDLFdBQVcsSUFBSSxDQUFDVCxRQUFRLENBQUN5QixPQUFPLENBQUM7WUFDeEMsTUFBTWMsUUFBUSxJQUFJLENBQUNFLFFBQVEsQ0FBQzNCLFVBQVVMLFNBQVM2QjtZQUMvQyxJQUFJLENBQUNDLE9BQU87WUFDWixNQUFNQTtRQUNWO1FBQ0EsNEVBQTRFO1FBQzVFLGdDQUFnQztRQUNoQyxPQUFPO0lBQ1g7SUFDQU8sYUFBYTtRQUNULElBQUksQ0FBQ3RELFNBQVMsR0FBRyxFQUFFO1FBQ25CLElBQUksQ0FBQ1EsUUFBUSxHQUFHO1lBQ1pzQixRQUFRLEVBQUU7WUFDVkcsU0FBUyxFQUFFO1lBQ1hsQixZQUFZLENBQUM7UUFDakI7UUFDQSxJQUFJLENBQUM2QixpQkFBaUIsR0FBRyxJQUFJLENBQUM3QyxhQUFhO1FBQzNDLElBQUksQ0FBQzJCLGdCQUFnQixHQUFHLEVBQUU7SUFDOUI7QUFDSixFQUVBLHlEQUF5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLW1hbmFnZXJzL2RlZmF1bHQtcm91dGUtbWF0Y2hlci1tYW5hZ2VyLmpzP2YyMzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHNcIjtcbmltcG9ydCB7IGdldFNvcnRlZFJvdXRlcyB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlsc1wiO1xuaW1wb3J0IHsgTG9jYWxlUm91dGVNYXRjaGVyIH0gZnJvbSBcIi4uL3JvdXRlLW1hdGNoZXJzL2xvY2FsZS1yb3V0ZS1tYXRjaGVyXCI7XG5pbXBvcnQgeyBlbnN1cmVMZWFkaW5nU2xhc2ggfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2hcIjtcbmltcG9ydCB7IERldGFjaGVkUHJvbWlzZSB9IGZyb20gXCIuLi8uLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiO1xuZXhwb3J0IGNsYXNzIERlZmF1bHRSb3V0ZU1hdGNoZXJNYW5hZ2VyIHtcbiAgICAvKipcbiAgICogV2hlbiB0aGlzIHZhbHVlIGNoYW5nZXMsIGl0IGluZGljYXRlcyB0aGF0IGEgY2hhbmdlIGhhcyBiZWVuIGludHJvZHVjZWRcbiAgICogdGhhdCByZXF1aXJlcyByZWNvbXBpbGF0aW9uLlxuICAgKi8gZ2V0IGNvbXBpbGF0aW9uSUQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVycy5sZW5ndGg7XG4gICAgfVxuICAgIGFzeW5jIHdhaXRUaWxsUmVhZHkoKSB7XG4gICAgICAgIGlmICh0aGlzLndhaXRUaWxsUmVhZHlQcm9taXNlKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLndhaXRUaWxsUmVhZHlQcm9taXNlO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMud2FpdFRpbGxSZWFkeVByb21pc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgcmVsb2FkKCkge1xuICAgICAgICBjb25zdCB7IHByb21pc2UsIHJlc29sdmUsIHJlamVjdCB9ID0gbmV3IERldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICB0aGlzLndhaXRUaWxsUmVhZHlQcm9taXNlID0gcHJvbWlzZTtcbiAgICAgICAgLy8gR3JhYiB0aGUgY29tcGlsYXRpb24gSUQgZm9yIHRoaXMgcnVuLCB3ZSdsbCB2ZXJpZnkgaXQgYXQgdGhlIGVuZCB0b1xuICAgICAgICAvLyBlbnN1cmUgdGhhdCBpZiBhbnkgcm91dGVzIHdlcmUgYWRkZWQgYmVmb3JlIHJlbG9hZGluZyBpcyBmaW5pc2hlZCB0aGF0XG4gICAgICAgIC8vIHdlIGVycm9yIG91dC5cbiAgICAgICAgY29uc3QgY29tcGlsYXRpb25JRCA9IHRoaXMuY29tcGlsYXRpb25JRDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIENvbGxlY3QgYWxsIHRoZSBtYXRjaGVycyBmcm9tIGVhY2ggcHJvdmlkZXIuXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVycyA9IFtdO1xuICAgICAgICAgICAgLy8gR2V0IGFsbCB0aGUgcHJvdmlkZXJzIG1hdGNoZXJzLlxuICAgICAgICAgICAgY29uc3QgcHJvdmlkZXJzTWF0Y2hlcnMgPSBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnByb3ZpZGVycy5tYXAoKHByb3ZpZGVyKT0+cHJvdmlkZXIubWF0Y2hlcnMoKSkpO1xuICAgICAgICAgICAgLy8gVXNlIHRoaXMgdG8gZGV0ZWN0IGR1cGxpY2F0ZSBwYXRobmFtZXMuXG4gICAgICAgICAgICBjb25zdCBhbGwgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBjb25zdCBkdXBsaWNhdGVzID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyTWF0Y2hlcnMgb2YgcHJvdmlkZXJzTWF0Y2hlcnMpe1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2hlciBvZiBwcm92aWRlck1hdGNoZXJzKXtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgZHVwbGljYXRlZCBtYXRjaGVzIHdoZW4gcmVsb2FkaW5nIGZyb20gcGFnZXMgY29uZmxpY3Rpbmcgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVyLmR1cGxpY2F0ZWQpIGRlbGV0ZSBtYXRjaGVyLmR1cGxpY2F0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgdG8gc2VlIGlmIHRoZSBtYXRjaGVyIGJlaW5nIGFkZGVkIGlzIGEgZHVwbGljYXRlLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkdXBsaWNhdGUgPSBhbGwuZ2V0KG1hdGNoZXIuZGVmaW5pdGlvbi5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgbG9va3MgYSBsaXR0bGUgd2VpcmQsIGJ1dCBlc3NlbnRpYWxseSBpZiB0aGUgcGF0aG5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkdXBsaWNhdGVzIG1hcCwgdGhlbiB3ZSBnb3QgdGhhdCBhcnJheVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVmZXJlbmNlLiBPdGhlcndpc2UsIHdlIGNyZWF0ZSBhIG5ldyBhcnJheSB3aXRoIHRoZSBvcmlnaW5hbFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVwbGljYXRlIGZpcnN0LiBUaGVuIHdlIHB1c2ggdGhlIG5ldyBtYXRjaGVyIGludG8gdGhlIGR1cGxpY2F0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXJyYXksIGFuZCByZXNldCBpdCB0byB0aGUgZHVwbGljYXRlcyBvYmplY3QgKHdoaWNoIG1heSBiZSBhXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBuby1vcCBpZiB0aGUgcGF0aG5hbWUgYWxyZWFkeSBleGlzdGVkIGluIHRoZSBkdXBsaWNhdGVzIG9iamVjdCkuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVuIHdlIHNldCB0aGUgYXJyYXkgb2YgZHVwbGljYXRlcyBvbiBib3RoIHRoZSBvcmlnaW5hbFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVwbGljYXRlIG9iamVjdCBhbmQgdGhlIG5ldyBvbmUsIHNvIHdlIGNhbiBrZWVwIHRoZW0gaW4gc3luYy5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIGEgbmV3IGR1cGxpY2F0ZSBpcyBmb3VuZCwgYW5kIGl0IG1hdGNoZXMgYW4gZXhpc3RpbmcgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmV0cmlldmFsIG9mIHRoZSBgb3RoZXJgIHdpbGwgYWN0dWFsbHkgcmV0dXJuIHRoZSBhcnJheVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVmZXJlbmNlIHVzZWQgYnkgYWxsIG90aGVyIGR1cGxpY2F0ZXMuIFRoaXMgaXMgd2h5IFJlYWRvbmx5QXJyYXlcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIHNvIGltcG9ydGFudCEgQXJyYXkncyBhcmUgYWx3YXlzIHJlZmVyZW5jZXMhXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvdGhlcnMgPSBkdXBsaWNhdGVzW21hdGNoZXIuZGVmaW5pdGlvbi5wYXRobmFtZV0gPz8gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cGxpY2F0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVycy5wdXNoKG1hdGNoZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZHVwbGljYXRlc1ttYXRjaGVyLmRlZmluaXRpb24ucGF0aG5hbWVdID0gb3RoZXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGR1cGxpY2F0ZWQgZGV0YWlscyB0byBlYWNoIHJvdXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgZHVwbGljYXRlLmR1cGxpY2F0ZWQgPSBvdGhlcnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVyLmR1cGxpY2F0ZWQgPSBvdGhlcnM7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHNlZSBpZiB3ZSBzaG91bGQgZXJyb3IgZm9yIGR1cGxpY2F0ZXMgaW4gcHJvZHVjdGlvbj9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtYXRjaGVycy5wdXNoKG1hdGNoZXIpO1xuICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIG1hdGNoZXIncyBwYXRobmFtZSB0byB0aGUgc2V0LlxuICAgICAgICAgICAgICAgICAgICBhbGwuc2V0KG1hdGNoZXIuZGVmaW5pdGlvbi5wYXRobmFtZSwgbWF0Y2hlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBkdXBsaWNhdGUgbWF0Y2hlcnMuIFRoaXMgaXMgdXNlZCBpbiB0aGUgZGV2ZWxvcG1lbnQgbWFuYWdlclxuICAgICAgICAgICAgLy8gdG8gd2FybiBhYm91dCBkdXBsaWNhdGVzLlxuICAgICAgICAgICAgdGhpcy5tYXRjaGVycy5kdXBsaWNhdGVzID0gZHVwbGljYXRlcztcbiAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBpcyB0aGUgc2FtZSBhcyB3aGF0IHdlIGp1c3QgcGFyc2VkLCB3ZSBjYW4gZXhpdCBub3cuIFdlXG4gICAgICAgICAgICAvLyBjYW4gdGVsbCBieSB1c2luZyB0aGUgYD09PWAgd2hpY2ggY29tcGFyZXMgb2JqZWN0IGlkZW50aXR5LCB3aGljaCBmb3JcbiAgICAgICAgICAgIC8vIHRoZSBtYW5pZmVzdCBtYXRjaGVycywgd2lsbCByZXR1cm4gdGhlIHNhbWUgbWF0Y2hlciBlYWNoIHRpbWUuXG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2aW91c01hdGNoZXJzLmxlbmd0aCA9PT0gbWF0Y2hlcnMubGVuZ3RoICYmIHRoaXMucHJldmlvdXNNYXRjaGVycy5ldmVyeSgoY2FjaGVkTWF0Y2hlciwgaW5kZXgpPT5jYWNoZWRNYXRjaGVyID09PSBtYXRjaGVyc1tpbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wcmV2aW91c01hdGNoZXJzID0gbWF0Y2hlcnM7XG4gICAgICAgICAgICAvLyBGb3IgbWF0Y2hlcnMgdGhhdCBhcmUgZm9yIHN0YXRpYyByb3V0ZXMsIGZpbHRlciB0aGVtIG5vdy5cbiAgICAgICAgICAgIHRoaXMubWF0Y2hlcnMuc3RhdGljID0gbWF0Y2hlcnMuZmlsdGVyKChtYXRjaGVyKT0+IW1hdGNoZXIuaXNEeW5hbWljKTtcbiAgICAgICAgICAgIC8vIEZvciBtYXRjaGVycyB0aGF0IGFyZSBmb3IgZHluYW1pYyByb3V0ZXMsIGZpbHRlciB0aGVtIGFuZCBzb3J0IHRoZW0gbm93LlxuICAgICAgICAgICAgY29uc3QgZHluYW1pYyA9IG1hdGNoZXJzLmZpbHRlcigobWF0Y2hlcik9Pm1hdGNoZXIuaXNEeW5hbWljKTtcbiAgICAgICAgICAgIC8vIEFzIGBnZXRTb3J0ZWRSb3V0ZXNgIG9ubHkgdGFrZXMgYW4gYXJyYXkgb2Ygc3RyaW5ncywgd2UgbmVlZCB0byBjcmVhdGVcbiAgICAgICAgICAgIC8vIGEgbWFwIG9mIHRoZSBwYXRobmFtZXMgKHVzZWQgZm9yIHNvcnRpbmcpIGFuZCB0aGUgbWF0Y2hlcnMuIFdoZW4gd2VcbiAgICAgICAgICAgIC8vIGhhdmUgbG9jYWxlcywgdGhlcmUgbWF5IGJlIG11bHRpcGxlIG1hdGNoZXMgZm9yIHRoZSBzYW1lIHBhdGhuYW1lLiBUb1xuICAgICAgICAgICAgLy8gaGFuZGxlIHRoaXMsIHdlIGtlZXAgYSBtYXAgb2YgYWxsIHRoZSBpbmRleGVzIChpbiBgcmVmZXJlbmNlYCkgYW5kXG4gICAgICAgICAgICAvLyBtZXJnZSB0aGVtIGluIGxhdGVyLlxuICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgY29uc3QgcGF0aG5hbWVzID0gbmV3IEFycmF5KCk7XG4gICAgICAgICAgICBmb3IobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkeW5hbWljLmxlbmd0aDsgaW5kZXgrKyl7XG4gICAgICAgICAgICAgICAgLy8gR3JhYiB0aGUgcGF0aG5hbWUgZnJvbSB0aGUgZGVmaW5pdGlvbi5cbiAgICAgICAgICAgICAgICBjb25zdCBwYXRobmFtZSA9IGR5bmFtaWNbaW5kZXhdLmRlZmluaXRpb24ucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgLy8gR3JhYiB0aGUgaW5kZXggaW4gdGhlIGR5bmFtaWMgYXJyYXksIHB1c2ggaXQgaW50byB0aGUgcmVmZXJlbmNlLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ZXMgPSByZWZlcmVuY2UuZ2V0KHBhdGhuYW1lKSA/PyBbXTtcbiAgICAgICAgICAgICAgICBpbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IG9uZSBzZXQgaXQuIElmIGl0IGlzbid0LCB3ZSBkb24ndCBuZWVkIHRvXG4gICAgICAgICAgICAgICAgLy8gYmVjYXVzZSBwdXNoaW5nIGFib3ZlIG9uIHRoZSBhcnJheSB3aWxsIG11dGF0ZSB0aGUgYXJyYXkgYWxyZWFkeVxuICAgICAgICAgICAgICAgIC8vIHN0b3JlZCB0aGVyZSBiZWNhdXNlIGFycmF5J3MgYXJlIGFsd2F5cyBhIHJlZmVyZW5jZSFcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXhlcy5sZW5ndGggPT09IDEpIHJlZmVyZW5jZS5zZXQocGF0aG5hbWUsIGluZGV4ZXMpO1xuICAgICAgICAgICAgICAgIGVsc2UgY29udGludWU7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWVzLnB1c2gocGF0aG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU29ydCB0aGUgYXJyYXkgb2YgcGF0aG5hbWVzLlxuICAgICAgICAgICAgY29uc3Qgc29ydGVkID0gZ2V0U29ydGVkUm91dGVzKHBhdGhuYW1lcyk7XG4gICAgICAgICAgICAvLyBGb3IgZWFjaCBvZiB0aGUgc29ydGVkIHBhdGhuYW1lcywgaXRlcmF0ZSBvdmVyIHRoZW0sIGdyYWJiaW5nIHRoZSBsaXN0XG4gICAgICAgICAgICAvLyBvZiBpbmRleGVzIGFuZCBtZXJnaW5nIHRoZW0gYmFjayBpbnRvIHRoZSBuZXcgYHNvcnRlZER5bmFtaWNNYXRjaGVyc2BcbiAgICAgICAgICAgIC8vIGFycmF5LiBUaGUgb3JkZXIgb2YgdGhlIHNhbWUgbWF0Y2hpbmcgcGF0aG5hbWUgZG9lc24ndCBtYXR0ZXIgYmVjYXVzZVxuICAgICAgICAgICAgLy8gdGhleSB3aWxsIGhhdmUgb3RoZXIgbWF0Y2hpbmcgY2hhcmFjdGVyaXN0aWNzIChsaWtlIHRoZSBsb2NhbGUpIHRoYXRcbiAgICAgICAgICAgIC8vIGlzIGNvbnNpZGVyZWQuXG4gICAgICAgICAgICBjb25zdCBzb3J0ZWREeW5hbWljTWF0Y2hlcnMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2Ygc29ydGVkKXtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleGVzID0gcmVmZXJlbmNlLmdldChwYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGluZGV4ZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogZXhwZWN0ZWQgdG8gZmluZCBpZGVudGl0eSBpbiBpbmRleGVzIG1hcFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZHluYW1pY01hdGNoZXMgPSBpbmRleGVzLm1hcCgoaW5kZXgpPT5keW5hbWljW2luZGV4XSk7XG4gICAgICAgICAgICAgICAgc29ydGVkRHluYW1pY01hdGNoZXJzLnB1c2goLi4uZHluYW1pY01hdGNoZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tYXRjaGVycy5keW5hbWljID0gc29ydGVkRHluYW1pY01hdGNoZXJzO1xuICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoZXJlIHdhcyBhIG5ldyBtYXRjaGVyIHB1c2hlZCB3aGlsZSB3ZSB3ZXJlIHdhaXRpbmdcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBpbGF0aW9uSUQgIT09IGNvbXBpbGF0aW9uSUQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IGV4cGVjdGVkIGNvbXBpbGF0aW9uIHRvIGZpbmlzaCBiZWZvcmUgbmV3IG1hdGNoZXJzIHdlcmUgYWRkZWQsIHBvc3NpYmxlIG1pc3NpbmcgYXdhaXRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgIC8vIFRoZSBjb21waWxhdGlvbiBJRCBtYXRjaGVkLCBzbyBtYXJrIHRoZSBjb21wbGljYXRpb24gYXMgZmluaXNoZWQuXG4gICAgICAgICAgICB0aGlzLmxhc3RDb21waWxhdGlvbklEID0gY29tcGlsYXRpb25JRDtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdXNoKHByb3ZpZGVyKSB7XG4gICAgICAgIHRoaXMucHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xuICAgIH1cbiAgICBhc3luYyB0ZXN0KHBhdGhuYW1lLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIFNlZSBpZiB0aGVyZSdzIGEgbWF0Y2ggZm9yIHRoZSBwYXRobmFtZS4uLlxuICAgICAgICBjb25zdCBtYXRjaCA9IGF3YWl0IHRoaXMubWF0Y2gocGF0aG5hbWUsIG9wdGlvbnMpO1xuICAgICAgICAvLyBUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb25seSBuZWVkcyB0byBjaGVjayB0byBzZWUgaWYgdGhlcmUgX3dhc18gYVxuICAgICAgICAvLyBtYXRjaC4gVGhlIGRldmVsb3BtZW50IG1hdGNoZXIgYWN0dWFsbHkgY2hhbmdlcyBpdCdzIGJlaGF2aW9yIGJ5IG5vdFxuICAgICAgICAvLyByZWNvbXBpbGluZyB0aGUgcm91dGVzLlxuICAgICAgICByZXR1cm4gbWF0Y2ggIT09IG51bGw7XG4gICAgfVxuICAgIGFzeW5jIG1hdGNoKHBhdGhuYW1lLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIFwiSXRlcmF0ZVwiIG92ZXIgdGhlIG1hdGNoIG9wdGlvbnMuIE9uY2Ugd2UgZm91bmQgYSBzaW5nbGUgbWF0Y2gsIGV4aXQgd2l0aFxuICAgICAgICAvLyBpdCwgb3RoZXJ3aXNlIHJldHVybiBudWxsIGJlbG93LiBJZiBubyBtYXRjaCBpcyBmb3VuZCwgdGhlIGlubmVyIGJsb2NrXG4gICAgICAgIC8vIHdvbid0IGJlIGNhbGxlZC5cbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBtYXRjaCBvZiB0aGlzLm1hdGNoQWxsKHBhdGhuYW1lLCBvcHRpb25zKSl7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgKiBUaGlzIGlzIGEgcG9pbnQgZm9yIG90aGVyIG1hbmFnZXJzIHRvIG92ZXJyaWRlIHRvIGluamVjdCBvdGhlciBjaGVja2luZ1xuICAgKiBiZWhhdmlvciBsaWtlIGR1cGxpY2F0ZSByb3V0ZSBjaGVja2luZyBvbiBhIHBlci1yZXF1ZXN0IGJhc2lzLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aG5hbWUgdGhlIHBhdGhuYW1lIHRvIHZhbGlkYXRlIGFnYWluc3RcbiAgICogQHBhcmFtIG1hdGNoZXIgdGhlIG1hdGNoZXIgdG8gdmFsaWRhdGUvdGVzdCB3aXRoXG4gICAqIEByZXR1cm5zIHRoZSBtYXRjaCBpZiBmb3VuZFxuICAgKi8gdmFsaWRhdGUocGF0aG5hbWUsIG1hdGNoZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9vcHRpb25zX2kxOG47XG4gICAgICAgIGlmIChtYXRjaGVyIGluc3RhbmNlb2YgTG9jYWxlUm91dGVNYXRjaGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hlci5tYXRjaChwYXRobmFtZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIGxvY2FsZSB3YXMgaW5mZXJyZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2NhbGUsIHRoZW4gaXQgd2lsbCBoYXZlXG4gICAgICAgIC8vIGFscmVhZHkgYWRkZWQgYSBsb2NhbGUgdG8gdGhlIHBhdGhuYW1lLiBXZSBuZWVkIHRvIHJlbW92ZSBpdCBiZWZvcmVcbiAgICAgICAgLy8gbWF0Y2hpbmcgYmVjYXVzZSB0aGlzIG1hdGNoZXIgaXMgbm90IGxvY2FsZSBhd2FyZS5cbiAgICAgICAgaWYgKChfb3B0aW9uc19pMThuID0gb3B0aW9ucy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX29wdGlvbnNfaTE4bi5pbmZlcnJlZEZyb21EZWZhdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hlci5tYXRjaChvcHRpb25zLmkxOG4ucGF0aG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXRjaGVyLm1hdGNoKHBhdGhuYW1lKTtcbiAgICB9XG4gICAgYXN5bmMgKm1hdGNoQWxsKHBhdGhuYW1lLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIEd1YXJkIGFnYWluc3QgdGhlIG1hdGNoZXIgbWFuYWdlciBmcm9tIGJlaW5nIHJ1biBiZWZvcmUgaXQgbmVlZHMgdG8gYmVcbiAgICAgICAgLy8gcmVjb21waWxlZC4gVGhpcyB3YXMgcHJlZmVycmVkIHRvIHJlLXJ1bm5pbmcgdGhlIGNvbXBpbGF0aW9uIGhlcmUgYmVjYXVzZVxuICAgICAgICAvLyBpdCBzaG91bGQgYmUgcmUtcmFuIG9ubHkgd2hlbiBpdCBjaGFuZ2VzLiBJZiBhIG1hdGNoIGlzIGF0dGVtcHRlZCBiZWZvcmVcbiAgICAgICAgLy8gdGhpcyBpcyBkb25lLCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBpcyBhIGNhc2Ugd2hlcmUgYSBwcm92aWRlciBpcyBhZGRlZFxuICAgICAgICAvLyBiZWZvcmUgaXQgd2FzIHJlY29tcGlsZWQgKGFuIGVycm9yKS4gV2UgYWxzbyBkb24ndCB3YW50IHRvIGFmZmVjdCByZXF1ZXN0XG4gICAgICAgIC8vIHRpbWVzLlxuICAgICAgICBpZiAodGhpcy5sYXN0Q29tcGlsYXRpb25JRCAhPT0gdGhpcy5jb21waWxhdGlvbklEKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IGV4cGVjdGVkIHJvdXRlcyB0byBoYXZlIGJlZW4gbG9hZGVkIGJlZm9yZSBtYXRjaFwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFbnN1cmUgdGhhdCBwYXRoIG1hdGNoaW5nIGlzIGRvbmUgd2l0aCBhIGxlYWRpbmcgc2xhc2guXG4gICAgICAgIHBhdGhuYW1lID0gZW5zdXJlTGVhZGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgLy8gSWYgdGhpcyBwYXRobmFtZSBkb2Vzbid0IGxvb2sgbGlrZSBhIGR5bmFtaWMgcm91dGUsIGFuZCB0aGlzIHBhdGhuYW1lIGlzXG4gICAgICAgIC8vIGxpc3RlZCBpbiB0aGUgbm9ybWFsaXplZCBsaXN0IG9mIHJvdXRlcywgdGhlbiByZXR1cm4gaXQuIFRoaXMgZW5zdXJlc1xuICAgICAgICAvLyB0aGF0IHdoZW4gYSByb3V0ZSBsaWtlIGAvdXNlci9baWRdYCBpcyBlbmNvdW50ZXJlZCwgaXQgZG9lc24ndCBqdXN0IG1hdGNoXG4gICAgICAgIC8vIHdpdGggdGhlIGxpc3Qgb2Ygbm9ybWFsaXplZCByb3V0ZXMuXG4gICAgICAgIGlmICghaXNEeW5hbWljUm91dGUocGF0aG5hbWUpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoZXIgb2YgdGhpcy5tYXRjaGVycy5zdGF0aWMpe1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy52YWxpZGF0ZShwYXRobmFtZSwgbWF0Y2hlciwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCkgY29udGludWU7XG4gICAgICAgICAgICAgICAgeWllbGQgbWF0Y2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgd2Ugc2hvdWxkIHNraXAgaGFuZGxpbmcgZHluYW1pYyByb3V0ZXMsIGV4aXQgbm93LlxuICAgICAgICBpZiAob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5za2lwRHluYW1pYykgcmV0dXJuIG51bGw7XG4gICAgICAgIC8vIExvb3Agb3ZlciB0aGUgZHluYW1pYyBtYXRjaGVycywgeWllbGRpbmcgZWFjaCBtYXRjaC5cbiAgICAgICAgZm9yIChjb25zdCBtYXRjaGVyIG9mIHRoaXMubWF0Y2hlcnMuZHluYW1pYyl7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMudmFsaWRhdGUocGF0aG5hbWUsIG1hdGNoZXIsIG9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCkgY29udGludWU7XG4gICAgICAgICAgICB5aWVsZCBtYXRjaDtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZSB0cmllZCBkaXJlY3QgbWF0Y2hpbmcgYWdhaW5zdCB0aGUgcGF0aG5hbWUgYW5kIGFnYWluc3QgYWxsIHRoZSBkeW5hbWljXG4gICAgICAgIC8vIHBhdGhzLCBzbyB0aGVyZSB3YXMgbm8gbWF0Y2guXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICB0aGlzLnByb3ZpZGVycyA9IFtdO1xuICAgICAgICB0aGlzLm1hdGNoZXJzID0ge1xuICAgICAgICAgICAgc3RhdGljOiBbXSxcbiAgICAgICAgICAgIGR5bmFtaWM6IFtdLFxuICAgICAgICAgICAgZHVwbGljYXRlczoge31cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5sYXN0Q29tcGlsYXRpb25JRCA9IHRoaXMuY29tcGlsYXRpb25JRDtcbiAgICAgICAgdGhpcy5wcmV2aW91c01hdGNoZXJzID0gW107XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0LXJvdXRlLW1hdGNoZXItbWFuYWdlci5qcy5tYXAiXSwibmFtZXMiOlsiaXNEeW5hbWljUm91dGUiLCJnZXRTb3J0ZWRSb3V0ZXMiLCJMb2NhbGVSb3V0ZU1hdGNoZXIiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJEZXRhY2hlZFByb21pc2UiLCJEZWZhdWx0Um91dGVNYXRjaGVyTWFuYWdlciIsImNvbXBpbGF0aW9uSUQiLCJwcm92aWRlcnMiLCJsZW5ndGgiLCJ3YWl0VGlsbFJlYWR5Iiwid2FpdFRpbGxSZWFkeVByb21pc2UiLCJyZWxvYWQiLCJwcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIm1hdGNoZXJzIiwicHJvdmlkZXJzTWF0Y2hlcnMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwicHJvdmlkZXIiLCJNYXAiLCJkdXBsaWNhdGVzIiwicHJvdmlkZXJNYXRjaGVycyIsIm1hdGNoZXIiLCJkdXBsaWNhdGVkIiwiZHVwbGljYXRlIiwiZ2V0IiwiZGVmaW5pdGlvbiIsInBhdGhuYW1lIiwib3RoZXJzIiwicHVzaCIsInNldCIsInByZXZpb3VzTWF0Y2hlcnMiLCJldmVyeSIsImNhY2hlZE1hdGNoZXIiLCJpbmRleCIsInN0YXRpYyIsImZpbHRlciIsImlzRHluYW1pYyIsImR5bmFtaWMiLCJyZWZlcmVuY2UiLCJwYXRobmFtZXMiLCJBcnJheSIsImluZGV4ZXMiLCJzb3J0ZWQiLCJzb3J0ZWREeW5hbWljTWF0Y2hlcnMiLCJpc0FycmF5IiwiRXJyb3IiLCJkeW5hbWljTWF0Y2hlcyIsImVyciIsImxhc3RDb21waWxhdGlvbklEIiwidGVzdCIsIm9wdGlvbnMiLCJtYXRjaCIsIm1hdGNoQWxsIiwidmFsaWRhdGUiLCJfb3B0aW9uc19pMThuIiwiaTE4biIsImluZmVycmVkRnJvbURlZmF1bHQiLCJza2lwRHluYW1pYyIsImNvbnN0cnVjdG9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-managers/default-route-matcher-manager.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js":
-/*!*****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js ***!
- \*****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppPageRouteMatcherProvider: () => (/* binding */ AppPageRouteMatcherProvider)\n/* harmony export */ });\n/* harmony import */ var _lib_is_app_page_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../lib/is-app-page-route */ \"(ssr)/../../node_modules/next/dist/esm/lib/is-app-page-route.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n/* harmony import */ var _normalizers_built_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../normalizers/built/app */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\");\n/* harmony import */ var _route_kind__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../route-kind */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-kind.js\");\n/* harmony import */ var _route_matchers_app_page_route_matcher__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../route-matchers/app-page-route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/app-page-route-matcher.js\");\n/* harmony import */ var _manifest_route_matcher_provider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./manifest-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/manifest-route-matcher-provider.js\");\n\n\n\n\n\n\nclass AppPageRouteMatcherProvider extends _manifest_route_matcher_provider__WEBPACK_IMPORTED_MODULE_5__.ManifestRouteMatcherProvider {\n constructor(distDir, manifestLoader){\n super(_shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__.APP_PATHS_MANIFEST, manifestLoader);\n this.normalizers = new _normalizers_built_app__WEBPACK_IMPORTED_MODULE_2__.AppNormalizers(distDir);\n }\n async transform(manifest) {\n // This matcher only matches app pages.\n const pages = Object.keys(manifest).filter((page)=>(0,_lib_is_app_page_route__WEBPACK_IMPORTED_MODULE_0__.isAppPageRoute)(page));\n // Collect all the app paths for each page. This could include any parallel\n // routes.\n const allAppPaths = {};\n for (const page of pages){\n const pathname = this.normalizers.pathname.normalize(page);\n if (pathname in allAppPaths) allAppPaths[pathname].push(page);\n else allAppPaths[pathname] = [\n page\n ];\n }\n // Format the routes.\n const matchers = [];\n for (const [pathname, appPaths] of Object.entries(allAppPaths)){\n // TODO-APP: (wyattjoh) this is a hack right now, should be more deterministic\n const page = appPaths[0];\n const filename = this.normalizers.filename.normalize(manifest[page]);\n const bundlePath = this.normalizers.bundlePath.normalize(page);\n matchers.push(new _route_matchers_app_page_route_matcher__WEBPACK_IMPORTED_MODULE_4__.AppPageRouteMatcher({\n kind: _route_kind__WEBPACK_IMPORTED_MODULE_3__.RouteKind.APP_PAGE,\n pathname,\n page,\n bundlePath,\n filename,\n appPaths\n }));\n }\n return matchers;\n }\n} //# sourceMappingURL=app-page-route-matcher-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLXByb3ZpZGVycy9hcHAtcGFnZS1yb3V0ZS1tYXRjaGVyLXByb3ZpZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBZ0U7QUFDRztBQUNUO0FBQ2hCO0FBQ3FDO0FBQ0U7QUFDMUUsTUFBTU0sb0NBQW9DRCwwRkFBNEJBO0lBQ3pFRSxZQUFZQyxPQUFPLEVBQUVDLGNBQWMsQ0FBQztRQUNoQyxLQUFLLENBQUNSLHFFQUFrQkEsRUFBRVE7UUFDMUIsSUFBSSxDQUFDQyxXQUFXLEdBQUcsSUFBSVIsa0VBQWNBLENBQUNNO0lBQzFDO0lBQ0EsTUFBTUcsVUFBVUMsUUFBUSxFQUFFO1FBQ3RCLHVDQUF1QztRQUN2QyxNQUFNQyxRQUFRQyxPQUFPQyxJQUFJLENBQUNILFVBQVVJLE1BQU0sQ0FBQyxDQUFDQyxPQUFPakIsc0VBQWNBLENBQUNpQjtRQUNsRSwyRUFBMkU7UUFDM0UsVUFBVTtRQUNWLE1BQU1DLGNBQWMsQ0FBQztRQUNyQixLQUFLLE1BQU1ELFFBQVFKLE1BQU07WUFDckIsTUFBTU0sV0FBVyxJQUFJLENBQUNULFdBQVcsQ0FBQ1MsUUFBUSxDQUFDQyxTQUFTLENBQUNIO1lBQ3JELElBQUlFLFlBQVlELGFBQWFBLFdBQVcsQ0FBQ0MsU0FBUyxDQUFDRSxJQUFJLENBQUNKO2lCQUNuREMsV0FBVyxDQUFDQyxTQUFTLEdBQUc7Z0JBQ3pCRjthQUNIO1FBQ0w7UUFDQSxxQkFBcUI7UUFDckIsTUFBTUssV0FBVyxFQUFFO1FBQ25CLEtBQUssTUFBTSxDQUFDSCxVQUFVSSxTQUFTLElBQUlULE9BQU9VLE9BQU8sQ0FBQ04sYUFBYTtZQUMzRCw4RUFBOEU7WUFDOUUsTUFBTUQsT0FBT00sUUFBUSxDQUFDLEVBQUU7WUFDeEIsTUFBTUUsV0FBVyxJQUFJLENBQUNmLFdBQVcsQ0FBQ2UsUUFBUSxDQUFDTCxTQUFTLENBQUNSLFFBQVEsQ0FBQ0ssS0FBSztZQUNuRSxNQUFNUyxhQUFhLElBQUksQ0FBQ2hCLFdBQVcsQ0FBQ2dCLFVBQVUsQ0FBQ04sU0FBUyxDQUFDSDtZQUN6REssU0FBU0QsSUFBSSxDQUFDLElBQUlqQix1RkFBbUJBLENBQUM7Z0JBQ2xDdUIsTUFBTXhCLGtEQUFTQSxDQUFDeUIsUUFBUTtnQkFDeEJUO2dCQUNBRjtnQkFDQVM7Z0JBQ0FEO2dCQUNBRjtZQUNKO1FBQ0o7UUFDQSxPQUFPRDtJQUNYO0FBQ0osRUFFQSwyREFBMkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvcm91dGUtbWF0Y2hlci1wcm92aWRlcnMvYXBwLXBhZ2Utcm91dGUtbWF0Y2hlci1wcm92aWRlci5qcz80MjE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXBwUGFnZVJvdXRlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9pcy1hcHAtcGFnZS1yb3V0ZVwiO1xuaW1wb3J0IHsgQVBQX1BBVEhTX01BTklGRVNUIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9saWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBBcHBOb3JtYWxpemVycyB9IGZyb20gXCIuLi9ub3JtYWxpemVycy9idWlsdC9hcHBcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCIuLi9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBBcHBQYWdlUm91dGVNYXRjaGVyIH0gZnJvbSBcIi4uL3JvdXRlLW1hdGNoZXJzL2FwcC1wYWdlLXJvdXRlLW1hdGNoZXJcIjtcbmltcG9ydCB7IE1hbmlmZXN0Um91dGVNYXRjaGVyUHJvdmlkZXIgfSBmcm9tIFwiLi9tYW5pZmVzdC1yb3V0ZS1tYXRjaGVyLXByb3ZpZGVyXCI7XG5leHBvcnQgY2xhc3MgQXBwUGFnZVJvdXRlTWF0Y2hlclByb3ZpZGVyIGV4dGVuZHMgTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciB7XG4gICAgY29uc3RydWN0b3IoZGlzdERpciwgbWFuaWZlc3RMb2FkZXIpe1xuICAgICAgICBzdXBlcihBUFBfUEFUSFNfTUFOSUZFU1QsIG1hbmlmZXN0TG9hZGVyKTtcbiAgICAgICAgdGhpcy5ub3JtYWxpemVycyA9IG5ldyBBcHBOb3JtYWxpemVycyhkaXN0RGlyKTtcbiAgICB9XG4gICAgYXN5bmMgdHJhbnNmb3JtKG1hbmlmZXN0KSB7XG4gICAgICAgIC8vIFRoaXMgbWF0Y2hlciBvbmx5IG1hdGNoZXMgYXBwIHBhZ2VzLlxuICAgICAgICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG1hbmlmZXN0KS5maWx0ZXIoKHBhZ2UpPT5pc0FwcFBhZ2VSb3V0ZShwYWdlKSk7XG4gICAgICAgIC8vIENvbGxlY3QgYWxsIHRoZSBhcHAgcGF0aHMgZm9yIGVhY2ggcGFnZS4gVGhpcyBjb3VsZCBpbmNsdWRlIGFueSBwYXJhbGxlbFxuICAgICAgICAvLyByb3V0ZXMuXG4gICAgICAgIGNvbnN0IGFsbEFwcFBhdGhzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwYWdlcyl7XG4gICAgICAgICAgICBjb25zdCBwYXRobmFtZSA9IHRoaXMubm9ybWFsaXplcnMucGF0aG5hbWUubm9ybWFsaXplKHBhZ2UpO1xuICAgICAgICAgICAgaWYgKHBhdGhuYW1lIGluIGFsbEFwcFBhdGhzKSBhbGxBcHBQYXRoc1twYXRobmFtZV0ucHVzaChwYWdlKTtcbiAgICAgICAgICAgIGVsc2UgYWxsQXBwUGF0aHNbcGF0aG5hbWVdID0gW1xuICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9ybWF0IHRoZSByb3V0ZXMuXG4gICAgICAgIGNvbnN0IG1hdGNoZXJzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgW3BhdGhuYW1lLCBhcHBQYXRoc10gb2YgT2JqZWN0LmVudHJpZXMoYWxsQXBwUGF0aHMpKXtcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiAod3lhdHRqb2gpIHRoaXMgaXMgYSBoYWNrIHJpZ2h0IG5vdywgc2hvdWxkIGJlIG1vcmUgZGV0ZXJtaW5pc3RpY1xuICAgICAgICAgICAgY29uc3QgcGFnZSA9IGFwcFBhdGhzWzBdO1xuICAgICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSB0aGlzLm5vcm1hbGl6ZXJzLmZpbGVuYW1lLm5vcm1hbGl6ZShtYW5pZmVzdFtwYWdlXSk7XG4gICAgICAgICAgICBjb25zdCBidW5kbGVQYXRoID0gdGhpcy5ub3JtYWxpemVycy5idW5kbGVQYXRoLm5vcm1hbGl6ZShwYWdlKTtcbiAgICAgICAgICAgIG1hdGNoZXJzLnB1c2gobmV3IEFwcFBhZ2VSb3V0ZU1hdGNoZXIoe1xuICAgICAgICAgICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgICAgIGJ1bmRsZVBhdGgsXG4gICAgICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgYXBwUGF0aHNcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF0Y2hlcnM7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcGFnZS1yb3V0ZS1tYXRjaGVyLXByb3ZpZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJpc0FwcFBhZ2VSb3V0ZSIsIkFQUF9QQVRIU19NQU5JRkVTVCIsIkFwcE5vcm1hbGl6ZXJzIiwiUm91dGVLaW5kIiwiQXBwUGFnZVJvdXRlTWF0Y2hlciIsIk1hbmlmZXN0Um91dGVNYXRjaGVyUHJvdmlkZXIiLCJBcHBQYWdlUm91dGVNYXRjaGVyUHJvdmlkZXIiLCJjb25zdHJ1Y3RvciIsImRpc3REaXIiLCJtYW5pZmVzdExvYWRlciIsIm5vcm1hbGl6ZXJzIiwidHJhbnNmb3JtIiwibWFuaWZlc3QiLCJwYWdlcyIsIk9iamVjdCIsImtleXMiLCJmaWx0ZXIiLCJwYWdlIiwiYWxsQXBwUGF0aHMiLCJwYXRobmFtZSIsIm5vcm1hbGl6ZSIsInB1c2giLCJtYXRjaGVycyIsImFwcFBhdGhzIiwiZW50cmllcyIsImZpbGVuYW1lIiwiYnVuZGxlUGF0aCIsImtpbmQiLCJBUFBfUEFHRSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/app-route-route-matcher-provider.js":
-/*!******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matcher-providers/app-route-route-matcher-provider.js ***!
- \******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRouteRouteMatcherProvider: () => (/* binding */ AppRouteRouteMatcherProvider)\n/* harmony export */ });\n/* harmony import */ var _lib_is_app_route_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../lib/is-app-route-route */ \"(ssr)/../../node_modules/next/dist/esm/lib/is-app-route-route.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n/* harmony import */ var _route_kind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../route-kind */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-kind.js\");\n/* harmony import */ var _route_matchers_app_route_route_matcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../route-matchers/app-route-route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/app-route-route-matcher.js\");\n/* harmony import */ var _manifest_route_matcher_provider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./manifest-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/manifest-route-matcher-provider.js\");\n/* harmony import */ var _normalizers_built_app__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../normalizers/built/app */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/app/index.js\");\n\n\n\n\n\n\nclass AppRouteRouteMatcherProvider extends _manifest_route_matcher_provider__WEBPACK_IMPORTED_MODULE_4__.ManifestRouteMatcherProvider {\n constructor(distDir, manifestLoader){\n super(_shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__.APP_PATHS_MANIFEST, manifestLoader);\n this.normalizers = new _normalizers_built_app__WEBPACK_IMPORTED_MODULE_5__.AppNormalizers(distDir);\n }\n async transform(manifest) {\n // This matcher only matches app routes.\n const pages = Object.keys(manifest).filter((page)=>(0,_lib_is_app_route_route__WEBPACK_IMPORTED_MODULE_0__.isAppRouteRoute)(page));\n // Format the routes.\n const matchers = [];\n for (const page of pages){\n const filename = this.normalizers.filename.normalize(manifest[page]);\n const pathname = this.normalizers.pathname.normalize(page);\n const bundlePath = this.normalizers.bundlePath.normalize(page);\n matchers.push(new _route_matchers_app_route_route_matcher__WEBPACK_IMPORTED_MODULE_3__.AppRouteRouteMatcher({\n kind: _route_kind__WEBPACK_IMPORTED_MODULE_2__.RouteKind.APP_ROUTE,\n pathname,\n page,\n bundlePath,\n filename\n }));\n }\n return matchers;\n }\n} //# sourceMappingURL=app-route-route-matcher-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLXByb3ZpZGVycy9hcHAtcm91dGUtcm91dGUtbWF0Y2hlci1wcm92aWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQWtFO0FBQ0M7QUFDekI7QUFDdUM7QUFDQTtBQUN2QjtBQUNuRCxNQUFNTSxxQ0FBcUNGLDBGQUE0QkE7SUFDMUVHLFlBQVlDLE9BQU8sRUFBRUMsY0FBYyxDQUFDO1FBQ2hDLEtBQUssQ0FBQ1IscUVBQWtCQSxFQUFFUTtRQUMxQixJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJTCxrRUFBY0EsQ0FBQ0c7SUFDMUM7SUFDQSxNQUFNRyxVQUFVQyxRQUFRLEVBQUU7UUFDdEIsd0NBQXdDO1FBQ3hDLE1BQU1DLFFBQVFDLE9BQU9DLElBQUksQ0FBQ0gsVUFBVUksTUFBTSxDQUFDLENBQUNDLE9BQU9qQix3RUFBZUEsQ0FBQ2lCO1FBQ25FLHFCQUFxQjtRQUNyQixNQUFNQyxXQUFXLEVBQUU7UUFDbkIsS0FBSyxNQUFNRCxRQUFRSixNQUFNO1lBQ3JCLE1BQU1NLFdBQVcsSUFBSSxDQUFDVCxXQUFXLENBQUNTLFFBQVEsQ0FBQ0MsU0FBUyxDQUFDUixRQUFRLENBQUNLLEtBQUs7WUFDbkUsTUFBTUksV0FBVyxJQUFJLENBQUNYLFdBQVcsQ0FBQ1csUUFBUSxDQUFDRCxTQUFTLENBQUNIO1lBQ3JELE1BQU1LLGFBQWEsSUFBSSxDQUFDWixXQUFXLENBQUNZLFVBQVUsQ0FBQ0YsU0FBUyxDQUFDSDtZQUN6REMsU0FBU0ssSUFBSSxDQUFDLElBQUlwQix5RkFBb0JBLENBQUM7Z0JBQ25DcUIsTUFBTXRCLGtEQUFTQSxDQUFDdUIsU0FBUztnQkFDekJKO2dCQUNBSjtnQkFDQUs7Z0JBQ0FIO1lBQ0o7UUFDSjtRQUNBLE9BQU9EO0lBQ1g7QUFDSixFQUVBLDREQUE0RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLXByb3ZpZGVycy9hcHAtcm91dGUtcm91dGUtbWF0Y2hlci1wcm92aWRlci5qcz81OTU5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXBwUm91dGVSb3V0ZSB9IGZyb20gXCIuLi8uLi8uLi9saWIvaXMtYXBwLXJvdXRlLXJvdXRlXCI7XG5pbXBvcnQgeyBBUFBfUEFUSFNfTUFOSUZFU1QgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCIuLi9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBBcHBSb3V0ZVJvdXRlTWF0Y2hlciB9IGZyb20gXCIuLi9yb3V0ZS1tYXRjaGVycy9hcHAtcm91dGUtcm91dGUtbWF0Y2hlclwiO1xuaW1wb3J0IHsgTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciB9IGZyb20gXCIuL21hbmlmZXN0LXJvdXRlLW1hdGNoZXItcHJvdmlkZXJcIjtcbmltcG9ydCB7IEFwcE5vcm1hbGl6ZXJzIH0gZnJvbSBcIi4uL25vcm1hbGl6ZXJzL2J1aWx0L2FwcFwiO1xuZXhwb3J0IGNsYXNzIEFwcFJvdXRlUm91dGVNYXRjaGVyUHJvdmlkZXIgZXh0ZW5kcyBNYW5pZmVzdFJvdXRlTWF0Y2hlclByb3ZpZGVyIHtcbiAgICBjb25zdHJ1Y3RvcihkaXN0RGlyLCBtYW5pZmVzdExvYWRlcil7XG4gICAgICAgIHN1cGVyKEFQUF9QQVRIU19NQU5JRkVTVCwgbWFuaWZlc3RMb2FkZXIpO1xuICAgICAgICB0aGlzLm5vcm1hbGl6ZXJzID0gbmV3IEFwcE5vcm1hbGl6ZXJzKGRpc3REaXIpO1xuICAgIH1cbiAgICBhc3luYyB0cmFuc2Zvcm0obWFuaWZlc3QpIHtcbiAgICAgICAgLy8gVGhpcyBtYXRjaGVyIG9ubHkgbWF0Y2hlcyBhcHAgcm91dGVzLlxuICAgICAgICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG1hbmlmZXN0KS5maWx0ZXIoKHBhZ2UpPT5pc0FwcFJvdXRlUm91dGUocGFnZSkpO1xuICAgICAgICAvLyBGb3JtYXQgdGhlIHJvdXRlcy5cbiAgICAgICAgY29uc3QgbWF0Y2hlcnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBwYWdlIG9mIHBhZ2VzKXtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gdGhpcy5ub3JtYWxpemVycy5maWxlbmFtZS5ub3JtYWxpemUobWFuaWZlc3RbcGFnZV0pO1xuICAgICAgICAgICAgY29uc3QgcGF0aG5hbWUgPSB0aGlzLm5vcm1hbGl6ZXJzLnBhdGhuYW1lLm5vcm1hbGl6ZShwYWdlKTtcbiAgICAgICAgICAgIGNvbnN0IGJ1bmRsZVBhdGggPSB0aGlzLm5vcm1hbGl6ZXJzLmJ1bmRsZVBhdGgubm9ybWFsaXplKHBhZ2UpO1xuICAgICAgICAgICAgbWF0Y2hlcnMucHVzaChuZXcgQXBwUm91dGVSb3V0ZU1hdGNoZXIoe1xuICAgICAgICAgICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUk9VVEUsXG4gICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgICAgICBidW5kbGVQYXRoLFxuICAgICAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hdGNoZXJzO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXJvdXRlLXJvdXRlLW1hdGNoZXItcHJvdmlkZXIuanMubWFwIl0sIm5hbWVzIjpbImlzQXBwUm91dGVSb3V0ZSIsIkFQUF9QQVRIU19NQU5JRkVTVCIsIlJvdXRlS2luZCIsIkFwcFJvdXRlUm91dGVNYXRjaGVyIiwiTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciIsIkFwcE5vcm1hbGl6ZXJzIiwiQXBwUm91dGVSb3V0ZU1hdGNoZXJQcm92aWRlciIsImNvbnN0cnVjdG9yIiwiZGlzdERpciIsIm1hbmlmZXN0TG9hZGVyIiwibm9ybWFsaXplcnMiLCJ0cmFuc2Zvcm0iLCJtYW5pZmVzdCIsInBhZ2VzIiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlciIsInBhZ2UiLCJtYXRjaGVycyIsImZpbGVuYW1lIiwibm9ybWFsaXplIiwicGF0aG5hbWUiLCJidW5kbGVQYXRoIiwicHVzaCIsImtpbmQiLCJBUFBfUk9VVEUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/app-route-route-matcher-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/cached-route-matcher-provider.js":
-/*!***********************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/cached-route-matcher-provider.js ***!
- \***********************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CachedRouteMatcherProvider: () => (/* binding */ CachedRouteMatcherProvider)\n/* harmony export */ });\n/**\n * This will memoize the matchers if the loaded data is comparable.\n */ class CachedRouteMatcherProvider {\n constructor(loader){\n this.loader = loader;\n this.cached = [];\n }\n async matchers() {\n const data = await this.loader.load();\n if (!data) return [];\n // Return the cached matchers if the data has not changed.\n if (this.data && this.loader.compare(this.data, data)) return this.cached;\n this.data = data;\n // Transform the manifest into matchers.\n const matchers = await this.transform(data);\n // Cache the matchers.\n this.cached = matchers;\n return matchers;\n }\n} //# sourceMappingURL=cached-route-matcher-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLXByb3ZpZGVycy9oZWxwZXJzL2NhY2hlZC1yb3V0ZS1tYXRjaGVyLXByb3ZpZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Q0FFQyxHQUFVLE1BQU1BO0lBQ2JDLFlBQVlDLE1BQU0sQ0FBQztRQUNmLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsTUFBTSxHQUFHLEVBQUU7SUFDcEI7SUFDQSxNQUFNQyxXQUFXO1FBQ2IsTUFBTUMsT0FBTyxNQUFNLElBQUksQ0FBQ0gsTUFBTSxDQUFDSSxJQUFJO1FBQ25DLElBQUksQ0FBQ0QsTUFBTSxPQUFPLEVBQUU7UUFDcEIsMERBQTBEO1FBQzFELElBQUksSUFBSSxDQUFDQSxJQUFJLElBQUksSUFBSSxDQUFDSCxNQUFNLENBQUNLLE9BQU8sQ0FBQyxJQUFJLENBQUNGLElBQUksRUFBRUEsT0FBTyxPQUFPLElBQUksQ0FBQ0YsTUFBTTtRQUN6RSxJQUFJLENBQUNFLElBQUksR0FBR0E7UUFDWix3Q0FBd0M7UUFDeEMsTUFBTUQsV0FBVyxNQUFNLElBQUksQ0FBQ0ksU0FBUyxDQUFDSDtRQUN0QyxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDRixNQUFNLEdBQUdDO1FBQ2QsT0FBT0E7SUFDWDtBQUNKLEVBRUEseURBQXlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1hdGNoZXItcHJvdmlkZXJzL2hlbHBlcnMvY2FjaGVkLXJvdXRlLW1hdGNoZXItcHJvdmlkZXIuanM/NTA1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgd2lsbCBtZW1vaXplIHRoZSBtYXRjaGVycyBpZiB0aGUgbG9hZGVkIGRhdGEgaXMgY29tcGFyYWJsZS5cbiAqLyBleHBvcnQgY2xhc3MgQ2FjaGVkUm91dGVNYXRjaGVyUHJvdmlkZXIge1xuICAgIGNvbnN0cnVjdG9yKGxvYWRlcil7XG4gICAgICAgIHRoaXMubG9hZGVyID0gbG9hZGVyO1xuICAgICAgICB0aGlzLmNhY2hlZCA9IFtdO1xuICAgIH1cbiAgICBhc3luYyBtYXRjaGVycygpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZGVyLmxvYWQoKTtcbiAgICAgICAgaWYgKCFkYXRhKSByZXR1cm4gW107XG4gICAgICAgIC8vIFJldHVybiB0aGUgY2FjaGVkIG1hdGNoZXJzIGlmIHRoZSBkYXRhIGhhcyBub3QgY2hhbmdlZC5cbiAgICAgICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmxvYWRlci5jb21wYXJlKHRoaXMuZGF0YSwgZGF0YSkpIHJldHVybiB0aGlzLmNhY2hlZDtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBtYW5pZmVzdCBpbnRvIG1hdGNoZXJzLlxuICAgICAgICBjb25zdCBtYXRjaGVycyA9IGF3YWl0IHRoaXMudHJhbnNmb3JtKGRhdGEpO1xuICAgICAgICAvLyBDYWNoZSB0aGUgbWF0Y2hlcnMuXG4gICAgICAgIHRoaXMuY2FjaGVkID0gbWF0Y2hlcnM7XG4gICAgICAgIHJldHVybiBtYXRjaGVycztcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhY2hlZC1yb3V0ZS1tYXRjaGVyLXByb3ZpZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJDYWNoZWRSb3V0ZU1hdGNoZXJQcm92aWRlciIsImNvbnN0cnVjdG9yIiwibG9hZGVyIiwiY2FjaGVkIiwibWF0Y2hlcnMiLCJkYXRhIiwibG9hZCIsImNvbXBhcmUiLCJ0cmFuc2Zvcm0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/cached-route-matcher-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js":
-/*!*********************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js ***!
- \*********************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ServerManifestLoader: () => (/* binding */ ServerManifestLoader)\n/* harmony export */ });\nclass ServerManifestLoader {\n constructor(getter){\n this.getter = getter;\n }\n load(name) {\n return this.getter(name);\n }\n} //# sourceMappingURL=server-manifest-loader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLXByb3ZpZGVycy9oZWxwZXJzL21hbmlmZXN0LWxvYWRlcnMvc2VydmVyLW1hbmlmZXN0LWxvYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sTUFBTUE7SUFDVEMsWUFBWUMsTUFBTSxDQUFDO1FBQ2YsSUFBSSxDQUFDQSxNQUFNLEdBQUdBO0lBQ2xCO0lBQ0FDLEtBQUtDLElBQUksRUFBRTtRQUNQLE9BQU8sSUFBSSxDQUFDRixNQUFNLENBQUNFO0lBQ3ZCO0FBQ0osRUFFQSxrREFBa0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvcm91dGUtbWF0Y2hlci1wcm92aWRlcnMvaGVscGVycy9tYW5pZmVzdC1sb2FkZXJzL3NlcnZlci1tYW5pZmVzdC1sb2FkZXIuanM/MzQyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU2VydmVyTWFuaWZlc3RMb2FkZXIge1xuICAgIGNvbnN0cnVjdG9yKGdldHRlcil7XG4gICAgICAgIHRoaXMuZ2V0dGVyID0gZ2V0dGVyO1xuICAgIH1cbiAgICBsb2FkKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0dGVyKG5hbWUpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VydmVyLW1hbmlmZXN0LWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiU2VydmVyTWFuaWZlc3RMb2FkZXIiLCJjb25zdHJ1Y3RvciIsImdldHRlciIsImxvYWQiLCJuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/manifest-route-matcher-provider.js":
-/*!*****************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matcher-providers/manifest-route-matcher-provider.js ***!
- \*****************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ManifestRouteMatcherProvider: () => (/* binding */ ManifestRouteMatcherProvider)\n/* harmony export */ });\n/* harmony import */ var _helpers_cached_route_matcher_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/cached-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/cached-route-matcher-provider.js\");\n\nclass ManifestRouteMatcherProvider extends _helpers_cached_route_matcher_provider__WEBPACK_IMPORTED_MODULE_0__.CachedRouteMatcherProvider {\n constructor(manifestName, manifestLoader){\n super({\n load: async ()=>manifestLoader.load(manifestName),\n compare: (left, right)=>left === right\n });\n }\n} //# sourceMappingURL=manifest-route-matcher-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLXByb3ZpZGVycy9tYW5pZmVzdC1yb3V0ZS1tYXRjaGVyLXByb3ZpZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXFGO0FBQzlFLE1BQU1DLHFDQUFxQ0QsOEZBQTBCQTtJQUN4RUUsWUFBWUMsWUFBWSxFQUFFQyxjQUFjLENBQUM7UUFDckMsS0FBSyxDQUFDO1lBQ0ZDLE1BQU0sVUFBVUQsZUFBZUMsSUFBSSxDQUFDRjtZQUNwQ0csU0FBUyxDQUFDQyxNQUFNQyxRQUFRRCxTQUFTQztRQUNyQztJQUNKO0FBQ0osRUFFQSwyREFBMkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvcm91dGUtbWF0Y2hlci1wcm92aWRlcnMvbWFuaWZlc3Qtcm91dGUtbWF0Y2hlci1wcm92aWRlci5qcz9lOWEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhY2hlZFJvdXRlTWF0Y2hlclByb3ZpZGVyIH0gZnJvbSBcIi4vaGVscGVycy9jYWNoZWQtcm91dGUtbWF0Y2hlci1wcm92aWRlclwiO1xuZXhwb3J0IGNsYXNzIE1hbmlmZXN0Um91dGVNYXRjaGVyUHJvdmlkZXIgZXh0ZW5kcyBDYWNoZWRSb3V0ZU1hdGNoZXJQcm92aWRlciB7XG4gICAgY29uc3RydWN0b3IobWFuaWZlc3ROYW1lLCBtYW5pZmVzdExvYWRlcil7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGxvYWQ6IGFzeW5jICgpPT5tYW5pZmVzdExvYWRlci5sb2FkKG1hbmlmZXN0TmFtZSksXG4gICAgICAgICAgICBjb21wYXJlOiAobGVmdCwgcmlnaHQpPT5sZWZ0ID09PSByaWdodFxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1hbmlmZXN0LXJvdXRlLW1hdGNoZXItcHJvdmlkZXIuanMubWFwIl0sIm5hbWVzIjpbIkNhY2hlZFJvdXRlTWF0Y2hlclByb3ZpZGVyIiwiTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciIsImNvbnN0cnVjdG9yIiwibWFuaWZlc3ROYW1lIiwibWFuaWZlc3RMb2FkZXIiLCJsb2FkIiwiY29tcGFyZSIsImxlZnQiLCJyaWdodCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/manifest-route-matcher-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/pages-api-route-matcher-provider.js":
-/*!******************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matcher-providers/pages-api-route-matcher-provider.js ***!
- \******************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PagesAPIRouteMatcherProvider: () => (/* binding */ PagesAPIRouteMatcherProvider)\n/* harmony export */ });\n/* harmony import */ var _lib_is_api_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../lib/is-api-route */ \"(ssr)/../../node_modules/next/dist/esm/lib/is-api-route.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n/* harmony import */ var _route_kind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../route-kind */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-kind.js\");\n/* harmony import */ var _route_matchers_pages_api_route_matcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../route-matchers/pages-api-route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/pages-api-route-matcher.js\");\n/* harmony import */ var _manifest_route_matcher_provider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./manifest-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/manifest-route-matcher-provider.js\");\n/* harmony import */ var _normalizers_built_pages__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../normalizers/built/pages */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/index.js\");\n\n\n\n\n\n\nclass PagesAPIRouteMatcherProvider extends _manifest_route_matcher_provider__WEBPACK_IMPORTED_MODULE_4__.ManifestRouteMatcherProvider {\n constructor(distDir, manifestLoader, i18nProvider){\n super(_shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__.PAGES_MANIFEST, manifestLoader);\n this.i18nProvider = i18nProvider;\n this.normalizers = new _normalizers_built_pages__WEBPACK_IMPORTED_MODULE_5__.PagesNormalizers(distDir);\n }\n async transform(manifest) {\n // This matcher is only for Pages API routes.\n const pathnames = Object.keys(manifest).filter((pathname)=>(0,_lib_is_api_route__WEBPACK_IMPORTED_MODULE_0__.isAPIRoute)(pathname));\n const matchers = [];\n for (const page of pathnames){\n if (this.i18nProvider) {\n // Match the locale on the page name, or default to the default locale.\n const { detectedLocale, pathname } = this.i18nProvider.analyze(page);\n matchers.push(new _route_matchers_pages_api_route_matcher__WEBPACK_IMPORTED_MODULE_3__.PagesAPILocaleRouteMatcher({\n kind: _route_kind__WEBPACK_IMPORTED_MODULE_2__.RouteKind.PAGES_API,\n pathname,\n page,\n bundlePath: this.normalizers.bundlePath.normalize(page),\n filename: this.normalizers.filename.normalize(manifest[page]),\n i18n: {\n locale: detectedLocale\n }\n }));\n } else {\n matchers.push(new _route_matchers_pages_api_route_matcher__WEBPACK_IMPORTED_MODULE_3__.PagesAPIRouteMatcher({\n kind: _route_kind__WEBPACK_IMPORTED_MODULE_2__.RouteKind.PAGES_API,\n // In `pages/`, the page is the same as the pathname.\n pathname: page,\n page,\n bundlePath: this.normalizers.bundlePath.normalize(page),\n filename: this.normalizers.filename.normalize(manifest[page])\n }));\n }\n }\n return matchers;\n }\n} //# sourceMappingURL=pages-api-route-matcher-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLXByb3ZpZGVycy9wYWdlcy1hcGktcm91dGUtbWF0Y2hlci1wcm92aWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXVEO0FBQ1E7QUFDckI7QUFDbUU7QUFDNUI7QUFDbkI7QUFDdkQsTUFBTU8scUNBQXFDRiwwRkFBNEJBO0lBQzFFRyxZQUFZQyxPQUFPLEVBQUVDLGNBQWMsRUFBRUMsWUFBWSxDQUFDO1FBQzlDLEtBQUssQ0FBQ1YsaUVBQWNBLEVBQUVTO1FBQ3RCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJTixzRUFBZ0JBLENBQUNHO0lBQzVDO0lBQ0EsTUFBTUksVUFBVUMsUUFBUSxFQUFFO1FBQ3RCLDZDQUE2QztRQUM3QyxNQUFNQyxZQUFZQyxPQUFPQyxJQUFJLENBQUNILFVBQVVJLE1BQU0sQ0FBQyxDQUFDQyxXQUFXbkIsNkRBQVVBLENBQUNtQjtRQUN0RSxNQUFNQyxXQUFXLEVBQUU7UUFDbkIsS0FBSyxNQUFNQyxRQUFRTixVQUFVO1lBQ3pCLElBQUksSUFBSSxDQUFDSixZQUFZLEVBQUU7Z0JBQ25CLHVFQUF1RTtnQkFDdkUsTUFBTSxFQUFFVyxjQUFjLEVBQUVILFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQ1IsWUFBWSxDQUFDWSxPQUFPLENBQUNGO2dCQUMvREQsU0FBU0ksSUFBSSxDQUFDLElBQUlyQiwrRkFBMEJBLENBQUM7b0JBQ3pDc0IsTUFBTXZCLGtEQUFTQSxDQUFDd0IsU0FBUztvQkFDekJQO29CQUNBRTtvQkFDQU0sWUFBWSxJQUFJLENBQUNmLFdBQVcsQ0FBQ2UsVUFBVSxDQUFDQyxTQUFTLENBQUNQO29CQUNsRFEsVUFBVSxJQUFJLENBQUNqQixXQUFXLENBQUNpQixRQUFRLENBQUNELFNBQVMsQ0FBQ2QsUUFBUSxDQUFDTyxLQUFLO29CQUM1RFMsTUFBTTt3QkFDRkMsUUFBUVQ7b0JBQ1o7Z0JBQ0o7WUFDSixPQUFPO2dCQUNIRixTQUFTSSxJQUFJLENBQUMsSUFBSXBCLHlGQUFvQkEsQ0FBQztvQkFDbkNxQixNQUFNdkIsa0RBQVNBLENBQUN3QixTQUFTO29CQUN6QixxREFBcUQ7b0JBQ3JEUCxVQUFVRTtvQkFDVkE7b0JBQ0FNLFlBQVksSUFBSSxDQUFDZixXQUFXLENBQUNlLFVBQVUsQ0FBQ0MsU0FBUyxDQUFDUDtvQkFDbERRLFVBQVUsSUFBSSxDQUFDakIsV0FBVyxDQUFDaUIsUUFBUSxDQUFDRCxTQUFTLENBQUNkLFFBQVEsQ0FBQ08sS0FBSztnQkFDaEU7WUFDSjtRQUNKO1FBQ0EsT0FBT0Q7SUFDWDtBQUNKLEVBRUEsNERBQTREIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1hdGNoZXItcHJvdmlkZXJzL3BhZ2VzLWFwaS1yb3V0ZS1tYXRjaGVyLXByb3ZpZGVyLmpzP2Q1ODEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBUElSb3V0ZSB9IGZyb20gXCIuLi8uLi8uLi9saWIvaXMtYXBpLXJvdXRlXCI7XG5pbXBvcnQgeyBQQUdFU19NQU5JRkVTVCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvbGliL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIi4uL3JvdXRlLWtpbmRcIjtcbmltcG9ydCB7IFBhZ2VzQVBJTG9jYWxlUm91dGVNYXRjaGVyLCBQYWdlc0FQSVJvdXRlTWF0Y2hlciB9IGZyb20gXCIuLi9yb3V0ZS1tYXRjaGVycy9wYWdlcy1hcGktcm91dGUtbWF0Y2hlclwiO1xuaW1wb3J0IHsgTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciB9IGZyb20gXCIuL21hbmlmZXN0LXJvdXRlLW1hdGNoZXItcHJvdmlkZXJcIjtcbmltcG9ydCB7IFBhZ2VzTm9ybWFsaXplcnMgfSBmcm9tIFwiLi4vbm9ybWFsaXplcnMvYnVpbHQvcGFnZXNcIjtcbmV4cG9ydCBjbGFzcyBQYWdlc0FQSVJvdXRlTWF0Y2hlclByb3ZpZGVyIGV4dGVuZHMgTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciB7XG4gICAgY29uc3RydWN0b3IoZGlzdERpciwgbWFuaWZlc3RMb2FkZXIsIGkxOG5Qcm92aWRlcil7XG4gICAgICAgIHN1cGVyKFBBR0VTX01BTklGRVNULCBtYW5pZmVzdExvYWRlcik7XG4gICAgICAgIHRoaXMuaTE4blByb3ZpZGVyID0gaTE4blByb3ZpZGVyO1xuICAgICAgICB0aGlzLm5vcm1hbGl6ZXJzID0gbmV3IFBhZ2VzTm9ybWFsaXplcnMoZGlzdERpcik7XG4gICAgfVxuICAgIGFzeW5jIHRyYW5zZm9ybShtYW5pZmVzdCkge1xuICAgICAgICAvLyBUaGlzIG1hdGNoZXIgaXMgb25seSBmb3IgUGFnZXMgQVBJIHJvdXRlcy5cbiAgICAgICAgY29uc3QgcGF0aG5hbWVzID0gT2JqZWN0LmtleXMobWFuaWZlc3QpLmZpbHRlcigocGF0aG5hbWUpPT5pc0FQSVJvdXRlKHBhdGhuYW1lKSk7XG4gICAgICAgIGNvbnN0IG1hdGNoZXJzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwYXRobmFtZXMpe1xuICAgICAgICAgICAgaWYgKHRoaXMuaTE4blByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgLy8gTWF0Y2ggdGhlIGxvY2FsZSBvbiB0aGUgcGFnZSBuYW1lLCBvciBkZWZhdWx0IHRvIHRoZSBkZWZhdWx0IGxvY2FsZS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGRldGVjdGVkTG9jYWxlLCBwYXRobmFtZSB9ID0gdGhpcy5pMThuUHJvdmlkZXIuYW5hbHl6ZShwYWdlKTtcbiAgICAgICAgICAgICAgICBtYXRjaGVycy5wdXNoKG5ldyBQYWdlc0FQSUxvY2FsZVJvdXRlTWF0Y2hlcih7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IFJvdXRlS2luZC5QQUdFU19BUEksXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgICAgICAgICBidW5kbGVQYXRoOiB0aGlzLm5vcm1hbGl6ZXJzLmJ1bmRsZVBhdGgubm9ybWFsaXplKHBhZ2UpLFxuICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZTogdGhpcy5ub3JtYWxpemVycy5maWxlbmFtZS5ub3JtYWxpemUobWFuaWZlc3RbcGFnZV0pLFxuICAgICAgICAgICAgICAgICAgICBpMThuOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IGRldGVjdGVkTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hdGNoZXJzLnB1c2gobmV3IFBhZ2VzQVBJUm91dGVNYXRjaGVyKHtcbiAgICAgICAgICAgICAgICAgICAga2luZDogUm91dGVLaW5kLlBBR0VTX0FQSSxcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gYHBhZ2VzL2AsIHRoZSBwYWdlIGlzIHRoZSBzYW1lIGFzIHRoZSBwYXRobmFtZS5cbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGJ1bmRsZVBhdGg6IHRoaXMubm9ybWFsaXplcnMuYnVuZGxlUGF0aC5ub3JtYWxpemUocGFnZSksXG4gICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lOiB0aGlzLm5vcm1hbGl6ZXJzLmZpbGVuYW1lLm5vcm1hbGl6ZShtYW5pZmVzdFtwYWdlXSlcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hdGNoZXJzO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtYXBpLXJvdXRlLW1hdGNoZXItcHJvdmlkZXIuanMubWFwIl0sIm5hbWVzIjpbImlzQVBJUm91dGUiLCJQQUdFU19NQU5JRkVTVCIsIlJvdXRlS2luZCIsIlBhZ2VzQVBJTG9jYWxlUm91dGVNYXRjaGVyIiwiUGFnZXNBUElSb3V0ZU1hdGNoZXIiLCJNYW5pZmVzdFJvdXRlTWF0Y2hlclByb3ZpZGVyIiwiUGFnZXNOb3JtYWxpemVycyIsIlBhZ2VzQVBJUm91dGVNYXRjaGVyUHJvdmlkZXIiLCJjb25zdHJ1Y3RvciIsImRpc3REaXIiLCJtYW5pZmVzdExvYWRlciIsImkxOG5Qcm92aWRlciIsIm5vcm1hbGl6ZXJzIiwidHJhbnNmb3JtIiwibWFuaWZlc3QiLCJwYXRobmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiZmlsdGVyIiwicGF0aG5hbWUiLCJtYXRjaGVycyIsInBhZ2UiLCJkZXRlY3RlZExvY2FsZSIsImFuYWx5emUiLCJwdXNoIiwia2luZCIsIlBBR0VTX0FQSSIsImJ1bmRsZVBhdGgiLCJub3JtYWxpemUiLCJmaWxlbmFtZSIsImkxOG4iLCJsb2NhbGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/pages-api-route-matcher-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/pages-route-matcher-provider.js":
-/*!**************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matcher-providers/pages-route-matcher-provider.js ***!
- \**************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PagesRouteMatcherProvider: () => (/* binding */ PagesRouteMatcherProvider)\n/* harmony export */ });\n/* harmony import */ var _lib_is_api_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../lib/is-api-route */ \"(ssr)/../../node_modules/next/dist/esm/lib/is-api-route.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n/* harmony import */ var _route_kind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../route-kind */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-kind.js\");\n/* harmony import */ var _route_matchers_pages_route_matcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../route-matchers/pages-route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/pages-route-matcher.js\");\n/* harmony import */ var _manifest_route_matcher_provider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./manifest-route-matcher-provider */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/manifest-route-matcher-provider.js\");\n/* harmony import */ var _normalizers_built_pages__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../normalizers/built/pages */ \"(ssr)/../../node_modules/next/dist/esm/server/future/normalizers/built/pages/index.js\");\n\n\n\n\n\n\nclass PagesRouteMatcherProvider extends _manifest_route_matcher_provider__WEBPACK_IMPORTED_MODULE_4__.ManifestRouteMatcherProvider {\n constructor(distDir, manifestLoader, i18nProvider){\n super(_shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__.PAGES_MANIFEST, manifestLoader);\n this.i18nProvider = i18nProvider;\n this.normalizers = new _normalizers_built_pages__WEBPACK_IMPORTED_MODULE_5__.PagesNormalizers(distDir);\n }\n async transform(manifest) {\n // This matcher is only for Pages routes, not Pages API routes which are\n // included in this manifest.\n const pathnames = Object.keys(manifest).filter((pathname)=>!(0,_lib_is_api_route__WEBPACK_IMPORTED_MODULE_0__.isAPIRoute)(pathname)) // Remove any blocked pages (page that can't be routed to, like error or\n // internal pages).\n .filter((pathname)=>{\n var _this_i18nProvider;\n const normalized = ((_this_i18nProvider = this.i18nProvider) == null ? void 0 : _this_i18nProvider.analyze(pathname).pathname) ?? pathname;\n // Skip any blocked pages.\n if (_shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__.BLOCKED_PAGES.includes(normalized)) return false;\n return true;\n });\n const matchers = [];\n for (const page of pathnames){\n if (this.i18nProvider) {\n // Match the locale on the page name, or default to the default locale.\n const { detectedLocale, pathname } = this.i18nProvider.analyze(page);\n matchers.push(new _route_matchers_pages_route_matcher__WEBPACK_IMPORTED_MODULE_3__.PagesLocaleRouteMatcher({\n kind: _route_kind__WEBPACK_IMPORTED_MODULE_2__.RouteKind.PAGES,\n pathname,\n page,\n bundlePath: this.normalizers.bundlePath.normalize(page),\n filename: this.normalizers.filename.normalize(manifest[page]),\n i18n: {\n locale: detectedLocale\n }\n }));\n } else {\n matchers.push(new _route_matchers_pages_route_matcher__WEBPACK_IMPORTED_MODULE_3__.PagesRouteMatcher({\n kind: _route_kind__WEBPACK_IMPORTED_MODULE_2__.RouteKind.PAGES,\n // In `pages/`, the page is the same as the pathname.\n pathname: page,\n page,\n bundlePath: this.normalizers.bundlePath.normalize(page),\n filename: this.normalizers.filename.normalize(manifest[page])\n }));\n }\n }\n return matchers;\n }\n} //# sourceMappingURL=pages-route-matcher-provider.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVyLXByb3ZpZGVycy9wYWdlcy1yb3V0ZS1tYXRjaGVyLXByb3ZpZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBdUQ7QUFDdUI7QUFDcEM7QUFDeUQ7QUFDbEI7QUFDbkI7QUFDdkQsTUFBTVEsa0NBQWtDRiwwRkFBNEJBO0lBQ3ZFRyxZQUFZQyxPQUFPLEVBQUVDLGNBQWMsRUFBRUMsWUFBWSxDQUFDO1FBQzlDLEtBQUssQ0FBQ1YsaUVBQWNBLEVBQUVTO1FBQ3RCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJTixzRUFBZ0JBLENBQUNHO0lBQzVDO0lBQ0EsTUFBTUksVUFBVUMsUUFBUSxFQUFFO1FBQ3RCLHdFQUF3RTtRQUN4RSw2QkFBNkI7UUFDN0IsTUFBTUMsWUFBWUMsT0FBT0MsSUFBSSxDQUFDSCxVQUFVSSxNQUFNLENBQUMsQ0FBQ0MsV0FBVyxDQUFDcEIsNkRBQVVBLENBQUNvQixXQUFVLHdFQUF3RTtRQUN6SixtQkFBbUI7U0FDbEJELE1BQU0sQ0FBQyxDQUFDQztZQUNMLElBQUlDO1lBQ0osTUFBTUMsYUFBYSxDQUFDLENBQUNELHFCQUFxQixJQUFJLENBQUNULFlBQVksS0FBSyxPQUFPLEtBQUssSUFBSVMsbUJBQW1CRSxPQUFPLENBQUNILFVBQVVBLFFBQVEsS0FBS0E7WUFDbEksMEJBQTBCO1lBQzFCLElBQUluQixnRUFBYUEsQ0FBQ3VCLFFBQVEsQ0FBQ0YsYUFBYSxPQUFPO1lBQy9DLE9BQU87UUFDWDtRQUNBLE1BQU1HLFdBQVcsRUFBRTtRQUNuQixLQUFLLE1BQU1DLFFBQVFWLFVBQVU7WUFDekIsSUFBSSxJQUFJLENBQUNKLFlBQVksRUFBRTtnQkFDbkIsdUVBQXVFO2dCQUN2RSxNQUFNLEVBQUVlLGNBQWMsRUFBRVAsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDUixZQUFZLENBQUNXLE9BQU8sQ0FBQ0c7Z0JBQy9ERCxTQUFTRyxJQUFJLENBQUMsSUFBSXhCLHdGQUF1QkEsQ0FBQztvQkFDdEN5QixNQUFNMUIsa0RBQVNBLENBQUMyQixLQUFLO29CQUNyQlY7b0JBQ0FNO29CQUNBSyxZQUFZLElBQUksQ0FBQ2xCLFdBQVcsQ0FBQ2tCLFVBQVUsQ0FBQ0MsU0FBUyxDQUFDTjtvQkFDbERPLFVBQVUsSUFBSSxDQUFDcEIsV0FBVyxDQUFDb0IsUUFBUSxDQUFDRCxTQUFTLENBQUNqQixRQUFRLENBQUNXLEtBQUs7b0JBQzVEUSxNQUFNO3dCQUNGQyxRQUFRUjtvQkFDWjtnQkFDSjtZQUNKLE9BQU87Z0JBQ0hGLFNBQVNHLElBQUksQ0FBQyxJQUFJdkIsa0ZBQWlCQSxDQUFDO29CQUNoQ3dCLE1BQU0xQixrREFBU0EsQ0FBQzJCLEtBQUs7b0JBQ3JCLHFEQUFxRDtvQkFDckRWLFVBQVVNO29CQUNWQTtvQkFDQUssWUFBWSxJQUFJLENBQUNsQixXQUFXLENBQUNrQixVQUFVLENBQUNDLFNBQVMsQ0FBQ047b0JBQ2xETyxVQUFVLElBQUksQ0FBQ3BCLFdBQVcsQ0FBQ29CLFFBQVEsQ0FBQ0QsU0FBUyxDQUFDakIsUUFBUSxDQUFDVyxLQUFLO2dCQUNoRTtZQUNKO1FBQ0o7UUFDQSxPQUFPRDtJQUNYO0FBQ0osRUFFQSx3REFBd0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvcm91dGUtbWF0Y2hlci1wcm92aWRlcnMvcGFnZXMtcm91dGUtbWF0Y2hlci1wcm92aWRlci5qcz82MGEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQVBJUm91dGUgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2lzLWFwaS1yb3V0ZVwiO1xuaW1wb3J0IHsgQkxPQ0tFRF9QQUdFUywgUEFHRVNfTUFOSUZFU1QgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCIuLi9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBQYWdlc0xvY2FsZVJvdXRlTWF0Y2hlciwgUGFnZXNSb3V0ZU1hdGNoZXIgfSBmcm9tIFwiLi4vcm91dGUtbWF0Y2hlcnMvcGFnZXMtcm91dGUtbWF0Y2hlclwiO1xuaW1wb3J0IHsgTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciB9IGZyb20gXCIuL21hbmlmZXN0LXJvdXRlLW1hdGNoZXItcHJvdmlkZXJcIjtcbmltcG9ydCB7IFBhZ2VzTm9ybWFsaXplcnMgfSBmcm9tIFwiLi4vbm9ybWFsaXplcnMvYnVpbHQvcGFnZXNcIjtcbmV4cG9ydCBjbGFzcyBQYWdlc1JvdXRlTWF0Y2hlclByb3ZpZGVyIGV4dGVuZHMgTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciB7XG4gICAgY29uc3RydWN0b3IoZGlzdERpciwgbWFuaWZlc3RMb2FkZXIsIGkxOG5Qcm92aWRlcil7XG4gICAgICAgIHN1cGVyKFBBR0VTX01BTklGRVNULCBtYW5pZmVzdExvYWRlcik7XG4gICAgICAgIHRoaXMuaTE4blByb3ZpZGVyID0gaTE4blByb3ZpZGVyO1xuICAgICAgICB0aGlzLm5vcm1hbGl6ZXJzID0gbmV3IFBhZ2VzTm9ybWFsaXplcnMoZGlzdERpcik7XG4gICAgfVxuICAgIGFzeW5jIHRyYW5zZm9ybShtYW5pZmVzdCkge1xuICAgICAgICAvLyBUaGlzIG1hdGNoZXIgaXMgb25seSBmb3IgUGFnZXMgcm91dGVzLCBub3QgUGFnZXMgQVBJIHJvdXRlcyB3aGljaCBhcmVcbiAgICAgICAgLy8gaW5jbHVkZWQgaW4gdGhpcyBtYW5pZmVzdC5cbiAgICAgICAgY29uc3QgcGF0aG5hbWVzID0gT2JqZWN0LmtleXMobWFuaWZlc3QpLmZpbHRlcigocGF0aG5hbWUpPT4haXNBUElSb3V0ZShwYXRobmFtZSkpLy8gUmVtb3ZlIGFueSBibG9ja2VkIHBhZ2VzIChwYWdlIHRoYXQgY2FuJ3QgYmUgcm91dGVkIHRvLCBsaWtlIGVycm9yIG9yXG4gICAgICAgIC8vIGludGVybmFsIHBhZ2VzKS5cbiAgICAgICAgLmZpbHRlcigocGF0aG5hbWUpPT57XG4gICAgICAgICAgICB2YXIgX3RoaXNfaTE4blByb3ZpZGVyO1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9ICgoX3RoaXNfaTE4blByb3ZpZGVyID0gdGhpcy5pMThuUHJvdmlkZXIpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19pMThuUHJvdmlkZXIuYW5hbHl6ZShwYXRobmFtZSkucGF0aG5hbWUpID8/IHBhdGhuYW1lO1xuICAgICAgICAgICAgLy8gU2tpcCBhbnkgYmxvY2tlZCBwYWdlcy5cbiAgICAgICAgICAgIGlmIChCTE9DS0VEX1BBR0VTLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG1hdGNoZXJzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwYXRobmFtZXMpe1xuICAgICAgICAgICAgaWYgKHRoaXMuaTE4blByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgLy8gTWF0Y2ggdGhlIGxvY2FsZSBvbiB0aGUgcGFnZSBuYW1lLCBvciBkZWZhdWx0IHRvIHRoZSBkZWZhdWx0IGxvY2FsZS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGRldGVjdGVkTG9jYWxlLCBwYXRobmFtZSB9ID0gdGhpcy5pMThuUHJvdmlkZXIuYW5hbHl6ZShwYWdlKTtcbiAgICAgICAgICAgICAgICBtYXRjaGVycy5wdXNoKG5ldyBQYWdlc0xvY2FsZVJvdXRlTWF0Y2hlcih7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGJ1bmRsZVBhdGg6IHRoaXMubm9ybWFsaXplcnMuYnVuZGxlUGF0aC5ub3JtYWxpemUocGFnZSksXG4gICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lOiB0aGlzLm5vcm1hbGl6ZXJzLmZpbGVuYW1lLm5vcm1hbGl6ZShtYW5pZmVzdFtwYWdlXSksXG4gICAgICAgICAgICAgICAgICAgIGkxOG46IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGV0ZWN0ZWRMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlcnMucHVzaChuZXcgUGFnZXNSb3V0ZU1hdGNoZXIoe1xuICAgICAgICAgICAgICAgICAgICBraW5kOiBSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgIC8vIEluIGBwYWdlcy9gLCB0aGUgcGFnZSBpcyB0aGUgc2FtZSBhcyB0aGUgcGF0aG5hbWUuXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBwYWdlLFxuICAgICAgICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgICAgICAgICBidW5kbGVQYXRoOiB0aGlzLm5vcm1hbGl6ZXJzLmJ1bmRsZVBhdGgubm9ybWFsaXplKHBhZ2UpLFxuICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZTogdGhpcy5ub3JtYWxpemVycy5maWxlbmFtZS5ub3JtYWxpemUobWFuaWZlc3RbcGFnZV0pXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXRjaGVycztcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLXJvdXRlLW1hdGNoZXItcHJvdmlkZXIuanMubWFwIl0sIm5hbWVzIjpbImlzQVBJUm91dGUiLCJCTE9DS0VEX1BBR0VTIiwiUEFHRVNfTUFOSUZFU1QiLCJSb3V0ZUtpbmQiLCJQYWdlc0xvY2FsZVJvdXRlTWF0Y2hlciIsIlBhZ2VzUm91dGVNYXRjaGVyIiwiTWFuaWZlc3RSb3V0ZU1hdGNoZXJQcm92aWRlciIsIlBhZ2VzTm9ybWFsaXplcnMiLCJQYWdlc1JvdXRlTWF0Y2hlclByb3ZpZGVyIiwiY29uc3RydWN0b3IiLCJkaXN0RGlyIiwibWFuaWZlc3RMb2FkZXIiLCJpMThuUHJvdmlkZXIiLCJub3JtYWxpemVycyIsInRyYW5zZm9ybSIsIm1hbmlmZXN0IiwicGF0aG5hbWVzIiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlciIsInBhdGhuYW1lIiwiX3RoaXNfaTE4blByb3ZpZGVyIiwibm9ybWFsaXplZCIsImFuYWx5emUiLCJpbmNsdWRlcyIsIm1hdGNoZXJzIiwicGFnZSIsImRldGVjdGVkTG9jYWxlIiwicHVzaCIsImtpbmQiLCJQQUdFUyIsImJ1bmRsZVBhdGgiLCJub3JtYWxpemUiLCJmaWxlbmFtZSIsImkxOG4iLCJsb2NhbGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matcher-providers/pages-route-matcher-provider.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/app-page-route-matcher.js":
-/*!***********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matchers/app-page-route-matcher.js ***!
- \***********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppPageRouteMatcher: () => (/* binding */ AppPageRouteMatcher)\n/* harmony export */ });\n/* harmony import */ var _route_matcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js\");\n\nclass AppPageRouteMatcher extends _route_matcher__WEBPACK_IMPORTED_MODULE_0__.RouteMatcher {\n get identity() {\n return `${this.definition.pathname}?__nextPage=${this.definition.page}`;\n }\n} //# sourceMappingURL=app-page-route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9hcHAtcGFnZS1yb3V0ZS1tYXRjaGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQStDO0FBQ3hDLE1BQU1DLDRCQUE0QkQsd0RBQVlBO0lBQ2pELElBQUlFLFdBQVc7UUFDWCxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUNDLFVBQVUsQ0FBQ0MsUUFBUSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUNELFVBQVUsQ0FBQ0UsSUFBSSxDQUFDLENBQUM7SUFDM0U7QUFDSixFQUVBLGtEQUFrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9hcHAtcGFnZS1yb3V0ZS1tYXRjaGVyLmpzPzI0ZmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVNYXRjaGVyIH0gZnJvbSBcIi4vcm91dGUtbWF0Y2hlclwiO1xuZXhwb3J0IGNsYXNzIEFwcFBhZ2VSb3V0ZU1hdGNoZXIgZXh0ZW5kcyBSb3V0ZU1hdGNoZXIge1xuICAgIGdldCBpZGVudGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZGVmaW5pdGlvbi5wYXRobmFtZX0/X19uZXh0UGFnZT0ke3RoaXMuZGVmaW5pdGlvbi5wYWdlfWA7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcGFnZS1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJSb3V0ZU1hdGNoZXIiLCJBcHBQYWdlUm91dGVNYXRjaGVyIiwiaWRlbnRpdHkiLCJkZWZpbml0aW9uIiwicGF0aG5hbWUiLCJwYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/app-page-route-matcher.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/app-route-route-matcher.js":
-/*!************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matchers/app-route-route-matcher.js ***!
- \************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRouteRouteMatcher: () => (/* binding */ AppRouteRouteMatcher)\n/* harmony export */ });\n/* harmony import */ var _route_matcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js\");\n\nclass AppRouteRouteMatcher extends _route_matcher__WEBPACK_IMPORTED_MODULE_0__.RouteMatcher {\n} //# sourceMappingURL=app-route-route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9hcHAtcm91dGUtcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUErQztBQUN4QyxNQUFNQyw2QkFBNkJELHdEQUFZQTtBQUN0RCxFQUVBLG1EQUFtRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9hcHAtcm91dGUtcm91dGUtbWF0Y2hlci5qcz9mZmFiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlTWF0Y2hlciB9IGZyb20gXCIuL3JvdXRlLW1hdGNoZXJcIjtcbmV4cG9ydCBjbGFzcyBBcHBSb3V0ZVJvdXRlTWF0Y2hlciBleHRlbmRzIFJvdXRlTWF0Y2hlciB7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZS1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJSb3V0ZU1hdGNoZXIiLCJBcHBSb3V0ZVJvdXRlTWF0Y2hlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/app-route-route-matcher.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/locale-route-matcher.js":
-/*!*********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matchers/locale-route-matcher.js ***!
- \*********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LocaleRouteMatcher: () => (/* binding */ LocaleRouteMatcher)\n/* harmony export */ });\n/* harmony import */ var _route_matcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js\");\n\nclass LocaleRouteMatcher extends _route_matcher__WEBPACK_IMPORTED_MODULE_0__.RouteMatcher {\n /**\n * Identity returns the identity part of the matcher. This is used to compare\n * a unique matcher to another. This is also used when sorting dynamic routes,\n * so it must contain the pathname part as well.\n */ get identity() {\n var _this_definition_i18n;\n return `${this.definition.pathname}?__nextLocale=${(_this_definition_i18n = this.definition.i18n) == null ? void 0 : _this_definition_i18n.locale}`;\n }\n /**\n * Match will attempt to match the given pathname against this route while\n * also taking into account the locale information.\n *\n * @param pathname The pathname to match against.\n * @param options The options to use when matching.\n * @returns The match result, or `null` if there was no match.\n */ match(pathname, options) {\n var // the route's locale.\n _options_i18n, _this_definition_i18n;\n // This is like the parent `match` method but instead this injects the\n // additional `options` into the\n const result = this.test(pathname, options);\n if (!result) return null;\n return {\n definition: this.definition,\n params: result.params,\n detectedLocale: (options == null ? void 0 : (_options_i18n = options.i18n) == null ? void 0 : _options_i18n.detectedLocale) ?? ((_this_definition_i18n = this.definition.i18n) == null ? void 0 : _this_definition_i18n.locale)\n };\n }\n /**\n * Test will attempt to match the given pathname against this route while\n * also taking into account the locale information.\n *\n * @param pathname The pathname to match against.\n * @param options The options to use when matching.\n * @returns The match result, or `null` if there was no match.\n */ test(pathname, options) {\n // If this route has locale information and we have detected a locale, then\n // we need to compare the detected locale to the route's locale.\n if (this.definition.i18n && (options == null ? void 0 : options.i18n)) {\n // If we have detected a locale and it does not match this route's locale,\n // then this isn't a match!\n if (this.definition.i18n.locale && options.i18n.detectedLocale && this.definition.i18n.locale !== options.i18n.detectedLocale) {\n return null;\n }\n // Perform regular matching against the locale stripped pathname now, the\n // locale information matches!\n return super.test(options.i18n.pathname);\n }\n // If we don't have locale information, then we can just perform regular\n // matching.\n return super.test(pathname);\n }\n} //# sourceMappingURL=locale-route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9sb2NhbGUtcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUErQztBQUN4QyxNQUFNQywyQkFBMkJELHdEQUFZQTtJQUNoRDs7OztHQUlELEdBQUcsSUFBSUUsV0FBVztRQUNiLElBQUlDO1FBQ0osT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDQyxVQUFVLENBQUNDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQ0Ysd0JBQXdCLElBQUksQ0FBQ0MsVUFBVSxDQUFDRSxJQUFJLEtBQUssT0FBTyxLQUFLLElBQUlILHNCQUFzQkksTUFBTSxDQUFDLENBQUM7SUFDdko7SUFDQTs7Ozs7OztHQU9ELEdBQUdDLE1BQU1ILFFBQVEsRUFBRUksT0FBTyxFQUFFO1FBQ3ZCLElBQ0Esc0JBQXNCO1FBQ3RCQyxlQUFlUDtRQUNmLHNFQUFzRTtRQUN0RSxnQ0FBZ0M7UUFDaEMsTUFBTVEsU0FBUyxJQUFJLENBQUNDLElBQUksQ0FBQ1AsVUFBVUk7UUFDbkMsSUFBSSxDQUFDRSxRQUFRLE9BQU87UUFDcEIsT0FBTztZQUNIUCxZQUFZLElBQUksQ0FBQ0EsVUFBVTtZQUMzQlMsUUFBUUYsT0FBT0UsTUFBTTtZQUNyQkMsZ0JBQWdCLENBQUNMLFdBQVcsT0FBTyxLQUFLLElBQUksQ0FBQ0MsZ0JBQWdCRCxRQUFRSCxJQUFJLEtBQUssT0FBTyxLQUFLLElBQUlJLGNBQWNJLGNBQWMsS0FBTSxFQUFDWCx3QkFBd0IsSUFBSSxDQUFDQyxVQUFVLENBQUNFLElBQUksS0FBSyxPQUFPLEtBQUssSUFBSUgsc0JBQXNCSSxNQUFNO1FBQ2xPO0lBQ0o7SUFDQTs7Ozs7OztHQU9ELEdBQUdLLEtBQUtQLFFBQVEsRUFBRUksT0FBTyxFQUFFO1FBQ3RCLDJFQUEyRTtRQUMzRSxnRUFBZ0U7UUFDaEUsSUFBSSxJQUFJLENBQUNMLFVBQVUsQ0FBQ0UsSUFBSSxJQUFLRyxDQUFBQSxXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRSCxJQUFJLEdBQUc7WUFDbkUsMEVBQTBFO1lBQzFFLDJCQUEyQjtZQUMzQixJQUFJLElBQUksQ0FBQ0YsVUFBVSxDQUFDRSxJQUFJLENBQUNDLE1BQU0sSUFBSUUsUUFBUUgsSUFBSSxDQUFDUSxjQUFjLElBQUksSUFBSSxDQUFDVixVQUFVLENBQUNFLElBQUksQ0FBQ0MsTUFBTSxLQUFLRSxRQUFRSCxJQUFJLENBQUNRLGNBQWMsRUFBRTtnQkFDM0gsT0FBTztZQUNYO1lBQ0EseUVBQXlFO1lBQ3pFLDhCQUE4QjtZQUM5QixPQUFPLEtBQUssQ0FBQ0YsS0FBS0gsUUFBUUgsSUFBSSxDQUFDRCxRQUFRO1FBQzNDO1FBQ0Esd0VBQXdFO1FBQ3hFLFlBQVk7UUFDWixPQUFPLEtBQUssQ0FBQ08sS0FBS1A7SUFDdEI7QUFDSixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9sb2NhbGUtcm91dGUtbWF0Y2hlci5qcz85ZGI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlTWF0Y2hlciB9IGZyb20gXCIuL3JvdXRlLW1hdGNoZXJcIjtcbmV4cG9ydCBjbGFzcyBMb2NhbGVSb3V0ZU1hdGNoZXIgZXh0ZW5kcyBSb3V0ZU1hdGNoZXIge1xuICAgIC8qKlxuICAgKiBJZGVudGl0eSByZXR1cm5zIHRoZSBpZGVudGl0eSBwYXJ0IG9mIHRoZSBtYXRjaGVyLiBUaGlzIGlzIHVzZWQgdG8gY29tcGFyZVxuICAgKiBhIHVuaXF1ZSBtYXRjaGVyIHRvIGFub3RoZXIuIFRoaXMgaXMgYWxzbyB1c2VkIHdoZW4gc29ydGluZyBkeW5hbWljIHJvdXRlcyxcbiAgICogc28gaXQgbXVzdCBjb250YWluIHRoZSBwYXRobmFtZSBwYXJ0IGFzIHdlbGwuXG4gICAqLyBnZXQgaWRlbnRpdHkoKSB7XG4gICAgICAgIHZhciBfdGhpc19kZWZpbml0aW9uX2kxOG47XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmRlZmluaXRpb24ucGF0aG5hbWV9P19fbmV4dExvY2FsZT0keyhfdGhpc19kZWZpbml0aW9uX2kxOG4gPSB0aGlzLmRlZmluaXRpb24uaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX2RlZmluaXRpb25faTE4bi5sb2NhbGV9YDtcbiAgICB9XG4gICAgLyoqXG4gICAqIE1hdGNoIHdpbGwgYXR0ZW1wdCB0byBtYXRjaCB0aGUgZ2l2ZW4gcGF0aG5hbWUgYWdhaW5zdCB0aGlzIHJvdXRlIHdoaWxlXG4gICAqIGFsc28gdGFraW5nIGludG8gYWNjb3VudCB0aGUgbG9jYWxlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aG5hbWUgVGhlIHBhdGhuYW1lIHRvIG1hdGNoIGFnYWluc3QuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIHVzZSB3aGVuIG1hdGNoaW5nLlxuICAgKiBAcmV0dXJucyBUaGUgbWF0Y2ggcmVzdWx0LCBvciBgbnVsbGAgaWYgdGhlcmUgd2FzIG5vIG1hdGNoLlxuICAgKi8gbWF0Y2gocGF0aG5hbWUsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIC8vIElmIHRoZSBvcHRpb25zIGhhdmUgYSBkZXRlY3RlZCBsb2NhbGUsIHRoZW4gdXNlIHRoYXQsIG90aGVyd2lzZSB1c2VcbiAgICAgICAgLy8gdGhlIHJvdXRlJ3MgbG9jYWxlLlxuICAgICAgICBfb3B0aW9uc19pMThuLCBfdGhpc19kZWZpbml0aW9uX2kxOG47XG4gICAgICAgIC8vIFRoaXMgaXMgbGlrZSB0aGUgcGFyZW50IGBtYXRjaGAgbWV0aG9kIGJ1dCBpbnN0ZWFkIHRoaXMgaW5qZWN0cyB0aGVcbiAgICAgICAgLy8gYWRkaXRpb25hbCBgb3B0aW9uc2AgaW50byB0aGVcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy50ZXN0KHBhdGhuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmaW5pdGlvbjogdGhpcy5kZWZpbml0aW9uLFxuICAgICAgICAgICAgcGFyYW1zOiByZXN1bHQucGFyYW1zLFxuICAgICAgICAgICAgZGV0ZWN0ZWRMb2NhbGU6IChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiAoX29wdGlvbnNfaTE4biA9IG9wdGlvbnMuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcHRpb25zX2kxOG4uZGV0ZWN0ZWRMb2NhbGUpID8/ICgoX3RoaXNfZGVmaW5pdGlvbl9pMThuID0gdGhpcy5kZWZpbml0aW9uLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19kZWZpbml0aW9uX2kxOG4ubG9jYWxlKVxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICogVGVzdCB3aWxsIGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGdpdmVuIHBhdGhuYW1lIGFnYWluc3QgdGhpcyByb3V0ZSB3aGlsZVxuICAgKiBhbHNvIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGxvY2FsZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBhdGhuYW1lIFRoZSBwYXRobmFtZSB0byBtYXRjaCBhZ2FpbnN0LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB0byB1c2Ugd2hlbiBtYXRjaGluZy5cbiAgICogQHJldHVybnMgVGhlIG1hdGNoIHJlc3VsdCwgb3IgYG51bGxgIGlmIHRoZXJlIHdhcyBubyBtYXRjaC5cbiAgICovIHRlc3QocGF0aG5hbWUsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gSWYgdGhpcyByb3V0ZSBoYXMgbG9jYWxlIGluZm9ybWF0aW9uIGFuZCB3ZSBoYXZlIGRldGVjdGVkIGEgbG9jYWxlLCB0aGVuXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gY29tcGFyZSB0aGUgZGV0ZWN0ZWQgbG9jYWxlIHRvIHRoZSByb3V0ZSdzIGxvY2FsZS5cbiAgICAgICAgaWYgKHRoaXMuZGVmaW5pdGlvbi5pMThuICYmIChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLmkxOG4pKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGRldGVjdGVkIGEgbG9jYWxlIGFuZCBpdCBkb2VzIG5vdCBtYXRjaCB0aGlzIHJvdXRlJ3MgbG9jYWxlLFxuICAgICAgICAgICAgLy8gdGhlbiB0aGlzIGlzbid0IGEgbWF0Y2ghXG4gICAgICAgICAgICBpZiAodGhpcy5kZWZpbml0aW9uLmkxOG4ubG9jYWxlICYmIG9wdGlvbnMuaTE4bi5kZXRlY3RlZExvY2FsZSAmJiB0aGlzLmRlZmluaXRpb24uaTE4bi5sb2NhbGUgIT09IG9wdGlvbnMuaTE4bi5kZXRlY3RlZExvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUGVyZm9ybSByZWd1bGFyIG1hdGNoaW5nIGFnYWluc3QgdGhlIGxvY2FsZSBzdHJpcHBlZCBwYXRobmFtZSBub3csIHRoZVxuICAgICAgICAgICAgLy8gbG9jYWxlIGluZm9ybWF0aW9uIG1hdGNoZXMhXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIudGVzdChvcHRpb25zLmkxOG4ucGF0aG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgbG9jYWxlIGluZm9ybWF0aW9uLCB0aGVuIHdlIGNhbiBqdXN0IHBlcmZvcm0gcmVndWxhclxuICAgICAgICAvLyBtYXRjaGluZy5cbiAgICAgICAgcmV0dXJuIHN1cGVyLnRlc3QocGF0aG5hbWUpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9jYWxlLXJvdXRlLW1hdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbIlJvdXRlTWF0Y2hlciIsIkxvY2FsZVJvdXRlTWF0Y2hlciIsImlkZW50aXR5IiwiX3RoaXNfZGVmaW5pdGlvbl9pMThuIiwiZGVmaW5pdGlvbiIsInBhdGhuYW1lIiwiaTE4biIsImxvY2FsZSIsIm1hdGNoIiwib3B0aW9ucyIsIl9vcHRpb25zX2kxOG4iLCJyZXN1bHQiLCJ0ZXN0IiwicGFyYW1zIiwiZGV0ZWN0ZWRMb2NhbGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/locale-route-matcher.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/pages-api-route-matcher.js":
-/*!************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matchers/pages-api-route-matcher.js ***!
- \************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PagesAPILocaleRouteMatcher: () => (/* binding */ PagesAPILocaleRouteMatcher),\n/* harmony export */ PagesAPIRouteMatcher: () => (/* binding */ PagesAPIRouteMatcher)\n/* harmony export */ });\n/* harmony import */ var _locale_route_matcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale-route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/locale-route-matcher.js\");\n/* harmony import */ var _route_matcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js\");\n\n\nclass PagesAPIRouteMatcher extends _route_matcher__WEBPACK_IMPORTED_MODULE_1__.RouteMatcher {\n}\nclass PagesAPILocaleRouteMatcher extends _locale_route_matcher__WEBPACK_IMPORTED_MODULE_0__.LocaleRouteMatcher {\n} //# sourceMappingURL=pages-api-route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9wYWdlcy1hcGktcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTREO0FBQ2I7QUFDeEMsTUFBTUUsNkJBQTZCRCx3REFBWUE7QUFDdEQ7QUFDTyxNQUFNRSxtQ0FBbUNILHFFQUFrQkE7QUFDbEUsRUFFQSxtREFBbUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvcm91dGUtbWF0Y2hlcnMvcGFnZXMtYXBpLXJvdXRlLW1hdGNoZXIuanM/YTZkYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbGVSb3V0ZU1hdGNoZXIgfSBmcm9tIFwiLi9sb2NhbGUtcm91dGUtbWF0Y2hlclwiO1xuaW1wb3J0IHsgUm91dGVNYXRjaGVyIH0gZnJvbSBcIi4vcm91dGUtbWF0Y2hlclwiO1xuZXhwb3J0IGNsYXNzIFBhZ2VzQVBJUm91dGVNYXRjaGVyIGV4dGVuZHMgUm91dGVNYXRjaGVyIHtcbn1cbmV4cG9ydCBjbGFzcyBQYWdlc0FQSUxvY2FsZVJvdXRlTWF0Y2hlciBleHRlbmRzIExvY2FsZVJvdXRlTWF0Y2hlciB7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLWFwaS1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJMb2NhbGVSb3V0ZU1hdGNoZXIiLCJSb3V0ZU1hdGNoZXIiLCJQYWdlc0FQSVJvdXRlTWF0Y2hlciIsIlBhZ2VzQVBJTG9jYWxlUm91dGVNYXRjaGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/pages-api-route-matcher.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/pages-route-matcher.js":
-/*!********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matchers/pages-route-matcher.js ***!
- \********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PagesLocaleRouteMatcher: () => (/* binding */ PagesLocaleRouteMatcher),\n/* harmony export */ PagesRouteMatcher: () => (/* binding */ PagesRouteMatcher)\n/* harmony export */ });\n/* harmony import */ var _locale_route_matcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale-route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/locale-route-matcher.js\");\n/* harmony import */ var _route_matcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js\");\n\n\nclass PagesRouteMatcher extends _route_matcher__WEBPACK_IMPORTED_MODULE_1__.RouteMatcher {\n}\nclass PagesLocaleRouteMatcher extends _locale_route_matcher__WEBPACK_IMPORTED_MODULE_0__.LocaleRouteMatcher {\n} //# sourceMappingURL=pages-route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9wYWdlcy1yb3V0ZS1tYXRjaGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBNEQ7QUFDYjtBQUN4QyxNQUFNRSwwQkFBMEJELHdEQUFZQTtBQUNuRDtBQUNPLE1BQU1FLGdDQUFnQ0gscUVBQWtCQTtBQUMvRCxFQUVBLCtDQUErQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9wYWdlcy1yb3V0ZS1tYXRjaGVyLmpzPzNkNDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYWxlUm91dGVNYXRjaGVyIH0gZnJvbSBcIi4vbG9jYWxlLXJvdXRlLW1hdGNoZXJcIjtcbmltcG9ydCB7IFJvdXRlTWF0Y2hlciB9IGZyb20gXCIuL3JvdXRlLW1hdGNoZXJcIjtcbmV4cG9ydCBjbGFzcyBQYWdlc1JvdXRlTWF0Y2hlciBleHRlbmRzIFJvdXRlTWF0Y2hlciB7XG59XG5leHBvcnQgY2xhc3MgUGFnZXNMb2NhbGVSb3V0ZU1hdGNoZXIgZXh0ZW5kcyBMb2NhbGVSb3V0ZU1hdGNoZXIge1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYWdlcy1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJMb2NhbGVSb3V0ZU1hdGNoZXIiLCJSb3V0ZU1hdGNoZXIiLCJQYWdlc1JvdXRlTWF0Y2hlciIsIlBhZ2VzTG9jYWxlUm91dGVNYXRjaGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/pages-route-matcher.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RouteMatcher: () => (/* binding */ RouteMatcher)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/router/utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/index.js\");\n/* harmony import */ var _shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/lib/router/utils/route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js\");\n/* harmony import */ var _shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../shared/lib/router/utils/route-regex */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js\");\n\n\n\nclass RouteMatcher {\n constructor(definition){\n this.definition = definition;\n if ((0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_0__.isDynamicRoute)(definition.pathname)) {\n this.dynamic = (0,_shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_1__.getRouteMatcher)((0,_shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_2__.getRouteRegex)(definition.pathname));\n }\n }\n /**\n * Identity returns the identity part of the matcher. This is used to compare\n * a unique matcher to another. This is also used when sorting dynamic routes,\n * so it must contain the pathname part.\n */ get identity() {\n return this.definition.pathname;\n }\n get isDynamic() {\n return this.dynamic !== undefined;\n }\n match(pathname) {\n const result = this.test(pathname);\n if (!result) return null;\n return {\n definition: this.definition,\n params: result.params\n };\n }\n test(pathname) {\n if (this.dynamic) {\n const params = this.dynamic(pathname);\n if (!params) return null;\n return {\n params\n };\n }\n if (pathname === this.definition.pathname) {\n return {};\n }\n return null;\n }\n} //# sourceMappingURL=route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9yb3V0ZS1tYXRjaGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBa0U7QUFDZTtBQUNKO0FBQ3RFLE1BQU1HO0lBQ1RDLFlBQVlDLFVBQVUsQ0FBQztRQUNuQixJQUFJLENBQUNBLFVBQVUsR0FBR0E7UUFDbEIsSUFBSUwsd0VBQWNBLENBQUNLLFdBQVdDLFFBQVEsR0FBRztZQUNyQyxJQUFJLENBQUNDLE9BQU8sR0FBR04sdUZBQWVBLENBQUNDLG1GQUFhQSxDQUFDRyxXQUFXQyxRQUFRO1FBQ3BFO0lBQ0o7SUFDQTs7OztHQUlELEdBQUcsSUFBSUUsV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDSCxVQUFVLENBQUNDLFFBQVE7SUFDbkM7SUFDQSxJQUFJRyxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUNGLE9BQU8sS0FBS0c7SUFDNUI7SUFDQUMsTUFBTUwsUUFBUSxFQUFFO1FBQ1osTUFBTU0sU0FBUyxJQUFJLENBQUNDLElBQUksQ0FBQ1A7UUFDekIsSUFBSSxDQUFDTSxRQUFRLE9BQU87UUFDcEIsT0FBTztZQUNIUCxZQUFZLElBQUksQ0FBQ0EsVUFBVTtZQUMzQlMsUUFBUUYsT0FBT0UsTUFBTTtRQUN6QjtJQUNKO0lBQ0FELEtBQUtQLFFBQVEsRUFBRTtRQUNYLElBQUksSUFBSSxDQUFDQyxPQUFPLEVBQUU7WUFDZCxNQUFNTyxTQUFTLElBQUksQ0FBQ1AsT0FBTyxDQUFDRDtZQUM1QixJQUFJLENBQUNRLFFBQVEsT0FBTztZQUNwQixPQUFPO2dCQUNIQTtZQUNKO1FBQ0o7UUFDQSxJQUFJUixhQUFhLElBQUksQ0FBQ0QsVUFBVSxDQUFDQyxRQUFRLEVBQUU7WUFDdkMsT0FBTyxDQUFDO1FBQ1o7UUFDQSxPQUFPO0lBQ1g7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tYXRjaGVycy9yb3V0ZS1tYXRjaGVyLmpzPzYyYjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHNcIjtcbmltcG9ydCB7IGdldFJvdXRlTWF0Y2hlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1tYXRjaGVyXCI7XG5pbXBvcnQgeyBnZXRSb3V0ZVJlZ2V4IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4XCI7XG5leHBvcnQgY2xhc3MgUm91dGVNYXRjaGVyIHtcbiAgICBjb25zdHJ1Y3RvcihkZWZpbml0aW9uKXtcbiAgICAgICAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgICAgICAgaWYgKGlzRHluYW1pY1JvdXRlKGRlZmluaXRpb24ucGF0aG5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLmR5bmFtaWMgPSBnZXRSb3V0ZU1hdGNoZXIoZ2V0Um91dGVSZWdleChkZWZpbml0aW9uLnBhdGhuYW1lKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAqIElkZW50aXR5IHJldHVybnMgdGhlIGlkZW50aXR5IHBhcnQgb2YgdGhlIG1hdGNoZXIuIFRoaXMgaXMgdXNlZCB0byBjb21wYXJlXG4gICAqIGEgdW5pcXVlIG1hdGNoZXIgdG8gYW5vdGhlci4gVGhpcyBpcyBhbHNvIHVzZWQgd2hlbiBzb3J0aW5nIGR5bmFtaWMgcm91dGVzLFxuICAgKiBzbyBpdCBtdXN0IGNvbnRhaW4gdGhlIHBhdGhuYW1lIHBhcnQuXG4gICAqLyBnZXQgaWRlbnRpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlZmluaXRpb24ucGF0aG5hbWU7XG4gICAgfVxuICAgIGdldCBpc0R5bmFtaWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmR5bmFtaWMgIT09IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgbWF0Y2gocGF0aG5hbWUpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy50ZXN0KHBhdGhuYW1lKTtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmaW5pdGlvbjogdGhpcy5kZWZpbml0aW9uLFxuICAgICAgICAgICAgcGFyYW1zOiByZXN1bHQucGFyYW1zXG4gICAgICAgIH07XG4gICAgfVxuICAgIHRlc3QocGF0aG5hbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuZHluYW1pYykge1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5keW5hbWljKHBhdGhuYW1lKTtcbiAgICAgICAgICAgIGlmICghcGFyYW1zKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRobmFtZSA9PT0gdGhpcy5kZWZpbml0aW9uLnBhdGhuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJpc0R5bmFtaWNSb3V0ZSIsImdldFJvdXRlTWF0Y2hlciIsImdldFJvdXRlUmVnZXgiLCJSb3V0ZU1hdGNoZXIiLCJjb25zdHJ1Y3RvciIsImRlZmluaXRpb24iLCJwYXRobmFtZSIsImR5bmFtaWMiLCJpZGVudGl0eSIsImlzRHluYW1pYyIsInVuZGVmaW5lZCIsIm1hdGNoIiwicmVzdWx0IiwidGVzdCIsInBhcmFtcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/module.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-modules/app-page/module.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppPageRouteModule: () => (/* binding */ AppPageRouteModule),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ renderToHTMLOrFlight: () => (/* reexport safe */ _app_render_app_render__WEBPACK_IMPORTED_MODULE_0__.renderToHTMLOrFlight),\n/* harmony export */ vendored: () => (/* binding */ vendored)\n/* harmony export */ });\n/* harmony import */ var _app_render_app_render__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../app-render/app-render */ \"(ssr)/../../node_modules/next/dist/esm/server/app-render/app-render.js\");\n/* harmony import */ var _route_module__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../route-module */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/route-module.js\");\n/* harmony import */ var _vendored_contexts_entrypoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendored/contexts/entrypoints */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/vendored/contexts/entrypoints.js\");\n\n\n\nlet vendoredReactRSC;\nlet vendoredReactSSR;\n// the vendored Reacts are loaded from their original source in the edge runtime\nif (false) {}\nclass AppPageRouteModule extends _route_module__WEBPACK_IMPORTED_MODULE_1__.RouteModule {\n render(req, res, context) {\n return (0,_app_render_app_render__WEBPACK_IMPORTED_MODULE_0__.renderToHTMLOrFlight)(req, res, context.page, context.query, context.renderOpts);\n }\n}\nconst vendored = {\n \"react-rsc\": vendoredReactRSC,\n \"react-ssr\": vendoredReactSSR,\n contexts: _vendored_contexts_entrypoints__WEBPACK_IMPORTED_MODULE_2__\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AppPageRouteModule); //# sourceMappingURL=module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXNFO0FBQ3hCO0FBQ3NCO0FBQ3BFLElBQUlHO0FBQ0osSUFBSUM7QUFDSixnRkFBZ0Y7QUFDaEYsSUFBSUMsS0FBbUMsRUFBRSxFQUd4QztBQUNNLE1BQU1JLDJCQUEyQlIsc0RBQVdBO0lBQy9DUyxPQUFPQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsT0FBTyxFQUFFO1FBQ3RCLE9BQU9iLDRFQUFvQkEsQ0FBQ1csS0FBS0MsS0FBS0MsUUFBUUMsSUFBSSxFQUFFRCxRQUFRRSxLQUFLLEVBQUVGLFFBQVFHLFVBQVU7SUFDekY7QUFDSjtBQUNBLE1BQU1DLFdBQVc7SUFDYixhQUFhZDtJQUNiLGFBQWFDO0lBQ2JjLFVBQVVoQiwyREFBZ0JBO0FBQzlCO0FBQzBDO0FBQzFDLGlFQUFlTyxrQkFBa0JBLEVBQUMsQ0FFbEMsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmpzPzhmNzQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyVG9IVE1MT3JGbGlnaHQgfSBmcm9tIFwiLi4vLi4vLi4vYXBwLXJlbmRlci9hcHAtcmVuZGVyXCI7XG5pbXBvcnQgeyBSb3V0ZU1vZHVsZSB9IGZyb20gXCIuLi9yb3V0ZS1tb2R1bGVcIjtcbmltcG9ydCAqIGFzIHZlbmRvcmVkQ29udGV4dHMgZnJvbSBcIi4vdmVuZG9yZWQvY29udGV4dHMvZW50cnlwb2ludHNcIjtcbmxldCB2ZW5kb3JlZFJlYWN0UlNDO1xubGV0IHZlbmRvcmVkUmVhY3RTU1I7XG4vLyB0aGUgdmVuZG9yZWQgUmVhY3RzIGFyZSBsb2FkZWQgZnJvbSB0aGVpciBvcmlnaW5hbCBzb3VyY2UgaW4gdGhlIGVkZ2UgcnVudGltZVxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gXCJlZGdlXCIpIHtcbiAgICB2ZW5kb3JlZFJlYWN0UlNDID0gcmVxdWlyZShcIi4vdmVuZG9yZWQvcnNjL2VudHJ5cG9pbnRzXCIpO1xuICAgIHZlbmRvcmVkUmVhY3RTU1IgPSByZXF1aXJlKFwiLi92ZW5kb3JlZC9zc3IvZW50cnlwb2ludHNcIik7XG59XG5leHBvcnQgY2xhc3MgQXBwUGFnZVJvdXRlTW9kdWxlIGV4dGVuZHMgUm91dGVNb2R1bGUge1xuICAgIHJlbmRlcihyZXEsIHJlcywgY29udGV4dCkge1xuICAgICAgICByZXR1cm4gcmVuZGVyVG9IVE1MT3JGbGlnaHQocmVxLCByZXMsIGNvbnRleHQucGFnZSwgY29udGV4dC5xdWVyeSwgY29udGV4dC5yZW5kZXJPcHRzKTtcbiAgICB9XG59XG5jb25zdCB2ZW5kb3JlZCA9IHtcbiAgICBcInJlYWN0LXJzY1wiOiB2ZW5kb3JlZFJlYWN0UlNDLFxuICAgIFwicmVhY3Qtc3NyXCI6IHZlbmRvcmVkUmVhY3RTU1IsXG4gICAgY29udGV4dHM6IHZlbmRvcmVkQ29udGV4dHNcbn07XG5leHBvcnQgeyByZW5kZXJUb0hUTUxPckZsaWdodCwgdmVuZG9yZWQgfTtcbmV4cG9ydCBkZWZhdWx0IEFwcFBhZ2VSb3V0ZU1vZHVsZTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bW9kdWxlLmpzLm1hcCJdLCJuYW1lcyI6WyJyZW5kZXJUb0hUTUxPckZsaWdodCIsIlJvdXRlTW9kdWxlIiwidmVuZG9yZWRDb250ZXh0cyIsInZlbmRvcmVkUmVhY3RSU0MiLCJ2ZW5kb3JlZFJlYWN0U1NSIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsInJlcXVpcmUiLCJBcHBQYWdlUm91dGVNb2R1bGUiLCJyZW5kZXIiLCJyZXEiLCJyZXMiLCJjb250ZXh0IiwicGFnZSIsInF1ZXJ5IiwicmVuZGVyT3B0cyIsInZlbmRvcmVkIiwiY29udGV4dHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/module.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/vendored/contexts/entrypoints.js":
-/*!**************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-modules/app-page/vendored/contexts/entrypoints.js ***!
- \**************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AmpContext: () => (/* reexport module object */ _shared_lib_amp_context_shared_runtime__WEBPACK_IMPORTED_MODULE_6__),\n/* harmony export */ AppRouterContext: () => (/* reexport module object */ _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__),\n/* harmony export */ HeadManagerContext: () => (/* reexport module object */ _shared_lib_head_manager_context_shared_runtime__WEBPACK_IMPORTED_MODULE_0__),\n/* harmony export */ HooksClientContext: () => (/* reexport module object */ _shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__),\n/* harmony export */ HtmlContext: () => (/* reexport module object */ _shared_lib_html_context_shared_runtime__WEBPACK_IMPORTED_MODULE_5__),\n/* harmony export */ ImageConfigContext: () => (/* reexport module object */ _shared_lib_image_config_context_shared_runtime__WEBPACK_IMPORTED_MODULE_8__),\n/* harmony export */ Loadable: () => (/* reexport module object */ _shared_lib_loadable_shared_runtime__WEBPACK_IMPORTED_MODULE_9__),\n/* harmony export */ LoadableContext: () => (/* reexport module object */ _shared_lib_loadable_context_shared_runtime__WEBPACK_IMPORTED_MODULE_7__),\n/* harmony export */ RouterContext: () => (/* reexport module object */ _shared_lib_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_4__),\n/* harmony export */ ServerInsertedHtml: () => (/* reexport module object */ _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_1__)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_head_manager_context_shared_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../shared/lib/head-manager-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/head-manager-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../shared/lib/server-inserted-html.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js\");\n/* harmony import */ var _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../shared/lib/router-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_html_context_shared_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../shared/lib/html-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/html-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_amp_context_shared_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../shared/lib/amp-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/amp-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_loadable_context_shared_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../shared/lib/loadable-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_image_config_context_shared_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../shared/lib/image-config-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_loadable_shared_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../shared/lib/loadable.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable.shared-runtime.js\");\n\n\n\n\n\n\n\n\n\n //# sourceMappingURL=entrypoints.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2VudHJ5cG9pbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVHO0FBQ0E7QUFDSjtBQUNJO0FBQ1g7QUFDSjtBQUNGO0FBQ1U7QUFDTztBQUN0QixDQUVqRix1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9lbnRyeXBvaW50cy5qcz8zMWQ0Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIEhlYWRNYW5hZ2VyQ29udGV4dCBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiO1xuZXhwb3J0ICogYXMgU2VydmVySW5zZXJ0ZWRIdG1sIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL3NlcnZlci1pbnNlcnRlZC1odG1sLnNoYXJlZC1ydW50aW1lXCI7XG5leHBvcnQgKiBhcyBBcHBSb3V0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZVwiO1xuZXhwb3J0ICogYXMgSG9va3NDbGllbnRDb250ZXh0IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCI7XG5leHBvcnQgKiBhcyBSb3V0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCI7XG5leHBvcnQgKiBhcyBIdG1sQ29udGV4dCBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbmV4cG9ydCAqIGFzIEFtcENvbnRleHQgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbmV4cG9ydCAqIGFzIExvYWRhYmxlQ29udGV4dCBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9sb2FkYWJsZS1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCI7XG5leHBvcnQgKiBhcyBJbWFnZUNvbmZpZ0NvbnRleHQgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbmV4cG9ydCAqIGFzIExvYWRhYmxlIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL2xvYWRhYmxlLnNoYXJlZC1ydW50aW1lXCI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVudHJ5cG9pbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJIZWFkTWFuYWdlckNvbnRleHQiLCJTZXJ2ZXJJbnNlcnRlZEh0bWwiLCJBcHBSb3V0ZXJDb250ZXh0IiwiSG9va3NDbGllbnRDb250ZXh0IiwiUm91dGVyQ29udGV4dCIsIkh0bWxDb250ZXh0IiwiQW1wQ29udGV4dCIsIkxvYWRhYmxlQ29udGV4dCIsIkltYWdlQ29uZmlnQ29udGV4dCIsIkxvYWRhYmxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/vendored/contexts/entrypoints.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/checks.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-modules/checks.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAppPageRouteModule: () => (/* binding */ isAppPageRouteModule),\n/* harmony export */ isAppRouteRouteModule: () => (/* binding */ isAppRouteRouteModule),\n/* harmony export */ isPagesAPIRouteModule: () => (/* binding */ isPagesAPIRouteModule),\n/* harmony export */ isPagesRouteModule: () => (/* binding */ isPagesRouteModule)\n/* harmony export */ });\n/* harmony import */ var _route_kind__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../route-kind */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-kind.js\");\n\nfunction isAppRouteRouteModule(routeModule) {\n return routeModule.definition.kind === _route_kind__WEBPACK_IMPORTED_MODULE_0__.RouteKind.APP_ROUTE;\n}\nfunction isAppPageRouteModule(routeModule) {\n return routeModule.definition.kind === _route_kind__WEBPACK_IMPORTED_MODULE_0__.RouteKind.APP_PAGE;\n}\nfunction isPagesRouteModule(routeModule) {\n return routeModule.definition.kind === _route_kind__WEBPACK_IMPORTED_MODULE_0__.RouteKind.PAGES;\n}\nfunction isPagesAPIRouteModule(routeModule) {\n return routeModule.definition.kind === _route_kind__WEBPACK_IMPORTED_MODULE_0__.RouteKind.PAGES_API;\n} //# sourceMappingURL=checks.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2NoZWNrcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUEwQztBQUNuQyxTQUFTQyxzQkFBc0JDLFdBQVc7SUFDN0MsT0FBT0EsWUFBWUMsVUFBVSxDQUFDQyxJQUFJLEtBQUtKLGtEQUFTQSxDQUFDSyxTQUFTO0FBQzlEO0FBQ08sU0FBU0MscUJBQXFCSixXQUFXO0lBQzVDLE9BQU9BLFlBQVlDLFVBQVUsQ0FBQ0MsSUFBSSxLQUFLSixrREFBU0EsQ0FBQ08sUUFBUTtBQUM3RDtBQUNPLFNBQVNDLG1CQUFtQk4sV0FBVztJQUMxQyxPQUFPQSxZQUFZQyxVQUFVLENBQUNDLElBQUksS0FBS0osa0RBQVNBLENBQUNTLEtBQUs7QUFDMUQ7QUFDTyxTQUFTQyxzQkFBc0JSLFdBQVc7SUFDN0MsT0FBT0EsWUFBWUMsVUFBVSxDQUFDQyxJQUFJLEtBQUtKLGtEQUFTQSxDQUFDVyxTQUFTO0FBQzlELEVBRUEsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvY2hlY2tzLmpzP2Q5NWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIi4uL3JvdXRlLWtpbmRcIjtcbmV4cG9ydCBmdW5jdGlvbiBpc0FwcFJvdXRlUm91dGVNb2R1bGUocm91dGVNb2R1bGUpIHtcbiAgICByZXR1cm4gcm91dGVNb2R1bGUuZGVmaW5pdGlvbi5raW5kID09PSBSb3V0ZUtpbmQuQVBQX1JPVVRFO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQXBwUGFnZVJvdXRlTW9kdWxlKHJvdXRlTW9kdWxlKSB7XG4gICAgcmV0dXJuIHJvdXRlTW9kdWxlLmRlZmluaXRpb24ua2luZCA9PT0gUm91dGVLaW5kLkFQUF9QQUdFO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUGFnZXNSb3V0ZU1vZHVsZShyb3V0ZU1vZHVsZSkge1xuICAgIHJldHVybiByb3V0ZU1vZHVsZS5kZWZpbml0aW9uLmtpbmQgPT09IFJvdXRlS2luZC5QQUdFUztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1BhZ2VzQVBJUm91dGVNb2R1bGUocm91dGVNb2R1bGUpIHtcbiAgICByZXR1cm4gcm91dGVNb2R1bGUuZGVmaW5pdGlvbi5raW5kID09PSBSb3V0ZUtpbmQuUEFHRVNfQVBJO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jaGVja3MuanMubWFwIl0sIm5hbWVzIjpbIlJvdXRlS2luZCIsImlzQXBwUm91dGVSb3V0ZU1vZHVsZSIsInJvdXRlTW9kdWxlIiwiZGVmaW5pdGlvbiIsImtpbmQiLCJBUFBfUk9VVEUiLCJpc0FwcFBhZ2VSb3V0ZU1vZHVsZSIsIkFQUF9QQUdFIiwiaXNQYWdlc1JvdXRlTW9kdWxlIiwiUEFHRVMiLCJpc1BhZ2VzQVBJUm91dGVNb2R1bGUiLCJQQUdFU19BUEkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/checks.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/helpers/response-handlers.js":
-/*!*************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-modules/helpers/response-handlers.js ***!
- \*************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleBadRequestResponse: () => (/* binding */ handleBadRequestResponse),\n/* harmony export */ handleInternalServerErrorResponse: () => (/* binding */ handleInternalServerErrorResponse),\n/* harmony export */ handleMethodNotAllowedResponse: () => (/* binding */ handleMethodNotAllowedResponse),\n/* harmony export */ handleNotFoundResponse: () => (/* binding */ handleNotFoundResponse),\n/* harmony export */ handleRedirectResponse: () => (/* binding */ handleRedirectResponse)\n/* harmony export */ });\n/* harmony import */ var _web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../web/spec-extension/adapters/request-cookies */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\");\n\nfunction handleRedirectResponse(url, mutableCookies, status) {\n const headers = new Headers({\n location: url\n });\n (0,_web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_0__.appendMutableCookies)(headers, mutableCookies);\n return new Response(null, {\n status,\n headers\n });\n}\nfunction handleBadRequestResponse() {\n return new Response(null, {\n status: 400\n });\n}\nfunction handleNotFoundResponse() {\n return new Response(null, {\n status: 404\n });\n}\nfunction handleMethodNotAllowedResponse() {\n return new Response(null, {\n status: 405\n });\n}\nfunction handleInternalServerErrorResponse() {\n return new Response(null, {\n status: 500\n });\n} //# sourceMappingURL=response-handlers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2hlbHBlcnMvcmVzcG9uc2UtaGFuZGxlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTRGO0FBQ3JGLFNBQVNDLHVCQUF1QkMsR0FBRyxFQUFFQyxjQUFjLEVBQUVDLE1BQU07SUFDOUQsTUFBTUMsVUFBVSxJQUFJQyxRQUFRO1FBQ3hCQyxVQUFVTDtJQUNkO0lBQ0FGLGtHQUFvQkEsQ0FBQ0ssU0FBU0Y7SUFDOUIsT0FBTyxJQUFJSyxTQUFTLE1BQU07UUFDdEJKO1FBQ0FDO0lBQ0o7QUFDSjtBQUNPLFNBQVNJO0lBQ1osT0FBTyxJQUFJRCxTQUFTLE1BQU07UUFDdEJKLFFBQVE7SUFDWjtBQUNKO0FBQ08sU0FBU007SUFDWixPQUFPLElBQUlGLFNBQVMsTUFBTTtRQUN0QkosUUFBUTtJQUNaO0FBQ0o7QUFDTyxTQUFTTztJQUNaLE9BQU8sSUFBSUgsU0FBUyxNQUFNO1FBQ3RCSixRQUFRO0lBQ1o7QUFDSjtBQUNPLFNBQVNRO0lBQ1osT0FBTyxJQUFJSixTQUFTLE1BQU07UUFDdEJKLFFBQVE7SUFDWjtBQUNKLEVBRUEsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvaGVscGVycy9yZXNwb25zZS1oYW5kbGVycy5qcz9hNmJlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZE11dGFibGVDb29raWVzIH0gZnJvbSBcIi4uLy4uLy4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZXF1ZXN0LWNvb2tpZXNcIjtcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVSZWRpcmVjdFJlc3BvbnNlKHVybCwgbXV0YWJsZUNvb2tpZXMsIHN0YXR1cykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyh7XG4gICAgICAgIGxvY2F0aW9uOiB1cmxcbiAgICB9KTtcbiAgICBhcHBlbmRNdXRhYmxlQ29va2llcyhoZWFkZXJzLCBtdXRhYmxlQ29va2llcyk7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShudWxsLCB7XG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgaGVhZGVyc1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUJhZFJlcXVlc3RSZXNwb25zZSgpIHtcbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgc3RhdHVzOiA0MDBcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVOb3RGb3VuZFJlc3BvbnNlKCkge1xuICAgIHJldHVybiBuZXcgUmVzcG9uc2UobnVsbCwge1xuICAgICAgICBzdGF0dXM6IDQwNFxuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZU1ldGhvZE5vdEFsbG93ZWRSZXNwb25zZSgpIHtcbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgc3RhdHVzOiA0MDVcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UoKSB7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShudWxsLCB7XG4gICAgICAgIHN0YXR1czogNTAwXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc3BvbnNlLWhhbmRsZXJzLmpzLm1hcCJdLCJuYW1lcyI6WyJhcHBlbmRNdXRhYmxlQ29va2llcyIsImhhbmRsZVJlZGlyZWN0UmVzcG9uc2UiLCJ1cmwiLCJtdXRhYmxlQ29va2llcyIsInN0YXR1cyIsImhlYWRlcnMiLCJIZWFkZXJzIiwibG9jYXRpb24iLCJSZXNwb25zZSIsImhhbmRsZUJhZFJlcXVlc3RSZXNwb25zZSIsImhhbmRsZU5vdEZvdW5kUmVzcG9uc2UiLCJoYW5kbGVNZXRob2ROb3RBbGxvd2VkUmVzcG9uc2UiLCJoYW5kbGVJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/helpers/response-handlers.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/route-module.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-modules/route-module.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RouteModule: () => (/* binding */ RouteModule)\n/* harmony export */ });\n/**\n * RouteModule is the base class for all route modules. This class should be\n * extended by all route modules.\n */ class RouteModule {\n constructor({ userland, definition }){\n this.userland = userland;\n this.definition = definition;\n }\n} //# sourceMappingURL=route-module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL3JvdXRlLW1vZHVsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7OztDQUdDLEdBQVUsTUFBTUE7SUFDYkMsWUFBWSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQ0QsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDdEI7QUFDSixFQUVBLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL3JvdXRlLW1vZHVsZS5qcz8zMzkxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUm91dGVNb2R1bGUgaXMgdGhlIGJhc2UgY2xhc3MgZm9yIGFsbCByb3V0ZSBtb2R1bGVzLiBUaGlzIGNsYXNzIHNob3VsZCBiZVxuICogZXh0ZW5kZWQgYnkgYWxsIHJvdXRlIG1vZHVsZXMuXG4gKi8gZXhwb3J0IGNsYXNzIFJvdXRlTW9kdWxlIHtcbiAgICBjb25zdHJ1Y3Rvcih7IHVzZXJsYW5kLCBkZWZpbml0aW9uIH0pe1xuICAgICAgICB0aGlzLnVzZXJsYW5kID0gdXNlcmxhbmQ7XG4gICAgICAgIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1tb2R1bGUuanMubWFwIl0sIm5hbWVzIjpbIlJvdXRlTW9kdWxlIiwiY29uc3RydWN0b3IiLCJ1c2VybGFuZCIsImRlZmluaXRpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/route-module.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/htmlescape.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/htmlescape.js ***!
- \*************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ESCAPE_REGEX: () => (/* binding */ ESCAPE_REGEX),\n/* harmony export */ htmlEscapeJsonString: () => (/* binding */ htmlEscapeJsonString)\n/* harmony export */ });\n// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\nconst ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction htmlEscapeJsonString(str) {\n return str.replace(ESCAPE_REGEX, (match)=>ESCAPE_LOOKUP[match]);\n} //# sourceMappingURL=htmlescape.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2h0bWxlc2NhcGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpRUFBaUU7QUFDakUsdUdBQXVHO0FBQ3ZHLE1BQU1BLGdCQUFnQjtJQUNsQixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxVQUFVO0lBQ1YsVUFBVTtBQUNkO0FBQ08sTUFBTUMsZUFBZSxxQkFBcUI7QUFDMUMsU0FBU0MscUJBQXFCQyxHQUFHO0lBQ3BDLE9BQU9BLElBQUlDLE9BQU8sQ0FBQ0gsY0FBYyxDQUFDSSxRQUFRTCxhQUFhLENBQUNLLE1BQU07QUFDbEUsRUFFQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9odG1sZXNjYXBlLmpzPzc2ZDIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyB1dGlsaXR5IGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS96ZXJ0b3NoL2h0bWxlc2NhcGVcbi8vIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS96ZXJ0b3NoL2h0bWxlc2NhcGUvYmxvYi8wNTI3Y2E3MTU2YTUyNGQyNTYxMDFiYjMxMGE5Zjk3MGY2MzA3OGFkL0xJQ0VOU0VcbmNvbnN0IEVTQ0FQRV9MT09LVVAgPSB7XG4gICAgXCImXCI6IFwiXFxcXHUwMDI2XCIsXG4gICAgXCI+XCI6IFwiXFxcXHUwMDNlXCIsXG4gICAgXCI8XCI6IFwiXFxcXHUwMDNjXCIsXG4gICAgXCJcXHUyMDI4XCI6IFwiXFxcXHUyMDI4XCIsXG4gICAgXCJcXHUyMDI5XCI6IFwiXFxcXHUyMDI5XCJcbn07XG5leHBvcnQgY29uc3QgRVNDQVBFX1JFR0VYID0gL1smPjxcXHUyMDI4XFx1MjAyOV0vZztcbmV4cG9ydCBmdW5jdGlvbiBodG1sRXNjYXBlSnNvblN0cmluZyhzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoRVNDQVBFX1JFR0VYLCAobWF0Y2gpPT5FU0NBUEVfTE9PS1VQW21hdGNoXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0bWxlc2NhcGUuanMubWFwIl0sIm5hbWVzIjpbIkVTQ0FQRV9MT09LVVAiLCJFU0NBUEVfUkVHRVgiLCJodG1sRXNjYXBlSnNvblN0cmluZyIsInN0ciIsInJlcGxhY2UiLCJtYXRjaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/htmlescape.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/internal-utils.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/internal-utils.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stripInternalHeaders: () => (/* binding */ stripInternalHeaders),\n/* harmony export */ stripInternalQueries: () => (/* binding */ stripInternalQueries),\n/* harmony export */ stripInternalSearchParams: () => (/* binding */ stripInternalSearchParams)\n/* harmony export */ });\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n\n\nconst INTERNAL_QUERY_NAMES = [\n \"__nextFallback\",\n \"__nextLocale\",\n \"__nextInferredLocaleFromDefault\",\n \"__nextDefaultLocale\",\n \"__nextIsNotFound\",\n _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.NEXT_RSC_UNION_QUERY\n];\nconst EDGE_EXTENDED_INTERNAL_QUERY_NAMES = [\n \"__nextDataReq\"\n];\nfunction stripInternalQueries(query) {\n for (const name of INTERNAL_QUERY_NAMES){\n delete query[name];\n }\n}\nfunction stripInternalSearchParams(url, isEdge) {\n const isStringUrl = typeof url === \"string\";\n const instance = isStringUrl ? new URL(url) : url;\n for (const name of INTERNAL_QUERY_NAMES){\n instance.searchParams.delete(name);\n }\n if (isEdge) {\n for (const name of EDGE_EXTENDED_INTERNAL_QUERY_NAMES){\n instance.searchParams.delete(name);\n }\n }\n return isStringUrl ? instance.toString() : instance;\n}\n/**\n * Strip internal headers from the request headers.\n *\n * @param headers the headers to strip of internal headers\n */ function stripInternalHeaders(headers) {\n for (const key of _shared_lib_constants__WEBPACK_IMPORTED_MODULE_1__.INTERNAL_HEADERS){\n delete headers[key];\n }\n} //# sourceMappingURL=internal-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2ludGVybmFsLXV0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStFO0FBQ3BCO0FBQzNELE1BQU1FLHVCQUF1QjtJQUN6QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0FGLHVGQUFvQkE7Q0FDdkI7QUFDRCxNQUFNRyxxQ0FBcUM7SUFDdkM7Q0FDSDtBQUNNLFNBQVNDLHFCQUFxQkMsS0FBSztJQUN0QyxLQUFLLE1BQU1DLFFBQVFKLHFCQUFxQjtRQUNwQyxPQUFPRyxLQUFLLENBQUNDLEtBQUs7SUFDdEI7QUFDSjtBQUNPLFNBQVNDLDBCQUEwQkMsR0FBRyxFQUFFQyxNQUFNO0lBQ2pELE1BQU1DLGNBQWMsT0FBT0YsUUFBUTtJQUNuQyxNQUFNRyxXQUFXRCxjQUFjLElBQUlFLElBQUlKLE9BQU9BO0lBQzlDLEtBQUssTUFBTUYsUUFBUUoscUJBQXFCO1FBQ3BDUyxTQUFTRSxZQUFZLENBQUNDLE1BQU0sQ0FBQ1I7SUFDakM7SUFDQSxJQUFJRyxRQUFRO1FBQ1IsS0FBSyxNQUFNSCxRQUFRSCxtQ0FBbUM7WUFDbERRLFNBQVNFLFlBQVksQ0FBQ0MsTUFBTSxDQUFDUjtRQUNqQztJQUNKO0lBQ0EsT0FBT0ksY0FBY0MsU0FBU0ksUUFBUSxLQUFLSjtBQUMvQztBQUNBOzs7O0NBSUMsR0FBVSxTQUFTSyxxQkFBcUJDLE9BQU87SUFDNUMsS0FBSyxNQUFNQyxPQUFPakIsbUVBQWdCQSxDQUFDO1FBQy9CLE9BQU9nQixPQUFPLENBQUNDLElBQUk7SUFDdkI7QUFDSixFQUVBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2ludGVybmFsLXV0aWxzLmpzP2FhYmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTkVYVF9SU0NfVU5JT05fUVVFUlkgfSBmcm9tIFwiLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCI7XG5pbXBvcnQgeyBJTlRFUk5BTF9IRUFERVJTIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvY29uc3RhbnRzXCI7XG5jb25zdCBJTlRFUk5BTF9RVUVSWV9OQU1FUyA9IFtcbiAgICBcIl9fbmV4dEZhbGxiYWNrXCIsXG4gICAgXCJfX25leHRMb2NhbGVcIixcbiAgICBcIl9fbmV4dEluZmVycmVkTG9jYWxlRnJvbURlZmF1bHRcIixcbiAgICBcIl9fbmV4dERlZmF1bHRMb2NhbGVcIixcbiAgICBcIl9fbmV4dElzTm90Rm91bmRcIixcbiAgICBORVhUX1JTQ19VTklPTl9RVUVSWVxuXTtcbmNvbnN0IEVER0VfRVhURU5ERURfSU5URVJOQUxfUVVFUllfTkFNRVMgPSBbXG4gICAgXCJfX25leHREYXRhUmVxXCJcbl07XG5leHBvcnQgZnVuY3Rpb24gc3RyaXBJbnRlcm5hbFF1ZXJpZXMocXVlcnkpIHtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgSU5URVJOQUxfUVVFUllfTkFNRVMpe1xuICAgICAgICBkZWxldGUgcXVlcnlbbmFtZV07XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwSW50ZXJuYWxTZWFyY2hQYXJhbXModXJsLCBpc0VkZ2UpIHtcbiAgICBjb25zdCBpc1N0cmluZ1VybCA9IHR5cGVvZiB1cmwgPT09IFwic3RyaW5nXCI7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBpc1N0cmluZ1VybCA/IG5ldyBVUkwodXJsKSA6IHVybDtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgSU5URVJOQUxfUVVFUllfTkFNRVMpe1xuICAgICAgICBpbnN0YW5jZS5zZWFyY2hQYXJhbXMuZGVsZXRlKG5hbWUpO1xuICAgIH1cbiAgICBpZiAoaXNFZGdlKSB7XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBFREdFX0VYVEVOREVEX0lOVEVSTkFMX1FVRVJZX05BTUVTKXtcbiAgICAgICAgICAgIGluc3RhbmNlLnNlYXJjaFBhcmFtcy5kZWxldGUobmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzU3RyaW5nVXJsID8gaW5zdGFuY2UudG9TdHJpbmcoKSA6IGluc3RhbmNlO1xufVxuLyoqXG4gKiBTdHJpcCBpbnRlcm5hbCBoZWFkZXJzIGZyb20gdGhlIHJlcXVlc3QgaGVhZGVycy5cbiAqXG4gKiBAcGFyYW0gaGVhZGVycyB0aGUgaGVhZGVycyB0byBzdHJpcCBvZiBpbnRlcm5hbCBoZWFkZXJzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHN0cmlwSW50ZXJuYWxIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBJTlRFUk5BTF9IRUFERVJTKXtcbiAgICAgICAgZGVsZXRlIGhlYWRlcnNba2V5XTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVybmFsLXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJORVhUX1JTQ19VTklPTl9RVUVSWSIsIklOVEVSTkFMX0hFQURFUlMiLCJJTlRFUk5BTF9RVUVSWV9OQU1FUyIsIkVER0VfRVhURU5ERURfSU5URVJOQUxfUVVFUllfTkFNRVMiLCJzdHJpcEludGVybmFsUXVlcmllcyIsInF1ZXJ5IiwibmFtZSIsInN0cmlwSW50ZXJuYWxTZWFyY2hQYXJhbXMiLCJ1cmwiLCJpc0VkZ2UiLCJpc1N0cmluZ1VybCIsImluc3RhbmNlIiwiVVJMIiwic2VhcmNoUGFyYW1zIiwiZGVsZXRlIiwidG9TdHJpbmciLCJzdHJpcEludGVybmFsSGVhZGVycyIsImhlYWRlcnMiLCJrZXkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/internal-utils.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/app-dir-module.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/app-dir-module.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getComponentTypeModule: () => (/* binding */ getComponentTypeModule),\n/* harmony export */ getLayoutOrPageModule: () => (/* binding */ getLayoutOrPageModule)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n\nasync function getLayoutOrPageModule(loaderTree) {\n const { layout, page, defaultPage } = loaderTree[2];\n const isLayout = typeof layout !== \"undefined\";\n const isPage = typeof page !== \"undefined\";\n const isDefaultPage = typeof defaultPage !== \"undefined\" && loaderTree[0] === _shared_lib_segment__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SEGMENT_KEY;\n let value = undefined;\n let modType = undefined;\n if (isLayout) {\n value = await layout[0]();\n modType = \"layout\";\n } else if (isPage) {\n value = await page[0]();\n modType = \"page\";\n } else if (isDefaultPage) {\n value = await defaultPage[0]();\n modType = \"page\";\n }\n return [\n value,\n modType\n ];\n}\nasync function getComponentTypeModule(loaderTree, componentType) {\n const { [componentType]: component } = loaderTree[2];\n if (typeof component !== \"undefined\") {\n return await component[0]();\n }\n return undefined;\n} //# sourceMappingURL=app-dir-module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9hcHAtZGlyLW1vZHVsZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBK0Q7QUFDeEQsZUFBZUMsc0JBQXNCQyxVQUFVO0lBQ2xELE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFdBQVcsRUFBRSxHQUFHSCxVQUFVLENBQUMsRUFBRTtJQUNuRCxNQUFNSSxXQUFXLE9BQU9ILFdBQVc7SUFDbkMsTUFBTUksU0FBUyxPQUFPSCxTQUFTO0lBQy9CLE1BQU1JLGdCQUFnQixPQUFPSCxnQkFBZ0IsZUFBZUgsVUFBVSxDQUFDLEVBQUUsS0FBS0Ysb0VBQW1CQTtJQUNqRyxJQUFJUyxRQUFRQztJQUNaLElBQUlDLFVBQVVEO0lBQ2QsSUFBSUosVUFBVTtRQUNWRyxRQUFRLE1BQU1OLE1BQU0sQ0FBQyxFQUFFO1FBQ3ZCUSxVQUFVO0lBQ2QsT0FBTyxJQUFJSixRQUFRO1FBQ2ZFLFFBQVEsTUFBTUwsSUFBSSxDQUFDLEVBQUU7UUFDckJPLFVBQVU7SUFDZCxPQUFPLElBQUlILGVBQWU7UUFDdEJDLFFBQVEsTUFBTUosV0FBVyxDQUFDLEVBQUU7UUFDNUJNLFVBQVU7SUFDZDtJQUNBLE9BQU87UUFDSEY7UUFDQUU7S0FDSDtBQUNMO0FBQ08sZUFBZUMsdUJBQXVCVixVQUFVLEVBQUVXLGFBQWE7SUFDbEUsTUFBTSxFQUFFLENBQUNBLGNBQWMsRUFBRUMsU0FBUyxFQUFFLEdBQUdaLFVBQVUsQ0FBQyxFQUFFO0lBQ3BELElBQUksT0FBT1ksY0FBYyxhQUFhO1FBQ2xDLE9BQU8sTUFBTUEsU0FBUyxDQUFDLEVBQUU7SUFDN0I7SUFDQSxPQUFPSjtBQUNYLEVBRUEsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL2FwcC1kaXItbW9kdWxlLmpzP2RhYjIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9TRUdNRU5UX0tFWSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3NlZ21lbnRcIjtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXlvdXRPclBhZ2VNb2R1bGUobG9hZGVyVHJlZSkge1xuICAgIGNvbnN0IHsgbGF5b3V0LCBwYWdlLCBkZWZhdWx0UGFnZSB9ID0gbG9hZGVyVHJlZVsyXTtcbiAgICBjb25zdCBpc0xheW91dCA9IHR5cGVvZiBsYXlvdXQgIT09IFwidW5kZWZpbmVkXCI7XG4gICAgY29uc3QgaXNQYWdlID0gdHlwZW9mIHBhZ2UgIT09IFwidW5kZWZpbmVkXCI7XG4gICAgY29uc3QgaXNEZWZhdWx0UGFnZSA9IHR5cGVvZiBkZWZhdWx0UGFnZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBsb2FkZXJUcmVlWzBdID09PSBERUZBVUxUX1NFR01FTlRfS0VZO1xuICAgIGxldCB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICBsZXQgbW9kVHlwZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoaXNMYXlvdXQpIHtcbiAgICAgICAgdmFsdWUgPSBhd2FpdCBsYXlvdXRbMF0oKTtcbiAgICAgICAgbW9kVHlwZSA9IFwibGF5b3V0XCI7XG4gICAgfSBlbHNlIGlmIChpc1BhZ2UpIHtcbiAgICAgICAgdmFsdWUgPSBhd2FpdCBwYWdlWzBdKCk7XG4gICAgICAgIG1vZFR5cGUgPSBcInBhZ2VcIjtcbiAgICB9IGVsc2UgaWYgKGlzRGVmYXVsdFBhZ2UpIHtcbiAgICAgICAgdmFsdWUgPSBhd2FpdCBkZWZhdWx0UGFnZVswXSgpO1xuICAgICAgICBtb2RUeXBlID0gXCJwYWdlXCI7XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBtb2RUeXBlXG4gICAgXTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDb21wb25lbnRUeXBlTW9kdWxlKGxvYWRlclRyZWUsIGNvbXBvbmVudFR5cGUpIHtcbiAgICBjb25zdCB7IFtjb21wb25lbnRUeXBlXTogY29tcG9uZW50IH0gPSBsb2FkZXJUcmVlWzJdO1xuICAgIGlmICh0eXBlb2YgY29tcG9uZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBjb21wb25lbnRbMF0oKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLWRpci1tb2R1bGUuanMubWFwIl0sIm5hbWVzIjpbIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJnZXRMYXlvdXRPclBhZ2VNb2R1bGUiLCJsb2FkZXJUcmVlIiwibGF5b3V0IiwicGFnZSIsImRlZmF1bHRQYWdlIiwiaXNMYXlvdXQiLCJpc1BhZ2UiLCJpc0RlZmF1bHRQYWdlIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJtb2RUeXBlIiwiZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/app-dir-module.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/etag.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/etag.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fnv1a52: () => (/* binding */ fnv1a52),\n/* harmony export */ generateETag: () => (/* binding */ generateETag)\n/* harmony export */ });\n/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <[email protected]>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */ const fnv1a52 = (str)=>{\n const len = str.length;\n let i = 0, t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n while(i < len){\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = t3 + (t2 >>> 16) & 65535;\n v2 = t2 & 65535;\n }\n return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4);\n};\nconst generateETag = (payload, weak = false)=>{\n const prefix = weak ? 'W/\"' : '\"';\n return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"';\n}; //# sourceMappingURL=etag.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9ldGFnLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FBVSxNQUFNQSxVQUFVLENBQUNDO0lBQ3hCLE1BQU1DLE1BQU1ELElBQUlFLE1BQU07SUFDdEIsSUFBSUMsSUFBSSxHQUFHQyxLQUFLLEdBQUdDLEtBQUssUUFBUUMsS0FBSyxHQUFHQyxLQUFLLFFBQVFDLEtBQUssR0FBR0MsS0FBSyxRQUFRQyxLQUFLLEdBQUdDLEtBQUs7SUFDdkYsTUFBTVIsSUFBSUYsSUFBSTtRQUNWSSxNQUFNTCxJQUFJWSxVQUFVLENBQUNUO1FBQ3JCQyxLQUFLQyxLQUFLO1FBQ1ZDLEtBQUtDLEtBQUs7UUFDVkMsS0FBS0MsS0FBSztRQUNWQyxLQUFLQyxLQUFLO1FBQ1ZILE1BQU1ILE1BQU07UUFDWkssTUFBTUgsTUFBTTtRQUNaRCxNQUFNRixPQUFPO1FBQ2JDLEtBQUtELEtBQUs7UUFDVkksTUFBTUYsT0FBTztRQUNiQyxLQUFLRCxLQUFLO1FBQ1ZLLEtBQUtELEtBQU1GLENBQUFBLE9BQU8sRUFBQyxJQUFLO1FBQ3hCQyxLQUFLRCxLQUFLO0lBQ2Q7SUFDQSxPQUFPLENBQUNHLEtBQUssRUFBQyxJQUFLLGtCQUFrQkYsS0FBSyxhQUFhRixLQUFLLFFBQVNGLENBQUFBLEtBQUtNLE1BQU07QUFDcEYsRUFBRTtBQUNLLE1BQU1FLGVBQWUsQ0FBQ0MsU0FBU0MsT0FBTyxLQUFLO0lBQzlDLE1BQU1DLFNBQVNELE9BQU8sUUFBUTtJQUM5QixPQUFPQyxTQUFTakIsUUFBUWUsU0FBU0csUUFBUSxDQUFDLE1BQU1ILFFBQVFaLE1BQU0sQ0FBQ2UsUUFBUSxDQUFDLE1BQU07QUFDbEYsRUFBRSxDQUVGLGdDQUFnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9ldGFnLmpzPzc0N2YiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGTlYtMWEgSGFzaCBpbXBsZW1lbnRhdGlvblxuICogQGF1dGhvciBUcmF2aXMgV2ViYiAodGp3ZWJiKSA8bWVAdHJhdmlzd2ViYi5jb20+XG4gKlxuICogUG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Rqd2ViYi9mbnYtcGx1cy9ibG9iL21hc3Rlci9pbmRleC5qc1xuICpcbiAqIFNpbXBsaWZpZWQsIG9wdGltaXplZCBhbmQgYWRkIG1vZGlmaWVkIGZvciA1MiBiaXQsIHdoaWNoIHByb3ZpZGVzIGEgbGFyZ2VyIGhhc2ggc3BhY2VcbiAqIGFuZCBzdGlsbCBtYWtpbmcgdXNlIG9mIEphdmFzY3JpcHQncyA1My1iaXQgaW50ZWdlciBzcGFjZS5cbiAqLyBleHBvcnQgY29uc3QgZm52MWE1MiA9IChzdHIpPT57XG4gICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aDtcbiAgICBsZXQgaSA9IDAsIHQwID0gMCwgdjAgPSAweDIzMjUsIHQxID0gMCwgdjEgPSAweDg0MjIsIHQyID0gMCwgdjIgPSAweDljZTQsIHQzID0gMCwgdjMgPSAweGNiZjI7XG4gICAgd2hpbGUoaSA8IGxlbil7XG4gICAgICAgIHYwIF49IHN0ci5jaGFyQ29kZUF0KGkrKyk7XG4gICAgICAgIHQwID0gdjAgKiA0MzU7XG4gICAgICAgIHQxID0gdjEgKiA0MzU7XG4gICAgICAgIHQyID0gdjIgKiA0MzU7XG4gICAgICAgIHQzID0gdjMgKiA0MzU7XG4gICAgICAgIHQyICs9IHYwIDw8IDg7XG4gICAgICAgIHQzICs9IHYxIDw8IDg7XG4gICAgICAgIHQxICs9IHQwID4+PiAxNjtcbiAgICAgICAgdjAgPSB0MCAmIDY1NTM1O1xuICAgICAgICB0MiArPSB0MSA+Pj4gMTY7XG4gICAgICAgIHYxID0gdDEgJiA2NTUzNTtcbiAgICAgICAgdjMgPSB0MyArICh0MiA+Pj4gMTYpICYgNjU1MzU7XG4gICAgICAgIHYyID0gdDIgJiA2NTUzNTtcbiAgICB9XG4gICAgcmV0dXJuICh2MyAmIDE1KSAqIDI4MTQ3NDk3NjcxMDY1NiArIHYyICogNDI5NDk2NzI5NiArIHYxICogNjU1MzYgKyAodjAgXiB2MyA+PiA0KTtcbn07XG5leHBvcnQgY29uc3QgZ2VuZXJhdGVFVGFnID0gKHBheWxvYWQsIHdlYWsgPSBmYWxzZSk9PntcbiAgICBjb25zdCBwcmVmaXggPSB3ZWFrID8gJ1cvXCInIDogJ1wiJztcbiAgICByZXR1cm4gcHJlZml4ICsgZm52MWE1MihwYXlsb2FkKS50b1N0cmluZygzNikgKyBwYXlsb2FkLmxlbmd0aC50b1N0cmluZygzNikgKyAnXCInO1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXRhZy5qcy5tYXAiXSwibmFtZXMiOlsiZm52MWE1MiIsInN0ciIsImxlbiIsImxlbmd0aCIsImkiLCJ0MCIsInYwIiwidDEiLCJ2MSIsInQyIiwidjIiLCJ0MyIsInYzIiwiY2hhckNvZGVBdCIsImdlbmVyYXRlRVRhZyIsInBheWxvYWQiLCJ3ZWFrIiwicHJlZml4IiwidG9TdHJpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/etag.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/format-hostname.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/format-hostname.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatHostname: () => (/* binding */ formatHostname)\n/* harmony export */ });\n/* harmony import */ var _is_ipv6__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-ipv6 */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/is-ipv6.js\");\n\n/**\n * Formats a hostname so that it is a valid host that can be fetched by wrapping\n * IPv6 hosts with brackets.\n * @param hostname\n * @returns\n */ function formatHostname(hostname) {\n return (0,_is_ipv6__WEBPACK_IMPORTED_MODULE_0__.isIPv6)(hostname) ? `[${hostname}]` : hostname;\n} //# sourceMappingURL=format-hostname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9mb3JtYXQtaG9zdG5hbWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBbUM7QUFDbkM7Ozs7O0NBS0MsR0FBVSxTQUFTQyxlQUFlQyxRQUFRO0lBQ3ZDLE9BQU9GLGdEQUFNQSxDQUFDRSxZQUFZLENBQUMsQ0FBQyxFQUFFQSxTQUFTLENBQUMsQ0FBQyxHQUFHQTtBQUNoRCxFQUVBLDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9mb3JtYXQtaG9zdG5hbWUuanM/OTBkZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0lQdjYgfSBmcm9tIFwiLi9pcy1pcHY2XCI7XG4vKipcbiAqIEZvcm1hdHMgYSBob3N0bmFtZSBzbyB0aGF0IGl0IGlzIGEgdmFsaWQgaG9zdCB0aGF0IGNhbiBiZSBmZXRjaGVkIGJ5IHdyYXBwaW5nXG4gKiBJUHY2IGhvc3RzIHdpdGggYnJhY2tldHMuXG4gKiBAcGFyYW0gaG9zdG5hbWVcbiAqIEByZXR1cm5zXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEhvc3RuYW1lKGhvc3RuYW1lKSB7XG4gICAgcmV0dXJuIGlzSVB2Nihob3N0bmFtZSkgPyBgWyR7aG9zdG5hbWV9XWAgOiBob3N0bmFtZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LWhvc3RuYW1lLmpzLm1hcCJdLCJuYW1lcyI6WyJpc0lQdjYiLCJmb3JtYXRIb3N0bmFtZSIsImhvc3RuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/format-hostname.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/fetch-cache.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/incremental-cache/fetch-cache.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FetchCache)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_lru_cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/lru-cache */ \"(ssr)/../../node_modules/next/dist/compiled/lru-cache/index.js\");\n/* harmony import */ var next_dist_compiled_lru_cache__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_lru_cache__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n\n\nlet rateLimitedUntil = 0;\nlet memoryCache;\nconst CACHE_TAGS_HEADER = \"x-vercel-cache-tags\";\nconst CACHE_HEADERS_HEADER = \"x-vercel-sc-headers\";\nconst CACHE_STATE_HEADER = \"x-vercel-cache-state\";\nconst CACHE_REVALIDATE_HEADER = \"x-vercel-revalidate\";\nconst CACHE_FETCH_URL_HEADER = \"x-vercel-cache-item-name\";\nconst CACHE_CONTROL_VALUE_HEADER = \"x-vercel-cache-control\";\nclass FetchCache {\n static isAvailable(ctx) {\n return !!(ctx._requestHeaders[\"x-vercel-sc-host\"] || process.env.SUSPENSE_CACHE_URL);\n }\n constructor(ctx){\n this.debug = !!process.env.NEXT_PRIVATE_DEBUG_CACHE;\n this.headers = {};\n this.headers[\"Content-Type\"] = \"application/json\";\n if (CACHE_HEADERS_HEADER in ctx._requestHeaders) {\n const newHeaders = JSON.parse(ctx._requestHeaders[CACHE_HEADERS_HEADER]);\n for(const k in newHeaders){\n this.headers[k] = newHeaders[k];\n }\n delete ctx._requestHeaders[CACHE_HEADERS_HEADER];\n }\n const scHost = ctx._requestHeaders[\"x-vercel-sc-host\"] || process.env.SUSPENSE_CACHE_URL;\n const scBasePath = ctx._requestHeaders[\"x-vercel-sc-basepath\"] || process.env.SUSPENSE_CACHE_BASEPATH;\n if (process.env.SUSPENSE_CACHE_AUTH_TOKEN) {\n this.headers[\"Authorization\"] = `Bearer ${process.env.SUSPENSE_CACHE_AUTH_TOKEN}`;\n }\n if (scHost) {\n this.cacheEndpoint = `https://${scHost}${scBasePath || \"\"}`;\n if (this.debug) {\n console.log(\"using cache endpoint\", this.cacheEndpoint);\n }\n } else if (this.debug) {\n console.log(\"no cache endpoint available\");\n }\n if (ctx.maxMemoryCacheSize) {\n if (!memoryCache) {\n if (this.debug) {\n console.log(\"using memory store for fetch cache\");\n }\n memoryCache = new (next_dist_compiled_lru_cache__WEBPACK_IMPORTED_MODULE_0___default())({\n max: ctx.maxMemoryCacheSize,\n length ({ value }) {\n var _JSON_stringify;\n if (!value) {\n return 25;\n } else if (value.kind === \"REDIRECT\") {\n return JSON.stringify(value.props).length;\n } else if (value.kind === \"IMAGE\") {\n throw new Error(\"invariant image should not be incremental-cache\");\n } else if (value.kind === \"FETCH\") {\n return JSON.stringify(value.data || \"\").length;\n } else if (value.kind === \"ROUTE\") {\n return value.body.length;\n }\n // rough estimate of size of cache value\n return value.html.length + (((_JSON_stringify = JSON.stringify(value.pageData)) == null ? void 0 : _JSON_stringify.length) || 0);\n }\n });\n }\n } else {\n if (this.debug) {\n console.log(\"not using memory store for fetch cache\");\n }\n }\n }\n resetRequestCache() {\n memoryCache == null ? void 0 : memoryCache.reset();\n }\n async revalidateTag(tag) {\n if (this.debug) {\n console.log(\"revalidateTag\", tag);\n }\n if (Date.now() < rateLimitedUntil) {\n if (this.debug) {\n console.log(\"rate limited \", rateLimitedUntil);\n }\n return;\n }\n try {\n const res = await fetch(`${this.cacheEndpoint}/v1/suspense-cache/revalidate?tags=${tag}`, {\n method: \"POST\",\n headers: this.headers,\n // @ts-expect-error not on public type\n next: {\n internal: true\n }\n });\n if (res.status === 429) {\n const retryAfter = res.headers.get(\"retry-after\") || \"60000\";\n rateLimitedUntil = Date.now() + parseInt(retryAfter);\n }\n if (!res.ok) {\n throw new Error(`Request failed with status ${res.status}.`);\n }\n } catch (err) {\n console.warn(`Failed to revalidate tag ${tag}`, err);\n }\n }\n async get(...args) {\n const [key, ctx = {}] = args;\n const { tags, softTags, kindHint, fetchIdx, fetchUrl } = ctx;\n if (kindHint !== \"fetch\") {\n return null;\n }\n if (Date.now() < rateLimitedUntil) {\n if (this.debug) {\n console.log(\"rate limited\");\n }\n return null;\n }\n // memory cache is cleared at the end of each request\n // so that revalidate events are pulled from upstream\n // on successive requests\n let data = memoryCache == null ? void 0 : memoryCache.get(key);\n // get data from fetch cache\n if (!data && this.cacheEndpoint) {\n try {\n const start = Date.now();\n const fetchParams = {\n internal: true,\n fetchType: \"cache-get\",\n fetchUrl: fetchUrl,\n fetchIdx\n };\n const res = await fetch(`${this.cacheEndpoint}/v1/suspense-cache/${key}`, {\n method: \"GET\",\n headers: {\n ...this.headers,\n [CACHE_FETCH_URL_HEADER]: fetchUrl,\n [CACHE_TAGS_HEADER]: (tags == null ? void 0 : tags.join(\",\")) || \"\",\n [_lib_constants__WEBPACK_IMPORTED_MODULE_1__.NEXT_CACHE_SOFT_TAGS_HEADER]: (softTags == null ? void 0 : softTags.join(\",\")) || \"\"\n },\n next: fetchParams\n });\n if (res.status === 429) {\n const retryAfter = res.headers.get(\"retry-after\") || \"60000\";\n rateLimitedUntil = Date.now() + parseInt(retryAfter);\n }\n if (res.status === 404) {\n if (this.debug) {\n console.log(`no fetch cache entry for ${key}, duration: ${Date.now() - start}ms`);\n }\n return null;\n }\n if (!res.ok) {\n console.error(await res.text());\n throw new Error(`invalid response from cache ${res.status}`);\n }\n const cached = await res.json();\n if (!cached || cached.kind !== \"FETCH\") {\n this.debug && console.log({\n cached\n });\n throw new Error(`invalid cache value`);\n }\n const cacheState = res.headers.get(CACHE_STATE_HEADER);\n const age = res.headers.get(\"age\");\n data = {\n value: cached,\n // if it's already stale set it to a time in the past\n // if not derive last modified from age\n lastModified: cacheState !== \"fresh\" ? Date.now() - _lib_constants__WEBPACK_IMPORTED_MODULE_1__.CACHE_ONE_YEAR : Date.now() - parseInt(age || \"0\", 10) * 1000\n };\n if (this.debug) {\n console.log(`got fetch cache entry for ${key}, duration: ${Date.now() - start}ms, size: ${Object.keys(cached).length}, cache-state: ${cacheState} tags: ${tags == null ? void 0 : tags.join(\",\")} softTags: ${softTags == null ? void 0 : softTags.join(\",\")}`);\n }\n if (data) {\n memoryCache == null ? void 0 : memoryCache.set(key, data);\n }\n } catch (err) {\n // unable to get data from fetch-cache\n if (this.debug) {\n console.error(`Failed to get from fetch-cache`, err);\n }\n }\n }\n return data || null;\n }\n async set(...args) {\n const [key, data, ctx] = args;\n const { fetchCache, fetchIdx, fetchUrl, tags } = ctx;\n if (!fetchCache) return;\n if (Date.now() < rateLimitedUntil) {\n if (this.debug) {\n console.log(\"rate limited\");\n }\n return;\n }\n memoryCache == null ? void 0 : memoryCache.set(key, {\n value: data,\n lastModified: Date.now()\n });\n if (this.cacheEndpoint) {\n try {\n const start = Date.now();\n if (data !== null && \"revalidate\" in data) {\n this.headers[CACHE_REVALIDATE_HEADER] = data.revalidate.toString();\n }\n if (!this.headers[CACHE_REVALIDATE_HEADER] && data !== null && \"data\" in data) {\n this.headers[CACHE_CONTROL_VALUE_HEADER] = data.data.headers[\"cache-control\"];\n }\n const body = JSON.stringify({\n ...data,\n // we send the tags in the header instead\n // of in the body here\n tags: undefined\n });\n if (this.debug) {\n console.log(\"set cache\", key);\n }\n const fetchParams = {\n internal: true,\n fetchType: \"cache-set\",\n fetchUrl,\n fetchIdx\n };\n const res = await fetch(`${this.cacheEndpoint}/v1/suspense-cache/${key}`, {\n method: \"POST\",\n headers: {\n ...this.headers,\n [CACHE_FETCH_URL_HEADER]: fetchUrl || \"\",\n [CACHE_TAGS_HEADER]: (tags == null ? void 0 : tags.join(\",\")) || \"\"\n },\n body: body,\n next: fetchParams\n });\n if (res.status === 429) {\n const retryAfter = res.headers.get(\"retry-after\") || \"60000\";\n rateLimitedUntil = Date.now() + parseInt(retryAfter);\n }\n if (!res.ok) {\n this.debug && console.log(await res.text());\n throw new Error(`invalid response ${res.status}`);\n }\n if (this.debug) {\n console.log(`successfully set to fetch-cache for ${key}, duration: ${Date.now() - start}ms, size: ${body.length}`);\n }\n } catch (err) {\n // unable to set to fetch-cache\n if (this.debug) {\n console.error(`Failed to update fetch cache`, err);\n }\n }\n }\n return;\n }\n} //# sourceMappingURL=fetch-cache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9pbmNyZW1lbnRhbC1jYWNoZS9mZXRjaC1jYWNoZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9EO0FBQ2lDO0FBQ3JGLElBQUlHLG1CQUFtQjtBQUN2QixJQUFJQztBQUNKLE1BQU1DLG9CQUFvQjtBQUMxQixNQUFNQyx1QkFBdUI7QUFDN0IsTUFBTUMscUJBQXFCO0FBQzNCLE1BQU1DLDBCQUEwQjtBQUNoQyxNQUFNQyx5QkFBeUI7QUFDL0IsTUFBTUMsNkJBQTZCO0FBQ3BCLE1BQU1DO0lBQ2pCLE9BQU9DLFlBQVlDLEdBQUcsRUFBRTtRQUNwQixPQUFPLENBQUMsQ0FBRUEsQ0FBQUEsSUFBSUMsZUFBZSxDQUFDLG1CQUFtQixJQUFJQyxRQUFRQyxHQUFHLENBQUNDLGtCQUFrQjtJQUN2RjtJQUNBQyxZQUFZTCxHQUFHLENBQUM7UUFDWixJQUFJLENBQUNNLEtBQUssR0FBRyxDQUFDLENBQUNKLFFBQVFDLEdBQUcsQ0FBQ0ksd0JBQXdCO1FBQ25ELElBQUksQ0FBQ0MsT0FBTyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDQSxPQUFPLENBQUMsZUFBZSxHQUFHO1FBQy9CLElBQUlmLHdCQUF3Qk8sSUFBSUMsZUFBZSxFQUFFO1lBQzdDLE1BQU1RLGFBQWFDLEtBQUtDLEtBQUssQ0FBQ1gsSUFBSUMsZUFBZSxDQUFDUixxQkFBcUI7WUFDdkUsSUFBSSxNQUFNbUIsS0FBS0gsV0FBVztnQkFDdEIsSUFBSSxDQUFDRCxPQUFPLENBQUNJLEVBQUUsR0FBR0gsVUFBVSxDQUFDRyxFQUFFO1lBQ25DO1lBQ0EsT0FBT1osSUFBSUMsZUFBZSxDQUFDUixxQkFBcUI7UUFDcEQ7UUFDQSxNQUFNb0IsU0FBU2IsSUFBSUMsZUFBZSxDQUFDLG1CQUFtQixJQUFJQyxRQUFRQyxHQUFHLENBQUNDLGtCQUFrQjtRQUN4RixNQUFNVSxhQUFhZCxJQUFJQyxlQUFlLENBQUMsdUJBQXVCLElB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RS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL2luY3JlbWVudGFsLWNhY2hlL2ZldGNoLWNhY2hlLmpzP2Q3MDkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExSVUNhY2hlIGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvbHJ1LWNhY2hlXCI7XG5pbXBvcnQgeyBDQUNIRV9PTkVfWUVBUiwgTkVYVF9DQUNIRV9TT0ZUX1RBR1NfSEVBREVSIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9jb25zdGFudHNcIjtcbmxldCByYXRlTGltaXRlZFVudGlsID0gMDtcbmxldCBtZW1vcnlDYWNoZTtcbmNvbnN0IENBQ0hFX1RBR1NfSEVBREVSID0gXCJ4LXZlcmNlbC1jYWNoZS10YWdzXCI7XG5jb25zdCBDQUNIRV9IRUFERVJTX0hFQURFUiA9IFwieC12ZXJjZWwtc2MtaGVhZGVyc1wiO1xuY29uc3QgQ0FDSEVfU1RBVEVfSEVBREVSID0gXCJ4LXZlcmNlbC1jYWNoZS1zdGF0ZVwiO1xuY29uc3QgQ0FDSEVfUkVWQUxJREFURV9IRUFERVIgPSBcIngtdmVyY2VsLXJldmFsaWRhdGVcIjtcbmNvbnN0IENBQ0hFX0ZFVENIX1VSTF9IRUFERVIgPSBcIngtdmVyY2VsLWNhY2hlLWl0ZW0tbmFtZVwiO1xuY29uc3QgQ0FDSEVfQ09OVFJPTF9WQUxVRV9IRUFERVIgPSBcIngtdmVyY2VsLWNhY2hlLWNvbnRyb2xcIjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZldGNoQ2FjaGUge1xuICAgIHN0YXRpYyBpc0F2YWlsYWJsZShjdHgpIHtcbiAgICAgICAgcmV0dXJuICEhKGN0eC5fcmVxdWVzdEhlYWRlcnNbXCJ4LXZlcmNlbC1zYy1ob3N0XCJdIHx8IHByb2Nlc3MuZW52LlNVU1BFTlNFX0NBQ0hFX1VSTCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGN0eCl7XG4gICAgICAgIHRoaXMuZGVidWcgPSAhIXByb2Nlc3MuZW52Lk5FWFRfUFJJVkFURV9ERUJVR19DQUNIRTtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0ge307XG4gICAgICAgIHRoaXMuaGVhZGVyc1tcIkNvbnRlbnQtVHlwZVwiXSA9IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgICBpZiAoQ0FDSEVfSEVBREVSU19IRUFERVIgaW4gY3R4Ll9yZXF1ZXN0SGVhZGVycykge1xuICAgICAgICAgICAgY29uc3QgbmV3SGVhZGVycyA9IEpTT04ucGFyc2UoY3R4Ll9yZXF1ZXN0SGVhZGVyc1tDQUNIRV9IRUFERVJTX0hFQURFUl0pO1xuICAgICAgICAgICAgZm9yKGNvbnN0IGsgaW4gbmV3SGVhZGVycyl7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJzW2tdID0gbmV3SGVhZGVyc1trXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlbGV0ZSBjdHguX3JlcXVlc3RIZWFkZXJzW0NBQ0hFX0hFQURFUlNfSEVBREVSXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY0hvc3QgPSBjdHguX3JlcXVlc3RIZWFkZXJzW1wieC12ZXJjZWwtc2MtaG9zdFwiXSB8fCBwcm9jZXNzLmVudi5TVVNQRU5TRV9DQUNIRV9VUkw7XG4gICAgICAgIGNvbnN0IHNjQmFzZVBhdGggPSBjdHguX3JlcXVlc3RIZWFkZXJzW1wieC12ZXJjZWwtc2MtYmFzZXBhdGhcIl0gfHwgcHJvY2Vzcy5lbnYuU1VTUEVOU0VfQ0FDSEVfQkFTRVBBVEg7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5TVVNQRU5TRV9DQUNIRV9BVVRIX1RPS0VOKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke3Byb2Nlc3MuZW52LlNVU1BFTlNFX0NBQ0hFX0FVVEhfVE9LRU59YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2NIb3N0KSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlRW5kcG9pbnQgPSBgaHR0cHM6Ly8ke3NjSG9zdH0ke3NjQmFzZVBhdGggfHwgXCJcIn1gO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIGNhY2hlIGVuZHBvaW50XCIsIHRoaXMuY2FjaGVFbmRwb2ludCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJubyBjYWNoZSBlbmRwb2ludCBhdmFpbGFibGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN0eC5tYXhNZW1vcnlDYWNoZVNpemUpIHtcbiAgICAgICAgICAgIGlmICghbWVtb3J5Q2FjaGUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIG1lbW9yeSBzdG9yZSBmb3IgZmV0Y2ggY2FjaGVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1lbW9yeUNhY2hlID0gbmV3IExSVUNhY2hlKHtcbiAgICAgICAgICAgICAgICAgICAgbWF4OiBjdHgubWF4TWVtb3J5Q2FjaGVTaXplLFxuICAgICAgICAgICAgICAgICAgICBsZW5ndGggKHsgdmFsdWUgfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9KU09OX3N0cmluZ2lmeTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmtpbmQgPT09IFwiUkVESVJFQ1RcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZS5wcm9wcykubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5raW5kID09PSBcIklNQUdFXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhcmlhbnQgaW1hZ2Ugc2hvdWxkIG5vdCBiZSBpbmNyZW1lbnRhbC1jYWNoZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUua2luZCA9PT0gXCJGRVRDSFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlLmRhdGEgfHwgXCJcIikubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5raW5kID09PSBcIlJPVVRFXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuYm9keS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByb3VnaCBlc3RpbWF0ZSBvZiBzaXplIG9mIGNhY2hlIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaHRtbC5sZW5ndGggKyAoKChfSlNPTl9zdHJpbmdpZnkgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZS5wYWdlRGF0YSkpID09IG51bGwgPyB2b2lkIDAgOiBfSlNPTl9zdHJpbmdpZnkubGVuZ3RoKSB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5vdCB1c2luZyBtZW1vcnkgc3RvcmUgZm9yIGZldGNoIGNhY2hlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2V0UmVxdWVzdENhY2hlKCkge1xuICAgICAgICBtZW1vcnlDYWNoZSA9PSBudWxsID8gdm9pZCAwIDogbWVtb3J5Q2FjaGUucmVzZXQoKTtcbiAgICB9XG4gICAgYXN5bmMgcmV2YWxpZGF0ZVRhZyh0YWcpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwicmV2YWxpZGF0ZVRhZ1wiLCB0YWcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChEYXRlLm5vdygpIDwgcmF0ZUxpbWl0ZWRVbnRpbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJhdGUgbGltaXRlZCBcIiwgcmF0ZUxpbWl0ZWRVbnRpbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGAke3RoaXMuY2FjaGVFbmRwb2ludH0vdjEvc3VzcGVuc2UtY2FjaGUvcmV2YWxpZGF0ZT90YWdzPSR7dGFnfWAsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG5vdCBvbiBwdWJsaWMgdHlwZVxuICAgICAgICAgICAgICAgIG5leHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MjkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXRyeUFmdGVyID0gcmVzLmhlYWRlcnMuZ2V0KFwicmV0cnktYWZ0ZXJcIikgfHwgXCI2MDAwMFwiO1xuICAgICAgICAgICAgICAgIHJhdGVMaW1pdGVkVW50aWwgPSBEYXRlLm5vdygpICsgcGFyc2VJbnQocmV0cnlBZnRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtyZXMuc3RhdHVzfS5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYEZhaWxlZCB0byByZXZhbGlkYXRlIHRhZyAke3RhZ31gLCBlcnIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldCguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIGN0eCA9IHt9XSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0IHsgdGFncywgc29mdFRhZ3MsIGtpbmRIaW50LCBmZXRjaElkeCwgZmV0Y2hVcmwgfSA9IGN0eDtcbiAgICAgICAgaWYgKGtpbmRIaW50ICE9PSBcImZldGNoXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChEYXRlLm5vdygpIDwgcmF0ZUxpbWl0ZWRVbnRpbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJhdGUgbGltaXRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIC8vIG1lbW9yeSBjYWNoZSBpcyBjbGVhcmVkIGF0IHRoZSBlbmQgb2YgZWFjaCByZXF1ZXN0XG4gICAgICAgIC8vIHNvIHRoYXQgcmV2YWxpZGF0ZSBldmVudHMgYXJlIHB1bGxlZCBmcm9tIHVwc3RyZWFtXG4gICAgICAgIC8vIG9uIHN1Y2Nlc3NpdmUgcmVxdWVzdHNcbiAgICAgICAgbGV0IGRhdGEgPSBtZW1vcnlDYWNoZSA9PSBudWxsID8gdm9pZCAwIDogbWVtb3J5Q2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIC8vIGdldCBkYXRhIGZyb20gZmV0Y2ggY2FjaGVcbiAgICAgICAgaWYgKCFkYXRhICYmIHRoaXMuY2FjaGVFbmRwb2ludCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmV0Y2hQYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIGludGVybmFsOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBmZXRjaFR5cGU6IFwiY2FjaGUtZ2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIGZldGNoVXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2hJZHhcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGAke3RoaXMuY2FjaGVFbmRwb2ludH0vdjEvc3VzcGVuc2UtY2FjaGUvJHtrZXl9YCwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtDQUNIRV9GRVRDSF9VUkxfSEVBREVSXTogZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBbQ0FDSEVfVEFHU19IRUFERVJdOiAodGFncyA9PSBudWxsID8gdm9pZCAwIDogdGFncy5qb2luKFwiLFwiKSkgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFtORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVJdOiAoc29mdFRhZ3MgPT0gbnVsbCA/IHZvaWQgMCA6IHNvZnRUYWdzLmpvaW4oXCIsXCIpKSB8fCBcIlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IGZldGNoUGFyYW1zXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQyOSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXRyeUFmdGVyID0gcmVzLmhlYWRlcnMuZ2V0KFwicmV0cnktYWZ0ZXJcIikgfHwgXCI2MDAwMFwiO1xuICAgICAgICAgICAgICAgICAgICByYXRlTGltaXRlZFVudGlsID0gRGF0ZS5ub3coKSArIHBhcnNlSW50KHJldHJ5QWZ0ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgbm8gZmV0Y2ggY2FjaGUgZW50cnkgZm9yICR7a2V5fSwgZHVyYXRpb246ICR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgcmVzLnRleHQoKSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCByZXNwb25zZSBmcm9tIGNhY2hlICR7cmVzLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGVkID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNhY2hlZCB8fCBjYWNoZWQua2luZCAhPT0gXCJGRVRDSFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWcgJiYgY29uc29sZS5sb2coe1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgY2FjaGUgdmFsdWVgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGVTdGF0ZSA9IHJlcy5oZWFkZXJzLmdldChDQUNIRV9TVEFURV9IRUFERVIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFnZSA9IHJlcy5oZWFkZXJzLmdldChcImFnZVwiKTtcbiAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2FjaGVkLFxuICAgICAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIGFscmVhZHkgc3RhbGUgc2V0IGl0IHRvIGEgdGltZSBpbiB0aGUgcGFzdFxuICAgICAgICAgICAgICAgICAgICAvLyBpZiBub3QgZGVyaXZlIGxhc3QgbW9kaWZpZWQgZnJvbSBhZ2VcbiAgICAgICAgICAgICAgICAgICAgbGFzdE1vZGlmaWVkOiBjYWNoZVN0YXRlICE9PSBcImZyZXNoXCIgPyBEYXRlLm5vdygpIC0gQ0FDSEVfT05FX1lFQVIgOiBEYXRlLm5vdygpIC0gcGFyc2VJbnQoYWdlIHx8IFwiMFwiLCAxMCkgKiAxMDAwXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgZ290IGZldGNoIGNhY2hlIGVudHJ5IGZvciAke2tleX0sIGR1cmF0aW9uOiAke0RhdGUubm93KCkgLSBzdGFydH1tcywgc2l6ZTogJHtPYmplY3Qua2V5cyhjYWNoZWQpLmxlbmd0aH0sIGNhY2hlLXN0YXRlOiAke2NhY2hlU3RhdGV9IHRhZ3M6ICR7dGFncyA9PSBudWxsID8gdm9pZCAwIDogdGFncy5qb2luKFwiLFwiKX0gc29mdFRhZ3M6ICR7c29mdFRhZ3MgPT0gbnVsbCA/IHZvaWQgMCA6IHNvZnRUYWdzLmpvaW4oXCIsXCIpfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBtZW1vcnlDYWNoZSA9PSBudWxsID8gdm9pZCAwIDogbWVtb3J5Q2FjaGUuc2V0KGtleSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gdW5hYmxlIHRvIGdldCBkYXRhIGZyb20gZmV0Y2gtY2FjaGVcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZ2V0IGZyb20gZmV0Y2gtY2FjaGVgLCBlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YSB8fCBudWxsO1xuICAgIH1cbiAgICBhc3luYyBzZXQoLi4uYXJncykge1xuICAgICAgICBjb25zdCBba2V5LCBkYXRhLCBjdHhdID0gYXJncztcbiAgICAgICAgY29uc3QgeyBmZXRjaENhY2hlLCBmZXRjaElkeCwgZmV0Y2hVcmwsIHRhZ3MgfSA9IGN0eDtcbiAgICAgICAgaWYgKCFmZXRjaENhY2hlKSByZXR1cm47XG4gICAgICAgIGlmIChEYXRlLm5vdygpIDwgcmF0ZUxpbWl0ZWRVbnRpbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJhdGUgbGltaXRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBtZW1vcnlDYWNoZSA9PSBudWxsID8gdm9pZCAwIDogbWVtb3J5Q2FjaGUuc2V0KGtleSwge1xuICAgICAgICAgICAgdmFsdWU6IGRhdGEsXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IERhdGUubm93KClcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmNhY2hlRW5kcG9pbnQpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhICE9PSBudWxsICYmIFwicmV2YWxpZGF0ZVwiIGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJzW0NBQ0hFX1JFVkFMSURBVEVfSEVBREVSXSA9IGRhdGEucmV2YWxpZGF0ZS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGVhZGVyc1tDQUNIRV9SRVZBTElEQVRFX0hFQURFUl0gJiYgZGF0YSAhPT0gbnVsbCAmJiBcImRhdGFcIiBpbiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tDQUNIRV9DT05UUk9MX1ZBTFVFX0hFQURFUl0gPSBkYXRhLmRhdGEuaGVhZGVyc1tcImNhY2hlLWNvbnRyb2xcIl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIHNlbmQgdGhlIHRhZ3MgaW4gdGhlIGhlYWRlciBpbnN0ZWFkXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIGluIHRoZSBib2R5IGhlcmVcbiAgICAgICAgICAgICAgICAgICAgdGFnczogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzZXQgY2FjaGVcIiwga2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZmV0Y2hQYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIGludGVybmFsOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBmZXRjaFR5cGU6IFwiY2FjaGUtc2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIGZldGNoVXJsLFxuICAgICAgICAgICAgICAgICAgICBmZXRjaElkeFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goYCR7dGhpcy5jYWNoZUVuZHBvaW50fS92MS9zdXNwZW5zZS1jYWNoZS8ke2tleX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtDQUNIRV9GRVRDSF9VUkxfSEVBREVSXTogZmV0Y2hVcmwgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFtDQUNIRV9UQUdTX0hFQURFUl06ICh0YWdzID09IG51bGwgPyB2b2lkIDAgOiB0YWdzLmpvaW4oXCIsXCIpKSB8fCBcIlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IGZldGNoUGFyYW1zXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQyOSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXRyeUFmdGVyID0gcmVzLmhlYWRlcnMuZ2V0KFwicmV0cnktYWZ0ZXJcIikgfHwgXCI2MDAwMFwiO1xuICAgICAgICAgICAgICAgICAgICByYXRlTGltaXRlZFVudGlsID0gRGF0ZS5ub3coKSArIHBhcnNlSW50KHJldHJ5QWZ0ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlYnVnICYmIGNvbnNvbGUubG9nKGF3YWl0IHJlcy50ZXh0KCkpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgcmVzcG9uc2UgJHtyZXMuc3RhdHVzfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc3VjY2Vzc2Z1bGx5IHNldCB0byBmZXRjaC1jYWNoZSBmb3IgJHtrZXl9LCBkdXJhdGlvbjogJHtEYXRlLm5vdygpIC0gc3RhcnR9bXMsIHNpemU6ICR7Ym9keS5sZW5ndGh9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gdW5hYmxlIHRvIHNldCB0byBmZXRjaC1jYWNoZVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byB1cGRhdGUgZmV0Y2ggY2FjaGVgLCBlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mZXRjaC1jYWNoZS5qcy5tYXAiXSwibmFtZXMiOlsiTFJVQ2FjaGUiLCJDQUNIRV9PTkVfWUVBUiIsIk5FWFRfQ0FDSEVfU09GVF9UQUdTX0hFQURFUiIsInJhdGVMaW1pdGVkVW50aWwiLCJtZW1vcnlDYWNoZSIsIkNBQ0hFX1RBR1NfSEVBREVSIiwiQ0FDSEVfSEVBREVSU19IRUFERVIiLCJDQUNIRV9TVEFURV9IRUFERVIiLCJDQUNIRV9SRVZBTElEQVRFX0hFQURFUiIsIkNBQ0hFX0ZFVENIX1VSTF9IRUFERVIiLCJDQUNIRV9DT05UUk9MX1ZBTFVFX0hFQURFUiIsIkZldGNoQ2FjaGUiLCJpc0F2YWlsYWJsZSIsImN0eCIsIl9yZXF1ZXN0SGVhZGVycyIsInByb2Nlc3MiLCJlbnYiLCJTVVNQRU5TRV9DQUNIRV9VUkwiLCJjb25zdHJ1Y3RvciIsImRlYnVnIiwiTkVYVF9QUklWQVRFX0RFQlVHX0NBQ0hFIiwiaGVhZGVycyIsIm5ld0hlYWRlcnMiLCJKU09OIiwicGFyc2UiLCJrIiwic2NIb3N0Iiwic2NCYXNlUGF0aCIsIlNVU1BFTlNFX0NBQ0hFX0JBU0VQQVRIIiwiU1VTUEVOU0VfQ0FDSEVfQVVUSF9UT0tFTiIsImNhY2hlRW5kcG9pbnQiLCJjb25zb2xlIiwibG9nIiwibWF4TWVtb3J5Q2FjaGVTaXplIiwibWF4IiwibGVuZ3RoIiwidmFsdWUiLCJfSlNPTl9zdHJpbmdpZnkiLCJraW5kIiwic3RyaW5naWZ5IiwicHJvcHMiLCJFcnJvciIsImRhdGEiLCJib2R5IiwiaHRtbCIsInBhZ2VEYXRhIiwicmVzZXRSZXF1ZXN0Q2FjaGUiLCJyZXNldCIsInJldmFsaWRhdGVUYWciLCJ0YWciLCJEYXRlIiwibm93IiwicmVzIiwiZmV0Y2giLCJtZXRob2QiLCJuZXh0IiwiaW50ZXJuYWwiLCJzdGF0dXMiLCJyZXRyeUFmdGVyIiwiZ2V0IiwicGFyc2VJbnQiLCJvayIsImVyciIsIndhcm4iLCJhcmdzIiwia2V5IiwidGFncyIsInNvZnRUYWdzIiwia2luZEhpbnQiLCJmZXRjaElkeCIsImZldGNoVXJsIiwic3RhcnQiLCJmZXRjaFBhcmFtcyIsImZldGNoVHlwZSIsImpvaW4iLCJlcnJvciIsInRleHQiLCJjYWNoZWQiLCJqc29uIiwiY2FjaGVTdGF0ZSIsImFnZSIsImxhc3RNb2RpZmllZCIsIk9iamVjdCIsImtleXMiLCJzZXQiLCJmZXRjaENhY2hlIiwicmV2YWxpZGF0ZSIsInRvU3RyaW5nIiwidW5kZWZpbmVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/fetch-cache.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/file-system-cache.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/incremental-cache/file-system-cache.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FileSystemCache)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_lru_cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/lru-cache */ \"(ssr)/../../node_modules/next/dist/compiled/lru-cache/index.js\");\n/* harmony import */ var next_dist_compiled_lru_cache__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_lru_cache__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/lib/isomorphic/path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n\n\n\nlet memoryCache;\nlet tagsManifest;\nclass FileSystemCache {\n constructor(ctx){\n this.fs = ctx.fs;\n this.flushToDisk = ctx.flushToDisk;\n this.serverDistDir = ctx.serverDistDir;\n this.appDir = !!ctx._appDir;\n this.pagesDir = !!ctx._pagesDir;\n this.revalidatedTags = ctx.revalidatedTags;\n this.experimental = ctx.experimental;\n this.debug = !!process.env.NEXT_PRIVATE_DEBUG_CACHE;\n if (ctx.maxMemoryCacheSize && !memoryCache) {\n if (this.debug) {\n console.log(\"using memory store for fetch cache\");\n }\n memoryCache = new (next_dist_compiled_lru_cache__WEBPACK_IMPORTED_MODULE_0___default())({\n max: ctx.maxMemoryCacheSize,\n length ({ value }) {\n var _JSON_stringify;\n if (!value) {\n return 25;\n } else if (value.kind === \"REDIRECT\") {\n return JSON.stringify(value.props).length;\n } else if (value.kind === \"IMAGE\") {\n throw new Error(\"invariant image should not be incremental-cache\");\n } else if (value.kind === \"FETCH\") {\n return JSON.stringify(value.data || \"\").length;\n } else if (value.kind === \"ROUTE\") {\n return value.body.length;\n }\n // rough estimate of size of cache value\n return value.html.length + (((_JSON_stringify = JSON.stringify(value.pageData)) == null ? void 0 : _JSON_stringify.length) || 0);\n }\n });\n } else if (this.debug) {\n console.log(\"not using memory store for fetch cache\");\n }\n if (this.serverDistDir && this.fs) {\n this.tagsManifestPath = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().join(this.serverDistDir, \"..\", \"cache\", \"fetch-cache\", \"tags-manifest.json\");\n this.loadTagsManifest();\n }\n }\n resetRequestCache() {}\n loadTagsManifest() {\n if (!this.tagsManifestPath || !this.fs || tagsManifest) return;\n try {\n tagsManifest = JSON.parse(this.fs.readFileSync(this.tagsManifestPath, \"utf8\"));\n } catch (err) {\n tagsManifest = {\n version: 1,\n items: {}\n };\n }\n if (this.debug) console.log(\"loadTagsManifest\", tagsManifest);\n }\n async revalidateTag(tag) {\n if (this.debug) {\n console.log(\"revalidateTag\", tag);\n }\n // we need to ensure the tagsManifest is refreshed\n // since separate workers can be updating it at the same\n // time and we can't flush out of sync data\n this.loadTagsManifest();\n if (!tagsManifest || !this.tagsManifestPath) {\n return;\n }\n const data = tagsManifest.items[tag] || {};\n data.revalidatedAt = Date.now();\n tagsManifest.items[tag] = data;\n try {\n await this.fs.mkdir(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().dirname(this.tagsManifestPath));\n await this.fs.writeFile(this.tagsManifestPath, JSON.stringify(tagsManifest || {}));\n if (this.debug) {\n console.log(\"Updated tags manifest\", tagsManifest);\n }\n } catch (err) {\n console.warn(\"Failed to update tags manifest.\", err);\n }\n }\n async get(...args) {\n var _data_value, _data_value1;\n const [key, ctx = {}] = args;\n const { tags, softTags, kindHint } = ctx;\n let data = memoryCache == null ? void 0 : memoryCache.get(key);\n if (this.debug) {\n console.log(\"get\", key, tags, kindHint, !!data);\n }\n // let's check the disk for seed data\n if (!data && \"edge\" !== \"edge\") { var _data_value3, _data_value2; }\n if ((data == null ? void 0 : (_data_value = data.value) == null ? void 0 : _data_value.kind) === \"PAGE\") {\n var _data_value_headers;\n let cacheTags;\n const tagsHeader = (_data_value_headers = data.value.headers) == null ? void 0 : _data_value_headers[_lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_TAGS_HEADER];\n if (typeof tagsHeader === \"string\") {\n cacheTags = tagsHeader.split(\",\");\n }\n if (cacheTags == null ? void 0 : cacheTags.length) {\n this.loadTagsManifest();\n const isStale = cacheTags.some((tag)=>{\n var _tagsManifest_items_tag;\n return (tagsManifest == null ? void 0 : (_tagsManifest_items_tag = tagsManifest.items[tag]) == null ? void 0 : _tagsManifest_items_tag.revalidatedAt) && (tagsManifest == null ? void 0 : tagsManifest.items[tag].revalidatedAt) >= ((data == null ? void 0 : data.lastModified) || Date.now());\n });\n // we trigger a blocking validation if an ISR page\n // had a tag revalidated, if we want to be a background\n // revalidation instead we return data.lastModified = -1\n if (isStale) {\n data = undefined;\n }\n }\n }\n if (data && (data == null ? void 0 : (_data_value1 = data.value) == null ? void 0 : _data_value1.kind) === \"FETCH\") {\n this.loadTagsManifest();\n const combinedTags = [\n ...tags || [],\n ...softTags || []\n ];\n const wasRevalidated = combinedTags.some((tag)=>{\n var _tagsManifest_items_tag;\n if (this.revalidatedTags.includes(tag)) {\n return true;\n }\n return (tagsManifest == null ? void 0 : (_tagsManifest_items_tag = tagsManifest.items[tag]) == null ? void 0 : _tagsManifest_items_tag.revalidatedAt) && (tagsManifest == null ? void 0 : tagsManifest.items[tag].revalidatedAt) >= ((data == null ? void 0 : data.lastModified) || Date.now());\n });\n // When revalidate tag is called we don't return\n // stale data so it's updated right away\n if (wasRevalidated) {\n data = undefined;\n }\n }\n return data ?? null;\n }\n async set(...args) {\n const [key, data, ctx] = args;\n memoryCache == null ? void 0 : memoryCache.set(key, {\n value: data,\n lastModified: Date.now()\n });\n if (this.debug) {\n console.log(\"set\", key);\n }\n if (!this.flushToDisk) return;\n if ((data == null ? void 0 : data.kind) === \"ROUTE\") {\n const filePath = this.getFilePath(`${key}.body`, \"app\");\n await this.fs.mkdir(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().dirname(filePath));\n await this.fs.writeFile(filePath, data.body);\n const meta = {\n headers: data.headers,\n status: data.status,\n postponed: undefined\n };\n await this.fs.writeFile(filePath.replace(/\\.body$/, _lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_META_SUFFIX), JSON.stringify(meta, null, 2));\n return;\n }\n if ((data == null ? void 0 : data.kind) === \"PAGE\") {\n const isAppPath = typeof data.pageData === \"string\";\n const htmlPath = this.getFilePath(`${key}.html`, isAppPath ? \"app\" : \"pages\");\n await this.fs.mkdir(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().dirname(htmlPath));\n await this.fs.writeFile(htmlPath, data.html);\n await this.fs.writeFile(this.getFilePath(`${key}${isAppPath ? this.experimental.ppr ? _lib_constants__WEBPACK_IMPORTED_MODULE_2__.RSC_PREFETCH_SUFFIX : _lib_constants__WEBPACK_IMPORTED_MODULE_2__.RSC_SUFFIX : _lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_DATA_SUFFIX}`, isAppPath ? \"app\" : \"pages\"), isAppPath ? data.pageData : JSON.stringify(data.pageData));\n if (data.headers || data.status) {\n const meta = {\n headers: data.headers,\n status: data.status,\n postponed: data.postponed\n };\n await this.fs.writeFile(htmlPath.replace(/\\.html$/, _lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_META_SUFFIX), JSON.stringify(meta));\n }\n } else if ((data == null ? void 0 : data.kind) === \"FETCH\") {\n const filePath = this.getFilePath(key, \"fetch\");\n await this.fs.mkdir(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().dirname(filePath));\n await this.fs.writeFile(filePath, JSON.stringify({\n ...data,\n tags: ctx.tags\n }));\n }\n }\n detectFileKind(pathname) {\n if (!this.appDir && !this.pagesDir) {\n throw new Error(\"Invariant: Can't determine file path kind, no page directory enabled\");\n }\n // If app directory isn't enabled, then assume it's pages and avoid the fs\n // hit.\n if (!this.appDir && this.pagesDir) {\n return \"pages\";\n } else if (this.appDir && !this.pagesDir) {\n return \"app\";\n }\n // If both are enabled, we need to test each in order, starting with\n // `pages`.\n let filePath = this.getFilePath(pathname, \"pages\");\n if (this.fs.existsSync(filePath)) {\n return \"pages\";\n }\n filePath = this.getFilePath(pathname, \"app\");\n if (this.fs.existsSync(filePath)) {\n return \"app\";\n }\n throw new Error(`Invariant: Unable to determine file path kind for ${pathname}`);\n }\n getFilePath(pathname, kind) {\n switch(kind){\n case \"fetch\":\n // we store in .next/cache/fetch-cache so it can be persisted\n // across deploys\n return _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().join(this.serverDistDir, \"..\", \"cache\", \"fetch-cache\", pathname);\n case \"pages\":\n return _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().join(this.serverDistDir, \"pages\", pathname);\n case \"app\":\n return _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().join(this.serverDistDir, \"app\", pathname);\n default:\n throw new Error(\"Invariant: Can't determine file path kind\");\n }\n }\n} //# sourceMappingURL=file-system-cache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9pbmNyZW1lbnRhbC1jYWNoZS9maWxlLXN5c3RlbS1jYWNoZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBb0Q7QUFDRztBQUM4RTtBQUNySSxJQUFJTztBQUNKLElBQUlDO0FBQ1csTUFBTUM7SUFDakJDLFlBQVlDLEdBQUcsQ0FBQztRQUNaLElBQUksQ0FBQ0MsRUFBRSxHQUFHRCxJQUFJQyxFQUFFO1FBQ2hCLElBQUksQ0FBQ0MsV0FBVyxHQUFHRixJQUFJRSxXQUFXO1FBQ2xDLElBQUksQ0FBQ0MsYUFBYSxHQUFHSCxJQUFJRyxhQUFhO1FBQ3RDLElBQUksQ0FBQ0MsTUFBTSxHQUFHLENBQUMsQ0FBQ0osSUFBSUssT0FBTztRQUMzQixJQUFJLENBQUNDLFFBQVEsR0FBRyxDQUFDLENBQUNOLElBQUlPLFNBQVM7UUFDL0IsSUFBSSxDQUFDQyxlQUFlLEdBQUdSLElBQUlRLGVBQWU7UUFDMUMsSUFBSSxDQUFDQyxZQUFZLEdBQUdULElBQUlTLFlBQVk7UUFDcEMsSUFBSSxDQUFDQyxLQUFLLEdBQUcsQ0FBQyxDQUFDQyxRQUFRQyxHQUFHLENBQUNDLHdCQUF3QjtRQUNuRCxJQUFJYixJQUFJYyxrQkFBa0IsSUFBSSxDQUFDbEIsYUFBYTtZQUN4QyxJQUFJLElBQUksQ0FBQ2MsS0FBSyxFQUFFO2dCQUNaSyxRQUFRQyxHQUFHLENBQUM7WUFDaEI7WUFDQXBCLGNBQWMsSUFBSVAscUVBQVFBLENBQUM7Z0JBQ3ZCNEIsS0FBS2pCLElBQUljLGtCQUFrQjtnQkFDM0JJLFFBQVEsRUFBRUMsS0FBSyxFQUFFO29CQUNiLElBQUlDO29CQUNKLElBQUksQ0FBQ0QsT0FBTzt3QkFDUixPQUFPO29CQUNYLE9BQU8sSUFBSUEsTUFBTUUsSUFBSSxLQUFLLFlBQVk7d0JBQ2xDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQ0osTUFBTUssS0FBSyxFQUFFTixNQUFNO29CQUM3QyxPQUFPLElB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QUltQixNQUFNO1FBQ3BCO1FBQ0EsMEVBQTBFO1FBQzFFLE9BQU87UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDckIsTUFBTSxJQUFJLElBQUksQ0FBQ0UsUUFBUSxFQUFFO1lBQy9CLE9BQU87UUFDWCxPQUFPLElBQUksSUFBSSxDQUFDRixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUNFLFFBQVEsRUFBRTtZQUN0QyxPQUFPO1FBQ1g7UUFDQSxvRUFBb0U7UUFDcEUsV0FBVztRQUNYLElBQUltRCxXQUFXLElBQUksQ0FBQ0MsV0FBVyxDQUFDbUMsVUFBVTtRQUMxQyxJQUFJLElBQUksQ0FBQzVGLEVBQUUsQ0FBQzZGLFVBQVUsQ0FBQ3JDLFdBQVc7WUFDOUIsT0FBTztRQUNYO1FBQ0FBLFdBQVcsSUFBSSxDQUFDQyxXQUFXLENBQUNtQyxVQUFVO1FBQ3RDLElBQUksSUFBSSxDQUFDNUYsRUFBRSxDQUFDNkYsVUFBVSxDQUFDckMsV0FBVztZQUM5QixPQUFPO1FBQ1g7UUFDQSxNQUFNLElBQUloQyxNQUFNLENBQUMsa0RBQWtELEVBQUVvRSxTQUFTLENBQUM7SUFDbkY7SUFDQW5DLFlBQVltQyxRQUFRLEVBQUV4RSxJQUFJLEVBQUU7UUFDeEIsT0FBT0E7WUFDSCxLQUFLO2dCQUNELDZEQUE2RDtnQkFDN0QsaUJBQWlCO2dCQUNqQixPQUFPL0IsdUVBQVMsQ0FBQyxJQUFJLENBQUNhLGFBQWEsRUFBRSxNQUFNLFNBQVMsZUFBZTBGO1lBQ3ZFLEtBQUs7Z0JBQ0QsT0FBT3ZHLHVFQUFTLENBQUMsSUFBSSxDQUFDYSxhQUFhLEVBQUUsU0FBUzBGO1lBQ2xELEtBQUs7Z0JBQ0QsT0FBT3ZHLHVFQUFTLENBQUMsSUFBSSxDQUFDYSxhQUFhLEVBQUUsT0FBTzBGO1lBQ2hEO2dCQUNJLE1BQU0sSUFBSXBFLE1BQU07UUFDeEI7SUFDSjtBQUNKLEVBRUEsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL2luY3JlbWVudGFsLWNhY2hlL2ZpbGUtc3lzdGVtLWNhY2hlLmpzPzc5MTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExSVUNhY2hlIGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvbHJ1LWNhY2hlXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGhcIjtcbmltcG9ydCB7IE5FWFRfQ0FDSEVfVEFHU19IRUFERVIsIE5FWFRfREFUQV9TVUZGSVgsIE5FWFRfTUVUQV9TVUZGSVgsIFJTQ19QUkVGRVRDSF9TVUZGSVgsIFJTQ19TVUZGSVggfSBmcm9tIFwiLi4vLi4vLi4vbGliL2NvbnN0YW50c1wiO1xubGV0IG1lbW9yeUNhY2hlO1xubGV0IHRhZ3NNYW5pZmVzdDtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVTeXN0ZW1DYWNoZSB7XG4gICAgY29uc3RydWN0b3IoY3R4KXtcbiAgICAgICAgdGhpcy5mcyA9IGN0eC5mcztcbiAgICAgICAgdGhpcy5mbHVzaFRvRGlzayA9IGN0eC5mbHVzaFRvRGlzaztcbiAgICAgICAgdGhpcy5zZXJ2ZXJEaXN0RGlyID0gY3R4LnNlcnZlckRpc3REaXI7XG4gICAgICAgIHRoaXMuYXBwRGlyID0gISFjdHguX2FwcERpcjtcbiAgICAgICAgdGhpcy5wYWdlc0RpciA9ICEhY3R4Ll9wYWdlc0RpcjtcbiAgICAgICAgdGhpcy5yZXZhbGlkYXRlZFRhZ3MgPSBjdHgucmV2YWxpZGF0ZWRUYWdzO1xuICAgICAgICB0aGlzLmV4cGVyaW1lbnRhbCA9IGN0eC5leHBlcmltZW50YWw7XG4gICAgICAgIHRoaXMuZGVidWcgPSAhIXByb2Nlc3MuZW52Lk5FWFRfUFJJVkFURV9ERUJVR19DQUNIRTtcbiAgICAgICAgaWYgKGN0eC5tYXhNZW1vcnlDYWNoZVNpemUgJiYgIW1lbW9yeUNhY2hlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwidXNpbmcgbWVtb3J5IHN0b3JlIGZvciBmZXRjaCBjYWNoZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1lbW9yeUNhY2hlID0gbmV3IExSVUNhY2hlKHtcbiAgICAgICAgICAgICAgICBtYXg6IGN0eC5tYXhNZW1vcnlDYWNoZVNpemUsXG4gICAgICAgICAgICAgICAgbGVuZ3RoICh7IHZhbHVlIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9KU09OX3N0cmluZ2lmeTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI1O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmtpbmQgPT09IFwiUkVESVJFQ1RcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlLnByb3BzKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUua2luZCA9PT0gXCJJTUFHRVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhcmlhbnQgaW1hZ2Ugc2hvdWxkIG5vdCBiZSBpbmNyZW1lbnRhbC1jYWNoZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5raW5kID09PSBcIkZFVENIXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZS5kYXRhIHx8IFwiXCIpLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5raW5kID09PSBcIlJPVVRFXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5ib2R5Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyByb3VnaCBlc3RpbWF0ZSBvZiBzaXplIG9mIGNhY2hlIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5odG1sLmxlbmd0aCArICgoKF9KU09OX3N0cmluZ2lmeSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlLnBhZ2VEYXRhKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9KU09OX3N0cmluZ2lmeS5sZW5ndGgpIHx8IDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibm90IHVzaW5nIG1lbW9yeSBzdG9yZSBmb3IgZmV0Y2ggY2FjaGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2VydmVyRGlzdERpciAmJiB0aGlzLmZzKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ3NNYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4odGhpcy5zZXJ2ZXJEaXN0RGlyLCBcIi4uXCIsIFwiY2FjaGVcIiwgXCJmZXRjaC1jYWNoZVwiLCBcInRhZ3MtbWFuaWZlc3QuanNvblwiKTtcbiAgICAgICAgICAgIHRoaXMubG9hZFRhZ3NNYW5pZmVzdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2V0UmVxdWVzdENhY2hlKCkge31cbiAgICBsb2FkVGFnc01hbmlmZXN0KCkge1xuICAgICAgICBpZiAoIXRoaXMudGFnc01hbmlmZXN0UGF0aCB8fCAhdGhpcy5mcyB8fCB0YWdzTWFuaWZlc3QpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRhZ3NNYW5pZmVzdCA9IEpTT04ucGFyc2UodGhpcy5mcy5yZWFkRmlsZVN5bmModGhpcy50YWdzTWFuaWZlc3RQYXRoLCBcInV0ZjhcIikpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRhZ3NNYW5pZmVzdCA9IHtcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiB7fVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5sb2coXCJsb2FkVGFnc01hbmlmZXN0XCIsIHRhZ3NNYW5pZmVzdCk7XG4gICAgfVxuICAgIGFzeW5jIHJldmFsaWRhdGVUYWcodGFnKSB7XG4gICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInJldmFsaWRhdGVUYWdcIiwgdGFnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSBuZWVkIHRvIGVuc3VyZSB0aGUgdGFnc01hbmlmZXN0IGlzIHJlZnJlc2hlZFxuICAgICAgICAvLyBzaW5jZSBzZXBhcmF0ZSB3b3JrZXJzIGNhbiBiZSB1cGRhdGluZyBpdCBhdCB0aGUgc2FtZVxuICAgICAgICAvLyB0aW1lIGFuZCB3ZSBjYW4ndCBmbHVzaCBvdXQgb2Ygc3luYyBkYXRhXG4gICAgICAgIHRoaXMubG9hZFRhZ3NNYW5pZmVzdCgpO1xuICAgICAgICBpZiAoIXRhZ3NNYW5pZmVzdCB8fCAhdGhpcy50YWdzTWFuaWZlc3RQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IHRhZ3NNYW5pZmVzdC5pdGVtc1t0YWddIHx8IHt9O1xuICAgICAgICBkYXRhLnJldmFsaWRhdGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICB0YWdzTWFuaWZlc3QuaXRlbXNbdGFnXSA9IGRhdGE7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmZzLm1rZGlyKHBhdGguZGlybmFtZSh0aGlzLnRhZ3NNYW5pZmVzdFBhdGgpKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZnMud3JpdGVGaWxlKHRoaXMudGFnc01hbmlmZXN0UGF0aCwgSlNPTi5zdHJpbmdpZnkodGFnc01hbmlmZXN0IHx8IHt9KSk7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiVXBkYXRlZCB0YWdzIG1hbmlmZXN0XCIsIHRhZ3NNYW5pZmVzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiRmFpbGVkIHRvIHVwZGF0ZSB0YWdzIG1hbmlmZXN0LlwiLCBlcnIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldCguLi5hcmdzKSB7XG4gICAgICAgIHZhciBfZGF0YV92YWx1ZSwgX2RhdGFfdmFsdWUxO1xuICAgICAgICBjb25zdCBba2V5LCBjdHggPSB7fV0gPSBhcmdzO1xuICAgICAgICBjb25zdCB7IHRhZ3MsIHNvZnRUYWdzLCBraW5kSGludCB9ID0gY3R4O1xuICAgICAgICBsZXQgZGF0YSA9IG1lbW9yeUNhY2hlID09IG51bGwgPyB2b2lkIDAgOiBtZW1vcnlDYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZ2V0XCIsIGtleSwgdGFncywga2luZEhpbnQsICEhZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbGV0J3MgY2hlY2sgdGhlIGRpc2sgZm9yIHNlZWQgZGF0YVxuICAgICAgICBpZiAoIWRhdGEgJiYgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZ2V0RmlsZVBhdGgoYCR7a2V5fS5ib2R5YCwgXCJhcHBcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZURhdGEgPSBhd2FpdCB0aGlzLmZzLnJlYWRGaWxlKGZpbGVQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG10aW1lIH0gPSBhd2FpdCB0aGlzLmZzLnN0YXQoZmlsZVBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1ldGEgPSBKU09OLnBhcnNlKGF3YWl0IHRoaXMuZnMucmVhZEZpbGUoZmlsZVBhdGgucmVwbGFjZSgvXFwuYm9keSQvLCBORVhUX01FVEFfU1VGRklYKSwgXCJ1dGY4XCIpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWNoZUVudHJ5ID0ge1xuICAgICAgICAgICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IG10aW1lLmdldFRpbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IFwiUk9VVEVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IGZpbGVEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogbWV0YS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBtZXRhLnN0YXR1c1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVFbnRyeTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIC8vIG5vIC5tZXRhIGRhdGEgZm9yIHRoZSByZWxhdGVkIGtleVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIGZpbGUga2luZCBpZiB3ZSBkaWRuJ3Qga25vdyBpdCBhbHJlYWR5LlxuICAgICAgICAgICAgICAgIGxldCBraW5kID0ga2luZEhpbnQ7XG4gICAgICAgICAgICAgICAgaWYgKCFraW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQgPSB0aGlzLmRldGVjdEZpbGVLaW5kKGAke2tleX0uaHRtbGApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBpc0FwcFBhdGggPSBraW5kID09PSBcImFwcFwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aChraW5kID09PSBcImZldGNoXCIgPyBrZXkgOiBgJHtrZXl9Lmh0bWxgLCBraW5kKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlRGF0YSA9IGF3YWl0IHRoaXMuZnMucmVhZEZpbGUoZmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG10aW1lIH0gPSBhd2FpdCB0aGlzLmZzLnN0YXQoZmlsZVBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChraW5kID09PSBcImZldGNoXCIgJiYgdGhpcy5mbHVzaFRvRGlzaykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2RhdGFfdmFsdWUyO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0TW9kaWZpZWQgPSBtdGltZS5nZXRUaW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBKU09OLnBhcnNlKGZpbGVEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RNb2RpZmllZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwYXJzZWREYXRhXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmICgoKF9kYXRhX3ZhbHVlMiA9IGRhdGEudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfZGF0YV92YWx1ZTIua2luZCkgPT09IFwiRkVUQ0hcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9kYXRhX3ZhbHVlMztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlZFRhZ3MgPSAoX2RhdGFfdmFsdWUzID0gZGF0YS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kYXRhX3ZhbHVlMy50YWdzO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIHN0b3JlZCB0YWdzIGlmIGEgbmV3IG9uZSBpcyBiZWluZyBhZGRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgd2hlbiB3ZSBjYW4gc2VuZCB0aGUgdGFnc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmlhIGhlYWRlciBvbiBHRVQgc2FtZSBhcyBTRVRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHRhZ3MgPT0gbnVsbCA/IHZvaWQgMCA6IHRhZ3MuZXZlcnkoKHRhZyk9PnN0b3JlZFRhZ3MgPT0gbnVsbCA/IHZvaWQgMCA6IHN0b3JlZFRhZ3MuaW5jbHVkZXModGFnKSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0YWdzIHZzIHN0b3JlZFRhZ3MgbWlzbWF0Y2hcIiwgdGFncywgc3RvcmVkVGFncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0KGtleSwgZGF0YS52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlRGF0YSA9IGlzQXBwUGF0aCA/IGF3YWl0IHRoaXMuZnMucmVhZEZpbGUodGhpcy5nZXRGaWxlUGF0aChgJHtrZXl9JHt0aGlzLmV4cGVyaW1lbnRhbC5wcHIgPyBSU0NfUFJFRkVUQ0hfU1VGRklYIDogUlNDX1NVRkZJWH1gLCBcImFwcFwiKSwgXCJ1dGY4XCIpIDogSlNPTi5wYXJzZShhd2FpdCB0aGlzLmZzLnJlYWRGaWxlKHRoaXMuZ2V0RmlsZVBhdGgoYCR7a2V5fSR7TkVYVF9EQVRBX1NVRkZJWH1gLCBcInBhZ2VzXCIpLCBcInV0ZjhcIikpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbWV0YTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXBwUGF0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhID0gSlNPTi5wYXJzZShhd2FpdCB0aGlzLmZzLnJlYWRGaWxlKGZpbGVQYXRoLnJlcGxhY2UoL1xcLmh0bWwkLywgTkVYVF9NRVRBX1NVRkZJWCksIFwidXRmOFwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IG10aW1lLmdldFRpbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogXCJQQUdFXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogZmlsZURhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdHBvbmVkOiBtZXRhID09IG51bGwgPyB2b2lkIDAgOiBtZXRhLnBvc3Rwb25lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBtZXRhID09IG51bGwgPyB2b2lkIDAgOiBtZXRhLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBtZXRhID09IG51bGwgPyB2b2lkIDAgOiBtZXRhLnN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBtZW1vcnlDYWNoZSA9PSBudWxsID8gdm9pZCAwIDogbWVtb3J5Q2FjaGUuc2V0KGtleSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgLy8gdW5hYmxlIHRvIGdldCBkYXRhIGZyb20gZGlza1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogKF9kYXRhX3ZhbHVlID0gZGF0YS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kYXRhX3ZhbHVlLmtpbmQpID09PSBcIlBBR0VcIikge1xuICAgICAgICAgICAgdmFyIF9kYXRhX3ZhbHVlX2hlYWRlcnM7XG4gICAgICAgICAgICBsZXQgY2FjaGVUYWdzO1xuICAgICAgICAgICAgY29uc3QgdGFnc0hlYWRlciA9IChfZGF0YV92YWx1ZV9oZWFkZXJzID0gZGF0YS52YWx1ZS5oZWFkZXJzKSA9PSBudWxsID8gdm9pZCAwIDogX2RhdGFfdmFsdWVfaGVhZGVyc1tORVhUX0NBQ0hFX1RBR1NfSEVBREVSXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGFnc0hlYWRlciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNhY2hlVGFncyA9IHRhZ3NIZWFkZXIuc3BsaXQoXCIsXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhY2hlVGFncyA9PSBudWxsID8gdm9pZCAwIDogY2FjaGVUYWdzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZFRhZ3NNYW5pZmVzdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU3RhbGUgPSBjYWNoZVRhZ3Muc29tZSgodGFnKT0+e1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RhZ3NNYW5pZmVzdF9pdGVtc190YWc7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodGFnc01hbmlmZXN0ID09IG51bGwgPyB2b2lkIDAgOiAoX3RhZ3NNYW5pZmVzdF9pdGVtc190YWcgPSB0YWdzTWFuaWZlc3QuaXRlbXNbdGFnXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90YWdzTWFuaWZlc3RfaXRlbXNfdGFnLnJldmFsaWRhdGVkQXQpICYmICh0YWdzTWFuaWZlc3QgPT0gbnVsbCA/IHZvaWQgMCA6IHRhZ3NNYW5pZmVzdC5pdGVtc1t0YWddLnJldmFsaWRhdGVkQXQpID49ICgoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogZGF0YS5sYXN0TW9kaWZpZWQpIHx8IERhdGUubm93KCkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIHdlIHRyaWdnZXIgYSBibG9ja2luZyB2YWxpZGF0aW9uIGlmIGFuIElTUiBwYWdlXG4gICAgICAgICAgICAgICAgLy8gaGFkIGEgdGFnIHJldmFsaWRhdGVkLCBpZiB3ZSB3YW50IHRvIGJlIGEgYmFja2dyb3VuZFxuICAgICAgICAgICAgICAgIC8vIHJldmFsaWRhdGlvbiBpbnN0ZWFkIHdlIHJldHVybiBkYXRhLmxhc3RNb2RpZmllZCA9IC0xXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEgJiYgKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IChfZGF0YV92YWx1ZTEgPSBkYXRhLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2RhdGFfdmFsdWUxLmtpbmQpID09PSBcIkZFVENIXCIpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZFRhZ3NNYW5pZmVzdCgpO1xuICAgICAgICAgICAgY29uc3QgY29tYmluZWRUYWdzID0gW1xuICAgICAgICAgICAgICAgIC4uLnRhZ3MgfHwgW10sXG4gICAgICAgICAgICAgICAgLi4uc29mdFRhZ3MgfHwgW11cbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjb25zdCB3YXNSZXZhbGlkYXRlZCA9IGNvbWJpbmVkVGFncy5zb21lKCh0YWcpPT57XG4gICAgICAgICAgICAgICAgdmFyIF90YWdzTWFuaWZlc3RfaXRlbXNfdGFnO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJldmFsaWRhdGVkVGFncy5pbmNsdWRlcyh0YWcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHRhZ3NNYW5pZmVzdCA9PSBudWxsID8gdm9pZCAwIDogKF90YWdzTWFuaWZlc3RfaXRlbXNfdGFnID0gdGFnc01hbmlmZXN0Lml0ZW1zW3RhZ10pID09IG51bGwgPyB2b2lkIDAgOiBfdGFnc01hbmlmZXN0X2l0ZW1zX3RhZy5yZXZhbGlkYXRlZEF0KSAmJiAodGFnc01hbmlmZXN0ID09IG51bGwgPyB2b2lkIDAgOiB0YWdzTWFuaWZlc3QuaXRlbXNbdGFnXS5yZXZhbGlkYXRlZEF0KSA+PSAoKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGRhdGEubGFzdE1vZGlmaWVkKSB8fCBEYXRlLm5vdygpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gV2hlbiByZXZhbGlkYXRlIHRhZyBpcyBjYWxsZWQgd2UgZG9uJ3QgcmV0dXJuXG4gICAgICAgICAgICAvLyBzdGFsZSBkYXRhIHNvIGl0J3MgdXBkYXRlZCByaWdodCBhd2F5XG4gICAgICAgICAgICBpZiAod2FzUmV2YWxpZGF0ZWQpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhID8/IG51bGw7XG4gICAgfVxuICAgIGFzeW5jIHNldCguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIGRhdGEsIGN0eF0gPSBhcmdzO1xuICAgICAgICBtZW1vcnlDYWNoZSA9PSBudWxsID8gdm9pZCAwIDogbWVtb3J5Q2FjaGUuc2V0KGtleSwge1xuICAgICAgICAgICAgdmFsdWU6IGRhdGEsXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IERhdGUubm93KClcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInNldFwiLCBrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5mbHVzaFRvRGlzaykgcmV0dXJuO1xuICAgICAgICBpZiAoKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGRhdGEua2luZCkgPT09IFwiUk9VVEVcIikge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKGAke2tleX0uYm9keWAsIFwiYXBwXCIpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5mcy5ta2RpcihwYXRoLmRpcm5hbWUoZmlsZVBhdGgpKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZnMud3JpdGVGaWxlKGZpbGVQYXRoLCBkYXRhLmJvZHkpO1xuICAgICAgICAgICAgY29uc3QgbWV0YSA9IHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBkYXRhLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiBkYXRhLnN0YXR1cyxcbiAgICAgICAgICAgICAgICBwb3N0cG9uZWQ6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZnMud3JpdGVGaWxlKGZpbGVQYXRoLnJlcGxhY2UoL1xcLmJvZHkkLywgTkVYVF9NRVRBX1NVRkZJWCksIEpTT04uc3RyaW5naWZ5KG1ldGEsIG51bGwsIDIpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGRhdGEua2luZCkgPT09IFwiUEFHRVwiKSB7XG4gICAgICAgICAgICBjb25zdCBpc0FwcFBhdGggPSB0eXBlb2YgZGF0YS5wYWdlRGF0YSA9PT0gXCJzdHJpbmdcIjtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxQYXRoID0gdGhpcy5nZXRGaWxlUGF0aChgJHtrZXl9Lmh0bWxgLCBpc0FwcFBhdGggPyBcImFwcFwiIDogXCJwYWdlc1wiKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZnMubWtkaXIocGF0aC5kaXJuYW1lKGh0bWxQYXRoKSk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmZzLndyaXRlRmlsZShodG1sUGF0aCwgZGF0YS5odG1sKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZnMud3JpdGVGaWxlKHRoaXMuZ2V0RmlsZVBhdGgoYCR7a2V5fSR7aXNBcHBQYXRoID8gdGhpcy5leHBlcmltZW50YWwucHByID8gUlNDX1BSRUZFVENIX1NVRkZJWCA6IFJTQ19TVUZGSVggOiBORVhUX0RBVEFfU1VGRklYfWAsIGlzQXBwUGF0aCA/IFwiYXBwXCIgOiBcInBhZ2VzXCIpLCBpc0FwcFBhdGggPyBkYXRhLnBhZ2VEYXRhIDogSlNPTi5zdHJpbmdpZnkoZGF0YS5wYWdlRGF0YSkpO1xuICAgICAgICAgICAgaWYgKGRhdGEuaGVhZGVycyB8fCBkYXRhLnN0YXR1cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IGRhdGEuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBkYXRhLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgcG9zdHBvbmVkOiBkYXRhLnBvc3Rwb25lZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mcy53cml0ZUZpbGUoaHRtbFBhdGgucmVwbGFjZSgvXFwuaHRtbCQvLCBORVhUX01FVEFfU1VGRklYKSwgSlNPTi5zdHJpbmdpZnkobWV0YSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKChkYXRhID09IG51bGwgPyB2b2lkIDAgOiBkYXRhLmtpbmQpID09PSBcIkZFVENIXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aChrZXksIFwiZmV0Y2hcIik7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmZzLm1rZGlyKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5mcy53cml0ZUZpbGUoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgIHRhZ3M6IGN0eC50YWdzXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGV0ZWN0RmlsZUtpbmQocGF0aG5hbWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFwcERpciAmJiAhdGhpcy5wYWdlc0Rpcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiBDYW4ndCBkZXRlcm1pbmUgZmlsZSBwYXRoIGtpbmQsIG5vIHBhZ2UgZGlyZWN0b3J5IGVuYWJsZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgYXBwIGRpcmVjdG9yeSBpc24ndCBlbmFibGVkLCB0aGVuIGFzc3VtZSBpdCdzIHBhZ2VzIGFuZCBhdm9pZCB0aGUgZnNcbiAgICAgICAgLy8gaGl0LlxuICAgICAgICBpZiAoIXRoaXMuYXBwRGlyICYmIHRoaXMucGFnZXNEaXIpIHtcbiAgICAgICAgICAgIHJldHVybiBcInBhZ2VzXCI7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hcHBEaXIgJiYgIXRoaXMucGFnZXNEaXIpIHtcbiAgICAgICAgICAgIHJldHVybiBcImFwcFwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGJvdGggYXJlIGVuYWJsZWQsIHdlIG5lZWQgdG8gdGVzdCBlYWNoIGluIG9yZGVyLCBzdGFydGluZyB3aXRoXG4gICAgICAgIC8vIGBwYWdlc2AuXG4gICAgICAgIGxldCBmaWxlUGF0aCA9IHRoaXMuZ2V0RmlsZVBhdGgocGF0aG5hbWUsIFwicGFnZXNcIik7XG4gICAgICAgIGlmICh0aGlzLmZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJwYWdlc1wiO1xuICAgICAgICB9XG4gICAgICAgIGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aChwYXRobmFtZSwgXCJhcHBcIik7XG4gICAgICAgIGlmICh0aGlzLmZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJhcHBcIjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFyaWFudDogVW5hYmxlIHRvIGRldGVybWluZSBmaWxlIHBhdGgga2luZCBmb3IgJHtwYXRobmFtZX1gKTtcbiAgICB9XG4gICAgZ2V0RmlsZVBhdGgocGF0aG5hbWUsIGtpbmQpIHtcbiAgICAgICAgc3dpdGNoKGtpbmQpe1xuICAgICAgICAgICAgY2FzZSBcImZldGNoXCI6XG4gICAgICAgICAgICAgICAgLy8gd2Ugc3RvcmUgaW4gLm5leHQvY2FjaGUvZmV0Y2gtY2FjaGUgc28gaXQgY2FuIGJlIHBlcnNpc3RlZFxuICAgICAgICAgICAgICAgIC8vIGFjcm9zcyBkZXBsb3lzXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGguam9pbih0aGlzLnNlcnZlckRpc3REaXIsIFwiLi5cIiwgXCJjYWNoZVwiLCBcImZldGNoLWNhY2hlXCIsIHBhdGhuYW1lKTtcbiAgICAgICAgICAgIGNhc2UgXCJwYWdlc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXRoLmpvaW4odGhpcy5zZXJ2ZXJEaXN0RGlyLCBcInBhZ2VzXCIsIHBhdGhuYW1lKTtcbiAgICAgICAgICAgIGNhc2UgXCJhcHBcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGF0aC5qb2luKHRoaXMuc2VydmVyRGlzdERpciwgXCJhcHBcIiwgcGF0aG5hbWUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IENhbid0IGRldGVybWluZSBmaWxlIHBhdGgga2luZFwiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsZS1zeXN0ZW0tY2FjaGUuanMubWFwIl0sIm5hbWVzIjpbIkxSVUNhY2hlIiwicGF0aCIsIk5FWFRfQ0FDSEVfVEFHU19IRUFERVIiLCJORVhUX0RBVEFfU1VGRklYIiwiTkVYVF9NRVRBX1NVRkZJWCIsIlJTQ19QUkVGRVRDSF9TVUZGSVgiLCJSU0NfU1VGRklYIiwibWVtb3J5Q2FjaGUiLCJ0YWdzTWFuaWZlc3QiLCJGaWxlU3lzdGVtQ2FjaGUiLCJjb25zdHJ1Y3RvciIsImN0eCIsImZzIiwiZmx1c2hUb0Rpc2siLCJzZXJ2ZXJEaXN0RGlyIiwiYXBwRGlyIiwiX2FwcERpciIsInBhZ2VzRGlyIiwiX3BhZ2VzRGlyIiwicmV2YWxpZGF0ZWRUYWdzIiwiZXhwZXJpbWVudGFsIiwiZGVidWciLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9QUklWQVRFX0RFQlVHX0NBQ0hFIiwibWF4TWVtb3J5Q2FjaGVTaXplIiwiY29uc29sZSIsImxvZyIsIm1heCIsImxlbmd0aCIsInZhbHVlIiwiX0pTT05fc3RyaW5naWZ5Iiwia2luZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJwcm9wcyIsIkVycm9yIiwiZGF0YSIsImJvZHkiLCJodG1sIiwicGFnZURhdGEiLCJ0YWdzTWFuaWZlc3RQYXRoIiwiam9pbiIsImxvYWRUYWdzTWFuaWZlc3QiLCJyZXNldFJlcXVlc3RDYWNoZSIsInBhcnNlIiwicmVhZEZpbGVTeW5jIiwiZXJyIiwidmVyc2lvbiIsIml0ZW1zIiwicmV2YWxpZGF0ZVRhZyIsInRhZyIsInJldmFsaWRhdGVkQXQiLCJEYXRlIiwibm93IiwibWtkaXIiLCJkaXJuYW1lIiwid3JpdGVGaWxlIiwid2FybiIsImdldCIsImFyZ3MiLCJfZGF0YV92YWx1ZSIsIl9kYXRhX3ZhbHVlMSIsImtleSIsInRhZ3MiLCJzb2Z0VGFncyIsImtpbmRIaW50IiwiTkVYVF9SVU5USU1FIiwiZmlsZVBhdGgiLCJnZXRGaWxlUGF0aCIsImZpbGVEYXRhIiwicmVhZEZpbGUiLCJtdGltZSIsInN0YXQiLCJtZXRhIiwicmVwbGFjZSIsImNhY2hlRW50cnkiLCJsYXN0TW9kaWZpZWQiLCJnZXRUaW1lIiwiaGVhZGVycyIsInN0YXR1cyIsIl8iLCJkZXRlY3RGaWxlS2luZCIsImlzQXBwUGF0aCIsIl9kYXRhX3ZhbHVlMiIsInBhcnNlZERhdGEiLCJfZGF0YV92YWx1ZTMiLCJzdG9yZWRUYWdzIiwiZXZlcnkiLCJpbmNsdWRlcyIsInNldCIsInBwciIsInBvc3Rwb25lZCIsIl9kYXRhX3ZhbHVlX2hlYWRlcnMiLCJjYWNoZVRhZ3MiLCJ0YWdzSGVhZGVyIiwic3BsaXQiLCJpc1N0YWxlIiwic29tZSIsIl90YWdzTWFuaWZlc3RfaXRlbXNfdGFnIiwidW5kZWZpbmVkIiwiY29tYmluZWRUYWdzIiwid2FzUmV2YWxpZGF0ZWQiLCJodG1sUGF0aCIsInBhdGhuYW1lIiwiZXhpc3RzU3luYyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/file-system-cache.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/index.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/incremental-cache/index.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CacheHandler: () => (/* binding */ CacheHandler),\n/* harmony export */ IncrementalCache: () => (/* binding */ IncrementalCache)\n/* harmony export */ });\n/* harmony import */ var _fetch_cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fetch-cache */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/fetch-cache.js\");\n/* harmony import */ var _file_system_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./file-system-cache */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/file-system-cache.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../shared/lib/isomorphic/path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _shared_lib_page_path_normalize_page_path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../shared/lib/page-path/normalize-page-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-page-path.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n\n\n\n\n\nfunction toRoute(pathname) {\n return pathname.replace(/\\/$/, \"\").replace(/\\/index$/, \"\") || \"/\";\n}\nclass CacheHandler {\n // eslint-disable-next-line\n constructor(_ctx){}\n async get(..._args) {\n return {};\n }\n async set(..._args) {}\n async revalidateTag(_tag) {}\n resetRequestCache() {}\n}\nclass IncrementalCache {\n constructor({ fs, dev, appDir, pagesDir, flushToDisk, fetchCache, minimalMode, serverDistDir, requestHeaders, requestProtocol, maxMemoryCacheSize, getPrerenderManifest, fetchCacheKeyPrefix, CurCacheHandler, allowedRevalidateHeaderKeys, experimental }){\n var _this_prerenderManifest_preview, _this_prerenderManifest, _this_prerenderManifest_preview1, _this_prerenderManifest1;\n this.locks = new Map();\n this.unlocks = new Map();\n const debug = !!process.env.NEXT_PRIVATE_DEBUG_CACHE;\n this.hasCustomCacheHandler = Boolean(CurCacheHandler);\n if (!CurCacheHandler) {\n if (fs && serverDistDir) {\n if (debug) {\n console.log(\"using filesystem cache handler\");\n }\n CurCacheHandler = _file_system_cache__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n }\n if (_fetch_cache__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isAvailable({\n _requestHeaders: requestHeaders\n }) && minimalMode && fetchCache) {\n if (debug) {\n console.log(\"using fetch cache handler\");\n }\n CurCacheHandler = _fetch_cache__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n }\n } else if (debug) {\n console.log(\"using custom cache handler\", CurCacheHandler.name);\n }\n if (process.env.__NEXT_TEST_MAX_ISR_CACHE) {\n // Allow cache size to be overridden for testing purposes\n maxMemoryCacheSize = parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE, 10);\n }\n this.dev = dev;\n // this is a hack to avoid Webpack knowing this is equal to this.minimalMode\n // because we replace this.minimalMode to true in production bundles.\n const minimalModeKey = \"minimalMode\";\n this[minimalModeKey] = minimalMode;\n this.requestHeaders = requestHeaders;\n this.requestProtocol = requestProtocol;\n this.allowedRevalidateHeaderKeys = allowedRevalidateHeaderKeys;\n this.prerenderManifest = getPrerenderManifest();\n this.fetchCacheKeyPrefix = fetchCacheKeyPrefix;\n let revalidatedTags = [];\n if (requestHeaders[_lib_constants__WEBPACK_IMPORTED_MODULE_4__.PRERENDER_REVALIDATE_HEADER] === ((_this_prerenderManifest = this.prerenderManifest) == null ? void 0 : (_this_prerenderManifest_preview = _this_prerenderManifest.preview) == null ? void 0 : _this_prerenderManifest_preview.previewModeId)) {\n this.isOnDemandRevalidate = true;\n }\n if (minimalMode && typeof requestHeaders[_lib_constants__WEBPACK_IMPORTED_MODULE_4__.NEXT_CACHE_REVALIDATED_TAGS_HEADER] === \"string\" && requestHeaders[_lib_constants__WEBPACK_IMPORTED_MODULE_4__.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER] === ((_this_prerenderManifest1 = this.prerenderManifest) == null ? void 0 : (_this_prerenderManifest_preview1 = _this_prerenderManifest1.preview) == null ? void 0 : _this_prerenderManifest_preview1.previewModeId)) {\n revalidatedTags = requestHeaders[_lib_constants__WEBPACK_IMPORTED_MODULE_4__.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(\",\");\n }\n if (CurCacheHandler) {\n this.cacheHandler = new CurCacheHandler({\n dev,\n fs,\n flushToDisk,\n serverDistDir,\n revalidatedTags,\n maxMemoryCacheSize,\n _pagesDir: !!pagesDir,\n _appDir: !!appDir,\n _requestHeaders: requestHeaders,\n fetchCacheKeyPrefix,\n experimental\n });\n }\n }\n calculateRevalidate(pathname, fromTime, dev) {\n // in development we don't have a prerender-manifest\n // and default to always revalidating to allow easier debugging\n if (dev) return new Date().getTime() - 1000;\n // if an entry isn't present in routes we fallback to a default\n // of revalidating after 1 second\n const { initialRevalidateSeconds } = this.prerenderManifest.routes[toRoute(pathname)] || {\n initialRevalidateSeconds: 1\n };\n const revalidateAfter = typeof initialRevalidateSeconds === \"number\" ? initialRevalidateSeconds * 1000 + fromTime : initialRevalidateSeconds;\n return revalidateAfter;\n }\n _getPathname(pathname, fetchCache) {\n return fetchCache ? pathname : (0,_shared_lib_page_path_normalize_page_path__WEBPACK_IMPORTED_MODULE_3__.normalizePagePath)(pathname);\n }\n resetRequestCache() {\n var _this_cacheHandler_resetRequestCache, _this_cacheHandler;\n (_this_cacheHandler = this.cacheHandler) == null ? void 0 : (_this_cacheHandler_resetRequestCache = _this_cacheHandler.resetRequestCache) == null ? void 0 : _this_cacheHandler_resetRequestCache.call(_this_cacheHandler);\n }\n async unlock(cacheKey) {\n const unlock = this.unlocks.get(cacheKey);\n if (unlock) {\n unlock();\n this.locks.delete(cacheKey);\n this.unlocks.delete(cacheKey);\n }\n }\n async lock(cacheKey) {\n if (process.env.__NEXT_INCREMENTAL_CACHE_IPC_PORT && process.env.__NEXT_INCREMENTAL_CACHE_IPC_KEY && \"edge\" !== \"edge\") {}\n let unlockNext = ()=>Promise.resolve();\n const existingLock = this.locks.get(cacheKey);\n if (existingLock) {\n await existingLock;\n } else {\n const newLock = new Promise((resolve)=>{\n unlockNext = async ()=>{\n resolve();\n };\n });\n this.locks.set(cacheKey, newLock);\n this.unlocks.set(cacheKey, unlockNext);\n }\n return unlockNext;\n }\n async revalidateTag(tag) {\n var _this_cacheHandler_revalidateTag, _this_cacheHandler;\n if (process.env.__NEXT_INCREMENTAL_CACHE_IPC_PORT && process.env.__NEXT_INCREMENTAL_CACHE_IPC_KEY && \"edge\" !== \"edge\") {}\n return (_this_cacheHandler = this.cacheHandler) == null ? void 0 : (_this_cacheHandler_revalidateTag = _this_cacheHandler.revalidateTag) == null ? void 0 : _this_cacheHandler_revalidateTag.call(_this_cacheHandler, tag);\n }\n // x-ref: https://github.com/facebook/react/blob/2655c9354d8e1c54ba888444220f63e836925caa/packages/react/src/ReactFetch.js#L23\n async fetchCacheKey(url, init = {}) {\n // this should be bumped anytime a fix is made to cache entries\n // that should bust the cache\n const MAIN_KEY_PREFIX = \"v3\";\n const bodyChunks = [];\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n if (init.body) {\n // handle ReadableStream body\n if (typeof init.body.getReader === \"function\") {\n const readableBody = init.body;\n const chunks = [];\n try {\n await readableBody.pipeTo(new WritableStream({\n write (chunk) {\n if (typeof chunk === \"string\") {\n chunks.push(encoder.encode(chunk));\n bodyChunks.push(chunk);\n } else {\n chunks.push(chunk);\n bodyChunks.push(decoder.decode(chunk, {\n stream: true\n }));\n }\n }\n }));\n // Flush the decoder.\n bodyChunks.push(decoder.decode());\n // Create a new buffer with all the chunks.\n const length = chunks.reduce((total, arr)=>total + arr.length, 0);\n const arrayBuffer = new Uint8Array(length);\n // Push each of the chunks into the new array buffer.\n let offset = 0;\n for (const chunk of chunks){\n arrayBuffer.set(chunk, offset);\n offset += chunk.length;\n }\n init._ogBody = arrayBuffer;\n } catch (err) {\n console.error(\"Problem reading body\", err);\n }\n } else if (typeof init.body.keys === \"function\") {\n const formData = init.body;\n init._ogBody = init.body;\n for (const key of new Set([\n ...formData.keys()\n ])){\n const values = formData.getAll(key);\n bodyChunks.push(`${key}=${(await Promise.all(values.map(async (val)=>{\n if (typeof val === \"string\") {\n return val;\n } else {\n return await val.text();\n }\n }))).join(\",\")}`);\n }\n // handle blob body\n } else if (typeof init.body.arrayBuffer === \"function\") {\n const blob = init.body;\n const arrayBuffer = await blob.arrayBuffer();\n bodyChunks.push(await blob.text());\n init._ogBody = new Blob([\n arrayBuffer\n ], {\n type: blob.type\n });\n } else if (typeof init.body === \"string\") {\n bodyChunks.push(init.body);\n init._ogBody = init.body;\n }\n }\n const cacheString = JSON.stringify([\n MAIN_KEY_PREFIX,\n this.fetchCacheKeyPrefix || \"\",\n url,\n init.method,\n typeof (init.headers || {}).keys === \"function\" ? Object.fromEntries(init.headers) : init.headers,\n init.mode,\n init.redirect,\n init.credentials,\n init.referrer,\n init.referrerPolicy,\n init.integrity,\n init.cache,\n bodyChunks\n ]);\n if (true) {\n function bufferToHex(buffer) {\n return Array.prototype.map.call(new Uint8Array(buffer), (b)=>b.toString(16).padStart(2, \"0\")).join(\"\");\n }\n const buffer = encoder.encode(cacheString);\n return bufferToHex(await crypto.subtle.digest(\"SHA-256\", buffer));\n } else {}\n }\n // get data from cache if available\n async get(cacheKey, ctx = {}) {\n var _this_cacheHandler, _cacheData_value, _this_prerenderManifest_routes_toRoute;\n if (process.env.__NEXT_INCREMENTAL_CACHE_IPC_PORT && process.env.__NEXT_INCREMENTAL_CACHE_IPC_KEY && \"edge\" !== \"edge\") {}\n // we don't leverage the prerender cache in dev mode\n // so that getStaticProps is always called for easier debugging\n if (this.dev && (ctx.kindHint !== \"fetch\" || this.requestHeaders[\"cache-control\"] === \"no-cache\")) {\n return null;\n }\n cacheKey = this._getPathname(cacheKey, ctx.kindHint === \"fetch\");\n let entry = null;\n let revalidate = ctx.revalidate;\n const cacheData = await ((_this_cacheHandler = this.cacheHandler) == null ? void 0 : _this_cacheHandler.get(cacheKey, ctx));\n if ((cacheData == null ? void 0 : (_cacheData_value = cacheData.value) == null ? void 0 : _cacheData_value.kind) === \"FETCH\") {\n const combinedTags = [\n ...ctx.tags || [],\n ...ctx.softTags || []\n ];\n // if a tag was revalidated we don't return stale data\n if (combinedTags.some((tag)=>{\n var _this_revalidatedTags;\n return (_this_revalidatedTags = this.revalidatedTags) == null ? void 0 : _this_revalidatedTags.includes(tag);\n })) {\n return null;\n }\n revalidate = revalidate || cacheData.value.revalidate;\n const age = (Date.now() - (cacheData.lastModified || 0)) / 1000;\n const isStale = age > revalidate;\n const data = cacheData.value.data;\n return {\n isStale: isStale,\n value: {\n kind: \"FETCH\",\n data,\n revalidate: revalidate\n },\n revalidateAfter: Date.now() + revalidate * 1000\n };\n }\n const curRevalidate = (_this_prerenderManifest_routes_toRoute = this.prerenderManifest.routes[toRoute(cacheKey)]) == null ? void 0 : _this_prerenderManifest_routes_toRoute.initialRevalidateSeconds;\n let isStale;\n let revalidateAfter;\n if ((cacheData == null ? void 0 : cacheData.lastModified) === -1) {\n isStale = -1;\n revalidateAfter = -1 * _lib_constants__WEBPACK_IMPORTED_MODULE_4__.CACHE_ONE_YEAR;\n } else {\n revalidateAfter = this.calculateRevalidate(cacheKey, (cacheData == null ? void 0 : cacheData.lastModified) || Date.now(), this.dev && ctx.kindHint !== \"fetch\");\n isStale = revalidateAfter !== false && revalidateAfter < Date.now() ? true : undefined;\n }\n if (cacheData) {\n entry = {\n isStale,\n curRevalidate,\n revalidateAfter,\n value: cacheData.value\n };\n }\n if (!cacheData && this.prerenderManifest.notFoundRoutes.includes(cacheKey)) {\n // for the first hit after starting the server the cache\n // may not have a way to save notFound: true so if\n // the prerender-manifest marks this as notFound then we\n // return that entry and trigger a cache set to give it a\n // chance to update in-memory entries\n entry = {\n isStale,\n value: null,\n curRevalidate,\n revalidateAfter\n };\n this.set(cacheKey, entry.value, ctx);\n }\n return entry;\n }\n // populate the incremental cache with new data\n async set(pathname, data, ctx) {\n if (process.env.__NEXT_INCREMENTAL_CACHE_IPC_PORT && process.env.__NEXT_INCREMENTAL_CACHE_IPC_KEY && \"edge\" !== \"edge\") {}\n if (this.dev && !ctx.fetchCache) return;\n // FetchCache has upper limit of 2MB per-entry currently\n if (ctx.fetchCache && // we don't show this error/warning when a custom cache handler is being used\n // as it might not have this limit\n !this.hasCustomCacheHandler && JSON.stringify(data).length > 2 * 1024 * 1024) {\n if (this.dev) {\n throw new Error(`fetch for over 2MB of data can not be cached`);\n }\n return;\n }\n pathname = this._getPathname(pathname, ctx.fetchCache);\n try {\n var _this_cacheHandler;\n // we use the prerender manifest memory instance\n // to store revalidate timings for calculating\n // revalidateAfter values so we update this on set\n if (typeof ctx.revalidate !== \"undefined\" && !ctx.fetchCache) {\n this.prerenderManifest.routes[pathname] = {\n experimentalPPR: undefined,\n dataRoute: _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_2___default().posix.join(\"/_next/data\", `${(0,_shared_lib_page_path_normalize_page_path__WEBPACK_IMPORTED_MODULE_3__.normalizePagePath)(pathname)}.json`),\n srcRoute: null,\n initialRevalidateSeconds: ctx.revalidate,\n // Pages routes do not have a prefetch data route.\n prefetchDataRoute: undefined\n };\n }\n await ((_this_cacheHandler = this.cacheHandler) == null ? void 0 : _this_cacheHandler.set(pathname, data, ctx));\n } catch (error) {\n console.warn(\"Failed to update prerender cache for\", pathname, error);\n }\n }\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9pbmNyZW1lbnRhbC1jYWNoZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUF1QztBQUNXO0FBQ0s7QUFDK0I7QUFDMkU7QUFDakssU0FBU1EsUUFBUUMsUUFBUTtJQUNyQixPQUFPQSxTQUFTQyxPQUFPLENBQUMsT0FBTyxJQUFJQSxPQUFPLENBQUMsWUFBWSxPQUFPO0FBQ2xFO0FBQ08sTUFBTUM7SUFDVCwyQkFBMkI7SUFDM0JDLFlBQVlDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLE1BQU1DLElBQUksR0FBR0MsS0FBSyxFQUFFO1FBQ2hCLE9BQU8sQ0FBQztJQUNaO0lBQ0EsTUFBTUMsSUFBSSxHQUFHRCxLQUFLLEVBQUUsQ0FBQztJQUNyQixNQUFNRSxjQUFjQyxJQUFJLEVBQUUsQ0FBQztJQUMzQkMsb0JBQW9CLENBQUM7QUFDekI7QUFDTyxNQUFNQztJQUNUUixZQUFZLEVBQUVTLEVBQUUsRUFBRUMsR0FBRyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsYUFBYSxFQUFFQyxjQUFjLEVBQUVDLGVBQWUsRUFBRUMsa0JBQWtCLEVBQUVDLG9CQUFvQixFQUFFQyxtQkFBbUIsRUFBRUMsZUFBZSxFQUFFQywyQkFBMkIsRUFBRUMsWUFBWSxFQUFFLENBQUM7UUFDdlAsSUFBSUMsaUNBQWlDQyx5QkFBeUJDLGtDQUFrQ0M7UUFDaEcsSUFBSSxDQUFDQyxLQUFLLEdBQUcsSUFBSUM7UUFDakIsSUFBSSxDQUFDQyxPQUFPLEdBQUcsSUFBSUQ7UUFDbkIsTUFBTUUsUUFBUSxDQUFDLENBQUNDLFFBQVFDLEdBQUcsQ0FBQ0Msd0JBQXdCO1FBQ3BELElBQUksQ0FBQ0MscUJBQXFCLEdBQUdDLFFBQVFmO1FBQ3JDLElBQUksQ0FBQ0EsaUJBQWlCO1lBQ2xCLElBQUliLE1BQU1PLGVBQWU7Z0JBQ3JCLElB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TCxpQkFBaUJIO29CQUNqQkksV0FBV2pNLHdFQUFVLENBQUMwSSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUV6SSw0RkFBaUJBLENBQUNNLFVBQVUsS0FBSyxDQUFDO29CQUMvRTRMLFVBQVU7b0JBQ1Y5SCwwQkFBMEJtRyxJQUFJSyxVQUFVO29CQUN4QyxrREFBa0Q7b0JBQ2xEdUIsbUJBQW1CUDtnQkFDdkI7WUFDSjtZQUNBLE1BQU8sRUFBQ25ILHFCQUFxQixJQUFJLENBQUNaLFlBQVksS0FBSyxPQUFPLEtBQUssSUFBSVksbUJBQW1CNUQsR0FBRyxDQUFDUCxVQUFVb0wsTUFBTW5CLElBQUc7UUFDakgsRUFBRSxPQUFPekMsT0FBTztZQUNaL0UsUUFBUXFKLElBQUksQ0FBQyx3Q0FBd0M5TCxVQUFVd0g7UUFDbkU7SUFDSjtBQUNKLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL2luY3JlbWVudGFsLWNhY2hlL2luZGV4LmpzPzllZGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZldGNoQ2FjaGUgZnJvbSBcIi4vZmV0Y2gtY2FjaGVcIjtcbmltcG9ydCBGaWxlU3lzdGVtQ2FjaGUgZnJvbSBcIi4vZmlsZS1zeXN0ZW0tY2FjaGVcIjtcbmltcG9ydCBwYXRoIGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvbGliL2lzb21vcnBoaWMvcGF0aFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplUGFnZVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhZ2UtcGF0aFwiO1xuaW1wb3J0IHsgQ0FDSEVfT05FX1lFQVIsIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIsIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSLCBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2NvbnN0YW50c1wiO1xuZnVuY3Rpb24gdG9Sb3V0ZShwYXRobmFtZSkge1xuICAgIHJldHVybiBwYXRobmFtZS5yZXBsYWNlKC9cXC8kLywgXCJcIikucmVwbGFjZSgvXFwvaW5kZXgkLywgXCJcIikgfHwgXCIvXCI7XG59XG5leHBvcnQgY2xhc3MgQ2FjaGVIYW5kbGVyIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdHJ1Y3RvcihfY3R4KXt9XG4gICAgYXN5bmMgZ2V0KC4uLl9hcmdzKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgYXN5bmMgc2V0KC4uLl9hcmdzKSB7fVxuICAgIGFzeW5jIHJldmFsaWRhdGVUYWcoX3RhZykge31cbiAgICByZXNldFJlcXVlc3RDYWNoZSgpIHt9XG59XG5leHBvcnQgY2xhc3MgSW5jcmVtZW50YWxDYWNoZSB7XG4gICAgY29uc3RydWN0b3IoeyBmcywgZGV2LCBhcHBEaXIsIHBhZ2VzRGlyLCBmbHVzaFRvRGlzaywgZmV0Y2hDYWNoZSwgbWluaW1hbE1vZGUsIHNlcnZlckRpc3REaXIsIHJlcXVlc3RIZWFkZXJzLCByZXF1ZXN0UHJvdG9jb2wsIG1heE1lbW9yeUNhY2hlU2l6ZSwgZ2V0UHJlcmVuZGVyTWFuaWZlc3QsIGZldGNoQ2FjaGVLZXlQcmVmaXgsIEN1ckNhY2hlSGFuZGxlciwgYWxsb3dlZFJldmFsaWRhdGVIZWFkZXJLZXlzLCBleHBlcmltZW50YWwgfSl7XG4gICAgICAgIHZhciBfdGhpc19wcmVyZW5kZXJNYW5pZmVzdF9wcmV2aWV3LCBfdGhpc19wcmVyZW5kZXJNYW5pZmVzdCwgX3RoaXNfcHJlcmVuZGVyTWFuaWZlc3RfcHJldmlldzEsIF90aGlzX3ByZXJlbmRlck1hbmlmZXN0MTtcbiAgICAgICAgdGhpcy5sb2NrcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy51bmxvY2tzID0gbmV3IE1hcCgpO1xuICAgICAgICBjb25zdCBkZWJ1ZyA9ICEhcHJvY2Vzcy5lbnYuTkVYVF9QUklWQVRFX0RFQlVHX0NBQ0hFO1xuICAgICAgICB0aGlzLmhhc0N1c3RvbUNhY2hlSGFuZGxlciA9IEJvb2xlYW4oQ3VyQ2FjaGVIYW5kbGVyKTtcbiAgICAgICAgaWYgKCFDdXJDYWNoZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIGlmIChmcyAmJiBzZXJ2ZXJEaXN0RGlyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwidXNpbmcgZmlsZXN5c3RlbSBjYWNoZSBoYW5kbGVyXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBDdXJDYWNoZUhhbmRsZXIgPSBGaWxlU3lzdGVtQ2FjaGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoRmV0Y2hDYWNoZS5pc0F2YWlsYWJsZSh7XG4gICAgICAgICAgICAgICAgX3JlcXVlc3RIZWFkZXJzOiByZXF1ZXN0SGVhZGVyc1xuICAgICAgICAgICAgfSkgJiYgbWluaW1hbE1vZGUgJiYgZmV0Y2hDYWNoZSkge1xuICAgICAgICAgICAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIGZldGNoIGNhY2hlIGhhbmRsZXJcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEN1ckNhY2hlSGFuZGxlciA9IEZldGNoQ2FjaGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwidXNpbmcgY3VzdG9tIGNhY2hlIGhhbmRsZXJcIiwgQ3VyQ2FjaGVIYW5kbGVyLm5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NQVhfSVNSX0NBQ0hFKSB7XG4gICAgICAgICAgICAvLyBBbGxvdyBjYWNoZSBzaXplIHRvIGJlIG92ZXJyaWRkZW4gZm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICAgICAgICAgIG1heE1lbW9yeUNhY2hlU2l6ZSA9IHBhcnNlSW50KHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01BWF9JU1JfQ0FDSEUsIDEwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRldiA9IGRldjtcbiAgICAgICAgLy8gdGhpcyBpcyBhIGhhY2sgdG8gYXZvaWQgV2VicGFjayBrbm93aW5nIHRoaXMgaXMgZXF1YWwgdG8gdGhpcy5taW5pbWFsTW9kZVxuICAgICAgICAvLyBiZWNhdXNlIHdlIHJlcGxhY2UgdGhpcy5taW5pbWFsTW9kZSB0byB0cnVlIGluIHByb2R1Y3Rpb24gYnVuZGxlcy5cbiAgICAgICAgY29uc3QgbWluaW1hbE1vZGVLZXkgPSBcIm1pbmltYWxNb2RlXCI7XG4gICAgICAgIHRoaXNbbWluaW1hbE1vZGVLZXldID0gbWluaW1hbE1vZGU7XG4gICAgICAgIHRoaXMucmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0SGVhZGVycztcbiAgICAgICAgdGhpcy5yZXF1ZXN0UHJvdG9jb2wgPSByZXF1ZXN0UHJvdG9jb2w7XG4gICAgICAgIHRoaXMuYWxsb3dlZFJldmFsaWRhdGVIZWFkZXJLZXlzID0gYWxsb3dlZFJldmFsaWRhdGVIZWFkZXJLZXlzO1xuICAgICAgICB0aGlzLnByZXJlbmRlck1hbmlmZXN0ID0gZ2V0UHJlcmVuZGVyTWFuaWZlc3QoKTtcbiAgICAgICAgdGhpcy5mZXRjaENhY2hlS2V5UHJlZml4ID0gZmV0Y2hDYWNoZUtleVByZWZpeDtcbiAgICAgICAgbGV0IHJldmFsaWRhdGVkVGFncyA9IFtdO1xuICAgICAgICBpZiAocmVxdWVzdEhlYWRlcnNbUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSXSA9PT0gKChfdGhpc19wcmVyZW5kZXJNYW5pZmVzdCA9IHRoaXMucHJlcmVuZGVyTWFuaWZlc3QpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfcHJlcmVuZGVyTWFuaWZlc3RfcHJldmlldyA9IF90aGlzX3ByZXJlbmRlck1hbmlmZXN0LnByZXZpZXcpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19wcmVyZW5kZXJNYW5pZmVzdF9wcmV2aWV3LnByZXZpZXdNb2RlSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmlzT25EZW1hbmRSZXZhbGlkYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWluaW1hbE1vZGUgJiYgdHlwZW9mIHJlcXVlc3RIZWFkZXJzW05FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVJdID09PSBcInN0cmluZ1wiICYmIHJlcXVlc3RIZWFkZXJzW05FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSXSA9PT0gKChfdGhpc19wcmVyZW5kZXJNYW5pZmVzdDEgPSB0aGlzLnByZXJlbmRlck1hbmlmZXN0KSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX3ByZXJlbmRlck1hbmlmZXN0X3ByZXZpZXcxID0gX3RoaXNfcHJlcmVuZGVyTWFuaWZlc3QxLnByZXZpZXcpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19wcmVyZW5kZXJNYW5pZmVzdF9wcmV2aWV3MS5wcmV2aWV3TW9kZUlkKSkge1xuICAgICAgICAgICAgcmV2YWxpZGF0ZWRUYWdzID0gcmVxdWVzdEhlYWRlcnNbTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUl0uc3BsaXQoXCIsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChDdXJDYWNoZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGVIYW5kbGVyID0gbmV3IEN1ckNhY2hlSGFuZGxlcih7XG4gICAgICAgICAgICAgICAgZGV2LFxuICAgICAgICAgICAgICAgIGZzLFxuICAgICAgICAgICAgICAgIGZsdXNoVG9EaXNrLFxuICAgICAgICAgICAgICAgIHNlcnZlckRpc3REaXIsXG4gICAgICAgICAgICAgICAgcmV2YWxpZGF0ZWRUYWdzLFxuICAgICAgICAgICAgICAgIG1heE1lbW9yeUNhY2hlU2l6ZSxcbiAgICAgICAgICAgICAgICBfcGFnZXNEaXI6ICEhcGFnZXNEaXIsXG4gICAgICAgICAgICAgICAgX2FwcERpcjogISFhcHBEaXIsXG4gICAgICAgICAgICAgICAgX3JlcXVlc3RIZWFkZXJzOiByZXF1ZXN0SGVhZGVycyxcbiAgICAgICAgICAgICAgICBmZXRjaENhY2hlS2V5UHJlZml4LFxuICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2FsY3VsYXRlUmV2YWxpZGF0ZShwYXRobmFtZSwgZnJvbVRpbWUsIGRldikge1xuICAgICAgICAvLyBpbiBkZXZlbG9wbWVudCB3ZSBkb24ndCBoYXZlIGEgcHJlcmVuZGVyLW1hbmlmZXN0XG4gICAgICAgIC8vIGFuZCBkZWZhdWx0IHRvIGFsd2F5cyByZXZhbGlkYXRpbmcgdG8gYWxsb3cgZWFzaWVyIGRlYnVnZ2luZ1xuICAgICAgICBpZiAoZGV2KSByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSAxMDAwO1xuICAgICAgICAvLyBpZiBhbiBlbnRyeSBpc24ndCBwcmVzZW50IGluIHJvdXRlcyB3ZSBmYWxsYmFjayB0byBhIGRlZmF1bHRcbiAgICAgICAgLy8gb2YgcmV2YWxpZGF0aW5nIGFmdGVyIDEgc2Vjb25kXG4gICAgICAgIGNvbnN0IHsgaW5pdGlhbFJldmFsaWRhdGVTZWNvbmRzIH0gPSB0aGlzLnByZXJlbmRlck1hbmlmZXN0LnJvdXRlc1t0b1JvdXRlKHBhdGhuYW1lKV0gfHwge1xuICAgICAgICAgICAgaW5pdGlhbFJldmFsaWRhdGVTZWNvbmRzOiAxXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJldmFsaWRhdGVBZnRlciA9IHR5cGVvZiBpbml0aWFsUmV2YWxpZGF0ZVNlY29uZHMgPT09IFwibnVtYmVyXCIgPyBpbml0aWFsUmV2YWxpZGF0ZVNlY29uZHMgKiAxMDAwICsgZnJvbVRpbWUgOiBpbml0aWFsUmV2YWxpZGF0ZVNlY29uZHM7XG4gICAgICAgIHJldHVybiByZXZhbGlkYXRlQWZ0ZXI7XG4gICAgfVxuICAgIF9nZXRQYXRobmFtZShwYXRobmFtZSwgZmV0Y2hDYWNoZSkge1xuICAgICAgICByZXR1cm4gZmV0Y2hDYWNoZSA/IHBhdGhuYW1lIDogbm9ybWFsaXplUGFnZVBhdGgocGF0aG5hbWUpO1xuICAgIH1cbiAgICByZXNldFJlcXVlc3RDYWNoZSgpIHtcbiAgICAgICAgdmFyIF90aGlzX2NhY2hlSGFuZGxlcl9yZXNldFJlcXVlc3RDYWNoZSwgX3RoaXNfY2FjaGVIYW5kbGVyO1xuICAgICAgICAoX3RoaXNfY2FjaGVIYW5kbGVyID0gdGhpcy5jYWNoZUhhbmRsZXIpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfY2FjaGVIYW5kbGVyX3Jlc2V0UmVxdWVzdENhY2hlID0gX3RoaXNfY2FjaGVIYW5kbGVyLnJlc2V0UmVxdWVzdENhY2hlKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfY2FjaGVIYW5kbGVyX3Jlc2V0UmVxdWVzdENhY2hlLmNhbGwoX3RoaXNfY2FjaGVIYW5kbGVyKTtcbiAgICB9XG4gICAgYXN5bmMgdW5sb2NrKGNhY2hlS2V5KSB7XG4gICAgICAgIGNvbnN0IHVubG9jayA9IHRoaXMudW5sb2Nrcy5nZXQoY2FjaGVLZXkpO1xuICAgICAgICBpZiAodW5sb2NrKSB7XG4gICAgICAgICAgICB1bmxvY2soKTtcbiAgICAgICAgICAgIHRoaXMubG9ja3MuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgICAgICAgIHRoaXMudW5sb2Nrcy5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGxvY2soY2FjaGVLZXkpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JTkNSRU1FTlRBTF9DQUNIRV9JUENfUE9SVCAmJiBwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX0tFWSAmJiBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09IFwiZWRnZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBpbnZva2VJcGNNZXRob2QgPSByZXF1aXJlKFwiLi4vc2VydmVyLWlwYy9yZXF1ZXN0LXV0aWxzXCIpLmludm9rZUlwY01ldGhvZDtcbiAgICAgICAgICAgIGF3YWl0IGludm9rZUlwY01ldGhvZCh7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcImxvY2tcIixcbiAgICAgICAgICAgICAgICBpcGNQb3J0OiBwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX1BPUlQsXG4gICAgICAgICAgICAgICAgaXBjS2V5OiBwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX0tFWSxcbiAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCk9PntcbiAgICAgICAgICAgICAgICBhd2FpdCBpbnZva2VJcGNNZXRob2Qoe1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwidW5sb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIGlwY1BvcnQ6IHByb2Nlc3MuZW52Ll9fTkVYVF9JTkNSRU1FTlRBTF9DQUNIRV9JUENfUE9SVCxcbiAgICAgICAgICAgICAgICAgICAgaXBjS2V5OiBwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX0tFWSxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVLZXlcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdW5sb2NrTmV4dCA9ICgpPT5Qcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdMb2NrID0gdGhpcy5sb2Nrcy5nZXQoY2FjaGVLZXkpO1xuICAgICAgICBpZiAoZXhpc3RpbmdMb2NrKSB7XG4gICAgICAgICAgICBhd2FpdCBleGlzdGluZ0xvY2s7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBuZXdMb2NrID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgICAgICAgICAgdW5sb2NrTmV4dCA9IGFzeW5jICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmxvY2tzLnNldChjYWNoZUtleSwgbmV3TG9jayk7XG4gICAgICAgICAgICB0aGlzLnVubG9ja3Muc2V0KGNhY2hlS2V5LCB1bmxvY2tOZXh0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5sb2NrTmV4dDtcbiAgICB9XG4gICAgYXN5bmMgcmV2YWxpZGF0ZVRhZyh0YWcpIHtcbiAgICAgICAgdmFyIF90aGlzX2NhY2hlSGFuZGxlcl9yZXZhbGlkYXRlVGFnLCBfdGhpc19jYWNoZUhhbmRsZXI7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX1BPUlQgJiYgcHJvY2Vzcy5lbnYuX19ORVhUX0lOQ1JFTUVOVEFMX0NBQ0hFX0lQQ19LRVkgJiYgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIikge1xuICAgICAgICAgICAgY29uc3QgaW52b2tlSXBjTWV0aG9kID0gcmVxdWlyZShcIi4uL3NlcnZlci1pcGMvcmVxdWVzdC11dGlsc1wiKS5pbnZva2VJcGNNZXRob2Q7XG4gICAgICAgICAgICByZXR1cm4gaW52b2tlSXBjTWV0aG9kKHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwicmV2YWxpZGF0ZVRhZ1wiLFxuICAgICAgICAgICAgICAgIGlwY1BvcnQ6IHByb2Nlc3MuZW52Ll9fTkVYVF9JTkNSRU1FTlRBTF9DQUNIRV9JUENfUE9SVCxcbiAgICAgICAgICAgICAgICBpcGNLZXk6IHByb2Nlc3MuZW52Ll9fTkVYVF9JTkNSRU1FTlRBTF9DQUNIRV9JUENfS0VZLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgLi4uYXJndW1lbnRzXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChfdGhpc19jYWNoZUhhbmRsZXIgPSB0aGlzLmNhY2hlSGFuZGxlcikgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19jYWNoZUhhbmRsZXJfcmV2YWxpZGF0ZVRhZyA9IF90aGlzX2NhY2hlSGFuZGxlci5yZXZhbGlkYXRlVGFnKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfY2FjaGVIYW5kbGVyX3JldmFsaWRhdGVUYWcuY2FsbChfdGhpc19jYWNoZUhhbmRsZXIsIHRhZyk7XG4gICAgfVxuICAgIC8vIHgtcmVmOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi8yNjU1YzkzNTRkOGUxYzU0YmE4ODg0NDQyMjBmNjNlODM2OTI1Y2FhL3BhY2thZ2VzL3JlYWN0L3NyYy9SZWFjdEZldGNoLmpzI0wyM1xuICAgIGFzeW5jIGZldGNoQ2FjaGVLZXkodXJsLCBpbml0ID0ge30pIHtcbiAgICAgICAgLy8gdGhpcyBzaG91bGQgYmUgYnVtcGVkIGFueXRpbWUgYSBmaXggaXMgbWFkZSB0byBjYWNoZSBlbnRyaWVzXG4gICAgICAgIC8vIHRoYXQgc2hvdWxkIGJ1c3QgdGhlIGNhY2hlXG4gICAgICAgIGNvbnN0IE1BSU5fS0VZX1BSRUZJWCA9IFwidjNcIjtcbiAgICAgICAgY29uc3QgYm9keUNodW5rcyA9IFtdO1xuICAgICAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiAgICAgICAgaWYgKGluaXQuYm9keSkge1xuICAgICAgICAgICAgLy8gaGFuZGxlIFJlYWRhYmxlU3RyZWFtIGJvZHlcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5pdC5ib2R5LmdldFJlYWRlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGFibGVCb2R5ID0gaW5pdC5ib2R5O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHJlYWRhYmxlQm9keS5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlIChjaHVuaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2h1bmsgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goZW5jb2Rlci5lbmNvZGUoY2h1bmspKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keUNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHlDaHVua3MucHVzaChkZWNvZGVyLmRlY29kZShjaHVuaywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gRmx1c2ggdGhlIGRlY29kZXIuXG4gICAgICAgICAgICAgICAgICAgIGJvZHlDaHVua3MucHVzaChkZWNvZGVyLmRlY29kZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGJ1ZmZlciB3aXRoIGFsbCB0aGUgY2h1bmtzLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjaHVua3MucmVkdWNlKCh0b3RhbCwgYXJyKT0+dG90YWwgKyBhcnIubGVuZ3RoLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBuZXcgVWludDhBcnJheShsZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBQdXNoIGVhY2ggb2YgdGhlIGNodW5rcyBpbnRvIHRoZSBuZXcgYXJyYXkgYnVmZmVyLlxuICAgICAgICAgICAgICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaHVuayBvZiBjaHVua3Mpe1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlCdWZmZXIuc2V0KGNodW5rLCBvZmZzZXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpbml0Ll9vZ0JvZHkgPSBhcnJheUJ1ZmZlcjtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlByb2JsZW0gcmVhZGluZyBib2R5XCIsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5pdC5ib2R5LmtleXMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gaW5pdC5ib2R5O1xuICAgICAgICAgICAgICAgIGluaXQuX29nQm9keSA9IGluaXQuYm9keTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBuZXcgU2V0KFtcbiAgICAgICAgICAgICAgICAgICAgLi4uZm9ybURhdGEua2V5cygpXG4gICAgICAgICAgICAgICAgXSkpe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBmb3JtRGF0YS5nZXRBbGwoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgYm9keUNodW5rcy5wdXNoKGAke2tleX09JHsoYXdhaXQgUHJvbWlzZS5hbGwodmFsdWVzLm1hcChhc3luYyAodmFsKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdmFsLnRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSkpKS5qb2luKFwiLFwiKX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBoYW5kbGUgYmxvYiBib2R5XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbml0LmJvZHkuYXJyYXlCdWZmZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBpbml0LmJvZHk7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7XG4gICAgICAgICAgICAgICAgYm9keUNodW5rcy5wdXNoKGF3YWl0IGJsb2IudGV4dCgpKTtcbiAgICAgICAgICAgICAgICBpbml0Ll9vZ0JvZHkgPSBuZXcgQmxvYihbXG4gICAgICAgICAgICAgICAgICAgIGFycmF5QnVmZmVyXG4gICAgICAgICAgICAgICAgXSwge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9iLnR5cGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGluaXQuYm9keSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGJvZHlDaHVua3MucHVzaChpbml0LmJvZHkpO1xuICAgICAgICAgICAgICAgIGluaXQuX29nQm9keSA9IGluaXQuYm9keTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYWNoZVN0cmluZyA9IEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICAgIE1BSU5fS0VZX1BSRUZJWCxcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hDYWNoZUtleVByZWZpeCB8fCBcIlwiLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgaW5pdC5tZXRob2QsXG4gICAgICAgICAgICB0eXBlb2YgKGluaXQuaGVhZGVycyB8fCB7fSkua2V5cyA9PT0gXCJmdW5jdGlvblwiID8gT2JqZWN0LmZyb21FbnRyaWVzKGluaXQuaGVhZGVycykgOiBpbml0LmhlYWRlcnMsXG4gICAgICAgICAgICBpbml0Lm1vZGUsXG4gICAgICAgICAgICBpbml0LnJlZGlyZWN0LFxuICAgICAgICAgICAgaW5pdC5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIGluaXQucmVmZXJyZXIsXG4gICAgICAgICAgICBpbml0LnJlZmVycmVyUG9saWN5LFxuICAgICAgICAgICAgaW5pdC5pbnRlZ3JpdHksXG4gICAgICAgICAgICBpbml0LmNhY2hlLFxuICAgICAgICAgICAgYm9keUNodW5rc1xuICAgICAgICBdKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gXCJlZGdlXCIpIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGJ1ZmZlclRvSGV4KGJ1ZmZlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwobmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSwgKGIpPT5iLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIikpLmpvaW4oXCJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSBlbmNvZGVyLmVuY29kZShjYWNoZVN0cmluZyk7XG4gICAgICAgICAgICByZXR1cm4gYnVmZmVyVG9IZXgoYXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoXCJTSEEtMjU2XCIsIGJ1ZmZlcikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY3J5cHRvMSA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG4gICAgICAgICAgICByZXR1cm4gY3J5cHRvMS5jcmVhdGVIYXNoKFwic2hhMjU2XCIpLnVwZGF0ZShjYWNoZVN0cmluZykuZGlnZXN0KFwiaGV4XCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGdldCBkYXRhIGZyb20gY2FjaGUgaWYgYXZhaWxhYmxlXG4gICAgYXN5bmMgZ2V0KGNhY2hlS2V5LCBjdHggPSB7fSkge1xuICAgICAgICB2YXIgX3RoaXNfY2FjaGVIYW5kbGVyLCBfY2FjaGVEYXRhX3ZhbHVlLCBfdGhpc19wcmVyZW5kZXJNYW5pZmVzdF9yb3V0ZXNfdG9Sb3V0ZTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JTkNSRU1FTlRBTF9DQUNIRV9JUENfUE9SVCAmJiBwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX0tFWSAmJiBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09IFwiZWRnZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBpbnZva2VJcGNNZXRob2QgPSByZXF1aXJlKFwiLi4vc2VydmVyLWlwYy9yZXF1ZXN0LXV0aWxzXCIpLmludm9rZUlwY01ldGhvZDtcbiAgICAgICAgICAgIHJldHVybiBpbnZva2VJcGNNZXRob2Qoe1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJnZXRcIixcbiAgICAgICAgICAgICAgICBpcGNQb3J0OiBwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX1BPUlQsXG4gICAgICAgICAgICAgICAgaXBjS2V5OiBwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX0tFWSxcbiAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmFyZ3VtZW50c1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdlIGRvbid0IGxldmVyYWdlIHRoZSBwcmVyZW5kZXIgY2FjaGUgaW4gZGV2IG1vZGVcbiAgICAgICAgLy8gc28gdGhhdCBnZXRTdGF0aWNQcm9wcyBpcyBhbHdheXMgY2FsbGVkIGZvciBlYXNpZXIgZGVidWdnaW5nXG4gICAgICAgIGlmICh0aGlzLmRldiAmJiAoY3R4LmtpbmRIaW50ICE9PSBcImZldGNoXCIgfHwgdGhpcy5yZXF1ZXN0SGVhZGVyc1tcImNhY2hlLWNvbnRyb2xcIl0gPT09IFwibm8tY2FjaGVcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNhY2hlS2V5ID0gdGhpcy5fZ2V0UGF0aG5hbWUoY2FjaGVLZXksIGN0eC5raW5kSGludCA9PT0gXCJmZXRjaFwiKTtcbiAgICAgICAgbGV0IGVudHJ5ID0gbnVsbDtcbiAgICAgICAgbGV0IHJldmFsaWRhdGUgPSBjdHgucmV2YWxpZGF0ZTtcbiAgICAgICAgY29uc3QgY2FjaGVEYXRhID0gYXdhaXQgKChfdGhpc19jYWNoZUhhbmRsZXIgPSB0aGlzLmNhY2hlSGFuZGxlcikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX2NhY2hlSGFuZGxlci5nZXQoY2FjaGVLZXksIGN0eCkpO1xuICAgICAgICBpZiAoKGNhY2hlRGF0YSA9PSBudWxsID8gdm9pZCAwIDogKF9jYWNoZURhdGFfdmFsdWUgPSBjYWNoZURhdGEudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfY2FjaGVEYXRhX3ZhbHVlLmtpbmQpID09PSBcIkZFVENIXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbWJpbmVkVGFncyA9IFtcbiAgICAgICAgICAgICAgICAuLi5jdHgudGFncyB8fCBbXSxcbiAgICAgICAgICAgICAgICAuLi5jdHguc29mdFRhZ3MgfHwgW11cbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICAvLyBpZiBhIHRhZyB3YXMgcmV2YWxpZGF0ZWQgd2UgZG9uJ3QgcmV0dXJuIHN0YWxlIGRhdGFcbiAgICAgICAgICAgIGlmIChjb21iaW5lZFRhZ3Muc29tZSgodGFnKT0+e1xuICAgICAgICAgICAgICAgIHZhciBfdGhpc19yZXZhbGlkYXRlZFRhZ3M7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChfdGhpc19yZXZhbGlkYXRlZFRhZ3MgPSB0aGlzLnJldmFsaWRhdGVkVGFncykgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX3JldmFsaWRhdGVkVGFncy5pbmNsdWRlcyh0YWcpO1xuICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldmFsaWRhdGUgPSByZXZhbGlkYXRlIHx8IGNhY2hlRGF0YS52YWx1ZS5yZXZhbGlkYXRlO1xuICAgICAgICAgICAgY29uc3QgYWdlID0gKERhdGUubm93KCkgLSAoY2FjaGVEYXRhLmxhc3RNb2RpZmllZCB8fCAwKSkgLyAxMDAwO1xuICAgICAgICAgICAgY29uc3QgaXNTdGFsZSA9IGFnZSA+IHJldmFsaWRhdGU7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gY2FjaGVEYXRhLnZhbHVlLmRhdGE7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlzU3RhbGU6IGlzU3RhbGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAga2luZDogXCJGRVRDSFwiLFxuICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiByZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlQWZ0ZXI6IERhdGUubm93KCkgKyByZXZhbGlkYXRlICogMTAwMFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJSZXZhbGlkYXRlID0gKF90aGlzX3ByZXJlbmRlck1hbmlmZXN0X3JvdXRlc190b1JvdXRlID0gdGhpcy5wcmVyZW5kZXJNYW5pZmVzdC5yb3V0ZXNbdG9Sb3V0ZShjYWNoZUtleSldKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfcHJlcmVuZGVyTWFuaWZlc3Rfcm91dGVzX3RvUm91dGUuaW5pdGlhbFJldmFsaWRhdGVTZWNvbmRzO1xuICAgICAgICBsZXQgaXNTdGFsZTtcbiAgICAgICAgbGV0IHJldmFsaWRhdGVBZnRlcjtcbiAgICAgICAgaWYgKChjYWNoZURhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGNhY2hlRGF0YS5sYXN0TW9kaWZpZWQpID09PSAtMSkge1xuICAgICAgICAgICAgaXNTdGFsZSA9IC0xO1xuICAgICAgICAgICAgcmV2YWxpZGF0ZUFmdGVyID0gLTEgKiBDQUNIRV9PTkVfWUVBUjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldmFsaWRhdGVBZnRlciA9IHRoaXMuY2FsY3VsYXRlUmV2YWxpZGF0ZShjYWNoZUtleSwgKGNhY2hlRGF0YSA9PSBudWxsID8gdm9pZCAwIDogY2FjaGVEYXRhLmxhc3RNb2RpZmllZCkgfHwgRGF0ZS5ub3coKSwgdGhpcy5kZXYgJiYgY3R4LmtpbmRIaW50ICE9PSBcImZldGNoXCIpO1xuICAgICAgICAgICAgaXNTdGFsZSA9IHJldmFsaWRhdGVBZnRlciAhPT0gZmFsc2UgJiYgcmV2YWxpZGF0ZUFmdGVyIDwgRGF0ZS5ub3coKSA/IHRydWUgOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhY2hlRGF0YSkge1xuICAgICAgICAgICAgZW50cnkgPSB7XG4gICAgICAgICAgICAgICAgaXNTdGFsZSxcbiAgICAgICAgICAgICAgICBjdXJSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgIHJldmFsaWRhdGVBZnRlcixcbiAgICAgICAgICAgICAgICB2YWx1ZTogY2FjaGVEYXRhLnZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2FjaGVEYXRhICYmIHRoaXMucHJlcmVuZGVyTWFuaWZlc3Qubm90Rm91bmRSb3V0ZXMuaW5jbHVkZXMoY2FjaGVLZXkpKSB7XG4gICAgICAgICAgICAvLyBmb3IgdGhlIGZpcnN0IGhpdCBhZnRlciBzdGFydGluZyB0aGUgc2VydmVyIHRoZSBjYWNoZVxuICAgICAgICAgICAgLy8gbWF5IG5vdCBoYXZlIGEgd2F5IHRvIHNhdmUgbm90Rm91bmQ6IHRydWUgc28gaWZcbiAgICAgICAgICAgIC8vIHRoZSBwcmVyZW5kZXItbWFuaWZlc3QgbWFya3MgdGhpcyBhcyBub3RGb3VuZCB0aGVuIHdlXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhhdCBlbnRyeSBhbmQgdHJpZ2dlciBhIGNhY2hlIHNldCB0byBnaXZlIGl0IGFcbiAgICAgICAgICAgIC8vIGNoYW5jZSB0byB1cGRhdGUgaW4tbWVtb3J5IGVudHJpZXNcbiAgICAgICAgICAgIGVudHJ5ID0ge1xuICAgICAgICAgICAgICAgIGlzU3RhbGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgY3VyUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlQWZ0ZXJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnNldChjYWNoZUtleSwgZW50cnkudmFsdWUsIGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cbiAgICAvLyBwb3B1bGF0ZSB0aGUgaW5jcmVtZW50YWwgY2FjaGUgd2l0aCBuZXcgZGF0YVxuICAgIGFzeW5jIHNldChwYXRobmFtZSwgZGF0YSwgY3R4KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSU5DUkVNRU5UQUxfQ0FDSEVfSVBDX1BPUlQgJiYgcHJvY2Vzcy5lbnYuX19ORVhUX0lOQ1JFTUVOVEFMX0NBQ0hFX0lQQ19LRVkgJiYgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIikge1xuICAgICAgICAgICAgY29uc3QgaW52b2tlSXBjTWV0aG9kID0gcmVxdWlyZShcIi4uL3NlcnZlci1pcGMvcmVxdWVzdC11dGlsc1wiKS5pbnZva2VJcGNNZXRob2Q7XG4gICAgICAgICAgICByZXR1cm4gaW52b2tlSXBjTWV0aG9kKHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwic2V0XCIsXG4gICAgICAgICAgICAgICAgaXBjUG9ydDogcHJvY2Vzcy5lbnYuX19ORVhUX0lOQ1JFTUVOVEFMX0NBQ0hFX0lQQ19QT1JULFxuICAgICAgICAgICAgICAgIGlwY0tleTogcHJvY2Vzcy5lbnYuX19ORVhUX0lOQ1JFTUVOVEFMX0NBQ0hFX0lQQ19LRVksXG4gICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAuLi5hcmd1bWVudHNcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZXYgJiYgIWN0eC5mZXRjaENhY2hlKSByZXR1cm47XG4gICAgICAgIC8vIEZldGNoQ2FjaGUgaGFzIHVwcGVyIGxpbWl0IG9mIDJNQiBwZXItZW50cnkgY3VycmVudGx5XG4gICAgICAgIGlmIChjdHguZmV0Y2hDYWNoZSAmJiAvLyB3ZSBkb24ndCBzaG93IHRoaXMgZXJyb3Ivd2FybmluZyB3aGVuIGEgY3VzdG9tIGNhY2hlIGhhbmRsZXIgaXMgYmVpbmcgdXNlZFxuICAgICAgICAvLyBhcyBpdCBtaWdodCBub3QgaGF2ZSB0aGlzIGxpbWl0XG4gICAgICAgICF0aGlzLmhhc0N1c3RvbUNhY2hlSGFuZGxlciAmJiBKU09OLnN0cmluZ2lmeShkYXRhKS5sZW5ndGggPiAyICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRldikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZmV0Y2ggZm9yIG92ZXIgMk1CIG9mIGRhdGEgY2FuIG5vdCBiZSBjYWNoZWRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwYXRobmFtZSA9IHRoaXMuX2dldFBhdGhuYW1lKHBhdGhuYW1lLCBjdHguZmV0Y2hDYWNoZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgX3RoaXNfY2FjaGVIYW5kbGVyO1xuICAgICAgICAgICAgLy8gd2UgdXNlIHRoZSBwcmVyZW5kZXIgbWFuaWZlc3QgbWVtb3J5IGluc3RhbmNlXG4gICAgICAgICAgICAvLyB0byBzdG9yZSByZXZhbGlkYXRlIHRpbWluZ3MgZm9yIGNhbGN1bGF0aW5nXG4gICAgICAgICAgICAvLyByZXZhbGlkYXRlQWZ0ZXIgdmFsdWVzIHNvIHdlIHVwZGF0ZSB0aGlzIG9uIHNldFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjdHgucmV2YWxpZGF0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhY3R4LmZldGNoQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXJlbmRlck1hbmlmZXN0LnJvdXRlc1twYXRobmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbFBQUjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBkYXRhUm91dGU6IHBhdGgucG9zaXguam9pbihcIi9fbmV4dC9kYXRhXCIsIGAke25vcm1hbGl6ZVBhZ2VQYXRoKHBhdGhuYW1lKX0uanNvbmApLFxuICAgICAgICAgICAgICAgICAgICBzcmNSb3V0ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFJldmFsaWRhdGVTZWNvbmRzOiBjdHgucmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgLy8gUGFnZXMgcm91dGVzIGRvIG5vdCBoYXZlIGEgcHJlZmV0Y2ggZGF0YSByb3V0ZS5cbiAgICAgICAgICAgICAgICAgICAgcHJlZmV0Y2hEYXRhUm91dGU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCAoKF90aGlzX2NhY2hlSGFuZGxlciA9IHRoaXMuY2FjaGVIYW5kbGVyKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfY2FjaGVIYW5kbGVyLnNldChwYXRobmFtZSwgZGF0YSwgY3R4KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJGYWlsZWQgdG8gdXBkYXRlIHByZXJlbmRlciBjYWNoZSBmb3JcIiwgcGF0aG5hbWUsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIkZldGNoQ2FjaGUiLCJGaWxlU3lzdGVtQ2FjaGUiLCJwYXRoIiwibm9ybWFsaXplUGFnZVBhdGgiLCJDQUNIRV9PTkVfWUVBUiIsIk5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIiLCJORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUiIsIlBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUiIsInRvUm91dGUiLCJwYXRobmFtZSIsInJlcGxhY2UiLCJDYWNoZUhhbmRsZXIiLCJjb25zdHJ1Y3RvciIsIl9jdHgiLCJnZXQiLCJfYXJncyIsInNldCIsInJldmFsaWRhdGVUYWciLCJfdGFnIiwicmVzZXRSZXF1ZXN0Q2FjaGUiLCJJbmNyZW1lbnRhbENhY2hlIiwiZnMiLCJkZXYiLCJhcHBEaXIiLCJwYWdlc0RpciIsImZsdXNoVG9EaXNrIiwiZmV0Y2hDYWNoZSIsIm1pbmltYWxNb2RlIiwic2VydmVyRGlzdERpciIsInJlcXVlc3RIZWFkZXJzIiwicmVxdWVzdFByb3RvY29sIiwibWF4TWVtb3J5Q2FjaGVTaXplIiwiZ2V0UHJlcmVuZGVyTWFuaWZlc3QiLCJmZXRjaENhY2hlS2V5UHJlZml4IiwiQ3VyQ2FjaGVIYW5kbGVyIiwiYWxsb3dlZFJldmFsaWRhdGVIZWFkZXJLZXlzIiwiZXhwZXJpbWVudGFsIiwiX3RoaXNfcHJlcmVuZGVyTWFuaWZlc3RfcHJldmlldyIsIl90aGlzX3ByZXJlbmRlck1hbmlmZXN0IiwiX3RoaXNfcHJlcmVuZGVyTWFuaWZlc3RfcHJldmlldzEiLCJfdGhpc19wcmVyZW5kZXJNYW5pZmVzdDEiLCJsb2NrcyIsIk1hcCIsInVubG9ja3MiLCJkZWJ1ZyIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BSSVZBVEVfREVCVUdfQ0FDSEUiLCJoYXNDdXN0b21DYWNoZUhhbmRsZXIiLCJCb29sZWFuIiwiY29uc29sZSIsImxvZyIsImlzQXZhaWxhYmxlIiwiX3JlcXVlc3RIZWFkZXJzIiwibmFtZSIsIl9fTkVYVF9URVNUX01BWF9JU1JfQ0FDSEUiLCJwYXJzZUludCIsIm1pbmltYWxNb2RlS2V5IiwicHJlcmVuZGVyTWFuaWZlc3QiLCJyZXZhbGlkYXRlZFRhZ3MiLCJwcmV2aWV3IiwicHJldmlld01vZGVJZCIsImlzT25EZW1hbmRSZXZhbGlkYXRlIiwic3BsaXQiLCJjYWNoZUhhbmRsZXIiLCJfcGFnZXNEaXIiLCJfYXBwRGlyIiwiY2FsY3VsYXRlUmV2YWxpZGF0ZSIsImZyb21UaW1lIiwiRGF0ZSIsImdldFRpbWUiLCJpbml0aWFsUmV2YWxpZGF0ZVNlY29uZHMiLCJyb3V0ZXMiLCJyZXZhbGlkYXRlQWZ0ZXIiLCJfZ2V0UGF0aG5hbWUiLCJfdGhpc19jYWNoZUhhbmRsZXJfcmVzZXRSZXF1ZXN0Q2FjaGUiLCJfdGhpc19jYWNoZUhhbmRsZXIiLCJjYWxsIiwidW5sb2NrIiwiY2FjaGVLZXkiLCJkZWxldGUiLCJsb2NrIiwiX19ORVhUX0lOQ1JFTUVOVEFMX0NBQ0hFX0lQQ19QT1JUIiwiX19ORVhUX0lOQ1JFTUVOVEFMX0NBQ0hFX0lQQ19LRVkiLCJORVhUX1JVTlRJTUUiLCJpbnZva2VJcGNNZXRob2QiLCJyZXF1aXJlIiwibWV0aG9kIiwiaXBjUG9ydCIsImlwY0tleSIsImFyZ3MiLCJ1bmxvY2tOZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJleGlzdGluZ0xvY2siLCJuZXdMb2NrIiwidGFnIiwiX3RoaXNfY2FjaGVIYW5kbGVyX3JldmFsaWRhdGVUYWciLCJhcmd1bWVudHMiLCJmZXRjaENhY2hlS2V5IiwidXJsIiwiaW5pdCIsIk1BSU5fS0VZX1BSRUZJWCIsImJvZHlDaHVua3MiLCJlbmNvZGVyIiwiVGV4dEVuY29kZXIiLCJkZWNvZGVyIiwiVGV4dERlY29kZXIiLCJib2R5IiwiZ2V0UmVhZGVyIiwicmVhZGFibGVCb2R5IiwiY2h1bmtzIiwicGlwZVRvIiwiV3JpdGFibGVTdHJlYW0iLCJ3cml0ZSIsImNodW5rIiwicHVzaCIsImVuY29kZSIsImRlY29kZSIsInN0cmVhbSIsImxlbmd0aCIsInJlZHVjZSIsInRvdGFsIiwiYXJyIiwiYXJyYXlCdWZmZXIiLCJVaW50OEFycmF5Iiwib2Zmc2V0IiwiX29nQm9keSIsImVyciIsImVycm9yIiwia2V5cyIsImZvcm1EYXRhIiwia2V5IiwiU2V0IiwidmFsdWVzIiwiZ2V0QWxsIiwiYWxsIiwibWFwIiwidmFsIiwidGV4dCIsImpvaW4iLCJibG9iIiwiQmxvYiIsInR5cGUiLCJjYWNoZVN0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJoZWFkZXJzIiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJtb2RlIiwicmVkaXJlY3QiLCJjcmVkZW50aWFscyIsInJlZmVycmVyIiwicmVmZXJyZXJQb2xpY3kiLCJpbnRlZ3JpdHkiLCJjYWNoZSIsImJ1ZmZlclRvSGV4IiwiYnVmZmVyIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJiIiwidG9TdHJpbmciLCJwYWRTdGFydCIsImNyeXB0byIsInN1YnRsZSIsImRpZ2VzdCIsImNyeXB0bzEiLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiY3R4IiwiX2NhY2hlRGF0YV92YWx1ZSIsIl90aGlzX3ByZXJlbmRlck1hbmlmZXN0X3JvdXRlc190b1JvdXRlIiwia2luZEhpbnQiLCJlbnRyeSIsInJldmFsaWRhdGUiLCJjYWNoZURhdGEiLCJ2YWx1ZSIsImtpbmQiLCJjb21iaW5lZFRhZ3MiLCJ0YWdzIiwic29mdFRhZ3MiLCJzb21lIiwiX3RoaXNfcmV2YWxpZGF0ZWRUYWdzIiwiaW5jbHVkZXMiLCJhZ2UiLCJub3ciLCJsYXN0TW9kaWZpZWQiLCJpc1N0YWxlIiwiZGF0YSIsImN1clJldmFsaWRhdGUiLCJ1bmRlZmluZWQiLCJub3RGb3VuZFJvdXRlcyIsIkVycm9yIiwiZXhwZXJpbWVudGFsUFBSIiwiZGF0YVJvdXRlIiwicG9zaXgiLCJzcmNSb3V0ZSIsInByZWZldGNoRGF0YVJvdXRlIiwid2FybiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/is-ipv6.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/is-ipv6.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isIPv6: () => (/* binding */ isIPv6)\n/* harmony export */ });\n// Regex from `node/lib/internal/net.js`: https://github.com/nodejs/node/blob/9fc57006c27564ed7f75eee090eca86786508f51/lib/internal/net.js#L19-L29\n// License included below:\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nconst v4Seg = \"(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\";\nconst v4Str = `(${v4Seg}[.]){3}${v4Seg}`;\nconst v6Seg = \"(?:[0-9a-fA-F]{1,4})\";\nconst IPv6Reg = new RegExp(\"^(\" + `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + \")(%[0-9a-zA-Z-.:]{1,})?$\");\nfunction isIPv6(s) {\n return IPv6Reg.test(s);\n} //# sourceMappingURL=is-ipv6.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9pcy1pcHY2LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxrSkFBa0o7QUFDbEosMEJBQTBCO0FBQzFCLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7QUFDekMsTUFBTUEsUUFBUTtBQUNkLE1BQU1DLFFBQVEsQ0FBQyxDQUFDLEVBQUVELE1BQU0sT0FBTyxFQUFFQSxNQUFNLENBQUM7QUFDeEMsTUFBTUUsUUFBUTtBQUNkLE1BQU1DLFVBQVUsSUFBSUMsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFRixNQUFNLFFBQVEsRUFBRUEsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRUEsTUFBTSxRQUFRLEVBQUVELE1BQU0sRUFBRSxFQUFFQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFQSxNQUFNLFNBQVMsRUFBRUQsTUFBTSxHQUFHLEVBQUVDLE1BQU0sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUVBLE1BQU0sVUFBVSxFQUFFQSxNQUFNLE9BQU8sRUFBRUQsTUFBTSxHQUFHLEVBQUVDLE1BQU0sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUVBLE1BQU0sVUFBVSxFQUFFQSxNQUFNLE9BQU8sRUFBRUQsTUFBTSxHQUFHLEVBQUVDLE1BQU0sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUVBLE1BQU0sVUFBVSxFQUFFQSxNQUFNLE9BQU8sRUFBRUQsTUFBTSxHQUFHLEVBQUVDLE1BQU0sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUVBLE1BQU0sVUFBVSxFQUFFQSxNQUFNLE9BQU8sRUFBRUQsTUFBTSxHQUFHLEVBQUVDLE1BQU0sVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUVBLE1BQU0sT0FBTyxFQUFFRCxNQUFNLEtBQUssRUFBRUMsTUFBTSxVQUFVLENBQUMsR0FBRztBQUN2ZixTQUFTRyxPQUFPQyxDQUFDO0lBQ3BCLE9BQU9ILFFBQVFJLElBQUksQ0FBQ0Q7QUFDeEIsRUFFQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9saWIvaXMtaXB2Ni5qcz9iMjkxIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZ2V4IGZyb20gYG5vZGUvbGliL2ludGVybmFsL25ldC5qc2A6IGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzlmYzU3MDA2YzI3NTY0ZWQ3Zjc1ZWVlMDkwZWNhODY3ODY1MDhmNTEvbGliL2ludGVybmFsL25ldC5qcyNMMTktTDI5XG4vLyBMaWNlbnNlIGluY2x1ZGVkIGJlbG93OlxuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5jb25zdCB2NFNlZyA9IFwiKD86WzAtOV18WzEtOV1bMC05XXwxWzAtOV1bMC05XXwyWzAtNF1bMC05XXwyNVswLTVdKVwiO1xuY29uc3QgdjRTdHIgPSBgKCR7djRTZWd9Wy5dKXszfSR7djRTZWd9YDtcbmNvbnN0IHY2U2VnID0gXCIoPzpbMC05YS1mQS1GXXsxLDR9KVwiO1xuY29uc3QgSVB2NlJlZyA9IG5ldyBSZWdFeHAoXCJeKFwiICsgYCg/OiR7djZTZWd9Oil7N30oPzoke3Y2U2VnfXw6KXxgICsgYCg/OiR7djZTZWd9Oil7Nn0oPzoke3Y0U3RyfXw6JHt2NlNlZ318Oil8YCArIGAoPzoke3Y2U2VnfTopezV9KD86OiR7djRTdHJ9fCg6JHt2NlNlZ30pezEsMn18Oil8YCArIGAoPzoke3Y2U2VnfTopezR9KD86KDoke3Y2U2VnfSl7MCwxfToke3Y0U3RyfXwoOiR7djZTZWd9KXsxLDN9fDopfGAgKyBgKD86JHt2NlNlZ306KXszfSg/Oig6JHt2NlNlZ30pezAsMn06JHt2NFN0cn18KDoke3Y2U2VnfSl7MSw0fXw6KXxgICsgYCg/OiR7djZTZWd9Oil7Mn0oPzooOiR7djZTZWd9KXswLDN9OiR7djRTdHJ9fCg6JHt2NlNlZ30pezEsNX18Oil8YCArIGAoPzoke3Y2U2VnfTopezF9KD86KDoke3Y2U2VnfSl7MCw0fToke3Y0U3RyfXwoOiR7djZTZWd9KXsxLDZ9fDopfGAgKyBgKD86OigoPzo6JHt2NlNlZ30pezAsNX06JHt2NFN0cn18KD86OiR7djZTZWd9KXsxLDd9fDopKWAgKyBcIikoJVswLTlhLXpBLVotLjpdezEsfSk/JFwiKTtcbmV4cG9ydCBmdW5jdGlvbiBpc0lQdjYocykge1xuICAgIHJldHVybiBJUHY2UmVnLnRlc3Qocyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWlwdjYuanMubWFwIl0sIm5hbWVzIjpbInY0U2VnIiwidjRTdHIiLCJ2NlNlZyIsIklQdjZSZWciLCJSZWdFeHAiLCJpc0lQdjYiLCJzIiwidGVzdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/is-ipv6.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/match-next-data-pathname.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/match-next-data-pathname.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ matchNextDataPathname: () => (/* binding */ matchNextDataPathname)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils_path_match__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/router/utils/path-match */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js\");\n\nconst matcher = (0,_shared_lib_router_utils_path_match__WEBPACK_IMPORTED_MODULE_0__.getPathMatch)(\"/_next/data/:path*\");\nfunction matchNextDataPathname(pathname) {\n if (typeof pathname !== \"string\") return false;\n return matcher(pathname);\n} //# sourceMappingURL=match-next-data-pathname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9tYXRjaC1uZXh0LWRhdGEtcGF0aG5hbWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0U7QUFDeEUsTUFBTUMsVUFBVUQsaUZBQVlBLENBQUM7QUFDdEIsU0FBU0Usc0JBQXNCQyxRQUFRO0lBQzFDLElBQUksT0FBT0EsYUFBYSxVQUFVLE9BQU87SUFDekMsT0FBT0YsUUFBUUU7QUFDbkIsRUFFQSxvREFBb0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9saWIvbWF0Y2gtbmV4dC1kYXRhLXBhdGhuYW1lLmpzPzYwNjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0UGF0aE1hdGNoIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtbWF0Y2hcIjtcbmNvbnN0IG1hdGNoZXIgPSBnZXRQYXRoTWF0Y2goXCIvX25leHQvZGF0YS86cGF0aCpcIik7XG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hOZXh0RGF0YVBhdGhuYW1lKHBhdGhuYW1lKSB7XG4gICAgaWYgKHR5cGVvZiBwYXRobmFtZSAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBtYXRjaGVyKHBhdGhuYW1lKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWF0Y2gtbmV4dC1kYXRhLXBhdGhuYW1lLmpzLm1hcCJdLCJuYW1lcyI6WyJnZXRQYXRoTWF0Y2giLCJtYXRjaGVyIiwibWF0Y2hOZXh0RGF0YVBhdGhuYW1lIiwicGF0aG5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/match-next-data-pathname.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/patch-fetch.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/patch-fetch.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addImplicitTags: () => (/* binding */ addImplicitTags),\n/* harmony export */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ validateRevalidate: () => (/* binding */ validateRevalidate),\n/* harmony export */ validateTags: () => (/* binding */ validateTags)\n/* harmony export */ });\n/* harmony import */ var _trace_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./trace/constants */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n/* harmony import */ var _trace_tracer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./trace/tracer */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _build_output_log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../build/output/log */ \"(ssr)/../../node_modules/next/dist/esm/build/output/log.js\");\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"buffer\")[\"Buffer\"];\n\n\n\n\nconst isEdgeRuntime = \"edge\" === \"edge\";\nfunction validateRevalidate(revalidateVal, pathname) {\n try {\n let normalizedRevalidate = undefined;\n if (revalidateVal === false) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal === \"number\" && !isNaN(revalidateVal) && revalidateVal > -1) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal !== \"undefined\") {\n throw new Error(`Invalid revalidate value \"${revalidateVal}\" on \"${pathname}\", must be a non-negative number or \"false\"`);\n }\n return normalizedRevalidate;\n } catch (err) {\n // handle client component error from attempting to check revalidate value\n if (err instanceof Error && err.message.includes(\"Invalid revalidate\")) {\n throw err;\n }\n return undefined;\n }\n}\nfunction validateTags(tags, description) {\n const validTags = [];\n const invalidTags = [];\n for (const tag of tags){\n if (typeof tag !== \"string\") {\n invalidTags.push({\n tag,\n reason: \"invalid type, must be a string\"\n });\n } else if (tag.length > _lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_TAG_MAX_LENGTH) {\n invalidTags.push({\n tag,\n reason: `exceeded max length of ${_lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_TAG_MAX_LENGTH}`\n });\n } else {\n validTags.push(tag);\n }\n }\n if (invalidTags.length > 0) {\n console.warn(`Warning: invalid tags passed to ${description}: `);\n for (const { tag, reason } of invalidTags){\n console.log(`tag: \"${tag}\" ${reason}`);\n }\n }\n return validTags;\n}\nconst getDerivedTags = (pathname)=>{\n const derivedTags = [\n `/layout`\n ];\n // we automatically add the current path segments as tags\n // for revalidatePath handling\n if (pathname.startsWith(\"/\")) {\n const pathnameParts = pathname.split(\"/\");\n for(let i = 1; i < pathnameParts.length + 1; i++){\n let curPathname = pathnameParts.slice(0, i).join(\"/\");\n if (curPathname) {\n // all derived tags other than the page are layout tags\n if (!curPathname.endsWith(\"/page\") && !curPathname.endsWith(\"/route\")) {\n curPathname = `${curPathname}${!curPathname.endsWith(\"/\") ? \"/\" : \"\"}layout`;\n }\n derivedTags.push(curPathname);\n }\n }\n }\n return derivedTags;\n};\nfunction addImplicitTags(staticGenerationStore) {\n const newTags = [];\n const { pagePath, urlPathname } = staticGenerationStore;\n if (!Array.isArray(staticGenerationStore.tags)) {\n staticGenerationStore.tags = [];\n }\n if (pagePath) {\n const derivedTags = getDerivedTags(pagePath);\n for (let tag of derivedTags){\n var _staticGenerationStore_tags;\n tag = `${_lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_IMPLICIT_TAG_ID}${tag}`;\n if (!((_staticGenerationStore_tags = staticGenerationStore.tags) == null ? void 0 : _staticGenerationStore_tags.includes(tag))) {\n staticGenerationStore.tags.push(tag);\n }\n newTags.push(tag);\n }\n }\n if (urlPathname) {\n var _staticGenerationStore_tags1;\n const parsedPathname = new URL(urlPathname, \"http://n\").pathname;\n const tag = `${_lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_IMPLICIT_TAG_ID}${parsedPathname}`;\n if (!((_staticGenerationStore_tags1 = staticGenerationStore.tags) == null ? void 0 : _staticGenerationStore_tags1.includes(tag))) {\n staticGenerationStore.tags.push(tag);\n }\n newTags.push(tag);\n }\n return newTags;\n}\nfunction trackFetchMetric(staticGenerationStore, ctx) {\n if (!staticGenerationStore) return;\n if (!staticGenerationStore.fetchMetrics) {\n staticGenerationStore.fetchMetrics = [];\n }\n const dedupeFields = [\n \"url\",\n \"status\",\n \"method\"\n ];\n // don't add metric if one already exists for the fetch\n if (staticGenerationStore.fetchMetrics.some((metric)=>{\n return dedupeFields.every((field)=>metric[field] === ctx[field]);\n })) {\n return;\n }\n staticGenerationStore.fetchMetrics.push({\n url: ctx.url,\n cacheStatus: ctx.cacheStatus,\n cacheReason: ctx.cacheReason,\n status: ctx.status,\n method: ctx.method,\n start: ctx.start,\n end: Date.now(),\n idx: staticGenerationStore.nextFetchId || 0\n });\n}\n// we patch fetch to collect cache information used for\n// determining if a page is static or not\nfunction patchFetch({ serverHooks, staticGenerationAsyncStorage }) {\n if (!globalThis._nextOriginalFetch) {\n globalThis._nextOriginalFetch = globalThis.fetch;\n }\n if (globalThis.fetch.__nextPatched) return;\n const { DynamicServerError } = serverHooks;\n const originFetch = globalThis._nextOriginalFetch;\n globalThis.fetch = async (input, init)=>{\n var _init_method, _this;\n let url;\n try {\n url = new URL(input instanceof Request ? input.url : input);\n url.username = \"\";\n url.password = \"\";\n } catch {\n // Error caused by malformed URL should be handled by native fetch\n url = undefined;\n }\n const fetchUrl = (url == null ? void 0 : url.href) ?? \"\";\n const fetchStart = Date.now();\n const method = (init == null ? void 0 : (_init_method = init.method) == null ? void 0 : _init_method.toUpperCase()) || \"GET\";\n // Do create a new span trace for internal fetches in the\n // non-verbose mode.\n const isInternal = ((_this = init == null ? void 0 : init.next) == null ? void 0 : _this.internal) === true;\n const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === \"1\";\n return await (0,_trace_tracer__WEBPACK_IMPORTED_MODULE_1__.getTracer)().trace(isInternal ? _trace_constants__WEBPACK_IMPORTED_MODULE_0__.NextNodeServerSpan.internalFetch : _trace_constants__WEBPACK_IMPORTED_MODULE_0__.AppRenderSpan.fetch, {\n hideSpan,\n kind: _trace_tracer__WEBPACK_IMPORTED_MODULE_1__.SpanKind.CLIENT,\n spanName: [\n \"fetch\",\n method,\n fetchUrl\n ].filter(Boolean).join(\" \"),\n attributes: {\n \"http.url\": fetchUrl,\n \"http.method\": method,\n \"net.peer.name\": url == null ? void 0 : url.hostname,\n \"net.peer.port\": (url == null ? void 0 : url.port) || undefined\n }\n }, async ()=>{\n var _getRequestMeta;\n const staticGenerationStore = staticGenerationAsyncStorage.getStore() || (fetch.__nextGetStaticStore == null ? void 0 : fetch.__nextGetStaticStore.call(fetch));\n const isRequestInput = input && typeof input === \"object\" && typeof input.method === \"string\";\n const getRequestMeta = (field)=>{\n // If request input is present but init is not, retrieve from input first.\n const value = init == null ? void 0 : init[field];\n return value || (isRequestInput ? input[field] : null);\n };\n // If the staticGenerationStore is not available, we can't do any\n // special treatment of fetch, therefore fallback to the original\n // fetch implementation.\n if (!staticGenerationStore || isInternal || staticGenerationStore.isDraftMode) {\n return originFetch(input, init);\n }\n let revalidate = undefined;\n const getNextField = (field)=>{\n var _init_next, _init_next1, _input_next;\n return typeof (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next[field]) !== \"undefined\" ? init == null ? void 0 : (_init_next1 = init.next) == null ? void 0 : _init_next1[field] : isRequestInput ? (_input_next = input.next) == null ? void 0 : _input_next[field] : undefined;\n };\n // RequestInit doesn't keep extra fields e.g. next so it's\n // only available if init is used separate\n let curRevalidate = getNextField(\"revalidate\");\n const tags = validateTags(getNextField(\"tags\") || [], `fetch ${input.toString()}`);\n if (Array.isArray(tags)) {\n if (!staticGenerationStore.tags) {\n staticGenerationStore.tags = [];\n }\n for (const tag of tags){\n if (!staticGenerationStore.tags.includes(tag)) {\n staticGenerationStore.tags.push(tag);\n }\n }\n }\n const implicitTags = addImplicitTags(staticGenerationStore);\n const isOnlyCache = staticGenerationStore.fetchCache === \"only-cache\";\n const isForceCache = staticGenerationStore.fetchCache === \"force-cache\";\n const isDefaultCache = staticGenerationStore.fetchCache === \"default-cache\";\n const isDefaultNoStore = staticGenerationStore.fetchCache === \"default-no-store\";\n const isOnlyNoStore = staticGenerationStore.fetchCache === \"only-no-store\";\n const isForceNoStore = staticGenerationStore.fetchCache === \"force-no-store\";\n const isUsingNoStore = !!staticGenerationStore.isUnstableNoStore;\n let _cache = getRequestMeta(\"cache\");\n let cacheReason = \"\";\n if (typeof _cache === \"string\" && typeof curRevalidate !== \"undefined\") {\n // when providing fetch with a Request input, it'll automatically set a cache value of 'default'\n // we only want to warn if the user is explicitly setting a cache value\n if (!(isRequestInput && _cache === \"default\")) {\n _build_output_log__WEBPACK_IMPORTED_MODULE_3__.warn(`fetch for ${fetchUrl} on ${staticGenerationStore.urlPathname} specified \"cache: ${_cache}\" and \"revalidate: ${curRevalidate}\", only one should be specified.`);\n }\n _cache = undefined;\n }\n if (_cache === \"force-cache\") {\n curRevalidate = false;\n } else if (_cache === \"no-cache\" || _cache === \"no-store\" || isForceNoStore || isOnlyNoStore) {\n curRevalidate = 0;\n }\n if (_cache === \"no-cache\" || _cache === \"no-store\") {\n cacheReason = `cache: ${_cache}`;\n }\n revalidate = validateRevalidate(curRevalidate, staticGenerationStore.urlPathname);\n const _headers = getRequestMeta(\"headers\");\n const initHeaders = typeof (_headers == null ? void 0 : _headers.get) === \"function\" ? _headers : new Headers(_headers || {});\n const hasUnCacheableHeader = initHeaders.get(\"authorization\") || initHeaders.get(\"cookie\");\n const isUnCacheableMethod = ![\n \"get\",\n \"head\"\n ].includes(((_getRequestMeta = getRequestMeta(\"method\")) == null ? void 0 : _getRequestMeta.toLowerCase()) || \"get\");\n // if there are authorized headers or a POST method and\n // dynamic data usage was present above the tree we bail\n // e.g. if cookies() is used before an authed/POST fetch\n const autoNoCache = (hasUnCacheableHeader || isUnCacheableMethod) && staticGenerationStore.revalidate === 0;\n if (isForceNoStore) {\n cacheReason = \"fetchCache = force-no-store\";\n }\n if (isOnlyNoStore) {\n if (_cache === \"force-cache\" || typeof revalidate !== \"undefined\" && (revalidate === false || revalidate > 0)) {\n throw new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`);\n }\n cacheReason = \"fetchCache = only-no-store\";\n }\n if (isOnlyCache && _cache === \"no-store\") {\n throw new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`);\n }\n if (isForceCache && (typeof curRevalidate === \"undefined\" || curRevalidate === 0)) {\n cacheReason = \"fetchCache = force-cache\";\n revalidate = false;\n }\n if (typeof revalidate === \"undefined\") {\n if (isDefaultCache) {\n revalidate = false;\n cacheReason = \"fetchCache = default-cache\";\n } else if (autoNoCache) {\n revalidate = 0;\n cacheReason = \"auto no cache\";\n } else if (isDefaultNoStore) {\n revalidate = 0;\n cacheReason = \"fetchCache = default-no-store\";\n } else if (isUsingNoStore) {\n revalidate = 0;\n cacheReason = \"noStore call\";\n } else {\n cacheReason = \"auto cache\";\n revalidate = typeof staticGenerationStore.revalidate === \"boolean\" || typeof staticGenerationStore.revalidate === \"undefined\" ? false : staticGenerationStore.revalidate;\n }\n } else if (!cacheReason) {\n cacheReason = `revalidate: ${revalidate}`;\n }\n if (// `revalidate: 0` values\n !(staticGenerationStore.forceStatic && revalidate === 0) && // we don't consider autoNoCache to switch to dynamic during\n // revalidate although if it occurs during build we do\n !autoNoCache && // If the revalidate value isn't currently set or the value is less\n // than the current revalidate value, we should update the revalidate\n // value.\n (typeof staticGenerationStore.revalidate === \"undefined\" || typeof revalidate === \"number\" && (staticGenerationStore.revalidate === false || typeof staticGenerationStore.revalidate === \"number\" && revalidate < staticGenerationStore.revalidate))) {\n // If we were setting the revalidate value to 0, we should try to\n // postpone instead first.\n if (revalidate === 0) {\n staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, \"revalidate: 0\");\n }\n staticGenerationStore.revalidate = revalidate;\n }\n const isCacheableRevalidate = typeof revalidate === \"number\" && revalidate > 0 || revalidate === false;\n let cacheKey;\n if (staticGenerationStore.incrementalCache && isCacheableRevalidate) {\n try {\n cacheKey = await staticGenerationStore.incrementalCache.fetchCacheKey(fetchUrl, isRequestInput ? input : init);\n } catch (err) {\n console.error(`Failed to generate cache key for`, input);\n }\n }\n const fetchIdx = staticGenerationStore.nextFetchId ?? 1;\n staticGenerationStore.nextFetchId = fetchIdx + 1;\n const normalizedRevalidate = typeof revalidate !== \"number\" ? _lib_constants__WEBPACK_IMPORTED_MODULE_2__.CACHE_ONE_YEAR : revalidate;\n const doOriginalFetch = async (isStale, cacheReasonOverride)=>{\n const requestInputFields = [\n \"cache\",\n \"credentials\",\n \"headers\",\n \"integrity\",\n \"keepalive\",\n \"method\",\n \"mode\",\n \"redirect\",\n \"referrer\",\n \"referrerPolicy\",\n \"window\",\n \"duplex\",\n // don't pass through signal when revalidating\n ...isStale ? [] : [\n \"signal\"\n ]\n ];\n if (isRequestInput) {\n const reqInput = input;\n const reqOptions = {\n body: reqInput._ogBody || reqInput.body\n };\n for (const field of requestInputFields){\n // @ts-expect-error custom fields\n reqOptions[field] = reqInput[field];\n }\n input = new Request(reqInput.url, reqOptions);\n } else if (init) {\n const initialInit = init;\n init = {\n body: init._ogBody || init.body\n };\n for (const field of requestInputFields){\n // @ts-expect-error custom fields\n init[field] = initialInit[field];\n }\n }\n // add metadata to init without editing the original\n const clonedInit = {\n ...init,\n next: {\n ...init == null ? void 0 : init.next,\n fetchType: \"origin\",\n fetchIdx\n }\n };\n return originFetch(input, clonedInit).then(async (res)=>{\n if (!isStale) {\n trackFetchMetric(staticGenerationStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason: cacheReasonOverride || cacheReason,\n cacheStatus: revalidate === 0 || cacheReasonOverride ? \"skip\" : \"miss\",\n status: res.status,\n method: clonedInit.method || \"GET\"\n });\n }\n if (res.status === 200 && staticGenerationStore.incrementalCache && cacheKey && isCacheableRevalidate) {\n const bodyBuffer = Buffer.from(await res.arrayBuffer());\n try {\n await staticGenerationStore.incrementalCache.set(cacheKey, {\n kind: \"FETCH\",\n data: {\n headers: Object.fromEntries(res.headers.entries()),\n body: bodyBuffer.toString(\"base64\"),\n status: res.status,\n url: res.url\n },\n revalidate: normalizedRevalidate\n }, {\n fetchCache: true,\n revalidate,\n fetchUrl,\n fetchIdx,\n tags\n });\n } catch (err) {\n console.warn(`Failed to set fetch cache`, input, err);\n }\n const response = new Response(bodyBuffer, {\n headers: new Headers(res.headers),\n status: res.status\n });\n Object.defineProperty(response, \"url\", {\n value: res.url\n });\n return response;\n }\n return res;\n });\n };\n let handleUnlock = ()=>Promise.resolve();\n let cacheReasonOverride;\n if (cacheKey && staticGenerationStore.incrementalCache) {\n handleUnlock = await staticGenerationStore.incrementalCache.lock(cacheKey);\n const entry = staticGenerationStore.isOnDemandRevalidate ? null : await staticGenerationStore.incrementalCache.get(cacheKey, {\n kindHint: \"fetch\",\n revalidate,\n fetchUrl,\n fetchIdx,\n tags,\n softTags: implicitTags\n });\n if (entry) {\n await handleUnlock();\n } else {\n // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers\n cacheReasonOverride = \"cache-control: no-cache (hard refresh)\";\n }\n if ((entry == null ? void 0 : entry.value) && entry.value.kind === \"FETCH\") {\n // when stale and is revalidating we wait for fresh data\n // so the revalidated entry has the updated data\n if (!(staticGenerationStore.isRevalidate && entry.isStale)) {\n if (entry.isStale) {\n staticGenerationStore.pendingRevalidates ??= {};\n if (!staticGenerationStore.pendingRevalidates[cacheKey]) {\n staticGenerationStore.pendingRevalidates[cacheKey] = doOriginalFetch(true).catch(console.error);\n }\n }\n const resData = entry.value.data;\n trackFetchMetric(staticGenerationStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason,\n cacheStatus: \"hit\",\n status: resData.status || 200,\n method: (init == null ? void 0 : init.method) || \"GET\"\n });\n const response = new Response(Buffer.from(resData.body, \"base64\"), {\n headers: resData.headers,\n status: resData.status\n });\n Object.defineProperty(response, \"url\", {\n value: entry.value.data.url\n });\n return response;\n }\n }\n }\n if (staticGenerationStore.isStaticGeneration && init && typeof init === \"object\") {\n const { cache } = init;\n // Delete `cache` property as Cloudflare Workers will throw an error\n if (isEdgeRuntime) delete init.cache;\n if (!staticGenerationStore.forceStatic && cache === \"no-store\") {\n const dynamicUsageReason = `no-store fetch ${input}${staticGenerationStore.urlPathname ? ` ${staticGenerationStore.urlPathname}` : \"\"}`;\n // If enabled, we should bail out of static generation.\n staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, dynamicUsageReason);\n // PPR is not enabled, or React postpone is not available, we\n // should set the revalidate to 0.\n staticGenerationStore.revalidate = 0;\n const err = new DynamicServerError(dynamicUsageReason);\n staticGenerationStore.dynamicUsageErr = err;\n staticGenerationStore.dynamicUsageDescription = dynamicUsageReason;\n }\n const hasNextConfig = \"next\" in init;\n const { next = {} } = init;\n if (typeof next.revalidate === \"number\" && (typeof staticGenerationStore.revalidate === \"undefined\" || typeof staticGenerationStore.revalidate === \"number\" && next.revalidate < staticGenerationStore.revalidate)) {\n if (!staticGenerationStore.forceDynamic && !staticGenerationStore.forceStatic && next.revalidate === 0) {\n const dynamicUsageReason = `revalidate: 0 fetch ${input}${staticGenerationStore.urlPathname ? ` ${staticGenerationStore.urlPathname}` : \"\"}`;\n // If enabled, we should bail out of static generation.\n staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, dynamicUsageReason);\n const err = new DynamicServerError(dynamicUsageReason);\n staticGenerationStore.dynamicUsageErr = err;\n staticGenerationStore.dynamicUsageDescription = dynamicUsageReason;\n }\n if (!staticGenerationStore.forceStatic || next.revalidate !== 0) {\n staticGenerationStore.revalidate = next.revalidate;\n }\n }\n if (hasNextConfig) delete init.next;\n }\n return doOriginalFetch(false, cacheReasonOverride).finally(handleUnlock);\n });\n };\n globalThis.fetch.__nextGetStaticStore = ()=>{\n return staticGenerationAsyncStorage;\n };\n globalThis.fetch.__nextPatched = true;\n} //# sourceMappingURL=patch-fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9wYXRjaC1mZXRjaC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBc0U7QUFDakI7QUFDdUQ7QUFDOUQ7QUFDOUMsTUFBTVEsZ0JBQWdCQyxNQUF3QixLQUFLO0FBQzVDLFNBQVNHLG1CQUFtQkMsYUFBYSxFQUFFQyxRQUFRO0lBQ3RELElBQUk7UUFDQSxJQUFJQyx1QkFBdUJDO1FBQzNCLElBQUlILGtCQUFrQixPQUFPO1lBQ3pCRSx1QkFBdUJGO1FBQzNCLE9BQU8sSUFBSSxPQUFPQSxrQkFBa0IsWUFBWSxDQUFDSSxNQUFNSixrQkFBa0JBLGdCQUFnQixDQUFDLEdBQUc7WUFDekZFLHVCQUF1QkY7UUFDM0IsT0FBTyxJQUFJLE9BQU9BLGtCQUFrQixhQUFhO1lBQzdDLE1BQU0sSUFBSUssTUFBTSxDQUFDLDBCQUEwQixFQUFFTCxjQUFjLE1BQU0sRUFBRUMsU0FBUywyQ0FBMkMsQ0FBQztRQUM1SDtRQUNBLE9BQU9DO0lBQ1gsRUFBRSxPQUFPSSxLQUFLO1FBQ1YsMEVBQTBFO1FBQzFFLElBQUlBLGVBQWVELFNBQVNDLElBQUlDLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDLHVCQUF1QjtZQUNwRSxNQUFNRjtRQUNWO1FBQ0EsT0FBT0g7SUFDWDtBQUNKO0FBQ08sU0FBU00sYUFBYUMsSUFBSSxFQUFFQyxXQUFXO0lBQzFDLE1BQU1DLFlBQVksRUFBRTtJQUNwQixNQUFNQyxjQUFjLEVBQUU7SUFDdEIsS0FBSyxNQUFNQyxPQUFPSixLQUFLO1FBQ25CLElBQUksT0FBT0ksUUFBUSxVQUFVO1lBQ3pCRCxZQUFZRSxJQUFJLENBQUM7Z0JBQ2JEO2dCQUNBRSxRQUFRO1lBQ1o7UUFDSixPQUFPLElBQUlGLElBQUlHLE1BQU0sR0FBR3hCLHFFQUF5QkEsRUFBRTtZQUMvQ29CLFlBQVlFLElBQUksQ0FBQztnQkFDYkQ7Z0JBQ0FFLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRXZCLHFF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Qzt3QkFDNUksdURBQXVEO3dCQUN2REgsc0JBQXNCbUcsUUFBUSxJQUFJLE9BQU8sS0FBSyxJQUFJbkcsc0JBQXNCbUcsUUFBUSxDQUFDaEMsSUFBSSxDQUFDbkUsdUJBQXVCa0o7d0JBQzdHLE1BQU01SyxNQUFNLElBQUk4RCxtQkFBbUI4Rzt3QkFDbkNsSixzQkFBc0JtSixlQUFlLEdBQUc3Szt3QkFDeEMwQixzQkFBc0JvSix1QkFBdUIsR0FBR0Y7b0JBQ3BEO29CQUNBLElBQUksQ0FBQ2xKLHNCQUFzQmtHLFdBQVcsSUFBSWhELEtBQUtzQixVQUFVLEtBQUssR0FBRzt3QkFDN0R4RSxzQkFBc0J3RSxVQUFVLEdBQUd0QixLQUFLc0IsVUFBVTtvQkFDdEQ7Z0JBQ0o7Z0JBQ0EsSUFBSTZFLGVBQWUsT0FBTzlHLEtBQUtXLElBQUk7WUFDdkM7WUFDQSxPQUFPd0QsZ0JBQWdCLE9BQU9FLHFCQUFxQjJDLE9BQU8sQ0FBQ25CO1FBQy9EO0lBQ0o7SUFDQXBHLFdBQVdFLEtBQUssQ0FBQ2dDLG9CQUFvQixHQUFHO1FBQ3BDLE9BQU9uQztJQUNYO0lBQ0FDLFdBQVdFLEtBQUssQ0FBQ0MsYUFBYSxHQUFHO0FBQ3JDLEVBRUEsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL3BhdGNoLWZldGNoLmpzP2FhYjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwUmVuZGVyU3BhbiwgTmV4dE5vZGVTZXJ2ZXJTcGFuIH0gZnJvbSBcIi4vdHJhY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRUcmFjZXIsIFNwYW5LaW5kIH0gZnJvbSBcIi4vdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBDQUNIRV9PTkVfWUVBUiwgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQsIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEggfSBmcm9tIFwiLi4vLi4vbGliL2NvbnN0YW50c1wiO1xuaW1wb3J0ICogYXMgTG9nIGZyb20gXCIuLi8uLi9idWlsZC9vdXRwdXQvbG9nXCI7XG5jb25zdCBpc0VkZ2VSdW50aW1lID0gcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIjtcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJldmFsaWRhdGUocmV2YWxpZGF0ZVZhbCwgcGF0aG5hbWUpIHtcbiAgICB0cnkge1xuICAgICAgICBsZXQgbm9ybWFsaXplZFJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZXZhbGlkYXRlVmFsID09PSBmYWxzZSkge1xuICAgICAgICAgICAgbm9ybWFsaXplZFJldmFsaWRhdGUgPSByZXZhbGlkYXRlVmFsO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXZhbGlkYXRlVmFsID09PSBcIm51bWJlclwiICYmICFpc05hTihyZXZhbGlkYXRlVmFsKSAmJiByZXZhbGlkYXRlVmFsID4gLTEpIHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gcmV2YWxpZGF0ZVZhbDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmV2YWxpZGF0ZVZhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJldmFsaWRhdGUgdmFsdWUgXCIke3JldmFsaWRhdGVWYWx9XCIgb24gXCIke3BhdGhuYW1lfVwiLCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlciBvciBcImZhbHNlXCJgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZFJldmFsaWRhdGU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGhhbmRsZSBjbGllbnQgY29tcG9uZW50IGVycm9yIGZyb20gYXR0ZW1wdGluZyB0byBjaGVjayByZXZhbGlkYXRlIHZhbHVlXG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubWVzc2FnZS5pbmNsdWRlcyhcIkludmFsaWQgcmV2YWxpZGF0ZVwiKSkge1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGFncyh0YWdzLCBkZXNjcmlwdGlvbikge1xuICAgIGNvbnN0IHZhbGlkVGFncyA9IFtdO1xuICAgIGNvbnN0IGludmFsaWRUYWdzID0gW107XG4gICAgZm9yIChjb25zdCB0YWcgb2YgdGFncyl7XG4gICAgICAgIGlmICh0eXBlb2YgdGFnICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpbnZhbGlkVGFncy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgcmVhc29uOiBcImludmFsaWQgdHlwZSwgbXVzdCBiZSBhIHN0cmluZ1wiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0YWcubGVuZ3RoID4gTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgaW52YWxpZFRhZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgIHJlYXNvbjogYGV4Y2VlZGVkIG1heCBsZW5ndGggb2YgJHtORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIfWBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsaWRUYWdzLnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW52YWxpZFRhZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6IGludmFsaWQgdGFncyBwYXNzZWQgdG8gJHtkZXNjcmlwdGlvbn06IGApO1xuICAgICAgICBmb3IgKGNvbnN0IHsgdGFnLCByZWFzb24gfSBvZiBpbnZhbGlkVGFncyl7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgdGFnOiBcIiR7dGFnfVwiICR7cmVhc29ufWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWxpZFRhZ3M7XG59XG5jb25zdCBnZXREZXJpdmVkVGFncyA9IChwYXRobmFtZSk9PntcbiAgICBjb25zdCBkZXJpdmVkVGFncyA9IFtcbiAgICAgICAgYC9sYXlvdXRgXG4gICAgXTtcbiAgICAvLyB3ZSBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgY3VycmVudCBwYXRoIHNlZ21lbnRzIGFzIHRhZ3NcbiAgICAvLyBmb3IgcmV2YWxpZGF0ZVBhdGggaGFuZGxpbmdcbiAgICBpZiAocGF0aG5hbWUuc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgY29uc3QgcGF0aG5hbWVQYXJ0cyA9IHBhdGhuYW1lLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgZm9yKGxldCBpID0gMTsgaSA8IHBhdGhuYW1lUGFydHMubGVuZ3RoICsgMTsgaSsrKXtcbiAgICAgICAgICAgIGxldCBjdXJQYXRobmFtZSA9IHBhdGhuYW1lUGFydHMuc2xpY2UoMCwgaSkuam9pbihcIi9cIik7XG4gICAgICAgICAgICBpZiAoY3VyUGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICAvLyBhbGwgZGVyaXZlZCB0YWdzIG90aGVyIHRoYW4gdGhlIHBhZ2UgYXJlIGxheW91dCB0YWdzXG4gICAgICAgICAgICAgICAgaWYgKCFjdXJQYXRobmFtZS5lbmRzV2l0aChcIi9wYWdlXCIpICYmICFjdXJQYXRobmFtZS5lbmRzV2l0aChcIi9yb3V0ZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJQYXRobmFtZSA9IGAke2N1clBhdGhuYW1lfSR7IWN1clBhdGhuYW1lLmVuZHNXaXRoKFwiL1wiKSA/IFwiL1wiIDogXCJcIn1sYXlvdXRgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZXJpdmVkVGFncy5wdXNoKGN1clBhdGhuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGVyaXZlZFRhZ3M7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEltcGxpY2l0VGFncyhzdGF0aWNHZW5lcmF0aW9uU3RvcmUpIHtcbiAgICBjb25zdCBuZXdUYWdzID0gW107XG4gICAgY29uc3QgeyBwYWdlUGF0aCwgdXJsUGF0aG5hbWUgfSA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc3RhdGljR2VuZXJhdGlvblN0b3JlLnRhZ3MpKSB7XG4gICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS50YWdzID0gW107XG4gICAgfVxuICAgIGlmIChwYWdlUGF0aCkge1xuICAgICAgICBjb25zdCBkZXJpdmVkVGFncyA9IGdldERlcml2ZWRUYWdzKHBhZ2VQYXRoKTtcbiAgICAgICAgZm9yIChsZXQgdGFnIG9mIGRlcml2ZWRUYWdzKXtcbiAgICAgICAgICAgIHZhciBfc3RhdGljR2VuZXJhdGlvblN0b3JlX3RhZ3M7XG4gICAgICAgICAgICB0YWcgPSBgJHtORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRH0ke3RhZ31gO1xuICAgICAgICAgICAgaWYgKCEoKF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFncyA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS50YWdzKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YXRpY0dlbmVyYXRpb25TdG9yZV90YWdzLmluY2x1ZGVzKHRhZykpKSB7XG4gICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnRhZ3MucHVzaCh0YWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3VGFncy5wdXNoKHRhZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHVybFBhdGhuYW1lKSB7XG4gICAgICAgIHZhciBfc3RhdGljR2VuZXJhdGlvblN0b3JlX3RhZ3MxO1xuICAgICAgICBjb25zdCBwYXJzZWRQYXRobmFtZSA9IG5ldyBVUkwodXJsUGF0aG5hbWUsIFwiaHR0cDovL25cIikucGF0aG5hbWU7XG4gICAgICAgIGNvbnN0IHRhZyA9IGAke05FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEfSR7cGFyc2VkUGF0aG5hbWV9YDtcbiAgICAgICAgaWYgKCEoKF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFnczEgPSBzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncykgPT0gbnVsbCA/IHZvaWQgMCA6IF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFnczEuaW5jbHVkZXModGFnKSkpIHtcbiAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS50YWdzLnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgICAgICBuZXdUYWdzLnB1c2godGFnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld1RhZ3M7XG59XG5mdW5jdGlvbiB0cmFja0ZldGNoTWV0cmljKHN0YXRpY0dlbmVyYXRpb25TdG9yZSwgY3R4KSB7XG4gICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUpIHJldHVybjtcbiAgICBpZiAoIXN0YXRpY0dlbmVyYXRpb25TdG9yZS5mZXRjaE1ldHJpY3MpIHtcbiAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoTWV0cmljcyA9IFtdO1xuICAgIH1cbiAgICBjb25zdCBkZWR1cGVGaWVsZHMgPSBbXG4gICAgICAgIFwidXJsXCIsXG4gICAgICAgIFwic3RhdHVzXCIsXG4gICAgICAgIFwibWV0aG9kXCJcbiAgICBdO1xuICAgIC8vIGRvbid0IGFkZCBtZXRyaWMgaWYgb25lIGFscmVhZHkgZXhpc3RzIGZvciB0aGUgZmV0Y2hcbiAgICBpZiAoc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoTWV0cmljcy5zb21lKChtZXRyaWMpPT57XG4gICAgICAgIHJldHVybiBkZWR1cGVGaWVsZHMuZXZlcnkoKGZpZWxkKT0+bWV0cmljW2ZpZWxkXSA9PT0gY3R4W2ZpZWxkXSk7XG4gICAgfSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZmV0Y2hNZXRyaWNzLnB1c2goe1xuICAgICAgICB1cmw6IGN0eC51cmwsXG4gICAgICAgIGNhY2hlU3RhdHVzOiBjdHguY2FjaGVTdGF0dXMsXG4gICAgICAgIGNhY2hlUmVhc29uOiBjdHguY2FjaGVSZWFzb24sXG4gICAgICAgIHN0YXR1czogY3R4LnN0YXR1cyxcbiAgICAgICAgbWV0aG9kOiBjdHgubWV0aG9kLFxuICAgICAgICBzdGFydDogY3R4LnN0YXJ0LFxuICAgICAgICBlbmQ6IERhdGUubm93KCksXG4gICAgICAgIGlkeDogc3RhdGljR2VuZXJhdGlvblN0b3JlLm5leHRGZXRjaElkIHx8IDBcbiAgICB9KTtcbn1cbi8vIHdlIHBhdGNoIGZldGNoIHRvIGNvbGxlY3QgY2FjaGUgaW5mb3JtYXRpb24gdXNlZCBmb3Jcbi8vIGRldGVybWluaW5nIGlmIGEgcGFnZSBpcyBzdGF0aWMgb3Igbm90XG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hGZXRjaCh7IHNlcnZlckhvb2tzLCBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlIH0pIHtcbiAgICBpZiAoIWdsb2JhbFRoaXMuX25leHRPcmlnaW5hbEZldGNoKSB7XG4gICAgICAgIGdsb2JhbFRoaXMuX25leHRPcmlnaW5hbEZldGNoID0gZ2xvYmFsVGhpcy5mZXRjaDtcbiAgICB9XG4gICAgaWYgKGdsb2JhbFRoaXMuZmV0Y2guX19uZXh0UGF0Y2hlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHsgRHluYW1pY1NlcnZlckVycm9yIH0gPSBzZXJ2ZXJIb29rcztcbiAgICBjb25zdCBvcmlnaW5GZXRjaCA9IGdsb2JhbFRoaXMuX25leHRPcmlnaW5hbEZldGNoO1xuICAgIGdsb2JhbFRoaXMuZmV0Y2ggPSBhc3luYyAoaW5wdXQsIGluaXQpPT57XG4gICAgICAgIHZhciBfaW5pdF9tZXRob2QsIF90aGlzO1xuICAgICAgICBsZXQgdXJsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QgPyBpbnB1dC51cmwgOiBpbnB1dCk7XG4gICAgICAgICAgICB1cmwudXNlcm5hbWUgPSBcIlwiO1xuICAgICAgICAgICAgdXJsLnBhc3N3b3JkID0gXCJcIjtcbiAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgLy8gRXJyb3IgY2F1c2VkIGJ5IG1hbGZvcm1lZCBVUkwgc2hvdWxkIGJlIGhhbmRsZWQgYnkgbmF0aXZlIGZldGNoXG4gICAgICAgICAgICB1cmwgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmV0Y2hVcmwgPSAodXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwuaHJlZikgPz8gXCJcIjtcbiAgICAgICAgY29uc3QgZmV0Y2hTdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbWV0aG9kID0gaW5pdC5tZXRob2QpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9tZXRob2QudG9VcHBlckNhc2UoKSkgfHwgXCJHRVRcIjtcbiAgICAgICAgLy8gRG8gY3JlYXRlIGEgbmV3IHNwYW4gdHJhY2UgZm9yIGludGVybmFsIGZldGNoZXMgaW4gdGhlXG4gICAgICAgIC8vIG5vbi12ZXJib3NlIG1vZGUuXG4gICAgICAgIGNvbnN0IGlzSW50ZXJuYWwgPSAoKF90aGlzID0gaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdC5uZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXMuaW50ZXJuYWwpID09PSB0cnVlO1xuICAgICAgICBjb25zdCBoaWRlU3BhbiA9IHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9GRVRDSF9ESVNBQkxFRCA9PT0gXCIxXCI7XG4gICAgICAgIHJldHVybiBhd2FpdCBnZXRUcmFjZXIoKS50cmFjZShpc0ludGVybmFsID8gTmV4dE5vZGVTZXJ2ZXJTcGFuLmludGVybmFsRmV0Y2ggOiBBcHBSZW5kZXJTcGFuLmZldGNoLCB7XG4gICAgICAgICAgICBoaWRlU3BhbixcbiAgICAgICAgICAgIGtpbmQ6IFNwYW5LaW5kLkNMSUVOVCxcbiAgICAgICAgICAgIHNwYW5OYW1lOiBbXG4gICAgICAgICAgICAgICAgXCJmZXRjaFwiLFxuICAgICAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgICAgICBmZXRjaFVybFxuICAgICAgICAgICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIiksXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgXCJodHRwLnVybFwiOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICBcImh0dHAubWV0aG9kXCI6IG1ldGhvZCxcbiAgICAgICAgICAgICAgICBcIm5ldC5wZWVyLm5hbWVcIjogdXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwuaG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgXCJuZXQucGVlci5wb3J0XCI6ICh1cmwgPT0gbnVsbCA/IHZvaWQgMCA6IHVybC5wb3J0KSB8fCB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgYXN5bmMgKCk9PntcbiAgICAgICAgICAgIHZhciBfZ2V0UmVxdWVzdE1ldGE7XG4gICAgICAgICAgICBjb25zdCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUgPSBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlLmdldFN0b3JlKCkgfHwgKGZldGNoLl9fbmV4dEdldFN0YXRpY1N0b3JlID09IG51bGwgPyB2b2lkIDAgOiBmZXRjaC5fX25leHRHZXRTdGF0aWNTdG9yZS5jYWxsKGZldGNoKSk7XG4gICAgICAgICAgICBjb25zdCBpc1JlcXVlc3RJbnB1dCA9IGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgaW5wdXQubWV0aG9kID09PSBcInN0cmluZ1wiO1xuICAgICAgICAgICAgY29uc3QgZ2V0UmVxdWVzdE1ldGEgPSAoZmllbGQpPT57XG4gICAgICAgICAgICAgICAgLy8gSWYgcmVxdWVzdCBpbnB1dCBpcyBwcmVzZW50IGJ1dCBpbml0IGlzIG5vdCwgcmV0cmlldmUgZnJvbSBpbnB1dCBmaXJzdC5cbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXRbZmllbGRdO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSB8fCAoaXNSZXF1ZXN0SW5wdXQgPyBpbnB1dFtmaWVsZF0gOiBudWxsKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyBJZiB0aGUgc3RhdGljR2VuZXJhdGlvblN0b3JlIGlzIG5vdCBhdmFpbGFibGUsIHdlIGNhbid0IGRvIGFueVxuICAgICAgICAgICAgLy8gc3BlY2lhbCB0cmVhdG1lbnQgb2YgZmV0Y2gsIHRoZXJlZm9yZSBmYWxsYmFjayB0byB0aGUgb3JpZ2luYWxcbiAgICAgICAgICAgIC8vIGZldGNoIGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUgfHwgaXNJbnRlcm5hbCB8fCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luRmV0Y2goaW5wdXQsIGluaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBnZXROZXh0RmllbGQgPSAoZmllbGQpPT57XG4gICAgICAgICAgICAgICAgdmFyIF9pbml0X25leHQsIF9pbml0X25leHQxLCBfaW5wdXRfbmV4dDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbmV4dCA9IGluaXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X25leHRbZmllbGRdKSAhPT0gXCJ1bmRlZmluZWRcIiA/IGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9uZXh0MSA9IGluaXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X25leHQxW2ZpZWxkXSA6IGlzUmVxdWVzdElucHV0ID8gKF9pbnB1dF9uZXh0ID0gaW5wdXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbnB1dF9uZXh0W2ZpZWxkXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyBSZXF1ZXN0SW5pdCBkb2Vzbid0IGtlZXAgZXh0cmEgZmllbGRzIGUuZy4gbmV4dCBzbyBpdCdzXG4gICAgICAgICAgICAvLyBvbmx5IGF2YWlsYWJsZSBpZiBpbml0IGlzIHVzZWQgc2VwYXJhdGVcbiAgICAgICAgICAgIGxldCBjdXJSZXZhbGlkYXRlID0gZ2V0TmV4dEZpZWxkKFwicmV2YWxpZGF0ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSB2YWxpZGF0ZVRhZ3MoZ2V0TmV4dEZpZWxkKFwidGFnc1wiKSB8fCBbXSwgYGZldGNoICR7aW5wdXQudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhZ3MpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncykge1xuICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzKXtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncy5pbmNsdWRlcyh0YWcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncy5wdXNoKHRhZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbXBsaWNpdFRhZ3MgPSBhZGRJbXBsaWNpdFRhZ3Moc3RhdGljR2VuZXJhdGlvblN0b3JlKTtcbiAgICAgICAgICAgIGNvbnN0IGlzT25seUNhY2hlID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoQ2FjaGUgPT09IFwib25seS1jYWNoZVwiO1xuICAgICAgICAgICAgY29uc3QgaXNGb3JjZUNhY2hlID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoQ2FjaGUgPT09IFwiZm9yY2UtY2FjaGVcIjtcbiAgICAgICAgICAgIGNvbnN0IGlzRGVmYXVsdENhY2hlID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoQ2FjaGUgPT09IFwiZGVmYXVsdC1jYWNoZVwiO1xuICAgICAgICAgICAgY29uc3QgaXNEZWZhdWx0Tm9TdG9yZSA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mZXRjaENhY2hlID09PSBcImRlZmF1bHQtbm8tc3RvcmVcIjtcbiAgICAgICAgICAgIGNvbnN0IGlzT25seU5vU3RvcmUgPSBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZmV0Y2hDYWNoZSA9PT0gXCJvbmx5LW5vLXN0b3JlXCI7XG4gICAgICAgICAgICBjb25zdCBpc0ZvcmNlTm9TdG9yZSA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mZXRjaENhY2hlID09PSBcImZvcmNlLW5vLXN0b3JlXCI7XG4gICAgICAgICAgICBjb25zdCBpc1VzaW5nTm9TdG9yZSA9ICEhc3RhdGljR2VuZXJhdGlvblN0b3JlLmlzVW5zdGFibGVOb1N0b3JlO1xuICAgICAgICAgICAgbGV0IF9jYWNoZSA9IGdldFJlcXVlc3RNZXRhKFwiY2FjaGVcIik7XG4gICAgICAgICAgICBsZXQgY2FjaGVSZWFzb24gPSBcIlwiO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBfY2FjaGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGN1clJldmFsaWRhdGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHByb3ZpZGluZyBmZXRjaCB3aXRoIGEgUmVxdWVzdCBpbnB1dCwgaXQnbGwgYXV0b21hdGljYWxseSBzZXQgYSBjYWNoZSB2YWx1ZSBvZiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IHdhbnQgdG8gd2FybiBpZiB0aGUgdXNlciBpcyBleHBsaWNpdGx5IHNldHRpbmcgYSBjYWNoZSB2YWx1ZVxuICAgICAgICAgICAgICAgIGlmICghKGlzUmVxdWVzdElucHV0ICYmIF9jYWNoZSA9PT0gXCJkZWZhdWx0XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIExvZy53YXJuKGBmZXRjaCBmb3IgJHtmZXRjaFVybH0gb24gJHtzdGF0aWNHZW5lcmF0aW9uU3RvcmUudXJsUGF0aG5hbWV9IHNwZWNpZmllZCBcImNhY2hlOiAke19jYWNoZX1cIiBhbmQgXCJyZXZhbGlkYXRlOiAke2N1clJldmFsaWRhdGV9XCIsIG9ubHkgb25lIHNob3VsZCBiZSBzcGVjaWZpZWQuYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF9jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfY2FjaGUgPT09IFwiZm9yY2UtY2FjaGVcIikge1xuICAgICAgICAgICAgICAgIGN1clJldmFsaWRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoX2NhY2hlID09PSBcIm5vLWNhY2hlXCIgfHwgX2NhY2hlID09PSBcIm5vLXN0b3JlXCIgfHwgaXNGb3JjZU5vU3RvcmUgfHwgaXNPbmx5Tm9TdG9yZSkge1xuICAgICAgICAgICAgICAgIGN1clJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKF9jYWNoZSA9PT0gXCJuby1jYWNoZVwiIHx8IF9jYWNoZSA9PT0gXCJuby1zdG9yZVwiKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSBgY2FjaGU6ICR7X2NhY2hlfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXZhbGlkYXRlID0gdmFsaWRhdGVSZXZhbGlkYXRlKGN1clJldmFsaWRhdGUsIHN0YXRpY0dlbmVyYXRpb25TdG9yZS51cmxQYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBfaGVhZGVycyA9IGdldFJlcXVlc3RNZXRhKFwiaGVhZGVyc1wiKTtcbiAgICAgICAgICAgIGNvbnN0IGluaXRIZWFkZXJzID0gdHlwZW9mIChfaGVhZGVycyA9PSBudWxsID8gdm9pZCAwIDogX2hlYWRlcnMuZ2V0KSA9PT0gXCJmdW5jdGlvblwiID8gX2hlYWRlcnMgOiBuZXcgSGVhZGVycyhfaGVhZGVycyB8fCB7fSk7XG4gICAgICAgICAgICBjb25zdCBoYXNVbkNhY2hlYWJsZUhlYWRlciA9IGluaXRIZWFkZXJzLmdldChcImF1dGhvcml6YXRpb25cIikgfHwgaW5pdEhlYWRlcnMuZ2V0KFwiY29va2llXCIpO1xuICAgICAgICAgICAgY29uc3QgaXNVbkNhY2hlYWJsZU1ldGhvZCA9ICFbXG4gICAgICAgICAgICAgICAgXCJnZXRcIixcbiAgICAgICAgICAgICAgICBcImhlYWRcIlxuICAgICAgICAgICAgXS5pbmNsdWRlcygoKF9nZXRSZXF1ZXN0TWV0YSA9IGdldFJlcXVlc3RNZXRhKFwibWV0aG9kXCIpKSA9PSBudWxsID8gdm9pZCAwIDogX2dldFJlcXVlc3RNZXRhLnRvTG93ZXJDYXNlKCkpIHx8IFwiZ2V0XCIpO1xuICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGF1dGhvcml6ZWQgaGVhZGVycyBvciBhIFBPU1QgbWV0aG9kIGFuZFxuICAgICAgICAgICAgLy8gZHluYW1pYyBkYXRhIHVzYWdlIHdhcyBwcmVzZW50IGFib3ZlIHRoZSB0cmVlIHdlIGJhaWxcbiAgICAgICAgICAgIC8vIGUuZy4gaWYgY29va2llcygpIGlzIHVzZWQgYmVmb3JlIGFuIGF1dGhlZC9QT1NUIGZldGNoXG4gICAgICAgICAgICBjb25zdCBhdXRvTm9DYWNoZSA9IChoYXNVbkNhY2hlYWJsZUhlYWRlciB8fCBpc1VuQ2FjaGVhYmxlTWV0aG9kKSAmJiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gMDtcbiAgICAgICAgICAgIGlmIChpc0ZvcmNlTm9TdG9yZSkge1xuICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gXCJmZXRjaENhY2hlID0gZm9yY2Utbm8tc3RvcmVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc09ubHlOb1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgaWYgKF9jYWNoZSA9PT0gXCJmb3JjZS1jYWNoZVwiIHx8IHR5cGVvZiByZXZhbGlkYXRlICE9PSBcInVuZGVmaW5lZFwiICYmIChyZXZhbGlkYXRlID09PSBmYWxzZSB8fCByZXZhbGlkYXRlID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYWNoZTogJ2ZvcmNlLWNhY2hlJyB1c2VkIG9uIGZldGNoIGZvciAke2ZldGNoVXJsfSB3aXRoICdleHBvcnQgY29uc3QgZmV0Y2hDYWNoZSA9ICdvbmx5LW5vLXN0b3JlJ2ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9IFwiZmV0Y2hDYWNoZSA9IG9ubHktbm8tc3RvcmVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc09ubHlDYWNoZSAmJiBfY2FjaGUgPT09IFwibm8tc3RvcmVcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FjaGU6ICduby1zdG9yZScgdXNlZCBvbiBmZXRjaCBmb3IgJHtmZXRjaFVybH0gd2l0aCAnZXhwb3J0IGNvbnN0IGZldGNoQ2FjaGUgPSAnb25seS1jYWNoZSdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ZvcmNlQ2FjaGUgJiYgKHR5cGVvZiBjdXJSZXZhbGlkYXRlID09PSBcInVuZGVmaW5lZFwiIHx8IGN1clJldmFsaWRhdGUgPT09IDApKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSBcImZldGNoQ2FjaGUgPSBmb3JjZS1jYWNoZVwiO1xuICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmV2YWxpZGF0ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgIGlmIChpc0RlZmF1bHRDYWNoZSkge1xuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gXCJmZXRjaENhY2hlID0gZGVmYXVsdC1jYWNoZVwiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXV0b05vQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gXCJhdXRvIG5vIGNhY2hlXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0RlZmF1bHROb1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9IFwiZmV0Y2hDYWNoZSA9IGRlZmF1bHQtbm8tc3RvcmVcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVXNpbmdOb1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9IFwibm9TdG9yZSBjYWxsXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSBcImF1dG8gY2FjaGVcIjtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZSA9IHR5cGVvZiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gXCJib29sZWFuXCIgfHwgdHlwZW9mIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID09PSBcInVuZGVmaW5lZFwiID8gZmFsc2UgOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZVJlYXNvbikge1xuICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gYHJldmFsaWRhdGU6ICR7cmV2YWxpZGF0ZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKC8vIHdoZW4gZm9yY2Ugc3RhdGljIGlzIGNvbmZpZ3VyZWQgd2UgZG9uJ3QgYmFpbCBmcm9tXG4gICAgICAgICAgICAvLyBgcmV2YWxpZGF0ZTogMGAgdmFsdWVzXG4gICAgICAgICAgICAhKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mb3JjZVN0YXRpYyAmJiByZXZhbGlkYXRlID09PSAwKSAmJiAvLyB3ZSBkb24ndCBjb25zaWRlciBhdXRvTm9DYWNoZSB0byBzd2l0Y2ggdG8gZHluYW1pYyBkdXJpbmdcbiAgICAgICAgICAgIC8vIHJldmFsaWRhdGUgYWx0aG91Z2ggaWYgaXQgb2NjdXJzIGR1cmluZyBidWlsZCB3ZSBkb1xuICAgICAgICAgICAgIWF1dG9Ob0NhY2hlICYmIC8vIElmIHRoZSByZXZhbGlkYXRlIHZhbHVlIGlzbid0IGN1cnJlbnRseSBzZXQgb3IgdGhlIHZhbHVlIGlzIGxlc3NcbiAgICAgICAgICAgIC8vIHRoYW4gdGhlIGN1cnJlbnQgcmV2YWxpZGF0ZSB2YWx1ZSwgd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgcmV2YWxpZGF0ZVxuICAgICAgICAgICAgLy8gdmFsdWUuXG4gICAgICAgICAgICAodHlwZW9mIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiByZXZhbGlkYXRlID09PSBcIm51bWJlclwiICYmIChzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gZmFsc2UgfHwgdHlwZW9mIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID09PSBcIm51bWJlclwiICYmIHJldmFsaWRhdGUgPCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSkpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZSBzZXR0aW5nIHRoZSByZXZhbGlkYXRlIHZhbHVlIHRvIDAsIHdlIHNob3VsZCB0cnkgdG9cbiAgICAgICAgICAgICAgICAvLyBwb3N0cG9uZSBpbnN0ZWFkIGZpcnN0LlxuICAgICAgICAgICAgICAgIGlmIChyZXZhbGlkYXRlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5wb3N0cG9uZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lLmNhbGwoc3RhdGljR2VuZXJhdGlvblN0b3JlLCBcInJldmFsaWRhdGU6IDBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID0gcmV2YWxpZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSA9IHR5cGVvZiByZXZhbGlkYXRlID09PSBcIm51bWJlclwiICYmIHJldmFsaWRhdGUgPiAwIHx8IHJldmFsaWRhdGUgPT09IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGNhY2hlS2V5O1xuICAgICAgICAgICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pbmNyZW1lbnRhbENhY2hlICYmIGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5ID0gYXdhaXQgc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUuZmV0Y2hDYWNoZUtleShmZXRjaFVybCwgaXNSZXF1ZXN0SW5wdXQgPyBpbnB1dCA6IGluaXQpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgY2FjaGUga2V5IGZvcmAsIGlucHV0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmZXRjaElkeCA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS5uZXh0RmV0Y2hJZCA/PyAxO1xuICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLm5leHRGZXRjaElkID0gZmV0Y2hJZHggKyAxO1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFJldmFsaWRhdGUgPSB0eXBlb2YgcmV2YWxpZGF0ZSAhPT0gXCJudW1iZXJcIiA/IENBQ0hFX09ORV9ZRUFSIDogcmV2YWxpZGF0ZTtcbiAgICAgICAgICAgIGNvbnN0IGRvT3JpZ2luYWxGZXRjaCA9IGFzeW5jIChpc1N0YWxlLCBjYWNoZVJlYXNvbk92ZXJyaWRlKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJbnB1dEZpZWxkcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgXCJjYWNoZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGVhZGVyc1wiLFxuICAgICAgICAgICAgICAgICAgICBcImludGVncml0eVwiLFxuICAgICAgICAgICAgICAgICAgICBcImtlZXBhbGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1ldGhvZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1vZGVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZWRpcmVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlZmVycmVyXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVmZXJyZXJQb2xpY3lcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ3aW5kb3dcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkdXBsZXhcIixcbiAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgcGFzcyB0aHJvdWdoIHNpZ25hbCB3aGVuIHJldmFsaWRhdGluZ1xuICAgICAgICAgICAgICAgICAgICAuLi5pc1N0YWxlID8gW10gOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNpZ25hbFwiXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGlmIChpc1JlcXVlc3RJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXFJbnB1dCA9IGlucHV0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXFPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogcmVxSW5wdXQuX29nQm9keSB8fCByZXFJbnB1dC5ib2R5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcmVxdWVzdElucHV0RmllbGRzKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgY3VzdG9tIGZpZWxkc1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxT3B0aW9uc1tmaWVsZF0gPSByZXFJbnB1dFtmaWVsZF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBuZXcgUmVxdWVzdChyZXFJbnB1dC51cmwsIHJlcU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5pdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFsSW5pdCA9IGluaXQ7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBpbml0Ll9vZ0JvZHkgfHwgaW5pdC5ib2R5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcmVxdWVzdElucHV0RmllbGRzKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgY3VzdG9tIGZpZWxkc1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFtmaWVsZF0gPSBpbml0aWFsSW5pdFtmaWVsZF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYWRkIG1ldGFkYXRhIHRvIGluaXQgd2l0aG91dCBlZGl0aW5nIHRoZSBvcmlnaW5hbFxuICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lZEluaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQubmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoVHlwZTogXCJvcmlnaW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoSWR4XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5GZXRjaChpbnB1dCwgY2xvbmVkSW5pdCkudGhlbihhc3luYyAocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRmV0Y2hNZXRyaWMoc3RhdGljR2VuZXJhdGlvblN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZldGNoU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbjogY2FjaGVSZWFzb25PdmVycmlkZSB8fCBjYWNoZVJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1czogcmV2YWxpZGF0ZSA9PT0gMCB8fCBjYWNoZVJlYXNvbk92ZXJyaWRlID8gXCJza2lwXCIgOiBcIm1pc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBjbG9uZWRJbml0Lm1ldGhvZCB8fCBcIkdFVFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwICYmIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pbmNyZW1lbnRhbENhY2hlICYmIGNhY2hlS2V5ICYmIGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IFwiRkVUQ0hcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHJlcy5oZWFkZXJzLmVudHJpZXMoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBib2R5QnVmZmVyLnRvU3RyaW5nKFwiYmFzZTY0XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiByZXMudXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG5vcm1hbGl6ZWRSZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaENhY2hlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hJZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHNldCBmZXRjaCBjYWNoZWAsIGlucHV0LCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keUJ1ZmZlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHJlcy5oZWFkZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlc3BvbnNlLCBcInVybFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlcy51cmxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IGhhbmRsZVVubG9jayA9ICgpPT5Qcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIGxldCBjYWNoZVJlYXNvbk92ZXJyaWRlO1xuICAgICAgICAgICAgaWYgKGNhY2hlS2V5ICYmIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pbmNyZW1lbnRhbENhY2hlKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlVW5sb2NrID0gYXdhaXQgc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUubG9jayhjYWNoZUtleSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNPbkRlbWFuZFJldmFsaWRhdGUgPyBudWxsIDogYXdhaXQgc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUuZ2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmRIaW50OiBcImZldGNoXCIsXG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgIGZldGNoVXJsLFxuICAgICAgICAgICAgICAgICAgICBmZXRjaElkeCxcbiAgICAgICAgICAgICAgICAgICAgdGFncyxcbiAgICAgICAgICAgICAgICAgICAgc29mdFRhZ3M6IGltcGxpY2l0VGFnc1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVVbmxvY2soKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBpbiBkZXYsIGluY3JlbWVudGFsIGNhY2hlIHJlc3BvbnNlIHdpbGwgYmUgbnVsbCBpbiBjYXNlIHRoZSBicm93c2VyIGFkZHMgYGNhY2hlLWNvbnRyb2w6IG5vLWNhY2hlYCBpbiB0aGUgcmVxdWVzdCBoZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uT3ZlcnJpZGUgPSBcImNhY2hlLWNvbnRyb2w6IG5vLWNhY2hlIChoYXJkIHJlZnJlc2gpXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoZW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IGVudHJ5LnZhbHVlKSAmJiBlbnRyeS52YWx1ZS5raW5kID09PSBcIkZFVENIXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBzdGFsZSBhbmQgaXMgcmV2YWxpZGF0aW5nIHdlIHdhaXQgZm9yIGZyZXNoIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgLy8gc28gdGhlIHJldmFsaWRhdGVkIGVudHJ5IGhhcyB0aGUgdXBkYXRlZCBkYXRhXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pc1JldmFsaWRhdGUgJiYgZW50cnkuaXNTdGFsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS5pc1N0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW2NhY2hlS2V5XSA9IGRvT3JpZ2luYWxGZXRjaCh0cnVlKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNEYXRhID0gZW50cnkudmFsdWUuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRmV0Y2hNZXRyaWMoc3RhdGljR2VuZXJhdGlvblN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZldGNoU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1czogXCJoaXRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc0RhdGEuc3RhdHVzIHx8IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IChpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0Lm1ldGhvZCkgfHwgXCJHRVRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShCdWZmZXIuZnJvbShyZXNEYXRhLmJvZHksIFwiYmFzZTY0XCIpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVzRGF0YS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzRGF0YS5zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlc3BvbnNlLCBcInVybFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVudHJ5LnZhbHVlLmRhdGEudXJsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uICYmIGluaXQgJiYgdHlwZW9mIGluaXQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNhY2hlIH0gPSBpbml0O1xuICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBgY2FjaGVgIHByb3BlcnR5IGFzIENsb3VkZmxhcmUgV29ya2VycyB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgICAgICAgICAgICAgaWYgKGlzRWRnZVJ1bnRpbWUpIGRlbGV0ZSBpbml0LmNhY2hlO1xuICAgICAgICAgICAgICAgIGlmICghc3RhdGljR2VuZXJhdGlvblN0b3JlLmZvcmNlU3RhdGljICYmIGNhY2hlID09PSBcIm5vLXN0b3JlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZHluYW1pY1VzYWdlUmVhc29uID0gYG5vLXN0b3JlIGZldGNoICR7aW5wdXR9JHtzdGF0aWNHZW5lcmF0aW9uU3RvcmUudXJsUGF0aG5hbWUgPyBgICR7c3RhdGljR2VuZXJhdGlvblN0b3JlLnVybFBhdGhuYW1lfWAgOiBcIlwifWA7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIGVuYWJsZWQsIHdlIHNob3VsZCBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucG9zdHBvbmUuY2FsbChzdGF0aWNHZW5lcmF0aW9uU3RvcmUsIGR5bmFtaWNVc2FnZVJlYXNvbik7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUiBpcyBub3QgZW5hYmxlZCwgb3IgUmVhY3QgcG9zdHBvbmUgaXMgbm90IGF2YWlsYWJsZSwgd2VcbiAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkIHNldCB0aGUgcmV2YWxpZGF0ZSB0byAwLlxuICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBEeW5hbWljU2VydmVyRXJyb3IoZHluYW1pY1VzYWdlUmVhc29uKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZUVyciA9IGVycjtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZHluYW1pY1VzYWdlUmVhc29uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNOZXh0Q29uZmlnID0gXCJuZXh0XCIgaW4gaW5pdDtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG5leHQgPSB7fSB9ID0gaW5pdDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG5leHQucmV2YWxpZGF0ZSA9PT0gXCJudW1iZXJcIiAmJiAodHlwZW9mIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gXCJudW1iZXJcIiAmJiBuZXh0LnJldmFsaWRhdGUgPCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZm9yY2VEeW5hbWljICYmICFzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZm9yY2VTdGF0aWMgJiYgbmV4dC5yZXZhbGlkYXRlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkeW5hbWljVXNhZ2VSZWFzb24gPSBgcmV2YWxpZGF0ZTogMCBmZXRjaCAke2lucHV0fSR7c3RhdGljR2VuZXJhdGlvblN0b3JlLnVybFBhdGhuYW1lID8gYCAke3N0YXRpY0dlbmVyYXRpb25TdG9yZS51cmxQYXRobmFtZX1gIDogXCJcIn1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgZW5hYmxlZCwgd2Ugc2hvdWxkIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucG9zdHBvbmUuY2FsbChzdGF0aWNHZW5lcmF0aW9uU3RvcmUsIGR5bmFtaWNVc2FnZVJlYXNvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKGR5bmFtaWNVc2FnZVJlYXNvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZHluYW1pY1VzYWdlRXJyID0gZXJyO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZHluYW1pY1VzYWdlUmVhc29uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3RhdGljR2VuZXJhdGlvblN0b3JlLmZvcmNlU3RhdGljIHx8IG5leHQucmV2YWxpZGF0ZSAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGUgPSBuZXh0LnJldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhhc05leHRDb25maWcpIGRlbGV0ZSBpbml0Lm5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZG9PcmlnaW5hbEZldGNoKGZhbHNlLCBjYWNoZVJlYXNvbk92ZXJyaWRlKS5maW5hbGx5KGhhbmRsZVVubG9jayk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgZ2xvYmFsVGhpcy5mZXRjaC5fX25leHRHZXRTdGF0aWNTdG9yZSA9ICgpPT57XG4gICAgICAgIHJldHVybiBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlO1xuICAgIH07XG4gICAgZ2xvYmFsVGhpcy5mZXRjaC5fX25leHRQYXRjaGVkID0gdHJ1ZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGF0Y2gtZmV0Y2guanMubWFwIl0sIm5hbWVzIjpbIkFwcFJlbmRlclNwYW4iLCJOZXh0Tm9kZVNlcnZlclNwYW4iLCJnZXRUcmFjZXIiLCJTcGFuS2luZCIsIkNBQ0hFX09ORV9ZRUFSIiwiTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQiLCJORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIIiwiTG9nIiwiaXNFZGdlUnVudGltZSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJ2YWxpZGF0ZVJldmFsaWRhdGUiLCJyZXZhbGlkYXRlVmFsIiwicGF0aG5hbWUiLCJub3JtYWxpemVkUmV2YWxpZGF0ZSIsInVuZGVmaW5lZCIsImlzTmFOIiwiRXJyb3IiLCJlcnIiLCJtZXNzYWdlIiwiaW5jbHVkZXMiLCJ2YWxpZGF0ZVRhZ3MiLCJ0YWdzIiwiZGVzY3JpcHRpb24iLCJ2YWxpZFRhZ3MiLCJpbnZhbGlkVGFncyIsInRhZyIsInB1c2giLCJyZWFzb24iLCJsZW5ndGgiLCJjb25zb2xlIiwid2FybiIsImxvZyIsImdldERlcml2ZWRUYWdzIiwiZGVyaXZlZFRhZ3MiLCJzdGFydHNXaXRoIiwicGF0aG5hbWVQYXJ0cyIsInNwbGl0IiwiaSIsImN1clBhdGhuYW1lIiwic2xpY2UiLCJqb2luIiwiZW5kc1dpdGgiLCJhZGRJbXBsaWNpdFRhZ3MiLCJzdGF0aWNHZW5lcmF0aW9uU3RvcmUiLCJuZXdUYWdzIiwicGFnZVBhdGgiLCJ1cmxQYXRobmFtZSIsIkFycmF5IiwiaXNBcnJheSIsIl9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFncyIsIl9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFnczEiLCJwYXJzZWRQYXRobmFtZSIsIlVSTCIsInRyYWNrRmV0Y2hNZXRyaWMiLCJjdHgiLCJmZXRjaE1ldHJpY3MiLCJkZWR1cGVGaWVsZHMiLCJzb21lIiwibWV0cmljIiwiZXZlcnkiLCJmaWVsZCIsInVybCIsImNhY2hlU3RhdHVzIiwiY2FjaGVSZWFzb24iLCJzdGF0dXMiLCJtZXRob2QiLCJzdGFydCIsImVuZCIsIkRhdGUiLCJub3ciLCJpZHgiLCJuZXh0RmV0Y2hJZCIsInBhdGNoRmV0Y2giLCJzZXJ2ZXJIb29rcyIsInN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UiLCJnbG9iYWxUaGlzIiwiX25leHRPcmlnaW5hbEZldGNoIiwiZmV0Y2giLCJfX25leHRQYXRjaGVkIiwiRHluYW1pY1NlcnZlckVycm9yIiwib3JpZ2luRmV0Y2giLCJpbnB1dCIsImluaXQiLCJfaW5pdF9tZXRob2QiLCJfdGhpcyIsIlJlcXVlc3QiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZmV0Y2hVcmwiLCJocmVmIiwiZmV0Y2hTdGFydCIsInRvVXBwZXJDYXNlIiwiaXNJbnRlcm5hbCIsIm5leHQiLCJpbnRlcm5hbCIsImhpZGVTcGFuIiwiTkVYVF9PVEVMX0ZFVENIX0RJU0FCTEVEIiwidHJhY2UiLCJpbnRlcm5hbEZldGNoIiwia2luZCIsIkNMSUVOVCIsInNwYW5OYW1lIiwiZmlsdGVyIiwiQm9vbGVhbiIsImF0dHJpYnV0ZXMiLCJob3N0bmFtZSIsInBvcnQiLCJfZ2V0UmVxdWVzdE1ldGEiLCJnZXRTdG9yZSIsIl9fbmV4dEdldFN0YXRpY1N0b3JlIiwiY2FsbCIsImlzUmVxdWVzdElucHV0IiwiZ2V0UmVxdWVzdE1ldGEiLCJ2YWx1ZSIsImlzRHJhZnRNb2RlIiwicmV2YWxpZGF0ZSIsImdldE5leHRGaWVsZCIsIl9pbml0X25leHQiLCJfaW5pdF9uZXh0MSIsIl9pbnB1dF9uZXh0IiwiY3VyUmV2YWxpZGF0ZSIsInRvU3RyaW5nIiwiaW1wbGljaXRUYWdzIiwiaXNPbmx5Q2FjaGUiLCJmZXRjaENhY2hlIiwiaXNGb3JjZUNhY2hlIiwiaXNEZWZhdWx0Q2FjaGUiLCJpc0RlZmF1bHROb1N0b3JlIiwiaXNPbmx5Tm9TdG9yZSIsImlzRm9yY2VOb1N0b3JlIiwiaXNVc2luZ05vU3RvcmUiLCJpc1Vuc3RhYmxlTm9TdG9yZSIsIl9jYWNoZSIsIl9oZWFkZXJzIiwiaW5pdEhlYWRlcnMiLCJnZXQiLCJIZWFkZXJzIiwiaGFzVW5DYWNoZWFibGVIZWFkZXIiLCJpc1VuQ2FjaGVhYmxlTWV0aG9kIiwidG9Mb3dlckNhc2UiLCJhdXRvTm9DYWNoZSIsImZvcmNlU3RhdGljIiwicG9zdHBvbmUiLCJpc0NhY2hlYWJsZVJldmFsaWRhdGUiLCJjYWNoZUtleSIsImluY3JlbWVudGFsQ2FjaGUiLCJmZXRjaENhY2hlS2V5IiwiZXJyb3IiLCJmZXRjaElkeCIsImRvT3JpZ2luYWxGZXRjaCIsImlzU3RhbGUiLCJjYWNoZVJlYXNvbk92ZXJyaWRlIiwicmVxdWVzdElucHV0RmllbGRzIiwicmVxSW5wdXQiLCJyZXFPcHRpb25zIiwiYm9keSIsIl9vZ0JvZHkiLCJpbml0aWFsSW5pdCIsImNsb25lZEluaXQiLCJmZXRjaFR5cGUiLCJ0aGVuIiwicmVzIiwiYm9keUJ1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJhcnJheUJ1ZmZlciIsInNldCIsImRhdGEiLCJoZWFkZXJzIiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIiwicmVzcG9uc2UiLCJSZXNwb25zZSIsImRlZmluZVByb3BlcnR5IiwiaGFuZGxlVW5sb2NrIiwiUHJvbWlzZSIsInJlc29sdmUiLCJsb2NrIiwiZW50cnkiLCJpc09uRGVtYW5kUmV2YWxpZGF0ZSIsImtpbmRIaW50Iiwic29mdFRhZ3MiLCJpc1JldmFsaWRhdGUiLCJwZW5kaW5nUmV2YWxpZGF0ZXMiLCJjYXRjaCIsInJlc0RhdGEiLCJpc1N0YXRpY0dlbmVyYXRpb24iLCJjYWNoZSIsImR5bmFtaWNVc2FnZVJlYXNvbiIsImR5bmFtaWNVc2FnZUVyciIsImR5bmFtaWNVc2FnZURlc2NyaXB0aW9uIiwiaGFzTmV4dENvbmZpZyIsImZvcmNlRHluYW1pYyIsImZpbmFsbHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/patch-fetch.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/revalidate.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/revalidate.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatRevalidate: () => (/* binding */ formatRevalidate)\n/* harmony export */ });\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n\nfunction formatRevalidate(revalidate) {\n if (revalidate === 0) {\n return \"private, no-cache, no-store, max-age=0, must-revalidate\";\n } else if (typeof revalidate === \"number\") {\n return `s-maxage=${revalidate}, stale-while-revalidate`;\n }\n return `s-maxage=${_lib_constants__WEBPACK_IMPORTED_MODULE_0__.CACHE_ONE_YEAR}, stale-while-revalidate`;\n} //# sourceMappingURL=revalidate.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9yZXZhbGlkYXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXFEO0FBQzlDLFNBQVNDLGlCQUFpQkMsVUFBVTtJQUN2QyxJQUFJQSxlQUFlLEdBQUc7UUFDbEIsT0FBTztJQUNYLE9BQU8sSUFBSSxPQUFPQSxlQUFlLFVBQVU7UUFDdkMsT0FBTyxDQUFDLFNBQVMsRUFBRUEsV0FBVyx3QkFBd0IsQ0FBQztJQUMzRDtJQUNBLE9BQU8sQ0FBQyxTQUFTLEVBQUVGLDBEQUFjQSxDQUFDLHdCQUF3QixDQUFDO0FBQy9ELEVBRUEsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL3JldmFsaWRhdGUuanM/OTkyNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDQUNIRV9PTkVfWUVBUiB9IGZyb20gXCIuLi8uLi9saWIvY29uc3RhbnRzXCI7XG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UmV2YWxpZGF0ZShyZXZhbGlkYXRlKSB7XG4gICAgaWYgKHJldmFsaWRhdGUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFwicHJpdmF0ZSwgbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZVwiO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldmFsaWRhdGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIGBzLW1heGFnZT0ke3JldmFsaWRhdGV9LCBzdGFsZS13aGlsZS1yZXZhbGlkYXRlYDtcbiAgICB9XG4gICAgcmV0dXJuIGBzLW1heGFnZT0ke0NBQ0hFX09ORV9ZRUFSfSwgc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZWA7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJldmFsaWRhdGUuanMubWFwIl0sIm5hbWVzIjpbIkNBQ0hFX09ORV9ZRUFSIiwiZm9ybWF0UmV2YWxpZGF0ZSIsInJldmFsaWRhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/revalidate.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/server-action-request-meta.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/server-action-request-meta.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getIsServerAction: () => (/* binding */ getIsServerAction),\n/* harmony export */ getServerActionRequestMetadata: () => (/* binding */ getServerActionRequestMetadata)\n/* harmony export */ });\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n\nfunction getServerActionRequestMetadata(req) {\n let actionId;\n let contentType;\n if (req.headers instanceof Headers) {\n actionId = req.headers.get(_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.ACTION.toLowerCase()) ?? null;\n contentType = req.headers.get(\"content-type\");\n } else {\n actionId = req.headers[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_0__.ACTION.toLowerCase()] ?? null;\n contentType = req.headers[\"content-type\"] ?? null;\n }\n const isURLEncodedAction = Boolean(req.method === \"POST\" && contentType === \"application/x-www-form-urlencoded\");\n const isMultipartAction = Boolean(req.method === \"POST\" && (contentType == null ? void 0 : contentType.startsWith(\"multipart/form-data\")));\n const isFetchAction = Boolean(actionId !== undefined && typeof actionId === \"string\" && req.method === \"POST\");\n return {\n actionId,\n isURLEncodedAction,\n isMultipartAction,\n isFetchAction\n };\n}\nfunction getIsServerAction(req) {\n const { isFetchAction, isURLEncodedAction, isMultipartAction } = getServerActionRequestMetadata(req);\n return Boolean(isFetchAction || isURLEncodedAction || isMultipartAction);\n} //# sourceMappingURL=server-action-request-meta.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9zZXJ2ZXItYWN0aW9uLXJlcXVlc3QtbWV0YS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0U7QUFDN0QsU0FBU0MsK0JBQStCQyxHQUFHO0lBQzlDLElBQUlDO0lBQ0osSUFBSUM7SUFDSixJQUFJRixJQUFJRyxPQUFPLFlBQVlDLFNBQVM7UUFDaENILFdBQVdELElBQUlHLE9BQU8sQ0FBQ0UsR0FBRyxDQUFDUCx5RUFBTUEsQ0FBQ1EsV0FBVyxPQUFPO1FBQ3BESixjQUFjRixJQUFJRyxPQUFPLENBQUNFLEdBQUcsQ0FBQztJQUNsQyxPQUFPO1FBQ0hKLFdBQVdELElBQUlHLE9BQU8sQ0FBQ0wseUVBQU1BLENBQUNRLFdBQVcsR0FBRyxJQUFJO1FBQ2hESixjQUFjRixJQUFJRyxPQUFPLENBQUMsZUFBZSxJQUFJO0lBQ2pEO0lBQ0EsTUFBTUkscUJBQXFCQyxRQUFRUixJQUFJUyxNQUFNLEtBQUssVUFBVVAsZ0JBQWdCO0lBQzVFLE1BQU1RLG9CQUFvQkYsUUFBUVIsSUFBSVMsTUFBTSxLQUFLLFVBQVdQLENBQUFBLGVBQWUsT0FBTyxLQUFLLElBQUlBLFlBQVlTLFVBQVUsQ0FBQyxzQkFBcUI7SUFDdkksTUFBTUMsZ0JBQWdCSixRQUFRUCxhQUFhWSxhQUFhLE9BQU9aLGFBQWEsWUFBWUQsSUFBSVMsTUFBTSxLQUFLO0lBQ3ZHLE9BQU87UUFDSFI7UUFDQU07UUFDQUc7UUFDQUU7SUFDSjtBQUNKO0FBQ08sU0FBU0Usa0JBQWtCZCxHQUFHO0lBQ2pDLE1BQU0sRUFBRVksYUFBYSxFQUFFTCxrQkFBa0IsRUFBRUcsaUJBQWlCLEVBQUUsR0FBR1gsK0JBQStCQztJQUNoRyxPQUFPUSxRQUFRSSxpQkFBaUJMLHNCQUFzQkc7QUFDMUQsRUFFQSxzREFBc0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9saWIvc2VydmVyLWFjdGlvbi1yZXF1ZXN0LW1ldGEuanM/NzBkYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQ1RJT04gfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VydmVyQWN0aW9uUmVxdWVzdE1ldGFkYXRhKHJlcSkge1xuICAgIGxldCBhY3Rpb25JZDtcbiAgICBsZXQgY29udGVudFR5cGU7XG4gICAgaWYgKHJlcS5oZWFkZXJzIGluc3RhbmNlb2YgSGVhZGVycykge1xuICAgICAgICBhY3Rpb25JZCA9IHJlcS5oZWFkZXJzLmdldChBQ1RJT04udG9Mb3dlckNhc2UoKSkgPz8gbnVsbDtcbiAgICAgICAgY29udGVudFR5cGUgPSByZXEuaGVhZGVycy5nZXQoXCJjb250ZW50LXR5cGVcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aW9uSWQgPSByZXEuaGVhZGVyc1tBQ1RJT04udG9Mb3dlckNhc2UoKV0gPz8gbnVsbDtcbiAgICAgICAgY29udGVudFR5cGUgPSByZXEuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA/PyBudWxsO1xuICAgIH1cbiAgICBjb25zdCBpc1VSTEVuY29kZWRBY3Rpb24gPSBCb29sZWFuKHJlcS5tZXRob2QgPT09IFwiUE9TVFwiICYmIGNvbnRlbnRUeXBlID09PSBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKTtcbiAgICBjb25zdCBpc011bHRpcGFydEFjdGlvbiA9IEJvb2xlYW4ocmVxLm1ldGhvZCA9PT0gXCJQT1NUXCIgJiYgKGNvbnRlbnRUeXBlID09IG51bGwgPyB2b2lkIDAgOiBjb250ZW50VHlwZS5zdGFydHNXaXRoKFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiKSkpO1xuICAgIGNvbnN0IGlzRmV0Y2hBY3Rpb24gPSBCb29sZWFuKGFjdGlvbklkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGFjdGlvbklkID09PSBcInN0cmluZ1wiICYmIHJlcS5tZXRob2QgPT09IFwiUE9TVFwiKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBhY3Rpb25JZCxcbiAgICAgICAgaXNVUkxFbmNvZGVkQWN0aW9uLFxuICAgICAgICBpc011bHRpcGFydEFjdGlvbixcbiAgICAgICAgaXNGZXRjaEFjdGlvblxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0SXNTZXJ2ZXJBY3Rpb24ocmVxKSB7XG4gICAgY29uc3QgeyBpc0ZldGNoQWN0aW9uLCBpc1VSTEVuY29kZWRBY3Rpb24sIGlzTXVsdGlwYXJ0QWN0aW9uIH0gPSBnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGEocmVxKTtcbiAgICByZXR1cm4gQm9vbGVhbihpc0ZldGNoQWN0aW9uIHx8IGlzVVJMRW5jb2RlZEFjdGlvbiB8fCBpc011bHRpcGFydEFjdGlvbik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcnZlci1hY3Rpb24tcmVxdWVzdC1tZXRhLmpzLm1hcCJdLCJuYW1lcyI6WyJBQ1RJT04iLCJnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGEiLCJyZXEiLCJhY3Rpb25JZCIsImNvbnRlbnRUeXBlIiwiaGVhZGVycyIsIkhlYWRlcnMiLCJnZXQiLCJ0b0xvd2VyQ2FzZSIsImlzVVJMRW5jb2RlZEFjdGlvbiIsIkJvb2xlYW4iLCJtZXRob2QiLCJpc011bHRpcGFydEFjdGlvbiIsInN0YXJ0c1dpdGgiLCJpc0ZldGNoQWN0aW9uIiwidW5kZWZpbmVkIiwiZ2V0SXNTZXJ2ZXJBY3Rpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/server-action-request-meta.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/server-ipc/utils.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/server-ipc/utils.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ actionsForbiddenHeaders: () => (/* binding */ actionsForbiddenHeaders),\n/* harmony export */ filterReqHeaders: () => (/* binding */ filterReqHeaders),\n/* harmony export */ ipcForbiddenHeaders: () => (/* binding */ ipcForbiddenHeaders)\n/* harmony export */ });\nconst ipcForbiddenHeaders = [\n \"accept-encoding\",\n \"keepalive\",\n \"keep-alive\",\n \"content-encoding\",\n \"transfer-encoding\",\n // https://github.com/nodejs/undici/issues/1470\n \"connection\",\n // marked as unsupported by undici: https://github.com/nodejs/undici/blob/c83b084879fa0bb8e0469d31ec61428ac68160d5/lib/core/request.js#L354\n \"expect\"\n];\nconst actionsForbiddenHeaders = [\n ...ipcForbiddenHeaders,\n \"content-length\"\n];\nconst filterReqHeaders = (headers, forbiddenHeaders)=>{\n // Some browsers are not matching spec and sending Content-Length: 0. This causes issues in undici\n // https://github.com/nodejs/undici/issues/2046\n if (headers[\"content-length\"] && headers[\"content-length\"] === \"0\") {\n delete headers[\"content-length\"];\n }\n for (const [key, value] of Object.entries(headers)){\n if (forbiddenHeaders.includes(key) || !(Array.isArray(value) || typeof value === \"string\")) {\n delete headers[key];\n }\n }\n return headers;\n}; //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9zZXJ2ZXItaXBjL3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLHNCQUFzQjtJQUMvQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsK0NBQStDO0lBQy9DO0lBQ0EsMklBQTJJO0lBQzNJO0NBQ0gsQ0FBQztBQUNLLE1BQU1DLDBCQUEwQjtPQUNoQ0Q7SUFDSDtDQUNILENBQUM7QUFDSyxNQUFNRSxtQkFBbUIsQ0FBQ0MsU0FBU0M7SUFDdEMsa0dBQWtHO0lBQ2xHLCtDQUErQztJQUMvQyxJQUFJRCxPQUFPLENBQUMsaUJBQWlCLElBQUlBLE9BQU8sQ0FBQyxpQkFBaUIsS0FBSyxLQUFLO1FBQ2hFLE9BQU9BLE9BQU8sQ0FBQyxpQkFBaUI7SUFDcEM7SUFDQSxLQUFLLE1BQU0sQ0FBQ0UsS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUNMLFNBQVM7UUFDL0MsSUFBSUMsaUJBQWlCSyxRQUFRLENBQUNKLFFBQVEsQ0FBRUssQ0FBQUEsTUFBTUMsT0FBTyxDQUFDTCxVQUFVLE9BQU9BLFVBQVUsUUFBTyxHQUFJO1lBQ3hGLE9BQU9ILE9BQU8sQ0FBQ0UsSUFBSTtRQUN2QjtJQUNKO0lBQ0EsT0FBT0Y7QUFDWCxFQUFFLENBRUYsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL3NlcnZlci1pcGMvdXRpbHMuanM/MmIwNSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgaXBjRm9yYmlkZGVuSGVhZGVycyA9IFtcbiAgICBcImFjY2VwdC1lbmNvZGluZ1wiLFxuICAgIFwia2VlcGFsaXZlXCIsXG4gICAgXCJrZWVwLWFsaXZlXCIsXG4gICAgXCJjb250ZW50LWVuY29kaW5nXCIsXG4gICAgXCJ0cmFuc2Zlci1lbmNvZGluZ1wiLFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpL2lzc3Vlcy8xNDcwXG4gICAgXCJjb25uZWN0aW9uXCIsXG4gICAgLy8gbWFya2VkIGFzIHVuc3VwcG9ydGVkIGJ5IHVuZGljaTogaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy91bmRpY2kvYmxvYi9jODNiMDg0ODc5ZmEwYmI4ZTA0NjlkMzFlYzYxNDI4YWM2ODE2MGQ1L2xpYi9jb3JlL3JlcXVlc3QuanMjTDM1NFxuICAgIFwiZXhwZWN0XCJcbl07XG5leHBvcnQgY29uc3QgYWN0aW9uc0ZvcmJpZGRlbkhlYWRlcnMgPSBbXG4gICAgLi4uaXBjRm9yYmlkZGVuSGVhZGVycyxcbiAgICBcImNvbnRlbnQtbGVuZ3RoXCJcbl07XG5leHBvcnQgY29uc3QgZmlsdGVyUmVxSGVhZGVycyA9IChoZWFkZXJzLCBmb3JiaWRkZW5IZWFkZXJzKT0+e1xuICAgIC8vIFNvbWUgYnJvd3NlcnMgYXJlIG5vdCBtYXRjaGluZyBzcGVjIGFuZCBzZW5kaW5nIENvbnRlbnQtTGVuZ3RoOiAwLiBUaGlzIGNhdXNlcyBpc3N1ZXMgaW4gdW5kaWNpXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy91bmRpY2kvaXNzdWVzLzIwNDZcbiAgICBpZiAoaGVhZGVyc1tcImNvbnRlbnQtbGVuZ3RoXCJdICYmIGhlYWRlcnNbXCJjb250ZW50LWxlbmd0aFwiXSA9PT0gXCIwXCIpIHtcbiAgICAgICAgZGVsZXRlIGhlYWRlcnNbXCJjb250ZW50LWxlbmd0aFwiXTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVycykpe1xuICAgICAgICBpZiAoZm9yYmlkZGVuSGVhZGVycy5pbmNsdWRlcyhrZXkpIHx8ICEoQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSkge1xuICAgICAgICAgICAgZGVsZXRlIGhlYWRlcnNba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJpcGNGb3JiaWRkZW5IZWFkZXJzIiwiYWN0aW9uc0ZvcmJpZGRlbkhlYWRlcnMiLCJmaWx0ZXJSZXFIZWFkZXJzIiwiaGVhZGVycyIsImZvcmJpZGRlbkhlYWRlcnMiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJpbmNsdWRlcyIsIkFycmF5IiwiaXNBcnJheSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/server-ipc/utils.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/trace/constants.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRenderSpan: () => (/* binding */ AppRenderSpan),\n/* harmony export */ AppRouteRouteHandlersSpan: () => (/* binding */ AppRouteRouteHandlersSpan),\n/* harmony export */ BaseServerSpan: () => (/* binding */ BaseServerSpan),\n/* harmony export */ LoadComponentsSpan: () => (/* binding */ LoadComponentsSpan),\n/* harmony export */ NextNodeServerSpan: () => (/* binding */ NextNodeServerSpan),\n/* harmony export */ NextServerSpan: () => (/* binding */ NextServerSpan),\n/* harmony export */ NextVanillaSpanAllowlist: () => (/* binding */ NextVanillaSpanAllowlist),\n/* harmony export */ NodeSpan: () => (/* binding */ NodeSpan),\n/* harmony export */ RenderSpan: () => (/* binding */ RenderSpan),\n/* harmony export */ ResolveMetadataSpan: () => (/* binding */ ResolveMetadataSpan),\n/* harmony export */ RouterSpan: () => (/* binding */ RouterSpan),\n/* harmony export */ StartServerSpan: () => (/* binding */ StartServerSpan)\n/* harmony export */ });\n/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ var BaseServerSpan;\n(function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n})(BaseServerSpan || (BaseServerSpan = {}));\nvar LoadComponentsSpan;\n(function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n})(LoadComponentsSpan || (LoadComponentsSpan = {}));\nvar NextServerSpan;\n(function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n})(NextServerSpan || (NextServerSpan = {}));\nvar NextNodeServerSpan;\n(function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n})(NextNodeServerSpan || (NextNodeServerSpan = {}));\nvar StartServerSpan;\n(function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n})(StartServerSpan || (StartServerSpan = {}));\nvar RenderSpan;\n(function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n})(RenderSpan || (RenderSpan = {}));\nvar AppRenderSpan;\n(function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n})(AppRenderSpan || (AppRenderSpan = {}));\nvar RouterSpan;\n(function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n})(RouterSpan || (RouterSpan = {}));\nvar NodeSpan;\n(function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n})(NodeSpan || (NodeSpan = {}));\nvar AppRouteRouteHandlersSpan;\n(function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n})(AppRouteRouteHandlersSpan || (AppRouteRouteHandlersSpan = {}));\nvar ResolveMetadataSpan;\n(function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n})(ResolveMetadataSpan || (ResolveMetadataSpan = {}));\n// This list is used to filter out spans that are not relevant to the user\nconst NextVanillaSpanAllowlist = [\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\"\n];\n //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7O0VBS0UsR0FBRyw0Q0FBNEM7QUFDakQsNEJBQTRCLEdBQUcsSUFBSUE7QUFDbEMsVUFBU0EsY0FBYztJQUNwQkEsY0FBYyxDQUFDLGdCQUFnQixHQUFHO0lBQ2xDQSxjQUFjLENBQUMsTUFBTSxHQUFHO0lBQ3hCQSxjQUFjLENBQUMsT0FBTyxHQUFHO0lBQ3pCQSxjQUFjLENBQUMsZ0JBQWdCLEdBQUc7SUFDbENBLGNBQWMsQ0FBQyxTQUFTLEdBQUc7SUFDM0JBLGNBQWMsQ0FBQyxpQ0FBaUMsR0FBRztJQUNuREEsY0FBYyxDQUFDLG1CQUFtQixHQUFHO0lBQ3JDQSxjQUFjLENBQUMsZUFBZSxHQUFHO0lBQ2pDQSxjQUFjLENBQUMsY0FBYyxHQUFHO0lBQ2hDQSxjQUFjLENBQUMsd0JBQXdCLEdBQUc7SUFDMUNBLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRztJQUN0Q0EsY0FBYyxDQUFDLFlBQVksR0FBRztBQUNsQyxHQUFHQSxrQkFBbUJBLENBQUFBLGlCQUFpQixDQUFDO0FBQ3hDLElBQUlDO0FBQ0gsVUFBU0Esa0JBQWtCO0lBQ3hCQSxrQkFBa0IsQ0FBQyw2QkFBNkIsR0FBRztJQUNuREEsa0JBQWtCLENBQUMsaUJBQWlCLEdBQUc7QUFDM0MsR0FBR0Esc0JBQXVCQSxDQUFBQSxxQkFBcUIsQ0FBQztBQUNoRCxJQUFJQztBQUNILFVBQVNBLGNBQWM7SUFDcEJBLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRztJQUN0Q0EsY0FBYyxDQUFDLFlBQVksR0FBRztJQUM5QkEsY0FBYyxDQUFDLDBCQUEwQixHQUFHO0lBQzVDQSxjQUFjLENBQUMsZUFBZSxHQUFHO0FBQ3JDLEdBQUdBLGtCQUFtQkEsQ0FBQUEsaUJBQWlCLENBQUM7QUFDeEMsSUFBSUM7QUFDSCxVQUFTQSxrQkFBa0I7SUFD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Q0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDb00sQ0FFdE0scUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL3RyYWNlL2NvbnN0YW50cy5qcz9lNDllIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbnMgcHJlZGVmaW5lZCBjb25zdGFudHMgZm9yIHRoZSB0cmFjZSBzcGFuIG5hbWUgaW4gbmV4dC9zZXJ2ZXIuXG4gKlxuICogQ3VycmVudGx5LCBuZXh0L3NlcnZlci90cmFjZXIgaXMgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb25seSBmb3IgdHJhY2tpbmdcbiAqIG5leHQuanMncyBpbXBsZW1lbnRhdGlvbiBvbmx5IHdpdGgga25vd24gc3BhbiBuYW1lcyBkZWZpbmVkIGhlcmUuXG4gKiovIC8vIGVzbGludCB0eXBlc2NyaXB0IGhhcyBhIGJ1ZyB3aXRoIFRTIGVudW1zXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1zaGFkb3cgKi8gdmFyIEJhc2VTZXJ2ZXJTcGFuO1xuKGZ1bmN0aW9uKEJhc2VTZXJ2ZXJTcGFuKSB7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJoYW5kbGVSZXF1ZXN0XCJdID0gXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJ1blwiXSA9IFwiQmFzZVNlcnZlci5ydW5cIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInBpcGVcIl0gPSBcIkJhc2VTZXJ2ZXIucGlwZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wiZ2V0U3RhdGljSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5nZXRTdGF0aWNIVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JUb1Jlc3BvbnNlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJCYXNlU2VydmVyLnJlbmRlcjQwNFwiO1xufSkoQmFzZVNlcnZlclNwYW4gfHwgKEJhc2VTZXJ2ZXJTcGFuID0ge30pKTtcbnZhciBMb2FkQ29tcG9uZW50c1NwYW47XG4oZnVuY3Rpb24oTG9hZENvbXBvbmVudHNTcGFuKSB7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWREZWZhdWx0RXJyb3JDb21wb25lbnRzXCI7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZENvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWRDb21wb25lbnRzXCI7XG59KShMb2FkQ29tcG9uZW50c1NwYW4gfHwgKExvYWRDb21wb25lbnRzU3BhbiA9IHt9KSk7XG52YXIgTmV4dFNlcnZlclNwYW47XG4oZnVuY3Rpb24oTmV4dFNlcnZlclNwYW4pIHtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0U2VydmVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiY3JlYXRlU2VydmVyXCJdID0gXCJjcmVhdGVTZXJ2ZXIuY3JlYXRlU2VydmVyXCI7XG59KShOZXh0U2VydmVyU3BhbiB8fCAoTmV4dFNlcnZlclNwYW4gPSB7fSkpO1xudmFyIE5leHROb2RlU2VydmVyU3BhbjtcbihmdW5jdGlvbihOZXh0Tm9kZVNlcnZlclNwYW4pIHtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjb21wcmVzc2lvblwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY29tcHJlc3Npb25cIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRCdWlsZElkXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRCdWlsZElkXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRMYXlvdXRPclBhZ2VNb2R1bGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVN0YXRpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUZzU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUZzU3RhdGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlUHVibGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVJbWFnZVJvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVJbWFnZVJvdXRlcy5yb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInNlbmRSZW5kZXJSZXN1bHRcIl0gPSBcIk5leHROb2RlU2VydmVyLnNlbmRSZW5kZXJSZXN1bHRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJwcm94eVJlcXVlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLnByb3h5UmVxdWVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJ1bkFwaVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucnVuQXBpXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJIVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJIVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiaW1hZ2VPcHRpbWl6ZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmltYWdlT3B0aW1pemVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UGFnZVBhdGhcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFBhZ2VQYXRoXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0Um91dGVzTWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJvdXRlc01hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZmluZFBhZ2VDb21wb25lbnRzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRGb250TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldEZvbnRNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRTZXJ2ZXJDb21wb25lbnRNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyVG9IVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JUb0hUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckVycm9yVG9IVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXI0MDRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bLy8gbmVzdGVkIGlubmVyIHNwYW4sIGRvZXMgbm90IHJlcXVpcmUgcGFyZW50IHNjb3BlIG5hbWVcbiAgICBcInJvdXRlXCJdID0gXCJyb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcIm9uUHJveHlSZXFcIl0gPSBcIm9uUHJveHlSZXFcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJhcGlSZXNvbHZlclwiXSA9IFwiYXBpUmVzb2x2ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbnRlcm5hbEZldGNoXCJdID0gXCJpbnRlcm5hbEZldGNoXCI7XG59KShOZXh0Tm9kZVNlcnZlclNwYW4gfHwgKE5leHROb2RlU2VydmVyU3BhbiA9IHt9KSk7XG52YXIgU3RhcnRTZXJ2ZXJTcGFuO1xuKGZ1bmN0aW9uKFN0YXJ0U2VydmVyU3Bhbikge1xuICAgIFN0YXJ0U2VydmVyU3BhbltcInN0YXJ0U2VydmVyXCJdID0gXCJzdGFydFNlcnZlci5zdGFydFNlcnZlclwiO1xufSkoU3RhcnRTZXJ2ZXJTcGFuIHx8IChTdGFydFNlcnZlclNwYW4gPSB7fSkpO1xudmFyIFJlbmRlclNwYW47XG4oZnVuY3Rpb24oUmVuZGVyU3Bhbikge1xuICAgIFJlbmRlclNwYW5bXCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIjtcbiAgICBSZW5kZXJTcGFuW1wiZ2V0U3RhdGljUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlckRvY3VtZW50XCJdID0gXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIjtcbiAgICBSZW5kZXJTcGFuW1wiY3JlYXRlQm9keVJlc3VsdFwiXSA9IFwiUmVuZGVyLmNyZWF0ZUJvZHlSZXN1bHRcIjtcbn0pKFJlbmRlclNwYW4gfHwgKFJlbmRlclNwYW4gPSB7fSkpO1xudmFyIEFwcFJlbmRlclNwYW47XG4oZnVuY3Rpb24oQXBwUmVuZGVyU3Bhbikge1xuICAgIEFwcFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvUmVhZGFibGVTdHJlYW1cIl0gPSBcIkFwcFJlbmRlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImdldEJvZHlSZXN1bHRcIl0gPSBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImZldGNoXCJdID0gXCJBcHBSZW5kZXIuZmV0Y2hcIjtcbn0pKEFwcFJlbmRlclNwYW4gfHwgKEFwcFJlbmRlclNwYW4gPSB7fSkpO1xudmFyIFJvdXRlclNwYW47XG4oZnVuY3Rpb24oUm91dGVyU3Bhbikge1xuICAgIFJvdXRlclNwYW5bXCJleGVjdXRlUm91dGVcIl0gPSBcIlJvdXRlci5leGVjdXRlUm91dGVcIjtcbn0pKFJvdXRlclNwYW4gfHwgKFJvdXRlclNwYW4gPSB7fSkpO1xudmFyIE5vZGVTcGFuO1xuKGZ1bmN0aW9uKE5vZGVTcGFuKSB7XG4gICAgTm9kZVNwYW5bXCJydW5IYW5kbGVyXCJdID0gXCJOb2RlLnJ1bkhhbmRsZXJcIjtcbn0pKE5vZGVTcGFuIHx8IChOb2RlU3BhbiA9IHt9KSk7XG52YXIgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjtcbihmdW5jdGlvbihBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuKSB7XG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCI7XG59KShBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuIHx8IChBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuID0ge30pKTtcbnZhciBSZXNvbHZlTWV0YWRhdGFTcGFuO1xuKGZ1bmN0aW9uKFJlc29sdmVNZXRhZGF0YVNwYW4pIHtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVNZXRhZGF0YVwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIjtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVWaWV3cG9ydFwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIjtcbn0pKFJlc29sdmVNZXRhZGF0YVNwYW4gfHwgKFJlc29sdmVNZXRhZGF0YVNwYW4gPSB7fSkpO1xuLy8gVGhpcyBsaXN0IGlzIHVzZWQgdG8gZmlsdGVyIG91dCBzcGFucyB0aGF0IGFyZSBub3QgcmVsZXZhbnQgdG8gdGhlIHVzZXJcbmV4cG9ydCBjb25zdCBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QgPSBbXG4gICAgXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIixcbiAgICBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIixcbiAgICBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiLFxuICAgIFwiQXBwUmVuZGVyLmZldGNoXCIsXG4gICAgXCJBcHBSZW5kZXIuZ2V0Qm9keVJlc3VsdFwiLFxuICAgIFwiUmVuZGVyLnJlbmRlckRvY3VtZW50XCIsXG4gICAgXCJOb2RlLnJ1bkhhbmRsZXJcIixcbiAgICBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCIsXG4gICAgXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCJcbl07XG5leHBvcnQgeyBCYXNlU2VydmVyU3BhbiwgTG9hZENvbXBvbmVudHNTcGFuLCBOZXh0U2VydmVyU3BhbiwgTmV4dE5vZGVTZXJ2ZXJTcGFuLCBTdGFydFNlcnZlclNwYW4sIFJlbmRlclNwYW4sIFJvdXRlclNwYW4sIEFwcFJlbmRlclNwYW4sIE5vZGVTcGFuLCBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuLCBSZXNvbHZlTWV0YWRhdGFTcGFuLCAgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJCYXNlU2VydmVyU3BhbiIsIkxvYWRDb21wb25lbnRzU3BhbiIsIk5leHRTZXJ2ZXJTcGFuIiwiTmV4dE5vZGVTZXJ2ZXJTcGFuIiwiU3RhcnRTZXJ2ZXJTcGFuIiwiUmVuZGVyU3BhbiIsIkFwcFJlbmRlclNwYW4iLCJSb3V0ZXJTcGFuIiwiTm9kZVNwYW4iLCJBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuIiwiUmVzb2x2ZU1ldGFkYXRhU3BhbiIsIk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/trace/tracer.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SpanKind: () => (/* binding */ SpanKind),\n/* harmony export */ SpanStatusCode: () => (/* binding */ SpanStatusCode),\n/* harmony export */ getTracer: () => (/* binding */ getTracer)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (true) {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(ssr)/../../node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n} else {}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nconst isPromise = (p)=>{\n return p !== null && typeof p === \"object\" && typeof p.then === \"function\";\n};\nconst closeSpanWithError = (span, error)=>{\n if ((error == null ? void 0 : error.bubble) === true) {\n span.setAttribute(\"next.bubble\", true);\n } else {\n if (error) {\n span.recordException(error);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey(\"next.rootSpanId\");\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer(\"next.js\", \"0.0.1\");\n }\n getContext() {\n return context;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === \"function\" ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n if (!_constants__WEBPACK_IMPORTED_MODULE_0__.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== \"1\" || options.hideSpan) {\n return fn();\n }\n const spanName = options.spanName ?? type;\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n \"next.span_name\": spanName,\n \"next.span_type\": type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if (isPromise(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants__WEBPACK_IMPORTED_MODULE_0__.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== \"1\") {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === \"function\" && typeof fn === \"function\") {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === \"function\") {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n //# sourceMappingURL=tracer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF1RDtBQUN2RCxJQUFJQztBQUNKLGdGQUFnRjtBQUNoRiw4RUFBOEU7QUFDOUUsdUNBQXVDO0FBQ3ZDLDBFQUEwRTtBQUMxRSwrRUFBK0U7QUFDL0UsNENBQTRDO0FBQzVDLDZDQUE2QztBQUM3QyxJQUFJQyxJQUFtQyxFQUFFO0lBQ3JDRCxNQUFNSSxtQkFBT0EsQ0FBQyxtR0FBb0I7QUFDdEMsT0FBTyxFQU1OO0FBQ0QsTUFBTSxFQUFFRSxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsS0FBSyxFQUFFQyxjQUFjLEVBQUVDLFFBQVEsRUFBRUMsWUFBWSxFQUFFLEdBQUdYO0FBQ2hGLE1BQU1ZLFlBQVksQ0FBQ0M7SUFDZixPQUFPQSxNQUFNLFFBQVEsT0FBT0EsTUFBTSxZQUFZLE9BQU9BLEVBQUVDLElBQUksS0FBSztBQUNwRTtBQUNBLE1BQU1DLHFCQUFxQixDQUFDQyxNQUFNQztJQUM5QixJQUFJLENBQUNBLFNBQVMsT0FBTyxLQUFLLElBQUlBLE1BQU1DLE1BQU0sTUFBTSxNQUFNO1FBQ2xERixLQUFLRyxZQUFZLENBQUMsZUFBZTtJQUNyQyxPQUFPO1FBQ0gsSUFBSUYsT0FBTztZQUNQRCxLQUFLSSxlQUFlLENBQUNIO1FBQ3pCO1FBQ0FELEtBQUtLLFNBQVMsQ0FBQztZQUNYQyxNQUFNYixlQUFlYyxLQUFLO1lBQzFCQyxTQUFTUCxTQUFTLE9BQU8sS0FBSyxJQUFJQSxNQUFNTyxPQUFPO1FBQ25EO0lBQ0o7SUFDQVIsS0FBS1MsR0FBRztBQUNaO0FBQ0EsOEVBQThFLEdBQUcsTUFBTUMsMEJBQTBCLElBQUlDO0FBQ3JILE1BQU1DLGdCQUFnQjVCLElBQUk2QixnQkFBZ0IsQ0FBQztBQUMzQyxJQUFJQyxhQUFhO0FBQ2pCLE1BQU1DLFlBQVksSUFBSUQ7QUFDdEIsTUFBTUU7SUFDRjs7OztHQUlELEdB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LEVBQUVDO29CQUNwQztvQkFDQSxPQUFPeEMsR0FBR3VDLEtBQUssQ0FBQyxJQUFJLEVBQUVDO2dCQUMxQjtZQUNKLE9BQU87Z0JBQ0gsT0FBT0osT0FBT3JFLEtBQUssQ0FBQ3NFLE1BQU1DLFlBQVksSUFBSXRDLEdBQUd1QyxLQUFLLENBQUMsSUFBSSxFQUFFQztZQUM3RDtRQUNKO0lBQ0o7SUFDQU8sVUFBVSxHQUFHeEMsSUFBSSxFQUFFO1FBQ2YsTUFBTSxDQUFDRSxNQUFNRyxRQUFRLEdBQUdMO1FBQ3hCLE1BQU1VLGNBQWMsSUFBSSxDQUFDZCxjQUFjLENBQUMsQ0FBQ1MsV0FBVyxPQUFPLEtBQUssSUFBSUEsUUFBUU0sVUFBVSxLQUFLLElBQUksQ0FBQ3ZCLGtCQUFrQjtRQUNsSCxPQUFPLElBQUksQ0FBQ0gsaUJBQWlCLEdBQUd1RCxTQUFTLENBQUN0QyxNQUFNRyxTQUFTSztJQUM3RDtJQUNBZCxlQUFlZSxVQUFVLEVBQUU7UUFDdkIsTUFBTUQsY0FBY0MsYUFBYW5ELE1BQU1pRixPQUFPLENBQUNuRixRQUFRZ0MsTUFBTSxJQUFJcUIsY0FBYytCO1FBQy9FLE9BQU9oQztJQUNYO0lBQ0FpQyx3QkFBd0I7UUFDcEIsTUFBTTdCLFNBQVN4RCxRQUFRZ0MsTUFBTSxHQUFHc0QsUUFBUSxDQUFDaEU7UUFDekMsT0FBT0Ysd0JBQXdCbUUsR0FBRyxDQUFDL0I7SUFDdkM7QUFDSjtBQUNBLE1BQU01QixZQUFZLENBQUM7SUFDZixNQUFNMkMsU0FBUyxJQUFJN0M7SUFDbkIsT0FBTyxJQUFJNkM7QUFDZjtBQUMrQyxDQUUvQyxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzPzhkNzMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0IH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5sZXQgYXBpO1xuLy8gd2Ugd2FudCB0byBhbGxvdyB1c2VycyB0byB1c2UgdGhlaXIgb3duIHZlcnNpb24gb2YgQG9wZW50ZWxlbWV0cnkvYXBpIGlmIHRoZXlcbi8vIHdhbnQgdG8sIHNvIHdlIHRyeSB0byByZXF1aXJlIGl0IGZpcnN0LCBhbmQgaWYgaXQgZmFpbHMgd2UgZmFsbCBiYWNrIHRvIHRoZVxuLy8gdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzXG4vLyB0aGlzIGlzIGJlY2F1c2UgQG9wZW50ZWxlbWV0cnkvYXBpIGhhcyB0byBiZSBzeW5jZWQgd2l0aCB0aGUgdmVyc2lvbiBvZlxuLy8gQG9wZW50ZWxlbWV0cnkvdHJhY2luZyB0aGF0IGlzIHVzZWQsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGZvcmNlIHVzZXJzIHRvIHVzZVxuLy8gdGhlIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qcy5cbi8vIHRoZSBBUEkgaXMgfnN0YWJsZSwgc28gdGhpcyBzaG91bGQgYmUgZmluZVxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gXCJlZGdlXCIpIHtcbiAgICBhcGkgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvYXBpXCIpO1xufSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgICBhcGkgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvYXBpXCIpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhcGkgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaVwiKTtcbiAgICB9XG59XG5jb25zdCB7IGNvbnRleHQsIHByb3BhZ2F0aW9uLCB0cmFjZSwgU3BhblN0YXR1c0NvZGUsIFNwYW5LaW5kLCBST09UX0NPTlRFWFQgfSA9IGFwaTtcbmNvbnN0IGlzUHJvbWlzZSA9IChwKT0+e1xuICAgIHJldHVybiBwICE9PSBudWxsICYmIHR5cGVvZiBwID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBwLnRoZW4gPT09IFwiZnVuY3Rpb25cIjtcbn07XG5jb25zdCBjbG9zZVNwYW5XaXRoRXJyb3IgPSAoc3BhbiwgZXJyb3IpPT57XG4gICAgaWYgKChlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IuYnViYmxlKSA9PT0gdHJ1ZSkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZShcIm5leHQuYnViYmxlXCIsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICAgIGNvZGU6IFNwYW5TdGF0dXNDb2RlLkVSUk9SLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IgPT0gbnVsbCA/IHZvaWQgMCA6IGVycm9yLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNwYW4uZW5kKCk7XG59O1xuLyoqIHdlIHVzZSB0aGlzIG1hcCB0byBwcm9wYWdhdGUgYXR0cmlidXRlcyBmcm9tIG5lc3RlZCBzcGFucyB0byB0aGUgdG9wIHNwYW4gKi8gY29uc3Qgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUgPSBuZXcgTWFwKCk7XG5jb25zdCByb290U3BhbklkS2V5ID0gYXBpLmNyZWF0ZUNvbnRleHRLZXkoXCJuZXh0LnJvb3RTcGFuSWRcIik7XG5sZXQgbGFzdFNwYW5JZCA9IDA7XG5jb25zdCBnZXRTcGFuSWQgPSAoKT0+bGFzdFNwYW5JZCsrO1xuY2xhc3MgTmV4dFRyYWNlckltcGwge1xuICAgIC8qKlxuICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIHRvIHRoZSB0cmFjZSB3aXRoIGNvbmZpZ3VyZWQgbmFtZS5cbiAgICogU2luY2Ugd3JhcCAvIHRyYWNlIGNhbiBiZSBkZWZpbmVkIGluIGFueSBwbGFjZSBwcmlvciB0byBhY3R1YWwgdHJhY2Ugc3Vic2NyaWJlciBpbml0aWFsaXphdGlvbixcbiAgICogVGhpcyBzaG91bGQgYmUgbGF6aWx5IGV2YWx1YXRlZC5cbiAgICovIGdldFRyYWNlckluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0VHJhY2VyKFwibmV4dC5qc1wiLCBcIjAuMC4xXCIpO1xuICAgIH1cbiAgICBnZXRDb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG4gICAgZ2V0QWN0aXZlU2NvcGVTcGFuKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0U3Bhbihjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LmFjdGl2ZSgpKTtcbiAgICB9XG4gICAgd2l0aFByb3BhZ2F0ZWRDb250ZXh0KGNhcnJpZXIsIGZuLCBnZXR0ZXIpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGlmICh0cmFjZS5nZXRTcGFuQ29udGV4dChhY3RpdmVDb250ZXh0KSkge1xuICAgICAgICAgICAgLy8gQWN0aXZlIHNwYW4gaXMgYWxyZWFkeSBzZXQsIHRvbyBsYXRlIHRvIHByb3BhZ2F0ZS5cbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlbW90ZUNvbnRleHQgPSBwcm9wYWdhdGlvbi5leHRyYWN0KGFjdGl2ZUNvbnRleHQsIGNhcnJpZXIsIGdldHRlcik7XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgocmVtb3RlQ29udGV4dCwgZm4pO1xuICAgIH1cbiAgICB0cmFjZSguLi5hcmdzKSB7XG4gICAgICAgIHZhciBfdHJhY2VfZ2V0U3BhbkNvbnRleHQ7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBmbk9yT3B0aW9ucywgZm5PckVtcHR5XSA9IGFyZ3M7XG4gICAgICAgIC8vIGNvZXJjZSBvcHRpb25zIGZvcm0gb3ZlcmxvYWRcbiAgICAgICAgY29uc3QgeyBmbiwgb3B0aW9ucyB9ID0gdHlwZW9mIGZuT3JPcHRpb25zID09PSBcImZ1bmN0aW9uXCIgPyB7XG4gICAgICAgICAgICBmbjogZm5Pck9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zOiB7fVxuICAgICAgICB9IDoge1xuICAgICAgICAgICAgZm46IGZuT3JFbXB0eSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAuLi5mbk9yT3B0aW9uc1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoIU5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyh0eXBlKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gXCIxXCIgfHwgb3B0aW9ucy5oaWRlU3Bhbikge1xuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Bhbk5hbWUgPSBvcHRpb25zLnNwYW5OYW1lID8/IHR5cGU7XG4gICAgICAgIC8vIFRyeWluZyB0byBnZXQgYWN0aXZlIHNjb3BlZCBzcGFuIHRvIGFzc2lnbiBwYXJlbnQuIElmIG9wdGlvbiBzcGVjaWZpZXMgcGFyZW50IHNwYW4gbWFudWFsbHksIHdpbGwgdHJ5IHRvIHVzZSBpdC5cbiAgICAgICAgbGV0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgbGV0IGlzUm9vdFNwYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFzcGFuQ29udGV4dCkge1xuICAgICAgICAgICAgc3BhbkNvbnRleHQgPSBST09UX0NPTlRFWFQ7XG4gICAgICAgICAgICBpc1Jvb3RTcGFuID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICgoX3RyYWNlX2dldFNwYW5Db250ZXh0ID0gdHJhY2UuZ2V0U3BhbkNvbnRleHQoc3BhbkNvbnRleHQpKSA9PSBudWxsID8gdm9pZCAwIDogX3RyYWNlX2dldFNwYW5Db250ZXh0LmlzUmVtb3RlKSB7XG4gICAgICAgICAgICBpc1Jvb3RTcGFuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcGFuSWQgPSBnZXRTcGFuSWQoKTtcbiAgICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVzID0ge1xuICAgICAgICAgICAgXCJuZXh0LnNwYW5fbmFtZVwiOiBzcGFuTmFtZSxcbiAgICAgICAgICAgIFwibmV4dC5zcGFuX3R5cGVcIjogdHlwZSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXR0cmlidXRlc1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY29udGV4dC53aXRoKHNwYW5Db250ZXh0LnNldFZhbHVlKHJvb3RTcGFuSWRLZXksIHNwYW5JZCksICgpPT50aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRBY3RpdmVTcGFuKHNwYW5OYW1lLCBvcHRpb25zLCAoc3Bhbik9PntcbiAgICAgICAgICAgICAgICBjb25zdCBvbkNsZWFudXAgPSAoKT0+e1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5kZWxldGUoc3BhbklkKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChpc1Jvb3RTcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLnNldChzcGFuSWQsIG5ldyBNYXAoT2JqZWN0LmVudHJpZXMob3B0aW9ucy5hdHRyaWJ1dGVzID8/IHt9KSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuKHNwYW4sIChlcnIpPT5jbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4oc3Bhbik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1Byb21pc2UocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBlcnJvciBtYWtlIHN1cmUgaXQgdGhyb3dzXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgdG8gcGFzcyBkb3duIHRoZSBwcm9taXNlIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBjb3VsZCBiZSByZWFjdCBzdHJlYW0gcmVzcG9uc2Ugd2l0aCBlcnJvciB7IGVycm9yLCBzdHJlYW0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkob25DbGVhbnVwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIHdyYXAoLi4uYXJncykge1xuICAgICAgICBjb25zdCB0cmFjZXIgPSB0aGlzO1xuICAgICAgICBjb25zdCBbbmFtZSwgb3B0aW9ucywgZm5dID0gYXJncy5sZW5ndGggPT09IDMgPyBhcmdzIDogW1xuICAgICAgICAgICAgYXJnc1swXSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgYXJnc1sxXVxuICAgICAgICBdO1xuICAgICAgICBpZiAoIU5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyhuYW1lKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gXCIxXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgb3B0aW9uc09iaiA9IG9wdGlvbnM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPYmogPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIG9wdGlvbnNPYmogPSBvcHRpb25zT2JqLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsYXN0QXJnSWQgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGNiID0gYXJndW1lbnRzW2xhc3RBcmdJZF07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY29wZUJvdW5kQ2IgPSB0cmFjZXIuZ2V0Q29udGV4dCgpLmJpbmQoY29udGV4dC5hY3RpdmUoKSwgY2IpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKF9zcGFuLCBkb25lKT0+e1xuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbbGFzdEFyZ0lkXSA9IGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9PSBudWxsID8gdm9pZCAwIDogZG9uZShlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlQm91bmRDYi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlci50cmFjZShuYW1lLCBvcHRpb25zT2JqLCAoKT0+Zm4uYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN0YXJ0U3BhbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2VySW5zdGFuY2UoKS5zdGFydFNwYW4odHlwZSwgb3B0aW9ucywgc3BhbkNvbnRleHQpO1xuICAgIH1cbiAgICBnZXRTcGFuQ29udGV4dChwYXJlbnRTcGFuKSB7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gcGFyZW50U3BhbiA/IHRyYWNlLnNldFNwYW4oY29udGV4dC5hY3RpdmUoKSwgcGFyZW50U3BhbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBzcGFuQ29udGV4dDtcbiAgICB9XG4gICAgZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzKCkge1xuICAgICAgICBjb25zdCBzcGFuSWQgPSBjb250ZXh0LmFjdGl2ZSgpLmdldFZhbHVlKHJvb3RTcGFuSWRLZXkpO1xuICAgICAgICByZXR1cm4gcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZ2V0KHNwYW5JZCk7XG4gICAgfVxufVxuY29uc3QgZ2V0VHJhY2VyID0gKCgpPT57XG4gICAgY29uc3QgdHJhY2VyID0gbmV3IE5leHRUcmFjZXJJbXBsKCk7XG4gICAgcmV0dXJuICgpPT50cmFjZXI7XG59KSgpO1xuZXhwb3J0IHsgZ2V0VHJhY2VyLCBTcGFuU3RhdHVzQ29kZSwgU3BhbktpbmQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHJhY2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QiLCJhcGkiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwicmVxdWlyZSIsImVyciIsImNvbnRleHQiLCJwcm9wYWdhdGlvbiIsInRyYWNlIiwiU3BhblN0YXR1c0NvZGUiLCJTcGFuS2luZCIsIlJPT1RfQ09OVEVYVCIsImlzUHJvbWlzZSIsInAiLCJ0aGVuIiwiY2xvc2VTcGFuV2l0aEVycm9yIiwic3BhbiIsImVycm9yIiwiYnViYmxlIiwic2V0QXR0cmlidXRlIiwicmVjb3JkRXhjZXB0aW9uIiwic2V0U3RhdHVzIiwiY29kZSIsIkVSUk9SIiwibWVzc2FnZSIsImVuZCIsInJvb3RTcGFuQXR0cmlidXRlc1N0b3JlIiwiTWFwIiwicm9vdFNwYW5JZEtleSIsImNyZWF0ZUNvbnRleHRLZXkiLCJsYXN0U3BhbklkIiwiZ2V0U3BhbklkIiwiTmV4dFRyYWNlckltcGwiLCJnZXRUcmFjZXJJbnN0YW5jZSIsImdldFRyYWNlciIsImdldENvbnRleHQiLCJnZXRBY3RpdmVTY29wZVNwYW4iLCJnZXRTcGFuIiwiYWN0aXZlIiwid2l0aFByb3BhZ2F0ZWRDb250ZXh0IiwiY2FycmllciIsImZuIiwiZ2V0dGVyIiwiYWN0aXZlQ29udGV4dCIsImdldFNwYW5Db250ZXh0IiwicmVtb3RlQ29udGV4dCIsImV4dHJhY3QiLCJ3aXRoIiwiYXJncyIsIl90cmFjZV9nZXRTcGFuQ29udGV4dCIsInR5cGUiLCJmbk9yT3B0aW9ucyIsImZuT3JFbXB0eSIsIm9wdGlvbnMiLCJpbmNsdWRlcyIsIk5FWFRfT1RFTF9WRVJCT1NFIiwiaGlkZVNwYW4iLCJzcGFuTmFtZSIsInNwYW5Db250ZXh0IiwicGFyZW50U3BhbiIsImlzUm9vdFNwYW4iLCJpc1JlbW90ZSIsInNwYW5JZCIsImF0dHJpYnV0ZXMiLCJzZXRWYWx1ZSIsInN0YXJ0QWN0aXZlU3BhbiIsIm9uQ2xlYW51cCIsImRlbGV0ZSIsInNldCIsIk9iamVjdCIsImVudHJpZXMiLCJsZW5ndGgiLCJyZXN1bHQiLCJyZXMiLCJjYXRjaCIsImZpbmFsbHkiLCJ3cmFwIiwidHJhY2VyIiwibmFtZSIsIm9wdGlvbnNPYmoiLCJhcHBseSIsImFyZ3VtZW50cyIsImxhc3RBcmdJZCIsImNiIiwic2NvcGVCb3VuZENiIiwiYmluZCIsIl9zcGFuIiwiZG9uZSIsInN0YXJ0U3BhbiIsInNldFNwYW4iLCJ1bmRlZmluZWQiLCJnZXRSb290U3BhbkF0dHJpYnV0ZXMiLCJnZXRWYWx1ZSIsImdldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/pipe-readable.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/pipe-readable.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAbortError: () => (/* binding */ isAbortError),\n/* harmony export */ pipeToNodeResponse: () => (/* binding */ pipeToNodeResponse)\n/* harmony export */ });\n/* harmony import */ var _web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js\");\n/* harmony import */ var _lib_detached_promise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/detached-promise */ \"(ssr)/../../node_modules/next/dist/esm/lib/detached-promise.js\");\n\n\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === \"AbortError\" || (e == null ? void 0 : e.name) === _web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_0__.ResponseAbortedName;\n}\nfunction createWriterFromResponse(res, waitUntilForEnd) {\n let started = false;\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_1__.DetachedPromise();\n function onDrain() {\n drained.resolve();\n }\n res.on(\"drain\", onDrain);\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once(\"close\", ()=>{\n res.off(\"drain\", onDrain);\n drained.resolve();\n });\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_1__.DetachedPromise();\n res.once(\"finish\", ()=>{\n finished.resolve();\n });\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk)=>{\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true;\n res.flushHeaders();\n }\n try {\n const ok = res.write(chunk);\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if (\"flush\" in res && typeof res.flush === \"function\") {\n res.flush();\n }\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise;\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_1__.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw new Error(\"failed to write chunk to response\", {\n cause: err\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nasync function pipeToNodeResponse(readable, res, waitUntilForEnd) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = (0,_web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_0__.createAbortController)(res);\n const writer = createWriterFromResponse(res, waitUntilForEnd);\n await readable.pipeTo(writer, {\n signal: controller.signal\n });\n } catch (err) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return;\n throw new Error(\"failed to pipe response\", {\n cause: err\n });\n }\n} //# sourceMappingURL=pipe-readable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3BpcGUtcmVhZGFibGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF3RztBQUM5QztBQUNuRCxTQUFTRyxhQUFhQyxDQUFDO0lBQzFCLE9BQU8sQ0FBQ0EsS0FBSyxPQUFPLEtBQUssSUFBSUEsRUFBRUMsSUFBSSxNQUFNLGdCQUFnQixDQUFDRCxLQUFLLE9BQU8sS0FBSyxJQUFJQSxFQUFFQyxJQUFJLE1BQU1MLDBGQUFtQkE7QUFDbEg7QUFDQSxTQUFTTSx5QkFBeUJDLEdBQUcsRUFBRUMsZUFBZTtJQUNsRCxJQUFJQyxVQUFVO0lBQ2Qsd0VBQXdFO0lBQ3hFLHdEQUF3RDtJQUN4RCxJQUFJQyxVQUFVLElBQUlSLGtFQUFlQTtJQUNqQyxTQUFTUztRQUNMRCxRQUFRRSxPQUFPO0lBQ25CO0lBQ0FMLElBQUlNLEVBQUUsQ0FBQyxTQUFTRjtJQUNoQiwwRUFBMEU7SUFDMUUsZUFBZTtJQUNmSixJQUFJTyxJQUFJLENBQUMsU0FBUztRQUNkUCxJQUFJUSxHQUFHLENBQUMsU0FBU0o7UUFDakJELFFBQVFFLE9BQU87SUFDbkI7SUFDQSx5RUFBeUU7SUFDekUsa0RBQWtEO0lBQ2xELE1BQU1JLFdBQVcsSUFBSWQsa0VBQWVBO0lBQ3BDSyxJQUFJTyxJQUFJLENBQUMsVUFBVTtRQUNmRSxTQUFTSixPQUFPO0lBQ3BCO0lBQ0EsNERBQTREO0lBQzVELE9BQU8sSUFBSUssZUFBZTtRQUN0QkMsT0FBTyxPQUFPQztZQUNWLDBFQUEwRTtZQUMxRSx3RUFBd0U7WUFDeEUsMEJBQTBCO1lBQzFCLElBQUksQ0FBQ1YsU0FBUztnQkFDVkEsVUFBVTtnQkFDVkYsSUFBSWEsWUFBWTtZQUNwQjtZQUNBLElBQUk7Z0JBQ0EsTUFBTUMsS0FBS2QsSUFBSVcsS0FBSyxDQUFDQztnQkFDckIsc0VBQXNFO2dCQUN0RSx5REFBeUQ7Z0JBQ3pELElBQUksV0FBV1osT0FBTyxPQUFPQSxJQUFJZSxLQUFLLEtBQUssWUFBWTtvQkFDbkRmLElBQUllLEtBQUs7Z0JBQ2I7Z0JBQ0EscUVBQXFFO2dCQUNyRSw4Q0FBOEM7Z0JBQzlDLElBQUksQ0FBQ0QsSUFBSTtvQkFDTCxNQUFNWCxRQUFRYSxPQUFPO29CQUNyQiwwRUFBMEU7b0JBQzFFYixVQUFVLElBQUlSLGtFQUFlQTtnQkFDakM7WUFDSixFQUFFLE9BQU9zQixLQUFLO2dCQUNWakIsSUFBSWtCLEdBQUc7Z0JBQ1AsTUFBTSxJQUFJQyxNQUFNLHFDQUFxQztvQkFDakRDLE9BQU9IO2dCQUNYO1lBQ0o7UUFDSjtRQUNBSSxPQUFPLENBQUNKO1lBQ0osSUFBSWpCLElBQUlzQixnQkFBZ0IsRUFBRTtZQUMxQnRCLElBQUl1QixPQUFPLENBQUNOO1FBQ2hCO1FBQ0FPLE9BQU87WUFDSCxtRUFBbUU7WUFDbkUsdUJBQXVCO1lBQ3ZCLElBQUl2QixpQkFBaUI7Z0JBQ2pCLE1BQU1BO1lBQ1Y7WUFDQSxJQUFJRCxJQUFJc0IsZ0JBQWdCLEVBQUU7WUFDMUJ0QixJQUFJa0IsR0FBRztZQUNQLE9BQU9ULFNBQVNPLE9BQU87UUFDM0I7SUFDSjtBQUNKO0FBQ08sZUFBZVMsbUJBQW1CQyxRQUFRLEVBQUUxQixHQUFHLEVBQUVDLGVBQWU7SUFDbkUsSUFBSTtRQUNBLDZEQUE2RDtRQUM3RCxNQUFNLEVBQUUwQixPQUFPLEVBQUVDLFNBQVMsRUFBRSxHQUFHNUI7UUFDL0IsSUFBSTJCLFdBQVdDLFdBQVc7UUFDMUIsd0VBQXdFO1FBQ3hFLHNCQUFzQjtRQUN0QixNQUFNQyxhQUFhbkMsZ0dBQXFCQSxDQUFDTTtRQUN6QyxNQUFNOEIsU0FBUy9CLHlCQUF5QkMsS0FBS0M7UUFDN0MsTUFBTXlCLFNBQVNLLE1BQU0sQ0FBQ0QsUUFBUTtZQUMxQkUsUUFBUUgsV0FBV0csTUFBTTtRQUM3QjtJQUNKLEVBQUUsT0FBT2YsS0FBSztRQUNWLHdEQUF3RDtRQUN4RCxJQUFJckIsYUFBYXFCLE1BQU07UUFDdkIsTUFBTSxJQUFJRSxNQUFNLDJCQUEyQjtZQUN2Q0MsT0FBT0g7UUFDWDtJQUNKO0FBQ0osRUFFQSx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9waXBlLXJlYWRhYmxlLmpzPzgwZjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzcG9uc2VBYm9ydGVkTmFtZSwgY3JlYXRlQWJvcnRDb250cm9sbGVyIH0gZnJvbSBcIi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL25leHQtcmVxdWVzdFwiO1xuaW1wb3J0IHsgRGV0YWNoZWRQcm9taXNlIH0gZnJvbSBcIi4uL2xpYi9kZXRhY2hlZC1wcm9taXNlXCI7XG5leHBvcnQgZnVuY3Rpb24gaXNBYm9ydEVycm9yKGUpIHtcbiAgICByZXR1cm4gKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUubmFtZSkgPT09IFwiQWJvcnRFcnJvclwiIHx8IChlID09IG51bGwgPyB2b2lkIDAgOiBlLm5hbWUpID09PSBSZXNwb25zZUFib3J0ZWROYW1lO1xufVxuZnVuY3Rpb24gY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlKHJlcywgd2FpdFVudGlsRm9yRW5kKSB7XG4gICAgbGV0IHN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIG9uY2UgdGhlIHJlc3BvbnNlIGhhcyBkcmFpbmVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL3N0cmVhbS5odG1sI3N0cmVhbV9ldmVudF9kcmFpblxuICAgIGxldCBkcmFpbmVkID0gbmV3IERldGFjaGVkUHJvbWlzZSgpO1xuICAgIGZ1bmN0aW9uIG9uRHJhaW4oKSB7XG4gICAgICAgIGRyYWluZWQucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXMub24oXCJkcmFpblwiLCBvbkRyYWluKTtcbiAgICAvLyBJZiB0aGUgZmluaXNoIGV2ZW50IGZpcmVzLCBpdCBtZWFucyB3ZSBzaG91bGRuJ3QgYmxvY2sgYW5kIHdhaXQgZm9yIHRoZVxuICAgIC8vIGRyYWluIGV2ZW50LlxuICAgIHJlcy5vbmNlKFwiY2xvc2VcIiwgKCk9PntcbiAgICAgICAgcmVzLm9mZihcImRyYWluXCIsIG9uRHJhaW4pO1xuICAgICAgICBkcmFpbmVkLnJlc29sdmUoKTtcbiAgICB9KTtcbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIG9uY2UgdGhlIHJlc3BvbnNlIGhhcyBmaW5pc2hlZC4gU2VlXG4gICAgLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9odHRwLmh0bWwjZXZlbnQtZmluaXNoXzFcbiAgICBjb25zdCBmaW5pc2hlZCA9IG5ldyBEZXRhY2hlZFByb21pc2UoKTtcbiAgICByZXMub25jZShcImZpbmlzaFwiLCAoKT0+e1xuICAgICAgICBmaW5pc2hlZC5yZXNvbHZlKCk7XG4gICAgfSk7XG4gICAgLy8gQ3JlYXRlIGEgd3JpdGFibGUgc3RyZWFtIHRoYXQgd2lsbCB3cml0ZSB0byB0aGUgcmVzcG9uc2UuXG4gICAgcmV0dXJuIG5ldyBXcml0YWJsZVN0cmVhbSh7XG4gICAgICAgIHdyaXRlOiBhc3luYyAoY2h1bmspPT57XG4gICAgICAgICAgICAvLyBZb3UnZCB0aGluayB3ZSdkIHdhbnQgdG8gdXNlIGBzdGFydGAgaW5zdGVhZCBvZiBwbGFjaW5nIHRoaXMgaW4gYHdyaXRlYFxuICAgICAgICAgICAgLy8gYnV0IHRoaXMgZW5zdXJlcyB0aGF0IHdlIGRvbid0IGFjdHVhbGx5IGZsdXNoIHRoZSBoZWFkZXJzIHVudGlsIHdlJ3ZlXG4gICAgICAgICAgICAvLyBzdGFydGVkIHdyaXRpbmcgY2h1bmtzLlxuICAgICAgICAgICAgaWYgKCFzdGFydGVkKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzLmZsdXNoSGVhZGVycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvayA9IHJlcy53cml0ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgLy8gQWRkZWQgYnkgdGhlIGBjb21wcmVzc2lvbmAgbWlkZGxld2FyZSwgdGhpcyBpcyBhIGZ1bmN0aW9uIHRoYXQgd2lsbFxuICAgICAgICAgICAgICAgIC8vIGZsdXNoIHRoZSBwYXJ0aWFsbHktY29tcHJlc3NlZCByZXNwb25zZSB0byB0aGUgY2xpZW50LlxuICAgICAgICAgICAgICAgIGlmIChcImZsdXNoXCIgaW4gcmVzICYmIHR5cGVvZiByZXMuZmx1c2ggPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICByZXMuZmx1c2goKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHdyaXRlIHJldHVybnMgZmFsc2UsIGl0IG1lYW5zIHRoZXJlJ3Mgc29tZSBiYWNrcHJlc3N1cmUsIHNvXG4gICAgICAgICAgICAgICAgLy8gd2FpdCB1bnRpbCBpdCdzIHN0cmVhbWVkIGJlZm9yZSBjb250aW51aW5nLlxuICAgICAgICAgICAgICAgIGlmICghb2spIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZHJhaW5lZC5wcm9taXNlO1xuICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgZHJhaW5lZCBwcm9taXNlIHNvIHRoYXQgd2UgY2FuIHdhaXQgZm9yIHRoZSBuZXh0IGRyYWluIGV2ZW50LlxuICAgICAgICAgICAgICAgICAgICBkcmFpbmVkID0gbmV3IERldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgdG8gd3JpdGUgY2h1bmsgdG8gcmVzcG9uc2VcIiwge1xuICAgICAgICAgICAgICAgICAgICBjYXVzZTogZXJyXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFib3J0OiAoZXJyKT0+e1xuICAgICAgICAgICAgaWYgKHJlcy53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICByZXMuZGVzdHJveShlcnIpO1xuICAgICAgICB9LFxuICAgICAgICBjbG9zZTogYXN5bmMgKCk9PntcbiAgICAgICAgICAgIC8vIGlmIGEgd2FpdFVudGlsIHByb21pc2Ugd2FzIHBhc3NlZCwgd2FpdCBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmVcbiAgICAgICAgICAgIC8vIGVuZGluZyB0aGUgcmVzcG9uc2UuXG4gICAgICAgICAgICBpZiAod2FpdFVudGlsRm9yRW5kKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd2FpdFVudGlsRm9yRW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcy53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgICByZXR1cm4gZmluaXNoZWQucHJvbWlzZTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBpcGVUb05vZGVSZXNwb25zZShyZWFkYWJsZSwgcmVzLCB3YWl0VW50aWxGb3JFbmQpIHtcbiAgICB0cnkge1xuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaGFzIGFscmVhZHkgZXJyb3JlZCwgdGhlbiBqdXN0IHJldHVybiBub3cuXG4gICAgICAgIGNvbnN0IHsgZXJyb3JlZCwgZGVzdHJveWVkIH0gPSByZXM7XG4gICAgICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkgcmV0dXJuO1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQWJvcnRDb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIGFib3J0IHRoZSByZWFkYWJsZSBpZiB0aGVcbiAgICAgICAgLy8gY2xpZW50IGRpc2Nvbm5lY3RzLlxuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlcyk7XG4gICAgICAgIGNvbnN0IHdyaXRlciA9IGNyZWF0ZVdyaXRlckZyb21SZXNwb25zZShyZXMsIHdhaXRVbnRpbEZvckVuZCk7XG4gICAgICAgIGF3YWl0IHJlYWRhYmxlLnBpcGVUbyh3cml0ZXIsIHtcbiAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIElmIHRoaXMgaXNuJ3QgcmVsYXRlZCB0byBhbiBhYm9ydCBlcnJvciwgcmUtdGhyb3cgaXQuXG4gICAgICAgIGlmIChpc0Fib3J0RXJyb3IoZXJyKSkgcmV0dXJuO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgdG8gcGlwZSByZXNwb25zZVwiLCB7XG4gICAgICAgICAgICBjYXVzZTogZXJyXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGlwZS1yZWFkYWJsZS5qcy5tYXAiXSwibmFtZXMiOlsiUmVzcG9uc2VBYm9ydGVkTmFtZSIsImNyZWF0ZUFib3J0Q29udHJvbGxlciIsIkRldGFjaGVkUHJvbWlzZSIsImlzQWJvcnRFcnJvciIsImUiLCJuYW1lIiwiY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlIiwicmVzIiwid2FpdFVudGlsRm9yRW5kIiwic3RhcnRlZCIsImRyYWluZWQiLCJvbkRyYWluIiwicmVzb2x2ZSIsIm9uIiwib25jZSIsIm9mZiIsImZpbmlzaGVkIiwiV3JpdGFibGVTdHJlYW0iLCJ3cml0ZSIsImNodW5rIiwiZmx1c2hIZWFkZXJzIiwib2siLCJmbHVzaCIsInByb21pc2UiLCJlcnIiLCJlbmQiLCJFcnJvciIsImNhdXNlIiwiYWJvcnQiLCJ3cml0YWJsZUZpbmlzaGVkIiwiZGVzdHJveSIsImNsb3NlIiwicGlwZVRvTm9kZVJlc3BvbnNlIiwicmVhZGFibGUiLCJlcnJvcmVkIiwiZGVzdHJveWVkIiwiY29udHJvbGxlciIsIndyaXRlciIsInBpcGVUbyIsInNpZ25hbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/pipe-readable.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/render-result.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/render-result.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RenderResult)\n/* harmony export */ });\n/* harmony import */ var _stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./stream-utils/node-web-streams-helper */ \"(ssr)/../../node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js\");\n/* harmony import */ var _pipe_readable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pipe-readable */ \"(ssr)/../../node_modules/next/dist/esm/server/pipe-readable.js\");\n\n\nclass RenderResult {\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @returns a new RenderResult instance\n */ static fromStatic(value) {\n return new RenderResult(value, {\n metadata: {}\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== \"string\";\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n throw new Error(\"Invariant: null responses cannot be unchunked\");\n }\n if (typeof this.response !== \"string\") {\n if (!stream) {\n throw new Error(\"Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js\");\n }\n return (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_0__.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns the response if it is a stream, or throws an error if it is a\n * string.\n */ get readable() {\n if (this.response === null) {\n throw new Error(\"Invariant: null responses cannot be streamed\");\n }\n if (typeof this.response === \"string\") {\n throw new Error(\"Invariant: static responses cannot be streamed\");\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_0__.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ chain(readable) {\n if (this.response === null) {\n throw new Error(\"Invariant: response is null. This is a bug in Next.js\");\n }\n // If the response is not an array of streams already, make it one.\n let responses;\n if (typeof this.response === \"string\") {\n responses = [\n (0,_stream_utils_node_web_streams_helper__WEBPACK_IMPORTED_MODULE_0__.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n responses = this.response;\n } else {\n responses = [\n this.response\n ];\n }\n // Add the new stream to the array.\n responses.push(readable);\n // Update the response.\n this.response = responses;\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if ((0,_pipe_readable__WEBPACK_IMPORTED_MODULE_1__.isAbortError)(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err);\n return;\n }\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err;\n }\n }\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */ async pipeToNodeResponse(res) {\n await (0,_pipe_readable__WEBPACK_IMPORTED_MODULE_1__.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n} //# sourceMappingURL=render-result.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3JlbmRlci1yZXN1bHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXdHO0FBQ3JDO0FBQ3BELE1BQU1LO0lBQ2pCOzs7OztHQUtELEdBQUcsT0FBT0MsV0FBV0MsS0FBSyxFQUFFO1FBQ3ZCLE9BQU8sSUFBSUYsYUFBYUUsT0FBTztZQUMzQkMsVUFBVSxDQUFDO1FBQ2Y7SUFDSjtJQUNBQyxZQUFZQyxRQUFRLEVBQUUsRUFBRUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVKLFFBQVEsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQ0UsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDSCxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0ksU0FBUyxHQUFHQTtJQUNyQjtJQUNBQyxlQUFlTCxRQUFRLEVBQUU7UUFDckJNLE9BQU9DLE1BQU0sQ0FBQyxJQUFJLENBQUNQLFFBQVEsRUFBRUE7SUFDakM7SUFDQTs7O0dBR0QsR0FBRyxJQUFJUSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUNOLFFBQVEsS0FBSztJQUM3QjtJQUNBOzs7R0FHRCxHQUFHLElBQUlPLFlBQVk7UUFDZCxPQUFPLE9BQU8sSUFBSSxDQUFDUCxRQUFRLEtBQUs7SUFDcEM7SUFDQVEsa0JBQWtCQyxTQUFTLEtBQUssRUFBRTtRQUM5QixJQUFJLElBQUksQ0FBQ1QsUUFBUSxLQUFLLE1BQU07WUFDeEIsTUFBTSxJQUFJVSxNQUFNO1FBQ3BCO1FBQ0EsSUFBSSxPQUFPLElBQUksQ0FBQ1YsUUFBUSxLQUFLLFVBQVU7WUFDbkMsSUFBSSxDQUFDUyxRQUFRO2dCQUNULE1BQU0sSUFBSUMsTUFBTTtZQUNwQjtZQUNBLE9BQU9sQixxRkFBY0EsQ0FBQyxJQUFJLENBQUNtQixRQUFRO1FBQ3ZDO1FBQ0EsT0FBTyxJQUFJLENBQUNYLFFBQVE7SUFDeEI7SUFDQTs7O0dBR0QsR0FBRyxJQUFJVyxXQUFXO1FBQ2IsSUFBSSxJQUFJLENBQUNYLFFBQVEsS0FBSyxNQUFNO1lBQ3hCLE1BQU0sSUFBSVUsTUFBTTtRQUNwQjtRQUNBLElBQUksT0FBTyxJQUFJLENBQUNWLFFBQVEsS0FBSyxVQUFVO1lBQ25DLE1BQU0sSUFBSVUsTUFBTTtRQUNwQjtRQUNBLG9FQUFvRTtRQUNwRSxJQUFJRSxNQUFNQyxPQUFPLENBQUMsSUFBSSxDQUFDYixRQUFRLEdBQUc7WUFDOUIsT0FBT1YsbUZBQVlBLElBQUksSUFBSSxDQUFDVSxRQUFRO1FBQ3hDO1FBQ0EsT0FBTyxJQUFJLENBQUNBLFFBQVE7SUFDeEI7SUFDQTs7Ozs7OztHQU9ELEdBQUdjLE1BQU1ILFFBQVEsRUFBRTtRQUNkLElBQUksSUFBSSxDQUFDWCxRQUFRLEtBQUssTUFBTTtZQUN4QixNQUFNLElBQUlVLE1BQU07UUFDcEI7UUFDQSxtRUFBbUU7UUFDbkUsSUFBSUs7UUFDSixJQUFJLE9BQU8sSUFBSSxDQUFDZixRQUFRLEtBQUssVUFBVTtZQUNuQ2UsWUFBWTtnQkFDUnhCLHVGQUFnQkEsQ0FBQyxJQUFJLENBQUNTLFFBQVE7YUFDakM7UUFDTCxPQUFPLElBQUlZLE1BQU1DLE9BQU8sQ0FBQyxJQUFJLENBQUNiLFFBQVEsR0FBRztZQUNyQ2UsWUFBWSxJQUFJLENBQUNmLFFBQVE7UUFDN0IsT0FBTztZQUNIZSxZQUFZO2dCQUNSLElBQUksQ0FBQ2YsUUFBUTthQUNoQjtRQUNMO1FBQ0EsbUNBQW1DO1FBQ25DZSxVQUFVQyxJQUFJLENBQUNMO1FBQ2YsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQ1gsUUFBUSxHQUFHZTtJQUNwQjtJQUNBOzs7Ozs7R0FNRCxHQUFHLE1BQU1FLE9BQU9DLFFBQVEsRUFBRTtRQUNyQixJQUFJO1lBQ0EsTUFBTSxJQUFJLENBQUNQLFFBQVEsQ0FBQ00sTUFBTSxDQUFDQyxVQUFVO2dCQUNqQyxxRUFBcUU7Z0JBQ3JFLHNFQUFzRTtnQkFDdEUsc0VBQXNFO2dCQUN0RSxTQUFTO2dCQUNUQyxjQUFjO1lBQ2xCO1lBQ0EsaUVBQWlFO1lBQ2pFLCtCQUErQjtZQUMvQixJQUFJLElBQUksQ0FBQ2pCLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQ0EsU0FBUztZQUN4Qyw2QkFBNkI7WUFDN0IsTUFBTWdCLFNBQVNFLEtBQUs7UUFDeEIsRUFBRSxPQUFPQyxLQUFLO1lBQ1Ysd0VBQXdFO1lBQ3hFLDBFQUEwRTtZQUMxRSxnQ0FBZ0M7WUFDaEMsSUFBSTVCLDREQUFZQSxDQUFDNEIsTUFBTTtnQkFDbkIsd0RBQXdEO2dCQUN4RCxNQUFNSCxTQUFTSSxLQUFLLENBQUNEO2dCQUNyQjtZQUNKO1lBQ0EseUVBQXlFO1lBQ3pFLHdFQUF3RTtZQUN4RSwwQkFBMEI7WUFDMUIsTUFBTUE7UUFDVjtJQUNKO0lBQ0E7Ozs7O0dBS0QsR0FBRyxNQUFNM0IsbUJBQW1CNkIsR0FBRyxFQUFFO1FBQzVCLE1BQU03QixrRUFBa0JBLENBQUMsSUFBSSxDQUFDaUIsUUFBUSxFQUFFWSxLQUFLLElBQUksQ0FBQ3JCLFNBQVM7SUFDL0Q7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3JlbmRlci1yZXN1bHQuanM/YjUxMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjaGFpblN0cmVhbXMsIHN0cmVhbUZyb21TdHJpbmcsIHN0cmVhbVRvU3RyaW5nIH0gZnJvbSBcIi4vc3RyZWFtLXV0aWxzL25vZGUtd2ViLXN0cmVhbXMtaGVscGVyXCI7XG5pbXBvcnQgeyBpc0Fib3J0RXJyb3IsIHBpcGVUb05vZGVSZXNwb25zZSB9IGZyb20gXCIuL3BpcGUtcmVhZGFibGVcIjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbmRlclJlc3VsdCB7XG4gICAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgUmVuZGVyUmVzdWx0IGluc3RhbmNlIGZyb20gYSBzdGF0aWMgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgc3RhdGljIHJlc3BvbnNlIHZhbHVlXG4gICAqIEByZXR1cm5zIGEgbmV3IFJlbmRlclJlc3VsdCBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb21TdGF0aWModmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJSZXN1bHQodmFsdWUsIHtcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7fVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocmVzcG9uc2UsIHsgY29udGVudFR5cGUsIHdhaXRVbnRpbCwgbWV0YWRhdGEgfSl7XG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgICAgIHRoaXMud2FpdFVudGlsID0gd2FpdFVudGlsO1xuICAgIH1cbiAgICBhc3NpZ25NZXRhZGF0YShtZXRhZGF0YSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWV0YWRhdGEsIG1ldGFkYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVzcG9uc2UgaXMgbnVsbC4gSXQgY2FuIGJlIG51bGwgaWYgdGhlIHJlc3BvbnNlIHdhc1xuICAgKiBub3QgZm91bmQgb3Igd2FzIGFscmVhZHkgc2VudC5cbiAgICovIGdldCBpc051bGwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlID09PSBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgcmVzcG9uc2UgaXMgYSBzdHJpbmcuIEl0IGNhbiBiZSBhIHN0cmluZyBpZiB0aGUgcGFnZVxuICAgKiB3YXMgcHJlcmVuZGVyZWQuIElmIGl0J3Mgbm90LCB0aGVuIGl0IHdhcyBnZW5lcmF0ZWQgZHluYW1pY2FsbHkuXG4gICAqLyBnZXQgaXNEeW5hbWljKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMucmVzcG9uc2UgIT09IFwic3RyaW5nXCI7XG4gICAgfVxuICAgIHRvVW5jaHVua2VkU3RyaW5nKHN0cmVhbSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IG51bGwgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogZHluYW1pYyByZXNwb25zZXMgY2Fubm90IGJlIHVuY2h1bmtlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0cmVhbVRvU3RyaW5nKHRoaXMucmVhZGFibGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVzcG9uc2UgaWYgaXQgaXMgYSBzdHJlYW0sIG9yIHRocm93cyBhbiBlcnJvciBpZiBpdCBpcyBhXG4gICAqIHN0cmluZy5cbiAgICovIGdldCByZWFkYWJsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogbnVsbCByZXNwb25zZXMgY2Fubm90IGJlIHN0cmVhbWVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiBzdGF0aWMgcmVzcG9uc2VzIGNhbm5vdCBiZSBzdHJlYW1lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYW4gYXJyYXkgb2Ygc3RyZWFtcywgdGhlbiBjaGFpbiB0aGVtIHRvZ2V0aGVyLlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNoYWluU3RyZWFtcyguLi50aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENoYWlucyBhIG5ldyBzdHJlYW0gdG8gdGhlIHJlc3BvbnNlLiBUaGlzIHdpbGwgY29udmVydCB0aGUgcmVzcG9uc2UgdG8gYW5cbiAgICogYXJyYXkgb2Ygc3RyZWFtcyBpZiBpdCBpcyBub3QgYWxyZWFkeSBvbmUgYW5kIHdpbGwgYWRkIHRoZSBuZXcgc3RyZWFtIHRvXG4gICAqIHRoZSBlbmQuIFdoZW4gdGhpcyByZXNwb25zZSBpcyBwaXBlZCwgYWxsIG9mIHRoZSBzdHJlYW1zIHdpbGwgYmUgcGlwZWRcbiAgICogb25lIGFmdGVyIHRoZSBvdGhlci5cbiAgICpcbiAgICogQHBhcmFtIHJlYWRhYmxlIFRoZSBuZXcgc3RyZWFtIHRvIGNoYWluXG4gICAqLyBjaGFpbihyZWFkYWJsZSkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiByZXNwb25zZSBpcyBudWxsLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanNcIik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIG5vdCBhbiBhcnJheSBvZiBzdHJlYW1zIGFscmVhZHksIG1ha2UgaXQgb25lLlxuICAgICAgICBsZXQgcmVzcG9uc2VzO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2UgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlcyA9IFtcbiAgICAgICAgICAgICAgICBzdHJlYW1Gcm9tU3RyaW5nKHRoaXMucmVzcG9uc2UpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlcyA9IHRoaXMucmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNwb25zZXMgPSBbXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBBZGQgdGhlIG5ldyBzdHJlYW0gdG8gdGhlIGFycmF5LlxuICAgICAgICByZXNwb25zZXMucHVzaChyZWFkYWJsZSk7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgcmVzcG9uc2UuXG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZXM7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQaXBlcyB0aGUgcmVzcG9uc2UgdG8gYSB3cml0YWJsZSBzdHJlYW0uIFRoaXMgd2lsbCBjbG9zZS9jYW5jZWwgdGhlXG4gICAqIHdyaXRhYmxlIHN0cmVhbSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC4gSWYgdGhpcyBkb2Vzbid0IHRocm93LCB0aGVuXG4gICAqIHRoZSB3cml0YWJsZSBzdHJlYW0gd2lsbCBiZSBjbG9zZWQgb3IgYWJvcnRlZC5cbiAgICpcbiAgICogQHBhcmFtIHdyaXRhYmxlIFdyaXRhYmxlIHN0cmVhbSB0byBwaXBlIHRoZSByZXNwb25zZSB0b1xuICAgKi8gYXN5bmMgcGlwZVRvKHdyaXRhYmxlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlYWRhYmxlLnBpcGVUbyh3cml0YWJsZSwge1xuICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gY2xvc2UgdGhlIHdyaXRhYmxlIHN0cmVhbSBvdXJzZWx2ZXMgc28gdGhhdCB3ZSBjYW4gd2FpdFxuICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgd2FpdFVudGlsIHByb21pc2UgdG8gcmVzb2x2ZSBiZWZvcmUgY2xvc2luZyBpdC4gSWYgYW4gZXJyb3JcbiAgICAgICAgICAgICAgICAvLyBpcyBlbmNvdW50ZXJlZCwgd2UnbGwgYWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBpZiB3ZSBzd2FsbG93ZWQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZXJyb3IuXG4gICAgICAgICAgICAgICAgcHJldmVudENsb3NlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgd2FpdFVudGlsIHByb21pc2UsIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlXG4gICAgICAgICAgICAvLyBjbG9zaW5nIHRoZSB3cml0YWJsZSBzdHJlYW0uXG4gICAgICAgICAgICBpZiAodGhpcy53YWl0VW50aWwpIGF3YWl0IHRoaXMud2FpdFVudGlsO1xuICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIHdyaXRhYmxlIHN0cmVhbS5cbiAgICAgICAgICAgIGF3YWl0IHdyaXRhYmxlLmNsb3NlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhbiBhYm9ydCBlcnJvciwgd2Ugc2hvdWxkIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gKGFzIHdlXG4gICAgICAgICAgICAvLyB0b29rIG93bmVyc2hpcCBvZiBpdCB3aGVuIHdlIHN0YXJ0ZWQgcGlwaW5nKS4gV2UgZG9uJ3QgbmVlZCB0byByZS10aHJvd1xuICAgICAgICAgICAgLy8gYmVjYXVzZSB3ZSBoYW5kbGVkIHRoZSBlcnJvci5cbiAgICAgICAgICAgIGlmIChpc0Fib3J0RXJyb3IoZXJyKSkge1xuICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuXG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGFibGUuYWJvcnQoZXJyKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSdyZSBub3QgYWJvcnRpbmcgdGhlIHdyaXRlciBoZXJlIGFzIHdoZW4gdGhpcyBtZXRob2QgdGhyb3dzIGl0J3Mgbm90XG4gICAgICAgICAgICAvLyBjbGVhciBhcyB0byBob3cgc28gdGhlIGNhbGxlciBzaG91bGQgYXNzdW1lIGl0J3MgdGhlaXIgcmVzcG9uc2liaWxpdHlcbiAgICAgICAgICAgIC8vIHRvIGNsZWFuIHVwIHRoZSB3cml0ZXIuXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAqIFBpcGVzIHRoZSByZXNwb25zZSB0byBhIG5vZGUgcmVzcG9uc2UuIFRoaXMgd2lsbCBjbG9zZS9jYW5jZWwgdGhlIG5vZGVcbiAgICogcmVzcG9uc2UgaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuXG4gICAqXG4gICAqIEBwYXJhbSByZXNcbiAgICovIGFzeW5jIHBpcGVUb05vZGVSZXNwb25zZShyZXMpIHtcbiAgICAgICAgYXdhaXQgcGlwZVRvTm9kZVJlc3BvbnNlKHRoaXMucmVhZGFibGUsIHJlcywgdGhpcy53YWl0VW50aWwpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVuZGVyLXJlc3VsdC5qcy5tYXAiXSwibmFtZXMiOlsiY2hhaW5TdHJlYW1zIiwic3RyZWFtRnJvbVN0cmluZyIsInN0cmVhbVRvU3RyaW5nIiwiaXNBYm9ydEVycm9yIiwicGlwZVRvTm9kZVJlc3BvbnNlIiwiUmVuZGVyUmVzdWx0IiwiZnJvbVN0YXRpYyIsInZhbHVlIiwibWV0YWRhdGEiLCJjb25zdHJ1Y3RvciIsInJlc3BvbnNlIiwiY29udGVudFR5cGUiLCJ3YWl0VW50aWwiLCJhc3NpZ25NZXRhZGF0YSIsIk9iamVjdCIsImFzc2lnbiIsImlzTnVsbCIsImlzRHluYW1pYyIsInRvVW5jaHVua2VkU3RyaW5nIiwic3RyZWFtIiwiRXJyb3IiLCJyZWFkYWJsZSIsIkFycmF5IiwiaXNBcnJheSIsImNoYWluIiwicmVzcG9uc2VzIiwicHVzaCIsInBpcGVUbyIsIndyaXRhYmxlIiwicHJldmVudENsb3NlIiwiY2xvc2UiLCJlcnIiLCJhYm9ydCIsInJlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/render-result.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/request-meta.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/request-meta.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NEXT_REQUEST_META: () => (/* binding */ NEXT_REQUEST_META),\n/* harmony export */ addRequestMeta: () => (/* binding */ addRequestMeta),\n/* harmony export */ getNextInternalQuery: () => (/* binding */ getNextInternalQuery),\n/* harmony export */ getRequestMeta: () => (/* binding */ getRequestMeta),\n/* harmony export */ removeRequestMeta: () => (/* binding */ removeRequestMeta),\n/* harmony export */ setRequestMeta: () => (/* binding */ setRequestMeta)\n/* harmony export */ });\n/* eslint-disable no-redeclare */ // FIXME: (wyattjoh) this is a temporary solution to allow us to pass data between bundled modules\nconst NEXT_REQUEST_META = Symbol.for(\"NextInternalRequestMeta\");\nfunction getRequestMeta(req, key) {\n const meta = req[NEXT_REQUEST_META] || {};\n return typeof key === \"string\" ? meta[key] : meta;\n}\n/**\n * Sets the request metadata.\n *\n * @param req the request to set the metadata on\n * @param meta the metadata to set\n * @returns the mutated request metadata\n */ function setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\n/**\n * Adds a value to the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to set\n * @param value the value to set\n * @returns the mutated request metadata\n */ function addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\n/**\n * Removes a key from the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to remove\n * @returns the mutated request metadata\n */ function removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\nfunction getNextInternalQuery(query) {\n const keysToInclude = [\n \"__nextDefaultLocale\",\n \"__nextFallback\",\n \"__nextLocale\",\n \"__nextSsgPath\",\n \"_nextBubbleNoFallback\",\n \"__nextDataReq\",\n \"__nextInferredLocaleFromDefault\"\n ];\n const nextInternalQuery = {};\n for (const key of keysToInclude){\n if (key in query) {\n // @ts-ignore this can't be typed correctly\n nextInternalQuery[key] = query[key];\n }\n }\n return nextInternalQuery;\n} //# sourceMappingURL=request-meta.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3JlcXVlc3QtbWV0YS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwrQkFBK0IsR0FBRyxrR0FBa0c7QUFDN0gsTUFBTUEsb0JBQW9CQyxPQUFPQyxHQUFHLENBQUMsMkJBQTJCO0FBQ2hFLFNBQVNDLGVBQWVDLEdBQUcsRUFBRUMsR0FBRztJQUNuQyxNQUFNQyxPQUFPRixHQUFHLENBQUNKLGtCQUFrQixJQUFJLENBQUM7SUFDeEMsT0FBTyxPQUFPSyxRQUFRLFdBQVdDLElBQUksQ0FBQ0QsSUFBSSxHQUFHQztBQUNqRDtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNDLGVBQWVILEdBQUcsRUFBRUUsSUFBSTtJQUN4Q0YsR0FBRyxDQUFDSixrQkFBa0IsR0FBR007SUFDekIsT0FBT0E7QUFDWDtBQUNBOzs7Ozs7O0NBT0MsR0FBVSxTQUFTRSxlQUFlQyxPQUFPLEVBQUVKLEdBQUcsRUFBRUssS0FBSztJQUNsRCxNQUFNSixPQUFPSCxlQUFlTTtJQUM1QkgsSUFBSSxDQUFDRCxJQUFJLEdBQUdLO0lBQ1osT0FBT0gsZUFBZUUsU0FBU0g7QUFDbkM7QUFDQTs7Ozs7O0NBTUMsR0FBVSxTQUFTSyxrQkFBa0JGLE9BQU8sRUFBRUosR0FBRztJQUM5QyxNQUFNQyxPQUFPSCxlQUFlTTtJQUM1QixPQUFPSCxJQUFJLENBQUNELElBQUk7SUFDaEIsT0FBT0UsZUFBZUUsU0FBU0g7QUFDbkM7QUFDTyxTQUFTTSxxQkFBcUJDLEtBQUs7SUFDdEMsTUFBTUMsZ0JBQWdCO1FBQ2xCO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0tBQ0g7SUFDRCxNQUFNQyxvQkFBb0IsQ0FBQztJQUMzQixLQUFLLE1BQU1WLE9BQU9TLGNBQWM7UUFDNUIsSUFBSVQsT0FBT1EsT0FBTztZQUNkLDJDQUEyQztZQUMzQ0UsaUJBQWlCLENBQUNWLElBQUksR0FBR1EsS0FBSyxDQUFDUixJQUFJO1FBQ3ZDO0lBQ0o7SUFDQSxPQUFPVTtBQUNYLEVBRUEsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvcmVxdWVzdC1tZXRhLmpzP2RhODQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVkZWNsYXJlICovIC8vIEZJWE1FOiAod3lhdHRqb2gpIHRoaXMgaXMgYSB0ZW1wb3Jhcnkgc29sdXRpb24gdG8gYWxsb3cgdXMgdG8gcGFzcyBkYXRhIGJldHdlZW4gYnVuZGxlZCBtb2R1bGVzXG5leHBvcnQgY29uc3QgTkVYVF9SRVFVRVNUX01FVEEgPSBTeW1ib2wuZm9yKFwiTmV4dEludGVybmFsUmVxdWVzdE1ldGFcIik7XG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVxdWVzdE1ldGEocmVxLCBrZXkpIHtcbiAgICBjb25zdCBtZXRhID0gcmVxW05FWFRfUkVRVUVTVF9NRVRBXSB8fCB7fTtcbiAgICByZXR1cm4gdHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIiA/IG1ldGFba2V5XSA6IG1ldGE7XG59XG4vKipcbiAqIFNldHMgdGhlIHJlcXVlc3QgbWV0YWRhdGEuXG4gKlxuICogQHBhcmFtIHJlcSB0aGUgcmVxdWVzdCB0byBzZXQgdGhlIG1ldGFkYXRhIG9uXG4gKiBAcGFyYW0gbWV0YSB0aGUgbWV0YWRhdGEgdG8gc2V0XG4gKiBAcmV0dXJucyB0aGUgbXV0YXRlZCByZXF1ZXN0IG1ldGFkYXRhXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHNldFJlcXVlc3RNZXRhKHJlcSwgbWV0YSkge1xuICAgIHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gPSBtZXRhO1xuICAgIHJldHVybiBtZXRhO1xufVxuLyoqXG4gKiBBZGRzIGEgdmFsdWUgdG8gdGhlIHJlcXVlc3QgbWV0YWRhdGEuXG4gKlxuICogQHBhcmFtIHJlcXVlc3QgdGhlIHJlcXVlc3QgdG8gbXV0YXRlXG4gKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gc2V0XG4gKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIHNldFxuICogQHJldHVybnMgdGhlIG11dGF0ZWQgcmVxdWVzdCBtZXRhZGF0YVxuICovIGV4cG9ydCBmdW5jdGlvbiBhZGRSZXF1ZXN0TWV0YShyZXF1ZXN0LCBrZXksIHZhbHVlKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldFJlcXVlc3RNZXRhKHJlcXVlc3QpO1xuICAgIG1ldGFba2V5XSA9IHZhbHVlO1xuICAgIHJldHVybiBzZXRSZXF1ZXN0TWV0YShyZXF1ZXN0LCBtZXRhKTtcbn1cbi8qKlxuICogUmVtb3ZlcyBhIGtleSBmcm9tIHRoZSByZXF1ZXN0IG1ldGFkYXRhLlxuICpcbiAqIEBwYXJhbSByZXF1ZXN0IHRoZSByZXF1ZXN0IHRvIG11dGF0ZVxuICogQHBhcmFtIGtleSB0aGUga2V5IHRvIHJlbW92ZVxuICogQHJldHVybnMgdGhlIG11dGF0ZWQgcmVxdWVzdCBtZXRhZGF0YVxuICovIGV4cG9ydCBmdW5jdGlvbiByZW1vdmVSZXF1ZXN0TWV0YShyZXF1ZXN0LCBrZXkpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgZGVsZXRlIG1ldGFba2V5XTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEludGVybmFsUXVlcnkocXVlcnkpIHtcbiAgICBjb25zdCBrZXlzVG9JbmNsdWRlID0gW1xuICAgICAgICBcIl9fbmV4dERlZmF1bHRMb2NhbGVcIixcbiAgICAgICAgXCJfX25leHRGYWxsYmFja1wiLFxuICAgICAgICBcIl9fbmV4dExvY2FsZVwiLFxuICAgICAgICBcIl9fbmV4dFNzZ1BhdGhcIixcbiAgICAgICAgXCJfbmV4dEJ1YmJsZU5vRmFsbGJhY2tcIixcbiAgICAgICAgXCJfX25leHREYXRhUmVxXCIsXG4gICAgICAgIFwiX19uZXh0SW5mZXJyZWRMb2NhbGVGcm9tRGVmYXVsdFwiXG4gICAgXTtcbiAgICBjb25zdCBuZXh0SW50ZXJuYWxRdWVyeSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXNUb0luY2x1ZGUpe1xuICAgICAgICBpZiAoa2V5IGluIHF1ZXJ5KSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHRoaXMgY2FuJ3QgYmUgdHlwZWQgY29ycmVjdGx5XG4gICAgICAgICAgICBuZXh0SW50ZXJuYWxRdWVyeVtrZXldID0gcXVlcnlba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dEludGVybmFsUXVlcnk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtbWV0YS5qcy5tYXAiXSwibmFtZXMiOlsiTkVYVF9SRVFVRVNUX01FVEEiLCJTeW1ib2wiLCJmb3IiLCJnZXRSZXF1ZXN0TWV0YSIsInJlcSIsImtleSIsIm1ldGEiLCJzZXRSZXF1ZXN0TWV0YSIsImFkZFJlcXVlc3RNZXRhIiwicmVxdWVzdCIsInZhbHVlIiwicmVtb3ZlUmVxdWVzdE1ldGEiLCJnZXROZXh0SW50ZXJuYWxRdWVyeSIsInF1ZXJ5Iiwia2V5c1RvSW5jbHVkZSIsIm5leHRJbnRlcm5hbFF1ZXJ5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/request-meta.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/response-cache/web.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/response-cache/web.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ WebResponseCache)\n/* harmony export */ });\n/* harmony import */ var _lib_detached_promise__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/detached-promise */ \"(ssr)/../../node_modules/next/dist/esm/lib/detached-promise.js\");\n\n/**\n * In the web server, there is currently no incremental cache provided and we\n * always SSR the page.\n */ class WebResponseCache {\n constructor(minimalMode){\n this.pendingResponses = new Map();\n // this is a hack to avoid Webpack knowing this is equal to this.minimalMode\n // because we replace this.minimalMode to true in production bundles.\n Object.assign(this, {\n minimalMode\n });\n }\n get(key, responseGenerator, context) {\n var _this_previousCacheItem;\n // ensure on-demand revalidate doesn't block normal requests\n const pendingResponseKey = key ? `${key}-${context.isOnDemandRevalidate ? \"1\" : \"0\"}` : null;\n const pendingResponse = pendingResponseKey ? this.pendingResponses.get(pendingResponseKey) : null;\n if (pendingResponse) {\n return pendingResponse;\n }\n const { promise, resolve: resolver, reject: rejecter } = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_0__.DetachedPromise();\n if (pendingResponseKey) {\n this.pendingResponses.set(pendingResponseKey, promise);\n }\n let resolved = false;\n const resolve = (cacheEntry)=>{\n if (pendingResponseKey) {\n // Ensure all reads from the cache get the latest value.\n this.pendingResponses.set(pendingResponseKey, Promise.resolve(cacheEntry));\n }\n if (!resolved) {\n resolved = true;\n resolver(cacheEntry);\n }\n };\n // we keep the previous cache entry around to leverage\n // when the incremental cache is disabled in minimal mode\n if (pendingResponseKey && this.minimalMode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === pendingResponseKey && this.previousCacheItem.expiresAt > Date.now()) {\n resolve(this.previousCacheItem.entry);\n this.pendingResponses.delete(pendingResponseKey);\n return promise;\n }\n (async ()=>{\n try {\n const cacheEntry = await responseGenerator(resolved);\n const resolveValue = cacheEntry === null ? null : {\n ...cacheEntry,\n isMiss: true\n };\n // for on-demand revalidate wait to resolve until cache is set\n if (!context.isOnDemandRevalidate) {\n resolve(resolveValue);\n }\n if (key && cacheEntry && typeof cacheEntry.revalidate !== \"undefined\") {\n this.previousCacheItem = {\n key: pendingResponseKey || key,\n entry: cacheEntry,\n expiresAt: Date.now() + 1000\n };\n } else {\n this.previousCacheItem = undefined;\n }\n if (context.isOnDemandRevalidate) {\n resolve(resolveValue);\n }\n } catch (err) {\n // while revalidating in the background we can't reject as\n // we already resolved the cache entry so log the error here\n if (resolved) {\n console.error(err);\n } else {\n rejecter(err);\n }\n } finally{\n if (pendingResponseKey) {\n this.pendingResponses.delete(pendingResponseKey);\n }\n }\n })();\n return promise;\n }\n} //# sourceMappingURL=web.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3dlYi5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2RDtBQUM3RDs7O0NBR0MsR0FBa0IsTUFBTUM7SUFDckJDLFlBQVlDLFdBQVcsQ0FBQztRQUNwQixJQUFJLENBQUNDLGdCQUFnQixHQUFHLElBQUlDO1FBQzVCLDRFQUE0RTtRQUM1RSxxRUFBcUU7UUFDckVDLE9BQU9DLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDaEJKO1FBQ0o7SUFDSjtJQUNBSyxJQUFJQyxHQUFHLEVBQUVDLGlCQUFpQixFQUFFQyxPQUFPLEVBQUU7UUFDakMsSUFBSUM7UUFDSiw0REFBNEQ7UUFDNUQsTUFBTUMscUJBQXFCSixNQUFNLENBQUMsRUFBRUEsSUFBSSxDQUFDLEVBQUVFLFFBQVFHLG9CQUFvQixHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUc7UUFDeEYsTUFBTUMsa0JBQWtCRixxQkFBcUIsSUFBSSxDQUFDVCxnQkFBZ0IsQ0FBQ0ksR0FBRyxDQUFDSyxzQkFBc0I7UUFDN0YsSUFBSUUsaUJBQWlCO1lBQ2pCLE9BQU9BO1FBQ1g7UUFDQSxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsU0FBU0MsUUFBUSxFQUFFQyxRQUFRQyxRQUFRLEVBQUUsR0FBRyxJQUFJcEIsa0VBQWVBO1FBQzVFLElBQUlhLG9CQUFvQjtZQUNwQixJQUFJLENBQUNULGdCQUFnQixDQUFDaUIsR0FBRyxDQUFDUixvQkFBb0JHO1FBQ2xEO1FBQ0EsSUFBSU0sV0FBVztRQUNmLE1BQU1MLFVBQVUsQ0FBQ007WUFDYixJQUFJVixvQkFBb0I7Z0JBQ3BCLHdEQUF3RDtnQkFDeEQsSUFBSSxDQUFDVCxnQkFBZ0IsQ0FBQ2lCLEdBQUcsQ0FBQ1Isb0JBQW9CVyxRQUFRUCxPQUFPLENBQUNNO1lBQ2xFO1lBQ0EsSUFBSSxDQUFDRCxVQUFVO2dCQUNYQSxXQUFXO2dCQUNYSixTQUFTSztZQUNiO1FBQ0o7UUFDQSxzREFBc0Q7UUFDdEQseURBQXlEO1FBQ3pELElBQUlWLHNCQUFzQixJQUFJLENBQUNWLFdBQVcsSUFBSSxDQUFDLENBQUNTLDBCQUEwQixJQUFJLENBQUNhLGlCQUFpQixLQUFLLE9BQU8sS0FBSyxJQUFJYix3QkFBd0JILEdBQUcsTUFBTUksc0JBQXNCLElBQUksQ0FBQ1ksaUJBQWlCLENBQUNDLFNBQVMsR0FBR0MsS0FBS0MsR0FBRyxJQUFJO1lBQ3ZOWCxRQUFRLElBQUksQ0FBQ1EsaUJBQWlCLENBQUNJLEtBQUs7WUFDcEMsSUFBSSxDQUFDekIsZ0JBQWdCLENBQUMwQixNQUFNLENBQUNqQjtZQUM3QixPQUFPRztRQUNYO1FBQ0M7WUFDRyxJQUFJO2dCQUNBLE1BQU1PLGFBQWEsTUFBTWIsa0JBQWtCWTtnQkFDM0MsTUFBTVMsZUFBZVIsZUFBZSxPQUFPLE9BQU87b0JBQzlDLEdBQUdBLFVBQVU7b0JBQ2JTLFFBQVE7Z0JBQ1o7Z0JBQ0EsOERBQThEO2dCQUM5RCxJQUFJLENBQUNyQixRQUFRRyxvQkFBb0IsRUFBRTtvQkFDL0JHLFFBQVFjO2dCQUNaO2dCQUNBLElBQUl0QixPQUFPYyxjQUFjLE9BQU9BLFdBQVdVLFVBQVUsS0FBSyxhQUFhO29CQUNuRSxJQUFJLENBQUNSLGlCQUFpQixHQUFHO3dCQUNyQmhCLEtBQUtJLHNCQUFzQko7d0JBQzNCb0IsT0FBT047d0JBQ1BHLFdBQVdDLEtBQUtDLEdBQUcsS0FBSztvQkFDNUI7Z0JBQ0osT0FBTztvQkFDSCxJQUFJLENBQUNILGlCQUFpQixHQUFHUztnQkFDN0I7Z0JBQ0EsSUFBSXZCLFFBQVFHLG9CQUFvQixFQUFFO29CQUM5QkcsUUFBUWM7Z0JBQ1o7WUFDSixFQUFFLE9BQU9JLEtBQUs7Z0JBQ1YsMERBQTBEO2dCQUMxRCw0REFBNEQ7Z0JBQzVELElBQUliLFVBQVU7b0JBQ1ZjLFFBQVFDLEtBQUssQ0FBQ0Y7Z0JBQ2xCLE9BQU87b0JBQ0hmLFNBQVNlO2dCQUNiO1lBQ0osU0FBUztnQkFDTCxJQUFJdEIsb0JBQW9CO29CQUNwQixJQUFJLENBQUNULGdCQUFnQixDQUFDMEIsTUFBTSxDQUFDakI7Z0JBQ2pDO1lBQ0o7UUFDSjtRQUNBLE9BQU9HO0lBQ1g7QUFDSixFQUVBLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3dlYi5qcz84ZjZiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldGFjaGVkUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiO1xuLyoqXG4gKiBJbiB0aGUgd2ViIHNlcnZlciwgdGhlcmUgaXMgY3VycmVudGx5IG5vIGluY3JlbWVudGFsIGNhY2hlIHByb3ZpZGVkIGFuZCB3ZVxuICogYWx3YXlzIFNTUiB0aGUgcGFnZS5cbiAqLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBXZWJSZXNwb25zZUNhY2hlIHtcbiAgICBjb25zdHJ1Y3RvcihtaW5pbWFsTW9kZSl7XG4gICAgICAgIHRoaXMucGVuZGluZ1Jlc3BvbnNlcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgLy8gdGhpcyBpcyBhIGhhY2sgdG8gYXZvaWQgV2VicGFjayBrbm93aW5nIHRoaXMgaXMgZXF1YWwgdG8gdGhpcy5taW5pbWFsTW9kZVxuICAgICAgICAvLyBiZWNhdXNlIHdlIHJlcGxhY2UgdGhpcy5taW5pbWFsTW9kZSB0byB0cnVlIGluIHByb2R1Y3Rpb24gYnVuZGxlcy5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB7XG4gICAgICAgICAgICBtaW5pbWFsTW9kZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0KGtleSwgcmVzcG9uc2VHZW5lcmF0b3IsIGNvbnRleHQpIHtcbiAgICAgICAgdmFyIF90aGlzX3ByZXZpb3VzQ2FjaGVJdGVtO1xuICAgICAgICAvLyBlbnN1cmUgb24tZGVtYW5kIHJldmFsaWRhdGUgZG9lc24ndCBibG9jayBub3JtYWwgcmVxdWVzdHNcbiAgICAgICAgY29uc3QgcGVuZGluZ1Jlc3BvbnNlS2V5ID0ga2V5ID8gYCR7a2V5fS0ke2NvbnRleHQuaXNPbkRlbWFuZFJldmFsaWRhdGUgPyBcIjFcIiA6IFwiMFwifWAgOiBudWxsO1xuICAgICAgICBjb25zdCBwZW5kaW5nUmVzcG9uc2UgPSBwZW5kaW5nUmVzcG9uc2VLZXkgPyB0aGlzLnBlbmRpbmdSZXNwb25zZXMuZ2V0KHBlbmRpbmdSZXNwb25zZUtleSkgOiBudWxsO1xuICAgICAgICBpZiAocGVuZGluZ1Jlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gcGVuZGluZ1Jlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgcHJvbWlzZSwgcmVzb2x2ZTogcmVzb2x2ZXIsIHJlamVjdDogcmVqZWN0ZXIgfSA9IG5ldyBEZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgaWYgKHBlbmRpbmdSZXNwb25zZUtleSkge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVzcG9uc2VzLnNldChwZW5kaW5nUmVzcG9uc2VLZXksIHByb21pc2UpO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXNvbHZlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCByZXNvbHZlID0gKGNhY2hlRW50cnkpPT57XG4gICAgICAgICAgICBpZiAocGVuZGluZ1Jlc3BvbnNlS2V5KSB7XG4gICAgICAgICAgICAgICAgLy8gRW5zdXJlIGFsbCByZWFkcyBmcm9tIHRoZSBjYWNoZSBnZXQgdGhlIGxhdGVzdCB2YWx1ZS5cbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdSZXNwb25zZXMuc2V0KHBlbmRpbmdSZXNwb25zZUtleSwgUHJvbWlzZS5yZXNvbHZlKGNhY2hlRW50cnkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZXIoY2FjaGVFbnRyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIHdlIGtlZXAgdGhlIHByZXZpb3VzIGNhY2hlIGVudHJ5IGFyb3VuZCB0byBsZXZlcmFnZVxuICAgICAgICAvLyB3aGVuIHRoZSBpbmNyZW1lbnRhbCBjYWNoZSBpcyBkaXNhYmxlZCBpbiBtaW5pbWFsIG1vZGVcbiAgICAgICAgaWYgKHBlbmRpbmdSZXNwb25zZUtleSAmJiB0aGlzLm1pbmltYWxNb2RlICYmICgoX3RoaXNfcHJldmlvdXNDYWNoZUl0ZW0gPSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfcHJldmlvdXNDYWNoZUl0ZW0ua2V5KSA9PT0gcGVuZGluZ1Jlc3BvbnNlS2V5ICYmIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0uZXhwaXJlc0F0ID4gRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnByZXZpb3VzQ2FjaGVJdGVtLmVudHJ5KTtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1Jlc3BvbnNlcy5kZWxldGUocGVuZGluZ1Jlc3BvbnNlS2V5KTtcbiAgICAgICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgICAgICB9XG4gICAgICAgIChhc3luYyAoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWNoZUVudHJ5ID0gYXdhaXQgcmVzcG9uc2VHZW5lcmF0b3IocmVzb2x2ZWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVWYWx1ZSA9IGNhY2hlRW50cnkgPT09IG51bGwgPyBudWxsIDoge1xuICAgICAgICAgICAgICAgICAgICAuLi5jYWNoZUVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBpc01pc3M6IHRydWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIC8vIGZvciBvbi1kZW1hbmQgcmV2YWxpZGF0ZSB3YWl0IHRvIHJlc29sdmUgdW50aWwgY2FjaGUgaXMgc2V0XG4gICAgICAgICAgICAgICAgaWYgKCFjb250ZXh0LmlzT25EZW1hbmRSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzb2x2ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGtleSAmJiBjYWNoZUVudHJ5ICYmIHR5cGVvZiBjYWNoZUVudHJ5LnJldmFsaWRhdGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogcGVuZGluZ1Jlc3BvbnNlS2V5IHx8IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiBjYWNoZUVudHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgMTAwMFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LmlzT25EZW1hbmRSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzb2x2ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGlsZSByZXZhbGlkYXRpbmcgaW4gdGhlIGJhY2tncm91bmQgd2UgY2FuJ3QgcmVqZWN0IGFzXG4gICAgICAgICAgICAgICAgLy8gd2UgYWxyZWFkeSByZXNvbHZlZCB0aGUgY2FjaGUgZW50cnkgc28gbG9nIHRoZSBlcnJvciBoZXJlXG4gICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWplY3RlcihlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBpZiAocGVuZGluZ1Jlc3BvbnNlS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ1Jlc3BvbnNlcy5kZWxldGUocGVuZGluZ1Jlc3BvbnNlS2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG4gICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2ViLmpzLm1hcCJdLCJuYW1lcyI6WyJEZXRhY2hlZFByb21pc2UiLCJXZWJSZXNwb25zZUNhY2hlIiwiY29uc3RydWN0b3IiLCJtaW5pbWFsTW9kZSIsInBlbmRpbmdSZXNwb25zZXMiLCJNYXAiLCJPYmplY3QiLCJhc3NpZ24iLCJnZXQiLCJrZXkiLCJyZXNwb25zZUdlbmVyYXRvciIsImNvbnRleHQiLCJfdGhpc19wcmV2aW91c0NhY2hlSXRlbSIsInBlbmRpbmdSZXNwb25zZUtleSIsImlzT25EZW1hbmRSZXZhbGlkYXRlIiwicGVuZGluZ1Jlc3BvbnNlIiwicHJvbWlzZSIsInJlc29sdmUiLCJyZXNvbHZlciIsInJlamVjdCIsInJlamVjdGVyIiwic2V0IiwicmVzb2x2ZWQiLCJjYWNoZUVudHJ5IiwiUHJvbWlzZSIsInByZXZpb3VzQ2FjaGVJdGVtIiwiZXhwaXJlc0F0IiwiRGF0ZSIsIm5vdyIsImVudHJ5IiwiZGVsZXRlIiwicmVzb2x2ZVZhbHVlIiwiaXNNaXNzIiwicmV2YWxpZGF0ZSIsInVuZGVmaW5lZCIsImVyciIsImNvbnNvbGUiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/response-cache/web.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/send-response.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/send-response.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ sendResponse: () => (/* binding */ sendResponse)\n/* harmony export */ });\n/* harmony import */ var _pipe_readable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipe-readable */ \"(ssr)/../../node_modules/next/dist/esm/server/pipe-readable.js\");\n/* harmony import */ var _web_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./web/utils */ \"(ssr)/../../node_modules/next/dist/esm/server/web/utils.js\");\n\n\n/**\n * Sends the response on the underlying next response object.\n *\n * @param req the underlying request object\n * @param res the underlying response object\n * @param response the response to send\n */ async function sendResponse(req, res, response, waitUntil) {\n // Don't use in edge runtime\n if (false) { var _response_headers; }\n} //# sourceMappingURL=send-response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3NlbmQtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXFEO0FBQ0o7QUFDakQ7Ozs7OztDQU1DLEdBQVUsZUFBZUUsYUFBYUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLFFBQVEsRUFBRUMsU0FBUztJQUNoRSw0QkFBNEI7SUFDNUIsSUFBSUMsS0FBbUMsRUFBRSwwQkE2QnhDO0FBQ0wsRUFFQSx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9zZW5kLXJlc3BvbnNlLmpzP2Y3MmYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGlwZVRvTm9kZVJlc3BvbnNlIH0gZnJvbSBcIi4vcGlwZS1yZWFkYWJsZVwiO1xuaW1wb3J0IHsgc3BsaXRDb29raWVzU3RyaW5nIH0gZnJvbSBcIi4vd2ViL3V0aWxzXCI7XG4vKipcbiAqIFNlbmRzIHRoZSByZXNwb25zZSBvbiB0aGUgdW5kZXJseWluZyBuZXh0IHJlc3BvbnNlIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gcmVxIHRoZSB1bmRlcmx5aW5nIHJlcXVlc3Qgb2JqZWN0XG4gKiBAcGFyYW0gcmVzIHRoZSB1bmRlcmx5aW5nIHJlc3BvbnNlIG9iamVjdFxuICogQHBhcmFtIHJlc3BvbnNlIHRoZSByZXNwb25zZSB0byBzZW5kXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRSZXNwb25zZShyZXEsIHJlcywgcmVzcG9uc2UsIHdhaXRVbnRpbCkge1xuICAgIC8vIERvbid0IHVzZSBpbiBlZGdlIHJ1bnRpbWVcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIikge1xuICAgICAgICB2YXIgLy8gQ29weSBvdmVyIHRoZSByZXNwb25zZSBoZWFkZXJzLlxuICAgICAgICBfcmVzcG9uc2VfaGVhZGVycztcbiAgICAgICAgLy8gQ29weSBvdmVyIHRoZSByZXNwb25zZSBzdGF0dXMuXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICByZXMuc3RhdHVzTWVzc2FnZSA9IHJlc3BvbnNlLnN0YXR1c1RleHQ7XG4gICAgICAgIChfcmVzcG9uc2VfaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnMpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzcG9uc2VfaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwgbmFtZSk9PntcbiAgICAgICAgICAgIC8vIFRoZSBhcHBlbmQgaGFuZGxpbmcgaXMgc3BlY2lhbCBjYXNlZCBmb3IgYHNldC1jb29raWVgLlxuICAgICAgICAgICAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gXCJzZXQtY29va2llXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiAod3lhdHRqb2gpIHJlcGxhY2Ugd2l0aCBuYXRpdmUgcmVzcG9uc2UgaXRlcmF0aW9uIHdoZW4gd2UgY2FuIHVwZ3JhZGUgdW5kaWNpXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb29raWUgb2Ygc3BsaXRDb29raWVzU3RyaW5nKHZhbHVlKSl7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIobmFtZSwgY29va2llKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICogVGhlIHJlc3BvbnNlIGNhbid0IGJlIGRpcmVjdGx5IHBpcGVkIHRvIHRoZSB1bmRlcmx5aW5nIHJlc3BvbnNlLiBUaGVcbiAgICAgKiBmb2xsb3dpbmcgaXMgZHVwbGljYXRlZCBmcm9tIHRoZSBlZGdlIHJ1bnRpbWUgaGFuZGxlci5cbiAgICAgKlxuICAgICAqIFNlZSBwYWNrYWdlcy9uZXh0L3NlcnZlci9uZXh0LXNlcnZlci50c1xuICAgICAqLyBjb25zdCBvcmlnaW5hbFJlc3BvbnNlID0gcmVzLm9yaWdpbmFsUmVzcG9uc2U7XG4gICAgICAgIC8vIEEgcmVzcG9uc2UgYm9keSBtdXN0IG5vdCBiZSBzZW50IGZvciBIRUFEIHJlcXVlc3RzLiBTZWUgaHR0cHM6Ly9odHRwd2cub3JnL3NwZWNzL3JmYzkxMTAuaHRtbCNIRUFEXG4gICAgICAgIGlmIChyZXNwb25zZS5ib2R5ICYmIHJlcS5tZXRob2QgIT09IFwiSEVBRFwiKSB7XG4gICAgICAgICAgICBhd2FpdCBwaXBlVG9Ob2RlUmVzcG9uc2UocmVzcG9uc2UuYm9keSwgb3JpZ2luYWxSZXNwb25zZSwgd2FpdFVudGlsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9yaWdpbmFsUmVzcG9uc2UuZW5kKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlbmQtcmVzcG9uc2UuanMubWFwIl0sIm5hbWVzIjpbInBpcGVUb05vZGVSZXNwb25zZSIsInNwbGl0Q29va2llc1N0cmluZyIsInNlbmRSZXNwb25zZSIsInJlcSIsInJlcyIsInJlc3BvbnNlIiwid2FpdFVudGlsIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsIl9yZXNwb25zZV9oZWFkZXJzIiwic3RhdHVzQ29kZSIsInN0YXR1cyIsInN0YXR1c01lc3NhZ2UiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyIsImZvckVhY2giLCJ2YWx1ZSIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImNvb2tpZSIsImFwcGVuZEhlYWRlciIsIm9yaWdpbmFsUmVzcG9uc2UiLCJib2R5IiwibWV0aG9kIiwiZW5kIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/send-response.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/server-utils.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/server-utils.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getUtils: () => (/* binding */ getUtils),\n/* harmony export */ interpolateDynamicPath: () => (/* binding */ interpolateDynamicPath),\n/* harmony export */ normalizeDynamicRouteParams: () => (/* binding */ normalizeDynamicRouteParams),\n/* harmony export */ normalizeVercelUrl: () => (/* binding */ normalizeVercelUrl)\n/* harmony export */ });\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! url */ \"(ssr)/../../node_modules/next/dist/compiled/native-url/index.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_lib_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/lib/i18n/normalize-locale-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js\");\n/* harmony import */ var _shared_lib_router_utils_path_match__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/lib/router/utils/path-match */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js\");\n/* harmony import */ var _shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/lib/router/utils/route-regex */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js\");\n/* harmony import */ var _shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/lib/router/utils/route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js\");\n/* harmony import */ var _shared_lib_router_utils_prepare_destination__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/lib/router/utils/prepare-destination */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js\");\n/* harmony import */ var _shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../shared/lib/router/utils/app-paths */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n\n\n\n\n\n\n\n\n\nfunction normalizeVercelUrl(req, trustQuery, paramKeys, pageIsDynamic, defaultRouteRegex) {\n // make sure to normalize req.url on Vercel to strip dynamic params\n // from the query which are added during routing\n if (pageIsDynamic && trustQuery && defaultRouteRegex) {\n const _parsedUrl = (0,url__WEBPACK_IMPORTED_MODULE_0__.parse)(req.url, true);\n delete _parsedUrl.search;\n for (const key of Object.keys(_parsedUrl.query)){\n if (key !== _lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX) || (paramKeys || Object.keys(defaultRouteRegex.groups)).includes(key)) {\n delete _parsedUrl.query[key];\n }\n }\n req.url = (0,url__WEBPACK_IMPORTED_MODULE_0__.format)(_parsedUrl);\n }\n}\nfunction interpolateDynamicPath(pathname, params, defaultRouteRegex) {\n if (!defaultRouteRegex) return pathname;\n for (const param of Object.keys(defaultRouteRegex.groups)){\n const { optional, repeat } = defaultRouteRegex.groups[param];\n let builtParam = `[${repeat ? \"...\" : \"\"}${param}]`;\n if (optional) {\n builtParam = `[${builtParam}]`;\n }\n const paramIdx = pathname.indexOf(builtParam);\n if (paramIdx > -1) {\n let paramValue;\n const value = params[param];\n if (Array.isArray(value)) {\n paramValue = value.map((v)=>v && encodeURIComponent(v)).join(\"/\");\n } else if (value) {\n paramValue = encodeURIComponent(value);\n } else {\n paramValue = \"\";\n }\n pathname = pathname.slice(0, paramIdx) + paramValue + pathname.slice(paramIdx + builtParam.length);\n }\n }\n return pathname;\n}\nfunction normalizeDynamicRouteParams(params, ignoreOptional, defaultRouteRegex, defaultRouteMatches) {\n let hasValidParams = true;\n if (!defaultRouteRegex) return {\n params,\n hasValidParams: false\n };\n params = Object.keys(defaultRouteRegex.groups).reduce((prev, key)=>{\n let value = params[key];\n if (typeof value === \"string\") {\n value = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_7__.normalizeRscURL)(value);\n }\n if (Array.isArray(value)) {\n value = value.map((val)=>{\n if (typeof val === \"string\") {\n val = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_7__.normalizeRscURL)(val);\n }\n return val;\n });\n }\n // if the value matches the default value we can't rely\n // on the parsed params, this is used to signal if we need\n // to parse x-now-route-matches or not\n const defaultValue = defaultRouteMatches[key];\n const isOptional = defaultRouteRegex.groups[key].optional;\n const isDefaultValue = Array.isArray(defaultValue) ? defaultValue.some((defaultVal)=>{\n return Array.isArray(value) ? value.some((val)=>val.includes(defaultVal)) : value == null ? void 0 : value.includes(defaultVal);\n }) : value == null ? void 0 : value.includes(defaultValue);\n if (isDefaultValue || typeof value === \"undefined\" && !(isOptional && ignoreOptional)) {\n hasValidParams = false;\n }\n // non-provided optional values should be undefined so normalize\n // them to undefined\n if (isOptional && (!value || Array.isArray(value) && value.length === 1 && // fallback optional catch-all SSG pages have\n // [[...paramName]] for the root path on Vercel\n (value[0] === \"index\" || value[0] === `[[...${key}]]`))) {\n value = undefined;\n delete params[key];\n }\n // query values from the proxy aren't already split into arrays\n // so make sure to normalize catch-all values\n if (value && typeof value === \"string\" && defaultRouteRegex.groups[key].repeat) {\n value = value.split(\"/\");\n }\n if (value) {\n prev[key] = value;\n }\n return prev;\n }, {});\n return {\n params,\n hasValidParams\n };\n}\nfunction getUtils({ page, i18n, basePath, rewrites, pageIsDynamic, trailingSlash, caseSensitive }) {\n let defaultRouteRegex;\n let dynamicRouteMatcher;\n let defaultRouteMatches;\n if (pageIsDynamic) {\n defaultRouteRegex = (0,_shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_3__.getNamedRouteRegex)(page, false);\n dynamicRouteMatcher = (0,_shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_4__.getRouteMatcher)(defaultRouteRegex);\n defaultRouteMatches = dynamicRouteMatcher(page);\n }\n function handleRewrites(req, parsedUrl) {\n const rewriteParams = {};\n let fsPathname = parsedUrl.pathname;\n const matchesPage = ()=>{\n const fsPathnameNoSlash = (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_6__.removeTrailingSlash)(fsPathname || \"\");\n return fsPathnameNoSlash === (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_6__.removeTrailingSlash)(page) || (dynamicRouteMatcher == null ? void 0 : dynamicRouteMatcher(fsPathnameNoSlash));\n };\n const checkRewrite = (rewrite)=>{\n const matcher = (0,_shared_lib_router_utils_path_match__WEBPACK_IMPORTED_MODULE_2__.getPathMatch)(rewrite.source + (trailingSlash ? \"(/)?\" : \"\"), {\n removeUnnamedParams: true,\n strict: true,\n sensitive: !!caseSensitive\n });\n let params = matcher(parsedUrl.pathname);\n if ((rewrite.has || rewrite.missing) && params) {\n const hasParams = (0,_shared_lib_router_utils_prepare_destination__WEBPACK_IMPORTED_MODULE_5__.matchHas)(req, parsedUrl.query, rewrite.has, rewrite.missing);\n if (hasParams) {\n Object.assign(params, hasParams);\n } else {\n params = false;\n }\n }\n if (params) {\n const { parsedDestination, destQuery } = (0,_shared_lib_router_utils_prepare_destination__WEBPACK_IMPORTED_MODULE_5__.prepareDestination)({\n appendParamsToQuery: true,\n destination: rewrite.destination,\n params: params,\n query: parsedUrl.query\n });\n // if the rewrite destination is external break rewrite chain\n if (parsedDestination.protocol) {\n return true;\n }\n Object.assign(rewriteParams, destQuery, params);\n Object.assign(parsedUrl.query, parsedDestination.query);\n delete parsedDestination.query;\n Object.assign(parsedUrl, parsedDestination);\n fsPathname = parsedUrl.pathname;\n if (basePath) {\n fsPathname = fsPathname.replace(new RegExp(`^${basePath}`), \"\") || \"/\";\n }\n if (i18n) {\n const destLocalePathResult = (0,_shared_lib_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_1__.normalizeLocalePath)(fsPathname, i18n.locales);\n fsPathname = destLocalePathResult.pathname;\n parsedUrl.query.nextInternalLocale = destLocalePathResult.detectedLocale || params.nextInternalLocale;\n }\n if (fsPathname === page) {\n return true;\n }\n if (pageIsDynamic && dynamicRouteMatcher) {\n const dynamicParams = dynamicRouteMatcher(fsPathname);\n if (dynamicParams) {\n parsedUrl.query = {\n ...parsedUrl.query,\n ...dynamicParams\n };\n return true;\n }\n }\n }\n return false;\n };\n for (const rewrite of rewrites.beforeFiles || []){\n checkRewrite(rewrite);\n }\n if (fsPathname !== page) {\n let finished = false;\n for (const rewrite of rewrites.afterFiles || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n if (!finished && !matchesPage()) {\n for (const rewrite of rewrites.fallback || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n }\n }\n return rewriteParams;\n }\n function getParamsFromRouteMatches(req, renderOpts, detectedLocale) {\n return (0,_shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_4__.getRouteMatcher)(function() {\n const { groups, routeKeys } = defaultRouteRegex;\n return {\n re: {\n // Simulate a RegExp match from the \\`req.url\\` input\n exec: (str)=>{\n const obj = Object.fromEntries(new URLSearchParams(str));\n const matchesHasLocale = i18n && detectedLocale && obj[\"1\"] === detectedLocale;\n for (const key of Object.keys(obj)){\n const value = obj[key];\n if (key !== _lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX)) {\n const normalizedKey = key.substring(_lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX.length);\n obj[normalizedKey] = value;\n delete obj[key];\n }\n }\n // favor named matches if available\n const routeKeyNames = Object.keys(routeKeys || {});\n const filterLocaleItem = (val)=>{\n if (i18n) {\n // locale items can be included in route-matches\n // for fallback SSG pages so ensure they are\n // filtered\n const isCatchAll = Array.isArray(val);\n const _val = isCatchAll ? val[0] : val;\n if (typeof _val === \"string\" && i18n.locales.some((item)=>{\n if (item.toLowerCase() === _val.toLowerCase()) {\n detectedLocale = item;\n renderOpts.locale = detectedLocale;\n return true;\n }\n return false;\n })) {\n // remove the locale item from the match\n if (isCatchAll) {\n val.splice(0, 1);\n }\n // the value is only a locale item and\n // shouldn't be added\n return isCatchAll ? val.length === 0 : true;\n }\n }\n return false;\n };\n if (routeKeyNames.every((name)=>obj[name])) {\n return routeKeyNames.reduce((prev, keyName)=>{\n const paramName = routeKeys == null ? void 0 : routeKeys[keyName];\n if (paramName && !filterLocaleItem(obj[keyName])) {\n prev[groups[paramName].pos] = obj[keyName];\n }\n return prev;\n }, {});\n }\n return Object.keys(obj).reduce((prev, key)=>{\n if (!filterLocaleItem(obj[key])) {\n let normalizedKey = key;\n if (matchesHasLocale) {\n normalizedKey = parseInt(key, 10) - 1 + \"\";\n }\n return Object.assign(prev, {\n [normalizedKey]: obj[key]\n });\n }\n return prev;\n }, {});\n }\n },\n groups\n };\n }())(req.headers[\"x-now-route-matches\"]);\n }\n return {\n handleRewrites,\n defaultRouteRegex,\n dynamicRouteMatcher,\n defaultRouteMatches,\n getParamsFromRouteMatches,\n normalizeDynamicRouteParams: (params, ignoreOptional)=>normalizeDynamicRouteParams(params, ignoreOptional, defaultRouteRegex, defaultRouteMatches),\n normalizeVercelUrl: (req, trustQuery, paramKeys)=>normalizeVercelUrl(req, trustQuery, paramKeys, pageIsDynamic, defaultRouteRegex),\n interpolateDynamicPath: (pathname, params)=>interpolateDynamicPath(pathname, params, defaultRouteRegex)\n };\n} //# sourceMappingURL=server-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3NlcnZlci11dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUE2RDtBQUNrQjtBQUNWO0FBQ087QUFDRDtBQUNtQjtBQUNQO0FBQ2hCO0FBQ1o7QUFDcEQsU0FBU2EsbUJBQW1CQyxHQUFHLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxhQUFhLEVBQUVDLGlCQUFpQjtJQUMzRixtRUFBbUU7SUFDbkUsZ0RBQWdEO0lBQ2hELElBQUlELGlCQUFpQkYsY0FBY0csbUJBQW1CO1FBQ2xELE1BQU1DLGFBQWFoQiwwQ0FBUUEsQ0FBQ1csSUFBSU0sR0FBRyxFQUFFO1FBQ3JDLE9BQU9ELFdBQVdFLE1BQU07UUFDeEIsS0FBSyxNQUFNQyxPQUFPQyxPQUFPQyxJQUFJLENBQUNMLFdBQVdNLEtBQUssRUFBRTtZQUM1QyxJQUFJSCxRQUFRVixtRUFBdUJBLElBQUlVLElBQUlJLFVBQVUsQ0FBQ2QsbUVBQXVCQSxLQUFLLENBQUNJLGFBQWFPLE9BQU9DLElBQUksQ0FBQ04sa0JBQWtCUyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ04sTUFBTTtnQkFDbEosT0FBT0gsV0FBV00sS0FBSyxDQUFDSCxJQUFJO1lBQ2hDO1FBQ0o7UUFDQVIsSUFBSU0sR0FBRyxHQUFHbkIsMkNBQVNBLENBQUNrQjtJQUN4QjtBQUNKO0FBQ08sU0FBU1UsdUJBQXVCQyxRQUFRLEVBQUVDLE1BQU0sRUFBRWIsaUJBQWlCO0lBQ3RFLElBQUksQ0FBQ0EsbUJBQW1CLE9BQU9ZO0lBQy9CLEtBQUssTUFBTUUsU0FBU1QsT0FBT0MsSUFBSSxDQUFDTixrQkFBa0JTLE1BQU0sRUFBRTtRQUN0RCxNQUFNLEVBQUVNLFFBQVEsRUFBRUMsTUFBTSxFQUFFLEdBQUdoQixrQkFBa0JTLE1BQU0sQ0FBQ0ssTUFBTTtRQUM1RCxJQUFJRyxhQUFhLENBQUMsQ0FBQyxFQUFFRCxTQUFTLFFBQVEsR0FBRyxFQUFFRixN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ZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3NlcnZlci11dGlscy5qcz84YmI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCBhcyBmb3JtYXRVcmwsIHBhcnNlIGFzIHBhcnNlVXJsIH0gZnJvbSBcInVybFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCI7XG5pbXBvcnQgeyBnZXRQYXRoTWF0Y2ggfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1tYXRjaFwiO1xuaW1wb3J0IHsgZ2V0TmFtZWRSb3V0ZVJlZ2V4IH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4XCI7XG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlclwiO1xuaW1wb3J0IHsgbWF0Y2hIYXMsIHByZXBhcmVEZXN0aW5hdGlvbiB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wcmVwYXJlLWRlc3RpbmF0aW9uXCI7XG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplUnNjVVJMIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiO1xuaW1wb3J0IHsgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggfSBmcm9tIFwiLi4vbGliL2NvbnN0YW50c1wiO1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVZlcmNlbFVybChyZXEsIHRydXN0UXVlcnksIHBhcmFtS2V5cywgcGFnZUlzRHluYW1pYywgZGVmYXVsdFJvdXRlUmVnZXgpIHtcbiAgICAvLyBtYWtlIHN1cmUgdG8gbm9ybWFsaXplIHJlcS51cmwgb24gVmVyY2VsIHRvIHN0cmlwIGR5bmFtaWMgcGFyYW1zXG4gICAgLy8gZnJvbSB0aGUgcXVlcnkgd2hpY2ggYXJlIGFkZGVkIGR1cmluZyByb3V0aW5nXG4gICAgaWYgKHBhZ2VJc0R5bmFtaWMgJiYgdHJ1c3RRdWVyeSAmJiBkZWZhdWx0Um91dGVSZWdleCkge1xuICAgICAgICBjb25zdCBfcGFyc2VkVXJsID0gcGFyc2VVcmwocmVxLnVybCwgdHJ1ZSk7XG4gICAgICAgIGRlbGV0ZSBfcGFyc2VkVXJsLnNlYXJjaDtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoX3BhcnNlZFVybC5xdWVyeSkpe1xuICAgICAgICAgICAgaWYgKGtleSAhPT0gTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggJiYga2V5LnN0YXJ0c1dpdGgoTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgpIHx8IChwYXJhbUtleXMgfHwgT2JqZWN0LmtleXMoZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzKSkuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBfcGFyc2VkVXJsLnF1ZXJ5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVxLnVybCA9IGZvcm1hdFVybChfcGFyc2VkVXJsKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaW50ZXJwb2xhdGVEeW5hbWljUGF0aChwYXRobmFtZSwgcGFyYW1zLCBkZWZhdWx0Um91dGVSZWdleCkge1xuICAgIGlmICghZGVmYXVsdFJvdXRlUmVnZXgpIHJldHVybiBwYXRobmFtZTtcbiAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIE9iamVjdC5rZXlzKGRlZmF1bHRSb3V0ZVJlZ2V4Lmdyb3Vwcykpe1xuICAgICAgICBjb25zdCB7IG9wdGlvbmFsLCByZXBlYXQgfSA9IGRlZmF1bHRSb3V0ZVJlZ2V4Lmdyb3Vwc1twYXJhbV07XG4gICAgICAgIGxldCBidWlsdFBhcmFtID0gYFske3JlcGVhdCA/IFwiLi4uXCIgOiBcIlwifSR7cGFyYW19XWA7XG4gICAgICAgIGlmIChvcHRpb25hbCkge1xuICAgICAgICAgICAgYnVpbHRQYXJhbSA9IGBbJHtidWlsdFBhcmFtfV1gO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtSWR4ID0gcGF0aG5hbWUuaW5kZXhPZihidWlsdFBhcmFtKTtcbiAgICAgICAgaWYgKHBhcmFtSWR4ID4gLTEpIHtcbiAgICAgICAgICAgIGxldCBwYXJhbVZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNbcGFyYW1dO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1WYWx1ZSA9IHZhbHVlLm1hcCgodik9PnYgJiYgZW5jb2RlVVJJQ29tcG9uZW50KHYpKS5qb2luKFwiL1wiKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBwYXJhbVZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyYW1WYWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnNsaWNlKDAsIHBhcmFtSWR4KSArIHBhcmFtVmFsdWUgKyBwYXRobmFtZS5zbGljZShwYXJhbUlkeCArIGJ1aWx0UGFyYW0ubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGF0aG5hbWU7XG59XG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKHBhcmFtcywgaWdub3JlT3B0aW9uYWwsIGRlZmF1bHRSb3V0ZVJlZ2V4LCBkZWZhdWx0Um91dGVNYXRjaGVzKSB7XG4gICAgbGV0IGhhc1ZhbGlkUGFyYW1zID0gdHJ1ZTtcbiAgICBpZiAoIWRlZmF1bHRSb3V0ZVJlZ2V4KSByZXR1cm4ge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhhc1ZhbGlkUGFyYW1zOiBmYWxzZVxuICAgIH07XG4gICAgcGFyYW1zID0gT2JqZWN0LmtleXMoZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzKS5yZWR1Y2UoKHByZXYsIGtleSk9PntcbiAgICAgICAgbGV0IHZhbHVlID0gcGFyYW1zW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbm9ybWFsaXplUnNjVVJMKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUubWFwKCh2YWwpPT57XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplUnNjVVJMKHZhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGUgdmFsdWUgbWF0Y2hlcyB0aGUgZGVmYXVsdCB2YWx1ZSB3ZSBjYW4ndCByZWx5XG4gICAgICAgIC8vIG9uIHRoZSBwYXJzZWQgcGFyYW1zLCB0aGlzIGlzIHVzZWQgdG8gc2lnbmFsIGlmIHdlIG5lZWRcbiAgICAgICAgLy8gdG8gcGFyc2UgeC1ub3ctcm91dGUtbWF0Y2hlcyBvciBub3RcbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFJvdXRlTWF0Y2hlc1trZXldO1xuICAgICAgICBjb25zdCBpc09wdGlvbmFsID0gZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzW2tleV0ub3B0aW9uYWw7XG4gICAgICAgIGNvbnN0IGlzRGVmYXVsdFZhbHVlID0gQXJyYXkuaXNBcnJheShkZWZhdWx0VmFsdWUpID8gZGVmYXVsdFZhbHVlLnNvbWUoKGRlZmF1bHRWYWwpPT57XG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5zb21lKCh2YWwpPT52YWwuaW5jbHVkZXMoZGVmYXVsdFZhbCkpIDogdmFsdWUgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbHVlLmluY2x1ZGVzKGRlZmF1bHRWYWwpO1xuICAgICAgICB9KSA6IHZhbHVlID09IG51bGwgPyB2b2lkIDAgOiB2YWx1ZS5pbmNsdWRlcyhkZWZhdWx0VmFsdWUpO1xuICAgICAgICBpZiAoaXNEZWZhdWx0VmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmICEoaXNPcHRpb25hbCAmJiBpZ25vcmVPcHRpb25hbCkpIHtcbiAgICAgICAgICAgIGhhc1ZhbGlkUGFyYW1zID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbm9uLXByb3ZpZGVkIG9wdGlvbmFsIHZhbHVlcyBzaG91bGQgYmUgdW5kZWZpbmVkIHNvIG5vcm1hbGl6ZVxuICAgICAgICAvLyB0aGVtIHRvIHVuZGVmaW5lZFxuICAgICAgICBpZiAoaXNPcHRpb25hbCAmJiAoIXZhbHVlIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMSAmJiAvLyBmYWxsYmFjayBvcHRpb25hbCBjYXRjaC1hbGwgU1NHIHBhZ2VzIGhhdmVcbiAgICAgICAgLy8gW1suLi5wYXJhbU5hbWVdXSBmb3IgdGhlIHJvb3QgcGF0aCBvbiBWZXJjZWxcbiAgICAgICAgKHZhbHVlWzBdID09PSBcImluZGV4XCIgfHwgdmFsdWVbMF0gPT09IGBbWy4uLiR7a2V5fV1dYCkpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGRlbGV0ZSBwYXJhbXNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICAvLyBxdWVyeSB2YWx1ZXMgZnJvbSB0aGUgcHJveHkgYXJlbid0IGFscmVhZHkgc3BsaXQgaW50byBhcnJheXNcbiAgICAgICAgLy8gc28gbWFrZSBzdXJlIHRvIG5vcm1hbGl6ZSBjYXRjaC1hbGwgdmFsdWVzXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzW2tleV0ucmVwZWF0KSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHByZXZba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhhc1ZhbGlkUGFyYW1zXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRVdGlscyh7IHBhZ2UsIGkxOG4sIGJhc2VQYXRoLCByZXdyaXRlcywgcGFnZUlzRHluYW1pYywgdHJhaWxpbmdTbGFzaCwgY2FzZVNlbnNpdGl2ZSB9KSB7XG4gICAgbGV0IGRlZmF1bHRSb3V0ZVJlZ2V4O1xuICAgIGxldCBkeW5hbWljUm91dGVNYXRjaGVyO1xuICAgIGxldCBkZWZhdWx0Um91dGVNYXRjaGVzO1xuICAgIGlmIChwYWdlSXNEeW5hbWljKSB7XG4gICAgICAgIGRlZmF1bHRSb3V0ZVJlZ2V4ID0gZ2V0TmFtZWRSb3V0ZVJlZ2V4KHBhZ2UsIGZhbHNlKTtcbiAgICAgICAgZHluYW1pY1JvdXRlTWF0Y2hlciA9IGdldFJvdXRlTWF0Y2hlcihkZWZhdWx0Um91dGVSZWdleCk7XG4gICAgICAgIGRlZmF1bHRSb3V0ZU1hdGNoZXMgPSBkeW5hbWljUm91dGVNYXRjaGVyKHBhZ2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVSZXdyaXRlcyhyZXEsIHBhcnNlZFVybCkge1xuICAgICAgICBjb25zdCByZXdyaXRlUGFyYW1zID0ge307XG4gICAgICAgIGxldCBmc1BhdGhuYW1lID0gcGFyc2VkVXJsLnBhdGhuYW1lO1xuICAgICAgICBjb25zdCBtYXRjaGVzUGFnZSA9ICgpPT57XG4gICAgICAgICAgICBjb25zdCBmc1BhdGhuYW1lTm9TbGFzaCA9IHJlbW92ZVRyYWlsaW5nU2xhc2goZnNQYXRobmFtZSB8fCBcIlwiKTtcbiAgICAgICAgICAgIHJldHVybiBmc1BhdGhuYW1lTm9TbGFzaCA9PT0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYWdlKSB8fCAoZHluYW1pY1JvdXRlTWF0Y2hlciA9PSBudWxsID8gdm9pZCAwIDogZHluYW1pY1JvdXRlTWF0Y2hlcihmc1BhdGhuYW1lTm9TbGFzaCkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjaGVja1Jld3JpdGUgPSAocmV3cml0ZSk9PntcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXIgPSBnZXRQYXRoTWF0Y2gocmV3cml0ZS5zb3VyY2UgKyAodHJhaWxpbmdTbGFzaCA/IFwiKC8pP1wiIDogXCJcIiksIHtcbiAgICAgICAgICAgICAgICByZW1vdmVVbm5hbWVkUGFyYW1zOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzZW5zaXRpdmU6ICEhY2FzZVNlbnNpdGl2ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgcGFyYW1zID0gbWF0Y2hlcihwYXJzZWRVcmwucGF0aG5hbWUpO1xuICAgICAgICAgICAgaWYgKChyZXdyaXRlLmhhcyB8fCByZXdyaXRlLm1pc3NpbmcpICYmIHBhcmFtcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhhc1BhcmFtcyA9IG1hdGNoSGFzKHJlcSwgcGFyc2VkVXJsLnF1ZXJ5LCByZXdyaXRlLmhhcywgcmV3cml0ZS5taXNzaW5nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBoYXNQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBhcnNlZERlc3RpbmF0aW9uLCBkZXN0UXVlcnkgfSA9IHByZXBhcmVEZXN0aW5hdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFBhcmFtc1RvUXVlcnk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uOiByZXdyaXRlLmRlc3RpbmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHBhcnNlZFVybC5xdWVyeVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSByZXdyaXRlIGRlc3RpbmF0aW9uIGlzIGV4dGVybmFsIGJyZWFrIHJld3JpdGUgY2hhaW5cbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkRGVzdGluYXRpb24ucHJvdG9jb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmV3cml0ZVBhcmFtcywgZGVzdFF1ZXJ5LCBwYXJhbXMpO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyc2VkVXJsLnF1ZXJ5LCBwYXJzZWREZXN0aW5hdGlvbi5xdWVyeSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5O1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyc2VkVXJsLCBwYXJzZWREZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgZnNQYXRobmFtZSA9IHBhcnNlZFVybC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBpZiAoYmFzZVBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgZnNQYXRobmFtZSA9IGZzUGF0aG5hbWUucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtiYXNlUGF0aH1gKSwgXCJcIikgfHwgXCIvXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpMThuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc3RMb2NhbGVQYXRoUmVzdWx0ID0gbm9ybWFsaXplTG9jYWxlUGF0aChmc1BhdGhuYW1lLCBpMThuLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgICAgICBmc1BhdGhuYW1lID0gZGVzdExvY2FsZVBhdGhSZXN1bHQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeS5uZXh0SW50ZXJuYWxMb2NhbGUgPSBkZXN0TG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZSB8fCBwYXJhbXMubmV4dEludGVybmFsTG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZnNQYXRobmFtZSA9PT0gcGFnZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VJc0R5bmFtaWMgJiYgZHluYW1pY1JvdXRlTWF0Y2hlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkeW5hbWljUGFyYW1zID0gZHluYW1pY1JvdXRlTWF0Y2hlcihmc1BhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGR5bmFtaWNQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wYXJzZWRVcmwucXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZHluYW1pY1BhcmFtc1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJld3JpdGUgb2YgcmV3cml0ZXMuYmVmb3JlRmlsZXMgfHwgW10pe1xuICAgICAgICAgICAgY2hlY2tSZXdyaXRlKHJld3JpdGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmc1BhdGhuYW1lICE9PSBwYWdlKSB7XG4gICAgICAgICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmV3cml0ZSBvZiByZXdyaXRlcy5hZnRlckZpbGVzIHx8IFtdKXtcbiAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IGNoZWNrUmV3cml0ZShyZXdyaXRlKTtcbiAgICAgICAgICAgICAgICBpZiAoZmluaXNoZWQpIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFmaW5pc2hlZCAmJiAhbWF0Y2hlc1BhZ2UoKSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmV3cml0ZSBvZiByZXdyaXRlcy5mYWxsYmFjayB8fCBbXSl7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gY2hlY2tSZXdyaXRlKHJld3JpdGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmluaXNoZWQpIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV3cml0ZVBhcmFtcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UGFyYW1zRnJvbVJvdXRlTWF0Y2hlcyhyZXEsIHJlbmRlck9wdHMsIGRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBnZXRSb3V0ZU1hdGNoZXIoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCB7IGdyb3Vwcywgcm91dGVLZXlzIH0gPSBkZWZhdWx0Um91dGVSZWdleDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmU6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUgYSBSZWdFeHAgbWF0Y2ggZnJvbSB0aGUgXFxgcmVxLnVybFxcYCBpbnB1dFxuICAgICAgICAgICAgICAgICAgICBleGVjOiAoc3RyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKG5ldyBVUkxTZWFyY2hQYXJhbXMoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzSGFzTG9jYWxlID0gaTE4biAmJiBkZXRlY3RlZExvY2FsZSAmJiBvYmpbXCIxXCJdID09PSBkZXRlY3RlZExvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSAhPT0gTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggJiYga2V5LnN0YXJ0c1dpdGgoTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSBrZXkuc3Vic3RyaW5nKE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialtub3JtYWxpemVkS2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmF2b3IgbmFtZWQgbWF0Y2hlcyBpZiBhdmFpbGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlS2V5TmFtZXMgPSBPYmplY3Qua2V5cyhyb3V0ZUtleXMgfHwge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyTG9jYWxlSXRlbSA9ICh2YWwpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkxOG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9jYWxlIGl0ZW1zIGNhbiBiZSBpbmNsdWRlZCBpbiByb3V0ZS1tYXRjaGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBmYWxsYmFjayBTU0cgcGFnZXMgc28gZW5zdXJlIHRoZXkgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbHRlcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQ2F0Y2hBbGwgPSBBcnJheS5pc0FycmF5KHZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF92YWwgPSBpc0NhdGNoQWxsID8gdmFsWzBdIDogdmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIF92YWwgPT09IFwic3RyaW5nXCIgJiYgaTE4bi5sb2NhbGVzLnNvbWUoKGl0ZW0pPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS50b0xvd2VyQ2FzZSgpID09PSBfdmFsLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyT3B0cy5sb2NhbGUgPSBkZXRlY3RlZExvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgbG9jYWxlIGl0ZW0gZnJvbSB0aGUgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsLnNwbGljZSgwLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBpcyBvbmx5IGEgbG9jYWxlIGl0ZW0gYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGRuJ3QgYmUgYWRkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0NhdGNoQWxsID8gdmFsLmxlbmd0aCA9PT0gMCA6IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3V0ZUtleU5hbWVzLmV2ZXJ5KChuYW1lKT0+b2JqW25hbWVdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZUtleU5hbWVzLnJlZHVjZSgocHJldiwga2V5TmFtZSk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gcm91dGVLZXlzID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZUtleXNba2V5TmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbU5hbWUgJiYgIWZpbHRlckxvY2FsZUl0ZW0ob2JqW2tleU5hbWVdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldltncm91cHNbcGFyYW1OYW1lXS5wb3NdID0gb2JqW2tleU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgocHJldiwga2V5KT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlsdGVyTG9jYWxlSXRlbShvYmpba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWRLZXkgPSBrZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzSGFzTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkS2V5ID0gcGFyc2VJbnQoa2V5LCAxMCkgLSAxICsgXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcmV2LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9ybWFsaXplZEtleV06IG9ialtrZXldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZ3JvdXBzXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KCkpKHJlcS5oZWFkZXJzW1wieC1ub3ctcm91dGUtbWF0Y2hlc1wiXSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGhhbmRsZVJld3JpdGVzLFxuICAgICAgICBkZWZhdWx0Um91dGVSZWdleCxcbiAgICAgICAgZHluYW1pY1JvdXRlTWF0Y2hlcixcbiAgICAgICAgZGVmYXVsdFJvdXRlTWF0Y2hlcyxcbiAgICAgICAgZ2V0UGFyYW1zRnJvbVJvdXRlTWF0Y2hlcyxcbiAgICAgICAgbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zOiAocGFyYW1zLCBpZ25vcmVPcHRpb25hbCk9Pm5vcm1hbGl6ZUR5bmFtaWNSb3V0ZVBhcmFtcyhwYXJhbXMsIGlnbm9yZU9wdGlvbmFsLCBkZWZhdWx0Um91dGVSZWdleCwgZGVmYXVsdFJvdXRlTWF0Y2hlcyksXG4gICAgICAgIG5vcm1hbGl6ZVZlcmNlbFVybDogKHJlcSwgdHJ1c3RRdWVyeSwgcGFyYW1LZXlzKT0+bm9ybWFsaXplVmVyY2VsVXJsKHJlcSwgdHJ1c3RRdWVyeSwgcGFyYW1LZXlzLCBwYWdlSXNEeW5hbWljLCBkZWZhdWx0Um91dGVSZWdleCksXG4gICAgICAgIGludGVycG9sYXRlRHluYW1pY1BhdGg6IChwYXRobmFtZSwgcGFyYW1zKT0+aW50ZXJwb2xhdGVEeW5hbWljUGF0aChwYXRobmFtZSwgcGFyYW1zLCBkZWZhdWx0Um91dGVSZWdleClcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbImZvcm1hdCIsImZvcm1hdFVybCIsInBhcnNlIiwicGFyc2VVcmwiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZ2V0UGF0aE1hdGNoIiwiZ2V0TmFtZWRSb3V0ZVJlZ2V4IiwiZ2V0Um91dGVNYXRjaGVyIiwibWF0Y2hIYXMiLCJwcmVwYXJlRGVzdGluYXRpb24iLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwibm9ybWFsaXplUnNjVVJMIiwiTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgiLCJub3JtYWxpemVWZXJjZWxVcmwiLCJyZXEiLCJ0cnVzdFF1ZXJ5IiwicGFyYW1LZXlzIiwicGFnZUlzRHluYW1pYyIsImRlZmF1bHRSb3V0ZVJlZ2V4IiwiX3BhcnNlZFVybCIsInVybCIsInNlYXJjaCIsImtleSIsIk9iamVjdCIsImtleXMiLCJxdWVyeSIsInN0YXJ0c1dpdGgiLCJncm91cHMiLCJpbmNsdWRlcyIsImludGVycG9sYXRlRHluYW1pY1BhdGgiLCJwYXRobmFtZSIsInBhcmFtcyIsInBhcmFtIiwib3B0aW9uYWwiLCJyZXBlYXQiLCJidWlsdFBhcmFtIiwicGFyYW1JZHgiLCJpbmRleE9mIiwicGFyYW1WYWx1ZSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwidiIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJzbGljZSIsImxlbmd0aCIsIm5vcm1hbGl6ZUR5bmFtaWNSb3V0ZVBhcmFtcyIsImlnbm9yZU9wdGlvbmFsIiwiZGVmYXVsdFJvdXRlTWF0Y2hlcyIsImhhc1ZhbGlkUGFyYW1zIiwicmVkdWNlIiwicHJldiIsInZhbCIsImRlZmF1bHRWYWx1ZSIsImlzT3B0aW9uYWwiLCJpc0RlZmF1bHRWYWx1ZSIsInNvbWUiLCJkZWZhdWx0VmFsIiwidW5kZWZpbmVkIiwic3BsaXQiLCJnZXRVdGlscyIsInBhZ2UiLCJpMThuIiwiYmFzZVBhdGgiLCJyZXdyaXRlcyIsInRyYWlsaW5nU2xhc2giLCJjYXNlU2Vuc2l0aXZlIiwiZHluYW1pY1JvdXRlTWF0Y2hlciIsImhhbmRsZVJld3JpdGVzIiwicGFyc2VkVXJsIiwicmV3cml0ZVBhcmFtcyIsImZzUGF0aG5hbWUiLCJtYXRjaGVzUGFnZSIsImZzUGF0aG5hbWVOb1NsYXNoIiwiY2hlY2tSZXdyaXRlIiwicmV3cml0ZSIsIm1hdGNoZXIiLCJzb3VyY2UiLCJyZW1vdmVVbm5hbWVkUGFyYW1zIiwic3RyaWN0Iiwic2Vuc2l0aXZlIiwiaGFzIiwibWlzc2luZyIsImhhc1BhcmFtcyIsImFzc2lnbiIsInBhcnNlZERlc3RpbmF0aW9uIiwiZGVzdFF1ZXJ5IiwiYXBwZW5kUGFyYW1zVG9RdWVyeSIsImRlc3RpbmF0aW9uIiwicHJvdG9jb2wiLCJyZXBsYWNlIiwiUmVnRXhwIiwiZGVzdExvY2FsZVBhdGhSZXN1bHQiLCJsb2NhbGVzIiwibmV4dEludGVybmFsTG9jYWxlIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkeW5hbWljUGFyYW1zIiwiYmVmb3JlRmlsZXMiLCJmaW5pc2hlZCIsImFmdGVyRmlsZXMiLCJmYWxsYmFjayIsImdldFBhcmFtc0Zyb21Sb3V0ZU1hdGNoZXMiLCJyZW5kZXJPcHRzIiwicm91dGVLZXlzIiwicmUiLCJleGVjIiwic3RyIiwib2JqIiwiZnJvbUVudHJpZXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJtYXRjaGVzSGFzTG9jYWxlIiwibm9ybWFsaXplZEtleSIsInN1YnN0cmluZyIsInJvdXRlS2V5TmFtZXMiLCJmaWx0ZXJMb2NhbGVJdGVtIiwiaXNDYXRjaEFsbCIsIl92YWwiLCJpdGVtIiwidG9Mb3dlckNhc2UiLCJsb2NhbGUiLCJzcGxpY2UiLCJldmVyeSIsIm5hbWUiLCJrZXlOYW1lIiwicGFyYW1OYW1lIiwicG9zIiwicGFyc2VJbnQiLCJoZWFkZXJzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/server-utils.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/stream-utils/encode-decode.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/stream-utils/encode-decode.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createDecodeTransformStream: () => (/* binding */ createDecodeTransformStream),\n/* harmony export */ createEncodeTransformStream: () => (/* binding */ createEncodeTransformStream)\n/* harmony export */ });\nfunction createDecodeTransformStream(decoder = new TextDecoder()) {\n return new TransformStream({\n transform (chunk, controller) {\n return controller.enqueue(decoder.decode(chunk, {\n stream: true\n }));\n },\n flush (controller) {\n return controller.enqueue(decoder.decode());\n }\n });\n}\nfunction createEncodeTransformStream(encoder = new TextEncoder()) {\n return new TransformStream({\n transform (chunk, controller) {\n return controller.enqueue(encoder.encode(chunk));\n }\n });\n} //# sourceMappingURL=encode-decode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3N0cmVhbS11dGlscy9lbmNvZGUtZGVjb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sU0FBU0EsNEJBQTRCQyxVQUFVLElBQUlDLGFBQWE7SUFDbkUsT0FBTyxJQUFJQyxnQkFBZ0I7UUFDdkJDLFdBQVdDLEtBQUssRUFBRUMsVUFBVTtZQUN4QixPQUFPQSxXQUFXQyxPQUFPLENBQUNOLFFBQVFPLE1BQU0sQ0FBQ0gsT0FBTztnQkFDNUNJLFFBQVE7WUFDWjtRQUNKO1FBQ0FDLE9BQU9KLFVBQVU7WUFDYixPQUFPQSxXQUFXQyxPQUFPLENBQUNOLFFBQVFPLE1BQU07UUFDNUM7SUFDSjtBQUNKO0FBQ08sU0FBU0csNEJBQTRCQyxVQUFVLElBQUlDLGFBQWE7SUFDbkUsT0FBTyxJQUFJVixnQkFBZ0I7UUFDdkJDLFdBQVdDLEtBQUssRUFBRUMsVUFBVTtZQUN4QixPQUFPQSxXQUFXQyxPQUFPLENBQUNLLFFBQVFFLE1BQU0sQ0FBQ1Q7UUFDN0M7SUFDSjtBQUNKLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvc3RyZWFtLXV0aWxzL2VuY29kZS1kZWNvZGUuanM/MGIzNyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVjb2RlVHJhbnNmb3JtU3RyZWFtKGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKSkge1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZShkZWNvZGVyLmRlY29kZShjaHVuaywge1xuICAgICAgICAgICAgICAgIHN0cmVhbTogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZShkZWNvZGVyLmRlY29kZSgpKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVuY29kZVRyYW5zZm9ybVN0cmVhbShlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCkpIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoY2h1bmspKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lbmNvZGUtZGVjb2RlLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVEZWNvZGVUcmFuc2Zvcm1TdHJlYW0iLCJkZWNvZGVyIiwiVGV4dERlY29kZXIiLCJUcmFuc2Zvcm1TdHJlYW0iLCJ0cmFuc2Zvcm0iLCJjaHVuayIsImNvbnRyb2xsZXIiLCJlbnF1ZXVlIiwiZGVjb2RlIiwic3RyZWFtIiwiZmx1c2giLCJjcmVhdGVFbmNvZGVUcmFuc2Zvcm1TdHJlYW0iLCJlbmNvZGVyIiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/stream-utils/encode-decode.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ chainStreams: () => (/* binding */ chainStreams),\n/* harmony export */ cloneTransformStream: () => (/* binding */ cloneTransformStream),\n/* harmony export */ continueFizzStream: () => (/* binding */ continueFizzStream),\n/* harmony export */ continuePostponedFizzStream: () => (/* binding */ continuePostponedFizzStream),\n/* harmony export */ createBufferedTransformStream: () => (/* binding */ createBufferedTransformStream),\n/* harmony export */ createRootLayoutValidatorStream: () => (/* binding */ createRootLayoutValidatorStream),\n/* harmony export */ renderToInitialFizzStream: () => (/* binding */ renderToInitialFizzStream),\n/* harmony export */ streamFromString: () => (/* binding */ streamFromString),\n/* harmony export */ streamToString: () => (/* binding */ streamToString)\n/* harmony export */ });\n/* harmony import */ var _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/trace/tracer */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n/* harmony import */ var _lib_trace_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/trace/constants */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n/* harmony import */ var _encode_decode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./encode-decode */ \"(ssr)/../../node_modules/next/dist/esm/server/stream-utils/encode-decode.js\");\n/* harmony import */ var _lib_detached_promise__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../lib/detached-promise */ \"(ssr)/../../node_modules/next/dist/esm/lib/detached-promise.js\");\n/* harmony import */ var _lib_scheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../lib/scheduler */ \"(ssr)/../../node_modules/next/dist/esm/lib/scheduler.js\");\n\n\n\n\n\nfunction cloneTransformStream(source) {\n const sourceReader = source.readable.getReader();\n const clone = new TransformStream({\n async start (controller) {\n while(true){\n const { done, value } = await sourceReader.read();\n if (done) {\n break;\n }\n controller.enqueue(value);\n }\n },\n // skip all piped chunks\n transform () {}\n });\n return clone;\n}\nfunction chainStreams(...streams) {\n const { readable, writable } = new TransformStream();\n let promise = Promise.resolve();\n for(let i = 0; i < streams.length; ++i){\n promise = promise.then(()=>streams[i].pipeTo(writable, {\n preventClose: i + 1 < streams.length\n }));\n }\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(()=>{});\n return readable;\n}\nfunction streamFromString(str) {\n const encoder = new TextEncoder();\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nasync function streamToString(stream) {\n let buffer = \"\";\n await stream // Decode the streamed chunks to turn them into strings.\n .pipeThrough((0,_encode_decode__WEBPACK_IMPORTED_MODULE_2__.createDecodeTransformStream)()).pipeTo(new WritableStream({\n write (chunk) {\n buffer += chunk;\n }\n }));\n return buffer;\n}\nfunction createBufferedTransformStream() {\n let buffer = new Uint8Array();\n let pending;\n const flush = (controller)=>{\n // If we already have a pending flush, then return early.\n if (pending) return;\n const detached = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_3__.DetachedPromise();\n pending = detached;\n (0,_lib_scheduler__WEBPACK_IMPORTED_MODULE_4__.scheduleImmediate)(()=>{\n try {\n controller.enqueue(buffer);\n buffer = new Uint8Array();\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n // Combine the previous buffer with the new chunk.\n const combined = new Uint8Array(buffer.length + chunk.byteLength);\n combined.set(buffer);\n combined.set(chunk, buffer.length);\n buffer = combined;\n // Flush the buffer to the controller.\n flush(controller);\n },\n flush () {\n if (!pending) return;\n return pending.promise;\n }\n });\n}\nfunction createInsertedHTMLStream(getServerInsertedHTML) {\n const encoder = new TextEncoder();\n return new TransformStream({\n transform: async (chunk, controller)=>{\n const html = await getServerInsertedHTML();\n if (html) {\n controller.enqueue(encoder.encode(html));\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_0__.getTracer)().trace(_lib_trace_constants__WEBPACK_IMPORTED_MODULE_1__.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n let freezing = false;\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n return new TransformStream({\n async transform (chunk, controller) {\n // While react is flushing chunks, we don't apply insertions\n if (freezing) {\n controller.enqueue(chunk);\n return;\n }\n const insertion = await insert();\n if (inserted) {\n controller.enqueue(encoder.encode(insertion));\n controller.enqueue(chunk);\n freezing = true;\n } else {\n const content = decoder.decode(chunk);\n const index = content.indexOf(\"</head>\");\n if (index !== -1) {\n const insertedHeadContent = content.slice(0, index) + insertion + content.slice(index);\n controller.enqueue(encoder.encode(insertedHeadContent));\n freezing = true;\n inserted = true;\n }\n }\n if (!inserted) {\n controller.enqueue(chunk);\n } else {\n (0,_lib_scheduler__WEBPACK_IMPORTED_MODULE_4__.scheduleImmediate)(()=>{\n freezing = false;\n });\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n }\n });\n}\n// Suffix after main body content - scripts before </body>,\n// but wait for the major chunks to be enqueued.\nfunction createDeferredSuffixStream(suffix) {\n let flushed = false;\n let pending;\n const encoder = new TextEncoder();\n const flush = (controller)=>{\n const detached = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_3__.DetachedPromise();\n pending = detached;\n (0,_lib_scheduler__WEBPACK_IMPORTED_MODULE_4__.scheduleImmediate)(()=>{\n try {\n controller.enqueue(encoder.encode(suffix));\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // If we've already flushed, we're done.\n if (flushed) return;\n // Schedule the flush to happen.\n flushed = true;\n flush(controller);\n },\n flush (controller) {\n if (pending) return pending.promise;\n if (flushed) return;\n // Flush now.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\n// Merge two streams into one. Ensure the final transform stream is closed\n// when both are finished.\nfunction createMergedTransformStream(stream) {\n let started = false;\n let pending = null;\n const start = (controller)=>{\n const reader = stream.getReader();\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n const detached = new _lib_detached_promise__WEBPACK_IMPORTED_MODULE_3__.DetachedPromise();\n pending = detached;\n // We use `setTimeout/setImmediate` here to ensure that it's inserted after\n // flushing the shell. Note that this implementation might get stale if impl\n // details of Fizz change in the future.\n (0,_lib_scheduler__WEBPACK_IMPORTED_MODULE_4__.scheduleImmediate)(async ()=>{\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) return;\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n } finally{\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (started) return;\n started = true;\n start(controller);\n },\n flush () {\n // If the data stream promise is defined, then return it as its completion\n // will be the completion of the stream.\n if (!pending) return;\n if (!started) return;\n return pending.promise;\n }\n });\n}\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `</body></html><script>...</script>` will be transformed to\n * `<script>...</script></body></html>`.\n */ function createMoveSuffixStream(suffix) {\n let foundSuffix = false;\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const buf = decoder.decode(chunk);\n const index = buf.indexOf(suffix);\n if (index > -1) {\n foundSuffix = true;\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (buf.length === suffix.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = buf.slice(0, index);\n chunk = encoder.encode(before);\n controller.enqueue(chunk);\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (buf.length > suffix.length + index) {\n // Write out the part after the suffix.\n const after = buf.slice(index + suffix.length);\n chunk = encoder.encode(after);\n controller.enqueue(chunk);\n }\n } else {\n controller.enqueue(chunk);\n }\n },\n flush (controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\nfunction createRootLayoutValidatorStream(assetPrefix = \"\", getTree) {\n let foundHtml = false;\n let foundBody = false;\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n let content = \"\";\n return new TransformStream({\n async transform (chunk, controller) {\n // Peek into the streamed chunk to see if the tags are present.\n if (!foundHtml || !foundBody) {\n content += decoder.decode(chunk, {\n stream: true\n });\n if (!foundHtml && content.includes(\"<html\")) {\n foundHtml = true;\n }\n if (!foundBody && content.includes(\"<body\")) {\n foundBody = true;\n }\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n // Flush the decoder.\n if (!foundHtml || !foundBody) {\n content += decoder.decode();\n if (!foundHtml && content.includes(\"<html\")) {\n foundHtml = true;\n }\n if (!foundBody && content.includes(\"<body\")) {\n foundBody = true;\n }\n }\n // If html or body tag is missing, we need to inject a script to notify\n // the client.\n const missingTags = [];\n if (!foundHtml) missingTags.push(\"html\");\n if (!foundBody) missingTags.push(\"body\");\n if (missingTags.length > 0) {\n controller.enqueue(encoder.encode(`<script>self.__next_root_layout_missing_tags_error=${JSON.stringify({\n missingTags,\n assetPrefix: assetPrefix ?? \"\",\n tree: getTree()\n })}</script>`));\n }\n }\n });\n}\nfunction chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nasync function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, getServerInsertedHTML, serverInsertedHTMLToHead, validateRootLayout }) {\n const closeTag = \"</body></html>\";\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(closeTag, 1)[0] : null;\n // If we're generating static HTML and there's an `allReady` promise on the\n // stream, we need to wait for it to resolve before continuing.\n if (isStaticGeneration && \"allReady\" in renderStream) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Insert generated tags to head\n getServerInsertedHTML && !serverInsertedHTMLToHead ? createInsertedHTMLStream(getServerInsertedHTML) : null,\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createMergedTransformStream(inlinedDataStream) : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(closeTag),\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n getServerInsertedHTML && serverInsertedHTMLToHead ? createHeadInsertionTransformStream(getServerInsertedHTML) : null,\n validateRootLayout ? createRootLayoutValidatorStream(validateRootLayout.assetPrefix, validateRootLayout.getTree) : null\n ]);\n}\nasync function continuePostponedFizzStream(renderStream, { inlinedDataStream, isStaticGeneration, getServerInsertedHTML, serverInsertedHTMLToHead }) {\n const closeTag = \"</body></html>\";\n // If we're generating static HTML and there's an `allReady` promise on the\n // stream, we need to wait for it to resolve before continuing.\n if (isStaticGeneration && \"allReady\" in renderStream) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Insert generated tags to head\n getServerInsertedHTML && !serverInsertedHTMLToHead ? createInsertedHTMLStream(getServerInsertedHTML) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createMergedTransformStream(inlinedDataStream) : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(closeTag)\n ]);\n} //# sourceMappingURL=node-web-streams-helper.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFnRDtBQUNPO0FBQ087QUFDRDtBQUNMO0FBQ2pELFNBQVNLLHFCQUFxQkMsTUFBTTtJQUN2QyxNQUFNQyxlQUFlRCxPQUFPRSxRQUFRLENBQUNDLFNBQVM7SUFDOUMsTUFBTUMsUUFBUSxJQUFJQyxnQkFBZ0I7UUFDOUIsTUFBTUMsT0FBT0MsVUFBVTtZQUNuQixNQUFNLEtBQUs7Z0JBQ1AsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRSxHQUFHLE1BQU1SLGFBQWFTLElBQUk7Z0JBQy9DLElBQUlGLE1BQU07b0JBQ047Z0JBQ0o7Z0JBQ0FELFdBQVdJLE9BQU8sQ0FBQ0Y7WUFDdkI7UUFDSjtRQUNBLHdCQUF3QjtRQUN4QkcsY0FBYztJQUNsQjtJQUNBLE9BQU9SO0FBQ1g7QUFDTyxTQUFTUyxhQUFhLEdBQUdDLE9BQU87SUFDbkMsTUFBTSxFQUFFWixRQUFRLEVBQUVhLFFBQVEsRUFBRSxHQUFHLElBQUlWO0lBQ25DLElBQUlXLFVBQVVDLFFBQVFDLE9BQU87SUFDN0IsSUFBSSxJQUFJQyxJQUFJLEdBQUdBLElBQUlMLFFBQVFNLE1BQU0sRUFBRSxFQUFFRCxFQUFFO1FBQ25DSCxVQUFVQSxRQUFRSyxJQUFJLENBQUMsSUFBSVAsT0FBTyxDQUFDSyxFQUFFLENBQUNHLE1BQU0sQ0FBQ1AsVUFBVTtnQkFDL0NRLGNBQWNKLElBQUksSUFBSUwsUUFBUU0sTUFBTTtZQUN4QztJQUNSO0lBQ0EsMEVBQTBFO0lBQzFFLGdEQUFnRDtJQUNoREosUUFBUVEsS0FBSyxDQUFDLEtBQUs7SUFDbkIsT0FBT3RCO0FBQ1g7QUFDTyxTQUFTdUIsaUJBQWlCQyxHQUFHO0lBQ2hDLE1BQU1DLFVBQVUsSUFBSUM7SUFDcEIsT0FBTyxJQUFJQyxlQUFlO1FBQ3RCdkIsT0FBT0MsVUFBVTtZQUNiQSxXQUFXSSxPQUFPLENBQUNnQixRQUFRRyxNQUFNLENBQUNKO1lBQ2xDbkIsV0FBV3dCLEtBQUs7UUFDcEI7SUFDSjtBQUNKO0FBQ08sZUFBZUMsZUFBZUMsTUFBTTtJQUN2QyxJQUFJQyxTQUFTO0lBQ2IsTUFBTUQsT0FBTSx3REFBd0Q7S0FDbkVFLFdBQVcsQ0FBQ3ZDLDJFQUEyQkEsSUFBSTBCLE1BQU0sQ0FBQyxJQUFJYyxlQUFlO1FBQ2xFQyxPQUFPQyxLQUFLO1lBQ1JKLFVBQVVJO1FBQ2Q7SUFDSjtJQUNBLE9BQU9KO0FBQ1g7QUFDTyxTQUFTSztJQUNaLElBQUlMLFNBQVMsSUFBSU07SUFDakIsSUFBSUM7SUFDSixNQUFNQyxRQUFRLENBQUNuQztRQUNYLHlEQUF5RDtRQUN6RCxJQUFJa0MsU0FBUztRQUNiLE1BQU1FLFdBQVcsSUFBSTlDLGtFQUFlQTtRQUNwQzRDLFVBQVVFO1FBQ1Y3QyxpRUFBaUJBLENBQUM7WUFDZCxJQUFJO2dCQUNBUyxXQUFXSSxPQUFPLENBQUN1QjtnQkFDbkJBLFNBQVMsSUFBSU07WUFDakIsRUFBRSxPQUFPO1lBQ1QsNkRBQTZEO1lBQzdELDhEQUE4RDtZQUM5RCw2Q0FBNkM7WUFDN0MsU0FBUztnQkFDTEMsVUFBVUc7Z0JBQ1ZELFNBQVN6QixPQUFPO1lBQ3BCO1FBQ0o7SUFDSjtJQUNBLE9BQU8sSUFBSWIsZ0JBQWdCO1FBQ3ZCTyxXQUFXMEIsS0FBSyxFQUFFL0IsVUFBVTtZQUN4QixrREFBa0Q7WUFDbEQsTUFBTXNDLFdBQVcsSUFBSUwsV0FBV04sT0FBT2QsTUFBTSxHQUFHa0IsTUFBTVEsVUFBVTtZQUNoRUQsU0FBU0UsR0FBRyxDQUFDYjtZQUNiVyxTQUFTRSxHQUFHLENBQUNULE9BQU9KLE9BQU9kLE1BQU07WUFDakNjLFNBQVNXO1lBQ1Qsc0NBQXNDO1lBQ3RDSCxNQUFNbkM7UUFDVjtRQUNBbUM7WUFDSSxJQUFJLENBQUNELFNBQVM7WUFDZCxPQUFPQSxRQUFRekIsT0FBTztRQUMxQjtJQUNKO0FBQ0o7QUFDQSxTQUFTZ0MseUJBQXlCQyxxQkFBcUI7SUFDbkQsTUFBTXRCLFVBQVUsSUFBSUM7SUFDcEIsT0FBTyxJQUFJdkIsZ0JBQWdCO1FBQ3ZCTyxXQUFXLE9BQU8wQixPQUFPL0I7WUFDckIsTUFBTTJDLE9BQU8sTUFBTUQ7WUFDbkIsSUFBSUMsTUFBTTtnQkFDTjNDLFdBQVdJLE9BQU8sQ0FBQ2dCLFFBQVFHLE1BQU0sQ0FBQ29CO1lBQ3RDO1lBQ0EzQyxXQUFXSSxPQUFPLENBQUMyQjtRQUN2QjtJQUNKO0FBQ0o7QUFDTyxTQUFTYSwwQkFBMEIsRUFBRUMsY0FBYyxFQUFFQyxPQUFPLEVBQUVDLGFBQWEsRUFBRTtJQUNoRixPQUFPNUQsNERBQVNBLEdBQUc2RCxLQUFLLENBQUM1RCwrREFBYUEsQ0FBQzZELHNCQUFzQixFQUFFLFVBQVVKLGVBQWVJLHNCQUFzQixDQUFDSCxTQUFTQztBQUM1SDtBQUNBLFNBQVNHLG1DQUFtQ0MsTUFBTTtJQUM5QyxJQUFJQyxXQUFXO0lBQ2YsSUFBSUMsV0FBVztJQUNmLE1BQU1qQyxVQUFVLElBQUlDO0lBQ3BCLE1BQU1pQyxVQUFVLElBQUlDO0lBQ3BCLE9BQU8sSUFBSXpELGdCQUFnQjtRQUN2QixNQUFNTyxXQUFXMEIsS0FBSyxFQUFFL0IsVUFBVTtZQUM5Qiw0REFBNEQ7WUFDNUQsSUFBSXFELFVBQVU7Z0JBQ1ZyRCxXQUFXSSxPQUFPLENBQUMyQjtnQkFDbkI7WUFDSjtZQUNBLE1BQU15QixZQUFZLE1BQU1MO1lBQ3hCLElBQUlDLFVBQVU7Z0JBQ1ZwRCxXQUFXSSxPQUFPLENBQUNnQixRQUFRRyxNQUFNLENBQUNpQztnQkFDbEN4RCxXQUFXSSxPQUFPLENBQUMyQjtnQkFDbkJzQixXQUFXO1lBQ2YsT0FBTztnQkFDSCxNQUFNSSxVQUFVSCxRQUFRSSxNQUFNLENBQUMzQjtnQkFDL0IsTUFBTTRCLFFBQVFGLFFBQVFHLE9BQU8sQ0FBQztnQkFDOUIsSUFBSUQsVUFBVSxDQUFDLEdBQUc7b0JBQ2QsTUFBTUUsc0JBQXNCSixRQUFRSyxLQUFLLENBQUMsR0FBR0gsU0FBU0gsWUFBWUMsUUFBUUssS0FBSyxDQUFDSDtvQkFDaEYzRCxXQUFXSSxPQUFPLENBQUNnQixRQUFRRyxNQUFNLENBQUNzQztvQkFDbENSLFdBQVc7b0JBQ1hELFdBQVc7Z0JBQ2Y7WUFDSjtZQUNBLElBQUksQ0FBQ0EsVUFBVTtnQkFDWHBELFdBQVdJLE9BQU8sQ0FBQzJCO1lBQ3ZCLE9BQU87Z0JBQ0h4QyxpRUFBaUJBLENBQUM7b0JBQ2Q4RCxXQUFXO2dCQUNmO1lBQ0o7UUFDSjtRQUNBLE1BQU1sQixPQUFPbkMsVUFBVTtZQUNuQixnRUFBZ0U7WUFDaEUsTUFBTXdELFlBQVksTUFBTUw7WUFDeEIsSUFBSUssV0FBVztnQkFDWHhELFdBQVdJLE9BQU8sQ0FBQ2dCLFFBQVFHLE1BQU0sQ0FBQ2lDO1lBQ3RDO1FBQ0o7SUFDSjtBQUNKO0FBQ0EsMkRBQTJEO0FBQzNELGdEQUFnRDtBQUNoRCxTQUFTTywyQkFBMkJDLE1BQU07SUFDdEMsSUFBSUMsVUFBVTtJQUNkLElBQUkvQjtJQUNKLE1BQU1kLFVBQVUsSUFBSUM7SUFDcEIsTUFBTWMsUUFBUSxDQUFDbkM7UUFDWCxNQUFNb0MsV0FBVyxJQUFJOUMsa0VBQWVBO1FBQ3BDNEMsVUFBVUU7UUFDVjdDLGlFQUFpQkEsQ0FBQztZQUNkLElBQUk7Z0JBQ0FTLFdBQVdJLE9BQU8sQ0FBQ2dCLFFBQVFHLE1BQU0sQ0FBQ3lDO1lBQ3RDLEVBQUUsT0FBTztZQUNULDZEQUE2RDtZQUM3RCw4REFBOEQ7WUFDOUQsNkNBQTZDO1lBQzdDLFNBQVM7Z0JBQ0w5QixVQUFVRztnQkFDVkQsU0FBU3pCLE9BQU87WUFDcEI7UUFDSjtJQUNKO0lBQ0EsT0FBTyxJQUFJYixnQkFBZ0I7UUFDdkJPLFdBQVcwQixLQUFLLEVBQUUvQixVQUFVO1lBQ3hCQSxXQUFXSSxPQUFPLENBQUMyQjtZQUNuQix3Q0FBd0M7WUFDeEMsSUFBSWtDLFNBQVM7WUFDYixnQ0FBZ0M7WUFDaENBLFVBQVU7WUFDVjlCLE1BQU1uQztRQUNWO1FBQ0FtQyxPQUFPbkMsVUFBVTtZQUNiLElBQUlrQyxTQUFTLE9BQU9BLFFBQVF6QixPQUFPO1lBQ25DLElBQUl3RCxTQUFTO1lBQ2IsYUFBYTtZQUNiakUsV0FBV0ksT0FBTyxDQUFDZ0IsUUFBUUcsTUFBTSxDQUFDeUM7UUFDdEM7SUFDSjtBQUNKO0FBQ0EsMEVBQTBFO0FBQzFFLDBCQUEwQjtBQUMxQixTQUFTRSw0QkFBNEJ4QyxNQUFNO0lBQ3ZDLElBQUl5QyxVQUFVO0lBQ2QsSUFBSWpDLFVBQVU7SUFDZCxNQUFNbkMsUUFBUSxDQUFDQztRQUNYLE1BQU1vRSxTQUFTMUMsT0FBTzlCLFNBQVM7UUFDL0Isd0JBQXdCO1FBQ3hCLGdFQUFnRTtRQUNoRSxxRUFBcUU7UUFDckUsdUVBQXVFO1FBQ3ZFLDhEQUE4RDtRQUM5RCxhQUFhO1FBQ2IsTUFBTXdDLFdBQVcsSUFBSTlDLGtFQUFlQTtRQUNwQzRDLFVBQVVFO1FBQ1YsMkVBQTJFO1FBQzNFLDRFQUE0RTtRQUM1RSx3Q0FBd0M7UUFDeEM3QyxpRUFBaUJBLENBQUM7WUFDZCxJQUFJO2dCQUNBLE1BQU0sS0FBSztvQkFDUCxNQUFNLEVBQUVVLElBQUksRUFBRUMsS0FBSyxFQUFFLEdBQUcsTUFBTWtFLE9BQU9qRSxJQUFJO29CQUN6QyxJQUFJRixNQUFNO29CQUNWRCxXQUFXSSxPQUFPLENBQUNGO2dCQUN2QjtZQUNKLEVBQUUsT0FBT21FLEtBQUs7Z0JBQ1ZyRSxXQUFXc0UsS0FBSyxDQUFDRDtZQUNyQixTQUFTO2dCQUNMakMsU0FBU3pCLE9BQU87WUFDcEI7UUFDSjtJQUNKO0lBQ0EsT0FBTyxJQUFJYixnQkFBZ0I7UUFDdkJPLFdBQVcwQixLQUFLLEVBQUUvQixVQUFVO1lBQ3hCQSxXQUFXSSxPQUFPLENBQUMyQjtZQUNuQiw2REFBNkQ7WUFDN0QsSUFBSW9DLFNBQVM7WUFDYkEsVUFBVTtZQUNWcEUsTUFBTUM7UUFDVjtRQUNBbUM7WUFDSSwwRUFBMEU7WUFDMUUsd0NBQXdDO1lBQ3hDLElBQUksQ0FBQ0QsU0FBUztZQUNkLElBQUksQ0FBQ2lDLFNBQVM7WUFDZCxPQUFPakMsUUFBUXpCLE9BQU87UUFDMUI7SUFDSjtBQUNKO0FBQ0E7Ozs7Q0FJQyxHQUFHLFNBQVM4RCx1QkFBdUJQLE1BQU07SUFDdEMsSUFBSVEsY0FBYztJQUNsQixNQUFNcEQsVUFBVSxJQUFJQztJQUNwQixNQUFNaUMsVUFBVSxJQUFJQztJQUNwQixPQUFPLElBQUl6RCxnQkFBZ0I7UUFDdkJPLFdBQVcwQixLQUFLLEVBQUUvQixVQUFVO1lBQ3hCLElBQUl3RSxhQUFhO2dCQUNiLE9BQU94RSxXQUFXSSxPQUFPLENBQUMyQjtZQUM5QjtZQUNBLE1BQU0wQyxNQUFNbkIsUUFBUUksTUFBTSxDQUFDM0I7WUFDM0IsTUFBTTRCLFFBQVFjLElBQUliLE9BQU8sQ0FBQ0k7WUFDMUIsSUFBSUwsUUFBUSxDQUFDLEdBQUc7Z0JBQ1phLGNBQWM7Z0JBQ2QsdUVBQXVFO2dCQUN2RSwyQkFBMkI7Z0JBQzNCLElBQUlDLElBQUk1RCxNQUFNLEtBQUttRCxPQUFPbkQsTUFBTSxFQUFFO29CQUM5QjtnQkFDSjtnQkFDQSx3Q0FBd0M7Z0JBQ3hDLE1BQU02RCxTQUFTRCxJQUFJWCxLQUFLLENBQUMsR0FBR0g7Z0JBQzVCNUIsUUFBUVgsUUFBUUcsTUFBTSxDQUFDbUQ7Z0JBQ3ZCMUUsV0FBV0ksT0FBTyxDQUFDMkI7Z0JBQ25CLHNFQUFzRTtnQkFDdEUscUNBQXFDO2dCQUNyQyxJQUFJMEMsSUFBSTVELE1BQU0sR0FBR21ELE9BQU9uRCxNQUFNLEdBQUc4QyxPQUFPO29CQUNwQyx1Q0FBdUM7b0JBQ3ZDLE1BQU1nQixRQUFRRixJQUFJWCxLQUFLLENBQUNILFFBQVFLLE9BQU9uRCxNQUFNO29CQUM3Q2tCLFFBQVFYLFFBQVFHLE1BQU0sQ0FBQ29EO29CQUN2QjNFLFdBQVdJLE9BQU8sQ0FBQzJCO2dCQUN2QjtZQUNKLE9BQU87Z0JBQ0gvQixXQUFXSSxPQUFPLENBQUMyQjtZQUN2QjtRQUNKO1FBQ0FJLE9BQU9uQyxVQUFVO1lBQ2IsdUVBQXVFO1lBQ3ZFLG1DQUFtQztZQUNuQ0EsV0FBV0ksT0FBTyxDQUFDZ0IsUUFBUUcsTUFBTSxDQUFDeUM7UUFDdEM7SUFDSjtBQUNKO0FBQ08sU0FBU1ksZ0NBQWdDQyxjQUFjLEVBQUUsRUFBRUMsT0FBTztJQUNyRSxJQUFJQyxZQUFZO0lBQ2hCLElBQUlDLFlBQVk7SUFDaEIsTUFBTTVELFVBQVUsSUFBSUM7SUFDcEIsTUFBTWlDLFVBQVUsSUFBSUM7SUFDcEIsSUFBSUUsVUFBVTtJQUNkLE9BQU8sSUFBSTNELGdCQUFnQjtRQUN2QixNQUFNTyxXQUFXMEIsS0FBSyxFQUFFL0IsVUFBVTtZQUM5QiwrREFBK0Q7WUFDL0QsSUFBSSxDQUFDK0UsYUFBYSxDQUFDQyxXQUFXO2dCQUMxQnZCLFdBQVdILFFBQVFJLE1BQU0sQ0FBQzNCLE9BQU87b0JBQzdCTCxRQUFRO2dCQUNaO2dCQUNBLElBQUksQ0FBQ3FELGFBQWF0QixRQUFRd0IsUUFBUSxDQUFDLFVBQVU7b0JBQ3pDRixZQUFZO2dCQUNoQjtnQkFDQSxJQUFJLENBQUNDLGFBQWF2QixRQUFRd0IsUUFBUSxDQUFDLFVBQVU7b0JBQ3pDRCxZQUFZO2dCQUNoQjtZQUNKO1lBQ0FoRixXQUFXSSxPQUFPLENBQUMyQjtRQUN2QjtRQUNBSSxPQUFPbkMsVUFBVTtZQUNiLHFCQUFxQjtZQUNyQixJQUFJLENBQUMrRSxhQUFhLENBQUNDLFdBQVc7Z0JBQzFCdkIsV0FBV0gsUUFBUUksTUFBTTtnQkFDekIsSUFBSSxDQUFDcUIsYUFBYXRCLFFBQVF3QixRQUFRLENBQUMsVUFBVTtvQkFDekNGLFlBQVk7Z0JBQ2hCO2dCQUNBLElBQUksQ0FBQ0MsYUFBYXZCLFFBQVF3QixRQUFRLENBQUMsVUFBVTtvQkFDekNELFlBQVk7Z0JBQ2hCO1lBQ0o7WUFDQSx1RUFBdUU7WUFDdkUsY0FBYztZQUNkLE1BQU1FLGNBQWMsRUFBRTtZQUN0QixJQUFJLENBQUNILFdBQVdHLFlBQVlDLElBQUksQ0FBQztZQUNqQyxJQUFJLENBQUNILFdBQVdFLFlBQVlDLElBQUksQ0FBQztZQUNqQyxJQUFJRCxZQUFZckUsTUFBTSxHQUFHLEdBQUc7Z0JBQ3hCYixXQUFXSSxPQUFPLENBQUNnQixRQUFRRyxNQUFNLENBQUMsQ0FBQyxtREFBbUQsRUFBRTZELEtBQUtDLFNBQVMsQ0FBQztvQkFDbkdIO29CQUNBTCxhQUFhQSxlQUFlO29CQUM1QlMsTUFBTVI7Z0JBQ1YsR0FBRyxTQUFTLENBQUM7WUFDakI7UUFDSjtJQUNKO0FBQ0o7QUFDQSxTQUFTUyxrQkFBa0I1RixRQUFRLEVBQUU2RixZQUFZO0lBQzdDLElBQUk5RCxTQUFTL0I7SUFDYixLQUFLLE1BQU04RixlQUFlRCxhQUFhO1FBQ25DLElBQUksQ0FBQ0MsYUFBYTtRQUNsQi9ELFNBQVNBLE9BQU9FLFdBQVcsQ0FBQzZEO0lBQ2hDO0lBQ0EsT0FBTy9EO0FBQ1g7QUFDTyxlQUFlZ0UsbUJBQW1CQyxZQUFZLEVBQUUsRUFBRTNCLE1BQU0sRUFBRTRCLGlCQUFpQixFQUFFQyxrQkFBa0IsRUFBRW5ELHFCQUFxQixFQUFFb0Qsd0JBQXdCLEVBQUVDLGtCQUFrQixFQUFFO0lBQ3pLLE1BQU1DLFdBQVc7SUFDakIsNkVBQTZFO0lBQzdFLE1BQU1DLGlCQUFpQmpDLFNBQVNBLE9BQU9rQyxLQUFLLENBQUNGLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRztJQUMvRCwyRUFBMkU7SUFDM0UsK0RBQStEO0lBQy9ELElBQUlILHNCQUFzQixjQUFjRixjQUFjO1FBQ2xELE1BQU1BLGFBQWFRLFFBQVE7SUFDL0I7SUFDQSxPQUFPWixrQkFBa0JJLGNBQWM7UUFDbkMscURBQXFEO1FBQ3JEM0Q7UUFDQSxnQ0FBZ0M7UUFDaENVLHlCQUF5QixDQUFDb0QsMkJBQTJCckQseUJBQXlCQyx5QkFBeUI7UUFDdkcsd0JBQXdCO1FBQ3hCdUQsa0JBQWtCLFFBQVFBLGVBQWVwRixNQUFNLEdBQUcsSUFBSWtELDJCQUEyQmtDLGtCQUFrQjtRQUNuRywrRUFBK0U7UUFDL0VMLG9CQUFvQjFCLDRCQUE0QjBCLHFCQUFxQjtRQUNyRSxrREFBa0Q7UUFDbERyQix1QkFBdUJ5QjtRQUN2QiwwQkFBMEI7UUFDMUIscUZBQXFGO1FBQ3JGLCtFQUErRTtRQUMvRXRELHlCQUF5Qm9ELDJCQUEyQjVDLG1DQUFtQ1IseUJBQXlCO1FBQ2hIcUQscUJBQXFCbkIsZ0NBQWdDbUIsbUJBQW1CbEIsV0FBVyxFQUFFa0IsbUJBQW1CakIsT0FBTyxJQUFJO0tBQ3RIO0FBQ0w7QUFDTyxlQUFlc0IsNEJBQTRCVCxZQUFZLEVBQUUsRUFBRUMsaUJBQWlCLEVBQUVDLGtCQUFrQixFQUFFbkQscUJBQXFCLEVBQUVvRCx3QkFBd0IsRUFBRTtJQUN0SixNQUFNRSxXQUFXO0lBQ2pCLDJFQUEyRTtJQUMzRSwrREFBK0Q7SUFDL0QsSUFBSUgsc0JBQXNCLGNBQWNGLGNBQWM7UUFDbEQsTUFBTUEsYUFBYVEsUUFBUTtJQUMvQjtJQUNBLE9BQU9aLGtCQUFrQkksY0FBYztRQUNuQyxxREFBcUQ7UUFDckQzRDtRQUNBLGdDQUFnQztRQUNoQ1UseUJBQXlCLENBQUNvRCwyQkFBMkJyRCx5QkFBeUJDLHlCQUF5QjtRQUN2RywrRUFBK0U7UUFDL0VrRCxvQkFBb0IxQiw0QkFBNEIwQixxQkFBcUI7UUFDckUsa0RBQWtEO1FBQ2xEckIsdUJBQXVCeUI7S0FDMUI7QUFDTCxFQUVBLG1EQUFtRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcz84N2NmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFRyYWNlciB9IGZyb20gXCIuLi9saWIvdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBBcHBSZW5kZXJTcGFuIH0gZnJvbSBcIi4uL2xpYi90cmFjZS9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZURlY29kZVRyYW5zZm9ybVN0cmVhbSB9IGZyb20gXCIuL2VuY29kZS1kZWNvZGVcIjtcbmltcG9ydCB7IERldGFjaGVkUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiO1xuaW1wb3J0IHsgc2NoZWR1bGVJbW1lZGlhdGUgfSBmcm9tIFwiLi4vLi4vbGliL3NjaGVkdWxlclwiO1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lVHJhbnNmb3JtU3RyZWFtKHNvdXJjZSkge1xuICAgIGNvbnN0IHNvdXJjZVJlYWRlciA9IHNvdXJjZS5yZWFkYWJsZS5nZXRSZWFkZXIoKTtcbiAgICBjb25zdCBjbG9uZSA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgc291cmNlUmVhZGVyLnJlYWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgLy8gc2tpcCBhbGwgcGlwZWQgY2h1bmtzXG4gICAgICAgIHRyYW5zZm9ybSAoKSB7fVxuICAgIH0pO1xuICAgIHJldHVybiBjbG9uZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjaGFpblN0cmVhbXMoLi4uc3RyZWFtcykge1xuICAgIGNvbnN0IHsgcmVhZGFibGUsIHdyaXRhYmxlIH0gPSBuZXcgVHJhbnNmb3JtU3RyZWFtKCk7XG4gICAgbGV0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgc3RyZWFtcy5sZW5ndGg7ICsraSl7XG4gICAgICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oKCk9PnN0cmVhbXNbaV0ucGlwZVRvKHdyaXRhYmxlLCB7XG4gICAgICAgICAgICAgICAgcHJldmVudENsb3NlOiBpICsgMSA8IHN0cmVhbXMubGVuZ3RoXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIC8vIENhdGNoIGFueSBlcnJvcnMgZnJvbSB0aGUgc3RyZWFtcyBhbmQgaWdub3JlIHRoZW0sIHRoZXkgd2lsbCBiZSBoYW5kbGVkXG4gICAgLy8gYnkgd2hhdGV2ZXIgaXMgY29uc3VtaW5nIHRoZSByZWFkYWJsZSBzdHJlYW0uXG4gICAgcHJvbWlzZS5jYXRjaCgoKT0+e30pO1xuICAgIHJldHVybiByZWFkYWJsZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzdHJlYW1Gcm9tU3RyaW5nKHN0cikge1xuICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdHIpKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0cmVhbVRvU3RyaW5nKHN0cmVhbSkge1xuICAgIGxldCBidWZmZXIgPSBcIlwiO1xuICAgIGF3YWl0IHN0cmVhbS8vIERlY29kZSB0aGUgc3RyZWFtZWQgY2h1bmtzIHRvIHR1cm4gdGhlbSBpbnRvIHN0cmluZ3MuXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZURlY29kZVRyYW5zZm9ybVN0cmVhbSgpKS5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgd3JpdGUgKGNodW5rKSB7XG4gICAgICAgICAgICBidWZmZXIgKz0gY2h1bms7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpIHtcbiAgICBsZXQgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoKTtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBwZW5kaW5nIGZsdXNoLCB0aGVuIHJldHVybiBlYXJseS5cbiAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgY29uc3QgZGV0YWNoZWQgPSBuZXcgRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgIHBlbmRpbmcgPSBkZXRhY2hlZDtcbiAgICAgICAgc2NoZWR1bGVJbW1lZGlhdGUoKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGJ1ZmZlcik7XG4gICAgICAgICAgICAgICAgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBlbnF1ZXVpbmcgaXQgY2FuJ3QgYmUgZHVlIHRvIHRoaXNcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybWVycyBmYXVsdC4gSXQncyBsaWtlbHkgZHVlIHRvIHRoZSBjb250cm9sbGVyIGJlaW5nXG4gICAgICAgICAgICAvLyBlcnJvcmVkIGR1ZSB0byB0aGUgc3RyZWFtIGJlaW5nIGNhbmNlbGxlZC5cbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENvbWJpbmUgdGhlIHByZXZpb3VzIGJ1ZmZlciB3aXRoIHRoZSBuZXcgY2h1bmsuXG4gICAgICAgICAgICBjb25zdCBjb21iaW5lZCA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlci5sZW5ndGggKyBjaHVuay5ieXRlTGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbWJpbmVkLnNldChidWZmZXIpO1xuICAgICAgICAgICAgY29tYmluZWQuc2V0KGNodW5rLCBidWZmZXIubGVuZ3RoKTtcbiAgICAgICAgICAgIGJ1ZmZlciA9IGNvbWJpbmVkO1xuICAgICAgICAgICAgLy8gRmx1c2ggdGhlIGJ1ZmZlciB0byB0aGUgY29udHJvbGxlci5cbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoKSB7XG4gICAgICAgICAgICBpZiAoIXBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgICAgIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUluc2VydGVkSFRNTFN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpIHtcbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm06IGFzeW5jIChjaHVuaywgY29udHJvbGxlcik9PntcbiAgICAgICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwoKTtcbiAgICAgICAgICAgIGlmIChodG1sKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGh0bWwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtKHsgUmVhY3RET01TZXJ2ZXIsIGVsZW1lbnQsIHN0cmVhbU9wdGlvbnMgfSkge1xuICAgIHJldHVybiBnZXRUcmFjZXIoKS50cmFjZShBcHBSZW5kZXJTcGFuLnJlbmRlclRvUmVhZGFibGVTdHJlYW0sIGFzeW5jICgpPT5SZWFjdERPTVNlcnZlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtKGVsZW1lbnQsIHN0cmVhbU9wdGlvbnMpKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oaW5zZXJ0KSB7XG4gICAgbGV0IGluc2VydGVkID0gZmFsc2U7XG4gICAgbGV0IGZyZWV6aW5nID0gZmFsc2U7XG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIGFzeW5jIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFdoaWxlIHJlYWN0IGlzIGZsdXNoaW5nIGNodW5rcywgd2UgZG9uJ3QgYXBwbHkgaW5zZXJ0aW9uc1xuICAgICAgICAgICAgaWYgKGZyZWV6aW5nKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgIGlmIChpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pKTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgIGZyZWV6aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGRlY29kZXIuZGVjb2RlKGNodW5rKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNvbnRlbnQuaW5kZXhPZihcIjwvaGVhZD5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRlZEhlYWRDb250ZW50ID0gY29udGVudC5zbGljZSgwLCBpbmRleCkgKyBpbnNlcnRpb24gKyBjb250ZW50LnNsaWNlKGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGluc2VydGVkSGVhZENvbnRlbnQpKTtcbiAgICAgICAgICAgICAgICAgICAgZnJlZXppbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlSW1tZWRpYXRlKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGZyZWV6aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBiZWZvcmUgY2xvc2luZyBpZiB0aGVyZSdzIGFueXRoaW5nIHJlbWFpbmluZyB0byBpbnNlcnQuXG4gICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbi8vIFN1ZmZpeCBhZnRlciBtYWluIGJvZHkgY29udGVudCAtIHNjcmlwdHMgYmVmb3JlIDwvYm9keT4sXG4vLyBidXQgd2FpdCBmb3IgdGhlIG1ham9yIGNodW5rcyB0byBiZSBlbnF1ZXVlZC5cbmZ1bmN0aW9uIGNyZWF0ZURlZmVycmVkU3VmZml4U3RyZWFtKHN1ZmZpeCkge1xuICAgIGxldCBmbHVzaGVkID0gZmFsc2U7XG4gICAgbGV0IHBlbmRpbmc7XG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGNvbnN0IGZsdXNoID0gKGNvbnRyb2xsZXIpPT57XG4gICAgICAgIGNvbnN0IGRldGFjaGVkID0gbmV3IERldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgIHNjaGVkdWxlSW1tZWRpYXRlKCgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdWZmaXgpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBlbnF1ZXVpbmcgaXQgY2FuJ3QgYmUgZHVlIHRvIHRoaXNcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybWVycyBmYXVsdC4gSXQncyBsaWtlbHkgZHVlIHRvIHRoZSBjb250cm9sbGVyIGJlaW5nXG4gICAgICAgICAgICAvLyBlcnJvcmVkIGR1ZSB0byB0aGUgc3RyZWFtIGJlaW5nIGNhbmNlbGxlZC5cbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZsdXNoZWQsIHdlJ3JlIGRvbmUuXG4gICAgICAgICAgICBpZiAoZmx1c2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIGZsdXNoIHRvIGhhcHBlbi5cbiAgICAgICAgICAgIGZsdXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgZmx1c2goY29udHJvbGxlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuIHBlbmRpbmcucHJvbWlzZTtcbiAgICAgICAgICAgIGlmIChmbHVzaGVkKSByZXR1cm47XG4gICAgICAgICAgICAvLyBGbHVzaCBub3cuXG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoc3VmZml4KSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbi8vIE1lcmdlIHR3byBzdHJlYW1zIGludG8gb25lLiBFbnN1cmUgdGhlIGZpbmFsIHRyYW5zZm9ybSBzdHJlYW0gaXMgY2xvc2VkXG4vLyB3aGVuIGJvdGggYXJlIGZpbmlzaGVkLlxuZnVuY3Rpb24gY3JlYXRlTWVyZ2VkVHJhbnNmb3JtU3RyZWFtKHN0cmVhbSkge1xuICAgIGxldCBzdGFydGVkID0gZmFsc2U7XG4gICAgbGV0IHBlbmRpbmcgPSBudWxsO1xuICAgIGNvbnN0IHN0YXJ0ID0gKGNvbnRyb2xsZXIpPT57XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICAgICAgLy8gTk9URTogc3RyZWFtaW5nIGZsdXNoXG4gICAgICAgIC8vIFdlIGFyZSBidWZmZXJpbmcgaGVyZSBmb3IgdGhlIGlubGluZWQgZGF0YSBzdHJlYW0gYmVjYXVzZSB0aGVcbiAgICAgICAgLy8gXCJzaGVsbFwiIHN0cmVhbSBtaWdodCBiZSBjaHVua2VuaXplZCBhZ2FpbiBieSB0aGUgdW5kZXJseWluZyBzdHJlYW1cbiAgICAgICAgLy8gaW1wbGVtZW50YXRpb24sIGUuZy4gd2l0aCBhIHNwZWNpZmljIGhpZ2gtd2F0ZXIgbWFyay4gVG8gZW5zdXJlIGl0J3NcbiAgICAgICAgLy8gdGhlIHNhZmUgdGltaW5nIHRvIHBpcGUgdGhlIGRhdGEgc3RyZWFtLCB0aGlzIGV4dHJhIHRpY2sgaXNcbiAgICAgICAgLy8gbmVjZXNzYXJ5LlxuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBEZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgcGVuZGluZyA9IGRldGFjaGVkO1xuICAgICAgICAvLyBXZSB1c2UgYHNldFRpbWVvdXQvc2V0SW1tZWRpYXRlYCBoZXJlIHRvIGVuc3VyZSB0aGF0IGl0J3MgaW5zZXJ0ZWQgYWZ0ZXJcbiAgICAgICAgLy8gZmx1c2hpbmcgdGhlIHNoZWxsLiBOb3RlIHRoYXQgdGhpcyBpbXBsZW1lbnRhdGlvbiBtaWdodCBnZXQgc3RhbGUgaWYgaW1wbFxuICAgICAgICAvLyBkZXRhaWxzIG9mIEZpenogY2hhbmdlIGluIHRoZSBmdXR1cmUuXG4gICAgICAgIHNjaGVkdWxlSW1tZWRpYXRlKGFzeW5jICgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHdoaWxlKHRydWUpe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gU3RhcnQgdGhlIHN0cmVhbWluZyBpZiBpdCBoYXNuJ3QgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQgeWV0LlxuICAgICAgICAgICAgaWYgKHN0YXJ0ZWQpIHJldHVybjtcbiAgICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgc3RhcnQoY29udHJvbGxlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoICgpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBkYXRhIHN0cmVhbSBwcm9taXNlIGlzIGRlZmluZWQsIHRoZW4gcmV0dXJuIGl0IGFzIGl0cyBjb21wbGV0aW9uXG4gICAgICAgICAgICAvLyB3aWxsIGJlIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBzdHJlYW0uXG4gICAgICAgICAgICBpZiAoIXBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgICAgIGlmICghc3RhcnRlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmV0dXJuIHBlbmRpbmcucHJvbWlzZTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuLyoqXG4gKiBUaGlzIHRyYW5zZm9ybSBzdHJlYW0gbW92ZXMgdGhlIHN1ZmZpeCB0byB0aGUgZW5kIG9mIHRoZSBzdHJlYW0sIHNvIHJlc3VsdHNcbiAqIGxpa2UgYDwvYm9keT48L2h0bWw+PHNjcmlwdD4uLi48L3NjcmlwdD5gIHdpbGwgYmUgdHJhbnNmb3JtZWQgdG9cbiAqIGA8c2NyaXB0Pi4uLjwvc2NyaXB0PjwvYm9keT48L2h0bWw+YC5cbiAqLyBmdW5jdGlvbiBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKHN1ZmZpeCkge1xuICAgIGxldCBmb3VuZFN1ZmZpeCA9IGZhbHNlO1xuICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBpZiAoZm91bmRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ1ZiA9IGRlY29kZXIuZGVjb2RlKGNodW5rKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYnVmLmluZGV4T2Yoc3VmZml4KTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRTdWZmaXggPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3aG9sZSBjaHVuayBpcyB0aGUgc3VmZml4LCB0aGVuIGRvbid0IHdyaXRlIGFueXRoaW5nLCBpdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gYmUgd3JpdHRlbiBpbiB0aGUgZmx1c2guXG4gICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGggPT09IHN1ZmZpeC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIHBhcnQgYmVmb3JlIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gYnVmLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBjaHVuayA9IGVuY29kZXIuZW5jb2RlKGJlZm9yZSk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgc3VmZml4IGlzIGluIHRoZSBtaWRkbGUgb2YgdGhlIGNodW5rLCB3ZSBuZWVkXG4gICAgICAgICAgICAgICAgLy8gdG8gc3BsaXQgdGhlIGNodW5rIGludG8gdHdvIHBhcnRzLlxuICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoID4gc3VmZml4Lmxlbmd0aCArIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdyaXRlIG91dCB0aGUgcGFydCBhZnRlciB0aGUgc3VmZml4LlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZnRlciA9IGJ1Zi5zbGljZShpbmRleCArIHN1ZmZpeC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGVuY29kZXIuZW5jb2RlKGFmdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBFdmVuIGlmIHdlIGRpZG4ndCBmaW5kIHRoZSBzdWZmaXgsIHRoZSBIVE1MIGlzIG5vdCB2YWxpZCBpZiB3ZSBkb24ndFxuICAgICAgICAgICAgLy8gYWRkIGl0LCBzbyBpbnNlcnQgaXQgYXQgdGhlIGVuZC5cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdWZmaXgpKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW0oYXNzZXRQcmVmaXggPSBcIlwiLCBnZXRUcmVlKSB7XG4gICAgbGV0IGZvdW5kSHRtbCA9IGZhbHNlO1xuICAgIGxldCBmb3VuZEJvZHkgPSBmYWxzZTtcbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpO1xuICAgIGxldCBjb250ZW50ID0gXCJcIjtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIGFzeW5jIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFBlZWsgaW50byB0aGUgc3RyZWFtZWQgY2h1bmsgdG8gc2VlIGlmIHRoZSB0YWdzIGFyZSBwcmVzZW50LlxuICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwgfHwgIWZvdW5kQm9keSkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgKz0gZGVjb2Rlci5kZWNvZGUoY2h1bmssIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwgJiYgY29udGVudC5pbmNsdWRlcyhcIjxodG1sXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kSHRtbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZm91bmRCb2R5ICYmIGNvbnRlbnQuaW5jbHVkZXMoXCI8Ym9keVwiKSkge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZEJvZHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBGbHVzaCB0aGUgZGVjb2Rlci5cbiAgICAgICAgICAgIGlmICghZm91bmRIdG1sIHx8ICFmb3VuZEJvZHkpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ICs9IGRlY29kZXIuZGVjb2RlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwgJiYgY29udGVudC5pbmNsdWRlcyhcIjxodG1sXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kSHRtbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZm91bmRCb2R5ICYmIGNvbnRlbnQuaW5jbHVkZXMoXCI8Ym9keVwiKSkge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZEJvZHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIGh0bWwgb3IgYm9keSB0YWcgaXMgbWlzc2luZywgd2UgbmVlZCB0byBpbmplY3QgYSBzY3JpcHQgdG8gbm90aWZ5XG4gICAgICAgICAgICAvLyB0aGUgY2xpZW50LlxuICAgICAgICAgICAgY29uc3QgbWlzc2luZ1RhZ3MgPSBbXTtcbiAgICAgICAgICAgIGlmICghZm91bmRIdG1sKSBtaXNzaW5nVGFncy5wdXNoKFwiaHRtbFwiKTtcbiAgICAgICAgICAgIGlmICghZm91bmRCb2R5KSBtaXNzaW5nVGFncy5wdXNoKFwiYm9keVwiKTtcbiAgICAgICAgICAgIGlmIChtaXNzaW5nVGFncy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGA8c2NyaXB0PnNlbGYuX19uZXh0X3Jvb3RfbGF5b3V0X21pc3NpbmdfdGFnc19lcnJvcj0ke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgbWlzc2luZ1RhZ3MsXG4gICAgICAgICAgICAgICAgICAgIGFzc2V0UHJlZml4OiBhc3NldFByZWZpeCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB0cmVlOiBnZXRUcmVlKClcbiAgICAgICAgICAgICAgICB9KX08L3NjcmlwdD5gKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNoYWluVHJhbnNmb3JtZXJzKHJlYWRhYmxlLCB0cmFuc2Zvcm1lcnMpIHtcbiAgICBsZXQgc3RyZWFtID0gcmVhZGFibGU7XG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm1lciBvZiB0cmFuc2Zvcm1lcnMpe1xuICAgICAgICBpZiAoIXRyYW5zZm9ybWVyKSBjb250aW51ZTtcbiAgICAgICAgc3RyZWFtID0gc3RyZWFtLnBpcGVUaHJvdWdoKHRyYW5zZm9ybWVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmVhbTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb250aW51ZUZpenpTdHJlYW0ocmVuZGVyU3RyZWFtLCB7IHN1ZmZpeCwgaW5saW5lZERhdGFTdHJlYW0sIGlzU3RhdGljR2VuZXJhdGlvbiwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBzZXJ2ZXJJbnNlcnRlZEhUTUxUb0hlYWQsIHZhbGlkYXRlUm9vdExheW91dCB9KSB7XG4gICAgY29uc3QgY2xvc2VUYWcgPSBcIjwvYm9keT48L2h0bWw+XCI7XG4gICAgLy8gU3VmZml4IGl0c2VsZiBtaWdodCBjb250YWluIGNsb3NlIHRhZ3MgYXQgdGhlIGVuZCwgc28gd2UgbmVlZCB0byBzcGxpdCBpdC5cbiAgICBjb25zdCBzdWZmaXhVbmNsb3NlZCA9IHN1ZmZpeCA/IHN1ZmZpeC5zcGxpdChjbG9zZVRhZywgMSlbMF0gOiBudWxsO1xuICAgIC8vIElmIHdlJ3JlIGdlbmVyYXRpbmcgc3RhdGljIEhUTUwgYW5kIHRoZXJlJ3MgYW4gYGFsbFJlYWR5YCBwcm9taXNlIG9uIHRoZVxuICAgIC8vIHN0cmVhbSwgd2UgbmVlZCB0byB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZSBjb250aW51aW5nLlxuICAgIGlmIChpc1N0YXRpY0dlbmVyYXRpb24gJiYgXCJhbGxSZWFkeVwiIGluIHJlbmRlclN0cmVhbSkge1xuICAgICAgICBhd2FpdCByZW5kZXJTdHJlYW0uYWxsUmVhZHk7XG4gICAgfVxuICAgIHJldHVybiBjaGFpblRyYW5zZm9ybWVycyhyZW5kZXJTdHJlYW0sIFtcbiAgICAgICAgLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAgICAgY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSxcbiAgICAgICAgLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAgICAgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MICYmICFzZXJ2ZXJJbnNlcnRlZEhUTUxUb0hlYWQgPyBjcmVhdGVJbnNlcnRlZEhUTUxTdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSA6IG51bGwsXG4gICAgICAgIC8vIEluc2VydCBzdWZmaXggY29udGVudFxuICAgICAgICBzdWZmaXhVbmNsb3NlZCAhPSBudWxsICYmIHN1ZmZpeFVuY2xvc2VkLmxlbmd0aCA+IDAgPyBjcmVhdGVEZWZlcnJlZFN1ZmZpeFN0cmVhbShzdWZmaXhVbmNsb3NlZCkgOiBudWxsLFxuICAgICAgICAvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgICAgIGlubGluZWREYXRhU3RyZWFtID8gY3JlYXRlTWVyZ2VkVHJhbnNmb3JtU3RyZWFtKGlubGluZWREYXRhU3RyZWFtKSA6IG51bGwsXG4gICAgICAgIC8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgICAgIGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oY2xvc2VUYWcpLFxuICAgICAgICAvLyBTcGVjaWFsIGhlYWQgaW5zZXJ0aW9uc1xuICAgICAgICAvLyBUT0RPLUFQUDogSW5zZXJ0IHNlcnZlciBzaWRlIGh0bWwgdG8gZW5kIG9mIGhlYWQgaW4gYXBwIGxheW91dCByZW5kZXJpbmcsIHRvIGF2b2lkXG4gICAgICAgIC8vIGh5ZHJhdGlvbiBlcnJvcnMuIFJlbW92ZSB0aGlzIG9uY2UgaXQncyByZWFkeSB0byBiZSBoYW5kbGVkIGJ5IHJlYWN0IGl0c2VsZi5cbiAgICAgICAgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MICYmIHNlcnZlckluc2VydGVkSFRNTFRvSGVhZCA/IGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSA6IG51bGwsXG4gICAgICAgIHZhbGlkYXRlUm9vdExheW91dCA/IGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW0odmFsaWRhdGVSb290TGF5b3V0LmFzc2V0UHJlZml4LCB2YWxpZGF0ZVJvb3RMYXlvdXQuZ2V0VHJlZSkgOiBudWxsXG4gICAgXSk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udGludWVQb3N0cG9uZWRGaXp6U3RyZWFtKHJlbmRlclN0cmVhbSwgeyBpbmxpbmVkRGF0YVN0cmVhbSwgaXNTdGF0aWNHZW5lcmF0aW9uLCBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIHNlcnZlckluc2VydGVkSFRNTFRvSGVhZCB9KSB7XG4gICAgY29uc3QgY2xvc2VUYWcgPSBcIjwvYm9keT48L2h0bWw+XCI7XG4gICAgLy8gSWYgd2UncmUgZ2VuZXJhdGluZyBzdGF0aWMgSFRNTCBhbmQgdGhlcmUncyBhbiBgYWxsUmVhZHlgIHByb21pc2Ugb24gdGhlXG4gICAgLy8gc3RyZWFtLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlIGNvbnRpbnVpbmcuXG4gICAgaWYgKGlzU3RhdGljR2VuZXJhdGlvbiAmJiBcImFsbFJlYWR5XCIgaW4gcmVuZGVyU3RyZWFtKSB7XG4gICAgICAgIGF3YWl0IHJlbmRlclN0cmVhbS5hbGxSZWFkeTtcbiAgICB9XG4gICAgcmV0dXJuIGNoYWluVHJhbnNmb3JtZXJzKHJlbmRlclN0cmVhbSwgW1xuICAgICAgICAvLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgICAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpLFxuICAgICAgICAvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgICAgICBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwgJiYgIXNlcnZlckluc2VydGVkSFRNTFRvSGVhZCA/IGNyZWF0ZUluc2VydGVkSFRNTFN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpIDogbnVsbCxcbiAgICAgICAgLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgICAgICBpbmxpbmVkRGF0YVN0cmVhbSA/IGNyZWF0ZU1lcmdlZFRyYW5zZm9ybVN0cmVhbShpbmxpbmVkRGF0YVN0cmVhbSkgOiBudWxsLFxuICAgICAgICAvLyBDbG9zZSB0YWdzIHNob3VsZCBhbHdheXMgYmUgZGVmZXJyZWQgdG8gdGhlIGVuZFxuICAgICAgICBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKGNsb3NlVGFnKVxuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcy5tYXAiXSwibmFtZXMiOlsiZ2V0VHJhY2VyIiwiQXBwUmVuZGVyU3BhbiIsImNyZWF0ZURlY29kZVRyYW5zZm9ybVN0cmVhbSIsIkRldGFjaGVkUHJvbWlzZSIsInNjaGVkdWxlSW1tZWRpYXRlIiwiY2xvbmVUcmFuc2Zvcm1TdHJlYW0iLCJzb3VyY2UiLCJzb3VyY2VSZWFkZXIiLCJyZWFkYWJsZSIsImdldFJlYWRlciIsImNsb25lIiwiVHJhbnNmb3JtU3RyZWFtIiwic3RhcnQiLCJjb250cm9sbGVyIiwiZG9uZSIsInZhbHVlIiwicmVhZCIsImVucXVldWUiLCJ0cmFuc2Zvcm0iLCJjaGFpblN0cmVhbXMiLCJzdHJlYW1zIiwid3JpdGFibGUiLCJwcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJpIiwibGVuZ3RoIiwidGhlbiIsInBpcGVUbyIsInByZXZlbnRDbG9zZSIsImNhdGNoIiwic3RyZWFtRnJvbVN0cmluZyIsInN0ciIsImVuY29kZXIiLCJUZXh0RW5jb2RlciIsIlJlYWRhYmxlU3RyZWFtIiwiZW5jb2RlIiwiY2xvc2UiLCJzdHJlYW1Ub1N0cmluZyIsInN0cmVhbSIsImJ1ZmZlciIsInBpcGVUaHJvdWdoIiwiV3JpdGFibGVTdHJlYW0iLCJ3cml0ZSIsImNodW5rIiwiY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0iLCJVaW50OEFycmF5IiwicGVuZGluZyIsImZsdXNoIiwiZGV0YWNoZWQiLCJ1bmRlZmluZWQiLCJjb21iaW5lZCIsImJ5dGVMZW5ndGgiLCJzZXQiLCJjcmVhdGVJbnNlcnRlZEhUTUxTdHJlYW0iLCJnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwiLCJodG1sIiwicmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbSIsIlJlYWN0RE9NU2VydmVyIiwiZWxlbWVudCIsInN0cmVhbU9wdGlvbnMiLCJ0cmFjZSIsInJlbmRlclRvUmVhZGFibGVTdHJlYW0iLCJjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtIiwiaW5zZXJ0IiwiaW5zZXJ0ZWQiLCJmcmVlemluZyIsImRlY29kZXIiLCJUZXh0RGVjb2RlciIsImluc2VydGlvbiIsImNvbnRlbnQiLCJkZWNvZGUiLCJpbmRleCIsImluZGV4T2YiLCJpbnNlcnRlZEhlYWRDb250ZW50Iiwic2xpY2UiLCJjcmVhdGVEZWZlcnJlZFN1ZmZpeFN0cmVhbSIsInN1ZmZpeCIsImZsdXNoZWQiLCJjcmVhdGVNZXJnZWRUcmFuc2Zvcm1TdHJlYW0iLCJzdGFydGVkIiwicmVhZGVyIiwiZXJyIiwiZXJyb3IiLCJjcmVhdGVNb3ZlU3VmZml4U3RyZWFtIiwiZm91bmRTdWZmaXgiLCJidWYiLCJiZWZvcmUiLCJhZnRlciIsImNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW0iLCJhc3NldFByZWZpeCIsImdldFRyZWUiLCJmb3VuZEh0bWwiLCJmb3VuZEJvZHkiLCJpbmNsdWRlcyIsIm1pc3NpbmdUYWdzIiwicHVzaCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmVlIiwiY2hhaW5UcmFuc2Zvcm1lcnMiLCJ0cmFuc2Zvcm1lcnMiLCJ0cmFuc2Zvcm1lciIsImNvbnRpbnVlRml6elN0cmVhbSIsInJlbmRlclN0cmVhbSIsImlubGluZWREYXRhU3RyZWFtIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwic2VydmVySW5zZXJ0ZWRIVE1MVG9IZWFkIiwidmFsaWRhdGVSb290TGF5b3V0IiwiY2xvc2VUYWciLCJzdWZmaXhVbmNsb3NlZCIsInNwbGl0IiwiYWxsUmVhZHkiLCJjb250aW51ZVBvc3Rwb25lZEZpenpTdHJlYW0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/utils.js":
-/*!********************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/utils.js ***!
- \********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cleanAmpPath: () => (/* binding */ cleanAmpPath),\n/* harmony export */ debounce: () => (/* binding */ debounce),\n/* harmony export */ isBlockedPage: () => (/* binding */ isBlockedPage)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\");\n\nfunction isBlockedPage(page) {\n return _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__.BLOCKED_PAGES.includes(page);\n}\nfunction cleanAmpPath(pathname) {\n if (pathname.match(/\\?amp=(y|yes|true|1)/)) {\n pathname = pathname.replace(/\\?amp=(y|yes|true|1)&?/, \"?\");\n }\n if (pathname.match(/&amp=(y|yes|true|1)/)) {\n pathname = pathname.replace(/&amp=(y|yes|true|1)/, \"\");\n }\n pathname = pathname.replace(/\\?$/, \"\");\n return pathname;\n}\nfunction debounce(fn, ms, maxWait = Infinity) {\n let timeoutId;\n // The time the debouncing function was first called during this debounce queue.\n let startTime = 0;\n // The time the debouncing function was last called.\n let lastCall = 0;\n // The arguments and this context of the last call to the debouncing function.\n let args, context;\n // A helper used to that either invokes the debounced function, or\n // reschedules the timer if a more recent call was made.\n function run() {\n const now = Date.now();\n const diff = lastCall + ms - now;\n // If the diff is non-positive, then we've waited at least `ms`\n // milliseconds since the last call. Or if we've waited for longer than the\n // max wait time, we must call the debounced function.\n if (diff <= 0 || startTime + maxWait >= now) {\n // It's important to clear the timeout id before invoking the debounced\n // function, in case the function calls the debouncing function again.\n timeoutId = undefined;\n fn.apply(context, args);\n } else {\n // Else, a new call was made after the original timer was scheduled. We\n // didn't clear the timeout (doing so is very slow), so now we need to\n // reschedule the timer for the time difference.\n timeoutId = setTimeout(run, diff);\n }\n }\n return function(...passedArgs) {\n // The arguments and this context of the most recent call are saved so the\n // debounced function can be invoked with them later.\n args = passedArgs;\n context = this;\n // Instead of constantly clearing and scheduling a timer, we record the\n // time of the last call. If a second call comes in before the timer fires,\n // then we'll reschedule in the run function. Doing this is considerably\n // faster.\n lastCall = Date.now();\n // Only schedule a new timer if we're not currently waiting.\n if (timeoutId === undefined) {\n startTime = lastCall;\n timeoutId = setTimeout(run, ms);\n }\n };\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBd0Q7QUFDakQsU0FBU0MsY0FBY0MsSUFBSTtJQUM5QixPQUFPRixnRUFBYUEsQ0FBQ0csUUFBUSxDQUFDRDtBQUNsQztBQUNPLFNBQVNFLGFBQWFDLFFBQVE7SUFDakMsSUFBSUEsU0FBU0MsS0FBSyxDQUFDLHlCQUF5QjtRQUN4Q0QsV0FBV0EsU0FBU0UsT0FBTyxDQUFDLDBCQUEwQjtJQUMxRDtJQUNBLElBQUlGLFNBQVNDLEtBQUssQ0FBQyx3QkFBd0I7UUFDdkNELFdBQVdBLFNBQVNFLE9BQU8sQ0FBQyx1QkFBdUI7SUFDdkQ7SUFDQUYsV0FBV0EsU0FBU0UsT0FBTyxDQUFDLE9BQU87SUFDbkMsT0FBT0Y7QUFDWDtBQUNPLFNBQVNHLFNBQVNDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxVQUFVQyxRQUFRO0lBQy9DLElBQUlDO0lBQ0osZ0ZBQWdGO0lBQ2hGLElBQUlDLFlBQVk7SUFDaEIsb0RBQW9EO0lBQ3BELElBQUlDLFdBQVc7SUFDZiw4RUFBOEU7SUFDOUUsSUFBSUMsTUFBTUM7SUFDVixrRUFBa0U7SUFDbEUsd0RBQXdEO0lBQ3hELFNBQVNDO1FBQ0wsTUFBTUMsTUFBTUMsS0FBS0QsR0FBRztRQUNwQixNQUFNRSxPQUFPTixXQUFXTCxLQUFLUztRQUM3QiwrREFBK0Q7UUFDL0QsMkVBQTJFO1FBQzNFLHNEQUFzRDtRQUN0RCxJQUFJRSxRQUFRLEtBQUtQLFlBQVlILFdBQVdRLEtBQUs7WUFDekMsdUVBQXVFO1lBQ3ZFLHNFQUFzRTtZQUN0RU4sWUFBWVM7WUFDWmIsR0FBR2MsS0FBSyxDQUFDTixTQUFTRDtRQUN0QixPQUFPO1lBQ0gsdUVBQXVFO1lBQ3ZFLHNFQUFzRTtZQUN0RSxnREFBZ0Q7WUFDaERILFlBQVlXLFdBQVdOLEtBQUtHO1FBQ2hDO0lBQ0o7SUFDQSxPQUFPLFNBQVMsR0FBR0ksVUFBVTtRQUN6QiwwRUFBMEU7UUFDMUUscURBQXFEO1FBQ3JEVCxPQUFPUztRQUNQUixVQUFVLElBQUk7UUFDZCx1RUFBdUU7UUFDdkUsMkVBQTJFO1FBQzNFLHdFQUF3RTtRQUN4RSxVQUFVO1FBQ1ZGLFdBQVdLLEtBQUtELEdBQUc7UUFDbkIsNERBQTREO1FBQzVELElBQUlOLGNBQWNTLFdBQVc7WUFDekJSLFlBQVlDO1lBQ1pGLFlBQVlXLFdBQVdOLEtBQUtSO1FBQ2hDO0lBQ0o7QUFDSixFQUVBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3V0aWxzLmpzPzc3MmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkxPQ0tFRF9QQUdFUyB9IGZyb20gXCIuLi9zaGFyZWQvbGliL2NvbnN0YW50c1wiO1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmxvY2tlZFBhZ2UocGFnZSkge1xuICAgIHJldHVybiBCTE9DS0VEX1BBR0VTLmluY2x1ZGVzKHBhZ2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuQW1wUGF0aChwYXRobmFtZSkge1xuICAgIGlmIChwYXRobmFtZS5tYXRjaCgvXFw/YW1wPSh5fHllc3x0cnVlfDEpLykpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9cXD9hbXA9KHl8eWVzfHRydWV8MSkmPy8sIFwiP1wiKTtcbiAgICB9XG4gICAgaWYgKHBhdGhuYW1lLm1hdGNoKC8mYW1wPSh5fHllc3x0cnVlfDEpLykpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC8mYW1wPSh5fHllc3x0cnVlfDEpLywgXCJcIik7XG4gICAgfVxuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvXFw/JC8sIFwiXCIpO1xuICAgIHJldHVybiBwYXRobmFtZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWJvdW5jZShmbiwgbXMsIG1heFdhaXQgPSBJbmZpbml0eSkge1xuICAgIGxldCB0aW1lb3V0SWQ7XG4gICAgLy8gVGhlIHRpbWUgdGhlIGRlYm91bmNpbmcgZnVuY3Rpb24gd2FzIGZpcnN0IGNhbGxlZCBkdXJpbmcgdGhpcyBkZWJvdW5jZSBxdWV1ZS5cbiAgICBsZXQgc3RhcnRUaW1lID0gMDtcbiAgICAvLyBUaGUgdGltZSB0aGUgZGVib3VuY2luZyBmdW5jdGlvbiB3YXMgbGFzdCBjYWxsZWQuXG4gICAgbGV0IGxhc3RDYWxsID0gMDtcbiAgICAvLyBUaGUgYXJndW1lbnRzIGFuZCB0aGlzIGNvbnRleHQgb2YgdGhlIGxhc3QgY2FsbCB0byB0aGUgZGVib3VuY2luZyBmdW5jdGlvbi5cbiAgICBsZXQgYXJncywgY29udGV4dDtcbiAgICAvLyBBIGhlbHBlciB1c2VkIHRvIHRoYXQgZWl0aGVyIGludm9rZXMgdGhlIGRlYm91bmNlZCBmdW5jdGlvbiwgb3JcbiAgICAvLyByZXNjaGVkdWxlcyB0aGUgdGltZXIgaWYgYSBtb3JlIHJlY2VudCBjYWxsIHdhcyBtYWRlLlxuICAgIGZ1bmN0aW9uIHJ1bigpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgZGlmZiA9IGxhc3RDYWxsICsgbXMgLSBub3c7XG4gICAgICAgIC8vIElmIHRoZSBkaWZmIGlzIG5vbi1wb3NpdGl2ZSwgdGhlbiB3ZSd2ZSB3YWl0ZWQgYXQgbGVhc3QgYG1zYFxuICAgICAgICAvLyBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGxhc3QgY2FsbC4gT3IgaWYgd2UndmUgd2FpdGVkIGZvciBsb25nZXIgdGhhbiB0aGVcbiAgICAgICAgLy8gbWF4IHdhaXQgdGltZSwgd2UgbXVzdCBjYWxsIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gICAgICAgIGlmIChkaWZmIDw9IDAgfHwgc3RhcnRUaW1lICsgbWF4V2FpdCA+PSBub3cpIHtcbiAgICAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGNsZWFyIHRoZSB0aW1lb3V0IGlkIGJlZm9yZSBpbnZva2luZyB0aGUgZGVib3VuY2VkXG4gICAgICAgICAgICAvLyBmdW5jdGlvbiwgaW4gY2FzZSB0aGUgZnVuY3Rpb24gY2FsbHMgdGhlIGRlYm91bmNpbmcgZnVuY3Rpb24gYWdhaW4uXG4gICAgICAgICAgICB0aW1lb3V0SWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBmbi5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEVsc2UsIGEgbmV3IGNhbGwgd2FzIG1hZGUgYWZ0ZXIgdGhlIG9yaWdpbmFsIHRpbWVyIHdhcyBzY2hlZHVsZWQuIFdlXG4gICAgICAgICAgICAvLyBkaWRuJ3QgY2xlYXIgdGhlIHRpbWVvdXQgKGRvaW5nIHNvIGlzIHZlcnkgc2xvdyksIHNvIG5vdyB3ZSBuZWVkIHRvXG4gICAgICAgICAgICAvLyByZXNjaGVkdWxlIHRoZSB0aW1lciBmb3IgdGhlIHRpbWUgZGlmZmVyZW5jZS5cbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQocnVuLCBkaWZmKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24oLi4ucGFzc2VkQXJncykge1xuICAgICAgICAvLyBUaGUgYXJndW1lbnRzIGFuZCB0aGlzIGNvbnRleHQgb2YgdGhlIG1vc3QgcmVjZW50IGNhbGwgYXJlIHNhdmVkIHNvIHRoZVxuICAgICAgICAvLyBkZWJvdW5jZWQgZnVuY3Rpb24gY2FuIGJlIGludm9rZWQgd2l0aCB0aGVtIGxhdGVyLlxuICAgICAgICBhcmdzID0gcGFzc2VkQXJncztcbiAgICAgICAgY29udGV4dCA9IHRoaXM7XG4gICAgICAgIC8vIEluc3RlYWQgb2YgY29uc3RhbnRseSBjbGVhcmluZyBhbmQgc2NoZWR1bGluZyBhIHRpbWVyLCB3ZSByZWNvcmQgdGhlXG4gICAgICAgIC8vIHRpbWUgb2YgdGhlIGxhc3QgY2FsbC4gSWYgYSBzZWNvbmQgY2FsbCBjb21lcyBpbiBiZWZvcmUgdGhlIHRpbWVyIGZpcmVzLFxuICAgICAgICAvLyB0aGVuIHdlJ2xsIHJlc2NoZWR1bGUgaW4gdGhlIHJ1biBmdW5jdGlvbi4gRG9pbmcgdGhpcyBpcyBjb25zaWRlcmFibHlcbiAgICAgICAgLy8gZmFzdGVyLlxuICAgICAgICBsYXN0Q2FsbCA9IERhdGUubm93KCk7XG4gICAgICAgIC8vIE9ubHkgc2NoZWR1bGUgYSBuZXcgdGltZXIgaWYgd2UncmUgbm90IGN1cnJlbnRseSB3YWl0aW5nLlxuICAgICAgICBpZiAodGltZW91dElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN0YXJ0VGltZSA9IGxhc3RDYWxsO1xuICAgICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dChydW4sIG1zKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJCTE9DS0VEX1BBR0VTIiwiaXNCbG9ja2VkUGFnZSIsInBhZ2UiLCJpbmNsdWRlcyIsImNsZWFuQW1wUGF0aCIsInBhdGhuYW1lIiwibWF0Y2giLCJyZXBsYWNlIiwiZGVib3VuY2UiLCJmbiIsIm1zIiwibWF4V2FpdCIsIkluZmluaXR5IiwidGltZW91dElkIiwic3RhcnRUaW1lIiwibGFzdENhbGwiLCJhcmdzIiwiY29udGV4dCIsInJ1biIsIm5vdyIsIkRhdGUiLCJkaWZmIiwidW5kZWZpbmVkIiwiYXBwbHkiLCJzZXRUaW1lb3V0IiwicGFzc2VkQXJncyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/utils.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web-server.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web-server.js ***!
- \*************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ NextWebServer)\n/* harmony export */ });\n/* harmony import */ var _api_utils_web__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./api-utils/web */ \"(ssr)/../../node_modules/next/dist/esm/server/api-utils/web.js\");\n/* harmony import */ var _base_server__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base-server */ \"(ssr)/../../node_modules/next/dist/esm/server/base-server.js\");\n/* harmony import */ var _lib_etag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/etag */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/etag.js\");\n/* harmony import */ var _request_meta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./request-meta */ \"(ssr)/../../node_modules/next/dist/esm/server/request-meta.js\");\n/* harmony import */ var _response_cache_web__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./response-cache/web */ \"(ssr)/../../node_modules/next/dist/esm/server/response-cache/web.js\");\n/* harmony import */ var _lib_is_api_route__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../lib/is-api-route */ \"(ssr)/../../node_modules/next/dist/esm/lib/is-api-route.js\");\n/* harmony import */ var _shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n/* harmony import */ var _shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../shared/lib/router/utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/index.js\");\n/* harmony import */ var _server_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./server-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/server-utils.js\");\n/* harmony import */ var _shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../shared/lib/router/utils/route-regex */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js\");\n/* harmony import */ var _shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../shared/lib/router/utils/route-matcher */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js\");\n/* harmony import */ var _lib_incremental_cache__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./lib/incremental-cache */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/incremental-cache/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nclass NextWebServer extends _base_server__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n constructor(options){\n super(options);\n this.handleCatchallRenderRequest = async (req, res, parsedUrl)=>{\n let { pathname, query } = parsedUrl;\n if (!pathname) {\n throw new Error(\"pathname is undefined\");\n }\n // interpolate query information into page for dynamic route\n // so that rewritten paths are handled properly\n const normalizedPage = this.serverOptions.webServerConfig.pathname;\n if (pathname !== normalizedPage) {\n pathname = normalizedPage;\n if ((0,_shared_lib_router_utils__WEBPACK_IMPORTED_MODULE_7__.isDynamicRoute)(pathname)) {\n const routeRegex = (0,_shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_9__.getNamedRouteRegex)(pathname, false);\n const dynamicRouteMatcher = (0,_shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_10__.getRouteMatcher)(routeRegex);\n const defaultRouteMatches = dynamicRouteMatcher(pathname);\n const paramsResult = (0,_server_utils__WEBPACK_IMPORTED_MODULE_8__.normalizeDynamicRouteParams)(query, false, routeRegex, defaultRouteMatches);\n const normalizedParams = paramsResult.hasValidParams ? paramsResult.params : query;\n pathname = (0,_server_utils__WEBPACK_IMPORTED_MODULE_8__.interpolateDynamicPath)(pathname, normalizedParams, routeRegex);\n (0,_server_utils__WEBPACK_IMPORTED_MODULE_8__.normalizeVercelUrl)(req, true, Object.keys(routeRegex.routeKeys), true, routeRegex);\n }\n }\n // next.js core assumes page path without trailing slash\n pathname = (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_6__.removeTrailingSlash)(pathname);\n if (this.i18nProvider) {\n const { detectedLocale } = await this.i18nProvider.analyze(pathname);\n if (detectedLocale) {\n parsedUrl.query.__nextLocale = detectedLocale;\n }\n }\n const bubbleNoFallback = !!query._nextBubbleNoFallback;\n if ((0,_lib_is_api_route__WEBPACK_IMPORTED_MODULE_5__.isAPIRoute)(pathname)) {\n delete query._nextBubbleNoFallback;\n }\n try {\n await this.render(req, res, pathname, query, parsedUrl, true);\n return true;\n } catch (err) {\n if (err instanceof _base_server__WEBPACK_IMPORTED_MODULE_1__.NoFallbackError && bubbleNoFallback) {\n return false;\n }\n throw err;\n }\n };\n // Extend `renderOpts`.\n Object.assign(this.renderOpts, options.webServerConfig.extendRenderOpts);\n }\n async getIncrementalCache({ requestHeaders }) {\n const dev = !!this.renderOpts.dev;\n // incremental-cache is request specific\n // although can have shared caches in module scope\n // per-cache handler\n return new _lib_incremental_cache__WEBPACK_IMPORTED_MODULE_11__.IncrementalCache({\n dev,\n requestHeaders,\n requestProtocol: \"https\",\n pagesDir: this.enabledDirectories.pages,\n appDir: this.enabledDirectories.app,\n allowedRevalidateHeaderKeys: this.nextConfig.experimental.allowedRevalidateHeaderKeys,\n minimalMode: this.minimalMode,\n fetchCache: true,\n fetchCacheKeyPrefix: this.nextConfig.experimental.fetchCacheKeyPrefix,\n maxMemoryCacheSize: this.nextConfig.cacheMaxMemorySize,\n flushToDisk: false,\n CurCacheHandler: this.serverOptions.webServerConfig.incrementalCacheHandler,\n getPrerenderManifest: ()=>this.getPrerenderManifest(),\n // PPR is not supported in the edge runtime.\n experimental: {\n ppr: false\n }\n });\n }\n getResponseCache() {\n return new _response_cache_web__WEBPACK_IMPORTED_MODULE_4__[\"default\"](this.minimalMode);\n }\n async hasPage(page) {\n return page === this.serverOptions.webServerConfig.page;\n }\n getBuildId() {\n return this.serverOptions.webServerConfig.extendRenderOpts.buildId;\n }\n getEnabledDirectories() {\n return {\n app: this.serverOptions.webServerConfig.pagesType === \"app\",\n pages: this.serverOptions.webServerConfig.pagesType === \"pages\"\n };\n }\n getPagesManifest() {\n return {\n // keep same theme but server path doesn't need to be accurate\n [this.serverOptions.webServerConfig.pathname]: `server${this.serverOptions.webServerConfig.page}.js`\n };\n }\n getAppPathsManifest() {\n const page = this.serverOptions.webServerConfig.page;\n return {\n [this.serverOptions.webServerConfig.page]: `app${page}.js`\n };\n }\n attachRequestMeta(req, parsedUrl) {\n (0,_request_meta__WEBPACK_IMPORTED_MODULE_3__.addRequestMeta)(req, \"initQuery\", {\n ...parsedUrl.query\n });\n }\n getPrerenderManifest() {\n var _this_renderOpts;\n const { prerenderManifest } = this.serverOptions.webServerConfig;\n if (((_this_renderOpts = this.renderOpts) == null ? void 0 : _this_renderOpts.dev) || !prerenderManifest) {\n return {\n version: -1,\n routes: {},\n dynamicRoutes: {},\n notFoundRoutes: [],\n preview: {\n previewModeId: \"development-id\"\n }\n };\n }\n return prerenderManifest;\n }\n getNextFontManifest() {\n return this.serverOptions.webServerConfig.extendRenderOpts.nextFontManifest;\n }\n renderHTML(req, res, pathname, query, renderOpts) {\n const { renderToHTML } = this.serverOptions.webServerConfig;\n if (!renderToHTML) {\n throw new Error(\"Invariant: routeModule should be configured when rendering pages\");\n }\n // For edge runtime if the pathname hit as /_not-found entrypoint,\n // override the pathname to /404 for rendering\n if (pathname === (renderOpts.dev ? \"/not-found\" : \"/_not-found\")) {\n pathname = \"/404\";\n }\n return renderToHTML(req, res, pathname, query, Object.assign(renderOpts, {\n disableOptimizedLoading: true,\n runtime: \"experimental-edge\"\n }));\n }\n async sendRenderResult(_req, res, options) {\n res.setHeader(\"X-Edge-Runtime\", \"1\");\n // Add necessary headers.\n // @TODO: Share the isomorphic logic with server/send-payload.ts.\n if (options.poweredByHeader && options.type === \"html\") {\n res.setHeader(\"X-Powered-By\", \"Next.js\");\n }\n if (!res.getHeader(\"Content-Type\")) {\n res.setHeader(\"Content-Type\", options.result.contentType ? options.result.contentType : options.type === \"json\" ? \"application/json\" : \"text/html; charset=utf-8\");\n }\n let promise;\n if (options.result.isDynamic) {\n promise = options.result.pipeTo(res.transformStream.writable);\n } else {\n const payload = options.result.toUnchunkedString();\n res.setHeader(\"Content-Length\", String((0,_api_utils_web__WEBPACK_IMPORTED_MODULE_0__.byteLength)(payload)));\n if (options.generateEtags) {\n res.setHeader(\"ETag\", (0,_lib_etag__WEBPACK_IMPORTED_MODULE_2__.generateETag)(payload));\n }\n res.body(payload);\n }\n res.send();\n // If we have a promise, wait for it to resolve.\n if (promise) await promise;\n }\n async findPageComponents({ page, query, params, url: _url }) {\n const result = await this.serverOptions.webServerConfig.loadComponent(page);\n if (!result) return null;\n return {\n query: {\n ...query || {},\n ...params || {}\n },\n components: result\n };\n }\n // Below are methods that are not implemented by the web server as they are\n // handled by the upstream proxy (edge runtime or node server).\n async runApi() {\n // This web server does not need to handle API requests.\n return true;\n }\n async handleApiRequest() {\n // Edge API requests are handled separately in minimal mode.\n return false;\n }\n loadEnvConfig() {\n // The web server does not need to load the env config. This is done by the\n // runtime already.\n }\n getPublicDir() {\n // Public files are not handled by the web server.\n return \"\";\n }\n getHasStaticDir() {\n return false;\n }\n async getFallback() {\n return \"\";\n }\n getFontManifest() {\n return undefined;\n }\n handleCompression() {\n // For the web server layer, compression is automatically handled by the\n // upstream proxy (edge runtime or node server) and we can simply skip here.\n }\n async handleUpgrade() {\n // The web server does not support web sockets.\n }\n async getFallbackErrorComponents(_url) {\n // The web server does not need to handle fallback errors in production.\n return null;\n }\n getRoutesManifest() {\n // The web server does not need to handle rewrite rules. This is done by the\n // upstream proxy (edge runtime or node server).\n return undefined;\n }\n getMiddleware() {\n // The web server does not need to handle middleware. This is done by the\n // upstream proxy (edge runtime or node server).\n return undefined;\n }\n getFilesystemPaths() {\n return new Set();\n }\n async getPrefetchRsc() {\n return null;\n }\n} //# sourceMappingURL=web-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi1zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUE2QztBQUNlO0FBQ2xCO0FBQ007QUFDSTtBQUNIO0FBQ3NDO0FBQzNCO0FBQzZDO0FBQzdCO0FBQ0Q7QUFDaEI7QUFDNUMsTUFBTWUsc0JBQXNCZCxvREFBVUE7SUFDakRlLFlBQVlDLE9BQU8sQ0FBQztRQUNoQixLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDQywyQkFBMkIsR0FBRyxPQUFPQyxLQUFLQyxLQUFLQztZQUNoRCxJQUFJLEVBQUVDLFFBQVEsRUFBRUMsS0FBSyxFQUFFLEdBQUdGO1lBQzFCLElBQUksQ0FBQ0MsVUFBVTtnQkFDWCxNQUFNLElBQUlFLE1BQU07WUFDcEI7WUFDQSw0REFBNEQ7WUFDNUQsK0NBQStDO1lBQy9DLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLGFBQWEsQ0FBQ0MsZUFBZSxDQUFDTCxRQUFRO1lBQ2xFLElBQUlBLGFBQWFHLGdCQUFnQjtnQkFDN0JILFdBQVdHO2dCQUNYLElBQUlqQix3RUFBY0EsQ0FBQ2MsV0FBVztvQkFDMUIsTUFBTU0sYUFBYWhCLHdGQUFrQkEsQ0FBQ1UsVUFBVTtvQkFDaEQsTUFBTU8sc0JBQXNCaEIsd0ZBQWVBLENBQUNlO29CQUM1QyxNQUFNRSxzQkFBc0JELG9CQUFvQlA7b0JBQ2hELE1BQU1TLGVBQWVwQiwwRUFBMkJBLENBQUNZLE9BQU8sT0FBT0ssWUFBWUU7b0JBQzNFLE1BQU1FLG1CQUFtQkQsYUFBYUUsY0FBYyxHQUFHRixhQUFhRyxNQUFNLEdBQUdYO29CQUM3RUQsV0FBV2IscUVBQXNCQSxDQUFDYSxVQUFVVSxrQkFBa0JKO29CQUM5RGxCLGlFQUFrQkEsQ0FBQ1MsS0FBSyxNQUFNZ0IsT0FBT0MsSUFBSSxDQUFDUixXQUFXUyxTQUFTLEdBQUcsTUFBTVQ7Z0JBQzNFO1lBQ0o7WUFDQSx3REFBd0Q7WUFDeEROLFdBQVdmLG1H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QUFDSixFQUVBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi1zZXJ2ZXIuanM/ZDk4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBieXRlTGVuZ3RoIH0gZnJvbSBcIi4vYXBpLXV0aWxzL3dlYlwiO1xuaW1wb3J0IEJhc2VTZXJ2ZXIsIHsgTm9GYWxsYmFja0Vycm9yIH0gZnJvbSBcIi4vYmFzZS1zZXJ2ZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlRVRhZyB9IGZyb20gXCIuL2xpYi9ldGFnXCI7XG5pbXBvcnQgeyBhZGRSZXF1ZXN0TWV0YSB9IGZyb20gXCIuL3JlcXVlc3QtbWV0YVwiO1xuaW1wb3J0IFdlYlJlc3BvbnNlQ2FjaGUgZnJvbSBcIi4vcmVzcG9uc2UtY2FjaGUvd2ViXCI7XG5pbXBvcnQgeyBpc0FQSVJvdXRlIH0gZnJvbSBcIi4uL2xpYi9pcy1hcGktcm91dGVcIjtcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoXCI7XG5pbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlsc1wiO1xuaW1wb3J0IHsgaW50ZXJwb2xhdGVEeW5hbWljUGF0aCwgbm9ybWFsaXplVmVyY2VsVXJsLCBub3JtYWxpemVEeW5hbWljUm91dGVQYXJhbXMgfSBmcm9tIFwiLi9zZXJ2ZXItdXRpbHNcIjtcbmltcG9ydCB7IGdldE5hbWVkUm91dGVSZWdleCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1yZWdleFwiO1xuaW1wb3J0IHsgZ2V0Um91dGVNYXRjaGVyIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXJcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsQ2FjaGUgfSBmcm9tIFwiLi9saWIvaW5jcmVtZW50YWwtY2FjaGVcIjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5leHRXZWJTZXJ2ZXIgZXh0ZW5kcyBCYXNlU2VydmVyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKXtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2F0Y2hhbGxSZW5kZXJSZXF1ZXN0ID0gYXN5bmMgKHJlcSwgcmVzLCBwYXJzZWRVcmwpPT57XG4gICAgICAgICAgICBsZXQgeyBwYXRobmFtZSwgcXVlcnkgfSA9IHBhcnNlZFVybDtcbiAgICAgICAgICAgIGlmICghcGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwYXRobmFtZSBpcyB1bmRlZmluZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpbnRlcnBvbGF0ZSBxdWVyeSBpbmZvcm1hdGlvbiBpbnRvIHBhZ2UgZm9yIGR5bmFtaWMgcm91dGVcbiAgICAgICAgICAgIC8vIHNvIHRoYXQgcmV3cml0dGVuIHBhdGhzIGFyZSBoYW5kbGVkIHByb3Blcmx5XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkUGFnZSA9IHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWcucGF0aG5hbWU7XG4gICAgICAgICAgICBpZiAocGF0aG5hbWUgIT09IG5vcm1hbGl6ZWRQYWdlKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBub3JtYWxpemVkUGFnZTtcbiAgICAgICAgICAgICAgICBpZiAoaXNEeW5hbWljUm91dGUocGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlUmVnZXggPSBnZXROYW1lZFJvdXRlUmVnZXgocGF0aG5hbWUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZHluYW1pY1JvdXRlTWF0Y2hlciA9IGdldFJvdXRlTWF0Y2hlcihyb3V0ZVJlZ2V4KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdFJvdXRlTWF0Y2hlcyA9IGR5bmFtaWNSb3V0ZU1hdGNoZXIocGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXNSZXN1bHQgPSBub3JtYWxpemVEeW5hbWljUm91dGVQYXJhbXMocXVlcnksIGZhbHNlLCByb3V0ZVJlZ2V4LCBkZWZhdWx0Um91dGVNYXRjaGVzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFBhcmFtcyA9IHBhcmFtc1Jlc3VsdC5oYXNWYWxpZFBhcmFtcyA/IHBhcmFtc1Jlc3VsdC5wYXJhbXMgOiBxdWVyeTtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBpbnRlcnBvbGF0ZUR5bmFtaWNQYXRoKHBhdGhuYW1lLCBub3JtYWxpemVkUGFyYW1zLCByb3V0ZVJlZ2V4KTtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplVmVyY2VsVXJsKHJlcSwgdHJ1ZSwgT2JqZWN0LmtleXMocm91dGVSZWdleC5yb3V0ZUtleXMpLCB0cnVlLCByb3V0ZVJlZ2V4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBuZXh0LmpzIGNvcmUgYXNzdW1lcyBwYWdlIHBhdGggd2l0aG91dCB0cmFpbGluZyBzbGFzaFxuICAgICAgICAgICAgcGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmkxOG5Qcm92aWRlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGV0ZWN0ZWRMb2NhbGUgfSA9IGF3YWl0IHRoaXMuaTE4blByb3ZpZGVyLmFuYWx5emUocGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChkZXRlY3RlZExvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnkuX19uZXh0TG9jYWxlID0gZGV0ZWN0ZWRMb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYnViYmxlTm9GYWxsYmFjayA9ICEhcXVlcnkuX25leHRCdWJibGVOb0ZhbGxiYWNrO1xuICAgICAgICAgICAgaWYgKGlzQVBJUm91dGUocGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5Ll9uZXh0QnViYmxlTm9GYWxsYmFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW5kZXIocmVxLCByZXMsIHBhdGhuYW1lLCBxdWVyeSwgcGFyc2VkVXJsLCB0cnVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb0ZhbGxiYWNrRXJyb3IgJiYgYnViYmxlTm9GYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgLy8gRXh0ZW5kIGByZW5kZXJPcHRzYC5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnJlbmRlck9wdHMsIG9wdGlvbnMud2ViU2VydmVyQ29uZmlnLmV4dGVuZFJlbmRlck9wdHMpO1xuICAgIH1cbiAgICBhc3luYyBnZXRJbmNyZW1lbnRhbENhY2hlKHsgcmVxdWVzdEhlYWRlcnMgfSkge1xuICAgICAgICBjb25zdCBkZXYgPSAhIXRoaXMucmVuZGVyT3B0cy5kZXY7XG4gICAgICAgIC8vIGluY3JlbWVudGFsLWNhY2hlIGlzIHJlcXVlc3Qgc3BlY2lmaWNcbiAgICAgICAgLy8gYWx0aG91Z2ggY2FuIGhhdmUgc2hhcmVkIGNhY2hlcyBpbiBtb2R1bGUgc2NvcGVcbiAgICAgICAgLy8gcGVyLWNhY2hlIGhhbmRsZXJcbiAgICAgICAgcmV0dXJuIG5ldyBJbmNyZW1lbnRhbENhY2hlKHtcbiAgICAgICAgICAgIGRldixcbiAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJzLFxuICAgICAgICAgICAgcmVxdWVzdFByb3RvY29sOiBcImh0dHBzXCIsXG4gICAgICAgICAgICBwYWdlc0RpcjogdGhpcy5lbmFibGVkRGlyZWN0b3JpZXMucGFnZXMsXG4gICAgICAgICAgICBhcHBEaXI6IHRoaXMuZW5hYmxlZERpcmVjdG9yaWVzLmFwcCxcbiAgICAgICAgICAgIGFsbG93ZWRSZXZhbGlkYXRlSGVhZGVyS2V5czogdGhpcy5uZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5hbGxvd2VkUmV2YWxpZGF0ZUhlYWRlcktleXMsXG4gICAgICAgICAgICBtaW5pbWFsTW9kZTogdGhpcy5taW5pbWFsTW9kZSxcbiAgICAgICAgICAgIGZldGNoQ2FjaGU6IHRydWUsXG4gICAgICAgICAgICBmZXRjaENhY2hlS2V5UHJlZml4OiB0aGlzLm5leHRDb25maWcuZXhwZXJpbWVudGFsLmZldGNoQ2FjaGVLZXlQcmVmaXgsXG4gICAgICAgICAgICBtYXhNZW1vcnlDYWNoZVNpemU6IHRoaXMubmV4dENvbmZpZy5jYWNoZU1heE1lbW9yeVNpemUsXG4gICAgICAgICAgICBmbHVzaFRvRGlzazogZmFsc2UsXG4gICAgICAgICAgICBDdXJDYWNoZUhhbmRsZXI6IHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWcuaW5jcmVtZW50YWxDYWNoZUhhbmRsZXIsXG4gICAgICAgICAgICBnZXRQcmVyZW5kZXJNYW5pZmVzdDogKCk9PnRoaXMuZ2V0UHJlcmVuZGVyTWFuaWZlc3QoKSxcbiAgICAgICAgICAgIC8vIFBQUiBpcyBub3Qgc3VwcG9ydGVkIGluIHRoZSBlZGdlIHJ1bnRpbWUuXG4gICAgICAgICAgICBleHBlcmltZW50YWw6IHtcbiAgICAgICAgICAgICAgICBwcHI6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRSZXNwb25zZUNhY2hlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFdlYlJlc3BvbnNlQ2FjaGUodGhpcy5taW5pbWFsTW9kZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhc1BhZ2UocGFnZSkge1xuICAgICAgICByZXR1cm4gcGFnZSA9PT0gdGhpcy5zZXJ2ZXJPcHRpb25zLndlYlNlcnZlckNvbmZpZy5wYWdlO1xuICAgIH1cbiAgICBnZXRCdWlsZElkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2ZXJPcHRpb25zLndlYlNlcnZlckNvbmZpZy5leHRlbmRSZW5kZXJPcHRzLmJ1aWxkSWQ7XG4gICAgfVxuICAgIGdldEVuYWJsZWREaXJlY3RvcmllcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFwcDogdGhpcy5zZXJ2ZXJPcHRpb25zLndlYlNlcnZlckNvbmZpZy5wYWdlc1R5cGUgPT09IFwiYXBwXCIsXG4gICAgICAgICAgICBwYWdlczogdGhpcy5zZXJ2ZXJPcHRpb25zLndlYlNlcnZlckNvbmZpZy5wYWdlc1R5cGUgPT09IFwicGFnZXNcIlxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRQYWdlc01hbmlmZXN0KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy8ga2VlcCBzYW1lIHRoZW1lIGJ1dCBzZXJ2ZXIgcGF0aCBkb2Vzbid0IG5lZWQgdG8gYmUgYWNjdXJhdGVcbiAgICAgICAgICAgIFt0aGlzLnNlcnZlck9wdGlvbnMud2ViU2VydmVyQ29uZmlnLnBhdGhuYW1lXTogYHNlcnZlciR7dGhpcy5zZXJ2ZXJPcHRpb25zLndlYlNlcnZlckNvbmZpZy5wYWdlfS5qc2BcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0QXBwUGF0aHNNYW5pZmVzdCgpIHtcbiAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWcucGFnZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFt0aGlzLnNlcnZlck9wdGlvbnMud2ViU2VydmVyQ29uZmlnLnBhZ2VdOiBgYXBwJHtwYWdlfS5qc2BcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXR0YWNoUmVxdWVzdE1ldGEocmVxLCBwYXJzZWRVcmwpIHtcbiAgICAgICAgYWRkUmVxdWVzdE1ldGEocmVxLCBcImluaXRRdWVyeVwiLCB7XG4gICAgICAgICAgICAuLi5wYXJzZWRVcmwucXVlcnlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFByZXJlbmRlck1hbmlmZXN0KCkge1xuICAgICAgICB2YXIgX3RoaXNfcmVuZGVyT3B0cztcbiAgICAgICAgY29uc3QgeyBwcmVyZW5kZXJNYW5pZmVzdCB9ID0gdGhpcy5zZXJ2ZXJPcHRpb25zLndlYlNlcnZlckNvbmZpZztcbiAgICAgICAgaWYgKCgoX3RoaXNfcmVuZGVyT3B0cyA9IHRoaXMucmVuZGVyT3B0cykgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX3JlbmRlck9wdHMuZGV2KSB8fCAhcHJlcmVuZGVyTWFuaWZlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmVyc2lvbjogLTEsXG4gICAgICAgICAgICAgICAgcm91dGVzOiB7fSxcbiAgICAgICAgICAgICAgICBkeW5hbWljUm91dGVzOiB7fSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZFJvdXRlczogW10sXG4gICAgICAgICAgICAgICAgcHJldmlldzoge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3TW9kZUlkOiBcImRldmVsb3BtZW50LWlkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmVyZW5kZXJNYW5pZmVzdDtcbiAgICB9XG4gICAgZ2V0TmV4dEZvbnRNYW5pZmVzdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWcuZXh0ZW5kUmVuZGVyT3B0cy5uZXh0Rm9udE1hbmlmZXN0O1xuICAgIH1cbiAgICByZW5kZXJIVE1MKHJlcSwgcmVzLCBwYXRobmFtZSwgcXVlcnksIHJlbmRlck9wdHMpIHtcbiAgICAgICAgY29uc3QgeyByZW5kZXJUb0hUTUwgfSA9IHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWc7XG4gICAgICAgIGlmICghcmVuZGVyVG9IVE1MKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IHJvdXRlTW9kdWxlIHNob3VsZCBiZSBjb25maWd1cmVkIHdoZW4gcmVuZGVyaW5nIHBhZ2VzXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBlZGdlIHJ1bnRpbWUgaWYgdGhlIHBhdGhuYW1lIGhpdCBhcyAvX25vdC1mb3VuZCBlbnRyeXBvaW50LFxuICAgICAgICAvLyBvdmVycmlkZSB0aGUgcGF0aG5hbWUgdG8gLzQwNCBmb3IgcmVuZGVyaW5nXG4gICAgICAgIGlmIChwYXRobmFtZSA9PT0gKHJlbmRlck9wdHMuZGV2ID8gXCIvbm90LWZvdW5kXCIgOiBcIi9fbm90LWZvdW5kXCIpKSB7XG4gICAgICAgICAgICBwYXRobmFtZSA9IFwiLzQwNFwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZW5kZXJUb0hUTUwocmVxLCByZXMsIHBhdGhuYW1lLCBxdWVyeSwgT2JqZWN0LmFzc2lnbihyZW5kZXJPcHRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZzogdHJ1ZSxcbiAgICAgICAgICAgIHJ1bnRpbWU6IFwiZXhwZXJpbWVudGFsLWVkZ2VcIlxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGFzeW5jIHNlbmRSZW5kZXJSZXN1bHQoX3JlcSwgcmVzLCBvcHRpb25zKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJYLUVkZ2UtUnVudGltZVwiLCBcIjFcIik7XG4gICAgICAgIC8vIEFkZCBuZWNlc3NhcnkgaGVhZGVycy5cbiAgICAgICAgLy8gQFRPRE86IFNoYXJlIHRoZSBpc29tb3JwaGljIGxvZ2ljIHdpdGggc2VydmVyL3NlbmQtcGF5bG9hZC50cy5cbiAgICAgICAgaWYgKG9wdGlvbnMucG93ZXJlZEJ5SGVhZGVyICYmIG9wdGlvbnMudHlwZSA9PT0gXCJodG1sXCIpIHtcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJYLVBvd2VyZWQtQnlcIiwgXCJOZXh0LmpzXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmVzLmdldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiKSkge1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBvcHRpb25zLnJlc3VsdC5jb250ZW50VHlwZSA/IG9wdGlvbnMucmVzdWx0LmNvbnRlbnRUeXBlIDogb3B0aW9ucy50eXBlID09PSBcImpzb25cIiA/IFwiYXBwbGljYXRpb24vanNvblwiIDogXCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIik7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByb21pc2U7XG4gICAgICAgIGlmIChvcHRpb25zLnJlc3VsdC5pc0R5bmFtaWMpIHtcbiAgICAgICAgICAgIHByb21pc2UgPSBvcHRpb25zLnJlc3VsdC5waXBlVG8ocmVzLnRyYW5zZm9ybVN0cmVhbS53cml0YWJsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gb3B0aW9ucy5yZXN1bHQudG9VbmNodW5rZWRTdHJpbmcoKTtcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LUxlbmd0aFwiLCBTdHJpbmcoYnl0ZUxlbmd0aChwYXlsb2FkKSkpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZ2VuZXJhdGVFdGFncykge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJFVGFnXCIsIGdlbmVyYXRlRVRhZyhwYXlsb2FkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXMuYm9keShwYXlsb2FkKTtcbiAgICAgICAgfVxuICAgICAgICByZXMuc2VuZCgpO1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgcHJvbWlzZSwgd2FpdCBmb3IgaXQgdG8gcmVzb2x2ZS5cbiAgICAgICAgaWYgKHByb21pc2UpIGF3YWl0IHByb21pc2U7XG4gICAgfVxuICAgIGFzeW5jIGZpbmRQYWdlQ29tcG9uZW50cyh7IHBhZ2UsIHF1ZXJ5LCBwYXJhbXMsIHVybDogX3VybCB9KSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc2VydmVyT3B0aW9ucy53ZWJTZXJ2ZXJDb25maWcubG9hZENvbXBvbmVudChwYWdlKTtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgICAgICAuLi5xdWVyeSB8fCB7fSxcbiAgICAgICAgICAgICAgICAuLi5wYXJhbXMgfHwge31cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wb25lbnRzOiByZXN1bHRcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy8gQmVsb3cgYXJlIG1ldGhvZHMgdGhhdCBhcmUgbm90IGltcGxlbWVudGVkIGJ5IHRoZSB3ZWIgc2VydmVyIGFzIHRoZXkgYXJlXG4gICAgLy8gaGFuZGxlZCBieSB0aGUgdXBzdHJlYW0gcHJveHkgKGVkZ2UgcnVudGltZSBvciBub2RlIHNlcnZlcikuXG4gICAgYXN5bmMgcnVuQXBpKCkge1xuICAgICAgICAvLyBUaGlzIHdlYiBzZXJ2ZXIgZG9lcyBub3QgbmVlZCB0byBoYW5kbGUgQVBJIHJlcXVlc3RzLlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlQXBpUmVxdWVzdCgpIHtcbiAgICAgICAgLy8gRWRnZSBBUEkgcmVxdWVzdHMgYXJlIGhhbmRsZWQgc2VwYXJhdGVseSBpbiBtaW5pbWFsIG1vZGUuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbG9hZEVudkNvbmZpZygpIHtcbiAgICAvLyBUaGUgd2ViIHNlcnZlciBkb2VzIG5vdCBuZWVkIHRvIGxvYWQgdGhlIGVudiBjb25maWcuIFRoaXMgaXMgZG9uZSBieSB0aGVcbiAgICAvLyBydW50aW1lIGFscmVhZHkuXG4gICAgfVxuICAgIGdldFB1YmxpY0RpcigpIHtcbiAgICAgICAgLy8gUHVibGljIGZpbGVzIGFyZSBub3QgaGFuZGxlZCBieSB0aGUgd2ViIHNlcnZlci5cbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGdldEhhc1N0YXRpY0RpcigpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBhc3luYyBnZXRGYWxsYmFjaygpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGdldEZvbnRNYW5pZmVzdCgpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaGFuZGxlQ29tcHJlc3Npb24oKSB7XG4gICAgLy8gRm9yIHRoZSB3ZWIgc2VydmVyIGxheWVyLCBjb21wcmVzc2lvbiBpcyBhdXRvbWF0aWNhbGx5IGhhbmRsZWQgYnkgdGhlXG4gICAgLy8gdXBzdHJlYW0gcHJveHkgKGVkZ2UgcnVudGltZSBvciBub2RlIHNlcnZlcikgYW5kIHdlIGNhbiBzaW1wbHkgc2tpcCBoZXJlLlxuICAgIH1cbiAgICBhc3luYyBoYW5kbGVVcGdyYWRlKCkge1xuICAgIC8vIFRoZSB3ZWIgc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgd2ViIHNvY2tldHMuXG4gICAgfVxuICAgIGFzeW5jIGdldEZhbGxiYWNrRXJyb3JDb21wb25lbnRzKF91cmwpIHtcbiAgICAgICAgLy8gVGhlIHdlYiBzZXJ2ZXIgZG9lcyBub3QgbmVlZCB0byBoYW5kbGUgZmFsbGJhY2sgZXJyb3JzIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBnZXRSb3V0ZXNNYW5pZmVzdCgpIHtcbiAgICAgICAgLy8gVGhlIHdlYiBzZXJ2ZXIgZG9lcyBub3QgbmVlZCB0byBoYW5kbGUgcmV3cml0ZSBydWxlcy4gVGhpcyBpcyBkb25lIGJ5IHRoZVxuICAgICAgICAvLyB1cHN0cmVhbSBwcm94eSAoZWRnZSBydW50aW1lIG9yIG5vZGUgc2VydmVyKS5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZ2V0TWlkZGxld2FyZSgpIHtcbiAgICAgICAgLy8gVGhlIHdlYiBzZXJ2ZXIgZG9lcyBub3QgbmVlZCB0byBoYW5kbGUgbWlkZGxld2FyZS4gVGhpcyBpcyBkb25lIGJ5IHRoZVxuICAgICAgICAvLyB1cHN0cmVhbSBwcm94eSAoZWRnZSBydW50aW1lIG9yIG5vZGUgc2VydmVyKS5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZ2V0RmlsZXN5c3RlbVBhdGhzKCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldCgpO1xuICAgIH1cbiAgICBhc3luYyBnZXRQcmVmZXRjaFJzYygpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13ZWItc2VydmVyLmpzLm1hcCJdLCJuYW1lcyI6WyJieXRlTGVuZ3RoIiwiQmFzZVNlcnZlciIsIk5vRmFsbGJhY2tFcnJvciIsImdlbmVyYXRlRVRhZyIsImFkZFJlcXVlc3RNZXRhIiwiV2ViUmVzcG9uc2VDYWNoZSIsImlzQVBJUm91dGUiLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwiaXNEeW5hbWljUm91dGUiLCJpbnRlcnBvbGF0ZUR5bmFtaWNQYXRoIiwibm9ybWFsaXplVmVyY2VsVXJsIiwibm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zIiwiZ2V0TmFtZWRSb3V0ZVJlZ2V4IiwiZ2V0Um91dGVNYXRjaGVyIiwiSW5jcmVtZW50YWxDYWNoZSIsIk5leHRXZWJTZXJ2ZXIiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJoYW5kbGVDYXRjaGFsbFJlbmRlclJlcXVlc3QiLCJyZXEiLCJyZXMiLCJwYXJzZWRVcmwiLCJwYXRobmFtZSIsInF1ZXJ5IiwiRXJyb3IiLCJub3JtYWxpemVkUGFnZSIsInNlcnZlck9wdGlvbnMiLCJ3ZWJTZXJ2ZXJDb25maWciLCJyb3V0ZVJlZ2V4IiwiZHluYW1pY1JvdXRlTWF0Y2hlciIsImRlZmF1bHRSb3V0ZU1hdGNoZXMiLCJwYXJhbXNSZXN1bHQiLCJub3JtYWxpemVkUGFyYW1zIiwiaGFzVmFsaWRQYXJhbXMiLCJwYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwicm91dGVLZXlzIiwiaTE4blByb3ZpZGVyIiwiZGV0ZWN0ZWRMb2NhbGUiLCJhbmFseXplIiwiX19uZXh0TG9jYWxlIiwiYnViYmxlTm9GYWxsYmFjayIsIl9uZXh0QnViYmxlTm9GYWxsYmFjayIsInJlbmRlciIsImVyciIsImFzc2lnbiIsInJlbmRlck9wdHMiLCJleHRlbmRSZW5kZXJPcHRzIiwiZ2V0SW5jcmVtZW50YWxDYWNoZSIsInJlcXVlc3RIZWFkZXJzIiwiZGV2IiwicmVxdWVzdFByb3RvY29sIiwicGFnZXNEaXIiLCJlbmFibGVkRGlyZWN0b3JpZXMiLCJwYWdlcyIsImFwcERpciIsImFwcCIsImFsbG93ZWRSZXZhbGlkYXRlSGVhZGVyS2V5cyIsIm5leHRDb25maWciLCJleHBlcmltZW50YWwiLCJtaW5pbWFsTW9kZSIsImZldGNoQ2FjaGUiLCJmZXRjaENhY2hlS2V5UHJlZml4IiwibWF4TWVtb3J5Q2FjaGVTaXplIiwiY2FjaGVNYXhNZW1vcnlTaXplIiwiZmx1c2hUb0Rpc2siLCJDdXJDYWNoZUhhbmRsZXIiLCJpbmNyZW1lbnRhbENhY2hlSGFuZGxlciIsImdldFByZXJlbmRlck1hbmlmZXN0IiwicHByIiwiZ2V0UmVzcG9uc2VDYWNoZSIsImhhc1BhZ2UiLCJwYWdlIiwiZ2V0QnVpbGRJZCIsImJ1aWxkSWQiLCJnZXRFbmFibGVkRGlyZWN0b3JpZXMiLCJwYWdlc1R5cGUiLCJnZXRQYWdlc01hbmlmZXN0IiwiZ2V0QXBwUGF0aHNNYW5pZmVzdCIsImF0dGFjaFJlcXVlc3RNZXRhIiwiX3RoaXNfcmVuZGVyT3B0cyIsInByZXJlbmRlck1hbmlmZXN0IiwidmVyc2lvbiIsInJvdXRlcyIsImR5bmFtaWNSb3V0ZXMiLCJub3RGb3VuZFJvdXRlcyIsInByZXZpZXciLCJwcmV2aWV3TW9kZUlkIiwiZ2V0TmV4dEZvbnRNYW5pZmVzdCIsIm5leHRGb250TWFuaWZlc3QiLCJyZW5kZXJIVE1MIiwicmVuZGVyVG9IVE1MIiwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciLCJydW50aW1lIiwic2VuZFJlbmRlclJlc3VsdCIsIl9yZXEiLCJzZXRIZWFkZXIiLCJwb3dlcmVkQnlIZWFkZXIiLCJ0eXBlIiwiZ2V0SGVhZGVyIiwicmVzdWx0IiwiY29udGVudFR5cGUiLCJwcm9taXNlIiwiaXNEeW5hbWljIiwicGlwZVRvIiwidHJhbnNmb3JtU3RyZWFtIiwid3JpdGFibGUiLCJwYXlsb2FkIiwidG9VbmNodW5rZWRTdHJpbmciLCJTdHJpbmciLCJnZW5lcmF0ZUV0YWdzIiwiYm9keSIsInNlbmQiLCJmaW5kUGFnZUNvbXBvbmVudHMiLCJ1cmwiLCJfdXJsIiwibG9hZENvbXBvbmVudCIsImNvbXBvbmVudHMiLCJydW5BcGkiLCJoYW5kbGVBcGlSZXF1ZXN0IiwibG9hZEVudkNvbmZpZyIsImdldFB1YmxpY0RpciIsImdldEhhc1N0YXRpY0RpciIsImdldEZhbGxiYWNrIiwiZ2V0Rm9udE1hbmlmZXN0IiwidW5kZWZpbmVkIiwiaGFuZGxlQ29tcHJlc3Npb24iLCJoYW5kbGVVcGdyYWRlIiwiZ2V0RmFsbGJhY2tFcnJvckNvbXBvbmVudHMiLCJnZXRSb3V0ZXNNYW5pZmVzdCIsImdldE1pZGRsZXdhcmUiLCJnZXRGaWxlc3lzdGVtUGF0aHMiLCJTZXQiLCJnZXRQcmVmZXRjaFJzYyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web-server.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/adapter.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/adapter.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adapter: () => (/* binding */ adapter)\n/* harmony export */ });\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./error */ \"(ssr)/../../node_modules/next/dist/esm/server/web/error.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"(ssr)/../../node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _spec_extension_fetch_event__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./spec-extension/fetch-event */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js\");\n/* harmony import */ var _spec_extension_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./spec-extension/request */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/request.js\");\n/* harmony import */ var _spec_extension_response__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./spec-extension/response */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/response.js\");\n/* harmony import */ var _shared_lib_router_utils_relativize_url__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/lib/router/utils/relativize-url */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js\");\n/* harmony import */ var _next_url__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./next-url */ \"(ssr)/../../node_modules/next/dist/esm/server/web/next-url.js\");\n/* harmony import */ var _internal_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internal-utils */ \"(ssr)/../../node_modules/next/dist/esm/server/internal-utils.js\");\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../lib/constants */ \"(ssr)/../../node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _globals__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./globals */ \"(ssr)/../../node_modules/next/dist/esm/server/web/globals.js\");\n/* harmony import */ var _async_storage_request_async_storage_wrapper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../async-storage/request-async-storage-wrapper */ \"(ssr)/../../node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js\");\n/* harmony import */ var _client_components_request_async_storage_external__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../client/components/request-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?b6eb\");\n/* harmony import */ var _lib_trace_tracer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../lib/trace/tracer */ \"(ssr)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass NextRequestHint extends _spec_extension_request__WEBPACK_IMPORTED_MODULE_3__.NextRequest {\n constructor(params){\n super(params.input, params.init);\n this.sourcePage = params.page;\n }\n get request() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n respondWith() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n waitUntil() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n}\nconst headersGetter = {\n keys: (headers)=>Array.from(headers.keys()),\n get: (headers, key)=>headers.get(key) ?? undefined\n};\nlet propagator = (request, fn)=>{\n const tracer = (0,_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_14__.getTracer)();\n return tracer.withPropagatedContext(request.headers, fn, headersGetter);\n};\nlet testApisIntercepted = false;\nfunction ensureTestApisIntercepted() {\n if (!testApisIntercepted) {\n testApisIntercepted = true;\n if (process.env.NEXT_PRIVATE_TEST_PROXY === \"true\") {\n const { interceptTestApis, wrapRequestHandler } = __webpack_require__(/*! next/dist/experimental/testmode/server-edge */ \"(ssr)/../../node_modules/next/dist/experimental/testmode/server-edge.js\");\n interceptTestApis();\n propagator = wrapRequestHandler(propagator);\n }\n }\n}\nasync function adapter(params) {\n ensureTestApisIntercepted();\n await (0,_globals__WEBPACK_IMPORTED_MODULE_11__.ensureInstrumentationRegistered)();\n // TODO-APP: use explicit marker for this\n const isEdgeRendering = typeof self.__BUILD_MANIFEST !== \"undefined\";\n const prerenderManifest = typeof self.__PRERENDER_MANIFEST === \"string\" ? JSON.parse(self.__PRERENDER_MANIFEST) : undefined;\n params.request.url = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_8__.normalizeRscURL)(params.request.url);\n const requestUrl = new _next_url__WEBPACK_IMPORTED_MODULE_6__.NextURL(params.request.url, {\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n // Iterator uses an index to keep track of the current iteration. Because of deleting and appending below we can't just use the iterator.\n // Instead we use the keys before iteration.\n const keys = [\n ...requestUrl.searchParams.keys()\n ];\n for (const key of keys){\n const value = requestUrl.searchParams.getAll(key);\n if (key !== _lib_constants__WEBPACK_IMPORTED_MODULE_10__.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_lib_constants__WEBPACK_IMPORTED_MODULE_10__.NEXT_QUERY_PARAM_PREFIX)) {\n const normalizedKey = key.substring(_lib_constants__WEBPACK_IMPORTED_MODULE_10__.NEXT_QUERY_PARAM_PREFIX.length);\n requestUrl.searchParams.delete(normalizedKey);\n for (const val of value){\n requestUrl.searchParams.append(normalizedKey, val);\n }\n requestUrl.searchParams.delete(key);\n }\n }\n // Ensure users only see page requests, never data requests.\n const buildId = requestUrl.buildId;\n requestUrl.buildId = \"\";\n const isDataReq = params.request.headers[\"x-nextjs-data\"];\n if (isDataReq && requestUrl.pathname === \"/index\") {\n requestUrl.pathname = \"/\";\n }\n const requestHeaders = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.fromNodeOutgoingHttpHeaders)(params.request.headers);\n const flightHeaders = new Map();\n // Parameters should only be stripped for middleware\n if (!isEdgeRendering) {\n for (const param of _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_9__.FLIGHT_PARAMETERS){\n const key = param.toString().toLowerCase();\n const value = requestHeaders.get(key);\n if (value) {\n flightHeaders.set(key, requestHeaders.get(key));\n requestHeaders.delete(key);\n }\n }\n }\n const normalizeUrl = false ? 0 : requestUrl;\n const request = new NextRequestHint({\n page: params.page,\n // Strip internal query parameters off the request.\n input: (0,_internal_utils__WEBPACK_IMPORTED_MODULE_7__.stripInternalSearchParams)(normalizeUrl, true).toString(),\n init: {\n body: params.request.body,\n geo: params.request.geo,\n headers: requestHeaders,\n ip: params.request.ip,\n method: params.request.method,\n nextConfig: params.request.nextConfig,\n signal: params.request.signal\n }\n });\n /**\n * This allows to identify the request as a data request. The user doesn't\n * need to know about this property neither use it. We add it for testing\n * purposes.\n */ if (isDataReq) {\n Object.defineProperty(request, \"__isData\", {\n enumerable: false,\n value: true\n });\n }\n if (!globalThis.__incrementalCache && params.IncrementalCache) {\n globalThis.__incrementalCache = new params.IncrementalCache({\n appDir: true,\n fetchCache: true,\n minimalMode: \"development\" !== \"development\",\n fetchCacheKeyPrefix: undefined,\n dev: \"development\" === \"development\",\n requestHeaders: params.request.headers,\n requestProtocol: \"https\",\n getPrerenderManifest: ()=>{\n return {\n version: -1,\n routes: {},\n dynamicRoutes: {},\n notFoundRoutes: [],\n preview: {\n previewModeId: \"development-id\"\n }\n };\n }\n });\n }\n const event = new _spec_extension_fetch_event__WEBPACK_IMPORTED_MODULE_2__.NextFetchEvent({\n request,\n page: params.page\n });\n let response;\n let cookiesFromResponse;\n response = await propagator(request, ()=>{\n // we only care to make async storage available for middleware\n const isMiddleware = params.page === \"/middleware\" || params.page === \"/src/middleware\";\n if (isMiddleware) {\n return _async_storage_request_async_storage_wrapper__WEBPACK_IMPORTED_MODULE_12__.RequestAsyncStorageWrapper.wrap(_client_components_request_async_storage_external__WEBPACK_IMPORTED_MODULE_13__.requestAsyncStorage, {\n req: request,\n renderOpts: {\n onUpdateCookies: (cookies)=>{\n cookiesFromResponse = cookies;\n },\n // @ts-expect-error: TODO: investigate why previewProps isn't on RenderOpts\n previewProps: (prerenderManifest == null ? void 0 : prerenderManifest.preview) || {\n previewModeId: \"development-id\",\n previewModeEncryptionKey: \"\",\n previewModeSigningKey: \"\"\n }\n }\n }, ()=>params.handler(request, event));\n }\n return params.handler(request, event);\n });\n // check if response is a Response object\n if (response && !(response instanceof Response)) {\n throw new TypeError(\"Expected an instance of Response to be returned\");\n }\n if (response && cookiesFromResponse) {\n response.headers.set(\"set-cookie\", cookiesFromResponse);\n }\n /**\n * For rewrites we must always include the locale in the final pathname\n * so we re-create the NextURL forcing it to include it when the it is\n * an internal rewrite. Also we make sure the outgoing rewrite URL is\n * a data URL if the request was a data request.\n */ const rewrite = response == null ? void 0 : response.headers.get(\"x-middleware-rewrite\");\n if (response && rewrite) {\n const rewriteUrl = new _next_url__WEBPACK_IMPORTED_MODULE_6__.NextURL(rewrite, {\n forceLocale: true,\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n if (true) {\n if (rewriteUrl.host === request.nextUrl.host) {\n rewriteUrl.buildId = buildId || rewriteUrl.buildId;\n response.headers.set(\"x-middleware-rewrite\", String(rewriteUrl));\n }\n }\n /**\n * When the request is a data request we must show if there was a rewrite\n * with an internal header so the client knows which component to load\n * from the data request.\n */ const relativizedRewrite = (0,_shared_lib_router_utils_relativize_url__WEBPACK_IMPORTED_MODULE_5__.relativizeURL)(String(rewriteUrl), String(requestUrl));\n if (isDataReq && // if the rewrite is external and external rewrite\n // resolving config is enabled don't add this header\n // so the upstream app can set it instead\n !(undefined && 0)) {\n response.headers.set(\"x-nextjs-rewrite\", relativizedRewrite);\n }\n }\n /**\n * For redirects we will not include the locale in case when it is the\n * default and we must also make sure the outgoing URL is a data one if\n * the incoming request was a data request.\n */ const redirect = response == null ? void 0 : response.headers.get(\"Location\");\n if (response && redirect && !isEdgeRendering) {\n const redirectURL = new _next_url__WEBPACK_IMPORTED_MODULE_6__.NextURL(redirect, {\n forceLocale: false,\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n /**\n * Responses created from redirects have immutable headers so we have\n * to clone the response to be able to modify it.\n */ response = new Response(response.body, response);\n if (true) {\n if (redirectURL.host === request.nextUrl.host) {\n redirectURL.buildId = buildId || redirectURL.buildId;\n response.headers.set(\"Location\", String(redirectURL));\n }\n }\n /**\n * When the request is a data request we can't use the location header as\n * it may end up with CORS error. Instead we map to an internal header so\n * the client knows the destination.\n */ if (isDataReq) {\n response.headers.delete(\"Location\");\n response.headers.set(\"x-nextjs-redirect\", (0,_shared_lib_router_utils_relativize_url__WEBPACK_IMPORTED_MODULE_5__.relativizeURL)(String(redirectURL), String(requestUrl)));\n }\n }\n const finalResponse = response ? response : _spec_extension_response__WEBPACK_IMPORTED_MODULE_4__.NextResponse.next();\n // Flight headers are not overridable / removable so they are applied at the end.\n const middlewareOverrideHeaders = finalResponse.headers.get(\"x-middleware-override-headers\");\n const overwrittenHeaders = [];\n if (middlewareOverrideHeaders) {\n for (const [key, value] of flightHeaders){\n finalResponse.headers.set(`x-middleware-request-${key}`, value);\n overwrittenHeaders.push(key);\n }\n if (overwrittenHeaders.length > 0) {\n finalResponse.headers.set(\"x-middleware-override-headers\", middlewareOverrideHeaders + \",\" + overwrittenHeaders.join(\",\"));\n }\n }\n return {\n response: finalResponse,\n waitUntil: Promise.all(event[_spec_extension_fetch_event__WEBPACK_IMPORTED_MODULE_2__.waitUntilSymbol]),\n fetchMetrics: request.fetchMetrics\n };\n} //# sourceMappingURL=adapter.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9hZGFwdGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBNkM7QUFDUztBQUNRO0FBQ1A7QUFDRTtBQUNvQjtBQUNkO0FBQzFCO0FBQ3lCO0FBQ1k7QUFDSztBQUNqQjtBQUNGO0FBQ2dDO0FBQ0M7QUFDN0M7QUFDaEQsTUFBTWdCLHdCQUF3QmIsZ0VBQVdBO0lBQ3JDYyxZQUFZQyxNQUFNLENBQUM7UUFDZixLQUFLLENBQUNBLE9BQU9DLEtBQUssRUFBRUQsT0FBT0UsSUFBSTtRQUMvQixJQUFJLENBQUNDLFVBQVUsR0FBR0gsT0FBT0ksSUFBSTtJQUNqQztJQUNBLElBQUlDLFVBQVU7UUFDVixNQUFNLElBQUl2QixzREFBa0JBLENBQUM7WUFDekJzQixNQUFNLElBQUksQ0FBQ0QsVUFBVTtRQUN6QjtJQUNKO0lBQ0FHLGNBQWM7UUFDVixNQUFNLElBQUl4QixzREFBa0JBLENBQUM7WUFDekJzQixNQUFNLElBQUksQ0FBQ0QsVUFBVTtRQUN6QjtJQUNKO0lBQ0FJLFlBQVk7UUFDUixNQUFNLElBQUl6QixzREFBa0JBLENBQUM7WUFDekJzQixNQUFNLElBQUksQ0FBQ0QsVUFBVTtRQUN6QjtJQUNKO0FBQ0o7QUFDQSxNQUFNSyxnQkFBZ0I7SUFDbEJDLE1BQU0sQ0FBQ0MsVUFBVUMsTUFBTUMsSUFBSSxDQUFDRixRQUFRRCxJQUFJO0lBQ3hDSSxLQUFLLENBQUNILFNBQVNJLE1BQU1KLFFBQVFHLEdBQUcsQ0FBQ0MsUUFBUUM7QUFDN0M7QUFDQSxJQUFJQyxhQUFhLENBQUNYLFNBQVNZO0lBQ3ZCLE1BQU1DLFNBQVNyQiw2REFBU0E7SUFDeEIsT0FBT3FCLE9BQU9DLHFCQUFxQixDQUFDZCxRQUFRSyxPQUFPLEVBQUVPLElBQUlUO0FBQzdEO0FBQ0EsSUFBSVksc0JBQXNCO0FBQzFCLFNBQVNDO0lBQ0wsSUFBSSxDQUFDRCxxQkFBcUI7UUFDdEJBLHNC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V0FBV0EsV0FBV3RHLGtFQUFZQSxDQUFDZ0ksSUFBSTtJQUM3RCxpRkFBaUY7SUFDakYsTUFBTUMsNEJBQTRCRixjQUFjdkcsT0FBTyxDQUFDRyxHQUFHLENBQUM7SUFDNUQsTUFBTXVHLHFCQUFxQixFQUFFO0lBQzdCLElBQUlELDJCQUEyQjtRQUMzQixLQUFLLE1BQU0sQ0FBQ3JHLEtBQUswQixNQUFNLElBQUlhLGNBQWM7WUFDckM0RCxjQUFjdkcsT0FBTyxDQUFDZ0QsR0FBRyxDQUFDLENBQUMscUJBQXFCLEVBQUU1QyxJQUFJLENBQUMsRUFBRTBCO1lBQ3pENEUsbUJBQW1CQyxJQUFJLENBQUN2RztRQUM1QjtRQUNBLElBQUlzRyxtQkFBbUJ2RSxNQUFNLEdBQUcsR0FBRztZQUMvQm9FLGNBQWN2RyxPQUFPLENBQUNnRCxHQUFHLENBQUMsaUNBQWlDeUQsNEJBQTRCLE1BQU1DLG1CQUFtQkUsSUFBSSxDQUFDO1FBQ3pIO0lBQ0o7SUFDQSxPQUFPO1FBQ0g5QixVQUFVeUI7UUFDVjFHLFdBQVdnSCxRQUFRQyxHQUFHLENBQUNqQyxLQUFLLENBQUNuRyx3RUFBZUEsQ0FBQztRQUM3Q3FJLGNBQWNwSCxRQUFRb0gsWUFBWTtJQUN0QztBQUNKLEVBRUEsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL2FkYXB0ZXIuanM/ZDUwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlU2lnbmF0dXJlRXJyb3IgfSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IE5leHRGZXRjaEV2ZW50IH0gZnJvbSBcIi4vc3BlYy1leHRlbnNpb24vZmV0Y2gtZXZlbnRcIjtcbmltcG9ydCB7IE5leHRSZXF1ZXN0IH0gZnJvbSBcIi4vc3BlYy1leHRlbnNpb24vcmVxdWVzdFwiO1xuaW1wb3J0IHsgTmV4dFJlc3BvbnNlIH0gZnJvbSBcIi4vc3BlYy1leHRlbnNpb24vcmVzcG9uc2VcIjtcbmltcG9ydCB7IHJlbGF0aXZpemVVUkwgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVsYXRpdml6ZS11cmxcIjtcbmltcG9ydCB7IHdhaXRVbnRpbFN5bWJvbCB9IGZyb20gXCIuL3NwZWMtZXh0ZW5zaW9uL2ZldGNoLWV2ZW50XCI7XG5pbXBvcnQgeyBOZXh0VVJMIH0gZnJvbSBcIi4vbmV4dC11cmxcIjtcbmltcG9ydCB7IHN0cmlwSW50ZXJuYWxTZWFyY2hQYXJhbXMgfSBmcm9tIFwiLi4vaW50ZXJuYWwtdXRpbHNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVJzY1VSTCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHNcIjtcbmltcG9ydCB7IEZMSUdIVF9QQVJBTUVURVJTIH0gZnJvbSBcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiO1xuaW1wb3J0IHsgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggfSBmcm9tIFwiLi4vLi4vbGliL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZW5zdXJlSW5zdHJ1bWVudGF0aW9uUmVnaXN0ZXJlZCB9IGZyb20gXCIuL2dsb2JhbHNcIjtcbmltcG9ydCB7IFJlcXVlc3RBc3luY1N0b3JhZ2VXcmFwcGVyIH0gZnJvbSBcIi4uL2FzeW5jLXN0b3JhZ2UvcmVxdWVzdC1hc3luYy1zdG9yYWdlLXdyYXBwZXJcIjtcbmltcG9ydCB7IHJlcXVlc3RBc3luY1N0b3JhZ2UgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVxdWVzdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCI7XG5pbXBvcnQgeyBnZXRUcmFjZXIgfSBmcm9tIFwiLi4vbGliL3RyYWNlL3RyYWNlclwiO1xuY2xhc3MgTmV4dFJlcXVlc3RIaW50IGV4dGVuZHMgTmV4dFJlcXVlc3Qge1xuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyl7XG4gICAgICAgIHN1cGVyKHBhcmFtcy5pbnB1dCwgcGFyYW1zLmluaXQpO1xuICAgICAgICB0aGlzLnNvdXJjZVBhZ2UgPSBwYXJhbXMucGFnZTtcbiAgICB9XG4gICAgZ2V0IHJlcXVlc3QoKSB7XG4gICAgICAgIHRocm93IG5ldyBQYWdlU2lnbmF0dXJlRXJyb3Ioe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5zb3VyY2VQYWdlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXNwb25kV2l0aCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhZ2VTaWduYXR1cmVFcnJvcih7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnNvdXJjZVBhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHdhaXRVbnRpbCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhZ2VTaWduYXR1cmVFcnJvcih7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnNvdXJjZVBhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxufVxuY29uc3QgaGVhZGVyc0dldHRlciA9IHtcbiAgICBrZXlzOiAoaGVhZGVycyk9PkFycmF5LmZyb20oaGVhZGVycy5rZXlzKCkpLFxuICAgIGdldDogKGhlYWRlcnMsIGtleSk9PmhlYWRlcnMuZ2V0KGtleSkgPz8gdW5kZWZpbmVkXG59O1xubGV0IHByb3BhZ2F0b3IgPSAocmVxdWVzdCwgZm4pPT57XG4gICAgY29uc3QgdHJhY2VyID0gZ2V0VHJhY2VyKCk7XG4gICAgcmV0dXJuIHRyYWNlci53aXRoUHJvcGFnYXRlZENvbnRleHQocmVxdWVzdC5oZWFkZXJzLCBmbiwgaGVhZGVyc0dldHRlcik7XG59O1xubGV0IHRlc3RBcGlzSW50ZXJjZXB0ZWQgPSBmYWxzZTtcbmZ1bmN0aW9uIGVuc3VyZVRlc3RBcGlzSW50ZXJjZXB0ZWQoKSB7XG4gICAgaWYgKCF0ZXN0QXBpc0ludGVyY2VwdGVkKSB7XG4gICAgICAgIHRlc3RBcGlzSW50ZXJjZXB0ZWQgPSB0cnVlO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9QUklWQVRFX1RFU1RfUFJPWFkgPT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zdCB7IGludGVyY2VwdFRlc3RBcGlzLCB3cmFwUmVxdWVzdEhhbmRsZXIgfSA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvZXhwZXJpbWVudGFsL3Rlc3Rtb2RlL3NlcnZlci1lZGdlXCIpO1xuICAgICAgICAgICAgaW50ZXJjZXB0VGVzdEFwaXMoKTtcbiAgICAgICAgICAgIHByb3BhZ2F0b3IgPSB3cmFwUmVxdWVzdEhhbmRsZXIocHJvcGFnYXRvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRhcHRlcihwYXJhbXMpIHtcbiAgICBlbnN1cmVUZXN0QXBpc0ludGVyY2VwdGVkKCk7XG4gICAgYXdhaXQgZW5zdXJlSW5zdHJ1bWVudGF0aW9uUmVnaXN0ZXJlZCgpO1xuICAgIC8vIFRPRE8tQVBQOiB1c2UgZXhwbGljaXQgbWFya2VyIGZvciB0aGlzXG4gICAgY29uc3QgaXNFZGdlUmVuZGVyaW5nID0gdHlwZW9mIHNlbGYuX19CVUlMRF9NQU5JRkVTVCAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICBjb25zdCBwcmVyZW5kZXJNYW5pZmVzdCA9IHR5cGVvZiBzZWxmLl9fUFJFUkVOREVSX01BTklGRVNUID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShzZWxmLl9fUFJFUkVOREVSX01BTklGRVNUKSA6IHVuZGVmaW5lZDtcbiAgICBwYXJhbXMucmVxdWVzdC51cmwgPSBub3JtYWxpemVSc2NVUkwocGFyYW1zLnJlcXVlc3QudXJsKTtcbiAgICBjb25zdCByZXF1ZXN0VXJsID0gbmV3IE5leHRVUkwocGFyYW1zLnJlcXVlc3QudXJsLCB7XG4gICAgICAgIGhlYWRlcnM6IHBhcmFtcy5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgIG5leHRDb25maWc6IHBhcmFtcy5yZXF1ZXN0Lm5leHRDb25maWdcbiAgICB9KTtcbiAgICAvLyBJdGVyYXRvciB1c2VzIGFuIGluZGV4IHRvIGtlZXAgdHJhY2sgb2YgdGhlIGN1cnJlbnQgaXRlcmF0aW9uLiBCZWNhdXNlIG9mIGRlbGV0aW5nIGFuZCBhcHBlbmRpbmcgYmVsb3cgd2UgY2FuJ3QganVzdCB1c2UgdGhlIGl0ZXJhdG9yLlxuICAgIC8vIEluc3RlYWQgd2UgdXNlIHRoZSBrZXlzIGJlZm9yZSBpdGVyYXRpb24uXG4gICAgY29uc3Qga2V5cyA9IFtcbiAgICAgICAgLi4ucmVxdWVzdFVybC5zZWFyY2hQYXJhbXMua2V5cygpXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKXtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByZXF1ZXN0VXJsLnNlYXJjaFBhcmFtcy5nZXRBbGwoa2V5KTtcbiAgICAgICAgaWYgKGtleSAhPT0gTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggJiYga2V5LnN0YXJ0c1dpdGgoTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgpKSB7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0ga2V5LnN1YnN0cmluZyhORVhUX1FVRVJZX1BBUkFNX1BSRUZJWC5sZW5ndGgpO1xuICAgICAgICAgICAgcmVxdWVzdFVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKG5vcm1hbGl6ZWRLZXkpO1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWwgb2YgdmFsdWUpe1xuICAgICAgICAgICAgICAgIHJlcXVlc3RVcmwuc2VhcmNoUGFyYW1zLmFwcGVuZChub3JtYWxpemVkS2V5LCB2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVxdWVzdFVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKGtleSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRW5zdXJlIHVzZXJzIG9ubHkgc2VlIHBhZ2UgcmVxdWVzdHMsIG5ldmVyIGRhdGEgcmVxdWVzdHMuXG4gICAgY29uc3QgYnVpbGRJZCA9IHJlcXVlc3RVcmwuYnVpbGRJZDtcbiAgICByZXF1ZXN0VXJsLmJ1aWxkSWQgPSBcIlwiO1xuICAgIGNvbnN0IGlzRGF0YVJlcSA9IHBhcmFtcy5yZXF1ZXN0LmhlYWRlcnNbXCJ4LW5leHRqcy1kYXRhXCJdO1xuICAgIGlmIChpc0RhdGFSZXEgJiYgcmVxdWVzdFVybC5wYXRobmFtZSA9PT0gXCIvaW5kZXhcIikge1xuICAgICAgICByZXF1ZXN0VXJsLnBhdGhuYW1lID0gXCIvXCI7XG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3RIZWFkZXJzID0gZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKHBhcmFtcy5yZXF1ZXN0LmhlYWRlcnMpO1xuICAgIGNvbnN0IGZsaWdodEhlYWRlcnMgPSBuZXcgTWFwKCk7XG4gICAgLy8gUGFyYW1ldGVycyBzaG91bGQgb25seSBiZSBzdHJpcHBlZCBmb3IgbWlkZGxld2FyZVxuICAgIGlmICghaXNFZGdlUmVuZGVyaW5nKSB7XG4gICAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgRkxJR0hUX1BBUkFNRVRFUlMpe1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gcGFyYW0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByZXF1ZXN0SGVhZGVycy5nZXQoa2V5KTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGZsaWdodEhlYWRlcnMuc2V0KGtleSwgcmVxdWVzdEhlYWRlcnMuZ2V0KGtleSkpO1xuICAgICAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJzLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5vcm1hbGl6ZVVybCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUgPyBuZXcgVVJMKHBhcmFtcy5yZXF1ZXN0LnVybCkgOiByZXF1ZXN0VXJsO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgTmV4dFJlcXVlc3RIaW50KHtcbiAgICAgICAgcGFnZTogcGFyYW1zLnBhZ2UsXG4gICAgICAgIC8vIFN0cmlwIGludGVybmFsIHF1ZXJ5IHBhcmFtZXRlcnMgb2ZmIHRoZSByZXF1ZXN0LlxuICAgICAgICBpbnB1dDogc3RyaXBJbnRlcm5hbFNlYXJjaFBhcmFtcyhub3JtYWxpemVVcmwsIHRydWUpLnRvU3RyaW5nKCksXG4gICAgICAgIGluaXQ6IHtcbiAgICAgICAgICAgIGJvZHk6IHBhcmFtcy5yZXF1ZXN0LmJvZHksXG4gICAgICAgICAgICBnZW86IHBhcmFtcy5yZXF1ZXN0LmdlbyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3RIZWFkZXJzLFxuICAgICAgICAgICAgaXA6IHBhcmFtcy5yZXF1ZXN0LmlwLFxuICAgICAgICAgICAgbWV0aG9kOiBwYXJhbXMucmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBuZXh0Q29uZmlnOiBwYXJhbXMucmVxdWVzdC5uZXh0Q29uZmlnLFxuICAgICAgICAgICAgc2lnbmFsOiBwYXJhbXMucmVxdWVzdC5zaWduYWxcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8qKlxuICAgKiBUaGlzIGFsbG93cyB0byBpZGVudGlmeSB0aGUgcmVxdWVzdCBhcyBhIGRhdGEgcmVxdWVzdC4gVGhlIHVzZXIgZG9lc24ndFxuICAgKiBuZWVkIHRvIGtub3cgYWJvdXQgdGhpcyBwcm9wZXJ0eSBuZWl0aGVyIHVzZSBpdC4gV2UgYWRkIGl0IGZvciB0ZXN0aW5nXG4gICAqIHB1cnBvc2VzLlxuICAgKi8gaWYgKGlzRGF0YVJlcSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWVzdCwgXCJfX2lzRGF0YVwiLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoIWdsb2JhbFRoaXMuX19pbmNyZW1lbnRhbENhY2hlICYmIHBhcmFtcy5JbmNyZW1lbnRhbENhY2hlKSB7XG4gICAgICAgIGdsb2JhbFRoaXMuX19pbmNyZW1lbnRhbENhY2hlID0gbmV3IHBhcmFtcy5JbmNyZW1lbnRhbENhY2hlKHtcbiAgICAgICAgICAgIGFwcERpcjogdHJ1ZSxcbiAgICAgICAgICAgIGZldGNoQ2FjaGU6IHRydWUsXG4gICAgICAgICAgICBtaW5pbWFsTW9kZTogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwiZGV2ZWxvcG1lbnRcIixcbiAgICAgICAgICAgIGZldGNoQ2FjaGVLZXlQcmVmaXg6IHByb2Nlc3MuZW52Ll9fTkVYVF9GRVRDSF9DQUNIRV9LRVlfUFJFRklYLFxuICAgICAgICAgICAgZGV2OiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiLFxuICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnM6IHBhcmFtcy5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICByZXF1ZXN0UHJvdG9jb2w6IFwiaHR0cHNcIixcbiAgICAgICAgICAgIGdldFByZXJlbmRlck1hbmlmZXN0OiAoKT0+e1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb246IC0xLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgICBkeW5hbWljUm91dGVzOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3TW9kZUlkOiBcImRldmVsb3BtZW50LWlkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBldmVudCA9IG5ldyBOZXh0RmV0Y2hFdmVudCh7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHBhZ2U6IHBhcmFtcy5wYWdlXG4gICAgfSk7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGxldCBjb29raWVzRnJvbVJlc3BvbnNlO1xuICAgIHJlc3BvbnNlID0gYXdhaXQgcHJvcGFnYXRvcihyZXF1ZXN0LCAoKT0+e1xuICAgICAgICAvLyB3ZSBvbmx5IGNhcmUgdG8gbWFrZSBhc3luYyBzdG9yYWdlIGF2YWlsYWJsZSBmb3IgbWlkZGxld2FyZVxuICAgICAgICBjb25zdCBpc01pZGRsZXdhcmUgPSBwYXJhbXMucGFnZSA9PT0gXCIvbWlkZGxld2FyZVwiIHx8IHBhcmFtcy5wYWdlID09PSBcIi9zcmMvbWlkZGxld2FyZVwiO1xuICAgICAgICBpZiAoaXNNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVxdWVzdEFzeW5jU3RvcmFnZVdyYXBwZXIud3JhcChyZXF1ZXN0QXN5bmNTdG9yYWdlLCB7XG4gICAgICAgICAgICAgICAgcmVxOiByZXF1ZXN0LFxuICAgICAgICAgICAgICAgIHJlbmRlck9wdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgb25VcGRhdGVDb29raWVzOiAoY29va2llcyk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tpZXNGcm9tUmVzcG9uc2UgPSBjb29raWVzO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUT0RPOiBpbnZlc3RpZ2F0ZSB3aHkgcHJldmlld1Byb3BzIGlzbid0IG9uIFJlbmRlck9wdHNcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld1Byb3BzOiAocHJlcmVuZGVyTWFuaWZlc3QgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXJlbmRlck1hbmlmZXN0LnByZXZpZXcpIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdNb2RlSWQ6IFwiZGV2ZWxvcG1lbnQtaWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdNb2RlRW5jcnlwdGlvbktleTogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdNb2RlU2lnbmluZ0tleTogXCJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgKCk9PnBhcmFtcy5oYW5kbGVyKHJlcXVlc3QsIGV2ZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmFtcy5oYW5kbGVyKHJlcXVlc3QsIGV2ZW50KTtcbiAgICB9KTtcbiAgICAvLyBjaGVjayBpZiByZXNwb25zZSBpcyBhIFJlc3BvbnNlIG9iamVjdFxuICAgIGlmIChyZXNwb25zZSAmJiAhKHJlc3BvbnNlIGluc3RhbmNlb2YgUmVzcG9uc2UpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhbiBpbnN0YW5jZSBvZiBSZXNwb25zZSB0byBiZSByZXR1cm5lZFwiKTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlICYmIGNvb2tpZXNGcm9tUmVzcG9uc2UpIHtcbiAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoXCJzZXQtY29va2llXCIsIGNvb2tpZXNGcm9tUmVzcG9uc2UpO1xuICAgIH1cbiAgICAvKipcbiAgICogRm9yIHJld3JpdGVzIHdlIG11c3QgYWx3YXlzIGluY2x1ZGUgdGhlIGxvY2FsZSBpbiB0aGUgZmluYWwgcGF0aG5hbWVcbiAgICogc28gd2UgcmUtY3JlYXRlIHRoZSBOZXh0VVJMIGZvcmNpbmcgaXQgdG8gaW5jbHVkZSBpdCB3aGVuIHRoZSBpdCBpc1xuICAgKiBhbiBpbnRlcm5hbCByZXdyaXRlLiBBbHNvIHdlIG1ha2Ugc3VyZSB0aGUgb3V0Z29pbmcgcmV3cml0ZSBVUkwgaXNcbiAgICogYSBkYXRhIFVSTCBpZiB0aGUgcmVxdWVzdCB3YXMgYSBkYXRhIHJlcXVlc3QuXG4gICAqLyBjb25zdCByZXdyaXRlID0gcmVzcG9uc2UgPT0gbnVsbCA/IHZvaWQgMCA6IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwieC1taWRkbGV3YXJlLXJld3JpdGVcIik7XG4gICAgaWYgKHJlc3BvbnNlICYmIHJld3JpdGUpIHtcbiAgICAgICAgY29uc3QgcmV3cml0ZVVybCA9IG5ldyBOZXh0VVJMKHJld3JpdGUsIHtcbiAgICAgICAgICAgIGZvcmNlTG9jYWxlOiB0cnVlLFxuICAgICAgICAgICAgaGVhZGVyczogcGFyYW1zLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgIG5leHRDb25maWc6IHBhcmFtcy5yZXF1ZXN0Lm5leHRDb25maWdcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSkge1xuICAgICAgICAgICAgaWYgKHJld3JpdGVVcmwuaG9zdCA9PT0gcmVxdWVzdC5uZXh0VXJsLmhvc3QpIHtcbiAgICAgICAgICAgICAgICByZXdyaXRlVXJsLmJ1aWxkSWQgPSBidWlsZElkIHx8IHJld3JpdGVVcmwuYnVpbGRJZDtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChcIngtbWlkZGxld2FyZS1yZXdyaXRlXCIsIFN0cmluZyhyZXdyaXRlVXJsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICogV2hlbiB0aGUgcmVxdWVzdCBpcyBhIGRhdGEgcmVxdWVzdCB3ZSBtdXN0IHNob3cgaWYgdGhlcmUgd2FzIGEgcmV3cml0ZVxuICAgICAqIHdpdGggYW4gaW50ZXJuYWwgaGVhZGVyIHNvIHRoZSBjbGllbnQga25vd3Mgd2hpY2ggY29tcG9uZW50IHRvIGxvYWRcbiAgICAgKiBmcm9tIHRoZSBkYXRhIHJlcXVlc3QuXG4gICAgICovIGNvbnN0IHJlbGF0aXZpemVkUmV3cml0ZSA9IHJlbGF0aXZpemVVUkwoU3RyaW5nKHJld3JpdGVVcmwpLCBTdHJpbmcocmVxdWVzdFVybCkpO1xuICAgICAgICBpZiAoaXNEYXRhUmVxICYmIC8vIGlmIHRoZSByZXdyaXRlIGlzIGV4dGVybmFsIGFuZCBleHRlcm5hbCByZXdyaXRlXG4gICAgICAgIC8vIHJlc29sdmluZyBjb25maWcgaXMgZW5hYmxlZCBkb24ndCBhZGQgdGhpcyBoZWFkZXJcbiAgICAgICAgLy8gc28gdGhlIHVwc3RyZWFtIGFwcCBjYW4gc2V0IGl0IGluc3RlYWRcbiAgICAgICAgIShwcm9jZXNzLmVudi5fX05FWFRfRVhURVJOQUxfTUlERExFV0FSRV9SRVdSSVRFX1JFU09MVkUgJiYgcmVsYXRpdml6ZWRSZXdyaXRlLm1hdGNoKC9odHRwKHMpPzpcXC9cXC8vKSkpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KFwieC1uZXh0anMtcmV3cml0ZVwiLCByZWxhdGl2aXplZFJld3JpdGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgKiBGb3IgcmVkaXJlY3RzIHdlIHdpbGwgbm90IGluY2x1ZGUgdGhlIGxvY2FsZSBpbiBjYXNlIHdoZW4gaXQgaXMgdGhlXG4gICAqIGRlZmF1bHQgYW5kIHdlIG11c3QgYWxzbyBtYWtlIHN1cmUgdGhlIG91dGdvaW5nIFVSTCBpcyBhIGRhdGEgb25lIGlmXG4gICAqIHRoZSBpbmNvbWluZyByZXF1ZXN0IHdhcyBhIGRhdGEgcmVxdWVzdC5cbiAgICovIGNvbnN0IHJlZGlyZWN0ID0gcmVzcG9uc2UgPT0gbnVsbCA/IHZvaWQgMCA6IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiTG9jYXRpb25cIik7XG4gICAgaWYgKHJlc3BvbnNlICYmIHJlZGlyZWN0ICYmICFpc0VkZ2VSZW5kZXJpbmcpIHtcbiAgICAgICAgY29uc3QgcmVkaXJlY3RVUkwgPSBuZXcgTmV4dFVSTChyZWRpcmVjdCwge1xuICAgICAgICAgICAgZm9yY2VMb2NhbGU6IGZhbHNlLFxuICAgICAgICAgICAgaGVhZGVyczogcGFyYW1zLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgIG5leHRDb25maWc6IHBhcmFtcy5yZXF1ZXN0Lm5leHRDb25maWdcbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAqIFJlc3BvbnNlcyBjcmVhdGVkIGZyb20gcmVkaXJlY3RzIGhhdmUgaW1tdXRhYmxlIGhlYWRlcnMgc28gd2UgaGF2ZVxuICAgICAqIHRvIGNsb25lIHRoZSByZXNwb25zZSB0byBiZSBhYmxlIHRvIG1vZGlmeSBpdC5cbiAgICAgKi8gcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UocmVzcG9uc2UuYm9keSwgcmVzcG9uc2UpO1xuICAgICAgICBpZiAoIXByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUpIHtcbiAgICAgICAgICAgIGlmIChyZWRpcmVjdFVSTC5ob3N0ID09PSByZXF1ZXN0Lm5leHRVcmwuaG9zdCkge1xuICAgICAgICAgICAgICAgIHJlZGlyZWN0VVJMLmJ1aWxkSWQgPSBidWlsZElkIHx8IHJlZGlyZWN0VVJMLmJ1aWxkSWQ7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoXCJMb2NhdGlvblwiLCBTdHJpbmcocmVkaXJlY3RVUkwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgKiBXaGVuIHRoZSByZXF1ZXN0IGlzIGEgZGF0YSByZXF1ZXN0IHdlIGNhbid0IHVzZSB0aGUgbG9jYXRpb24gaGVhZGVyIGFzXG4gICAgICogaXQgbWF5IGVuZCB1cCB3aXRoIENPUlMgZXJyb3IuIEluc3RlYWQgd2UgbWFwIHRvIGFuIGludGVybmFsIGhlYWRlciBzb1xuICAgICAqIHRoZSBjbGllbnQga25vd3MgdGhlIGRlc3RpbmF0aW9uLlxuICAgICAqLyBpZiAoaXNEYXRhUmVxKSB7XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLmRlbGV0ZShcIkxvY2F0aW9uXCIpO1xuICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoXCJ4LW5leHRqcy1yZWRpcmVjdFwiLCByZWxhdGl2aXplVVJMKFN0cmluZyhyZWRpcmVjdFVSTCksIFN0cmluZyhyZXF1ZXN0VXJsKSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGZpbmFsUmVzcG9uc2UgPSByZXNwb25zZSA/IHJlc3BvbnNlIDogTmV4dFJlc3BvbnNlLm5leHQoKTtcbiAgICAvLyBGbGlnaHQgaGVhZGVycyBhcmUgbm90IG92ZXJyaWRhYmxlIC8gcmVtb3ZhYmxlIHNvIHRoZXkgYXJlIGFwcGxpZWQgYXQgdGhlIGVuZC5cbiAgICBjb25zdCBtaWRkbGV3YXJlT3ZlcnJpZGVIZWFkZXJzID0gZmluYWxSZXNwb25zZS5oZWFkZXJzLmdldChcIngtbWlkZGxld2FyZS1vdmVycmlkZS1oZWFkZXJzXCIpO1xuICAgIGNvbnN0IG92ZXJ3cml0dGVuSGVhZGVycyA9IFtdO1xuICAgIGlmIChtaWRkbGV3YXJlT3ZlcnJpZGVIZWFkZXJzKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGZsaWdodEhlYWRlcnMpe1xuICAgICAgICAgICAgZmluYWxSZXNwb25zZS5oZWFkZXJzLnNldChgeC1taWRkbGV3YXJlLXJlcXVlc3QtJHtrZXl9YCwgdmFsdWUpO1xuICAgICAgICAgICAgb3ZlcndyaXR0ZW5IZWFkZXJzLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3ZlcndyaXR0ZW5IZWFkZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZpbmFsUmVzcG9uc2UuaGVhZGVycy5zZXQoXCJ4LW1pZGRsZXdhcmUtb3ZlcnJpZGUtaGVhZGVyc1wiLCBtaWRkbGV3YXJlT3ZlcnJpZGVIZWFkZXJzICsgXCIsXCIgKyBvdmVyd3JpdHRlbkhlYWRlcnMuam9pbihcIixcIikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3BvbnNlOiBmaW5hbFJlc3BvbnNlLFxuICAgICAgICB3YWl0VW50aWw6IFByb21pc2UuYWxsKGV2ZW50W3dhaXRVbnRpbFN5bWJvbF0pLFxuICAgICAgICBmZXRjaE1ldHJpY3M6IHJlcXVlc3QuZmV0Y2hNZXRyaWNzXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRhcHRlci5qcy5tYXAiXSwibmFtZXMiOlsiUGFnZVNpZ25hdHVyZUVycm9yIiwiZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzIiwiTmV4dEZldGNoRXZlbnQiLCJOZXh0UmVxdWVzdCIsIk5leHRSZXNwb25zZSIsInJlbGF0aXZpemVVUkwiLCJ3YWl0VW50aWxTeW1ib2wiLCJOZXh0VVJMIiwic3RyaXBJbnRlcm5hbFNlYXJjaFBhcmFtcyIsIm5vcm1hbGl6ZVJzY1VSTCIsIkZMSUdIVF9QQVJBTUVURVJTIiwiTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgiLCJlbnN1cmVJbnN0cnVtZW50YXRpb25SZWdpc3RlcmVkIiwiUmVxdWVzdEFzeW5jU3RvcmFnZVdyYXBwZXIiLCJyZXF1ZXN0QXN5bmNTdG9yYWdlIiwiZ2V0VHJhY2VyIiwiTmV4dFJlcXVlc3RIaW50IiwiY29uc3RydWN0b3IiLCJwYXJhbXMiLCJpbnB1dCIsImluaXQiLCJzb3VyY2VQYWdlIiwicGFnZSIsInJlcXVlc3QiLCJyZXNwb25kV2l0aCIsIndhaXRVbnRpbCIsImhlYWRlcnNHZXR0ZXIiLCJrZXlzIiwiaGVhZGVycyIsIkFycmF5IiwiZnJvbSIsImdldCIsImtleSIsInVuZGVmaW5lZCIsInByb3BhZ2F0b3IiLCJmbiIsInRyYWNlciIsIndpdGhQcm9wYWdhdGVkQ29udGV4dCIsInRlc3RBcGlzSW50ZXJjZXB0ZWQiLCJlbnN1cmVUZXN0QXBpc0ludGVyY2VwdGVkIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFJJVkFURV9URVNUX1BST1hZIiwiaW50ZXJjZXB0VGVzdEFwaXMiLCJ3cmFwUmVxdWVzdEhhbmRsZXIiLCJyZXF1aXJlIiwiYWRhcHRlciIsImlzRWRnZVJlbmRlcmluZyIsInNlbGYiLCJfX0JVSUxEX01BTklGRVNUIiwicHJlcmVuZGVyTWFuaWZlc3QiLCJfX1BSRVJFTkRFUl9NQU5JRkVTVCIsIkpTT04iLCJwYXJzZSIsInVybCIsInJlcXVlc3RVcmwiLCJuZXh0Q29uZmlnIiwic2VhcmNoUGFyYW1zIiwidmFsdWUiLCJnZXRBbGwiLCJzdGFydHNXaXRoIiwibm9ybWFsaXplZEtleSIsInN1YnN0cmluZyIsImxlbmd0aCIsImRlbGV0ZSIsInZhbCIsImFwcGVuZCIsImJ1aWxkSWQiLCJpc0RhdGFSZXEiLCJwYXRobmFtZSIsInJlcXVlc3RIZWFkZXJzIiwiZmxpZ2h0SGVhZGVycyIsIk1hcCIsInBhcmFtIiwidG9TdHJpbmciLCJ0b0xvd2VyQ2FzZSIsInNldCIsIm5vcm1hbGl6ZVVybCIsIl9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUiLCJVUkwiLCJib2R5IiwiZ2VvIiwiaXAiLCJtZXRob2QiLCJzaWduYWwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnbG9iYWxUaGlzIiwiX19pbmNyZW1lbnRhbENhY2hlIiwiSW5jcmVtZW50YWxDYWNoZSIsImFwcERpciIsImZldGNoQ2FjaGUiLCJtaW5pbWFsTW9kZSIsImZldGNoQ2FjaGVLZXlQcmVmaXgiLCJfX05FWFRfRkVUQ0hfQ0FDSEVfS0VZX1BSRUZJWCIsImRldiIsInJlcXVlc3RQcm90b2NvbCIsImdldFByZXJlbmRlck1hbmlmZXN0IiwidmVyc2lvbiIsInJvdXRlcyIsImR5bmFtaWNSb3V0ZXMiLCJub3RGb3VuZFJvdXRlcyIsInByZXZpZXciLCJwcmV2aWV3TW9kZUlkIiwiZXZlbnQiLCJyZXNwb25zZSIsImNvb2tpZXNGcm9tUmVzcG9uc2UiLCJpc01pZGRsZXdhcmUiLCJ3cmFwIiwicmVxIiwicmVuZGVyT3B0cyIsIm9uVXBkYXRlQ29va2llcyIsImNvb2tpZXMiLCJwcmV2aWV3UHJvcHMiLCJwcmV2aWV3TW9kZUVuY3J5cHRpb25LZXkiLCJwcmV2aWV3TW9kZVNpZ25pbmdLZXkiLCJoYW5kbGVyIiwiUmVzcG9uc2UiLCJUeXBlRXJyb3IiLCJyZXdyaXRlIiwicmV3cml0ZVVybCIsImZvcmNlTG9jYWxlIiwiaG9zdCIsIm5leHRVcmwiLCJTdHJpbmciLCJyZWxhdGl2aXplZFJld3JpdGUiLCJfX05FWFRfRVhURVJOQUxfTUlERExFV0FSRV9SRVdSSVRFX1JFU09MVkUiLCJtYXRjaCIsInJlZGlyZWN0IiwicmVkaXJlY3RVUkwiLCJmaW5hbFJlc3BvbnNlIiwibmV4dCIsIm1pZGRsZXdhcmVPdmVycmlkZUhlYWRlcnMiLCJvdmVyd3JpdHRlbkhlYWRlcnMiLCJwdXNoIiwiam9pbiIsIlByb21pc2UiLCJhbGwiLCJmZXRjaE1ldHJpY3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/adapter.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/error.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/error.js ***!
- \************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PageSignatureError: () => (/* binding */ PageSignatureError),\n/* harmony export */ RemovedPageError: () => (/* binding */ RemovedPageError),\n/* harmony export */ RemovedUAError: () => (/* binding */ RemovedUAError)\n/* harmony export */ });\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n} //# sourceMappingURL=error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxNQUFNQSwyQkFBMkJDO0lBQ3BDQyxZQUFZLEVBQUVDLElBQUksRUFBRSxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFQSxLQUFLOzs7Ozs7O0VBT3BDLENBQUM7SUFDQztBQUNKO0FBQ08sTUFBTUMseUJBQXlCSDtJQUNsQ0MsYUFBYTtRQUNULEtBQUssQ0FBQyxDQUFDOztFQUViLENBQUM7SUFDQztBQUNKO0FBQ08sTUFBTUcsdUJBQXVCSjtJQUNoQ0MsYUFBYTtRQUNULEtBQUssQ0FBQyxDQUFDOztFQUViLENBQUM7SUFDQztBQUNKLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL2Vycm9yLmpzPzQ2YmMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFBhZ2VTaWduYXR1cmVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcih7IHBhZ2UgfSl7XG4gICAgICAgIHN1cGVyKGBUaGUgbWlkZGxld2FyZSBcIiR7cGFnZX1cIiBhY2NlcHRzIGFuIGFzeW5jIEFQSSBkaXJlY3RseSB3aXRoIHRoZSBmb3JtOlxuICBcbiAgZXhwb3J0IGZ1bmN0aW9uIG1pZGRsZXdhcmUocmVxdWVzdCwgZXZlbnQpIHtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLnJlZGlyZWN0KCcvbmV3LWxvY2F0aW9uJylcbiAgfVxuICBcbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLW5ldy1zaWduYXR1cmVcbiAgYCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFJlbW92ZWRQYWdlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoYFRoZSByZXF1ZXN0LnBhZ2UgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgXFxgVVJMUGF0dGVyblxcYC5cbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXJlcXVlc3QtcGFnZVxuICBgKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVtb3ZlZFVBRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoYFRoZSByZXF1ZXN0LnVhIGhhcyBiZWVuIHJlbW92ZWQgaW4gZmF2b3VyIG9mIFxcYHVzZXJBZ2VudFxcYCBmdW5jdGlvbi5cbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXBhcnNlLXVzZXItYWdlbnRcbiAgYCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci5qcy5tYXAiXSwibmFtZXMiOlsiUGFnZVNpZ25hdHVyZUVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsInBhZ2UiLCJSZW1vdmVkUGFnZUVycm9yIiwiUmVtb3ZlZFVBRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/error.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/globals.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/globals.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ensureInstrumentationRegistered: () => (/* binding */ ensureInstrumentationRegistered)\n/* harmony export */ });\nasync function registerInstrumentation() {\n if (\"_ENTRIES\" in globalThis && _ENTRIES.middleware_instrumentation && _ENTRIES.middleware_instrumentation.register) {\n try {\n await _ENTRIES.middleware_instrumentation.register();\n } catch (err) {\n err.message = `An error occurred while loading instrumentation hook: ${err.message}`;\n throw err;\n }\n }\n}\nlet registerInstrumentationPromise = null;\nfunction ensureInstrumentationRegistered() {\n if (!registerInstrumentationPromise) {\n registerInstrumentationPromise = registerInstrumentation();\n }\n return registerInstrumentationPromise;\n}\nfunction getUnsupportedModuleErrorMessage(module) {\n // warning: if you change these messages, you must adjust how react-dev-overlay's middleware detects modules not found\n return `The edge runtime does not support Node.js '${module}' module.\nLearn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;\n}\nfunction __import_unsupported(moduleName) {\n const proxy = new Proxy(function() {}, {\n get (_obj, prop) {\n if (prop === \"then\") {\n return {};\n }\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n },\n construct () {\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n },\n apply (_target, _this, args) {\n if (typeof args[0] === \"function\") {\n return args[0](proxy);\n }\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n }\n });\n return new Proxy({}, {\n get: ()=>proxy\n });\n}\nfunction enhanceGlobals() {\n // The condition is true when the \"process\" module is provided\n if (process !== __webpack_require__.g.process) {\n // prefer local process but global.process has correct \"env\"\n process.env = __webpack_require__.g.process.env;\n __webpack_require__.g.process = process;\n }\n // to allow building code that import but does not use node.js modules,\n // webpack will expect this function to exist in global scope\n Object.defineProperty(globalThis, \"__import_unsupported\", {\n value: __import_unsupported,\n enumerable: false,\n configurable: false\n });\n // Eagerly fire instrumentation hook to make the startup faster.\n void ensureInstrumentationRegistered();\n}\nenhanceGlobals(); //# sourceMappingURL=globals.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9nbG9iYWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFlQTtJQUNYLElBQUksY0FBY0MsY0FBY0MsU0FBU0MsMEJBQTBCLElBQUlELFNBQVNDLDBCQUEwQixDQUFDQyxRQUFRLEVBQUU7UUFDakgsSUFBSTtZQUNBLE1BQU1GLFNBQVNDLDBCQUEwQixDQUFDQyxRQUFRO1FBQ3RELEVBQUUsT0FBT0MsS0FBSztZQUNWQSxJQUFJQyxPQUFPLEdBQUcsQ0FBQyxzREFBc0QsRUFBRUQsSUFBSUMsT0FBTyxDQUFDLENBQUM7WUFDcEYsTUFBTUQ7UUFDVjtJQUNKO0FBQ0o7QUFDQSxJQUFJRSxpQ0FBaUM7QUFDOUIsU0FBU0M7SUFDWixJQUFJLENBQUNELGdDQUFnQztRQUNqQ0EsaUNBQWlDUDtJQUNyQztJQUNBLE9BQU9PO0FBQ1g7QUFDQSxTQUFTRSxpQ0FBaUNDLE1BQU07SUFDNUMsc0hBQXNIO0lBQ3RILE9BQU8sQ0FBQywyQ0FBMkMsRUFBRUEsT0FBTzt3RUFDUSxDQUFDO0FBQ3pFO0FBQ0EsU0FBU0MscUJBQXFCQyxVQUFVO0lBQ3BDLE1BQU1DLFFBQVEsSUFBSUMsTUFBTSxZQUFZLEdBQUc7UUFDbkNDLEtBQUtDLElBQUksRUFBRUMsSUFBSTtZQUNYLElBQUlBLFNBQVMsUUFBUTtnQkFDakIsT0FBTyxDQUFDO1lBQ1o7WUFDQSxNQUFNLElBQUlDLE1BQU1ULGlDQUFpQ0c7UUFDckQ7UUFDQU87WUFDSSxNQUFNLElBQUlELE1BQU1ULGlDQUFpQ0c7UUFDckQ7UUFDQVEsT0FBT0MsT0FBTyxFQUFFQyxLQUFLLEVBQUVDLElBQUk7WUFDdkIsSUFBSSxPQUFPQSxJQUFJLENBQUMsRUFBRSxLQUFLLFlBQVk7Z0JBQy9CLE9BQU9BLElBQUksQ0FBQyxFQUFFLENBQUNWO1lBQ25CO1lBQ0EsTUFBTSxJQUFJSyxNQUFNVCxpQ0FBaUNHO1FBQ3JEO0lBQ0o7SUFDQSxPQUFPLElBQUlFLE1BQU0sQ0FBQyxHQUFHO1FBQ2pCQyxLQUFLLElBQUlGO0lBQ2I7QUFDSjtBQUNBLFNBQVNXO0lBQ0wsOERBQThEO0lBQzlELElBQUlDLFlBQVlDLHFCQUFNQSxDQUFDRCxPQUFPLEVBQUU7UUFDNUIsNERBQTREO1FBQzVEQSxRQUFRRSxHQUFHLEdBQUdELHFCQUFNQSxDQUFDRCxPQUFPLENBQUNFLEdBQUc7UUFDaENELHFCQUFNQSxDQUFDRCxPQUFPLEdBQUdBO0lBQ3JCO0lBQ0EsdUVBQXVFO0lBQ3ZFLDZEQUE2RDtJQUM3REcsT0FBT0MsY0FBYyxDQUFDNUIsWUFBWSx3QkFBd0I7UUFDdEQ2QixPQUFPbkI7UUFDUG9CLFlBQVk7UUFDWkMsY0FBYztJQUNsQjtJQUNBLGdFQUFnRTtJQUNoRSxLQUFLeEI7QUFDVDtBQUNBZ0Isa0JBRUEsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL2dsb2JhbHMuanM/ZjYxNiJdLCJzb3VyY2VzQ29udGVudCI6WyJhc3luYyBmdW5jdGlvbiByZWdpc3Rlckluc3RydW1lbnRhdGlvbigpIHtcbiAgICBpZiAoXCJfRU5UUklFU1wiIGluIGdsb2JhbFRoaXMgJiYgX0VOVFJJRVMubWlkZGxld2FyZV9pbnN0cnVtZW50YXRpb24gJiYgX0VOVFJJRVMubWlkZGxld2FyZV9pbnN0cnVtZW50YXRpb24ucmVnaXN0ZXIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IF9FTlRSSUVTLm1pZGRsZXdhcmVfaW5zdHJ1bWVudGF0aW9uLnJlZ2lzdGVyKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgZXJyLm1lc3NhZ2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgbG9hZGluZyBpbnN0cnVtZW50YXRpb24gaG9vazogJHtlcnIubWVzc2FnZX1gO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfVxufVxubGV0IHJlZ2lzdGVySW5zdHJ1bWVudGF0aW9uUHJvbWlzZSA9IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlSW5zdHJ1bWVudGF0aW9uUmVnaXN0ZXJlZCgpIHtcbiAgICBpZiAoIXJlZ2lzdGVySW5zdHJ1bWVudGF0aW9uUHJvbWlzZSkge1xuICAgICAgICByZWdpc3Rlckluc3RydW1lbnRhdGlvblByb21pc2UgPSByZWdpc3Rlckluc3RydW1lbnRhdGlvbigpO1xuICAgIH1cbiAgICByZXR1cm4gcmVnaXN0ZXJJbnN0cnVtZW50YXRpb25Qcm9taXNlO1xufVxuZnVuY3Rpb24gZ2V0VW5zdXBwb3J0ZWRNb2R1bGVFcnJvck1lc3NhZ2UobW9kdWxlKSB7XG4gICAgLy8gd2FybmluZzogaWYgeW91IGNoYW5nZSB0aGVzZSBtZXNzYWdlcywgeW91IG11c3QgYWRqdXN0IGhvdyByZWFjdC1kZXYtb3ZlcmxheSdzIG1pZGRsZXdhcmUgZGV0ZWN0cyBtb2R1bGVzIG5vdCBmb3VuZFxuICAgIHJldHVybiBgVGhlIGVkZ2UgcnVudGltZSBkb2VzIG5vdCBzdXBwb3J0IE5vZGUuanMgJyR7bW9kdWxlfScgbW9kdWxlLlxuTGVhcm4gTW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm9kZS1tb2R1bGUtaW4tZWRnZS1ydW50aW1lYDtcbn1cbmZ1bmN0aW9uIF9faW1wb3J0X3Vuc3VwcG9ydGVkKG1vZHVsZU5hbWUpIHtcbiAgICBjb25zdCBwcm94eSA9IG5ldyBQcm94eShmdW5jdGlvbigpIHt9LCB7XG4gICAgICAgIGdldCAoX29iaiwgcHJvcCkge1xuICAgICAgICAgICAgaWYgKHByb3AgPT09IFwidGhlblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGdldFVuc3VwcG9ydGVkTW9kdWxlRXJyb3JNZXNzYWdlKG1vZHVsZU5hbWUpKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29uc3RydWN0ICgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihnZXRVbnN1cHBvcnRlZE1vZHVsZUVycm9yTWVzc2FnZShtb2R1bGVOYW1lKSk7XG4gICAgICAgIH0sXG4gICAgICAgIGFwcGx5IChfdGFyZ2V0LCBfdGhpcywgYXJncykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJnc1swXShwcm94eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZ2V0VW5zdXBwb3J0ZWRNb2R1bGVFcnJvck1lc3NhZ2UobW9kdWxlTmFtZSkpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQcm94eSh7fSwge1xuICAgICAgICBnZXQ6ICgpPT5wcm94eVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZW5oYW5jZUdsb2JhbHMoKSB7XG4gICAgLy8gVGhlIGNvbmRpdGlvbiBpcyB0cnVlIHdoZW4gdGhlIFwicHJvY2Vzc1wiIG1vZHVsZSBpcyBwcm92aWRlZFxuICAgIGlmIChwcm9jZXNzICE9PSBnbG9iYWwucHJvY2Vzcykge1xuICAgICAgICAvLyBwcmVmZXIgbG9jYWwgcHJvY2VzcyBidXQgZ2xvYmFsLnByb2Nlc3MgaGFzIGNvcnJlY3QgXCJlbnZcIlxuICAgICAgICBwcm9jZXNzLmVudiA9IGdsb2JhbC5wcm9jZXNzLmVudjtcbiAgICAgICAgZ2xvYmFsLnByb2Nlc3MgPSBwcm9jZXNzO1xuICAgIH1cbiAgICAvLyB0byBhbGxvdyBidWlsZGluZyBjb2RlIHRoYXQgaW1wb3J0IGJ1dCBkb2VzIG5vdCB1c2Ugbm9kZS5qcyBtb2R1bGVzLFxuICAgIC8vIHdlYnBhY2sgd2lsbCBleHBlY3QgdGhpcyBmdW5jdGlvbiB0byBleGlzdCBpbiBnbG9iYWwgc2NvcGVcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywgXCJfX2ltcG9ydF91bnN1cHBvcnRlZFwiLCB7XG4gICAgICAgIHZhbHVlOiBfX2ltcG9ydF91bnN1cHBvcnRlZCxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICAvLyBFYWdlcmx5IGZpcmUgaW5zdHJ1bWVudGF0aW9uIGhvb2sgdG8gbWFrZSB0aGUgc3RhcnR1cCBmYXN0ZXIuXG4gICAgdm9pZCBlbnN1cmVJbnN0cnVtZW50YXRpb25SZWdpc3RlcmVkKCk7XG59XG5lbmhhbmNlR2xvYmFscygpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nbG9iYWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJyZWdpc3Rlckluc3RydW1lbnRhdGlvbiIsImdsb2JhbFRoaXMiLCJfRU5UUklFUyIsIm1pZGRsZXdhcmVfaW5zdHJ1bWVudGF0aW9uIiwicmVnaXN0ZXIiLCJlcnIiLCJtZXNzYWdlIiwicmVnaXN0ZXJJbnN0cnVtZW50YXRpb25Qcm9taXNlIiwiZW5zdXJlSW5zdHJ1bWVudGF0aW9uUmVnaXN0ZXJlZCIsImdldFVuc3VwcG9ydGVkTW9kdWxlRXJyb3JNZXNzYWdlIiwibW9kdWxlIiwiX19pbXBvcnRfdW5zdXBwb3J0ZWQiLCJtb2R1bGVOYW1lIiwicHJveHkiLCJQcm94eSIsImdldCIsIl9vYmoiLCJwcm9wIiwiRXJyb3IiLCJjb25zdHJ1Y3QiLCJhcHBseSIsIl90YXJnZXQiLCJfdGhpcyIsImFyZ3MiLCJlbmhhbmNlR2xvYmFscyIsInByb2Nlc3MiLCJnbG9iYWwiLCJlbnYiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/globals.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/internal-edge-wait-until.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/internal-edge-wait-until.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ internal_getCurrentFunctionWaitUntil: () => (/* binding */ internal_getCurrentFunctionWaitUntil),\n/* harmony export */ internal_runWithWaitUntil: () => (/* binding */ internal_runWithWaitUntil)\n/* harmony export */ });\n// An internal module to expose the \"waitUntil\" API to Edge SSR and Edge Route Handler functions.\n// This is highly experimental and subject to change.\n// We still need a global key to bypass Webpack's layering of modules.\nconst GLOBAL_KEY = Symbol.for(\"__next_internal_waitUntil__\");\nconst state = globalThis[GLOBAL_KEY] || // @ts-ignore\n(globalThis[GLOBAL_KEY] = {\n waitUntilCounter: 0,\n waitUntilResolve: undefined,\n waitUntilPromise: null\n});\n// No matter how many concurrent requests are being handled, we want to make sure\n// that the final promise is only resolved once all of the waitUntil promises have\n// settled.\nfunction resolveOnePromise() {\n state.waitUntilCounter--;\n if (state.waitUntilCounter === 0) {\n state.waitUntilResolve();\n state.waitUntilPromise = null;\n }\n}\nfunction internal_getCurrentFunctionWaitUntil() {\n return state.waitUntilPromise;\n}\nfunction internal_runWithWaitUntil(fn) {\n const result = fn();\n if (result && typeof result === \"object\" && \"then\" in result && \"finally\" in result && typeof result.then === \"function\" && typeof result.finally === \"function\") {\n if (!state.waitUntilCounter) {\n // Create the promise for the next batch of waitUntil calls.\n state.waitUntilPromise = new Promise((resolve)=>{\n state.waitUntilResolve = resolve;\n });\n }\n state.waitUntilCounter++;\n return result.finally(()=>{\n resolveOnePromise();\n });\n }\n return result;\n} //# sourceMappingURL=internal-edge-wait-until.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9pbnRlcm5hbC1lZGdlLXdhaXQtdW50aWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpR0FBaUc7QUFDakcscURBQXFEO0FBQ3JELHNFQUFzRTtBQUN0RSxNQUFNQSxhQUFhQyxPQUFPQyxHQUFHLENBQUM7QUFDOUIsTUFBTUMsUUFDTkMsVUFBVSxDQUFDSixXQUFXLElBQUksYUFBYTtBQUN0Q0ksQ0FBQUEsVUFBVSxDQUFDSixXQUFXLEdBQUc7SUFDdEJLLGtCQUFrQjtJQUNsQkMsa0JBQWtCQztJQUNsQkMsa0JBQWtCO0FBQ3RCO0FBQ0EsaUZBQWlGO0FBQ2pGLGtGQUFrRjtBQUNsRixXQUFXO0FBQ1gsU0FBU0M7SUFDTE4sTUFBTUUsZ0JBQWdCO0lBQ3RCLElBQUlGLE1BQU1FLGdCQUFnQixLQUFLLEdBQUc7UUFDOUJGLE1BQU1HLGdCQUFnQjtRQUN0QkgsTUFBTUssZ0JBQWdCLEdBQUc7SUFDN0I7QUFDSjtBQUNPLFNBQVNFO0lBQ1osT0FBT1AsTUFBTUssZ0JBQWdCO0FBQ2pDO0FBQ08sU0FBU0csMEJBQTBCQyxFQUFFO0lBQ3hDLE1BQU1DLFNBQVNEO0lBQ2YsSUFBSUMsVUFBVSxPQUFPQSxXQUFXLFlBQVksVUFBVUEsVUFBVSxhQUFhQSxVQUFVLE9BQU9BLE9BQU9DLElBQUksS0FBSyxjQUFjLE9BQU9ELE9BQU9FLE9BQU8sS0FBSyxZQUFZO1FBQzlKLElBQUksQ0FBQ1osTUFBTUUsZ0JBQWdCLEVBQUU7WUFDekIsNERBQTREO1lBQzVERixNQUFNSyxnQkFBZ0IsR0FBRyxJQUFJUSxRQUFRLENBQUNDO2dCQUNsQ2QsTUFBTUcsZ0JBQWdCLEdBQUdXO1lBQzdCO1FBQ0o7UUFDQWQsTUFBTUUsZ0JBQWdCO1FBQ3RCLE9BQU9RLE9BQU9FLE9BQU8sQ0FBQztZQUNsQk47UUFDSjtJQUNKO0lBQ0EsT0FBT0k7QUFDWCxFQUVBLG9EQUFvRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9pbnRlcm5hbC1lZGdlLXdhaXQtdW50aWwuanM/OGU2YiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbiBpbnRlcm5hbCBtb2R1bGUgdG8gZXhwb3NlIHRoZSBcIndhaXRVbnRpbFwiIEFQSSB0byBFZGdlIFNTUiBhbmQgRWRnZSBSb3V0ZSBIYW5kbGVyIGZ1bmN0aW9ucy5cbi8vIFRoaXMgaXMgaGlnaGx5IGV4cGVyaW1lbnRhbCBhbmQgc3ViamVjdCB0byBjaGFuZ2UuXG4vLyBXZSBzdGlsbCBuZWVkIGEgZ2xvYmFsIGtleSB0byBieXBhc3MgV2VicGFjaydzIGxheWVyaW5nIG9mIG1vZHVsZXMuXG5jb25zdCBHTE9CQUxfS0VZID0gU3ltYm9sLmZvcihcIl9fbmV4dF9pbnRlcm5hbF93YWl0VW50aWxfX1wiKTtcbmNvbnN0IHN0YXRlID0gLy8gQHRzLWlnbm9yZVxuZ2xvYmFsVGhpc1tHTE9CQUxfS0VZXSB8fCAvLyBAdHMtaWdub3JlXG4oZ2xvYmFsVGhpc1tHTE9CQUxfS0VZXSA9IHtcbiAgICB3YWl0VW50aWxDb3VudGVyOiAwLFxuICAgIHdhaXRVbnRpbFJlc29sdmU6IHVuZGVmaW5lZCxcbiAgICB3YWl0VW50aWxQcm9taXNlOiBudWxsXG59KTtcbi8vIE5vIG1hdHRlciBob3cgbWFueSBjb25jdXJyZW50IHJlcXVlc3RzIGFyZSBiZWluZyBoYW5kbGVkLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZVxuLy8gdGhhdCB0aGUgZmluYWwgcHJvbWlzZSBpcyBvbmx5IHJlc29sdmVkIG9uY2UgYWxsIG9mIHRoZSB3YWl0VW50aWwgcHJvbWlzZXMgaGF2ZVxuLy8gc2V0dGxlZC5cbmZ1bmN0aW9uIHJlc29sdmVPbmVQcm9taXNlKCkge1xuICAgIHN0YXRlLndhaXRVbnRpbENvdW50ZXItLTtcbiAgICBpZiAoc3RhdGUud2FpdFVudGlsQ291bnRlciA9PT0gMCkge1xuICAgICAgICBzdGF0ZS53YWl0VW50aWxSZXNvbHZlKCk7XG4gICAgICAgIHN0YXRlLndhaXRVbnRpbFByb21pc2UgPSBudWxsO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcm5hbF9nZXRDdXJyZW50RnVuY3Rpb25XYWl0VW50aWwoKSB7XG4gICAgcmV0dXJuIHN0YXRlLndhaXRVbnRpbFByb21pc2U7XG59XG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxfcnVuV2l0aFdhaXRVbnRpbChmbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZuKCk7XG4gICAgaWYgKHJlc3VsdCAmJiB0eXBlb2YgcmVzdWx0ID09PSBcIm9iamVjdFwiICYmIFwidGhlblwiIGluIHJlc3VsdCAmJiBcImZpbmFsbHlcIiBpbiByZXN1bHQgJiYgdHlwZW9mIHJlc3VsdC50aGVuID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHJlc3VsdC5maW5hbGx5ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKCFzdGF0ZS53YWl0VW50aWxDb3VudGVyKSB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgdGhlIHByb21pc2UgZm9yIHRoZSBuZXh0IGJhdGNoIG9mIHdhaXRVbnRpbCBjYWxscy5cbiAgICAgICAgICAgIHN0YXRlLndhaXRVbnRpbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgICAgICAgICBzdGF0ZS53YWl0VW50aWxSZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHN0YXRlLndhaXRVbnRpbENvdW50ZXIrKztcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICByZXNvbHZlT25lUHJvbWlzZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJuYWwtZWRnZS13YWl0LXVudGlsLmpzLm1hcCJdLCJuYW1lcyI6WyJHTE9CQUxfS0VZIiwiU3ltYm9sIiwiZm9yIiwic3RhdGUiLCJnbG9iYWxUaGlzIiwid2FpdFVudGlsQ291bnRlciIsIndhaXRVbnRpbFJlc29sdmUiLCJ1bmRlZmluZWQiLCJ3YWl0VW50aWxQcm9taXNlIiwicmVzb2x2ZU9uZVByb21pc2UiLCJpbnRlcm5hbF9nZXRDdXJyZW50RnVuY3Rpb25XYWl0VW50aWwiLCJpbnRlcm5hbF9ydW5XaXRoV2FpdFVudGlsIiwiZm4iLCJyZXN1bHQiLCJ0aGVuIiwiZmluYWxseSIsIlByb21pc2UiLCJyZXNvbHZlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/internal-edge-wait-until.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/next-url.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/next-url.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NextURL: () => (/* binding */ NextURL)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_i18n_detect_domain_locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js\");\n/* harmony import */ var _shared_lib_router_utils_format_next_pathname_info__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js\");\n/* harmony import */ var _shared_lib_get_hostname__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/get-hostname.js\");\n/* harmony import */ var _shared_lib_router_utils_get_next_pathname_info__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js\");\n\n\n\n\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, \"localhost\"), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, \"localhost\"));\n}\nconst Internal = Symbol(\"NextURLInternal\");\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === \"object\" && \"pathname\" in baseOrOpts || typeof baseOrOpts === \"string\") {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: \"\"\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0,_shared_lib_router_utils_get_next_pathname_info__WEBPACK_IMPORTED_MODULE_3__.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !undefined,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0,_shared_lib_get_hostname__WEBPACK_IMPORTED_MODULE_2__.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0,_shared_lib_i18n_detect_domain_locale__WEBPACK_IMPORTED_MODULE_0__.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? \"\";\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0,_shared_lib_router_utils_format_next_pathname_info__WEBPACK_IMPORTED_MODULE_1__.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? \"\";\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw new TypeError(`The NextURL configuration includes no locale \"${locale}\"`);\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith(\"/\") ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n} //# sourceMappingURL=next-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9uZXh0LXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFnRjtBQUNpQjtBQUNyQztBQUMrQjtBQUMzRixNQUFNSSwyQkFBMkI7QUFDakMsU0FBU0MsU0FBU0MsR0FBRyxFQUFFQyxJQUFJO0lBQ3ZCLE9BQU8sSUFBSUMsSUFBSUMsT0FBT0gsS0FBS0ksT0FBTyxDQUFDTiwwQkFBMEIsY0FBY0csUUFBUUUsT0FBT0YsTUFBTUcsT0FBTyxDQUFDTiwwQkFBMEI7QUFDdEk7QUFDQSxNQUFNTyxXQUFXQyxPQUFPO0FBQ2pCLE1BQU1DO0lBQ1RDLFlBQVlDLEtBQUssRUFBRUMsVUFBVSxFQUFFQyxJQUFJLENBQUM7UUFDaEMsSUFBSVY7UUFDSixJQUFJVztRQUNKLElBQUksT0FBT0YsZUFBZSxZQUFZLGNBQWNBLGNBQWMsT0FBT0EsZUFBZSxVQUFVO1lBQzlGVCxPQUFPUztZQUNQRSxVQUFVRCxRQUFRLENBQUM7UUFDdkIsT0FBTztZQUNIQyxVQUFVRCxRQUFRRCxjQUFjLENBQUM7UUFDckM7UUFDQSxJQUFJLENBQUNMLFNBQVMsR0FBRztZQUNiTCxLQUFLRCxTQUFTVSxPQUFPUixRQUFRVyxRQUFRWCxJQUFJO1lBQ3pDVyxTQUFTQTtZQUNUQyxVQUFVO1FBQ2Q7UUFDQSxJQUFJLENBQUNDLE9BQU87SUFDaEI7SUFDQUEsVUFBVTtRQUNOLElBQUlDLHdDQUF3Q0MsbUNBQW1DQyw2QkFBNkJDLHlDQUF5Q0M7UUFDckosTUFBTUMsT0FBT3ZCLG9HQUFtQkEsQ0FBQyxJQUFJLENBQUNRLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDcUIsUUFBUSxFQUFFO1lBQzFEQyxZQUFZLElBQUksQ0FBQ2pCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDVSxVQUFVO1lBQzdDQyxXQUFXLENBQUNDLFNBQThDO1lBQzFERyxjQUFjLElBQUksQ0FBQ3RCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDZSxZQUFZO1FBQ3JEO1FBQ0EsTUFBTUMsV0FBV2hDLHFFQUFXQSxDQUFDLElBQUksQ0FBQ1MsU0FBUyxDQUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDSyxTQUFTLENBQUNPLE9BQU8sQ0FBQ2lCLE9BQU87UUFDL0UsSUFBSSxDQUFDeEIsU0FBUyxDQUFDeUIsWUFBWSxHQUFHLElBQUksQ0FBQ3pCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDZSxZQUFZLEdBQUcsSUFBSSxDQUFDdEIsU0FBUyxDQUFDTyxPQUFPLENBQUNlLFlBQVksQ0FBQ2pDLGtCQUFrQixDQUFDa0MsWUFBWWxDLHlGQUFrQkEsQ0FBQyxDQUFDc0Isb0NBQW9DLElBQUksQ0FBQ1gsU0FBUyxDQUFDTyxPQUFPLENBQUNVLFVBQVUsS0FBSyxPQUFPLEtBQUssSUFBSSxDQUFDUCx5Q0FBeUNDLGtDQUFrQ2UsSUFBSSxLQUFLLE9BQU8sS0FBSyxJQUFJaEIsdUNBQXVDaUIsT0FBTyxFQUFFSjtRQUMxWSxNQUFNSyxnQkFBZ0IsQ0FBQyxDQUFDaEIsOEJBQThCLElBQUksQ0FBQ1osU0FBUyxDQUFDeUIsWUFBWSxLQUFLLE9BQU8sS0FBSyxJQUFJYiw0QkFBNEJnQixhQUFhLEtBQU0sRUFBQ2QscUNBQXFDLElBQUksQ0FBQ2QsU0FBUyxDQUFDTyxPQUFPLENBQUNVLFVBQVUsS0FBSyxPQUFPLEtBQUssSUFBSSxDQUFDSiwwQ0FBMENDLG1DQUFtQ1ksSUFBSSxLQUFLLE9BQU8sS0FBSyxJQUFJYix3Q0FBd0NlLGFBQWE7UUFDN1ksSUFBSSxDQUFDNUIsU0FBUyxDQUFDTCxHQUFHLENBQUNxQixRQUFRLEdBQUdELEtBQUtDLFFBQVE7UUFDM0MsSUFBSSxDQUFDaEIsU0FBUyxDQUFDNEIsYUFBYSxHQUFHQTtRQUMvQixJQUFJLENBQUM1QixTQUFTLENBQUNRLFFBQVEsR0FBR08sS0FBS1AsUUFBUSxJQUFJO1FBQzNDLElBQUksQ0FBQ1IsU0FBUyxDQUFDNkIsT0FBTyxHQUFHZCxLQUFLYyxPQUFPO1FBQ3JDLElBQUksQ0FBQzdCLFNBQVMsQ0FBQzhCLE1BQU0sR0FBR2YsS0FBS2UsTUFBTSxJQUFJRjtRQUN2QyxJQUFJLENBQUM1QixTQUFTLENBQUMrQixhQUFhLEdBQUdoQixLQUFLZ0IsYUFBYTtJQUNyRDtJQUNBQyxpQkFBaUI7UUFDYixPQUFPMUMsMEdBQXNCQSxDQUFDO1lBQzFCa0IsVUFBVSxJQUFJLENBQUNSLFNBQVMsQ0FBQ1EsUUFBUTtZQUNqQ3FCLFNBQVMsSUFBSSxDQUFDN0IsU0FBUyxDQUFDNkIsT0FBTztZQUMvQkQsZUFBZSxDQUFDLElBQUksQ0FBQzVCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDMEIsV0FBVyxHQUFHLElBQUksQ0FBQ2pDLFNBQVMsQ0FBQzRCLGFBQWEsR0FBR007WUFDcEZKLFFBQVEsSUFBSSxDQUFDOUIsU0FBUyxDQUFDOEIsTUFBTTtZQUM3QmQsVUFBVSxJQUFJLENBQUNoQixTQUFTLENBQUNMLEdBQUcsQ0FBQ3FCLFFBQVE7WUFDckNlLGVBQWUsSUFBSSxDQUFDL0IsU0FBUyxDQUFDK0IsYUFBYTtRQUMvQztJQUNKO0lBQ0FJLGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQ25DLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDeUMsTUFBTTtJQUNwQztJQUNBLElBQUlQLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQzdCLFNBQVMsQ0FBQzZCLE9BQU87SUFDakM7SUFDQSxJQUFJQSxRQUFRQSxPQUFPLEVBQUU7UUFDakIsSUFBSSxDQUFDN0IsU0FBUyxDQUFDNkIsT0FBTyxHQUFHQTtJQUM3QjtJQUNBLElBQUlDLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQzlCLFNBQVMsQ0FBQzhCLE1BQU0sSUFBSTtJQUNwQztJQUNBLElBQUlBLE9BQU9BLE1BQU0sRUFBRTtRQUNmLElBQUlwQix3Q0FBd0NDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUNYLFNBQVMsQ0FBQzhCLE1BQU0sSUFBSSxDQUFFLEVBQUNuQixvQ0FBb0MsSUFBSSxDQUFDWCxTQUFTLENBQUNPLE9BQU8sQ0FBQ1UsVUFBVSxLQUFLLE9BQU8sS0FBSyxJQUFJLENBQUNQLHlDQUF5Q0Msa0NBQWtDZSxJQUFJLEtBQUssT0FBTyxLQUFLLElBQUloQix1Q0FBdUMyQixPQUFPLENBQUNDLFFBQVEsQ0FBQ1IsT0FBTSxHQUFJO1lBQzlSLE1BQU0sSUFBSVMsVUFBVSxDQUFDLDhDQUE4QyxFQUFFVCxPQUFPLENBQUMsQ0FBQztRQUNsRjtRQUNBLElBQUksQ0FBQzlCLFNBQVMsQ0FBQzhCLE1BQU0sR0FBR0E7SUFDNUI7SUFDQSxJQUFJRixnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUM1QixTQUFTLENBQUM0QixhQUFhO0lBQ3ZDO0lBQ0EsSUFBSUgsZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDekIsU0FBUyxDQUFDeUIsWUFBWTtJQUN0QztJQUNBLElBQUllLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQ3hDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDNkMsWUFBWTtJQUMxQztJQUNBLElBQUlDLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQ3pDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDOEMsSUFBSTtJQUNsQztJQUNBLElBQUlBLEtBQUtDLEtBQUssRUFBRTtRQUNaLElBQUksQ0FBQzFDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDOEMsSUFBSSxHQUFHQztJQUM5QjtJQUNBLElBQUluQixXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUN2QixTQUFTLENBQUNMLEdBQUcsQ0FBQzRCLFFBQVE7SUFDdEM7SUFDQSxJQUFJQSxTQUFTbUIsS0FBSyxFQUFFO1FBQ2hCLElBQUksQ0FBQzFDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDNEIsUUFBUSxHQUFHbUI7SUFDbEM7SUFDQSxJQUFJQyxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMzQyxTQUFTLENBQUNMLEdBQUcsQ0FBQ2dELElBQUk7SUFDbEM7SUFDQSxJQUFJQSxLQUFLRCxLQUFLLEVBQUU7UUFDWixJQUFJLENBQUMxQyxTQUFTLENBQUNMLEdBQUcsQ0FBQ2dELElBQUksR0FBR0Q7SUFDOUI7SUFDQSxJQUFJRSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUM1QyxTQUFTLENBQUNMLEdBQUcsQ0FBQ2lELFFBQVE7SUFDdEM7SUFDQSxJQUFJQSxTQUFTRixLQUFLLEVBQUU7UUFDaEIsSUFBSSxDQUFDMUMsU0FBUyxDQUFDTCxHQUFHLENBQUNpRCxRQUFRLEdBQUdGO0lBQ2xDO0lBQ0EsSUFBSUcsT0FBTztRQUNQLE1BQU03QixXQUFXLElBQUksQ0FBQ2dCLGNBQWM7UUFDcEMsTUFBTUksU0FBUyxJQUFJLENBQUNELFlBQVk7UUFDaEMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDUyxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQ0gsSUFBSSxDQUFDLEVBQUV6QixTQUFTLEVBQUVvQixPQUFPLEVBQUUsSUFBSSxDQUFDVSxJQUFJLENBQUMsQ0FBQztJQUMzRTtJQUNBLElBQUlELEtBQUtsRCxHQUFHLEVBQUU7UUFDVixJQUFJLENBQUNLLFNBQVMsQ0FBQ0wsR0FBRyxHQUFHRCxTQUFTQztRQUM5QixJQUFJLENBQUNjLE9BQU87SUFDaEI7SUFDQSxJQUFJc0MsU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDL0MsU0FBUyxDQUFDTCxHQUFHLENBQUNvRCxNQUFNO0lBQ3BDO0lBQ0EsSUFBSS9CLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQ2hCLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDcUIsUUFBUTtJQUN0QztJQUNBLElBQUlBLFNBQVMwQixLQUFLLEVBQUU7UUFDaEIsSUFBSSxDQUFDMUMsU0FBUyxDQUFDTCxHQUFHLENBQUNxQixRQUFRLEdBQUcwQjtJQUNsQztJQUNBLElBQUlJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQzlDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDbUQsSUFBSTtJQUNsQztJQUNBLElBQUlBLEtBQUtKLEtBQUssRUFBRTtRQUNaLElBQUksQ0FBQzFDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDbUQsSUFBSSxHQUFHSjtJQUM5QjtJQUNBLElBQUlOLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQ3BDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDeUMsTUFBTTtJQUNwQztJQUNBLElBQUlBLE9BQU9NLEtBQUssRUFBRTtRQUNkLElBQUksQ0FBQzFDLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDeUMsTUFBTSxHQUFHTTtJQUNoQztJQUNBLElBQUlNLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQ2hELFNBQVMsQ0FBQ0wsR0FBRyxDQUFDcUQsUUFBUTtJQUN0QztJQUNBLElBQUlBLFNBQVNOLEtBQUssRUFBRTtRQUNoQixJQUFJLENBQUMxQyxTQUFTLENBQUNMLEdBQUcsQ0FBQ3FELFFBQVEsR0FBR047SUFDbEM7SUFDQSxJQUFJTyxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUNqRCxTQUFTLENBQUNMLEdBQUcsQ0FBQ3NELFFBQVE7SUFDdEM7SUFDQSxJQUFJQSxTQUFTUCxLQUFLLEVBQUU7UUFDaEIsSUFBSSxDQUFDMUMsU0FBUyxDQUFDTCxHQUFHLENBQUNzRCxRQUFRLEdBQUdQO0lBQ2xDO0lBQ0EsSUFBSWxDLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQ1IsU0FBUyxDQUFDUSxRQUFRO0lBQ2xDO0lBQ0EsSUFBSUEsU0FBU2tDLEtBQUssRUFBRTtRQUNoQixJQUFJLENBQUMxQyxTQUFTLENBQUNRLFFBQVEsR0FBR2tDLE1BQU1RLFVBQVUsQ0FBQyxPQUFPUixRQUFRLENBQUMsQ0FBQyxFQUFFQSxNQUFNLENBQUM7SUFDekU7SUFDQVMsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDTixJQUFJO0lBQ3BCO0lBQ0FPLFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQ1AsSUFBSTtJQUNwQjtJQUNBLENBQUM1QyxPQUFPb0QsR0FBRyxDQUFDLCtCQUErQixHQUFHO1FBQzFDLE9BQU87WUFDSFIsTUFBTSxJQUFJLENBQUNBLElBQUk7WUFDZkUsUUFBUSxJQUFJLENBQUNBLE1BQU07WUFDbkJILFVBQVUsSUFBSSxDQUFDQSxRQUFRO1lBQ3ZCSyxVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2QkQsVUFBVSxJQUFJLENBQUNBLFFBQVE7WUFDdkJQLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2ZsQixVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2Qm9CLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2YzQixVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2Qm9CLFFBQVEsSUFBSSxDQUFDQSxNQUFNO1lBQ25CSSxjQUFjLElBQUksQ0FBQ0EsWUFBWTtZQUMvQk0sTUFBTSxJQUFJLENBQUNBLElBQUk7UUFDbkI7SUFDSjtJQUNBUSxRQUFRO1FBQ0osT0FBTyxJQUFJcEQsUUFBUUosT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDRSxTQUFTLENBQUNPLE9BQU87SUFDM0Q7QUFDSixFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9uZXh0LXVybC5qcz9iMWNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRldGVjdERvbWFpbkxvY2FsZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGVcIjtcbmltcG9ydCB7IGZvcm1hdE5leHRQYXRobmFtZUluZm8gfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mb1wiO1xuaW1wb3J0IHsgZ2V0SG9zdG5hbWUgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWVcIjtcbmltcG9ydCB7IGdldE5leHRQYXRobmFtZUluZm8gfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mb1wiO1xuY29uc3QgUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FID0gLyg/IV5odHRwcz86XFwvXFwvKSgxMjcoPzpcXC4oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pKXszfXxcXFs6OjFcXF18bG9jYWxob3N0KS87XG5mdW5jdGlvbiBwYXJzZVVSTCh1cmwsIGJhc2UpIHtcbiAgICByZXR1cm4gbmV3IFVSTChTdHJpbmcodXJsKS5yZXBsYWNlKFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSwgXCJsb2NhbGhvc3RcIiksIGJhc2UgJiYgU3RyaW5nKGJhc2UpLnJlcGxhY2UoUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FLCBcImxvY2FsaG9zdFwiKSk7XG59XG5jb25zdCBJbnRlcm5hbCA9IFN5bWJvbChcIk5leHRVUkxJbnRlcm5hbFwiKTtcbmV4cG9ydCBjbGFzcyBOZXh0VVJMIHtcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCwgYmFzZU9yT3B0cywgb3B0cyl7XG4gICAgICAgIGxldCBiYXNlO1xuICAgICAgICBsZXQgb3B0aW9ucztcbiAgICAgICAgaWYgKHR5cGVvZiBiYXNlT3JPcHRzID09PSBcIm9iamVjdFwiICYmIFwicGF0aG5hbWVcIiBpbiBiYXNlT3JPcHRzIHx8IHR5cGVvZiBiYXNlT3JPcHRzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBiYXNlID0gYmFzZU9yT3B0cztcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRzIHx8IHt9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdHMgfHwgYmFzZU9yT3B0cyB8fCB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW0ludGVybmFsXSA9IHtcbiAgICAgICAgICAgIHVybDogcGFyc2VVUkwoaW5wdXQsIGJhc2UgPz8gb3B0aW9ucy5iYXNlKSxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICBiYXNlUGF0aDogXCJcIlxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmFuYWx5emUoKTtcbiAgICB9XG4gICAgYW5hbHl6ZSgpIHtcbiAgICAgICAgdmFyIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcsIF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZSwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxO1xuICAgICAgICBjb25zdCBpbmZvID0gZ2V0TmV4dFBhdGhuYW1lSW5mbyh0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUsIHtcbiAgICAgICAgICAgIG5leHRDb25maWc6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZyxcbiAgICAgICAgICAgIHBhcnNlRGF0YTogIXByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUsXG4gICAgICAgICAgICBpMThuUHJvdmlkZXI6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBob3N0bmFtZSA9IGdldEhvc3RuYW1lKHRoaXNbSW50ZXJuYWxdLnVybCwgdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5oZWFkZXJzKTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXIgPyB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlci5kZXRlY3REb21haW5Mb2NhbGUoaG9zdG5hbWUpIDogZGV0ZWN0RG9tYWluTG9jYWxlKChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4gPSBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLmRvbWFpbnMsIGhvc3RuYW1lKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdExvY2FsZSA9ICgoX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlID0gdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlLmRlZmF1bHRMb2NhbGUpIHx8ICgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMSA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEgPSBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEuZGVmYXVsdExvY2FsZSk7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSA9IGluZm8ucGF0aG5hbWU7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGUgPSBkZWZhdWx0TG9jYWxlO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCA9IGluZm8uYmFzZVBhdGggPz8gXCJcIjtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCA9IGluZm8uYnVpbGRJZDtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0ubG9jYWxlID0gaW5mby5sb2NhbGUgPz8gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udHJhaWxpbmdTbGFzaCA9IGluZm8udHJhaWxpbmdTbGFzaDtcbiAgICB9XG4gICAgZm9ybWF0UGF0aG5hbWUoKSB7XG4gICAgICAgIHJldHVybiBmb3JtYXROZXh0UGF0aG5hbWVJbmZvKHtcbiAgICAgICAgICAgIGJhc2VQYXRoOiB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCxcbiAgICAgICAgICAgIGJ1aWxkSWQ6IHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQsXG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlOiAhdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5mb3JjZUxvY2FsZSA/IHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBsb2NhbGU6IHRoaXNbSW50ZXJuYWxdLmxvY2FsZSxcbiAgICAgICAgICAgIHBhdGhuYW1lOiB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUsXG4gICAgICAgICAgICB0cmFpbGluZ1NsYXNoOiB0aGlzW0ludGVybmFsXS50cmFpbGluZ1NsYXNoXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmb3JtYXRTZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoO1xuICAgIH1cbiAgICBnZXQgYnVpbGRJZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQ7XG4gICAgfVxuICAgIHNldCBidWlsZElkKGJ1aWxkSWQpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCA9IGJ1aWxkSWQ7XG4gICAgfVxuICAgIGdldCBsb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5sb2NhbGUgPz8gXCJcIjtcbiAgICB9XG4gICAgc2V0IGxvY2FsZShsb2NhbGUpIHtcbiAgICAgICAgdmFyIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWc7XG4gICAgICAgIGlmICghdGhpc1tJbnRlcm5hbF0ubG9jYWxlIHx8ICEoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZyA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4ubG9jYWxlcy5pbmNsdWRlcyhsb2NhbGUpKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIE5leHRVUkwgY29uZmlndXJhdGlvbiBpbmNsdWRlcyBubyBsb2NhbGUgXCIke2xvY2FsZX1cImApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmxvY2FsZSA9IGxvY2FsZTtcbiAgICB9XG4gICAgZ2V0IGRlZmF1bHRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlO1xuICAgIH1cbiAgICBnZXQgZG9tYWluTG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoUGFyYW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgZ2V0IGhvc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaG9zdDtcbiAgICB9XG4gICAgc2V0IGhvc3QodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhvc3QgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhvc3RuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhvc3RuYW1lO1xuICAgIH1cbiAgICBzZXQgaG9zdG5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhvc3RuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwb3J0KCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBvcnQ7XG4gICAgfVxuICAgIHNldCBwb3J0KHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wb3J0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwcm90b2NvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wcm90b2NvbDtcbiAgICB9XG4gICAgc2V0IHByb3RvY29sKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wcm90b2NvbCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaHJlZigpIHtcbiAgICAgICAgY29uc3QgcGF0aG5hbWUgPSB0aGlzLmZvcm1hdFBhdGhuYW1lKCk7XG4gICAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuZm9ybWF0U2VhcmNoKCk7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnByb3RvY29sfS8vJHt0aGlzLmhvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke3RoaXMuaGFzaH1gO1xuICAgIH1cbiAgICBzZXQgaHJlZih1cmwpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsID0gcGFyc2VVUkwodXJsKTtcbiAgICAgICAgdGhpcy5hbmFseXplKCk7XG4gICAgfVxuICAgIGdldCBvcmlnaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwub3JpZ2luO1xuICAgIH1cbiAgICBnZXQgcGF0aG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWU7XG4gICAgfVxuICAgIHNldCBwYXRobmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhhc2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaGFzaDtcbiAgICB9XG4gICAgc2V0IGhhc2godmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLmhhc2ggPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHNlYXJjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2g7XG4gICAgfVxuICAgIHNldCBzZWFyY2godmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcGFzc3dvcmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucGFzc3dvcmQ7XG4gICAgfVxuICAgIHNldCBwYXNzd29yZCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGFzc3dvcmQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHVzZXJuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnVzZXJuYW1lO1xuICAgIH1cbiAgICBzZXQgdXNlcm5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnVzZXJuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBiYXNlUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoO1xuICAgIH1cbiAgICBzZXQgYmFzZVBhdGgodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGggPSB2YWx1ZS5zdGFydHNXaXRoKFwiL1wiKSA/IHZhbHVlIDogYC8ke3ZhbHVlfWA7XG4gICAgfVxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ocmVmO1xuICAgIH1cbiAgICB0b0pTT04oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhyZWY7XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKFwiZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tXCIpXSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHRoaXMuaHJlZixcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5vcmlnaW4sXG4gICAgICAgICAgICBwcm90b2NvbDogdGhpcy5wcm90b2NvbCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiB0aGlzLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXG4gICAgICAgICAgICBob3N0OiB0aGlzLmhvc3QsXG4gICAgICAgICAgICBob3N0bmFtZTogdGhpcy5ob3N0bmFtZSxcbiAgICAgICAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgICAgICAgIHBhdGhuYW1lOiB0aGlzLnBhdGhuYW1lLFxuICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaCxcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtczogdGhpcy5zZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICBoYXNoOiB0aGlzLmhhc2hcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFVSTChTdHJpbmcodGhpcyksIHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC11cmwuanMubWFwIl0sIm5hbWVzIjpbImRldGVjdERvbWFpbkxvY2FsZSIsImZvcm1hdE5leHRQYXRobmFtZUluZm8iLCJnZXRIb3N0bmFtZSIsImdldE5leHRQYXRobmFtZUluZm8iLCJSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUiLCJwYXJzZVVSTCIsInVybCIsImJhc2UiLCJVUkwiLCJTdHJpbmciLCJyZXBsYWNlIiwiSW50ZXJuYWwiLCJTeW1ib2wiLCJOZXh0VVJMIiwiY29uc3RydWN0b3IiLCJpbnB1dCIsImJhc2VPck9wdHMiLCJvcHRzIiwib3B0aW9ucyIsImJhc2VQYXRoIiwiYW5hbHl6ZSIsIl90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuIiwiX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnIiwiX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlIiwiX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xIiwiX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMSIsImluZm8iLCJwYXRobmFtZSIsIm5leHRDb25maWciLCJwYXJzZURhdGEiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSIsImkxOG5Qcm92aWRlciIsImhvc3RuYW1lIiwiaGVhZGVycyIsImRvbWFpbkxvY2FsZSIsImkxOG4iLCJkb21haW5zIiwiZGVmYXVsdExvY2FsZSIsImJ1aWxkSWQiLCJsb2NhbGUiLCJ0cmFpbGluZ1NsYXNoIiwiZm9ybWF0UGF0aG5hbWUiLCJmb3JjZUxvY2FsZSIsInVuZGVmaW5lZCIsImZvcm1hdFNlYXJjaCIsInNlYXJjaCIsImxvY2FsZXMiLCJpbmNsdWRlcyIsIlR5cGVFcnJvciIsInNlYXJjaFBhcmFtcyIsImhvc3QiLCJ2YWx1ZSIsInBvcnQiLCJwcm90b2NvbCIsImhyZWYiLCJoYXNoIiwib3JpZ2luIiwicGFzc3dvcmQiLCJ1c2VybmFtZSIsInN0YXJ0c1dpdGgiLCJ0b1N0cmluZyIsInRvSlNPTiIsImZvciIsImNsb25lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/next-url.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeadersAdapter: () => (/* binding */ HeadersAdapter),\n/* harmony export */ ReadonlyHeadersError: () => (/* binding */ ReadonlyHeadersError)\n/* harmony export */ });\n/* harmony import */ var _reflect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reflect */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\");\n\n/**\n * @internal\n */ class ReadonlyHeadersError extends Error {\n constructor(){\n super(\"Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers\");\n }\n static callable() {\n throw new ReadonlyHeadersError();\n }\n}\nclass HeadersAdapter extends Headers {\n constructor(headers){\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super();\n this.headers = new Proxy(headers, {\n get (target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === \"symbol\") {\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, prop, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return undefined.\n if (typeof original === \"undefined\") return;\n // If the original casing exists, return the value.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === \"symbol\") {\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.set(target, prop, value, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, use the prop as the key.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === \"symbol\") return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.has(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return false.\n if (typeof original === \"undefined\") return false;\n // If the original casing exists, return true.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === \"symbol\") return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.deleteProperty(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return true.\n if (typeof original === \"undefined\") return true;\n // If the original casing exists, delete the property.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.deleteProperty(target, original);\n }\n });\n }\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */ static seal(headers) {\n return new Proxy(headers, {\n get (target, prop, receiver) {\n switch(prop){\n case \"append\":\n case \"delete\":\n case \"set\":\n return ReadonlyHeadersError.callable;\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */ merge(value) {\n if (Array.isArray(value)) return value.join(\", \");\n return value;\n }\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */ static from(headers) {\n if (headers instanceof Headers) return headers;\n return new HeadersAdapter(headers);\n }\n append(name, value) {\n const existing = this.headers[name];\n if (typeof existing === \"string\") {\n this.headers[name] = [\n existing,\n value\n ];\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n this.headers[name] = value;\n }\n }\n delete(name) {\n delete this.headers[name];\n }\n get(name) {\n const value = this.headers[name];\n if (typeof value !== \"undefined\") return this.merge(value);\n return null;\n }\n has(name) {\n return typeof this.headers[name] !== \"undefined\";\n }\n set(name, value) {\n this.headers[name] = value;\n }\n forEach(callbackfn, thisArg) {\n for (const [name, value] of this.entries()){\n callbackfn.call(thisArg, value, name, this);\n }\n }\n *entries() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name);\n yield [\n name,\n value\n ];\n }\n }\n *keys() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n yield name;\n }\n }\n *values() {\n for (const key of Object.keys(this.headers)){\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key);\n yield value;\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n} //# sourceMappingURL=headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEyQztBQUMzQzs7Q0FFQyxHQUFVLE1BQU1DLDZCQUE2QkM7SUFDMUNDLGFBQWE7UUFDVCxLQUFLLENBQUM7SUFDVjtJQUNBLE9BQU9DLFdBQVc7UUFDZCxNQUFNLElBQUlIO0lBQ2Q7QUFDSjtBQUNPLE1BQU1JLHVCQUF1QkM7SUFDaENILFlBQVlJLE9BQU8sQ0FBQztRQUNoQiwyRUFBMkU7UUFDM0UsMkVBQTJFO1FBQzNFLEtBQUs7UUFDTCxJQUFJLENBQUNBLE9BQU8sR0FBRyxJQUFJQyxNQUFNRCxTQUFTO1lBQzlCRSxLQUFLQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUTtnQkFDdkIsc0VBQXNFO2dCQUN0RSxzRUFBc0U7Z0JBQ3RFLGNBQWM7Z0JBQ2QsSUFBSSxPQUFPRCxTQUFTLFVBQVU7b0JBQzFCLE9BQU9YLG9EQUFjQSxDQUFDUyxHQUFHLENBQUNDLFFBQVFDLE1BQU1DO2dCQUM1QztnQkFDQSxNQUFNQyxhQUFhRixLQUFLRyxXQUFXO2dCQUNuQyx3RUFBd0U7Z0JBQ3hFLHFFQUFxRTtnQkFDckUsa0JBQWtCO2dCQUNsQixNQUFNQyxXQUFXQyxPQUFPQyxJQUFJLENBQUNWLFNBQVNXLElBQUksQ0FBQyxDQUFDQyxJQUFJQSxFQUFFTCxXQUFXLE9BQU9EO2dCQUNwRSwwREFBMEQ7Z0JBQzFELElBQUksT0FBT0UsYUFBYSxhQUFhO2dCQUNyQyxtREFBbUQ7Z0JBQ25ELE9BQU9mLG9EQUFjQSxDQUFDUyxHQUFHLENBQUNDLFFBQVFLLFVBQVVIO1lBQ2hEO1lBQ0FRLEtBQUtWLE1BQU0sRUFBRUMsSUFBSSxFQUFFVSxLQUFLLEVBQUVULFFBQVE7Z0JBQzlCLElBQUksT0FBT0QsU0FBUyxVQUFVO29CQUMxQixPQUFPWCxvREFBY0EsQ0FBQ29CLEdBQUcsQ0FBQ1Ys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QzVCLE1BQU1jLFFBQVEsSUFBSSxDQUFDWixHQUFHLENBQUMrQjtZQUN2QixNQUFNbkI7UUFDVjtJQUNKO0lBQ0EsQ0FBQ3FCLE9BQU9DLFFBQVEsQ0FBQyxHQUFHO1FBQ2hCLE9BQU8sSUFBSSxDQUFDTCxPQUFPO0lBQ3ZCO0FBQ0osRUFFQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvaGVhZGVycy5qcz82OTYxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZmxlY3RBZGFwdGVyIH0gZnJvbSBcIi4vcmVmbGVjdFwiO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY2xhc3MgUmVhZG9ubHlIZWFkZXJzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoXCJIZWFkZXJzIGNhbm5vdCBiZSBtb2RpZmllZC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvaGVhZGVyc1wiKTtcbiAgICB9XG4gICAgc3RhdGljIGNhbGxhYmxlKCkge1xuICAgICAgICB0aHJvdyBuZXcgUmVhZG9ubHlIZWFkZXJzRXJyb3IoKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSGVhZGVyc0FkYXB0ZXIgZXh0ZW5kcyBIZWFkZXJzIHtcbiAgICBjb25zdHJ1Y3RvcihoZWFkZXJzKXtcbiAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBvdmVycmlkZGVuIHRoZSBtZXRob2RzIHRoYXQgd291bGQgYmUgY2FsbGVkLCBzbyB3ZSdyZSBqdXN0XG4gICAgICAgIC8vIGNhbGxpbmcgdGhlIHN1cGVyIGNvbnN0cnVjdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBpbnN0YW5jZW9mIGNoZWNrIHdvcmtzLlxuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBuZXcgUHJveHkoaGVhZGVycywge1xuICAgICAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGlzIGlzIGp1c3QgYW4gb2JqZWN0LCB3ZSBleHBlY3QgdGhhdCBhbGwgXCJnZXRcIiBvcGVyYXRpb25zXG4gICAgICAgICAgICAgICAgLy8gYXJlIGZvciBwcm9wZXJ0aWVzLiBJZiBpdCdzIGEgXCJnZXRcIiBmb3IgYSBzeW1ib2wsIHdlJ2xsIGp1c3QgcmV0dXJuXG4gICAgICAgICAgICAgICAgLy8gdGhlIHN5bWJvbC5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09IFwic3ltYm9sXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbG93ZXJjYXNlZCA9IHByb3AudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAvLyBMZXQncyBmaW5kIHRoZSBvcmlnaW5hbCBjYXNpbmcgb2YgdGhlIGtleS4gVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAvLyBubyBtaXhlZCBjYXNlIGtleXMgKGUuZy4gXCJDb250ZW50LVR5cGVcIiBhbmQgXCJjb250ZW50LXR5cGVcIikgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaGVhZGVycyBvYmplY3QuXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBPYmplY3Qua2V5cyhoZWFkZXJzKS5maW5kKChvKT0+by50b0xvd2VyQ2FzZSgpID09PSBsb3dlcmNhc2VkKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGRvZXNuJ3QgZXhpc3QsIHJldHVybiB1bmRlZmluZWQuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCByZXR1cm4gdGhlIHZhbHVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBvcmlnaW5hbCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09IFwic3ltYm9sXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCB1c2UgdGhlIHByb3AgYXMgdGhlIGtleS5cbiAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuc2V0KHRhcmdldCwgb3JpZ2luYWwgPz8gcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzeW1ib2xcIikgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCByZXR1cm4gZmFsc2UuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCByZXR1cm4gdHJ1ZS5cbiAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgb3JpZ2luYWwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlbGV0ZVByb3BlcnR5ICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09IFwic3ltYm9sXCIpIHJldHVybiBSZWZsZWN0QWRhcHRlci5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCByZXR1cm4gdHJ1ZS5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGV4aXN0cywgZGVsZXRlIHRoZSBwcm9wZXJ0eS5cbiAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBvcmlnaW5hbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICogU2VhbHMgYSBIZWFkZXJzIGluc3RhbmNlIHRvIHByZXZlbnQgbW9kaWZpY2F0aW9uIGJ5IHRocm93aW5nIGFuIGVycm9yIHdoZW5cbiAgICogYW55IG11dGF0aW5nIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAqLyBzdGF0aWMgc2VhbChoZWFkZXJzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkoaGVhZGVycywge1xuICAgICAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiYXBwZW5kXCI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJkZWxldGVcIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcInNldFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlYWRvbmx5SGVhZGVyc0Vycm9yLmNhbGxhYmxlO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICogTWVyZ2VzIGEgaGVhZGVyIHZhbHVlIGludG8gYSBzdHJpbmcuIFRoaXMgc3RvcmVzIG11bHRpcGxlIHZhbHVlcyBhcyBhblxuICAgKiBhcnJheSwgc28gd2UgbmVlZCB0byBtZXJnZSB0aGVtIGludG8gYSBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBhIGhlYWRlciB2YWx1ZVxuICAgKiBAcmV0dXJucyBhIG1lcmdlZCBoZWFkZXIgdmFsdWUgKGEgc3RyaW5nKVxuICAgKi8gbWVyZ2UodmFsdWUpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWUuam9pbihcIiwgXCIpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDcmVhdGVzIGEgSGVhZGVycyBpbnN0YW5jZSBmcm9tIGEgcGxhaW4gb2JqZWN0IG9yIGEgSGVhZGVycyBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlcnMgYSBwbGFpbiBvYmplY3Qgb3IgYSBIZWFkZXJzIGluc3RhbmNlXG4gICAqIEByZXR1cm5zIGEgaGVhZGVycyBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb20oaGVhZGVycykge1xuICAgICAgICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHJldHVybiBoZWFkZXJzO1xuICAgICAgICByZXR1cm4gbmV3IEhlYWRlcnNBZGFwdGVyKGhlYWRlcnMpO1xuICAgIH1cbiAgICBhcHBlbmQobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmhlYWRlcnNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tuYW1lXSA9IFtcbiAgICAgICAgICAgICAgICBleGlzdGluZyxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgICAgICAgZXhpc3RpbmcucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWxldGUobmFtZSkge1xuICAgICAgICBkZWxldGUgdGhpcy5oZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgICBnZXQobmFtZSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaGVhZGVyc1tuYW1lXTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIHRoaXMubWVyZ2UodmFsdWUpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaGFzKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLmhlYWRlcnNbbmFtZV0gIT09IFwidW5kZWZpbmVkXCI7XG4gICAgfVxuICAgIHNldChuYW1lLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgZm9yRWFjaChjYWxsYmFja2ZuLCB0aGlzQXJnKSB7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiB0aGlzLmVudHJpZXMoKSl7XG4gICAgICAgICAgICBjYWxsYmFja2ZuLmNhbGwodGhpc0FyZywgdmFsdWUsIG5hbWUsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgICplbnRyaWVzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIC8vIFdlIGFzc2VydCBoZXJlIHRoYXQgdGhpcyBpcyBhIHN0cmluZyBiZWNhdXNlIHdlIGdvdCBpdCBmcm9tIHRoZVxuICAgICAgICAgICAgLy8gT2JqZWN0LmtleXMoKSBjYWxsIGFib3ZlLlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChuYW1lKTtcbiAgICAgICAgICAgIHlpZWxkIFtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuICAgICprZXlzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHlpZWxkIG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnZhbHVlcygpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5oZWFkZXJzKSl7XG4gICAgICAgICAgICAvLyBXZSBhc3NlcnQgaGVyZSB0aGF0IHRoaXMgaXMgYSBzdHJpbmcgYmVjYXVzZSB3ZSBnb3QgaXQgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIE9iamVjdC5rZXlzKCkgY2FsbCBhYm92ZS5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzKCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWFkZXJzLmpzLm1hcCJdLCJuYW1lcyI6WyJSZWZsZWN0QWRhcHRlciIsIlJlYWRvbmx5SGVhZGVyc0Vycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImNhbGxhYmxlIiwiSGVhZGVyc0FkYXB0ZXIiLCJIZWFkZXJzIiwiaGVhZGVycyIsIlByb3h5IiwiZ2V0IiwidGFyZ2V0IiwicHJvcCIsInJlY2VpdmVyIiwibG93ZXJjYXNlZCIsInRvTG93ZXJDYXNlIiwib3JpZ2luYWwiLCJPYmplY3QiLCJrZXlzIiwiZmluZCIsIm8iLCJzZXQiLCJ2YWx1ZSIsImhhcyIsImRlbGV0ZVByb3BlcnR5Iiwic2VhbCIsIm1lcmdlIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsImZyb20iLCJhcHBlbmQiLCJuYW1lIiwiZXhpc3RpbmciLCJwdXNoIiwiZGVsZXRlIiwiZm9yRWFjaCIsImNhbGxiYWNrZm4iLCJ0aGlzQXJnIiwiZW50cmllcyIsImNhbGwiLCJrZXkiLCJ2YWx1ZXMiLCJTeW1ib2wiLCJpdGVyYXRvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js":
-/*!*******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js ***!
- \*******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NextRequestAdapter: () => (/* binding */ NextRequestAdapter),\n/* harmony export */ ResponseAborted: () => (/* binding */ ResponseAborted),\n/* harmony export */ ResponseAbortedName: () => (/* binding */ ResponseAbortedName),\n/* harmony export */ createAbortController: () => (/* binding */ createAbortController),\n/* harmony export */ signalFromNodeResponse: () => (/* binding */ signalFromNodeResponse)\n/* harmony export */ });\n/* harmony import */ var _request_meta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../request-meta */ \"(ssr)/../../node_modules/next/dist/esm/server/request-meta.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ \"(ssr)/../../node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../request */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/request.js\");\n\n\n\nconst ResponseAbortedName = \"ResponseAborted\";\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args);\n this.name = ResponseAbortedName;\n }\n}\n/**\n * Creates an AbortController tied to the closing of a ServerResponse (or other\n * appropriate Writable).\n *\n * If the `close` event is fired before the `finish` event, then we'll send the\n * `abort` signal.\n */ function createAbortController(response) {\n const controller = new AbortController();\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once(\"close\", ()=>{\n if (response.writableFinished) return;\n controller.abort(new ResponseAborted());\n });\n return controller;\n}\n/**\n * Creates an AbortSignal tied to the closing of a ServerResponse (or other\n * appropriate Writable).\n *\n * This cannot be done with the request (IncomingMessage or Readable) because\n * the `abort` event will not fire if to data has been fully read (because that\n * will \"close\" the readable stream and nothing fires after that).\n */ function signalFromNodeResponse(response) {\n const { errored, destroyed } = response;\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted());\n }\n const { signal } = createAbortController(response);\n return signal;\n}\nclass NextRequestAdapter {\n static fromBaseNextRequest(request, signal) {\n // TODO: look at refining this check\n if (\"request\" in request && request.request) {\n return NextRequestAdapter.fromWebNextRequest(request);\n }\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n }\n static fromNodeNextRequest(request, signal) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== \"GET\" && request.method !== \"HEAD\" && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body;\n }\n let url;\n if (request.url.startsWith(\"http\")) {\n url = new URL(request.url);\n } else {\n // Grab the full URL from the request metadata.\n const base = (0,_request_meta__WEBPACK_IMPORTED_MODULE_0__.getRequestMeta)(request, \"initURL\");\n if (!base || !base.startsWith(\"http\")) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, \"http://n\");\n } else {\n url = new URL(request.url, base);\n }\n }\n return new _request__WEBPACK_IMPORTED_MODULE_2__.NextRequest(url, {\n body,\n method: request.method,\n headers: (0,_utils__WEBPACK_IMPORTED_MODULE_1__.fromNodeOutgoingHttpHeaders)(request.headers),\n // @ts-expect-error - see https://github.com/whatwg/fetch/pull/1457\n duplex: \"half\",\n signal\n });\n }\n static fromWebNextRequest(request) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== \"GET\" && request.method !== \"HEAD\") {\n body = request.body;\n }\n return new _request__WEBPACK_IMPORTED_MODULE_2__.NextRequest(request.url, {\n body,\n method: request.method,\n headers: (0,_utils__WEBPACK_IMPORTED_MODULE_1__.fromNodeOutgoingHttpHeaders)(request.headers),\n // @ts-expect-error - see https://github.com/whatwg/fetch/pull/1457\n duplex: \"half\",\n signal: request.request.signal\n });\n }\n} //# sourceMappingURL=next-request.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBdUQ7QUFDRztBQUNqQjtBQUNsQyxNQUFNRyxzQkFBc0Isa0JBQWtCO0FBQzlDLE1BQU1DLHdCQUF3QkM7SUFDakNDLFlBQVksR0FBR0MsSUFBSSxDQUFDO1FBQ2hCLEtBQUssSUFBSUE7UUFDVCxJQUFJLENBQUNDLElBQUksR0FBR0w7SUFDaEI7QUFDSjtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNNLHNCQUFzQkMsUUFBUTtJQUM5QyxNQUFNQyxhQUFhLElBQUlDO0lBQ3ZCLDZFQUE2RTtJQUM3RSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ERixTQUFTRyxJQUFJLENBQUMsU0FBUztRQUNuQixJQUFJSCxTQUFTSSxnQkFBZ0IsRUFBRTtRQUMvQkgsV0FBV0ksS0FBSyxDQUFDLElBQUlYO0lBQ3pCO0lBQ0EsT0FBT087QUFDWDtBQUNBOzs7Ozs7O0NBT0MsR0FBVSxTQUFTSyx1QkFBdUJOLFFBQVE7SUFDL0MsTUFBTSxFQUFFTyxPQUFPLEVBQUVDLFNBQVMsRUFBRSxHQUFHUjtJQUMvQixJQUFJTyxXQUFXQyxXQUFXO1FBQ3RCLE9BQU9DLFlBQVlKLEtBQUssQ0FBQ0UsV0FBVyxJQUFJYjtJQUM1QztJQUNBLE1BQU0sRUFBRWdCLE1BQU0sRUFBRSxHQUFHWCxzQkFBc0JDO0lBQ3pDLE9BQU9VO0FBQ1g7QUFDTyxNQUFNQztJQUNULE9BQU9DLG9CQUFvQkMsT0FBTyxFQUFFSCxNQUFNLEVBQUU7UUFDeEMsb0NBQW9DO1FBQ3BDLElBQUksYUFBYUcsV0FBV0EsUUFBUUEsT0FBTyxFQUFFO1lBQ3pDLE9BQU9GLG1CQUFtQkcsa0JBQWtCLENBQUNEO1FBQ2pEO1FBQ0EsT0FBT0YsbUJBQW1CSSxtQkFBbUIsQ0FBQ0YsU0FBU0g7SUFDM0Q7SUFDQSxPQUFPSyxvQkFBb0JGLE9BQU8sRUFBRUgsTUFBTSxFQUFFO1FBQ3hDLDZDQUE2QztRQUM3QyxJQUFJTSxPQUFPO1FBQ1gsSUFBSUgsUUFBUUksTUFBTSxLQUFLLFNBQVNKLFFBQVFJLE1BQU0sS0FBSyxVQUFVSixRQUFRRyxJQUFJLEVBQUU7WUFDdkUscUZBQXFGO1lBQ3JGQSxPQUFPSCxRQUFRRyxJQUFJO1FBQ3ZCO1FBQ0EsSUFBSUU7UUFDSixJQUFJTCxRQUFRSyxHQUFHLENBQUNDLFVBQVUsQ0FBQyxTQUFTO1lBQ2hDRCxNQUFNLElBQUlFLElBQUlQLFFBQVFLLEdBQUc7UUFDN0IsT0FBTztZQUNILCtDQUErQztZQUMvQyxNQUFNRyxPQUFPL0IsNkRBQWNBLENBQUN1QixTQUFTO1lBQ3JDLElBQUksQ0FBQ1EsUUFBUSxDQUFDQSxLQUFLRixVQUFVLENBQUMsU0FBUztnQkFDbkMsd0VBQXdFO2dCQUN4RSx1RUFBdUU7Z0JBQ3ZFLDREQUE0RDtnQkFDNURELE1BQU0sSUFBSUUsSUFBSVAsUUFBUUssR0FBRyxFQUFFO1lBQy9CLE9BQU87Z0JBQ0hBLE1BQU0sSUFBSUUsSUFBSVAsUUFBUUssR0FBRyxFQUFFRztZQUMvQjtRQUNKO1FBQ0EsT0FBTyxJQUFJN0IsaURBQVdBLENBQUMwQixLQUFLO1lBQ3hCRjtZQUNBQyxRQUFRSixRQUFRSSxNQUFNO1lBQ3RCSyxTQUFTL0IsbUVBQTJCQSxDQUFDc0IsUUFBUVMsT0FBTztZQUNwRCxtRUFBbUU7WUFDbkVDLFFBQVE7WUFDUmI7UUFDSjtJQUNKO0lBQ0EsT0FBT0ksbUJBQW1CRCxPQUFPLEVBQUU7UUFDL0IsNkNBQTZDO1FBQzdDLElBQUlHLE9BQU87UUFDWCxJQUFJSCxRQUFRSSxNQUFNLEtBQUssU0FBU0osUUFBUUksTUFBTSxLQUFLLFFBQVE7WUFDdkRELE9BQU9ILFFBQVFHLElBQUk7UUFDdkI7UUFDQSxPQUFPLElBQUl4QixpREFBV0EsQ0FBQ3FCLFFBQVFLLEdBQUcsRUFBRTtZQUNoQ0Y7WUFDQUMsUUFBUUosUUFBUUksTUFBTTtZQUN0QkssU0FBUy9CLG1FQUEyQkEsQ0FBQ3NCLFFBQVFTLE9BQU87WUFDcEQsbUVBQW1FO1lBQ25FQyxRQUFRO1lBQ1JiLFFBQVFHLFFBQVFBLE9BQU8sQ0FBQ0gsTUFBTTtRQUNsQztJQUNKO0FBQ0osRUFFQSx3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0LmpzPzEwMTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0UmVxdWVzdE1ldGEgfSBmcm9tIFwiLi4vLi4vLi4vcmVxdWVzdC1tZXRhXCI7XG5pbXBvcnQgeyBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmltcG9ydCB7IE5leHRSZXF1ZXN0IH0gZnJvbSBcIi4uL3JlcXVlc3RcIjtcbmV4cG9ydCBjb25zdCBSZXNwb25zZUFib3J0ZWROYW1lID0gXCJSZXNwb25zZUFib3J0ZWRcIjtcbmV4cG9ydCBjbGFzcyBSZXNwb25zZUFib3J0ZWQgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoLi4uYXJncyl7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgICB0aGlzLm5hbWUgPSBSZXNwb25zZUFib3J0ZWROYW1lO1xuICAgIH1cbn1cbi8qKlxuICogQ3JlYXRlcyBhbiBBYm9ydENvbnRyb2xsZXIgdGllZCB0byB0aGUgY2xvc2luZyBvZiBhIFNlcnZlclJlc3BvbnNlIChvciBvdGhlclxuICogYXBwcm9wcmlhdGUgV3JpdGFibGUpLlxuICpcbiAqIElmIHRoZSBgY2xvc2VgIGV2ZW50IGlzIGZpcmVkIGJlZm9yZSB0aGUgYGZpbmlzaGAgZXZlbnQsIHRoZW4gd2UnbGwgc2VuZCB0aGVcbiAqIGBhYm9ydGAgc2lnbmFsLlxuICovIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBYm9ydENvbnRyb2xsZXIocmVzcG9uc2UpIHtcbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIC8vIElmIGBmaW5pc2hgIGZpcmVzIGZpcnN0LCB0aGVuIGByZXMuZW5kKClgIGhhcyBiZWVuIGNhbGxlZCBhbmQgdGhlIGNsb3NlIGlzXG4gICAgLy8ganVzdCB1cyBmaW5pc2hpbmcgdGhlIHN0cmVhbSBvbiBvdXIgc2lkZS4gSWYgYGNsb3NlYCBmaXJlcyBmaXJzdCwgdGhlbiB3ZVxuICAgIC8vIGtub3cgdGhlIGNsaWVudCBkaXNjb25uZWN0ZWQgYmVmb3JlIHdlIGZpbmlzaGVkLlxuICAgIHJlc3BvbnNlLm9uY2UoXCJjbG9zZVwiLCAoKT0+e1xuICAgICAgICBpZiAocmVzcG9uc2Uud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICBjb250cm9sbGVyLmFib3J0KG5ldyBSZXNwb25zZUFib3J0ZWQoKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbnRyb2xsZXI7XG59XG4vKipcbiAqIENyZWF0ZXMgYW4gQWJvcnRTaWduYWwgdGllZCB0byB0aGUgY2xvc2luZyBvZiBhIFNlcnZlclJlc3BvbnNlIChvciBvdGhlclxuICogYXBwcm9wcmlhdGUgV3JpdGFibGUpLlxuICpcbiAqIFRoaXMgY2Fubm90IGJlIGRvbmUgd2l0aCB0aGUgcmVxdWVzdCAoSW5jb21pbmdNZXNzYWdlIG9yIFJlYWRhYmxlKSBiZWNhdXNlXG4gKiB0aGUgYGFib3J0YCBldmVudCB3aWxsIG5vdCBmaXJlIGlmIHRvIGRhdGEgaGFzIGJlZW4gZnVsbHkgcmVhZCAoYmVjYXVzZSB0aGF0XG4gKiB3aWxsIFwiY2xvc2VcIiB0aGUgcmVhZGFibGUgc3RyZWFtIGFuZCBub3RoaW5nIGZpcmVzIGFmdGVyIHRoYXQpLlxuICovIGV4cG9ydCBmdW5jdGlvbiBzaWduYWxGcm9tTm9kZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgeyBlcnJvcmVkLCBkZXN0cm95ZWQgfSA9IHJlc3BvbnNlO1xuICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkge1xuICAgICAgICByZXR1cm4gQWJvcnRTaWduYWwuYWJvcnQoZXJyb3JlZCA/PyBuZXcgUmVzcG9uc2VBYm9ydGVkKCkpO1xuICAgIH1cbiAgICBjb25zdCB7IHNpZ25hbCB9ID0gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlc3BvbnNlKTtcbiAgICByZXR1cm4gc2lnbmFsO1xufVxuZXhwb3J0IGNsYXNzIE5leHRSZXF1ZXN0QWRhcHRlciB7XG4gICAgc3RhdGljIGZyb21CYXNlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKSB7XG4gICAgICAgIC8vIFRPRE86IGxvb2sgYXQgcmVmaW5pbmcgdGhpcyBjaGVja1xuICAgICAgICBpZiAoXCJyZXF1ZXN0XCIgaW4gcmVxdWVzdCAmJiByZXF1ZXN0LnJlcXVlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBOZXh0UmVxdWVzdEFkYXB0ZXIuZnJvbVdlYk5leHRSZXF1ZXN0KHJlcXVlc3QpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBOZXh0UmVxdWVzdEFkYXB0ZXIuZnJvbU5vZGVOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbU5vZGVOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpIHtcbiAgICAgICAgLy8gSEVBRCBhbmQgR0VUIHJlcXVlc3RzIGNhbiBub3QgaGF2ZSBhIGJvZHkuXG4gICAgICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSBcIkdFVFwiICYmIHJlcXVlc3QubWV0aG9kICE9PSBcIkhFQURcIiAmJiByZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aGlzIGlzIGhhbmRsZWQgYnkgdW5kaWNpLCB3aGVuIHN0cmVhbXMvd2ViIGxhbmQgdXNlIGl0IGluc3RlYWRcbiAgICAgICAgICAgIGJvZHkgPSByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgaWYgKHJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpKSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEdyYWIgdGhlIGZ1bGwgVVJMIGZyb20gdGhlIHJlcXVlc3QgbWV0YWRhdGEuXG4gICAgICAgICAgICBjb25zdCBiYXNlID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgXCJpbml0VVJMXCIpO1xuICAgICAgICAgICAgaWYgKCFiYXNlIHx8ICFiYXNlLnN0YXJ0c1dpdGgoXCJodHRwXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgVVJMIGNvbnN0cnVjdGlvbiByZWxpZXMgb24gdGhlIGZhY3QgdGhhdCB0aGUgVVJMIHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgLy8gaXMgYWJzb2x1dGUsIHdlIG5lZWQgdG8gcHJvdmlkZSBhIGJhc2UgVVJMLiBXZSBjYW4ndCB1c2UgdGhlIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAvLyBVUkwgYmVjYXVzZSBpdCdzIHJlbGF0aXZlLCBzbyB3ZSB1c2UgYSBkdW1teSBVUkwgaW5zdGVhZC5cbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCBcImh0dHA6Ly9uXCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCBiYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE5leHRSZXF1ZXN0KHVybCwge1xuICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9mZXRjaC9wdWxsLzE0NTdcbiAgICAgICAgICAgIGR1cGxleDogXCJoYWxmXCIsXG4gICAgICAgICAgICBzaWduYWxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tV2ViTmV4dFJlcXVlc3QocmVxdWVzdCkge1xuICAgICAgICAvLyBIRUFEIGFuZCBHRVQgcmVxdWVzdHMgY2FuIG5vdCBoYXZlIGEgYm9keS5cbiAgICAgICAgbGV0IGJvZHkgPSBudWxsO1xuICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgIT09IFwiR0VUXCIgJiYgcmVxdWVzdC5tZXRob2QgIT09IFwiSEVBRFwiKSB7XG4gICAgICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlcXVlc3QocmVxdWVzdC51cmwsIHtcbiAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgICAgICAgICAgaGVhZGVyczogZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKHJlcXVlc3QuaGVhZGVycyksXG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZmV0Y2gvcHVsbC8xNDU3XG4gICAgICAgICAgICBkdXBsZXg6IFwiaGFsZlwiLFxuICAgICAgICAgICAgc2lnbmFsOiByZXF1ZXN0LnJlcXVlc3Quc2lnbmFsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC1yZXF1ZXN0LmpzLm1hcCJdLCJuYW1lcyI6WyJnZXRSZXF1ZXN0TWV0YSIsImZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyIsIk5leHRSZXF1ZXN0IiwiUmVzcG9uc2VBYm9ydGVkTmFtZSIsIlJlc3BvbnNlQWJvcnRlZCIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJhcmdzIiwibmFtZSIsImNyZWF0ZUFib3J0Q29udHJvbGxlciIsInJlc3BvbnNlIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsIm9uY2UiLCJ3cml0YWJsZUZpbmlzaGVkIiwiYWJvcnQiLCJzaWduYWxGcm9tTm9kZVJlc3BvbnNlIiwiZXJyb3JlZCIsImRlc3Ryb3llZCIsIkFib3J0U2lnbmFsIiwic2lnbmFsIiwiTmV4dFJlcXVlc3RBZGFwdGVyIiwiZnJvbUJhc2VOZXh0UmVxdWVzdCIsInJlcXVlc3QiLCJmcm9tV2ViTmV4dFJlcXVlc3QiLCJmcm9tTm9kZU5leHRSZXF1ZXN0IiwiYm9keSIsIm1ldGhvZCIsInVybCIsInN0YXJ0c1dpdGgiLCJVUkwiLCJiYXNlIiwiaGVhZGVycyIsImR1cGxleCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReflectAdapter: () => (/* binding */ ReflectAdapter)\n/* harmony export */ });\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n} //# sourceMappingURL=reflect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQTtJQUNULE9BQU9DLElBQUlDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUU7UUFDL0IsTUFBTUMsUUFBUUMsUUFBUUwsR0FBRyxDQUFDQyxRQUFRQyxNQUFNQztRQUN4QyxJQUFJLE9BQU9DLFVBQVUsWUFBWTtZQUM3QixPQUFPQSxNQUFNRSxJQUFJLENBQUNMO1FBQ3RCO1FBQ0EsT0FBT0c7SUFDWDtJQUNBLE9BQU9HLElBQUlOLE1BQU0sRUFBRUMsSUFBSSxFQUFFRSxLQUFLLEVBQUVELFFBQVEsRUFBRTtRQUN0QyxPQUFPRSxRQUFRRSxHQUFHLENBQUNOLFFBQVFDLE1BQU1FLE9BQU9EO0lBQzVDO0lBQ0EsT0FBT0ssSUFBSVAsTUFBTSxFQUFFQyxJQUFJLEVBQUU7UUFDckIsT0FBT0csUUFBUUcsR0FBRyxDQUFDUCxRQUFRQztJQUMvQjtJQUNBLE9BQU9PLGVBQWVSLE1BQU0sRUFBRUMsSUFBSSxFQUFFO1FBQ2hDLE9BQU9HLFFBQVFJLGNBQWMsQ0FBQ1IsUUFBUUM7SUFDMUM7QUFDSixFQUVBLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0LmpzPzU5NjAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJlZmxlY3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuYmluZCh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgc3RhdGljIHNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgIH1cbiAgICBzdGF0aWMgaGFzKHRhcmdldCwgcHJvcCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICB9XG4gICAgc3RhdGljIGRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVmbGVjdC5qcy5tYXAiXSwibmFtZXMiOlsiUmVmbGVjdEFkYXB0ZXIiLCJnZXQiLCJ0YXJnZXQiLCJwcm9wIiwicmVjZWl2ZXIiLCJ2YWx1ZSIsIlJlZmxlY3QiLCJiaW5kIiwic2V0IiwiaGFzIiwiZGVsZXRlUHJvcGVydHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js":
-/*!**********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js ***!
- \**********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MutableRequestCookiesAdapter: () => (/* binding */ MutableRequestCookiesAdapter),\n/* harmony export */ ReadonlyRequestCookiesError: () => (/* binding */ ReadonlyRequestCookiesError),\n/* harmony export */ RequestCookiesAdapter: () => (/* binding */ RequestCookiesAdapter),\n/* harmony export */ appendMutableCookies: () => (/* binding */ appendMutableCookies),\n/* harmony export */ getModifiedCookieValues: () => (/* binding */ getModifiedCookieValues)\n/* harmony export */ });\n/* harmony import */ var _cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cookies */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n/* harmony import */ var _reflect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reflect */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\");\n\n\n/**\n * @internal\n */ class ReadonlyRequestCookiesError extends Error {\n constructor(){\n super(\"Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#cookiessetname-value-options\");\n }\n static callable() {\n throw new ReadonlyRequestCookiesError();\n }\n}\nclass RequestCookiesAdapter {\n static seal(cookies) {\n return new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case \"clear\":\n case \"delete\":\n case \"set\":\n return ReadonlyRequestCookiesError.callable;\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_1__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n}\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for(\"next.mutated.cookies\");\nfunction getModifiedCookieValues(cookies) {\n const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES];\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return [];\n }\n return modified;\n}\nfunction appendMutableCookies(headers, mutableCookies) {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies);\n if (modifiedCookieValues.length === 0) {\n return false;\n }\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(headers);\n const returnedCookies = resCookies.getAll();\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues){\n resCookies.set(cookie);\n }\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies){\n resCookies.set(cookie);\n }\n return true;\n}\nclass MutableRequestCookiesAdapter {\n static wrap(cookies, onUpdateCookies) {\n const responseCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(new Headers());\n for (const cookie of cookies.getAll()){\n responseCookies.set(cookie);\n }\n let modifiedValues = [];\n const modifiedCookies = new Set();\n const updateResponseCookies = ()=>{\n var _fetch___nextGetStaticStore;\n // TODO-APP: change method of getting staticGenerationAsyncStore\n const staticGenerationAsyncStore = fetch.__nextGetStaticStore == null ? void 0 : (_fetch___nextGetStaticStore = fetch.__nextGetStaticStore.call(fetch)) == null ? void 0 : _fetch___nextGetStaticStore.getStore();\n if (staticGenerationAsyncStore) {\n staticGenerationAsyncStore.pathWasRevalidated = true;\n }\n const allCookies = responseCookies.getAll();\n modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name));\n if (onUpdateCookies) {\n const serializedCookies = [];\n for (const cookie of modifiedValues){\n const tempCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(new Headers());\n tempCookies.set(cookie);\n serializedCookies.push(tempCookies.toString());\n }\n onUpdateCookies(serializedCookies);\n }\n };\n return new Proxy(responseCookies, {\n get (target, prop, receiver) {\n switch(prop){\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues;\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case \"delete\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n target.delete(...args);\n } finally{\n updateResponseCookies();\n }\n };\n case \"set\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n return target.set(...args);\n } finally{\n updateResponseCookies();\n }\n };\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_1__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n} //# sourceMappingURL=request-cookies.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZXF1ZXN0LWNvb2tpZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUE2QztBQUNGO0FBQzNDOztDQUVDLEdBQVUsTUFBTUUsb0NBQW9DQztJQUNqREMsYUFBYTtRQUNULEtBQUssQ0FBQztJQUNWO0lBQ0EsT0FBT0MsV0FBVztRQUNkLE1BQU0sSUFBSUg7SUFDZDtBQUNKO0FBQ08sTUFBTUk7SUFDVCxPQUFPQyxLQUFLQyxPQUFPLEVBQUU7UUFDakIsT0FBTyxJQUFJQyxNQUFNRCxTQUFTO1lBQ3RCRSxLQUFLQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUTtnQkFDdkIsT0FBT0Q7b0JBQ0gsS0FBSztvQkFDTCxLQUFLO29CQUNMLEtBQUs7d0JBQ0QsT0FBT1YsNEJBQTRCRyxRQUFRO29CQUMvQzt3QkFDSSxPQUFPSixvREFBY0EsQ0FBQ1MsR0FBRyxDQUFDQyxRQUFRQyxNQUFNQztnQkFDaEQ7WUFDSjtRQUNKO0lBQ0o7QUFDSjtBQUNBLE1BQU1DLDhCQUE4QkMsT0FBT0MsR0FBRyxDQUFDO0FBQ3hDLFNBQVNDLHdCQUF3QlQsT0FBTztJQUMzQyxNQUFNVSxXQUFXVixPQUFPLENBQUNNLDRCQUE0QjtJQUNyRCxJQUFJLENBQUNJLFlBQVksQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDRixhQUFhQSxTQUFTRyxNQUFNLEtBQUssR0FBRztRQUNoRSxPQUFPLEVBQUU7SUFDYjtJQUNBLE9BQU9IO0FBQ1g7QUFDTyxTQUFTSSxxQkFBcUJDLE9BQU8sRUFBRUMsY0FBYztJQUN4RCxNQUFNQyx1QkFBdUJSLHdCQUF3Qk87SUFDckQsSUFBSUMscUJBQXFCSixNQUFNLEtBQUssR0FBRztRQUNuQyxPQUFPO0lBQ1g7SUFDQSx1REFBdUQ7SUFDdkQsbURBQW1EO0lBQ25ELDhCQUE4QjtJQUM5QixNQUFNSyxhQUFhLElBQUkxQixxREFBZUEsQ0FBQ3VCO0lBQ3ZDLE1BQU1JLGtCQUFrQkQsV0FBV0UsTUFBTTtJQUN6Qyx5Q0FBeUM7SUFDekMsS0FBSyxNQUFNQyxVQUFVSixxQkFBcUI7UUFDdENDLFdBQVdJLEdBQUcsQ0FBQ0Q7SUFDbkI7SUFDQSxnREFBZ0Q7SUFDaEQsS0FBSyxNQUFNQSxVQUFVRixnQkFBZ0I7UUFDakNELFdBQVdJLEdBQUcsQ0FBQ0Q7SUFDbkI7SUFDQSxPQUFPO0FBQ1g7QUFDTyxNQUFNRTtJQUNULE9BQU9DLEtBQUt4QixPQUFPLEVBQUV5QixlQUFlLEVBQUU7UUFDbEMsTUFBTUMsa0JBQWtCLElBQUlsQyxxREFBZUEsQ0FBQyxJQUFJbUM7UUFDaEQsS0FBSyxNQUFNTixVQUFVckIsUUFBUW9CLE1BQU0sR0FBRztZQUNsQ00sZ0JBQWdCSixHQUFHLENBQUNEO1FBQ3hCO1FBQ0EsSUFBSU8saUJBQWlCLEVBQUU7UUFDdkIsTUFBTUMsa0JBQWtCLElBQUlDO1FBQzVCLE1BQU1DLHdCQUF3QjtZQUMxQixJQUFJQztZQUNKLGdFQUFnRTtZQUNoRSxNQUFNQyw2QkFBNkJDLE1BQU1DLG9CQUFvQixJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUNILDhCQUE4QkUsTUFBTUMsb0JBQW9CLENBQUNDLElBQUksQ0FBQ0YsTUFBSyxLQUFNLE9BQU8sS0FBSyxJQUFJRiw0QkFBNEJLLFFBQVE7WUFDL00sSUFBSUosNEJBQTRCO2dCQUM1QkEsMkJBQTJCSyxrQkFBa0IsR0FBRztZQUNwRDtZQUNBLE1BQU1DLGFBQWFiLGdCQUFnQk4sTUFBTTtZQUN6Q1EsaUJBQWlCVyxXQUFXQyxNQUFNLENBQUMsQ0FBQ0MsSUFBSVosZ0JBQWdCYSxHQUFHLENBQUNELEVBQUVFLElBQUk7WUFDbEUsSUFBSWxCLGlCQUFpQjtnQkFDakIsTUFBTW1CLG9CQUFvQixFQUFFO2dCQUM1QixLQUFLLE1BQU12QixVQUFVTyxlQUFlO29CQUNoQyxNQUFNaUIsY0FBYyxJQUFJckQscURBQWVBLENBQUMsSUFBSW1DO29CQUM1Q2tCLFlBQVl2QixHQUFHLENBQUNEO29CQUNoQnVCLGtCQUFrQkUsSUFBSSxDQUFDRCxZQUFZRSxRQUFRO2dCQUMvQztnQkFDQXRCLGdCQUFnQm1CO1lBQ3BCO1FBQ0o7UUFDQSxPQUFPLElBQUkzQyxNQUFNeUIsaUJBQWlCO1lBQzlCeEIsS0FBS0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFFBQVE7Z0JBQ3ZCLE9BQU9EO29CQUNILHFEQUFxRDtvQkFDckQsS0FBS0U7d0JBQ0QsT0FBT3NCO29CQUNYLGlFQUFpRTtvQkFDakUseUJBQXlCO29CQUN6QixLQUFLO3dCQUNELE9BQU8sU0FBUyxHQUFHb0IsSUFBSTs0QkFDbkJuQixnQkFBZ0JvQixHQUFHLENBQUMsT0FBT0QsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXQSxJQUFJLENBQUMsRUFBRSxHQUFHQSxJQUFJLENBQUMsRUFBRSxDQUFDTCxJQUFJOzRCQUN4RSxJQUFJO2dDQUNBeEMsT0FBTytDLE1BQU0sSUFBSUY7NEJBQ3JCLFNBQVM7Z0NBQ0xqQjs0QkFDSjt3QkFDSjtvQkFDSixLQUFLO3dCQUNELE9BQU8sU0FBUyxHQUFHaUIsSUFBSTs0QkFDbkJuQixnQkFBZ0JvQixHQUFHLENBQUMsT0FBT0QsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXQSxJQUFJLENBQUMsRUFBRSxHQUFHQSxJQUFJLENBQUMsRUFBRSxDQUFDTCxJQUFJOzRCQUN4RSxJQUFJO2dDQUNBLE9BQU94QyxPQUFPbUIsR0FBRyxJQUFJMEI7NEJBQ3pCLFNBQVM7Z0NBQ0xqQjs0QkFDSjt3QkFDSjtvQkFDSjt3QkFDSSxPQUFPdEMsb0RBQWNBLENBQUNTLEdBQUcsQ0FBQ0MsUUFBUUMsTUFBTUM7Z0JBQ2hEO1lBQ0o7UUFDSjtJQUNKO0FBQ0osRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVxdWVzdC1jb29raWVzLmpzP2RjOTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzcG9uc2VDb29raWVzIH0gZnJvbSBcIi4uL2Nvb2tpZXNcIjtcbmltcG9ydCB7IFJlZmxlY3RBZGFwdGVyIH0gZnJvbSBcIi4vcmVmbGVjdFwiO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY2xhc3MgUmVhZG9ubHlSZXF1ZXN0Q29va2llc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKFwiQ29va2llcyBjYW4gb25seSBiZSBtb2RpZmllZCBpbiBhIFNlcnZlciBBY3Rpb24gb3IgUm91dGUgSGFuZGxlci4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvY29va2llcyNjb29raWVzc2V0bmFtZS12YWx1ZS1vcHRpb25zXCIpO1xuICAgIH1cbiAgICBzdGF0aWMgY2FsbGFibGUoKSB7XG4gICAgICAgIHRocm93IG5ldyBSZWFkb25seVJlcXVlc3RDb29raWVzRXJyb3IoKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVxdWVzdENvb2tpZXNBZGFwdGVyIHtcbiAgICBzdGF0aWMgc2VhbChjb29raWVzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkoY29va2llcywge1xuICAgICAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiY2xlYXJcIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImRlbGV0ZVwiOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic2V0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVhZG9ubHlSZXF1ZXN0Q29va2llc0Vycm9yLmNhbGxhYmxlO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmNvbnN0IFNZTUJPTF9NT0RJRllfQ09PS0lFX1ZBTFVFUyA9IFN5bWJvbC5mb3IoXCJuZXh0Lm11dGF0ZWQuY29va2llc1wiKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RpZmllZENvb2tpZVZhbHVlcyhjb29raWVzKSB7XG4gICAgY29uc3QgbW9kaWZpZWQgPSBjb29raWVzW1NZTUJPTF9NT0RJRllfQ09PS0lFX1ZBTFVFU107XG4gICAgaWYgKCFtb2RpZmllZCB8fCAhQXJyYXkuaXNBcnJheShtb2RpZmllZCkgfHwgbW9kaWZpZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZGlmaWVkO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZE11dGFibGVDb29raWVzKGhlYWRlcnMsIG11dGFibGVDb29raWVzKSB7XG4gICAgY29uc3QgbW9kaWZpZWRDb29raWVWYWx1ZXMgPSBnZXRNb2RpZmllZENvb2tpZVZhbHVlcyhtdXRhYmxlQ29va2llcyk7XG4gICAgaWYgKG1vZGlmaWVkQ29va2llVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFJldHVybiBhIG5ldyByZXNwb25zZSB0aGF0IGV4dGVuZHMgdGhlIHJlc3BvbnNlIHdpdGhcbiAgICAvLyB0aGUgbW9kaWZpZWQgY29va2llcyBhcyBmYWxsYmFja3MuIGByZXNgIGNvb2tpZXNcbiAgICAvLyB3aWxsIHN0aWxsIHRha2UgcHJlY2VkZW5jZS5cbiAgICBjb25zdCByZXNDb29raWVzID0gbmV3IFJlc3BvbnNlQ29va2llcyhoZWFkZXJzKTtcbiAgICBjb25zdCByZXR1cm5lZENvb2tpZXMgPSByZXNDb29raWVzLmdldEFsbCgpO1xuICAgIC8vIFNldCB0aGUgbW9kaWZpZWQgY29va2llcyBhcyBmYWxsYmFja3MuXG4gICAgZm9yIChjb25zdCBjb29raWUgb2YgbW9kaWZpZWRDb29raWVWYWx1ZXMpe1xuICAgICAgICByZXNDb29raWVzLnNldChjb29raWUpO1xuICAgIH1cbiAgICAvLyBTZXQgdGhlIG9yaWdpbmFsIGNvb2tpZXMgYXMgdGhlIGZpbmFsIHZhbHVlcy5cbiAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiByZXR1cm5lZENvb2tpZXMpe1xuICAgICAgICByZXNDb29raWVzLnNldChjb29raWUpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmV4cG9ydCBjbGFzcyBNdXRhYmxlUmVxdWVzdENvb2tpZXNBZGFwdGVyIHtcbiAgICBzdGF0aWMgd3JhcChjb29raWVzLCBvblVwZGF0ZUNvb2tpZXMpIHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2VDb29raWVzID0gbmV3IFJlc3BvbnNlQ29va2llcyhuZXcgSGVhZGVycygpKTtcbiAgICAgICAgZm9yIChjb25zdCBjb29raWUgb2YgY29va2llcy5nZXRBbGwoKSl7XG4gICAgICAgICAgICByZXNwb25zZUNvb2tpZXMuc2V0KGNvb2tpZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1vZGlmaWVkVmFsdWVzID0gW107XG4gICAgICAgIGNvbnN0IG1vZGlmaWVkQ29va2llcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgY29uc3QgdXBkYXRlUmVzcG9uc2VDb29raWVzID0gKCk9PntcbiAgICAgICAgICAgIHZhciBfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmU7XG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogY2hhbmdlIG1ldGhvZCBvZiBnZXR0aW5nIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JlXG4gICAgICAgICAgICBjb25zdCBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yZSA9IGZldGNoLl9fbmV4dEdldFN0YXRpY1N0b3JlID09IG51bGwgPyB2b2lkIDAgOiAoX2ZldGNoX19fbmV4dEdldFN0YXRpY1N0b3JlID0gZmV0Y2guX19uZXh0R2V0U3RhdGljU3RvcmUuY2FsbChmZXRjaCkpID09IG51bGwgPyB2b2lkIDAgOiBfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmUuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgIGlmIChzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yZSkge1xuICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JlLnBhdGhXYXNSZXZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhbGxDb29raWVzID0gcmVzcG9uc2VDb29raWVzLmdldEFsbCgpO1xuICAgICAgICAgICAgbW9kaWZpZWRWYWx1ZXMgPSBhbGxDb29raWVzLmZpbHRlcigoYyk9Pm1vZGlmaWVkQ29va2llcy5oYXMoYy5uYW1lKSk7XG4gICAgICAgICAgICBpZiAob25VcGRhdGVDb29raWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZENvb2tpZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiBtb2RpZmllZFZhbHVlcyl7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBDb29raWVzID0gbmV3IFJlc3BvbnNlQ29va2llcyhuZXcgSGVhZGVycygpKTtcbiAgICAgICAgICAgICAgICAgICAgdGVtcENvb2tpZXMuc2V0KGNvb2tpZSk7XG4gICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6ZWRDb29raWVzLnB1c2godGVtcENvb2tpZXMudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlQ29va2llcyhzZXJpYWxpemVkQ29va2llcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkocmVzcG9uc2VDb29raWVzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIC8vIEEgc3BlY2lhbCBzeW1ib2wgdG8gZ2V0IHRoZSBtb2RpZmllZCBjb29raWUgdmFsdWVzXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU1lNQk9MX01PRElGWV9DT09LSUVfVkFMVUVTOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZGlmaWVkVmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBUaHJvdyBlcnJvciBpZiB0cnlpbmcgdG8gc2V0IGEgY29va2llIGFmdGVyIHRoZSByZXNwb25zZVxuICAgICAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIGhhdmUgYmVlbiBzZXQuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJkZWxldGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRDb29raWVzLmFkZCh0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kZWxldGUoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVSZXNwb25zZUNvb2tpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic2V0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oLi4uYXJncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkQ29va2llcy5hZGQodHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnNldCguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVJlc3BvbnNlQ29va2llcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LWNvb2tpZXMuanMubWFwIl0sIm5hbWVzIjpbIlJlc3BvbnNlQ29va2llcyIsIlJlZmxlY3RBZGFwdGVyIiwiUmVhZG9ubHlSZXF1ZXN0Q29va2llc0Vycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImNhbGxhYmxlIiwiUmVxdWVzdENvb2tpZXNBZGFwdGVyIiwic2VhbCIsImNvb2tpZXMiLCJQcm94eSIsImdldCIsInRhcmdldCIsInByb3AiLCJyZWNlaXZlciIsIlNZTUJPTF9NT0RJRllfQ09PS0lFX1ZBTFVFUyIsIlN5bWJvbCIsImZvciIsImdldE1vZGlmaWVkQ29va2llVmFsdWVzIiwibW9kaWZpZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJhcHBlbmRNdXRhYmxlQ29va2llcyIsImhlYWRlcnMiLCJtdXRhYmxlQ29va2llcyIsIm1vZGlmaWVkQ29va2llVmFsdWVzIiwicmVzQ29va2llcyIsInJldHVybmVkQ29va2llcyIsImdldEFsbCIsImNvb2tpZSIsInNldCIsIk11dGFibGVSZXF1ZXN0Q29va2llc0FkYXB0ZXIiLCJ3cmFwIiwib25VcGRhdGVDb29raWVzIiwicmVzcG9uc2VDb29raWVzIiwiSGVhZGVycyIsIm1vZGlmaWVkVmFsdWVzIiwibW9kaWZpZWRDb29raWVzIiwiU2V0IiwidXBkYXRlUmVzcG9uc2VDb29raWVzIiwiX2ZldGNoX19fbmV4dEdldFN0YXRpY1N0b3JlIiwic3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmUiLCJmZXRjaCIsIl9fbmV4dEdldFN0YXRpY1N0b3JlIiwiY2FsbCIsImdldFN0b3JlIiwicGF0aFdhc1JldmFsaWRhdGVkIiwiYWxsQ29va2llcyIsImZpbHRlciIsImMiLCJoYXMiLCJuYW1lIiwic2VyaWFsaXplZENvb2tpZXMiLCJ0ZW1wQ29va2llcyIsInB1c2giLCJ0b1N0cmluZyIsImFyZ3MiLCJhZGQiLCJkZWxldGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RequestCookies: () => (/* reexport safe */ next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__.RequestCookies),\n/* harmony export */ ResponseCookies: () => (/* reexport safe */ next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(ssr)/../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n/* harmony import */ var next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__);\n //# sourceMappingURL=cookies.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMkYsQ0FFM0YsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2Nvb2tpZXMuanM/MTFlYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZXF1ZXN0Q29va2llcywgUmVzcG9uc2VDb29raWVzIH0gZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXNcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29va2llcy5qcy5tYXAiXSwibmFtZXMiOlsiUmVxdWVzdENvb2tpZXMiLCJSZXNwb25zZUNvb2tpZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NextFetchEvent: () => (/* binding */ NextFetchEvent),\n/* harmony export */ waitUntilSymbol: () => (/* binding */ waitUntilSymbol)\n/* harmony export */ });\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../error */ \"(ssr)/../../node_modules/next/dist/esm/server/web/error.js\");\n\nconst responseSymbol = Symbol(\"response\");\nconst passThroughSymbol = Symbol(\"passThrough\");\nconst waitUntilSymbol = Symbol(\"waitUntil\");\nclass FetchEvent {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(_request){\n this[waitUntilSymbol] = [];\n this[passThroughSymbol] = false;\n }\n respondWith(response) {\n if (!this[responseSymbol]) {\n this[responseSymbol] = Promise.resolve(response);\n }\n }\n passThroughOnException() {\n this[passThroughSymbol] = true;\n }\n waitUntil(promise) {\n this[waitUntilSymbol].push(promise);\n }\n}\nclass NextFetchEvent extends FetchEvent {\n constructor(params){\n super(params.request);\n this.sourcePage = params.page;\n }\n /**\n * @deprecated The `request` is now the first parameter and the API is now async.\n *\n * Read more: https://nextjs.org/docs/messages/middleware-new-signature\n */ get request() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n /**\n * @deprecated Using `respondWith` is no longer needed.\n *\n * Read more: https://nextjs.org/docs/messages/middleware-new-signature\n */ respondWith() {\n throw new _error__WEBPACK_IMPORTED_MODULE_0__.PageSignatureError({\n page: this.sourcePage\n });\n }\n} //# sourceMappingURL=fetch-event.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9mZXRjaC1ldmVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBOEM7QUFDOUMsTUFBTUMsaUJBQWlCQyxPQUFPO0FBQzlCLE1BQU1DLG9CQUFvQkQsT0FBTztBQUMxQixNQUFNRSxrQkFBa0JGLE9BQU8sYUFBYTtBQUNuRCxNQUFNRztJQUNGLHFFQUFxRTtJQUNyRUMsWUFBWUMsUUFBUSxDQUFDO1FBQ2pCLElBQUksQ0FBQ0gsZ0JBQWdCLEdBQUcsRUFBRTtRQUMxQixJQUFJLENBQUNELGtCQUFrQixHQUFHO0lBQzlCO0lBQ0FLLFlBQVlDLFFBQVEsRUFBRTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDUixlQUFlLEVBQUU7WUFDdkIsSUFBSSxDQUFDQSxlQUFlLEdBQUdTLFFBQVFDLE9BQU8sQ0FBQ0Y7UUFDM0M7SUFDSjtJQUNBRyx5QkFBeUI7UUFDckIsSUFBSSxDQUFDVCxrQkFBa0IsR0FBRztJQUM5QjtJQUNBVSxVQUFVQyxPQUFPLEVBQUU7UUFDZixJQUFJLENBQUNWLGdCQUFnQixDQUFDVyxJQUFJLENBQUNEO0lBQy9CO0FBQ0o7QUFDTyxNQUFNRSx1QkFBdUJYO0lBQ2hDQyxZQUFZVyxNQUFNLENBQUM7UUFDZixLQUFLLENBQUNBLE9BQU9DLE9BQU87UUFDcEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdGLE9BQU9HLElBQUk7SUFDakM7SUFDQTs7OztHQUlELEdBQUcsSUFBSUYsVUFBVTtRQUNaLE1BQU0sSUFBSWxCLHNEQUFrQkEsQ0FBQztZQUN6Qm9CLE1BQU0sSUFBSSxDQUFDRCxVQUFVO1FBQ3pCO0lBQ0o7SUFDQTs7OztHQUlELEdBQUdYLGNBQWM7UUFDWixNQUFNLElBQUlSLHNEQUFrQkEsQ0FBQztZQUN6Qm9CLE1BQU0sSUFBSSxDQUFDRCxVQUFVO1FBQ3pCO0lBQ0o7QUFDSixFQUVBLHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9mZXRjaC1ldmVudC5qcz8yM2EyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VTaWduYXR1cmVFcnJvciB9IGZyb20gXCIuLi9lcnJvclwiO1xuY29uc3QgcmVzcG9uc2VTeW1ib2wgPSBTeW1ib2woXCJyZXNwb25zZVwiKTtcbmNvbnN0IHBhc3NUaHJvdWdoU3ltYm9sID0gU3ltYm9sKFwicGFzc1Rocm91Z2hcIik7XG5leHBvcnQgY29uc3Qgd2FpdFVudGlsU3ltYm9sID0gU3ltYm9sKFwid2FpdFVudGlsXCIpO1xuY2xhc3MgRmV0Y2hFdmVudCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2VsZXNzLWNvbnN0cnVjdG9yXG4gICAgY29uc3RydWN0b3IoX3JlcXVlc3Qpe1xuICAgICAgICB0aGlzW3dhaXRVbnRpbFN5bWJvbF0gPSBbXTtcbiAgICAgICAgdGhpc1twYXNzVGhyb3VnaFN5bWJvbF0gPSBmYWxzZTtcbiAgICB9XG4gICAgcmVzcG9uZFdpdGgocmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKCF0aGlzW3Jlc3BvbnNlU3ltYm9sXSkge1xuICAgICAgICAgICAgdGhpc1tyZXNwb25zZVN5bWJvbF0gPSBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHBhc3NUaHJvdWdoT25FeGNlcHRpb24oKSB7XG4gICAgICAgIHRoaXNbcGFzc1Rocm91Z2hTeW1ib2xdID0gdHJ1ZTtcbiAgICB9XG4gICAgd2FpdFVudGlsKHByb21pc2UpIHtcbiAgICAgICAgdGhpc1t3YWl0VW50aWxTeW1ib2xdLnB1c2gocHJvbWlzZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE5leHRGZXRjaEV2ZW50IGV4dGVuZHMgRmV0Y2hFdmVudCB7XG4gICAgY29uc3RydWN0b3IocGFyYW1zKXtcbiAgICAgICAgc3VwZXIocGFyYW1zLnJlcXVlc3QpO1xuICAgICAgICB0aGlzLnNvdXJjZVBhZ2UgPSBwYXJhbXMucGFnZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoZSBgcmVxdWVzdGAgaXMgbm93IHRoZSBmaXJzdCBwYXJhbWV0ZXIgYW5kIHRoZSBBUEkgaXMgbm93IGFzeW5jLlxuICAgKlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtbmV3LXNpZ25hdHVyZVxuICAgKi8gZ2V0IHJlcXVlc3QoKSB7XG4gICAgICAgIHRocm93IG5ldyBQYWdlU2lnbmF0dXJlRXJyb3Ioe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5zb3VyY2VQYWdlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNpbmcgYHJlc3BvbmRXaXRoYCBpcyBubyBsb25nZXIgbmVlZGVkLlxuICAgKlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtbmV3LXNpZ25hdHVyZVxuICAgKi8gcmVzcG9uZFdpdGgoKSB7XG4gICAgICAgIHRocm93IG5ldyBQYWdlU2lnbmF0dXJlRXJyb3Ioe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5zb3VyY2VQYWdlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmV0Y2gtZXZlbnQuanMubWFwIl0sIm5hbWVzIjpbIlBhZ2VTaWduYXR1cmVFcnJvciIsInJlc3BvbnNlU3ltYm9sIiwiU3ltYm9sIiwicGFzc1Rocm91Z2hTeW1ib2wiLCJ3YWl0VW50aWxTeW1ib2wiLCJGZXRjaEV2ZW50IiwiY29uc3RydWN0b3IiLCJfcmVxdWVzdCIsInJlc3BvbmRXaXRoIiwicmVzcG9uc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInBhc3NUaHJvdWdoT25FeGNlcHRpb24iLCJ3YWl0VW50aWwiLCJwcm9taXNlIiwicHVzaCIsIk5leHRGZXRjaEV2ZW50IiwicGFyYW1zIiwicmVxdWVzdCIsInNvdXJjZVBhZ2UiLCJwYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/request.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/request.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ INTERNALS: () => (/* binding */ INTERNALS),\n/* harmony export */ NextRequest: () => (/* binding */ NextRequest)\n/* harmony export */ });\n/* harmony import */ var _next_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../next-url */ \"(ssr)/../../node_modules/next/dist/esm/server/web/next-url.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"(ssr)/../../node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../error */ \"(ssr)/../../node_modules/next/dist/esm/server/web/error.js\");\n/* harmony import */ var _cookies__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cookies */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n\n\n\n\nconst INTERNALS = Symbol(\"internal request\");\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== \"string\" && \"url\" in input ? input.url : String(input);\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.validateURL)(url);\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _next_url__WEBPACK_IMPORTED_MODULE_0__.NextURL(url, {\n headers: (0,_utils__WEBPACK_IMPORTED_MODULE_1__.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies__WEBPACK_IMPORTED_MODULE_3__.RequestCookies(this.headers),\n geo: init.geo || {},\n ip: init.ip,\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n geo: this.geo,\n ip: this.ip,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get geo() {\n return this[INTERNALS].geo;\n }\n get ip() {\n return this[INTERNALS].ip;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error__WEBPACK_IMPORTED_MODULE_2__.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error__WEBPACK_IMPORTED_MODULE_2__.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n} //# sourceMappingURL=request.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFzQztBQUM0QjtBQUNOO0FBQ2pCO0FBQ3BDLE1BQU1NLFlBQVlDLE9BQU8sb0JBQW9CO0FBQzdDLE1BQU1DLG9CQUFvQkM7SUFDN0JDLFlBQVlDLEtBQUssRUFBRUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNQyxNQUFNLE9BQU9GLFVBQVUsWUFBWSxTQUFTQSxRQUFRQSxNQUFNRSxHQUFHLEdBQUdDLE9BQU9IO1FBQzdFVCxtREFBV0EsQ0FBQ1c7UUFDWixJQUFJRixpQkFBaUJGLFNBQVMsS0FBSyxDQUFDRSxPQUFPQzthQUN0QyxLQUFLLENBQUNDLEtBQUtEO1FBQ2hCLE1BQU1HLFVBQVUsSUFBSWYsOENBQU9BLENBQUNhLEtBQUs7WUFDN0JHLFNBQVNmLGlFQUF5QkEsQ0FBQyxJQUFJLENBQUNlLE9BQU87WUFDL0NDLFlBQVlMLEtBQUtLLFVBQVU7UUFDL0I7UUFDQSxJQUFJLENBQUNYLFVBQVUsR0FBRztZQUNkWSxTQUFTLElBQUliLG9EQUFjQSxDQUFDLElBQUksQ0FBQ1csT0FBTztZQUN4Q0csS0FBS1AsS0FBS08sR0FBRyxJQUFJLENBQUM7WUFDbEJDLElBQUlSLEtBQUtRLEVBQUU7WUFDWEw7WUFDQUYsS0FBS1EsTUFBOEMsR0FBR1IsQ0FBR0EsR0FBR0UsUUFBUVMsUUFBUTtRQUNoRjtJQUNKO0lBQ0EsQ0FBQ2pCLE9BQU9rQixHQUFHLENBQUMsK0JBQStCLEdBQUc7UUFDMUMsT0FBTztZQUNIUCxTQUFTLElBQUksQ0FBQ0EsT0FBTztZQUNyQkMsS0FBSyxJQUFJLENBQUNBLEdBQUc7WUFDYkMsSUFBSSxJQUFJLENBQUNBLEVBQUU7WUFDWEwsU0FBUyxJQUFJLENBQUNBLE9BQU87WUFDckJGLEtBQUssSUFBSSxDQUFDQSxHQUFHO1lBQ2Isa0NBQWtDO1lBQ2xDYSxVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2QkMsT0FBTyxJQUFJLENBQUNBLEtBQUs7WUFDakJDLGFBQWEsSUFBSSxDQUFDQSxXQUFXO1lBQzdCQyxhQUFhLElBQUksQ0FBQ0EsV0FBVztZQUM3QmIsU0FBU2MsT0FBT0MsV0FBVyxDQUFDLElBQUksQ0FBQ2YsT0FBTztZQUN4Q2dCLFdBQVcsSUFBSSxDQUFDQSxTQUFTO1lBQ3pCQyxXQUFXLElBQUksQ0FBQ0EsU0FBUztZQUN6QkMsUUFBUSxJQUFJLENBQUNBLE1BQU07WUFDbkJDLE1BQU0sSUFBSSxDQUFDQSxJQUFJO1lBQ2ZDLFVBQVUsSUFBSSxDQUFDQSxRQUFRO1lBQ3ZCQyxVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2QkMsZ0JBQWdCLElBQUksQ0FBQ0EsY0FBYztZQUNuQ0MsUUFBUSxJQUFJLENBQUNBLE1BQU07UUFDdkI7SUFDSjtJQUNBLElBQUlyQixVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUNaLFVBQVUsQ0FBQ1ksT0FBTztJQUNsQztJQUNBLElBQUlDLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQ2IsVUFBVSxDQUFDYSxHQUFHO0lBQzlCO0lBQ0EsSUFBSUMsS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDZCxVQUFVLENBQUNjLEVBQUU7SUFDN0I7SUFDQSxJQUFJTCxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUNULFVBQVUsQ0FBQ1MsT0FBTztJQUNsQztJQUNBOzs7O0dBSUQsR0FBRyxJQUFJeUIsT0FBTztRQUNULE1BQU0sSUFBSXBDLG9EQUFnQkE7SUFDOUI7SUFDQTs7OztHQUlELEdBQUcsSUFBSXFDLEtBQUs7UUFDUCxNQUFNLElBQUl0QyxrREFBY0E7SUFDNUI7SUFDQSxJQUFJVSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUNQLFVBQVUsQ0FBQ08sR0FBRztJQUM5QjtBQUNKLEVBRUEsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL3JlcXVlc3QuanM/MzBkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXh0VVJMIH0gZnJvbSBcIi4uL25leHQtdXJsXCI7XG5pbXBvcnQgeyB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzLCB2YWxpZGF0ZVVSTCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgUmVtb3ZlZFVBRXJyb3IsIFJlbW92ZWRQYWdlRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JcIjtcbmltcG9ydCB7IFJlcXVlc3RDb29raWVzIH0gZnJvbSBcIi4vY29va2llc1wiO1xuZXhwb3J0IGNvbnN0IElOVEVSTkFMUyA9IFN5bWJvbChcImludGVybmFsIHJlcXVlc3RcIik7XG5leHBvcnQgY2xhc3MgTmV4dFJlcXVlc3QgZXh0ZW5kcyBSZXF1ZXN0IHtcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCwgaW5pdCA9IHt9KXtcbiAgICAgICAgY29uc3QgdXJsID0gdHlwZW9mIGlucHV0ICE9PSBcInN0cmluZ1wiICYmIFwidXJsXCIgaW4gaW5wdXQgPyBpbnB1dC51cmwgOiBTdHJpbmcoaW5wdXQpO1xuICAgICAgICB2YWxpZGF0ZVVSTCh1cmwpO1xuICAgICAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBSZXF1ZXN0KSBzdXBlcihpbnB1dCwgaW5pdCk7XG4gICAgICAgIGVsc2Ugc3VwZXIodXJsLCBpbml0KTtcbiAgICAgICAgY29uc3QgbmV4dFVybCA9IG5ldyBOZXh0VVJMKHVybCwge1xuICAgICAgICAgICAgaGVhZGVyczogdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgbmV4dENvbmZpZzogaW5pdC5uZXh0Q29uZmlnXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzW0lOVEVSTkFMU10gPSB7XG4gICAgICAgICAgICBjb29raWVzOiBuZXcgUmVxdWVzdENvb2tpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIGdlbzogaW5pdC5nZW8gfHwge30sXG4gICAgICAgICAgICBpcDogaW5pdC5pcCxcbiAgICAgICAgICAgIG5leHRVcmwsXG4gICAgICAgICAgICB1cmw6IHByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUgPyB1cmwgOiBuZXh0VXJsLnRvU3RyaW5nKClcbiAgICAgICAgfTtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29va2llczogdGhpcy5jb29raWVzLFxuICAgICAgICAgICAgZ2VvOiB0aGlzLmdlbyxcbiAgICAgICAgICAgIGlwOiB0aGlzLmlwLFxuICAgICAgICAgICAgbmV4dFVybDogdGhpcy5uZXh0VXJsLFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIC8vIHJlc3Qgb2YgcHJvcHMgY29tZSBmcm9tIFJlcXVlc3RcbiAgICAgICAgICAgIGJvZHlVc2VkOiB0aGlzLmJvZHlVc2VkLFxuICAgICAgICAgICAgY2FjaGU6IHRoaXMuY2FjaGUsXG4gICAgICAgICAgICBjcmVkZW50aWFsczogdGhpcy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLmRlc3RpbmF0aW9uLFxuICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBpbnRlZ3JpdHk6IHRoaXMuaW50ZWdyaXR5LFxuICAgICAgICAgICAga2VlcGFsaXZlOiB0aGlzLmtlZXBhbGl2ZSxcbiAgICAgICAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgICByZWRpcmVjdDogdGhpcy5yZWRpcmVjdCxcbiAgICAgICAgICAgIHJlZmVycmVyOiB0aGlzLnJlZmVycmVyLFxuICAgICAgICAgICAgcmVmZXJyZXJQb2xpY3k6IHRoaXMucmVmZXJyZXJQb2xpY3ksXG4gICAgICAgICAgICBzaWduYWw6IHRoaXMuc2lnbmFsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldCBjb29raWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLmNvb2tpZXM7XG4gICAgfVxuICAgIGdldCBnZW8oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uZ2VvO1xuICAgIH1cbiAgICBnZXQgaXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uaXA7XG4gICAgfVxuICAgIGdldCBuZXh0VXJsKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLm5leHRVcmw7XG4gICAgfVxuICAgIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBgcGFnZWAgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgYFVSTFBhdHRlcm5gLlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVxdWVzdC1wYWdlXG4gICAqLyBnZXQgcGFnZSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJlbW92ZWRQYWdlRXJyb3IoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGB1YWAgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgXFxgdXNlckFnZW50XFxgIGZ1bmN0aW9uLlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcGFyc2UtdXNlci1hZ2VudFxuICAgKi8gZ2V0IHVhKCkge1xuICAgICAgICB0aHJvdyBuZXcgUmVtb3ZlZFVBRXJyb3IoKTtcbiAgICB9XG4gICAgZ2V0IHVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS51cmw7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LmpzLm1hcCJdLCJuYW1lcyI6WyJOZXh0VVJMIiwidG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyIsInZhbGlkYXRlVVJMIiwiUmVtb3ZlZFVBRXJyb3IiLCJSZW1vdmVkUGFnZUVycm9yIiwiUmVxdWVzdENvb2tpZXMiLCJJTlRFUk5BTFMiLCJTeW1ib2wiLCJOZXh0UmVxdWVzdCIsIlJlcXVlc3QiLCJjb25zdHJ1Y3RvciIsImlucHV0IiwiaW5pdCIsInVybCIsIlN0cmluZyIsIm5leHRVcmwiLCJoZWFkZXJzIiwibmV4dENvbmZpZyIsImNvb2tpZXMiLCJnZW8iLCJpcCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFIiwidG9TdHJpbmciLCJmb3IiLCJib2R5VXNlZCIsImNhY2hlIiwiY3JlZGVudGlhbHMiLCJkZXN0aW5hdGlvbiIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiaW50ZWdyaXR5Iiwia2VlcGFsaXZlIiwibWV0aG9kIiwibW9kZSIsInJlZGlyZWN0IiwicmVmZXJyZXIiLCJyZWZlcnJlclBvbGljeSIsInNpZ25hbCIsInBhZ2UiLCJ1YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/request.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/response.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/response.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NextResponse: () => (/* binding */ NextResponse)\n/* harmony export */ });\n/* harmony import */ var _next_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../next-url */ \"(ssr)/../../node_modules/next/dist/esm/server/web/next-url.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"(ssr)/../../node_modules/next/dist/esm/server/web/utils.js\");\n/* harmony import */ var _cookies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cookies */ \"(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n\n\n\nconst INTERNALS = Symbol(\"internal response\");\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw new Error(\"request.headers must be an instance of Headers\");\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set(\"x-middleware-request-\" + key, value);\n keys.push(key);\n }\n headers.set(\"x-middleware-override-headers\", keys.join(\",\"));\n }\n}\nclass NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n this[INTERNALS] = {\n cookies: new _cookies__WEBPACK_IMPORTED_MODULE_2__.ResponseCookies(this.headers),\n url: init.url ? new _next_url__WEBPACK_IMPORTED_MODULE_0__.NextURL(init.url, {\n headers: (0,_utils__WEBPACK_IMPORTED_MODULE_1__.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === \"number\" ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n }\n const initObj = typeof init === \"object\" ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set(\"Location\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.validateURL)(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-rewrite\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.validateURL)(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-next\", \"1\");\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n} //# sourceMappingURL=response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXNwb25zZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXNDO0FBQzRCO0FBQ3RCO0FBQzVDLE1BQU1JLFlBQVlDLE9BQU87QUFDekIsTUFBTUMsWUFBWSxJQUFJQyxJQUFJO0lBQ3RCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDSDtBQUNELFNBQVNDLHNCQUFzQkMsSUFBSSxFQUFFQyxPQUFPO0lBQ3hDLElBQUlDO0lBQ0osSUFBSUYsUUFBUSxPQUFPLEtBQUssSUFBSSxDQUFDRSxnQkFBZ0JGLEtBQUtHLE9BQU8sS0FBSyxPQUFPLEtBQUssSUFBSUQsY0FBY0QsT0FBTyxFQUFFO1FBQ2pHLElBQUksQ0FBRUQsQ0FBQUEsS0FBS0csT0FBTyxDQUFDRixPQUFPLFlBQVlHLE9BQU0sR0FBSTtZQUM1QyxNQUFNLElBQUlDLE1BQU07UUFDcEI7UUFDQSxNQUFNQyxPQUFPLEVBQUU7UUFDZixLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJUixLQUFLRyxPQUFPLENBQUNGLE9BQU8sQ0FBQztZQUM1Q0EsUUFBUVEsR0FBRyxDQUFDLDBCQUEwQkYsS0FBS0M7WUFDM0NGLEtBQUtJLElBQUksQ0FBQ0g7UUFDZDtRQUNBTixRQUFRUSxHQUFHLENBQUMsaUNBQWlDSCxLQUFLSyxJQUFJLENBQUM7SUFDM0Q7QUFDSjtBQUNPLE1BQU1DLHFCQUFxQkM7SUFDOUJDLFlBQVlDLElBQUksRUFBRWYsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4QixLQUFLLENBQUNlLE1BQU1mO1FBQ1osSUFBSSxDQUFDTCxVQUFVLEdBQUc7WUFDZHFCLFNBQVMsSUFBSXRCLHFEQUFlQSxDQUFDLElBQUksQ0FBQ08sT0FBTztZQUN6Q2dCLEtBQUtqQixLQUFLaUIsR0FBRyxHQUFHLElBQUkxQiw4Q0FBT0EsQ0FBQ1MsS0FBS2lCLEdBQUcsRUFBRTtnQkFDbENoQixTQUFTVCxpRUFBeUJBLENBQUMsSUFBSSxDQUFDUyxPQUFPO2dCQUMvQ2lCLFlBQVlsQixLQUFLa0IsVUFBVTtZQUMvQixLQUFLQztRQUNUO0lBQ0o7SUFDQSxDQUFDdkIsT0FBT3dCLEdBQUcsQ0FBQywrQkFBK0IsR0FBRztRQUMxQyxPQUFPO1lBQ0hKLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxLQUFLLElBQUksQ0FBQ0EsR0FBRztZQUNiLG1DQUFtQztZQUNuQ0YsTUFBTSxJQUFJLENBQUNBLElBQUk7WUFDZk0sVUFBVSxJQUFJLENBQUNBLFFBQVE7WUFDdkJwQixTQUFTcUIsT0FBT0MsV0FBVyxDQUFDLElBQUksQ0FBQ3RCLE9BQU87WUFDeEN1QixJQUFJLElBQUksQ0FBQ0EsRUFBRTtZQUNYQyxZQUFZLElBQUksQ0FBQ0EsVUFBVTtZQUMzQkMsUUFBUSxJQUFJLENBQUNBLE1BQU07WUFDbkJDLFlBQVksSUFBSSxDQUFDQSxVQUFVO1lBQzNCQyxNQUFNLElBQUksQ0FBQ0EsSUFBSTtRQUNuQjtJQUNKO0lBQ0EsSUFBSVosVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDckIsVUFBVSxDQUFDcUIsT0FBTztJQUNsQztJQUNBLE9BQU9hLEtBQUtkLElBQUksRUFBRWYsSUFBSSxFQUFFO1FBQ3BCLE1BQU04QixXQUFXakIsU0FBU2dCLElBQUksQ0FBQ2QsTUFBTWY7UUFDckMsT0FBTyxJQUFJWSxhQUFha0IsU0FBU2YsSUFBSSxFQUFFZTtJQUMzQztJQUNBLE9BQU9DLFNBQVNkLEdBQUcsRUFBRWpCLElBQUksRUFBRTtRQUN2QixNQUFNMEIsU0FBUyxPQUFPMUIsU0FBUyxXQUFXQSxPQUFPLENBQUNBLFFBQVEsT0FBTyxLQUFLLElBQUlBLEtBQUswQixNQUFNLEtBQUs7UUFDMUYsSUFBSSxDQUFDN0IsVUFBVW1DLEdBQUcsQ0FBQ04sU0FBUztZQUN4QixNQUFNLElBQUlPLFdBQVc7UUFDekI7UUFDQSxNQUFNQyxVQUFVLE9BQU9sQyxTQUFTLFdBQVdBLE9BQU8sQ0FBQztRQUNuRCxNQUFNQyxVQUFVLElBQUlHLFFBQVE4QixXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRakMsT0FBTztRQUN0RUEsUUFBUVEsR0FBRyxDQUFDLFlBQVloQixtREFBV0EsQ0FBQ3dCO1FBQ3BDLE9BQU8sSUFBSUwsYUFBYSxNQUFNO1lBQzFCLEdBQUdzQixPQUFPO1lBQ1ZqQztZQUNBeUI7UUFDSjtJQUNKO0lBQ0EsT0FBT1MsUUFBUUMsV0FBVyxFQUFFcEMsSUFBSSxFQUFFO1FBQzlCLE1BQU1DLFVBQVUsSUFBSUcsUUFBUUosUUFBUSxPQUFPLEtBQUssSUFBSUEsS0FBS0MsT0FBTztRQUNoRUEsUUFBUVEsR0FBRyxDQUFDLHdCQUF3QmhCLG1EQUFXQSxDQUFDMkM7UUFDaERyQyxzQkFBc0JDLE1BQU1DO1FBQzVCLE9BQU8sSUFBSVcsYUFBYSxNQUFNO1lBQzFCLEdBQUdaLElBQUk7WUFDUEM7UUFDSjtJQUNKO0lBQ0EsT0FBT29DLEtBQUtyQyxJQUFJLEVBQUU7UUFDZCxNQUFNQyxVQUFVLElBQUlHLFFBQVFKLFFBQVEsT0FBTyxLQUFLLElBQUlBLEtBQUtDLE9BQU87UUFDaEVBLFFBQVFRLEdBQUcsQ0FBQyxxQkFBcUI7UUFDakNWLHNCQUFzQkMsTUFBTUM7UUFDNUIsT0FBTyxJQUFJVyxhQUFhLE1BQU07WUFDMUIsR0FBR1osSUFBSTtZQUNQQztRQUNKO0lBQ0o7QUFDSixFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXNwb25zZS5qcz9kNDI4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5leHRVUkwgfSBmcm9tIFwiLi4vbmV4dC11cmxcIjtcbmltcG9ydCB7IHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMsIHZhbGlkYXRlVVJMIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBSZXNwb25zZUNvb2tpZXMgfSBmcm9tIFwiLi9jb29raWVzXCI7XG5jb25zdCBJTlRFUk5BTFMgPSBTeW1ib2woXCJpbnRlcm5hbCByZXNwb25zZVwiKTtcbmNvbnN0IFJFRElSRUNUUyA9IG5ldyBTZXQoW1xuICAgIDMwMSxcbiAgICAzMDIsXG4gICAgMzAzLFxuICAgIDMwNyxcbiAgICAzMDhcbl0pO1xuZnVuY3Rpb24gaGFuZGxlTWlkZGxld2FyZUZpZWxkKGluaXQsIGhlYWRlcnMpIHtcbiAgICB2YXIgX2luaXRfcmVxdWVzdDtcbiAgICBpZiAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogKF9pbml0X3JlcXVlc3QgPSBpbml0LnJlcXVlc3QpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9yZXF1ZXN0LmhlYWRlcnMpIHtcbiAgICAgICAgaWYgKCEoaW5pdC5yZXF1ZXN0LmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwicmVxdWVzdC5oZWFkZXJzIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSGVhZGVyc1wiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGluaXQucmVxdWVzdC5oZWFkZXJzKXtcbiAgICAgICAgICAgIGhlYWRlcnMuc2V0KFwieC1taWRkbGV3YXJlLXJlcXVlc3QtXCIgKyBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIGtleXMucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGhlYWRlcnMuc2V0KFwieC1taWRkbGV3YXJlLW92ZXJyaWRlLWhlYWRlcnNcIiwga2V5cy5qb2luKFwiLFwiKSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE5leHRSZXNwb25zZSBleHRlbmRzIFJlc3BvbnNlIHtcbiAgICBjb25zdHJ1Y3Rvcihib2R5LCBpbml0ID0ge30pe1xuICAgICAgICBzdXBlcihib2R5LCBpbml0KTtcbiAgICAgICAgdGhpc1tJTlRFUk5BTFNdID0ge1xuICAgICAgICAgICAgY29va2llczogbmV3IFJlc3BvbnNlQ29va2llcyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgdXJsOiBpbml0LnVybCA/IG5ldyBOZXh0VVJMKGluaXQudXJsLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgICAgIG5leHRDb25maWc6IGluaXQubmV4dENvbmZpZ1xuICAgICAgICAgICAgfSkgOiB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29va2llczogdGhpcy5jb29raWVzLFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIC8vIHJlc3Qgb2YgcHJvcHMgY29tZSBmcm9tIFJlc3BvbnNlXG4gICAgICAgICAgICBib2R5OiB0aGlzLmJvZHksXG4gICAgICAgICAgICBib2R5VXNlZDogdGhpcy5ib2R5VXNlZCxcbiAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgb2s6IHRoaXMub2ssXG4gICAgICAgICAgICByZWRpcmVjdGVkOiB0aGlzLnJlZGlyZWN0ZWQsXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgICAgICAgc3RhdHVzVGV4dDogdGhpcy5zdGF0dXNUZXh0LFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldCBjb29raWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLmNvb2tpZXM7XG4gICAgfVxuICAgIHN0YXRpYyBqc29uKGJvZHksIGluaXQpIHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBSZXNwb25zZS5qc29uKGJvZHksIGluaXQpO1xuICAgICAgICByZXR1cm4gbmV3IE5leHRSZXNwb25zZShyZXNwb25zZS5ib2R5LCByZXNwb25zZSk7XG4gICAgfVxuICAgIHN0YXRpYyByZWRpcmVjdCh1cmwsIGluaXQpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gdHlwZW9mIGluaXQgPT09IFwibnVtYmVyXCIgPyBpbml0IDogKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuc3RhdHVzKSA/PyAzMDc7XG4gICAgICAgIGlmICghUkVESVJFQ1RTLmhhcyhzdGF0dXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignRmFpbGVkIHRvIGV4ZWN1dGUgXCJyZWRpcmVjdFwiIG9uIFwicmVzcG9uc2VcIjogSW52YWxpZCBzdGF0dXMgY29kZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluaXRPYmogPSB0eXBlb2YgaW5pdCA9PT0gXCJvYmplY3RcIiA/IGluaXQgOiB7fTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXRPYmogPT0gbnVsbCA/IHZvaWQgMCA6IGluaXRPYmouaGVhZGVycyk7XG4gICAgICAgIGhlYWRlcnMuc2V0KFwiTG9jYXRpb25cIiwgdmFsaWRhdGVVUkwodXJsKSk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgICAgIC4uLmluaXRPYmosXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgcmV3cml0ZShkZXN0aW5hdGlvbiwgaW5pdCkge1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdC5oZWFkZXJzKTtcbiAgICAgICAgaGVhZGVycy5zZXQoXCJ4LW1pZGRsZXdhcmUtcmV3cml0ZVwiLCB2YWxpZGF0ZVVSTChkZXN0aW5hdGlvbikpO1xuICAgICAgICBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgaGVhZGVycyk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgbmV4dChpbml0KSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0LmhlYWRlcnMpO1xuICAgICAgICBoZWFkZXJzLnNldChcIngtbWlkZGxld2FyZS1uZXh0XCIsIFwiMVwiKTtcbiAgICAgICAgaGFuZGxlTWlkZGxld2FyZUZpZWxkKGluaXQsIGhlYWRlcnMpO1xuICAgICAgICByZXR1cm4gbmV3IE5leHRSZXNwb25zZShudWxsLCB7XG4gICAgICAgICAgICAuLi5pbml0LFxuICAgICAgICAgICAgaGVhZGVyc1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc3BvbnNlLmpzLm1hcCJdLCJuYW1lcyI6WyJOZXh0VVJMIiwidG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyIsInZhbGlkYXRlVVJMIiwiUmVzcG9uc2VDb29raWVzIiwiSU5URVJOQUxTIiwiU3ltYm9sIiwiUkVESVJFQ1RTIiwiU2V0IiwiaGFuZGxlTWlkZGxld2FyZUZpZWxkIiwiaW5pdCIsImhlYWRlcnMiLCJfaW5pdF9yZXF1ZXN0IiwicmVxdWVzdCIsIkhlYWRlcnMiLCJFcnJvciIsImtleXMiLCJrZXkiLCJ2YWx1ZSIsInNldCIsInB1c2giLCJqb2luIiwiTmV4dFJlc3BvbnNlIiwiUmVzcG9uc2UiLCJjb25zdHJ1Y3RvciIsImJvZHkiLCJjb29raWVzIiwidXJsIiwibmV4dENvbmZpZyIsInVuZGVmaW5lZCIsImZvciIsImJvZHlVc2VkIiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJvayIsInJlZGlyZWN0ZWQiLCJzdGF0dXMiLCJzdGF0dXNUZXh0IiwidHlwZSIsImpzb24iLCJyZXNwb25zZSIsInJlZGlyZWN0IiwiaGFzIiwiUmFuZ2VFcnJvciIsImluaXRPYmoiLCJyZXdyaXRlIiwiZGVzdGluYXRpb24iLCJuZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/spec-extension/response.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/web/utils.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/utils.js ***!
- \************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fromNodeOutgoingHttpHeaders: () => (/* binding */ fromNodeOutgoingHttpHeaders),\n/* harmony export */ splitCookiesString: () => (/* binding */ splitCookiesString),\n/* harmony export */ toNodeOutgoingHttpHeaders: () => (/* binding */ toNodeOutgoingHttpHeaders),\n/* harmony export */ validateURL: () => (/* binding */ validateURL)\n/* harmony export */ });\n/**\n * Converts a Node.js IncomingHttpHeaders object to a Headers object. Any\n * headers with multiple values will be joined with a comma and space. Any\n * headers that have an undefined value will be ignored and others will be\n * coerced to strings.\n *\n * @param nodeHeaders the headers object to convert\n * @returns the converted headers object\n */ function fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === \"undefined\") continue;\n if (typeof v === \"number\") {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n \n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/ function splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n/**\n * Converts a Headers object to a Node.js OutgoingHttpHeaders object. This is\n * required to support the set-cookie header, which may have multiple values.\n *\n * @param headers the headers object to convert\n * @returns the converted headers object\n */ function toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === \"set-cookie\") {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\n/**\n * Validate the correctness of a user-provided URL.\n */ function validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n });\n }\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTQSw0QkFBNEJDLFdBQVc7SUFDdkQsTUFBTUMsVUFBVSxJQUFJQztJQUNwQixLQUFLLElBQUksQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUNOLGFBQWE7UUFDakQsTUFBTU8sU0FBU0MsTUFBTUMsT0FBTyxDQUFDTCxTQUFTQSxRQUFRO1lBQzFDQTtTQUNIO1FBQ0QsS0FBSyxJQUFJTSxLQUFLSCxPQUFPO1lBQ2pCLElBQUksT0FBT0csTUFBTSxhQUFhO1lBQzlCLElBQUksT0FBT0EsTUFBTSxVQUFVO2dCQUN2QkEsSUFBSUEsRUFBRUMsUUFBUTtZQUNsQjtZQUNBVixRQUFRVyxNQUFNLENBQUNULEtBQUtPO1FBQ3hCO0lBQ0o7SUFDQSxPQUFPVDtBQUNYO0FBQ0E7Ozs7Ozs7OztBQVNBLEdBQVUsU0FBU1ksbUJBQW1CQyxhQUFhO0lBQy9DLElBQUlDLGlCQUFpQixFQUFFO0lBQ3ZCLElBQUlDLE1BQU07SUFDVixJQUFJQztJQUNKLElBQUlDO0lBQ0osSUFBSUM7SUFDSixJQUFJQztJQUNKLElBQUlDO0lBQ0osU0FBU0M7UUFDTCxNQUFNTixNQUFNRixjQUFjUyxNQUFNLElBQUksS0FBS0MsSUFBSSxDQUFDVixjQUFjVyxNQUFNLENBQUNULE1BQU07WUFDckVBLE9BQU87UUFDWDtRQUNBLE9BQU9BLE1BQU1GLGNBQWNTLE1BQU07SUFDckM7SUFDQSxTQUFTRztRQUNMUixLQUFLSixjQUFjVyxNQUFNLENBQUNUO1FBQzFCLE9BQU9FLE9BQU8sT0FBT0EsT0FBTyxPQUFPQSxPQUFPO0lBQzlDO0lBQ0EsTUFBTUYsTUFBTUYsY0FBY1MsTUFBTSxDQUFDO1FBQzdCTixRQUFRRDtRQUNSSyx3QkFBd0I7UUFDeEIsTUFBTUMsaUJBQWlCO1lBQ25CSixLQUFLSixjQUFjVyxNQUFNLENBQUNUO1lBQzFCLElBQUlFLE9BQU8sS0FBSztnQkFDWix1RUFBdUU7Z0JBQ3ZFQyxZQUFZSDtnQkFDWkEsT0FBTztnQkFDUE07Z0JBQ0FGLFlBQVlKO2dCQUNaLE1BQU1BLE1BQU1GLGNBQWNTLE1BQU0sSUFBSUcsaUJBQWlCO29CQUNqRFYsT0FBTztnQkFDWDtnQkFDQSw4QkFBOEI7Z0JBQzlCLElBQUlBLE1BQU1GLGNBQWNTLE1BQU0sSUFBSVQsY0FBY1csTUFBTSxDQUFDVCxTQUFTLEtBQUs7b0JBQ2pFLDZCQUE2QjtvQkFDN0JLLHdCQUF3QjtvQkFDeEIsMkRBQTJEO29CQUMzREwsTUFBTUk7b0JBQ05MLGVBQWVZLElBQUksQ0FBQ2IsY0FBY2MsU0FBUyxDQUFDWCxPQUFPRTtvQkFDbkRGLFFBQVFEO2dCQUNaLE9BQU87b0JBQ0gsdUNBQXVDO29CQUN2Qyw4QkFBOEI7b0JBQzlCQSxNQUFNRyxZQUFZO2dCQUN0QjtZQUNKLE9BQU87Z0JBQ0hILE9BQU87WUFDWDtRQUNKO1FBQ0EsSUFBSSxDQUFDSyx5QkFBeUJMLE9BQU9GLGNBQWNTLE1BQU0sRUFBRTtZQUN2RFIsZUFBZVksSUFBSSxDQUFDYixjQUFjYyxTQUFTLENBQUNYLE9BQU9ILGNBQWNTLE1BQU07UUFDM0U7SUFDSjtJQUNBLE9BQU9SO0FBQ1g7QUFDQTs7Ozs7O0NBTUMsR0FBVSxTQUFTYywwQkFBMEI1QixPQUFPO0lBQ2pELE1BQU1ELGNBQWMsQ0FBQztJQUNyQixNQUFNOEIsVUFBVSxFQUFFO0lBQ2xCLElBQUk3QixTQUFTO1FBQ1QsS0FBSyxNQUFNLENBQUNFLEtBQUtDLE1BQU0sSUFBSUgsUUFBUUssT0FBTyxHQUFHO1lBQ3pDLElBQUlILElBQUk0QixXQUFXLE9BQU8sY0FBYztnQkFDcEMsbUVBQW1FO2dCQUNuRSxrRUFBa0U7Z0JBQ2xFLGdDQUFnQztnQkFDaENELFFBQVFILElBQUksSUFBSWQsbUJBQW1CVDtnQkFDbkNKLFdBQVcsQ0FBQ0csSUFBSSxHQUFHMkIsUUFBUVAsTUFBTSxLQUFLLElBQUlPLE9BQU8sQ0FBQyxFQUFFLEdBQUdBO1lBQzNELE9BQU87Z0JBQ0g5QixXQUFXLENBQUNHLElBQUksR0FBR0M7WUFDdkI7UUFDSjtJQUNKO0lBQ0EsT0FBT0o7QUFDWDtBQUNBOztDQUVDLEdBQVUsU0FBU2dDLFlBQVlDLEdBQUc7SUFDL0IsSUFBSTtRQUNBLE9BQU9DLE9BQU8sSUFBSUMsSUFBSUQsT0FBT0Q7SUFDakMsRUFBRSxPQUFPRyxPQUFPO1FBQ1osTUFBTSxJQUFJQyxNQUFNLENBQUMsa0JBQWtCLEVBQUVILE9BQU9ELEtBQUssNEZBQTRGLENBQUMsRUFBRTtZQUM1SUssT0FBT0Y7UUFDWDtJQUNKO0FBQ0osRUFFQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvdXRpbHMuanM/ZmUxOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlcnRzIGEgTm9kZS5qcyBJbmNvbWluZ0h0dHBIZWFkZXJzIG9iamVjdCB0byBhIEhlYWRlcnMgb2JqZWN0LiBBbnlcbiAqIGhlYWRlcnMgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgd2lsbCBiZSBqb2luZWQgd2l0aCBhIGNvbW1hIGFuZCBzcGFjZS4gQW55XG4gKiBoZWFkZXJzIHRoYXQgaGF2ZSBhbiB1bmRlZmluZWQgdmFsdWUgd2lsbCBiZSBpZ25vcmVkIGFuZCBvdGhlcnMgd2lsbCBiZVxuICogY29lcmNlZCB0byBzdHJpbmdzLlxuICpcbiAqIEBwYXJhbSBub2RlSGVhZGVycyB0aGUgaGVhZGVycyBvYmplY3QgdG8gY29udmVydFxuICogQHJldHVybnMgdGhlIGNvbnZlcnRlZCBoZWFkZXJzIG9iamVjdFxuICovIGV4cG9ydCBmdW5jdGlvbiBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMobm9kZUhlYWRlcnMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobm9kZUhlYWRlcnMpKXtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF07XG4gICAgICAgIGZvciAobGV0IHYgb2YgdmFsdWVzKXtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJ1bmRlZmluZWRcIikgY29udGludWU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICB2ID0gdi50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoa2V5LCB2KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbn1cbi8qXG4gIFNldC1Db29raWUgaGVhZGVyIGZpZWxkLXZhbHVlcyBhcmUgc29tZXRpbWVzIGNvbW1hIGpvaW5lZCBpbiBvbmUgc3RyaW5nLiBUaGlzIHNwbGl0cyB0aGVtIHdpdGhvdXQgY2hva2luZyBvbiBjb21tYXNcbiAgdGhhdCBhcmUgd2l0aGluIGEgc2luZ2xlIHNldC1jb29raWUgZmllbGQtdmFsdWUsIHN1Y2ggYXMgaW4gdGhlIEV4cGlyZXMgcG9ydGlvbi5cbiAgVGhpcyBpcyB1bmNvbW1vbiwgYnV0IGV4cGxpY2l0bHkgYWxsb3dlZCAtIHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjYxNiNzZWN0aW9uLTQuMlxuICBOb2RlLmpzIGRvZXMgdGhpcyBmb3IgZXZlcnkgaGVhZGVyICpleGNlcHQqIHNldC1jb29raWUgLSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvZDVlMzYzYjc3ZWJhZjFjYWY2N2NkNzUyODIyNGI2NTFjODY4MTVjMS9saWIvX2h0dHBfaW5jb21pbmcuanMjTDEyOFxuICBSZWFjdCBOYXRpdmUncyBmZXRjaCBkb2VzIHRoaXMgZm9yICpldmVyeSogaGVhZGVyLCBpbmNsdWRpbmcgc2V0LWNvb2tpZS5cbiAgXG4gIEJhc2VkIG9uOiBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2oyb2JqYy9jb21taXQvMTY4MjBmZGJjOGY3NmNhMGMzMzQ3MjgxMGNlMGNiMDNkMjBlZmUyNVxuICBDcmVkaXRzIHRvOiBodHRwczovL2dpdGh1Yi5jb20vdG9tYmFsbCBmb3Igb3JpZ2luYWwgYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJ1c2FydCBmb3IgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvblxuKi8gZXhwb3J0IGZ1bmN0aW9uIHNwbGl0Q29va2llc1N0cmluZyhjb29raWVzU3RyaW5nKSB7XG4gICAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gICAgdmFyIHBvcyA9IDA7XG4gICAgdmFyIHN0YXJ0O1xuICAgIHZhciBjaDtcbiAgICB2YXIgbGFzdENvbW1hO1xuICAgIHZhciBuZXh0U3RhcnQ7XG4gICAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgICBmdW5jdGlvbiBza2lwV2hpdGVzcGFjZSgpIHtcbiAgICAgICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgL1xccy8udGVzdChjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpKSl7XG4gICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vdFNwZWNpYWxDaGFyKCkge1xuICAgICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICAgIHJldHVybiBjaCAhPT0gXCI9XCIgJiYgY2ggIT09IFwiO1wiICYmIGNoICE9PSBcIixcIjtcbiAgICB9XG4gICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpe1xuICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gZmFsc2U7XG4gICAgICAgIHdoaWxlKHNraXBXaGl0ZXNwYWNlKCkpe1xuICAgICAgICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgICAgICAgaWYgKGNoID09PSBcIixcIikge1xuICAgICAgICAgICAgICAgIC8vICcsJyBpcyBhIGNvb2tpZSBzZXBhcmF0b3IgaWYgd2UgaGF2ZSBsYXRlciBmaXJzdCAnPScsIG5vdCAnOycgb3IgJywnXG4gICAgICAgICAgICAgICAgbGFzdENvbW1hID0gcG9zO1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICAgIHNraXBXaGl0ZXNwYWNlKCk7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIG5vdFNwZWNpYWxDaGFyKCkpe1xuICAgICAgICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gY3VycmVudGx5IHNwZWNpYWwgY2hhcmFjdGVyXG4gICAgICAgICAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09IFwiPVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGZvdW5kIGNvb2tpZXMgc2VwYXJhdG9yXG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIC8vIHBvcyBpcyBpbnNpZGUgdGhlIG5leHQgY29va2llLCBzbyBiYWNrIHVwIGFuZCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IG5leHRTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluIHBhcmFtICcsJyBvciBwYXJhbSBzZXBhcmF0b3IgJzsnLFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb250aW51ZSBmcm9tIHRoYXQgY29tbWFcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29va2llc1N0cmluZ3M7XG59XG4vKipcbiAqIENvbnZlcnRzIGEgSGVhZGVycyBvYmplY3QgdG8gYSBOb2RlLmpzIE91dGdvaW5nSHR0cEhlYWRlcnMgb2JqZWN0LiBUaGlzIGlzXG4gKiByZXF1aXJlZCB0byBzdXBwb3J0IHRoZSBzZXQtY29va2llIGhlYWRlciwgd2hpY2ggbWF5IGhhdmUgbXVsdGlwbGUgdmFsdWVzLlxuICpcbiAqIEBwYXJhbSBoZWFkZXJzIHRoZSBoZWFkZXJzIG9iamVjdCB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyB0aGUgY29udmVydGVkIGhlYWRlcnMgb2JqZWN0XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMoaGVhZGVycykge1xuICAgIGNvbnN0IG5vZGVIZWFkZXJzID0ge307XG4gICAgY29uc3QgY29va2llcyA9IFtdO1xuICAgIGlmIChoZWFkZXJzKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhlYWRlcnMuZW50cmllcygpKXtcbiAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gXCJzZXQtY29va2llXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBtYXkgaGF2ZSBnb3R0ZW4gYSBjb21tYSBqb2luZWQgc3RyaW5nIG9mIGNvb2tpZXMsIG9yIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgLy8gc2V0LWNvb2tpZSBoZWFkZXJzLiBXZSBuZWVkIHRvIG1lcmdlIHRoZW0gaW50byBvbmUgaGVhZGVyIGFycmF5XG4gICAgICAgICAgICAgICAgLy8gdG8gcmVwcmVzZW50IGFsbCB0aGUgY29va2llcy5cbiAgICAgICAgICAgICAgICBjb29raWVzLnB1c2goLi4uc3BsaXRDb29raWVzU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgbm9kZUhlYWRlcnNba2V5XSA9IGNvb2tpZXMubGVuZ3RoID09PSAxID8gY29va2llc1swXSA6IGNvb2tpZXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vZGVIZWFkZXJzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9kZUhlYWRlcnM7XG59XG4vKipcbiAqIFZhbGlkYXRlIHRoZSBjb3JyZWN0bmVzcyBvZiBhIHVzZXItcHJvdmlkZWQgVVJMLlxuICovIGV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVVSTCh1cmwpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gU3RyaW5nKG5ldyBVUkwoU3RyaW5nKHVybCkpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVSTCBpcyBtYWxmb3JtZWQgXCIke1N0cmluZyh1cmwpfVwiLiBQbGVhc2UgdXNlIG9ubHkgYWJzb2x1dGUgVVJMcyAtIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVsYXRpdmUtdXJsc2AsIHtcbiAgICAgICAgICAgIGNhdXNlOiBlcnJvclxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMiLCJub2RlSGVhZGVycyIsImhlYWRlcnMiLCJIZWFkZXJzIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwidmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwidiIsInRvU3RyaW5nIiwiYXBwZW5kIiwic3BsaXRDb29raWVzU3RyaW5nIiwiY29va2llc1N0cmluZyIsImNvb2tpZXNTdHJpbmdzIiwicG9zIiwic3RhcnQiLCJjaCIsImxhc3RDb21tYSIsIm5leHRTdGFydCIsImNvb2tpZXNTZXBhcmF0b3JGb3VuZCIsInNraXBXaGl0ZXNwYWNlIiwibGVuZ3RoIiwidGVzdCIsImNoYXJBdCIsIm5vdFNwZWNpYWxDaGFyIiwicHVzaCIsInN1YnN0cmluZyIsInRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMiLCJjb29raWVzIiwidG9Mb3dlckNhc2UiLCJ2YWxpZGF0ZVVSTCIsInVybCIsIlN0cmluZyIsIlVSTCIsImVycm9yIiwiRXJyb3IiLCJjYXVzZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/web/utils.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/amp-context.shared-runtime.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/amp-context.shared-runtime.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AmpStateContext: () => (/* binding */ AmpStateContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nconst AmpStateContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext({});\nif (true) {\n AmpStateContext.displayName = \"AmpStateContext\";\n} //# sourceMappingURL=amp-context.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9hbXAtY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMEI7QUFDbkIsTUFBTUMsZ0NBQWtCRCwwREFBbUIsQ0FBQyxDQUFDLEdBQUc7QUFDdkQsSUFBSUcsSUFBcUMsRUFBRTtJQUN2Q0YsZ0JBQWdCRyxXQUFXLEdBQUc7QUFDbEMsRUFFQSxzREFBc0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanM/OTFjMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgY29uc3QgQW1wU3RhdGVDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgQW1wU3RhdGVDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJBbXBTdGF0ZUNvbnRleHRcIjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMubWFwIl0sIm5hbWVzIjpbIlJlYWN0IiwiQW1wU3RhdGVDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsInByb2Nlc3MiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/amp-context.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/amp-mode.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/amp-mode.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isInAmpMode: () => (/* binding */ isInAmpMode)\n/* harmony export */ });\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9hbXAtbW9kZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sU0FBU0EsWUFBWUMsS0FBSztJQUM3QixJQUFJLEVBQUVDLFdBQVcsS0FBSyxFQUFFQyxTQUFTLEtBQUssRUFBRUMsV0FBVyxLQUFLLEVBQUUsR0FBR0gsVUFBVSxLQUFLLElBQUksQ0FBQyxJQUFJQTtJQUNyRixPQUFPQyxZQUFZQyxVQUFVQztBQUNqQyxFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9hbXAtbW9kZS5qcz85NzYwIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0luQW1wTW9kZShwYXJhbSkge1xuICAgIGxldCB7IGFtcEZpcnN0ID0gZmFsc2UsIGh5YnJpZCA9IGZhbHNlLCBoYXNRdWVyeSA9IGZhbHNlIH0gPSBwYXJhbSA9PT0gdm9pZCAwID8ge30gOiBwYXJhbTtcbiAgICByZXR1cm4gYW1wRmlyc3QgfHwgaHlicmlkICYmIGhhc1F1ZXJ5O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtbW9kZS5qcy5tYXAiXSwibmFtZXMiOlsiaXNJbkFtcE1vZGUiLCJwYXJhbSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/amp-mode.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js":
-/*!****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js ***!
- \****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRouterContext: () => (/* binding */ AppRouterContext),\n/* harmony export */ GlobalLayoutRouterContext: () => (/* binding */ GlobalLayoutRouterContext),\n/* harmony export */ LayoutRouterContext: () => (/* binding */ LayoutRouterContext),\n/* harmony export */ MissingSlotContext: () => (/* binding */ MissingSlotContext),\n/* harmony export */ TemplateContext: () => (/* binding */ TemplateContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ AppRouterContext,LayoutRouterContext,GlobalLayoutRouterContext,TemplateContext,MissingSlotContext auto */ \nconst AppRouterContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null);\nconst LayoutRouterContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null);\nconst GlobalLayoutRouterContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null);\nconst TemplateContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null);\nif (true) {\n AppRouterContext.displayName = \"AppRouterContext\";\n LayoutRouterContext.displayName = \"LayoutRouterContext\";\n GlobalLayoutRouterContext.displayName = \"GlobalLayoutRouterContext\";\n TemplateContext.displayName = \"TemplateContext\";\n}\nconst MissingSlotContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(new Set()); //# sourceMappingURL=app-router-context.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozt1SkFFMEI7QUFDbkIsTUFBTUMsaUNBQW1CRCwwREFBbUIsQ0FBQyxNQUFNO0FBQ25ELE1BQU1HLG9DQUFzQkgsMERBQW1CLENBQUMsTUFBTTtBQUN0RCxNQUFNSSwwQ0FBNEJKLDBEQUFtQixDQUFDLE1BQU07QUFDNUQsTUFBTUssZ0NBQWtCTCwwREFBbUIsQ0FBQyxNQUFNO0FBQ3pELElBQUlNLElBQXFDLEVBQUU7SUFDdkNMLGlCQUFpQk0sV0FBVyxHQUFHO0lBQy9CSixvQkFBb0JJLFdBQVcsR0FBRztJQUNsQ0gsMEJBQTBCRyxXQUFXLEdBQUc7SUFDeENGLGdCQUFnQkUsV0FBVyxHQUFHO0FBQ2xDO0FBQ08sTUFBTUMsbUNBQXFCUiwwREFBbUIsQ0FBQyxJQUFJUyxPQUFPLENBRWpFLDZEQUE2RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanM/ZmViZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IGNvbnN0IEFwcFJvdXRlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0IGNvbnN0IExheW91dFJvdXRlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0IGNvbnN0IEdsb2JhbExheW91dFJvdXRlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0IGNvbnN0IFRlbXBsYXRlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgQXBwUm91dGVyQ29udGV4dC5kaXNwbGF5TmFtZSA9IFwiQXBwUm91dGVyQ29udGV4dFwiO1xuICAgIExheW91dFJvdXRlckNvbnRleHQuZGlzcGxheU5hbWUgPSBcIkxheW91dFJvdXRlckNvbnRleHRcIjtcbiAgICBHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0XCI7XG4gICAgVGVtcGxhdGVDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJUZW1wbGF0ZUNvbnRleHRcIjtcbn1cbmV4cG9ydCBjb25zdCBNaXNzaW5nU2xvdENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KG5ldyBTZXQoKSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOlsiUmVhY3QiLCJBcHBSb3V0ZXJDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsIkxheW91dFJvdXRlckNvbnRleHQiLCJHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0IiwiVGVtcGxhdGVDb250ZXh0IiwicHJvY2VzcyIsImRpc3BsYXlOYW1lIiwiTWlzc2luZ1Nsb3RDb250ZXh0IiwiU2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/constants.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ APP_BUILD_MANIFEST: () => (/* binding */ APP_BUILD_MANIFEST),\n/* harmony export */ APP_CLIENT_INTERNALS: () => (/* binding */ APP_CLIENT_INTERNALS),\n/* harmony export */ APP_PATHS_MANIFEST: () => (/* binding */ APP_PATHS_MANIFEST),\n/* harmony export */ APP_PATH_ROUTES_MANIFEST: () => (/* binding */ APP_PATH_ROUTES_MANIFEST),\n/* harmony export */ BARREL_OPTIMIZATION_PREFIX: () => (/* binding */ BARREL_OPTIMIZATION_PREFIX),\n/* harmony export */ BLOCKED_PAGES: () => (/* binding */ BLOCKED_PAGES),\n/* harmony export */ BUILD_ID_FILE: () => (/* binding */ BUILD_ID_FILE),\n/* harmony export */ BUILD_MANIFEST: () => (/* binding */ BUILD_MANIFEST),\n/* harmony export */ CLIENT_PUBLIC_FILES_PATH: () => (/* binding */ CLIENT_PUBLIC_FILES_PATH),\n/* harmony export */ CLIENT_REFERENCE_MANIFEST: () => (/* binding */ CLIENT_REFERENCE_MANIFEST),\n/* harmony export */ CLIENT_STATIC_FILES_PATH: () => (/* binding */ CLIENT_STATIC_FILES_PATH),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_AMP: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_AMP),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_MAIN: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_MAIN),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_MAIN_APP),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_POLYFILLS),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH),\n/* harmony export */ CLIENT_STATIC_FILES_RUNTIME_WEBPACK: () => (/* binding */ CLIENT_STATIC_FILES_RUNTIME_WEBPACK),\n/* harmony export */ COMPILER_INDEXES: () => (/* binding */ COMPILER_INDEXES),\n/* harmony export */ COMPILER_NAMES: () => (/* binding */ COMPILER_NAMES),\n/* harmony export */ CONFIG_FILES: () => (/* binding */ CONFIG_FILES),\n/* harmony export */ DEFAULT_SANS_SERIF_FONT: () => (/* binding */ DEFAULT_SANS_SERIF_FONT),\n/* harmony export */ DEFAULT_SERIF_FONT: () => (/* binding */ DEFAULT_SERIF_FONT),\n/* harmony export */ DEV_CLIENT_PAGES_MANIFEST: () => (/* binding */ DEV_CLIENT_PAGES_MANIFEST),\n/* harmony export */ DEV_MIDDLEWARE_MANIFEST: () => (/* binding */ DEV_MIDDLEWARE_MANIFEST),\n/* harmony export */ EDGE_RUNTIME_WEBPACK: () => (/* binding */ EDGE_RUNTIME_WEBPACK),\n/* harmony export */ EDGE_UNSUPPORTED_NODE_APIS: () => (/* binding */ EDGE_UNSUPPORTED_NODE_APIS),\n/* harmony export */ EXPORT_DETAIL: () => (/* binding */ EXPORT_DETAIL),\n/* harmony export */ EXPORT_MARKER: () => (/* binding */ EXPORT_MARKER),\n/* harmony export */ FONT_MANIFEST: () => (/* binding */ FONT_MANIFEST),\n/* harmony export */ FUNCTIONS_CONFIG_MANIFEST: () => (/* binding */ FUNCTIONS_CONFIG_MANIFEST),\n/* harmony export */ GOOGLE_FONT_PROVIDER: () => (/* binding */ GOOGLE_FONT_PROVIDER),\n/* harmony export */ IMAGES_MANIFEST: () => (/* binding */ IMAGES_MANIFEST),\n/* harmony export */ INTERNAL_HEADERS: () => (/* binding */ INTERNAL_HEADERS),\n/* harmony export */ MIDDLEWARE_BUILD_MANIFEST: () => (/* binding */ MIDDLEWARE_BUILD_MANIFEST),\n/* harmony export */ MIDDLEWARE_MANIFEST: () => (/* binding */ MIDDLEWARE_MANIFEST),\n/* harmony export */ MIDDLEWARE_REACT_LOADABLE_MANIFEST: () => (/* binding */ MIDDLEWARE_REACT_LOADABLE_MANIFEST),\n/* harmony export */ MODERN_BROWSERSLIST_TARGET: () => (/* reexport default from dynamic */ _modern_browserslist_target__WEBPACK_IMPORTED_MODULE_0___default.a),\n/* harmony export */ NEXT_BUILTIN_DOCUMENT: () => (/* binding */ NEXT_BUILTIN_DOCUMENT),\n/* harmony export */ NEXT_FONT_MANIFEST: () => (/* binding */ NEXT_FONT_MANIFEST),\n/* harmony export */ OPTIMIZED_FONT_PROVIDERS: () => (/* binding */ OPTIMIZED_FONT_PROVIDERS),\n/* harmony export */ PAGES_MANIFEST: () => (/* binding */ PAGES_MANIFEST),\n/* harmony export */ PHASE_DEVELOPMENT_SERVER: () => (/* binding */ PHASE_DEVELOPMENT_SERVER),\n/* harmony export */ PHASE_EXPORT: () => (/* binding */ PHASE_EXPORT),\n/* harmony export */ PHASE_INFO: () => (/* binding */ PHASE_INFO),\n/* harmony export */ PHASE_PRODUCTION_BUILD: () => (/* binding */ PHASE_PRODUCTION_BUILD),\n/* harmony export */ PHASE_PRODUCTION_SERVER: () => (/* binding */ PHASE_PRODUCTION_SERVER),\n/* harmony export */ PHASE_TEST: () => (/* binding */ PHASE_TEST),\n/* harmony export */ PRERENDER_MANIFEST: () => (/* binding */ PRERENDER_MANIFEST),\n/* harmony export */ REACT_LOADABLE_MANIFEST: () => (/* binding */ REACT_LOADABLE_MANIFEST),\n/* harmony export */ ROUTES_MANIFEST: () => (/* binding */ ROUTES_MANIFEST),\n/* harmony export */ RSC_MODULE_TYPES: () => (/* binding */ RSC_MODULE_TYPES),\n/* harmony export */ SERVER_DIRECTORY: () => (/* binding */ SERVER_DIRECTORY),\n/* harmony export */ SERVER_FILES_MANIFEST: () => (/* binding */ SERVER_FILES_MANIFEST),\n/* harmony export */ SERVER_PROPS_ID: () => (/* binding */ SERVER_PROPS_ID),\n/* harmony export */ SERVER_REFERENCE_MANIFEST: () => (/* binding */ SERVER_REFERENCE_MANIFEST),\n/* harmony export */ STATIC_PROPS_ID: () => (/* binding */ STATIC_PROPS_ID),\n/* harmony export */ STATIC_STATUS_PAGES: () => (/* binding */ STATIC_STATUS_PAGES),\n/* harmony export */ STRING_LITERAL_DROP_BUNDLE: () => (/* binding */ STRING_LITERAL_DROP_BUNDLE),\n/* harmony export */ SUBRESOURCE_INTEGRITY_MANIFEST: () => (/* binding */ SUBRESOURCE_INTEGRITY_MANIFEST),\n/* harmony export */ SYSTEM_ENTRYPOINTS: () => (/* binding */ SYSTEM_ENTRYPOINTS),\n/* harmony export */ TRACE_OUTPUT_VERSION: () => (/* binding */ TRACE_OUTPUT_VERSION),\n/* harmony export */ TURBO_TRACE_DEFAULT_MEMORY_LIMIT: () => (/* binding */ TURBO_TRACE_DEFAULT_MEMORY_LIMIT)\n/* harmony export */ });\n/* harmony import */ var _modern_browserslist_target__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modern-browserslist-target */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/modern-browserslist-target.js\");\n/* harmony import */ var _modern_browserslist_target__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_modern_browserslist_target__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconst COMPILER_NAMES = {\n client: \"client\",\n server: \"server\",\n edgeServer: \"edge-server\"\n};\n/**\n * Headers that are set by the Next.js server and should be stripped from the\n * request headers going to the user's application.\n */ const INTERNAL_HEADERS = [\n \"x-invoke-error\",\n \"x-invoke-output\",\n \"x-invoke-path\",\n \"x-invoke-query\",\n \"x-invoke-status\",\n \"x-middleware-invoke\"\n];\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst PHASE_EXPORT = \"phase-export\";\nconst PHASE_PRODUCTION_BUILD = \"phase-production-build\";\nconst PHASE_PRODUCTION_SERVER = \"phase-production-server\";\nconst PHASE_DEVELOPMENT_SERVER = \"phase-development-server\";\nconst PHASE_TEST = \"phase-test\";\nconst PHASE_INFO = \"phase-info\";\nconst PAGES_MANIFEST = \"pages-manifest.json\";\nconst APP_PATHS_MANIFEST = \"app-paths-manifest.json\";\nconst APP_PATH_ROUTES_MANIFEST = \"app-path-routes-manifest.json\";\nconst BUILD_MANIFEST = \"build-manifest.json\";\nconst APP_BUILD_MANIFEST = \"app-build-manifest.json\";\nconst FUNCTIONS_CONFIG_MANIFEST = \"functions-config-manifest.json\";\nconst SUBRESOURCE_INTEGRITY_MANIFEST = \"subresource-integrity-manifest\";\nconst NEXT_FONT_MANIFEST = \"next-font-manifest\";\nconst EXPORT_MARKER = \"export-marker.json\";\nconst EXPORT_DETAIL = \"export-detail.json\";\nconst PRERENDER_MANIFEST = \"prerender-manifest.json\";\nconst ROUTES_MANIFEST = \"routes-manifest.json\";\nconst IMAGES_MANIFEST = \"images-manifest.json\";\nconst SERVER_FILES_MANIFEST = \"required-server-files.json\";\nconst DEV_CLIENT_PAGES_MANIFEST = \"_devPagesManifest.json\";\nconst MIDDLEWARE_MANIFEST = \"middleware-manifest.json\";\nconst DEV_MIDDLEWARE_MANIFEST = \"_devMiddlewareManifest.json\";\nconst REACT_LOADABLE_MANIFEST = \"react-loadable-manifest.json\";\nconst FONT_MANIFEST = \"font-manifest.json\";\nconst SERVER_DIRECTORY = \"server\";\nconst CONFIG_FILES = [\n \"next.config.js\",\n \"next.config.mjs\"\n];\nconst BUILD_ID_FILE = \"BUILD_ID\";\nconst BLOCKED_PAGES = [\n \"/_document\",\n \"/_app\",\n \"/_error\"\n];\nconst CLIENT_PUBLIC_FILES_PATH = \"public\";\nconst CLIENT_STATIC_FILES_PATH = \"static\";\nconst STRING_LITERAL_DROP_BUNDLE = \"__NEXT_DROP_CLIENT_FILE__\";\nconst NEXT_BUILTIN_DOCUMENT = \"__NEXT_BUILTIN_DOCUMENT__\";\nconst BARREL_OPTIMIZATION_PREFIX = \"__barrel_optimize__\";\n// server/[entry]/page_client-reference-manifest.js\nconst CLIENT_REFERENCE_MANIFEST = \"client-reference-manifest\";\n// server/server-reference-manifest\nconst SERVER_REFERENCE_MANIFEST = \"server-reference-manifest\";\n// server/middleware-build-manifest.js\nconst MIDDLEWARE_BUILD_MANIFEST = \"middleware-build-manifest\";\n// server/middleware-react-loadable-manifest.js\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = \"middleware-react-loadable-manifest\";\n// static/runtime/main.js\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\n// next internal client components chunk for layouts\nconst APP_CLIENT_INTERNALS = \"app-pages-internals\";\n// static/runtime/react-refresh.js\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\n// static/runtime/amp.js\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\n// static/runtime/webpack.js\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\n// static/runtime/polyfills.js\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = \"polyfills\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst EDGE_RUNTIME_WEBPACK = \"edge-runtime-webpack\";\nconst STATIC_PROPS_ID = \"__N_SSG\";\nconst SERVER_PROPS_ID = \"__N_SSP\";\nconst GOOGLE_FONT_PROVIDER = \"https://fonts.googleapis.com/\";\nconst OPTIMIZED_FONT_PROVIDERS = [\n {\n url: GOOGLE_FONT_PROVIDER,\n preconnect: \"https://fonts.gstatic.com\"\n },\n {\n url: \"https://use.typekit.net\",\n preconnect: \"https://use.typekit.net\"\n }\n];\nconst DEFAULT_SERIF_FONT = {\n name: \"Times New Roman\",\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: \"Arial\",\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n \"/500\"\n];\nconst TRACE_OUTPUT_VERSION = 1;\n// in `MB`\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: \"client\",\n server: \"server\"\n};\n// comparing\n// https://nextjs.org/docs/api-reference/edge-runtime\n// with\n// https://nodejs.org/docs/latest/api/globals.html\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n \"clearImmediate\",\n \"setImmediate\",\n \"BroadcastChannel\",\n \"ByteLengthQueuingStrategy\",\n \"CompressionStream\",\n \"CountQueuingStrategy\",\n \"DecompressionStream\",\n \"DomException\",\n \"MessageChannel\",\n \"MessageEvent\",\n \"MessagePort\",\n \"ReadableByteStreamController\",\n \"ReadableStreamBYOBRequest\",\n \"ReadableStreamDefaultController\",\n \"TransformStreamDefaultController\",\n \"WritableStreamDefaultController\"\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]); //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc0U7QUFDaEM7QUFDL0IsTUFBTUMsaUJBQWlCO0lBQzFCQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsWUFBWTtBQUNoQixFQUFFO0FBQ0Y7OztDQUdDLEdBQVUsTUFBTUMsbUJBQW1CO0lBQ2hDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDSyxNQUFNQyxtQkFBbUI7SUFDNUIsQ0FBQ0wsZUFBZUMsTUFBTSxDQUFDLEVBQUU7SUFDekIsQ0FBQ0QsZUFBZUUsTUFBTSxDQUFDLEVBQUU7SUFDekIsQ0FBQ0YsZUFBZUcsVUFBVSxDQUFDLEVBQUU7QUFDakMsRUFBRTtBQUNLLE1BQU1HLGVBQWUsZUFBZTtBQUNwQyxNQUFNQyx5QkFBeUIseUJBQXlCO0FBQ3hELE1BQU1DLDBCQUEwQiwwQkFBMEI7QUFDMUQsTUFBTUMsMkJBQTJCLDJCQUEyQjtBQUM1RCxNQUFNQyxhQUFhLGFBQWE7QUFDaEMsTUFBTUMsYUFBYSxhQUFhO0FBQ2hDLE1BQU1DLGlCQUFpQixzQkFBc0I7QUFDN0MsTUFBTUMscUJBQXFCLDBCQUEwQjtBQUNyRCxNQUFNQywyQkFBMkIsZ0NBQWdDO0FBQ2pFLE1BQU1DLGlCQUFpQixzQkFBc0I7QUFDN0MsTUFBTUMscUJBQXFCLDBCQUEwQjtBQUNyRCxNQUFNQyw0QkFBNEIsaUNBQWlDO0FBQ25FLE1BQU1DLGlDQUFpQyxpQ0FBaUM7QUFDeEUsTUFBTUMscUJBQXFCLHFCQUFxQjtBQUNoRCxNQUFNQyxnQkFBZ0IscUJBQXFCO0FBQzNDLE1BQU1DLGdCQUFnQixxQkFBcUI7QUFDM0MsTUFBTUMscUJBQXFCLDBCQUEwQjtBQUNyRCxNQUFNQyxrQkFBa0IsdUJBQXVCO0FBQy9DLE1BQU1DLGtCQUFrQix1QkFBdUI7QUFDL0MsTUFBTUMsd0JBQXdCLDZCQUE2QjtBQUMzRCxNQUFNQyw0QkFBNEIseUJBQXlCO0FBQzNELE1BQU1DLHNCQUFzQiwyQkFBMkI7QUFDdkQsTUFBTUMsMEJBQTBCLDhCQUE4QjtBQUM5RCxNQUFNQywwQkFBMEIsK0JBQStCO0FBQy9ELE1BQU1DLGdCQUFnQixxQkFBcUI7QUFDM0MsTUFBTUMsbUJBQW1CLFNBQVM7QUFDbEMsTUFBTUMsZUFBZTtJQUN4QjtJQUNBO0NBQ0gsQ0FBQztBQUNLLE1BQU1DLGdCQUFnQixXQUFXO0FBQ2pDLE1BQU1DLGdCQUFnQjtJQUN6QjtJQUNBO0lBQ0E7Q0FDSCxDQUFDO0FBQ0ssTUFBTUMsMkJBQTJCLFNBQVM7QUFDMUMsTUFBTUMsMkJBQTJCLFNBQVM7QUFDMUMsTUFBTUMsNkJBQTZCLDRCQUE0QjtBQUMvRCxNQUFNQyx3QkFBd0IsNEJBQTRCO0FBQzFELE1BQU1DLDZCQUE2QixzQkFBc0I7QUFDaEUsbURBQW1EO0FBQzVDLE1BQU1DLDRCQUE0Qiw0QkFBNEI7QUFDckUsbUNBQW1DO0FBQzVCLE1BQU1DLDRCQUE0Qiw0QkFBNEI7QUFDckUsc0NBQXNDO0FBQy9CLE1BQU1DLDRCQUE0Qiw0QkFBNEI7QUFDckUsK0NBQStDO0FBQ3hDLE1BQU1DLHFDQUFxQyxxQ0FBcUM7QUFDdkYseUJBQXlCO0FBQ2xCLE1BQU1DLG1DQUFtQyxPQUFPO0FBQ2hELE1BQU1DLHVDQUF1QyxLQUFLRCxtQ0FBbUMsT0FBTztBQUNuRyxvREFBb0Q7QUFDN0MsTUFBTUUsdUJBQXVCLHNCQUFzQjtBQUMxRCxrQ0FBa0M7QUFDM0IsTUFBTUMsNENBQTRDLGdCQUFnQjtBQUN6RSx3QkFBd0I7QUFDakIsTUFBTUMsa0NBQWtDLE1BQU07QUFDckQsNEJBQTRCO0FBQ3JCLE1BQU1DLHNDQUFzQyxVQUFVO0FBQzdELDhCQUE4QjtBQUN2QixNQUFNQyx3Q0FBd0MsWUFBWTtBQUMxRCxNQUFNQywrQ0FBK0NDLE9BQU9GLHVDQUF1QztBQUNuRyxNQUFNRyx1QkFBdUIsdUJBQXVCO0FBQ3BELE1BQU1DLGtCQUFrQixVQUFVO0FBQ2xDLE1BQU1DLGtCQUFrQixVQUFVO0FBQ2xDLE1BQU1DLHVCQUF1QixnQ0FBZ0M7QUFDN0QsTUFBTUMsMkJBQTJCO0lBQ3BDO1FBQ0lDLEtBQUtGO1FBQ0xHLFlBQVk7SUFDaEI7SUFDQTtRQUNJRCxLQUFLO1FBQ0xDLFlBQVk7SUFDaEI7Q0FDSCxDQUFDO0FBQ0ssTUFBTUMscUJBQXFCO0lBQzlCQyxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2hCLEVBQUU7QUFDSyxNQUFNQywwQkFBMEI7SUFDbkNKLE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDaEIsRUFBRTtBQUNLLE1BQU1FLHNCQUFzQjtJQUMvQjtDQUNILENBQUM7QUFDSyxNQUFNQyx1QkFBdUIsRUFBRTtBQUN0QyxVQUFVO0FBQ0gsTUFBTUMsbUNBQW1DLEtBQUs7QUFDOUMsTUFBTUMsbUJBQW1CO0lBQzVCcEUsUUFBUTtJQUNSQyxRQUFRO0FBQ1osRUFBRTtBQUNGLFlBQVk7QUFDWixxREFBcUQ7QUFDckQsT0FBTztBQUNQLGtEQUFrRDtBQUMzQyxNQUFNb0UsNkJBQTZCO0lBQ3RDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0gsQ0FBQztBQUNLLE1BQU1DLHFCQUFxQixJQUFJQyxJQUFJO0lBQ3RDNUI7SUFDQUc7SUFDQUM7SUFDQUg7Q0FDSCxFQUFFLENBRUgscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2NvbnN0YW50cy5qcz8xYjZmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCBmcm9tIFwiLi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldFwiO1xuZXhwb3J0IHsgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgfTtcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9OQU1FUyA9IHtcbiAgICBjbGllbnQ6IFwiY2xpZW50XCIsXG4gICAgc2VydmVyOiBcInNlcnZlclwiLFxuICAgIGVkZ2VTZXJ2ZXI6IFwiZWRnZS1zZXJ2ZXJcIlxufTtcbi8qKlxuICogSGVhZGVycyB0aGF0IGFyZSBzZXQgYnkgdGhlIE5leHQuanMgc2VydmVyIGFuZCBzaG91bGQgYmUgc3RyaXBwZWQgZnJvbSB0aGVcbiAqIHJlcXVlc3QgaGVhZGVycyBnb2luZyB0byB0aGUgdXNlcidzIGFwcGxpY2F0aW9uLlxuICovIGV4cG9ydCBjb25zdCBJTlRFUk5BTF9IRUFERVJTID0gW1xuICAgIFwieC1pbnZva2UtZXJyb3JcIixcbiAgICBcIngtaW52b2tlLW91dHB1dFwiLFxuICAgIFwieC1pbnZva2UtcGF0aFwiLFxuICAgIFwieC1pbnZva2UtcXVlcnlcIixcbiAgICBcIngtaW52b2tlLXN0YXR1c1wiLFxuICAgIFwieC1taWRkbGV3YXJlLWludm9rZVwiXG5dO1xuZXhwb3J0IGNvbnN0IENPTVBJTEVSX0lOREVYRVMgPSB7XG4gICAgW0NPTVBJTEVSX05BTUVTLmNsaWVudF06IDAsXG4gICAgW0NPTVBJTEVSX05BTUVTLnNlcnZlcl06IDEsXG4gICAgW0NPTVBJTEVSX05BTUVTLmVkZ2VTZXJ2ZXJdOiAyXG59O1xuZXhwb3J0IGNvbnN0IFBIQVNFX0VYUE9SVCA9IFwicGhhc2UtZXhwb3J0XCI7XG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9CVUlMRCA9IFwicGhhc2UtcHJvZHVjdGlvbi1idWlsZFwiO1xuZXhwb3J0IGNvbnN0IFBIQVNFX1BST0RVQ1RJT05fU0VSVkVSID0gXCJwaGFzZS1wcm9kdWN0aW9uLXNlcnZlclwiO1xuZXhwb3J0IGNvbnN0IFBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiA9IFwicGhhc2UtZGV2ZWxvcG1lbnQtc2VydmVyXCI7XG5leHBvcnQgY29uc3QgUEhBU0VfVEVTVCA9IFwicGhhc2UtdGVzdFwiO1xuZXhwb3J0IGNvbnN0IFBIQVNFX0lORk8gPSBcInBoYXNlLWluZm9cIjtcbmV4cG9ydCBjb25zdCBQQUdFU19NQU5JRkVTVCA9IFwicGFnZXMtbWFuaWZlc3QuanNvblwiO1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIU19NQU5JRkVTVCA9IFwiYXBwLXBhdGhzLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBBUFBfUEFUSF9ST1VURVNfTUFOSUZFU1QgPSBcImFwcC1wYXRoLXJvdXRlcy1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgQlVJTERfTUFOSUZFU1QgPSBcImJ1aWxkLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBBUFBfQlVJTERfTUFOSUZFU1QgPSBcImFwcC1idWlsZC1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCA9IFwiZnVuY3Rpb25zLWNvbmZpZy1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUID0gXCJzdWJyZXNvdXJjZS1pbnRlZ3JpdHktbWFuaWZlc3RcIjtcbmV4cG9ydCBjb25zdCBORVhUX0ZPTlRfTUFOSUZFU1QgPSBcIm5leHQtZm9udC1tYW5pZmVzdFwiO1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVJLRVIgPSBcImV4cG9ydC1tYXJrZXIuanNvblwiO1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9ERVRBSUwgPSBcImV4cG9ydC1kZXRhaWwuanNvblwiO1xuZXhwb3J0IGNvbnN0IFBSRVJFTkRFUl9NQU5JRkVTVCA9IFwicHJlcmVuZGVyLW1hbmlmZXN0Lmpzb25cIjtcbmV4cG9ydCBjb25zdCBST1VURVNfTUFOSUZFU1QgPSBcInJvdXRlcy1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgSU1BR0VTX01BTklGRVNUID0gXCJpbWFnZXMtbWFuaWZlc3QuanNvblwiO1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9GSUxFU19NQU5JRkVTVCA9IFwicmVxdWlyZWQtc2VydmVyLWZpbGVzLmpzb25cIjtcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUID0gXCJfZGV2UGFnZXNNYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9NQU5JRkVTVCA9IFwibWlkZGxld2FyZS1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgREVWX01JRERMRVdBUkVfTUFOSUZFU1QgPSBcIl9kZXZNaWRkbGV3YXJlTWFuaWZlc3QuanNvblwiO1xuZXhwb3J0IGNvbnN0IFJFQUNUX0xPQURBQkxFX01BTklGRVNUID0gXCJyZWFjdC1sb2FkYWJsZS1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgRk9OVF9NQU5JRkVTVCA9IFwiZm9udC1tYW5pZmVzdC5qc29uXCI7XG5leHBvcnQgY29uc3QgU0VSVkVSX0RJUkVDVE9SWSA9IFwic2VydmVyXCI7XG5leHBvcnQgY29uc3QgQ09ORklHX0ZJTEVTID0gW1xuICAgIFwibmV4dC5jb25maWcuanNcIixcbiAgICBcIm5leHQuY29uZmlnLm1qc1wiXG5dO1xuZXhwb3J0IGNvbnN0IEJVSUxEX0lEX0ZJTEUgPSBcIkJVSUxEX0lEXCI7XG5leHBvcnQgY29uc3QgQkxPQ0tFRF9QQUdFUyA9IFtcbiAgICBcIi9fZG9jdW1lbnRcIixcbiAgICBcIi9fYXBwXCIsXG4gICAgXCIvX2Vycm9yXCJcbl07XG5leHBvcnQgY29uc3QgQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIID0gXCJwdWJsaWNcIjtcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEggPSBcInN0YXRpY1wiO1xuZXhwb3J0IGNvbnN0IFNUUklOR19MSVRFUkFMX0RST1BfQlVORExFID0gXCJfX05FWFRfRFJPUF9DTElFTlRfRklMRV9fXCI7XG5leHBvcnQgY29uc3QgTkVYVF9CVUlMVElOX0RPQ1VNRU5UID0gXCJfX05FWFRfQlVJTFRJTl9ET0NVTUVOVF9fXCI7XG5leHBvcnQgY29uc3QgQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVggPSBcIl9fYmFycmVsX29wdGltaXplX19cIjtcbi8vIHNlcnZlci9bZW50cnldL3BhZ2VfY2xpZW50LXJlZmVyZW5jZS1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9SRUZFUkVOQ0VfTUFOSUZFU1QgPSBcImNsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3RcIjtcbi8vIHNlcnZlci9zZXJ2ZXItcmVmZXJlbmNlLW1hbmlmZXN0XG5leHBvcnQgY29uc3QgU0VSVkVSX1JFRkVSRU5DRV9NQU5JRkVTVCA9IFwic2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdFwiO1xuLy8gc2VydmVyL21pZGRsZXdhcmUtYnVpbGQtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX0JVSUxEX01BTklGRVNUID0gXCJtaWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0XCI7XG4vLyBzZXJ2ZXIvbWlkZGxld2FyZS1yZWFjdC1sb2FkYWJsZS1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QgPSBcIm1pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3RcIjtcbi8vIHN0YXRpYy9ydW50aW1lL21haW4uanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTiA9IFwibWFpblwiO1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOX0FQUCA9IFwiXCIgKyBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTiArIFwiLWFwcFwiO1xuLy8gbmV4dCBpbnRlcm5hbCBjbGllbnQgY29tcG9uZW50cyBjaHVuayBmb3IgbGF5b3V0c1xuZXhwb3J0IGNvbnN0IEFQUF9DTElFTlRfSU5URVJOQUxTID0gXCJhcHAtcGFnZXMtaW50ZXJuYWxzXCI7XG4vLyBzdGF0aWMvcnVudGltZS9yZWFjdC1yZWZyZXNoLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0ggPSBcInJlYWN0LXJlZnJlc2hcIjtcbi8vIHN0YXRpYy9ydW50aW1lL2FtcC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAgPSBcImFtcFwiO1xuLy8gc3RhdGljL3J1bnRpbWUvd2VicGFjay5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLID0gXCJ3ZWJwYWNrXCI7XG4vLyBzdGF0aWMvcnVudGltZS9wb2x5ZmlsbHMuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTID0gXCJwb2x5ZmlsbHNcIjtcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCA9IFN5bWJvbChDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTKTtcbmV4cG9ydCBjb25zdCBFREdFX1JVTlRJTUVfV0VCUEFDSyA9IFwiZWRnZS1ydW50aW1lLXdlYnBhY2tcIjtcbmV4cG9ydCBjb25zdCBTVEFUSUNfUFJPUFNfSUQgPSBcIl9fTl9TU0dcIjtcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfSUQgPSBcIl9fTl9TU1BcIjtcbmV4cG9ydCBjb25zdCBHT09HTEVfRk9OVF9QUk9WSURFUiA9IFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9cIjtcbmV4cG9ydCBjb25zdCBPUFRJTUlaRURfRk9OVF9QUk9WSURFUlMgPSBbXG4gICAge1xuICAgICAgICB1cmw6IEdPT0dMRV9GT05UX1BST1ZJREVSLFxuICAgICAgICBwcmVjb25uZWN0OiBcImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb21cIlxuICAgIH0sXG4gICAge1xuICAgICAgICB1cmw6IFwiaHR0cHM6Ly91c2UudHlwZWtpdC5uZXRcIixcbiAgICAgICAgcHJlY29ubmVjdDogXCJodHRwczovL3VzZS50eXBla2l0Lm5ldFwiXG4gICAgfVxuXTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUklGX0ZPTlQgPSB7XG4gICAgbmFtZTogXCJUaW1lcyBOZXcgUm9tYW5cIixcbiAgICB4QXZnQ2hhcldpZHRoOiA4MjEsXG4gICAgYXpBdmdXaWR0aDogODU0LjM5NTM0ODgzNzIwOTMsXG4gICAgdW5pdHNQZXJFbTogMjA0OFxufTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCA9IHtcbiAgICBuYW1lOiBcIkFyaWFsXCIsXG4gICAgeEF2Z0NoYXJXaWR0aDogOTA0LFxuICAgIGF6QXZnV2lkdGg6IDkzNC41MTE2Mjc5MDY5NzY3LFxuICAgIHVuaXRzUGVyRW06IDIwNDhcbn07XG5leHBvcnQgY29uc3QgU1RBVElDX1NUQVRVU19QQUdFUyA9IFtcbiAgICBcIi81MDBcIlxuXTtcbmV4cG9ydCBjb25zdCBUUkFDRV9PVVRQVVRfVkVSU0lPTiA9IDE7XG4vLyBpbiBgTUJgXG5leHBvcnQgY29uc3QgVFVSQk9fVFJBQ0VfREVGQVVMVF9NRU1PUllfTElNSVQgPSA2MDAwO1xuZXhwb3J0IGNvbnN0IFJTQ19NT0RVTEVfVFlQRVMgPSB7XG4gICAgY2xpZW50OiBcImNsaWVudFwiLFxuICAgIHNlcnZlcjogXCJzZXJ2ZXJcIlxufTtcbi8vIGNvbXBhcmluZ1xuLy8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9lZGdlLXJ1bnRpbWVcbi8vIHdpdGhcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvZ2xvYmFscy5odG1sXG5leHBvcnQgY29uc3QgRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMgPSBbXG4gICAgXCJjbGVhckltbWVkaWF0ZVwiLFxuICAgIFwic2V0SW1tZWRpYXRlXCIsXG4gICAgXCJCcm9hZGNhc3RDaGFubmVsXCIsXG4gICAgXCJCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5XCIsXG4gICAgXCJDb21wcmVzc2lvblN0cmVhbVwiLFxuICAgIFwiQ291bnRRdWV1aW5nU3RyYXRlZ3lcIixcbiAgICBcIkRlY29tcHJlc3Npb25TdHJlYW1cIixcbiAgICBcIkRvbUV4Y2VwdGlvblwiLFxuICAgIFwiTWVzc2FnZUNoYW5uZWxcIixcbiAgICBcIk1lc3NhZ2VFdmVudFwiLFxuICAgIFwiTWVzc2FnZVBvcnRcIixcbiAgICBcIlJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJcIixcbiAgICBcIlJlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3RcIixcbiAgICBcIlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJcIixcbiAgICBcIlRyYW5zZm9ybVN0cmVhbURlZmF1bHRDb250cm9sbGVyXCIsXG4gICAgXCJXcml0YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyXCJcbl07XG5leHBvcnQgY29uc3QgU1lTVEVNX0VOVFJZUE9JTlRTID0gbmV3IFNldChbXG4gICAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4sXG4gICAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0gsXG4gICAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCxcbiAgICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFBcbl0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbIk1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIiwiQ09NUElMRVJfTkFNRVMiLCJjbGllbnQiLCJzZXJ2ZXIiLCJlZGdlU2VydmVyIiwiSU5URVJOQUxfSEVBREVSUyIsIkNPTVBJTEVSX0lOREVYRVMiLCJQSEFTRV9FWFBPUlQiLCJQSEFTRV9QUk9EVUNUSU9OX0JVSUxEIiwiUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIiLCJQSEFTRV9ERVZFTE9QTUVOVF9TRVJWRVIiLCJQSEFTRV9URVNUIiwiUEhBU0VfSU5GTyIsIlBBR0VTX01BTklGRVNUIiwiQVBQX1BBVEhTX01BTklGRVNUIiwiQVBQX1BBVEhfUk9VVEVTX01BTklGRVNUIiwiQlVJTERfTUFOSUZFU1QiLCJBUFBfQlVJTERfTUFOSUZFU1QiLCJGVU5DVElPTlNfQ09ORklHX01BTklGRVNUIiwiU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUIiwiTkVYVF9GT05UX01BTklGRVNUIiwiRVhQT1JUX01BUktFUiIsIkVYUE9SVF9ERVRBSUwiLCJQUkVSRU5ERVJfTUFOSUZFU1QiLCJST1VURVNfTUFOSUZFU1QiLCJJTUFHRVNfTUFOSUZFU1QiLCJTRVJWRVJfRklMRVNfTUFOSUZFU1QiLCJERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUIiwiTUlERExFV0FSRV9NQU5JRkVTVCIsIkRFVl9NSURETEVXQVJFX01BTklGRVNUIiwiUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJGT05UX01BTklGRVNUIiwiU0VSVkVSX0RJUkVDVE9SWSIsIkNPTkZJR19GSUxFUyIsIkJVSUxEX0lEX0ZJTEUiLCJCTE9DS0VEX1BBR0VTIiwiQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19QQVRIIiwiU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUiLCJORVhUX0JVSUxUSU5fRE9DVU1FTlQiLCJCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCIsIkNMSUVOVF9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUIiwiTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCIsIk1JRERMRVdBUkVfUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTiIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOX0FQUCIsIkFQUF9DTElFTlRfSU5URVJOQUxTIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0giLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1dFQlBBQ0siLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wiLCJTeW1ib2wiLCJFREdFX1JVTlRJTUVfV0VCUEFDSyIsIlNUQVRJQ19QUk9QU19JRCIsIlNFUlZFUl9QUk9QU19JRCIsIkdPT0dMRV9GT05UX1BST1ZJREVSIiwiT1BUSU1JWkVEX0ZPTlRfUFJPVklERVJTIiwidXJsIiwicHJlY29ubmVjdCIsIkRFRkFVTFRfU0VSSUZfRk9OVCIsIm5hbWUiLCJ4QXZnQ2hhcldpZHRoIiwiYXpBdmdXaWR0aCIsInVuaXRzUGVyRW0iLCJERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCIsIlNUQVRJQ19TVEFUVVNfUEFHRVMiLCJUUkFDRV9PVVRQVVRfVkVSU0lPTiIsIlRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUIiwiUlNDX01PRFVMRV9UWVBFUyIsIkVER0VfVU5TVVBQT1JURURfTk9ERV9BUElTIiwiU1lTVEVNX0VOVFJZUE9JTlRTIiwiU2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/constants.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/escape-regexp.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/escape-regexp.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ escapeStringRegexp: () => (/* binding */ escapeStringRegexp)\n/* harmony export */ });\n// regexp is based on https://github.com/sindresorhus/escape-string-regexp\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, \"\\\\$&\");\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwRUFBMEU7QUFDMUUsTUFBTUEsY0FBYztBQUNwQixNQUFNQyxrQkFBa0I7QUFDakIsU0FBU0MsbUJBQW1CQyxHQUFHO0lBQ2xDLCtHQUErRztJQUMvRyxJQUFJSCxZQUFZSSxJQUFJLENBQUNELE1BQU07UUFDdkIsT0FBT0EsSUFBSUUsT0FBTyxDQUFDSixpQkFBaUI7SUFDeEM7SUFDQSxPQUFPRTtBQUNYLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2VzY2FwZS1yZWdleHAuanM/OTAwNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdleHAgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9lc2NhcGUtc3RyaW5nLXJlZ2V4cFxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS87XG5jb25zdCByZVJlcGxhY2VSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9nO1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHIpIHtcbiAgICAvLyBzZWUgYWxzbzogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL2VzY2FwZVJlZ0V4cC5qcyNMMjNcbiAgICBpZiAocmVIYXNSZWdFeHAudGVzdChzdHIpKSB7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsIFwiXFxcXCQmXCIpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lc2NhcGUtcmVnZXhwLmpzLm1hcCJdLCJuYW1lcyI6WyJyZUhhc1JlZ0V4cCIsInJlUmVwbGFjZVJlZ0V4cCIsImVzY2FwZVN0cmluZ1JlZ2V4cCIsInN0ciIsInRlc3QiLCJyZXBsYWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/escape-regexp.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/get-hostname.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/get-hostname.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getHostname: () => (/* binding */ getHostname)\n/* harmony export */ });\n/**\n * Takes an object with a hostname property (like a parsed URL) and some\n * headers that may contain Host and returns the preferred hostname.\n * @param parsed An object containing a hostname property.\n * @param headers A dictionary with headers containing a `host`.\n */ function getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(\":\", 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n} //# sourceMappingURL=get-hostname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7OztDQUtDLEdBQVUsU0FBU0EsWUFBWUMsTUFBTSxFQUFFQyxPQUFPO0lBQzNDLDJFQUEyRTtJQUMzRSxZQUFZO0lBQ1osSUFBSUM7SUFDSixJQUFJLENBQUNELFdBQVcsT0FBTyxLQUFLLElBQUlBLFFBQVFFLElBQUksS0FBSyxDQUFDQyxNQUFNQyxPQUFPLENBQUNKLFFBQVFFLElBQUksR0FBRztRQUMzRUQsV0FBV0QsUUFBUUUsSUFBSSxDQUFDRyxRQUFRLEdBQUdDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQ3ZELE9BQU8sSUFBSVAsT0FBT0UsUUFBUSxFQUFFO1FBQ3hCQSxXQUFXRixPQUFPRSxRQUFRO0lBQzlCLE9BQU87SUFDUCxPQUFPQSxTQUFTTSxXQUFXO0FBQy9CLEVBRUEsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2dldC1ob3N0bmFtZS5qcz82ZDY0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGFrZXMgYW4gb2JqZWN0IHdpdGggYSBob3N0bmFtZSBwcm9wZXJ0eSAobGlrZSBhIHBhcnNlZCBVUkwpIGFuZCBzb21lXG4gKiBoZWFkZXJzIHRoYXQgbWF5IGNvbnRhaW4gSG9zdCBhbmQgcmV0dXJucyB0aGUgcHJlZmVycmVkIGhvc3RuYW1lLlxuICogQHBhcmFtIHBhcnNlZCBBbiBvYmplY3QgY29udGFpbmluZyBhIGhvc3RuYW1lIHByb3BlcnR5LlxuICogQHBhcmFtIGhlYWRlcnMgQSBkaWN0aW9uYXJ5IHdpdGggaGVhZGVycyBjb250YWluaW5nIGEgYGhvc3RgLlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRIb3N0bmFtZShwYXJzZWQsIGhlYWRlcnMpIHtcbiAgICAvLyBHZXQgdGhlIGhvc3RuYW1lIGZyb20gdGhlIGhlYWRlcnMgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgdXNlIHRoZSBwYXJzZWRcbiAgICAvLyBob3N0bmFtZS5cbiAgICBsZXQgaG9zdG5hbWU7XG4gICAgaWYgKChoZWFkZXJzID09IG51bGwgPyB2b2lkIDAgOiBoZWFkZXJzLmhvc3QpICYmICFBcnJheS5pc0FycmF5KGhlYWRlcnMuaG9zdCkpIHtcbiAgICAgICAgaG9zdG5hbWUgPSBoZWFkZXJzLmhvc3QudG9TdHJpbmcoKS5zcGxpdChcIjpcIiwgMSlbMF07XG4gICAgfSBlbHNlIGlmIChwYXJzZWQuaG9zdG5hbWUpIHtcbiAgICAgICAgaG9zdG5hbWUgPSBwYXJzZWQuaG9zdG5hbWU7XG4gICAgfSBlbHNlIHJldHVybjtcbiAgICByZXR1cm4gaG9zdG5hbWUudG9Mb3dlckNhc2UoKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWhvc3RuYW1lLmpzLm1hcCJdLCJuYW1lcyI6WyJnZXRIb3N0bmFtZSIsInBhcnNlZCIsImhlYWRlcnMiLCJob3N0bmFtZSIsImhvc3QiLCJBcnJheSIsImlzQXJyYXkiLCJ0b1N0cmluZyIsInNwbGl0IiwidG9Mb3dlckNhc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/get-hostname.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/get-img-props.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/get-img-props.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getImgProps: () => (/* binding */ getImgProps)\n/* harmony export */ });\n/* harmony import */ var _utils_warn_once__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/warn-once */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js\");\n/* harmony import */ var _image_blur_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./image-blur-svg */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/image-blur-svg.js\");\n/* harmony import */ var _image_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./image-config */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config.js\");\n\n\n\nconst VALID_LOADING_VALUES = [\n \"lazy\",\n \"eager\",\n undefined\n];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return typeof src === \"object\" && (isStaticRequire(src) || isStaticImageData(src));\n}\nconst allImgs = new Map();\nlet perfObserver;\nfunction getInt(x) {\n if (typeof x === \"undefined\") {\n return x;\n }\n if (typeof x === \"number\") {\n return Number.isFinite(x) ? x : NaN;\n }\n if (typeof x === \"string\" && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10);\n }\n return NaN;\n}\nfunction getWidths(param, width, sizes) {\n let { deviceSizes, allSizes } = param;\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = [];\n for(let match; match = viewportWidthRe.exec(sizes); match){\n percentSizes.push(parseInt(match[2]));\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter((s)=>s >= deviceSizes[0] * smallestRatio),\n kind: \"w\"\n };\n }\n return {\n widths: allSizes,\n kind: \"w\"\n };\n }\n if (typeof width !== \"number\") {\n return {\n widths: deviceSizes,\n kind: \"w\"\n };\n }\n const widths = [\n ...new Set(// > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [\n width,\n width * 2 /*, width * 3*/ \n ].map((w)=>allSizes.find((p)=>p >= w) || allSizes[allSizes.length - 1]))\n ];\n return {\n widths,\n kind: \"x\"\n };\n}\nfunction generateImgAttrs(param) {\n let { config, src, unoptimized, width, quality, sizes, loader } = param;\n if (unoptimized) {\n return {\n src,\n srcSet: undefined,\n sizes: undefined\n };\n }\n const { widths, kind } = getWidths(config, width, sizes);\n const last = widths.length - 1;\n return {\n sizes: !sizes && kind === \"w\" ? \"100vw\" : sizes,\n srcSet: widths.map((w, i)=>loader({\n config,\n src,\n quality,\n width: w\n }) + \" \" + (kind === \"w\" ? w : i + 1) + kind).join(\", \"),\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({\n config,\n src,\n quality,\n width: widths[last]\n })\n };\n}\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */ function getImgProps(param, _state) {\n let { src, sizes, unoptimized = false, priority = false, loading, className, quality, width, height, fill = false, style, onLoad, onLoadingComplete, placeholder = \"empty\", blurDataURL, fetchPriority, layout, objectFit, objectPosition, lazyBoundary, lazyRoot, ...rest } = param;\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state;\n let config;\n let c = imgConf || _image_config__WEBPACK_IMPORTED_MODULE_2__.imageConfigDefault;\n if (\"allSizes\" in c) {\n config = c;\n } else {\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n config = {\n ...c,\n allSizes,\n deviceSizes\n };\n }\n let loader = rest.loader || defaultLoader;\n // Remove property so it's not spread on <img> element\n delete rest.loader;\n delete rest.srcSet;\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = \"__next_img_default\" in loader;\n if (isDefaultLoader) {\n if (config.loader === \"custom\") {\n throw new Error('Image with src \"' + src + '\" is missing \"loader\" prop.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader\");\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader;\n loader = (obj)=>{\n const { config: _, ...opts } = obj;\n return customImageLoader(opts);\n };\n }\n if (layout) {\n if (layout === \"fill\") {\n fill = true;\n }\n const layoutToStyle = {\n intrinsic: {\n maxWidth: \"100%\",\n height: \"auto\"\n },\n responsive: {\n width: \"100%\",\n height: \"auto\"\n }\n };\n const layoutToSizes = {\n responsive: \"100vw\",\n fill: \"100vw\"\n };\n const layoutStyle = layoutToStyle[layout];\n if (layoutStyle) {\n style = {\n ...style,\n ...layoutStyle\n };\n }\n const layoutSizes = layoutToSizes[layout];\n if (layoutSizes && !sizes) {\n sizes = layoutSizes;\n }\n }\n let staticSrc = \"\";\n let widthInt = getInt(width);\n let heightInt = getInt(height);\n let blurWidth;\n let blurHeight;\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n if (!staticImageData.src) {\n throw new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received \" + JSON.stringify(staticImageData));\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received \" + JSON.stringify(staticImageData));\n }\n blurWidth = staticImageData.blurWidth;\n blurHeight = staticImageData.blurHeight;\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width;\n heightInt = staticImageData.height;\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width;\n heightInt = Math.round(staticImageData.height * ratio);\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height;\n widthInt = Math.round(staticImageData.width * ratio);\n }\n }\n }\n src = typeof src === \"string\" ? src : staticSrc;\n let isLazy = !priority && (loading === \"lazy\" || typeof loading === \"undefined\");\n if (!src || src.startsWith(\"data:\") || src.startsWith(\"blob:\")) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (config.unoptimized) {\n unoptimized = true;\n }\n if (isDefaultLoader && src.endsWith(\".svg\") && !config.dangerouslyAllowSVG) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true;\n }\n if (priority) {\n fetchPriority = \"high\";\n }\n const qualityInt = getInt(quality);\n if (true) {\n if (config.output === \"export\" && isDefaultLoader && !unoptimized) {\n throw new Error(\"Image Optimization using the default loader is not compatible with `{ output: 'export' }`.\\n Possible solutions:\\n - Remove `{ output: 'export' }` and run \\\"next start\\\" to run server mode including the Image Optimization API.\\n - Configure `{ images: { unoptimized: true } }` in `next.config.js` to disable the Image Optimization API.\\n Read more: https://nextjs.org/docs/messages/export-image-api\");\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true;\n } else {\n if (fill) {\n if (width) {\n throw new Error('Image with src \"' + src + '\" has both \"width\" and \"fill\" properties. Only one should be used.');\n }\n if (height) {\n throw new Error('Image with src \"' + src + '\" has both \"height\" and \"fill\" properties. Only one should be used.');\n }\n if ((style == null ? void 0 : style.position) && style.position !== \"absolute\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.');\n }\n if ((style == null ? void 0 : style.width) && style.width !== \"100%\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.');\n }\n if ((style == null ? void 0 : style.height) && style.height !== \"100%\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.');\n }\n } else {\n if (typeof widthInt === \"undefined\") {\n throw new Error('Image with src \"' + src + '\" is missing required \"width\" property.');\n } else if (isNaN(widthInt)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"width\" property. Expected a numeric value in pixels but received \"' + width + '\".');\n }\n if (typeof heightInt === \"undefined\") {\n throw new Error('Image with src \"' + src + '\" is missing required \"height\" property.');\n } else if (isNaN(heightInt)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"height\" property. Expected a numeric value in pixels but received \"' + height + '\".');\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"loading\" property. Provided \"' + loading + '\" should be one of ' + VALID_LOADING_VALUES.map(String).join(\",\") + \".\");\n }\n if (priority && loading === \"lazy\") {\n throw new Error('Image with src \"' + src + '\" has both \"priority\" and \"loading=\\'lazy\\'\" properties. Only one should be used.');\n }\n if (placeholder !== \"empty\" && placeholder !== \"blur\" && !placeholder.startsWith(\"data:image/\")) {\n throw new Error('Image with src \"' + src + '\" has invalid \"placeholder\" property \"' + placeholder + '\".');\n }\n if (placeholder !== \"empty\") {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.');\n }\n }\n if (placeholder === \"blur\" && !blurDataURL) {\n const VALID_BLUR_EXT = [\n \"jpeg\",\n \"png\",\n \"webp\",\n \"avif\"\n ] // should match next-image-loader\n ;\n throw new Error('Image with src \"' + src + '\" has \"placeholder=\\'blur\\'\" property but is missing the \"blurDataURL\" property.\\n Possible solutions:\\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\\n - Change the \"src\" property to a static import with one of the supported file types: ' + VALID_BLUR_EXT.join(\",\") + ' (animated images not supported)\\n - Remove the \"placeholder\" property, effectively no blur effect\\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url');\n }\n if (\"ref\" in rest) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.');\n }\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75\n });\n let url;\n try {\n url = new URL(urlStr);\n } catch (err) {}\n if (urlStr === src || url && url.pathname === src && !url.search) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width\");\n }\n }\n if (onLoadingComplete) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.');\n }\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot\n })){\n if (legacyValue) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" has legacy prop \"' + legacyKey + '\". Did you forget to run the codemod?' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13\");\n }\n }\n if (false) {}\n }\n const imgStyle = Object.assign(fill ? {\n position: \"absolute\",\n height: \"100%\",\n width: \"100%\",\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition\n } : {}, showAltText ? {} : {\n color: \"transparent\"\n }, style);\n const backgroundImage = !blurComplete && placeholder !== \"empty\" ? placeholder === \"blur\" ? 'url(\"data:image/svg+xml;charset=utf-8,' + (0,_image_blur_svg__WEBPACK_IMPORTED_MODULE_1__.getImageBlurSvg)({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || \"\",\n objectFit: imgStyle.objectFit\n }) + '\")' : 'url(\"' + placeholder + '\")' // assume `data:image/`\n : null;\n let placeholderStyle = backgroundImage ? {\n backgroundSize: imgStyle.objectFit || \"cover\",\n backgroundPosition: imgStyle.objectPosition || \"50% 50%\",\n backgroundRepeat: \"no-repeat\",\n backgroundImage\n } : {};\n if (true) {\n if (placeholderStyle.backgroundImage && placeholder === \"blur\" && (blurDataURL == null ? void 0 : blurDataURL.startsWith(\"/\"))) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = 'url(\"' + blurDataURL + '\")';\n }\n }\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader\n });\n if (true) {\n if (false) {}\n }\n const props = {\n ...rest,\n loading: isLazy ? \"lazy\" : loading,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding: \"async\",\n className,\n style: {\n ...imgStyle,\n ...placeholderStyle\n },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: imgAttributes.src\n };\n const meta = {\n unoptimized,\n priority,\n placeholder,\n fill\n };\n return {\n props,\n meta\n };\n} //# sourceMappingURL=get-img-props.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9nZXQtaW1nLXByb3BzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBNkM7QUFDTTtBQUNDO0FBQ3BELE1BQU1HLHVCQUF1QjtJQUN6QjtJQUNBO0lBQ0FDO0NBQ0g7QUFDRCxTQUFTQyxnQkFBZ0JDLEdBQUc7SUFDeEIsT0FBT0EsSUFBSUMsT0FBTyxLQUFLSDtBQUMzQjtBQUNBLFNBQVNJLGtCQUFrQkYsR0FBRztJQUMxQixPQUFPQSxJQUFJQSxHQUFHLEtBQUtGO0FBQ3ZCO0FBQ0EsU0FBU0ssZUFBZUgsR0FBRztJQUN2QixPQUFPLE9BQU9BLFFBQVEsWUFBYUQsQ0FBQUEsZ0JBQWdCQyxRQUFRRSxrQkFBa0JGLElBQUc7QUFDcEY7QUFDQSxNQUFNSSxVQUFVLElBQUlDO0FBQ3BCLElBQUlDO0FBQ0osU0FBU0MsT0FBT0MsQ0FBQztJQUNiLElBQUksT0FBT0EsTUFBTSxhQUFhO1FBQzFCLE9BQU9BO0lBQ1g7SUFDQSxJQUFJLE9BQU9BLE1BQU0sVUFBVTtRQUN2QixPQUFPQyxPQUFPQyxRQUFRLENBQUNGLEtBQUtBLElBQUlHO0lBQ3BDO0lBQ0EsSUFBSSxPQUFPSCxNQUFNLFlBQVksV0FBV0ksSUFBSSxDQUFDSixJQUFJO1FBQzdDLE9BQU9LLFNBQVNMLEdBQUc7SUFDdkI7SUFDQSxPQUFPRztBQUNYO0FBQ0EsU0FBU0csVUFBVUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLEtBQUs7SUFDbEMsSUFBSSxFQUFFQyxXQUFXLEVBQUVDLFFBQVEsRUFBRSxHQUFHSjtJQUNoQyxJQUFJRSxPQUFPO1FBQ1AseURBQXlEO1FBQ3pELE1BQU1HLGtCQUFrQjtRQUN4QixNQUFNQyxlQUFlLEVBQUU7UUFDdkIsSUFBSSxJQUFJQyxPQUFPQSxRQUFRRixnQkFBZ0JHLElBQUksQ0FBQ04sUUFBUUssTUFBTTtZQUN0REQsYUFBYUcsSUFBSSxDQUFDWCxTQUFTUyxLQUFLLENBQUMsRUFBRTtRQUN2QztRQUNBLElBQUlELGFBQWFJLE1BQU0sRUFBRTtZQUNyQixNQUFNQyxnQkFBZ0JDLEtBQUtDLEdBQUcsSUFBSVAsZ0JBQWdCO1lBQ2xELE9BQU87Z0JBQ0hRLFFBQVFWLFNBQVNXLE1BQU0sQ0FBQyxDQUFDQyxJQUFJQSxLQUFLYixXQUFXLENBQUMsRUFBRSxHQUFHUTtnQkFDbkRNLE1BQU07WUFDVjtRQUNKO1FBQ0EsT0FBTztZQUNISCxRQUFRVjtZQUNSYSxNQUFNO1FBQ1Y7SUFDSjtJQUNBLElBQUksT0FBT2hCLFVBQVUsVUFBVTtRQUMzQixPQUFPO1lBQ0hhLFFBQVFYO1lBQ1JjLE1BQU07UUFDVjtJQUNKO0lBQ0EsTUFBTUgsU0FBUztXQUNSLElBQUlJLElBQ1AscUVBQXFFO1FBQ3JFLGtFQUFrRTtRQUNsRSxvRUFBb0U7UUFDcEUsdUVBQXVFO1FBQ3ZFLHNFQUFzRTtRQUN0RSx1Q0FBdUM7UUFDdkMscUlBQXFJO1FBQ3JJO1lBQ0lqQjtZQUNBQSxRQUFRLEVBQUUsYUFBYTtTQUMxQixDQUFDa0IsR0FBRyxDQUFDLENBQUNDLElBQUloQixTQUFTaUIsSUFBSSxDQUFDLENBQUNDLElBQUlBLEtBQUtGLE1BQU1oQixRQUFRLENBQUNBLFNBQVNNLE1BQU0sR0FBRyxFQUFFO0tBQ3pFO0lBQ0QsT0FBTztRQUNISTtRQUNBRyxNQUFNO0lBQ1Y7QUFDSjtBQUNBLFNBQVNNLGlCQUFpQnZCLEtBQUs7SUFDM0IsSUFBSSxFQUFFd0IsTUFBTSxFQUFFdkMsR0FBRyxFQUFFd0MsV0FBVyxFQUFFeEIsS0FBSyxFQUFFeUIsT0FBTyxFQUFFeEIsS0FBSyxFQUFFeUIsTUFBTSxFQUFFLEdBQUczQjtJQUNsRSxJQUFJeUIsYUFBYTtRQUNiLE9BQU87WUFDSHhDO1lBQ0EyQyxRQUFRN0M7WUFDUm1CLE9BQU9uQjtRQUNYO0lBQ0o7SUFDQSxNQUFNLEVBQUUrQixNQUFNLEVBQUVHLElBQUksRUFBRSxHQUFHbEIsVUFBVXlCLFFBQVF2QixPQUFPQztJQUNsRCxNQUFNMkIsT0FBT2YsT0FBT0osTUFBTSxHQUFHO0lBQzdCLE9BQU87UUFDSFIsT0FBTyxDQUFDQSxTQUFTZSxTQUFTLE1BQU0sVUFBVWY7UUFDMUMwQixRQUFRZCxPQUFPSyxHQUFHLENBQUMsQ0FBQ0MsR0FBR1UsSUFBSUgsT0FBTztnQkFDMUJIO2dCQUNBdkM7Z0JBQ0F5QztnQkFDQXpCLE9BQU9tQjtZQUNYLEtBQUssTUFBT0gsQ0FBQUEsU0FBUyxNQUFNRyxJQUFJVSxJQUFJLEtBQUtiLE1BQU1jLElBQUksQ0FBQztRQUN2RCx1RUFBdUU7UUFDdkUsbUVBQW1FO1FBQ25FLHlFQUF5RTtRQUN6RSwwRUFBMEU7UUFDMUUsMkJBQTJCO1FBQzNCLHNEQUFzRDtRQUN0RDlDLEtBQUswQyxPQUFPO1lBQ1JIO1lBQ0F2QztZQUNBeUM7WUFDQXpCLE9BQU9hLE1BQU0sQ0FBQ2UsS0FBSztRQUN2QjtJQUNKO0FBQ0o7QUFDQTs7Q0FFQyxHQUFVLFNBQVNHLFlBQVloQyxLQUFLLEVBQUVpQyxNQUFNO0lBQ3pDLElBQUksRUFBRWhELEdBQUcsRUFBRWlCLEtBQUssRUFBRXVCLGNBQWMsS0FBSyxFQUFFUyxXQUFXLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxTQUFTLEVBQUVWLE9BQU8sRUFBRXpCLEtBQUssRUFBRW9DLE1BQU0sRUFBRUMsT0FBTyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxpQkFBaUIsRUFBRUMsY0FBYyxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsYUFBYSxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsY0FBYyxFQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxNQUFNLEdBQUdsRDtJQUMvUSxNQUFNLEVBQUVtRCxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLEVBQUUsR0FBR3JCO0lBQzlELElBQUlUO0lBQ0osSUFBSStCLElBQUlKLFdBQVd0RSw2REFBa0JBO0lBQ3JDLElBQUksY0FBYzBFLEdBQUc7UUFDakIvQixTQUFTK0I7SUFDYixPQUFPO1FBQ0gsTUFBTW5ELFdBQVc7ZUFDVm1ELEVBQUVwRCxXQUFXO2VBQ2JvRCxFQUFFQyxVQUFVO1NBQ2xCLENBQUNDLElBQUksQ0FBQyxDQUFDQyxHQUFHQyxJQUFJRCxJQUFJQztRQUNuQixNQUFNeEQsY0FBY29ELEVBQUVwRCxXQUFXLENBQUNzRCxJQUFJLENBQUMsQ0FBQ0MsR0FBR0MsSUFBSUQsSUFBSUM7UUFDbkRuQyxTQUFTO1lBQ0wsR0FBRytCLENBQUM7WUFDSm5EO1lBQ0FEO1FBQ0o7SUFDSjtJQUNBLElBQUl3QixTQUFTdUIsS0FBS3ZCLE1BQU0sSUFBSTJCO0lBQzVCLHNEQUFzRDtJQUN0RCxPQUFPSixLQUFLdkIsTUFBTTtJQUNsQixPQUFPdUIsS0FBS3RCLE1BQU07SUFDbEIsNkNBQTZDO0lBQzdDLG9EQUFvRDtJQUNwRCxNQUFNZ0Msa0JBQWtCLHdCQUF3QmpDO0lBQ2hELElBQUlpQyxpQkFBaUI7UUFDakIsSUFBSXBDLE9BQU9HLE1BQU0sS0FBSyxVQUFVO1lBQzVCLE1BQU0sSUFBSWtDLE1BQU0scUJBQXFCNUUsTUFBTSxnQ0FBZ0M7UUFDL0U7SUFDSixPQUFPO1FBQ0gsOENBQThDO1FBQzlDLCtDQUErQztRQUMvQyxpREFBaUQ7UUFDakQsTUFBTTZFLG9CQUFvQm5DO1FBQzFCQSxTQUFTLENBQUNvQztZQUNOLE1BQU0sRUFBRXZDLFFBQVF3QyxDQUFDLEVBQUUsR0FBR0MsTUFBTSxHQUFHRjtZQUMvQixPQUFPRCxrQkFBa0JHO1FBQzdCO0lBQ0o7SUFDQSxJQUFJcEIsUUFBUTtRQUNSLElBQUlBLFdBQVcsUUFBUTtZQUNuQlAsT0FBTztRQUNYO1FBQ0EsTUFBTTRCLGdCQUFnQjtZQUNsQkMsV0FBVztnQkFDUEMsVUFBVTtnQkFDVi9CLFFBQVE7WUFDWjtZQUNBZ0MsWUFBWTtnQkFDUnBFLE9BQU87Z0JBQ1BvQyxRQUFRO1lBQ1o7UUFDSjtRQUNBLE1BQU1pQyxnQkFBZ0I7WUFDbEJELFlBQVk7WUFDWi9CLE1BQU07UUFDVjtRQUNBLE1BQU1pQyxjQUFjTCxhQUFhLENBQUNyQixPQUFPO1FBQ3pDLElBQUkwQixhQUFhO1lBQ2JoQyxRQUFRO2dCQUNKLEdBQUdBLEtBQUs7Z0JBQ1IsR0FBR2dDLFdBQVc7WUFDbEI7UUFDSjtRQUNBLE1BQU1DLGNBQWNGLGFBQWEsQ0FBQ3pCLE9BQU87UUFDekMsSUFBSTJCLGVBQWUsQ0FBQ3RFLE9BQU87WUFDdkJBLFFBQVFzRTtRQUNaO0lBQ0o7SUFDQSxJQUFJQyxZQUFZO0lBQ2hCLElBQUlDLFdBQVdsRixPQUFPUztJQUN0QixJQUFJMEUsWUFBWW5GLE9BQU82QztJQUN2QixJQUFJdUM7SUFDSixJQUFJQztJQUNKLElBQUl6RixlQUFlSCxNQUFNO1FBQ3JCLE1BQU02RixrQkFBa0I5RixnQkFBZ0JDLE9BQU9BLElBQUlDLE9BQU8sR0FBR0Q7UUFDN0QsSUFBSSxDQUFDNkYsZ0JBQWdCN0YsR0FBRyxFQUFFO1lBQ3RCLE1BQU0sSUFBSTRFLE1BQU0sZ0pBQWdKa0IsS0FBS0MsU0FBUyxDQUFDRjtRQUNuTDtRQUNBLElBQUksQ0FBQ0EsZ0JBQWdCekMsTUFBTSxJQUFJLENBQUN5QyxnQkFBZ0I3RSxLQUFLLEVBQUU7WUFDbkQsTUFBTSxJQUFJNEQsTUFBTSw2SkFBNkprQixLQUFLQyxTQUFTLENBQUNGO1FBQ2hNO1FBQ0FGLFlBQVlFLGdCQUFnQkYsU0FBUztRQUNyQ0MsYUFBYUMsZ0JBQWdCRCxVQUFVO1FBQ3ZDbEMsY0FBY0EsZUFBZW1DLGdCQUFnQm5DLFdBQVc7UUFDeEQ4QixZQUFZSyxnQkFBZ0I3RixHQUFHO1FBQy9CLElBQUksQ0FBQ3FELE1BQU07WUFDUCxJQUFJLENBQUNvQyxZQUFZLENBQUNDLFdBQVc7Z0JBQ3pCRCxXQUFXSSxnQkFBZ0I3RSxLQUFLO2dCQUNoQzBFLFlBQVlHLGdCQUFnQnpDLE1BQU07WUFDdEMsT0FBTyxJQUFJcUMsWUFBWSxDQUFDQyxXQUFXO2dCQUMvQixNQUFNTSxRQUFRUCxXQUFXSSxnQkFBZ0I3RSxLQUFLO2dCQUM5QzBFLFlBQVkvRCxLQUFLc0UsS0FBSyxDQUFDSixnQkFBZ0J6QyxNQUFNLEdBQUc0QztZQUNwRCxPQUFPLElBQUksQ0FBQ1AsWUFBWUMsV0FBVztnQkFDL0IsTUFBTU0sUUFBUU4sWUFBWUcsZ0JBQWdCekMsTUFBTTtnQkFDaERxQyxXQUFXOUQsS0FBS3NFLEtBQUssQ0FBQ0osZ0JBQWdCN0UsS0FBSyxHQUFHZ0Y7WUFDbEQ7UUFDSjtJQUNKO0lBQ0FoRyxNQUFNLE9BQU9BLFFBQVEsV0FBV0EsTUFBTXdGO0lBQ3RDLElBQUlVLFNBQVMsQ0FBQ2pELFlBQWFDLENBQUFBLFlBQVksVUFBVSxPQUFPQSxZQUFZLFdBQVU7SUFDOUUsSUFBSSxDQUFDbEQsT0FBT0EsSUFBSW1HLFVBQVUsQ0FBQyxZQUFZbkcsSUFBSW1HLFVBQVUsQ0FBQyxVQUFVO1FBQzVELHVFQUF1RTtRQUN2RTNELGNBQWM7UUFDZDBELFNBQVM7SUFDYjtJQUNBLElBQUkzRCxPQUFPQyxXQUFXLEVBQUU7UUFDcEJBLGNBQWM7SUFDbEI7SUFDQSxJQUFJbUMsbUJBQW1CM0UsSUFBSW9HLFFBQVEsQ0FBQyxXQUFXLENBQUM3RCxPQUFPOEQsbUJBQW1CLEVBQUU7UUFDeEUseURBQXlEO1FBQ3pELCtDQUErQztRQUMvQzdELGNBQWM7SUFDbEI7SUFDQSxJQUFJUyxVQUFVO1FBQ1ZVLGdCQUFnQjtJQUNwQjtJQUNBLE1BQU0yQyxhQUFhL0YsT0FBT2tDO0lBQzFCLElBQUk4RCxJQUFxQyxFQUFFO1FBQ3ZDLElBQUloRSxPQUFPaUUsTUFBTSxLQUFLLFlBQVk3QixtQkFBbUIsQ0FBQ25DLGFBQWE7WUFDL0QsTUFBTSxJQUFJb0MsTUFBTTtRQUNwQjtRQUNBLElBQUksQ0FBQzVFLEtBQUs7WUFDTixpREFBaUQ7WUFDakQsK0NBQStDO1lBQy9DLDJDQUEyQztZQUMzQ3dDLGNBQWM7UUFDbEIsT0FBTztZQUNILElBQUlhLE1BQU07Z0JBQ04sSUFBSXJDLE9BQU87b0JBQ1AsTUFBTSxJQUFJNEQsTUFBTSxxQkFBcUI1RSxNQUFNO2dCQUMvQztnQkFDQSxJQUFJb0QsUUFBUTtvQkFDUixNQUFNLElBQUl3QixNQUFNLHFCQUFxQjVFLE1BQU07Z0JBQy9DO2dCQUNBLElBQUksQ0FBQ3NELFNBQVMsT0FBTyxLQUFLLElBQUlBLE1BQU1tRCxRQUFRLEtBQUtuRCxNQUFNbUQsUUFBUSxLQUFLLFlBQVk7b0JBQzVFLE1BQU0sSUFBSTdCLE1BQU0scUJBQXFCNUUsTUFBTTtnQkFDL0M7Z0JBQ0EsSUFBSSxDQUFDc0QsU0FBUyxPQUFPLEtBQUssSUFBSUEsTUFBTXRDLEtBQUssS0FBS3NDLE1BQU10QyxLQUFLLEtBQUssUUFBUTtvQkFDbEUsTUFBTSxJQUFJNEQsTUFBTSxxQkFBcUI1RSxNQUFNO2dCQUMvQztnQkFDQSxJQUFJLENBQUNzRCxTQUFTLE9BQU8sS0FBSyxJQUFJQSxNQUFNRixNQUFNLEtBQUtFLE1BQU1GLE1BQU0sS0FBSyxRQUFRO29CQUNwRSxNQUFNLElBQUl3QixNQUFNLHFCQUFxQjVFLE1BQU07Z0JBQy9DO1lBQ0osT0FBTztnQkFDSCxJQUFJLE9BQU95RixhQUFhLGFBQWE7b0JBQ2pDLE1BQU0sSUFBSWIsTUFBTSxxQkFBcUI1RSxNQUFNO2dCQUMvQyxPQUFPLElBQUkwRyxNQUFNakIsV0FBVztvQkFDeEIsTUFBTSxJQUFJYixNQUFNLHFCQUFxQjVFLE1BQU0sc0ZBQXNGZ0IsUUFBUTtnQkFDN0k7Z0JBQ0EsSUFBSSxPQUFPMEUsY0FBYyxhQUFhO29CQUNsQyxNQUFNLElBQUlkLE1BQU0scUJBQXFCNUUsTUFBTTtnQkFDL0MsT0FBTyxJQUFJMEcsTUFBTWhCLFlBQVk7b0JBQ3pCLE1BQU0sSUFBSWQsTUFBTSxxQkFBcUI1RSxNQUFNLHVGQUF1Rm9ELFNBQVM7Z0JBQy9JO1lBQ0o7UUFDSjtRQUNBLElBQUksQ0FBQ3ZELHFCQUFxQjhHLFFBQVEsQ0FBQ3pELFVBQVU7WUFDekMsTUFBTSxJQUFJMEIsTUFBTSxxQkFBcUI1RSxNQUFNLGlEQUFpRGtELFVBQVUsd0JBQXdCckQscUJBQXFCcUMsR0FBRyxDQUFDMEUsUUFBUTlELElBQUksQ0FBQyxPQUFPO1FBQy9LO1FBQ0EsSUFBSUcsWUFBWUMsWUFBWSxRQUFRO1lBQ2hDLE1BQU0sSUFBSTBCLE1BQU0scUJBQXFCNUUsTUFBTTtRQUMvQztRQUNBLElBQUl5RCxnQkFBZ0IsV0FBV0EsZ0JBQWdCLFVBQVUsQ0FBQ0EsWUFBWTBDLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDN0YsTUFBTSxJQUFJdkIsTUFBTSxxQkFBcUI1RSxNQUFNLDJDQUEyQ3lELGNBQWM7UUFDeEc7UUFDQSxJQUFJQSxnQkFBZ0IsU0FBUztZQUN6QixJQUFJZ0MsWUFBWUMsYUFBYUQsV0FBV0MsWUFBWSxNQUFNO2dCQUN0RGhHLDBEQUFRQSxDQUFDLHFCQUFxQk0sTUFBTTtZQUN4QztRQUNKO1FBQ0EsSUFBSXlELGdCQUFnQixVQUFVLENBQUNDLGFBQWE7WUFDeEMsTUFBTW1ELGlCQUFpQjtnQkFDbkI7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7YUFDSCxDQUFDLGlDQUFpQzs7WUFFbkMsTUFBTSxJQUFJakMsTUFBTSxxQkFBcUI1RSxNQUFNLDZUQUE2VDZHLGVBQWUvRCxJQUFJLENBQUMsT0FBTztRQUN2WTtRQUNBLElBQUksU0FBU21CLE1BQU07WUFDZnZFLDBEQUFRQSxDQUFDLHFCQUFxQk0sTUFBTTtRQUN4QztRQUNBLElBQUksQ0FBQ3dDLGVBQWUsQ0FBQ21DLGlCQUFpQjtZQUNsQyxNQUFNbUMsU0FBU3BFLE9BQU87Z0JBQ2xCSDtnQkFDQXZDO2dCQUNBZ0IsT0FBT3lFLFlBQVk7Z0JBQ25CaEQsU0FBUzZELGNBQWM7WUFDM0I7WUFDQSxJQUFJUztZQUNKLElBQUk7Z0JBQ0FBLE1BQU0sSUFBSUMsSUFBSUY7WUFDbEIsRUFBRSxPQUFPRyxLQUFLLENBQUM7WUFDZixJQUFJSCxXQUFXOUcsT0FBTytHLE9BQU9BLElBQUlHLFFBQVEsS0FBS2xILE9BQU8sQ0FBQytHLElBQUlJLE1BQU0sRUFBRTtnQkFDOUR6SCwwREFBUUEsQ0FBQyxxQkFBcUJNLE1BQU0sNEhBQTRIO1lBQ3BLO1FBQ0o7UUFDQSxJQUFJd0QsbUJBQW1CO1lBQ25COUQsMERBQVFBLENBQUMscUJBQXFCTSxNQUFNO1FBQ3hDO1FBQ0EsS0FBSyxNQUFNLENBQUNvSCxXQUFXQyxZQUFZLElBQUlDLE9BQU9DLE9BQU8sQ0FBQztZQUNsRDNEO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1FBQ0osR0FBRztZQUNDLElBQUlxRCxhQUFhO2dCQUNiM0gsMERBQVFBLENBQUMscUJBQXFCTSxNQUFNLHdCQUF3Qm9ILFlBQVksMENBQTBDO1lBQ3RIO1FBQ0o7UUFDQSxJQUFJLEtBQTRFLEVBQUUsRUFzQmpGO0lBQ0w7SUFDQSxNQUFNbUIsV0FBV2pCLE9BQU9rQixNQUFNLENBQUNuRixPQUFPO1FBQ2xDb0QsVUFBVTtRQUNWckQsUUFBUTtRQUNScEMsT0FBTztRQUNQeUgsTUFBTTtRQUNOQyxLQUFLO1FBQ0xDLE9BQU87UUFDUEMsUUFBUTtRQUNSL0U7UUFDQUM7SUFDSixJQUFJLENBQUMsR0FBR0ssY0FBYyxDQUFDLElBQUk7UUFDdkIwRSxPQUFPO0lBQ1gsR0FBR3ZGO0lBQ0gsTUFBTXdGLGtCQUFrQixDQUFDMUUsZ0JBQWdCWCxnQkFBZ0IsVUFBVUEsZ0JBQWdCLFNBQVMsMkNBQTJDOUQsZ0VBQWVBLENBQUM7UUFDbko4RjtRQUNBQztRQUNBQztRQUNBQztRQUNBbEMsYUFBYUEsZUFBZTtRQUM1QkcsV0FBVzBFLFNBQVMxRSxTQUFTO0lBQ2pDLEtBQUssT0FBTyxVQUFVSixjQUFjLEtBQUssdUJBQXVCO09BQzdEO0lBQ0gsSUFBSXNGLG1CQUFtQkQsa0JBQWtCO1FBQ3JDRSxnQkFBZ0JULFNBQVMxRSxTQUFTLElBQUk7UUFDdENvRixvQkFBb0JWLFNBQVN6RSxjQUFjLElBQUk7UUFDL0NvRixrQkFBa0I7UUFDbEJKO0lBQ0osSUFBSSxDQUFDO0lBQ0wsSUFBSXZDLElBQXNDLEVBQUU7UUFDeEMsSUFBSXdDLGlCQUFpQkQsZUFBZSxJQUFJckYsZ0JBQWdCLFVBQVdDLENBQUFBLGVBQWUsT0FBTyxLQUFLLElBQUlBLFlBQVl5QyxVQUFVLENBQUMsSUFBRyxHQUFJO1lBQzVILDhFQUE4RTtZQUM5RSxnRkFBZ0Y7WUFDaEYscUZBQXFGO1lBQ3JGNEMsaUJBQWlCRCxlQUFlLEdBQUcsVUFBVXBGLGNBQWM7UUFDL0Q7SUFDSjtJQUNBLE1BQU15RixnQkFBZ0I3RyxpQkFBaUI7UUFDbkNDO1FBQ0F2QztRQUNBd0M7UUFDQXhCLE9BQU95RTtRQUNQaEQsU0FBUzZEO1FBQ1RyRjtRQUNBeUI7SUFDSjtJQUNBLElBQUk2RCxJQUFxQyxFQUFFO1FBQ3ZDLElBQUksS0FBNkIsRUFBRSxFQVlsQztJQUNMO0lBQ0EsTUFBTWtELFFBQVE7UUFDVixHQUFHeEYsSUFBSTtRQUNQZixTQUFTZ0QsU0FBUyxTQUFTaEQ7UUFDM0JTO1FBQ0EzQyxPQUFPeUU7UUFDUHJDLFFBQVFzQztRQUNSZ0UsVUFBVTtRQUNWdkc7UUFDQUcsT0FBTztZQUNILEdBQUdpRixRQUFRO1lBQ1gsR0FBR1EsZ0JBQWdCO1FBQ3ZCO1FBQ0E5SCxPQUFPa0ksY0FBY2xJLEtBQUs7UUFDMUIwQixRQUFRd0csY0FBY3hHLE1BQU07UUFDNUIzQyxLQUFLbUosY0FBY25KLEdBQUc7SUFDMUI7SUFDQSxNQUFNMkosT0FBTztRQUNUbkg7UUFDQVM7UUFDQVE7UUFDQUo7SUFDSjtJQUNBLE9BQU87UUFDSG9HO1FBQ0FFO0lBQ0o7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9nZXQtaW1nLXByb3BzLmpzP2Q4ZTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tIFwiLi91dGlscy93YXJuLW9uY2VcIjtcbmltcG9ydCB7IGdldEltYWdlQmx1clN2ZyB9IGZyb20gXCIuL2ltYWdlLWJsdXItc3ZnXCI7XG5pbXBvcnQgeyBpbWFnZUNvbmZpZ0RlZmF1bHQgfSBmcm9tIFwiLi9pbWFnZS1jb25maWdcIjtcbmNvbnN0IFZBTElEX0xPQURJTkdfVkFMVUVTID0gW1xuICAgIFwibGF6eVwiLFxuICAgIFwiZWFnZXJcIixcbiAgICB1bmRlZmluZWRcbl07XG5mdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUoc3JjKSB7XG4gICAgcmV0dXJuIHNyYy5kZWZhdWx0ICE9PSB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBpc1N0YXRpY0ltYWdlRGF0YShzcmMpIHtcbiAgICByZXR1cm4gc3JjLnNyYyAhPT0gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gaXNTdGF0aWNJbXBvcnQoc3JjKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBzcmMgPT09IFwib2JqZWN0XCIgJiYgKGlzU3RhdGljUmVxdWlyZShzcmMpIHx8IGlzU3RhdGljSW1hZ2VEYXRhKHNyYykpO1xufVxuY29uc3QgYWxsSW1ncyA9IG5ldyBNYXAoKTtcbmxldCBwZXJmT2JzZXJ2ZXI7XG5mdW5jdGlvbiBnZXRJbnQoeCkge1xuICAgIGlmICh0eXBlb2YgeCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4geDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUoeCkgPyB4IDogTmFOO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIgJiYgL15bMC05XSskLy50ZXN0KHgpKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCh4LCAxMCk7XG4gICAgfVxuICAgIHJldHVybiBOYU47XG59XG5mdW5jdGlvbiBnZXRXaWR0aHMocGFyYW0sIHdpZHRoLCBzaXplcykge1xuICAgIGxldCB7IGRldmljZVNpemVzLCBhbGxTaXplcyB9ID0gcGFyYW07XG4gICAgaWYgKHNpemVzKSB7XG4gICAgICAgIC8vIEZpbmQgYWxsIHRoZSBcInZ3XCIgcGVyY2VudCBzaXplcyB1c2VkIGluIHRoZSBzaXplcyBwcm9wXG4gICAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGhSZSA9IC8oXnxcXHMpKDE/XFxkP1xcZCl2dy9nO1xuICAgICAgICBjb25zdCBwZXJjZW50U2l6ZXMgPSBbXTtcbiAgICAgICAgZm9yKGxldCBtYXRjaDsgbWF0Y2ggPSB2aWV3cG9ydFdpZHRoUmUuZXhlYyhzaXplcyk7IG1hdGNoKXtcbiAgICAgICAgICAgIHBlcmNlbnRTaXplcy5wdXNoKHBhcnNlSW50KG1hdGNoWzJdKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcmNlbnRTaXplcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHNtYWxsZXN0UmF0aW8gPSBNYXRoLm1pbiguLi5wZXJjZW50U2l6ZXMpICogMC4wMTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgd2lkdGhzOiBhbGxTaXplcy5maWx0ZXIoKHMpPT5zID49IGRldmljZVNpemVzWzBdICogc21hbGxlc3RSYXRpbyksXG4gICAgICAgICAgICAgICAga2luZDogXCJ3XCJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdpZHRoczogYWxsU2l6ZXMsXG4gICAgICAgICAgICBraW5kOiBcIndcIlxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpZHRoICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3aWR0aHM6IGRldmljZVNpemVzLFxuICAgICAgICAgICAga2luZDogXCJ3XCJcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgd2lkdGhzID0gW1xuICAgICAgICAuLi5uZXcgU2V0KC8vID4gVGhpcyBtZWFucyB0aGF0IG1vc3QgT0xFRCBzY3JlZW5zIHRoYXQgc2F5IHRoZXkgYXJlIDN4IHJlc29sdXRpb24sXG4gICAgICAgIC8vID4gYXJlIGFjdHVhbGx5IDN4IGluIHRoZSBncmVlbiBjb2xvciwgYnV0IG9ubHkgMS41eCBpbiB0aGUgcmVkIGFuZFxuICAgICAgICAvLyA+IGJsdWUgY29sb3JzLiBTaG93aW5nIGEgM3ggcmVzb2x1dGlvbiBpbWFnZSBpbiB0aGUgYXBwIHZzIGEgMnhcbiAgICAgICAgLy8gPiByZXNvbHV0aW9uIGltYWdlIHdpbGwgYmUgdmlzdWFsbHkgdGhlIHNhbWUsIHRob3VnaCB0aGUgM3ggaW1hZ2VcbiAgICAgICAgLy8gPiB0YWtlcyBzaWduaWZpY2FudGx5IG1vcmUgZGF0YS4gRXZlbiB0cnVlIDN4IHJlc29sdXRpb24gc2NyZWVucyBhcmVcbiAgICAgICAgLy8gPiB3YXN0ZWZ1bCBhcyB0aGUgaHVtYW4gZXllIGNhbm5vdCBzZWUgdGhhdCBsZXZlbCBvZiBkZXRhaWwgd2l0aG91dFxuICAgICAgICAvLyA+IHNvbWV0aGluZyBsaWtlIGEgbWFnbmlmeWluZyBnbGFzcy5cbiAgICAgICAgLy8gaHR0cHM6Ly9ibG9nLnR3aXR0ZXIuY29tL2VuZ2luZWVyaW5nL2VuX3VzL3RvcGljcy9pbmZyYXN0cnVjdHVyZS8yMDE5L2NhcHBpbmctaW1hZ2UtZmlkZWxpdHktb24tdWx0cmEtaGlnaC1yZXNvbHV0aW9uLWRldmljZXMuaHRtbFxuICAgICAgICBbXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIHdpZHRoICogMiAvKiwgd2lkdGggKiAzKi8gXG4gICAgICAgIF0ubWFwKCh3KT0+YWxsU2l6ZXMuZmluZCgocCk9PnAgPj0gdykgfHwgYWxsU2l6ZXNbYWxsU2l6ZXMubGVuZ3RoIC0gMV0pKVxuICAgIF07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGhzLFxuICAgICAgICBraW5kOiBcInhcIlxuICAgIH07XG59XG5mdW5jdGlvbiBnZW5lcmF0ZUltZ0F0dHJzKHBhcmFtKSB7XG4gICAgbGV0IHsgY29uZmlnLCBzcmMsIHVub3B0aW1pemVkLCB3aWR0aCwgcXVhbGl0eSwgc2l6ZXMsIGxvYWRlciB9ID0gcGFyYW07XG4gICAgaWYgKHVub3B0aW1pemVkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICBzcmNTZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHNpemVzOiB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgeyB3aWR0aHMsIGtpbmQgfSA9IGdldFdpZHRocyhjb25maWcsIHdpZHRoLCBzaXplcyk7XG4gICAgY29uc3QgbGFzdCA9IHdpZHRocy5sZW5ndGggLSAxO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNpemVzOiAhc2l6ZXMgJiYga2luZCA9PT0gXCJ3XCIgPyBcIjEwMHZ3XCIgOiBzaXplcyxcbiAgICAgICAgc3JjU2V0OiB3aWR0aHMubWFwKCh3LCBpKT0+bG9hZGVyKHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHF1YWxpdHksXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdcbiAgICAgICAgICAgIH0pICsgXCIgXCIgKyAoa2luZCA9PT0gXCJ3XCIgPyB3IDogaSArIDEpICsga2luZCkuam9pbihcIiwgXCIpLFxuICAgICAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYHNyY2AgdGhlIGxhc3QgYXR0cmlidXRlIGJlY2F1c2UgUmVhY3QgdXBkYXRlc1xuICAgICAgICAvLyBhdHRyaWJ1dGVzIGluIG9yZGVyLiBJZiB3ZSBrZWVwIGBzcmNgIHRoZSBmaXJzdCBvbmUsIFNhZmFyaSB3aWxsXG4gICAgICAgIC8vIGltbWVkaWF0ZWx5IHN0YXJ0IHRvIGZldGNoIGBzcmNgLCBiZWZvcmUgYHNpemVzYCBhbmQgYHNyY1NldGAgYXJlIGV2ZW5cbiAgICAgICAgLy8gdXBkYXRlZCBieSBSZWFjdC4gVGhhdCBjYXVzZXMgbXVsdGlwbGUgdW5uZWNlc3NhcnkgcmVxdWVzdHMgaWYgYHNyY1NldGBcbiAgICAgICAgLy8gYW5kIGBzaXplc2AgYXJlIGRlZmluZWQuXG4gICAgICAgIC8vIFRoaXMgYnVnIGNhbm5vdCBiZSByZXByb2R1Y2VkIGluIENocm9tZSBvciBGaXJlZm94LlxuICAgICAgICBzcmM6IGxvYWRlcih7XG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICBxdWFsaXR5LFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoc1tsYXN0XVxuICAgICAgICB9KVxuICAgIH07XG59XG4vKipcbiAqIEEgc2hhcmVkIGZ1bmN0aW9uLCB1c2VkIG9uIGJvdGggY2xpZW50IGFuZCBzZXJ2ZXIsIHRvIGdlbmVyYXRlIHRoZSBwcm9wcyBmb3IgPGltZz4uXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldEltZ1Byb3BzKHBhcmFtLCBfc3RhdGUpIHtcbiAgICBsZXQgeyBzcmMsIHNpemVzLCB1bm9wdGltaXplZCA9IGZhbHNlLCBwcmlvcml0eSA9IGZhbHNlLCBsb2FkaW5nLCBjbGFzc05hbWUsIHF1YWxpdHksIHdpZHRoLCBoZWlnaHQsIGZpbGwgPSBmYWxzZSwgc3R5bGUsIG9uTG9hZCwgb25Mb2FkaW5nQ29tcGxldGUsIHBsYWNlaG9sZGVyID0gXCJlbXB0eVwiLCBibHVyRGF0YVVSTCwgZmV0Y2hQcmlvcml0eSwgbGF5b3V0LCBvYmplY3RGaXQsIG9iamVjdFBvc2l0aW9uLCBsYXp5Qm91bmRhcnksIGxhenlSb290LCAuLi5yZXN0IH0gPSBwYXJhbTtcbiAgICBjb25zdCB7IGltZ0NvbmYsIHNob3dBbHRUZXh0LCBibHVyQ29tcGxldGUsIGRlZmF1bHRMb2FkZXIgfSA9IF9zdGF0ZTtcbiAgICBsZXQgY29uZmlnO1xuICAgIGxldCBjID0gaW1nQ29uZiB8fCBpbWFnZUNvbmZpZ0RlZmF1bHQ7XG4gICAgaWYgKFwiYWxsU2l6ZXNcIiBpbiBjKSB7XG4gICAgICAgIGNvbmZpZyA9IGM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYWxsU2l6ZXMgPSBbXG4gICAgICAgICAgICAuLi5jLmRldmljZVNpemVzLFxuICAgICAgICAgICAgLi4uYy5pbWFnZVNpemVzXG4gICAgICAgIF0uc29ydCgoYSwgYik9PmEgLSBiKTtcbiAgICAgICAgY29uc3QgZGV2aWNlU2l6ZXMgPSBjLmRldmljZVNpemVzLnNvcnQoKGEsIGIpPT5hIC0gYik7XG4gICAgICAgIGNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICBhbGxTaXplcyxcbiAgICAgICAgICAgIGRldmljZVNpemVzXG4gICAgICAgIH07XG4gICAgfVxuICAgIGxldCBsb2FkZXIgPSByZXN0LmxvYWRlciB8fCBkZWZhdWx0TG9hZGVyO1xuICAgIC8vIFJlbW92ZSBwcm9wZXJ0eSBzbyBpdCdzIG5vdCBzcHJlYWQgb24gPGltZz4gZWxlbWVudFxuICAgIGRlbGV0ZSByZXN0LmxvYWRlcjtcbiAgICBkZWxldGUgcmVzdC5zcmNTZXQ7XG4gICAgLy8gVGhpcyBzcGVjaWFsIHZhbHVlIGluZGljYXRlcyB0aGF0IHRoZSB1c2VyXG4gICAgLy8gZGlkbid0IGRlZmluZSBhIFwibG9hZGVyXCIgcHJvcCBvciBcImxvYWRlclwiIGNvbmZpZy5cbiAgICBjb25zdCBpc0RlZmF1bHRMb2FkZXIgPSBcIl9fbmV4dF9pbWdfZGVmYXVsdFwiIGluIGxvYWRlcjtcbiAgICBpZiAoaXNEZWZhdWx0TG9hZGVyKSB7XG4gICAgICAgIGlmIChjb25maWcubG9hZGVyID09PSBcImN1c3RvbVwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBpcyBtaXNzaW5nIFwibG9hZGVyXCIgcHJvcC4nICsgXCJcXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtbWlzc2luZy1sb2FkZXJcIik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgdXNlciBkZWZpbmVkIGEgXCJsb2FkZXJcIiBwcm9wIG9yIGNvbmZpZy5cbiAgICAgICAgLy8gU2luY2UgdGhlIGNvbmZpZyBvYmplY3QgaXMgaW50ZXJuYWwgb25seSwgd2VcbiAgICAgICAgLy8gbXVzdCBub3QgcGFzcyBpdCB0byB0aGUgdXNlci1kZWZpbmVkIFwibG9hZGVyXCIuXG4gICAgICAgIGNvbnN0IGN1c3RvbUltYWdlTG9hZGVyID0gbG9hZGVyO1xuICAgICAgICBsb2FkZXIgPSAob2JqKT0+e1xuICAgICAgICAgICAgY29uc3QgeyBjb25maWc6IF8sIC4uLm9wdHMgfSA9IG9iajtcbiAgICAgICAgICAgIHJldHVybiBjdXN0b21JbWFnZUxvYWRlcihvcHRzKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGxheW91dCkge1xuICAgICAgICBpZiAobGF5b3V0ID09PSBcImZpbGxcIikge1xuICAgICAgICAgICAgZmlsbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGF5b3V0VG9TdHlsZSA9IHtcbiAgICAgICAgICAgIGludHJpbnNpYzoge1xuICAgICAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGxheW91dFRvU2l6ZXMgPSB7XG4gICAgICAgICAgICByZXNwb25zaXZlOiBcIjEwMHZ3XCIsXG4gICAgICAgICAgICBmaWxsOiBcIjEwMHZ3XCJcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbGF5b3V0U3R5bGUgPSBsYXlvdXRUb1N0eWxlW2xheW91dF07XG4gICAgICAgIGlmIChsYXlvdXRTdHlsZSkge1xuICAgICAgICAgICAgc3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgICAgICAgICAgLi4ubGF5b3V0U3R5bGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGF5b3V0U2l6ZXMgPSBsYXlvdXRUb1NpemVzW2xheW91dF07XG4gICAgICAgIGlmIChsYXlvdXRTaXplcyAmJiAhc2l6ZXMpIHtcbiAgICAgICAgICAgIHNpemVzID0gbGF5b3V0U2l6ZXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IHN0YXRpY1NyYyA9IFwiXCI7XG4gICAgbGV0IHdpZHRoSW50ID0gZ2V0SW50KHdpZHRoKTtcbiAgICBsZXQgaGVpZ2h0SW50ID0gZ2V0SW50KGhlaWdodCk7XG4gICAgbGV0IGJsdXJXaWR0aDtcbiAgICBsZXQgYmx1ckhlaWdodDtcbiAgICBpZiAoaXNTdGF0aWNJbXBvcnQoc3JjKSkge1xuICAgICAgICBjb25zdCBzdGF0aWNJbWFnZURhdGEgPSBpc1N0YXRpY1JlcXVpcmUoc3JjKSA/IHNyYy5kZWZhdWx0IDogc3JjO1xuICAgICAgICBpZiAoIXN0YXRpY0ltYWdlRGF0YS5zcmMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFuIG9iamVjdCBzaG91bGQgb25seSBiZSBwYXNzZWQgdG8gdGhlIGltYWdlIGNvbXBvbmVudCBzcmMgcGFyYW1ldGVyIGlmIGl0IGNvbWVzIGZyb20gYSBzdGF0aWMgaW1hZ2UgaW1wb3J0LiBJdCBtdXN0IGluY2x1ZGUgc3JjLiBSZWNlaXZlZCBcIiArIEpTT04uc3RyaW5naWZ5KHN0YXRpY0ltYWdlRGF0YSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc3RhdGljSW1hZ2VEYXRhLmhlaWdodCB8fCAhc3RhdGljSW1hZ2VEYXRhLndpZHRoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIGhlaWdodCBhbmQgd2lkdGguIFJlY2VpdmVkIFwiICsgSlNPTi5zdHJpbmdpZnkoc3RhdGljSW1hZ2VEYXRhKSk7XG4gICAgICAgIH1cbiAgICAgICAgYmx1cldpZHRoID0gc3RhdGljSW1hZ2VEYXRhLmJsdXJXaWR0aDtcbiAgICAgICAgYmx1ckhlaWdodCA9IHN0YXRpY0ltYWdlRGF0YS5ibHVySGVpZ2h0O1xuICAgICAgICBibHVyRGF0YVVSTCA9IGJsdXJEYXRhVVJMIHx8IHN0YXRpY0ltYWdlRGF0YS5ibHVyRGF0YVVSTDtcbiAgICAgICAgc3RhdGljU3JjID0gc3RhdGljSW1hZ2VEYXRhLnNyYztcbiAgICAgICAgaWYgKCFmaWxsKSB7XG4gICAgICAgICAgICBpZiAoIXdpZHRoSW50ICYmICFoZWlnaHRJbnQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aEludCA9IHN0YXRpY0ltYWdlRGF0YS53aWR0aDtcbiAgICAgICAgICAgICAgICBoZWlnaHRJbnQgPSBzdGF0aWNJbWFnZURhdGEuaGVpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh3aWR0aEludCAmJiAhaGVpZ2h0SW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSB3aWR0aEludCAvIHN0YXRpY0ltYWdlRGF0YS53aWR0aDtcbiAgICAgICAgICAgICAgICBoZWlnaHRJbnQgPSBNYXRoLnJvdW5kKHN0YXRpY0ltYWdlRGF0YS5oZWlnaHQgKiByYXRpbyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF3aWR0aEludCAmJiBoZWlnaHRJbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXRpbyA9IGhlaWdodEludCAvIHN0YXRpY0ltYWdlRGF0YS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgd2lkdGhJbnQgPSBNYXRoLnJvdW5kKHN0YXRpY0ltYWdlRGF0YS53aWR0aCAqIHJhdGlvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBzcmMgPSB0eXBlb2Ygc3JjID09PSBcInN0cmluZ1wiID8gc3JjIDogc3RhdGljU3JjO1xuICAgIGxldCBpc0xhenkgPSAhcHJpb3JpdHkgJiYgKGxvYWRpbmcgPT09IFwibGF6eVwiIHx8IHR5cGVvZiBsb2FkaW5nID09PSBcInVuZGVmaW5lZFwiKTtcbiAgICBpZiAoIXNyYyB8fCBzcmMuc3RhcnRzV2l0aChcImRhdGE6XCIpIHx8IHNyYy5zdGFydHNXaXRoKFwiYmxvYjpcIikpIHtcbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9EYXRhX1VSSXNcbiAgICAgICAgdW5vcHRpbWl6ZWQgPSB0cnVlO1xuICAgICAgICBpc0xhenkgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy51bm9wdGltaXplZCkge1xuICAgICAgICB1bm9wdGltaXplZCA9IHRydWU7XG4gICAgfVxuICAgIGlmIChpc0RlZmF1bHRMb2FkZXIgJiYgc3JjLmVuZHNXaXRoKFwiLnN2Z1wiKSAmJiAhY29uZmlnLmRhbmdlcm91c2x5QWxsb3dTVkcpIHtcbiAgICAgICAgLy8gU3BlY2lhbCBjYXNlIHRvIG1ha2Ugc3ZnIHNlcnZlIGFzLWlzIHRvIGF2b2lkIHByb3h5aW5nXG4gICAgICAgIC8vIHRocm91Z2ggdGhlIGJ1aWx0LWluIEltYWdlIE9wdGltaXphdGlvbiBBUEkuXG4gICAgICAgIHVub3B0aW1pemVkID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHByaW9yaXR5KSB7XG4gICAgICAgIGZldGNoUHJpb3JpdHkgPSBcImhpZ2hcIjtcbiAgICB9XG4gICAgY29uc3QgcXVhbGl0eUludCA9IGdldEludChxdWFsaXR5KTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGlmIChjb25maWcub3V0cHV0ID09PSBcImV4cG9ydFwiICYmIGlzRGVmYXVsdExvYWRlciAmJiAhdW5vcHRpbWl6ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkltYWdlIE9wdGltaXphdGlvbiB1c2luZyB0aGUgZGVmYXVsdCBsb2FkZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBgeyBvdXRwdXQ6ICdleHBvcnQnIH1gLlxcbiAgUG9zc2libGUgc29sdXRpb25zOlxcbiAgICAtIFJlbW92ZSBgeyBvdXRwdXQ6ICdleHBvcnQnIH1gIGFuZCBydW4gXFxcIm5leHQgc3RhcnRcXFwiIHRvIHJ1biBzZXJ2ZXIgbW9kZSBpbmNsdWRpbmcgdGhlIEltYWdlIE9wdGltaXphdGlvbiBBUEkuXFxuICAgIC0gQ29uZmlndXJlIGB7IGltYWdlczogeyB1bm9wdGltaXplZDogdHJ1ZSB9IH1gIGluIGBuZXh0LmNvbmZpZy5qc2AgdG8gZGlzYWJsZSB0aGUgSW1hZ2UgT3B0aW1pemF0aW9uIEFQSS5cXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZXhwb3J0LWltYWdlLWFwaVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNyYykge1xuICAgICAgICAgICAgLy8gUmVhY3QgZG9lc24ndCBzaG93IHRoZSBzdGFjayB0cmFjZSBhbmQgdGhlcmUnc1xuICAgICAgICAgICAgLy8gbm8gYHNyY2AgdG8gaGVscCBpZGVudGlmeSB3aGljaCBpbWFnZSwgc28gd2VcbiAgICAgICAgICAgIC8vIGluc3RlYWQgY29uc29sZS5lcnJvcihyZWYpIGR1cmluZyBtb3VudC5cbiAgICAgICAgICAgIHVub3B0aW1pemVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmaWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBib3RoIFwid2lkdGhcIiBhbmQgXCJmaWxsXCIgcHJvcGVydGllcy4gT25seSBvbmUgc2hvdWxkIGJlIHVzZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChoZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBzcmMgKyAnXCIgaGFzIGJvdGggXCJoZWlnaHRcIiBhbmQgXCJmaWxsXCIgcHJvcGVydGllcy4gT25seSBvbmUgc2hvdWxkIGJlIHVzZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoc3R5bGUgPT0gbnVsbCA/IHZvaWQgMCA6IHN0eWxlLnBvc2l0aW9uKSAmJiBzdHlsZS5wb3NpdGlvbiAhPT0gXCJhYnNvbHV0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBib3RoIFwiZmlsbFwiIGFuZCBcInN0eWxlLnBvc2l0aW9uXCIgcHJvcGVydGllcy4gSW1hZ2VzIHdpdGggXCJmaWxsXCIgYWx3YXlzIHVzZSBwb3NpdGlvbiBhYnNvbHV0ZSAtIGl0IGNhbm5vdCBiZSBtb2RpZmllZC4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChzdHlsZSA9PSBudWxsID8gdm9pZCAwIDogc3R5bGUud2lkdGgpICYmIHN0eWxlLndpZHRoICE9PSBcIjEwMCVcIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgYm90aCBcImZpbGxcIiBhbmQgXCJzdHlsZS53aWR0aFwiIHByb3BlcnRpZXMuIEltYWdlcyB3aXRoIFwiZmlsbFwiIGFsd2F5cyB1c2Ugd2lkdGggMTAwJSAtIGl0IGNhbm5vdCBiZSBtb2RpZmllZC4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChzdHlsZSA9PSBudWxsID8gdm9pZCAwIDogc3R5bGUuaGVpZ2h0KSAmJiBzdHlsZS5oZWlnaHQgIT09IFwiMTAwJVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBib3RoIFwiZmlsbFwiIGFuZCBcInN0eWxlLmhlaWdodFwiIHByb3BlcnRpZXMuIEltYWdlcyB3aXRoIFwiZmlsbFwiIGFsd2F5cyB1c2UgaGVpZ2h0IDEwMCUgLSBpdCBjYW5ub3QgYmUgbW9kaWZpZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpZHRoSW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJ3aWR0aFwiIHByb3BlcnR5LicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOYU4od2lkdGhJbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBpbnZhbGlkIFwid2lkdGhcIiBwcm9wZXJ0eS4gRXhwZWN0ZWQgYSBudW1lcmljIHZhbHVlIGluIHBpeGVscyBidXQgcmVjZWl2ZWQgXCInICsgd2lkdGggKyAnXCIuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaGVpZ2h0SW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJoZWlnaHRcIiBwcm9wZXJ0eS4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTmFOKGhlaWdodEludCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBzcmMgKyAnXCIgaGFzIGludmFsaWQgXCJoZWlnaHRcIiBwcm9wZXJ0eS4gRXhwZWN0ZWQgYSBudW1lcmljIHZhbHVlIGluIHBpeGVscyBidXQgcmVjZWl2ZWQgXCInICsgaGVpZ2h0ICsgJ1wiLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIVZBTElEX0xPQURJTkdfVkFMVUVTLmluY2x1ZGVzKGxvYWRpbmcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgaW52YWxpZCBcImxvYWRpbmdcIiBwcm9wZXJ0eS4gUHJvdmlkZWQgXCInICsgbG9hZGluZyArICdcIiBzaG91bGQgYmUgb25lIG9mICcgKyBWQUxJRF9MT0FESU5HX1ZBTFVFUy5tYXAoU3RyaW5nKS5qb2luKFwiLFwiKSArIFwiLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJpb3JpdHkgJiYgbG9hZGluZyA9PT0gXCJsYXp5XCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBib3RoIFwicHJpb3JpdHlcIiBhbmQgXCJsb2FkaW5nPVxcJ2xhenlcXCdcIiBwcm9wZXJ0aWVzLiBPbmx5IG9uZSBzaG91bGQgYmUgdXNlZC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGxhY2Vob2xkZXIgIT09IFwiZW1wdHlcIiAmJiBwbGFjZWhvbGRlciAhPT0gXCJibHVyXCIgJiYgIXBsYWNlaG9sZGVyLnN0YXJ0c1dpdGgoXCJkYXRhOmltYWdlL1wiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBzcmMgKyAnXCIgaGFzIGludmFsaWQgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5IFwiJyArIHBsYWNlaG9sZGVyICsgJ1wiLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwbGFjZWhvbGRlciAhPT0gXCJlbXB0eVwiKSB7XG4gICAgICAgICAgICBpZiAod2lkdGhJbnQgJiYgaGVpZ2h0SW50ICYmIHdpZHRoSW50ICogaGVpZ2h0SW50IDwgMTYwMCkge1xuICAgICAgICAgICAgICAgIHdhcm5PbmNlKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBzcmMgKyAnXCIgaXMgc21hbGxlciB0aGFuIDQweDQwLiBDb25zaWRlciByZW1vdmluZyB0aGUgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlaG9sZGVyID09PSBcImJsdXJcIiAmJiAhYmx1ckRhdGFVUkwpIHtcbiAgICAgICAgICAgIGNvbnN0IFZBTElEX0JMVVJfRVhUID0gW1xuICAgICAgICAgICAgICAgIFwianBlZ1wiLFxuICAgICAgICAgICAgICAgIFwicG5nXCIsXG4gICAgICAgICAgICAgICAgXCJ3ZWJwXCIsXG4gICAgICAgICAgICAgICAgXCJhdmlmXCJcbiAgICAgICAgICAgIF0gLy8gc2hvdWxkIG1hdGNoIG5leHQtaW1hZ2UtbG9hZGVyXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgXCJwbGFjZWhvbGRlcj1cXCdibHVyXFwnXCIgcHJvcGVydHkgYnV0IGlzIG1pc3NpbmcgdGhlIFwiYmx1ckRhdGFVUkxcIiBwcm9wZXJ0eS5cXG4gICAgICAgIFBvc3NpYmxlIHNvbHV0aW9uczpcXG4gICAgICAgICAgLSBBZGQgYSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHksIHRoZSBjb250ZW50cyBzaG91bGQgYmUgYSBzbWFsbCBEYXRhIFVSTCB0byByZXByZXNlbnQgdGhlIGltYWdlXFxuICAgICAgICAgIC0gQ2hhbmdlIHRoZSBcInNyY1wiIHByb3BlcnR5IHRvIGEgc3RhdGljIGltcG9ydCB3aXRoIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGZpbGUgdHlwZXM6ICcgKyBWQUxJRF9CTFVSX0VYVC5qb2luKFwiLFwiKSArICcgKGFuaW1hdGVkIGltYWdlcyBub3Qgc3VwcG9ydGVkKVxcbiAgICAgICAgICAtIFJlbW92ZSB0aGUgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5LCBlZmZlY3RpdmVseSBubyBibHVyIGVmZmVjdFxcbiAgICAgICAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wbGFjZWhvbGRlci1ibHVyLWRhdGEtdXJsJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwicmVmXCIgaW4gcmVzdCkge1xuICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBpcyB1c2luZyB1bnN1cHBvcnRlZCBcInJlZlwiIHByb3BlcnR5LiBDb25zaWRlciB1c2luZyB0aGUgXCJvbkxvYWRcIiBwcm9wZXJ0eSBpbnN0ZWFkLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdW5vcHRpbWl6ZWQgJiYgIWlzRGVmYXVsdExvYWRlcikge1xuICAgICAgICAgICAgY29uc3QgdXJsU3RyID0gbG9hZGVyKHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aEludCB8fCA0MDAsXG4gICAgICAgICAgICAgICAgcXVhbGl0eTogcXVhbGl0eUludCB8fCA3NVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgdXJsO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHVybFN0cik7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHt9XG4gICAgICAgICAgICBpZiAodXJsU3RyID09PSBzcmMgfHwgdXJsICYmIHVybC5wYXRobmFtZSA9PT0gc3JjICYmICF1cmwuc2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgYSBcImxvYWRlclwiIHByb3BlcnR5IHRoYXQgZG9lcyBub3QgaW1wbGVtZW50IHdpZHRoLiBQbGVhc2UgaW1wbGVtZW50IGl0IG9yIHVzZSB0aGUgXCJ1bm9wdGltaXplZFwiIHByb3BlcnR5IGluc3RlYWQuJyArIFwiXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWltYWdlLW1pc3NpbmctbG9hZGVyLXdpZHRoXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChvbkxvYWRpbmdDb21wbGV0ZSkge1xuICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBpcyB1c2luZyBkZXByZWNhdGVkIFwib25Mb2FkaW5nQ29tcGxldGVcIiBwcm9wZXJ0eS4gUGxlYXNlIHVzZSB0aGUgXCJvbkxvYWRcIiBwcm9wZXJ0eSBpbnN0ZWFkLicpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2xlZ2FjeUtleSwgbGVnYWN5VmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHtcbiAgICAgICAgICAgIGxheW91dCxcbiAgICAgICAgICAgIG9iamVjdEZpdCxcbiAgICAgICAgICAgIG9iamVjdFBvc2l0aW9uLFxuICAgICAgICAgICAgbGF6eUJvdW5kYXJ5LFxuICAgICAgICAgICAgbGF6eVJvb3RcbiAgICAgICAgfSkpe1xuICAgICAgICAgICAgaWYgKGxlZ2FjeVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgbGVnYWN5IHByb3AgXCInICsgbGVnYWN5S2V5ICsgJ1wiLiBEaWQgeW91IGZvcmdldCB0byBydW4gdGhlIGNvZGVtb2Q/JyArIFwiXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWltYWdlLXVwZ3JhZGUtdG8tMTNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgIXBlcmZPYnNlcnZlciAmJiB3aW5kb3cuUGVyZm9ybWFuY2VPYnNlcnZlcikge1xuICAgICAgICAgICAgcGVyZk9ic2VydmVyID0gbmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGVudHJ5TGlzdCk9PntcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJ5TGlzdC5nZXRFbnRyaWVzKCkpe1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2VudHJ5X2VsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLSBtaXNzaW5nIFwiTGFyZ2VzdENvbnRlbnRmdWxQYWludFwiIGNsYXNzIHdpdGggXCJlbGVtZW50XCIgcHJvcFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdTcmMgPSAoZW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IChfZW50cnlfZWxlbWVudCA9IGVudHJ5LmVsZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZW50cnlfZWxlbWVudC5zcmMpIHx8IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxjcEltYWdlID0gYWxsSW1ncy5nZXQoaW1nU3JjKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxjcEltYWdlICYmICFsY3BJbWFnZS5wcmlvcml0eSAmJiBsY3BJbWFnZS5wbGFjZWhvbGRlciA9PT0gXCJlbXB0eVwiICYmICFsY3BJbWFnZS5zcmMuc3RhcnRzV2l0aChcImRhdGE6XCIpICYmICFsY3BJbWFnZS5zcmMuc3RhcnRzV2l0aChcImJsb2I6XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL3dlYi5kZXYvbGNwLyNtZWFzdXJlLWxjcC1pbi1qYXZhc2NyaXB0XG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuT25jZSgnSW1hZ2Ugd2l0aCBzcmMgXCInICsgbGNwSW1hZ2Uuc3JjICsgJ1wiIHdhcyBkZXRlY3RlZCBhcyB0aGUgTGFyZ2VzdCBDb250ZW50ZnVsIFBhaW50IChMQ1ApLiBQbGVhc2UgYWRkIHRoZSBcInByaW9yaXR5XCIgcHJvcGVydHkgaWYgdGhpcyBpbWFnZSBpcyBhYm92ZSB0aGUgZm9sZC4nICsgXCJcXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNwcmlvcml0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwZXJmT2JzZXJ2ZXIub2JzZXJ2ZSh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50XCIsXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcmVkOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBMb2cgZXJyb3IgYnV0IGRvbid0IGNyYXNoIHRoZSBhcHBcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaW1nU3R5bGUgPSBPYmplY3QuYXNzaWduKGZpbGwgPyB7XG4gICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICByaWdodDogMCxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICBvYmplY3RGaXQsXG4gICAgICAgIG9iamVjdFBvc2l0aW9uXG4gICAgfSA6IHt9LCBzaG93QWx0VGV4dCA/IHt9IDoge1xuICAgICAgICBjb2xvcjogXCJ0cmFuc3BhcmVudFwiXG4gICAgfSwgc3R5bGUpO1xuICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZSA9ICFibHVyQ29tcGxldGUgJiYgcGxhY2Vob2xkZXIgIT09IFwiZW1wdHlcIiA/IHBsYWNlaG9sZGVyID09PSBcImJsdXJcIiA/ICd1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwnICsgZ2V0SW1hZ2VCbHVyU3ZnKHtcbiAgICAgICAgd2lkdGhJbnQsXG4gICAgICAgIGhlaWdodEludCxcbiAgICAgICAgYmx1cldpZHRoLFxuICAgICAgICBibHVySGVpZ2h0LFxuICAgICAgICBibHVyRGF0YVVSTDogYmx1ckRhdGFVUkwgfHwgXCJcIixcbiAgICAgICAgb2JqZWN0Rml0OiBpbWdTdHlsZS5vYmplY3RGaXRcbiAgICB9KSArICdcIiknIDogJ3VybChcIicgKyBwbGFjZWhvbGRlciArICdcIiknIC8vIGFzc3VtZSBgZGF0YTppbWFnZS9gXG4gICAgIDogbnVsbDtcbiAgICBsZXQgcGxhY2Vob2xkZXJTdHlsZSA9IGJhY2tncm91bmRJbWFnZSA/IHtcbiAgICAgICAgYmFja2dyb3VuZFNpemU6IGltZ1N0eWxlLm9iamVjdEZpdCB8fCBcImNvdmVyXCIsXG4gICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogaW1nU3R5bGUub2JqZWN0UG9zaXRpb24gfHwgXCI1MCUgNTAlXCIsXG4gICAgICAgIGJhY2tncm91bmRSZXBlYXQ6IFwibm8tcmVwZWF0XCIsXG4gICAgICAgIGJhY2tncm91bmRJbWFnZVxuICAgIH0gOiB7fTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICBpZiAocGxhY2Vob2xkZXJTdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgJiYgcGxhY2Vob2xkZXIgPT09IFwiYmx1clwiICYmIChibHVyRGF0YVVSTCA9PSBudWxsID8gdm9pZCAwIDogYmx1ckRhdGFVUkwuc3RhcnRzV2l0aChcIi9cIikpKSB7XG4gICAgICAgICAgICAvLyBEdXJpbmcgYG5leHQgZGV2YCwgd2UgZG9uJ3Qgd2FudCB0byBnZW5lcmF0ZSBibHVyIHBsYWNlaG9sZGVycyB3aXRoIHdlYnBhY2tcbiAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQgY2FuIGRlbGF5IHN0YXJ0aW5nIHRoZSBkZXYgc2VydmVyLiBJbnN0ZWFkLCBgbmV4dC1pbWFnZS1sb2FkZXIuanNgXG4gICAgICAgICAgICAvLyB3aWxsIGlubGluZSBhIHNwZWNpYWwgdXJsIHRvIGxhemlseSBnZW5lcmF0ZSB0aGUgYmx1ciBwbGFjZWhvbGRlciBhdCByZXF1ZXN0IHRpbWUuXG4gICAgICAgICAgICBwbGFjZWhvbGRlclN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICd1cmwoXCInICsgYmx1ckRhdGFVUkwgKyAnXCIpJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBpbWdBdHRyaWJ1dGVzID0gZ2VuZXJhdGVJbWdBdHRycyh7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgc3JjLFxuICAgICAgICB1bm9wdGltaXplZCxcbiAgICAgICAgd2lkdGg6IHdpZHRoSW50LFxuICAgICAgICBxdWFsaXR5OiBxdWFsaXR5SW50LFxuICAgICAgICBzaXplcyxcbiAgICAgICAgbG9hZGVyXG4gICAgfSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgbGV0IGZ1bGxVcmw7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZ1bGxVcmwgPSBuZXcgVVJMKGltZ0F0dHJpYnV0ZXMuc3JjKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBmdWxsVXJsID0gbmV3IFVSTChpbWdBdHRyaWJ1dGVzLnNyYywgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWxsSW1ncy5zZXQoZnVsbFVybC5ocmVmLCB7XG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHByaW9yaXR5LFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgbG9hZGluZzogaXNMYXp5ID8gXCJsYXp5XCIgOiBsb2FkaW5nLFxuICAgICAgICBmZXRjaFByaW9yaXR5LFxuICAgICAgICB3aWR0aDogd2lkdGhJbnQsXG4gICAgICAgIGhlaWdodDogaGVpZ2h0SW50LFxuICAgICAgICBkZWNvZGluZzogXCJhc3luY1wiLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAuLi5pbWdTdHlsZSxcbiAgICAgICAgICAgIC4uLnBsYWNlaG9sZGVyU3R5bGVcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZXM6IGltZ0F0dHJpYnV0ZXMuc2l6ZXMsXG4gICAgICAgIHNyY1NldDogaW1nQXR0cmlidXRlcy5zcmNTZXQsXG4gICAgICAgIHNyYzogaW1nQXR0cmlidXRlcy5zcmNcbiAgICB9O1xuICAgIGNvbnN0IG1ldGEgPSB7XG4gICAgICAgIHVub3B0aW1pemVkLFxuICAgICAgICBwcmlvcml0eSxcbiAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgIGZpbGxcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3BzLFxuICAgICAgICBtZXRhXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWltZy1wcm9wcy5qcy5tYXAiXSwibmFtZXMiOlsid2Fybk9uY2UiLCJnZXRJbWFnZUJsdXJTdmciLCJpbWFnZUNvbmZpZ0RlZmF1bHQiLCJWQUxJRF9MT0FESU5HX1ZBTFVFUyIsInVuZGVmaW5lZCIsImlzU3RhdGljUmVxdWlyZSIsInNyYyIsImRlZmF1bHQiLCJpc1N0YXRpY0ltYWdlRGF0YSIsImlzU3RhdGljSW1wb3J0IiwiYWxsSW1ncyIsIk1hcCIsInBlcmZPYnNlcnZlciIsImdldEludCIsIngiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIk5hTiIsInRlc3QiLCJwYXJzZUludCIsImdldFdpZHRocyIsInBhcmFtIiwid2lkdGgiLCJzaXplcyIsImRldmljZVNpemVzIiwiYWxsU2l6ZXMiLCJ2aWV3cG9ydFdpZHRoUmUiLCJwZXJjZW50U2l6ZXMiLCJtYXRjaCIsImV4ZWMiLCJwdXNoIiwibGVuZ3RoIiwic21hbGxlc3RSYXRpbyIsIk1hdGgiLCJtaW4iLCJ3aWR0aHMiLCJmaWx0ZXIiLCJzIiwia2luZCIsIlNldCIsIm1hcCIsInciLCJmaW5kIiwicCIsImdlbmVyYXRlSW1nQXR0cnMiLCJjb25maWciLCJ1bm9wdGltaXplZCIsInF1YWxpdHkiLCJsb2FkZXIiLCJzcmNTZXQiLCJsYXN0IiwiaSIsImpvaW4iLCJnZXRJbWdQcm9wcyIsIl9zdGF0ZSIsInByaW9yaXR5IiwibG9hZGluZyIsImNsYXNzTmFtZSIsImhlaWdodCIsImZpbGwiLCJzdHlsZSIsIm9uTG9hZCIsIm9uTG9hZGluZ0NvbXBsZXRlIiwicGxhY2Vob2xkZXIiLCJibHVyRGF0YVVSTCIsImZldGNoUHJpb3JpdHkiLCJsYXlvdXQiLCJvYmplY3RGaXQiLCJvYmplY3RQb3NpdGlvbiIsImxhenlCb3VuZGFyeSIsImxhenlSb290IiwicmVzdCIsImltZ0NvbmYiLCJzaG93QWx0VGV4dCIsImJsdXJDb21wbGV0ZSIsImRlZmF1bHRMb2FkZXIiLCJjIiwiaW1hZ2VTaXplcyIsInNvcnQiLCJhIiwiYiIsImlzRGVmYXVsdExvYWRlciIsIkVycm9yIiwiY3VzdG9tSW1hZ2VMb2FkZXIiLCJvYmoiLCJfIiwib3B0cyIsImxheW91dFRvU3R5bGUiLCJpbnRyaW5zaWMiLCJtYXhXaWR0aCIsInJlc3BvbnNpdmUiLCJsYXlvdXRUb1NpemVzIiwibGF5b3V0U3R5bGUiLCJsYXlvdXRTaXplcyIsInN0YXRpY1NyYyIsIndpZHRoSW50IiwiaGVpZ2h0SW50IiwiYmx1cldpZHRoIiwiYmx1ckhlaWdodCIsInN0YXRpY0ltYWdlRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyYXRpbyIsInJvdW5kIiwiaXNMYXp5Iiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyIsInF1YWxpdHlJbnQiLCJwcm9jZXNzIiwib3V0cHV0IiwicG9zaXRpb24iLCJpc05hTiIsImluY2x1ZGVzIiwiU3RyaW5nIiwiVkFMSURfQkxVUl9FWFQiLCJ1cmxTdHIiLCJ1cmwiLCJVUkwiLCJlcnIiLCJwYXRobmFtZSIsInNlYXJjaCIsImxlZ2FjeUtleSIsImxlZ2FjeVZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyIsIndpbmRvdyIsIlBlcmZvcm1hbmNlT2JzZXJ2ZXIiLCJlbnRyeUxpc3QiLCJlbnRyeSIsImdldEVudHJpZXMiLCJfZW50cnlfZWxlbWVudCIsImltZ1NyYyIsImVsZW1lbnQiLCJsY3BJbWFnZSIsImdldCIsIm9ic2VydmUiLCJ0eXBlIiwiYnVmZmVyZWQiLCJjb25zb2xlIiwiZXJyb3IiLCJpbWdTdHlsZSIsImFzc2lnbiIsImxlZnQiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImNvbG9yIiwiYmFja2dyb3VuZEltYWdlIiwicGxhY2Vob2xkZXJTdHlsZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiYmFja2dyb3VuZFJlcGVhdCIsImltZ0F0dHJpYnV0ZXMiLCJmdWxsVXJsIiwiZSIsImxvY2F0aW9uIiwiaHJlZiIsInNldCIsInByb3BzIiwiZGVjb2RpbmciLCJtZXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/get-img-props.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/hash.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/hash.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ djb2Hash: () => (/* binding */ djb2Hash),\n/* harmony export */ hexHash: () => (/* binding */ hexHash)\n/* harmony export */ });\n// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\nfunction djb2Hash(str) {\n let hash = 5381;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) + hash + char & 0xffffffff;\n }\n return hash >>> 0;\n}\nfunction hexHash(str) {\n return djb2Hash(str).toString(36).slice(0, 5);\n} //# sourceMappingURL=hash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9oYXNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0NBQXdDO0FBQ3hDLDRDQUE0QztBQUM1QyxpSEFBaUg7QUFDakgsd0ZBQXdGO0FBQ3hGLGdHQUFnRztBQUNoRyx3SEFBd0g7QUFDeEgsd0RBQXdEO0FBQ2pELFNBQVNBLFNBQVNDLEdBQUc7SUFDeEIsSUFBSUMsT0FBTztJQUNYLElBQUksSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUk7UUFDL0IsTUFBTUUsT0FBT0osSUFBSUssVUFBVSxDQUFDSDtRQUM1QkQsT0FBTyxDQUFDQSxRQUFRLEtBQUtBLE9BQU9HLE9BQU87SUFDdkM7SUFDQSxPQUFPSCxTQUFTO0FBQ3BCO0FBQ08sU0FBU0ssUUFBUU4sR0FBRztJQUN2QixPQUFPRCxTQUFTQyxLQUFLTyxRQUFRLENBQUMsSUFBSUMsS0FBSyxDQUFDLEdBQUc7QUFDL0MsRUFFQSxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaGFzaC5qcz8zMDU0Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuY3NlLnlvcmt1LmNhL35vei9oYXNoLmh0bWxcbi8vIE1vcmUgc3BlY2lmaWNhbGx5LCAzMi1iaXQgaGFzaCB2aWEgZGpieG9yXG4vLyAocmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9lcGxhd2xlc3MvNTI4MTNiMWQ4YWQ5YWY1MTBkODU/cGVybWFsaW5rX2NvbW1lbnRfaWQ9MzM2Nzc2NSNnaXN0Y29tbWVudC0zMzY3NzY1KVxuLy8gVGhpcyBpcyBkdWUgdG8gbnVtYmVyIHR5cGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBydXN0IGZvciB0dXJib3BhY2sgdG8ganMgbnVtYmVyIHR5cGVzLFxuLy8gd2hlcmUgcnVzdCBkb2VzIG5vdCBoYXZlIGVhc3kgd2F5IHRvIHJlcHJlZXNudCBqcydzIDUzLWJpdCBmbG9hdCBudW1iZXIgdHlwZSBmb3IgdGhlIG1hdGNoaW5nXG4vLyBvdmVyZmxvdyBiZWhhdmlvci4gVGhpcyBpcyBtb3JlIGBjb3JyZWN0YCBpbiB0ZXJtcyBvZiBoYXZpbmcgY2Fub25pY2FsIGhhc2ggYWNyb3NzIGRpZmZlcmVudCBydW50aW1lIC8gaW1wbGVtZW50YXRpb25cbi8vIGFzIGNhbiBnYXVyYW50ZWUgZGV0ZXJtaW5zdGljIG91dHB1dCBmcm9tIDMyYml0IGhhc2guXG5leHBvcnQgZnVuY3Rpb24gZGpiMkhhc2goc3RyKSB7XG4gICAgbGV0IGhhc2ggPSA1MzgxO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBjaGFyID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSArIGhhc2ggKyBjaGFyICYgMHhmZmZmZmZmZjtcbiAgICB9XG4gICAgcmV0dXJuIGhhc2ggPj4+IDA7XG59XG5leHBvcnQgZnVuY3Rpb24gaGV4SGFzaChzdHIpIHtcbiAgICByZXR1cm4gZGpiMkhhc2goc3RyKS50b1N0cmluZygzNikuc2xpY2UoMCwgNSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhc2guanMubWFwIl0sIm5hbWVzIjpbImRqYjJIYXNoIiwic3RyIiwiaGFzaCIsImkiLCJsZW5ndGgiLCJjaGFyIiwiY2hhckNvZGVBdCIsImhleEhhc2giLCJ0b1N0cmluZyIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/hash.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/head-manager-context.shared-runtime.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/head-manager-context.shared-runtime.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeadManagerContext: () => (/* binding */ HeadManagerContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nconst HeadManagerContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext({});\nif (true) {\n HeadManagerContext.displayName = \"HeadManagerContext\";\n} //# sourceMappingURL=head-manager-context.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMEI7QUFDbkIsTUFBTUMsbUNBQXFCRCwwREFBbUIsQ0FBQyxDQUFDLEdBQUc7QUFDMUQsSUFBSUcsSUFBcUMsRUFBRTtJQUN2Q0YsbUJBQW1CRyxXQUFXLEdBQUc7QUFDckMsRUFFQSwrREFBK0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanM/Y2RhMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgY29uc3QgSGVhZE1hbmFnZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgSGVhZE1hbmFnZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJIZWFkTWFuYWdlckNvbnRleHRcIjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVhZC1tYW5hZ2VyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMubWFwIl0sIm5hbWVzIjpbIlJlYWN0IiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsInByb2Nlc3MiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/head-manager-context.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/head.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/head.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ defaultHead: () => (/* binding */ defaultHead)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _side_effect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./side-effect */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/side-effect.js\");\n/* harmony import */ var _amp_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./amp-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/amp-context.shared-runtime.js\");\n/* harmony import */ var _head_manager_context_shared_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/head-manager-context.shared-runtime.js\");\n/* harmony import */ var _amp_mode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./amp-mode */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/amp-mode.js\");\n/* harmony import */ var _utils_warn_once__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/warn-once */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js\");\n/* __next_internal_client_entry_do_not_use__ defaultHead,default auto */ \n\n\n\n\n\n\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n charSet: \"utf-8\"\n })\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === \"string\" || typeof child === \"number\") {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === (react__WEBPACK_IMPORTED_MODULE_1___default().Fragment)) {\n return list.concat(react__WEBPACK_IMPORTED_MODULE_1___default().Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === \"string\" || typeof fragmentChild === \"number\") {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n \"name\",\n \"httpEquiv\",\n \"charSet\",\n \"itemProp\"\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== \"number\" && h.key.indexOf(\"$\") > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf(\"$\") + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case \"title\":\n case \"base\":\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case \"meta\":\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === \"charSet\") {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== \"name\" || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (false) {}\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === \"script\" && c.props[\"type\"] !== \"application/ld+json\") {\n const srcMessage = c.props[\"src\"] ? '<script> tag with src=\"' + c.props[\"src\"] + '\"' : \"inline <script>\";\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_6__.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === \"link\" && c.props[\"rel\"] === \"stylesheet\") {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_6__.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props[\"href\"] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_amp_context_shared_runtime__WEBPACK_IMPORTED_MODULE_3__.AmpStateContext);\n const headManager = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_head_manager_context_shared_runtime__WEBPACK_IMPORTED_MODULE_4__.HeadManagerContext);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_side_effect__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0,_amp_mode__WEBPACK_IMPORTED_MODULE_5__.isInAmpMode)(ampState),\n children: children\n });\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Head); //# sourceMappingURL=head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9oZWFkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7eUVBRWdEO0FBQ047QUFDUDtBQUM0QjtBQUNZO0FBQ2xDO0FBQ0k7QUFDdEMsU0FBU1MsWUFBWUMsU0FBUztJQUNqQyxJQUFJQSxjQUFjLEtBQUssR0FBR0EsWUFBWTtJQUN0QyxNQUFNQyxPQUFPO1FBQ1QsV0FBVyxHQUFHVixzREFBSUEsQ0FBQyxRQUFRO1lBQ3ZCVyxTQUFTO1FBQ2I7S0FDSDtJQUNELElBQUksQ0FBQ0YsV0FBVztRQUNaQyxLQUFLRSxJQUFJLENBQUMsV0FBVyxHQUFHWixzREFBSUEsQ0FBQyxRQUFRO1lBQ2pDYSxNQUFNO1lBQ05DLFNBQVM7UUFDYjtJQUNKO0lBQ0EsT0FBT0o7QUFDWDtBQUNBLFNBQVNLLGlCQUFpQkMsSUFBSSxFQUFFQyxLQUFLO0lBQ2pDLDhGQUE4RjtJQUM5RixJQUFJLE9BQU9BLFVBQVUsWUFBWSxPQUFPQSxVQUFVLFVBQVU7UUFDeEQsT0FBT0Q7SUFDWDtJQUNBLGtDQUFrQztJQUNsQyxJQUFJQyxNQUFNQyxJQUFJLEtBQUtqQix1REFBYyxFQUFFO1FBQy9CLE9BQU9lLEtBQUtJLE1BQU0sQ0FDbEJuQixxREFBYyxDQUFDcUIsT0FBTyxDQUFDTCxNQUFNTSxLQUFLLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxDQUNuRCxDQUFDQyxjQUFjQztZQUNYLElBQUksT0FBT0Esa0JBQWtCLFlBQVksT0FBT0Esa0JBQWtCLFVBQVU7Z0JBQ3hFLE9BQU9EO1lBQ1g7WUFDQSxPQUFPQSxhQUFhTixNQUFNLENBQUNPO1FBQy9CLEdBQUcsRUFBRTtJQUNUO0lBQ0EsT0FBT1gsS0FBS0ksTUFBTSxDQUFDSDtBQUN2QjtBQUNBLE1BQU1XLFlBQVk7SUFDZDtJQUNBO0lBQ0E7SUFDQTtDQUNIO0FBQ0Q7Ozs7QUFJQSxHQUFHLFNBQVNDO0lBQ1IsTUFBTUMsT0FBTyxJQUFJQztJQUNqQixN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O1FBQ0o7UUFDQSxPQUFPLFdBQVcsR0FBR3RCLHlEQUFrQixDQUFDc0QsR0FBRztZQUN2Q2pCO1FBQ0o7SUFDSjtBQUNKO0FBQ0E7OztDQUdDLEdBQUcsU0FBUzRCLEtBQUtDLEtBQUs7SUFDbkIsSUFBSSxFQUFFM0MsUUFBUSxFQUFFLEdBQUcyQztJQUNuQixNQUFNQyxXQUFXbEUsaURBQVVBLENBQUNFLHdFQUFlQTtJQUMzQyxNQUFNaUUsY0FBY25FLGlEQUFVQSxDQUFDRyxvRkFBa0JBO0lBQ2pELE9BQU8sV0FBVyxHQUFHTCxzREFBSUEsQ0FBQ0csb0RBQU1BLEVBQUU7UUFDOUJtRSx5QkFBeUJwQjtRQUN6Qm1CLGFBQWFBO1FBQ2I1RCxXQUFXSCxzREFBV0EsQ0FBQzhEO1FBQ3ZCNUMsVUFBVUE7SUFDZDtBQUNKO0FBQ0EsaUVBQWUwQyxJQUFJQSxFQUFDLENBRXBCLGdDQUFnQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9oZWFkLmpzPzE1MzkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEVmZmVjdCBmcm9tIFwiLi9zaWRlLWVmZmVjdFwiO1xuaW1wb3J0IHsgQW1wU3RhdGVDb250ZXh0IH0gZnJvbSBcIi4vYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbmltcG9ydCB7IEhlYWRNYW5hZ2VyQ29udGV4dCB9IGZyb20gXCIuL2hlYWQtbWFuYWdlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCI7XG5pbXBvcnQgeyBpc0luQW1wTW9kZSB9IGZyb20gXCIuL2FtcC1tb2RlXCI7XG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gXCIuL3V0aWxzL3dhcm4tb25jZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRIZWFkKGluQW1wTW9kZSkge1xuICAgIGlmIChpbkFtcE1vZGUgPT09IHZvaWQgMCkgaW5BbXBNb2RlID0gZmFsc2U7XG4gICAgY29uc3QgaGVhZCA9IFtcbiAgICAgICAgLyojX19QVVJFX18qLyBfanN4KFwibWV0YVwiLCB7XG4gICAgICAgICAgICBjaGFyU2V0OiBcInV0Zi04XCJcbiAgICAgICAgfSlcbiAgICBdO1xuICAgIGlmICghaW5BbXBNb2RlKSB7XG4gICAgICAgIGhlYWQucHVzaCgvKiNfX1BVUkVfXyovIF9qc3goXCJtZXRhXCIsIHtcbiAgICAgICAgICAgIG5hbWU6IFwidmlld3BvcnRcIixcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwid2lkdGg9ZGV2aWNlLXdpZHRoXCJcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZDtcbn1cbmZ1bmN0aW9uIG9ubHlSZWFjdEVsZW1lbnQobGlzdCwgY2hpbGQpIHtcbiAgICAvLyBSZWFjdCBjaGlsZHJlbiBjYW4gYmUgXCJzdHJpbmdcIiBvciBcIm51bWJlclwiIGluIHRoaXMgY2FzZSB3ZSBpZ25vcmUgdGhlbSBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICAgIGlmICh0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGNoaWxkID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdCgvLyBAdHMtZXhwZWN0LWVycm9yIEB0eXBlcy9yZWFjdCBkb2VzIG5vdCByZW1vdmUgZnJhZ21lbnRzIGJ1dCB0aGlzIGNvdWxkIGFsc28gcmV0dXJuIFJlYWN0UG9ydGFsW11cbiAgICAgICAgUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZC5wcm9wcy5jaGlsZHJlbikucmVkdWNlKC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgICAoZnJhZ21lbnRMaXN0LCBmcmFnbWVudENoaWxkKT0+e1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBmcmFnbWVudENoaWxkID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBmcmFnbWVudENoaWxkID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpO1xuICAgICAgICB9LCBbXSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xufVxuY29uc3QgTUVUQVRZUEVTID0gW1xuICAgIFwibmFtZVwiLFxuICAgIFwiaHR0cEVxdWl2XCIsXG4gICAgXCJjaGFyU2V0XCIsXG4gICAgXCJpdGVtUHJvcFwiXG5dO1xuLypcbiByZXR1cm5zIGEgZnVuY3Rpb24gZm9yIGZpbHRlcmluZyBoZWFkIGNoaWxkIGVsZW1lbnRzXG4gd2hpY2ggc2hvdWxkbid0IGJlIGR1cGxpY2F0ZWQsIGxpa2UgPHRpdGxlLz5cbiBBbHNvIGFkZHMgc3VwcG9ydCBmb3IgZGVkdXBsaWNhdGVkIGBrZXlgIHByb3BlcnRpZXNcbiovIGZ1bmN0aW9uIHVuaXF1ZSgpIHtcbiAgICBjb25zdCBrZXlzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHRhZ3MgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgbWV0YVR5cGVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IG1ldGFDYXRlZ29yaWVzID0ge307XG4gICAgcmV0dXJuIChoKT0+e1xuICAgICAgICBsZXQgaXNVbmlxdWUgPSB0cnVlO1xuICAgICAgICBsZXQgaGFzS2V5ID0gZmFsc2U7XG4gICAgICAgIGlmIChoLmtleSAmJiB0eXBlb2YgaC5rZXkgIT09IFwibnVtYmVyXCIgJiYgaC5rZXkuaW5kZXhPZihcIiRcIikgPiAwKSB7XG4gICAgICAgICAgICBoYXNLZXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZihcIiRcIikgKyAxKTtcbiAgICAgICAgICAgIGlmIChrZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAga2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG4gICAgICAgIHN3aXRjaChoLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSBcInRpdGxlXCI6XG4gICAgICAgICAgICBjYXNlIFwiYmFzZVwiOlxuICAgICAgICAgICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFncy5hZGQoaC50eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibWV0YVwiOlxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDAsIGxlbiA9IE1FVEFUWVBFUy5sZW5ndGg7IGkgPCBsZW47IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1ldGF0eXBlID0gTUVUQVRZUEVTW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWgucHJvcHMuaGFzT3duUHJvcGVydHkobWV0YXR5cGUpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGF0eXBlID09PSBcImNoYXJTZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGFUeXBlcy5oYXMobWV0YXR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVR5cGVzLmFkZChtZXRhdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGgucHJvcHNbbWV0YXR5cGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IG1ldGFDYXRlZ29yaWVzW21ldGF0eXBlXSB8fCBuZXcgU2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKG1ldGF0eXBlICE9PSBcIm5hbWVcIiB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNVbmlxdWU7XG4gICAgfTtcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkQ2hpbGRyZW5FbGVtZW50cyBMaXN0IG9mIGNoaWxkcmVuIG9mIDxIZWFkPlxuICovIGZ1bmN0aW9uIHJlZHVjZUNvbXBvbmVudHMoaGVhZENoaWxkcmVuRWxlbWVudHMsIHByb3BzKSB7XG4gICAgY29uc3QgeyBpbkFtcE1vZGUgfSA9IHByb3BzO1xuICAgIHJldHVybiBoZWFkQ2hpbGRyZW5FbGVtZW50cy5yZWR1Y2Uob25seVJlYWN0RWxlbWVudCwgW10pLnJldmVyc2UoKS5jb25jYXQoZGVmYXVsdEhlYWQoaW5BbXBNb2RlKS5yZXZlcnNlKCkpLmZpbHRlcih1bmlxdWUoKSkucmV2ZXJzZSgpLm1hcCgoYywgaSk9PntcbiAgICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcImRldmVsb3BtZW50XCIgJiYgcHJvY2Vzcy5lbnYuX19ORVhUX09QVElNSVpFX0ZPTlRTICYmICFpbkFtcE1vZGUpIHtcbiAgICAgICAgICAgIGlmIChjLnR5cGUgPT09IFwibGlua1wiICYmIGMucHJvcHNbXCJocmVmXCJdICYmIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3NcIixcbiAgICAgICAgICAgICAgICBcImh0dHBzOi8vdXNlLnR5cGVraXQubmV0L1wiXG4gICAgICAgICAgICBdLnNvbWUoKHVybCk9PmMucHJvcHNbXCJocmVmXCJdLnN0YXJ0c1dpdGgodXJsKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYy5wcm9wcyB8fCB7fVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbXCJkYXRhLWhyZWZcIl0gPSBuZXdQcm9wc1tcImhyZWZcIl07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbXCJocmVmXCJdID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IGVhc3kgdG8gaWRlbnRpZnkgb3B0aW1pemVkIHRhZ3NcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1tcImRhdGEtb3B0aW1pemVkLWZvbnRzXCJdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jbG9uZUVsZW1lbnQoYywgbmV3UHJvcHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgICAgICAvLyBvbWl0IEpTT04tTEQgc3RydWN0dXJlZCBkYXRhIHNuaXBwZXRzIGZyb20gdGhlIHdhcm5pbmdcbiAgICAgICAgICAgIGlmIChjLnR5cGUgPT09IFwic2NyaXB0XCIgJiYgYy5wcm9wc1tcInR5cGVcIl0gIT09IFwiYXBwbGljYXRpb24vbGQranNvblwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3JjTWVzc2FnZSA9IGMucHJvcHNbXCJzcmNcIl0gPyAnPHNjcmlwdD4gdGFnIHdpdGggc3JjPVwiJyArIGMucHJvcHNbXCJzcmNcIl0gKyAnXCInIDogXCJpbmxpbmUgPHNjcmlwdD5cIjtcbiAgICAgICAgICAgICAgICB3YXJuT25jZShcIkRvIG5vdCBhZGQgPHNjcmlwdD4gdGFncyB1c2luZyBuZXh0L2hlYWQgKHNlZSBcIiArIHNyY01lc3NhZ2UgKyBcIikuIFVzZSBuZXh0L3NjcmlwdCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXNjcmlwdC10YWdzLWluLWhlYWQtY29tcG9uZW50XCIpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjLnR5cGUgPT09IFwibGlua1wiICYmIGMucHJvcHNbXCJyZWxcIl0gPT09IFwic3R5bGVzaGVldFwiKSB7XG4gICAgICAgICAgICAgICAgd2Fybk9uY2UoJ0RvIG5vdCBhZGQgc3R5bGVzaGVldHMgdXNpbmcgbmV4dC9oZWFkIChzZWUgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiPiB0YWcgd2l0aCBocmVmPVwiJyArIGMucHJvcHNbXCJocmVmXCJdICsgJ1wiKS4gVXNlIERvY3VtZW50IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc3R5bGVzaGVldHMtaW4taGVhZC1jb21wb25lbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jbG9uZUVsZW1lbnQoYywge1xuICAgICAgICAgICAga2V5XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpbmplY3RzIGVsZW1lbnRzIHRvIGA8aGVhZD5gIG9mIHlvdXIgcGFnZS5cbiAqIFRvIGF2b2lkIGR1cGxpY2F0ZWQgYHRhZ3NgIGluIGA8aGVhZD5gIHlvdSBjYW4gdXNlIHRoZSBga2V5YCBwcm9wZXJ0eSwgd2hpY2ggd2lsbCBtYWtlIHN1cmUgZXZlcnkgdGFnIGlzIG9ubHkgcmVuZGVyZWQgb25jZS5cbiAqLyBmdW5jdGlvbiBIZWFkKHBhcmFtKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4gfSA9IHBhcmFtO1xuICAgIGNvbnN0IGFtcFN0YXRlID0gdXNlQ29udGV4dChBbXBTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IGhlYWRNYW5hZ2VyID0gdXNlQ29udGV4dChIZWFkTWFuYWdlckNvbnRleHQpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goRWZmZWN0LCB7XG4gICAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiByZWR1Y2VDb21wb25lbnRzLFxuICAgICAgICBoZWFkTWFuYWdlcjogaGVhZE1hbmFnZXIsXG4gICAgICAgIGluQW1wTW9kZTogaXNJbkFtcE1vZGUoYW1wU3RhdGUpLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICB9KTtcbn1cbmV4cG9ydCBkZWZhdWx0IEhlYWQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQuanMubWFwIl0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJSZWFjdCIsInVzZUNvbnRleHQiLCJFZmZlY3QiLCJBbXBTdGF0ZUNvbnRleHQiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJpc0luQW1wTW9kZSIsIndhcm5PbmNlIiwiZGVmYXVsdEhlYWQiLCJpbkFtcE1vZGUiLCJoZWFkIiwiY2hhclNldCIsInB1c2giLCJuYW1lIiwiY29udGVudCIsIm9ubHlSZWFjdEVsZW1lbnQiLCJsaXN0IiwiY2hpbGQiLCJ0eXBlIiwiRnJhZ21lbnQiLCJjb25jYXQiLCJDaGlsZHJlbiIsInRvQXJyYXkiLCJwcm9wcyIsImNoaWxkcmVuIiwicmVkdWNlIiwiZnJhZ21lbnRMaXN0IiwiZnJhZ21lbnRDaGlsZCIsIk1FVEFUWVBFUyIsInVuaXF1ZSIsImtleXMiLCJTZXQiLCJ0YWdzIiwibWV0YVR5cGVzIiwibWV0YUNhdGVnb3JpZXMiLCJoIiwiaXNVbmlxdWUiLCJoYXNLZXkiLCJrZXkiLCJpbmRleE9mIiwic2xpY2UiLCJoYXMiLCJhZGQiLCJpIiwibGVuIiwibGVuZ3RoIiwibWV0YXR5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhdGVnb3J5IiwiY2F0ZWdvcmllcyIsInJlZHVjZUNvbXBvbmVudHMiLCJoZWFkQ2hpbGRyZW5FbGVtZW50cyIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJzcmNNZXNzYWdlIiwiSGVhZCIsInBhcmFtIiwiYW1wU3RhdGUiLCJoZWFkTWFuYWdlciIsInJlZHVjZUNvbXBvbmVudHNUb1N0YXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/head.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PathParamsContext: () => (/* binding */ PathParamsContext),\n/* harmony export */ PathnameContext: () => (/* binding */ PathnameContext),\n/* harmony export */ SearchParamsContext: () => (/* binding */ SearchParamsContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ SearchParamsContext,PathnameContext,PathParamsContext auto */ \nconst SearchParamsContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\nconst PathnameContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\nconst PathParamsContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\nif (true) {\n SearchParamsContext.displayName = \"SearchParamsContext\";\n PathnameContext.displayName = \"PathnameContext\";\n PathParamsContext.displayName = \"PathParamsContext\";\n} //# sourceMappingURL=hooks-client-context.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OzsyR0FFc0M7QUFDL0IsTUFBTUMsb0NBQXNCRCxvREFBYUEsQ0FBQyxNQUFNO0FBQ2hELE1BQU1FLGdDQUFrQkYsb0RBQWFBLENBQUMsTUFBTTtBQUM1QyxNQUFNRyxrQ0FBb0JILG9EQUFhQSxDQUFDLE1BQU07QUFDckQsSUFBSUksSUFBcUMsRUFBRTtJQUN2Q0gsb0JBQW9CSSxXQUFXLEdBQUc7SUFDbENILGdCQUFnQkcsV0FBVyxHQUFHO0lBQzlCRixrQkFBa0JFLFdBQVcsR0FBRztBQUNwQyxFQUVBLCtEQUErRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZS5qcz8zZWRlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgY29uc3QgU2VhcmNoUGFyYW1zQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQobnVsbCk7XG5leHBvcnQgY29uc3QgUGF0aG5hbWVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcbmV4cG9ydCBjb25zdCBQYXRoUGFyYW1zQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQobnVsbCk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgU2VhcmNoUGFyYW1zQ29udGV4dC5kaXNwbGF5TmFtZSA9IFwiU2VhcmNoUGFyYW1zQ29udGV4dFwiO1xuICAgIFBhdGhuYW1lQ29udGV4dC5kaXNwbGF5TmFtZSA9IFwiUGF0aG5hbWVDb250ZXh0XCI7XG4gICAgUGF0aFBhcmFtc0NvbnRleHQuZGlzcGxheU5hbWUgPSBcIlBhdGhQYXJhbXNDb250ZXh0XCI7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVDb250ZXh0IiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsIlBhdGhuYW1lQ29udGV4dCIsIlBhdGhQYXJhbXNDb250ZXh0IiwicHJvY2VzcyIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/html-context.shared-runtime.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/html-context.shared-runtime.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HtmlContext: () => (/* binding */ HtmlContext),\n/* harmony export */ useHtmlContext: () => (/* binding */ useHtmlContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nconst HtmlContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(undefined);\nif (true) {\n HtmlContext.displayName = \"HtmlContext\";\n}\nfunction useHtmlContext() {\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(HtmlContext);\n if (!context) {\n throw new Error(\"<Html> should not be imported outside of pages/_document.\\n\" + \"Read more: https://nextjs.org/docs/messages/no-document-import-in-page\");\n }\n return context;\n} //# sourceMappingURL=html-context.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFrRDtBQUMzQyxNQUFNRSw0QkFBY0Ysb0RBQWFBLENBQUNHLFdBQVc7QUFDcEQsSUFBSUMsSUFBcUMsRUFBRTtJQUN2Q0YsWUFBWUcsV0FBVyxHQUFHO0FBQzlCO0FBQ08sU0FBU0M7SUFDWixNQUFNQyxVQUFVTixpREFBVUEsQ0FBQ0M7SUFDM0IsSUFBSSxDQUFDSyxTQUFTO1FBQ1YsTUFBTSxJQUFJQyxNQUFNLGdFQUFnRTtJQUNwRjtJQUNBLE9BQU9EO0FBQ1gsRUFFQSx1REFBdUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lLmpzP2U4ZGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IGNvbnN0IEh0bWxDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIEh0bWxDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJIdG1sQ29udGV4dFwiO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUh0bWxDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEh0bWxDb250ZXh0KTtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiPEh0bWw+IHNob3VsZCBub3QgYmUgaW1wb3J0ZWQgb3V0c2lkZSBvZiBwYWdlcy9fZG9jdW1lbnQuXFxuXCIgKyBcIlJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tZG9jdW1lbnQtaW1wb3J0LWluLXBhZ2VcIik7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMubWFwIl0sIm5hbWVzIjpbImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwiSHRtbENvbnRleHQiLCJ1bmRlZmluZWQiLCJwcm9jZXNzIiwiZGlzcGxheU5hbWUiLCJ1c2VIdG1sQ29udGV4dCIsImNvbnRleHQiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/html-context.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ detectDomainLocale: () => (/* binding */ detectDomainLocale)\n/* harmony export */ });\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(\":\", 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n} //# sourceMappingURL=detect-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxTQUFTQSxtQkFBbUJDLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxjQUFjO0lBQ3BFLElBQUksQ0FBQ0YsYUFBYTtJQUNsQixJQUFJRSxnQkFBZ0I7UUFDaEJBLGlCQUFpQkEsZUFBZUMsV0FBVztJQUMvQztJQUNBLEtBQUssTUFBTUMsUUFBUUosWUFBWTtRQUMzQixJQUFJSyxjQUFjQztRQUNsQix5QkFBeUI7UUFDekIsTUFBTUMsaUJBQWlCLENBQUNGLGVBQWVELEtBQUtJLE1BQU0sS0FBSyxPQUFPLEtBQUssSUFBSUgsYUFBYUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQ04sV0FBVztRQUNoSCxJQUFJRixhQUFhTSxrQkFBa0JMLG1CQUFtQkUsS0FBS00sYUFBYSxDQUFDUCxXQUFXLE1BQU8sRUFBQ0csZ0JBQWdCRixLQUFLTyxPQUFPLEtBQUssT0FBTyxLQUFLLElBQUlMLGNBQWNNLElBQUksQ0FBQyxDQUFDQyxTQUFTQSxPQUFPVixXQUFXLE9BQU9ELGVBQWMsR0FBSTtZQUNqTixPQUFPRTtRQUNYO0lBQ0o7QUFDSixFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlLmpzPzY0ZWQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRldGVjdERvbWFpbkxvY2FsZShkb21haW5JdGVtcywgaG9zdG5hbWUsIGRldGVjdGVkTG9jYWxlKSB7XG4gICAgaWYgKCFkb21haW5JdGVtcykgcmV0dXJuO1xuICAgIGlmIChkZXRlY3RlZExvY2FsZSkge1xuICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGRldGVjdGVkTG9jYWxlLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBkb21haW5JdGVtcyl7XG4gICAgICAgIHZhciBfaXRlbV9kb21haW4sIF9pdGVtX2xvY2FsZXM7XG4gICAgICAgIC8vIHJlbW92ZSBwb3J0IGlmIHByZXNlbnRcbiAgICAgICAgY29uc3QgZG9tYWluSG9zdG5hbWUgPSAoX2l0ZW1fZG9tYWluID0gaXRlbS5kb21haW4pID09IG51bGwgPyB2b2lkIDAgOiBfaXRlbV9kb21haW4uc3BsaXQoXCI6XCIsIDEpWzBdLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChob3N0bmFtZSA9PT0gZG9tYWluSG9zdG5hbWUgfHwgZGV0ZWN0ZWRMb2NhbGUgPT09IGl0ZW0uZGVmYXVsdExvY2FsZS50b0xvd2VyQ2FzZSgpIHx8ICgoX2l0ZW1fbG9jYWxlcyA9IGl0ZW0ubG9jYWxlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9pdGVtX2xvY2FsZXMuc29tZSgobG9jYWxlKT0+bG9jYWxlLnRvTG93ZXJDYXNlKCkgPT09IGRldGVjdGVkTG9jYWxlKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZXRlY3QtZG9tYWluLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiZGV0ZWN0RG9tYWluTG9jYWxlIiwiZG9tYWluSXRlbXMiLCJob3N0bmFtZSIsImRldGVjdGVkTG9jYWxlIiwidG9Mb3dlckNhc2UiLCJpdGVtIiwiX2l0ZW1fZG9tYWluIiwiX2l0ZW1fbG9jYWxlcyIsImRvbWFpbkhvc3RuYW1lIiwiZG9tYWluIiwic3BsaXQiLCJkZWZhdWx0TG9jYWxlIiwibG9jYWxlcyIsInNvbWUiLCJsb2NhbGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeLocalePath: () => (/* binding */ normalizeLocalePath)\n/* harmony export */ });\n/**\n * For a pathname that may include a locale from a list of locales, it\n * removes the locale from the pathname returning it alongside with the\n * detected locale.\n *\n * @param pathname A pathname that may include a locale.\n * @param locales A list of locales.\n * @returns The detected locale and pathname without locale\n */ function normalizeLocalePath(pathname, locales) {\n let detectedLocale;\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split(\"/\");\n (locales || []).some((locale)=>{\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join(\"/\") || \"/\";\n return true;\n }\n return false;\n });\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTQSxvQkFBb0JDLFFBQVEsRUFBRUMsT0FBTztJQUNyRCxJQUFJQztJQUNKLCtEQUErRDtJQUMvRCxNQUFNQyxnQkFBZ0JILFNBQVNJLEtBQUssQ0FBQztJQUNwQ0gsQ0FBQUEsV0FBVyxFQUFFLEVBQUVJLElBQUksQ0FBQyxDQUFDQztRQUNsQixJQUFJSCxhQUFhLENBQUMsRUFBRSxJQUFJQSxhQUFhLENBQUMsRUFBRSxDQUFDSSxXQUFXLE9BQU9ELE9BQU9DLFdBQVcsSUFBSTtZQUM3RUwsaUJBQWlCSTtZQUNqQkgsY0FBY0ssTUFBTSxDQUFDLEdBQUc7WUFDeEJSLFdBQVdHLGNBQWNNLElBQUksQ0FBQyxRQUFRO1lBQ3RDLE9BQU87UUFDWDtRQUNBLE9BQU87SUFDWDtJQUNBLE9BQU87UUFDSFQ7UUFDQUU7SUFDSjtBQUNKLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzP2QyOWUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlIGZyb20gYSBsaXN0IG9mIGxvY2FsZXMsIGl0XG4gKiByZW1vdmVzIHRoZSBsb2NhbGUgZnJvbSB0aGUgcGF0aG5hbWUgcmV0dXJuaW5nIGl0IGFsb25nc2lkZSB3aXRoIHRoZVxuICogZGV0ZWN0ZWQgbG9jYWxlLlxuICpcbiAqIEBwYXJhbSBwYXRobmFtZSBBIHBhdGhuYW1lIHRoYXQgbWF5IGluY2x1ZGUgYSBsb2NhbGUuXG4gKiBAcGFyYW0gbG9jYWxlcyBBIGxpc3Qgb2YgbG9jYWxlcy5cbiAqIEByZXR1cm5zIFRoZSBkZXRlY3RlZCBsb2NhbGUgYW5kIHBhdGhuYW1lIHdpdGhvdXQgbG9jYWxlXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWUsIGxvY2FsZXMpIHtcbiAgICBsZXQgZGV0ZWN0ZWRMb2NhbGU7XG4gICAgLy8gZmlyc3QgaXRlbSB3aWxsIGJlIGVtcHR5IHN0cmluZyBmcm9tIHNwbGl0dGluZyBhdCBmaXJzdCBjaGFyXG4gICAgY29uc3QgcGF0aG5hbWVQYXJ0cyA9IHBhdGhuYW1lLnNwbGl0KFwiL1wiKTtcbiAgICAobG9jYWxlcyB8fCBbXSkuc29tZSgobG9jYWxlKT0+e1xuICAgICAgICBpZiAocGF0aG5hbWVQYXJ0c1sxXSAmJiBwYXRobmFtZVBhcnRzWzFdLnRvTG93ZXJDYXNlKCkgPT09IGxvY2FsZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHBhdGhuYW1lUGFydHMuc3BsaWNlKDEsIDEpO1xuICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZVBhcnRzLmpvaW4oXCIvXCIpIHx8IFwiL1wiO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBkZXRlY3RlZExvY2FsZVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsibm9ybWFsaXplTG9jYWxlUGF0aCIsInBhdGhuYW1lIiwibG9jYWxlcyIsImRldGVjdGVkTG9jYWxlIiwicGF0aG5hbWVQYXJ0cyIsInNwbGl0Iiwic29tZSIsImxvY2FsZSIsInRvTG93ZXJDYXNlIiwic3BsaWNlIiwiam9pbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/image-blur-svg.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/image-blur-svg.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getImageBlurSvg: () => (/* binding */ getImageBlurSvg)\n/* harmony export */ });\n/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */ function getImageBlurSvg(param) {\n let { widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit } = param;\n const std = 20;\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt;\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt;\n const viewBox = svgWidth && svgHeight ? \"viewBox='0 0 \" + svgWidth + \" \" + svgHeight + \"'\" : \"\";\n const preserveAspectRatio = viewBox ? \"none\" : objectFit === \"contain\" ? \"xMidYMid\" : objectFit === \"cover\" ? \"xMidYMid slice\" : \"none\";\n return \"%3Csvg xmlns='http://www.w3.org/2000/svg' \" + viewBox + \"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='\" + preserveAspectRatio + \"' style='filter: url(%23b);' href='\" + blurDataURL + \"'/%3E%3C/svg%3E\";\n} //# sourceMappingURL=image-blur-svg.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1ibHVyLXN2Zy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0NBRUMsR0FBVSxTQUFTQSxnQkFBZ0JDLEtBQUs7SUFDckMsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsU0FBUyxFQUFFLEdBQUdOO0lBQzdFLE1BQU1PLE1BQU07SUFDWixNQUFNQyxXQUFXTCxZQUFZQSxZQUFZLEtBQUtGO0lBQzlDLE1BQU1RLFlBQVlMLGFBQWFBLGFBQWEsS0FBS0Y7SUFDakQsTUFBTVEsVUFBVUYsWUFBWUMsWUFBWSxrQkFBa0JELFdBQVcsTUFBTUMsWUFBWSxNQUFNO0lBQzdGLE1BQU1FLHNCQUFzQkQsVUFBVSxTQUFTSixjQUFjLFlBQVksYUFBYUEsY0FBYyxVQUFVLG1CQUFtQjtJQUNqSSxPQUFPLCtDQUErQ0ksVUFBVSw4RkFBOEZILE1BQU0sb1FBQW9RQSxNQUFNLGdHQUFnR0ksc0JBQXNCLHdDQUF3Q04sY0FBYztBQUM5bEIsRUFFQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaW1hZ2UtYmx1ci1zdmcuanM/NmUxOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgc2hhcmVkIGZ1bmN0aW9uLCB1c2VkIG9uIGJvdGggY2xpZW50IGFuZCBzZXJ2ZXIsIHRvIGdlbmVyYXRlIGEgU1ZHIGJsdXIgcGxhY2Vob2xkZXIuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldEltYWdlQmx1clN2ZyhwYXJhbSkge1xuICAgIGxldCB7IHdpZHRoSW50LCBoZWlnaHRJbnQsIGJsdXJXaWR0aCwgYmx1ckhlaWdodCwgYmx1ckRhdGFVUkwsIG9iamVjdEZpdCB9ID0gcGFyYW07XG4gICAgY29uc3Qgc3RkID0gMjA7XG4gICAgY29uc3Qgc3ZnV2lkdGggPSBibHVyV2lkdGggPyBibHVyV2lkdGggKiA0MCA6IHdpZHRoSW50O1xuICAgIGNvbnN0IHN2Z0hlaWdodCA9IGJsdXJIZWlnaHQgPyBibHVySGVpZ2h0ICogNDAgOiBoZWlnaHRJbnQ7XG4gICAgY29uc3Qgdmlld0JveCA9IHN2Z1dpZHRoICYmIHN2Z0hlaWdodCA/IFwidmlld0JveD0nMCAwIFwiICsgc3ZnV2lkdGggKyBcIiBcIiArIHN2Z0hlaWdodCArIFwiJ1wiIDogXCJcIjtcbiAgICBjb25zdCBwcmVzZXJ2ZUFzcGVjdFJhdGlvID0gdmlld0JveCA/IFwibm9uZVwiIDogb2JqZWN0Rml0ID09PSBcImNvbnRhaW5cIiA/IFwieE1pZFlNaWRcIiA6IG9iamVjdEZpdCA9PT0gXCJjb3ZlclwiID8gXCJ4TWlkWU1pZCBzbGljZVwiIDogXCJub25lXCI7XG4gICAgcmV0dXJuIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgXCIgKyB2aWV3Qm94ICsgXCIlM0UlM0NmaWx0ZXIgaWQ9J2InIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0nc1JHQiclM0UlM0NmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249J1wiICsgc3RkICsgXCInLyUzRSUzQ2ZlQ29sb3JNYXRyaXggdmFsdWVzPScxIDAgMCAwIDAgMCAxIDAgMCAwIDAgMCAxIDAgMCAwIDAgMCAxMDAgLTEnIHJlc3VsdD0ncycvJTNFJTNDZmVGbG9vZCB4PScwJyB5PScwJyB3aWR0aD0nMTAwJTI1JyBoZWlnaHQ9JzEwMCUyNScvJTNFJTNDZmVDb21wb3NpdGUgb3BlcmF0b3I9J291dCcgaW49J3MnLyUzRSUzQ2ZlQ29tcG9zaXRlIGluMj0nU291cmNlR3JhcGhpYycvJTNFJTNDZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSdcIiArIHN0ZCArIFwiJy8lM0UlM0MvZmlsdGVyJTNFJTNDaW1hZ2Ugd2lkdGg9JzEwMCUyNScgaGVpZ2h0PScxMDAlMjUnIHg9JzAnIHk9JzAnIHByZXNlcnZlQXNwZWN0UmF0aW89J1wiICsgcHJlc2VydmVBc3BlY3RSYXRpbyArIFwiJyBzdHlsZT0nZmlsdGVyOiB1cmwoJTIzYik7JyBocmVmPSdcIiArIGJsdXJEYXRhVVJMICsgXCInLyUzRSUzQy9zdmclM0VcIjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hZ2UtYmx1ci1zdmcuanMubWFwIl0sIm5hbWVzIjpbImdldEltYWdlQmx1clN2ZyIsInBhcmFtIiwid2lkdGhJbnQiLCJoZWlnaHRJbnQiLCJibHVyV2lkdGgiLCJibHVySGVpZ2h0IiwiYmx1ckRhdGFVUkwiLCJvYmplY3RGaXQiLCJzdGQiLCJzdmdXaWR0aCIsInN2Z0hlaWdodCIsInZpZXdCb3giLCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/image-blur-svg.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config-context.shared-runtime.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/image-config-context.shared-runtime.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ImageConfigContext: () => (/* binding */ ImageConfigContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _image_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./image-config */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config.js\");\n\n\nconst ImageConfigContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(_image_config__WEBPACK_IMPORTED_MODULE_1__.imageConfigDefault);\nif (true) {\n ImageConfigContext.displayName = \"ImageConfigContext\";\n} //# sourceMappingURL=image-config-context.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1jb25maWctY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTBCO0FBQzBCO0FBQzdDLE1BQU1FLG1DQUFxQkYsMERBQW1CLENBQUNDLDZEQUFrQkEsRUFBRTtBQUMxRSxJQUFJRyxJQUFxQyxFQUFFO0lBQ3ZDRixtQkFBbUJHLFdBQVcsR0FBRztBQUNyQyxFQUVBLCtEQUErRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1jb25maWctY29udGV4dC5zaGFyZWQtcnVudGltZS5qcz8yN2I5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGltYWdlQ29uZmlnRGVmYXVsdCB9IGZyb20gXCIuL2ltYWdlLWNvbmZpZ1wiO1xuZXhwb3J0IGNvbnN0IEltYWdlQ29uZmlnQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoaW1hZ2VDb25maWdEZWZhdWx0KTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBJbWFnZUNvbmZpZ0NvbnRleHQuZGlzcGxheU5hbWUgPSBcIkltYWdlQ29uZmlnQ29udGV4dFwiO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1jb25maWctY29udGV4dC5zaGFyZWQtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOlsiUmVhY3QiLCJpbWFnZUNvbmZpZ0RlZmF1bHQiLCJJbWFnZUNvbmZpZ0NvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwicHJvY2VzcyIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config-context.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/image-config.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VALID_LOADERS: () => (/* binding */ VALID_LOADERS),\n/* harmony export */ imageConfigDefault: () => (/* binding */ imageConfigDefault)\n/* harmony export */ });\nconst VALID_LOADERS = [\n \"default\",\n \"imgix\",\n \"cloudinary\",\n \"akamai\",\n \"custom\"\n];\nconst imageConfigDefault = {\n deviceSizes: [\n 640,\n 750,\n 828,\n 1080,\n 1200,\n 1920,\n 2048,\n 3840\n ],\n imageSizes: [\n 16,\n 32,\n 48,\n 64,\n 96,\n 128,\n 256,\n 384\n ],\n path: \"/_next/image\",\n loader: \"default\",\n loaderFile: \"\",\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: [\n \"image/webp\"\n ],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: \"script-src 'none'; frame-src 'none'; sandbox;\",\n contentDispositionType: \"inline\",\n remotePatterns: [],\n unoptimized: false\n}; //# sourceMappingURL=image-config.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1jb25maWcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxNQUFNQSxnQkFBZ0I7SUFDekI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDSyxNQUFNQyxxQkFBcUI7SUFDOUJDLGFBQWE7UUFDVDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0tBQ0g7SUFDREMsWUFBWTtRQUNSO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDSDtJQUNEQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsWUFBWTtJQUNaQyxTQUFTLEVBQUU7SUFDWEMscUJBQXFCO0lBQ3JCQyxpQkFBaUI7SUFDakJDLFNBQVM7UUFDTDtLQUNIO0lBQ0RDLHFCQUFxQjtJQUNyQkMsdUJBQXVCO0lBQ3ZCQyx3QkFBd0I7SUFDeEJDLGdCQUFnQixFQUFFO0lBQ2xCQyxhQUFhO0FBQ2pCLEVBQUUsQ0FFRix3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLmpzPzcyMDYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZBTElEX0xPQURFUlMgPSBbXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJpbWdpeFwiLFxuICAgIFwiY2xvdWRpbmFyeVwiLFxuICAgIFwiYWthbWFpXCIsXG4gICAgXCJjdXN0b21cIlxuXTtcbmV4cG9ydCBjb25zdCBpbWFnZUNvbmZpZ0RlZmF1bHQgPSB7XG4gICAgZGV2aWNlU2l6ZXM6IFtcbiAgICAgICAgNjQwLFxuICAgICAgICA3NTAsXG4gICAgICAgIDgyOCxcbiAgICAgICAgMTA4MCxcbiAgICAgICAgMTIwMCxcbiAgICAgICAgMTkyMCxcbiAgICAgICAgMjA0OCxcbiAgICAgICAgMzg0MFxuICAgIF0sXG4gICAgaW1hZ2VTaXplczogW1xuICAgICAgICAxNixcbiAgICAgICAgMzIsXG4gICAgICAgIDQ4LFxuICAgICAgICA2NCxcbiAgICAgICAgOTYsXG4gICAgICAgIDEyOCxcbiAgICAgICAgMjU2LFxuICAgICAgICAzODRcbiAgICBdLFxuICAgIHBhdGg6IFwiL19uZXh0L2ltYWdlXCIsXG4gICAgbG9hZGVyOiBcImRlZmF1bHRcIixcbiAgICBsb2FkZXJGaWxlOiBcIlwiLFxuICAgIGRvbWFpbnM6IFtdLFxuICAgIGRpc2FibGVTdGF0aWNJbWFnZXM6IGZhbHNlLFxuICAgIG1pbmltdW1DYWNoZVRUTDogNjAsXG4gICAgZm9ybWF0czogW1xuICAgICAgICBcImltYWdlL3dlYnBcIlxuICAgIF0sXG4gICAgZGFuZ2Vyb3VzbHlBbGxvd1NWRzogZmFsc2UsXG4gICAgY29udGVudFNlY3VyaXR5UG9saWN5OiBcInNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94O1wiLFxuICAgIGNvbnRlbnREaXNwb3NpdGlvblR5cGU6IFwiaW5saW5lXCIsXG4gICAgcmVtb3RlUGF0dGVybnM6IFtdLFxuICAgIHVub3B0aW1pemVkOiBmYWxzZVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hZ2UtY29uZmlnLmpzLm1hcCJdLCJuYW1lcyI6WyJWQUxJRF9MT0FERVJTIiwiaW1hZ2VDb25maWdEZWZhdWx0IiwiZGV2aWNlU2l6ZXMiLCJpbWFnZVNpemVzIiwicGF0aCIsImxvYWRlciIsImxvYWRlckZpbGUiLCJkb21haW5zIiwiZGlzYWJsZVN0YXRpY0ltYWdlcyIsIm1pbmltdW1DYWNoZVRUTCIsImZvcm1hdHMiLCJkYW5nZXJvdXNseUFsbG93U1ZHIiwiY29udGVudFNlY3VyaXR5UG9saWN5IiwiY29udGVudERpc3Bvc2l0aW9uVHlwZSIsInJlbW90ZVBhdHRlcm5zIiwidW5vcHRpbWl6ZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/image-config.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/image-loader.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/image-loader.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction defaultLoader(param) {\n let { config, src, width, quality } = param;\n if (true) {\n const missingValues = [];\n // these should always be provided but make sure they are\n if (!src) missingValues.push(\"src\");\n if (!width) missingValues.push(\"width\");\n if (missingValues.length > 0) {\n throw new Error(\"Next Image Optimization requires \" + missingValues.join(\", \") + \" to be provided. Make sure you pass them as props to the `next/image` component. Received: \" + JSON.stringify({\n src,\n width,\n quality\n }));\n }\n if (src.startsWith(\"//\")) {\n throw new Error('Failed to parse src \"' + src + '\" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)');\n }\n if (!src.startsWith(\"/\") && (config.domains || config.remotePatterns)) {\n let parsedSrc;\n try {\n parsedSrc = new URL(src);\n } catch (err) {\n console.error(err);\n throw new Error('Failed to parse src \"' + src + '\" on `next/image`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)');\n }\n if (false) {}\n }\n }\n return config.path + \"?url=\" + encodeURIComponent(src) + \"&w=\" + width + \"&q=\" + (quality || 75) + ( false ? 0 : \"\");\n}\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaultLoader); //# sourceMappingURL=image-loader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1sb2FkZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLGNBQWNDLEtBQUs7SUFDeEIsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUUsR0FBR0o7SUFDdEMsSUFBSUssSUFBcUMsRUFBRTtRQUN2QyxNQUFNQyxnQkFBZ0IsRUFBRTtRQUN4Qix5REFBeUQ7UUFDekQsSUFBSSxDQUFDSixLQUFLSSxjQUFjQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDSixPQUFPRyxjQUFjQyxJQUFJLENBQUM7UUFDL0IsSUFBSUQsY0FBY0UsTUFBTSxHQUFHLEdBQUc7WUFDMUIsTUFBTSxJQUFJQyxNQUFNLHNDQUFzQ0gsY0FBY0ksSUFBSSxDQUFDLFFBQVEsZ0dBQWdHQyxLQUFLQyxTQUFTLENBQUM7Z0JBQzVMVjtnQkFDQUM7Z0JBQ0FDO1lBQ0o7UUFDSjtRQUNBLElBQUlGLElBQUlXLFVBQVUsQ0FBQyxPQUFPO1lBQ3RCLE1BQU0sSUFBSUosTUFBTSwwQkFBMEJQLE1BQU07UUFDcEQ7UUFDQSxJQUFJLENBQUNBLElBQUlXLFVBQVUsQ0FBQyxRQUFTWixDQUFBQSxPQUFPYSxPQUFPLElBQUliLE9BQU9jLGNBQWMsR0FBRztZQUNuRSxJQUFJQztZQUNKLElBQUk7Z0JBQ0FBLFlBQVksSUFBSUMsSUFBSWY7WUFDeEIsRUFBRSxPQUFPZ0IsS0FBSztnQkFDVkMsUUFBUUMsS0FBSyxDQUFDRjtnQkFDZCxNQUFNLElBQUlULE1BQU0sMEJBQTBCUCxNQUFNO1lBQ3BEO1lBQ0EsSUFBSUcsS0FDK0IsRUFBRSxFQU1wQztRQUNMO0lBQ0o7SUFDQSxPQUFPSixPQUFPeUIsSUFBSSxHQUFHLFVBQVVDLG1CQUFtQnpCLE9BQU8sUUFBUUMsUUFBUSxRQUFTQyxDQUFBQSxXQUFXLEVBQUMsSUFBTUMsQ0FBQUEsTUFBOEIsR0FBRyxDQUF3QyxHQUFHLEVBQUM7QUFDckw7QUFDQSwrREFBK0Q7QUFDL0QsMkRBQTJEO0FBQzNETixjQUFjOEIsa0JBQWtCLEdBQUc7QUFDbkMsaUVBQWU5QixhQUFhQSxFQUFDLENBRTdCLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1sb2FkZXIuanM/NjRkNSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBkZWZhdWx0TG9hZGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgY29uZmlnLCBzcmMsIHdpZHRoLCBxdWFsaXR5IH0gPSBwYXJhbTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IG1pc3NpbmdWYWx1ZXMgPSBbXTtcbiAgICAgICAgLy8gdGhlc2Ugc2hvdWxkIGFsd2F5cyBiZSBwcm92aWRlZCBidXQgbWFrZSBzdXJlIHRoZXkgYXJlXG4gICAgICAgIGlmICghc3JjKSBtaXNzaW5nVmFsdWVzLnB1c2goXCJzcmNcIik7XG4gICAgICAgIGlmICghd2lkdGgpIG1pc3NpbmdWYWx1ZXMucHVzaChcIndpZHRoXCIpO1xuICAgICAgICBpZiAobWlzc2luZ1ZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOZXh0IEltYWdlIE9wdGltaXphdGlvbiByZXF1aXJlcyBcIiArIG1pc3NpbmdWYWx1ZXMuam9pbihcIiwgXCIpICsgXCIgdG8gYmUgcHJvdmlkZWQuIE1ha2Ugc3VyZSB5b3UgcGFzcyB0aGVtIGFzIHByb3BzIHRvIHRoZSBgbmV4dC9pbWFnZWAgY29tcG9uZW50LiBSZWNlaXZlZDogXCIgKyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICAgIHF1YWxpdHlcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3JjLnN0YXJ0c1dpdGgoXCIvL1wiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gcGFyc2Ugc3JjIFwiJyArIHNyYyArICdcIiBvbiBgbmV4dC9pbWFnZWAsIHByb3RvY29sLXJlbGF0aXZlIFVSTCAoLy8pIG11c3QgYmUgY2hhbmdlZCB0byBhbiBhYnNvbHV0ZSBVUkwgKGh0dHA6Ly8gb3IgaHR0cHM6Ly8pJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzcmMuc3RhcnRzV2l0aChcIi9cIikgJiYgKGNvbmZpZy5kb21haW5zIHx8IGNvbmZpZy5yZW1vdGVQYXR0ZXJucykpIHtcbiAgICAgICAgICAgIGxldCBwYXJzZWRTcmM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHBhcnNlZFNyYyA9IG5ldyBVUkwoc3JjKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSBzcmMgXCInICsgc3JjICsgJ1wiIG9uIGBuZXh0L2ltYWdlYCwgaWYgdXNpbmcgcmVsYXRpdmUgaW1hZ2UgaXQgbXVzdCBzdGFydCB3aXRoIGEgbGVhZGluZyBzbGFzaCBcIi9cIiBvciBiZSBhbiBhYnNvbHV0ZSBVUkwgKGh0dHA6Ly8gb3IgaHR0cHM6Ly8pJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwidGVzdFwiICYmIC8vIG1pY3JvbWF0Y2ggaXNuJ3QgY29tcGF0aWJsZSB3aXRoIGVkZ2UgcnVudGltZVxuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIikge1xuICAgICAgICAgICAgICAgIC8vIFdlIHVzZSBkeW5hbWljIHJlcXVpcmUgYmVjYXVzZSB0aGlzIHNob3VsZCBvbmx5IGVycm9yIGluIGRldmVsb3BtZW50XG4gICAgICAgICAgICAgICAgY29uc3QgeyBoYXNNYXRjaCB9ID0gcmVxdWlyZShcIi4vbWF0Y2gtcmVtb3RlLXBhdHRlcm5cIik7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNNYXRjaChjb25maWcuZG9tYWlucywgY29uZmlnLnJlbW90ZVBhdHRlcm5zLCBwYXJzZWRTcmMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgc3JjIHByb3AgKFwiICsgc3JjICsgJykgb24gYG5leHQvaW1hZ2VgLCBob3N0bmFtZSBcIicgKyBwYXJzZWRTcmMuaG9zdG5hbWUgKyAnXCIgaXMgbm90IGNvbmZpZ3VyZWQgdW5kZXIgaW1hZ2VzIGluIHlvdXIgYG5leHQuY29uZmlnLmpzYFxcbicgKyBcIlNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtdW5jb25maWd1cmVkLWhvc3RcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb25maWcucGF0aCArIFwiP3VybD1cIiArIGVuY29kZVVSSUNvbXBvbmVudChzcmMpICsgXCImdz1cIiArIHdpZHRoICsgXCImcT1cIiArIChxdWFsaXR5IHx8IDc1KSArIChwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQgPyBcIiZkcGw9XCIgKyBwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQgOiBcIlwiKTtcbn1cbi8vIFdlIHVzZSB0aGlzIHRvIGRldGVybWluZSBpZiB0aGUgaW1wb3J0IGlzIHRoZSBkZWZhdWx0IGxvYWRlclxuLy8gb3IgYSBjdXN0b20gbG9hZGVyIGRlZmluZWQgYnkgdGhlIHVzZXIgaW4gbmV4dC5jb25maWcuanNcbmRlZmF1bHRMb2FkZXIuX19uZXh0X2ltZ19kZWZhdWx0ID0gdHJ1ZTtcbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRMb2FkZXI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiZGVmYXVsdExvYWRlciIsInBhcmFtIiwiY29uZmlnIiwic3JjIiwid2lkdGgiLCJxdWFsaXR5IiwicHJvY2VzcyIsIm1pc3NpbmdWYWx1ZXMiLCJwdXNoIiwibGVuZ3RoIiwiRXJyb3IiLCJqb2luIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXJ0c1dpdGgiLCJkb21haW5zIiwicmVtb3RlUGF0dGVybnMiLCJwYXJzZWRTcmMiLCJVUkwiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJoYXNNYXRjaCIsInJlcXVpcmUiLCJob3N0bmFtZSIsInBhdGgiLCJlbmNvZGVVUklDb21wb25lbnQiLCJORVhUX0RFUExPWU1FTlRfSUQiLCJfX25leHRfaW1nX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/image-loader.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/is-plain-object.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/is-plain-object.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getObjectClassLabel: () => (/* binding */ getObjectClassLabel),\n/* harmony export */ isPlainObject: () => (/* binding */ isPlainObject)\n/* harmony export */ });\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== \"[object Object]\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty(\"isPrototypeOf\");\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTQSxvQkFBb0JDLEtBQUs7SUFDckMsT0FBT0MsT0FBT0MsU0FBUyxDQUFDQyxRQUFRLENBQUNDLElBQUksQ0FBQ0o7QUFDMUM7QUFDTyxTQUFTSyxjQUFjTCxLQUFLO0lBQy9CLElBQUlELG9CQUFvQkMsV0FBVyxtQkFBbUI7UUFDbEQsT0FBTztJQUNYO0lBQ0EsTUFBTUUsWUFBWUQsT0FBT0ssY0FBYyxDQUFDTjtJQUN4Qzs7Ozs7Ozs7R0FRRCxHQUFHLE9BQU9FLGNBQWMsUUFBUUEsVUFBVUssY0FBYyxDQUFDO0FBQzVELEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2lzLXBsYWluLW9iamVjdC5qcz9kNjRlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gXCJbb2JqZWN0IE9iamVjdF1cIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gICAgLyoqXG4gICAqIHRoaXMgdXNlZCB0byBiZSBwcmV2aW91c2x5OlxuICAgKlxuICAgKiBgcmV0dXJuIHByb3RvdHlwZSA9PT0gbnVsbCB8fCBwcm90b3R5cGUgPT09IE9iamVjdC5wcm90b3R5cGVgXG4gICAqXG4gICAqIGJ1dCBFZGdlIFJ1bnRpbWUgZXhwb3NlIE9iamVjdCBmcm9tIHZtLCBiZWluZyB0aGF0IGtpbmQgb2YgdHlwZS1jaGVja2luZyB3cm9uZ2x5IGZhaWwuXG4gICAqXG4gICAqIEl0IHdhcyBjaGFuZ2VkIHRvIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHNpbmNlIGl0J3MgcmVzaWxpZW50IHRvIHNlcmlhbGl6YXRpb24uXG4gICAqLyByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShcImlzUHJvdG90eXBlT2ZcIik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXBsYWluLW9iamVjdC5qcy5tYXAiXSwibmFtZXMiOlsiZ2V0T2JqZWN0Q2xhc3NMYWJlbCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiaXNQbGFpbk9iamVjdCIsImdldFByb3RvdHlwZU9mIiwiaGFzT3duUHJvcGVydHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/is-plain-object.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js ***!
- \**********************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * This module is for next.js server internal usage of path module.\n * It will use native path module for nodejs runtime.\n * It will use path-browserify polyfill for edge runtime.\n */ \nlet path;\nif (true) {\n path = __webpack_require__(/*! next/dist/compiled/path-browserify */ \"(ssr)/../../node_modules/next/dist/compiled/path-browserify/index.js\");\n} else {}\nmodule.exports = path; //# sourceMappingURL=path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQyxHQUFHO0FBQUEsSUFBSUE7QUFDUixJQUFJQyxJQUFtQyxFQUFFO0lBQ3JDRCxPQUFPSSxtQkFBT0EsQ0FBQyxnSEFBb0M7QUFDdkQsT0FBTyxFQUVOO0FBQ0RDLE9BQU9DLE9BQU8sR0FBR04sTUFFakIsZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2lzb21vcnBoaWMvcGF0aC5qcz9hNjMzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBtb2R1bGUgaXMgZm9yIG5leHQuanMgc2VydmVyIGludGVybmFsIHVzYWdlIG9mIHBhdGggbW9kdWxlLlxuICogSXQgd2lsbCB1c2UgbmF0aXZlIHBhdGggbW9kdWxlIGZvciBub2RlanMgcnVudGltZS5cbiAqIEl0IHdpbGwgdXNlIHBhdGgtYnJvd3NlcmlmeSBwb2x5ZmlsbCBmb3IgZWRnZSBydW50aW1lLlxuICovIGxldCBwYXRoO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gXCJlZGdlXCIpIHtcbiAgICBwYXRoID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9wYXRoLWJyb3dzZXJpZnlcIik7XG59IGVsc2Uge1xuICAgIHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcGF0aDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGF0aC5qcy5tYXAiXSwibmFtZXMiOlsicGF0aCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BailoutToCSRError: () => (/* binding */ BailoutToCSRError),\n/* harmony export */ isBailoutToCSRError: () => (/* binding */ isBailoutToCSRError)\n/* harmony export */ });\n// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = \"BAILOUT_TO_CLIENT_SIDE_RENDERING\";\n/** An error that should be thrown when we want to bail out to client-side rendering. */ class BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason);\n this.reason = reason;\n this.digest = BAILOUT_TO_CSR;\n }\n}\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */ function isBailoutToCSRError(err) {\n if (typeof err !== \"object\" || err === null || !(\"digest\" in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n} //# sourceMappingURL=bailout-to-csr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrR0FBK0c7QUFDL0csTUFBTUEsaUJBQWlCO0FBQ3ZCLHNGQUFzRixHQUFVLE1BQU1DLDBCQUEwQkM7SUFDNUhDLFlBQVlDLE1BQU0sQ0FBQztRQUNmLEtBQUssQ0FBQyx3Q0FBd0NBO1FBQzlDLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsTUFBTSxHQUFHTDtJQUNsQjtBQUNKO0FBQ0EsNEdBQTRHLEdBQVUsU0FBU00sb0JBQW9CQyxHQUFHO0lBQ2xKLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFFLEdBQUk7UUFDL0QsT0FBTztJQUNYO0lBQ0EsT0FBT0EsSUFBSUYsTUFBTSxLQUFLTDtBQUMxQixFQUVBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3IuanM/MjBjMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGhhcyB0byBiZSBhIHNoYXJlZCBtb2R1bGUgd2hpY2ggaXMgc2hhcmVkIGJldHdlZW4gY2xpZW50IGNvbXBvbmVudCBlcnJvciBib3VuZGFyeSBhbmQgZHluYW1pYyBjb21wb25lbnRcbmNvbnN0IEJBSUxPVVRfVE9fQ1NSID0gXCJCQUlMT1VUX1RPX0NMSUVOVF9TSURFX1JFTkRFUklOR1wiO1xuLyoqIEFuIGVycm9yIHRoYXQgc2hvdWxkIGJlIHRocm93biB3aGVuIHdlIHdhbnQgdG8gYmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nLiAqLyBleHBvcnQgY2xhc3MgQmFpbG91dFRvQ1NSRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocmVhc29uKXtcbiAgICAgICAgc3VwZXIoXCJCYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmc6IFwiICsgcmVhc29uKTtcbiAgICAgICAgdGhpcy5yZWFzb24gPSByZWFzb247XG4gICAgICAgIHRoaXMuZGlnZXN0ID0gQkFJTE9VVF9UT19DU1I7XG4gICAgfVxufVxuLyoqIENoZWNrcyBpZiBhIHBhc3NlZCBhcmd1bWVudCBpcyBhbiBlcnJvciB0aGF0IGlzIHRocm93biBpZiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi8gZXhwb3J0IGZ1bmN0aW9uIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyKSB7XG4gICAgaWYgKHR5cGVvZiBlcnIgIT09IFwib2JqZWN0XCIgfHwgZXJyID09PSBudWxsIHx8ICEoXCJkaWdlc3RcIiBpbiBlcnIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGVyci5kaWdlc3QgPT09IEJBSUxPVVRfVE9fQ1NSO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYWlsb3V0LXRvLWNzci5qcy5tYXAiXSwibmFtZXMiOlsiQkFJTE9VVF9UT19DU1IiLCJCYWlsb3V0VG9DU1JFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJyZWFzb24iLCJkaWdlc3QiLCJpc0JhaWxvdXRUb0NTUkVycm9yIiwiZXJyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LoadableContext: () => (/* binding */ LoadableContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ LoadableContext auto */ \nconst LoadableContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null);\nif (true) {\n LoadableContext.displayName = \"LoadableContext\";\n} //# sourceMappingURL=loadable-context.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9sb2FkYWJsZS1jb250ZXh0LnNoYXJlZC1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztxRUFFMEI7QUFDbkIsTUFBTUMsZ0NBQWtCRCwwREFBbUIsQ0FBQyxNQUFNO0FBQ3pELElBQUlHLElBQXFDLEVBQUU7SUFDdkNGLGdCQUFnQkcsV0FBVyxHQUFHO0FBQ2xDLEVBRUEsMkRBQTJEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2xvYWRhYmxlLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanM/OGU0NSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IGNvbnN0IExvYWRhYmxlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgTG9hZGFibGVDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJMb2FkYWJsZUNvbnRleHRcIjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9hZGFibGUtY29udGV4dC5zaGFyZWQtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOlsiUmVhY3QiLCJMb2FkYWJsZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwicHJvY2VzcyIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable.shared-runtime.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/loadable.shared-runtime.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _loadable_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loadable-context.shared-runtime */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js\");\n// TODO: Remove use of `any` type.\n/**\n@copyright (c) 2017-present James Kyle <[email protected]>\n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/ // https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\n\nfunction resolve(obj) {\n return obj && obj.default ? obj.default : obj;\n}\nconst ALL_INITIALIZERS = [];\nconst READY_INITIALIZERS = [];\nlet initialized = false;\nfunction load(loader) {\n let promise = loader();\n let state = {\n loading: true,\n loaded: null,\n error: null\n };\n state.promise = promise.then((loaded)=>{\n state.loading = false;\n state.loaded = loaded;\n return loaded;\n }).catch((err)=>{\n state.loading = false;\n state.error = err;\n throw err;\n });\n return state;\n}\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign({\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n webpack: null,\n modules: null\n }, options);\n /** @type LoadableSubscription */ let subscription = null;\n function init() {\n if (!subscription) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const sub = new LoadableSubscription(loadFn, opts);\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub)\n };\n }\n return subscription.promise();\n }\n // Server only\n if (true) {\n ALL_INITIALIZERS.push(init);\n }\n // Client only\n if (!initialized && \"undefined\" !== \"undefined\") {}\n function useLoadableModule() {\n init();\n const context = react__WEBPACK_IMPORTED_MODULE_0___default().useContext(_loadable_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__.LoadableContext);\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName)=>{\n context(moduleName);\n });\n }\n }\n function LoadableComponent(props, ref) {\n useLoadableModule();\n const state = react__WEBPACK_IMPORTED_MODULE_0___default().useSyncExternalStore(subscription.subscribe, subscription.getCurrentValue, subscription.getCurrentValue);\n react__WEBPACK_IMPORTED_MODULE_0___default().useImperativeHandle(ref, ()=>({\n retry: subscription.retry\n }), []);\n return react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(()=>{\n if (state.loading || state.error) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry\n });\n } else if (state.loaded) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(resolve(state.loaded), props);\n } else {\n return null;\n }\n }, [\n props,\n state\n ]);\n }\n LoadableComponent.preload = ()=>init();\n LoadableComponent.displayName = \"LoadableComponent\";\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().forwardRef(LoadableComponent);\n}\nclass LoadableSubscription {\n promise() {\n return this._res.promise;\n }\n retry() {\n this._clearTimeouts();\n this._res = this._loadFn(this._opts.loader);\n this._state = {\n pastDelay: false,\n timedOut: false\n };\n const { _res: res, _opts: opts } = this;\n if (res.loading) {\n if (typeof opts.delay === \"number\") {\n if (opts.delay === 0) {\n this._state.pastDelay = true;\n } else {\n this._delay = setTimeout(()=>{\n this._update({\n pastDelay: true\n });\n }, opts.delay);\n }\n }\n if (typeof opts.timeout === \"number\") {\n this._timeout = setTimeout(()=>{\n this._update({\n timedOut: true\n });\n }, opts.timeout);\n }\n }\n this._res.promise.then(()=>{\n this._update({});\n this._clearTimeouts();\n }).catch((_err)=>{\n this._update({});\n this._clearTimeouts();\n });\n this._update({});\n }\n _update(partial) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial\n };\n this._callbacks.forEach((callback)=>callback());\n }\n _clearTimeouts() {\n clearTimeout(this._delay);\n clearTimeout(this._timeout);\n }\n getCurrentValue() {\n return this._state;\n }\n subscribe(callback) {\n this._callbacks.add(callback);\n return ()=>{\n this._callbacks.delete(callback);\n };\n }\n constructor(loadFn, opts){\n this._loadFn = loadFn;\n this._opts = opts;\n this._callbacks = new Set();\n this._delay = null;\n this._timeout = null;\n this.retry();\n }\n}\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts);\n}\nfunction flushInitializers(initializers, ids) {\n let promises = [];\n while(initializers.length){\n let init = initializers.pop();\n promises.push(init(ids));\n }\n return Promise.all(promises).then(()=>{\n if (initializers.length) {\n return flushInitializers(initializers, ids);\n }\n });\n}\nLoadable.preloadAll = ()=>{\n return new Promise((resolveInitializers, reject)=>{\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject);\n });\n};\nLoadable.preloadReady = (ids)=>{\n if (ids === void 0) ids = [];\n return new Promise((resolvePreload)=>{\n const res = ()=>{\n initialized = true;\n return resolvePreload();\n };\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res);\n });\n};\nif (false) {}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Loadable); //# sourceMappingURL=loadable.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9sb2FkYWJsZS5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLEdBQUcseUVBQXlFO0FBQzVFLHFEQUFxRDtBQUMzQjtBQUMwQztBQUNwRSxTQUFTRSxRQUFRQyxHQUFHO0lBQ2hCLE9BQU9BLE9BQU9BLElBQUlDLE9BQU8sR0FBR0QsSUFBSUMsT0FBTyxHQUFHRDtBQUM5QztBQUNBLE1BQU1FLG1CQUFtQixFQUFFO0FBQzNCLE1BQU1DLHFCQUFxQixFQUFFO0FBQzdCLElBQUlDLGNBQWM7QUFDbEIsU0FBU0MsS0FBS0MsTUFBTTtJQUNoQixJQUFJQyxVQUFVRDtJQUNkLElBQUlFLFFBQVE7UUFDUkMsU0FBUztRQUNUQyxRQUFRO1FBQ1JDLE9BQU87SUFDWDtJQUNBSCxNQUFNRCxPQUFPLEdBQUdBLFFBQVFLLElBQUksQ0FBQyxDQUFDRjtRQUMxQkYsTUFBTUMsT0FBTyxHQUFHO1FBQ2hCRCxNQUFNRSxNQUFNLEdBQUdBO1FBQ2YsT0FBT0E7SUFDWCxHQUFHRyxLQUFLLENBQUMsQ0FBQ0M7UUFDTk4sTUFBTUMsT0FBTyxHQUFHO1FBQ2hCRCxNQUFNRyxLQUFLLEdBQUdHO1FBQ2QsTUFBTUE7SUFDVjtJQUNBLE9BQU9OO0FBQ1g7QUFDQSxTQUFTTyx3QkFBd0JDLE1BQU0sRUFBRUMsT0FBTztJQUM1QyxJQUFJQyxPQUFPQyxPQUFPQyxNQUFNLENBQUM7UUFDckJkLFFBQVE7UUFDUkcsU0FBUztRQUNUWSxPQUFPO1FBQ1BDLFNBQVM7UUFDVEMsU0FBUztRQUNUQyxTQUFTO0lBQ2IsR0FBR1A7SUFDSCwrQkFBK0IsR0FBRyxJQUFJUSxlQUFlO0lBQ3JELFNBQVNDO1FBQ0wsSUFBSSxDQUFDRCxjQUFjO1lBQ2YsbUVBQW1FO1lBQ25FLE1BQU1FLE1BQU0sSUFBSUMscUJBQXFCWixRQUFR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QUFlYyxRQUFRQSxFQUFDLENBRXhCLG1EQUFtRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9sb2FkYWJsZS5zaGFyZWQtcnVudGltZS5qcz9iNDhmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IFJlbW92ZSB1c2Ugb2YgYGFueWAgdHlwZS5cbi8qKlxuQGNvcHlyaWdodCAoYykgMjAxNy1wcmVzZW50IEphbWVzIEt5bGUgPG1lQHRoZWphbWVza3lsZS5jb20+XG4gTUlUIExpY2Vuc2VcbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbmEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG53aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG5kaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG9cbnBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0b1xudGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlXG5pbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG5NRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRVxuTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG5XSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRVxuKi8gLy8gaHR0cHM6Ly9naXRodWIuY29tL2phbWllYnVpbGRzL3JlYWN0LWxvYWRhYmxlL2Jsb2IvdjUuNS4wL3NyYy9pbmRleC5qc1xuLy8gTW9kaWZpZWQgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHdlYnBhY2sgNCAvIE5leHQuanNcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IExvYWRhYmxlQ29udGV4dCB9IGZyb20gXCIuL2xvYWRhYmxlLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbmZ1bmN0aW9uIHJlc29sdmUob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouZGVmYXVsdCA/IG9iai5kZWZhdWx0IDogb2JqO1xufVxuY29uc3QgQUxMX0lOSVRJQUxJWkVSUyA9IFtdO1xuY29uc3QgUkVBRFlfSU5JVElBTElaRVJTID0gW107XG5sZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbmZ1bmN0aW9uIGxvYWQobG9hZGVyKSB7XG4gICAgbGV0IHByb21pc2UgPSBsb2FkZXIoKTtcbiAgICBsZXQgc3RhdGUgPSB7XG4gICAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICAgIGxvYWRlZDogbnVsbCxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICB9O1xuICAgIHN0YXRlLnByb21pc2UgPSBwcm9taXNlLnRoZW4oKGxvYWRlZCk9PntcbiAgICAgICAgc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5sb2FkZWQgPSBsb2FkZWQ7XG4gICAgICAgIHJldHVybiBsb2FkZWQ7XG4gICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5lcnJvciA9IGVycjtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH0pO1xuICAgIHJldHVybiBzdGF0ZTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUxvYWRhYmxlQ29tcG9uZW50KGxvYWRGbiwgb3B0aW9ucykge1xuICAgIGxldCBvcHRzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIGxvYWRlcjogbnVsbCxcbiAgICAgICAgbG9hZGluZzogbnVsbCxcbiAgICAgICAgZGVsYXk6IDIwMCxcbiAgICAgICAgdGltZW91dDogbnVsbCxcbiAgICAgICAgd2VicGFjazogbnVsbCxcbiAgICAgICAgbW9kdWxlczogbnVsbFxuICAgIH0sIG9wdGlvbnMpO1xuICAgIC8qKiBAdHlwZSBMb2FkYWJsZVN1YnNjcmlwdGlvbiAqLyBsZXQgc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgICBpZiAoIXN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgICAgY29uc3Qgc3ViID0gbmV3IExvYWRhYmxlU3Vic2NyaXB0aW9uKGxvYWRGbiwgb3B0cyk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICAgICAgZ2V0Q3VycmVudFZhbHVlOiBzdWIuZ2V0Q3VycmVudFZhbHVlLmJpbmQoc3ViKSxcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmU6IHN1Yi5zdWJzY3JpYmUuYmluZChzdWIpLFxuICAgICAgICAgICAgICAgIHJldHJ5OiBzdWIucmV0cnkuYmluZChzdWIpLFxuICAgICAgICAgICAgICAgIHByb21pc2U6IHN1Yi5wcm9taXNlLmJpbmQoc3ViKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uLnByb21pc2UoKTtcbiAgICB9XG4gICAgLy8gU2VydmVyIG9ubHlcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBBTExfSU5JVElBTElaRVJTLnB1c2goaW5pdCk7XG4gICAgfVxuICAgIC8vIENsaWVudCBvbmx5XG4gICAgaWYgKCFpbml0aWFsaXplZCAmJiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIC8vIHJlcXVpcmUucmVzb2x2ZVdlYWsgY2hlY2sgaXMgbmVlZGVkIGZvciBlbnZpcm9ubWVudHMgdGhhdCBkb24ndCBoYXZlIGl0IGF2YWlsYWJsZSBsaWtlIEplc3RcbiAgICAgICAgY29uc3QgbW9kdWxlSWRzID0gb3B0cy53ZWJwYWNrICYmIHR5cGVvZiByZXF1aXJlLnJlc29sdmVXZWFrID09PSBcImZ1bmN0aW9uXCIgPyBvcHRzLndlYnBhY2soKSA6IG9wdHMubW9kdWxlcztcbiAgICAgICAgaWYgKG1vZHVsZUlkcykge1xuICAgICAgICAgICAgUkVBRFlfSU5JVElBTElaRVJTLnB1c2goKGlkcyk9PntcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1vZHVsZUlkIG9mIG1vZHVsZUlkcyl7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpZHMuaW5jbHVkZXMobW9kdWxlSWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5pdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdXNlTG9hZGFibGVNb2R1bGUoKSB7XG4gICAgICAgIGluaXQoKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoTG9hZGFibGVDb250ZXh0KTtcbiAgICAgICAgaWYgKGNvbnRleHQgJiYgQXJyYXkuaXNBcnJheShvcHRzLm1vZHVsZXMpKSB7XG4gICAgICAgICAgICBvcHRzLm1vZHVsZXMuZm9yRWFjaCgobW9kdWxlTmFtZSk9PntcbiAgICAgICAgICAgICAgICBjb250ZXh0KG1vZHVsZU5hbWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gTG9hZGFibGVDb21wb25lbnQocHJvcHMsIHJlZikge1xuICAgICAgICB1c2VMb2FkYWJsZU1vZHVsZSgpO1xuICAgICAgICBjb25zdCBzdGF0ZSA9IFJlYWN0LnVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmlwdGlvbi5zdWJzY3JpYmUsIHN1YnNjcmlwdGlvbi5nZXRDdXJyZW50VmFsdWUsIHN1YnNjcmlwdGlvbi5nZXRDdXJyZW50VmFsdWUpO1xuICAgICAgICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCk9Pih7XG4gICAgICAgICAgICAgICAgcmV0cnk6IHN1YnNjcmlwdGlvbi5yZXRyeVxuICAgICAgICAgICAgfSksIFtdKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgICAgIGlmIChzdGF0ZS5sb2FkaW5nIHx8IHN0YXRlLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChvcHRzLmxvYWRpbmcsIHtcbiAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBzdGF0ZS5sb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICBwYXN0RGVsYXk6IHN0YXRlLnBhc3REZWxheSxcbiAgICAgICAgICAgICAgICAgICAgdGltZWRPdXQ6IHN0YXRlLnRpbWVkT3V0LFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogc3RhdGUuZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIHJldHJ5OiBzdWJzY3JpcHRpb24ucmV0cnlcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChyZXNvbHZlKHN0YXRlLmxvYWRlZCksIHByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgXSk7XG4gICAgfVxuICAgIExvYWRhYmxlQ29tcG9uZW50LnByZWxvYWQgPSAoKT0+aW5pdCgpO1xuICAgIExvYWRhYmxlQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJMb2FkYWJsZUNvbXBvbmVudFwiO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoTG9hZGFibGVDb21wb25lbnQpO1xufVxuY2xhc3MgTG9hZGFibGVTdWJzY3JpcHRpb24ge1xuICAgIHByb21pc2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXMucHJvbWlzZTtcbiAgICB9XG4gICAgcmV0cnkoKSB7XG4gICAgICAgIHRoaXMuX2NsZWFyVGltZW91dHMoKTtcbiAgICAgICAgdGhpcy5fcmVzID0gdGhpcy5fbG9hZEZuKHRoaXMuX29wdHMubG9hZGVyKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB7XG4gICAgICAgICAgICBwYXN0RGVsYXk6IGZhbHNlLFxuICAgICAgICAgICAgdGltZWRPdXQ6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgX3JlczogcmVzLCBfb3B0czogb3B0cyB9ID0gdGhpcztcbiAgICAgICAgaWYgKHJlcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdHMuZGVsYXkgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0cy5kZWxheSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5wYXN0RGVsYXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlbGF5ID0gc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXN0RGVsYXk6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LCBvcHRzLmRlbGF5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdHMudGltZW91dCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lZE91dDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LCBvcHRzLnRpbWVvdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Jlcy5wcm9taXNlLnRoZW4oKCk9PntcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZSh7fSk7XG4gICAgICAgICAgICB0aGlzLl9jbGVhclRpbWVvdXRzKCk7XG4gICAgICAgIH0pLmNhdGNoKChfZXJyKT0+e1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlKHt9KTtcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyVGltZW91dHMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZSh7fSk7XG4gICAgfVxuICAgIF91cGRhdGUocGFydGlhbCkge1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuX3N0YXRlLFxuICAgICAgICAgICAgZXJyb3I6IHRoaXMuX3Jlcy5lcnJvcixcbiAgICAgICAgICAgIGxvYWRlZDogdGhpcy5fcmVzLmxvYWRlZCxcbiAgICAgICAgICAgIGxvYWRpbmc6IHRoaXMuX3Jlcy5sb2FkaW5nLFxuICAgICAgICAgICAgLi4ucGFydGlhbFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9jYWxsYmFja3MuZm9yRWFjaCgoY2FsbGJhY2spPT5jYWxsYmFjaygpKTtcbiAgICB9XG4gICAgX2NsZWFyVGltZW91dHMoKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9kZWxheSk7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KTtcbiAgICB9XG4gICAgZ2V0Q3VycmVudFZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhdGU7XG4gICAgfVxuICAgIHN1YnNjcmliZShjYWxsYmFjaykge1xuICAgICAgICB0aGlzLl9jYWxsYmFja3MuYWRkKGNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICB0aGlzLl9jYWxsYmFja3MuZGVsZXRlKGNhbGxiYWNrKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IobG9hZEZuLCBvcHRzKXtcbiAgICAgICAgdGhpcy5fbG9hZEZuID0gbG9hZEZuO1xuICAgICAgICB0aGlzLl9vcHRzID0gb3B0cztcbiAgICAgICAgdGhpcy5fY2FsbGJhY2tzID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9kZWxheSA9IG51bGw7XG4gICAgICAgIHRoaXMuX3RpbWVvdXQgPSBudWxsO1xuICAgICAgICB0aGlzLnJldHJ5KCk7XG4gICAgfVxufVxuZnVuY3Rpb24gTG9hZGFibGUob3B0cykge1xuICAgIHJldHVybiBjcmVhdGVMb2FkYWJsZUNvbXBvbmVudChsb2FkLCBvcHRzKTtcbn1cbmZ1bmN0aW9uIGZsdXNoSW5pdGlhbGl6ZXJzKGluaXRpYWxpemVycywgaWRzKSB7XG4gICAgbGV0IHByb21pc2VzID0gW107XG4gICAgd2hpbGUoaW5pdGlhbGl6ZXJzLmxlbmd0aCl7XG4gICAgICAgIGxldCBpbml0ID0gaW5pdGlhbGl6ZXJzLnBvcCgpO1xuICAgICAgICBwcm9taXNlcy5wdXNoKGluaXQoaWRzKSk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigoKT0+e1xuICAgICAgICBpZiAoaW5pdGlhbGl6ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZsdXNoSW5pdGlhbGl6ZXJzKGluaXRpYWxpemVycywgaWRzKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuTG9hZGFibGUucHJlbG9hZEFsbCA9ICgpPT57XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlSW5pdGlhbGl6ZXJzLCByZWplY3QpPT57XG4gICAgICAgIGZsdXNoSW5pdGlhbGl6ZXJzKEFMTF9JTklUSUFMSVpFUlMpLnRoZW4ocmVzb2x2ZUluaXRpYWxpemVycywgcmVqZWN0KTtcbiAgICB9KTtcbn07XG5Mb2FkYWJsZS5wcmVsb2FkUmVhZHkgPSAoaWRzKT0+e1xuICAgIGlmIChpZHMgPT09IHZvaWQgMCkgaWRzID0gW107XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlUHJlbG9hZCk9PntcbiAgICAgICAgY29uc3QgcmVzID0gKCk9PntcbiAgICAgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlUHJlbG9hZCgpO1xuICAgICAgICB9O1xuICAgICAgICAvLyBXZSBhbHdheXMgd2lsbCByZXNvbHZlLCBlcnJvcnMgc2hvdWxkIGJlIGhhbmRsZWQgd2l0aGluIGxvYWRpbmcgVUlzLlxuICAgICAgICBmbHVzaEluaXRpYWxpemVycyhSRUFEWV9JTklUSUFMSVpFUlMsIGlkcykudGhlbihyZXMsIHJlcyk7XG4gICAgfSk7XG59O1xuaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICB3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWSA9IExvYWRhYmxlLnByZWxvYWRSZWFkeTtcbn1cbmV4cG9ydCBkZWZhdWx0IExvYWRhYmxlO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1sb2FkYWJsZS5zaGFyZWQtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOlsiUmVhY3QiLCJMb2FkYWJsZUNvbnRleHQiLCJyZXNvbHZlIiwib2JqIiwiZGVmYXVsdCIsIkFMTF9JTklUSUFMSVpFUlMiLCJSRUFEWV9JTklUSUFMSVpFUlMiLCJpbml0aWFsaXplZCIsImxvYWQiLCJsb2FkZXIiLCJwcm9taXNlIiwic3RhdGUiLCJsb2FkaW5nIiwibG9hZGVkIiwiZXJyb3IiLCJ0aGVuIiwiY2F0Y2giLCJlcnIiLCJjcmVhdGVMb2FkYWJsZUNvbXBvbmVudCIsImxvYWRGbiIsIm9wdGlvbnMiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwiZGVsYXkiLCJ0aW1lb3V0Iiwid2VicGFjayIsIm1vZHVsZXMiLCJzdWJzY3JpcHRpb24iLCJpbml0Iiwic3ViIiwiTG9hZGFibGVTdWJzY3JpcHRpb24iLCJnZXRDdXJyZW50VmFsdWUiLCJiaW5kIiwic3Vic2NyaWJlIiwicmV0cnkiLCJwdXNoIiwibW9kdWxlSWRzIiwicmVxdWlyZSIsInJlc29sdmVXZWFrIiwiaWRzIiwibW9kdWxlSWQiLCJpbmNsdWRlcyIsInVzZUxvYWRhYmxlTW9kdWxlIiwiY29udGV4dCIsInVzZUNvbnRleHQiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwibW9kdWxlTmFtZSIsIkxvYWRhYmxlQ29tcG9uZW50IiwicHJvcHMiLCJyZWYiLCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZSIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VNZW1vIiwiY3JlYXRlRWxlbWVudCIsImlzTG9hZGluZyIsInBhc3REZWxheSIsInRpbWVkT3V0IiwicHJlbG9hZCIsImRpc3BsYXlOYW1lIiwiZm9yd2FyZFJlZiIsIl9yZXMiLCJfY2xlYXJUaW1lb3V0cyIsIl9sb2FkRm4iLCJfb3B0cyIsIl9zdGF0ZSIsInJlcyIsIl9kZWxheSIsInNldFRpbWVvdXQiLCJfdXBkYXRlIiwiX3RpbWVvdXQiLCJfZXJyIiwicGFydGlhbCIsIl9jYWxsYmFja3MiLCJjYWxsYmFjayIsImNsZWFyVGltZW91dCIsImFkZCIsImRlbGV0ZSIsImNvbnN0cnVjdG9yIiwiU2V0IiwiTG9hZGFibGUiLCJmbHVzaEluaXRpYWxpemVycyIsImluaXRpYWxpemVycyIsInByb21pc2VzIiwibGVuZ3RoIiwicG9wIiwiUHJvbWlzZSIsImFsbCIsInByZWxvYWRBbGwiLCJyZXNvbHZlSW5pdGlhbGl6ZXJzIiwicmVqZWN0IiwicHJlbG9hZFJlYWR5IiwicmVzb2x2ZVByZWxvYWQiLCJ3aW5kb3ciLCJfX05FWFRfUFJFTE9BRFJFQURZIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/modern-browserslist-target.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/modern-browserslist-target.js ***!
- \*********************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n \"chrome 64\",\n \"edge 79\",\n \"firefox 67\",\n \"opera 51\",\n \"safari 12\"\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsa0VBQWtFO0FBQ2xFOzs7OztDQUtDLEdBQUc7QUFBQSxNQUFNQSw2QkFBNkI7SUFDbkM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNIO0FBQ0RDLE9BQU9DLE9BQU8sR0FBR0YsNEJBRWpCLHNEQUFzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcz9hMjhmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIE5vdGU6IFRoaXMgZmlsZSBpcyBKUyBiZWNhdXNlIGl0J3MgdXNlZCBieSB0aGUgdGFza2ZpbGUtc3djLmpzIGZpbGUsIHdoaWNoIGlzIEpTLlxuLy8gS2VlcCBmaWxlIGNoYW5nZXMgaW4gc3luYyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGAuZC50c2AgZmlsZXMuXG4vKipcbiAqIFRoZXNlIGFyZSB0aGUgYnJvd3NlciB2ZXJzaW9ucyB0aGF0IHN1cHBvcnQgYWxsIG9mIHRoZSBmb2xsb3dpbmc6XG4gKiBzdGF0aWMgaW1wb3J0OiBodHRwczovL2Nhbml1c2UuY29tL2VzNi1tb2R1bGVcbiAqIGR5bmFtaWMgaW1wb3J0OiBodHRwczovL2Nhbml1c2UuY29tL2VzNi1tb2R1bGUtZHluYW1pYy1pbXBvcnRcbiAqIGltcG9ydC5tZXRhOiBodHRwczovL2Nhbml1c2UuY29tL21kbi1qYXZhc2NyaXB0X29wZXJhdG9yc19pbXBvcnRfbWV0YVxuICovIGNvbnN0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUID0gW1xuICAgIFwiY2hyb21lIDY0XCIsXG4gICAgXCJlZGdlIDc5XCIsXG4gICAgXCJmaXJlZm94IDY3XCIsXG4gICAgXCJvcGVyYSA1MVwiLFxuICAgIFwic2FmYXJpIDEyXCJcbl07XG5tb2R1bGUuZXhwb3J0cyA9IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcy5tYXAiXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/modern-browserslist-target.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ absolutePathToPage: () => (/* binding */ absolutePathToPage)\n/* harmony export */ });\n/* harmony import */ var _ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ensure-leading-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\");\n/* harmony import */ var _normalize_path_sep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normalize-path-sep */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\");\n/* harmony import */ var _isomorphic_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../isomorphic/path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\");\n/* harmony import */ var _isomorphic_path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_isomorphic_path__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _remove_page_path_tail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./remove-page-path-tail */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/remove-page-path-tail.js\");\n/* harmony import */ var _lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../lib/metadata/get-metadata-route */ \"(ssr)/../../node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\");\n\n\n\n\n\n/**\n * Given the absolute path to the pages folder, an absolute file path for a\n * page and the page extensions, this function will return the page path\n * relative to the pages folder. It doesn't consider index tail. Example:\n * - `/Users/rick/my-project/pages/foo/bar/baz.js` -> `/foo/bar/baz`\n *\n * It also handles special metadata routes mapping. Example:\n * - `/Users/rick/my-project/app/sitemap.js` -> `/sitemap/route`\n *\n * @param filepath Absolute path to the page.\n * @param opts.dir Absolute path to the pages/app folder.\n * @param opts.extensions Extensions allowed for the page.\n * @param opts.keepIndex When true the trailing `index` kept in the path.\n * @param opts.pagesType Whether the page is in the pages or app directory.\n */ function absolutePathToPage(pagePath, options) {\n const isAppDir = options.pagesType === \"app\";\n const page = (0,_remove_page_path_tail__WEBPACK_IMPORTED_MODULE_3__.removePagePathTail)((0,_normalize_path_sep__WEBPACK_IMPORTED_MODULE_1__.normalizePathSep)((0,_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__.ensureLeadingSlash)(_isomorphic_path__WEBPACK_IMPORTED_MODULE_2___default().relative(options.dir, pagePath))), {\n extensions: options.extensions,\n keepIndex: options.keepIndex\n });\n return isAppDir ? (0,_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_4__.normalizeMetadataRoute)(page) : page;\n} //# sourceMappingURL=absolute-path-to-page.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvYWJzb2x1dGUtcGF0aC10by1wYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBNEQ7QUFDSjtBQUNsQjtBQUN1QjtBQUNxQjtBQUNsRjs7Ozs7Ozs7Ozs7Ozs7Q0FjQyxHQUFVLFNBQVNLLG1CQUFtQkMsUUFBUSxFQUFFQyxPQUFPO0lBQ3BELE1BQU1DLFdBQVdELFFBQVFFLFNBQVMsS0FBSztJQUN2QyxNQUFNQyxPQUFPUCwwRUFBa0JBLENBQUNGLHFFQUFnQkEsQ0FBQ0QseUVBQWtCQSxDQUFDRSxnRUFBYSxDQUFDSyxRQUFRSyxHQUFHLEVBQUVOLGFBQWE7UUFDeEdPLFlBQVlOLFFBQVFNLFVBQVU7UUFDOUJDLFdBQVdQLFFBQVFPLFNBQVM7SUFDaEM7SUFDQSxPQUFPTixXQUFXSix3RkFBc0JBLENBQUNNLFFBQVFBO0FBQ3JELEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3BhZ2UtcGF0aC9hYnNvbHV0ZS1wYXRoLXRvLXBhZ2UuanM/YjBmNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnN1cmVMZWFkaW5nU2xhc2ggfSBmcm9tIFwiLi9lbnN1cmUtbGVhZGluZy1zbGFzaFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplUGF0aFNlcCB9IGZyb20gXCIuL25vcm1hbGl6ZS1wYXRoLXNlcFwiO1xuaW1wb3J0IHBhdGggZnJvbSBcIi4uL2lzb21vcnBoaWMvcGF0aFwiO1xuaW1wb3J0IHsgcmVtb3ZlUGFnZVBhdGhUYWlsIH0gZnJvbSBcIi4vcmVtb3ZlLXBhZ2UtcGF0aC10YWlsXCI7XG5pbXBvcnQgeyBub3JtYWxpemVNZXRhZGF0YVJvdXRlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9tZXRhZGF0YS9nZXQtbWV0YWRhdGEtcm91dGVcIjtcbi8qKlxuICogR2l2ZW4gdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhZ2VzIGZvbGRlciwgYW4gYWJzb2x1dGUgZmlsZSBwYXRoIGZvciBhXG4gKiBwYWdlIGFuZCB0aGUgcGFnZSBleHRlbnNpb25zLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBwYWdlIHBhdGhcbiAqIHJlbGF0aXZlIHRvIHRoZSBwYWdlcyBmb2xkZXIuIEl0IGRvZXNuJ3QgY29uc2lkZXIgaW5kZXggdGFpbC4gRXhhbXBsZTpcbiAqICAtIGAvVXNlcnMvcmljay9teS1wcm9qZWN0L3BhZ2VzL2Zvby9iYXIvYmF6LmpzYCAtPiBgL2Zvby9iYXIvYmF6YFxuICpcbiAqIEl0IGFsc28gaGFuZGxlcyBzcGVjaWFsIG1ldGFkYXRhIHJvdXRlcyBtYXBwaW5nLiBFeGFtcGxlOlxuICogLSBgL1VzZXJzL3JpY2svbXktcHJvamVjdC9hcHAvc2l0ZW1hcC5qc2AgLT4gYC9zaXRlbWFwL3JvdXRlYFxuICpcbiAqIEBwYXJhbSBmaWxlcGF0aCBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBwYWdlLlxuICogQHBhcmFtIG9wdHMuZGlyIEFic29sdXRlIHBhdGggdG8gdGhlIHBhZ2VzL2FwcCBmb2xkZXIuXG4gKiBAcGFyYW0gb3B0cy5leHRlbnNpb25zIEV4dGVuc2lvbnMgYWxsb3dlZCBmb3IgdGhlIHBhZ2UuXG4gKiBAcGFyYW0gb3B0cy5rZWVwSW5kZXggV2hlbiB0cnVlIHRoZSB0cmFpbGluZyBgaW5kZXhgIGtlcHQgaW4gdGhlIHBhdGguXG4gKiBAcGFyYW0gb3B0cy5wYWdlc1R5cGUgV2hldGhlciB0aGUgcGFnZSBpcyBpbiB0aGUgcGFnZXMgb3IgYXBwIGRpcmVjdG9yeS5cbiAqLyBleHBvcnQgZnVuY3Rpb24gYWJzb2x1dGVQYXRoVG9QYWdlKHBhZ2VQYXRoLCBvcHRpb25zKSB7XG4gICAgY29uc3QgaXNBcHBEaXIgPSBvcHRpb25zLnBhZ2VzVHlwZSA9PT0gXCJhcHBcIjtcbiAgICBjb25zdCBwYWdlID0gcmVtb3ZlUGFnZVBhdGhUYWlsKG5vcm1hbGl6ZVBhdGhTZXAoZW5zdXJlTGVhZGluZ1NsYXNoKHBhdGgucmVsYXRpdmUob3B0aW9ucy5kaXIsIHBhZ2VQYXRoKSkpLCB7XG4gICAgICAgIGV4dGVuc2lvbnM6IG9wdGlvbnMuZXh0ZW5zaW9ucyxcbiAgICAgICAga2VlcEluZGV4OiBvcHRpb25zLmtlZXBJbmRleFxuICAgIH0pO1xuICAgIHJldHVybiBpc0FwcERpciA/IG5vcm1hbGl6ZU1ldGFkYXRhUm91dGUocGFnZSkgOiBwYWdlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hYnNvbHV0ZS1wYXRoLXRvLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbImVuc3VyZUxlYWRpbmdTbGFzaCIsIm5vcm1hbGl6ZVBhdGhTZXAiLCJwYXRoIiwicmVtb3ZlUGFnZVBhdGhUYWlsIiwibm9ybWFsaXplTWV0YWRhdGFSb3V0ZSIsImFic29sdXRlUGF0aFRvUGFnZSIsInBhZ2VQYXRoIiwib3B0aW9ucyIsImlzQXBwRGlyIiwicGFnZXNUeXBlIiwicGFnZSIsInJlbGF0aXZlIiwiZGlyIiwiZXh0ZW5zaW9ucyIsImtlZXBJbmRleCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/denormalize-page-path.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/page-path/denormalize-page-path.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ denormalizePagePath: () => (/* binding */ denormalizePagePath)\n/* harmony export */ });\n/* harmony import */ var _router_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../router/utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/index.js\");\n/* harmony import */ var _normalize_path_sep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normalize-path-sep */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\");\n\n\n/**\n * Performs the opposite transformation of `normalizePagePath`. Note that\n * this function is not idempotent either in cases where there are multiple\n * leading `/index` for the page. Examples:\n * - `/index` -> `/`\n * - `/index/foo` -> `/foo`\n * - `/index/index` -> `/index`\n */ function denormalizePagePath(page) {\n let _page = (0,_normalize_path_sep__WEBPACK_IMPORTED_MODULE_1__.normalizePathSep)(page);\n return _page.startsWith(\"/index/\") && !(0,_router_utils__WEBPACK_IMPORTED_MODULE_0__.isDynamicRoute)(_page) ? _page.slice(6) : _page !== \"/index\" ? _page : \"/\";\n} //# sourceMappingURL=denormalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFpRDtBQUNPO0FBQ3hEOzs7Ozs7O0NBT0MsR0FBVSxTQUFTRSxvQkFBb0JDLElBQUk7SUFDeEMsSUFBSUMsUUFBUUgscUVBQWdCQSxDQUFDRTtJQUM3QixPQUFPQyxNQUFNQyxVQUFVLENBQUMsY0FBYyxDQUFDTCw2REFBY0EsQ0FBQ0ksU0FBU0EsTUFBTUUsS0FBSyxDQUFDLEtBQUtGLFVBQVUsV0FBV0EsUUFBUTtBQUNqSCxFQUVBLGlEQUFpRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzPzUxYTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tIFwiLi4vcm91dGVyL3V0aWxzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVQYXRoU2VwIH0gZnJvbSBcIi4vbm9ybWFsaXplLXBhdGgtc2VwXCI7XG4vKipcbiAqIFBlcmZvcm1zIHRoZSBvcHBvc2l0ZSB0cmFuc2Zvcm1hdGlvbiBvZiBgbm9ybWFsaXplUGFnZVBhdGhgLiBOb3RlIHRoYXRcbiAqIHRoaXMgZnVuY3Rpb24gaXMgbm90IGlkZW1wb3RlbnQgZWl0aGVyIGluIGNhc2VzIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZVxuICogbGVhZGluZyBgL2luZGV4YCBmb3IgdGhlIHBhZ2UuIEV4YW1wbGVzOlxuICogIC0gYC9pbmRleGAgLT4gYC9gXG4gKiAgLSBgL2luZGV4L2Zvb2AgLT4gYC9mb29gXG4gKiAgLSBgL2luZGV4L2luZGV4YCAtPiBgL2luZGV4YFxuICovIGV4cG9ydCBmdW5jdGlvbiBkZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhZ2UpIHtcbiAgICBsZXQgX3BhZ2UgPSBub3JtYWxpemVQYXRoU2VwKHBhZ2UpO1xuICAgIHJldHVybiBfcGFnZS5zdGFydHNXaXRoKFwiL2luZGV4L1wiKSAmJiAhaXNEeW5hbWljUm91dGUoX3BhZ2UpID8gX3BhZ2Uuc2xpY2UoNikgOiBfcGFnZSAhPT0gXCIvaW5kZXhcIiA/IF9wYWdlIDogXCIvXCI7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiaXNEeW5hbWljUm91dGUiLCJub3JtYWxpemVQYXRoU2VwIiwiZGVub3JtYWxpemVQYWdlUGF0aCIsInBhZ2UiLCJfcGFnZSIsInN0YXJ0c1dpdGgiLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/denormalize-page-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ensureLeadingSlash: () => (/* binding */ ensureLeadingSlash)\n/* harmony export */ });\n/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ function ensureLeadingSlash(path) {\n return path.startsWith(\"/\") ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUFVLFNBQVNBLG1CQUFtQkMsSUFBSTtJQUN2QyxPQUFPQSxLQUFLQyxVQUFVLENBQUMsT0FBT0QsT0FBTyxNQUFNQTtBQUMvQyxFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanM/M2M3NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvciBhIGdpdmVuIHBhZ2UgcGF0aCwgdGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgYSBsZWFkaW5nIHNsYXNoLlxuICogSWYgdGhlcmUgaXMgbm90IGEgbGVhZGluZyBzbGFzaCwgb25lIGlzIGFkZGVkLCBvdGhlcndpc2UgaXQgaXMgbm9vcC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZW5zdXJlTGVhZGluZ1NsYXNoKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aC5zdGFydHNXaXRoKFwiL1wiKSA/IHBhdGggOiBcIi9cIiArIHBhdGg7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVuc3VyZS1sZWFkaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnN1cmVMZWFkaW5nU2xhc2giLCJwYXRoIiwic3RhcnRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-page-path.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/page-path/normalize-page-path.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizePagePath: () => (/* binding */ normalizePagePath)\n/* harmony export */ });\n/* harmony import */ var _ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ensure-leading-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\");\n/* harmony import */ var _router_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../router/utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/utils.js\");\n\n\n\n/**\n * Takes a page and transforms it into its file counterpart ensuring that the\n * output is normalized. Note this function is not idempotent because a page\n * `/index` can be referencing `/index/index.js` and `/index/index` could be\n * referencing `/index/index/index.js`. Examples:\n * - `/` -> `/index`\n * - `/index/foo` -> `/index/index/foo`\n * - `/index` -> `/index/index`\n */ function normalizePagePath(page) {\n const normalized = /^\\/index(\\/|$)/.test(page) && !(0,_router_utils__WEBPACK_IMPORTED_MODULE_1__.isDynamicRoute)(page) ? \"/index\" + page : page === \"/\" ? \"/index\" : (0,_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__.ensureLeadingSlash)(page);\n if (false) {}\n return normalized;\n} //# sourceMappingURL=normalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhZ2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTREO0FBQ1g7QUFDUDtBQUMxQzs7Ozs7Ozs7Q0FRQyxHQUFVLFNBQVNHLGtCQUFrQkMsSUFBSTtJQUN0QyxNQUFNQyxhQUFhLGlCQUFpQkMsSUFBSSxDQUFDRixTQUFTLENBQUNILDZEQUFjQSxDQUFDRyxRQUFRLFdBQVdBLE9BQU9BLFNBQVMsTUFBTSxXQUFXSix5RUFBa0JBLENBQUNJO0lBQ3pJLElBQUlHLEtBQW1DLEVBQUUsRUFNeEM7SUFDRCxPQUFPRjtBQUNYLEVBRUEsK0NBQStDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGFnZS1wYXRoLmpzP2IyZGYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSBcIi4vZW5zdXJlLWxlYWRpbmctc2xhc2hcIjtcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSBcIi4uL3JvdXRlci91dGlsc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplRXJyb3IgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbi8qKlxuICogVGFrZXMgYSBwYWdlIGFuZCB0cmFuc2Zvcm1zIGl0IGludG8gaXRzIGZpbGUgY291bnRlcnBhcnQgZW5zdXJpbmcgdGhhdCB0aGVcbiAqIG91dHB1dCBpcyBub3JtYWxpemVkLiBOb3RlIHRoaXMgZnVuY3Rpb24gaXMgbm90IGlkZW1wb3RlbnQgYmVjYXVzZSBhIHBhZ2VcbiAqIGAvaW5kZXhgIGNhbiBiZSByZWZlcmVuY2luZyBgL2luZGV4L2luZGV4LmpzYCBhbmQgYC9pbmRleC9pbmRleGAgY291bGQgYmVcbiAqIHJlZmVyZW5jaW5nIGAvaW5kZXgvaW5kZXgvaW5kZXguanNgLiBFeGFtcGxlczpcbiAqICAtIGAvYCAtPiBgL2luZGV4YFxuICogIC0gYC9pbmRleC9mb29gIC0+IGAvaW5kZXgvaW5kZXgvZm9vYFxuICogIC0gYC9pbmRleGAgLT4gYC9pbmRleC9pbmRleGBcbiAqLyBleHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFnZVBhdGgocGFnZSkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSAvXlxcL2luZGV4KFxcL3wkKS8udGVzdChwYWdlKSAmJiAhaXNEeW5hbWljUm91dGUocGFnZSkgPyBcIi9pbmRleFwiICsgcGFnZSA6IHBhZ2UgPT09IFwiL1wiID8gXCIvaW5kZXhcIiA6IGVuc3VyZUxlYWRpbmdTbGFzaChwYWdlKTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIikge1xuICAgICAgICBjb25zdCB7IHBvc2l4IH0gPSByZXF1aXJlKFwicGF0aFwiKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRQYWdlID0gcG9zaXgubm9ybWFsaXplKG5vcm1hbGl6ZWQpO1xuICAgICAgICBpZiAocmVzb2x2ZWRQYWdlICE9PSBub3JtYWxpemVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm9ybWFsaXplRXJyb3IoXCJSZXF1ZXN0ZWQgYW5kIHJlc29sdmVkIHBhZ2UgbWlzbWF0Y2g6IFwiICsgbm9ybWFsaXplZCArIFwiIFwiICsgcmVzb2x2ZWRQYWdlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXBhZ2UtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwiaXNEeW5hbWljUm91dGUiLCJOb3JtYWxpemVFcnJvciIsIm5vcm1hbGl6ZVBhZ2VQYXRoIiwicGFnZSIsIm5vcm1hbGl6ZWQiLCJ0ZXN0IiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsInBvc2l4IiwicmVxdWlyZSIsInJlc29sdmVkUGFnZSIsIm5vcm1hbGl6ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-page-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizePathSep: () => (/* binding */ normalizePathSep)\n/* harmony export */ });\n/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ function normalizePathSep(path) {\n return path.replace(/\\\\/g, \"/\");\n} //# sourceMappingURL=normalize-path-sep.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhdGgtc2VwLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztDQUlDLEdBQVUsU0FBU0EsaUJBQWlCQyxJQUFJO0lBQ3JDLE9BQU9BLEtBQUtDLE9BQU8sQ0FBQyxPQUFPO0FBQy9CLEVBRUEsOENBQThDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXAuanM/YmNlOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvciBhIGdpdmVuIHBhZ2UgcGF0aCwgdGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgbm8gYmFja3NsYXNoXG4gKiBlc2NhcGluZyBzbGFzaGVzIGluIHRoZSBwYXRoLiBFeGFtcGxlOlxuICogIC0gYGZvb1xcL2JhclxcL2JhemAgLT4gYGZvby9iYXIvYmF6YFxuICovIGV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXBhdGgtc2VwLmpzLm1hcCJdLCJuYW1lcyI6WyJub3JtYWxpemVQYXRoU2VwIiwicGF0aCIsInJlcGxhY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/remove-page-path-tail.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/page-path/remove-page-path-tail.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removePagePathTail: () => (/* binding */ removePagePathTail)\n/* harmony export */ });\n/* harmony import */ var _normalize_path_sep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normalize-path-sep */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\");\n\n/**\n * Removes the file extension for a page and the trailing `index` if it exists\n * making sure to not return an empty string. The page head is not touched\n * and returned as it is passed. Examples:\n * - `/foo/bar/baz/index.js` -> `/foo/bar/baz`\n * - `/foo/bar/baz.js` -> `/foo/bar/baz`\n *\n * @param pagePath A page to a page file (absolute or relative)\n * @param options.extensions Extensions allowed for the page.\n * @param options.keepIndex When true the trailing `index` is _not_ removed.\n */ function removePagePathTail(pagePath, options) {\n pagePath = (0,_normalize_path_sep__WEBPACK_IMPORTED_MODULE_0__.normalizePathSep)(pagePath).replace(new RegExp(\"\\\\.+(?:\" + options.extensions.join(\"|\") + \")$\"), \"\");\n if (options.keepIndex !== true) {\n pagePath = pagePath.replace(/\\/index$/, \"\") || \"/\";\n }\n return pagePath;\n} //# sourceMappingURL=remove-page-path-tail.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvcmVtb3ZlLXBhZ2UtcGF0aC10YWlsLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdEO0FBQ3hEOzs7Ozs7Ozs7O0NBVUMsR0FBVSxTQUFTQyxtQkFBbUJDLFFBQVEsRUFBRUMsT0FBTztJQUNwREQsV0FBV0YscUVBQWdCQSxDQUFDRSxVQUFVRSxPQUFPLENBQUMsSUFBSUMsT0FBTyxZQUFZRixRQUFRRyxVQUFVLENBQUNDLElBQUksQ0FBQyxPQUFPLE9BQU87SUFDM0csSUFBSUosUUFBUUssU0FBUyxLQUFLLE1BQU07UUFDNUJOLFdBQVdBLFNBQVNFLE9BQU8sQ0FBQyxZQUFZLE9BQU87SUFDbkQ7SUFDQSxPQUFPRjtBQUNYLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3BhZ2UtcGF0aC9yZW1vdmUtcGFnZS1wYXRoLXRhaWwuanM/MDljZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVQYXRoU2VwIH0gZnJvbSBcIi4vbm9ybWFsaXplLXBhdGgtc2VwXCI7XG4vKipcbiAqIFJlbW92ZXMgdGhlIGZpbGUgZXh0ZW5zaW9uIGZvciBhIHBhZ2UgYW5kIHRoZSB0cmFpbGluZyBgaW5kZXhgIGlmIGl0IGV4aXN0c1xuICogbWFraW5nIHN1cmUgdG8gbm90IHJldHVybiBhbiBlbXB0eSBzdHJpbmcuIFRoZSBwYWdlIGhlYWQgaXMgbm90IHRvdWNoZWRcbiAqIGFuZCByZXR1cm5lZCBhcyBpdCBpcyBwYXNzZWQuIEV4YW1wbGVzOlxuICogICAtIGAvZm9vL2Jhci9iYXovaW5kZXguanNgIC0+IGAvZm9vL2Jhci9iYXpgXG4gKiAgIC0gYC9mb28vYmFyL2Jhei5qc2AgLT4gYC9mb28vYmFyL2JhemBcbiAqXG4gKiBAcGFyYW0gcGFnZVBhdGggQSBwYWdlIHRvIGEgcGFnZSBmaWxlIChhYnNvbHV0ZSBvciByZWxhdGl2ZSlcbiAqIEBwYXJhbSBvcHRpb25zLmV4dGVuc2lvbnMgRXh0ZW5zaW9ucyBhbGxvd2VkIGZvciB0aGUgcGFnZS5cbiAqIEBwYXJhbSBvcHRpb25zLmtlZXBJbmRleCBXaGVuIHRydWUgdGhlIHRyYWlsaW5nIGBpbmRleGAgaXMgX25vdF8gcmVtb3ZlZC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGFnZVBhdGhUYWlsKHBhZ2VQYXRoLCBvcHRpb25zKSB7XG4gICAgcGFnZVBhdGggPSBub3JtYWxpemVQYXRoU2VwKHBhZ2VQYXRoKS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLisoPzpcIiArIG9wdGlvbnMuZXh0ZW5zaW9ucy5qb2luKFwifFwiKSArIFwiKSRcIiksIFwiXCIpO1xuICAgIGlmIChvcHRpb25zLmtlZXBJbmRleCAhPT0gdHJ1ZSkge1xuICAgICAgICBwYWdlUGF0aCA9IHBhZ2VQYXRoLnJlcGxhY2UoL1xcL2luZGV4JC8sIFwiXCIpIHx8IFwiL1wiO1xuICAgIH1cbiAgICByZXR1cm4gcGFnZVBhdGg7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbW92ZS1wYWdlLXBhdGgtdGFpbC5qcy5tYXAiXSwibmFtZXMiOlsibm9ybWFsaXplUGF0aFNlcCIsInJlbW92ZVBhZ2VQYXRoVGFpbCIsInBhZ2VQYXRoIiwib3B0aW9ucyIsInJlcGxhY2UiLCJSZWdFeHAiLCJleHRlbnNpb25zIiwiam9pbiIsImtlZXBJbmRleCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/remove-page-path-tail.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router-context.shared-runtime.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router-context.shared-runtime.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RouterContext: () => (/* binding */ RouterContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nconst RouterContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null);\nif (true) {\n RouterContext.displayName = \"RouterContext\";\n} //# sourceMappingURL=router-context.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMEI7QUFDbkIsTUFBTUMsOEJBQWdCRCwwREFBbUIsQ0FBQyxNQUFNO0FBQ3ZELElBQUlHLElBQXFDLEVBQUU7SUFDdkNGLGNBQWNHLFdBQVcsR0FBRztBQUNoQyxFQUVBLHlEQUF5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcz9kOGE1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCBjb25zdCBSb3V0ZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBSb3V0ZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJSb3V0ZXJDb250ZXh0XCI7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lLmpzLm1hcCJdLCJuYW1lcyI6WyJSZWFjdCIsIlJvdXRlckNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwicHJvY2VzcyIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router-context.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/action-queue.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/action-queue.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ActionQueueContext: () => (/* binding */ ActionQueueContext),\n/* harmony export */ createMutableActionQueue: () => (/* binding */ createMutableActionQueue)\n/* harmony export */ });\n/* harmony import */ var _client_components_router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../client/components/router-reducer/router-reducer-types */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js\");\n/* harmony import */ var _client_components_router_reducer_router_reducer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../client/components/router-reducer/router-reducer */ \"(ssr)/../../node_modules/next/dist/esm/client/components/router-reducer/router-reducer.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst ActionQueueContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_2___default().createContext(null);\nfunction runRemainingActions(actionQueue, setState) {\n if (actionQueue.pending !== null) {\n actionQueue.pending = actionQueue.pending.next;\n if (actionQueue.pending !== null) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n runAction({\n actionQueue,\n action: actionQueue.pending,\n setState\n });\n }\n }\n}\nasync function runAction(param) {\n let { actionQueue, action, setState } = param;\n const prevState = actionQueue.state;\n if (!prevState) {\n // This shouldn't happen as the state is initialized in the dispatcher if it's not set\n throw new Error(\"Invariant: Router state not initialized\");\n }\n actionQueue.pending = action;\n const payload = action.payload;\n const actionResult = actionQueue.action(prevState, payload);\n function handleResult(nextState) {\n // if we discarded this action, the state should also be discarded\n if (action.discarded) {\n // if a refresh is needed, we only want to trigger it once the action queue is empty\n if (actionQueue.needsRefresh && actionQueue.pending === null) {\n actionQueue.needsRefresh = false;\n actionQueue.dispatch({\n type: _client_components_router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_REFRESH,\n origin: window.location.origin\n }, setState);\n }\n return;\n }\n actionQueue.state = nextState;\n if (actionQueue.devToolsInstance) {\n actionQueue.devToolsInstance.send(payload, nextState);\n }\n runRemainingActions(actionQueue, setState);\n action.resolve(nextState);\n }\n // if the action is a promise, set up a callback to resolve it\n if ((0,_client_components_router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.isThenable)(actionResult)) {\n actionResult.then(handleResult, (err)=>{\n runRemainingActions(actionQueue, setState);\n action.reject(err);\n });\n } else {\n handleResult(actionResult);\n }\n}\nfunction dispatchAction(actionQueue, payload, setState) {\n let resolvers = {\n resolve: setState,\n reject: ()=>{}\n };\n // most of the action types are async with the exception of restore\n // it's important that restore is handled quickly since it's fired on the popstate event\n // and we don't want to add any delay on a back/forward nav\n // this only creates a promise for the async actions\n if (payload.type !== _client_components_router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_RESTORE) {\n // Create the promise and assign the resolvers to the object.\n const deferredPromise = new Promise((resolve, reject)=>{\n resolvers = {\n resolve,\n reject\n };\n });\n (0,react__WEBPACK_IMPORTED_MODULE_2__.startTransition)(()=>{\n // we immediately notify React of the pending promise -- the resolver is attached to the action node\n // and will be called when the associated action promise resolves\n setState(deferredPromise);\n });\n }\n const newAction = {\n payload,\n next: null,\n resolve: resolvers.resolve,\n reject: resolvers.reject\n };\n // Check if the queue is empty\n if (actionQueue.pending === null) {\n // The queue is empty, so add the action and start it immediately\n // Mark this action as the last in the queue\n actionQueue.last = newAction;\n runAction({\n actionQueue,\n action: newAction,\n setState\n });\n } else if (payload.type === _client_components_router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_NAVIGATE) {\n // Navigations take priority over any pending actions.\n // Mark the pending action as discarded (so the state is never applied) and start the navigation action immediately.\n actionQueue.pending.discarded = true;\n // Mark this action as the last in the queue\n actionQueue.last = newAction;\n // if the pending action was a server action, mark the queue as needing a refresh once events are processed\n if (actionQueue.pending.payload.type === _client_components_router_reducer_router_reducer_types__WEBPACK_IMPORTED_MODULE_0__.ACTION_SERVER_ACTION) {\n actionQueue.needsRefresh = true;\n }\n runAction({\n actionQueue,\n action: newAction,\n setState\n });\n } else {\n // The queue is not empty, so add the action to the end of the queue\n // It will be started by runRemainingActions after the previous action finishes\n if (actionQueue.last !== null) {\n actionQueue.last.next = newAction;\n }\n actionQueue.last = newAction;\n }\n}\nfunction createMutableActionQueue() {\n const actionQueue = {\n state: null,\n dispatch: (payload, setState)=>dispatchAction(actionQueue, payload, setState),\n action: async (state, action)=>{\n if (state === null) {\n throw new Error(\"Invariant: Router state not initialized\");\n }\n const result = (0,_client_components_router_reducer_router_reducer__WEBPACK_IMPORTED_MODULE_1__.reducer)(state, action);\n return result;\n },\n pending: null,\n last: null\n };\n return actionQueue;\n} //# sourceMappingURL=action-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvYWN0aW9uLXF1ZXVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFtSztBQUNoRjtBQUNwQztBQUN4QyxNQUFNUSxtQ0FBcUJGLDBEQUFtQixDQUFDLE1BQU07QUFDNUQsU0FBU0ksb0JBQW9CQyxXQUFXLEVBQUVDLFFBQVE7SUFDOUMsSUFBSUQsWUFBWUUsT0FBTyxLQUFLLE1BQU07UUFDOUJGLFlBQVlFLE9BQU8sR0FBR0YsWUFBWUUsT0FBTyxDQUFDQyxJQUFJO1FBQzlDLElBQUlILFlBQVlFLE9BQU8sS0FBSyxNQUFNO1lBQzlCLG1FQUFtRTtZQUNuRUUsVUFBVTtnQkFDTko7Z0JBQ0FLLFFBQVFMLFlBQVlFLE9BQU87Z0JBQzNCRDtZQUNKO1FBQ0o7SUFDSjtBQUNKO0FBQ0EsZUFBZUcsVUFBVUUsS0FBSztJQUMxQixJQUFJLEVBQUVOLFdBQVcsRUFBRUssTUFBTSxFQUFFSixRQUFRLEVBQUUsR0FBR0s7SUFDeEMsTUFBTUMsWUFBWVAsWUFBWVEsS0FBSztJQUNuQyxJQUFJLENBQUNELFdBQVc7UUFDWixzRkFBc0Y7UUFDdEYsTUFBTSxJQUFJRSxNQUFNO0lBQ3BCO0lBQ0FULFlBQVlFLE9BQU8sR0FBR0c7SUFDdEIsTUFBTUssVUFBVUwsT0FBT0ssT0FBTztJQUM5QixNQUFNQyxlQUFlWCxZQUFZSyxNQUFNLENBQUNFLFdBQVdHO0lBQ25ELFNBQVNFLGFBQWFDLFNBQVM7UUFDM0Isa0VBQWtFO1FBQ2xFLElBQUlSLE9BQU9TLFNBQVMsRUFBRTtZQUNsQixvRkFBb0Y7WUFDcEYsSUFBSWQsWUFBWWUsWUFBWSxJQUFJZixZQUFZRSxPQUFPLEtBQUssTUFBTTtnQkFDMURGLFlBQVllLFlBQVksR0FBRztnQkFDM0JmLFlBQVlnQixRQUFRLENBQUM7b0JBQ2pCQyxNQUFNM0Isa0dBQWNBO29CQUNwQjRCLFFBQVFDLE9BQU9DLFFBQVEsQ0FBQ0YsTUFBTTtnQkFDbEMsR0FBR2pCO1lBQ1A7WUFDQTtRQUNKO1FBQ0FELFlBQVlRLEtBQUssR0FBR0s7UUFDcEIsSUFBSWIsWUFBWXFCLGdCQUFnQixFQUFFO1lBQzlCckIsWUFBWXFCLGdCQUFnQixDQUFDQyxJQUFJLENBQUNaLFNBQVNHO1FBQy9DO1FBQ0FkLG9CQUFvQkMsYUFBYUM7UUFDakNJLE9BQU9rQixPQUFPLENBQUNWO0lBQ25CO0lBQ0EsOERBQThEO0lBQzlELElBQUl4QixrR0FBVUEsQ0FBQ3NCLGVBQWU7UUFDMUJBLGFBQWFhLElBQUksQ0FBQ1osY0FBYyxDQUFDYTtZQUM3QjFCLG9CQUFvQkMsYUFBYUM7WUFDakNJLE9BQU9xQixNQUFNLENBQUNEO1FBQ2xCO0lBQ0osT0FBTztRQUNIYixhQUFhRDtJQUNqQjtBQUNKO0FBQ0EsU0FBU2dCLGVBQWUzQixXQUFXLEVBQUVVLE9BQU8sRUFBRVQsUUFBUTtJQUNsRCxJQUFJMkIsWUFBWTtRQUNaTCxTQUFTdEI7UUFDVHlCLFFBQVEsS0FBSztJQUNqQjtJQUNBLG1FQUFtRTtJQUNuRSx3RkFBd0Y7SUFDeEYsMkRBQTJEO0lBQzNELG9EQUFvRDtJQUNwRCxJQUFJaEIsUUFBUU8sSUFBSSxLQUFLeEIsa0dBQWNBLEVBQUU7UUFDakMsNkRBQTZEO1FBQzdELE1BQU1vQyxrQkFBa0IsSUFBSUMsUUFBUSxDQUFDUCxTQUFTRztZQUMxQ0UsWUFBWTtnQkFDUkw7Z0JBQ0FHO1lBQ0o7UUFDSjtRQUNBOUIsc0RBQWVBLENBQUM7WUFDWixvR0FBb0c7WUFDcEcsaUVBQWlFO1lBQ2pFSyxTQUFTNEI7UUFDYjtJQUNKO0lBQ0EsTUFBTUUsWUFBWTtRQUNkckI7UUFDQVAsTUFBTTtRQUNOb0IsU0FBU0ssVUFBVUwsT0FBTztRQUMxQkcsUUFBUUUsVUFBVUYsTUFBTTtJQUM1QjtJQUNBLDhCQUE4QjtJQUM5QixJQUFJMUIsWUFBWUUsT0FBTyxLQUFLLE1BQU07UUFDOUIsaUVBQWlFO1FBQ2pFLDRDQUE0QztRQUM1Q0YsWUFBWWdDLElBQUksR0FBR0Q7UUFDbkIzQixVQUFVO1lBQ05KO1lBQ0FLLFFBQVEwQjtZQUNSOUI7UUFDSjtJQUNKLE9BQU8sSUFBSVMsUUFBUU8sSUFBSSxLQUFLekIsbUdBQWVBLEVBQUU7UUFDekMsc0RBQXNEO1FBQ3RELG9IQUFvSDtRQUNwSFEsWUFBWUUsT0FBTyxDQUFDWSxTQUFTLEdBQUc7UUFDaEMsNENBQTRDO1FBQzVDZCxZQUFZZ0MsSUFBSSxHQUFHRDtRQUNuQiwyR0FBMkc7UUFDM0csSUFBSS9CLFlBQVlFLE9BQU8sQ0FBQ1EsT0FBTyxDQUFDTyxJQUFJLEtBQUsxQix3R0FBb0JBLEVBQUU7WUFDM0RTLFlBQVllLFlBQVksR0FBRztRQUMvQjtRQUNBWCxVQUFVO1lBQ05KO1lBQ0FLLFFBQVEwQjtZQUNSOUI7UUFDSjtJQUNKLE9BQU87UUFDSCxvRUFBb0U7UUFDcEUsK0VBQStFO1FBQy9FLElBQUlELFlBQVlnQyxJQUFJLEtBQUssTUFBTTtZQUMzQmhDLFlBQVlnQyxJQUFJLENBQUM3QixJQUFJLEdBQUc0QjtRQUM1QjtRQUNBL0IsWUFBWWdDLElBQUksR0FBR0Q7SUFDdkI7QUFDSjtBQUNPLFNBQVNFO0lBQ1osTUFBTWpDLGNBQWM7UUFDaEJRLE9BQU87UUFDUFEsVUFBVSxDQUFDTixTQUFTVCxXQUFXMEIsZUFBZTNCLGFBQWFVLFNBQVNUO1FBQ3BFSSxRQUFRLE9BQU9HLE9BQU9IO1lBQ2xCLElBQUlHLFVBQVUsTUFBTTtnQkFDaEIsTUFBTSxJQUFJQyxNQUFNO1lBQ3BCO1lBQ0EsTUFBTXlCLFNBQVN4Qyx5RkFBT0EsQ0FBQ2MsT0FBT0g7WUFDOUIsT0FBTzZCO1FBQ1g7UUFDQWhDLFNBQVM7UUFDVDhCLE1BQU07SUFDVjtJQUNBLE9BQU9oQztBQUNYLEVBRUEsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci9hY3Rpb24tcXVldWUuanM/YzlkYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1RoZW5hYmxlLCBBQ1RJT05fUkVGUkVTSCwgQUNUSU9OX1NFUlZFUl9BQ1RJT04sIEFDVElPTl9OQVZJR0FURSwgQUNUSU9OX1JFU1RPUkUgfSBmcm9tIFwiLi4vLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXNcIjtcbmltcG9ydCB7IHJlZHVjZXIgfSBmcm9tIFwiLi4vLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXJcIjtcbmltcG9ydCBSZWFjdCwgeyBzdGFydFRyYW5zaXRpb24gfSBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCBjb25zdCBBY3Rpb25RdWV1ZUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZnVuY3Rpb24gcnVuUmVtYWluaW5nQWN0aW9ucyhhY3Rpb25RdWV1ZSwgc2V0U3RhdGUpIHtcbiAgICBpZiAoYWN0aW9uUXVldWUucGVuZGluZyAhPT0gbnVsbCkge1xuICAgICAgICBhY3Rpb25RdWV1ZS5wZW5kaW5nID0gYWN0aW9uUXVldWUucGVuZGluZy5uZXh0O1xuICAgICAgICBpZiAoYWN0aW9uUXVldWUucGVuZGluZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgICAgcnVuQWN0aW9uKHtcbiAgICAgICAgICAgICAgICBhY3Rpb25RdWV1ZSxcbiAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvblF1ZXVlLnBlbmRpbmcsXG4gICAgICAgICAgICAgICAgc2V0U3RhdGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gcnVuQWN0aW9uKHBhcmFtKSB7XG4gICAgbGV0IHsgYWN0aW9uUXVldWUsIGFjdGlvbiwgc2V0U3RhdGUgfSA9IHBhcmFtO1xuICAgIGNvbnN0IHByZXZTdGF0ZSA9IGFjdGlvblF1ZXVlLnN0YXRlO1xuICAgIGlmICghcHJldlN0YXRlKSB7XG4gICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBhcyB0aGUgc3RhdGUgaXMgaW5pdGlhbGl6ZWQgaW4gdGhlIGRpc3BhdGNoZXIgaWYgaXQncyBub3Qgc2V0XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogUm91dGVyIHN0YXRlIG5vdCBpbml0aWFsaXplZFwiKTtcbiAgICB9XG4gICAgYWN0aW9uUXVldWUucGVuZGluZyA9IGFjdGlvbjtcbiAgICBjb25zdCBwYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgY29uc3QgYWN0aW9uUmVzdWx0ID0gYWN0aW9uUXVldWUuYWN0aW9uKHByZXZTdGF0ZSwgcGF5bG9hZCk7XG4gICAgZnVuY3Rpb24gaGFuZGxlUmVzdWx0KG5leHRTdGF0ZSkge1xuICAgICAgICAvLyBpZiB3ZSBkaXNjYXJkZWQgdGhpcyBhY3Rpb24sIHRoZSBzdGF0ZSBzaG91bGQgYWxzbyBiZSBkaXNjYXJkZWRcbiAgICAgICAgaWYgKGFjdGlvbi5kaXNjYXJkZWQpIHtcbiAgICAgICAgICAgIC8vIGlmIGEgcmVmcmVzaCBpcyBuZWVkZWQsIHdlIG9ubHkgd2FudCB0byB0cmlnZ2VyIGl0IG9uY2UgdGhlIGFjdGlvbiBxdWV1ZSBpcyBlbXB0eVxuICAgICAgICAgICAgaWYgKGFjdGlvblF1ZXVlLm5lZWRzUmVmcmVzaCAmJiBhY3Rpb25RdWV1ZS5wZW5kaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUXVldWUubmVlZHNSZWZyZXNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYWN0aW9uUXVldWUuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBBQ1RJT05fUkVGUkVTSCxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luXG4gICAgICAgICAgICAgICAgfSwgc2V0U3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGFjdGlvblF1ZXVlLnN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgICBpZiAoYWN0aW9uUXVldWUuZGV2VG9vbHNJbnN0YW5jZSkge1xuICAgICAgICAgICAgYWN0aW9uUXVldWUuZGV2VG9vbHNJbnN0YW5jZS5zZW5kKHBheWxvYWQsIG5leHRTdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcnVuUmVtYWluaW5nQWN0aW9ucyhhY3Rpb25RdWV1ZSwgc2V0U3RhdGUpO1xuICAgICAgICBhY3Rpb24ucmVzb2x2ZShuZXh0U3RhdGUpO1xuICAgIH1cbiAgICAvLyBpZiB0aGUgYWN0aW9uIGlzIGEgcHJvbWlzZSwgc2V0IHVwIGEgY2FsbGJhY2sgdG8gcmVzb2x2ZSBpdFxuICAgIGlmIChpc1RoZW5hYmxlKGFjdGlvblJlc3VsdCkpIHtcbiAgICAgICAgYWN0aW9uUmVzdWx0LnRoZW4oaGFuZGxlUmVzdWx0LCAoZXJyKT0+e1xuICAgICAgICAgICAgcnVuUmVtYWluaW5nQWN0aW9ucyhhY3Rpb25RdWV1ZSwgc2V0U3RhdGUpO1xuICAgICAgICAgICAgYWN0aW9uLnJlamVjdChlcnIpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVSZXN1bHQoYWN0aW9uUmVzdWx0KTtcbiAgICB9XG59XG5mdW5jdGlvbiBkaXNwYXRjaEFjdGlvbihhY3Rpb25RdWV1ZSwgcGF5bG9hZCwgc2V0U3RhdGUpIHtcbiAgICBsZXQgcmVzb2x2ZXJzID0ge1xuICAgICAgICByZXNvbHZlOiBzZXRTdGF0ZSxcbiAgICAgICAgcmVqZWN0OiAoKT0+e31cbiAgICB9O1xuICAgIC8vIG1vc3Qgb2YgdGhlIGFjdGlvbiB0eXBlcyBhcmUgYXN5bmMgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHJlc3RvcmVcbiAgICAvLyBpdCdzIGltcG9ydGFudCB0aGF0IHJlc3RvcmUgaXMgaGFuZGxlZCBxdWlja2x5IHNpbmNlIGl0J3MgZmlyZWQgb24gdGhlIHBvcHN0YXRlIGV2ZW50XG4gICAgLy8gYW5kIHdlIGRvbid0IHdhbnQgdG8gYWRkIGFueSBkZWxheSBvbiBhIGJhY2svZm9yd2FyZCBuYXZcbiAgICAvLyB0aGlzIG9ubHkgY3JlYXRlcyBhIHByb21pc2UgZm9yIHRoZSBhc3luYyBhY3Rpb25zXG4gICAgaWYgKHBheWxvYWQudHlwZSAhPT0gQUNUSU9OX1JFU1RPUkUpIHtcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBwcm9taXNlIGFuZCBhc3NpZ24gdGhlIHJlc29sdmVycyB0byB0aGUgb2JqZWN0LlxuICAgICAgICBjb25zdCBkZWZlcnJlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICAgICAgcmVzb2x2ZXJzID0ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUsXG4gICAgICAgICAgICAgICAgcmVqZWN0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpPT57XG4gICAgICAgICAgICAvLyB3ZSBpbW1lZGlhdGVseSBub3RpZnkgUmVhY3Qgb2YgdGhlIHBlbmRpbmcgcHJvbWlzZSAtLSB0aGUgcmVzb2x2ZXIgaXMgYXR0YWNoZWQgdG8gdGhlIGFjdGlvbiBub2RlXG4gICAgICAgICAgICAvLyBhbmQgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBhY3Rpb24gcHJvbWlzZSByZXNvbHZlc1xuICAgICAgICAgICAgc2V0U3RhdGUoZGVmZXJyZWRQcm9taXNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG5ld0FjdGlvbiA9IHtcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgICAgcmVzb2x2ZTogcmVzb2x2ZXJzLnJlc29sdmUsXG4gICAgICAgIHJlamVjdDogcmVzb2x2ZXJzLnJlamVjdFxuICAgIH07XG4gICAgLy8gQ2hlY2sgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5XG4gICAgaWYgKGFjdGlvblF1ZXVlLnBlbmRpbmcgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVGhlIHF1ZXVlIGlzIGVtcHR5LCBzbyBhZGQgdGhlIGFjdGlvbiBhbmQgc3RhcnQgaXQgaW1tZWRpYXRlbHlcbiAgICAgICAgLy8gTWFyayB0aGlzIGFjdGlvbiBhcyB0aGUgbGFzdCBpbiB0aGUgcXVldWVcbiAgICAgICAgYWN0aW9uUXVldWUubGFzdCA9IG5ld0FjdGlvbjtcbiAgICAgICAgcnVuQWN0aW9uKHtcbiAgICAgICAgICAgIGFjdGlvblF1ZXVlLFxuICAgICAgICAgICAgYWN0aW9uOiBuZXdBY3Rpb24sXG4gICAgICAgICAgICBzZXRTdGF0ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHBheWxvYWQudHlwZSA9PT0gQUNUSU9OX05BVklHQVRFKSB7XG4gICAgICAgIC8vIE5hdmlnYXRpb25zIHRha2UgcHJpb3JpdHkgb3ZlciBhbnkgcGVuZGluZyBhY3Rpb25zLlxuICAgICAgICAvLyBNYXJrIHRoZSBwZW5kaW5nIGFjdGlvbiBhcyBkaXNjYXJkZWQgKHNvIHRoZSBzdGF0ZSBpcyBuZXZlciBhcHBsaWVkKSBhbmQgc3RhcnQgdGhlIG5hdmlnYXRpb24gYWN0aW9uIGltbWVkaWF0ZWx5LlxuICAgICAgICBhY3Rpb25RdWV1ZS5wZW5kaW5nLmRpc2NhcmRlZCA9IHRydWU7XG4gICAgICAgIC8vIE1hcmsgdGhpcyBhY3Rpb24gYXMgdGhlIGxhc3QgaW4gdGhlIHF1ZXVlXG4gICAgICAgIGFjdGlvblF1ZXVlLmxhc3QgPSBuZXdBY3Rpb247XG4gICAgICAgIC8vIGlmIHRoZSBwZW5kaW5nIGFjdGlvbiB3YXMgYSBzZXJ2ZXIgYWN0aW9uLCBtYXJrIHRoZSBxdWV1ZSBhcyBuZWVkaW5nIGEgcmVmcmVzaCBvbmNlIGV2ZW50cyBhcmUgcHJvY2Vzc2VkXG4gICAgICAgIGlmIChhY3Rpb25RdWV1ZS5wZW5kaW5nLnBheWxvYWQudHlwZSA9PT0gQUNUSU9OX1NFUlZFUl9BQ1RJT04pIHtcbiAgICAgICAgICAgIGFjdGlvblF1ZXVlLm5lZWRzUmVmcmVzaCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcnVuQWN0aW9uKHtcbiAgICAgICAgICAgIGFjdGlvblF1ZXVlLFxuICAgICAgICAgICAgYWN0aW9uOiBuZXdBY3Rpb24sXG4gICAgICAgICAgICBzZXRTdGF0ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgcXVldWUgaXMgbm90IGVtcHR5LCBzbyBhZGQgdGhlIGFjdGlvbiB0byB0aGUgZW5kIG9mIHRoZSBxdWV1ZVxuICAgICAgICAvLyBJdCB3aWxsIGJlIHN0YXJ0ZWQgYnkgcnVuUmVtYWluaW5nQWN0aW9ucyBhZnRlciB0aGUgcHJldmlvdXMgYWN0aW9uIGZpbmlzaGVzXG4gICAgICAgIGlmIChhY3Rpb25RdWV1ZS5sYXN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBhY3Rpb25RdWV1ZS5sYXN0Lm5leHQgPSBuZXdBY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgYWN0aW9uUXVldWUubGFzdCA9IG5ld0FjdGlvbjtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTXV0YWJsZUFjdGlvblF1ZXVlKCkge1xuICAgIGNvbnN0IGFjdGlvblF1ZXVlID0ge1xuICAgICAgICBzdGF0ZTogbnVsbCxcbiAgICAgICAgZGlzcGF0Y2g6IChwYXlsb2FkLCBzZXRTdGF0ZSk9PmRpc3BhdGNoQWN0aW9uKGFjdGlvblF1ZXVlLCBwYXlsb2FkLCBzZXRTdGF0ZSksXG4gICAgICAgIGFjdGlvbjogYXN5bmMgKHN0YXRlLCBhY3Rpb24pPT57XG4gICAgICAgICAgICBpZiAoc3RhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IFJvdXRlciBzdGF0ZSBub3QgaW5pdGlhbGl6ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSByZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSxcbiAgICAgICAgcGVuZGluZzogbnVsbCxcbiAgICAgICAgbGFzdDogbnVsbFxuICAgIH07XG4gICAgcmV0dXJuIGFjdGlvblF1ZXVlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hY3Rpb24tcXVldWUuanMubWFwIl0sIm5hbWVzIjpbImlzVGhlbmFibGUiLCJBQ1RJT05fUkVGUkVTSCIsIkFDVElPTl9TRVJWRVJfQUNUSU9OIiwiQUNUSU9OX05BVklHQVRFIiwiQUNUSU9OX1JFU1RPUkUiLCJyZWR1Y2VyIiwiUmVhY3QiLCJzdGFydFRyYW5zaXRpb24iLCJBY3Rpb25RdWV1ZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwicnVuUmVtYWluaW5nQWN0aW9ucyIsImFjdGlvblF1ZXVlIiwic2V0U3RhdGUiLCJwZW5kaW5nIiwibmV4dCIsInJ1bkFjdGlvbiIsImFjdGlvbiIsInBhcmFtIiwicHJldlN0YXRlIiwic3RhdGUiLCJFcnJvciIsInBheWxvYWQiLCJhY3Rpb25SZXN1bHQiLCJoYW5kbGVSZXN1bHQiLCJuZXh0U3RhdGUiLCJkaXNjYXJkZWQiLCJuZWVkc1JlZnJlc2giLCJkaXNwYXRjaCIsInR5cGUiLCJvcmlnaW4iLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImRldlRvb2xzSW5zdGFuY2UiLCJzZW5kIiwicmVzb2x2ZSIsInRoZW4iLCJlcnIiLCJyZWplY3QiLCJkaXNwYXRjaEFjdGlvbiIsInJlc29sdmVycyIsImRlZmVycmVkUHJvbWlzZSIsIlByb21pc2UiLCJuZXdBY3Rpb24iLCJsYXN0IiwiY3JlYXRlTXV0YWJsZUFjdGlvblF1ZXVlIiwicmVzdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/action-queue.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addLocale: () => (/* binding */ addLocale)\n/* harmony export */ });\n/* harmony import */ var _add_path_prefix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add-path-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\");\n/* harmony import */ var _path_has_prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path-has-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\");\n\n\n/**\n * For a given path and a locale, if the locale is given, it will prefix the\n * locale. The path shouldn't be an API path. If a default locale is given the\n * prefix will be omitted if the locale is already the default locale.\n */ function addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0,_path_has_prefix__WEBPACK_IMPORTED_MODULE_1__.pathHasPrefix)(lower, \"/api\")) return path;\n if ((0,_path_has_prefix__WEBPACK_IMPORTED_MODULE_1__.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0,_add_path_prefix__WEBPACK_IMPORTED_MODULE_0__.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0Q7QUFDQTtBQUNsRDs7OztDQUlDLEdBQVUsU0FBU0UsVUFBVUMsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLGFBQWEsRUFBRUMsWUFBWTtJQUNuRSw0RUFBNEU7SUFDNUUsc0JBQXNCO0lBQ3RCLElBQUksQ0FBQ0YsVUFBVUEsV0FBV0MsZUFBZSxPQUFPRjtJQUNoRCxNQUFNSSxRQUFRSixLQUFLSyxXQUFXO0lBQzlCLDJFQUEyRTtJQUMzRSxpQ0FBaUM7SUFDakMsSUFBSSxDQUFDRixjQUFjO1FBQ2YsSUFBSUwsK0RBQWFBLENBQUNNLE9BQU8sU0FBUyxPQUFPSjtRQUN6QyxJQUFJRiwrREFBYUEsQ0FBQ00sT0FBTyxNQUFNSCxPQUFPSSxXQUFXLEtBQUssT0FBT0w7SUFDakU7SUFDQSxxQ0FBcUM7SUFDckMsT0FBT0gsK0RBQWFBLENBQUNHLE1BQU0sTUFBTUM7QUFDckMsRUFFQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUuanM/ZTgzZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSBcIi4vYWRkLXBhdGgtcHJlZml4XCI7XG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSBcIi4vcGF0aC1oYXMtcHJlZml4XCI7XG4vKipcbiAqIEZvciBhIGdpdmVuIHBhdGggYW5kIGEgbG9jYWxlLCBpZiB0aGUgbG9jYWxlIGlzIGdpdmVuLCBpdCB3aWxsIHByZWZpeCB0aGVcbiAqIGxvY2FsZS4gVGhlIHBhdGggc2hvdWxkbid0IGJlIGFuIEFQSSBwYXRoLiBJZiBhIGRlZmF1bHQgbG9jYWxlIGlzIGdpdmVuIHRoZVxuICogcHJlZml4IHdpbGwgYmUgb21pdHRlZCBpZiB0aGUgbG9jYWxlIGlzIGFscmVhZHkgdGhlIGRlZmF1bHQgbG9jYWxlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBhZGRMb2NhbGUocGF0aCwgbG9jYWxlLCBkZWZhdWx0TG9jYWxlLCBpZ25vcmVQcmVmaXgpIHtcbiAgICAvLyBJZiBubyBsb2NhbGUgd2FzIGdpdmVuIG9yIHRoZSBsb2NhbGUgaXMgdGhlIGRlZmF1bHQgbG9jYWxlLCB3ZSBkb24ndCBuZWVkXG4gICAgLy8gdG8gcHJlZml4IHRoZSBwYXRoLlxuICAgIGlmICghbG9jYWxlIHx8IGxvY2FsZSA9PT0gZGVmYXVsdExvY2FsZSkgcmV0dXJuIHBhdGg7XG4gICAgY29uc3QgbG93ZXIgPSBwYXRoLnRvTG93ZXJDYXNlKCk7XG4gICAgLy8gSWYgdGhlIHBhdGggaXMgYW4gQVBJIHBhdGggb3IgdGhlIHBhdGggYWxyZWFkeSBoYXMgdGhlIGxvY2FsZSBwcmVmaXgsIHdlXG4gICAgLy8gZG9uJ3QgbmVlZCB0byBwcmVmaXggdGhlIHBhdGguXG4gICAgaWYgKCFpZ25vcmVQcmVmaXgpIHtcbiAgICAgICAgaWYgKHBhdGhIYXNQcmVmaXgobG93ZXIsIFwiL2FwaVwiKSkgcmV0dXJuIHBhdGg7XG4gICAgICAgIGlmIChwYXRoSGFzUHJlZml4KGxvd2VyLCBcIi9cIiArIGxvY2FsZS50b0xvd2VyQ2FzZSgpKSkgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIC8vIEFkZCB0aGUgbG9jYWxlIHByZWZpeCB0byB0aGUgcGF0aC5cbiAgICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBcIi9cIiArIGxvY2FsZSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZC1sb2NhbGUuanMubWFwIl0sIm5hbWVzIjpbImFkZFBhdGhQcmVmaXgiLCJwYXRoSGFzUHJlZml4IiwiYWRkTG9jYWxlIiwicGF0aCIsImxvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJsb3dlciIsInRvTG93ZXJDYXNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPathPrefix: () => (/* binding */ addPathPrefix)\n/* harmony export */ });\n/* harmony import */ var _parse_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\");\n\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */ function addPathPrefix(path, prefix) {\n if (!path.startsWith(\"/\") || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0,_parse_path__WEBPACK_IMPORTED_MODULE_0__.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDO0FBQ3pDOzs7Q0FHQyxHQUFVLFNBQVNDLGNBQWNDLElBQUksRUFBRUMsTUFBTTtJQUMxQyxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDbEMsT0FBT0Q7SUFDWDtJQUNBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHUCxzREFBU0EsQ0FBQ0U7SUFDNUMsT0FBTyxLQUFLQyxTQUFTRSxXQUFXQyxRQUFRQztBQUM1QyxFQUVBLDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LmpzPzY5ZmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSBcIi4vcGFyc2UtcGF0aFwiO1xuLyoqXG4gKiBBZGRzIHRoZSBwcm92aWRlZCBwcmVmaXggdG8gdGhlIGdpdmVuIHBhdGguIEl0IGZpcnN0IGVuc3VyZXMgdGhhdCB0aGUgcGF0aFxuICogaXMgaW5kZWVkIHN0YXJ0aW5nIHdpdGggYSBzbGFzaC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gYWRkUGF0aFByZWZpeChwYXRoLCBwcmVmaXgpIHtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aChcIi9cIikgfHwgIXByZWZpeCkge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKTtcbiAgICByZXR1cm4gXCJcIiArIHByZWZpeCArIHBhdGhuYW1lICsgcXVlcnkgKyBoYXNoO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGQtcGF0aC1wcmVmaXguanMubWFwIl0sIm5hbWVzIjpbInBhcnNlUGF0aCIsImFkZFBhdGhQcmVmaXgiLCJwYXRoIiwicHJlZml4Iiwic3RhcnRzV2l0aCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPathSuffix: () => (/* binding */ addPathSuffix)\n/* harmony export */ });\n/* harmony import */ var _parse_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\");\n\n/**\n * Similarly to `addPathPrefix`, this function adds a suffix at the end on the\n * provided path. It also works only for paths ensuring the argument starts\n * with a slash.\n */ function addPathSuffix(path, suffix) {\n if (!path.startsWith(\"/\") || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0,_parse_path__WEBPACK_IMPORTED_MODULE_0__.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDO0FBQ3pDOzs7O0NBSUMsR0FBVSxTQUFTQyxjQUFjQyxJQUFJLEVBQUVDLE1BQU07SUFDMUMsSUFBSSxDQUFDRCxLQUFLRSxVQUFVLENBQUMsUUFBUSxDQUFDRCxRQUFRO1FBQ2xDLE9BQU9EO0lBQ1g7SUFDQSxNQUFNLEVBQUVHLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBR1Asc0RBQVNBLENBQUNFO0lBQzVDLE9BQU8sS0FBS0csV0FBV0YsU0FBU0csUUFBUUM7QUFDNUMsRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC5qcz85ZDAyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gXCIuL3BhcnNlLXBhdGhcIjtcbi8qKlxuICogU2ltaWxhcmx5IHRvIGBhZGRQYXRoUHJlZml4YCwgdGhpcyBmdW5jdGlvbiBhZGRzIGEgc3VmZml4IGF0IHRoZSBlbmQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXRoLiBJdCBhbHNvIHdvcmtzIG9ubHkgZm9yIHBhdGhzIGVuc3VyaW5nIHRoZSBhcmd1bWVudCBzdGFydHNcbiAqIHdpdGggYSBzbGFzaC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gYWRkUGF0aFN1ZmZpeChwYXRoLCBzdWZmaXgpIHtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aChcIi9cIikgfHwgIXN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKTtcbiAgICByZXR1cm4gXCJcIiArIHBhdGhuYW1lICsgc3VmZml4ICsgcXVlcnkgKyBoYXNoO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGQtcGF0aC1zdWZmaXguanMubWFwIl0sIm5hbWVzIjpbInBhcnNlUGF0aCIsImFkZFBhdGhTdWZmaXgiLCJwYXRoIiwic3VmZml4Iiwic3RhcnRzV2l0aCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeAppPath: () => (/* binding */ normalizeAppPath),\n/* harmony export */ normalizeRscURL: () => (/* binding */ normalizeRscURL)\n/* harmony export */ });\n/* harmony import */ var _page_path_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\");\n/* harmony import */ var _segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../segment */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n\n\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */ function normalizeAppPath(route) {\n return (0,_page_path_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__.ensureLeadingSlash)(route.split(\"/\").reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0,_segment__WEBPACK_IMPORTED_MODULE_1__.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === \"@\") {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === \"page\" || segment === \"route\") && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, \"\"));\n}\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */ function normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, \"$1\");\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMEU7QUFDM0I7QUFDL0M7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWtCQyxHQUFVLFNBQVNFLGlCQUFpQkMsS0FBSztJQUN0QyxPQUFPSCxtRkFBa0JBLENBQUNHLE1BQU1DLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDekUsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNWLE9BQU9EO1FBQ1g7UUFDQSxzQkFBc0I7UUFDdEIsSUFBSUwsd0RBQWNBLENBQUNNLFVBQVU7WUFDekIsT0FBT0Q7UUFDWDtRQUNBLGlDQUFpQztRQUNqQyxJQUFJQyxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUs7WUFDcEIsT0FBT0Q7UUFDWDtRQUNBLHVEQUF1RDtRQUN2RCxJQUFJLENBQUNDLFlBQVksVUFBVUEsWUFBWSxPQUFNLEtBQU1DLFVBQVVDLFNBQVNDLE1BQU0sR0FBRyxHQUFHO1lBQzlFLE9BQU9KO1FBQ1g7UUFDQSxPQUFPQSxXQUFXLE1BQU1DO0lBQzVCLEdBQUc7QUFDUDtBQUNBOzs7Q0FHQyxHQUFVLFNBQVNJLGdCQUFnQkMsR0FBRztJQUNuQyxPQUFPQSxJQUFJQyxPQUFPLENBQUMsZUFDbkI7QUFDSixFQUVBLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzP2QzNGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSBcIi4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaFwiO1xuaW1wb3J0IHsgaXNHcm91cFNlZ21lbnQgfSBmcm9tIFwiLi4vLi4vc2VnbWVudFwiO1xuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFwcFBhdGgocm91dGUpIHtcbiAgICByZXR1cm4gZW5zdXJlTGVhZGluZ1NsYXNoKHJvdXRlLnNwbGl0KFwiL1wiKS5yZWR1Y2UoKHBhdGhuYW1lLCBzZWdtZW50LCBpbmRleCwgc2VnbWVudHMpPT57XG4gICAgICAgIC8vIEVtcHR5IHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRobmFtZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBHcm91cHMgYXJlIGlnbm9yZWQuXG4gICAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIFBhcmFsbGVsIHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgICBpZiAoc2VnbWVudFswXSA9PT0gXCJAXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRobmFtZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICAgIGlmICgoc2VnbWVudCA9PT0gXCJwYWdlXCIgfHwgc2VnbWVudCA9PT0gXCJyb3V0ZVwiKSAmJiBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRobmFtZSArIFwiL1wiICsgc2VnbWVudDtcbiAgICB9LCBcIlwiKSk7XG59XG4vKipcbiAqIFN0cmlwcyB0aGUgYC5yc2NgIGV4dGVuc2lvbiBpZiBpdCdzIGluIHRoZSBwYXRobmFtZS5cbiAqIFNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvbiBmdWxsIHVybHMgaXQgY2hlY2tzIGA/YCBmb3Igc2VhcmNoUGFyYW1zIGhhbmRsaW5nLlxuICovIGV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsKSB7XG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKC9cXC5yc2MoJHxcXD8pLywgLy8gJDEgZW5zdXJlcyBgP2AgaXMgcHJlc2VydmVkXG4gICAgXCIkMVwiKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhdGhzLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnN1cmVMZWFkaW5nU2xhc2giLCJpc0dyb3VwU2VnbWVudCIsIm5vcm1hbGl6ZUFwcFBhdGgiLCJyb3V0ZSIsInNwbGl0IiwicmVkdWNlIiwicGF0aG5hbWUiLCJzZWdtZW50IiwiaW5kZXgiLCJzZWdtZW50cyIsImxlbmd0aCIsIm5vcm1hbGl6ZVJzY1VSTCIsInVybCIsInJlcGxhY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/escape-path-delimiters.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/escape-path-delimiters.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ escapePathDelimiters)\n/* harmony export */ });\n// escape delimiters used by path-to-regexp\nfunction escapePathDelimiters(segment, escapeEncoded) {\n return segment.replace(new RegExp(\"([/#?]\" + (escapeEncoded ? \"|%(2f|23|3f)\" : \"\") + \")\", \"gi\"), (char)=>encodeURIComponent(char));\n} //# sourceMappingURL=escape-path-delimiters.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZXNjYXBlLXBhdGgtZGVsaW1pdGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQTJDO0FBQzVCLFNBQVNBLHFCQUFxQkMsT0FBTyxFQUFFQyxhQUFhO0lBQy9ELE9BQU9ELFFBQVFFLE9BQU8sQ0FBQyxJQUFJQyxPQUFPLFdBQVlGLENBQUFBLGdCQUFnQixpQkFBaUIsRUFBQyxJQUFLLEtBQUssT0FBTyxDQUFDRyxPQUFPQyxtQkFBbUJEO0FBQ2hJLEVBRUEsa0RBQWtEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9lc2NhcGUtcGF0aC1kZWxpbWl0ZXJzLmpzPzczOTUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNjYXBlIGRlbGltaXRlcnMgdXNlZCBieSBwYXRoLXRvLXJlZ2V4cFxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXNjYXBlUGF0aERlbGltaXRlcnMoc2VnbWVudCwgZXNjYXBlRW5jb2RlZCkge1xuICAgIHJldHVybiBzZWdtZW50LnJlcGxhY2UobmV3IFJlZ0V4cChcIihbLyM/XVwiICsgKGVzY2FwZUVuY29kZWQgPyBcInwlKDJmfDIzfDNmKVwiIDogXCJcIikgKyBcIilcIiwgXCJnaVwiKSwgKGNoYXIpPT5lbmNvZGVVUklDb21wb25lbnQoY2hhcikpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lc2NhcGUtcGF0aC1kZWxpbWl0ZXJzLmpzLm1hcCJdLCJuYW1lcyI6WyJlc2NhcGVQYXRoRGVsaW1pdGVycyIsInNlZ21lbnQiLCJlc2NhcGVFbmNvZGVkIiwicmVwbGFjZSIsIlJlZ0V4cCIsImNoYXIiLCJlbmNvZGVVUklDb21wb25lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/escape-path-delimiters.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js":
-/*!*********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js ***!
- \*********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatNextPathnameInfo: () => (/* binding */ formatNextPathnameInfo)\n/* harmony export */ });\n/* harmony import */ var _remove_trailing_slash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./remove-trailing-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n/* harmony import */ var _add_path_prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./add-path-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js\");\n/* harmony import */ var _add_path_suffix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./add-path-suffix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js\");\n/* harmony import */ var _add_locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./add-locale */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js\");\n\n\n\n\nfunction formatNextPathnameInfo(info) {\n let pathname = (0,_add_locale__WEBPACK_IMPORTED_MODULE_3__.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0,_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_0__.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0,_add_path_suffix__WEBPACK_IMPORTED_MODULE_2__.addPathSuffix)((0,_add_path_prefix__WEBPACK_IMPORTED_MODULE_1__.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === \"/\" ? \"index.json\" : \".json\");\n }\n pathname = (0,_add_path_prefix__WEBPACK_IMPORTED_MODULE_1__.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith(\"/\") ? (0,_add_path_suffix__WEBPACK_IMPORTED_MODULE_2__.addPathSuffix)(pathname, \"/\") : pathname : (0,_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_0__.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUE4RDtBQUNaO0FBQ0E7QUFDVDtBQUNsQyxTQUFTSSx1QkFBdUJDLElBQUk7SUFDdkMsSUFBSUMsV0FBV0gsc0RBQVNBLENBQUNFLEtBQUtDLFFBQVEsRUFBRUQsS0FBS0UsTUFBTSxFQUFFRixLQUFLRyxPQUFPLEdBQUdDLFlBQVlKLEtBQUtLLGFBQWEsRUFBRUwsS0FBS00sWUFBWTtJQUNySCxJQUFJTixLQUFLRyxPQUFPLElBQUksQ0FBQ0gsS0FBS08sYUFBYSxFQUFFO1FBQ3JDTixXQUFXTiwyRUFBbUJBLENBQUNNO0lBQ25DO0lBQ0EsSUFBSUQsS0FBS0csT0FBTyxFQUFFO1FBQ2RGLFdBQVdKLCtEQUFhQSxDQUFDRCwrREFBYUEsQ0FBQ0ssVUFBVSxpQkFBaUJELEtBQUtHLE9BQU8sR0FBR0gsS0FBS0MsUUFBUSxLQUFLLE1BQU0sZUFBZTtJQUM1SDtJQUNBQSxXQUFXTCwrREFBYUEsQ0FBQ0ssVUFBVUQsS0FBS1EsUUFBUTtJQUNoRCxPQUFPLENBQUNSLEtBQUtHLE9BQU8sSUFBSUgsS0FBS08sYUFBYSxHQUFHLENBQUNOLFNBQVNRLFFBQVEsQ0FBQyxPQUFPWiwrREFBYUEsQ0FBQ0ksVUFBVSxPQUFPQSxXQUFXTiwyRUFBbUJBLENBQUNNO0FBQ3pJLEVBRUEscURBQXFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvLmpzP2E1ODEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gXCIuL3JlbW92ZS10cmFpbGluZy1zbGFzaFwiO1xuaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gXCIuL2FkZC1wYXRoLXByZWZpeFwiO1xuaW1wb3J0IHsgYWRkUGF0aFN1ZmZpeCB9IGZyb20gXCIuL2FkZC1wYXRoLXN1ZmZpeFwiO1xuaW1wb3J0IHsgYWRkTG9jYWxlIH0gZnJvbSBcIi4vYWRkLWxvY2FsZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE5leHRQYXRobmFtZUluZm8oaW5mbykge1xuICAgIGxldCBwYXRobmFtZSA9IGFkZExvY2FsZShpbmZvLnBhdGhuYW1lLCBpbmZvLmxvY2FsZSwgaW5mby5idWlsZElkID8gdW5kZWZpbmVkIDogaW5mby5kZWZhdWx0TG9jYWxlLCBpbmZvLmlnbm9yZVByZWZpeCk7XG4gICAgaWYgKGluZm8uYnVpbGRJZCB8fCAhaW5mby50cmFpbGluZ1NsYXNoKSB7XG4gICAgICAgIHBhdGhuYW1lID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSk7XG4gICAgfVxuICAgIGlmIChpbmZvLmJ1aWxkSWQpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBhZGRQYXRoU3VmZml4KGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIFwiL19uZXh0L2RhdGEvXCIgKyBpbmZvLmJ1aWxkSWQpLCBpbmZvLnBhdGhuYW1lID09PSBcIi9cIiA/IFwiaW5kZXguanNvblwiIDogXCIuanNvblwiKTtcbiAgICB9XG4gICAgcGF0aG5hbWUgPSBhZGRQYXRoUHJlZml4KHBhdGhuYW1lLCBpbmZvLmJhc2VQYXRoKTtcbiAgICByZXR1cm4gIWluZm8uYnVpbGRJZCAmJiBpbmZvLnRyYWlsaW5nU2xhc2ggPyAhcGF0aG5hbWUuZW5kc1dpdGgoXCIvXCIpID8gYWRkUGF0aFN1ZmZpeChwYXRobmFtZSwgXCIvXCIpIDogcGF0aG5hbWUgOiByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby5qcy5tYXAiXSwibmFtZXMiOlsicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImFkZFBhdGhQcmVmaXgiLCJhZGRQYXRoU3VmZml4IiwiYWRkTG9jYWxlIiwiZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyIsImluZm8iLCJwYXRobmFtZSIsImxvY2FsZSIsImJ1aWxkSWQiLCJ1bmRlZmluZWQiLCJkZWZhdWx0TG9jYWxlIiwiaWdub3JlUHJlZml4IiwidHJhaWxpbmdTbGFzaCIsImJhc2VQYXRoIiwiZW5kc1dpdGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getNextPathnameInfo: () => (/* binding */ getNextPathnameInfo)\n/* harmony export */ });\n/* harmony import */ var _i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js\");\n/* harmony import */ var _remove_path_prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./remove-path-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js\");\n/* harmony import */ var _path_has_prefix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path-has-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\");\n\n\n\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== \"/\" ? pathname.endsWith(\"/\") : trailingSlash\n };\n if (basePath && (0,_path_has_prefix__WEBPACK_IMPORTED_MODULE_2__.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0,_remove_path_prefix__WEBPACK_IMPORTED_MODULE_1__.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith(\"/_next/data/\") && info.pathname.endsWith(\".json\")) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, \"\").replace(/\\.json$/, \"\").split(\"/\");\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== \"index\" ? \"/\" + paths.slice(1).join(\"/\") : \"/\";\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0,_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_0__.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0,_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_0__.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n} //# sourceMappingURL=get-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVFO0FBQ2Y7QUFDTjtBQUMzQyxTQUFTRyxvQkFBb0JDLFFBQVEsRUFBRUMsT0FBTztJQUNqRCxJQUFJQztJQUNKLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLGFBQWEsRUFBRSxHQUFHLENBQUNILHNCQUFzQkQsUUFBUUssVUFBVSxLQUFLLE9BQU9KLHNCQUFzQixDQUFDO0lBQ3RILE1BQU1LLE9BQU87UUFDVFA7UUFDQUssZUFBZUwsYUFBYSxNQUFNQSxTQUFTUSxRQUFRLENBQUMsT0FBT0g7SUFDL0Q7SUFDQSxJQUFJRixZQUFZTCwrREFBYUEsQ0FBQ1MsS0FBS1AsUUFBUSxFQUFFRyxXQUFXO1FBQ3BESSxLQUFLUCxRQUFRLEdBQUdILHFFQUFnQkEsQ0FBQ1UsS0FBS1AsUUFBUSxFQUFFRztRQUNoREksS0FBS0osUUFBUSxHQUFHQTtJQUNwQjtJQUNBLElBQUlNLHVCQUF1QkYsS0FBS1AsUUFBUTtJQUN4QyxJQUFJTyxLQUFLUCxRQUFRLENBQUNVLFVBQVUsQ0FBQyxtQkFBbUJILEtBQUtQLFFBQVEsQ0FBQ1EsUUFBUSxDQUFDLFVBQVU7UUFDN0UsTUFBTUcsUUFBUUosS0FBS1AsUUFBUSxDQUFDWSxPQUFPLENBQUMsb0JBQW9CLElBQUlBLE9BQU8sQ0FBQyxXQUFXLElBQUlDLEtBQUssQ0FBQztRQUN6RixNQUFNQyxVQUFVSCxLQUFLLENBQUMsRUFBRTtRQUN4QkosS0FBS08sT0FBTyxHQUFHQTtRQUNmTCx1QkFBdUJFLEtBQUssQ0FBQyxFQUFFLEtBQUssVUFBVSxNQUFNQSxNQUFNSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQU87UUFDL0Usc0RBQXNEO1FBQ3RELGtEQUFrRDtRQUNsRCxJQUFJZixRQUFRZ0IsU0FBUyxLQUFLLE1BQU07WUFDNUJWLEtBQUtQLFFBQVEsR0FBR1M7UUFDcEI7SUFDSjtJQUNBLDRFQUE0RTtJQUM1RSx5QkFBeUI7SUFDekIsSUFBSUwsTUFBTTtRQUNOLElBQUljLFNBQVNqQixRQUFRa0IsWUFBWSxHQUFHbEIsUUFBUWtCLFlBQVksQ0FBQ0MsT0FBTyxDQUFDYixLQUFLUCxRQUFRLElBQUlKLGdGQUFtQkEsQ0FBQ1csS0FBS1AsUUFBUSxFQUFFSSxLQUFLaUIsT0FBTztRQUNqSWQsS0FBS2UsTUFBTSxHQUFHSixPQUFPSyxjQUFjO1FBQ25DLElBQUlDO1FBQ0pqQixLQUFLUCxRQUFRLEdBQUcsQ0FBQ3dCLG1CQUFtQk4sT0FBT2xCLFFBQVEsS0FBSyxPQUFPd0IsbUJBQW1CakIsS0FBS1AsUUFBUTtRQUMvRixJQUFJLENBQUNrQixPQUFPSyxjQUFjLElBQUloQixLQUFLTyxPQUFPLEVBQUU7WUFDeENJLFNBQVNqQixRQUFRa0IsWUFBWSxHQUFHbEIsUUFBUWtCLFlBQVksQ0FBQ0MsT0FBTyxDQUFDWCx3QkFBd0JiLGdGQUFtQkEsQ0FBQ2Esc0JBQXNCTCxLQUFLaUIsT0FBTztZQUMzSSxJQUFJSCxPQUFPSyxjQUFjLEVBQUU7Z0JBQ3ZCaEIsS0FBS2UsTUFBTSxHQUFHSixPQUFPSyxjQUFjO1lBQ3ZDO1FBQ0o7SUFDSjtJQUNBLE9BQU9oQjtBQUNYLEVBRUEsa0RBQWtEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbmV4dC1wYXRobmFtZS1pbmZvLmpzPzdiNGQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCB9IGZyb20gXCIuLi8uLi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aFwiO1xuaW1wb3J0IHsgcmVtb3ZlUGF0aFByZWZpeCB9IGZyb20gXCIuL3JlbW92ZS1wYXRoLXByZWZpeFwiO1xuaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gXCIuL3BhdGgtaGFzLXByZWZpeFwiO1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRQYXRobmFtZUluZm8ocGF0aG5hbWUsIG9wdGlvbnMpIHtcbiAgICB2YXIgX29wdGlvbnNfbmV4dENvbmZpZztcbiAgICBjb25zdCB7IGJhc2VQYXRoLCBpMThuLCB0cmFpbGluZ1NsYXNoIH0gPSAoX29wdGlvbnNfbmV4dENvbmZpZyA9IG9wdGlvbnMubmV4dENvbmZpZykgIT0gbnVsbCA/IF9vcHRpb25zX25leHRDb25maWcgOiB7fTtcbiAgICBjb25zdCBpbmZvID0ge1xuICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgdHJhaWxpbmdTbGFzaDogcGF0aG5hbWUgIT09IFwiL1wiID8gcGF0aG5hbWUuZW5kc1dpdGgoXCIvXCIpIDogdHJhaWxpbmdTbGFzaFxuICAgIH07XG4gICAgaWYgKGJhc2VQYXRoICYmIHBhdGhIYXNQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpKSB7XG4gICAgICAgIGluZm8ucGF0aG5hbWUgPSByZW1vdmVQYXRoUHJlZml4KGluZm8ucGF0aG5hbWUsIGJhc2VQYXRoKTtcbiAgICAgICAgaW5mby5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgIH1cbiAgICBsZXQgcGF0aG5hbWVOb0RhdGFQcmVmaXggPSBpbmZvLnBhdGhuYW1lO1xuICAgIGlmIChpbmZvLnBhdGhuYW1lLnN0YXJ0c1dpdGgoXCIvX25leHQvZGF0YS9cIikgJiYgaW5mby5wYXRobmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnN0IHBhdGhzID0gaW5mby5wYXRobmFtZS5yZXBsYWNlKC9eXFwvX25leHRcXC9kYXRhXFwvLywgXCJcIikucmVwbGFjZSgvXFwuanNvbiQvLCBcIlwiKS5zcGxpdChcIi9cIik7XG4gICAgICAgIGNvbnN0IGJ1aWxkSWQgPSBwYXRoc1swXTtcbiAgICAgICAgaW5mby5idWlsZElkID0gYnVpbGRJZDtcbiAgICAgICAgcGF0aG5hbWVOb0RhdGFQcmVmaXggPSBwYXRoc1sxXSAhPT0gXCJpbmRleFwiID8gXCIvXCIgKyBwYXRocy5zbGljZSgxKS5qb2luKFwiL1wiKSA6IFwiL1wiO1xuICAgICAgICAvLyB1cGRhdGUgcGF0aG5hbWUgd2l0aCBub3JtYWxpemVkIGlmIGVuYWJsZWQgYWx0aG91Z2hcbiAgICAgICAgLy8gd2UgdXNlIG5vcm1hbGl6ZWQgdG8gcG9wdWxhdGUgbG9jYWxlIGluZm8gc3RpbGxcbiAgICAgICAgaWYgKG9wdGlvbnMucGFyc2VEYXRhID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpbmZvLnBhdGhuYW1lID0gcGF0aG5hbWVOb0RhdGFQcmVmaXg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSWYgcHJvdmlkZWQsIHVzZSB0aGUgbG9jYWxlIHJvdXRlIG5vcm1hbGl6ZXIgdG8gZGV0ZWN0IHRoZSBsb2NhbGUgaW5zdGVhZFxuICAgIC8vIG9mIHRoZSBmdW5jdGlvbiBiZWxvdy5cbiAgICBpZiAoaTE4bikge1xuICAgICAgICBsZXQgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXIgPyBvcHRpb25zLmkxOG5Qcm92aWRlci5hbmFseXplKGluZm8ucGF0aG5hbWUpIDogbm9ybWFsaXplTG9jYWxlUGF0aChpbmZvLnBhdGhuYW1lLCBpMThuLmxvY2FsZXMpO1xuICAgICAgICBpbmZvLmxvY2FsZSA9IHJlc3VsdC5kZXRlY3RlZExvY2FsZTtcbiAgICAgICAgdmFyIF9yZXN1bHRfcGF0aG5hbWU7XG4gICAgICAgIGluZm8ucGF0aG5hbWUgPSAoX3Jlc3VsdF9wYXRobmFtZSA9IHJlc3VsdC5wYXRobmFtZSkgIT0gbnVsbCA/IF9yZXN1bHRfcGF0aG5hbWUgOiBpbmZvLnBhdGhuYW1lO1xuICAgICAgICBpZiAoIXJlc3VsdC5kZXRlY3RlZExvY2FsZSAmJiBpbmZvLmJ1aWxkSWQpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IG9wdGlvbnMuaTE4blByb3ZpZGVyID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShwYXRobmFtZU5vRGF0YVByZWZpeCkgOiBub3JtYWxpemVMb2NhbGVQYXRoKHBhdGhuYW1lTm9EYXRhUHJlZml4LCBpMThuLmxvY2FsZXMpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5kZXRlY3RlZExvY2FsZSkge1xuICAgICAgICAgICAgICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpbmZvO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtbmV4dC1wYXRobmFtZS1pbmZvLmpzLm1hcCJdLCJuYW1lcyI6WyJub3JtYWxpemVMb2NhbGVQYXRoIiwicmVtb3ZlUGF0aFByZWZpeCIsInBhdGhIYXNQcmVmaXgiLCJnZXROZXh0UGF0aG5hbWVJbmZvIiwicGF0aG5hbWUiLCJvcHRpb25zIiwiX29wdGlvbnNfbmV4dENvbmZpZyIsImJhc2VQYXRoIiwiaTE4biIsInRyYWlsaW5nU2xhc2giLCJuZXh0Q29uZmlnIiwiaW5mbyIsImVuZHNXaXRoIiwicGF0aG5hbWVOb0RhdGFQcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aHMiLCJyZXBsYWNlIiwic3BsaXQiLCJidWlsZElkIiwic2xpY2UiLCJqb2luIiwicGFyc2VEYXRhIiwicmVzdWx0IiwiaTE4blByb3ZpZGVyIiwiYW5hbHl6ZSIsImxvY2FsZXMiLCJsb2NhbGUiLCJkZXRlY3RlZExvY2FsZSIsIl9yZXN1bHRfcGF0aG5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/get-route-from-asset-path.js":
-/*!*********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/get-route-from-asset-path.js ***!
- \*********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ getRouteFromAssetPath)\n/* harmony export */ });\n/* harmony import */ var _is_dynamic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-dynamic */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/is-dynamic.js\");\n// Translate a pages asset path (relative from a common prefix) back into its logical route\n\n// \"asset path\" being its javascript file, data file, prerendered html,...\nfunction getRouteFromAssetPath(assetPath, ext) {\n if (ext === void 0) ext = \"\";\n assetPath = assetPath.replace(/\\\\/g, \"/\");\n assetPath = ext && assetPath.endsWith(ext) ? assetPath.slice(0, -ext.length) : assetPath;\n if (assetPath.startsWith(\"/index/\") && !(0,_is_dynamic__WEBPACK_IMPORTED_MODULE_0__.isDynamicRoute)(assetPath)) {\n assetPath = assetPath.slice(6);\n } else if (assetPath === \"/index\") {\n assetPath = \"/\";\n }\n return assetPath;\n} //# sourceMappingURL=get-route-from-asset-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LXJvdXRlLWZyb20tYXNzZXQtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJGQUEyRjtBQUM3QztBQUM5QywwRUFBMEU7QUFDM0QsU0FBU0Msc0JBQXNCQyxTQUFTLEVBQUVDLEdBQUc7SUFDeEQsSUFBSUEsUUFBUSxLQUFLLEdBQUdBLE1BQU07SUFDMUJELFlBQVlBLFVBQVVFLE9BQU8sQ0FBQyxPQUFPO0lBQ3JDRixZQUFZQyxPQUFPRCxVQUFVRyxRQUFRLENBQUNGLE9BQU9ELFVBQVVJLEtBQUssQ0FBQyxHQUFHLENBQUNILElBQUlJLE1BQU0sSUFBSUw7SUFDL0UsSUFBSUEsVUFBVU0sVUFBVSxDQUFDLGNBQWMsQ0FBQ1IsMkRBQWNBLENBQUNFLFlBQVk7UUFDL0RBLFlBQVlBLFVBQVVJLEtBQUssQ0FBQztJQUNoQyxPQUFPLElBQUlKLGNBQWMsVUFBVTtRQUMvQkEsWUFBWTtJQUNoQjtJQUNBLE9BQU9BO0FBQ1gsRUFFQSxxREFBcUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1yb3V0ZS1mcm9tLWFzc2V0LXBhdGguanM/ODU4MyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUcmFuc2xhdGUgYSBwYWdlcyBhc3NldCBwYXRoIChyZWxhdGl2ZSBmcm9tIGEgY29tbW9uIHByZWZpeCkgYmFjayBpbnRvIGl0cyBsb2dpY2FsIHJvdXRlXG5pbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gXCIuL2lzLWR5bmFtaWNcIjtcbi8vIFwiYXNzZXQgcGF0aFwiIGJlaW5nIGl0cyBqYXZhc2NyaXB0IGZpbGUsIGRhdGEgZmlsZSwgcHJlcmVuZGVyZWQgaHRtbCwuLi5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFJvdXRlRnJvbUFzc2V0UGF0aChhc3NldFBhdGgsIGV4dCkge1xuICAgIGlmIChleHQgPT09IHZvaWQgMCkgZXh0ID0gXCJcIjtcbiAgICBhc3NldFBhdGggPSBhc3NldFBhdGgucmVwbGFjZSgvXFxcXC9nLCBcIi9cIik7XG4gICAgYXNzZXRQYXRoID0gZXh0ICYmIGFzc2V0UGF0aC5lbmRzV2l0aChleHQpID8gYXNzZXRQYXRoLnNsaWNlKDAsIC1leHQubGVuZ3RoKSA6IGFzc2V0UGF0aDtcbiAgICBpZiAoYXNzZXRQYXRoLnN0YXJ0c1dpdGgoXCIvaW5kZXgvXCIpICYmICFpc0R5bmFtaWNSb3V0ZShhc3NldFBhdGgpKSB7XG4gICAgICAgIGFzc2V0UGF0aCA9IGFzc2V0UGF0aC5zbGljZSg2KTtcbiAgICB9IGVsc2UgaWYgKGFzc2V0UGF0aCA9PT0gXCIvaW5kZXhcIikge1xuICAgICAgICBhc3NldFBhdGggPSBcIi9cIjtcbiAgICB9XG4gICAgcmV0dXJuIGFzc2V0UGF0aDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXJvdXRlLWZyb20tYXNzZXQtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiaXNEeW5hbWljUm91dGUiLCJnZXRSb3V0ZUZyb21Bc3NldFBhdGgiLCJhc3NldFBhdGgiLCJleHQiLCJyZXBsYWNlIiwiZW5kc1dpdGgiLCJzbGljZSIsImxlbmd0aCIsInN0YXJ0c1dpdGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/get-route-from-asset-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/handle-smooth-scroll.js":
-/*!****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/handle-smooth-scroll.js ***!
- \****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleSmoothScroll: () => (/* binding */ handleSmoothScroll)\n/* harmony export */ });\n/**\n * Run function with `scroll-behavior: auto` applied to `<html/>`.\n * This css change will be reverted after the function finishes.\n */ function handleSmoothScroll(fn, options) {\n if (options === void 0) options = {};\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn();\n return;\n }\n const htmlElement = document.documentElement;\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = \"auto\";\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects();\n }\n fn();\n htmlElement.style.scrollBehavior = existing;\n} //# sourceMappingURL=handle-smooth-scroll.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaGFuZGxlLXNtb290aC1zY3JvbGwuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUFVLFNBQVNBLG1CQUFtQkMsRUFBRSxFQUFFQyxPQUFPO0lBQzlDLElBQUlBLFlBQVksS0FBSyxHQUFHQSxVQUFVLENBQUM7SUFDbkMseUVBQXlFO0lBQ3pFLDZGQUE2RjtJQUM3RixJQUFJQSxRQUFRQyxjQUFjLEVBQUU7UUFDeEJGO1FBQ0E7SUFDSjtJQUNBLE1BQU1HLGNBQWNDLFNBQVNDLGVBQWU7SUFDNUMsTUFBTUMsV0FBV0gsWUFBWUksS0FBSyxDQUFDQyxjQUFjO0lBQ2pETCxZQUFZSSxLQUFLLENBQUNDLGNBQWMsR0FBRztJQUNuQyxJQUFJLENBQUNQLFFBQVFRLGVBQWUsRUFBRTtRQUMxQiw4RUFBOEU7UUFDOUUsNERBQTREO1FBQzVELHlGQUF5RjtRQUN6Rk4sWUFBWU8sY0FBYztJQUM5QjtJQUNBVjtJQUNBRyxZQUFZSSxLQUFLLENBQUNDLGNBQWMsR0FBR0Y7QUFDdkMsRUFFQSxnREFBZ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2hhbmRsZS1zbW9vdGgtc2Nyb2xsLmpzP2FjZjYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSdW4gZnVuY3Rpb24gd2l0aCBgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvYCBhcHBsaWVkIHRvIGA8aHRtbC8+YC5cbiAqIFRoaXMgY3NzIGNoYW5nZSB3aWxsIGJlIHJldmVydGVkIGFmdGVyIHRoZSBmdW5jdGlvbiBmaW5pc2hlcy5cbiAqLyBleHBvcnQgZnVuY3Rpb24gaGFuZGxlU21vb3RoU2Nyb2xsKGZuLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgb3B0aW9ucyA9IHt9O1xuICAgIC8vIGlmIG9ubHkgdGhlIGhhc2ggaXMgY2hhbmdlZCwgd2UgZG9uJ3QgbmVlZCB0byBkaXNhYmxlIHNtb290aCBzY3JvbGxpbmdcbiAgICAvLyB3ZSBvbmx5IGNhcmUgdG8gcHJldmVudCBzbW9vdGggc2Nyb2xsaW5nIHdoZW4gbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlIHRvIGF2b2lkIGphcnJpbmcgVVhcbiAgICBpZiAob3B0aW9ucy5vbmx5SGFzaENoYW5nZSkge1xuICAgICAgICBmbigpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIGNvbnN0IGV4aXN0aW5nID0gaHRtbEVsZW1lbnQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I7XG4gICAgaHRtbEVsZW1lbnQuc3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSBcImF1dG9cIjtcbiAgICBpZiAoIW9wdGlvbnMuZG9udEZvcmNlTGF5b3V0KSB7XG4gICAgICAgIC8vIEluIENocm9tZS1iYXNlZCBicm93c2VycyB3ZSBuZWVkIHRvIGZvcmNlIHJlZmxvdyBiZWZvcmUgY2FsbGluZyBgc2Nyb2xsVG9gLlxuICAgICAgICAvLyBPdGhlcndpc2UgaXQgd2lsbCBub3QgcGlja3VwIHRoZSBjaGFuZ2UgaW4gc2Nyb2xsQmVoYXZpb3JcbiAgICAgICAgLy8gTW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNDA3MTkjaXNzdWVjb21tZW50LTEzMzYyNDgwNDJcbiAgICAgICAgaHRtbEVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKTtcbiAgICB9XG4gICAgZm4oKTtcbiAgICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9IGV4aXN0aW5nO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oYW5kbGUtc21vb3RoLXNjcm9sbC5qcy5tYXAiXSwibmFtZXMiOlsiaGFuZGxlU21vb3RoU2Nyb2xsIiwiZm4iLCJvcHRpb25zIiwib25seUhhc2hDaGFuZ2UiLCJodG1sRWxlbWVudCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiZXhpc3RpbmciLCJzdHlsZSIsInNjcm9sbEJlaGF2aW9yIiwiZG9udEZvcmNlTGF5b3V0IiwiZ2V0Q2xpZW50UmVjdHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/handle-smooth-scroll.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/index.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/index.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getSortedRoutes: () => (/* reexport safe */ _sorted_routes__WEBPACK_IMPORTED_MODULE_0__.getSortedRoutes),\n/* harmony export */ isDynamicRoute: () => (/* reexport safe */ _is_dynamic__WEBPACK_IMPORTED_MODULE_1__.isDynamicRoute)\n/* harmony export */ });\n/* harmony import */ var _sorted_routes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sorted-routes */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/sorted-routes.js\");\n/* harmony import */ var _is_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-dynamic */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/is-dynamic.js\");\n\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFrRDtBQUNKLENBRTlDLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanM/NzhjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBnZXRTb3J0ZWRSb3V0ZXMgfSBmcm9tIFwiLi9zb3J0ZWQtcm91dGVzXCI7XG5leHBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gXCIuL2lzLWR5bmFtaWNcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbImdldFNvcnRlZFJvdXRlcyIsImlzRHluYW1pY1JvdXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isBot: () => (/* binding */ isBot)\n/* harmony export */ });\nfunction isBot(userAgent) {\n return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(userAgent);\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxTQUFTQSxNQUFNQyxTQUFTO0lBQzNCLE9BQU8sb1ZBQW9WQyxJQUFJLENBQUNEO0FBQ3BXLEVBRUEsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3QuanM/NzU5MyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNCb3QodXNlckFnZW50KSB7XG4gICAgcmV0dXJuIC9Hb29nbGVib3R8TWVkaWFwYXJ0bmVycy1Hb29nbGV8QWRzQm90LUdvb2dsZXxnb29nbGV3ZWJsaWdodHxTdG9yZWJvdC1Hb29nbGV8R29vZ2xlLVBhZ2VSZW5kZXJlcnxCaW5nYm90fEJpbmdQcmV2aWV3fFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxMaW5rZWRJbkJvdHxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxhcHBsZWJvdHxyZWRkaXRib3R8U2xhY2tib3R8RGlzY29yZGJvdHxXaGF0c0FwcHxTa3lwZVVyaVByZXZpZXd8aWFfYXJjaGl2ZXIvaS50ZXN0KHVzZXJBZ2VudCk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWJvdC5qcy5tYXAiXSwibmFtZXMiOlsiaXNCb3QiLCJ1c2VyQWdlbnQiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/is-dynamic.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/is-dynamic.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isDynamicRoute: () => (/* binding */ isDynamicRoute)\n/* harmony export */ });\n/* harmony import */ var _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(ssr)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\");\n\n// Identify /[param]/ in route string\nconst TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\nfunction isDynamicRoute(route) {\n if ((0,_server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.isInterceptionRouteAppPath)(route)) {\n route = (0,_server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3STtBQUN4SSxxQ0FBcUM7QUFDckMsTUFBTUUsYUFBYTtBQUNaLFNBQVNDLGVBQWVDLEtBQUs7SUFDaEMsSUFBSUgsc0dBQTBCQSxDQUFDRyxRQUFRO1FBQ25DQSxRQUFRSiwrR0FBbUNBLENBQUNJLE9BQU9DLGdCQUFnQjtJQUN2RTtJQUNBLE9BQU9ILFdBQVdJLElBQUksQ0FBQ0Y7QUFDM0IsRUFFQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMuanM/MzBmYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiwgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGggfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXNcIjtcbi8vIElkZW50aWZ5IC9bcGFyYW1dLyBpbiByb3V0ZSBzdHJpbmdcbmNvbnN0IFRFU1RfUk9VVEUgPSAvXFwvXFxbW14vXSs/XFxdKD89XFwvfCQpLztcbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNSb3V0ZShyb3V0ZSkge1xuICAgIGlmIChpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aChyb3V0ZSkpIHtcbiAgICAgICAgcm91dGUgPSBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbihyb3V0ZSkuaW50ZXJjZXB0ZWRSb3V0ZTtcbiAgICB9XG4gICAgcmV0dXJuIFRFU1RfUk9VVEUudGVzdChyb3V0ZSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWR5bmFtaWMuanMubWFwIl0sIm5hbWVzIjpbImV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uIiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJURVNUX1JPVVRFIiwiaXNEeW5hbWljUm91dGUiLCJyb3V0ZSIsImludGVyY2VwdGVkUm91dGUiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/is-dynamic.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parsePath: () => (/* binding */ parsePath)\n/* harmony export */ });\n/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ function parsePath(path) {\n const hashIndex = path.indexOf(\"#\");\n const queryIndex = path.indexOf(\"?\");\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : \"\",\n hash: hashIndex > -1 ? path.slice(hashIndex) : \"\"\n };\n }\n return {\n pathname: path,\n query: \"\",\n hash: \"\"\n };\n} //# sourceMappingURL=parse-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUFVLFNBQVNBLFVBQVVDLElBQUk7SUFDOUIsTUFBTUMsWUFBWUQsS0FBS0UsT0FBTyxDQUFDO0lBQy9CLE1BQU1DLGFBQWFILEtBQUtFLE9BQU8sQ0FBQztJQUNoQyxNQUFNRSxXQUFXRCxhQUFhLENBQUMsS0FBTUYsQ0FBQUEsWUFBWSxLQUFLRSxhQUFhRixTQUFRO0lBQzNFLElBQUlHLFlBQVlILFlBQVksQ0FBQyxHQUFHO1FBQzVCLE9BQU87WUFDSEksVUFBVUwsS0FBS00sU0FBUyxDQUFDLEdBQUdGLFdBQVdELGFBQWFGO1lBQ3BETSxPQUFPSCxXQUFXSixLQUFLTSxTQUFTLENBQUNILFlBQVlGLFlBQVksQ0FBQyxJQUFJQSxZQUFZTyxhQUFhO1lBQ3ZGQyxNQUFNUixZQUFZLENBQUMsSUFBSUQsS0FBS1UsS0FBSyxDQUFDVCxhQUFhO1FBQ25EO0lBQ0o7SUFDQSxPQUFPO1FBQ0hJLFVBQVVMO1FBQ1ZPLE9BQU87UUFDUEUsTUFBTTtJQUNWO0FBQ0osRUFFQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanM/YWNkYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGEgcGF0aCB0aGlzIGZ1bmN0aW9uIHdpbGwgZmluZCB0aGUgcGF0aG5hbWUsIHF1ZXJ5IGFuZCBoYXNoIGFuZCByZXR1cm5cbiAqIHRoZW0uIFRoaXMgaXMgdXNlZnVsIHRvIHBhcnNlIGZ1bGwgcGF0aHMgb24gdGhlIGNsaWVudCBzaWRlLlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHBhcnNlIGUuZy4gL2Zvby9iYXI/aWQ9MSNoYXNoXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0aChwYXRoKSB7XG4gICAgY29uc3QgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKFwiI1wiKTtcbiAgICBjb25zdCBxdWVyeUluZGV4ID0gcGF0aC5pbmRleE9mKFwiP1wiKTtcbiAgICBjb25zdCBoYXNRdWVyeSA9IHF1ZXJ5SW5kZXggPiAtMSAmJiAoaGFzaEluZGV4IDwgMCB8fCBxdWVyeUluZGV4IDwgaGFzaEluZGV4KTtcbiAgICBpZiAoaGFzUXVlcnkgfHwgaGFzaEluZGV4ID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhdGhuYW1lOiBwYXRoLnN1YnN0cmluZygwLCBoYXNRdWVyeSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpLFxuICAgICAgICAgICAgcXVlcnk6IGhhc1F1ZXJ5ID8gcGF0aC5zdWJzdHJpbmcocXVlcnlJbmRleCwgaGFzaEluZGV4ID4gLTEgPyBoYXNoSW5kZXggOiB1bmRlZmluZWQpIDogXCJcIixcbiAgICAgICAgICAgIGhhc2g6IGhhc2hJbmRleCA+IC0xID8gcGF0aC5zbGljZShoYXNoSW5kZXgpIDogXCJcIlxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBwYXRobmFtZTogcGF0aCxcbiAgICAgICAgcXVlcnk6IFwiXCIsXG4gICAgICAgIGhhc2g6IFwiXCJcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXJzZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJwYXJzZVBhdGgiLCJwYXRoIiwiaGFzaEluZGV4IiwiaW5kZXhPZiIsInF1ZXJ5SW5kZXgiLCJoYXNRdWVyeSIsInBhdGhuYW1lIiwic3Vic3RyaW5nIiwicXVlcnkiLCJ1bmRlZmluZWQiLCJoYXNoIiwic2xpY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseRelativeUrl: () => (/* binding */ parseRelativeUrl)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/utils.js\");\n/* harmony import */ var _querystring__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./querystring */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js\");\n\n\n/**\n * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative\n * (e.g. `./hello`) then at least base must be.\n * Absolute urls are rejected with one exception, in the browser, absolute urls that are on\n * the current origin will be parsed as relative\n */ function parseRelativeUrl(url, base) {\n const globalBase = new URL( true ? \"http://n\" : 0);\n const resolvedBase = base ? new URL(base, globalBase) : url.startsWith(\".\") ? new URL( true ? \"http://n\" : 0) : globalBase;\n const { pathname, searchParams, search, hash, href, origin } = new URL(url, resolvedBase);\n if (origin !== globalBase.origin) {\n throw new Error(\"invariant: invalid relative URL, router received \" + url);\n }\n return {\n pathname,\n query: (0,_querystring__WEBPACK_IMPORTED_MODULE_1__.searchParamsToUrlQuery)(searchParams),\n search,\n hash,\n href: href.slice(globalBase.origin.length)\n };\n} //# sourceMappingURL=parse-relative-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRDtBQUNPO0FBQ3ZEOzs7OztDQUtDLEdBQVUsU0FBU0UsaUJBQWlCQyxHQUFHLEVBQUVDLElBQUk7SUFDMUMsTUFBTUMsYUFBYSxJQUFJQyxJQUFJLEtBQTZCLEdBQUcsYUFBYU4sQ0FBbUJBO0lBQzNGLE1BQU1PLGVBQWVILE9BQU8sSUFBSUUsSUFBSUYsTUFBTUMsY0FBY0YsSUFBSUssVUFBVSxDQUFDLE9BQU8sSUFBSUYsSUFBSSxLQUE2QixHQUFHLGFBQWFHLENBQW9CLElBQUlKO0lBQzNKLE1BQU0sRUFBRU8sUUFBUSxFQUFFQyxZQUFZLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFSixJQUFJLEVBQUVLLE1BQU0sRUFBRSxHQUFHLElBQUlWLElBQUlILEtBQUtJO0lBQzVFLElBQUlTLFdBQVdYLFdBQVdXLE1BQU0sRUFBRTtRQUM5QixNQUFNLElBQUlDLE1BQU0sc0RBQXNEZDtJQUMxRTtJQUNBLE9BQU87UUFDSFM7UUFDQU0sT0FBT2pCLG9FQUFzQkEsQ0FBQ1k7UUFDOUJDO1FBQ0FDO1FBQ0FKLE1BQU1BLEtBQUtRLEtBQUssQ0FBQ2QsV0FBV1csTUFBTSxDQUFDSSxNQUFNO0lBQzdDO0FBQ0osRUFFQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcz9lNjEwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExvY2F0aW9uT3JpZ2luIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgeyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IH0gZnJvbSBcIi4vcXVlcnlzdHJpbmdcIjtcbi8qKlxuICogUGFyc2VzIHBhdGgtcmVsYXRpdmUgdXJscyAoZS5nLiBgL2hlbGxvL3dvcmxkP2Zvbz1iYXJgKS4gSWYgdXJsIGlzbid0IHBhdGgtcmVsYXRpdmVcbiAqIChlLmcuIGAuL2hlbGxvYCkgdGhlbiBhdCBsZWFzdCBiYXNlIG11c3QgYmUuXG4gKiBBYnNvbHV0ZSB1cmxzIGFyZSByZWplY3RlZCB3aXRoIG9uZSBleGNlcHRpb24sIGluIHRoZSBicm93c2VyLCBhYnNvbHV0ZSB1cmxzIHRoYXQgYXJlIG9uXG4gKiB0aGUgY3VycmVudCBvcmlnaW4gd2lsbCBiZSBwYXJzZWQgYXMgcmVsYXRpdmVcbiAqLyBleHBvcnQgZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybCh1cmwsIGJhc2UpIHtcbiAgICBjb25zdCBnbG9iYWxCYXNlID0gbmV3IFVSTCh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiID8gXCJodHRwOi8vblwiIDogZ2V0TG9jYXRpb25PcmlnaW4oKSk7XG4gICAgY29uc3QgcmVzb2x2ZWRCYXNlID0gYmFzZSA/IG5ldyBVUkwoYmFzZSwgZ2xvYmFsQmFzZSkgOiB1cmwuc3RhcnRzV2l0aChcIi5cIikgPyBuZXcgVVJMKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIgPyBcImh0dHA6Ly9uXCIgOiB3aW5kb3cubG9jYXRpb24uaHJlZikgOiBnbG9iYWxCYXNlO1xuICAgIGNvbnN0IHsgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgc2VhcmNoLCBoYXNoLCBocmVmLCBvcmlnaW4gfSA9IG5ldyBVUkwodXJsLCByZXNvbHZlZEJhc2UpO1xuICAgIGlmIChvcmlnaW4gIT09IGdsb2JhbEJhc2Uub3JpZ2luKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImludmFyaWFudDogaW52YWxpZCByZWxhdGl2ZSBVUkwsIHJvdXRlciByZWNlaXZlZCBcIiArIHVybCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpLFxuICAgICAgICBzZWFyY2gsXG4gICAgICAgIGhhc2gsXG4gICAgICAgIGhyZWY6IGhyZWYuc2xpY2UoZ2xvYmFsQmFzZS5vcmlnaW4ubGVuZ3RoKVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXJlbGF0aXZlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsiZ2V0TG9jYXRpb25PcmlnaW4iLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwicGFyc2VSZWxhdGl2ZVVybCIsInVybCIsImJhc2UiLCJnbG9iYWxCYXNlIiwiVVJMIiwicmVzb2x2ZWRCYXNlIiwic3RhcnRzV2l0aCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInBhdGhuYW1lIiwic2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiaGFzaCIsIm9yaWdpbiIsIkVycm9yIiwicXVlcnkiLCJzbGljZSIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseUrl: () => (/* binding */ parseUrl)\n/* harmony export */ });\n/* harmony import */ var _querystring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./querystring */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js\");\n/* harmony import */ var _parse_relative_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse-relative-url */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js\");\n\n\nfunction parseUrl(url) {\n if (url.startsWith(\"/\")) {\n return (0,_parse_relative_url__WEBPACK_IMPORTED_MODULE_1__.parseRelativeUrl)(url);\n }\n const parsedURL = new URL(url);\n return {\n hash: parsedURL.hash,\n hostname: parsedURL.hostname,\n href: parsedURL.href,\n pathname: parsedURL.pathname,\n port: parsedURL.port,\n protocol: parsedURL.protocol,\n query: (0,_querystring__WEBPACK_IMPORTED_MODULE_0__.searchParamsToUrlQuery)(parsedURL.searchParams),\n search: parsedURL.search\n };\n} //# sourceMappingURL=parse-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1RDtBQUNDO0FBQ2pELFNBQVNFLFNBQVNDLEdBQUc7SUFDeEIsSUFBSUEsSUFBSUMsVUFBVSxDQUFDLE1BQU07UUFDckIsT0FBT0gscUVBQWdCQSxDQUFDRTtJQUM1QjtJQUNBLE1BQU1FLFlBQVksSUFBSUMsSUFBSUg7SUFDMUIsT0FBTztRQUNISSxNQUFNRixVQUFVRSxJQUFJO1FBQ3BCQyxVQUFVSCxVQUFVRyxRQUFRO1FBQzVCQyxNQUFNSixVQUFVSSxJQUFJO1FBQ3BCQyxVQUFVTCxVQUFVSyxRQUFRO1FBQzVCQyxNQUFNTixVQUFVTSxJQUFJO1FBQ3BCQyxVQUFVUCxVQUFVTyxRQUFRO1FBQzVCQyxPQUFPYixvRUFBc0JBLENBQUNLLFVBQVVTLFlBQVk7UUFDcERDLFFBQVFWLFVBQVVVLE1BQU07SUFDNUI7QUFDSixFQUVBLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtdXJsLmpzP2QwMWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VhcmNoUGFyYW1zVG9VcmxRdWVyeSB9IGZyb20gXCIuL3F1ZXJ5c3RyaW5nXCI7XG5pbXBvcnQgeyBwYXJzZVJlbGF0aXZlVXJsIH0gZnJvbSBcIi4vcGFyc2UtcmVsYXRpdmUtdXJsXCI7XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VVcmwodXJsKSB7XG4gICAgaWYgKHVybC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICByZXR1cm4gcGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWRVUkwgPSBuZXcgVVJMKHVybCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaGFzaDogcGFyc2VkVVJMLmhhc2gsXG4gICAgICAgIGhvc3RuYW1lOiBwYXJzZWRVUkwuaG9zdG5hbWUsXG4gICAgICAgIGhyZWY6IHBhcnNlZFVSTC5ocmVmLFxuICAgICAgICBwYXRobmFtZTogcGFyc2VkVVJMLnBhdGhuYW1lLFxuICAgICAgICBwb3J0OiBwYXJzZWRVUkwucG9ydCxcbiAgICAgICAgcHJvdG9jb2w6IHBhcnNlZFVSTC5wcm90b2NvbCxcbiAgICAgICAgcXVlcnk6IHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkocGFyc2VkVVJMLnNlYXJjaFBhcmFtcyksXG4gICAgICAgIHNlYXJjaDogcGFyc2VkVVJMLnNlYXJjaFxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsic2VhcmNoUGFyYW1zVG9VcmxRdWVyeSIsInBhcnNlUmVsYXRpdmVVcmwiLCJwYXJzZVVybCIsInVybCIsInN0YXJ0c1dpdGgiLCJwYXJzZWRVUkwiLCJVUkwiLCJoYXNoIiwiaG9zdG5hbWUiLCJocmVmIiwicGF0aG5hbWUiLCJwb3J0IiwicHJvdG9jb2wiLCJxdWVyeSIsInNlYXJjaFBhcmFtcyIsInNlYXJjaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ pathHasPrefix: () => (/* binding */ pathHasPrefix)\n/* harmony export */ });\n/* harmony import */ var _parse_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse-path */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js\");\n\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */ function pathHasPrefix(path, prefix) {\n if (typeof path !== \"string\") {\n return false;\n }\n const { pathname } = (0,_parse_path__WEBPACK_IMPORTED_MODULE_0__.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + \"/\");\n} //# sourceMappingURL=path-has-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDO0FBQ3pDOzs7Ozs7Q0FNQyxHQUFVLFNBQVNDLGNBQWNDLElBQUksRUFBRUMsTUFBTTtJQUMxQyxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUMxQixPQUFPO0lBQ1g7SUFDQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHSixzREFBU0EsQ0FBQ0U7SUFDL0IsT0FBT0UsYUFBYUQsVUFBVUMsU0FBU0MsVUFBVSxDQUFDRixTQUFTO0FBQy9ELEVBRUEsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXRoLWhhcy1wcmVmaXguanM/YzNkYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tIFwiLi9wYXJzZS1wYXRoXCI7XG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIHBhdGggc3RhcnRzIHdpdGggYSBnaXZlbiBwcmVmaXguIEl0IGVuc3VyZXMgaXQgbWF0Y2hlc1xuICogZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnMuIGUuZy4gcHJlZml4IC9kb2NzIHNob3VsZCByZXBsYWNlXG4gKiBmb3IgL2RvY3MsIC9kb2NzLywgL2RvY3MvYSBidXQgbm90IC9kb2Nzc3NcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHBhcmFtIHByZWZpeCBUaGUgcHJlZml4IHRvIGNoZWNrIGFnYWluc3QuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHBhdGhIYXNQcmVmaXgocGF0aCwgcHJlZml4KSB7XG4gICAgaWYgKHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgeyBwYXRobmFtZSB9ID0gcGFyc2VQYXRoKHBhdGgpO1xuICAgIHJldHVybiBwYXRobmFtZSA9PT0gcHJlZml4IHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgocHJlZml4ICsgXCIvXCIpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXRoLWhhcy1wcmVmaXguanMubWFwIl0sIm5hbWVzIjpbInBhcnNlUGF0aCIsInBhdGhIYXNQcmVmaXgiLCJwYXRoIiwicHJlZml4IiwicGF0aG5hbWUiLCJzdGFydHNXaXRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getPathMatch: () => (/* binding */ getPathMatch)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(ssr)/../../node_modules/next/dist/compiled/path-to-regexp/index.js\");\n\n\n/**\n * Generates a path matcher function for a given path and options based on\n * path-to-regexp. By default the match will be case insensitive, non strict\n * and delimited by `/`.\n */ function getPathMatch(path, options) {\n const keys = [];\n const regexp = (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.pathToRegexp)(path, keys, {\n delimiter: \"/\",\n sensitive: typeof (options == null ? void 0 : options.sensitive) === \"boolean\" ? options.sensitive : false,\n strict: options == null ? void 0 : options.strict\n });\n const matcher = (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.regexpToFunction)((options == null ? void 0 : options.regexModifier) ? new RegExp(options.regexModifier(regexp.source), regexp.flags) : regexp, keys);\n /**\n * A matcher function that will check if a given pathname matches the path\n * given in the builder function. When the path does not match it will return\n * `false` but if it does it will return an object with the matched params\n * merged with the params provided in the second argument.\n */ return (pathname, params)=>{\n // If no pathname is provided it's not a match.\n if (typeof pathname !== \"string\") return false;\n const match = matcher(pathname);\n // If the path did not match `false` will be returned.\n if (!match) return false;\n /**\n * If unnamed params are not allowed they must be removed from\n * the matched parameters. path-to-regexp uses \"string\" for named and\n * \"number\" for unnamed parameters.\n */ if (options == null ? void 0 : options.removeUnnamedParams) {\n for (const key of keys){\n if (typeof key.name === \"number\") {\n delete match.params[key.name];\n }\n }\n }\n return {\n ...params,\n ...match.params\n };\n };\n} //# sourceMappingURL=path-match.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1tYXRjaC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRTtBQUNJO0FBQ3JFOzs7O0NBSUMsR0FBVSxTQUFTRSxhQUFhQyxJQUFJLEVBQUVDLE9BQU87SUFDMUMsTUFBTUMsT0FBTyxFQUFFO0lBQ2YsTUFBTUMsU0FBU04sK0VBQVlBLENBQUNHLE1BQU1FLE1BQU07UUFDcENFLFdBQVc7UUFDWEMsV0FBVyxPQUFRSixDQUFBQSxXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRSSxTQUFTLE1BQU0sWUFBWUosUUFBUUksU0FBUyxHQUFHO1FBQ3JHQyxRQUFRTCxXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRSyxNQUFNO0lBQ3JEO0lBQ0EsTUFBTUMsVUFBVVQsbUZBQWdCQSxDQUFDLENBQUNHLFdBQVcsT0FBTyxLQUFLLElBQUlBLFFBQVFPLGFBQWEsSUFBSSxJQUFJQyxPQUFPUixRQUFRTyxhQUFhLENBQUNMLE9BQU9PLE1BQU0sR0FBR1AsT0FBT1EsS0FBSyxJQUFJUixRQUFRRDtJQUMvSjs7Ozs7R0FLRCxHQUFHLE9BQU8sQ0FBQ1UsVUFBVUM7UUFDaEIsK0NBQStDO1FBQy9DLElBQUksT0FBT0QsYUFBYSxVQUFVLE9BQU87UUFDekMsTUFBTUUsUUFBUVAsUUFBUUs7UUFDdEIsc0RBQXNEO1FBQ3RELElBQUksQ0FBQ0UsT0FBTyxPQUFPO1FBQ25COzs7O0tBSUgsR0FBRyxJQUFJYixXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRYyxtQkFBbUIsRUFBRTtZQUN4RCxLQUFLLE1BQU1DLE9BQU9kLEtBQUs7Z0JBQ25CLElBQUksT0FBT2MsSUFBSUMsSUFBSSxLQUFLLFVBQVU7b0JBQzlCLE9BQU9ILE1BQU1ELE1BQU0sQ0FBQ0csSUFBSUMsSUFBSSxDQUFDO2dCQUNqQztZQUNKO1FBQ0o7UUFDQSxPQUFPO1lBQ0gsR0FBR0osTUFBTTtZQUNULEdBQUdDLE1BQU1ELE1BQU07UUFDbkI7SUFDSjtBQUNKLEVBRUEsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXRoLW1hdGNoLmpzPzU1NWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF0aFRvUmVnZXhwIH0gZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cFwiO1xuaW1wb3J0IHsgcmVnZXhwVG9GdW5jdGlvbiB9IGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHBcIjtcbi8qKlxuICogR2VuZXJhdGVzIGEgcGF0aCBtYXRjaGVyIGZ1bmN0aW9uIGZvciBhIGdpdmVuIHBhdGggYW5kIG9wdGlvbnMgYmFzZWQgb25cbiAqIHBhdGgtdG8tcmVnZXhwLiBCeSBkZWZhdWx0IHRoZSBtYXRjaCB3aWxsIGJlIGNhc2UgaW5zZW5zaXRpdmUsIG5vbiBzdHJpY3RcbiAqIGFuZCBkZWxpbWl0ZWQgYnkgYC9gLlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoTWF0Y2gocGF0aCwgb3B0aW9ucykge1xuICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICBjb25zdCByZWdleHAgPSBwYXRoVG9SZWdleHAocGF0aCwga2V5cywge1xuICAgICAgICBkZWxpbWl0ZXI6IFwiL1wiLFxuICAgICAgICBzZW5zaXRpdmU6IHR5cGVvZiAob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5zZW5zaXRpdmUpID09PSBcImJvb2xlYW5cIiA/IG9wdGlvbnMuc2Vuc2l0aXZlIDogZmFsc2UsXG4gICAgICAgIHN0cmljdDogb3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5zdHJpY3RcbiAgICB9KTtcbiAgICBjb25zdCBtYXRjaGVyID0gcmVnZXhwVG9GdW5jdGlvbigob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5yZWdleE1vZGlmaWVyKSA/IG5ldyBSZWdFeHAob3B0aW9ucy5yZWdleE1vZGlmaWVyKHJlZ2V4cC5zb3VyY2UpLCByZWdleHAuZmxhZ3MpIDogcmVnZXhwLCBrZXlzKTtcbiAgICAvKipcbiAgICogQSBtYXRjaGVyIGZ1bmN0aW9uIHRoYXQgd2lsbCBjaGVjayBpZiBhIGdpdmVuIHBhdGhuYW1lIG1hdGNoZXMgdGhlIHBhdGhcbiAgICogZ2l2ZW4gaW4gdGhlIGJ1aWxkZXIgZnVuY3Rpb24uIFdoZW4gdGhlIHBhdGggZG9lcyBub3QgbWF0Y2ggaXQgd2lsbCByZXR1cm5cbiAgICogYGZhbHNlYCBidXQgaWYgaXQgZG9lcyBpdCB3aWxsIHJldHVybiBhbiBvYmplY3Qgd2l0aCB0aGUgbWF0Y2hlZCBwYXJhbXNcbiAgICogbWVyZ2VkIHdpdGggdGhlIHBhcmFtcyBwcm92aWRlZCBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50LlxuICAgKi8gcmV0dXJuIChwYXRobmFtZSwgcGFyYW1zKT0+e1xuICAgICAgICAvLyBJZiBubyBwYXRobmFtZSBpcyBwcm92aWRlZCBpdCdzIG5vdCBhIG1hdGNoLlxuICAgICAgICBpZiAodHlwZW9mIHBhdGhuYW1lICE9PSBcInN0cmluZ1wiKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gbWF0Y2hlcihwYXRobmFtZSk7XG4gICAgICAgIC8vIElmIHRoZSBwYXRoIGRpZCBub3QgbWF0Y2ggYGZhbHNlYCB3aWxsIGJlIHJldHVybmVkLlxuICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAqIElmIHVubmFtZWQgcGFyYW1zIGFyZSBub3QgYWxsb3dlZCB0aGV5IG11c3QgYmUgcmVtb3ZlZCBmcm9tXG4gICAgICogdGhlIG1hdGNoZWQgcGFyYW1ldGVycy4gcGF0aC10by1yZWdleHAgdXNlcyBcInN0cmluZ1wiIGZvciBuYW1lZCBhbmRcbiAgICAgKiBcIm51bWJlclwiIGZvciB1bm5hbWVkIHBhcmFtZXRlcnMuXG4gICAgICovIGlmIChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnJlbW92ZVVubmFtZWRQYXJhbXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpe1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yga2V5Lm5hbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG1hdGNoLnBhcmFtc1trZXkubmFtZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICAuLi5tYXRjaC5wYXJhbXNcbiAgICAgICAgfTtcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXRoLW1hdGNoLmpzLm1hcCJdLCJuYW1lcyI6WyJwYXRoVG9SZWdleHAiLCJyZWdleHBUb0Z1bmN0aW9uIiwiZ2V0UGF0aE1hdGNoIiwicGF0aCIsIm9wdGlvbnMiLCJrZXlzIiwicmVnZXhwIiwiZGVsaW1pdGVyIiwic2Vuc2l0aXZlIiwic3RyaWN0IiwibWF0Y2hlciIsInJlZ2V4TW9kaWZpZXIiLCJSZWdFeHAiLCJzb3VyY2UiLCJmbGFncyIsInBhdGhuYW1lIiwicGFyYW1zIiwibWF0Y2giLCJyZW1vdmVVbm5hbWVkUGFyYW1zIiwia2V5IiwibmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ compileNonPath: () => (/* binding */ compileNonPath),\n/* harmony export */ matchHas: () => (/* binding */ matchHas),\n/* harmony export */ prepareDestination: () => (/* binding */ prepareDestination)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(ssr)/../../node_modules/next/dist/compiled/path-to-regexp/index.js\");\n/* harmony import */ var _escape_regexp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../escape-regexp */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/escape-regexp.js\");\n/* harmony import */ var _parse_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parse-url */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js\");\n/* harmony import */ var _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(ssr)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\");\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../client/components/app-router-headers */ \"(ssr)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _server_api_utils_get_cookie_parser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../server/api-utils/get-cookie-parser */ \"(ssr)/../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js\");\n\n\n\n\n\n\n/**\n * Ensure only a-zA-Z are used for param names for proper interpolating\n * with path-to-regexp\n */ function getSafeParamName(paramName) {\n let newParamName = \"\";\n for(let i = 0; i < paramName.length; i++){\n const charCode = paramName.charCodeAt(i);\n if (charCode > 64 && charCode < 91 || // A-Z\n charCode > 96 && charCode < 123 // a-z\n ) {\n newParamName += paramName[i];\n }\n }\n return newParamName;\n}\nfunction escapeSegment(str, segmentName) {\n return str.replace(new RegExp(\":\" + (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(segmentName), \"g\"), \"__ESC_COLON_\" + segmentName);\n}\nfunction unescapeSegments(str) {\n return str.replace(/__ESC_COLON_/gi, \":\");\n}\nfunction matchHas(req, query, has, missing) {\n if (has === void 0) has = [];\n if (missing === void 0) missing = [];\n const params = {};\n const hasMatch = (hasItem)=>{\n let value;\n let key = hasItem.key;\n switch(hasItem.type){\n case \"header\":\n {\n key = key.toLowerCase();\n value = req.headers[key];\n break;\n }\n case \"cookie\":\n {\n if (\"cookies\" in req) {\n value = req.cookies[hasItem.key];\n } else {\n const cookies = (0,_server_api_utils_get_cookie_parser__WEBPACK_IMPORTED_MODULE_5__.getCookieParser)(req.headers)();\n value = cookies[hasItem.key];\n }\n break;\n }\n case \"query\":\n {\n value = query[key];\n break;\n }\n case \"host\":\n {\n const { host } = (req == null ? void 0 : req.headers) || {};\n // remove port from host if present\n const hostname = host == null ? void 0 : host.split(\":\", 1)[0].toLowerCase();\n value = hostname;\n break;\n }\n default:\n {\n break;\n }\n }\n if (!hasItem.value && value) {\n params[getSafeParamName(key)] = value;\n return true;\n } else if (value) {\n const matcher = new RegExp(\"^\" + hasItem.value + \"$\");\n const matches = Array.isArray(value) ? value.slice(-1)[0].match(matcher) : value.match(matcher);\n if (matches) {\n if (Array.isArray(matches)) {\n if (matches.groups) {\n Object.keys(matches.groups).forEach((groupKey)=>{\n params[groupKey] = matches.groups[groupKey];\n });\n } else if (hasItem.type === \"host\" && matches[0]) {\n params.host = matches[0];\n }\n }\n return true;\n }\n }\n return false;\n };\n const allMatch = has.every((item)=>hasMatch(item)) && !missing.some((item)=>hasMatch(item));\n if (allMatch) {\n return params;\n }\n return false;\n}\nfunction compileNonPath(value, params) {\n if (!value.includes(\":\")) {\n return value;\n }\n for (const key of Object.keys(params)){\n if (value.includes(\":\" + key)) {\n value = value.replace(new RegExp(\":\" + key + \"\\\\*\", \"g\"), \":\" + key + \"--ESCAPED_PARAM_ASTERISKS\").replace(new RegExp(\":\" + key + \"\\\\?\", \"g\"), \":\" + key + \"--ESCAPED_PARAM_QUESTION\").replace(new RegExp(\":\" + key + \"\\\\+\", \"g\"), \":\" + key + \"--ESCAPED_PARAM_PLUS\").replace(new RegExp(\":\" + key + \"(?!\\\\w)\", \"g\"), \"--ESCAPED_PARAM_COLON\" + key);\n }\n }\n value = value.replace(/(:|\\*|\\?|\\+|\\(|\\)|\\{|\\})/g, \"\\\\$1\").replace(/--ESCAPED_PARAM_PLUS/g, \"+\").replace(/--ESCAPED_PARAM_COLON/g, \":\").replace(/--ESCAPED_PARAM_QUESTION/g, \"?\").replace(/--ESCAPED_PARAM_ASTERISKS/g, \"*\");\n // the value needs to start with a forward-slash to be compiled\n // correctly\n return (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.compile)(\"/\" + value, {\n validate: false\n })(params).slice(1);\n}\nfunction prepareDestination(args) {\n const query = Object.assign({}, args.query);\n delete query.__nextLocale;\n delete query.__nextDefaultLocale;\n delete query.__nextDataReq;\n delete query.__nextInferredLocaleFromDefault;\n delete query[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_4__.NEXT_RSC_UNION_QUERY];\n let escapedDestination = args.destination;\n for (const param of Object.keys({\n ...args.params,\n ...query\n })){\n escapedDestination = escapeSegment(escapedDestination, param);\n }\n const parsedDestination = (0,_parse_url__WEBPACK_IMPORTED_MODULE_2__.parseUrl)(escapedDestination);\n const destQuery = parsedDestination.query;\n const destPath = unescapeSegments(\"\" + parsedDestination.pathname + (parsedDestination.hash || \"\"));\n const destHostname = unescapeSegments(parsedDestination.hostname || \"\");\n const destPathParamKeys = [];\n const destHostnameParamKeys = [];\n (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.pathToRegexp)(destPath, destPathParamKeys);\n (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.pathToRegexp)(destHostname, destHostnameParamKeys);\n const destParams = [];\n destPathParamKeys.forEach((key)=>destParams.push(key.name));\n destHostnameParamKeys.forEach((key)=>destParams.push(key.name));\n const destPathCompiler = (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.compile)(destPath, // have already validated before we got to this point and validating\n // breaks compiling destinations with named pattern params from the source\n // e.g. /something:hello(.*) -> /another/:hello is broken with validation\n // since compile validation is meant for reversing and not for inserting\n // params from a separate path-regex into another\n {\n validate: false\n });\n const destHostnameCompiler = (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.compile)(destHostname, {\n validate: false\n });\n // update any params in query values\n for (const [key, strOrArray] of Object.entries(destQuery)){\n // the value needs to start with a forward-slash to be compiled\n // correctly\n if (Array.isArray(strOrArray)) {\n destQuery[key] = strOrArray.map((value)=>compileNonPath(unescapeSegments(value), args.params));\n } else if (typeof strOrArray === \"string\") {\n destQuery[key] = compileNonPath(unescapeSegments(strOrArray), args.params);\n }\n }\n // add path params to query if it's not a redirect and not\n // already defined in destination query or path\n let paramKeys = Object.keys(args.params).filter((name)=>name !== \"nextInternalLocale\");\n if (args.appendParamsToQuery && !paramKeys.some((key)=>destParams.includes(key))) {\n for (const key of paramKeys){\n if (!(key in destQuery)) {\n destQuery[key] = args.params[key];\n }\n }\n }\n let newUrl;\n // The compiler also that the interception route marker is an unnamed param, hence '0',\n // so we need to add it to the params object.\n if ((0,_server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_3__.isInterceptionRouteAppPath)(destPath)) {\n for (const segment of destPath.split(\"/\")){\n const marker = _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_3__.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n args.params[\"0\"] = marker;\n break;\n }\n }\n }\n try {\n newUrl = destPathCompiler(args.params);\n const [pathname, hash] = newUrl.split(\"#\", 2);\n parsedDestination.hostname = destHostnameCompiler(args.params);\n parsedDestination.pathname = pathname;\n parsedDestination.hash = \"\" + (hash ? \"#\" : \"\") + (hash || \"\");\n delete parsedDestination.search;\n } catch (err) {\n if (err.message.match(/Expected .*? to not repeat, but got an array/)) {\n throw new Error(\"To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match\");\n }\n throw err;\n }\n // Query merge order lowest priority to highest\n // 1. initial URL query values\n // 2. path segment values\n // 3. destination specified query values\n parsedDestination.query = {\n ...query,\n ...parsedDestination.query\n };\n return {\n newUrl,\n destQuery,\n parsedDestination\n };\n} //# sourceMappingURL=prepare-destination.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcHJlcGFyZS1kZXN0aW5hdGlvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBMEU7QUFDakI7QUFDbEI7QUFDd0Y7QUFDdkM7QUFDUDtBQUNqRjs7O0NBR0MsR0FBRyxTQUFTUSxpQkFBaUJDLFNBQVM7SUFDbkMsSUFBSUMsZUFBZTtJQUNuQixJQUFJLElBQUlDLElBQUksR0FBR0EsSUFBSUYsVUFBVUcsTUFBTSxFQUFFRCxJQUFJO1FBQ3JDLE1BQU1FLFdBQVdKLFVBQVVLLFVBQVUsQ0FBQ0g7UUFDdEMsSUFBSUUsV0FBVyxNQUFNQSxXQUFXLE1BQU0sTUFBTTtRQUM1Q0EsV0FBVyxNQUFNQSxXQUFXLElBQUksTUFBTTtVQUNwQztZQUNFSCxnQkFBZ0JELFNBQVMsQ0FBQ0UsRUFBRTtRQUNoQztJQUNKO0lBQ0EsT0FBT0Q7QUFDWDtBQUNBLFNBQVNLLGNBQWNDLEdBQUcsRUFBRUMsV0FBVztJQUNuQyxPQUFPRCxJQUFJRSxPQUFPLENBQUMsSUFBSUMsT0FBTyxNQUFNakIsa0VBQWtCQSxDQUFDZSxjQUFjLE1BQU0saUJBQWlCQTtBQUNoRztBQUNBLFNBQVNHLGlCQUFpQkosR0FBRztJQUN6QixPQUFPQSxJQUFJRSxPQUFPLENBQUMsa0JBQWtCO0FBQ3pDO0FBQ08sU0FBU0csU0FBU0MsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLEdBQUcsRUFBRUMsT0FBTztJQUM3QyxJQUFJRCxRQUFRLEtBQUssR0FBR0EsTUFBTSxFQUFFO0lBQzVCLElBQUlDLFlBQVksS0FBSyxHQUFHQSxVQUFVLEVBQUU7SUFDcEMsTUFBTUMsU0FBUyxDQUFDO0lBQ2hCLE1BQU1DLFdBQVcsQ0FBQ0M7UUFDZCxJQUFJQztRQUNKLElBQUlDLE1BQU1GLFFBQVFFLEdBQUc7UUFDckIsT0FBT0YsUUFBUUcsSUFBSTtZQUNmLEtBQUs7Z0JBQ0Q7b0JBQ0lELE1BQU1BLElBQUlF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QUs7SUFDOUI7SUFDQSxPQUFPO1FBQ0g4RDtRQUNBbEI7UUFDQUQ7SUFDSjtBQUNKLEVBRUEsK0NBQStDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wcmVwYXJlLWRlc3RpbmF0aW9uLmpzP2Q0MjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGlsZSwgcGF0aFRvUmVnZXhwIH0gZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cFwiO1xuaW1wb3J0IHsgZXNjYXBlU3RyaW5nUmVnZXhwIH0gZnJvbSBcIi4uLy4uL2VzY2FwZS1yZWdleHBcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIi4vcGFyc2UtdXJsXCI7XG5pbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUywgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGggfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXNcIjtcbmltcG9ydCB7IE5FWFRfUlNDX1VOSU9OX1FVRVJZIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiO1xuaW1wb3J0IHsgZ2V0Q29va2llUGFyc2VyIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZlci9hcGktdXRpbHMvZ2V0LWNvb2tpZS1wYXJzZXJcIjtcbi8qKlxuICogRW5zdXJlIG9ubHkgYS16QS1aIGFyZSB1c2VkIGZvciBwYXJhbSBuYW1lcyBmb3IgcHJvcGVyIGludGVycG9sYXRpbmdcbiAqIHdpdGggcGF0aC10by1yZWdleHBcbiAqLyBmdW5jdGlvbiBnZXRTYWZlUGFyYW1OYW1lKHBhcmFtTmFtZSkge1xuICAgIGxldCBuZXdQYXJhbU5hbWUgPSBcIlwiO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBwYXJhbU5hbWUubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBjaGFyQ29kZSA9IHBhcmFtTmFtZS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoY2hhckNvZGUgPiA2NCAmJiBjaGFyQ29kZSA8IDkxIHx8IC8vIEEtWlxuICAgICAgICBjaGFyQ29kZSA+IDk2ICYmIGNoYXJDb2RlIDwgMTIzIC8vIGEtelxuICAgICAgICApIHtcbiAgICAgICAgICAgIG5ld1BhcmFtTmFtZSArPSBwYXJhbU5hbWVbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1BhcmFtTmFtZTtcbn1cbmZ1bmN0aW9uIGVzY2FwZVNlZ21lbnQoc3RyLCBzZWdtZW50TmFtZSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiOlwiICsgZXNjYXBlU3RyaW5nUmVnZXhwKHNlZ21lbnROYW1lKSwgXCJnXCIpLCBcIl9fRVNDX0NPTE9OX1wiICsgc2VnbWVudE5hbWUpO1xufVxuZnVuY3Rpb24gdW5lc2NhcGVTZWdtZW50cyhzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL19fRVNDX0NPTE9OXy9naSwgXCI6XCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoSGFzKHJlcSwgcXVlcnksIGhhcywgbWlzc2luZykge1xuICAgIGlmIChoYXMgPT09IHZvaWQgMCkgaGFzID0gW107XG4gICAgaWYgKG1pc3NpbmcgPT09IHZvaWQgMCkgbWlzc2luZyA9IFtdO1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IGhhc01hdGNoID0gKGhhc0l0ZW0pPT57XG4gICAgICAgIGxldCB2YWx1ZTtcbiAgICAgICAgbGV0IGtleSA9IGhhc0l0ZW0ua2V5O1xuICAgICAgICBzd2l0Y2goaGFzSXRlbS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgXCJoZWFkZXJcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHJlcS5oZWFkZXJzW2tleV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJjb29raWVcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcImNvb2tpZXNcIiBpbiByZXEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcmVxLmNvb2tpZXNbaGFzSXRlbS5rZXldO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29va2llcyA9IGdldENvb2tpZVBhcnNlcihyZXEuaGVhZGVycykoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29va2llc1toYXNJdGVtLmtleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcInF1ZXJ5XCI6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJob3N0XCI6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGhvc3QgfSA9IChyZXEgPT0gbnVsbCA/IHZvaWQgMCA6IHJlcS5oZWFkZXJzKSB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHBvcnQgZnJvbSBob3N0IGlmIHByZXNlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaG9zdG5hbWUgPSBob3N0ID09IG51bGwgPyB2b2lkIDAgOiBob3N0LnNwbGl0KFwiOlwiLCAxKVswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGhvc3RuYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaGFzSXRlbS52YWx1ZSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgcGFyYW1zW2dldFNhZmVQYXJhbU5hbWUoa2V5KV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVyID0gbmV3IFJlZ0V4cChcIl5cIiArIGhhc0l0ZW0udmFsdWUgKyBcIiRcIik7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5zbGljZSgtMSlbMF0ubWF0Y2gobWF0Y2hlcikgOiB2YWx1ZS5tYXRjaChtYXRjaGVyKTtcbiAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobWF0Y2hlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXMuZ3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhtYXRjaGVzLmdyb3VwcykuZm9yRWFjaCgoZ3JvdXBLZXkpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zW2dyb3VwS2V5XSA9IG1hdGNoZXMuZ3JvdXBzW2dyb3VwS2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0l0ZW0udHlwZSA9PT0gXCJob3N0XCIgJiYgbWF0Y2hlc1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmhvc3QgPSBtYXRjaGVzWzBdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIGNvbnN0IGFsbE1hdGNoID0gaGFzLmV2ZXJ5KChpdGVtKT0+aGFzTWF0Y2goaXRlbSkpICYmICFtaXNzaW5nLnNvbWUoKGl0ZW0pPT5oYXNNYXRjaChpdGVtKSk7XG4gICAgaWYgKGFsbE1hdGNoKSB7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjb21waWxlTm9uUGF0aCh2YWx1ZSwgcGFyYW1zKSB7XG4gICAgaWYgKCF2YWx1ZS5pbmNsdWRlcyhcIjpcIikpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKXtcbiAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKFwiOlwiICsga2V5KSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCI6XCIgKyBrZXkgKyBcIlxcXFwqXCIsIFwiZ1wiKSwgXCI6XCIgKyBrZXkgKyBcIi0tRVNDQVBFRF9QQVJBTV9BU1RFUklTS1NcIikucmVwbGFjZShuZXcgUmVnRXhwKFwiOlwiICsga2V5ICsgXCJcXFxcP1wiLCBcImdcIiksIFwiOlwiICsga2V5ICsgXCItLUVTQ0FQRURfUEFSQU1fUVVFU1RJT05cIikucmVwbGFjZShuZXcgUmVnRXhwKFwiOlwiICsga2V5ICsgXCJcXFxcK1wiLCBcImdcIiksIFwiOlwiICsga2V5ICsgXCItLUVTQ0FQRURfUEFSQU1fUExVU1wiKS5yZXBsYWNlKG5ldyBSZWdFeHAoXCI6XCIgKyBrZXkgKyBcIig/IVxcXFx3KVwiLCBcImdcIiksIFwiLS1FU0NBUEVEX1BBUkFNX0NPTE9OXCIgKyBrZXkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvKDp8XFwqfFxcP3xcXCt8XFwofFxcKXxcXHt8XFx9KS9nLCBcIlxcXFwkMVwiKS5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fUExVUy9nLCBcIitcIikucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX0NPTE9OL2csIFwiOlwiKS5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fUVVFU1RJT04vZywgXCI/XCIpLnJlcGxhY2UoLy0tRVNDQVBFRF9QQVJBTV9BU1RFUklTS1MvZywgXCIqXCIpO1xuICAgIC8vIHRoZSB2YWx1ZSBuZWVkcyB0byBzdGFydCB3aXRoIGEgZm9yd2FyZC1zbGFzaCB0byBiZSBjb21waWxlZFxuICAgIC8vIGNvcnJlY3RseVxuICAgIHJldHVybiBjb21waWxlKFwiL1wiICsgdmFsdWUsIHtcbiAgICAgICAgdmFsaWRhdGU6IGZhbHNlXG4gICAgfSkocGFyYW1zKS5zbGljZSgxKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlRGVzdGluYXRpb24oYXJncykge1xuICAgIGNvbnN0IHF1ZXJ5ID0gT2JqZWN0LmFzc2lnbih7fSwgYXJncy5xdWVyeSk7XG4gICAgZGVsZXRlIHF1ZXJ5Ll9fbmV4dExvY2FsZTtcbiAgICBkZWxldGUgcXVlcnkuX19uZXh0RGVmYXVsdExvY2FsZTtcbiAgICBkZWxldGUgcXVlcnkuX19uZXh0RGF0YVJlcTtcbiAgICBkZWxldGUgcXVlcnkuX19uZXh0SW5mZXJyZWRMb2NhbGVGcm9tRGVmYXVsdDtcbiAgICBkZWxldGUgcXVlcnlbTkVYVF9SU0NfVU5JT05fUVVFUlldO1xuICAgIGxldCBlc2NhcGVkRGVzdGluYXRpb24gPSBhcmdzLmRlc3RpbmF0aW9uO1xuICAgIGZvciAoY29uc3QgcGFyYW0gb2YgT2JqZWN0LmtleXMoe1xuICAgICAgICAuLi5hcmdzLnBhcmFtcyxcbiAgICAgICAgLi4ucXVlcnlcbiAgICB9KSl7XG4gICAgICAgIGVzY2FwZWREZXN0aW5hdGlvbiA9IGVzY2FwZVNlZ21lbnQoZXNjYXBlZERlc3RpbmF0aW9uLCBwYXJhbSk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZERlc3RpbmF0aW9uID0gcGFyc2VVcmwoZXNjYXBlZERlc3RpbmF0aW9uKTtcbiAgICBjb25zdCBkZXN0UXVlcnkgPSBwYXJzZWREZXN0aW5hdGlvbi5xdWVyeTtcbiAgICBjb25zdCBkZXN0UGF0aCA9IHVuZXNjYXBlU2VnbWVudHMoXCJcIiArIHBhcnNlZERlc3RpbmF0aW9uLnBhdGhuYW1lICsgKHBhcnNlZERlc3RpbmF0aW9uLmhhc2ggfHwgXCJcIikpO1xuICAgIGNvbnN0IGRlc3RIb3N0bmFtZSA9IHVuZXNjYXBlU2VnbWVudHMocGFyc2VkRGVzdGluYXRpb24uaG9zdG5hbWUgfHwgXCJcIik7XG4gICAgY29uc3QgZGVzdFBhdGhQYXJhbUtleXMgPSBbXTtcbiAgICBjb25zdCBkZXN0SG9zdG5hbWVQYXJhbUtleXMgPSBbXTtcbiAgICBwYXRoVG9SZWdleHAoZGVzdFBhdGgsIGRlc3RQYXRoUGFyYW1LZXlzKTtcbiAgICBwYXRoVG9SZWdleHAoZGVzdEhvc3RuYW1lLCBkZXN0SG9zdG5hbWVQYXJhbUtleXMpO1xuICAgIGNvbnN0IGRlc3RQYXJhbXMgPSBbXTtcbiAgICBkZXN0UGF0aFBhcmFtS2V5cy5mb3JFYWNoKChrZXkpPT5kZXN0UGFyYW1zLnB1c2goa2V5Lm5hbWUpKTtcbiAgICBkZXN0SG9zdG5hbWVQYXJhbUtleXMuZm9yRWFjaCgoa2V5KT0+ZGVzdFBhcmFtcy5wdXNoKGtleS5uYW1lKSk7XG4gICAgY29uc3QgZGVzdFBhdGhDb21waWxlciA9IGNvbXBpbGUoZGVzdFBhdGgsIC8vIHdlIGRvbid0IHZhbGlkYXRlIHdoaWxlIGNvbXBpbGluZyB0aGUgZGVzdGluYXRpb24gc2luY2Ugd2Ugc2hvdWxkXG4gICAgLy8gaGF2ZSBhbHJlYWR5IHZhbGlkYXRlZCBiZWZvcmUgd2UgZ290IHRvIHRoaXMgcG9pbnQgYW5kIHZhbGlkYXRpbmdcbiAgICAvLyBicmVha3MgY29tcGlsaW5nIGRlc3RpbmF0aW9ucyB3aXRoIG5hbWVkIHBhdHRlcm4gcGFyYW1zIGZyb20gdGhlIHNvdXJjZVxuICAgIC8vIGUuZy4gL3NvbWV0aGluZzpoZWxsbyguKikgLT4gL2Fub3RoZXIvOmhlbGxvIGlzIGJyb2tlbiB3aXRoIHZhbGlkYXRpb25cbiAgICAvLyBzaW5jZSBjb21waWxlIHZhbGlkYXRpb24gaXMgbWVhbnQgZm9yIHJldmVyc2luZyBhbmQgbm90IGZvciBpbnNlcnRpbmdcbiAgICAvLyBwYXJhbXMgZnJvbSBhIHNlcGFyYXRlIHBhdGgtcmVnZXggaW50byBhbm90aGVyXG4gICAge1xuICAgICAgICB2YWxpZGF0ZTogZmFsc2VcbiAgICB9KTtcbiAgICBjb25zdCBkZXN0SG9zdG5hbWVDb21waWxlciA9IGNvbXBpbGUoZGVzdEhvc3RuYW1lLCB7XG4gICAgICAgIHZhbGlkYXRlOiBmYWxzZVxuICAgIH0pO1xuICAgIC8vIHVwZGF0ZSBhbnkgcGFyYW1zIGluIHF1ZXJ5IHZhbHVlc1xuICAgIGZvciAoY29uc3QgW2tleSwgc3RyT3JBcnJheV0gb2YgT2JqZWN0LmVudHJpZXMoZGVzdFF1ZXJ5KSl7XG4gICAgICAgIC8vIHRoZSB2YWx1ZSBuZWVkcyB0byBzdGFydCB3aXRoIGEgZm9yd2FyZC1zbGFzaCB0byBiZSBjb21waWxlZFxuICAgICAgICAvLyBjb3JyZWN0bHlcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc3RyT3JBcnJheSkpIHtcbiAgICAgICAgICAgIGRlc3RRdWVyeVtrZXldID0gc3RyT3JBcnJheS5tYXAoKHZhbHVlKT0+Y29tcGlsZU5vblBhdGgodW5lc2NhcGVTZWdtZW50cyh2YWx1ZSksIGFyZ3MucGFyYW1zKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0ck9yQXJyYXkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGRlc3RRdWVyeVtrZXldID0gY29tcGlsZU5vblBhdGgodW5lc2NhcGVTZWdtZW50cyhzdHJPckFycmF5KSwgYXJncy5wYXJhbXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGFkZCBwYXRoIHBhcmFtcyB0byBxdWVyeSBpZiBpdCdzIG5vdCBhIHJlZGlyZWN0IGFuZCBub3RcbiAgICAvLyBhbHJlYWR5IGRlZmluZWQgaW4gZGVzdGluYXRpb24gcXVlcnkgb3IgcGF0aFxuICAgIGxldCBwYXJhbUtleXMgPSBPYmplY3Qua2V5cyhhcmdzLnBhcmFtcykuZmlsdGVyKChuYW1lKT0+bmFtZSAhPT0gXCJuZXh0SW50ZXJuYWxMb2NhbGVcIik7XG4gICAgaWYgKGFyZ3MuYXBwZW5kUGFyYW1zVG9RdWVyeSAmJiAhcGFyYW1LZXlzLnNvbWUoKGtleSk9PmRlc3RQYXJhbXMuaW5jbHVkZXMoa2V5KSkpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgcGFyYW1LZXlzKXtcbiAgICAgICAgICAgIGlmICghKGtleSBpbiBkZXN0UXVlcnkpKSB7XG4gICAgICAgICAgICAgICAgZGVzdFF1ZXJ5W2tleV0gPSBhcmdzLnBhcmFtc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBuZXdVcmw7XG4gICAgLy8gVGhlIGNvbXBpbGVyIGFsc28gdGhhdCB0aGUgaW50ZXJjZXB0aW9uIHJvdXRlIG1hcmtlciBpcyBhbiB1bm5hbWVkIHBhcmFtLCBoZW5jZSAnMCcsXG4gICAgLy8gc28gd2UgbmVlZCB0byBhZGQgaXQgdG8gdGhlIHBhcmFtcyBvYmplY3QuXG4gICAgaWYgKGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKGRlc3RQYXRoKSkge1xuICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgZGVzdFBhdGguc3BsaXQoXCIvXCIpKXtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pPT5zZWdtZW50LnN0YXJ0c1dpdGgobSkpO1xuICAgICAgICAgICAgaWYgKG1hcmtlcikge1xuICAgICAgICAgICAgICAgIGFyZ3MucGFyYW1zW1wiMFwiXSA9IG1hcmtlcjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBuZXdVcmwgPSBkZXN0UGF0aENvbXBpbGVyKGFyZ3MucGFyYW1zKTtcbiAgICAgICAgY29uc3QgW3BhdGhuYW1lLCBoYXNoXSA9IG5ld1VybC5zcGxpdChcIiNcIiwgMik7XG4gICAgICAgIHBhcnNlZERlc3RpbmF0aW9uLmhvc3RuYW1lID0gZGVzdEhvc3RuYW1lQ29tcGlsZXIoYXJncy5wYXJhbXMpO1xuICAgICAgICBwYXJzZWREZXN0aW5hdGlvbi5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICAgICAgICBwYXJzZWREZXN0aW5hdGlvbi5oYXNoID0gXCJcIiArIChoYXNoID8gXCIjXCIgOiBcIlwiKSArIChoYXNoIHx8IFwiXCIpO1xuICAgICAgICBkZWxldGUgcGFyc2VkRGVzdGluYXRpb24uc2VhcmNoO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoZXJyLm1lc3NhZ2UubWF0Y2goL0V4cGVjdGVkIC4qPyB0byBub3QgcmVwZWF0LCBidXQgZ290IGFuIGFycmF5LykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRvIHVzZSBhIG11bHRpLW1hdGNoIGluIHRoZSBkZXN0aW5hdGlvbiB5b3UgbXVzdCBhZGQgYCpgIGF0IHRoZSBlbmQgb2YgdGhlIHBhcmFtIG5hbWUgdG8gc2lnbmlmeSBpdCBzaG91bGQgcmVwZWF0LiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLW11bHRpLW1hdGNoXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgLy8gUXVlcnkgbWVyZ2Ugb3JkZXIgbG93ZXN0IHByaW9yaXR5IHRvIGhpZ2hlc3RcbiAgICAvLyAxLiBpbml0aWFsIFVSTCBxdWVyeSB2YWx1ZXNcbiAgICAvLyAyLiBwYXRoIHNlZ21lbnQgdmFsdWVzXG4gICAgLy8gMy4gZGVzdGluYXRpb24gc3BlY2lmaWVkIHF1ZXJ5IHZhbHVlc1xuICAgIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5ID0ge1xuICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgLi4ucGFyc2VkRGVzdGluYXRpb24ucXVlcnlcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIG5ld1VybCxcbiAgICAgICAgZGVzdFF1ZXJ5LFxuICAgICAgICBwYXJzZWREZXN0aW5hdGlvblxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZXBhcmUtZGVzdGluYXRpb24uanMubWFwIl0sIm5hbWVzIjpbImNvbXBpbGUiLCJwYXRoVG9SZWdleHAiLCJlc2NhcGVTdHJpbmdSZWdleHAiLCJwYXJzZVVybCIsIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJORVhUX1JTQ19VTklPTl9RVUVSWSIsImdldENvb2tpZVBhcnNlciIsImdldFNhZmVQYXJhbU5hbWUiLCJwYXJhbU5hbWUiLCJuZXdQYXJhbU5hbWUiLCJpIiwibGVuZ3RoIiwiY2hhckNvZGUiLCJjaGFyQ29kZUF0IiwiZXNjYXBlU2VnbWVudCIsInN0ciIsInNlZ21lbnROYW1lIiwicmVwbGFjZSIsIlJlZ0V4cCIsInVuZXNjYXBlU2VnbWVudHMiLCJtYXRjaEhhcyIsInJlcSIsInF1ZXJ5IiwiaGFzIiwibWlzc2luZyIsInBhcmFtcyIsImhhc01hdGNoIiwiaGFzSXRlbSIsInZhbHVlIiwia2V5IiwidHlwZSIsInRvTG93ZXJDYXNlIiwiaGVhZGVycyIsImNvb2tpZXMiLCJob3N0IiwiaG9zdG5hbWUiLCJzcGxpdCIsIm1hdGNoZXIiLCJtYXRjaGVzIiwiQXJyYXkiLCJpc0FycmF5Iiwic2xpY2UiLCJtYXRjaCIsImdyb3VwcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiZ3JvdXBLZXkiLCJhbGxNYXRjaCIsImV2ZXJ5IiwiaXRlbSIsInNvbWUiLCJjb21waWxlTm9uUGF0aCIsImluY2x1ZGVzIiwidmFsaWRhdGUiLCJwcmVwYXJlRGVzdGluYXRpb24iLCJhcmdzIiwiYXNzaWduIiwiX19uZXh0TG9jYWxlIiwiX19uZXh0RGVmYXVsdExvY2FsZSIsIl9fbmV4dERhdGFSZXEiLCJfX25leHRJbmZlcnJlZExvY2FsZUZyb21EZWZhdWx0IiwiZXNjYXBlZERlc3RpbmF0aW9uIiwiZGVzdGluYXRpb24iLCJwYXJhbSIsInBhcnNlZERlc3RpbmF0aW9uIiwiZGVzdFF1ZXJ5IiwiZGVzdFBhdGgiLCJwYXRobmFtZSIsImhhc2giLCJkZXN0SG9zdG5hbWUiLCJkZXN0UGF0aFBhcmFtS2V5cyIsImRlc3RIb3N0bmFtZVBhcmFtS2V5cyIsImRlc3RQYXJhbXMiLCJwdXNoIiwibmFtZSIsImRlc3RQYXRoQ29tcGlsZXIiLCJkZXN0SG9zdG5hbWVDb21waWxlciIsInN0ck9yQXJyYXkiLCJlbnRyaWVzIiwibWFwIiwicGFyYW1LZXlzIiwiZmlsdGVyIiwiYXBwZW5kUGFyYW1zVG9RdWVyeSIsIm5ld1VybCIsInNlZ21lbnQiLCJtYXJrZXIiLCJmaW5kIiwibSIsInN0YXJ0c1dpdGgiLCJzZWFyY2giLCJlcnIiLCJtZXNzYWdlIiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ assign: () => (/* binding */ assign),\n/* harmony export */ searchParamsToUrlQuery: () => (/* binding */ searchParamsToUrlQuery),\n/* harmony export */ urlQueryToSearchParams: () => (/* binding */ urlQueryToSearchParams)\n/* harmony export */ });\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n searchParams.forEach((value, key)=>{\n if (typeof query[key] === \"undefined\") {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [\n query[key],\n value\n ];\n }\n });\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === \"string\" || typeof param === \"number\" && !isNaN(param) || typeof param === \"boolean\") {\n return String(param);\n } else {\n return \"\";\n }\n}\nfunction urlQueryToSearchParams(urlQuery) {\n const result = new URLSearchParams();\n Object.entries(urlQuery).forEach((param)=>{\n let [key, value] = param;\n if (Array.isArray(value)) {\n value.forEach((item)=>result.append(key, stringifyUrlQueryParam(item)));\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n searchParamsList.forEach((searchParams)=>{\n Array.from(searchParams.keys()).forEach((key)=>target.delete(key));\n searchParams.forEach((value, key)=>target.append(key, value));\n });\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU8sU0FBU0EsdUJBQXVCQyxZQUFZO0lBQy9DLE1BQU1DLFFBQVEsQ0FBQztJQUNmRCxhQUFhRSxPQUFPLENBQUMsQ0FBQ0MsT0FBT0M7UUFDekIsSUFBSSxPQUFPSCxLQUFLLENBQUNHLElBQUksS0FBSyxhQUFhO1lBQ25DSCxLQUFLLENBQUNHLElBQUksR0FBR0Q7UUFDakIsT0FBTyxJQUFJRSxNQUFNQyxPQUFPLENBQUNMLEtBQUssQ0FBQ0csSUFBSSxHQUFHO1lBQ2xDSCxLQUFLLENBQUNHLElBQUksQ0FBQ0csSUFBSSxDQUFDSjtRQUNwQixPQUFPO1lBQ0hGLEtBQUssQ0FBQ0csSUFBSSxHQUFHO2dCQUNUSCxLQUFLLENBQUNHLElBQUk7Z0JBQ1ZEO2FBQ0g7UUFDTDtJQUNKO0lBQ0EsT0FBT0Y7QUFDWDtBQUNBLFNBQVNPLHVCQUF1QkMsS0FBSztJQUNqQyxJQUFJLE9BQU9BLFVBQVUsWUFBWSxPQUFPQSxVQUFVLFlBQVksQ0FBQ0MsTUFBTUQsVUFBVSxPQUFPQSxVQUFVLFdBQVc7UUFDdkcsT0FBT0UsT0FBT0Y7SUFDbEIsT0FBTztRQUNILE9BQU87SUFDWDtBQUNKO0FBQ08sU0FBU0csdUJBQXVCQyxRQUFRO0lBQzNDLE1BQU1DLFNBQVMsSUFBSUM7SUFDbkJDLE9BQU9DLE9BQU8sQ0FBQ0osVUFBVVgsT0FBTyxDQUFDLENBQUNPO1FBQzlCLElBQUksQ0FBQ0wsS0FBS0QsTUFBTSxHQUFHTTtRQUNuQixJQUFJSixNQUFNQyxPQUFPLENBQUNILFFBQVE7WUFDdEJBLE1BQU1ELE9BQU8sQ0FBQyxDQUFDZ0IsT0FBT0osT0FBT0ssTUFBTSxDQUFDZixLQUFLSSx1QkFBdUJVO1FBQ3BFLE9BQU87WUFDSEosT0FBT00sR0FBRyxDQUFDaEIsS0FBS0ksdUJBQXVCTDtRQUMzQztJQUNKO0lBQ0EsT0FBT1c7QUFDWDtBQUNPLFNBQVNPLE9BQU9DLE1BQU07SUFDekIsSUFBSSxJQUFJQyxPQUFPQyxVQUFVQyxNQUFNLEVBQUVDLG1CQUFtQixJQUFJckIsTUFBTWtCLE9BQU8sSUFBSUEsT0FBTyxJQUFJLElBQUlJLE9BQU8sR0FBR0EsT0FBT0osTUFBTUksT0FBTztRQUNsSEQsZ0JBQWdCLENBQUNDLE9BQU8sRUFBRSxHQUFHSCxTQUFTLENBQUNHLEtBQUs7SUFDaEQ7SUFDQUQsaUJBQWlCeEIsT0FBTyxDQUFDLENBQUNGO1FBQ3RCSyxNQUFNdUIsSUFBSSxDQUFDNUIsYUFBYTZCLElBQUksSUFBSTNCLE9BQU8sQ0FBQyxDQUFDRSxNQUFNa0IsT0FBT1EsTUFBTSxDQUFDMUI7UUFDN0RKLGFBQWFFLE9BQU8sQ0FBQyxDQUFDQyxPQUFPQyxNQUFNa0IsT0FBT0gsTUFBTSxDQUFDZixLQUFLRDtJQUMxRDtJQUNBLE9BQU9tQjtBQUNYLEVBRUEsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZy5qcz8zNDVjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHNlYXJjaFBhcmFtcykge1xuICAgIGNvbnN0IHF1ZXJ5ID0ge307XG4gICAgc2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpPT57XG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnlba2V5XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgcXVlcnlba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgICAgICAgIHF1ZXJ5W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVtrZXldID0gW1xuICAgICAgICAgICAgICAgIHF1ZXJ5W2tleV0sXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcXVlcnk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgcGFyYW0gPT09IFwibnVtYmVyXCIgJiYgIWlzTmFOKHBhcmFtKSB8fCB0eXBlb2YgcGFyYW0gPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcocGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHVybFF1ZXJ5KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIE9iamVjdC5lbnRyaWVzKHVybFF1ZXJ5KS5mb3JFYWNoKChwYXJhbSk9PntcbiAgICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IHBhcmFtO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW0pPT5yZXN1bHQuYXBwZW5kKGtleSwgc3RyaW5naWZ5VXJsUXVlcnlQYXJhbShpdGVtKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0LnNldChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0odmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKHRhcmdldCkge1xuICAgIGZvcih2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHNlYXJjaFBhcmFtc0xpc3QgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKyl7XG4gICAgICAgIHNlYXJjaFBhcmFtc0xpc3RbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cbiAgICBzZWFyY2hQYXJhbXNMaXN0LmZvckVhY2goKHNlYXJjaFBhcmFtcyk9PntcbiAgICAgICAgQXJyYXkuZnJvbShzZWFyY2hQYXJhbXMua2V5cygpKS5mb3JFYWNoKChrZXkpPT50YXJnZXQuZGVsZXRlKGtleSkpO1xuICAgICAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PnRhcmdldC5hcHBlbmQoa2V5LCB2YWx1ZSkpO1xuICAgIH0pO1xuICAgIHJldHVybiB0YXJnZXQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXF1ZXJ5c3RyaW5nLmpzLm1hcCJdLCJuYW1lcyI6WyJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5Iiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJmb3JFYWNoIiwidmFsdWUiLCJrZXkiLCJBcnJheSIsImlzQXJyYXkiLCJwdXNoIiwic3RyaW5naWZ5VXJsUXVlcnlQYXJhbSIsInBhcmFtIiwiaXNOYU4iLCJTdHJpbmciLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwidXJsUXVlcnkiLCJyZXN1bHQiLCJVUkxTZWFyY2hQYXJhbXMiLCJPYmplY3QiLCJlbnRyaWVzIiwiaXRlbSIsImFwcGVuZCIsInNldCIsImFzc2lnbiIsInRhcmdldCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzZWFyY2hQYXJhbXNMaXN0IiwiX2tleSIsImZyb20iLCJrZXlzIiwiZGVsZXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ relativizeURL: () => (/* binding */ relativizeURL)\n/* harmony export */ });\n/**\n * Given a URL as a string and a base URL it will make the URL relative\n * if the parsed protocol and host is the same as the one in the base\n * URL. Otherwise it returns the same URL string.\n */ function relativizeURL(url, base) {\n const baseURL = typeof base === \"string\" ? new URL(base) : base;\n const relative = new URL(url, base);\n const origin = baseURL.protocol + \"//\" + baseURL.host;\n return relative.protocol + \"//\" + relative.host === origin ? relative.toString().replace(origin, \"\") : relative.toString();\n} //# sourceMappingURL=relativize-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVsYXRpdml6ZS11cmwuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0NBSUMsR0FBVSxTQUFTQSxjQUFjQyxHQUFHLEVBQUVDLElBQUk7SUFDdkMsTUFBTUMsVUFBVSxPQUFPRCxTQUFTLFdBQVcsSUFBSUUsSUFBSUYsUUFBUUE7SUFDM0QsTUFBTUcsV0FBVyxJQUFJRCxJQUFJSCxLQUFLQztJQUM5QixNQUFNSSxTQUFTSCxRQUFRSSxRQUFRLEdBQUcsT0FBT0osUUFBUUssSUFBSTtJQUNyRCxPQUFPSCxTQUFTRSxRQUFRLEdBQUcsT0FBT0YsU0FBU0csSUFBSSxLQUFLRixTQUFTRCxTQUFTSSxRQUFRLEdBQUdDLE9BQU8sQ0FBQ0osUUFBUSxNQUFNRCxTQUFTSSxRQUFRO0FBQzVILEVBRUEsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZWxhdGl2aXplLXVybC5qcz8wMGRlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l2ZW4gYSBVUkwgYXMgYSBzdHJpbmcgYW5kIGEgYmFzZSBVUkwgaXQgd2lsbCBtYWtlIHRoZSBVUkwgcmVsYXRpdmVcbiAqIGlmIHRoZSBwYXJzZWQgcHJvdG9jb2wgYW5kIGhvc3QgaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiB0aGUgYmFzZVxuICogVVJMLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgc2FtZSBVUkwgc3RyaW5nLlxuICovIGV4cG9ydCBmdW5jdGlvbiByZWxhdGl2aXplVVJMKHVybCwgYmFzZSkge1xuICAgIGNvbnN0IGJhc2VVUkwgPSB0eXBlb2YgYmFzZSA9PT0gXCJzdHJpbmdcIiA/IG5ldyBVUkwoYmFzZSkgOiBiYXNlO1xuICAgIGNvbnN0IHJlbGF0aXZlID0gbmV3IFVSTCh1cmwsIGJhc2UpO1xuICAgIGNvbnN0IG9yaWdpbiA9IGJhc2VVUkwucHJvdG9jb2wgKyBcIi8vXCIgKyBiYXNlVVJMLmhvc3Q7XG4gICAgcmV0dXJuIHJlbGF0aXZlLnByb3RvY29sICsgXCIvL1wiICsgcmVsYXRpdmUuaG9zdCA9PT0gb3JpZ2luID8gcmVsYXRpdmUudG9TdHJpbmcoKS5yZXBsYWNlKG9yaWdpbiwgXCJcIikgOiByZWxhdGl2ZS50b1N0cmluZygpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWxhdGl2aXplLXVybC5qcy5tYXAiXSwibmFtZXMiOlsicmVsYXRpdml6ZVVSTCIsInVybCIsImJhc2UiLCJiYXNlVVJMIiwiVVJMIiwicmVsYXRpdmUiLCJvcmlnaW4iLCJwcm90b2NvbCIsImhvc3QiLCJ0b1N0cmluZyIsInJlcGxhY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removePathPrefix: () => (/* binding */ removePathPrefix)\n/* harmony export */ });\n/* harmony import */ var _path_has_prefix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./path-has-prefix */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js\");\n\n/**\n * Given a path and a prefix it will remove the prefix when it exists in the\n * given path. It ensures it matches exactly without containing extra chars\n * and if the prefix is not there it will be noop.\n *\n * @param path The path to remove the prefix from.\n * @param prefix The prefix to be removed.\n */ function removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0,_path_has_prefix__WEBPACK_IMPORTED_MODULE_0__.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith(\"/\")) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n} //# sourceMappingURL=remove-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWtEO0FBQ2xEOzs7Ozs7O0NBT0MsR0FBVSxTQUFTQyxpQkFBaUJDLElBQUksRUFBRUMsTUFBTTtJQUM3Qyx5RUFBeUU7SUFDekUsMEVBQTBFO0lBQzFFLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0Ysb0JBQW9CO0lBQ3BCLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QixJQUFJLENBQUNILCtEQUFhQSxDQUFDRSxNQUFNQyxTQUFTO1FBQzlCLE9BQU9EO0lBQ1g7SUFDQSwrQ0FBK0M7SUFDL0MsTUFBTUUsZ0JBQWdCRixLQUFLRyxLQUFLLENBQUNGLE9BQU9HLE1BQU07SUFDOUMsMkVBQTJFO0lBQzNFLElBQUlGLGNBQWNHLFVBQVUsQ0FBQyxNQUFNO1FBQy9CLE9BQU9IO0lBQ1g7SUFDQSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELE9BQU8sTUFBTUE7QUFDakIsRUFFQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeC5qcz9mMzkxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tIFwiLi9wYXRoLWhhcy1wcmVmaXhcIjtcbi8qKlxuICogR2l2ZW4gYSBwYXRoIGFuZCBhIHByZWZpeCBpdCB3aWxsIHJlbW92ZSB0aGUgcHJlZml4IHdoZW4gaXQgZXhpc3RzIGluIHRoZVxuICogZ2l2ZW4gcGF0aC4gSXQgZW5zdXJlcyBpdCBtYXRjaGVzIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzXG4gKiBhbmQgaWYgdGhlIHByZWZpeCBpcyBub3QgdGhlcmUgaXQgd2lsbCBiZSBub29wLlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIHJlbW92ZSB0aGUgcHJlZml4IGZyb20uXG4gKiBAcGFyYW0gcHJlZml4IFRoZSBwcmVmaXggdG8gYmUgcmVtb3ZlZC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGF0aFByZWZpeChwYXRoLCBwcmVmaXgpIHtcbiAgICAvLyBJZiB0aGUgcGF0aCBkb2Vzbid0IHN0YXJ0IHdpdGggdGhlIHByZWZpeCB3ZSBjYW4gcmV0dXJuIGl0IGFzIGlzLiBUaGlzXG4gICAgLy8gcHJvdGVjdHMgdXMgZnJvbSBzaXR1YXRpb25zIHdoZXJlIHRoZSBwcmVmaXggaXMgYSBzdWJzdHJpbmcgb2YgdGhlIHBhdGhcbiAgICAvLyBwcmVmaXggc3VjaCBhczpcbiAgICAvL1xuICAgIC8vIEZvciBwcmVmaXg6IC9ibG9nXG4gICAgLy9cbiAgICAvLyAgIC9ibG9nIC0+IHRydWVcbiAgICAvLyAgIC9ibG9nLyAtPiB0cnVlXG4gICAgLy8gICAvYmxvZy8xIC0+IHRydWVcbiAgICAvLyAgIC9ibG9nZ2luZyAtPiBmYWxzZVxuICAgIC8vICAgL2Jsb2dnaW5nLyAtPiBmYWxzZVxuICAgIC8vICAgL2Jsb2dnaW5nLzEgLT4gZmFsc2VcbiAgICBpZiAoIXBhdGhIYXNQcmVmaXgocGF0aCwgcHJlZml4KSkge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgLy8gUmVtb3ZlIHRoZSBwcmVmaXggZnJvbSB0aGUgcGF0aCB2aWEgc2xpY2luZy5cbiAgICBjb25zdCB3aXRob3V0UHJlZml4ID0gcGF0aC5zbGljZShwcmVmaXgubGVuZ3RoKTtcbiAgICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggc3RhcnRzIHdpdGggYSBgL2Agd2UgY2FuIHJldHVybiBpdCBhcyBpcy5cbiAgICBpZiAod2l0aG91dFByZWZpeC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICByZXR1cm4gd2l0aG91dFByZWZpeDtcbiAgICB9XG4gICAgLy8gSWYgdGhlIHBhdGggd2l0aG91dCB0aGUgcHJlZml4IGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIGAvYCB3ZSBuZWVkIHRvIGFkZCBpdFxuICAgIC8vIGJhY2sgdG8gdGhlIHBhdGggdG8gbWFrZSBzdXJlIGl0J3MgYSB2YWxpZCBwYXRoLlxuICAgIHJldHVybiBcIi9cIiArIHdpdGhvdXRQcmVmaXg7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbW92ZS1wYXRoLXByZWZpeC5qcy5tYXAiXSwibmFtZXMiOlsicGF0aEhhc1ByZWZpeCIsInJlbW92ZVBhdGhQcmVmaXgiLCJwYXRoIiwicHJlZml4Iiwid2l0aG91dFByZWZpeCIsInNsaWNlIiwibGVuZ3RoIiwic3RhcnRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js":
-/*!*****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js ***!
- \*****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removeTrailingSlash: () => (/* binding */ removeTrailingSlash)\n/* harmony export */ });\n/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ function removeTrailingSlash(route) {\n return route.replace(/\\/$/, \"\") || \"/\";\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7O0NBTUMsR0FBVSxTQUFTQSxvQkFBb0JDLEtBQUs7SUFDekMsT0FBT0EsTUFBTUMsT0FBTyxDQUFDLE9BQU8sT0FBTztBQUN2QyxFQUVBLGlEQUFpRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzPzgyYmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZW1vdmVzIHRoZSB0cmFpbGluZyBzbGFzaCBmb3IgYSBnaXZlbiByb3V0ZSBvciBwYWdlIHBhdGguIFByZXNlcnZlcyB0aGVcbiAqIHJvb3QgcGFnZS4gRXhhbXBsZXM6XG4gKiAgIC0gYC9mb28vYmFyL2AgLT4gYC9mb28vYmFyYFxuICogICAtIGAvZm9vL2JhcmAgLT4gYC9mb28vYmFyYFxuICogICAtIGAvYCAtPiBgL2BcbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkge1xuICAgIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgXCJcIikgfHwgXCIvXCI7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbW92ZS10cmFpbGluZy1zbGFzaC5qcy5tYXAiXSwibmFtZXMiOlsicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInJvdXRlIiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getRouteMatcher: () => (/* binding */ getRouteMatcher)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/utils.js\");\n\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) {\n return false;\n }\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils__WEBPACK_IMPORTED_MODULE_0__.DecodeError(\"failed to decode param\");\n }\n };\n const params = {};\n Object.keys(groups).forEach((slugName)=>{\n const g = groups[slugName];\n const m = routeMatch[g.pos];\n if (m !== undefined) {\n params[slugName] = ~m.indexOf(\"/\") ? m.split(\"/\").map((entry)=>decode(entry)) : g.repeat ? [\n decode(m)\n ] : decode(m);\n }\n });\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEwQztBQUNuQyxTQUFTQyxnQkFBZ0JDLEtBQUs7SUFDakMsSUFBSSxFQUFFQyxFQUFFLEVBQUVDLE1BQU0sRUFBRSxHQUFHRjtJQUNyQixPQUFPLENBQUNHO1FBQ0osTUFBTUMsYUFBYUgsR0FBR0ksSUFBSSxDQUFDRjtRQUMzQixJQUFJLENBQUNDLFlBQVk7WUFDYixPQUFPO1FBQ1g7UUFDQSxNQUFNRSxTQUFTLENBQUNOO1lBQ1osSUFBSTtnQkFDQSxPQUFPTyxtQkFBbUJQO1lBQzlCLEVBQUUsT0FBT1EsR0FBRztnQkFDUixNQUFNLElBQUlWLCtDQUFXQSxDQUFDO1lBQzFCO1FBQ0o7UUFDQSxNQUFNVyxTQUFTLENBQUM7UUFDaEJDLE9BQU9DLElBQUksQ0FBQ1QsUUFBUVUsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLElBQUlaLE1BQU0sQ0FBQ1csU0FBUztZQUMxQixNQUFNRSxJQUFJWCxVQUFVLENBQUNVLEVBQUVFLEdBQUcsQ0FBQztZQUMzQixJQUFJRCxNQUFNRSxXQUFXO2dCQUNqQlIsTUFBTSxDQUFDSSxTQUFTLEdBQUcsQ0FBQ0UsRUFBRUcsT0FBTyxDQUFDLE9BQU9ILEVBQUVJLEtBQUssQ0FBQyxLQUFLQyxHQUFHLENBQUMsQ0FBQ0MsUUFBUWYsT0FBT2UsVUFBVVAsRUFBRVEsTUFBTSxHQUFHO29CQUN2RmhCLE9BQU9TO2lCQUNWLEdBQUdULE9BQU9TO1lBQ2Y7UUFDSjtRQUNBLE9BQU9OO0lBQ1g7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcz9hNDkwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29kZUVycm9yIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVNYXRjaGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgcmUsIGdyb3VwcyB9ID0gcGFyYW07XG4gICAgcmV0dXJuIChwYXRobmFtZSk9PntcbiAgICAgICAgY29uc3Qgcm91dGVNYXRjaCA9IHJlLmV4ZWMocGF0aG5hbWUpO1xuICAgICAgICBpZiAoIXJvdXRlTWF0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWNvZGUgPSAocGFyYW0pPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGFyYW0pO1xuICAgICAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWNvZGVFcnJvcihcImZhaWxlZCB0byBkZWNvZGUgcGFyYW1cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyhncm91cHMpLmZvckVhY2goKHNsdWdOYW1lKT0+e1xuICAgICAgICAgICAgY29uc3QgZyA9IGdyb3Vwc1tzbHVnTmFtZV07XG4gICAgICAgICAgICBjb25zdCBtID0gcm91dGVNYXRjaFtnLnBvc107XG4gICAgICAgICAgICBpZiAobSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zW3NsdWdOYW1lXSA9IH5tLmluZGV4T2YoXCIvXCIpID8gbS5zcGxpdChcIi9cIikubWFwKChlbnRyeSk9PmRlY29kZShlbnRyeSkpIDogZy5yZXBlYXQgPyBbXG4gICAgICAgICAgICAgICAgICAgIGRlY29kZShtKVxuICAgICAgICAgICAgICAgIF0gOiBkZWNvZGUobSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLW1hdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiZ2V0Um91dGVNYXRjaGVyIiwicGFyYW0iLCJyZSIsImdyb3VwcyIsInBhdGhuYW1lIiwicm91dGVNYXRjaCIsImV4ZWMiLCJkZWNvZGUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwicGFyYW1zIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJzbHVnTmFtZSIsImciLCJtIiwicG9zIiwidW5kZWZpbmVkIiwiaW5kZXhPZiIsInNwbGl0IiwibWFwIiwiZW50cnkiLCJyZXBlYXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getNamedMiddlewareRegex: () => (/* binding */ getNamedMiddlewareRegex),\n/* harmony export */ getNamedRouteRegex: () => (/* binding */ getNamedRouteRegex),\n/* harmony export */ getRouteRegex: () => (/* binding */ getRouteRegex)\n/* harmony export */ });\n/* harmony import */ var _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(ssr)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\");\n/* harmony import */ var _escape_regexp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../escape-regexp */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/escape-regexp.js\");\n/* harmony import */ var _remove_trailing_slash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./remove-trailing-slash */ \"(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n\n\n\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst NEXT_INTERCEPTION_MARKER_PREFIX = \"nxtI\";\n/**\n * Parses a given parameter from a route to a data structure that can be used\n * to generate the parametrized route. Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n */ function parseParameter(param) {\n const optional = param.startsWith(\"[\") && param.endsWith(\"]\");\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith(\"...\");\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route) {\n const segments = (0,_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_2__.removeTrailingSlash)(route).slice(1).split(\"/\");\n const groups = {};\n let groupIndex = 1;\n return {\n parameterizedRoute: segments.map((segment)=>{\n const markerMatch = _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (markerMatch && paramMatches) {\n const { key, optional, repeat } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return \"/\" + (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(markerMatch) + \"([^/]+?)\";\n } else if (paramMatches) {\n const { key, repeat, optional } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return repeat ? optional ? \"(?:/(.+?))?\" : \"/(.+?)\" : \"/([^/]+?)\";\n } else {\n return \"/\" + (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n groups\n };\n}\n/**\n * From a normalized route this function generates a regular expression and\n * a corresponding groups object intended to be used to store matching groups\n * from the regular expression.\n */ function getRouteRegex(normalizedRoute) {\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute);\n return {\n re: new RegExp(\"^\" + parameterizedRoute + \"(?:/)?$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = \"\";\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix } = param;\n const { key, optional, repeat } = parseParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, \"\");\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(interceptionMarker) : \"\";\n return repeat ? optional ? \"(?:/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?))?\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?)\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">[^/]+?)\";\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys) {\n const segments = (0,_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_2__.removeTrailingSlash)(route).slice(1).split(\"/\");\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n return {\n namedParameterizedRoute: segments.map((segment)=>{\n const hasInterceptionMarker = _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches) {\n const [usedMarker] = segment.split(paramMatches[0]);\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: usedMarker,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_INTERCEPTION_MARKER_PREFIX : undefined\n });\n } else if (paramMatches) {\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_QUERY_PARAM_PREFIX : undefined\n });\n } else {\n return \"/\" + (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n routeKeys\n };\n}\n/**\n * This function extends `getRouteRegex` generating also a named regexp where\n * each group is named along with a routeKeys object that indexes the assigned\n * named group with its corresponding key. When the routeKeys need to be\n * prefixed to uniquely identify internally the \"prefixRouteKey\" arg should\n * be \"true\" currently this is only the case when creating the routes-manifest\n * during the build\n */ function getNamedRouteRegex(normalizedRoute, prefixRouteKey) {\n const result = getNamedParametrizedRoute(normalizedRoute, prefixRouteKey);\n return {\n ...getRouteRegex(normalizedRoute),\n namedRegex: \"^\" + result.namedParameterizedRoute + \"(?:/)?$\",\n routeKeys: result.routeKeys\n };\n}\n/**\n * Generates a named regexp.\n * This is intended to be using for build time only.\n */ function getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute);\n const { catchAll = true } = options;\n if (parameterizedRoute === \"/\") {\n let catchAllRegex = catchAll ? \".*\" : \"\";\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false);\n let catchAllGroupedRegex = catchAll ? \"(?:(/.*)?)\" : \"\";\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQW1HO0FBQzFDO0FBQ0s7QUFDOUQsTUFBTUcsMEJBQTBCO0FBQ2hDLE1BQU1DLGtDQUFrQztBQUN4Qzs7Ozs7OztDQU9DLEdBQUcsU0FBU0MsZUFBZUMsS0FBSztJQUM3QixNQUFNQyxXQUFXRCxNQUFNRSxVQUFVLENBQUMsUUFBUUYsTUFBTUcsUUFBUSxDQUFDO0lBQ3pELElBQUlGLFVBQVU7UUFDVkQsUUFBUUEsTUFBTUksS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUM1QjtJQUNBLE1BQU1DLFNBQVNMLE1BQU1FLFVBQVUsQ0FBQztJQUNoQyxJQUFJRyxRQUFRO1FBQ1JMLFFBQVFBLE1BQU1JLEtBQUssQ0FBQztJQUN4QjtJQUNBLE9BQU87UUFDSEUsS0FBS047UUFDTEs7UUFDQUo7SUFDSjtBQUNKO0FBQ0EsU0FBU00scUJBQXFCQyxLQUFLO0lBQy9CLE1BQU1DLFdBQVdiLDJFQUFtQkEsQ0FBQ1ksT0FBT0osS0FBSyxDQUFDLEdBQUdNLEtBQUssQ0FBQztJQUMzRCxNQUFNQyxTQUFTLENBQUM7SUFDaEIsSUFBSUMsYUFBYTtJQUNqQixPQUFPO1FBQ0hDLG9CQUFvQkosU0FBU0ssR0FBRyxDQUFDLENBQUNDO1lBQzlCLE1BQU1DLGNBQWN0QixrR0FBMEJBLENBQUN1QixJQUFJLENBQUMsQ0FBQ0MsSUFBSUgsUUFBUWIsVUFBVSxDQUFDZ0I7WUFDNUUsTUFBTUMsZUFBZUosUUFBUUssS0FBSyxDQUFDLHVCQUF1Qix1QkFBdUI7O1lBRWpGLElBQUlKLGVBQWVHLGNBQWM7Z0JBQzdCLE1BQU0sRUFBRWIsR0FBRyxFQUFFTCxRQUFRLEVBQUVJLE1BQU0sRUFBRSxHQUFHTixlQUFlb0IsWUFBWSxDQUFDLEVBQUU7Z0JBQ2hFUixNQUFNLENBQUNMLElBQUksR0FBRztvQkFDVmUsS0FBS1Q7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T0ksZ0JBQWdCO1FBQ3ZDO0lBQ0o7SUFDQSxNQUFNLEVBQUVaLHVCQUF1QixFQUFFLEdBQUdGLDBCQUEwQnZCLGlCQUFpQjtJQUMvRSxJQUFJc0MsdUJBQXVCRixXQUFXLGVBQWU7SUFDckQsT0FBTztRQUNISCxZQUFZLE1BQU1SLDBCQUEwQmEsdUJBQXVCO0lBQ3ZFO0FBQ0osRUFFQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzP2VjMWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXNcIjtcbmltcG9ydCB7IGVzY2FwZVN0cmluZ1JlZ2V4cCB9IGZyb20gXCIuLi8uLi9lc2NhcGUtcmVnZXhwXCI7XG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSBcIi4vcmVtb3ZlLXRyYWlsaW5nLXNsYXNoXCI7XG5jb25zdCBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA9IFwibnh0UFwiO1xuY29uc3QgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCA9IFwibnh0SVwiO1xuLyoqXG4gKiBQYXJzZXMgYSBnaXZlbiBwYXJhbWV0ZXIgZnJvbSBhIHJvdXRlIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZFxuICogdG8gZ2VuZXJhdGUgdGhlIHBhcmFtZXRyaXplZCByb3V0ZS4gRXhhbXBsZXM6XG4gKiAgIC0gYFsuLi5zbHVnXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgLi4uc2x1Z2AgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiAgIC0gYFtmb29dYCAtPiBgeyBrZXk6ICdmb28nLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGBiYXJgIC0+IGB7IGtleTogJ2JhcicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICovIGZ1bmN0aW9uIHBhcnNlUGFyYW1ldGVyKHBhcmFtKSB7XG4gICAgY29uc3Qgb3B0aW9uYWwgPSBwYXJhbS5zdGFydHNXaXRoKFwiW1wiKSAmJiBwYXJhbS5lbmRzV2l0aChcIl1cIik7XG4gICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMSwgLTEpO1xuICAgIH1cbiAgICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKFwiLi4uXCIpO1xuICAgIGlmIChyZXBlYXQpIHtcbiAgICAgICAgcGFyYW0gPSBwYXJhbS5zbGljZSgzKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBwYXJhbSxcbiAgICAgICAgcmVwZWF0LFxuICAgICAgICBvcHRpb25hbFxuICAgIH07XG59XG5mdW5jdGlvbiBnZXRQYXJhbWV0cml6ZWRSb3V0ZShyb3V0ZSkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IGdyb3VwcyA9IHt9O1xuICAgIGxldCBncm91cEluZGV4ID0gMTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzLm1hcCgoc2VnbWVudCk9PntcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlck1hdGNoID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSk7XG4gICAgICAgICAgICBjb25zdCBwYXJhbU1hdGNoZXMgPSBzZWdtZW50Lm1hdGNoKC9cXFsoKD86XFxbLipcXF0pfC4rKVxcXS8pIC8vIENoZWNrIGZvciBwYXJhbWV0ZXJzXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBpZiAobWFya2VyTWF0Y2ggJiYgcGFyYW1NYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXksIG9wdGlvbmFsLCByZXBlYXQgfSA9IHBhcnNlUGFyYW1ldGVyKHBhcmFtTWF0Y2hlc1sxXSk7XG4gICAgICAgICAgICAgICAgZ3JvdXBzW2tleV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHBvczogZ3JvdXBJbmRleCsrLFxuICAgICAgICAgICAgICAgICAgICByZXBlYXQsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIvXCIgKyBlc2NhcGVTdHJpbmdSZWdleHAobWFya2VyTWF0Y2gpICsgXCIoW14vXSs/KVwiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbU1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSwgcmVwZWF0LCBvcHRpb25hbCB9ID0gcGFyc2VQYXJhbWV0ZXIocGFyYW1NYXRjaGVzWzFdKTtcbiAgICAgICAgICAgICAgICBncm91cHNba2V5XSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zOiBncm91cEluZGV4KyssXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiByZXBlYXQgPyBvcHRpb25hbCA/IFwiKD86LyguKz8pKT9cIiA6IFwiLyguKz8pXCIgOiBcIi8oW14vXSs/KVwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIvXCIgKyBlc2NhcGVTdHJpbmdSZWdleHAoc2VnbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmpvaW4oXCJcIiksXG4gICAgICAgIGdyb3Vwc1xuICAgIH07XG59XG4vKipcbiAqIEZyb20gYSBub3JtYWxpemVkIHJvdXRlIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgcmVndWxhciBleHByZXNzaW9uIGFuZFxuICogYSBjb3JyZXNwb25kaW5nIGdyb3VwcyBvYmplY3QgaW50ZW5kZWQgdG8gYmUgdXNlZCB0byBzdG9yZSBtYXRjaGluZyBncm91cHNcbiAqIGZyb20gdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVSZWdleChub3JtYWxpemVkUm91dGUpIHtcbiAgICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSwgZ3JvdXBzIH0gPSBnZXRQYXJhbWV0cml6ZWRSb3V0ZShub3JtYWxpemVkUm91dGUpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlOiBuZXcgUmVnRXhwKFwiXlwiICsgcGFyYW1ldGVyaXplZFJvdXRlICsgXCIoPzovKT8kXCIpLFxuICAgICAgICBncm91cHM6IGdyb3Vwc1xuICAgIH07XG59XG4vKipcbiAqIEJ1aWxkcyBhIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbFxuICogbnVtYmVyIG9mIGNoYXJhY3RlcnMuXG4gKi8gZnVuY3Rpb24gYnVpbGRHZXRTYWZlUm91dGVLZXkoKSB7XG4gICAgbGV0IGkgPSAwO1xuICAgIHJldHVybiAoKT0+e1xuICAgICAgICBsZXQgcm91dGVLZXkgPSBcIlwiO1xuICAgICAgICBsZXQgaiA9ICsraTtcbiAgICAgICAgd2hpbGUoaiA+IDApe1xuICAgICAgICAgICAgcm91dGVLZXkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSg5NyArIChqIC0gMSkgJSAyNik7XG4gICAgICAgICAgICBqID0gTWF0aC5mbG9vcigoaiAtIDEpIC8gMjYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3V0ZUtleTtcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0U2FmZUtleUZyb21TZWdtZW50KHBhcmFtKSB7XG4gICAgbGV0IHsgaW50ZXJjZXB0aW9uTWFya2VyLCBnZXRTYWZlUm91dGVLZXksIHNlZ21lbnQsIHJvdXRlS2V5cywga2V5UHJlZml4IH0gPSBwYXJhbTtcbiAgICBjb25zdCB7IGtleSwgb3B0aW9uYWwsIHJlcGVhdCB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudCk7XG4gICAgLy8gcmVwbGFjZSBhbnkgbm9uLXdvcmQgY2hhcmFjdGVycyBzaW5jZSB0aGV5IGNhbiBicmVha1xuICAgIC8vIHRoZSBuYW1lZCByZWdleFxuICAgIGxldCBjbGVhbmVkS2V5ID0ga2V5LnJlcGxhY2UoL1xcVy9nLCBcIlwiKTtcbiAgICBpZiAoa2V5UHJlZml4KSB7XG4gICAgICAgIGNsZWFuZWRLZXkgPSBcIlwiICsga2V5UHJlZml4ICsgY2xlYW5lZEtleTtcbiAgICB9XG4gICAgbGV0IGludmFsaWRLZXkgPSBmYWxzZTtcbiAgICAvLyBjaGVjayBpZiB0aGUga2V5IGlzIHN0aWxsIGludmFsaWQgYW5kIGZhbGxiYWNrIHRvIHVzaW5nIGEga25vd25cbiAgICAvLyBzYWZlIGtleVxuICAgIGlmIChjbGVhbmVkS2V5Lmxlbmd0aCA9PT0gMCB8fCBjbGVhbmVkS2V5Lmxlbmd0aCA+IDMwKSB7XG4gICAgICAgIGludmFsaWRLZXkgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWlzTmFOKHBhcnNlSW50KGNsZWFuZWRLZXkuc2xpY2UoMCwgMSkpKSkge1xuICAgICAgICBpbnZhbGlkS2V5ID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGludmFsaWRLZXkpIHtcbiAgICAgICAgY2xlYW5lZEtleSA9IGdldFNhZmVSb3V0ZUtleSgpO1xuICAgIH1cbiAgICBpZiAoa2V5UHJlZml4KSB7XG4gICAgICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IFwiXCIgKyBrZXlQcmVmaXggKyBrZXk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcm91dGVLZXlzW2NsZWFuZWRLZXldID0ga2V5O1xuICAgIH1cbiAgICAvLyBpZiB0aGUgc2VnbWVudCBoYXMgYW4gaW50ZXJjZXB0aW9uIG1hcmtlciwgbWFrZSBzdXJlIHRoYXQncyBwYXJ0IG9mIHRoZSByZWdleCBwYXR0ZXJuXG4gICAgLy8gdGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcm91dGUgd2l0aCB0aGUgaW50ZXJjZXB0aW9uIG1hcmtlciBkb2Vzbid0IGluY29ycmVjdGx5IG1hdGNoXG4gICAgLy8gdGhlIG5vbi1pbnRlcmNlcHRlZCByb3V0ZSAoaWUgL2FwcC8oLilbdXNlcm5hbWVdIHNob3VsZCBub3QgbWF0Y2ggL2FwcC9bdXNlcm5hbWVdKVxuICAgIGNvbnN0IGludGVyY2VwdGlvblByZWZpeCA9IGludGVyY2VwdGlvbk1hcmtlciA/IGVzY2FwZVN0cmluZ1JlZ2V4cChpbnRlcmNlcHRpb25NYXJrZXIpIDogXCJcIjtcbiAgICByZXR1cm4gcmVwZWF0ID8gb3B0aW9uYWwgPyBcIig/Oi9cIiArIGludGVyY2VwdGlvblByZWZpeCArIFwiKD88XCIgKyBjbGVhbmVkS2V5ICsgXCI+Lis/KSk/XCIgOiBcIi9cIiArIGludGVyY2VwdGlvblByZWZpeCArIFwiKD88XCIgKyBjbGVhbmVkS2V5ICsgXCI+Lis/KVwiIDogXCIvXCIgKyBpbnRlcmNlcHRpb25QcmVmaXggKyBcIig/PFwiICsgY2xlYW5lZEtleSArIFwiPlteL10rPylcIjtcbn1cbmZ1bmN0aW9uIGdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUocm91dGUsIHByZWZpeFJvdXRlS2V5cykge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IGdldFNhZmVSb3V0ZUtleSA9IGJ1aWxkR2V0U2FmZVJvdXRlS2V5KCk7XG4gICAgY29uc3Qgcm91dGVLZXlzID0ge307XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzLm1hcCgoc2VnbWVudCk9PntcbiAgICAgICAgICAgIGNvbnN0IGhhc0ludGVyY2VwdGlvbk1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pPT5zZWdtZW50LnN0YXJ0c1dpdGgobSkpO1xuICAgICAgICAgICAgY29uc3QgcGFyYW1NYXRjaGVzID0gc2VnbWVudC5tYXRjaCgvXFxbKCg/OlxcWy4qXFxdKXwuKylcXF0vKSAvLyBDaGVjayBmb3IgcGFyYW1ldGVyc1xuICAgICAgICAgICAgO1xuICAgICAgICAgICAgaWYgKGhhc0ludGVyY2VwdGlvbk1hcmtlciAmJiBwYXJhbU1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbdXNlZE1hcmtlcl0gPSBzZWdtZW50LnNwbGl0KHBhcmFtTWF0Y2hlc1swXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFNhZmVLZXlGcm9tU2VnbWVudCh7XG4gICAgICAgICAgICAgICAgICAgIGdldFNhZmVSb3V0ZUtleSxcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJjZXB0aW9uTWFya2VyOiB1c2VkTWFya2VyLFxuICAgICAgICAgICAgICAgICAgICBzZWdtZW50OiBwYXJhbU1hdGNoZXNbMV0sXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2V5cyxcbiAgICAgICAgICAgICAgICAgICAga2V5UHJlZml4OiBwcmVmaXhSb3V0ZUtleXMgPyBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtTWF0Y2hlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTYWZlS2V5RnJvbVNlZ21lbnQoe1xuICAgICAgICAgICAgICAgICAgICBnZXRTYWZlUm91dGVLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlZ21lbnQ6IHBhcmFtTWF0Y2hlc1sxXSxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVLZXlzLFxuICAgICAgICAgICAgICAgICAgICBrZXlQcmVmaXg6IHByZWZpeFJvdXRlS2V5cyA/IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIi9cIiArIGVzY2FwZVN0cmluZ1JlZ2V4cChzZWdtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuam9pbihcIlwiKSxcbiAgICAgICAgcm91dGVLZXlzXG4gICAgfTtcbn1cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBleHRlbmRzIGBnZXRSb3V0ZVJlZ2V4YCBnZW5lcmF0aW5nIGFsc28gYSBuYW1lZCByZWdleHAgd2hlcmVcbiAqIGVhY2ggZ3JvdXAgaXMgbmFtZWQgYWxvbmcgd2l0aCBhIHJvdXRlS2V5cyBvYmplY3QgdGhhdCBpbmRleGVzIHRoZSBhc3NpZ25lZFxuICogbmFtZWQgZ3JvdXAgd2l0aCBpdHMgY29ycmVzcG9uZGluZyBrZXkuIFdoZW4gdGhlIHJvdXRlS2V5cyBuZWVkIHRvIGJlXG4gKiBwcmVmaXhlZCB0byB1bmlxdWVseSBpZGVudGlmeSBpbnRlcm5hbGx5IHRoZSBcInByZWZpeFJvdXRlS2V5XCIgYXJnIHNob3VsZFxuICogYmUgXCJ0cnVlXCIgY3VycmVudGx5IHRoaXMgaXMgb25seSB0aGUgY2FzZSB3aGVuIGNyZWF0aW5nIHRoZSByb3V0ZXMtbWFuaWZlc3RcbiAqIGR1cmluZyB0aGUgYnVpbGRcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWRSb3V0ZVJlZ2V4KG5vcm1hbGl6ZWRSb3V0ZSwgcHJlZml4Um91dGVLZXkpIHtcbiAgICBjb25zdCByZXN1bHQgPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSwgcHJlZml4Um91dGVLZXkpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmdldFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlKSxcbiAgICAgICAgbmFtZWRSZWdleDogXCJeXCIgKyByZXN1bHQubmFtZWRQYXJhbWV0ZXJpemVkUm91dGUgKyBcIig/Oi8pPyRcIixcbiAgICAgICAgcm91dGVLZXlzOiByZXN1bHQucm91dGVLZXlzXG4gICAgfTtcbn1cbi8qKlxuICogR2VuZXJhdGVzIGEgbmFtZWQgcmVnZXhwLlxuICogVGhpcyBpcyBpbnRlbmRlZCB0byBiZSB1c2luZyBmb3IgYnVpbGQgdGltZSBvbmx5LlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXROYW1lZE1pZGRsZXdhcmVSZWdleChub3JtYWxpemVkUm91dGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSB9ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBjb25zdCB7IGNhdGNoQWxsID0gdHJ1ZSB9ID0gb3B0aW9ucztcbiAgICBpZiAocGFyYW1ldGVyaXplZFJvdXRlID09PSBcIi9cIikge1xuICAgICAgICBsZXQgY2F0Y2hBbGxSZWdleCA9IGNhdGNoQWxsID8gXCIuKlwiIDogXCJcIjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWVkUmVnZXg6IFwiXi9cIiArIGNhdGNoQWxsUmVnZXggKyBcIiRcIlxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB7IG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlIH0gPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSwgZmFsc2UpO1xuICAgIGxldCBjYXRjaEFsbEdyb3VwZWRSZWdleCA9IGNhdGNoQWxsID8gXCIoPzooLy4qKT8pXCIgOiBcIlwiO1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWVkUmVnZXg6IFwiXlwiICsgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGUgKyBjYXRjaEFsbEdyb3VwZWRSZWdleCArIFwiJFwiXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtcmVnZXguanMubWFwIl0sIm5hbWVzIjpbIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiZXNjYXBlU3RyaW5nUmVnZXhwIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsIk5FWFRfUVVFUllfUEFSQU1fUFJFRklYIiwiTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCIsInBhcnNlUGFyYW1ldGVyIiwicGFyYW0iLCJvcHRpb25hbCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwicmVwZWF0Iiwia2V5IiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJyb3V0ZSIsInNlZ21lbnRzIiwic3BsaXQiLCJncm91cHMiLCJncm91cEluZGV4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwibWFwIiwic2VnbWVudCIsIm1hcmtlck1hdGNoIiwiZmluZCIsIm0iLCJwYXJhbU1hdGNoZXMiLCJtYXRjaCIsInBvcyIsImpvaW4iLCJnZXRSb3V0ZVJlZ2V4Iiwibm9ybWFsaXplZFJvdXRlIiwicmUiLCJSZWdFeHAiLCJidWlsZEdldFNhZmVSb3V0ZUtleSIsImkiLCJyb3V0ZUtleSIsImoiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJNYXRoIiwiZmxvb3IiLCJnZXRTYWZlS2V5RnJvbVNlZ21lbnQiLCJpbnRlcmNlcHRpb25NYXJrZXIiLCJnZXRTYWZlUm91dGVLZXkiLCJyb3V0ZUtleXMiLCJrZXlQcmVmaXgiLCJjbGVhbmVkS2V5IiwicmVwbGFjZSIsImludmFsaWRLZXkiLCJsZW5ndGgiLCJpc05hTiIsInBhcnNlSW50IiwiaW50ZXJjZXB0aW9uUHJlZml4IiwiZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZSIsInByZWZpeFJvdXRlS2V5cyIsIm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlIiwiaGFzSW50ZXJjZXB0aW9uTWFya2VyIiwic29tZSIsInVzZWRNYXJrZXIiLCJ1bmRlZmluZWQiLCJnZXROYW1lZFJvdXRlUmVnZXgiLCJwcmVmaXhSb3V0ZUtleSIsInJlc3VsdCIsIm5hbWVkUmVnZXgiLCJnZXROYW1lZE1pZGRsZXdhcmVSZWdleCIsIm9wdGlvbnMiLCJjYXRjaEFsbCIsImNhdGNoQWxsUmVnZXgiLCJjYXRjaEFsbEdyb3VwZWRSZWdleCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/sorted-routes.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/sorted-routes.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getSortedRoutes: () => (/* binding */ getSortedRoutes)\n/* harmony export */ });\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split(\"/\").filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = \"/\";\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[]\"), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[...]\"), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[[...]]\"), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get(\"[]\")._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === \"/\" ? \"/\" : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").');\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get(\"[...]\")._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get(\"[[...]]\")._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw new Error(\"Catch-all must be the last part of the URL.\");\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith(\"[\") && nextSegment.endsWith(\"]\")) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith(\"[\") && segmentName.endsWith(\"]\")) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith(\"...\")) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith(\"[\") || segmentName.endsWith(\"]\")) {\n throw new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\");\n }\n if (segmentName.startsWith(\".\")) {\n throw new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\");\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\");\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path');\n }\n if (slug.replace(/\\W/g, \"\") === nextSegment.replace(/\\W/g, \"\")) {\n throw new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path');\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).');\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = \"[[...]]\";\n } else {\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").');\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = \"[...]\";\n }\n } else {\n if (isOptional) {\n throw new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").');\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = \"[]\";\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n} //# sourceMappingURL=sorted-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTUE7SUFDRkMsT0FBT0MsT0FBTyxFQUFFO1FBQ1osSUFBSSxDQUFDQyxPQUFPLENBQUNELFFBQVFFLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUNDLFVBQVUsRUFBRSxFQUFFO0lBQ3pEO0lBQ0FDLFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQ0MsT0FBTztJQUN2QjtJQUNBQSxRQUFRQyxNQUFNLEVBQUU7UUFDWixJQUFJQSxXQUFXLEtBQUssR0FBR0EsU0FBUztRQUNoQyxNQUFNQyxnQkFBZ0I7ZUFDZixJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSTtTQUN4QixDQUFDQyxJQUFJO1FBQ04sSUFBSSxJQUFJLENBQUNDLFFBQVEsS0FBSyxNQUFNO1lBQ3hCSixjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxPQUFPO1FBQ3REO1FBQ0EsSUFBSSxJQUFJLENBQUNDLFlBQVksS0FBSyxNQUFNO1lBQzVCUCxjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxVQUFVO1FBQ3pEO1FBQ0EsSUFBSSxJQUFJLENBQUNFLG9CQUFvQixLQUFLLE1BQU07WUFDcENSLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFlBQVk7UUFDM0Q7UUFDQSxNQUFNRyxTQUFTVCxjQUFjVSxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxJQUFJLENBQUNWLFFBQVEsQ0FBQ1csR0FBRyxDQUFDRCxHQUFHYixPQUFPLENBQUMsS0FBS0MsU0FBU1ksSUFBSSxNQUFNRSxNQUFNLENBQUMsQ0FBQ0MsTUFBTUMsT0FBTzttQkFDckdEO21CQUNBQzthQUNOLEVBQUUsRUFBRTtRQUNULElBQUksSUFBSSxDQUFDWCxRQUFRLEtBQUssTUFBTTtZQUN4QkssT0FBT08sSUFBSSxJQUFJLElBQUksQ0FB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UUFDdkM7UUFDQSxJQUFJLENBQUNXLFFBQVEsQ0FBQ1csR0FBRyxDQUFDYyxhQUFhakMsT0FBTyxDQUFDNkIsU0FBU0gsS0FBSyxDQUFDLElBQUlJLFdBQVdDO0lBQ3pFO0lBQ0FnQixhQUFhO1FBQ1QsSUFBSSxDQUFDdkIsV0FBVyxHQUFHO1FBQ25CLElBQUksQ0FBQ2hCLFFBQVEsR0FBRyxJQUFJd0M7UUFDcEIsSUFBSSxDQUFDckMsUUFBUSxHQUFHO1FBQ2hCLElBQUksQ0FBQ0csWUFBWSxHQUFHO1FBQ3BCLElBQUksQ0FBQ0Msb0JBQW9CLEdBQUc7SUFDaEM7QUFDSjtBQUNPLFNBQVNrQyxnQkFBZ0JDLGVBQWU7SUFDM0Msa0ZBQWtGO0lBQ2xGLDRFQUE0RTtJQUM1RSwyQ0FBMkM7SUFDM0MseUVBQXlFO0lBQ3pFLDJCQUEyQjtJQUMzQixvQ0FBb0M7SUFDcEMsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxnSEFBZ0g7SUFDaEgsNEVBQTRFO0lBQzVFLE1BQU1DLE9BQU8sSUFBSXREO0lBQ2pCLDZGQUE2RjtJQUM3RnFELGdCQUFnQlIsT0FBTyxDQUFDLENBQUNVLFdBQVdELEtBQUtyRCxNQUFNLENBQUNzRDtJQUNoRCw0R0FBNEc7SUFDNUcsT0FBT0QsS0FBSy9DLE1BQU07QUFDdEIsRUFFQSx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3NvcnRlZC1yb3V0ZXMuanM/MzlmMCJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBVcmxOb2RlIHtcbiAgICBpbnNlcnQodXJsUGF0aCkge1xuICAgICAgICB0aGlzLl9pbnNlcnQodXJsUGF0aC5zcGxpdChcIi9cIikuZmlsdGVyKEJvb2xlYW4pLCBbXSwgZmFsc2UpO1xuICAgIH1cbiAgICBzbW9vc2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zbW9vc2goKTtcbiAgICB9XG4gICAgX3Ntb29zaChwcmVmaXgpIHtcbiAgICAgICAgaWYgKHByZWZpeCA9PT0gdm9pZCAwKSBwcmVmaXggPSBcIi9cIjtcbiAgICAgICAgY29uc3QgY2hpbGRyZW5QYXRocyA9IFtcbiAgICAgICAgICAgIC4uLnRoaXMuY2hpbGRyZW4ua2V5cygpXG4gICAgICAgIF0uc29ydCgpO1xuICAgICAgICBpZiAodGhpcy5zbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKFwiW11cIiksIDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKFwiWy4uLl1cIiksIDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjaGlsZHJlblBhdGhzLnNwbGljZShjaGlsZHJlblBhdGhzLmluZGV4T2YoXCJbWy4uLl1dXCIpLCAxKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3V0ZXMgPSBjaGlsZHJlblBhdGhzLm1hcCgoYyk9PnRoaXMuY2hpbGRyZW4uZ2V0KGMpLl9zbW9vc2goXCJcIiArIHByZWZpeCArIGMgKyBcIi9cIikpLnJlZHVjZSgocHJldiwgY3Vycik9PltcbiAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICAgIC4uLmN1cnJcbiAgICAgICAgICAgIF0sIFtdKTtcbiAgICAgICAgaWYgKHRoaXMuc2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJvdXRlcy5wdXNoKC4uLnRoaXMuY2hpbGRyZW4uZ2V0KFwiW11cIikuX3Ntb29zaChwcmVmaXggKyBcIltcIiArIHRoaXMuc2x1Z05hbWUgKyBcIl0vXCIpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwcmVmaXggPT09IFwiL1wiID8gXCIvXCIgOiBwcmVmaXguc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBkZWZpbmUgYSByb3V0ZSB3aXRoIHRoZSBzYW1lIHNwZWNpZmljaXR5IGFzIGEgb3B0aW9uYWwgY2F0Y2gtYWxsIHJvdXRlIChcIicgKyByICsgJ1wiIGFuZCBcIicgKyByICsgXCJbWy4uLlwiICsgdGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSArICddXVwiKS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdXRlcy51bnNoaWZ0KHIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcm91dGVzLnB1c2goLi4udGhpcy5jaGlsZHJlbi5nZXQoXCJbLi4uXVwiKS5fc21vb3NoKHByZWZpeCArIFwiWy4uLlwiICsgdGhpcy5yZXN0U2x1Z05hbWUgKyBcIl0vXCIpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcm91dGVzLnB1c2goLi4udGhpcy5jaGlsZHJlbi5nZXQoXCJbWy4uLl1dXCIpLl9zbW9vc2gocHJlZml4ICsgXCJbWy4uLlwiICsgdGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSArIFwiXV0vXCIpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm91dGVzO1xuICAgIH1cbiAgICBfaW5zZXJ0KHVybFBhdGhzLCBzbHVnTmFtZXMsIGlzQ2F0Y2hBbGwpIHtcbiAgICAgICAgaWYgKHVybFBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYXRjaC1hbGwgbXVzdCBiZSB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBVUkwuXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoZSBuZXh0IHNlZ21lbnQgaW4gdGhlIHVybFBhdGhzIGxpc3RcbiAgICAgICAgbGV0IG5leHRTZWdtZW50ID0gdXJsUGF0aHNbMF07XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBzZWdtZW50IG1hdGNoZXMgYFtzb21ldGhpbmddYFxuICAgICAgICBpZiAobmV4dFNlZ21lbnQuc3RhcnRzV2l0aChcIltcIikgJiYgbmV4dFNlZ21lbnQuZW5kc1dpdGgoXCJdXCIpKSB7XG4gICAgICAgICAgICAvLyBTdHJpcCBgW2AgYW5kIGBdYCwgbGVhdmluZyBvbmx5IGBzb21ldGhpbmdgXG4gICAgICAgICAgICBsZXQgc2VnbWVudE5hbWUgPSBuZXh0U2VnbWVudC5zbGljZSgxLCAtMSk7XG4gICAgICAgICAgICBsZXQgaXNPcHRpb25hbCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHNlZ21lbnROYW1lLnN0YXJ0c1dpdGgoXCJbXCIpICYmIHNlZ21lbnROYW1lLmVuZHNXaXRoKFwiXVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIFN0cmlwIG9wdGlvbmFsIGBbYCBhbmQgYF1gLCBsZWF2aW5nIG9ubHkgYHNvbWV0aGluZ2BcbiAgICAgICAgICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnNsaWNlKDEsIC0xKTtcbiAgICAgICAgICAgICAgICBpc09wdGlvbmFsID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKFwiLi4uXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gU3RyaXAgYC4uLmAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICAgICAgICAgIHNlZ21lbnROYW1lID0gc2VnbWVudE5hbWUuc3Vic3RyaW5nKDMpO1xuICAgICAgICAgICAgICAgIGlzQ2F0Y2hBbGwgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlZ21lbnROYW1lLnN0YXJ0c1dpdGgoXCJbXCIpIHx8IHNlZ21lbnROYW1lLmVuZHNXaXRoKFwiXVwiKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlZ21lbnQgbmFtZXMgbWF5IG5vdCBzdGFydCBvciBlbmQgd2l0aCBleHRyYSBicmFja2V0cyAoJ1wiICsgc2VnbWVudE5hbWUgKyBcIicpLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWdtZW50TmFtZS5zdGFydHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlZ21lbnQgbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoIGVycm9uZW91cyBwZXJpb2RzICgnXCIgKyBzZWdtZW50TmFtZSArIFwiJykuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlU2x1ZyhwcmV2aW91c1NsdWcsIG5leHRTbHVnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU2x1ZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc3BlY2lmaWMgc2VnbWVudCBhbHJlYWR5IGhhcyBhIHNsdWcgYnV0IHRoZSBzbHVnIGlzIG5vdCBgc29tZXRoaW5nYFxuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIGNvbGxpc2lvbnMgbGlrZTpcbiAgICAgICAgICAgICAgICAgICAgLy8gcGFnZXMvW3Bvc3RdL2luZGV4LmpzXG4gICAgICAgICAgICAgICAgICAgIC8vIHBhZ2VzL1tpZF0vaW5kZXguanNcbiAgICAgICAgICAgICAgICAgICAgLy8gQmVjYXVzZSBjdXJyZW50bHkgbXVsdGlwbGUgZHluYW1pYyBwYXJhbXMgb24gdGhlIHNhbWUgc2VnbWVudCBsZXZlbCBhcmUgbm90IHN1cHBvcnRlZFxuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTbHVnICE9PSBuZXh0U2x1Zykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBzZWVtcyB0byBiZSBjb25mdXNpbmcgZm9yIHVzZXJzLCBuZWVkcyBhbiBlcnJvciBsaW5rLCB0aGUgZGVzY3JpcHRpb24gY2FuIGJlIGJhc2VkIG9uIGFib3ZlIGNvbW1lbnQuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgY2Fubm90IHVzZSBkaWZmZXJlbnQgc2x1ZyBuYW1lcyBmb3IgdGhlIHNhbWUgZHluYW1pYyBwYXRoICgnXCIgKyBwcmV2aW91c1NsdWcgKyBcIicgIT09ICdcIiArIG5leHRTbHVnICsgXCInKS5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2x1Z05hbWVzLmZvckVhY2goKHNsdWcpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChzbHVnID09PSBuZXh0U2x1Zykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IGhhdmUgdGhlIHNhbWUgc2x1ZyBuYW1lIFwiJyArIG5leHRTbHVnICsgJ1wiIHJlcGVhdCB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNsdWcucmVwbGFjZSgvXFxXL2csIFwiXCIpID09PSBuZXh0U2VnbWVudC5yZXBsYWNlKC9cXFcvZywgXCJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBoYXZlIHRoZSBzbHVnIG5hbWVzIFwiJyArIHNsdWcgKyAnXCIgYW5kIFwiJyArIG5leHRTbHVnICsgJ1wiIGRpZmZlciBvbmx5IGJ5IG5vbi13b3JkIHN5bWJvbHMgd2l0aGluIGEgc2luZ2xlIGR5bmFtaWMgcGF0aCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc2x1Z05hbWVzLnB1c2gobmV4dFNsdWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzQ2F0Y2hBbGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNPcHRpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHVzZSBib3RoIGFuIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBjYXRjaC1hbGwgcm91dGUgYXQgdGhlIHNhbWUgbGV2ZWwgKFwiWy4uLicgKyB0aGlzLnJlc3RTbHVnTmFtZSArICddXCIgYW5kIFwiJyArIHVybFBhdGhzWzBdICsgJ1wiICkuJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2x1Zyh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lLCBzZWdtZW50TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSA9IHNlZ21lbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbWy4uLl1dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICAgICAgICAgICAgbmV4dFNlZ21lbnQgPSBcIltbLi4uXV1cIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3QgdXNlIGJvdGggYW4gb3B0aW9uYWwgYW5kIHJlcXVpcmVkIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbWy4uLicgKyB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICsgJ11dXCIgYW5kIFwiJyArIHVybFBhdGhzWzBdICsgJ1wiKS4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMucmVzdFNsdWdOYW1lLCBzZWdtZW50TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXN0U2x1Z05hbWUgPSBzZWdtZW50TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gbmV4dFNlZ21lbnQgaXMgb3ZlcndyaXR0ZW4gdG8gWy4uLl0gc28gdGhhdCBpdCBjYW4gbGF0ZXIgYmUgc29ydGVkIHNwZWNpZmljYWxseVxuICAgICAgICAgICAgICAgICAgICBuZXh0U2VnbWVudCA9IFwiWy4uLl1cIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpc09wdGlvbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignT3B0aW9uYWwgcm91dGUgcGFyYW1ldGVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgKFwiJyArIHVybFBhdGhzWzBdICsgJ1wiKS4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaGFuZGxlU2x1Zyh0aGlzLnNsdWdOYW1lLCBzZWdtZW50TmFtZSk7XG4gICAgICAgICAgICAgICAgLy8gc2x1Z05hbWUgaXMga2VwdCBhcyBpdCBjYW4gb25seSBiZSBvbmUgcGFydGljdWxhciBzbHVnTmFtZVxuICAgICAgICAgICAgICAgIHRoaXMuc2x1Z05hbWUgPSBzZWdtZW50TmFtZTtcbiAgICAgICAgICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XG4gICAgICAgICAgICAgICAgbmV4dFNlZ21lbnQgPSBcIltdXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhpcyBVcmxOb2RlIGRvZXNuJ3QgaGF2ZSB0aGUgbmV4dFNlZ21lbnQgeWV0IHdlIGNyZWF0ZSBhIG5ldyBjaGlsZCBVcmxOb2RlXG4gICAgICAgIGlmICghdGhpcy5jaGlsZHJlbi5oYXMobmV4dFNlZ21lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLnNldChuZXh0U2VnbWVudCwgbmV3IFVybE5vZGUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGlsZHJlbi5nZXQobmV4dFNlZ21lbnQpLl9pbnNlcnQodXJsUGF0aHMuc2xpY2UoMSksIHNsdWdOYW1lcywgaXNDYXRjaEFsbCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLnNsdWdOYW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZXN0U2x1Z05hbWUgPSBudWxsO1xuICAgICAgICB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lID0gbnVsbDtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydGVkUm91dGVzKG5vcm1hbGl6ZWRQYWdlcykge1xuICAgIC8vIEZpcnN0IHRoZSBVcmxOb2RlIGlzIGNyZWF0ZWQsIGFuZCBldmVyeSBVcmxOb2RlIGNhbiBoYXZlIG9ubHkgMSBkeW5hbWljIHNlZ21lbnRcbiAgICAvLyBFZyB5b3UgY2FuJ3QgaGF2ZSBwYWdlcy9bcG9zdF0vYWJjLmpzIGFuZCBwYWdlcy9baGVsbG9dL3NvbWV0aGluZy1lbHNlLmpzXG4gICAgLy8gT25seSAxIGR5bmFtaWMgc2VnbWVudCBwZXIgbmVzdGluZyBsZXZlbFxuICAgIC8vIFNvIGluIHRoZSBjYXNlIHRoYXQgaXMgdGVzdC9pbnRlZ3JhdGlvbi9keW5hbWljLXJvdXRpbmcgaXQnbGwgYmUgdGhpczpcbiAgICAvLyBwYWdlcy9bcG9zdF0vY29tbWVudHMuanNcbiAgICAvLyBwYWdlcy9ibG9nL1twb3N0XS9jb21tZW50L1tpZF0uanNcbiAgICAvLyBCb3RoIGFyZSBmaW5lIGJlY2F1c2UgYHBhZ2VzL1twb3N0XWAgYW5kIGBwYWdlcy9ibG9nYCBhcmUgb24gdGhlIHNhbWUgbGV2ZWxcbiAgICAvLyBTbyBpbiB0aGlzIGNhc2UgYFVybE5vZGVgIGNyZWF0ZWQgaGVyZSBoYXMgYHRoaXMuc2x1Z05hbWUgPT09ICdwb3N0J2BcbiAgICAvLyBBbmQgc2luY2UgeW91ciBQUiBwYXNzZWQgdGhyb3VnaCBgc2x1Z05hbWVgIGFzIGFuIGFycmF5IGJhc2ljYWxseSBpdCdkIGluY2x1ZGluZyBpdCBpbiB0b28gbWFueSBwb3NzaWJpbGl0aWVzXG4gICAgLy8gSW5zdGVhZCB3aGF0IGhhcyB0byBiZSBwYXNzZWQgdGhyb3VnaCBpcyB0aGUgdXB3YXJkcyBwYXRoJ3MgZHluYW1pYyBuYW1lc1xuICAgIGNvbnN0IHJvb3QgPSBuZXcgVXJsTm9kZSgpO1xuICAgIC8vIEhlcmUgdGhlIGByb290YCBnZXRzIGluamVjdGVkIG11bHRpcGxlIHBhdGhzLCBhbmQgaW5zZXJ0IHdpbGwgYnJlYWsgdGhlbSB1cCBpbnRvIHN1YmxldmVsc1xuICAgIG5vcm1hbGl6ZWRQYWdlcy5mb3JFYWNoKChwYWdlUGF0aCk9PnJvb3QuaW5zZXJ0KHBhZ2VQYXRoKSk7XG4gICAgLy8gU21vb3NoIHdpbGwgdGhlbiBzb3J0IHRob3NlIHN1YmxldmVscyB1cCB0byB0aGUgcG9pbnQgd2hlcmUgeW91IGdldCB0aGUgY29ycmVjdCByb3V0ZSBkZWZpbml0aW9uIHByaW9yaXR5XG4gICAgcmV0dXJuIHJvb3Quc21vb3NoKCk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvcnRlZC1yb3V0ZXMuanMubWFwIl0sIm5hbWVzIjpbIlVybE5vZGUiLCJpbnNlcnQiLCJ1cmxQYXRoIiwiX2luc2VydCIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsInNtb29zaCIsIl9zbW9vc2giLCJwcmVmaXgiLCJjaGlsZHJlblBhdGhzIiwiY2hpbGRyZW4iLCJrZXlzIiwic29ydCIsInNsdWdOYW1lIiwic3BsaWNlIiwiaW5kZXhPZiIsInJlc3RTbHVnTmFtZSIsIm9wdGlvbmFsUmVzdFNsdWdOYW1lIiwicm91dGVzIiwibWFwIiwiYyIsImdldCIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwicHVzaCIsInBsYWNlaG9sZGVyIiwiciIsInNsaWNlIiwiRXJyb3IiLCJ1bnNoaWZ0IiwidXJsUGF0aHMiLCJzbHVnTmFtZXMiLCJpc0NhdGNoQWxsIiwibGVuZ3RoIiwibmV4dFNlZ21lbnQiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJzZWdtZW50TmFtZSIsImlzT3B0aW9uYWwiLCJzdWJzdHJpbmciLCJoYW5kbGVTbHVnIiwicHJldmlvdXNTbHVnIiwibmV4dFNsdWciLCJmb3JFYWNoIiwic2x1ZyIsInJlcGxhY2UiLCJoYXMiLCJzZXQiLCJjb25zdHJ1Y3RvciIsIk1hcCIsImdldFNvcnRlZFJvdXRlcyIsIm5vcm1hbGl6ZWRQYWdlcyIsInJvb3QiLCJwYWdlUGF0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/router/utils/sorted-routes.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/runtime-config.external.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/runtime-config.external.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ setConfig: () => (/* binding */ setConfig)\n/* harmony export */ });\nlet runtimeConfig;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (()=>{\n return runtimeConfig;\n});\nfunction setConfig(configValue) {\n runtimeConfig = configValue;\n} //# sourceMappingURL=runtime-config.external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9ydW50aW1lLWNvbmZpZy5leHRlcm5hbC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQUlBO0FBQ0osaUVBQWdCO0lBQ1osT0FBT0E7QUFDWCxHQUFHO0FBQ0ksU0FBU0MsVUFBVUMsV0FBVztJQUNqQ0YsZ0JBQWdCRTtBQUNwQixFQUVBLG1EQUFtRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9ydW50aW1lLWNvbmZpZy5leHRlcm5hbC5qcz82Njg3Il0sInNvdXJjZXNDb250ZW50IjpbImxldCBydW50aW1lQ29uZmlnO1xuZXhwb3J0IGRlZmF1bHQgKCgpPT57XG4gICAgcmV0dXJuIHJ1bnRpbWVDb25maWc7XG59KTtcbmV4cG9ydCBmdW5jdGlvbiBzZXRDb25maWcoY29uZmlnVmFsdWUpIHtcbiAgICBydW50aW1lQ29uZmlnID0gY29uZmlnVmFsdWU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJ1bnRpbWUtY29uZmlnLmV4dGVybmFsLmpzLm1hcCJdLCJuYW1lcyI6WyJydW50aW1lQ29uZmlnIiwic2V0Q29uZmlnIiwiY29uZmlnVmFsdWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/runtime-config.external.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/segment.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_SEGMENT_KEY: () => (/* binding */ DEFAULT_SEGMENT_KEY),\n/* harmony export */ PAGE_SEGMENT_KEY: () => (/* binding */ PAGE_SEGMENT_KEY),\n/* harmony export */ isGroupSegment: () => (/* binding */ isGroupSegment)\n/* harmony export */ });\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === \"(\" && segment.endsWith(\")\");\n}\nconst PAGE_SEGMENT_KEY = \"__PAGE__\";\nconst DEFAULT_SEGMENT_KEY = \"__DEFAULT__\"; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLFNBQVNBLGVBQWVDLE9BQU87SUFDbEMsc0NBQXNDO0lBQ3RDLE9BQU9BLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBT0EsUUFBUUMsUUFBUSxDQUFDO0FBQ2xEO0FBQ08sTUFBTUMsbUJBQW1CLFdBQVc7QUFDcEMsTUFBTUMsc0JBQXNCLGNBQWMsQ0FFakQsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3NlZ21lbnQuanM/M2ZmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudCkge1xuICAgIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gICAgcmV0dXJuIHNlZ21lbnRbMF0gPT09IFwiKFwiICYmIHNlZ21lbnQuZW5kc1dpdGgoXCIpXCIpO1xufVxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSBcIl9fUEFHRV9fXCI7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9IFwiX19ERUZBVUxUX19cIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VnbWVudC5qcy5tYXAiXSwibmFtZXMiOlsiaXNHcm91cFNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJQQUdFX1NFR01FTlRfS0VZIiwiREVGQVVMVF9TRUdNRU5UX0tFWSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/segment.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ServerInsertedHTMLContext: () => (/* binding */ ServerInsertedHTMLContext),\n/* harmony export */ useServerInsertedHTML: () => (/* binding */ useServerInsertedHTML)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ ServerInsertedHTMLContext,useServerInsertedHTML auto */ \n// Use `React.createContext` to avoid errors from the RSC checks because\n// it can't be imported directly in Server Components:\n//\n// import { createContext } from 'react'\n//\n// More info: https://github.com/vercel/next.js/pull/40686\nconst ServerInsertedHTMLContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null);\nfunction useServerInsertedHTML(callback) {\n const addInsertedServerHTMLCallback = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(ServerInsertedHTMLContext);\n // Should have no effects on client where there's no flush effects provider\n if (addInsertedServerHTMLCallback) {\n addInsertedServerHTMLCallback(callback);\n }\n} //# sourceMappingURL=server-inserted-html.shared-runtime.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O3FHQUUwQztBQUMxQyx3RUFBd0U7QUFDeEUsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiwwQ0FBMEM7QUFDMUMsRUFBRTtBQUNGLDBEQUEwRDtBQUNuRCxNQUFNRSw0QkFBNEIsV0FBVyxHQUFHRiwwREFBbUIsQ0FBQyxNQUFNO0FBQzFFLFNBQVNJLHNCQUFzQkMsUUFBUTtJQUMxQyxNQUFNQyxnQ0FBZ0NMLGlEQUFVQSxDQUFDQztJQUNqRCwyRUFBMkU7SUFDM0UsSUFBSUksK0JBQStCO1FBQy9CQSw4QkFBOEJEO0lBQ2xDO0FBQ0osRUFFQSwrREFBK0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvc2VydmVyLWluc2VydGVkLWh0bWwuc2hhcmVkLXJ1bnRpbWUuanM/OTc1NyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbi8vIFVzZSBgUmVhY3QuY3JlYXRlQ29udGV4dGAgdG8gYXZvaWQgZXJyb3JzIGZyb20gdGhlIFJTQyBjaGVja3MgYmVjYXVzZVxuLy8gaXQgY2FuJ3QgYmUgaW1wb3J0ZWQgZGlyZWN0bHkgaW4gU2VydmVyIENvbXBvbmVudHM6XG4vL1xuLy8gICBpbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAncmVhY3QnXG4vL1xuLy8gTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC80MDY4NlxuZXhwb3J0IGNvbnN0IFNlcnZlckluc2VydGVkSFRNTENvbnRleHQgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5leHBvcnQgZnVuY3Rpb24gdXNlU2VydmVySW5zZXJ0ZWRIVE1MKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYWRkSW5zZXJ0ZWRTZXJ2ZXJIVE1MQ2FsbGJhY2sgPSB1c2VDb250ZXh0KFNlcnZlckluc2VydGVkSFRNTENvbnRleHQpO1xuICAgIC8vIFNob3VsZCBoYXZlIG5vIGVmZmVjdHMgb24gY2xpZW50IHdoZXJlIHRoZXJlJ3Mgbm8gZmx1c2ggZWZmZWN0cyBwcm92aWRlclxuICAgIGlmIChhZGRJbnNlcnRlZFNlcnZlckhUTUxDYWxsYmFjaykge1xuICAgICAgICBhZGRJbnNlcnRlZFNlcnZlckhUTUxDYWxsYmFjayhjYWxsYmFjayk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5zaGFyZWQtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VDb250ZXh0IiwiU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VTZXJ2ZXJJbnNlcnRlZEhUTUwiLCJjYWxsYmFjayIsImFkZEluc2VydGVkU2VydmVySFRNTENhbGxiYWNrIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/side-effect.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/side-effect.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SideEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nconst isServer = \"undefined\" === \"undefined\";\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\nfunction SideEffect(props) {\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect(()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n };\n });\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n };\n });\n useClientOnlyEffect(()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n };\n });\n return null;\n} //# sourceMappingURL=side-effect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNkQ7QUFDN0QsTUFBTUcsV0FBVyxnQkFBa0I7QUFDbkMsTUFBTUMsNEJBQTRCRCxXQUFXLEtBQUssSUFBSUQsa0RBQWVBO0FBQ3JFLE1BQU1HLHNCQUFzQkYsV0FBVyxLQUFLLElBQUlGLDRDQUFTQTtBQUMxQyxTQUFTSyxXQUFXQyxLQUFLO0lBQ3BDLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyx1QkFBdUIsRUFBRSxHQUFHRjtJQUNqRCxTQUFTRztRQUNMLElBQUlGLGVBQWVBLFlBQVlHLGdCQUFnQixFQUFFO1lBQzdDLE1BQU1DLGVBQWVaLDJDQUFRQSxDQUFDYSxPQUFPLENBQUNDLE1BQU1DLElBQUksQ0FBQ1AsWUFBWUcsZ0JBQWdCLEVBQUVLLE1BQU0sQ0FBQ0M7WUFDdEZULFlBQVlVLFVBQVUsQ0FBQ1Qsd0JBQXdCRyxjQUFjTDtRQUNqRTtJQUNKO0lBQ0EsSUFBSUosVUFBVTtRQUNWLElBQUlnQjtRQUNKWCxlQUFlLE9BQU8sS0FBSyxJQUFJLENBQUNXLGdDQUFnQ1gsWUFBWUcsZ0JBQWdCLEtBQUssT0FBTyxLQUFLLElBQUlRLDhCQUE4QkMsR0FBRyxDQUFDYixNQUFNYyxRQUFRO1FBQ2pLWDtJQUNKO0lBQ0FOLDBCQUEwQjtRQUN0QixJQUFJZTtRQUNKWCxlQUFlLE9BQU8sS0FBSyxJQUFJLENBQUNXLGdDQUFnQ1gsWUFBWUcsZ0JBQWdCLEtBQUssT0FBTyxLQUFLLElBQUlRLDhCQUE4QkMsR0FBRyxDQUFDYixNQUFNYyxRQUFRO1FBQ2pLLE9BQU87WUFDSCxJQUFJRjtZQUNKWCxlQUFlLE9BQU8sS0FBSyxJQUFJLENBQUNXLGdDQUFnQ1gsWUFBWUcsZ0JBQWdCLEtBQUssT0FBTyxLQUFLLElBQUlRLDhCQUE4QkcsTUFBTSxDQUFDZixNQUFNYyxRQUFRO1FBQ3hLO0lBQ0o7SUFDQSxrRkFBa0Y7SUFDbEYsb0ZBQW9GO0lBQ3BGLGdFQUFnRTtJQUNoRSxxRkFBcUY7SUFDckYsbUZBQW1GO0lBQ25GakIsMEJBQTBCO1FBQ3RCLElBQUlJLGFBQWE7WUFDYkEsWUFBWWUsY0FBYyxHQUFHYjtRQUNqQztRQUNBLE9BQU87WUFDSCxJQUFJRixhQUFhO2dCQUNiQSxZQUFZZSxjQUFjLEdBQUdiO1lBQ2pDO1FBQ0o7SUFDSjtJQUNBTCxvQkFBb0I7UUFDaEIsSUFBSUcsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO1lBQzNDZixZQUFZZSxjQUFjO1lBQzFCZixZQUFZZSxjQUFjLEdBQUc7UUFDakM7UUFDQSxPQUFPO1lBQ0gsSUFBSWYsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO2dCQUMzQ2YsWUFBWWUsY0FBYztnQkFDMUJmLFlBQVllLGNBQWMsR0FBRztZQUNqQztRQUNKO0lBQ0o7SUFDQSxPQUFPO0FBQ1gsRUFFQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanM/N2E2MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmNvbnN0IGlzU2VydmVyID0gdHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIjtcbmNvbnN0IHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QgPSBpc1NlcnZlciA/ICgpPT57fSA6IHVzZUxheW91dEVmZmVjdDtcbmNvbnN0IHVzZUNsaWVudE9ubHlFZmZlY3QgPSBpc1NlcnZlciA/ICgpPT57fSA6IHVzZUVmZmVjdDtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNpZGVFZmZlY3QocHJvcHMpIHtcbiAgICBjb25zdCB7IGhlYWRNYW5hZ2VyLCByZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSB9ID0gcHJvcHM7XG4gICAgZnVuY3Rpb24gZW1pdENoYW5nZSgpIHtcbiAgICAgICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRFbGVtZW50cyA9IENoaWxkcmVuLnRvQXJyYXkoQXJyYXkuZnJvbShoZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzKS5maWx0ZXIoQm9vbGVhbikpO1xuICAgICAgICAgICAgaGVhZE1hbmFnZXIudXBkYXRlSGVhZChyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZShoZWFkRWxlbWVudHMsIHByb3BzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICAgIHZhciBfaGVhZE1hbmFnZXJfbW91bnRlZEluc3RhbmNlcztcbiAgICAgICAgaGVhZE1hbmFnZXIgPT0gbnVsbCA/IHZvaWQgMCA6IChfaGVhZE1hbmFnZXJfbW91bnRlZEluc3RhbmNlcyA9IGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpID09IG51bGwgPyB2b2lkIDAgOiBfaGVhZE1hbmFnZXJfbW91bnRlZEluc3RhbmNlcy5hZGQocHJvcHMuY2hpbGRyZW4pO1xuICAgICAgICBlbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgdmFyIF9oZWFkTWFuYWdlcl9tb3VudGVkSW5zdGFuY2VzO1xuICAgICAgICBoZWFkTWFuYWdlciA9PSBudWxsID8gdm9pZCAwIDogKF9oZWFkTWFuYWdlcl9tb3VudGVkSW5zdGFuY2VzID0gaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9oZWFkTWFuYWdlcl9tb3VudGVkSW5zdGFuY2VzLmFkZChwcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgdmFyIF9oZWFkTWFuYWdlcl9tb3VudGVkSW5zdGFuY2VzO1xuICAgICAgICAgICAgaGVhZE1hbmFnZXIgPT0gbnVsbCA/IHZvaWQgMCA6IChfaGVhZE1hbmFnZXJfbW91bnRlZEluc3RhbmNlcyA9IGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpID09IG51bGwgPyB2b2lkIDAgOiBfaGVhZE1hbmFnZXJfbW91bnRlZEluc3RhbmNlcy5kZWxldGUocHJvcHMuY2hpbGRyZW4pO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIC8vIFdlIG5lZWQgdG8gY2FsbCBgdXBkYXRlSGVhZGAgbWV0aG9kIHdoZW5ldmVyIHRoZSBgU2lkZUVmZmVjdGAgaXMgdHJpZ2dlciBpbiBhbGxcbiAgICAvLyBsaWZlLWN5Y2xlczogbW91bnQsIHVwZGF0ZSwgdW5tb3VudC4gSG93ZXZlciwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGBTaWRlRWZmZWN0YHNcbiAgICAvLyBiZWluZyByZW5kZXJlZCwgd2Ugb25seSB0cmlnZ2VyIHRoZSBtZXRob2QgZnJvbSB0aGUgbGFzdCBvbmUuXG4gICAgLy8gVGhpcyBpcyBlbnN1cmVkIGJ5IGtlZXBpbmcgdGhlIGxhc3QgdW5mbHVzaGVkIGB1cGRhdGVIZWFkYCBpbiB0aGUgYF9wZW5kaW5nVXBkYXRlYFxuICAgIC8vIHNpbmdsZXRvbiBpbiB0aGUgbGF5b3V0IGVmZmVjdCBwYXNzLCBhbmQgYWN0dWFsbHkgdHJpZ2dlciBpdCBpbiB0aGUgZWZmZWN0IHBhc3MuXG4gICAgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIGlmIChoZWFkTWFuYWdlcikge1xuICAgICAgICAgICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICB1c2VDbGllbnRPbmx5RWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSkge1xuICAgICAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKTtcbiAgICAgICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSkge1xuICAgICAgICAgICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBudWxsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaWRlLWVmZmVjdC5qcy5tYXAiXSwibmFtZXMiOlsiQ2hpbGRyZW4iLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJpc1NlcnZlciIsInVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QiLCJ1c2VDbGllbnRPbmx5RWZmZWN0IiwiU2lkZUVmZmVjdCIsInByb3BzIiwiaGVhZE1hbmFnZXIiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImVtaXRDaGFuZ2UiLCJtb3VudGVkSW5zdGFuY2VzIiwiaGVhZEVsZW1lbnRzIiwidG9BcnJheSIsIkFycmF5IiwiZnJvbSIsImZpbHRlciIsIkJvb2xlYW4iLCJ1cGRhdGVIZWFkIiwiX2hlYWRNYW5hZ2VyX21vdW50ZWRJbnN0YW5jZXMiLCJhZGQiLCJjaGlsZHJlbiIsImRlbGV0ZSIsIl9wZW5kaW5nVXBkYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/side-effect.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/utils.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/utils.js ***!
- \************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DecodeError: () => (/* binding */ DecodeError),\n/* harmony export */ MiddlewareNotFoundError: () => (/* binding */ MiddlewareNotFoundError),\n/* harmony export */ MissingStaticPage: () => (/* binding */ MissingStaticPage),\n/* harmony export */ NormalizeError: () => (/* binding */ NormalizeError),\n/* harmony export */ PageNotFoundError: () => (/* binding */ PageNotFoundError),\n/* harmony export */ SP: () => (/* binding */ SP),\n/* harmony export */ ST: () => (/* binding */ ST),\n/* harmony export */ WEB_VITALS: () => (/* binding */ WEB_VITALS),\n/* harmony export */ execOnce: () => (/* binding */ execOnce),\n/* harmony export */ getDisplayName: () => (/* binding */ getDisplayName),\n/* harmony export */ getLocationOrigin: () => (/* binding */ getLocationOrigin),\n/* harmony export */ getURL: () => (/* binding */ getURL),\n/* harmony export */ isAbsoluteUrl: () => (/* binding */ isAbsoluteUrl),\n/* harmony export */ isResSent: () => (/* binding */ isResSent),\n/* harmony export */ loadGetInitialProps: () => (/* binding */ loadGetInitialProps),\n/* harmony export */ normalizeRepeatedSlashes: () => (/* binding */ normalizeRepeatedSlashes),\n/* harmony export */ stringifyError: () => (/* binding */ stringifyError)\n/* harmony export */ });\n/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */ const WEB_VITALS = [\n \"CLS\",\n \"FCP\",\n \"FID\",\n \"INP\",\n \"LCP\",\n \"TTFB\"\n];\n/**\n * Utils\n */ function execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : \"\");\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === \"string\" ? Component : Component.displayName || Component.name || \"Unknown\";\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split(\"?\");\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, \"/\").replace(/\\/\\/+/g, \"/\") + (urlParts[1] ? \"?\" + urlParts.slice(1).join(\"?\") : \"\");\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw new Error(message);\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== \"undefined\";\nconst ST = SP && [\n \"mark\",\n \"measure\",\n \"getEntriesByName\"\n].every((method)=>typeof performance[method] === \"function\");\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = \"ENOENT\";\n this.name = \"PageNotFoundError\";\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = \"ENOENT\";\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Q0FHQyxHQUFVLE1BQU1BLGFBQWE7SUFDMUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0gsQ0FBQztBQUNGOztDQUVDLEdBQVUsU0FBU0MsU0FBU0MsRUFBRTtJQUMzQixJQUFJQyxPQUFPO0lBQ1gsSUFBSUM7SUFDSixPQUFPO1FBQ0gsSUFBSSxJQUFJQyxPQUFPQyxVQUFVQyxNQUFNLEVBQUVDLE9BQU8sSUFBSUMsTUFBTUosT0FBT0ssT0FBTyxHQUFHQSxPQUFPTCxNQUFNSyxPQUFPO1lBQ25GRixJQUFJLENBQUNFLEtBQUssR0FBR0osU0FBUyxDQUFDSSxLQUFLO1FBQ2hDO1FBQ0EsSUFBSSxDQUFDUCxNQUFNO1lBQ1BBLE9BQU87WUFDUEMsU0FBU0YsTUFBTU07UUFDbkI7UUFDQSxPQUFPSjtJQUNYO0FBQ0o7QUFDQSwwREFBMEQ7QUFDMUQsZ0VBQWdFO0FBQ2hFLE1BQU1PLHFCQUFxQjtBQUNwQixNQUFNQyxnQkFBZ0IsQ0FBQ0MsTUFBTUYsbUJBQW1CRyxJQUFJLENBQUNELEtBQUs7QUFDMUQsU0FBU0U7SUFDWixNQUFNLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFBUTtJQUNwRCxPQUFPSixXQUFXLE9BQU9DLFdBQVlDLENBQUFBLE9BQU8sTUFBTUEsT0FBTyxFQUFDO0FBQzlEO0FBQ08sU0FBU0c7SUFDWixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHSCxPQUFPQyxRQUFRO0lBQ2hDLE1BQU1HLFNBQVNSO0lBQ2YsT0FBT08sS0FBS0UsU0FBUyxDQUFDRCxPQUFPaEIsTUFBTTtBQUN2QztBQUNPLFNBQVNrQixlQUFlQyxTQUFTO0lBQ3BDLE9BQU8sT0FBT0EsY0FBYyxXQUFXQSxZQUFZQSxVQUFVQyxXQUFXLElBQUlE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S0MsU0FBUyxDQUFDO1FBQ2xCeEIsU0FBU3NCLE1BQU10QixPQUFPO1FBQ3RCeUIsT0FBT0gsTUFBTUcsS0FBSztJQUN0QjtBQUNKLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3V0aWxzLmpzPzQ5ZjEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqLyBleHBvcnQgY29uc3QgV0VCX1ZJVEFMUyA9IFtcbiAgICBcIkNMU1wiLFxuICAgIFwiRkNQXCIsXG4gICAgXCJGSURcIixcbiAgICBcIklOUFwiLFxuICAgIFwiTENQXCIsXG4gICAgXCJUVEZCXCJcbl07XG4vKipcbiAqIFV0aWxzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGV4ZWNPbmNlKGZuKSB7XG4gICAgbGV0IHVzZWQgPSBmYWxzZTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5Kyspe1xuICAgICAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXVzZWQpIHtcbiAgICAgICAgICAgIHVzZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufVxuLy8gU2NoZW1lOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMVxuLy8gQWJzb2x1dGUgVVJMOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTQuM1xuY29uc3QgQUJTT0xVVEVfVVJMX1JFR0VYID0gL15bYS16QS1aXVthLXpBLVpcXGQrXFwtLl0qPzovO1xuZXhwb3J0IGNvbnN0IGlzQWJzb2x1dGVVcmwgPSAodXJsKT0+QUJTT0xVVEVfVVJMX1JFR0VYLnRlc3QodXJsKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgICBjb25zdCB7IHByb3RvY29sLCBob3N0bmFtZSwgcG9ydCB9ID0gd2luZG93LmxvY2F0aW9uO1xuICAgIHJldHVybiBwcm90b2NvbCArIFwiLy9cIiArIGhvc3RuYW1lICsgKHBvcnQgPyBcIjpcIiArIHBvcnQgOiBcIlwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gICAgY29uc3QgeyBocmVmIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgY29uc3Qgb3JpZ2luID0gZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICByZXR1cm4gaHJlZi5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzcGxheU5hbWUoQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09IFwic3RyaW5nXCIgPyBDb21wb25lbnQgOiBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgXCJVbmtub3duXCI7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNSZXNTZW50KHJlcykge1xuICAgIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50O1xufVxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmwpIHtcbiAgICBjb25zdCB1cmxQYXJ0cyA9IHVybC5zcGxpdChcIj9cIik7XG4gICAgY29uc3QgdXJsTm9RdWVyeSA9IHVybFBhcnRzWzBdO1xuICAgIHJldHVybiB1cmxOb1F1ZXJ5Ly8gZmlyc3Qgd2UgcmVwbGFjZSBhbnkgbm9uLWVuY29kZWQgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkXG4gICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpLnJlcGxhY2UoL1xcL1xcLysvZywgXCIvXCIpICsgKHVybFBhcnRzWzFdID8gXCI/XCIgKyB1cmxQYXJ0cy5zbGljZSgxKS5qb2luKFwiP1wiKSA6IFwiXCIpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBjdHgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIHZhciBfQXBwX3Byb3RvdHlwZTtcbiAgICAgICAgaWYgKChfQXBwX3Byb3RvdHlwZSA9IEFwcC5wcm90b3R5cGUpID09IG51bGwgPyB2b2lkIDAgOiBfQXBwX3Byb3RvdHlwZS5nZXRJbml0aWFsUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnXCInICsgZ2V0RGlzcGxheU5hbWUoQXBwKSArICcuZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHdoZW4gY2FsbGVkIGZyb20gX2FwcCBgY3R4YCBpcyBuZXN0ZWQgaW4gYGN0eGBcbiAgICBjb25zdCByZXMgPSBjdHgucmVzIHx8IGN0eC5jdHggJiYgY3R4LmN0eC5yZXM7XG4gICAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGFnZVByb3BzOiBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKGN0eC5Db21wb25lbnQsIGN0eC5jdHgpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgcHJvcHMgPSBhd2FpdCBBcHAuZ2V0SW5pdGlhbFByb3BzKGN0eCk7XG4gICAgaWYgKHJlcyAmJiBpc1Jlc1NlbnQocmVzKSkge1xuICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgfVxuICAgIGlmICghcHJvcHMpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdcIicgKyBnZXREaXNwbGF5TmFtZShBcHApICsgJy5nZXRJbml0aWFsUHJvcHMoKVwiIHNob3VsZCByZXNvbHZlIHRvIGFuIG9iamVjdC4gQnV0IGZvdW5kIFwiJyArIHByb3BzICsgJ1wiIGluc3RlYWQuJztcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoID09PSAwICYmICFjdHguY3R4KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJcIiArIGdldERpc3BsYXlOYW1lKEFwcCkgKyBcIiByZXR1cm5lZCBhbiBlbXB0eSBvYmplY3QgZnJvbSBgZ2V0SW5pdGlhbFByb3BzYC4gVGhpcyBkZS1vcHRpbWl6ZXMgYW5kIHByZXZlbnRzIGF1dG9tYXRpYyBzdGF0aWMgb3B0aW1pemF0aW9uLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9lbXB0eS1vYmplY3QtZ2V0SW5pdGlhbFByb3BzXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wcztcbn1cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gXCJ1bmRlZmluZWRcIjtcbmV4cG9ydCBjb25zdCBTVCA9IFNQICYmIFtcbiAgICBcIm1hcmtcIixcbiAgICBcIm1lYXN1cmVcIixcbiAgICBcImdldEVudHJpZXNCeU5hbWVcIlxuXS5ldmVyeSgobWV0aG9kKT0+dHlwZW9mIHBlcmZvcm1hbmNlW21ldGhvZF0gPT09IFwiZnVuY3Rpb25cIik7XG5leHBvcnQgY2xhc3MgRGVjb2RlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG5leHBvcnQgY2xhc3MgTm9ybWFsaXplRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocGFnZSl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29kZSA9IFwiRU5PRU5UXCI7XG4gICAgICAgIHRoaXMubmFtZSA9IFwiUGFnZU5vdEZvdW5kRXJyb3JcIjtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gXCJDYW5ub3QgZmluZCBtb2R1bGUgZm9yIHBhZ2U6IFwiICsgcGFnZTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWlzc2luZ1N0YXRpY1BhZ2UgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocGFnZSwgbWVzc2FnZSl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IFwiRmFpbGVkIHRvIGxvYWQgc3RhdGljIGZpbGUgZm9yIHBhZ2U6IFwiICsgcGFnZSArIFwiIFwiICsgbWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb2RlID0gXCJFTk9FTlRcIjtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gXCJDYW5ub3QgZmluZCB0aGUgbWlkZGxld2FyZSBtb2R1bGVcIjtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICBzdGFjazogZXJyb3Iuc3RhY2tcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbIldFQl9WSVRBTFMiLCJleGVjT25jZSIsImZuIiwidXNlZCIsInJlc3VsdCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwiaXNBYnNvbHV0ZVVybCIsInVybCIsInRlc3QiLCJnZXRMb2NhdGlvbk9yaWdpbiIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJnZXRVUkwiLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwiZ2V0RGlzcGxheU5hbWUiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJpc1Jlc1NlbnQiLCJyZXMiLCJmaW5pc2hlZCIsImhlYWRlcnNTZW50Iiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwidXJsUGFydHMiLCJzcGxpdCIsInVybE5vUXVlcnkiLCJyZXBsYWNlIiwic2xpY2UiLCJqb2luIiwibG9hZEdldEluaXRpYWxQcm9wcyIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJfQXBwX3Byb3RvdHlwZSIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwiU1AiLCJwZXJmb3JtYW5jZSIsIlNUIiwiZXZlcnkiLCJtZXRob2QiLCJEZWNvZGVFcnJvciIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJjb25zdHJ1Y3RvciIsInBhZ2UiLCJjb2RlIiwiTWlzc2luZ1N0YXRpY1BhZ2UiLCJNaWRkbGV3YXJlTm90Rm91bmRFcnJvciIsInN0cmluZ2lmeUVycm9yIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/utils.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ warnOnce: () => (/* binding */ warnOnce)\n/* harmony export */ });\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n}\n //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUlBLFdBQVcsQ0FBQ0MsS0FBSztBQUNyQixJQUFJQyxJQUFxQyxFQUFFO0lBQ3ZDLE1BQU1DLFdBQVcsSUFBSUM7SUFDckJKLFdBQVcsQ0FBQ0s7UUFDUixJQUFJLENBQUNGLFNBQVNHLEdBQUcsQ0FBQ0QsTUFBTTtZQUNwQkUsUUFBUUMsSUFBSSxDQUFDSDtRQUNqQjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2pCO0FBQ0o7QUFDb0IsQ0FFcEIscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3V0aWxzL3dhcm4tb25jZS5qcz8zZTM0Il0sInNvdXJjZXNDb250ZW50IjpbImxldCB3YXJuT25jZSA9IChfKT0+e307XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgY29uc3Qgd2FybmluZ3MgPSBuZXcgU2V0KCk7XG4gICAgd2Fybk9uY2UgPSAobXNnKT0+e1xuICAgICAgICBpZiAoIXdhcm5pbmdzLmhhcyhtc2cpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4obXNnKTtcbiAgICAgICAgfVxuICAgICAgICB3YXJuaW5ncy5hZGQobXNnKTtcbiAgICB9O1xufVxuZXhwb3J0IHsgd2Fybk9uY2UgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2Fybi1vbmNlLmpzLm1hcCJdLCJuYW1lcyI6WyJ3YXJuT25jZSIsIl8iLCJwcm9jZXNzIiwid2FybmluZ3MiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwid2FybiIsImFkZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/experimental/testmode/context.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/experimental/testmode/context.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n withRequest: function() {\n return withRequest;\n },\n getTestReqInfo: function() {\n return getTestReqInfo;\n }\n});\nconst _nodeasync_hooks = __webpack_require__(/*! node:async_hooks */ \"node:async_hooks\");\nconst testStorage = new _nodeasync_hooks.AsyncLocalStorage();\nfunction extractTestInfoFromRequest(req, reader) {\n const proxyPortHeader = reader.header(req, \"next-test-proxy-port\");\n if (!proxyPortHeader) {\n return undefined;\n }\n const url = reader.url(req);\n const proxyPort = Number(proxyPortHeader);\n const testData = reader.header(req, \"next-test-data\") || \"\";\n return {\n url,\n proxyPort,\n testData\n };\n}\nfunction withRequest(req, reader, fn) {\n const testReqInfo = extractTestInfoFromRequest(req, reader);\n if (!testReqInfo) {\n return fn();\n }\n return testStorage.run(testReqInfo, fn);\n}\nfunction getTestReqInfo(req, reader) {\n const testReqInfo = testStorage.getStore();\n if (testReqInfo) {\n return testReqInfo;\n }\n if (req && reader) {\n return extractTestInfoFromRequest(req, reader);\n }\n return undefined;\n} //# sourceMappingURL=context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU87QUFDWCxDQUFDLEVBQUM7QUFDRixLQUFNQyxDQUFBQSxDQUdOO0FBQ0EsU0FBU0csUUFBUUMsTUFBTSxFQUFFQyxHQUFHO0lBQ3hCLElBQUksSUFBSUMsUUFBUUQsSUFBSVQsT0FBT0MsY0FBYyxDQUFDTyxRQUFRRSxNQUFNO1FBQ3BEQyxZQUFZO1FBQ1pDLEtBQUtILEdBQUcsQ0FBQ0MsS0FBSztJQUNsQjtBQUNKO0FBQ0FILFFBQVFMLFNBQVM7SUFDYkcsYUFBYTtRQUNULE9BQU9BO0lBQ1g7SUFDQUMsZ0JBQWdCO1FBQ1osT0FBT0E7SUFDWDtBQUNKO0FBQ0EsTUFBTU8sbUJBQW1CQyxtQkFBT0EsQ0FBQywwQ0FBa0I7QUFDbkQsTUFBTUMsY0FBYyxJQUFJRixpQkFBaUJHLGlCQUFpQjtBQUMxRCxTQUFTQywyQkFBMkJDLEdBQUcsRUFBRUMsTUFBTTtJQUMzQyxNQUFNQyxrQkFBa0JELE9BQU9FLE1BQU0sQ0FBQ0gsS0FBSztJQUMzQyxJQUFJLENBQUNFLGlCQUFpQjtRQUNsQixPQUFPRTtJQUNYO0lBQ0EsTUFBTUMsTUFBTUosT0FBT0ksR0FBRyxDQUFDTDtJQUN2QixNQUFNTSxZQUFZQyxPQUFPTDtJQUN6QixNQUFNTSxXQUFXUCxPQUFPRSxNQUFNLENBQUNILEtBQUsscUJBQXFCO0lBQ3pELE9BQU87UUFDSEs7UUFDQUM7UUFDQUU7SUFDSjtBQUNKO0FBQ0EsU0FBU3JCLFlBQVlhLEdBQUcsRUFBRUMsTUFBTSxFQUFFUSxFQUFFO0lBQ2hDLE1BQU1DLGNBQWNYLDJCQUEyQkMsS0FBS0M7SUFDcEQsSUFBSSxDQUFDUyxhQUFhO1FBQ2QsT0FBT0Q7SUFDWDtJQUNBLE9BQU9aLFlBQVljLEdBQUcsQ0FBQ0QsYUFBYUQ7QUFDeEM7QUFDQSxTQUFTckIsZUFBZVksR0FBRyxFQUFFQyxNQUFNO0lBQy9CLE1BQU1TLGNBQWNiLFlBQVllLFFBQVE7SUFDeEMsSUFBSUYsYUFBYTtRQUNiLE9BQU9BO0lBQ1g7SUFDQSxJQUFJVixPQUFPQyxRQUFRO1FBQ2YsT0FBT0YsMkJBQTJCQyxLQUFLQztJQUMzQztJQUNBLE9BQU9HO0FBQ1gsRUFFQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXhwZXJpbWVudGFsL3Rlc3Rtb2RlL2NvbnRleHQuanM/MjdmYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHdpdGhSZXF1ZXN0OiBudWxsLFxuICAgIGdldFRlc3RSZXFJbmZvOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHdpdGhSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdpdGhSZXF1ZXN0O1xuICAgIH0sXG4gICAgZ2V0VGVzdFJlcUluZm86IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0VGVzdFJlcUluZm87XG4gICAgfVxufSk7XG5jb25zdCBfbm9kZWFzeW5jX2hvb2tzID0gcmVxdWlyZShcIm5vZGU6YXN5bmNfaG9va3NcIik7XG5jb25zdCB0ZXN0U3RvcmFnZSA9IG5ldyBfbm9kZWFzeW5jX2hvb2tzLkFzeW5jTG9jYWxTdG9yYWdlKCk7XG5mdW5jdGlvbiBleHRyYWN0VGVzdEluZm9Gcm9tUmVxdWVzdChyZXEsIHJlYWRlcikge1xuICAgIGNvbnN0IHByb3h5UG9ydEhlYWRlciA9IHJlYWRlci5oZWFkZXIocmVxLCBcIm5leHQtdGVzdC1wcm94eS1wb3J0XCIpO1xuICAgIGlmICghcHJveHlQb3J0SGVhZGVyKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHVybCA9IHJlYWRlci51cmwocmVxKTtcbiAgICBjb25zdCBwcm94eVBvcnQgPSBOdW1iZXIocHJveHlQb3J0SGVhZGVyKTtcbiAgICBjb25zdCB0ZXN0RGF0YSA9IHJlYWRlci5oZWFkZXIocmVxLCBcIm5leHQtdGVzdC1kYXRhXCIpIHx8IFwiXCI7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsLFxuICAgICAgICBwcm94eVBvcnQsXG4gICAgICAgIHRlc3REYXRhXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHdpdGhSZXF1ZXN0KHJlcSwgcmVhZGVyLCBmbikge1xuICAgIGNvbnN0IHRlc3RSZXFJbmZvID0gZXh0cmFjdFRlc3RJbmZvRnJvbVJlcXVlc3QocmVxLCByZWFkZXIpO1xuICAgIGlmICghdGVzdFJlcUluZm8pIHtcbiAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgfVxuICAgIHJldHVybiB0ZXN0U3RvcmFnZS5ydW4odGVzdFJlcUluZm8sIGZuKTtcbn1cbmZ1bmN0aW9uIGdldFRlc3RSZXFJbmZvKHJlcSwgcmVhZGVyKSB7XG4gICAgY29uc3QgdGVzdFJlcUluZm8gPSB0ZXN0U3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh0ZXN0UmVxSW5mbykge1xuICAgICAgICByZXR1cm4gdGVzdFJlcUluZm87XG4gICAgfVxuICAgIGlmIChyZXEgJiYgcmVhZGVyKSB7XG4gICAgICAgIHJldHVybiBleHRyYWN0VGVzdEluZm9Gcm9tUmVxdWVzdChyZXEsIHJlYWRlcik7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibW9kdWxlIiwid2l0aFJlcXVlc3QiLCJnZXRUZXN0UmVxSW5mbyIsIl9leHBvcnQiLCJ0YXJnZXQiLCJhbGwiLCJuYW1lIiwiZW51bWVyYWJsZSIsImdldCIsIl9ub2RlYXN5bmNfaG9va3MiLCJyZXF1aXJlIiwidGVzdFN0b3JhZ2UiLCJBc3luY0xvY2FsU3RvcmFnZSIsImV4dHJhY3RUZXN0SW5mb0Zyb21SZXF1ZXN0IiwicmVxIiwicmVhZGVyIiwicHJveHlQb3J0SGVhZGVyIiwiaGVhZGVyIiwidW5kZWZpbmVkIiwidXJsIiwicHJveHlQb3J0IiwiTnVtYmVyIiwidGVzdERhdGEiLCJmbiIsInRlc3RSZXFJbmZvIiwicnVuIiwiZ2V0U3RvcmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/experimental/testmode/context.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/experimental/testmode/fetch.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/experimental/testmode/fetch.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"buffer\")[\"Buffer\"];\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n reader: function() {\n return reader;\n },\n handleFetch: function() {\n return handleFetch;\n },\n interceptFetch: function() {\n return interceptFetch;\n }\n});\nconst _context = __webpack_require__(/*! ./context */ \"(ssr)/../../node_modules/next/dist/experimental/testmode/context.js\");\nconst reader = {\n url (req) {\n return req.url;\n },\n header (req, name) {\n return req.headers.get(name);\n }\n};\nfunction getTestStack() {\n let stack = (new Error().stack ?? \"\").split(\"\\n\");\n // Skip the first line and find first non-empty line.\n for(let i = 1; i < stack.length; i++){\n if (stack[i].length > 0) {\n stack = stack.slice(i);\n break;\n }\n }\n // Filter out franmework lines.\n stack = stack.filter((f)=>!f.includes(\"/next/dist/\"));\n // At most 5 lines.\n stack = stack.slice(0, 5);\n // Cleanup some internal info and trim.\n stack = stack.map((s)=>s.replace(\"webpack-internal:///(rsc)/\", \"\").trim());\n return stack.join(\" \");\n}\nasync function buildProxyRequest(testData, request) {\n const { url, method, headers, body, cache, credentials, integrity, mode, redirect, referrer, referrerPolicy } = request;\n return {\n testData,\n api: \"fetch\",\n request: {\n url,\n method,\n headers: [\n ...Array.from(headers),\n [\n \"next-test-stack\",\n getTestStack()\n ]\n ],\n body: body ? Buffer.from(await request.arrayBuffer()).toString(\"base64\") : null,\n cache,\n credentials,\n integrity,\n mode,\n redirect,\n referrer,\n referrerPolicy\n }\n };\n}\nfunction buildResponse(proxyResponse) {\n const { status, headers, body } = proxyResponse.response;\n return new Response(body ? Buffer.from(body, \"base64\") : null, {\n status,\n headers: new Headers(headers)\n });\n}\nasync function handleFetch(originalFetch, request) {\n const testInfo = (0, _context.getTestReqInfo)(request, reader);\n if (!testInfo) {\n throw new Error(`No test info for ${request.method} ${request.url}`);\n }\n const { testData, proxyPort } = testInfo;\n const proxyRequest = await buildProxyRequest(testData, request);\n const resp = await originalFetch(`http://localhost:${proxyPort}`, {\n method: \"POST\",\n body: JSON.stringify(proxyRequest),\n next: {\n // @ts-ignore\n internal: true\n }\n });\n if (!resp.ok) {\n throw new Error(`Proxy request failed: ${resp.status}`);\n }\n const proxyResponse = await resp.json();\n const { api } = proxyResponse;\n switch(api){\n case \"continue\":\n return originalFetch(request);\n case \"abort\":\n case \"unhandled\":\n throw new Error(`Proxy request aborted [${request.method} ${request.url}]`);\n default:\n break;\n }\n return buildResponse(proxyResponse);\n}\nfunction interceptFetch(originalFetch) {\n __webpack_require__.g.fetch = function testFetch(input, init) {\n var _init_next;\n // Passthrough internal requests.\n // @ts-ignore\n if (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) {\n return originalFetch(input, init);\n }\n return handleFetch(originalFetch, new Request(input, init));\n };\n return ()=>{\n __webpack_require__.g.fetch = originalFetch;\n };\n} //# sourceMappingURL=fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvZmV0Y2guanMiLCJtYXBwaW5ncyI6IjtBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTztBQUNYLENBQUMsRUFBQztBQUNGLEtBQU1DLENBQUFBLENBSU47QUFDQSxTQUFTSSxRQUFRQyxNQUFNLEVBQUVDLEdBQUc7SUFDeEIsSUFBSSxJQUFJQyxRQUFRRCxJQUFJVixPQUFPQyxjQUFjLENBQUNRLFFBQVFFLE1BQU07UUFDcERDLFlBQVk7UUFDWkMsS0FBS0gsR0FBRyxDQUFDQyxLQUFLO0lBQ2xCO0FBQ0o7QUFDQUgsUUFBUU4sU0FBUztJQUNiRyxRQUFRO1FBQ0osT0FBT0E7SUFDWDtJQUNBQyxhQUFhO1FBQ1QsT0FBT0E7SUFDWDtJQUNBQyxnQkFBZ0I7UUFDWixPQUFPQTtJQUNYO0FBQ0o7QUFDQSxNQUFNTyxXQUFXQyxtQkFBT0EsQ0FBQyxzRkFBVztBQUNwQyxNQUFNVixTQUFTO0lBQ1hXLEtBQUtDLEdBQUc7UUFDSixPQUFPQSxJQUFJRCxHQUFHO0lBQ2xCO0lBQ0FFLFFBQVFELEdBQUcsRUFBRU4sSUFBSTtRQUNiLE9BQU9NLElBQUlFLE9BQU8sQ0FBQ04sR0FBRyxDQUFDRjtJQUMzQjtBQUNKO0FBQ0EsU0FBU1M7SUFDTCxJQUFJQyxRQUFRLENBQUMsSUFBSUMsUUFBUUQsS0FBSyxJQUFJLEVBQUMsRUFBR0UsS0FBSyxDQUFDO0lBQzVDLHFEQUFxRDtJQUNyRCxJQUFJLElBQUlDLElBQUksR0FBR0EsSUFBSUgsTUFBTUksTUFBTSxFQUFFRCxJQUFJO1FBQ2pDLElBQUlILEtBQUssQ0FBQ0csRUFBRSxDQUFDQyxNQUFNLEdBQUcsR0FBRztZQUNyQkosUUFBUUEsTUFBTUssS0FBSyxDQUFDRjtZQUNwQjtRQUNKO0lBQ0o7SUFDQSwrQkFBK0I7SUFDL0JILFFBQVFBLE1BQU1NLE1BQU0sQ0FBQyxDQUFDQyxJQUFJLENBQUNBLEVBQUVDLFFBQVEsQ0FB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QUssSUFBSVMsV0FBV1IsUUFBUSxFQUFFO1lBQ3pGLE9BQU9ULGNBQWNlLE9BQU9DO1FBQ2hDO1FBQ0EsT0FBT3JFLFlBQVlxRCxlQUFlLElBQUlrQixRQUFRSCxPQUFPQztJQUN6RDtJQUNBLE9BQU87UUFDSEoscUJBQU1BLENBQUNDLEtBQUssR0FBR2I7SUFDbkI7QUFDSixFQUVBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvZmV0Y2guanM/YTk0MiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHJlYWRlcjogbnVsbCxcbiAgICBoYW5kbGVGZXRjaDogbnVsbCxcbiAgICBpbnRlcmNlcHRGZXRjaDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICByZWFkZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVhZGVyO1xuICAgIH0sXG4gICAgaGFuZGxlRmV0Y2g6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGFuZGxlRmV0Y2g7XG4gICAgfSxcbiAgICBpbnRlcmNlcHRGZXRjaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnRlcmNlcHRGZXRjaDtcbiAgICB9XG59KTtcbmNvbnN0IF9jb250ZXh0ID0gcmVxdWlyZShcIi4vY29udGV4dFwiKTtcbmNvbnN0IHJlYWRlciA9IHtcbiAgICB1cmwgKHJlcSkge1xuICAgICAgICByZXR1cm4gcmVxLnVybDtcbiAgICB9LFxuICAgIGhlYWRlciAocmVxLCBuYW1lKSB7XG4gICAgICAgIHJldHVybiByZXEuaGVhZGVycy5nZXQobmFtZSk7XG4gICAgfVxufTtcbmZ1bmN0aW9uIGdldFRlc3RTdGFjaygpIHtcbiAgICBsZXQgc3RhY2sgPSAobmV3IEVycm9yKCkuc3RhY2sgPz8gXCJcIikuc3BsaXQoXCJcXG5cIik7XG4gICAgLy8gU2tpcCB0aGUgZmlyc3QgbGluZSBhbmQgZmluZCBmaXJzdCBub24tZW1wdHkgbGluZS5cbiAgICBmb3IobGV0IGkgPSAxOyBpIDwgc3RhY2subGVuZ3RoOyBpKyspe1xuICAgICAgICBpZiAoc3RhY2tbaV0ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZShpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEZpbHRlciBvdXQgZnJhbm1ld29yayBsaW5lcy5cbiAgICBzdGFjayA9IHN0YWNrLmZpbHRlcigoZik9PiFmLmluY2x1ZGVzKFwiL25leHQvZGlzdC9cIikpO1xuICAgIC8vIEF0IG1vc3QgNSBsaW5lcy5cbiAgICBzdGFjayA9IHN0YWNrLnNsaWNlKDAsIDUpO1xuICAgIC8vIENsZWFudXAgc29tZSBpbnRlcm5hbCBpbmZvIGFuZCB0cmltLlxuICAgIHN0YWNrID0gc3RhY2subWFwKChzKT0+cy5yZXBsYWNlKFwid2VicGFjay1pbnRlcm5hbDovLy8ocnNjKS9cIiwgXCJcIikudHJpbSgpKTtcbiAgICByZXR1cm4gc3RhY2suam9pbihcIiAgICBcIik7XG59XG5hc3luYyBmdW5jdGlvbiBidWlsZFByb3h5UmVxdWVzdCh0ZXN0RGF0YSwgcmVxdWVzdCkge1xuICAgIGNvbnN0IHsgdXJsLCBtZXRob2QsIGhlYWRlcnMsIGJvZHksIGNhY2hlLCBjcmVkZW50aWFscywgaW50ZWdyaXR5LCBtb2RlLCByZWRpcmVjdCwgcmVmZXJyZXIsIHJlZmVycmVyUG9saWN5IH0gPSByZXF1ZXN0O1xuICAgIHJldHVybiB7XG4gICAgICAgIHRlc3REYXRhLFxuICAgICAgICBhcGk6IFwiZmV0Y2hcIixcbiAgICAgICAgcmVxdWVzdDoge1xuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgaGVhZGVyczogW1xuICAgICAgICAgICAgICAgIC4uLkFycmF5LmZyb20oaGVhZGVycyksXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBcIm5leHQtdGVzdC1zdGFja1wiLFxuICAgICAgICAgICAgICAgICAgICBnZXRUZXN0U3RhY2soKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBib2R5OiBib2R5ID8gQnVmZmVyLmZyb20oYXdhaXQgcmVxdWVzdC5hcnJheUJ1ZmZlcigpKS50b1N0cmluZyhcImJhc2U2NFwiKSA6IG51bGwsXG4gICAgICAgICAgICBjYWNoZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgaW50ZWdyaXR5LFxuICAgICAgICAgICAgbW9kZSxcbiAgICAgICAgICAgIHJlZGlyZWN0LFxuICAgICAgICAgICAgcmVmZXJyZXIsXG4gICAgICAgICAgICByZWZlcnJlclBvbGljeVxuICAgICAgICB9XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGJ1aWxkUmVzcG9uc2UocHJveHlSZXNwb25zZSkge1xuICAgIGNvbnN0IHsgc3RhdHVzLCBoZWFkZXJzLCBib2R5IH0gPSBwcm94eVJlc3BvbnNlLnJlc3BvbnNlO1xuICAgIHJldHVybiBuZXcgUmVzcG9uc2UoYm9keSA/IEJ1ZmZlci5mcm9tKGJvZHksIFwiYmFzZTY0XCIpIDogbnVsbCwge1xuICAgICAgICBzdGF0dXMsXG4gICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKGhlYWRlcnMpXG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBoYW5kbGVGZXRjaChvcmlnaW5hbEZldGNoLCByZXF1ZXN0KSB7XG4gICAgY29uc3QgdGVzdEluZm8gPSAoMCwgX2NvbnRleHQuZ2V0VGVzdFJlcUluZm8pKHJlcXVlc3QsIHJlYWRlcik7XG4gICAgaWYgKCF0ZXN0SW5mbykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHRlc3QgaW5mbyBmb3IgJHtyZXF1ZXN0Lm1ldGhvZH0gJHtyZXF1ZXN0LnVybH1gKTtcbiAgICB9XG4gICAgY29uc3QgeyB0ZXN0RGF0YSwgcHJveHlQb3J0IH0gPSB0ZXN0SW5mbztcbiAgICBjb25zdCBwcm94eVJlcXVlc3QgPSBhd2FpdCBidWlsZFByb3h5UmVxdWVzdCh0ZXN0RGF0YSwgcmVxdWVzdCk7XG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IG9yaWdpbmFsRmV0Y2goYGh0dHA6Ly9sb2NhbGhvc3Q6JHtwcm94eVBvcnR9YCwge1xuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwcm94eVJlcXVlc3QpLFxuICAgICAgICBuZXh0OiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBpbnRlcm5hbDogdHJ1ZVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFyZXNwLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJveHkgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcC5zdGF0dXN9YCk7XG4gICAgfVxuICAgIGNvbnN0IHByb3h5UmVzcG9uc2UgPSBhd2FpdCByZXNwLmpzb24oKTtcbiAgICBjb25zdCB7IGFwaSB9ID0gcHJveHlSZXNwb25zZTtcbiAgICBzd2l0Y2goYXBpKXtcbiAgICAgICAgY2FzZSBcImNvbnRpbnVlXCI6XG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxGZXRjaChyZXF1ZXN0KTtcbiAgICAgICAgY2FzZSBcImFib3J0XCI6XG4gICAgICAgIGNhc2UgXCJ1bmhhbmRsZWRcIjpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJveHkgcmVxdWVzdCBhYm9ydGVkIFske3JlcXVlc3QubWV0aG9kfSAke3JlcXVlc3QudXJsfV1gKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRSZXNwb25zZShwcm94eVJlc3BvbnNlKTtcbn1cbmZ1bmN0aW9uIGludGVyY2VwdEZldGNoKG9yaWdpbmFsRmV0Y2gpIHtcbiAgICBnbG9iYWwuZmV0Y2ggPSBmdW5jdGlvbiB0ZXN0RmV0Y2goaW5wdXQsIGluaXQpIHtcbiAgICAgICAgdmFyIF9pbml0X25leHQ7XG4gICAgICAgIC8vIFBhc3N0aHJvdWdoIGludGVybmFsIHJlcXVlc3RzLlxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmIChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbmV4dCA9IGluaXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X25leHQuaW50ZXJuYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEZldGNoKGlucHV0LCBpbml0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFuZGxlRmV0Y2gob3JpZ2luYWxGZXRjaCwgbmV3IFJlcXVlc3QoaW5wdXQsIGluaXQpKTtcbiAgICB9O1xuICAgIHJldHVybiAoKT0+e1xuICAgICAgICBnbG9iYWwuZmV0Y2ggPSBvcmlnaW5hbEZldGNoO1xuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZldGNoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm1vZHVsZSIsInJlYWRlciIsImhhbmRsZUZldGNoIiwiaW50ZXJjZXB0RmV0Y2giLCJfZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImVudW1lcmFibGUiLCJnZXQiLCJfY29udGV4dCIsInJlcXVpcmUiLCJ1cmwiLCJyZXEiLCJoZWFkZXIiLCJoZWFkZXJzIiwiZ2V0VGVzdFN0YWNrIiwic3RhY2siLCJFcnJvciIsInNwbGl0IiwiaSIsImxlbmd0aCIsInNsaWNlIiwiZmlsdGVyIiwiZiIsImluY2x1ZGVzIiwibWFwIiwicyIsInJlcGxhY2UiLCJ0cmltIiwiam9pbiIsImJ1aWxkUHJveHlSZXF1ZXN0IiwidGVzdERhdGEiLCJyZXF1ZXN0IiwibWV0aG9kIiwiYm9keSIsImNhY2hlIiwiY3JlZGVudGlhbHMiLCJpbnRlZ3JpdHkiLCJtb2RlIiwicmVkaXJlY3QiLCJyZWZlcnJlciIsInJlZmVycmVyUG9saWN5IiwiYXBpIiwiQXJyYXkiLCJmcm9tIiwiQnVmZmVyIiwiYXJyYXlCdWZmZXIiLCJ0b1N0cmluZyIsImJ1aWxkUmVzcG9uc2UiLCJwcm94eVJlc3BvbnNlIiwic3RhdHVzIiwicmVzcG9uc2UiLCJSZXNwb25zZSIsIkhlYWRlcnMiLCJvcmlnaW5hbEZldGNoIiwidGVzdEluZm8iLCJnZXRUZXN0UmVxSW5mbyIsInByb3h5UG9ydCIsInByb3h5UmVxdWVzdCIsInJlc3AiLCJKU09OIiwic3RyaW5naWZ5IiwibmV4dCIsImludGVybmFsIiwib2siLCJqc29uIiwiZ2xvYmFsIiwiZmV0Y2giLCJ0ZXN0RmV0Y2giLCJpbnB1dCIsImluaXQiLCJfaW5pdF9uZXh0IiwiUmVxdWVzdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/experimental/testmode/fetch.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/experimental/testmode/server-edge.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/next/dist/experimental/testmode/server-edge.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n interceptTestApis: function() {\n return interceptTestApis;\n },\n wrapRequestHandler: function() {\n return wrapRequestHandler;\n }\n});\nconst _context = __webpack_require__(/*! ./context */ \"(ssr)/../../node_modules/next/dist/experimental/testmode/context.js\");\nconst _fetch = __webpack_require__(/*! ./fetch */ \"(ssr)/../../node_modules/next/dist/experimental/testmode/fetch.js\");\nfunction interceptTestApis() {\n return (0, _fetch.interceptFetch)(__webpack_require__.g.fetch);\n}\nfunction wrapRequestHandler(handler) {\n return (req, fn)=>(0, _context.withRequest)(req, _fetch.reader, ()=>handler(req, fn));\n} //# sourceMappingURL=server-edge.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9leHBlcmltZW50YWwvdGVzdG1vZGUvc2VydmVyLWVkZ2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPO0FBQ1gsQ0FBQyxFQUFDO0FBQ0YsS0FBTUMsQ0FBQUEsQ0FHTjtBQUNBLFNBQVNHLFFBQVFDLE1BQU0sRUFBRUMsR0FBRztJQUN4QixJQUFJLElBQUlDLFFBQVFELElBQUlULE9BQU9DLGNBQWMsQ0FBQ08sUUFBUUUsTUFBTTtRQUNwREMsWUFBWTtRQUNaQyxLQUFLSCxHQUFHLENBQUNDLEtBQUs7SUFDbEI7QUFDSjtBQUNBSCxRQUFRTCxTQUFTO0lBQ2JHLG1CQUFtQjtRQUNmLE9BQU9BO0lBQ1g7SUFDQUMsb0JBQW9CO1FBQ2hCLE9BQU9BO0lBQ1g7QUFDSjtBQUNBLE1BQU1PLFdBQVdDLG1CQUFPQSxDQUFDLHNGQUFXO0FBQ3BDLE1BQU1DLFNBQVNELG1CQUFPQSxDQUFDLGtGQUFTO0FBQ2hDLFNBQVNUO0lBQ0wsT0FBTyxDQUFDLEdBQUdVLE9BQU9DLGNBQWMsRUFBRUMscUJBQU1BLENBQUNDLEtBQUs7QUFDbEQ7QUFDQSxTQUFTWixtQkFBbUJhLE9BQU87SUFDL0IsT0FBTyxDQUFDQyxLQUFLQyxLQUFLLENBQUMsR0FBR1IsU0FBU1MsV0FBVyxFQUFFRixLQUFLTCxPQUFPUSxNQUFNLEVBQUUsSUFBSUosUUFBUUMsS0FBS0M7QUFDckYsRUFFQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXhwZXJpbWVudGFsL3Rlc3Rtb2RlL3NlcnZlci1lZGdlLmpzPzZlN2QiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpbnRlcmNlcHRUZXN0QXBpczogbnVsbCxcbiAgICB3cmFwUmVxdWVzdEhhbmRsZXI6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaW50ZXJjZXB0VGVzdEFwaXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW50ZXJjZXB0VGVzdEFwaXM7XG4gICAgfSxcbiAgICB3cmFwUmVxdWVzdEhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd3JhcFJlcXVlc3RIYW5kbGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnRleHQgPSByZXF1aXJlKFwiLi9jb250ZXh0XCIpO1xuY29uc3QgX2ZldGNoID0gcmVxdWlyZShcIi4vZmV0Y2hcIik7XG5mdW5jdGlvbiBpbnRlcmNlcHRUZXN0QXBpcygpIHtcbiAgICByZXR1cm4gKDAsIF9mZXRjaC5pbnRlcmNlcHRGZXRjaCkoZ2xvYmFsLmZldGNoKTtcbn1cbmZ1bmN0aW9uIHdyYXBSZXF1ZXN0SGFuZGxlcihoYW5kbGVyKSB7XG4gICAgcmV0dXJuIChyZXEsIGZuKT0+KDAsIF9jb250ZXh0LndpdGhSZXF1ZXN0KShyZXEsIF9mZXRjaC5yZWFkZXIsICgpPT5oYW5kbGVyKHJlcSwgZm4pKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VydmVyLWVkZ2UuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibW9kdWxlIiwiaW50ZXJjZXB0VGVzdEFwaXMiLCJ3cmFwUmVxdWVzdEhhbmRsZXIiLCJfZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImVudW1lcmFibGUiLCJnZXQiLCJfY29udGV4dCIsInJlcXVpcmUiLCJfZmV0Y2giLCJpbnRlcmNlcHRGZXRjaCIsImdsb2JhbCIsImZldGNoIiwiaGFuZGxlciIsInJlcSIsImZuIiwid2l0aFJlcXVlc3QiLCJyZWFkZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/experimental/testmode/server-edge.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/style-to-object/cjs/index.js":
-/*!*******************************************************!*\
- !*** ../../node_modules/style-to-object/cjs/index.js ***!
- \*******************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("\nvar __importDefault = (void 0) && (void 0).__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar inline_style_parser_1 = __importDefault(__webpack_require__(/*! inline-style-parser */ \"(ssr)/../../node_modules/inline-style-parser/index.js\"));\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */ function StyleToObject(style, iterator) {\n var styleObject = null;\n if (!style || typeof style !== \"string\") {\n return styleObject;\n }\n var declarations = (0, inline_style_parser_1.default)(style);\n var hasIterator = typeof iterator === \"function\";\n declarations.forEach(function(declaration) {\n if (declaration.type !== \"declaration\") {\n return;\n }\n var property = declaration.property, value = declaration.value;\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n return styleObject;\n}\nexports[\"default\"] = StyleToObject; //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLXRvLW9iamVjdC9janMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixJQUFJQSxrQkFBa0IsQ0FBQyxNQUFHLEtBQUssT0FBRyxFQUFFQSxlQUFlLElBQUssU0FBVUMsR0FBRztJQUNqRSxPQUFPLE9BQVFBLElBQUlDLFVBQVUsR0FBSUQsTUFBTTtRQUFFLFdBQVdBO0lBQUk7QUFDNUQ7QUFDQUUsOENBQTZDO0lBQUVHLE9BQU87QUFBSyxDQUFDLEVBQUM7QUFDN0QsSUFBSUMsd0JBQXdCUCxnQkFBZ0JRLG1CQUFPQSxDQUFDLGtGQUFxQjtBQUN6RTs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0QsU0FBU0MsY0FBY0MsS0FBSyxFQUFFQyxRQUFRO0lBQ2xDLElBQUlDLGNBQWM7SUFDbEIsSUFBSSxDQUFDRixTQUFTLE9BQU9BLFVBQVUsVUFBVTtRQUNyQyxPQUFPRTtJQUNYO0lBQ0EsSUFBSUMsZUFBZSxDQUFDLEdBQUdOLHNCQUFzQk8sT0FBTyxFQUFFSjtJQUN0RCxJQUFJSyxjQUFjLE9BQU9KLGFBQWE7SUFDdENFLGFBQWFHLE9BQU8sQ0FBQyxTQUFVQyxXQUFXO1FBQ3RDLElBQUlBLFlBQVlDLElBQUksS0FBSyxlQUFlO1lBQ3BDO1FBQ0o7UUFDQSxJQUFJQyxXQUFXRixZQUFZRSxRQUFRLEVBQUViLFFBQVFXLFlBQVlYLEtBQUs7UUFDOUQsSUFBSVMsYUFBYTtZQUNiSixTQUFTUSxVQUFVYixPQUFPVztRQUM5QixPQUNLLElBQUlYLE9BQU87WUFDWk0sY0FBY0EsZUFBZSxDQUFDO1lBQzlCQSxXQUFXLENBQUNPLFNBQVMsR0FBR2I7UUFDNUI7SUFDSjtJQUNBLE9BQU9NO0FBQ1g7QUFDQVAsa0JBQWUsR0FBR0ksZUFDbEIsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtdG8tb2JqZWN0L2Nqcy9pbmRleC5qcz9lMDgyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGlubGluZV9zdHlsZV9wYXJzZXJfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiaW5saW5lLXN0eWxlLXBhcnNlclwiKSk7XG4vKipcbiAqIFBhcnNlcyBpbmxpbmUgc3R5bGUgdG8gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBzdHlsZSAtIElubGluZSBzdHlsZS5cbiAqIEBwYXJhbSBpdGVyYXRvciAtIEl0ZXJhdG9yLlxuICogQHJldHVybnMgLSBTdHlsZSBvYmplY3Qgb3IgbnVsbC5cbiAqXG4gKiBAZXhhbXBsZSBQYXJzaW5nIGlubGluZSBzdHlsZSB0byBvYmplY3Q6XG4gKlxuICogYGBganNcbiAqIGltcG9ydCBwYXJzZSBmcm9tICdzdHlsZS10by1vYmplY3QnO1xuICogcGFyc2UoJ2xpbmUtaGVpZ2h0OiA0MjsnKTsgLy8geyAnbGluZS1oZWlnaHQnOiAnNDInIH1cbiAqIGBgYFxuICovXG5mdW5jdGlvbiBTdHlsZVRvT2JqZWN0KHN0eWxlLCBpdGVyYXRvcikge1xuICAgIHZhciBzdHlsZU9iamVjdCA9IG51bGw7XG4gICAgaWYgKCFzdHlsZSB8fCB0eXBlb2Ygc3R5bGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBzdHlsZU9iamVjdDtcbiAgICB9XG4gICAgdmFyIGRlY2xhcmF0aW9ucyA9ICgwLCBpbmxpbmVfc3R5bGVfcGFyc2VyXzEuZGVmYXVsdCkoc3R5bGUpO1xuICAgIHZhciBoYXNJdGVyYXRvciA9IHR5cGVvZiBpdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJztcbiAgICBkZWNsYXJhdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAoZGVjbGFyYXRpb24pIHtcbiAgICAgICAgaWYgKGRlY2xhcmF0aW9uLnR5cGUgIT09ICdkZWNsYXJhdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJvcGVydHkgPSBkZWNsYXJhdGlvbi5wcm9wZXJ0eSwgdmFsdWUgPSBkZWNsYXJhdGlvbi52YWx1ZTtcbiAgICAgICAgaWYgKGhhc0l0ZXJhdG9yKSB7XG4gICAgICAgICAgICBpdGVyYXRvcihwcm9wZXJ0eSwgdmFsdWUsIGRlY2xhcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgc3R5bGVPYmplY3QgPSBzdHlsZU9iamVjdCB8fCB7fTtcbiAgICAgICAgICAgIHN0eWxlT2JqZWN0W3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0eWxlT2JqZWN0O1xufVxuZXhwb3J0cy5kZWZhdWx0ID0gU3R5bGVUb09iamVjdDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJfX2ltcG9ydERlZmF1bHQiLCJtb2QiLCJfX2VzTW9kdWxlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpbmxpbmVfc3R5bGVfcGFyc2VyXzEiLCJyZXF1aXJlIiwiU3R5bGVUb09iamVjdCIsInN0eWxlIiwiaXRlcmF0b3IiLCJzdHlsZU9iamVjdCIsImRlY2xhcmF0aW9ucyIsImRlZmF1bHQiLCJoYXNJdGVyYXRvciIsImZvckVhY2giLCJkZWNsYXJhdGlvbiIsInR5cGUiLCJwcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/style-to-object/cjs/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unified/node_modules/extend/index.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/unified/node_modules/extend/index.js ***!
- \***************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar isArray = function isArray(arr) {\n if (typeof Array.isArray === \"function\") {\n return Array.isArray(arr);\n }\n return toStr.call(arr) === \"[object Array]\";\n};\nvar isPlainObject = function isPlainObject(obj) {\n if (!obj || toStr.call(obj) !== \"[object Object]\") {\n return false;\n }\n var hasOwnConstructor = hasOwn.call(obj, \"constructor\");\n var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\");\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n }\n // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n var key;\n for(key in obj){}\n return typeof key === \"undefined\" || hasOwn.call(obj, key);\n};\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n if (defineProperty && options.name === \"__proto__\") {\n defineProperty(target, options.name, {\n enumerable: true,\n configurable: true,\n value: options.newValue,\n writable: true\n });\n } else {\n target[options.name] = options.newValue;\n }\n};\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n if (name === \"__proto__\") {\n if (!hasOwn.call(obj, name)) {\n return void 0;\n } else if (gOPD) {\n // In early versions of node, obj['__proto__'] is buggy when obj has\n // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n return gOPD(obj, name).value;\n }\n }\n return obj[name];\n};\nmodule.exports = function extend() {\n var options, name, src, copy, copyIsArray, clone;\n var target = arguments[0];\n var i = 1;\n var length = arguments.length;\n var deep = false;\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n target = arguments[1] || {};\n // skip the boolean and the target\n i = 2;\n }\n if (target == null || typeof target !== \"object\" && typeof target !== \"function\") {\n target = {};\n }\n for(; i < length; ++i){\n options = arguments[i];\n // Only deal with non-null/undefined values\n if (options != null) {\n // Extend the base object\n for(name in options){\n src = getProperty(target, name);\n copy = getProperty(options, name);\n // Prevent never-ending loop\n if (target !== copy) {\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n // Never move original objects, clone them\n setProperty(target, {\n name: name,\n newValue: extend(deep, clone, copy)\n });\n // Don't bring in undefined values\n } else if (typeof copy !== \"undefined\") {\n setProperty(target, {\n name: name,\n newValue: copy\n });\n }\n }\n }\n }\n }\n // Return the modified object\n return target;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaWZpZWQvbm9kZV9tb2R1bGVzL2V4dGVuZC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUVBLElBQUlBLFNBQVNDLE9BQU9DLFNBQVMsQ0FBQ0MsY0FBYztBQUM1QyxJQUFJQyxRQUFRSCxPQUFPQyxTQUFTLENBQUNHLFFBQVE7QUFDckMsSUFBSUMsaUJBQWlCTCxPQUFPSyxjQUFjO0FBQzFDLElBQUlDLE9BQU9OLE9BQU9PLHdCQUF3QjtBQUUxQyxJQUFJQyxVQUFVLFNBQVNBLFFBQVFDLEdBQUc7SUFDakMsSUFBSSxPQUFPQyxNQUFNRixPQUFPLEtBQUssWUFBWTtRQUN4QyxPQUFPRSxNQUFNRixPQUFPLENBQUNDO0lBQ3RCO0lBRUEsT0FBT04sTUFBTVEsSUFBSSxDQUFDRixTQUFTO0FBQzVCO0FBRUEsSUFBSUcsZ0JBQWdCLFNBQVNBLGNBQWNDLEdBQUc7SUFDN0MsSUFBSSxDQUFDQSxPQUFPVixNQUFNUSxJQUFJLENBQUNFLFNBQVMsbUJBQW1CO1FBQ2xELE9BQU87SUFDUjtJQUVBLElBQUlDLG9CQUFvQmYsT0FBT1ksSUFBSSxDQUFDRSxLQUFLO0lBQ3pDLElBQUlFLG1CQUFtQkYsSUFBSUcsV0FBVyxJQUFJSCxJQUFJRyxXQUFXLENBQUNmLFNBQVMsSUFBSUYsT0FBT1ksSUFBSSxDQUFDRSxJQUFJRyxXQUFXLENBQUNmLFNBQVMsRUFBRTtJQUM5Ryw4Q0FBOEM7SUFDOUMsSUFBSVksSUFBSUcsV0FBVyxJQUFJLENBQUNGLHFCQUFxQixDQUFDQyxrQkFBa0I7UUFDL0QsT0FBTztJQUNSO0lBRUEseURBQXlEO0lBQ3pELG1EQUFtRDtJQUNuRCxJQUFJRTtJQUNKLElBQUtBLE9BQU9KLElBQUssQ0FBTztJQUV4QixPQUFPLE9BQU9JLFFBQVEsZUFBZWxCLE9BQU9ZLElBQUksQ0FBQ0UsS0FBS0k7QUFDdkQ7QUFFQSxnSEFBZ0g7QUFDaEgsSUFBSUMsY0FBYyxTQUFTQSxZQUFZQyxNQUFNLEVBQUVDLE9BQU87SUFDckQsSUFBSWYsa0JBQWtCZSxRQUFRQyxJQUFJLEtBQUssYUFBYTtRQUNuRGhCLGVBQWVjLFFBQVFDLFFBQVFDLElBQUksRUFBRTtZQUNwQ0MsWUFBWTtZQUNaQyxjQUFjO1lBQ2RDLE9BQU9KLFFBQVFLLFFBQVE7WUFDdkJDLFVBQVU7UUFDWDtJQUNELE9BQU87UUFDTlAsTUFBTSxDQUFDQyxRQUFRQyxJQUFJLENBQUMsR0FBR0QsUUFBUUssUUFBUTtJQUN4QztBQUNEO0FBRUEsOEVBQThFO0FBQzlFLElBQUlFLGNBQWMsU0FBU0EsWUFBWWQsR0FBRyxFQUFFUSxJQUFJO0lBQy9DLElBQUlBLFNBQVMsYUFBYTtRQUN6QixJQUFJLENBQUN0QixPQUFPWSxJQUFJLENBQUNFLEtBQUtRLE9BQU87WUFDNUIsT0FBTyxLQUFLO1FBQ2IsT0FBTyxJQUFJZixNQUFNO1lBQ2hCLG9FQUFvRTtZQUNwRSx5RUFBeUU7WUFDekUsT0FBT0EsS0FBS08sS0FBS1EsTUFBTUcsS0FBSztRQUM3QjtJQUNEO0lBRUEsT0FBT1gsR0FBRyxDQUFDUSxLQUFLO0FBQ2pCO0FBRUFPLE9BQU9DLE9BQU8sR0FBRyxTQUFTQztJQUN6QixJQUFJVixTQUFTQyxNQUFNVSxLQUFLQyxNQUFNQyxhQUFhQztJQUMzQyxJQUFJZixTQUFTZ0IsU0FBUyxDQUFDLEVBQUU7SUFDekIsSUFBSUMsSUFBSTtJQUNSLElBQUlDLFNBQVNGLFVBQVVFLE1BQU07SUFDN0IsSUFBSUMsT0FBTztJQUVYLCtCQUErQjtJQUMvQixJQUFJLE9BQU9uQixXQUFXLFdBQVc7UUFDaENtQixPQUFPbkI7UUFDUEEsU0FBU2dCLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQztRQUMxQixrQ0FBa0M7UUFDbENDLElBQUk7SUFDTDtJQUNBLElBQUlqQixVQUFVLFFBQVMsT0FBT0EsV0FBVyxZQUFZLE9BQU9BLFdBQVcsWUFBYTtRQUNuRkEsU0FBUyxDQUFDO0lBQ1g7SUFFQSxNQUFPaUIsSUFBSUMsUUFBUSxFQUFFRCxFQUFHO1FBQ3ZCaEIsVUFBVWUsU0FBUyxDQUFDQyxFQUFFO1FBQ3RCLDJDQUEyQztRQUMzQyxJQUFJaEIsV0FBVyxNQUFNO1lBQ3BCLHlCQUF5QjtZQUN6QixJQUFLQyxRQUFRRCxRQUFTO2dCQUNyQlcsTUFBTUosWUFBWVIsUUFBUUU7Z0JBQzFCVyxPQUFPTCxZQUFZUCxTQUFTQztnQkFFNUIsNEJBQTRCO2dCQUM1QixJQUFJRixXQUFXYSxNQUFNO29CQUNwQixtREFBbUQ7b0JBQ25ELElBQUlNLFFBQVFOLFFBQVNwQixDQUFBQSxjQUFjb0IsU0FBVUMsQ0FBQUEsY0FBY3pCLFFBQVF3QixLQUFJLENBQUMsR0FBSTt3QkFDM0UsSUFBSUMsYUFBYTs0QkFDaEJBLGNBQWM7NEJBQ2RDLFFBQVFILE9BQU92QixRQUFRdUIsT0FBT0EsTUFBTSxFQUFFO3dCQUN2QyxPQUFPOzRCQUNORyxRQUFRSCxPQUFPbkIsY0FBY21CLE9BQU9BLE1BQU0sQ0FBQzt3QkFDNUM7d0JBRUEsMENBQTBDO3dCQUMxQ2IsWUFBWUMsUUFBUTs0QkFBRUUsTUFBTUE7NEJBQU1JLFVBQVVLLE9BQU9RLE1BQU1KLE9BQU9GO3dCQUFNO29CQUV2RSxrQ0FBa0M7b0JBQ2xDLE9BQU8sSUFBSSxPQUFPQSxTQUFTLGFBQWE7d0JBQ3ZDZCxZQUFZQyxRQUFROzRCQUFFRSxNQUFNQTs0QkFBTUksVUFBVU87d0JBQUs7b0JBQ2xEO2dCQUNEO1lBQ0Q7UUFDRDtJQUNEO0lBRUEsNkJBQTZCO0lBQzdCLE9BQU9iO0FBQ1IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy91bmlmaWVkL25vZGVfbW9kdWxlcy9leHRlbmQvaW5kZXguanM/ZTEyMyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHRvU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBnT1BEID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxudmFyIGlzQXJyYXkgPSBmdW5jdGlvbiBpc0FycmF5KGFycikge1xuXHRpZiAodHlwZW9mIEFycmF5LmlzQXJyYXkgPT09ICdmdW5jdGlvbicpIHtcblx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheShhcnIpO1xuXHR9XG5cblx0cmV0dXJuIHRvU3RyLmNhbGwoYXJyKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn07XG5cbnZhciBpc1BsYWluT2JqZWN0ID0gZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmopIHtcblx0aWYgKCFvYmogfHwgdG9TdHIuY2FsbChvYmopICE9PSAnW29iamVjdCBPYmplY3RdJykge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHZhciBoYXNPd25Db25zdHJ1Y3RvciA9IGhhc093bi5jYWxsKG9iaiwgJ2NvbnN0cnVjdG9yJyk7XG5cdHZhciBoYXNJc1Byb3RvdHlwZU9mID0gb2JqLmNvbnN0cnVjdG9yICYmIG9iai5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgJiYgaGFzT3duLmNhbGwob2JqLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwgJ2lzUHJvdG90eXBlT2YnKTtcblx0Ly8gTm90IG93biBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBtdXN0IGJlIE9iamVjdFxuXHRpZiAob2JqLmNvbnN0cnVjdG9yICYmICFoYXNPd25Db25zdHJ1Y3RvciAmJiAhaGFzSXNQcm90b3R5cGVPZikge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIE93biBwcm9wZXJ0aWVzIGFyZSBlbnVtZXJhdGVkIGZpcnN0bHksIHNvIHRvIHNwZWVkIHVwLFxuXHQvLyBpZiBsYXN0IG9uZSBpcyBvd24sIHRoZW4gYWxsIHByb3BlcnRpZXMgYXJlIG93bi5cblx0dmFyIGtleTtcblx0Zm9yIChrZXkgaW4gb2JqKSB7IC8qKi8gfVxuXG5cdHJldHVybiB0eXBlb2Yga2V5ID09PSAndW5kZWZpbmVkJyB8fCBoYXNPd24uY2FsbChvYmosIGtleSk7XG59O1xuXG4vLyBJZiBuYW1lIGlzICdfX3Byb3RvX18nLCBhbmQgT2JqZWN0LmRlZmluZVByb3BlcnR5IGlzIGF2YWlsYWJsZSwgZGVmaW5lIF9fcHJvdG9fXyBhcyBhbiBvd24gcHJvcGVydHkgb24gdGFyZ2V0XG52YXIgc2V0UHJvcGVydHkgPSBmdW5jdGlvbiBzZXRQcm9wZXJ0eSh0YXJnZXQsIG9wdGlvbnMpIHtcblx0aWYgKGRlZmluZVByb3BlcnR5ICYmIG9wdGlvbnMubmFtZSA9PT0gJ19fcHJvdG9fXycpIHtcblx0XHRkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG9wdGlvbnMubmFtZSwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdHZhbHVlOiBvcHRpb25zLm5ld1ZhbHVlLFxuXHRcdFx0d3JpdGFibGU6IHRydWVcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR0YXJnZXRbb3B0aW9ucy5uYW1lXSA9IG9wdGlvbnMubmV3VmFsdWU7XG5cdH1cbn07XG5cbi8vIFJldHVybiB1bmRlZmluZWQgaW5zdGVhZCBvZiBfX3Byb3RvX18gaWYgJ19fcHJvdG9fXycgaXMgbm90IGFuIG93biBwcm9wZXJ0eVxudmFyIGdldFByb3BlcnR5ID0gZnVuY3Rpb24gZ2V0UHJvcGVydHkob2JqLCBuYW1lKSB7XG5cdGlmIChuYW1lID09PSAnX19wcm90b19fJykge1xuXHRcdGlmICghaGFzT3duLmNhbGwob2JqLCBuYW1lKSkge1xuXHRcdFx0cmV0dXJuIHZvaWQgMDtcblx0XHR9IGVsc2UgaWYgKGdPUEQpIHtcblx0XHRcdC8vIEluIGVhcmx5IHZlcnNpb25zIG9mIG5vZGUsIG9ialsnX19wcm90b19fJ10gaXMgYnVnZ3kgd2hlbiBvYmogaGFzXG5cdFx0XHQvLyBfX3Byb3RvX18gYXMgYW4gb3duIHByb3BlcnR5LiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCkgd29ya3MuXG5cdFx0XHRyZXR1cm4gZ09QRChvYmosIG5hbWUpLnZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBvYmpbbmFtZV07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGV4dGVuZCgpIHtcblx0dmFyIG9wdGlvbnMsIG5hbWUsIHNyYywgY29weSwgY29weUlzQXJyYXksIGNsb25lO1xuXHR2YXIgdGFyZ2V0ID0gYXJndW1lbnRzWzBdO1xuXHR2YXIgaSA9IDE7XG5cdHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuXHR2YXIgZGVlcCA9IGZhbHNlO1xuXG5cdC8vIEhhbmRsZSBhIGRlZXAgY29weSBzaXR1YXRpb25cblx0aWYgKHR5cGVvZiB0YXJnZXQgPT09ICdib29sZWFuJykge1xuXHRcdGRlZXAgPSB0YXJnZXQ7XG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWzFdIHx8IHt9O1xuXHRcdC8vIHNraXAgdGhlIGJvb2xlYW4gYW5kIHRoZSB0YXJnZXRcblx0XHRpID0gMjtcblx0fVxuXHRpZiAodGFyZ2V0ID09IG51bGwgfHwgKHR5cGVvZiB0YXJnZXQgIT09ICdvYmplY3QnICYmIHR5cGVvZiB0YXJnZXQgIT09ICdmdW5jdGlvbicpKSB7XG5cdFx0dGFyZ2V0ID0ge307XG5cdH1cblxuXHRmb3IgKDsgaSA8IGxlbmd0aDsgKytpKSB7XG5cdFx0b3B0aW9ucyA9IGFyZ3VtZW50c1tpXTtcblx0XHQvLyBPbmx5IGRlYWwgd2l0aCBub24tbnVsbC91bmRlZmluZWQgdmFsdWVzXG5cdFx0aWYgKG9wdGlvbnMgIT0gbnVsbCkge1xuXHRcdFx0Ly8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdFxuXHRcdFx0Zm9yIChuYW1lIGluIG9wdGlvbnMpIHtcblx0XHRcdFx0c3JjID0gZ2V0UHJvcGVydHkodGFyZ2V0LCBuYW1lKTtcblx0XHRcdFx0Y29weSA9IGdldFByb3BlcnR5KG9wdGlvbnMsIG5hbWUpO1xuXG5cdFx0XHRcdC8vIFByZXZlbnQgbmV2ZXItZW5kaW5nIGxvb3Bcblx0XHRcdFx0aWYgKHRhcmdldCAhPT0gY29weSkge1xuXHRcdFx0XHRcdC8vIFJlY3Vyc2UgaWYgd2UncmUgbWVyZ2luZyBwbGFpbiBvYmplY3RzIG9yIGFycmF5c1xuXHRcdFx0XHRcdGlmIChkZWVwICYmIGNvcHkgJiYgKGlzUGxhaW5PYmplY3QoY29weSkgfHwgKGNvcHlJc0FycmF5ID0gaXNBcnJheShjb3B5KSkpKSB7XG5cdFx0XHRcdFx0XHRpZiAoY29weUlzQXJyYXkpIHtcblx0XHRcdFx0XHRcdFx0Y29weUlzQXJyYXkgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmMgJiYgaXNBcnJheShzcmMpID8gc3JjIDogW107XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRjbG9uZSA9IHNyYyAmJiBpc1BsYWluT2JqZWN0KHNyYykgPyBzcmMgOiB7fTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gTmV2ZXIgbW92ZSBvcmlnaW5hbCBvYmplY3RzLCBjbG9uZSB0aGVtXG5cdFx0XHRcdFx0XHRzZXRQcm9wZXJ0eSh0YXJnZXQsIHsgbmFtZTogbmFtZSwgbmV3VmFsdWU6IGV4dGVuZChkZWVwLCBjbG9uZSwgY29weSkgfSk7XG5cblx0XHRcdFx0XHQvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzXG5cdFx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgY29weSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdFx0XHRcdHNldFByb3BlcnR5KHRhcmdldCwgeyBuYW1lOiBuYW1lLCBuZXdWYWx1ZTogY29weSB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIG1vZGlmaWVkIG9iamVjdFxuXHRyZXR1cm4gdGFyZ2V0O1xufTtcbiJdLCJuYW1lcyI6WyJoYXNPd24iLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInRvU3RyIiwidG9TdHJpbmciLCJkZWZpbmVQcm9wZXJ0eSIsImdPUEQiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJpc0FycmF5IiwiYXJyIiwiQXJyYXkiLCJjYWxsIiwiaXNQbGFpbk9iamVjdCIsIm9iaiIsImhhc093bkNvbnN0cnVjdG9yIiwiaGFzSXNQcm90b3R5cGVPZiIsImNvbnN0cnVjdG9yIiwia2V5Iiwic2V0UHJvcGVydHkiLCJ0YXJnZXQiLCJvcHRpb25zIiwibmFtZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ2YWx1ZSIsIm5ld1ZhbHVlIiwid3JpdGFibGUiLCJnZXRQcm9wZXJ0eSIsIm1vZHVsZSIsImV4cG9ydHMiLCJleHRlbmQiLCJzcmMiLCJjb3B5IiwiY29weUlzQXJyYXkiLCJjbG9uZSIsImFyZ3VtZW50cyIsImkiLCJsZW5ndGgiLCJkZWVwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unified/node_modules/extend/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/./src/app/globals.css":
-/*!*****************************!*\
- !*** ./src/app/globals.css ***!
- \*****************************/
-/***/ ((module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"9974e75019d9\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksSUFBVSxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvYXBwL2dsb2JhbHMuY3NzP2ZiMTMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI5OTc0ZTc1MDE5ZDlcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");
-
-/***/ }),
-
-/***/ "(rsc)/./src/app/MessagePoster.tsx":
-/*!***********************************!*\
- !*** ./src/app/MessagePoster.tsx ***!
- \***********************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
-/* harmony export */ __esModule: () => (/* binding */ __esModule),
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
-
-/***/ }),
-
-/***/ "(rsc)/./src/app/layout.tsx":
-/*!****************************!*\
- !*** ./src/app/layout.tsx ***!
- \****************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"} */ \"(rsc)/../../node_modules/next/font/google/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"Inter\\\",\\\"arguments\\\":[{\\\"subsets\\\":[\\\"latin\\\"]}],\\\"variableName\\\":\\\"inter\\\"}\");\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\n\nconst metadata = {\n title: \"Create Next App\",\n description: \"Generated by create next app\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: (next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_2___default().className),\n children: children\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout.tsx\",\n lineNumber: 19,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout.tsx\",\n lineNumber: 18,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUlNQTtBQUZpQjtBQUloQixNQUFNQyxXQUFxQjtJQUNoQ0MsT0FBTztJQUNQQyxhQUFhO0FBQ2YsRUFBRTtBQUVhLFNBQVNDLFdBQVcsRUFDakNDLFFBQVEsRUFHUjtJQUNBLHFCQUNFLDhEQUFDQztRQUFLQyxNQUFLO2tCQUNULDRFQUFDQztZQUFLQyxXQUFXVCwrSkFBZTtzQkFBR0s7Ozs7Ozs7Ozs7O0FBR3pDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9hcHAvbGF5b3V0LnRzeD81N2E5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWV0YWRhdGEgfSBmcm9tIFwibmV4dFwiO1xuaW1wb3J0IHsgSW50ZXIgfSBmcm9tIFwibmV4dC9mb250L2dvb2dsZVwiO1xuaW1wb3J0IFwiLi9nbG9iYWxzLmNzc1wiO1xuXG5jb25zdCBpbnRlciA9IEludGVyKHsgc3Vic2V0czogW1wibGF0aW5cIl0gfSk7XG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YTogTWV0YWRhdGEgPSB7XG4gIHRpdGxlOiBcIkNyZWF0ZSBOZXh0IEFwcFwiLFxuICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZWQgYnkgY3JlYXRlIG5leHQgYXBwXCIsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSb290TGF5b3V0KHtcbiAgY2hpbGRyZW4sXG59OiBSZWFkb25seTx7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59Pikge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJlblwiPlxuICAgICAgPGJvZHkgY2xhc3NOYW1lPXtpbnRlci5jbGFzc05hbWV9PntjaGlsZHJlbn08L2JvZHk+XG4gICAgPC9odG1sPlxuICApO1xufVxuIl0sIm5hbWVzIjpbImludGVyIiwibWV0YWRhdGEiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwiaHRtbCIsImxhbmciLCJib2R5IiwiY2xhc3NOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");
-
-/***/ }),
-
-/***/ "(rsc)/./src/app/not-found.tsx":
-/*!*******************************!*\
- !*** ./src/app/not-found.tsx ***!
- \*******************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ NotFound),\n/* harmony export */ runtime: () => (/* binding */ runtime)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n\nconst runtime = \"edge\";\nfunction NotFound() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"title\", {\n children: \"404: This page could not be found.\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: styles.error,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}`\n }\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\n lineNumber: 9,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: \"404\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\n lineNumber: 14,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: styles.desc,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n style: styles.h2,\n children: \"This page could not be found.\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\n lineNumber: 18,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\n lineNumber: 17,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\n lineNumber: 8,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\n lineNumber: 7,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n}\nconst styles = {\n error: {\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: \"100vh\",\n textAlign: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n desc: {\n display: \"inline-block\"\n },\n h1: {\n display: \"inline-block\",\n margin: \"0 20px 0 0\",\n padding: \"0 23px 0 0\",\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: \"top\",\n lineHeight: \"49px\"\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: \"49px\",\n margin: 0\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL25vdC1mb3VuZC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPLE1BQU1BLFVBQVUsT0FBTztBQUVmLFNBQVNDO0lBQ3RCLHFCQUNFOzswQkFDRSw4REFBQ0M7MEJBQU07Ozs7OzswQkFDUCw4REFBQ0M7Z0JBQUlDLE9BQU9DLE9BQU9DLEtBQUs7MEJBQ3RCLDRFQUFDSDs7c0NBQ0MsOERBQUNDOzRCQUNDRyx5QkFBeUI7Z0NBQ3ZCQyxRQUFRLENBQUMsNk5BQTZOLENBQUM7NEJBQ3pPOzs7Ozs7c0NBRUYsOERBQUNDOzRCQUFHQyxXQUFVOzRCQUFnQk4sT0FBT0MsT0FBT0ksRUFBRTtzQ0FBRTs7Ozs7O3NDQUdoRCw4REFBQ047NEJBQUlDLE9BQU9DLE9BQU9NLElBQUk7c0NBQ3JCLDRFQUFDQztnQ0FBR1IsT0FBT0MsT0FBT08sRUFBRTswQ0FBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWxDO0FBRUEsTUFBTVAsU0FBUztJQUNiQyxPQUFPO1FBQ0xPLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUVBUixNQUFNO1FBQ0pLLFNBQVM7SUFDWDtJQUVBUCxJQUFJO1FBQ0ZPLFNBQVM7UUFDVEksUUFBUTtRQUNSQyxTQUFTO1FBQ1RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO1FBQ2ZDLFlBQVk7SUFDZDtJQUVBYixJQUFJO1FBQ0ZVLFVBQVU7UUFDVkMsWUFBWTtRQUNaRSxZQUFZO1FBQ1pMLFFBQVE7SUFDVjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9hcHAvbm90LWZvdW5kLnRzeD9jYWUyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBydW50aW1lID0gXCJlZGdlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE5vdEZvdW5kKCkge1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8dGl0bGU+NDA0OiBUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kLjwvdGl0bGU+XG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXJyb3J9PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwMH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpfX1gLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJuZXh0LWVycm9yLWgxXCIgc3R5bGU9e3N0eWxlcy5oMX0+XG4gICAgICAgICAgICA0MDRcbiAgICAgICAgICA8L2gxPlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5kZXNjfT5cbiAgICAgICAgICAgIDxoMiBzdHlsZT17c3R5bGVzLmgyfT5UaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kLjwvaDI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgZXJyb3I6IHtcbiAgICBmb250RmFtaWx5OlxuICAgICAgJ3N5c3RlbS11aSxcIlNlZ29lIFVJXCIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCInLFxuICAgIGhlaWdodDogXCIxMDB2aFwiLFxuICAgIHRleHRBbGlnbjogXCJjZW50ZXJcIixcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gIH0sXG5cbiAgZGVzYzoge1xuICAgIGRpc3BsYXk6IFwiaW5saW5lLWJsb2NrXCIsXG4gIH0sXG5cbiAgaDE6IHtcbiAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuICAgIG1hcmdpbjogXCIwIDIwcHggMCAwXCIsXG4gICAgcGFkZGluZzogXCIwIDIzcHggMCAwXCIsXG4gICAgZm9udFNpemU6IDI0LFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICB2ZXJ0aWNhbEFsaWduOiBcInRvcFwiLFxuICAgIGxpbmVIZWlnaHQ6IFwiNDlweFwiLFxuICB9LFxuXG4gIGgyOiB7XG4gICAgZm9udFNpemU6IDE0LFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBsaW5lSGVpZ2h0OiBcIjQ5cHhcIixcbiAgICBtYXJnaW46IDAsXG4gIH0sXG59IGFzIGNvbnN0O1xuIl0sIm5hbWVzIjpbInJ1bnRpbWUiLCJOb3RGb3VuZCIsInRpdGxlIiwiZGl2Iiwic3R5bGUiLCJzdHlsZXMiLCJlcnJvciIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiaDEiLCJjbGFzc05hbWUiLCJkZXNjIiwiaDIiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJtYXJnaW4iLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwidmVydGljYWxBbGlnbiIsImxpbmVIZWlnaHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/not-found.tsx\n");
-
-/***/ }),
-
-/***/ "(rsc)/./src/app/page.tsx":
-/*!**************************!*\
- !*** ./src/app/page.tsx ***!
- \**************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Home),\n/* harmony export */ runtime: () => (/* binding */ runtime)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var _components_ui_card__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/card */ \"(rsc)/./src/components/ui/card.tsx\");\n/* harmony import */ var _server_db__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/server/db */ \"(rsc)/./src/server/db/index.ts\");\n/* harmony import */ var _server_db_schema__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/server/db/schema */ \"(rsc)/./src/server/db/schema.ts\");\n/* harmony import */ var drizzle_orm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! drizzle-orm */ \"(rsc)/../../node_modules/drizzle-orm/sql/expressions/conditions.js\");\n/* harmony import */ var next_headers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/headers */ \"(rsc)/../../node_modules/next/dist/esm/api/headers.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/navigation */ \"(rsc)/../../node_modules/next/dist/esm/api/navigation.js\");\n/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/image */ \"(rsc)/../../node_modules/next/dist/esm/api/image.js\");\n/* harmony import */ var _components_QueryAI__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/QueryAI */ \"(rsc)/./src/components/QueryAI.tsx\");\n/* harmony import */ var _MessagePoster__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./MessagePoster */ \"(rsc)/./src/app/MessagePoster.tsx\");\n\n\n\n\n\n\n\n\n\n\nconst runtime = \"edge\";\nasync function Home() {\n const token = (0,next_headers__WEBPACK_IMPORTED_MODULE_4__.cookies)().get(\"next-auth.session-token\")?.value ?? (0,next_headers__WEBPACK_IMPORTED_MODULE_4__.cookies)().get(\"__Secure-authjs.session-token\")?.value ?? (0,next_headers__WEBPACK_IMPORTED_MODULE_4__.cookies)().get(\"authjs.session-token\")?.value ?? (0,next_headers__WEBPACK_IMPORTED_MODULE_4__.headers)().get(\"Authorization\")?.replace(\"Bearer \", \"\");\n if (!token) {\n return (0,next_navigation__WEBPACK_IMPORTED_MODULE_5__.redirect)(\"/api/auth/signin\");\n }\n const session = await _server_db__WEBPACK_IMPORTED_MODULE_2__.db.select().from(_server_db_schema__WEBPACK_IMPORTED_MODULE_3__.sessions).where((0,drizzle_orm__WEBPACK_IMPORTED_MODULE_9__.eq)(_server_db_schema__WEBPACK_IMPORTED_MODULE_3__.sessions.sessionToken, token));\n if (!session || session.length === 0) {\n return (0,next_navigation__WEBPACK_IMPORTED_MODULE_5__.redirect)(\"/api/auth/signin\");\n }\n const userContent = await _server_db__WEBPACK_IMPORTED_MODULE_2__.db.select().from(_server_db_schema__WEBPACK_IMPORTED_MODULE_3__.userStoredContent).where((0,drizzle_orm__WEBPACK_IMPORTED_MODULE_9__.eq)(_server_db_schema__WEBPACK_IMPORTED_MODULE_3__.userStoredContent.userId, session[0].userId));\n const userData = await _server_db__WEBPACK_IMPORTED_MODULE_2__.db.select().from(_server_db_schema__WEBPACK_IMPORTED_MODULE_3__.users).where((0,drizzle_orm__WEBPACK_IMPORTED_MODULE_9__.eq)(_server_db_schema__WEBPACK_IMPORTED_MODULE_3__.users.id, session[0].userId)).limit(1);\n if (!userData || userData.length === 0) {\n return (0,next_navigation__WEBPACK_IMPORTED_MODULE_5__.redirect)(\"/api/auth/signin\");\n }\n const listOfContent = userContent.map((content)=>content.contentId).length > 0 ? userContent.map((content)=>content.contentId) : [\n 1\n ];\n const posts = await _server_db__WEBPACK_IMPORTED_MODULE_2__.db.select().from(_server_db_schema__WEBPACK_IMPORTED_MODULE_3__.storedContent).where((0,drizzle_orm__WEBPACK_IMPORTED_MODULE_9__.inArray)(_server_db_schema__WEBPACK_IMPORTED_MODULE_3__.storedContent.id, listOfContent));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex flex-col items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col mt-16\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col md:flex-row gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_image__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"rounded-2xl\",\n src: \"/logo.png\",\n width: 120,\n height: 120,\n alt: \"logo\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 67,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 text-gray-400 max-w-md\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-xl font-bold text-white\",\n children: \"SuperMemory\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 75,\n columnNumber: 13\n }, this),\n \"Remember that one thing you read a while ago? We got you covered. Add the extension, click a button and I'll remember it for you.\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://github.com/dhravyashah/anycontext\",\n target: \"_blank\",\n rel: \"noreferrer\",\n className: \"text-sky-500\",\n children: \"Get the Extension\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 78,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 74,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 65,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_QueryAI__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 90,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_MessagePoster__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n jwt: token\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 92,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mt-16\",\n children: posts.reverse().map((post)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: post.url,\n target: \"_blank\",\n rel: \"noreferrer\",\n className: \"hover:scale-105 ease-in-out transition-transform duration-300\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_card__WEBPACK_IMPORTED_MODULE_1__.Card, {\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n alt: \"Not found\",\n className: \"w-full h-48 object-cover rounded-md\",\n height: \"200\",\n src: post.image && post.image !== \"Image not found\" ? post.image : \"/placeholder.svg\",\n style: {\n aspectRatio: \"300/200\",\n objectFit: \"cover\"\n },\n width: \"300\"\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 109,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_card__WEBPACK_IMPORTED_MODULE_1__.CardContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mt-4\",\n children: post.title\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 125,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600\",\n children: post.baseUrl\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 126,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm\",\n children: post.description\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 127,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 124,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 108,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 102,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 100,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\n lineNumber: 64,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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OzRCQUFDcUMsV0FBVTs7OENBQ2QsOERBQUNlO29DQUNDWCxLQUFJO29DQUNKSixXQUFVO29DQUNWRyxRQUFPO29DQUNQRixLQUNFWSxLQUFLRyxLQUFLLElBQUlILEtBQUtHLEtBQUssS0FBSyxvQkFDekJILEtBQUtHLEtBQUssR0FDVjtvQ0FFTkMsT0FBTzt3Q0FDTEMsYUFBYTt3Q0FDYkMsV0FBVztvQ0FDYjtvQ0FDQWpCLE9BQU07Ozs7Ozs4Q0FFUiw4REFBQ3hDLDREQUFXQTs7c0RBQ1YsOERBQUMwRDs0Q0FBR3BCLFdBQVU7c0RBQThCYSxLQUFLUSxLQUFLOzs7Ozs7c0RBQ3RELDhEQUFDQzs0Q0FBRXRCLFdBQVU7c0RBQXlCYSxLQUFLVSxPQUFPOzs7Ozs7c0RBQ2xELDhEQUFDRDs0Q0FBRXRCLFdBQVU7c0RBQVdhLEtBQUtXLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFReEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2FwcC9wYWdlLnRzeD9mNjhhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhcmRDb250ZW50LCBDYXJkIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2NhcmQnO1xuaW1wb3J0IHsgZGIgfSBmcm9tICdAL3NlcnZlci9kYic7XG5pbXBvcnQge1xuICBzZXNzaW9ucyxcbiAgc3RvcmVkQ29udGVudCxcbiAgdXNlclN0b3JlZENvbnRlbnQsXG4gIHVzZXJzLFxufSBmcm9tICdAL3NlcnZlci9kYi9zY2hlbWEnO1xuaW1wb3J0IHsgZXEsIGluQXJyYXkgfSBmcm9tICdkcml6emxlLW9ybSc7XG5pbXBvcnQgeyBjb29raWVzLCBoZWFkZXJzIH0gZnJvbSAnbmV4dC9oZWFkZXJzJztcbmltcG9ydCB7IHJlZGlyZWN0IH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJztcbmltcG9ydCBJbWFnZSBmcm9tICduZXh0L2ltYWdlJztcbmltcG9ydCBRdWVyeUFJIGZyb20gJ0AvY29tcG9uZW50cy9RdWVyeUFJJztcbmltcG9ydCBNZXNzYWdlUG9zdGVyIGZyb20gJy4vTWVzc2FnZVBvc3Rlcic7XG5cbmV4cG9ydCBjb25zdCBydW50aW1lID0gJ2VkZ2UnO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBIb21lKCkge1xuICBjb25zdCB0b2tlbiA9XG4gICAgY29va2llcygpLmdldCgnbmV4dC1hdXRoLnNlc3Npb24tdG9rZW4nKT8udmFsdWUgPz9cbiAgICBjb29raWVzKCkuZ2V0KCdfX1NlY3VyZS1hdXRoanMuc2Vzc2lvbi10b2tlbicpPy52YWx1ZSA/P1xuICAgIGNvb2tpZXMoKS5nZXQoJ2F1dGhqcy5zZXNzaW9uLXRva2VuJyk/LnZhbHVlID8/XG4gICAgaGVhZGVycygpLmdldCgnQXV0aG9yaXphdGlvbicpPy5yZXBsYWNlKCdCZWFyZXIgJywgJycpO1xuXG4gIGlmICghdG9rZW4pIHtcbiAgICByZXR1cm4gcmVkaXJlY3QoJy9hcGkvYXV0aC9zaWduaW4nKTtcbiAgfVxuXG4gIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBkYlxuICAgIC5zZWxlY3QoKVxuICAgIC5mcm9tKHNlc3Npb25zKVxuICAgIC53aGVyZShlcShzZXNzaW9ucy5zZXNzaW9uVG9rZW4sIHRva2VuISkpO1xuXG4gIGlmICghc2Vzc2lvbiB8fCBzZXNzaW9uLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiByZWRpcmVjdCgnL2FwaS9hdXRoL3NpZ25pbicpO1xuICB9XG5cbiAgY29uc3QgdXNlckNvbnRlbnQgPSBhd2FpdCBkYlxuICAgIC5zZWxlY3QoKVxuICAgIC5mcm9tKHVzZXJTdG9yZWRDb250ZW50KVxuICAgIC53aGVyZShlcSh1c2VyU3RvcmVkQ29udGVudC51c2VySWQsIHNlc3Npb25bMF0udXNlcklkKSk7XG5cbiAgY29uc3QgdXNlckRhdGEgPSBhd2FpdCBkYlxuICAgIC5zZWxlY3QoKVxuICAgIC5mcm9tKHVzZXJzKVxuICAgIC53aGVyZShlcSh1c2Vycy5pZCwgc2Vzc2lvblswXS51c2VySWQpKVxuICAgIC5saW1pdCgxKTtcblxuICBpZiAoIXVzZXJEYXRhIHx8IHVzZXJEYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiByZWRpcmVjdCgnL2FwaS9hdXRoL3NpZ25pbicpO1xuICB9XG5cbiAgY29uc3QgbGlzdE9mQ29udGVudCA9XG4gICAgdXNlckNvbnRlbnQubWFwKChjb250ZW50KSA9PiBjb250ZW50LmNvbnRlbnRJZCkubGVuZ3RoID4gMFxuICAgICAgPyB1c2VyQ29udGVudC5tYXAoKGNvbnRlbnQpID0+IGNvbnRlbnQuY29udGVudElkKVxuICAgICAgOiBbMV07XG5cbiAgY29uc3QgcG9zdHMgPSBhd2FpdCBkYlxuICAgIC5zZWxlY3QoKVxuICAgIC5mcm9tKHN0b3JlZENvbnRlbnQpXG4gICAgLndoZXJlKGluQXJyYXkoc3RvcmVkQ29udGVudC5pZCwgbGlzdE9mQ29udGVudCkpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy03eGwgbXgtYXV0byBweC00IHNtOnB4LTYgbGc6cHgtOCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIG10LTE2XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtNFwiPlxuICAgICAgICAgIDxJbWFnZVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicm91bmRlZC0yeGxcIlxuICAgICAgICAgICAgc3JjPVwiL2xvZ28ucG5nXCJcbiAgICAgICAgICAgIHdpZHRoPXsxMjB9XG4gICAgICAgICAgICBoZWlnaHQ9ezEyMH1cbiAgICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC00ICB0ZXh0LWdyYXktNDAwIG1heC13LW1kXCI+XG4gICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZVwiPlN1cGVyTWVtb3J5PC9oMT5cbiAgICAgICAgICAgIFJlbWVtYmVyIHRoYXQgb25lIHRoaW5nIHlvdSByZWFkIGEgd2hpbGUgYWdvPyBXZSBnb3QgeW91IGNvdmVyZWQuXG4gICAgICAgICAgICBBZGQgdGhlIGV4dGVuc2lvbiwgY2xpY2sgYSBidXR0b24gYW5kIEknbGwgcmVtZW1iZXIgaXQgZm9yIHlvdS57JyAnfVxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9kaHJhdnlhc2hhaC9hbnljb250ZXh0XCJcbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtc2t5LTUwMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEdldCB0aGUgRXh0ZW5zaW9uXG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxRdWVyeUFJIC8+XG5cbiAgICAgIDxNZXNzYWdlUG9zdGVyIGp3dD17dG9rZW59IC8+XG5cbiAgICAgIHsvKiBUT0RPOiBMQUJFTCBUSEUgV0VCU0lURVMgVVNJTkcgQSBDTEFTU0lGSUNBVElPTiBNT0RFTCAqL31cbiAgICAgIHsvKiA8bmF2IGNsYXNzTmFtZT1cImZsZXggc3BhY2UteC0yIG15LTRcIj5cbiAgICAgICAgPEJhZGdlIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIj5UZWNobm9sb2d5ICgyKTwvQmFkZ2U+XG4gICAgICAgIDxCYWRnZSB2YXJpYW50PVwic2Vjb25kYXJ5XCI+QnVzaW5lc3MgJiBGaW5hbmNlICgxKTwvQmFkZ2U+XG4gICAgICAgIDxCYWRnZSB2YXJpYW50PVwic2Vjb25kYXJ5XCI+RWR1Y2F0aW9uICYgQ2FyZWVyICgxKTwvQmFkZ2U+XG4gICAgICA8L25hdj4gKi99XG4gICAgICA8bWFpbiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zIGdhcC02IG10LTE2XCI+XG4gICAgICAgIHtwb3N0cy5yZXZlcnNlKCkubWFwKChwb3N0KSA9PiAoXG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9e3Bvc3QudXJsfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG92ZXI6c2NhbGUtMTA1IGVhc2UtaW4tb3V0IHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENhcmQgY2xhc3NOYW1lPVwidy1mdWxsXCI+XG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBhbHQ9XCJOb3QgZm91bmRcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBoLTQ4IG9iamVjdC1jb3ZlciByb3VuZGVkLW1kXCJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMDBcIlxuICAgICAgICAgICAgICAgIHNyYz17XG4gICAgICAgICAgICAgICAgICBwb3N0LmltYWdlICYmIHBvc3QuaW1hZ2UgIT09ICdJbWFnZSBub3QgZm91bmQnXG4gICAgICAgICAgICAgICAgICAgID8gcG9zdC5pbWFnZVxuICAgICAgICAgICAgICAgICAgICA6ICcvcGxhY2Vob2xkZXIuc3ZnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgYXNwZWN0UmF0aW86ICczMDAvMjAwJyxcbiAgICAgICAgICAgICAgICAgIG9iamVjdEZpdDogJ2NvdmVyJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPENhcmRDb250ZW50PlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbXQtNFwiPntwb3N0LnRpdGxlfTwvaDM+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+e3Bvc3QuYmFzZVVybH08L3A+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbVwiPntwb3N0LmRlc2NyaXB0aW9ufTwvcD5cbiAgICAgICAgICAgICAgPC9DYXJkQ29udGVudD5cbiAgICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICkpfVxuICAgICAgPC9tYWluPlxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm5hbWVzIjpbIkNhcmRDb250ZW50IiwiQ2FyZCIsImRiIiwic2Vzc2lvbnMiLCJzdG9yZWRDb250ZW50IiwidXNlclN0b3JlZENvbnRlbnQiLCJ1c2VycyIsImVxIiwiaW5BcnJheSIsImNvb2tpZXMiLCJoZWFkZXJzIiwicmVkaXJlY3QiLCJJbWFnZSIsIlF1ZXJ5QUkiLCJNZXNzYWdlUG9zdGVyIiwicnVudGltZSIsIkhvbWUiLCJ0b2tlbiIsImdldCIsInZhbHVlIiwicmVwbGFjZSIsInNlc3Npb24iLCJzZWxlY3QiLCJmcm9tIiwid2hlcmUiLCJzZXNzaW9uVG9rZW4iLCJsZW5ndGgiLCJ1c2VyQ29udGVudCIsInVzZXJJZCIsInVzZXJEYXRhIiwiaWQiLCJsaW1pdCIsImxpc3RPZkNvbnRlbnQiLCJtYXAiLCJjb250ZW50IiwiY29udGVudElkIiwicG9zdHMiLCJkaXYiLCJjbGFzc05hbWUiLCJzcmMiLCJ3aWR0aCIsImhlaWdodCIsImFsdCIsImgxIiwiYSIsImhyZWYiLCJ0YXJnZXQiLCJyZWwiLCJqd3QiLCJtYWluIiwicmV2ZXJzZSIsInBvc3QiLCJ1cmwiLCJpbWciLCJpbWFnZSIsInN0eWxlIiwiYXNwZWN0UmF0aW8iLCJvYmplY3RGaXQiLCJoMyIsInRpdGxlIiwicCIsImJhc2VVcmwiLCJkZXNjcmlwdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/page.tsx\n");
-
-/***/ }),
-
-/***/ "(rsc)/./src/components/QueryAI.tsx":
-/*!************************************!*\
- !*** ./src/components/QueryAI.tsx ***!
- \************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
-/* harmony export */ __esModule: () => (/* binding */ __esModule),
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
-
-/***/ }),
-
-/***/ "(rsc)/./src/components/ui/card.tsx":
-/*!************************************!*\
- !*** ./src/components/ui/card.tsx ***!
- \************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Card: () => (/* binding */ Card),\n/* harmony export */ CardContent: () => (/* binding */ CardContent),\n/* harmony export */ CardDescription: () => (/* binding */ CardDescription),\n/* harmony export */ CardFooter: () => (/* binding */ CardFooter),\n/* harmony export */ CardHeader: () => (/* binding */ CardHeader),\n/* harmony export */ CardTitle: () => (/* binding */ CardTitle)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(rsc)/../../node_modules/next/dist/compiled/react/react.shared-subset.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(rsc)/./src/lib/utils.ts\");\n\n\n\nconst Card = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"rounded-lg border border-gray-200 bg-white text-gray-950 shadow-sm dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 9,\n columnNumber: 3\n }, undefined));\nCard.displayName = \"Card\";\nconst CardHeader = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col space-y-1.5 p-6\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 24,\n columnNumber: 3\n }, undefined));\nCardHeader.displayName = \"CardHeader\";\nconst CardTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-2xl font-semibold leading-none tracking-tight\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 36,\n columnNumber: 3\n }, undefined));\nCardTitle.displayName = \"CardTitle\";\nconst CardDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-sm text-gray-500 dark:text-gray-400\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 51,\n columnNumber: 3\n }, undefined));\nCardDescription.displayName = \"CardDescription\";\nconst CardContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"p-6 pt-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 63,\n columnNumber: 3\n }, undefined));\nCardContent.displayName = \"CardContent\";\nconst CardFooter = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex items-center p-6 pt-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx\",\n lineNumber: 71,\n columnNumber: 3\n }, undefined));\nCardFooter.displayName = \"CardFooter\";\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvY29tcG9uZW50cy91aS9jYXJkLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQThCO0FBRUU7QUFFaEMsTUFBTUUscUJBQU9GLDZDQUFnQixDQUczQixDQUFDLEVBQUVJLFNBQVMsRUFBRSxHQUFHQyxPQUFPLEVBQUVDLG9CQUMxQiw4REFBQ0M7UUFDQ0QsS0FBS0E7UUFDTEYsV0FBV0gsOENBQUVBLENBQ1gsOEhBQ0FHO1FBRUQsR0FBR0MsS0FBSzs7Ozs7O0FBR2JILEtBQUtNLFdBQVcsR0FBRztBQUVuQixNQUFNQywyQkFBYVQsNkNBQWdCLENBR2pDLENBQUMsRUFBRUksU0FBUyxFQUFFLEdBQUdDLE9BQU8sRUFBRUMsb0JBQzFCLDhEQUFDQztRQUNDRCxLQUFLQTtRQUNMRixXQUFXSCw4Q0FBRUEsQ0FBQyxpQ0FBaUNHO1FBQzlDLEdBQUdDLEtBQUs7Ozs7OztBQUdiSSxXQUFXRCxXQUFXLEdBQUc7QUFFekIsTUFBTUUsMEJBQVlWLDZDQUFnQixDQUdoQyxDQUFDLEVBQUVJLFNBQVMsRUFBRSxHQUFHQyxPQUFPLEVBQUVDLG9CQUMxQiw4REFBQ0s7UUFDQ0wsS0FBS0E7UUFDTEYsV0FBV0gsOENBQUVBLENBQ1gsc0RBQ0FHO1FBRUQsR0FBR0MsS0FBSzs7Ozs7O0FBR2JLLFVBQVVGLFdBQVcsR0FBRztBQUV4QixNQUFNSSxnQ0FBa0JaLDZDQUFnQixDQUd0QyxDQUFDLEVBQUVJLFNBQVMsRUFBRSxHQUFHQyxPQUFPLEVBQUVDLG9CQUMxQiw4REFBQ087UUFDQ1AsS0FBS0E7UUFDTEYsV0FBV0gsOENBQUVBLENBQUMsNENBQTRDRztRQUN6RCxHQUFHQyxLQUFLOzs7Ozs7QUFHYk8sZ0JBQWdCSixXQUFXLEdBQUc7QUFFOUIsTUFBTU0sNEJBQWNkLDZDQUFnQixDQUdsQyxDQUFDLEVBQUVJLFNBQVMsRUFBRSxHQUFHQyxPQUFPLEVBQUVDLG9CQUMxQiw4REFBQ0M7UUFBSUQsS0FBS0E7UUFBS0YsV0FBV0gsOENBQUVBLENBQUMsWUFBWUc7UUFBYSxHQUFHQyxLQUFLOzs7Ozs7QUFFaEVTLFlBQVlOLFdBQVcsR0FBRztBQUUxQixNQUFNTywyQkFBYWYsNkNBQWdCLENBR2pDLENBQUMsRUFBRUksU0FBUyxFQUFFLEdBQUdDLE9BQU8sRUFBRUMsb0JBQzFCLDhEQUFDQztRQUNDRCxLQUFLQTtRQUNMRixXQUFXSCw4Q0FBRUEsQ0FBQyw4QkFBOEJHO1FBQzNDLEdBQUdDLEtBQUs7Ozs7OztBQUdiVSxXQUFXUCxXQUFXLEdBQUc7QUFFdUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvdWkvY2FyZC50c3g/ZTdkMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IENhcmQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxkaXZcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgdGV4dC1ncmF5LTk1MCBzaGFkb3ctc20gZGFyazpib3JkZXItZ3JheS04MDAgZGFyazpiZy1ncmF5LTk1MCBkYXJrOnRleHQtZ3JheS01MFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQ2FyZC5kaXNwbGF5TmFtZSA9IFwiQ2FyZFwiXG5cbmNvbnN0IENhcmRIZWFkZXIgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxkaXZcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTEuNSBwLTZcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQ2FyZEhlYWRlci5kaXNwbGF5TmFtZSA9IFwiQ2FyZEhlYWRlclwiXG5cbmNvbnN0IENhcmRUaXRsZSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIEhUTUxQYXJhZ3JhcGhFbGVtZW50LFxuICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MSGVhZGluZ0VsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxoM1xuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInRleHQtMnhsIGZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0XCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5DYXJkVGl0bGUuZGlzcGxheU5hbWUgPSBcIkNhcmRUaXRsZVwiXG5cbmNvbnN0IENhcmREZXNjcmlwdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIEhUTUxQYXJhZ3JhcGhFbGVtZW50LFxuICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MUGFyYWdyYXBoRWxlbWVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPHBcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5DYXJkRGVzY3JpcHRpb24uZGlzcGxheU5hbWUgPSBcIkNhcmREZXNjcmlwdGlvblwiXG5cbmNvbnN0IENhcmRDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTERpdkVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8ZGl2IHJlZj17cmVmfSBjbGFzc05hbWU9e2NuKFwicC02IHB0LTBcIiwgY2xhc3NOYW1lKX0gey4uLnByb3BzfSAvPlxuKSlcbkNhcmRDb250ZW50LmRpc3BsYXlOYW1lID0gXCJDYXJkQ29udGVudFwiXG5cbmNvbnN0IENhcmRGb290ZXIgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxkaXZcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwiZmxleCBpdGVtcy1jZW50ZXIgcC02IHB0LTBcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQ2FyZEZvb3Rlci5kaXNwbGF5TmFtZSA9IFwiQ2FyZEZvb3RlclwiXG5cbmV4cG9ydCB7IENhcmQsIENhcmRIZWFkZXIsIENhcmRGb290ZXIsIENhcmRUaXRsZSwgQ2FyZERlc2NyaXB0aW9uLCBDYXJkQ29udGVudCB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJjbiIsIkNhcmQiLCJmb3J3YXJkUmVmIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJyZWYiLCJkaXYiLCJkaXNwbGF5TmFtZSIsIkNhcmRIZWFkZXIiLCJDYXJkVGl0bGUiLCJoMyIsIkNhcmREZXNjcmlwdGlvbiIsInAiLCJDYXJkQ29udGVudCIsIkNhcmRGb290ZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/components/ui/card.tsx\n");
-
-/***/ }),
-
-/***/ "(rsc)/./src/lib/utils.ts":
-/*!**************************!*\
- !*** ./src/lib/utils.ts ***!
- \**************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cn: () => (/* binding */ cn)\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(rsc)/../../node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var tailwind_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tailwind-merge */ \"(rsc)/../../node_modules/tailwind-merge/dist/bundle-mjs.mjs\");\n\n\nfunction cn(...inputs) {\n return (0,tailwind_merge__WEBPACK_IMPORTED_MODULE_1__.twMerge)((0,clsx__WEBPACK_IMPORTED_MODULE_0__.clsx)(inputs));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvbGliL3V0aWxzLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QztBQUNKO0FBRWpDLFNBQVNFLEdBQUcsR0FBR0MsTUFBb0I7SUFDeEMsT0FBT0YsdURBQU9BLENBQUNELDBDQUFJQSxDQUFDRztBQUN0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvbGliL3V0aWxzLnRzPzdjMWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDbGFzc1ZhbHVlLCBjbHN4IH0gZnJvbSBcImNsc3hcIlxuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gXCJ0YWlsd2luZC1tZXJnZVwiXG5cbmV4cG9ydCBmdW5jdGlvbiBjbiguLi5pbnB1dHM6IENsYXNzVmFsdWVbXSkge1xuICByZXR1cm4gdHdNZXJnZShjbHN4KGlucHV0cykpXG59XG4iXSwibmFtZXMiOlsiY2xzeCIsInR3TWVyZ2UiLCJjbiIsImlucHV0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/lib/utils.ts\n");
-
-/***/ }),
-
-/***/ "(rsc)/./src/server/db/index.ts":
-/*!********************************!*\
- !*** ./src/server/db/index.ts ***!
- \********************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ db: () => (/* binding */ db)\n/* harmony export */ });\n/* harmony import */ var drizzle_orm_d1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! drizzle-orm/d1 */ \"(rsc)/../../node_modules/drizzle-orm/d1/driver.js\");\n/* harmony import */ var _schema__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schema */ \"(rsc)/./src/server/db/schema.ts\");\n\n\nconst db = (0,drizzle_orm_d1__WEBPACK_IMPORTED_MODULE_1__.drizzle)(process.env.DATABASE, {\n schema: _schema__WEBPACK_IMPORTED_MODULE_0__,\n logger: true\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvc2VydmVyL2RiL2luZGV4LnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5QztBQUVOO0FBRTVCLE1BQU1FLEtBQUtGLHVEQUFPQSxDQUN2QkcsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLEVBQ3BCO0lBQUVKLE1BQU1BLHNDQUFBQTtJQUFFSyxRQUFRO0FBQUssR0FDdkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3NlcnZlci9kYi9pbmRleC50cz9kYmI4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRyaXp6bGUgfSBmcm9tICdkcml6emxlLW9ybS9kMSc7XG5cbmltcG9ydCAqIGFzIHNjaGVtYSBmcm9tIFwiLi9zY2hlbWFcIjtcblxuZXhwb3J0IGNvbnN0IGRiID0gZHJpenpsZShcbiAgcHJvY2Vzcy5lbnYuREFUQUJBU0UsXG4gIHsgc2NoZW1hLCBsb2dnZXI6IHRydWUgfVxuKTtcbiJdLCJuYW1lcyI6WyJkcml6emxlIiwic2NoZW1hIiwiZGIiLCJwcm9jZXNzIiwiZW52IiwiREFUQUJBU0UiLCJsb2dnZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/server/db/index.ts\n");
-
-/***/ }),
-
-/***/ "(rsc)/./src/server/db/schema.ts":
-/*!*********************************!*\
- !*** ./src/server/db/schema.ts ***!
- \*********************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ accounts: () => (/* binding */ accounts),\n/* harmony export */ createTable: () => (/* binding */ createTable),\n/* harmony export */ sessions: () => (/* binding */ sessions),\n/* harmony export */ storedContent: () => (/* binding */ storedContent),\n/* harmony export */ userStoredContent: () => (/* binding */ userStoredContent),\n/* harmony export */ users: () => (/* binding */ users),\n/* harmony export */ usersRelations: () => (/* binding */ usersRelations),\n/* harmony export */ verificationTokens: () => (/* binding */ verificationTokens)\n/* harmony export */ });\n/* harmony import */ var drizzle_orm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! drizzle-orm */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var drizzle_orm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! drizzle-orm */ \"(rsc)/../../node_modules/drizzle-orm/relations.js\");\n/* harmony import */ var drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! drizzle-orm/sqlite-core */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\");\n/* harmony import */ var drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! drizzle-orm/sqlite-core */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/text.js\");\n/* harmony import */ var drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! drizzle-orm/sqlite-core */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/integer.js\");\n/* harmony import */ var drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! drizzle-orm/sqlite-core */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/indexes.js\");\n/* harmony import */ var drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! drizzle-orm/sqlite-core */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/primary-keys.js\");\n/* harmony import */ var drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! drizzle-orm/sqlite-core */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/unique-constraint.js\");\n\n\n/**\n * This is an example of how to use the multi-project schema feature of Drizzle ORM. Use the same\n * database instance for multiple projects.\n *\n * @see https://orm.drizzle.team/docs/goodies#multi-project-schema\n */ const createTable = (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_0__.sqliteTableCreator)((name)=>`${name}`);\nconst users = createTable(\"user\", {\n id: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"id\", {\n length: 255\n }).notNull().primaryKey(),\n name: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"name\", {\n length: 255\n }),\n email: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"email\", {\n length: 255\n }).notNull(),\n emailVerified: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.int)(\"emailVerified\", {\n mode: \"timestamp\"\n }).default(drizzle_orm__WEBPACK_IMPORTED_MODULE_3__.sql`CURRENT_TIMESTAMP`),\n image: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"image\", {\n length: 255\n })\n});\nconst usersRelations = (0,drizzle_orm__WEBPACK_IMPORTED_MODULE_4__.relations)(users, ({ many })=>({\n accounts: many(accounts),\n sessions: many(sessions)\n }));\nconst accounts = createTable(\"account\", {\n id: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.integer)(\"id\").notNull().primaryKey({\n autoIncrement: true\n }),\n userId: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"userId\", {\n length: 255\n }).notNull().references(()=>users.id),\n type: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"type\", {\n length: 255\n }).notNull(),\n provider: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"provider\", {\n length: 255\n }).notNull(),\n providerAccountId: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"providerAccountId\", {\n length: 255\n }).notNull(),\n refresh_token: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"refresh_token\"),\n access_token: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"access_token\"),\n expires_at: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.int)(\"expires_at\"),\n token_type: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"token_type\", {\n length: 255\n }),\n scope: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"scope\", {\n length: 255\n }),\n id_token: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"id_token\"),\n session_state: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"session_state\", {\n length: 255\n }),\n oauth_token_secret: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"oauth_token_secret\"),\n oauth_token: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"oauth_token\")\n}, (account)=>({\n userIdIdx: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_5__.index)(\"account_userId_idx\").on(account.userId)\n }));\nconst sessions = createTable(\"session\", {\n id: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.integer)(\"id\").notNull().primaryKey({\n autoIncrement: true\n }),\n sessionToken: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"sessionToken\", {\n length: 255\n }).notNull(),\n userId: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"userId\", {\n length: 255\n }).notNull().references(()=>users.id),\n expires: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.int)(\"expires\", {\n mode: \"timestamp\"\n }).notNull()\n}, (session)=>({\n userIdIdx: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_5__.index)(\"session_userId_idx\").on(session.userId)\n }));\nconst verificationTokens = createTable(\"verificationToken\", {\n identifier: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"identifier\", {\n length: 255\n }).notNull(),\n token: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"token\", {\n length: 255\n }).notNull(),\n expires: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.int)(\"expires\", {\n mode: \"timestamp\"\n }).notNull()\n}, (vt)=>({\n compoundKey: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_6__.primaryKey)({\n columns: [\n vt.identifier,\n vt.token\n ]\n })\n }));\nconst userStoredContent = createTable(\"userStoredContent\", {\n userId: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"userId\").notNull().references(()=>users.id),\n contentId: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.integer)(\"contentId\").notNull().references(()=>storedContent.id)\n}, (usc)=>({\n userContentIdx: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_5__.index)(\"userStoredContent_idx\").on(usc.userId, usc.contentId),\n uniqueUserContent: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_7__.unique)(\"unique_user_content\").on(usc.userId, usc.contentId)\n }));\nconst storedContent = createTable(\"storedContent\", {\n id: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.integer)(\"id\").notNull().primaryKey({\n autoIncrement: true\n }),\n content: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"content\").notNull(),\n title: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"title\", {\n length: 255\n }),\n description: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"description\", {\n length: 255\n }),\n url: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"url\").notNull().unique(),\n savedAt: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_2__.int)(\"savedAt\", {\n mode: \"timestamp\"\n }).notNull(),\n baseUrl: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"baseUrl\", {\n length: 255\n }),\n image: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_1__.text)(\"image\", {\n length: 255\n })\n}, (sc)=>({\n urlIdx: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_5__.index)(\"storedContent_url_idx\").on(sc.url),\n savedAtIdx: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_5__.index)(\"storedContent_savedAt_idx\").on(sc.savedAt),\n titleInx: (0,drizzle_orm_sqlite_core__WEBPACK_IMPORTED_MODULE_5__.index)(\"storedContent_title_idx\").on(sc.title)\n }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LGVBQWU7UUFBRU8sUUFBUTtJQUFJO0lBQy9DK0MsS0FBS3RELDZEQUFJQSxDQUFDLE9BQU9RLE9BQU8sR0FBR04sTUFBTTtJQUNqQ3FELFNBQVMxRCw0REFBR0EsQ0FBQyxXQUFXO1FBQUVjLE1BQU07SUFBWSxHQUFHSCxPQUFPO0lBQ3REZ0QsU0FBU3hELDZEQUFJQSxDQUFDLFdBQVc7UUFBRU8sUUFBUTtJQUFJO0lBQ3ZDTSxPQUFPYiw2REFBSUEsQ0FBQyxTQUFTO1FBQUVPLFFBQVE7SUFBSTtBQUNyQyxHQUNBLENBQUNrRCxLQUFRO1FBQ1BDLFFBQVE5RCw4REFBS0EsQ0FBQyx5QkFBeUJ1QyxFQUFFLENBQUNzQixHQUFHSCxHQUFHO1FBQ2hESyxZQUFZL0QsOERBQUtBLENBQUMsNkJBQTZCdUMsRUFBRSxDQUFDc0IsR0FBR0YsT0FBTztRQUM1REssVUFBVWhFLDhEQUFLQSxDQUFDLDJCQUEyQnVDLEVBQUUsQ0FBQ3NCLEdBQUdMLEtBQUs7SUFDeEQsSUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvc2VydmVyL2RiL3NjaGVtYS50cz84YzMyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbGF0aW9ucywgc3FsIH0gZnJvbSBcImRyaXp6bGUtb3JtXCI7XG5pbXBvcnQge1xuICBpbmRleCxcbiAgaW50LFxuICBwcmltYXJ5S2V5LFxuICBzcWxpdGVUYWJsZUNyZWF0b3IsXG4gIHRleHQsXG4gIGludGVnZXIsXG4gIHVuaXF1ZVxufSBmcm9tIFwiZHJpenpsZS1vcm0vc3FsaXRlLWNvcmVcIjtcblxuLyoqXG4gKiBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHVzZSB0aGUgbXVsdGktcHJvamVjdCBzY2hlbWEgZmVhdHVyZSBvZiBEcml6emxlIE9STS4gVXNlIHRoZSBzYW1lXG4gKiBkYXRhYmFzZSBpbnN0YW5jZSBmb3IgbXVsdGlwbGUgcHJvamVjdHMuXG4gKlxuICogQHNlZSBodHRwczovL29ybS5kcml6emxlLnRlYW0vZG9jcy9nb29kaWVzI211bHRpLXByb2plY3Qtc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVUYWJsZSA9IHNxbGl0ZVRhYmxlQ3JlYXRvcigobmFtZSkgPT4gYCR7bmFtZX1gKTtcblxuZXhwb3J0IGNvbnN0IHVzZXJzID0gY3JlYXRlVGFibGUoXCJ1c2VyXCIsIHtcbiAgaWQ6IHRleHQoXCJpZFwiLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKS5wcmltYXJ5S2V5KCksXG4gIG5hbWU6IHRleHQoXCJuYW1lXCIsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIGVtYWlsOiB0ZXh0KFwiZW1haWxcIiwgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGVtYWlsVmVyaWZpZWQ6IGludChcImVtYWlsVmVyaWZpZWRcIiwgeyBtb2RlOiBcInRpbWVzdGFtcFwiIH0pLmRlZmF1bHQoc3FsYENVUlJFTlRfVElNRVNUQU1QYCksXG4gIGltYWdlOiB0ZXh0KFwiaW1hZ2VcIiwgeyBsZW5ndGg6IDI1NSB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgdXNlcnNSZWxhdGlvbnMgPSByZWxhdGlvbnModXNlcnMsICh7IG1hbnkgfSkgPT4gKHtcbiAgYWNjb3VudHM6IG1hbnkoYWNjb3VudHMpLFxuICBzZXNzaW9uczogbWFueShzZXNzaW9ucyksXG59KSk7XG5cbmV4cG9ydCBjb25zdCBhY2NvdW50cyA9IGNyZWF0ZVRhYmxlKFxuICBcImFjY291bnRcIixcbiAge1xuICAgIGlkOiBpbnRlZ2VyKFwiaWRcIikubm90TnVsbCgpLnByaW1hcnlLZXkoeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pLFxuICAgIHVzZXJJZDogdGV4dChcInVzZXJJZFwiLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKS5yZWZlcmVuY2VzKCgpID0+IHVzZXJzLmlkKSxcbiAgICB0eXBlOiB0ZXh0KFwidHlwZVwiLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgICBwcm92aWRlcjogdGV4dChcInByb3ZpZGVyXCIsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICAgIHByb3ZpZGVyQWNjb3VudElkOiB0ZXh0KFwicHJvdmlkZXJBY2NvdW50SWRcIiwgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gICAgcmVmcmVzaF90b2tlbjogdGV4dChcInJlZnJlc2hfdG9rZW5cIiksXG4gICAgYWNjZXNzX3Rva2VuOiB0ZXh0KFwiYWNjZXNzX3Rva2VuXCIpLFxuICAgIGV4cGlyZXNfYXQ6IGludChcImV4cGlyZXNfYXRcIiksXG4gICAgdG9rZW5fdHlwZTogdGV4dChcInRva2VuX3R5cGVcIiwgeyBsZW5ndGg6IDI1NSB9KSxcbiAgICBzY29wZTogdGV4dChcInNjb3BlXCIsIHsgbGVuZ3RoOiAyNTUgfSksXG4gICAgaWRfdG9rZW46IHRleHQoXCJpZF90b2tlblwiKSxcbiAgICBzZXNzaW9uX3N0YXRlOiB0ZXh0KFwic2Vzc2lvbl9zdGF0ZVwiLCB7IGxlbmd0aDogMjU1IH0pLFxuICAgIG9hdXRoX3Rva2VuX3NlY3JldDogdGV4dChcIm9hdXRoX3Rva2VuX3NlY3JldFwiKSxcbiAgICBvYXV0aF90b2tlbjogdGV4dChcIm9hdXRoX3Rva2VuXCIpLFxuICB9LFxuICAoYWNjb3VudCkgPT4gKHtcbiAgICB1c2VySWRJZHg6IGluZGV4KFwiYWNjb3VudF91c2VySWRfaWR4XCIpLm9uKGFjY291bnQudXNlcklkKSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBzZXNzaW9ucyA9IGNyZWF0ZVRhYmxlKFxuICBcInNlc3Npb25cIixcbiAge1xuICAgIGlkOiBpbnRlZ2VyKFwiaWRcIikubm90TnVsbCgpLnByaW1hcnlLZXkoeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pLFxuICAgIHNlc3Npb25Ub2tlbjogdGV4dChcInNlc3Npb25Ub2tlblwiLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgICB1c2VySWQ6IHRleHQoXCJ1c2VySWRcIiwgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiB1c2Vycy5pZCksXG4gICAgZXhwaXJlczogaW50KFwiZXhwaXJlc1wiLCB7IG1vZGU6IFwidGltZXN0YW1wXCIgfSkubm90TnVsbCgpLFxuICB9LFxuICAoc2Vzc2lvbikgPT4gKHtcbiAgICB1c2VySWRJZHg6IGluZGV4KFwic2Vzc2lvbl91c2VySWRfaWR4XCIpLm9uKHNlc3Npb24udXNlcklkKSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCB2ZXJpZmljYXRpb25Ub2tlbnMgPSBjcmVhdGVUYWJsZShcbiAgXCJ2ZXJpZmljYXRpb25Ub2tlblwiLFxuICB7XG4gICAgaWRlbnRpZmllcjogdGV4dChcImlkZW50aWZpZXJcIiwgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gICAgdG9rZW46IHRleHQoXCJ0b2tlblwiLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgICBleHBpcmVzOiBpbnQoXCJleHBpcmVzXCIsIHsgbW9kZTogXCJ0aW1lc3RhbXBcIiB9KS5ub3ROdWxsKCksXG4gIH0sXG4gICh2dCkgPT4gKHtcbiAgICBjb21wb3VuZEtleTogcHJpbWFyeUtleSh7IGNvbHVtbnM6IFt2dC5pZGVudGlmaWVyLCB2dC50b2tlbl0gfSksXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgdXNlclN0b3JlZENvbnRlbnQgPSBjcmVhdGVUYWJsZShcbiAgXCJ1c2VyU3RvcmVkQ29udGVudFwiLFxuICB7XG4gICAgdXNlcklkOiB0ZXh0KFwidXNlcklkXCIpLm5vdE51bGwoKS5yZWZlcmVuY2VzKCgpID0+IHVzZXJzLmlkKSxcbiAgICBjb250ZW50SWQ6IGludGVnZXIoXCJjb250ZW50SWRcIikubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gc3RvcmVkQ29udGVudC5pZCksXG4gIH0sXG4gICh1c2MpID0+ICh7XG4gICAgdXNlckNvbnRlbnRJZHg6IGluZGV4KFwidXNlclN0b3JlZENvbnRlbnRfaWR4XCIpLm9uKHVzYy51c2VySWQsIHVzYy5jb250ZW50SWQpLFxuICAgIHVuaXF1ZVVzZXJDb250ZW50OiB1bmlxdWUoXCJ1bmlxdWVfdXNlcl9jb250ZW50XCIpLm9uKHVzYy51c2VySWQsIHVzYy5jb250ZW50SWQpLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IHN0b3JlZENvbnRlbnQgPSBjcmVhdGVUYWJsZShcbiAgXCJzdG9yZWRDb250ZW50XCIsXG4gIHtcbiAgICBpZDogaW50ZWdlcihcImlkXCIpLm5vdE51bGwoKS5wcmltYXJ5S2V5KHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KSxcbiAgICBjb250ZW50OiB0ZXh0KFwiY29udGVudFwiKS5ub3ROdWxsKCksXG4gICAgdGl0bGU6IHRleHQoXCJ0aXRsZVwiLCB7IGxlbmd0aDogMjU1IH0pLFxuICAgIGRlc2NyaXB0aW9uOiB0ZXh0KFwiZGVzY3JpcHRpb25cIiwgeyBsZW5ndGg6IDI1NSB9KSxcbiAgICB1cmw6IHRleHQoXCJ1cmxcIikubm90TnVsbCgpLnVuaXF1ZSgpLFxuICAgIHNhdmVkQXQ6IGludChcInNhdmVkQXRcIiwgeyBtb2RlOiBcInRpbWVzdGFtcFwiIH0pLm5vdE51bGwoKSxcbiAgICBiYXNlVXJsOiB0ZXh0KFwiYmFzZVVybFwiLCB7IGxlbmd0aDogMjU1IH0pLFxuICAgIGltYWdlOiB0ZXh0KFwiaW1hZ2VcIiwgeyBsZW5ndGg6IDI1NSB9KSxcbiAgfSxcbiAgKHNjKSA9PiAoe1xuICAgIHVybElkeDogaW5kZXgoXCJzdG9yZWRDb250ZW50X3VybF9pZHhcIikub24oc2MudXJsKSxcbiAgICBzYXZlZEF0SWR4OiBpbmRleChcInN0b3JlZENvbnRlbnRfc2F2ZWRBdF9pZHhcIikub24oc2Muc2F2ZWRBdCksXG4gICAgdGl0bGVJbng6IGluZGV4KFwic3RvcmVkQ29udGVudF90aXRsZV9pZHhcIikub24oc2MudGl0bGUpLFxuICB9KVxuKTsiXSwibmFtZXMiOlsicmVsYXRpb25zIiwic3FsIiwiaW5kZXgiLCJpbnQiLCJwcmltYXJ5S2V5Iiwic3FsaXRlVGFibGVDcmVhdG9yIiwidGV4dCIsImludGVnZXIiLCJ1bmlxdWUiLCJjcmVhdGVUYWJsZSIsIm5hbWUiLCJ1c2VycyIsImlkIiwibGVuZ3RoIiwibm90TnVsbCIsImVtYWlsIiwiZW1haWxWZXJpZmllZCIsIm1vZGUiLCJkZWZhdWx0IiwiaW1hZ2UiLCJ1c2Vyc1JlbGF0aW9ucyIsIm1hbnkiLCJhY2NvdW50cyIsInNlc3Npb25zIiwiYXV0b0luY3JlbWVudCIsInVzZXJJZCIsInJlZmVyZW5jZXMiLCJ0eXBlIiwicHJvdmlkZXIiLCJwcm92aWRlckFjY291bnRJZCIsInJlZnJlc2hfdG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJleHBpcmVzX2F0IiwidG9rZW5fdHlwZSIsInNjb3BlIiwiaWRfdG9rZW4iLCJzZXNzaW9uX3N0YXRlIiwib2F1dGhfdG9rZW5fc2VjcmV0Iiwib2F1dGhfdG9rZW4iLCJhY2NvdW50IiwidXNlcklkSWR4Iiwib24iLCJzZXNzaW9uVG9rZW4iLCJleHBpcmVzIiwic2Vzc2lvbiIsInZlcmlmaWNhdGlvblRva2VucyIsImlkZW50aWZpZXIiLCJ0b2tlbiIsInZ0IiwiY29tcG91bmRLZXkiLCJjb2x1bW5zIiwidXNlclN0b3JlZENvbnRlbnQiLCJjb250ZW50SWQiLCJzdG9yZWRDb250ZW50IiwidXNjIiwidXNlckNvbnRlbnRJZHgiLCJ1bmlxdWVVc2VyQ29udGVudCIsImNvbnRlbnQiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidXJsIiwic2F2ZWRBdCIsImJhc2VVcmwiLCJzYyIsInVybElkeCIsInNhdmVkQXRJZHgiLCJ0aXRsZUlueCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/server/db/schema.ts\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js ***!
- \****************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all)=>{\n for(var name in all)__defProp(target, name, {\n get: all[name],\n enumerable: true\n });\n};\nvar __copyProps = (to, from, except, desc)=>{\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: ()=>from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n};\nvar __toCommonJS = (mod)=>__copyProps(__defProp({}, \"__esModule\", {\n value: true\n }), mod);\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: ()=>RequestCookies,\n ResponseCookies: ()=>ResponseCookies,\n parseCookie: ()=>parseCookie,\n parseSetCookie: ()=>parseSetCookie,\n stringifyCookie: ()=>stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n return `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)){\n if (!pair) continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [\n pair.slice(0, splitAt),\n pair.slice(splitAt + 1)\n ];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {}\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const { domain, expires, httponly, maxage, path, samesite, secure, priority } = Object.fromEntries(attributes.map(([key, value2])=>[\n key.toLowerCase(),\n value2\n ]));\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && {\n expires: new Date(expires)\n },\n ...httponly && {\n httpOnly: true\n },\n ...typeof maxage === \"string\" && {\n maxAge: Number(maxage)\n },\n path,\n ...samesite && {\n sameSite: parseSameSite(samesite)\n },\n ...secure && {\n secure: true\n },\n ...priority && {\n priority: parsePriority(priority)\n }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for(const key in t){\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\n \"strict\",\n \"lax\",\n \"none\"\n];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\n \"low\",\n \"medium\",\n \"high\"\n];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString) return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders){\n /** @internal */ this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed){\n this._parsed.set(name, {\n name,\n value\n });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */ get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value])=>value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n])=>n === name).map(([_, value])=>value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [\n args[0].name,\n args[0].value\n ] : args;\n const map = this._parsed;\n map.set(name, {\n name,\n value\n });\n this._headers.set(\"cookie\", Array.from(map).map(([_, value2])=>stringifyCookie(value2)).join(\"; \"));\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */ delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name)=>map.delete(name));\n this._headers.set(\"cookie\", Array.from(map).map(([_, value])=>stringifyCookie(value)).join(\"; \"));\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */ clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */ [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [\n ...this._parsed.values()\n ].map((v)=>`${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders){\n /** @internal */ this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings){\n const parsed = parseSetCookie(cookieString);\n if (parsed) this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */ get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */ getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c)=>c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */ set(...args) {\n const [name, value, cookie] = args.length === 1 ? [\n args[0].name,\n args[0].value,\n args[0]\n ] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({\n name,\n value,\n ...cookie\n }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */ delete(...args) {\n const [name, path, domain] = typeof args[0] === \"string\" ? [\n args[0]\n ] : [\n args[0].name,\n args[0].path,\n args[0].domain\n ];\n return this.set({\n name,\n path,\n domain,\n value: \"\",\n expires: /* @__PURE__ */ new Date(0)\n });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [\n ...this._parsed.values()\n ].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag){\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = {\n name: \"\",\n value: \"\"\n}) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixJQUFJQSxZQUFZQyxPQUFPQyxjQUFjO0FBQ3JDLElBQUlDLG1CQUFtQkYsT0FBT0csd0JBQXdCO0FBQ3RELElBQUlDLG9CQUFvQkosT0FBT0ssbUJBQW1CO0FBQ2xELElBQUlDLGVBQWVOLE9BQU9PLFNBQVMsQ0FBQ0MsY0FBYztBQUNsRCxJQUFJQyxXQUFXLENBQUNDLFFBQVFDO0lBQ3RCLElBQUssSUFBSUMsUUFBUUQsSUFDZlosVUFBVVcsUUFBUUUsTUFBTTtRQUFFQyxLQUFLRixHQUFHLENBQUNDLEtBQUs7UUFBRUUsWUFBWTtJQUFLO0FBQy9EO0FBQ0EsSUFBSUMsY0FBYyxDQUFDQyxJQUFJQyxNQUFNQyxRQUFRQztJQUNuQyxJQUFJRixRQUFRLE9BQU9BLFNBQVMsWUFBWSxPQUFPQSxTQUFTLFlBQVk7UUFDbEUsS0FBSyxJQUFJRyxPQUFPaEIsa0JBQWtCYSxNQUNoQyxJQUFJLENBQUNYLGFBQWFlLElBQUksQ0FBQ0wsSUFBSUksUUFBUUEsUUFBUUYsUUFDekNuQixVQUFVaUIsSUFBSUksS0FBSztZQUFFUCxLQUFLLElBQU1JLElBQUksQ0FBQ0csSUFBSTtZQUFFTixZQUFZLENBQUVLLENBQUFBLE9BQU9qQixpQkFBaUJlLE1BQU1HLElBQUcsS0FBTUQsS0FBS0wsVUFBVTtRQUFDO0lBQ3RIO0lBQ0EsT0FBT0U7QUFDVDtBQUNBLElBQUlNLGVBQWUsQ0FBQ0MsTUFBUVIsWUFBWWhCLFVBQVUsQ0FBQyxHQUFHLGNBQWM7UUFBRXlCLE9BQU87SUFBSyxJQUFJRDtBQUV0RixlQUFlO0FBQ2YsSUFBSUUsY0FBYyxDQUFDO0FBQ25CaEIsU0FBU2dCLGFBQWE7SUFDcEJDLGdCQUFnQixJQUFNQTtJQUN0QkMsaUJBQWlCLElBQU1BO0lBQ3ZCQyxhQUFhLElBQU1BO0lBQ25CQyxnQkFBZ0Is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QUFhckcsZ0JBQWdCTjtRQUNuQzBHLFFBQVFFLE1BQU0sQ0FBQyxjQUFjRDtJQUMvQjtBQUNGO0FBQ0EsU0FBU0osZ0JBQWdCN0UsU0FBUztJQUFFdEMsTUFBTTtJQUFJWSxPQUFPO0FBQUcsQ0FBQztJQUN2RCxJQUFJLE9BQU8wQixPQUFPYixPQUFPLEtBQUssVUFBVTtRQUN0Q2EsT0FBT2IsT0FBTyxHQUFHLElBQUlDLEtBQUtZLE9BQU9iLE9BQU87SUFDMUM7SUFDQSxJQUFJYSxPQUFPVixNQUFNLEVBQUU7UUFDakJVLE9BQU9iLE9BQU8sR0FBRyxJQUFJQyxLQUFLQSxLQUFLK0YsR0FBRyxLQUFLbkYsT0FBT1YsTUFBTSxHQUFHO0lBQ3pEO0lBQ0EsSUFBSVUsT0FBT2QsSUFBSSxLQUFLLFFBQVFjLE9BQU9kLElBQUksS0FBSyxLQUFLLEdBQUc7UUFDbERjLE9BQU9kLElBQUksR0FBRztJQUNoQjtJQUNBLE9BQU9jO0FBQ1Q7QUFDQSw2REFBNkQ7QUFDN0QsS0FBTW5CLENBQUFBLENBTU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzL2luZGV4LmpzPzRiMjciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBzcmNfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoc3JjX2V4cG9ydHMsIHtcbiAgUmVxdWVzdENvb2tpZXM6ICgpID0+IFJlcXVlc3RDb29raWVzLFxuICBSZXNwb25zZUNvb2tpZXM6ICgpID0+IFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWU6ICgpID0+IHBhcnNlQ29va2llLFxuICBwYXJzZVNldENvb2tpZTogKCkgPT4gcGFyc2VTZXRDb29raWUsXG4gIHN0cmluZ2lmeUNvb2tpZTogKCkgPT4gc3RyaW5naWZ5Q29va2llXG59KTtcbm1vZHVsZS5leHBvcnRzID0gX190b0NvbW1vbkpTKHNyY19leHBvcnRzKTtcblxuLy8gc3JjL3NlcmlhbGl6ZS50c1xuZnVuY3Rpb24gc3RyaW5naWZ5Q29va2llKGMpIHtcbiAgdmFyIF9hO1xuICBjb25zdCBhdHRycyA9IFtcbiAgICBcInBhdGhcIiBpbiBjICYmIGMucGF0aCAmJiBgUGF0aD0ke2MucGF0aH1gLFxuICAgIFwiZXhwaXJlc1wiIGluIGMgJiYgKGMuZXhwaXJlcyB8fCBjLmV4cGlyZXMgPT09IDApICYmIGBFeHBpcmVzPSR7KHR5cGVvZiBjLmV4cGlyZXMgPT09IFwibnVtYmVyXCIgPyBuZXcgRGF0ZShjLmV4cGlyZXMpIDogYy5leHBpcmVzKS50b1VUQ1N0cmluZygpfWAsXG4gICAgXCJtYXhBZ2VcIiBpbiBjICYmIHR5cGVvZiBjLm1heEFnZSA9PT0gXCJudW1iZXJcIiAmJiBgTWF4LUFnZT0ke2MubWF4QWdlfWAsXG4gICAgXCJkb21haW5cIiBpbiBjICYmIGMuZG9tYWluICYmIGBEb21haW49JHtjLmRvbWFpbn1gLFxuICAgIFwic2VjdXJlXCIgaW4gYyAmJiBjLnNlY3VyZSAmJiBcIlNlY3VyZVwiLFxuICAgIFwiaHR0cE9ubHlcIiBpbiBjICYmIGMuaHR0cE9ubHkgJiYgXCJIdHRwT25seVwiLFxuICAgIFwic2FtZVNpdGVcIiBpbiBjICYmIGMuc2FtZVNpdGUgJiYgYFNhbWVTaXRlPSR7Yy5zYW1lU2l0ZX1gLFxuICAgIFwicHJpb3JpdHlcIiBpbiBjICYmIGMucHJpb3JpdHkgJiYgYFByaW9yaXR5PSR7Yy5wcmlvcml0eX1gXG4gIF0uZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gYCR7Yy5uYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudCgoX2EgPSBjLnZhbHVlKSAhPSBudWxsID8gX2EgOiBcIlwiKX07ICR7YXR0cnMuam9pbihcIjsgXCIpfWA7XG59XG5mdW5jdGlvbiBwYXJzZUNvb2tpZShjb29raWUpIHtcbiAgY29uc3QgbWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgZm9yIChjb25zdCBwYWlyIG9mIGNvb2tpZS5zcGxpdCgvOyAqLykpIHtcbiAgICBpZiAoIXBhaXIpXG4gICAgICBjb250aW51ZTtcbiAgICBjb25zdCBzcGxpdEF0ID0gcGFpci5pbmRleE9mKFwiPVwiKTtcbiAgICBpZiAoc3BsaXRBdCA9PT0gLTEpIHtcbiAgICAgIG1hcC5zZXQocGFpciwgXCJ0cnVlXCIpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IFtwYWlyLnNsaWNlKDAsIHNwbGl0QXQpLCBwYWlyLnNsaWNlKHNwbGl0QXQgKyAxKV07XG4gICAgdHJ5IHtcbiAgICAgIG1hcC5zZXQoa2V5LCBkZWNvZGVVUklDb21wb25lbnQodmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogXCJ0cnVlXCIpKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1hcDtcbn1cbmZ1bmN0aW9uIHBhcnNlU2V0Q29va2llKHNldENvb2tpZSkge1xuICBpZiAoIXNldENvb2tpZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgY29uc3QgW1tuYW1lLCB2YWx1ZV0sIC4uLmF0dHJpYnV0ZXNdID0gcGFyc2VDb29raWUoc2V0Q29va2llKTtcbiAgY29uc3Qge1xuICAgIGRvbWFpbixcbiAgICBleHBpcmVzLFxuICAgIGh0dHBvbmx5LFxuICAgIG1heGFnZSxcbiAgICBwYXRoLFxuICAgIHNhbWVzaXRlLFxuICAgIHNlY3VyZSxcbiAgICBwcmlvcml0eVxuICB9ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIGF0dHJpYnV0ZXMubWFwKChba2V5LCB2YWx1ZTJdKSA9PiBba2V5LnRvTG93ZXJDYXNlKCksIHZhbHVlMl0pXG4gICk7XG4gIGNvbnN0IGNvb2tpZSA9IHtcbiAgICBuYW1lLFxuICAgIHZhbHVlOiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpLFxuICAgIGRvbWFpbixcbiAgICAuLi5leHBpcmVzICYmIHsgZXhwaXJlczogbmV3IERhdGUoZXhwaXJlcykgfSxcbiAgICAuLi5odHRwb25seSAmJiB7IGh0dHBPbmx5OiB0cnVlIH0sXG4gICAgLi4udHlwZW9mIG1heGFnZSA9PT0gXCJzdHJpbmdcIiAmJiB7IG1heEFnZTogTnVtYmVyKG1heGFnZSkgfSxcbiAgICBwYXRoLFxuICAgIC4uLnNhbWVzaXRlICYmIHsgc2FtZVNpdGU6IHBhcnNlU2FtZVNpdGUoc2FtZXNpdGUpIH0sXG4gICAgLi4uc2VjdXJlICYmIHsgc2VjdXJlOiB0cnVlIH0sXG4gICAgLi4ucHJpb3JpdHkgJiYgeyBwcmlvcml0eTogcGFyc2VQcmlvcml0eShwcmlvcml0eSkgfVxuICB9O1xuICByZXR1cm4gY29tcGFjdChjb29raWUpO1xufVxuZnVuY3Rpb24gY29tcGFjdCh0KSB7XG4gIGNvbnN0IG5ld1QgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdCkge1xuICAgIGlmICh0W2tleV0pIHtcbiAgICAgIG5ld1Rba2V5XSA9IHRba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1Q7XG59XG52YXIgU0FNRV9TSVRFID0gW1wic3RyaWN0XCIsIFwibGF4XCIsIFwibm9uZVwiXTtcbmZ1bmN0aW9uIHBhcnNlU2FtZVNpdGUoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gU0FNRV9TSVRFLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG52YXIgUFJJT1JJVFkgPSBbXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCJdO1xuZnVuY3Rpb24gcGFyc2VQcmlvcml0eShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBQUklPUklUWS5pbmNsdWRlcyhzdHJpbmcpID8gc3RyaW5nIDogdm9pZCAwO1xufVxuZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgaWYgKCFjb29raWVzU3RyaW5nKVxuICAgIHJldHVybiBbXTtcbiAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gIHZhciBwb3MgPSAwO1xuICB2YXIgc3RhcnQ7XG4gIHZhciBjaDtcbiAgdmFyIGxhc3RDb21tYTtcbiAgdmFyIG5leHRTdGFydDtcbiAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpIHtcbiAgICAgIHBvcyArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gIH1cbiAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgIHJldHVybiBjaCAhPT0gXCI9XCIgJiYgY2ggIT09IFwiO1wiICYmIGNoICE9PSBcIixcIjtcbiAgfVxuICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICBzdGFydCA9IHBvcztcbiAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICB3aGlsZSAoc2tpcFdoaXRlc3BhY2UoKSkge1xuICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgaWYgKGNoID09PSBcIixcIikge1xuICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgIHBvcyArPSAxO1xuICAgICAgICBza2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBub3RTcGVjaWFsQ2hhcigpKSB7XG4gICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09IFwiPVwiKSB7XG4gICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvb2tpZXNTdHJpbmdzO1xufVxuXG4vLyBzcmMvcmVxdWVzdC1jb29raWVzLnRzXG52YXIgUmVxdWVzdENvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlcXVlc3RIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzO1xuICAgIGNvbnN0IGhlYWRlciA9IHJlcXVlc3RIZWFkZXJzLmdldChcImNvb2tpZVwiKTtcbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvb2tpZShoZWFkZXIpO1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIHBhcnNlZCkge1xuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIGNvb2tpZXMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50XG4gICAqL1xuICBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLnNpemU7XG4gIH1cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KG5hbWUpO1xuICB9XG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogKF9hID0gYXJnc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm5hbWU7XG4gICAgcmV0dXJuIGFsbC5maWx0ZXIoKFtuXSkgPT4gbiA9PT0gbmFtZSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICBzZXQoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWVdIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCB7IG5hbWUsIHZhbHVlIH0pO1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KFxuICAgICAgXCJjb29raWVcIixcbiAgICAgIEFycmF5LmZyb20obWFwKS5tYXAoKFtfLCB2YWx1ZTJdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUyKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjb29raWVzIG1hdGNoaW5nIHRoZSBwYXNzZWQgbmFtZSBvciBuYW1lcyBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGRlbGV0ZShuYW1lcykge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBjb25zdCByZXN1bHQgPSAhQXJyYXkuaXNBcnJheShuYW1lcykgPyBtYXAuZGVsZXRlKG5hbWVzKSA6IG5hbWVzLm1hcCgobmFtZSkgPT4gbWFwLmRlbGV0ZShuYW1lKSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlXSkgPT4gc3RyaW5naWZ5Q29va2llKHZhbHVlKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIHRoZSBjb29raWVzIGluIHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5kZWxldGUoQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQua2V5cygpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgY29va2llcyBpbiB0aGUgcmVxdWVzdCBhcyBhIHN0cmluZyBmb3IgbG9nZ2luZ1xuICAgKi9cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVxdWVzdENvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKCh2KSA9PiBgJHt2Lm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHYudmFsdWUpfWApLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcblxuLy8gc3JjL3Jlc3BvbnNlLWNvb2tpZXMudHNcbnZhciBSZXNwb25zZUNvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlSGVhZGVycykge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLl9wYXJzZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIHRoaXMuX2hlYWRlcnMgPSByZXNwb25zZUhlYWRlcnM7XG4gICAgY29uc3Qgc2V0Q29va2llID0gKF9jID0gKF9iID0gKF9hID0gcmVzcG9uc2VIZWFkZXJzLmdldFNldENvb2tpZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzcG9uc2VIZWFkZXJzKSkgIT0gbnVsbCA/IF9iIDogcmVzcG9uc2VIZWFkZXJzLmdldChcInNldC1jb29raWVcIikpICE9IG51bGwgPyBfYyA6IFtdO1xuICAgIGNvbnN0IGNvb2tpZVN0cmluZ3MgPSBBcnJheS5pc0FycmF5KHNldENvb2tpZSkgPyBzZXRDb29raWUgOiBzcGxpdENvb2tpZXNTdHJpbmcoc2V0Q29va2llKTtcbiAgICBmb3IgKGNvbnN0IGNvb2tpZVN0cmluZyBvZiBjb29raWVTdHJpbmdzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVNldENvb2tpZShjb29raWVTdHJpbmcpO1xuICAgICAgaWYgKHBhcnNlZClcbiAgICAgICAgdGhpcy5fcGFyc2VkLnNldChwYXJzZWQubmFtZSwgcGFyc2VkKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0IENvb2tpZVN0b3JlI2dldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldCguLi5hcmdzKSB7XG4gICAgY29uc3Qga2V5ID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KGtleSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0QWxsIENvb2tpZVN0b3JlI2dldEFsbH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkLnZhbHVlcygpKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoYykgPT4gYy5uYW1lID09PSBrZXkpO1xuICB9XG4gIGhhcyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5oYXMobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtc2V0IENvb2tpZVN0b3JlI3NldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlLCBjb29raWVdID0gYXJncy5sZW5ndGggPT09IDEgPyBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnZhbHVlLCBhcmdzWzBdXSA6IGFyZ3M7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIG1hcC5zZXQobmFtZSwgbm9ybWFsaXplQ29va2llKHsgbmFtZSwgdmFsdWUsIC4uLmNvb2tpZSB9KSk7XG4gICAgcmVwbGFjZShtYXAsIHRoaXMuX2hlYWRlcnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWRlbGV0ZSBDb29raWVTdG9yZSNkZWxldGV9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBkZWxldGUoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCBwYXRoLCBkb21haW5dID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBbYXJnc1swXV0gOiBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnBhdGgsIGFyZ3NbMF0uZG9tYWluXTtcbiAgICByZXR1cm4gdGhpcy5zZXQoeyBuYW1lLCBwYXRoLCBkb21haW4sIHZhbHVlOiBcIlwiLCBleHBpcmVzOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoMCkgfSk7XG4gIH1cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVzcG9uc2VDb29raWVzICR7SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuX3BhcnNlZCkpfWA7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9wYXJzZWQudmFsdWVzKCldLm1hcChzdHJpbmdpZnlDb29raWUpLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcbmZ1bmN0aW9uIHJlcGxhY2UoYmFnLCBoZWFkZXJzKSB7XG4gIGhlYWRlcnMuZGVsZXRlKFwic2V0LWNvb2tpZVwiKTtcbiAgZm9yIChjb25zdCBbLCB2YWx1ZV0gb2YgYmFnKSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZSk7XG4gICAgaGVhZGVycy5hcHBlbmQoXCJzZXQtY29va2llXCIsIHNlcmlhbGl6ZWQpO1xuICB9XG59XG5mdW5jdGlvbiBub3JtYWxpemVDb29raWUoY29va2llID0geyBuYW1lOiBcIlwiLCB2YWx1ZTogXCJcIiB9KSB7XG4gIGlmICh0eXBlb2YgY29va2llLmV4cGlyZXMgPT09IFwibnVtYmVyXCIpIHtcbiAgICBjb29raWUuZXhwaXJlcyA9IG5ldyBEYXRlKGNvb2tpZS5leHBpcmVzKTtcbiAgfVxuICBpZiAoY29va2llLm1heEFnZSkge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIGNvb2tpZS5tYXhBZ2UgKiAxZTMpO1xuICB9XG4gIGlmIChjb29raWUucGF0aCA9PT0gbnVsbCB8fCBjb29raWUucGF0aCA9PT0gdm9pZCAwKSB7XG4gICAgY29va2llLnBhdGggPSBcIi9cIjtcbiAgfVxuICByZXR1cm4gY29va2llO1xufVxuLy8gQW5ub3RhdGUgdGhlIENvbW1vbkpTIGV4cG9ydCBuYW1lcyBmb3IgRVNNIGltcG9ydCBpbiBub2RlOlxuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gIFJlcXVlc3RDb29raWVzLFxuICBSZXNwb25zZUNvb2tpZXMsXG4gIHBhcnNlQ29va2llLFxuICBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llXG59KTtcbiJdLCJuYW1lcyI6WyJfX2RlZlByb3AiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl9fZ2V0T3duUHJvcERlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfX2dldE93blByb3BOYW1lcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJfX2hhc093blByb3AiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIl9fZXhwb3J0IiwidGFyZ2V0IiwiYWxsIiwibmFtZSIsImdldCIsImVudW1lcmFibGUiLCJfX2NvcHlQcm9wcyIsInRvIiwiZnJvbSIsImV4Y2VwdCIsImRlc2MiLCJrZXkiLCJjYWxsIiwiX190b0NvbW1vbkpTIiwibW9kIiwidmFsdWUiLCJzcmNfZXhwb3J0cyIsIlJlcXVlc3RDb29raWVzIiwiUmVzcG9uc2VDb29raWVzIiwicGFyc2VDb29raWUiLCJwYXJzZVNldENvb2tpZSIsInN0cmluZ2lmeUNvb2tpZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjIiwiX2EiLCJhdHRycyIsInBhdGgiLCJleHBpcmVzIiwiRGF0ZSIsInRvVVRDU3RyaW5nIiwibWF4QWdlIiwiZG9tYWluIiwic2VjdXJlIiwiaHR0cE9ubHkiLCJzYW1lU2l0ZSIsInByaW9yaXR5IiwiZmlsdGVyIiwiQm9vbGVhbiIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJjb29raWUiLCJtYXAiLCJNYXAiLCJwYWlyIiwic3BsaXQiLCJzcGxpdEF0IiwiaW5kZXhPZiIsInNldCIsInNsaWNlIiwiZGVjb2RlVVJJQ29tcG9uZW50Iiwic2V0Q29va2llIiwiYXR0cmlidXRlcyIsImh0dHBvbmx5IiwibWF4YWdlIiwic2FtZXNpdGUiLCJmcm9tRW50cmllcyIsInZhbHVlMiIsInRvTG93ZXJDYXNlIiwiTnVtYmVyIiwicGFyc2VTYW1lU2l0ZSIsInBhcnNlUHJpb3JpdHkiLCJjb21wYWN0IiwidCIsIm5ld1QiLCJTQU1FX1NJVEUiLCJzdHJpbmciLCJpbmNsdWRlcyIsIlBSSU9SSVRZIiwic3BsaXRDb29raWVzU3RyaW5nIiwiY29va2llc1N0cmluZyIsImNvb2tpZXNTdHJpbmdzIiwicG9zIiwic3RhcnQiLCJjaCIsImxhc3RDb21tYSIsIm5leHRTdGFydCIsImNvb2tpZXNTZXBhcmF0b3JGb3VuZCIsInNraXBXaGl0ZXNwYWNlIiwibGVuZ3RoIiwidGVzdCIsImNoYXJBdCIsIm5vdFNwZWNpYWxDaGFyIiwicHVzaCIsInN1YnN0cmluZyIsImNvbnN0cnVjdG9yIiwicmVxdWVzdEhlYWRlcnMiLCJfcGFyc2VkIiwiX2hlYWRlcnMiLCJoZWFkZXIiLCJwYXJzZWQiLCJTeW1ib2wiLCJpdGVyYXRvciIsInNpemUiLCJhcmdzIiwiZ2V0QWxsIiwiQXJyYXkiLCJfIiwibiIsImhhcyIsImRlbGV0ZSIsIm5hbWVzIiwicmVzdWx0IiwiaXNBcnJheSIsImNsZWFyIiwia2V5cyIsImZvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b1N0cmluZyIsInZhbHVlcyIsInYiLCJyZXNwb25zZUhlYWRlcnMiLCJfYiIsIl9jIiwiZ2V0U2V0Q29va2llIiwiY29va2llU3RyaW5ncyIsImNvb2tpZVN0cmluZyIsIm5vcm1hbGl6ZUNvb2tpZSIsInJlcGxhY2UiLCJiYWciLCJoZWFkZXJzIiwic2VyaWFsaXplZCIsImFwcGVuZCIsIm5vdyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/@opentelemetry/api/index.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/@opentelemetry/api/index.js ***!
- \*************************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var e = {\n 491: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ContextAPI = void 0;\n const n = r(223);\n const a = r(172);\n const o = r(930);\n const i = \"context\";\n const c = new n.NoopContextManager;\n class ContextAPI {\n constructor(){}\n static getInstance() {\n if (!this._instance) {\n this._instance = new ContextAPI;\n }\n return this._instance;\n }\n setGlobalContextManager(e) {\n return (0, a.registerGlobal)(i, e, o.DiagAPI.instance());\n }\n active() {\n return this._getContextManager().active();\n }\n with(e, t, r, ...n) {\n return this._getContextManager().with(e, t, r, ...n);\n }\n bind(e, t) {\n return this._getContextManager().bind(e, t);\n }\n _getContextManager() {\n return (0, a.getGlobal)(i) || c;\n }\n disable() {\n this._getContextManager().disable();\n (0, a.unregisterGlobal)(i, o.DiagAPI.instance());\n }\n }\n t.ContextAPI = ContextAPI;\n },\n 930: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagAPI = void 0;\n const n = r(56);\n const a = r(912);\n const o = r(957);\n const i = r(172);\n const c = \"diag\";\n class DiagAPI {\n constructor(){\n function _logProxy(e) {\n return function(...t) {\n const r = (0, i.getGlobal)(\"diag\");\n if (!r) return;\n return r[e](...t);\n };\n }\n const e = this;\n const setLogger = (t, r = {\n logLevel: o.DiagLogLevel.INFO\n })=>{\n var n, c, s;\n if (t === e) {\n const t = new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");\n e.error((n = t.stack) !== null && n !== void 0 ? n : t.message);\n return false;\n }\n if (typeof r === \"number\") {\n r = {\n logLevel: r\n };\n }\n const u = (0, i.getGlobal)(\"diag\");\n const l = (0, a.createLogLevelDiagLogger)((c = r.logLevel) !== null && c !== void 0 ? c : o.DiagLogLevel.INFO, t);\n if (u && !r.suppressOverrideMessage) {\n const e = (s = (new Error).stack) !== null && s !== void 0 ? s : \"<failed to generate stacktrace>\";\n u.warn(`Current logger will be overwritten from ${e}`);\n l.warn(`Current logger will overwrite one already registered from ${e}`);\n }\n return (0, i.registerGlobal)(\"diag\", l, e, true);\n };\n e.setLogger = setLogger;\n e.disable = ()=>{\n (0, i.unregisterGlobal)(c, e);\n };\n e.createComponentLogger = (e)=>new n.DiagComponentLogger(e);\n e.verbose = _logProxy(\"verbose\");\n e.debug = _logProxy(\"debug\");\n e.info = _logProxy(\"info\");\n e.warn = _logProxy(\"warn\");\n e.error = _logProxy(\"error\");\n }\n static instance() {\n if (!this._instance) {\n this._instance = new DiagAPI;\n }\n return this._instance;\n }\n }\n t.DiagAPI = DiagAPI;\n },\n 653: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.MetricsAPI = void 0;\n const n = r(660);\n const a = r(172);\n const o = r(930);\n const i = \"metrics\";\n class MetricsAPI {\n constructor(){}\n static getInstance() {\n if (!this._instance) {\n this._instance = new MetricsAPI;\n }\n return this._instance;\n }\n setGlobalMeterProvider(e) {\n return (0, a.registerGlobal)(i, e, o.DiagAPI.instance());\n }\n getMeterProvider() {\n return (0, a.getGlobal)(i) || n.NOOP_METER_PROVIDER;\n }\n getMeter(e, t, r) {\n return this.getMeterProvider().getMeter(e, t, r);\n }\n disable() {\n (0, a.unregisterGlobal)(i, o.DiagAPI.instance());\n }\n }\n t.MetricsAPI = MetricsAPI;\n },\n 181: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.PropagationAPI = void 0;\n const n = r(172);\n const a = r(874);\n const o = r(194);\n const i = r(277);\n const c = r(369);\n const s = r(930);\n const u = \"propagation\";\n const l = new a.NoopTextMapPropagator;\n class PropagationAPI {\n constructor(){\n this.createBaggage = c.createBaggage;\n this.getBaggage = i.getBaggage;\n this.getActiveBaggage = i.getActiveBaggage;\n this.setBaggage = i.setBaggage;\n this.deleteBaggage = i.deleteBaggage;\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new PropagationAPI;\n }\n return this._instance;\n }\n setGlobalPropagator(e) {\n return (0, n.registerGlobal)(u, e, s.DiagAPI.instance());\n }\n inject(e, t, r = o.defaultTextMapSetter) {\n return this._getGlobalPropagator().inject(e, t, r);\n }\n extract(e, t, r = o.defaultTextMapGetter) {\n return this._getGlobalPropagator().extract(e, t, r);\n }\n fields() {\n return this._getGlobalPropagator().fields();\n }\n disable() {\n (0, n.unregisterGlobal)(u, s.DiagAPI.instance());\n }\n _getGlobalPropagator() {\n return (0, n.getGlobal)(u) || l;\n }\n }\n t.PropagationAPI = PropagationAPI;\n },\n 997: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceAPI = void 0;\n const n = r(172);\n const a = r(846);\n const o = r(139);\n const i = r(607);\n const c = r(930);\n const s = \"trace\";\n class TraceAPI {\n constructor(){\n this._proxyTracerProvider = new a.ProxyTracerProvider;\n this.wrapSpanContext = o.wrapSpanContext;\n this.isSpanContextValid = o.isSpanContextValid;\n this.deleteSpan = i.deleteSpan;\n this.getSpan = i.getSpan;\n this.getActiveSpan = i.getActiveSpan;\n this.getSpanContext = i.getSpanContext;\n this.setSpan = i.setSpan;\n this.setSpanContext = i.setSpanContext;\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new TraceAPI;\n }\n return this._instance;\n }\n setGlobalTracerProvider(e) {\n const t = (0, n.registerGlobal)(s, this._proxyTracerProvider, c.DiagAPI.instance());\n if (t) {\n this._proxyTracerProvider.setDelegate(e);\n }\n return t;\n }\n getTracerProvider() {\n return (0, n.getGlobal)(s) || this._proxyTracerProvider;\n }\n getTracer(e, t) {\n return this.getTracerProvider().getTracer(e, t);\n }\n disable() {\n (0, n.unregisterGlobal)(s, c.DiagAPI.instance());\n this._proxyTracerProvider = new a.ProxyTracerProvider;\n }\n }\n t.TraceAPI = TraceAPI;\n },\n 277: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.deleteBaggage = t.setBaggage = t.getActiveBaggage = t.getBaggage = void 0;\n const n = r(491);\n const a = r(780);\n const o = (0, a.createContextKey)(\"OpenTelemetry Baggage Key\");\n function getBaggage(e) {\n return e.getValue(o) || undefined;\n }\n t.getBaggage = getBaggage;\n function getActiveBaggage() {\n return getBaggage(n.ContextAPI.getInstance().active());\n }\n t.getActiveBaggage = getActiveBaggage;\n function setBaggage(e, t) {\n return e.setValue(o, t);\n }\n t.setBaggage = setBaggage;\n function deleteBaggage(e) {\n return e.deleteValue(o);\n }\n t.deleteBaggage = deleteBaggage;\n },\n 993: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.BaggageImpl = void 0;\n class BaggageImpl {\n constructor(e){\n this._entries = e ? new Map(e) : new Map;\n }\n getEntry(e) {\n const t = this._entries.get(e);\n if (!t) {\n return undefined;\n }\n return Object.assign({}, t);\n }\n getAllEntries() {\n return Array.from(this._entries.entries()).map(([e, t])=>[\n e,\n t\n ]);\n }\n setEntry(e, t) {\n const r = new BaggageImpl(this._entries);\n r._entries.set(e, t);\n return r;\n }\n removeEntry(e) {\n const t = new BaggageImpl(this._entries);\n t._entries.delete(e);\n return t;\n }\n removeEntries(...e) {\n const t = new BaggageImpl(this._entries);\n for (const r of e){\n t._entries.delete(r);\n }\n return t;\n }\n clear() {\n return new BaggageImpl;\n }\n }\n t.BaggageImpl = BaggageImpl;\n },\n 830: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.baggageEntryMetadataSymbol = void 0;\n t.baggageEntryMetadataSymbol = Symbol(\"BaggageEntryMetadata\");\n },\n 369: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.baggageEntryMetadataFromString = t.createBaggage = void 0;\n const n = r(930);\n const a = r(993);\n const o = r(830);\n const i = n.DiagAPI.instance();\n function createBaggage(e = {}) {\n return new a.BaggageImpl(new Map(Object.entries(e)));\n }\n t.createBaggage = createBaggage;\n function baggageEntryMetadataFromString(e) {\n if (typeof e !== \"string\") {\n i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);\n e = \"\";\n }\n return {\n __TYPE__: o.baggageEntryMetadataSymbol,\n toString () {\n return e;\n }\n };\n }\n t.baggageEntryMetadataFromString = baggageEntryMetadataFromString;\n },\n 67: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.context = void 0;\n const n = r(491);\n t.context = n.ContextAPI.getInstance();\n },\n 223: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopContextManager = void 0;\n const n = r(780);\n class NoopContextManager {\n active() {\n return n.ROOT_CONTEXT;\n }\n with(e, t, r, ...n) {\n return t.call(r, ...n);\n }\n bind(e, t) {\n return t;\n }\n enable() {\n return this;\n }\n disable() {\n return this;\n }\n }\n t.NoopContextManager = NoopContextManager;\n },\n 780: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ROOT_CONTEXT = t.createContextKey = void 0;\n function createContextKey(e) {\n return Symbol.for(e);\n }\n t.createContextKey = createContextKey;\n class BaseContext {\n constructor(e){\n const t = this;\n t._currentContext = e ? new Map(e) : new Map;\n t.getValue = (e)=>t._currentContext.get(e);\n t.setValue = (e, r)=>{\n const n = new BaseContext(t._currentContext);\n n._currentContext.set(e, r);\n return n;\n };\n t.deleteValue = (e)=>{\n const r = new BaseContext(t._currentContext);\n r._currentContext.delete(e);\n return r;\n };\n }\n }\n t.ROOT_CONTEXT = new BaseContext;\n },\n 506: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.diag = void 0;\n const n = r(930);\n t.diag = n.DiagAPI.instance();\n },\n 56: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagComponentLogger = void 0;\n const n = r(172);\n class DiagComponentLogger {\n constructor(e){\n this._namespace = e.namespace || \"DiagComponentLogger\";\n }\n debug(...e) {\n return logProxy(\"debug\", this._namespace, e);\n }\n error(...e) {\n return logProxy(\"error\", this._namespace, e);\n }\n info(...e) {\n return logProxy(\"info\", this._namespace, e);\n }\n warn(...e) {\n return logProxy(\"warn\", this._namespace, e);\n }\n verbose(...e) {\n return logProxy(\"verbose\", this._namespace, e);\n }\n }\n t.DiagComponentLogger = DiagComponentLogger;\n function logProxy(e, t, r) {\n const a = (0, n.getGlobal)(\"diag\");\n if (!a) {\n return;\n }\n r.unshift(t);\n return a[e](...r);\n }\n },\n 972: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagConsoleLogger = void 0;\n const r = [\n {\n n: \"error\",\n c: \"error\"\n },\n {\n n: \"warn\",\n c: \"warn\"\n },\n {\n n: \"info\",\n c: \"info\"\n },\n {\n n: \"debug\",\n c: \"debug\"\n },\n {\n n: \"verbose\",\n c: \"trace\"\n }\n ];\n class DiagConsoleLogger {\n constructor(){\n function _consoleFunc(e) {\n return function(...t) {\n if (console) {\n let r = console[e];\n if (typeof r !== \"function\") {\n r = console.log;\n }\n if (typeof r === \"function\") {\n return r.apply(console, t);\n }\n }\n };\n }\n for(let e = 0; e < r.length; e++){\n this[r[e].n] = _consoleFunc(r[e].c);\n }\n }\n }\n t.DiagConsoleLogger = DiagConsoleLogger;\n },\n 912: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.createLogLevelDiagLogger = void 0;\n const n = r(957);\n function createLogLevelDiagLogger(e, t) {\n if (e < n.DiagLogLevel.NONE) {\n e = n.DiagLogLevel.NONE;\n } else if (e > n.DiagLogLevel.ALL) {\n e = n.DiagLogLevel.ALL;\n }\n t = t || {};\n function _filterFunc(r, n) {\n const a = t[r];\n if (typeof a === \"function\" && e >= n) {\n return a.bind(t);\n }\n return function() {};\n }\n return {\n error: _filterFunc(\"error\", n.DiagLogLevel.ERROR),\n warn: _filterFunc(\"warn\", n.DiagLogLevel.WARN),\n info: _filterFunc(\"info\", n.DiagLogLevel.INFO),\n debug: _filterFunc(\"debug\", n.DiagLogLevel.DEBUG),\n verbose: _filterFunc(\"verbose\", n.DiagLogLevel.VERBOSE)\n };\n }\n t.createLogLevelDiagLogger = createLogLevelDiagLogger;\n },\n 957: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.DiagLogLevel = void 0;\n var r;\n (function(e) {\n e[e[\"NONE\"] = 0] = \"NONE\";\n e[e[\"ERROR\"] = 30] = \"ERROR\";\n e[e[\"WARN\"] = 50] = \"WARN\";\n e[e[\"INFO\"] = 60] = \"INFO\";\n e[e[\"DEBUG\"] = 70] = \"DEBUG\";\n e[e[\"VERBOSE\"] = 80] = \"VERBOSE\";\n e[e[\"ALL\"] = 9999] = \"ALL\";\n })(r = t.DiagLogLevel || (t.DiagLogLevel = {}));\n },\n 172: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.unregisterGlobal = t.getGlobal = t.registerGlobal = void 0;\n const n = r(200);\n const a = r(521);\n const o = r(130);\n const i = a.VERSION.split(\".\")[0];\n const c = Symbol.for(`opentelemetry.js.api.${i}`);\n const s = n._globalThis;\n function registerGlobal(e, t, r, n = false) {\n var o;\n const i = s[c] = (o = s[c]) !== null && o !== void 0 ? o : {\n version: a.VERSION\n };\n if (!n && i[e]) {\n const t = new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);\n r.error(t.stack || t.message);\n return false;\n }\n if (i.version !== a.VERSION) {\n const t = new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);\n r.error(t.stack || t.message);\n return false;\n }\n i[e] = t;\n r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);\n return true;\n }\n t.registerGlobal = registerGlobal;\n function getGlobal(e) {\n var t, r;\n const n = (t = s[c]) === null || t === void 0 ? void 0 : t.version;\n if (!n || !(0, o.isCompatible)(n)) {\n return;\n }\n return (r = s[c]) === null || r === void 0 ? void 0 : r[e];\n }\n t.getGlobal = getGlobal;\n function unregisterGlobal(e, t) {\n t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);\n const r = s[c];\n if (r) {\n delete r[e];\n }\n }\n t.unregisterGlobal = unregisterGlobal;\n },\n 130: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.isCompatible = t._makeCompatibilityCheck = void 0;\n const n = r(521);\n const a = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n function _makeCompatibilityCheck(e) {\n const t = new Set([\n e\n ]);\n const r = new Set;\n const n = e.match(a);\n if (!n) {\n return ()=>false;\n }\n const o = {\n major: +n[1],\n minor: +n[2],\n patch: +n[3],\n prerelease: n[4]\n };\n if (o.prerelease != null) {\n return function isExactmatch(t) {\n return t === e;\n };\n }\n function _reject(e) {\n r.add(e);\n return false;\n }\n function _accept(e) {\n t.add(e);\n return true;\n }\n return function isCompatible(e) {\n if (t.has(e)) {\n return true;\n }\n if (r.has(e)) {\n return false;\n }\n const n = e.match(a);\n if (!n) {\n return _reject(e);\n }\n const i = {\n major: +n[1],\n minor: +n[2],\n patch: +n[3],\n prerelease: n[4]\n };\n if (i.prerelease != null) {\n return _reject(e);\n }\n if (o.major !== i.major) {\n return _reject(e);\n }\n if (o.major === 0) {\n if (o.minor === i.minor && o.patch <= i.patch) {\n return _accept(e);\n }\n return _reject(e);\n }\n if (o.minor <= i.minor) {\n return _accept(e);\n }\n return _reject(e);\n };\n }\n t._makeCompatibilityCheck = _makeCompatibilityCheck;\n t.isCompatible = _makeCompatibilityCheck(n.VERSION);\n },\n 886: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.metrics = void 0;\n const n = r(653);\n t.metrics = n.MetricsAPI.getInstance();\n },\n 901: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ValueType = void 0;\n var r;\n (function(e) {\n e[e[\"INT\"] = 0] = \"INT\";\n e[e[\"DOUBLE\"] = 1] = \"DOUBLE\";\n })(r = t.ValueType || (t.ValueType = {}));\n },\n 102: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.createNoopMeter = t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = t.NOOP_OBSERVABLE_GAUGE_METRIC = t.NOOP_OBSERVABLE_COUNTER_METRIC = t.NOOP_UP_DOWN_COUNTER_METRIC = t.NOOP_HISTOGRAM_METRIC = t.NOOP_COUNTER_METRIC = t.NOOP_METER = t.NoopObservableUpDownCounterMetric = t.NoopObservableGaugeMetric = t.NoopObservableCounterMetric = t.NoopObservableMetric = t.NoopHistogramMetric = t.NoopUpDownCounterMetric = t.NoopCounterMetric = t.NoopMetric = t.NoopMeter = void 0;\n class NoopMeter {\n constructor(){}\n createHistogram(e, r) {\n return t.NOOP_HISTOGRAM_METRIC;\n }\n createCounter(e, r) {\n return t.NOOP_COUNTER_METRIC;\n }\n createUpDownCounter(e, r) {\n return t.NOOP_UP_DOWN_COUNTER_METRIC;\n }\n createObservableGauge(e, r) {\n return t.NOOP_OBSERVABLE_GAUGE_METRIC;\n }\n createObservableCounter(e, r) {\n return t.NOOP_OBSERVABLE_COUNTER_METRIC;\n }\n createObservableUpDownCounter(e, r) {\n return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n }\n addBatchObservableCallback(e, t) {}\n removeBatchObservableCallback(e) {}\n }\n t.NoopMeter = NoopMeter;\n class NoopMetric {\n }\n t.NoopMetric = NoopMetric;\n class NoopCounterMetric extends NoopMetric {\n add(e, t) {}\n }\n t.NoopCounterMetric = NoopCounterMetric;\n class NoopUpDownCounterMetric extends NoopMetric {\n add(e, t) {}\n }\n t.NoopUpDownCounterMetric = NoopUpDownCounterMetric;\n class NoopHistogramMetric extends NoopMetric {\n record(e, t) {}\n }\n t.NoopHistogramMetric = NoopHistogramMetric;\n class NoopObservableMetric {\n addCallback(e) {}\n removeCallback(e) {}\n }\n t.NoopObservableMetric = NoopObservableMetric;\n class NoopObservableCounterMetric extends NoopObservableMetric {\n }\n t.NoopObservableCounterMetric = NoopObservableCounterMetric;\n class NoopObservableGaugeMetric extends NoopObservableMetric {\n }\n t.NoopObservableGaugeMetric = NoopObservableGaugeMetric;\n class NoopObservableUpDownCounterMetric extends NoopObservableMetric {\n }\n t.NoopObservableUpDownCounterMetric = NoopObservableUpDownCounterMetric;\n t.NOOP_METER = new NoopMeter;\n t.NOOP_COUNTER_METRIC = new NoopCounterMetric;\n t.NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric;\n t.NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric;\n t.NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric;\n t.NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric;\n t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric;\n function createNoopMeter() {\n return t.NOOP_METER;\n }\n t.createNoopMeter = createNoopMeter;\n },\n 660: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NOOP_METER_PROVIDER = t.NoopMeterProvider = void 0;\n const n = r(102);\n class NoopMeterProvider {\n getMeter(e, t, r) {\n return n.NOOP_METER;\n }\n }\n t.NoopMeterProvider = NoopMeterProvider;\n t.NOOP_METER_PROVIDER = new NoopMeterProvider;\n },\n 200: function(e, t, r) {\n var n = this && this.__createBinding || (Object.create ? function(e, t, r, n) {\n if (n === undefined) n = r;\n Object.defineProperty(e, n, {\n enumerable: true,\n get: function() {\n return t[r];\n }\n });\n } : function(e, t, r, n) {\n if (n === undefined) n = r;\n e[n] = t[r];\n });\n var a = this && this.__exportStar || function(e, t) {\n for(var r in e)if (r !== \"default\" && !Object.prototype.hasOwnProperty.call(t, r)) n(t, e, r);\n };\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n a(r(46), t);\n },\n 651: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t._globalThis = void 0;\n t._globalThis = typeof globalThis === \"object\" ? globalThis : __webpack_require__.g;\n },\n 46: function(e, t, r) {\n var n = this && this.__createBinding || (Object.create ? function(e, t, r, n) {\n if (n === undefined) n = r;\n Object.defineProperty(e, n, {\n enumerable: true,\n get: function() {\n return t[r];\n }\n });\n } : function(e, t, r, n) {\n if (n === undefined) n = r;\n e[n] = t[r];\n });\n var a = this && this.__exportStar || function(e, t) {\n for(var r in e)if (r !== \"default\" && !Object.prototype.hasOwnProperty.call(t, r)) n(t, e, r);\n };\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n a(r(651), t);\n },\n 939: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.propagation = void 0;\n const n = r(181);\n t.propagation = n.PropagationAPI.getInstance();\n },\n 874: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTextMapPropagator = void 0;\n class NoopTextMapPropagator {\n inject(e, t) {}\n extract(e, t) {\n return e;\n }\n fields() {\n return [];\n }\n }\n t.NoopTextMapPropagator = NoopTextMapPropagator;\n },\n 194: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.defaultTextMapSetter = t.defaultTextMapGetter = void 0;\n t.defaultTextMapGetter = {\n get (e, t) {\n if (e == null) {\n return undefined;\n }\n return e[t];\n },\n keys (e) {\n if (e == null) {\n return [];\n }\n return Object.keys(e);\n }\n };\n t.defaultTextMapSetter = {\n set (e, t, r) {\n if (e == null) {\n return;\n }\n e[t] = r;\n }\n };\n },\n 845: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.trace = void 0;\n const n = r(997);\n t.trace = n.TraceAPI.getInstance();\n },\n 403: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NonRecordingSpan = void 0;\n const n = r(476);\n class NonRecordingSpan {\n constructor(e = n.INVALID_SPAN_CONTEXT){\n this._spanContext = e;\n }\n spanContext() {\n return this._spanContext;\n }\n setAttribute(e, t) {\n return this;\n }\n setAttributes(e) {\n return this;\n }\n addEvent(e, t) {\n return this;\n }\n setStatus(e) {\n return this;\n }\n updateName(e) {\n return this;\n }\n end(e) {}\n isRecording() {\n return false;\n }\n recordException(e, t) {}\n }\n t.NonRecordingSpan = NonRecordingSpan;\n },\n 614: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTracer = void 0;\n const n = r(491);\n const a = r(607);\n const o = r(403);\n const i = r(139);\n const c = n.ContextAPI.getInstance();\n class NoopTracer {\n startSpan(e, t, r = c.active()) {\n const n = Boolean(t === null || t === void 0 ? void 0 : t.root);\n if (n) {\n return new o.NonRecordingSpan;\n }\n const s = r && (0, a.getSpanContext)(r);\n if (isSpanContext(s) && (0, i.isSpanContextValid)(s)) {\n return new o.NonRecordingSpan(s);\n } else {\n return new o.NonRecordingSpan;\n }\n }\n startActiveSpan(e, t, r, n) {\n let o;\n let i;\n let s;\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n s = t;\n } else if (arguments.length === 3) {\n o = t;\n s = r;\n } else {\n o = t;\n i = r;\n s = n;\n }\n const u = i !== null && i !== void 0 ? i : c.active();\n const l = this.startSpan(e, o, u);\n const g = (0, a.setSpan)(u, l);\n return c.with(g, s, undefined, l);\n }\n }\n t.NoopTracer = NoopTracer;\n function isSpanContext(e) {\n return typeof e === \"object\" && typeof e[\"spanId\"] === \"string\" && typeof e[\"traceId\"] === \"string\" && typeof e[\"traceFlags\"] === \"number\";\n }\n },\n 124: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.NoopTracerProvider = void 0;\n const n = r(614);\n class NoopTracerProvider {\n getTracer(e, t, r) {\n return new n.NoopTracer;\n }\n }\n t.NoopTracerProvider = NoopTracerProvider;\n },\n 125: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ProxyTracer = void 0;\n const n = r(614);\n const a = new n.NoopTracer;\n class ProxyTracer {\n constructor(e, t, r, n){\n this._provider = e;\n this.name = t;\n this.version = r;\n this.options = n;\n }\n startSpan(e, t, r) {\n return this._getTracer().startSpan(e, t, r);\n }\n startActiveSpan(e, t, r, n) {\n const a = this._getTracer();\n return Reflect.apply(a.startActiveSpan, a, arguments);\n }\n _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n const e = this._provider.getDelegateTracer(this.name, this.version, this.options);\n if (!e) {\n return a;\n }\n this._delegate = e;\n return this._delegate;\n }\n }\n t.ProxyTracer = ProxyTracer;\n },\n 846: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.ProxyTracerProvider = void 0;\n const n = r(125);\n const a = r(124);\n const o = new a.NoopTracerProvider;\n class ProxyTracerProvider {\n getTracer(e, t, r) {\n var a;\n return (a = this.getDelegateTracer(e, t, r)) !== null && a !== void 0 ? a : new n.ProxyTracer(this, e, t, r);\n }\n getDelegate() {\n var e;\n return (e = this._delegate) !== null && e !== void 0 ? e : o;\n }\n setDelegate(e) {\n this._delegate = e;\n }\n getDelegateTracer(e, t, r) {\n var n;\n return (n = this._delegate) === null || n === void 0 ? void 0 : n.getTracer(e, t, r);\n }\n }\n t.ProxyTracerProvider = ProxyTracerProvider;\n },\n 996: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SamplingDecision = void 0;\n var r;\n (function(e) {\n e[e[\"NOT_RECORD\"] = 0] = \"NOT_RECORD\";\n e[e[\"RECORD\"] = 1] = \"RECORD\";\n e[e[\"RECORD_AND_SAMPLED\"] = 2] = \"RECORD_AND_SAMPLED\";\n })(r = t.SamplingDecision || (t.SamplingDecision = {}));\n },\n 607: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.getSpanContext = t.setSpanContext = t.deleteSpan = t.setSpan = t.getActiveSpan = t.getSpan = void 0;\n const n = r(780);\n const a = r(403);\n const o = r(491);\n const i = (0, n.createContextKey)(\"OpenTelemetry Context Key SPAN\");\n function getSpan(e) {\n return e.getValue(i) || undefined;\n }\n t.getSpan = getSpan;\n function getActiveSpan() {\n return getSpan(o.ContextAPI.getInstance().active());\n }\n t.getActiveSpan = getActiveSpan;\n function setSpan(e, t) {\n return e.setValue(i, t);\n }\n t.setSpan = setSpan;\n function deleteSpan(e) {\n return e.deleteValue(i);\n }\n t.deleteSpan = deleteSpan;\n function setSpanContext(e, t) {\n return setSpan(e, new a.NonRecordingSpan(t));\n }\n t.setSpanContext = setSpanContext;\n function getSpanContext(e) {\n var t;\n return (t = getSpan(e)) === null || t === void 0 ? void 0 : t.spanContext();\n }\n t.getSpanContext = getSpanContext;\n },\n 325: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceStateImpl = void 0;\n const n = r(564);\n const a = 32;\n const o = 512;\n const i = \",\";\n const c = \"=\";\n class TraceStateImpl {\n constructor(e){\n this._internalState = new Map;\n if (e) this._parse(e);\n }\n set(e, t) {\n const r = this._clone();\n if (r._internalState.has(e)) {\n r._internalState.delete(e);\n }\n r._internalState.set(e, t);\n return r;\n }\n unset(e) {\n const t = this._clone();\n t._internalState.delete(e);\n return t;\n }\n get(e) {\n return this._internalState.get(e);\n }\n serialize() {\n return this._keys().reduce((e, t)=>{\n e.push(t + c + this.get(t));\n return e;\n }, []).join(i);\n }\n _parse(e) {\n if (e.length > o) return;\n this._internalState = e.split(i).reverse().reduce((e, t)=>{\n const r = t.trim();\n const a = r.indexOf(c);\n if (a !== -1) {\n const o = r.slice(0, a);\n const i = r.slice(a + 1, t.length);\n if ((0, n.validateKey)(o) && (0, n.validateValue)(i)) {\n e.set(o, i);\n } else {}\n }\n return e;\n }, new Map);\n if (this._internalState.size > a) {\n this._internalState = new Map(Array.from(this._internalState.entries()).reverse().slice(0, a));\n }\n }\n _keys() {\n return Array.from(this._internalState.keys()).reverse();\n }\n _clone() {\n const e = new TraceStateImpl;\n e._internalState = new Map(this._internalState);\n return e;\n }\n }\n t.TraceStateImpl = TraceStateImpl;\n },\n 564: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.validateValue = t.validateKey = void 0;\n const r = \"[_0-9a-z-*/]\";\n const n = `[a-z]${r}{0,255}`;\n const a = `[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;\n const o = new RegExp(`^(?:${n}|${a})$`);\n const i = /^[ -~]{0,255}[!-~]$/;\n const c = /,|=/;\n function validateKey(e) {\n return o.test(e);\n }\n t.validateKey = validateKey;\n function validateValue(e) {\n return i.test(e) && !c.test(e);\n }\n t.validateValue = validateValue;\n },\n 98: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.createTraceState = void 0;\n const n = r(325);\n function createTraceState(e) {\n return new n.TraceStateImpl(e);\n }\n t.createTraceState = createTraceState;\n },\n 476: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.INVALID_SPAN_CONTEXT = t.INVALID_TRACEID = t.INVALID_SPANID = void 0;\n const n = r(475);\n t.INVALID_SPANID = \"0000000000000000\";\n t.INVALID_TRACEID = \"00000000000000000000000000000000\";\n t.INVALID_SPAN_CONTEXT = {\n traceId: t.INVALID_TRACEID,\n spanId: t.INVALID_SPANID,\n traceFlags: n.TraceFlags.NONE\n };\n },\n 357: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SpanKind = void 0;\n var r;\n (function(e) {\n e[e[\"INTERNAL\"] = 0] = \"INTERNAL\";\n e[e[\"SERVER\"] = 1] = \"SERVER\";\n e[e[\"CLIENT\"] = 2] = \"CLIENT\";\n e[e[\"PRODUCER\"] = 3] = \"PRODUCER\";\n e[e[\"CONSUMER\"] = 4] = \"CONSUMER\";\n })(r = t.SpanKind || (t.SpanKind = {}));\n },\n 139: (e, t, r)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.wrapSpanContext = t.isSpanContextValid = t.isValidSpanId = t.isValidTraceId = void 0;\n const n = r(476);\n const a = r(403);\n const o = /^([0-9a-f]{32})$/i;\n const i = /^[0-9a-f]{16}$/i;\n function isValidTraceId(e) {\n return o.test(e) && e !== n.INVALID_TRACEID;\n }\n t.isValidTraceId = isValidTraceId;\n function isValidSpanId(e) {\n return i.test(e) && e !== n.INVALID_SPANID;\n }\n t.isValidSpanId = isValidSpanId;\n function isSpanContextValid(e) {\n return isValidTraceId(e.traceId) && isValidSpanId(e.spanId);\n }\n t.isSpanContextValid = isSpanContextValid;\n function wrapSpanContext(e) {\n return new a.NonRecordingSpan(e);\n }\n t.wrapSpanContext = wrapSpanContext;\n },\n 847: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.SpanStatusCode = void 0;\n var r;\n (function(e) {\n e[e[\"UNSET\"] = 0] = \"UNSET\";\n e[e[\"OK\"] = 1] = \"OK\";\n e[e[\"ERROR\"] = 2] = \"ERROR\";\n })(r = t.SpanStatusCode || (t.SpanStatusCode = {}));\n },\n 475: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.TraceFlags = void 0;\n var r;\n (function(e) {\n e[e[\"NONE\"] = 0] = \"NONE\";\n e[e[\"SAMPLED\"] = 1] = \"SAMPLED\";\n })(r = t.TraceFlags || (t.TraceFlags = {}));\n },\n 521: (e, t)=>{\n Object.defineProperty(t, \"__esModule\", {\n value: true\n });\n t.VERSION = void 0;\n t.VERSION = \"1.6.0\";\n }\n };\n var t = {};\n function __nccwpck_require__(r) {\n var n = t[r];\n if (n !== undefined) {\n return n.exports;\n }\n var a = t[r] = {\n exports: {}\n };\n var o = true;\n try {\n e[r].call(a.exports, a, a.exports, __nccwpck_require__);\n o = false;\n } finally{\n if (o) delete t[r];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var r = {};\n (()=>{\n var e = r;\n Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n e.trace = e.propagation = e.metrics = e.diag = e.context = e.INVALID_SPAN_CONTEXT = e.INVALID_TRACEID = e.INVALID_SPANID = e.isValidSpanId = e.isValidTraceId = e.isSpanContextValid = e.createTraceState = e.TraceFlags = e.SpanStatusCode = e.SpanKind = e.SamplingDecision = e.ProxyTracerProvider = e.ProxyTracer = e.defaultTextMapSetter = e.defaultTextMapGetter = e.ValueType = e.createNoopMeter = e.DiagLogLevel = e.DiagConsoleLogger = e.ROOT_CONTEXT = e.createContextKey = e.baggageEntryMetadataFromString = void 0;\n var t = __nccwpck_require__(369);\n Object.defineProperty(e, \"baggageEntryMetadataFromString\", {\n enumerable: true,\n get: function() {\n return t.baggageEntryMetadataFromString;\n }\n });\n var n = __nccwpck_require__(780);\n Object.defineProperty(e, \"createContextKey\", {\n enumerable: true,\n get: function() {\n return n.createContextKey;\n }\n });\n Object.defineProperty(e, \"ROOT_CONTEXT\", {\n enumerable: true,\n get: function() {\n return n.ROOT_CONTEXT;\n }\n });\n var a = __nccwpck_require__(972);\n Object.defineProperty(e, \"DiagConsoleLogger\", {\n enumerable: true,\n get: function() {\n return a.DiagConsoleLogger;\n }\n });\n var o = __nccwpck_require__(957);\n Object.defineProperty(e, \"DiagLogLevel\", {\n enumerable: true,\n get: function() {\n return o.DiagLogLevel;\n }\n });\n var i = __nccwpck_require__(102);\n Object.defineProperty(e, \"createNoopMeter\", {\n enumerable: true,\n get: function() {\n return i.createNoopMeter;\n }\n });\n var c = __nccwpck_require__(901);\n Object.defineProperty(e, \"ValueType\", {\n enumerable: true,\n get: function() {\n return c.ValueType;\n }\n });\n var s = __nccwpck_require__(194);\n Object.defineProperty(e, \"defaultTextMapGetter\", {\n enumerable: true,\n get: function() {\n return s.defaultTextMapGetter;\n }\n });\n Object.defineProperty(e, \"defaultTextMapSetter\", {\n enumerable: true,\n get: function() {\n return s.defaultTextMapSetter;\n }\n });\n var u = __nccwpck_require__(125);\n Object.defineProperty(e, \"ProxyTracer\", {\n enumerable: true,\n get: function() {\n return u.ProxyTracer;\n }\n });\n var l = __nccwpck_require__(846);\n Object.defineProperty(e, \"ProxyTracerProvider\", {\n enumerable: true,\n get: function() {\n return l.ProxyTracerProvider;\n }\n });\n var g = __nccwpck_require__(996);\n Object.defineProperty(e, \"SamplingDecision\", {\n enumerable: true,\n get: function() {\n return g.SamplingDecision;\n }\n });\n var p = __nccwpck_require__(357);\n Object.defineProperty(e, \"SpanKind\", {\n enumerable: true,\n get: function() {\n return p.SpanKind;\n }\n });\n var d = __nccwpck_require__(847);\n Object.defineProperty(e, \"SpanStatusCode\", {\n enumerable: true,\n get: function() {\n return d.SpanStatusCode;\n }\n });\n var _ = __nccwpck_require__(475);\n Object.defineProperty(e, \"TraceFlags\", {\n enumerable: true,\n get: function() {\n return _.TraceFlags;\n }\n });\n var f = __nccwpck_require__(98);\n Object.defineProperty(e, \"createTraceState\", {\n enumerable: true,\n get: function() {\n return f.createTraceState;\n }\n });\n var b = __nccwpck_require__(139);\n Object.defineProperty(e, \"isSpanContextValid\", {\n enumerable: true,\n get: function() {\n return b.isSpanContextValid;\n }\n });\n Object.defineProperty(e, \"isValidTraceId\", {\n enumerable: true,\n get: function() {\n return b.isValidTraceId;\n }\n });\n Object.defineProperty(e, \"isValidSpanId\", {\n enumerable: true,\n get: function() {\n return b.isValidSpanId;\n }\n });\n var v = __nccwpck_require__(476);\n Object.defineProperty(e, \"INVALID_SPANID\", {\n enumerable: true,\n get: function() {\n return v.INVALID_SPANID;\n }\n });\n Object.defineProperty(e, \"INVALID_TRACEID\", {\n enumerable: true,\n get: function() {\n return v.INVALID_TRACEID;\n }\n });\n Object.defineProperty(e, \"INVALID_SPAN_CONTEXT\", {\n enumerable: true,\n get: function() {\n return v.INVALID_SPAN_CONTEXT;\n }\n });\n const O = __nccwpck_require__(67);\n Object.defineProperty(e, \"context\", {\n enumerable: true,\n get: function() {\n return O.context;\n }\n });\n const P = __nccwpck_require__(506);\n Object.defineProperty(e, \"diag\", {\n enumerable: true,\n get: function() {\n return P.diag;\n }\n });\n const N = __nccwpck_require__(886);\n Object.defineProperty(e, \"metrics\", {\n enumerable: true,\n get: function() {\n return N.metrics;\n }\n });\n const S = __nccwpck_require__(939);\n Object.defineProperty(e, \"propagation\", {\n enumerable: true,\n get: function() {\n return S.propagation;\n }\n });\n const C = __nccwpck_require__(845);\n Object.defineProperty(e, \"trace\", {\n enumerable: true,\n get: function() {\n return C.trace;\n }\n });\n e[\"default\"] = {\n context: O.context,\n diag: P.diag,\n metrics: N.metrics,\n propagation: S.propagation,\n trace: C.trace\n };\n })();\n module.exports = r;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGkvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUksQ0FBQ0EsR0FBRUMsR0FBRUM7WUFBS0MsT0FBT0MsY0FBYyxDQUFDSCxHQUFFLGNBQWE7Z0JBQUNJLE9BQU07WUFBSTtZQUFHSixFQUFFSyxVQUFVLEdBQUMsS0FBSztZQUFFLE1BQU1DLElBQUVMLEVBQUU7WUFBSyxNQUFNTSxJQUFFTixFQUFFO1lBQUssTUFBTU8sSUFBRVAsRUFBRTtZQUFLLE1BQU1RLElBQUU7WUFBVSxNQUFNQyxJQUFFLElBQUlKLEVBQUVLLGtCQUFrQjtZQUFDLE1BQU1OO2dCQUFXTyxhQUFhLENBQUM7Z0JBQUMsT0FBT0MsY0FBYTtvQkFBQyxJQUFHLENBQUMsSUFBSSxDQUFDQyxTQUFTLEVBQUM7d0JBQUMsSUFBSSxDQUFDQSxTQUFTLEdBQUMsSUFBSVQ7b0JBQVU7b0JBQUMsT0FBTyxJQUFJLENBQUNTLFNBQVM7Z0JBQUE7Z0JBQUNDLHdCQUF3QmhCLENBQUMsRUFBQztvQkFBQyxPQUFNLENBQUMsR0FBRVEsRUFBRVMsY0FBYyxFQUFFUCxHQUFFVixHQUFFUyxFQUFFUyxPQUFPLENBQUNDLFFBQVE7Z0JBQUc7Z0JBQUNDLFNBQVE7b0JBQUMsT0FBTyxJQUFJLENBQUNDLGtCQUFrQixHQUFHRCxNQUFNO2dCQUFFO2dCQUFDRSxLQUFLdEIsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQyxHQUFHSyxDQUFDLEVBQUM7b0JBQUMsT0FBTyxJQUFJLENBQUNjLGtCQUFrQixHQUFHQyxJQUFJLENBQUN0QixHQUFFQyxHQUFFQyxNQUFLSztnQkFBRTtnQkFBQ2dCLEtBQUt2QixDQUFDLEVBQUNDLENBQUMsRUFBQztvQkFBQyxPQUFPLElBQUksQ0FBQ29CLGtCQUFrQixHQUFHRSxJQUFJLENBQUN2QixHQUFFQztnQkFB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VztZQUFLN0YsS0FBSTtnQkFBVyxPQUFPK0ssRUFBRW5ILE9BQU87WUFBQTtRQUFDO1FBQUcsTUFBTW9ILElBQUViLG9CQUFvQjtRQUFLMVAsT0FBT0MsY0FBYyxDQUFDSixHQUFFLGVBQWM7WUFBQ3VMLFlBQVc7WUFBSzdGLEtBQUk7Z0JBQVcsT0FBT2dMLEVBQUU3RSxXQUFXO1lBQUE7UUFBQztRQUFHLE1BQU04RSxJQUFFZCxvQkFBb0I7UUFBSzFQLE9BQU9DLGNBQWMsQ0FBQ0osR0FBRSxTQUFRO1lBQUN1TCxZQUFXO1lBQUs3RixLQUFJO2dCQUFXLE9BQU9pTCxFQUFFNUUsS0FBSztZQUFBO1FBQUM7UUFBRy9MLENBQUMsQ0FBQyxVQUFVLEdBQUM7WUFBQzRHLFNBQVEySixFQUFFM0osT0FBTztZQUFDTyxNQUFLcUosRUFBRXJKLElBQUk7WUFBQ21DLFNBQVFtSCxFQUFFbkgsT0FBTztZQUFDdUMsYUFBWTZFLEVBQUU3RSxXQUFXO1lBQUNFLE9BQU00RSxFQUFFNUUsS0FBSztRQUFBO0lBQUM7SUFBSzZFLE9BQU9kLE9BQU8sR0FBQzVQO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpL2luZGV4LmpzPzljMzgiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezQ5MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkNvbnRleHRBUEk9dm9pZCAwO2NvbnN0IG49cigyMjMpO2NvbnN0IGE9cigxNzIpO2NvbnN0IG89cig5MzApO2NvbnN0IGk9XCJjb250ZXh0XCI7Y29uc3QgYz1uZXcgbi5Ob29wQ29udGV4dE1hbmFnZXI7Y2xhc3MgQ29udGV4dEFQSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBDb250ZXh0QVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxDb250ZXh0TWFuYWdlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWFjdGl2ZSgpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmFjdGl2ZSgpfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkud2l0aChlLHQsciwuLi5uKX1iaW5kKGUsdCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYmluZChlLHQpfV9nZXRDb250ZXh0TWFuYWdlcigpe3JldHVybigwLGEuZ2V0R2xvYmFsKShpKXx8Y31kaXNhYmxlKCl7dGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5kaXNhYmxlKCk7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5Db250ZXh0QVBJPUNvbnRleHRBUEl9LDkzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdBUEk9dm9pZCAwO2NvbnN0IG49cig1Nik7Y29uc3QgYT1yKDkxMik7Y29uc3Qgbz1yKDk1Nyk7Y29uc3QgaT1yKDE3Mik7Y29uc3QgYz1cImRpYWdcIjtjbGFzcyBEaWFnQVBJe2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2xvZ1Byb3h5KGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCByPSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIXIpcmV0dXJuO3JldHVybiByW2VdKC4uLnQpfX1jb25zdCBlPXRoaXM7Y29uc3Qgc2V0TG9nZ2VyPSh0LHI9e2xvZ0xldmVsOm8uRGlhZ0xvZ0xldmVsLklORk99KT0+e3ZhciBuLGMscztpZih0PT09ZSl7Y29uc3QgdD1uZXcgRXJyb3IoXCJDYW5ub3QgdXNlIGRpYWcgYXMgdGhlIGxvZ2dlciBmb3IgaXRzZWxmLiBQbGVhc2UgdXNlIGEgRGlhZ0xvZ2dlciBpbXBsZW1lbnRhdGlvbiBsaWtlIENvbnNvbGVEaWFnTG9nZ2VyIG9yIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uXCIpO2UuZXJyb3IoKG49dC5zdGFjaykhPT1udWxsJiZuIT09dm9pZCAwP246dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYodHlwZW9mIHI9PT1cIm51bWJlclwiKXtyPXtsb2dMZXZlbDpyfX1jb25zdCB1PSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7Y29uc3QgbD0oMCxhLmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcikoKGM9ci5sb2dMZXZlbCkhPT1udWxsJiZjIT09dm9pZCAwP2M6by5EaWFnTG9nTGV2ZWwuSU5GTyx0KTtpZih1JiYhci5zdXBwcmVzc092ZXJyaWRlTWVzc2FnZSl7Y29uc3QgZT0ocz0obmV3IEVycm9yKS5zdGFjaykhPT1udWxsJiZzIT09dm9pZCAwP3M6XCI8ZmFpbGVkIHRvIGdlbmVyYXRlIHN0YWNrdHJhY2U+XCI7dS53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIGJlIG92ZXJ3cml0dGVuIGZyb20gJHtlfWApO2wud2FybihgQ3VycmVudCBsb2dnZXIgd2lsbCBvdmVyd3JpdGUgb25lIGFscmVhZHkgcmVnaXN0ZXJlZCBmcm9tICR7ZX1gKX1yZXR1cm4oMCxpLnJlZ2lzdGVyR2xvYmFsKShcImRpYWdcIixsLGUsdHJ1ZSl9O2Uuc2V0TG9nZ2VyPXNldExvZ2dlcjtlLmRpc2FibGU9KCk9PnsoMCxpLnVucmVnaXN0ZXJHbG9iYWwpKGMsZSl9O2UuY3JlYXRlQ29tcG9uZW50TG9nZ2VyPWU9Pm5ldyBuLkRpYWdDb21wb25lbnRMb2dnZXIoZSk7ZS52ZXJib3NlPV9sb2dQcm94eShcInZlcmJvc2VcIik7ZS5kZWJ1Zz1fbG9nUHJveHkoXCJkZWJ1Z1wiKTtlLmluZm89X2xvZ1Byb3h5KFwiaW5mb1wiKTtlLndhcm49X2xvZ1Byb3h5KFwid2FyblwiKTtlLmVycm9yPV9sb2dQcm94eShcImVycm9yXCIpfXN0YXRpYyBpbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IERpYWdBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfX10LkRpYWdBUEk9RGlhZ0FQSX0sNjUzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTWV0cmljc0FQST12b2lkIDA7Y29uc3Qgbj1yKDY2MCk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cIm1ldHJpY3NcIjtjbGFzcyBNZXRyaWNzQVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IE1ldHJpY3NBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbE1ldGVyUHJvdmlkZXIoZSl7cmV0dXJuKDAsYS5yZWdpc3Rlckdsb2JhbCkoaSxlLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX1nZXRNZXRlclByb3ZpZGVyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxuLk5PT1BfTUVURVJfUFJPVklERVJ9Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLHQscil9ZGlzYWJsZSgpeygwLGEudW5yZWdpc3Rlckdsb2JhbCkoaSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9fXQuTWV0cmljc0FQST1NZXRyaWNzQVBJfSwxODE6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm9wYWdhdGlvbkFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg3NCk7Y29uc3Qgbz1yKDE5NCk7Y29uc3QgaT1yKDI3Nyk7Y29uc3QgYz1yKDM2OSk7Y29uc3Qgcz1yKDkzMCk7Y29uc3QgdT1cInByb3BhZ2F0aW9uXCI7Y29uc3QgbD1uZXcgYS5Ob29wVGV4dE1hcFByb3BhZ2F0b3I7Y2xhc3MgUHJvcGFnYXRpb25BUEl7Y29uc3RydWN0b3IoKXt0aGlzLmNyZWF0ZUJhZ2dhZ2U9Yy5jcmVhdGVCYWdnYWdlO3RoaXMuZ2V0QmFnZ2FnZT1pLmdldEJhZ2dhZ2U7dGhpcy5nZXRBY3RpdmVCYWdnYWdlPWkuZ2V0QWN0aXZlQmFnZ2FnZTt0aGlzLnNldEJhZ2dhZ2U9aS5zZXRCYWdnYWdlO3RoaXMuZGVsZXRlQmFnZ2FnZT1pLmRlbGV0ZUJhZ2dhZ2V9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgUHJvcGFnYXRpb25BUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFByb3BhZ2F0b3IoZSl7cmV0dXJuKDAsbi5yZWdpc3Rlckdsb2JhbCkodSxlLHMuRGlhZ0FQSS5pbnN0YW5jZSgpKX1pbmplY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcFNldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5pbmplY3QoZSx0LHIpfWV4dHJhY3QoZSx0LHI9by5kZWZhdWx0VGV4dE1hcEdldHRlcil7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5leHRyYWN0KGUsdCxyKX1maWVsZHMoKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmZpZWxkcygpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHUscy5EaWFnQVBJLmluc3RhbmNlKCkpfV9nZXRHbG9iYWxQcm9wYWdhdG9yKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHUpfHxsfX10LlByb3BhZ2F0aW9uQVBJPVByb3BhZ2F0aW9uQVBJfSw5OTc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUFQST12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y29uc3QgYT1yKDg0Nik7Y29uc3Qgbz1yKDEzOSk7Y29uc3QgaT1yKDYwNyk7Y29uc3QgYz1yKDkzMCk7Y29uc3Qgcz1cInRyYWNlXCI7Y2xhc3MgVHJhY2VBUEl7Y29uc3RydWN0b3IoKXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBhLlByb3h5VHJhY2VyUHJvdmlkZXI7dGhpcy53cmFwU3BhbkNvbnRleHQ9by53cmFwU3BhbkNvbnRleHQ7dGhpcy5pc1NwYW5Db250ZXh0VmFsaWQ9by5pc1NwYW5Db250ZXh0VmFsaWQ7dGhpcy5kZWxldGVTcGFuPWkuZGVsZXRlU3Bhbjt0aGlzLmdldFNwYW49aS5nZXRTcGFuO3RoaXMuZ2V0QWN0aXZlU3Bhbj1pLmdldEFjdGl2ZVNwYW47dGhpcy5nZXRTcGFuQ29udGV4dD1pLmdldFNwYW5Db250ZXh0O3RoaXMuc2V0U3Bhbj1pLnNldFNwYW47dGhpcy5zZXRTcGFuQ29udGV4dD1pLnNldFNwYW5Db250ZXh0fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IFRyYWNlQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxUcmFjZXJQcm92aWRlcihlKXtjb25zdCB0PSgwLG4ucmVnaXN0ZXJHbG9iYWwpKHMsdGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcixjLkRpYWdBUEkuaW5zdGFuY2UoKSk7aWYodCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlci5zZXREZWxlZ2F0ZShlKX1yZXR1cm4gdH1nZXRUcmFjZXJQcm92aWRlcigpe3JldHVybigwLG4uZ2V0R2xvYmFsKShzKXx8dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcn1nZXRUcmFjZXIoZSx0KXtyZXR1cm4gdGhpcy5nZXRUcmFjZXJQcm92aWRlcigpLmdldFRyYWNlcihlLHQpfWRpc2FibGUoKXsoMCxuLnVucmVnaXN0ZXJHbG9iYWwpKHMsYy5EaWFnQVBJLmluc3RhbmNlKCkpO3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcn19dC5UcmFjZUFQST1UcmFjZUFQSX0sMjc3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGVsZXRlQmFnZ2FnZT10LnNldEJhZ2dhZ2U9dC5nZXRBY3RpdmVCYWdnYWdlPXQuZ2V0QmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDc4MCk7Y29uc3Qgbz0oMCxhLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBCYWdnYWdlIEtleVwiKTtmdW5jdGlvbiBnZXRCYWdnYWdlKGUpe3JldHVybiBlLmdldFZhbHVlKG8pfHx1bmRlZmluZWR9dC5nZXRCYWdnYWdlPWdldEJhZ2dhZ2U7ZnVuY3Rpb24gZ2V0QWN0aXZlQmFnZ2FnZSgpe3JldHVybiBnZXRCYWdnYWdlKG4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZUJhZ2dhZ2U9Z2V0QWN0aXZlQmFnZ2FnZTtmdW5jdGlvbiBzZXRCYWdnYWdlKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUobyx0KX10LnNldEJhZ2dhZ2U9c2V0QmFnZ2FnZTtmdW5jdGlvbiBkZWxldGVCYWdnYWdlKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKG8pfXQuZGVsZXRlQmFnZ2FnZT1kZWxldGVCYWdnYWdlfSw5OTM6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQmFnZ2FnZUltcGw9dm9pZCAwO2NsYXNzIEJhZ2dhZ2VJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2VudHJpZXM9ZT9uZXcgTWFwKGUpOm5ldyBNYXB9Z2V0RW50cnkoZSl7Y29uc3QgdD10aGlzLl9lbnRyaWVzLmdldChlKTtpZighdCl7cmV0dXJuIHVuZGVmaW5lZH1yZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0KX1nZXRBbGxFbnRyaWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fZW50cmllcy5lbnRyaWVzKCkpLm1hcCgoKFtlLHRdKT0+W2UsdF0pKX1zZXRFbnRyeShlLHQpe2NvbnN0IHI9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO3IuX2VudHJpZXMuc2V0KGUsdCk7cmV0dXJuIHJ9cmVtb3ZlRW50cnkoZSl7Y29uc3QgdD1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7dC5fZW50cmllcy5kZWxldGUoZSk7cmV0dXJuIHR9cmVtb3ZlRW50cmllcyguLi5lKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTtmb3IoY29uc3QgciBvZiBlKXt0Ll9lbnRyaWVzLmRlbGV0ZShyKX1yZXR1cm4gdH1jbGVhcigpe3JldHVybiBuZXcgQmFnZ2FnZUltcGx9fXQuQmFnZ2FnZUltcGw9QmFnZ2FnZUltcGx9LDgzMDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD12b2lkIDA7dC5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbD1TeW1ib2woXCJCYWdnYWdlRW50cnlNZXRhZGF0YVwiKX0sMzY5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXQuY3JlYXRlQmFnZ2FnZT12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7Y29uc3QgYT1yKDk5Myk7Y29uc3Qgbz1yKDgzMCk7Y29uc3QgaT1uLkRpYWdBUEkuaW5zdGFuY2UoKTtmdW5jdGlvbiBjcmVhdGVCYWdnYWdlKGU9e30pe3JldHVybiBuZXcgYS5CYWdnYWdlSW1wbChuZXcgTWFwKE9iamVjdC5lbnRyaWVzKGUpKSl9dC5jcmVhdGVCYWdnYWdlPWNyZWF0ZUJhZ2dhZ2U7ZnVuY3Rpb24gYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nKGUpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7aS5lcnJvcihgQ2Fubm90IGNyZWF0ZSBiYWdnYWdlIG1ldGFkYXRhIGZyb20gdW5rbm93biB0eXBlOiAke3R5cGVvZiBlfWApO2U9XCJcIn1yZXR1cm57X19UWVBFX186by5iYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbCx0b1N0cmluZygpe3JldHVybiBlfX19dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9YmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfSw2NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNvbnRleHQ9dm9pZCAwO2NvbnN0IG49cig0OTEpO3QuY29udGV4dD1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKX0sMjIzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcENvbnRleHRNYW5hZ2VyPXZvaWQgMDtjb25zdCBuPXIoNzgwKTtjbGFzcyBOb29wQ29udGV4dE1hbmFnZXJ7YWN0aXZlKCl7cmV0dXJuIG4uUk9PVF9DT05URVhUfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHQuY2FsbChyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdH1lbmFibGUoKXtyZXR1cm4gdGhpc31kaXNhYmxlKCl7cmV0dXJuIHRoaXN9fXQuTm9vcENvbnRleHRNYW5hZ2VyPU5vb3BDb250ZXh0TWFuYWdlcn0sNzgwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlJPT1RfQ09OVEVYVD10LmNyZWF0ZUNvbnRleHRLZXk9dm9pZCAwO2Z1bmN0aW9uIGNyZWF0ZUNvbnRleHRLZXkoZSl7cmV0dXJuIFN5bWJvbC5mb3IoZSl9dC5jcmVhdGVDb250ZXh0S2V5PWNyZWF0ZUNvbnRleHRLZXk7Y2xhc3MgQmFzZUNvbnRleHR7Y29uc3RydWN0b3IoZSl7Y29uc3QgdD10aGlzO3QuX2N1cnJlbnRDb250ZXh0PWU/bmV3IE1hcChlKTpuZXcgTWFwO3QuZ2V0VmFsdWU9ZT0+dC5fY3VycmVudENvbnRleHQuZ2V0KGUpO3Quc2V0VmFsdWU9KGUscik9Pntjb25zdCBuPW5ldyBCYXNlQ29udGV4dCh0Ll9jdXJyZW50Q29udGV4dCk7bi5fY3VycmVudENvbnRleHQuc2V0KGUscik7cmV0dXJuIG59O3QuZGVsZXRlVmFsdWU9ZT0+e2NvbnN0IHI9bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtyLl9jdXJyZW50Q29udGV4dC5kZWxldGUoZSk7cmV0dXJuIHJ9fX10LlJPT1RfQ09OVEVYVD1uZXcgQmFzZUNvbnRleHR9LDUwNjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRpYWc9dm9pZCAwO2NvbnN0IG49cig5MzApO3QuZGlhZz1uLkRpYWdBUEkuaW5zdGFuY2UoKX0sNTY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29tcG9uZW50TG9nZ2VyPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjbGFzcyBEaWFnQ29tcG9uZW50TG9nZ2Vye2NvbnN0cnVjdG9yKGUpe3RoaXMuX25hbWVzcGFjZT1lLm5hbWVzcGFjZXx8XCJEaWFnQ29tcG9uZW50TG9nZ2VyXCJ9ZGVidWcoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZGVidWdcIix0aGlzLl9uYW1lc3BhY2UsZSl9ZXJyb3IoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiZXJyb3JcIix0aGlzLl9uYW1lc3BhY2UsZSl9aW5mbyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJpbmZvXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXdhcm4oLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwid2FyblwiLHRoaXMuX25hbWVzcGFjZSxlKX12ZXJib3NlKC4uLmUpe3JldHVybiBsb2dQcm94eShcInZlcmJvc2VcIix0aGlzLl9uYW1lc3BhY2UsZSl9fXQuRGlhZ0NvbXBvbmVudExvZ2dlcj1EaWFnQ29tcG9uZW50TG9nZ2VyO2Z1bmN0aW9uIGxvZ1Byb3h5KGUsdCxyKXtjb25zdCBhPSgwLG4uZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIWEpe3JldHVybn1yLnVuc2hpZnQodCk7cmV0dXJuIGFbZV0oLi4ucil9fSw5NzI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0NvbnNvbGVMb2dnZXI9dm9pZCAwO2NvbnN0IHI9W3tuOlwiZXJyb3JcIixjOlwiZXJyb3JcIn0se246XCJ3YXJuXCIsYzpcIndhcm5cIn0se246XCJpbmZvXCIsYzpcImluZm9cIn0se246XCJkZWJ1Z1wiLGM6XCJkZWJ1Z1wifSx7bjpcInZlcmJvc2VcIixjOlwidHJhY2VcIn1dO2NsYXNzIERpYWdDb25zb2xlTG9nZ2Vye2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2NvbnNvbGVGdW5jKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtpZihjb25zb2xlKXtsZXQgcj1jb25zb2xlW2VdO2lmKHR5cGVvZiByIT09XCJmdW5jdGlvblwiKXtyPWNvbnNvbGUubG9nfWlmKHR5cGVvZiByPT09XCJmdW5jdGlvblwiKXtyZXR1cm4gci5hcHBseShjb25zb2xlLHQpfX19fWZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXt0aGlzW3JbZV0ubl09X2NvbnNvbGVGdW5jKHJbZV0uYyl9fX10LkRpYWdDb25zb2xlTG9nZ2VyPURpYWdDb25zb2xlTG9nZ2VyfSw5MTI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXI9dm9pZCAwO2NvbnN0IG49cig5NTcpO2Z1bmN0aW9uIGNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcihlLHQpe2lmKGU8bi5EaWFnTG9nTGV2ZWwuTk9ORSl7ZT1uLkRpYWdMb2dMZXZlbC5OT05FfWVsc2UgaWYoZT5uLkRpYWdMb2dMZXZlbC5BTEwpe2U9bi5EaWFnTG9nTGV2ZWwuQUxMfXQ9dHx8e307ZnVuY3Rpb24gX2ZpbHRlckZ1bmMocixuKXtjb25zdCBhPXRbcl07aWYodHlwZW9mIGE9PT1cImZ1bmN0aW9uXCImJmU+PW4pe3JldHVybiBhLmJpbmQodCl9cmV0dXJuIGZ1bmN0aW9uKCl7fX1yZXR1cm57ZXJyb3I6X2ZpbHRlckZ1bmMoXCJlcnJvclwiLG4uRGlhZ0xvZ0xldmVsLkVSUk9SKSx3YXJuOl9maWx0ZXJGdW5jKFwid2FyblwiLG4uRGlhZ0xvZ0xldmVsLldBUk4pLGluZm86X2ZpbHRlckZ1bmMoXCJpbmZvXCIsbi5EaWFnTG9nTGV2ZWwuSU5GTyksZGVidWc6X2ZpbHRlckZ1bmMoXCJkZWJ1Z1wiLG4uRGlhZ0xvZ0xldmVsLkRFQlVHKSx2ZXJib3NlOl9maWx0ZXJGdW5jKFwidmVyYm9zZVwiLG4uRGlhZ0xvZ0xldmVsLlZFUkJPU0UpfX10LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj1jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXJ9LDk1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnTG9nTGV2ZWw9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT05FXCJdPTBdPVwiTk9ORVwiO2VbZVtcIkVSUk9SXCJdPTMwXT1cIkVSUk9SXCI7ZVtlW1wiV0FSTlwiXT01MF09XCJXQVJOXCI7ZVtlW1wiSU5GT1wiXT02MF09XCJJTkZPXCI7ZVtlW1wiREVCVUdcIl09NzBdPVwiREVCVUdcIjtlW2VbXCJWRVJCT1NFXCJdPTgwXT1cIlZFUkJPU0VcIjtlW2VbXCJBTExcIl09OTk5OV09XCJBTExcIn0pKHI9dC5EaWFnTG9nTGV2ZWx8fCh0LkRpYWdMb2dMZXZlbD17fSkpfSwxNzI6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC51bnJlZ2lzdGVyR2xvYmFsPXQuZ2V0R2xvYmFsPXQucmVnaXN0ZXJHbG9iYWw9dm9pZCAwO2NvbnN0IG49cigyMDApO2NvbnN0IGE9cig1MjEpO2NvbnN0IG89cigxMzApO2NvbnN0IGk9YS5WRVJTSU9OLnNwbGl0KFwiLlwiKVswXTtjb25zdCBjPVN5bWJvbC5mb3IoYG9wZW50ZWxlbWV0cnkuanMuYXBpLiR7aX1gKTtjb25zdCBzPW4uX2dsb2JhbFRoaXM7ZnVuY3Rpb24gcmVnaXN0ZXJHbG9iYWwoZSx0LHIsbj1mYWxzZSl7dmFyIG87Y29uc3QgaT1zW2NdPShvPXNbY10pIT09bnVsbCYmbyE9PXZvaWQgMD9vOnt2ZXJzaW9uOmEuVkVSU0lPTn07aWYoIW4mJmlbZV0pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IEF0dGVtcHRlZCBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIG9mIEFQSTogJHtlfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aWYoaS52ZXJzaW9uIT09YS5WRVJTSU9OKXtjb25zdCB0PW5ldyBFcnJvcihgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RyYXRpb24gb2YgdmVyc2lvbiB2JHtpLnZlcnNpb259IGZvciAke2V9IGRvZXMgbm90IG1hdGNoIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBBUEkgdiR7YS5WRVJTSU9OfWApO3IuZXJyb3IodC5zdGFja3x8dC5tZXNzYWdlKTtyZXR1cm4gZmFsc2V9aVtlXT10O3IuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0ZXJlZCBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO3JldHVybiB0cnVlfXQucmVnaXN0ZXJHbG9iYWw9cmVnaXN0ZXJHbG9iYWw7ZnVuY3Rpb24gZ2V0R2xvYmFsKGUpe3ZhciB0LHI7Y29uc3Qgbj0odD1zW2NdKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQudmVyc2lvbjtpZighbnx8ISgwLG8uaXNDb21wYXRpYmxlKShuKSl7cmV0dXJufXJldHVybihyPXNbY10pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6cltlXX10LmdldEdsb2JhbD1nZXRHbG9iYWw7ZnVuY3Rpb24gdW5yZWdpc3Rlckdsb2JhbChlLHQpe3QuZGVidWcoYEBvcGVudGVsZW1ldHJ5L2FwaTogVW5yZWdpc3RlcmluZyBhIGdsb2JhbCBmb3IgJHtlfSB2JHthLlZFUlNJT059LmApO2NvbnN0IHI9c1tjXTtpZihyKXtkZWxldGUgcltlXX19dC51bnJlZ2lzdGVyR2xvYmFsPXVucmVnaXN0ZXJHbG9iYWx9LDEzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmlzQ29tcGF0aWJsZT10Ll9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrPXZvaWQgMDtjb25zdCBuPXIoNTIxKTtjb25zdCBhPS9eKFxcZCspXFwuKFxcZCspXFwuKFxcZCspKC0oLispKT8kLztmdW5jdGlvbiBfbWFrZUNvbXBhdGliaWxpdHlDaGVjayhlKXtjb25zdCB0PW5ldyBTZXQoW2VdKTtjb25zdCByPW5ldyBTZXQ7Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4oKT0+ZmFsc2V9Y29uc3Qgbz17bWFqb3I6K25bMV0sbWlub3I6K25bMl0scGF0Y2g6K25bM10scHJlcmVsZWFzZTpuWzRdfTtpZihvLnByZXJlbGVhc2UhPW51bGwpe3JldHVybiBmdW5jdGlvbiBpc0V4YWN0bWF0Y2godCl7cmV0dXJuIHQ9PT1lfX1mdW5jdGlvbiBfcmVqZWN0KGUpe3IuYWRkKGUpO3JldHVybiBmYWxzZX1mdW5jdGlvbiBfYWNjZXB0KGUpe3QuYWRkKGUpO3JldHVybiB0cnVlfXJldHVybiBmdW5jdGlvbiBpc0NvbXBhdGlibGUoZSl7aWYodC5oYXMoZSkpe3JldHVybiB0cnVlfWlmKHIuaGFzKGUpKXtyZXR1cm4gZmFsc2V9Y29uc3Qgbj1lLm1hdGNoKGEpO2lmKCFuKXtyZXR1cm4gX3JlamVjdChlKX1jb25zdCBpPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKGkucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvciE9PWkubWFqb3Ipe3JldHVybiBfcmVqZWN0KGUpfWlmKG8ubWFqb3I9PT0wKXtpZihvLm1pbm9yPT09aS5taW5vciYmby5wYXRjaDw9aS5wYXRjaCl7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9aWYoby5taW5vcjw9aS5taW5vcil7cmV0dXJuIF9hY2NlcHQoZSl9cmV0dXJuIF9yZWplY3QoZSl9fXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2s7dC5pc0NvbXBhdGlibGU9X21ha2VDb21wYXRpYmlsaXR5Q2hlY2sobi5WRVJTSU9OKX0sODg2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QubWV0cmljcz12b2lkIDA7Y29uc3Qgbj1yKDY1Myk7dC5tZXRyaWNzPW4uTWV0cmljc0FQSS5nZXRJbnN0YW5jZSgpfSw5MDE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVmFsdWVUeXBlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiSU5UXCJdPTBdPVwiSU5UXCI7ZVtlW1wiRE9VQkxFXCJdPTFdPVwiRE9VQkxFXCJ9KShyPXQuVmFsdWVUeXBlfHwodC5WYWx1ZVR5cGU9e30pKX0sMTAyOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZU5vb3BNZXRlcj10Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz10Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz10Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz10Lk5PT1BfSElTVE9HUkFNX01FVFJJQz10Lk5PT1BfQ09VTlRFUl9NRVRSSUM9dC5OT09QX01FVEVSPXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlTWV0cmljPXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPXQuTm9vcENvdW50ZXJNZXRyaWM9dC5Ob29wTWV0cmljPXQuTm9vcE1ldGVyPXZvaWQgMDtjbGFzcyBOb29wTWV0ZXJ7Y29uc3RydWN0b3IoKXt9Y3JlYXRlSGlzdG9ncmFtKGUscil7cmV0dXJuIHQuTk9PUF9ISVNUT0dSQU1fTUVUUklDfWNyZWF0ZUNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX0NPVU5URVJfTUVUUklDfWNyZWF0ZVVwRG93bkNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZUdhdWdlKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDfWFkZEJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUsdCl7fXJlbW92ZUJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrKGUpe319dC5Ob29wTWV0ZXI9Tm9vcE1ldGVyO2NsYXNzIE5vb3BNZXRyaWN7fXQuTm9vcE1ldHJpYz1Ob29wTWV0cmljO2NsYXNzIE5vb3BDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3thZGQoZSx0KXt9fXQuTm9vcENvdW50ZXJNZXRyaWM9Tm9vcENvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wVXBEb3duQ291bnRlck1ldHJpYz1Ob29wVXBEb3duQ291bnRlck1ldHJpYztjbGFzcyBOb29wSGlzdG9ncmFtTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3tyZWNvcmQoZSx0KXt9fXQuTm9vcEhpc3RvZ3JhbU1ldHJpYz1Ob29wSGlzdG9ncmFtTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlTWV0cmlje2FkZENhbGxiYWNrKGUpe31yZW1vdmVDYWxsYmFjayhlKXt9fXQuTm9vcE9ic2VydmFibGVNZXRyaWM9Tm9vcE9ic2VydmFibGVNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYz1Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX01FVEVSPW5ldyBOb29wTWV0ZXI7dC5OT09QX0NPVU5URVJfTUVUUklDPW5ldyBOb29wQ291bnRlck1ldHJpYzt0Lk5PT1BfSElTVE9HUkFNX01FVFJJQz1uZXcgTm9vcEhpc3RvZ3JhbU1ldHJpYzt0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljO2Z1bmN0aW9uIGNyZWF0ZU5vb3BNZXRlcigpe3JldHVybiB0Lk5PT1BfTUVURVJ9dC5jcmVhdGVOb29wTWV0ZXI9Y3JlYXRlTm9vcE1ldGVyfSw2NjA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5OT09QX01FVEVSX1BST1ZJREVSPXQuTm9vcE1ldGVyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMDIpO2NsYXNzIE5vb3BNZXRlclByb3ZpZGVye2dldE1ldGVyKGUsdCxyKXtyZXR1cm4gbi5OT09QX01FVEVSfX10Lk5vb3BNZXRlclByb3ZpZGVyPU5vb3BNZXRlclByb3ZpZGVyO3QuTk9PUF9NRVRFUl9QUk9WSURFUj1uZXcgTm9vcE1ldGVyUHJvdmlkZXJ9LDIwMDpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDQ2KSx0KX0sNjUxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Ll9nbG9iYWxUaGlzPXZvaWQgMDt0Ll9nbG9iYWxUaGlzPXR5cGVvZiBnbG9iYWxUaGlzPT09XCJvYmplY3RcIj9nbG9iYWxUaGlzOmdsb2JhbH0sNDY6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSl9OmZ1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO2Vbbl09dFtyXX0pO3ZhciBhPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKWlmKHIhPT1cImRlZmF1bHRcIiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKW4odCxlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2Eocig2NTEpLHQpfSw5Mzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5wcm9wYWdhdGlvbj12b2lkIDA7Y29uc3Qgbj1yKDE4MSk7dC5wcm9wYWdhdGlvbj1uLlByb3BhZ2F0aW9uQVBJLmdldEluc3RhbmNlKCl9LDg3NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVGV4dE1hcFByb3BhZ2F0b3I9dm9pZCAwO2NsYXNzIE5vb3BUZXh0TWFwUHJvcGFnYXRvcntpbmplY3QoZSx0KXt9ZXh0cmFjdChlLHQpe3JldHVybiBlfWZpZWxkcygpe3JldHVybltdfX10Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj1Ob29wVGV4dE1hcFByb3BhZ2F0b3J9LDE5NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWZhdWx0VGV4dE1hcFNldHRlcj10LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXZvaWQgMDt0LmRlZmF1bHRUZXh0TWFwR2V0dGVyPXtnZXQoZSx0KXtpZihlPT1udWxsKXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBlW3RdfSxrZXlzKGUpe2lmKGU9PW51bGwpe3JldHVybltdfXJldHVybiBPYmplY3Qua2V5cyhlKX19O3QuZGVmYXVsdFRleHRNYXBTZXR0ZXI9e3NldChlLHQscil7aWYoZT09bnVsbCl7cmV0dXJufWVbdF09cn19fSw4NDU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC50cmFjZT12b2lkIDA7Y29uc3Qgbj1yKDk5Nyk7dC50cmFjZT1uLlRyYWNlQVBJLmdldEluc3RhbmNlKCl9LDQwMzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vblJlY29yZGluZ1NwYW49dm9pZCAwO2NvbnN0IG49cig0NzYpO2NsYXNzIE5vblJlY29yZGluZ1NwYW57Y29uc3RydWN0b3IoZT1uLklOVkFMSURfU1BBTl9DT05URVhUKXt0aGlzLl9zcGFuQ29udGV4dD1lfXNwYW5Db250ZXh0KCl7cmV0dXJuIHRoaXMuX3NwYW5Db250ZXh0fXNldEF0dHJpYnV0ZShlLHQpe3JldHVybiB0aGlzfXNldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIHRoaXN9YWRkRXZlbnQoZSx0KXtyZXR1cm4gdGhpc31zZXRTdGF0dXMoZSl7cmV0dXJuIHRoaXN9dXBkYXRlTmFtZShlKXtyZXR1cm4gdGhpc31lbmQoZSl7fWlzUmVjb3JkaW5nKCl7cmV0dXJuIGZhbHNlfXJlY29yZEV4Y2VwdGlvbihlLHQpe319dC5Ob25SZWNvcmRpbmdTcGFuPU5vblJlY29yZGluZ1NwYW59LDYxNDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUcmFjZXI9dm9pZCAwO2NvbnN0IG49cig0OTEpO2NvbnN0IGE9cig2MDcpO2NvbnN0IG89cig0MDMpO2NvbnN0IGk9cigxMzkpO2NvbnN0IGM9bi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCk7Y2xhc3MgTm9vcFRyYWNlcntzdGFydFNwYW4oZSx0LHI9Yy5hY3RpdmUoKSl7Y29uc3Qgbj1Cb29sZWFuKHQ9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnJvb3QpO2lmKG4pe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufWNvbnN0IHM9ciYmKDAsYS5nZXRTcGFuQ29udGV4dCkocik7aWYoaXNTcGFuQ29udGV4dChzKSYmKDAsaS5pc1NwYW5Db250ZXh0VmFsaWQpKHMpKXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3BhbihzKX1lbHNle3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFufX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7bGV0IG87bGV0IGk7bGV0IHM7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtyZXR1cm59ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Mil7cz10fWVsc2UgaWYoYXJndW1lbnRzLmxlbmd0aD09PTMpe289dDtzPXJ9ZWxzZXtvPXQ7aT1yO3M9bn1jb25zdCB1PWkhPT1udWxsJiZpIT09dm9pZCAwP2k6Yy5hY3RpdmUoKTtjb25zdCBsPXRoaXMuc3RhcnRTcGFuKGUsbyx1KTtjb25zdCBnPSgwLGEuc2V0U3BhbikodSxsKTtyZXR1cm4gYy53aXRoKGcscyx1bmRlZmluZWQsbCl9fXQuTm9vcFRyYWNlcj1Ob29wVHJhY2VyO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHQoZSl7cmV0dXJuIHR5cGVvZiBlPT09XCJvYmplY3RcIiYmdHlwZW9mIGVbXCJzcGFuSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlSWRcIl09PT1cInN0cmluZ1wiJiZ0eXBlb2YgZVtcInRyYWNlRmxhZ3NcIl09PT1cIm51bWJlclwifX0sMTI0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjbGFzcyBOb29wVHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXtyZXR1cm4gbmV3IG4uTm9vcFRyYWNlcn19dC5Ob29wVHJhY2VyUHJvdmlkZXI9Tm9vcFRyYWNlclByb3ZpZGVyfSwxMjU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDYxNCk7Y29uc3QgYT1uZXcgbi5Ob29wVHJhY2VyO2NsYXNzIFByb3h5VHJhY2Vye2NvbnN0cnVjdG9yKGUsdCxyLG4pe3RoaXMuX3Byb3ZpZGVyPWU7dGhpcy5uYW1lPXQ7dGhpcy52ZXJzaW9uPXI7dGhpcy5vcHRpb25zPW59c3RhcnRTcGFuKGUsdCxyKXtyZXR1cm4gdGhpcy5fZ2V0VHJhY2VyKCkuc3RhcnRTcGFuKGUsdCxyKX1zdGFydEFjdGl2ZVNwYW4oZSx0LHIsbil7Y29uc3QgYT10aGlzLl9nZXRUcmFjZXIoKTtyZXR1cm4gUmVmbGVjdC5hcHBseShhLnN0YXJ0QWN0aXZlU3BhbixhLGFyZ3VtZW50cyl9X2dldFRyYWNlcigpe2lmKHRoaXMuX2RlbGVnYXRlKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9Y29uc3QgZT10aGlzLl9wcm92aWRlci5nZXREZWxlZ2F0ZVRyYWNlcih0aGlzLm5hbWUsdGhpcy52ZXJzaW9uLHRoaXMub3B0aW9ucyk7aWYoIWUpe3JldHVybiBhfXRoaXMuX2RlbGVnYXRlPWU7cmV0dXJuIHRoaXMuX2RlbGVnYXRlfX10LlByb3h5VHJhY2VyPVByb3h5VHJhY2VyfSw4NDY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Qcm94eVRyYWNlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoMTI1KTtjb25zdCBhPXIoMTI0KTtjb25zdCBvPW5ldyBhLk5vb3BUcmFjZXJQcm92aWRlcjtjbGFzcyBQcm94eVRyYWNlclByb3ZpZGVye2dldFRyYWNlcihlLHQscil7dmFyIGE7cmV0dXJuKGE9dGhpcy5nZXREZWxlZ2F0ZVRyYWNlcihlLHQscikpIT09bnVsbCYmYSE9PXZvaWQgMD9hOm5ldyBuLlByb3h5VHJhY2VyKHRoaXMsZSx0LHIpfWdldERlbGVnYXRlKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5fZGVsZWdhdGUpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm99c2V0RGVsZWdhdGUoZSl7dGhpcy5fZGVsZWdhdGU9ZX1nZXREZWxlZ2F0ZVRyYWNlcihlLHQscil7dmFyIG47cmV0dXJuKG49dGhpcy5fZGVsZWdhdGUpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5nZXRUcmFjZXIoZSx0LHIpfX10LlByb3h5VHJhY2VyUHJvdmlkZXI9UHJveHlUcmFjZXJQcm92aWRlcn0sOTk2OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNhbXBsaW5nRGVjaXNpb249dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT1RfUkVDT1JEXCJdPTBdPVwiTk9UX1JFQ09SRFwiO2VbZVtcIlJFQ09SRFwiXT0xXT1cIlJFQ09SRFwiO2VbZVtcIlJFQ09SRF9BTkRfU0FNUExFRFwiXT0yXT1cIlJFQ09SRF9BTkRfU0FNUExFRFwifSkocj10LlNhbXBsaW5nRGVjaXNpb258fCh0LlNhbXBsaW5nRGVjaXNpb249e30pKX0sNjA3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZ2V0U3BhbkNvbnRleHQ9dC5zZXRTcGFuQ29udGV4dD10LmRlbGV0ZVNwYW49dC5zZXRTcGFuPXQuZ2V0QWN0aXZlU3Bhbj10LmdldFNwYW49dm9pZCAwO2NvbnN0IG49cig3ODApO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89cig0OTEpO2NvbnN0IGk9KDAsbi5jcmVhdGVDb250ZXh0S2V5KShcIk9wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgU1BBTlwiKTtmdW5jdGlvbiBnZXRTcGFuKGUpe3JldHVybiBlLmdldFZhbHVlKGkpfHx1bmRlZmluZWR9dC5nZXRTcGFuPWdldFNwYW47ZnVuY3Rpb24gZ2V0QWN0aXZlU3Bhbigpe3JldHVybiBnZXRTcGFuKG8uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpLmFjdGl2ZSgpKX10LmdldEFjdGl2ZVNwYW49Z2V0QWN0aXZlU3BhbjtmdW5jdGlvbiBzZXRTcGFuKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUoaSx0KX10LnNldFNwYW49c2V0U3BhbjtmdW5jdGlvbiBkZWxldGVTcGFuKGUpe3JldHVybiBlLmRlbGV0ZVZhbHVlKGkpfXQuZGVsZXRlU3Bhbj1kZWxldGVTcGFuO2Z1bmN0aW9uIHNldFNwYW5Db250ZXh0KGUsdCl7cmV0dXJuIHNldFNwYW4oZSxuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKHQpKX10LnNldFNwYW5Db250ZXh0PXNldFNwYW5Db250ZXh0O2Z1bmN0aW9uIGdldFNwYW5Db250ZXh0KGUpe3ZhciB0O3JldHVybih0PWdldFNwYW4oZSkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5zcGFuQ29udGV4dCgpfXQuZ2V0U3BhbkNvbnRleHQ9Z2V0U3BhbkNvbnRleHR9LDMyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlU3RhdGVJbXBsPXZvaWQgMDtjb25zdCBuPXIoNTY0KTtjb25zdCBhPTMyO2NvbnN0IG89NTEyO2NvbnN0IGk9XCIsXCI7Y29uc3QgYz1cIj1cIjtjbGFzcyBUcmFjZVN0YXRlSW1wbHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXA7aWYoZSl0aGlzLl9wYXJzZShlKX1zZXQoZSx0KXtjb25zdCByPXRoaXMuX2Nsb25lKCk7aWYoci5faW50ZXJuYWxTdGF0ZS5oYXMoZSkpe3IuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpfXIuX2ludGVybmFsU3RhdGUuc2V0KGUsdCk7cmV0dXJuIHJ9dW5zZXQoZSl7Y29uc3QgdD10aGlzLl9jbG9uZSgpO3QuX2ludGVybmFsU3RhdGUuZGVsZXRlKGUpO3JldHVybiB0fWdldChlKXtyZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZS5nZXQoZSl9c2VyaWFsaXplKCl7cmV0dXJuIHRoaXMuX2tleXMoKS5yZWR1Y2UoKChlLHQpPT57ZS5wdXNoKHQrYyt0aGlzLmdldCh0KSk7cmV0dXJuIGV9KSxbXSkuam9pbihpKX1fcGFyc2UoZSl7aWYoZS5sZW5ndGg+bylyZXR1cm47dGhpcy5faW50ZXJuYWxTdGF0ZT1lLnNwbGl0KGkpLnJldmVyc2UoKS5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgcj10LnRyaW0oKTtjb25zdCBhPXIuaW5kZXhPZihjKTtpZihhIT09LTEpe2NvbnN0IG89ci5zbGljZSgwLGEpO2NvbnN0IGk9ci5zbGljZShhKzEsdC5sZW5ndGgpO2lmKCgwLG4udmFsaWRhdGVLZXkpKG8pJiYoMCxuLnZhbGlkYXRlVmFsdWUpKGkpKXtlLnNldChvLGkpfWVsc2V7fX1yZXR1cm4gZX0pLG5ldyBNYXApO2lmKHRoaXMuX2ludGVybmFsU3RhdGUuc2l6ZT5hKXt0aGlzLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAoQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmVudHJpZXMoKSkucmV2ZXJzZSgpLnNsaWNlKDAsYSkpfX1fa2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUua2V5cygpKS5yZXZlcnNlKCl9X2Nsb25lKCl7Y29uc3QgZT1uZXcgVHJhY2VTdGF0ZUltcGw7ZS5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwKHRoaXMuX2ludGVybmFsU3RhdGUpO3JldHVybiBlfX10LlRyYWNlU3RhdGVJbXBsPVRyYWNlU3RhdGVJbXBsfSw1NjQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudmFsaWRhdGVWYWx1ZT10LnZhbGlkYXRlS2V5PXZvaWQgMDtjb25zdCByPVwiW18wLTlhLXotKi9dXCI7Y29uc3Qgbj1gW2Etel0ke3J9ezAsMjU1fWA7Y29uc3QgYT1gW2EtejAtOV0ke3J9ezAsMjQwfUBbYS16XSR7cn17MCwxM31gO2NvbnN0IG89bmV3IFJlZ0V4cChgXig/OiR7bn18JHthfSkkYCk7Y29uc3QgaT0vXlsgLX5dezAsMjU1fVshLX5dJC87Y29uc3QgYz0vLHw9LztmdW5jdGlvbiB2YWxpZGF0ZUtleShlKXtyZXR1cm4gby50ZXN0KGUpfXQudmFsaWRhdGVLZXk9dmFsaWRhdGVLZXk7ZnVuY3Rpb24gdmFsaWRhdGVWYWx1ZShlKXtyZXR1cm4gaS50ZXN0KGUpJiYhYy50ZXN0KGUpfXQudmFsaWRhdGVWYWx1ZT12YWxpZGF0ZVZhbHVlfSw5ODooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZVRyYWNlU3RhdGU9dm9pZCAwO2NvbnN0IG49cigzMjUpO2Z1bmN0aW9uIGNyZWF0ZVRyYWNlU3RhdGUoZSl7cmV0dXJuIG5ldyBuLlRyYWNlU3RhdGVJbXBsKGUpfXQuY3JlYXRlVHJhY2VTdGF0ZT1jcmVhdGVUcmFjZVN0YXRlfSw0NzY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5JTlZBTElEX1NQQU5fQ09OVEVYVD10LklOVkFMSURfVFJBQ0VJRD10LklOVkFMSURfU1BBTklEPXZvaWQgMDtjb25zdCBuPXIoNDc1KTt0LklOVkFMSURfU1BBTklEPVwiMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9UUkFDRUlEPVwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIjt0LklOVkFMSURfU1BBTl9DT05URVhUPXt0cmFjZUlkOnQuSU5WQUxJRF9UUkFDRUlELHNwYW5JZDp0LklOVkFMSURfU1BBTklELHRyYWNlRmxhZ3M6bi5UcmFjZUZsYWdzLk5PTkV9fSwzNTc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU3BhbktpbmQ9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRFUk5BTFwiXT0wXT1cIklOVEVSTkFMXCI7ZVtlW1wiU0VSVkVSXCJdPTFdPVwiU0VSVkVSXCI7ZVtlW1wiQ0xJRU5UXCJdPTJdPVwiQ0xJRU5UXCI7ZVtlW1wiUFJPRFVDRVJcIl09M109XCJQUk9EVUNFUlwiO2VbZVtcIkNPTlNVTUVSXCJdPTRdPVwiQ09OU1VNRVJcIn0pKHI9dC5TcGFuS2luZHx8KHQuU3BhbktpbmQ9e30pKX0sMTM5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3Qud3JhcFNwYW5Db250ZXh0PXQuaXNTcGFuQ29udGV4dFZhbGlkPXQuaXNWYWxpZFNwYW5JZD10LmlzVmFsaWRUcmFjZUlkPXZvaWQgMDtjb25zdCBuPXIoNDc2KTtjb25zdCBhPXIoNDAzKTtjb25zdCBvPS9eKFswLTlhLWZdezMyfSkkL2k7Y29uc3QgaT0vXlswLTlhLWZdezE2fSQvaTtmdW5jdGlvbiBpc1ZhbGlkVHJhY2VJZChlKXtyZXR1cm4gby50ZXN0KGUpJiZlIT09bi5JTlZBTElEX1RSQUNFSUR9dC5pc1ZhbGlkVHJhY2VJZD1pc1ZhbGlkVHJhY2VJZDtmdW5jdGlvbiBpc1ZhbGlkU3BhbklkKGUpe3JldHVybiBpLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfU1BBTklEfXQuaXNWYWxpZFNwYW5JZD1pc1ZhbGlkU3BhbklkO2Z1bmN0aW9uIGlzU3BhbkNvbnRleHRWYWxpZChlKXtyZXR1cm4gaXNWYWxpZFRyYWNlSWQoZS50cmFjZUlkKSYmaXNWYWxpZFNwYW5JZChlLnNwYW5JZCl9dC5pc1NwYW5Db250ZXh0VmFsaWQ9aXNTcGFuQ29udGV4dFZhbGlkO2Z1bmN0aW9uIHdyYXBTcGFuQ29udGV4dChlKXtyZXR1cm4gbmV3IGEuTm9uUmVjb3JkaW5nU3BhbihlKX10LndyYXBTcGFuQ29udGV4dD13cmFwU3BhbkNvbnRleHR9LDg0NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuU3RhdHVzQ29kZT12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIlVOU0VUXCJdPTBdPVwiVU5TRVRcIjtlW2VbXCJPS1wiXT0xXT1cIk9LXCI7ZVtlW1wiRVJST1JcIl09Ml09XCJFUlJPUlwifSkocj10LlNwYW5TdGF0dXNDb2RlfHwodC5TcGFuU3RhdHVzQ29kZT17fSkpfSw0NzU6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VGbGFncz12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiU0FNUExFRFwiXT0xXT1cIlNBTVBMRURcIn0pKHI9dC5UcmFjZUZsYWdzfHwodC5UcmFjZUZsYWdzPXt9KSl9LDUyMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WRVJTSU9OPXZvaWQgMDt0LlZFUlNJT049XCIxLjYuMFwifX07dmFyIHQ9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhyKXt2YXIgbj10W3JdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGE9dFtyXT17ZXhwb3J0czp7fX07dmFyIG89dHJ1ZTt0cnl7ZVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtvPWZhbHNlfWZpbmFsbHl7aWYobylkZWxldGUgdFtyXX1yZXR1cm4gYS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgcj17fTsoKCk9Pnt2YXIgZT1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7ZS50cmFjZT1lLnByb3BhZ2F0aW9uPWUubWV0cmljcz1lLmRpYWc9ZS5jb250ZXh0PWUuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9ZS5JTlZBTElEX1RSQUNFSUQ9ZS5JTlZBTElEX1NQQU5JRD1lLmlzVmFsaWRTcGFuSWQ9ZS5pc1ZhbGlkVHJhY2VJZD1lLmlzU3BhbkNvbnRleHRWYWxpZD1lLmNyZWF0ZVRyYWNlU3RhdGU9ZS5UcmFjZUZsYWdzPWUuU3BhblN0YXR1c0NvZGU9ZS5TcGFuS2luZD1lLlNhbXBsaW5nRGVjaXNpb249ZS5Qcm94eVRyYWNlclByb3ZpZGVyPWUuUHJveHlUcmFjZXI9ZS5kZWZhdWx0VGV4dE1hcFNldHRlcj1lLmRlZmF1bHRUZXh0TWFwR2V0dGVyPWUuVmFsdWVUeXBlPWUuY3JlYXRlTm9vcE1ldGVyPWUuRGlhZ0xvZ0xldmVsPWUuRGlhZ0NvbnNvbGVMb2dnZXI9ZS5ST09UX0NPTlRFWFQ9ZS5jcmVhdGVDb250ZXh0S2V5PWUuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXZvaWQgMDt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDM2OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmdcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ319KTt2YXIgbj1fX25jY3dwY2tfcmVxdWlyZV9fKDc4MCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVDb250ZXh0S2V5XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jcmVhdGVDb250ZXh0S2V5fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUk9PVF9DT05URVhUXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9fSk7dmFyIGE9X19uY2N3cGNrX3JlcXVpcmVfXyg5NzIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0NvbnNvbGVMb2dnZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBhLkRpYWdDb25zb2xlTG9nZ2VyfX0pO3ZhciBvPV9fbmNjd3Bja19yZXF1aXJlX18oOTU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIkRpYWdMb2dMZXZlbFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uRGlhZ0xvZ0xldmVsfX0pO3ZhciBpPV9fbmNjd3Bja19yZXF1aXJlX18oMTAyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZU5vb3BNZXRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuY3JlYXRlTm9vcE1ldGVyfX0pO3ZhciBjPV9fbmNjd3Bja19yZXF1aXJlX18oOTAxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlZhbHVlVHlwZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuVmFsdWVUeXBlfX0pO3ZhciBzPV9fbmNjd3Bja19yZXF1aXJlX18oMTk0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwR2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcEdldHRlcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwU2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcFNldHRlcn19KTt2YXIgdT1fX25jY3dwY2tfcmVxdWlyZV9fKDEyNSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuUHJveHlUcmFjZXJ9fSk7dmFyIGw9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUHJveHlUcmFjZXJQcm92aWRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuUHJveHlUcmFjZXJQcm92aWRlcn19KTt2YXIgZz1fX25jY3dwY2tfcmVxdWlyZV9fKDk5Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTYW1wbGluZ0RlY2lzaW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5TYW1wbGluZ0RlY2lzaW9ufX0pO3ZhciBwPV9fbmNjd3Bja19yZXF1aXJlX18oMzU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5LaW5kXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5TcGFuS2luZH19KTt2YXIgZD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTcGFuU3RhdHVzQ29kZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQuU3BhblN0YXR1c0NvZGV9fSk7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg0NzUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVHJhY2VGbGFnc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF8uVHJhY2VGbGFnc319KTt2YXIgZj1fX25jY3dwY2tfcmVxdWlyZV9fKDk4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZVRyYWNlU3RhdGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBmLmNyZWF0ZVRyYWNlU3RhdGV9fSk7dmFyIGI9X19uY2N3cGNrX3JlcXVpcmVfXygxMzkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNTcGFuQ29udGV4dFZhbGlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1NwYW5Db250ZXh0VmFsaWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkVHJhY2VJZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNWYWxpZFRyYWNlSWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkU3BhbklkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkU3BhbklkfX0pO3ZhciB2PV9fbmNjd3Bja19yZXF1aXJlX18oNDc2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfU1BBTklEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1NQQU5JRH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfVFJBQ0VJRFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9UUkFDRUlEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTl9DT05URVhUfX0pO2NvbnN0IE89X19uY2N3cGNrX3JlcXVpcmVfXyg2Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjb250ZXh0XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTy5jb250ZXh0fX0pO2NvbnN0IFA9X19uY2N3cGNrX3JlcXVpcmVfXyg1MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGlhZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAuZGlhZ319KTtjb25zdCBOPV9fbmNjd3Bja19yZXF1aXJlX18oODg2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIm1ldHJpY3NcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBOLm1ldHJpY3N9fSk7Y29uc3QgUz1fX25jY3dwY2tfcmVxdWlyZV9fKDkzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm9wYWdhdGlvblwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFMucHJvcGFnYXRpb259fSk7Y29uc3QgQz1fX25jY3dwY2tfcmVxdWlyZV9fKDg0NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJ0cmFjZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEMudHJhY2V9fSk7ZVtcImRlZmF1bHRcIl09e2NvbnRleHQ6Ty5jb250ZXh0LGRpYWc6UC5kaWFnLG1ldHJpY3M6Ti5tZXRyaWNzLHByb3BhZ2F0aW9uOlMucHJvcGFnYXRpb24sdHJhY2U6Qy50cmFjZX19KSgpO21vZHVsZS5leHBvcnRzPXJ9KSgpOyJdLCJuYW1lcyI6WyJlIiwidCIsInIiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiQ29udGV4dEFQSSIsIm4iLCJhIiwibyIsImkiLCJjIiwiTm9vcENvbnRleHRNYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJnZXRJbnN0YW5jZSIsIl9pbnN0YW5jZSIsInNldEdsb2JhbENvbnRleHRNYW5hZ2VyIiwicmVnaXN0ZXJHbG9iYWwiLCJEaWFnQVBJIiwiaW5zdGFuY2UiLCJhY3RpdmUiLCJfZ2V0Q29udGV4dE1hbmFnZXIiLCJ3aXRoIiwiYmluZCIsImdldEdsb2JhbCIsImRpc2FibGUiLCJ1bnJlZ2lzdGVyR2xvYmFsIiwiX2xvZ1Byb3h5Iiwic2V0TG9nZ2VyIiwibG9nTGV2ZWwiLCJEaWFnTG9nTGV2ZWwiLCJJTkZPIiwicyIsIkVycm9yIiwiZXJyb3IiLCJzdGFjayIsIm1lc3NhZ2UiLCJ1IiwibCIsImNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlciIsInN1cHByZXNzT3ZlcnJpZGVNZXNzYWdlIiwid2FybiIsImNyZWF0ZUNvbXBvbmVudExvZ2dlciIsIkRpYWdDb21wb25lbnRMb2dnZXIiLCJ2ZXJib3NlIiwiZGVidWciLCJpbmZvIiwiTWV0cmljc0FQSSIsInNldEdsb2JhbE1ldGVyUHJvdmlkZXIiLCJnZXRNZXRlclByb3ZpZGVyIiwiTk9PUF9NRVRFUl9QUk9WSURFUiIsImdldE1ldGVyIiwiUHJvcGFnYXRpb25BUEkiLCJOb29wVGV4dE1hcFByb3BhZ2F0b3IiLCJjcmVhdGVCYWdnYWdlIiwiZ2V0QmFnZ2FnZSIsImdldEFjdGl2ZUJhZ2dhZ2UiLCJzZXRCYWdnYWdlIiwiZGVsZXRlQmFnZ2FnZSIsInNldEdsb2JhbFByb3BhZ2F0b3IiLCJpbmplY3QiLCJkZWZhdWx0VGV4dE1hcFNldHRlciIsIl9nZXRHbG9iYWxQcm9wYWdhdG9yIiwiZXh0cmFjdCIsImRlZmF1bHRUZXh0TWFwR2V0dGVyIiwiZmllbGRzIiwiVHJhY2VBUEkiLCJfcHJveHlUcmFjZXJQcm92aWRlciIsIlByb3h5VHJhY2VyUHJvdmlkZXIiLCJ3cmFwU3BhbkNvbnRleHQiLCJpc1NwYW5Db250ZXh0VmFsaWQiLCJkZWxldGVTcGFuIiwiZ2V0U3BhbiIsImdldEFjdGl2ZVNwYW4iLCJnZXRTcGFuQ29udGV4dCIsInNldFNwYW4iLCJzZXRTcGFuQ29udGV4dCIsInNldEdsb2JhbFRyYWNlclByb3ZpZGVyIiwic2V0RGVsZWdhdGUiLCJnZXRUcmFjZXJQcm92aWRlciIsImdldFRyYWNlciIsImNyZWF0ZUNvbnRleHRLZXkiLCJnZXRWYWx1ZSIsInVuZGVmaW5lZCIsInNldFZhbHVlIiwiZGVsZXRlVmFsdWUiLCJCYWdnYWdlSW1wbCIsIl9lbnRyaWVzIiwiTWFwIiwiZ2V0RW50cnkiLCJnZXQiLCJhc3NpZ24iLCJnZXRBbGxFbnRyaWVzIiwiQXJyYXkiLCJmcm9tIiwiZW50cmllcyIsIm1hcCIsInNldEVudHJ5Iiwic2V0IiwicmVtb3ZlRW50cnkiLCJkZWxldGUiLCJyZW1vdmVFbnRyaWVzIiwiY2xlYXIiLCJiYWdnYWdlRW50cnlNZXRhZGF0YVN5bWJvbCIsIlN5bWJvbCIsImJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZyIsIl9fVFlQRV9fIiwidG9TdHJpbmciLCJjb250ZXh0IiwiUk9PVF9DT05URVhUIiwiY2FsbCIsImVuYWJsZSIsImZvciIsIkJhc2VDb250ZXh0IiwiX2N1cnJlbnRDb250ZXh0IiwiZGlhZyIsIl9uYW1lc3BhY2UiLCJuYW1lc3BhY2UiLCJsb2dQcm94eSIsInVuc2hpZnQiLCJEaWFnQ29uc29sZUxvZ2dlciIsIl9jb25zb2xlRnVuYyIsImNvbnNvbGUiLCJsb2ciLCJhcHBseSIsImxlbmd0aCIsIk5PTkUiLCJBTEwiLCJfZmlsdGVyRnVuYyIsIkVSUk9SIiwiV0FSTiIsIkRFQlVHIiwiVkVSQk9TRSIsIlZFUlNJT04iLCJzcGxpdCIsIl9nbG9iYWxUaGlzIiwidmVyc2lvbiIsImlzQ29tcGF0aWJsZSIsIl9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrIiwiU2V0IiwibWF0Y2giLCJtYWpvciIsIm1pbm9yIiwicGF0Y2giLCJwcmVyZWxlYXNlIiwiaXNFeGFjdG1hdGNoIiwiX3JlamVjdCIsImFkZCIsIl9hY2NlcHQiLCJoYXMiLCJtZXRyaWNzIiwiVmFsdWVUeXBlIiwiY3JlYXRlTm9vcE1ldGVyIiwiTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUMiLCJOT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDIiwiTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDIiwiTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDIiwiTk9PUF9ISVNUT0dSQU1fTUVUUklDIiwiTk9PUF9DT1VOVEVSX01FVFJJQyIsIk5PT1BfTUVURVIiLCJOb29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWMiLCJOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljIiwiTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljIiwiTm9vcE9ic2VydmFibGVNZXRyaWMiLCJOb29wSGlzdG9ncmFtTWV0cmljIiwiTm9vcFVwRG93bkNvdW50ZXJNZXRyaWMiLCJOb29wQ291bnRlck1ldHJpYyIsIk5vb3BNZXRyaWMiLCJOb29wTWV0ZXIiLCJjcmVhdGVIaXN0b2dyYW0iLCJjcmVhdGVDb3VudGVyIiwiY3JlYXRlVXBEb3duQ291bnRlciIsImNyZWF0ZU9ic2VydmFibGVHYXVnZSIsImNyZWF0ZU9ic2VydmFibGVDb3VudGVyIiwiY3JlYXRlT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXIiLCJhZGRCYXRjaE9ic2VydmFibGVDYWxsYmFjayIsInJlbW92ZUJhdGNoT2JzZXJ2YWJsZUNhbGxiYWNrIiwicmVjb3JkIiwiYWRkQ2FsbGJhY2siLCJyZW1vdmVDYWxsYmFjayIsIk5vb3BNZXRlclByb3ZpZGVyIiwiX19jcmVhdGVCaW5kaW5nIiwiY3JlYXRlIiwiZW51bWVyYWJsZSIsIl9fZXhwb3J0U3RhciIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiZ2xvYmFsVGhpcyIsImdsb2JhbCIsInByb3BhZ2F0aW9uIiwia2V5cyIsInRyYWNlIiwiTm9uUmVjb3JkaW5nU3BhbiIsIklOVkFMSURfU1BBTl9DT05URVhUIiwiX3NwYW5Db250ZXh0Iiwic3BhbkNvbnRleHQiLCJzZXRBdHRyaWJ1dGUiLCJzZXRBdHRyaWJ1dGVzIiwiYWRkRXZlbnQiLCJzZXRTdGF0dXMiLCJ1cGRhdGVOYW1lIiwiZW5kIiwiaXNSZWNvcmRpbmciLCJyZWNvcmRFeGNlcHRpb24iLCJOb29wVHJhY2VyIiwic3RhcnRTcGFuIiwiQm9vbGVhbiIsInJvb3QiLCJpc1NwYW5Db250ZXh0Iiwic3RhcnRBY3RpdmVTcGFuIiwiYXJndW1lbnRzIiwiZyIsIk5vb3BUcmFjZXJQcm92aWRlciIsIlByb3h5VHJhY2VyIiwiX3Byb3ZpZGVyIiwibmFtZSIsIm9wdGlvbnMiLCJfZ2V0VHJhY2VyIiwiUmVmbGVjdCIsIl9kZWxlZ2F0ZSIsImdldERlbGVnYXRlVHJhY2VyIiwiZ2V0RGVsZWdhdGUiLCJTYW1wbGluZ0RlY2lzaW9uIiwiVHJhY2VTdGF0ZUltcGwiLCJfaW50ZXJuYWxTdGF0ZSIsIl9wYXJzZSIsIl9jbG9uZSIsInVuc2V0Iiwic2VyaWFsaXplIiwiX2tleXMiLCJyZWR1Y2UiLCJwdXNoIiwiam9pbiIsInJldmVyc2UiLCJ0cmltIiwiaW5kZXhPZiIsInNsaWNlIiwidmFsaWRhdGVLZXkiLCJ2YWxpZGF0ZVZhbHVlIiwic2l6ZSIsIlJlZ0V4cCIsInRlc3QiLCJjcmVhdGVUcmFjZVN0YXRlIiwiSU5WQUxJRF9UUkFDRUlEIiwiSU5WQUxJRF9TUEFOSUQiLCJ0cmFjZUlkIiwic3BhbklkIiwidHJhY2VGbGFncyIsIlRyYWNlRmxhZ3MiLCJTcGFuS2luZCIsImlzVmFsaWRTcGFuSWQiLCJpc1ZhbGlkVHJhY2VJZCIsIlNwYW5TdGF0dXNDb2RlIiwiX19uY2N3cGNrX3JlcXVpcmVfXyIsImV4cG9ydHMiLCJhYiIsIl9fZGlybmFtZSIsInAiLCJkIiwiXyIsImYiLCJiIiwidiIsIk8iLCJQIiwiTiIsIlMiLCJDIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/@opentelemetry/api/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/cookie/index.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/cookie/index.js ***!
- \*************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var e = {};\n (()=>{\n var r = e;\n /*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */ r.parse = parse;\n r.serialize = serialize;\n var i = decodeURIComponent;\n var t = encodeURIComponent;\n var a = /; */;\n var n = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n function parse(e, r) {\n if (typeof e !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var t = {};\n var n = r || {};\n var o = e.split(a);\n var s = n.decode || i;\n for(var p = 0; p < o.length; p++){\n var f = o[p];\n var u = f.indexOf(\"=\");\n if (u < 0) {\n continue;\n }\n var v = f.substr(0, u).trim();\n var c = f.substr(++u, f.length).trim();\n if ('\"' == c[0]) {\n c = c.slice(1, -1);\n }\n if (undefined == t[v]) {\n t[v] = tryDecode(c, s);\n }\n }\n return t;\n }\n function serialize(e, r, i) {\n var a = i || {};\n var o = a.encode || t;\n if (typeof o !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!n.test(e)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var s = o(r);\n if (s && !n.test(s)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var p = e + \"=\" + s;\n if (null != a.maxAge) {\n var f = a.maxAge - 0;\n if (isNaN(f) || !isFinite(f)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n p += \"; Max-Age=\" + Math.floor(f);\n }\n if (a.domain) {\n if (!n.test(a.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n p += \"; Domain=\" + a.domain;\n }\n if (a.path) {\n if (!n.test(a.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n p += \"; Path=\" + a.path;\n }\n if (a.expires) {\n if (typeof a.expires.toUTCString !== \"function\") {\n throw new TypeError(\"option expires is invalid\");\n }\n p += \"; Expires=\" + a.expires.toUTCString();\n }\n if (a.httpOnly) {\n p += \"; HttpOnly\";\n }\n if (a.secure) {\n p += \"; Secure\";\n }\n if (a.sameSite) {\n var u = typeof a.sameSite === \"string\" ? a.sameSite.toLowerCase() : a.sameSite;\n switch(u){\n case true:\n p += \"; SameSite=Strict\";\n break;\n case \"lax\":\n p += \"; SameSite=Lax\";\n break;\n case \"strict\":\n p += \"; SameSite=Strict\";\n break;\n case \"none\":\n p += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return p;\n }\n function tryDecode(e, r) {\n try {\n return r(e);\n } catch (r) {\n return e;\n }\n }\n })();\n module.exports = e;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9jb29raWUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLO0lBQWEsSUFBRyxPQUFPQSx3QkFBc0IsYUFBWUEsb0JBQW9CQyxFQUFFLEdBQUNDLFNBQVNBLEdBQUM7SUFBSSxJQUFJQyxJQUFFLENBQUM7SUFBRztRQUFLLElBQUlDLElBQUVEO1FBQ3pIOzs7OztDQUtDLEdBQUVDLEVBQUVDLEtBQUssR0FBQ0E7UUFBTUQsRUFBRUUsU0FBUyxHQUFDQTtRQUFVLElBQUlDLElBQUVDO1FBQW1CLElBQUlDLElBQUVDO1FBQW1CLElBQUlDLElBQUU7UUFBTSxJQUFJQyxJQUFFO1FBQXdDLFNBQVNQLE1BQU1GLENBQUMsRUFBQ0MsQ0FBQztZQUFFLElBQUcsT0FBT0QsTUFBSSxVQUFTO2dCQUFDLE1BQU0sSUFBSVUsVUFBVTtZQUFnQztZQUFDLElBQUlKLElBQUUsQ0FBQztZQUFFLElBQUlHLElBQUVSLEtBQUcsQ0FBQztZQUFFLElBQUlVLElBQUVYLEVBQUVZLEtBQUssQ0FBQ0o7WUFBRyxJQUFJSyxJQUFFSixFQUFFSyxNQUFNLElBQUVWO1lBQUUsSUFBSSxJQUFJVyxJQUFFLEdBQUVBLElBQUVKLEVBQUVLLE1BQU0sRUFBQ0QsSUFBSTtnQkFBQyxJQUFJRSxJQUFFTixDQUFDLENBQUNJLEVBQUU7Z0JBQUMsSUFBSUcsSUFBRUQsRUFBRUUsT0FBTyxDQUFDO2dCQUFLLElBQUdELElBQUUsR0FBRTtvQkFBQztnQkFBUTtnQkFBQyxJQUFJRSxJQUFFSCxFQUFFSSxNQUFNLENBQUMsR0FBRUgsR0FBR0ksSUFBSTtnQkFBRyxJQUFJQyxJQUFFTixFQUFFSSxNQUFNLENBQUMsRUFBRUgsR0FBRUQsRUFBRUQsTUFBTSxFQUFFTSxJQUFJO2dCQUFHLElBQUcsT0FBS0MsQ0FBQyxDQUFDLEVBQUUsRUFBQztvQkFBQ0EsSUFBRUEsRUFBRUMsS0FBSyxDQUFDLEdBQUUsQ0FBQztnQkFBRTtnQkFBQyxJQUFHQyxhQUFXbkIsQ0FBQyxDQUFDYyxFQUFFLEVBQUM7b0JBQUNkLENBQUMsQ0FBQ2MsRUFBRSxHQUFDTSxVQUFVSCxHQUFFVjtnQkFBRTtZQUFDO1lBQUMsT0FBT1A7UUFBQztRQUFDLFNBQVNILFVBQVVILENBQUMsRUFBQ0MsQ0FBQyxFQUFDRyxDQUFDO1lBQUUsSUFBSUksSUFBRUosS0FBRyxDQUFDO1lBQUUsSUFBSU8sSUFBRUgsRUFBRW1CLE1BQU0sSUFBRXJCO1lBQUUsSUFBRyxPQUFPSyxNQUFJLFlBQVc7Z0JBQUMsTUFBTSxJQUFJRCxVQUFVO1lBQTJCO1lBQUMsSUFBRyxDQUFDRCxFQUFFbUIsSUFBSSxDQUFDNUIsSUFBRztnQkFBQyxNQUFNLElBQUlVLFVBQVU7WUFBMkI7WUFBQyxJQUFJRyxJQUFFRixFQUFFVjtZQUFHLElBQUdZLEtBQUcsQ0FBQ0osRUFBRW1CLElBQUksQ0FBQ2YsSUFBRztnQkFBQyxNQUFNLElBQUlILFVBQVU7WUFBMEI7WUFBQyxJQUFJSyxJQUFFZixJQUFFLE1BQUlhO1lBQUUsSUFBRyxRQUFNTCxFQUFFcUIsTUFBTSxFQUFDO2dCQUFDLElBQUlaLElBQUVULEVBQUVxQixNQUFNLEdBQUM7Z0JBQUUsSUFBR0MsTUFBTWIsTUFBSSxDQUFDYyxTQUFTZCxJQUFHO29CQUFDLE1BQU0sSUFBSVAsVUFBVTtnQkFBMkI7Z0JBQUNLLEtBQUcsZUFBYWlCLEtBQUtDLEtBQUssQ0FBQ2hCO1lBQUU7WUFBQyxJQUFHVCxFQUFFMEIsTUFBTSxFQUFDO2dCQUFDLElBQUcsQ0FBQ3pCLEVBQUVtQixJQUFJLENBQUNwQixFQUFFMEIsTUFBTSxHQUFFO29CQUFDLE1BQU0sSUFBSXhCLFVBQVU7Z0JBQTJCO2dCQUFDSyxLQUFHLGNBQVlQLEVBQUUwQixNQUFNO1lBQUE7WUFBQyxJQUFHMUIsRUFBRTJCLElBQUksRUFBQztnQkFBQyxJQUFHLENBQUMxQixFQUFFbUIsSUFBSSxDQUFDcEIsRUFBRTJCLElBQUksR0FBRTtvQkFBQyxNQUFNLElBQUl6QixVQUFVO2dCQUF5QjtnQkFBQ0ssS0FBRyxZQUFVUCxFQUFFMkIsSUFBSTtZQUFBO1lBQUMsSUFBRzNCLEVBQUU0QixPQUFPLEVBQUM7Z0JBQUMsSUFBRyxPQUFPNUIsRUFBRTRCLE9BQU8sQ0FBQ0MsV0FBVyxLQUFHLFlBQVc7b0JBQUMsTUFBTSxJQUFJM0IsVUFBVTtnQkFBNEI7Z0JBQUNLLEtBQUcsZUFBYVAsRUFBRTRCLE9BQU8sQ0FBQ0MsV0FBVztZQUFFO1lBQUMsSUFBRzdCLEVBQUU4QixRQUFRLEVBQUM7Z0JBQUN2QixLQUFHO1lBQVk7WUFBQyxJQUFHUCxFQUFFK0IsTUFBTSxFQUFDO2dCQUFDeEIsS0FBRztZQUFVO1lBQUMsSUFBR1AsRUFBRWdDLFFBQVEsRUFBQztnQkFBQyxJQUFJdEIsSUFBRSxPQUFPVixFQUFFZ0MsUUFBUSxLQUFHLFdBQVNoQyxFQUFFZ0MsUUFBUSxDQUFDQyxXQUFXLEtBQUdqQyxFQUFFZ0MsUUFBUTtnQkFBQyxPQUFPdEI7b0JBQUcsS0FBSzt3QkFBS0gsS0FBRzt3QkFBb0I7b0JBQU0sS0FBSTt3QkFBTUEsS0FBRzt3QkFBaUI7b0JBQU0sS0FBSTt3QkFBU0EsS0FBRzt3QkFBb0I7b0JBQU0sS0FBSTt3QkFBT0EsS0FBRzt3QkFBa0I7b0JBQU07d0JBQVEsTUFBTSxJQUFJTCxVQUFVO2dCQUE2QjtZQUFDO1lBQUMsT0FBT0s7UUFBQztRQUFDLFNBQVNXLFVBQVUxQixDQUFDLEVBQUNDLENBQUM7WUFBRSxJQUFHO2dCQUFDLE9BQU9BLEVBQUVEO1lBQUUsRUFBQyxPQUFNQyxHQUFFO2dCQUFDLE9BQU9EO1lBQUM7UUFBQztJQUFDO0lBQUswQyxPQUFPQyxPQUFPLEdBQUMzQztBQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZS9pbmRleC5qcz82ZmY4Il0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgZT17fTsoKCk9Pnt2YXIgcj1lO1xuLyohXG4gKiBjb29raWVcbiAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgUm9tYW4gU2h0eWxtYW5cbiAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL3IucGFyc2U9cGFyc2U7ci5zZXJpYWxpemU9c2VyaWFsaXplO3ZhciBpPWRlY29kZVVSSUNvbXBvbmVudDt2YXIgdD1lbmNvZGVVUklDb21wb25lbnQ7dmFyIGE9LzsgKi87dmFyIG49L15bXFx1MDAwOVxcdTAwMjAtXFx1MDA3ZVxcdTAwODAtXFx1MDBmZl0rJC87ZnVuY3Rpb24gcGFyc2UoZSxyKXtpZih0eXBlb2YgZSE9PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHIgbXVzdCBiZSBhIHN0cmluZ1wiKX12YXIgdD17fTt2YXIgbj1yfHx7fTt2YXIgbz1lLnNwbGl0KGEpO3ZhciBzPW4uZGVjb2RlfHxpO2Zvcih2YXIgcD0wO3A8by5sZW5ndGg7cCsrKXt2YXIgZj1vW3BdO3ZhciB1PWYuaW5kZXhPZihcIj1cIik7aWYodTwwKXtjb250aW51ZX12YXIgdj1mLnN1YnN0cigwLHUpLnRyaW0oKTt2YXIgYz1mLnN1YnN0cigrK3UsZi5sZW5ndGgpLnRyaW0oKTtpZignXCInPT1jWzBdKXtjPWMuc2xpY2UoMSwtMSl9aWYodW5kZWZpbmVkPT10W3ZdKXt0W3ZdPXRyeURlY29kZShjLHMpfX1yZXR1cm4gdH1mdW5jdGlvbiBzZXJpYWxpemUoZSxyLGkpe3ZhciBhPWl8fHt9O3ZhciBvPWEuZW5jb2RlfHx0O2lmKHR5cGVvZiBvIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGVuY29kZSBpcyBpbnZhbGlkXCIpfWlmKCFuLnRlc3QoZSkpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBuYW1lIGlzIGludmFsaWRcIil9dmFyIHM9byhyKTtpZihzJiYhbi50ZXN0KHMpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgdmFsIGlzIGludmFsaWRcIil9dmFyIHA9ZStcIj1cIitzO2lmKG51bGwhPWEubWF4QWdlKXt2YXIgZj1hLm1heEFnZS0wO2lmKGlzTmFOKGYpfHwhaXNGaW5pdGUoZikpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gbWF4QWdlIGlzIGludmFsaWRcIil9cCs9XCI7IE1heC1BZ2U9XCIrTWF0aC5mbG9vcihmKX1pZihhLmRvbWFpbil7aWYoIW4udGVzdChhLmRvbWFpbikpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZG9tYWluIGlzIGludmFsaWRcIil9cCs9XCI7IERvbWFpbj1cIithLmRvbWFpbn1pZihhLnBhdGgpe2lmKCFuLnRlc3QoYS5wYXRoKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBwYXRoIGlzIGludmFsaWRcIil9cCs9XCI7IFBhdGg9XCIrYS5wYXRofWlmKGEuZXhwaXJlcyl7aWYodHlwZW9mIGEuZXhwaXJlcy50b1VUQ1N0cmluZyE9PVwiZnVuY3Rpb25cIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBleHBpcmVzIGlzIGludmFsaWRcIil9cCs9XCI7IEV4cGlyZXM9XCIrYS5leHBpcmVzLnRvVVRDU3RyaW5nKCl9aWYoYS5odHRwT25seSl7cCs9XCI7IEh0dHBPbmx5XCJ9aWYoYS5zZWN1cmUpe3ArPVwiOyBTZWN1cmVcIn1pZihhLnNhbWVTaXRlKXt2YXIgdT10eXBlb2YgYS5zYW1lU2l0ZT09PVwic3RyaW5nXCI/YS5zYW1lU2l0ZS50b0xvd2VyQ2FzZSgpOmEuc2FtZVNpdGU7c3dpdGNoKHUpe2Nhc2UgdHJ1ZTpwKz1cIjsgU2FtZVNpdGU9U3RyaWN0XCI7YnJlYWs7Y2FzZVwibGF4XCI6cCs9XCI7IFNhbWVTaXRlPUxheFwiO2JyZWFrO2Nhc2VcInN0cmljdFwiOnArPVwiOyBTYW1lU2l0ZT1TdHJpY3RcIjticmVhaztjYXNlXCJub25lXCI6cCs9XCI7IFNhbWVTaXRlPU5vbmVcIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gc2FtZVNpdGUgaXMgaW52YWxpZFwiKX19cmV0dXJuIHB9ZnVuY3Rpb24gdHJ5RGVjb2RlKGUscil7dHJ5e3JldHVybiByKGUpfWNhdGNoKHIpe3JldHVybiBlfX19KSgpO21vZHVsZS5leHBvcnRzPWV9KSgpOyJdLCJuYW1lcyI6WyJfX25jY3dwY2tfcmVxdWlyZV9fIiwiYWIiLCJfX2Rpcm5hbWUiLCJlIiwiciIsInBhcnNlIiwic2VyaWFsaXplIiwiaSIsImRlY29kZVVSSUNvbXBvbmVudCIsInQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJhIiwibiIsIlR5cGVFcnJvciIsIm8iLCJzcGxpdCIsInMiLCJkZWNvZGUiLCJwIiwibGVuZ3RoIiwiZiIsInUiLCJpbmRleE9mIiwidiIsInN1YnN0ciIsInRyaW0iLCJjIiwic2xpY2UiLCJ1bmRlZmluZWQiLCJ0cnlEZWNvZGUiLCJlbmNvZGUiLCJ0ZXN0IiwibWF4QWdlIiwiaXNOYU4iLCJpc0Zpbml0ZSIsIk1hdGgiLCJmbG9vciIsImRvbWFpbiIsInBhdGgiLCJleHBpcmVzIiwidG9VVENTdHJpbmciLCJodHRwT25seSIsInNlY3VyZSIsInNhbWVTaXRlIiwidG9Mb3dlckNhc2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/cookie/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/native-url/index.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/native-url/index.js ***!
- \*****************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(function() {\n var e = {\n 452: function(e) {\n \"use strict\";\n e.exports = __webpack_require__(/*! next/dist/compiled/querystring-es3 */ \"(rsc)/../../node_modules/next/dist/compiled/querystring-es3/index.js\");\n }\n };\n var t = {};\n function __nccwpck_require__(o) {\n var a = t[o];\n if (a !== undefined) {\n return a.exports;\n }\n var s = t[o] = {\n exports: {}\n };\n var n = true;\n try {\n e[o](s, s.exports, __nccwpck_require__);\n n = false;\n } finally{\n if (n) delete t[o];\n }\n return s.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var o = {};\n !function() {\n var e = o;\n var t, a = (t = __nccwpck_require__(452)) && \"object\" == typeof t && \"default\" in t ? t.default : t, s = /https?|ftp|gopher|file/;\n function r(e) {\n \"string\" == typeof e && (e = d(e));\n var t = function(e, t, o) {\n var a = e.auth, s = e.hostname, n = e.protocol || \"\", p = e.pathname || \"\", c = e.hash || \"\", i = e.query || \"\", u = !1;\n a = a ? encodeURIComponent(a).replace(/%3A/i, \":\") + \"@\" : \"\", e.host ? u = a + e.host : s && (u = a + (~s.indexOf(\":\") ? \"[\" + s + \"]\" : s), e.port && (u += \":\" + e.port)), i && \"object\" == typeof i && (i = t.encode(i));\n var f = e.search || i && \"?\" + i || \"\";\n return n && \":\" !== n.substr(-1) && (n += \":\"), e.slashes || (!n || o.test(n)) && !1 !== u ? (u = \"//\" + (u || \"\"), p && \"/\" !== p[0] && (p = \"/\" + p)) : u || (u = \"\"), c && \"#\" !== c[0] && (c = \"#\" + c), f && \"?\" !== f[0] && (f = \"?\" + f), {\n protocol: n,\n host: u,\n pathname: p = p.replace(/[?#]/g, encodeURIComponent),\n search: f = f.replace(\"#\", \"%23\"),\n hash: c\n };\n }(e, a, s);\n return \"\" + t.protocol + t.host + t.pathname + t.search + t.hash;\n }\n var n = \"http://\", p = \"w.w\", c = n + p, i = /^([a-z0-9.+-]*:\\/\\/\\/)([a-z0-9.+-]:\\/*)?/i, u = /https?|ftp|gopher|file/;\n function h(e, t) {\n var o = \"string\" == typeof e ? d(e) : e;\n e = \"object\" == typeof e ? r(e) : e;\n var a = d(t), s = \"\";\n o.protocol && !o.slashes && (s = o.protocol, e = e.replace(o.protocol, \"\"), s += \"/\" === t[0] || \"/\" === e[0] ? \"/\" : \"\"), s && a.protocol && (s = \"\", a.slashes || (s = a.protocol, t = t.replace(a.protocol, \"\")));\n var p = e.match(i);\n p && !a.protocol && (e = e.substr((s = p[1] + (p[2] || \"\")).length), /^\\/\\/[^/]/.test(t) && (s = s.slice(0, -1)));\n var f = new URL(e, c + \"/\"), m = new URL(t, f).toString().replace(c, \"\"), v = a.protocol || o.protocol;\n return v += o.slashes || a.slashes ? \"//\" : \"\", !s && v ? m = m.replace(n, v) : s && (m = m.replace(n, \"\")), u.test(m) || ~t.indexOf(\".\") || \"/\" === e.slice(-1) || \"/\" === t.slice(-1) || \"/\" !== m.slice(-1) || (m = m.slice(0, -1)), s && (m = s + (\"/\" === m[0] ? m.substr(1) : m)), m;\n }\n function l() {}\n l.prototype.parse = d, l.prototype.format = r, l.prototype.resolve = h, l.prototype.resolveObject = h;\n var f = /^https?|ftp|gopher|file/, m = /^(.*?)([#?].*)/, v = /^([a-z0-9.+-]*:)(\\/{0,3})(.*)/i, _ = /^([a-z0-9.+-]*:)?\\/\\/\\/*/i, b = /^([a-z0-9.+-]*:)(\\/{0,2})\\[(.*)\\]$/i;\n function d(e, t, o) {\n if (void 0 === t && (t = !1), void 0 === o && (o = !1), e && \"object\" == typeof e && e instanceof l) return e;\n var s = (e = e.trim()).match(m);\n e = s ? s[1].replace(/\\\\/g, \"/\") + s[2] : e.replace(/\\\\/g, \"/\"), b.test(e) && \"/\" !== e.slice(-1) && (e += \"/\");\n var n = !/(^javascript)/.test(e) && e.match(v), i = _.test(e), u = \"\";\n n && (f.test(n[1]) || (u = n[1].toLowerCase(), e = \"\" + n[2] + n[3]), n[2] || (i = !1, f.test(n[1]) ? (u = n[1], e = \"\" + n[3]) : e = \"//\" + n[3]), 3 !== n[2].length && 1 !== n[2].length || (u = n[1], e = \"/\" + n[3]));\n var g, y = (s ? s[1] : e).match(/^https?:\\/\\/[^/]+(:[0-9]+)(?=\\/|$)/), w = y && y[1], x = new l, C = \"\", U = \"\";\n try {\n g = new URL(e);\n } catch (t) {\n C = t, u || o || !/^\\/\\//.test(e) || /^\\/\\/.+[@.]/.test(e) || (U = \"/\", e = e.substr(1));\n try {\n g = new URL(e, c);\n } catch (e) {\n return x.protocol = u, x.href = u, x;\n }\n }\n x.slashes = i && !U, x.host = g.host === p ? \"\" : g.host, x.hostname = g.hostname === p ? \"\" : g.hostname.replace(/(\\[|\\])/g, \"\"), x.protocol = C ? u || null : g.protocol, x.search = g.search.replace(/\\\\/g, \"%5C\"), x.hash = g.hash.replace(/\\\\/g, \"%5C\");\n var j = e.split(\"#\");\n !x.search && ~j[0].indexOf(\"?\") && (x.search = \"?\"), x.hash || \"\" !== j[1] || (x.hash = \"#\"), x.query = t ? a.decode(g.search.substr(1)) : x.search.substr(1), x.pathname = U + (n ? function(e) {\n return e.replace(/['^|`]/g, function(e) {\n return \"%\" + e.charCodeAt().toString(16).toUpperCase();\n }).replace(/((?:%[0-9A-F]{2})+)/g, function(e, t) {\n try {\n return decodeURIComponent(t).split(\"\").map(function(e) {\n var t = e.charCodeAt();\n return t > 256 || /^[a-z0-9]$/i.test(e) ? e : \"%\" + t.toString(16).toUpperCase();\n }).join(\"\");\n } catch (e) {\n return t;\n }\n });\n }(g.pathname) : g.pathname), \"about:\" === x.protocol && \"blank\" === x.pathname && (x.protocol = \"\", x.pathname = \"\"), C && \"/\" !== e[0] && (x.pathname = x.pathname.substr(1)), u && !f.test(u) && \"/\" !== e.slice(-1) && \"/\" === x.pathname && (x.pathname = \"\"), x.path = x.pathname + x.search, x.auth = [\n g.username,\n g.password\n ].map(decodeURIComponent).filter(Boolean).join(\":\"), x.port = g.port, w && !x.host.endsWith(w) && (x.host += w, x.port = w.slice(1)), x.href = U ? \"\" + x.pathname + x.search + x.hash : r(x);\n var q = /^(file)/.test(x.href) ? [\n \"host\",\n \"hostname\"\n ] : [];\n return Object.keys(x).forEach(function(e) {\n ~q.indexOf(e) || (x[e] = x[e] || null);\n }), x;\n }\n e.parse = d, e.format = r, e.resolve = h, e.resolveObject = function(e, t) {\n return d(h(e, t));\n }, e.Url = l;\n }();\n module.exports = o;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9uYXRpdmUtdXJsL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7O0FBQUM7SUFBVyxJQUFJQSxJQUFFO1FBQUMsS0FBSSxTQUFTQSxDQUFDO1lBQUU7WUFBYUEsRUFBRUMsT0FBTyxHQUFDQyxtQkFBT0EsQ0FBQyxnSEFBb0M7UUFBQztJQUFDO0lBQUUsSUFBSUMsSUFBRSxDQUFDO0lBQUUsU0FBU0Msb0JBQW9CQyxDQUFDO1FBQUUsSUFBSUMsSUFBRUgsQ0FBQyxDQUFDRSxFQUFFO1FBQUMsSUFBR0MsTUFBSUMsV0FBVTtZQUFDLE9BQU9ELEVBQUVMLE9BQU87UUFBQTtRQUFDLElBQUlPLElBQUVMLENBQUMsQ0FBQ0UsRUFBRSxHQUFDO1lBQUNKLFNBQVEsQ0FBQztRQUFDO1FBQUUsSUFBSVEsSUFBRTtRQUFLLElBQUc7WUFBQ1QsQ0FBQyxDQUFDSyxFQUFFLENBQUNHLEdBQUVBLEVBQUVQLE9BQU8sRUFBQ0c7WUFBcUJLLElBQUU7UUFBSyxTQUFRO1lBQUMsSUFBR0EsR0FBRSxPQUFPTixDQUFDLENBQUNFLEVBQUU7UUFBQTtRQUFDLE9BQU9HLEVBQUVQLE9BQU87SUFBQTtJQUFDLElBQUcsT0FBT0csd0JBQXNCLGFBQVlBLG9CQUFvQk0sRUFBRSxHQUFDQyxTQUFTQSxHQUFDO0lBQUksSUFBSU4sSUFBRSxDQUFDO0lBQUUsQ0FBQztRQUFXLElBQUlMLElBQUVLO1FBQUUsSUFBSUYsR0FBRUcsSUFBRSxDQUFDSCxJQUFFQyxvQkFBb0IsSUFBRyxLQUFJLFlBQVUsT0FBT0QsS0FBRyxhQUFZQSxJQUFFQSxFQUFFUyxPQUFPLEdBQUNULEdBQUVLLElBQUU7UUFBeUIsU0FBU0ssRUFBRWIsQ0FBQztZQUFFLFlBQVUsT0FBT0EsS0FBSUEsQ0FBQUEsSUFBRWMsRUFBRWQsRUFBQztZQUFHLElBQUlHLElBQUUsU0FBU0gsQ0FBQyxFQUFDRyxDQUFDLEVBQUNFLENBQUM7Z0JBQUUsSUFBSUMsSUFB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LFFBQVEsR0FBQ3NDLEVBQUV6QixNQUFNLEdBQUN5QixFQUFFcEMsSUFBSSxHQUFDUixFQUFFNEM7WUFBRyxJQUFJa0IsSUFBRSxVQUFVeEMsSUFBSSxDQUFDc0IsRUFBRUcsSUFBSSxJQUFFO2dCQUFDO2dCQUFPO2FBQVcsR0FBQyxFQUFFO1lBQUMsT0FBT2dCLE9BQU9DLElBQUksQ0FBQ3BCLEdBQUdxQixPQUFPLENBQUUsU0FBUzlFLENBQUM7Z0JBQUUsQ0FBQzJFLEVBQUUvQyxPQUFPLENBQUM1QixNQUFLeUQsQ0FBQUEsQ0FBQyxDQUFDekQsRUFBRSxHQUFDeUQsQ0FBQyxDQUFDekQsRUFBRSxJQUFFLElBQUc7WUFBRSxJQUFJeUQ7UUFBQztRQUFDekQsRUFBRThDLEtBQUssR0FBQ2hDLEdBQUVkLEVBQUUrQyxNQUFNLEdBQUNsQyxHQUFFYixFQUFFZ0QsT0FBTyxHQUFDWixHQUFFcEMsRUFBRWlELGFBQWEsR0FBQyxTQUFTakQsQ0FBQyxFQUFDRyxDQUFDO1lBQUUsT0FBT1csRUFBRXNCLEVBQUVwQyxHQUFFRztRQUFHLEdBQUVILEVBQUUrRSxHQUFHLEdBQUNuQztJQUFDO0lBQUlvQyxPQUFPL0UsT0FBTyxHQUFDSTtBQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL25hdGl2ZS11cmwvaW5kZXguanM/NjM1NSJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXt2YXIgZT17NDUyOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1yZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3F1ZXJ5c3RyaW5nLWVzM1wiKX19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obyl7dmFyIGE9dFtvXTtpZihhIT09dW5kZWZpbmVkKXtyZXR1cm4gYS5leHBvcnRzfXZhciBzPXRbb109e2V4cG9ydHM6e319O3ZhciBuPXRydWU7dHJ5e2Vbb10ocyxzLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7bj1mYWxzZX1maW5hbGx5e2lmKG4pZGVsZXRlIHRbb119cmV0dXJuIHMuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIG89e307IWZ1bmN0aW9uKCl7dmFyIGU9bzt2YXIgdCxhPSh0PV9fbmNjd3Bja19yZXF1aXJlX18oNDUyKSkmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiZcImRlZmF1bHRcImluIHQ/dC5kZWZhdWx0OnQscz0vaHR0cHM/fGZ0cHxnb3BoZXJ8ZmlsZS87ZnVuY3Rpb24gcihlKXtcInN0cmluZ1wiPT10eXBlb2YgZSYmKGU9ZChlKSk7dmFyIHQ9ZnVuY3Rpb24oZSx0LG8pe3ZhciBhPWUuYXV0aCxzPWUuaG9zdG5hbWUsbj1lLnByb3RvY29sfHxcIlwiLHA9ZS5wYXRobmFtZXx8XCJcIixjPWUuaGFzaHx8XCJcIixpPWUucXVlcnl8fFwiXCIsdT0hMTthPWE/ZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UoLyUzQS9pLFwiOlwiKStcIkBcIjpcIlwiLGUuaG9zdD91PWErZS5ob3N0OnMmJih1PWErKH5zLmluZGV4T2YoXCI6XCIpP1wiW1wiK3MrXCJdXCI6cyksZS5wb3J0JiYodSs9XCI6XCIrZS5wb3J0KSksaSYmXCJvYmplY3RcIj09dHlwZW9mIGkmJihpPXQuZW5jb2RlKGkpKTt2YXIgZj1lLnNlYXJjaHx8aSYmXCI/XCIraXx8XCJcIjtyZXR1cm4gbiYmXCI6XCIhPT1uLnN1YnN0cigtMSkmJihuKz1cIjpcIiksZS5zbGFzaGVzfHwoIW58fG8udGVzdChuKSkmJiExIT09dT8odT1cIi8vXCIrKHV8fFwiXCIpLHAmJlwiL1wiIT09cFswXSYmKHA9XCIvXCIrcCkpOnV8fCh1PVwiXCIpLGMmJlwiI1wiIT09Y1swXSYmKGM9XCIjXCIrYyksZiYmXCI/XCIhPT1mWzBdJiYoZj1cIj9cIitmKSx7cHJvdG9jb2w6bixob3N0OnUscGF0aG5hbWU6cD1wLnJlcGxhY2UoL1s/I10vZyxlbmNvZGVVUklDb21wb25lbnQpLHNlYXJjaDpmPWYucmVwbGFjZShcIiNcIixcIiUyM1wiKSxoYXNoOmN9fShlLGEscyk7cmV0dXJuXCJcIit0LnByb3RvY29sK3QuaG9zdCt0LnBhdGhuYW1lK3Quc2VhcmNoK3QuaGFzaH12YXIgbj1cImh0dHA6Ly9cIixwPVwidy53XCIsYz1uK3AsaT0vXihbYS16MC05ListXSo6XFwvXFwvXFwvKShbYS16MC05ListXTpcXC8qKT8vaSx1PS9odHRwcz98ZnRwfGdvcGhlcnxmaWxlLztmdW5jdGlvbiBoKGUsdCl7dmFyIG89XCJzdHJpbmdcIj09dHlwZW9mIGU/ZChlKTplO2U9XCJvYmplY3RcIj09dHlwZW9mIGU/cihlKTplO3ZhciBhPWQodCkscz1cIlwiO28ucHJvdG9jb2wmJiFvLnNsYXNoZXMmJihzPW8ucHJvdG9jb2wsZT1lLnJlcGxhY2Uoby5wcm90b2NvbCxcIlwiKSxzKz1cIi9cIj09PXRbMF18fFwiL1wiPT09ZVswXT9cIi9cIjpcIlwiKSxzJiZhLnByb3RvY29sJiYocz1cIlwiLGEuc2xhc2hlc3x8KHM9YS5wcm90b2NvbCx0PXQucmVwbGFjZShhLnByb3RvY29sLFwiXCIpKSk7dmFyIHA9ZS5tYXRjaChpKTtwJiYhYS5wcm90b2NvbCYmKGU9ZS5zdWJzdHIoKHM9cFsxXSsocFsyXXx8XCJcIikpLmxlbmd0aCksL15cXC9cXC9bXi9dLy50ZXN0KHQpJiYocz1zLnNsaWNlKDAsLTEpKSk7dmFyIGY9bmV3IFVSTChlLGMrXCIvXCIpLG09bmV3IFVSTCh0LGYpLnRvU3RyaW5nKCkucmVwbGFjZShjLFwiXCIpLHY9YS5wcm90b2NvbHx8by5wcm90b2NvbDtyZXR1cm4gdis9by5zbGFzaGVzfHxhLnNsYXNoZXM/XCIvL1wiOlwiXCIsIXMmJnY/bT1tLnJlcGxhY2Uobix2KTpzJiYobT1tLnJlcGxhY2UobixcIlwiKSksdS50ZXN0KG0pfHx+dC5pbmRleE9mKFwiLlwiKXx8XCIvXCI9PT1lLnNsaWNlKC0xKXx8XCIvXCI9PT10LnNsaWNlKC0xKXx8XCIvXCIhPT1tLnNsaWNlKC0xKXx8KG09bS5zbGljZSgwLC0xKSkscyYmKG09cysoXCIvXCI9PT1tWzBdP20uc3Vic3RyKDEpOm0pKSxtfWZ1bmN0aW9uIGwoKXt9bC5wcm90b3R5cGUucGFyc2U9ZCxsLnByb3RvdHlwZS5mb3JtYXQ9cixsLnByb3RvdHlwZS5yZXNvbHZlPWgsbC5wcm90b3R5cGUucmVzb2x2ZU9iamVjdD1oO3ZhciBmPS9eaHR0cHM/fGZ0cHxnb3BoZXJ8ZmlsZS8sbT0vXiguKj8pKFsjP10uKikvLHY9L14oW2EtejAtOS4rLV0qOikoXFwvezAsM30pKC4qKS9pLF89L14oW2EtejAtOS4rLV0qOik/XFwvXFwvXFwvKi9pLGI9L14oW2EtejAtOS4rLV0qOikoXFwvezAsMn0pXFxbKC4qKVxcXSQvaTtmdW5jdGlvbiBkKGUsdCxvKXtpZih2b2lkIDA9PT10JiYodD0hMSksdm9pZCAwPT09byYmKG89ITEpLGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZlIGluc3RhbmNlb2YgbClyZXR1cm4gZTt2YXIgcz0oZT1lLnRyaW0oKSkubWF0Y2gobSk7ZT1zP3NbMV0ucmVwbGFjZSgvXFxcXC9nLFwiL1wiKStzWzJdOmUucmVwbGFjZSgvXFxcXC9nLFwiL1wiKSxiLnRlc3QoZSkmJlwiL1wiIT09ZS5zbGljZSgtMSkmJihlKz1cIi9cIik7dmFyIG49IS8oXmphdmFzY3JpcHQpLy50ZXN0KGUpJiZlLm1hdGNoKHYpLGk9Xy50ZXN0KGUpLHU9XCJcIjtuJiYoZi50ZXN0KG5bMV0pfHwodT1uWzFdLnRvTG93ZXJDYXNlKCksZT1cIlwiK25bMl0rblszXSksblsyXXx8KGk9ITEsZi50ZXN0KG5bMV0pPyh1PW5bMV0sZT1cIlwiK25bM10pOmU9XCIvL1wiK25bM10pLDMhPT1uWzJdLmxlbmd0aCYmMSE9PW5bMl0ubGVuZ3RofHwodT1uWzFdLGU9XCIvXCIrblszXSkpO3ZhciBnLHk9KHM/c1sxXTplKS5tYXRjaCgvXmh0dHBzPzpcXC9cXC9bXi9dKyg6WzAtOV0rKSg/PVxcL3wkKS8pLHc9eSYmeVsxXSx4PW5ldyBsLEM9XCJcIixVPVwiXCI7dHJ5e2c9bmV3IFVSTChlKX1jYXRjaCh0KXtDPXQsdXx8b3x8IS9eXFwvXFwvLy50ZXN0KGUpfHwvXlxcL1xcLy4rW0AuXS8udGVzdChlKXx8KFU9XCIvXCIsZT1lLnN1YnN0cigxKSk7dHJ5e2c9bmV3IFVSTChlLGMpfWNhdGNoKGUpe3JldHVybiB4LnByb3RvY29sPXUseC5ocmVmPXUseH19eC5zbGFzaGVzPWkmJiFVLHguaG9zdD1nLmhvc3Q9PT1wP1wiXCI6Zy5ob3N0LHguaG9zdG5hbWU9Zy5ob3N0bmFtZT09PXA/XCJcIjpnLmhvc3RuYW1lLnJlcGxhY2UoLyhcXFt8XFxdKS9nLFwiXCIpLHgucHJvdG9jb2w9Qz91fHxudWxsOmcucHJvdG9jb2wseC5zZWFyY2g9Zy5zZWFyY2gucmVwbGFjZSgvXFxcXC9nLFwiJTVDXCIpLHguaGFzaD1nLmhhc2gucmVwbGFjZSgvXFxcXC9nLFwiJTVDXCIpO3ZhciBqPWUuc3BsaXQoXCIjXCIpOyF4LnNlYXJjaCYmfmpbMF0uaW5kZXhPZihcIj9cIikmJih4LnNlYXJjaD1cIj9cIikseC5oYXNofHxcIlwiIT09alsxXXx8KHguaGFzaD1cIiNcIikseC5xdWVyeT10P2EuZGVjb2RlKGcuc2VhcmNoLnN1YnN0cigxKSk6eC5zZWFyY2guc3Vic3RyKDEpLHgucGF0aG5hbWU9VSsobj9mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bJ158YF0vZywoZnVuY3Rpb24oZSl7cmV0dXJuXCIlXCIrZS5jaGFyQ29kZUF0KCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9KSkucmVwbGFjZSgvKCg/OiVbMC05QS1GXXsyfSkrKS9nLChmdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpLnNwbGl0KFwiXCIpLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGFyQ29kZUF0KCk7cmV0dXJuIHQ+MjU2fHwvXlthLXowLTldJC9pLnRlc3QoZSk/ZTpcIiVcIit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSkpLmpvaW4oXCJcIil9Y2F0Y2goZSl7cmV0dXJuIHR9fSkpfShnLnBhdGhuYW1lKTpnLnBhdGhuYW1lKSxcImFib3V0OlwiPT09eC5wcm90b2NvbCYmXCJibGFua1wiPT09eC5wYXRobmFtZSYmKHgucHJvdG9jb2w9XCJcIix4LnBhdGhuYW1lPVwiXCIpLEMmJlwiL1wiIT09ZVswXSYmKHgucGF0aG5hbWU9eC5wYXRobmFtZS5zdWJzdHIoMSkpLHUmJiFmLnRlc3QodSkmJlwiL1wiIT09ZS5zbGljZSgtMSkmJlwiL1wiPT09eC5wYXRobmFtZSYmKHgucGF0aG5hbWU9XCJcIikseC5wYXRoPXgucGF0aG5hbWUreC5zZWFyY2gseC5hdXRoPVtnLnVzZXJuYW1lLGcucGFzc3dvcmRdLm1hcChkZWNvZGVVUklDb21wb25lbnQpLmZpbHRlcihCb29sZWFuKS5qb2luKFwiOlwiKSx4LnBvcnQ9Zy5wb3J0LHcmJiF4Lmhvc3QuZW5kc1dpdGgodykmJih4Lmhvc3QrPXcseC5wb3J0PXcuc2xpY2UoMSkpLHguaHJlZj1VP1wiXCIreC5wYXRobmFtZSt4LnNlYXJjaCt4Lmhhc2g6cih4KTt2YXIgcT0vXihmaWxlKS8udGVzdCh4LmhyZWYpP1tcImhvc3RcIixcImhvc3RuYW1lXCJdOltdO3JldHVybiBPYmplY3Qua2V5cyh4KS5mb3JFYWNoKChmdW5jdGlvbihlKXt+cS5pbmRleE9mKGUpfHwoeFtlXT14W2VdfHxudWxsKX0pKSx4fWUucGFyc2U9ZCxlLmZvcm1hdD1yLGUucmVzb2x2ZT1oLGUucmVzb2x2ZU9iamVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBkKGgoZSx0KSl9LGUuVXJsPWx9KCk7bW9kdWxlLmV4cG9ydHM9b30pKCk7Il0sIm5hbWVzIjpbImUiLCJleHBvcnRzIiwicmVxdWlyZSIsInQiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwibyIsImEiLCJ1bmRlZmluZWQiLCJzIiwibiIsImFiIiwiX19kaXJuYW1lIiwiZGVmYXVsdCIsInIiLCJkIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwIiwicGF0aG5hbWUiLCJjIiwiaGFzaCIsImkiLCJxdWVyeSIsInUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaG9zdCIsImluZGV4T2YiLCJwb3J0IiwiZW5jb2RlIiwiZiIsInNlYXJjaCIsInN1YnN0ciIsInNsYXNoZXMiLCJ0ZXN0IiwiaCIsIm1hdGNoIiwibGVuZ3RoIiwic2xpY2UiLCJVUkwiLCJtIiwidG9TdHJpbmciLCJ2IiwibCIsInByb3RvdHlwZSIsInBhcnNlIiwiZm9ybWF0IiwicmVzb2x2ZSIsInJlc29sdmVPYmplY3QiLCJfIiwiYiIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsImciLCJ5IiwidyIsIngiLCJDIiwiVSIsImhyZWYiLCJqIiwic3BsaXQiLCJkZWNvZGUiLCJjaGFyQ29kZUF0IiwidG9VcHBlckNhc2UiLCJkZWNvZGVVUklDb21wb25lbnQiLCJtYXAiLCJqb2luIiwicGF0aCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZW5kc1dpdGgiLCJxIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJVcmwiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/native-url/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/path-browserify/index.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/path-browserify/index.js ***!
- \**********************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(function() {\n \"use strict\";\n var e = {\n 114: function(e) {\n function assertPath(e) {\n if (typeof e !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(e));\n }\n }\n function normalizeStringPosix(e, r) {\n var t = \"\";\n var i = 0;\n var n = -1;\n var a = 0;\n var f;\n for(var l = 0; l <= e.length; ++l){\n if (l < e.length) f = e.charCodeAt(l);\n else if (f === 47) break;\n else f = 47;\n if (f === 47) {\n if (n === l - 1 || a === 1) {} else if (n !== l - 1 && a === 2) {\n if (t.length < 2 || i !== 2 || t.charCodeAt(t.length - 1) !== 46 || t.charCodeAt(t.length - 2) !== 46) {\n if (t.length > 2) {\n var s = t.lastIndexOf(\"/\");\n if (s !== t.length - 1) {\n if (s === -1) {\n t = \"\";\n i = 0;\n } else {\n t = t.slice(0, s);\n i = t.length - 1 - t.lastIndexOf(\"/\");\n }\n n = l;\n a = 0;\n continue;\n }\n } else if (t.length === 2 || t.length === 1) {\n t = \"\";\n i = 0;\n n = l;\n a = 0;\n continue;\n }\n }\n if (r) {\n if (t.length > 0) t += \"/..\";\n else t = \"..\";\n i = 2;\n }\n } else {\n if (t.length > 0) t += \"/\" + e.slice(n + 1, l);\n else t = e.slice(n + 1, l);\n i = l - n - 1;\n }\n n = l;\n a = 0;\n } else if (f === 46 && a !== -1) {\n ++a;\n } else {\n a = -1;\n }\n }\n return t;\n }\n function _format(e, r) {\n var t = r.dir || r.root;\n var i = r.base || (r.name || \"\") + (r.ext || \"\");\n if (!t) {\n return i;\n }\n if (t === r.root) {\n return t + i;\n }\n return t + e + i;\n }\n var r = {\n resolve: function resolve() {\n var e = \"\";\n var r = false;\n var t;\n for(var i = arguments.length - 1; i >= -1 && !r; i--){\n var n;\n if (i >= 0) n = arguments[i];\n else {\n if (t === undefined) t = \"\";\n n = t;\n }\n assertPath(n);\n if (n.length === 0) {\n continue;\n }\n e = n + \"/\" + e;\n r = n.charCodeAt(0) === 47;\n }\n e = normalizeStringPosix(e, !r);\n if (r) {\n if (e.length > 0) return \"/\" + e;\n else return \"/\";\n } else if (e.length > 0) {\n return e;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(e) {\n assertPath(e);\n if (e.length === 0) return \".\";\n var r = e.charCodeAt(0) === 47;\n var t = e.charCodeAt(e.length - 1) === 47;\n e = normalizeStringPosix(e, !r);\n if (e.length === 0 && !r) e = \".\";\n if (e.length > 0 && t) e += \"/\";\n if (r) return \"/\" + e;\n return e;\n },\n isAbsolute: function isAbsolute(e) {\n assertPath(e);\n return e.length > 0 && e.charCodeAt(0) === 47;\n },\n join: function join() {\n if (arguments.length === 0) return \".\";\n var e;\n for(var t = 0; t < arguments.length; ++t){\n var i = arguments[t];\n assertPath(i);\n if (i.length > 0) {\n if (e === undefined) e = i;\n else e += \"/\" + i;\n }\n }\n if (e === undefined) return \".\";\n return r.normalize(e);\n },\n relative: function relative(e, t) {\n assertPath(e);\n assertPath(t);\n if (e === t) return \"\";\n e = r.resolve(e);\n t = r.resolve(t);\n if (e === t) return \"\";\n var i = 1;\n for(; i < e.length; ++i){\n if (e.charCodeAt(i) !== 47) break;\n }\n var n = e.length;\n var a = n - i;\n var f = 1;\n for(; f < t.length; ++f){\n if (t.charCodeAt(f) !== 47) break;\n }\n var l = t.length;\n var s = l - f;\n var o = a < s ? a : s;\n var u = -1;\n var h = 0;\n for(; h <= o; ++h){\n if (h === o) {\n if (s > o) {\n if (t.charCodeAt(f + h) === 47) {\n return t.slice(f + h + 1);\n } else if (h === 0) {\n return t.slice(f + h);\n }\n } else if (a > o) {\n if (e.charCodeAt(i + h) === 47) {\n u = h;\n } else if (h === 0) {\n u = 0;\n }\n }\n break;\n }\n var c = e.charCodeAt(i + h);\n var v = t.charCodeAt(f + h);\n if (c !== v) break;\n else if (c === 47) u = h;\n }\n var g = \"\";\n for(h = i + u + 1; h <= n; ++h){\n if (h === n || e.charCodeAt(h) === 47) {\n if (g.length === 0) g += \"..\";\n else g += \"/..\";\n }\n }\n if (g.length > 0) return g + t.slice(f + u);\n else {\n f += u;\n if (t.charCodeAt(f) === 47) ++f;\n return t.slice(f);\n }\n },\n _makeLong: function _makeLong(e) {\n return e;\n },\n dirname: function dirname(e) {\n assertPath(e);\n if (e.length === 0) return \".\";\n var r = e.charCodeAt(0);\n var t = r === 47;\n var i = -1;\n var n = true;\n for(var a = e.length - 1; a >= 1; --a){\n r = e.charCodeAt(a);\n if (r === 47) {\n if (!n) {\n i = a;\n break;\n }\n } else {\n n = false;\n }\n }\n if (i === -1) return t ? \"/\" : \".\";\n if (t && i === 1) return \"//\";\n return e.slice(0, i);\n },\n basename: function basename(e, r) {\n if (r !== undefined && typeof r !== \"string\") throw new TypeError('\"ext\" argument must be a string');\n assertPath(e);\n var t = 0;\n var i = -1;\n var n = true;\n var a;\n if (r !== undefined && r.length > 0 && r.length <= e.length) {\n if (r.length === e.length && r === e) return \"\";\n var f = r.length - 1;\n var l = -1;\n for(a = e.length - 1; a >= 0; --a){\n var s = e.charCodeAt(a);\n if (s === 47) {\n if (!n) {\n t = a + 1;\n break;\n }\n } else {\n if (l === -1) {\n n = false;\n l = a + 1;\n }\n if (f >= 0) {\n if (s === r.charCodeAt(f)) {\n if (--f === -1) {\n i = a;\n }\n } else {\n f = -1;\n i = l;\n }\n }\n }\n }\n if (t === i) i = l;\n else if (i === -1) i = e.length;\n return e.slice(t, i);\n } else {\n for(a = e.length - 1; a >= 0; --a){\n if (e.charCodeAt(a) === 47) {\n if (!n) {\n t = a + 1;\n break;\n }\n } else if (i === -1) {\n n = false;\n i = a + 1;\n }\n }\n if (i === -1) return \"\";\n return e.slice(t, i);\n }\n },\n extname: function extname(e) {\n assertPath(e);\n var r = -1;\n var t = 0;\n var i = -1;\n var n = true;\n var a = 0;\n for(var f = e.length - 1; f >= 0; --f){\n var l = e.charCodeAt(f);\n if (l === 47) {\n if (!n) {\n t = f + 1;\n break;\n }\n continue;\n }\n if (i === -1) {\n n = false;\n i = f + 1;\n }\n if (l === 46) {\n if (r === -1) r = f;\n else if (a !== 1) a = 1;\n } else if (r !== -1) {\n a = -1;\n }\n }\n if (r === -1 || i === -1 || a === 0 || a === 1 && r === i - 1 && r === t + 1) {\n return \"\";\n }\n return e.slice(r, i);\n },\n format: function format(e) {\n if (e === null || typeof e !== \"object\") {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof e);\n }\n return _format(\"/\", e);\n },\n parse: function parse(e) {\n assertPath(e);\n var r = {\n root: \"\",\n dir: \"\",\n base: \"\",\n ext: \"\",\n name: \"\"\n };\n if (e.length === 0) return r;\n var t = e.charCodeAt(0);\n var i = t === 47;\n var n;\n if (i) {\n r.root = \"/\";\n n = 1;\n } else {\n n = 0;\n }\n var a = -1;\n var f = 0;\n var l = -1;\n var s = true;\n var o = e.length - 1;\n var u = 0;\n for(; o >= n; --o){\n t = e.charCodeAt(o);\n if (t === 47) {\n if (!s) {\n f = o + 1;\n break;\n }\n continue;\n }\n if (l === -1) {\n s = false;\n l = o + 1;\n }\n if (t === 46) {\n if (a === -1) a = o;\n else if (u !== 1) u = 1;\n } else if (a !== -1) {\n u = -1;\n }\n }\n if (a === -1 || l === -1 || u === 0 || u === 1 && a === l - 1 && a === f + 1) {\n if (l !== -1) {\n if (f === 0 && i) r.base = r.name = e.slice(1, l);\n else r.base = r.name = e.slice(f, l);\n }\n } else {\n if (f === 0 && i) {\n r.name = e.slice(1, a);\n r.base = e.slice(1, l);\n } else {\n r.name = e.slice(f, a);\n r.base = e.slice(f, l);\n }\n r.ext = e.slice(a, l);\n }\n if (f > 0) r.dir = e.slice(0, f - 1);\n else if (i) r.dir = \"/\";\n return r;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n r.posix = r;\n e.exports = r;\n }\n };\n var r = {};\n function __nccwpck_require__(t) {\n var i = r[t];\n if (i !== undefined) {\n return i.exports;\n }\n var n = r[t] = {\n exports: {}\n };\n var a = true;\n try {\n e[t](n, n.exports, __nccwpck_require__);\n a = false;\n } finally{\n if (a) delete r[t];\n }\n return n.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var t = __nccwpck_require__(114);\n module.exports = t;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wYXRoLWJyb3dzZXJpZnkvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFXO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUksU0FBU0EsQ0FBQztZQUFFLFNBQVNDLFdBQVdELENBQUM7Z0JBQUUsSUFBRyxPQUFPQSxNQUFJLFVBQVM7b0JBQUMsTUFBTSxJQUFJRSxVQUFVLHFDQUFtQ0MsS0FBS0MsU0FBUyxDQUFDSjtnQkFBRztZQUFDO1lBQUMsU0FBU0sscUJBQXFCTCxDQUFDLEVBQUNNLENBQUM7Z0JBQUUsSUFBSUMsSUFBRTtnQkFBRyxJQUFJQyxJQUFFO2dCQUFFLElBQUlDLElBQUUsQ0FBQztnQkFBRSxJQUFJQyxJQUFFO2dCQUFFLElBQUlDO2dCQUFFLElBQUksSUFBSUMsSUFBRSxHQUFFQSxLQUFHWixFQUFFYSxNQUFNLEVBQUMsRUFBRUQsRUFBRTtvQkFBQyxJQUFHQSxJQUFFWixFQUFFYSxNQUFNLEVBQUNGLElBQUVYLEVBQUVjLFVBQVUsQ0FBQ0Y7eUJBQVEsSUFBR0QsTUFBSSxJQUFHO3lCQUFXQSxJQUFFO29CQUFHLElBQUdBLE1BQUksSUFBRzt3QkFBQyxJQUFHRixNQUFJRyxJQUFFLEtBQUdGLE1BQUksR0FBRSxDQUFDLE9BQU0sSUFBR0QsTUFBSUcsSUFBRSxLQUFHRixNQUFJLEdBQUU7NEJBQUMsSUFBR0gsRUFBRU0sTUFBTSxHQUFDLEtBQUdMLE1BQUksS0FBR0QsRUFBRU8sVUFBVSxDQUFDUCxFQUFFTSxNQUFNLEdBQUMsT0FBSyxNQUFJTixFQUFFTyxVQUFVLENBQUNQLEVBQUVNLE1BQU0sR0FBQyxPQUFLLElBQUc7Z0NBQUMsSUFBR04sRUFBRU0sTUFBTSxHQUFDLEdBQUU7b0NBQUMsSUFBSUUsSUFBRVIsRUFBRVMsV0FBVyxDQUFDO29DQUFLLElBQUdELE1BQUlSLEVBQUVNLE1BQU0sR0FBQyxHQUFFO3dDQUFDLElBQUdFLE1BQUksQ0FBQyxHQUFF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LEdBQUN6QztRQUFDO0lBQUM7SUFBRSxJQUFJQSxJQUFFLENBQUM7SUFBRSxTQUFTMEMsb0JBQW9CekMsQ0FBQztRQUFFLElBQUlDLElBQUVGLENBQUMsQ0FBQ0MsRUFBRTtRQUFDLElBQUdDLE1BQUlrQixXQUFVO1lBQUMsT0FBT2xCLEVBQUV1QyxPQUFPO1FBQUE7UUFBQyxJQUFJdEMsSUFBRUgsQ0FBQyxDQUFDQyxFQUFFLEdBQUM7WUFBQ3dDLFNBQVEsQ0FBQztRQUFDO1FBQUUsSUFBSXJDLElBQUU7UUFBSyxJQUFHO1lBQUNWLENBQUMsQ0FBQ08sRUFBRSxDQUFDRSxHQUFFQSxFQUFFc0MsT0FBTyxFQUFDQztZQUFxQnRDLElBQUU7UUFBSyxTQUFRO1lBQUMsSUFBR0EsR0FBRSxPQUFPSixDQUFDLENBQUNDLEVBQUU7UUFBQTtRQUFDLE9BQU9FLEVBQUVzQyxPQUFPO0lBQUE7SUFBQyxJQUFHLE9BQU9DLHdCQUFzQixhQUFZQSxvQkFBb0JDLEVBQUUsR0FBQ0MsU0FBU0EsR0FBQztJQUFJLElBQUkzQyxJQUFFeUMsb0JBQW9CO0lBQUtHLE9BQU9KLE9BQU8sR0FBQ3hDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC1icm93c2VyaWZ5L2luZGV4LmpzPzYzYTMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezExNDpmdW5jdGlvbihlKXtmdW5jdGlvbiBhc3NlcnRQYXRoKGUpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIlBhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgXCIrSlNPTi5zdHJpbmdpZnkoZSkpfX1mdW5jdGlvbiBub3JtYWxpemVTdHJpbmdQb3NpeChlLHIpe3ZhciB0PVwiXCI7dmFyIGk9MDt2YXIgbj0tMTt2YXIgYT0wO3ZhciBmO2Zvcih2YXIgbD0wO2w8PWUubGVuZ3RoOysrbCl7aWYobDxlLmxlbmd0aClmPWUuY2hhckNvZGVBdChsKTtlbHNlIGlmKGY9PT00NylicmVhaztlbHNlIGY9NDc7aWYoZj09PTQ3KXtpZihuPT09bC0xfHxhPT09MSl7fWVsc2UgaWYobiE9PWwtMSYmYT09PTIpe2lmKHQubGVuZ3RoPDJ8fGkhPT0yfHx0LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkhPT00Nnx8dC5jaGFyQ29kZUF0KHQubGVuZ3RoLTIpIT09NDYpe2lmKHQubGVuZ3RoPjIpe3ZhciBzPXQubGFzdEluZGV4T2YoXCIvXCIpO2lmKHMhPT10Lmxlbmd0aC0xKXtpZihzPT09LTEpe3Q9XCJcIjtpPTB9ZWxzZXt0PXQuc2xpY2UoMCxzKTtpPXQubGVuZ3RoLTEtdC5sYXN0SW5kZXhPZihcIi9cIil9bj1sO2E9MDtjb250aW51ZX19ZWxzZSBpZih0Lmxlbmd0aD09PTJ8fHQubGVuZ3RoPT09MSl7dD1cIlwiO2k9MDtuPWw7YT0wO2NvbnRpbnVlfX1pZihyKXtpZih0Lmxlbmd0aD4wKXQrPVwiLy4uXCI7ZWxzZSB0PVwiLi5cIjtpPTJ9fWVsc2V7aWYodC5sZW5ndGg+MCl0Kz1cIi9cIitlLnNsaWNlKG4rMSxsKTtlbHNlIHQ9ZS5zbGljZShuKzEsbCk7aT1sLW4tMX1uPWw7YT0wfWVsc2UgaWYoZj09PTQ2JiZhIT09LTEpeysrYX1lbHNle2E9LTF9fXJldHVybiB0fWZ1bmN0aW9uIF9mb3JtYXQoZSxyKXt2YXIgdD1yLmRpcnx8ci5yb290O3ZhciBpPXIuYmFzZXx8KHIubmFtZXx8XCJcIikrKHIuZXh0fHxcIlwiKTtpZighdCl7cmV0dXJuIGl9aWYodD09PXIucm9vdCl7cmV0dXJuIHQraX1yZXR1cm4gdCtlK2l9dmFyIHI9e3Jlc29sdmU6ZnVuY3Rpb24gcmVzb2x2ZSgpe3ZhciBlPVwiXCI7dmFyIHI9ZmFsc2U7dmFyIHQ7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgtMTtpPj0tMSYmIXI7aS0tKXt2YXIgbjtpZihpPj0wKW49YXJndW1lbnRzW2ldO2Vsc2V7aWYodD09PXVuZGVmaW5lZCl0PVwiXCI7bj10fWFzc2VydFBhdGgobik7aWYobi5sZW5ndGg9PT0wKXtjb250aW51ZX1lPW4rXCIvXCIrZTtyPW4uY2hhckNvZGVBdCgwKT09PTQ3fWU9bm9ybWFsaXplU3RyaW5nUG9zaXgoZSwhcik7aWYocil7aWYoZS5sZW5ndGg+MClyZXR1cm5cIi9cIitlO2Vsc2UgcmV0dXJuXCIvXCJ9ZWxzZSBpZihlLmxlbmd0aD4wKXtyZXR1cm4gZX1lbHNle3JldHVyblwiLlwifX0sbm9ybWFsaXplOmZ1bmN0aW9uIG5vcm1hbGl6ZShlKXthc3NlcnRQYXRoKGUpO2lmKGUubGVuZ3RoPT09MClyZXR1cm5cIi5cIjt2YXIgcj1lLmNoYXJDb2RlQXQoMCk9PT00Nzt2YXIgdD1lLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSk9PT00NztlPW5vcm1hbGl6ZVN0cmluZ1Bvc2l4KGUsIXIpO2lmKGUubGVuZ3RoPT09MCYmIXIpZT1cIi5cIjtpZihlLmxlbmd0aD4wJiZ0KWUrPVwiL1wiO2lmKHIpcmV0dXJuXCIvXCIrZTtyZXR1cm4gZX0saXNBYnNvbHV0ZTpmdW5jdGlvbiBpc0Fic29sdXRlKGUpe2Fzc2VydFBhdGgoZSk7cmV0dXJuIGUubGVuZ3RoPjAmJmUuY2hhckNvZGVBdCgwKT09PTQ3fSxqb2luOmZ1bmN0aW9uIGpvaW4oKXtpZihhcmd1bWVudHMubGVuZ3RoPT09MClyZXR1cm5cIi5cIjt2YXIgZTtmb3IodmFyIHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7Kyt0KXt2YXIgaT1hcmd1bWVudHNbdF07YXNzZXJ0UGF0aChpKTtpZihpLmxlbmd0aD4wKXtpZihlPT09dW5kZWZpbmVkKWU9aTtlbHNlIGUrPVwiL1wiK2l9fWlmKGU9PT11bmRlZmluZWQpcmV0dXJuXCIuXCI7cmV0dXJuIHIubm9ybWFsaXplKGUpfSxyZWxhdGl2ZTpmdW5jdGlvbiByZWxhdGl2ZShlLHQpe2Fzc2VydFBhdGgoZSk7YXNzZXJ0UGF0aCh0KTtpZihlPT09dClyZXR1cm5cIlwiO2U9ci5yZXNvbHZlKGUpO3Q9ci5yZXNvbHZlKHQpO2lmKGU9PT10KXJldHVyblwiXCI7dmFyIGk9MTtmb3IoO2k8ZS5sZW5ndGg7KytpKXtpZihlLmNoYXJDb2RlQXQoaSkhPT00NylicmVha312YXIgbj1lLmxlbmd0aDt2YXIgYT1uLWk7dmFyIGY9MTtmb3IoO2Y8dC5sZW5ndGg7KytmKXtpZih0LmNoYXJDb2RlQXQoZikhPT00NylicmVha312YXIgbD10Lmxlbmd0aDt2YXIgcz1sLWY7dmFyIG89YTxzP2E6czt2YXIgdT0tMTt2YXIgaD0wO2Zvcig7aDw9bzsrK2gpe2lmKGg9PT1vKXtpZihzPm8pe2lmKHQuY2hhckNvZGVBdChmK2gpPT09NDcpe3JldHVybiB0LnNsaWNlKGYraCsxKX1lbHNlIGlmKGg9PT0wKXtyZXR1cm4gdC5zbGljZShmK2gpfX1lbHNlIGlmKGE+byl7aWYoZS5jaGFyQ29kZUF0KGkraCk9PT00Nyl7dT1ofWVsc2UgaWYoaD09PTApe3U9MH19YnJlYWt9dmFyIGM9ZS5jaGFyQ29kZUF0KGkraCk7dmFyIHY9dC5jaGFyQ29kZUF0KGYraCk7aWYoYyE9PXYpYnJlYWs7ZWxzZSBpZihjPT09NDcpdT1ofXZhciBnPVwiXCI7Zm9yKGg9aSt1KzE7aDw9bjsrK2gpe2lmKGg9PT1ufHxlLmNoYXJDb2RlQXQoaCk9PT00Nyl7aWYoZy5sZW5ndGg9PT0wKWcrPVwiLi5cIjtlbHNlIGcrPVwiLy4uXCJ9fWlmKGcubGVuZ3RoPjApcmV0dXJuIGcrdC5zbGljZShmK3UpO2Vsc2V7Zis9dTtpZih0LmNoYXJDb2RlQXQoZik9PT00NykrK2Y7cmV0dXJuIHQuc2xpY2UoZil9fSxfbWFrZUxvbmc6ZnVuY3Rpb24gX21ha2VMb25nKGUpe3JldHVybiBlfSxkaXJuYW1lOmZ1bmN0aW9uIGRpcm5hbWUoZSl7YXNzZXJ0UGF0aChlKTtpZihlLmxlbmd0aD09PTApcmV0dXJuXCIuXCI7dmFyIHI9ZS5jaGFyQ29kZUF0KDApO3ZhciB0PXI9PT00Nzt2YXIgaT0tMTt2YXIgbj10cnVlO2Zvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTE7LS1hKXtyPWUuY2hhckNvZGVBdChhKTtpZihyPT09NDcpe2lmKCFuKXtpPWE7YnJlYWt9fWVsc2V7bj1mYWxzZX19aWYoaT09PS0xKXJldHVybiB0P1wiL1wiOlwiLlwiO2lmKHQmJmk9PT0xKXJldHVyblwiLy9cIjtyZXR1cm4gZS5zbGljZSgwLGkpfSxiYXNlbmFtZTpmdW5jdGlvbiBiYXNlbmFtZShlLHIpe2lmKHIhPT11bmRlZmluZWQmJnR5cGVvZiByIT09XCJzdHJpbmdcIil0aHJvdyBuZXcgVHlwZUVycm9yKCdcImV4dFwiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTthc3NlcnRQYXRoKGUpO3ZhciB0PTA7dmFyIGk9LTE7dmFyIG49dHJ1ZTt2YXIgYTtpZihyIT09dW5kZWZpbmVkJiZyLmxlbmd0aD4wJiZyLmxlbmd0aDw9ZS5sZW5ndGgpe2lmKHIubGVuZ3RoPT09ZS5sZW5ndGgmJnI9PT1lKXJldHVyblwiXCI7dmFyIGY9ci5sZW5ndGgtMTt2YXIgbD0tMTtmb3IoYT1lLmxlbmd0aC0xO2E+PTA7LS1hKXt2YXIgcz1lLmNoYXJDb2RlQXQoYSk7aWYocz09PTQ3KXtpZighbil7dD1hKzE7YnJlYWt9fWVsc2V7aWYobD09PS0xKXtuPWZhbHNlO2w9YSsxfWlmKGY+PTApe2lmKHM9PT1yLmNoYXJDb2RlQXQoZikpe2lmKC0tZj09PS0xKXtpPWF9fWVsc2V7Zj0tMTtpPWx9fX19aWYodD09PWkpaT1sO2Vsc2UgaWYoaT09PS0xKWk9ZS5sZW5ndGg7cmV0dXJuIGUuc2xpY2UodCxpKX1lbHNle2ZvcihhPWUubGVuZ3RoLTE7YT49MDstLWEpe2lmKGUuY2hhckNvZGVBdChhKT09PTQ3KXtpZighbil7dD1hKzE7YnJlYWt9fWVsc2UgaWYoaT09PS0xKXtuPWZhbHNlO2k9YSsxfX1pZihpPT09LTEpcmV0dXJuXCJcIjtyZXR1cm4gZS5zbGljZSh0LGkpfX0sZXh0bmFtZTpmdW5jdGlvbiBleHRuYW1lKGUpe2Fzc2VydFBhdGgoZSk7dmFyIHI9LTE7dmFyIHQ9MDt2YXIgaT0tMTt2YXIgbj10cnVlO3ZhciBhPTA7Zm9yKHZhciBmPWUubGVuZ3RoLTE7Zj49MDstLWYpe3ZhciBsPWUuY2hhckNvZGVBdChmKTtpZihsPT09NDcpe2lmKCFuKXt0PWYrMTticmVha31jb250aW51ZX1pZihpPT09LTEpe249ZmFsc2U7aT1mKzF9aWYobD09PTQ2KXtpZihyPT09LTEpcj1mO2Vsc2UgaWYoYSE9PTEpYT0xfWVsc2UgaWYociE9PS0xKXthPS0xfX1pZihyPT09LTF8fGk9PT0tMXx8YT09PTB8fGE9PT0xJiZyPT09aS0xJiZyPT09dCsxKXtyZXR1cm5cIlwifXJldHVybiBlLnNsaWNlKHIsaSl9LGZvcm1hdDpmdW5jdGlvbiBmb3JtYXQoZSl7aWYoZT09PW51bGx8fHR5cGVvZiBlIT09XCJvYmplY3RcIil7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwicGF0aE9iamVjdFwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgZSl9cmV0dXJuIF9mb3JtYXQoXCIvXCIsZSl9LHBhcnNlOmZ1bmN0aW9uIHBhcnNlKGUpe2Fzc2VydFBhdGgoZSk7dmFyIHI9e3Jvb3Q6XCJcIixkaXI6XCJcIixiYXNlOlwiXCIsZXh0OlwiXCIsbmFtZTpcIlwifTtpZihlLmxlbmd0aD09PTApcmV0dXJuIHI7dmFyIHQ9ZS5jaGFyQ29kZUF0KDApO3ZhciBpPXQ9PT00Nzt2YXIgbjtpZihpKXtyLnJvb3Q9XCIvXCI7bj0xfWVsc2V7bj0wfXZhciBhPS0xO3ZhciBmPTA7dmFyIGw9LTE7dmFyIHM9dHJ1ZTt2YXIgbz1lLmxlbmd0aC0xO3ZhciB1PTA7Zm9yKDtvPj1uOy0tbyl7dD1lLmNoYXJDb2RlQXQobyk7aWYodD09PTQ3KXtpZighcyl7Zj1vKzE7YnJlYWt9Y29udGludWV9aWYobD09PS0xKXtzPWZhbHNlO2w9bysxfWlmKHQ9PT00Nil7aWYoYT09PS0xKWE9bztlbHNlIGlmKHUhPT0xKXU9MX1lbHNlIGlmKGEhPT0tMSl7dT0tMX19aWYoYT09PS0xfHxsPT09LTF8fHU9PT0wfHx1PT09MSYmYT09PWwtMSYmYT09PWYrMSl7aWYobCE9PS0xKXtpZihmPT09MCYmaSlyLmJhc2U9ci5uYW1lPWUuc2xpY2UoMSxsKTtlbHNlIHIuYmFzZT1yLm5hbWU9ZS5zbGljZShmLGwpfX1lbHNle2lmKGY9PT0wJiZpKXtyLm5hbWU9ZS5zbGljZSgxLGEpO3IuYmFzZT1lLnNsaWNlKDEsbCl9ZWxzZXtyLm5hbWU9ZS5zbGljZShmLGEpO3IuYmFzZT1lLnNsaWNlKGYsbCl9ci5leHQ9ZS5zbGljZShhLGwpfWlmKGY+MClyLmRpcj1lLnNsaWNlKDAsZi0xKTtlbHNlIGlmKGkpci5kaXI9XCIvXCI7cmV0dXJuIHJ9LHNlcDpcIi9cIixkZWxpbWl0ZXI6XCI6XCIsd2luMzI6bnVsbCxwb3NpeDpudWxsfTtyLnBvc2l4PXI7ZS5leHBvcnRzPXJ9fTt2YXIgcj17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHQpe3ZhciBpPXJbdF07aWYoaSE9PXVuZGVmaW5lZCl7cmV0dXJuIGkuZXhwb3J0c312YXIgbj1yW3RdPXtleHBvcnRzOnt9fTt2YXIgYT10cnVlO3RyeXtlW3RdKG4sbi5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO2E9ZmFsc2V9ZmluYWxseXtpZihhKWRlbGV0ZSByW3RdfXJldHVybiBuLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oMTE0KTttb2R1bGUuZXhwb3J0cz10fSkoKTsiXSwibmFtZXMiOlsiZSIsImFzc2VydFBhdGgiLCJUeXBlRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwibm9ybWFsaXplU3RyaW5nUG9zaXgiLCJyIiwidCIsImkiLCJuIiwiYSIsImYiLCJsIiwibGVuZ3RoIiwiY2hhckNvZGVBdCIsInMiLCJsYXN0SW5kZXhPZiIsInNsaWNlIiwiX2Zvcm1hdCIsImRpciIsInJvb3QiLCJiYXNlIiwibmFtZSIsImV4dCIsInJlc29sdmUiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJub3JtYWxpemUiLCJpc0Fic29sdXRlIiwiam9pbiIsInJlbGF0aXZlIiwibyIsInUiLCJoIiwiYyIsInYiLCJnIiwiX21ha2VMb25nIiwiZGlybmFtZSIsImJhc2VuYW1lIiwiZXh0bmFtZSIsImZvcm1hdCIsInBhcnNlIiwic2VwIiwiZGVsaW1pdGVyIiwid2luMzIiLCJwb3NpeCIsImV4cG9ydHMiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwiYWIiLCJfX2Rpcm5hbWUiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/path-browserify/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/path-to-regexp/index.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/path-to-regexp/index.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n/**\n * Tokenize input string.\n */ function lexer(str) {\n var tokens = [];\n var i = 0;\n while(i < str.length){\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({\n type: \"MODIFIER\",\n index: i,\n value: str[i++]\n });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({\n type: \"ESCAPED_CHAR\",\n index: i++,\n value: str[i++]\n });\n continue;\n }\n if (char === \"{\") {\n tokens.push({\n type: \"OPEN\",\n index: i,\n value: str[i++]\n });\n continue;\n }\n if (char === \"}\") {\n tokens.push({\n type: \"CLOSE\",\n index: i,\n value: str[i++]\n });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while(j < str.length){\n var code = str.charCodeAt(j);\n if (// `0-9`\n code >= 48 && code <= 57 || // `A-Z`\n code >= 65 && code <= 90 || // `a-z`\n code >= 97 && code <= 122 || // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name) throw new TypeError(\"Missing parameter name at \" + i);\n tokens.push({\n type: \"NAME\",\n index: i,\n value: name\n });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError('Pattern cannot start with \"?\" at ' + j);\n }\n while(j < str.length){\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n } else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \" + j);\n }\n }\n pattern += str[j++];\n }\n if (count) throw new TypeError(\"Unbalanced pattern at \" + i);\n if (!pattern) throw new TypeError(\"Missing pattern at \" + i);\n tokens.push({\n type: \"PATTERN\",\n index: i,\n value: pattern\n });\n i = j;\n continue;\n }\n tokens.push({\n type: \"CHAR\",\n index: i,\n value: str[i++]\n });\n }\n tokens.push({\n type: \"END\",\n index: i,\n value: \"\"\n });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */ function parse(str, options) {\n if (options === void 0) {\n options = {};\n }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\" + escapeString(options.delimiter || \"/#?\") + \"]+?\";\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function(type) {\n if (i < tokens.length && tokens[i].type === type) return tokens[i++].value;\n };\n var mustConsume = function(type) {\n var value = tryConsume(type);\n if (value !== undefined) return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \" + nextType + \" at \" + index + \", expected \" + type);\n };\n var consumeText = function() {\n var result = \"\";\n var value;\n // tslint:disable-next-line\n while(value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\")){\n result += value;\n }\n return result;\n };\n while(i < tokens.length){\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\nexports.parse = parse;\n/**\n * Compile a string to a template function for the path.\n */ function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\nexports.compile = compile;\n/**\n * Expose a method for transforming tokens into the path function.\n */ function tokensToFunction(tokens, options) {\n if (options === void 0) {\n options = {};\n }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function(x) {\n return x;\n } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function(token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\" + token.pattern + \")$\", reFlags);\n }\n });\n return function(data) {\n var path = \"\";\n for(var i = 0; i < tokens.length; i++){\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got an array');\n }\n if (value.length === 0) {\n if (optional) continue;\n throw new TypeError('Expected \"' + token.name + '\" to not be empty');\n }\n for(var j = 0; j < value.length; j++){\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"');\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"');\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional) continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError('Expected \"' + token.name + '\" to be ' + typeOfMessage);\n }\n return path;\n };\n}\nexports.tokensToFunction = tokensToFunction;\n/**\n * Create path match function from `path-to-regexp` spec.\n */ function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\nexports.match = match;\n/**\n * Create a path match function from `path-to-regexp` output.\n */ function regexpToFunction(re, keys, options) {\n if (options === void 0) {\n options = {};\n }\n var _a = options.decode, decode = _a === void 0 ? function(x) {\n return x;\n } : _a;\n return function(pathname) {\n var m = re.exec(pathname);\n if (!m) return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function(i) {\n // tslint:disable-next-line\n if (m[i] === undefined) return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function(value) {\n return decode(value, key);\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n };\n for(var i = 1; i < m.length; i++){\n _loop_1(i);\n }\n return {\n path: path,\n index: index,\n params: params\n };\n };\n}\nexports.regexpToFunction = regexpToFunction;\n/**\n * Escape a regular expression string.\n */ function escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */ function flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */ function regexpToRegexp(path, keys) {\n if (!keys) return path;\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n if (groups) {\n for(var i = 0; i < groups.length; i++){\n keys.push({\n name: i,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n }\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */ function arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function(path) {\n return pathToRegexp(path, keys, options).source;\n });\n return new RegExp(\"(?:\" + parts.join(\"|\") + \")\", flags(options));\n}\n/**\n * Create a path regexp from string input.\n */ function stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */ function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) {\n options = {};\n }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function(x) {\n return x;\n } : _d;\n var endsWith = \"[\" + escapeString(options.endsWith || \"\") + \"]|$\";\n var delimiter = \"[\" + escapeString(options.delimiter || \"/#?\") + \"]\";\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for(var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++){\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n } else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys) keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\" + prefix + \"((?:\" + token.pattern + \")(?:\" + suffix + prefix + \"(?:\" + token.pattern + \"))*)\" + suffix + \")\" + mod;\n } else {\n route += \"(?:\" + prefix + \"(\" + token.pattern + \")\" + suffix + \")\" + token.modifier;\n }\n } else {\n route += \"(\" + token.pattern + \")\" + token.modifier;\n }\n } else {\n route += \"(?:\" + prefix + suffix + \")\" + token.modifier;\n }\n }\n }\n if (end) {\n if (!strict) route += delimiter + \"?\";\n route += !options.endsWith ? \"$\" : \"(?=\" + endsWith + \")\";\n } else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\" ? delimiter.indexOf(endToken[endToken.length - 1]) > -1 : endToken === undefined;\n if (!strict) {\n route += \"(?:\" + delimiter + \"(?=\" + endsWith + \"))?\";\n }\n if (!isEndDelimited) {\n route += \"(?=\" + delimiter + \"|\" + endsWith + \")\";\n }\n }\n return new RegExp(route, flags(options));\n}\nexports.tokensToRegexp = tokensToRegexp;\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */ function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp) return regexpToRegexp(path, keys);\n if (Array.isArray(path)) return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\nexports.pathToRegexp = pathToRegexp; //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFBRUcsT0FBTztBQUFLLENBQUMsRUFBQztBQUM3RDs7Q0FFQyxHQUNELFNBQVNDLE1BQU1DLEdBQUc7SUFDZCxJQUFJQyxTQUFTLEVBQUU7SUFDZixJQUFJQyxJQUFJO0lBQ1IsTUFBT0EsSUFBSUYsSUFBSUcsTUFBTSxDQUFFO1FBQ25CLElBQUlDLE9BQU9KLEdBQUcsQ0FBQ0UsRUFBRTtRQUNqQixJQUFJRSxTQUFTLE9BQU9BLFNBQVMsT0FBT0EsU0FBUyxLQUFLO1lBQzlDSCxPQUFPSSxJQUFJLENBQUM7Z0JBQUVDLE1BQU07Z0JBQVlDLE9BQU9MO2dCQUFHSixPQUFPRSxHQUFHLENBQUNFLElBQUk7WUFBQztZQUMxRDtRQUNKO1FBQ0EsSUFBSUUsU0FBUyxNQUFNO1lBQ2ZILE9BQU9JLElBQUksQ0FBQztnQkFBRUMsTUFBTTtnQkFBZ0JDLE9BQU9MO2dCQUFLSixPQUFPRSxHQUFHLENBQUNFLElBQUk7WUFBQztZQUNoRTtRQUNKO1FBQ0EsSUFBSUUsU0FBUyxLQUFLO1lBQ2RILE9BQU9JLElBQUksQ0FBQztnQkFBRUMsTUFBTTtnQkFBUUMsT0FBT0w7Z0JBQUdKLE9BQU9FLEdBQUcsQ0FBQ0UsSUFBSTtZQUFDO1lBQ3REO1FBQ0o7UUFDQSxJQUFJRSxTQUFTLEtBQUs7WUFDZEgsT0FBT0ksSUFBSSxDQUFDO2dCQUFFQyxNQUFNO2dCQUFTQyxPQUFPTDtnQkFBR0osT0FBT0UsR0FBRyxDQUFDRSxJQUFJO1lBQUM7WUFDdkQ7UUFDSjtRQUNBLElBQUlFLFNBQVMsS0FBSztZQUNkLElBQUlJLE9BQU87WUFDWCxJQUFJQyxJQUFJUCxJQUFJO1lBQ1osTUFBT08sSUFBSVQsSUFBSUcsTUFBTSxDQUFFO2dCQUNuQixJQUFJTyxPQUFPVixJQUFJVyxVQUFVLENBQUNGO2dCQUMxQixJQUVB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LFFBQVExRCxTQUFTRSxTQUFTLE1BQU1lLE1BQU1kLFFBQVE7WUFDM0Q7UUFDSjtJQUNKO0lBQ0EsSUFBSW9ELEtBQUs7UUFDTCxJQUFJLENBQUNILFFBQ0RNLFNBQVNuRSxZQUFZO1FBQ3pCbUUsU0FBUyxDQUFDeEUsUUFBUXVFLFFBQVEsR0FBRyxNQUFNLFFBQVFBLFdBQVc7SUFDMUQsT0FDSztRQUNELElBQUlLLFdBQVczRixNQUFNLENBQUNBLE9BQU9FLE1BQU0sR0FBRyxFQUFFO1FBQ3hDLElBQUkwRixpQkFBaUIsT0FBT0QsYUFBYSxXQUNuQ3ZFLFVBQVVVLE9BQU8sQ0FBQzZELFFBQVEsQ0FBQ0EsU0FBU3pGLE1BQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxJQUVsRHlGLGFBQWFqRTtRQUNyQixJQUFJLENBQUN1RCxRQUFRO1lBQ1RNLFNBQVMsUUFBUW5FLFlBQVksUUFBUWtFLFdBQVc7UUFDcEQ7UUFDQSxJQUFJLENBQUNNLGdCQUFnQjtZQUNqQkwsU0FBUyxRQUFRbkUsWUFBWSxNQUFNa0UsV0FBVztRQUNsRDtJQUNKO0lBQ0EsT0FBTyxJQUFJdkMsT0FBT3dDLE9BQU9oRCxNQUFNeEI7QUFDbkM7QUFDQW5CLHNCQUFzQixHQUFHb0Y7QUFDekI7Ozs7OztDQU1DLEdBQ0QsU0FBU3BCLGFBQWFyQyxJQUFJLEVBQUVtQyxJQUFJLEVBQUUzQyxPQUFPO0lBQ3JDLElBQUlRLGdCQUFnQndCLFFBQ2hCLE9BQU95QixlQUFlakQsTUFBTW1DO0lBQ2hDLElBQUlQLE1BQU1DLE9BQU8sQ0FBQzdCLE9BQ2QsT0FBT29ELGNBQWNwRCxNQUFNbUMsTUFBTTNDO0lBQ3JDLE9BQU9nRSxlQUFleEQsTUFBTW1DLE1BQU0zQztBQUN0QztBQUNBbkIsb0JBQW9CLEdBQUdnRSxjQUN2QixpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHAvaW5kZXguanM/ODgyMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogVG9rZW5pemUgaW5wdXQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBsZXhlcihzdHIpIHtcbiAgICB2YXIgdG9rZW5zID0gW107XG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwgc3RyLmxlbmd0aCkge1xuICAgICAgICB2YXIgY2hhciA9IHN0cltpXTtcbiAgICAgICAgaWYgKGNoYXIgPT09IFwiKlwiIHx8IGNoYXIgPT09IFwiK1wiIHx8IGNoYXIgPT09IFwiP1wiKSB7XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwiTU9ESUZJRVJcIiwgaW5kZXg6IGksIHZhbHVlOiBzdHJbaSsrXSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFyID09PSBcIlxcXFxcIikge1xuICAgICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIkVTQ0FQRURfQ0hBUlwiLCBpbmRleDogaSsrLCB2YWx1ZTogc3RyW2krK10gfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gXCJ7XCIpIHtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJPUEVOXCIsIGluZGV4OiBpLCB2YWx1ZTogc3RyW2krK10gfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gXCJ9XCIpIHtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJDTE9TRVwiLCBpbmRleDogaSwgdmFsdWU6IHN0cltpKytdIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09IFwiOlwiKSB7XG4gICAgICAgICAgICB2YXIgbmFtZSA9IFwiXCI7XG4gICAgICAgICAgICB2YXIgaiA9IGkgKyAxO1xuICAgICAgICAgICAgd2hpbGUgKGogPCBzdHIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBzdHIuY2hhckNvZGVBdChqKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgLy8gYDAtOWBcbiAgICAgICAgICAgICAgICAoY29kZSA+PSA0OCAmJiBjb2RlIDw9IDU3KSB8fFxuICAgICAgICAgICAgICAgICAgICAvLyBgQS1aYFxuICAgICAgICAgICAgICAgICAgICAoY29kZSA+PSA2NSAmJiBjb2RlIDw9IDkwKSB8fFxuICAgICAgICAgICAgICAgICAgICAvLyBgYS16YFxuICAgICAgICAgICAgICAgICAgICAoY29kZSA+PSA5NyAmJiBjb2RlIDw9IDEyMikgfHxcbiAgICAgICAgICAgICAgICAgICAgLy8gYF9gXG4gICAgICAgICAgICAgICAgICAgIGNvZGUgPT09IDk1KSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUgKz0gc3RyW2orK107XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBcIiArIGkpO1xuICAgICAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIk5BTUVcIiwgaW5kZXg6IGksIHZhbHVlOiBuYW1lIH0pO1xuICAgICAgICAgICAgaSA9IGo7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gXCIoXCIpIHtcbiAgICAgICAgICAgIHZhciBjb3VudCA9IDE7XG4gICAgICAgICAgICB2YXIgcGF0dGVybiA9IFwiXCI7XG4gICAgICAgICAgICB2YXIgaiA9IGkgKyAxO1xuICAgICAgICAgICAgaWYgKHN0cltqXSA9PT0gXCI/XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUGF0dGVybiBjYW5ub3Qgc3RhcnQgd2l0aCBcXFwiP1xcXCIgYXQgXCIgKyBqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlIChqIDwgc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGlmIChzdHJbal0gPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gKz0gc3RyW2orK10gKyBzdHJbaisrXTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdHJbal0gPT09IFwiKVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50LS07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaisrO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RyW2pdID09PSBcIihcIikge1xuICAgICAgICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RyW2ogKyAxXSAhPT0gXCI/XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYXB0dXJpbmcgZ3JvdXBzIGFyZSBub3QgYWxsb3dlZCBhdCBcIiArIGopO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhdHRlcm4gKz0gc3RyW2orK107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY291bnQpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVuYmFsYW5jZWQgcGF0dGVybiBhdCBcIiArIGkpO1xuICAgICAgICAgICAgaWYgKCFwYXR0ZXJuKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJNaXNzaW5nIHBhdHRlcm4gYXQgXCIgKyBpKTtcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJQQVRURVJOXCIsIGluZGV4OiBpLCB2YWx1ZTogcGF0dGVybiB9KTtcbiAgICAgICAgICAgIGkgPSBqO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIkNIQVJcIiwgaW5kZXg6IGksIHZhbHVlOiBzdHJbaSsrXSB9KTtcbiAgICB9XG4gICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcIkVORFwiLCBpbmRleDogaSwgdmFsdWU6IFwiXCIgfSk7XG4gICAgcmV0dXJuIHRva2Vucztcbn1cbi8qKlxuICogUGFyc2UgYSBzdHJpbmcgZm9yIHRoZSByYXcgdG9rZW5zLlxuICovXG5mdW5jdGlvbiBwYXJzZShzdHIsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIHZhciB0b2tlbnMgPSBsZXhlcihzdHIpO1xuICAgIHZhciBfYSA9IG9wdGlvbnMucHJlZml4ZXMsIHByZWZpeGVzID0gX2EgPT09IHZvaWQgMCA/IFwiLi9cIiA6IF9hO1xuICAgIHZhciBkZWZhdWx0UGF0dGVybiA9IFwiW15cIiArIGVzY2FwZVN0cmluZyhvcHRpb25zLmRlbGltaXRlciB8fCBcIi8jP1wiKSArIFwiXSs/XCI7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHZhciBrZXkgPSAwO1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIgcGF0aCA9IFwiXCI7XG4gICAgdmFyIHRyeUNvbnN1bWUgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICBpZiAoaSA8IHRva2Vucy5sZW5ndGggJiYgdG9rZW5zW2ldLnR5cGUgPT09IHR5cGUpXG4gICAgICAgICAgICByZXR1cm4gdG9rZW5zW2krK10udmFsdWU7XG4gICAgfTtcbiAgICB2YXIgbXVzdENvbnN1bWUgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0cnlDb25zdW1lKHR5cGUpO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgdmFyIF9hID0gdG9rZW5zW2ldLCBuZXh0VHlwZSA9IF9hLnR5cGUsIGluZGV4ID0gX2EuaW5kZXg7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmV4cGVjdGVkIFwiICsgbmV4dFR5cGUgKyBcIiBhdCBcIiArIGluZGV4ICsgXCIsIGV4cGVjdGVkIFwiICsgdHlwZSk7XG4gICAgfTtcbiAgICB2YXIgY29uc3VtZVRleHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBcIlwiO1xuICAgICAgICB2YXIgdmFsdWU7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgICAgICB3aGlsZSAoKHZhbHVlID0gdHJ5Q29uc3VtZShcIkNIQVJcIikgfHwgdHJ5Q29uc3VtZShcIkVTQ0FQRURfQ0hBUlwiKSkpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgd2hpbGUgKGkgPCB0b2tlbnMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBjaGFyID0gdHJ5Q29uc3VtZShcIkNIQVJcIik7XG4gICAgICAgIHZhciBuYW1lID0gdHJ5Q29uc3VtZShcIk5BTUVcIik7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gdHJ5Q29uc3VtZShcIlBBVFRFUk5cIik7XG4gICAgICAgIGlmIChuYW1lIHx8IHBhdHRlcm4pIHtcbiAgICAgICAgICAgIHZhciBwcmVmaXggPSBjaGFyIHx8IFwiXCI7XG4gICAgICAgICAgICBpZiAocHJlZml4ZXMuaW5kZXhPZihwcmVmaXgpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHBhdGggKz0gcHJlZml4O1xuICAgICAgICAgICAgICAgIHByZWZpeCA9IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHBhdGgpO1xuICAgICAgICAgICAgICAgIHBhdGggPSBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUgfHwga2V5KyssXG4gICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsXG4gICAgICAgICAgICAgICAgc3VmZml4OiBcIlwiLFxuICAgICAgICAgICAgICAgIHBhdHRlcm46IHBhdHRlcm4gfHwgZGVmYXVsdFBhdHRlcm4sXG4gICAgICAgICAgICAgICAgbW9kaWZpZXI6IHRyeUNvbnN1bWUoXCJNT0RJRklFUlwiKSB8fCBcIlwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB2YWx1ZSA9IGNoYXIgfHwgdHJ5Q29uc3VtZShcIkVTQ0FQRURfQ0hBUlwiKTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBwYXRoICs9IHZhbHVlO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHBhdGgpO1xuICAgICAgICAgICAgcGF0aCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG9wZW4gPSB0cnlDb25zdW1lKFwiT1BFTlwiKTtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHZhciBwcmVmaXggPSBjb25zdW1lVGV4dCgpO1xuICAgICAgICAgICAgdmFyIG5hbWVfMSA9IHRyeUNvbnN1bWUoXCJOQU1FXCIpIHx8IFwiXCI7XG4gICAgICAgICAgICB2YXIgcGF0dGVybl8xID0gdHJ5Q29uc3VtZShcIlBBVFRFUk5cIikgfHwgXCJcIjtcbiAgICAgICAgICAgIHZhciBzdWZmaXggPSBjb25zdW1lVGV4dCgpO1xuICAgICAgICAgICAgbXVzdENvbnN1bWUoXCJDTE9TRVwiKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lXzEgfHwgKHBhdHRlcm5fMSA/IGtleSsrIDogXCJcIiksXG4gICAgICAgICAgICAgICAgcGF0dGVybjogbmFtZV8xICYmICFwYXR0ZXJuXzEgPyBkZWZhdWx0UGF0dGVybiA6IHBhdHRlcm5fMSxcbiAgICAgICAgICAgICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgICAgICAgICAgICBzdWZmaXg6IHN1ZmZpeCxcbiAgICAgICAgICAgICAgICBtb2RpZmllcjogdHJ5Q29uc3VtZShcIk1PRElGSUVSXCIpIHx8IFwiXCJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbXVzdENvbnN1bWUoXCJFTkRcIik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG4vKipcbiAqIENvbXBpbGUgYSBzdHJpbmcgdG8gYSB0ZW1wbGF0ZSBmdW5jdGlvbiBmb3IgdGhlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGUoc3RyLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHRva2Vuc1RvRnVuY3Rpb24ocGFyc2Uoc3RyLCBvcHRpb25zKSwgb3B0aW9ucyk7XG59XG5leHBvcnRzLmNvbXBpbGUgPSBjb21waWxlO1xuLyoqXG4gKiBFeHBvc2UgYSBtZXRob2QgZm9yIHRyYW5zZm9ybWluZyB0b2tlbnMgaW50byB0aGUgcGF0aCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gdG9rZW5zVG9GdW5jdGlvbih0b2tlbnMsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIHZhciByZUZsYWdzID0gZmxhZ3Mob3B0aW9ucyk7XG4gICAgdmFyIF9hID0gb3B0aW9ucy5lbmNvZGUsIGVuY29kZSA9IF9hID09PSB2b2lkIDAgPyBmdW5jdGlvbiAoeCkgeyByZXR1cm4geDsgfSA6IF9hLCBfYiA9IG9wdGlvbnMudmFsaWRhdGUsIHZhbGlkYXRlID0gX2IgPT09IHZvaWQgMCA/IHRydWUgOiBfYjtcbiAgICAvLyBDb21waWxlIGFsbCB0aGUgdG9rZW5zIGludG8gcmVnZXhwcy5cbiAgICB2YXIgbWF0Y2hlcyA9IHRva2Vucy5tYXAoZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKFwiXig/OlwiICsgdG9rZW4ucGF0dGVybiArIFwiKSRcIiwgcmVGbGFncyk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgdmFyIHBhdGggPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIHRva2VuID0gdG9rZW5zW2ldO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHBhdGggKz0gdG9rZW47XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhID8gZGF0YVt0b2tlbi5uYW1lXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciBvcHRpb25hbCA9IHRva2VuLm1vZGlmaWVyID09PSBcIj9cIiB8fCB0b2tlbi5tb2RpZmllciA9PT0gXCIqXCI7XG4gICAgICAgICAgICB2YXIgcmVwZWF0ID0gdG9rZW4ubW9kaWZpZXIgPT09IFwiKlwiIHx8IHRva2VuLm1vZGlmaWVyID09PSBcIitcIjtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICghcmVwZWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBcXFwiXCIgKyB0b2tlbi5uYW1lICsgXCJcXFwiIHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYW4gYXJyYXlcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbmFsKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBcXFwiXCIgKyB0b2tlbi5uYW1lICsgXCJcXFwiIHRvIG5vdCBiZSBlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VnbWVudCA9IGVuY29kZSh2YWx1ZVtqXSwgdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUgJiYgIW1hdGNoZXNbaV0udGVzdChzZWdtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGFsbCBcXFwiXCIgKyB0b2tlbi5uYW1lICsgXCJcXFwiIHRvIG1hdGNoIFxcXCJcIiArIHRva2VuLnBhdHRlcm4gKyBcIlxcXCIsIGJ1dCBnb3QgXFxcIlwiICsgc2VnbWVudCArIFwiXFxcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwYXRoICs9IHRva2VuLnByZWZpeCArIHNlZ21lbnQgKyB0b2tlbi5zdWZmaXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VnbWVudCA9IGVuY29kZShTdHJpbmcodmFsdWUpLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlICYmICFtYXRjaGVzW2ldLnRlc3Qoc2VnbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIFxcXCJcIiArIHRva2VuLm5hbWUgKyBcIlxcXCIgdG8gbWF0Y2ggXFxcIlwiICsgdG9rZW4ucGF0dGVybiArIFwiXFxcIiwgYnV0IGdvdCBcXFwiXCIgKyBzZWdtZW50ICsgXCJcXFwiXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXRoICs9IHRva2VuLnByZWZpeCArIHNlZ21lbnQgKyB0b2tlbi5zdWZmaXg7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9uYWwpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB2YXIgdHlwZU9mTWVzc2FnZSA9IHJlcGVhdCA/IFwiYW4gYXJyYXlcIiA6IFwiYSBzdHJpbmdcIjtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBcXFwiXCIgKyB0b2tlbi5uYW1lICsgXCJcXFwiIHRvIGJlIFwiICsgdHlwZU9mTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfTtcbn1cbmV4cG9ydHMudG9rZW5zVG9GdW5jdGlvbiA9IHRva2Vuc1RvRnVuY3Rpb247XG4vKipcbiAqIENyZWF0ZSBwYXRoIG1hdGNoIGZ1bmN0aW9uIGZyb20gYHBhdGgtdG8tcmVnZXhwYCBzcGVjLlxuICovXG5mdW5jdGlvbiBtYXRjaChzdHIsIG9wdGlvbnMpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIHZhciByZSA9IHBhdGhUb1JlZ2V4cChzdHIsIGtleXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiByZWdleHBUb0Z1bmN0aW9uKHJlLCBrZXlzLCBvcHRpb25zKTtcbn1cbmV4cG9ydHMubWF0Y2ggPSBtYXRjaDtcbi8qKlxuICogQ3JlYXRlIGEgcGF0aCBtYXRjaCBmdW5jdGlvbiBmcm9tIGBwYXRoLXRvLXJlZ2V4cGAgb3V0cHV0LlxuICovXG5mdW5jdGlvbiByZWdleHBUb0Z1bmN0aW9uKHJlLCBrZXlzLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgX2EgPSBvcHRpb25zLmRlY29kZSwgZGVjb2RlID0gX2EgPT09IHZvaWQgMCA/IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4OyB9IDogX2E7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChwYXRobmFtZSkge1xuICAgICAgICB2YXIgbSA9IHJlLmV4ZWMocGF0aG5hbWUpO1xuICAgICAgICBpZiAoIW0pXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHZhciBwYXRoID0gbVswXSwgaW5kZXggPSBtLmluZGV4O1xuICAgICAgICB2YXIgcGFyYW1zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbiAoaSkge1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBpZiAobVtpXSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIHJldHVybiBcImNvbnRpbnVlXCI7XG4gICAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpIC0gMV07XG4gICAgICAgICAgICBpZiAoa2V5Lm1vZGlmaWVyID09PSBcIipcIiB8fCBrZXkubW9kaWZpZXIgPT09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zW2tleS5uYW1lXSA9IG1baV0uc3BsaXQoa2V5LnByZWZpeCArIGtleS5zdWZmaXgpLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZSh2YWx1ZSwga2V5KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmFtc1trZXkubmFtZV0gPSBkZWNvZGUobVtpXSwga2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBtLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBfbG9vcF8xKGkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhdGg6IHBhdGgsIGluZGV4OiBpbmRleCwgcGFyYW1zOiBwYXJhbXMgfTtcbiAgICB9O1xufVxuZXhwb3J0cy5yZWdleHBUb0Z1bmN0aW9uID0gcmVnZXhwVG9GdW5jdGlvbjtcbi8qKlxuICogRXNjYXBlIGEgcmVndWxhciBleHByZXNzaW9uIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlU3RyaW5nKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFsuKyo/PV4hOiR7fSgpW1xcXXwvXFxcXF0pL2csIFwiXFxcXCQxXCIpO1xufVxuLyoqXG4gKiBHZXQgdGhlIGZsYWdzIGZvciBhIHJlZ2V4cCBmcm9tIHRoZSBvcHRpb25zLlxuICovXG5mdW5jdGlvbiBmbGFncyhvcHRpb25zKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMgJiYgb3B0aW9ucy5zZW5zaXRpdmUgPyBcIlwiIDogXCJpXCI7XG59XG4vKipcbiAqIFB1bGwgb3V0IGtleXMgZnJvbSBhIHJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gcmVnZXhwVG9SZWdleHAocGF0aCwga2V5cykge1xuICAgIGlmICgha2V5cylcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgLy8gVXNlIGEgbmVnYXRpdmUgbG9va2FoZWFkIHRvIG1hdGNoIG9ubHkgY2FwdHVyaW5nIGdyb3Vwcy5cbiAgICB2YXIgZ3JvdXBzID0gcGF0aC5zb3VyY2UubWF0Y2goL1xcKCg/IVxcPykvZyk7XG4gICAgaWYgKGdyb3Vwcykge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAga2V5cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBpLFxuICAgICAgICAgICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgICAgICAgICBzdWZmaXg6IFwiXCIsXG4gICAgICAgICAgICAgICAgbW9kaWZpZXI6IFwiXCIsXG4gICAgICAgICAgICAgICAgcGF0dGVybjogXCJcIlxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG59XG4vKipcbiAqIFRyYW5zZm9ybSBhbiBhcnJheSBpbnRvIGEgcmVnZXhwLlxuICovXG5mdW5jdGlvbiBhcnJheVRvUmVnZXhwKHBhdGhzLCBrZXlzLCBvcHRpb25zKSB7XG4gICAgdmFyIHBhcnRzID0gcGF0aHMubWFwKGZ1bmN0aW9uIChwYXRoKSB7IHJldHVybiBwYXRoVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucykuc291cmNlOyB9KTtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcIig/OlwiICsgcGFydHMuam9pbihcInxcIikgKyBcIilcIiwgZmxhZ3Mob3B0aW9ucykpO1xufVxuLyoqXG4gKiBDcmVhdGUgYSBwYXRoIHJlZ2V4cCBmcm9tIHN0cmluZyBpbnB1dC5cbiAqL1xuZnVuY3Rpb24gc3RyaW5nVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucykge1xuICAgIHJldHVybiB0b2tlbnNUb1JlZ2V4cChwYXJzZShwYXRoLCBvcHRpb25zKSwga2V5cywgb3B0aW9ucyk7XG59XG4vKipcbiAqIEV4cG9zZSBhIGZ1bmN0aW9uIGZvciB0YWtpbmcgdG9rZW5zIGFuZCByZXR1cm5pbmcgYSBSZWdFeHAuXG4gKi9cbmZ1bmN0aW9uIHRva2Vuc1RvUmVnZXhwKHRva2Vucywga2V5cywgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHsgb3B0aW9ucyA9IHt9OyB9XG4gICAgdmFyIF9hID0gb3B0aW9ucy5zdHJpY3QsIHN0cmljdCA9IF9hID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hLCBfYiA9IG9wdGlvbnMuc3RhcnQsIHN0YXJ0ID0gX2IgPT09IHZvaWQgMCA/IHRydWUgOiBfYiwgX2MgPSBvcHRpb25zLmVuZCwgZW5kID0gX2MgPT09IHZvaWQgMCA/IHRydWUgOiBfYywgX2QgPSBvcHRpb25zLmVuY29kZSwgZW5jb2RlID0gX2QgPT09IHZvaWQgMCA/IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4OyB9IDogX2Q7XG4gICAgdmFyIGVuZHNXaXRoID0gXCJbXCIgKyBlc2NhcGVTdHJpbmcob3B0aW9ucy5lbmRzV2l0aCB8fCBcIlwiKSArIFwiXXwkXCI7XG4gICAgdmFyIGRlbGltaXRlciA9IFwiW1wiICsgZXNjYXBlU3RyaW5nKG9wdGlvbnMuZGVsaW1pdGVyIHx8IFwiLyM/XCIpICsgXCJdXCI7XG4gICAgdmFyIHJvdXRlID0gc3RhcnQgPyBcIl5cIiA6IFwiXCI7XG4gICAgLy8gSXRlcmF0ZSBvdmVyIHRoZSB0b2tlbnMgYW5kIGNyZWF0ZSBvdXIgcmVnZXhwIHN0cmluZy5cbiAgICBmb3IgKHZhciBfaSA9IDAsIHRva2Vuc18xID0gdG9rZW5zOyBfaSA8IHRva2Vuc18xLmxlbmd0aDsgX2krKykge1xuICAgICAgICB2YXIgdG9rZW4gPSB0b2tlbnNfMVtfaV07XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJvdXRlICs9IGVzY2FwZVN0cmluZyhlbmNvZGUodG9rZW4pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwcmVmaXggPSBlc2NhcGVTdHJpbmcoZW5jb2RlKHRva2VuLnByZWZpeCkpO1xuICAgICAgICAgICAgdmFyIHN1ZmZpeCA9IGVzY2FwZVN0cmluZyhlbmNvZGUodG9rZW4uc3VmZml4KSk7XG4gICAgICAgICAgICBpZiAodG9rZW4ucGF0dGVybikge1xuICAgICAgICAgICAgICAgIGlmIChrZXlzKVxuICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgICAgIGlmIChwcmVmaXggfHwgc3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbi5tb2RpZmllciA9PT0gXCIrXCIgfHwgdG9rZW4ubW9kaWZpZXIgPT09IFwiKlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbW9kID0gdG9rZW4ubW9kaWZpZXIgPT09IFwiKlwiID8gXCI/XCIgOiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUgKz0gXCIoPzpcIiArIHByZWZpeCArIFwiKCg/OlwiICsgdG9rZW4ucGF0dGVybiArIFwiKSg/OlwiICsgc3VmZml4ICsgcHJlZml4ICsgXCIoPzpcIiArIHRva2VuLnBhdHRlcm4gKyBcIikpKilcIiArIHN1ZmZpeCArIFwiKVwiICsgbW9kO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUgKz0gXCIoPzpcIiArIHByZWZpeCArIFwiKFwiICsgdG9rZW4ucGF0dGVybiArIFwiKVwiICsgc3VmZml4ICsgXCIpXCIgKyB0b2tlbi5tb2RpZmllcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUgKz0gXCIoXCIgKyB0b2tlbi5wYXR0ZXJuICsgXCIpXCIgKyB0b2tlbi5tb2RpZmllcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByb3V0ZSArPSBcIig/OlwiICsgcHJlZml4ICsgc3VmZml4ICsgXCIpXCIgKyB0b2tlbi5tb2RpZmllcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5kKSB7XG4gICAgICAgIGlmICghc3RyaWN0KVxuICAgICAgICAgICAgcm91dGUgKz0gZGVsaW1pdGVyICsgXCI/XCI7XG4gICAgICAgIHJvdXRlICs9ICFvcHRpb25zLmVuZHNXaXRoID8gXCIkXCIgOiBcIig/PVwiICsgZW5kc1dpdGggKyBcIilcIjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHZhciBlbmRUb2tlbiA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIHZhciBpc0VuZERlbGltaXRlZCA9IHR5cGVvZiBlbmRUb2tlbiA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBkZWxpbWl0ZXIuaW5kZXhPZihlbmRUb2tlbltlbmRUb2tlbi5sZW5ndGggLSAxXSkgPiAtMVxuICAgICAgICAgICAgOiAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgICAgICBlbmRUb2tlbiA9PT0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIXN0cmljdCkge1xuICAgICAgICAgICAgcm91dGUgKz0gXCIoPzpcIiArIGRlbGltaXRlciArIFwiKD89XCIgKyBlbmRzV2l0aCArIFwiKSk/XCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0VuZERlbGltaXRlZCkge1xuICAgICAgICAgICAgcm91dGUgKz0gXCIoPz1cIiArIGRlbGltaXRlciArIFwifFwiICsgZW5kc1dpdGggKyBcIilcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChyb3V0ZSwgZmxhZ3Mob3B0aW9ucykpO1xufVxuZXhwb3J0cy50b2tlbnNUb1JlZ2V4cCA9IHRva2Vuc1RvUmVnZXhwO1xuLyoqXG4gKiBOb3JtYWxpemUgdGhlIGdpdmVuIHBhdGggc3RyaW5nLCByZXR1cm5pbmcgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKlxuICogQW4gZW1wdHkgYXJyYXkgY2FuIGJlIHBhc3NlZCBpbiBmb3IgdGhlIGtleXMsIHdoaWNoIHdpbGwgaG9sZCB0aGVcbiAqIHBsYWNlaG9sZGVyIGtleSBkZXNjcmlwdGlvbnMuIEZvciBleGFtcGxlLCB1c2luZyBgL3VzZXIvOmlkYCwgYGtleXNgIHdpbGxcbiAqIGNvbnRhaW4gYFt7IG5hbWU6ICdpZCcsIGRlbGltaXRlcjogJy8nLCBvcHRpb25hbDogZmFsc2UsIHJlcGVhdDogZmFsc2UgfV1gLlxuICovXG5mdW5jdGlvbiBwYXRoVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucykge1xuICAgIGlmIChwYXRoIGluc3RhbmNlb2YgUmVnRXhwKVxuICAgICAgICByZXR1cm4gcmVnZXhwVG9SZWdleHAocGF0aCwga2V5cyk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGF0aCkpXG4gICAgICAgIHJldHVybiBhcnJheVRvUmVnZXhwKHBhdGgsIGtleXMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBzdHJpbmdUb1JlZ2V4cChwYXRoLCBrZXlzLCBvcHRpb25zKTtcbn1cbmV4cG9ydHMucGF0aFRvUmVnZXhwID0gcGF0aFRvUmVnZXhwO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibGV4ZXIiLCJzdHIiLCJ0b2tlbnMiLCJpIiwibGVuZ3RoIiwiY2hhciIsInB1c2giLCJ0eXBlIiwiaW5kZXgiLCJuYW1lIiwiaiIsImNvZGUiLCJjaGFyQ29kZUF0IiwiVHlwZUVycm9yIiwiY291bnQiLCJwYXR0ZXJuIiwicGFyc2UiLCJvcHRpb25zIiwiX2EiLCJwcmVmaXhlcyIsImRlZmF1bHRQYXR0ZXJuIiwiZXNjYXBlU3RyaW5nIiwiZGVsaW1pdGVyIiwicmVzdWx0Iiwia2V5IiwicGF0aCIsInRyeUNvbnN1bWUiLCJtdXN0Q29uc3VtZSIsInVuZGVmaW5lZCIsIm5leHRUeXBlIiwiY29uc3VtZVRleHQiLCJwcmVmaXgiLCJpbmRleE9mIiwic3VmZml4IiwibW9kaWZpZXIiLCJvcGVuIiwibmFtZV8xIiwicGF0dGVybl8xIiwiY29tcGlsZSIsInRva2Vuc1RvRnVuY3Rpb24iLCJyZUZsYWdzIiwiZmxhZ3MiLCJlbmNvZGUiLCJ4IiwiX2IiLCJ2YWxpZGF0ZSIsIm1hdGNoZXMiLCJtYXAiLCJ0b2tlbiIsIlJlZ0V4cCIsImRhdGEiLCJvcHRpb25hbCIsInJlcGVhdCIsIkFycmF5IiwiaXNBcnJheSIsInNlZ21lbnQiLCJ0ZXN0IiwiU3RyaW5nIiwidHlwZU9mTWVzc2FnZSIsIm1hdGNoIiwia2V5cyIsInJlIiwicGF0aFRvUmVnZXhwIiwicmVnZXhwVG9GdW5jdGlvbiIsImRlY29kZSIsInBhdGhuYW1lIiwibSIsImV4ZWMiLCJwYXJhbXMiLCJjcmVhdGUiLCJfbG9vcF8xIiwic3BsaXQiLCJyZXBsYWNlIiwic2Vuc2l0aXZlIiwicmVnZXhwVG9SZWdleHAiLCJncm91cHMiLCJzb3VyY2UiLCJhcnJheVRvUmVnZXhwIiwicGF0aHMiLCJwYXJ0cyIsImpvaW4iLCJzdHJpbmdUb1JlZ2V4cCIsInRva2Vuc1RvUmVnZXhwIiwic3RyaWN0Iiwic3RhcnQiLCJfYyIsImVuZCIsIl9kIiwiZW5kc1dpdGgiLCJyb3V0ZSIsIl9pIiwidG9rZW5zXzEiLCJtb2QiLCJlbmRUb2tlbiIsImlzRW5kRGVsaW1pdGVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/path-to-regexp/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/querystring-es3/index.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/querystring-es3/index.js ***!
- \**********************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(function() {\n \"use strict\";\n var e = {\n 815: function(e) {\n function hasOwnProperty(e, r) {\n return Object.prototype.hasOwnProperty.call(e, r);\n }\n e.exports = function(e, n, t, o) {\n n = n || \"&\";\n t = t || \"=\";\n var a = {};\n if (typeof e !== \"string\" || e.length === 0) {\n return a;\n }\n var i = /\\+/g;\n e = e.split(n);\n var u = 1e3;\n if (o && typeof o.maxKeys === \"number\") {\n u = o.maxKeys;\n }\n var c = e.length;\n if (u > 0 && c > u) {\n c = u;\n }\n for(var p = 0; p < c; ++p){\n var f = e[p].replace(i, \"%20\"), s = f.indexOf(t), _, l, y, d;\n if (s >= 0) {\n _ = f.substr(0, s);\n l = f.substr(s + 1);\n } else {\n _ = f;\n l = \"\";\n }\n y = decodeURIComponent(_);\n d = decodeURIComponent(l);\n if (!hasOwnProperty(a, y)) {\n a[y] = d;\n } else if (r(a[y])) {\n a[y].push(d);\n } else {\n a[y] = [\n a[y],\n d\n ];\n }\n }\n return a;\n };\n var r = Array.isArray || function(e) {\n return Object.prototype.toString.call(e) === \"[object Array]\";\n };\n },\n 577: function(e) {\n var stringifyPrimitive = function(e) {\n switch(typeof e){\n case \"string\":\n return e;\n case \"boolean\":\n return e ? \"true\" : \"false\";\n case \"number\":\n return isFinite(e) ? e : \"\";\n default:\n return \"\";\n }\n };\n e.exports = function(e, t, o, a) {\n t = t || \"&\";\n o = o || \"=\";\n if (e === null) {\n e = undefined;\n }\n if (typeof e === \"object\") {\n return map(n(e), function(n) {\n var a = encodeURIComponent(stringifyPrimitive(n)) + o;\n if (r(e[n])) {\n return map(e[n], function(e) {\n return a + encodeURIComponent(stringifyPrimitive(e));\n }).join(t);\n } else {\n return a + encodeURIComponent(stringifyPrimitive(e[n]));\n }\n }).join(t);\n }\n if (!a) return \"\";\n return encodeURIComponent(stringifyPrimitive(a)) + o + encodeURIComponent(stringifyPrimitive(e));\n };\n var r = Array.isArray || function(e) {\n return Object.prototype.toString.call(e) === \"[object Array]\";\n };\n function map(e, r) {\n if (e.map) return e.map(r);\n var n = [];\n for(var t = 0; t < e.length; t++){\n n.push(r(e[t], t));\n }\n return n;\n }\n var n = Object.keys || function(e) {\n var r = [];\n for(var n in e){\n if (Object.prototype.hasOwnProperty.call(e, n)) r.push(n);\n }\n return r;\n };\n }\n };\n var r = {};\n function __nccwpck_require__(n) {\n var t = r[n];\n if (t !== undefined) {\n return t.exports;\n }\n var o = r[n] = {\n exports: {}\n };\n var a = true;\n try {\n e[n](o, o.exports, __nccwpck_require__);\n a = false;\n } finally{\n if (a) delete r[n];\n }\n return o.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var n = {};\n !function() {\n var e = n;\n e.decode = e.parse = __nccwpck_require__(815);\n e.encode = e.stringify = __nccwpck_require__(577);\n }();\n module.exports = n;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9xdWVyeXN0cmluZy1lczMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFXO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUksU0FBU0EsQ0FBQztZQUFFLFNBQVNDLGVBQWVELENBQUMsRUFBQ0UsQ0FBQztnQkFBRSxPQUFPQyxPQUFPQyxTQUFTLENBQUNILGNBQWMsQ0FBQ0ksSUFBSSxDQUFDTCxHQUFFRTtZQUFFO1lBQUNGLEVBQUVNLE9BQU8sR0FBQyxTQUFTTixDQUFDLEVBQUNPLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDO2dCQUFFRixJQUFFQSxLQUFHO2dCQUFJQyxJQUFFQSxLQUFHO2dCQUFJLElBQUlFLElBQUUsQ0FBQztnQkFBRSxJQUFHLE9BQU9WLE1BQUksWUFBVUEsRUFBRVcsTUFBTSxLQUFHLEdBQUU7b0JBQUMsT0FBT0Q7Z0JBQUM7Z0JBQUMsSUFBSUUsSUFBRTtnQkFBTVosSUFBRUEsRUFBRWEsS0FBSyxDQUFDTjtnQkFBRyxJQUFJTyxJQUFFO2dCQUFJLElBQUdMLEtBQUcsT0FBT0EsRUFBRU0sT0FBTyxLQUFHLFVBQVM7b0JBQUNELElBQUVMLEVBQUVNLE9BQU87Z0JBQUE7Z0JBQUMsSUFBSUMsSUFBRWhCLEVBQUVXLE1BQU07Z0JBQUMsSUFBR0csSUFBRSxLQUFHRSxJQUFFRixHQUFFO29CQUFDRSxJQUFFRjtnQkFBQztnQkFBQyxJQUFJLElBQUlHLElBQUUsR0FBRUEsSUFBRUQsR0FBRSxFQUFFQyxFQUFFO29CQUFDLElBQUlDLElBQUVsQixDQUFDLENBQUNpQixFQUFFLENBQUNFLE9BQU8sQ0FBQ1AsR0FBRSxRQUFPUSxJQUFFRixFQUFFRyxPQUFPLENBQUNiLElBQUdjLEdBQUVDLEdBQUVDLEdBQUVDO29CQUFFLElBQUdMLEtBQUcsR0FBRTt3QkFBQ0UsSUFBRUosRUFBRVEsTUFBTSxDQUFDLEdBQUVOO3dCQUFHRyxJQUFFTCxFQUFFUSxNQUFN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QUFDLE9BQU9MO1lBQUM7UUFBQztJQUFDO0lBQUUsSUFBSUEsSUFBRSxDQUFDO0lBQUUsU0FBU3FDLG9CQUFvQmhDLENBQUM7UUFBRSxJQUFJQyxJQUFFTixDQUFDLENBQUNLLEVBQUU7UUFBQyxJQUFHQyxNQUFJMEIsV0FBVTtZQUFDLE9BQU8xQixFQUFFRixPQUFPO1FBQUE7UUFBQyxJQUFJRyxJQUFFUCxDQUFDLENBQUNLLEVBQUUsR0FBQztZQUFDRCxTQUFRLENBQUM7UUFBQztRQUFFLElBQUlJLElBQUU7UUFBSyxJQUFHO1lBQUNWLENBQUMsQ0FBQ08sRUFBRSxDQUFDRSxHQUFFQSxFQUFFSCxPQUFPLEVBQUNpQztZQUFxQjdCLElBQUU7UUFBSyxTQUFRO1lBQUMsSUFBR0EsR0FBRSxPQUFPUixDQUFDLENBQUNLLEVBQUU7UUFBQTtRQUFDLE9BQU9FLEVBQUVILE9BQU87SUFBQTtJQUFDLElBQUcsT0FBT2lDLHdCQUFzQixhQUFZQSxvQkFBb0JDLEVBQUUsR0FBQ0MsU0FBU0EsR0FBQztJQUFJLElBQUlsQyxJQUFFLENBQUM7SUFBRSxDQUFDO1FBQVcsSUFBSVAsSUFBRU87UUFBRVAsRUFBRTBDLE1BQU0sR0FBQzFDLEVBQUUyQyxLQUFLLEdBQUNKLG9CQUFvQjtRQUFLdkMsRUFBRTRDLE1BQU0sR0FBQzVDLEVBQUU2QyxTQUFTLEdBQUNOLG9CQUFvQjtJQUFJO0lBQUlPLE9BQU94QyxPQUFPLEdBQUNDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcXVlcnlzdHJpbmctZXMzL2luZGV4LmpzP2U1MjIiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezgxNTpmdW5jdGlvbihlKXtmdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShlLHIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSxuLHQsbyl7bj1ufHxcIiZcIjt0PXR8fFwiPVwiO3ZhciBhPXt9O2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcInx8ZS5sZW5ndGg9PT0wKXtyZXR1cm4gYX12YXIgaT0vXFwrL2c7ZT1lLnNwbGl0KG4pO3ZhciB1PTFlMztpZihvJiZ0eXBlb2Ygby5tYXhLZXlzPT09XCJudW1iZXJcIil7dT1vLm1heEtleXN9dmFyIGM9ZS5sZW5ndGg7aWYodT4wJiZjPnUpe2M9dX1mb3IodmFyIHA9MDtwPGM7KytwKXt2YXIgZj1lW3BdLnJlcGxhY2UoaSxcIiUyMFwiKSxzPWYuaW5kZXhPZih0KSxfLGwseSxkO2lmKHM+PTApe189Zi5zdWJzdHIoMCxzKTtsPWYuc3Vic3RyKHMrMSl9ZWxzZXtfPWY7bD1cIlwifXk9ZGVjb2RlVVJJQ29tcG9uZW50KF8pO2Q9ZGVjb2RlVVJJQ29tcG9uZW50KGwpO2lmKCFoYXNPd25Qcm9wZXJ0eShhLHkpKXthW3ldPWR9ZWxzZSBpZihyKGFbeV0pKXthW3ldLnB1c2goZCl9ZWxzZXthW3ldPVthW3ldLGRdfX1yZXR1cm4gYX07dmFyIHI9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKT09PVwiW29iamVjdCBBcnJheV1cIn19LDU3NzpmdW5jdGlvbihlKXt2YXIgc3RyaW5naWZ5UHJpbWl0aXZlPWZ1bmN0aW9uKGUpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIGU7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBlP1widHJ1ZVwiOlwiZmFsc2VcIjtjYXNlXCJudW1iZXJcIjpyZXR1cm4gaXNGaW5pdGUoZSk/ZTpcIlwiO2RlZmF1bHQ6cmV0dXJuXCJcIn19O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbyxhKXt0PXR8fFwiJlwiO289b3x8XCI9XCI7aWYoZT09PW51bGwpe2U9dW5kZWZpbmVkfWlmKHR5cGVvZiBlPT09XCJvYmplY3RcIil7cmV0dXJuIG1hcChuKGUpLChmdW5jdGlvbihuKXt2YXIgYT1lbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKG4pKStvO2lmKHIoZVtuXSkpe3JldHVybiBtYXAoZVtuXSwoZnVuY3Rpb24oZSl7cmV0dXJuIGErZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShlKSl9KSkuam9pbih0KX1lbHNle3JldHVybiBhK2VuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUoZVtuXSkpfX0pKS5qb2luKHQpfWlmKCFhKXJldHVyblwiXCI7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUoYSkpK28rZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShlKSl9O3ZhciByPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT1cIltvYmplY3QgQXJyYXldXCJ9O2Z1bmN0aW9uIG1hcChlLHIpe2lmKGUubWFwKXJldHVybiBlLm1hcChyKTt2YXIgbj1bXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7bi5wdXNoKHIoZVt0XSx0KSl9cmV0dXJuIG59dmFyIG49T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGUpe3ZhciByPVtdO2Zvcih2YXIgbiBpbiBlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSlyLnB1c2gobil9cmV0dXJuIHJ9fX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhuKXt2YXIgdD1yW25dO2lmKHQhPT11bmRlZmluZWQpe3JldHVybiB0LmV4cG9ydHN9dmFyIG89cltuXT17ZXhwb3J0czp7fX07dmFyIGE9dHJ1ZTt0cnl7ZVtuXShvLG8uZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTthPWZhbHNlfWZpbmFsbHl7aWYoYSlkZWxldGUgcltuXX1yZXR1cm4gby5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgbj17fTshZnVuY3Rpb24oKXt2YXIgZT1uO2UuZGVjb2RlPWUucGFyc2U9X19uY2N3cGNrX3JlcXVpcmVfXyg4MTUpO2UuZW5jb2RlPWUuc3RyaW5naWZ5PV9fbmNjd3Bja19yZXF1aXJlX18oNTc3KX0oKTttb2R1bGUuZXhwb3J0cz1ufSkoKTsiXSwibmFtZXMiOlsiZSIsImhhc093blByb3BlcnR5IiwiciIsIk9iamVjdCIsInByb3RvdHlwZSIsImNhbGwiLCJleHBvcnRzIiwibiIsInQiLCJvIiwiYSIsImxlbmd0aCIsImkiLCJzcGxpdCIsInUiLCJtYXhLZXlzIiwiYyIsInAiLCJmIiwicmVwbGFjZSIsInMiLCJpbmRleE9mIiwiXyIsImwiLCJ5IiwiZCIsInN1YnN0ciIsImRlY29kZVVSSUNvbXBvbmVudCIsInB1c2giLCJBcnJheSIsImlzQXJyYXkiLCJ0b1N0cmluZyIsInN0cmluZ2lmeVByaW1pdGl2ZSIsImlzRmluaXRlIiwidW5kZWZpbmVkIiwibWFwIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwiam9pbiIsImtleXMiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwiYWIiLCJfX2Rpcm5hbWUiLCJkZWNvZGUiLCJwYXJzZSIsImVuY29kZSIsInN0cmluZ2lmeSIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/querystring-es3/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js":
-/*!**********************************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js ***!
- \**********************************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-dom-server-rendering-stub.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(rsc)/../../node_modules/next/dist/compiled/react/index.js\");\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n var ReactVersion = \"18.3.0-canary-60a927d04-20240113\";\n var Internals = {\n usingClientEntryPoint: false,\n Events: null,\n Dispatcher: {\n current: null\n }\n };\n function getCrossOriginString(input) {\n if (typeof input === \"string\") {\n return input === \"use-credentials\" ? input : \"\";\n }\n return undefined;\n }\n function getCrossOriginStringAs(as, input) {\n if (as === \"font\") {\n return \"\";\n }\n if (typeof input === \"string\") {\n return input === \"use-credentials\" ? input : \"\";\n }\n return undefined;\n }\n var Dispatcher = Internals.Dispatcher;\n function prefetchDNS(href) {\n {\n if (typeof href !== \"string\" || !href) {\n error(\"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\", getValueDescriptorExpectingObjectForWarning(href));\n } else if (arguments.length > 1) {\n var options = arguments[1];\n if (typeof options === \"object\" && options.hasOwnProperty(\"crossOrigin\")) {\n error(\"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\", getValueDescriptorExpectingEnumForWarning(options));\n } else {\n error(\"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\", getValueDescriptorExpectingEnumForWarning(options));\n }\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\") {\n dispatcher.prefetchDNS(href);\n } // We don't error because preconnect needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preconnect(href, options) {\n {\n if (typeof href !== \"string\" || !href) {\n error(\"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\", getValueDescriptorExpectingObjectForWarning(href));\n } else if (options != null && typeof options !== \"object\") {\n error(\"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\", getValueDescriptorExpectingEnumForWarning(options));\n } else if (options != null && typeof options.crossOrigin !== \"string\") {\n error(\"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\", getValueDescriptorExpectingObjectForWarning(options.crossOrigin));\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\") {\n var crossOrigin = options ? getCrossOriginString(options.crossOrigin) : null;\n dispatcher.preconnect(href, crossOrigin);\n } // We don't error because preconnect needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preload(href, options) {\n {\n var encountered = \"\";\n if (typeof href !== \"string\" || !href) {\n encountered += \" The `href` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(href) + \".\";\n }\n if (options == null || typeof options !== \"object\") {\n encountered += \" The `options` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(options) + \".\";\n } else if (typeof options.as !== \"string\" || !options.as) {\n encountered += \" The `as` option encountered was \" + getValueDescriptorExpectingObjectForWarning(options.as) + \".\";\n }\n if (encountered) {\n error('ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s', encountered);\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\" && // We check existence because we cannot enforce this function is actually called with the stated type\n typeof options === \"object\" && options !== null && typeof options.as === \"string\") {\n var as = options.as;\n var crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n dispatcher.preload(href, as, {\n crossOrigin: crossOrigin,\n integrity: typeof options.integrity === \"string\" ? options.integrity : undefined,\n nonce: typeof options.nonce === \"string\" ? options.nonce : undefined,\n type: typeof options.type === \"string\" ? options.type : undefined,\n fetchPriority: typeof options.fetchPriority === \"string\" ? options.fetchPriority : undefined,\n referrerPolicy: typeof options.referrerPolicy === \"string\" ? options.referrerPolicy : undefined,\n imageSrcSet: typeof options.imageSrcSet === \"string\" ? options.imageSrcSet : undefined,\n imageSizes: typeof options.imageSizes === \"string\" ? options.imageSizes : undefined\n });\n } // We don't error because preload needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preloadModule(href, options) {\n {\n var encountered = \"\";\n if (typeof href !== \"string\" || !href) {\n encountered += \" The `href` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(href) + \".\";\n }\n if (options !== undefined && typeof options !== \"object\") {\n encountered += \" The `options` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(options) + \".\";\n } else if (options && \"as\" in options && typeof options.as !== \"string\") {\n encountered += \" The `as` option encountered was \" + getValueDescriptorExpectingObjectForWarning(options.as) + \".\";\n }\n if (encountered) {\n error('ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s', encountered);\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\") {\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n dispatcher.preloadModule(href, {\n as: typeof options.as === \"string\" && options.as !== \"script\" ? options.as : undefined,\n crossOrigin: crossOrigin,\n integrity: typeof options.integrity === \"string\" ? options.integrity : undefined\n });\n } else {\n dispatcher.preloadModule(href);\n }\n } // We don't error because preload needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preinit(href, options) {\n {\n if (typeof href !== \"string\" || !href) {\n error(\"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\", getValueDescriptorExpectingObjectForWarning(href));\n } else if (options == null || typeof options !== \"object\") {\n error(\"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\", getValueDescriptorExpectingEnumForWarning(options));\n } else if (options.as !== \"style\" && options.as !== \"script\") {\n error('ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".', getValueDescriptorExpectingEnumForWarning(options.as));\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\" && options && typeof options.as === \"string\") {\n var as = options.as;\n var crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n var integrity = typeof options.integrity === \"string\" ? options.integrity : undefined;\n var fetchPriority = typeof options.fetchPriority === \"string\" ? options.fetchPriority : undefined;\n if (as === \"style\") {\n dispatcher.preinitStyle(href, typeof options.precedence === \"string\" ? options.precedence : undefined, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n });\n } else if (as === \"script\") {\n dispatcher.preinitScript(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: typeof options.nonce === \"string\" ? options.nonce : undefined\n });\n }\n } // We don't error because preinit needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function preinitModule(href, options) {\n {\n var encountered = \"\";\n if (typeof href !== \"string\" || !href) {\n encountered += \" The `href` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(href) + \".\";\n }\n if (options !== undefined && typeof options !== \"object\") {\n encountered += \" The `options` argument encountered was \" + getValueDescriptorExpectingObjectForWarning(options) + \".\";\n } else if (options && \"as\" in options && options.as !== \"script\") {\n encountered += \" The `as` option encountered was \" + getValueDescriptorExpectingEnumForWarning(options.as) + \".\";\n }\n if (encountered) {\n error(\"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\", encountered);\n } else {\n var as = options && typeof options.as === \"string\" ? options.as : \"script\";\n switch(as){\n case \"script\":\n {\n break;\n }\n // We have an invalid as type and need to warn\n default:\n {\n var typeOfAs = getValueDescriptorExpectingEnumForWarning(as);\n error('ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\"' + ' but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other' + \" module types will be supported, aligning with the import-attributes proposal. Learn more here:\" + \" (https://github.com/tc39/proposal-import-attributes)\", typeOfAs, href);\n }\n }\n }\n }\n var dispatcher = Dispatcher.current;\n if (dispatcher && typeof href === \"string\") {\n if (typeof options === \"object\" && options !== null) {\n if (options.as == null || options.as === \"script\") {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n dispatcher.preinitModuleScript(href, {\n crossOrigin: crossOrigin,\n integrity: typeof options.integrity === \"string\" ? options.integrity : undefined,\n nonce: typeof options.nonce === \"string\" ? options.nonce : undefined\n });\n }\n } else if (options == null) {\n dispatcher.preinitModuleScript(href);\n }\n } // We don't error because preinit needs to be resilient to being called in a variety of scopes\n // and the runtime may not be capable of responding. The function is optimistic and not critical\n // so we favor silent bailout over warning or erroring.\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return thing === null ? \"`null`\" : thing === undefined ? \"`undefined`\" : thing === \"\" ? \"an empty string\" : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return thing === null ? \"`null`\" : thing === undefined ? \"`undefined`\" : thing === \"\" ? \"an empty string\" : typeof thing === \"string\" ? JSON.stringify(thing) : typeof thing === \"number\" ? \"`\" + thing + \"`\" : 'something with type \"' + typeof thing + '\"';\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; // Since the \"not pending\" value is always the same, we can reuse the\n function resolveDispatcher() {\n // Copied from react/src/ReactHooks.js. It's the same thing but in a\n // different package.\n var dispatcher = ReactCurrentDispatcher.current;\n {\n if (dispatcher === null) {\n error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for\" + \" one of the following reasons:\\n\" + \"1. You might have mismatching versions of React and the renderer (such as React DOM)\\n\" + \"2. You might be breaking the Rules of Hooks\\n\" + \"3. You might have more than one copy of React in the same app\\n\" + \"See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\");\n }\n }\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n return dispatcher;\n }\n function useFormStatus() {\n {\n var dispatcher = resolveDispatcher(); // $FlowFixMe[not-a-function] We know this exists because of the feature check above.\n return dispatcher.useHostTransitionStatus();\n }\n }\n function useFormState(action, initialState, permalink) {\n {\n var dispatcher = resolveDispatcher(); // $FlowFixMe[not-a-function] This is unstable, thus optional\n return dispatcher.useFormState(action, initialState, permalink);\n }\n }\n function createPortal() {\n throw new Error(\"createPortal was called on the server. Portals are not currently\" + \" supported on the server. Update your program to conditionally call\" + \" createPortal on the client only.\");\n }\n function flushSync() {\n throw new Error(\"flushSync was called on the server. This is likely caused by a\" + \" function being called during render or in module scope that was\" + \" intended to be called from an effect or event handler. Update your\" + \" to not call flushSync no the server.\");\n } // on the server we just call the callback because there is\n // not update mechanism. Really this should not be called on the\n // server but since the semantics are generally clear enough we\n // can provide this trivial implementation.\n function batchedUpdates(fn, a) {\n return fn(a);\n }\n function experimental_useFormStatus() {\n {\n error(\"useFormStatus is now in canary. Remove the experimental_ prefix. \" + \"The prefixed alias will be removed in an upcoming release.\");\n }\n return useFormStatus();\n }\n function experimental_useFormState(action, initialState, permalink) {\n {\n error(\"useFormState is now in canary. Remove the experimental_ prefix. \" + \"The prefixed alias will be removed in an upcoming release.\");\n }\n return useFormState(action, initialState, permalink);\n }\n exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;\n exports.createPortal = createPortal;\n exports.experimental_useFormState = experimental_useFormState;\n exports.experimental_useFormStatus = experimental_useFormStatus;\n exports.flushSync = flushSync;\n exports.preconnect = preconnect;\n exports.prefetchDNS = prefetchDNS;\n exports.preinit = preinit;\n exports.preinitModule = preinitModule;\n exports.preload = preload;\n exports.preloadModule = preloadModule;\n exports.unstable_batchedUpdates = batchedUpdates;\n exports.useFormState = useFormState;\n exports.useFormStatus = useFormStatus;\n exports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS1zZXJ2ZXItcmVuZGVyaW5nLXN0dWIuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0NBUUMsR0FFRDtBQUVBLElBQUlBLElBQXFDLEVBQUU7SUFDeEM7UUFDSDtRQUVBLElBQUlDLFFBQVFDLG1CQUFPQSxDQUFDLDRGQUEwQjtRQUU5QyxJQUFJQyx1QkFBdUJGLE1BQU1HLGtEQUFrRDtRQUVuRixTQUFTQyxNQUFNQyxNQUFNO1lBQ25CO2dCQUNFO29CQUNFLElBQUssSUFBSUMsUUFBUUMsVUFBVUMsTUFBTSxFQUFFQyxPQUFPLElBQUlDLE1BQU1KLFFBQVEsSUFBSUEsUUFBUSxJQUFJLElBQUlLLFFBQVEsR0FBR0EsUUFBUUwsT0FBT0ssUUFBUzt3QkFDakhGLElBQUksQ0FBQ0UsUUFBUSxFQUFFLEdBQUdKLFNBQVMsQ0FBQ0ksTUFBTTtvQkFDcEM7b0JBRUFDLGFBQWEsU0FBU1AsUUFBUUk7Z0JBQ2hDO1lBQ0Y7UUFDRjtRQUVBLFNBQVNHLGFBQWFDLEtBQUssRUFBRVIsTUFBTSxFQUFFSSxJQUFJO1lBQ3ZDLG1EQUFtRDtZQUNuRCw2Q0FBNkM7WUFDN0M7Z0JBQ0UsSUFBSUsseUJBQXlCWixxQkFBcUJZLHNCQUFzQjtnQkFDeEUsSUFBSUMsUUFBUUQsdUJBQXVCRSxnQkFBZ0I7Z0JBRW5ELElBQUlELFVBQVUsSUFBSTtvQkFDaEJWLFVBQVU7b0JBQ1ZJLE9BQU9BLEtBQUtRLE1BQU0sQ0FBQzt3QkFBQ0Y7cUJBQU07Z0JBQzVCLEVBQUUsK0RBQStEO2dCQUdqRSxJQUFJRyxpQkFBaUJULEtBQUtVLEdBQUcsQ0FBQyxTQUFVQyxJQUFJO29CQUMxQyxPQUFPQyxPQUFPRDtnQkFDaEIsSUFBSSwrQ0FBK0M7Z0JBRW5ERixlQUFlSSxPQUFPLENBQUMsY0FBY2pCLFNBQVMsb0VBQW9FO2dCQUNsSCw2REFBNkQ7Z0JBQzdE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RSwrREFBK0Q7UUFDL0QsMkNBQTJDO1FBRTNDLFNBQVNFLGVBQWVDLEVBQUUsRUFBRUMsQ0FBQztZQUMzQixPQUFPRCxHQUFHQztRQUNaO1FBRUEsU0FBU0M7WUFDUDtnQkFDRTlFLE1BQU0sc0VBQXNFO1lBQzlFO1lBRUEsT0FBT2tFO1FBQ1Q7UUFDQSxTQUFTYSwwQkFBMEJWLE1BQU0sRUFBRUMsWUFBWSxFQUFFQyxTQUFTO1lBQ2hFO2dCQUNFdkUsTUFBTSxxRUFBcUU7WUFDN0U7WUFFQSxPQUFPb0UsYUFBYUMsUUFBUUMsY0FBY0M7UUFDNUM7UUFFQVMsMERBQTBELEdBQUd2RDtRQUM3RHVELG9CQUFvQixHQUFHUjtRQUN2QlEsaUNBQWlDLEdBQUdEO1FBQ3BDQyxrQ0FBa0MsR0FBR0Y7UUFDckNFLGlCQUFpQixHQUFHTjtRQUNwQk0sa0JBQWtCLEdBQUd0QztRQUNyQnNDLG1CQUFtQixHQUFHN0M7UUFDdEI2QyxlQUFlLEdBQUcxQjtRQUNsQjBCLHFCQUFxQixHQUFHdEI7UUFDeEJzQixlQUFlLEdBQUdwQztRQUNsQm9DLHFCQUFxQixHQUFHM0I7UUFDeEIyQiwrQkFBK0IsR0FBR0w7UUFDbENLLG9CQUFvQixHQUFHWjtRQUN2QlkscUJBQXFCLEdBQUdkO1FBQ3hCYyxlQUFlLEdBQUd4RDtJQUNoQjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLXNlcnZlci1yZW5kZXJpbmctc3R1Yi5kZXZlbG9wbWVudC5qcz9lZWQ2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWRvbS1zZXJ2ZXItcmVuZGVyaW5nLXN0dWIuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3RcIik7XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmcobGV2ZWwsIGZvcm1hdCwgYXJncykge1xuICAvLyBXaGVuIGNoYW5naW5nIHRoaXMgbG9naWMsIHlvdSBtaWdodCB3YW50IHRvIGFsc29cbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXG4gIHtcbiAgICB2YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICBpZiAoc3RhY2sgIT09ICcnKSB7XG4gICAgICBmb3JtYXQgKz0gJyVzJztcbiAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdChbc3RhY2tdKTtcbiAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgICB2YXIgYXJnc1dpdGhGb3JtYXQgPSBhcmdzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcblxuICAgIGFyZ3NXaXRoRm9ybWF0LnVuc2hpZnQoJ1dhcm5pbmc6ICcgKyBmb3JtYXQpOyAvLyBXZSBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBzcHJlYWQgKG9yIC5hcHBseSkgZGlyZWN0bHkgYmVjYXVzZSBpdFxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG5cbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xuICB9XG59XG5cbnZhciBSZWFjdFZlcnNpb24gPSAnMTguMy4wLWNhbmFyeS02MGE5MjdkMDQtMjAyNDAxMTMnO1xuXG52YXIgSW50ZXJuYWxzID0ge1xuICB1c2luZ0NsaWVudEVudHJ5UG9pbnQ6IGZhbHNlLFxuICBFdmVudHM6IG51bGwsXG4gIERpc3BhdGNoZXI6IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdldENyb3NzT3JpZ2luU3RyaW5nKGlucHV0KSB7XG4gIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGlucHV0ID09PSAndXNlLWNyZWRlbnRpYWxzJyA/IGlucHV0IDogJyc7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyhhcywgaW5wdXQpIHtcbiAgaWYgKGFzID09PSAnZm9udCcpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBpbnB1dCA9PT0gJ3VzZS1jcmVkZW50aWFscycgPyBpbnB1dCA6ICcnO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxudmFyIERpc3BhdGNoZXIgPSBJbnRlcm5hbHMuRGlzcGF0Y2hlcjtcbmZ1bmN0aW9uIHByZWZldGNoRE5TKGhyZWYpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycgfHwgIWhyZWYpIHtcbiAgICAgIGVycm9yKCdSZWFjdERPTS5wcmVmZXRjaEROUygpOiBFeHBlY3RlZCB0aGUgYGhyZWZgIGFyZ3VtZW50IChmaXJzdCkgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLicsIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikpO1xuICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzWzFdO1xuXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2Nyb3NzT3JpZ2luJykpIHtcbiAgICAgICAgZXJyb3IoJ1JlYWN0RE9NLnByZWZldGNoRE5TKCk6IEV4cGVjdGVkIG9ubHkgb25lIGFyZ3VtZW50LCBgaHJlZmAsIGJ1dCBlbmNvdW50ZXJlZCAlcyBhcyBhIHNlY29uZCBhcmd1bWVudCBpbnN0ZWFkLiBUaGlzIGFyZ3VtZW50IGlzIHJlc2VydmVkIGZvciBmdXR1cmUgb3B0aW9ucyBhbmQgaXMgY3VycmVudGx5IGRpc2FsbG93ZWQuIEl0IGxvb2tzIGxpa2UgdGhlIHlvdSBhcmUgYXR0ZW1wdGluZyB0byBzZXQgYSBjcm9zc09yaWdpbiBwcm9wZXJ0eSBmb3IgdGhpcyBETlMgbG9va3VwIGhpbnQuIEJyb3dzZXJzIGRvIG5vdCBwZXJmb3JtIEROUyBxdWVyaWVzIHVzaW5nIENPUlMgYW5kIHNldHRpbmcgdGhpcyBhdHRyaWJ1dGUgb24gdGhlIHJlc291cmNlIGhpbnQgaGFzIG5vIGVmZmVjdC4gVHJ5IGNhbGxpbmcgUmVhY3RET00ucHJlZmV0Y2hETlMoKSB3aXRoIGp1c3QgYSBzaW5nbGUgc3RyaW5nIGFyZ3VtZW50LCBgaHJlZmAuJywgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nRW51bUZvcldhcm5pbmcob3B0aW9ucykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IoJ1JlYWN0RE9NLnByZWZldGNoRE5TKCk6IEV4cGVjdGVkIG9ubHkgb25lIGFyZ3VtZW50LCBgaHJlZmAsIGJ1dCBlbmNvdW50ZXJlZCAlcyBhcyBhIHNlY29uZCBhcmd1bWVudCBpbnN0ZWFkLiBUaGlzIGFyZ3VtZW50IGlzIHJlc2VydmVkIGZvciBmdXR1cmUgb3B0aW9ucyBhbmQgaXMgY3VycmVudGx5IGRpc2FsbG93ZWQuIFRyeSBjYWxsaW5nIFJlYWN0RE9NLnByZWZldGNoRE5TKCkgd2l0aCBqdXN0IGEgc2luZ2xlIHN0cmluZyBhcmd1bWVudCwgYGhyZWZgLicsIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKG9wdGlvbnMpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZGlzcGF0Y2hlciA9IERpc3BhdGNoZXIuY3VycmVudDtcblxuICBpZiAoZGlzcGF0Y2hlciAmJiB0eXBlb2YgaHJlZiA9PT0gJ3N0cmluZycpIHtcbiAgICBkaXNwYXRjaGVyLnByZWZldGNoRE5TKGhyZWYpO1xuICB9IC8vIFdlIGRvbid0IGVycm9yIGJlY2F1c2UgcHJlY29ubmVjdCBuZWVkcyB0byBiZSByZXNpbGllbnQgdG8gYmVpbmcgY2FsbGVkIGluIGEgdmFyaWV0eSBvZiBzY29wZXNcbiAgLy8gYW5kIHRoZSBydW50aW1lIG1heSBub3QgYmUgY2FwYWJsZSBvZiByZXNwb25kaW5nLiBUaGUgZnVuY3Rpb24gaXMgb3B0aW1pc3RpYyBhbmQgbm90IGNyaXRpY2FsXG4gIC8vIHNvIHdlIGZhdm9yIHNpbGVudCBiYWlsb3V0IG92ZXIgd2FybmluZyBvciBlcnJvcmluZy5cblxufVxuZnVuY3Rpb24gcHJlY29ubmVjdChocmVmLCBvcHRpb25zKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGhyZWYgIT09ICdzdHJpbmcnIHx8ICFocmVmKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlY29ubmVjdCgpOiBFeHBlY3RlZCB0aGUgYGhyZWZgIGFyZ3VtZW50IChmaXJzdCkgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLicsIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikpO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucyAhPSBudWxsICYmIHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgZXJyb3IoJ1JlYWN0RE9NLnByZWNvbm5lY3QoKTogRXhwZWN0ZWQgdGhlIGBvcHRpb25zYCBhcmd1bWVudCAoc2Vjb25kKSB0byBiZSBhbiBvYmplY3QgYnV0IGVuY291bnRlcmVkICVzIGluc3RlYWQuIFRoZSBvbmx5IHN1cHBvcnRlZCBvcHRpb24gYXQgdGhpcyB0aW1lIGlzIGBjcm9zc09yaWdpbmAgd2hpY2ggYWNjZXB0cyBhIHN0cmluZy4nLCBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zKSk7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zICE9IG51bGwgJiYgdHlwZW9mIG9wdGlvbnMuY3Jvc3NPcmlnaW4gIT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlY29ubmVjdCgpOiBFeHBlY3RlZCB0aGUgYGNyb3NzT3JpZ2luYCBvcHRpb24gKHNlY29uZCBhcmd1bWVudCkgdG8gYmUgYSBzdHJpbmcgYnV0IGVuY291bnRlcmVkICVzIGluc3RlYWQuIFRyeSByZW1vdmluZyB0aGlzIG9wdGlvbiBvciBwYXNzaW5nIGEgc3RyaW5nIHZhbHVlIGluc3RlYWQuJywgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhvcHRpb25zLmNyb3NzT3JpZ2luKSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGRpc3BhdGNoZXIgPSBEaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKGRpc3BhdGNoZXIgJiYgdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIGNyb3NzT3JpZ2luID0gb3B0aW9ucyA/IGdldENyb3NzT3JpZ2luU3RyaW5nKG9wdGlvbnMuY3Jvc3NPcmlnaW4pIDogbnVsbDtcbiAgICBkaXNwYXRjaGVyLnByZWNvbm5lY3QoaHJlZiwgY3Jvc3NPcmlnaW4pO1xuICB9IC8vIFdlIGRvbid0IGVycm9yIGJlY2F1c2UgcHJlY29ubmVjdCBuZWVkcyB0byBiZSByZXNpbGllbnQgdG8gYmVpbmcgY2FsbGVkIGluIGEgdmFyaWV0eSBvZiBzY29wZXNcbiAgLy8gYW5kIHRoZSBydW50aW1lIG1heSBub3QgYmUgY2FwYWJsZSBvZiByZXNwb25kaW5nLiBUaGUgZnVuY3Rpb24gaXMgb3B0aW1pc3RpYyBhbmQgbm90IGNyaXRpY2FsXG4gIC8vIHNvIHdlIGZhdm9yIHNpbGVudCBiYWlsb3V0IG92ZXIgd2FybmluZyBvciBlcnJvcmluZy5cblxufVxuZnVuY3Rpb24gcHJlbG9hZChocmVmLCBvcHRpb25zKSB7XG4gIHtcbiAgICB2YXIgZW5jb3VudGVyZWQgPSAnJztcblxuICAgIGlmICh0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycgfHwgIWhyZWYpIHtcbiAgICAgIGVuY291bnRlcmVkICs9IFwiIFRoZSBgaHJlZmAgYXJndW1lbnQgZW5jb3VudGVyZWQgd2FzIFwiICsgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKSArIFwiLlwiO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zID09IG51bGwgfHwgdHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICBlbmNvdW50ZXJlZCArPSBcIiBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IGVuY291bnRlcmVkIHdhcyBcIiArIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcob3B0aW9ucykgKyBcIi5cIjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zLmFzICE9PSAnc3RyaW5nJyB8fCAhb3B0aW9ucy5hcykge1xuICAgICAgZW5jb3VudGVyZWQgKz0gXCIgVGhlIGBhc2Agb3B0aW9uIGVuY291bnRlcmVkIHdhcyBcIiArIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcob3B0aW9ucy5hcykgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBpZiAoZW5jb3VudGVyZWQpIHtcbiAgICAgIGVycm9yKCdSZWFjdERPTS5wcmVsb2FkKCk6IEV4cGVjdGVkIHR3byBhcmd1bWVudHMsIGEgbm9uLWVtcHR5IGBocmVmYCBzdHJpbmcgYW5kIGFuIGBvcHRpb25zYCBvYmplY3Qgd2l0aCBhbiBgYXNgIHByb3BlcnR5IHZhbGlkIGZvciBhIGA8bGluayByZWw9XCJwcmVsb2FkXCIgYXM9XCIuLi5cIiAvPmAgdGFnLiVzJywgZW5jb3VudGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBkaXNwYXRjaGVyID0gRGlzcGF0Y2hlci5jdXJyZW50O1xuXG4gIGlmIChkaXNwYXRjaGVyICYmIHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyAmJiAvLyBXZSBjaGVjayBleGlzdGVuY2UgYmVjYXVzZSB3ZSBjYW5ub3QgZW5mb3JjZSB0aGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGNhbGxlZCB3aXRoIHRoZSBzdGF0ZWQgdHlwZVxuICB0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcgJiYgb3B0aW9ucyAhPT0gbnVsbCAmJiB0eXBlb2Ygb3B0aW9ucy5hcyA9PT0gJ3N0cmluZycpIHtcbiAgICB2YXIgYXMgPSBvcHRpb25zLmFzO1xuICAgIHZhciBjcm9zc09yaWdpbiA9IGdldENyb3NzT3JpZ2luU3RyaW5nQXMoYXMsIG9wdGlvbnMuY3Jvc3NPcmlnaW4pO1xuICAgIGRpc3BhdGNoZXIucHJlbG9hZChocmVmLCBhcywge1xuICAgICAgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLFxuICAgICAgaW50ZWdyaXR5OiB0eXBlb2Ygb3B0aW9ucy5pbnRlZ3JpdHkgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5pbnRlZ3JpdHkgOiB1bmRlZmluZWQsXG4gICAgICBub25jZTogdHlwZW9mIG9wdGlvbnMubm9uY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5ub25jZSA6IHVuZGVmaW5lZCxcbiAgICAgIHR5cGU6IHR5cGVvZiBvcHRpb25zLnR5cGUgPT09ICdzdHJpbmcnID8gb3B0aW9ucy50eXBlIDogdW5kZWZpbmVkLFxuICAgICAgZmV0Y2hQcmlvcml0eTogdHlwZW9mIG9wdGlvbnMuZmV0Y2hQcmlvcml0eSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmZldGNoUHJpb3JpdHkgOiB1bmRlZmluZWQsXG4gICAgICByZWZlcnJlclBvbGljeTogdHlwZW9mIG9wdGlvbnMucmVmZXJyZXJQb2xpY3kgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5yZWZlcnJlclBvbGljeSA6IHVuZGVmaW5lZCxcbiAgICAgIGltYWdlU3JjU2V0OiB0eXBlb2Ygb3B0aW9ucy5pbWFnZVNyY1NldCA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmltYWdlU3JjU2V0IDogdW5kZWZpbmVkLFxuICAgICAgaW1hZ2VTaXplczogdHlwZW9mIG9wdGlvbnMuaW1hZ2VTaXplcyA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmltYWdlU2l6ZXMgOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgfSAvLyBXZSBkb24ndCBlcnJvciBiZWNhdXNlIHByZWxvYWQgbmVlZHMgdG8gYmUgcmVzaWxpZW50IHRvIGJlaW5nIGNhbGxlZCBpbiBhIHZhcmlldHkgb2Ygc2NvcGVzXG4gIC8vIGFuZCB0aGUgcnVudGltZSBtYXkgbm90IGJlIGNhcGFibGUgb2YgcmVzcG9uZGluZy4gVGhlIGZ1bmN0aW9uIGlzIG9wdGltaXN0aWMgYW5kIG5vdCBjcml0aWNhbFxuICAvLyBzbyB3ZSBmYXZvciBzaWxlbnQgYmFpbG91dCBvdmVyIHdhcm5pbmcgb3IgZXJyb3JpbmcuXG5cbn1cbmZ1bmN0aW9uIHByZWxvYWRNb2R1bGUoaHJlZiwgb3B0aW9ucykge1xuICB7XG4gICAgdmFyIGVuY291bnRlcmVkID0gJyc7XG5cbiAgICBpZiAodHlwZW9mIGhyZWYgIT09ICdzdHJpbmcnIHx8ICFocmVmKSB7XG4gICAgICBlbmNvdW50ZXJlZCArPSBcIiBUaGUgYGhyZWZgIGFyZ3VtZW50IGVuY291bnRlcmVkIHdhcyBcIiArIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvcHRpb25zICE9PSAnb2JqZWN0Jykge1xuICAgICAgZW5jb3VudGVyZWQgKz0gXCIgVGhlIGBvcHRpb25zYCBhcmd1bWVudCBlbmNvdW50ZXJlZCB3YXMgXCIgKyBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKG9wdGlvbnMpICsgXCIuXCI7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zICYmICdhcycgaW4gb3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy5hcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGVuY291bnRlcmVkICs9IFwiIFRoZSBgYXNgIG9wdGlvbiBlbmNvdW50ZXJlZCB3YXMgXCIgKyBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKG9wdGlvbnMuYXMpICsgXCIuXCI7XG4gICAgfVxuXG4gICAgaWYgKGVuY291bnRlcmVkKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlbG9hZE1vZHVsZSgpOiBFeHBlY3RlZCB0d28gYXJndW1lbnRzLCBhIG5vbi1lbXB0eSBgaHJlZmAgc3RyaW5nIGFuZCwgb3B0aW9uYWxseSwgYW4gYG9wdGlvbnNgIG9iamVjdCB3aXRoIGFuIGBhc2AgcHJvcGVydHkgdmFsaWQgZm9yIGEgYDxsaW5rIHJlbD1cIm1vZHVsZXByZWxvYWRcIiBhcz1cIi4uLlwiIC8+YCB0YWcuJXMnLCBlbmNvdW50ZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGRpc3BhdGNoZXIgPSBEaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKGRpc3BhdGNoZXIgJiYgdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHZhciBjcm9zc09yaWdpbiA9IGdldENyb3NzT3JpZ2luU3RyaW5nQXMob3B0aW9ucy5hcywgb3B0aW9ucy5jcm9zc09yaWdpbik7XG4gICAgICBkaXNwYXRjaGVyLnByZWxvYWRNb2R1bGUoaHJlZiwge1xuICAgICAgICBhczogdHlwZW9mIG9wdGlvbnMuYXMgPT09ICdzdHJpbmcnICYmIG9wdGlvbnMuYXMgIT09ICdzY3JpcHQnID8gb3B0aW9ucy5hcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLFxuICAgICAgICBpbnRlZ3JpdHk6IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmludGVncml0eSA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoZXIucHJlbG9hZE1vZHVsZShocmVmKTtcbiAgICB9XG4gIH0gLy8gV2UgZG9uJ3QgZXJyb3IgYmVjYXVzZSBwcmVsb2FkIG5lZWRzIHRvIGJlIHJlc2lsaWVudCB0byBiZWluZyBjYWxsZWQgaW4gYSB2YXJpZXR5IG9mIHNjb3Blc1xuICAvLyBhbmQgdGhlIHJ1bnRpbWUgbWF5IG5vdCBiZSBjYXBhYmxlIG9mIHJlc3BvbmRpbmcuIFRoZSBmdW5jdGlvbiBpcyBvcHRpbWlzdGljIGFuZCBub3QgY3JpdGljYWxcbiAgLy8gc28gd2UgZmF2b3Igc2lsZW50IGJhaWxvdXQgb3ZlciB3YXJuaW5nIG9yIGVycm9yaW5nLlxuXG59XG5mdW5jdGlvbiBwcmVpbml0KGhyZWYsIG9wdGlvbnMpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycgfHwgIWhyZWYpIHtcbiAgICAgIGVycm9yKCdSZWFjdERPTS5wcmVpbml0KCk6IEV4cGVjdGVkIHRoZSBgaHJlZmAgYXJndW1lbnQgKGZpcnN0KSB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcgYnV0IGVuY291bnRlcmVkICVzIGluc3RlYWQuJywgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKSk7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zID09IG51bGwgfHwgdHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlaW5pdCgpOiBFeHBlY3RlZCB0aGUgYG9wdGlvbnNgIGFyZ3VtZW50IChzZWNvbmQpIHRvIGJlIGFuIG9iamVjdCB3aXRoIGFuIGBhc2AgcHJvcGVydHkgZGVzY3JpYmluZyB0aGUgdHlwZSBvZiByZXNvdXJjZSB0byBiZSBwcmVpbml0aWFsaXplZCBidXQgZW5jb3VudGVyZWQgJXMgaW5zdGVhZC4nLCBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zKSk7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmFzICE9PSAnc3R5bGUnICYmIG9wdGlvbnMuYXMgIT09ICdzY3JpcHQnKSB7XG4gICAgICBlcnJvcignUmVhY3RET00ucHJlaW5pdCgpOiBFeHBlY3RlZCB0aGUgYGFzYCBwcm9wZXJ0eSBpbiB0aGUgYG9wdGlvbnNgIGFyZ3VtZW50IChzZWNvbmQpIHRvIGNvbnRhaW4gYSB2YWxpZCB2YWx1ZSBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIHJlc291cmNlIHRvIGJlIHByZWluaXRpYWxpemVkIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLiBWYWxpZCB2YWx1ZXMgZm9yIGBhc2AgYXJlIFwic3R5bGVcIiBhbmQgXCJzY3JpcHRcIi4nLCBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdFbnVtRm9yV2FybmluZyhvcHRpb25zLmFzKSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGRpc3BhdGNoZXIgPSBEaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKGRpc3BhdGNoZXIgJiYgdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnICYmIG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMuYXMgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIGFzID0gb3B0aW9ucy5hcztcbiAgICB2YXIgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKGFzLCBvcHRpb25zLmNyb3NzT3JpZ2luKTtcbiAgICB2YXIgaW50ZWdyaXR5ID0gdHlwZW9mIG9wdGlvbnMuaW50ZWdyaXR5ID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuaW50ZWdyaXR5IDogdW5kZWZpbmVkO1xuICAgIHZhciBmZXRjaFByaW9yaXR5ID0gdHlwZW9mIG9wdGlvbnMuZmV0Y2hQcmlvcml0eSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmZldGNoUHJpb3JpdHkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoYXMgPT09ICdzdHlsZScpIHtcbiAgICAgIGRpc3BhdGNoZXIucHJlaW5pdFN0eWxlKGhyZWYsIHR5cGVvZiBvcHRpb25zLnByZWNlZGVuY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5wcmVjZWRlbmNlIDogdW5kZWZpbmVkLCB7XG4gICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgaW50ZWdyaXR5OiBpbnRlZ3JpdHksXG4gICAgICAgIGZldGNoUHJpb3JpdHk6IGZldGNoUHJpb3JpdHlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoYXMgPT09ICdzY3JpcHQnKSB7XG4gICAgICBkaXNwYXRjaGVyLnByZWluaXRTY3JpcHQoaHJlZiwge1xuICAgICAgICBjcm9zc09yaWdpbjogY3Jvc3NPcmlnaW4sXG4gICAgICAgIGludGVncml0eTogaW50ZWdyaXR5LFxuICAgICAgICBmZXRjaFByaW9yaXR5OiBmZXRjaFByaW9yaXR5LFxuICAgICAgICBub25jZTogdHlwZW9mIG9wdGlvbnMubm9uY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5ub25jZSA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgfVxuICB9IC8vIFdlIGRvbid0IGVycm9yIGJlY2F1c2UgcHJlaW5pdCBuZWVkcyB0byBiZSByZXNpbGllbnQgdG8gYmVpbmcgY2FsbGVkIGluIGEgdmFyaWV0eSBvZiBzY29wZXNcbiAgLy8gYW5kIHRoZSBydW50aW1lIG1heSBub3QgYmUgY2FwYWJsZSBvZiByZXNwb25kaW5nLiBUaGUgZnVuY3Rpb24gaXMgb3B0aW1pc3RpYyBhbmQgbm90IGNyaXRpY2FsXG4gIC8vIHNvIHdlIGZhdm9yIHNpbGVudCBiYWlsb3V0IG92ZXIgd2FybmluZyBvciBlcnJvcmluZy5cblxufVxuZnVuY3Rpb24gcHJlaW5pdE1vZHVsZShocmVmLCBvcHRpb25zKSB7XG4gIHtcbiAgICB2YXIgZW5jb3VudGVyZWQgPSAnJztcblxuICAgIGlmICh0eXBlb2YgaHJlZiAhPT0gJ3N0cmluZycgfHwgIWhyZWYpIHtcbiAgICAgIGVuY291bnRlcmVkICs9IFwiIFRoZSBgaHJlZmAgYXJndW1lbnQgZW5jb3VudGVyZWQgd2FzIFwiICsgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKSArIFwiLlwiO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICBlbmNvdW50ZXJlZCArPSBcIiBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IGVuY291bnRlcmVkIHdhcyBcIiArIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcob3B0aW9ucykgKyBcIi5cIjtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMgJiYgJ2FzJyBpbiBvcHRpb25zICYmIG9wdGlvbnMuYXMgIT09ICdzY3JpcHQnKSB7XG4gICAgICBlbmNvdW50ZXJlZCArPSBcIiBUaGUgYGFzYCBvcHRpb24gZW5jb3VudGVyZWQgd2FzIFwiICsgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nRW51bUZvcldhcm5pbmcob3B0aW9ucy5hcykgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBpZiAoZW5jb3VudGVyZWQpIHtcbiAgICAgIGVycm9yKCdSZWFjdERPTS5wcmVpbml0TW9kdWxlKCk6IEV4cGVjdGVkIHVwIHRvIHR3byBhcmd1bWVudHMsIGEgbm9uLWVtcHR5IGBocmVmYCBzdHJpbmcgYW5kLCBvcHRpb25hbGx5LCBhbiBgb3B0aW9uc2Agb2JqZWN0IHdpdGggYSB2YWxpZCBgYXNgIHByb3BlcnR5LiVzJywgZW5jb3VudGVyZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYXMgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmFzID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYXMgOiAnc2NyaXB0JztcblxuICAgICAgc3dpdGNoIChhcykge1xuICAgICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgLy8gV2UgaGF2ZSBhbiBpbnZhbGlkIGFzIHR5cGUgYW5kIG5lZWQgdG8gd2FyblxuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIHR5cGVPZkFzID0gZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nRW51bUZvcldhcm5pbmcoYXMpO1xuXG4gICAgICAgICAgICBlcnJvcignUmVhY3RET00ucHJlaW5pdE1vZHVsZSgpOiBDdXJyZW50bHkgdGhlIG9ubHkgc3VwcG9ydGVkIFwiYXNcIiB0eXBlIGZvciB0aGlzIGZ1bmN0aW9uIGlzIFwic2NyaXB0XCInICsgJyBidXQgcmVjZWl2ZWQgXCIlc1wiIGluc3RlYWQuIFRoaXMgd2FybmluZyB3YXMgZ2VuZXJhdGVkIGZvciBgaHJlZmAgXCIlc1wiLiBJbiB0aGUgZnV0dXJlIG90aGVyJyArICcgbW9kdWxlIHR5cGVzIHdpbGwgYmUgc3VwcG9ydGVkLCBhbGlnbmluZyB3aXRoIHRoZSBpbXBvcnQtYXR0cmlidXRlcyBwcm9wb3NhbC4gTGVhcm4gbW9yZSBoZXJlOicgKyAnIChodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pbXBvcnQtYXR0cmlidXRlcyknLCB0eXBlT2ZBcywgaHJlZik7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBkaXNwYXRjaGVyID0gRGlzcGF0Y2hlci5jdXJyZW50O1xuXG4gIGlmIChkaXNwYXRjaGVyICYmIHR5cGVvZiBocmVmID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcgJiYgb3B0aW9ucyAhPT0gbnVsbCkge1xuICAgICAgaWYgKG9wdGlvbnMuYXMgPT0gbnVsbCB8fCBvcHRpb25zLmFzID09PSAnc2NyaXB0Jykge1xuICAgICAgICB2YXIgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKG9wdGlvbnMuYXMsIG9wdGlvbnMuY3Jvc3NPcmlnaW4pO1xuICAgICAgICBkaXNwYXRjaGVyLnByZWluaXRNb2R1bGVTY3JpcHQoaHJlZiwge1xuICAgICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgICBpbnRlZ3JpdHk6IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmludGVncml0eSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBub25jZTogdHlwZW9mIG9wdGlvbnMubm9uY2UgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5ub25jZSA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMgPT0gbnVsbCkge1xuICAgICAgZGlzcGF0Y2hlci5wcmVpbml0TW9kdWxlU2NyaXB0KGhyZWYpO1xuICAgIH1cbiAgfSAvLyBXZSBkb24ndCBlcnJvciBiZWNhdXNlIHByZWluaXQgbmVlZHMgdG8gYmUgcmVzaWxpZW50IHRvIGJlaW5nIGNhbGxlZCBpbiBhIHZhcmlldHkgb2Ygc2NvcGVzXG4gIC8vIGFuZCB0aGUgcnVudGltZSBtYXkgbm90IGJlIGNhcGFibGUgb2YgcmVzcG9uZGluZy4gVGhlIGZ1bmN0aW9uIGlzIG9wdGltaXN0aWMgYW5kIG5vdCBjcml0aWNhbFxuICAvLyBzbyB3ZSBmYXZvciBzaWxlbnQgYmFpbG91dCBvdmVyIHdhcm5pbmcgb3IgZXJyb3JpbmcuXG5cbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyh0aGluZykge1xuICByZXR1cm4gdGhpbmcgPT09IG51bGwgPyAnYG51bGxgJyA6IHRoaW5nID09PSB1bmRlZmluZWQgPyAnYHVuZGVmaW5lZGAnIDogdGhpbmcgPT09ICcnID8gJ2FuIGVtcHR5IHN0cmluZycgOiBcInNvbWV0aGluZyB3aXRoIHR5cGUgXFxcIlwiICsgdHlwZW9mIHRoaW5nICsgXCJcXFwiXCI7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKHRoaW5nKSB7XG4gIHJldHVybiB0aGluZyA9PT0gbnVsbCA/ICdgbnVsbGAnIDogdGhpbmcgPT09IHVuZGVmaW5lZCA/ICdgdW5kZWZpbmVkYCcgOiB0aGluZyA9PT0gJycgPyAnYW4gZW1wdHkgc3RyaW5nJyA6IHR5cGVvZiB0aGluZyA9PT0gJ3N0cmluZycgPyBKU09OLnN0cmluZ2lmeSh0aGluZykgOiB0eXBlb2YgdGhpbmcgPT09ICdudW1iZXInID8gJ2AnICsgdGhpbmcgKyAnYCcgOiBcInNvbWV0aGluZyB3aXRoIHR5cGUgXFxcIlwiICsgdHlwZW9mIHRoaW5nICsgXCJcXFwiXCI7XG59XG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjsgLy8gU2luY2UgdGhlIFwibm90IHBlbmRpbmdcIiB2YWx1ZSBpcyBhbHdheXMgdGhlIHNhbWUsIHdlIGNhbiByZXVzZSB0aGVcblxuZnVuY3Rpb24gcmVzb2x2ZURpc3BhdGNoZXIoKSB7XG4gIC8vIENvcGllZCBmcm9tIHJlYWN0L3NyYy9SZWFjdEhvb2tzLmpzLiBJdCdzIHRoZSBzYW1lIHRoaW5nIGJ1dCBpbiBhXG4gIC8vIGRpZmZlcmVudCBwYWNrYWdlLlxuICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudDtcblxuICB7XG4gICAgaWYgKGRpc3BhdGNoZXIgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yJyArICcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4nICsgJzEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbicgKyAnMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbicgKyAnMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcbicgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uJyk7XG4gICAgfVxuICB9IC8vIFdpbGwgcmVzdWx0IGluIGEgbnVsbCBhY2Nlc3MgZXJyb3IgaWYgYWNjZXNzZWQgb3V0c2lkZSByZW5kZXIgcGhhc2UuIFdlXG4gIC8vIGludGVudGlvbmFsbHkgZG9uJ3QgdGhyb3cgb3VyIG93biBlcnJvciBiZWNhdXNlIHRoaXMgaXMgaW4gYSBob3QgcGF0aC5cbiAgLy8gQWxzbyBoZWxwcyBlbnN1cmUgdGhpcyBpcyBpbmxpbmVkLlxuXG5cbiAgcmV0dXJuIGRpc3BhdGNoZXI7XG59XG5cbmZ1bmN0aW9uIHVzZUZvcm1TdGF0dXMoKSB7XG4gIHtcbiAgICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7IC8vICRGbG93Rml4TWVbbm90LWEtZnVuY3Rpb25dIFdlIGtub3cgdGhpcyBleGlzdHMgYmVjYXVzZSBvZiB0aGUgZmVhdHVyZSBjaGVjayBhYm92ZS5cblxuICAgIHJldHVybiBkaXNwYXRjaGVyLnVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHVzZUZvcm1TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKSB7XG4gIHtcbiAgICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7IC8vICRGbG93Rml4TWVbbm90LWEtZnVuY3Rpb25dIFRoaXMgaXMgdW5zdGFibGUsIHRodXMgb3B0aW9uYWxcblxuICAgIHJldHVybiBkaXNwYXRjaGVyLnVzZUZvcm1TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQb3J0YWwoKSB7XG4gIHRocm93IG5ldyBFcnJvcignY3JlYXRlUG9ydGFsIHdhcyBjYWxsZWQgb24gdGhlIHNlcnZlci4gUG9ydGFscyBhcmUgbm90IGN1cnJlbnRseScgKyAnIHN1cHBvcnRlZCBvbiB0aGUgc2VydmVyLiBVcGRhdGUgeW91ciBwcm9ncmFtIHRvIGNvbmRpdGlvbmFsbHkgY2FsbCcgKyAnIGNyZWF0ZVBvcnRhbCBvbiB0aGUgY2xpZW50IG9ubHkuJyk7XG59XG5mdW5jdGlvbiBmbHVzaFN5bmMoKSB7XG4gIHRocm93IG5ldyBFcnJvcignZmx1c2hTeW5jIHdhcyBjYWxsZWQgb24gdGhlIHNlcnZlci4gVGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEnICsgJyBmdW5jdGlvbiBiZWluZyBjYWxsZWQgZHVyaW5nIHJlbmRlciBvciBpbiBtb2R1bGUgc2NvcGUgdGhhdCB3YXMnICsgJyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgZnJvbSBhbiBlZmZlY3Qgb3IgZXZlbnQgaGFuZGxlci4gVXBkYXRlIHlvdXInICsgJyB0byBub3QgY2FsbCBmbHVzaFN5bmMgbm8gdGhlIHNlcnZlci4nKTtcbn0gLy8gb24gdGhlIHNlcnZlciB3ZSBqdXN0IGNhbGwgdGhlIGNhbGxiYWNrIGJlY2F1c2UgdGhlcmUgaXNcbi8vIG5vdCB1cGRhdGUgbWVjaGFuaXNtLiBSZWFsbHkgdGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiB0aGVcbi8vIHNlcnZlciBidXQgc2luY2UgdGhlIHNlbWFudGljcyBhcmUgZ2VuZXJhbGx5IGNsZWFyIGVub3VnaCB3ZVxuLy8gY2FuIHByb3ZpZGUgdGhpcyB0cml2aWFsIGltcGxlbWVudGF0aW9uLlxuXG5mdW5jdGlvbiBiYXRjaGVkVXBkYXRlcyhmbiwgYSkge1xuICByZXR1cm4gZm4oYSk7XG59XG5cbmZ1bmN0aW9uIGV4cGVyaW1lbnRhbF91c2VGb3JtU3RhdHVzKCkge1xuICB7XG4gICAgZXJyb3IoJ3VzZUZvcm1TdGF0dXMgaXMgbm93IGluIGNhbmFyeS4gUmVtb3ZlIHRoZSBleHBlcmltZW50YWxfIHByZWZpeC4gJyArICdUaGUgcHJlZml4ZWQgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuJyk7XG4gIH1cblxuICByZXR1cm4gdXNlRm9ybVN0YXR1cygpO1xufVxuZnVuY3Rpb24gZXhwZXJpbWVudGFsX3VzZUZvcm1TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKSB7XG4gIHtcbiAgICBlcnJvcigndXNlRm9ybVN0YXRlIGlzIG5vdyBpbiBjYW5hcnkuIFJlbW92ZSB0aGUgZXhwZXJpbWVudGFsXyBwcmVmaXguICcgKyAnVGhlIHByZWZpeGVkIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLicpO1xuICB9XG5cbiAgcmV0dXJuIHVzZUZvcm1TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKTtcbn1cblxuZXhwb3J0cy5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCA9IEludGVybmFscztcbmV4cG9ydHMuY3JlYXRlUG9ydGFsID0gY3JlYXRlUG9ydGFsO1xuZXhwb3J0cy5leHBlcmltZW50YWxfdXNlRm9ybVN0YXRlID0gZXhwZXJpbWVudGFsX3VzZUZvcm1TdGF0ZTtcbmV4cG9ydHMuZXhwZXJpbWVudGFsX3VzZUZvcm1TdGF0dXMgPSBleHBlcmltZW50YWxfdXNlRm9ybVN0YXR1cztcbmV4cG9ydHMuZmx1c2hTeW5jID0gZmx1c2hTeW5jO1xuZXhwb3J0cy5wcmVjb25uZWN0ID0gcHJlY29ubmVjdDtcbmV4cG9ydHMucHJlZmV0Y2hETlMgPSBwcmVmZXRjaEROUztcbmV4cG9ydHMucHJlaW5pdCA9IHByZWluaXQ7XG5leHBvcnRzLnByZWluaXRNb2R1bGUgPSBwcmVpbml0TW9kdWxlO1xuZXhwb3J0cy5wcmVsb2FkID0gcHJlbG9hZDtcbmV4cG9ydHMucHJlbG9hZE1vZHVsZSA9IHByZWxvYWRNb2R1bGU7XG5leHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID0gYmF0Y2hlZFVwZGF0ZXM7XG5leHBvcnRzLnVzZUZvcm1TdGF0ZSA9IHVzZUZvcm1TdGF0ZTtcbmV4cG9ydHMudXNlRm9ybVN0YXR1cyA9IHVzZUZvcm1TdGF0dXM7XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOlsicHJvY2VzcyIsIlJlYWN0IiwicmVxdWlyZSIsIlJlYWN0U2hhcmVkSW50ZXJuYWxzIiwiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJlcnJvciIsImZvcm1hdCIsIl9sZW4yIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleTIiLCJwcmludFdhcm5pbmciLCJsZXZlbCIsIlJlYWN0RGVidWdDdXJyZW50RnJhbWUiLCJzdGFjayIsImdldFN0YWNrQWRkZW5kdW0iLCJjb25jYXQiLCJhcmdzV2l0aEZvcm1hdCIsIm1hcCIsIml0ZW0iLCJTdHJpbmciLCJ1bnNoaWZ0IiwiRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJhcHBseSIsImNhbGwiLCJjb25zb2xlIiwiUmVhY3RWZXJzaW9uIiwiSW50ZXJuYWxzIiwidXNpbmdDbGllbnRFbnRyeVBvaW50IiwiRXZlbnRzIiwiRGlzcGF0Y2hlciIsImN1cnJlbnQiLCJnZXRDcm9zc09yaWdpblN0cmluZyIsImlucHV0IiwidW5kZWZpbmVkIiwiZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyIsImFzIiwicHJlZmV0Y2hETlMiLCJocmVmIiwiZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyIsIm9wdGlvbnMiLCJoYXNPd25Qcm9wZXJ0eSIsImdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nIiwiZGlzcGF0Y2hlciIsInByZWNvbm5lY3QiLCJjcm9zc09yaWdpbiIsInByZWxvYWQiLCJlbmNvdW50ZXJlZCIsImludGVncml0eSIsIm5vbmNlIiwidHlwZSIsImZldGNoUHJpb3JpdHkiLCJyZWZlcnJlclBvbGljeSIsImltYWdlU3JjU2V0IiwiaW1hZ2VTaXplcyIsInByZWxvYWRNb2R1bGUiLCJwcmVpbml0IiwicHJlaW5pdFN0eWxlIiwicHJlY2VkZW5jZSIsInByZWluaXRTY3JpcHQiLCJwcmVpbml0TW9kdWxlIiwidHlwZU9mQXMiLCJwcmVpbml0TW9kdWxlU2NyaXB0IiwidGhpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciIsInJlc29sdmVEaXNwYXRjaGVyIiwidXNlRm9ybVN0YXR1cyIsInVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzIiwidXNlRm9ybVN0YXRlIiwiYWN0aW9uIiwiaW5pdGlhbFN0YXRlIiwicGVybWFsaW5rIiwiY3JlYXRlUG9ydGFsIiwiRXJyb3IiLCJmbHVzaFN5bmMiLCJiYXRjaGVkVXBkYXRlcyIsImZuIiwiYSIsImV4cGVyaW1lbnRhbF91c2VGb3JtU3RhdHVzIiwiZXhwZXJpbWVudGFsX3VzZUZvcm1TdGF0ZSIsImV4cG9ydHMiLCJ1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyIsInZlcnNpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js ***!
- \********************************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-dom-server-rendering-stub.development.js */ \"(rsc)/../../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1kb20vc2VydmVyLXJlbmRlcmluZy1zdHViLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBRUEsSUFBSUEsS0FBeUIsRUFBYyxFQUUxQyxNQUFNO0lBQ0xDLDRNQUF5QjtBQUMzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1kb20vc2VydmVyLXJlbmRlcmluZy1zdHViLmpzPzg2ZjYiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS1zZXJ2ZXItcmVuZGVyaW5nLXN0dWIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLXNlcnZlci1yZW5kZXJpbmctc3R1Yi5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxdWlyZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js":
-/*!******************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js ***!
- \******************************************************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-server-dom-webpack-server.edge.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n var React = __webpack_require__(/*! react */ \"(rsc)/../../node_modules/next/dist/compiled/react/react.shared-subset.js\");\n var ReactDOM = __webpack_require__(/*! react-dom */ \"(rsc)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n // -----------------------------------------------------------------------------\n var enablePostpone = false;\n function scheduleWork(callback) {\n setTimeout(callback, 0);\n }\n var VIEW_SIZE = 512;\n var currentView = null;\n var writtenBytes = 0;\n function beginWriting(destination) {\n currentView = new Uint8Array(VIEW_SIZE);\n writtenBytes = 0;\n }\n function writeChunk(destination, chunk) {\n if (chunk.byteLength === 0) {\n return;\n }\n if (chunk.byteLength > VIEW_SIZE) {\n {\n if (precomputedChunkSet.has(chunk)) {\n error(\"A large precomputed chunk was passed to writeChunk without being copied.\" + \" Large chunks get enqueued directly and are not copied. This is incompatible with precomputed chunks because you cannot enqueue the same precomputed chunk twice.\" + ' Use \"cloneChunk\" to make a copy of this large precomputed chunk before writing it. This is a bug in React.');\n }\n }\n // one that is cached by the streaming renderer. We will enqueu\n // it directly and expect it is not re-used\n if (writtenBytes > 0) {\n destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes));\n currentView = new Uint8Array(VIEW_SIZE);\n writtenBytes = 0;\n }\n destination.enqueue(chunk);\n return;\n }\n var bytesToWrite = chunk;\n var allowableBytes = currentView.length - writtenBytes;\n if (allowableBytes < bytesToWrite.byteLength) {\n // this chunk would overflow the current view. We enqueue a full view\n // and start a new view with the remaining chunk\n if (allowableBytes === 0) {\n // the current view is already full, send it\n destination.enqueue(currentView);\n } else {\n // fill up the current view and apply the remaining chunk bytes\n // to a new view.\n currentView.set(bytesToWrite.subarray(0, allowableBytes), writtenBytes); // writtenBytes += allowableBytes; // this can be skipped because we are going to immediately reset the view\n destination.enqueue(currentView);\n bytesToWrite = bytesToWrite.subarray(allowableBytes);\n }\n currentView = new Uint8Array(VIEW_SIZE);\n writtenBytes = 0;\n }\n currentView.set(bytesToWrite, writtenBytes);\n writtenBytes += bytesToWrite.byteLength;\n }\n function writeChunkAndReturn(destination, chunk) {\n writeChunk(destination, chunk); // in web streams there is no backpressure so we can alwas write more\n return true;\n }\n function completeWriting(destination) {\n if (currentView && writtenBytes > 0) {\n destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes));\n currentView = null;\n writtenBytes = 0;\n }\n }\n function close$1(destination) {\n destination.close();\n }\n var textEncoder = new TextEncoder();\n function stringToChunk(content) {\n return textEncoder.encode(content);\n }\n var precomputedChunkSet = new Set();\n function byteLengthOfChunk(chunk) {\n return chunk.byteLength;\n }\n function closeWithError(destination, error) {\n // $FlowFixMe[method-unbinding]\n if (typeof destination.error === \"function\") {\n // $FlowFixMe[incompatible-call]: This is an Error object or the destination accepts other types.\n destination.error(error);\n } else {\n // Earlier implementations doesn't support this method. In that environment you're\n // supposed to throw from a promise returned but we don't return a promise in our\n // approach. We could fork this implementation but this is environment is an edge\n // case to begin with. It's even less common to run this in an older environment.\n // Even then, this is not where errors are supposed to happen and they get reported\n // to a global callback in addition to this anyway. So it's fine just to close this.\n destination.close();\n }\n }\n // eslint-disable-next-line no-unused-vars\n var CLIENT_REFERENCE_TAG = Symbol.for(\"react.client.reference\");\n var SERVER_REFERENCE_TAG = Symbol.for(\"react.server.reference\");\n function isClientReference(reference) {\n return reference.$$typeof === CLIENT_REFERENCE_TAG;\n }\n function isServerReference(reference) {\n return reference.$$typeof === SERVER_REFERENCE_TAG;\n }\n function registerClientReference(proxyImplementation, id, exportName) {\n return registerClientReferenceImpl(proxyImplementation, id + \"#\" + exportName, false);\n }\n function registerClientReferenceImpl(proxyImplementation, id, async) {\n return Object.defineProperties(proxyImplementation, {\n $$typeof: {\n value: CLIENT_REFERENCE_TAG\n },\n $$id: {\n value: id\n },\n $$async: {\n value: async\n }\n });\n } // $FlowFixMe[method-unbinding]\n var FunctionBind = Function.prototype.bind; // $FlowFixMe[method-unbinding]\n var ArraySlice = Array.prototype.slice;\n function bind() {\n // $FlowFixMe[unsupported-syntax]\n var newFn = FunctionBind.apply(this, arguments);\n if (this.$$typeof === SERVER_REFERENCE_TAG) {\n var args = ArraySlice.call(arguments, 1);\n return Object.defineProperties(newFn, {\n $$typeof: {\n value: SERVER_REFERENCE_TAG\n },\n $$id: {\n value: this.$$id\n },\n $$bound: {\n value: this.$$bound ? this.$$bound.concat(args) : args\n },\n bind: {\n value: bind\n }\n });\n }\n return newFn;\n }\n function registerServerReference(reference, id, exportName) {\n return Object.defineProperties(reference, {\n $$typeof: {\n value: SERVER_REFERENCE_TAG\n },\n $$id: {\n value: exportName === null ? id : id + \"#\" + exportName\n },\n $$bound: {\n value: null\n },\n bind: {\n value: bind\n }\n });\n }\n var PROMISE_PROTOTYPE = Promise.prototype;\n var deepProxyHandlers = {\n get: function(target, name, receiver) {\n switch(name){\n // These names are read by the Flight runtime if you end up using the exports object.\n case \"$$typeof\":\n // These names are a little too common. We should probably have a way to\n // have the Flight runtime extract the inner target instead.\n return target.$$typeof;\n case \"$$id\":\n return target.$$id;\n case \"$$async\":\n return target.$$async;\n case \"name\":\n return target.name;\n case \"displayName\":\n return undefined;\n // We need to special case this because createElement reads it if we pass this\n // reference.\n case \"defaultProps\":\n return undefined;\n // Avoid this attempting to be serialized.\n case \"toJSON\":\n return undefined;\n case Symbol.toPrimitive:\n // $FlowFixMe[prop-missing]\n return Object.prototype[Symbol.toPrimitive];\n case \"Provider\":\n throw new Error(\"Cannot render a Client Context Provider on the Server. \" + \"Instead, you can export a Client Component wrapper \" + \"that itself renders a Client Context Provider.\");\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var expression = String(target.name) + \".\" + String(name);\n throw new Error(\"Cannot access \" + expression + \" on the server. \" + \"You cannot dot into a client module from a server component. \" + \"You can only pass the imported name through.\");\n },\n set: function() {\n throw new Error(\"Cannot assign to a client module from a server module.\");\n }\n };\n function getReference(target, name) {\n switch(name){\n // These names are read by the Flight runtime if you end up using the exports object.\n case \"$$typeof\":\n return target.$$typeof;\n case \"$$id\":\n return target.$$id;\n case \"$$async\":\n return target.$$async;\n case \"name\":\n return target.name;\n // We need to special case this because createElement reads it if we pass this\n // reference.\n case \"defaultProps\":\n return undefined;\n // Avoid this attempting to be serialized.\n case \"toJSON\":\n return undefined;\n case Symbol.toPrimitive:\n // $FlowFixMe[prop-missing]\n return Object.prototype[Symbol.toPrimitive];\n case \"__esModule\":\n // Something is conditionally checking which export to use. We'll pretend to be\n // an ESM compat module but then we'll check again on the client.\n var moduleId = target.$$id;\n target.default = registerClientReferenceImpl(function() {\n throw new Error(\"Attempted to call the default export of \" + moduleId + \" from the server \" + \"but it's on the client. It's not possible to invoke a client function from \" + \"the server, it can only be rendered as a Component or passed to props of a \" + \"Client Component.\");\n }, target.$$id + \"#\", target.$$async);\n return true;\n case \"then\":\n if (target.then) {\n // Use a cached value\n return target.then;\n }\n if (!target.$$async) {\n // If this module is expected to return a Promise (such as an AsyncModule) then\n // we should resolve that with a client reference that unwraps the Promise on\n // the client.\n var clientReference = registerClientReferenceImpl({}, target.$$id, true);\n var proxy = new Proxy(clientReference, proxyHandlers); // Treat this as a resolved Promise for React's use()\n target.status = \"fulfilled\";\n target.value = proxy;\n var then = target.then = registerClientReferenceImpl(function then(resolve, reject) {\n // Expose to React.\n return Promise.resolve(resolve(proxy));\n }, // export then we should treat it as a reference to that name.\n target.$$id + \"#then\", false);\n return then;\n } else {\n // Since typeof .then === 'function' is a feature test we'd continue recursing\n // indefinitely if we return a function. Instead, we return an object reference\n // if we check further.\n return undefined;\n }\n }\n var cachedReference = target[name];\n if (!cachedReference) {\n var reference = registerClientReferenceImpl(function() {\n throw new Error(\"Attempted to call \" + String(name) + \"() from the server but \" + String(name) + \" is on the client. \" + \"It's not possible to invoke a client function from the server, it can \" + \"only be rendered as a Component or passed to props of a Client Component.\");\n }, target.$$id + \"#\" + name, target.$$async);\n Object.defineProperty(reference, \"name\", {\n value: name\n });\n cachedReference = target[name] = new Proxy(reference, deepProxyHandlers);\n }\n return cachedReference;\n }\n var proxyHandlers = {\n get: function(target, name, receiver) {\n return getReference(target, name);\n },\n getOwnPropertyDescriptor: function(target, name) {\n var descriptor = Object.getOwnPropertyDescriptor(target, name);\n if (!descriptor) {\n descriptor = {\n value: getReference(target, name),\n writable: false,\n configurable: false,\n enumerable: false\n };\n Object.defineProperty(target, name, descriptor);\n }\n return descriptor;\n },\n getPrototypeOf: function(target) {\n // Pretend to be a Promise in case anyone asks.\n return PROMISE_PROTOTYPE;\n },\n set: function() {\n throw new Error(\"Cannot assign to a client module from a server module.\");\n }\n };\n function createClientModuleProxy(moduleId) {\n var clientReference = registerClientReferenceImpl({}, moduleId, false);\n return new Proxy(clientReference, proxyHandlers);\n }\n function getClientReferenceKey(reference) {\n return reference.$$async ? reference.$$id + \"#async\" : reference.$$id;\n }\n function resolveClientReferenceMetadata(config, clientReference) {\n var modulePath = clientReference.$$id;\n var name = \"\";\n var resolvedModuleData = config[modulePath];\n if (resolvedModuleData) {\n // The potentially aliased name.\n name = resolvedModuleData.name;\n } else {\n // We didn't find this specific export name but we might have the * export\n // which contains this name as well.\n // TODO: It's unfortunate that we now have to parse this string. We should\n // probably go back to encoding path and name separately on the client reference.\n var idx = modulePath.lastIndexOf(\"#\");\n if (idx !== -1) {\n name = modulePath.slice(idx + 1);\n resolvedModuleData = config[modulePath.slice(0, idx)];\n }\n if (!resolvedModuleData) {\n throw new Error('Could not find the module \"' + modulePath + '\" in the React Client Manifest. ' + \"This is probably a bug in the React Server Components bundler.\");\n }\n }\n if (clientReference.$$async === true) {\n return [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name,\n 1\n ];\n } else {\n return [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name\n ];\n }\n }\n function getServerReferenceId(config, serverReference) {\n return serverReference.$$id;\n }\n function getServerReferenceBoundArguments(config, serverReference) {\n return serverReference.$$bound;\n }\n var ReactDOMSharedInternals = ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n var ReactDOMFlightServerDispatcher = {\n prefetchDNS: prefetchDNS,\n preconnect: preconnect,\n preload: preload,\n preloadModule: preloadModule$1,\n preinitStyle: preinitStyle,\n preinitScript: preinitScript,\n preinitModuleScript: preinitModuleScript\n };\n function prefetchDNS(href) {\n {\n if (typeof href === \"string\" && href) {\n var request = resolveRequest();\n if (request) {\n var hints = getHints(request);\n var key = \"D|\" + href;\n if (hints.has(key)) {\n // duplicate hint\n return;\n }\n hints.add(key);\n emitHint(request, \"D\", href);\n }\n }\n }\n }\n function preconnect(href, crossOrigin) {\n {\n if (typeof href === \"string\") {\n var request = resolveRequest();\n if (request) {\n var hints = getHints(request);\n var key = \"C|\" + (crossOrigin == null ? \"null\" : crossOrigin) + \"|\" + href;\n if (hints.has(key)) {\n // duplicate hint\n return;\n }\n hints.add(key);\n if (typeof crossOrigin === \"string\") {\n emitHint(request, \"C\", [\n href,\n crossOrigin\n ]);\n } else {\n emitHint(request, \"C\", href);\n }\n }\n }\n }\n }\n function preload(href, as, options) {\n {\n if (typeof href === \"string\") {\n var request = resolveRequest();\n if (request) {\n var hints = getHints(request);\n var key = \"L\";\n if (as === \"image\" && options) {\n key += getImagePreloadKey(href, options.imageSrcSet, options.imageSizes);\n } else {\n key += \"[\" + as + \"]\" + href;\n }\n if (hints.has(key)) {\n // duplicate hint\n return;\n }\n hints.add(key);\n var trimmed = trimOptions(options);\n if (trimmed) {\n emitHint(request, \"L\", [\n href,\n as,\n trimmed\n ]);\n } else {\n emitHint(request, \"L\", [\n href,\n as\n ]);\n }\n }\n }\n }\n }\n function preloadModule$1(href, options) {\n {\n if (typeof href === \"string\") {\n var request = resolveRequest();\n if (request) {\n var hints = getHints(request);\n var key = \"m|\" + href;\n if (hints.has(key)) {\n // duplicate hint\n return;\n }\n hints.add(key);\n var trimmed = trimOptions(options);\n if (trimmed) {\n return emitHint(request, \"m\", [\n href,\n trimmed\n ]);\n } else {\n return emitHint(request, \"m\", href);\n }\n }\n }\n }\n }\n function preinitStyle(href, precedence, options) {\n {\n if (typeof href === \"string\") {\n var request = resolveRequest();\n if (request) {\n var hints = getHints(request);\n var key = \"S|\" + href;\n if (hints.has(key)) {\n // duplicate hint\n return;\n }\n hints.add(key);\n var trimmed = trimOptions(options);\n if (trimmed) {\n return emitHint(request, \"S\", [\n href,\n typeof precedence === \"string\" ? precedence : 0,\n trimmed\n ]);\n } else if (typeof precedence === \"string\") {\n return emitHint(request, \"S\", [\n href,\n precedence\n ]);\n } else {\n return emitHint(request, \"S\", href);\n }\n }\n }\n }\n }\n function preinitScript(href, options) {\n {\n if (typeof href === \"string\") {\n var request = resolveRequest();\n if (request) {\n var hints = getHints(request);\n var key = \"X|\" + href;\n if (hints.has(key)) {\n // duplicate hint\n return;\n }\n hints.add(key);\n var trimmed = trimOptions(options);\n if (trimmed) {\n return emitHint(request, \"X\", [\n href,\n trimmed\n ]);\n } else {\n return emitHint(request, \"X\", href);\n }\n }\n }\n }\n }\n function preinitModuleScript(href, options) {\n {\n if (typeof href === \"string\") {\n var request = resolveRequest();\n if (request) {\n var hints = getHints(request);\n var key = \"M|\" + href;\n if (hints.has(key)) {\n // duplicate hint\n return;\n }\n hints.add(key);\n var trimmed = trimOptions(options);\n if (trimmed) {\n return emitHint(request, \"M\", [\n href,\n trimmed\n ]);\n } else {\n return emitHint(request, \"M\", href);\n }\n }\n }\n }\n } // Flight normally encodes undefined as a special character however for directive option\n // arguments we don't want to send unnecessary keys and bloat the payload so we create a\n // trimmed object which omits any keys with null or undefined values.\n // This is only typesafe because these option objects have entirely optional fields where\n // null and undefined represent the same thing as no property.\n function trimOptions(options) {\n if (options == null) return null;\n var hasProperties = false;\n var trimmed = {};\n for(var key in options){\n if (options[key] != null) {\n hasProperties = true;\n trimmed[key] = options[key];\n }\n }\n return hasProperties ? trimmed : null;\n }\n function getImagePreloadKey(href, imageSrcSet, imageSizes) {\n var uniquePart = \"\";\n if (typeof imageSrcSet === \"string\" && imageSrcSet !== \"\") {\n uniquePart += \"[\" + imageSrcSet + \"]\";\n if (typeof imageSizes === \"string\") {\n uniquePart += \"[\" + imageSizes + \"]\";\n }\n } else {\n uniquePart += \"[][]\" + href;\n }\n return \"[image]\" + uniquePart;\n }\n var ReactDOMCurrentDispatcher = ReactDOMSharedInternals.Dispatcher;\n function prepareHostDispatcher() {\n ReactDOMCurrentDispatcher.current = ReactDOMFlightServerDispatcher;\n } // Used to distinguish these contexts from ones used in other renderers.\n // small, smaller than how we encode undefined, and is unambiguous. We could use\n // a different tuple structure to encode this instead but this makes the runtime\n // cost cheaper by eliminating a type checks in more positions.\n // prettier-ignore\n function createHints() {\n return new Set();\n }\n var supportsRequestStorage = typeof AsyncLocalStorage === \"function\";\n var requestStorage = supportsRequestStorage ? new AsyncLocalStorage() : null; // We use the Node version but get access to async_hooks from a global.\n typeof async_hooks === \"object\" ? async_hooks.createHook : function() {\n return {\n enable: function() {},\n disable: function() {}\n };\n };\n typeof async_hooks === \"object\" ? async_hooks.executionAsyncId : null;\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_SERVER_CONTEXT_TYPE = Symbol.for(\"react.server_context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\n var REACT_POSTPONE_TYPE = Symbol.for(\"react.postpone\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n // Forming a reverse tree.\n // The structure of a context snapshot is an implementation of this file.\n // Currently, it's implemented as tracking the current active node.\n var rootContextSnapshot = null; // We assume that this runtime owns the \"current\" field on all ReactContext instances.\n // This global (actually thread local) state represents what state all those \"current\",\n // fields are currently in.\n var currentActiveSnapshot = null;\n function popNode(prev) {\n {\n prev.context._currentValue = prev.parentValue;\n }\n }\n function pushNode(next) {\n {\n next.context._currentValue = next.value;\n }\n }\n function popToNearestCommonAncestor(prev, next) {\n if (prev === next) ;\n else {\n popNode(prev);\n var parentPrev = prev.parent;\n var parentNext = next.parent;\n if (parentPrev === null) {\n if (parentNext !== null) {\n throw new Error(\"The stacks must reach the root at the same time. This is a bug in React.\");\n }\n } else {\n if (parentNext === null) {\n throw new Error(\"The stacks must reach the root at the same time. This is a bug in React.\");\n }\n popToNearestCommonAncestor(parentPrev, parentNext); // On the way back, we push the new ones that weren't common.\n pushNode(next);\n }\n }\n }\n function popAllPrevious(prev) {\n popNode(prev);\n var parentPrev = prev.parent;\n if (parentPrev !== null) {\n popAllPrevious(parentPrev);\n }\n }\n function pushAllNext(next) {\n var parentNext = next.parent;\n if (parentNext !== null) {\n pushAllNext(parentNext);\n }\n pushNode(next);\n }\n function popPreviousToCommonLevel(prev, next) {\n popNode(prev);\n var parentPrev = prev.parent;\n if (parentPrev === null) {\n throw new Error(\"The depth must equal at least at zero before reaching the root. This is a bug in React.\");\n }\n if (parentPrev.depth === next.depth) {\n // We found the same level. Now we just need to find a shared ancestor.\n popToNearestCommonAncestor(parentPrev, next);\n } else {\n // We must still be deeper.\n popPreviousToCommonLevel(parentPrev, next);\n }\n }\n function popNextToCommonLevel(prev, next) {\n var parentNext = next.parent;\n if (parentNext === null) {\n throw new Error(\"The depth must equal at least at zero before reaching the root. This is a bug in React.\");\n }\n if (prev.depth === parentNext.depth) {\n // We found the same level. Now we just need to find a shared ancestor.\n popToNearestCommonAncestor(prev, parentNext);\n } else {\n // We must still be deeper.\n popNextToCommonLevel(prev, parentNext);\n }\n pushNode(next);\n } // Perform context switching to the new snapshot.\n // To make it cheap to read many contexts, while not suspending, we make the switch eagerly by\n // updating all the context's current values. That way reads, always just read the current value.\n // At the cost of updating contexts even if they're never read by this subtree.\n function switchContext(newSnapshot) {\n // The basic algorithm we need to do is to pop back any contexts that are no longer on the stack.\n // We also need to update any new contexts that are now on the stack with the deepest value.\n // The easiest way to update new contexts is to just reapply them in reverse order from the\n // perspective of the backpointers. To avoid allocating a lot when switching, we use the stack\n // for that. Therefore this algorithm is recursive.\n // 1) First we pop which ever snapshot tree was deepest. Popping old contexts as we go.\n // 2) Then we find the nearest common ancestor from there. Popping old contexts as we go.\n // 3) Then we reapply new contexts on the way back up the stack.\n var prev = currentActiveSnapshot;\n var next = newSnapshot;\n if (prev !== next) {\n if (prev === null) {\n // $FlowFixMe[incompatible-call]: This has to be non-null since it's not equal to prev.\n pushAllNext(next);\n } else if (next === null) {\n popAllPrevious(prev);\n } else if (prev.depth === next.depth) {\n popToNearestCommonAncestor(prev, next);\n } else if (prev.depth > next.depth) {\n popPreviousToCommonLevel(prev, next);\n } else {\n popNextToCommonLevel(prev, next);\n }\n currentActiveSnapshot = next;\n }\n }\n function getActiveContext() {\n return currentActiveSnapshot;\n }\n function readContext$1(context) {\n var value = context._currentValue;\n return value;\n }\n // Corresponds to ReactFiberWakeable and ReactFizzWakeable modules. Generally,\n // changes to one module should be reflected in the others.\n // TODO: Rename this module and the corresponding Fiber one to \"Thenable\"\n // instead of \"Wakeable\". Or some other more appropriate name.\n // An error that is thrown (e.g. by `use`) to trigger Suspense. If we\n // detect this is caught by userspace, we'll log a warning in development.\n var SuspenseException = new Error(\"Suspense Exception: This is not a real error! It's an implementation \" + \"detail of `use` to interrupt the current render. You must either \" + \"rethrow it immediately, or move the `use` call outside of the \" + \"`try/catch` block. Capturing without rethrowing will lead to \" + \"unexpected behavior.\\n\\n\" + \"To handle async errors, wrap your component in an error boundary, or \" + \"call the promise's `.catch` method and pass the result to `use`\");\n function createThenableState() {\n // The ThenableState is created the first time a component suspends. If it\n // suspends again, we'll reuse the same state.\n return [];\n }\n function noop() {}\n function trackUsedThenable(thenableState, thenable, index) {\n var previous = thenableState[index];\n if (previous === undefined) {\n thenableState.push(thenable);\n } else {\n if (previous !== thenable) {\n // Reuse the previous thenable, and drop the new one. We can assume\n // they represent the same value, because components are idempotent.\n // Avoid an unhandled rejection errors for the Promises that we'll\n // intentionally ignore.\n thenable.then(noop, noop);\n thenable = previous;\n }\n } // We use an expando to track the status and result of a thenable so that we\n // can synchronously unwrap the value. Think of this as an extension of the\n // Promise API, or a custom interface that is a superset of Thenable.\n //\n // If the thenable doesn't have a status, set it to \"pending\" and attach\n // a listener that will update its status and result when it resolves.\n switch(thenable.status){\n case \"fulfilled\":\n {\n var fulfilledValue = thenable.value;\n return fulfilledValue;\n }\n case \"rejected\":\n {\n var rejectedError = thenable.reason;\n throw rejectedError;\n }\n default:\n {\n if (typeof thenable.status === \"string\") ;\n else {\n var pendingThenable = thenable;\n pendingThenable.status = \"pending\";\n pendingThenable.then(function(fulfilledValue) {\n if (thenable.status === \"pending\") {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n }, function(error) {\n if (thenable.status === \"pending\") {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }); // Check one more time in case the thenable resolved synchronously\n switch(thenable.status){\n case \"fulfilled\":\n {\n var fulfilledThenable = thenable;\n return fulfilledThenable.value;\n }\n case \"rejected\":\n {\n var rejectedThenable = thenable;\n throw rejectedThenable.reason;\n }\n }\n } // Suspend.\n //\n // Throwing here is an implementation detail that allows us to unwind the\n // call stack. But we shouldn't allow it to leak into userspace. Throw an\n // opaque placeholder value instead of the actual thenable. If it doesn't\n // get captured by the work loop, log a warning, because that means\n // something in userspace must have caught it.\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n }\n } // This is used to track the actual thenable that suspended so it can be\n // passed to the rest of the Suspense implementation — which, for historical\n // reasons, expects to receive a thenable.\n var suspendedThenable = null;\n function getSuspendedThenable() {\n // This is called right after `use` suspends by throwing an exception. `use`\n // throws an opaque value instead of the thenable itself so that it can't be\n // caught in userspace. Then the work loop accesses the actual thenable using\n // this function.\n if (suspendedThenable === null) {\n throw new Error(\"Expected a suspended thenable. This is a bug in React. Please file \" + \"an issue.\");\n }\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n }\n var currentRequest$1 = null;\n var thenableIndexCounter = 0;\n var thenableState = null;\n function prepareToUseHooksForRequest(request) {\n currentRequest$1 = request;\n }\n function resetHooksForRequest() {\n currentRequest$1 = null;\n }\n function prepareToUseHooksForComponent(prevThenableState) {\n thenableIndexCounter = 0;\n thenableState = prevThenableState;\n }\n function getThenableStateAfterSuspending() {\n var state = thenableState;\n thenableState = null;\n return state;\n }\n function readContext(context) {\n {\n if (context.$$typeof !== REACT_SERVER_CONTEXT_TYPE) {\n if (isClientReference(context)) {\n error(\"Cannot read a Client Context from a Server Component.\");\n } else {\n error(\"Only createServerContext is supported in Server Components.\");\n }\n }\n if (currentRequest$1 === null) {\n error(\"Context can only be read while React is rendering. \" + \"In classes, you can read it in the render method or getDerivedStateFromProps. \" + \"In function components, you can read it directly in the function body, but not \" + \"inside Hooks like useReducer() or useMemo().\");\n }\n }\n return readContext$1(context);\n }\n var HooksDispatcher = {\n useMemo: function(nextCreate) {\n return nextCreate();\n },\n useCallback: function(callback) {\n return callback;\n },\n useDebugValue: function() {},\n useDeferredValue: unsupportedHook,\n useTransition: unsupportedHook,\n readContext: readContext,\n useContext: readContext,\n useReducer: unsupportedHook,\n useRef: unsupportedHook,\n useState: unsupportedHook,\n useInsertionEffect: unsupportedHook,\n useLayoutEffect: unsupportedHook,\n useImperativeHandle: unsupportedHook,\n useEffect: unsupportedHook,\n useId: useId,\n useSyncExternalStore: unsupportedHook,\n useCacheRefresh: function() {\n return unsupportedRefresh;\n },\n useMemoCache: function(size) {\n var data = new Array(size);\n for(var i = 0; i < size; i++){\n data[i] = REACT_MEMO_CACHE_SENTINEL;\n }\n return data;\n },\n use: use\n };\n function unsupportedHook() {\n throw new Error(\"This Hook is not supported in Server Components.\");\n }\n function unsupportedRefresh() {\n throw new Error(\"Refreshing the cache is not supported in Server Components.\");\n }\n function useId() {\n if (currentRequest$1 === null) {\n throw new Error(\"useId can only be used while React is rendering\");\n }\n var id = currentRequest$1.identifierCount++; // use 'S' for Flight components to distinguish from 'R' and 'r' in Fizz/Client\n return \":\" + currentRequest$1.identifierPrefix + \"S\" + id.toString(32) + \":\";\n }\n function use(usable) {\n if (usable !== null && typeof usable === \"object\" || typeof usable === \"function\") {\n // $FlowFixMe[method-unbinding]\n if (typeof usable.then === \"function\") {\n // This is a thenable.\n var thenable = usable; // Track the position of the thenable within this fiber.\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n if (thenableState === null) {\n thenableState = createThenableState();\n }\n return trackUsedThenable(thenableState, thenable, index);\n } else if (usable.$$typeof === REACT_SERVER_CONTEXT_TYPE) {\n var context = usable;\n return readContext(context);\n }\n }\n {\n if (isClientReference(usable)) {\n error(\"Cannot use() an already resolved Client Reference.\");\n }\n }\n throw new Error(\"An unsupported type was passed to use(): \" + String(usable));\n }\n function createSignal() {\n return new AbortController().signal;\n }\n function resolveCache() {\n var request = resolveRequest();\n if (request) {\n return getCache(request);\n }\n return new Map();\n }\n var DefaultCacheDispatcher = {\n getCacheSignal: function() {\n var cache = resolveCache();\n var entry = cache.get(createSignal);\n if (entry === undefined) {\n entry = createSignal();\n cache.set(createSignal, entry);\n }\n return entry;\n },\n getCacheForType: function(resourceType) {\n var cache = resolveCache();\n var entry = cache.get(resourceType);\n if (entry === undefined) {\n entry = resourceType(); // TODO: Warn if undefined?\n cache.set(resourceType, entry);\n }\n return entry;\n }\n };\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n var getPrototypeOf = Object.getPrototypeOf;\n // in case they error.\n var jsxPropsParents = new WeakMap();\n var jsxChildrenParents = new WeakMap();\n function isObjectPrototype(object) {\n if (!object) {\n return false;\n }\n var ObjectPrototype = Object.prototype;\n if (object === ObjectPrototype) {\n return true;\n } // It might be an object from a different Realm which is\n // still just a plain simple object.\n if (getPrototypeOf(object)) {\n return false;\n }\n var names = Object.getOwnPropertyNames(object);\n for(var i = 0; i < names.length; i++){\n if (!(names[i] in ObjectPrototype)) {\n return false;\n }\n }\n return true;\n }\n function isSimpleObject(object) {\n if (!isObjectPrototype(getPrototypeOf(object))) {\n return false;\n }\n var names = Object.getOwnPropertyNames(object);\n for(var i = 0; i < names.length; i++){\n var descriptor = Object.getOwnPropertyDescriptor(object, names[i]);\n if (!descriptor) {\n return false;\n }\n if (!descriptor.enumerable) {\n if ((names[i] === \"key\" || names[i] === \"ref\") && typeof descriptor.get === \"function\") {\n continue;\n }\n return false;\n }\n }\n return true;\n }\n function objectName(object) {\n // $FlowFixMe[method-unbinding]\n var name = Object.prototype.toString.call(object);\n return name.replace(/^\\[object (.*)\\]$/, function(m, p0) {\n return p0;\n });\n }\n function describeKeyForErrorMessage(key) {\n var encodedKey = JSON.stringify(key);\n return '\"' + key + '\"' === encodedKey ? key : encodedKey;\n }\n function describeValueForErrorMessage(value) {\n switch(typeof value){\n case \"string\":\n {\n return JSON.stringify(value.length <= 10 ? value : value.slice(0, 10) + \"...\");\n }\n case \"object\":\n {\n if (isArray(value)) {\n return \"[...]\";\n }\n var name = objectName(value);\n if (name === \"Object\") {\n return \"{...}\";\n }\n return name;\n }\n case \"function\":\n return \"function\";\n default:\n // eslint-disable-next-line react-internal/safe-string-coercion\n return String(value);\n }\n }\n function describeElementType(type) {\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeElementType(type.render);\n case REACT_MEMO_TYPE:\n return describeElementType(type.type);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeElementType(init(payload));\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n function describeObjectForErrorMessage(objectOrArray, expandedName) {\n var objKind = objectName(objectOrArray);\n if (objKind !== \"Object\" && objKind !== \"Array\") {\n return objKind;\n }\n var str = \"\";\n var start = -1;\n var length = 0;\n if (isArray(objectOrArray)) {\n if (jsxChildrenParents.has(objectOrArray)) {\n // Print JSX Children\n var type = jsxChildrenParents.get(objectOrArray);\n str = \"<\" + describeElementType(type) + \">\";\n var array = objectOrArray;\n for(var i = 0; i < array.length; i++){\n var value = array[i];\n var substr = void 0;\n if (typeof value === \"string\") {\n substr = value;\n } else if (typeof value === \"object\" && value !== null) {\n substr = \"{\" + describeObjectForErrorMessage(value) + \"}\";\n } else {\n substr = \"{\" + describeValueForErrorMessage(value) + \"}\";\n }\n if (\"\" + i === expandedName) {\n start = str.length;\n length = substr.length;\n str += substr;\n } else if (substr.length < 15 && str.length + substr.length < 40) {\n str += substr;\n } else {\n str += \"{...}\";\n }\n }\n str += \"</\" + describeElementType(type) + \">\";\n } else {\n // Print Array\n str = \"[\";\n var _array = objectOrArray;\n for(var _i = 0; _i < _array.length; _i++){\n if (_i > 0) {\n str += \", \";\n }\n var _value = _array[_i];\n var _substr = void 0;\n if (typeof _value === \"object\" && _value !== null) {\n _substr = describeObjectForErrorMessage(_value);\n } else {\n _substr = describeValueForErrorMessage(_value);\n }\n if (\"\" + _i === expandedName) {\n start = str.length;\n length = _substr.length;\n str += _substr;\n } else if (_substr.length < 10 && str.length + _substr.length < 40) {\n str += _substr;\n } else {\n str += \"...\";\n }\n }\n str += \"]\";\n }\n } else {\n if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE) {\n str = \"<\" + describeElementType(objectOrArray.type) + \"/>\";\n } else if (jsxPropsParents.has(objectOrArray)) {\n // Print JSX\n var _type = jsxPropsParents.get(objectOrArray);\n str = \"<\" + (describeElementType(_type) || \"...\");\n var object = objectOrArray;\n var names = Object.keys(object);\n for(var _i2 = 0; _i2 < names.length; _i2++){\n str += \" \";\n var name = names[_i2];\n str += describeKeyForErrorMessage(name) + \"=\";\n var _value2 = object[name];\n var _substr2 = void 0;\n if (name === expandedName && typeof _value2 === \"object\" && _value2 !== null) {\n _substr2 = describeObjectForErrorMessage(_value2);\n } else {\n _substr2 = describeValueForErrorMessage(_value2);\n }\n if (typeof _value2 !== \"string\") {\n _substr2 = \"{\" + _substr2 + \"}\";\n }\n if (name === expandedName) {\n start = str.length;\n length = _substr2.length;\n str += _substr2;\n } else if (_substr2.length < 10 && str.length + _substr2.length < 40) {\n str += _substr2;\n } else {\n str += \"...\";\n }\n }\n str += \">\";\n } else {\n // Print Object\n str = \"{\";\n var _object = objectOrArray;\n var _names = Object.keys(_object);\n for(var _i3 = 0; _i3 < _names.length; _i3++){\n if (_i3 > 0) {\n str += \", \";\n }\n var _name = _names[_i3];\n str += describeKeyForErrorMessage(_name) + \": \";\n var _value3 = _object[_name];\n var _substr3 = void 0;\n if (typeof _value3 === \"object\" && _value3 !== null) {\n _substr3 = describeObjectForErrorMessage(_value3);\n } else {\n _substr3 = describeValueForErrorMessage(_value3);\n }\n if (_name === expandedName) {\n start = str.length;\n length = _substr3.length;\n str += _substr3;\n } else if (_substr3.length < 10 && str.length + _substr3.length < 40) {\n str += _substr3;\n } else {\n str += \"...\";\n }\n }\n str += \"}\";\n }\n }\n if (expandedName === undefined) {\n return str;\n }\n if (start > -1 && length > 0) {\n var highlight = \" \".repeat(start) + \"^\".repeat(length);\n return \"\\n \" + str + \"\\n \" + highlight;\n }\n return \"\\n \" + str;\n }\n var ReactSharedServerInternals = React.__SECRET_SERVER_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (!ReactSharedServerInternals) {\n throw new Error('The \"react\" package in this environment is not configured correctly. ' + 'The \"react-server\" condition must be enabled in any environment that ' + \"runs React Server Components.\");\n }\n var ObjectPrototype = Object.prototype;\n var stringify = JSON.stringify; // Serializable values\n // Thenable<ReactClientValue>\n var PENDING$1 = 0;\n var COMPLETED = 1;\n var ABORTED = 3;\n var ERRORED$1 = 4;\n var ReactCurrentCache = ReactSharedServerInternals.ReactCurrentCache;\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n function defaultErrorHandler(error) {\n console[\"error\"](error); // Don't transform to our wrapper\n }\n function defaultPostponeHandler(reason) {}\n var OPEN = 0;\n var CLOSING = 1;\n var CLOSED = 2;\n function createRequest(model, bundlerConfig, onError, context, identifierPrefix, onPostpone) {\n if (ReactCurrentCache.current !== null && ReactCurrentCache.current !== DefaultCacheDispatcher) {\n throw new Error(\"Currently React only supports one RSC renderer at a time.\");\n }\n prepareHostDispatcher();\n ReactCurrentCache.current = DefaultCacheDispatcher;\n var abortSet = new Set();\n var pingedTasks = [];\n var cleanupQueue = [];\n var hints = createHints();\n var request = {\n status: OPEN,\n flushScheduled: false,\n fatalError: null,\n destination: null,\n bundlerConfig: bundlerConfig,\n cache: new Map(),\n nextChunkId: 0,\n pendingChunks: 0,\n hints: hints,\n abortableTasks: abortSet,\n pingedTasks: pingedTasks,\n completedImportChunks: [],\n completedHintChunks: [],\n completedRegularChunks: [],\n completedErrorChunks: [],\n writtenSymbols: new Map(),\n writtenClientReferences: new Map(),\n writtenServerReferences: new Map(),\n writtenProviders: new Map(),\n writtenObjects: new WeakMap(),\n identifierPrefix: identifierPrefix || \"\",\n identifierCount: 1,\n taintCleanupQueue: cleanupQueue,\n onError: onError === undefined ? defaultErrorHandler : onError,\n onPostpone: onPostpone === undefined ? defaultPostponeHandler : onPostpone,\n // $FlowFixMe[missing-this-annot]\n toJSON: function(key, value) {\n return resolveModelToJSON(request, this, key, value);\n }\n };\n request.pendingChunks++;\n var rootContext = createRootContext();\n var rootTask = createTask(request, model, rootContext, abortSet);\n pingedTasks.push(rootTask);\n return request;\n }\n var currentRequest = null;\n function resolveRequest() {\n if (currentRequest) return currentRequest;\n if (supportsRequestStorage) {\n var store = requestStorage.getStore();\n if (store) return store;\n }\n return null;\n }\n function createRootContext(reqContext) {\n return importServerContexts();\n }\n function serializeThenable(request, thenable) {\n request.pendingChunks++;\n var newTask = createTask(request, null, getActiveContext(), request.abortableTasks);\n switch(thenable.status){\n case \"fulfilled\":\n {\n // We have the resolved value, we can go ahead and schedule it for serialization.\n newTask.model = thenable.value;\n pingTask(request, newTask);\n return newTask.id;\n }\n case \"rejected\":\n {\n var x = thenable.reason;\n {\n var digest = logRecoverableError(request, x);\n emitErrorChunk(request, newTask.id, digest, x);\n }\n return newTask.id;\n }\n default:\n {\n if (typeof thenable.status === \"string\") {\n break;\n }\n var pendingThenable = thenable;\n pendingThenable.status = \"pending\";\n pendingThenable.then(function(fulfilledValue) {\n if (thenable.status === \"pending\") {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n }, function(error) {\n if (thenable.status === \"pending\") {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n });\n break;\n }\n }\n thenable.then(function(value) {\n newTask.model = value;\n pingTask(request, newTask);\n }, function(reason) {\n {\n newTask.status = ERRORED$1;\n var _digest = logRecoverableError(request, reason);\n emitErrorChunk(request, newTask.id, _digest, reason);\n }\n request.abortableTasks.delete(newTask);\n if (request.destination !== null) {\n flushCompletedChunks(request, request.destination);\n }\n });\n return newTask.id;\n }\n function emitHint(request, code, model) {\n emitHintChunk(request, code, model);\n enqueueFlush(request);\n }\n function getHints(request) {\n return request.hints;\n }\n function getCache(request) {\n return request.cache;\n }\n function readThenable(thenable) {\n if (thenable.status === \"fulfilled\") {\n return thenable.value;\n } else if (thenable.status === \"rejected\") {\n throw thenable.reason;\n }\n throw thenable;\n }\n function createLazyWrapperAroundWakeable(wakeable) {\n // This is a temporary fork of the `use` implementation until we accept\n // promises everywhere.\n var thenable = wakeable;\n switch(thenable.status){\n case \"fulfilled\":\n case \"rejected\":\n break;\n default:\n {\n if (typeof thenable.status === \"string\") {\n break;\n }\n var pendingThenable = thenable;\n pendingThenable.status = \"pending\";\n pendingThenable.then(function(fulfilledValue) {\n if (thenable.status === \"pending\") {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n }, function(error) {\n if (thenable.status === \"pending\") {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n });\n break;\n }\n }\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: thenable,\n _init: readThenable\n };\n return lazyType;\n }\n function attemptResolveElement(request, type, key, ref, props, prevThenableState) {\n if (ref !== null && ref !== undefined) {\n // When the ref moves to the regular props object this will implicitly\n // throw for functions. We could probably relax it to a DEV warning for other\n // cases.\n throw new Error(\"Refs cannot be used in Server Components, nor passed to Client Components.\");\n }\n {\n jsxPropsParents.set(props, type);\n if (typeof props.children === \"object\" && props.children !== null) {\n jsxChildrenParents.set(props.children, type);\n }\n }\n if (typeof type === \"function\") {\n if (isClientReference(type)) {\n // This is a reference to a Client Component.\n return [\n REACT_ELEMENT_TYPE,\n type,\n key,\n props\n ];\n } // This is a server-side component.\n prepareToUseHooksForComponent(prevThenableState);\n var result = type(props);\n if (typeof result === \"object\" && result !== null && typeof result.then === \"function\") {\n // When the return value is in children position we can resolve it immediately,\n // to its value without a wrapper if it's synchronously available.\n var thenable = result;\n if (thenable.status === \"fulfilled\") {\n return thenable.value;\n } // TODO: Once we accept Promises as children on the client, we can just return\n // the thenable here.\n return createLazyWrapperAroundWakeable(result);\n }\n return result;\n } else if (typeof type === \"string\") {\n // This is a host element. E.g. HTML.\n return [\n REACT_ELEMENT_TYPE,\n type,\n key,\n props\n ];\n } else if (typeof type === \"symbol\") {\n if (type === REACT_FRAGMENT_TYPE) {\n // For key-less fragments, we add a small optimization to avoid serializing\n // it as a wrapper.\n // TODO: If a key is specified, we should propagate its key to any children.\n // Same as if a Server Component has a key.\n return props.children;\n } // This might be a built-in React component. We'll let the client decide.\n // Any built-in works as long as its props are serializable.\n return [\n REACT_ELEMENT_TYPE,\n type,\n key,\n props\n ];\n } else if (type != null && typeof type === \"object\") {\n if (isClientReference(type)) {\n // This is a reference to a Client Component.\n return [\n REACT_ELEMENT_TYPE,\n type,\n key,\n props\n ];\n }\n switch(type.$$typeof){\n case REACT_LAZY_TYPE:\n {\n var payload = type._payload;\n var init = type._init;\n var wrappedType = init(payload);\n return attemptResolveElement(request, wrappedType, key, ref, props, prevThenableState);\n }\n case REACT_FORWARD_REF_TYPE:\n {\n var render = type.render;\n prepareToUseHooksForComponent(prevThenableState);\n return render(props, undefined);\n }\n case REACT_MEMO_TYPE:\n {\n return attemptResolveElement(request, type.type, key, ref, props, prevThenableState);\n }\n }\n }\n throw new Error(\"Unsupported Server Component type: \" + describeValueForErrorMessage(type));\n }\n function pingTask(request, task) {\n var pingedTasks = request.pingedTasks;\n pingedTasks.push(task);\n if (pingedTasks.length === 1) {\n request.flushScheduled = request.destination !== null;\n scheduleWork(function() {\n return performWork(request);\n });\n }\n }\n function createTask(request, model, context, abortSet) {\n var id = request.nextChunkId++;\n var task = {\n id: id,\n status: PENDING$1,\n model: model,\n context: context,\n ping: function() {\n return pingTask(request, task);\n },\n thenableState: null\n };\n abortSet.add(task);\n return task;\n }\n function serializeByValueID(id) {\n return \"$\" + id.toString(16);\n }\n function serializeLazyID(id) {\n return \"$L\" + id.toString(16);\n }\n function serializePromiseID(id) {\n return \"$@\" + id.toString(16);\n }\n function serializeServerReferenceID(id) {\n return \"$F\" + id.toString(16);\n }\n function serializeSymbolReference(name) {\n return \"$S\" + name;\n }\n function serializeNumber(number) {\n if (Number.isFinite(number)) {\n if (number === 0 && 1 / number === -Infinity) {\n return \"$-0\";\n } else {\n return number;\n }\n } else {\n if (number === Infinity) {\n return \"$Infinity\";\n } else if (number === -Infinity) {\n return \"$-Infinity\";\n } else {\n return \"$NaN\";\n }\n }\n }\n function serializeUndefined() {\n return \"$undefined\";\n }\n function serializeDateFromDateJSON(dateJSON) {\n // JSON.stringify automatically calls Date.prototype.toJSON which calls toISOString.\n // We need only tack on a $D prefix.\n return \"$D\" + dateJSON;\n }\n function serializeBigInt(n) {\n return \"$n\" + n.toString(10);\n }\n function serializeRowHeader(tag, id) {\n return id.toString(16) + \":\" + tag;\n }\n function encodeReferenceChunk(request, id, reference) {\n var json = stringify(reference);\n var row = id.toString(16) + \":\" + json + \"\\n\";\n return stringToChunk(row);\n }\n function serializeClientReference(request, parent, key, clientReference) {\n var clientReferenceKey = getClientReferenceKey(clientReference);\n var writtenClientReferences = request.writtenClientReferences;\n var existingId = writtenClientReferences.get(clientReferenceKey);\n if (existingId !== undefined) {\n if (parent[0] === REACT_ELEMENT_TYPE && key === \"1\") {\n // If we're encoding the \"type\" of an element, we can refer\n // to that by a lazy reference instead of directly since React\n // knows how to deal with lazy values. This lets us suspend\n // on this component rather than its parent until the code has\n // loaded.\n return serializeLazyID(existingId);\n }\n return serializeByValueID(existingId);\n }\n try {\n var clientReferenceMetadata = resolveClientReferenceMetadata(request.bundlerConfig, clientReference);\n request.pendingChunks++;\n var importId = request.nextChunkId++;\n emitImportChunk(request, importId, clientReferenceMetadata);\n writtenClientReferences.set(clientReferenceKey, importId);\n if (parent[0] === REACT_ELEMENT_TYPE && key === \"1\") {\n // If we're encoding the \"type\" of an element, we can refer\n // to that by a lazy reference instead of directly since React\n // knows how to deal with lazy values. This lets us suspend\n // on this component rather than its parent until the code has\n // loaded.\n return serializeLazyID(importId);\n }\n return serializeByValueID(importId);\n } catch (x) {\n request.pendingChunks++;\n var errorId = request.nextChunkId++;\n var digest = logRecoverableError(request, x);\n emitErrorChunk(request, errorId, digest, x);\n return serializeByValueID(errorId);\n }\n }\n function outlineModel(request, value) {\n request.pendingChunks++;\n var newTask = createTask(request, value, getActiveContext(), request.abortableTasks);\n retryTask(request, newTask);\n return newTask.id;\n }\n function serializeServerReference(request, parent, key, serverReference) {\n var writtenServerReferences = request.writtenServerReferences;\n var existingId = writtenServerReferences.get(serverReference);\n if (existingId !== undefined) {\n return serializeServerReferenceID(existingId);\n }\n var bound = getServerReferenceBoundArguments(request.bundlerConfig, serverReference);\n var serverReferenceMetadata = {\n id: getServerReferenceId(request.bundlerConfig, serverReference),\n bound: bound ? Promise.resolve(bound) : null\n };\n var metadataId = outlineModel(request, serverReferenceMetadata);\n writtenServerReferences.set(serverReference, metadataId);\n return serializeServerReferenceID(metadataId);\n }\n function serializeLargeTextString(request, text) {\n request.pendingChunks += 2;\n var textId = request.nextChunkId++;\n var textChunk = stringToChunk(text);\n var binaryLength = byteLengthOfChunk(textChunk);\n var row = textId.toString(16) + \":T\" + binaryLength.toString(16) + \",\";\n var headerChunk = stringToChunk(row);\n request.completedRegularChunks.push(headerChunk, textChunk);\n return serializeByValueID(textId);\n }\n function serializeMap(request, map) {\n var entries = Array.from(map);\n for(var i = 0; i < entries.length; i++){\n var key = entries[i][0];\n if (typeof key === \"object\" && key !== null) {\n var writtenObjects = request.writtenObjects;\n var existingId = writtenObjects.get(key);\n if (existingId === undefined) {\n // Mark all object keys as seen so that they're always outlined.\n writtenObjects.set(key, -1);\n }\n }\n }\n var id = outlineModel(request, entries);\n return \"$Q\" + id.toString(16);\n }\n function serializeSet(request, set) {\n var entries = Array.from(set);\n for(var i = 0; i < entries.length; i++){\n var key = entries[i];\n if (typeof key === \"object\" && key !== null) {\n var writtenObjects = request.writtenObjects;\n var existingId = writtenObjects.get(key);\n if (existingId === undefined) {\n // Mark all object keys as seen so that they're always outlined.\n writtenObjects.set(key, -1);\n }\n }\n }\n var id = outlineModel(request, entries);\n return \"$W\" + id.toString(16);\n }\n function escapeStringValue(value) {\n if (value[0] === \"$\") {\n // We need to escape $ prefixed strings since we use those to encode\n // references to IDs and as special symbol values.\n return \"$\" + value;\n } else {\n return value;\n }\n }\n var modelRoot = false;\n function resolveModelToJSON(request, parent, key, value) {\n // Make sure that `parent[key]` wasn't JSONified before `value` was passed to us\n {\n // $FlowFixMe[incompatible-use]\n var originalValue = parent[key];\n if (typeof originalValue === \"object\" && originalValue !== value && !(originalValue instanceof Date)) {\n if (objectName(originalValue) !== \"Object\") {\n var jsxParentType = jsxChildrenParents.get(parent);\n if (typeof jsxParentType === \"string\") {\n error(\"%s objects cannot be rendered as text children. Try formatting it using toString().%s\", objectName(originalValue), describeObjectForErrorMessage(parent, key));\n } else {\n error(\"Only plain objects can be passed to Client Components from Server Components. \" + \"%s objects are not supported.%s\", objectName(originalValue), describeObjectForErrorMessage(parent, key));\n }\n } else {\n error(\"Only plain objects can be passed to Client Components from Server Components. \" + \"Objects with toJSON methods are not supported. Convert it manually \" + \"to a simple value before passing it to props.%s\", describeObjectForErrorMessage(parent, key));\n }\n }\n }\n switch(value){\n case REACT_ELEMENT_TYPE:\n return \"$\";\n }\n while(typeof value === \"object\" && value !== null && (value.$$typeof === REACT_ELEMENT_TYPE || value.$$typeof === REACT_LAZY_TYPE)){\n try {\n switch(value.$$typeof){\n case REACT_ELEMENT_TYPE:\n {\n var writtenObjects = request.writtenObjects;\n var existingId = writtenObjects.get(value);\n if (existingId !== undefined) {\n if (existingId === -1) {\n // Seen but not yet outlined.\n var newId = outlineModel(request, value);\n return serializeByValueID(newId);\n } else if (modelRoot === value) {\n // This is the ID we're currently emitting so we need to write it\n // once but if we discover it again, we refer to it by id.\n modelRoot = null;\n } else {\n // We've already emitted this as an outlined object, so we can\n // just refer to that by its existing ID.\n return serializeByValueID(existingId);\n }\n } else {\n // This is the first time we've seen this object. We may never see it again\n // so we'll inline it. Mark it as seen. If we see it again, we'll outline.\n writtenObjects.set(value, -1);\n } // TODO: Concatenate keys of parents onto children.\n var element = value; // Attempt to render the Server Component.\n value = attemptResolveElement(request, element.type, element.key, element.ref, element.props, null);\n break;\n }\n case REACT_LAZY_TYPE:\n {\n var payload = value._payload;\n var init = value._init;\n value = init(payload);\n break;\n }\n }\n } catch (thrownValue) {\n var x = thrownValue === SuspenseException ? // reasons, the rest of the Suspense implementation expects the thrown\n // value to be a thenable, because before `use` existed that was the\n // (unstable) API for suspending. This implementation detail can change\n // later, once we deprecate the old API in favor of `use`.\n getSuspendedThenable() : thrownValue;\n if (typeof x === \"object\" && x !== null) {\n // $FlowFixMe[method-unbinding]\n if (typeof x.then === \"function\") {\n // Something suspended, we'll need to create a new task and resolve it later.\n request.pendingChunks++;\n var newTask = createTask(request, value, getActiveContext(), request.abortableTasks);\n var ping = newTask.ping;\n x.then(ping, ping);\n newTask.thenableState = getThenableStateAfterSuspending();\n return serializeLazyID(newTask.id);\n }\n } // Something errored. We'll still send everything we have up until this point.\n // We'll replace this element with a lazy reference that throws on the client\n // once it gets rendered.\n request.pendingChunks++;\n var errorId = request.nextChunkId++;\n var digest = logRecoverableError(request, x);\n emitErrorChunk(request, errorId, digest, x);\n return serializeLazyID(errorId);\n }\n }\n if (value === null) {\n return null;\n }\n if (typeof value === \"object\") {\n if (isClientReference(value)) {\n return serializeClientReference(request, parent, key, value);\n }\n var _writtenObjects = request.writtenObjects;\n var _existingId = _writtenObjects.get(value); // $FlowFixMe[method-unbinding]\n if (typeof value.then === \"function\") {\n if (_existingId !== undefined) {\n if (modelRoot === value) {\n // This is the ID we're currently emitting so we need to write it\n // once but if we discover it again, we refer to it by id.\n modelRoot = null;\n } else {\n // We've seen this promise before, so we can just refer to the same result.\n return serializePromiseID(_existingId);\n }\n } // We assume that any object with a .then property is a \"Thenable\" type,\n // or a Promise type. Either of which can be represented by a Promise.\n var promiseId = serializeThenable(request, value);\n _writtenObjects.set(value, promiseId);\n return serializePromiseID(promiseId);\n }\n if (_existingId !== undefined) {\n if (_existingId === -1) {\n // Seen but not yet outlined.\n var _newId = outlineModel(request, value);\n return serializeByValueID(_newId);\n } else if (modelRoot === value) {\n // This is the ID we're currently emitting so we need to write it\n // once but if we discover it again, we refer to it by id.\n modelRoot = null;\n } else {\n // We've already emitted this as an outlined object, so we can\n // just refer to that by its existing ID.\n return serializeByValueID(_existingId);\n }\n } else {\n // This is the first time we've seen this object. We may never see it again\n // so we'll inline it. Mark it as seen. If we see it again, we'll outline.\n _writtenObjects.set(value, -1);\n }\n if (isArray(value)) {\n // $FlowFixMe[incompatible-return]\n return value;\n }\n if (value instanceof Map) {\n return serializeMap(request, value);\n }\n if (value instanceof Set) {\n return serializeSet(request, value);\n }\n var iteratorFn = getIteratorFn(value);\n if (iteratorFn) {\n return Array.from(value);\n } // Verify that this is a simple plain object.\n var proto = getPrototypeOf(value);\n if (proto !== ObjectPrototype && (proto === null || getPrototypeOf(proto) !== null)) {\n throw new Error(\"Only plain objects, and a few built-ins, can be passed to Client Components \" + \"from Server Components. Classes or null prototypes are not supported.\");\n }\n {\n if (objectName(value) !== \"Object\") {\n error(\"Only plain objects can be passed to Client Components from Server Components. \" + \"%s objects are not supported.%s\", objectName(value), describeObjectForErrorMessage(parent, key));\n } else if (!isSimpleObject(value)) {\n error(\"Only plain objects can be passed to Client Components from Server Components. \" + \"Classes or other objects with methods are not supported.%s\", describeObjectForErrorMessage(parent, key));\n } else if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(value);\n if (symbols.length > 0) {\n error(\"Only plain objects can be passed to Client Components from Server Components. \" + \"Objects with symbol properties like %s are not supported.%s\", symbols[0].description, describeObjectForErrorMessage(parent, key));\n }\n }\n }\n return value;\n }\n if (typeof value === \"string\") {\n if (value[value.length - 1] === \"Z\") {\n // Possibly a Date, whose toJSON automatically calls toISOString\n // $FlowFixMe[incompatible-use]\n var _originalValue = parent[key];\n if (_originalValue instanceof Date) {\n return serializeDateFromDateJSON(value);\n }\n }\n if (value.length >= 1024) {\n // For large strings, we encode them outside the JSON payload so that we\n // don't have to double encode and double parse the strings. This can also\n // be more compact in case the string has a lot of escaped characters.\n return serializeLargeTextString(request, value);\n }\n return escapeStringValue(value);\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n if (typeof value === \"number\") {\n return serializeNumber(value);\n }\n if (typeof value === \"undefined\") {\n return serializeUndefined();\n }\n if (typeof value === \"function\") {\n if (isClientReference(value)) {\n return serializeClientReference(request, parent, key, value);\n }\n if (isServerReference(value)) {\n return serializeServerReference(request, parent, key, value);\n }\n if (/^on[A-Z]/.test(key)) {\n throw new Error(\"Event handlers cannot be passed to Client Component props.\" + describeObjectForErrorMessage(parent, key) + \"\\nIf you need interactivity, consider converting part of this to a Client Component.\");\n } else {\n throw new Error(\"Functions cannot be passed directly to Client Components \" + 'unless you explicitly expose it by marking it with \"use server\".' + describeObjectForErrorMessage(parent, key));\n }\n }\n if (typeof value === \"symbol\") {\n var writtenSymbols = request.writtenSymbols;\n var _existingId2 = writtenSymbols.get(value);\n if (_existingId2 !== undefined) {\n return serializeByValueID(_existingId2);\n } // $FlowFixMe[incompatible-type] `description` might be undefined\n var name = value.description;\n if (Symbol.for(name) !== value) {\n throw new Error(\"Only global symbols received from Symbol.for(...) can be passed to Client Components. \" + (\"The symbol Symbol.for(\" + // $FlowFixMe[incompatible-type] `description` might be undefined\n value.description + \") cannot be found among global symbols.\") + describeObjectForErrorMessage(parent, key));\n }\n request.pendingChunks++;\n var symbolId = request.nextChunkId++;\n emitSymbolChunk(request, symbolId, name);\n writtenSymbols.set(value, symbolId);\n return serializeByValueID(symbolId);\n }\n if (typeof value === \"bigint\") {\n return serializeBigInt(value);\n }\n throw new Error(\"Type \" + typeof value + \" is not supported in Client Component props.\" + describeObjectForErrorMessage(parent, key));\n }\n function logPostpone(request, reason) {\n var onPostpone = request.onPostpone;\n onPostpone(reason);\n }\n function logRecoverableError(request, error) {\n var onError = request.onError;\n var errorDigest = onError(error);\n if (errorDigest != null && typeof errorDigest !== \"string\") {\n // eslint-disable-next-line react-internal/prod-error-codes\n throw new Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"' + typeof errorDigest + '\" instead');\n }\n return errorDigest || \"\";\n }\n function fatalError(request, error) {\n if (request.destination !== null) {\n request.status = CLOSED;\n closeWithError(request.destination, error);\n } else {\n request.status = CLOSING;\n request.fatalError = error;\n }\n }\n function emitPostponeChunk(request, id, postponeInstance) {\n var row;\n {\n var reason = \"\";\n var stack = \"\";\n try {\n // eslint-disable-next-line react-internal/safe-string-coercion\n reason = String(postponeInstance.message); // eslint-disable-next-line react-internal/safe-string-coercion\n stack = String(postponeInstance.stack);\n } catch (x) {}\n row = serializeRowHeader(\"P\", id) + stringify({\n reason: reason,\n stack: stack\n }) + \"\\n\";\n }\n var processedChunk = stringToChunk(row);\n request.completedErrorChunks.push(processedChunk);\n }\n function emitErrorChunk(request, id, digest, error) {\n var errorInfo;\n {\n var message;\n var stack = \"\";\n try {\n if (error instanceof Error) {\n // eslint-disable-next-line react-internal/safe-string-coercion\n message = String(error.message); // eslint-disable-next-line react-internal/safe-string-coercion\n stack = String(error.stack);\n } else {\n message = \"Error: \" + error;\n }\n } catch (x) {\n message = \"An error occurred but serializing the error message failed.\";\n }\n errorInfo = {\n digest: digest,\n message: message,\n stack: stack\n };\n }\n var row = serializeRowHeader(\"E\", id) + stringify(errorInfo) + \"\\n\";\n var processedChunk = stringToChunk(row);\n request.completedErrorChunks.push(processedChunk);\n }\n function emitImportChunk(request, id, clientReferenceMetadata) {\n // $FlowFixMe[incompatible-type] stringify can return null\n var json = stringify(clientReferenceMetadata);\n var row = serializeRowHeader(\"I\", id) + json + \"\\n\";\n var processedChunk = stringToChunk(row);\n request.completedImportChunks.push(processedChunk);\n }\n function emitHintChunk(request, code, model) {\n var json = stringify(model);\n var id = request.nextChunkId++;\n var row = serializeRowHeader(\"H\" + code, id) + json + \"\\n\";\n var processedChunk = stringToChunk(row);\n request.completedHintChunks.push(processedChunk);\n }\n function emitSymbolChunk(request, id, name) {\n var symbolReference = serializeSymbolReference(name);\n var processedChunk = encodeReferenceChunk(request, id, symbolReference);\n request.completedImportChunks.push(processedChunk);\n }\n function emitModelChunk(request, id, model) {\n // Track the root so we know that we have to emit this object even though it\n // already has an ID. This is needed because we might see this object twice\n // in the same toJSON if it is cyclic.\n modelRoot = model; // $FlowFixMe[incompatible-type] stringify can return null\n var json = stringify(model, request.toJSON);\n var row = id.toString(16) + \":\" + json + \"\\n\";\n var processedChunk = stringToChunk(row);\n request.completedRegularChunks.push(processedChunk);\n }\n function retryTask(request, task) {\n if (task.status !== PENDING$1) {\n // We completed this by other means before we had a chance to retry it.\n return;\n }\n switchContext(task.context);\n try {\n var value = task.model;\n if (typeof value === \"object\" && value !== null && value.$$typeof === REACT_ELEMENT_TYPE) {\n request.writtenObjects.set(value, task.id); // TODO: Concatenate keys of parents onto children.\n var element = value; // When retrying a component, reuse the thenableState from the\n // previous attempt.\n var prevThenableState = task.thenableState; // Attempt to render the Server Component.\n // Doing this here lets us reuse this same task if the next component\n // also suspends.\n task.model = value;\n value = attemptResolveElement(request, element.type, element.key, element.ref, element.props, prevThenableState); // Successfully finished this component. We're going to keep rendering\n // using the same task, but we reset its thenable state before continuing.\n task.thenableState = null; // Keep rendering and reuse the same task. This inner loop is separate\n // from the render above because we don't need to reset the thenable state\n // until the next time something suspends and retries.\n while(typeof value === \"object\" && value !== null && value.$$typeof === REACT_ELEMENT_TYPE){\n request.writtenObjects.set(value, task.id); // TODO: Concatenate keys of parents onto children.\n var nextElement = value;\n task.model = value;\n value = attemptResolveElement(request, nextElement.type, nextElement.key, nextElement.ref, nextElement.props, null);\n }\n } // Track that this object is outlined and has an id.\n if (typeof value === \"object\" && value !== null) {\n request.writtenObjects.set(value, task.id);\n }\n emitModelChunk(request, task.id, value);\n request.abortableTasks.delete(task);\n task.status = COMPLETED;\n } catch (thrownValue) {\n var x = thrownValue === SuspenseException ? // reasons, the rest of the Suspense implementation expects the thrown\n // value to be a thenable, because before `use` existed that was the\n // (unstable) API for suspending. This implementation detail can change\n // later, once we deprecate the old API in favor of `use`.\n getSuspendedThenable() : thrownValue;\n if (typeof x === \"object\" && x !== null) {\n // $FlowFixMe[method-unbinding]\n if (typeof x.then === \"function\") {\n // Something suspended again, let's pick it back up later.\n var ping = task.ping;\n x.then(ping, ping);\n task.thenableState = getThenableStateAfterSuspending();\n return;\n }\n }\n request.abortableTasks.delete(task);\n task.status = ERRORED$1;\n var digest = logRecoverableError(request, x);\n emitErrorChunk(request, task.id, digest, x);\n }\n }\n function performWork(request) {\n var prevDispatcher = ReactCurrentDispatcher.current;\n ReactCurrentDispatcher.current = HooksDispatcher;\n var prevRequest = currentRequest;\n currentRequest = request;\n prepareToUseHooksForRequest(request);\n try {\n var pingedTasks = request.pingedTasks;\n request.pingedTasks = [];\n for(var i = 0; i < pingedTasks.length; i++){\n var task = pingedTasks[i];\n retryTask(request, task);\n }\n if (request.destination !== null) {\n flushCompletedChunks(request, request.destination);\n }\n } catch (error) {\n logRecoverableError(request, error);\n fatalError(request, error);\n } finally{\n ReactCurrentDispatcher.current = prevDispatcher;\n resetHooksForRequest();\n currentRequest = prevRequest;\n }\n }\n function abortTask(task, request, errorId) {\n task.status = ABORTED; // Instead of emitting an error per task.id, we emit a model that only\n // has a single value referencing the error.\n var ref = serializeByValueID(errorId);\n var processedChunk = encodeReferenceChunk(request, task.id, ref);\n request.completedErrorChunks.push(processedChunk);\n }\n function flushCompletedChunks(request, destination) {\n beginWriting();\n try {\n // We emit module chunks first in the stream so that\n // they can be preloaded as early as possible.\n var importsChunks = request.completedImportChunks;\n var i = 0;\n for(; i < importsChunks.length; i++){\n request.pendingChunks--;\n var chunk = importsChunks[i];\n var keepWriting = writeChunkAndReturn(destination, chunk);\n if (!keepWriting) {\n request.destination = null;\n i++;\n break;\n }\n }\n importsChunks.splice(0, i); // Next comes hints.\n var hintChunks = request.completedHintChunks;\n i = 0;\n for(; i < hintChunks.length; i++){\n var _chunk = hintChunks[i];\n var _keepWriting = writeChunkAndReturn(destination, _chunk);\n if (!_keepWriting) {\n request.destination = null;\n i++;\n break;\n }\n }\n hintChunks.splice(0, i); // Next comes model data.\n var regularChunks = request.completedRegularChunks;\n i = 0;\n for(; i < regularChunks.length; i++){\n request.pendingChunks--;\n var _chunk2 = regularChunks[i];\n var _keepWriting2 = writeChunkAndReturn(destination, _chunk2);\n if (!_keepWriting2) {\n request.destination = null;\n i++;\n break;\n }\n }\n regularChunks.splice(0, i); // Finally, errors are sent. The idea is that it's ok to delay\n // any error messages and prioritize display of other parts of\n // the page.\n var errorChunks = request.completedErrorChunks;\n i = 0;\n for(; i < errorChunks.length; i++){\n request.pendingChunks--;\n var _chunk3 = errorChunks[i];\n var _keepWriting3 = writeChunkAndReturn(destination, _chunk3);\n if (!_keepWriting3) {\n request.destination = null;\n i++;\n break;\n }\n }\n errorChunks.splice(0, i);\n } finally{\n request.flushScheduled = false;\n completeWriting(destination);\n }\n if (request.pendingChunks === 0) {\n close$1(destination);\n }\n }\n function startWork(request) {\n request.flushScheduled = request.destination !== null;\n if (supportsRequestStorage) {\n scheduleWork(function() {\n return requestStorage.run(request, performWork, request);\n });\n } else {\n scheduleWork(function() {\n return performWork(request);\n });\n }\n }\n function enqueueFlush(request) {\n if (request.flushScheduled === false && // If there are pinged tasks we are going to flush anyway after work completes\n request.pingedTasks.length === 0 && // If there is no destination there is nothing we can flush to. A flush will\n // happen when we start flowing again\n request.destination !== null) {\n var destination = request.destination;\n request.flushScheduled = true;\n scheduleWork(function() {\n return flushCompletedChunks(request, destination);\n });\n }\n }\n function startFlowing(request, destination) {\n if (request.status === CLOSING) {\n request.status = CLOSED;\n closeWithError(destination, request.fatalError);\n return;\n }\n if (request.status === CLOSED) {\n return;\n }\n if (request.destination !== null) {\n // We're already flowing.\n return;\n }\n request.destination = destination;\n try {\n flushCompletedChunks(request, destination);\n } catch (error) {\n logRecoverableError(request, error);\n fatalError(request, error);\n }\n }\n function stopFlowing(request) {\n request.destination = null;\n } // This is called to early terminate a request. It creates an error at all pending tasks.\n function abort(request, reason) {\n try {\n var abortableTasks = request.abortableTasks;\n if (abortableTasks.size > 0) {\n // We have tasks to abort. We'll emit one error row and then emit a reference\n // to that row from every row that's still remaining.\n request.pendingChunks++;\n var errorId = request.nextChunkId++;\n var postponeInstance;\n if (enablePostpone && typeof reason === \"object\" && reason !== null && reason.$$typeof === REACT_POSTPONE_TYPE) ;\n else {\n var error = reason === undefined ? new Error(\"The render was aborted by the server without a reason.\") : reason;\n var digest = logRecoverableError(request, error);\n emitErrorChunk(request, errorId, digest, error);\n }\n abortableTasks.forEach(function(task) {\n return abortTask(task, request, errorId);\n });\n abortableTasks.clear();\n }\n if (request.destination !== null) {\n flushCompletedChunks(request, request.destination);\n }\n } catch (error) {\n logRecoverableError(request, error);\n fatalError(request, error);\n }\n }\n function importServerContexts(contexts) {\n return rootContextSnapshot;\n }\n // This is the parsed shape of the wire format which is why it is\n // condensed to only the essentialy information\n var ID = 0;\n var CHUNKS = 1;\n var NAME = 2; // export const ASYNC = 3;\n // This logic is correct because currently only include the 4th tuple member\n // when the module is async. If that changes we will need to actually assert\n // the value is true. We don't index into the 4th slot because flow does not\n // like the potential out of bounds access\n function isAsyncImport(metadata) {\n return metadata.length === 4;\n }\n function resolveServerReference(bundlerConfig, id) {\n var name = \"\";\n var resolvedModuleData = bundlerConfig[id];\n if (resolvedModuleData) {\n // The potentially aliased name.\n name = resolvedModuleData.name;\n } else {\n // We didn't find this specific export name but we might have the * export\n // which contains this name as well.\n // TODO: It's unfortunate that we now have to parse this string. We should\n // probably go back to encoding path and name separately on the client reference.\n var idx = id.lastIndexOf(\"#\");\n if (idx !== -1) {\n name = id.slice(idx + 1);\n resolvedModuleData = bundlerConfig[id.slice(0, idx)];\n }\n if (!resolvedModuleData) {\n throw new Error('Could not find the module \"' + id + '\" in the React Server Manifest. ' + \"This is probably a bug in the React Server Components bundler.\");\n }\n } // TODO: This needs to return async: true if it's an async module.\n return [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name\n ];\n } // The chunk cache contains all the chunks we've preloaded so far.\n // If they're still pending they're a thenable. This map also exists\n // in Webpack but unfortunately it's not exposed so we have to\n // replicate it in user space. null means that it has already loaded.\n var chunkCache = new Map();\n function requireAsyncModule(id) {\n // We've already loaded all the chunks. We can require the module.\n var promise = globalThis.__next_require__(id);\n if (typeof promise.then !== \"function\") {\n // This wasn't a promise after all.\n return null;\n } else if (promise.status === \"fulfilled\") {\n // This module was already resolved earlier.\n return null;\n } else {\n // Instrument the Promise to stash the result.\n promise.then(function(value) {\n var fulfilledThenable = promise;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = value;\n }, function(reason) {\n var rejectedThenable = promise;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = reason;\n });\n return promise;\n }\n }\n function ignoreReject() {} // Start preloading the modules since we might need them soon.\n // This function doesn't suspend.\n function preloadModule(metadata) {\n var chunks = metadata[CHUNKS];\n var promises = [];\n var i = 0;\n while(i < chunks.length){\n var chunkId = chunks[i++];\n chunks[i++];\n var entry = chunkCache.get(chunkId);\n if (entry === undefined) {\n var thenable = loadChunk(chunkId);\n promises.push(thenable); // $FlowFixMe[method-unbinding]\n var resolve = chunkCache.set.bind(chunkCache, chunkId, null);\n thenable.then(resolve, ignoreReject);\n chunkCache.set(chunkId, thenable);\n } else if (entry !== null) {\n promises.push(entry);\n }\n }\n if (isAsyncImport(metadata)) {\n if (promises.length === 0) {\n return requireAsyncModule(metadata[ID]);\n } else {\n return Promise.all(promises).then(function() {\n return requireAsyncModule(metadata[ID]);\n });\n }\n } else if (promises.length > 0) {\n return Promise.all(promises);\n } else {\n return null;\n }\n } // Actually require the module or suspend if it's not yet ready.\n // Increase priority if necessary.\n function requireModule(metadata) {\n var moduleExports = globalThis.__next_require__(metadata[ID]);\n if (isAsyncImport(metadata)) {\n if (typeof moduleExports.then !== \"function\") ;\n else if (moduleExports.status === \"fulfilled\") {\n // This Promise should've been instrumented by preloadModule.\n moduleExports = moduleExports.value;\n } else {\n throw moduleExports.reason;\n }\n }\n if (metadata[NAME] === \"*\") {\n // This is a placeholder value that represents that the caller imported this\n // as a CommonJS module as is.\n return moduleExports;\n }\n if (metadata[NAME] === \"\") {\n // This is a placeholder value that represents that the caller accessed the\n // default property of this if it was an ESM interop module.\n return moduleExports.__esModule ? moduleExports.default : moduleExports;\n }\n return moduleExports[metadata[NAME]];\n }\n function loadChunk(chunkId, filename) {\n return __webpack_require__.e(chunkId);\n }\n // The server acts as a Client of itself when resolving Server References.\n var PENDING = \"pending\";\n var BLOCKED = \"blocked\";\n var RESOLVED_MODEL = \"resolved_model\";\n var INITIALIZED = \"fulfilled\";\n var ERRORED = \"rejected\"; // $FlowFixMe[missing-this-annot]\n function Chunk(status, value, reason, response) {\n this.status = status;\n this.value = value;\n this.reason = reason;\n this._response = response;\n } // We subclass Promise.prototype so that we get other methods like .catch\n Chunk.prototype = Object.create(Promise.prototype); // TODO: This doesn't return a new Promise chain unlike the real .then\n Chunk.prototype.then = function(resolve, reject) {\n var chunk = this; // If we have resolved content, we try to initialize it first which\n // might put us back into one of the other states.\n switch(chunk.status){\n case RESOLVED_MODEL:\n initializeModelChunk(chunk);\n break;\n } // The status might have changed after initialization.\n switch(chunk.status){\n case INITIALIZED:\n resolve(chunk.value);\n break;\n case PENDING:\n case BLOCKED:\n if (resolve) {\n if (chunk.value === null) {\n chunk.value = [];\n }\n chunk.value.push(resolve);\n }\n if (reject) {\n if (chunk.reason === null) {\n chunk.reason = [];\n }\n chunk.reason.push(reject);\n }\n break;\n default:\n reject(chunk.reason);\n break;\n }\n };\n function getRoot(response) {\n var chunk = getChunk(response, 0);\n return chunk;\n }\n function createPendingChunk(response) {\n // $FlowFixMe[invalid-constructor] Flow doesn't support functions as constructors\n return new Chunk(PENDING, null, null, response);\n }\n function wakeChunk(listeners, value) {\n for(var i = 0; i < listeners.length; i++){\n var listener = listeners[i];\n listener(value);\n }\n }\n function triggerErrorOnChunk(chunk, error) {\n if (chunk.status !== PENDING && chunk.status !== BLOCKED) {\n // We already resolved. We didn't expect to see this.\n return;\n }\n var listeners = chunk.reason;\n var erroredChunk = chunk;\n erroredChunk.status = ERRORED;\n erroredChunk.reason = error;\n if (listeners !== null) {\n wakeChunk(listeners, error);\n }\n }\n function createResolvedModelChunk(response, value) {\n // $FlowFixMe[invalid-constructor] Flow doesn't support functions as constructors\n return new Chunk(RESOLVED_MODEL, value, null, response);\n }\n function bindArgs$1(fn, args) {\n return fn.bind.apply(fn, [\n null\n ].concat(args));\n }\n function loadServerReference$1(response, id, bound, parentChunk, parentObject, key) {\n var serverReference = resolveServerReference(response._bundlerConfig, id); // We expect most servers to not really need this because you'd just have all\n // the relevant modules already loaded but it allows for lazy loading of code\n // if needed.\n var preloadPromise = preloadModule(serverReference);\n var promise;\n if (bound) {\n promise = Promise.all([\n bound,\n preloadPromise\n ]).then(function(_ref) {\n var args = _ref[0];\n return bindArgs$1(requireModule(serverReference), args);\n });\n } else {\n if (preloadPromise) {\n promise = Promise.resolve(preloadPromise).then(function() {\n return requireModule(serverReference);\n });\n } else {\n // Synchronously available\n return requireModule(serverReference);\n }\n }\n promise.then(createModelResolver(parentChunk, parentObject, key), createModelReject(parentChunk)); // We need a placeholder value that will be replaced later.\n return null;\n }\n var initializingChunk = null;\n var initializingChunkBlockedModel = null;\n function initializeModelChunk(chunk) {\n var prevChunk = initializingChunk;\n var prevBlocked = initializingChunkBlockedModel;\n initializingChunk = chunk;\n initializingChunkBlockedModel = null;\n try {\n var value = JSON.parse(chunk.value, chunk._response._fromJSON);\n if (initializingChunkBlockedModel !== null && initializingChunkBlockedModel.deps > 0) {\n initializingChunkBlockedModel.value = value; // We discovered new dependencies on modules that are not yet resolved.\n // We have to go the BLOCKED state until they're resolved.\n var blockedChunk = chunk;\n blockedChunk.status = BLOCKED;\n blockedChunk.value = null;\n blockedChunk.reason = null;\n } else {\n var initializedChunk = chunk;\n initializedChunk.status = INITIALIZED;\n initializedChunk.value = value;\n }\n } catch (error) {\n var erroredChunk = chunk;\n erroredChunk.status = ERRORED;\n erroredChunk.reason = error;\n } finally{\n initializingChunk = prevChunk;\n initializingChunkBlockedModel = prevBlocked;\n }\n } // Report that any missing chunks in the model is now going to throw this\n // error upon read. Also notify any pending promises.\n function reportGlobalError(response, error) {\n response._chunks.forEach(function(chunk) {\n // If this chunk was already resolved or errored, it won't\n // trigger an error but if it wasn't then we need to\n // because we won't be getting any new data to resolve it.\n if (chunk.status === PENDING) {\n triggerErrorOnChunk(chunk, error);\n }\n });\n }\n function getChunk(response, id) {\n var chunks = response._chunks;\n var chunk = chunks.get(id);\n if (!chunk) {\n var prefix = response._prefix;\n var key = prefix + id; // Check if we have this field in the backing store already.\n var backingEntry = response._formData.get(key);\n if (backingEntry != null) {\n // We assume that this is a string entry for now.\n chunk = createResolvedModelChunk(response, backingEntry);\n } else {\n // We're still waiting on this entry to stream in.\n chunk = createPendingChunk(response);\n }\n chunks.set(id, chunk);\n }\n return chunk;\n }\n function createModelResolver(chunk, parentObject, key) {\n var blocked;\n if (initializingChunkBlockedModel) {\n blocked = initializingChunkBlockedModel;\n blocked.deps++;\n } else {\n blocked = initializingChunkBlockedModel = {\n deps: 1,\n value: null\n };\n }\n return function(value) {\n parentObject[key] = value;\n blocked.deps--;\n if (blocked.deps === 0) {\n if (chunk.status !== BLOCKED) {\n return;\n }\n var resolveListeners = chunk.value;\n var initializedChunk = chunk;\n initializedChunk.status = INITIALIZED;\n initializedChunk.value = blocked.value;\n if (resolveListeners !== null) {\n wakeChunk(resolveListeners, blocked.value);\n }\n }\n };\n }\n function createModelReject(chunk) {\n return function(error) {\n return triggerErrorOnChunk(chunk, error);\n };\n }\n function getOutlinedModel(response, id) {\n var chunk = getChunk(response, id);\n if (chunk.status === RESOLVED_MODEL) {\n initializeModelChunk(chunk);\n }\n if (chunk.status !== INITIALIZED) {\n // We know that this is emitted earlier so otherwise it's an error.\n throw chunk.reason;\n }\n return chunk.value;\n }\n function parseModelString(response, parentObject, key, value) {\n if (value[0] === \"$\") {\n switch(value[1]){\n case \"$\":\n {\n // This was an escaped string value.\n return value.slice(1);\n }\n case \"@\":\n {\n // Promise\n var id = parseInt(value.slice(2), 16);\n var chunk = getChunk(response, id);\n return chunk;\n }\n case \"S\":\n {\n // Symbol\n return Symbol.for(value.slice(2));\n }\n case \"F\":\n {\n // Server Reference\n var _id = parseInt(value.slice(2), 16); // TODO: Just encode this in the reference inline instead of as a model.\n var metaData = getOutlinedModel(response, _id);\n return loadServerReference$1(response, metaData.id, metaData.bound, initializingChunk, parentObject, key);\n }\n case \"Q\":\n {\n // Map\n var _id2 = parseInt(value.slice(2), 16);\n var data = getOutlinedModel(response, _id2);\n return new Map(data);\n }\n case \"W\":\n {\n // Set\n var _id3 = parseInt(value.slice(2), 16);\n var _data = getOutlinedModel(response, _id3);\n return new Set(_data);\n }\n case \"K\":\n {\n // FormData\n var stringId = value.slice(2);\n var formPrefix = response._prefix + stringId + \"_\";\n var _data2 = new FormData();\n var backingFormData = response._formData; // We assume that the reference to FormData always comes after each\n // entry that it references so we can assume they all exist in the\n // backing store already.\n // $FlowFixMe[prop-missing] FormData has forEach on it.\n backingFormData.forEach(function(entry, entryKey) {\n if (entryKey.startsWith(formPrefix)) {\n _data2.append(entryKey.slice(formPrefix.length), entry);\n }\n });\n return _data2;\n }\n case \"I\":\n {\n // $Infinity\n return Infinity;\n }\n case \"-\":\n {\n // $-0 or $-Infinity\n if (value === \"$-0\") {\n return -0;\n } else {\n return -Infinity;\n }\n }\n case \"N\":\n {\n // $NaN\n return NaN;\n }\n case \"u\":\n {\n // matches \"$undefined\"\n // Special encoding for `undefined` which can't be serialized as JSON otherwise.\n return undefined;\n }\n case \"D\":\n {\n // Date\n return new Date(Date.parse(value.slice(2)));\n }\n case \"n\":\n {\n // BigInt\n return BigInt(value.slice(2));\n }\n default:\n {\n // We assume that anything else is a reference ID.\n var _id4 = parseInt(value.slice(1), 16);\n var _chunk = getChunk(response, _id4);\n switch(_chunk.status){\n case RESOLVED_MODEL:\n initializeModelChunk(_chunk);\n break;\n } // The status might have changed after initialization.\n switch(_chunk.status){\n case INITIALIZED:\n return _chunk.value;\n case PENDING:\n case BLOCKED:\n var parentChunk = initializingChunk;\n _chunk.then(createModelResolver(parentChunk, parentObject, key), createModelReject(parentChunk));\n return null;\n default:\n throw _chunk.reason;\n }\n }\n }\n }\n return value;\n }\n function createResponse(bundlerConfig, formFieldPrefix) {\n var backingFormData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new FormData();\n var chunks = new Map();\n var response = {\n _bundlerConfig: bundlerConfig,\n _prefix: formFieldPrefix,\n _formData: backingFormData,\n _chunks: chunks,\n _fromJSON: function(key, value) {\n if (typeof value === \"string\") {\n // We can't use .bind here because we need the \"this\" value.\n return parseModelString(response, this, key, value);\n }\n return value;\n }\n };\n return response;\n }\n function close(response) {\n // In case there are any remaining unresolved chunks, they won't\n // be resolved now. So we need to issue an error to those.\n // Ideally we should be able to early bail out if we kept a\n // ref count of pending chunks.\n reportGlobalError(response, new Error(\"Connection closed.\"));\n }\n function bindArgs(fn, args) {\n return fn.bind.apply(fn, [\n null\n ].concat(args));\n }\n function loadServerReference(bundlerConfig, id, bound) {\n var serverReference = resolveServerReference(bundlerConfig, id); // We expect most servers to not really need this because you'd just have all\n // the relevant modules already loaded but it allows for lazy loading of code\n // if needed.\n var preloadPromise = preloadModule(serverReference);\n if (bound) {\n return Promise.all([\n bound,\n preloadPromise\n ]).then(function(_ref) {\n var args = _ref[0];\n return bindArgs(requireModule(serverReference), args);\n });\n } else if (preloadPromise) {\n return Promise.resolve(preloadPromise).then(function() {\n return requireModule(serverReference);\n });\n } else {\n // Synchronously available\n return Promise.resolve(requireModule(serverReference));\n }\n }\n function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {\n // The data for this reference is encoded in multiple fields under this prefix.\n var actionResponse = createResponse(serverManifest, formFieldPrefix, body);\n close(actionResponse);\n var refPromise = getRoot(actionResponse); // Force it to initialize\n // $FlowFixMe\n refPromise.then(function() {});\n if (refPromise.status !== \"fulfilled\") {\n // $FlowFixMe\n throw refPromise.reason;\n }\n return refPromise.value;\n }\n function decodeAction(body, serverManifest) {\n // We're going to create a new formData object that holds all the fields except\n // the implementation details of the action data.\n var formData = new FormData();\n var action = null; // $FlowFixMe[prop-missing]\n body.forEach(function(value, key) {\n if (!key.startsWith(\"$ACTION_\")) {\n formData.append(key, value);\n return;\n } // Later actions may override earlier actions if a button is used to override the default\n // form action.\n if (key.startsWith(\"$ACTION_REF_\")) {\n var formFieldPrefix = \"$ACTION_\" + key.slice(12) + \":\";\n var metaData = decodeBoundActionMetaData(body, serverManifest, formFieldPrefix);\n action = loadServerReference(serverManifest, metaData.id, metaData.bound);\n return;\n }\n if (key.startsWith(\"$ACTION_ID_\")) {\n var id = key.slice(11);\n action = loadServerReference(serverManifest, id, null);\n return;\n }\n });\n if (action === null) {\n return null;\n } // Return the action with the remaining FormData bound to the first argument.\n return action.then(function(fn) {\n return fn.bind(null, formData);\n });\n }\n function decodeFormState(actionResult, body, serverManifest) {\n var keyPath = body.get(\"$ACTION_KEY\");\n if (typeof keyPath !== \"string\") {\n // This form submission did not include any form state.\n return Promise.resolve(null);\n } // Search through the form data object to get the reference id and the number\n // of bound arguments. This repeats some of the work done in decodeAction.\n var metaData = null; // $FlowFixMe[prop-missing]\n body.forEach(function(value, key) {\n if (key.startsWith(\"$ACTION_REF_\")) {\n var formFieldPrefix = \"$ACTION_\" + key.slice(12) + \":\";\n metaData = decodeBoundActionMetaData(body, serverManifest, formFieldPrefix);\n } // We don't check for the simple $ACTION_ID_ case because form state actions\n // are always bound to the state argument.\n });\n if (metaData === null) {\n // Should be unreachable.\n return Promise.resolve(null);\n }\n var referenceId = metaData.id;\n return Promise.resolve(metaData.bound).then(function(bound) {\n if (bound === null) {\n // Should be unreachable because form state actions are always bound to the\n // state argument.\n return null;\n } // The form action dispatch method is always bound to the initial state.\n // But when comparing signatures, we compare to the original unbound action.\n // Subtract one from the arity to account for this.\n var boundArity = bound.length - 1;\n return [\n actionResult,\n keyPath,\n referenceId,\n boundArity\n ];\n });\n }\n function renderToReadableStream(model, webpackMap, options) {\n var request = createRequest(model, webpackMap, options ? options.onError : undefined, options ? options.context : undefined, options ? options.identifierPrefix : undefined, options ? options.onPostpone : undefined);\n if (options && options.signal) {\n var signal = options.signal;\n if (signal.aborted) {\n abort(request, signal.reason);\n } else {\n var listener = function() {\n abort(request, signal.reason);\n signal.removeEventListener(\"abort\", listener);\n };\n signal.addEventListener(\"abort\", listener);\n }\n }\n var stream = new ReadableStream({\n type: \"bytes\",\n start: function(controller) {\n startWork(request);\n },\n pull: function(controller) {\n startFlowing(request, controller);\n },\n cancel: function(reason) {\n stopFlowing(request);\n abort(request, reason);\n }\n }, {\n highWaterMark: 0\n });\n return stream;\n }\n function decodeReply(body, webpackMap) {\n if (typeof body === \"string\") {\n var form = new FormData();\n form.append(\"0\", body);\n body = form;\n }\n var response = createResponse(webpackMap, \"\", body);\n var root = getRoot(response);\n close(response);\n return root;\n }\n exports.createClientModuleProxy = createClientModuleProxy;\n exports.decodeAction = decodeAction;\n exports.decodeFormState = decodeFormState;\n exports.decodeReply = decodeReply;\n exports.registerClientReference = registerClientReference;\n exports.registerServerReference = registerServerReference;\n exports.renderToReadableStream = renderToReadableStream;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2pzL3JlYWN0LXNlcnZlci1kb20td2VicGFjay1zZXJ2ZXIuZWRnZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Q0FRQyxHQUVEO0FBRUEsSUFBSUEsSUFBcUMsRUFBRTtJQUN4QztRQUNIO1FBRUEsSUFBSUMsUUFBUUMsbUJBQU9BLENBQUM7UUFDcEIsSUFBSUMsV0FBV0QsbUJBQU9BLENBQUM7UUFFdkIsSUFBSUUsdUJBQXVCSCxNQUFNSSxrREFBa0Q7UUFFbkYsU0FBU0MsTUFBTUMsTUFBTTtZQUNuQjtnQkFDRTtvQkFDRSxJQUFLLElBQUlDLFFBQVFDLFVBQVVDLE1BQU0sRUFBRUMsT0FBTyxJQUFJQyxNQUFNSixRQUFRLElBQUlBLFFBQVEsSUFBSSxJQUFJSyxRQUFRLEdBQUdBLFFBQVFMLE9BQU9LLFFBQVM7d0JBQ2pIRixJQUFJLENBQUNFLFFBQVEsRUFBRSxHQUFHSixTQUFTLENBQUNJLE1BQU07b0JBQ3BDO29CQUVBQyxhQUFhLFNBQVNQLFFBQVFJO2dCQUNoQztZQUNGO1FBQ0Y7UUFFQSxTQUFTRyxhQUFhQyxLQUFLLEVBQUVSLE1BQU0sRUFBRUksSUFBSTtZQUN2QyxtREFBbUQ7WUFDbkQsNkNBQTZDO1lBQzdDO2dCQUNFLElBQUlLLHlCQUF5QloscUJBQXFCWSxzQkFBc0I7Z0JBQ3hFLElBQUlDLFFBQVFELHVCQUF1QkUsZ0JBQWdCO2dCQUVuRCxJQUFJRCxVQUFVLElBQUk7b0JBQ2hCVixVQUFVO29CQUNWSSxPQUFPQSxLQUFLUSxNQUFNLENBQUM7d0JBQUNGO3FCQUFNO2dCQUM1QixFQUFFLCtEQUErRDtnQkFHakUsSUFBSUcsaUJBQWlCVCxLQUFLVSxHQUFHLENBQUMsU0FBVUMsSUFBSTtvQkFDMUMsT0FBT0MsT0FBT0Q7Z0JBQ2hCLElBQUksK0NBQStDO2dCQUVuREYsZUFBZUksT0FBTyxD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K0JBQStCLEdBQUdwaEI7UUFDbENvaEIsOEJBQThCLEdBQUdkO0lBQy9CO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2Nqcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLmVkZ2UuZGV2ZWxvcG1lbnQuanM/ZmRiZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLmVkZ2UuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG52YXIgUmVhY3RET00gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0gUmVhY3QuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG5cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0pO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbnZhciBlbmFibGVQb3N0cG9uZSA9IGZhbHNlO1xuXG5mdW5jdGlvbiBzY2hlZHVsZVdvcmsoY2FsbGJhY2spIHtcbiAgc2V0VGltZW91dChjYWxsYmFjaywgMCk7XG59XG52YXIgVklFV19TSVpFID0gNTEyO1xudmFyIGN1cnJlbnRWaWV3ID0gbnVsbDtcbnZhciB3cml0dGVuQnl0ZXMgPSAwO1xuZnVuY3Rpb24gYmVnaW5Xcml0aW5nKGRlc3RpbmF0aW9uKSB7XG4gIGN1cnJlbnRWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoVklFV19TSVpFKTtcbiAgd3JpdHRlbkJ5dGVzID0gMDtcbn1cbmZ1bmN0aW9uIHdyaXRlQ2h1bmsoZGVzdGluYXRpb24sIGNodW5rKSB7XG4gIGlmIChjaHVuay5ieXRlTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNodW5rLmJ5dGVMZW5ndGggPiBWSUVXX1NJWkUpIHtcbiAgICB7XG4gICAgICBpZiAocHJlY29tcHV0ZWRDaHVua1NldC5oYXMoY2h1bmspKSB7XG4gICAgICAgIGVycm9yKCdBIGxhcmdlIHByZWNvbXB1dGVkIGNodW5rIHdhcyBwYXNzZWQgdG8gd3JpdGVDaHVuayB3aXRob3V0IGJlaW5nIGNvcGllZC4nICsgJyBMYXJnZSBjaHVua3MgZ2V0IGVucXVldWVkIGRpcmVjdGx5IGFuZCBhcmUgbm90IGNvcGllZC4gVGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aCBwcmVjb21wdXRlZCBjaHVua3MgYmVjYXVzZSB5b3UgY2Fubm90IGVucXVldWUgdGhlIHNhbWUgcHJlY29tcHV0ZWQgY2h1bmsgdHdpY2UuJyArICcgVXNlIFwiY2xvbmVDaHVua1wiIHRvIG1ha2UgYSBjb3B5IG9mIHRoaXMgbGFyZ2UgcHJlY29tcHV0ZWQgY2h1bmsgYmVmb3JlIHdyaXRpbmcgaXQuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gICAgICB9XG4gICAgfSAvLyB0aGlzIGNodW5rIG1heSBvdmVyZmxvdyBhIHNpbmdsZSB2aWV3IHdoaWNoIGltcGxpZXMgaXQgd2FzIG5vdFxuICAgIC8vIG9uZSB0aGF0IGlzIGNhY2hlZCBieSB0aGUgc3RyZWFtaW5nIHJlbmRlcmVyLiBXZSB3aWxsIGVucXVldVxuICAgIC8vIGl0IGRpcmVjdGx5IGFuZCBleHBlY3QgaXQgaXMgbm90IHJlLXVzZWRcblxuXG4gICAgaWYgKHdyaXR0ZW5CeXRlcyA+IDApIHtcbiAgICAgIGRlc3RpbmF0aW9uLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoY3VycmVudFZpZXcuYnVmZmVyLCAwLCB3cml0dGVuQnl0ZXMpKTtcbiAgICAgIGN1cnJlbnRWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoVklFV19TSVpFKTtcbiAgICAgIHdyaXR0ZW5CeXRlcyA9IDA7XG4gICAgfVxuXG4gICAgZGVzdGluYXRpb24uZW5xdWV1ZShjaHVuayk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGJ5dGVzVG9Xcml0ZSA9IGNodW5rO1xuICB2YXIgYWxsb3dhYmxlQnl0ZXMgPSBjdXJyZW50Vmlldy5sZW5ndGggLSB3cml0dGVuQnl0ZXM7XG5cbiAgaWYgKGFsbG93YWJsZUJ5dGVzIDwgYnl0ZXNUb1dyaXRlLmJ5dGVMZW5ndGgpIHtcbiAgICAvLyB0aGlzIGNodW5rIHdvdWxkIG92ZXJmbG93IHRoZSBjdXJyZW50IHZpZXcuIFdlIGVucXVldWUgYSBmdWxsIHZpZXdcbiAgICAvLyBhbmQgc3RhcnQgYSBuZXcgdmlldyB3aXRoIHRoZSByZW1haW5pbmcgY2h1bmtcbiAgICBpZiAoYWxsb3dhYmxlQnl0ZXMgPT09IDApIHtcbiAgICAgIC8vIHRoZSBjdXJyZW50IHZpZXcgaXMgYWxyZWFkeSBmdWxsLCBzZW5kIGl0XG4gICAgICBkZXN0aW5hdGlvbi5lbnF1ZXVlKGN1cnJlbnRWaWV3KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZmlsbCB1cCB0aGUgY3VycmVudCB2aWV3IGFuZCBhcHBseSB0aGUgcmVtYWluaW5nIGNodW5rIGJ5dGVzXG4gICAgICAvLyB0byBhIG5ldyB2aWV3LlxuICAgICAgY3VycmVudFZpZXcuc2V0KGJ5dGVzVG9Xcml0ZS5zdWJhcnJheSgwLCBhbGxvd2FibGVCeXRlcyksIHdyaXR0ZW5CeXRlcyk7IC8vIHdyaXR0ZW5CeXRlcyArPSBhbGxvd2FibGVCeXRlczsgLy8gdGhpcyBjYW4gYmUgc2tpcHBlZCBiZWNhdXNlIHdlIGFyZSBnb2luZyB0byBpbW1lZGlhdGVseSByZXNldCB0aGUgdmlld1xuXG4gICAgICBkZXN0aW5hdGlvbi5lbnF1ZXVlKGN1cnJlbnRWaWV3KTtcbiAgICAgIGJ5dGVzVG9Xcml0ZSA9IGJ5dGVzVG9Xcml0ZS5zdWJhcnJheShhbGxvd2FibGVCeXRlcyk7XG4gICAgfVxuXG4gICAgY3VycmVudFZpZXcgPSBuZXcgVWludDhBcnJheShWSUVXX1NJWkUpO1xuICAgIHdyaXR0ZW5CeXRlcyA9IDA7XG4gIH1cblxuICBjdXJyZW50Vmlldy5zZXQoYnl0ZXNUb1dyaXRlLCB3cml0dGVuQnl0ZXMpO1xuICB3cml0dGVuQnl0ZXMgKz0gYnl0ZXNUb1dyaXRlLmJ5dGVMZW5ndGg7XG59XG5mdW5jdGlvbiB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBjaHVuaykge1xuICB3cml0ZUNodW5rKGRlc3RpbmF0aW9uLCBjaHVuayk7IC8vIGluIHdlYiBzdHJlYW1zIHRoZXJlIGlzIG5vIGJhY2twcmVzc3VyZSBzbyB3ZSBjYW4gYWx3YXMgd3JpdGUgbW9yZVxuXG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gY29tcGxldGVXcml0aW5nKGRlc3RpbmF0aW9uKSB7XG4gIGlmIChjdXJyZW50VmlldyAmJiB3cml0dGVuQnl0ZXMgPiAwKSB7XG4gICAgZGVzdGluYXRpb24uZW5xdWV1ZShuZXcgVWludDhBcnJheShjdXJyZW50Vmlldy5idWZmZXIsIDAsIHdyaXR0ZW5CeXRlcykpO1xuICAgIGN1cnJlbnRWaWV3ID0gbnVsbDtcbiAgICB3cml0dGVuQnl0ZXMgPSAwO1xuICB9XG59XG5mdW5jdGlvbiBjbG9zZSQxKGRlc3RpbmF0aW9uKSB7XG4gIGRlc3RpbmF0aW9uLmNsb3NlKCk7XG59XG52YXIgdGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbmZ1bmN0aW9uIHN0cmluZ1RvQ2h1bmsoY29udGVudCkge1xuICByZXR1cm4gdGV4dEVuY29kZXIuZW5jb2RlKGNvbnRlbnQpO1xufVxudmFyIHByZWNvbXB1dGVkQ2h1bmtTZXQgPSBuZXcgU2V0KCkgO1xuZnVuY3Rpb24gYnl0ZUxlbmd0aE9mQ2h1bmsoY2h1bmspIHtcbiAgcmV0dXJuIGNodW5rLmJ5dGVMZW5ndGg7XG59XG5mdW5jdGlvbiBjbG9zZVdpdGhFcnJvcihkZXN0aW5hdGlvbiwgZXJyb3IpIHtcbiAgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuICBpZiAodHlwZW9mIGRlc3RpbmF0aW9uLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtY2FsbF06IFRoaXMgaXMgYW4gRXJyb3Igb2JqZWN0IG9yIHRoZSBkZXN0aW5hdGlvbiBhY2NlcHRzIG90aGVyIHR5cGVzLlxuICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycm9yKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBFYXJsaWVyIGltcGxlbWVudGF0aW9ucyBkb2Vzbid0IHN1cHBvcnQgdGhpcyBtZXRob2QuIEluIHRoYXQgZW52aXJvbm1lbnQgeW91J3JlXG4gICAgLy8gc3VwcG9zZWQgdG8gdGhyb3cgZnJvbSBhIHByb21pc2UgcmV0dXJuZWQgYnV0IHdlIGRvbid0IHJldHVybiBhIHByb21pc2UgaW4gb3VyXG4gICAgLy8gYXBwcm9hY2guIFdlIGNvdWxkIGZvcmsgdGhpcyBpbXBsZW1lbnRhdGlvbiBidXQgdGhpcyBpcyBlbnZpcm9ubWVudCBpcyBhbiBlZGdlXG4gICAgLy8gY2FzZSB0byBiZWdpbiB3aXRoLiBJdCdzIGV2ZW4gbGVzcyBjb21tb24gdG8gcnVuIHRoaXMgaW4gYW4gb2xkZXIgZW52aXJvbm1lbnQuXG4gICAgLy8gRXZlbiB0aGVuLCB0aGlzIGlzIG5vdCB3aGVyZSBlcnJvcnMgYXJlIHN1cHBvc2VkIHRvIGhhcHBlbiBhbmQgdGhleSBnZXQgcmVwb3J0ZWRcbiAgICAvLyB0byBhIGdsb2JhbCBjYWxsYmFjayBpbiBhZGRpdGlvbiB0byB0aGlzIGFueXdheS4gU28gaXQncyBmaW5lIGp1c3QgdG8gY2xvc2UgdGhpcy5cbiAgICBkZXN0aW5hdGlvbi5jbG9zZSgpO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xudmFyIENMSUVOVF9SRUZFUkVOQ0VfVEFHID0gU3ltYm9sLmZvcigncmVhY3QuY2xpZW50LnJlZmVyZW5jZScpO1xudmFyIFNFUlZFUl9SRUZFUkVOQ0VfVEFHID0gU3ltYm9sLmZvcigncmVhY3Quc2VydmVyLnJlZmVyZW5jZScpO1xuZnVuY3Rpb24gaXNDbGllbnRSZWZlcmVuY2UocmVmZXJlbmNlKSB7XG4gIHJldHVybiByZWZlcmVuY2UuJCR0eXBlb2YgPT09IENMSUVOVF9SRUZFUkVOQ0VfVEFHO1xufVxuZnVuY3Rpb24gaXNTZXJ2ZXJSZWZlcmVuY2UocmVmZXJlbmNlKSB7XG4gIHJldHVybiByZWZlcmVuY2UuJCR0eXBlb2YgPT09IFNFUlZFUl9SRUZFUkVOQ0VfVEFHO1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2UocHJveHlJbXBsZW1lbnRhdGlvbiwgaWQsIGV4cG9ydE5hbWUpIHtcbiAgcmV0dXJuIHJlZ2lzdGVyQ2xpZW50UmVmZXJlbmNlSW1wbChwcm94eUltcGxlbWVudGF0aW9uLCBpZCArICcjJyArIGV4cG9ydE5hbWUsIGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2VJbXBsKHByb3h5SW1wbGVtZW50YXRpb24sIGlkLCBhc3luYykge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocHJveHlJbXBsZW1lbnRhdGlvbiwge1xuICAgICQkdHlwZW9mOiB7XG4gICAgICB2YWx1ZTogQ0xJRU5UX1JFRkVSRU5DRV9UQUdcbiAgICB9LFxuICAgICQkaWQ6IHtcbiAgICAgIHZhbHVlOiBpZFxuICAgIH0sXG4gICAgJCRhc3luYzoge1xuICAgICAgdmFsdWU6IGFzeW5jXG4gICAgfVxuICB9KTtcbn0gLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuXG5cbnZhciBGdW5jdGlvbkJpbmQgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZDsgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuXG52YXIgQXJyYXlTbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcblxuZnVuY3Rpb24gYmluZCgpIHtcbiAgLy8gJEZsb3dGaXhNZVt1bnN1cHBvcnRlZC1zeW50YXhdXG4gIHZhciBuZXdGbiA9IEZ1bmN0aW9uQmluZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gIGlmICh0aGlzLiQkdHlwZW9mID09PSBTRVJWRVJfUkVGRVJFTkNFX1RBRykge1xuICAgIHZhciBhcmdzID0gQXJyYXlTbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5ld0ZuLCB7XG4gICAgICAkJHR5cGVvZjoge1xuICAgICAgICB2YWx1ZTogU0VSVkVSX1JFRkVSRU5DRV9UQUdcbiAgICAgIH0sXG4gICAgICAkJGlkOiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLiQkaWRcbiAgICAgIH0sXG4gICAgICAkJGJvdW5kOiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLiQkYm91bmQgPyB0aGlzLiQkYm91bmQuY29uY2F0KGFyZ3MpIDogYXJnc1xuICAgICAgfSxcbiAgICAgIGJpbmQ6IHtcbiAgICAgICAgdmFsdWU6IGJpbmRcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBuZXdGbjtcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2UocmVmZXJlbmNlLCBpZCwgZXhwb3J0TmFtZSkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocmVmZXJlbmNlLCB7XG4gICAgJCR0eXBlb2Y6IHtcbiAgICAgIHZhbHVlOiBTRVJWRVJfUkVGRVJFTkNFX1RBR1xuICAgIH0sXG4gICAgJCRpZDoge1xuICAgICAgdmFsdWU6IGV4cG9ydE5hbWUgPT09IG51bGwgPyBpZCA6IGlkICsgJyMnICsgZXhwb3J0TmFtZVxuICAgIH0sXG4gICAgJCRib3VuZDoge1xuICAgICAgdmFsdWU6IG51bGxcbiAgICB9LFxuICAgIGJpbmQ6IHtcbiAgICAgIHZhbHVlOiBiaW5kXG4gICAgfVxuICB9KTtcbn1cbnZhciBQUk9NSVNFX1BST1RPVFlQRSA9IFByb21pc2UucHJvdG90eXBlO1xudmFyIGRlZXBQcm94eUhhbmRsZXJzID0ge1xuICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUsIHJlY2VpdmVyKSB7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAvLyBUaGVzZSBuYW1lcyBhcmUgcmVhZCBieSB0aGUgRmxpZ2h0IHJ1bnRpbWUgaWYgeW91IGVuZCB1cCB1c2luZyB0aGUgZXhwb3J0cyBvYmplY3QuXG4gICAgICBjYXNlICckJHR5cGVvZic6XG4gICAgICAgIC8vIFRoZXNlIG5hbWVzIGFyZSBhIGxpdHRsZSB0b28gY29tbW9uLiBXZSBzaG91bGQgcHJvYmFibHkgaGF2ZSBhIHdheSB0b1xuICAgICAgICAvLyBoYXZlIHRoZSBGbGlnaHQgcnVudGltZSBleHRyYWN0IHRoZSBpbm5lciB0YXJnZXQgaW5zdGVhZC5cbiAgICAgICAgcmV0dXJuIHRhcmdldC4kJHR5cGVvZjtcblxuICAgICAgY2FzZSAnJCRpZCc6XG4gICAgICAgIHJldHVybiB0YXJnZXQuJCRpZDtcblxuICAgICAgY2FzZSAnJCRhc3luYyc6XG4gICAgICAgIHJldHVybiB0YXJnZXQuJCRhc3luYztcblxuICAgICAgY2FzZSAnbmFtZSc6XG4gICAgICAgIHJldHVybiB0YXJnZXQubmFtZTtcblxuICAgICAgY2FzZSAnZGlzcGxheU5hbWUnOlxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgLy8gV2UgbmVlZCB0byBzcGVjaWFsIGNhc2UgdGhpcyBiZWNhdXNlIGNyZWF0ZUVsZW1lbnQgcmVhZHMgaXQgaWYgd2UgcGFzcyB0aGlzXG4gICAgICAvLyByZWZlcmVuY2UuXG5cbiAgICAgIGNhc2UgJ2RlZmF1bHRQcm9wcyc6XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAvLyBBdm9pZCB0aGlzIGF0dGVtcHRpbmcgdG8gYmUgc2VyaWFsaXplZC5cblxuICAgICAgY2FzZSAndG9KU09OJzpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgY2FzZSBTeW1ib2wudG9QcmltaXRpdmU6XG4gICAgICAgIC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZVtTeW1ib2wudG9QcmltaXRpdmVdO1xuXG4gICAgICBjYXNlICdQcm92aWRlcic6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZW5kZXIgYSBDbGllbnQgQ29udGV4dCBQcm92aWRlciBvbiB0aGUgU2VydmVyLiBcIiArIFwiSW5zdGVhZCwgeW91IGNhbiBleHBvcnQgYSBDbGllbnQgQ29tcG9uZW50IHdyYXBwZXIgXCIgKyBcInRoYXQgaXRzZWxmIHJlbmRlcnMgYSBDbGllbnQgQ29udGV4dCBQcm92aWRlci5cIik7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cblxuXG4gICAgdmFyIGV4cHJlc3Npb24gPSBTdHJpbmcodGFyZ2V0Lm5hbWUpICsgJy4nICsgU3RyaW5nKG5hbWUpO1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBhY2Nlc3MgXCIgKyBleHByZXNzaW9uICsgXCIgb24gdGhlIHNlcnZlci4gXCIgKyAnWW91IGNhbm5vdCBkb3QgaW50byBhIGNsaWVudCBtb2R1bGUgZnJvbSBhIHNlcnZlciBjb21wb25lbnQuICcgKyAnWW91IGNhbiBvbmx5IHBhc3MgdGhlIGltcG9ydGVkIG5hbWUgdGhyb3VnaC4nKTtcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYXNzaWduIHRvIGEgY2xpZW50IG1vZHVsZSBmcm9tIGEgc2VydmVyIG1vZHVsZS4nKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gZ2V0UmVmZXJlbmNlKHRhcmdldCwgbmFtZSkge1xuICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAvLyBUaGVzZSBuYW1lcyBhcmUgcmVhZCBieSB0aGUgRmxpZ2h0IHJ1bnRpbWUgaWYgeW91IGVuZCB1cCB1c2luZyB0aGUgZXhwb3J0cyBvYmplY3QuXG4gICAgY2FzZSAnJCR0eXBlb2YnOlxuICAgICAgcmV0dXJuIHRhcmdldC4kJHR5cGVvZjtcblxuICAgIGNhc2UgJyQkaWQnOlxuICAgICAgcmV0dXJuIHRhcmdldC4kJGlkO1xuXG4gICAgY2FzZSAnJCRhc3luYyc6XG4gICAgICByZXR1cm4gdGFyZ2V0LiQkYXN5bmM7XG5cbiAgICBjYXNlICduYW1lJzpcbiAgICAgIHJldHVybiB0YXJnZXQubmFtZTtcbiAgICAvLyBXZSBuZWVkIHRvIHNwZWNpYWwgY2FzZSB0aGlzIGJlY2F1c2UgY3JlYXRlRWxlbWVudCByZWFkcyBpdCBpZiB3ZSBwYXNzIHRoaXNcbiAgICAvLyByZWZlcmVuY2UuXG5cbiAgICBjYXNlICdkZWZhdWx0UHJvcHMnOlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAvLyBBdm9pZCB0aGlzIGF0dGVtcHRpbmcgdG8gYmUgc2VyaWFsaXplZC5cblxuICAgIGNhc2UgJ3RvSlNPTic6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY2FzZSBTeW1ib2wudG9QcmltaXRpdmU6XG4gICAgICAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlW1N5bWJvbC50b1ByaW1pdGl2ZV07XG5cbiAgICBjYXNlICdfX2VzTW9kdWxlJzpcbiAgICAgIC8vIFNvbWV0aGluZyBpcyBjb25kaXRpb25hbGx5IGNoZWNraW5nIHdoaWNoIGV4cG9ydCB0byB1c2UuIFdlJ2xsIHByZXRlbmQgdG8gYmVcbiAgICAgIC8vIGFuIEVTTSBjb21wYXQgbW9kdWxlIGJ1dCB0aGVuIHdlJ2xsIGNoZWNrIGFnYWluIG9uIHRoZSBjbGllbnQuXG4gICAgICB2YXIgbW9kdWxlSWQgPSB0YXJnZXQuJCRpZDtcbiAgICAgIHRhcmdldC5kZWZhdWx0ID0gcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2VJbXBsKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGVkIHRvIGNhbGwgdGhlIGRlZmF1bHQgZXhwb3J0IG9mIFwiICsgbW9kdWxlSWQgKyBcIiBmcm9tIHRoZSBzZXJ2ZXIgXCIgKyBcImJ1dCBpdCdzIG9uIHRoZSBjbGllbnQuIEl0J3Mgbm90IHBvc3NpYmxlIHRvIGludm9rZSBhIGNsaWVudCBmdW5jdGlvbiBmcm9tIFwiICsgXCJ0aGUgc2VydmVyLCBpdCBjYW4gb25seSBiZSByZW5kZXJlZCBhcyBhIENvbXBvbmVudCBvciBwYXNzZWQgdG8gcHJvcHMgb2YgYSBcIiArIFwiQ2xpZW50IENvbXBvbmVudC5cIik7XG4gICAgICB9LCB0YXJnZXQuJCRpZCArICcjJywgdGFyZ2V0LiQkYXN5bmMpO1xuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBjYXNlICd0aGVuJzpcbiAgICAgIGlmICh0YXJnZXQudGhlbikge1xuICAgICAgICAvLyBVc2UgYSBjYWNoZWQgdmFsdWVcbiAgICAgICAgcmV0dXJuIHRhcmdldC50aGVuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRhcmdldC4kJGFzeW5jKSB7XG4gICAgICAgIC8vIElmIHRoaXMgbW9kdWxlIGlzIGV4cGVjdGVkIHRvIHJldHVybiBhIFByb21pc2UgKHN1Y2ggYXMgYW4gQXN5bmNNb2R1bGUpIHRoZW5cbiAgICAgICAgLy8gd2Ugc2hvdWxkIHJlc29sdmUgdGhhdCB3aXRoIGEgY2xpZW50IHJlZmVyZW5jZSB0aGF0IHVud3JhcHMgdGhlIFByb21pc2Ugb25cbiAgICAgICAgLy8gdGhlIGNsaWVudC5cbiAgICAgICAgdmFyIGNsaWVudFJlZmVyZW5jZSA9IHJlZ2lzdGVyQ2xpZW50UmVmZXJlbmNlSW1wbCh7fSwgdGFyZ2V0LiQkaWQsIHRydWUpO1xuICAgICAgICB2YXIgcHJveHkgPSBuZXcgUHJveHkoY2xpZW50UmVmZXJlbmNlLCBwcm94eUhhbmRsZXJzKTsgLy8gVHJlYXQgdGhpcyBhcyBhIHJlc29sdmVkIFByb21pc2UgZm9yIFJlYWN0J3MgdXNlKClcblxuICAgICAgICB0YXJnZXQuc3RhdHVzID0gJ2Z1bGZpbGxlZCc7XG4gICAgICAgIHRhcmdldC52YWx1ZSA9IHByb3h5O1xuICAgICAgICB2YXIgdGhlbiA9IHRhcmdldC50aGVuID0gcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2VJbXBsKGZ1bmN0aW9uIHRoZW4ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgLy8gRXhwb3NlIHRvIFJlYWN0LlxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzb2x2ZShwcm94eSkpO1xuICAgICAgICB9LCAvLyBJZiB0aGlzIGlzIG5vdCB1c2VkIGFzIGEgUHJvbWlzZSBidXQgaXMgdHJlYXRlZCBhcyBhIHJlZmVyZW5jZSB0byBhIGAudGhlbmBcbiAgICAgICAgLy8gZXhwb3J0IHRoZW4gd2Ugc2hvdWxkIHRyZWF0IGl0IGFzIGEgcmVmZXJlbmNlIHRvIHRoYXQgbmFtZS5cbiAgICAgICAgdGFyZ2V0LiQkaWQgKyAnI3RoZW4nLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiB0aGVuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2luY2UgdHlwZW9mIC50aGVuID09PSAnZnVuY3Rpb24nIGlzIGEgZmVhdHVyZSB0ZXN0IHdlJ2QgY29udGludWUgcmVjdXJzaW5nXG4gICAgICAgIC8vIGluZGVmaW5pdGVseSBpZiB3ZSByZXR1cm4gYSBmdW5jdGlvbi4gSW5zdGVhZCwgd2UgcmV0dXJuIGFuIG9iamVjdCByZWZlcmVuY2VcbiAgICAgICAgLy8gaWYgd2UgY2hlY2sgZnVydGhlci5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICB9XG5cbiAgdmFyIGNhY2hlZFJlZmVyZW5jZSA9IHRhcmdldFtuYW1lXTtcblxuICBpZiAoIWNhY2hlZFJlZmVyZW5jZSkge1xuICAgIHZhciByZWZlcmVuY2UgPSByZWdpc3RlckNsaWVudFJlZmVyZW5jZUltcGwoZnVuY3Rpb24gKCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgICAgIFwiQXR0ZW1wdGVkIHRvIGNhbGwgXCIgKyBTdHJpbmcobmFtZSkgKyBcIigpIGZyb20gdGhlIHNlcnZlciBidXQgXCIgKyBTdHJpbmcobmFtZSkgKyBcIiBpcyBvbiB0aGUgY2xpZW50LiBcIiArIFwiSXQncyBub3QgcG9zc2libGUgdG8gaW52b2tlIGEgY2xpZW50IGZ1bmN0aW9uIGZyb20gdGhlIHNlcnZlciwgaXQgY2FuIFwiICsgXCJvbmx5IGJlIHJlbmRlcmVkIGFzIGEgQ29tcG9uZW50IG9yIHBhc3NlZCB0byBwcm9wcyBvZiBhIENsaWVudCBDb21wb25lbnQuXCIpO1xuICAgIH0sIHRhcmdldC4kJGlkICsgJyMnICsgbmFtZSwgdGFyZ2V0LiQkYXN5bmMpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWZlcmVuY2UsICduYW1lJywge1xuICAgICAgdmFsdWU6IG5hbWVcbiAgICB9KTtcbiAgICBjYWNoZWRSZWZlcmVuY2UgPSB0YXJnZXRbbmFtZV0gPSBuZXcgUHJveHkocmVmZXJlbmNlLCBkZWVwUHJveHlIYW5kbGVycyk7XG4gIH1cblxuICByZXR1cm4gY2FjaGVkUmVmZXJlbmNlO1xufVxuXG52YXIgcHJveHlIYW5kbGVycyA9IHtcbiAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikge1xuICAgIHJldHVybiBnZXRSZWZlcmVuY2UodGFyZ2V0LCBuYW1lKTtcbiAgfSxcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgbmFtZSk7XG5cbiAgICBpZiAoIWRlc2NyaXB0b3IpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSB7XG4gICAgICAgIHZhbHVlOiBnZXRSZWZlcmVuY2UodGFyZ2V0LCBuYW1lKSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIGRlc2NyaXB0b3IpO1xuICAgIH1cblxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9LFxuICBnZXRQcm90b3R5cGVPZjogZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIC8vIFByZXRlbmQgdG8gYmUgYSBQcm9taXNlIGluIGNhc2UgYW55b25lIGFza3MuXG4gICAgcmV0dXJuIFBST01JU0VfUFJPVE9UWVBFO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhc3NpZ24gdG8gYSBjbGllbnQgbW9kdWxlIGZyb20gYSBzZXJ2ZXIgbW9kdWxlLicpO1xuICB9XG59O1xuZnVuY3Rpb24gY3JlYXRlQ2xpZW50TW9kdWxlUHJveHkobW9kdWxlSWQpIHtcbiAgdmFyIGNsaWVudFJlZmVyZW5jZSA9IHJlZ2lzdGVyQ2xpZW50UmVmZXJlbmNlSW1wbCh7fSwgLy8gUmVwcmVzZW50cyB0aGUgd2hvbGUgTW9kdWxlIG9iamVjdCBpbnN0ZWFkIG9mIGEgcGFydGljdWxhciBpbXBvcnQuXG4gIG1vZHVsZUlkLCBmYWxzZSk7XG4gIHJldHVybiBuZXcgUHJveHkoY2xpZW50UmVmZXJlbmNlLCBwcm94eUhhbmRsZXJzKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVmZXJlbmNlS2V5KHJlZmVyZW5jZSkge1xuICByZXR1cm4gcmVmZXJlbmNlLiQkYXN5bmMgPyByZWZlcmVuY2UuJCRpZCArICcjYXN5bmMnIDogcmVmZXJlbmNlLiQkaWQ7XG59XG5mdW5jdGlvbiByZXNvbHZlQ2xpZW50UmVmZXJlbmNlTWV0YWRhdGEoY29uZmlnLCBjbGllbnRSZWZlcmVuY2UpIHtcbiAgdmFyIG1vZHVsZVBhdGggPSBjbGllbnRSZWZlcmVuY2UuJCRpZDtcbiAgdmFyIG5hbWUgPSAnJztcbiAgdmFyIHJlc29sdmVkTW9kdWxlRGF0YSA9IGNvbmZpZ1ttb2R1bGVQYXRoXTtcblxuICBpZiAocmVzb2x2ZWRNb2R1bGVEYXRhKSB7XG4gICAgLy8gVGhlIHBvdGVudGlhbGx5IGFsaWFzZWQgbmFtZS5cbiAgICBuYW1lID0gcmVzb2x2ZWRNb2R1bGVEYXRhLm5hbWU7XG4gIH0gZWxzZSB7XG4gICAgLy8gV2UgZGlkbid0IGZpbmQgdGhpcyBzcGVjaWZpYyBleHBvcnQgbmFtZSBidXQgd2UgbWlnaHQgaGF2ZSB0aGUgKiBleHBvcnRcbiAgICAvLyB3aGljaCBjb250YWlucyB0aGlzIG5hbWUgYXMgd2VsbC5cbiAgICAvLyBUT0RPOiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgd2Ugbm93IGhhdmUgdG8gcGFyc2UgdGhpcyBzdHJpbmcuIFdlIHNob3VsZFxuICAgIC8vIHByb2JhYmx5IGdvIGJhY2sgdG8gZW5jb2RpbmcgcGF0aCBhbmQgbmFtZSBzZXBhcmF0ZWx5IG9uIHRoZSBjbGllbnQgcmVmZXJlbmNlLlxuICAgIHZhciBpZHggPSBtb2R1bGVQYXRoLmxhc3RJbmRleE9mKCcjJyk7XG5cbiAgICBpZiAoaWR4ICE9PSAtMSkge1xuICAgICAgbmFtZSA9IG1vZHVsZVBhdGguc2xpY2UoaWR4ICsgMSk7XG4gICAgICByZXNvbHZlZE1vZHVsZURhdGEgPSBjb25maWdbbW9kdWxlUGF0aC5zbGljZSgwLCBpZHgpXTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc29sdmVkTW9kdWxlRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCB0aGUgbW9kdWxlIFwiJyArIG1vZHVsZVBhdGggKyAnXCIgaW4gdGhlIFJlYWN0IENsaWVudCBNYW5pZmVzdC4gJyArICdUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIHRoZSBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBidW5kbGVyLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChjbGllbnRSZWZlcmVuY2UuJCRhc3luYyA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiBbcmVzb2x2ZWRNb2R1bGVEYXRhLmlkLCByZXNvbHZlZE1vZHVsZURhdGEuY2h1bmtzLCBuYW1lLCAxXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW3Jlc29sdmVkTW9kdWxlRGF0YS5pZCwgcmVzb2x2ZWRNb2R1bGVEYXRhLmNodW5rcywgbmFtZV07XG4gIH1cbn1cbmZ1bmN0aW9uIGdldFNlcnZlclJlZmVyZW5jZUlkKGNvbmZpZywgc2VydmVyUmVmZXJlbmNlKSB7XG4gIHJldHVybiBzZXJ2ZXJSZWZlcmVuY2UuJCRpZDtcbn1cbmZ1bmN0aW9uIGdldFNlcnZlclJlZmVyZW5jZUJvdW5kQXJndW1lbnRzKGNvbmZpZywgc2VydmVyUmVmZXJlbmNlKSB7XG4gIHJldHVybiBzZXJ2ZXJSZWZlcmVuY2UuJCRib3VuZDtcbn1cblxudmFyIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzID0gUmVhY3RET00uX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG5cbnZhciBSZWFjdERPTUZsaWdodFNlcnZlckRpc3BhdGNoZXIgPSB7XG4gIHByZWZldGNoRE5TOiBwcmVmZXRjaEROUyxcbiAgcHJlY29ubmVjdDogcHJlY29ubmVjdCxcbiAgcHJlbG9hZDogcHJlbG9hZCxcbiAgcHJlbG9hZE1vZHVsZTogcHJlbG9hZE1vZHVsZSQxLFxuICBwcmVpbml0U3R5bGU6IHByZWluaXRTdHlsZSxcbiAgcHJlaW5pdFNjcmlwdDogcHJlaW5pdFNjcmlwdCxcbiAgcHJlaW5pdE1vZHVsZVNjcmlwdDogcHJlaW5pdE1vZHVsZVNjcmlwdFxufTtcblxuZnVuY3Rpb24gcHJlZmV0Y2hETlMoaHJlZikge1xuICB7XG4gICAgaWYgKHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyAmJiBocmVmKSB7XG4gICAgICB2YXIgcmVxdWVzdCA9IHJlc29sdmVSZXF1ZXN0KCk7XG5cbiAgICAgIGlmIChyZXF1ZXN0KSB7XG4gICAgICAgIHZhciBoaW50cyA9IGdldEhpbnRzKHJlcXVlc3QpO1xuICAgICAgICB2YXIga2V5ID0gJ0R8JyArIGhyZWY7XG5cbiAgICAgICAgaWYgKGhpbnRzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgLy8gZHVwbGljYXRlIGhpbnRcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBoaW50cy5hZGQoa2V5KTtcbiAgICAgICAgZW1pdEhpbnQocmVxdWVzdCwgJ0QnLCBocmVmKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlY29ubmVjdChocmVmLCBjcm9zc09yaWdpbikge1xuICB7XG4gICAgaWYgKHR5cGVvZiBocmVmID09PSAnc3RyaW5nJykge1xuICAgICAgdmFyIHJlcXVlc3QgPSByZXNvbHZlUmVxdWVzdCgpO1xuXG4gICAgICBpZiAocmVxdWVzdCkge1xuICAgICAgICB2YXIgaGludHMgPSBnZXRIaW50cyhyZXF1ZXN0KTtcbiAgICAgICAgdmFyIGtleSA9IFwiQ3xcIiArIChjcm9zc09yaWdpbiA9PSBudWxsID8gJ251bGwnIDogY3Jvc3NPcmlnaW4pICsgXCJ8XCIgKyBocmVmO1xuXG4gICAgICAgIGlmIChoaW50cy5oYXMoa2V5KSkge1xuICAgICAgICAgIC8vIGR1cGxpY2F0ZSBoaW50XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaGludHMuYWRkKGtleSk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBjcm9zc09yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBlbWl0SGludChyZXF1ZXN0LCAnQycsIFtocmVmLCBjcm9zc09yaWdpbl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVtaXRIaW50KHJlcXVlc3QsICdDJywgaHJlZik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlbG9hZChocmVmLCBhcywgb3B0aW9ucykge1xuICB7XG4gICAgaWYgKHR5cGVvZiBocmVmID09PSAnc3RyaW5nJykge1xuICAgICAgdmFyIHJlcXVlc3QgPSByZXNvbHZlUmVxdWVzdCgpO1xuXG4gICAgICBpZiAocmVxdWVzdCkge1xuICAgICAgICB2YXIgaGludHMgPSBnZXRIaW50cyhyZXF1ZXN0KTtcbiAgICAgICAgdmFyIGtleSA9ICdMJztcblxuICAgICAgICBpZiAoYXMgPT09ICdpbWFnZScgJiYgb3B0aW9ucykge1xuICAgICAgICAgIGtleSArPSBnZXRJbWFnZVByZWxvYWRLZXkoaHJlZiwgb3B0aW9ucy5pbWFnZVNyY1NldCwgb3B0aW9ucy5pbWFnZVNpemVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBrZXkgKz0gXCJbXCIgKyBhcyArIFwiXVwiICsgaHJlZjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoaW50cy5oYXMoa2V5KSkge1xuICAgICAgICAgIC8vIGR1cGxpY2F0ZSBoaW50XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaGludHMuYWRkKGtleSk7XG4gICAgICAgIHZhciB0cmltbWVkID0gdHJpbU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHRyaW1tZWQpIHtcbiAgICAgICAgICBlbWl0SGludChyZXF1ZXN0LCAnTCcsIFtocmVmLCBhcywgdHJpbW1lZF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVtaXRIaW50KHJlcXVlc3QsICdMJywgW2hyZWYsIGFzXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlbG9hZE1vZHVsZSQxKGhyZWYsIG9wdGlvbnMpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgaHJlZiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciByZXF1ZXN0ID0gcmVzb2x2ZVJlcXVlc3QoKTtcblxuICAgICAgaWYgKHJlcXVlc3QpIHtcbiAgICAgICAgdmFyIGhpbnRzID0gZ2V0SGludHMocmVxdWVzdCk7XG4gICAgICAgIHZhciBrZXkgPSAnbXwnICsgaHJlZjtcblxuICAgICAgICBpZiAoaGludHMuaGFzKGtleSkpIHtcbiAgICAgICAgICAvLyBkdXBsaWNhdGUgaGludFxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGhpbnRzLmFkZChrZXkpO1xuICAgICAgICB2YXIgdHJpbW1lZCA9IHRyaW1PcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIGlmICh0cmltbWVkKSB7XG4gICAgICAgICAgcmV0dXJuIGVtaXRIaW50KHJlcXVlc3QsICdtJywgW2hyZWYsIHRyaW1tZWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZW1pdEhpbnQocmVxdWVzdCwgJ20nLCBocmVmKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmVpbml0U3R5bGUoaHJlZiwgcHJlY2VkZW5jZSwgb3B0aW9ucykge1xuICB7XG4gICAgaWYgKHR5cGVvZiBocmVmID09PSAnc3RyaW5nJykge1xuICAgICAgdmFyIHJlcXVlc3QgPSByZXNvbHZlUmVxdWVzdCgpO1xuXG4gICAgICBpZiAocmVxdWVzdCkge1xuICAgICAgICB2YXIgaGludHMgPSBnZXRIaW50cyhyZXF1ZXN0KTtcbiAgICAgICAgdmFyIGtleSA9ICdTfCcgKyBocmVmO1xuXG4gICAgICAgIGlmIChoaW50cy5oYXMoa2V5KSkge1xuICAgICAgICAgIC8vIGR1cGxpY2F0ZSBoaW50XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaGludHMuYWRkKGtleSk7XG4gICAgICAgIHZhciB0cmltbWVkID0gdHJpbU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHRyaW1tZWQpIHtcbiAgICAgICAgICByZXR1cm4gZW1pdEhpbnQocmVxdWVzdCwgJ1MnLCBbaHJlZiwgdHlwZW9mIHByZWNlZGVuY2UgPT09ICdzdHJpbmcnID8gcHJlY2VkZW5jZSA6IDAsIHRyaW1tZWRdKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJlY2VkZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gZW1pdEhpbnQocmVxdWVzdCwgJ1MnLCBbaHJlZiwgcHJlY2VkZW5jZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBlbWl0SGludChyZXF1ZXN0LCAnUycsIGhyZWYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByZWluaXRTY3JpcHQoaHJlZiwgb3B0aW9ucykge1xuICB7XG4gICAgaWYgKHR5cGVvZiBocmVmID09PSAnc3RyaW5nJykge1xuICAgICAgdmFyIHJlcXVlc3QgPSByZXNvbHZlUmVxdWVzdCgpO1xuXG4gICAgICBpZiAocmVxdWVzdCkge1xuICAgICAgICB2YXIgaGludHMgPSBnZXRIaW50cyhyZXF1ZXN0KTtcbiAgICAgICAgdmFyIGtleSA9ICdYfCcgKyBocmVmO1xuXG4gICAgICAgIGlmIChoaW50cy5oYXMoa2V5KSkge1xuICAgICAgICAgIC8vIGR1cGxpY2F0ZSBoaW50XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaGludHMuYWRkKGtleSk7XG4gICAgICAgIHZhciB0cmltbWVkID0gdHJpbU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHRyaW1tZWQpIHtcbiAgICAgICAgICByZXR1cm4gZW1pdEhpbnQocmVxdWVzdCwgJ1gnLCBbaHJlZiwgdHJpbW1lZF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBlbWl0SGludChyZXF1ZXN0LCAnWCcsIGhyZWYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByZWluaXRNb2R1bGVTY3JpcHQoaHJlZiwgb3B0aW9ucykge1xuICB7XG4gICAgaWYgKHR5cGVvZiBocmVmID09PSAnc3RyaW5nJykge1xuICAgICAgdmFyIHJlcXVlc3QgPSByZXNvbHZlUmVxdWVzdCgpO1xuXG4gICAgICBpZiAocmVxdWVzdCkge1xuICAgICAgICB2YXIgaGludHMgPSBnZXRIaW50cyhyZXF1ZXN0KTtcbiAgICAgICAgdmFyIGtleSA9ICdNfCcgKyBocmVmO1xuXG4gICAgICAgIGlmIChoaW50cy5oYXMoa2V5KSkge1xuICAgICAgICAgIC8vIGR1cGxpY2F0ZSBoaW50XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaGludHMuYWRkKGtleSk7XG4gICAgICAgIHZhciB0cmltbWVkID0gdHJpbU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHRyaW1tZWQpIHtcbiAgICAgICAgICByZXR1cm4gZW1pdEhpbnQocmVxdWVzdCwgJ00nLCBbaHJlZiwgdHJpbW1lZF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBlbWl0SGludChyZXF1ZXN0LCAnTScsIGhyZWYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIEZsaWdodCBub3JtYWxseSBlbmNvZGVzIHVuZGVmaW5lZCBhcyBhIHNwZWNpYWwgY2hhcmFjdGVyIGhvd2V2ZXIgZm9yIGRpcmVjdGl2ZSBvcHRpb25cbi8vIGFyZ3VtZW50cyB3ZSBkb24ndCB3YW50IHRvIHNlbmQgdW5uZWNlc3Nhcnkga2V5cyBhbmQgYmxvYXQgdGhlIHBheWxvYWQgc28gd2UgY3JlYXRlIGFcbi8vIHRyaW1tZWQgb2JqZWN0IHdoaWNoIG9taXRzIGFueSBrZXlzIHdpdGggbnVsbCBvciB1bmRlZmluZWQgdmFsdWVzLlxuLy8gVGhpcyBpcyBvbmx5IHR5cGVzYWZlIGJlY2F1c2UgdGhlc2Ugb3B0aW9uIG9iamVjdHMgaGF2ZSBlbnRpcmVseSBvcHRpb25hbCBmaWVsZHMgd2hlcmVcbi8vIG51bGwgYW5kIHVuZGVmaW5lZCByZXByZXNlbnQgdGhlIHNhbWUgdGhpbmcgYXMgbm8gcHJvcGVydHkuXG5cblxuZnVuY3Rpb24gdHJpbU9wdGlvbnMob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgdmFyIGhhc1Byb3BlcnRpZXMgPSBmYWxzZTtcbiAgdmFyIHRyaW1tZWQgPSB7fTtcblxuICBmb3IgKHZhciBrZXkgaW4gb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zW2tleV0gIT0gbnVsbCkge1xuICAgICAgaGFzUHJvcGVydGllcyA9IHRydWU7XG4gICAgICB0cmltbWVkW2tleV0gPSBvcHRpb25zW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGhhc1Byb3BlcnRpZXMgPyB0cmltbWVkIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0SW1hZ2VQcmVsb2FkS2V5KGhyZWYsIGltYWdlU3JjU2V0LCBpbWFnZVNpemVzKSB7XG4gIHZhciB1bmlxdWVQYXJ0ID0gJyc7XG5cbiAgaWYgKHR5cGVvZiBpbWFnZVNyY1NldCA9PT0gJ3N0cmluZycgJiYgaW1hZ2VTcmNTZXQgIT09ICcnKSB7XG4gICAgdW5pcXVlUGFydCArPSAnWycgKyBpbWFnZVNyY1NldCArICddJztcblxuICAgIGlmICh0eXBlb2YgaW1hZ2VTaXplcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHVuaXF1ZVBhcnQgKz0gJ1snICsgaW1hZ2VTaXplcyArICddJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdW5pcXVlUGFydCArPSAnW11bXScgKyBocmVmO1xuICB9XG5cbiAgcmV0dXJuIFwiW2ltYWdlXVwiICsgdW5pcXVlUGFydDtcbn1cblxudmFyIFJlYWN0RE9NQ3VycmVudERpc3BhdGNoZXIgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5EaXNwYXRjaGVyO1xuZnVuY3Rpb24gcHJlcGFyZUhvc3REaXNwYXRjaGVyKCkge1xuICBSZWFjdERPTUN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBSZWFjdERPTUZsaWdodFNlcnZlckRpc3BhdGNoZXI7XG59IC8vIFVzZWQgdG8gZGlzdGluZ3Vpc2ggdGhlc2UgY29udGV4dHMgZnJvbSBvbmVzIHVzZWQgaW4gb3RoZXIgcmVuZGVyZXJzLlxuLy8gc21hbGwsIHNtYWxsZXIgdGhhbiBob3cgd2UgZW5jb2RlIHVuZGVmaW5lZCwgYW5kIGlzIHVuYW1iaWd1b3VzLiBXZSBjb3VsZCB1c2Vcbi8vIGEgZGlmZmVyZW50IHR1cGxlIHN0cnVjdHVyZSB0byBlbmNvZGUgdGhpcyBpbnN0ZWFkIGJ1dCB0aGlzIG1ha2VzIHRoZSBydW50aW1lXG4vLyBjb3N0IGNoZWFwZXIgYnkgZWxpbWluYXRpbmcgYSB0eXBlIGNoZWNrcyBpbiBtb3JlIHBvc2l0aW9ucy5cbi8vIHByZXR0aWVyLWlnbm9yZVxuXG5mdW5jdGlvbiBjcmVhdGVIaW50cygpIHtcbiAgcmV0dXJuIG5ldyBTZXQoKTtcbn1cblxudmFyIHN1cHBvcnRzUmVxdWVzdFN0b3JhZ2UgPSB0eXBlb2YgQXN5bmNMb2NhbFN0b3JhZ2UgPT09ICdmdW5jdGlvbic7XG52YXIgcmVxdWVzdFN0b3JhZ2UgPSBzdXBwb3J0c1JlcXVlc3RTdG9yYWdlID8gbmV3IEFzeW5jTG9jYWxTdG9yYWdlKCkgOiBudWxsOyAvLyBXZSB1c2UgdGhlIE5vZGUgdmVyc2lvbiBidXQgZ2V0IGFjY2VzcyB0byBhc3luY19ob29rcyBmcm9tIGEgZ2xvYmFsLlxuXG50eXBlb2YgYXN5bmNfaG9va3MgPT09ICdvYmplY3QnID8gYXN5bmNfaG9va3MuY3JlYXRlSG9vayA6IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHtcbiAgICBlbmFibGU6IGZ1bmN0aW9uICgpIHt9LFxuICAgIGRpc2FibGU6IGZ1bmN0aW9uICgpIHt9XG4gIH07XG59O1xudHlwZW9mIGFzeW5jX2hvb2tzID09PSAnb2JqZWN0JyA/IGFzeW5jX2hvb2tzLmV4ZWN1dGlvbkFzeW5jSWQgOiBudWxsO1xuXG4vLyBBVFRFTlRJT05cbi8vIFdoZW4gYWRkaW5nIG5ldyBzeW1ib2xzIHRvIHRoaXMgZmlsZSxcbi8vIFBsZWFzZSBjb25zaWRlciBhbHNvIGFkZGluZyB0byAncmVhY3QtZGV2dG9vbHMtc2hhcmVkL3NyYy9iYWNrZW5kL1JlYWN0U3ltYm9scydcbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLlxudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc2VydmVyX2NvbnRleHQnKTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZm9yd2FyZF9yZWYnKTtcbnZhciBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2UnKTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZV9saXN0Jyk7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubWVtbycpO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmxhenknKTtcbnZhciBSRUFDVF9NRU1PX0NBQ0hFX1NFTlRJTkVMID0gU3ltYm9sLmZvcigncmVhY3QubWVtb19jYWNoZV9zZW50aW5lbCcpO1xudmFyIFJFQUNUX1BPU1RQT05FX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3N0cG9uZScpO1xudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcjtcbnZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJztcbmZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICBpZiAobWF5YmVJdGVyYWJsZSA9PT0gbnVsbCB8fCB0eXBlb2YgbWF5YmVJdGVyYWJsZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBtYXliZUl0ZXJhdG9yID0gTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXTtcblxuICBpZiAodHlwZW9mIG1heWJlSXRlcmF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gbWF5YmVJdGVyYXRvcjtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyBGb3JtaW5nIGEgcmV2ZXJzZSB0cmVlLlxuLy8gVGhlIHN0cnVjdHVyZSBvZiBhIGNvbnRleHQgc25hcHNob3QgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmaWxlLlxuLy8gQ3VycmVudGx5LCBpdCdzIGltcGxlbWVudGVkIGFzIHRyYWNraW5nIHRoZSBjdXJyZW50IGFjdGl2ZSBub2RlLlxuXG5cbnZhciByb290Q29udGV4dFNuYXBzaG90ID0gbnVsbDsgLy8gV2UgYXNzdW1lIHRoYXQgdGhpcyBydW50aW1lIG93bnMgdGhlIFwiY3VycmVudFwiIGZpZWxkIG9uIGFsbCBSZWFjdENvbnRleHQgaW5zdGFuY2VzLlxuLy8gVGhpcyBnbG9iYWwgKGFjdHVhbGx5IHRocmVhZCBsb2NhbCkgc3RhdGUgcmVwcmVzZW50cyB3aGF0IHN0YXRlIGFsbCB0aG9zZSBcImN1cnJlbnRcIixcbi8vIGZpZWxkcyBhcmUgY3VycmVudGx5IGluLlxuXG52YXIgY3VycmVudEFjdGl2ZVNuYXBzaG90ID0gbnVsbDtcblxuZnVuY3Rpb24gcG9wTm9kZShwcmV2KSB7XG4gIHtcbiAgICBwcmV2LmNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IHByZXYucGFyZW50VmFsdWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVzaE5vZGUobmV4dCkge1xuICB7XG4gICAgbmV4dC5jb250ZXh0Ll9jdXJyZW50VmFsdWUgPSBuZXh0LnZhbHVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcFRvTmVhcmVzdENvbW1vbkFuY2VzdG9yKHByZXYsIG5leHQpIHtcbiAgaWYgKHByZXYgPT09IG5leHQpIDsgZWxzZSB7XG4gICAgcG9wTm9kZShwcmV2KTtcbiAgICB2YXIgcGFyZW50UHJldiA9IHByZXYucGFyZW50O1xuICAgIHZhciBwYXJlbnROZXh0ID0gbmV4dC5wYXJlbnQ7XG5cbiAgICBpZiAocGFyZW50UHJldiA9PT0gbnVsbCkge1xuICAgICAgaWYgKHBhcmVudE5leHQgIT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgc3RhY2tzIG11c3QgcmVhY2ggdGhlIHJvb3QgYXQgdGhlIHNhbWUgdGltZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBhcmVudE5leHQgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgc3RhY2tzIG11c3QgcmVhY2ggdGhlIHJvb3QgYXQgdGhlIHNhbWUgdGltZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cblxuICAgICAgcG9wVG9OZWFyZXN0Q29tbW9uQW5jZXN0b3IocGFyZW50UHJldiwgcGFyZW50TmV4dCk7IC8vIE9uIHRoZSB3YXkgYmFjaywgd2UgcHVzaCB0aGUgbmV3IG9uZXMgdGhhdCB3ZXJlbid0IGNvbW1vbi5cblxuICAgICAgcHVzaE5vZGUobmV4dCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBvcEFsbFByZXZpb3VzKHByZXYpIHtcbiAgcG9wTm9kZShwcmV2KTtcbiAgdmFyIHBhcmVudFByZXYgPSBwcmV2LnBhcmVudDtcblxuICBpZiAocGFyZW50UHJldiAhPT0gbnVsbCkge1xuICAgIHBvcEFsbFByZXZpb3VzKHBhcmVudFByZXYpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hBbGxOZXh0KG5leHQpIHtcbiAgdmFyIHBhcmVudE5leHQgPSBuZXh0LnBhcmVudDtcblxuICBpZiAocGFyZW50TmV4dCAhPT0gbnVsbCkge1xuICAgIHB1c2hBbGxOZXh0KHBhcmVudE5leHQpO1xuICB9XG5cbiAgcHVzaE5vZGUobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHBvcFByZXZpb3VzVG9Db21tb25MZXZlbChwcmV2LCBuZXh0KSB7XG4gIHBvcE5vZGUocHJldik7XG4gIHZhciBwYXJlbnRQcmV2ID0gcHJldi5wYXJlbnQ7XG5cbiAgaWYgKHBhcmVudFByZXYgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkZXB0aCBtdXN0IGVxdWFsIGF0IGxlYXN0IGF0IHplcm8gYmVmb3JlIHJlYWNoaW5nIHRoZSByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICB9XG5cbiAgaWYgKHBhcmVudFByZXYuZGVwdGggPT09IG5leHQuZGVwdGgpIHtcbiAgICAvLyBXZSBmb3VuZCB0aGUgc2FtZSBsZXZlbC4gTm93IHdlIGp1c3QgbmVlZCB0byBmaW5kIGEgc2hhcmVkIGFuY2VzdG9yLlxuICAgIHBvcFRvTmVhcmVzdENvbW1vbkFuY2VzdG9yKHBhcmVudFByZXYsIG5leHQpO1xuICB9IGVsc2Uge1xuICAgIC8vIFdlIG11c3Qgc3RpbGwgYmUgZGVlcGVyLlxuICAgIHBvcFByZXZpb3VzVG9Db21tb25MZXZlbChwYXJlbnRQcmV2LCBuZXh0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3BOZXh0VG9Db21tb25MZXZlbChwcmV2LCBuZXh0KSB7XG4gIHZhciBwYXJlbnROZXh0ID0gbmV4dC5wYXJlbnQ7XG5cbiAgaWYgKHBhcmVudE5leHQgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkZXB0aCBtdXN0IGVxdWFsIGF0IGxlYXN0IGF0IHplcm8gYmVmb3JlIHJlYWNoaW5nIHRoZSByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICB9XG5cbiAgaWYgKHByZXYuZGVwdGggPT09IHBhcmVudE5leHQuZGVwdGgpIHtcbiAgICAvLyBXZSBmb3VuZCB0aGUgc2FtZSBsZXZlbC4gTm93IHdlIGp1c3QgbmVlZCB0byBmaW5kIGEgc2hhcmVkIGFuY2VzdG9yLlxuICAgIHBvcFRvTmVhcmVzdENvbW1vbkFuY2VzdG9yKHByZXYsIHBhcmVudE5leHQpO1xuICB9IGVsc2Uge1xuICAgIC8vIFdlIG11c3Qgc3RpbGwgYmUgZGVlcGVyLlxuICAgIHBvcE5leHRUb0NvbW1vbkxldmVsKHByZXYsIHBhcmVudE5leHQpO1xuICB9XG5cbiAgcHVzaE5vZGUobmV4dCk7XG59IC8vIFBlcmZvcm0gY29udGV4dCBzd2l0Y2hpbmcgdG8gdGhlIG5ldyBzbmFwc2hvdC5cbi8vIFRvIG1ha2UgaXQgY2hlYXAgdG8gcmVhZCBtYW55IGNvbnRleHRzLCB3aGlsZSBub3Qgc3VzcGVuZGluZywgd2UgbWFrZSB0aGUgc3dpdGNoIGVhZ2VybHkgYnlcbi8vIHVwZGF0aW5nIGFsbCB0aGUgY29udGV4dCdzIGN1cnJlbnQgdmFsdWVzLiBUaGF0IHdheSByZWFkcywgYWx3YXlzIGp1c3QgcmVhZCB0aGUgY3VycmVudCB2YWx1ZS5cbi8vIEF0IHRoZSBjb3N0IG9mIHVwZGF0aW5nIGNvbnRleHRzIGV2ZW4gaWYgdGhleSdyZSBuZXZlciByZWFkIGJ5IHRoaXMgc3VidHJlZS5cblxuXG5mdW5jdGlvbiBzd2l0Y2hDb250ZXh0KG5ld1NuYXBzaG90KSB7XG4gIC8vIFRoZSBiYXNpYyBhbGdvcml0aG0gd2UgbmVlZCB0byBkbyBpcyB0byBwb3AgYmFjayBhbnkgY29udGV4dHMgdGhhdCBhcmUgbm8gbG9uZ2VyIG9uIHRoZSBzdGFjay5cbiAgLy8gV2UgYWxzbyBuZWVkIHRvIHVwZGF0ZSBhbnkgbmV3IGNvbnRleHRzIHRoYXQgYXJlIG5vdyBvbiB0aGUgc3RhY2sgd2l0aCB0aGUgZGVlcGVzdCB2YWx1ZS5cbiAgLy8gVGhlIGVhc2llc3Qgd2F5IHRvIHVwZGF0ZSBuZXcgY29udGV4dHMgaXMgdG8ganVzdCByZWFwcGx5IHRoZW0gaW4gcmV2ZXJzZSBvcmRlciBmcm9tIHRoZVxuICAvLyBwZXJzcGVjdGl2ZSBvZiB0aGUgYmFja3BvaW50ZXJzLiBUbyBhdm9pZCBhbGxvY2F0aW5nIGEgbG90IHdoZW4gc3dpdGNoaW5nLCB3ZSB1c2UgdGhlIHN0YWNrXG4gIC8vIGZvciB0aGF0LiBUaGVyZWZvcmUgdGhpcyBhbGdvcml0aG0gaXMgcmVjdXJzaXZlLlxuICAvLyAxKSBGaXJzdCB3ZSBwb3Agd2hpY2ggZXZlciBzbmFwc2hvdCB0cmVlIHdhcyBkZWVwZXN0LiBQb3BwaW5nIG9sZCBjb250ZXh0cyBhcyB3ZSBnby5cbiAgLy8gMikgVGhlbiB3ZSBmaW5kIHRoZSBuZWFyZXN0IGNvbW1vbiBhbmNlc3RvciBmcm9tIHRoZXJlLiBQb3BwaW5nIG9sZCBjb250ZXh0cyBhcyB3ZSBnby5cbiAgLy8gMykgVGhlbiB3ZSByZWFwcGx5IG5ldyBjb250ZXh0cyBvbiB0aGUgd2F5IGJhY2sgdXAgdGhlIHN0YWNrLlxuICB2YXIgcHJldiA9IGN1cnJlbnRBY3RpdmVTbmFwc2hvdDtcbiAgdmFyIG5leHQgPSBuZXdTbmFwc2hvdDtcblxuICBpZiAocHJldiAhPT0gbmV4dCkge1xuICAgIGlmIChwcmV2ID09PSBudWxsKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogVGhpcyBoYXMgdG8gYmUgbm9uLW51bGwgc2luY2UgaXQncyBub3QgZXF1YWwgdG8gcHJldi5cbiAgICAgIHB1c2hBbGxOZXh0KG5leHQpO1xuICAgIH0gZWxzZSBpZiAobmV4dCA9PT0gbnVsbCkge1xuICAgICAgcG9wQWxsUHJldmlvdXMocHJldik7XG4gICAgfSBlbHNlIGlmIChwcmV2LmRlcHRoID09PSBuZXh0LmRlcHRoKSB7XG4gICAgICBwb3BUb05lYXJlc3RDb21tb25BbmNlc3RvcihwcmV2LCBuZXh0KTtcbiAgICB9IGVsc2UgaWYgKHByZXYuZGVwdGggPiBuZXh0LmRlcHRoKSB7XG4gICAgICBwb3BQcmV2aW91c1RvQ29tbW9uTGV2ZWwocHJldiwgbmV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcE5leHRUb0NvbW1vbkxldmVsKHByZXYsIG5leHQpO1xuICAgIH1cblxuICAgIGN1cnJlbnRBY3RpdmVTbmFwc2hvdCA9IG5leHQ7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldEFjdGl2ZUNvbnRleHQoKSB7XG4gIHJldHVybiBjdXJyZW50QWN0aXZlU25hcHNob3Q7XG59XG5mdW5jdGlvbiByZWFkQ29udGV4dCQxKGNvbnRleHQpIHtcbiAgdmFyIHZhbHVlID0gY29udGV4dC5fY3VycmVudFZhbHVlIDtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vLyBDb3JyZXNwb25kcyB0byBSZWFjdEZpYmVyV2FrZWFibGUgYW5kIFJlYWN0Rml6eldha2VhYmxlIG1vZHVsZXMuIEdlbmVyYWxseSxcbi8vIGNoYW5nZXMgdG8gb25lIG1vZHVsZSBzaG91bGQgYmUgcmVmbGVjdGVkIGluIHRoZSBvdGhlcnMuXG4vLyBUT0RPOiBSZW5hbWUgdGhpcyBtb2R1bGUgYW5kIHRoZSBjb3JyZXNwb25kaW5nIEZpYmVyIG9uZSB0byBcIlRoZW5hYmxlXCJcbi8vIGluc3RlYWQgb2YgXCJXYWtlYWJsZVwiLiBPciBzb21lIG90aGVyIG1vcmUgYXBwcm9wcmlhdGUgbmFtZS5cbi8vIEFuIGVycm9yIHRoYXQgaXMgdGhyb3duIChlLmcuIGJ5IGB1c2VgKSB0byB0cmlnZ2VyIFN1c3BlbnNlLiBJZiB3ZVxuLy8gZGV0ZWN0IHRoaXMgaXMgY2F1Z2h0IGJ5IHVzZXJzcGFjZSwgd2UnbGwgbG9nIGEgd2FybmluZyBpbiBkZXZlbG9wbWVudC5cbnZhciBTdXNwZW5zZUV4Y2VwdGlvbiA9IG5ldyBFcnJvcihcIlN1c3BlbnNlIEV4Y2VwdGlvbjogVGhpcyBpcyBub3QgYSByZWFsIGVycm9yISBJdCdzIGFuIGltcGxlbWVudGF0aW9uIFwiICsgJ2RldGFpbCBvZiBgdXNlYCB0byBpbnRlcnJ1cHQgdGhlIGN1cnJlbnQgcmVuZGVyLiBZb3UgbXVzdCBlaXRoZXIgJyArICdyZXRocm93IGl0IGltbWVkaWF0ZWx5LCBvciBtb3ZlIHRoZSBgdXNlYCBjYWxsIG91dHNpZGUgb2YgdGhlICcgKyAnYHRyeS9jYXRjaGAgYmxvY2suIENhcHR1cmluZyB3aXRob3V0IHJldGhyb3dpbmcgd2lsbCBsZWFkIHRvICcgKyAndW5leHBlY3RlZCBiZWhhdmlvci5cXG5cXG4nICsgJ1RvIGhhbmRsZSBhc3luYyBlcnJvcnMsIHdyYXAgeW91ciBjb21wb25lbnQgaW4gYW4gZXJyb3IgYm91bmRhcnksIG9yICcgKyBcImNhbGwgdGhlIHByb21pc2UncyBgLmNhdGNoYCBtZXRob2QgYW5kIHBhc3MgdGhlIHJlc3VsdCB0byBgdXNlYFwiKTtcbmZ1bmN0aW9uIGNyZWF0ZVRoZW5hYmxlU3RhdGUoKSB7XG4gIC8vIFRoZSBUaGVuYWJsZVN0YXRlIGlzIGNyZWF0ZWQgdGhlIGZpcnN0IHRpbWUgYSBjb21wb25lbnQgc3VzcGVuZHMuIElmIGl0XG4gIC8vIHN1c3BlbmRzIGFnYWluLCB3ZSdsbCByZXVzZSB0aGUgc2FtZSBzdGF0ZS5cbiAgcmV0dXJuIFtdO1xufVxuXG5mdW5jdGlvbiBub29wKCkge31cblxuZnVuY3Rpb24gdHJhY2tVc2VkVGhlbmFibGUodGhlbmFibGVTdGF0ZSwgdGhlbmFibGUsIGluZGV4KSB7XG4gIHZhciBwcmV2aW91cyA9IHRoZW5hYmxlU3RhdGVbaW5kZXhdO1xuXG4gIGlmIChwcmV2aW91cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhlbmFibGVTdGF0ZS5wdXNoKHRoZW5hYmxlKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJldmlvdXMgIT09IHRoZW5hYmxlKSB7XG4gICAgICAvLyBSZXVzZSB0aGUgcHJldmlvdXMgdGhlbmFibGUsIGFuZCBkcm9wIHRoZSBuZXcgb25lLiBXZSBjYW4gYXNzdW1lXG4gICAgICAvLyB0aGV5IHJlcHJlc2VudCB0aGUgc2FtZSB2YWx1ZSwgYmVjYXVzZSBjb21wb25lbnRzIGFyZSBpZGVtcG90ZW50LlxuICAgICAgLy8gQXZvaWQgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiBlcnJvcnMgZm9yIHRoZSBQcm9taXNlcyB0aGF0IHdlJ2xsXG4gICAgICAvLyBpbnRlbnRpb25hbGx5IGlnbm9yZS5cbiAgICAgIHRoZW5hYmxlLnRoZW4obm9vcCwgbm9vcCk7XG4gICAgICB0aGVuYWJsZSA9IHByZXZpb3VzO1xuICAgIH1cbiAgfSAvLyBXZSB1c2UgYW4gZXhwYW5kbyB0byB0cmFjayB0aGUgc3RhdHVzIGFuZCByZXN1bHQgb2YgYSB0aGVuYWJsZSBzbyB0aGF0IHdlXG4gIC8vIGNhbiBzeW5jaHJvbm91c2x5IHVud3JhcCB0aGUgdmFsdWUuIFRoaW5rIG9mIHRoaXMgYXMgYW4gZXh0ZW5zaW9uIG9mIHRoZVxuICAvLyBQcm9taXNlIEFQSSwgb3IgYSBjdXN0b20gaW50ZXJmYWNlIHRoYXQgaXMgYSBzdXBlcnNldCBvZiBUaGVuYWJsZS5cbiAgLy9cbiAgLy8gSWYgdGhlIHRoZW5hYmxlIGRvZXNuJ3QgaGF2ZSBhIHN0YXR1cywgc2V0IGl0IHRvIFwicGVuZGluZ1wiIGFuZCBhdHRhY2hcbiAgLy8gYSBsaXN0ZW5lciB0aGF0IHdpbGwgdXBkYXRlIGl0cyBzdGF0dXMgYW5kIHJlc3VsdCB3aGVuIGl0IHJlc29sdmVzLlxuXG5cbiAgc3dpdGNoICh0aGVuYWJsZS5zdGF0dXMpIHtcbiAgICBjYXNlICdmdWxmaWxsZWQnOlxuICAgICAge1xuICAgICAgICB2YXIgZnVsZmlsbGVkVmFsdWUgPSB0aGVuYWJsZS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGZ1bGZpbGxlZFZhbHVlO1xuICAgICAgfVxuXG4gICAgY2FzZSAncmVqZWN0ZWQnOlxuICAgICAge1xuICAgICAgICB2YXIgcmVqZWN0ZWRFcnJvciA9IHRoZW5hYmxlLnJlYXNvbjtcbiAgICAgICAgdGhyb3cgcmVqZWN0ZWRFcnJvcjtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhlbmFibGUuc3RhdHVzID09PSAnc3RyaW5nJykgOyBlbHNlIHtcbiAgICAgICAgICB2YXIgcGVuZGluZ1RoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgICAgcGVuZGluZ1RoZW5hYmxlLnN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICAgICAgICBwZW5kaW5nVGhlbmFibGUudGhlbihmdW5jdGlvbiAoZnVsZmlsbGVkVmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0aGVuYWJsZS5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgICAgICAgICB2YXIgZnVsZmlsbGVkVGhlbmFibGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICAgICAgZnVsZmlsbGVkVGhlbmFibGUuc3RhdHVzID0gJ2Z1bGZpbGxlZCc7XG4gICAgICAgICAgICAgIGZ1bGZpbGxlZFRoZW5hYmxlLnZhbHVlID0gZnVsZmlsbGVkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAodGhlbmFibGUuc3RhdHVzID09PSAncGVuZGluZycpIHtcbiAgICAgICAgICAgICAgdmFyIHJlamVjdGVkVGhlbmFibGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICAgICAgcmVqZWN0ZWRUaGVuYWJsZS5zdGF0dXMgPSAncmVqZWN0ZWQnO1xuICAgICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pOyAvLyBDaGVjayBvbmUgbW9yZSB0aW1lIGluIGNhc2UgdGhlIHRoZW5hYmxlIHJlc29sdmVkIHN5bmNocm9ub3VzbHlcblxuICAgICAgICAgIHN3aXRjaCAodGhlbmFibGUuc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlICdmdWxmaWxsZWQnOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFyIGZ1bGZpbGxlZFRoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGZpbGxlZFRoZW5hYmxlLnZhbHVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ3JlamVjdGVkJzpcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhciByZWplY3RlZFRoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgICAgICAgICAgdGhyb3cgcmVqZWN0ZWRUaGVuYWJsZS5yZWFzb247XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gU3VzcGVuZC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhyb3dpbmcgaGVyZSBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgdGhhdCBhbGxvd3MgdXMgdG8gdW53aW5kIHRoZVxuICAgICAgICAvLyBjYWxsIHN0YWNrLiBCdXQgd2Ugc2hvdWxkbid0IGFsbG93IGl0IHRvIGxlYWsgaW50byB1c2Vyc3BhY2UuIFRocm93IGFuXG4gICAgICAgIC8vIG9wYXF1ZSBwbGFjZWhvbGRlciB2YWx1ZSBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgdGhlbmFibGUuIElmIGl0IGRvZXNuJ3RcbiAgICAgICAgLy8gZ2V0IGNhcHR1cmVkIGJ5IHRoZSB3b3JrIGxvb3AsIGxvZyBhIHdhcm5pbmcsIGJlY2F1c2UgdGhhdCBtZWFuc1xuICAgICAgICAvLyBzb21ldGhpbmcgaW4gdXNlcnNwYWNlIG11c3QgaGF2ZSBjYXVnaHQgaXQuXG5cblxuICAgICAgICBzdXNwZW5kZWRUaGVuYWJsZSA9IHRoZW5hYmxlO1xuICAgICAgICB0aHJvdyBTdXNwZW5zZUV4Y2VwdGlvbjtcbiAgICAgIH1cbiAgfVxufSAvLyBUaGlzIGlzIHVzZWQgdG8gdHJhY2sgdGhlIGFjdHVhbCB0aGVuYWJsZSB0aGF0IHN1c3BlbmRlZCBzbyBpdCBjYW4gYmVcbi8vIHBhc3NlZCB0byB0aGUgcmVzdCBvZiB0aGUgU3VzcGVuc2UgaW1wbGVtZW50YXRpb24g4oCUIHdoaWNoLCBmb3IgaGlzdG9yaWNhbFxuLy8gcmVhc29ucywgZXhwZWN0cyB0byByZWNlaXZlIGEgdGhlbmFibGUuXG5cbnZhciBzdXNwZW5kZWRUaGVuYWJsZSA9IG51bGw7XG5mdW5jdGlvbiBnZXRTdXNwZW5kZWRUaGVuYWJsZSgpIHtcbiAgLy8gVGhpcyBpcyBjYWxsZWQgcmlnaHQgYWZ0ZXIgYHVzZWAgc3VzcGVuZHMgYnkgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLiBgdXNlYFxuICAvLyB0aHJvd3MgYW4gb3BhcXVlIHZhbHVlIGluc3RlYWQgb2YgdGhlIHRoZW5hYmxlIGl0c2VsZiBzbyB0aGF0IGl0IGNhbid0IGJlXG4gIC8vIGNhdWdodCBpbiB1c2Vyc3BhY2UuIFRoZW4gdGhlIHdvcmsgbG9vcCBhY2Nlc3NlcyB0aGUgYWN0dWFsIHRoZW5hYmxlIHVzaW5nXG4gIC8vIHRoaXMgZnVuY3Rpb24uXG4gIGlmIChzdXNwZW5kZWRUaGVuYWJsZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYSBzdXNwZW5kZWQgdGhlbmFibGUuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlICcgKyAnYW4gaXNzdWUuJyk7XG4gIH1cblxuICB2YXIgdGhlbmFibGUgPSBzdXNwZW5kZWRUaGVuYWJsZTtcbiAgc3VzcGVuZGVkVGhlbmFibGUgPSBudWxsO1xuICByZXR1cm4gdGhlbmFibGU7XG59XG5cbnZhciBjdXJyZW50UmVxdWVzdCQxID0gbnVsbDtcbnZhciB0aGVuYWJsZUluZGV4Q291bnRlciA9IDA7XG52YXIgdGhlbmFibGVTdGF0ZSA9IG51bGw7XG5mdW5jdGlvbiBwcmVwYXJlVG9Vc2VIb29rc0ZvclJlcXVlc3QocmVxdWVzdCkge1xuICBjdXJyZW50UmVxdWVzdCQxID0gcmVxdWVzdDtcbn1cbmZ1bmN0aW9uIHJlc2V0SG9va3NGb3JSZXF1ZXN0KCkge1xuICBjdXJyZW50UmVxdWVzdCQxID0gbnVsbDtcbn1cbmZ1bmN0aW9uIHByZXBhcmVUb1VzZUhvb2tzRm9yQ29tcG9uZW50KHByZXZUaGVuYWJsZVN0YXRlKSB7XG4gIHRoZW5hYmxlSW5kZXhDb3VudGVyID0gMDtcbiAgdGhlbmFibGVTdGF0ZSA9IHByZXZUaGVuYWJsZVN0YXRlO1xufVxuZnVuY3Rpb24gZ2V0VGhlbmFibGVTdGF0ZUFmdGVyU3VzcGVuZGluZygpIHtcbiAgdmFyIHN0YXRlID0gdGhlbmFibGVTdGF0ZTtcbiAgdGhlbmFibGVTdGF0ZSA9IG51bGw7XG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZnVuY3Rpb24gcmVhZENvbnRleHQoY29udGV4dCkge1xuICB7XG4gICAgaWYgKGNvbnRleHQuJCR0eXBlb2YgIT09IFJFQUNUX1NFUlZFUl9DT05URVhUX1RZUEUpIHtcbiAgICAgIGlmIChpc0NsaWVudFJlZmVyZW5jZShjb250ZXh0KSkge1xuICAgICAgICBlcnJvcignQ2Fubm90IHJlYWQgYSBDbGllbnQgQ29udGV4dCBmcm9tIGEgU2VydmVyIENvbXBvbmVudC4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdPbmx5IGNyZWF0ZVNlcnZlckNvbnRleHQgaXMgc3VwcG9ydGVkIGluIFNlcnZlciBDb21wb25lbnRzLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50UmVxdWVzdCQxID09PSBudWxsKSB7XG4gICAgICBlcnJvcignQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gJyArICdJbiBjbGFzc2VzLCB5b3UgY2FuIHJlYWQgaXQgaW4gdGhlIHJlbmRlciBtZXRob2Qgb3IgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiAnICsgJ0luIGZ1bmN0aW9uIGNvbXBvbmVudHMsIHlvdSBjYW4gcmVhZCBpdCBkaXJlY3RseSBpbiB0aGUgZnVuY3Rpb24gYm9keSwgYnV0IG5vdCAnICsgJ2luc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlYWRDb250ZXh0JDEoY29udGV4dCk7XG59XG5cbnZhciBIb29rc0Rpc3BhdGNoZXIgPSB7XG4gIHVzZU1lbW86IGZ1bmN0aW9uIChuZXh0Q3JlYXRlKSB7XG4gICAgcmV0dXJuIG5leHRDcmVhdGUoKTtcbiAgfSxcbiAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgIHJldHVybiBjYWxsYmFjaztcbiAgfSxcbiAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKCkge30sXG4gIHVzZURlZmVycmVkVmFsdWU6IHVuc3VwcG9ydGVkSG9vayxcbiAgdXNlVHJhbnNpdGlvbjogdW5zdXBwb3J0ZWRIb29rLFxuICByZWFkQ29udGV4dDogcmVhZENvbnRleHQsXG4gIHVzZUNvbnRleHQ6IHJlYWRDb250ZXh0LFxuICB1c2VSZWR1Y2VyOiB1bnN1cHBvcnRlZEhvb2ssXG4gIHVzZVJlZjogdW5zdXBwb3J0ZWRIb29rLFxuICB1c2VTdGF0ZTogdW5zdXBwb3J0ZWRIb29rLFxuICB1c2VJbnNlcnRpb25FZmZlY3Q6IHVuc3VwcG9ydGVkSG9vayxcbiAgdXNlTGF5b3V0RWZmZWN0OiB1bnN1cHBvcnRlZEhvb2ssXG4gIHVzZUltcGVyYXRpdmVIYW5kbGU6IHVuc3VwcG9ydGVkSG9vayxcbiAgdXNlRWZmZWN0OiB1bnN1cHBvcnRlZEhvb2ssXG4gIHVzZUlkOiB1c2VJZCxcbiAgdXNlU3luY0V4dGVybmFsU3RvcmU6IHVuc3VwcG9ydGVkSG9vayxcbiAgdXNlQ2FjaGVSZWZyZXNoOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHVuc3VwcG9ydGVkUmVmcmVzaDtcbiAgfSxcbiAgdXNlTWVtb0NhY2hlOiBmdW5jdGlvbiAoc2l6ZSkge1xuICAgIHZhciBkYXRhID0gbmV3IEFycmF5KHNpemUpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcbiAgICAgIGRhdGFbaV0gPSBSRUFDVF9NRU1PX0NBQ0hFX1NFTlRJTkVMO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9LFxuICB1c2U6IHVzZVxufTtcblxuZnVuY3Rpb24gdW5zdXBwb3J0ZWRIb29rKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgSG9vayBpcyBub3Qgc3VwcG9ydGVkIGluIFNlcnZlciBDb21wb25lbnRzLicpO1xufVxuXG5mdW5jdGlvbiB1bnN1cHBvcnRlZFJlZnJlc2goKSB7XG4gIHRocm93IG5ldyBFcnJvcignUmVmcmVzaGluZyB0aGUgY2FjaGUgaXMgbm90IHN1cHBvcnRlZCBpbiBTZXJ2ZXIgQ29tcG9uZW50cy4nKTtcbn1cblxuZnVuY3Rpb24gdXNlSWQoKSB7XG4gIGlmIChjdXJyZW50UmVxdWVzdCQxID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VJZCBjYW4gb25seSBiZSB1c2VkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZycpO1xuICB9XG5cbiAgdmFyIGlkID0gY3VycmVudFJlcXVlc3QkMS5pZGVudGlmaWVyQ291bnQrKzsgLy8gdXNlICdTJyBmb3IgRmxpZ2h0IGNvbXBvbmVudHMgdG8gZGlzdGluZ3Vpc2ggZnJvbSAnUicgYW5kICdyJyBpbiBGaXp6L0NsaWVudFxuXG4gIHJldHVybiAnOicgKyBjdXJyZW50UmVxdWVzdCQxLmlkZW50aWZpZXJQcmVmaXggKyAnUycgKyBpZC50b1N0cmluZygzMikgKyAnOic7XG59XG5cbmZ1bmN0aW9uIHVzZSh1c2FibGUpIHtcbiAgaWYgKHVzYWJsZSAhPT0gbnVsbCAmJiB0eXBlb2YgdXNhYmxlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdXNhYmxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuICAgIGlmICh0eXBlb2YgdXNhYmxlLnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSB0aGVuYWJsZS5cbiAgICAgIHZhciB0aGVuYWJsZSA9IHVzYWJsZTsgLy8gVHJhY2sgdGhlIHBvc2l0aW9uIG9mIHRoZSB0aGVuYWJsZSB3aXRoaW4gdGhpcyBmaWJlci5cblxuICAgICAgdmFyIGluZGV4ID0gdGhlbmFibGVJbmRleENvdW50ZXI7XG4gICAgICB0aGVuYWJsZUluZGV4Q291bnRlciArPSAxO1xuXG4gICAgICBpZiAodGhlbmFibGVTdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICB0aGVuYWJsZVN0YXRlID0gY3JlYXRlVGhlbmFibGVTdGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJhY2tVc2VkVGhlbmFibGUodGhlbmFibGVTdGF0ZSwgdGhlbmFibGUsIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKHVzYWJsZS4kJHR5cGVvZiA9PT0gUkVBQ1RfU0VSVkVSX0NPTlRFWFRfVFlQRSkge1xuICAgICAgdmFyIGNvbnRleHQgPSB1c2FibGU7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChpc0NsaWVudFJlZmVyZW5jZSh1c2FibGUpKSB7XG4gICAgICBlcnJvcignQ2Fubm90IHVzZSgpIGFuIGFscmVhZHkgcmVzb2x2ZWQgQ2xpZW50IFJlZmVyZW5jZS4nKTtcbiAgICB9XG4gIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICB0aHJvdyBuZXcgRXJyb3IoJ0FuIHVuc3VwcG9ydGVkIHR5cGUgd2FzIHBhc3NlZCB0byB1c2UoKTogJyArIFN0cmluZyh1c2FibGUpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2lnbmFsKCkge1xuICByZXR1cm4gbmV3IEFib3J0Q29udHJvbGxlcigpLnNpZ25hbDtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUNhY2hlKCkge1xuICB2YXIgcmVxdWVzdCA9IHJlc29sdmVSZXF1ZXN0KCk7XG5cbiAgaWYgKHJlcXVlc3QpIHtcbiAgICByZXR1cm4gZ2V0Q2FjaGUocmVxdWVzdCk7XG4gIH1cblxuICByZXR1cm4gbmV3IE1hcCgpO1xufVxuXG52YXIgRGVmYXVsdENhY2hlRGlzcGF0Y2hlciA9IHtcbiAgZ2V0Q2FjaGVTaWduYWw6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY2FjaGUgPSByZXNvbHZlQ2FjaGUoKTtcbiAgICB2YXIgZW50cnkgPSBjYWNoZS5nZXQoY3JlYXRlU2lnbmFsKTtcblxuICAgIGlmIChlbnRyeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBlbnRyeSA9IGNyZWF0ZVNpZ25hbCgpO1xuICAgICAgY2FjaGUuc2V0KGNyZWF0ZVNpZ25hbCwgZW50cnkpO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRyeTtcbiAgfSxcbiAgZ2V0Q2FjaGVGb3JUeXBlOiBmdW5jdGlvbiAocmVzb3VyY2VUeXBlKSB7XG4gICAgdmFyIGNhY2hlID0gcmVzb2x2ZUNhY2hlKCk7XG4gICAgdmFyIGVudHJ5ID0gY2FjaGUuZ2V0KHJlc291cmNlVHlwZSk7XG5cbiAgICBpZiAoZW50cnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZW50cnkgPSByZXNvdXJjZVR5cGUoKTsgLy8gVE9ETzogV2FybiBpZiB1bmRlZmluZWQ/XG5cbiAgICAgIGNhY2hlLnNldChyZXNvdXJjZVR5cGUsIGVudHJ5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnk7XG4gIH1cbn07XG5cbnZhciBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcblxuZnVuY3Rpb24gaXNBcnJheShhKSB7XG4gIHJldHVybiBpc0FycmF5SW1wbChhKTtcbn1cblxudmFyIGdldFByb3RvdHlwZU9mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuXG4vLyBpbiBjYXNlIHRoZXkgZXJyb3IuXG5cbnZhciBqc3hQcm9wc1BhcmVudHMgPSBuZXcgV2Vha01hcCgpO1xudmFyIGpzeENoaWxkcmVuUGFyZW50cyA9IG5ldyBXZWFrTWFwKCk7XG5cbmZ1bmN0aW9uIGlzT2JqZWN0UHJvdG90eXBlKG9iamVjdCkge1xuICBpZiAoIW9iamVjdCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBPYmplY3RQcm90b3R5cGUgPSBPYmplY3QucHJvdG90eXBlO1xuXG4gIGlmIChvYmplY3QgPT09IE9iamVjdFByb3RvdHlwZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIEl0IG1pZ2h0IGJlIGFuIG9iamVjdCBmcm9tIGEgZGlmZmVyZW50IFJlYWxtIHdoaWNoIGlzXG4gIC8vIHN0aWxsIGp1c3QgYSBwbGFpbiBzaW1wbGUgb2JqZWN0LlxuXG5cbiAgaWYgKGdldFByb3RvdHlwZU9mKG9iamVjdCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgbmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIShuYW1lc1tpXSBpbiBPYmplY3RQcm90b3R5cGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGlzU2ltcGxlT2JqZWN0KG9iamVjdCkge1xuICBpZiAoIWlzT2JqZWN0UHJvdG90eXBlKGdldFByb3RvdHlwZU9mKG9iamVjdCkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIG5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgbmFtZXNbaV0pO1xuXG4gICAgaWYgKCFkZXNjcmlwdG9yKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFkZXNjcmlwdG9yLmVudW1lcmFibGUpIHtcbiAgICAgIGlmICgobmFtZXNbaV0gPT09ICdrZXknIHx8IG5hbWVzW2ldID09PSAncmVmJykgJiYgdHlwZW9mIGRlc2NyaXB0b3IuZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIFJlYWN0IGFkZHMga2V5IGFuZCByZWYgZ2V0dGVycyB0byBwcm9wcyBvYmplY3RzIHRvIGlzc3VlIHdhcm5pbmdzLlxuICAgICAgICAvLyBUaG9zZSBnZXR0ZXJzIHdpbGwgbm90IGJlIHRyYW5zZmVycmVkIHRvIHRoZSBjbGllbnQsIGJ1dCB0aGF0J3Mgb2ssXG4gICAgICAgIC8vIHNvIHdlJ2xsIHNwZWNpYWwgY2FzZSB0aGVtLlxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gb2JqZWN0TmFtZShvYmplY3QpIHtcbiAgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuICB2YXIgbmFtZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xuICByZXR1cm4gbmFtZS5yZXBsYWNlKC9eXFxbb2JqZWN0ICguKilcXF0kLywgZnVuY3Rpb24gKG0sIHAwKSB7XG4gICAgcmV0dXJuIHAwO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVLZXlGb3JFcnJvck1lc3NhZ2Uoa2V5KSB7XG4gIHZhciBlbmNvZGVkS2V5ID0gSlNPTi5zdHJpbmdpZnkoa2V5KTtcbiAgcmV0dXJuICdcIicgKyBrZXkgKyAnXCInID09PSBlbmNvZGVkS2V5ID8ga2V5IDogZW5jb2RlZEtleTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZSh2YWx1ZSkge1xuICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZS5sZW5ndGggPD0gMTAgPyB2YWx1ZSA6IHZhbHVlLnNsaWNlKDAsIDEwKSArICcuLi4nKTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICB7XG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiAnWy4uLl0nO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG5hbWUgPSBvYmplY3ROYW1lKHZhbHVlKTtcblxuICAgICAgICBpZiAobmFtZSA9PT0gJ09iamVjdCcpIHtcbiAgICAgICAgICByZXR1cm4gJ3suLi59JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgfVxuXG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgcmV0dXJuICdmdW5jdGlvbic7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2VMaXN0JztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZS5yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZS50eXBlKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlRWxlbWVudFR5cGUoaW5pdChwYXlsb2FkKSk7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2Uob2JqZWN0T3JBcnJheSwgZXhwYW5kZWROYW1lKSB7XG4gIHZhciBvYmpLaW5kID0gb2JqZWN0TmFtZShvYmplY3RPckFycmF5KTtcblxuICBpZiAob2JqS2luZCAhPT0gJ09iamVjdCcgJiYgb2JqS2luZCAhPT0gJ0FycmF5Jykge1xuICAgIHJldHVybiBvYmpLaW5kO1xuICB9XG5cbiAgdmFyIHN0ciA9ICcnO1xuICB2YXIgc3RhcnQgPSAtMTtcbiAgdmFyIGxlbmd0aCA9IDA7XG5cbiAgaWYgKGlzQXJyYXkob2JqZWN0T3JBcnJheSkpIHtcbiAgICBpZiAoanN4Q2hpbGRyZW5QYXJlbnRzLmhhcyhvYmplY3RPckFycmF5KSkge1xuICAgICAgLy8gUHJpbnQgSlNYIENoaWxkcmVuXG4gICAgICB2YXIgdHlwZSA9IGpzeENoaWxkcmVuUGFyZW50cy5nZXQob2JqZWN0T3JBcnJheSk7XG4gICAgICBzdHIgPSAnPCcgKyBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUpICsgJz4nO1xuICAgICAgdmFyIGFycmF5ID0gb2JqZWN0T3JBcnJheTtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpXTtcbiAgICAgICAgdmFyIHN1YnN0ciA9IHZvaWQgMDtcblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHN1YnN0ciA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICBzdWJzdHIgPSAneycgKyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh2YWx1ZSkgKyAnfSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3Vic3RyID0gJ3snICsgZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZSh2YWx1ZSkgKyAnfSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJycgKyBpID09PSBleHBhbmRlZE5hbWUpIHtcbiAgICAgICAgICBzdGFydCA9IHN0ci5sZW5ndGg7XG4gICAgICAgICAgbGVuZ3RoID0gc3Vic3RyLmxlbmd0aDtcbiAgICAgICAgICBzdHIgKz0gc3Vic3RyO1xuICAgICAgICB9IGVsc2UgaWYgKHN1YnN0ci5sZW5ndGggPCAxNSAmJiBzdHIubGVuZ3RoICsgc3Vic3RyLmxlbmd0aCA8IDQwKSB7XG4gICAgICAgICAgc3RyICs9IHN1YnN0cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHIgKz0gJ3suLi59JztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzdHIgKz0gJzwvJyArIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZSkgKyAnPic7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFByaW50IEFycmF5XG4gICAgICBzdHIgPSAnWyc7XG4gICAgICB2YXIgX2FycmF5ID0gb2JqZWN0T3JBcnJheTtcblxuICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IF9hcnJheS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgaWYgKF9pID4gMCkge1xuICAgICAgICAgIHN0ciArPSAnLCAnO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIF92YWx1ZSA9IF9hcnJheVtfaV07XG5cbiAgICAgICAgdmFyIF9zdWJzdHIgPSB2b2lkIDA7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBfdmFsdWUgPT09ICdvYmplY3QnICYmIF92YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIF9zdWJzdHIgPSBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShfdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9zdWJzdHIgPSBkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlKF92YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJycgKyBfaSA9PT0gZXhwYW5kZWROYW1lKSB7XG4gICAgICAgICAgc3RhcnQgPSBzdHIubGVuZ3RoO1xuICAgICAgICAgIGxlbmd0aCA9IF9zdWJzdHIubGVuZ3RoO1xuICAgICAgICAgIHN0ciArPSBfc3Vic3RyO1xuICAgICAgICB9IGVsc2UgaWYgKF9zdWJzdHIubGVuZ3RoIDwgMTAgJiYgc3RyLmxlbmd0aCArIF9zdWJzdHIubGVuZ3RoIDwgNDApIHtcbiAgICAgICAgICBzdHIgKz0gX3N1YnN0cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHIgKz0gJy4uLic7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3RyICs9ICddJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKG9iamVjdE9yQXJyYXkuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgc3RyID0gJzwnICsgZGVzY3JpYmVFbGVtZW50VHlwZShvYmplY3RPckFycmF5LnR5cGUpICsgJy8+JztcbiAgICB9IGVsc2UgaWYgKGpzeFByb3BzUGFyZW50cy5oYXMob2JqZWN0T3JBcnJheSkpIHtcbiAgICAgIC8vIFByaW50IEpTWFxuICAgICAgdmFyIF90eXBlID0ganN4UHJvcHNQYXJlbnRzLmdldChvYmplY3RPckFycmF5KTtcblxuICAgICAgc3RyID0gJzwnICsgKGRlc2NyaWJlRWxlbWVudFR5cGUoX3R5cGUpIHx8ICcuLi4nKTtcbiAgICAgIHZhciBvYmplY3QgPSBvYmplY3RPckFycmF5O1xuICAgICAgdmFyIG5hbWVzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICAgICAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgbmFtZXMubGVuZ3RoOyBfaTIrKykge1xuICAgICAgICBzdHIgKz0gJyAnO1xuICAgICAgICB2YXIgbmFtZSA9IG5hbWVzW19pMl07XG4gICAgICAgIHN0ciArPSBkZXNjcmliZUtleUZvckVycm9yTWVzc2FnZShuYW1lKSArICc9JztcbiAgICAgICAgdmFyIF92YWx1ZTIgPSBvYmplY3RbbmFtZV07XG5cbiAgICAgICAgdmFyIF9zdWJzdHIyID0gdm9pZCAwO1xuXG4gICAgICAgIGlmIChuYW1lID09PSBleHBhbmRlZE5hbWUgJiYgdHlwZW9mIF92YWx1ZTIgPT09ICdvYmplY3QnICYmIF92YWx1ZTIgIT09IG51bGwpIHtcbiAgICAgICAgICBfc3Vic3RyMiA9IGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKF92YWx1ZTIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9zdWJzdHIyID0gZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZShfdmFsdWUyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgX3ZhbHVlMiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBfc3Vic3RyMiA9ICd7JyArIF9zdWJzdHIyICsgJ30nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5hbWUgPT09IGV4cGFuZGVkTmFtZSkge1xuICAgICAgICAgIHN0YXJ0ID0gc3RyLmxlbmd0aDtcbiAgICAgICAgICBsZW5ndGggPSBfc3Vic3RyMi5sZW5ndGg7XG4gICAgICAgICAgc3RyICs9IF9zdWJzdHIyO1xuICAgICAgICB9IGVsc2UgaWYgKF9zdWJzdHIyLmxlbmd0aCA8IDEwICYmIHN0ci5sZW5ndGggKyBfc3Vic3RyMi5sZW5ndGggPCA0MCkge1xuICAgICAgICAgIHN0ciArPSBfc3Vic3RyMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHIgKz0gJy4uLic7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3RyICs9ICc+JztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUHJpbnQgT2JqZWN0XG4gICAgICBzdHIgPSAneyc7XG4gICAgICB2YXIgX29iamVjdCA9IG9iamVjdE9yQXJyYXk7XG5cbiAgICAgIHZhciBfbmFtZXMgPSBPYmplY3Qua2V5cyhfb2JqZWN0KTtcblxuICAgICAgZm9yICh2YXIgX2kzID0gMDsgX2kzIDwgX25hbWVzLmxlbmd0aDsgX2kzKyspIHtcbiAgICAgICAgaWYgKF9pMyA+IDApIHtcbiAgICAgICAgICBzdHIgKz0gJywgJztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfbmFtZSA9IF9uYW1lc1tfaTNdO1xuICAgICAgICBzdHIgKz0gZGVzY3JpYmVLZXlGb3JFcnJvck1lc3NhZ2UoX25hbWUpICsgJzogJztcbiAgICAgICAgdmFyIF92YWx1ZTMgPSBfb2JqZWN0W19uYW1lXTtcblxuICAgICAgICB2YXIgX3N1YnN0cjMgPSB2b2lkIDA7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBfdmFsdWUzID09PSAnb2JqZWN0JyAmJiBfdmFsdWUzICE9PSBudWxsKSB7XG4gICAgICAgICAgX3N1YnN0cjMgPSBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShfdmFsdWUzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfc3Vic3RyMyA9IGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX25hbWUgPT09IGV4cGFuZGVkTmFtZSkge1xuICAgICAgICAgIHN0YXJ0ID0gc3RyLmxlbmd0aDtcbiAgICAgICAgICBsZW5ndGggPSBfc3Vic3RyMy5sZW5ndGg7XG4gICAgICAgICAgc3RyICs9IF9zdWJzdHIzO1xuICAgICAgICB9IGVsc2UgaWYgKF9zdWJzdHIzLmxlbmd0aCA8IDEwICYmIHN0ci5sZW5ndGggKyBfc3Vic3RyMy5sZW5ndGggPCA0MCkge1xuICAgICAgICAgIHN0ciArPSBfc3Vic3RyMztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHIgKz0gJy4uLic7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3RyICs9ICd9JztcbiAgICB9XG4gIH1cblxuICBpZiAoZXhwYW5kZWROYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgaWYgKHN0YXJ0ID4gLTEgJiYgbGVuZ3RoID4gMCkge1xuICAgIHZhciBoaWdobGlnaHQgPSAnICcucmVwZWF0KHN0YXJ0KSArICdeJy5yZXBlYXQobGVuZ3RoKTtcbiAgICByZXR1cm4gJ1xcbiAgJyArIHN0ciArICdcXG4gICcgKyBoaWdobGlnaHQ7XG4gIH1cblxuICByZXR1cm4gJ1xcbiAgJyArIHN0cjtcbn1cblxudmFyIFJlYWN0U2hhcmVkU2VydmVySW50ZXJuYWxzID0gLy8gJEZsb3dGaXhNZTogSXQncyBkZWZpbmVkIGluIHRoZSBvbmUgd2UgcmVzb2x2ZSB0by5cblJlYWN0Ll9fU0VDUkVUX1NFUlZFUl9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtcblxuaWYgKCFSZWFjdFNoYXJlZFNlcnZlckludGVybmFscykge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcInJlYWN0XCIgcGFja2FnZSBpbiB0aGlzIGVudmlyb25tZW50IGlzIG5vdCBjb25maWd1cmVkIGNvcnJlY3RseS4gJyArICdUaGUgXCJyZWFjdC1zZXJ2ZXJcIiBjb25kaXRpb24gbXVzdCBiZSBlbmFibGVkIGluIGFueSBlbnZpcm9ubWVudCB0aGF0ICcgKyAncnVucyBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cy4nKTtcbn1cblxudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG52YXIgc3RyaW5naWZ5ID0gSlNPTi5zdHJpbmdpZnk7IC8vIFNlcmlhbGl6YWJsZSB2YWx1ZXNcbi8vIFRoZW5hYmxlPFJlYWN0Q2xpZW50VmFsdWU+XG5cbnZhciBQRU5ESU5HJDEgPSAwO1xudmFyIENPTVBMRVRFRCA9IDE7XG52YXIgQUJPUlRFRCA9IDM7XG52YXIgRVJST1JFRCQxID0gNDtcbnZhciBSZWFjdEN1cnJlbnRDYWNoZSA9IFJlYWN0U2hhcmVkU2VydmVySW50ZXJuYWxzLlJlYWN0Q3VycmVudENhY2hlO1xudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyO1xuXG5mdW5jdGlvbiBkZWZhdWx0RXJyb3JIYW5kbGVyKGVycm9yKSB7XG4gIGNvbnNvbGVbJ2Vycm9yJ10oZXJyb3IpOyAvLyBEb24ndCB0cmFuc2Zvcm0gdG8gb3VyIHdyYXBwZXJcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFBvc3Rwb25lSGFuZGxlcihyZWFzb24pIHsvLyBOb29wXG59XG5cbnZhciBPUEVOID0gMDtcbnZhciBDTE9TSU5HID0gMTtcbnZhciBDTE9TRUQgPSAyO1xuZnVuY3Rpb24gY3JlYXRlUmVxdWVzdChtb2RlbCwgYnVuZGxlckNvbmZpZywgb25FcnJvciwgY29udGV4dCwgaWRlbnRpZmllclByZWZpeCwgb25Qb3N0cG9uZSkge1xuICBpZiAoUmVhY3RDdXJyZW50Q2FjaGUuY3VycmVudCAhPT0gbnVsbCAmJiBSZWFjdEN1cnJlbnRDYWNoZS5jdXJyZW50ICE9PSBEZWZhdWx0Q2FjaGVEaXNwYXRjaGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDdXJyZW50bHkgUmVhY3Qgb25seSBzdXBwb3J0cyBvbmUgUlNDIHJlbmRlcmVyIGF0IGEgdGltZS4nKTtcbiAgfVxuXG4gIHByZXBhcmVIb3N0RGlzcGF0Y2hlcigpO1xuICBSZWFjdEN1cnJlbnRDYWNoZS5jdXJyZW50ID0gRGVmYXVsdENhY2hlRGlzcGF0Y2hlcjtcbiAgdmFyIGFib3J0U2V0ID0gbmV3IFNldCgpO1xuICB2YXIgcGluZ2VkVGFza3MgPSBbXTtcbiAgdmFyIGNsZWFudXBRdWV1ZSA9IFtdO1xuXG4gIHZhciBoaW50cyA9IGNyZWF0ZUhpbnRzKCk7XG4gIHZhciByZXF1ZXN0ID0ge1xuICAgIHN0YXR1czogT1BFTixcbiAgICBmbHVzaFNjaGVkdWxlZDogZmFsc2UsXG4gICAgZmF0YWxFcnJvcjogbnVsbCxcbiAgICBkZXN0aW5hdGlvbjogbnVsbCxcbiAgICBidW5kbGVyQ29uZmlnOiBidW5kbGVyQ29uZmlnLFxuICAgIGNhY2hlOiBuZXcgTWFwKCksXG4gICAgbmV4dENodW5rSWQ6IDAsXG4gICAgcGVuZGluZ0NodW5rczogMCxcbiAgICBoaW50czogaGludHMsXG4gICAgYWJvcnRhYmxlVGFza3M6IGFib3J0U2V0LFxuICAgIHBpbmdlZFRhc2tzOiBwaW5nZWRUYXNrcyxcbiAgICBjb21wbGV0ZWRJbXBvcnRDaHVua3M6IFtdLFxuICAgIGNvbXBsZXRlZEhpbnRDaHVua3M6IFtdLFxuICAgIGNvbXBsZXRlZFJlZ3VsYXJDaHVua3M6IFtdLFxuICAgIGNvbXBsZXRlZEVycm9yQ2h1bmtzOiBbXSxcbiAgICB3cml0dGVuU3ltYm9sczogbmV3IE1hcCgpLFxuICAgIHdyaXR0ZW5DbGllbnRSZWZlcmVuY2VzOiBuZXcgTWFwKCksXG4gICAgd3JpdHRlblNlcnZlclJlZmVyZW5jZXM6IG5ldyBNYXAoKSxcbiAgICB3cml0dGVuUHJvdmlkZXJzOiBuZXcgTWFwKCksXG4gICAgd3JpdHRlbk9iamVjdHM6IG5ldyBXZWFrTWFwKCksXG4gICAgaWRlbnRpZmllclByZWZpeDogaWRlbnRpZmllclByZWZpeCB8fCAnJyxcbiAgICBpZGVudGlmaWVyQ291bnQ6IDEsXG4gICAgdGFpbnRDbGVhbnVwUXVldWU6IGNsZWFudXBRdWV1ZSxcbiAgICBvbkVycm9yOiBvbkVycm9yID09PSB1bmRlZmluZWQgPyBkZWZhdWx0RXJyb3JIYW5kbGVyIDogb25FcnJvcixcbiAgICBvblBvc3Rwb25lOiBvblBvc3Rwb25lID09PSB1bmRlZmluZWQgPyBkZWZhdWx0UG9zdHBvbmVIYW5kbGVyIDogb25Qb3N0cG9uZSxcbiAgICAvLyAkRmxvd0ZpeE1lW21pc3NpbmctdGhpcy1hbm5vdF1cbiAgICB0b0pTT046IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZU1vZGVsVG9KU09OKHJlcXVlc3QsIHRoaXMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfTtcbiAgcmVxdWVzdC5wZW5kaW5nQ2h1bmtzKys7XG4gIHZhciByb290Q29udGV4dCA9IGNyZWF0ZVJvb3RDb250ZXh0KCk7XG4gIHZhciByb290VGFzayA9IGNyZWF0ZVRhc2socmVxdWVzdCwgbW9kZWwsIHJvb3RDb250ZXh0LCBhYm9ydFNldCk7XG4gIHBpbmdlZFRhc2tzLnB1c2gocm9vdFRhc2spO1xuICByZXR1cm4gcmVxdWVzdDtcbn1cbnZhciBjdXJyZW50UmVxdWVzdCA9IG51bGw7XG5mdW5jdGlvbiByZXNvbHZlUmVxdWVzdCgpIHtcbiAgaWYgKGN1cnJlbnRSZXF1ZXN0KSByZXR1cm4gY3VycmVudFJlcXVlc3Q7XG5cbiAgaWYgKHN1cHBvcnRzUmVxdWVzdFN0b3JhZ2UpIHtcbiAgICB2YXIgc3RvcmUgPSByZXF1ZXN0U3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChzdG9yZSkgcmV0dXJuIHN0b3JlO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvb3RDb250ZXh0KHJlcUNvbnRleHQpIHtcbiAgcmV0dXJuIGltcG9ydFNlcnZlckNvbnRleHRzKCk7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVRoZW5hYmxlKHJlcXVlc3QsIHRoZW5hYmxlKSB7XG4gIHJlcXVlc3QucGVuZGluZ0NodW5rcysrO1xuICB2YXIgbmV3VGFzayA9IGNyZWF0ZVRhc2socmVxdWVzdCwgbnVsbCwgZ2V0QWN0aXZlQ29udGV4dCgpLCByZXF1ZXN0LmFib3J0YWJsZVRhc2tzKTtcblxuICBzd2l0Y2ggKHRoZW5hYmxlLnN0YXR1cykge1xuICAgIGNhc2UgJ2Z1bGZpbGxlZCc6XG4gICAgICB7XG4gICAgICAgIC8vIFdlIGhhdmUgdGhlIHJlc29sdmVkIHZhbHVlLCB3ZSBjYW4gZ28gYWhlYWQgYW5kIHNjaGVkdWxlIGl0IGZvciBzZXJpYWxpemF0aW9uLlxuICAgICAgICBuZXdUYXNrLm1vZGVsID0gdGhlbmFibGUudmFsdWU7XG4gICAgICAgIHBpbmdUYXNrKHJlcXVlc3QsIG5ld1Rhc2spO1xuICAgICAgICByZXR1cm4gbmV3VGFzay5pZDtcbiAgICAgIH1cblxuICAgIGNhc2UgJ3JlamVjdGVkJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIHggPSB0aGVuYWJsZS5yZWFzb247XG5cbiAgICAgICAge1xuICAgICAgICAgIHZhciBkaWdlc3QgPSBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIHgpO1xuICAgICAgICAgIGVtaXRFcnJvckNodW5rKHJlcXVlc3QsIG5ld1Rhc2suaWQsIGRpZ2VzdCwgeCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3VGFzay5pZDtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhlbmFibGUuc3RhdHVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIC8vIE9ubHkgaW5zdHJ1bWVudCB0aGUgdGhlbmFibGUgaWYgdGhlIHN0YXR1cyBpZiBub3QgZGVmaW5lZC4gSWZcbiAgICAgICAgICAvLyBpdCdzIGRlZmluZWQsIGJ1dCBhbiB1bmtub3duIHZhbHVlLCBhc3N1bWUgaXQncyBiZWVuIGluc3RydW1lbnRlZCBieVxuICAgICAgICAgIC8vIHNvbWUgY3VzdG9tIHVzZXJzcGFjZSBpbXBsZW1lbnRhdGlvbi4gV2UgdHJlYXQgaXQgYXMgXCJwZW5kaW5nXCIuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcGVuZGluZ1RoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgIHBlbmRpbmdUaGVuYWJsZS5zdGF0dXMgPSAncGVuZGluZyc7XG4gICAgICAgIHBlbmRpbmdUaGVuYWJsZS50aGVuKGZ1bmN0aW9uIChmdWxmaWxsZWRWYWx1ZSkge1xuICAgICAgICAgIGlmICh0aGVuYWJsZS5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgICAgICAgdmFyIGZ1bGZpbGxlZFRoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgICAgICBmdWxmaWxsZWRUaGVuYWJsZS5zdGF0dXMgPSAnZnVsZmlsbGVkJztcbiAgICAgICAgICAgIGZ1bGZpbGxlZFRoZW5hYmxlLnZhbHVlID0gZnVsZmlsbGVkVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAodGhlbmFibGUuc3RhdHVzID09PSAncGVuZGluZycpIHtcbiAgICAgICAgICAgIHZhciByZWplY3RlZFRoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG5cbiAgdGhlbmFibGUudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBuZXdUYXNrLm1vZGVsID0gdmFsdWU7XG4gICAgcGluZ1Rhc2socmVxdWVzdCwgbmV3VGFzayk7XG4gIH0sIGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICB7XG4gICAgICBuZXdUYXNrLnN0YXR1cyA9IEVSUk9SRUQkMTtcblxuICAgICAgdmFyIF9kaWdlc3QgPSBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIHJlYXNvbik7XG5cbiAgICAgIGVtaXRFcnJvckNodW5rKHJlcXVlc3QsIG5ld1Rhc2suaWQsIF9kaWdlc3QsIHJlYXNvbik7XG4gICAgfVxuXG4gICAgcmVxdWVzdC5hYm9ydGFibGVUYXNrcy5kZWxldGUobmV3VGFzayk7XG5cbiAgICBpZiAocmVxdWVzdC5kZXN0aW5hdGlvbiAhPT0gbnVsbCkge1xuICAgICAgZmx1c2hDb21wbGV0ZWRDaHVua3MocmVxdWVzdCwgcmVxdWVzdC5kZXN0aW5hdGlvbik7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG5ld1Rhc2suaWQ7XG59XG5cbmZ1bmN0aW9uIGVtaXRIaW50KHJlcXVlc3QsIGNvZGUsIG1vZGVsKSB7XG4gIGVtaXRIaW50Q2h1bmsocmVxdWVzdCwgY29kZSwgbW9kZWwpO1xuICBlbnF1ZXVlRmx1c2gocmVxdWVzdCk7XG59XG5mdW5jdGlvbiBnZXRIaW50cyhyZXF1ZXN0KSB7XG4gIHJldHVybiByZXF1ZXN0LmhpbnRzO1xufVxuZnVuY3Rpb24gZ2V0Q2FjaGUocmVxdWVzdCkge1xuICByZXR1cm4gcmVxdWVzdC5jYWNoZTtcbn1cblxuZnVuY3Rpb24gcmVhZFRoZW5hYmxlKHRoZW5hYmxlKSB7XG4gIGlmICh0aGVuYWJsZS5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgcmV0dXJuIHRoZW5hYmxlLnZhbHVlO1xuICB9IGVsc2UgaWYgKHRoZW5hYmxlLnN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgIHRocm93IHRoZW5hYmxlLnJlYXNvbjtcbiAgfVxuXG4gIHRocm93IHRoZW5hYmxlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMYXp5V3JhcHBlckFyb3VuZFdha2VhYmxlKHdha2VhYmxlKSB7XG4gIC8vIFRoaXMgaXMgYSB0ZW1wb3JhcnkgZm9yayBvZiB0aGUgYHVzZWAgaW1wbGVtZW50YXRpb24gdW50aWwgd2UgYWNjZXB0XG4gIC8vIHByb21pc2VzIGV2ZXJ5d2hlcmUuXG4gIHZhciB0aGVuYWJsZSA9IHdha2VhYmxlO1xuXG4gIHN3aXRjaCAodGhlbmFibGUuc3RhdHVzKSB7XG4gICAgY2FzZSAnZnVsZmlsbGVkJzpcbiAgICBjYXNlICdyZWplY3RlZCc6XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhlbmFibGUuc3RhdHVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIC8vIE9ubHkgaW5zdHJ1bWVudCB0aGUgdGhlbmFibGUgaWYgdGhlIHN0YXR1cyBpZiBub3QgZGVmaW5lZC4gSWZcbiAgICAgICAgICAvLyBpdCdzIGRlZmluZWQsIGJ1dCBhbiB1bmtub3duIHZhbHVlLCBhc3N1bWUgaXQncyBiZWVuIGluc3RydW1lbnRlZCBieVxuICAgICAgICAgIC8vIHNvbWUgY3VzdG9tIHVzZXJzcGFjZSBpbXBsZW1lbnRhdGlvbi4gV2UgdHJlYXQgaXQgYXMgXCJwZW5kaW5nXCIuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcGVuZGluZ1RoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgIHBlbmRpbmdUaGVuYWJsZS5zdGF0dXMgPSAncGVuZGluZyc7XG4gICAgICAgIHBlbmRpbmdUaGVuYWJsZS50aGVuKGZ1bmN0aW9uIChmdWxmaWxsZWRWYWx1ZSkge1xuICAgICAgICAgIGlmICh0aGVuYWJsZS5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgICAgICAgdmFyIGZ1bGZpbGxlZFRoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgICAgICBmdWxmaWxsZWRUaGVuYWJsZS5zdGF0dXMgPSAnZnVsZmlsbGVkJztcbiAgICAgICAgICAgIGZ1bGZpbGxlZFRoZW5hYmxlLnZhbHVlID0gZnVsZmlsbGVkVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAodGhlbmFibGUuc3RhdHVzID09PSAncGVuZGluZycpIHtcbiAgICAgICAgICAgIHZhciByZWplY3RlZFRoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG5cbiAgdmFyIGxhenlUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsXG4gICAgX3BheWxvYWQ6IHRoZW5hYmxlLFxuICAgIF9pbml0OiByZWFkVGhlbmFibGVcbiAgfTtcbiAgcmV0dXJuIGxhenlUeXBlO1xufVxuXG5mdW5jdGlvbiBhdHRlbXB0UmVzb2x2ZUVsZW1lbnQocmVxdWVzdCwgdHlwZSwga2V5LCByZWYsIHByb3BzLCBwcmV2VGhlbmFibGVTdGF0ZSkge1xuICBpZiAocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gV2hlbiB0aGUgcmVmIG1vdmVzIHRvIHRoZSByZWd1bGFyIHByb3BzIG9iamVjdCB0aGlzIHdpbGwgaW1wbGljaXRseVxuICAgIC8vIHRocm93IGZvciBmdW5jdGlvbnMuIFdlIGNvdWxkIHByb2JhYmx5IHJlbGF4IGl0IHRvIGEgREVWIHdhcm5pbmcgZm9yIG90aGVyXG4gICAgLy8gY2FzZXMuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZWZzIGNhbm5vdCBiZSB1c2VkIGluIFNlcnZlciBDb21wb25lbnRzLCBub3IgcGFzc2VkIHRvIENsaWVudCBDb21wb25lbnRzLicpO1xuICB9XG5cbiAge1xuICAgIGpzeFByb3BzUGFyZW50cy5zZXQocHJvcHMsIHR5cGUpO1xuXG4gICAgaWYgKHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ29iamVjdCcgJiYgcHJvcHMuY2hpbGRyZW4gIT09IG51bGwpIHtcbiAgICAgIGpzeENoaWxkcmVuUGFyZW50cy5zZXQocHJvcHMuY2hpbGRyZW4sIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChpc0NsaWVudFJlZmVyZW5jZSh0eXBlKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIHJlZmVyZW5jZSB0byBhIENsaWVudCBDb21wb25lbnQuXG4gICAgICByZXR1cm4gW1JFQUNUX0VMRU1FTlRfVFlQRSwgdHlwZSwga2V5LCBwcm9wc107XG4gICAgfSAvLyBUaGlzIGlzIGEgc2VydmVyLXNpZGUgY29tcG9uZW50LlxuXG5cbiAgICBwcmVwYXJlVG9Vc2VIb29rc0ZvckNvbXBvbmVudChwcmV2VGhlbmFibGVTdGF0ZSk7XG4gICAgdmFyIHJlc3VsdCA9IHR5cGUocHJvcHMpO1xuXG4gICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnICYmIHJlc3VsdCAhPT0gbnVsbCAmJiB0eXBlb2YgcmVzdWx0LnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIFdoZW4gdGhlIHJldHVybiB2YWx1ZSBpcyBpbiBjaGlsZHJlbiBwb3NpdGlvbiB3ZSBjYW4gcmVzb2x2ZSBpdCBpbW1lZGlhdGVseSxcbiAgICAgIC8vIHRvIGl0cyB2YWx1ZSB3aXRob3V0IGEgd3JhcHBlciBpZiBpdCdzIHN5bmNocm9ub3VzbHkgYXZhaWxhYmxlLlxuICAgICAgdmFyIHRoZW5hYmxlID0gcmVzdWx0O1xuXG4gICAgICBpZiAodGhlbmFibGUuc3RhdHVzID09PSAnZnVsZmlsbGVkJykge1xuICAgICAgICByZXR1cm4gdGhlbmFibGUudmFsdWU7XG4gICAgICB9IC8vIFRPRE86IE9uY2Ugd2UgYWNjZXB0IFByb21pc2VzIGFzIGNoaWxkcmVuIG9uIHRoZSBjbGllbnQsIHdlIGNhbiBqdXN0IHJldHVyblxuICAgICAgLy8gdGhlIHRoZW5hYmxlIGhlcmUuXG5cblxuICAgICAgcmV0dXJuIGNyZWF0ZUxhenlXcmFwcGVyQXJvdW5kV2FrZWFibGUocmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIC8vIFRoaXMgaXMgYSBob3N0IGVsZW1lbnQuIEUuZy4gSFRNTC5cbiAgICByZXR1cm4gW1JFQUNUX0VMRU1FTlRfVFlQRSwgdHlwZSwga2V5LCBwcm9wc107XG4gIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09ICdzeW1ib2wnKSB7XG4gICAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHtcbiAgICAgIC8vIEZvciBrZXktbGVzcyBmcmFnbWVudHMsIHdlIGFkZCBhIHNtYWxsIG9wdGltaXphdGlvbiB0byBhdm9pZCBzZXJpYWxpemluZ1xuICAgICAgLy8gaXQgYXMgYSB3cmFwcGVyLlxuICAgICAgLy8gVE9ETzogSWYgYSBrZXkgaXMgc3BlY2lmaWVkLCB3ZSBzaG91bGQgcHJvcGFnYXRlIGl0cyBrZXkgdG8gYW55IGNoaWxkcmVuLlxuICAgICAgLy8gU2FtZSBhcyBpZiBhIFNlcnZlciBDb21wb25lbnQgaGFzIGEga2V5LlxuICAgICAgcmV0dXJuIHByb3BzLmNoaWxkcmVuO1xuICAgIH0gLy8gVGhpcyBtaWdodCBiZSBhIGJ1aWx0LWluIFJlYWN0IGNvbXBvbmVudC4gV2UnbGwgbGV0IHRoZSBjbGllbnQgZGVjaWRlLlxuICAgIC8vIEFueSBidWlsdC1pbiB3b3JrcyBhcyBsb25nIGFzIGl0cyBwcm9wcyBhcmUgc2VyaWFsaXphYmxlLlxuXG5cbiAgICByZXR1cm4gW1JFQUNUX0VMRU1FTlRfVFlQRSwgdHlwZSwga2V5LCBwcm9wc107XG4gIH0gZWxzZSBpZiAodHlwZSAhPSBudWxsICYmIHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIGlmIChpc0NsaWVudFJlZmVyZW5jZSh0eXBlKSkge1xuICAgICAgLy8gVGhpcyBpcyBhIHJlZmVyZW5jZSB0byBhIENsaWVudCBDb21wb25lbnQuXG4gICAgICByZXR1cm4gW1JFQUNUX0VMRU1FTlRfVFlQRSwgdHlwZSwga2V5LCBwcm9wc107XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IHR5cGUuX2luaXQ7XG4gICAgICAgICAgdmFyIHdyYXBwZWRUeXBlID0gaW5pdChwYXlsb2FkKTtcbiAgICAgICAgICByZXR1cm4gYXR0ZW1wdFJlc29sdmVFbGVtZW50KHJlcXVlc3QsIHdyYXBwZWRUeXBlLCBrZXksIHJlZiwgcHJvcHMsIHByZXZUaGVuYWJsZVN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgcmVuZGVyID0gdHlwZS5yZW5kZXI7XG4gICAgICAgICAgcHJlcGFyZVRvVXNlSG9va3NGb3JDb21wb25lbnQocHJldlRoZW5hYmxlU3RhdGUpO1xuICAgICAgICAgIHJldHVybiByZW5kZXIocHJvcHMsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICByZXR1cm4gYXR0ZW1wdFJlc29sdmVFbGVtZW50KHJlcXVlc3QsIHR5cGUudHlwZSwga2V5LCByZWYsIHByb3BzLCBwcmV2VGhlbmFibGVTdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBTZXJ2ZXIgQ29tcG9uZW50IHR5cGU6IFwiICsgZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZSh0eXBlKSk7XG59XG5cbmZ1bmN0aW9uIHBpbmdUYXNrKHJlcXVlc3QsIHRhc2spIHtcbiAgdmFyIHBpbmdlZFRhc2tzID0gcmVxdWVzdC5waW5nZWRUYXNrcztcbiAgcGluZ2VkVGFza3MucHVzaCh0YXNrKTtcblxuICBpZiAocGluZ2VkVGFza3MubGVuZ3RoID09PSAxKSB7XG4gICAgcmVxdWVzdC5mbHVzaFNjaGVkdWxlZCA9IHJlcXVlc3QuZGVzdGluYXRpb24gIT09IG51bGw7XG4gICAgc2NoZWR1bGVXb3JrKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBwZXJmb3JtV29yayhyZXF1ZXN0KTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVUYXNrKHJlcXVlc3QsIG1vZGVsLCBjb250ZXh0LCBhYm9ydFNldCkge1xuICB2YXIgaWQgPSByZXF1ZXN0Lm5leHRDaHVua0lkKys7XG4gIHZhciB0YXNrID0ge1xuICAgIGlkOiBpZCxcbiAgICBzdGF0dXM6IFBFTkRJTkckMSxcbiAgICBtb2RlbDogbW9kZWwsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBwaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcGluZ1Rhc2socmVxdWVzdCwgdGFzayk7XG4gICAgfSxcbiAgICB0aGVuYWJsZVN0YXRlOiBudWxsXG4gIH07XG4gIGFib3J0U2V0LmFkZCh0YXNrKTtcbiAgcmV0dXJuIHRhc2s7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZUJ5VmFsdWVJRChpZCkge1xuICByZXR1cm4gJyQnICsgaWQudG9TdHJpbmcoMTYpO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVMYXp5SUQoaWQpIHtcbiAgcmV0dXJuICckTCcgKyBpZC50b1N0cmluZygxNik7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVByb21pc2VJRChpZCkge1xuICByZXR1cm4gJyRAJyArIGlkLnRvU3RyaW5nKDE2KTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplU2VydmVyUmVmZXJlbmNlSUQoaWQpIHtcbiAgcmV0dXJuICckRicgKyBpZC50b1N0cmluZygxNik7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVN5bWJvbFJlZmVyZW5jZShuYW1lKSB7XG4gIHJldHVybiAnJFMnICsgbmFtZTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplTnVtYmVyKG51bWJlcikge1xuICBpZiAoTnVtYmVyLmlzRmluaXRlKG51bWJlcikpIHtcbiAgICBpZiAobnVtYmVyID09PSAwICYmIDEgLyBudW1iZXIgPT09IC1JbmZpbml0eSkge1xuICAgICAgcmV0dXJuICckLTAnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVtYmVyO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAobnVtYmVyID09PSBJbmZpbml0eSkge1xuICAgICAgcmV0dXJuICckSW5maW5pdHknO1xuICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAtSW5maW5pdHkpIHtcbiAgICAgIHJldHVybiAnJC1JbmZpbml0eSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJE5hTic7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVVuZGVmaW5lZCgpIHtcbiAgcmV0dXJuICckdW5kZWZpbmVkJztcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplRGF0ZUZyb21EYXRlSlNPTihkYXRlSlNPTikge1xuICAvLyBKU09OLnN0cmluZ2lmeSBhdXRvbWF0aWNhbGx5IGNhbGxzIERhdGUucHJvdG90eXBlLnRvSlNPTiB3aGljaCBjYWxscyB0b0lTT1N0cmluZy5cbiAgLy8gV2UgbmVlZCBvbmx5IHRhY2sgb24gYSAkRCBwcmVmaXguXG4gIHJldHVybiAnJEQnICsgZGF0ZUpTT047XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZUJpZ0ludChuKSB7XG4gIHJldHVybiAnJG4nICsgbi50b1N0cmluZygxMCk7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVJvd0hlYWRlcih0YWcsIGlkKSB7XG4gIHJldHVybiBpZC50b1N0cmluZygxNikgKyAnOicgKyB0YWc7XG59XG5cbmZ1bmN0aW9uIGVuY29kZVJlZmVyZW5jZUNodW5rKHJlcXVlc3QsIGlkLCByZWZlcmVuY2UpIHtcbiAgdmFyIGpzb24gPSBzdHJpbmdpZnkocmVmZXJlbmNlKTtcbiAgdmFyIHJvdyA9IGlkLnRvU3RyaW5nKDE2KSArICc6JyArIGpzb24gKyAnXFxuJztcbiAgcmV0dXJuIHN0cmluZ1RvQ2h1bmsocm93KTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplQ2xpZW50UmVmZXJlbmNlKHJlcXVlc3QsIHBhcmVudCwga2V5LCBjbGllbnRSZWZlcmVuY2UpIHtcbiAgdmFyIGNsaWVudFJlZmVyZW5jZUtleSA9IGdldENsaWVudFJlZmVyZW5jZUtleShjbGllbnRSZWZlcmVuY2UpO1xuICB2YXIgd3JpdHRlbkNsaWVudFJlZmVyZW5jZXMgPSByZXF1ZXN0LndyaXR0ZW5DbGllbnRSZWZlcmVuY2VzO1xuICB2YXIgZXhpc3RpbmdJZCA9IHdyaXR0ZW5DbGllbnRSZWZlcmVuY2VzLmdldChjbGllbnRSZWZlcmVuY2VLZXkpO1xuXG4gIGlmIChleGlzdGluZ0lkICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAocGFyZW50WzBdID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiYga2V5ID09PSAnMScpIHtcbiAgICAgIC8vIElmIHdlJ3JlIGVuY29kaW5nIHRoZSBcInR5cGVcIiBvZiBhbiBlbGVtZW50LCB3ZSBjYW4gcmVmZXJcbiAgICAgIC8vIHRvIHRoYXQgYnkgYSBsYXp5IHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGRpcmVjdGx5IHNpbmNlIFJlYWN0XG4gICAgICAvLyBrbm93cyBob3cgdG8gZGVhbCB3aXRoIGxhenkgdmFsdWVzLiBUaGlzIGxldHMgdXMgc3VzcGVuZFxuICAgICAgLy8gb24gdGhpcyBjb21wb25lbnQgcmF0aGVyIHRoYW4gaXRzIHBhcmVudCB1bnRpbCB0aGUgY29kZSBoYXNcbiAgICAgIC8vIGxvYWRlZC5cbiAgICAgIHJldHVybiBzZXJpYWxpemVMYXp5SUQoZXhpc3RpbmdJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcmlhbGl6ZUJ5VmFsdWVJRChleGlzdGluZ0lkKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmFyIGNsaWVudFJlZmVyZW5jZU1ldGFkYXRhID0gcmVzb2x2ZUNsaWVudFJlZmVyZW5jZU1ldGFkYXRhKHJlcXVlc3QuYnVuZGxlckNvbmZpZywgY2xpZW50UmVmZXJlbmNlKTtcbiAgICByZXF1ZXN0LnBlbmRpbmdDaHVua3MrKztcbiAgICB2YXIgaW1wb3J0SWQgPSByZXF1ZXN0Lm5leHRDaHVua0lkKys7XG4gICAgZW1pdEltcG9ydENodW5rKHJlcXVlc3QsIGltcG9ydElkLCBjbGllbnRSZWZlcmVuY2VNZXRhZGF0YSk7XG4gICAgd3JpdHRlbkNsaWVudFJlZmVyZW5jZXMuc2V0KGNsaWVudFJlZmVyZW5jZUtleSwgaW1wb3J0SWQpO1xuXG4gICAgaWYgKHBhcmVudFswXSA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFICYmIGtleSA9PT0gJzEnKSB7XG4gICAgICAvLyBJZiB3ZSdyZSBlbmNvZGluZyB0aGUgXCJ0eXBlXCIgb2YgYW4gZWxlbWVudCwgd2UgY2FuIHJlZmVyXG4gICAgICAvLyB0byB0aGF0IGJ5IGEgbGF6eSByZWZlcmVuY2UgaW5zdGVhZCBvZiBkaXJlY3RseSBzaW5jZSBSZWFjdFxuICAgICAgLy8ga25vd3MgaG93IHRvIGRlYWwgd2l0aCBsYXp5IHZhbHVlcy4gVGhpcyBsZXRzIHVzIHN1c3BlbmRcbiAgICAgIC8vIG9uIHRoaXMgY29tcG9uZW50IHJhdGhlciB0aGFuIGl0cyBwYXJlbnQgdW50aWwgdGhlIGNvZGUgaGFzXG4gICAgICAvLyBsb2FkZWQuXG4gICAgICByZXR1cm4gc2VyaWFsaXplTGF6eUlEKGltcG9ydElkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VyaWFsaXplQnlWYWx1ZUlEKGltcG9ydElkKTtcbiAgfSBjYXRjaCAoeCkge1xuICAgIHJlcXVlc3QucGVuZGluZ0NodW5rcysrO1xuICAgIHZhciBlcnJvcklkID0gcmVxdWVzdC5uZXh0Q2h1bmtJZCsrO1xuICAgIHZhciBkaWdlc3QgPSBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIHgpO1xuICAgIGVtaXRFcnJvckNodW5rKHJlcXVlc3QsIGVycm9ySWQsIGRpZ2VzdCwgeCk7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZUJ5VmFsdWVJRChlcnJvcklkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvdXRsaW5lTW9kZWwocmVxdWVzdCwgdmFsdWUpIHtcbiAgcmVxdWVzdC5wZW5kaW5nQ2h1bmtzKys7XG4gIHZhciBuZXdUYXNrID0gY3JlYXRlVGFzayhyZXF1ZXN0LCB2YWx1ZSwgZ2V0QWN0aXZlQ29udGV4dCgpLCByZXF1ZXN0LmFib3J0YWJsZVRhc2tzKTtcbiAgcmV0cnlUYXNrKHJlcXVlc3QsIG5ld1Rhc2spO1xuICByZXR1cm4gbmV3VGFzay5pZDtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplU2VydmVyUmVmZXJlbmNlKHJlcXVlc3QsIHBhcmVudCwga2V5LCBzZXJ2ZXJSZWZlcmVuY2UpIHtcbiAgdmFyIHdyaXR0ZW5TZXJ2ZXJSZWZlcmVuY2VzID0gcmVxdWVzdC53cml0dGVuU2VydmVyUmVmZXJlbmNlcztcbiAgdmFyIGV4aXN0aW5nSWQgPSB3cml0dGVuU2VydmVyUmVmZXJlbmNlcy5nZXQoc2VydmVyUmVmZXJlbmNlKTtcblxuICBpZiAoZXhpc3RpbmdJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVNlcnZlclJlZmVyZW5jZUlEKGV4aXN0aW5nSWQpO1xuICB9XG5cbiAgdmFyIGJvdW5kID0gZ2V0U2VydmVyUmVmZXJlbmNlQm91bmRBcmd1bWVudHMocmVxdWVzdC5idW5kbGVyQ29uZmlnLCBzZXJ2ZXJSZWZlcmVuY2UpO1xuICB2YXIgc2VydmVyUmVmZXJlbmNlTWV0YWRhdGEgPSB7XG4gICAgaWQ6IGdldFNlcnZlclJlZmVyZW5jZUlkKHJlcXVlc3QuYnVuZGxlckNvbmZpZywgc2VydmVyUmVmZXJlbmNlKSxcbiAgICBib3VuZDogYm91bmQgPyBQcm9taXNlLnJlc29sdmUoYm91bmQpIDogbnVsbFxuICB9O1xuICB2YXIgbWV0YWRhdGFJZCA9IG91dGxpbmVNb2RlbChyZXF1ZXN0LCBzZXJ2ZXJSZWZlcmVuY2VNZXRhZGF0YSk7XG4gIHdyaXR0ZW5TZXJ2ZXJSZWZlcmVuY2VzLnNldChzZXJ2ZXJSZWZlcmVuY2UsIG1ldGFkYXRhSWQpO1xuICByZXR1cm4gc2VyaWFsaXplU2VydmVyUmVmZXJlbmNlSUQobWV0YWRhdGFJZCk7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZUxhcmdlVGV4dFN0cmluZyhyZXF1ZXN0LCB0ZXh0KSB7XG4gIHJlcXVlc3QucGVuZGluZ0NodW5rcyArPSAyO1xuICB2YXIgdGV4dElkID0gcmVxdWVzdC5uZXh0Q2h1bmtJZCsrO1xuICB2YXIgdGV4dENodW5rID0gc3RyaW5nVG9DaHVuayh0ZXh0KTtcbiAgdmFyIGJpbmFyeUxlbmd0aCA9IGJ5dGVMZW5ndGhPZkNodW5rKHRleHRDaHVuayk7XG4gIHZhciByb3cgPSB0ZXh0SWQudG9TdHJpbmcoMTYpICsgJzpUJyArIGJpbmFyeUxlbmd0aC50b1N0cmluZygxNikgKyAnLCc7XG4gIHZhciBoZWFkZXJDaHVuayA9IHN0cmluZ1RvQ2h1bmsocm93KTtcbiAgcmVxdWVzdC5jb21wbGV0ZWRSZWd1bGFyQ2h1bmtzLnB1c2goaGVhZGVyQ2h1bmssIHRleHRDaHVuayk7XG4gIHJldHVybiBzZXJpYWxpemVCeVZhbHVlSUQodGV4dElkKTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplTWFwKHJlcXVlc3QsIG1hcCkge1xuICB2YXIgZW50cmllcyA9IEFycmF5LmZyb20obWFwKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0gZW50cmllc1tpXVswXTtcblxuICAgIGlmICh0eXBlb2Yga2V5ID09PSAnb2JqZWN0JyAmJiBrZXkgIT09IG51bGwpIHtcbiAgICAgIHZhciB3cml0dGVuT2JqZWN0cyA9IHJlcXVlc3Qud3JpdHRlbk9iamVjdHM7XG4gICAgICB2YXIgZXhpc3RpbmdJZCA9IHdyaXR0ZW5PYmplY3RzLmdldChrZXkpO1xuXG4gICAgICBpZiAoZXhpc3RpbmdJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIE1hcmsgYWxsIG9iamVjdCBrZXlzIGFzIHNlZW4gc28gdGhhdCB0aGV5J3JlIGFsd2F5cyBvdXRsaW5lZC5cbiAgICAgICAgd3JpdHRlbk9iamVjdHMuc2V0KGtleSwgLTEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBpZCA9IG91dGxpbmVNb2RlbChyZXF1ZXN0LCBlbnRyaWVzKTtcbiAgcmV0dXJuICckUScgKyBpZC50b1N0cmluZygxNik7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVNldChyZXF1ZXN0LCBzZXQpIHtcbiAgdmFyIGVudHJpZXMgPSBBcnJheS5mcm9tKHNldCk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGVudHJpZXNbaV07XG5cbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ29iamVjdCcgJiYga2V5ICE9PSBudWxsKSB7XG4gICAgICB2YXIgd3JpdHRlbk9iamVjdHMgPSByZXF1ZXN0LndyaXR0ZW5PYmplY3RzO1xuICAgICAgdmFyIGV4aXN0aW5nSWQgPSB3cml0dGVuT2JqZWN0cy5nZXQoa2V5KTtcblxuICAgICAgaWYgKGV4aXN0aW5nSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBNYXJrIGFsbCBvYmplY3Qga2V5cyBhcyBzZWVuIHNvIHRoYXQgdGhleSdyZSBhbHdheXMgb3V0bGluZWQuXG4gICAgICAgIHdyaXR0ZW5PYmplY3RzLnNldChrZXksIC0xKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgaWQgPSBvdXRsaW5lTW9kZWwocmVxdWVzdCwgZW50cmllcyk7XG4gIHJldHVybiAnJFcnICsgaWQudG9TdHJpbmcoMTYpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVTdHJpbmdWYWx1ZSh2YWx1ZSkge1xuICBpZiAodmFsdWVbMF0gPT09ICckJykge1xuICAgIC8vIFdlIG5lZWQgdG8gZXNjYXBlICQgcHJlZml4ZWQgc3RyaW5ncyBzaW5jZSB3ZSB1c2UgdGhvc2UgdG8gZW5jb2RlXG4gICAgLy8gcmVmZXJlbmNlcyB0byBJRHMgYW5kIGFzIHNwZWNpYWwgc3ltYm9sIHZhbHVlcy5cbiAgICByZXR1cm4gJyQnICsgdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG52YXIgbW9kZWxSb290ID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2RlbFRvSlNPTihyZXF1ZXN0LCBwYXJlbnQsIGtleSwgdmFsdWUpIHtcbiAgLy8gTWFrZSBzdXJlIHRoYXQgYHBhcmVudFtrZXldYCB3YXNuJ3QgSlNPTmlmaWVkIGJlZm9yZSBgdmFsdWVgIHdhcyBwYXNzZWQgdG8gdXNcbiAge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV1cbiAgICB2YXIgb3JpZ2luYWxWYWx1ZSA9IHBhcmVudFtrZXldO1xuXG4gICAgaWYgKHR5cGVvZiBvcmlnaW5hbFZhbHVlID09PSAnb2JqZWN0JyAmJiBvcmlnaW5hbFZhbHVlICE9PSB2YWx1ZSAmJiAhKG9yaWdpbmFsVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgaWYgKG9iamVjdE5hbWUob3JpZ2luYWxWYWx1ZSkgIT09ICdPYmplY3QnKSB7XG4gICAgICAgIHZhciBqc3hQYXJlbnRUeXBlID0ganN4Q2hpbGRyZW5QYXJlbnRzLmdldChwYXJlbnQpO1xuXG4gICAgICAgIGlmICh0eXBlb2YganN4UGFyZW50VHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBlcnJvcignJXMgb2JqZWN0cyBjYW5ub3QgYmUgcmVuZGVyZWQgYXMgdGV4dCBjaGlsZHJlbi4gVHJ5IGZvcm1hdHRpbmcgaXQgdXNpbmcgdG9TdHJpbmcoKS4lcycsIG9iamVjdE5hbWUob3JpZ2luYWxWYWx1ZSksIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHBhcmVudCwga2V5KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IoJ09ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIENsaWVudCBDb21wb25lbnRzIGZyb20gU2VydmVyIENvbXBvbmVudHMuICcgKyAnJXMgb2JqZWN0cyBhcmUgbm90IHN1cHBvcnRlZC4lcycsIG9iamVjdE5hbWUob3JpZ2luYWxWYWx1ZSksIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHBhcmVudCwga2V5KSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBDbGllbnQgQ29tcG9uZW50cyBmcm9tIFNlcnZlciBDb21wb25lbnRzLiAnICsgJ09iamVjdHMgd2l0aCB0b0pTT04gbWV0aG9kcyBhcmUgbm90IHN1cHBvcnRlZC4gQ29udmVydCBpdCBtYW51YWxseSAnICsgJ3RvIGEgc2ltcGxlIHZhbHVlIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHByb3BzLiVzJywgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UocGFyZW50LCBrZXkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gU3BlY2lhbCBTeW1ib2xzXG5cblxuICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICByZXR1cm4gJyQnO1xuICB9XG5cblxuICB3aGlsZSAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAodmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSB8fCB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFKSkge1xuXG4gICAgdHJ5IHtcbiAgICAgIHN3aXRjaCAodmFsdWUuJCR0eXBlb2YpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIHdyaXR0ZW5PYmplY3RzID0gcmVxdWVzdC53cml0dGVuT2JqZWN0cztcbiAgICAgICAgICAgIHZhciBleGlzdGluZ0lkID0gd3JpdHRlbk9iamVjdHMuZ2V0KHZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdJZCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAvLyBTZWVuIGJ1dCBub3QgeWV0IG91dGxpbmVkLlxuICAgICAgICAgICAgICAgIHZhciBuZXdJZCA9IG91dGxpbmVNb2RlbChyZXF1ZXN0LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUJ5VmFsdWVJRChuZXdJZCk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kZWxSb290ID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIElEIHdlJ3JlIGN1cnJlbnRseSBlbWl0dGluZyBzbyB3ZSBuZWVkIHRvIHdyaXRlIGl0XG4gICAgICAgICAgICAgICAgLy8gb25jZSBidXQgaWYgd2UgZGlzY292ZXIgaXQgYWdhaW4sIHdlIHJlZmVyIHRvIGl0IGJ5IGlkLlxuICAgICAgICAgICAgICAgIG1vZGVsUm9vdCA9IG51bGw7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBlbWl0dGVkIHRoaXMgYXMgYW4gb3V0bGluZWQgb2JqZWN0LCBzbyB3ZSBjYW5cbiAgICAgICAgICAgICAgICAvLyBqdXN0IHJlZmVyIHRvIHRoYXQgYnkgaXRzIGV4aXN0aW5nIElELlxuICAgICAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVCeVZhbHVlSUQoZXhpc3RpbmdJZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgd2UndmUgc2VlbiB0aGlzIG9iamVjdC4gV2UgbWF5IG5ldmVyIHNlZSBpdCBhZ2FpblxuICAgICAgICAgICAgICAvLyBzbyB3ZSdsbCBpbmxpbmUgaXQuIE1hcmsgaXQgYXMgc2Vlbi4gSWYgd2Ugc2VlIGl0IGFnYWluLCB3ZSdsbCBvdXRsaW5lLlxuICAgICAgICAgICAgICB3cml0dGVuT2JqZWN0cy5zZXQodmFsdWUsIC0xKTtcbiAgICAgICAgICAgIH0gLy8gVE9ETzogQ29uY2F0ZW5hdGUga2V5cyBvZiBwYXJlbnRzIG9udG8gY2hpbGRyZW4uXG5cblxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSB2YWx1ZTsgLy8gQXR0ZW1wdCB0byByZW5kZXIgdGhlIFNlcnZlciBDb21wb25lbnQuXG5cbiAgICAgICAgICAgIHZhbHVlID0gYXR0ZW1wdFJlc29sdmVFbGVtZW50KHJlcXVlc3QsIGVsZW1lbnQudHlwZSwgZWxlbWVudC5rZXksIGVsZW1lbnQucmVmLCBlbGVtZW50LnByb3BzLCBudWxsKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcGF5bG9hZCA9IHZhbHVlLl9wYXlsb2FkO1xuICAgICAgICAgICAgdmFyIGluaXQgPSB2YWx1ZS5faW5pdDtcbiAgICAgICAgICAgIHZhbHVlID0gaW5pdChwYXlsb2FkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoICh0aHJvd25WYWx1ZSkge1xuICAgICAgdmFyIHggPSB0aHJvd25WYWx1ZSA9PT0gU3VzcGVuc2VFeGNlcHRpb24gPyAvLyBUaGlzIGlzIGEgc3BlY2lhbCB0eXBlIG9mIGV4Y2VwdGlvbiB1c2VkIGZvciBTdXNwZW5zZS4gRm9yIGhpc3RvcmljYWxcbiAgICAgIC8vIHJlYXNvbnMsIHRoZSByZXN0IG9mIHRoZSBTdXNwZW5zZSBpbXBsZW1lbnRhdGlvbiBleHBlY3RzIHRoZSB0aHJvd25cbiAgICAgIC8vIHZhbHVlIHRvIGJlIGEgdGhlbmFibGUsIGJlY2F1c2UgYmVmb3JlIGB1c2VgIGV4aXN0ZWQgdGhhdCB3YXMgdGhlXG4gICAgICAvLyAodW5zdGFibGUpIEFQSSBmb3Igc3VzcGVuZGluZy4gVGhpcyBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgY2FuIGNoYW5nZVxuICAgICAgLy8gbGF0ZXIsIG9uY2Ugd2UgZGVwcmVjYXRlIHRoZSBvbGQgQVBJIGluIGZhdm9yIG9mIGB1c2VgLlxuICAgICAgZ2V0U3VzcGVuZGVkVGhlbmFibGUoKSA6IHRocm93blZhbHVlO1xuXG4gICAgICBpZiAodHlwZW9mIHggPT09ICdvYmplY3QnICYmIHggIT09IG51bGwpIHtcbiAgICAgICAgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuICAgICAgICBpZiAodHlwZW9mIHgudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIC8vIFNvbWV0aGluZyBzdXNwZW5kZWQsIHdlJ2xsIG5lZWQgdG8gY3JlYXRlIGEgbmV3IHRhc2sgYW5kIHJlc29sdmUgaXQgbGF0ZXIuXG4gICAgICAgICAgcmVxdWVzdC5wZW5kaW5nQ2h1bmtzKys7XG4gICAgICAgICAgdmFyIG5ld1Rhc2sgPSBjcmVhdGVUYXNrKHJlcXVlc3QsIHZhbHVlLCBnZXRBY3RpdmVDb250ZXh0KCksIHJlcXVlc3QuYWJvcnRhYmxlVGFza3MpO1xuICAgICAgICAgIHZhciBwaW5nID0gbmV3VGFzay5waW5nO1xuICAgICAgICAgIHgudGhlbihwaW5nLCBwaW5nKTtcbiAgICAgICAgICBuZXdUYXNrLnRoZW5hYmxlU3RhdGUgPSBnZXRUaGVuYWJsZVN0YXRlQWZ0ZXJTdXNwZW5kaW5nKCk7XG4gICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUxhenlJRChuZXdUYXNrLmlkKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBTb21ldGhpbmcgZXJyb3JlZC4gV2UnbGwgc3RpbGwgc2VuZCBldmVyeXRoaW5nIHdlIGhhdmUgdXAgdW50aWwgdGhpcyBwb2ludC5cbiAgICAgIC8vIFdlJ2xsIHJlcGxhY2UgdGhpcyBlbGVtZW50IHdpdGggYSBsYXp5IHJlZmVyZW5jZSB0aGF0IHRocm93cyBvbiB0aGUgY2xpZW50XG4gICAgICAvLyBvbmNlIGl0IGdldHMgcmVuZGVyZWQuXG5cblxuICAgICAgcmVxdWVzdC5wZW5kaW5nQ2h1bmtzKys7XG4gICAgICB2YXIgZXJyb3JJZCA9IHJlcXVlc3QubmV4dENodW5rSWQrKztcbiAgICAgIHZhciBkaWdlc3QgPSBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIHgpO1xuICAgICAgZW1pdEVycm9yQ2h1bmsocmVxdWVzdCwgZXJyb3JJZCwgZGlnZXN0LCB4KTtcbiAgICAgIHJldHVybiBzZXJpYWxpemVMYXp5SUQoZXJyb3JJZCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXG4gICAgaWYgKGlzQ2xpZW50UmVmZXJlbmNlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZUNsaWVudFJlZmVyZW5jZShyZXF1ZXN0LCBwYXJlbnQsIGtleSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHZhciBfd3JpdHRlbk9iamVjdHMgPSByZXF1ZXN0LndyaXR0ZW5PYmplY3RzO1xuXG4gICAgdmFyIF9leGlzdGluZ0lkID0gX3dyaXR0ZW5PYmplY3RzLmdldCh2YWx1ZSk7IC8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cblxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAoX2V4aXN0aW5nSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAobW9kZWxSb290ID09PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIElEIHdlJ3JlIGN1cnJlbnRseSBlbWl0dGluZyBzbyB3ZSBuZWVkIHRvIHdyaXRlIGl0XG4gICAgICAgICAgLy8gb25jZSBidXQgaWYgd2UgZGlzY292ZXIgaXQgYWdhaW4sIHdlIHJlZmVyIHRvIGl0IGJ5IGlkLlxuICAgICAgICAgIG1vZGVsUm9vdCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gV2UndmUgc2VlbiB0aGlzIHByb21pc2UgYmVmb3JlLCBzbyB3ZSBjYW4ganVzdCByZWZlciB0byB0aGUgc2FtZSByZXN1bHQuXG4gICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVByb21pc2VJRChfZXhpc3RpbmdJZCk7XG4gICAgICAgIH1cbiAgICAgIH0gLy8gV2UgYXNzdW1lIHRoYXQgYW55IG9iamVjdCB3aXRoIGEgLnRoZW4gcHJvcGVydHkgaXMgYSBcIlRoZW5hYmxlXCIgdHlwZSxcbiAgICAgIC8vIG9yIGEgUHJvbWlzZSB0eXBlLiBFaXRoZXIgb2Ygd2hpY2ggY2FuIGJlIHJlcHJlc2VudGVkIGJ5IGEgUHJvbWlzZS5cblxuXG4gICAgICB2YXIgcHJvbWlzZUlkID0gc2VyaWFsaXplVGhlbmFibGUocmVxdWVzdCwgdmFsdWUpO1xuXG4gICAgICBfd3JpdHRlbk9iamVjdHMuc2V0KHZhbHVlLCBwcm9taXNlSWQpO1xuXG4gICAgICByZXR1cm4gc2VyaWFsaXplUHJvbWlzZUlEKHByb21pc2VJZCk7XG4gICAgfVxuXG4gICAgaWYgKF9leGlzdGluZ0lkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChfZXhpc3RpbmdJZCA9PT0gLTEpIHtcbiAgICAgICAgLy8gU2VlbiBidXQgbm90IHlldCBvdXRsaW5lZC5cbiAgICAgICAgdmFyIF9uZXdJZCA9IG91dGxpbmVNb2RlbChyZXF1ZXN0LCB2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUJ5VmFsdWVJRChfbmV3SWQpO1xuICAgICAgfSBlbHNlIGlmIChtb2RlbFJvb3QgPT09IHZhbHVlKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgdGhlIElEIHdlJ3JlIGN1cnJlbnRseSBlbWl0dGluZyBzbyB3ZSBuZWVkIHRvIHdyaXRlIGl0XG4gICAgICAgIC8vIG9uY2UgYnV0IGlmIHdlIGRpc2NvdmVyIGl0IGFnYWluLCB3ZSByZWZlciB0byBpdCBieSBpZC5cbiAgICAgICAgbW9kZWxSb290ID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgZW1pdHRlZCB0aGlzIGFzIGFuIG91dGxpbmVkIG9iamVjdCwgc28gd2UgY2FuXG4gICAgICAgIC8vIGp1c3QgcmVmZXIgdG8gdGhhdCBieSBpdHMgZXhpc3RpbmcgSUQuXG4gICAgICAgIHJldHVybiBzZXJpYWxpemVCeVZhbHVlSUQoX2V4aXN0aW5nSWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB0aW1lIHdlJ3ZlIHNlZW4gdGhpcyBvYmplY3QuIFdlIG1heSBuZXZlciBzZWUgaXQgYWdhaW5cbiAgICAgIC8vIHNvIHdlJ2xsIGlubGluZSBpdC4gTWFyayBpdCBhcyBzZWVuLiBJZiB3ZSBzZWUgaXQgYWdhaW4sIHdlJ2xsIG91dGxpbmUuXG4gICAgICBfd3JpdHRlbk9iamVjdHMuc2V0KHZhbHVlLCAtMSk7XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICByZXR1cm4gc2VyaWFsaXplTWFwKHJlcXVlc3QsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgIHJldHVybiBzZXJpYWxpemVTZXQocmVxdWVzdCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbih2YWx1ZSk7XG5cbiAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20odmFsdWUpO1xuICAgIH0gLy8gVmVyaWZ5IHRoYXQgdGhpcyBpcyBhIHNpbXBsZSBwbGFpbiBvYmplY3QuXG5cblxuICAgIHZhciBwcm90byA9IGdldFByb3RvdHlwZU9mKHZhbHVlKTtcblxuICAgIGlmIChwcm90byAhPT0gT2JqZWN0UHJvdG90eXBlICYmIChwcm90byA9PT0gbnVsbCB8fCBnZXRQcm90b3R5cGVPZihwcm90bykgIT09IG51bGwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgcGxhaW4gb2JqZWN0cywgYW5kIGEgZmV3IGJ1aWx0LWlucywgY2FuIGJlIHBhc3NlZCB0byBDbGllbnQgQ29tcG9uZW50cyAnICsgJ2Zyb20gU2VydmVyIENvbXBvbmVudHMuIENsYXNzZXMgb3IgbnVsbCBwcm90b3R5cGVzIGFyZSBub3Qgc3VwcG9ydGVkLicpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmIChvYmplY3ROYW1lKHZhbHVlKSAhPT0gJ09iamVjdCcpIHtcbiAgICAgICAgZXJyb3IoJ09ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIENsaWVudCBDb21wb25lbnRzIGZyb20gU2VydmVyIENvbXBvbmVudHMuICcgKyAnJXMgb2JqZWN0cyBhcmUgbm90IHN1cHBvcnRlZC4lcycsIG9iamVjdE5hbWUodmFsdWUpLCBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShwYXJlbnQsIGtleSkpO1xuICAgICAgfSBlbHNlIGlmICghaXNTaW1wbGVPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIGVycm9yKCdPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBDbGllbnQgQ29tcG9uZW50cyBmcm9tIFNlcnZlciBDb21wb25lbnRzLiAnICsgJ0NsYXNzZXMgb3Igb3RoZXIgb2JqZWN0cyB3aXRoIG1ldGhvZHMgYXJlIG5vdCBzdXBwb3J0ZWQuJXMnLCBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShwYXJlbnQsIGtleSkpO1xuICAgICAgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICAgIHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHN5bWJvbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGVycm9yKCdPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBDbGllbnQgQ29tcG9uZW50cyBmcm9tIFNlcnZlciBDb21wb25lbnRzLiAnICsgJ09iamVjdHMgd2l0aCBzeW1ib2wgcHJvcGVydGllcyBsaWtlICVzIGFyZSBub3Qgc3VwcG9ydGVkLiVzJywgc3ltYm9sc1swXS5kZXNjcmlwdGlvbiwgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UocGFyZW50LCBrZXkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuXG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuXG5cbiAgICBpZiAodmFsdWVbdmFsdWUubGVuZ3RoIC0gMV0gPT09ICdaJykge1xuICAgICAgLy8gUG9zc2libHkgYSBEYXRlLCB3aG9zZSB0b0pTT04gYXV0b21hdGljYWxseSBjYWxscyB0b0lTT1N0cmluZ1xuICAgICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXVxuICAgICAgdmFyIF9vcmlnaW5hbFZhbHVlID0gcGFyZW50W2tleV07XG5cbiAgICAgIGlmIChfb3JpZ2luYWxWYWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZURhdGVGcm9tRGF0ZUpTT04odmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZS5sZW5ndGggPj0gMTAyNCkge1xuICAgICAgLy8gRm9yIGxhcmdlIHN0cmluZ3MsIHdlIGVuY29kZSB0aGVtIG91dHNpZGUgdGhlIEpTT04gcGF5bG9hZCBzbyB0aGF0IHdlXG4gICAgICAvLyBkb24ndCBoYXZlIHRvIGRvdWJsZSBlbmNvZGUgYW5kIGRvdWJsZSBwYXJzZSB0aGUgc3RyaW5ncy4gVGhpcyBjYW4gYWxzb1xuICAgICAgLy8gYmUgbW9yZSBjb21wYWN0IGluIGNhc2UgdGhlIHN0cmluZyBoYXMgYSBsb3Qgb2YgZXNjYXBlZCBjaGFyYWN0ZXJzLlxuICAgICAgcmV0dXJuIHNlcmlhbGl6ZUxhcmdlVGV4dFN0cmluZyhyZXF1ZXN0LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVzY2FwZVN0cmluZ1ZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZU51bWJlcih2YWx1ZSk7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBzZXJpYWxpemVVbmRlZmluZWQoKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcblxuICAgIGlmIChpc0NsaWVudFJlZmVyZW5jZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBzZXJpYWxpemVDbGllbnRSZWZlcmVuY2UocmVxdWVzdCwgcGFyZW50LCBrZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoaXNTZXJ2ZXJSZWZlcmVuY2UodmFsdWUpKSB7XG4gICAgICByZXR1cm4gc2VyaWFsaXplU2VydmVyUmVmZXJlbmNlKHJlcXVlc3QsIHBhcmVudCwga2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKC9eb25bQS1aXS8udGVzdChrZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V2ZW50IGhhbmRsZXJzIGNhbm5vdCBiZSBwYXNzZWQgdG8gQ2xpZW50IENvbXBvbmVudCBwcm9wcy4nICsgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UocGFyZW50LCBrZXkpICsgJ1xcbklmIHlvdSBuZWVkIGludGVyYWN0aXZpdHksIGNvbnNpZGVyIGNvbnZlcnRpbmcgcGFydCBvZiB0aGlzIHRvIGEgQ2xpZW50IENvbXBvbmVudC4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGdW5jdGlvbnMgY2Fubm90IGJlIHBhc3NlZCBkaXJlY3RseSB0byBDbGllbnQgQ29tcG9uZW50cyAnICsgJ3VubGVzcyB5b3UgZXhwbGljaXRseSBleHBvc2UgaXQgYnkgbWFya2luZyBpdCB3aXRoIFwidXNlIHNlcnZlclwiLicgKyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShwYXJlbnQsIGtleSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnKSB7XG4gICAgdmFyIHdyaXR0ZW5TeW1ib2xzID0gcmVxdWVzdC53cml0dGVuU3ltYm9scztcblxuICAgIHZhciBfZXhpc3RpbmdJZDIgPSB3cml0dGVuU3ltYm9scy5nZXQodmFsdWUpO1xuXG4gICAgaWYgKF9leGlzdGluZ0lkMiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gc2VyaWFsaXplQnlWYWx1ZUlEKF9leGlzdGluZ0lkMik7XG4gICAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXSBgZGVzY3JpcHRpb25gIG1pZ2h0IGJlIHVuZGVmaW5lZFxuXG5cbiAgICB2YXIgbmFtZSA9IHZhbHVlLmRlc2NyaXB0aW9uO1xuXG4gICAgaWYgKFN5bWJvbC5mb3IobmFtZSkgIT09IHZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgZ2xvYmFsIHN5bWJvbHMgcmVjZWl2ZWQgZnJvbSBTeW1ib2wuZm9yKC4uLikgY2FuIGJlIHBhc3NlZCB0byBDbGllbnQgQ29tcG9uZW50cy4gJyArIChcIlRoZSBzeW1ib2wgU3ltYm9sLmZvcihcIiArIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIGBkZXNjcmlwdGlvbmAgbWlnaHQgYmUgdW5kZWZpbmVkXG4gICAgICB2YWx1ZS5kZXNjcmlwdGlvbiArIFwiKSBjYW5ub3QgYmUgZm91bmQgYW1vbmcgZ2xvYmFsIHN5bWJvbHMuXCIpICsgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UocGFyZW50LCBrZXkpKTtcbiAgICB9XG5cbiAgICByZXF1ZXN0LnBlbmRpbmdDaHVua3MrKztcbiAgICB2YXIgc3ltYm9sSWQgPSByZXF1ZXN0Lm5leHRDaHVua0lkKys7XG4gICAgZW1pdFN5bWJvbENodW5rKHJlcXVlc3QsIHN5bWJvbElkLCBuYW1lKTtcbiAgICB3cml0dGVuU3ltYm9scy5zZXQodmFsdWUsIHN5bWJvbElkKTtcbiAgICByZXR1cm4gc2VyaWFsaXplQnlWYWx1ZUlEKHN5bWJvbElkKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnKSB7XG5cbiAgICByZXR1cm4gc2VyaWFsaXplQmlnSW50KHZhbHVlKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcIlR5cGUgXCIgKyB0eXBlb2YgdmFsdWUgKyBcIiBpcyBub3Qgc3VwcG9ydGVkIGluIENsaWVudCBDb21wb25lbnQgcHJvcHMuXCIgKyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShwYXJlbnQsIGtleSkpO1xufVxuXG5mdW5jdGlvbiBsb2dQb3N0cG9uZShyZXF1ZXN0LCByZWFzb24pIHtcbiAgdmFyIG9uUG9zdHBvbmUgPSByZXF1ZXN0Lm9uUG9zdHBvbmU7XG4gIG9uUG9zdHBvbmUocmVhc29uKTtcbn1cblxuZnVuY3Rpb24gbG9nUmVjb3ZlcmFibGVFcnJvcihyZXF1ZXN0LCBlcnJvcikge1xuICB2YXIgb25FcnJvciA9IHJlcXVlc3Qub25FcnJvcjtcbiAgdmFyIGVycm9yRGlnZXN0ID0gb25FcnJvcihlcnJvcik7XG5cbiAgaWYgKGVycm9yRGlnZXN0ICE9IG51bGwgJiYgdHlwZW9mIGVycm9yRGlnZXN0ICE9PSAnc3RyaW5nJykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgdGhyb3cgbmV3IEVycm9yKFwib25FcnJvciByZXR1cm5lZCBzb21ldGhpbmcgd2l0aCBhIHR5cGUgb3RoZXIgdGhhbiBcXFwic3RyaW5nXFxcIi4gb25FcnJvciBzaG91bGQgcmV0dXJuIGEgc3RyaW5nIGFuZCBtYXkgcmV0dXJuIG51bGwgb3IgdW5kZWZpbmVkIGJ1dCBtdXN0IG5vdCByZXR1cm4gYW55dGhpbmcgZWxzZS4gSXQgcmVjZWl2ZWQgc29tZXRoaW5nIG9mIHR5cGUgXFxcIlwiICsgdHlwZW9mIGVycm9yRGlnZXN0ICsgXCJcXFwiIGluc3RlYWRcIik7XG4gIH1cblxuICByZXR1cm4gZXJyb3JEaWdlc3QgfHwgJyc7XG59XG5cbmZ1bmN0aW9uIGZhdGFsRXJyb3IocmVxdWVzdCwgZXJyb3IpIHtcblxuXG4gIGlmIChyZXF1ZXN0LmRlc3RpbmF0aW9uICE9PSBudWxsKSB7XG4gICAgcmVxdWVzdC5zdGF0dXMgPSBDTE9TRUQ7XG4gICAgY2xvc2VXaXRoRXJyb3IocmVxdWVzdC5kZXN0aW5hdGlvbiwgZXJyb3IpO1xuICB9IGVsc2Uge1xuICAgIHJlcXVlc3Quc3RhdHVzID0gQ0xPU0lORztcbiAgICByZXF1ZXN0LmZhdGFsRXJyb3IgPSBlcnJvcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbWl0UG9zdHBvbmVDaHVuayhyZXF1ZXN0LCBpZCwgcG9zdHBvbmVJbnN0YW5jZSkge1xuICB2YXIgcm93O1xuXG4gIHtcbiAgICB2YXIgcmVhc29uID0gJyc7XG4gICAgdmFyIHN0YWNrID0gJyc7XG5cbiAgICB0cnkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICByZWFzb24gPSBTdHJpbmcocG9zdHBvbmVJbnN0YW5jZS5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cbiAgICAgIHN0YWNrID0gU3RyaW5nKHBvc3Rwb25lSW5zdGFuY2Uuc3RhY2spO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG5cbiAgICByb3cgPSBzZXJpYWxpemVSb3dIZWFkZXIoJ1AnLCBpZCkgKyBzdHJpbmdpZnkoe1xuICAgICAgcmVhc29uOiByZWFzb24sXG4gICAgICBzdGFjazogc3RhY2tcbiAgICB9KSArICdcXG4nO1xuICB9XG5cbiAgdmFyIHByb2Nlc3NlZENodW5rID0gc3RyaW5nVG9DaHVuayhyb3cpO1xuICByZXF1ZXN0LmNvbXBsZXRlZEVycm9yQ2h1bmtzLnB1c2gocHJvY2Vzc2VkQ2h1bmspO1xufVxuXG5mdW5jdGlvbiBlbWl0RXJyb3JDaHVuayhyZXF1ZXN0LCBpZCwgZGlnZXN0LCBlcnJvcikge1xuICB2YXIgZXJyb3JJbmZvO1xuXG4gIHtcbiAgICB2YXIgbWVzc2FnZTtcbiAgICB2YXIgc3RhY2sgPSAnJztcblxuICAgIHRyeSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgICAgICAgbWVzc2FnZSA9IFN0cmluZyhlcnJvci5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cbiAgICAgICAgc3RhY2sgPSBTdHJpbmcoZXJyb3Iuc3RhY2spO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9ICdFcnJvcjogJyArIGVycm9yO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgIG1lc3NhZ2UgPSAnQW4gZXJyb3Igb2NjdXJyZWQgYnV0IHNlcmlhbGl6aW5nIHRoZSBlcnJvciBtZXNzYWdlIGZhaWxlZC4nO1xuICAgIH1cblxuICAgIGVycm9ySW5mbyA9IHtcbiAgICAgIGRpZ2VzdDogZGlnZXN0LFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIHN0YWNrOiBzdGFja1xuICAgIH07XG4gIH1cblxuICB2YXIgcm93ID0gc2VyaWFsaXplUm93SGVhZGVyKCdFJywgaWQpICsgc3RyaW5naWZ5KGVycm9ySW5mbykgKyAnXFxuJztcbiAgdmFyIHByb2Nlc3NlZENodW5rID0gc3RyaW5nVG9DaHVuayhyb3cpO1xuICByZXF1ZXN0LmNvbXBsZXRlZEVycm9yQ2h1bmtzLnB1c2gocHJvY2Vzc2VkQ2h1bmspO1xufVxuXG5mdW5jdGlvbiBlbWl0SW1wb3J0Q2h1bmsocmVxdWVzdCwgaWQsIGNsaWVudFJlZmVyZW5jZU1ldGFkYXRhKSB7XG4gIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIHN0cmluZ2lmeSBjYW4gcmV0dXJuIG51bGxcbiAgdmFyIGpzb24gPSBzdHJpbmdpZnkoY2xpZW50UmVmZXJlbmNlTWV0YWRhdGEpO1xuICB2YXIgcm93ID0gc2VyaWFsaXplUm93SGVhZGVyKCdJJywgaWQpICsganNvbiArICdcXG4nO1xuICB2YXIgcHJvY2Vzc2VkQ2h1bmsgPSBzdHJpbmdUb0NodW5rKHJvdyk7XG4gIHJlcXVlc3QuY29tcGxldGVkSW1wb3J0Q2h1bmtzLnB1c2gocHJvY2Vzc2VkQ2h1bmspO1xufVxuXG5mdW5jdGlvbiBlbWl0SGludENodW5rKHJlcXVlc3QsIGNvZGUsIG1vZGVsKSB7XG4gIHZhciBqc29uID0gc3RyaW5naWZ5KG1vZGVsKTtcbiAgdmFyIGlkID0gcmVxdWVzdC5uZXh0Q2h1bmtJZCsrO1xuICB2YXIgcm93ID0gc2VyaWFsaXplUm93SGVhZGVyKCdIJyArIGNvZGUsIGlkKSArIGpzb24gKyAnXFxuJztcbiAgdmFyIHByb2Nlc3NlZENodW5rID0gc3RyaW5nVG9DaHVuayhyb3cpO1xuICByZXF1ZXN0LmNvbXBsZXRlZEhpbnRDaHVua3MucHVzaChwcm9jZXNzZWRDaHVuayk7XG59XG5cbmZ1bmN0aW9uIGVtaXRTeW1ib2xDaHVuayhyZXF1ZXN0LCBpZCwgbmFtZSkge1xuICB2YXIgc3ltYm9sUmVmZXJlbmNlID0gc2VyaWFsaXplU3ltYm9sUmVmZXJlbmNlKG5hbWUpO1xuICB2YXIgcHJvY2Vzc2VkQ2h1bmsgPSBlbmNvZGVSZWZlcmVuY2VDaHVuayhyZXF1ZXN0LCBpZCwgc3ltYm9sUmVmZXJlbmNlKTtcbiAgcmVxdWVzdC5jb21wbGV0ZWRJbXBvcnRDaHVua3MucHVzaChwcm9jZXNzZWRDaHVuayk7XG59XG5cbmZ1bmN0aW9uIGVtaXRNb2RlbENodW5rKHJlcXVlc3QsIGlkLCBtb2RlbCkge1xuICAvLyBUcmFjayB0aGUgcm9vdCBzbyB3ZSBrbm93IHRoYXQgd2UgaGF2ZSB0byBlbWl0IHRoaXMgb2JqZWN0IGV2ZW4gdGhvdWdoIGl0XG4gIC8vIGFscmVhZHkgaGFzIGFuIElELiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHdlIG1pZ2h0IHNlZSB0aGlzIG9iamVjdCB0d2ljZVxuICAvLyBpbiB0aGUgc2FtZSB0b0pTT04gaWYgaXQgaXMgY3ljbGljLlxuICBtb2RlbFJvb3QgPSBtb2RlbDsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdHlwZV0gc3RyaW5naWZ5IGNhbiByZXR1cm4gbnVsbFxuXG4gIHZhciBqc29uID0gc3RyaW5naWZ5KG1vZGVsLCByZXF1ZXN0LnRvSlNPTik7XG4gIHZhciByb3cgPSBpZC50b1N0cmluZygxNikgKyAnOicgKyBqc29uICsgJ1xcbic7XG4gIHZhciBwcm9jZXNzZWRDaHVuayA9IHN0cmluZ1RvQ2h1bmsocm93KTtcbiAgcmVxdWVzdC5jb21wbGV0ZWRSZWd1bGFyQ2h1bmtzLnB1c2gocHJvY2Vzc2VkQ2h1bmspO1xufVxuXG5mdW5jdGlvbiByZXRyeVRhc2socmVxdWVzdCwgdGFzaykge1xuICBpZiAodGFzay5zdGF0dXMgIT09IFBFTkRJTkckMSkge1xuICAgIC8vIFdlIGNvbXBsZXRlZCB0aGlzIGJ5IG90aGVyIG1lYW5zIGJlZm9yZSB3ZSBoYWQgYSBjaGFuY2UgdG8gcmV0cnkgaXQuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3dpdGNoQ29udGV4dCh0YXNrLmNvbnRleHQpO1xuXG4gIHRyeSB7XG4gICAgdmFyIHZhbHVlID0gdGFzay5tb2RlbDtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgIHJlcXVlc3Qud3JpdHRlbk9iamVjdHMuc2V0KHZhbHVlLCB0YXNrLmlkKTsgLy8gVE9ETzogQ29uY2F0ZW5hdGUga2V5cyBvZiBwYXJlbnRzIG9udG8gY2hpbGRyZW4uXG5cbiAgICAgIHZhciBlbGVtZW50ID0gdmFsdWU7IC8vIFdoZW4gcmV0cnlpbmcgYSBjb21wb25lbnQsIHJldXNlIHRoZSB0aGVuYWJsZVN0YXRlIGZyb20gdGhlXG4gICAgICAvLyBwcmV2aW91cyBhdHRlbXB0LlxuXG4gICAgICB2YXIgcHJldlRoZW5hYmxlU3RhdGUgPSB0YXNrLnRoZW5hYmxlU3RhdGU7IC8vIEF0dGVtcHQgdG8gcmVuZGVyIHRoZSBTZXJ2ZXIgQ29tcG9uZW50LlxuICAgICAgLy8gRG9pbmcgdGhpcyBoZXJlIGxldHMgdXMgcmV1c2UgdGhpcyBzYW1lIHRhc2sgaWYgdGhlIG5leHQgY29tcG9uZW50XG4gICAgICAvLyBhbHNvIHN1c3BlbmRzLlxuXG4gICAgICB0YXNrLm1vZGVsID0gdmFsdWU7XG4gICAgICB2YWx1ZSA9IGF0dGVtcHRSZXNvbHZlRWxlbWVudChyZXF1ZXN0LCBlbGVtZW50LnR5cGUsIGVsZW1lbnQua2V5LCBlbGVtZW50LnJlZiwgZWxlbWVudC5wcm9wcywgcHJldlRoZW5hYmxlU3RhdGUpOyAvLyBTdWNjZXNzZnVsbHkgZmluaXNoZWQgdGhpcyBjb21wb25lbnQuIFdlJ3JlIGdvaW5nIHRvIGtlZXAgcmVuZGVyaW5nXG4gICAgICAvLyB1c2luZyB0aGUgc2FtZSB0YXNrLCBidXQgd2UgcmVzZXQgaXRzIHRoZW5hYmxlIHN0YXRlIGJlZm9yZSBjb250aW51aW5nLlxuXG4gICAgICB0YXNrLnRoZW5hYmxlU3RhdGUgPSBudWxsOyAvLyBLZWVwIHJlbmRlcmluZyBhbmQgcmV1c2UgdGhlIHNhbWUgdGFzay4gVGhpcyBpbm5lciBsb29wIGlzIHNlcGFyYXRlXG4gICAgICAvLyBmcm9tIHRoZSByZW5kZXIgYWJvdmUgYmVjYXVzZSB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoZSB0aGVuYWJsZSBzdGF0ZVxuICAgICAgLy8gdW50aWwgdGhlIG5leHQgdGltZSBzb21ldGhpbmcgc3VzcGVuZHMgYW5kIHJldHJpZXMuXG5cbiAgICAgIHdoaWxlICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgcmVxdWVzdC53cml0dGVuT2JqZWN0cy5zZXQodmFsdWUsIHRhc2suaWQpOyAvLyBUT0RPOiBDb25jYXRlbmF0ZSBrZXlzIG9mIHBhcmVudHMgb250byBjaGlsZHJlbi5cblxuICAgICAgICB2YXIgbmV4dEVsZW1lbnQgPSB2YWx1ZTtcbiAgICAgICAgdGFzay5tb2RlbCA9IHZhbHVlO1xuICAgICAgICB2YWx1ZSA9IGF0dGVtcHRSZXNvbHZlRWxlbWVudChyZXF1ZXN0LCBuZXh0RWxlbWVudC50eXBlLCBuZXh0RWxlbWVudC5rZXksIG5leHRFbGVtZW50LnJlZiwgbmV4dEVsZW1lbnQucHJvcHMsIG51bGwpO1xuICAgICAgfVxuICAgIH0gLy8gVHJhY2sgdGhhdCB0aGlzIG9iamVjdCBpcyBvdXRsaW5lZCBhbmQgaGFzIGFuIGlkLlxuXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmVxdWVzdC53cml0dGVuT2JqZWN0cy5zZXQodmFsdWUsIHRhc2suaWQpO1xuICAgIH1cblxuICAgIGVtaXRNb2RlbENodW5rKHJlcXVlc3QsIHRhc2suaWQsIHZhbHVlKTtcbiAgICByZXF1ZXN0LmFib3J0YWJsZVRhc2tzLmRlbGV0ZSh0YXNrKTtcbiAgICB0YXNrLnN0YXR1cyA9IENPTVBMRVRFRDtcbiAgfSBjYXRjaCAodGhyb3duVmFsdWUpIHtcbiAgICB2YXIgeCA9IHRocm93blZhbHVlID09PSBTdXNwZW5zZUV4Y2VwdGlvbiA/IC8vIFRoaXMgaXMgYSBzcGVjaWFsIHR5cGUgb2YgZXhjZXB0aW9uIHVzZWQgZm9yIFN1c3BlbnNlLiBGb3IgaGlzdG9yaWNhbFxuICAgIC8vIHJlYXNvbnMsIHRoZSByZXN0IG9mIHRoZSBTdXNwZW5zZSBpbXBsZW1lbnRhdGlvbiBleHBlY3RzIHRoZSB0aHJvd25cbiAgICAvLyB2YWx1ZSB0byBiZSBhIHRoZW5hYmxlLCBiZWNhdXNlIGJlZm9yZSBgdXNlYCBleGlzdGVkIHRoYXQgd2FzIHRoZVxuICAgIC8vICh1bnN0YWJsZSkgQVBJIGZvciBzdXNwZW5kaW5nLiBUaGlzIGltcGxlbWVudGF0aW9uIGRldGFpbCBjYW4gY2hhbmdlXG4gICAgLy8gbGF0ZXIsIG9uY2Ugd2UgZGVwcmVjYXRlIHRoZSBvbGQgQVBJIGluIGZhdm9yIG9mIGB1c2VgLlxuICAgIGdldFN1c3BlbmRlZFRoZW5hYmxlKCkgOiB0aHJvd25WYWx1ZTtcblxuICAgIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgeCAhPT0gbnVsbCkge1xuICAgICAgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuICAgICAgaWYgKHR5cGVvZiB4LnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gU29tZXRoaW5nIHN1c3BlbmRlZCBhZ2FpbiwgbGV0J3MgcGljayBpdCBiYWNrIHVwIGxhdGVyLlxuICAgICAgICB2YXIgcGluZyA9IHRhc2sucGluZztcbiAgICAgICAgeC50aGVuKHBpbmcsIHBpbmcpO1xuICAgICAgICB0YXNrLnRoZW5hYmxlU3RhdGUgPSBnZXRUaGVuYWJsZVN0YXRlQWZ0ZXJTdXNwZW5kaW5nKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXF1ZXN0LmFib3J0YWJsZVRhc2tzLmRlbGV0ZSh0YXNrKTtcbiAgICB0YXNrLnN0YXR1cyA9IEVSUk9SRUQkMTtcbiAgICB2YXIgZGlnZXN0ID0gbG9nUmVjb3ZlcmFibGVFcnJvcihyZXF1ZXN0LCB4KTtcbiAgICBlbWl0RXJyb3JDaHVuayhyZXF1ZXN0LCB0YXNrLmlkLCBkaWdlc3QsIHgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm1Xb3JrKHJlcXVlc3QpIHtcbiAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50O1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBIb29rc0Rpc3BhdGNoZXI7XG4gIHZhciBwcmV2UmVxdWVzdCA9IGN1cnJlbnRSZXF1ZXN0O1xuICBjdXJyZW50UmVxdWVzdCA9IHJlcXVlc3Q7XG4gIHByZXBhcmVUb1VzZUhvb2tzRm9yUmVxdWVzdChyZXF1ZXN0KTtcblxuICB0cnkge1xuICAgIHZhciBwaW5nZWRUYXNrcyA9IHJlcXVlc3QucGluZ2VkVGFza3M7XG4gICAgcmVxdWVzdC5waW5nZWRUYXNrcyA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwaW5nZWRUYXNrcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHRhc2sgPSBwaW5nZWRUYXNrc1tpXTtcbiAgICAgIHJldHJ5VGFzayhyZXF1ZXN0LCB0YXNrKTtcbiAgICB9XG5cbiAgICBpZiAocmVxdWVzdC5kZXN0aW5hdGlvbiAhPT0gbnVsbCkge1xuICAgICAgZmx1c2hDb21wbGV0ZWRDaHVua3MocmVxdWVzdCwgcmVxdWVzdC5kZXN0aW5hdGlvbik7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ1JlY292ZXJhYmxlRXJyb3IocmVxdWVzdCwgZXJyb3IpO1xuICAgIGZhdGFsRXJyb3IocmVxdWVzdCwgZXJyb3IpO1xuICB9IGZpbmFsbHkge1xuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgIHJlc2V0SG9va3NGb3JSZXF1ZXN0KCk7XG4gICAgY3VycmVudFJlcXVlc3QgPSBwcmV2UmVxdWVzdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBhYm9ydFRhc2sodGFzaywgcmVxdWVzdCwgZXJyb3JJZCkge1xuICB0YXNrLnN0YXR1cyA9IEFCT1JURUQ7IC8vIEluc3RlYWQgb2YgZW1pdHRpbmcgYW4gZXJyb3IgcGVyIHRhc2suaWQsIHdlIGVtaXQgYSBtb2RlbCB0aGF0IG9ubHlcbiAgLy8gaGFzIGEgc2luZ2xlIHZhbHVlIHJlZmVyZW5jaW5nIHRoZSBlcnJvci5cblxuICB2YXIgcmVmID0gc2VyaWFsaXplQnlWYWx1ZUlEKGVycm9ySWQpO1xuICB2YXIgcHJvY2Vzc2VkQ2h1bmsgPSBlbmNvZGVSZWZlcmVuY2VDaHVuayhyZXF1ZXN0LCB0YXNrLmlkLCByZWYpO1xuICByZXF1ZXN0LmNvbXBsZXRlZEVycm9yQ2h1bmtzLnB1c2gocHJvY2Vzc2VkQ2h1bmspO1xufVxuXG5mdW5jdGlvbiBmbHVzaENvbXBsZXRlZENodW5rcyhyZXF1ZXN0LCBkZXN0aW5hdGlvbikge1xuICBiZWdpbldyaXRpbmcoKTtcblxuICB0cnkge1xuICAgIC8vIFdlIGVtaXQgbW9kdWxlIGNodW5rcyBmaXJzdCBpbiB0aGUgc3RyZWFtIHNvIHRoYXRcbiAgICAvLyB0aGV5IGNhbiBiZSBwcmVsb2FkZWQgYXMgZWFybHkgYXMgcG9zc2libGUuXG4gICAgdmFyIGltcG9ydHNDaHVua3MgPSByZXF1ZXN0LmNvbXBsZXRlZEltcG9ydENodW5rcztcbiAgICB2YXIgaSA9IDA7XG5cbiAgICBmb3IgKDsgaSA8IGltcG9ydHNDaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcXVlc3QucGVuZGluZ0NodW5rcy0tO1xuICAgICAgdmFyIGNodW5rID0gaW1wb3J0c0NodW5rc1tpXTtcbiAgICAgIHZhciBrZWVwV3JpdGluZyA9IHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIGNodW5rKTtcblxuICAgICAgaWYgKCFrZWVwV3JpdGluZykge1xuICAgICAgICByZXF1ZXN0LmRlc3RpbmF0aW9uID0gbnVsbDtcbiAgICAgICAgaSsrO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbXBvcnRzQ2h1bmtzLnNwbGljZSgwLCBpKTsgLy8gTmV4dCBjb21lcyBoaW50cy5cblxuICAgIHZhciBoaW50Q2h1bmtzID0gcmVxdWVzdC5jb21wbGV0ZWRIaW50Q2h1bmtzO1xuICAgIGkgPSAwO1xuXG4gICAgZm9yICg7IGkgPCBoaW50Q2h1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgX2NodW5rID0gaGludENodW5rc1tpXTtcblxuICAgICAgdmFyIF9rZWVwV3JpdGluZyA9IHdyaXRlQ2h1bmtBbmRSZXR1cm4oZGVzdGluYXRpb24sIF9jaHVuayk7XG5cbiAgICAgIGlmICghX2tlZXBXcml0aW5nKSB7XG4gICAgICAgIHJlcXVlc3QuZGVzdGluYXRpb24gPSBudWxsO1xuICAgICAgICBpKys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGhpbnRDaHVua3Muc3BsaWNlKDAsIGkpOyAvLyBOZXh0IGNvbWVzIG1vZGVsIGRhdGEuXG5cbiAgICB2YXIgcmVndWxhckNodW5rcyA9IHJlcXVlc3QuY29tcGxldGVkUmVndWxhckNodW5rcztcbiAgICBpID0gMDtcblxuICAgIGZvciAoOyBpIDwgcmVndWxhckNodW5rcy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVxdWVzdC5wZW5kaW5nQ2h1bmtzLS07XG4gICAgICB2YXIgX2NodW5rMiA9IHJlZ3VsYXJDaHVua3NbaV07XG5cbiAgICAgIHZhciBfa2VlcFdyaXRpbmcyID0gd3JpdGVDaHVua0FuZFJldHVybihkZXN0aW5hdGlvbiwgX2NodW5rMik7XG5cbiAgICAgIGlmICghX2tlZXBXcml0aW5nMikge1xuICAgICAgICByZXF1ZXN0LmRlc3RpbmF0aW9uID0gbnVsbDtcbiAgICAgICAgaSsrO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZWd1bGFyQ2h1bmtzLnNwbGljZSgwLCBpKTsgLy8gRmluYWxseSwgZXJyb3JzIGFyZSBzZW50LiBUaGUgaWRlYSBpcyB0aGF0IGl0J3Mgb2sgdG8gZGVsYXlcbiAgICAvLyBhbnkgZXJyb3IgbWVzc2FnZXMgYW5kIHByaW9yaXRpemUgZGlzcGxheSBvZiBvdGhlciBwYXJ0cyBvZlxuICAgIC8vIHRoZSBwYWdlLlxuXG4gICAgdmFyIGVycm9yQ2h1bmtzID0gcmVxdWVzdC5jb21wbGV0ZWRFcnJvckNodW5rcztcbiAgICBpID0gMDtcblxuICAgIGZvciAoOyBpIDwgZXJyb3JDaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcXVlc3QucGVuZGluZ0NodW5rcy0tO1xuICAgICAgdmFyIF9jaHVuazMgPSBlcnJvckNodW5rc1tpXTtcblxuICAgICAgdmFyIF9rZWVwV3JpdGluZzMgPSB3cml0ZUNodW5rQW5kUmV0dXJuKGRlc3RpbmF0aW9uLCBfY2h1bmszKTtcblxuICAgICAgaWYgKCFfa2VlcFdyaXRpbmczKSB7XG4gICAgICAgIHJlcXVlc3QuZGVzdGluYXRpb24gPSBudWxsO1xuICAgICAgICBpKys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVycm9yQ2h1bmtzLnNwbGljZSgwLCBpKTtcbiAgfSBmaW5hbGx5IHtcbiAgICByZXF1ZXN0LmZsdXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgY29tcGxldGVXcml0aW5nKGRlc3RpbmF0aW9uKTtcbiAgfVxuXG4gIGlmIChyZXF1ZXN0LnBlbmRpbmdDaHVua3MgPT09IDApIHtcblxuICAgIGNsb3NlJDEoZGVzdGluYXRpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0YXJ0V29yayhyZXF1ZXN0KSB7XG4gIHJlcXVlc3QuZmx1c2hTY2hlZHVsZWQgPSByZXF1ZXN0LmRlc3RpbmF0aW9uICE9PSBudWxsO1xuXG4gIGlmIChzdXBwb3J0c1JlcXVlc3RTdG9yYWdlKSB7XG4gICAgc2NoZWR1bGVXb3JrKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFnZS5ydW4ocmVxdWVzdCwgcGVyZm9ybVdvcmssIHJlcXVlc3QpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHNjaGVkdWxlV29yayhmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcGVyZm9ybVdvcmsocmVxdWVzdCk7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW5xdWV1ZUZsdXNoKHJlcXVlc3QpIHtcbiAgaWYgKHJlcXVlc3QuZmx1c2hTY2hlZHVsZWQgPT09IGZhbHNlICYmIC8vIElmIHRoZXJlIGFyZSBwaW5nZWQgdGFza3Mgd2UgYXJlIGdvaW5nIHRvIGZsdXNoIGFueXdheSBhZnRlciB3b3JrIGNvbXBsZXRlc1xuICByZXF1ZXN0LnBpbmdlZFRhc2tzLmxlbmd0aCA9PT0gMCAmJiAvLyBJZiB0aGVyZSBpcyBubyBkZXN0aW5hdGlvbiB0aGVyZSBpcyBub3RoaW5nIHdlIGNhbiBmbHVzaCB0by4gQSBmbHVzaCB3aWxsXG4gIC8vIGhhcHBlbiB3aGVuIHdlIHN0YXJ0IGZsb3dpbmcgYWdhaW5cbiAgcmVxdWVzdC5kZXN0aW5hdGlvbiAhPT0gbnVsbCkge1xuICAgIHZhciBkZXN0aW5hdGlvbiA9IHJlcXVlc3QuZGVzdGluYXRpb247XG4gICAgcmVxdWVzdC5mbHVzaFNjaGVkdWxlZCA9IHRydWU7XG4gICAgc2NoZWR1bGVXb3JrKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmbHVzaENvbXBsZXRlZENodW5rcyhyZXF1ZXN0LCBkZXN0aW5hdGlvbik7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RhcnRGbG93aW5nKHJlcXVlc3QsIGRlc3RpbmF0aW9uKSB7XG4gIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gQ0xPU0lORykge1xuICAgIHJlcXVlc3Quc3RhdHVzID0gQ0xPU0VEO1xuICAgIGNsb3NlV2l0aEVycm9yKGRlc3RpbmF0aW9uLCByZXF1ZXN0LmZhdGFsRXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gQ0xPU0VEKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHJlcXVlc3QuZGVzdGluYXRpb24gIT09IG51bGwpIHtcbiAgICAvLyBXZSdyZSBhbHJlYWR5IGZsb3dpbmcuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVxdWVzdC5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuXG4gIHRyeSB7XG4gICAgZmx1c2hDb21wbGV0ZWRDaHVua3MocmVxdWVzdCwgZGVzdGluYXRpb24pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ1JlY292ZXJhYmxlRXJyb3IocmVxdWVzdCwgZXJyb3IpO1xuICAgIGZhdGFsRXJyb3IocmVxdWVzdCwgZXJyb3IpO1xuICB9XG59XG5mdW5jdGlvbiBzdG9wRmxvd2luZyhyZXF1ZXN0KSB7XG4gIHJlcXVlc3QuZGVzdGluYXRpb24gPSBudWxsO1xufSAvLyBUaGlzIGlzIGNhbGxlZCB0byBlYXJseSB0ZXJtaW5hdGUgYSByZXF1ZXN0LiBJdCBjcmVhdGVzIGFuIGVycm9yIGF0IGFsbCBwZW5kaW5nIHRhc2tzLlxuXG5mdW5jdGlvbiBhYm9ydChyZXF1ZXN0LCByZWFzb24pIHtcbiAgdHJ5IHtcbiAgICB2YXIgYWJvcnRhYmxlVGFza3MgPSByZXF1ZXN0LmFib3J0YWJsZVRhc2tzO1xuXG4gICAgaWYgKGFib3J0YWJsZVRhc2tzLnNpemUgPiAwKSB7XG4gICAgICAvLyBXZSBoYXZlIHRhc2tzIHRvIGFib3J0LiBXZSdsbCBlbWl0IG9uZSBlcnJvciByb3cgYW5kIHRoZW4gZW1pdCBhIHJlZmVyZW5jZVxuICAgICAgLy8gdG8gdGhhdCByb3cgZnJvbSBldmVyeSByb3cgdGhhdCdzIHN0aWxsIHJlbWFpbmluZy5cbiAgICAgIHJlcXVlc3QucGVuZGluZ0NodW5rcysrO1xuICAgICAgdmFyIGVycm9ySWQgPSByZXF1ZXN0Lm5leHRDaHVua0lkKys7XG5cbiAgICAgIHZhciBwb3N0cG9uZUluc3RhbmNlOyBpZiAoZW5hYmxlUG9zdHBvbmUgJiYgdHlwZW9mIHJlYXNvbiA9PT0gJ29iamVjdCcgJiYgcmVhc29uICE9PSBudWxsICYmIHJlYXNvbi4kJHR5cGVvZiA9PT0gUkVBQ1RfUE9TVFBPTkVfVFlQRSkgOyBlbHNlIHtcbiAgICAgICAgdmFyIGVycm9yID0gcmVhc29uID09PSB1bmRlZmluZWQgPyBuZXcgRXJyb3IoJ1RoZSByZW5kZXIgd2FzIGFib3J0ZWQgYnkgdGhlIHNlcnZlciB3aXRob3V0IGEgcmVhc29uLicpIDogcmVhc29uO1xuICAgICAgICB2YXIgZGlnZXN0ID0gbG9nUmVjb3ZlcmFibGVFcnJvcihyZXF1ZXN0LCBlcnJvcik7XG4gICAgICAgIGVtaXRFcnJvckNodW5rKHJlcXVlc3QsIGVycm9ySWQsIGRpZ2VzdCwgZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICBhYm9ydGFibGVUYXNrcy5mb3JFYWNoKGZ1bmN0aW9uICh0YXNrKSB7XG4gICAgICAgIHJldHVybiBhYm9ydFRhc2sodGFzaywgcmVxdWVzdCwgZXJyb3JJZCk7XG4gICAgICB9KTtcbiAgICAgIGFib3J0YWJsZVRhc2tzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgaWYgKHJlcXVlc3QuZGVzdGluYXRpb24gIT09IG51bGwpIHtcbiAgICAgIGZsdXNoQ29tcGxldGVkQ2h1bmtzKHJlcXVlc3QsIHJlcXVlc3QuZGVzdGluYXRpb24pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2dSZWNvdmVyYWJsZUVycm9yKHJlcXVlc3QsIGVycm9yKTtcbiAgICBmYXRhbEVycm9yKHJlcXVlc3QsIGVycm9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbXBvcnRTZXJ2ZXJDb250ZXh0cyhjb250ZXh0cykge1xuXG4gIHJldHVybiByb290Q29udGV4dFNuYXBzaG90O1xufVxuXG4vLyBUaGlzIGlzIHRoZSBwYXJzZWQgc2hhcGUgb2YgdGhlIHdpcmUgZm9ybWF0IHdoaWNoIGlzIHdoeSBpdCBpc1xuLy8gY29uZGVuc2VkIHRvIG9ubHkgdGhlIGVzc2VudGlhbHkgaW5mb3JtYXRpb25cbnZhciBJRCA9IDA7XG52YXIgQ0hVTktTID0gMTtcbnZhciBOQU1FID0gMjsgLy8gZXhwb3J0IGNvbnN0IEFTWU5DID0gMztcbi8vIFRoaXMgbG9naWMgaXMgY29ycmVjdCBiZWNhdXNlIGN1cnJlbnRseSBvbmx5IGluY2x1ZGUgdGhlIDR0aCB0dXBsZSBtZW1iZXJcbi8vIHdoZW4gdGhlIG1vZHVsZSBpcyBhc3luYy4gSWYgdGhhdCBjaGFuZ2VzIHdlIHdpbGwgbmVlZCB0byBhY3R1YWxseSBhc3NlcnRcbi8vIHRoZSB2YWx1ZSBpcyB0cnVlLiBXZSBkb24ndCBpbmRleCBpbnRvIHRoZSA0dGggc2xvdCBiZWNhdXNlIGZsb3cgZG9lcyBub3Rcbi8vIGxpa2UgdGhlIHBvdGVudGlhbCBvdXQgb2YgYm91bmRzIGFjY2Vzc1xuXG5mdW5jdGlvbiBpc0FzeW5jSW1wb3J0KG1ldGFkYXRhKSB7XG4gIHJldHVybiBtZXRhZGF0YS5sZW5ndGggPT09IDQ7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVTZXJ2ZXJSZWZlcmVuY2UoYnVuZGxlckNvbmZpZywgaWQpIHtcbiAgdmFyIG5hbWUgPSAnJztcbiAgdmFyIHJlc29sdmVkTW9kdWxlRGF0YSA9IGJ1bmRsZXJDb25maWdbaWRdO1xuXG4gIGlmIChyZXNvbHZlZE1vZHVsZURhdGEpIHtcbiAgICAvLyBUaGUgcG90ZW50aWFsbHkgYWxpYXNlZCBuYW1lLlxuICAgIG5hbWUgPSByZXNvbHZlZE1vZHVsZURhdGEubmFtZTtcbiAgfSBlbHNlIHtcbiAgICAvLyBXZSBkaWRuJ3QgZmluZCB0aGlzIHNwZWNpZmljIGV4cG9ydCBuYW1lIGJ1dCB3ZSBtaWdodCBoYXZlIHRoZSAqIGV4cG9ydFxuICAgIC8vIHdoaWNoIGNvbnRhaW5zIHRoaXMgbmFtZSBhcyB3ZWxsLlxuICAgIC8vIFRPRE86IEl0J3MgdW5mb3J0dW5hdGUgdGhhdCB3ZSBub3cgaGF2ZSB0byBwYXJzZSB0aGlzIHN0cmluZy4gV2Ugc2hvdWxkXG4gICAgLy8gcHJvYmFibHkgZ28gYmFjayB0byBlbmNvZGluZyBwYXRoIGFuZCBuYW1lIHNlcGFyYXRlbHkgb24gdGhlIGNsaWVudCByZWZlcmVuY2UuXG4gICAgdmFyIGlkeCA9IGlkLmxhc3RJbmRleE9mKCcjJyk7XG5cbiAgICBpZiAoaWR4ICE9PSAtMSkge1xuICAgICAgbmFtZSA9IGlkLnNsaWNlKGlkeCArIDEpO1xuICAgICAgcmVzb2x2ZWRNb2R1bGVEYXRhID0gYnVuZGxlckNvbmZpZ1tpZC5zbGljZSgwLCBpZHgpXTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc29sdmVkTW9kdWxlRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCB0aGUgbW9kdWxlIFwiJyArIGlkICsgJ1wiIGluIHRoZSBSZWFjdCBTZXJ2ZXIgTWFuaWZlc3QuICcgKyAnVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBpbiB0aGUgUmVhY3QgU2VydmVyIENvbXBvbmVudHMgYnVuZGxlci4nKTtcbiAgICB9XG4gIH0gLy8gVE9ETzogVGhpcyBuZWVkcyB0byByZXR1cm4gYXN5bmM6IHRydWUgaWYgaXQncyBhbiBhc3luYyBtb2R1bGUuXG5cblxuICByZXR1cm4gW3Jlc29sdmVkTW9kdWxlRGF0YS5pZCwgcmVzb2x2ZWRNb2R1bGVEYXRhLmNodW5rcywgbmFtZV07XG59IC8vIFRoZSBjaHVuayBjYWNoZSBjb250YWlucyBhbGwgdGhlIGNodW5rcyB3ZSd2ZSBwcmVsb2FkZWQgc28gZmFyLlxuLy8gSWYgdGhleSdyZSBzdGlsbCBwZW5kaW5nIHRoZXkncmUgYSB0aGVuYWJsZS4gVGhpcyBtYXAgYWxzbyBleGlzdHNcbi8vIGluIFdlYnBhY2sgYnV0IHVuZm9ydHVuYXRlbHkgaXQncyBub3QgZXhwb3NlZCBzbyB3ZSBoYXZlIHRvXG4vLyByZXBsaWNhdGUgaXQgaW4gdXNlciBzcGFjZS4gbnVsbCBtZWFucyB0aGF0IGl0IGhhcyBhbHJlYWR5IGxvYWRlZC5cblxudmFyIGNodW5rQ2FjaGUgPSBuZXcgTWFwKCk7XG5cbmZ1bmN0aW9uIHJlcXVpcmVBc3luY01vZHVsZShpZCkge1xuICAvLyBXZSd2ZSBhbHJlYWR5IGxvYWRlZCBhbGwgdGhlIGNodW5rcy4gV2UgY2FuIHJlcXVpcmUgdGhlIG1vZHVsZS5cbiAgdmFyIHByb21pc2UgPSBnbG9iYWxUaGlzLl9fbmV4dF9yZXF1aXJlX18oaWQpO1xuXG4gIGlmICh0eXBlb2YgcHJvbWlzZS50aGVuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gVGhpcyB3YXNuJ3QgYSBwcm9taXNlIGFmdGVyIGFsbC5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmIChwcm9taXNlLnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcpIHtcbiAgICAvLyBUaGlzIG1vZHVsZSB3YXMgYWxyZWFkeSByZXNvbHZlZCBlYXJsaWVyLlxuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2Uge1xuICAgIC8vIEluc3RydW1lbnQgdGhlIFByb21pc2UgdG8gc3Rhc2ggdGhlIHJlc3VsdC5cbiAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICB2YXIgZnVsZmlsbGVkVGhlbmFibGUgPSBwcm9taXNlO1xuICAgICAgZnVsZmlsbGVkVGhlbmFibGUuc3RhdHVzID0gJ2Z1bGZpbGxlZCc7XG4gICAgICBmdWxmaWxsZWRUaGVuYWJsZS52YWx1ZSA9IHZhbHVlO1xuICAgIH0sIGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgIHZhciByZWplY3RlZFRoZW5hYmxlID0gcHJvbWlzZTtcbiAgICAgIHJlamVjdGVkVGhlbmFibGUuc3RhdHVzID0gJ3JlamVjdGVkJztcbiAgICAgIHJlamVjdGVkVGhlbmFibGUucmVhc29uID0gcmVhc29uO1xuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlnbm9yZVJlamVjdCgpIHsvLyBXZSByZWx5IG9uIHJlamVjdGVkIHByb21pc2VzIHRvIGJlIGhhbmRsZWQgYnkgYW5vdGhlciBsaXN0ZW5lci5cbn0gLy8gU3RhcnQgcHJlbG9hZGluZyB0aGUgbW9kdWxlcyBzaW5jZSB3ZSBtaWdodCBuZWVkIHRoZW0gc29vbi5cbi8vIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBzdXNwZW5kLlxuXG5cbmZ1bmN0aW9uIHByZWxvYWRNb2R1bGUobWV0YWRhdGEpIHtcbiAgdmFyIGNodW5rcyA9IG1ldGFkYXRhW0NIVU5LU107XG4gIHZhciBwcm9taXNlcyA9IFtdO1xuICB2YXIgaSA9IDA7XG5cbiAgd2hpbGUgKGkgPCBjaHVua3MubGVuZ3RoKSB7XG4gICAgdmFyIGNodW5rSWQgPSBjaHVua3NbaSsrXTtcbiAgICBjaHVua3NbaSsrXTtcbiAgICB2YXIgZW50cnkgPSBjaHVua0NhY2hlLmdldChjaHVua0lkKTtcblxuICAgIGlmIChlbnRyeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgdGhlbmFibGUgPSBsb2FkQ2h1bmsoY2h1bmtJZCk7XG4gICAgICBwcm9taXNlcy5wdXNoKHRoZW5hYmxlKTsgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuXG4gICAgICB2YXIgcmVzb2x2ZSA9IGNodW5rQ2FjaGUuc2V0LmJpbmQoY2h1bmtDYWNoZSwgY2h1bmtJZCwgbnVsbCk7XG4gICAgICB0aGVuYWJsZS50aGVuKHJlc29sdmUsIGlnbm9yZVJlamVjdCk7XG4gICAgICBjaHVua0NhY2hlLnNldChjaHVua0lkLCB0aGVuYWJsZSk7XG4gICAgfSBlbHNlIGlmIChlbnRyeSAhPT0gbnVsbCkge1xuICAgICAgcHJvbWlzZXMucHVzaChlbnRyeSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzQXN5bmNJbXBvcnQobWV0YWRhdGEpKSB7XG4gICAgaWYgKHByb21pc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHJlcXVpcmVBc3luY01vZHVsZShtZXRhZGF0YVtJRF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZUFzeW5jTW9kdWxlKG1ldGFkYXRhW0lEXSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSBpZiAocHJvbWlzZXMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn0gLy8gQWN0dWFsbHkgcmVxdWlyZSB0aGUgbW9kdWxlIG9yIHN1c3BlbmQgaWYgaXQncyBub3QgeWV0IHJlYWR5LlxuLy8gSW5jcmVhc2UgcHJpb3JpdHkgaWYgbmVjZXNzYXJ5LlxuXG5mdW5jdGlvbiByZXF1aXJlTW9kdWxlKG1ldGFkYXRhKSB7XG4gIHZhciBtb2R1bGVFeHBvcnRzID0gZ2xvYmFsVGhpcy5fX25leHRfcmVxdWlyZV9fKG1ldGFkYXRhW0lEXSk7XG5cbiAgaWYgKGlzQXN5bmNJbXBvcnQobWV0YWRhdGEpKSB7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGVFeHBvcnRzLnRoZW4gIT09ICdmdW5jdGlvbicpIDsgZWxzZSBpZiAobW9kdWxlRXhwb3J0cy5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgICAvLyBUaGlzIFByb21pc2Ugc2hvdWxkJ3ZlIGJlZW4gaW5zdHJ1bWVudGVkIGJ5IHByZWxvYWRNb2R1bGUuXG4gICAgICBtb2R1bGVFeHBvcnRzID0gbW9kdWxlRXhwb3J0cy52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbW9kdWxlRXhwb3J0cy5yZWFzb247XG4gICAgfVxuICB9XG5cbiAgaWYgKG1ldGFkYXRhW05BTUVdID09PSAnKicpIHtcbiAgICAvLyBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgdmFsdWUgdGhhdCByZXByZXNlbnRzIHRoYXQgdGhlIGNhbGxlciBpbXBvcnRlZCB0aGlzXG4gICAgLy8gYXMgYSBDb21tb25KUyBtb2R1bGUgYXMgaXMuXG4gICAgcmV0dXJuIG1vZHVsZUV4cG9ydHM7XG4gIH1cblxuICBpZiAobWV0YWRhdGFbTkFNRV0gPT09ICcnKSB7XG4gICAgLy8gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIHZhbHVlIHRoYXQgcmVwcmVzZW50cyB0aGF0IHRoZSBjYWxsZXIgYWNjZXNzZWQgdGhlXG4gICAgLy8gZGVmYXVsdCBwcm9wZXJ0eSBvZiB0aGlzIGlmIGl0IHdhcyBhbiBFU00gaW50ZXJvcCBtb2R1bGUuXG4gICAgcmV0dXJuIG1vZHVsZUV4cG9ydHMuX19lc01vZHVsZSA/IG1vZHVsZUV4cG9ydHMuZGVmYXVsdCA6IG1vZHVsZUV4cG9ydHM7XG4gIH1cblxuICByZXR1cm4gbW9kdWxlRXhwb3J0c1ttZXRhZGF0YVtOQU1FXV07XG59XG5cbmZ1bmN0aW9uIGxvYWRDaHVuayhjaHVua0lkLCBmaWxlbmFtZSkge1xuICByZXR1cm4gX193ZWJwYWNrX2NodW5rX2xvYWRfXyhjaHVua0lkKTtcbn1cblxuLy8gVGhlIHNlcnZlciBhY3RzIGFzIGEgQ2xpZW50IG9mIGl0c2VsZiB3aGVuIHJlc29sdmluZyBTZXJ2ZXIgUmVmZXJlbmNlcy5cbnZhciBQRU5ESU5HID0gJ3BlbmRpbmcnO1xudmFyIEJMT0NLRUQgPSAnYmxvY2tlZCc7XG52YXIgUkVTT0xWRURfTU9ERUwgPSAncmVzb2x2ZWRfbW9kZWwnO1xudmFyIElOSVRJQUxJWkVEID0gJ2Z1bGZpbGxlZCc7XG52YXIgRVJST1JFRCA9ICdyZWplY3RlZCc7IC8vICRGbG93Rml4TWVbbWlzc2luZy10aGlzLWFubm90XVxuXG5mdW5jdGlvbiBDaHVuayhzdGF0dXMsIHZhbHVlLCByZWFzb24sIHJlc3BvbnNlKSB7XG4gIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIHRoaXMucmVhc29uID0gcmVhc29uO1xuICB0aGlzLl9yZXNwb25zZSA9IHJlc3BvbnNlO1xufSAvLyBXZSBzdWJjbGFzcyBQcm9taXNlLnByb3RvdHlwZSBzbyB0aGF0IHdlIGdldCBvdGhlciBtZXRob2RzIGxpa2UgLmNhdGNoXG5cblxuQ2h1bmsucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShQcm9taXNlLnByb3RvdHlwZSk7IC8vIFRPRE86IFRoaXMgZG9lc24ndCByZXR1cm4gYSBuZXcgUHJvbWlzZSBjaGFpbiB1bmxpa2UgdGhlIHJlYWwgLnRoZW5cblxuQ2h1bmsucHJvdG90eXBlLnRoZW4gPSBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gIHZhciBjaHVuayA9IHRoaXM7IC8vIElmIHdlIGhhdmUgcmVzb2x2ZWQgY29udGVudCwgd2UgdHJ5IHRvIGluaXRpYWxpemUgaXQgZmlyc3Qgd2hpY2hcbiAgLy8gbWlnaHQgcHV0IHVzIGJhY2sgaW50byBvbmUgb2YgdGhlIG90aGVyIHN0YXRlcy5cblxuICBzd2l0Y2ggKGNodW5rLnN0YXR1cykge1xuICAgIGNhc2UgUkVTT0xWRURfTU9ERUw6XG4gICAgICBpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuayk7XG4gICAgICBicmVhaztcbiAgfSAvLyBUaGUgc3RhdHVzIG1pZ2h0IGhhdmUgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi5cblxuXG4gIHN3aXRjaCAoY2h1bmsuc3RhdHVzKSB7XG4gICAgY2FzZSBJTklUSUFMSVpFRDpcbiAgICAgIHJlc29sdmUoY2h1bmsudmFsdWUpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFBFTkRJTkc6XG4gICAgY2FzZSBCTE9DS0VEOlxuICAgICAgaWYgKHJlc29sdmUpIHtcbiAgICAgICAgaWYgKGNodW5rLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgY2h1bmsudmFsdWUgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNodW5rLnZhbHVlLnB1c2gocmVzb2x2ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZWplY3QpIHtcbiAgICAgICAgaWYgKGNodW5rLnJlYXNvbiA9PT0gbnVsbCkge1xuICAgICAgICAgIGNodW5rLnJlYXNvbiA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY2h1bmsucmVhc29uLnB1c2gocmVqZWN0KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmVqZWN0KGNodW5rLnJlYXNvbik7XG4gICAgICBicmVhaztcbiAgfVxufTtcblxuZnVuY3Rpb24gZ2V0Um9vdChyZXNwb25zZSkge1xuICB2YXIgY2h1bmsgPSBnZXRDaHVuayhyZXNwb25zZSwgMCk7XG4gIHJldHVybiBjaHVuaztcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGVuZGluZ0NodW5rKHJlc3BvbnNlKSB7XG4gIC8vICRGbG93Rml4TWVbaW52YWxpZC1jb25zdHJ1Y3Rvcl0gRmxvdyBkb2Vzbid0IHN1cHBvcnQgZnVuY3Rpb25zIGFzIGNvbnN0cnVjdG9yc1xuICByZXR1cm4gbmV3IENodW5rKFBFTkRJTkcsIG51bGwsIG51bGwsIHJlc3BvbnNlKTtcbn1cblxuZnVuY3Rpb24gd2FrZUNodW5rKGxpc3RlbmVycywgdmFsdWUpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGlzdGVuZXIgPSBsaXN0ZW5lcnNbaV07XG4gICAgbGlzdGVuZXIodmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyaWdnZXJFcnJvck9uQ2h1bmsoY2h1bmssIGVycm9yKSB7XG4gIGlmIChjaHVuay5zdGF0dXMgIT09IFBFTkRJTkcgJiYgY2h1bmsuc3RhdHVzICE9PSBCTE9DS0VEKSB7XG4gICAgLy8gV2UgYWxyZWFkeSByZXNvbHZlZC4gV2UgZGlkbid0IGV4cGVjdCB0byBzZWUgdGhpcy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgbGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICB2YXIgZXJyb3JlZENodW5rID0gY2h1bms7XG4gIGVycm9yZWRDaHVuay5zdGF0dXMgPSBFUlJPUkVEO1xuICBlcnJvcmVkQ2h1bmsucmVhc29uID0gZXJyb3I7XG5cbiAgaWYgKGxpc3RlbmVycyAhPT0gbnVsbCkge1xuICAgIHdha2VDaHVuayhsaXN0ZW5lcnMsIGVycm9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXNvbHZlZE1vZGVsQ2h1bmsocmVzcG9uc2UsIHZhbHVlKSB7XG4gIC8vICRGbG93Rml4TWVbaW52YWxpZC1jb25zdHJ1Y3Rvcl0gRmxvdyBkb2Vzbid0IHN1cHBvcnQgZnVuY3Rpb25zIGFzIGNvbnN0cnVjdG9yc1xuICByZXR1cm4gbmV3IENodW5rKFJFU09MVkVEX01PREVMLCB2YWx1ZSwgbnVsbCwgcmVzcG9uc2UpO1xufVxuXG5mdW5jdGlvbiBiaW5kQXJncyQxKGZuLCBhcmdzKSB7XG4gIHJldHVybiBmbi5iaW5kLmFwcGx5KGZuLCBbbnVsbF0uY29uY2F0KGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24gbG9hZFNlcnZlclJlZmVyZW5jZSQxKHJlc3BvbnNlLCBpZCwgYm91bmQsIHBhcmVudENodW5rLCBwYXJlbnRPYmplY3QsIGtleSkge1xuICB2YXIgc2VydmVyUmVmZXJlbmNlID0gcmVzb2x2ZVNlcnZlclJlZmVyZW5jZShyZXNwb25zZS5fYnVuZGxlckNvbmZpZywgaWQpOyAvLyBXZSBleHBlY3QgbW9zdCBzZXJ2ZXJzIHRvIG5vdCByZWFsbHkgbmVlZCB0aGlzIGJlY2F1c2UgeW91J2QganVzdCBoYXZlIGFsbFxuICAvLyB0aGUgcmVsZXZhbnQgbW9kdWxlcyBhbHJlYWR5IGxvYWRlZCBidXQgaXQgYWxsb3dzIGZvciBsYXp5IGxvYWRpbmcgb2YgY29kZVxuICAvLyBpZiBuZWVkZWQuXG5cbiAgdmFyIHByZWxvYWRQcm9taXNlID0gcHJlbG9hZE1vZHVsZShzZXJ2ZXJSZWZlcmVuY2UpO1xuICB2YXIgcHJvbWlzZTtcblxuICBpZiAoYm91bmQpIHtcbiAgICBwcm9taXNlID0gUHJvbWlzZS5hbGwoW2JvdW5kLCBwcmVsb2FkUHJvbWlzZV0pLnRoZW4oZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBhcmdzID0gX3JlZlswXTtcbiAgICAgIHJldHVybiBiaW5kQXJncyQxKHJlcXVpcmVNb2R1bGUoc2VydmVyUmVmZXJlbmNlKSwgYXJncyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHByZWxvYWRQcm9taXNlKSB7XG4gICAgICBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHByZWxvYWRQcm9taXNlKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmVNb2R1bGUoc2VydmVyUmVmZXJlbmNlKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTeW5jaHJvbm91c2x5IGF2YWlsYWJsZVxuICAgICAgcmV0dXJuIHJlcXVpcmVNb2R1bGUoc2VydmVyUmVmZXJlbmNlKTtcbiAgICB9XG4gIH1cblxuICBwcm9taXNlLnRoZW4oY3JlYXRlTW9kZWxSZXNvbHZlcihwYXJlbnRDaHVuaywgcGFyZW50T2JqZWN0LCBrZXkpLCBjcmVhdGVNb2RlbFJlamVjdChwYXJlbnRDaHVuaykpOyAvLyBXZSBuZWVkIGEgcGxhY2Vob2xkZXIgdmFsdWUgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIGxhdGVyLlxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgaW5pdGlhbGl6aW5nQ2h1bmsgPSBudWxsO1xudmFyIGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsID0gbnVsbDtcblxuZnVuY3Rpb24gaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspIHtcbiAgdmFyIHByZXZDaHVuayA9IGluaXRpYWxpemluZ0NodW5rO1xuICB2YXIgcHJldkJsb2NrZWQgPSBpbml0aWFsaXppbmdDaHVua0Jsb2NrZWRNb2RlbDtcbiAgaW5pdGlhbGl6aW5nQ2h1bmsgPSBjaHVuaztcbiAgaW5pdGlhbGl6aW5nQ2h1bmtCbG9ja2VkTW9kZWwgPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShjaHVuay52YWx1ZSwgY2h1bmsuX3Jlc3BvbnNlLl9mcm9tSlNPTik7XG5cbiAgICBpZiAoaW5pdGlhbGl6aW5nQ2h1bmtCbG9ja2VkTW9kZWwgIT09IG51bGwgJiYgaW5pdGlhbGl6aW5nQ2h1bmtCbG9ja2VkTW9kZWwuZGVwcyA+IDApIHtcbiAgICAgIGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsLnZhbHVlID0gdmFsdWU7IC8vIFdlIGRpc2NvdmVyZWQgbmV3IGRlcGVuZGVuY2llcyBvbiBtb2R1bGVzIHRoYXQgYXJlIG5vdCB5ZXQgcmVzb2x2ZWQuXG4gICAgICAvLyBXZSBoYXZlIHRvIGdvIHRoZSBCTE9DS0VEIHN0YXRlIHVudGlsIHRoZXkncmUgcmVzb2x2ZWQuXG5cbiAgICAgIHZhciBibG9ja2VkQ2h1bmsgPSBjaHVuaztcbiAgICAgIGJsb2NrZWRDaHVuay5zdGF0dXMgPSBCTE9DS0VEO1xuICAgICAgYmxvY2tlZENodW5rLnZhbHVlID0gbnVsbDtcbiAgICAgIGJsb2NrZWRDaHVuay5yZWFzb24gPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgaW5pdGlhbGl6ZWRDaHVuayA9IGNodW5rO1xuICAgICAgaW5pdGlhbGl6ZWRDaHVuay5zdGF0dXMgPSBJTklUSUFMSVpFRDtcbiAgICAgIGluaXRpYWxpemVkQ2h1bmsudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdmFyIGVycm9yZWRDaHVuayA9IGNodW5rO1xuICAgIGVycm9yZWRDaHVuay5zdGF0dXMgPSBFUlJPUkVEO1xuICAgIGVycm9yZWRDaHVuay5yZWFzb24gPSBlcnJvcjtcbiAgfSBmaW5hbGx5IHtcbiAgICBpbml0aWFsaXppbmdDaHVuayA9IHByZXZDaHVuaztcbiAgICBpbml0aWFsaXppbmdDaHVua0Jsb2NrZWRNb2RlbCA9IHByZXZCbG9ja2VkO1xuICB9XG59IC8vIFJlcG9ydCB0aGF0IGFueSBtaXNzaW5nIGNodW5rcyBpbiB0aGUgbW9kZWwgaXMgbm93IGdvaW5nIHRvIHRocm93IHRoaXNcbi8vIGVycm9yIHVwb24gcmVhZC4gQWxzbyBub3RpZnkgYW55IHBlbmRpbmcgcHJvbWlzZXMuXG5cblxuZnVuY3Rpb24gcmVwb3J0R2xvYmFsRXJyb3IocmVzcG9uc2UsIGVycm9yKSB7XG4gIHJlc3BvbnNlLl9jaHVua3MuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmspIHtcbiAgICAvLyBJZiB0aGlzIGNodW5rIHdhcyBhbHJlYWR5IHJlc29sdmVkIG9yIGVycm9yZWQsIGl0IHdvbid0XG4gICAgLy8gdHJpZ2dlciBhbiBlcnJvciBidXQgaWYgaXQgd2Fzbid0IHRoZW4gd2UgbmVlZCB0b1xuICAgIC8vIGJlY2F1c2Ugd2Ugd29uJ3QgYmUgZ2V0dGluZyBhbnkgbmV3IGRhdGEgdG8gcmVzb2x2ZSBpdC5cbiAgICBpZiAoY2h1bmsuc3RhdHVzID09PSBQRU5ESU5HKSB7XG4gICAgICB0cmlnZ2VyRXJyb3JPbkNodW5rKGNodW5rLCBlcnJvcik7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2h1bmsocmVzcG9uc2UsIGlkKSB7XG4gIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzO1xuICB2YXIgY2h1bmsgPSBjaHVua3MuZ2V0KGlkKTtcblxuICBpZiAoIWNodW5rKSB7XG4gICAgdmFyIHByZWZpeCA9IHJlc3BvbnNlLl9wcmVmaXg7XG4gICAgdmFyIGtleSA9IHByZWZpeCArIGlkOyAvLyBDaGVjayBpZiB3ZSBoYXZlIHRoaXMgZmllbGQgaW4gdGhlIGJhY2tpbmcgc3RvcmUgYWxyZWFkeS5cblxuICAgIHZhciBiYWNraW5nRW50cnkgPSByZXNwb25zZS5fZm9ybURhdGEuZ2V0KGtleSk7XG5cbiAgICBpZiAoYmFja2luZ0VudHJ5ICE9IG51bGwpIHtcbiAgICAgIC8vIFdlIGFzc3VtZSB0aGF0IHRoaXMgaXMgYSBzdHJpbmcgZW50cnkgZm9yIG5vdy5cbiAgICAgIGNodW5rID0gY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCBiYWNraW5nRW50cnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSdyZSBzdGlsbCB3YWl0aW5nIG9uIHRoaXMgZW50cnkgdG8gc3RyZWFtIGluLlxuICAgICAgY2h1bmsgPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpO1xuICAgIH1cblxuICAgIGNodW5rcy5zZXQoaWQsIGNodW5rKTtcbiAgfVxuXG4gIHJldHVybiBjaHVuaztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTW9kZWxSZXNvbHZlcihjaHVuaywgcGFyZW50T2JqZWN0LCBrZXkpIHtcbiAgdmFyIGJsb2NrZWQ7XG5cbiAgaWYgKGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsKSB7XG4gICAgYmxvY2tlZCA9IGluaXRpYWxpemluZ0NodW5rQmxvY2tlZE1vZGVsO1xuICAgIGJsb2NrZWQuZGVwcysrO1xuICB9IGVsc2Uge1xuICAgIGJsb2NrZWQgPSBpbml0aWFsaXppbmdDaHVua0Jsb2NrZWRNb2RlbCA9IHtcbiAgICAgIGRlcHM6IDEsXG4gICAgICB2YWx1ZTogbnVsbFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcGFyZW50T2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICBibG9ja2VkLmRlcHMtLTtcblxuICAgIGlmIChibG9ja2VkLmRlcHMgPT09IDApIHtcbiAgICAgIGlmIChjaHVuay5zdGF0dXMgIT09IEJMT0NLRUQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVzb2x2ZUxpc3RlbmVycyA9IGNodW5rLnZhbHVlO1xuICAgICAgdmFyIGluaXRpYWxpemVkQ2h1bmsgPSBjaHVuaztcbiAgICAgIGluaXRpYWxpemVkQ2h1bmsuc3RhdHVzID0gSU5JVElBTElaRUQ7XG4gICAgICBpbml0aWFsaXplZENodW5rLnZhbHVlID0gYmxvY2tlZC52YWx1ZTtcblxuICAgICAgaWYgKHJlc29sdmVMaXN0ZW5lcnMgIT09IG51bGwpIHtcbiAgICAgICAgd2FrZUNodW5rKHJlc29sdmVMaXN0ZW5lcnMsIGJsb2NrZWQudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTW9kZWxSZWplY3QoY2h1bmspIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChlcnJvcikge1xuICAgIHJldHVybiB0cmlnZ2VyRXJyb3JPbkNodW5rKGNodW5rLCBlcnJvcik7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldE91dGxpbmVkTW9kZWwocmVzcG9uc2UsIGlkKSB7XG4gIHZhciBjaHVuayA9IGdldENodW5rKHJlc3BvbnNlLCBpZCk7XG5cbiAgaWYgKGNodW5rLnN0YXR1cyA9PT0gUkVTT0xWRURfTU9ERUwpIHtcbiAgICBpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuayk7XG4gIH1cblxuICBpZiAoY2h1bmsuc3RhdHVzICE9PSBJTklUSUFMSVpFRCkge1xuICAgIC8vIFdlIGtub3cgdGhhdCB0aGlzIGlzIGVtaXR0ZWQgZWFybGllciBzbyBvdGhlcndpc2UgaXQncyBhbiBlcnJvci5cbiAgICB0aHJvdyBjaHVuay5yZWFzb247XG4gIH1cblxuICByZXR1cm4gY2h1bmsudmFsdWU7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTW9kZWxTdHJpbmcocmVzcG9uc2UsIHBhcmVudE9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAodmFsdWVbMF0gPT09ICckJykge1xuICAgIHN3aXRjaCAodmFsdWVbMV0pIHtcbiAgICAgIGNhc2UgJyQnOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhpcyB3YXMgYW4gZXNjYXBlZCBzdHJpbmcgdmFsdWUuXG4gICAgICAgICAgcmV0dXJuIHZhbHVlLnNsaWNlKDEpO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ0AnOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gUHJvbWlzZVxuICAgICAgICAgIHZhciBpZCA9IHBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCAxNik7XG4gICAgICAgICAgdmFyIGNodW5rID0gZ2V0Q2h1bmsocmVzcG9uc2UsIGlkKTtcbiAgICAgICAgICByZXR1cm4gY2h1bms7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnUyc6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBTeW1ib2xcbiAgICAgICAgICByZXR1cm4gU3ltYm9sLmZvcih2YWx1ZS5zbGljZSgyKSk7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnRic6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBTZXJ2ZXIgUmVmZXJlbmNlXG4gICAgICAgICAgdmFyIF9pZCA9IHBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCAxNik7IC8vIFRPRE86IEp1c3QgZW5jb2RlIHRoaXMgaW4gdGhlIHJlZmVyZW5jZSBpbmxpbmUgaW5zdGVhZCBvZiBhcyBhIG1vZGVsLlxuXG5cbiAgICAgICAgICB2YXIgbWV0YURhdGEgPSBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCBfaWQpO1xuICAgICAgICAgIHJldHVybiBsb2FkU2VydmVyUmVmZXJlbmNlJDEocmVzcG9uc2UsIG1ldGFEYXRhLmlkLCBtZXRhRGF0YS5ib3VuZCwgaW5pdGlhbGl6aW5nQ2h1bmssIHBhcmVudE9iamVjdCwga2V5KTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdRJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIE1hcFxuICAgICAgICAgIHZhciBfaWQyID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDE2KTtcblxuICAgICAgICAgIHZhciBkYXRhID0gZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgX2lkMik7XG4gICAgICAgICAgcmV0dXJuIG5ldyBNYXAoZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnVyc6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBTZXRcbiAgICAgICAgICB2YXIgX2lkMyA9IHBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCAxNik7XG5cbiAgICAgICAgICB2YXIgX2RhdGEgPSBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCBfaWQzKTtcblxuICAgICAgICAgIHJldHVybiBuZXcgU2V0KF9kYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdLJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIEZvcm1EYXRhXG4gICAgICAgICAgdmFyIHN0cmluZ0lkID0gdmFsdWUuc2xpY2UoMik7XG4gICAgICAgICAgdmFyIGZvcm1QcmVmaXggPSByZXNwb25zZS5fcHJlZml4ICsgc3RyaW5nSWQgKyAnXyc7XG5cbiAgICAgICAgICB2YXIgX2RhdGEyID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICAgICAgICB2YXIgYmFja2luZ0Zvcm1EYXRhID0gcmVzcG9uc2UuX2Zvcm1EYXRhOyAvLyBXZSBhc3N1bWUgdGhhdCB0aGUgcmVmZXJlbmNlIHRvIEZvcm1EYXRhIGFsd2F5cyBjb21lcyBhZnRlciBlYWNoXG4gICAgICAgICAgLy8gZW50cnkgdGhhdCBpdCByZWZlcmVuY2VzIHNvIHdlIGNhbiBhc3N1bWUgdGhleSBhbGwgZXhpc3QgaW4gdGhlXG4gICAgICAgICAgLy8gYmFja2luZyBzdG9yZSBhbHJlYWR5LlxuICAgICAgICAgIC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXSBGb3JtRGF0YSBoYXMgZm9yRWFjaCBvbiBpdC5cblxuICAgICAgICAgIGJhY2tpbmdGb3JtRGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChlbnRyeSwgZW50cnlLZXkpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeUtleS5zdGFydHNXaXRoKGZvcm1QcmVmaXgpKSB7XG4gICAgICAgICAgICAgIF9kYXRhMi5hcHBlbmQoZW50cnlLZXkuc2xpY2UoZm9ybVByZWZpeC5sZW5ndGgpLCBlbnRyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIF9kYXRhMjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdJJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vICRJbmZpbml0eVxuICAgICAgICAgIHJldHVybiBJbmZpbml0eTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICctJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vICQtMCBvciAkLUluZmluaXR5XG4gICAgICAgICAgaWYgKHZhbHVlID09PSAnJC0wJykge1xuICAgICAgICAgICAgcmV0dXJuIC0wO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gLUluZmluaXR5O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdOJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vICROYU5cbiAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ3UnOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gbWF0Y2hlcyBcIiR1bmRlZmluZWRcIlxuICAgICAgICAgIC8vIFNwZWNpYWwgZW5jb2RpbmcgZm9yIGB1bmRlZmluZWRgIHdoaWNoIGNhbid0IGJlIHNlcmlhbGl6ZWQgYXMgSlNPTiBvdGhlcndpc2UuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdEJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIERhdGVcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZS5zbGljZSgyKSkpO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ24nOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gQmlnSW50XG4gICAgICAgICAgcmV0dXJuIEJpZ0ludCh2YWx1ZS5zbGljZSgyKSk7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFdlIGFzc3VtZSB0aGF0IGFueXRoaW5nIGVsc2UgaXMgYSByZWZlcmVuY2UgSUQuXG4gICAgICAgICAgdmFyIF9pZDQgPSBwYXJzZUludCh2YWx1ZS5zbGljZSgxKSwgMTYpO1xuXG4gICAgICAgICAgdmFyIF9jaHVuayA9IGdldENodW5rKHJlc3BvbnNlLCBfaWQ0KTtcblxuICAgICAgICAgIHN3aXRjaCAoX2NodW5rLnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSBSRVNPTFZFRF9NT0RFTDpcbiAgICAgICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoX2NodW5rKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSAvLyBUaGUgc3RhdHVzIG1pZ2h0IGhhdmUgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi5cblxuXG4gICAgICAgICAgc3dpdGNoIChfY2h1bmsuc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIElOSVRJQUxJWkVEOlxuICAgICAgICAgICAgICByZXR1cm4gX2NodW5rLnZhbHVlO1xuXG4gICAgICAgICAgICBjYXNlIFBFTkRJTkc6XG4gICAgICAgICAgICBjYXNlIEJMT0NLRUQ6XG4gICAgICAgICAgICAgIHZhciBwYXJlbnRDaHVuayA9IGluaXRpYWxpemluZ0NodW5rO1xuXG4gICAgICAgICAgICAgIF9jaHVuay50aGVuKGNyZWF0ZU1vZGVsUmVzb2x2ZXIocGFyZW50Q2h1bmssIHBhcmVudE9iamVjdCwga2V5KSwgY3JlYXRlTW9kZWxSZWplY3QocGFyZW50Q2h1bmspKTtcblxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgdGhyb3cgX2NodW5rLnJlYXNvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlKGJ1bmRsZXJDb25maWcsIGZvcm1GaWVsZFByZWZpeCkge1xuICB2YXIgYmFja2luZ0Zvcm1EYXRhID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiBuZXcgRm9ybURhdGEoKTtcbiAgdmFyIGNodW5rcyA9IG5ldyBNYXAoKTtcbiAgdmFyIHJlc3BvbnNlID0ge1xuICAgIF9idW5kbGVyQ29uZmlnOiBidW5kbGVyQ29uZmlnLFxuICAgIF9wcmVmaXg6IGZvcm1GaWVsZFByZWZpeCxcbiAgICBfZm9ybURhdGE6IGJhY2tpbmdGb3JtRGF0YSxcbiAgICBfY2h1bmtzOiBjaHVua3MsXG4gICAgX2Zyb21KU09OOiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gV2UgY2FuJ3QgdXNlIC5iaW5kIGhlcmUgYmVjYXVzZSB3ZSBuZWVkIHRoZSBcInRoaXNcIiB2YWx1ZS5cbiAgICAgICAgcmV0dXJuIHBhcnNlTW9kZWxTdHJpbmcocmVzcG9uc2UsIHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9O1xuICByZXR1cm4gcmVzcG9uc2U7XG59XG5mdW5jdGlvbiBjbG9zZShyZXNwb25zZSkge1xuICAvLyBJbiBjYXNlIHRoZXJlIGFyZSBhbnkgcmVtYWluaW5nIHVucmVzb2x2ZWQgY2h1bmtzLCB0aGV5IHdvbid0XG4gIC8vIGJlIHJlc29sdmVkIG5vdy4gU28gd2UgbmVlZCB0byBpc3N1ZSBhbiBlcnJvciB0byB0aG9zZS5cbiAgLy8gSWRlYWxseSB3ZSBzaG91bGQgYmUgYWJsZSB0byBlYXJseSBiYWlsIG91dCBpZiB3ZSBrZXB0IGFcbiAgLy8gcmVmIGNvdW50IG9mIHBlbmRpbmcgY2h1bmtzLlxuICByZXBvcnRHbG9iYWxFcnJvcihyZXNwb25zZSwgbmV3IEVycm9yKCdDb25uZWN0aW9uIGNsb3NlZC4nKSk7XG59XG5cbmZ1bmN0aW9uIGJpbmRBcmdzKGZuLCBhcmdzKSB7XG4gIHJldHVybiBmbi5iaW5kLmFwcGx5KGZuLCBbbnVsbF0uY29uY2F0KGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24gbG9hZFNlcnZlclJlZmVyZW5jZShidW5kbGVyQ29uZmlnLCBpZCwgYm91bmQpIHtcbiAgdmFyIHNlcnZlclJlZmVyZW5jZSA9IHJlc29sdmVTZXJ2ZXJSZWZlcmVuY2UoYnVuZGxlckNvbmZpZywgaWQpOyAvLyBXZSBleHBlY3QgbW9zdCBzZXJ2ZXJzIHRvIG5vdCByZWFsbHkgbmVlZCB0aGlzIGJlY2F1c2UgeW91J2QganVzdCBoYXZlIGFsbFxuICAvLyB0aGUgcmVsZXZhbnQgbW9kdWxlcyBhbHJlYWR5IGxvYWRlZCBidXQgaXQgYWxsb3dzIGZvciBsYXp5IGxvYWRpbmcgb2YgY29kZVxuICAvLyBpZiBuZWVkZWQuXG5cbiAgdmFyIHByZWxvYWRQcm9taXNlID0gcHJlbG9hZE1vZHVsZShzZXJ2ZXJSZWZlcmVuY2UpO1xuXG4gIGlmIChib3VuZCkge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChbYm91bmQsIHByZWxvYWRQcm9taXNlXSkudGhlbihmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGFyZ3MgPSBfcmVmWzBdO1xuICAgICAgcmV0dXJuIGJpbmRBcmdzKHJlcXVpcmVNb2R1bGUoc2VydmVyUmVmZXJlbmNlKSwgYXJncyk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAocHJlbG9hZFByb21pc2UpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByZWxvYWRQcm9taXNlKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZXF1aXJlTW9kdWxlKHNlcnZlclJlZmVyZW5jZSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gU3luY2hyb25vdXNseSBhdmFpbGFibGVcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlcXVpcmVNb2R1bGUoc2VydmVyUmVmZXJlbmNlKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVjb2RlQm91bmRBY3Rpb25NZXRhRGF0YShib2R5LCBzZXJ2ZXJNYW5pZmVzdCwgZm9ybUZpZWxkUHJlZml4KSB7XG4gIC8vIFRoZSBkYXRhIGZvciB0aGlzIHJlZmVyZW5jZSBpcyBlbmNvZGVkIGluIG11bHRpcGxlIGZpZWxkcyB1bmRlciB0aGlzIHByZWZpeC5cbiAgdmFyIGFjdGlvblJlc3BvbnNlID0gY3JlYXRlUmVzcG9uc2Uoc2VydmVyTWFuaWZlc3QsIGZvcm1GaWVsZFByZWZpeCwgYm9keSk7XG4gIGNsb3NlKGFjdGlvblJlc3BvbnNlKTtcbiAgdmFyIHJlZlByb21pc2UgPSBnZXRSb290KGFjdGlvblJlc3BvbnNlKTsgLy8gRm9yY2UgaXQgdG8gaW5pdGlhbGl6ZVxuICAvLyAkRmxvd0ZpeE1lXG5cbiAgcmVmUHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHt9KTtcblxuICBpZiAocmVmUHJvbWlzZS5zdGF0dXMgIT09ICdmdWxmaWxsZWQnKSB7XG4gICAgLy8gJEZsb3dGaXhNZVxuICAgIHRocm93IHJlZlByb21pc2UucmVhc29uO1xuICB9XG5cbiAgcmV0dXJuIHJlZlByb21pc2UudmFsdWU7XG59XG5cbmZ1bmN0aW9uIGRlY29kZUFjdGlvbihib2R5LCBzZXJ2ZXJNYW5pZmVzdCkge1xuICAvLyBXZSdyZSBnb2luZyB0byBjcmVhdGUgYSBuZXcgZm9ybURhdGEgb2JqZWN0IHRoYXQgaG9sZHMgYWxsIHRoZSBmaWVsZHMgZXhjZXB0XG4gIC8vIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIHRoZSBhY3Rpb24gZGF0YS5cbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gIHZhciBhY3Rpb24gPSBudWxsOyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuICBib2R5LmZvckVhY2goZnVuY3Rpb24gKHZhbHVlLCBrZXkpIHtcbiAgICBpZiAoIWtleS5zdGFydHNXaXRoKCckQUNUSU9OXycpKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB2YWx1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBMYXRlciBhY3Rpb25zIG1heSBvdmVycmlkZSBlYXJsaWVyIGFjdGlvbnMgaWYgYSBidXR0b24gaXMgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdFxuICAgIC8vIGZvcm0gYWN0aW9uLlxuXG5cbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJyRBQ1RJT05fUkVGXycpKSB7XG4gICAgICB2YXIgZm9ybUZpZWxkUHJlZml4ID0gJyRBQ1RJT05fJyArIGtleS5zbGljZSgxMikgKyAnOic7XG4gICAgICB2YXIgbWV0YURhdGEgPSBkZWNvZGVCb3VuZEFjdGlvbk1ldGFEYXRhKGJvZHksIHNlcnZlck1hbmlmZXN0LCBmb3JtRmllbGRQcmVmaXgpO1xuICAgICAgYWN0aW9uID0gbG9hZFNlcnZlclJlZmVyZW5jZShzZXJ2ZXJNYW5pZmVzdCwgbWV0YURhdGEuaWQsIG1ldGFEYXRhLmJvdW5kKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJyRBQ1RJT05fSURfJykpIHtcbiAgICAgIHZhciBpZCA9IGtleS5zbGljZSgxMSk7XG4gICAgICBhY3Rpb24gPSBsb2FkU2VydmVyUmVmZXJlbmNlKHNlcnZlck1hbmlmZXN0LCBpZCwgbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9KTtcblxuICBpZiAoYWN0aW9uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gUmV0dXJuIHRoZSBhY3Rpb24gd2l0aCB0aGUgcmVtYWluaW5nIEZvcm1EYXRhIGJvdW5kIHRvIHRoZSBmaXJzdCBhcmd1bWVudC5cblxuXG4gIHJldHVybiBhY3Rpb24udGhlbihmdW5jdGlvbiAoZm4pIHtcbiAgICByZXR1cm4gZm4uYmluZChudWxsLCBmb3JtRGF0YSk7XG4gIH0pO1xufVxuZnVuY3Rpb24gZGVjb2RlRm9ybVN0YXRlKGFjdGlvblJlc3VsdCwgYm9keSwgc2VydmVyTWFuaWZlc3QpIHtcbiAgdmFyIGtleVBhdGggPSBib2R5LmdldCgnJEFDVElPTl9LRVknKTtcblxuICBpZiAodHlwZW9mIGtleVBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gVGhpcyBmb3JtIHN1Ym1pc3Npb24gZGlkIG5vdCBpbmNsdWRlIGFueSBmb3JtIHN0YXRlLlxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gIH0gLy8gU2VhcmNoIHRocm91Z2ggdGhlIGZvcm0gZGF0YSBvYmplY3QgdG8gZ2V0IHRoZSByZWZlcmVuY2UgaWQgYW5kIHRoZSBudW1iZXJcbiAgLy8gb2YgYm91bmQgYXJndW1lbnRzLiBUaGlzIHJlcGVhdHMgc29tZSBvZiB0aGUgd29yayBkb25lIGluIGRlY29kZUFjdGlvbi5cblxuXG4gIHZhciBtZXRhRGF0YSA9IG51bGw7IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuXG4gIGJvZHkuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnJEFDVElPTl9SRUZfJykpIHtcbiAgICAgIHZhciBmb3JtRmllbGRQcmVmaXggPSAnJEFDVElPTl8nICsga2V5LnNsaWNlKDEyKSArICc6JztcbiAgICAgIG1ldGFEYXRhID0gZGVjb2RlQm91bmRBY3Rpb25NZXRhRGF0YShib2R5LCBzZXJ2ZXJNYW5pZmVzdCwgZm9ybUZpZWxkUHJlZml4KTtcbiAgICB9IC8vIFdlIGRvbid0IGNoZWNrIGZvciB0aGUgc2ltcGxlICRBQ1RJT05fSURfIGNhc2UgYmVjYXVzZSBmb3JtIHN0YXRlIGFjdGlvbnNcbiAgICAvLyBhcmUgYWx3YXlzIGJvdW5kIHRvIHRoZSBzdGF0ZSBhcmd1bWVudC5cblxuICB9KTtcblxuICBpZiAobWV0YURhdGEgPT09IG51bGwpIHtcbiAgICAvLyBTaG91bGQgYmUgdW5yZWFjaGFibGUuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgfVxuXG4gIHZhciByZWZlcmVuY2VJZCA9IG1ldGFEYXRhLmlkO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG1ldGFEYXRhLmJvdW5kKS50aGVuKGZ1bmN0aW9uIChib3VuZCkge1xuICAgIGlmIChib3VuZCA9PT0gbnVsbCkge1xuICAgICAgLy8gU2hvdWxkIGJlIHVucmVhY2hhYmxlIGJlY2F1c2UgZm9ybSBzdGF0ZSBhY3Rpb25zIGFyZSBhbHdheXMgYm91bmQgdG8gdGhlXG4gICAgICAvLyBzdGF0ZSBhcmd1bWVudC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gLy8gVGhlIGZvcm0gYWN0aW9uIGRpc3BhdGNoIG1ldGhvZCBpcyBhbHdheXMgYm91bmQgdG8gdGhlIGluaXRpYWwgc3RhdGUuXG4gICAgLy8gQnV0IHdoZW4gY29tcGFyaW5nIHNpZ25hdHVyZXMsIHdlIGNvbXBhcmUgdG8gdGhlIG9yaWdpbmFsIHVuYm91bmQgYWN0aW9uLlxuICAgIC8vIFN1YnRyYWN0IG9uZSBmcm9tIHRoZSBhcml0eSB0byBhY2NvdW50IGZvciB0aGlzLlxuXG5cbiAgICB2YXIgYm91bmRBcml0eSA9IGJvdW5kLmxlbmd0aCAtIDE7XG4gICAgcmV0dXJuIFthY3Rpb25SZXN1bHQsIGtleVBhdGgsIHJlZmVyZW5jZUlkLCBib3VuZEFyaXR5XTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlclRvUmVhZGFibGVTdHJlYW0obW9kZWwsIHdlYnBhY2tNYXAsIG9wdGlvbnMpIHtcbiAgdmFyIHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KG1vZGVsLCB3ZWJwYWNrTWFwLCBvcHRpb25zID8gb3B0aW9ucy5vbkVycm9yIDogdW5kZWZpbmVkLCBvcHRpb25zID8gb3B0aW9ucy5jb250ZXh0IDogdW5kZWZpbmVkLCBvcHRpb25zID8gb3B0aW9ucy5pZGVudGlmaWVyUHJlZml4IDogdW5kZWZpbmVkLCBvcHRpb25zID8gb3B0aW9ucy5vblBvc3Rwb25lIDogdW5kZWZpbmVkKTtcblxuICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNpZ25hbCkge1xuICAgIHZhciBzaWduYWwgPSBvcHRpb25zLnNpZ25hbDtcblxuICAgIGlmIChzaWduYWwuYWJvcnRlZCkge1xuICAgICAgYWJvcnQocmVxdWVzdCwgc2lnbmFsLnJlYXNvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBsaXN0ZW5lciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYWJvcnQocmVxdWVzdCwgc2lnbmFsLnJlYXNvbik7XG4gICAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGxpc3RlbmVyKTtcbiAgICAgIH07XG5cbiAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICB2YXIgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICB0eXBlOiAnYnl0ZXMnLFxuICAgIHN0YXJ0OiBmdW5jdGlvbiAoY29udHJvbGxlcikge1xuICAgICAgc3RhcnRXb3JrKHJlcXVlc3QpO1xuICAgIH0sXG4gICAgcHVsbDogZnVuY3Rpb24gKGNvbnRyb2xsZXIpIHtcbiAgICAgIHN0YXJ0Rmxvd2luZyhyZXF1ZXN0LCBjb250cm9sbGVyKTtcbiAgICB9LFxuICAgIGNhbmNlbDogZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgc3RvcEZsb3dpbmcocmVxdWVzdCk7XG4gICAgICBhYm9ydChyZXF1ZXN0LCByZWFzb24pO1xuICAgIH1cbiAgfSwgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddIHNpemUoKSBtZXRob2RzIGFyZSBub3QgYWxsb3dlZCBvbiBieXRlIHN0cmVhbXMuXG4gIHtcbiAgICBoaWdoV2F0ZXJNYXJrOiAwXG4gIH0pO1xuICByZXR1cm4gc3RyZWFtO1xufVxuXG5mdW5jdGlvbiBkZWNvZGVSZXBseShib2R5LCB3ZWJwYWNrTWFwKSB7XG4gIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICB2YXIgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm0uYXBwZW5kKCcwJywgYm9keSk7XG4gICAgYm9keSA9IGZvcm07XG4gIH1cblxuICB2YXIgcmVzcG9uc2UgPSBjcmVhdGVSZXNwb25zZSh3ZWJwYWNrTWFwLCAnJywgYm9keSk7XG4gIHZhciByb290ID0gZ2V0Um9vdChyZXNwb25zZSk7XG4gIGNsb3NlKHJlc3BvbnNlKTtcbiAgcmV0dXJuIHJvb3Q7XG59XG5cbmV4cG9ydHMuY3JlYXRlQ2xpZW50TW9kdWxlUHJveHkgPSBjcmVhdGVDbGllbnRNb2R1bGVQcm94eTtcbmV4cG9ydHMuZGVjb2RlQWN0aW9uID0gZGVjb2RlQWN0aW9uO1xuZXhwb3J0cy5kZWNvZGVGb3JtU3RhdGUgPSBkZWNvZGVGb3JtU3RhdGU7XG5leHBvcnRzLmRlY29kZVJlcGx5ID0gZGVjb2RlUmVwbHk7XG5leHBvcnRzLnJlZ2lzdGVyQ2xpZW50UmVmZXJlbmNlID0gcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2U7XG5leHBvcnRzLnJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlID0gcmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2U7XG5leHBvcnRzLnJlbmRlclRvUmVhZGFibGVTdHJlYW0gPSByZW5kZXJUb1JlYWRhYmxlU3RyZWFtO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJSZWFjdCIsInJlcXVpcmUiLCJSZWFjdERPTSIsIlJlYWN0U2hhcmVkSW50ZXJuYWxzIiwiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJlcnJvciIsImZvcm1hdCIsIl9sZW4yIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleTIiLCJwcmludFdhcm5pbmciLCJsZXZlbCIsIlJlYWN0RGVidWdDdXJyZW50RnJhbWUiLCJzdGFjayIsImdldFN0YWNrQWRkZW5kdW0iLCJjb25jYXQiLCJhcmdzV2l0aEZvcm1hdCIsIm1hcCIsIml0ZW0iLCJTdHJpbmciLCJ1bnNoaWZ0IiwiRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJhcHBseSIsImNhbGwiLCJjb25zb2xlIiwiZW5hYmxlUG9zdHBvbmUiLCJzY2hlZHVsZVdvcmsiLCJjYWxsYmFjayIsInNldFRpbWVvdXQiLCJWSUVXX1NJWkUiLCJjdXJyZW50VmlldyIsIndyaXR0ZW5CeXRlcyIsImJlZ2luV3JpdGluZyIsImRlc3RpbmF0aW9uIiwiVWludDhBcnJheSIsIndyaXRlQ2h1bmsiLCJjaHVuayIsImJ5dGVMZW5ndGgiLCJwcmVjb21wdXRlZENodW5rU2V0IiwiaGFzIiwiZW5xdWV1ZSIsImJ1ZmZlciIsImJ5dGVzVG9Xcml0ZSIsImFsbG93YWJsZUJ5dGVzIiwic2V0Iiwic3ViYXJyYXkiLCJ3cml0ZUNodW5rQW5kUmV0dXJuIiwiY29tcGxldGVXcml0aW5nIiwiY2xvc2UkMSIsImNsb3NlIiwidGV4dEVuY29kZXIiLCJUZXh0RW5jb2RlciIsInN0cmluZ1RvQ2h1bmsiLCJjb250ZW50IiwiZW5jb2RlIiwiU2V0IiwiYnl0ZUxlbmd0aE9mQ2h1bmsiLCJjbG9zZVdpdGhFcnJvciIsIkNMSUVOVF9SRUZFUkVOQ0VfVEFHIiwiU3ltYm9sIiwiZm9yIiwiU0VSVkVSX1JFRkVSRU5DRV9UQUciLCJpc0NsaWVudFJlZmVyZW5jZSIsInJlZmVyZW5jZSIsIiQkdHlwZW9mIiwiaXNTZXJ2ZXJSZWZlcmVuY2UiLCJyZWdpc3RlckNsaWVudFJlZmVyZW5jZSIsInByb3h5SW1wbGVtZW50YXRpb24iLCJpZCIsImV4cG9ydE5hbWUiLCJyZWdpc3RlckNsaWVudFJlZmVyZW5jZUltcGwiLCJhc3luYyIsIk9iamVjdCIsImRlZmluZVByb3BlcnRpZXMiLCJ2YWx1ZSIsIiQkaWQiLCIkJGFzeW5jIiwiRnVuY3Rpb25CaW5kIiwiYmluZCIsIkFycmF5U2xpY2UiLCJzbGljZSIsIm5ld0ZuIiwiJCRib3VuZCIsInJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlIiwiUFJPTUlTRV9QUk9UT1RZUEUiLCJQcm9taXNlIiwiZGVlcFByb3h5SGFuZGxlcnMiLCJnZXQiLCJ0YXJnZXQiLCJuYW1lIiwicmVjZWl2ZXIiLCJ1bmRlZmluZWQiLCJ0b1ByaW1pdGl2ZSIsIkVycm9yIiwiZXhwcmVzc2lvbiIsImdldFJlZmVyZW5jZSIsIm1vZHVsZUlkIiwiZGVmYXVsdCIsInRoZW4iLCJjbGllbnRSZWZlcmVuY2UiLCJwcm94eSIsIlByb3h5IiwicHJveHlIYW5kbGVycyIsInN0YXR1cyIsInJlc29sdmUiLCJyZWplY3QiLCJjYWNoZWRSZWZlcmVuY2UiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImRlc2NyaXB0b3IiLCJ3cml0YWJsZSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJnZXRQcm90b3R5cGVPZiIsImNyZWF0ZUNsaWVudE1vZHVsZVByb3h5IiwiZ2V0Q2xpZW50UmVmZXJlbmNlS2V5IiwicmVzb2x2ZUNsaWVudFJlZmVyZW5jZU1ldGFkYXRhIiwiY29uZmlnIiwibW9kdWxlUGF0aCIsInJlc29sdmVkTW9kdWxlRGF0YSIsImlkeCIsImxhc3RJbmRleE9mIiwiY2h1bmtzIiwiZ2V0U2VydmVyUmVmZXJlbmNlSWQiLCJzZXJ2ZXJSZWZlcmVuY2UiLCJnZXRTZXJ2ZXJSZWZlcmVuY2VCb3VuZEFyZ3VtZW50cyIsIlJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzIiwiUmVhY3RET01GbGlnaHRTZXJ2ZXJEaXNwYXRjaGVyIiwicHJlZmV0Y2hETlMiLCJwcmVjb25uZWN0IiwicHJlbG9hZCIsInByZWxvYWRNb2R1bGUiLCJwcmVsb2FkTW9kdWxlJDEiLCJwcmVpbml0U3R5bGUiLCJwcmVpbml0U2NyaXB0IiwicHJlaW5pdE1vZHVsZVNjcmlwdCIsImhyZWYiLCJyZXF1ZXN0IiwicmVzb2x2ZVJlcXVlc3QiLCJoaW50cyIsImdldEhpbnRzIiwia2V5IiwiYWRkIiwiZW1pdEhpbnQiLCJjcm9zc09yaWdpbiIsImFzIiwib3B0aW9ucyIsImdldEltYWdlUHJlbG9hZEtleSIsImltYWdlU3JjU2V0IiwiaW1hZ2VTaXplcyIsInRyaW1tZWQiLCJ0cmltT3B0aW9ucyIsInByZWNlZGVuY2UiLCJoYXNQcm9wZXJ0aWVzIiwidW5pcXVlUGFydCIsIlJlYWN0RE9NQ3VycmVudERpc3BhdGNoZXIiLCJEaXNwYXRjaGVyIiwicHJlcGFyZUhvc3REaXNwYXRjaGVyIiwiY3VycmVudCIsImNyZWF0ZUhpbnRzIiwic3VwcG9ydHNSZXF1ZXN0U3RvcmFnZSIsIkFzeW5jTG9jYWxTdG9yYWdlIiwicmVxdWVzdFN0b3JhZ2UiLCJhc3luY19ob29rcyIsImNyZWF0ZUhvb2siLCJlbmFibGUiLCJkaXNhYmxlIiwiZXhlY3V0aW9uQXN5bmNJZCIsIlJFQUNUX0VMRU1FTlRfVFlQRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJSRUFDVF9NRU1PX0NBQ0hFX1NFTlRJTkVMIiwiUkVBQ1RfUE9TVFBPTkVfVFlQRSIsIk1BWUJFX0lURVJBVE9SX1NZTUJPTCIsIml0ZXJhdG9yIiwiRkFVWF9JVEVSQVRPUl9TWU1CT0wiLCJnZXRJdGVyYXRvckZuIiwibWF5YmVJdGVyYWJsZSIsIm1heWJlSXRlcmF0b3IiLCJyb290Q29udGV4dFNuYXBzaG90IiwiY3VycmVudEFjdGl2ZVNuYXBzaG90IiwicG9wTm9kZSIsInByZXYiLCJjb250ZXh0IiwiX2N1cnJlbnRWYWx1ZSIsInBhcmVudFZhbHVlIiwicHVzaE5vZGUiLCJuZXh0IiwicG9wVG9OZWFyZXN0Q29tbW9uQW5jZXN0b3IiLCJwYXJlbnRQcmV2IiwicGFyZW50IiwicGFyZW50TmV4dCIsInBvcEFsbFByZXZpb3VzIiwicHVzaEFsbE5leHQiLCJwb3BQcmV2aW91c1RvQ29tbW9uTGV2ZWwiLCJkZXB0aCIsInBvcE5leHRUb0NvbW1vbkxldmVsIiwic3dpdGNoQ29udGV4dCIsIm5ld1NuYXBzaG90IiwiZ2V0QWN0aXZlQ29udGV4dCIsInJlYWRDb250ZXh0JDEiLCJTdXNwZW5zZUV4Y2VwdGlvbiIsImNyZWF0ZVRoZW5hYmxlU3RhdGUiLCJub29wIiwidHJhY2tVc2VkVGhlbmFibGUiLCJ0aGVuYWJsZVN0YXRlIiwidGhlbmFibGUiLCJpbmRleCIsInByZXZpb3VzIiwicHVzaCIsImZ1bGZpbGxlZFZhbHVlIiwicmVqZWN0ZWRFcnJvciIsInJlYXNvbiIsInBlbmRpbmdUaGVuYWJsZSIsImZ1bGZpbGxlZFRoZW5hYmxlIiwicmVqZWN0ZWRUaGVuYWJsZSIsInN1c3BlbmRlZFRoZW5hYmxlIiwiZ2V0U3VzcGVuZGVkVGhlbmFibGUiLCJjdXJyZW50UmVxdWVzdCQxIiwidGhlbmFibGVJbmRleENvdW50ZXIiLCJwcmVwYXJlVG9Vc2VIb29rc0ZvclJlcXVlc3QiLCJyZXNldEhvb2tzRm9yUmVxdWVzdCIsInByZXBhcmVUb1VzZUhvb2tzRm9yQ29tcG9uZW50IiwicHJldlRoZW5hYmxlU3RhdGUiLCJnZXRUaGVuYWJsZVN0YXRlQWZ0ZXJTdXNwZW5kaW5nIiwic3RhdGUiLCJyZWFkQ29udGV4dCIsIkhvb2tzRGlzcGF0Y2hlciIsInVzZU1lbW8iLCJuZXh0Q3JlYXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VEZWJ1Z1ZhbHVlIiwidXNlRGVmZXJyZWRWYWx1ZSIsInVuc3VwcG9ydGVkSG9vayIsInVzZVRyYW5zaXRpb24iLCJ1c2VDb250ZXh0IiwidXNlUmVkdWNlciIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlSW5zZXJ0aW9uRWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlU3luY0V4dGVybmFsU3RvcmUiLCJ1c2VDYWNoZVJlZnJlc2giLCJ1bnN1cHBvcnRlZFJlZnJlc2giLCJ1c2VNZW1vQ2FjaGUiLCJzaXplIiwiZGF0YSIsImkiLCJ1c2UiLCJpZGVudGlmaWVyQ291bnQiLCJpZGVudGlmaWVyUHJlZml4IiwidG9TdHJpbmciLCJ1c2FibGUiLCJjcmVhdGVTaWduYWwiLCJBYm9ydENvbnRyb2xsZXIiLCJzaWduYWwiLCJyZXNvbHZlQ2FjaGUiLCJnZXRDYWNoZSIsIk1hcCIsIkRlZmF1bHRDYWNoZURpc3BhdGNoZXIiLCJnZXRDYWNoZVNpZ25hbCIsImNhY2hlIiwiZW50cnkiLCJnZXRDYWNoZUZvclR5cGUiLCJyZXNvdXJjZVR5cGUiLCJpc0FycmF5SW1wbCIsImlzQXJyYXkiLCJhIiwianN4UHJvcHNQYXJlbnRzIiwiV2Vha01hcCIsImpzeENoaWxkcmVuUGFyZW50cyIsImlzT2JqZWN0UHJvdG90eXBlIiwib2JqZWN0IiwiT2JqZWN0UHJvdG90eXBlIiwibmFtZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiaXNTaW1wbGVPYmplY3QiLCJvYmplY3ROYW1lIiwicmVwbGFjZSIsIm0iLCJwMCIsImRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlIiwiZW5jb2RlZEtleSIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlIiwiZGVzY3JpYmVFbGVtZW50VHlwZSIsInR5cGUiLCJyZW5kZXIiLCJsYXp5Q29tcG9uZW50IiwicGF5bG9hZCIsIl9wYXlsb2FkIiwiaW5pdCIsIl9pbml0IiwieCIsImRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlIiwib2JqZWN0T3JBcnJheSIsImV4cGFuZGVkTmFtZSIsIm9iaktpbmQiLCJzdHIiLCJzdGFydCIsImFycmF5Iiwic3Vic3RyIiwiX2FycmF5IiwiX2kiLCJfdmFsdWUiLCJfc3Vic3RyIiwiX3R5cGUiLCJrZXlzIiwiX2kyIiwiX3ZhbHVlMiIsIl9zdWJzdHIyIiwiX29iamVjdCIsIl9uYW1lcyIsIl9pMyIsIl9uYW1lIiwiX3ZhbHVlMyIsIl9zdWJzdHIzIiwiaGlnaGxpZ2h0IiwicmVwZWF0IiwiUmVhY3RTaGFyZWRTZXJ2ZXJJbnRlcm5hbHMiLCJfX1NFQ1JFVF9TRVJWRVJfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJQRU5ESU5HJDEiLCJDT01QTEVURUQiLCJBQk9SVEVEIiwiRVJST1JFRCQxIiwiUmVhY3RDdXJyZW50Q2FjaGUiLCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyIiwiZGVmYXVsdEVycm9ySGFuZGxlciIsImRlZmF1bHRQb3N0cG9uZUhhbmRsZXIiLCJPUEVOIiwiQ0xPU0lORyIsIkNMT1NFRCIsImNyZWF0ZVJlcXVlc3QiLCJtb2RlbCIsImJ1bmRsZXJDb25maWciLCJvbkVycm9yIiwib25Qb3N0cG9uZSIsImFib3J0U2V0IiwicGluZ2VkVGFza3MiLCJjbGVhbnVwUXVldWUiLCJmbHVzaFNjaGVkdWxlZCIsImZhdGFsRXJyb3IiLCJuZXh0Q2h1bmtJZCIsInBlbmRpbmdDaHVua3MiLCJhYm9ydGFibGVUYXNrcyIsImNvbXBsZXRlZEltcG9ydENodW5rcyIsImNvbXBsZXRlZEhpbnRDaHVua3MiLCJjb21wbGV0ZWRSZWd1bGFyQ2h1bmtzIiwiY29tcGxldGVkRXJyb3JDaHVua3MiLCJ3cml0dGVuU3ltYm9scyIsIndyaXR0ZW5DbGllbnRSZWZlcmVuY2VzIiwid3JpdHRlblNlcnZlclJlZmVyZW5jZXMiLCJ3cml0dGVuUHJvdmlkZXJzIiwid3JpdHRlbk9iamVjdHMiLCJ0YWludENsZWFudXBRdWV1ZSIsInRvSlNPTiIsInJlc29sdmVNb2RlbFRvSlNPTiIsInJvb3RDb250ZXh0IiwiY3JlYXRlUm9vdENvbnRleHQiLCJyb290VGFzayIsImNyZWF0ZVRhc2siLCJjdXJyZW50UmVxdWVzdCIsInN0b3JlIiwiZ2V0U3RvcmUiLCJyZXFDb250ZXh0IiwiaW1wb3J0U2VydmVyQ29udGV4dHMiLCJzZXJpYWxpemVUaGVuYWJsZSIsIm5ld1Rhc2siLCJwaW5nVGFzayIsImRpZ2VzdCIsImxvZ1JlY292ZXJhYmxlRXJyb3IiLCJlbWl0RXJyb3JDaHVuayIsIl9kaWdlc3QiLCJkZWxldGUiLCJmbHVzaENvbXBsZXRlZENodW5rcyIsImNvZGUiLCJlbWl0SGludENodW5rIiwiZW5xdWV1ZUZsdXNoIiwicmVhZFRoZW5hYmxlIiwiY3JlYXRlTGF6eVdyYXBwZXJBcm91bmRXYWtlYWJsZSIsIndha2VhYmxlIiwibGF6eVR5cGUiLCJhdHRlbXB0UmVzb2x2ZUVsZW1lbnQiLCJyZWYiLCJwcm9wcyIsImNoaWxkcmVuIiwicmVzdWx0Iiwid3JhcHBlZFR5cGUiLCJ0YXNrIiwicGVyZm9ybVdvcmsiLCJwaW5nIiwic2VyaWFsaXplQnlWYWx1ZUlEIiwic2VyaWFsaXplTGF6eUlEIiwic2VyaWFsaXplUHJvbWlzZUlEIiwic2VyaWFsaXplU2VydmVyUmVmZXJlbmNlSUQiLCJzZXJpYWxpemVTeW1ib2xSZWZlcmVuY2UiLCJzZXJpYWxpemVOdW1iZXIiLCJudW1iZXIiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIkluZmluaXR5Iiwic2VyaWFsaXplVW5kZWZpbmVkIiwic2VyaWFsaXplRGF0ZUZyb21EYXRlSlNPTiIsImRhdGVKU09OIiwic2VyaWFsaXplQmlnSW50IiwibiIsInNlcmlhbGl6ZVJvd0hlYWRlciIsInRhZyIsImVuY29kZVJlZmVyZW5jZUNodW5rIiwianNvbiIsInJvdyIsInNlcmlhbGl6ZUNsaWVudFJlZmVyZW5jZSIsImNsaWVudFJlZmVyZW5jZUtleSIsImV4aXN0aW5nSWQiLCJjbGllbnRSZWZlcmVuY2VNZXRhZGF0YSIsImltcG9ydElkIiwiZW1pdEltcG9ydENodW5rIiwiZXJyb3JJZCIsIm91dGxpbmVNb2RlbCIsInJldHJ5VGFzayIsInNlcmlhbGl6ZVNlcnZlclJlZmVyZW5jZSIsImJvdW5kIiwic2VydmVyUmVmZXJlbmNlTWV0YWRhdGEiLCJtZXRhZGF0YUlkIiwic2VyaWFsaXplTGFyZ2VUZXh0U3RyaW5nIiwidGV4dCIsInRleHRJZCIsInRleHRDaHVuayIsImJpbmFyeUxlbmd0aCIsImhlYWRlckNodW5rIiwic2VyaWFsaXplTWFwIiwiZW50cmllcyIsImZyb20iLCJzZXJpYWxpemVTZXQiLCJlc2NhcGVTdHJpbmdWYWx1ZSIsIm1vZGVsUm9vdCIsIm9yaWdpbmFsVmFsdWUiLCJEYXRlIiwianN4UGFyZW50VHlwZSIsIm5ld0lkIiwiZWxlbWVudCIsInRocm93blZhbHVlIiwiX3dyaXR0ZW5PYmplY3RzIiwiX2V4aXN0aW5nSWQiLCJwcm9taXNlSWQiLCJfbmV3SWQiLCJpdGVyYXRvckZuIiwicHJvdG8iLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZGVzY3JpcHRpb24iLCJfb3JpZ2luYWxWYWx1ZSIsInRlc3QiLCJfZXhpc3RpbmdJZDIiLCJzeW1ib2xJZCIsImVtaXRTeW1ib2xDaHVuayIsImxvZ1Bvc3Rwb25lIiwiZXJyb3JEaWdlc3QiLCJlbWl0UG9zdHBvbmVDaHVuayIsInBvc3Rwb25lSW5zdGFuY2UiLCJtZXNzYWdlIiwicHJvY2Vzc2VkQ2h1bmsiLCJlcnJvckluZm8iLCJzeW1ib2xSZWZlcmVuY2UiLCJlbWl0TW9kZWxDaHVuayIsIm5leHRFbGVtZW50IiwicHJldkRpc3BhdGNoZXIiLCJwcmV2UmVxdWVzdCIsImFib3J0VGFzayIsImltcG9ydHNDaHVua3MiLCJrZWVwV3JpdGluZyIsInNwbGljZSIsImhpbnRDaHVua3MiLCJfY2h1bmsiLCJfa2VlcFdyaXRpbmciLCJyZWd1bGFyQ2h1bmtzIiwiX2NodW5rMiIsIl9rZWVwV3JpdGluZzIiLCJlcnJvckNodW5rcyIsIl9jaHVuazMiLCJfa2VlcFdyaXRpbmczIiwic3RhcnRXb3JrIiwicnVuIiwic3RhcnRGbG93aW5nIiwic3RvcEZsb3dpbmciLCJhYm9ydCIsImZvckVhY2giLCJjbGVhciIsImNvbnRleHRzIiwiSUQiLCJDSFVOS1MiLCJOQU1FIiwiaXNBc3luY0ltcG9ydCIsIm1ldGFkYXRhIiwicmVzb2x2ZVNlcnZlclJlZmVyZW5jZSIsImNodW5rQ2FjaGUiLCJyZXF1aXJlQXN5bmNNb2R1bGUiLCJwcm9taXNlIiwiZ2xvYmFsVGhpcyIsIl9fbmV4dF9yZXF1aXJlX18iLCJpZ25vcmVSZWplY3QiLCJwcm9taXNlcyIsImNodW5rSWQiLCJsb2FkQ2h1bmsiLCJhbGwiLCJyZXF1aXJlTW9kdWxlIiwibW9kdWxlRXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJmaWxlbmFtZSIsIl9fd2VicGFja19jaHVua19sb2FkX18iLCJQRU5ESU5HIiwiQkxPQ0tFRCIsIlJFU09MVkVEX01PREVMIiwiSU5JVElBTElaRUQiLCJFUlJPUkVEIiwiQ2h1bmsiLCJyZXNwb25zZSIsIl9yZXNwb25zZSIsImNyZWF0ZSIsImluaXRpYWxpemVNb2RlbENodW5rIiwiZ2V0Um9vdCIsImdldENodW5rIiwiY3JlYXRlUGVuZGluZ0NodW5rIiwid2FrZUNodW5rIiwibGlzdGVuZXJzIiwibGlzdGVuZXIiLCJ0cmlnZ2VyRXJyb3JPbkNodW5rIiwiZXJyb3JlZENodW5rIiwiY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rIiwiYmluZEFyZ3MkMSIsImZuIiwibG9hZFNlcnZlclJlZmVyZW5jZSQxIiwicGFyZW50Q2h1bmsiLCJwYXJlbnRPYmplY3QiLCJfYnVuZGxlckNvbmZpZyIsInByZWxvYWRQcm9taXNlIiwiX3JlZiIsImNyZWF0ZU1vZGVsUmVzb2x2ZXIiLCJjcmVhdGVNb2RlbFJlamVjdCIsImluaXRpYWxpemluZ0NodW5rIiwiaW5pdGlhbGl6aW5nQ2h1bmtCbG9ja2VkTW9kZWwiLCJwcmV2Q2h1bmsiLCJwcmV2QmxvY2tlZCIsInBhcnNlIiwiX2Zyb21KU09OIiwiZGVwcyIsImJsb2NrZWRDaHVuayIsImluaXRpYWxpemVkQ2h1bmsiLCJyZXBvcnRHbG9iYWxFcnJvciIsIl9jaHVua3MiLCJwcmVmaXgiLCJfcHJlZml4IiwiYmFja2luZ0VudHJ5IiwiX2Zvcm1EYXRhIiwiYmxvY2tlZCIsInJlc29sdmVMaXN0ZW5lcnMiLCJnZXRPdXRsaW5lZE1vZGVsIiwicGFyc2VNb2RlbFN0cmluZyIsInBhcnNlSW50IiwiX2lkIiwibWV0YURhdGEiLCJfaWQyIiwiX2lkMyIsIl9kYXRhIiwic3RyaW5nSWQiLCJmb3JtUHJlZml4IiwiX2RhdGEyIiwiRm9ybURhdGEiLCJiYWNraW5nRm9ybURhdGEiLCJlbnRyeUtleSIsInN0YXJ0c1dpdGgiLCJhcHBlbmQiLCJOYU4iLCJCaWdJbnQiLCJfaWQ0IiwiY3JlYXRlUmVzcG9uc2UiLCJmb3JtRmllbGRQcmVmaXgiLCJiaW5kQXJncyIsImxvYWRTZXJ2ZXJSZWZlcmVuY2UiLCJkZWNvZGVCb3VuZEFjdGlvbk1ldGFEYXRhIiwiYm9keSIsInNlcnZlck1hbmlmZXN0IiwiYWN0aW9uUmVzcG9uc2UiLCJyZWZQcm9taXNlIiwiZGVjb2RlQWN0aW9uIiwiZm9ybURhdGEiLCJhY3Rpb24iLCJkZWNvZGVGb3JtU3RhdGUiLCJhY3Rpb25SZXN1bHQiLCJrZXlQYXRoIiwicmVmZXJlbmNlSWQiLCJib3VuZEFyaXR5IiwicmVuZGVyVG9SZWFkYWJsZVN0cmVhbSIsIndlYnBhY2tNYXAiLCJhYm9ydGVkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJzdHJlYW0iLCJSZWFkYWJsZVN0cmVhbSIsImNvbnRyb2xsZXIiLCJwdWxsIiwiY2FuY2VsIiwiaGlnaFdhdGVyTWFyayIsImRlY29kZVJlcGx5IiwiZm9ybSIsInJvb3QiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react-server-dom-webpack/server.edge.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react-server-dom-webpack/server.edge.js ***!
- \*************************************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-server-dom-webpack-server.edge.development.js */ \"(rsc)/../../node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyLmVkZ2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxJQUFJQSxLQUF5QixFQUFjLEVBRTFDLE1BQU07SUFDTEMscU9BQXlCO0FBQzNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXIuZWRnZS5qcz8yOGU4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLmVkZ2UucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXNlcnZlci5lZGdlLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOlsicHJvY2VzcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXF1aXJlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react-server-dom-webpack/server.edge.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js":
-/*!********************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***!
- \********************************************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(rsc)/../../node_modules/next/dist/compiled/react/index.js\");\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\n var REACT_CACHE_TYPE = Symbol.for(\"react.cache\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n // -----------------------------------------------------------------------------\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n var enableCacheElement = false;\n var enableTransitionTracing = false; // No known bugs, but needs performance testing\n var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n // stuff. Intended to enable React core members to more easily debug scheduling\n // issues in DEV builds.\n var enableDebugTracing = false;\n var REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\");\n function isValidElementType(type) {\n if (typeof type === \"string\" || typeof type === \"function\") {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n return true;\n }\n if (typeof type === \"object\" && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE$2 || type.getModuleId !== undefined) {\n return true;\n }\n }\n return false;\n }\n function getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n if (displayName) {\n return displayName;\n }\n var functionName = innerType.displayName || innerType.name || \"\";\n return functionName !== \"\" ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n } // Keep in sync with react-reconciler/getComponentNameFromFiber\n function getContextName(type) {\n return type.displayName || \"Context\";\n }\n var REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\"); // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n function getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n if (typeof type === \"function\") {\n if (type.$$typeof === REACT_CLIENT_REFERENCE$1) {\n // TODO: Create a convention for naming client references with debug info.\n return null;\n }\n return type.displayName || type.name || null;\n }\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_CACHE_TYPE:\n {\n return \"Cache\";\n }\n }\n if (typeof type === \"object\") {\n {\n if (typeof type.tag === \"number\") {\n error(\"Received an unexpected object in getComponentNameFromType(). \" + \"This is likely a bug in React. Please file an issue.\");\n }\n }\n switch(type.$$typeof){\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, \"ForwardRef\");\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n if (outerName !== null) {\n return outerName;\n }\n return getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n return null;\n }\n var assign = Object.assign;\n // Helpers to patch console.logs to avoid logging during side-effect free\n // replaying on render function. This currently only patches the object\n // lazily which won't cover if the log function was extracted eagerly.\n // We could also eagerly patch the method.\n var disabledDepth = 0;\n var prevLog;\n var prevInfo;\n var prevWarn;\n var prevError;\n var prevGroup;\n var prevGroupCollapsed;\n var prevGroupEnd;\n function disabledLog() {}\n disabledLog.__reactDisabledLog = true;\n function disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */ }\n disabledDepth++;\n }\n }\n function reenableLogs() {\n {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */ }\n if (disabledDepth < 0) {\n error(\"disabledDepth fell below zero. \" + \"This is a bug in React. Please file an issue.\");\n }\n }\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n var prefix;\n function describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || \"\";\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n return \"\\n\" + prefix + name;\n }\n }\n var reentry = false;\n var componentFrameCache;\n {\n var PossiblyWeakMap = typeof WeakMap === \"function\" ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n }\n /**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */ function describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return \"\";\n }\n {\n var frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */ var RunInRootFrame = {\n DetermineComponentFrameRoot: function() {\n var control;\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function() {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function() {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n if (typeof Reflect === \"object\" && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n if (maybePromise && typeof maybePromise.catch === \"function\") {\n maybePromise.catch(function() {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === \"string\") {\n return [\n sample.stack,\n control.stack\n ];\n }\n }\n return [\n null,\n null\n ];\n }\n }; // $FlowFixMe[prop-missing]\n RunInRootFrame.DetermineComponentFrameRoot.displayName = \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, \"name\"); // Before ES6, the `name` property was not configurable.\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // is set to `false`.\n // $FlowFixMe[cannot-write]\n \"name\", {\n value: \"DetermineComponentFrameRoot\"\n });\n }\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split(\"\\n\");\n var controlLines = controlStack.split(\"\\n\");\n var s = 0;\n var c = 0;\n while(s < sampleLines.length && !sampleLines[s].includes(\"DetermineComponentFrameRoot\")){\n s++;\n }\n while(c < controlLines.length && !controlLines[c].includes(\"DetermineComponentFrameRoot\")){\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n while(s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]){\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n for(; s >= 1 && c >= 0; s--, c--){\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = \"\\n\" + sampleLines[s].replace(\" at new \", \" at \"); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n if (fn.displayName && _frame.includes(\"<anonymous>\")) {\n _frame = _frame.replace(\"<anonymous>\", fn.displayName);\n }\n if (true) {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n return _frame;\n }\n }while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally{\n reentry = false;\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n var name = fn ? fn.displayName || fn.name : \"\";\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : \"\";\n {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n }\n function describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n }\n function shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n }\n function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n if (type == null) {\n return \"\";\n }\n if (typeof type === \"function\") {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n if (typeof type === \"string\") {\n return describeBuiltInComponentFrame(type);\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n // $FlowFixMe[method-unbinding]\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var loggedTypeFailures = {};\n var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n function setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n }\n function checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n for(var typeSpecName in typeSpecs){\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== \"function\") {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; \" + \"it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\" + \"This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");\n err.name = \"Invariant Violation\";\n throw err;\n }\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\");\n } catch (ex) {\n error$1 = ex;\n }\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement$1(element);\n error(\"%s: type specification of %s\" + \" `%s` is invalid; the type checker \" + \"function must return `null` or an `Error` but returned a %s. \" + \"You may have forgotten to pass an argument to the type checker \" + \"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and \" + \"shape all require an argument).\", componentName || \"React class\", location, typeSpecName, typeof error$1);\n setCurrentlyValidatingElement$1(null);\n }\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement$1(element);\n error(\"Failed %s type: %s\", location, error$1.message);\n setCurrentlyValidatingElement$1(null);\n }\n }\n }\n }\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n /*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */ // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === \"function\" && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || \"Object\"; // $FlowFixMe[incompatible-return]\n return type;\n }\n } // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n }\n function testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided key is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\n var RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n };\n var specialPropKeyWarningShown;\n var specialPropRefWarningShown;\n var didWarnAboutStringRefs;\n {\n didWarnAboutStringRefs = {};\n }\n function hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, \"ref\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"ref\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n }\n function hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n }\n function warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === \"string\" && ReactCurrentOwner$1.current && self && ReactCurrentOwner$1.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + \"Support for string refs will be removed in a future major release. \" + \"This case cannot be automatically converted to an arrow function. \" + \"We ask you to manually fix this case by using useRef() or createRef() instead. \" + \"Learn more about using refs safely here: \" + \"https://reactjs.org/link/strict-mode-string-ref\", getComponentNameFromType(ReactCurrentOwner$1.current.type), config.ref);\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n }\n function defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function() {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n error(\"%s: `key` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n }\n function defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function() {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n error(\"%s: `ref` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, \"ref\", {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n }\n /**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */ function ReactElement(type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n Object.defineProperty(element._store, \"validated\", {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n Object.defineProperty(element, \"_self\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, \"_source\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n return element;\n }\n /**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */ function jsxDEV$1(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n key = \"\" + maybeKey;\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n }\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for(propName in defaultProps){\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (key || ref) {\n var displayName = typeof type === \"function\" ? type.displayName || type.name || \"Unknown\" : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner$1.current, props);\n }\n }\n var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n function setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n }\n var propTypesMisspellWarningShown;\n {\n propTypesMisspellWarningShown = false;\n }\n /**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */ function isValidElement(object) {\n {\n return typeof object === \"object\" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n }\n function getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (name) {\n return \"\\n\\nCheck the render method of `\" + name + \"`.\";\n }\n }\n return \"\";\n }\n }\n function getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, \"\");\n var lineNumber = source.lineNumber;\n return \"\\n\\nCheck your code at \" + fileName + \":\" + lineNumber + \".\";\n }\n return \"\";\n }\n }\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */ var ownerHasKeyUseWarning = {};\n function getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n if (!info) {\n var parentName = getComponentNameFromType(parentType);\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n return info;\n }\n }\n /**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */ function validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = \"\";\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n setCurrentlyValidatingElement(element);\n error('Each child in a list should have a unique \"key\" prop.' + \"%s%s See https://reactjs.org/link/warning-keys for more information.\", currentComponentErrorInfo, childOwner);\n setCurrentlyValidatingElement(null);\n }\n }\n /**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */ function validateChildKeys(node, parentType) {\n {\n if (typeof node !== \"object\" || !node) {\n return;\n }\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ;\n else if (isArray(node)) {\n for(var i = 0; i < node.length; i++){\n var child = node[i];\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else {\n var iteratorFn = getIteratorFn(node);\n if (typeof iteratorFn === \"function\") {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while(!(step = iterator.next()).done){\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n }\n /**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */ function validatePropTypes(element) {\n {\n var type = element.type;\n if (type === null || type === undefined || typeof type === \"string\") {\n return;\n }\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\n return;\n }\n var propTypes;\n if (typeof type === \"function\") {\n propTypes = type.propTypes;\n } else if (typeof type === \"object\" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, \"prop\", name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n var _name = getComponentNameFromType(type);\n error(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\", _name || \"Unknown\");\n }\n if (typeof type.getDefaultProps === \"function\" && !type.getDefaultProps.isReactClassApproved) {\n error(\"getDefaultProps is only used on classic React.createClass \" + \"definitions. Use a static property named `defaultProps` instead.\");\n }\n }\n }\n /**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */ function validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n for(var i = 0; i < keys.length; i++){\n var key = keys[i];\n if (key !== \"children\" && key !== \"key\") {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid prop `%s` supplied to `React.Fragment`. \" + \"React.Fragment can only have `key` and `children` props.\", key);\n setCurrentlyValidatingElement(null);\n break;\n }\n }\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid attribute `ref` supplied to `React.Fragment`.\");\n setCurrentlyValidatingElement(null);\n }\n }\n }\n var didWarnAboutKeySpread = {};\n function jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n var info = \"\";\n if (type === undefined || typeof type === \"object\" && type !== null && Object.keys(type).length === 0) {\n info += \" You likely forgot to export your component from the file \" + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n var sourceInfo = getSourceInfoErrorAddendum(source);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n var typeString;\n if (type === null) {\n typeString = \"null\";\n } else if (isArray(type)) {\n typeString = \"array\";\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || \"Unknown\") + \" />\";\n info = \" Did you accidentally export a JSX literal instead of a component?\";\n } else {\n typeString = typeof type;\n }\n error(\"React.jsx: type is invalid -- expected a string (for \" + \"built-in components) or a class/function (for composite \" + \"components) but got: %s.%s\", typeString, info);\n }\n var element = jsxDEV$1(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n var children = props.children;\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for(var i = 0; i < children.length; i++){\n validateChildKeys(children[i], type);\n }\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error(\"React.jsx: Static children should always be an array. \" + \"You are likely explicitly calling React.jsxs or React.jsxDEV. \" + \"Use the Babel transform instead.\");\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n if (hasOwnProperty.call(props, \"key\")) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function(k) {\n return k !== \"key\";\n });\n var beforeExample = keys.length > 0 ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\" : \"{key: someKey}\";\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\";\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + \" let props = %s;\\n\" + \" <%s {...props} />\\n\" + \"React keys must be passed directly to JSX without using spread:\\n\" + \" let props = %s;\\n\" + \" <%s key={someKey} {...props} />\", beforeExample, componentName, afterExample, componentName);\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n return element;\n }\n } // These two functions exist to still get child warnings in dev\n var jsxDEV = jsxWithValidation;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = jsxDEV;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztDQVFDLEdBRUQ7QUFFQSxJQUFJQSxJQUFxQyxFQUFFO0lBQ3hDO1FBQ0g7UUFFQSxJQUFJQyxRQUFRQyxtQkFBT0EsQ0FBQyw0RkFBMEI7UUFFOUMsWUFBWTtRQUNaLHdDQUF3QztRQUN4QyxrRkFBa0Y7UUFDbEYsc0RBQXNEO1FBQ3RELElBQUlDLHFCQUFxQkMsT0FBT0MsR0FBRyxDQUFDO1FBQ3BDLElBQUlDLG9CQUFvQkYsT0FBT0MsR0FBRyxDQUFDO1FBQ25DLElBQUlFLHNCQUFzQkgsT0FBT0MsR0FBRyxDQUFDO1FBQ3JDLElBQUlHLHlCQUF5QkosT0FBT0MsR0FBRyxDQUFDO1FBQ3hDLElBQUlJLHNCQUFzQkwsT0FBT0MsR0FBRyxDQUFDO1FBQ3JDLElBQUlLLHNCQUFzQk4sT0FBT0MsR0FBRyxDQUFDO1FBQ3JDLElBQUlNLHFCQUFxQlAsT0FBT0MsR0FBRyxDQUFDO1FBQ3BDLElBQUlPLHlCQUF5QlIsT0FBT0MsR0FBRyxDQUFDO1FBQ3hDLElBQUlRLHNCQUFzQlQsT0FBT0MsR0FBRyxDQUFDO1FBQ3JDLElBQUlTLDJCQUEyQlYsT0FBT0MsR0FBRyxDQUFDO1FBQzFDLElBQUlVLGtCQUFrQlgsT0FBT0MsR0FBRyxDQUFDO1FBQ2pDLElBQUlXLGtCQUFrQlosT0FBT0MsR0FBRyxDQUFDO1FBQ2pDLElBQUlZLHVCQUF1QmIsT0FBT0MsR0FBRyxDQUFDO1FBQ3RDLElBQUlhLG1CQUFtQmQsT0FBT0MsR0FBRyxDQUFDO1FBQ2xDLElBQUljLHdCQUF3QmYsT0FBT2dCLFFBQVE7UUFDM0MsSUFBSUMsdUJBQXVCO1FBQzNCLFNBQVNDLGNBQWNDLGFBQWE7WUFDbEMsSUFBSUEsa0JBQWtCLFFBQVEsT0FBT0Esa0JBQWtCLFVBQVU7Z0JBQy9ELE9BQU87WUFD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O29CQUNyQyxJQUFJdUUsZ0JBQWdCdkcseUJBQXlCYjtvQkFDN0MsSUFBSXNNLE9BQU8zSyxPQUFPMkssSUFBSSxDQUFDekosT0FBT2lLLE1BQU0sQ0FBQyxTQUFVQyxDQUFDO3dCQUM5QyxPQUFPQSxNQUFNO29CQUNmO29CQUNBLElBQUlDLGdCQUFnQlYsS0FBS2pPLE1BQU0sR0FBRyxJQUFJLG9CQUFvQmlPLEtBQUtXLElBQUksQ0FBQyxhQUFhLFdBQVc7b0JBRTVGLElBQUksQ0FBQ1YscUJBQXFCLENBQUNuRixnQkFBZ0I0RixjQUFjLEVBQUU7d0JBQ3pELElBQUlFLGVBQWVaLEtBQUtqTyxNQUFNLEdBQUcsSUFBSSxNQUFNaU8sS0FBS1csSUFBSSxDQUFDLGFBQWEsV0FBVzt3QkFFN0VoUCxNQUFNLHVFQUF1RSx3QkFBd0IsMEJBQTBCLHNFQUFzRSx3QkFBd0IscUNBQXFDK08sZUFBZTVGLGVBQWU4RixjQUFjOUY7d0JBRTlTbUYscUJBQXFCLENBQUNuRixnQkFBZ0I0RixjQUFjLEdBQUc7b0JBQ3pEO2dCQUNGO2dCQUVBLElBQUloTixTQUFTbkQscUJBQXFCO29CQUNoQ3VQLHNCQUFzQnpGO2dCQUN4QixPQUFPO29CQUNMbUYsa0JBQWtCbkY7Z0JBQ3BCO2dCQUVBLE9BQU9BO1lBQ1Q7UUFDRixFQUFFLCtEQUErRDtRQUVqRSxJQUFJd0csU0FBU1g7UUFFYlksZ0JBQWdCLEdBQUd2UTtRQUNuQnVRLGNBQWMsR0FBR0Q7SUFDZjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanM/NGM5YSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3RcIik7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpO1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJyk7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGF6eScpO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG52YXIgUkVBQ1RfQ0FDSEVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNhY2hlJyk7XG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gU3ltYm9sLml0ZXJhdG9yO1xudmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InO1xuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1heWJlSXRlcmF0b3IgPSBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdO1xuXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBtYXliZUl0ZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmcobGV2ZWwsIGZvcm1hdCwgYXJncykge1xuICAvLyBXaGVuIGNoYW5naW5nIHRoaXMgbG9naWMsIHlvdSBtaWdodCB3YW50IHRvIGFsc29cbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXG4gIHtcbiAgICB2YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICBpZiAoc3RhY2sgIT09ICcnKSB7XG4gICAgICBmb3JtYXQgKz0gJyVzJztcbiAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdChbc3RhY2tdKTtcbiAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgICB2YXIgYXJnc1dpdGhGb3JtYXQgPSBhcmdzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcblxuICAgIGFyZ3NXaXRoRm9ybWF0LnVuc2hpZnQoJ1dhcm5pbmc6ICcgKyBmb3JtYXQpOyAvLyBXZSBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBzcHJlYWQgKG9yIC5hcHBseSkgZGlyZWN0bHkgYmVjYXVzZSBpdFxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG5cbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnZhciBlbmFibGVTY29wZUFQSSA9IGZhbHNlOyAvLyBFeHBlcmltZW50YWwgQ3JlYXRlIEV2ZW50IEhhbmRsZSBBUEkuXG52YXIgZW5hYmxlQ2FjaGVFbGVtZW50ID0gZmFsc2U7XG52YXIgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgPSBmYWxzZTsgLy8gTm8ga25vd24gYnVncywgYnV0IG5lZWRzIHBlcmZvcm1hbmNlIHRlc3RpbmdcblxudmFyIGVuYWJsZUxlZ2FjeUhpZGRlbiA9IGZhbHNlOyAvLyBFbmFibGVzIHVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrIGZlYXR1cmUgaW4gRmliZXJcbi8vIHN0dWZmLiBJbnRlbmRlZCB0byBlbmFibGUgUmVhY3QgY29yZSBtZW1iZXJzIHRvIG1vcmUgZWFzaWx5IGRlYnVnIHNjaGVkdWxpbmdcbi8vIGlzc3VlcyBpbiBERVYgYnVpbGRzLlxuXG52YXIgZW5hYmxlRGVidWdUcmFjaW5nID0gZmFsc2U7XG5cbnZhciBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7XG5mdW5jdGlvbiBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gLy8gTm90ZTogdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgKGUuZy4gaWYgaXQncyBhIHBvbHlmaWxsKS5cblxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgZW5hYmxlRGVidWdUcmFjaW5nICB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IGVuYWJsZUxlZ2FjeUhpZGRlbiAgfHwgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgIHx8IGVuYWJsZUNhY2hlRWxlbWVudCAgfHwgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIFRoaXMgbmVlZHMgdG8gaW5jbHVkZSBhbGwgcG9zc2libGUgbW9kdWxlIHJlZmVyZW5jZSBvYmplY3RcbiAgICAvLyB0eXBlcyBzdXBwb3J0ZWQgYnkgYW55IEZsaWdodCBjb25maWd1cmF0aW9uIGFueXdoZXJlIHNpbmNlXG4gICAgLy8gd2UgZG9uJ3Qga25vdyB3aGljaCBGbGlnaHQgYnVpbGQgdGhpcyB3aWxsIGVuZCB1cCBiZWluZyB1c2VkXG4gICAgLy8gd2l0aC5cbiAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIgfHwgdHlwZS5nZXRNb2R1bGVJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldFdyYXBwZWROYW1lKG91dGVyVHlwZSwgaW5uZXJUeXBlLCB3cmFwcGVyTmFtZSkge1xuICB2YXIgZGlzcGxheU5hbWUgPSBvdXRlclR5cGUuZGlzcGxheU5hbWU7XG5cbiAgaWYgKGRpc3BsYXlOYW1lKSB7XG4gICAgcmV0dXJuIGRpc3BsYXlOYW1lO1xuICB9XG5cbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIGZ1bmN0aW9uTmFtZSAhPT0gJycgPyB3cmFwcGVyTmFtZSArIFwiKFwiICsgZnVuY3Rpb25OYW1lICsgXCIpXCIgOiB3cmFwcGVyTmFtZTtcbn0gLy8gS2VlcCBpbiBzeW5jIHdpdGggcmVhY3QtcmVjb25jaWxlci9nZXRDb21wb25lbnROYW1lRnJvbUZpYmVyXG5cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbnZhciBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDEgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7IC8vIE5vdGUgdGhhdCB0aGUgcmVjb25jaWxlciBwYWNrYWdlIHNob3VsZCBnZW5lcmFsbHkgcHJlZmVyIHRvIHVzZSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKCkgaW5zdGVhZC5cblxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIC8vIEhvc3Qgcm9vdCwgdGV4dCBub2RlIG9yIGp1c3QgaW52YWxpZCB0eXBlLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSkge1xuICAgICAgLy8gVE9ETzogQ3JlYXRlIGEgY29udmVudGlvbiBmb3IgbmFtaW5nIGNsaWVudCByZWZlcmVuY2VzIHdpdGggZGVidWcgaW5mby5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XG5cbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xuXG4gICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N0cmljdE1vZGUnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2VMaXN0JztcblxuICAgIGNhc2UgUkVBQ1RfQ0FDSEVfVFlQRTpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuICdDYWNoZSc7XG4gICAgICB9XG5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICB7XG4gICAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgICBlcnJvcignUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHZhciBvdXRlck5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGw7XG5cbiAgICAgICAgaWYgKG91dGVyTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBvdXRlck5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgJ01lbW8nO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoaW5pdChwYXlsb2FkKSk7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcbi8vIHJlcGxheWluZyBvbiByZW5kZXIgZnVuY3Rpb24uIFRoaXMgY3VycmVudGx5IG9ubHkgcGF0Y2hlcyB0aGUgb2JqZWN0XG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cbnZhciBkaXNhYmxlZERlcHRoID0gMDtcbnZhciBwcmV2TG9nO1xudmFyIHByZXZJbmZvO1xudmFyIHByZXZXYXJuO1xudmFyIHByZXZFcnJvcjtcbnZhciBwcmV2R3JvdXA7XG52YXIgcHJldkdyb3VwQ29sbGFwc2VkO1xudmFyIHByZXZHcm91cEVuZDtcblxuZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xuZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxuXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBsb2c6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkxvZ1xuICAgICAgICB9KSxcbiAgICAgICAgaW5mbzogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2V2FyblxuICAgICAgICB9KSxcbiAgICAgICAgZXJyb3I6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkVycm9yXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cENvbGxhcHNlZFxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXBFbmQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwRW5kXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPCAwKSB7XG4gICAgICBlcnJvcignZGlzYWJsZWREZXB0aCBmZWxsIGJlbG93IHplcm8uICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjtcbnZhciBwcmVmaXg7XG5mdW5jdGlvbiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRXh0cmFjdCB0aGUgVk0gc3BlY2lmaWMgcHJlZml4IHVzZWQgYnkgZWFjaCBsaW5lLlxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgdmFyIG1hdGNoID0geC5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtcbiAgICAgICAgcHJlZml4ID0gbWF0Y2ggJiYgbWF0Y2hbMV0gfHwgJyc7XG4gICAgICB9XG4gICAgfSAvLyBXZSB1c2UgdGhlIHByZWZpeCB0byBlbnN1cmUgb3VyIHN0YWNrcyBsaW5lIHVwIHdpdGggbmF0aXZlIHN0YWNrIGZyYW1lcy5cblxuXG4gICAgcmV0dXJuICdcXG4nICsgcHJlZml4ICsgbmFtZTtcbiAgfVxufVxudmFyIHJlZW50cnkgPSBmYWxzZTtcbnZhciBjb21wb25lbnRGcmFtZUNhY2hlO1xuXG57XG4gIHZhciBQb3NzaWJseVdlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IFdlYWtNYXAgOiBNYXA7XG4gIGNvbXBvbmVudEZyYW1lQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7XG59XG4vKipcbiAqIExldmVyYWdlcyBuYXRpdmUgYnJvd3Nlci9WTSBzdGFjayBmcmFtZXMgdG8gZ2V0IHByb3BlciBkZXRhaWxzIChlLmcuXG4gKiBmaWxlbmFtZSwgbGluZSArIGNvbCBudW1iZXIpIGZvciBhIHNpbmdsZSBjb21wb25lbnQgaW4gYSBjb21wb25lbnQgc3RhY2suIFdlXG4gKiBkbyB0aGlzIGJ5OlxuICogICAoMSkgdGhyb3dpbmcgYW5kIGNhdGNoaW5nIGFuIGVycm9yIGluIHRoZSBmdW5jdGlvbiAtIHRoaXMgd2lsbCBiZSBvdXJcbiAqICAgICAgIGNvbnRyb2wgZXJyb3IuXG4gKiAgICgyKSBjYWxsaW5nIHRoZSBjb21wb25lbnQgd2hpY2ggd2lsbCBldmVudHVhbGx5IHRocm93IGFuIGVycm9yIHRoYXQgd2UnbGxcbiAqICAgICAgIGNhdGNoIC0gdGhpcyB3aWxsIGJlIG91ciBzYW1wbGUgZXJyb3IuXG4gKiAgICgzKSBkaWZmaW5nIHRoZSBjb250cm9sIGFuZCBzYW1wbGUgZXJyb3Igc3RhY2tzIHRvIGZpbmQgdGhlIHN0YWNrIGZyYW1lXG4gKiAgICAgICB3aGljaCByZXByZXNlbnRzIG91ciBjb21wb25lbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHtcbiAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XG5cbiAgICBpZiAoZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH1cbiAgfVxuXG4gIHJlZW50cnkgPSB0cnVlO1xuICB2YXIgcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXSBJdCBkb2VzIGFjY2VwdCB1bmRlZmluZWQuXG5cbiAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB1bmRlZmluZWQ7XG4gIHZhciBwcmV2aW91c0Rpc3BhdGNoZXI7XG5cbiAge1xuICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudDsgLy8gU2V0IHRoZSBkaXNwYXRjaGVyIGluIERFViBiZWNhdXNlIHRoaXMgbWlnaHQgYmUgY2FsbCBpbiB0aGUgcmVuZGVyIGZ1bmN0aW9uXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxuXG4gICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gbnVsbDtcbiAgICBkaXNhYmxlTG9ncygpO1xuICB9XG4gIC8qKlxuICAgKiBGaW5kaW5nIGEgY29tbW9uIHN0YWNrIGZyYW1lIGJldHdlZW4gc2FtcGxlIGFuZCBjb250cm9sIGVycm9ycyBjYW4gYmVcbiAgICogdHJpY2t5IGdpdmVuIHRoZSBkaWZmZXJlbnQgdHlwZXMgYW5kIGxldmVscyBvZiBzdGFjayB0cmFjZSB0cnVuY2F0aW9uIGZyb21cbiAgICogZGlmZmVyZW50IEpTIFZNcy4gU28gaW5zdGVhZCB3ZSdsbCBhdHRlbXB0IHRvIGNvbnRyb2wgd2hhdCB0aGF0IGNvbW1vblxuICAgKiBmcmFtZSBzaG91bGQgYmUgdGhyb3VnaCB0aGlzIG9iamVjdCBtZXRob2Q6XG4gICAqIEhhdmluZyBib3RoIHRoZSBzYW1wbGUgYW5kIGNvbnRyb2wgZXJyb3JzIGJlIGluIHRoZSBmdW5jdGlvbiB1bmRlciB0aGVcbiAgICogYERlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWVSb290YCBwcm9wZXJ0eSwgKyBzZXR0aW5nIHRoZSBgbmFtZWAgYW5kXG4gICAqIGBkaXNwbGF5TmFtZWAgcHJvcGVydGllcyBvZiB0aGUgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IGEgc3RhY2tcbiAgICogZnJhbWUgZXhpc3RzIHRoYXQgaGFzIHRoZSBtZXRob2QgbmFtZSBgRGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZVJvb3RgIGluXG4gICAqIGl0IGZvciBib3RoIGNvbnRyb2wgYW5kIHNhbXBsZSBzdGFja3MuXG4gICAqL1xuXG5cbiAgdmFyIFJ1bkluUm9vdEZyYW1lID0ge1xuICAgIERldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDogZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGNvbnRyb2w7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxuICAgICAgICBpZiAoY29uc3RydWN0KSB7XG4gICAgICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgIH07IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuXG5cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAvLyBXZSB1c2UgYSB0aHJvd2luZyBzZXR0ZXIgaW5zdGVhZCBvZiBmcm96ZW4gb3Igbm9uLXdyaXRhYmxlIHByb3BzXG4gICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgICAgIC8vIFdlIGNvbnN0cnVjdCBhIGRpZmZlcmVudCBjb250cm9sIGZvciB0aGlzIGNhc2UgdG8gaW5jbHVkZSBhbnkgZXh0cmFcbiAgICAgICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChGYWtlLCBbXSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgICB9IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXSBmb3VuZCB3aGVuIHVwZ3JhZGluZyBGbG93XG5cblxuICAgICAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgIH0gLy8gVE9ETyhsdW5hKTogVGhpcyB3aWxsIGN1cnJlbnRseSBvbmx5IHRocm93IGlmIHRoZSBmdW5jdGlvbiBjb21wb25lbnRcbiAgICAgICAgICAvLyB0cmllcyB0byBhY2Nlc3MgUmVhY3QvUmVhY3RET00vcHJvcHMuIFdlIHNob3VsZCBwcm9iYWJseSBtYWtlIHRoaXMgdGhyb3dcbiAgICAgICAgICAvLyBpbiBzaW1wbGUgY29tcG9uZW50cyB0b29cblxuXG4gICAgICAgICAgdmFyIG1heWJlUHJvbWlzZSA9IGZuKCk7IC8vIElmIHRoZSBmdW5jdGlvbiBjb21wb25lbnQgcmV0dXJucyBhIHByb21pc2UsIGl0J3MgbGlrZWx5IGFuIGFzeW5jXG4gICAgICAgICAgLy8gY29tcG9uZW50LCB3aGljaCB3ZSBkb24ndCB5ZXQgc3VwcG9ydC4gQXR0YWNoIGEgbm9vcCBjYXRjaCBoYW5kbGVyIHRvXG4gICAgICAgICAgLy8gc2lsZW5jZSB0aGUgZXJyb3IuXG4gICAgICAgICAgLy8gVE9ETzogSW1wbGVtZW50IGNvbXBvbmVudCBzdGFja3MgZm9yIGFzeW5jIGNsaWVudCBjb21wb25lbnRzP1xuXG4gICAgICAgICAgaWYgKG1heWJlUHJvbWlzZSAmJiB0eXBlb2YgbWF5YmVQcm9taXNlLmNhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBtYXliZVByb21pc2UuY2F0Y2goZnVuY3Rpb24gKCkge30pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXG4gICAgICAgIGlmIChzYW1wbGUgJiYgY29udHJvbCAmJiB0eXBlb2Ygc2FtcGxlLnN0YWNrID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBbc2FtcGxlLnN0YWNrLCBjb250cm9sLnN0YWNrXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW251bGwsIG51bGxdO1xuICAgIH1cbiAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lID0gJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCc7XG4gIHZhciBuYW1lUHJvcERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCwgJ25hbWUnKTsgLy8gQmVmb3JlIEVTNiwgdGhlIGBuYW1lYCBwcm9wZXJ0eSB3YXMgbm90IGNvbmZpZ3VyYWJsZS5cblxuICBpZiAobmFtZVByb3BEZXNjcmlwdG9yICYmIG5hbWVQcm9wRGVzY3JpcHRvci5jb25maWd1cmFibGUpIHtcbiAgICAvLyBWOCB1dGlsaXplcyBhIGZ1bmN0aW9uJ3MgYG5hbWVgIHByb3BlcnR5IHdoZW4gZ2VuZXJhdGluZyBhIHN0YWNrIHRyYWNlLlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIC8vIENvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzIGNhbiBiZSB1cGRhdGVkIGV2ZW4gaWYgaXRzIHdyaXRhYmxlIGRlc2NyaXB0b3JcbiAgICAvLyBpcyBzZXQgdG8gYGZhbHNlYC5cbiAgICAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV1cbiAgICAnbmFtZScsIHtcbiAgICAgIHZhbHVlOiAnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290J1xuICAgIH0pO1xuICB9XG5cbiAgdHJ5IHtcbiAgICB2YXIgX1J1bkluUm9vdEZyYW1lJERldGVyID0gUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290KCksXG4gICAgICAgIHNhbXBsZVN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzBdLFxuICAgICAgICBjb250cm9sU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMV07XG5cbiAgICBpZiAoc2FtcGxlU3RhY2sgJiYgY29udHJvbFN0YWNrKSB7XG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGVTdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbFN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgIHZhciBzID0gMDtcbiAgICAgIHZhciBjID0gMDtcblxuICAgICAgd2hpbGUgKHMgPCBzYW1wbGVMaW5lcy5sZW5ndGggJiYgIXNhbXBsZUxpbmVzW3NdLmluY2x1ZGVzKCdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnKSkge1xuICAgICAgICBzKys7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChjIDwgY29udHJvbExpbmVzLmxlbmd0aCAmJiAhY29udHJvbExpbmVzW2NdLmluY2x1ZGVzKCdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnKSkge1xuICAgICAgICBjKys7XG4gICAgICB9IC8vIFdlIGNvdWxkbid0IGZpbmQgb3VyIGludGVudGlvbmFsbHkgaW5qZWN0ZWQgY29tbW9uIHJvb3QgZnJhbWUsIGF0dGVtcHRcbiAgICAgIC8vIHRvIGZpbmQgYW5vdGhlciBjb21tb24gcm9vdCBmcmFtZSBieSBzZWFyY2ggZnJvbSB0aGUgYm90dG9tIG9mIHRoZVxuICAgICAgLy8gY29udHJvbCBzdGFjay4uLlxuXG5cbiAgICAgIGlmIChzID09PSBzYW1wbGVMaW5lcy5sZW5ndGggfHwgYyA9PT0gY29udHJvbExpbmVzLmxlbmd0aCkge1xuICAgICAgICBzID0gc2FtcGxlTGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICAgIHdoaWxlIChzID49IDEgJiYgYyA+PSAwICYmIHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAvLyBXZSBleHBlY3QgYXQgbGVhc3Qgb25lIHN0YWNrIGZyYW1lIHRvIGJlIHNoYXJlZC5cbiAgICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgICAgLy8gY3V0IG9mZiBkdWUgdG8gbWF4aW11bSBzdGFjayBsaW1pdHMuIEluIHRoaXMgY2FzZSwgb25lIG1heWJlIGN1dCBvZmZcbiAgICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdGhlIG90aGVyLiBXZSBhc3N1bWUgdGhhdCB0aGUgc2FtcGxlIGlzIGxvbmdlciBvciB0aGUgc2FtZVxuICAgICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgICAgLy8gdGhlIHNhbXBsZSBzb21ld2hlcmUgaW4gdGhlIGNvbnRyb2wuXG4gICAgICAgICAgYy0tO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpOyAvLyBJZiBvdXIgY29tcG9uZW50IGZyYW1lIGlzIGxhYmVsZWQgXCI8YW5vbnltb3VzPlwiXG4gICAgICAgICAgICAgICAgLy8gYnV0IHdlIGhhdmUgYSB1c2VyLXByb3ZpZGVkIFwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgIC8vIHNwbGljZSBpdCBpbiB0byBtYWtlIHRoZSBzdGFjayBtb3JlIHJlYWRhYmxlLlxuXG5cbiAgICAgICAgICAgICAgICBpZiAoZm4uZGlzcGxheU5hbWUgJiYgX2ZyYW1lLmluY2x1ZGVzKCc8YW5vbnltb3VzPicpKSB7XG4gICAgICAgICAgICAgICAgICBfZnJhbWUgPSBfZnJhbWUucmVwbGFjZSgnPGFub255bW91cz4nLCBmbi5kaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRydWUpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXG5cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlZW50cnkgPSBmYWxzZTtcblxuICAgIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IHByZXZpb3VzRGlzcGF0Y2hlcjtcbiAgICAgIHJlZW5hYmxlTG9ncygpO1xuICAgIH1cblxuICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZTtcbiAgfSAvLyBGYWxsYmFjayB0byBqdXN0IHVzaW5nIHRoZSBuYW1lIGlmIHdlIGNvdWxkbid0IG1ha2UgaXQgdGhyb3cuXG5cblxuICB2YXIgbmFtZSA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6ICcnO1xuICB2YXIgc3ludGhldGljRnJhbWUgPSBuYW1lID8gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkgOiAnJztcblxuICB7XG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIHN5bnRoZXRpY0ZyYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3ludGhldGljRnJhbWU7XG59XG5mdW5jdGlvbiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUoZm4sIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUsIHNvdXJjZSwgb3duZXJGbikge1xuXG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZSh0eXBlLCBzaG91bGRDb25zdHJ1Y3QodHlwZSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUodHlwZSk7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlJyk7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2VMaXN0Jyk7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgLy8gTWVtbyBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLnR5cGUsIHNvdXJjZSwgb3duZXJGbik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gTGF6eSBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoaW5pdChwYXlsb2FkKSwgc291cmNlLCBvd25lckZuKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG4vLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yJDEgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCcpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yJDEgPSBleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IkMS5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvciQxLm1lc3NhZ2VdID0gdHJ1ZTtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYSkge1xuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XG59XG5cbi8qXG4gKiBUaGUgYCcnICsgdmFsdWVgIHBhdHRlcm4gKHVzZWQgaW4gcGVyZi1zZW5zaXRpdmUgY29kZSkgdGhyb3dzIGZvciBTeW1ib2xcbiAqIGFuZCBUZW1wb3JhbC4qIHR5cGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjIwNjQuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB3aWxsIHRocm93IGFuIGVhc2llci10by11bmRlcnN0YW5kLFxuICogZWFzaWVyLXRvLWRlYnVnIGV4Y2VwdGlvbiB3aXRoIGEgY2xlYXIgZXJyb3JzIG1lc3NhZ2UgbWVzc2FnZSBleHBsYWluaW5nIHRoZVxuICogcHJvYmxlbS4gKEluc3RlYWQgb2YgYSBjb25mdXNpbmcgZXhjZXB0aW9uIHRocm93biBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uXG4gKiBvZiB0aGUgYHZhbHVlYCBvYmplY3QpLlxuICovXG4vLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuZnVuY3Rpb24gdHlwZU5hbWUodmFsdWUpIHtcbiAge1xuICAgIC8vIHRvU3RyaW5nVGFnIGlzIG5lZWRlZCBmb3IgbmFtZXNwYWNlZCB0eXBlcyBsaWtlIFRlbXBvcmFsLkluc3RhbnRcbiAgICB2YXIgaGFzVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC50b1N0cmluZ1RhZztcbiAgICB2YXIgdHlwZSA9IGhhc1RvU3RyaW5nVGFnICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gfHwgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fCAnT2JqZWN0JzsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cblxuXG5mdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xuICB7XG4gICAgdHJ5IHtcbiAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAvLyBJZiB5b3UgZW5kZWQgdXAgaGVyZSBieSBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uIGNhbGwgc3RhY2ssIGhlcmUncyB3aGF0J3NcbiAgLy8gaGFwcGVuZWQ6IHlvdSBzdXBwbGllZCBhbiBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIFJlYWN0IChhcyBhIHByb3AsIGtleSxcbiAgLy8gRE9NIGF0dHJpYnV0ZSwgQ1NTIHByb3BlcnR5LCBzdHJpbmcgcmVmLCBldGMuKSBhbmQgd2hlbiBSZWFjdCB0cmllZCB0b1xuICAvLyBjb2VyY2UgaXQgdG8gYSBzdHJpbmcgdXNpbmcgYCcnICsgdmFsdWVgLCBhbiBleGNlcHRpb24gd2FzIHRocm93bi5cbiAgLy9cbiAgLy8gVGhlIG1vc3QgY29tbW9uIHR5cGVzIHRoYXQgd2lsbCBjYXVzZSB0aGlzIGV4Y2VwdGlvbiBhcmUgYFN5bWJvbGAgaW5zdGFuY2VzXG4gIC8vIGFuZCBUZW1wb3JhbCBvYmplY3RzIGxpa2UgYFRlbXBvcmFsLkluc3RhbnRgLiBCdXQgYW55IG9iamVjdCB0aGF0IGhhcyBhXG4gIC8vIGB2YWx1ZU9mYCBvciBgW1N5bWJvbC50b1ByaW1pdGl2ZV1gIG1ldGhvZCB0aGF0IHRocm93cyB3aWxsIGFsc28gY2F1c2UgdGhpc1xuICAvLyBleGNlcHRpb24uIChMaWJyYXJ5IGF1dGhvcnMgZG8gdGhpcyB0byBwcmV2ZW50IHVzZXJzIGZyb20gdXNpbmcgYnVpbHQtaW5cbiAgLy8gbnVtZXJpYyBvcGVyYXRvcnMgbGlrZSBgK2Agb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgbGlrZSBgPj1gIGJlY2F1c2UgY3VzdG9tXG4gIC8vIG1ldGhvZHMgYXJlIG5lZWRlZCB0byBwZXJmb3JtIGFjY3VyYXRlIGFyaXRobWV0aWMgb3IgY29tcGFyaXNvbi4pXG4gIC8vXG4gIC8vIFRvIGZpeCB0aGUgcHJvYmxlbSwgY29lcmNlIHRoaXMgb2JqZWN0IG9yIHN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyBiZWZvcmVcbiAgLy8gcGFzc2luZyBpdCB0byBSZWFjdC4gVGhlIG1vc3QgcmVsaWFibGUgd2F5IGlzIHVzdWFsbHkgYFN0cmluZyh2YWx1ZSlgLlxuICAvL1xuICAvLyBUbyBmaW5kIHdoaWNoIHZhbHVlIGlzIHRocm93aW5nLCBjaGVjayB0aGUgYnJvd3NlciBvciBkZWJ1Z2dlciBjb25zb2xlLlxuICAvLyBCZWZvcmUgdGhpcyBleGNlcHRpb24gd2FzIHRocm93biwgdGhlcmUgc2hvdWxkIGJlIGBjb25zb2xlLmVycm9yYCBvdXRwdXRcbiAgLy8gdGhhdCBzaG93cyB0aGUgdHlwZSAoU3ltYm9sLCBUZW1wb3JhbC5QbGFpbkRhdGUsIGV0Yy4pIHRoYXQgY2F1c2VkIHRoZVxuICAvLyBwcm9ibGVtIGFuZCBob3cgdGhhdCB0eXBlIHdhcyB1c2VkOiBrZXksIGF0cnJpYnV0ZSwgaW5wdXQgdmFsdWUgcHJvcCwgZXRjLlxuICAvLyBJbiBtb3N0IGNhc2VzLCB0aGlzIGNvbnNvbGUgb3V0cHV0IGFsc28gc2hvd3MgdGhlIGNvbXBvbmVudCBhbmQgaXRzXG4gIC8vIGFuY2VzdG9yIGNvbXBvbmVudHMgd2hlcmUgdGhlIGV4Y2VwdGlvbiBoYXBwZW5lZC5cbiAgLy9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gIHJldHVybiAnJyArIHZhbHVlO1xufVxuZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd247XG52YXIgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd247XG52YXIgZGlkV2FybkFib3V0U3RyaW5nUmVmcztcblxue1xuICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzID0ge307XG59XG5cbmZ1bmN0aW9uIGhhc1ZhbGlkUmVmKGNvbmZpZykge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAncmVmJykpIHtcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ3JlZicpLmdldDtcblxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWcucmVmICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAna2V5JykpIHtcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ2tleScpLmdldDtcblxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWcua2V5ICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcsIHNlbGYpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ICYmIHNlbGYgJiYgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnN0YXRlTm9kZSAhPT0gc2VsZikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnR5cGUpO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZXJyb3IoJ0NvbXBvbmVudCBcIiVzXCIgY29udGFpbnMgdGhlIHN0cmluZyByZWYgXCIlc1wiLiAnICsgJ1N1cHBvcnQgZm9yIHN0cmluZyByZWZzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiAnICsgJ1RoaXMgY2FzZSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gYW4gYXJyb3cgZnVuY3Rpb24uICcgKyAnV2UgYXNrIHlvdSB0byBtYW51YWxseSBmaXggdGhpcyBjYXNlIGJ5IHVzaW5nIHVzZVJlZigpIG9yIGNyZWF0ZVJlZigpIGluc3RlYWQuICcgKyAnTGVhcm4gbW9yZSBhYm91dCB1c2luZyByZWZzIHNhZmVseSBoZXJlOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudC50eXBlKSwgY29uZmlnLnJlZik7XG5cbiAgICAgICAgZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB7XG4gICAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ0tleSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYGtleWAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2FybkFib3V0QWNjZXNzaW5nS2V5LmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ0tleSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB7XG4gICAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYHJlZmAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2FybkFib3V0QWNjZXNzaW5nUmVmLmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdyZWYnLCB7XG4gICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG4vKipcbiAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIG5ldyBSZWFjdCBlbGVtZW50LiBUaGlzIG5vIGxvbmdlciBhZGhlcmVzIHRvXG4gKiB0aGUgY2xhc3MgcGF0dGVybiwgc28gZG8gbm90IHVzZSBuZXcgdG8gY2FsbCBpdC4gQWxzbywgaW5zdGFuY2VvZiBjaGVja1xuICogd2lsbCBub3Qgd29yay4gSW5zdGVhZCB0ZXN0ICQkdHlwZW9mIGZpZWxkIGFnYWluc3QgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIHRvIGNoZWNrXG4gKiBpZiBzb21ldGhpbmcgaXMgYSBSZWFjdCBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7Kn0gdHlwZVxuICogQHBhcmFtIHsqfSBwcm9wc1xuICogQHBhcmFtIHsqfSBrZXlcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gcmVmXG4gKiBAcGFyYW0geyp9IG93bmVyXG4gKiBAcGFyYW0geyp9IHNlbGYgQSAqdGVtcG9yYXJ5KiBoZWxwZXIgdG8gZGV0ZWN0IHBsYWNlcyB3aGVyZSBgdGhpc2AgaXNcbiAqIGRpZmZlcmVudCBmcm9tIHRoZSBgb3duZXJgIHdoZW4gUmVhY3QuY3JlYXRlRWxlbWVudCBpcyBjYWxsZWQsIHNvIHRoYXQgd2VcbiAqIGNhbiB3YXJuLiBXZSB3YW50IHRvIGdldCByaWQgb2Ygb3duZXIgYW5kIHJlcGxhY2Ugc3RyaW5nIGByZWZgcyB3aXRoIGFycm93XG4gKiBmdW5jdGlvbnMsIGFuZCBhcyBsb25nIGFzIGB0aGlzYCBhbmQgb3duZXIgYXJlIHRoZSBzYW1lLCB0aGVyZSB3aWxsIGJlIG5vXG4gKiBjaGFuZ2UgaW4gYmVoYXZpb3IuXG4gKiBAcGFyYW0geyp9IHNvdXJjZSBBbiBhbm5vdGF0aW9uIG9iamVjdCAoYWRkZWQgYnkgYSB0cmFuc3BpbGVyIG9yIG90aGVyd2lzZSlcbiAqIGluZGljYXRpbmcgZmlsZW5hbWUsIGxpbmUgbnVtYmVyLCBhbmQvb3Igb3RoZXIgaW5mb3JtYXRpb24uXG4gKiBAaW50ZXJuYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgdmFyIGVsZW1lbnQgPSB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3dzIHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAvLyBCdWlsdC1pbiBwcm9wZXJ0aWVzIHRoYXQgYmVsb25nIG9uIHRoZSBlbGVtZW50XG4gICAgdHlwZTogdHlwZSxcbiAgICBrZXk6IGtleSxcbiAgICByZWY6IHJlZixcbiAgICBwcm9wczogcHJvcHMsXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cbiAgICBfb3duZXI6IG93bmVyXG4gIH07XG5cbiAge1xuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxuICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBXZWFrTWFwIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQgaW5cbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmYWxzZVxuICAgIH0pOyAvLyBzZWxmIGFuZCBzb3VyY2UgYXJlIERFViBvbmx5IHByb3BlcnRpZXMuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNlbGZcbiAgICB9KTsgLy8gVHdvIGVsZW1lbnRzIGNyZWF0ZWQgaW4gdHdvIGRpZmZlcmVudCBwbGFjZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWRcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzb3VyY2VcbiAgICB9KTtcblxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmZjcy9wdWxsLzEwN1xuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqL1xuXG5mdW5jdGlvbiBqc3hERVYkMSh0eXBlLCBjb25maWcsIG1heWJlS2V5LCBzb3VyY2UsIHNlbGYpIHtcbiAge1xuICAgIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gICAgdmFyIHByb3BzID0ge307XG4gICAgdmFyIGtleSA9IG51bGw7XG4gICAgdmFyIHJlZiA9IG51bGw7IC8vIEN1cnJlbnRseSwga2V5IGNhbiBiZSBzcHJlYWQgaW4gYXMgYSBwcm9wLiBUaGlzIGNhdXNlcyBhIHBvdGVudGlhbFxuICAgIC8vIGlzc3VlIGlmIGtleSBpcyBhbHNvIGV4cGxpY2l0bHkgZGVjbGFyZWQgKGllLiA8ZGl2IHsuLi5wcm9wc30ga2V5PVwiSGlcIiAvPlxuICAgIC8vIG9yIDxkaXYga2V5PVwiSGlcIiB7Li4ucHJvcHN9IC8+ICkuIFdlIHdhbnQgdG8gZGVwcmVjYXRlIGtleSBzcHJlYWQsXG4gICAgLy8gYnV0IGFzIGFuIGludGVybWVkaWFyeSBzdGVwLCB3ZSB3aWxsIHVzZSBqc3hERVYgZm9yIGV2ZXJ5dGhpbmcgZXhjZXB0XG4gICAgLy8gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz4sIGJlY2F1c2Ugd2UgYXJlbid0IGN1cnJlbnRseSBhYmxlIHRvIHRlbGwgaWZcbiAgICAvLyBrZXkgaXMgZXhwbGljaXRseSBkZWNsYXJlZCB0byBiZSB1bmRlZmluZWQgb3Igbm90LlxuXG4gICAgaWYgKG1heWJlS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXliZUtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgbWF5YmVLZXk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICByZWYgPSBjb25maWcucmVmO1xuICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZywgc2VsZik7XG4gICAgfSAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cblxuICAgIGZvciAocHJvcE5hbWUgaW4gY29uZmlnKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIHByb3BOYW1lKSAmJiAhUkVTRVJWRURfUFJPUFMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfSAvLyBSZXNvbHZlIGRlZmF1bHQgcHJvcHNcblxuXG4gICAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgICAgZm9yIChwcm9wTmFtZSBpbiBkZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChrZXkgfHwgcmVmKSB7XG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZikge1xuICAgICAgICBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LCBwcm9wcyk7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bjtcblxue1xuICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IGZhbHNlO1xufVxuLyoqXG4gKiBWZXJpZmllcyB0aGUgb2JqZWN0IGlzIGEgUmVhY3RFbGVtZW50LlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNpc3ZhbGlkZWxlbWVudFxuICogQHBhcmFtIHs/b2JqZWN0fSBvYmplY3RcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgYG9iamVjdGAgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBAZmluYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIHtcbiAgICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAge1xuICAgIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICAgIHZhciBsaW5lTnVtYmVyID0gc291cmNlLmxpbmVOdW1iZXI7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuLyoqXG4gKiBXYXJuIGlmIHRoZXJlJ3Mgbm8ga2V5IGV4cGxpY2l0bHkgc2V0IG9uIGR5bmFtaWMgYXJyYXlzIG9mIGNoaWxkcmVuIG9yXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cbiAqIHVwZGF0ZXMuXG4gKi9cblxuXG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSkge1xuICB7XG4gICAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICAgIGlmICghaW5mbykge1xuICAgICAgdmFyIHBhcmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUocGFyZW50VHlwZSk7XG5cbiAgICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICAgIGluZm8gPSBcIlxcblxcbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPFwiICsgcGFyZW50TmFtZSArIFwiPi5cIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaW5mbztcbiAgfVxufVxuLyoqXG4gKiBXYXJuIGlmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXkgYXNzaWduZWQgdG8gaXQuXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcbiAqIHJlb3JkZXJlZC4gQWxsIGNoaWxkcmVuIHRoYXQgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFyZSByZXF1aXJlZCB0b1xuICogaGF2ZSBhIFwia2V5XCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXG4gKiB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBlbGVtZW50J3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKCFlbGVtZW50Ll9zdG9yZSB8fCBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgfHwgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xuXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gICAgLy8gcHJvcGVydHksIGl0IG1heSBiZSB0aGUgY3JlYXRvciBvZiB0aGUgY2hpbGQgdGhhdCdzIHJlc3BvbnNpYmxlIGZvclxuICAgIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cblxuICAgIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9vd25lciAhPT0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0JyB8fCAhbm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChub2RlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSA7IGVsc2UgaWYgKGlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hpbGQgPSBub2RlW2ldO1xuXG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAgIC8vIFRoaXMgZWxlbWVudCB3YXMgcGFzc2VkIGluIGEgdmFsaWQgbG9jYXRpb24uXG4gICAgICBpZiAobm9kZS5fc3RvcmUpIHtcbiAgICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cbiAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IG5vZGUuZW50cmllcykge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgICB2YXIgc3RlcDtcblxuICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxuICogcHJvdmlkZWQgYnkgdGhlIHR5cGUuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuXG4gICAgICBlcnJvcignQ29tcG9uZW50ICVzIGRlY2xhcmVkIGBQcm9wVHlwZXNgIGluc3RlYWQgb2YgYHByb3BUeXBlc2AuIERpZCB5b3UgbWlzc3BlbGwgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQ/JywgX25hbWUgfHwgJ1Vua25vd24nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHR5cGUuZ2V0RGVmYXVsdFByb3BzID09PSAnZnVuY3Rpb24nICYmICF0eXBlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBSZWFjdC5jcmVhdGVDbGFzcyAnICsgJ2RlZmluaXRpb25zLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgYGRlZmF1bHRQcm9wc2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBmcmFnbWVudCwgdmFsaWRhdGUgdGhhdCBpdCBjYW4gb25seSBiZSBwcm92aWRlZCB3aXRoIGZyYWdtZW50IHByb3BzXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xuICB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhmcmFnbWVudC5wcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ICE9PSAnY2hpbGRyZW4nICYmIGtleSAhPT0gJ2tleScpIHtcbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgYHJlZmAgc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4nKTtcblxuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcbmZ1bmN0aW9uIGpzeFdpdGhWYWxpZGF0aW9uKHR5cGUsIHByb3BzLCBrZXksIGlzU3RhdGljQ2hpbGRyZW4sIHNvdXJjZSwgc2VsZikge1xuICB7XG4gICAgdmFyIHZhbGlkVHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKTsgLy8gV2Ugd2FybiBpbiB0aGlzIGNhc2UgYnV0IGRvbid0IHRocm93LiBXZSBleHBlY3QgdGhlIGVsZW1lbnQgY3JlYXRpb24gdG9cbiAgICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuXG4gICAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICAgIHZhciBpbmZvID0gJyc7XG5cbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgICB9XG5cbiAgICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKTtcblxuICAgICAgaWYgKHNvdXJjZUluZm8pIHtcbiAgICAgICAgaW5mbyArPSBzb3VyY2VJbmZvO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5mbyArPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkodHlwZSkpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9ICdhcnJheSc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdVbmtub3duJykgKyBcIiAvPlwiO1xuICAgICAgICBpbmZvID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBleHBvcnQgYSBKU1ggbGl0ZXJhbCBpbnN0ZWFkIG9mIGEgY29tcG9uZW50Pyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XG4gICAgICB9XG5cbiAgICAgIGVycm9yKCdSZWFjdC5qc3g6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XG4gICAgfVxuXG4gICAgdmFyIGVsZW1lbnQgPSBqc3hERVYkMSh0eXBlLCBwcm9wcywga2V5LCBzb3VyY2UsIHNlbGYpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAgIC8vIFRPRE86IERyb3AgdGhpcyB3aGVuIHRoZXNlIGFyZSBubyBsb25nZXIgYWxsb3dlZCBhcyB0aGUgdHlwZSBhcmd1bWVudC5cblxuICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0gLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcbiAgICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gICAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXG4gICAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuXG5cbiAgICBpZiAodmFsaWRUeXBlKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcblxuICAgICAgaWYgKGNoaWxkcmVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baV0sIHR5cGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCAna2V5JykpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhwcm9wcykuZmlsdGVyKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgIHJldHVybiBrICE9PSAna2V5JztcbiAgICAgIH0pO1xuICAgICAgdmFyIGJlZm9yZUV4YW1wbGUgPSBrZXlzLmxlbmd0aCA+IDAgPyAne2tleTogc29tZUtleSwgJyArIGtleXMuam9pbignOiAuLi4sICcpICsgJzogLi4ufScgOiAne2tleTogc29tZUtleX0nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEtleVNwcmVhZFtjb21wb25lbnROYW1lICsgYmVmb3JlRXhhbXBsZV0pIHtcbiAgICAgICAgdmFyIGFmdGVyRXhhbXBsZSA9IGtleXMubGVuZ3RoID4gMCA/ICd7JyArIGtleXMuam9pbignOiAuLi4sICcpICsgJzogLi4ufScgOiAne30nO1xuXG4gICAgICAgIGVycm9yKCdBIHByb3BzIG9iamVjdCBjb250YWluaW5nIGEgXCJrZXlcIiBwcm9wIGlzIGJlaW5nIHNwcmVhZCBpbnRvIEpTWDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyB7Li4ucHJvcHN9IC8+XFxuJyArICdSZWFjdCBrZXlzIG11c3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIEpTWCB3aXRob3V0IHVzaW5nIHNwcmVhZDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyBrZXk9e3NvbWVLZXl9IHsuLi5wcm9wc30gLz4nLCBiZWZvcmVFeGFtcGxlLCBjb21wb25lbnROYW1lLCBhZnRlckV4YW1wbGUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dEtleVNwcmVhZFtjb21wb25lbnROYW1lICsgYmVmb3JlRXhhbXBsZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG59IC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgZXhpc3QgdG8gc3RpbGwgZ2V0IGNoaWxkIHdhcm5pbmdzIGluIGRldlxuXG52YXIganN4REVWID0ganN4V2l0aFZhbGlkYXRpb24gO1xuXG5leHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbmV4cG9ydHMuanN4REVWID0ganN4REVWO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJSZWFjdCIsInJlcXVpcmUiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJTeW1ib2wiLCJmb3IiLCJSRUFDVF9QT1JUQUxfVFlQRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIiwiUkVBQ1RfUFJPRklMRVJfVFlQRSIsIlJFQUNUX1BST1ZJREVSX1RZUEUiLCJSRUFDVF9DT05URVhUX1RZUEUiLCJSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIiwiUkVBQ1RfU1VTUEVOU0VfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSIsIlJFQUNUX01FTU9fVFlQRSIsIlJFQUNUX0xBWllfVFlQRSIsIlJFQUNUX09GRlNDUkVFTl9UWVBFIiwiUkVBQ1RfQ0FDSEVfVFlQRSIsIk1BWUJFX0lURVJBVE9SX1NZTUJPTCIsIml0ZXJhdG9yIiwiRkFVWF9JVEVSQVRPUl9TWU1CT0wiLCJnZXRJdGVyYXRvckZuIiwibWF5YmVJdGVyYWJsZSIsIm1heWJlSXRlcmF0b3IiLCJSZWFjdFNoYXJlZEludGVybmFscyIsIl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEIiwiZXJyb3IiLCJmb3JtYXQiLCJfbGVuMiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkyIiwicHJpbnRXYXJuaW5nIiwibGV2ZWwiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lIiwic3RhY2siLCJnZXRTdGFja0FkZGVuZHVtIiwiY29uY2F0IiwiYXJnc1dpdGhGb3JtYXQiLCJtYXAiLCJpdGVtIiwiU3RyaW5nIiwidW5zaGlmdCIsIkZ1bmN0aW9uIiwicHJvdG90eXBlIiwiYXBwbHkiLCJjYWxsIiwiY29uc29sZSIsImVuYWJsZVNjb3BlQVBJIiwiZW5hYmxlQ2FjaGVFbGVtZW50IiwiZW5hYmxlVHJhbnNpdGlvblRyYWNpbmciLCJlbmFibGVMZWdhY3lIaWRkZW4iLCJlbmFibGVEZWJ1Z1RyYWNpbmciLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJ0eXBlIiwiJCR0eXBlb2YiLCJnZXRNb2R1bGVJZCIsInVuZGVmaW5lZCIsImdldFdyYXBwZWROYW1lIiwib3V0ZXJUeXBlIiwiaW5uZXJUeXBlIiwid3JhcHBlck5hbWUiLCJkaXNwbGF5TmFtZSIsImZ1bmN0aW9uTmFtZSIsIm5hbWUiLCJnZXRDb250ZXh0TmFtZSIsIlJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSIsImdldENvbXBvbmVudE5hbWVGcm9tVHlwZSIsInRhZyIsImNvbnRleHQiLCJwcm92aWRlciIsIl9jb250ZXh0IiwicmVuZGVyIiwib3V0ZXJOYW1lIiwibGF6eUNvbXBvbmVudCIsInBheWxvYWQiLCJfcGF5bG9hZCIsImluaXQiLCJfaW5pdCIsIngiLCJhc3NpZ24iLCJPYmplY3QiLCJkaXNhYmxlZERlcHRoIiwicHJldkxvZyIsInByZXZJbmZvIiwicHJldldhcm4iLCJwcmV2RXJyb3IiLCJwcmV2R3JvdXAiLCJwcmV2R3JvdXBDb2xsYXBzZWQiLCJwcmV2R3JvdXBFbmQiLCJkaXNhYmxlZExvZyIsIl9fcmVhY3REaXNhYmxlZExvZyIsImRpc2FibGVMb2dzIiwibG9nIiwiaW5mbyIsIndhcm4iLCJncm91cCIsImdyb3VwQ29sbGFwc2VkIiwiZ3JvdXBFbmQiLCJwcm9wcyIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ2YWx1ZSIsIndyaXRhYmxlIiwiZGVmaW5lUHJvcGVydGllcyIsInJlZW5hYmxlTG9ncyIsIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCJwcmVmaXgiLCJkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSIsInNvdXJjZSIsIm93bmVyRm4iLCJFcnJvciIsIm1hdGNoIiwidHJpbSIsInJlZW50cnkiLCJjb21wb25lbnRGcmFtZUNhY2hlIiwiUG9zc2libHlXZWFrTWFwIiwiV2Vha01hcCIsIk1hcCIsImRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUiLCJmbiIsImNvbnN0cnVjdCIsImZyYW1lIiwiZ2V0IiwicHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSIsInByZXBhcmVTdGFja1RyYWNlIiwicHJldmlvdXNEaXNwYXRjaGVyIiwiY3VycmVudCIsIlJ1bkluUm9vdEZyYW1lIiwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290IiwiY29udHJvbCIsIkZha2UiLCJkZWZpbmVQcm9wZXJ0eSIsInNldCIsIlJlZmxlY3QiLCJtYXliZVByb21pc2UiLCJjYXRjaCIsInNhbXBsZSIsIm5hbWVQcm9wRGVzY3JpcHRvciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9SdW5JblJvb3RGcmFtZSREZXRlciIsInNhbXBsZVN0YWNrIiwiY29udHJvbFN0YWNrIiwic2FtcGxlTGluZXMiLCJzcGxpdCIsImNvbnRyb2xMaW5lcyIsInMiLCJjIiwiaW5jbHVkZXMiLCJfZnJhbWUiLCJyZXBsYWNlIiwic3ludGhldGljRnJhbWUiLCJkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUiLCJzaG91bGRDb25zdHJ1Y3QiLCJDb21wb25lbnQiLCJpc1JlYWN0Q29tcG9uZW50IiwiZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWIiwiaGFzT3duUHJvcGVydHkiLCJsb2dnZWRUeXBlRmFpbHVyZXMiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEiLCJzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxIiwiZWxlbWVudCIsIm93bmVyIiwiX293bmVyIiwiX3NvdXJjZSIsInNldEV4dHJhU3RhY2tGcmFtZSIsImNoZWNrUHJvcFR5cGVzIiwidHlwZVNwZWNzIiwidmFsdWVzIiwibG9jYXRpb24iLCJjb21wb25lbnROYW1lIiwiaGFzIiwiYmluZCIsInR5cGVTcGVjTmFtZSIsImVycm9yJDEiLCJlcnIiLCJleCIsIm1lc3NhZ2UiLCJpc0FycmF5SW1wbCIsImlzQXJyYXkiLCJhIiwidHlwZU5hbWUiLCJoYXNUb1N0cmluZ1RhZyIsInRvU3RyaW5nVGFnIiwiY29uc3RydWN0b3IiLCJ3aWxsQ29lcmNpb25UaHJvdyIsInRlc3RTdHJpbmdDb2VyY2lvbiIsImUiLCJjaGVja0tleVN0cmluZ0NvZXJjaW9uIiwiUmVhY3RDdXJyZW50T3duZXIkMSIsIlJlYWN0Q3VycmVudE93bmVyIiwiUkVTRVJWRURfUFJPUFMiLCJrZXkiLCJyZWYiLCJfX3NlbGYiLCJfX3NvdXJjZSIsInNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duIiwic3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24iLCJkaWRXYXJuQWJvdXRTdHJpbmdSZWZzIiwiaGFzVmFsaWRSZWYiLCJjb25maWciLCJnZXR0ZXIiLCJpc1JlYWN0V2FybmluZyIsImhhc1ZhbGlkS2V5Iiwid2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkIiwic2VsZiIsInN0YXRlTm9kZSIsImRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyIiwid2FybkFib3V0QWNjZXNzaW5nS2V5IiwiZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIiLCJ3YXJuQWJvdXRBY2Nlc3NpbmdSZWYiLCJSZWFjdEVsZW1lbnQiLCJfc3RvcmUiLCJmcmVlemUiLCJqc3hERVYkMSIsIm1heWJlS2V5IiwicHJvcE5hbWUiLCJkZWZhdWx0UHJvcHMiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFIiwic2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQiLCJwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biIsImlzVmFsaWRFbGVtZW50Iiwib2JqZWN0IiwiZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtIiwiZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0iLCJmaWxlTmFtZSIsImxpbmVOdW1iZXIiLCJvd25lckhhc0tleVVzZVdhcm5pbmciLCJnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvIiwicGFyZW50VHlwZSIsInBhcmVudE5hbWUiLCJ2YWxpZGF0ZUV4cGxpY2l0S2V5IiwidmFsaWRhdGVkIiwiY3VycmVudENvbXBvbmVudEVycm9ySW5mbyIsImNoaWxkT3duZXIiLCJ2YWxpZGF0ZUNoaWxkS2V5cyIsIm5vZGUiLCJpIiwiY2hpbGQiLCJpdGVyYXRvckZuIiwiZW50cmllcyIsInN0ZXAiLCJuZXh0IiwiZG9uZSIsInZhbGlkYXRlUHJvcFR5cGVzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiX25hbWUiLCJnZXREZWZhdWx0UHJvcHMiLCJpc1JlYWN0Q2xhc3NBcHByb3ZlZCIsInZhbGlkYXRlRnJhZ21lbnRQcm9wcyIsImZyYWdtZW50Iiwia2V5cyIsImRpZFdhcm5BYm91dEtleVNwcmVhZCIsImpzeFdpdGhWYWxpZGF0aW9uIiwiaXNTdGF0aWNDaGlsZHJlbiIsInZhbGlkVHlwZSIsInNvdXJjZUluZm8iLCJ0eXBlU3RyaW5nIiwiY2hpbGRyZW4iLCJmaWx0ZXIiLCJrIiwiYmVmb3JlRXhhbXBsZSIsImpvaW4iLCJhZnRlckV4YW1wbGUiLCJqc3hERVYiLCJleHBvcnRzIiwiRnJhZ21lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react/cjs/react.development.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/cjs/react.development.js ***!
- \****************************************************************************/
-/***/ ((module, exports, __webpack_require__) => {
-
-"use strict";
-eval("/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== \"undefined\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === \"function\") {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n }\n var ReactVersion = \"18.3.0-canary-60a927d04-20240113\";\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\n var REACT_CACHE_TYPE = Symbol.for(\"react.cache\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n /**\n * Keeps track of the current dispatcher.\n */ var ReactCurrentDispatcher$1 = {\n current: null\n };\n /**\n * Keeps track of the current Cache dispatcher.\n */ var ReactCurrentCache = {\n current: null\n };\n /**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */ var ReactCurrentBatchConfig = {\n transition: null\n };\n var ReactCurrentActQueue = {\n current: null,\n // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n isBatchingLegacy: false,\n didScheduleLegacyUpdate: false,\n // Tracks whether something called `use` during the current batch of work.\n // Determines whether we should yield to microtasks to unwrap already resolved\n // promises without suspending.\n didUsePromise: false\n };\n /**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */ var ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */ current: null\n };\n var ReactDebugCurrentFrame$1 = {};\n var currentExtraStackFrame = null;\n function setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n }\n {\n ReactDebugCurrentFrame$1.setExtraStackFrame = function(stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n ReactDebugCurrentFrame$1.getCurrentStack = null;\n ReactDebugCurrentFrame$1.getStackAddendum = function() {\n var stack = \"\"; // Add an extra top frame while an element is being validated\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n var impl = ReactDebugCurrentFrame$1.getCurrentStack;\n if (impl) {\n stack += impl() || \"\";\n }\n return stack;\n };\n }\n // -----------------------------------------------------------------------------\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n var enableCacheElement = false;\n var enableTransitionTracing = false; // No known bugs, but needs performance testing\n var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n // stuff. Intended to enable React core members to more easily debug scheduling\n // issues in DEV builds.\n var enableDebugTracing = false;\n var ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher$1,\n ReactCurrentCache: ReactCurrentCache,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner\n };\n {\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame$1;\n ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n }\n // by calls to these methods by a Babel plugin.\n //\n // In PROD (or in packages without access to React internals),\n // they are left as they are instead.\n function warn(format) {\n {\n {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n printWarning(\"warn\", format, args);\n }\n }\n }\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n var didWarnStateUpdateForUnmountedComponent = {};\n function warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || \"ReactClass\";\n var warningKey = componentName + \".\" + callerName;\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n error(\"Can't call %s on a component that is not yet mounted. \" + \"This is a no-op, but it might indicate a bug in your application. \" + \"Instead, assign to `this.state` directly or define a `state = {};` \" + \"class property with the desired state in the %s component.\", callerName, componentName);\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n }\n /**\n * This is the abstract API for an update queue.\n */ var ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */ isMounted: function(publicInstance) {\n return false;\n },\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */ enqueueForceUpdate: function(publicInstance, callback, callerName) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */ enqueueReplaceState: function(publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, \"replaceState\");\n },\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */ enqueueSetState: function(publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, \"setState\");\n }\n };\n var assign = Object.assign;\n var emptyObject = {};\n {\n Object.freeze(emptyObject);\n }\n /**\n * Base class helpers for the updating state of a component.\n */ function Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n }\n Component.prototype.isReactComponent = {};\n /**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */ Component.prototype.setState = function(partialState, callback) {\n if (typeof partialState !== \"object\" && typeof partialState !== \"function\" && partialState != null) {\n throw new Error(\"setState(...): takes an object of state variables to update or a \" + \"function which returns an object of state variables.\");\n }\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */ Component.prototype.forceUpdate = function(callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n /**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */ {\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in \" + \"componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see \" + \"https://github.com/facebook/react/issues/3236).\"\n ]\n };\n var defineDeprecationWarning = function(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function() {\n warn(\"%s(...) is deprecated in plain JavaScript React classes. %s\", info[0], info[1]);\n return undefined;\n }\n });\n };\n for(var fnName in deprecatedAPIs){\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n }\n function ComponentDummy() {}\n ComponentDummy.prototype = Component.prototype;\n /**\n * Convenience component with default shallow equality check for sCU.\n */ function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\n pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n assign(pureComponentPrototype, Component.prototype);\n pureComponentPrototype.isPureReactComponent = true;\n // an immutable object with a single mutable value\n function createRef() {\n var refObject = {\n current: null\n };\n {\n Object.seal(refObject);\n }\n return refObject;\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n /*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */ // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === \"function\" && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || \"Object\"; // $FlowFixMe[incompatible-return]\n return type;\n }\n } // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n }\n function testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided key is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n function getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n if (displayName) {\n return displayName;\n }\n var functionName = innerType.displayName || innerType.name || \"\";\n return functionName !== \"\" ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n } // Keep in sync with react-reconciler/getComponentNameFromFiber\n function getContextName(type) {\n return type.displayName || \"Context\";\n }\n var REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\"); // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n function getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n if (typeof type === \"function\") {\n if (type.$$typeof === REACT_CLIENT_REFERENCE$2) {\n // TODO: Create a convention for naming client references with debug info.\n return null;\n }\n return type.displayName || type.name || null;\n }\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_CACHE_TYPE:\n {\n return \"Cache\";\n }\n }\n if (typeof type === \"object\") {\n {\n if (typeof type.tag === \"number\") {\n error(\"Received an unexpected object in getComponentNameFromType(). \" + \"This is likely a bug in React. Please file an issue.\");\n }\n }\n switch(type.$$typeof){\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, \"ForwardRef\");\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n if (outerName !== null) {\n return outerName;\n }\n return getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n return null;\n }\n // $FlowFixMe[method-unbinding]\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n };\n var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n {\n didWarnAboutStringRefs = {};\n }\n function hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, \"ref\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"ref\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n }\n function hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function() {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n error(\"%s: `key` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n function defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function() {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n error(\"%s: `ref` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, \"ref\", {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n function warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === \"string\" && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + \"Support for string refs will be removed in a future major release. \" + \"This case cannot be automatically converted to an arrow function. \" + \"We ask you to manually fix this case by using useRef() or createRef() instead. \" + \"Learn more about using refs safely here: \" + \"https://reactjs.org/link/strict-mode-string-ref\", componentName, config.ref);\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n }\n /**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */ function ReactElement(type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n Object.defineProperty(element._store, \"validated\", {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n Object.defineProperty(element, \"_self\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, \"_source\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n return element;\n }\n /**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */ function createElement$1(type, config, children) {\n var propName; // Reserved names are extracted\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n }\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for(var i = 0; i < childrenLength; i++){\n childArray[i] = arguments[i + 2];\n }\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n props.children = childArray;\n } // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for(propName in defaultProps){\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n {\n if (key || ref) {\n var displayName = typeof type === \"function\" ? type.displayName || type.name || \"Unknown\" : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n }\n /**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */ function cloneElement$1(element, config, children) {\n if (element === null || element === undefined) {\n throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n var propName; // Original props are copied\n var props = assign({}, element.props); // Reserved names are extracted\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source; // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n } // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for(var i = 0; i < childrenLength; i++){\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n return ReactElement(element.type, key, ref, self, source, owner, props);\n }\n /**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */ function isValidElement(object) {\n return typeof object === \"object\" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n var SEPARATOR = \".\";\n var SUBSEPARATOR = \":\";\n /**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */ function escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n var escapedString = key.replace(escapeRegex, function(match) {\n return escaperLookup[match];\n });\n return \"$\" + escapedString;\n }\n /**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */ var didWarnAboutMaps = false;\n var userProvidedKeyEscapeRegex = /\\/+/g;\n function escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, \"$&/\");\n }\n /**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */ function getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === \"object\" && element !== null && element.key != null) {\n // Explicit key\n {\n checkKeyStringCoercion(element.key);\n }\n return escape(\"\" + element.key);\n } // Implicit key determined by the index in the set\n return index.toString(36);\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (type === \"undefined\" || type === \"boolean\") {\n // All of the above are perceived as null.\n children = null;\n }\n var invokeCallback = false;\n if (children === null) {\n invokeCallback = true;\n } else {\n switch(type){\n case \"string\":\n case \"number\":\n invokeCallback = true;\n break;\n case \"object\":\n switch(children.$$typeof){\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n }\n }\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n var childKey = nameSoFar === \"\" ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n if (isArray(mappedChild)) {\n var escapedChildKey = \"\";\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + \"/\";\n }\n mapIntoArray(mappedChild, array, escapedChildKey, \"\", function(c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n {\n // The `if` statement here prevents auto-disabling of the safe\n // coercion ESLint rule, so we must manually disable it below.\n // $FlowFixMe[incompatible-type] Flow incorrectly thinks React.Portal doesn't have a key\n if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n checkKeyStringCoercion(mappedChild.key);\n }\n }\n mappedChild = cloneAndReplaceKey(mappedChild, // traverseAllChildren used to do for objects as children\n escapedPrefix + (mappedChild.key && (!_child || _child.key !== mappedChild.key) ? escapeUserProvidedKey(\"\" + mappedChild.key // eslint-disable-line react-internal/safe-string-coercion\n ) + \"/\" : \"\") + childKey);\n }\n array.push(mappedChild);\n }\n return 1;\n }\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === \"\" ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n if (isArray(children)) {\n for(var i = 0; i < children.length; i++){\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (typeof iteratorFn === \"function\") {\n var iterableChildren = children;\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn(\"Using Maps as children is not supported. \" + \"Use an array of keyed ReactElements instead.\");\n }\n didWarnAboutMaps = true;\n }\n }\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0; // $FlowFixMe[incompatible-use] `iteratorFn` might return null according to typing.\n while(!(step = iterator.next()).done){\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === \"object\") {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var childrenString = String(children);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === \"[object Object]\" ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\" : childrenString) + \"). \" + \"If you meant to render a collection of children, use an array \" + \"instead.\");\n }\n }\n return subtreeCount;\n }\n /**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */ function mapChildren(children, func, context) {\n if (children == null) {\n // $FlowFixMe limitation refining abstract types in Flow\n return children;\n }\n var result = [];\n var count = 0;\n mapIntoArray(children, result, \"\", \"\", function(child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n /**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */ function countChildren(children) {\n var n = 0;\n mapChildren(children, function() {\n n++; // Don't return anything\n });\n return n;\n }\n /**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */ function forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function() {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n }\n /**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */ function toArray(children) {\n return mapChildren(children, function(child) {\n return child;\n }) || [];\n }\n /**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */ function onlyChild(children) {\n if (!isValidElement(children)) {\n throw new Error(\"React.Children.only expected to receive a single React element child.\");\n }\n return children;\n }\n function createContext(defaultValue) {\n // TODO: Second argument used to be an optional `calculateChangedBits`\n // function. Warn to reserve for future use?\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null,\n // Add these to use same hidden class in VM as ServerContext\n _defaultValue: null,\n _globalName: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context\n }; // $FlowFixMe[prop-missing]: Flow complains about not setting a value, which is intentional here\n Object.defineProperties(Consumer, {\n Provider: {\n get: function() {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n error(\"Rendering <Context.Consumer.Provider> is not supported and will be removed in \" + \"a future major release. Did you mean to render <Context.Provider> instead?\");\n }\n return context.Provider;\n },\n set: function(_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function() {\n return context._currentValue;\n },\n set: function(_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function() {\n return context._currentValue2;\n },\n set: function(_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function() {\n return context._threadCount;\n },\n set: function(_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function() {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n error(\"Rendering <Context.Consumer.Consumer> is not supported and will be removed in \" + \"a future major release. Did you mean to render <Context.Consumer> instead?\");\n }\n return context.Consumer;\n }\n },\n displayName: {\n get: function() {\n return context.displayName;\n },\n set: function(displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn(\"Setting `displayName` on Context.Consumer has no effect. \" + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe[prop-missing]: Flow complains about missing properties because it doesn't understand defineProperty\n context.Consumer = Consumer;\n }\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n return context;\n }\n var Uninitialized = -1;\n var Pending = 0;\n var Resolved = 1;\n var Rejected = 2;\n function lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n // This might throw either because it's missing or throws. If so, we treat it\n // as still uninitialized and try again next time. Which is the same as what\n // happens if the ctor or any wrappers processing the ctor throws. This might\n // end up fixing it if the resolution was a concurrency bug.\n thenable.then(function(moduleObject) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = moduleObject;\n }\n }, function(error) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n if (payload._status === Uninitialized) {\n // In case, we're still uninitialized, then we're waiting for the thenable\n // to resolve. Set it as pending in the meantime.\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n }\n }\n if (payload._status === Resolved) {\n var moduleObject = payload._result;\n {\n if (moduleObject === undefined) {\n error(\"lazy: Expected the result of a dynamic imp\" + \"ort() call. \" + \"Instead received: %s\\n\\nYour code should look like: \\n \" + // Break up imports to avoid accidentally parsing them as dependencies.\n \"const MyComponent = lazy(() => imp\" + \"ort('./MyComponent'))\\n\\n\" + \"Did you accidentally put curly braces around the import?\", moduleObject);\n }\n }\n {\n if (!(\"default\" in moduleObject)) {\n error(\"lazy: Expected the result of a dynamic imp\" + \"ort() call. \" + \"Instead received: %s\\n\\nYour code should look like: \\n \" + // Break up imports to avoid accidentally parsing them as dependencies.\n \"const MyComponent = lazy(() => imp\" + \"ort('./MyComponent'))\", moduleObject);\n }\n }\n return moduleObject.default;\n } else {\n throw payload._result;\n }\n }\n function lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: Uninitialized,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe[prop-missing]\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function() {\n return defaultProps;\n },\n // $FlowFixMe[missing-local-annot]\n set: function(newDefaultProps) {\n error(\"React.lazy(...): It is not supported to assign `defaultProps` to \" + \"a lazy component import. Either specify them where the component \" + \"is defined, or create a wrapping component around it.\");\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe[prop-missing]\n Object.defineProperty(lazyType, \"defaultProps\", {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function() {\n return propTypes;\n },\n // $FlowFixMe[missing-local-annot]\n set: function(newPropTypes) {\n error(\"React.lazy(...): It is not supported to assign `propTypes` to \" + \"a lazy component import. Either specify them where the component \" + \"is defined, or create a wrapping component around it.\");\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe[prop-missing]\n Object.defineProperty(lazyType, \"propTypes\", {\n enumerable: true\n });\n }\n }\n });\n }\n return lazyType;\n }\n function forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error(\"forwardRef requires a render function but received a `memo` \" + \"component. Instead of forwardRef(memo(...)), use \" + \"memo(forwardRef(...)).\");\n } else if (typeof render !== \"function\") {\n error(\"forwardRef requires a render function but was given %s.\", render === null ? \"null\" : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error(\"forwardRef render functions accept exactly two parameters: props and ref. %s\", render.length === 1 ? \"Did you forget to use the ref parameter?\" : \"Any additional parameter will be undefined.\");\n }\n }\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error(\"forwardRef render functions do not support propTypes or defaultProps. \" + \"Did you accidentally pass a React component?\");\n }\n }\n }\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n {\n var ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return ownName;\n },\n set: function(name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.forwardRef((props, ref) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n if (!render.name && !render.displayName) {\n render.displayName = name;\n }\n }\n });\n }\n return elementType;\n }\n var REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\");\n function isValidElementType(type) {\n if (typeof type === \"string\" || typeof type === \"function\") {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n return true;\n }\n if (typeof type === \"object\" && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE$1 || type.getModuleId !== undefined) {\n return true;\n }\n }\n return false;\n }\n function memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error(\"memo: The first argument must be a component. Instead \" + \"received: %s\", type === null ? \"null\" : typeof type);\n }\n }\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n {\n var ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return ownName;\n },\n set: function(name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.memo((props) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n if (!type.name && !type.displayName) {\n type.displayName = name;\n }\n }\n });\n }\n return elementType;\n }\n var UNTERMINATED = 0;\n var TERMINATED = 1;\n var ERRORED = 2;\n function createCacheRoot() {\n return new WeakMap();\n }\n function createCacheNode() {\n return {\n s: UNTERMINATED,\n // status, represents whether the cached computation returned a value or threw an error\n v: undefined,\n // value, either the cached result or an error, depending on s\n o: null,\n // object cache, a WeakMap where non-primitive arguments are stored\n p: null // primitive cache, a regular Map where primitive arguments are stored.\n };\n }\n function cache(fn) {\n return function() {\n var dispatcher = ReactCurrentCache.current;\n if (!dispatcher) {\n // If there is no dispatcher, then we treat this as not being cached.\n // $FlowFixMe[incompatible-call]: We don't want to use rest arguments since we transpile the code.\n return fn.apply(null, arguments);\n }\n var fnMap = dispatcher.getCacheForType(createCacheRoot);\n var fnNode = fnMap.get(fn);\n var cacheNode;\n if (fnNode === undefined) {\n cacheNode = createCacheNode();\n fnMap.set(fn, cacheNode);\n } else {\n cacheNode = fnNode;\n }\n for(var i = 0, l = arguments.length; i < l; i++){\n var arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n // Objects go into a WeakMap\n var objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = new WeakMap();\n }\n var objectNode = objectCache.get(arg);\n if (objectNode === undefined) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n // Primitives go into a regular Map\n var primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = new Map();\n }\n var primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === undefined) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n if (cacheNode.s === TERMINATED) {\n return cacheNode.v;\n }\n if (cacheNode.s === ERRORED) {\n throw cacheNode.v;\n }\n try {\n // $FlowFixMe[incompatible-call]: We don't want to use rest arguments since we transpile the code.\n var result = fn.apply(null, arguments);\n var terminatedNode = cacheNode;\n terminatedNode.s = TERMINATED;\n terminatedNode.v = result;\n return result;\n } catch (error) {\n // We store the first error that's thrown and rethrow it.\n var erroredNode = cacheNode;\n erroredNode.s = ERRORED;\n erroredNode.v = error;\n throw error;\n }\n };\n }\n function resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher$1.current;\n {\n if (dispatcher === null) {\n error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for\" + \" one of the following reasons:\\n\" + \"1. You might have mismatching versions of React and the renderer (such as React DOM)\\n\" + \"2. You might be breaking the Rules of Hooks\\n\" + \"3. You might have more than one copy of React in the same app\\n\" + \"See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\");\n }\n }\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n return dispatcher;\n }\n function useContext(Context) {\n var dispatcher = resolveDispatcher();\n {\n // TODO: add a more generic warning for invalid values.\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n if (realContext.Consumer === Context) {\n error(\"Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be \" + \"removed in a future major release. Did you mean to call useContext(Context) instead?\");\n } else if (realContext.Provider === Context) {\n error(\"Calling useContext(Context.Provider) is not supported. \" + \"Did you mean to call useContext(Context) instead?\");\n }\n }\n }\n return dispatcher.useContext(Context);\n }\n function useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n }\n function useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n }\n function useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n }\n function useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n }\n function useInsertionEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useInsertionEffect(create, deps);\n }\n function useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n }\n function useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n }\n function useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n }\n function useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n }\n function useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n }\n function useTransition() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useTransition();\n }\n function useDeferredValue(value, initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDeferredValue(value, initialValue);\n }\n function useId() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useId();\n }\n function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n }\n function useCacheRefresh() {\n var dispatcher = resolveDispatcher(); // $FlowFixMe[not-a-function] This is unstable, thus optional\n return dispatcher.useCacheRefresh();\n }\n function use(usable) {\n var dispatcher = resolveDispatcher();\n return dispatcher.use(usable);\n }\n function useOptimistic(passthrough, reducer) {\n var dispatcher = resolveDispatcher(); // $FlowFixMe[not-a-function] This is unstable, thus optional\n return dispatcher.useOptimistic(passthrough, reducer);\n }\n // Helpers to patch console.logs to avoid logging during side-effect free\n // replaying on render function. This currently only patches the object\n // lazily which won't cover if the log function was extracted eagerly.\n // We could also eagerly patch the method.\n var disabledDepth = 0;\n var prevLog;\n var prevInfo;\n var prevWarn;\n var prevError;\n var prevGroup;\n var prevGroupCollapsed;\n var prevGroupEnd;\n function disabledLog() {}\n disabledLog.__reactDisabledLog = true;\n function disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */ }\n disabledDepth++;\n }\n }\n function reenableLogs() {\n {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */ }\n if (disabledDepth < 0) {\n error(\"disabledDepth fell below zero. \" + \"This is a bug in React. Please file an issue.\");\n }\n }\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n var prefix;\n function describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || \"\";\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n return \"\\n\" + prefix + name;\n }\n }\n var reentry = false;\n var componentFrameCache;\n {\n var PossiblyWeakMap = typeof WeakMap === \"function\" ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n }\n /**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */ function describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return \"\";\n }\n {\n var frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */ var RunInRootFrame = {\n DetermineComponentFrameRoot: function() {\n var control;\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function() {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function() {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n if (typeof Reflect === \"object\" && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n if (maybePromise && typeof maybePromise.catch === \"function\") {\n maybePromise.catch(function() {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === \"string\") {\n return [\n sample.stack,\n control.stack\n ];\n }\n }\n return [\n null,\n null\n ];\n }\n }; // $FlowFixMe[prop-missing]\n RunInRootFrame.DetermineComponentFrameRoot.displayName = \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, \"name\"); // Before ES6, the `name` property was not configurable.\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // is set to `false`.\n // $FlowFixMe[cannot-write]\n \"name\", {\n value: \"DetermineComponentFrameRoot\"\n });\n }\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split(\"\\n\");\n var controlLines = controlStack.split(\"\\n\");\n var s = 0;\n var c = 0;\n while(s < sampleLines.length && !sampleLines[s].includes(\"DetermineComponentFrameRoot\")){\n s++;\n }\n while(c < controlLines.length && !controlLines[c].includes(\"DetermineComponentFrameRoot\")){\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n while(s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]){\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n for(; s >= 1 && c >= 0; s--, c--){\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = \"\\n\" + sampleLines[s].replace(\" at new \", \" at \"); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n if (fn.displayName && _frame.includes(\"<anonymous>\")) {\n _frame = _frame.replace(\"<anonymous>\", fn.displayName);\n }\n if (true) {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n return _frame;\n }\n }while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally{\n reentry = false;\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n var name = fn ? fn.displayName || fn.name : \"\";\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : \"\";\n {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n }\n function describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n }\n function shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n }\n function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n if (type == null) {\n return \"\";\n }\n if (typeof type === \"function\") {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n if (typeof type === \"string\") {\n return describeBuiltInComponentFrame(type);\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n var loggedTypeFailures = {};\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n function setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n }\n function checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n for(var typeSpecName in typeSpecs){\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== \"function\") {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; \" + \"it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\" + \"This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");\n err.name = \"Invariant Violation\";\n throw err;\n }\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\");\n } catch (ex) {\n error$1 = ex;\n }\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement$1(element);\n error(\"%s: type specification of %s\" + \" `%s` is invalid; the type checker \" + \"function must return `null` or an `Error` but returned a %s. \" + \"You may have forgotten to pass an argument to the type checker \" + \"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and \" + \"shape all require an argument).\", componentName || \"React class\", location, typeSpecName, typeof error$1);\n setCurrentlyValidatingElement$1(null);\n }\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement$1(element);\n error(\"Failed %s type: %s\", location, error$1.message);\n setCurrentlyValidatingElement$1(null);\n }\n }\n }\n }\n }\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n function setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n }\n var propTypesMisspellWarningShown;\n {\n propTypesMisspellWarningShown = false;\n }\n function getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (name) {\n return \"\\n\\nCheck the render method of `\" + name + \"`.\";\n }\n }\n return \"\";\n }\n function getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, \"\");\n var lineNumber = source.lineNumber;\n return \"\\n\\nCheck your code at \" + fileName + \":\" + lineNumber + \".\";\n }\n return \"\";\n }\n function getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n return \"\";\n }\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */ var ownerHasKeyUseWarning = {};\n function getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n if (!info) {\n var parentName = getComponentNameFromType(parentType);\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n return info;\n }\n /**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */ function validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = \"\";\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n {\n setCurrentlyValidatingElement(element);\n error('Each child in a list should have a unique \"key\" prop.' + \"%s%s See https://reactjs.org/link/warning-keys for more information.\", currentComponentErrorInfo, childOwner);\n setCurrentlyValidatingElement(null);\n }\n }\n /**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */ function validateChildKeys(node, parentType) {\n if (typeof node !== \"object\" || !node) {\n return;\n }\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ;\n else if (isArray(node)) {\n for(var i = 0; i < node.length; i++){\n var child = node[i];\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else {\n var iteratorFn = getIteratorFn(node);\n if (typeof iteratorFn === \"function\") {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while(!(step = iterator.next()).done){\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n /**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */ function validatePropTypes(element) {\n {\n var type = element.type;\n if (type === null || type === undefined || typeof type === \"string\") {\n return;\n }\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\n return;\n }\n var propTypes;\n if (typeof type === \"function\") {\n propTypes = type.propTypes;\n } else if (typeof type === \"object\" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, \"prop\", name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n var _name = getComponentNameFromType(type);\n error(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\", _name || \"Unknown\");\n }\n if (typeof type.getDefaultProps === \"function\" && !type.getDefaultProps.isReactClassApproved) {\n error(\"getDefaultProps is only used on classic React.createClass \" + \"definitions. Use a static property named `defaultProps` instead.\");\n }\n }\n }\n /**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */ function validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n for(var i = 0; i < keys.length; i++){\n var key = keys[i];\n if (key !== \"children\" && key !== \"key\") {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid prop `%s` supplied to `React.Fragment`. \" + \"React.Fragment can only have `key` and `children` props.\", key);\n setCurrentlyValidatingElement(null);\n break;\n }\n }\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid attribute `ref` supplied to `React.Fragment`.\");\n setCurrentlyValidatingElement(null);\n }\n }\n }\n function createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n var info = \"\";\n if (type === undefined || typeof type === \"object\" && type !== null && Object.keys(type).length === 0) {\n info += \" You likely forgot to export your component from the file \" + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n var typeString;\n if (type === null) {\n typeString = \"null\";\n } else if (isArray(type)) {\n typeString = \"array\";\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || \"Unknown\") + \" />\";\n info = \" Did you accidentally export a JSX literal instead of a component?\";\n } else {\n typeString = typeof type;\n }\n {\n error(\"React.createElement: type is invalid -- expected a string (for \" + \"built-in components) or a class/function (for composite \" + \"components) but got: %s.%s\", typeString, info);\n }\n }\n var element = createElement$1.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for(var i = 2; i < arguments.length; i++){\n validateChildKeys(arguments[i], type);\n }\n }\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n return element;\n }\n var didWarnAboutDeprecatedCreateFactory = false;\n function createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n warn(\"React.createFactory() is deprecated and will be removed in \" + \"a future major release. Consider using JSX \" + \"or use React.createElement() directly instead.\");\n } // Legacy hook: remove it\n Object.defineProperty(validatedFactory, \"type\", {\n enumerable: false,\n get: function() {\n warn(\"Factory.type is deprecated. Access the class directly \" + \"before passing it to createFactory.\");\n Object.defineProperty(this, \"type\", {\n value: type\n });\n return type;\n }\n });\n }\n return validatedFactory;\n }\n function cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement$1.apply(this, arguments);\n for(var i = 2; i < arguments.length; i++){\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n function startTransition(scope, options) {\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = {};\n var currentTransition = ReactCurrentBatchConfig.transition;\n {\n ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n }\n try {\n scope();\n } finally{\n ReactCurrentBatchConfig.transition = prevTransition;\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n currentTransition._updatedFibers.clear();\n if (updatedFibersCount > 10) {\n warn(\"Detected a large number of updates inside startTransition. \" + \"If this is due to a subscription please re-write it to use React provided hooks. \" + \"Otherwise concurrent mode guarantees are off the table.\");\n }\n }\n }\n }\n }\n var didWarnAboutMessageChannel = false;\n var enqueueTaskImpl = null;\n function enqueueTask(task) {\n if (enqueueTaskImpl === null) {\n try {\n // read require off the module object to get around the bundlers.\n // we don't want them to detect a require and bundle a Node polyfill.\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n // version of setImmediate, bypassing fake timers if any.\n enqueueTaskImpl = nodeRequire.call(module, \"timers\").setImmediate;\n } catch (_err) {\n // we're in a browser\n // we can't use regular timers because they may still be faked\n // so we try MessageChannel+postMessage instead\n enqueueTaskImpl = function(callback) {\n {\n if (didWarnAboutMessageChannel === false) {\n didWarnAboutMessageChannel = true;\n if (typeof MessageChannel === \"undefined\") {\n error(\"This browser does not have a MessageChannel implementation, \" + \"so enqueuing tasks via await act(async () => ...) will fail. \" + \"Please file an issue at https://github.com/facebook/react/issues \" + \"if you encounter this warning.\");\n }\n }\n }\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(undefined);\n };\n }\n }\n return enqueueTaskImpl(task);\n }\n // number of `act` scopes on the stack.\n var actScopeDepth = 0; // We only warn the first time you neglect to await an async `act` scope.\n var didWarnNoAwaitAct = false;\n function act(callback) {\n {\n // When ReactCurrentActQueue.current is not null, it signals to React that\n // we're currently inside an `act` scope. React will push all its tasks to\n // this queue instead of scheduling them with platform APIs.\n //\n // We set this to an empty array when we first enter an `act` scope, and\n // only unset it once we've left the outermost `act` scope — remember that\n // `act` calls can be nested.\n //\n // If we're already inside an `act` scope, reuse the existing queue.\n var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n var prevActQueue = ReactCurrentActQueue.current;\n var prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = ReactCurrentActQueue.current = prevActQueue !== null ? prevActQueue : []; // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n // set to `true` while the given callback is executed, not for updates\n // triggered during an async event, because this is how the legacy\n // implementation of `act` behaved.\n ReactCurrentActQueue.isBatchingLegacy = true;\n var result; // This tracks whether the `act` call is awaited. In certain cases, not\n // awaiting it is a mistake, so we will detect that and warn.\n var didAwaitActCall = false;\n try {\n // Reset this to `false` right before entering the React work loop. The\n // only place we ever read this fields is just below, right after running\n // the callback. So we don't need to reset after the callback runs.\n ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n result = callback();\n var didScheduleLegacyUpdate = ReactCurrentActQueue.didScheduleLegacyUpdate; // Replicate behavior of original `act` implementation in legacy mode,\n // which flushed updates immediately after the scope function exits, even\n // if it's an async function.\n if (!prevIsBatchingLegacy && didScheduleLegacyUpdate) {\n flushActQueue(queue);\n } // `isBatchingLegacy` gets reset using the regular stack, not the async\n // one used to track `act` scopes. Why, you may be wondering? Because\n // that's how it worked before version 18. Yes, it's confusing! We should\n // delete legacy mode!!\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n } catch (error) {\n // `isBatchingLegacy` gets reset using the regular stack, not the async\n // one used to track `act` scopes. Why, you may be wondering? Because\n // that's how it worked before version 18. Yes, it's confusing! We should\n // delete legacy mode!!\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n popActScope(prevActQueue, prevActScopeDepth);\n throw error;\n }\n if (result !== null && typeof result === \"object\" && // $FlowFixMe[method-unbinding]\n typeof result.then === \"function\") {\n // A promise/thenable was returned from the callback. Wait for it to\n // resolve before flushing the queue.\n //\n // If `act` were implemented as an async function, this whole block could\n // be a single `await` call. That's really the only difference between\n // this branch and the next one.\n var thenable = result; // Warn if the an `act` call with an async scope is not awaited. In a\n // future release, consider making this an error.\n queueSeveralMicrotasks(function() {\n if (!didAwaitActCall && !didWarnNoAwaitAct) {\n didWarnNoAwaitAct = true;\n error(\"You called act(async () => ...) without await. \" + \"This could lead to unexpected testing behaviour, \" + \"interleaving multiple act calls and mixing their \" + \"scopes. \" + \"You should - await act(async () => ...);\");\n }\n });\n return {\n then: function(resolve, reject) {\n didAwaitActCall = true;\n thenable.then(function(returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (prevActScopeDepth === 0) {\n // We're exiting the outermost `act` scope. Flush the queue.\n try {\n flushActQueue(queue);\n enqueueTask(function() {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n } catch (error) {\n // `thenable` might not be a real promise, and `flushActQueue`\n // might throw, so we need to wrap `flushActQueue` in a\n // try/catch.\n reject(error);\n }\n } else {\n resolve(returnValue);\n }\n }, function(error) {\n popActScope(prevActQueue, prevActScopeDepth);\n reject(error);\n });\n }\n };\n } else {\n var returnValue = result; // The callback is not an async function. Exit the current\n // scope immediately.\n popActScope(prevActQueue, prevActScopeDepth);\n if (prevActScopeDepth === 0) {\n // We're exiting the outermost `act` scope. Flush the queue.\n flushActQueue(queue); // If the queue is not empty, it implies that we intentionally yielded\n // to the main thread, because something suspended. We will continue\n // in an asynchronous task.\n //\n // Warn if something suspends but the `act` call is not awaited.\n // In a future release, consider making this an error.\n if (queue.length !== 0) {\n queueSeveralMicrotasks(function() {\n if (!didAwaitActCall && !didWarnNoAwaitAct) {\n didWarnNoAwaitAct = true;\n error(\"A component suspended inside an `act` scope, but the \" + \"`act` call was not awaited. When testing React \" + \"components that depend on asynchronous data, you must \" + \"await the result:\\n\\n\" + \"await act(() => ...)\");\n }\n });\n } // Like many things in this module, this is next part is confusing.\n //\n // We do not currently require every `act` call that is passed a\n // callback to be awaited, through arguably we should. Since this\n // callback was synchronous, we need to exit the current scope before\n // returning.\n //\n // However, if thenable we're about to return *is* awaited, we'll\n // immediately restore the current scope. So it shouldn't observable.\n //\n // This doesn't affect the case where the scope callback is async,\n // because we always require those calls to be awaited.\n //\n // TODO: In a future version, consider always requiring all `act` calls\n // to be awaited, regardless of whether the callback is sync or async.\n ReactCurrentActQueue.current = null;\n }\n return {\n then: function(resolve, reject) {\n didAwaitActCall = true;\n if (prevActScopeDepth === 0) {\n // If the `act` call is awaited, restore the queue we were\n // using before (see long comment above) so we can flush it.\n ReactCurrentActQueue.current = queue;\n enqueueTask(function() {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n } else {\n resolve(returnValue);\n }\n }\n };\n }\n }\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n {\n if (prevActScopeDepth !== actScopeDepth - 1) {\n error(\"You seem to have overlapping act() calls, this is not supported. \" + \"Be sure to await previous act() calls before making a new one. \");\n }\n actScopeDepth = prevActScopeDepth;\n }\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n {\n // Check if any tasks were scheduled asynchronously.\n var queue = ReactCurrentActQueue.current;\n if (queue !== null) {\n if (queue.length !== 0) {\n // Async tasks were scheduled, mostly likely in a microtask.\n // Keep flushing until there are no more.\n try {\n flushActQueue(queue); // The work we just performed may have schedule additional async\n // tasks. Wait a macrotask and check again.\n enqueueTask(function() {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n } catch (error) {\n // Leave remaining tasks on the queue if something throws.\n reject(error);\n }\n } else {\n // The queue is empty. We can finish.\n ReactCurrentActQueue.current = null;\n resolve(returnValue);\n }\n } else {\n resolve(returnValue);\n }\n }\n }\n var isFlushing = false;\n function flushActQueue(queue) {\n {\n if (!isFlushing) {\n // Prevent re-entrance.\n isFlushing = true;\n var i = 0;\n try {\n for(; i < queue.length; i++){\n var callback = queue[i];\n do {\n ReactCurrentActQueue.didUsePromise = false;\n var continuation = callback(false);\n if (continuation !== null) {\n if (ReactCurrentActQueue.didUsePromise) {\n // The component just suspended. Yield to the main thread in\n // case the promise is already resolved. If so, it will ping in\n // a microtask and we can resume without unwinding the stack.\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else {\n break;\n }\n }while (true);\n } // We flushed the entire queue.\n queue.length = 0;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n queue.splice(0, i + 1);\n throw error;\n } finally{\n isFlushing = false;\n }\n }\n }\n } // Some of our warnings attempt to detect if the `act` call is awaited by\n // checking in an asynchronous task. Wait a few microtasks before checking. The\n // only reason one isn't sufficient is we want to accommodate the case where an\n // `act` call is returned from an async function without first being awaited,\n // since that's a somewhat common pattern. If you do this too many times in a\n // nested sequence, you might get a warning, but you can always fix by awaiting\n // the call.\n //\n // A macrotask would also work (and is the fallback) but depending on the test\n // environment it may cause the warning to fire too late.\n var queueSeveralMicrotasks = typeof queueMicrotask === \"function\" ? function(callback) {\n queueMicrotask(function() {\n return queueMicrotask(callback);\n });\n } : enqueueTask;\n var createElement = createElementWithValidation;\n var cloneElement = cloneElementWithValidation;\n var createFactory = createFactoryWithValidation;\n var Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n };\n exports.Children = Children;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\n exports.cache = cache;\n exports.cloneElement = cloneElement;\n exports.createContext = createContext;\n exports.createElement = createElement;\n exports.createFactory = createFactory;\n exports.createRef = createRef;\n exports.forwardRef = forwardRef;\n exports.isValidElement = isValidElement;\n exports.lazy = lazy;\n exports.memo = memo;\n exports.startTransition = startTransition;\n exports.unstable_act = act;\n exports.unstable_useCacheRefresh = useCacheRefresh;\n exports.use = use;\n exports.useCallback = useCallback;\n exports.useContext = useContext;\n exports.useDebugValue = useDebugValue;\n exports.useDeferredValue = useDeferredValue;\n exports.useEffect = useEffect;\n exports.useId = useId;\n exports.useImperativeHandle = useImperativeHandle;\n exports.useInsertionEffect = useInsertionEffect;\n exports.useLayoutEffect = useLayoutEffect;\n exports.useMemo = useMemo;\n exports.useOptimistic = useOptimistic;\n exports.useReducer = useReducer;\n exports.useRef = useRef;\n exports.useState = useState;\n exports.useSyncExternalStore = useSyncExternalStore;\n exports.useTransition = useTransition;\n exports.version = ReactVersion;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== \"undefined\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === \"function\") {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n }\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztDQVFDLEdBRUQ7QUFFQSxJQUFJQSxJQUFxQyxFQUFFO0lBQ3hDO1FBRU87UUFFVix5Q0FBeUMsR0FDekMsSUFDRSxPQUFPQyxtQ0FBbUMsZUFDMUMsT0FBT0EsK0JBQStCQywyQkFBMkIsS0FDL0QsWUFDRjtZQUNBRCwrQkFBK0JDLDJCQUEyQixDQUFDLElBQUlDO1FBQ2pFO1FBQ1UsSUFBSUMsZUFBZTtRQUU3QixZQUFZO1FBQ1osd0NBQXdDO1FBQ3hDLGtGQUFrRjtRQUNsRixzREFBc0Q7UUFDdEQsSUFBSUMscUJBQXFCQyxPQUFPQyxHQUFHLENBQUM7UUFDcEMsSUFBSUMsb0JBQW9CRixPQUFPQyxHQUFHLENBQUM7UUFDbkMsSUFBSUUsc0JBQXNCSCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSUcseUJBQXlCSixPQUFPQyxHQUFHLENBQUM7UUFDeEMsSUFBSUksc0JBQXNCTCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSUssc0JBQXNCTixPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSU0scUJBQXFCUCxPQUFPQyxHQUFHLENBQUM7UUFDcEMsSUFBSU8seUJBQXlCUixPQUFPQyxHQUFHLENBQUM7UUFDeEMsSUFBSVEsc0JBQXNCVCxPQUFPQyxHQUFHLENBQUM7UUFDckMsSUFBSVMsMkJBQTJCVixPQUFPQyxHQUFHLENBQUM7UUFDMUMsSUFBSVUsa0JBQWtCWCxPQUFPQyxHQUFHLENBQUM7UUFDakMsSUFBSVcsa0JBQWtCWixPQUFPQyxHQUFHLENBQUM7UUFDakMsSUFBSVksdUJBQXVCYixPQUFPQyxHQUFHLENBQUM7UUFDdEMsSUFBSWEsbUJBQW1CZCxPQUFPQyxHQUFHLENBQUM7UUFDbEMsSUFBSWMsd0JBQXdCZixPQUFPZ0IsUUFBUTtRQUMzQyxJQUFJQyx1QkFBdUI7UUFD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N0J5Syx1QkFBdUIsR0FBR3hLO1FBQzFCd0ssZUFBZSxHQUFHdEs7UUFDbEJzSyxxQkFBcUIsR0FBR3hKO1FBQ3hCd0osa0JBQWtCLEdBQUdqTDtRQUNyQmlMLGNBQWMsR0FBRzlLO1FBQ2pCOEssZ0JBQWdCLEdBQUduTDtRQUNuQm1MLDRCQUE0QixHQUFHL0o7UUFDL0IrSixxQkFBcUIsR0FBR2xLO1FBQ3hCa0ssZUFBZSxHQUFHdGY7UUFDUix5Q0FBeUMsR0FDbkQsSUFDRSxPQUFPSCxtQ0FBbUMsZUFDMUMsT0FBT0EsK0JBQStCa2dCLDBCQUEwQixLQUM5RCxZQUNGO1lBQ0FsZ0IsK0JBQStCa2dCLDBCQUEwQixDQUFDLElBQUloZ0I7UUFDaEU7SUFFRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcz9kY2U4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgJ3VzZSBzdHJpY3QnO1xuXG4vKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG5pZiAoXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gIT09ICd1bmRlZmluZWQnICYmXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0ID09PVxuICAgICdmdW5jdGlvbidcbikge1xuICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0KG5ldyBFcnJvcigpKTtcbn1cbiAgICAgICAgICB2YXIgUmVhY3RWZXJzaW9uID0gJzE4LjMuMC1jYW5hcnktNjBhOTI3ZDA0LTIwMjQwMTEzJztcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvdmlkZXInKTtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb250ZXh0Jyk7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKTtcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5vZmZzY3JlZW4nKTtcbnZhciBSRUFDVF9DQUNIRV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY2FjaGUnKTtcbnZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxID0ge1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IENhY2hlIGRpc3BhdGNoZXIuXG4gKi9cbnZhciBSZWFjdEN1cnJlbnRDYWNoZSA9IHtcbiAgY3VycmVudDogbnVsbFxufTtcblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBiYXRjaCdzIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBob3cgbG9uZyBhbiB1cGRhdGVcbiAqIHNob3VsZCBzdXNwZW5kIGZvciBpZiBpdCBuZWVkcyB0by5cbiAqL1xudmFyIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnID0ge1xuICB0cmFuc2l0aW9uOiBudWxsXG59O1xuXG52YXIgUmVhY3RDdXJyZW50QWN0UXVldWUgPSB7XG4gIGN1cnJlbnQ6IG51bGwsXG4gIC8vIFVzZWQgdG8gcmVwcm9kdWNlIGJlaGF2aW9yIG9mIGBiYXRjaGVkVXBkYXRlc2AgaW4gbGVnYWN5IG1vZGUuXG4gIGlzQmF0Y2hpbmdMZWdhY3k6IGZhbHNlLFxuICBkaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZTogZmFsc2UsXG4gIC8vIFRyYWNrcyB3aGV0aGVyIHNvbWV0aGluZyBjYWxsZWQgYHVzZWAgZHVyaW5nIHRoZSBjdXJyZW50IGJhdGNoIG9mIHdvcmsuXG4gIC8vIERldGVybWluZXMgd2hldGhlciB3ZSBzaG91bGQgeWllbGQgdG8gbWljcm90YXNrcyB0byB1bndyYXAgYWxyZWFkeSByZXNvbHZlZFxuICAvLyBwcm9taXNlcyB3aXRob3V0IHN1c3BlbmRpbmcuXG4gIGRpZFVzZVByb21pc2U6IGZhbHNlXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IG93bmVyLlxuICpcbiAqIFRoZSBjdXJyZW50IG93bmVyIGlzIHRoZSBjb21wb25lbnQgd2hvIHNob3VsZCBvd24gYW55IGNvbXBvbmVudHMgdGhhdCBhcmVcbiAqIGN1cnJlbnRseSBiZWluZyBjb25zdHJ1Y3RlZC5cbiAqL1xudmFyIFJlYWN0Q3VycmVudE93bmVyID0ge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEB0eXBlIHtSZWFjdENvbXBvbmVudH1cbiAgICovXG4gIGN1cnJlbnQ6IG51bGxcbn07XG5cbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSB7fTtcbnZhciBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gbnVsbDtcbmZ1bmN0aW9uIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjaykge1xuICB7XG4gICAgY3VycmVudEV4dHJhU3RhY2tGcmFtZSA9IHN0YWNrO1xuICB9XG59XG5cbntcbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZSA9IGZ1bmN0aW9uIChzdGFjaykge1xuICAgIHtcbiAgICAgIGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUgPSBzdGFjaztcbiAgICB9XG4gIH07IC8vIFN0YWNrIGltcGxlbWVudGF0aW9uIGluamVjdGVkIGJ5IHRoZSBjdXJyZW50IHJlbmRlcmVyLlxuXG5cbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldEN1cnJlbnRTdGFjayA9IG51bGw7XG5cbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldFN0YWNrQWRkZW5kdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YWNrID0gJyc7IC8vIEFkZCBhbiBleHRyYSB0b3AgZnJhbWUgd2hpbGUgYW4gZWxlbWVudCBpcyBiZWluZyB2YWxpZGF0ZWRcblxuICAgIGlmIChjdXJyZW50RXh0cmFTdGFja0ZyYW1lKSB7XG4gICAgICBzdGFjayArPSBjdXJyZW50RXh0cmFTdGFja0ZyYW1lO1xuICAgIH0gLy8gRGVsZWdhdGUgdG8gdGhlIGluamVjdGVkIHJlbmRlcmVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uXG5cblxuICAgIHZhciBpbXBsID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldEN1cnJlbnRTdGFjaztcblxuICAgIGlmIChpbXBsKSB7XG4gICAgICBzdGFjayArPSBpbXBsKCkgfHwgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgZW5hYmxlU2NvcGVBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIENyZWF0ZSBFdmVudCBIYW5kbGUgQVBJLlxudmFyIGVuYWJsZUNhY2hlRWxlbWVudCA9IGZhbHNlO1xudmFyIGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nID0gZmFsc2U7IC8vIE5vIGtub3duIGJ1Z3MsIGJ1dCBuZWVkcyBwZXJmb3JtYW5jZSB0ZXN0aW5nXG5cbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXG4vLyBzdHVmZi4gSW50ZW5kZWQgdG8gZW5hYmxlIFJlYWN0IGNvcmUgbWVtYmVycyB0byBtb3JlIGVhc2lseSBkZWJ1ZyBzY2hlZHVsaW5nXG4vLyBpc3N1ZXMgaW4gREVWIGJ1aWxkcy5cblxudmFyIGVuYWJsZURlYnVnVHJhY2luZyA9IGZhbHNlO1xuXG52YXIgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSB7XG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXI6IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSxcbiAgUmVhY3RDdXJyZW50Q2FjaGU6IFJlYWN0Q3VycmVudENhY2hlLFxuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzogUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsXG4gIFJlYWN0Q3VycmVudE93bmVyOiBSZWFjdEN1cnJlbnRPd25lclxufTtcblxue1xuICBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxO1xuICBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRBY3RRdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlO1xufVxuXG4vLyBieSBjYWxscyB0byB0aGVzZSBtZXRob2RzIGJ5IGEgQmFiZWwgcGx1Z2luLlxuLy9cbi8vIEluIFBST0QgKG9yIGluIHBhY2thZ2VzIHdpdGhvdXQgYWNjZXNzIHRvIFJlYWN0IGludGVybmFscyksXG4vLyB0aGV5IGFyZSBsZWZ0IGFzIHRoZXkgYXJlIGluc3RlYWQuXG5cbmZ1bmN0aW9uIHdhcm4oZm9ybWF0KSB7XG4gIHtcbiAgICB7XG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICBwcmludFdhcm5pbmcoJ3dhcm4nLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZXJyb3IoZm9ybWF0KSB7XG4gIHtcbiAgICB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIgPiAxID8gX2xlbjIgLSAxIDogMCksIF9rZXkyID0gMTsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuXG4gICAgICBwcmludFdhcm5pbmcoJ2Vycm9yJywgZm9ybWF0LCBhcmdzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGxldmVsLCBmb3JtYXQsIGFyZ3MpIHtcbiAgLy8gV2hlbiBjaGFuZ2luZyB0aGlzIGxvZ2ljLCB5b3UgbWlnaHQgd2FudCB0byBhbHNvXG4gIC8vIHVwZGF0ZSBjb25zb2xlV2l0aFN0YWNrRGV2Lnd3dy5qcyBhcyB3ZWxsLlxuICB7XG4gICAgdmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuICAgIHZhciBzdGFjayA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSgpO1xuXG4gICAgaWYgKHN0YWNrICE9PSAnJykge1xuICAgICAgZm9ybWF0ICs9ICclcyc7XG4gICAgICBhcmdzID0gYXJncy5jb25jYXQoW3N0YWNrXSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cblxuXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBTdHJpbmcoaXRlbSk7XG4gICAgfSk7IC8vIENhcmVmdWw6IFJOIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJlZml4XG5cbiAgICBhcmdzV2l0aEZvcm1hdC51bnNoaWZ0KCdXYXJuaW5nOiAnICsgZm9ybWF0KTsgLy8gV2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2Ugc3ByZWFkIChvciAuYXBwbHkpIGRpcmVjdGx5IGJlY2F1c2UgaXRcbiAgICAvLyBicmVha3MgSUU5OiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzNjEwXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuXG4gICAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZVtsZXZlbF0sIGNvbnNvbGUsIGFyZ3NXaXRoRm9ybWF0KTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50ID0ge307XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHtcbiAgICB2YXIgX2NvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBfY29uc3RydWN0b3IgJiYgKF9jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCBfY29uc3RydWN0b3IubmFtZSkgfHwgJ1JlYWN0Q2xhc3MnO1xuICAgIHZhciB3YXJuaW5nS2V5ID0gY29tcG9uZW50TmFtZSArIFwiLlwiICsgY2FsbGVyTmFtZTtcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlcnJvcihcIkNhbid0IGNhbGwgJXMgb24gYSBjb21wb25lbnQgdGhhdCBpcyBub3QgeWV0IG1vdW50ZWQuIFwiICsgJ1RoaXMgaXMgYSBuby1vcCwgYnV0IGl0IG1pZ2h0IGluZGljYXRlIGEgYnVnIGluIHlvdXIgYXBwbGljYXRpb24uICcgKyAnSW5zdGVhZCwgYXNzaWduIHRvIGB0aGlzLnN0YXRlYCBkaXJlY3RseSBvciBkZWZpbmUgYSBgc3RhdGUgPSB7fTtgICcgKyAnY2xhc3MgcHJvcGVydHkgd2l0aCB0aGUgZGVzaXJlZCBzdGF0ZSBpbiB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldID0gdHJ1ZTtcbiAgfVxufVxuLyoqXG4gKiBUaGlzIGlzIHRoZSBhYnN0cmFjdCBBUEkgZm9yIGFuIHVwZGF0ZSBxdWV1ZS5cbiAqL1xuXG5cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGNhbGxlck5hbWUgbmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBjYWxsZXJOYW1lIG5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBjb21wbGV0ZVN0YXRlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBUaGlzIG9ubHkgZXhpc3RzIGJlY2F1c2UgX3BlbmRpbmdTdGF0ZSBpc1xuICAgKiBpbnRlcm5hbC4gVGhpcyBwcm92aWRlcyBhIG1lcmdpbmcgc3RyYXRlZ3kgdGhhdCBpcyBub3QgYXZhaWxhYmxlIHRvIGRlZXBcbiAgICogcHJvcGVydGllcyB3aGljaCBpcyBjb25mdXNpbmcuIFRPRE86IEV4cG9zZSBwZW5kaW5nU3RhdGUgb3IgZG9uJ3QgdXNlIGl0XG4gICAqIGR1cmluZyB0aGUgbWVyZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBOYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdzZXRTdGF0ZScpO1xuICB9XG59O1xuXG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxudmFyIGVtcHR5T2JqZWN0ID0ge307XG5cbntcbiAgT2JqZWN0LmZyZWV6ZShlbXB0eU9iamVjdCk7XG59XG4vKipcbiAqIEJhc2UgY2xhc3MgaGVscGVycyBmb3IgdGhlIHVwZGF0aW5nIHN0YXRlIG9mIGEgY29tcG9uZW50LlxuICovXG5cblxuZnVuY3Rpb24gQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDsgLy8gSWYgYSBjb21wb25lbnQgaGFzIHN0cmluZyByZWZzLCB3ZSB3aWxsIGFzc2lnbiBhIGRpZmZlcmVudCBvYmplY3QgbGF0ZXIuXG5cbiAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7IC8vIFdlIGluaXRpYWxpemUgdGhlIGRlZmF1bHQgdXBkYXRlciBidXQgdGhlIHJlYWwgb25lIGdldHMgaW5qZWN0ZWQgYnkgdGhlXG4gIC8vIHJlbmRlcmVyLlxuXG4gIHRoaXMudXBkYXRlciA9IHVwZGF0ZXIgfHwgUmVhY3ROb29wVXBkYXRlUXVldWU7XG59XG5cbkNvbXBvbmVudC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCA9IHt9O1xuLyoqXG4gKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gQWx3YXlzIHVzZSB0aGlzIHRvIG11dGF0ZVxuICogc3RhdGUuIFlvdSBzaG91bGQgdHJlYXQgYHRoaXMuc3RhdGVgIGFzIGltbXV0YWJsZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICogYWNjZXNzaW5nIGB0aGlzLnN0YXRlYCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIG1heSByZXR1cm4gdGhlIG9sZCB2YWx1ZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBjYWxscyB0byBgc2V0U3RhdGVgIHdpbGwgcnVuIHN5bmNocm9ub3VzbHksXG4gKiBhcyB0aGV5IG1heSBldmVudHVhbGx5IGJlIGJhdGNoZWQgdG9nZXRoZXIuICBZb3UgY2FuIHByb3ZpZGUgYW4gb3B0aW9uYWxcbiAqIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZSBjYWxsIHRvIHNldFN0YXRlIGlzIGFjdHVhbGx5XG4gKiBjb21wbGV0ZWQuXG4gKlxuICogV2hlbiBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIHRvIHNldFN0YXRlLCBpdCB3aWxsIGJlIGNhbGxlZCBhdCBzb21lIHBvaW50IGluXG4gKiB0aGUgZnV0dXJlIChub3Qgc3luY2hyb25vdXNseSkuIEl0IHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHVwIHRvIGRhdGVcbiAqIGNvbXBvbmVudCBhcmd1bWVudHMgKHN0YXRlLCBwcm9wcywgY29udGV4dCkuIFRoZXNlIHZhbHVlcyBjYW4gYmUgZGlmZmVyZW50XG4gKiBmcm9tIHRoaXMuKiBiZWNhdXNlIHlvdXIgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBhZnRlciByZWNlaXZlUHJvcHMgYnV0IGJlZm9yZVxuICogc2hvdWxkQ29tcG9uZW50VXBkYXRlLCBhbmQgdGhpcyBuZXcgc3RhdGUsIHByb3BzLCBhbmQgY29udGV4dCB3aWxsIG5vdCB5ZXQgYmVcbiAqIGFzc2lnbmVkIHRvIHRoaXMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgb3IgZnVuY3Rpb24gdG9cbiAqICAgICAgICBwcm9kdWNlIG5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBzdGF0ZSBpcyB1cGRhdGVkLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuQ29tcG9uZW50LnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9uIChwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrKSB7XG4gIGlmICh0eXBlb2YgcGFydGlhbFN0YXRlICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgcGFydGlhbFN0YXRlICE9PSAnZnVuY3Rpb24nICYmIHBhcnRpYWxTdGF0ZSAhPSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhICcgKyAnZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLicpO1xuICB9XG5cbiAgdGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLCBwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrLCAnc2V0U3RhdGUnKTtcbn07XG4vKipcbiAqIEZvcmNlcyBhbiB1cGRhdGUuIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW52b2tlZCB3aGVuIGl0IGlzIGtub3duIHdpdGhcbiAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICpcbiAqIFlvdSBtYXkgd2FudCB0byBjYWxsIHRoaXMgd2hlbiB5b3Uga25vdyB0aGF0IHNvbWUgZGVlcGVyIGFzcGVjdCBvZiB0aGVcbiAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICpcbiAqIFRoaXMgd2lsbCBub3QgaW52b2tlIGBzaG91bGRDb21wb25lbnRVcGRhdGVgLCBidXQgaXQgd2lsbCBpbnZva2VcbiAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gKlxuICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciB1cGRhdGUgaXMgY29tcGxldGUuXG4gKiBAZmluYWxcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuXG5cbkNvbXBvbmVudC5wcm90b3R5cGUuZm9yY2VVcGRhdGUgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgdGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLCBjYWxsYmFjaywgJ2ZvcmNlVXBkYXRlJyk7XG59O1xuLyoqXG4gKiBEZXByZWNhdGVkIEFQSXMuIFRoZXNlIEFQSXMgdXNlZCB0byBleGlzdCBvbiBjbGFzc2ljIFJlYWN0IGNsYXNzZXMgYnV0IHNpbmNlXG4gKiB3ZSB3b3VsZCBsaWtlIHRvIGRlcHJlY2F0ZSB0aGVtLCB3ZSdyZSBub3QgZ29pbmcgdG8gbW92ZSB0aGVtIG92ZXIgdG8gdGhpc1xuICogbW9kZXJuIGJhc2UgY2xhc3MuIEluc3RlYWQsIHdlIGRlZmluZSBhIGdldHRlciB0aGF0IHdhcm5zIGlmIGl0J3MgYWNjZXNzZWQuXG4gKi9cblxuXG57XG4gIHZhciBkZXByZWNhdGVkQVBJcyA9IHtcbiAgICBpc01vdW50ZWQ6IFsnaXNNb3VudGVkJywgJ0luc3RlYWQsIG1ha2Ugc3VyZSB0byBjbGVhbiB1cCBzdWJzY3JpcHRpb25zIGFuZCBwZW5kaW5nIHJlcXVlc3RzIGluICcgKyAnY29tcG9uZW50V2lsbFVubW91bnQgdG8gcHJldmVudCBtZW1vcnkgbGVha3MuJ10sXG4gICAgcmVwbGFjZVN0YXRlOiBbJ3JlcGxhY2VTdGF0ZScsICdSZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIHNldFN0YXRlIGluc3RlYWQgKHNlZSAnICsgJ2h0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMzIzNikuJ11cbiAgfTtcblxuICB2YXIgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nID0gZnVuY3Rpb24gKG1ldGhvZE5hbWUsIGluZm8pIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29tcG9uZW50LnByb3RvdHlwZSwgbWV0aG9kTmFtZSwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHdhcm4oJyVzKC4uLikgaXMgZGVwcmVjYXRlZCBpbiBwbGFpbiBKYXZhU2NyaXB0IFJlYWN0IGNsYXNzZXMuICVzJywgaW5mb1swXSwgaW5mb1sxXSk7XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBmb3IgKHZhciBmbk5hbWUgaW4gZGVwcmVjYXRlZEFQSXMpIHtcbiAgICBpZiAoZGVwcmVjYXRlZEFQSXMuaGFzT3duUHJvcGVydHkoZm5OYW1lKSkge1xuICAgICAgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKGZuTmFtZSwgZGVwcmVjYXRlZEFQSXNbZm5OYW1lXSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIENvbXBvbmVudER1bW15KCkge31cblxuQ29tcG9uZW50RHVtbXkucHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbi8qKlxuICogQ29udmVuaWVuY2UgY29tcG9uZW50IHdpdGggZGVmYXVsdCBzaGFsbG93IGVxdWFsaXR5IGNoZWNrIGZvciBzQ1UuXG4gKi9cblxuZnVuY3Rpb24gUHVyZUNvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7IC8vIElmIGEgY29tcG9uZW50IGhhcyBzdHJpbmcgcmVmcywgd2Ugd2lsbCBhc3NpZ24gYSBkaWZmZXJlbnQgb2JqZWN0IGxhdGVyLlxuXG4gIHRoaXMucmVmcyA9IGVtcHR5T2JqZWN0O1xuICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xufVxuXG52YXIgcHVyZUNvbXBvbmVudFByb3RvdHlwZSA9IFB1cmVDb21wb25lbnQucHJvdG90eXBlID0gbmV3IENvbXBvbmVudER1bW15KCk7XG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmNvbnN0cnVjdG9yID0gUHVyZUNvbXBvbmVudDsgLy8gQXZvaWQgYW4gZXh0cmEgcHJvdG90eXBlIGp1bXAgZm9yIHRoZXNlIG1ldGhvZHMuXG5cbmFzc2lnbihwdXJlQ29tcG9uZW50UHJvdG90eXBlLCBDb21wb25lbnQucHJvdG90eXBlKTtcbnB1cmVDb21wb25lbnRQcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQgPSB0cnVlO1xuXG4vLyBhbiBpbW11dGFibGUgb2JqZWN0IHdpdGggYSBzaW5nbGUgbXV0YWJsZSB2YWx1ZVxuZnVuY3Rpb24gY3JlYXRlUmVmKCkge1xuICB2YXIgcmVmT2JqZWN0ID0ge1xuICAgIGN1cnJlbnQ6IG51bGxcbiAgfTtcblxuICB7XG4gICAgT2JqZWN0LnNlYWwocmVmT2JqZWN0KTtcbiAgfVxuXG4gIHJldHVybiByZWZPYmplY3Q7XG59XG5cbnZhciBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcblxuZnVuY3Rpb24gaXNBcnJheShhKSB7XG4gIHJldHVybiBpc0FycmF5SW1wbChhKTtcbn1cblxuLypcbiAqIFRoZSBgJycgKyB2YWx1ZWAgcGF0dGVybiAodXNlZCBpbiBwZXJmLXNlbnNpdGl2ZSBjb2RlKSB0aHJvd3MgZm9yIFN5bWJvbFxuICogYW5kIFRlbXBvcmFsLiogdHlwZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yMjA2NC5cbiAqXG4gKiBUaGUgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIHdpbGwgdGhyb3cgYW4gZWFzaWVyLXRvLXVuZGVyc3RhbmQsXG4gKiBlYXNpZXItdG8tZGVidWcgZXhjZXB0aW9uIHdpdGggYSBjbGVhciBlcnJvcnMgbWVzc2FnZSBtZXNzYWdlIGV4cGxhaW5pbmcgdGhlXG4gKiBwcm9ibGVtLiAoSW5zdGVhZCBvZiBhIGNvbmZ1c2luZyBleGNlcHRpb24gdGhyb3duIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb25cbiAqIG9mIHRoZSBgdmFsdWVgIG9iamVjdCkuXG4gKi9cbi8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl0gb25seSBjYWxsZWQgaW4gREVWLCBzbyB2b2lkIHJldHVybiBpcyBub3QgcG9zc2libGUuXG5mdW5jdGlvbiB0eXBlTmFtZSh2YWx1ZSkge1xuICB7XG4gICAgLy8gdG9TdHJpbmdUYWcgaXMgbmVlZGVkIGZvciBuYW1lc3BhY2VkIHR5cGVzIGxpa2UgVGVtcG9yYWwuSW5zdGFudFxuICAgIHZhciBoYXNUb1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLnRvU3RyaW5nVGFnO1xuICAgIHZhciB0eXBlID0gaGFzVG9TdHJpbmdUYWcgJiYgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSB8fCB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdPYmplY3QnOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuXG5cbmZ1bmN0aW9uIHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSB7XG4gIHtcbiAgICB0cnkge1xuICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIC8vIElmIHlvdSBlbmRlZCB1cCBoZXJlIGJ5IGZvbGxvd2luZyBhbiBleGNlcHRpb24gY2FsbCBzdGFjaywgaGVyZSdzIHdoYXQnc1xuICAvLyBoYXBwZW5lZDogeW91IHN1cHBsaWVkIGFuIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gUmVhY3QgKGFzIGEgcHJvcCwga2V5LFxuICAvLyBET00gYXR0cmlidXRlLCBDU1MgcHJvcGVydHksIHN0cmluZyByZWYsIGV0Yy4pIGFuZCB3aGVuIFJlYWN0IHRyaWVkIHRvXG4gIC8vIGNvZXJjZSBpdCB0byBhIHN0cmluZyB1c2luZyBgJycgKyB2YWx1ZWAsIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAvL1xuICAvLyBUaGUgbW9zdCBjb21tb24gdHlwZXMgdGhhdCB3aWxsIGNhdXNlIHRoaXMgZXhjZXB0aW9uIGFyZSBgU3ltYm9sYCBpbnN0YW5jZXNcbiAgLy8gYW5kIFRlbXBvcmFsIG9iamVjdHMgbGlrZSBgVGVtcG9yYWwuSW5zdGFudGAuIEJ1dCBhbnkgb2JqZWN0IHRoYXQgaGFzIGFcbiAgLy8gYHZhbHVlT2ZgIG9yIGBbU3ltYm9sLnRvUHJpbWl0aXZlXWAgbWV0aG9kIHRoYXQgdGhyb3dzIHdpbGwgYWxzbyBjYXVzZSB0aGlzXG4gIC8vIGV4Y2VwdGlvbi4gKExpYnJhcnkgYXV0aG9ycyBkbyB0aGlzIHRvIHByZXZlbnQgdXNlcnMgZnJvbSB1c2luZyBidWlsdC1pblxuICAvLyBudW1lcmljIG9wZXJhdG9ycyBsaWtlIGArYCBvciBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIGA+PWAgYmVjYXVzZSBjdXN0b21cbiAgLy8gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIHBlcmZvcm0gYWNjdXJhdGUgYXJpdGhtZXRpYyBvciBjb21wYXJpc29uLilcbiAgLy9cbiAgLy8gVG8gZml4IHRoZSBwcm9ibGVtLCBjb2VyY2UgdGhpcyBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIGJlZm9yZVxuICAvLyBwYXNzaW5nIGl0IHRvIFJlYWN0LiBUaGUgbW9zdCByZWxpYWJsZSB3YXkgaXMgdXN1YWxseSBgU3RyaW5nKHZhbHVlKWAuXG4gIC8vXG4gIC8vIFRvIGZpbmQgd2hpY2ggdmFsdWUgaXMgdGhyb3dpbmcsIGNoZWNrIHRoZSBicm93c2VyIG9yIGRlYnVnZ2VyIGNvbnNvbGUuXG4gIC8vIEJlZm9yZSB0aGlzIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCB0aGVyZSBzaG91bGQgYmUgYGNvbnNvbGUuZXJyb3JgIG91dHB1dFxuICAvLyB0aGF0IHNob3dzIHRoZSB0eXBlIChTeW1ib2wsIFRlbXBvcmFsLlBsYWluRGF0ZSwgZXRjLikgdGhhdCBjYXVzZWQgdGhlXG4gIC8vIHByb2JsZW0gYW5kIGhvdyB0aGF0IHR5cGUgd2FzIHVzZWQ6IGtleSwgYXRycmlidXRlLCBpbnB1dCB2YWx1ZSBwcm9wLCBldGMuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgY29uc29sZSBvdXRwdXQgYWxzbyBzaG93cyB0aGUgY29tcG9uZW50IGFuZCBpdHNcbiAgLy8gYW5jZXN0b3IgY29tcG9uZW50cyB3aGVyZSB0aGUgZXhjZXB0aW9uIGhhcHBlbmVkLlxuICAvL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgcmV0dXJuICcnICsgdmFsdWU7XG59XG5mdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRXcmFwcGVkTmFtZShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGRpc3BsYXlOYW1lID0gb3V0ZXJUeXBlLmRpc3BsYXlOYW1lO1xuXG4gIGlmIChkaXNwbGF5TmFtZSkge1xuICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgfVxuXG4gIHZhciBmdW5jdGlvbk5hbWUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgJyc7XG4gIHJldHVybiBmdW5jdGlvbk5hbWUgIT09ICcnID8gd3JhcHBlck5hbWUgKyBcIihcIiArIGZ1bmN0aW9uTmFtZSArIFwiKVwiIDogd3JhcHBlck5hbWU7XG59IC8vIEtlZXAgaW4gc3luYyB3aXRoIHJlYWN0LXJlY29uY2lsZXIvZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlclxuXG5cbmZ1bmN0aW9uIGdldENvbnRleHROYW1lKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgJ0NvbnRleHQnO1xufVxuXG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQyID0gU3ltYm9sLmZvcigncmVhY3QuY2xpZW50LnJlZmVyZW5jZScpOyAvLyBOb3RlIHRoYXQgdGhlIHJlY29uY2lsZXIgcGFja2FnZSBzaG91bGQgZ2VuZXJhbGx5IHByZWZlciB0byB1c2UgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcigpIGluc3RlYWQuXG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIpIHtcbiAgICAgIC8vIFRPRE86IENyZWF0ZSBhIGNvbnZlbnRpb24gZm9yIG5hbWluZyBjbGllbnQgcmVmZXJlbmNlcyB3aXRoIGRlYnVnIGluZm8uXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgIHJldHVybiAnUG9ydGFsJztcblxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xuXG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG5cbiAgICBjYXNlIFJFQUNUX0NBQ0hFX1RZUEU6XG4gICAgICB7XG4gICAgICAgIHJldHVybiAnQ2FjaGUnO1xuICAgICAgfVxuXG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICB2YXIgY29udGV4dCA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShjb250ZXh0KSArICcuQ29uc3VtZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgIHZhciBwcm92aWRlciA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShwcm92aWRlci5fY29udGV4dCkgKyAnLlByb3ZpZGVyJztcblxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0V3JhcHBlZE5hbWUodHlwZSwgdHlwZS5yZW5kZXIsICdGb3J3YXJkUmVmJyk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICB2YXIgb3V0ZXJOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsO1xuXG4gICAgICAgIGlmIChvdXRlck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gb3V0ZXJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdNZW1vJztcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vICRGbG93Rml4TWVbbWV0aG9kLXVuYmluZGluZ11cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24sIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duLCBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xuXG57XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ3JlZicsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCAmJiBjb25maWcuX19zZWxmICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBjb25maWcuX19zZWxmKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnR5cGUpO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZXJyb3IoJ0NvbXBvbmVudCBcIiVzXCIgY29udGFpbnMgdGhlIHN0cmluZyByZWYgXCIlc1wiLiAnICsgJ1N1cHBvcnQgZm9yIHN0cmluZyByZWZzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiAnICsgJ1RoaXMgY2FzZSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gYW4gYXJyb3cgZnVuY3Rpb24uICcgKyAnV2UgYXNrIHlvdSB0byBtYW51YWxseSBmaXggdGhpcyBjYXNlIGJ5IHVzaW5nIHVzZVJlZigpIG9yIGNyZWF0ZVJlZigpIGluc3RlYWQuICcgKyAnTGVhcm4gbW9yZSBhYm91dCB1c2luZyByZWZzIHNhZmVseSBoZXJlOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmJywgY29tcG9uZW50TmFtZSwgY29uZmlnLnJlZik7XG5cbiAgICAgICAgZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIG5ldyBSZWFjdCBlbGVtZW50LiBUaGlzIG5vIGxvbmdlciBhZGhlcmVzIHRvXG4gKiB0aGUgY2xhc3MgcGF0dGVybiwgc28gZG8gbm90IHVzZSBuZXcgdG8gY2FsbCBpdC4gQWxzbywgaW5zdGFuY2VvZiBjaGVja1xuICogd2lsbCBub3Qgd29yay4gSW5zdGVhZCB0ZXN0ICQkdHlwZW9mIGZpZWxkIGFnYWluc3QgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIHRvIGNoZWNrXG4gKiBpZiBzb21ldGhpbmcgaXMgYSBSZWFjdCBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7Kn0gdHlwZVxuICogQHBhcmFtIHsqfSBwcm9wc1xuICogQHBhcmFtIHsqfSBrZXlcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gcmVmXG4gKiBAcGFyYW0geyp9IG93bmVyXG4gKiBAcGFyYW0geyp9IHNlbGYgQSAqdGVtcG9yYXJ5KiBoZWxwZXIgdG8gZGV0ZWN0IHBsYWNlcyB3aGVyZSBgdGhpc2AgaXNcbiAqIGRpZmZlcmVudCBmcm9tIHRoZSBgb3duZXJgIHdoZW4gUmVhY3QuY3JlYXRlRWxlbWVudCBpcyBjYWxsZWQsIHNvIHRoYXQgd2VcbiAqIGNhbiB3YXJuLiBXZSB3YW50IHRvIGdldCByaWQgb2Ygb3duZXIgYW5kIHJlcGxhY2Ugc3RyaW5nIGByZWZgcyB3aXRoIGFycm93XG4gKiBmdW5jdGlvbnMsIGFuZCBhcyBsb25nIGFzIGB0aGlzYCBhbmQgb3duZXIgYXJlIHRoZSBzYW1lLCB0aGVyZSB3aWxsIGJlIG5vXG4gKiBjaGFuZ2UgaW4gYmVoYXZpb3IuXG4gKiBAcGFyYW0geyp9IHNvdXJjZSBBbiBhbm5vdGF0aW9uIG9iamVjdCAoYWRkZWQgYnkgYSB0cmFuc3BpbGVyIG9yIG90aGVyd2lzZSlcbiAqIGluZGljYXRpbmcgZmlsZW5hbWUsIGxpbmUgbnVtYmVyLCBhbmQvb3Igb3RoZXIgaW5mb3JtYXRpb24uXG4gKiBAaW50ZXJuYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgdmFyIGVsZW1lbnQgPSB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3dzIHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAvLyBCdWlsdC1pbiBwcm9wZXJ0aWVzIHRoYXQgYmVsb25nIG9uIHRoZSBlbGVtZW50XG4gICAgdHlwZTogdHlwZSxcbiAgICBrZXk6IGtleSxcbiAgICByZWY6IHJlZixcbiAgICBwcm9wczogcHJvcHMsXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cbiAgICBfb3duZXI6IG93bmVyXG4gIH07XG5cbiAge1xuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxuICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBXZWFrTWFwIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQgaW5cbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmYWxzZVxuICAgIH0pOyAvLyBzZWxmIGFuZCBzb3VyY2UgYXJlIERFViBvbmx5IHByb3BlcnRpZXMuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNlbGZcbiAgICB9KTsgLy8gVHdvIGVsZW1lbnRzIGNyZWF0ZWQgaW4gdHdvIGRpZmZlcmVudCBwbGFjZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWRcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzb3VyY2VcbiAgICB9KTtcblxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbi8qKlxuICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgUmVhY3RFbGVtZW50IG9mIHRoZSBnaXZlbiB0eXBlLlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNjcmVhdGVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCQxKHR5cGUsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgdmFyIHByb3BOYW1lOyAvLyBSZXNlcnZlZCBuYW1lcyBhcmUgZXh0cmFjdGVkXG5cbiAgdmFyIHByb3BzID0ge307XG4gIHZhciBrZXkgPSBudWxsO1xuICB2YXIgcmVmID0gbnVsbDtcbiAgdmFyIHNlbGYgPSBudWxsO1xuICB2YXIgc291cmNlID0gbnVsbDtcblxuICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICBpZiAoaGFzVmFsaWRSZWYoY29uZmlnKSkge1xuICAgICAgcmVmID0gY29uZmlnLnJlZjtcblxuICAgICAge1xuICAgICAgICB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzVmFsaWRLZXkoY29uZmlnKSkge1xuICAgICAge1xuICAgICAgICBjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpO1xuICAgICAgfVxuXG4gICAgICBrZXkgPSAnJyArIGNvbmZpZy5rZXk7XG4gICAgfVxuXG4gICAgc2VsZiA9IGNvbmZpZy5fX3NlbGYgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjb25maWcuX19zZWxmO1xuICAgIHNvdXJjZSA9IGNvbmZpZy5fX3NvdXJjZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NvdXJjZTsgLy8gUmVtYWluaW5nIHByb3BlcnRpZXMgYXJlIGFkZGVkIHRvIGEgbmV3IHByb3BzIG9iamVjdFxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gQ2hpbGRyZW4gY2FuIGJlIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQsIGFuZCB0aG9zZSBhcmUgdHJhbnNmZXJyZWQgb250b1xuICAvLyB0aGUgbmV3bHkgYWxsb2NhdGVkIHByb3BzIG9iamVjdC5cblxuXG4gIHZhciBjaGlsZHJlbkxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggLSAyO1xuXG4gIGlmIChjaGlsZHJlbkxlbmd0aCA9PT0gMSkge1xuICAgIHByb3BzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIH0gZWxzZSBpZiAoY2hpbGRyZW5MZW5ndGggPiAxKSB7XG4gICAgdmFyIGNoaWxkQXJyYXkgPSBBcnJheShjaGlsZHJlbkxlbmd0aCk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuTGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoaWxkQXJyYXlbaV0gPSBhcmd1bWVudHNbaSArIDJdO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICAgIE9iamVjdC5mcmVlemUoY2hpbGRBcnJheSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9IC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuXG5cbiAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICB2YXIgZGVmYXVsdFByb3BzID0gdHlwZS5kZWZhdWx0UHJvcHM7XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChrZXkgfHwgcmVmKSB7XG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZikge1xuICAgICAgICBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCwgcHJvcHMpO1xufVxuZnVuY3Rpb24gY2xvbmVBbmRSZXBsYWNlS2V5KG9sZEVsZW1lbnQsIG5ld0tleSkge1xuICB2YXIgbmV3RWxlbWVudCA9IFJlYWN0RWxlbWVudChvbGRFbGVtZW50LnR5cGUsIG5ld0tleSwgb2xkRWxlbWVudC5yZWYsIG9sZEVsZW1lbnQuX3NlbGYsIG9sZEVsZW1lbnQuX3NvdXJjZSwgb2xkRWxlbWVudC5fb3duZXIsIG9sZEVsZW1lbnQucHJvcHMpO1xuICByZXR1cm4gbmV3RWxlbWVudDtcbn1cbi8qKlxuICogQ2xvbmUgYW5kIHJldHVybiBhIG5ldyBSZWFjdEVsZW1lbnQgdXNpbmcgZWxlbWVudCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2Nsb25lZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGNsb25lRWxlbWVudCQxKGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgaWYgKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIgKyBlbGVtZW50ICsgXCIuXCIpO1xuICB9XG5cbiAgdmFyIHByb3BOYW1lOyAvLyBPcmlnaW5hbCBwcm9wcyBhcmUgY29waWVkXG5cbiAgdmFyIHByb3BzID0gYXNzaWduKHt9LCBlbGVtZW50LnByb3BzKTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgdmFyIHJlZiA9IGVsZW1lbnQucmVmOyAvLyBTZWxmIGlzIHByZXNlcnZlZCBzaW5jZSB0aGUgb3duZXIgaXMgcHJlc2VydmVkLlxuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjsgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG5cbiAgdmFyIHNvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTsgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuXG4gIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH0gLy8gUmVtYWluaW5nIHByb3BlcnRpZXMgb3ZlcnJpZGUgZXhpc3RpbmcgcHJvcHNcblxuXG4gICAgdmFyIGRlZmF1bHRQcm9wcztcblxuICAgIGlmIChlbGVtZW50LnR5cGUgJiYgZWxlbWVudC50eXBlLmRlZmF1bHRQcm9wcykge1xuICAgICAgZGVmYXVsdFByb3BzID0gZWxlbWVudC50eXBlLmRlZmF1bHRQcm9wcztcbiAgICB9XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBpZiAoY29uZmlnW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkICYmIGRlZmF1bHRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IC8vIENoaWxkcmVuIGNhbiBiZSBtb3JlIHRoYW4gb25lIGFyZ3VtZW50LCBhbmQgdGhvc2UgYXJlIHRyYW5zZmVycmVkIG9udG9cbiAgLy8gdGhlIG5ld2x5IGFsbG9jYXRlZCBwcm9wcyBvYmplY3QuXG5cblxuICB2YXIgY2hpbGRyZW5MZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcblxuICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHtcbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB9IGVsc2UgaWYgKGNoaWxkcmVuTGVuZ3RoID4gMSkge1xuICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGlsZEFycmF5W2ldID0gYXJndW1lbnRzW2kgKyAyXTtcbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH1cblxuICByZXR1cm4gUmVhY3RFbGVtZW50KGVsZW1lbnQudHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgb3duZXIsIHByb3BzKTtcbn1cbi8qKlxuICogVmVyaWZpZXMgdGhlIG9iamVjdCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjaXN2YWxpZGVsZW1lbnRcbiAqIEBwYXJhbSB7P29iamVjdH0gb2JqZWN0XG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIGBvYmplY3RgIGlzIGEgUmVhY3RFbGVtZW50LlxuICogQGZpbmFsXG4gKi9cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5cbnZhciBTRVBBUkFUT1IgPSAnLic7XG52YXIgU1VCU0VQQVJBVE9SID0gJzonO1xuLyoqXG4gKiBFc2NhcGUgYW5kIHdyYXAga2V5IHNvIGl0IGlzIHNhZmUgdG8gdXNlIGFzIGEgcmVhY3RpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdG8gYmUgZXNjYXBlZC5cbiAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVzY2FwZWQga2V5LlxuICovXG5cbmZ1bmN0aW9uIGVzY2FwZShrZXkpIHtcbiAgdmFyIGVzY2FwZVJlZ2V4ID0gL1s9Ol0vZztcbiAgdmFyIGVzY2FwZXJMb29rdXAgPSB7XG4gICAgJz0nOiAnPTAnLFxuICAgICc6JzogJz0yJ1xuICB9O1xuICB2YXIgZXNjYXBlZFN0cmluZyA9IGtleS5yZXBsYWNlKGVzY2FwZVJlZ2V4LCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICByZXR1cm4gZXNjYXBlckxvb2t1cFttYXRjaF07XG4gIH0pO1xuICByZXR1cm4gJyQnICsgZXNjYXBlZFN0cmluZztcbn1cbi8qKlxuICogVE9ETzogVGVzdCB0aGF0IGEgc2luZ2xlIGNoaWxkIGFuZCBhbiBhcnJheSB3aXRoIG9uZSBpdGVtIGhhdmUgdGhlIHNhbWUga2V5XG4gKiBwYXR0ZXJuLlxuICovXG5cblxudmFyIGRpZFdhcm5BYm91dE1hcHMgPSBmYWxzZTtcbnZhciB1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCA9IC9cXC8rL2c7XG5cbmZ1bmN0aW9uIGVzY2FwZVVzZXJQcm92aWRlZEtleSh0ZXh0KSB7XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsICckJi8nKTtcbn1cbi8qKlxuICogR2VuZXJhdGUgYSBrZXkgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyBhIGVsZW1lbnQgd2l0aGluIGEgc2V0LlxuICpcbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBBIGVsZW1lbnQgdGhhdCBjb3VsZCBjb250YWluIGEgbWFudWFsIGtleS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCB0aGF0IGlzIHVzZWQgaWYgYSBtYW51YWwga2V5IGlzIG5vdCBwcm92aWRlZC5cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldEVsZW1lbnRLZXkoZWxlbWVudCwgaW5kZXgpIHtcbiAgLy8gRG8gc29tZSB0eXBlY2hlY2tpbmcgaGVyZSBzaW5jZSB3ZSBjYWxsIHRoaXMgYmxpbmRseS4gV2Ugd2FudCB0byBlbnN1cmVcbiAgLy8gdGhhdCB3ZSBkb24ndCBibG9jayBwb3RlbnRpYWwgZnV0dXJlIEVTIEFQSXMuXG4gIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ29iamVjdCcgJiYgZWxlbWVudCAhPT0gbnVsbCAmJiBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgLy8gRXhwbGljaXQga2V5XG4gICAge1xuICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihlbGVtZW50LmtleSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVzY2FwZSgnJyArIGVsZW1lbnQua2V5KTtcbiAgfSAvLyBJbXBsaWNpdCBrZXkgZGV0ZXJtaW5lZCBieSB0aGUgaW5kZXggaW4gdGhlIHNldFxuXG5cbiAgcmV0dXJuIGluZGV4LnRvU3RyaW5nKDM2KTtcbn1cblxuZnVuY3Rpb24gbWFwSW50b0FycmF5KGNoaWxkcmVuLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgbmFtZVNvRmFyLCBjYWxsYmFjaykge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBjaGlsZHJlbjtcblxuICBpZiAodHlwZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gQWxsIG9mIHRoZSBhYm92ZSBhcmUgcGVyY2VpdmVkIGFzIG51bGwuXG4gICAgY2hpbGRyZW4gPSBudWxsO1xuICB9XG5cbiAgdmFyIGludm9rZUNhbGxiYWNrID0gZmFsc2U7XG5cbiAgaWYgKGNoaWxkcmVuID09PSBudWxsKSB7XG4gICAgaW52b2tlQ2FsbGJhY2sgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIHN3aXRjaCAoY2hpbGRyZW4uJCR0eXBlb2YpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2sgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBpZiAoaW52b2tlQ2FsbGJhY2spIHtcbiAgICB2YXIgX2NoaWxkID0gY2hpbGRyZW47XG4gICAgdmFyIG1hcHBlZENoaWxkID0gY2FsbGJhY2soX2NoaWxkKTsgLy8gSWYgaXQncyB0aGUgb25seSBjaGlsZCwgdHJlYXQgdGhlIG5hbWUgYXMgaWYgaXQgd2FzIHdyYXBwZWQgaW4gYW4gYXJyYXlcbiAgICAvLyBzbyB0aGF0IGl0J3MgY29uc2lzdGVudCBpZiB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGdyb3dzOlxuXG4gICAgdmFyIGNoaWxkS2V5ID0gbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiArIGdldEVsZW1lbnRLZXkoX2NoaWxkLCAwKSA6IG5hbWVTb0ZhcjtcblxuICAgIGlmIChpc0FycmF5KG1hcHBlZENoaWxkKSkge1xuICAgICAgdmFyIGVzY2FwZWRDaGlsZEtleSA9ICcnO1xuXG4gICAgICBpZiAoY2hpbGRLZXkgIT0gbnVsbCkge1xuICAgICAgICBlc2NhcGVkQ2hpbGRLZXkgPSBlc2NhcGVVc2VyUHJvdmlkZWRLZXkoY2hpbGRLZXkpICsgJy8nO1xuICAgICAgfVxuXG4gICAgICBtYXBJbnRvQXJyYXkobWFwcGVkQ2hpbGQsIGFycmF5LCBlc2NhcGVkQ2hpbGRLZXksICcnLCBmdW5jdGlvbiAoYykge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAobWFwcGVkQ2hpbGQgIT0gbnVsbCkge1xuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KG1hcHBlZENoaWxkKSkge1xuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhlIGBpZmAgc3RhdGVtZW50IGhlcmUgcHJldmVudHMgYXV0by1kaXNhYmxpbmcgb2YgdGhlIHNhZmVcbiAgICAgICAgICAvLyBjb2VyY2lvbiBFU0xpbnQgcnVsZSwgc28gd2UgbXVzdCBtYW51YWxseSBkaXNhYmxlIGl0IGJlbG93LlxuICAgICAgICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgICBpZiAobWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkpIHtcbiAgICAgICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWFwcGVkQ2hpbGQua2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBtYXBwZWRDaGlsZCA9IGNsb25lQW5kUmVwbGFjZUtleShtYXBwZWRDaGlsZCwgLy8gS2VlcCBib3RoIHRoZSAobWFwcGVkKSBhbmQgb2xkIGtleXMgaWYgdGhleSBkaWZmZXIsIGp1c3QgYXNcbiAgICAgICAgLy8gdHJhdmVyc2VBbGxDaGlsZHJlbiB1c2VkIHRvIGRvIGZvciBvYmplY3RzIGFzIGNoaWxkcmVuXG4gICAgICAgIGVzY2FwZWRQcmVmaXggKyAoIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgbWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkgPyBlc2NhcGVVc2VyUHJvdmlkZWRLZXkoIC8vICRGbG93Rml4TWVbdW5zYWZlLWFkZGl0aW9uXVxuICAgICAgICAnJyArIG1hcHBlZENoaWxkLmtleSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICAgICkgKyAnLycgOiAnJykgKyBjaGlsZEtleSk7XG4gICAgICB9XG5cbiAgICAgIGFycmF5LnB1c2gobWFwcGVkQ2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuXG4gIHZhciBuZXh0TmFtZVByZWZpeCA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgOiBuYW1lU29GYXIgKyBTVUJTRVBBUkFUT1I7XG5cbiAgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgaXRlcmFibGVDaGlsZHJlbiA9IGNoaWxkcmVuO1xuXG4gICAgICB7XG4gICAgICAgIC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuICAgICAgICBpZiAoaXRlcmF0b3JGbiA9PT0gaXRlcmFibGVDaGlsZHJlbi5lbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgICB3YXJuKCdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoaXRlcmFibGVDaGlsZHJlbik7XG4gICAgICB2YXIgc3RlcDtcbiAgICAgIHZhciBpaSA9IDA7IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV0gYGl0ZXJhdG9yRm5gIG1pZ2h0IHJldHVybiBudWxsIGFjY29yZGluZyB0byB0eXBpbmcuXG5cbiAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0RWxlbWVudEtleShjaGlsZCwgaWkrKyk7XG4gICAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgICAgdmFyIGNoaWxkcmVuU3RyaW5nID0gU3RyaW5nKGNoaWxkcmVuKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nKSArIFwiKS4gXCIgKyAnSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSAnICsgJ2luc3RlYWQuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN1YnRyZWVDb3VudDtcbn1cbi8qKlxuICogTWFwcyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVubWFwXG4gKlxuICogVGhlIHByb3ZpZGVkIG1hcEZ1bmN0aW9uKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZ1bmMgVGhlIG1hcCBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBDb250ZXh0IGZvciBtYXBGdW5jdGlvbi5cbiAqIEByZXR1cm4ge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIG9yZGVyZWQgbWFwIG9mIHJlc3VsdHMuXG4gKi9cblxuXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIC8vICRGbG93Rml4TWUgbGltaXRhdGlvbiByZWZpbmluZyBhYnN0cmFjdCB0eXBlcyBpbiBGbG93XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG5cbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgY291bnQgPSAwO1xuICBtYXBJbnRvQXJyYXkoY2hpbGRyZW4sIHJlc3VsdCwgJycsICcnLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICByZXR1cm4gZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBjb3VudCsrKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4vKipcbiAqIENvdW50IHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhc1xuICogYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5jb3VudFxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgbnVtYmVyIG9mIGNoaWxkcmVuLlxuICovXG5cblxuZnVuY3Rpb24gY291bnRDaGlsZHJlbihjaGlsZHJlbikge1xuICB2YXIgbiA9IDA7XG4gIG1hcENoaWxkcmVuKGNoaWxkcmVuLCBmdW5jdGlvbiAoKSB7XG4gICAgbisrOyAvLyBEb24ndCByZXR1cm4gYW55dGhpbmdcbiAgfSk7XG4gIHJldHVybiBuO1xufVxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5mb3JlYWNoXG4gKlxuICogVGhlIHByb3ZpZGVkIGZvckVhY2hGdW5jKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZvckVhY2hGdW5jXG4gKiBAcGFyYW0geyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgZm9yIGZvckVhY2hDb250ZXh0LlxuICovXG5cblxuZnVuY3Rpb24gZm9yRWFjaENoaWxkcmVuKGNoaWxkcmVuLCBmb3JFYWNoRnVuYywgZm9yRWFjaENvbnRleHQpIHtcbiAgbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIC8vICRGbG93Rml4TWVbbWlzc2luZy10aGlzLWFubm90XVxuICBmdW5jdGlvbiAoKSB7XG4gICAgZm9yRWFjaEZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nLlxuICB9LCBmb3JFYWNoQ29udGV4dCk7XG59XG4vKipcbiAqIEZsYXR0ZW4gYSBjaGlsZHJlbiBvYmplY3QgKHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYCkgYW5kXG4gKiByZXR1cm4gYW4gYXJyYXkgd2l0aCBhcHByb3ByaWF0ZWx5IHJlLWtleWVkIGNoaWxkcmVuLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbnRvYXJyYXlcbiAqL1xuXG5cbmZ1bmN0aW9uIHRvQXJyYXkoY2hpbGRyZW4pIHtcbiAgcmV0dXJuIG1hcENoaWxkcmVuKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICByZXR1cm4gY2hpbGQ7XG4gIH0pIHx8IFtdO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBjaGlsZCBpbiBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4gYW5kIHZlcmlmaWVzIHRoYXQgdGhlcmVcbiAqIGlzIG9ubHkgb25lIGNoaWxkIGluIHRoZSBjb2xsZWN0aW9uLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm9ubHlcbiAqXG4gKiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCBhIHNpbmdsZSBjaGlsZCBnZXRzXG4gKiBwYXNzZWQgd2l0aG91dCBhIHdyYXBwZXIsIGJ1dCB0aGUgcHVycG9zZSBvZiB0aGlzIGhlbHBlciBmdW5jdGlvbiBpcyB0b1xuICogYWJzdHJhY3QgYXdheSB0aGUgcGFydGljdWxhciBzdHJ1Y3R1cmUgb2YgY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHs/b2JqZWN0fSBjaGlsZHJlbiBDaGlsZCBjb2xsZWN0aW9uIHN0cnVjdHVyZS5cbiAqIEByZXR1cm4ge1JlYWN0RWxlbWVudH0gVGhlIGZpcnN0IGFuZCBvbmx5IGBSZWFjdEVsZW1lbnRgIGNvbnRhaW5lZCBpbiB0aGVcbiAqIHN0cnVjdHVyZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIG9ubHlDaGlsZChjaGlsZHJlbikge1xuICBpZiAoIWlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuJyk7XG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQoZGVmYXVsdFZhbHVlKSB7XG4gIC8vIFRPRE86IFNlY29uZCBhcmd1bWVudCB1c2VkIHRvIGJlIGFuIG9wdGlvbmFsIGBjYWxjdWxhdGVDaGFuZ2VkQml0c2BcbiAgLy8gZnVuY3Rpb24uIFdhcm4gdG8gcmVzZXJ2ZSBmb3IgZnV0dXJlIHVzZT9cbiAgdmFyIGNvbnRleHQgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlRFWFRfVFlQRSxcbiAgICAvLyBBcyBhIHdvcmthcm91bmQgdG8gc3VwcG9ydCBtdWx0aXBsZSBjb25jdXJyZW50IHJlbmRlcmVycywgd2UgY2F0ZWdvcml6ZVxuICAgIC8vIHNvbWUgcmVuZGVyZXJzIGFzIHByaW1hcnkgYW5kIG90aGVycyBhcyBzZWNvbmRhcnkuIFdlIG9ubHkgZXhwZWN0XG4gICAgLy8gdGhlcmUgdG8gYmUgdHdvIGNvbmN1cnJlbnQgcmVuZGVyZXJzIGF0IG1vc3Q6IFJlYWN0IE5hdGl2ZSAocHJpbWFyeSkgYW5kXG4gICAgLy8gRmFicmljIChzZWNvbmRhcnkpOyBSZWFjdCBET00gKHByaW1hcnkpIGFuZCBSZWFjdCBBUlQgKHNlY29uZGFyeSkuXG4gICAgLy8gU2Vjb25kYXJ5IHJlbmRlcmVycyBzdG9yZSB0aGVpciBjb250ZXh0IHZhbHVlcyBvbiBzZXBhcmF0ZSBmaWVsZHMuXG4gICAgX2N1cnJlbnRWYWx1ZTogZGVmYXVsdFZhbHVlLFxuICAgIF9jdXJyZW50VmFsdWUyOiBkZWZhdWx0VmFsdWUsXG4gICAgLy8gVXNlZCB0byB0cmFjayBob3cgbWFueSBjb25jdXJyZW50IHJlbmRlcmVycyB0aGlzIGNvbnRleHQgY3VycmVudGx5XG4gICAgLy8gc3VwcG9ydHMgd2l0aGluIGluIGEgc2luZ2xlIHJlbmRlcmVyLiBTdWNoIGFzIHBhcmFsbGVsIHNlcnZlciByZW5kZXJpbmcuXG4gICAgX3RocmVhZENvdW50OiAwLFxuICAgIC8vIFRoZXNlIGFyZSBjaXJjdWxhclxuICAgIFByb3ZpZGVyOiBudWxsLFxuICAgIENvbnN1bWVyOiBudWxsLFxuICAgIC8vIEFkZCB0aGVzZSB0byB1c2Ugc2FtZSBoaWRkZW4gY2xhc3MgaW4gVk0gYXMgU2VydmVyQ29udGV4dFxuICAgIF9kZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgX2dsb2JhbE5hbWU6IG51bGxcbiAgfTtcbiAgY29udGV4dC5Qcm92aWRlciA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfUFJPVklERVJfVFlQRSxcbiAgICBfY29udGV4dDogY29udGV4dFxuICB9O1xuICB2YXIgaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMgPSBmYWxzZTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0VXNpbmdDb25zdW1lclByb3ZpZGVyID0gZmFsc2U7XG4gIHZhciBoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lciA9IGZhbHNlO1xuXG4gIHtcbiAgICAvLyBBIHNlcGFyYXRlIG9iamVjdCwgYnV0IHByb3hpZXMgYmFjayB0byB0aGUgb3JpZ2luYWwgY29udGV4dCBvYmplY3QgZm9yXG4gICAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIEl0IGhhcyBhIGRpZmZlcmVudCAkJHR5cGVvZiwgc28gd2UgY2FuIHByb3Blcmx5XG4gICAgLy8gd2FybiBmb3IgdGhlIGluY29ycmVjdCB1c2FnZSBvZiBDb250ZXh0IGFzIGEgQ29uc3VtZXIuXG4gICAgdmFyIENvbnN1bWVyID0ge1xuICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlRFWFRfVFlQRSxcbiAgICAgIF9jb250ZXh0OiBjb250ZXh0XG4gICAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddOiBGbG93IGNvbXBsYWlucyBhYm91dCBub3Qgc2V0dGluZyBhIHZhbHVlLCB3aGljaCBpcyBpbnRlbnRpb25hbCBoZXJlXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhDb25zdW1lciwge1xuICAgICAgUHJvdmlkZXI6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXJQcm92aWRlcikge1xuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIgPSB0cnVlO1xuXG4gICAgICAgICAgICBlcnJvcignUmVuZGVyaW5nIDxDb250ZXh0LkNvbnN1bWVyLlByb3ZpZGVyPiBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gJyArICdhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gcmVuZGVyIDxDb250ZXh0LlByb3ZpZGVyPiBpbnN0ZWFkPycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250ZXh0LlByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfUHJvdmlkZXIpIHtcbiAgICAgICAgICBjb250ZXh0LlByb3ZpZGVyID0gX1Byb3ZpZGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2N1cnJlbnRWYWx1ZToge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fY3VycmVudFZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gX2N1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jdXJyZW50VmFsdWUyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0Ll9jdXJyZW50VmFsdWUyO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfY3VycmVudFZhbHVlMikge1xuICAgICAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTIgPSBfY3VycmVudFZhbHVlMjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF90aHJlYWRDb3VudDoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fdGhyZWFkQ291bnQ7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF90aHJlYWRDb3VudCkge1xuICAgICAgICAgIGNvbnRleHQuX3RocmVhZENvdW50ID0gX3RocmVhZENvdW50O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQ29uc3VtZXI6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycykge1xuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMgPSB0cnVlO1xuXG4gICAgICAgICAgICBlcnJvcignUmVuZGVyaW5nIDxDb250ZXh0LkNvbnN1bWVyLkNvbnN1bWVyPiBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gJyArICdhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gcmVuZGVyIDxDb250ZXh0LkNvbnN1bWVyPiBpbnN0ZWFkPycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250ZXh0LkNvbnN1bWVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGlzcGxheU5hbWU6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuZGlzcGxheU5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKGRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lcikge1xuICAgICAgICAgICAgd2FybignU2V0dGluZyBgZGlzcGxheU5hbWVgIG9uIENvbnRleHQuQ29uc3VtZXIgaGFzIG5vIGVmZmVjdC4gJyArIFwiWW91IHNob3VsZCBzZXQgaXQgZGlyZWN0bHkgb24gdGhlIGNvbnRleHQgd2l0aCBDb250ZXh0LmRpc3BsYXlOYW1lID0gJyVzJy5cIiwgZGlzcGxheU5hbWUpO1xuXG4gICAgICAgICAgICBoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lciA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXTogRmxvdyBjb21wbGFpbnMgYWJvdXQgbWlzc2luZyBwcm9wZXJ0aWVzIGJlY2F1c2UgaXQgZG9lc24ndCB1bmRlcnN0YW5kIGRlZmluZVByb3BlcnR5XG5cbiAgICBjb250ZXh0LkNvbnN1bWVyID0gQ29uc3VtZXI7XG4gIH1cblxuICB7XG4gICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyID0gbnVsbDtcbiAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIyID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0O1xufVxuXG52YXIgVW5pbml0aWFsaXplZCA9IC0xO1xudmFyIFBlbmRpbmcgPSAwO1xudmFyIFJlc29sdmVkID0gMTtcbnZhciBSZWplY3RlZCA9IDI7XG5cbmZ1bmN0aW9uIGxhenlJbml0aWFsaXplcihwYXlsb2FkKSB7XG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICB2YXIgY3RvciA9IHBheWxvYWQuX3Jlc3VsdDtcbiAgICB2YXIgdGhlbmFibGUgPSBjdG9yKCk7IC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgLy8gVGhpcyBtaWdodCB0aHJvdyBlaXRoZXIgYmVjYXVzZSBpdCdzIG1pc3Npbmcgb3IgdGhyb3dzLiBJZiBzbywgd2UgdHJlYXQgaXRcbiAgICAvLyBhcyBzdGlsbCB1bmluaXRpYWxpemVkIGFuZCB0cnkgYWdhaW4gbmV4dCB0aW1lLiBXaGljaCBpcyB0aGUgc2FtZSBhcyB3aGF0XG4gICAgLy8gaGFwcGVucyBpZiB0aGUgY3RvciBvciBhbnkgd3JhcHBlcnMgcHJvY2Vzc2luZyB0aGUgY3RvciB0aHJvd3MuIFRoaXMgbWlnaHRcbiAgICAvLyBlbmQgdXAgZml4aW5nIGl0IGlmIHRoZSByZXNvbHV0aW9uIHdhcyBhIGNvbmN1cnJlbmN5IGJ1Zy5cblxuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlc29sdmVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVzb2x2ZWQuX3N0YXR1cyA9IFJlc29sdmVkO1xuICAgICAgICByZXNvbHZlZC5fcmVzdWx0ID0gbW9kdWxlT2JqZWN0O1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlamVjdGVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVqZWN0ZWQuX3N0YXR1cyA9IFJlamVjdGVkO1xuICAgICAgICByZWplY3RlZC5fcmVzdWx0ID0gZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBVbmluaXRpYWxpemVkKSB7XG4gICAgICAvLyBJbiBjYXNlLCB3ZSdyZSBzdGlsbCB1bmluaXRpYWxpemVkLCB0aGVuIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSB0aGVuYWJsZVxuICAgICAgLy8gdG8gcmVzb2x2ZS4gU2V0IGl0IGFzIHBlbmRpbmcgaW4gdGhlIG1lYW50aW1lLlxuICAgICAgdmFyIHBlbmRpbmcgPSBwYXlsb2FkO1xuICAgICAgcGVuZGluZy5fc3RhdHVzID0gUGVuZGluZztcbiAgICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFJlc29sdmVkKSB7XG4gICAgdmFyIG1vZHVsZU9iamVjdCA9IHBheWxvYWQuX3Jlc3VsdDtcblxuICAgIHtcbiAgICAgIGlmIChtb2R1bGVPYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wJyArICdvcnQoKSBjYWxsLiAnICsgJ0luc3RlYWQgcmVjZWl2ZWQ6ICVzXFxuXFxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxcbiAgJyArIC8vIEJyZWFrIHVwIGltcG9ydHMgdG8gYXZvaWQgYWNjaWRlbnRhbGx5IHBhcnNpbmcgdGhlbSBhcyBkZXBlbmRlbmNpZXMuXG4gICAgICAgICdjb25zdCBNeUNvbXBvbmVudCA9IGxhenkoKCkgPT4gaW1wJyArIFwib3J0KCcuL015Q29tcG9uZW50JykpXFxuXFxuXCIgKyAnRGlkIHlvdSBhY2NpZGVudGFsbHkgcHV0IGN1cmx5IGJyYWNlcyBhcm91bmQgdGhlIGltcG9ydD8nLCBtb2R1bGVPYmplY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICghKCdkZWZhdWx0JyBpbiBtb2R1bGVPYmplY3QpKSB7XG4gICAgICAgIGVycm9yKCdsYXp5OiBFeHBlY3RlZCB0aGUgcmVzdWx0IG9mIGEgZHluYW1pYyBpbXAnICsgJ29ydCgpIGNhbGwuICcgKyAnSW5zdGVhZCByZWNlaXZlZDogJXNcXG5cXG5Zb3VyIGNvZGUgc2hvdWxkIGxvb2sgbGlrZTogXFxuICAnICsgLy8gQnJlYWsgdXAgaW1wb3J0cyB0byBhdm9pZCBhY2NpZGVudGFsbHkgcGFyc2luZyB0aGVtIGFzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlT2JqZWN0LmRlZmF1bHQ7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgcGF5bG9hZC5fcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGxhenkoY3Rvcikge1xuICB2YXIgcGF5bG9hZCA9IHtcbiAgICAvLyBXZSB1c2UgdGhlc2UgZmllbGRzIHRvIHN0b3JlIHRoZSByZXN1bHQuXG4gICAgX3N0YXR1czogVW5pbml0aWFsaXplZCxcbiAgICBfcmVzdWx0OiBjdG9yXG4gIH07XG4gIHZhciBsYXp5VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTEFaWV9UWVBFLFxuICAgIF9wYXlsb2FkOiBwYXlsb2FkLFxuICAgIF9pbml0OiBsYXp5SW5pdGlhbGl6ZXJcbiAgfTtcblxuICB7XG4gICAgLy8gSW4gcHJvZHVjdGlvbiwgdGhpcyB3b3VsZCBqdXN0IHNldCBpdCBvbiB0aGUgb2JqZWN0LlxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG4gICAgdmFyIHByb3BUeXBlczsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsYXp5VHlwZSwge1xuICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRQcm9wcztcbiAgICAgICAgfSxcbiAgICAgICAgLy8gJEZsb3dGaXhNZVttaXNzaW5nLWxvY2FsLWFubm90XVxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChuZXdEZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QubGF6eSguLi4pOiBJdCBpcyBub3Qgc3VwcG9ydGVkIHRvIGFzc2lnbiBgZGVmYXVsdFByb3BzYCB0byAnICsgJ2EgbGF6eSBjb21wb25lbnQgaW1wb3J0LiBFaXRoZXIgc3BlY2lmeSB0aGVtIHdoZXJlIHRoZSBjb21wb25lbnQgJyArICdpcyBkZWZpbmVkLCBvciBjcmVhdGUgYSB3cmFwcGluZyBjb21wb25lbnQgYXJvdW5kIGl0LicpO1xuXG4gICAgICAgICAgZGVmYXVsdFByb3BzID0gbmV3RGVmYXVsdFByb3BzOyAvLyBNYXRjaCBwcm9kdWN0aW9uIGJlaGF2aW9yIG1vcmUgY2xvc2VseTpcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5VHlwZSwgJ2RlZmF1bHRQcm9wcycsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByb3BUeXBlczoge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBwcm9wVHlwZXM7XG4gICAgICAgIH0sXG4gICAgICAgIC8vICRGbG93Rml4TWVbbWlzc2luZy1sb2NhbC1hbm5vdF1cbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3UHJvcFR5cGVzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYHByb3BUeXBlc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIHByb3BUeXBlcyA9IG5ld1Byb3BUeXBlczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobGF6eVR5cGUsICdwcm9wVHlwZXMnLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBsYXp5VHlwZTtcbn1cblxuZnVuY3Rpb24gZm9yd2FyZFJlZihyZW5kZXIpIHtcbiAge1xuICAgIGlmIChyZW5kZXIgIT0gbnVsbCAmJiByZW5kZXIuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkge1xuICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVxdWlyZXMgYSByZW5kZXIgZnVuY3Rpb24gYnV0IHJlY2VpdmVkIGEgYG1lbW9gICcgKyAnY29tcG9uZW50LiBJbnN0ZWFkIG9mIGZvcndhcmRSZWYobWVtbyguLi4pKSwgdXNlICcgKyAnbWVtbyhmb3J3YXJkUmVmKC4uLikpLicpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlbmRlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVxdWlyZXMgYSByZW5kZXIgZnVuY3Rpb24gYnV0IHdhcyBnaXZlbiAlcy4nLCByZW5kZXIgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgcmVuZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlbmRlci5sZW5ndGggIT09IDAgJiYgcmVuZGVyLmxlbmd0aCAhPT0gMikge1xuICAgICAgICBlcnJvcignZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGFjY2VwdCBleGFjdGx5IHR3byBwYXJhbWV0ZXJzOiBwcm9wcyBhbmQgcmVmLiAlcycsIHJlbmRlci5sZW5ndGggPT09IDEgPyAnRGlkIHlvdSBmb3JnZXQgdG8gdXNlIHRoZSByZWYgcGFyYW1ldGVyPycgOiAnQW55IGFkZGl0aW9uYWwgcGFyYW1ldGVyIHdpbGwgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZW5kZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHJlbmRlci5kZWZhdWx0UHJvcHMgIT0gbnVsbCB8fCByZW5kZXIucHJvcFR5cGVzICE9IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBkbyBub3Qgc3VwcG9ydCBwcm9wVHlwZXMgb3IgZGVmYXVsdFByb3BzLiAnICsgJ0RpZCB5b3UgYWNjaWRlbnRhbGx5IHBhc3MgYSBSZWFjdCBjb21wb25lbnQ/Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGVsZW1lbnRUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLFxuICAgIHJlbmRlcjogcmVuZGVyXG4gIH07XG5cbiAge1xuICAgIHZhciBvd25OYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgJ2Rpc3BsYXlOYW1lJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG93bk5hbWU7XG4gICAgICB9LFxuICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBvd25OYW1lID0gbmFtZTsgLy8gVGhlIGlubmVyIGNvbXBvbmVudCBzaG91bGRuJ3QgaW5oZXJpdCB0aGlzIGRpc3BsYXkgbmFtZSBpbiBtb3N0IGNhc2VzLFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBjb21wb25lbnQgbWF5IGJlIHVzZWQgZWxzZXdoZXJlLlxuICAgICAgICAvLyBCdXQgaXQncyBuaWNlIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zIHRvIGluaGVyaXQgdGhlIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgb3VyIGNvbXBvbmVudC1zdGFjayBnZW5lcmF0aW9uIGxvZ2ljIHdpbGwgZGlzcGxheSB0aGVpciBmcmFtZXMuXG4gICAgICAgIC8vIEFuIGFub255bW91cyBmdW5jdGlvbiBnZW5lcmFsbHkgc3VnZ2VzdHMgYSBwYXR0ZXJuIGxpa2U6XG4gICAgICAgIC8vICAgUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4gey4uLn0pO1xuICAgICAgICAvLyBUaGlzIGtpbmQgb2YgaW5uZXIgZnVuY3Rpb24gaXMgbm90IHVzZWQgZWxzZXdoZXJlIHNvIHRoZSBzaWRlIGVmZmVjdCBpcyBva2F5LlxuXG4gICAgICAgIGlmICghcmVuZGVyLm5hbWUgJiYgIXJlbmRlci5kaXNwbGF5TmFtZSkge1xuICAgICAgICAgIHJlbmRlci5kaXNwbGF5TmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50VHlwZTtcbn1cblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBOb3RlOiB0eXBlb2YgbWlnaHQgYmUgb3RoZXIgdGhhbiAnc3ltYm9sJyBvciAnbnVtYmVyJyAoZS5nLiBpZiBpdCdzIGEgcG9seWZpbGwpLlxuXG5cbiAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCBlbmFibGVEZWJ1Z1RyYWNpbmcgIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgZW5hYmxlTGVnYWN5SGlkZGVuICB8fCB0eXBlID09PSBSRUFDVF9PRkZTQ1JFRU5fVFlQRSB8fCBlbmFibGVTY29wZUFQSSAgfHwgZW5hYmxlQ2FjaGVFbGVtZW50ICB8fCBlbmFibGVUcmFuc2l0aW9uVHJhY2luZyApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gVGhpcyBuZWVkcyB0byBpbmNsdWRlIGFsbCBwb3NzaWJsZSBtb2R1bGUgcmVmZXJlbmNlIG9iamVjdFxuICAgIC8vIHR5cGVzIHN1cHBvcnRlZCBieSBhbnkgRmxpZ2h0IGNvbmZpZ3VyYXRpb24gYW55d2hlcmUgc2luY2VcbiAgICAvLyB3ZSBkb24ndCBrbm93IHdoaWNoIEZsaWdodCBidWlsZCB0aGlzIHdpbGwgZW5kIHVwIGJlaW5nIHVzZWRcbiAgICAvLyB3aXRoLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSB8fCB0eXBlLmdldE1vZHVsZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbWVtbyh0eXBlLCBjb21wYXJlKSB7XG4gIHtcbiAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSkge1xuICAgICAgZXJyb3IoJ21lbW86IFRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgY29tcG9uZW50LiBJbnN0ZWFkICcgKyAncmVjZWl2ZWQ6ICVzJywgdHlwZSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiB0eXBlKTtcbiAgICB9XG4gIH1cblxuICB2YXIgZWxlbWVudFR5cGUgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX01FTU9fVFlQRSxcbiAgICB0eXBlOiB0eXBlLFxuICAgIGNvbXBhcmU6IGNvbXBhcmUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjb21wYXJlXG4gIH07XG5cbiAge1xuICAgIHZhciBvd25OYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgJ2Rpc3BsYXlOYW1lJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG93bk5hbWU7XG4gICAgICB9LFxuICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBvd25OYW1lID0gbmFtZTsgLy8gVGhlIGlubmVyIGNvbXBvbmVudCBzaG91bGRuJ3QgaW5oZXJpdCB0aGlzIGRpc3BsYXkgbmFtZSBpbiBtb3N0IGNhc2VzLFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBjb21wb25lbnQgbWF5IGJlIHVzZWQgZWxzZXdoZXJlLlxuICAgICAgICAvLyBCdXQgaXQncyBuaWNlIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zIHRvIGluaGVyaXQgdGhlIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgb3VyIGNvbXBvbmVudC1zdGFjayBnZW5lcmF0aW9uIGxvZ2ljIHdpbGwgZGlzcGxheSB0aGVpciBmcmFtZXMuXG4gICAgICAgIC8vIEFuIGFub255bW91cyBmdW5jdGlvbiBnZW5lcmFsbHkgc3VnZ2VzdHMgYSBwYXR0ZXJuIGxpa2U6XG4gICAgICAgIC8vICAgUmVhY3QubWVtbygocHJvcHMpID0+IHsuLi59KTtcbiAgICAgICAgLy8gVGhpcyBraW5kIG9mIGlubmVyIGZ1bmN0aW9uIGlzIG5vdCB1c2VkIGVsc2V3aGVyZSBzbyB0aGUgc2lkZSBlZmZlY3QgaXMgb2theS5cblxuICAgICAgICBpZiAoIXR5cGUubmFtZSAmJiAhdHlwZS5kaXNwbGF5TmFtZSkge1xuICAgICAgICAgIHR5cGUuZGlzcGxheU5hbWUgPSBuYW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudFR5cGU7XG59XG5cbnZhciBVTlRFUk1JTkFURUQgPSAwO1xudmFyIFRFUk1JTkFURUQgPSAxO1xudmFyIEVSUk9SRUQgPSAyO1xuXG5mdW5jdGlvbiBjcmVhdGVDYWNoZVJvb3QoKSB7XG4gIHJldHVybiBuZXcgV2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDYWNoZU5vZGUoKSB7XG4gIHJldHVybiB7XG4gICAgczogVU5URVJNSU5BVEVELFxuICAgIC8vIHN0YXR1cywgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBjYWNoZWQgY29tcHV0YXRpb24gcmV0dXJuZWQgYSB2YWx1ZSBvciB0aHJldyBhbiBlcnJvclxuICAgIHY6IHVuZGVmaW5lZCxcbiAgICAvLyB2YWx1ZSwgZWl0aGVyIHRoZSBjYWNoZWQgcmVzdWx0IG9yIGFuIGVycm9yLCBkZXBlbmRpbmcgb24gc1xuICAgIG86IG51bGwsXG4gICAgLy8gb2JqZWN0IGNhY2hlLCBhIFdlYWtNYXAgd2hlcmUgbm9uLXByaW1pdGl2ZSBhcmd1bWVudHMgYXJlIHN0b3JlZFxuICAgIHA6IG51bGwgLy8gcHJpbWl0aXZlIGNhY2hlLCBhIHJlZ3VsYXIgTWFwIHdoZXJlIHByaW1pdGl2ZSBhcmd1bWVudHMgYXJlIHN0b3JlZC5cblxuICB9O1xufVxuXG5mdW5jdGlvbiBjYWNoZShmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50Q2FjaGUuY3VycmVudDtcblxuICAgIGlmICghZGlzcGF0Y2hlcikge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZGlzcGF0Y2hlciwgdGhlbiB3ZSB0cmVhdCB0aGlzIGFzIG5vdCBiZWluZyBjYWNoZWQuXG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogV2UgZG9uJ3Qgd2FudCB0byB1c2UgcmVzdCBhcmd1bWVudHMgc2luY2Ugd2UgdHJhbnNwaWxlIHRoZSBjb2RlLlxuICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgdmFyIGZuTWFwID0gZGlzcGF0Y2hlci5nZXRDYWNoZUZvclR5cGUoY3JlYXRlQ2FjaGVSb290KTtcbiAgICB2YXIgZm5Ob2RlID0gZm5NYXAuZ2V0KGZuKTtcbiAgICB2YXIgY2FjaGVOb2RlO1xuXG4gICAgaWYgKGZuTm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgIGZuTWFwLnNldChmbiwgY2FjaGVOb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FjaGVOb2RlID0gZm5Ob2RlO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgdmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgaWYgKHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsKSB7XG4gICAgICAgIC8vIE9iamVjdHMgZ28gaW50byBhIFdlYWtNYXBcbiAgICAgICAgdmFyIG9iamVjdENhY2hlID0gY2FjaGVOb2RlLm87XG5cbiAgICAgICAgaWYgKG9iamVjdENhY2hlID09PSBudWxsKSB7XG4gICAgICAgICAgY2FjaGVOb2RlLm8gPSBvYmplY3RDYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb2JqZWN0Tm9kZSA9IG9iamVjdENhY2hlLmdldChhcmcpO1xuXG4gICAgICAgIGlmIChvYmplY3ROb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgICAgICBvYmplY3RDYWNoZS5zZXQoYXJnLCBjYWNoZU5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhY2hlTm9kZSA9IG9iamVjdE5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFByaW1pdGl2ZXMgZ28gaW50byBhIHJlZ3VsYXIgTWFwXG4gICAgICAgIHZhciBwcmltaXRpdmVDYWNoZSA9IGNhY2hlTm9kZS5wO1xuXG4gICAgICAgIGlmIChwcmltaXRpdmVDYWNoZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGNhY2hlTm9kZS5wID0gcHJpbWl0aXZlQ2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJpbWl0aXZlTm9kZSA9IHByaW1pdGl2ZUNhY2hlLmdldChhcmcpO1xuXG4gICAgICAgIGlmIChwcmltaXRpdmVOb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgICAgICBwcmltaXRpdmVDYWNoZS5zZXQoYXJnLCBjYWNoZU5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhY2hlTm9kZSA9IHByaW1pdGl2ZU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2FjaGVOb2RlLnMgPT09IFRFUk1JTkFURUQpIHtcbiAgICAgIHJldHVybiBjYWNoZU5vZGUudjtcbiAgICB9XG5cbiAgICBpZiAoY2FjaGVOb2RlLnMgPT09IEVSUk9SRUQpIHtcbiAgICAgIHRocm93IGNhY2hlTm9kZS52O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogV2UgZG9uJ3Qgd2FudCB0byB1c2UgcmVzdCBhcmd1bWVudHMgc2luY2Ugd2UgdHJhbnNwaWxlIHRoZSBjb2RlLlxuICAgICAgdmFyIHJlc3VsdCA9IGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICB2YXIgdGVybWluYXRlZE5vZGUgPSBjYWNoZU5vZGU7XG4gICAgICB0ZXJtaW5hdGVkTm9kZS5zID0gVEVSTUlOQVRFRDtcbiAgICAgIHRlcm1pbmF0ZWROb2RlLnYgPSByZXN1bHQ7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBXZSBzdG9yZSB0aGUgZmlyc3QgZXJyb3IgdGhhdCdzIHRocm93biBhbmQgcmV0aHJvdyBpdC5cbiAgICAgIHZhciBlcnJvcmVkTm9kZSA9IGNhY2hlTm9kZTtcbiAgICAgIGVycm9yZWROb2RlLnMgPSBFUlJPUkVEO1xuICAgICAgZXJyb3JlZE5vZGUudiA9IGVycm9yO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcblxuICB7XG4gICAgaWYgKGRpc3BhdGNoZXIgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yJyArICcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4nICsgJzEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbicgKyAnMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbicgKyAnMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcbicgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uJyk7XG4gICAgfVxuICB9IC8vIFdpbGwgcmVzdWx0IGluIGEgbnVsbCBhY2Nlc3MgZXJyb3IgaWYgYWNjZXNzZWQgb3V0c2lkZSByZW5kZXIgcGhhc2UuIFdlXG4gIC8vIGludGVudGlvbmFsbHkgZG9uJ3QgdGhyb3cgb3VyIG93biBlcnJvciBiZWNhdXNlIHRoaXMgaXMgaW4gYSBob3QgcGF0aC5cbiAgLy8gQWxzbyBoZWxwcyBlbnN1cmUgdGhpcyBpcyBpbmxpbmVkLlxuXG5cbiAgcmV0dXJuIGRpc3BhdGNoZXI7XG59XG5mdW5jdGlvbiB1c2VDb250ZXh0KENvbnRleHQpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuXG4gIHtcbiAgICAvLyBUT0RPOiBhZGQgYSBtb3JlIGdlbmVyaWMgd2FybmluZyBmb3IgaW52YWxpZCB2YWx1ZXMuXG4gICAgaWYgKENvbnRleHQuX2NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIHJlYWxDb250ZXh0ID0gQ29udGV4dC5fY29udGV4dDsgLy8gRG9uJ3QgZGVkdXBsaWNhdGUgYmVjYXVzZSB0aGlzIGxlZ2l0aW1hdGVseSBjYXVzZXMgYnVnc1xuICAgICAgLy8gYW5kIG5vYm9keSBzaG91bGQgYmUgdXNpbmcgdGhpcyBpbiBleGlzdGluZyBjb2RlLlxuXG4gICAgICBpZiAocmVhbENvbnRleHQuQ29uc3VtZXIgPT09IENvbnRleHQpIHtcbiAgICAgICAgZXJyb3IoJ0NhbGxpbmcgdXNlQ29udGV4dChDb250ZXh0LkNvbnN1bWVyKSBpcyBub3Qgc3VwcG9ydGVkLCBtYXkgY2F1c2UgYnVncywgYW5kIHdpbGwgYmUgJyArICdyZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuIERpZCB5b3UgbWVhbiB0byBjYWxsIHVzZUNvbnRleHQoQ29udGV4dCkgaW5zdGVhZD8nKTtcbiAgICAgIH0gZWxzZSBpZiAocmVhbENvbnRleHQuUHJvdmlkZXIgPT09IENvbnRleHQpIHtcbiAgICAgICAgZXJyb3IoJ0NhbGxpbmcgdXNlQ29udGV4dChDb250ZXh0LlByb3ZpZGVyKSBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ0RpZCB5b3UgbWVhbiB0byBjYWxsIHVzZUNvbnRleHQoQ29udGV4dCkgaW5zdGVhZD8nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlzcGF0Y2hlci51c2VDb250ZXh0KENvbnRleHQpO1xufVxuZnVuY3Rpb24gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbn1cbmZ1bmN0aW9uIHVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG59XG5mdW5jdGlvbiB1c2VSZWYoaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVmKGluaXRpYWxWYWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlSW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZU1lbW8oY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTWVtbyhjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAge1xuICAgIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgICByZXR1cm4gZGlzcGF0Y2hlci51c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbik7XG4gIH1cbn1cbmZ1bmN0aW9uIHVzZVRyYW5zaXRpb24oKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlVHJhbnNpdGlvbigpO1xufVxuZnVuY3Rpb24gdXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbn1cbmZ1bmN0aW9uIHVzZUlkKCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUlkKCk7XG59XG5mdW5jdGlvbiB1c2VTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KTtcbn1cbmZ1bmN0aW9uIHVzZUNhY2hlUmVmcmVzaCgpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpOyAvLyAkRmxvd0ZpeE1lW25vdC1hLWZ1bmN0aW9uXSBUaGlzIGlzIHVuc3RhYmxlLCB0aHVzIG9wdGlvbmFsXG5cbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ2FjaGVSZWZyZXNoKCk7XG59XG5mdW5jdGlvbiB1c2UodXNhYmxlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlKHVzYWJsZSk7XG59XG5mdW5jdGlvbiB1c2VPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTsgLy8gJEZsb3dGaXhNZVtub3QtYS1mdW5jdGlvbl0gVGhpcyBpcyB1bnN0YWJsZSwgdGh1cyBvcHRpb25hbFxuXG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZU9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpO1xufVxuXG4vLyBIZWxwZXJzIHRvIHBhdGNoIGNvbnNvbGUubG9ncyB0byBhdm9pZCBsb2dnaW5nIGR1cmluZyBzaWRlLWVmZmVjdCBmcmVlXG4vLyByZXBsYXlpbmcgb24gcmVuZGVyIGZ1bmN0aW9uLiBUaGlzIGN1cnJlbnRseSBvbmx5IHBhdGNoZXMgdGhlIG9iamVjdFxuLy8gbGF6aWx5IHdoaWNoIHdvbid0IGNvdmVyIGlmIHRoZSBsb2cgZnVuY3Rpb24gd2FzIGV4dHJhY3RlZCBlYWdlcmx5LlxuLy8gV2UgY291bGQgYWxzbyBlYWdlcmx5IHBhdGNoIHRoZSBtZXRob2QuXG52YXIgZGlzYWJsZWREZXB0aCA9IDA7XG52YXIgcHJldkxvZztcbnZhciBwcmV2SW5mbztcbnZhciBwcmV2V2FybjtcbnZhciBwcmV2RXJyb3I7XG52YXIgcHJldkdyb3VwO1xudmFyIHByZXZHcm91cENvbGxhcHNlZDtcbnZhciBwcmV2R3JvdXBFbmQ7XG5cbmZ1bmN0aW9uIGRpc2FibGVkTG9nKCkge31cblxuZGlzYWJsZWRMb2cuX19yZWFjdERpc2FibGVkTG9nID0gdHJ1ZTtcbmZ1bmN0aW9uIGRpc2FibGVMb2dzKCkge1xuICB7XG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgcHJldkxvZyA9IGNvbnNvbGUubG9nO1xuICAgICAgcHJldkluZm8gPSBjb25zb2xlLmluZm87XG4gICAgICBwcmV2V2FybiA9IGNvbnNvbGUud2FybjtcbiAgICAgIHByZXZFcnJvciA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICBwcmV2R3JvdXAgPSBjb25zb2xlLmdyb3VwO1xuICAgICAgcHJldkdyb3VwQ29sbGFwc2VkID0gY29uc29sZS5ncm91cENvbGxhcHNlZDtcbiAgICAgIHByZXZHcm91cEVuZCA9IGNvbnNvbGUuZ3JvdXBFbmQ7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTkwOTlcblxuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBkaXNhYmxlZExvZyxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV0gRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZMb2dcbiAgICAgICAgfSksXG4gICAgICAgIGluZm86IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cbiAgICAgICAgfSksXG4gICAgICAgIHdhcm46IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZFcnJvclxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXA6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cENvbGxhcHNlZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cEVuZFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGlmIChkaXNhYmxlZERlcHRoIDwgMCkge1xuICAgICAgZXJyb3IoJ2Rpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiAnICsgJ1RoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuLyoqXG4gKiBMZXZlcmFnZXMgbmF0aXZlIGJyb3dzZXIvVk0gc3RhY2sgZnJhbWVzIHRvIGdldCBwcm9wZXIgZGV0YWlscyAoZS5nLlxuICogZmlsZW5hbWUsIGxpbmUgKyBjb2wgbnVtYmVyKSBmb3IgYSBzaW5nbGUgY29tcG9uZW50IGluIGEgY29tcG9uZW50IHN0YWNrLiBXZVxuICogZG8gdGhpcyBieTpcbiAqICAgKDEpIHRocm93aW5nIGFuZCBjYXRjaGluZyBhbiBlcnJvciBpbiB0aGUgZnVuY3Rpb24gLSB0aGlzIHdpbGwgYmUgb3VyXG4gKiAgICAgICBjb250cm9sIGVycm9yLlxuICogICAoMikgY2FsbGluZyB0aGUgY29tcG9uZW50IHdoaWNoIHdpbGwgZXZlbnR1YWxseSB0aHJvdyBhbiBlcnJvciB0aGF0IHdlJ2xsXG4gKiAgICAgICBjYXRjaCAtIHRoaXMgd2lsbCBiZSBvdXIgc2FtcGxlIGVycm9yLlxuICogICAoMykgZGlmZmluZyB0aGUgY29udHJvbCBhbmQgc2FtcGxlIGVycm9yIHN0YWNrcyB0byBmaW5kIHRoZSBzdGFjayBmcmFtZVxuICogICAgICAgd2hpY2ggcmVwcmVzZW50cyBvdXIgY29tcG9uZW50LlxuICovXG5cblxuZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XG4gIC8vIElmIHNvbWV0aGluZyBhc2tlZCBmb3IgYSBzdGFjayBpbnNpZGUgYSBmYWtlIHJlbmRlciwgaXQgc2hvdWxkIGdldCBpZ25vcmVkLlxuICBpZiAoIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICByZWVudHJ5ID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdHlwZV0gSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7IC8vIFNldCB0aGUgZGlzcGF0Y2hlciBpbiBERVYgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNhbGwgaW4gdGhlIHJlbmRlciBmdW5jdGlvblxuICAgIC8vIGZvciB3YXJuaW5ncy5cblxuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuICAvKipcbiAgICogRmluZGluZyBhIGNvbW1vbiBzdGFjayBmcmFtZSBiZXR3ZWVuIHNhbXBsZSBhbmQgY29udHJvbCBlcnJvcnMgY2FuIGJlXG4gICAqIHRyaWNreSBnaXZlbiB0aGUgZGlmZmVyZW50IHR5cGVzIGFuZCBsZXZlbHMgb2Ygc3RhY2sgdHJhY2UgdHJ1bmNhdGlvbiBmcm9tXG4gICAqIGRpZmZlcmVudCBKUyBWTXMuIFNvIGluc3RlYWQgd2UnbGwgYXR0ZW1wdCB0byBjb250cm9sIHdoYXQgdGhhdCBjb21tb25cbiAgICogZnJhbWUgc2hvdWxkIGJlIHRocm91Z2ggdGhpcyBvYmplY3QgbWV0aG9kOlxuICAgKiBIYXZpbmcgYm90aCB0aGUgc2FtcGxlIGFuZCBjb250cm9sIGVycm9ycyBiZSBpbiB0aGUgZnVuY3Rpb24gdW5kZXIgdGhlXG4gICAqIGBEZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lUm9vdGAgcHJvcGVydHksICsgc2V0dGluZyB0aGUgYG5hbWVgIGFuZFxuICAgKiBgZGlzcGxheU5hbWVgIHByb3BlcnRpZXMgb2YgdGhlIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCBhIHN0YWNrXG4gICAqIGZyYW1lIGV4aXN0cyB0aGF0IGhhcyB0aGUgbWV0aG9kIG5hbWUgYERlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWVSb290YCBpblxuICAgKiBpdCBmb3IgYm90aCBjb250cm9sIGFuZCBzYW1wbGUgc3RhY2tzLlxuICAgKi9cblxuXG4gIHZhciBSdW5JblJvb3RGcmFtZSA9IHtcbiAgICBEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3Q6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBjb250cm9sO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHNob3VsZCB0aHJvdy5cbiAgICAgICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgICAgIC8vIFNvbWV0aGluZyBzaG91bGQgYmUgc2V0dGluZyB0aGUgcHJvcHMgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgICAgIHZhciBGYWtlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICB9OyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XG4gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnICYmIFJlZmxlY3QuY29uc3RydWN0KSB7XG4gICAgICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgICAgfSAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ10gZm91bmQgd2hlbiB1cGdyYWRpbmcgRmxvd1xuXG5cbiAgICAgICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICB9IC8vIFRPRE8obHVuYSk6IFRoaXMgd2lsbCBjdXJyZW50bHkgb25seSB0aHJvdyBpZiB0aGUgZnVuY3Rpb24gY29tcG9uZW50XG4gICAgICAgICAgLy8gdHJpZXMgdG8gYWNjZXNzIFJlYWN0L1JlYWN0RE9NL3Byb3BzLiBXZSBzaG91bGQgcHJvYmFibHkgbWFrZSB0aGlzIHRocm93XG4gICAgICAgICAgLy8gaW4gc2ltcGxlIGNvbXBvbmVudHMgdG9vXG5cblxuICAgICAgICAgIHZhciBtYXliZVByb21pc2UgPSBmbigpOyAvLyBJZiB0aGUgZnVuY3Rpb24gY29tcG9uZW50IHJldHVybnMgYSBwcm9taXNlLCBpdCdzIGxpa2VseSBhbiBhc3luY1xuICAgICAgICAgIC8vIGNvbXBvbmVudCwgd2hpY2ggd2UgZG9uJ3QgeWV0IHN1cHBvcnQuIEF0dGFjaCBhIG5vb3AgY2F0Y2ggaGFuZGxlciB0b1xuICAgICAgICAgIC8vIHNpbGVuY2UgdGhlIGVycm9yLlxuICAgICAgICAgIC8vIFRPRE86IEltcGxlbWVudCBjb21wb25lbnQgc3RhY2tzIGZvciBhc3luYyBjbGllbnQgY29tcG9uZW50cz9cblxuICAgICAgICAgIGlmIChtYXliZVByb21pc2UgJiYgdHlwZW9mIG1heWJlUHJvbWlzZS5jYXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbWF5YmVQcm9taXNlLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgICAgICAvLyBUaGlzIGlzIGlubGluZWQgbWFudWFsbHkgYmVjYXVzZSBjbG9zdXJlIGRvZXNuJ3QgZG8gaXQgZm9yIHVzLlxuICAgICAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gW3NhbXBsZS5zdGFjaywgY29udHJvbC5zdGFja107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgICB9XG4gIH07IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuXG4gIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdC5kaXNwbGF5TmFtZSA9ICdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnO1xuICB2YXIgbmFtZVByb3BEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsICduYW1lJyk7IC8vIEJlZm9yZSBFUzYsIHRoZSBgbmFtZWAgcHJvcGVydHkgd2FzIG5vdCBjb25maWd1cmFibGUuXG5cbiAgaWYgKG5hbWVQcm9wRGVzY3JpcHRvciAmJiBuYW1lUHJvcERlc2NyaXB0b3IuY29uZmlndXJhYmxlKSB7XG4gICAgLy8gVjggdXRpbGl6ZXMgYSBmdW5jdGlvbidzIGBuYW1lYCBwcm9wZXJ0eSB3aGVuIGdlbmVyYXRpbmcgYSBzdGFjayB0cmFjZS5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCAvLyBDb25maWd1cmFibGUgcHJvcGVydGllcyBjYW4gYmUgdXBkYXRlZCBldmVuIGlmIGl0cyB3cml0YWJsZSBkZXNjcmlwdG9yXG4gICAgLy8gaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdXG4gICAgJ25hbWUnLCB7XG4gICAgICB2YWx1ZTogJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCdcbiAgICB9KTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmFyIF9SdW5JblJvb3RGcmFtZSREZXRlciA9IFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLFxuICAgICAgICBzYW1wbGVTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclswXSxcbiAgICAgICAgY29udHJvbFN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzFdO1xuXG4gICAgaWYgKHNhbXBsZVN0YWNrICYmIGNvbnRyb2xTdGFjaykge1xuICAgICAgLy8gVGhpcyBleHRyYWN0cyB0aGUgZmlyc3QgZnJhbWUgZnJvbSB0aGUgc2FtcGxlIHRoYXQgaXNuJ3QgYWxzbyBpbiB0aGUgY29udHJvbC5cbiAgICAgIC8vIFNraXBwaW5nIG9uZSBmcmFtZSB0aGF0IHdlIGFzc3VtZSBpcyB0aGUgZnJhbWUgdGhhdCBjYWxscyB0aGUgdHdvLlxuICAgICAgdmFyIHNhbXBsZUxpbmVzID0gc2FtcGxlU3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2xTdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IDA7XG4gICAgICB2YXIgYyA9IDA7XG5cbiAgICAgIHdoaWxlIChzIDwgc2FtcGxlTGluZXMubGVuZ3RoICYmICFzYW1wbGVMaW5lc1tzXS5pbmNsdWRlcygnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JykpIHtcbiAgICAgICAgcysrO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAoYyA8IGNvbnRyb2xMaW5lcy5sZW5ndGggJiYgIWNvbnRyb2xMaW5lc1tjXS5pbmNsdWRlcygnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JykpIHtcbiAgICAgICAgYysrO1xuICAgICAgfSAvLyBXZSBjb3VsZG4ndCBmaW5kIG91ciBpbnRlbnRpb25hbGx5IGluamVjdGVkIGNvbW1vbiByb290IGZyYW1lLCBhdHRlbXB0XG4gICAgICAvLyB0byBmaW5kIGFub3RoZXIgY29tbW9uIHJvb3QgZnJhbWUgYnkgc2VhcmNoIGZyb20gdGhlIGJvdHRvbSBvZiB0aGVcbiAgICAgIC8vIGNvbnRyb2wgc3RhY2suLi5cblxuXG4gICAgICBpZiAocyA9PT0gc2FtcGxlTGluZXMubGVuZ3RoIHx8IGMgPT09IGNvbnRyb2xMaW5lcy5sZW5ndGgpIHtcbiAgICAgICAgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIGMgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gV2UgZXhwZWN0IGF0IGxlYXN0IG9uZSBzdGFjayBmcmFtZSB0byBiZSBzaGFyZWQuXG4gICAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxuICAgICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgICAgLy8gZWFybGllciB0aGFuIHRoZSBvdGhlci4gV2UgYXNzdW1lIHRoYXQgdGhlIHNhbXBsZSBpcyBsb25nZXIgb3IgdGhlIHNhbWVcbiAgICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxuICAgICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICAgIGMtLTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKDsgcyA+PSAxICYmIGMgPj0gMDsgcy0tLCBjLS0pIHtcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxuICAgICAgICBpZiAoc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxuICAgICAgICAgIC8vIGxpbmUsIHRoYXQncyBhIHByZXR0eSBnb29kIGluZGljYXRvciB0aGF0IG91ciBzYW1wbGUgdGhyZXcgYXQgc2FtZSBsaW5lIGFzXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXG4gICAgICAgICAgaWYgKHMgIT09IDEgfHwgYyAhPT0gMSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICBzLS07XG4gICAgICAgICAgICAgIGMtLTsgLy8gV2UgbWF5IHN0aWxsIGhhdmUgc2ltaWxhciBpbnRlcm1lZGlhdGUgZnJhbWVzIGZyb20gdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cblxuICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTsgLy8gSWYgb3VyIGNvbXBvbmVudCBmcmFtZSBpcyBsYWJlbGVkIFwiPGFub255bW91cz5cIlxuICAgICAgICAgICAgICAgIC8vIGJ1dCB3ZSBoYXZlIGEgdXNlci1wcm92aWRlZCBcImRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICAvLyBzcGxpY2UgaXQgaW4gdG8gbWFrZSB0aGUgc3RhY2sgbW9yZSByZWFkYWJsZS5cblxuXG4gICAgICAgICAgICAgICAgaWYgKGZuLmRpc3BsYXlOYW1lICYmIF9mcmFtZS5pbmNsdWRlcygnPGFub255bW91cz4nKSkge1xuICAgICAgICAgICAgICAgICAgX2ZyYW1lID0gX2ZyYW1lLnJlcGxhY2UoJzxhbm9ueW1vdXM+JywgZm4uZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBfZnJhbWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gLy8gUmV0dXJuIHRoZSBsaW5lIHdlIGZvdW5kLlxuXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gX2ZyYW1lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IHdoaWxlIChzID49IDEgJiYgYyA+PSAwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICByZWVudHJ5ID0gZmFsc2U7XG5cbiAgICB7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XG4gICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICB9XG5cbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2U7XG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxuXG5cbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzeW50aGV0aWNGcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZuLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0KENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcblxuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAge1xuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZS50eXBlLCBzb3VyY2UsIG93bmVyRm4pO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIExhenkgbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGluaXQocGF5bG9hZCksIHNvdXJjZSwgb3duZXJGbik7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxudmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGVsZW1lbnQpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV0gVGhpcyBpcyBva2F5IGJ1dCBGbG93IGRvZXNuJ3Qga25vdyBpdC5cbiAgICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKGhhc093blByb3BlcnR5KTtcblxuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvciQxID0gdm9pZCAwOyAvLyBQcm9wIHR5cGUgdmFsaWRhdGlvbiBtYXkgdGhyb3cuIEluIGNhc2UgdGhleSBkbywgd2UgZG9uJ3Qgd2FudCB0b1xuICAgICAgICAvLyBmYWlsIHRoZSByZW5kZXIgcGhhc2Ugd2hlcmUgaXQgZGlkbid0IGZhaWwgYmVmb3JlLiBTbyB3ZSBsb2cgaXQuXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBhbiBpbnZhcmlhbnQgdGhhdCBnZXRzIGNhdWdodC4gSXQncyB0aGUgc2FtZVxuICAgICAgICAgIC8vIGJlaGF2aW9yIGFzIHdpdGhvdXQgdGhpcyBzdGF0ZW1lbnQgZXhjZXB0IHdpdGggYSBiZXR0ZXIgbWVzc2FnZS5cbiAgICAgICAgICBpZiAodHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgKyAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJyk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvciQxID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciQxID0gZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSAmJiAhKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMnICsgJyBgJXNgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAlcy4gJyArICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICsgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lLCB0eXBlb2YgZXJyb3IkMSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCdGYWlsZWQgJXMgdHlwZTogJXMnLCBsb2NhdGlvbiwgZXJyb3IkMS5tZXNzYWdlKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBzZXRFeHRyYVN0YWNrRnJhbWUoc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bjtcblxue1xuICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIGlmIChSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtRm9yUHJvcHMoZWxlbWVudFByb3BzKSB7XG4gIGlmIChlbGVtZW50UHJvcHMgIT09IG51bGwgJiYgZWxlbWVudFByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oZWxlbWVudFByb3BzLl9fc291cmNlKTtcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cbi8qKlxuICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxuICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gKiB1cGRhdGVzLlxuICovXG5cblxudmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcbiAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICBpZiAoIWluZm8pIHtcbiAgICB2YXIgcGFyZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShwYXJlbnRUeXBlKTtcblxuICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICBpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArIHBhcmVudE5hbWUgKyBcIj4uXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluZm87XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gIC8vIHByb3BlcnR5LCBpdCBtYXkgYmUgdGhlIGNyZWF0b3Igb2YgdGhlIGNoaWxkIHRoYXQncyByZXNwb25zaWJsZSBmb3JcbiAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cbiAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcbiAgfVxuXG4gIHtcbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnIHx8ICFub2RlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKG5vZGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UpIDsgZWxzZSBpZiAoaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBFbnRyeSBpdGVyYXRvcnMgdXNlZCB0byBwcm92aWRlIGltcGxpY2l0IGtleXMsXG4gICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cbiAgICAgIGlmIChpdGVyYXRvckZuICE9PSBub2RlLmVudHJpZXMpIHtcbiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuICAgICAgICB2YXIgc3RlcDtcblxuICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxuICogcHJvdmlkZWQgYnkgdGhlIHR5cGUuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuXG4gICAgICBlcnJvcignQ29tcG9uZW50ICVzIGRlY2xhcmVkIGBQcm9wVHlwZXNgIGluc3RlYWQgb2YgYHByb3BUeXBlc2AuIERpZCB5b3UgbWlzc3BlbGwgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQ/JywgX25hbWUgfHwgJ1Vua25vd24nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHR5cGUuZ2V0RGVmYXVsdFByb3BzID09PSAnZnVuY3Rpb24nICYmICF0eXBlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBSZWFjdC5jcmVhdGVDbGFzcyAnICsgJ2RlZmluaXRpb25zLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgYGRlZmF1bHRQcm9wc2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBmcmFnbWVudCwgdmFsaWRhdGUgdGhhdCBpdCBjYW4gb25seSBiZSBwcm92aWRlZCB3aXRoIGZyYWdtZW50IHByb3BzXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xuICB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhmcmFnbWVudC5wcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ICE9PSAnY2hpbGRyZW4nICYmIGtleSAhPT0gJ2tleScpIHtcbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgYHJlZmAgc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4nKTtcblxuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXG5cbiAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgfVxuXG4gICAgdmFyIHNvdXJjZUluZm8gPSBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKHByb3BzKTtcblxuICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICBpbmZvICs9IHNvdXJjZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgfVxuXG4gICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdVbmtub3duJykgKyBcIiAvPlwiO1xuICAgICAgaW5mbyA9ICcgRGlkIHlvdSBhY2NpZGVudGFsbHkgZXhwb3J0IGEgSlNYIGxpdGVyYWwgaW5zdGVhZCBvZiBhIGNvbXBvbmVudD8nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XG4gICAgfVxuXG4gICAge1xuICAgICAgZXJyb3IoJ1JlYWN0LmNyZWF0ZUVsZW1lbnQ6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50JDEuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgLy8gVGhlIHJlc3VsdCBjYW4gYmUgbnVsbGlzaCBpZiBhIG1vY2sgb3IgYSBjdXN0b20gZnVuY3Rpb24gaXMgdXNlZC5cbiAgLy8gVE9ETzogRHJvcCB0aGlzIHdoZW4gdGhlc2UgYXJlIG5vIGxvbmdlciBhbGxvd2VkIGFzIHRoZSB0eXBlIGFyZ3VtZW50LlxuXG4gIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfSAvLyBTa2lwIGtleSB3YXJuaW5nIGlmIHRoZSB0eXBlIGlzbid0IHZhbGlkIHNpbmNlIG91ciBrZXkgdmFsaWRhdGlvbiBsb2dpY1xuICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gIC8vIFdlIGRvbid0IHdhbnQgZXhjZXB0aW9uIGJlaGF2aW9yIHRvIGRpZmZlciBiZXR3ZWVuIGRldiBhbmQgcHJvZC5cbiAgLy8gKFJlbmRlcmluZyB3aWxsIHRocm93IHdpdGggYSBoZWxwZnVsIG1lc3NhZ2UgYW5kIGFzIHNvb24gYXMgdGhlIHR5cGUgaXNcbiAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuXG5cbiAgaWYgKHZhbGlkVHlwZSkge1xuICAgIGZvciAodmFyIGkgPSAyOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgdmFsaWRhdGVGcmFnbWVudFByb3BzKGVsZW1lbnQpO1xuICB9IGVsc2Uge1xuICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG52YXIgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSBmYWxzZTtcbmZ1bmN0aW9uIGNyZWF0ZUZhY3RvcnlXaXRoVmFsaWRhdGlvbih0eXBlKSB7XG4gIHZhciB2YWxpZGF0ZWRGYWN0b3J5ID0gY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uLmJpbmQobnVsbCwgdHlwZSk7XG4gIHZhbGlkYXRlZEZhY3RvcnkudHlwZSA9IHR5cGU7XG5cbiAge1xuICAgIGlmICghZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkpIHtcbiAgICAgIGRpZFdhcm5BYm91dERlcHJlY2F0ZWRDcmVhdGVGYWN0b3J5ID0gdHJ1ZTtcblxuICAgICAgd2FybignUmVhY3QuY3JlYXRlRmFjdG9yeSgpIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAnICsgJ2EgZnV0dXJlIG1ham9yIHJlbGVhc2UuIENvbnNpZGVyIHVzaW5nIEpTWCAnICsgJ29yIHVzZSBSZWFjdC5jcmVhdGVFbGVtZW50KCkgZGlyZWN0bHkgaW5zdGVhZC4nKTtcbiAgICB9IC8vIExlZ2FjeSBob29rOiByZW1vdmUgaXRcblxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbGlkYXRlZEZhY3RvcnksICd0eXBlJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2FybignRmFjdG9yeS50eXBlIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB0aGUgY2xhc3MgZGlyZWN0bHkgJyArICdiZWZvcmUgcGFzc2luZyBpdCB0byBjcmVhdGVGYWN0b3J5LicpO1xuXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAndHlwZScsIHtcbiAgICAgICAgICB2YWx1ZTogdHlwZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVkRmFjdG9yeTtcbn1cbmZ1bmN0aW9uIGNsb25lRWxlbWVudFdpdGhWYWxpZGF0aW9uKGVsZW1lbnQsIHByb3BzLCBjaGlsZHJlbikge1xuICB2YXIgbmV3RWxlbWVudCA9IGNsb25lRWxlbWVudCQxLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihzY29wZSwgb3B0aW9ucykge1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uO1xuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uID0ge307XG4gIHZhciBjdXJyZW50VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMgPSBuZXcgU2V0KCk7XG4gIH1cblxuICB0cnkge1xuICAgIHNjb3BlKCk7XG4gIH0gZmluYWxseSB7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcudHJhbnNpdGlvbiA9IHByZXZUcmFuc2l0aW9uO1xuXG4gICAge1xuICAgICAgaWYgKHByZXZUcmFuc2l0aW9uID09PSBudWxsICYmIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzKSB7XG4gICAgICAgIHZhciB1cGRhdGVkRmliZXJzQ291bnQgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplO1xuXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmNsZWFyKCk7XG5cbiAgICAgICAgaWYgKHVwZGF0ZWRGaWJlcnNDb3VudCA+IDEwKSB7XG4gICAgICAgICAgd2FybignRGV0ZWN0ZWQgYSBsYXJnZSBudW1iZXIgb2YgdXBkYXRlcyBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLiAnICsgJ0lmIHRoaXMgaXMgZHVlIHRvIGEgc3Vic2NyaXB0aW9uIHBsZWFzZSByZS13cml0ZSBpdCB0byB1c2UgUmVhY3QgcHJvdmlkZWQgaG9va3MuICcgKyAnT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9IGZhbHNlO1xudmFyIGVucXVldWVUYXNrSW1wbCA9IG51bGw7XG5mdW5jdGlvbiBlbnF1ZXVlVGFzayh0YXNrKSB7XG4gIGlmIChlbnF1ZXVlVGFza0ltcGwgPT09IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgLy8gcmVhZCByZXF1aXJlIG9mZiB0aGUgbW9kdWxlIG9iamVjdCB0byBnZXQgYXJvdW5kIHRoZSBidW5kbGVycy5cbiAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlbSB0byBkZXRlY3QgYSByZXF1aXJlIGFuZCBidW5kbGUgYSBOb2RlIHBvbHlmaWxsLlxuICAgICAgdmFyIHJlcXVpcmVTdHJpbmcgPSAoJ3JlcXVpcmUnICsgTWF0aC5yYW5kb20oKSkuc2xpY2UoMCwgNyk7XG4gICAgICB2YXIgbm9kZVJlcXVpcmUgPSBtb2R1bGUgJiYgbW9kdWxlW3JlcXVpcmVTdHJpbmddOyAvLyBhc3N1bWluZyB3ZSdyZSBpbiBub2RlLCBsZXQncyB0cnkgdG8gZ2V0IG5vZGUnc1xuICAgICAgLy8gdmVyc2lvbiBvZiBzZXRJbW1lZGlhdGUsIGJ5cGFzc2luZyBmYWtlIHRpbWVycyBpZiBhbnkuXG5cbiAgICAgIGVucXVldWVUYXNrSW1wbCA9IG5vZGVSZXF1aXJlLmNhbGwobW9kdWxlLCAndGltZXJzJykuc2V0SW1tZWRpYXRlO1xuICAgIH0gY2F0Y2ggKF9lcnIpIHtcbiAgICAgIC8vIHdlJ3JlIGluIGEgYnJvd3NlclxuICAgICAgLy8gd2UgY2FuJ3QgdXNlIHJlZ3VsYXIgdGltZXJzIGJlY2F1c2UgdGhleSBtYXkgc3RpbGwgYmUgZmFrZWRcbiAgICAgIC8vIHNvIHdlIHRyeSBNZXNzYWdlQ2hhbm5lbCtwb3N0TWVzc2FnZSBpbnN0ZWFkXG4gICAgICBlbnF1ZXVlVGFza0ltcGwgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgICAge1xuICAgICAgICAgIGlmIChkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBNZXNzYWdlQ2hhbm5lbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ1RoaXMgYnJvd3NlciBkb2VzIG5vdCBoYXZlIGEgTWVzc2FnZUNoYW5uZWwgaW1wbGVtZW50YXRpb24sICcgKyAnc28gZW5xdWV1aW5nIHRhc2tzIHZpYSBhd2FpdCBhY3QoYXN5bmMgKCkgPT4gLi4uKSB3aWxsIGZhaWwuICcgKyAnUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3VlcyAnICsgJ2lmIHlvdSBlbmNvdW50ZXIgdGhpcyB3YXJuaW5nLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gY2FsbGJhY2s7XG4gICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2UodW5kZWZpbmVkKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVucXVldWVUYXNrSW1wbCh0YXNrKTtcbn1cblxuLy8gbnVtYmVyIG9mIGBhY3RgIHNjb3BlcyBvbiB0aGUgc3RhY2suXG5cbnZhciBhY3RTY29wZURlcHRoID0gMDsgLy8gV2Ugb25seSB3YXJuIHRoZSBmaXJzdCB0aW1lIHlvdSBuZWdsZWN0IHRvIGF3YWl0IGFuIGFzeW5jIGBhY3RgIHNjb3BlLlxuXG52YXIgZGlkV2Fybk5vQXdhaXRBY3QgPSBmYWxzZTtcbmZ1bmN0aW9uIGFjdChjYWxsYmFjaykge1xuICB7XG4gICAgLy8gV2hlbiBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50IGlzIG5vdCBudWxsLCBpdCBzaWduYWxzIHRvIFJlYWN0IHRoYXRcbiAgICAvLyB3ZSdyZSBjdXJyZW50bHkgaW5zaWRlIGFuIGBhY3RgIHNjb3BlLiBSZWFjdCB3aWxsIHB1c2ggYWxsIGl0cyB0YXNrcyB0b1xuICAgIC8vIHRoaXMgcXVldWUgaW5zdGVhZCBvZiBzY2hlZHVsaW5nIHRoZW0gd2l0aCBwbGF0Zm9ybSBBUElzLlxuICAgIC8vXG4gICAgLy8gV2Ugc2V0IHRoaXMgdG8gYW4gZW1wdHkgYXJyYXkgd2hlbiB3ZSBmaXJzdCBlbnRlciBhbiBgYWN0YCBzY29wZSwgYW5kXG4gICAgLy8gb25seSB1bnNldCBpdCBvbmNlIHdlJ3ZlIGxlZnQgdGhlIG91dGVybW9zdCBgYWN0YCBzY29wZSDigJQgcmVtZW1iZXIgdGhhdFxuICAgIC8vIGBhY3RgIGNhbGxzIGNhbiBiZSBuZXN0ZWQuXG4gICAgLy9cbiAgICAvLyBJZiB3ZSdyZSBhbHJlYWR5IGluc2lkZSBhbiBgYWN0YCBzY29wZSwgcmV1c2UgdGhlIGV4aXN0aW5nIHF1ZXVlLlxuICAgIHZhciBwcmV2SXNCYXRjaGluZ0xlZ2FjeSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmlzQmF0Y2hpbmdMZWdhY3k7XG4gICAgdmFyIHByZXZBY3RRdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG4gICAgdmFyIHByZXZBY3RTY29wZURlcHRoID0gYWN0U2NvcGVEZXB0aDtcbiAgICBhY3RTY29wZURlcHRoKys7XG4gICAgdmFyIHF1ZXVlID0gUmVhY3RDdXJyZW50QWN0UXVldWUuY3VycmVudCA9IHByZXZBY3RRdWV1ZSAhPT0gbnVsbCA/IHByZXZBY3RRdWV1ZSA6IFtdOyAvLyBVc2VkIHRvIHJlcHJvZHVjZSBiZWhhdmlvciBvZiBgYmF0Y2hlZFVwZGF0ZXNgIGluIGxlZ2FjeSBtb2RlLiBPbmx5XG4gICAgLy8gc2V0IHRvIGB0cnVlYCB3aGlsZSB0aGUgZ2l2ZW4gY2FsbGJhY2sgaXMgZXhlY3V0ZWQsIG5vdCBmb3IgdXBkYXRlc1xuICAgIC8vIHRyaWdnZXJlZCBkdXJpbmcgYW4gYXN5bmMgZXZlbnQsIGJlY2F1c2UgdGhpcyBpcyBob3cgdGhlIGxlZ2FjeVxuICAgIC8vIGltcGxlbWVudGF0aW9uIG9mIGBhY3RgIGJlaGF2ZWQuXG5cbiAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5ID0gdHJ1ZTtcbiAgICB2YXIgcmVzdWx0OyAvLyBUaGlzIHRyYWNrcyB3aGV0aGVyIHRoZSBgYWN0YCBjYWxsIGlzIGF3YWl0ZWQuIEluIGNlcnRhaW4gY2FzZXMsIG5vdFxuICAgIC8vIGF3YWl0aW5nIGl0IGlzIGEgbWlzdGFrZSwgc28gd2Ugd2lsbCBkZXRlY3QgdGhhdCBhbmQgd2Fybi5cblxuICAgIHZhciBkaWRBd2FpdEFjdENhbGwgPSBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBSZXNldCB0aGlzIHRvIGBmYWxzZWAgcmlnaHQgYmVmb3JlIGVudGVyaW5nIHRoZSBSZWFjdCB3b3JrIGxvb3AuIFRoZVxuICAgICAgLy8gb25seSBwbGFjZSB3ZSBldmVyIHJlYWQgdGhpcyBmaWVsZHMgaXMganVzdCBiZWxvdywgcmlnaHQgYWZ0ZXIgcnVubmluZ1xuICAgICAgLy8gdGhlIGNhbGxiYWNrLiBTbyB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IGFmdGVyIHRoZSBjYWxsYmFjayBydW5zLlxuICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUgPSBmYWxzZTtcbiAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKCk7XG4gICAgICB2YXIgZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5kaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZTsgLy8gUmVwbGljYXRlIGJlaGF2aW9yIG9mIG9yaWdpbmFsIGBhY3RgIGltcGxlbWVudGF0aW9uIGluIGxlZ2FjeSBtb2RlLFxuICAgICAgLy8gd2hpY2ggZmx1c2hlZCB1cGRhdGVzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBzY29wZSBmdW5jdGlvbiBleGl0cywgZXZlblxuICAgICAgLy8gaWYgaXQncyBhbiBhc3luYyBmdW5jdGlvbi5cblxuICAgICAgaWYgKCFwcmV2SXNCYXRjaGluZ0xlZ2FjeSAmJiBkaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZSkge1xuICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKTtcbiAgICAgIH0gLy8gYGlzQmF0Y2hpbmdMZWdhY3lgIGdldHMgcmVzZXQgdXNpbmcgdGhlIHJlZ3VsYXIgc3RhY2ssIG5vdCB0aGUgYXN5bmNcbiAgICAgIC8vIG9uZSB1c2VkIHRvIHRyYWNrIGBhY3RgIHNjb3Blcy4gV2h5LCB5b3UgbWF5IGJlIHdvbmRlcmluZz8gQmVjYXVzZVxuICAgICAgLy8gdGhhdCdzIGhvdyBpdCB3b3JrZWQgYmVmb3JlIHZlcnNpb24gMTguIFllcywgaXQncyBjb25mdXNpbmchIFdlIHNob3VsZFxuICAgICAgLy8gZGVsZXRlIGxlZ2FjeSBtb2RlISFcblxuXG4gICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5ID0gcHJldklzQmF0Y2hpbmdMZWdhY3k7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIGBpc0JhdGNoaW5nTGVnYWN5YCBnZXRzIHJlc2V0IHVzaW5nIHRoZSByZWd1bGFyIHN0YWNrLCBub3QgdGhlIGFzeW5jXG4gICAgICAvLyBvbmUgdXNlZCB0byB0cmFjayBgYWN0YCBzY29wZXMuIFdoeSwgeW91IG1heSBiZSB3b25kZXJpbmc/IEJlY2F1c2VcbiAgICAgIC8vIHRoYXQncyBob3cgaXQgd29ya2VkIGJlZm9yZSB2ZXJzaW9uIDE4LiBZZXMsIGl0J3MgY29uZnVzaW5nISBXZSBzaG91bGRcbiAgICAgIC8vIGRlbGV0ZSBsZWdhY3kgbW9kZSEhXG4gICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5ID0gcHJldklzQmF0Y2hpbmdMZWdhY3k7XG4gICAgICBwb3BBY3RTY29wZShwcmV2QWN0UXVldWUsIHByZXZBY3RTY29wZURlcHRoKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgIT09IG51bGwgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiYgLy8gJEZsb3dGaXhNZVttZXRob2QtdW5iaW5kaW5nXVxuICAgIHR5cGVvZiByZXN1bHQudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQSBwcm9taXNlL3RoZW5hYmxlIHdhcyByZXR1cm5lZCBmcm9tIHRoZSBjYWxsYmFjay4gV2FpdCBmb3IgaXQgdG9cbiAgICAgIC8vIHJlc29sdmUgYmVmb3JlIGZsdXNoaW5nIHRoZSBxdWV1ZS5cbiAgICAgIC8vXG4gICAgICAvLyBJZiBgYWN0YCB3ZXJlIGltcGxlbWVudGVkIGFzIGFuIGFzeW5jIGZ1bmN0aW9uLCB0aGlzIHdob2xlIGJsb2NrIGNvdWxkXG4gICAgICAvLyBiZSBhIHNpbmdsZSBgYXdhaXRgIGNhbGwuIFRoYXQncyByZWFsbHkgdGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuXG4gICAgICAvLyB0aGlzIGJyYW5jaCBhbmQgdGhlIG5leHQgb25lLlxuICAgICAgdmFyIHRoZW5hYmxlID0gcmVzdWx0OyAvLyBXYXJuIGlmIHRoZSBhbiBgYWN0YCBjYWxsIHdpdGggYW4gYXN5bmMgc2NvcGUgaXMgbm90IGF3YWl0ZWQuIEluIGFcbiAgICAgIC8vIGZ1dHVyZSByZWxlYXNlLCBjb25zaWRlciBtYWtpbmcgdGhpcyBhbiBlcnJvci5cblxuICAgICAgcXVldWVTZXZlcmFsTWljcm90YXNrcyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghZGlkQXdhaXRBY3RDYWxsICYmICFkaWRXYXJuTm9Bd2FpdEFjdCkge1xuICAgICAgICAgIGRpZFdhcm5Ob0F3YWl0QWN0ID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCdZb3UgY2FsbGVkIGFjdChhc3luYyAoKSA9PiAuLi4pIHdpdGhvdXQgYXdhaXQuICcgKyAnVGhpcyBjb3VsZCBsZWFkIHRvIHVuZXhwZWN0ZWQgdGVzdGluZyBiZWhhdmlvdXIsICcgKyAnaW50ZXJsZWF2aW5nIG11bHRpcGxlIGFjdCBjYWxscyBhbmQgbWl4aW5nIHRoZWlyICcgKyAnc2NvcGVzLiAnICsgJ1lvdSBzaG91bGQgLSBhd2FpdCBhY3QoYXN5bmMgKCkgPT4gLi4uKTsnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aGVuOiBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgZGlkQXdhaXRBY3RDYWxsID0gdHJ1ZTtcbiAgICAgICAgICB0aGVuYWJsZS50aGVuKGZ1bmN0aW9uIChyZXR1cm5WYWx1ZSkge1xuICAgICAgICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2QWN0U2NvcGVEZXB0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAvLyBXZSdyZSBleGl0aW5nIHRoZSBvdXRlcm1vc3QgYGFjdGAgc2NvcGUuIEZsdXNoIHRoZSBxdWV1ZS5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKTtcbiAgICAgICAgICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKC8vIFJlY3Vyc2l2ZWx5IGZsdXNoIHRhc2tzIHNjaGVkdWxlZCBieSBhIG1pY3JvdGFzay5cbiAgICAgICAgICAgICAgICAgICAgcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBgdGhlbmFibGVgIG1pZ2h0IG5vdCBiZSBhIHJlYWwgcHJvbWlzZSwgYW5kIGBmbHVzaEFjdFF1ZXVlYFxuICAgICAgICAgICAgICAgIC8vIG1pZ2h0IHRocm93LCBzbyB3ZSBuZWVkIHRvIHdyYXAgYGZsdXNoQWN0UXVldWVgIGluIGFcbiAgICAgICAgICAgICAgICAvLyB0cnkvY2F0Y2guXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBwb3BBY3RTY29wZShwcmV2QWN0UXVldWUsIHByZXZBY3RTY29wZURlcHRoKTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXR1cm5WYWx1ZSA9IHJlc3VsdDsgLy8gVGhlIGNhbGxiYWNrIGlzIG5vdCBhbiBhc3luYyBmdW5jdGlvbi4gRXhpdCB0aGUgY3VycmVudFxuICAgICAgLy8gc2NvcGUgaW1tZWRpYXRlbHkuXG5cbiAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpO1xuXG4gICAgICBpZiAocHJldkFjdFNjb3BlRGVwdGggPT09IDApIHtcbiAgICAgICAgLy8gV2UncmUgZXhpdGluZyB0aGUgb3V0ZXJtb3N0IGBhY3RgIHNjb3BlLiBGbHVzaCB0aGUgcXVldWUuXG4gICAgICAgIGZsdXNoQWN0UXVldWUocXVldWUpOyAvLyBJZiB0aGUgcXVldWUgaXMgbm90IGVtcHR5LCBpdCBpbXBsaWVzIHRoYXQgd2UgaW50ZW50aW9uYWxseSB5aWVsZGVkXG4gICAgICAgIC8vIHRvIHRoZSBtYWluIHRocmVhZCwgYmVjYXVzZSBzb21ldGhpbmcgc3VzcGVuZGVkLiBXZSB3aWxsIGNvbnRpbnVlXG4gICAgICAgIC8vIGluIGFuIGFzeW5jaHJvbm91cyB0YXNrLlxuICAgICAgICAvL1xuICAgICAgICAvLyBXYXJuIGlmIHNvbWV0aGluZyBzdXNwZW5kcyBidXQgdGhlIGBhY3RgIGNhbGwgaXMgbm90IGF3YWl0ZWQuXG4gICAgICAgIC8vIEluIGEgZnV0dXJlIHJlbGVhc2UsIGNvbnNpZGVyIG1ha2luZyB0aGlzIGFuIGVycm9yLlxuXG4gICAgICAgIGlmIChxdWV1ZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICBxdWV1ZVNldmVyYWxNaWNyb3Rhc2tzKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghZGlkQXdhaXRBY3RDYWxsICYmICFkaWRXYXJuTm9Bd2FpdEFjdCkge1xuICAgICAgICAgICAgICBkaWRXYXJuTm9Bd2FpdEFjdCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgZXJyb3IoJ0EgY29tcG9uZW50IHN1c3BlbmRlZCBpbnNpZGUgYW4gYGFjdGAgc2NvcGUsIGJ1dCB0aGUgJyArICdgYWN0YCBjYWxsIHdhcyBub3QgYXdhaXRlZC4gV2hlbiB0ZXN0aW5nIFJlYWN0ICcgKyAnY29tcG9uZW50cyB0aGF0IGRlcGVuZCBvbiBhc3luY2hyb25vdXMgZGF0YSwgeW91IG11c3QgJyArICdhd2FpdCB0aGUgcmVzdWx0OlxcblxcbicgKyAnYXdhaXQgYWN0KCgpID0+IC4uLiknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSAvLyBMaWtlIG1hbnkgdGhpbmdzIGluIHRoaXMgbW9kdWxlLCB0aGlzIGlzIG5leHQgcGFydCBpcyBjb25mdXNpbmcuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIGRvIG5vdCBjdXJyZW50bHkgcmVxdWlyZSBldmVyeSBgYWN0YCBjYWxsIHRoYXQgaXMgcGFzc2VkIGFcbiAgICAgICAgLy8gY2FsbGJhY2sgdG8gYmUgYXdhaXRlZCwgdGhyb3VnaCBhcmd1YWJseSB3ZSBzaG91bGQuIFNpbmNlIHRoaXNcbiAgICAgICAgLy8gY2FsbGJhY2sgd2FzIHN5bmNocm9ub3VzLCB3ZSBuZWVkIHRvIGV4aXQgdGhlIGN1cnJlbnQgc2NvcGUgYmVmb3JlXG4gICAgICAgIC8vIHJldHVybmluZy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gSG93ZXZlciwgaWYgdGhlbmFibGUgd2UncmUgYWJvdXQgdG8gcmV0dXJuICppcyogYXdhaXRlZCwgd2UnbGxcbiAgICAgICAgLy8gaW1tZWRpYXRlbHkgcmVzdG9yZSB0aGUgY3VycmVudCBzY29wZS4gU28gaXQgc2hvdWxkbid0IG9ic2VydmFibGUuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoaXMgZG9lc24ndCBhZmZlY3QgdGhlIGNhc2Ugd2hlcmUgdGhlIHNjb3BlIGNhbGxiYWNrIGlzIGFzeW5jLFxuICAgICAgICAvLyBiZWNhdXNlIHdlIGFsd2F5cyByZXF1aXJlIHRob3NlIGNhbGxzIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRPRE86IEluIGEgZnV0dXJlIHZlcnNpb24sIGNvbnNpZGVyIGFsd2F5cyByZXF1aXJpbmcgYWxsIGBhY3RgIGNhbGxzXG4gICAgICAgIC8vIHRvIGJlIGF3YWl0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY2FsbGJhY2sgaXMgc3luYyBvciBhc3luYy5cblxuXG4gICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aGVuOiBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgZGlkQXdhaXRBY3RDYWxsID0gdHJ1ZTtcblxuICAgICAgICAgIGlmIChwcmV2QWN0U2NvcGVEZXB0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIGBhY3RgIGNhbGwgaXMgYXdhaXRlZCwgcmVzdG9yZSB0aGUgcXVldWUgd2Ugd2VyZVxuICAgICAgICAgICAgLy8gdXNpbmcgYmVmb3JlIChzZWUgbG9uZyBjb21tZW50IGFib3ZlKSBzbyB3ZSBjYW4gZmx1c2ggaXQuXG4gICAgICAgICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50ID0gcXVldWU7XG4gICAgICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiAoLy8gUmVjdXJzaXZlbHkgZmx1c2ggdGFza3Mgc2NoZWR1bGVkIGJ5IGEgbWljcm90YXNrLlxuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHJldHVyblZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpIHtcbiAge1xuICAgIGlmIChwcmV2QWN0U2NvcGVEZXB0aCAhPT0gYWN0U2NvcGVEZXB0aCAtIDEpIHtcbiAgICAgIGVycm9yKCdZb3Ugc2VlbSB0byBoYXZlIG92ZXJsYXBwaW5nIGFjdCgpIGNhbGxzLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnQmUgc3VyZSB0byBhd2FpdCBwcmV2aW91cyBhY3QoKSBjYWxscyBiZWZvcmUgbWFraW5nIGEgbmV3IG9uZS4gJyk7XG4gICAgfVxuXG4gICAgYWN0U2NvcGVEZXB0aCA9IHByZXZBY3RTY29wZURlcHRoO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCkge1xuICB7XG4gICAgLy8gQ2hlY2sgaWYgYW55IHRhc2tzIHdlcmUgc2NoZWR1bGVkIGFzeW5jaHJvbm91c2x5LlxuICAgIHZhciBxdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG5cbiAgICBpZiAocXVldWUgIT09IG51bGwpIHtcbiAgICAgIGlmIChxdWV1ZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgLy8gQXN5bmMgdGFza3Mgd2VyZSBzY2hlZHVsZWQsIG1vc3RseSBsaWtlbHkgaW4gYSBtaWNyb3Rhc2suXG4gICAgICAgIC8vIEtlZXAgZmx1c2hpbmcgdW50aWwgdGhlcmUgYXJlIG5vIG1vcmUuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZmx1c2hBY3RRdWV1ZShxdWV1ZSk7IC8vIFRoZSB3b3JrIHdlIGp1c3QgcGVyZm9ybWVkIG1heSBoYXZlIHNjaGVkdWxlIGFkZGl0aW9uYWwgYXN5bmNcbiAgICAgICAgICAvLyB0YXNrcy4gV2FpdCBhIG1hY3JvdGFzayBhbmQgY2hlY2sgYWdhaW4uXG5cbiAgICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBMZWF2ZSByZW1haW5pbmcgdGFza3Mgb24gdGhlIHF1ZXVlIGlmIHNvbWV0aGluZyB0aHJvd3MuXG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIHF1ZXVlIGlzIGVtcHR5LiBXZSBjYW4gZmluaXNoLlxuICAgICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgaXNGbHVzaGluZyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSB7XG4gIHtcbiAgICBpZiAoIWlzRmx1c2hpbmcpIHtcbiAgICAgIC8vIFByZXZlbnQgcmUtZW50cmFuY2UuXG4gICAgICBpc0ZsdXNoaW5nID0gdHJ1ZTtcbiAgICAgIHZhciBpID0gMDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICg7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjYWxsYmFjayA9IHF1ZXVlW2ldO1xuXG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkVXNlUHJvbWlzZSA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIGNvbnRpbnVhdGlvbiA9IGNhbGxiYWNrKGZhbHNlKTtcblxuICAgICAgICAgICAgaWYgKGNvbnRpbnVhdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBpZiAoUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkVXNlUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBjb21wb25lbnQganVzdCBzdXNwZW5kZWQuIFlpZWxkIHRvIHRoZSBtYWluIHRocmVhZCBpblxuICAgICAgICAgICAgICAgIC8vIGNhc2UgdGhlIHByb21pc2UgaXMgYWxyZWFkeSByZXNvbHZlZC4gSWYgc28sIGl0IHdpbGwgcGluZyBpblxuICAgICAgICAgICAgICAgIC8vIGEgbWljcm90YXNrIGFuZCB3ZSBjYW4gcmVzdW1lIHdpdGhvdXQgdW53aW5kaW5nIHRoZSBzdGFjay5cbiAgICAgICAgICAgICAgICBxdWV1ZVtpXSA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIHF1ZXVlLnNwbGljZSgwLCBpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjYWxsYmFjayA9IGNvbnRpbnVhdGlvbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gd2hpbGUgKHRydWUpO1xuICAgICAgICB9IC8vIFdlIGZsdXNoZWQgdGhlIGVudGlyZSBxdWV1ZS5cblxuXG4gICAgICAgIHF1ZXVlLmxlbmd0aCA9IDA7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJZiBzb21ldGhpbmcgdGhyb3dzLCBsZWF2ZSB0aGUgcmVtYWluaW5nIGNhbGxiYWNrcyBvbiB0aGUgcXVldWUuXG4gICAgICAgIHF1ZXVlLnNwbGljZSgwLCBpICsgMSk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaXNGbHVzaGluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyBTb21lIG9mIG91ciB3YXJuaW5ncyBhdHRlbXB0IHRvIGRldGVjdCBpZiB0aGUgYGFjdGAgY2FsbCBpcyBhd2FpdGVkIGJ5XG4vLyBjaGVja2luZyBpbiBhbiBhc3luY2hyb25vdXMgdGFzay4gV2FpdCBhIGZldyBtaWNyb3Rhc2tzIGJlZm9yZSBjaGVja2luZy4gVGhlXG4vLyBvbmx5IHJlYXNvbiBvbmUgaXNuJ3Qgc3VmZmljaWVudCBpcyB3ZSB3YW50IHRvIGFjY29tbW9kYXRlIHRoZSBjYXNlIHdoZXJlIGFuXG4vLyBgYWN0YCBjYWxsIGlzIHJldHVybmVkIGZyb20gYW4gYXN5bmMgZnVuY3Rpb24gd2l0aG91dCBmaXJzdCBiZWluZyBhd2FpdGVkLFxuLy8gc2luY2UgdGhhdCdzIGEgc29tZXdoYXQgY29tbW9uIHBhdHRlcm4uIElmIHlvdSBkbyB0aGlzIHRvbyBtYW55IHRpbWVzIGluIGFcbi8vIG5lc3RlZCBzZXF1ZW5jZSwgeW91IG1pZ2h0IGdldCBhIHdhcm5pbmcsIGJ1dCB5b3UgY2FuIGFsd2F5cyBmaXggYnkgYXdhaXRpbmdcbi8vIHRoZSBjYWxsLlxuLy9cbi8vIEEgbWFjcm90YXNrIHdvdWxkIGFsc28gd29yayAoYW5kIGlzIHRoZSBmYWxsYmFjaykgYnV0IGRlcGVuZGluZyBvbiB0aGUgdGVzdFxuLy8gZW52aXJvbm1lbnQgaXQgbWF5IGNhdXNlIHRoZSB3YXJuaW5nIHRvIGZpcmUgdG9vIGxhdGUuXG5cblxudmFyIHF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MgPSB0eXBlb2YgcXVldWVNaWNyb3Rhc2sgPT09ICdmdW5jdGlvbicgPyBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgcXVldWVNaWNyb3Rhc2soZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBxdWV1ZU1pY3JvdGFzayhjYWxsYmFjayk7XG4gIH0pO1xufSA6IGVucXVldWVUYXNrO1xuXG52YXIgY3JlYXRlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY2xvbmVFbGVtZW50ID0gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24gO1xudmFyIGNyZWF0ZUZhY3RvcnkgPSBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG5leHBvcnRzLlByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbmV4cG9ydHMuUHVyZUNvbXBvbmVudCA9IFB1cmVDb21wb25lbnQ7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gUmVhY3RTaGFyZWRJbnRlcm5hbHM7XG5leHBvcnRzLmNhY2hlID0gY2FjaGU7XG5leHBvcnRzLmNsb25lRWxlbWVudCA9IGNsb25lRWxlbWVudDtcbmV4cG9ydHMuY3JlYXRlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ7XG5leHBvcnRzLmNyZWF0ZUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50O1xuZXhwb3J0cy5jcmVhdGVGYWN0b3J5ID0gY3JlYXRlRmFjdG9yeTtcbmV4cG9ydHMuY3JlYXRlUmVmID0gY3JlYXRlUmVmO1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSBpc1ZhbGlkRWxlbWVudDtcbmV4cG9ydHMubGF6eSA9IGxhenk7XG5leHBvcnRzLm1lbW8gPSBtZW1vO1xuZXhwb3J0cy5zdGFydFRyYW5zaXRpb24gPSBzdGFydFRyYW5zaXRpb247XG5leHBvcnRzLnVuc3RhYmxlX2FjdCA9IGFjdDtcbmV4cG9ydHMudW5zdGFibGVfdXNlQ2FjaGVSZWZyZXNoID0gdXNlQ2FjaGVSZWZyZXNoO1xuZXhwb3J0cy51c2UgPSB1c2U7XG5leHBvcnRzLnVzZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2s7XG5leHBvcnRzLnVzZUNvbnRleHQgPSB1c2VDb250ZXh0O1xuZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlID0gdXNlRGVidWdWYWx1ZTtcbmV4cG9ydHMudXNlRGVmZXJyZWRWYWx1ZSA9IHVzZURlZmVycmVkVmFsdWU7XG5leHBvcnRzLnVzZUVmZmVjdCA9IHVzZUVmZmVjdDtcbmV4cG9ydHMudXNlSWQgPSB1c2VJZDtcbmV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IHVzZUltcGVyYXRpdmVIYW5kbGU7XG5leHBvcnRzLnVzZUluc2VydGlvbkVmZmVjdCA9IHVzZUluc2VydGlvbkVmZmVjdDtcbmV4cG9ydHMudXNlTGF5b3V0RWZmZWN0ID0gdXNlTGF5b3V0RWZmZWN0O1xuZXhwb3J0cy51c2VNZW1vID0gdXNlTWVtbztcbmV4cG9ydHMudXNlT3B0aW1pc3RpYyA9IHVzZU9wdGltaXN0aWM7XG5leHBvcnRzLnVzZVJlZHVjZXIgPSB1c2VSZWR1Y2VyO1xuZXhwb3J0cy51c2VSZWYgPSB1c2VSZWY7XG5leHBvcnRzLnVzZVN0YXRlID0gdXNlU3RhdGU7XG5leHBvcnRzLnVzZVN5bmNFeHRlcm5hbFN0b3JlID0gdXNlU3luY0V4dGVybmFsU3RvcmU7XG5leHBvcnRzLnVzZVRyYW5zaXRpb24gPSB1c2VUcmFuc2l0aW9uO1xuZXhwb3J0cy52ZXJzaW9uID0gUmVhY3RWZXJzaW9uO1xuICAgICAgICAgIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbmlmIChcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcCA9PT1cbiAgICAnZnVuY3Rpb24nXG4pIHtcbiAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wKG5ldyBFcnJvcigpKTtcbn1cbiAgICAgICAgXG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOlsicHJvY2VzcyIsIl9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyIsInJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydCIsIkVycm9yIiwiUmVhY3RWZXJzaW9uIiwiUkVBQ1RfRUxFTUVOVF9UWVBFIiwiU3ltYm9sIiwiZm9yIiwiUkVBQ1RfUE9SVEFMX1RZUEUiLCJSRUFDVF9GUkFHTUVOVF9UWVBFIiwiUkVBQ1RfU1RSSUNUX01PREVfVFlQRSIsIlJFQUNUX1BST0ZJTEVSX1RZUEUiLCJSRUFDVF9QUk9WSURFUl9UWVBFIiwiUkVBQ1RfQ09OVEVYVF9UWVBFIiwiUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJSRUFDVF9PRkZTQ1JFRU5fVFlQRSIsIlJFQUNUX0NBQ0hFX1RZUEUiLCJNQVlCRV9JVEVSQVRPUl9TWU1CT0wiLCJpdGVyYXRvciIsIkZBVVhfSVRFUkFUT1JfU1lNQk9MIiwiZ2V0SXRlcmF0b3JGbiIsIm1heWJlSXRlcmFibGUiLCJtYXliZUl0ZXJhdG9yIiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxIiwiY3VycmVudCIsIlJlYWN0Q3VycmVudENhY2hlIiwiUmVhY3RDdXJyZW50QmF0Y2hDb25maWciLCJ0cmFuc2l0aW9uIiwiUmVhY3RDdXJyZW50QWN0UXVldWUiLCJpc0JhdGNoaW5nTGVnYWN5IiwiZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUiLCJkaWRVc2VQcm9taXNlIiwiUmVhY3RDdXJyZW50T3duZXIiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEiLCJjdXJyZW50RXh0cmFTdGFja0ZyYW1lIiwic2V0RXh0cmFTdGFja0ZyYW1lIiwic3RhY2siLCJnZXRDdXJyZW50U3RhY2siLCJnZXRTdGFja0FkZGVuZHVtIiwiaW1wbCIsImVuYWJsZVNjb3BlQVBJIiwiZW5hYmxlQ2FjaGVFbGVtZW50IiwiZW5hYmxlVHJhbnNpdGlvblRyYWNpbmciLCJlbmFibGVMZWdhY3lIaWRkZW4iLCJlbmFibGVEZWJ1Z1RyYWNpbmciLCJSZWFjdFNoYXJlZEludGVybmFscyIsIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCJSZWFjdERlYnVnQ3VycmVudEZyYW1lIiwid2FybiIsImZvcm1hdCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwicHJpbnRXYXJuaW5nIiwiZXJyb3IiLCJfbGVuMiIsIl9rZXkyIiwibGV2ZWwiLCJjb25jYXQiLCJhcmdzV2l0aEZvcm1hdCIsIm1hcCIsIml0ZW0iLCJTdHJpbmciLCJ1bnNoaWZ0IiwiRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJhcHBseSIsImNhbGwiLCJjb25zb2xlIiwiZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50Iiwid2Fybk5vb3AiLCJwdWJsaWNJbnN0YW5jZSIsImNhbGxlck5hbWUiLCJfY29uc3RydWN0b3IiLCJjb25zdHJ1Y3RvciIsImNvbXBvbmVudE5hbWUiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJ3YXJuaW5nS2V5IiwiUmVhY3ROb29wVXBkYXRlUXVldWUiLCJpc01vdW50ZWQiLCJlbnF1ZXVlRm9yY2VVcGRhdGUiLCJjYWxsYmFjayIsImVucXVldWVSZXBsYWNlU3RhdGUiLCJjb21wbGV0ZVN0YXRlIiwiZW5xdWV1ZVNldFN0YXRlIiwicGFydGlhbFN0YXRlIiwiYXNzaWduIiwiT2JqZWN0IiwiZW1wdHlPYmplY3QiLCJmcmVlemUiLCJDb21wb25lbnQiLCJwcm9wcyIsImNvbnRleHQiLCJ1cGRhdGVyIiwicmVmcyIsImlzUmVhY3RDb21wb25lbnQiLCJzZXRTdGF0ZSIsImZvcmNlVXBkYXRlIiwiZGVwcmVjYXRlZEFQSXMiLCJyZXBsYWNlU3RhdGUiLCJkZWZpbmVEZXByZWNhdGlvbldhcm5pbmciLCJtZXRob2ROYW1lIiwiaW5mbyIsImRlZmluZVByb3BlcnR5IiwiZ2V0IiwidW5kZWZpbmVkIiwiZm5OYW1lIiwiaGFzT3duUHJvcGVydHkiLCJDb21wb25lbnREdW1teSIsIlB1cmVDb21wb25lbnQiLCJwdXJlQ29tcG9uZW50UHJvdG90eXBlIiwiaXNQdXJlUmVhY3RDb21wb25lbnQiLCJjcmVhdGVSZWYiLCJyZWZPYmplY3QiLCJzZWFsIiwiaXNBcnJheUltcGwiLCJpc0FycmF5IiwiYSIsInR5cGVOYW1lIiwidmFsdWUiLCJoYXNUb1N0cmluZ1RhZyIsInRvU3RyaW5nVGFnIiwidHlwZSIsIndpbGxDb2VyY2lvblRocm93IiwidGVzdFN0cmluZ0NvZXJjaW9uIiwiZSIsImNoZWNrS2V5U3RyaW5nQ29lcmNpb24iLCJnZXRXcmFwcGVkTmFtZSIsIm91dGVyVHlwZSIsImlubmVyVHlwZSIsIndyYXBwZXJOYW1lIiwiZnVuY3Rpb25OYW1lIiwiZ2V0Q29udGV4dE5hbWUiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIiLCJnZXRDb21wb25lbnROYW1lRnJvbVR5cGUiLCIkJHR5cGVvZiIsInRhZyIsInByb3ZpZGVyIiwiX2NvbnRleHQiLCJyZW5kZXIiLCJvdXRlck5hbWUiLCJsYXp5Q29tcG9uZW50IiwicGF5bG9hZCIsIl9wYXlsb2FkIiwiaW5pdCIsIl9pbml0IiwieCIsIlJFU0VSVkVEX1BST1BTIiwia2V5IiwicmVmIiwiX19zZWxmIiwiX19zb3VyY2UiLCJzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biIsInNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duIiwiZGlkV2FybkFib3V0U3RyaW5nUmVmcyIsImhhc1ZhbGlkUmVmIiwiY29uZmlnIiwiZ2V0dGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiaXNSZWFjdFdhcm5pbmciLCJoYXNWYWxpZEtleSIsImRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyIiwid2FybkFib3V0QWNjZXNzaW5nS2V5IiwiY29uZmlndXJhYmxlIiwiZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIiLCJ3YXJuQWJvdXRBY2Nlc3NpbmdSZWYiLCJ3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQiLCJzdGF0ZU5vZGUiLCJSZWFjdEVsZW1lbnQiLCJzZWxmIiwic291cmNlIiwib3duZXIiLCJlbGVtZW50IiwiX293bmVyIiwiX3N0b3JlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiY3JlYXRlRWxlbWVudCQxIiwiY2hpbGRyZW4iLCJwcm9wTmFtZSIsImNoaWxkcmVuTGVuZ3RoIiwiY2hpbGRBcnJheSIsImkiLCJkZWZhdWx0UHJvcHMiLCJjbG9uZUFuZFJlcGxhY2VLZXkiLCJvbGRFbGVtZW50IiwibmV3S2V5IiwibmV3RWxlbWVudCIsIl9zZWxmIiwiX3NvdXJjZSIsImNsb25lRWxlbWVudCQxIiwiaXNWYWxpZEVsZW1lbnQiLCJvYmplY3QiLCJTRVBBUkFUT1IiLCJTVUJTRVBBUkFUT1IiLCJlc2NhcGUiLCJlc2NhcGVSZWdleCIsImVzY2FwZXJMb29rdXAiLCJlc2NhcGVkU3RyaW5nIiwicmVwbGFjZSIsIm1hdGNoIiwiZGlkV2FybkFib3V0TWFwcyIsInVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4IiwiZXNjYXBlVXNlclByb3ZpZGVkS2V5IiwidGV4dCIsImdldEVsZW1lbnRLZXkiLCJpbmRleCIsInRvU3RyaW5nIiwibWFwSW50b0FycmF5IiwiYXJyYXkiLCJlc2NhcGVkUHJlZml4IiwibmFtZVNvRmFyIiwiaW52b2tlQ2FsbGJhY2siLCJfY2hpbGQiLCJtYXBwZWRDaGlsZCIsImNoaWxkS2V5IiwiZXNjYXBlZENoaWxkS2V5IiwiYyIsInB1c2giLCJjaGlsZCIsIm5leHROYW1lIiwic3VidHJlZUNvdW50IiwibmV4dE5hbWVQcmVmaXgiLCJpdGVyYXRvckZuIiwiaXRlcmFibGVDaGlsZHJlbiIsImVudHJpZXMiLCJzdGVwIiwiaWkiLCJuZXh0IiwiZG9uZSIsImNoaWxkcmVuU3RyaW5nIiwia2V5cyIsImpvaW4iLCJtYXBDaGlsZHJlbiIsImZ1bmMiLCJyZXN1bHQiLCJjb3VudCIsImNvdW50Q2hpbGRyZW4iLCJuIiwiZm9yRWFjaENoaWxkcmVuIiwiZm9yRWFjaEZ1bmMiLCJmb3JFYWNoQ29udGV4dCIsInRvQXJyYXkiLCJvbmx5Q2hpbGQiLCJjcmVhdGVDb250ZXh0IiwiZGVmYXVsdFZhbHVlIiwiX2N1cnJlbnRWYWx1ZSIsIl9jdXJyZW50VmFsdWUyIiwiX3RocmVhZENvdW50IiwiUHJvdmlkZXIiLCJDb25zdW1lciIsIl9kZWZhdWx0VmFsdWUiLCJfZ2xvYmFsTmFtZSIsImhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzIiwiaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIiLCJoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lciIsImRlZmluZVByb3BlcnRpZXMiLCJzZXQiLCJfUHJvdmlkZXIiLCJfY3VycmVudFJlbmRlcmVyIiwiX2N1cnJlbnRSZW5kZXJlcjIiLCJVbmluaXRpYWxpemVkIiwiUGVuZGluZyIsIlJlc29sdmVkIiwiUmVqZWN0ZWQiLCJsYXp5SW5pdGlhbGl6ZXIiLCJfc3RhdHVzIiwiY3RvciIsIl9yZXN1bHQiLCJ0aGVuYWJsZSIsInRoZW4iLCJtb2R1bGVPYmplY3QiLCJyZXNvbHZlZCIsInJlamVjdGVkIiwicGVuZGluZyIsImRlZmF1bHQiLCJsYXp5IiwibGF6eVR5cGUiLCJwcm9wVHlwZXMiLCJuZXdEZWZhdWx0UHJvcHMiLCJuZXdQcm9wVHlwZXMiLCJmb3J3YXJkUmVmIiwiZWxlbWVudFR5cGUiLCJvd25OYW1lIiwiUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQxIiwiaXNWYWxpZEVsZW1lbnRUeXBlIiwiZ2V0TW9kdWxlSWQiLCJtZW1vIiwiY29tcGFyZSIsIlVOVEVSTUlOQVRFRCIsIlRFUk1JTkFURUQiLCJFUlJPUkVEIiwiY3JlYXRlQ2FjaGVSb290IiwiV2Vha01hcCIsImNyZWF0ZUNhY2hlTm9kZSIsInMiLCJ2IiwibyIsInAiLCJjYWNoZSIsImZuIiwiZGlzcGF0Y2hlciIsImZuTWFwIiwiZ2V0Q2FjaGVGb3JUeXBlIiwiZm5Ob2RlIiwiY2FjaGVOb2RlIiwibCIsImFyZyIsIm9iamVjdENhY2hlIiwib2JqZWN0Tm9kZSIsInByaW1pdGl2ZUNhY2hlIiwiTWFwIiwicHJpbWl0aXZlTm9kZSIsInRlcm1pbmF0ZWROb2RlIiwiZXJyb3JlZE5vZGUiLCJyZXNvbHZlRGlzcGF0Y2hlciIsInVzZUNvbnRleHQiLCJDb250ZXh0IiwicmVhbENvbnRleHQiLCJ1c2VTdGF0ZSIsImluaXRpYWxTdGF0ZSIsInVzZVJlZHVjZXIiLCJyZWR1Y2VyIiwiaW5pdGlhbEFyZyIsInVzZVJlZiIsImluaXRpYWxWYWx1ZSIsInVzZUVmZmVjdCIsImNyZWF0ZSIsImRlcHMiLCJ1c2VJbnNlcnRpb25FZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlRGVidWdWYWx1ZSIsImZvcm1hdHRlckZuIiwidXNlVHJhbnNpdGlvbiIsInVzZURlZmVycmVkVmFsdWUiLCJ1c2VJZCIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwic3Vic2NyaWJlIiwiZ2V0U25hcHNob3QiLCJnZXRTZXJ2ZXJTbmFwc2hvdCIsInVzZUNhY2hlUmVmcmVzaCIsInVzZSIsInVzYWJsZSIsInVzZU9wdGltaXN0aWMiLCJwYXNzdGhyb3VnaCIsImRpc2FibGVkRGVwdGgiLCJwcmV2TG9nIiwicHJldkluZm8iLCJwcmV2V2FybiIsInByZXZFcnJvciIsInByZXZHcm91cCIsInByZXZHcm91cENvbGxhcHNlZCIsInByZXZHcm91cEVuZCIsImRpc2FibGVkTG9nIiwiX19yZWFjdERpc2FibGVkTG9nIiwiZGlzYWJsZUxvZ3MiLCJsb2ciLCJncm91cCIsImdyb3VwQ29sbGFwc2VkIiwiZ3JvdXBFbmQiLCJyZWVuYWJsZUxvZ3MiLCJwcmVmaXgiLCJkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSIsIm93bmVyRm4iLCJ0cmltIiwicmVlbnRyeSIsImNvbXBvbmVudEZyYW1lQ2FjaGUiLCJQb3NzaWJseVdlYWtNYXAiLCJkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lIiwiY29uc3RydWN0IiwiZnJhbWUiLCJwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJwcmV2aW91c0Rpc3BhdGNoZXIiLCJSdW5JblJvb3RGcmFtZSIsIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCIsImNvbnRyb2wiLCJGYWtlIiwiUmVmbGVjdCIsIm1heWJlUHJvbWlzZSIsImNhdGNoIiwic2FtcGxlIiwibmFtZVByb3BEZXNjcmlwdG9yIiwiX1J1bkluUm9vdEZyYW1lJERldGVyIiwic2FtcGxlU3RhY2siLCJjb250cm9sU3RhY2siLCJzYW1wbGVMaW5lcyIsInNwbGl0IiwiY29udHJvbExpbmVzIiwiaW5jbHVkZXMiLCJfZnJhbWUiLCJzeW50aGV0aWNGcmFtZSIsImRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSIsInNob3VsZENvbnN0cnVjdCIsImRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFViIsImxvZ2dlZFR5cGVGYWlsdXJlcyIsInNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEiLCJjaGVja1Byb3BUeXBlcyIsInR5cGVTcGVjcyIsInZhbHVlcyIsImxvY2F0aW9uIiwiaGFzIiwiYmluZCIsInR5cGVTcGVjTmFtZSIsImVycm9yJDEiLCJlcnIiLCJleCIsIm1lc3NhZ2UiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFIiwic2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQiLCJwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biIsImdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSIsImdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtIiwiZmlsZU5hbWUiLCJsaW5lTnVtYmVyIiwiZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW1Gb3JQcm9wcyIsImVsZW1lbnRQcm9wcyIsIm93bmVySGFzS2V5VXNlV2FybmluZyIsImdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8iLCJwYXJlbnRUeXBlIiwicGFyZW50TmFtZSIsInZhbGlkYXRlRXhwbGljaXRLZXkiLCJ2YWxpZGF0ZWQiLCJjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvIiwiY2hpbGRPd25lciIsInZhbGlkYXRlQ2hpbGRLZXlzIiwibm9kZSIsInZhbGlkYXRlUHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiX25hbWUiLCJnZXREZWZhdWx0UHJvcHMiLCJpc1JlYWN0Q2xhc3NBcHByb3ZlZCIsInZhbGlkYXRlRnJhZ21lbnRQcm9wcyIsImZyYWdtZW50IiwiY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIiwidmFsaWRUeXBlIiwic291cmNlSW5mbyIsInR5cGVTdHJpbmciLCJkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSIsImNyZWF0ZUZhY3RvcnlXaXRoVmFsaWRhdGlvbiIsInZhbGlkYXRlZEZhY3RvcnkiLCJjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiIsInN0YXJ0VHJhbnNpdGlvbiIsInNjb3BlIiwib3B0aW9ucyIsInByZXZUcmFuc2l0aW9uIiwiY3VycmVudFRyYW5zaXRpb24iLCJfdXBkYXRlZEZpYmVycyIsIlNldCIsInVwZGF0ZWRGaWJlcnNDb3VudCIsInNpemUiLCJjbGVhciIsImRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsIiwiZW5xdWV1ZVRhc2tJbXBsIiwiZW5xdWV1ZVRhc2siLCJ0YXNrIiwicmVxdWlyZVN0cmluZyIsIk1hdGgiLCJyYW5kb20iLCJzbGljZSIsIm5vZGVSZXF1aXJlIiwibW9kdWxlIiwic2V0SW1tZWRpYXRlIiwiX2VyciIsIk1lc3NhZ2VDaGFubmVsIiwiY2hhbm5lbCIsInBvcnQxIiwib25tZXNzYWdlIiwicG9ydDIiLCJwb3N0TWVzc2FnZSIsImFjdFNjb3BlRGVwdGgiLCJkaWRXYXJuTm9Bd2FpdEFjdCIsImFjdCIsInByZXZJc0JhdGNoaW5nTGVnYWN5IiwicHJldkFjdFF1ZXVlIiwicHJldkFjdFNjb3BlRGVwdGgiLCJxdWV1ZSIsImRpZEF3YWl0QWN0Q2FsbCIsImZsdXNoQWN0UXVldWUiLCJwb3BBY3RTY29wZSIsInF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MiLCJyZXNvbHZlIiwicmVqZWN0IiwicmV0dXJuVmFsdWUiLCJyZWN1cnNpdmVseUZsdXNoQXN5bmNBY3RXb3JrIiwiaXNGbHVzaGluZyIsImNvbnRpbnVhdGlvbiIsInNwbGljZSIsInF1ZXVlTWljcm90YXNrIiwiY3JlYXRlRWxlbWVudCIsImNsb25lRWxlbWVudCIsImNyZWF0ZUZhY3RvcnkiLCJDaGlsZHJlbiIsImZvckVhY2giLCJvbmx5IiwiZXhwb3J0cyIsIkZyYWdtZW50IiwiUHJvZmlsZXIiLCJTdHJpY3RNb2RlIiwiU3VzcGVuc2UiLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsInVuc3RhYmxlX2FjdCIsInVuc3RhYmxlX3VzZUNhY2hlUmVmcmVzaCIsInZlcnNpb24iLCJyZWdpc3RlckludGVybmFsTW9kdWxlU3RvcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react/cjs/react.development.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react/cjs/react.shared-subset.development.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/cjs/react.shared-subset.development.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-eval("/**\n * @license React\n * react.shared-subset.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \nif (true) {\n (function() {\n \"use strict\";\n /**\n * Keeps track of the current dispatcher.\n */ var ReactCurrentDispatcher$1 = {\n current: null\n };\n /**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */ var ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */ current: null\n };\n var ReactDebugCurrentFrame$1 = {};\n var currentExtraStackFrame = null;\n function setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n }\n {\n ReactDebugCurrentFrame$1.setExtraStackFrame = function(stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n ReactDebugCurrentFrame$1.getCurrentStack = null;\n ReactDebugCurrentFrame$1.getStackAddendum = function() {\n var stack = \"\"; // Add an extra top frame while an element is being validated\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n var impl = ReactDebugCurrentFrame$1.getCurrentStack;\n if (impl) {\n stack += impl() || \"\";\n }\n return stack;\n };\n }\n // -----------------------------------------------------------------------------\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n var enableCacheElement = false;\n var enableTransitionTracing = false; // No known bugs, but needs performance testing\n var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n // stuff. Intended to enable React core members to more easily debug scheduling\n // issues in DEV builds.\n var enableDebugTracing = false;\n var ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher$1,\n ReactCurrentOwner: ReactCurrentOwner\n };\n {\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame$1;\n }\n // by calls to these methods by a Babel plugin.\n //\n // In PROD (or in packages without access to React internals),\n // they are left as they are instead.\n function warn(format) {\n {\n {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n printWarning(\"warn\", format, args);\n }\n }\n }\n function error(format) {\n {\n {\n for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++){\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning(\"error\", format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== \"\") {\n format += \"%s\";\n args = args.concat([\n stack\n ]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n var argsWithFormat = args.map(function(item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n argsWithFormat.unshift(\"Warning: \" + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n var assign = Object.assign;\n /**\n * Keeps track of the current Cache dispatcher.\n */ var ReactCurrentCache = {\n current: null\n };\n function createFetchCache() {\n return new Map();\n }\n var simpleCacheKey = '[\"GET\",[],null,\"follow\",null,null,null,null]'; // generateCacheKey(new Request('https://blank'));\n function generateCacheKey(request) {\n // We pick the fields that goes into the key used to dedupe requests.\n // We don't include the `cache` field, because we end up using whatever\n // caching resulted from the first request.\n // Notably we currently don't consider non-standard (or future) options.\n // This might not be safe. TODO: warn for non-standard extensions differing.\n // IF YOU CHANGE THIS UPDATE THE simpleCacheKey ABOVE.\n return JSON.stringify([\n request.method,\n Array.from(request.headers.entries()),\n request.mode,\n request.redirect,\n request.credentials,\n request.referrer,\n request.referrerPolicy,\n request.integrity\n ]);\n }\n {\n if (typeof fetch === \"function\") {\n var originalFetch = fetch;\n var cachedFetch = function fetch1(resource, options) {\n var dispatcher = ReactCurrentCache.current;\n if (!dispatcher) {\n // We're outside a cached scope.\n return originalFetch(resource, options);\n }\n if (options && options.signal && options.signal !== dispatcher.getCacheSignal()) {\n // If we're passed a signal that is not ours, then we assume that\n // someone else controls the lifetime of this object and opts out of\n // caching. It's effectively the opt-out mechanism.\n // Ideally we should be able to check this on the Request but\n // it always gets initialized with its own signal so we don't\n // know if it's supposed to override - unless we also override the\n // Request constructor.\n return originalFetch(resource, options);\n } // Normalize the Request\n var url;\n var cacheKey;\n if (typeof resource === \"string\" && !options) {\n // Fast path.\n cacheKey = simpleCacheKey;\n url = resource;\n } else {\n // Normalize the request.\n // if resource is not a string or a URL (its an instance of Request)\n // then do not instantiate a new Request but instead\n // reuse the request as to not disturb the body in the event it's a ReadableStream.\n var request = typeof resource === \"string\" || resource instanceof URL ? new Request(resource, options) : resource;\n if (request.method !== \"GET\" && request.method !== \"HEAD\" || // $FlowFixMe[prop-missing]: keepalive is real\n request.keepalive) {\n // We currently don't dedupe requests that might have side-effects. Those\n // have to be explicitly cached. We assume that the request doesn't have a\n // body if it's GET or HEAD.\n // keepalive gets treated the same as if you passed a custom cache signal.\n return originalFetch(resource, options);\n }\n cacheKey = generateCacheKey(request);\n url = request.url;\n }\n var cache = dispatcher.getCacheForType(createFetchCache);\n var cacheEntries = cache.get(url);\n var match;\n if (cacheEntries === undefined) {\n // We pass the original arguments here in case normalizing the Request\n // doesn't include all the options in this environment.\n match = originalFetch(resource, options);\n cache.set(url, [\n cacheKey,\n match\n ]);\n } else {\n // We use an array as the inner data structure since it's lighter and\n // we typically only expect to see one or two entries here.\n for(var i = 0, l = cacheEntries.length; i < l; i += 2){\n var key = cacheEntries[i];\n var value = cacheEntries[i + 1];\n if (key === cacheKey) {\n match = value; // I would've preferred a labelled break but lint says no.\n return match.then(function(response) {\n return response.clone();\n });\n }\n }\n match = originalFetch(resource, options);\n cacheEntries.push(cacheKey, match);\n } // We clone the response so that each time you call this you get a new read\n // of the body so that it can be read multiple times.\n return match.then(function(response) {\n return response.clone();\n });\n }; // We don't expect to see any extra properties on fetch but if there are any,\n // copy them over. Useful for extended fetch environments or mocks.\n assign(cachedFetch, originalFetch);\n try {\n // eslint-disable-next-line no-native-reassign\n fetch = cachedFetch;\n } catch (error1) {\n try {\n // In case assigning it globally fails, try globalThis instead just in case it exists.\n globalThis.fetch = cachedFetch;\n } catch (error2) {\n // Log even in production just to make sure this is seen if only prod is frozen.\n // eslint-disable-next-line react-internal/no-production-logging\n warn(\"React was unable to patch the fetch() function in this environment. \" + \"Suspensey APIs might not work correctly as a result.\");\n }\n }\n }\n }\n var ReactServerSharedInternals = {\n ReactCurrentCache: ReactCurrentCache\n };\n var ReactVersion = \"18.3.0-canary-60a927d04-20240113\";\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types.\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.element\");\n var REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n var REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\");\n var REACT_CONTEXT_TYPE = Symbol.for(\"react.context\");\n var REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE = Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n var REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\n var REACT_CACHE_TYPE = Symbol.for(\"react.cache\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== \"object\") {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === \"function\") {\n return maybeIterator;\n }\n return null;\n }\n var didWarnStateUpdateForUnmountedComponent = {};\n function warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || \"ReactClass\";\n var warningKey = componentName + \".\" + callerName;\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n error(\"Can't call %s on a component that is not yet mounted. \" + \"This is a no-op, but it might indicate a bug in your application. \" + \"Instead, assign to `this.state` directly or define a `state = {};` \" + \"class property with the desired state in the %s component.\", callerName, componentName);\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n }\n /**\n * This is the abstract API for an update queue.\n */ var ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */ isMounted: function(publicInstance) {\n return false;\n },\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */ enqueueForceUpdate: function(publicInstance, callback, callerName) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */ enqueueReplaceState: function(publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, \"replaceState\");\n },\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */ enqueueSetState: function(publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, \"setState\");\n }\n };\n var emptyObject = {};\n {\n Object.freeze(emptyObject);\n }\n /**\n * Base class helpers for the updating state of a component.\n */ function Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n }\n Component.prototype.isReactComponent = {};\n /**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */ Component.prototype.setState = function(partialState, callback) {\n if (typeof partialState !== \"object\" && typeof partialState !== \"function\" && partialState != null) {\n throw new Error(\"setState(...): takes an object of state variables to update or a \" + \"function which returns an object of state variables.\");\n }\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */ Component.prototype.forceUpdate = function(callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n /**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */ {\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in \" + \"componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see \" + \"https://github.com/facebook/react/issues/3236).\"\n ]\n };\n var defineDeprecationWarning = function(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function() {\n warn(\"%s(...) is deprecated in plain JavaScript React classes. %s\", info[0], info[1]);\n return undefined;\n }\n });\n };\n for(var fnName in deprecatedAPIs){\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n }\n function ComponentDummy() {}\n ComponentDummy.prototype = Component.prototype;\n /**\n * Convenience component with default shallow equality check for sCU.\n */ function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\n pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n assign(pureComponentPrototype, Component.prototype);\n pureComponentPrototype.isPureReactComponent = true;\n // an immutable object with a single mutable value\n function createRef() {\n var refObject = {\n current: null\n };\n {\n Object.seal(refObject);\n }\n return refObject;\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n function isArray(a) {\n return isArrayImpl(a);\n }\n /*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */ // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === \"function\" && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || \"Object\"; // $FlowFixMe[incompatible-return]\n return type;\n }\n } // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n function willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n }\n function testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error(\"The provided key is an unsupported type %s.\" + \" This value must be coerced to a string before using it here.\", typeName(value));\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n }\n function getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n if (displayName) {\n return displayName;\n }\n var functionName = innerType.displayName || innerType.name || \"\";\n return functionName !== \"\" ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n } // Keep in sync with react-reconciler/getComponentNameFromFiber\n function getContextName(type) {\n return type.displayName || \"Context\";\n }\n var REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\"); // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n function getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n if (typeof type === \"function\") {\n if (type.$$typeof === REACT_CLIENT_REFERENCE$2) {\n // TODO: Create a convention for naming client references with debug info.\n return null;\n }\n return type.displayName || type.name || null;\n }\n if (typeof type === \"string\") {\n return type;\n }\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_CACHE_TYPE:\n {\n return \"Cache\";\n }\n }\n if (typeof type === \"object\") {\n {\n if (typeof type.tag === \"number\") {\n error(\"Received an unexpected object in getComponentNameFromType(). \" + \"This is likely a bug in React. Please file an issue.\");\n }\n }\n switch(type.$$typeof){\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, \"ForwardRef\");\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n if (outerName !== null) {\n return outerName;\n }\n return getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n return null;\n }\n // $FlowFixMe[method-unbinding]\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n };\n var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n {\n didWarnAboutStringRefs = {};\n }\n function hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, \"ref\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"ref\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n }\n function hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function() {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n error(\"%s: `key` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n function defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function() {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n error(\"%s: `ref` is not a prop. Trying to access it will result \" + \"in `undefined` being returned. If you need to access the same \" + \"value within the child component, you should pass it as a different \" + \"prop. (https://reactjs.org/link/special-props)\", displayName);\n }\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, \"ref\", {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n function warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === \"string\" && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + \"Support for string refs will be removed in a future major release. \" + \"This case cannot be automatically converted to an arrow function. \" + \"We ask you to manually fix this case by using useRef() or createRef() instead. \" + \"Learn more about using refs safely here: \" + \"https://reactjs.org/link/strict-mode-string-ref\", componentName, config.ref);\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n }\n /**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */ function ReactElement(type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n Object.defineProperty(element._store, \"validated\", {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n Object.defineProperty(element, \"_self\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, \"_source\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n return element;\n }\n /**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */ function createElement$1(type, config, children) {\n var propName; // Reserved names are extracted\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n }\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for(var i = 0; i < childrenLength; i++){\n childArray[i] = arguments[i + 2];\n }\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n props.children = childArray;\n } // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for(propName in defaultProps){\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n {\n if (key || ref) {\n var displayName = typeof type === \"function\" ? type.displayName || type.name || \"Unknown\" : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n }\n /**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */ function cloneElement$1(element, config, children) {\n if (element === null || element === undefined) {\n throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n var propName; // Original props are copied\n var props = assign({}, element.props); // Reserved names are extracted\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source; // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n key = \"\" + config.key;\n } // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for(propName in config){\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for(var i = 0; i < childrenLength; i++){\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n return ReactElement(element.type, key, ref, self, source, owner, props);\n }\n /**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */ function isValidElement(object) {\n return typeof object === \"object\" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n var SEPARATOR = \".\";\n var SUBSEPARATOR = \":\";\n /**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */ function escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n var escapedString = key.replace(escapeRegex, function(match) {\n return escaperLookup[match];\n });\n return \"$\" + escapedString;\n }\n /**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */ var didWarnAboutMaps = false;\n var userProvidedKeyEscapeRegex = /\\/+/g;\n function escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, \"$&/\");\n }\n /**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */ function getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === \"object\" && element !== null && element.key != null) {\n // Explicit key\n {\n checkKeyStringCoercion(element.key);\n }\n return escape(\"\" + element.key);\n } // Implicit key determined by the index in the set\n return index.toString(36);\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (type === \"undefined\" || type === \"boolean\") {\n // All of the above are perceived as null.\n children = null;\n }\n var invokeCallback = false;\n if (children === null) {\n invokeCallback = true;\n } else {\n switch(type){\n case \"string\":\n case \"number\":\n invokeCallback = true;\n break;\n case \"object\":\n switch(children.$$typeof){\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n }\n }\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n var childKey = nameSoFar === \"\" ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n if (isArray(mappedChild)) {\n var escapedChildKey = \"\";\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + \"/\";\n }\n mapIntoArray(mappedChild, array, escapedChildKey, \"\", function(c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n {\n // The `if` statement here prevents auto-disabling of the safe\n // coercion ESLint rule, so we must manually disable it below.\n // $FlowFixMe[incompatible-type] Flow incorrectly thinks React.Portal doesn't have a key\n if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n checkKeyStringCoercion(mappedChild.key);\n }\n }\n mappedChild = cloneAndReplaceKey(mappedChild, // traverseAllChildren used to do for objects as children\n escapedPrefix + (mappedChild.key && (!_child || _child.key !== mappedChild.key) ? escapeUserProvidedKey(\"\" + mappedChild.key // eslint-disable-line react-internal/safe-string-coercion\n ) + \"/\" : \"\") + childKey);\n }\n array.push(mappedChild);\n }\n return 1;\n }\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === \"\" ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n if (isArray(children)) {\n for(var i = 0; i < children.length; i++){\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (typeof iteratorFn === \"function\") {\n var iterableChildren = children;\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn(\"Using Maps as children is not supported. \" + \"Use an array of keyed ReactElements instead.\");\n }\n didWarnAboutMaps = true;\n }\n }\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0; // $FlowFixMe[incompatible-use] `iteratorFn` might return null according to typing.\n while(!(step = iterator.next()).done){\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === \"object\") {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var childrenString = String(children);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === \"[object Object]\" ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\" : childrenString) + \"). \" + \"If you meant to render a collection of children, use an array \" + \"instead.\");\n }\n }\n return subtreeCount;\n }\n /**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */ function mapChildren(children, func, context) {\n if (children == null) {\n // $FlowFixMe limitation refining abstract types in Flow\n return children;\n }\n var result = [];\n var count = 0;\n mapIntoArray(children, result, \"\", \"\", function(child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n /**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */ function countChildren(children) {\n var n = 0;\n mapChildren(children, function() {\n n++; // Don't return anything\n });\n return n;\n }\n /**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */ function forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function() {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n }\n /**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */ function toArray(children) {\n return mapChildren(children, function(child) {\n return child;\n }) || [];\n }\n /**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */ function onlyChild(children) {\n if (!isValidElement(children)) {\n throw new Error(\"React.Children.only expected to receive a single React element child.\");\n }\n return children;\n }\n var Uninitialized = -1;\n var Pending = 0;\n var Resolved = 1;\n var Rejected = 2;\n function lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n // This might throw either because it's missing or throws. If so, we treat it\n // as still uninitialized and try again next time. Which is the same as what\n // happens if the ctor or any wrappers processing the ctor throws. This might\n // end up fixing it if the resolution was a concurrency bug.\n thenable.then(function(moduleObject) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = moduleObject;\n }\n }, function(error) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n if (payload._status === Uninitialized) {\n // In case, we're still uninitialized, then we're waiting for the thenable\n // to resolve. Set it as pending in the meantime.\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n }\n }\n if (payload._status === Resolved) {\n var moduleObject = payload._result;\n {\n if (moduleObject === undefined) {\n error(\"lazy: Expected the result of a dynamic imp\" + \"ort() call. \" + \"Instead received: %s\\n\\nYour code should look like: \\n \" + // Break up imports to avoid accidentally parsing them as dependencies.\n \"const MyComponent = lazy(() => imp\" + \"ort('./MyComponent'))\\n\\n\" + \"Did you accidentally put curly braces around the import?\", moduleObject);\n }\n }\n {\n if (!(\"default\" in moduleObject)) {\n error(\"lazy: Expected the result of a dynamic imp\" + \"ort() call. \" + \"Instead received: %s\\n\\nYour code should look like: \\n \" + // Break up imports to avoid accidentally parsing them as dependencies.\n \"const MyComponent = lazy(() => imp\" + \"ort('./MyComponent'))\", moduleObject);\n }\n }\n return moduleObject.default;\n } else {\n throw payload._result;\n }\n }\n function lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: Uninitialized,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe[prop-missing]\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function() {\n return defaultProps;\n },\n // $FlowFixMe[missing-local-annot]\n set: function(newDefaultProps) {\n error(\"React.lazy(...): It is not supported to assign `defaultProps` to \" + \"a lazy component import. Either specify them where the component \" + \"is defined, or create a wrapping component around it.\");\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe[prop-missing]\n Object.defineProperty(lazyType, \"defaultProps\", {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function() {\n return propTypes;\n },\n // $FlowFixMe[missing-local-annot]\n set: function(newPropTypes) {\n error(\"React.lazy(...): It is not supported to assign `propTypes` to \" + \"a lazy component import. Either specify them where the component \" + \"is defined, or create a wrapping component around it.\");\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe[prop-missing]\n Object.defineProperty(lazyType, \"propTypes\", {\n enumerable: true\n });\n }\n }\n });\n }\n return lazyType;\n }\n function forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error(\"forwardRef requires a render function but received a `memo` \" + \"component. Instead of forwardRef(memo(...)), use \" + \"memo(forwardRef(...)).\");\n } else if (typeof render !== \"function\") {\n error(\"forwardRef requires a render function but was given %s.\", render === null ? \"null\" : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error(\"forwardRef render functions accept exactly two parameters: props and ref. %s\", render.length === 1 ? \"Did you forget to use the ref parameter?\" : \"Any additional parameter will be undefined.\");\n }\n }\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error(\"forwardRef render functions do not support propTypes or defaultProps. \" + \"Did you accidentally pass a React component?\");\n }\n }\n }\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n {\n var ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return ownName;\n },\n set: function(name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.forwardRef((props, ref) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n if (!render.name && !render.displayName) {\n render.displayName = name;\n }\n }\n });\n }\n return elementType;\n }\n var REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\");\n function isValidElementType(type) {\n if (typeof type === \"string\" || typeof type === \"function\") {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n return true;\n }\n if (typeof type === \"object\" && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE$1 || type.getModuleId !== undefined) {\n return true;\n }\n }\n return false;\n }\n function memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error(\"memo: The first argument must be a component. Instead \" + \"received: %s\", type === null ? \"null\" : typeof type);\n }\n }\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n {\n var ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return ownName;\n },\n set: function(name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.memo((props) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n if (!type.name && !type.displayName) {\n type.displayName = name;\n }\n }\n });\n }\n return elementType;\n }\n var UNTERMINATED = 0;\n var TERMINATED = 1;\n var ERRORED = 2;\n function createCacheRoot() {\n return new WeakMap();\n }\n function createCacheNode() {\n return {\n s: UNTERMINATED,\n // status, represents whether the cached computation returned a value or threw an error\n v: undefined,\n // value, either the cached result or an error, depending on s\n o: null,\n // object cache, a WeakMap where non-primitive arguments are stored\n p: null // primitive cache, a regular Map where primitive arguments are stored.\n };\n }\n function cache(fn) {\n return function() {\n var dispatcher = ReactCurrentCache.current;\n if (!dispatcher) {\n // If there is no dispatcher, then we treat this as not being cached.\n // $FlowFixMe[incompatible-call]: We don't want to use rest arguments since we transpile the code.\n return fn.apply(null, arguments);\n }\n var fnMap = dispatcher.getCacheForType(createCacheRoot);\n var fnNode = fnMap.get(fn);\n var cacheNode;\n if (fnNode === undefined) {\n cacheNode = createCacheNode();\n fnMap.set(fn, cacheNode);\n } else {\n cacheNode = fnNode;\n }\n for(var i = 0, l = arguments.length; i < l; i++){\n var arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n // Objects go into a WeakMap\n var objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = new WeakMap();\n }\n var objectNode = objectCache.get(arg);\n if (objectNode === undefined) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n // Primitives go into a regular Map\n var primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = new Map();\n }\n var primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === undefined) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n if (cacheNode.s === TERMINATED) {\n return cacheNode.v;\n }\n if (cacheNode.s === ERRORED) {\n throw cacheNode.v;\n }\n try {\n // $FlowFixMe[incompatible-call]: We don't want to use rest arguments since we transpile the code.\n var result = fn.apply(null, arguments);\n var terminatedNode = cacheNode;\n terminatedNode.s = TERMINATED;\n terminatedNode.v = result;\n return result;\n } catch (error) {\n // We store the first error that's thrown and rethrow it.\n var erroredNode = cacheNode;\n erroredNode.s = ERRORED;\n erroredNode.v = error;\n throw error;\n }\n };\n }\n function resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher$1.current;\n {\n if (dispatcher === null) {\n error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for\" + \" one of the following reasons:\\n\" + \"1. You might have mismatching versions of React and the renderer (such as React DOM)\\n\" + \"2. You might be breaking the Rules of Hooks\\n\" + \"3. You might have more than one copy of React in the same app\\n\" + \"See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\");\n }\n }\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n return dispatcher;\n }\n function useContext(Context) {\n var dispatcher = resolveDispatcher();\n {\n // TODO: add a more generic warning for invalid values.\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n if (realContext.Consumer === Context) {\n error(\"Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be \" + \"removed in a future major release. Did you mean to call useContext(Context) instead?\");\n } else if (realContext.Provider === Context) {\n error(\"Calling useContext(Context.Provider) is not supported. \" + \"Did you mean to call useContext(Context) instead?\");\n }\n }\n }\n return dispatcher.useContext(Context);\n }\n function useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n }\n function useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n }\n function useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n }\n function useId() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useId();\n }\n function use(usable) {\n var dispatcher = resolveDispatcher();\n return dispatcher.use(usable);\n }\n // Helpers to patch console.logs to avoid logging during side-effect free\n // replaying on render function. This currently only patches the object\n // lazily which won't cover if the log function was extracted eagerly.\n // We could also eagerly patch the method.\n var disabledDepth = 0;\n var prevLog;\n var prevInfo;\n var prevWarn;\n var prevError;\n var prevGroup;\n var prevGroupCollapsed;\n var prevGroupEnd;\n function disabledLog() {}\n disabledLog.__reactDisabledLog = true;\n function disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */ }\n disabledDepth++;\n }\n }\n function reenableLogs() {\n {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */ var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */ }\n if (disabledDepth < 0) {\n error(\"disabledDepth fell below zero. \" + \"This is a bug in React. Please file an issue.\");\n }\n }\n }\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n var prefix;\n function describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || \"\";\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n return \"\\n\" + prefix + name;\n }\n }\n var reentry = false;\n var componentFrameCache;\n {\n var PossiblyWeakMap = typeof WeakMap === \"function\" ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n }\n /**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */ function describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return \"\";\n }\n {\n var frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */ var RunInRootFrame = {\n DetermineComponentFrameRoot: function() {\n var control;\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function() {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function() {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n if (typeof Reflect === \"object\" && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n if (maybePromise && typeof maybePromise.catch === \"function\") {\n maybePromise.catch(function() {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === \"string\") {\n return [\n sample.stack,\n control.stack\n ];\n }\n }\n return [\n null,\n null\n ];\n }\n }; // $FlowFixMe[prop-missing]\n RunInRootFrame.DetermineComponentFrameRoot.displayName = \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, \"name\"); // Before ES6, the `name` property was not configurable.\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // is set to `false`.\n // $FlowFixMe[cannot-write]\n \"name\", {\n value: \"DetermineComponentFrameRoot\"\n });\n }\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split(\"\\n\");\n var controlLines = controlStack.split(\"\\n\");\n var s = 0;\n var c = 0;\n while(s < sampleLines.length && !sampleLines[s].includes(\"DetermineComponentFrameRoot\")){\n s++;\n }\n while(c < controlLines.length && !controlLines[c].includes(\"DetermineComponentFrameRoot\")){\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n while(s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]){\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n for(; s >= 1 && c >= 0; s--, c--){\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = \"\\n\" + sampleLines[s].replace(\" at new \", \" at \"); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n if (fn.displayName && _frame.includes(\"<anonymous>\")) {\n _frame = _frame.replace(\"<anonymous>\", fn.displayName);\n }\n if (true) {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n return _frame;\n }\n }while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally{\n reentry = false;\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n var name = fn ? fn.displayName || fn.name : \"\";\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : \"\";\n {\n if (typeof fn === \"function\") {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n }\n function describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n }\n function shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n }\n function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n if (type == null) {\n return \"\";\n }\n if (typeof type === \"function\") {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n if (typeof type === \"string\") {\n return describeBuiltInComponentFrame(type);\n }\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (typeof type === \"object\") {\n switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n return \"\";\n }\n var loggedTypeFailures = {};\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n function setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n }\n function checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n for(var typeSpecName in typeSpecs){\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== \"function\") {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; \" + \"it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\" + \"This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");\n err.name = \"Invariant Violation\";\n throw err;\n }\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\");\n } catch (ex) {\n error$1 = ex;\n }\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement$1(element);\n error(\"%s: type specification of %s\" + \" `%s` is invalid; the type checker \" + \"function must return `null` or an `Error` but returned a %s. \" + \"You may have forgotten to pass an argument to the type checker \" + \"creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and \" + \"shape all require an argument).\", componentName || \"React class\", location, typeSpecName, typeof error$1);\n setCurrentlyValidatingElement$1(null);\n }\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement$1(element);\n error(\"Failed %s type: %s\", location, error$1.message);\n setCurrentlyValidatingElement$1(null);\n }\n }\n }\n }\n }\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n function setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n }\n var propTypesMisspellWarningShown;\n {\n propTypesMisspellWarningShown = false;\n }\n function getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n if (name) {\n return \"\\n\\nCheck the render method of `\" + name + \"`.\";\n }\n }\n return \"\";\n }\n function getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, \"\");\n var lineNumber = source.lineNumber;\n return \"\\n\\nCheck your code at \" + fileName + \":\" + lineNumber + \".\";\n }\n return \"\";\n }\n function getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n return \"\";\n }\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */ var ownerHasKeyUseWarning = {};\n function getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n if (!info) {\n var parentName = getComponentNameFromType(parentType);\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n return info;\n }\n /**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */ function validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = \"\";\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n {\n setCurrentlyValidatingElement(element);\n error('Each child in a list should have a unique \"key\" prop.' + \"%s%s See https://reactjs.org/link/warning-keys for more information.\", currentComponentErrorInfo, childOwner);\n setCurrentlyValidatingElement(null);\n }\n }\n /**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */ function validateChildKeys(node, parentType) {\n if (typeof node !== \"object\" || !node) {\n return;\n }\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ;\n else if (isArray(node)) {\n for(var i = 0; i < node.length; i++){\n var child = node[i];\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else {\n var iteratorFn = getIteratorFn(node);\n if (typeof iteratorFn === \"function\") {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while(!(step = iterator.next()).done){\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n /**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */ function validatePropTypes(element) {\n {\n var type = element.type;\n if (type === null || type === undefined || typeof type === \"string\") {\n return;\n }\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\n return;\n }\n var propTypes;\n if (typeof type === \"function\") {\n propTypes = type.propTypes;\n } else if (typeof type === \"object\" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, \"prop\", name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n var _name = getComponentNameFromType(type);\n error(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\", _name || \"Unknown\");\n }\n if (typeof type.getDefaultProps === \"function\" && !type.getDefaultProps.isReactClassApproved) {\n error(\"getDefaultProps is only used on classic React.createClass \" + \"definitions. Use a static property named `defaultProps` instead.\");\n }\n }\n }\n /**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */ function validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n for(var i = 0; i < keys.length; i++){\n var key = keys[i];\n if (key !== \"children\" && key !== \"key\") {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid prop `%s` supplied to `React.Fragment`. \" + \"React.Fragment can only have `key` and `children` props.\", key);\n setCurrentlyValidatingElement(null);\n break;\n }\n }\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement(fragment);\n error(\"Invalid attribute `ref` supplied to `React.Fragment`.\");\n setCurrentlyValidatingElement(null);\n }\n }\n }\n function createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n var info = \"\";\n if (type === undefined || typeof type === \"object\" && type !== null && Object.keys(type).length === 0) {\n info += \" You likely forgot to export your component from the file \" + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n var typeString;\n if (type === null) {\n typeString = \"null\";\n } else if (isArray(type)) {\n typeString = \"array\";\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || \"Unknown\") + \" />\";\n info = \" Did you accidentally export a JSX literal instead of a component?\";\n } else {\n typeString = typeof type;\n }\n {\n error(\"React.createElement: type is invalid -- expected a string (for \" + \"built-in components) or a class/function (for composite \" + \"components) but got: %s.%s\", typeString, info);\n }\n }\n var element = createElement$1.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for(var i = 2; i < arguments.length; i++){\n validateChildKeys(arguments[i], type);\n }\n }\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n return element;\n }\n function cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement$1.apply(this, arguments);\n for(var i = 2; i < arguments.length; i++){\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n function createServerContext(globalName, defaultValue) {\n {\n throw new Error(\"Not implemented.\");\n }\n }\n /**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */ var ReactCurrentBatchConfig = {\n transition: null\n };\n function startTransition(scope, options) {\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = {};\n var currentTransition = ReactCurrentBatchConfig.transition;\n {\n ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n }\n try {\n scope();\n } finally{\n ReactCurrentBatchConfig.transition = prevTransition;\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n currentTransition._updatedFibers.clear();\n if (updatedFibersCount > 10) {\n warn(\"Detected a large number of updates inside startTransition. \" + \"If this is due to a subscription please re-write it to use React provided hooks. \" + \"Otherwise concurrent mode guarantees are off the table.\");\n }\n }\n }\n }\n }\n var createElement = createElementWithValidation;\n var cloneElement = cloneElementWithValidation;\n var Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n };\n exports.Children = Children;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\n exports.__SECRET_SERVER_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactServerSharedInternals;\n exports.cache = cache;\n exports.cloneElement = cloneElement;\n exports.createElement = createElement;\n exports.createRef = createRef;\n exports.createServerContext = createServerContext;\n exports.forwardRef = forwardRef;\n exports.isValidElement = isValidElement;\n exports.lazy = lazy;\n exports.memo = memo;\n exports.startTransition = startTransition;\n exports.use = use;\n exports.useCallback = useCallback;\n exports.useContext = useContext;\n exports.useDebugValue = useDebugValue;\n exports.useId = useId;\n exports.useMemo = useMemo;\n exports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3Quc2hhcmVkLXN1YnNldC5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Q0FRQyxHQUVEO0FBRUEsSUFBSUEsSUFBcUMsRUFBRTtJQUN4QztRQUNIO1FBRUE7O0NBRUMsR0FDRCxJQUFJQywyQkFBMkI7WUFDN0JDLFNBQVM7UUFDWDtRQUVBOzs7OztDQUtDLEdBQ0QsSUFBSUMsb0JBQW9CO1lBQ3RCOzs7R0FHQyxHQUNERCxTQUFTO1FBQ1g7UUFFQSxJQUFJRSwyQkFBMkIsQ0FBQztRQUNoQyxJQUFJQyx5QkFBeUI7UUFDN0IsU0FBU0MsbUJBQW1CQyxLQUFLO1lBQy9CO2dCQUNFRix5QkFBeUJFO1lBQzNCO1FBQ0Y7UUFFQTtZQUNFSCx5QkFBeUJFLGtCQUFrQixHQUFHLFNBQVVDLEtBQUs7Z0JBQzNEO29CQUNFRix5QkFBeUJFO2dCQUMzQjtZQUNGLEdBQUcseURBQXlEO1lBRzVESCx5QkFBeUJJLGVBQWUsR0FBRztZQUUzQ0oseUJBQXlCSyxnQkFBZ0IsR0FBRztnQkFDMUMsSUFBSUYsUUFBUSxJQUFJLDZEQUE2RDtnQkFFN0UsSUFBSUYsd0JBQXdCO29CQUMxQkUsU0FBU0Y7Z0JBQ1gsRUFBRSw0REFBNEQ7Z0JBRzlELElBQUlLLE9BQU9OLHlCQUF5QkksZUFBZTtnQkFFbkQsSUFBSUUsTUFBTTtvQkFDUkgsU0FBU0csVUFBVTtnQkFDckI7Z0JBRUEsT0FBT0g7WUFDVDtRQUNGO1FBRUEsZ0ZBQWdGO1FBRWhGLElBQUlJLGlCQUFpQixPQUFPLHdDQUF3QztRQUNwRSxJQUFJQyxxQkFBcUI7UUFDekIsSUFBSUMsMEJBQTBCLE9BQU8sK0NBQStDO1FBRXBGLElBQUlDLHFCQUFxQixPQUFPLHNEQUFzRDtRQUN0RiwrRUFBK0U7UUFDL0Usd0JBQXdCO1FBRXhCLElBQUlDLHFCQUFxQjtRQUV6QixJQUFJQyx1QkFBdUI7WUFDekJDLHdC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QUNyQnlXLGdCQUFnQixHQUFHcFc7UUFDbkJvVywwREFBMEQsR0FBRzliO1FBQzdEOGIsaUVBQWlFLEdBQUdoWDtRQUNwRWdYLGFBQWEsR0FBR2xZO1FBQ2hCa1ksb0JBQW9CLEdBQUdKO1FBQ3ZCSSxxQkFBcUIsR0FBR0w7UUFDeEJLLGlCQUFpQixHQUFHL1M7UUFDcEIrUywyQkFBMkIsR0FBR25CO1FBQzlCbUIsa0JBQWtCLEdBQUc3SjtRQUNyQjZKLHNCQUFzQixHQUFHbk87UUFDekJtTyxZQUFZLEdBQUduSztRQUNmbUssWUFBWSxHQUFHdko7UUFDZnVKLHVCQUF1QixHQUFHZDtRQUMxQmMsV0FBVyxHQUFHbkg7UUFDZG1ILG1CQUFtQixHQUFHMUg7UUFDdEIwSCxrQkFBa0IsR0FBRy9IO1FBQ3JCK0gscUJBQXFCLEdBQUd0SDtRQUN4QnNILGFBQWEsR0FBR3BIO1FBQ2hCb0gsZUFBZSxHQUFHeEg7UUFDbEJ3SCxlQUFlLEdBQUcvVztJQUNoQjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC5zaGFyZWQtc3Vic2V0LmRldmVsb3BtZW50LmpzPzI0MjciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3Quc2hhcmVkLXN1YnNldC5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxID0ge1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IG93bmVyLlxuICpcbiAqIFRoZSBjdXJyZW50IG93bmVyIGlzIHRoZSBjb21wb25lbnQgd2hvIHNob3VsZCBvd24gYW55IGNvbXBvbmVudHMgdGhhdCBhcmVcbiAqIGN1cnJlbnRseSBiZWluZyBjb25zdHJ1Y3RlZC5cbiAqL1xudmFyIFJlYWN0Q3VycmVudE93bmVyID0ge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEB0eXBlIHtSZWFjdENvbXBvbmVudH1cbiAgICovXG4gIGN1cnJlbnQ6IG51bGxcbn07XG5cbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSB7fTtcbnZhciBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gbnVsbDtcbmZ1bmN0aW9uIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjaykge1xuICB7XG4gICAgY3VycmVudEV4dHJhU3RhY2tGcmFtZSA9IHN0YWNrO1xuICB9XG59XG5cbntcbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZSA9IGZ1bmN0aW9uIChzdGFjaykge1xuICAgIHtcbiAgICAgIGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUgPSBzdGFjaztcbiAgICB9XG4gIH07IC8vIFN0YWNrIGltcGxlbWVudGF0aW9uIGluamVjdGVkIGJ5IHRoZSBjdXJyZW50IHJlbmRlcmVyLlxuXG5cbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldEN1cnJlbnRTdGFjayA9IG51bGw7XG5cbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldFN0YWNrQWRkZW5kdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YWNrID0gJyc7IC8vIEFkZCBhbiBleHRyYSB0b3AgZnJhbWUgd2hpbGUgYW4gZWxlbWVudCBpcyBiZWluZyB2YWxpZGF0ZWRcblxuICAgIGlmIChjdXJyZW50RXh0cmFTdGFja0ZyYW1lKSB7XG4gICAgICBzdGFjayArPSBjdXJyZW50RXh0cmFTdGFja0ZyYW1lO1xuICAgIH0gLy8gRGVsZWdhdGUgdG8gdGhlIGluamVjdGVkIHJlbmRlcmVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uXG5cblxuICAgIHZhciBpbXBsID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLmdldEN1cnJlbnRTdGFjaztcblxuICAgIGlmIChpbXBsKSB7XG4gICAgICBzdGFjayArPSBpbXBsKCkgfHwgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgZW5hYmxlU2NvcGVBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIENyZWF0ZSBFdmVudCBIYW5kbGUgQVBJLlxudmFyIGVuYWJsZUNhY2hlRWxlbWVudCA9IGZhbHNlO1xudmFyIGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nID0gZmFsc2U7IC8vIE5vIGtub3duIGJ1Z3MsIGJ1dCBuZWVkcyBwZXJmb3JtYW5jZSB0ZXN0aW5nXG5cbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXG4vLyBzdHVmZi4gSW50ZW5kZWQgdG8gZW5hYmxlIFJlYWN0IGNvcmUgbWVtYmVycyB0byBtb3JlIGVhc2lseSBkZWJ1ZyBzY2hlZHVsaW5nXG4vLyBpc3N1ZXMgaW4gREVWIGJ1aWxkcy5cblxudmFyIGVuYWJsZURlYnVnVHJhY2luZyA9IGZhbHNlO1xuXG52YXIgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSB7XG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXI6IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSxcbiAgUmVhY3RDdXJyZW50T3duZXI6IFJlYWN0Q3VycmVudE93bmVyXG59O1xuXG57XG4gIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDE7XG59XG5cbi8vIGJ5IGNhbGxzIHRvIHRoZXNlIG1ldGhvZHMgYnkgYSBCYWJlbCBwbHVnaW4uXG4vL1xuLy8gSW4gUFJPRCAob3IgaW4gcGFja2FnZXMgd2l0aG91dCBhY2Nlc3MgdG8gUmVhY3QgaW50ZXJuYWxzKSxcbi8vIHRoZXkgYXJlIGxlZnQgYXMgdGhleSBhcmUgaW5zdGVhZC5cblxuZnVuY3Rpb24gd2Fybihmb3JtYXQpIHtcbiAge1xuICAgIHtcbiAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnd2FybicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmcobGV2ZWwsIGZvcm1hdCwgYXJncykge1xuICAvLyBXaGVuIGNoYW5naW5nIHRoaXMgbG9naWMsIHlvdSBtaWdodCB3YW50IHRvIGFsc29cbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXG4gIHtcbiAgICB2YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICBpZiAoc3RhY2sgIT09ICcnKSB7XG4gICAgICBmb3JtYXQgKz0gJyVzJztcbiAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdChbc3RhY2tdKTtcbiAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgICB2YXIgYXJnc1dpdGhGb3JtYXQgPSBhcmdzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcblxuICAgIGFyZ3NXaXRoRm9ybWF0LnVuc2hpZnQoJ1dhcm5pbmc6ICcgKyBmb3JtYXQpOyAvLyBXZSBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBzcHJlYWQgKG9yIC5hcHBseSkgZGlyZWN0bHkgYmVjYXVzZSBpdFxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG5cbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xuICB9XG59XG5cbnZhciBhc3NpZ24gPSBPYmplY3QuYXNzaWduO1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IENhY2hlIGRpc3BhdGNoZXIuXG4gKi9cbnZhciBSZWFjdEN1cnJlbnRDYWNoZSA9IHtcbiAgY3VycmVudDogbnVsbFxufTtcblxuZnVuY3Rpb24gY3JlYXRlRmV0Y2hDYWNoZSgpIHtcbiAgcmV0dXJuIG5ldyBNYXAoKTtcbn1cblxudmFyIHNpbXBsZUNhY2hlS2V5ID0gJ1tcIkdFVFwiLFtdLG51bGwsXCJmb2xsb3dcIixudWxsLG51bGwsbnVsbCxudWxsXSc7IC8vIGdlbmVyYXRlQ2FjaGVLZXkobmV3IFJlcXVlc3QoJ2h0dHBzOi8vYmxhbmsnKSk7XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ2FjaGVLZXkocmVxdWVzdCkge1xuICAvLyBXZSBwaWNrIHRoZSBmaWVsZHMgdGhhdCBnb2VzIGludG8gdGhlIGtleSB1c2VkIHRvIGRlZHVwZSByZXF1ZXN0cy5cbiAgLy8gV2UgZG9uJ3QgaW5jbHVkZSB0aGUgYGNhY2hlYCBmaWVsZCwgYmVjYXVzZSB3ZSBlbmQgdXAgdXNpbmcgd2hhdGV2ZXJcbiAgLy8gY2FjaGluZyByZXN1bHRlZCBmcm9tIHRoZSBmaXJzdCByZXF1ZXN0LlxuICAvLyBOb3RhYmx5IHdlIGN1cnJlbnRseSBkb24ndCBjb25zaWRlciBub24tc3RhbmRhcmQgKG9yIGZ1dHVyZSkgb3B0aW9ucy5cbiAgLy8gVGhpcyBtaWdodCBub3QgYmUgc2FmZS4gVE9ETzogd2FybiBmb3Igbm9uLXN0YW5kYXJkIGV4dGVuc2lvbnMgZGlmZmVyaW5nLlxuICAvLyBJRiBZT1UgQ0hBTkdFIFRISVMgVVBEQVRFIFRIRSBzaW1wbGVDYWNoZUtleSBBQk9WRS5cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFtyZXF1ZXN0Lm1ldGhvZCwgQXJyYXkuZnJvbShyZXF1ZXN0LmhlYWRlcnMuZW50cmllcygpKSwgcmVxdWVzdC5tb2RlLCByZXF1ZXN0LnJlZGlyZWN0LCByZXF1ZXN0LmNyZWRlbnRpYWxzLCByZXF1ZXN0LnJlZmVycmVyLCByZXF1ZXN0LnJlZmVycmVyUG9saWN5LCByZXF1ZXN0LmludGVncml0eV0pO1xufVxuXG57XG4gIGlmICh0eXBlb2YgZmV0Y2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgb3JpZ2luYWxGZXRjaCA9IGZldGNoO1xuXG4gICAgdmFyIGNhY2hlZEZldGNoID0gZnVuY3Rpb24gZmV0Y2gocmVzb3VyY2UsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50Q2FjaGUuY3VycmVudDtcblxuICAgICAgaWYgKCFkaXNwYXRjaGVyKSB7XG4gICAgICAgIC8vIFdlJ3JlIG91dHNpZGUgYSBjYWNoZWQgc2NvcGUuXG4gICAgICAgIHJldHVybiBvcmlnaW5hbEZldGNoKHJlc291cmNlLCBvcHRpb25zKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zaWduYWwgJiYgb3B0aW9ucy5zaWduYWwgIT09IGRpc3BhdGNoZXIuZ2V0Q2FjaGVTaWduYWwoKSkge1xuICAgICAgICAvLyBJZiB3ZSdyZSBwYXNzZWQgYSBzaWduYWwgdGhhdCBpcyBub3Qgb3VycywgdGhlbiB3ZSBhc3N1bWUgdGhhdFxuICAgICAgICAvLyBzb21lb25lIGVsc2UgY29udHJvbHMgdGhlIGxpZmV0aW1lIG9mIHRoaXMgb2JqZWN0IGFuZCBvcHRzIG91dCBvZlxuICAgICAgICAvLyBjYWNoaW5nLiBJdCdzIGVmZmVjdGl2ZWx5IHRoZSBvcHQtb3V0IG1lY2hhbmlzbS5cbiAgICAgICAgLy8gSWRlYWxseSB3ZSBzaG91bGQgYmUgYWJsZSB0byBjaGVjayB0aGlzIG9uIHRoZSBSZXF1ZXN0IGJ1dFxuICAgICAgICAvLyBpdCBhbHdheXMgZ2V0cyBpbml0aWFsaXplZCB3aXRoIGl0cyBvd24gc2lnbmFsIHNvIHdlIGRvbid0XG4gICAgICAgIC8vIGtub3cgaWYgaXQncyBzdXBwb3NlZCB0byBvdmVycmlkZSAtIHVubGVzcyB3ZSBhbHNvIG92ZXJyaWRlIHRoZVxuICAgICAgICAvLyBSZXF1ZXN0IGNvbnN0cnVjdG9yLlxuICAgICAgICByZXR1cm4gb3JpZ2luYWxGZXRjaChyZXNvdXJjZSwgb3B0aW9ucyk7XG4gICAgICB9IC8vIE5vcm1hbGl6ZSB0aGUgUmVxdWVzdFxuXG5cbiAgICAgIHZhciB1cmw7XG4gICAgICB2YXIgY2FjaGVLZXk7XG5cbiAgICAgIGlmICh0eXBlb2YgcmVzb3VyY2UgPT09ICdzdHJpbmcnICYmICFvcHRpb25zKSB7XG4gICAgICAgIC8vIEZhc3QgcGF0aC5cbiAgICAgICAgY2FjaGVLZXkgPSBzaW1wbGVDYWNoZUtleTtcbiAgICAgICAgdXJsID0gcmVzb3VyY2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOb3JtYWxpemUgdGhlIHJlcXVlc3QuXG4gICAgICAgIC8vIGlmIHJlc291cmNlIGlzIG5vdCBhIHN0cmluZyBvciBhIFVSTCAoaXRzIGFuIGluc3RhbmNlIG9mIFJlcXVlc3QpXG4gICAgICAgIC8vIHRoZW4gZG8gbm90IGluc3RhbnRpYXRlIGEgbmV3IFJlcXVlc3QgYnV0IGluc3RlYWRcbiAgICAgICAgLy8gcmV1c2UgdGhlIHJlcXVlc3QgYXMgdG8gbm90IGRpc3R1cmIgdGhlIGJvZHkgaW4gdGhlIGV2ZW50IGl0J3MgYSBSZWFkYWJsZVN0cmVhbS5cbiAgICAgICAgdmFyIHJlcXVlc3QgPSB0eXBlb2YgcmVzb3VyY2UgPT09ICdzdHJpbmcnIHx8IHJlc291cmNlIGluc3RhbmNlb2YgVVJMID8gbmV3IFJlcXVlc3QocmVzb3VyY2UsIG9wdGlvbnMpIDogcmVzb3VyY2U7XG5cbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnIHx8IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXToga2VlcGFsaXZlIGlzIHJlYWxcbiAgICAgICAgcmVxdWVzdC5rZWVwYWxpdmUpIHtcbiAgICAgICAgICAvLyBXZSBjdXJyZW50bHkgZG9uJ3QgZGVkdXBlIHJlcXVlc3RzIHRoYXQgbWlnaHQgaGF2ZSBzaWRlLWVmZmVjdHMuIFRob3NlXG4gICAgICAgICAgLy8gaGF2ZSB0byBiZSBleHBsaWNpdGx5IGNhY2hlZC4gV2UgYXNzdW1lIHRoYXQgdGhlIHJlcXVlc3QgZG9lc24ndCBoYXZlIGFcbiAgICAgICAgICAvLyBib2R5IGlmIGl0J3MgR0VUIG9yIEhFQUQuXG4gICAgICAgICAgLy8ga2VlcGFsaXZlIGdldHMgdHJlYXRlZCB0aGUgc2FtZSBhcyBpZiB5b3UgcGFzc2VkIGEgY3VzdG9tIGNhY2hlIHNpZ25hbC5cbiAgICAgICAgICByZXR1cm4gb3JpZ2luYWxGZXRjaChyZXNvdXJjZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBjYWNoZUtleSA9IGdlbmVyYXRlQ2FjaGVLZXkocmVxdWVzdCk7XG4gICAgICAgIHVybCA9IHJlcXVlc3QudXJsO1xuICAgICAgfVxuXG4gICAgICB2YXIgY2FjaGUgPSBkaXNwYXRjaGVyLmdldENhY2hlRm9yVHlwZShjcmVhdGVGZXRjaENhY2hlKTtcbiAgICAgIHZhciBjYWNoZUVudHJpZXMgPSBjYWNoZS5nZXQodXJsKTtcbiAgICAgIHZhciBtYXRjaDtcblxuICAgICAgaWYgKGNhY2hlRW50cmllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIFdlIHBhc3MgdGhlIG9yaWdpbmFsIGFyZ3VtZW50cyBoZXJlIGluIGNhc2Ugbm9ybWFsaXppbmcgdGhlIFJlcXVlc3RcbiAgICAgICAgLy8gZG9lc24ndCBpbmNsdWRlIGFsbCB0aGUgb3B0aW9ucyBpbiB0aGlzIGVudmlyb25tZW50LlxuICAgICAgICBtYXRjaCA9IG9yaWdpbmFsRmV0Y2gocmVzb3VyY2UsIG9wdGlvbnMpO1xuICAgICAgICBjYWNoZS5zZXQodXJsLCBbY2FjaGVLZXksIG1hdGNoXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSB1c2UgYW4gYXJyYXkgYXMgdGhlIGlubmVyIGRhdGEgc3RydWN0dXJlIHNpbmNlIGl0J3MgbGlnaHRlciBhbmRcbiAgICAgICAgLy8gd2UgdHlwaWNhbGx5IG9ubHkgZXhwZWN0IHRvIHNlZSBvbmUgb3IgdHdvIGVudHJpZXMgaGVyZS5cbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBjYWNoZUVudHJpZXMubGVuZ3RoOyBpIDwgbDsgaSArPSAyKSB7XG4gICAgICAgICAgdmFyIGtleSA9IGNhY2hlRW50cmllc1tpXTtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBjYWNoZUVudHJpZXNbaSArIDFdO1xuXG4gICAgICAgICAgaWYgKGtleSA9PT0gY2FjaGVLZXkpIHtcbiAgICAgICAgICAgIG1hdGNoID0gdmFsdWU7IC8vIEkgd291bGQndmUgcHJlZmVycmVkIGEgbGFiZWxsZWQgYnJlYWsgYnV0IGxpbnQgc2F5cyBuby5cblxuICAgICAgICAgICAgcmV0dXJuIG1hdGNoLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5jbG9uZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbWF0Y2ggPSBvcmlnaW5hbEZldGNoKHJlc291cmNlLCBvcHRpb25zKTtcbiAgICAgICAgY2FjaGVFbnRyaWVzLnB1c2goY2FjaGVLZXksIG1hdGNoKTtcbiAgICAgIH0gLy8gV2UgY2xvbmUgdGhlIHJlc3BvbnNlIHNvIHRoYXQgZWFjaCB0aW1lIHlvdSBjYWxsIHRoaXMgeW91IGdldCBhIG5ldyByZWFkXG4gICAgICAvLyBvZiB0aGUgYm9keSBzbyB0aGF0IGl0IGNhbiBiZSByZWFkIG11bHRpcGxlIHRpbWVzLlxuXG5cbiAgICAgIHJldHVybiBtYXRjaC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2UuY2xvbmUoKTtcbiAgICAgIH0pO1xuICAgIH07IC8vIFdlIGRvbid0IGV4cGVjdCB0byBzZWUgYW55IGV4dHJhIHByb3BlcnRpZXMgb24gZmV0Y2ggYnV0IGlmIHRoZXJlIGFyZSBhbnksXG4gICAgLy8gY29weSB0aGVtIG92ZXIuIFVzZWZ1bCBmb3IgZXh0ZW5kZWQgZmV0Y2ggZW52aXJvbm1lbnRzIG9yIG1vY2tzLlxuXG5cbiAgICBhc3NpZ24oY2FjaGVkRmV0Y2gsIG9yaWdpbmFsRmV0Y2gpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uYXRpdmUtcmVhc3NpZ25cbiAgICAgIGZldGNoID0gY2FjaGVkRmV0Y2g7XG4gICAgfSBjYXRjaCAoZXJyb3IxKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBJbiBjYXNlIGFzc2lnbmluZyBpdCBnbG9iYWxseSBmYWlscywgdHJ5IGdsb2JhbFRoaXMgaW5zdGVhZCBqdXN0IGluIGNhc2UgaXQgZXhpc3RzLlxuICAgICAgICBnbG9iYWxUaGlzLmZldGNoID0gY2FjaGVkRmV0Y2g7XG4gICAgICB9IGNhdGNoIChlcnJvcjIpIHtcbiAgICAgICAgLy8gTG9nIGV2ZW4gaW4gcHJvZHVjdGlvbiBqdXN0IHRvIG1ha2Ugc3VyZSB0aGlzIGlzIHNlZW4gaWYgb25seSBwcm9kIGlzIGZyb3plbi5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuICAgICAgICB3YXJuKCdSZWFjdCB3YXMgdW5hYmxlIHRvIHBhdGNoIHRoZSBmZXRjaCgpIGZ1bmN0aW9uIGluIHRoaXMgZW52aXJvbm1lbnQuICcgKyAnU3VzcGVuc2V5IEFQSXMgbWlnaHQgbm90IHdvcmsgY29ycmVjdGx5IGFzIGEgcmVzdWx0LicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RTZXJ2ZXJTaGFyZWRJbnRlcm5hbHMgPSB7XG4gIFJlYWN0Q3VycmVudENhY2hlOiBSZWFjdEN1cnJlbnRDYWNoZVxufTtcblxudmFyIFJlYWN0VmVyc2lvbiA9ICcxOC4zLjAtY2FuYXJ5LTYwYTkyN2QwNC0yMDI0MDExMyc7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpO1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJyk7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGF6eScpO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG52YXIgUkVBQ1RfQ0FDSEVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNhY2hlJyk7XG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gU3ltYm9sLml0ZXJhdG9yO1xudmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InO1xuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1heWJlSXRlcmF0b3IgPSBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdO1xuXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBtYXliZUl0ZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnQgPSB7fTtcblxuZnVuY3Rpb24gd2Fybk5vb3AocHVibGljSW5zdGFuY2UsIGNhbGxlck5hbWUpIHtcbiAge1xuICAgIHZhciBfY29uc3RydWN0b3IgPSBwdWJsaWNJbnN0YW5jZS5jb25zdHJ1Y3RvcjtcbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IF9jb25zdHJ1Y3RvciAmJiAoX2NvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8IF9jb25zdHJ1Y3Rvci5uYW1lKSB8fCAnUmVhY3RDbGFzcyc7XG4gICAgdmFyIHdhcm5pbmdLZXkgPSBjb21wb25lbnROYW1lICsgXCIuXCIgKyBjYWxsZXJOYW1lO1xuXG4gICAgaWYgKGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudFt3YXJuaW5nS2V5XSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVycm9yKFwiQ2FuJ3QgY2FsbCAlcyBvbiBhIGNvbXBvbmVudCB0aGF0IGlzIG5vdCB5ZXQgbW91bnRlZC4gXCIgKyAnVGhpcyBpcyBhIG5vLW9wLCBidXQgaXQgbWlnaHQgaW5kaWNhdGUgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbi4gJyArICdJbnN0ZWFkLCBhc3NpZ24gdG8gYHRoaXMuc3RhdGVgIGRpcmVjdGx5IG9yIGRlZmluZSBhIGBzdGF0ZSA9IHt9O2AgJyArICdjbGFzcyBwcm9wZXJ0eSB3aXRoIHRoZSBkZXNpcmVkIHN0YXRlIGluIHRoZSAlcyBjb21wb25lbnQuJywgY2FsbGVyTmFtZSwgY29tcG9uZW50TmFtZSk7XG5cbiAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0gPSB0cnVlO1xuICB9XG59XG4vKipcbiAqIFRoaXMgaXMgdGhlIGFic3RyYWN0IEFQSSBmb3IgYW4gdXBkYXRlIHF1ZXVlLlxuICovXG5cblxudmFyIFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlID0ge1xuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoaXMgY29tcG9zaXRlIGNvbXBvbmVudCBpcyBtb3VudGVkLlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB3ZSB3YW50IHRvIHRlc3QuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgbW91bnRlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBmaW5hbFxuICAgKi9cbiAgaXNNb3VudGVkOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZvcmNlcyBhbiB1cGRhdGUuIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW52b2tlZCB3aGVuIGl0IGlzIGtub3duIHdpdGhcbiAgICogY2VydGFpbnR5IHRoYXQgd2UgYXJlICoqbm90KiogaW4gYSBET00gdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIFlvdSBtYXkgd2FudCB0byBjYWxsIHRoaXMgd2hlbiB5b3Uga25vdyB0aGF0IHNvbWUgZGVlcGVyIGFzcGVjdCBvZiB0aGVcbiAgICogY29tcG9uZW50J3Mgc3RhdGUgaGFzIGNoYW5nZWQgYnV0IGBzZXRTdGF0ZWAgd2FzIG5vdCBjYWxsZWQuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBub3QgaW52b2tlIGBzaG91bGRDb21wb25lbnRVcGRhdGVgLCBidXQgaXQgd2lsbCBpbnZva2VcbiAgICogYGNvbXBvbmVudFdpbGxVcGRhdGVgIGFuZCBgY29tcG9uZW50RGlkVXBkYXRlYC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgY29tcG9uZW50IGlzIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gY2FsbGVyTmFtZSBuYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAnZm9yY2VVcGRhdGUnKTtcbiAgfSxcblxuICAvKipcbiAgICogUmVwbGFjZXMgYWxsIG9mIHRoZSBzdGF0ZS4gQWx3YXlzIHVzZSB0aGlzIG9yIGBzZXRTdGF0ZWAgdG8gbXV0YXRlIHN0YXRlLlxuICAgKiBZb3Ugc2hvdWxkIHRyZWF0IGB0aGlzLnN0YXRlYCBhcyBpbW11dGFibGUuXG4gICAqXG4gICAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGB0aGlzLnN0YXRlYCB3aWxsIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQsIHNvXG4gICAqIGFjY2Vzc2luZyBgdGhpcy5zdGF0ZWAgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuIHRoZSBvbGQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29tcGxldGVTdGF0ZSBOZXh0IHN0YXRlLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGNhbGxlck5hbWUgbmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNvbXBsZXRlU3RhdGUsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdyZXBsYWNlU3RhdGUnKTtcbiAgfSxcblxuICAvKipcbiAgICogU2V0cyBhIHN1YnNldCBvZiB0aGUgc3RhdGUuIFRoaXMgb25seSBleGlzdHMgYmVjYXVzZSBfcGVuZGluZ1N0YXRlIGlzXG4gICAqIGludGVybmFsLiBUaGlzIHByb3ZpZGVzIGEgbWVyZ2luZyBzdHJhdGVneSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgdG8gZGVlcFxuICAgKiBwcm9wZXJ0aWVzIHdoaWNoIGlzIGNvbmZ1c2luZy4gVE9ETzogRXhwb3NlIHBlbmRpbmdTdGF0ZSBvciBkb24ndCB1c2UgaXRcbiAgICogZHVyaW5nIHRoZSBtZXJnZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWFsU3RhdGUgTmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIHN0YXRlLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IE5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ3NldFN0YXRlJyk7XG4gIH1cbn07XG5cbnZhciBlbXB0eU9iamVjdCA9IHt9O1xuXG57XG4gIE9iamVjdC5mcmVlemUoZW1wdHlPYmplY3QpO1xufVxuLyoqXG4gKiBCYXNlIGNsYXNzIGhlbHBlcnMgZm9yIHRoZSB1cGRhdGluZyBzdGF0ZSBvZiBhIGNvbXBvbmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIENvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7IC8vIElmIGEgY29tcG9uZW50IGhhcyBzdHJpbmcgcmVmcywgd2Ugd2lsbCBhc3NpZ24gYSBkaWZmZXJlbnQgb2JqZWN0IGxhdGVyLlxuXG4gIHRoaXMucmVmcyA9IGVtcHR5T2JqZWN0OyAvLyBXZSBpbml0aWFsaXplIHRoZSBkZWZhdWx0IHVwZGF0ZXIgYnV0IHRoZSByZWFsIG9uZSBnZXRzIGluamVjdGVkIGJ5IHRoZVxuICAvLyByZW5kZXJlci5cblxuICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xufVxuXG5Db21wb25lbnQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcbi8qKlxuICogU2V0cyBhIHN1YnNldCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyB0byBtdXRhdGVcbiAqIHN0YXRlLiBZb3Ugc2hvdWxkIHRyZWF0IGB0aGlzLnN0YXRlYCBhcyBpbW11dGFibGUuXG4gKlxuICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYHRoaXMuc3RhdGVgIHdpbGwgYmUgaW1tZWRpYXRlbHkgdXBkYXRlZCwgc29cbiAqIGFjY2Vzc2luZyBgdGhpcy5zdGF0ZWAgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuIHRoZSBvbGQgdmFsdWUuXG4gKlxuICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgY2FsbHMgdG8gYHNldFN0YXRlYCB3aWxsIHJ1biBzeW5jaHJvbm91c2x5LFxuICogYXMgdGhleSBtYXkgZXZlbnR1YWxseSBiZSBiYXRjaGVkIHRvZ2V0aGVyLiAgWW91IGNhbiBwcm92aWRlIGFuIG9wdGlvbmFsXG4gKiBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgY2FsbCB0byBzZXRTdGF0ZSBpcyBhY3R1YWxseVxuICogY29tcGxldGVkLlxuICpcbiAqIFdoZW4gYSBmdW5jdGlvbiBpcyBwcm92aWRlZCB0byBzZXRTdGF0ZSwgaXQgd2lsbCBiZSBjYWxsZWQgYXQgc29tZSBwb2ludCBpblxuICogdGhlIGZ1dHVyZSAobm90IHN5bmNocm9ub3VzbHkpLiBJdCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSB1cCB0byBkYXRlXG4gKiBjb21wb25lbnQgYXJndW1lbnRzIChzdGF0ZSwgcHJvcHMsIGNvbnRleHQpLiBUaGVzZSB2YWx1ZXMgY2FuIGJlIGRpZmZlcmVudFxuICogZnJvbSB0aGlzLiogYmVjYXVzZSB5b3VyIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgYWZ0ZXIgcmVjZWl2ZVByb3BzIGJ1dCBiZWZvcmVcbiAqIHNob3VsZENvbXBvbmVudFVwZGF0ZSwgYW5kIHRoaXMgbmV3IHN0YXRlLCBwcm9wcywgYW5kIGNvbnRleHQgd2lsbCBub3QgeWV0IGJlXG4gKiBhc3NpZ25lZCB0byB0aGlzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBwYXJ0aWFsU3RhdGUgTmV4dCBwYXJ0aWFsIHN0YXRlIG9yIGZ1bmN0aW9uIHRvXG4gKiAgICAgICAgcHJvZHVjZSBuZXh0IHBhcnRpYWwgc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgc3RhdGUgaXMgdXBkYXRlZC5cbiAqIEBmaW5hbFxuICogQHByb3RlY3RlZFxuICovXG5cbkNvbXBvbmVudC5wcm90b3R5cGUuc2V0U3RhdGUgPSBmdW5jdGlvbiAocGFydGlhbFN0YXRlLCBjYWxsYmFjaykge1xuICBpZiAodHlwZW9mIHBhcnRpYWxTdGF0ZSAhPT0gJ29iamVjdCcgJiYgdHlwZW9mIHBhcnRpYWxTdGF0ZSAhPT0gJ2Z1bmN0aW9uJyAmJiBwYXJ0aWFsU3RhdGUgIT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSAnICsgJ2Z1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4nKTtcbiAgfVxuXG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgJ3NldFN0YXRlJyk7XG59O1xuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuXG5Db21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcywgY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xufTtcbi8qKlxuICogRGVwcmVjYXRlZCBBUElzLiBUaGVzZSBBUElzIHVzZWQgdG8gZXhpc3Qgb24gY2xhc3NpYyBSZWFjdCBjbGFzc2VzIGJ1dCBzaW5jZVxuICogd2Ugd291bGQgbGlrZSB0byBkZXByZWNhdGUgdGhlbSwgd2UncmUgbm90IGdvaW5nIHRvIG1vdmUgdGhlbSBvdmVyIHRvIHRoaXNcbiAqIG1vZGVybiBiYXNlIGNsYXNzLiBJbnN0ZWFkLCB3ZSBkZWZpbmUgYSBnZXR0ZXIgdGhhdCB3YXJucyBpZiBpdCdzIGFjY2Vzc2VkLlxuICovXG5cblxue1xuICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgaXNNb3VudGVkOiBbJ2lzTW91bnRlZCcsICdJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiAnICsgJ2NvbXBvbmVudFdpbGxVbm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLiddLFxuICAgIHJlcGxhY2VTdGF0ZTogWydyZXBsYWNlU3RhdGUnLCAnUmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBzZXRTdGF0ZSBpbnN0ZWFkIChzZWUgJyArICdodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiddXG4gIH07XG5cbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvbmVudC5wcm90b3R5cGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCclcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlcycsIGluZm9bMF0sIGluZm9bMV0pO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9yICh2YXIgZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkpIHtcbiAgICAgIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyhmbk5hbWUsIGRlcHJlY2F0ZWRBUElzW2ZuTmFtZV0pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5cbkNvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4vKipcbiAqIENvbnZlbmllbmNlIGNvbXBvbmVudCB3aXRoIGRlZmF1bHQgc2hhbGxvdyBlcXVhbGl0eSBjaGVjayBmb3Igc0NVLlxuICovXG5cbmZ1bmN0aW9uIFB1cmVDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDtcbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxudmFyIHB1cmVDb21wb25lbnRQcm90b3R5cGUgPSBQdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnREdW1teSgpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFB1cmVDb21wb25lbnQ7IC8vIEF2b2lkIGFuIGV4dHJhIHByb3RvdHlwZSBqdW1wIGZvciB0aGVzZSBtZXRob2RzLlxuXG5hc3NpZ24ocHVyZUNvbXBvbmVudFByb3RvdHlwZSwgQ29tcG9uZW50LnByb3RvdHlwZSk7XG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxuLy8gYW4gaW1tdXRhYmxlIG9iamVjdCB3aXRoIGEgc2luZ2xlIG11dGFibGUgdmFsdWVcbmZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcbiAgdmFyIHJlZk9iamVjdCA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gIH1cblxuICByZXR1cm4gcmVmT2JqZWN0O1xufVxuXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYSkge1xuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XG59XG5cbi8qXG4gKiBUaGUgYCcnICsgdmFsdWVgIHBhdHRlcm4gKHVzZWQgaW4gcGVyZi1zZW5zaXRpdmUgY29kZSkgdGhyb3dzIGZvciBTeW1ib2xcbiAqIGFuZCBUZW1wb3JhbC4qIHR5cGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjIwNjQuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB3aWxsIHRocm93IGFuIGVhc2llci10by11bmRlcnN0YW5kLFxuICogZWFzaWVyLXRvLWRlYnVnIGV4Y2VwdGlvbiB3aXRoIGEgY2xlYXIgZXJyb3JzIG1lc3NhZ2UgbWVzc2FnZSBleHBsYWluaW5nIHRoZVxuICogcHJvYmxlbS4gKEluc3RlYWQgb2YgYSBjb25mdXNpbmcgZXhjZXB0aW9uIHRocm93biBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uXG4gKiBvZiB0aGUgYHZhbHVlYCBvYmplY3QpLlxuICovXG4vLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuZnVuY3Rpb24gdHlwZU5hbWUodmFsdWUpIHtcbiAge1xuICAgIC8vIHRvU3RyaW5nVGFnIGlzIG5lZWRlZCBmb3IgbmFtZXNwYWNlZCB0eXBlcyBsaWtlIFRlbXBvcmFsLkluc3RhbnRcbiAgICB2YXIgaGFzVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC50b1N0cmluZ1RhZztcbiAgICB2YXIgdHlwZSA9IGhhc1RvU3RyaW5nVGFnICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gfHwgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fCAnT2JqZWN0JzsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cblxuXG5mdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xuICB7XG4gICAgdHJ5IHtcbiAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAvLyBJZiB5b3UgZW5kZWQgdXAgaGVyZSBieSBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uIGNhbGwgc3RhY2ssIGhlcmUncyB3aGF0J3NcbiAgLy8gaGFwcGVuZWQ6IHlvdSBzdXBwbGllZCBhbiBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIFJlYWN0IChhcyBhIHByb3AsIGtleSxcbiAgLy8gRE9NIGF0dHJpYnV0ZSwgQ1NTIHByb3BlcnR5LCBzdHJpbmcgcmVmLCBldGMuKSBhbmQgd2hlbiBSZWFjdCB0cmllZCB0b1xuICAvLyBjb2VyY2UgaXQgdG8gYSBzdHJpbmcgdXNpbmcgYCcnICsgdmFsdWVgLCBhbiBleGNlcHRpb24gd2FzIHRocm93bi5cbiAgLy9cbiAgLy8gVGhlIG1vc3QgY29tbW9uIHR5cGVzIHRoYXQgd2lsbCBjYXVzZSB0aGlzIGV4Y2VwdGlvbiBhcmUgYFN5bWJvbGAgaW5zdGFuY2VzXG4gIC8vIGFuZCBUZW1wb3JhbCBvYmplY3RzIGxpa2UgYFRlbXBvcmFsLkluc3RhbnRgLiBCdXQgYW55IG9iamVjdCB0aGF0IGhhcyBhXG4gIC8vIGB2YWx1ZU9mYCBvciBgW1N5bWJvbC50b1ByaW1pdGl2ZV1gIG1ldGhvZCB0aGF0IHRocm93cyB3aWxsIGFsc28gY2F1c2UgdGhpc1xuICAvLyBleGNlcHRpb24uIChMaWJyYXJ5IGF1dGhvcnMgZG8gdGhpcyB0byBwcmV2ZW50IHVzZXJzIGZyb20gdXNpbmcgYnVpbHQtaW5cbiAgLy8gbnVtZXJpYyBvcGVyYXRvcnMgbGlrZSBgK2Agb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgbGlrZSBgPj1gIGJlY2F1c2UgY3VzdG9tXG4gIC8vIG1ldGhvZHMgYXJlIG5lZWRlZCB0byBwZXJmb3JtIGFjY3VyYXRlIGFyaXRobWV0aWMgb3IgY29tcGFyaXNvbi4pXG4gIC8vXG4gIC8vIFRvIGZpeCB0aGUgcHJvYmxlbSwgY29lcmNlIHRoaXMgb2JqZWN0IG9yIHN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyBiZWZvcmVcbiAgLy8gcGFzc2luZyBpdCB0byBSZWFjdC4gVGhlIG1vc3QgcmVsaWFibGUgd2F5IGlzIHVzdWFsbHkgYFN0cmluZyh2YWx1ZSlgLlxuICAvL1xuICAvLyBUbyBmaW5kIHdoaWNoIHZhbHVlIGlzIHRocm93aW5nLCBjaGVjayB0aGUgYnJvd3NlciBvciBkZWJ1Z2dlciBjb25zb2xlLlxuICAvLyBCZWZvcmUgdGhpcyBleGNlcHRpb24gd2FzIHRocm93biwgdGhlcmUgc2hvdWxkIGJlIGBjb25zb2xlLmVycm9yYCBvdXRwdXRcbiAgLy8gdGhhdCBzaG93cyB0aGUgdHlwZSAoU3ltYm9sLCBUZW1wb3JhbC5QbGFpbkRhdGUsIGV0Yy4pIHRoYXQgY2F1c2VkIHRoZVxuICAvLyBwcm9ibGVtIGFuZCBob3cgdGhhdCB0eXBlIHdhcyB1c2VkOiBrZXksIGF0cnJpYnV0ZSwgaW5wdXQgdmFsdWUgcHJvcCwgZXRjLlxuICAvLyBJbiBtb3N0IGNhc2VzLCB0aGlzIGNvbnNvbGUgb3V0cHV0IGFsc28gc2hvd3MgdGhlIGNvbXBvbmVudCBhbmQgaXRzXG4gIC8vIGFuY2VzdG9yIGNvbXBvbmVudHMgd2hlcmUgdGhlIGV4Y2VwdGlvbiBoYXBwZW5lZC5cbiAgLy9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gIHJldHVybiAnJyArIHZhbHVlO1xufVxuZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XG4gIHZhciBkaXNwbGF5TmFtZSA9IG91dGVyVHlwZS5kaXNwbGF5TmFtZTtcblxuICBpZiAoZGlzcGxheU5hbWUpIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XG4gIH1cblxuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xuICByZXR1cm4gZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lO1xufSAvLyBLZWVwIGluIHN5bmMgd2l0aCByZWFjdC1yZWNvbmNpbGVyL2dldENvbXBvbmVudE5hbWVGcm9tRmliZXJcblxuXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0Jztcbn1cblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMiA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTsgLy8gTm90ZSB0aGF0IHRoZSByZWNvbmNpbGVyIHBhY2thZ2Ugc2hvdWxkIGdlbmVyYWxseSBwcmVmZXIgdG8gdXNlIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoKSBpbnN0ZWFkLlxuXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQyKSB7XG4gICAgICAvLyBUT0RPOiBDcmVhdGUgYSBjb252ZW50aW9uIGZvciBuYW1pbmcgY2xpZW50IHJlZmVyZW5jZXMgd2l0aCBkZWJ1ZyBpbmZvLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICByZXR1cm4gJ0ZyYWdtZW50JztcblxuICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XG5cbiAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICByZXR1cm4gJ1Byb2ZpbGVyJztcblxuICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuXG4gICAgY2FzZSBSRUFDVF9DQUNIRV9UWVBFOlxuICAgICAge1xuICAgICAgICByZXR1cm4gJ0NhY2hlJztcbiAgICAgIH1cblxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZS50YWcgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGVycm9yKCdSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoKS4gJyArICdUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgdmFyIGNvbnRleHQgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUoY29udGV4dCkgKyAnLkNvbnN1bWVyJztcblxuICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUocHJvdmlkZXIuX2NvbnRleHQpICsgJy5Qcm92aWRlcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldFdyYXBwZWROYW1lKHR5cGUsIHR5cGUucmVuZGVyLCAnRm9yd2FyZFJlZicpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgdmFyIG91dGVyTmFtZSA9IHR5cGUuZGlzcGxheU5hbWUgfHwgbnVsbDtcblxuICAgICAgICBpZiAob3V0ZXJOYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG91dGVyTmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCAnTWVtbyc7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgUkVTRVJWRURfUFJPUFMgPSB7XG4gIGtleTogdHJ1ZSxcbiAgcmVmOiB0cnVlLFxuICBfX3NlbGY6IHRydWUsXG4gIF9fc291cmNlOiB0cnVlXG59O1xudmFyIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duLCBzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93biwgZGlkV2FybkFib3V0U3RyaW5nUmVmcztcblxue1xuICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzID0ge307XG59XG5cbmZ1bmN0aW9uIGhhc1ZhbGlkUmVmKGNvbmZpZykge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAncmVmJykpIHtcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ3JlZicpLmdldDtcblxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWcucmVmICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAna2V5JykpIHtcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ2tleScpLmdldDtcblxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWcua2V5ICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB2YXIgd2FybkFib3V0QWNjZXNzaW5nS2V5ID0gZnVuY3Rpb24gKCkge1xuICAgIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYGtleWAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgd2FybkFib3V0QWNjZXNzaW5nS2V5LmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAna2V5Jywge1xuICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYgPSBmdW5jdGlvbiAoKSB7XG4gICAge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBgcmVmYCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdyZWYnLCB7XG4gICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZy5yZWYgPT09ICdzdHJpbmcnICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgJiYgY29uZmlnLl9fc2VsZiAmJiBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnN0YXRlTm9kZSAhPT0gY29uZmlnLl9fc2VsZikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCdDb21wb25lbnQgXCIlc1wiIGNvbnRhaW5zIHRoZSBzdHJpbmcgcmVmIFwiJXNcIi4gJyArICdTdXBwb3J0IGZvciBzdHJpbmcgcmVmcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gJyArICdUaGlzIGNhc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uLiAnICsgJ1dlIGFzayB5b3UgdG8gbWFudWFsbHkgZml4IHRoaXMgY2FzZSBieSB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIGNvbXBvbmVudE5hbWUsIGNvbmZpZy5yZWYpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYSBuZXcgUmVhY3QgZWxlbWVudC4gVGhpcyBubyBsb25nZXIgYWRoZXJlcyB0b1xuICogdGhlIGNsYXNzIHBhdHRlcm4sIHNvIGRvIG5vdCB1c2UgbmV3IHRvIGNhbGwgaXQuIEFsc28sIGluc3RhbmNlb2YgY2hlY2tcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xuICogaWYgc29tZXRoaW5nIGlzIGEgUmVhY3QgRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7Kn0gcHJvcHNcbiAqIEBwYXJhbSB7Kn0ga2V5XG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxuICogQHBhcmFtIHsqfSBvd25lclxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXG4gKiBjYW4gd2Fybi4gV2Ugd2FudCB0byBnZXQgcmlkIG9mIG93bmVyIGFuZCByZXBsYWNlIHN0cmluZyBgcmVmYHMgd2l0aCBhcnJvd1xuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xuICogY2hhbmdlIGluIGJlaGF2aW9yLlxuICogQHBhcmFtIHsqfSBzb3VyY2UgQW4gYW5ub3RhdGlvbiBvYmplY3QgKGFkZGVkIGJ5IGEgdHJhbnNwaWxlciBvciBvdGhlcndpc2UpXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxuICogQGludGVybmFsXG4gKi9cblxuXG5mdW5jdGlvbiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgb3duZXIsIHByb3BzKSB7XG4gIHZhciBlbGVtZW50ID0ge1xuICAgIC8vIFRoaXMgdGFnIGFsbG93cyB1cyB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIGFzIGEgUmVhY3QgRWxlbWVudFxuICAgICQkdHlwZW9mOiBSRUFDVF9FTEVNRU5UX1RZUEUsXG4gICAgLy8gQnVpbHQtaW4gcHJvcGVydGllcyB0aGF0IGJlbG9uZyBvbiB0aGUgZWxlbWVudFxuICAgIHR5cGU6IHR5cGUsXG4gICAga2V5OiBrZXksXG4gICAgcmVmOiByZWYsXG4gICAgcHJvcHM6IHByb3BzLFxuICAgIC8vIFJlY29yZCB0aGUgY29tcG9uZW50IHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGlzIGVsZW1lbnQuXG4gICAgX293bmVyOiBvd25lclxuICB9O1xuXG4gIHtcbiAgICAvLyBUaGUgdmFsaWRhdGlvbiBmbGFnIGlzIGN1cnJlbnRseSBtdXRhdGl2ZS4gV2UgcHV0IGl0IG9uXG4gICAgLy8gYW4gZXh0ZXJuYWwgYmFja2luZyBzdG9yZSBzbyB0aGF0IHdlIGNhbiBmcmVlemUgdGhlIHdob2xlIG9iamVjdC5cbiAgICAvLyBUaGlzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgV2Vha01hcCBvbmNlIHRoZXkgYXJlIGltcGxlbWVudGVkIGluXG4gICAgLy8gY29tbW9ubHkgdXNlZCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMuXG4gICAgZWxlbWVudC5fc3RvcmUgPSB7fTsgLy8gVG8gbWFrZSBjb21wYXJpbmcgUmVhY3RFbGVtZW50cyBlYXNpZXIgZm9yIHRlc3RpbmcgcHVycG9zZXMsIHdlIG1ha2VcbiAgICAvLyB0aGUgdmFsaWRhdGlvbiBmbGFnIG5vbi1lbnVtZXJhYmxlICh3aGVyZSBwb3NzaWJsZSwgd2hpY2ggc2hvdWxkXG4gICAgLy8gaW5jbHVkZSBldmVyeSBlbnZpcm9ubWVudCB3ZSBydW4gdGVzdHMgaW4pLCBzbyB0aGUgdGVzdCBmcmFtZXdvcmtcbiAgICAvLyBpZ25vcmVzIGl0LlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQuX3N0b3JlLCAndmFsaWRhdGVkJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogZmFsc2VcbiAgICB9KTsgLy8gc2VsZiBhbmQgc291cmNlIGFyZSBERVYgb25seSBwcm9wZXJ0aWVzLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc2VsZicsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzZWxmXG4gICAgfSk7IC8vIFR3byBlbGVtZW50cyBjcmVhdGVkIGluIHR3byBkaWZmZXJlbnQgcGxhY2VzIHNob3VsZCBiZSBjb25zaWRlcmVkXG4gICAgLy8gZXF1YWwgZm9yIHRlc3RpbmcgcHVycG9zZXMgYW5kIHRoZXJlZm9yZSB3ZSBoaWRlIGl0IGZyb20gZW51bWVyYXRpb24uXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zb3VyY2UnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc291cmNlXG4gICAgfSk7XG5cbiAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50LnByb3BzKTtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG4vKipcbiAqIENyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY3JlYXRlZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQkMSh0eXBlLCBjb25maWcsIGNoaWxkcmVuKSB7XG4gIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIga2V5ID0gbnVsbDtcbiAgdmFyIHJlZiA9IG51bGw7XG4gIHZhciBzZWxmID0gbnVsbDtcbiAgdmFyIHNvdXJjZSA9IG51bGw7XG5cbiAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgaWYgKGhhc1ZhbGlkUmVmKGNvbmZpZykpIHtcbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG5cbiAgICAgIHtcbiAgICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH1cblxuICAgIHNlbGYgPSBjb25maWcuX19zZWxmID09PSB1bmRlZmluZWQgPyBudWxsIDogY29uZmlnLl9fc2VsZjtcbiAgICBzb3VyY2UgPSBjb25maWcuX19zb3VyY2UgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjb25maWcuX19zb3VyY2U7IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIGFyZSBhZGRlZCB0byBhIG5ldyBwcm9wcyBvYmplY3RcblxuICAgIGZvciAocHJvcE5hbWUgaW4gY29uZmlnKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIHByb3BOYW1lKSAmJiAhUkVTRVJWRURfUFJPUFMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9IC8vIENoaWxkcmVuIGNhbiBiZSBtb3JlIHRoYW4gb25lIGFyZ3VtZW50LCBhbmQgdGhvc2UgYXJlIHRyYW5zZmVycmVkIG9udG9cbiAgLy8gdGhlIG5ld2x5IGFsbG9jYXRlZCBwcm9wcyBvYmplY3QuXG5cblxuICB2YXIgY2hpbGRyZW5MZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcblxuICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHtcbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB9IGVsc2UgaWYgKGNoaWxkcmVuTGVuZ3RoID4gMSkge1xuICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGlsZEFycmF5W2ldID0gYXJndW1lbnRzW2kgKyAyXTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkQXJyYXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3BzLmNoaWxkcmVuID0gY2hpbGRBcnJheTtcbiAgfSAvLyBSZXNvbHZlIGRlZmF1bHQgcHJvcHNcblxuXG4gIGlmICh0eXBlICYmIHR5cGUuZGVmYXVsdFByb3BzKSB7XG4gICAgdmFyIGRlZmF1bHRQcm9wcyA9IHR5cGUuZGVmYXVsdFByb3BzO1xuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBkZWZhdWx0UHJvcHMpIHtcbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBkZWZhdWx0UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHtcbiAgICBpZiAoa2V5IHx8IHJlZikge1xuICAgICAgdmFyIGRpc3BsYXlOYW1lID0gdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgPyB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCAnVW5rbm93bicgOiB0eXBlO1xuXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gUmVhY3RFbGVtZW50KHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQsIHByb3BzKTtcbn1cbmZ1bmN0aW9uIGNsb25lQW5kUmVwbGFjZUtleShvbGRFbGVtZW50LCBuZXdLZXkpIHtcbiAgdmFyIG5ld0VsZW1lbnQgPSBSZWFjdEVsZW1lbnQob2xkRWxlbWVudC50eXBlLCBuZXdLZXksIG9sZEVsZW1lbnQucmVmLCBvbGRFbGVtZW50Ll9zZWxmLCBvbGRFbGVtZW50Ll9zb3VyY2UsIG9sZEVsZW1lbnQuX293bmVyLCBvbGRFbGVtZW50LnByb3BzKTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG4vKipcbiAqIENsb25lIGFuZCByZXR1cm4gYSBuZXcgUmVhY3RFbGVtZW50IHVzaW5nIGVsZW1lbnQgYXMgdGhlIHN0YXJ0aW5nIHBvaW50LlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNjbG9uZWVsZW1lbnRcbiAqL1xuXG5mdW5jdGlvbiBjbG9uZUVsZW1lbnQkMShlbGVtZW50LCBjb25maWcsIGNoaWxkcmVuKSB7XG4gIGlmIChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiICsgZWxlbWVudCArIFwiLlwiKTtcbiAgfVxuXG4gIHZhciBwcm9wTmFtZTsgLy8gT3JpZ2luYWwgcHJvcHMgYXJlIGNvcGllZFxuXG4gIHZhciBwcm9wcyA9IGFzc2lnbih7fSwgZWxlbWVudC5wcm9wcyk7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuICB2YXIga2V5ID0gZWxlbWVudC5rZXk7XG4gIHZhciByZWYgPSBlbGVtZW50LnJlZjsgLy8gU2VsZiBpcyBwcmVzZXJ2ZWQgc2luY2UgdGhlIG93bmVyIGlzIHByZXNlcnZlZC5cblxuICB2YXIgc2VsZiA9IGVsZW1lbnQuX3NlbGY7IC8vIFNvdXJjZSBpcyBwcmVzZXJ2ZWQgc2luY2UgY2xvbmVFbGVtZW50IGlzIHVubGlrZWx5IHRvIGJlIHRhcmdldGVkIGJ5IGFcbiAgLy8gdHJhbnNwaWxlciwgYW5kIHRoZSBvcmlnaW5hbCBzb3VyY2UgaXMgcHJvYmFibHkgYSBiZXR0ZXIgaW5kaWNhdG9yIG9mIHRoZVxuICAvLyB0cnVlIG93bmVyLlxuXG4gIHZhciBzb3VyY2UgPSBlbGVtZW50Ll9zb3VyY2U7IC8vIE93bmVyIHdpbGwgYmUgcHJlc2VydmVkLCB1bmxlc3MgcmVmIGlzIG92ZXJyaWRkZW5cblxuICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcblxuICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICBpZiAoaGFzVmFsaWRSZWYoY29uZmlnKSkge1xuICAgICAgLy8gU2lsZW50bHkgc3RlYWwgdGhlIHJlZiBmcm9tIHRoZSBwYXJlbnQuXG4gICAgICByZWYgPSBjb25maWcucmVmO1xuICAgICAgb3duZXIgPSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XG4gICAgICB7XG4gICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIG92ZXJyaWRlIGV4aXN0aW5nIHByb3BzXG5cblxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG5cbiAgICBpZiAoZWxlbWVudC50eXBlICYmIGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIGRlZmF1bHRQcm9wcyA9IGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHM7XG4gICAgfVxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgaWYgKGNvbmZpZ1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0UHJvcHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudChlbGVtZW50LnR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcyk7XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsICYmIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xufVxuXG52YXIgU0VQQVJBVE9SID0gJy4nO1xudmFyIFNVQlNFUEFSQVRPUiA9ICc6Jztcbi8qKlxuICogRXNjYXBlIGFuZCB3cmFwIGtleSBzbyBpdCBpcyBzYWZlIHRvIHVzZSBhcyBhIHJlYWN0aWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IHRvIGJlIGVzY2FwZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSBlc2NhcGVkIGtleS5cbiAqL1xuXG5mdW5jdGlvbiBlc2NhcGUoa2V5KSB7XG4gIHZhciBlc2NhcGVSZWdleCA9IC9bPTpdL2c7XG4gIHZhciBlc2NhcGVyTG9va3VwID0ge1xuICAgICc9JzogJz0wJyxcbiAgICAnOic6ICc9MidcbiAgfTtcbiAgdmFyIGVzY2FwZWRTdHJpbmcgPSBrZXkucmVwbGFjZShlc2NhcGVSZWdleCwgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVzY2FwZXJMb29rdXBbbWF0Y2hdO1xuICB9KTtcbiAgcmV0dXJuICckJyArIGVzY2FwZWRTdHJpbmc7XG59XG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG5cbnZhciBkaWRXYXJuQWJvdXRNYXBzID0gZmFsc2U7XG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nO1xuXG5mdW5jdGlvbiBlc2NhcGVVc2VyUHJvdmlkZWRLZXkodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4LCAnJCYvJyk7XG59XG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBlbGVtZW50IHdpdGhpbiBhIHNldC5cbiAqXG4gKiBAcGFyYW0geyp9IGVsZW1lbnQgQSBlbGVtZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7XG4gIC8vIERvIHNvbWUgdHlwZWNoZWNraW5nIGhlcmUgc2luY2Ugd2UgY2FsbCB0aGlzIGJsaW5kbHkuIFdlIHdhbnQgdG8gZW5zdXJlXG4gIC8vIHRoYXQgd2UgZG9uJ3QgYmxvY2sgcG90ZW50aWFsIGZ1dHVyZSBFUyBBUElzLlxuICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdvYmplY3QnICYmIGVsZW1lbnQgIT09IG51bGwgJiYgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgIC8vIEV4cGxpY2l0IGtleVxuICAgIHtcbiAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oZWxlbWVudC5rZXkpO1xuICAgIH1cblxuICAgIHJldHVybiBlc2NhcGUoJycgKyBlbGVtZW50LmtleSk7XG4gIH0gLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcblxuXG4gIHJldHVybiBpbmRleC50b1N0cmluZygzNik7XG59XG5cbmZ1bmN0aW9uIG1hcEludG9BcnJheShjaGlsZHJlbiwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5hbWVTb0ZhciwgY2FsbGJhY2spIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgY2hpbGRyZW47XG5cbiAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGUgPT09ICdib29sZWFuJykge1xuICAgIC8vIEFsbCBvZiB0aGUgYWJvdmUgYXJlIHBlcmNlaXZlZCBhcyBudWxsLlxuICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgfVxuXG4gIHZhciBpbnZva2VDYWxsYmFjayA9IGZhbHNlO1xuXG4gIGlmIChjaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBpbnZva2VDYWxsYmFjayA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgaWYgKGludm9rZUNhbGxiYWNrKSB7XG4gICAgdmFyIF9jaGlsZCA9IGNoaWxkcmVuO1xuICAgIHZhciBtYXBwZWRDaGlsZCA9IGNhbGxiYWNrKF9jaGlsZCk7IC8vIElmIGl0J3MgdGhlIG9ubHkgY2hpbGQsIHRyZWF0IHRoZSBuYW1lIGFzIGlmIGl0IHdhcyB3cmFwcGVkIGluIGFuIGFycmF5XG4gICAgLy8gc28gdGhhdCBpdCdzIGNvbnNpc3RlbnQgaWYgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBncm93czpcblxuICAgIHZhciBjaGlsZEtleSA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgKyBnZXRFbGVtZW50S2V5KF9jaGlsZCwgMCkgOiBuYW1lU29GYXI7XG5cbiAgICBpZiAoaXNBcnJheShtYXBwZWRDaGlsZCkpIHtcbiAgICAgIHZhciBlc2NhcGVkQ2hpbGRLZXkgPSAnJztcblxuICAgICAgaWYgKGNoaWxkS2V5ICE9IG51bGwpIHtcbiAgICAgICAgZXNjYXBlZENoaWxkS2V5ID0gZXNjYXBlVXNlclByb3ZpZGVkS2V5KGNoaWxkS2V5KSArICcvJztcbiAgICAgIH1cblxuICAgICAgbWFwSW50b0FycmF5KG1hcHBlZENoaWxkLCBhcnJheSwgZXNjYXBlZENoaWxkS2V5LCAnJywgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1hcHBlZENoaWxkICE9IG51bGwpIHtcbiAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChtYXBwZWRDaGlsZCkpIHtcbiAgICAgICAge1xuICAgICAgICAgIC8vIFRoZSBgaWZgIHN0YXRlbWVudCBoZXJlIHByZXZlbnRzIGF1dG8tZGlzYWJsaW5nIG9mIHRoZSBzYWZlXG4gICAgICAgICAgLy8gY29lcmNpb24gRVNMaW50IHJ1bGUsIHNvIHdlIG11c3QgbWFudWFsbHkgZGlzYWJsZSBpdCBiZWxvdy5cbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBSZWFjdC5Qb3J0YWwgZG9lc24ndCBoYXZlIGEga2V5XG4gICAgICAgICAgaWYgKG1hcHBlZENoaWxkLmtleSAmJiAoIV9jaGlsZCB8fCBfY2hpbGQua2V5ICE9PSBtYXBwZWRDaGlsZC5rZXkpKSB7XG4gICAgICAgICAgICBjaGVja0tleVN0cmluZ0NvZXJjaW9uKG1hcHBlZENoaWxkLmtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbWFwcGVkQ2hpbGQgPSBjbG9uZUFuZFJlcGxhY2VLZXkobWFwcGVkQ2hpbGQsIC8vIEtlZXAgYm90aCB0aGUgKG1hcHBlZCkgYW5kIG9sZCBrZXlzIGlmIHRoZXkgZGlmZmVyLCBqdXN0IGFzXG4gICAgICAgIC8vIHRyYXZlcnNlQWxsQ2hpbGRyZW4gdXNlZCB0byBkbyBmb3Igb2JqZWN0cyBhcyBjaGlsZHJlblxuICAgICAgICBlc2NhcGVkUHJlZml4ICsgKCAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBSZWFjdC5Qb3J0YWwgZG9lc24ndCBoYXZlIGEga2V5XG4gICAgICAgIG1hcHBlZENoaWxkLmtleSAmJiAoIV9jaGlsZCB8fCBfY2hpbGQua2V5ICE9PSBtYXBwZWRDaGlsZC5rZXkpID8gZXNjYXBlVXNlclByb3ZpZGVkS2V5KCAvLyAkRmxvd0ZpeE1lW3Vuc2FmZS1hZGRpdGlvbl1cbiAgICAgICAgJycgKyBtYXBwZWRDaGlsZC5rZXkgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgICAgICApICsgJy8nIDogJycpICsgY2hpbGRLZXkpO1xuICAgICAgfVxuXG4gICAgICBhcnJheS5wdXNoKG1hcHBlZENoaWxkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIHZhciBjaGlsZDtcbiAgdmFyIG5leHROYW1lO1xuICB2YXIgc3VidHJlZUNvdW50ID0gMDsgLy8gQ291bnQgb2YgY2hpbGRyZW4gZm91bmQgaW4gdGhlIGN1cnJlbnQgc3VidHJlZS5cblxuICB2YXIgbmV4dE5hbWVQcmVmaXggPSBuYW1lU29GYXIgPT09ICcnID8gU0VQQVJBVE9SIDogbmFtZVNvRmFyICsgU1VCU0VQQVJBVE9SO1xuXG4gIGlmIChpc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoaWxkID0gY2hpbGRyZW5baV07XG4gICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0RWxlbWVudEtleShjaGlsZCwgaSk7XG4gICAgICBzdWJ0cmVlQ291bnQgKz0gbWFwSW50b0FycmF5KGNoaWxkLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgbmV4dE5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKGNoaWxkcmVuKTtcblxuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdmFyIGl0ZXJhYmxlQ2hpbGRyZW4gPSBjaGlsZHJlbjtcblxuICAgICAge1xuICAgICAgICAvLyBXYXJuIGFib3V0IHVzaW5nIE1hcHMgYXMgY2hpbGRyZW5cbiAgICAgICAgaWYgKGl0ZXJhdG9yRm4gPT09IGl0ZXJhYmxlQ2hpbGRyZW4uZW50cmllcykge1xuICAgICAgICAgIGlmICghZGlkV2FybkFib3V0TWFwcykge1xuICAgICAgICAgICAgd2FybignVXNpbmcgTWFwcyBhcyBjaGlsZHJlbiBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ1VzZSBhbiBhcnJheSBvZiBrZXllZCBSZWFjdEVsZW1lbnRzIGluc3RlYWQuJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGlkV2FybkFib3V0TWFwcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKGl0ZXJhYmxlQ2hpbGRyZW4pO1xuICAgICAgdmFyIHN0ZXA7XG4gICAgICB2YXIgaWkgPSAwOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS11c2VdIGBpdGVyYXRvckZuYCBtaWdodCByZXR1cm4gbnVsbCBhY2NvcmRpbmcgdG8gdHlwaW5nLlxuXG4gICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgIGNoaWxkID0gc3RlcC52YWx1ZTtcbiAgICAgICAgbmV4dE5hbWUgPSBuZXh0TmFtZVByZWZpeCArIGdldEVsZW1lbnRLZXkoY2hpbGQsIGlpKyspO1xuICAgICAgICBzdWJ0cmVlQ291bnQgKz0gbWFwSW50b0FycmF5KGNoaWxkLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgbmV4dE5hbWUsIGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgICAgIHZhciBjaGlsZHJlblN0cmluZyA9IFN0cmluZyhjaGlsZHJlbik7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6IFwiICsgKGNoaWxkcmVuU3RyaW5nID09PSAnW29iamVjdCBPYmplY3RdJyA/ICdvYmplY3Qgd2l0aCBrZXlzIHsnICsgT2JqZWN0LmtleXMoY2hpbGRyZW4pLmpvaW4oJywgJykgKyAnfScgOiBjaGlsZHJlblN0cmluZykgKyBcIikuIFwiICsgJ0lmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgJyArICdpbnN0ZWFkLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdWJ0cmVlQ291bnQ7XG59XG4vKipcbiAqIE1hcHMgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmdW5jIFRoZSBtYXAgZnVuY3Rpb24uXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgQ29udGV4dCBmb3IgbWFwRnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICovXG5cblxuZnVuY3Rpb24gbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmMsIGNvbnRleHQpIHtcbiAgaWYgKGNoaWxkcmVuID09IG51bGwpIHtcbiAgICAvLyAkRmxvd0ZpeE1lIGxpbWl0YXRpb24gcmVmaW5pbmcgYWJzdHJhY3QgdHlwZXMgaW4gRmxvd1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGNvdW50ID0gMDtcbiAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsICcnLCAnJywgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbChjb250ZXh0LCBjaGlsZCwgY291bnQrKyk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuY291bnRcbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbi5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIG4gPSAwO1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIG4rKzsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nXG4gIH0pO1xuICByZXR1cm4gbjtcbn1cbi8qKlxuICogSXRlcmF0ZXMgdGhyb3VnaCBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuZm9yZWFjaFxuICpcbiAqIFRoZSBwcm92aWRlZCBmb3JFYWNoRnVuYyhjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmb3JFYWNoRnVuY1xuICogQHBhcmFtIHsqfSBmb3JFYWNoQ29udGV4dCBDb250ZXh0IGZvciBmb3JFYWNoQ29udGV4dC5cbiAqL1xuXG5cbmZ1bmN0aW9uIGZvckVhY2hDaGlsZHJlbihjaGlsZHJlbiwgZm9yRWFjaEZ1bmMsIGZvckVhY2hDb250ZXh0KSB7XG4gIG1hcENoaWxkcmVuKGNoaWxkcmVuLCAvLyAkRmxvd0ZpeE1lW21pc3NpbmctdGhpcy1hbm5vdF1cbiAgZnVuY3Rpb24gKCkge1xuICAgIGZvckVhY2hGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIERvbid0IHJldHVybiBhbnl0aGluZy5cbiAgfSwgZm9yRWFjaENvbnRleHQpO1xufVxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW50b2FycmF5XG4gKi9cblxuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHJldHVybiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KSB8fCBbXTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgY2hpbGQgaW4gYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuIGFuZCB2ZXJpZmllcyB0aGF0IHRoZXJlXG4gKiBpcyBvbmx5IG9uZSBjaGlsZCBpbiB0aGUgY29sbGVjdGlvbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5vbmx5XG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgYSBzaW5nbGUgY2hpbGQgZ2V0c1xuICogcGFzc2VkIHdpdGhvdXQgYSB3cmFwcGVyLCBidXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBoZWxwZXIgZnVuY3Rpb24gaXMgdG9cbiAqIGFic3RyYWN0IGF3YXkgdGhlIHBhcnRpY3VsYXIgc3RydWN0dXJlIG9mIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gY2hpbGRyZW4gQ2hpbGQgY29sbGVjdGlvbiBzdHJ1Y3R1cmUuXG4gKiBAcmV0dXJuIHtSZWFjdEVsZW1lbnR9IFRoZSBmaXJzdCBhbmQgb25seSBgUmVhY3RFbGVtZW50YCBjb250YWluZWQgaW4gdGhlXG4gKiBzdHJ1Y3R1cmUuXG4gKi9cblxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLicpO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuXG52YXIgVW5pbml0aWFsaXplZCA9IC0xO1xudmFyIFBlbmRpbmcgPSAwO1xudmFyIFJlc29sdmVkID0gMTtcbnZhciBSZWplY3RlZCA9IDI7XG5cbmZ1bmN0aW9uIGxhenlJbml0aWFsaXplcihwYXlsb2FkKSB7XG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICB2YXIgY3RvciA9IHBheWxvYWQuX3Jlc3VsdDtcbiAgICB2YXIgdGhlbmFibGUgPSBjdG9yKCk7IC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgLy8gVGhpcyBtaWdodCB0aHJvdyBlaXRoZXIgYmVjYXVzZSBpdCdzIG1pc3Npbmcgb3IgdGhyb3dzLiBJZiBzbywgd2UgdHJlYXQgaXRcbiAgICAvLyBhcyBzdGlsbCB1bmluaXRpYWxpemVkIGFuZCB0cnkgYWdhaW4gbmV4dCB0aW1lLiBXaGljaCBpcyB0aGUgc2FtZSBhcyB3aGF0XG4gICAgLy8gaGFwcGVucyBpZiB0aGUgY3RvciBvciBhbnkgd3JhcHBlcnMgcHJvY2Vzc2luZyB0aGUgY3RvciB0aHJvd3MuIFRoaXMgbWlnaHRcbiAgICAvLyBlbmQgdXAgZml4aW5nIGl0IGlmIHRoZSByZXNvbHV0aW9uIHdhcyBhIGNvbmN1cnJlbmN5IGJ1Zy5cblxuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlc29sdmVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVzb2x2ZWQuX3N0YXR1cyA9IFJlc29sdmVkO1xuICAgICAgICByZXNvbHZlZC5fcmVzdWx0ID0gbW9kdWxlT2JqZWN0O1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlamVjdGVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVqZWN0ZWQuX3N0YXR1cyA9IFJlamVjdGVkO1xuICAgICAgICByZWplY3RlZC5fcmVzdWx0ID0gZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBVbmluaXRpYWxpemVkKSB7XG4gICAgICAvLyBJbiBjYXNlLCB3ZSdyZSBzdGlsbCB1bmluaXRpYWxpemVkLCB0aGVuIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSB0aGVuYWJsZVxuICAgICAgLy8gdG8gcmVzb2x2ZS4gU2V0IGl0IGFzIHBlbmRpbmcgaW4gdGhlIG1lYW50aW1lLlxuICAgICAgdmFyIHBlbmRpbmcgPSBwYXlsb2FkO1xuICAgICAgcGVuZGluZy5fc3RhdHVzID0gUGVuZGluZztcbiAgICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFJlc29sdmVkKSB7XG4gICAgdmFyIG1vZHVsZU9iamVjdCA9IHBheWxvYWQuX3Jlc3VsdDtcblxuICAgIHtcbiAgICAgIGlmIChtb2R1bGVPYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wJyArICdvcnQoKSBjYWxsLiAnICsgJ0luc3RlYWQgcmVjZWl2ZWQ6ICVzXFxuXFxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxcbiAgJyArIC8vIEJyZWFrIHVwIGltcG9ydHMgdG8gYXZvaWQgYWNjaWRlbnRhbGx5IHBhcnNpbmcgdGhlbSBhcyBkZXBlbmRlbmNpZXMuXG4gICAgICAgICdjb25zdCBNeUNvbXBvbmVudCA9IGxhenkoKCkgPT4gaW1wJyArIFwib3J0KCcuL015Q29tcG9uZW50JykpXFxuXFxuXCIgKyAnRGlkIHlvdSBhY2NpZGVudGFsbHkgcHV0IGN1cmx5IGJyYWNlcyBhcm91bmQgdGhlIGltcG9ydD8nLCBtb2R1bGVPYmplY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICghKCdkZWZhdWx0JyBpbiBtb2R1bGVPYmplY3QpKSB7XG4gICAgICAgIGVycm9yKCdsYXp5OiBFeHBlY3RlZCB0aGUgcmVzdWx0IG9mIGEgZHluYW1pYyBpbXAnICsgJ29ydCgpIGNhbGwuICcgKyAnSW5zdGVhZCByZWNlaXZlZDogJXNcXG5cXG5Zb3VyIGNvZGUgc2hvdWxkIGxvb2sgbGlrZTogXFxuICAnICsgLy8gQnJlYWsgdXAgaW1wb3J0cyB0byBhdm9pZCBhY2NpZGVudGFsbHkgcGFyc2luZyB0aGVtIGFzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlT2JqZWN0LmRlZmF1bHQ7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgcGF5bG9hZC5fcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGxhenkoY3Rvcikge1xuICB2YXIgcGF5bG9hZCA9IHtcbiAgICAvLyBXZSB1c2UgdGhlc2UgZmllbGRzIHRvIHN0b3JlIHRoZSByZXN1bHQuXG4gICAgX3N0YXR1czogVW5pbml0aWFsaXplZCxcbiAgICBfcmVzdWx0OiBjdG9yXG4gIH07XG4gIHZhciBsYXp5VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTEFaWV9UWVBFLFxuICAgIF9wYXlsb2FkOiBwYXlsb2FkLFxuICAgIF9pbml0OiBsYXp5SW5pdGlhbGl6ZXJcbiAgfTtcblxuICB7XG4gICAgLy8gSW4gcHJvZHVjdGlvbiwgdGhpcyB3b3VsZCBqdXN0IHNldCBpdCBvbiB0aGUgb2JqZWN0LlxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG4gICAgdmFyIHByb3BUeXBlczsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsYXp5VHlwZSwge1xuICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRQcm9wcztcbiAgICAgICAgfSxcbiAgICAgICAgLy8gJEZsb3dGaXhNZVttaXNzaW5nLWxvY2FsLWFubm90XVxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChuZXdEZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QubGF6eSguLi4pOiBJdCBpcyBub3Qgc3VwcG9ydGVkIHRvIGFzc2lnbiBgZGVmYXVsdFByb3BzYCB0byAnICsgJ2EgbGF6eSBjb21wb25lbnQgaW1wb3J0LiBFaXRoZXIgc3BlY2lmeSB0aGVtIHdoZXJlIHRoZSBjb21wb25lbnQgJyArICdpcyBkZWZpbmVkLCBvciBjcmVhdGUgYSB3cmFwcGluZyBjb21wb25lbnQgYXJvdW5kIGl0LicpO1xuXG4gICAgICAgICAgZGVmYXVsdFByb3BzID0gbmV3RGVmYXVsdFByb3BzOyAvLyBNYXRjaCBwcm9kdWN0aW9uIGJlaGF2aW9yIG1vcmUgY2xvc2VseTpcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5VHlwZSwgJ2RlZmF1bHRQcm9wcycsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByb3BUeXBlczoge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBwcm9wVHlwZXM7XG4gICAgICAgIH0sXG4gICAgICAgIC8vICRGbG93Rml4TWVbbWlzc2luZy1sb2NhbC1hbm5vdF1cbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3UHJvcFR5cGVzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYHByb3BUeXBlc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIHByb3BUeXBlcyA9IG5ld1Byb3BUeXBlczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobGF6eVR5cGUsICdwcm9wVHlwZXMnLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBsYXp5VHlwZTtcbn1cblxuZnVuY3Rpb24gZm9yd2FyZFJlZihyZW5kZXIpIHtcbiAge1xuICAgIGlmIChyZW5kZXIgIT0gbnVsbCAmJiByZW5kZXIuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkge1xuICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVxdWlyZXMgYSByZW5kZXIgZnVuY3Rpb24gYnV0IHJlY2VpdmVkIGEgYG1lbW9gICcgKyAnY29tcG9uZW50LiBJbnN0ZWFkIG9mIGZvcndhcmRSZWYobWVtbyguLi4pKSwgdXNlICcgKyAnbWVtbyhmb3J3YXJkUmVmKC4uLikpLicpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlbmRlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVxdWlyZXMgYSByZW5kZXIgZnVuY3Rpb24gYnV0IHdhcyBnaXZlbiAlcy4nLCByZW5kZXIgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgcmVuZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlbmRlci5sZW5ndGggIT09IDAgJiYgcmVuZGVyLmxlbmd0aCAhPT0gMikge1xuICAgICAgICBlcnJvcignZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGFjY2VwdCBleGFjdGx5IHR3byBwYXJhbWV0ZXJzOiBwcm9wcyBhbmQgcmVmLiAlcycsIHJlbmRlci5sZW5ndGggPT09IDEgPyAnRGlkIHlvdSBmb3JnZXQgdG8gdXNlIHRoZSByZWYgcGFyYW1ldGVyPycgOiAnQW55IGFkZGl0aW9uYWwgcGFyYW1ldGVyIHdpbGwgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZW5kZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHJlbmRlci5kZWZhdWx0UHJvcHMgIT0gbnVsbCB8fCByZW5kZXIucHJvcFR5cGVzICE9IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBkbyBub3Qgc3VwcG9ydCBwcm9wVHlwZXMgb3IgZGVmYXVsdFByb3BzLiAnICsgJ0RpZCB5b3UgYWNjaWRlbnRhbGx5IHBhc3MgYSBSZWFjdCBjb21wb25lbnQ/Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGVsZW1lbnRUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLFxuICAgIHJlbmRlcjogcmVuZGVyXG4gIH07XG5cbiAge1xuICAgIHZhciBvd25OYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgJ2Rpc3BsYXlOYW1lJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG93bk5hbWU7XG4gICAgICB9LFxuICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBvd25OYW1lID0gbmFtZTsgLy8gVGhlIGlubmVyIGNvbXBvbmVudCBzaG91bGRuJ3QgaW5oZXJpdCB0aGlzIGRpc3BsYXkgbmFtZSBpbiBtb3N0IGNhc2VzLFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBjb21wb25lbnQgbWF5IGJlIHVzZWQgZWxzZXdoZXJlLlxuICAgICAgICAvLyBCdXQgaXQncyBuaWNlIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zIHRvIGluaGVyaXQgdGhlIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgb3VyIGNvbXBvbmVudC1zdGFjayBnZW5lcmF0aW9uIGxvZ2ljIHdpbGwgZGlzcGxheSB0aGVpciBmcmFtZXMuXG4gICAgICAgIC8vIEFuIGFub255bW91cyBmdW5jdGlvbiBnZW5lcmFsbHkgc3VnZ2VzdHMgYSBwYXR0ZXJuIGxpa2U6XG4gICAgICAgIC8vICAgUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4gey4uLn0pO1xuICAgICAgICAvLyBUaGlzIGtpbmQgb2YgaW5uZXIgZnVuY3Rpb24gaXMgbm90IHVzZWQgZWxzZXdoZXJlIHNvIHRoZSBzaWRlIGVmZmVjdCBpcyBva2F5LlxuXG4gICAgICAgIGlmICghcmVuZGVyLm5hbWUgJiYgIXJlbmRlci5kaXNwbGF5TmFtZSkge1xuICAgICAgICAgIHJlbmRlci5kaXNwbGF5TmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50VHlwZTtcbn1cblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBOb3RlOiB0eXBlb2YgbWlnaHQgYmUgb3RoZXIgdGhhbiAnc3ltYm9sJyBvciAnbnVtYmVyJyAoZS5nLiBpZiBpdCdzIGEgcG9seWZpbGwpLlxuXG5cbiAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCBlbmFibGVEZWJ1Z1RyYWNpbmcgIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgZW5hYmxlTGVnYWN5SGlkZGVuICB8fCB0eXBlID09PSBSRUFDVF9PRkZTQ1JFRU5fVFlQRSB8fCBlbmFibGVTY29wZUFQSSAgfHwgZW5hYmxlQ2FjaGVFbGVtZW50ICB8fCBlbmFibGVUcmFuc2l0aW9uVHJhY2luZyApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gVGhpcyBuZWVkcyB0byBpbmNsdWRlIGFsbCBwb3NzaWJsZSBtb2R1bGUgcmVmZXJlbmNlIG9iamVjdFxuICAgIC8vIHR5cGVzIHN1cHBvcnRlZCBieSBhbnkgRmxpZ2h0IGNvbmZpZ3VyYXRpb24gYW55d2hlcmUgc2luY2VcbiAgICAvLyB3ZSBkb24ndCBrbm93IHdoaWNoIEZsaWdodCBidWlsZCB0aGlzIHdpbGwgZW5kIHVwIGJlaW5nIHVzZWRcbiAgICAvLyB3aXRoLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSB8fCB0eXBlLmdldE1vZHVsZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbWVtbyh0eXBlLCBjb21wYXJlKSB7XG4gIHtcbiAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSkge1xuICAgICAgZXJyb3IoJ21lbW86IFRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgY29tcG9uZW50LiBJbnN0ZWFkICcgKyAncmVjZWl2ZWQ6ICVzJywgdHlwZSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiB0eXBlKTtcbiAgICB9XG4gIH1cblxuICB2YXIgZWxlbWVudFR5cGUgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX01FTU9fVFlQRSxcbiAgICB0eXBlOiB0eXBlLFxuICAgIGNvbXBhcmU6IGNvbXBhcmUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjb21wYXJlXG4gIH07XG5cbiAge1xuICAgIHZhciBvd25OYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgJ2Rpc3BsYXlOYW1lJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG93bk5hbWU7XG4gICAgICB9LFxuICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBvd25OYW1lID0gbmFtZTsgLy8gVGhlIGlubmVyIGNvbXBvbmVudCBzaG91bGRuJ3QgaW5oZXJpdCB0aGlzIGRpc3BsYXkgbmFtZSBpbiBtb3N0IGNhc2VzLFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBjb21wb25lbnQgbWF5IGJlIHVzZWQgZWxzZXdoZXJlLlxuICAgICAgICAvLyBCdXQgaXQncyBuaWNlIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zIHRvIGluaGVyaXQgdGhlIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgb3VyIGNvbXBvbmVudC1zdGFjayBnZW5lcmF0aW9uIGxvZ2ljIHdpbGwgZGlzcGxheSB0aGVpciBmcmFtZXMuXG4gICAgICAgIC8vIEFuIGFub255bW91cyBmdW5jdGlvbiBnZW5lcmFsbHkgc3VnZ2VzdHMgYSBwYXR0ZXJuIGxpa2U6XG4gICAgICAgIC8vICAgUmVhY3QubWVtbygocHJvcHMpID0+IHsuLi59KTtcbiAgICAgICAgLy8gVGhpcyBraW5kIG9mIGlubmVyIGZ1bmN0aW9uIGlzIG5vdCB1c2VkIGVsc2V3aGVyZSBzbyB0aGUgc2lkZSBlZmZlY3QgaXMgb2theS5cblxuICAgICAgICBpZiAoIXR5cGUubmFtZSAmJiAhdHlwZS5kaXNwbGF5TmFtZSkge1xuICAgICAgICAgIHR5cGUuZGlzcGxheU5hbWUgPSBuYW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudFR5cGU7XG59XG5cbnZhciBVTlRFUk1JTkFURUQgPSAwO1xudmFyIFRFUk1JTkFURUQgPSAxO1xudmFyIEVSUk9SRUQgPSAyO1xuXG5mdW5jdGlvbiBjcmVhdGVDYWNoZVJvb3QoKSB7XG4gIHJldHVybiBuZXcgV2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDYWNoZU5vZGUoKSB7XG4gIHJldHVybiB7XG4gICAgczogVU5URVJNSU5BVEVELFxuICAgIC8vIHN0YXR1cywgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBjYWNoZWQgY29tcHV0YXRpb24gcmV0dXJuZWQgYSB2YWx1ZSBvciB0aHJldyBhbiBlcnJvclxuICAgIHY6IHVuZGVmaW5lZCxcbiAgICAvLyB2YWx1ZSwgZWl0aGVyIHRoZSBjYWNoZWQgcmVzdWx0IG9yIGFuIGVycm9yLCBkZXBlbmRpbmcgb24gc1xuICAgIG86IG51bGwsXG4gICAgLy8gb2JqZWN0IGNhY2hlLCBhIFdlYWtNYXAgd2hlcmUgbm9uLXByaW1pdGl2ZSBhcmd1bWVudHMgYXJlIHN0b3JlZFxuICAgIHA6IG51bGwgLy8gcHJpbWl0aXZlIGNhY2hlLCBhIHJlZ3VsYXIgTWFwIHdoZXJlIHByaW1pdGl2ZSBhcmd1bWVudHMgYXJlIHN0b3JlZC5cblxuICB9O1xufVxuXG5mdW5jdGlvbiBjYWNoZShmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50Q2FjaGUuY3VycmVudDtcblxuICAgIGlmICghZGlzcGF0Y2hlcikge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZGlzcGF0Y2hlciwgdGhlbiB3ZSB0cmVhdCB0aGlzIGFzIG5vdCBiZWluZyBjYWNoZWQuXG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogV2UgZG9uJ3Qgd2FudCB0byB1c2UgcmVzdCBhcmd1bWVudHMgc2luY2Ugd2UgdHJhbnNwaWxlIHRoZSBjb2RlLlxuICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgdmFyIGZuTWFwID0gZGlzcGF0Y2hlci5nZXRDYWNoZUZvclR5cGUoY3JlYXRlQ2FjaGVSb290KTtcbiAgICB2YXIgZm5Ob2RlID0gZm5NYXAuZ2V0KGZuKTtcbiAgICB2YXIgY2FjaGVOb2RlO1xuXG4gICAgaWYgKGZuTm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgIGZuTWFwLnNldChmbiwgY2FjaGVOb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FjaGVOb2RlID0gZm5Ob2RlO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgdmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgaWYgKHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsKSB7XG4gICAgICAgIC8vIE9iamVjdHMgZ28gaW50byBhIFdlYWtNYXBcbiAgICAgICAgdmFyIG9iamVjdENhY2hlID0gY2FjaGVOb2RlLm87XG5cbiAgICAgICAgaWYgKG9iamVjdENhY2hlID09PSBudWxsKSB7XG4gICAgICAgICAgY2FjaGVOb2RlLm8gPSBvYmplY3RDYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb2JqZWN0Tm9kZSA9IG9iamVjdENhY2hlLmdldChhcmcpO1xuXG4gICAgICAgIGlmIChvYmplY3ROb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgICAgICBvYmplY3RDYWNoZS5zZXQoYXJnLCBjYWNoZU5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhY2hlTm9kZSA9IG9iamVjdE5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFByaW1pdGl2ZXMgZ28gaW50byBhIHJlZ3VsYXIgTWFwXG4gICAgICAgIHZhciBwcmltaXRpdmVDYWNoZSA9IGNhY2hlTm9kZS5wO1xuXG4gICAgICAgIGlmIChwcmltaXRpdmVDYWNoZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGNhY2hlTm9kZS5wID0gcHJpbWl0aXZlQ2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJpbWl0aXZlTm9kZSA9IHByaW1pdGl2ZUNhY2hlLmdldChhcmcpO1xuXG4gICAgICAgIGlmIChwcmltaXRpdmVOb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgICAgICBwcmltaXRpdmVDYWNoZS5zZXQoYXJnLCBjYWNoZU5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhY2hlTm9kZSA9IHByaW1pdGl2ZU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2FjaGVOb2RlLnMgPT09IFRFUk1JTkFURUQpIHtcbiAgICAgIHJldHVybiBjYWNoZU5vZGUudjtcbiAgICB9XG5cbiAgICBpZiAoY2FjaGVOb2RlLnMgPT09IEVSUk9SRUQpIHtcbiAgICAgIHRocm93IGNhY2hlTm9kZS52O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogV2UgZG9uJ3Qgd2FudCB0byB1c2UgcmVzdCBhcmd1bWVudHMgc2luY2Ugd2UgdHJhbnNwaWxlIHRoZSBjb2RlLlxuICAgICAgdmFyIHJlc3VsdCA9IGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICB2YXIgdGVybWluYXRlZE5vZGUgPSBjYWNoZU5vZGU7XG4gICAgICB0ZXJtaW5hdGVkTm9kZS5zID0gVEVSTUlOQVRFRDtcbiAgICAgIHRlcm1pbmF0ZWROb2RlLnYgPSByZXN1bHQ7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBXZSBzdG9yZSB0aGUgZmlyc3QgZXJyb3IgdGhhdCdzIHRocm93biBhbmQgcmV0aHJvdyBpdC5cbiAgICAgIHZhciBlcnJvcmVkTm9kZSA9IGNhY2hlTm9kZTtcbiAgICAgIGVycm9yZWROb2RlLnMgPSBFUlJPUkVEO1xuICAgICAgZXJyb3JlZE5vZGUudiA9IGVycm9yO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcblxuICB7XG4gICAgaWYgKGRpc3BhdGNoZXIgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yJyArICcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4nICsgJzEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbicgKyAnMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbicgKyAnMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcbicgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uJyk7XG4gICAgfVxuICB9IC8vIFdpbGwgcmVzdWx0IGluIGEgbnVsbCBhY2Nlc3MgZXJyb3IgaWYgYWNjZXNzZWQgb3V0c2lkZSByZW5kZXIgcGhhc2UuIFdlXG4gIC8vIGludGVudGlvbmFsbHkgZG9uJ3QgdGhyb3cgb3VyIG93biBlcnJvciBiZWNhdXNlIHRoaXMgaXMgaW4gYSBob3QgcGF0aC5cbiAgLy8gQWxzbyBoZWxwcyBlbnN1cmUgdGhpcyBpcyBpbmxpbmVkLlxuXG5cbiAgcmV0dXJuIGRpc3BhdGNoZXI7XG59XG5mdW5jdGlvbiB1c2VDb250ZXh0KENvbnRleHQpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuXG4gIHtcbiAgICAvLyBUT0RPOiBhZGQgYSBtb3JlIGdlbmVyaWMgd2FybmluZyBmb3IgaW52YWxpZCB2YWx1ZXMuXG4gICAgaWYgKENvbnRleHQuX2NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIHJlYWxDb250ZXh0ID0gQ29udGV4dC5fY29udGV4dDsgLy8gRG9uJ3QgZGVkdXBsaWNhdGUgYmVjYXVzZSB0aGlzIGxlZ2l0aW1hdGVseSBjYXVzZXMgYnVnc1xuICAgICAgLy8gYW5kIG5vYm9keSBzaG91bGQgYmUgdXNpbmcgdGhpcyBpbiBleGlzdGluZyBjb2RlLlxuXG4gICAgICBpZiAocmVhbENvbnRleHQuQ29uc3VtZXIgPT09IENvbnRleHQpIHtcbiAgICAgICAgZXJyb3IoJ0NhbGxpbmcgdXNlQ29udGV4dChDb250ZXh0LkNvbnN1bWVyKSBpcyBub3Qgc3VwcG9ydGVkLCBtYXkgY2F1c2UgYnVncywgYW5kIHdpbGwgYmUgJyArICdyZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuIERpZCB5b3UgbWVhbiB0byBjYWxsIHVzZUNvbnRleHQoQ29udGV4dCkgaW5zdGVhZD8nKTtcbiAgICAgIH0gZWxzZSBpZiAocmVhbENvbnRleHQuUHJvdmlkZXIgPT09IENvbnRleHQpIHtcbiAgICAgICAgZXJyb3IoJ0NhbGxpbmcgdXNlQ29udGV4dChDb250ZXh0LlByb3ZpZGVyKSBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ0RpZCB5b3UgbWVhbiB0byBjYWxsIHVzZUNvbnRleHQoQ29udGV4dCkgaW5zdGVhZD8nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlzcGF0Y2hlci51c2VDb250ZXh0KENvbnRleHQpO1xufVxuZnVuY3Rpb24gdXNlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VNZW1vKGNyZWF0ZSwgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZU1lbW8oY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZURlYnVnVmFsdWUodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gIHtcbiAgICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gICAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pO1xuICB9XG59XG5mdW5jdGlvbiB1c2VJZCgpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VJZCgpO1xufVxuZnVuY3Rpb24gdXNlKHVzYWJsZSkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZSh1c2FibGUpO1xufVxuXG4vLyBIZWxwZXJzIHRvIHBhdGNoIGNvbnNvbGUubG9ncyB0byBhdm9pZCBsb2dnaW5nIGR1cmluZyBzaWRlLWVmZmVjdCBmcmVlXG4vLyByZXBsYXlpbmcgb24gcmVuZGVyIGZ1bmN0aW9uLiBUaGlzIGN1cnJlbnRseSBvbmx5IHBhdGNoZXMgdGhlIG9iamVjdFxuLy8gbGF6aWx5IHdoaWNoIHdvbid0IGNvdmVyIGlmIHRoZSBsb2cgZnVuY3Rpb24gd2FzIGV4dHJhY3RlZCBlYWdlcmx5LlxuLy8gV2UgY291bGQgYWxzbyBlYWdlcmx5IHBhdGNoIHRoZSBtZXRob2QuXG52YXIgZGlzYWJsZWREZXB0aCA9IDA7XG52YXIgcHJldkxvZztcbnZhciBwcmV2SW5mbztcbnZhciBwcmV2V2FybjtcbnZhciBwcmV2RXJyb3I7XG52YXIgcHJldkdyb3VwO1xudmFyIHByZXZHcm91cENvbGxhcHNlZDtcbnZhciBwcmV2R3JvdXBFbmQ7XG5cbmZ1bmN0aW9uIGRpc2FibGVkTG9nKCkge31cblxuZGlzYWJsZWRMb2cuX19yZWFjdERpc2FibGVkTG9nID0gdHJ1ZTtcbmZ1bmN0aW9uIGRpc2FibGVMb2dzKCkge1xuICB7XG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgcHJldkxvZyA9IGNvbnNvbGUubG9nO1xuICAgICAgcHJldkluZm8gPSBjb25zb2xlLmluZm87XG4gICAgICBwcmV2V2FybiA9IGNvbnNvbGUud2FybjtcbiAgICAgIHByZXZFcnJvciA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICBwcmV2R3JvdXAgPSBjb25zb2xlLmdyb3VwO1xuICAgICAgcHJldkdyb3VwQ29sbGFwc2VkID0gY29uc29sZS5ncm91cENvbGxhcHNlZDtcbiAgICAgIHByZXZHcm91cEVuZCA9IGNvbnNvbGUuZ3JvdXBFbmQ7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTkwOTlcblxuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBkaXNhYmxlZExvZyxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV0gRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZMb2dcbiAgICAgICAgfSksXG4gICAgICAgIGluZm86IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cbiAgICAgICAgfSksXG4gICAgICAgIHdhcm46IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZFcnJvclxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXA6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cENvbGxhcHNlZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cEVuZFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGlmIChkaXNhYmxlZERlcHRoIDwgMCkge1xuICAgICAgZXJyb3IoJ2Rpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiAnICsgJ1RoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuLyoqXG4gKiBMZXZlcmFnZXMgbmF0aXZlIGJyb3dzZXIvVk0gc3RhY2sgZnJhbWVzIHRvIGdldCBwcm9wZXIgZGV0YWlscyAoZS5nLlxuICogZmlsZW5hbWUsIGxpbmUgKyBjb2wgbnVtYmVyKSBmb3IgYSBzaW5nbGUgY29tcG9uZW50IGluIGEgY29tcG9uZW50IHN0YWNrLiBXZVxuICogZG8gdGhpcyBieTpcbiAqICAgKDEpIHRocm93aW5nIGFuZCBjYXRjaGluZyBhbiBlcnJvciBpbiB0aGUgZnVuY3Rpb24gLSB0aGlzIHdpbGwgYmUgb3VyXG4gKiAgICAgICBjb250cm9sIGVycm9yLlxuICogICAoMikgY2FsbGluZyB0aGUgY29tcG9uZW50IHdoaWNoIHdpbGwgZXZlbnR1YWxseSB0aHJvdyBhbiBlcnJvciB0aGF0IHdlJ2xsXG4gKiAgICAgICBjYXRjaCAtIHRoaXMgd2lsbCBiZSBvdXIgc2FtcGxlIGVycm9yLlxuICogICAoMykgZGlmZmluZyB0aGUgY29udHJvbCBhbmQgc2FtcGxlIGVycm9yIHN0YWNrcyB0byBmaW5kIHRoZSBzdGFjayBmcmFtZVxuICogICAgICAgd2hpY2ggcmVwcmVzZW50cyBvdXIgY29tcG9uZW50LlxuICovXG5cblxuZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XG4gIC8vIElmIHNvbWV0aGluZyBhc2tlZCBmb3IgYSBzdGFjayBpbnNpZGUgYSBmYWtlIHJlbmRlciwgaXQgc2hvdWxkIGdldCBpZ25vcmVkLlxuICBpZiAoIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICByZWVudHJ5ID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdHlwZV0gSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7IC8vIFNldCB0aGUgZGlzcGF0Y2hlciBpbiBERVYgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNhbGwgaW4gdGhlIHJlbmRlciBmdW5jdGlvblxuICAgIC8vIGZvciB3YXJuaW5ncy5cblxuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuICAvKipcbiAgICogRmluZGluZyBhIGNvbW1vbiBzdGFjayBmcmFtZSBiZXR3ZWVuIHNhbXBsZSBhbmQgY29udHJvbCBlcnJvcnMgY2FuIGJlXG4gICAqIHRyaWNreSBnaXZlbiB0aGUgZGlmZmVyZW50IHR5cGVzIGFuZCBsZXZlbHMgb2Ygc3RhY2sgdHJhY2UgdHJ1bmNhdGlvbiBmcm9tXG4gICAqIGRpZmZlcmVudCBKUyBWTXMuIFNvIGluc3RlYWQgd2UnbGwgYXR0ZW1wdCB0byBjb250cm9sIHdoYXQgdGhhdCBjb21tb25cbiAgICogZnJhbWUgc2hvdWxkIGJlIHRocm91Z2ggdGhpcyBvYmplY3QgbWV0aG9kOlxuICAgKiBIYXZpbmcgYm90aCB0aGUgc2FtcGxlIGFuZCBjb250cm9sIGVycm9ycyBiZSBpbiB0aGUgZnVuY3Rpb24gdW5kZXIgdGhlXG4gICAqIGBEZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lUm9vdGAgcHJvcGVydHksICsgc2V0dGluZyB0aGUgYG5hbWVgIGFuZFxuICAgKiBgZGlzcGxheU5hbWVgIHByb3BlcnRpZXMgb2YgdGhlIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCBhIHN0YWNrXG4gICAqIGZyYW1lIGV4aXN0cyB0aGF0IGhhcyB0aGUgbWV0aG9kIG5hbWUgYERlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWVSb290YCBpblxuICAgKiBpdCBmb3IgYm90aCBjb250cm9sIGFuZCBzYW1wbGUgc3RhY2tzLlxuICAgKi9cblxuXG4gIHZhciBSdW5JblJvb3RGcmFtZSA9IHtcbiAgICBEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3Q6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBjb250cm9sO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHNob3VsZCB0aHJvdy5cbiAgICAgICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgICAgIC8vIFNvbWV0aGluZyBzaG91bGQgYmUgc2V0dGluZyB0aGUgcHJvcHMgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgICAgIHZhciBGYWtlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICB9OyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XG4gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnICYmIFJlZmxlY3QuY29uc3RydWN0KSB7XG4gICAgICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgICAgfSAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ10gZm91bmQgd2hlbiB1cGdyYWRpbmcgRmxvd1xuXG5cbiAgICAgICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICB9IC8vIFRPRE8obHVuYSk6IFRoaXMgd2lsbCBjdXJyZW50bHkgb25seSB0aHJvdyBpZiB0aGUgZnVuY3Rpb24gY29tcG9uZW50XG4gICAgICAgICAgLy8gdHJpZXMgdG8gYWNjZXNzIFJlYWN0L1JlYWN0RE9NL3Byb3BzLiBXZSBzaG91bGQgcHJvYmFibHkgbWFrZSB0aGlzIHRocm93XG4gICAgICAgICAgLy8gaW4gc2ltcGxlIGNvbXBvbmVudHMgdG9vXG5cblxuICAgICAgICAgIHZhciBtYXliZVByb21pc2UgPSBmbigpOyAvLyBJZiB0aGUgZnVuY3Rpb24gY29tcG9uZW50IHJldHVybnMgYSBwcm9taXNlLCBpdCdzIGxpa2VseSBhbiBhc3luY1xuICAgICAgICAgIC8vIGNvbXBvbmVudCwgd2hpY2ggd2UgZG9uJ3QgeWV0IHN1cHBvcnQuIEF0dGFjaCBhIG5vb3AgY2F0Y2ggaGFuZGxlciB0b1xuICAgICAgICAgIC8vIHNpbGVuY2UgdGhlIGVycm9yLlxuICAgICAgICAgIC8vIFRPRE86IEltcGxlbWVudCBjb21wb25lbnQgc3RhY2tzIGZvciBhc3luYyBjbGllbnQgY29tcG9uZW50cz9cblxuICAgICAgICAgIGlmIChtYXliZVByb21pc2UgJiYgdHlwZW9mIG1heWJlUHJvbWlzZS5jYXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbWF5YmVQcm9taXNlLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgICAgICAvLyBUaGlzIGlzIGlubGluZWQgbWFudWFsbHkgYmVjYXVzZSBjbG9zdXJlIGRvZXNuJ3QgZG8gaXQgZm9yIHVzLlxuICAgICAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gW3NhbXBsZS5zdGFjaywgY29udHJvbC5zdGFja107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgICB9XG4gIH07IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuXG4gIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdC5kaXNwbGF5TmFtZSA9ICdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnO1xuICB2YXIgbmFtZVByb3BEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsICduYW1lJyk7IC8vIEJlZm9yZSBFUzYsIHRoZSBgbmFtZWAgcHJvcGVydHkgd2FzIG5vdCBjb25maWd1cmFibGUuXG5cbiAgaWYgKG5hbWVQcm9wRGVzY3JpcHRvciAmJiBuYW1lUHJvcERlc2NyaXB0b3IuY29uZmlndXJhYmxlKSB7XG4gICAgLy8gVjggdXRpbGl6ZXMgYSBmdW5jdGlvbidzIGBuYW1lYCBwcm9wZXJ0eSB3aGVuIGdlbmVyYXRpbmcgYSBzdGFjayB0cmFjZS5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCAvLyBDb25maWd1cmFibGUgcHJvcGVydGllcyBjYW4gYmUgdXBkYXRlZCBldmVuIGlmIGl0cyB3cml0YWJsZSBkZXNjcmlwdG9yXG4gICAgLy8gaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdXG4gICAgJ25hbWUnLCB7XG4gICAgICB2YWx1ZTogJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCdcbiAgICB9KTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmFyIF9SdW5JblJvb3RGcmFtZSREZXRlciA9IFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLFxuICAgICAgICBzYW1wbGVTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclswXSxcbiAgICAgICAgY29udHJvbFN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzFdO1xuXG4gICAgaWYgKHNhbXBsZVN0YWNrICYmIGNvbnRyb2xTdGFjaykge1xuICAgICAgLy8gVGhpcyBleHRyYWN0cyB0aGUgZmlyc3QgZnJhbWUgZnJvbSB0aGUgc2FtcGxlIHRoYXQgaXNuJ3QgYWxzbyBpbiB0aGUgY29udHJvbC5cbiAgICAgIC8vIFNraXBwaW5nIG9uZSBmcmFtZSB0aGF0IHdlIGFzc3VtZSBpcyB0aGUgZnJhbWUgdGhhdCBjYWxscyB0aGUgdHdvLlxuICAgICAgdmFyIHNhbXBsZUxpbmVzID0gc2FtcGxlU3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2xTdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IDA7XG4gICAgICB2YXIgYyA9IDA7XG5cbiAgICAgIHdoaWxlIChzIDwgc2FtcGxlTGluZXMubGVuZ3RoICYmICFzYW1wbGVMaW5lc1tzXS5pbmNsdWRlcygnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JykpIHtcbiAgICAgICAgcysrO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAoYyA8IGNvbnRyb2xMaW5lcy5sZW5ndGggJiYgIWNvbnRyb2xMaW5lc1tjXS5pbmNsdWRlcygnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JykpIHtcbiAgICAgICAgYysrO1xuICAgICAgfSAvLyBXZSBjb3VsZG4ndCBmaW5kIG91ciBpbnRlbnRpb25hbGx5IGluamVjdGVkIGNvbW1vbiByb290IGZyYW1lLCBhdHRlbXB0XG4gICAgICAvLyB0byBmaW5kIGFub3RoZXIgY29tbW9uIHJvb3QgZnJhbWUgYnkgc2VhcmNoIGZyb20gdGhlIGJvdHRvbSBvZiB0aGVcbiAgICAgIC8vIGNvbnRyb2wgc3RhY2suLi5cblxuXG4gICAgICBpZiAocyA9PT0gc2FtcGxlTGluZXMubGVuZ3RoIHx8IGMgPT09IGNvbnRyb2xMaW5lcy5sZW5ndGgpIHtcbiAgICAgICAgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgIGMgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gV2UgZXhwZWN0IGF0IGxlYXN0IG9uZSBzdGFjayBmcmFtZSB0byBiZSBzaGFyZWQuXG4gICAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxuICAgICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgICAgLy8gZWFybGllciB0aGFuIHRoZSBvdGhlci4gV2UgYXNzdW1lIHRoYXQgdGhlIHNhbXBsZSBpcyBsb25nZXIgb3IgdGhlIHNhbWVcbiAgICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxuICAgICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICAgIGMtLTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKDsgcyA+PSAxICYmIGMgPj0gMDsgcy0tLCBjLS0pIHtcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxuICAgICAgICBpZiAoc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxuICAgICAgICAgIC8vIGxpbmUsIHRoYXQncyBhIHByZXR0eSBnb29kIGluZGljYXRvciB0aGF0IG91ciBzYW1wbGUgdGhyZXcgYXQgc2FtZSBsaW5lIGFzXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXG4gICAgICAgICAgaWYgKHMgIT09IDEgfHwgYyAhPT0gMSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICBzLS07XG4gICAgICAgICAgICAgIGMtLTsgLy8gV2UgbWF5IHN0aWxsIGhhdmUgc2ltaWxhciBpbnRlcm1lZGlhdGUgZnJhbWVzIGZyb20gdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cblxuICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTsgLy8gSWYgb3VyIGNvbXBvbmVudCBmcmFtZSBpcyBsYWJlbGVkIFwiPGFub255bW91cz5cIlxuICAgICAgICAgICAgICAgIC8vIGJ1dCB3ZSBoYXZlIGEgdXNlci1wcm92aWRlZCBcImRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICAvLyBzcGxpY2UgaXQgaW4gdG8gbWFrZSB0aGUgc3RhY2sgbW9yZSByZWFkYWJsZS5cblxuXG4gICAgICAgICAgICAgICAgaWYgKGZuLmRpc3BsYXlOYW1lICYmIF9mcmFtZS5pbmNsdWRlcygnPGFub255bW91cz4nKSkge1xuICAgICAgICAgICAgICAgICAgX2ZyYW1lID0gX2ZyYW1lLnJlcGxhY2UoJzxhbm9ueW1vdXM+JywgZm4uZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBfZnJhbWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gLy8gUmV0dXJuIHRoZSBsaW5lIHdlIGZvdW5kLlxuXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gX2ZyYW1lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IHdoaWxlIChzID49IDEgJiYgYyA+PSAwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICByZWVudHJ5ID0gZmFsc2U7XG5cbiAgICB7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XG4gICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICB9XG5cbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2U7XG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxuXG5cbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzeW50aGV0aWNGcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZuLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0KENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcblxuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAge1xuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZS50eXBlLCBzb3VyY2UsIG93bmVyRm4pO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIExhenkgbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGluaXQocGF5bG9hZCksIHNvdXJjZSwgb3duZXJGbik7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxudmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGVsZW1lbnQpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXVzZV0gVGhpcyBpcyBva2F5IGJ1dCBGbG93IGRvZXNuJ3Qga25vdyBpdC5cbiAgICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKGhhc093blByb3BlcnR5KTtcblxuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvciQxID0gdm9pZCAwOyAvLyBQcm9wIHR5cGUgdmFsaWRhdGlvbiBtYXkgdGhyb3cuIEluIGNhc2UgdGhleSBkbywgd2UgZG9uJ3Qgd2FudCB0b1xuICAgICAgICAvLyBmYWlsIHRoZSByZW5kZXIgcGhhc2Ugd2hlcmUgaXQgZGlkbid0IGZhaWwgYmVmb3JlLiBTbyB3ZSBsb2cgaXQuXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBhbiBpbnZhcmlhbnQgdGhhdCBnZXRzIGNhdWdodC4gSXQncyB0aGUgc2FtZVxuICAgICAgICAgIC8vIGJlaGF2aW9yIGFzIHdpdGhvdXQgdGhpcyBzdGF0ZW1lbnQgZXhjZXB0IHdpdGggYSBiZXR0ZXIgbWVzc2FnZS5cbiAgICAgICAgICBpZiAodHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgKyAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJyk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvciQxID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciQxID0gZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSAmJiAhKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMnICsgJyBgJXNgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAlcy4gJyArICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICsgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lLCB0eXBlb2YgZXJyb3IkMSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCdGYWlsZWQgJXMgdHlwZTogJXMnLCBsb2NhdGlvbiwgZXJyb3IkMS5tZXNzYWdlKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBzZXRFeHRyYVN0YWNrRnJhbWUoc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bjtcblxue1xuICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIGlmIChSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtRm9yUHJvcHMoZWxlbWVudFByb3BzKSB7XG4gIGlmIChlbGVtZW50UHJvcHMgIT09IG51bGwgJiYgZWxlbWVudFByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oZWxlbWVudFByb3BzLl9fc291cmNlKTtcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cbi8qKlxuICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxuICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gKiB1cGRhdGVzLlxuICovXG5cblxudmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcbiAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICBpZiAoIWluZm8pIHtcbiAgICB2YXIgcGFyZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShwYXJlbnRUeXBlKTtcblxuICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICBpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArIHBhcmVudE5hbWUgKyBcIj4uXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluZm87XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gIC8vIHByb3BlcnR5LCBpdCBtYXkgYmUgdGhlIGNyZWF0b3Igb2YgdGhlIGNoaWxkIHRoYXQncyByZXNwb25zaWJsZSBmb3JcbiAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cbiAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcbiAgfVxuXG4gIHtcbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnIHx8ICFub2RlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKG5vZGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UpIDsgZWxzZSBpZiAoaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBFbnRyeSBpdGVyYXRvcnMgdXNlZCB0byBwcm92aWRlIGltcGxpY2l0IGtleXMsXG4gICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cbiAgICAgIGlmIChpdGVyYXRvckZuICE9PSBub2RlLmVudHJpZXMpIHtcbiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuICAgICAgICB2YXIgc3RlcDtcblxuICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxuICogcHJvdmlkZWQgYnkgdGhlIHR5cGUuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuXG4gICAgICBlcnJvcignQ29tcG9uZW50ICVzIGRlY2xhcmVkIGBQcm9wVHlwZXNgIGluc3RlYWQgb2YgYHByb3BUeXBlc2AuIERpZCB5b3UgbWlzc3BlbGwgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQ/JywgX25hbWUgfHwgJ1Vua25vd24nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHR5cGUuZ2V0RGVmYXVsdFByb3BzID09PSAnZnVuY3Rpb24nICYmICF0eXBlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBSZWFjdC5jcmVhdGVDbGFzcyAnICsgJ2RlZmluaXRpb25zLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgYGRlZmF1bHRQcm9wc2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBmcmFnbWVudCwgdmFsaWRhdGUgdGhhdCBpdCBjYW4gb25seSBiZSBwcm92aWRlZCB3aXRoIGZyYWdtZW50IHByb3BzXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xuICB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhmcmFnbWVudC5wcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ICE9PSAnY2hpbGRyZW4nICYmIGtleSAhPT0gJ2tleScpIHtcbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgYHJlZmAgc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4nKTtcblxuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXG5cbiAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgfVxuXG4gICAgdmFyIHNvdXJjZUluZm8gPSBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKHByb3BzKTtcblxuICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICBpbmZvICs9IHNvdXJjZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgfVxuXG4gICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdVbmtub3duJykgKyBcIiAvPlwiO1xuICAgICAgaW5mbyA9ICcgRGlkIHlvdSBhY2NpZGVudGFsbHkgZXhwb3J0IGEgSlNYIGxpdGVyYWwgaW5zdGVhZCBvZiBhIGNvbXBvbmVudD8nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XG4gICAgfVxuXG4gICAge1xuICAgICAgZXJyb3IoJ1JlYWN0LmNyZWF0ZUVsZW1lbnQ6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50JDEuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgLy8gVGhlIHJlc3VsdCBjYW4gYmUgbnVsbGlzaCBpZiBhIG1vY2sgb3IgYSBjdXN0b20gZnVuY3Rpb24gaXMgdXNlZC5cbiAgLy8gVE9ETzogRHJvcCB0aGlzIHdoZW4gdGhlc2UgYXJlIG5vIGxvbmdlciBhbGxvd2VkIGFzIHRoZSB0eXBlIGFyZ3VtZW50LlxuXG4gIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfSAvLyBTa2lwIGtleSB3YXJuaW5nIGlmIHRoZSB0eXBlIGlzbid0IHZhbGlkIHNpbmNlIG91ciBrZXkgdmFsaWRhdGlvbiBsb2dpY1xuICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gIC8vIFdlIGRvbid0IHdhbnQgZXhjZXB0aW9uIGJlaGF2aW9yIHRvIGRpZmZlciBiZXR3ZWVuIGRldiBhbmQgcHJvZC5cbiAgLy8gKFJlbmRlcmluZyB3aWxsIHRocm93IHdpdGggYSBoZWxwZnVsIG1lc3NhZ2UgYW5kIGFzIHNvb24gYXMgdGhlIHR5cGUgaXNcbiAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuXG5cbiAgaWYgKHZhbGlkVHlwZSkge1xuICAgIGZvciAodmFyIGkgPSAyOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgdmFsaWRhdGVGcmFnbWVudFByb3BzKGVsZW1lbnQpO1xuICB9IGVsc2Uge1xuICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5mdW5jdGlvbiBjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbihlbGVtZW50LCBwcm9wcywgY2hpbGRyZW4pIHtcbiAgdmFyIG5ld0VsZW1lbnQgPSBjbG9uZUVsZW1lbnQkMS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gIGZvciAodmFyIGkgPSAyOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFsaWRhdGVDaGlsZEtleXMoYXJndW1lbnRzW2ldLCBuZXdFbGVtZW50LnR5cGUpO1xuICB9XG5cbiAgdmFsaWRhdGVQcm9wVHlwZXMobmV3RWxlbWVudCk7XG4gIHJldHVybiBuZXdFbGVtZW50O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJDb250ZXh0KGdsb2JhbE5hbWUsIGRlZmF1bHRWYWx1ZSkge1xuICB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBiYXRjaCdzIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBob3cgbG9uZyBhbiB1cGRhdGVcbiAqIHNob3VsZCBzdXNwZW5kIGZvciBpZiBpdCBuZWVkcyB0by5cbiAqL1xudmFyIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnID0ge1xuICB0cmFuc2l0aW9uOiBudWxsXG59O1xuXG5mdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oc2NvcGUsIG9wdGlvbnMpIHtcbiAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWcudHJhbnNpdGlvbjtcbiAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcudHJhbnNpdGlvbiA9IHt9O1xuICB2YXIgY3VycmVudFRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uO1xuXG4gIHtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uLl91cGRhdGVkRmliZXJzID0gbmV3IFNldCgpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBzY29wZSgpO1xuICB9IGZpbmFsbHkge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcblxuICAgIHtcbiAgICAgIGlmIChwcmV2VHJhbnNpdGlvbiA9PT0gbnVsbCAmJiBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycykge1xuICAgICAgICB2YXIgdXBkYXRlZEZpYmVyc0NvdW50ID0gY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMuc2l6ZTtcblxuICAgICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5jbGVhcigpO1xuXG4gICAgICAgIGlmICh1cGRhdGVkRmliZXJzQ291bnQgPiAxMCkge1xuICAgICAgICAgIHdhcm4oJ0RldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gJyArICdJZiB0aGlzIGlzIGR1ZSB0byBhIHN1YnNjcmlwdGlvbiBwbGVhc2UgcmUtd3JpdGUgaXQgdG8gdXNlIFJlYWN0IHByb3ZpZGVkIGhvb2tzLiAnICsgJ090aGVyd2lzZSBjb25jdXJyZW50IG1vZGUgZ3VhcmFudGVlcyBhcmUgb2ZmIHRoZSB0YWJsZS4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgY3JlYXRlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY2xvbmVFbGVtZW50ID0gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xuZXhwb3J0cy5Qcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gUmVhY3RTaGFyZWRJbnRlcm5hbHM7XG5leHBvcnRzLl9fU0VDUkVUX1NFUlZFUl9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCA9IFJlYWN0U2VydmVyU2hhcmVkSW50ZXJuYWxzO1xuZXhwb3J0cy5jYWNoZSA9IGNhY2hlO1xuZXhwb3J0cy5jbG9uZUVsZW1lbnQgPSBjbG9uZUVsZW1lbnQ7XG5leHBvcnRzLmNyZWF0ZUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50O1xuZXhwb3J0cy5jcmVhdGVSZWYgPSBjcmVhdGVSZWY7XG5leHBvcnRzLmNyZWF0ZVNlcnZlckNvbnRleHQgPSBjcmVhdGVTZXJ2ZXJDb250ZXh0O1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSBpc1ZhbGlkRWxlbWVudDtcbmV4cG9ydHMubGF6eSA9IGxhenk7XG5leHBvcnRzLm1lbW8gPSBtZW1vO1xuZXhwb3J0cy5zdGFydFRyYW5zaXRpb24gPSBzdGFydFRyYW5zaXRpb247XG5leHBvcnRzLnVzZSA9IHVzZTtcbmV4cG9ydHMudXNlQ2FsbGJhY2sgPSB1c2VDYWxsYmFjaztcbmV4cG9ydHMudXNlQ29udGV4dCA9IHVzZUNvbnRleHQ7XG5leHBvcnRzLnVzZURlYnVnVmFsdWUgPSB1c2VEZWJ1Z1ZhbHVlO1xuZXhwb3J0cy51c2VJZCA9IHVzZUlkO1xuZXhwb3J0cy51c2VNZW1vID0gdXNlTWVtbztcbmV4cG9ydHMudmVyc2lvbiA9IFJlYWN0VmVyc2lvbjtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzIiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxIiwiY3VycmVudCIsIlJlYWN0Q3VycmVudE93bmVyIiwiUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxIiwiY3VycmVudEV4dHJhU3RhY2tGcmFtZSIsInNldEV4dHJhU3RhY2tGcmFtZSIsInN0YWNrIiwiZ2V0Q3VycmVudFN0YWNrIiwiZ2V0U3RhY2tBZGRlbmR1bSIsImltcGwiLCJlbmFibGVTY29wZUFQSSIsImVuYWJsZUNhY2hlRWxlbWVudCIsImVuYWJsZVRyYW5zaXRpb25UcmFjaW5nIiwiZW5hYmxlTGVnYWN5SGlkZGVuIiwiZW5hYmxlRGVidWdUcmFjaW5nIiwiUmVhY3RTaGFyZWRJbnRlcm5hbHMiLCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyIiwiUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSIsIndhcm4iLCJmb3JtYXQiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsInByaW50V2FybmluZyIsImVycm9yIiwiX2xlbjIiLCJfa2V5MiIsImxldmVsIiwiY29uY2F0IiwiYXJnc1dpdGhGb3JtYXQiLCJtYXAiLCJpdGVtIiwiU3RyaW5nIiwidW5zaGlmdCIsIkZ1bmN0aW9uIiwicHJvdG90eXBlIiwiYXBwbHkiLCJjYWxsIiwiY29uc29sZSIsImFzc2lnbiIsIk9iamVjdCIsIlJlYWN0Q3VycmVudENhY2hlIiwiY3JlYXRlRmV0Y2hDYWNoZSIsIk1hcCIsInNpbXBsZUNhY2hlS2V5IiwiZ2VuZXJhdGVDYWNoZUtleSIsInJlcXVlc3QiLCJKU09OIiwic3RyaW5naWZ5IiwibWV0aG9kIiwiZnJvbSIsImhlYWRlcnMiLCJlbnRyaWVzIiwibW9kZSIsInJlZGlyZWN0IiwiY3JlZGVudGlhbHMiLCJyZWZlcnJlciIsInJlZmVycmVyUG9saWN5IiwiaW50ZWdyaXR5IiwiZmV0Y2giLCJvcmlnaW5hbEZldGNoIiwiY2FjaGVkRmV0Y2giLCJyZXNvdXJjZSIsIm9wdGlvbnMiLCJkaXNwYXRjaGVyIiwic2lnbmFsIiwiZ2V0Q2FjaGVTaWduYWwiLCJ1cmwiLCJjYWNoZUtleSIsIlVSTCIsIlJlcXVlc3QiLCJrZWVwYWxpdmUiLCJjYWNoZSIsImdldENhY2hlRm9yVHlwZSIsImNhY2hlRW50cmllcyIsImdldCIsIm1hdGNoIiwidW5kZWZpbmVkIiwic2V0IiwiaSIsImwiLCJrZXkiLCJ2YWx1ZSIsInRoZW4iLCJyZXNwb25zZSIsImNsb25lIiwicHVzaCIsImVycm9yMSIsImdsb2JhbFRoaXMiLCJlcnJvcjIiLCJSZWFjdFNlcnZlclNoYXJlZEludGVybmFscyIsIlJlYWN0VmVyc2lvbiIsIlJFQUNUX0VMRU1FTlRfVFlQRSIsIlN5bWJvbCIsImZvciIsIlJFQUNUX1BPUlRBTF9UWVBFIiwiUkVBQ1RfRlJBR01FTlRfVFlQRSIsIlJFQUNUX1NUUklDVF9NT0RFX1RZUEUiLCJSRUFDVF9QUk9GSUxFUl9UWVBFIiwiUkVBQ1RfUFJPVklERVJfVFlQRSIsIlJFQUNUX0NPTlRFWFRfVFlQRSIsIlJFQUNUX0ZPUldBUkRfUkVGX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9UWVBFIiwiUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIiwiUkVBQ1RfTUVNT19UWVBFIiwiUkVBQ1RfTEFaWV9UWVBFIiwiUkVBQ1RfT0ZGU0NSRUVOX1RZUEUiLCJSRUFDVF9DQUNIRV9UWVBFIiwiTUFZQkVfSVRFUkFUT1JfU1lNQk9MIiwiaXRlcmF0b3IiLCJGQVVYX0lURVJBVE9SX1NZTUJPTCIsImdldEl0ZXJhdG9yRm4iLCJtYXliZUl0ZXJhYmxlIiwibWF5YmVJdGVyYXRvciIsImRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudCIsIndhcm5Ob29wIiwicHVibGljSW5zdGFuY2UiLCJjYWxsZXJOYW1lIiwiX2NvbnN0cnVjdG9yIiwiY29uc3RydWN0b3IiLCJjb21wb25lbnROYW1lIiwiZGlzcGxheU5hbWUiLCJuYW1lIiwid2FybmluZ0tleSIsIlJlYWN0Tm9vcFVwZGF0ZVF1ZXVlIiwiaXNNb3VudGVkIiwiZW5xdWV1ZUZvcmNlVXBkYXRlIiwiY2FsbGJhY2siLCJlbnF1ZXVlUmVwbGFjZVN0YXRlIiwiY29tcGxldGVTdGF0ZSIsImVucXVldWVTZXRTdGF0ZSIsInBhcnRpYWxTdGF0ZSIsImVtcHR5T2JqZWN0IiwiZnJlZXplIiwiQ29tcG9uZW50IiwicHJvcHMiLCJjb250ZXh0IiwidXBkYXRlciIsInJlZnMiLCJpc1JlYWN0Q29tcG9uZW50Iiwic2V0U3RhdGUiLCJFcnJvciIsImZvcmNlVXBkYXRlIiwiZGVwcmVjYXRlZEFQSXMiLCJyZXBsYWNlU3RhdGUiLCJkZWZpbmVEZXByZWNhdGlvbldhcm5pbmciLCJtZXRob2ROYW1lIiwiaW5mbyIsImRlZmluZVByb3BlcnR5IiwiZm5OYW1lIiwiaGFzT3duUHJvcGVydHkiLCJDb21wb25lbnREdW1teSIsIlB1cmVDb21wb25lbnQiLCJwdXJlQ29tcG9uZW50UHJvdG90eXBlIiwiaXNQdXJlUmVhY3RDb21wb25lbnQiLCJjcmVhdGVSZWYiLCJyZWZPYmplY3QiLCJzZWFsIiwiaXNBcnJheUltcGwiLCJpc0FycmF5IiwiYSIsInR5cGVOYW1lIiwiaGFzVG9TdHJpbmdUYWciLCJ0b1N0cmluZ1RhZyIsInR5cGUiLCJ3aWxsQ29lcmNpb25UaHJvdyIsInRlc3RTdHJpbmdDb2VyY2lvbiIsImUiLCJjaGVja0tleVN0cmluZ0NvZXJjaW9uIiwiZ2V0V3JhcHBlZE5hbWUiLCJvdXRlclR5cGUiLCJpbm5lclR5cGUiLCJ3cmFwcGVyTmFtZSIsImZ1bmN0aW9uTmFtZSIsImdldENvbnRleHROYW1lIiwiUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQyIiwiZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlIiwiJCR0eXBlb2YiLCJ0YWciLCJwcm92aWRlciIsIl9jb250ZXh0IiwicmVuZGVyIiwib3V0ZXJOYW1lIiwibGF6eUNvbXBvbmVudCIsInBheWxvYWQiLCJfcGF5bG9hZCIsImluaXQiLCJfaW5pdCIsIngiLCJSRVNFUlZFRF9QUk9QUyIsInJlZiIsIl9fc2VsZiIsIl9fc291cmNlIiwic3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24iLCJzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93biIsImRpZFdhcm5BYm91dFN0cmluZ1JlZnMiLCJoYXNWYWxpZFJlZiIsImNvbmZpZyIsImdldHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImlzUmVhY3RXYXJuaW5nIiwiaGFzVmFsaWRLZXkiLCJkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlciIsIndhcm5BYm91dEFjY2Vzc2luZ0tleSIsImNvbmZpZ3VyYWJsZSIsImRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyIiwid2FybkFib3V0QWNjZXNzaW5nUmVmIiwid2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkIiwic3RhdGVOb2RlIiwiUmVhY3RFbGVtZW50Iiwic2VsZiIsInNvdXJjZSIsIm93bmVyIiwiZWxlbWVudCIsIl9vd25lciIsIl9zdG9yZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImNyZWF0ZUVsZW1lbnQkMSIsImNoaWxkcmVuIiwicHJvcE5hbWUiLCJjaGlsZHJlbkxlbmd0aCIsImNoaWxkQXJyYXkiLCJkZWZhdWx0UHJvcHMiLCJjbG9uZUFuZFJlcGxhY2VLZXkiLCJvbGRFbGVtZW50IiwibmV3S2V5IiwibmV3RWxlbWVudCIsIl9zZWxmIiwiX3NvdXJjZSIsImNsb25lRWxlbWVudCQxIiwiaXNWYWxpZEVsZW1lbnQiLCJvYmplY3QiLCJTRVBBUkFUT1IiLCJTVUJTRVBBUkFUT1IiLCJlc2NhcGUiLCJlc2NhcGVSZWdleCIsImVzY2FwZXJMb29rdXAiLCJlc2NhcGVkU3RyaW5nIiwicmVwbGFjZSIsImRpZFdhcm5BYm91dE1hcHMiLCJ1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCIsImVzY2FwZVVzZXJQcm92aWRlZEtleSIsInRleHQiLCJnZXRFbGVtZW50S2V5IiwiaW5kZXgiLCJ0b1N0cmluZyIsIm1hcEludG9BcnJheSIsImFycmF5IiwiZXNjYXBlZFByZWZpeCIsIm5hbWVTb0ZhciIsImludm9rZUNhbGxiYWNrIiwiX2NoaWxkIiwibWFwcGVkQ2hpbGQiLCJjaGlsZEtleSIsImVzY2FwZWRDaGlsZEtleSIsImMiLCJjaGlsZCIsIm5leHROYW1lIiwic3VidHJlZUNvdW50IiwibmV4dE5hbWVQcmVmaXgiLCJpdGVyYXRvckZuIiwiaXRlcmFibGVDaGlsZHJlbiIsInN0ZXAiLCJpaSIsIm5leHQiLCJkb25lIiwiY2hpbGRyZW5TdHJpbmciLCJrZXlzIiwiam9pbiIsIm1hcENoaWxkcmVuIiwiZnVuYyIsInJlc3VsdCIsImNvdW50IiwiY291bnRDaGlsZHJlbiIsIm4iLCJmb3JFYWNoQ2hpbGRyZW4iLCJmb3JFYWNoRnVuYyIsImZvckVhY2hDb250ZXh0IiwidG9BcnJheSIsIm9ubHlDaGlsZCIsIlVuaW5pdGlhbGl6ZWQiLCJQZW5kaW5nIiwiUmVzb2x2ZWQiLCJSZWplY3RlZCIsImxhenlJbml0aWFsaXplciIsIl9zdGF0dXMiLCJjdG9yIiwiX3Jlc3VsdCIsInRoZW5hYmxlIiwibW9kdWxlT2JqZWN0IiwicmVzb2x2ZWQiLCJyZWplY3RlZCIsInBlbmRpbmciLCJkZWZhdWx0IiwibGF6eSIsImxhenlUeXBlIiwicHJvcFR5cGVzIiwiZGVmaW5lUHJvcGVydGllcyIsIm5ld0RlZmF1bHRQcm9wcyIsIm5ld1Byb3BUeXBlcyIsImZvcndhcmRSZWYiLCJlbGVtZW50VHlwZSIsIm93bk5hbWUiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDEiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJnZXRNb2R1bGVJZCIsIm1lbW8iLCJjb21wYXJlIiwiVU5URVJNSU5BVEVEIiwiVEVSTUlOQVRFRCIsIkVSUk9SRUQiLCJjcmVhdGVDYWNoZVJvb3QiLCJXZWFrTWFwIiwiY3JlYXRlQ2FjaGVOb2RlIiwicyIsInYiLCJvIiwicCIsImZuIiwiZm5NYXAiLCJmbk5vZGUiLCJjYWNoZU5vZGUiLCJhcmciLCJvYmplY3RDYWNoZSIsIm9iamVjdE5vZGUiLCJwcmltaXRpdmVDYWNoZSIsInByaW1pdGl2ZU5vZGUiLCJ0ZXJtaW5hdGVkTm9kZSIsImVycm9yZWROb2RlIiwicmVzb2x2ZURpc3BhdGNoZXIiLCJ1c2VDb250ZXh0IiwiQ29udGV4dCIsInJlYWxDb250ZXh0IiwiQ29uc3VtZXIiLCJQcm92aWRlciIsInVzZUNhbGxiYWNrIiwiZGVwcyIsInVzZU1lbW8iLCJjcmVhdGUiLCJ1c2VEZWJ1Z1ZhbHVlIiwiZm9ybWF0dGVyRm4iLCJ1c2VJZCIsInVzZSIsInVzYWJsZSIsImRpc2FibGVkRGVwdGgiLCJwcmV2TG9nIiwicHJldkluZm8iLCJwcmV2V2FybiIsInByZXZFcnJvciIsInByZXZHcm91cCIsInByZXZHcm91cENvbGxhcHNlZCIsInByZXZHcm91cEVuZCIsImRpc2FibGVkTG9nIiwiX19yZWFjdERpc2FibGVkTG9nIiwiZGlzYWJsZUxvZ3MiLCJsb2ciLCJncm91cCIsImdyb3VwQ29sbGFwc2VkIiwiZ3JvdXBFbmQiLCJyZWVuYWJsZUxvZ3MiLCJwcmVmaXgiLCJkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSIsIm93bmVyRm4iLCJ0cmltIiwicmVlbnRyeSIsImNvbXBvbmVudEZyYW1lQ2FjaGUiLCJQb3NzaWJseVdlYWtNYXAiLCJkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lIiwiY29uc3RydWN0IiwiZnJhbWUiLCJwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJwcmV2aW91c0Rpc3BhdGNoZXIiLCJSdW5JblJvb3RGcmFtZSIsIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCIsImNvbnRyb2wiLCJGYWtlIiwiUmVmbGVjdCIsIm1heWJlUHJvbWlzZSIsImNhdGNoIiwic2FtcGxlIiwibmFtZVByb3BEZXNjcmlwdG9yIiwiX1J1bkluUm9vdEZyYW1lJERldGVyIiwic2FtcGxlU3RhY2siLCJjb250cm9sU3RhY2siLCJzYW1wbGVMaW5lcyIsInNwbGl0IiwiY29udHJvbExpbmVzIiwiaW5jbHVkZXMiLCJfZnJhbWUiLCJzeW50aGV0aWNGcmFtZSIsImRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSIsInNob3VsZENvbnN0cnVjdCIsImRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFViIsImxvZ2dlZFR5cGVGYWlsdXJlcyIsInNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEiLCJjaGVja1Byb3BUeXBlcyIsInR5cGVTcGVjcyIsInZhbHVlcyIsImxvY2F0aW9uIiwiaGFzIiwiYmluZCIsInR5cGVTcGVjTmFtZSIsImVycm9yJDEiLCJlcnIiLCJleCIsIm1lc3NhZ2UiLCJSRUFDVF9DTElFTlRfUkVGRVJFTkNFIiwic2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQiLCJwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biIsImdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSIsImdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtIiwiZmlsZU5hbWUiLCJsaW5lTnVtYmVyIiwiZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW1Gb3JQcm9wcyIsImVsZW1lbnRQcm9wcyIsIm93bmVySGFzS2V5VXNlV2FybmluZyIsImdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8iLCJwYXJlbnRUeXBlIiwicGFyZW50TmFtZSIsInZhbGlkYXRlRXhwbGljaXRLZXkiLCJ2YWxpZGF0ZWQiLCJjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvIiwiY2hpbGRPd25lciIsInZhbGlkYXRlQ2hpbGRLZXlzIiwibm9kZSIsInZhbGlkYXRlUHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiX25hbWUiLCJnZXREZWZhdWx0UHJvcHMiLCJpc1JlYWN0Q2xhc3NBcHByb3ZlZCIsInZhbGlkYXRlRnJhZ21lbnRQcm9wcyIsImZyYWdtZW50IiwiY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIiwidmFsaWRUeXBlIiwic291cmNlSW5mbyIsInR5cGVTdHJpbmciLCJjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiIsImNyZWF0ZVNlcnZlckNvbnRleHQiLCJnbG9iYWxOYW1lIiwiZGVmYXVsdFZhbHVlIiwiUmVhY3RDdXJyZW50QmF0Y2hDb25maWciLCJ0cmFuc2l0aW9uIiwic3RhcnRUcmFuc2l0aW9uIiwic2NvcGUiLCJwcmV2VHJhbnNpdGlvbiIsImN1cnJlbnRUcmFuc2l0aW9uIiwiX3VwZGF0ZWRGaWJlcnMiLCJTZXQiLCJ1cGRhdGVkRmliZXJzQ291bnQiLCJzaXplIiwiY2xlYXIiLCJjcmVhdGVFbGVtZW50IiwiY2xvbmVFbGVtZW50IiwiQ2hpbGRyZW4iLCJmb3JFYWNoIiwib25seSIsImV4cG9ydHMiLCJGcmFnbWVudCIsIlByb2ZpbGVyIiwiU3RyaWN0TW9kZSIsIlN1c3BlbnNlIiwiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJfX1NFQ1JFVF9TRVJWRVJfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJ2ZXJzaW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react/cjs/react.shared-subset.development.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react/index.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/index.js ***!
- \************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"(rsc)/../../node_modules/next/dist/compiled/react/cjs/react.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUVBLElBQUlBLEtBQXlCLEVBQWMsRUFFMUMsTUFBTTtJQUNMQyxvSkFBeUI7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanM/YTYwMCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcXVpcmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react/index.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***!
- \**********************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(rsc)/../../node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxJQUFJQSxLQUF5QixFQUFjLEVBRTFDLE1BQU07SUFDTEMsb0xBQXlCO0FBQzNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2pzeC1kZXYtcnVudGltZS5qcz9iYmIwIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOlsicHJvY2VzcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXF1aXJlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/compiled/react/react.shared-subset.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/react/react.shared-subset.js ***!
- \**************************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.shared-subset.development.js */ \"(rsc)/../../node_modules/next/dist/compiled/react/cjs/react.shared-subset.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9yZWFjdC5zaGFyZWQtc3Vic2V0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBRUEsSUFBSUEsS0FBeUIsRUFBYyxFQUUxQyxNQUFNO0lBQ0xDLGdMQUF5QjtBQUMzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9yZWFjdC5zaGFyZWQtc3Vic2V0LmpzP2IwNzUiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LnNoYXJlZC1zdWJzZXQucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Quc2hhcmVkLXN1YnNldC5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbInByb2Nlc3MiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxdWlyZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/compiled/react/react.shared-subset.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/api/headers.js":
-/*!*******************************************************!*\
- !*** ../../node_modules/next/dist/esm/api/headers.js ***!
- \*******************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cookies: () => (/* reexport safe */ _client_components_headers__WEBPACK_IMPORTED_MODULE_0__.cookies),\n/* harmony export */ draftMode: () => (/* reexport safe */ _client_components_headers__WEBPACK_IMPORTED_MODULE_0__.draftMode),\n/* harmony export */ headers: () => (/* reexport safe */ _client_components_headers__WEBPACK_IMPORTED_MODULE_0__.headers)\n/* harmony export */ });\n/* harmony import */ var _client_components_headers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/headers */ \"(rsc)/../../node_modules/next/dist/esm/client/components/headers.js\");\n //# sourceMappingURL=headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYXBpL2hlYWRlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE2QyxDQUU3QyxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2FwaS9oZWFkZXJzLmpzPzYzMDMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4uL2NsaWVudC9jb21wb25lbnRzL2hlYWRlcnNcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVhZGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/api/headers.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/api/image.js":
-/*!*****************************************************!*\
- !*** ../../node_modules/next/dist/esm/api/image.js ***!
- \*****************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ getImageProps: () => (/* reexport safe */ _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__.getImageProps)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/image-external */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/image-external.js\");\n\n //# sourceMappingURL=image.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYXBpL2ltYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1RDtBQUNWLENBRTdDLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYXBpL2ltYWdlLmpzP2FkMDEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL2ltYWdlLWV4dGVybmFsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi4vc2hhcmVkL2xpYi9pbWFnZS1leHRlcm5hbFwiO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS5qcy5tYXAiXSwibmFtZXMiOlsiZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/api/image.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/api/navigation.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/next/dist/esm/api/navigation.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReadonlyURLSearchParams: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.ReadonlyURLSearchParams),\n/* harmony export */ RedirectType: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.RedirectType),\n/* harmony export */ ServerInsertedHTMLContext: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.ServerInsertedHTMLContext),\n/* harmony export */ notFound: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.notFound),\n/* harmony export */ permanentRedirect: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.permanentRedirect),\n/* harmony export */ redirect: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.redirect),\n/* harmony export */ useParams: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.useParams),\n/* harmony export */ usePathname: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.usePathname),\n/* harmony export */ useRouter: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.useRouter),\n/* harmony export */ useSearchParams: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.useSearchParams),\n/* harmony export */ useSelectedLayoutSegment: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.useSelectedLayoutSegment),\n/* harmony export */ useSelectedLayoutSegments: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.useSelectedLayoutSegments),\n/* harmony export */ useServerInsertedHTML: () => (/* reexport safe */ _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.useServerInsertedHTML)\n/* harmony export */ });\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(rsc)/../../node_modules/next/dist/esm/client/components/navigation.js\");\n //# sourceMappingURL=navigation.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYXBpL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0QsQ0FFaEQsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9hcGkvbmF2aWdhdGlvbi5qcz81YWQ4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuLi9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uXCI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5hdmlnYXRpb24uanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/api/navigation.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/build/output/log.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/esm/build/output/log.js ***!
- \************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bootstrap: () => (/* binding */ bootstrap),\n/* harmony export */ error: () => (/* binding */ error),\n/* harmony export */ event: () => (/* binding */ event),\n/* harmony export */ info: () => (/* binding */ info),\n/* harmony export */ prefixes: () => (/* binding */ prefixes),\n/* harmony export */ ready: () => (/* binding */ ready),\n/* harmony export */ trace: () => (/* binding */ trace),\n/* harmony export */ wait: () => (/* binding */ wait),\n/* harmony export */ warn: () => (/* binding */ warn),\n/* harmony export */ warnOnce: () => (/* binding */ warnOnce)\n/* harmony export */ });\n/* harmony import */ var _lib_picocolors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/picocolors */ \"(rsc)/../../node_modules/next/dist/esm/lib/picocolors.js\");\n\nconst prefixes = {\n wait: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.white)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"○\")),\n error: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.red)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"⨯\")),\n warn: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.yellow)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"⚠\")),\n ready: \"▲\",\n info: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.white)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\" \")),\n event: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.green)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"✓\")),\n trace: (0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.magenta)((0,_lib_picocolors__WEBPACK_IMPORTED_MODULE_0__.bold)(\"\\xbb\"))\n};\nconst LOGGING_METHOD = {\n log: \"log\",\n warn: \"warn\",\n error: \"error\"\n};\nfunction prefixedLog(prefixType, ...message) {\n if ((message[0] === \"\" || message[0] === undefined) && message.length === 1) {\n message.shift();\n }\n const consoleMethod = prefixType in LOGGING_METHOD ? LOGGING_METHOD[prefixType] : \"log\";\n const prefix = prefixes[prefixType];\n // If there's no message, don't print the prefix but a new line\n if (message.length === 0) {\n console[consoleMethod](\"\");\n } else {\n console[consoleMethod](\" \" + prefix, ...message);\n }\n}\nfunction bootstrap(...message) {\n console.log(\" \", ...message);\n}\nfunction wait(...message) {\n prefixedLog(\"wait\", ...message);\n}\nfunction error(...message) {\n prefixedLog(\"error\", ...message);\n}\nfunction warn(...message) {\n prefixedLog(\"warn\", ...message);\n}\nfunction ready(...message) {\n prefixedLog(\"ready\", ...message);\n}\nfunction info(...message) {\n prefixedLog(\"info\", ...message);\n}\nfunction event(...message) {\n prefixedLog(\"event\", ...message);\n}\nfunction trace(...message) {\n prefixedLog(\"trace\", ...message);\n}\nconst warnOnceMessages = new Set();\nfunction warnOnce(...message) {\n if (!warnOnceMessages.has(message[0])) {\n warnOnceMessages.add(message.join(\" \"));\n warn(...message);\n }\n} //# sourceMappingURL=log.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYnVpbGQvb3V0cHV0L2xvZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFnRjtBQUN6RSxNQUFNTSxXQUFXO0lBQ3BCQyxNQUFNRixzREFBS0EsQ0FBQ0wscURBQUlBLENBQUM7SUFDakJRLE9BQU9MLG9EQUFHQSxDQUFDSCxxREFBSUEsQ0FBQztJQUNoQlMsTUFBTUwsdURBQU1BLENBQUNKLHFEQUFJQSxDQUFDO0lBQ2xCVSxPQUFPO0lBQ1BDLE1BQU1OLHNEQUFLQSxDQUFDTCxxREFBSUEsQ0FBQztJQUNqQlksT0FBT1gsc0RBQUtBLENBQUNELHFEQUFJQSxDQUFDO0lBQ2xCYSxPQUFPWCx3REFBT0EsQ0FBQ0YscURBQUlBLENBQUM7QUFDeEIsRUFBRTtBQUNGLE1BQU1jLGlCQUFpQjtJQUNuQkMsS0FBSztJQUNMTixNQUFNO0lBQ05ELE9BQU87QUFDWDtBQUNBLFNBQVNRLFlBQVlDLFVBQVUsRUFBRSxHQUFHQyxPQUFPO0lBQ3ZDLElBQUksQ0FBQ0EsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNQSxPQUFPLENBQUMsRUFBRSxLQUFLQyxTQUFRLEtBQU1ELFFBQVFFLE1BQU0sS0FBSyxHQUFHO1FBQ3pFRixRQUFRRyxLQUFLO0lBQ2pCO0lBQ0EsTUFBTUMsZ0JBQWdCTCxjQUFjSCxpQkFBaUJBLGNBQWMsQ0FBQ0csV0FBVyxHQUFHO0lBQ2xGLE1BQU1NLFNBQVNqQixRQUFRLENBQUNXLFdBQVc7SUFDbkMsK0RBQStEO0lBQy9ELElBQUlDLFFBQVFFLE1BQU0sS0FBSyxHQUFHO1FBQ3RCSSxPQUFPLENBQUNGLGNBQWMsQ0FBQztJQUMzQixPQUFPO1FBQ0hFLE9BQU8sQ0FBQ0YsY0FBYyxDQUFDLE1BQU1DLFdBQVdMO0lBQzVDO0FBQ0o7QUFDTyxTQUFTTyxVQUFVLEdBQUdQLE9BQU87SUFDaENNLFFBQVFULEdBQUcsQ0FBQyxRQUFRRztBQUN4QjtBQUNPLFNBQVNYLEtBQUssR0FBR1csT0FBTztJQUMzQkYsWUFBWSxXQUFXRTtBQUMzQjtBQUNPLFNBQVNWLE1BQU0sR0FBR1UsT0FBTztJQUM1QkYsWUFBWSxZQUFZRTtBQUM1QjtBQUNPLFNBQVNULEtBQUssR0FBR1MsT0FBTztJQUMzQkYsWUFBWSxXQUFXRTtBQUMzQjtBQUNPLFNBQVNSLE1BQU0sR0FBR1EsT0FBTztJQUM1QkYsWUFBWSxZQUFZRTtBQUM1QjtBQUNPLFNBQVNQLEtBQUssR0FBR08sT0FBTztJQUMzQkYsWUFBWSxXQUFXRTtBQUMzQjtBQUNPLFNBQVNOLE1BQU0sR0FBR00sT0FBTztJQUM1QkYsWUFBWSxZQUFZRTtBQUM1QjtBQUNPLFNBQVNMLE1BQU0sR0FBR0ssT0FBTztJQUM1QkYsWUFBWSxZQUFZRTtBQUM1QjtBQUNBLE1BQU1RLG1CQUFtQixJQUFJQztBQUN0QixTQUFTQyxTQUFTLEdBQUdWLE9BQU87SUFDL0IsSUFBSSxDQUFDUSxpQkFBaUJHLEdBQUcsQ0FBQ1gsT0FBTyxDQUFDLEVBQUUsR0FBRztRQUNuQ1EsaUJBQWlCSSxHQUFHLENBQUNaLFFBQVFhLElBQUksQ0FBQztRQUNsQ3RCLFFBQVFTO0lBQ1o7QUFDSixFQUVBLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYnVpbGQvb3V0cHV0L2xvZy5qcz82YjdlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvbGQsIGdyZWVuLCBtYWdlbnRhLCByZWQsIHllbGxvdywgd2hpdGUgfSBmcm9tIFwiLi4vLi4vbGliL3BpY29jb2xvcnNcIjtcbmV4cG9ydCBjb25zdCBwcmVmaXhlcyA9IHtcbiAgICB3YWl0OiB3aGl0ZShib2xkKFwi4peLXCIpKSxcbiAgICBlcnJvcjogcmVkKGJvbGQoXCLiqK9cIikpLFxuICAgIHdhcm46IHllbGxvdyhib2xkKFwi4pqgXCIpKSxcbiAgICByZWFkeTogXCLilrJcIixcbiAgICBpbmZvOiB3aGl0ZShib2xkKFwiIFwiKSksXG4gICAgZXZlbnQ6IGdyZWVuKGJvbGQoXCLinJNcIikpLFxuICAgIHRyYWNlOiBtYWdlbnRhKGJvbGQoXCJcXHhiYlwiKSlcbn07XG5jb25zdCBMT0dHSU5HX01FVEhPRCA9IHtcbiAgICBsb2c6IFwibG9nXCIsXG4gICAgd2FybjogXCJ3YXJuXCIsXG4gICAgZXJyb3I6IFwiZXJyb3JcIlxufTtcbmZ1bmN0aW9uIHByZWZpeGVkTG9nKHByZWZpeFR5cGUsIC4uLm1lc3NhZ2UpIHtcbiAgICBpZiAoKG1lc3NhZ2VbMF0gPT09IFwiXCIgfHwgbWVzc2FnZVswXSA9PT0gdW5kZWZpbmVkKSAmJiBtZXNzYWdlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBtZXNzYWdlLnNoaWZ0KCk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnNvbGVNZXRob2QgPSBwcmVmaXhUeXBlIGluIExPR0dJTkdfTUVUSE9EID8gTE9HR0lOR19NRVRIT0RbcHJlZml4VHlwZV0gOiBcImxvZ1wiO1xuICAgIGNvbnN0IHByZWZpeCA9IHByZWZpeGVzW3ByZWZpeFR5cGVdO1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gbWVzc2FnZSwgZG9uJ3QgcHJpbnQgdGhlIHByZWZpeCBidXQgYSBuZXcgbGluZVxuICAgIGlmIChtZXNzYWdlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlW2NvbnNvbGVNZXRob2RdKFwiXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGVbY29uc29sZU1ldGhvZF0oXCIgXCIgKyBwcmVmaXgsIC4uLm1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXAoLi4ubWVzc2FnZSkge1xuICAgIGNvbnNvbGUubG9nKFwiIFwiLCAuLi5tZXNzYWdlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB3YWl0KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZyhcIndhaXRcIiwgLi4ubWVzc2FnZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZXJyb3IoLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKFwiZXJyb3JcIiwgLi4ubWVzc2FnZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gd2FybiguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coXCJ3YXJuXCIsIC4uLm1lc3NhZ2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWR5KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZyhcInJlYWR5XCIsIC4uLm1lc3NhZ2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGluZm8oLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKFwiaW5mb1wiLCAuLi5tZXNzYWdlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldmVudCguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coXCJldmVudFwiLCAuLi5tZXNzYWdlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZSguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coXCJ0cmFjZVwiLCAuLi5tZXNzYWdlKTtcbn1cbmNvbnN0IHdhcm5PbmNlTWVzc2FnZXMgPSBuZXcgU2V0KCk7XG5leHBvcnQgZnVuY3Rpb24gd2Fybk9uY2UoLi4ubWVzc2FnZSkge1xuICAgIGlmICghd2Fybk9uY2VNZXNzYWdlcy5oYXMobWVzc2FnZVswXSkpIHtcbiAgICAgICAgd2Fybk9uY2VNZXNzYWdlcy5hZGQobWVzc2FnZS5qb2luKFwiIFwiKSk7XG4gICAgICAgIHdhcm4oLi4ubWVzc2FnZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1sb2cuanMubWFwIl0sIm5hbWVzIjpbImJvbGQiLCJncmVlbiIsIm1hZ2VudGEiLCJyZWQiLCJ5ZWxsb3ciLCJ3aGl0ZSIsInByZWZpeGVzIiwid2FpdCIsImVycm9yIiwid2FybiIsInJlYWR5IiwiaW5mbyIsImV2ZW50IiwidHJhY2UiLCJMT0dHSU5HX01FVEhPRCIsImxvZyIsInByZWZpeGVkTG9nIiwicHJlZml4VHlwZSIsIm1lc3NhZ2UiLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJzaGlmdCIsImNvbnNvbGVNZXRob2QiLCJwcmVmaXgiLCJjb25zb2xlIiwiYm9vdHN0cmFwIiwid2Fybk9uY2VNZXNzYWdlcyIsIlNldCIsIndhcm5PbmNlIiwiaGFzIiwiYWRkIiwiam9pbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/build/output/log.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js":
-/*!*************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js ***!
- \*************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createProxy: () => (/* binding */ createProxy)\n/* harmony export */ });\n/* harmony import */ var react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server.edge */ \"(rsc)/../../node_modules/next/dist/compiled/react-server-dom-webpack/server.edge.js\");\n/* eslint-disable import/no-extraneous-dependencies */ \n// Re-assign to make it typed.\nconst createProxy = react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__.createClientModuleProxy; //# sourceMappingURL=module-proxy.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9tb2R1bGUtcHJveHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBb0QsR0FBa0Y7QUFDdEksOEJBQThCO0FBQ3ZCLE1BQU1DLGNBQWNELHlGQUF1QkEsQ0FBQyxDQUVuRCx3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5LmpzPzA1MGQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovIGltcG9ydCB7IGNyZWF0ZUNsaWVudE1vZHVsZVByb3h5IH0gZnJvbSBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXIuZWRnZVwiO1xuLy8gUmUtYXNzaWduIHRvIG1ha2UgaXQgdHlwZWQuXG5leHBvcnQgY29uc3QgY3JlYXRlUHJveHkgPSBjcmVhdGVDbGllbnRNb2R1bGVQcm94eTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bW9kdWxlLXByb3h5LmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVDbGllbnRNb2R1bGVQcm94eSIsImNyZWF0ZVByb3h5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/app-router-headers.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/app-router-headers.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACTION: () => (/* binding */ ACTION),\n/* harmony export */ FLIGHT_PARAMETERS: () => (/* binding */ FLIGHT_PARAMETERS),\n/* harmony export */ NEXT_DID_POSTPONE_HEADER: () => (/* binding */ NEXT_DID_POSTPONE_HEADER),\n/* harmony export */ NEXT_ROUTER_PREFETCH_HEADER: () => (/* binding */ NEXT_ROUTER_PREFETCH_HEADER),\n/* harmony export */ NEXT_ROUTER_STATE_TREE: () => (/* binding */ NEXT_ROUTER_STATE_TREE),\n/* harmony export */ NEXT_RSC_UNION_QUERY: () => (/* binding */ NEXT_RSC_UNION_QUERY),\n/* harmony export */ NEXT_URL: () => (/* binding */ NEXT_URL),\n/* harmony export */ RSC_CONTENT_TYPE_HEADER: () => (/* binding */ RSC_CONTENT_TYPE_HEADER),\n/* harmony export */ RSC_HEADER: () => (/* binding */ RSC_HEADER),\n/* harmony export */ RSC_VARY_HEADER: () => (/* binding */ RSC_VARY_HEADER)\n/* harmony export */ });\nconst RSC_HEADER = \"RSC\";\nconst ACTION = \"Next-Action\";\nconst NEXT_ROUTER_STATE_TREE = \"Next-Router-State-Tree\";\nconst NEXT_ROUTER_PREFETCH_HEADER = \"Next-Router-Prefetch\";\nconst NEXT_URL = \"Next-Url\";\nconst RSC_CONTENT_TYPE_HEADER = \"text/x-component\";\nconst RSC_VARY_HEADER = RSC_HEADER + \", \" + NEXT_ROUTER_STATE_TREE + \", \" + NEXT_ROUTER_PREFETCH_HEADER + \", \" + NEXT_URL;\nconst FLIGHT_PARAMETERS = [\n [\n RSC_HEADER\n ],\n [\n NEXT_ROUTER_STATE_TREE\n ],\n [\n NEXT_ROUTER_PREFETCH_HEADER\n ]\n];\nconst NEXT_RSC_UNION_QUERY = \"_rsc\";\nconst NEXT_DID_POSTPONE_HEADER = \"x-nextjs-postponed\"; //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxhQUFhLE1BQU07QUFDekIsTUFBTUMsU0FBUyxjQUFjO0FBQzdCLE1BQU1DLHlCQUF5Qix5QkFBeUI7QUFDeEQsTUFBTUMsOEJBQThCLHVCQUF1QjtBQUMzRCxNQUFNQyxXQUFXLFdBQVc7QUFDNUIsTUFBTUMsMEJBQTBCLG1CQUFtQjtBQUNuRCxNQUFNQyxrQkFBa0JOLGFBQWEsT0FBT0UseUJBQXlCLE9BQU9DLDhCQUE4QixPQUFPQyxTQUFTO0FBQzFILE1BQU1HLG9CQUFvQjtJQUM3QjtRQUNJUDtLQUNIO0lBQ0Q7UUFDSUU7S0FDSDtJQUNEO1FBQ0lDO0tBQ0g7Q0FDSixDQUFDO0FBQ0ssTUFBTUssdUJBQXVCLE9BQU87QUFDcEMsTUFBTUMsMkJBQTJCLHFCQUFxQixDQUU3RCw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcz9hMTcwIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSU0NfSEVBREVSID0gXCJSU0NcIjtcbmV4cG9ydCBjb25zdCBBQ1RJT04gPSBcIk5leHQtQWN0aW9uXCI7XG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRSA9IFwiTmV4dC1Sb3V0ZXItU3RhdGUtVHJlZVwiO1xuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiA9IFwiTmV4dC1Sb3V0ZXItUHJlZmV0Y2hcIjtcbmV4cG9ydCBjb25zdCBORVhUX1VSTCA9IFwiTmV4dC1VcmxcIjtcbmV4cG9ydCBjb25zdCBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiA9IFwidGV4dC94LWNvbXBvbmVudFwiO1xuZXhwb3J0IGNvbnN0IFJTQ19WQVJZX0hFQURFUiA9IFJTQ19IRUFERVIgKyBcIiwgXCIgKyBORVhUX1JPVVRFUl9TVEFURV9UUkVFICsgXCIsIFwiICsgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSICsgXCIsIFwiICsgTkVYVF9VUkw7XG5leHBvcnQgY29uc3QgRkxJR0hUX1BBUkFNRVRFUlMgPSBbXG4gICAgW1xuICAgICAgICBSU0NfSEVBREVSXG4gICAgXSxcbiAgICBbXG4gICAgICAgIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVcbiAgICBdLFxuICAgIFtcbiAgICAgICAgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXG4gICAgXVxuXTtcbmV4cG9ydCBjb25zdCBORVhUX1JTQ19VTklPTl9RVUVSWSA9IFwiX3JzY1wiO1xuZXhwb3J0IGNvbnN0IE5FWFRfRElEX1BPU1RQT05FX0hFQURFUiA9IFwieC1uZXh0anMtcG9zdHBvbmVkXCI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZXItaGVhZGVycy5qcy5tYXAiXSwibmFtZXMiOlsiUlNDX0hFQURFUiIsIkFDVElPTiIsIk5FWFRfUk9VVEVSX1NUQVRFX1RSRUUiLCJORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIiLCJORVhUX1VSTCIsIlJTQ19DT05URU5UX1RZUEVfSEVBREVSIiwiUlNDX1ZBUllfSEVBREVSIiwiRkxJR0hUX1BBUkFNRVRFUlMiLCJORVhUX1JTQ19VTklPTl9RVUVSWSIsIk5FWFRfRElEX1BPU1RQT05FX0hFQURFUiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/app-router.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/app-router.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
-/* harmony export */ __esModule: () => (/* binding */ __esModule),
-/* harmony export */ createEmptyCacheNode: () => (/* binding */ e2),
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
-/* harmony export */ getServerActionDispatcher: () => (/* binding */ e0),
-/* harmony export */ urlToUrlWithoutFlightMarker: () => (/* binding */ e1)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router.js#getServerActionDispatcher`);
-
-const e1 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router.js#urlToUrlWithoutFlightMarker`);
-
-const e2 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router.js#createEmptyCacheNode`);
-
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js":
-/*!*****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js ***!
- \*****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bailoutToClientRendering: () => (/* binding */ bailoutToClientRendering)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js\");\n/* harmony import */ var _static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./static-generation-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?926a\");\n\n\nfunction bailoutToClientRendering(reason) {\n const staticGenerationStore = _static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_1__.staticGenerationAsyncStorage.getStore();\n if (staticGenerationStore == null ? void 0 : staticGenerationStore.forceStatic) return;\n if (staticGenerationStore == null ? void 0 : staticGenerationStore.isStaticGeneration) throw new _shared_lib_lazy_dynamic_bailout_to_csr__WEBPACK_IMPORTED_MODULE_0__.BailoutToCSRError(reason);\n} //# sourceMappingURL=bailout-to-client-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFpRjtBQUNTO0FBQ25GLFNBQVNFLHlCQUF5QkMsTUFBTTtJQUMzQyxNQUFNQyx3QkFBd0JILG1HQUE0QkEsQ0FBQ0ksUUFBUTtJQUNuRSxJQUFJRCx5QkFBeUIsT0FBTyxLQUFLLElBQUlBLHNCQUFzQkUsV0FBVyxFQUFFO0lBQ2hGLElBQUlGLHlCQUF5QixPQUFPLEtBQUssSUFBSUEsc0JBQXNCRyxrQkFBa0IsRUFBRSxNQUFNLElBQUlQLHNGQUFpQkEsQ0FBQ0c7QUFDdkgsRUFFQSx1REFBdUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcz83Nzk2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhaWxvdXRUb0NTUkVycm9yIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyXCI7XG5pbXBvcnQgeyBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlIH0gZnJvbSBcIi4vc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiO1xuZXhwb3J0IGZ1bmN0aW9uIGJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyhyZWFzb24pIHtcbiAgICBjb25zdCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUgPSBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljR2VuZXJhdGlvblN0b3JlLmZvcmNlU3RhdGljKSByZXR1cm47XG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljR2VuZXJhdGlvblN0b3JlLmlzU3RhdGljR2VuZXJhdGlvbikgdGhyb3cgbmV3IEJhaWxvdXRUb0NTUkVycm9yKHJlYXNvbik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcy5tYXAiXSwibmFtZXMiOlsiQmFpbG91dFRvQ1NSRXJyb3IiLCJzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlIiwiYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nIiwicmVhc29uIiwic3RhdGljR2VuZXJhdGlvblN0b3JlIiwiZ2V0U3RvcmUiLCJmb3JjZVN0YXRpYyIsImlzU3RhdGljR2VuZXJhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js":
-/*!***************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js ***!
- \***************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clientHookInServerComponentError: () => (/* binding */ clientHookInServerComponentError)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(rsc)/../../node_modules/next/dist/compiled/react/react.shared-subset.js\");\n\nfunction clientHookInServerComponentError(hookName) {\n if (true) {\n // If useState is undefined we're in a server component\n if (!react__WEBPACK_IMPORTED_MODULE_0__.useState) {\n throw new Error(\"\" + hookName + ' only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component');\n }\n }\n} //# sourceMappingURL=client-hook-in-server-component-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LWhvb2staW4tc2VydmVyLWNvbXBvbmVudC1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEwQjtBQUNuQixTQUFTQyxpQ0FBaUNDLFFBQVE7SUFDckQsSUFBSUMsSUFBcUMsRUFBRTtRQUN2Qyx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDSCxrQ0FBS0EsQ0FBQ0ksUUFBUSxFQUFFO1lBQ2pCLE1BQU0sSUFBSUMsTUFBTSxLQUFLSCxXQUFXO1FBQ3BDO0lBQ0o7QUFDSixFQUVBLGlFQUFpRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LWhvb2staW4tc2VydmVyLWNvbXBvbmVudC1lcnJvci5qcz8wYzJhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCBmdW5jdGlvbiBjbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcihob29rTmFtZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgLy8gSWYgdXNlU3RhdGUgaXMgdW5kZWZpbmVkIHdlJ3JlIGluIGEgc2VydmVyIGNvbXBvbmVudFxuICAgICAgICBpZiAoIVJlYWN0LnVzZVN0YXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJcIiArIGhvb2tOYW1lICsgJyBvbmx5IHdvcmtzIGluIENsaWVudCBDb21wb25lbnRzLiBBZGQgdGhlIFwidXNlIGNsaWVudFwiIGRpcmVjdGl2ZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlIHRvIHVzZSBpdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9yZWFjdC1jbGllbnQtaG9vay1pbi1zZXJ2ZXItY29tcG9uZW50Jyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsaWVudC1ob29rLWluLXNlcnZlci1jb21wb25lbnQtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIlJlYWN0IiwiY2xpZW50SG9va0luU2VydmVyQ29tcG9uZW50RXJyb3IiLCJob29rTmFtZSIsInByb2Nlc3MiLCJ1c2VTdGF0ZSIsIkVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/draft-mode.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/draft-mode.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DraftMode: () => (/* binding */ DraftMode)\n/* harmony export */ });\n/* harmony import */ var _static_generation_bailout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./static-generation-bailout */ \"(rsc)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js\");\n\nclass DraftMode {\n get isEnabled() {\n return this._provider.isEnabled;\n }\n enable() {\n if ((0,_static_generation_bailout__WEBPACK_IMPORTED_MODULE_0__.staticGenerationBailout)(\"draftMode().enable()\")) {\n return;\n }\n return this._provider.enable();\n }\n disable() {\n if ((0,_static_generation_bailout__WEBPACK_IMPORTED_MODULE_0__.staticGenerationBailout)(\"draftMode().disable()\")) {\n return;\n }\n return this._provider.disable();\n }\n constructor(provider){\n this._provider = provider;\n }\n} //# sourceMappingURL=draft-mode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvZHJhZnQtbW9kZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFzRTtBQUMvRCxNQUFNQztJQUNULElBQUlDLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQ0MsU0FBUyxDQUFDRCxTQUFTO0lBQ25DO0lBQ0FFLFNBQVM7UUFDTCxJQUFJSixtRkFBdUJBLENBQUMseUJBQXlCO1lBQ2pEO1FBQ0o7UUFDQSxPQUFPLElBQUksQ0FBQ0csU0FBUyxDQUFDQyxNQUFNO0lBQ2hDO0lBQ0FDLFVBQVU7UUFDTixJQUFJTCxtRkFBdUJBLENBQUMsMEJBQTBCO1lBQ2xEO1FBQ0o7UUFDQSxPQUFPLElBQUksQ0FBQ0csU0FBUyxDQUFDRSxPQUFPO0lBQ2pDO0lBQ0FDLFlBQVlDLFFBQVEsQ0FBQztRQUNqQixJQUFJLENBQUNKLFNBQVMsR0FBR0k7SUFDckI7QUFDSixFQUVBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvZHJhZnQtbW9kZS5qcz9hYjViIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXRpY0dlbmVyYXRpb25CYWlsb3V0IH0gZnJvbSBcIi4vc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dFwiO1xuZXhwb3J0IGNsYXNzIERyYWZ0TW9kZSB7XG4gICAgZ2V0IGlzRW5hYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyLmlzRW5hYmxlZDtcbiAgICB9XG4gICAgZW5hYmxlKCkge1xuICAgICAgICBpZiAoc3RhdGljR2VuZXJhdGlvbkJhaWxvdXQoXCJkcmFmdE1vZGUoKS5lbmFibGUoKVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm92aWRlci5lbmFibGUoKTtcbiAgICB9XG4gICAgZGlzYWJsZSgpIHtcbiAgICAgICAgaWYgKHN0YXRpY0dlbmVyYXRpb25CYWlsb3V0KFwiZHJhZnRNb2RlKCkuZGlzYWJsZSgpXCIpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyLmRpc2FibGUoKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocHJvdmlkZXIpe1xuICAgICAgICB0aGlzLl9wcm92aWRlciA9IHByb3ZpZGVyO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZHJhZnQtbW9kZS5qcy5tYXAiXSwibmFtZXMiOlsic3RhdGljR2VuZXJhdGlvbkJhaWxvdXQiLCJEcmFmdE1vZGUiLCJpc0VuYWJsZWQiLCJfcHJvdmlkZXIiLCJlbmFibGUiLCJkaXNhYmxlIiwiY29uc3RydWN0b3IiLCJwcm92aWRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/draft-mode.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/error-boundary.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/error-boundary.js ***!
- \****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
-/* harmony export */ ErrorBoundary: () => (/* binding */ e2),
-/* harmony export */ ErrorBoundaryHandler: () => (/* binding */ e0),
-/* harmony export */ GlobalError: () => (/* binding */ e1),
-/* harmony export */ __esModule: () => (/* binding */ __esModule),
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/error-boundary.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/error-boundary.js#ErrorBoundaryHandler`);
-
-const e1 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/error-boundary.js#GlobalError`);
-
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
-const e2 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/error-boundary.js#ErrorBoundary`);
-
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/headers.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/headers.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cookies: () => (/* binding */ cookies),\n/* harmony export */ draftMode: () => (/* binding */ draftMode),\n/* harmony export */ headers: () => (/* binding */ headers)\n/* harmony export */ });\n/* harmony import */ var _server_web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../server/web/spec-extension/adapters/request-cookies */ \"(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\");\n/* harmony import */ var _server_web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../server/web/spec-extension/adapters/headers */ \"(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js\");\n/* harmony import */ var _server_web_spec_extension_cookies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../server/web/spec-extension/cookies */ \"(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n/* harmony import */ var _request_async_storage_external__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./request-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?ee1e\");\n/* harmony import */ var _action_async_storage_external__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./action-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/action-async-storage.external.js?eaaf\");\n/* harmony import */ var _static_generation_bailout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./static-generation-bailout */ \"(rsc)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js\");\n/* harmony import */ var _draft_mode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./draft-mode */ \"(rsc)/../../node_modules/next/dist/esm/client/components/draft-mode.js\");\n\n\n\n\n\n\n\nfunction headers() {\n if ((0,_static_generation_bailout__WEBPACK_IMPORTED_MODULE_5__.staticGenerationBailout)(\"headers\", {\n link: \"https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering\"\n })) {\n return _server_web_spec_extension_adapters_headers__WEBPACK_IMPORTED_MODULE_1__.HeadersAdapter.seal(new Headers({}));\n }\n const requestStore = _request_async_storage_external__WEBPACK_IMPORTED_MODULE_3__.requestAsyncStorage.getStore();\n if (!requestStore) {\n throw new Error(\"Invariant: headers() expects to have requestAsyncStorage, none available.\");\n }\n return requestStore.headers;\n}\nfunction cookies() {\n if ((0,_static_generation_bailout__WEBPACK_IMPORTED_MODULE_5__.staticGenerationBailout)(\"cookies\", {\n link: \"https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering\"\n })) {\n return _server_web_spec_extension_adapters_request_cookies__WEBPACK_IMPORTED_MODULE_0__.RequestCookiesAdapter.seal(new _server_web_spec_extension_cookies__WEBPACK_IMPORTED_MODULE_2__.RequestCookies(new Headers({})));\n }\n const requestStore = _request_async_storage_external__WEBPACK_IMPORTED_MODULE_3__.requestAsyncStorage.getStore();\n if (!requestStore) {\n throw new Error(\"Invariant: cookies() expects to have requestAsyncStorage, none available.\");\n }\n const asyncActionStore = _action_async_storage_external__WEBPACK_IMPORTED_MODULE_4__.actionAsyncStorage.getStore();\n if (asyncActionStore && (asyncActionStore.isAction || asyncActionStore.isAppRoute)) {\n // We can't conditionally return different types here based on the context.\n // To avoid confusion, we always return the readonly type here.\n return requestStore.mutableCookies;\n }\n return requestStore.cookies;\n}\nfunction draftMode() {\n const requestStore = _request_async_storage_external__WEBPACK_IMPORTED_MODULE_3__.requestAsyncStorage.getStore();\n if (!requestStore) {\n throw new Error(\"Invariant: draftMode() expects to have requestAsyncStorage, none available.\");\n }\n return new _draft_mode__WEBPACK_IMPORTED_MODULE_6__.DraftMode(requestStore.draftMode);\n} //# sourceMappingURL=headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQWlHO0FBQ2Y7QUFDVDtBQUNGO0FBQ0Y7QUFDQztBQUM3QjtBQUNsQyxTQUFTTztJQUNaLElBQUlGLG1GQUF1QkEsQ0FBQyxXQUFXO1FBQ25DRyxNQUFNO0lBQ1YsSUFBSTtRQUNBLE9BQU9QLHVGQUFjQSxDQUFDUSxJQUFJLENBQUMsSUFBSUMsUUFBUSxDQUFDO0lBQzVDO0lBQ0EsTUFBTUMsZUFBZVIsZ0ZBQW1CQSxDQUFDUyxRQUFRO0lBQ2pELElBQUksQ0FBQ0QsY0FBYztRQUNmLE1BQU0sSUFBSUUsTUFBTTtJQUNwQjtJQUNBLE9BQU9GLGFBQWFKLE9BQU87QUFDL0I7QUFDTyxTQUFTTztJQUNaLElBQUlULG1GQUF1QkEsQ0FBQyxXQUFXO1FBQ25DRyxNQUFNO0lBQ1YsSUFBSTtRQUNBLE9BQU9SLHNHQUFxQkEsQ0FBQ1MsSUFBSSxDQUFDLElBQUlQLDhFQUFjQSxDQUFDLElBQUlRLFFBQVEsQ0FBQztJQUN0RTtJQUNBLE1BQU1DLGVBQWVSLGdGQUFtQkEsQ0FBQ1MsUUFBUTtJQUNqRCxJQUFJLENBQUNELGNBQWM7UUFDZixNQUFNLElBQUlFLE1BQU07SUFDcEI7SUFDQSxNQUFNRSxtQkFBbUJYLDhFQUFrQkEsQ0FBQ1EsUUFBUTtJQUNwRCxJQUFJRyxvQkFBcUJBLENBQUFBLGlCQUFpQkMsUUFBUSxJQUFJRCxpQkFBaUJFLFVBQVUsR0FBRztRQUNoRiwyRUFBMkU7UUFDM0UsK0RBQStEO1FBQy9ELE9BQU9OLGFBQWFPLGNBQWM7SUFDdEM7SUFDQSxPQUFPUCxhQUFhRyxPQUFPO0FBQy9CO0FBQ08sU0FBU0s7SUFDWixNQUFNUixlQUFlUixnRkFBbUJBLENBQUNTLFFBQVE7SUFDakQsSUFBSSxDQUFDRCxjQUFjO1FBQ2YsTUFBTSxJQUFJRSxNQUFNO0lBQ3BCO0lBQ0EsT0FBTyxJQUFJUCxrREFBU0EsQ0FBQ0ssYUFBYVEsU0FBUztBQUMvQyxFQUVBLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvaGVhZGVycy5qcz8wNjE1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVlc3RDb29raWVzQWRhcHRlciB9IGZyb20gXCIuLi8uLi9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlcXVlc3QtY29va2llc1wiO1xuaW1wb3J0IHsgSGVhZGVyc0FkYXB0ZXIgfSBmcm9tIFwiLi4vLi4vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzXCI7XG5pbXBvcnQgeyBSZXF1ZXN0Q29va2llcyB9IGZyb20gXCIuLi8uLi9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2Nvb2tpZXNcIjtcbmltcG9ydCB7IHJlcXVlc3RBc3luY1N0b3JhZ2UgfSBmcm9tIFwiLi9yZXF1ZXN0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIjtcbmltcG9ydCB7IGFjdGlvbkFzeW5jU3RvcmFnZSB9IGZyb20gXCIuL2FjdGlvbi1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCI7XG5pbXBvcnQgeyBzdGF0aWNHZW5lcmF0aW9uQmFpbG91dCB9IGZyb20gXCIuL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXRcIjtcbmltcG9ydCB7IERyYWZ0TW9kZSB9IGZyb20gXCIuL2RyYWZ0LW1vZGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBoZWFkZXJzKCkge1xuICAgIGlmIChzdGF0aWNHZW5lcmF0aW9uQmFpbG91dChcImhlYWRlcnNcIiwge1xuICAgICAgICBsaW5rOiBcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdcIlxuICAgIH0pKSB7XG4gICAgICAgIHJldHVybiBIZWFkZXJzQWRhcHRlci5zZWFsKG5ldyBIZWFkZXJzKHt9KSk7XG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3RTdG9yZSA9IHJlcXVlc3RBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXJlcXVlc3RTdG9yZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IGhlYWRlcnMoKSBleHBlY3RzIHRvIGhhdmUgcmVxdWVzdEFzeW5jU3RvcmFnZSwgbm9uZSBhdmFpbGFibGUuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdFN0b3JlLmhlYWRlcnM7XG59XG5leHBvcnQgZnVuY3Rpb24gY29va2llcygpIHtcbiAgICBpZiAoc3RhdGljR2VuZXJhdGlvbkJhaWxvdXQoXCJjb29raWVzXCIsIHtcbiAgICAgICAgbGluazogXCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nXCJcbiAgICB9KSkge1xuICAgICAgICByZXR1cm4gUmVxdWVzdENvb2tpZXNBZGFwdGVyLnNlYWwobmV3IFJlcXVlc3RDb29raWVzKG5ldyBIZWFkZXJzKHt9KSkpO1xuICAgIH1cbiAgICBjb25zdCByZXF1ZXN0U3RvcmUgPSByZXF1ZXN0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKCFyZXF1ZXN0U3RvcmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiBjb29raWVzKCkgZXhwZWN0cyB0byBoYXZlIHJlcXVlc3RBc3luY1N0b3JhZ2UsIG5vbmUgYXZhaWxhYmxlLlwiKTtcbiAgICB9XG4gICAgY29uc3QgYXN5bmNBY3Rpb25TdG9yZSA9IGFjdGlvbkFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChhc3luY0FjdGlvblN0b3JlICYmIChhc3luY0FjdGlvblN0b3JlLmlzQWN0aW9uIHx8IGFzeW5jQWN0aW9uU3RvcmUuaXNBcHBSb3V0ZSkpIHtcbiAgICAgICAgLy8gV2UgY2FuJ3QgY29uZGl0aW9uYWxseSByZXR1cm4gZGlmZmVyZW50IHR5cGVzIGhlcmUgYmFzZWQgb24gdGhlIGNvbnRleHQuXG4gICAgICAgIC8vIFRvIGF2b2lkIGNvbmZ1c2lvbiwgd2UgYWx3YXlzIHJldHVybiB0aGUgcmVhZG9ubHkgdHlwZSBoZXJlLlxuICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3JlLm11dGFibGVDb29raWVzO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdFN0b3JlLmNvb2tpZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gZHJhZnRNb2RlKCkge1xuICAgIGNvbnN0IHJlcXVlc3RTdG9yZSA9IHJlcXVlc3RBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXJlcXVlc3RTdG9yZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhcmlhbnQ6IGRyYWZ0TW9kZSgpIGV4cGVjdHMgdG8gaGF2ZSByZXF1ZXN0QXN5bmNTdG9yYWdlLCBub25lIGF2YWlsYWJsZS5cIik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRHJhZnRNb2RlKHJlcXVlc3RTdG9yZS5kcmFmdE1vZGUpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWFkZXJzLmpzLm1hcCJdLCJuYW1lcyI6WyJSZXF1ZXN0Q29va2llc0FkYXB0ZXIiLCJIZWFkZXJzQWRhcHRlciIsIlJlcXVlc3RDb29raWVzIiwicmVxdWVzdEFzeW5jU3RvcmFnZSIsImFjdGlvbkFzeW5jU3RvcmFnZSIsInN0YXRpY0dlbmVyYXRpb25CYWlsb3V0IiwiRHJhZnRNb2RlIiwiaGVhZGVycyIsImxpbmsiLCJzZWFsIiwiSGVhZGVycyIsInJlcXVlc3RTdG9yZSIsImdldFN0b3JlIiwiRXJyb3IiLCJjb29raWVzIiwiYXN5bmNBY3Rpb25TdG9yZSIsImlzQWN0aW9uIiwiaXNBcHBSb3V0ZSIsIm11dGFibGVDb29raWVzIiwiZHJhZnRNb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/headers.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/hooks-server-context.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DynamicServerError: () => (/* binding */ DynamicServerError),\n/* harmony export */ isDynamicServerError: () => (/* binding */ isDynamicServerError)\n/* harmony export */ });\nconst DYNAMIC_ERROR_CODE = \"DYNAMIC_SERVER_USAGE\";\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description);\n this.description = description;\n this.digest = DYNAMIC_ERROR_CODE;\n }\n}\nfunction isDynamicServerError(err) {\n if (typeof err !== \"object\" || err === null || !(\"digest\" in err) || typeof err.digest !== \"string\") {\n return false;\n }\n return err.digest === DYNAMIC_ERROR_CODE;\n} //# sourceMappingURL=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNQSxxQkFBcUI7QUFDcEIsTUFBTUMsMkJBQTJCQztJQUNwQ0MsWUFBWUMsV0FBVyxDQUFDO1FBQ3BCLEtBQUssQ0FBQywyQkFBMkJBO1FBQ2pDLElBQUksQ0FBQ0EsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLE1BQU0sR0FBR0w7SUFDbEI7QUFDSjtBQUNPLFNBQVNNLHFCQUFxQkMsR0FBRztJQUNwQyxJQUFJLE9BQU9BLFFBQVEsWUFBWUEsUUFBUSxRQUFRLENBQUUsYUFBWUEsR0FBRSxLQUFNLE9BQU9BLElBQUlGLE1BQU0sS0FBSyxVQUFVO1FBQ2pHLE9BQU87SUFDWDtJQUNBLE9BQU9FLElBQUlGLE1BQU0sS0FBS0w7QUFDMUIsRUFFQSxnREFBZ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzPzk4OWMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFlOQU1JQ19FUlJPUl9DT0RFID0gXCJEWU5BTUlDX1NFUlZFUl9VU0FHRVwiO1xuZXhwb3J0IGNsYXNzIER5bmFtaWNTZXJ2ZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihkZXNjcmlwdGlvbil7XG4gICAgICAgIHN1cGVyKFwiRHluYW1pYyBzZXJ2ZXIgdXNhZ2U6IFwiICsgZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuZGlnZXN0ID0gRFlOQU1JQ19FUlJPUl9DT0RFO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciAhPT0gXCJvYmplY3RcIiB8fCBlcnIgPT09IG51bGwgfHwgIShcImRpZ2VzdFwiIGluIGVycikgfHwgdHlwZW9mIGVyci5kaWdlc3QgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXJyLmRpZ2VzdCA9PT0gRFlOQU1JQ19FUlJPUl9DT0RFO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy1zZXJ2ZXItY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiRFlOQU1JQ19FUlJPUl9DT0RFIiwiRHluYW1pY1NlcnZlckVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImRlc2NyaXB0aW9uIiwiZGlnZXN0IiwiaXNEeW5hbWljU2VydmVyRXJyb3IiLCJlcnIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/layout-router.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/layout-router.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
-/* harmony export */ __esModule: () => (/* binding */ __esModule),
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/layout-router.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/navigation.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/navigation.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReadonlyURLSearchParams: () => (/* binding */ ReadonlyURLSearchParams),\n/* harmony export */ RedirectType: () => (/* reexport safe */ _redirect__WEBPACK_IMPORTED_MODULE_7__.RedirectType),\n/* harmony export */ ServerInsertedHTMLContext: () => (/* reexport safe */ _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_6__.ServerInsertedHTMLContext),\n/* harmony export */ notFound: () => (/* reexport safe */ _not_found__WEBPACK_IMPORTED_MODULE_8__.notFound),\n/* harmony export */ permanentRedirect: () => (/* reexport safe */ _redirect__WEBPACK_IMPORTED_MODULE_7__.permanentRedirect),\n/* harmony export */ redirect: () => (/* reexport safe */ _redirect__WEBPACK_IMPORTED_MODULE_7__.redirect),\n/* harmony export */ useParams: () => (/* binding */ useParams),\n/* harmony export */ usePathname: () => (/* binding */ usePathname),\n/* harmony export */ useRouter: () => (/* binding */ useRouter),\n/* harmony export */ useSearchParams: () => (/* binding */ useSearchParams),\n/* harmony export */ useSelectedLayoutSegment: () => (/* binding */ useSelectedLayoutSegment),\n/* harmony export */ useSelectedLayoutSegments: () => (/* binding */ useSelectedLayoutSegments),\n/* harmony export */ useServerInsertedHTML: () => (/* reexport safe */ _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_6__.useServerInsertedHTML)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(rsc)/../../node_modules/next/dist/compiled/react/react.shared-subset.js\");\n/* harmony import */ var _shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js\");\n/* harmony import */ var _shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js\");\n/* harmony import */ var _client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./client-hook-in-server-component-error */ \"(rsc)/../../node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js\");\n/* harmony import */ var _router_reducer_reducers_get_segment_value__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(rsc)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js\");\n/* harmony import */ var _shared_lib_segment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n/* harmony import */ var _shared_lib_server_inserted_html_shared_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../shared/lib/server-inserted-html.shared-runtime */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js\");\n/* harmony import */ var _redirect__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./redirect */ \"(rsc)/../../node_modules/next/dist/esm/client/components/redirect.js\");\n/* harmony import */ var _not_found__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./not-found */ \"(rsc)/../../node_modules/next/dist/esm/client/components/not-found.js\");\n\n\n\n\n\n\nconst INTERNAL_URLSEARCHPARAMS_INSTANCE = Symbol(\"internal for urlsearchparams readonly\");\nfunction readonlyURLSearchParamsError() {\n return new Error(\"ReadonlyURLSearchParams cannot be modified\");\n}\nclass ReadonlyURLSearchParams {\n [Symbol.iterator]() {\n return this[INTERNAL_URLSEARCHPARAMS_INSTANCE][Symbol.iterator]();\n }\n append() {\n throw readonlyURLSearchParamsError();\n }\n delete() {\n throw readonlyURLSearchParamsError();\n }\n set() {\n throw readonlyURLSearchParamsError();\n }\n sort() {\n throw readonlyURLSearchParamsError();\n }\n constructor(urlSearchParams){\n this[INTERNAL_URLSEARCHPARAMS_INSTANCE] = urlSearchParams;\n this.entries = urlSearchParams.entries.bind(urlSearchParams);\n this.forEach = urlSearchParams.forEach.bind(urlSearchParams);\n this.get = urlSearchParams.get.bind(urlSearchParams);\n this.getAll = urlSearchParams.getAll.bind(urlSearchParams);\n this.has = urlSearchParams.has.bind(urlSearchParams);\n this.keys = urlSearchParams.keys.bind(urlSearchParams);\n this.values = urlSearchParams.values.bind(urlSearchParams);\n this.toString = urlSearchParams.toString.bind(urlSearchParams);\n this.size = urlSearchParams.size;\n }\n}\n/**\n * Get a read-only URLSearchParams object. For example searchParams.get('foo') would return 'bar' when ?foo=bar\n * Learn more about URLSearchParams here: https://developer.mozilla.org/docs/Web/API/URLSearchParams\n */ function useSearchParams() {\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useSearchParams\");\n const searchParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.SearchParamsContext);\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null;\n }\n return new ReadonlyURLSearchParams(searchParams);\n }, [\n searchParams\n ]);\n if (true) {\n // AsyncLocalStorage should not be included in the client bundle.\n const { bailoutToClientRendering } = __webpack_require__(/*! ./bailout-to-client-rendering */ \"(rsc)/../../node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js\");\n // TODO-APP: handle dynamic = 'force-static' here and on the client\n bailoutToClientRendering(\"useSearchParams()\");\n }\n return readonlySearchParams;\n}\n/**\n * Get the current pathname. For example usePathname() on /dashboard?foo=bar would return \"/dashboard\"\n */ function usePathname() {\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"usePathname\");\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.PathnameContext);\n}\n\n/**\n * Get the router methods. For example router.push('/dashboard')\n */ function useRouter() {\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useRouter\");\n const router = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__.AppRouterContext);\n if (router === null) {\n throw new Error(\"invariant expected app router to be mounted\");\n }\n return router;\n}\n// this function performs a depth-first search of the tree to find the selected\n// params\nfunction getSelectedParams(tree, params) {\n if (params === void 0) params = {};\n const parallelRoutes = tree[1];\n for (const parallelRoute of Object.values(parallelRoutes)){\n const segment = parallelRoute[0];\n const isDynamicParameter = Array.isArray(segment);\n const segmentValue = isDynamicParameter ? segment[1] : segment;\n if (!segmentValue || segmentValue.startsWith(_shared_lib_segment__WEBPACK_IMPORTED_MODULE_5__.PAGE_SEGMENT_KEY)) continue;\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll = isDynamicParameter && (segment[2] === \"c\" || segment[2] === \"oc\");\n if (isCatchAll) {\n params[segment[0]] = segment[1].split(\"/\");\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1];\n }\n params = getSelectedParams(parallelRoute, params);\n }\n return params;\n}\n/**\n * Get the current parameters. For example useParams() on /dashboard/[team]\n * where pathname is /dashboard/nextjs would return { team: 'nextjs' }\n */ function useParams() {\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useParams\");\n const globalLayoutRouter = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__.GlobalLayoutRouterContext);\n const pathParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_hooks_client_context_shared_runtime__WEBPACK_IMPORTED_MODULE_2__.PathParamsContext);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{\n // When it's under app router\n if (globalLayoutRouter == null ? void 0 : globalLayoutRouter.tree) {\n return getSelectedParams(globalLayoutRouter.tree);\n }\n // When it's under client side pages router\n return pathParams;\n }, [\n globalLayoutRouter == null ? void 0 : globalLayoutRouter.tree,\n pathParams\n ]);\n}\n// TODO-APP: handle parallel routes\n/**\n * Get the canonical parameters from the current level to the leaf node.\n */ function getSelectedLayoutSegmentPath(tree, parallelRouteKey, first, segmentPath) {\n if (first === void 0) first = true;\n if (segmentPath === void 0) segmentPath = [];\n let node;\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey];\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1];\n var _parallelRoutes_children;\n node = (_parallelRoutes_children = parallelRoutes.children) != null ? _parallelRoutes_children : Object.values(parallelRoutes)[0];\n }\n if (!node) return segmentPath;\n const segment = node[0];\n const segmentValue = (0,_router_reducer_reducers_get_segment_value__WEBPACK_IMPORTED_MODULE_4__.getSegmentValue)(segment);\n if (!segmentValue || segmentValue.startsWith(_shared_lib_segment__WEBPACK_IMPORTED_MODULE_5__.PAGE_SEGMENT_KEY)) {\n return segmentPath;\n }\n segmentPath.push(segmentValue);\n return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath);\n}\n// TODO-APP: Expand description when the docs are written for it.\n/**\n * Get the canonical segment path from the current level to the leaf node.\n */ function useSelectedLayoutSegments(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = \"children\";\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useSelectedLayoutSegments\");\n const { tree } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_shared_lib_app_router_context_shared_runtime__WEBPACK_IMPORTED_MODULE_1__.LayoutRouterContext);\n return getSelectedLayoutSegmentPath(tree, parallelRouteKey);\n}\n// TODO-APP: Expand description when the docs are written for it.\n/**\n * Get the segment below the current level\n */ function useSelectedLayoutSegment(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = \"children\";\n (0,_client_hook_in_server_component_error__WEBPACK_IMPORTED_MODULE_3__.clientHookInServerComponentError)(\"useSelectedLayoutSegment\");\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);\n if (selectedLayoutSegments.length === 0) {\n return null;\n }\n return selectedLayoutSegments[0];\n}\n\n //# sourceMappingURL=navigation.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbmF2aWdhdGlvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTRDO0FBQzBGO0FBQ1A7QUFDcEM7QUFDYjtBQUNsQjtBQUM1RCxNQUFNVyxvQ0FBb0NDLE9BQU87QUFDakQsU0FBU0M7SUFDTCxPQUFPLElBQUlDLE1BQU07QUFDckI7QUFDTyxNQUFNQztJQUNULENBQUNILE9BQU9JLFFBQVEsQ0FBQyxHQUFHO1FBQ2hCLE9BQU8sSUFBSSxDQUFDTCxrQ0FBa0MsQ0FBQ0MsT0FBT0ksUUFBUSxDQUFDO0lBQ25FO0lBQ0FDLFNBQVM7UUFDTCxNQUFNSjtJQUNWO0lBQ0FLLFNBQVM7UUFDTCxNQUFNTDtJQUNWO0lBQ0FNLE1BQU07UUFDRixNQUFNTjtJQUNWO0lBQ0FPLE9BQU87UUFDSCxNQUFNUDtJQUNWO0lBQ0FRLFlBQVlDLGVBQWUsQ0FBQztRQUN4QixJQUFJLENBQUNYLGtDQUFrQyxHQUFHVztRQUMxQyxJQUFJLENBQUNDLE9BQU8sR0FBR0QsZ0JBQWdCQyxPQUFPLENBQUNDLElBQUksQ0FBQ0Y7UUFDNUMsSUFBSSxDQUFDRyxPQUFPLEdBQUdILGdCQUFnQkcsT0FBTyxDQUFDRCxJQUFJLENBQUNGO1FBQzVDLElBQUksQ0FBQ0ksR0FBRyxHQUFHSixnQkFBZ0JJLEdBQUcsQ0FBQ0YsSUFBSSxDQUFDRjtRQUNwQyxJQUFJLENBQUNLLE1BQU0sR0FBR0wsZ0JBQWdCSyxNQUFNLENBQUNILElBQUksQ0FBQ0Y7UUFDMUMsSUFBSSxDQUFDTSxHQUFHLEdBQUdOLGdCQUFnQk0sR0FBRyxDQUFDSixJQUFJLENBQUNGO1FBQ3BDLElBQUksQ0FBQ08sSUFBSSxHQUFHUCxnQkFBZ0JPLElBQUksQ0FBQ0wsSUFBSSxDQUFDRjtRQUN0QyxJQUFJLENBQUNRLE1BQU0sR0FBR1IsZ0JBQWdCUSxNQUFNLENBQUNOLElBQUksQ0FBQ0Y7UUFDMUMs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O0lBQ3pELElBQUlBLHFCQUFxQixLQUFLLEdBQUdBLG1CQUFtQjtJQUNwRHJELHdHQUFnQ0EsQ0FBQztJQUNqQyxNQUFNOEQseUJBQXlCRiwwQkFBMEJQO0lBQ3pELElBQUlTLHVCQUF1QkMsTUFBTSxLQUFLLEdBQUc7UUFDckMsT0FBTztJQUNYO0lBQ0EsT0FBT0Qsc0JBQXNCLENBQUMsRUFBRTtBQUNwQztBQUN1RTtBQUNoQyxDQUV2QyxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24uanM/ZTQyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBBcHBSb3V0ZXJDb250ZXh0LCBHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0LCBMYXlvdXRSb3V0ZXJDb250ZXh0IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lXCI7XG5pbXBvcnQgeyBTZWFyY2hQYXJhbXNDb250ZXh0LCBQYXRobmFtZUNvbnRleHQsIFBhdGhQYXJhbXNDb250ZXh0IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvaG9va3MtY2xpZW50LWNvbnRleHQuc2hhcmVkLXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yIH0gZnJvbSBcIi4vY2xpZW50LWhvb2staW4tc2VydmVyLWNvbXBvbmVudC1lcnJvclwiO1xuaW1wb3J0IHsgZ2V0U2VnbWVudFZhbHVlIH0gZnJvbSBcIi4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWVcIjtcbmltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50XCI7XG5jb25zdCBJTlRFUk5BTF9VUkxTRUFSQ0hQQVJBTVNfSU5TVEFOQ0UgPSBTeW1ib2woXCJpbnRlcm5hbCBmb3IgdXJsc2VhcmNocGFyYW1zIHJlYWRvbmx5XCIpO1xuZnVuY3Rpb24gcmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvcigpIHtcbiAgICByZXR1cm4gbmV3IEVycm9yKFwiUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMgY2Fubm90IGJlIG1vZGlmaWVkXCIpO1xufVxuZXhwb3J0IGNsYXNzIFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIHtcbiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxfVVJMU0VBUkNIUEFSQU1TX0lOU1RBTkNFXVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgfVxuICAgIGFwcGVuZCgpIHtcbiAgICAgICAgdGhyb3cgcmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvcigpO1xuICAgIH1cbiAgICBkZWxldGUoKSB7XG4gICAgICAgIHRocm93IHJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKTtcbiAgICB9XG4gICAgc2V0KCkge1xuICAgICAgICB0aHJvdyByZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKCk7XG4gICAgfVxuICAgIHNvcnQoKSB7XG4gICAgICAgIHRocm93IHJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IodXJsU2VhcmNoUGFyYW1zKXtcbiAgICAgICAgdGhpc1tJTlRFUk5BTF9VUkxTRUFSQ0hQQVJBTVNfSU5TVEFOQ0VdID0gdXJsU2VhcmNoUGFyYW1zO1xuICAgICAgICB0aGlzLmVudHJpZXMgPSB1cmxTZWFyY2hQYXJhbXMuZW50cmllcy5iaW5kKHVybFNlYXJjaFBhcmFtcyk7XG4gICAgICAgIHRoaXMuZm9yRWFjaCA9IHVybFNlYXJjaFBhcmFtcy5mb3JFYWNoLmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy5nZXQgPSB1cmxTZWFyY2hQYXJhbXMuZ2V0LmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy5nZXRBbGwgPSB1cmxTZWFyY2hQYXJhbXMuZ2V0QWxsLmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy5oYXMgPSB1cmxTZWFyY2hQYXJhbXMuaGFzLmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy5rZXlzID0gdXJsU2VhcmNoUGFyYW1zLmtleXMuYmluZCh1cmxTZWFyY2hQYXJhbXMpO1xuICAgICAgICB0aGlzLnZhbHVlcyA9IHVybFNlYXJjaFBhcmFtcy52YWx1ZXMuYmluZCh1cmxTZWFyY2hQYXJhbXMpO1xuICAgICAgICB0aGlzLnRvU3RyaW5nID0gdXJsU2VhcmNoUGFyYW1zLnRvU3RyaW5nLmJpbmQodXJsU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgdGhpcy5zaXplID0gdXJsU2VhcmNoUGFyYW1zLnNpemU7XG4gICAgfVxufVxuLyoqXG4gKiBHZXQgYSByZWFkLW9ubHkgVVJMU2VhcmNoUGFyYW1zIG9iamVjdC4gRm9yIGV4YW1wbGUgc2VhcmNoUGFyYW1zLmdldCgnZm9vJykgd291bGQgcmV0dXJuICdiYXInIHdoZW4gP2Zvbz1iYXJcbiAqIExlYXJuIG1vcmUgYWJvdXQgVVJMU2VhcmNoUGFyYW1zIGhlcmU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9VUkxTZWFyY2hQYXJhbXNcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlU2VhcmNoUGFyYW1zKCkge1xuICAgIGNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yKFwidXNlU2VhcmNoUGFyYW1zXCIpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHVzZUNvbnRleHQoU2VhcmNoUGFyYW1zQ29udGV4dCk7XG4gICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW5cbiAgICAvLyBgbmV4dC1lbnYuZC50c2Agd2lsbCBhZGQgYSBuZXcgb3ZlcmxvYWQgdGhhdCBjaGFuZ2VzIHRoZSByZXR1cm4gdHlwZSB0b1xuICAgIC8vIGluY2x1ZGUgYG51bGxgLlxuICAgIGNvbnN0IHJlYWRvbmx5U2VhcmNoUGFyYW1zID0gdXNlTWVtbygoKT0+e1xuICAgICAgICBpZiAoIXNlYXJjaFBhcmFtcykge1xuICAgICAgICAgICAgLy8gV2hlbiB0aGUgcm91dGVyIGlzIG5vdCByZWFkeSBpbiBwYWdlcywgd2Ugd29uJ3QgaGF2ZSB0aGUgc2VhcmNoIHBhcmFtc1xuICAgICAgICAgICAgLy8gYXZhaWxhYmxlLlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyhzZWFyY2hQYXJhbXMpO1xuICAgIH0sIFtcbiAgICAgICAgc2VhcmNoUGFyYW1zXG4gICAgXSk7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgLy8gQXN5bmNMb2NhbFN0b3JhZ2Ugc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgY2xpZW50IGJ1bmRsZS5cbiAgICAgICAgY29uc3QgeyBiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmcgfSA9IHJlcXVpcmUoXCIuL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZ1wiKTtcbiAgICAgICAgLy8gVE9ETy1BUFA6IGhhbmRsZSBkeW5hbWljID0gJ2ZvcmNlLXN0YXRpYycgaGVyZSBhbmQgb24gdGhlIGNsaWVudFxuICAgICAgICBiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmcoXCJ1c2VTZWFyY2hQYXJhbXMoKVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlYWRvbmx5U2VhcmNoUGFyYW1zO1xufVxuLyoqXG4gKiBHZXQgdGhlIGN1cnJlbnQgcGF0aG5hbWUuIEZvciBleGFtcGxlIHVzZVBhdGhuYW1lKCkgb24gL2Rhc2hib2FyZD9mb289YmFyIHdvdWxkIHJldHVybiBcIi9kYXNoYm9hcmRcIlxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VQYXRobmFtZSgpIHtcbiAgICBjbGllbnRIb29rSW5TZXJ2ZXJDb21wb25lbnRFcnJvcihcInVzZVBhdGhuYW1lXCIpO1xuICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoaXMgaXMgYG51bGxgLCB0aGUgY29tcGF0IHR5cGVzIGFkZGVkIGluIGBuZXh0LWVudi5kLnRzYFxuICAgIC8vIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG8gaW5jbHVkZSBgbnVsbGAuXG4gICAgcmV0dXJuIHVzZUNvbnRleHQoUGF0aG5hbWVDb250ZXh0KTtcbn1cbmV4cG9ydCB7IFNlcnZlckluc2VydGVkSFRNTENvbnRleHQsIHVzZVNlcnZlckluc2VydGVkSFRNTCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3NlcnZlci1pbnNlcnRlZC1odG1sLnNoYXJlZC1ydW50aW1lXCI7XG4vKipcbiAqIEdldCB0aGUgcm91dGVyIG1ldGhvZHMuIEZvciBleGFtcGxlIHJvdXRlci5wdXNoKCcvZGFzaGJvYXJkJylcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlUm91dGVyKCkge1xuICAgIGNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yKFwidXNlUm91dGVyXCIpO1xuICAgIGNvbnN0IHJvdXRlciA9IHVzZUNvbnRleHQoQXBwUm91dGVyQ29udGV4dCk7XG4gICAgaWYgKHJvdXRlciA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhcmlhbnQgZXhwZWN0ZWQgYXBwIHJvdXRlciB0byBiZSBtb3VudGVkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcm91dGVyO1xufVxuLy8gdGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIGRlcHRoLWZpcnN0IHNlYXJjaCBvZiB0aGUgdHJlZSB0byBmaW5kIHRoZSBzZWxlY3RlZFxuLy8gcGFyYW1zXG5mdW5jdGlvbiBnZXRTZWxlY3RlZFBhcmFtcyh0cmVlLCBwYXJhbXMpIHtcbiAgICBpZiAocGFyYW1zID09PSB2b2lkIDApIHBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVzID0gdHJlZVsxXTtcbiAgICBmb3IgKGNvbnN0IHBhcmFsbGVsUm91dGUgb2YgT2JqZWN0LnZhbHVlcyhwYXJhbGxlbFJvdXRlcykpe1xuICAgICAgICBjb25zdCBzZWdtZW50ID0gcGFyYWxsZWxSb3V0ZVswXTtcbiAgICAgICAgY29uc3QgaXNEeW5hbWljUGFyYW1ldGVyID0gQXJyYXkuaXNBcnJheShzZWdtZW50KTtcbiAgICAgICAgY29uc3Qgc2VnbWVudFZhbHVlID0gaXNEeW5hbWljUGFyYW1ldGVyID8gc2VnbWVudFsxXSA6IHNlZ21lbnQ7XG4gICAgICAgIGlmICghc2VnbWVudFZhbHVlIHx8IHNlZ21lbnRWYWx1ZS5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpKSBjb250aW51ZTtcbiAgICAgICAgLy8gRW5zdXJlIGNhdGNoQWxsIGFuZCBvcHRpb25hbCBjYXRjaGFsbCBhcmUgdHVybmVkIGludG8gYW4gYXJyYXlcbiAgICAgICAgY29uc3QgaXNDYXRjaEFsbCA9IGlzRHluYW1pY1BhcmFtZXRlciAmJiAoc2VnbWVudFsyXSA9PT0gXCJjXCIgfHwgc2VnbWVudFsyXSA9PT0gXCJvY1wiKTtcbiAgICAgICAgaWYgKGlzQ2F0Y2hBbGwpIHtcbiAgICAgICAgICAgIHBhcmFtc1tzZWdtZW50WzBdXSA9IHNlZ21lbnRbMV0uc3BsaXQoXCIvXCIpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRHluYW1pY1BhcmFtZXRlcikge1xuICAgICAgICAgICAgcGFyYW1zW3NlZ21lbnRbMF1dID0gc2VnbWVudFsxXTtcbiAgICAgICAgfVxuICAgICAgICBwYXJhbXMgPSBnZXRTZWxlY3RlZFBhcmFtcyhwYXJhbGxlbFJvdXRlLCBwYXJhbXMpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zO1xufVxuLyoqXG4gKiBHZXQgdGhlIGN1cnJlbnQgcGFyYW1ldGVycy4gRm9yIGV4YW1wbGUgdXNlUGFyYW1zKCkgb24gL2Rhc2hib2FyZC9bdGVhbV1cbiAqIHdoZXJlIHBhdGhuYW1lIGlzIC9kYXNoYm9hcmQvbmV4dGpzIHdvdWxkIHJldHVybiB7IHRlYW06ICduZXh0anMnIH1cbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlUGFyYW1zKCkge1xuICAgIGNsaWVudEhvb2tJblNlcnZlckNvbXBvbmVudEVycm9yKFwidXNlUGFyYW1zXCIpO1xuICAgIGNvbnN0IGdsb2JhbExheW91dFJvdXRlciA9IHVzZUNvbnRleHQoR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCk7XG4gICAgY29uc3QgcGF0aFBhcmFtcyA9IHVzZUNvbnRleHQoUGF0aFBhcmFtc0NvbnRleHQpO1xuICAgIHJldHVybiB1c2VNZW1vKCgpPT57XG4gICAgICAgIC8vIFdoZW4gaXQncyB1bmRlciBhcHAgcm91dGVyXG4gICAgICAgIGlmIChnbG9iYWxMYXlvdXRSb3V0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IGdsb2JhbExheW91dFJvdXRlci50cmVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0U2VsZWN0ZWRQYXJhbXMoZ2xvYmFsTGF5b3V0Um91dGVyLnRyZWUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gaXQncyB1bmRlciBjbGllbnQgc2lkZSBwYWdlcyByb3V0ZXJcbiAgICAgICAgcmV0dXJuIHBhdGhQYXJhbXM7XG4gICAgfSwgW1xuICAgICAgICBnbG9iYWxMYXlvdXRSb3V0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IGdsb2JhbExheW91dFJvdXRlci50cmVlLFxuICAgICAgICBwYXRoUGFyYW1zXG4gICAgXSk7XG59XG4vLyBUT0RPLUFQUDogaGFuZGxlIHBhcmFsbGVsIHJvdXRlc1xuLyoqXG4gKiBHZXQgdGhlIGNhbm9uaWNhbCBwYXJhbWV0ZXJzIGZyb20gdGhlIGN1cnJlbnQgbGV2ZWwgdG8gdGhlIGxlYWYgbm9kZS5cbiAqLyBmdW5jdGlvbiBnZXRTZWxlY3RlZExheW91dFNlZ21lbnRQYXRoKHRyZWUsIHBhcmFsbGVsUm91dGVLZXksIGZpcnN0LCBzZWdtZW50UGF0aCkge1xuICAgIGlmIChmaXJzdCA9PT0gdm9pZCAwKSBmaXJzdCA9IHRydWU7XG4gICAgaWYgKHNlZ21lbnRQYXRoID09PSB2b2lkIDApIHNlZ21lbnRQYXRoID0gW107XG4gICAgbGV0IG5vZGU7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICAgIC8vIFVzZSB0aGUgcHJvdmlkZWQgcGFyYWxsZWwgcm91dGUga2V5IG9uIHRoZSBmaXJzdCBwYXJhbGxlbCByb3V0ZVxuICAgICAgICBub2RlID0gdHJlZVsxXVtwYXJhbGxlbFJvdXRlS2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBZnRlciBmaXJzdCBwYXJhbGxlbCByb3V0ZSBwcmVmZXIgY2hpbGRyZW4sIGlmIHRoZXJlJ3Mgbm8gY2hpbGRyZW4gcGljayB0aGUgZmlyc3QgcGFyYWxsZWwgcm91dGUuXG4gICAgICAgIGNvbnN0IHBhcmFsbGVsUm91dGVzID0gdHJlZVsxXTtcbiAgICAgICAgdmFyIF9wYXJhbGxlbFJvdXRlc19jaGlsZHJlbjtcbiAgICAgICAgbm9kZSA9IChfcGFyYWxsZWxSb3V0ZXNfY2hpbGRyZW4gPSBwYXJhbGxlbFJvdXRlcy5jaGlsZHJlbikgIT0gbnVsbCA/IF9wYXJhbGxlbFJvdXRlc19jaGlsZHJlbiA6IE9iamVjdC52YWx1ZXMocGFyYWxsZWxSb3V0ZXMpWzBdO1xuICAgIH1cbiAgICBpZiAoIW5vZGUpIHJldHVybiBzZWdtZW50UGF0aDtcbiAgICBjb25zdCBzZWdtZW50ID0gbm9kZVswXTtcbiAgICBjb25zdCBzZWdtZW50VmFsdWUgPSBnZXRTZWdtZW50VmFsdWUoc2VnbWVudCk7XG4gICAgaWYgKCFzZWdtZW50VmFsdWUgfHwgc2VnbWVudFZhbHVlLnN0YXJ0c1dpdGgoUEFHRV9TRUdNRU5UX0tFWSkpIHtcbiAgICAgICAgcmV0dXJuIHNlZ21lbnRQYXRoO1xuICAgIH1cbiAgICBzZWdtZW50UGF0aC5wdXNoKHNlZ21lbnRWYWx1ZSk7XG4gICAgcmV0dXJuIGdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgobm9kZSwgcGFyYWxsZWxSb3V0ZUtleSwgZmFsc2UsIHNlZ21lbnRQYXRoKTtcbn1cbi8vIFRPRE8tQVBQOiBFeHBhbmQgZGVzY3JpcHRpb24gd2hlbiB0aGUgZG9jcyBhcmUgd3JpdHRlbiBmb3IgaXQuXG4vKipcbiAqIEdldCB0aGUgY2Fub25pY2FsIHNlZ21lbnQgcGF0aCBmcm9tIHRoZSBjdXJyZW50IGxldmVsIHRvIHRoZSBsZWFmIG5vZGUuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMocGFyYWxsZWxSb3V0ZUtleSkge1xuICAgIGlmIChwYXJhbGxlbFJvdXRlS2V5ID09PSB2b2lkIDApIHBhcmFsbGVsUm91dGVLZXkgPSBcImNoaWxkcmVuXCI7XG4gICAgY2xpZW50SG9va0luU2VydmVyQ29tcG9uZW50RXJyb3IoXCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzXCIpO1xuICAgIGNvbnN0IHsgdHJlZSB9ID0gdXNlQ29udGV4dChMYXlvdXRSb3V0ZXJDb250ZXh0KTtcbiAgICByZXR1cm4gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aCh0cmVlLCBwYXJhbGxlbFJvdXRlS2V5KTtcbn1cbi8vIFRPRE8tQVBQOiBFeHBhbmQgZGVzY3JpcHRpb24gd2hlbiB0aGUgZG9jcyBhcmUgd3JpdHRlbiBmb3IgaXQuXG4vKipcbiAqIEdldCB0aGUgc2VnbWVudCBiZWxvdyB0aGUgY3VycmVudCBsZXZlbFxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQocGFyYWxsZWxSb3V0ZUtleSkge1xuICAgIGlmIChwYXJhbGxlbFJvdXRlS2V5ID09PSB2b2lkIDApIHBhcmFsbGVsUm91dGVLZXkgPSBcImNoaWxkcmVuXCI7XG4gICAgY2xpZW50SG9va0luU2VydmVyQ29tcG9uZW50RXJyb3IoXCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnRcIik7XG4gICAgY29uc3Qgc2VsZWN0ZWRMYXlvdXRTZWdtZW50cyA9IHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMocGFyYWxsZWxSb3V0ZUtleSk7XG4gICAgaWYgKHNlbGVjdGVkTGF5b3V0U2VnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWRMYXlvdXRTZWdtZW50c1swXTtcbn1cbmV4cG9ydCB7IHJlZGlyZWN0LCBwZXJtYW5lbnRSZWRpcmVjdCwgUmVkaXJlY3RUeXBlIH0gZnJvbSBcIi4vcmVkaXJlY3RcIjtcbmV4cG9ydCB7IG5vdEZvdW5kIH0gZnJvbSBcIi4vbm90LWZvdW5kXCI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5hdmlnYXRpb24uanMubWFwIl0sIm5hbWVzIjpbInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwiQXBwUm91dGVyQ29udGV4dCIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJMYXlvdXRSb3V0ZXJDb250ZXh0IiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsIlBhdGhuYW1lQ29udGV4dCIsIlBhdGhQYXJhbXNDb250ZXh0IiwiY2xpZW50SG9va0luU2VydmVyQ29tcG9uZW50RXJyb3IiLCJnZXRTZWdtZW50VmFsdWUiLCJQQUdFX1NFR01FTlRfS0VZIiwiSU5URVJOQUxfVVJMU0VBUkNIUEFSQU1TX0lOU1RBTkNFIiwiU3ltYm9sIiwicmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvciIsIkVycm9yIiwiUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMiLCJpdGVyYXRvciIsImFwcGVuZCIsImRlbGV0ZSIsInNldCIsInNvcnQiLCJjb25zdHJ1Y3RvciIsInVybFNlYXJjaFBhcmFtcyIsImVudHJpZXMiLCJiaW5kIiwiZm9yRWFjaCIsImdldCIsImdldEFsbCIsImhhcyIsImtleXMiLCJ2YWx1ZXMiLCJ0b1N0cmluZyIsInNpemUiLCJ1c2VTZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJyZWFkb25seVNlYXJjaFBhcmFtcyIsImJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyIsInJlcXVpcmUiLCJ1c2VQYXRobmFtZSIsIlNlcnZlckluc2VydGVkSFRNTENvbnRleHQiLCJ1c2VTZXJ2ZXJJbnNlcnRlZEhUTUwiLCJ1c2VSb3V0ZXIiLCJyb3V0ZXIiLCJnZXRTZWxlY3RlZFBhcmFtcyIsInRyZWUiLCJwYXJhbXMiLCJwYXJhbGxlbFJvdXRlcyIsInBhcmFsbGVsUm91dGUiLCJPYmplY3QiLCJzZWdtZW50IiwiaXNEeW5hbWljUGFyYW1ldGVyIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VnbWVudFZhbHVlIiwic3RhcnRzV2l0aCIsImlzQ2F0Y2hBbGwiLCJzcGxpdCIsInVzZVBhcmFtcyIsImdsb2JhbExheW91dFJvdXRlciIsInBhdGhQYXJhbXMiLCJnZXRTZWxlY3RlZExheW91dFNlZ21lbnRQYXRoIiwicGFyYWxsZWxSb3V0ZUtleSIsImZpcnN0Iiwic2VnbWVudFBhdGgiLCJub2RlIiwiX3BhcmFsbGVsUm91dGVzX2NoaWxkcmVuIiwiY2hpbGRyZW4iLCJwdXNoIiwidXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cyIsInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudCIsInNlbGVjdGVkTGF5b3V0U2VnbWVudHMiLCJsZW5ndGgiLCJyZWRpcmVjdCIsInBlcm1hbmVudFJlZGlyZWN0IiwiUmVkaXJlY3RUeXBlIiwibm90Rm91bmQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/navigation.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/not-found-boundary.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ NotFoundBoundary: () => (/* binding */ e0)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/not-found-boundary.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/not-found-boundary.js#NotFoundBoundary`);
-
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/not-found.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/not-found.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNotFoundError: () => (/* binding */ isNotFoundError),\n/* harmony export */ notFound: () => (/* binding */ notFound)\n/* harmony export */ });\nconst NOT_FOUND_ERROR_CODE = \"NEXT_NOT_FOUND\";\n/**\n * When used in a React server component, this will set the status code to 404.\n * When used in a custom app route it will just send a 404 status.\n */ function notFound() {\n // eslint-disable-next-line no-throw-literal\n const error = new Error(NOT_FOUND_ERROR_CODE);\n error.digest = NOT_FOUND_ERROR_CODE;\n throw error;\n}\n/**\n * Checks an error to determine if it's an error generated by the `notFound()`\n * helper.\n *\n * @param error the error that may reference a not found error\n * @returns true if the error is a not found error\n */ function isNotFoundError(error) {\n if (typeof error !== \"object\" || error === null || !(\"digest\" in error)) {\n return false;\n }\n return error.digest === NOT_FOUND_ERROR_CODE;\n} //# sourceMappingURL=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTUEsdUJBQXVCO0FBQzdCOzs7Q0FHQyxHQUFVLFNBQVNDO0lBQ2hCLDRDQUE0QztJQUM1QyxNQUFNQyxRQUFRLElBQUlDLE1BQU1IO0lBQ3hCRSxNQUFNRSxNQUFNLEdBQUdKO0lBQ2YsTUFBTUU7QUFDVjtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNHLGdCQUFnQkgsS0FBSztJQUNyQyxJQUFJLE9BQU9BLFVBQVUsWUFBWUEsVUFBVSxRQUFRLENBQUUsYUFBWUEsS0FBSSxHQUFJO1FBQ3JFLE9BQU87SUFDWDtJQUNBLE9BQU9BLE1BQU1FLE1BQU0sS0FBS0o7QUFDNUIsRUFFQSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC5qcz9iMGI4Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE5PVF9GT1VORF9FUlJPUl9DT0RFID0gXCJORVhUX05PVF9GT1VORFwiO1xuLyoqXG4gKiBXaGVuIHVzZWQgaW4gYSBSZWFjdCBzZXJ2ZXIgY29tcG9uZW50LCB0aGlzIHdpbGwgc2V0IHRoZSBzdGF0dXMgY29kZSB0byA0MDQuXG4gKiBXaGVuIHVzZWQgaW4gYSBjdXN0b20gYXBwIHJvdXRlIGl0IHdpbGwganVzdCBzZW5kIGEgNDA0IHN0YXR1cy5cbiAqLyBleHBvcnQgZnVuY3Rpb24gbm90Rm91bmQoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWxcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihOT1RfRk9VTkRfRVJST1JfQ09ERSk7XG4gICAgZXJyb3IuZGlnZXN0ID0gTk9UX0ZPVU5EX0VSUk9SX0NPREU7XG4gICAgdGhyb3cgZXJyb3I7XG59XG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlIGBub3RGb3VuZCgpYFxuICogaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgbm90IGZvdW5kIGVycm9yXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBlcnJvciBpcyBhIG5vdCBmb3VuZCBlcnJvclxuICovIGV4cG9ydCBmdW5jdGlvbiBpc05vdEZvdW5kRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIGVycm9yICE9PSBcIm9iamVjdFwiIHx8IGVycm9yID09PSBudWxsIHx8ICEoXCJkaWdlc3RcIiBpbiBlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3IuZGlnZXN0ID09PSBOT1RfRk9VTkRfRVJST1JfQ09ERTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm90LWZvdW5kLmpzLm1hcCJdLCJuYW1lcyI6WyJOT1RfRk9VTkRfRVJST1JfQ09ERSIsIm5vdEZvdW5kIiwiZXJyb3IiLCJFcnJvciIsImRpZ2VzdCIsImlzTm90Rm91bmRFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/not-found.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/redirect-status-code.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RedirectStatusCode: () => (/* binding */ RedirectStatusCode)\n/* harmony export */ });\nvar RedirectStatusCode;\n(function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n})(RedirectStatusCode || (RedirectStatusCode = {})); //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLElBQUlBLG1CQUFtQjtBQUM3QixVQUFTQSxrQkFBa0I7SUFDeEJBLGtCQUFrQixDQUFDQSxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHO0lBQzNEQSxrQkFBa0IsQ0FBQ0Esa0JBQWtCLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxHQUFHO0lBQ3BFQSxrQkFBa0IsQ0FBQ0Esa0JBQWtCLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxHQUFHO0FBQ3hFLEdBQUdBLHNCQUF1QkEsQ0FBQUEscUJBQXFCLENBQUMsS0FFaEQsZ0RBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS5qcz83ZWI4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgUmVkaXJlY3RTdGF0dXNDb2RlO1xuKGZ1bmN0aW9uKFJlZGlyZWN0U3RhdHVzQ29kZSkge1xuICAgIFJlZGlyZWN0U3RhdHVzQ29kZVtSZWRpcmVjdFN0YXR1c0NvZGVbXCJTZWVPdGhlclwiXSA9IDMwM10gPSBcIlNlZU90aGVyXCI7XG4gICAgUmVkaXJlY3RTdGF0dXNDb2RlW1JlZGlyZWN0U3RhdHVzQ29kZVtcIlRlbXBvcmFyeVJlZGlyZWN0XCJdID0gMzA3XSA9IFwiVGVtcG9yYXJ5UmVkaXJlY3RcIjtcbiAgICBSZWRpcmVjdFN0YXR1c0NvZGVbUmVkaXJlY3RTdGF0dXNDb2RlW1wiUGVybWFuZW50UmVkaXJlY3RcIl0gPSAzMDhdID0gXCJQZXJtYW5lbnRSZWRpcmVjdFwiO1xufSkoUmVkaXJlY3RTdGF0dXNDb2RlIHx8IChSZWRpcmVjdFN0YXR1c0NvZGUgPSB7fSkpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWRpcmVjdC1zdGF0dXMtY29kZS5qcy5tYXAiXSwibmFtZXMiOlsiUmVkaXJlY3RTdGF0dXNDb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/redirect.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/redirect.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RedirectType: () => (/* binding */ RedirectType),\n/* harmony export */ getRedirectError: () => (/* binding */ getRedirectError),\n/* harmony export */ getRedirectStatusCodeFromError: () => (/* binding */ getRedirectStatusCodeFromError),\n/* harmony export */ getRedirectTypeFromError: () => (/* binding */ getRedirectTypeFromError),\n/* harmony export */ getURLFromRedirectError: () => (/* binding */ getURLFromRedirectError),\n/* harmony export */ isRedirectError: () => (/* binding */ isRedirectError),\n/* harmony export */ permanentRedirect: () => (/* binding */ permanentRedirect),\n/* harmony export */ redirect: () => (/* binding */ redirect)\n/* harmony export */ });\n/* harmony import */ var _request_async_storage_external__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./request-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?ee1e\");\n/* harmony import */ var _action_async_storage_external__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./action-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/action-async-storage.external.js?eaaf\");\n/* harmony import */ var _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./redirect-status-code */ \"(rsc)/../../node_modules/next/dist/esm/client/components/redirect-status-code.js\");\n\n\n\nconst REDIRECT_ERROR_CODE = \"NEXT_REDIRECT\";\nvar RedirectType;\n(function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n})(RedirectType || (RedirectType = {}));\nfunction getRedirectError(url, type, statusCode) {\n if (statusCode === void 0) statusCode = _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.TemporaryRedirect;\n const error = new Error(REDIRECT_ERROR_CODE);\n error.digest = REDIRECT_ERROR_CODE + \";\" + type + \";\" + url + \";\" + statusCode + \";\";\n const requestStore = _request_async_storage_external__WEBPACK_IMPORTED_MODULE_0__.requestAsyncStorage.getStore();\n if (requestStore) {\n error.mutableCookies = requestStore.mutableCookies;\n }\n return error;\n}\n/**\n * When used in a streaming context, this will insert a meta tag to\n * redirect the user to the target page. When used in a custom app route, it\n * will serve a 307/303 to the caller.\n *\n * @param url the url to redirect to\n */ function redirect(url, type) {\n if (type === void 0) type = \"replace\";\n const actionStore = _action_async_storage_external__WEBPACK_IMPORTED_MODULE_1__.actionAsyncStorage.getStore();\n throw getRedirectError(url, type, // as we don't want the POST request to follow the redirect,\n // as it could result in erroneous re-submissions.\n (actionStore == null ? void 0 : actionStore.isAction) ? _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.SeeOther : _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.TemporaryRedirect);\n}\n/**\n * When used in a streaming context, this will insert a meta tag to\n * redirect the user to the target page. When used in a custom app route, it\n * will serve a 308/303 to the caller.\n *\n * @param url the url to redirect to\n */ function permanentRedirect(url, type) {\n if (type === void 0) type = \"replace\";\n const actionStore = _action_async_storage_external__WEBPACK_IMPORTED_MODULE_1__.actionAsyncStorage.getStore();\n throw getRedirectError(url, type, // as we don't want the POST request to follow the redirect,\n // as it could result in erroneous re-submissions.\n (actionStore == null ? void 0 : actionStore.isAction) ? _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.SeeOther : _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode.PermanentRedirect);\n}\n/**\n * Checks an error to determine if it's an error generated by the\n * `redirect(url)` helper.\n *\n * @param error the error that may reference a redirect error\n * @returns true if the error is a redirect error\n */ function isRedirectError(error) {\n if (typeof error !== \"object\" || error === null || !(\"digest\" in error) || typeof error.digest !== \"string\") {\n return false;\n }\n const [errorCode, type, destination, status] = error.digest.split(\";\", 4);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === \"replace\" || type === \"push\") && typeof destination === \"string\" && !isNaN(statusCode) && statusCode in _redirect_status_code__WEBPACK_IMPORTED_MODULE_2__.RedirectStatusCode;\n}\nfunction getURLFromRedirectError(error) {\n if (!isRedirectError(error)) return null;\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(\";\", 3)[2];\n}\nfunction getRedirectTypeFromError(error) {\n if (!isRedirectError(error)) {\n throw new Error(\"Not a redirect error\");\n }\n return error.digest.split(\";\", 2)[1];\n}\nfunction getRedirectStatusCodeFromError(error) {\n if (!isRedirectError(error)) {\n throw new Error(\"Not a redirect error\");\n }\n return Number(error.digest.split(\";\", 4)[3]);\n} //# sourceMappingURL=redirect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBdUU7QUFDRjtBQUNUO0FBQzVELE1BQU1HLHNCQUFzQjtBQUNyQixJQUFJQyxhQUFhO0FBQ3ZCLFVBQVNBLFlBQVk7SUFDbEJBLFlBQVksQ0FBQyxPQUFPLEdBQUc7SUFDdkJBLFlBQVksQ0FBQyxVQUFVLEdBQUc7QUFDOUIsR0FBR0EsZ0JBQWlCQSxDQUFBQSxlQUFlLENBQUM7QUFDN0IsU0FBU0MsaUJBQWlCQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsVUFBVTtJQUNsRCxJQUFJQSxlQUFlLEtBQUssR0FBR0EsYUFBYU4scUVBQWtCQSxDQUFDTyxpQkFBaUI7SUFDNUUsTUFBTUMsUUFBUSxJQUFJQyxNQUFNUjtJQUN4Qk8sTUFBTUUsTUFBTSxHQUFHVCxzQkFBc0IsTUFBTUksT0FBTyxNQUFNRCxNQUFNLE1BQU1FLGFBQWE7SUFDakYsTUFBTUssZUFBZWIsZ0ZBQW1CQSxDQUFDYyxRQUFRO0lBQ2pELElBQUlELGNBQWM7UUFDZEgsTUFBTUssY0FBYyxHQUFHRixhQUFhRSxjQUFjO0lBQ3REO0lBQ0EsT0FBT0w7QUFDWDtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNNLFNBQVNWLEdBQUcsRUFBRUMsSUFBSTtJQUNsQyxJQUFJQSxTQUFTLEtBQUssR0FBR0EsT0FBTztJQUM1QixNQUFNVSxjQUFjaEIsOEVBQWtCQSxDQUFDYSxRQUFRO0lBQy9DLE1BQU1ULGlCQUFpQkMsS0FBS0MsTUFHNUIsNERBRjREO0lBQzVELGtEQUFrRDtJQUNqRFUsQ0FBQUEsZUFBZSxPQUFPLEtBQUssSUFBSUEsWUFBWUMsUUFBUSxJQUFJaEIscUVBQWtCQSxDQUFDaUIsUUFBUSxHQUFHakIscUVBQWtCQSxDQUFDTyxpQkFBaUI7QUFDOUg7QUFDQTs7Ozs7O0NBTUMsR0FBVSxTQUFTVyxrQkFBa0JkLEdBQUcsRUFBRUMsSUFBSTtJQUMzQyxJQUFJQSxTQUFTLEtBQUssR0FBR0EsT0FBTztJQUM1QixNQUFNVSxjQUFjaEIsOEVBQWtCQSxDQUFDYSxRQUFRO0lBQy9DLE1BQU1ULGlCQUFpQkMsS0FBS0MsTUFHNUIsNERBRjREO0lBQzVELGtEQUFrRDtJQUNqRFUsQ0FBQUEsZUFBZSxPQUFPLEtBQUssSUFBSUEsWUFBWUMsUUFBUSxJQUFJaEIscUVBQWtCQSxDQUFDaUIsUUFBUSxHQUFHakIscUVBQWtCQSxDQUFDbUIsaUJBQWlCO0FBQzlIO0FBQ0E7Ozs7OztDQU1DLEdBQVUsU0FBU0MsZ0JBQWdCWixLQUFLO0lBQ3JDLElBQUksT0FBT0EsVUFBVSxZQUFZQSxVQUFVLFFBQVEsQ0FBRSxhQUFZQSxLQUFJLEtBQU0sT0FBT0EsTUFBTUUsTUFBTSxLQUFLLFVBQVU7UUFDekcsT0FBTztJQUNYO0lBQ0EsTUFBTSxDQUFDVyxXQUFXaEIsTUFBTWlCLGFBQWFDLE9BQU8sR0FBR2YsTUFBTUUsTUFBTSxDQUFDYyxLQUFLLENBQUMsS0FBSztJQUN2RSxNQUFNbEIsYUFBYW1CLE9BQU9GO0lBQzFCLE9BQU9GLGNBQWNwQix1QkFBd0JJLENBQUFBLFNBQVMsYUFBYUEsU0FBUyxNQUFLLEtBQU0sT0FBT2lCLGdCQUFnQixZQUFZLENBQUNJLE1BQU1wQixlQUFlQSxjQUFjTixxRUFBa0JBO0FBQ3BMO0FBQ08sU0FBUzJCLHdCQUF3Qm5CLEtBQUs7SUFDekMsSUFBSSxDQUFDWSxnQkFBZ0JaLFFBQVEsT0FBTztJQUNwQyx3RUFBd0U7SUFDeEUsa0JBQWtCO0lBQ2xCLE9BQU9BLE1BQU1FLE1BQU0sQ0FBQ2MsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7QUFDeEM7QUFDTyxTQUFTSSx5QkFBeUJwQixLQUFLO0lBQzFDLElBQUksQ0FBQ1ksZ0JBQWdCWixRQUFRO1FBQ3pCLE1BQU0sSUFBSUMsTUFBTTtJQUNwQjtJQUNBLE9BQU9ELE1BQU1FLE1BQU0sQ0FBQ2MsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7QUFDeEM7QUFDTyxTQUFTSywrQkFBK0JyQixLQUFLO0lBQ2hELElBQUksQ0FBQ1ksZ0JBQWdCWixRQUFRO1FBQ3pCLE1BQU0sSUFBSUMsTUFBTTtJQUNwQjtJQUNBLE9BQU9nQixPQUFPakIsTUFBTUUsTUFBTSxDQUFDYyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtBQUMvQyxFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QuanM/MDdhZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXF1ZXN0QXN5bmNTdG9yYWdlIH0gZnJvbSBcIi4vcmVxdWVzdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCI7XG5pbXBvcnQgeyBhY3Rpb25Bc3luY1N0b3JhZ2UgfSBmcm9tIFwiLi9hY3Rpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiO1xuaW1wb3J0IHsgUmVkaXJlY3RTdGF0dXNDb2RlIH0gZnJvbSBcIi4vcmVkaXJlY3Qtc3RhdHVzLWNvZGVcIjtcbmNvbnN0IFJFRElSRUNUX0VSUk9SX0NPREUgPSBcIk5FWFRfUkVESVJFQ1RcIjtcbmV4cG9ydCB2YXIgUmVkaXJlY3RUeXBlO1xuKGZ1bmN0aW9uKFJlZGlyZWN0VHlwZSkge1xuICAgIFJlZGlyZWN0VHlwZVtcInB1c2hcIl0gPSBcInB1c2hcIjtcbiAgICBSZWRpcmVjdFR5cGVbXCJyZXBsYWNlXCJdID0gXCJyZXBsYWNlXCI7XG59KShSZWRpcmVjdFR5cGUgfHwgKFJlZGlyZWN0VHlwZSA9IHt9KSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkaXJlY3RFcnJvcih1cmwsIHR5cGUsIHN0YXR1c0NvZGUpIHtcbiAgICBpZiAoc3RhdHVzQ29kZSA9PT0gdm9pZCAwKSBzdGF0dXNDb2RlID0gUmVkaXJlY3RTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0O1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFJFRElSRUNUX0VSUk9SX0NPREUpO1xuICAgIGVycm9yLmRpZ2VzdCA9IFJFRElSRUNUX0VSUk9SX0NPREUgKyBcIjtcIiArIHR5cGUgKyBcIjtcIiArIHVybCArIFwiO1wiICsgc3RhdHVzQ29kZSArIFwiO1wiO1xuICAgIGNvbnN0IHJlcXVlc3RTdG9yZSA9IHJlcXVlc3RBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAocmVxdWVzdFN0b3JlKSB7XG4gICAgICAgIGVycm9yLm11dGFibGVDb29raWVzID0gcmVxdWVzdFN0b3JlLm11dGFibGVDb29raWVzO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3I7XG59XG4vKipcbiAqIFdoZW4gdXNlZCBpbiBhIHN0cmVhbWluZyBjb250ZXh0LCB0aGlzIHdpbGwgaW5zZXJ0IGEgbWV0YSB0YWcgdG9cbiAqIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS4gV2hlbiB1c2VkIGluIGEgY3VzdG9tIGFwcCByb3V0ZSwgaXRcbiAqIHdpbGwgc2VydmUgYSAzMDcvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKlxuICogQHBhcmFtIHVybCB0aGUgdXJsIHRvIHJlZGlyZWN0IHRvXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlZGlyZWN0KHVybCwgdHlwZSkge1xuICAgIGlmICh0eXBlID09PSB2b2lkIDApIHR5cGUgPSBcInJlcGxhY2VcIjtcbiAgICBjb25zdCBhY3Rpb25TdG9yZSA9IGFjdGlvbkFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIHRocm93IGdldFJlZGlyZWN0RXJyb3IodXJsLCB0eXBlLCAvLyBJZiB3ZSdyZSBpbiBhbiBhY3Rpb24sIHdlIHdhbnQgdG8gdXNlIGEgMzAzIHJlZGlyZWN0XG4gICAgLy8gYXMgd2UgZG9uJ3Qgd2FudCB0aGUgUE9TVCByZXF1ZXN0IHRvIGZvbGxvdyB0aGUgcmVkaXJlY3QsXG4gICAgLy8gYXMgaXQgY291bGQgcmVzdWx0IGluIGVycm9uZW91cyByZS1zdWJtaXNzaW9ucy5cbiAgICAoYWN0aW9uU3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IGFjdGlvblN0b3JlLmlzQWN0aW9uKSA/IFJlZGlyZWN0U3RhdHVzQ29kZS5TZWVPdGhlciA6IFJlZGlyZWN0U3RhdHVzQ29kZS5UZW1wb3JhcnlSZWRpcmVjdCk7XG59XG4vKipcbiAqIFdoZW4gdXNlZCBpbiBhIHN0cmVhbWluZyBjb250ZXh0LCB0aGlzIHdpbGwgaW5zZXJ0IGEgbWV0YSB0YWcgdG9cbiAqIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS4gV2hlbiB1c2VkIGluIGEgY3VzdG9tIGFwcCByb3V0ZSwgaXRcbiAqIHdpbGwgc2VydmUgYSAzMDgvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKlxuICogQHBhcmFtIHVybCB0aGUgdXJsIHRvIHJlZGlyZWN0IHRvXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHBlcm1hbmVudFJlZGlyZWN0KHVybCwgdHlwZSkge1xuICAgIGlmICh0eXBlID09PSB2b2lkIDApIHR5cGUgPSBcInJlcGxhY2VcIjtcbiAgICBjb25zdCBhY3Rpb25TdG9yZSA9IGFjdGlvbkFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIHRocm93IGdldFJlZGlyZWN0RXJyb3IodXJsLCB0eXBlLCAvLyBJZiB3ZSdyZSBpbiBhbiBhY3Rpb24sIHdlIHdhbnQgdG8gdXNlIGEgMzAzIHJlZGlyZWN0XG4gICAgLy8gYXMgd2UgZG9uJ3Qgd2FudCB0aGUgUE9TVCByZXF1ZXN0IHRvIGZvbGxvdyB0aGUgcmVkaXJlY3QsXG4gICAgLy8gYXMgaXQgY291bGQgcmVzdWx0IGluIGVycm9uZW91cyByZS1zdWJtaXNzaW9ucy5cbiAgICAoYWN0aW9uU3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IGFjdGlvblN0b3JlLmlzQWN0aW9uKSA/IFJlZGlyZWN0U3RhdHVzQ29kZS5TZWVPdGhlciA6IFJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCk7XG59XG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqLyBleHBvcnQgZnVuY3Rpb24gaXNSZWRpcmVjdEVycm9yKGVycm9yKSB7XG4gICAgaWYgKHR5cGVvZiBlcnJvciAhPT0gXCJvYmplY3RcIiB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKFwiZGlnZXN0XCIgaW4gZXJyb3IpIHx8IHR5cGVvZiBlcnJvci5kaWdlc3QgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBbZXJyb3JDb2RlLCB0eXBlLCBkZXN0aW5hdGlvbiwgc3RhdHVzXSA9IGVycm9yLmRpZ2VzdC5zcGxpdChcIjtcIiwgNCk7XG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IE51bWJlcihzdGF0dXMpO1xuICAgIHJldHVybiBlcnJvckNvZGUgPT09IFJFRElSRUNUX0VSUk9SX0NPREUgJiYgKHR5cGUgPT09IFwicmVwbGFjZVwiIHx8IHR5cGUgPT09IFwicHVzaFwiKSAmJiB0eXBlb2YgZGVzdGluYXRpb24gPT09IFwic3RyaW5nXCIgJiYgIWlzTmFOKHN0YXR1c0NvZGUpICYmIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFVSTEZyb21SZWRpcmVjdEVycm9yKGVycm9yKSB7XG4gICAgaWYgKCFpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSByZXR1cm4gbnVsbDtcbiAgICAvLyBTbGljZXMgb2ZmIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRpZ2VzdCB0aGF0IGNvbnRhaW5zIHRoZSBjb2RlIGFuZCB0aGVcbiAgICAvLyBzZXBhcmF0aW5nICc7Jy5cbiAgICByZXR1cm4gZXJyb3IuZGlnZXN0LnNwbGl0KFwiO1wiLCAzKVsyXTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAoIWlzUmVkaXJlY3RFcnJvcihlcnJvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGEgcmVkaXJlY3QgZXJyb3JcIik7XG4gICAgfVxuICAgIHJldHVybiBlcnJvci5kaWdlc3Quc3BsaXQoXCI7XCIsIDIpWzFdO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZGlyZWN0U3RhdHVzQ29kZUZyb21FcnJvcihlcnJvcikge1xuICAgIGlmICghaXNSZWRpcmVjdEVycm9yKGVycm9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb3QgYSByZWRpcmVjdCBlcnJvclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIE51bWJlcihlcnJvci5kaWdlc3Quc3BsaXQoXCI7XCIsIDQpWzNdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVkaXJlY3QuanMubWFwIl0sIm5hbWVzIjpbInJlcXVlc3RBc3luY1N0b3JhZ2UiLCJhY3Rpb25Bc3luY1N0b3JhZ2UiLCJSZWRpcmVjdFN0YXR1c0NvZGUiLCJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiZ2V0UmVkaXJlY3RFcnJvciIsInVybCIsInR5cGUiLCJzdGF0dXNDb2RlIiwiVGVtcG9yYXJ5UmVkaXJlY3QiLCJlcnJvciIsIkVycm9yIiwiZGlnZXN0IiwicmVxdWVzdFN0b3JlIiwiZ2V0U3RvcmUiLCJtdXRhYmxlQ29va2llcyIsInJlZGlyZWN0IiwiYWN0aW9uU3RvcmUiLCJpc0FjdGlvbiIsIlNlZU90aGVyIiwicGVybWFuZW50UmVkaXJlY3QiLCJQZXJtYW5lbnRSZWRpcmVjdCIsImlzUmVkaXJlY3RFcnJvciIsImVycm9yQ29kZSIsImRlc3RpbmF0aW9uIiwic3RhdHVzIiwic3BsaXQiLCJOdW1iZXIiLCJpc05hTiIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwiZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/redirect.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/render-from-template-context.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/render-from-template-context.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
-/* harmony export */ __esModule: () => (/* binding */ __esModule),
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/render-from-template-context.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js":
-/*!*******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js ***!
- \*******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getSegmentValue: () => (/* binding */ getSegmentValue)\n/* harmony export */ });\nfunction getSegmentValue(segment) {\n return Array.isArray(segment) ? segment[1] : segment;\n} //# sourceMappingURL=get-segment-value.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLGdCQUFnQkMsT0FBTztJQUNuQyxPQUFPQyxNQUFNQyxPQUFPLENBQUNGLFdBQVdBLE9BQU8sQ0FBQyxFQUFFLEdBQUdBO0FBQ2pELEVBRUEsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9nZXQtc2VnbWVudC12YWx1ZS5qcz84MTRiIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRTZWdtZW50VmFsdWUoc2VnbWVudCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHNlZ21lbnQpID8gc2VnbWVudFsxXSA6IHNlZ21lbnQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1zZWdtZW50LXZhbHVlLmpzLm1hcCJdLCJuYW1lcyI6WyJnZXRTZWdtZW50VmFsdWUiLCJzZWdtZW50IiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js":
-/*!****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js ***!
- \****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createSearchParamsBailoutProxy: () => (/* binding */ createSearchParamsBailoutProxy)\n/* harmony export */ });\n/* harmony import */ var _static_generation_bailout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./static-generation-bailout */ \"(rsc)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js\");\n\nfunction createSearchParamsBailoutProxy() {\n return new Proxy({}, {\n get (_target, prop) {\n // React adds some properties on the object when serializing for client components\n if (typeof prop === \"string\") {\n (0,_static_generation_bailout__WEBPACK_IMPORTED_MODULE_0__.staticGenerationBailout)(\"searchParams.\" + prop);\n }\n }\n });\n} //# sourceMappingURL=searchparams-bailout-proxy.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJveHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBc0U7QUFDL0QsU0FBU0M7SUFDWixPQUFPLElBQUlDLE1BQU0sQ0FBQyxHQUFHO1FBQ2pCQyxLQUFLQyxPQUFPLEVBQUVDLElBQUk7WUFDZCxrRkFBa0Y7WUFDbEYsSUFBSSxPQUFPQSxTQUFTLFVBQVU7Z0JBQzFCTCxtRkFBdUJBLENBQUMsa0JBQWtCSztZQUM5QztRQUNKO0lBQ0o7QUFDSixFQUVBLHNEQUFzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJveHkuanM/NjI2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGF0aWNHZW5lcmF0aW9uQmFpbG91dCB9IGZyb20gXCIuL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXRcIjtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWFyY2hQYXJhbXNCYWlsb3V0UHJveHkoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm94eSh7fSwge1xuICAgICAgICBnZXQgKF90YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFJlYWN0IGFkZHMgc29tZSBwcm9wZXJ0aWVzIG9uIHRoZSBvYmplY3Qgd2hlbiBzZXJpYWxpemluZyBmb3IgY2xpZW50IGNvbXBvbmVudHNcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25CYWlsb3V0KFwic2VhcmNoUGFyYW1zLlwiICsgcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VhcmNocGFyYW1zLWJhaWxvdXQtcHJveHkuanMubWFwIl0sIm5hbWVzIjpbInN0YXRpY0dlbmVyYXRpb25CYWlsb3V0IiwiY3JlYXRlU2VhcmNoUGFyYW1zQmFpbG91dFByb3h5IiwiUHJveHkiLCJnZXQiLCJfdGFyZ2V0IiwicHJvcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/static-generation-bailout.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isStaticGenBailoutError: () => (/* binding */ isStaticGenBailoutError),\n/* harmony export */ staticGenerationBailout: () => (/* binding */ staticGenerationBailout)\n/* harmony export */ });\n/* harmony import */ var _hooks_server_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hooks-server-context */ \"(rsc)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js\");\n/* harmony import */ var _static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./static-generation-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?926a\");\n\n\nconst NEXT_STATIC_GEN_BAILOUT = \"NEXT_STATIC_GEN_BAILOUT\";\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args);\n this.code = NEXT_STATIC_GEN_BAILOUT;\n }\n}\nfunction isStaticGenBailoutError(error) {\n if (typeof error !== \"object\" || error === null || !(\"code\" in error)) {\n return false;\n }\n return error.code === NEXT_STATIC_GEN_BAILOUT;\n}\nfunction formatErrorMessage(reason, opts) {\n const { dynamic, link } = opts || {};\n const suffix = link ? \" See more info here: \" + link : \"\";\n return \"Page\" + (dynamic ? ' with `dynamic = \"' + dynamic + '\"`' : \"\") + \" couldn't be rendered statically because it used `\" + reason + \"`.\" + suffix;\n}\nconst staticGenerationBailout = (reason, param)=>{\n let { dynamic, link } = param === void 0 ? {} : param;\n const staticGenerationStore = _static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_1__.staticGenerationAsyncStorage.getStore();\n if (!staticGenerationStore) return false;\n if (staticGenerationStore.forceStatic) {\n return true;\n }\n if (staticGenerationStore.dynamicShouldError) {\n throw new StaticGenBailoutError(formatErrorMessage(reason, {\n link,\n dynamic: dynamic != null ? dynamic : \"error\"\n }));\n }\n const message = formatErrorMessage(reason, {\n dynamic,\n // this error should be caught by Next to bail out of static generation\n // in case it's uncaught, this link provides some additional context as to why\n link: \"https://nextjs.org/docs/messages/dynamic-server-error\"\n });\n // If postpone is available, we should postpone the render.\n staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, reason);\n // As this is a bailout, we don't want to revalidate, so set the revalidate\n // to 0.\n staticGenerationStore.revalidate = 0;\n if (staticGenerationStore.isStaticGeneration) {\n const err = new _hooks_server_context__WEBPACK_IMPORTED_MODULE_0__.DynamicServerError(message);\n staticGenerationStore.dynamicUsageDescription = reason;\n staticGenerationStore.dynamicUsageStack = err.stack;\n throw err;\n }\n return false;\n}; //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTREO0FBQzhCO0FBQzFGLE1BQU1FLDBCQUEwQjtBQUNoQyxNQUFNQyw4QkFBOEJDO0lBQ2hDQyxZQUFZLEdBQUdDLElBQUksQ0FBQztRQUNoQixLQUFLLElBQUlBO1FBQ1QsSUFBSSxDQUFDQyxJQUFJLEdBQUdMO0lBQ2hCO0FBQ0o7QUFDTyxTQUFTTSx3QkFBd0JDLEtBQUs7SUFDekMsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUksR0FBSTtRQUNuRSxPQUFPO0lBQ1g7SUFDQSxPQUFPQSxNQUFNRixJQUFJLEtBQUtMO0FBQzFCO0FBQ0EsU0FBU1EsbUJBQW1CQyxNQUFNLEVBQUVDLElBQUk7SUFDcEMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRSxHQUFHRixRQUFRLENBQUM7SUFDbkMsTUFBTUcsU0FBU0QsT0FBTywwQkFBMEJBLE9BQU87SUFDdkQsT0FBTyxTQUFVRCxDQUFBQSxVQUFVLHVCQUF1QkEsVUFBVSxPQUFPLEVBQUMsSUFBSyx1REFBdURGLFNBQVMsT0FBT0k7QUFDcEo7QUFDTyxNQUFNQywwQkFBMEIsQ0FBQ0wsUUFBUU07SUFDNUMsSUFBSSxFQUFFSixPQUFPLEVBQUVDLElBQUksRUFBRSxHQUFHRyxVQUFVLEtBQUssSUFBSSxDQUFDLElBQUlBO0lBQ2hELE1BQU1DLHdCQUF3QmpCLG1HQUE0QkEsQ0FBQ2tCLFFBQVE7SUFDbkUsSUFBSSxDQUFDRCx1QkFBdUIsT0FBTztJQUNuQyxJQUFJQSxzQkFBc0JFLFdBQVcsRUFBRTtRQUNuQyxPQUFPO0lBQ1g7SUFDQSxJQUFJRixzQkFBc0JHLGtCQUFrQixFQUFFO1FBQzFDLE1BQU0sSUFBSWxCLHNCQUFzQk8sbUJBQW1CQyxRQUFRO1lBQ3ZERztZQUNBRCxTQUFTQSxXQUFXLE9BQU9BLFVBQVU7UUFDekM7SUFDSjtJQUNBLE1BQU1TLFVBQVVaLG1CQUFtQkMsUUFBUTtRQUN2Q0U7UUFDQSx1RUFBdUU7UUFDdkUsOEVBQThFO1FBQzlFQyxNQUFNO0lBQ1Y7SUFDQSwyREFBMkQ7SUFDM0RJLHNCQUFzQkssUUFBUSxJQUFJLE9BQU8sS0FBSyxJQUFJTCxzQkFBc0JLLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDTix1QkFBdUJQO0lBQzdHLDJFQUEyRTtJQUMzRSxRQUFRO0lBQ1JPLHNCQUFzQk8sVUFBVSxHQUFHO0lBQ25DLElBQUlQLHNCQUFzQlEsa0JBQWtCLEVBQUU7UUFDMUMsTUFBTUMsTUFBTSxJQUFJM0IscUVBQWtCQSxDQUFDc0I7UUFDbkNKLHNCQUFzQlUsdUJBQXVCLEdBQUdqQjtRQUNoRE8sc0JBQXNCVyxpQkFBaUIsR0FBR0YsSUFBSUcsS0FBSztRQUNuRCxNQUFNSDtJQUNWO0lBQ0EsT0FBTztBQUNYLEVBQUUsQ0FFRixxREFBcUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanM/YTQxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljU2VydmVyRXJyb3IgfSBmcm9tIFwiLi9ob29rcy1zZXJ2ZXItY29udGV4dFwiO1xuaW1wb3J0IHsgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZSB9IGZyb20gXCIuL3N0YXRpYy1nZW5lcmF0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIjtcbmNvbnN0IE5FWFRfU1RBVElDX0dFTl9CQUlMT1VUID0gXCJORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFwiO1xuY2xhc3MgU3RhdGljR2VuQmFpbG91dEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3Mpe1xuICAgICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgICAgdGhpcy5jb2RlID0gTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQ7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGljR2VuQmFpbG91dEVycm9yKGVycm9yKSB7XG4gICAgaWYgKHR5cGVvZiBlcnJvciAhPT0gXCJvYmplY3RcIiB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKFwiY29kZVwiIGluIGVycm9yKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBlcnJvci5jb2RlID09PSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVDtcbn1cbmZ1bmN0aW9uIGZvcm1hdEVycm9yTWVzc2FnZShyZWFzb24sIG9wdHMpIHtcbiAgICBjb25zdCB7IGR5bmFtaWMsIGxpbmsgfSA9IG9wdHMgfHwge307XG4gICAgY29uc3Qgc3VmZml4ID0gbGluayA/IFwiIFNlZSBtb3JlIGluZm8gaGVyZTogXCIgKyBsaW5rIDogXCJcIjtcbiAgICByZXR1cm4gXCJQYWdlXCIgKyAoZHluYW1pYyA/ICcgd2l0aCBgZHluYW1pYyA9IFwiJyArIGR5bmFtaWMgKyAnXCJgJyA6IFwiXCIpICsgXCIgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgYFwiICsgcmVhc29uICsgXCJgLlwiICsgc3VmZml4O1xufVxuZXhwb3J0IGNvbnN0IHN0YXRpY0dlbmVyYXRpb25CYWlsb3V0ID0gKHJlYXNvbiwgcGFyYW0pPT57XG4gICAgbGV0IHsgZHluYW1pYywgbGluayB9ID0gcGFyYW0gPT09IHZvaWQgMCA/IHt9IDogcGFyYW07XG4gICAgY29uc3Qgc3RhdGljR2VuZXJhdGlvblN0b3JlID0gc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICghc3RhdGljR2VuZXJhdGlvblN0b3JlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihmb3JtYXRFcnJvck1lc3NhZ2UocmVhc29uLCB7XG4gICAgICAgICAgICBsaW5rLFxuICAgICAgICAgICAgZHluYW1pYzogZHluYW1pYyAhPSBudWxsID8gZHluYW1pYyA6IFwiZXJyb3JcIlxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UocmVhc29uLCB7XG4gICAgICAgIGR5bmFtaWMsXG4gICAgICAgIC8vIHRoaXMgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBieSBOZXh0IHRvIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uXG4gICAgICAgIC8vIGluIGNhc2UgaXQncyB1bmNhdWdodCwgdGhpcyBsaW5rIHByb3ZpZGVzIHNvbWUgYWRkaXRpb25hbCBjb250ZXh0IGFzIHRvIHdoeVxuICAgICAgICBsaW5rOiBcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yXCJcbiAgICB9KTtcbiAgICAvLyBJZiBwb3N0cG9uZSBpcyBhdmFpbGFibGUsIHdlIHNob3VsZCBwb3N0cG9uZSB0aGUgcmVuZGVyLlxuICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5wb3N0cG9uZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lLmNhbGwoc3RhdGljR2VuZXJhdGlvblN0b3JlLCByZWFzb24pO1xuICAgIC8vIEFzIHRoaXMgaXMgYSBiYWlsb3V0LCB3ZSBkb24ndCB3YW50IHRvIHJldmFsaWRhdGUsIHNvIHNldCB0aGUgcmV2YWxpZGF0ZVxuICAgIC8vIHRvIDAuXG4gICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGUgPSAwO1xuICAgIGlmIChzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBEeW5hbWljU2VydmVyRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5keW5hbWljVXNhZ2VEZXNjcmlwdGlvbiA9IHJlYXNvbjtcbiAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZVN0YWNrID0gZXJyLnN0YWNrO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMubWFwIl0sIm5hbWVzIjpbIkR5bmFtaWNTZXJ2ZXJFcnJvciIsInN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UiLCJORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCIsIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJhcmdzIiwiY29kZSIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiZXJyb3IiLCJmb3JtYXRFcnJvck1lc3NhZ2UiLCJyZWFzb24iLCJvcHRzIiwiZHluYW1pYyIsImxpbmsiLCJzdWZmaXgiLCJzdGF0aWNHZW5lcmF0aW9uQmFpbG91dCIsInBhcmFtIiwic3RhdGljR2VuZXJhdGlvblN0b3JlIiwiZ2V0U3RvcmUiLCJmb3JjZVN0YXRpYyIsImR5bmFtaWNTaG91bGRFcnJvciIsIm1lc3NhZ2UiLCJwb3N0cG9uZSIsImNhbGwiLCJyZXZhbGlkYXRlIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwiZXJyIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJkeW5hbWljVXNhZ2VTdGFjayIsInN0YWNrIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":
-/*!*************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js ***!
- \*************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
-/* harmony export */ __esModule: () => (/* binding */ __esModule),
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/client/image-component.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/image-component.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ Image: () => (/* binding */ e0)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/image-component.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/image-component.js#Image`);
-
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/lib/constants.js":
-/*!*********************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/constants.js ***!
- \*********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ APP_DIR_ALIAS: () => (/* binding */ APP_DIR_ALIAS),\n/* harmony export */ CACHE_ONE_YEAR: () => (/* binding */ CACHE_ONE_YEAR),\n/* harmony export */ DOT_NEXT_ALIAS: () => (/* binding */ DOT_NEXT_ALIAS),\n/* harmony export */ ESLINT_DEFAULT_DIRS: () => (/* binding */ ESLINT_DEFAULT_DIRS),\n/* harmony export */ ESLINT_PROMPT_VALUES: () => (/* binding */ ESLINT_PROMPT_VALUES),\n/* harmony export */ GSP_NO_RETURNED_VALUE: () => (/* binding */ GSP_NO_RETURNED_VALUE),\n/* harmony export */ GSSP_COMPONENT_MEMBER_ERROR: () => (/* binding */ GSSP_COMPONENT_MEMBER_ERROR),\n/* harmony export */ GSSP_NO_RETURNED_VALUE: () => (/* binding */ GSSP_NO_RETURNED_VALUE),\n/* harmony export */ INSTRUMENTATION_HOOK_FILENAME: () => (/* binding */ INSTRUMENTATION_HOOK_FILENAME),\n/* harmony export */ MIDDLEWARE_FILENAME: () => (/* binding */ MIDDLEWARE_FILENAME),\n/* harmony export */ MIDDLEWARE_LOCATION_REGEXP: () => (/* binding */ MIDDLEWARE_LOCATION_REGEXP),\n/* harmony export */ NEXT_BODY_SUFFIX: () => (/* binding */ NEXT_BODY_SUFFIX),\n/* harmony export */ NEXT_CACHE_IMPLICIT_TAG_ID: () => (/* binding */ NEXT_CACHE_IMPLICIT_TAG_ID),\n/* harmony export */ NEXT_CACHE_REVALIDATED_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_REVALIDATED_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: () => (/* binding */ NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER),\n/* harmony export */ NEXT_CACHE_SOFT_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_SOFT_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_SOFT_TAG_MAX_LENGTH: () => (/* binding */ NEXT_CACHE_SOFT_TAG_MAX_LENGTH),\n/* harmony export */ NEXT_CACHE_TAGS_HEADER: () => (/* binding */ NEXT_CACHE_TAGS_HEADER),\n/* harmony export */ NEXT_CACHE_TAG_MAX_LENGTH: () => (/* binding */ NEXT_CACHE_TAG_MAX_LENGTH),\n/* harmony export */ NEXT_DATA_SUFFIX: () => (/* binding */ NEXT_DATA_SUFFIX),\n/* harmony export */ NEXT_META_SUFFIX: () => (/* binding */ NEXT_META_SUFFIX),\n/* harmony export */ NEXT_QUERY_PARAM_PREFIX: () => (/* binding */ NEXT_QUERY_PARAM_PREFIX),\n/* harmony export */ NON_STANDARD_NODE_ENV: () => (/* binding */ NON_STANDARD_NODE_ENV),\n/* harmony export */ PAGES_DIR_ALIAS: () => (/* binding */ PAGES_DIR_ALIAS),\n/* harmony export */ PRERENDER_REVALIDATE_HEADER: () => (/* binding */ PRERENDER_REVALIDATE_HEADER),\n/* harmony export */ PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: () => (/* binding */ PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER),\n/* harmony export */ PUBLIC_DIR_MIDDLEWARE_CONFLICT: () => (/* binding */ PUBLIC_DIR_MIDDLEWARE_CONFLICT),\n/* harmony export */ ROOT_DIR_ALIAS: () => (/* binding */ ROOT_DIR_ALIAS),\n/* harmony export */ RSC_ACTION_CLIENT_WRAPPER_ALIAS: () => (/* binding */ RSC_ACTION_CLIENT_WRAPPER_ALIAS),\n/* harmony export */ RSC_ACTION_ENCRYPTION_ALIAS: () => (/* binding */ RSC_ACTION_ENCRYPTION_ALIAS),\n/* harmony export */ RSC_ACTION_PROXY_ALIAS: () => (/* binding */ RSC_ACTION_PROXY_ALIAS),\n/* harmony export */ RSC_ACTION_VALIDATE_ALIAS: () => (/* binding */ RSC_ACTION_VALIDATE_ALIAS),\n/* harmony export */ RSC_MOD_REF_PROXY_ALIAS: () => (/* binding */ RSC_MOD_REF_PROXY_ALIAS),\n/* harmony export */ RSC_PREFETCH_SUFFIX: () => (/* binding */ RSC_PREFETCH_SUFFIX),\n/* harmony export */ RSC_SUFFIX: () => (/* binding */ RSC_SUFFIX),\n/* harmony export */ SERVER_PROPS_EXPORT_ERROR: () => (/* binding */ SERVER_PROPS_EXPORT_ERROR),\n/* harmony export */ SERVER_PROPS_GET_INIT_PROPS_CONFLICT: () => (/* binding */ SERVER_PROPS_GET_INIT_PROPS_CONFLICT),\n/* harmony export */ SERVER_PROPS_SSG_CONFLICT: () => (/* binding */ SERVER_PROPS_SSG_CONFLICT),\n/* harmony export */ SERVER_RUNTIME: () => (/* binding */ SERVER_RUNTIME),\n/* harmony export */ SSG_FALLBACK_EXPORT_ERROR: () => (/* binding */ SSG_FALLBACK_EXPORT_ERROR),\n/* harmony export */ SSG_GET_INITIAL_PROPS_CONFLICT: () => (/* binding */ SSG_GET_INITIAL_PROPS_CONFLICT),\n/* harmony export */ STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: () => (/* binding */ STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR),\n/* harmony export */ UNSTABLE_REVALIDATE_RENAME_ERROR: () => (/* binding */ UNSTABLE_REVALIDATE_RENAME_ERROR),\n/* harmony export */ WEBPACK_LAYERS: () => (/* binding */ WEBPACK_LAYERS),\n/* harmony export */ WEBPACK_RESOURCE_QUERIES: () => (/* binding */ WEBPACK_RESOURCE_QUERIES)\n/* harmony export */ });\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst PRERENDER_REVALIDATE_HEADER = \"x-prerender-revalidate\";\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = \"x-prerender-revalidate-if-generated\";\nconst RSC_PREFETCH_SUFFIX = \".prefetch.rsc\";\nconst RSC_SUFFIX = \".rsc\";\nconst NEXT_DATA_SUFFIX = \".json\";\nconst NEXT_META_SUFFIX = \".meta\";\nconst NEXT_BODY_SUFFIX = \".body\";\nconst NEXT_CACHE_TAGS_HEADER = \"x-next-cache-tags\";\nconst NEXT_CACHE_SOFT_TAGS_HEADER = \"x-next-cache-soft-tags\";\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = \"x-next-revalidated-tags\";\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = \"x-next-revalidate-tag-token\";\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = \"_N_T_\";\n// in seconds\nconst CACHE_ONE_YEAR = 31536000;\n// Patterns to detect middleware files\nconst MIDDLEWARE_FILENAME = \"middleware\";\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\n// Pattern to detect instrumentation hooks file\nconst INSTRUMENTATION_HOOK_FILENAME = \"instrumentation\";\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nconst PAGES_DIR_ALIAS = \"private-next-pages\";\nconst DOT_NEXT_ALIAS = \"private-dot-next\";\nconst ROOT_DIR_ALIAS = \"private-next-root-dir\";\nconst APP_DIR_ALIAS = \"private-next-app-dir\";\nconst RSC_MOD_REF_PROXY_ALIAS = \"next/dist/build/webpack/loaders/next-flight-loader/module-proxy\";\nconst RSC_ACTION_VALIDATE_ALIAS = \"private-next-rsc-action-validate\";\nconst RSC_ACTION_PROXY_ALIAS = \"private-next-rsc-action-proxy\";\nconst RSC_ACTION_ENCRYPTION_ALIAS = \"private-next-rsc-action-encryption\";\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = \"private-next-rsc-action-client-wrapper\";\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = \"Your `getStaticProps` function did not return an object. Did you forget to add a `return`?\";\nconst GSSP_NO_RETURNED_VALUE = \"Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?\";\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = \"The `unstable_revalidate` property is available for general use.\\n\" + \"Please use `revalidate` instead.\";\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n \"app\",\n \"pages\",\n \"components\",\n \"lib\",\n \"src\"\n];\nconst ESLINT_PROMPT_VALUES = [\n {\n title: \"Strict\",\n recommended: true,\n config: {\n extends: \"next/core-web-vitals\"\n }\n },\n {\n title: \"Base\",\n config: {\n extends: \"next\"\n }\n },\n {\n title: \"Cancel\",\n config: null\n }\n];\nconst SERVER_RUNTIME = {\n edge: \"edge\",\n experimentalEdge: \"experimental-edge\",\n nodejs: \"nodejs\"\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: \"shared\",\n /**\n * React Server Components layer (rsc).\n */ reactServerComponents: \"rsc\",\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: \"ssr\",\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: \"action-browser\",\n /**\n * The layer for the API routes.\n */ api: \"api\",\n /**\n * The layer for the middleware code.\n */ middleware: \"middleware\",\n /**\n * The layer for assets on the edge.\n */ edgeAsset: \"edge-asset\",\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: \"app-pages-browser\",\n /**\n * The server bundle layer for metadata routes.\n */ appMetadataRoute: \"app-metadata-route\",\n /**\n * The layer for the server bundle for App Route handlers.\n */ appRouteHandler: \"app-route-handler\"\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n server: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler\n ],\n nonClientServerTarget: [\n // plus middleware and pages api\n WEBPACK_LAYERS_NAMES.middleware,\n WEBPACK_LAYERS_NAMES.api\n ],\n app: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: \"__next_edge_ssr_entry__\",\n metadata: \"__next_metadata__\",\n metadataRoute: \"__next_metadata_route__\",\n metadataImageMeta: \"__next_metadata_image_meta__\"\n};\n //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSwwQkFBMEIsT0FBTztBQUN2QyxNQUFNQyw4QkFBOEIseUJBQXlCO0FBQzdELE1BQU1DLDZDQUE2QyxzQ0FBc0M7QUFDekYsTUFBTUMsc0JBQXNCLGdCQUFnQjtBQUM1QyxNQUFNQyxhQUFhLE9BQU87QUFDMUIsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMsbUJBQW1CLFFBQVE7QUFDakMsTUFBTUMseUJBQXlCLG9CQUFvQjtBQUNuRCxNQUFNQyw4QkFBOEIseUJBQXlCO0FBQzdELE1BQU1DLHFDQUFxQywwQkFBMEI7QUFDckUsTUFBTUMseUNBQXlDLDhCQUE4QjtBQUM3RSxNQUFNQyw0QkFBNEIsSUFBSTtBQUN0QyxNQUFNQyxpQ0FBaUMsS0FBSztBQUM1QyxNQUFNQyw2QkFBNkIsUUFBUTtBQUNsRCxhQUFhO0FBQ04sTUFBTUMsaUJBQWlCLFNBQVM7QUFDdkMsc0NBQXNDO0FBQy9CLE1BQU1DLHNCQUFzQixhQUFhO0FBQ3pDLE1BQU1DLDZCQUE2QixDQUFDLFNBQVMsRUFBRUQsb0JBQW9CLENBQUMsQ0FBQztBQUM1RSwrQ0FBK0M7QUFDeEMsTUFBTUUsZ0NBQWdDLGtCQUFrQjtBQUMvRCwwR0FBMEc7QUFDMUcsaUNBQWlDO0FBQzFCLE1BQU1DLGtCQUFrQixxQkFBcUI7QUFDN0MsTUFBTUMsaUJBQWlCLG1CQUFtQjtBQUMxQyxNQUFNQyxpQkFBaUIsd0JBQXdCO0FBQy9DLE1BQU1DLGdCQUFnQix1QkFBdUI7QUFDN0MsTUFBTUMsMEJBQTBCLGlDQUFpQztBQUNqRSxNQUFNQyw0QkFBNEIsbUNBQW1DO0FBQ3JFLE1BQU1DLHlCQUF5QixnQ0FBZ0M7QUFDL0QsTUFBTUMsOEJBQThCLHFDQUFxQztBQUN6RSxNQUFNQyxrQ0FBa0MseUNBQXlDO0FBQ2pGLE1BQU1DLGlDQUFpQyxDQUFDLDZLQUE2SyxDQUFDLENBQUM7QUFDdk4sTUFBTUMsaUNBQWlDLENBQUMsbUdBQW1HLENBQUMsQ0FBQztBQUM3SSxNQUFNQyx1Q0FBdUMsQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO0FBQ3ZJLE1BQU1DLDRCQUE0QixDQUFDLHNIQUFzSCxDQUFDLENBQUM7QUFDM0osTUFBTUMsNkNBQTZDLENBQUMsdUdBQXVHLENBQUMsQ0FBQztBQUM3SixNQUFNQyw0QkFBNEIsQ0FBQyx1SEFBdUgsQ0FBQyxDQUFDO0FBQzVKLE1BQU1DLHdCQUF3Qiw2RkFBNkY7QUFDM0gsTUFBTUMseUJBQXlCLGlHQUFpRztBQUNoSSxNQUFNQyxtQ0FBbUMsdUVBQXVFLG1DQUFtQztBQUNuSixNQUFNQyw4QkFBOEIsQ0FBQyx3SkFBd0osQ0FBQyxDQUFDO0FBQy9MLE1BQU1DLHdCQUF3QixDQUFDLGlOQUFpTixDQUFDLENBQUM7QUFDbFAsTUFBTUMsNEJBQTRCLENBQUMsd0pBQXdKLENBQUMsQ0FBQztBQUM3TCxNQUFNQyxzQkFBc0I7SUFDL0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDSyxNQUFNQyx1QkFBdUI7SUFDaEM7UUFDSUMsT0FBTztRQUNQQyxhQUFhO1FBQ2JDLFFBQVE7WUFDSkMsU0FBUztRQUNiO0lBQ0o7SUFDQTtRQUNJSCxPQUFPO1FBQ1BFLFFBQVE7WUFDSkMsU0FBUztRQUNiO0lBQ0o7SUFDQTtRQUNJSCxPQUFPO1FBQ1BFLFFBQVE7SUFDWjtDQUNILENBQUM7QUFDSyxNQUFNRSxpQkFBaUI7SUFDMUJDLE1BQU07SUFDTkMsa0JBQWtCO0lBQ2xCQyxRQUFRO0FBQ1osRUFBRTtBQUNGOzs7Q0FHQyxHQUFHLE1BQU1DLHVCQUF1QjtJQUM3Qjs7R0FFRCxHQUFHQyxRQUFRO0lBQ1Y7O0dBRUQsR0FBR0MsdUJBQXVCO0lBQ3pCOztHQUVELEdBQUdDLHFCQUFxQjtJQUN2Qjs7R0FFRCxHQUFHQyxlQUFlO0lBQ2pCOztHQUVELEdBQUdDLEtBQUs7SUFDUDs7R0FFRCxHQUFHQyxZQUFZO0lBQ2Q7O0dBRUQsR0FBR0MsV0FBVztJQUNiOztHQUVELEdBQUdDLGlCQUFpQjtJQUNuQjs7R0FFRCxHQUFHQyxrQkFBa0I7SUFDcEI7O0dBRUQsR0FBR0MsaUJBQWlCO0FBQ3ZCO0FBQ0EsTUFBTUMsaUJBQWlCO0lBQ25CLEdBQUdYLG9CQUFvQjtJQUN2QlksT0FBTztRQUNIQyxRQUFRO1lBQ0piLHFCQUFxQkUscUJBQXFCO1lBQzFDRixxQkFBcUJJLGFBQWE7WUFDbENKLHFCQUFxQlMsZ0JBQWdCO1lBQ3JDVCxxQkFBcUJVLGVBQWU7U0FDdkM7UUFDREksdUJBQXVCO1lBQ25CLGdDQUFnQztZQUNoQ2QscUJBQXFCTSxVQUFVO1lBQy9CTixxQkFBcUJLLEdBQUc7U0FDM0I7UUFDRFUsS0FBSztZQUNEZixxQkFBcUJFLHFCQUFxQjtZQUMxQ0YscUJBQXFCSSxhQUFhO1lBQ2xDSixxQkFBcUJTLGdCQUFnQjtZQUNyQ1QscUJBQXFCVSxlQUFlO1lBQ3BDVixxQkFBcUJHLG1CQUFtQjtZQUN4Q0gscUJBQXFCUSxlQUFlO1lBQ3BDUixxQkFBcUJDLE1BQU07U0FDOUI7SUFDTDtBQUNKO0FBQ0EsTUFBTWUsMkJBQTJCO0lBQzdCQyxjQUFjO0lBQ2RDLFVBQVU7SUFDVkMsZUFBZTtJQUNmQyxtQkFBbUI7QUFDdkI7QUFDb0QsQ0FFcEQscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvY29uc3RhbnRzLmpzPzBiOTMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYID0gXCJueHRQXCI7XG5leHBvcnQgY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSID0gXCJ4LXByZXJlbmRlci1yZXZhbGlkYXRlXCI7XG5leHBvcnQgY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSID0gXCJ4LXByZXJlbmRlci1yZXZhbGlkYXRlLWlmLWdlbmVyYXRlZFwiO1xuZXhwb3J0IGNvbnN0IFJTQ19QUkVGRVRDSF9TVUZGSVggPSBcIi5wcmVmZXRjaC5yc2NcIjtcbmV4cG9ydCBjb25zdCBSU0NfU1VGRklYID0gXCIucnNjXCI7XG5leHBvcnQgY29uc3QgTkVYVF9EQVRBX1NVRkZJWCA9IFwiLmpzb25cIjtcbmV4cG9ydCBjb25zdCBORVhUX01FVEFfU1VGRklYID0gXCIubWV0YVwiO1xuZXhwb3J0IGNvbnN0IE5FWFRfQk9EWV9TVUZGSVggPSBcIi5ib2R5XCI7XG5leHBvcnQgY29uc3QgTkVYVF9DQUNIRV9UQUdTX0hFQURFUiA9IFwieC1uZXh0LWNhY2hlLXRhZ3NcIjtcbmV4cG9ydCBjb25zdCBORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVIgPSBcIngtbmV4dC1jYWNoZS1zb2Z0LXRhZ3NcIjtcbmV4cG9ydCBjb25zdCBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSID0gXCJ4LW5leHQtcmV2YWxpZGF0ZWQtdGFnc1wiO1xuZXhwb3J0IGNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSID0gXCJ4LW5leHQtcmV2YWxpZGF0ZS10YWctdG9rZW5cIjtcbmV4cG9ydCBjb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIID0gMjU2O1xuZXhwb3J0IGNvbnN0IE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSCA9IDEwMjQ7XG5leHBvcnQgY29uc3QgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQgPSBcIl9OX1RfXCI7XG4vLyBpbiBzZWNvbmRzXG5leHBvcnQgY29uc3QgQ0FDSEVfT05FX1lFQVIgPSAzMTUzNjAwMDtcbi8vIFBhdHRlcm5zIHRvIGRldGVjdCBtaWRkbGV3YXJlIGZpbGVzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9GSUxFTkFNRSA9IFwibWlkZGxld2FyZVwiO1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQID0gYCg/OnNyYy8pPyR7TUlERExFV0FSRV9GSUxFTkFNRX1gO1xuLy8gUGF0dGVybiB0byBkZXRlY3QgaW5zdHJ1bWVudGF0aW9uIGhvb2tzIGZpbGVcbmV4cG9ydCBjb25zdCBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRSA9IFwiaW5zdHJ1bWVudGF0aW9uXCI7XG4vLyBCZWNhdXNlIG9uIFdpbmRvd3MgYWJzb2x1dGUgcGF0aHMgaW4gdGhlIGdlbmVyYXRlZCBjb2RlIGNhbiBicmVhayBiZWNhdXNlIG9mIG51bWJlcnMsIGVnIDEgaW4gdGhlIHBhdGgsXG4vLyB3ZSBoYXZlIHRvIHVzZSBhIHByaXZhdGUgYWxpYXNcbmV4cG9ydCBjb25zdCBQQUdFU19ESVJfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1wYWdlc1wiO1xuZXhwb3J0IGNvbnN0IERPVF9ORVhUX0FMSUFTID0gXCJwcml2YXRlLWRvdC1uZXh0XCI7XG5leHBvcnQgY29uc3QgUk9PVF9ESVJfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yb290LWRpclwiO1xuZXhwb3J0IGNvbnN0IEFQUF9ESVJfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1hcHAtZGlyXCI7XG5leHBvcnQgY29uc3QgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yc2MtbW9kLXJlZi1wcm94eVwiO1xuZXhwb3J0IGNvbnN0IFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLXZhbGlkYXRlXCI7XG5leHBvcnQgY29uc3QgUlNDX0FDVElPTl9QUk9YWV9BTElBUyA9IFwicHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tcHJveHlcIjtcbmV4cG9ydCBjb25zdCBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVMgPSBcInByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWVuY3J5cHRpb25cIjtcbmV4cG9ydCBjb25zdCBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTID0gXCJwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1jbGllbnQtd3JhcHBlclwiO1xuZXhwb3J0IGNvbnN0IFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVCA9IGBZb3UgY2FuIG5vdCBoYXZlIGEgJ19uZXh0JyBmb2xkZXIgaW5zaWRlIG9mIHlvdXIgcHVibGljIGZvbGRlci4gVGhpcyBjb25mbGljdHMgd2l0aCB0aGUgaW50ZXJuYWwgJy9fbmV4dCcgcm91dGUuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3B1YmxpYy1uZXh0LWZvbGRlci1jb25mbGljdGA7XG5leHBvcnQgY29uc3QgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTdGF0aWNQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSB5b3VyIGdldEluaXRpYWxQcm9wc2A7XG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFBsZWFzZSByZW1vdmUgZ2V0SW5pdGlhbFByb3BzLmA7XG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0U3RhdGljUHJvcHMgb3IgZ2V0U3RhdGljUGF0aHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFRvIHVzZSBTU0csIHBsZWFzZSByZW1vdmUgZ2V0U2VydmVyU2lkZVByb3BzYDtcbmV4cG9ydCBjb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1IgPSBgY2FuIG5vdCBoYXZlIGdldEluaXRpYWxQcm9wcy9nZXRTZXJ2ZXJTaWRlUHJvcHMsIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLzQwNC1nZXQtaW5pdGlhbC1wcm9wc2A7XG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUiA9IGBwYWdlcyB3aXRoIFxcYGdldFNlcnZlclNpZGVQcm9wc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtZXhwb3J0YDtcbmV4cG9ydCBjb25zdCBHU1BfTk9fUkVUVVJORURfVkFMVUUgPSBcIllvdXIgYGdldFN0YXRpY1Byb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gP1wiO1xuZXhwb3J0IGNvbnN0IEdTU1BfTk9fUkVUVVJORURfVkFMVUUgPSBcIllvdXIgYGdldFNlcnZlclNpZGVQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD9cIjtcbmV4cG9ydCBjb25zdCBVTlNUQUJMRV9SRVZBTElEQVRFX1JFTkFNRV9FUlJPUiA9IFwiVGhlIGB1bnN0YWJsZV9yZXZhbGlkYXRlYCBwcm9wZXJ0eSBpcyBhdmFpbGFibGUgZm9yIGdlbmVyYWwgdXNlLlxcblwiICsgXCJQbGVhc2UgdXNlIGByZXZhbGlkYXRlYCBpbnN0ZWFkLlwiO1xuZXhwb3J0IGNvbnN0IEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUiA9IGBjYW4gbm90IGJlIGF0dGFjaGVkIHRvIGEgcGFnZSdzIGNvbXBvbmVudCBhbmQgbXVzdCBiZSBleHBvcnRlZCBmcm9tIHRoZSBwYWdlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtY29tcG9uZW50LW1lbWJlcmA7XG5leHBvcnQgY29uc3QgTk9OX1NUQU5EQVJEX05PREVfRU5WID0gYFlvdSBhcmUgdXNpbmcgYSBub24tc3RhbmRhcmQgXCJOT0RFX0VOVlwiIHZhbHVlIGluIHlvdXIgZW52aXJvbm1lbnQuIFRoaXMgY3JlYXRlcyBpbmNvbnNpc3RlbmNpZXMgaW4gdGhlIHByb2plY3QgYW5kIGlzIHN0cm9uZ2x5IGFkdmlzZWQgYWdhaW5zdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9ub24tc3RhbmRhcmQtbm9kZS1lbnZgO1xuZXhwb3J0IGNvbnN0IFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1IgPSBgUGFnZXMgd2l0aCBcXGBmYWxsYmFja1xcYCBlbmFibGVkIGluIFxcYGdldFN0YXRpY1BhdGhzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3NnLWZhbGxiYWNrLXRydWUtZXhwb3J0YDtcbmV4cG9ydCBjb25zdCBFU0xJTlRfREVGQVVMVF9ESVJTID0gW1xuICAgIFwiYXBwXCIsXG4gICAgXCJwYWdlc1wiLFxuICAgIFwiY29tcG9uZW50c1wiLFxuICAgIFwibGliXCIsXG4gICAgXCJzcmNcIlxuXTtcbmV4cG9ydCBjb25zdCBFU0xJTlRfUFJPTVBUX1ZBTFVFUyA9IFtcbiAgICB7XG4gICAgICAgIHRpdGxlOiBcIlN0cmljdFwiLFxuICAgICAgICByZWNvbW1lbmRlZDogdHJ1ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBleHRlbmRzOiBcIm5leHQvY29yZS13ZWItdml0YWxzXCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aXRsZTogXCJCYXNlXCIsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgZXh0ZW5kczogXCJuZXh0XCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aXRsZTogXCJDYW5jZWxcIixcbiAgICAgICAgY29uZmlnOiBudWxsXG4gICAgfVxuXTtcbmV4cG9ydCBjb25zdCBTRVJWRVJfUlVOVElNRSA9IHtcbiAgICBlZGdlOiBcImVkZ2VcIixcbiAgICBleHBlcmltZW50YWxFZGdlOiBcImV4cGVyaW1lbnRhbC1lZGdlXCIsXG4gICAgbm9kZWpzOiBcIm5vZGVqc1wiXG59O1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHdlYnBhY2sgbGF5ZXJzLiBUaGVzZSBsYXllcnMgYXJlIHRoZSBwcmltaXRpdmVzIGZvciB0aGVcbiAqIHdlYnBhY2sgY2h1bmtzLlxuICovIGNvbnN0IFdFQlBBQ0tfTEFZRVJTX05BTUVTID0ge1xuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBzaGFyZWQgY29kZSBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlciBidW5kbGVzLlxuICAgKi8gc2hhcmVkOiBcInNoYXJlZFwiLFxuICAgIC8qKlxuICAgKiBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBsYXllciAocnNjKS5cbiAgICovIHJlYWN0U2VydmVyQ29tcG9uZW50czogXCJyc2NcIixcbiAgICAvKipcbiAgICogU2VydmVyIFNpZGUgUmVuZGVyaW5nIGxheWVyIGZvciBhcHAgKHNzcikuXG4gICAqLyBzZXJ2ZXJTaWRlUmVuZGVyaW5nOiBcInNzclwiLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBhY3Rpb25zLlxuICAgKi8gYWN0aW9uQnJvd3NlcjogXCJhY3Rpb24tYnJvd3NlclwiLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpOiBcImFwaVwiLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBtaWRkbGV3YXJlIGNvZGUuXG4gICAqLyBtaWRkbGV3YXJlOiBcIm1pZGRsZXdhcmVcIixcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBhc3NldHMgb24gdGhlIGVkZ2UuXG4gICAqLyBlZGdlQXNzZXQ6IFwiZWRnZS1hc3NldFwiLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBBcHAgZGlyZWN0b3J5LlxuICAgKi8gYXBwUGFnZXNCcm93c2VyOiBcImFwcC1wYWdlcy1icm93c2VyXCIsXG4gICAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgYnVuZGxlIGxheWVyIGZvciBtZXRhZGF0YSByb3V0ZXMuXG4gICAqLyBhcHBNZXRhZGF0YVJvdXRlOiBcImFwcC1tZXRhZGF0YS1yb3V0ZVwiLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBzZXJ2ZXIgYnVuZGxlIGZvciBBcHAgUm91dGUgaGFuZGxlcnMuXG4gICAqLyBhcHBSb3V0ZUhhbmRsZXI6IFwiYXBwLXJvdXRlLWhhbmRsZXJcIlxufTtcbmNvbnN0IFdFQlBBQ0tfTEFZRVJTID0ge1xuICAgIC4uLldFQlBBQ0tfTEFZRVJTX05BTUVTLFxuICAgIEdST1VQOiB7XG4gICAgICAgIHNlcnZlcjogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcE1ldGFkYXRhUm91dGUsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBSb3V0ZUhhbmRsZXJcbiAgICAgICAgXSxcbiAgICAgICAgbm9uQ2xpZW50U2VydmVyVGFyZ2V0OiBbXG4gICAgICAgICAgICAvLyBwbHVzIG1pZGRsZXdhcmUgYW5kIHBhZ2VzIGFwaVxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMubWlkZGxld2FyZSxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwaVxuICAgICAgICBdLFxuICAgICAgICBhcHA6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBNZXRhZGF0YVJvdXRlLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUm91dGVIYW5kbGVyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNoYXJlZFxuICAgICAgICBdXG4gICAgfVxufTtcbmNvbnN0IFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUyA9IHtcbiAgICBlZGdlU1NSRW50cnk6IFwiX19uZXh0X2VkZ2Vfc3NyX2VudHJ5X19cIixcbiAgICBtZXRhZGF0YTogXCJfX25leHRfbWV0YWRhdGFfX1wiLFxuICAgIG1ldGFkYXRhUm91dGU6IFwiX19uZXh0X21ldGFkYXRhX3JvdXRlX19cIixcbiAgICBtZXRhZGF0YUltYWdlTWV0YTogXCJfX25leHRfbWV0YWRhdGFfaW1hZ2VfbWV0YV9fXCJcbn07XG5leHBvcnQgeyBXRUJQQUNLX0xBWUVSUywgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOlsiTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgiLCJQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIiLCJQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIiLCJSU0NfUFJFRkVUQ0hfU1VGRklYIiwiUlNDX1NVRkZJWCIsIk5FWFRfREFUQV9TVUZGSVgiLCJORVhUX01FVEFfU1VGRklYIiwiTkVYVF9CT0RZX1NVRkZJWCIsIk5FWFRfQ0FDSEVfVEFHU19IRUFERVIiLCJORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVIiLCJORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSIiwiTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVIiLCJORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIIiwiTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIIiwiTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQiLCJDQUNIRV9PTkVfWUVBUiIsIk1JRERMRVdBUkVfRklMRU5BTUUiLCJNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUCIsIklOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FIiwiUEFHRVNfRElSX0FMSUFTIiwiRE9UX05FWFRfQUxJQVMiLCJST09UX0RJUl9BTElBUyIsIkFQUF9ESVJfQUxJQVMiLCJSU0NfTU9EX1JFRl9QUk9YWV9BTElBUyIsIlJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVMiLCJSU0NfQUNUSU9OX1BST1hZX0FMSUFTIiwiUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTIiwiUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUyIsIlBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVCIsIlNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVCIsIlNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVCIsIlNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1QiLCJTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1IiLCJTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SIiwiR1NQX05PX1JFVFVSTkVEX1ZBTFVFIiwiR1NTUF9OT19SRVRVUk5FRF9WQUxVRSIsIlVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SIiwiR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SIiwiTk9OX1NUQU5EQVJEX05PREVfRU5WIiwiU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUiIsIkVTTElOVF9ERUZBVUxUX0RJUlMiLCJFU0xJTlRfUFJPTVBUX1ZBTFVFUyIsInRpdGxlIiwicmVjb21tZW5kZWQiLCJjb25maWciLCJleHRlbmRzIiwiU0VSVkVSX1JVTlRJTUUiLCJlZGdlIiwiZXhwZXJpbWVudGFsRWRnZSIsIm5vZGVqcyIsIldFQlBBQ0tfTEFZRVJTX05BTUVTIiwic2hhcmVkIiwicmVhY3RTZXJ2ZXJDb21wb25lbnRzIiwic2VydmVyU2lkZVJlbmRlcmluZyIsImFjdGlvbkJyb3dzZXIiLCJhcGkiLCJtaWRkbGV3YXJlIiwiZWRnZUFzc2V0IiwiYXBwUGFnZXNCcm93c2VyIiwiYXBwTWV0YWRhdGFSb3V0ZSIsImFwcFJvdXRlSGFuZGxlciIsIldFQlBBQ0tfTEFZRVJTIiwiR1JPVVAiLCJzZXJ2ZXIiLCJub25DbGllbnRTZXJ2ZXJUYXJnZXQiLCJhcHAiLCJXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVMiLCJlZGdlU1NSRW50cnkiLCJtZXRhZGF0YSIsIm1ldGFkYXRhUm91dGUiLCJtZXRhZGF0YUltYWdlTWV0YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/lib/constants.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/lib/metadata/get-metadata-route.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/get-metadata-route.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillMetadataSegment: () => (/* binding */ fillMetadataSegment),\n/* harmony export */ normalizeMetadataRoute: () => (/* binding */ normalizeMetadataRoute)\n/* harmony export */ });\n/* harmony import */ var _is_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-metadata-route */ \"(rsc)/../../node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/lib/isomorphic/path */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\");\n/* harmony import */ var _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _server_server_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../server/server-utils */ \"(rsc)/../../node_modules/next/dist/esm/server/server-utils.js\");\n/* harmony import */ var _shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/lib/router/utils/route-regex */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js\");\n/* harmony import */ var _shared_lib_hash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/lib/hash */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/hash.js\");\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _shared_lib_page_path_normalize_path_sep__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../shared/lib/page-path/normalize-path-sep */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\");\n\n\n\n\n\n\n\n/*\n * If there's special convention like (...) or @ in the page path,\n * Give it a unique hash suffix to avoid conflicts\n *\n * e.g.\n * /app/open-graph.tsx -> /open-graph/route\n * /app/(post)/open-graph.tsx -> /open-graph/route-[0-9a-z]{6}\n */ function getMetadataRouteSuffix(page) {\n let suffix = \"\";\n if (page.includes(\"(\") && page.includes(\")\") || page.includes(\"@\")) {\n suffix = (0,_shared_lib_hash__WEBPACK_IMPORTED_MODULE_4__.djb2Hash)(page).toString(36).slice(0, 6);\n }\n return suffix;\n}\n/**\n * Fill the dynamic segment in the metadata route\n *\n * Example:\n * fillMetadataSegment('/a/[slug]', { params: { slug: 'b' } }, 'open-graph') -> '/a/b/open-graph'\n *\n */ function fillMetadataSegment(segment, params, imageSegment) {\n const pathname = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_5__.normalizeAppPath)(segment);\n const routeRegex = (0,_shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_3__.getNamedRouteRegex)(pathname, false);\n const route = (0,_server_server_utils__WEBPACK_IMPORTED_MODULE_2__.interpolateDynamicPath)(pathname, params, routeRegex);\n const suffix = getMetadataRouteSuffix(segment);\n const routeSuffix = suffix ? `-${suffix}` : \"\";\n const { name, ext } = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().parse(imageSegment);\n return (0,_shared_lib_page_path_normalize_path_sep__WEBPACK_IMPORTED_MODULE_6__.normalizePathSep)(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().join(route, `${name}${routeSuffix}${ext}`));\n}\n/**\n * Map metadata page key to the corresponding route\n *\n * static file page key: /app/robots.txt -> /robots.xml -> /robots.txt/route\n * dynamic route page key: /app/robots.tsx -> /robots -> /robots.txt/route\n *\n * @param page\n * @returns\n */ function normalizeMetadataRoute(page) {\n if (!(0,_is_metadata_route__WEBPACK_IMPORTED_MODULE_0__.isMetadataRoute)(page)) {\n return page;\n }\n let route = page;\n let suffix = \"\";\n if (page === \"/robots\") {\n route += \".txt\";\n } else if (page === \"/manifest\") {\n route += \".webmanifest\";\n } else if (page.endsWith(\"/sitemap\")) {\n route += \".xml\";\n } else {\n // Remove the file extension, e.g. /route-path/robots.txt -> /route-path\n const pathnamePrefix = page.slice(0, -(_shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().basename(page).length + 1));\n suffix = getMetadataRouteSuffix(pathnamePrefix);\n }\n // Support both /<metadata-route.ext> and custom routes /<metadata-route>/route.ts.\n // If it's a metadata file route, we need to append /[id]/route to the page.\n if (!route.endsWith(\"/route\")) {\n const { dir, name: baseName, ext } = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().parse(route);\n const isStaticRoute = (0,_is_metadata_route__WEBPACK_IMPORTED_MODULE_0__.isStaticMetadataRoute)(page);\n route = _shared_lib_isomorphic_path__WEBPACK_IMPORTED_MODULE_1___default().posix.join(dir, `${baseName}${suffix ? `-${suffix}` : \"\"}${ext}`, isStaticRoute ? \"\" : \"[[...__metadata_id__]]\", \"route\");\n }\n return route;\n} //# sourceMappingURL=get-metadata-route.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2dldC1tZXRhZGF0YS1yb3V0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQTZFO0FBQ3pCO0FBQ2U7QUFDWTtBQUM5QjtBQUMwQjtBQUNNO0FBQ2pGOzs7Ozs7O0NBT0MsR0FBRyxTQUFTUSx1QkFBdUJDLElBQUk7SUFDcEMsSUFBSUMsU0FBUztJQUNiLElBQUlELEtBQUtFLFFBQVEsQ0FBQyxRQUFRRixLQUFLRSxRQUFRLENBQUMsUUFBUUYsS0FBS0UsUUFBUSxDQUFDLE1BQU07UUFDaEVELFNBQVNMLDBEQUFRQSxDQUFDSSxNQUFNRyxRQUFRLENBQUMsSUFBSUMsS0FBSyxDQUFDLEdBQUc7SUFDbEQ7SUFDQSxPQUFPSDtBQUNYO0FBQ0E7Ozs7OztDQU1DLEdBQVUsU0FBU0ksb0JBQW9CQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsWUFBWTtJQUNqRSxNQUFNQyxXQUFXWixvRkFBZ0JBLENBQUNTO0lBQ2xDLE1BQU1JLGFBQWFmLHdGQUFrQkEsQ0FBQ2MsVUFBVTtJQUNoRCxNQUFNRSxRQUFRakIsNEVBQXNCQSxDQUFDZSxVQUFVRixRQUFRRztJQUN2RCxNQUFNVCxTQUFTRix1QkFBdUJPO0lBQ3RDLE1BQU1NLGNBQWNYLFNBQVMsQ0FBQyxDQUFDLEVBQUVBLE9BQU8sQ0FBQyxHQUFHO0lBQzVDLE1BQU0sRUFBRVksSUFBSSxFQUFFQyxHQUFHLEVBQUUsR0FBR3JCLHdFQUFVLENBQUNlO0lBQ2pDLE9BQU9WLDBGQUFnQkEsQ0FBQ0wsdUVBQVMsQ0FBQ2tCLE9BQU8sQ0FBQyxFQUFFRSxLQUFLLEVBQUVELFlBQVksRUFBRUUsSUFBSSxDQUFDO0FBQzFFO0FBQ0E7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTRyx1QkFBdUJqQixJQUFJO0lBQzNDLElBQUksQ0FBQ1QsbUVBQWVBLENBQUNTLE9BQU87UUFDeEIsT0FBT0E7SUFDWDtJQUNBLElBQUlXLFFBQVFYO0lBQ1osSUFBSUMsU0FBUztJQUNiLElBQUlELFNBQVMsV0FBVztRQUNwQlcsU0FBUztJQUNiLE9BQU8sSUFBSVgsU0FBUyxhQUFhO1FBQzdCVyxTQUFTO0lBQ2IsT0FBTyxJQUFJWCxLQUFLa0IsUUFBUSxDQUFDLGFBQWE7UUFDbENQLFNBQVM7SUFDYixPQUFPO1FBQ0gsd0VBQXdFO1FBQ3hFLE1BQU1RLGlCQUFpQm5CLEtBQUtJLEtBQUssQ0FBQyxHQUFHLENBQUVYLENBQUFBLDJFQUFhLENBQUNPLE1BQU1xQixNQUFNLEdBQUc7UUFDcEVwQixTQUFTRix1QkFBdUJvQjtJQUNwQztJQUNBLG1GQUFtRjtJQUNuRiw0RUFBNEU7SUFDNUUsSUFBSSxDQUFDUixNQUFNTyxRQUFRLENBQUMsV0FBVztRQUMzQixNQUFNLEVBQUVJLEdBQUcsRUFBRVQsTUFBTVUsUUFBUSxFQUFFVCxHQUFHLEVBQUUsR0FBR3JCLHdFQUFVLENBQUNrQjtRQUNoRCxNQUFNYSxnQkFBZ0JoQyx5RUFBcUJBLENBQUNRO1FBQzVDVyxRQUFRbEIsd0VBQVUsQ0FBQ3VCLElBQUksQ0FBQ00sS0FBSyxDQUFDLEVBQUVDLFNBQVMsRUFBRXRCLFNBQVMsQ0FBQyxDQUFDLEVBQUVBLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRWEsSUFBSSxDQUFDLEVBQUVVLGdCQUFnQixLQUFLLDBCQUEwQjtJQUNsSTtJQUNBLE9BQU9iO0FBQ1gsRUFFQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2xpYi9tZXRhZGF0YS9nZXQtbWV0YWRhdGEtcm91dGUuanM/MWQxMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01ldGFkYXRhUm91dGUsIGlzU3RhdGljTWV0YWRhdGFSb3V0ZSB9IGZyb20gXCIuL2lzLW1ldGFkYXRhLXJvdXRlXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGhcIjtcbmltcG9ydCB7IGludGVycG9sYXRlRHluYW1pY1BhdGggfSBmcm9tIFwiLi4vLi4vc2VydmVyL3NlcnZlci11dGlsc1wiO1xuaW1wb3J0IHsgZ2V0TmFtZWRSb3V0ZVJlZ2V4IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4XCI7XG5pbXBvcnQgeyBkamIySGFzaCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL2hhc2hcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVQYXRoU2VwIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcFwiO1xuLypcbiAqIElmIHRoZXJlJ3Mgc3BlY2lhbCBjb252ZW50aW9uIGxpa2UgKC4uLikgb3IgQCBpbiB0aGUgcGFnZSBwYXRoLFxuICogR2l2ZSBpdCBhIHVuaXF1ZSBoYXNoIHN1ZmZpeCB0byBhdm9pZCBjb25mbGljdHNcbiAqXG4gKiBlLmcuXG4gKiAvYXBwL29wZW4tZ3JhcGgudHN4IC0+IC9vcGVuLWdyYXBoL3JvdXRlXG4gKiAvYXBwLyhwb3N0KS9vcGVuLWdyYXBoLnRzeCAtPiAvb3Blbi1ncmFwaC9yb3V0ZS1bMC05YS16XXs2fVxuICovIGZ1bmN0aW9uIGdldE1ldGFkYXRhUm91dGVTdWZmaXgocGFnZSkge1xuICAgIGxldCBzdWZmaXggPSBcIlwiO1xuICAgIGlmIChwYWdlLmluY2x1ZGVzKFwiKFwiKSAmJiBwYWdlLmluY2x1ZGVzKFwiKVwiKSB8fCBwYWdlLmluY2x1ZGVzKFwiQFwiKSkge1xuICAgICAgICBzdWZmaXggPSBkamIySGFzaChwYWdlKS50b1N0cmluZygzNikuc2xpY2UoMCwgNik7XG4gICAgfVxuICAgIHJldHVybiBzdWZmaXg7XG59XG4vKipcbiAqIEZpbGwgdGhlIGR5bmFtaWMgc2VnbWVudCBpbiB0aGUgbWV0YWRhdGEgcm91dGVcbiAqXG4gKiBFeGFtcGxlOlxuICogZmlsbE1ldGFkYXRhU2VnbWVudCgnL2EvW3NsdWddJywgeyBwYXJhbXM6IHsgc2x1ZzogJ2InIH0gfSwgJ29wZW4tZ3JhcGgnKSAtPiAnL2EvYi9vcGVuLWdyYXBoJ1xuICpcbiAqLyBleHBvcnQgZnVuY3Rpb24gZmlsbE1ldGFkYXRhU2VnbWVudChzZWdtZW50LCBwYXJhbXMsIGltYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHBhdGhuYW1lID0gbm9ybWFsaXplQXBwUGF0aChzZWdtZW50KTtcbiAgICBjb25zdCByb3V0ZVJlZ2V4ID0gZ2V0TmFtZWRSb3V0ZVJlZ2V4KHBhdGhuYW1lLCBmYWxzZSk7XG4gICAgY29uc3Qgcm91dGUgPSBpbnRlcnBvbGF0ZUR5bmFtaWNQYXRoKHBhdGhuYW1lLCBwYXJhbXMsIHJvdXRlUmVnZXgpO1xuICAgIGNvbnN0IHN1ZmZpeCA9IGdldE1ldGFkYXRhUm91dGVTdWZmaXgoc2VnbWVudCk7XG4gICAgY29uc3Qgcm91dGVTdWZmaXggPSBzdWZmaXggPyBgLSR7c3VmZml4fWAgOiBcIlwiO1xuICAgIGNvbnN0IHsgbmFtZSwgZXh0IH0gPSBwYXRoLnBhcnNlKGltYWdlU2VnbWVudCk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVBhdGhTZXAocGF0aC5qb2luKHJvdXRlLCBgJHtuYW1lfSR7cm91dGVTdWZmaXh9JHtleHR9YCkpO1xufVxuLyoqXG4gKiBNYXAgbWV0YWRhdGEgcGFnZSBrZXkgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcm91dGVcbiAqXG4gKiBzdGF0aWMgZmlsZSBwYWdlIGtleTogICAgL2FwcC9yb2JvdHMudHh0IC0+IC9yb2JvdHMueG1sIC0+IC9yb2JvdHMudHh0L3JvdXRlXG4gKiBkeW5hbWljIHJvdXRlIHBhZ2Uga2V5OiAgL2FwcC9yb2JvdHMudHN4IC0+IC9yb2JvdHMgLT4gL3JvYm90cy50eHQvcm91dGVcbiAqXG4gKiBAcGFyYW0gcGFnZVxuICogQHJldHVybnNcbiAqLyBleHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTWV0YWRhdGFSb3V0ZShwYWdlKSB7XG4gICAgaWYgKCFpc01ldGFkYXRhUm91dGUocGFnZSkpIHtcbiAgICAgICAgcmV0dXJuIHBhZ2U7XG4gICAgfVxuICAgIGxldCByb3V0ZSA9IHBhZ2U7XG4gICAgbGV0IHN1ZmZpeCA9IFwiXCI7XG4gICAgaWYgKHBhZ2UgPT09IFwiL3JvYm90c1wiKSB7XG4gICAgICAgIHJvdXRlICs9IFwiLnR4dFwiO1xuICAgIH0gZWxzZSBpZiAocGFnZSA9PT0gXCIvbWFuaWZlc3RcIikge1xuICAgICAgICByb3V0ZSArPSBcIi53ZWJtYW5pZmVzdFwiO1xuICAgIH0gZWxzZSBpZiAocGFnZS5lbmRzV2l0aChcIi9zaXRlbWFwXCIpKSB7XG4gICAgICAgIHJvdXRlICs9IFwiLnhtbFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZmlsZSBleHRlbnNpb24sIGUuZy4gL3JvdXRlLXBhdGgvcm9ib3RzLnR4dCAtPiAvcm91dGUtcGF0aFxuICAgICAgICBjb25zdCBwYXRobmFtZVByZWZpeCA9IHBhZ2Uuc2xpY2UoMCwgLShwYXRoLmJhc2VuYW1lKHBhZ2UpLmxlbmd0aCArIDEpKTtcbiAgICAgICAgc3VmZml4ID0gZ2V0TWV0YWRhdGFSb3V0ZVN1ZmZpeChwYXRobmFtZVByZWZpeCk7XG4gICAgfVxuICAgIC8vIFN1cHBvcnQgYm90aCAvPG1ldGFkYXRhLXJvdXRlLmV4dD4gYW5kIGN1c3RvbSByb3V0ZXMgLzxtZXRhZGF0YS1yb3V0ZT4vcm91dGUudHMuXG4gICAgLy8gSWYgaXQncyBhIG1ldGFkYXRhIGZpbGUgcm91dGUsIHdlIG5lZWQgdG8gYXBwZW5kIC9baWRdL3JvdXRlIHRvIHRoZSBwYWdlLlxuICAgIGlmICghcm91dGUuZW5kc1dpdGgoXCIvcm91dGVcIikpIHtcbiAgICAgICAgY29uc3QgeyBkaXIsIG5hbWU6IGJhc2VOYW1lLCBleHQgfSA9IHBhdGgucGFyc2Uocm91dGUpO1xuICAgICAgICBjb25zdCBpc1N0YXRpY1JvdXRlID0gaXNTdGF0aWNNZXRhZGF0YVJvdXRlKHBhZ2UpO1xuICAgICAgICByb3V0ZSA9IHBhdGgucG9zaXguam9pbihkaXIsIGAke2Jhc2VOYW1lfSR7c3VmZml4ID8gYC0ke3N1ZmZpeH1gIDogXCJcIn0ke2V4dH1gLCBpc1N0YXRpY1JvdXRlID8gXCJcIiA6IFwiW1suLi5fX21ldGFkYXRhX2lkX19dXVwiLCBcInJvdXRlXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcm91dGU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1tZXRhZGF0YS1yb3V0ZS5qcy5tYXAiXSwibmFtZXMiOlsiaXNNZXRhZGF0YVJvdXRlIiwiaXNTdGF0aWNNZXRhZGF0YVJvdXRlIiwicGF0aCIsImludGVycG9sYXRlRHluYW1pY1BhdGgiLCJnZXROYW1lZFJvdXRlUmVnZXgiLCJkamIySGFzaCIsIm5vcm1hbGl6ZUFwcFBhdGgiLCJub3JtYWxpemVQYXRoU2VwIiwiZ2V0TWV0YWRhdGFSb3V0ZVN1ZmZpeCIsInBhZ2UiLCJzdWZmaXgiLCJpbmNsdWRlcyIsInRvU3RyaW5nIiwic2xpY2UiLCJmaWxsTWV0YWRhdGFTZWdtZW50Iiwic2VnbWVudCIsInBhcmFtcyIsImltYWdlU2VnbWVudCIsInBhdGhuYW1lIiwicm91dGVSZWdleCIsInJvdXRlIiwicm91dGVTdWZmaXgiLCJuYW1lIiwiZXh0IiwicGFyc2UiLCJqb2luIiwibm9ybWFsaXplTWV0YWRhdGFSb3V0ZSIsImVuZHNXaXRoIiwicGF0aG5hbWVQcmVmaXgiLCJiYXNlbmFtZSIsImxlbmd0aCIsImRpciIsImJhc2VOYW1lIiwiaXNTdGF0aWNSb3V0ZSIsInBvc2l4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/lib/metadata/is-metadata-route.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/metadata/is-metadata-route.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ STATIC_METADATA_IMAGES: () => (/* binding */ STATIC_METADATA_IMAGES),\n/* harmony export */ isMetadataRoute: () => (/* binding */ isMetadataRoute),\n/* harmony export */ isMetadataRouteFile: () => (/* binding */ isMetadataRouteFile),\n/* harmony export */ isStaticMetadataRoute: () => (/* binding */ isStaticMetadataRoute),\n/* harmony export */ isStaticMetadataRouteFile: () => (/* binding */ isStaticMetadataRouteFile)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_page_path_normalize_path_sep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/lib/page-path/normalize-path-sep */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\");\n\nconst STATIC_METADATA_IMAGES = {\n icon: {\n filename: \"icon\",\n extensions: [\n \"ico\",\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"svg\"\n ]\n },\n apple: {\n filename: \"apple-icon\",\n extensions: [\n \"jpg\",\n \"jpeg\",\n \"png\"\n ]\n },\n favicon: {\n filename: \"favicon\",\n extensions: [\n \"ico\"\n ]\n },\n openGraph: {\n filename: \"opengraph-image\",\n extensions: [\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"gif\"\n ]\n },\n twitter: {\n filename: \"twitter-image\",\n extensions: [\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"gif\"\n ]\n }\n};\n// Match routes that are metadata routes, e.g. /sitemap.xml, /favicon.<ext>, /<icon>.<ext>, etc.\n// TODO-METADATA: support more metadata routes with more extensions\nconst defaultExtensions = [\n \"js\",\n \"jsx\",\n \"ts\",\n \"tsx\"\n];\nconst getExtensionRegexString = (extensions)=>`(?:${extensions.join(\"|\")})`;\n// When you only pass the file extension as `[]`, it will only match the static convention files\n// e.g. /robots.txt, /sitemap.xml, /favicon.ico, /manifest.json\n// When you pass the file extension as `['js', 'jsx', 'ts', 'tsx']`, it will also match the dynamic convention files\n// e.g. /robots.js, /sitemap.tsx, /favicon.jsx, /manifest.ts\n// When `withExtension` is false, it will match the static convention files without the extension, by default it's true\n// e.g. /robots, /sitemap, /favicon, /manifest, use to match dynamic API routes like app/robots.ts\nfunction isMetadataRouteFile(appDirRelativePath, pageExtensions, withExtension) {\n const metadataRouteFilesRegex = [\n new RegExp(`^[\\\\\\\\/]robots${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(\"txt\"))}$` : \"\"}`),\n new RegExp(`^[\\\\\\\\/]manifest${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(\"webmanifest\", \"json\"))}$` : \"\"}`),\n new RegExp(`^[\\\\\\\\/]favicon\\\\.ico$`),\n new RegExp(`[\\\\\\\\/]sitemap${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(\"xml\"))}$` : \"\"}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.icon.filename}\\\\d?${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.icon.extensions))}$` : \"\"}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.apple.filename}\\\\d?${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.apple.extensions))}$` : \"\"}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}\\\\d?${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.openGraph.extensions))}$` : \"\"}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}\\\\d?${withExtension ? `\\\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.twitter.extensions))}$` : \"\"}`)\n ];\n const normalizedAppDirRelativePath = (0,_shared_lib_page_path_normalize_path_sep__WEBPACK_IMPORTED_MODULE_0__.normalizePathSep)(appDirRelativePath);\n return metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath));\n}\nfunction isStaticMetadataRouteFile(appDirRelativePath) {\n return isMetadataRouteFile(appDirRelativePath, [], true);\n}\nfunction isStaticMetadataRoute(page) {\n return page === \"/robots\" || page === \"/manifest\" || isStaticMetadataRouteFile(page);\n}\n/*\n * Remove the 'app' prefix or '/route' suffix, only check the route name since they're only allowed in root app directory\n * e.g.\n * /app/robots -> /robots\n * app/robots -> /robots\n * /robots -> /robots\n */ function isMetadataRoute(route) {\n let page = route.replace(/^\\/?app\\//, \"\").replace(/\\/route$/, \"\");\n if (page[0] !== \"/\") page = \"/\" + page;\n return !page.endsWith(\"/page\") && isMetadataRouteFile(page, defaultExtensions, false);\n} //# sourceMappingURL=is-metadata-route.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2lzLW1ldGFkYXRhLXJvdXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFpRjtBQUMxRSxNQUFNQyx5QkFBeUI7SUFDbENDLE1BQU07UUFDRkMsVUFBVTtRQUNWQyxZQUFZO1lBQ1I7WUFDQTtZQUNBO1lBQ0E7WUFDQTtTQUNIO0lBQ0w7SUFDQUMsT0FBTztRQUNIRixVQUFVO1FBQ1ZDLFlBQVk7WUFDUjtZQUNBO1lBQ0E7U0FDSDtJQUNMO0lBQ0FFLFNBQVM7UUFDTEgsVUFBVTtRQUNWQyxZQUFZO1lBQ1I7U0FDSDtJQUNMO0lBQ0FHLFdBQVc7UUFDUEosVUFBVTtRQUNWQyxZQUFZO1lBQ1I7WUFDQTtZQUNBO1lBQ0E7U0FDSDtJQUNMO0lBQ0FJLFNBQVM7UUFDTEwsVUFBVTtRQUNWQyxZQUFZO1lBQ1I7WUFDQTtZQUNBO1lBQ0E7U0FDSDtJQUNMO0FBQ0osRUFBRTtBQUNGLGdHQUFnRztBQUNoRyxtRUFBbUU7QUFDbkUsTUFBTUssb0JBQW9CO0lBQ3RCO0lBQ0E7SUFDQTtJQUNBO0NBQ0g7QUFDRCxNQUFNQywwQkFBMEIsQ0FBQ04sYUFBYSxDQUFDLEdBQUcsRUFBRUEsV0FBV08sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNFLGdHQUFnRztBQUNoRywrREFBK0Q7QUFDL0Qsb0hBQW9IO0FBQ3BILDREQUE0RDtBQUM1RCx1SEFBdUg7QUFDdkgsa0dBQWtHO0FBQzNGLFNBQVNDLG9CQUFvQkMsa0JBQWtCLEVBQUVDLGNBQWMsRUFBRUMsYUFBYTtJQUNqRixNQUFNQywwQkFBMEI7UUFDNUIsSUFBSUMsT0FBTyxDQUFDLGNBQWMsRUFBRUYsZ0JBQWdCLENBQUMsR0FBRyxFQUFFTCx3QkFBd0JJLGVBQWVJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNqSCxJQUFJRCxPQUFPLENBQUMsZ0JBQWdCLEVBQUVGLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUMsZUFBZSxTQUFTLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNuSSxJQUFJRCxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDbkMsSUFBSUEsT0FBTyxDQUFDLGNBQWMsRUFBRUYsZ0JBQWdCLENBQUMsR0FBRyxFQUFFTCx3QkFBd0JJLGVBQWVJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNqSCxJQUFJRCxPQUFPLENBQUMsT0FBTyxFQUFFaEIsdUJBQXVCQyxJQUFJLENBQUNDLFFBQVEsQ0FBQyxJQUFJLEVBQUVZLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUNqQix1QkFBdUJDLElBQUksQ0FBQ0UsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN0TCxJQUFJYSxPQUFPLENBQUMsT0FBTyxFQUFFaEIsdUJBQXVCSSxLQUFLLENBQUNGLFFBQVEsQ0FBQyxJQUFJLEVBQUVZLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUNqQix1QkFBdUJJLEtBQUssQ0FBQ0QsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN4TCxJQUFJYSxPQUFPLENBQUMsT0FBTyxFQUFFaEIsdUJBQXVCTSxTQUFTLENBQUNKLFFBQVEsQ0FBQyxJQUFJLEVBQUVZLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUNqQix1QkFBdUJNLFNBQVMsQ0FBQ0gsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNoTSxJQUFJYSxPQUFPLENBQUMsT0FBTyxFQUFFaEIsdUJBQXVCTyxPQUFPLENBQUNMLFFBQVEsQ0FBQyxJQUFJLEVBQUVZLGdCQUFnQixDQUFDLEdBQUcsRUFBRUwsd0JBQXdCSSxlQUFlSSxNQUFNLENBQUNqQix1QkFBdUJPLE9BQU8sQ0FBQ0osVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUMvTDtJQUNELE1BQU1lLCtCQUErQm5CLDBGQUFnQkEsQ0FBQ2E7SUFDdEQsT0FBT0csd0JBQXdCSSxJQUFJLENBQUMsQ0FBQ0MsSUFBSUEsRUFBRUMsSUFBSSxDQUFDSDtBQUNwRDtBQUNPLFNBQVNJLDBCQUEwQlYsa0JBQWtCO0lBQ3hELE9BQU9ELG9CQUFvQkMsb0JBQW9CLEVBQUUsRUFBRTtBQUN2RDtBQUNPLFNBQVNXLHNCQUFzQkMsSUFBSTtJQUN0QyxPQUFPQSxTQUFTLGFBQWFBLFNBQVMsZUFBZUYsMEJBQTBCRTtBQUNuRjtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNDLGdCQUFnQkMsS0FBSztJQUNyQyxJQUFJRixPQUFPRSxNQUFNQyxPQUFPLENBQUMsYUFBYSxJQUFJQSxPQUFPLENBQUMsWUFBWTtJQUM5RCxJQUFJSCxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDbEMsT0FBTyxDQUFDQSxLQUFLSSxRQUFRLENBQUMsWUFBWWpCLG9CQUFvQmEsTUFBTWhCLG1CQUFtQjtBQUNuRixFQUVBLDZDQUE2QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL21ldGFkYXRhL2lzLW1ldGFkYXRhLXJvdXRlLmpzPzk1NWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplUGF0aFNlcCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXBcIjtcbmV4cG9ydCBjb25zdCBTVEFUSUNfTUVUQURBVEFfSU1BR0VTID0ge1xuICAgIGljb246IHtcbiAgICAgICAgZmlsZW5hbWU6IFwiaWNvblwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICBcImljb1wiLFxuICAgICAgICAgICAgXCJqcGdcIixcbiAgICAgICAgICAgIFwianBlZ1wiLFxuICAgICAgICAgICAgXCJwbmdcIixcbiAgICAgICAgICAgIFwic3ZnXCJcbiAgICAgICAgXVxuICAgIH0sXG4gICAgYXBwbGU6IHtcbiAgICAgICAgZmlsZW5hbWU6IFwiYXBwbGUtaWNvblwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICBcImpwZ1wiLFxuICAgICAgICAgICAgXCJqcGVnXCIsXG4gICAgICAgICAgICBcInBuZ1wiXG4gICAgICAgIF1cbiAgICB9LFxuICAgIGZhdmljb246IHtcbiAgICAgICAgZmlsZW5hbWU6IFwiZmF2aWNvblwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICBcImljb1wiXG4gICAgICAgIF1cbiAgICB9LFxuICAgIG9wZW5HcmFwaDoge1xuICAgICAgICBmaWxlbmFtZTogXCJvcGVuZ3JhcGgtaW1hZ2VcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1xuICAgICAgICAgICAgXCJqcGdcIixcbiAgICAgICAgICAgIFwianBlZ1wiLFxuICAgICAgICAgICAgXCJwbmdcIixcbiAgICAgICAgICAgIFwiZ2lmXCJcbiAgICAgICAgXVxuICAgIH0sXG4gICAgdHdpdHRlcjoge1xuICAgICAgICBmaWxlbmFtZTogXCJ0d2l0dGVyLWltYWdlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICAgIFwianBnXCIsXG4gICAgICAgICAgICBcImpwZWdcIixcbiAgICAgICAgICAgIFwicG5nXCIsXG4gICAgICAgICAgICBcImdpZlwiXG4gICAgICAgIF1cbiAgICB9XG59O1xuLy8gTWF0Y2ggcm91dGVzIHRoYXQgYXJlIG1ldGFkYXRhIHJvdXRlcywgZS5nLiAvc2l0ZW1hcC54bWwsIC9mYXZpY29uLjxleHQ+LCAvPGljb24+LjxleHQ+LCBldGMuXG4vLyBUT0RPLU1FVEFEQVRBOiBzdXBwb3J0IG1vcmUgbWV0YWRhdGEgcm91dGVzIHdpdGggbW9yZSBleHRlbnNpb25zXG5jb25zdCBkZWZhdWx0RXh0ZW5zaW9ucyA9IFtcbiAgICBcImpzXCIsXG4gICAgXCJqc3hcIixcbiAgICBcInRzXCIsXG4gICAgXCJ0c3hcIlxuXTtcbmNvbnN0IGdldEV4dGVuc2lvblJlZ2V4U3RyaW5nID0gKGV4dGVuc2lvbnMpPT5gKD86JHtleHRlbnNpb25zLmpvaW4oXCJ8XCIpfSlgO1xuLy8gV2hlbiB5b3Ugb25seSBwYXNzIHRoZSBmaWxlIGV4dGVuc2lvbiBhcyBgW11gLCBpdCB3aWxsIG9ubHkgbWF0Y2ggdGhlIHN0YXRpYyBjb252ZW50aW9uIGZpbGVzXG4vLyBlLmcuIC9yb2JvdHMudHh0LCAvc2l0ZW1hcC54bWwsIC9mYXZpY29uLmljbywgL21hbmlmZXN0Lmpzb25cbi8vIFdoZW4geW91IHBhc3MgdGhlIGZpbGUgZXh0ZW5zaW9uIGFzIGBbJ2pzJywgJ2pzeCcsICd0cycsICd0c3gnXWAsIGl0IHdpbGwgYWxzbyBtYXRjaCB0aGUgZHluYW1pYyBjb252ZW50aW9uIGZpbGVzXG4vLyBlLmcuIC9yb2JvdHMuanMsIC9zaXRlbWFwLnRzeCwgL2Zhdmljb24uanN4LCAvbWFuaWZlc3QudHNcbi8vIFdoZW4gYHdpdGhFeHRlbnNpb25gIGlzIGZhbHNlLCBpdCB3aWxsIG1hdGNoIHRoZSBzdGF0aWMgY29udmVudGlvbiBmaWxlcyB3aXRob3V0IHRoZSBleHRlbnNpb24sIGJ5IGRlZmF1bHQgaXQncyB0cnVlXG4vLyBlLmcuIC9yb2JvdHMsIC9zaXRlbWFwLCAvZmF2aWNvbiwgL21hbmlmZXN0LCB1c2UgdG8gbWF0Y2ggZHluYW1pYyBBUEkgcm91dGVzIGxpa2UgYXBwL3JvYm90cy50c1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWV0YWRhdGFSb3V0ZUZpbGUoYXBwRGlyUmVsYXRpdmVQYXRoLCBwYWdlRXh0ZW5zaW9ucywgd2l0aEV4dGVuc2lvbikge1xuICAgIGNvbnN0IG1ldGFkYXRhUm91dGVGaWxlc1JlZ2V4ID0gW1xuICAgICAgICBuZXcgUmVnRXhwKGBeW1xcXFxcXFxcL11yb2JvdHMke3dpdGhFeHRlbnNpb24gPyBgXFxcXC4ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKHBhZ2VFeHRlbnNpb25zLmNvbmNhdChcInR4dFwiKSl9JGAgOiBcIlwifWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBeW1xcXFxcXFxcL11tYW5pZmVzdCR7d2l0aEV4dGVuc2lvbiA/IGBcXFxcLiR7Z2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmcocGFnZUV4dGVuc2lvbnMuY29uY2F0KFwid2VibWFuaWZlc3RcIiwgXCJqc29uXCIpKX0kYCA6IFwiXCJ9YCksXG4gICAgICAgIG5ldyBSZWdFeHAoYF5bXFxcXFxcXFwvXWZhdmljb25cXFxcLmljbyRgKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL11zaXRlbWFwJHt3aXRoRXh0ZW5zaW9uID8gYFxcXFwuJHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhwYWdlRXh0ZW5zaW9ucy5jb25jYXQoXCJ4bWxcIikpfSRgIDogXCJcIn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMuaWNvbi5maWxlbmFtZX1cXFxcZD8ke3dpdGhFeHRlbnNpb24gPyBgXFxcXC4ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKHBhZ2VFeHRlbnNpb25zLmNvbmNhdChTVEFUSUNfTUVUQURBVEFfSU1BR0VTLmljb24uZXh0ZW5zaW9ucykpfSRgIDogXCJcIn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMuYXBwbGUuZmlsZW5hbWV9XFxcXGQ/JHt3aXRoRXh0ZW5zaW9uID8gYFxcXFwuJHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhwYWdlRXh0ZW5zaW9ucy5jb25jYXQoU1RBVElDX01FVEFEQVRBX0lNQUdFUy5hcHBsZS5leHRlbnNpb25zKSl9JGAgOiBcIlwifWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBbXFxcXFxcXFwvXSR7U1RBVElDX01FVEFEQVRBX0lNQUdFUy5vcGVuR3JhcGguZmlsZW5hbWV9XFxcXGQ/JHt3aXRoRXh0ZW5zaW9uID8gYFxcXFwuJHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhwYWdlRXh0ZW5zaW9ucy5jb25jYXQoU1RBVElDX01FVEFEQVRBX0lNQUdFUy5vcGVuR3JhcGguZXh0ZW5zaW9ucykpfSRgIDogXCJcIn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMudHdpdHRlci5maWxlbmFtZX1cXFxcZD8ke3dpdGhFeHRlbnNpb24gPyBgXFxcXC4ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKHBhZ2VFeHRlbnNpb25zLmNvbmNhdChTVEFUSUNfTUVUQURBVEFfSU1BR0VTLnR3aXR0ZXIuZXh0ZW5zaW9ucykpfSRgIDogXCJcIn1gKVxuICAgIF07XG4gICAgY29uc3Qgbm9ybWFsaXplZEFwcERpclJlbGF0aXZlUGF0aCA9IG5vcm1hbGl6ZVBhdGhTZXAoYXBwRGlyUmVsYXRpdmVQYXRoKTtcbiAgICByZXR1cm4gbWV0YWRhdGFSb3V0ZUZpbGVzUmVnZXguc29tZSgocik9PnIudGVzdChub3JtYWxpemVkQXBwRGlyUmVsYXRpdmVQYXRoKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZShhcHBEaXJSZWxhdGl2ZVBhdGgpIHtcbiAgICByZXR1cm4gaXNNZXRhZGF0YVJvdXRlRmlsZShhcHBEaXJSZWxhdGl2ZVBhdGgsIFtdLCB0cnVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXRpY01ldGFkYXRhUm91dGUocGFnZSkge1xuICAgIHJldHVybiBwYWdlID09PSBcIi9yb2JvdHNcIiB8fCBwYWdlID09PSBcIi9tYW5pZmVzdFwiIHx8IGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUocGFnZSk7XG59XG4vKlxuICogUmVtb3ZlIHRoZSAnYXBwJyBwcmVmaXggb3IgJy9yb3V0ZScgc3VmZml4LCBvbmx5IGNoZWNrIHRoZSByb3V0ZSBuYW1lIHNpbmNlIHRoZXkncmUgb25seSBhbGxvd2VkIGluIHJvb3QgYXBwIGRpcmVjdG9yeVxuICogZS5nLlxuICogL2FwcC9yb2JvdHMgLT4gL3JvYm90c1xuICogYXBwL3JvYm90cyAtPiAvcm9ib3RzXG4gKiAvcm9ib3RzIC0+IC9yb2JvdHNcbiAqLyBleHBvcnQgZnVuY3Rpb24gaXNNZXRhZGF0YVJvdXRlKHJvdXRlKSB7XG4gICAgbGV0IHBhZ2UgPSByb3V0ZS5yZXBsYWNlKC9eXFwvP2FwcFxcLy8sIFwiXCIpLnJlcGxhY2UoL1xcL3JvdXRlJC8sIFwiXCIpO1xuICAgIGlmIChwYWdlWzBdICE9PSBcIi9cIikgcGFnZSA9IFwiL1wiICsgcGFnZTtcbiAgICByZXR1cm4gIXBhZ2UuZW5kc1dpdGgoXCIvcGFnZVwiKSAmJiBpc01ldGFkYXRhUm91dGVGaWxlKHBhZ2UsIGRlZmF1bHRFeHRlbnNpb25zLCBmYWxzZSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW1ldGFkYXRhLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6WyJub3JtYWxpemVQYXRoU2VwIiwiU1RBVElDX01FVEFEQVRBX0lNQUdFUyIsImljb24iLCJmaWxlbmFtZSIsImV4dGVuc2lvbnMiLCJhcHBsZSIsImZhdmljb24iLCJvcGVuR3JhcGgiLCJ0d2l0dGVyIiwiZGVmYXVsdEV4dGVuc2lvbnMiLCJnZXRFeHRlbnNpb25SZWdleFN0cmluZyIsImpvaW4iLCJpc01ldGFkYXRhUm91dGVGaWxlIiwiYXBwRGlyUmVsYXRpdmVQYXRoIiwicGFnZUV4dGVuc2lvbnMiLCJ3aXRoRXh0ZW5zaW9uIiwibWV0YWRhdGFSb3V0ZUZpbGVzUmVnZXgiLCJSZWdFeHAiLCJjb25jYXQiLCJub3JtYWxpemVkQXBwRGlyUmVsYXRpdmVQYXRoIiwic29tZSIsInIiLCJ0ZXN0IiwiaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSIsImlzU3RhdGljTWV0YWRhdGFSb3V0ZSIsInBhZ2UiLCJpc01ldGFkYXRhUm91dGUiLCJyb3V0ZSIsInJlcGxhY2UiLCJlbmRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/lib/metadata/is-metadata-route.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/lib/picocolors.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/next/dist/esm/lib/picocolors.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bgBlack: () => (/* binding */ bgBlack),\n/* harmony export */ bgBlue: () => (/* binding */ bgBlue),\n/* harmony export */ bgCyan: () => (/* binding */ bgCyan),\n/* harmony export */ bgGreen: () => (/* binding */ bgGreen),\n/* harmony export */ bgMagenta: () => (/* binding */ bgMagenta),\n/* harmony export */ bgRed: () => (/* binding */ bgRed),\n/* harmony export */ bgWhite: () => (/* binding */ bgWhite),\n/* harmony export */ bgYellow: () => (/* binding */ bgYellow),\n/* harmony export */ black: () => (/* binding */ black),\n/* harmony export */ blue: () => (/* binding */ blue),\n/* harmony export */ bold: () => (/* binding */ bold),\n/* harmony export */ cyan: () => (/* binding */ cyan),\n/* harmony export */ dim: () => (/* binding */ dim),\n/* harmony export */ gray: () => (/* binding */ gray),\n/* harmony export */ green: () => (/* binding */ green),\n/* harmony export */ hidden: () => (/* binding */ hidden),\n/* harmony export */ inverse: () => (/* binding */ inverse),\n/* harmony export */ italic: () => (/* binding */ italic),\n/* harmony export */ magenta: () => (/* binding */ magenta),\n/* harmony export */ purple: () => (/* binding */ purple),\n/* harmony export */ red: () => (/* binding */ red),\n/* harmony export */ reset: () => (/* binding */ reset),\n/* harmony export */ strikethrough: () => (/* binding */ strikethrough),\n/* harmony export */ underline: () => (/* binding */ underline),\n/* harmony export */ white: () => (/* binding */ white),\n/* harmony export */ yellow: () => (/* binding */ yellow)\n/* harmony export */ });\n// ISC License\n// Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n//\n// https://github.com/alexeyraspopov/picocolors/blob/b6261487e7b81aaab2440e397a356732cad9e342/picocolors.js#L1\nvar _globalThis;\nconst { env, stdout } = ((_globalThis = globalThis) == null ? void 0 : _globalThis.process) ?? {};\nconst enabled = env && !env.NO_COLOR && (env.FORCE_COLOR || (stdout == null ? void 0 : stdout.isTTY) && !env.CI && env.TERM !== \"dumb\");\nconst replaceClose = (str, close, replace, index)=>{\n const start = str.substring(0, index) + replace;\n const end = str.substring(index + close.length);\n const nextIndex = end.indexOf(close);\n return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;\n};\nconst formatter = (open, close, replace = open)=>{\n if (!enabled) return String;\n return (input)=>{\n const string = \"\" + input;\n const index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n};\nconst reset = enabled ? (s)=>`\\x1b[0m${s}\\x1b[0m` : String;\nconst bold = formatter(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\");\nconst dim = formatter(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\");\nconst italic = formatter(\"\\x1b[3m\", \"\\x1b[23m\");\nconst underline = formatter(\"\\x1b[4m\", \"\\x1b[24m\");\nconst inverse = formatter(\"\\x1b[7m\", \"\\x1b[27m\");\nconst hidden = formatter(\"\\x1b[8m\", \"\\x1b[28m\");\nconst strikethrough = formatter(\"\\x1b[9m\", \"\\x1b[29m\");\nconst black = formatter(\"\\x1b[30m\", \"\\x1b[39m\");\nconst red = formatter(\"\\x1b[31m\", \"\\x1b[39m\");\nconst green = formatter(\"\\x1b[32m\", \"\\x1b[39m\");\nconst yellow = formatter(\"\\x1b[33m\", \"\\x1b[39m\");\nconst blue = formatter(\"\\x1b[34m\", \"\\x1b[39m\");\nconst magenta = formatter(\"\\x1b[35m\", \"\\x1b[39m\");\nconst purple = formatter(\"\\x1b[38;2;173;127;168m\", \"\\x1b[39m\");\nconst cyan = formatter(\"\\x1b[36m\", \"\\x1b[39m\");\nconst white = formatter(\"\\x1b[37m\", \"\\x1b[39m\");\nconst gray = formatter(\"\\x1b[90m\", \"\\x1b[39m\");\nconst bgBlack = formatter(\"\\x1b[40m\", \"\\x1b[49m\");\nconst bgRed = formatter(\"\\x1b[41m\", \"\\x1b[49m\");\nconst bgGreen = formatter(\"\\x1b[42m\", \"\\x1b[49m\");\nconst bgYellow = formatter(\"\\x1b[43m\", \"\\x1b[49m\");\nconst bgBlue = formatter(\"\\x1b[44m\", \"\\x1b[49m\");\nconst bgMagenta = formatter(\"\\x1b[45m\", \"\\x1b[49m\");\nconst bgCyan = formatter(\"\\x1b[46m\", \"\\x1b[49m\");\nconst bgWhite = formatter(\"\\x1b[47m\", \"\\x1b[49m\"); //# sourceMappingURL=picocolors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vbGliL3BpY29jb2xvcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxjQUFjO0FBQ2Qsd0VBQXdFO0FBQ3hFLDJFQUEyRTtBQUMzRSx5RUFBeUU7QUFDekUsb0VBQW9FO0FBQ3BFLDJFQUEyRTtBQUMzRSxtRUFBbUU7QUFDbkUsMEVBQTBFO0FBQzFFLHlFQUF5RTtBQUN6RSx3RUFBd0U7QUFDeEUsMEVBQTBFO0FBQzFFLGlFQUFpRTtBQUNqRSxFQUFFO0FBQ0YsOEdBQThHO0FBQzlHLElBQUlBO0FBQ0osTUFBTSxFQUFFQyxHQUFHLEVBQUVDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQ0YsY0FBY0csVUFBUyxLQUFNLE9BQU8sS0FBSyxJQUFJSCxZQUFZSSxPQUFPLEtBQUssQ0FBQztBQUNoRyxNQUFNQyxVQUFVSixPQUFPLENBQUNBLElBQUlLLFFBQVEsSUFBS0wsQ0FBQUEsSUFBSU0sV0FBVyxJQUFJLENBQUNMLFVBQVUsT0FBTyxLQUFLLElBQUlBLE9BQU9NLEtBQUssS0FBSyxDQUFDUCxJQUFJUSxFQUFFLElBQUlSLElBQUlTLElBQUksS0FBSyxNQUFLO0FBQ3JJLE1BQU1DLGVBQWUsQ0FBQ0MsS0FBS0MsT0FBT0MsU0FBU0M7SUFDdkMsTUFBTUMsUUFBUUosSUFBSUssU0FBUyxDQUFDLEdBQUdGLFNBQVNEO0lBQ3hDLE1BQU1JLE1BQU1OLElBQUlLLFNBQVMsQ0FBQ0YsUUFBUUYsTUFBTU0sTUFBTTtJQUM5QyxNQUFNQyxZQUFZRixJQUFJRyxPQUFPLENBQUNSO0lBQzlCLE9BQU8sQ0FBQ08sWUFBWUosUUFBUUwsYUFBYU8sS0FBS0wsT0FBT0MsU0FBU00sYUFBYUosUUFBUUU7QUFDdkY7QUFDQSxNQUFNSSxZQUFZLENBQUNDLE1BQU1WLE9BQU9DLFVBQVVTLElBQUk7SUFDMUMsSUFBSSxDQUFDbEIsU0FBUyxPQUFPbUI7SUFDckIsT0FBTyxDQUFDQztRQUNKLE1BQU1DLFNBQVMsS0FBS0Q7UUFDcEIsTUFBTVYsUUFBUVcsT0FBT0wsT0FBTyxDQUFDUixPQUFPVSxLQUFLSixNQUFNO1FBQy9DLE9BQU8sQ0FBQ0osUUFBUVEsT0FBT1osYUFBYWUsUUFBUWIsT0FBT0MsU0FBU0MsU0FBU0YsUUFBUVUsT0FBT0csU0FBU2I7SUFDakc7QUFDSjtBQUNPLE1BQU1jLFFBQVF0QixVQUFVLENBQUN1QixJQUFJLENBQUMsT0FBTyxFQUFFQSxFQUFFLE9BQU8sQ0FBQyxHQUFHSixPQUFPO0FBQzNELE1BQU1LLE9BQU9QLFVBQVUsV0FBVyxZQUFZLG1CQUFtQjtBQUNqRSxNQUFNUSxNQUFNUixVQUFVLFdBQVcsWUFBWSxtQkFBbUI7QUFDaEUsTUFBTVMsU0FBU1QsVUFBVSxXQUFXLFlBQVk7QUFDaEQsTUFBTVUsWUFBWVYsVUFBVSxXQUFXLFlBQVk7QUFDbkQsTUFBTVcsVUFBVVgsVUFBVSxXQUFXLFlBQVk7QUFDakQsTUFBTVksU0FBU1osVUFBVSxXQUFXLFlBQVk7QUFDaEQsTUFBTWEsZ0JBQWdCYixVQUFVLFdBQVcsWUFBWTtBQUN2RCxNQUFNYyxRQUFRZCxVQUFVLFlBQVksWUFBWTtBQUNoRCxNQUFNZSxNQUFNZixVQUFVLFlBQVksWUFBWTtBQUM5QyxNQUFNZ0IsUUFBUWhCLFVBQVUsWUFBWSxZQUFZO0FBQ2hELE1BQU1pQixTQUFTakIsVUFBVSxZQUFZLFlBQVk7QUFDakQsTUFBTWtCLE9BQU9sQixVQUFVLFlBQVksWUFBWTtBQUMvQyxNQUFNbUIsVUFBVW5CLFVBQVUsWUFBWSxZQUFZO0FBQ2xELE1BQU1vQixTQUFTcEIsVUFBVSwwQkFBMEIsWUFBWTtBQUMvRCxNQUFNcUIsT0FBT3JCLFVBQVUsWUFBWSxZQUFZO0FBQy9DLE1BQU1zQixRQUFRdEIsVUFBVSxZQUFZLFlBQVk7QUFDaEQsTUFBTXVCLE9BQU92QixVQUFVLFlBQVksWUFBWTtBQUMvQyxNQUFNd0IsVUFBVXhCLFVBQVUsWUFBWSxZQUFZO0FBQ2xELE1BQU15QixRQUFRekIsVUFBVSxZQUFZLFlBQVk7QUFDaEQsTUFBTTBCLFVBQVUxQixVQUFVLFlBQVksWUFBWTtBQUNsRCxNQUFNMkIsV0FBVzNCLFVBQVUsWUFBWSxZQUFZO0FBQ25ELE1BQU00QixTQUFTNUIsVUFBVSxZQUFZLFlBQVk7QUFDakQsTUFBTTZCLFlBQVk3QixVQUFVLFlBQVksWUFBWTtBQUNwRCxNQUFNOEIsU0FBUzlCLFVBQVUsWUFBWSxZQUFZO0FBQ2pELE1BQU0rQixVQUFVL0IsVUFBVSxZQUFZLFlBQVksQ0FFekQsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9saWIvcGljb2NvbG9ycy5qcz9lMDdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIElTQyBMaWNlbnNlXG4vLyBDb3B5cmlnaHQgKGMpIDIwMjEgQWxleGV5IFJhc3BvcG92LCBLb3N0aWFudHluIERlbnlzb3YsIEFudG9uIFZlcmlub3Zcbi8vIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuLy8gcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZVxuLy8gY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy5cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTXG4vLyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUlxuLy8gQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFU1xuLy8gV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOXG4vLyBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRlxuLy8gT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbi8vXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYWxleGV5cmFzcG9wb3YvcGljb2NvbG9ycy9ibG9iL2I2MjYxNDg3ZTdiODFhYWFiMjQ0MGUzOTdhMzU2NzMyY2FkOWUzNDIvcGljb2NvbG9ycy5qcyNMMVxudmFyIF9nbG9iYWxUaGlzO1xuY29uc3QgeyBlbnYsIHN0ZG91dCB9ID0gKChfZ2xvYmFsVGhpcyA9IGdsb2JhbFRoaXMpID09IG51bGwgPyB2b2lkIDAgOiBfZ2xvYmFsVGhpcy5wcm9jZXNzKSA/PyB7fTtcbmNvbnN0IGVuYWJsZWQgPSBlbnYgJiYgIWVudi5OT19DT0xPUiAmJiAoZW52LkZPUkNFX0NPTE9SIHx8IChzdGRvdXQgPT0gbnVsbCA/IHZvaWQgMCA6IHN0ZG91dC5pc1RUWSkgJiYgIWVudi5DSSAmJiBlbnYuVEVSTSAhPT0gXCJkdW1iXCIpO1xuY29uc3QgcmVwbGFjZUNsb3NlID0gKHN0ciwgY2xvc2UsIHJlcGxhY2UsIGluZGV4KT0+e1xuICAgIGNvbnN0IHN0YXJ0ID0gc3RyLnN1YnN0cmluZygwLCBpbmRleCkgKyByZXBsYWNlO1xuICAgIGNvbnN0IGVuZCA9IHN0ci5zdWJzdHJpbmcoaW5kZXggKyBjbG9zZS5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRJbmRleCA9IGVuZC5pbmRleE9mKGNsb3NlKTtcbiAgICByZXR1cm4gfm5leHRJbmRleCA/IHN0YXJ0ICsgcmVwbGFjZUNsb3NlKGVuZCwgY2xvc2UsIHJlcGxhY2UsIG5leHRJbmRleCkgOiBzdGFydCArIGVuZDtcbn07XG5jb25zdCBmb3JtYXR0ZXIgPSAob3BlbiwgY2xvc2UsIHJlcGxhY2UgPSBvcGVuKT0+e1xuICAgIGlmICghZW5hYmxlZCkgcmV0dXJuIFN0cmluZztcbiAgICByZXR1cm4gKGlucHV0KT0+e1xuICAgICAgICBjb25zdCBzdHJpbmcgPSBcIlwiICsgaW5wdXQ7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIH5pbmRleCA/IG9wZW4gKyByZXBsYWNlQ2xvc2Uoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpICsgY2xvc2UgOiBvcGVuICsgc3RyaW5nICsgY2xvc2U7XG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzZXQgPSBlbmFibGVkID8gKHMpPT5gXFx4MWJbMG0ke3N9XFx4MWJbMG1gIDogU3RyaW5nO1xuZXhwb3J0IGNvbnN0IGJvbGQgPSBmb3JtYXR0ZXIoXCJcXHgxYlsxbVwiLCBcIlxceDFiWzIybVwiLCBcIlxceDFiWzIybVxceDFiWzFtXCIpO1xuZXhwb3J0IGNvbnN0IGRpbSA9IGZvcm1hdHRlcihcIlxceDFiWzJtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMm1cIik7XG5leHBvcnQgY29uc3QgaXRhbGljID0gZm9ybWF0dGVyKFwiXFx4MWJbM21cIiwgXCJcXHgxYlsyM21cIik7XG5leHBvcnQgY29uc3QgdW5kZXJsaW5lID0gZm9ybWF0dGVyKFwiXFx4MWJbNG1cIiwgXCJcXHgxYlsyNG1cIik7XG5leHBvcnQgY29uc3QgaW52ZXJzZSA9IGZvcm1hdHRlcihcIlxceDFiWzdtXCIsIFwiXFx4MWJbMjdtXCIpO1xuZXhwb3J0IGNvbnN0IGhpZGRlbiA9IGZvcm1hdHRlcihcIlxceDFiWzhtXCIsIFwiXFx4MWJbMjhtXCIpO1xuZXhwb3J0IGNvbnN0IHN0cmlrZXRocm91Z2ggPSBmb3JtYXR0ZXIoXCJcXHgxYls5bVwiLCBcIlxceDFiWzI5bVwiKTtcbmV4cG9ydCBjb25zdCBibGFjayA9IGZvcm1hdHRlcihcIlxceDFiWzMwbVwiLCBcIlxceDFiWzM5bVwiKTtcbmV4cG9ydCBjb25zdCByZWQgPSBmb3JtYXR0ZXIoXCJcXHgxYlszMW1cIiwgXCJcXHgxYlszOW1cIik7XG5leHBvcnQgY29uc3QgZ3JlZW4gPSBmb3JtYXR0ZXIoXCJcXHgxYlszMm1cIiwgXCJcXHgxYlszOW1cIik7XG5leHBvcnQgY29uc3QgeWVsbG93ID0gZm9ybWF0dGVyKFwiXFx4MWJbMzNtXCIsIFwiXFx4MWJbMzltXCIpO1xuZXhwb3J0IGNvbnN0IGJsdWUgPSBmb3JtYXR0ZXIoXCJcXHgxYlszNG1cIiwgXCJcXHgxYlszOW1cIik7XG5leHBvcnQgY29uc3QgbWFnZW50YSA9IGZvcm1hdHRlcihcIlxceDFiWzM1bVwiLCBcIlxceDFiWzM5bVwiKTtcbmV4cG9ydCBjb25zdCBwdXJwbGUgPSBmb3JtYXR0ZXIoXCJcXHgxYlszODsyOzE3MzsxMjc7MTY4bVwiLCBcIlxceDFiWzM5bVwiKTtcbmV4cG9ydCBjb25zdCBjeWFuID0gZm9ybWF0dGVyKFwiXFx4MWJbMzZtXCIsIFwiXFx4MWJbMzltXCIpO1xuZXhwb3J0IGNvbnN0IHdoaXRlID0gZm9ybWF0dGVyKFwiXFx4MWJbMzdtXCIsIFwiXFx4MWJbMzltXCIpO1xuZXhwb3J0IGNvbnN0IGdyYXkgPSBmb3JtYXR0ZXIoXCJcXHgxYls5MG1cIiwgXCJcXHgxYlszOW1cIik7XG5leHBvcnQgY29uc3QgYmdCbGFjayA9IGZvcm1hdHRlcihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKTtcbmV4cG9ydCBjb25zdCBiZ1JlZCA9IGZvcm1hdHRlcihcIlxceDFiWzQxbVwiLCBcIlxceDFiWzQ5bVwiKTtcbmV4cG9ydCBjb25zdCBiZ0dyZWVuID0gZm9ybWF0dGVyKFwiXFx4MWJbNDJtXCIsIFwiXFx4MWJbNDltXCIpO1xuZXhwb3J0IGNvbnN0IGJnWWVsbG93ID0gZm9ybWF0dGVyKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpO1xuZXhwb3J0IGNvbnN0IGJnQmx1ZSA9IGZvcm1hdHRlcihcIlxceDFiWzQ0bVwiLCBcIlxceDFiWzQ5bVwiKTtcbmV4cG9ydCBjb25zdCBiZ01hZ2VudGEgPSBmb3JtYXR0ZXIoXCJcXHgxYls0NW1cIiwgXCJcXHgxYls0OW1cIik7XG5leHBvcnQgY29uc3QgYmdDeWFuID0gZm9ybWF0dGVyKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpO1xuZXhwb3J0IGNvbnN0IGJnV2hpdGUgPSBmb3JtYXR0ZXIoXCJcXHgxYls0N21cIiwgXCJcXHgxYls0OW1cIik7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBpY29jb2xvcnMuanMubWFwIl0sIm5hbWVzIjpbIl9nbG9iYWxUaGlzIiwiZW52Iiwic3Rkb3V0IiwiZ2xvYmFsVGhpcyIsInByb2Nlc3MiLCJlbmFibGVkIiwiTk9fQ09MT1IiLCJGT1JDRV9DT0xPUiIsImlzVFRZIiwiQ0kiLCJURVJNIiwicmVwbGFjZUNsb3NlIiwic3RyIiwiY2xvc2UiLCJyZXBsYWNlIiwiaW5kZXgiLCJzdGFydCIsInN1YnN0cmluZyIsImVuZCIsImxlbmd0aCIsIm5leHRJbmRleCIsImluZGV4T2YiLCJmb3JtYXR0ZXIiLCJvcGVuIiwiU3RyaW5nIiwiaW5wdXQiLCJzdHJpbmciLCJyZXNldCIsInMiLCJib2xkIiwiZGltIiwiaXRhbGljIiwidW5kZXJsaW5lIiwiaW52ZXJzZSIsImhpZGRlbiIsInN0cmlrZXRocm91Z2giLCJibGFjayIsInJlZCIsImdyZWVuIiwieWVsbG93IiwiYmx1ZSIsIm1hZ2VudGEiLCJwdXJwbGUiLCJjeWFuIiwid2hpdGUiLCJncmF5IiwiYmdCbGFjayIsImJnUmVkIiwiYmdHcmVlbiIsImJnWWVsbG93IiwiYmdCbHVlIiwiYmdNYWdlbnRhIiwiYmdDeWFuIiwiYmdXaGl0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/lib/picocolors.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getCookieParser: () => (/* binding */ getCookieParser)\n/* harmony export */ });\n/**\n * Parse cookies from the `headers` of request\n * @param req request object\n */ function getCookieParser(headers) {\n return function parseCookie() {\n const { cookie } = headers;\n if (!cookie) {\n return {};\n }\n const { parse: parseCookieFn } = __webpack_require__(/*! next/dist/compiled/cookie */ \"(rsc)/../../node_modules/next/dist/compiled/cookie/index.js\");\n return parseCookieFn(Array.isArray(cookie) ? cookie.join(\"; \") : cookie);\n };\n} //# sourceMappingURL=get-cookie-parser.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwaS11dGlscy9nZXQtY29va2llLXBhcnNlci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7OztDQUdDLEdBQVUsU0FBU0EsZ0JBQWdCQyxPQUFPO0lBQ3ZDLE9BQU8sU0FBU0M7UUFDWixNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHRjtRQUNuQixJQUFJLENBQUNFLFFBQVE7WUFDVCxPQUFPLENBQUM7UUFDWjtRQUNBLE1BQU0sRUFBRUMsT0FBT0MsYUFBYSxFQUFFLEdBQUdDLG1CQUFPQSxDQUFDLDhGQUEyQjtRQUNwRSxPQUFPRCxjQUFjRSxNQUFNQyxPQUFPLENBQUNMLFVBQVVBLE9BQU9NLElBQUksQ0FBQyxRQUFRTjtJQUNyRTtBQUNKLEVBRUEsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBpLXV0aWxzL2dldC1jb29raWUtcGFyc2VyLmpzPzkzYzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJzZSBjb29raWVzIGZyb20gdGhlIGBoZWFkZXJzYCBvZiByZXF1ZXN0XG4gKiBAcGFyYW0gcmVxIHJlcXVlc3Qgb2JqZWN0XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldENvb2tpZVBhcnNlcihoZWFkZXJzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHBhcnNlQ29va2llKCkge1xuICAgICAgICBjb25zdCB7IGNvb2tpZSB9ID0gaGVhZGVycztcbiAgICAgICAgaWYgKCFjb29raWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHBhcnNlOiBwYXJzZUNvb2tpZUZuIH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZVwiKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ29va2llRm4oQXJyYXkuaXNBcnJheShjb29raWUpID8gY29va2llLmpvaW4oXCI7IFwiKSA6IGNvb2tpZSk7XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWNvb2tpZS1wYXJzZXIuanMubWFwIl0sIm5hbWVzIjpbImdldENvb2tpZVBhcnNlciIsImhlYWRlcnMiLCJwYXJzZUNvb2tpZSIsImNvb2tpZSIsInBhcnNlIiwicGFyc2VDb29raWVGbiIsInJlcXVpcmUiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/app-render/entry-base.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/entry-base.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRouter: () => (/* reexport safe */ _client_components_app_router__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ LayoutRouter: () => (/* reexport safe */ _client_components_layout_router__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ NotFoundBoundary: () => (/* reexport safe */ _client_components_not_found_boundary__WEBPACK_IMPORTED_MODULE_11__.NotFoundBoundary),\n/* harmony export */ RenderFromTemplateContext: () => (/* reexport safe */ _client_components_render_from_template_context__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ StaticGenerationSearchParamsBailoutProvider: () => (/* reexport safe */ _client_components_static_generation_searchparams_bailout_provider__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n/* harmony export */ actionAsyncStorage: () => (/* reexport safe */ _client_components_action_async_storage_external__WEBPACK_IMPORTED_MODULE_6__.actionAsyncStorage),\n/* harmony export */ createSearchParamsBailoutProxy: () => (/* reexport safe */ _client_components_searchparams_bailout_proxy__WEBPACK_IMPORTED_MODULE_9__.createSearchParamsBailoutProxy),\n/* harmony export */ decodeAction: () => (/* reexport safe */ react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__.decodeAction),\n/* harmony export */ decodeFormState: () => (/* reexport safe */ react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__.decodeFormState),\n/* harmony export */ decodeReply: () => (/* reexport safe */ react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__.decodeReply),\n/* harmony export */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ preconnect: () => (/* reexport safe */ _server_app_render_rsc_preloads__WEBPACK_IMPORTED_MODULE_14__.preconnect),\n/* harmony export */ preloadFont: () => (/* reexport safe */ _server_app_render_rsc_preloads__WEBPACK_IMPORTED_MODULE_14__.preloadFont),\n/* harmony export */ preloadStyle: () => (/* reexport safe */ _server_app_render_rsc_preloads__WEBPACK_IMPORTED_MODULE_14__.preloadStyle),\n/* harmony export */ renderToReadableStream: () => (/* reexport safe */ react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__.renderToReadableStream),\n/* harmony export */ requestAsyncStorage: () => (/* reexport safe */ _client_components_request_async_storage_external__WEBPACK_IMPORTED_MODULE_5__.requestAsyncStorage),\n/* harmony export */ serverHooks: () => (/* reexport module object */ _client_components_hooks_server_context__WEBPACK_IMPORTED_MODULE_10__),\n/* harmony export */ staticGenerationAsyncStorage: () => (/* reexport safe */ _client_components_static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_4__.staticGenerationAsyncStorage),\n/* harmony export */ staticGenerationBailout: () => (/* reexport safe */ _client_components_static_generation_bailout__WEBPACK_IMPORTED_MODULE_7__.staticGenerationBailout),\n/* harmony export */ taintObjectReference: () => (/* reexport safe */ _server_app_render_rsc_taint__WEBPACK_IMPORTED_MODULE_15__.taintObjectReference)\n/* harmony export */ });\n/* harmony import */ var react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server.edge */ \"(rsc)/../../node_modules/next/dist/compiled/react-server-dom-webpack/server.edge.js\");\n/* harmony import */ var _client_components_app_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../client/components/app-router */ \"(rsc)/../../node_modules/next/dist/esm/client/components/app-router.js\");\n/* harmony import */ var _client_components_layout_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../client/components/layout-router */ \"(rsc)/../../node_modules/next/dist/esm/client/components/layout-router.js\");\n/* harmony import */ var _client_components_render_from_template_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../client/components/render-from-template-context */ \"(rsc)/../../node_modules/next/dist/esm/client/components/render-from-template-context.js\");\n/* harmony import */ var _client_components_static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../client/components/static-generation-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?926a\");\n/* harmony import */ var _client_components_request_async_storage_external__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../client/components/request-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?ee1e\");\n/* harmony import */ var _client_components_action_async_storage_external__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../client/components/action-async-storage.external */ \"(shared)/../../node_modules/next/dist/esm/client/components/action-async-storage.external.js?eaaf\");\n/* harmony import */ var _client_components_static_generation_bailout__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/../../node_modules/next/dist/esm/client/components/static-generation-bailout.js\");\n/* harmony import */ var _client_components_static_generation_searchparams_bailout_provider__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../client/components/static-generation-searchparams-bailout-provider */ \"(rsc)/../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js\");\n/* harmony import */ var _client_components_searchparams_bailout_proxy__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../client/components/searchparams-bailout-proxy */ \"(rsc)/../../node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js\");\n/* harmony import */ var _client_components_hooks_server_context__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/../../node_modules/next/dist/esm/client/components/hooks-server-context.js\");\n/* harmony import */ var _client_components_not_found_boundary__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../client/components/not-found-boundary */ \"(rsc)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js\");\n/* harmony import */ var _lib_patch_fetch__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../lib/patch-fetch */ \"(rsc)/../../node_modules/next/dist/esm/server/lib/patch-fetch.js\");\n/* harmony import */ var _client_components_error_boundary__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../client/components/error-boundary */ \"(rsc)/../../node_modules/next/dist/esm/client/components/error-boundary.js\");\n/* harmony import */ var _server_app_render_rsc_preloads__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../server/app-render/rsc/preloads */ \"(rsc)/../../node_modules/next/dist/esm/server/app-render/rsc/preloads.js\");\n/* harmony import */ var _server_app_render_rsc_taint__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../server/app-render/rsc/taint */ \"(rsc)/../../node_modules/next/dist/esm/server/app-render/rsc/taint.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n// not being used but needs to be included in the client manifest for /_not-found\n\n\n\n// patchFetch makes use of APIs such as `React.unstable_postpone` which are only available\n// in the experimental channel of React, so export it from here so that it comes from the bundled runtime\nfunction patchFetch() {\n return (0,_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_12__.patchFetch)({\n serverHooks: _client_components_hooks_server_context__WEBPACK_IMPORTED_MODULE_10__,\n staticGenerationAsyncStorage: _client_components_static_generation_async_storage_external__WEBPACK_IMPORTED_MODULE_4__.staticGenerationAsyncStorage\n });\n}\n //# sourceMappingURL=entry-base.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEg7QUFDL0Q7QUFDTTtBQUM0QjtBQUNtQjtBQUNuQjtBQUNGO0FBQ0M7QUFDc0M7QUFDOUI7QUFDeEI7QUFDRTtBQUNmO0FBQy9ELGlGQUFpRjtBQUNqQztBQUM2QztBQUNwQjtBQUN6RSwwRkFBMEY7QUFDMUYseUdBQXlHO0FBQ3pHLFNBQVNlO0lBQ0wsT0FBT0MsNkRBQVdBLENBQUM7UUFDZkgsV0FBV0EsdUVBQUFBO1FBQ1hOLDRCQUE0QkEsdUhBQUFBO0lBQ2hDO0FBQ0o7QUFDcVYsQ0FFclYsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvYXBwLXJlbmRlci9lbnRyeS1iYXNlLmpzPzc2YzAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcmVuZGVyVG9SZWFkYWJsZVN0cmVhbSwgZGVjb2RlUmVwbHksIGRlY29kZUFjdGlvbiwgZGVjb2RlRm9ybVN0YXRlIH0gZnJvbSBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXIuZWRnZVwiO1xuaW1wb3J0IEFwcFJvdXRlciBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlclwiO1xuaW1wb3J0IExheW91dFJvdXRlciBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlclwiO1xuaW1wb3J0IFJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQgZnJvbSBcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHRcIjtcbmltcG9ydCB7IHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiO1xuaW1wb3J0IHsgcmVxdWVzdEFzeW5jU3RvcmFnZSB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9yZXF1ZXN0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIjtcbmltcG9ydCB7IGFjdGlvbkFzeW5jU3RvcmFnZSB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9hY3Rpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiO1xuaW1wb3J0IHsgc3RhdGljR2VuZXJhdGlvbkJhaWxvdXQgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dFwiO1xuaW1wb3J0IFN0YXRpY0dlbmVyYXRpb25TZWFyY2hQYXJhbXNCYWlsb3V0UHJvdmlkZXIgZnJvbSBcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBjcmVhdGVTZWFyY2hQYXJhbXNCYWlsb3V0UHJveHkgfSBmcm9tIFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJveHlcIjtcbmltcG9ydCAqIGFzIHNlcnZlckhvb2tzIGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9ob29rcy1zZXJ2ZXItY29udGV4dFwiO1xuaW1wb3J0IHsgTm90Rm91bmRCb3VuZGFyeSB9IGZyb20gXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtYm91bmRhcnlcIjtcbmltcG9ydCB7IHBhdGNoRmV0Y2ggYXMgX3BhdGNoRmV0Y2ggfSBmcm9tIFwiLi4vbGliL3BhdGNoLWZldGNoXCI7XG4vLyBub3QgYmVpbmcgdXNlZCBidXQgbmVlZHMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBtYW5pZmVzdCBmb3IgL19ub3QtZm91bmRcbmltcG9ydCBcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5pbXBvcnQgeyBwcmVsb2FkU3R5bGUsIHByZWxvYWRGb250LCBwcmVjb25uZWN0IH0gZnJvbSBcIi4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wcmVsb2Fkc1wiO1xuaW1wb3J0IHsgdGFpbnRPYmplY3RSZWZlcmVuY2UgfSBmcm9tIFwiLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvcnNjL3RhaW50XCI7XG4vLyBwYXRjaEZldGNoIG1ha2VzIHVzZSBvZiBBUElzIHN1Y2ggYXMgYFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lYCB3aGljaCBhcmUgb25seSBhdmFpbGFibGVcbi8vIGluIHRoZSBleHBlcmltZW50YWwgY2hhbm5lbCBvZiBSZWFjdCwgc28gZXhwb3J0IGl0IGZyb20gaGVyZSBzbyB0aGF0IGl0IGNvbWVzIGZyb20gdGhlIGJ1bmRsZWQgcnVudGltZVxuZnVuY3Rpb24gcGF0Y2hGZXRjaCgpIHtcbiAgICByZXR1cm4gX3BhdGNoRmV0Y2goe1xuICAgICAgICBzZXJ2ZXJIb29rcyxcbiAgICAgICAgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZVxuICAgIH0pO1xufVxuZXhwb3J0IHsgQXBwUm91dGVyLCBMYXlvdXRSb3V0ZXIsIFJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQsIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UsIHJlcXVlc3RBc3luY1N0b3JhZ2UsIGFjdGlvbkFzeW5jU3RvcmFnZSwgc3RhdGljR2VuZXJhdGlvbkJhaWxvdXQsIGNyZWF0ZVNlYXJjaFBhcmFtc0JhaWxvdXRQcm94eSwgc2VydmVySG9va3MsIHByZWxvYWRTdHlsZSwgcHJlbG9hZEZvbnQsIHByZWNvbm5lY3QsIHRhaW50T2JqZWN0UmVmZXJlbmNlLCBTdGF0aWNHZW5lcmF0aW9uU2VhcmNoUGFyYW1zQmFpbG91dFByb3ZpZGVyLCBOb3RGb3VuZEJvdW5kYXJ5LCBwYXRjaEZldGNoLCAgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZW50cnktYmFzZS5qcy5tYXAiXSwibmFtZXMiOlsicmVuZGVyVG9SZWFkYWJsZVN0cmVhbSIsImRlY29kZVJlcGx5IiwiZGVjb2RlQWN0aW9uIiwiZGVjb2RlRm9ybVN0YXRlIiwiQXBwUm91dGVyIiwiTGF5b3V0Um91dGVyIiwiUmVuZGVyRnJvbVRlbXBsYXRlQ29udGV4dCIsInN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UiLCJyZXF1ZXN0QXN5bmNTdG9yYWdlIiwiYWN0aW9uQXN5bmNTdG9yYWdlIiwic3RhdGljR2VuZXJhdGlvbkJhaWxvdXQiLCJTdGF0aWNHZW5lcmF0aW9uU2VhcmNoUGFyYW1zQmFpbG91dFByb3ZpZGVyIiwiY3JlYXRlU2VhcmNoUGFyYW1zQmFpbG91dFByb3h5Iiwic2VydmVySG9va3MiLCJOb3RGb3VuZEJvdW5kYXJ5IiwicGF0Y2hGZXRjaCIsIl9wYXRjaEZldGNoIiwicHJlbG9hZFN0eWxlIiwicHJlbG9hZEZvbnQiLCJwcmVjb25uZWN0IiwidGFpbnRPYmplY3RSZWZlcmVuY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/app-render/entry-base.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/app-render/rsc/preloads.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/rsc/preloads.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ preconnect: () => (/* binding */ preconnect),\n/* harmony export */ preloadFont: () => (/* binding */ preloadFont),\n/* harmony export */ preloadStyle: () => (/* binding */ preloadStyle)\n/* harmony export */ });\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom */ \"(rsc)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ \nfunction preloadStyle(href, crossOrigin) {\n const opts = {\n as: \"style\"\n };\n if (typeof crossOrigin === \"string\") {\n opts.crossOrigin = crossOrigin;\n }\n react_dom__WEBPACK_IMPORTED_MODULE_0__.preload(href, opts);\n}\nfunction preloadFont(href, type, crossOrigin) {\n const opts = {\n as: \"font\",\n type\n };\n if (typeof crossOrigin === \"string\") {\n opts.crossOrigin = crossOrigin;\n }\n react_dom__WEBPACK_IMPORTED_MODULE_0__.preload(href, opts);\n}\nfunction preconnect(href, crossOrigin) {\n react_dom__WEBPACK_IMPORTED_MODULE_0__.preconnect(href, typeof crossOrigin === \"string\" ? {\n crossOrigin\n } : undefined);\n} //# sourceMappingURL=preloads.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcnNjL3ByZWxvYWRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUlBLEdBQW9DO0FBQzdCLFNBQVNDLGFBQWFDLElBQUksRUFBRUMsV0FBVztJQUMxQyxNQUFNQyxPQUFPO1FBQ1RDLElBQUk7SUFDUjtJQUNBLElBQUksT0FBT0YsZ0JBQWdCLFVBQVU7UUFDakNDLEtBQUtELFdBQVcsR0FBR0E7SUFDdkI7SUFDQUgsOENBQWdCLENBQUNFLE1BQU1FO0FBQzNCO0FBQ08sU0FBU0csWUFBWUwsSUFBSSxFQUFFTSxJQUFJLEVBQUVMLFdBQVc7SUFDL0MsTUFBTUMsT0FBTztRQUNUQyxJQUFJO1FBQ0pHO0lBQ0o7SUFDQSxJQUFJLE9BQU9MLGdCQUFnQixVQUFVO1FBQ2pDQyxLQUFLRCxXQUFXLEdBQUdBO0lBQ3ZCO0lBQ0FILDhDQUFnQixDQUFDRSxNQUFNRTtBQUMzQjtBQUNPLFNBQVNLLFdBQVdQLElBQUksRUFBRUMsV0FBVztJQUN4Q0gsaURBQW1CLENBQUNFLE1BQU0sT0FBT0MsZ0JBQWdCLFdBQVc7UUFDeERBO0lBQ0osSUFBSU87QUFDUixFQUVBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcnNjL3ByZWxvYWRzLmpzPzUyZWUiXSwic291cmNlc0NvbnRlbnQiOlsiLypcblxuRmlsZXMgaW4gdGhlIHJzYyBkaXJlY3RvcnkgYXJlIG1lYW50IHRvIGJlIHBhY2thZ2VkIGFzIHBhcnQgb2YgdGhlIFJTQyBncmFwaCB1c2luZyBuZXh0LWFwcC1sb2FkZXIuXG5cbiovIGltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5leHBvcnQgZnVuY3Rpb24gcHJlbG9hZFN0eWxlKGhyZWYsIGNyb3NzT3JpZ2luKSB7XG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgYXM6IFwic3R5bGVcIlxuICAgIH07XG4gICAgaWYgKHR5cGVvZiBjcm9zc09yaWdpbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBvcHRzLmNyb3NzT3JpZ2luID0gY3Jvc3NPcmlnaW47XG4gICAgfVxuICAgIFJlYWN0RE9NLnByZWxvYWQoaHJlZiwgb3B0cyk7XG59XG5leHBvcnQgZnVuY3Rpb24gcHJlbG9hZEZvbnQoaHJlZiwgdHlwZSwgY3Jvc3NPcmlnaW4pIHtcbiAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBhczogXCJmb250XCIsXG4gICAgICAgIHR5cGVcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgY3Jvc3NPcmlnaW4gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgb3B0cy5jcm9zc09yaWdpbiA9IGNyb3NzT3JpZ2luO1xuICAgIH1cbiAgICBSZWFjdERPTS5wcmVsb2FkKGhyZWYsIG9wdHMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHByZWNvbm5lY3QoaHJlZiwgY3Jvc3NPcmlnaW4pIHtcbiAgICBSZWFjdERPTS5wcmVjb25uZWN0KGhyZWYsIHR5cGVvZiBjcm9zc09yaWdpbiA9PT0gXCJzdHJpbmdcIiA/IHtcbiAgICAgICAgY3Jvc3NPcmlnaW5cbiAgICB9IDogdW5kZWZpbmVkKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlbG9hZHMuanMubWFwIl0sIm5hbWVzIjpbIlJlYWN0RE9NIiwicHJlbG9hZFN0eWxlIiwiaHJlZiIsImNyb3NzT3JpZ2luIiwib3B0cyIsImFzIiwicHJlbG9hZCIsInByZWxvYWRGb250IiwidHlwZSIsInByZWNvbm5lY3QiLCJ1bmRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/app-render/rsc/preloads.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/app-render/rsc/taint.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/app-render/rsc/taint.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ taintObjectReference: () => (/* binding */ taintObjectReference),\n/* harmony export */ taintUniqueValue: () => (/* binding */ taintUniqueValue)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(rsc)/../../node_modules/next/dist/compiled/react/react.shared-subset.js\");\n/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ \nfunction notImplemented() {\n throw new Error(\"Taint can only be used with the taint flag.\");\n}\nconst taintObjectReference = false ? 0 : notImplemented;\nconst taintUniqueValue = false ? 0 : notImplemented; //# sourceMappingURL=taint.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcnNjL3RhaW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBSUEsR0FBa0M7QUFDbEMsU0FBU0M7SUFDTCxNQUFNLElBQUlDLE1BQU07QUFDcEI7QUFDTyxNQUFNQyx1QkFBdUJDLE1BQXFDLEdBQUdKLENBQXVDLEdBQUdDLGVBQWU7QUFDOUgsTUFBTU8sbUJBQW1CSixNQUFxQyxHQUFHSixDQUFtQyxHQUFHQyxlQUFlLENBRTdILGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2FwcC1yZW5kZXIvcnNjL3RhaW50LmpzPzYwNjciXSwic291cmNlc0NvbnRlbnQiOlsiLypcblxuRmlsZXMgaW4gdGhlIHJzYyBkaXJlY3RvcnkgYXJlIG1lYW50IHRvIGJlIHBhY2thZ2VkIGFzIHBhcnQgb2YgdGhlIFJTQyBncmFwaCB1c2luZyBuZXh0LWFwcC1sb2FkZXIuXG5cbiovIGltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gbm90SW1wbGVtZW50ZWQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVGFpbnQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHRoZSB0YWludCBmbGFnLlwiKTtcbn1cbmV4cG9ydCBjb25zdCB0YWludE9iamVjdFJlZmVyZW5jZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QgPyBSZWFjdC5leHBlcmltZW50YWxfdGFpbnRPYmplY3RSZWZlcmVuY2UgOiBub3RJbXBsZW1lbnRlZDtcbmV4cG9ydCBjb25zdCB0YWludFVuaXF1ZVZhbHVlID0gcHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9SRUFDVCA/IFJlYWN0LmV4cGVyaW1lbnRhbF90YWludFVuaXF1ZVZhbHVlIDogbm90SW1wbGVtZW50ZWQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRhaW50LmpzLm1hcCJdLCJuYW1lcyI6WyJSZWFjdCIsIm5vdEltcGxlbWVudGVkIiwiRXJyb3IiLCJ0YWludE9iamVjdFJlZmVyZW5jZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUIiwiZXhwZXJpbWVudGFsX3RhaW50T2JqZWN0UmVmZXJlbmNlIiwidGFpbnRVbmlxdWVWYWx1ZSIsImV4cGVyaW1lbnRhbF90YWludFVuaXF1ZVZhbHVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/app-render/rsc/taint.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ INTERCEPTION_ROUTE_MARKERS: () => (/* binding */ INTERCEPTION_ROUTE_MARKERS),\n/* harmony export */ extractInterceptionRouteInformation: () => (/* binding */ extractInterceptionRouteInformation),\n/* harmony export */ isInterceptionRouteAppPath: () => (/* binding */ isInterceptionRouteAppPath)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../shared/lib/router/utils/app-paths */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n\n// order matters here, the first match will be used\nconst INTERCEPTION_ROUTE_MARKERS = [\n \"(..)(..)\",\n \"(.)\",\n \"(..)\",\n \"(...)\"\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split(\"/\").find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split(\"/\")){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw new Error(`Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`);\n }\n interceptingRoute = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_0__.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case \"(.)\":\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === \"/\") {\n interceptedRoute = `/${interceptedRoute}`;\n } else {\n interceptedRoute = interceptingRoute + \"/\" + interceptedRoute;\n }\n break;\n case \"(..)\":\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === \"/\") {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`);\n }\n interceptedRoute = interceptingRoute.split(\"/\").slice(0, -1).concat(interceptedRoute).join(\"/\");\n break;\n case \"(...)\":\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = \"/\" + interceptedRoute;\n break;\n case \"(..)(..)\":\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split(\"/\");\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`);\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join(\"/\");\n break;\n default:\n throw new Error(\"Invariant: unexpected marker\");\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE4RTtBQUM5RSxtREFBbUQ7QUFDNUMsTUFBTUMsNkJBQTZCO0lBQ3RDO0lBQ0E7SUFDQTtJQUNBO0NBQ0gsQ0FBQztBQUNLLFNBQVNDLDJCQUEyQkMsSUFBSTtJQUMzQyx3Q0FBd0M7SUFDeEMsT0FBT0EsS0FBS0MsS0FBSyxDQUFDLEtBQUtDLElBQUksQ0FBQyxDQUFDQyxVQUFVTCwyQkFBMkJJLElBQUksQ0FBQyxDQUFDRSxJQUFJRCxRQUFRRSxVQUFVLENBQUNELFNBQVNFO0FBQzVHO0FBQ08sU0FBU0Msb0NBQW9DUCxJQUFJO0lBQ3BELElBQUlRLG1CQUFtQkMsUUFBUUM7SUFDL0IsS0FBSyxNQUFNUCxXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBSztRQUNsQ1EsU0FBU1gsMkJBQTJCSSxJQUFJLENBQUMsQ0FBQ0UsSUFBSUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNqRSxJQUFJSyxRQUFRO1lBQ1IsQ0FBQ0QsbUJBQW1CRSxpQkFBaUIsR0FBR1YsS0FBS0MsS0FBSyxDQUFDUSxRQUFRO1lBQzNEO1FBQ0o7SUFDSjtJQUNBLElBQUksQ0FBQ0QscUJBQXFCLENBQUNDLFVBQVUsQ0FBQ0Msa0JBQWtCO1FBQ3BELE1BQU0sSUFBSUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFWCxLQUFLLGlGQUFpRixDQUFDO0lBQzFJO0lBQ0FRLG9CQUFvQlgsb0ZBQWdCQSxDQUFDVyxtQkFBbUIsaURBQWlEOztJQUV6RyxPQUFPQztRQUNILEtBQUs7WUFDRCxvSUFBb0k7WUFDcEksSUFBSUQsc0JBQXNCLEtBQUs7Z0JBQzNCRSxtQkFBbUIsQ0FBQyxDQUFDLEVBQUVBLGlCQUFpQixDQUFDO1lBQzdDLE9BQU87Z0JBQ0hBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQ2pEO1lBQ0E7UUFDSixLQUFLO1lBQ0QsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUMzQixNQUFNLElBQUlHLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRVgsS0FBSyw0REFBNEQsQ0FBQztZQUNySDtZQUNBVSxtQkFBbUJGLGtCQUFrQlAsS0FBSyxDQUFDLEtBQUtXLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsTUFBTSxDQUFDSCxrQkFBa0JJLElBQUksQ0FBQztZQUMzRjtRQUNKLEtBQUs7WUFDRCxrSUFBa0k7WUFDbElKLG1CQUFtQixNQUFNQTtZQUN6QjtRQUNKLEtBQUs7WUFDRCxpSUFBaUk7WUFDakksTUFBTUsseUJBQXlCUCxrQkFBa0JQLEtBQUssQ0FBQztZQUN2RCxJQUFJYyx1QkFBdUJDLE1BQU0sSUFBSSxHQUFHO2dCQUNwQyxNQUFNLElBQUlMLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRVgsS0FBSywrREFBK0QsQ0FBQztZQUN4SDtZQUNBVSxtQkFBbUJLLHVCQUF1QkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHQyxNQUFNLENBQUNILGtCQUFrQkksSUFBSSxDQUFDO1lBQ3JGO1FBQ0o7WUFDSSxNQUFNLElBQUlILE1BQU07SUFDeEI7SUFDQSxPQUFPO1FBQ0hIO1FBQ0FFO0lBQ0o7QUFDSixFQUVBLCtDQUErQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanM/YjAyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVBcHBQYXRoIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiO1xuLy8gb3JkZXIgbWF0dGVycyBoZXJlLCB0aGUgZmlyc3QgbWF0Y2ggd2lsbCBiZSB1c2VkXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgPSBbXG4gICAgXCIoLi4pKC4uKVwiLFxuICAgIFwiKC4pXCIsXG4gICAgXCIoLi4pXCIsXG4gICAgXCIoLi4uKVwiXG5dO1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGgpIHtcbiAgICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIHBhdGguc3BsaXQoXCIvXCIpLmZpbmQoKHNlZ21lbnQpPT5JTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKT0+c2VnbWVudC5zdGFydHNXaXRoKG0pKSkgIT09IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbihwYXRoKSB7XG4gICAgbGV0IGludGVyY2VwdGluZ1JvdXRlLCBtYXJrZXIsIGludGVyY2VwdGVkUm91dGU7XG4gICAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGguc3BsaXQoXCIvXCIpKXtcbiAgICAgICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSk7XG4gICAgICAgIGlmIChtYXJrZXIpIHtcbiAgICAgICAgICAgIFtpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZV0gPSBwYXRoLnNwbGl0KG1hcmtlciwgMik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWludGVyY2VwdGluZ1JvdXRlIHx8ICFtYXJrZXIgfHwgIWludGVyY2VwdGVkUm91dGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmApO1xuICAgIH1cbiAgICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcbiAgICA7XG4gICAgc3dpdGNoKG1hcmtlcil7XG4gICAgICAgIGNhc2UgXCIoLilcIjpcbiAgICAgICAgICAgIC8vICguKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggd2l0aCBzaWJsaW5nIHJvdXRlcywgc28gd2UganVzdCBuZWVkIHRvIGFwcGVuZCB0aGUgaW50ZXJjZXB0ZWQgcm91dGUgdG8gdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgICAgICAgaWYgKGludGVyY2VwdGluZ1JvdXRlID09PSBcIi9cIikge1xuICAgICAgICAgICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyBcIi9cIiArIGludGVyY2VwdGVkUm91dGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIiguLilcIjpcbiAgICAgICAgICAgIC8vICguLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIGF0IG9uZSBsZXZlbCB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICAgICAgICBpZiAoaW50ZXJjZXB0aW5nUm91dGUgPT09IFwiL1wiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCwgdXNlICguKSBpbnN0ZWFkLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KFwiL1wiKS5zbGljZSgwLCAtMSkuY29uY2F0KGludGVyY2VwdGVkUm91dGUpLmpvaW4oXCIvXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCIoLi4uKVwiOlxuICAgICAgICAgICAgLy8gKC4uLikgd2lsbCBtYXRjaCB0aGUgcm91dGUgc2VnbWVudCBpbiB0aGUgcm9vdCBkaXJlY3RvcnksIHNvIHdlIG5lZWQgdG8gdXNlIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmVwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IFwiL1wiICsgaW50ZXJjZXB0ZWRSb3V0ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiKC4uKSguLilcIjpcbiAgICAgICAgICAgIC8vICguLikoLi4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCBhdCB0d28gbGV2ZWxzIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCB0d28gc2VnbWVudHMgb2YgdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwgb3Igb25lIGxldmVsIHVwLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGUuc2xpY2UoMCwgLTIpLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKS5qb2luKFwiL1wiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaW50ZXJjZXB0aW5nUm91dGUsXG4gICAgICAgIGludGVyY2VwdGVkUm91dGVcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnRlcmNlcHRpb24tcm91dGVzLmpzLm1hcCJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsInBhdGgiLCJzcGxpdCIsImZpbmQiLCJzZWdtZW50IiwibSIsInN0YXJ0c1dpdGgiLCJ1bmRlZmluZWQiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwic2xpY2UiLCJjb25jYXQiLCJqb2luIiwic3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/future/route-kind.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-kind.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RouteKind: () => (/* binding */ RouteKind)\n/* harmony export */ });\nvar RouteKind;\n(function(RouteKind) {\n RouteKind[/**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ \"PAGES\"] = \"PAGES\";\n RouteKind[/**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ \"PAGES_API\"] = \"PAGES_API\";\n RouteKind[/**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ \"APP_PAGE\"] = \"APP_PAGE\";\n RouteKind[/**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ \"APP_ROUTE\"] = \"APP_ROUTE\";\n})(RouteKind || (RouteKind = {})); //# sourceMappingURL=route-kind.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxJQUFJQSxVQUFVO0FBQ3BCLFVBQVNBLFNBQVM7SUFDZkEsU0FBUyxDQUFDOztHQUVYLEdBQUcsUUFBUSxHQUFHO0lBQ2JBLFNBQVMsQ0FBQzs7R0FFWCxHQUFHLFlBQVksR0FBRztJQUNqQkEsU0FBUyxDQUFDOzs7R0FHWCxHQUFHLFdBQVcsR0FBRztJQUNoQkEsU0FBUyxDQUFDOzs7R0FHWCxHQUFHLFlBQVksR0FBRztBQUNyQixHQUFHQSxhQUFjQSxDQUFBQSxZQUFZLENBQUMsS0FFOUIsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmQuanM/NmE0MyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIFJvdXRlS2luZDtcbihmdW5jdGlvbihSb3V0ZUtpbmQpIHtcbiAgICBSb3V0ZUtpbmRbLyoqXG4gICAqIGBQQUdFU2AgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBwYWdlcy9gLlxuICAgKi8gXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICBSb3V0ZUtpbmRbLyoqXG4gICAqIGBQQUdFU19BUElgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICovIFwiUEFHRVNfQVBJXCJdID0gXCJQQUdFU19BUElcIjtcbiAgICBSb3V0ZUtpbmRbLyoqXG4gICAqIGBBUFBfUEFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcGFnZS57aix0fXN7LHh9YC5cbiAgICovIFwiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgUm91dGVLaW5kWy8qKlxuICAgKiBgQVBQX1JPVVRFYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcm91dGUue2osdH1zeyx4fWAuXG4gICAqLyBcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG59KShSb3V0ZUtpbmQgfHwgKFJvdXRlS2luZCA9IHt9KSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWtpbmQuanMubWFwIl0sIm5hbWVzIjpbIlJvdXRlS2luZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/future/route-kind.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/module.compiled.js":
-/*!************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/future/route-modules/app-page/module.compiled.js ***!
- \************************************************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("\nif (true) {\n module.exports = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.js */ \"(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/module.js\");\n} else {} //# sourceMappingURL=module.compiled.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsSUFBbUMsRUFBRTtJQUNyQ0csNkxBQW9GO0FBQ3hGLE9BQU8sRUFrQk4sQ0FFRCwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuY29tcGlsZWQuanM/ZmRlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmpzXCIpO1xufSBlbHNlIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9SRUFDVCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qc1wiKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS10dXJiby1leHBlcmltZW50YWwucnVudGltZS5wcm9kLmpzXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanNcIik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUuZGV2LmpzXCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLnJ1bnRpbWUucHJvZC5qc1wiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS5ydW50aW1lLnByb2QuanNcIik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOlsicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXF1aXJlIiwiX19ORVhUX0VYUEVSSU1FTlRBTF9SRUFDVCIsIlRVUkJPUEFDSyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/esm/server/future/route-modules/app-page/module.compiled.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/lib/patch-fetch.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/patch-fetch.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addImplicitTags: () => (/* binding */ addImplicitTags),\n/* harmony export */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ validateRevalidate: () => (/* binding */ validateRevalidate),\n/* harmony export */ validateTags: () => (/* binding */ validateTags)\n/* harmony export */ });\n/* harmony import */ var _trace_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./trace/constants */ \"(rsc)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n/* harmony import */ var _trace_tracer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./trace/tracer */ \"(rsc)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/../../node_modules/next/dist/esm/lib/constants.js\");\n/* harmony import */ var _build_output_log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../build/output/log */ \"(rsc)/../../node_modules/next/dist/esm/build/output/log.js\");\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"buffer\")[\"Buffer\"];\n\n\n\n\nconst isEdgeRuntime = \"edge\" === \"edge\";\nfunction validateRevalidate(revalidateVal, pathname) {\n try {\n let normalizedRevalidate = undefined;\n if (revalidateVal === false) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal === \"number\" && !isNaN(revalidateVal) && revalidateVal > -1) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal !== \"undefined\") {\n throw new Error(`Invalid revalidate value \"${revalidateVal}\" on \"${pathname}\", must be a non-negative number or \"false\"`);\n }\n return normalizedRevalidate;\n } catch (err) {\n // handle client component error from attempting to check revalidate value\n if (err instanceof Error && err.message.includes(\"Invalid revalidate\")) {\n throw err;\n }\n return undefined;\n }\n}\nfunction validateTags(tags, description) {\n const validTags = [];\n const invalidTags = [];\n for (const tag of tags){\n if (typeof tag !== \"string\") {\n invalidTags.push({\n tag,\n reason: \"invalid type, must be a string\"\n });\n } else if (tag.length > _lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_TAG_MAX_LENGTH) {\n invalidTags.push({\n tag,\n reason: `exceeded max length of ${_lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_TAG_MAX_LENGTH}`\n });\n } else {\n validTags.push(tag);\n }\n }\n if (invalidTags.length > 0) {\n console.warn(`Warning: invalid tags passed to ${description}: `);\n for (const { tag, reason } of invalidTags){\n console.log(`tag: \"${tag}\" ${reason}`);\n }\n }\n return validTags;\n}\nconst getDerivedTags = (pathname)=>{\n const derivedTags = [\n `/layout`\n ];\n // we automatically add the current path segments as tags\n // for revalidatePath handling\n if (pathname.startsWith(\"/\")) {\n const pathnameParts = pathname.split(\"/\");\n for(let i = 1; i < pathnameParts.length + 1; i++){\n let curPathname = pathnameParts.slice(0, i).join(\"/\");\n if (curPathname) {\n // all derived tags other than the page are layout tags\n if (!curPathname.endsWith(\"/page\") && !curPathname.endsWith(\"/route\")) {\n curPathname = `${curPathname}${!curPathname.endsWith(\"/\") ? \"/\" : \"\"}layout`;\n }\n derivedTags.push(curPathname);\n }\n }\n }\n return derivedTags;\n};\nfunction addImplicitTags(staticGenerationStore) {\n const newTags = [];\n const { pagePath, urlPathname } = staticGenerationStore;\n if (!Array.isArray(staticGenerationStore.tags)) {\n staticGenerationStore.tags = [];\n }\n if (pagePath) {\n const derivedTags = getDerivedTags(pagePath);\n for (let tag of derivedTags){\n var _staticGenerationStore_tags;\n tag = `${_lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_IMPLICIT_TAG_ID}${tag}`;\n if (!((_staticGenerationStore_tags = staticGenerationStore.tags) == null ? void 0 : _staticGenerationStore_tags.includes(tag))) {\n staticGenerationStore.tags.push(tag);\n }\n newTags.push(tag);\n }\n }\n if (urlPathname) {\n var _staticGenerationStore_tags1;\n const parsedPathname = new URL(urlPathname, \"http://n\").pathname;\n const tag = `${_lib_constants__WEBPACK_IMPORTED_MODULE_2__.NEXT_CACHE_IMPLICIT_TAG_ID}${parsedPathname}`;\n if (!((_staticGenerationStore_tags1 = staticGenerationStore.tags) == null ? void 0 : _staticGenerationStore_tags1.includes(tag))) {\n staticGenerationStore.tags.push(tag);\n }\n newTags.push(tag);\n }\n return newTags;\n}\nfunction trackFetchMetric(staticGenerationStore, ctx) {\n if (!staticGenerationStore) return;\n if (!staticGenerationStore.fetchMetrics) {\n staticGenerationStore.fetchMetrics = [];\n }\n const dedupeFields = [\n \"url\",\n \"status\",\n \"method\"\n ];\n // don't add metric if one already exists for the fetch\n if (staticGenerationStore.fetchMetrics.some((metric)=>{\n return dedupeFields.every((field)=>metric[field] === ctx[field]);\n })) {\n return;\n }\n staticGenerationStore.fetchMetrics.push({\n url: ctx.url,\n cacheStatus: ctx.cacheStatus,\n cacheReason: ctx.cacheReason,\n status: ctx.status,\n method: ctx.method,\n start: ctx.start,\n end: Date.now(),\n idx: staticGenerationStore.nextFetchId || 0\n });\n}\n// we patch fetch to collect cache information used for\n// determining if a page is static or not\nfunction patchFetch({ serverHooks, staticGenerationAsyncStorage }) {\n if (!globalThis._nextOriginalFetch) {\n globalThis._nextOriginalFetch = globalThis.fetch;\n }\n if (globalThis.fetch.__nextPatched) return;\n const { DynamicServerError } = serverHooks;\n const originFetch = globalThis._nextOriginalFetch;\n globalThis.fetch = async (input, init)=>{\n var _init_method, _this;\n let url;\n try {\n url = new URL(input instanceof Request ? input.url : input);\n url.username = \"\";\n url.password = \"\";\n } catch {\n // Error caused by malformed URL should be handled by native fetch\n url = undefined;\n }\n const fetchUrl = (url == null ? void 0 : url.href) ?? \"\";\n const fetchStart = Date.now();\n const method = (init == null ? void 0 : (_init_method = init.method) == null ? void 0 : _init_method.toUpperCase()) || \"GET\";\n // Do create a new span trace for internal fetches in the\n // non-verbose mode.\n const isInternal = ((_this = init == null ? void 0 : init.next) == null ? void 0 : _this.internal) === true;\n const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === \"1\";\n return await (0,_trace_tracer__WEBPACK_IMPORTED_MODULE_1__.getTracer)().trace(isInternal ? _trace_constants__WEBPACK_IMPORTED_MODULE_0__.NextNodeServerSpan.internalFetch : _trace_constants__WEBPACK_IMPORTED_MODULE_0__.AppRenderSpan.fetch, {\n hideSpan,\n kind: _trace_tracer__WEBPACK_IMPORTED_MODULE_1__.SpanKind.CLIENT,\n spanName: [\n \"fetch\",\n method,\n fetchUrl\n ].filter(Boolean).join(\" \"),\n attributes: {\n \"http.url\": fetchUrl,\n \"http.method\": method,\n \"net.peer.name\": url == null ? void 0 : url.hostname,\n \"net.peer.port\": (url == null ? void 0 : url.port) || undefined\n }\n }, async ()=>{\n var _getRequestMeta;\n const staticGenerationStore = staticGenerationAsyncStorage.getStore() || (fetch.__nextGetStaticStore == null ? void 0 : fetch.__nextGetStaticStore.call(fetch));\n const isRequestInput = input && typeof input === \"object\" && typeof input.method === \"string\";\n const getRequestMeta = (field)=>{\n // If request input is present but init is not, retrieve from input first.\n const value = init == null ? void 0 : init[field];\n return value || (isRequestInput ? input[field] : null);\n };\n // If the staticGenerationStore is not available, we can't do any\n // special treatment of fetch, therefore fallback to the original\n // fetch implementation.\n if (!staticGenerationStore || isInternal || staticGenerationStore.isDraftMode) {\n return originFetch(input, init);\n }\n let revalidate = undefined;\n const getNextField = (field)=>{\n var _init_next, _init_next1, _input_next;\n return typeof (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next[field]) !== \"undefined\" ? init == null ? void 0 : (_init_next1 = init.next) == null ? void 0 : _init_next1[field] : isRequestInput ? (_input_next = input.next) == null ? void 0 : _input_next[field] : undefined;\n };\n // RequestInit doesn't keep extra fields e.g. next so it's\n // only available if init is used separate\n let curRevalidate = getNextField(\"revalidate\");\n const tags = validateTags(getNextField(\"tags\") || [], `fetch ${input.toString()}`);\n if (Array.isArray(tags)) {\n if (!staticGenerationStore.tags) {\n staticGenerationStore.tags = [];\n }\n for (const tag of tags){\n if (!staticGenerationStore.tags.includes(tag)) {\n staticGenerationStore.tags.push(tag);\n }\n }\n }\n const implicitTags = addImplicitTags(staticGenerationStore);\n const isOnlyCache = staticGenerationStore.fetchCache === \"only-cache\";\n const isForceCache = staticGenerationStore.fetchCache === \"force-cache\";\n const isDefaultCache = staticGenerationStore.fetchCache === \"default-cache\";\n const isDefaultNoStore = staticGenerationStore.fetchCache === \"default-no-store\";\n const isOnlyNoStore = staticGenerationStore.fetchCache === \"only-no-store\";\n const isForceNoStore = staticGenerationStore.fetchCache === \"force-no-store\";\n const isUsingNoStore = !!staticGenerationStore.isUnstableNoStore;\n let _cache = getRequestMeta(\"cache\");\n let cacheReason = \"\";\n if (typeof _cache === \"string\" && typeof curRevalidate !== \"undefined\") {\n // when providing fetch with a Request input, it'll automatically set a cache value of 'default'\n // we only want to warn if the user is explicitly setting a cache value\n if (!(isRequestInput && _cache === \"default\")) {\n _build_output_log__WEBPACK_IMPORTED_MODULE_3__.warn(`fetch for ${fetchUrl} on ${staticGenerationStore.urlPathname} specified \"cache: ${_cache}\" and \"revalidate: ${curRevalidate}\", only one should be specified.`);\n }\n _cache = undefined;\n }\n if (_cache === \"force-cache\") {\n curRevalidate = false;\n } else if (_cache === \"no-cache\" || _cache === \"no-store\" || isForceNoStore || isOnlyNoStore) {\n curRevalidate = 0;\n }\n if (_cache === \"no-cache\" || _cache === \"no-store\") {\n cacheReason = `cache: ${_cache}`;\n }\n revalidate = validateRevalidate(curRevalidate, staticGenerationStore.urlPathname);\n const _headers = getRequestMeta(\"headers\");\n const initHeaders = typeof (_headers == null ? void 0 : _headers.get) === \"function\" ? _headers : new Headers(_headers || {});\n const hasUnCacheableHeader = initHeaders.get(\"authorization\") || initHeaders.get(\"cookie\");\n const isUnCacheableMethod = ![\n \"get\",\n \"head\"\n ].includes(((_getRequestMeta = getRequestMeta(\"method\")) == null ? void 0 : _getRequestMeta.toLowerCase()) || \"get\");\n // if there are authorized headers or a POST method and\n // dynamic data usage was present above the tree we bail\n // e.g. if cookies() is used before an authed/POST fetch\n const autoNoCache = (hasUnCacheableHeader || isUnCacheableMethod) && staticGenerationStore.revalidate === 0;\n if (isForceNoStore) {\n cacheReason = \"fetchCache = force-no-store\";\n }\n if (isOnlyNoStore) {\n if (_cache === \"force-cache\" || typeof revalidate !== \"undefined\" && (revalidate === false || revalidate > 0)) {\n throw new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`);\n }\n cacheReason = \"fetchCache = only-no-store\";\n }\n if (isOnlyCache && _cache === \"no-store\") {\n throw new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`);\n }\n if (isForceCache && (typeof curRevalidate === \"undefined\" || curRevalidate === 0)) {\n cacheReason = \"fetchCache = force-cache\";\n revalidate = false;\n }\n if (typeof revalidate === \"undefined\") {\n if (isDefaultCache) {\n revalidate = false;\n cacheReason = \"fetchCache = default-cache\";\n } else if (autoNoCache) {\n revalidate = 0;\n cacheReason = \"auto no cache\";\n } else if (isDefaultNoStore) {\n revalidate = 0;\n cacheReason = \"fetchCache = default-no-store\";\n } else if (isUsingNoStore) {\n revalidate = 0;\n cacheReason = \"noStore call\";\n } else {\n cacheReason = \"auto cache\";\n revalidate = typeof staticGenerationStore.revalidate === \"boolean\" || typeof staticGenerationStore.revalidate === \"undefined\" ? false : staticGenerationStore.revalidate;\n }\n } else if (!cacheReason) {\n cacheReason = `revalidate: ${revalidate}`;\n }\n if (// `revalidate: 0` values\n !(staticGenerationStore.forceStatic && revalidate === 0) && // we don't consider autoNoCache to switch to dynamic during\n // revalidate although if it occurs during build we do\n !autoNoCache && // If the revalidate value isn't currently set or the value is less\n // than the current revalidate value, we should update the revalidate\n // value.\n (typeof staticGenerationStore.revalidate === \"undefined\" || typeof revalidate === \"number\" && (staticGenerationStore.revalidate === false || typeof staticGenerationStore.revalidate === \"number\" && revalidate < staticGenerationStore.revalidate))) {\n // If we were setting the revalidate value to 0, we should try to\n // postpone instead first.\n if (revalidate === 0) {\n staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, \"revalidate: 0\");\n }\n staticGenerationStore.revalidate = revalidate;\n }\n const isCacheableRevalidate = typeof revalidate === \"number\" && revalidate > 0 || revalidate === false;\n let cacheKey;\n if (staticGenerationStore.incrementalCache && isCacheableRevalidate) {\n try {\n cacheKey = await staticGenerationStore.incrementalCache.fetchCacheKey(fetchUrl, isRequestInput ? input : init);\n } catch (err) {\n console.error(`Failed to generate cache key for`, input);\n }\n }\n const fetchIdx = staticGenerationStore.nextFetchId ?? 1;\n staticGenerationStore.nextFetchId = fetchIdx + 1;\n const normalizedRevalidate = typeof revalidate !== \"number\" ? _lib_constants__WEBPACK_IMPORTED_MODULE_2__.CACHE_ONE_YEAR : revalidate;\n const doOriginalFetch = async (isStale, cacheReasonOverride)=>{\n const requestInputFields = [\n \"cache\",\n \"credentials\",\n \"headers\",\n \"integrity\",\n \"keepalive\",\n \"method\",\n \"mode\",\n \"redirect\",\n \"referrer\",\n \"referrerPolicy\",\n \"window\",\n \"duplex\",\n // don't pass through signal when revalidating\n ...isStale ? [] : [\n \"signal\"\n ]\n ];\n if (isRequestInput) {\n const reqInput = input;\n const reqOptions = {\n body: reqInput._ogBody || reqInput.body\n };\n for (const field of requestInputFields){\n // @ts-expect-error custom fields\n reqOptions[field] = reqInput[field];\n }\n input = new Request(reqInput.url, reqOptions);\n } else if (init) {\n const initialInit = init;\n init = {\n body: init._ogBody || init.body\n };\n for (const field of requestInputFields){\n // @ts-expect-error custom fields\n init[field] = initialInit[field];\n }\n }\n // add metadata to init without editing the original\n const clonedInit = {\n ...init,\n next: {\n ...init == null ? void 0 : init.next,\n fetchType: \"origin\",\n fetchIdx\n }\n };\n return originFetch(input, clonedInit).then(async (res)=>{\n if (!isStale) {\n trackFetchMetric(staticGenerationStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason: cacheReasonOverride || cacheReason,\n cacheStatus: revalidate === 0 || cacheReasonOverride ? \"skip\" : \"miss\",\n status: res.status,\n method: clonedInit.method || \"GET\"\n });\n }\n if (res.status === 200 && staticGenerationStore.incrementalCache && cacheKey && isCacheableRevalidate) {\n const bodyBuffer = Buffer.from(await res.arrayBuffer());\n try {\n await staticGenerationStore.incrementalCache.set(cacheKey, {\n kind: \"FETCH\",\n data: {\n headers: Object.fromEntries(res.headers.entries()),\n body: bodyBuffer.toString(\"base64\"),\n status: res.status,\n url: res.url\n },\n revalidate: normalizedRevalidate\n }, {\n fetchCache: true,\n revalidate,\n fetchUrl,\n fetchIdx,\n tags\n });\n } catch (err) {\n console.warn(`Failed to set fetch cache`, input, err);\n }\n const response = new Response(bodyBuffer, {\n headers: new Headers(res.headers),\n status: res.status\n });\n Object.defineProperty(response, \"url\", {\n value: res.url\n });\n return response;\n }\n return res;\n });\n };\n let handleUnlock = ()=>Promise.resolve();\n let cacheReasonOverride;\n if (cacheKey && staticGenerationStore.incrementalCache) {\n handleUnlock = await staticGenerationStore.incrementalCache.lock(cacheKey);\n const entry = staticGenerationStore.isOnDemandRevalidate ? null : await staticGenerationStore.incrementalCache.get(cacheKey, {\n kindHint: \"fetch\",\n revalidate,\n fetchUrl,\n fetchIdx,\n tags,\n softTags: implicitTags\n });\n if (entry) {\n await handleUnlock();\n } else {\n // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers\n cacheReasonOverride = \"cache-control: no-cache (hard refresh)\";\n }\n if ((entry == null ? void 0 : entry.value) && entry.value.kind === \"FETCH\") {\n // when stale and is revalidating we wait for fresh data\n // so the revalidated entry has the updated data\n if (!(staticGenerationStore.isRevalidate && entry.isStale)) {\n if (entry.isStale) {\n staticGenerationStore.pendingRevalidates ??= {};\n if (!staticGenerationStore.pendingRevalidates[cacheKey]) {\n staticGenerationStore.pendingRevalidates[cacheKey] = doOriginalFetch(true).catch(console.error);\n }\n }\n const resData = entry.value.data;\n trackFetchMetric(staticGenerationStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason,\n cacheStatus: \"hit\",\n status: resData.status || 200,\n method: (init == null ? void 0 : init.method) || \"GET\"\n });\n const response = new Response(Buffer.from(resData.body, \"base64\"), {\n headers: resData.headers,\n status: resData.status\n });\n Object.defineProperty(response, \"url\", {\n value: entry.value.data.url\n });\n return response;\n }\n }\n }\n if (staticGenerationStore.isStaticGeneration && init && typeof init === \"object\") {\n const { cache } = init;\n // Delete `cache` property as Cloudflare Workers will throw an error\n if (isEdgeRuntime) delete init.cache;\n if (!staticGenerationStore.forceStatic && cache === \"no-store\") {\n const dynamicUsageReason = `no-store fetch ${input}${staticGenerationStore.urlPathname ? ` ${staticGenerationStore.urlPathname}` : \"\"}`;\n // If enabled, we should bail out of static generation.\n staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, dynamicUsageReason);\n // PPR is not enabled, or React postpone is not available, we\n // should set the revalidate to 0.\n staticGenerationStore.revalidate = 0;\n const err = new DynamicServerError(dynamicUsageReason);\n staticGenerationStore.dynamicUsageErr = err;\n staticGenerationStore.dynamicUsageDescription = dynamicUsageReason;\n }\n const hasNextConfig = \"next\" in init;\n const { next = {} } = init;\n if (typeof next.revalidate === \"number\" && (typeof staticGenerationStore.revalidate === \"undefined\" || typeof staticGenerationStore.revalidate === \"number\" && next.revalidate < staticGenerationStore.revalidate)) {\n if (!staticGenerationStore.forceDynamic && !staticGenerationStore.forceStatic && next.revalidate === 0) {\n const dynamicUsageReason = `revalidate: 0 fetch ${input}${staticGenerationStore.urlPathname ? ` ${staticGenerationStore.urlPathname}` : \"\"}`;\n // If enabled, we should bail out of static generation.\n staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, dynamicUsageReason);\n const err = new DynamicServerError(dynamicUsageReason);\n staticGenerationStore.dynamicUsageErr = err;\n staticGenerationStore.dynamicUsageDescription = dynamicUsageReason;\n }\n if (!staticGenerationStore.forceStatic || next.revalidate !== 0) {\n staticGenerationStore.revalidate = next.revalidate;\n }\n }\n if (hasNextConfig) delete init.next;\n }\n return doOriginalFetch(false, cacheReasonOverride).finally(handleUnlock);\n });\n };\n globalThis.fetch.__nextGetStaticStore = ()=>{\n return staticGenerationAsyncStorage;\n };\n globalThis.fetch.__nextPatched = true;\n} //# sourceMappingURL=patch-fetch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi9wYXRjaC1mZXRjaC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBc0U7QUFDakI7QUFDdUQ7QUFDOUQ7QUFDOUMsTUFBTVEsZ0JBQWdCQyxNQUF3QixLQUFLO0FBQzVDLFNBQVNHLG1CQUFtQkMsYUFBYSxFQUFFQyxRQUFRO0lBQ3RELElBQUk7UUFDQSxJQUFJQyx1QkFBdUJDO1FBQzNCLElBQUlILGtCQUFrQixPQUFPO1lBQ3pCRSx1QkFBdUJGO1FBQzNCLE9BQU8sSUFBSSxPQUFPQSxrQkFBa0IsWUFBWSxDQUFDSSxNQUFNSixrQkFBa0JBLGdCQUFnQixDQUFDLEdBQUc7WUFDekZFLHVCQUF1QkY7UUFDM0IsT0FBTyxJQUFJLE9BQU9BLGtCQUFrQixhQUFhO1lBQzdDLE1BQU0sSUFBSUssTUFBTSxDQUFDLDBCQUEwQixFQUFFTCxjQUFjLE1BQU0sRUFBRUMsU0FBUywyQ0FBMkMsQ0FBQztRQUM1SDtRQUNBLE9BQU9DO0lBQ1gsRUFBRSxPQUFPSSxLQUFLO1FBQ1YsMEVBQTBFO1FBQzFFLElBQUlBLGVBQWVELFNBQVNDLElBQUlDLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDLHVCQUF1QjtZQUNwRSxNQUFNRjtRQUNWO1FBQ0EsT0FBT0g7SUFDWDtBQUNKO0FBQ08sU0FBU00sYUFBYUMsSUFBSSxFQUFFQyxXQUFXO0lBQzFDLE1BQU1DLFlBQVksRUFBRTtJQUNwQixNQUFNQyxjQUFjLEVBQUU7SUFDdEIsS0FBSyxNQUFNQyxPQUFPSixLQUFLO1FBQ25CLElBQUksT0FBT0ksUUFBUSxVQUFVO1lBQ3pCRCxZQUFZRSxJQUFJLENBQUM7Z0JBQ2JEO2dCQUNBRSxRQUFRO1lBQ1o7UUFDSixPQUFPLElBQUlGLElBQUlHLE1BQU0sR0FBR3hCLHFFQUF5QkEsRUFBRTtZQUMvQ29CLFlBQVlFLElBQUksQ0FBQztnQkFDYkQ7Z0JBQ0FFLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRXZCLHFF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Qzt3QkFDNUksdURBQXVEO3dCQUN2REgsc0JBQXNCbUcsUUFBUSxJQUFJLE9BQU8sS0FBSyxJQUFJbkcsc0JBQXNCbUcsUUFBUSxDQUFDaEMsSUFBSSxDQUFDbkUsdUJBQXVCa0o7d0JBQzdHLE1BQU01SyxNQUFNLElBQUk4RCxtQkFBbUI4Rzt3QkFDbkNsSixzQkFBc0JtSixlQUFlLEdBQUc3Szt3QkFDeEMwQixzQkFBc0JvSix1QkFBdUIsR0FBR0Y7b0JBQ3BEO29CQUNBLElBQUksQ0FBQ2xKLHNCQUFzQmtHLFdBQVcsSUFBSWhELEtBQUtzQixVQUFVLEtBQUssR0FBRzt3QkFDN0R4RSxzQkFBc0J3RSxVQUFVLEdBQUd0QixLQUFLc0IsVUFBVTtvQkFDdEQ7Z0JBQ0o7Z0JBQ0EsSUFBSTZFLGVBQWUsT0FBTzlHLEtBQUtXLElBQUk7WUFDdkM7WUFDQSxPQUFPd0QsZ0JBQWdCLE9BQU9FLHFCQUFxQjJDLE9BQU8sQ0FBQ25CO1FBQy9EO0lBQ0o7SUFDQXBHLFdBQVdFLEtBQUssQ0FBQ2dDLG9CQUFvQixHQUFHO1FBQ3BDLE9BQU9uQztJQUNYO0lBQ0FDLFdBQVdFLEtBQUssQ0FBQ0MsYUFBYSxHQUFHO0FBQ3JDLEVBRUEsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL3BhdGNoLWZldGNoLmpzP2FhYjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwUmVuZGVyU3BhbiwgTmV4dE5vZGVTZXJ2ZXJTcGFuIH0gZnJvbSBcIi4vdHJhY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRUcmFjZXIsIFNwYW5LaW5kIH0gZnJvbSBcIi4vdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBDQUNIRV9PTkVfWUVBUiwgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQsIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEggfSBmcm9tIFwiLi4vLi4vbGliL2NvbnN0YW50c1wiO1xuaW1wb3J0ICogYXMgTG9nIGZyb20gXCIuLi8uLi9idWlsZC9vdXRwdXQvbG9nXCI7XG5jb25zdCBpc0VkZ2VSdW50aW1lID0gcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIjtcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJldmFsaWRhdGUocmV2YWxpZGF0ZVZhbCwgcGF0aG5hbWUpIHtcbiAgICB0cnkge1xuICAgICAgICBsZXQgbm9ybWFsaXplZFJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZXZhbGlkYXRlVmFsID09PSBmYWxzZSkge1xuICAgICAgICAgICAgbm9ybWFsaXplZFJldmFsaWRhdGUgPSByZXZhbGlkYXRlVmFsO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXZhbGlkYXRlVmFsID09PSBcIm51bWJlclwiICYmICFpc05hTihyZXZhbGlkYXRlVmFsKSAmJiByZXZhbGlkYXRlVmFsID4gLTEpIHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gcmV2YWxpZGF0ZVZhbDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmV2YWxpZGF0ZVZhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJldmFsaWRhdGUgdmFsdWUgXCIke3JldmFsaWRhdGVWYWx9XCIgb24gXCIke3BhdGhuYW1lfVwiLCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlciBvciBcImZhbHNlXCJgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZFJldmFsaWRhdGU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGhhbmRsZSBjbGllbnQgY29tcG9uZW50IGVycm9yIGZyb20gYXR0ZW1wdGluZyB0byBjaGVjayByZXZhbGlkYXRlIHZhbHVlXG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubWVzc2FnZS5pbmNsdWRlcyhcIkludmFsaWQgcmV2YWxpZGF0ZVwiKSkge1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGFncyh0YWdzLCBkZXNjcmlwdGlvbikge1xuICAgIGNvbnN0IHZhbGlkVGFncyA9IFtdO1xuICAgIGNvbnN0IGludmFsaWRUYWdzID0gW107XG4gICAgZm9yIChjb25zdCB0YWcgb2YgdGFncyl7XG4gICAgICAgIGlmICh0eXBlb2YgdGFnICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpbnZhbGlkVGFncy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgcmVhc29uOiBcImludmFsaWQgdHlwZSwgbXVzdCBiZSBhIHN0cmluZ1wiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0YWcubGVuZ3RoID4gTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgaW52YWxpZFRhZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgIHJlYXNvbjogYGV4Y2VlZGVkIG1heCBsZW5ndGggb2YgJHtORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIfWBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsaWRUYWdzLnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW52YWxpZFRhZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6IGludmFsaWQgdGFncyBwYXNzZWQgdG8gJHtkZXNjcmlwdGlvbn06IGApO1xuICAgICAgICBmb3IgKGNvbnN0IHsgdGFnLCByZWFzb24gfSBvZiBpbnZhbGlkVGFncyl7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgdGFnOiBcIiR7dGFnfVwiICR7cmVhc29ufWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWxpZFRhZ3M7XG59XG5jb25zdCBnZXREZXJpdmVkVGFncyA9IChwYXRobmFtZSk9PntcbiAgICBjb25zdCBkZXJpdmVkVGFncyA9IFtcbiAgICAgICAgYC9sYXlvdXRgXG4gICAgXTtcbiAgICAvLyB3ZSBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgY3VycmVudCBwYXRoIHNlZ21lbnRzIGFzIHRhZ3NcbiAgICAvLyBmb3IgcmV2YWxpZGF0ZVBhdGggaGFuZGxpbmdcbiAgICBpZiAocGF0aG5hbWUuc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgY29uc3QgcGF0aG5hbWVQYXJ0cyA9IHBhdGhuYW1lLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgZm9yKGxldCBpID0gMTsgaSA8IHBhdGhuYW1lUGFydHMubGVuZ3RoICsgMTsgaSsrKXtcbiAgICAgICAgICAgIGxldCBjdXJQYXRobmFtZSA9IHBhdGhuYW1lUGFydHMuc2xpY2UoMCwgaSkuam9pbihcIi9cIik7XG4gICAgICAgICAgICBpZiAoY3VyUGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICAvLyBhbGwgZGVyaXZlZCB0YWdzIG90aGVyIHRoYW4gdGhlIHBhZ2UgYXJlIGxheW91dCB0YWdzXG4gICAgICAgICAgICAgICAgaWYgKCFjdXJQYXRobmFtZS5lbmRzV2l0aChcIi9wYWdlXCIpICYmICFjdXJQYXRobmFtZS5lbmRzV2l0aChcIi9yb3V0ZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJQYXRobmFtZSA9IGAke2N1clBhdGhuYW1lfSR7IWN1clBhdGhuYW1lLmVuZHNXaXRoKFwiL1wiKSA/IFwiL1wiIDogXCJcIn1sYXlvdXRgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZXJpdmVkVGFncy5wdXNoKGN1clBhdGhuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGVyaXZlZFRhZ3M7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEltcGxpY2l0VGFncyhzdGF0aWNHZW5lcmF0aW9uU3RvcmUpIHtcbiAgICBjb25zdCBuZXdUYWdzID0gW107XG4gICAgY29uc3QgeyBwYWdlUGF0aCwgdXJsUGF0aG5hbWUgfSA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc3RhdGljR2VuZXJhdGlvblN0b3JlLnRhZ3MpKSB7XG4gICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS50YWdzID0gW107XG4gICAgfVxuICAgIGlmIChwYWdlUGF0aCkge1xuICAgICAgICBjb25zdCBkZXJpdmVkVGFncyA9IGdldERlcml2ZWRUYWdzKHBhZ2VQYXRoKTtcbiAgICAgICAgZm9yIChsZXQgdGFnIG9mIGRlcml2ZWRUYWdzKXtcbiAgICAgICAgICAgIHZhciBfc3RhdGljR2VuZXJhdGlvblN0b3JlX3RhZ3M7XG4gICAgICAgICAgICB0YWcgPSBgJHtORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRH0ke3RhZ31gO1xuICAgICAgICAgICAgaWYgKCEoKF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFncyA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS50YWdzKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YXRpY0dlbmVyYXRpb25TdG9yZV90YWdzLmluY2x1ZGVzKHRhZykpKSB7XG4gICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnRhZ3MucHVzaCh0YWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3VGFncy5wdXNoKHRhZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHVybFBhdGhuYW1lKSB7XG4gICAgICAgIHZhciBfc3RhdGljR2VuZXJhdGlvblN0b3JlX3RhZ3MxO1xuICAgICAgICBjb25zdCBwYXJzZWRQYXRobmFtZSA9IG5ldyBVUkwodXJsUGF0aG5hbWUsIFwiaHR0cDovL25cIikucGF0aG5hbWU7XG4gICAgICAgIGNvbnN0IHRhZyA9IGAke05FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEfSR7cGFyc2VkUGF0aG5hbWV9YDtcbiAgICAgICAgaWYgKCEoKF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFnczEgPSBzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncykgPT0gbnVsbCA/IHZvaWQgMCA6IF9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFnczEuaW5jbHVkZXModGFnKSkpIHtcbiAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS50YWdzLnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgICAgICBuZXdUYWdzLnB1c2godGFnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld1RhZ3M7XG59XG5mdW5jdGlvbiB0cmFja0ZldGNoTWV0cmljKHN0YXRpY0dlbmVyYXRpb25TdG9yZSwgY3R4KSB7XG4gICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUpIHJldHVybjtcbiAgICBpZiAoIXN0YXRpY0dlbmVyYXRpb25TdG9yZS5mZXRjaE1ldHJpY3MpIHtcbiAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoTWV0cmljcyA9IFtdO1xuICAgIH1cbiAgICBjb25zdCBkZWR1cGVGaWVsZHMgPSBbXG4gICAgICAgIFwidXJsXCIsXG4gICAgICAgIFwic3RhdHVzXCIsXG4gICAgICAgIFwibWV0aG9kXCJcbiAgICBdO1xuICAgIC8vIGRvbid0IGFkZCBtZXRyaWMgaWYgb25lIGFscmVhZHkgZXhpc3RzIGZvciB0aGUgZmV0Y2hcbiAgICBpZiAoc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoTWV0cmljcy5zb21lKChtZXRyaWMpPT57XG4gICAgICAgIHJldHVybiBkZWR1cGVGaWVsZHMuZXZlcnkoKGZpZWxkKT0+bWV0cmljW2ZpZWxkXSA9PT0gY3R4W2ZpZWxkXSk7XG4gICAgfSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZmV0Y2hNZXRyaWNzLnB1c2goe1xuICAgICAgICB1cmw6IGN0eC51cmwsXG4gICAgICAgIGNhY2hlU3RhdHVzOiBjdHguY2FjaGVTdGF0dXMsXG4gICAgICAgIGNhY2hlUmVhc29uOiBjdHguY2FjaGVSZWFzb24sXG4gICAgICAgIHN0YXR1czogY3R4LnN0YXR1cyxcbiAgICAgICAgbWV0aG9kOiBjdHgubWV0aG9kLFxuICAgICAgICBzdGFydDogY3R4LnN0YXJ0LFxuICAgICAgICBlbmQ6IERhdGUubm93KCksXG4gICAgICAgIGlkeDogc3RhdGljR2VuZXJhdGlvblN0b3JlLm5leHRGZXRjaElkIHx8IDBcbiAgICB9KTtcbn1cbi8vIHdlIHBhdGNoIGZldGNoIHRvIGNvbGxlY3QgY2FjaGUgaW5mb3JtYXRpb24gdXNlZCBmb3Jcbi8vIGRldGVybWluaW5nIGlmIGEgcGFnZSBpcyBzdGF0aWMgb3Igbm90XG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hGZXRjaCh7IHNlcnZlckhvb2tzLCBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlIH0pIHtcbiAgICBpZiAoIWdsb2JhbFRoaXMuX25leHRPcmlnaW5hbEZldGNoKSB7XG4gICAgICAgIGdsb2JhbFRoaXMuX25leHRPcmlnaW5hbEZldGNoID0gZ2xvYmFsVGhpcy5mZXRjaDtcbiAgICB9XG4gICAgaWYgKGdsb2JhbFRoaXMuZmV0Y2guX19uZXh0UGF0Y2hlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHsgRHluYW1pY1NlcnZlckVycm9yIH0gPSBzZXJ2ZXJIb29rcztcbiAgICBjb25zdCBvcmlnaW5GZXRjaCA9IGdsb2JhbFRoaXMuX25leHRPcmlnaW5hbEZldGNoO1xuICAgIGdsb2JhbFRoaXMuZmV0Y2ggPSBhc3luYyAoaW5wdXQsIGluaXQpPT57XG4gICAgICAgIHZhciBfaW5pdF9tZXRob2QsIF90aGlzO1xuICAgICAgICBsZXQgdXJsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QgPyBpbnB1dC51cmwgOiBpbnB1dCk7XG4gICAgICAgICAgICB1cmwudXNlcm5hbWUgPSBcIlwiO1xuICAgICAgICAgICAgdXJsLnBhc3N3b3JkID0gXCJcIjtcbiAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgLy8gRXJyb3IgY2F1c2VkIGJ5IG1hbGZvcm1lZCBVUkwgc2hvdWxkIGJlIGhhbmRsZWQgYnkgbmF0aXZlIGZldGNoXG4gICAgICAgICAgICB1cmwgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmV0Y2hVcmwgPSAodXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwuaHJlZikgPz8gXCJcIjtcbiAgICAgICAgY29uc3QgZmV0Y2hTdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbWV0aG9kID0gaW5pdC5tZXRob2QpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9tZXRob2QudG9VcHBlckNhc2UoKSkgfHwgXCJHRVRcIjtcbiAgICAgICAgLy8gRG8gY3JlYXRlIGEgbmV3IHNwYW4gdHJhY2UgZm9yIGludGVybmFsIGZldGNoZXMgaW4gdGhlXG4gICAgICAgIC8vIG5vbi12ZXJib3NlIG1vZGUuXG4gICAgICAgIGNvbnN0IGlzSW50ZXJuYWwgPSAoKF90aGlzID0gaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdC5uZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXMuaW50ZXJuYWwpID09PSB0cnVlO1xuICAgICAgICBjb25zdCBoaWRlU3BhbiA9IHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9GRVRDSF9ESVNBQkxFRCA9PT0gXCIxXCI7XG4gICAgICAgIHJldHVybiBhd2FpdCBnZXRUcmFjZXIoKS50cmFjZShpc0ludGVybmFsID8gTmV4dE5vZGVTZXJ2ZXJTcGFuLmludGVybmFsRmV0Y2ggOiBBcHBSZW5kZXJTcGFuLmZldGNoLCB7XG4gICAgICAgICAgICBoaWRlU3BhbixcbiAgICAgICAgICAgIGtpbmQ6IFNwYW5LaW5kLkNMSUVOVCxcbiAgICAgICAgICAgIHNwYW5OYW1lOiBbXG4gICAgICAgICAgICAgICAgXCJmZXRjaFwiLFxuICAgICAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgICAgICBmZXRjaFVybFxuICAgICAgICAgICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIiksXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgXCJodHRwLnVybFwiOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICBcImh0dHAubWV0aG9kXCI6IG1ldGhvZCxcbiAgICAgICAgICAgICAgICBcIm5ldC5wZWVyLm5hbWVcIjogdXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwuaG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgXCJuZXQucGVlci5wb3J0XCI6ICh1cmwgPT0gbnVsbCA/IHZvaWQgMCA6IHVybC5wb3J0KSB8fCB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgYXN5bmMgKCk9PntcbiAgICAgICAgICAgIHZhciBfZ2V0UmVxdWVzdE1ldGE7XG4gICAgICAgICAgICBjb25zdCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUgPSBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlLmdldFN0b3JlKCkgfHwgKGZldGNoLl9fbmV4dEdldFN0YXRpY1N0b3JlID09IG51bGwgPyB2b2lkIDAgOiBmZXRjaC5fX25leHRHZXRTdGF0aWNTdG9yZS5jYWxsKGZldGNoKSk7XG4gICAgICAgICAgICBjb25zdCBpc1JlcXVlc3RJbnB1dCA9IGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgaW5wdXQubWV0aG9kID09PSBcInN0cmluZ1wiO1xuICAgICAgICAgICAgY29uc3QgZ2V0UmVxdWVzdE1ldGEgPSAoZmllbGQpPT57XG4gICAgICAgICAgICAgICAgLy8gSWYgcmVxdWVzdCBpbnB1dCBpcyBwcmVzZW50IGJ1dCBpbml0IGlzIG5vdCwgcmV0cmlldmUgZnJvbSBpbnB1dCBmaXJzdC5cbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXRbZmllbGRdO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSB8fCAoaXNSZXF1ZXN0SW5wdXQgPyBpbnB1dFtmaWVsZF0gOiBudWxsKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyBJZiB0aGUgc3RhdGljR2VuZXJhdGlvblN0b3JlIGlzIG5vdCBhdmFpbGFibGUsIHdlIGNhbid0IGRvIGFueVxuICAgICAgICAgICAgLy8gc3BlY2lhbCB0cmVhdG1lbnQgb2YgZmV0Y2gsIHRoZXJlZm9yZSBmYWxsYmFjayB0byB0aGUgb3JpZ2luYWxcbiAgICAgICAgICAgIC8vIGZldGNoIGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUgfHwgaXNJbnRlcm5hbCB8fCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luRmV0Y2goaW5wdXQsIGluaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBnZXROZXh0RmllbGQgPSAoZmllbGQpPT57XG4gICAgICAgICAgICAgICAgdmFyIF9pbml0X25leHQsIF9pbml0X25leHQxLCBfaW5wdXRfbmV4dDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbmV4dCA9IGluaXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X25leHRbZmllbGRdKSAhPT0gXCJ1bmRlZmluZWRcIiA/IGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9uZXh0MSA9IGluaXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X25leHQxW2ZpZWxkXSA6IGlzUmVxdWVzdElucHV0ID8gKF9pbnB1dF9uZXh0ID0gaW5wdXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbnB1dF9uZXh0W2ZpZWxkXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyBSZXF1ZXN0SW5pdCBkb2Vzbid0IGtlZXAgZXh0cmEgZmllbGRzIGUuZy4gbmV4dCBzbyBpdCdzXG4gICAgICAgICAgICAvLyBvbmx5IGF2YWlsYWJsZSBpZiBpbml0IGlzIHVzZWQgc2VwYXJhdGVcbiAgICAgICAgICAgIGxldCBjdXJSZXZhbGlkYXRlID0gZ2V0TmV4dEZpZWxkKFwicmV2YWxpZGF0ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSB2YWxpZGF0ZVRhZ3MoZ2V0TmV4dEZpZWxkKFwidGFnc1wiKSB8fCBbXSwgYGZldGNoICR7aW5wdXQudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhZ3MpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncykge1xuICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzKXtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncy5pbmNsdWRlcyh0YWcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUudGFncy5wdXNoKHRhZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbXBsaWNpdFRhZ3MgPSBhZGRJbXBsaWNpdFRhZ3Moc3RhdGljR2VuZXJhdGlvblN0b3JlKTtcbiAgICAgICAgICAgIGNvbnN0IGlzT25seUNhY2hlID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoQ2FjaGUgPT09IFwib25seS1jYWNoZVwiO1xuICAgICAgICAgICAgY29uc3QgaXNGb3JjZUNhY2hlID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoQ2FjaGUgPT09IFwiZm9yY2UtY2FjaGVcIjtcbiAgICAgICAgICAgIGNvbnN0IGlzRGVmYXVsdENhY2hlID0gc3RhdGljR2VuZXJhdGlvblN0b3JlLmZldGNoQ2FjaGUgPT09IFwiZGVmYXVsdC1jYWNoZVwiO1xuICAgICAgICAgICAgY29uc3QgaXNEZWZhdWx0Tm9TdG9yZSA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mZXRjaENhY2hlID09PSBcImRlZmF1bHQtbm8tc3RvcmVcIjtcbiAgICAgICAgICAgIGNvbnN0IGlzT25seU5vU3RvcmUgPSBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZmV0Y2hDYWNoZSA9PT0gXCJvbmx5LW5vLXN0b3JlXCI7XG4gICAgICAgICAgICBjb25zdCBpc0ZvcmNlTm9TdG9yZSA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mZXRjaENhY2hlID09PSBcImZvcmNlLW5vLXN0b3JlXCI7XG4gICAgICAgICAgICBjb25zdCBpc1VzaW5nTm9TdG9yZSA9ICEhc3RhdGljR2VuZXJhdGlvblN0b3JlLmlzVW5zdGFibGVOb1N0b3JlO1xuICAgICAgICAgICAgbGV0IF9jYWNoZSA9IGdldFJlcXVlc3RNZXRhKFwiY2FjaGVcIik7XG4gICAgICAgICAgICBsZXQgY2FjaGVSZWFzb24gPSBcIlwiO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBfY2FjaGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGN1clJldmFsaWRhdGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHByb3ZpZGluZyBmZXRjaCB3aXRoIGEgUmVxdWVzdCBpbnB1dCwgaXQnbGwgYXV0b21hdGljYWxseSBzZXQgYSBjYWNoZSB2YWx1ZSBvZiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IHdhbnQgdG8gd2FybiBpZiB0aGUgdXNlciBpcyBleHBsaWNpdGx5IHNldHRpbmcgYSBjYWNoZSB2YWx1ZVxuICAgICAgICAgICAgICAgIGlmICghKGlzUmVxdWVzdElucHV0ICYmIF9jYWNoZSA9PT0gXCJkZWZhdWx0XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIExvZy53YXJuKGBmZXRjaCBmb3IgJHtmZXRjaFVybH0gb24gJHtzdGF0aWNHZW5lcmF0aW9uU3RvcmUudXJsUGF0aG5hbWV9IHNwZWNpZmllZCBcImNhY2hlOiAke19jYWNoZX1cIiBhbmQgXCJyZXZhbGlkYXRlOiAke2N1clJldmFsaWRhdGV9XCIsIG9ubHkgb25lIHNob3VsZCBiZSBzcGVjaWZpZWQuYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF9jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfY2FjaGUgPT09IFwiZm9yY2UtY2FjaGVcIikge1xuICAgICAgICAgICAgICAgIGN1clJldmFsaWRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoX2NhY2hlID09PSBcIm5vLWNhY2hlXCIgfHwgX2NhY2hlID09PSBcIm5vLXN0b3JlXCIgfHwgaXNGb3JjZU5vU3RvcmUgfHwgaXNPbmx5Tm9TdG9yZSkge1xuICAgICAgICAgICAgICAgIGN1clJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKF9jYWNoZSA9PT0gXCJuby1jYWNoZVwiIHx8IF9jYWNoZSA9PT0gXCJuby1zdG9yZVwiKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSBgY2FjaGU6ICR7X2NhY2hlfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXZhbGlkYXRlID0gdmFsaWRhdGVSZXZhbGlkYXRlKGN1clJldmFsaWRhdGUsIHN0YXRpY0dlbmVyYXRpb25TdG9yZS51cmxQYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBfaGVhZGVycyA9IGdldFJlcXVlc3RNZXRhKFwiaGVhZGVyc1wiKTtcbiAgICAgICAgICAgIGNvbnN0IGluaXRIZWFkZXJzID0gdHlwZW9mIChfaGVhZGVycyA9PSBudWxsID8gdm9pZCAwIDogX2hlYWRlcnMuZ2V0KSA9PT0gXCJmdW5jdGlvblwiID8gX2hlYWRlcnMgOiBuZXcgSGVhZGVycyhfaGVhZGVycyB8fCB7fSk7XG4gICAgICAgICAgICBjb25zdCBoYXNVbkNhY2hlYWJsZUhlYWRlciA9IGluaXRIZWFkZXJzLmdldChcImF1dGhvcml6YXRpb25cIikgfHwgaW5pdEhlYWRlcnMuZ2V0KFwiY29va2llXCIpO1xuICAgICAgICAgICAgY29uc3QgaXNVbkNhY2hlYWJsZU1ldGhvZCA9ICFbXG4gICAgICAgICAgICAgICAgXCJnZXRcIixcbiAgICAgICAgICAgICAgICBcImhlYWRcIlxuICAgICAgICAgICAgXS5pbmNsdWRlcygoKF9nZXRSZXF1ZXN0TWV0YSA9IGdldFJlcXVlc3RNZXRhKFwibWV0aG9kXCIpKSA9PSBudWxsID8gdm9pZCAwIDogX2dldFJlcXVlc3RNZXRhLnRvTG93ZXJDYXNlKCkpIHx8IFwiZ2V0XCIpO1xuICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGF1dGhvcml6ZWQgaGVhZGVycyBvciBhIFBPU1QgbWV0aG9kIGFuZFxuICAgICAgICAgICAgLy8gZHluYW1pYyBkYXRhIHVzYWdlIHdhcyBwcmVzZW50IGFib3ZlIHRoZSB0cmVlIHdlIGJhaWxcbiAgICAgICAgICAgIC8vIGUuZy4gaWYgY29va2llcygpIGlzIHVzZWQgYmVmb3JlIGFuIGF1dGhlZC9QT1NUIGZldGNoXG4gICAgICAgICAgICBjb25zdCBhdXRvTm9DYWNoZSA9IChoYXNVbkNhY2hlYWJsZUhlYWRlciB8fCBpc1VuQ2FjaGVhYmxlTWV0aG9kKSAmJiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gMDtcbiAgICAgICAgICAgIGlmIChpc0ZvcmNlTm9TdG9yZSkge1xuICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gXCJmZXRjaENhY2hlID0gZm9yY2Utbm8tc3RvcmVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc09ubHlOb1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgaWYgKF9jYWNoZSA9PT0gXCJmb3JjZS1jYWNoZVwiIHx8IHR5cGVvZiByZXZhbGlkYXRlICE9PSBcInVuZGVmaW5lZFwiICYmIChyZXZhbGlkYXRlID09PSBmYWxzZSB8fCByZXZhbGlkYXRlID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYWNoZTogJ2ZvcmNlLWNhY2hlJyB1c2VkIG9uIGZldGNoIGZvciAke2ZldGNoVXJsfSB3aXRoICdleHBvcnQgY29uc3QgZmV0Y2hDYWNoZSA9ICdvbmx5LW5vLXN0b3JlJ2ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9IFwiZmV0Y2hDYWNoZSA9IG9ubHktbm8tc3RvcmVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc09ubHlDYWNoZSAmJiBfY2FjaGUgPT09IFwibm8tc3RvcmVcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FjaGU6ICduby1zdG9yZScgdXNlZCBvbiBmZXRjaCBmb3IgJHtmZXRjaFVybH0gd2l0aCAnZXhwb3J0IGNvbnN0IGZldGNoQ2FjaGUgPSAnb25seS1jYWNoZSdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ZvcmNlQ2FjaGUgJiYgKHR5cGVvZiBjdXJSZXZhbGlkYXRlID09PSBcInVuZGVmaW5lZFwiIHx8IGN1clJldmFsaWRhdGUgPT09IDApKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSBcImZldGNoQ2FjaGUgPSBmb3JjZS1jYWNoZVwiO1xuICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmV2YWxpZGF0ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgIGlmIChpc0RlZmF1bHRDYWNoZSkge1xuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gXCJmZXRjaENhY2hlID0gZGVmYXVsdC1jYWNoZVwiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXV0b05vQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gXCJhdXRvIG5vIGNhY2hlXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0RlZmF1bHROb1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9IFwiZmV0Y2hDYWNoZSA9IGRlZmF1bHQtbm8tc3RvcmVcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVXNpbmdOb1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9IFwibm9TdG9yZSBjYWxsXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSBcImF1dG8gY2FjaGVcIjtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZSA9IHR5cGVvZiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gXCJib29sZWFuXCIgfHwgdHlwZW9mIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID09PSBcInVuZGVmaW5lZFwiID8gZmFsc2UgOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZVJlYXNvbikge1xuICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gYHJldmFsaWRhdGU6ICR7cmV2YWxpZGF0ZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKC8vIHdoZW4gZm9yY2Ugc3RhdGljIGlzIGNvbmZpZ3VyZWQgd2UgZG9uJ3QgYmFpbCBmcm9tXG4gICAgICAgICAgICAvLyBgcmV2YWxpZGF0ZTogMGAgdmFsdWVzXG4gICAgICAgICAgICAhKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5mb3JjZVN0YXRpYyAmJiByZXZhbGlkYXRlID09PSAwKSAmJiAvLyB3ZSBkb24ndCBjb25zaWRlciBhdXRvTm9DYWNoZSB0byBzd2l0Y2ggdG8gZHluYW1pYyBkdXJpbmdcbiAgICAgICAgICAgIC8vIHJldmFsaWRhdGUgYWx0aG91Z2ggaWYgaXQgb2NjdXJzIGR1cmluZyBidWlsZCB3ZSBkb1xuICAgICAgICAgICAgIWF1dG9Ob0NhY2hlICYmIC8vIElmIHRoZSByZXZhbGlkYXRlIHZhbHVlIGlzbid0IGN1cnJlbnRseSBzZXQgb3IgdGhlIHZhbHVlIGlzIGxlc3NcbiAgICAgICAgICAgIC8vIHRoYW4gdGhlIGN1cnJlbnQgcmV2YWxpZGF0ZSB2YWx1ZSwgd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgcmV2YWxpZGF0ZVxuICAgICAgICAgICAgLy8gdmFsdWUuXG4gICAgICAgICAgICAodHlwZW9mIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiByZXZhbGlkYXRlID09PSBcIm51bWJlclwiICYmIChzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gZmFsc2UgfHwgdHlwZW9mIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID09PSBcIm51bWJlclwiICYmIHJldmFsaWRhdGUgPCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSkpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZSBzZXR0aW5nIHRoZSByZXZhbGlkYXRlIHZhbHVlIHRvIDAsIHdlIHNob3VsZCB0cnkgdG9cbiAgICAgICAgICAgICAgICAvLyBwb3N0cG9uZSBpbnN0ZWFkIGZpcnN0LlxuICAgICAgICAgICAgICAgIGlmIChyZXZhbGlkYXRlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5wb3N0cG9uZSA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lLmNhbGwoc3RhdGljR2VuZXJhdGlvblN0b3JlLCBcInJldmFsaWRhdGU6IDBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID0gcmV2YWxpZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSA9IHR5cGVvZiByZXZhbGlkYXRlID09PSBcIm51bWJlclwiICYmIHJldmFsaWRhdGUgPiAwIHx8IHJldmFsaWRhdGUgPT09IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGNhY2hlS2V5O1xuICAgICAgICAgICAgaWYgKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pbmNyZW1lbnRhbENhY2hlICYmIGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5ID0gYXdhaXQgc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUuZmV0Y2hDYWNoZUtleShmZXRjaFVybCwgaXNSZXF1ZXN0SW5wdXQgPyBpbnB1dCA6IGluaXQpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgY2FjaGUga2V5IGZvcmAsIGlucHV0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmZXRjaElkeCA9IHN0YXRpY0dlbmVyYXRpb25TdG9yZS5uZXh0RmV0Y2hJZCA/PyAxO1xuICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLm5leHRGZXRjaElkID0gZmV0Y2hJZHggKyAxO1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFJldmFsaWRhdGUgPSB0eXBlb2YgcmV2YWxpZGF0ZSAhPT0gXCJudW1iZXJcIiA/IENBQ0hFX09ORV9ZRUFSIDogcmV2YWxpZGF0ZTtcbiAgICAgICAgICAgIGNvbnN0IGRvT3JpZ2luYWxGZXRjaCA9IGFzeW5jIChpc1N0YWxlLCBjYWNoZVJlYXNvbk92ZXJyaWRlKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJbnB1dEZpZWxkcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgXCJjYWNoZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGVhZGVyc1wiLFxuICAgICAgICAgICAgICAgICAgICBcImludGVncml0eVwiLFxuICAgICAgICAgICAgICAgICAgICBcImtlZXBhbGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1ldGhvZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1vZGVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZWRpcmVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlZmVycmVyXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVmZXJyZXJQb2xpY3lcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ3aW5kb3dcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkdXBsZXhcIixcbiAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgcGFzcyB0aHJvdWdoIHNpZ25hbCB3aGVuIHJldmFsaWRhdGluZ1xuICAgICAgICAgICAgICAgICAgICAuLi5pc1N0YWxlID8gW10gOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNpZ25hbFwiXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGlmIChpc1JlcXVlc3RJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXFJbnB1dCA9IGlucHV0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXFPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogcmVxSW5wdXQuX29nQm9keSB8fCByZXFJbnB1dC5ib2R5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcmVxdWVzdElucHV0RmllbGRzKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgY3VzdG9tIGZpZWxkc1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxT3B0aW9uc1tmaWVsZF0gPSByZXFJbnB1dFtmaWVsZF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBuZXcgUmVxdWVzdChyZXFJbnB1dC51cmwsIHJlcU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5pdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFsSW5pdCA9IGluaXQ7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBpbml0Ll9vZ0JvZHkgfHwgaW5pdC5ib2R5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcmVxdWVzdElucHV0RmllbGRzKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgY3VzdG9tIGZpZWxkc1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFtmaWVsZF0gPSBpbml0aWFsSW5pdFtmaWVsZF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYWRkIG1ldGFkYXRhIHRvIGluaXQgd2l0aG91dCBlZGl0aW5nIHRoZSBvcmlnaW5hbFxuICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lZEluaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQubmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoVHlwZTogXCJvcmlnaW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoSWR4XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5GZXRjaChpbnB1dCwgY2xvbmVkSW5pdCkudGhlbihhc3luYyAocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRmV0Y2hNZXRyaWMoc3RhdGljR2VuZXJhdGlvblN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZldGNoU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbjogY2FjaGVSZWFzb25PdmVycmlkZSB8fCBjYWNoZVJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1czogcmV2YWxpZGF0ZSA9PT0gMCB8fCBjYWNoZVJlYXNvbk92ZXJyaWRlID8gXCJza2lwXCIgOiBcIm1pc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBjbG9uZWRJbml0Lm1ldGhvZCB8fCBcIkdFVFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwICYmIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pbmNyZW1lbnRhbENhY2hlICYmIGNhY2hlS2V5ICYmIGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IFwiRkVUQ0hcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHJlcy5oZWFkZXJzLmVudHJpZXMoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBib2R5QnVmZmVyLnRvU3RyaW5nKFwiYmFzZTY0XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiByZXMudXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG5vcm1hbGl6ZWRSZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaENhY2hlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hJZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHNldCBmZXRjaCBjYWNoZWAsIGlucHV0LCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keUJ1ZmZlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHJlcy5oZWFkZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlc3BvbnNlLCBcInVybFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlcy51cmxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IGhhbmRsZVVubG9jayA9ICgpPT5Qcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIGxldCBjYWNoZVJlYXNvbk92ZXJyaWRlO1xuICAgICAgICAgICAgaWYgKGNhY2hlS2V5ICYmIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pbmNyZW1lbnRhbENhY2hlKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlVW5sb2NrID0gYXdhaXQgc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUubG9jayhjYWNoZUtleSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNPbkRlbWFuZFJldmFsaWRhdGUgPyBudWxsIDogYXdhaXQgc3RhdGljR2VuZXJhdGlvblN0b3JlLmluY3JlbWVudGFsQ2FjaGUuZ2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmRIaW50OiBcImZldGNoXCIsXG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgIGZldGNoVXJsLFxuICAgICAgICAgICAgICAgICAgICBmZXRjaElkeCxcbiAgICAgICAgICAgICAgICAgICAgdGFncyxcbiAgICAgICAgICAgICAgICAgICAgc29mdFRhZ3M6IGltcGxpY2l0VGFnc1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVVbmxvY2soKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBpbiBkZXYsIGluY3JlbWVudGFsIGNhY2hlIHJlc3BvbnNlIHdpbGwgYmUgbnVsbCBpbiBjYXNlIHRoZSBicm93c2VyIGFkZHMgYGNhY2hlLWNvbnRyb2w6IG5vLWNhY2hlYCBpbiB0aGUgcmVxdWVzdCBoZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uT3ZlcnJpZGUgPSBcImNhY2hlLWNvbnRyb2w6IG5vLWNhY2hlIChoYXJkIHJlZnJlc2gpXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoZW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IGVudHJ5LnZhbHVlKSAmJiBlbnRyeS52YWx1ZS5raW5kID09PSBcIkZFVENIXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBzdGFsZSBhbmQgaXMgcmV2YWxpZGF0aW5nIHdlIHdhaXQgZm9yIGZyZXNoIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgLy8gc28gdGhlIHJldmFsaWRhdGVkIGVudHJ5IGhhcyB0aGUgdXBkYXRlZCBkYXRhXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHN0YXRpY0dlbmVyYXRpb25TdG9yZS5pc1JldmFsaWRhdGUgJiYgZW50cnkuaXNTdGFsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS5pc1N0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW2NhY2hlS2V5XSA9IGRvT3JpZ2luYWxGZXRjaCh0cnVlKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNEYXRhID0gZW50cnkudmFsdWUuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRmV0Y2hNZXRyaWMoc3RhdGljR2VuZXJhdGlvblN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZldGNoU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1czogXCJoaXRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc0RhdGEuc3RhdHVzIHx8IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IChpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0Lm1ldGhvZCkgfHwgXCJHRVRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShCdWZmZXIuZnJvbShyZXNEYXRhLmJvZHksIFwiYmFzZTY0XCIpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVzRGF0YS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzRGF0YS5zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlc3BvbnNlLCBcInVybFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVudHJ5LnZhbHVlLmRhdGEudXJsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdGF0aWNHZW5lcmF0aW9uU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uICYmIGluaXQgJiYgdHlwZW9mIGluaXQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNhY2hlIH0gPSBpbml0O1xuICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBgY2FjaGVgIHByb3BlcnR5IGFzIENsb3VkZmxhcmUgV29ya2VycyB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgICAgICAgICAgICAgaWYgKGlzRWRnZVJ1bnRpbWUpIGRlbGV0ZSBpbml0LmNhY2hlO1xuICAgICAgICAgICAgICAgIGlmICghc3RhdGljR2VuZXJhdGlvblN0b3JlLmZvcmNlU3RhdGljICYmIGNhY2hlID09PSBcIm5vLXN0b3JlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZHluYW1pY1VzYWdlUmVhc29uID0gYG5vLXN0b3JlIGZldGNoICR7aW5wdXR9JHtzdGF0aWNHZW5lcmF0aW9uU3RvcmUudXJsUGF0aG5hbWUgPyBgICR7c3RhdGljR2VuZXJhdGlvblN0b3JlLnVybFBhdGhuYW1lfWAgOiBcIlwifWA7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIGVuYWJsZWQsIHdlIHNob3VsZCBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucG9zdHBvbmUuY2FsbChzdGF0aWNHZW5lcmF0aW9uU3RvcmUsIGR5bmFtaWNVc2FnZVJlYXNvbik7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUiBpcyBub3QgZW5hYmxlZCwgb3IgUmVhY3QgcG9zdHBvbmUgaXMgbm90IGF2YWlsYWJsZSwgd2VcbiAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkIHNldCB0aGUgcmV2YWxpZGF0ZSB0byAwLlxuICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBEeW5hbWljU2VydmVyRXJyb3IoZHluYW1pY1VzYWdlUmVhc29uKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZUVyciA9IGVycjtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZHluYW1pY1VzYWdlUmVhc29uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNOZXh0Q29uZmlnID0gXCJuZXh0XCIgaW4gaW5pdDtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG5leHQgPSB7fSB9ID0gaW5pdDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG5leHQucmV2YWxpZGF0ZSA9PT0gXCJudW1iZXJcIiAmJiAodHlwZW9mIHN0YXRpY0dlbmVyYXRpb25TdG9yZS5yZXZhbGlkYXRlID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSA9PT0gXCJudW1iZXJcIiAmJiBuZXh0LnJldmFsaWRhdGUgPCBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucmV2YWxpZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZm9yY2VEeW5hbWljICYmICFzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZm9yY2VTdGF0aWMgJiYgbmV4dC5yZXZhbGlkYXRlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkeW5hbWljVXNhZ2VSZWFzb24gPSBgcmV2YWxpZGF0ZTogMCBmZXRjaCAke2lucHV0fSR7c3RhdGljR2VuZXJhdGlvblN0b3JlLnVybFBhdGhuYW1lID8gYCAke3N0YXRpY0dlbmVyYXRpb25TdG9yZS51cmxQYXRobmFtZX1gIDogXCJcIn1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgZW5hYmxlZCwgd2Ugc2hvdWxkIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnBvc3Rwb25lID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNHZW5lcmF0aW9uU3RvcmUucG9zdHBvbmUuY2FsbChzdGF0aWNHZW5lcmF0aW9uU3RvcmUsIGR5bmFtaWNVc2FnZVJlYXNvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKGR5bmFtaWNVc2FnZVJlYXNvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNHZW5lcmF0aW9uU3RvcmUuZHluYW1pY1VzYWdlRXJyID0gZXJyO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZHluYW1pY1VzYWdlUmVhc29uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3RhdGljR2VuZXJhdGlvblN0b3JlLmZvcmNlU3RhdGljIHx8IG5leHQucmV2YWxpZGF0ZSAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljR2VuZXJhdGlvblN0b3JlLnJldmFsaWRhdGUgPSBuZXh0LnJldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhhc05leHRDb25maWcpIGRlbGV0ZSBpbml0Lm5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZG9PcmlnaW5hbEZldGNoKGZhbHNlLCBjYWNoZVJlYXNvbk92ZXJyaWRlKS5maW5hbGx5KGhhbmRsZVVubG9jayk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgZ2xvYmFsVGhpcy5mZXRjaC5fX25leHRHZXRTdGF0aWNTdG9yZSA9ICgpPT57XG4gICAgICAgIHJldHVybiBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlO1xuICAgIH07XG4gICAgZ2xvYmFsVGhpcy5mZXRjaC5fX25leHRQYXRjaGVkID0gdHJ1ZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGF0Y2gtZmV0Y2guanMubWFwIl0sIm5hbWVzIjpbIkFwcFJlbmRlclNwYW4iLCJOZXh0Tm9kZVNlcnZlclNwYW4iLCJnZXRUcmFjZXIiLCJTcGFuS2luZCIsIkNBQ0hFX09ORV9ZRUFSIiwiTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQiLCJORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIIiwiTG9nIiwiaXNFZGdlUnVudGltZSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJ2YWxpZGF0ZVJldmFsaWRhdGUiLCJyZXZhbGlkYXRlVmFsIiwicGF0aG5hbWUiLCJub3JtYWxpemVkUmV2YWxpZGF0ZSIsInVuZGVmaW5lZCIsImlzTmFOIiwiRXJyb3IiLCJlcnIiLCJtZXNzYWdlIiwiaW5jbHVkZXMiLCJ2YWxpZGF0ZVRhZ3MiLCJ0YWdzIiwiZGVzY3JpcHRpb24iLCJ2YWxpZFRhZ3MiLCJpbnZhbGlkVGFncyIsInRhZyIsInB1c2giLCJyZWFzb24iLCJsZW5ndGgiLCJjb25zb2xlIiwid2FybiIsImxvZyIsImdldERlcml2ZWRUYWdzIiwiZGVyaXZlZFRhZ3MiLCJzdGFydHNXaXRoIiwicGF0aG5hbWVQYXJ0cyIsInNwbGl0IiwiaSIsImN1clBhdGhuYW1lIiwic2xpY2UiLCJqb2luIiwiZW5kc1dpdGgiLCJhZGRJbXBsaWNpdFRhZ3MiLCJzdGF0aWNHZW5lcmF0aW9uU3RvcmUiLCJuZXdUYWdzIiwicGFnZVBhdGgiLCJ1cmxQYXRobmFtZSIsIkFycmF5IiwiaXNBcnJheSIsIl9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFncyIsIl9zdGF0aWNHZW5lcmF0aW9uU3RvcmVfdGFnczEiLCJwYXJzZWRQYXRobmFtZSIsIlVSTCIsInRyYWNrRmV0Y2hNZXRyaWMiLCJjdHgiLCJmZXRjaE1ldHJpY3MiLCJkZWR1cGVGaWVsZHMiLCJzb21lIiwibWV0cmljIiwiZXZlcnkiLCJmaWVsZCIsInVybCIsImNhY2hlU3RhdHVzIiwiY2FjaGVSZWFzb24iLCJzdGF0dXMiLCJtZXRob2QiLCJzdGFydCIsImVuZCIsIkRhdGUiLCJub3ciLCJpZHgiLCJuZXh0RmV0Y2hJZCIsInBhdGNoRmV0Y2giLCJzZXJ2ZXJIb29rcyIsInN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UiLCJnbG9iYWxUaGlzIiwiX25leHRPcmlnaW5hbEZldGNoIiwiZmV0Y2giLCJfX25leHRQYXRjaGVkIiwiRHluYW1pY1NlcnZlckVycm9yIiwib3JpZ2luRmV0Y2giLCJpbnB1dCIsImluaXQiLCJfaW5pdF9tZXRob2QiLCJfdGhpcyIsIlJlcXVlc3QiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZmV0Y2hVcmwiLCJocmVmIiwiZmV0Y2hTdGFydCIsInRvVXBwZXJDYXNlIiwiaXNJbnRlcm5hbCIsIm5leHQiLCJpbnRlcm5hbCIsImhpZGVTcGFuIiwiTkVYVF9PVEVMX0ZFVENIX0RJU0FCTEVEIiwidHJhY2UiLCJpbnRlcm5hbEZldGNoIiwia2luZCIsIkNMSUVOVCIsInNwYW5OYW1lIiwiZmlsdGVyIiwiQm9vbGVhbiIsImF0dHJpYnV0ZXMiLCJob3N0bmFtZSIsInBvcnQiLCJfZ2V0UmVxdWVzdE1ldGEiLCJnZXRTdG9yZSIsIl9fbmV4dEdldFN0YXRpY1N0b3JlIiwiY2FsbCIsImlzUmVxdWVzdElucHV0IiwiZ2V0UmVxdWVzdE1ldGEiLCJ2YWx1ZSIsImlzRHJhZnRNb2RlIiwicmV2YWxpZGF0ZSIsImdldE5leHRGaWVsZCIsIl9pbml0X25leHQiLCJfaW5pdF9uZXh0MSIsIl9pbnB1dF9uZXh0IiwiY3VyUmV2YWxpZGF0ZSIsInRvU3RyaW5nIiwiaW1wbGljaXRUYWdzIiwiaXNPbmx5Q2FjaGUiLCJmZXRjaENhY2hlIiwiaXNGb3JjZUNhY2hlIiwiaXNEZWZhdWx0Q2FjaGUiLCJpc0RlZmF1bHROb1N0b3JlIiwiaXNPbmx5Tm9TdG9yZSIsImlzRm9yY2VOb1N0b3JlIiwiaXNVc2luZ05vU3RvcmUiLCJpc1Vuc3RhYmxlTm9TdG9yZSIsIl9jYWNoZSIsIl9oZWFkZXJzIiwiaW5pdEhlYWRlcnMiLCJnZXQiLCJIZWFkZXJzIiwiaGFzVW5DYWNoZWFibGVIZWFkZXIiLCJpc1VuQ2FjaGVhYmxlTWV0aG9kIiwidG9Mb3dlckNhc2UiLCJhdXRvTm9DYWNoZSIsImZvcmNlU3RhdGljIiwicG9zdHBvbmUiLCJpc0NhY2hlYWJsZVJldmFsaWRhdGUiLCJjYWNoZUtleSIsImluY3JlbWVudGFsQ2FjaGUiLCJmZXRjaENhY2hlS2V5IiwiZXJyb3IiLCJmZXRjaElkeCIsImRvT3JpZ2luYWxGZXRjaCIsImlzU3RhbGUiLCJjYWNoZVJlYXNvbk92ZXJyaWRlIiwicmVxdWVzdElucHV0RmllbGRzIiwicmVxSW5wdXQiLCJyZXFPcHRpb25zIiwiYm9keSIsIl9vZ0JvZHkiLCJpbml0aWFsSW5pdCIsImNsb25lZEluaXQiLCJmZXRjaFR5cGUiLCJ0aGVuIiwicmVzIiwiYm9keUJ1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJhcnJheUJ1ZmZlciIsInNldCIsImRhdGEiLCJoZWFkZXJzIiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIiwicmVzcG9uc2UiLCJSZXNwb25zZSIsImRlZmluZVByb3BlcnR5IiwiaGFuZGxlVW5sb2NrIiwiUHJvbWlzZSIsInJlc29sdmUiLCJsb2NrIiwiZW50cnkiLCJpc09uRGVtYW5kUmV2YWxpZGF0ZSIsImtpbmRIaW50Iiwic29mdFRhZ3MiLCJpc1JldmFsaWRhdGUiLCJwZW5kaW5nUmV2YWxpZGF0ZXMiLCJjYXRjaCIsInJlc0RhdGEiLCJpc1N0YXRpY0dlbmVyYXRpb24iLCJjYWNoZSIsImR5bmFtaWNVc2FnZVJlYXNvbiIsImR5bmFtaWNVc2FnZUVyciIsImR5bmFtaWNVc2FnZURlc2NyaXB0aW9uIiwiaGFzTmV4dENvbmZpZyIsImZvcmNlRHluYW1pYyIsImZpbmFsbHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/lib/patch-fetch.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/lib/trace/constants.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/trace/constants.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppRenderSpan: () => (/* binding */ AppRenderSpan),\n/* harmony export */ AppRouteRouteHandlersSpan: () => (/* binding */ AppRouteRouteHandlersSpan),\n/* harmony export */ BaseServerSpan: () => (/* binding */ BaseServerSpan),\n/* harmony export */ LoadComponentsSpan: () => (/* binding */ LoadComponentsSpan),\n/* harmony export */ NextNodeServerSpan: () => (/* binding */ NextNodeServerSpan),\n/* harmony export */ NextServerSpan: () => (/* binding */ NextServerSpan),\n/* harmony export */ NextVanillaSpanAllowlist: () => (/* binding */ NextVanillaSpanAllowlist),\n/* harmony export */ NodeSpan: () => (/* binding */ NodeSpan),\n/* harmony export */ RenderSpan: () => (/* binding */ RenderSpan),\n/* harmony export */ ResolveMetadataSpan: () => (/* binding */ ResolveMetadataSpan),\n/* harmony export */ RouterSpan: () => (/* binding */ RouterSpan),\n/* harmony export */ StartServerSpan: () => (/* binding */ StartServerSpan)\n/* harmony export */ });\n/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ var BaseServerSpan;\n(function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n})(BaseServerSpan || (BaseServerSpan = {}));\nvar LoadComponentsSpan;\n(function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n})(LoadComponentsSpan || (LoadComponentsSpan = {}));\nvar NextServerSpan;\n(function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n})(NextServerSpan || (NextServerSpan = {}));\nvar NextNodeServerSpan;\n(function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n})(NextNodeServerSpan || (NextNodeServerSpan = {}));\nvar StartServerSpan;\n(function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n})(StartServerSpan || (StartServerSpan = {}));\nvar RenderSpan;\n(function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n})(RenderSpan || (RenderSpan = {}));\nvar AppRenderSpan;\n(function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n})(AppRenderSpan || (AppRenderSpan = {}));\nvar RouterSpan;\n(function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n})(RouterSpan || (RouterSpan = {}));\nvar NodeSpan;\n(function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n})(NodeSpan || (NodeSpan = {}));\nvar AppRouteRouteHandlersSpan;\n(function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n})(AppRouteRouteHandlersSpan || (AppRouteRouteHandlersSpan = {}));\nvar ResolveMetadataSpan;\n(function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n})(ResolveMetadataSpan || (ResolveMetadataSpan = {}));\n// This list is used to filter out spans that are not relevant to the user\nconst NextVanillaSpanAllowlist = [\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\"\n];\n //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7O0VBS0UsR0FBRyw0Q0FBNEM7QUFDakQsNEJBQTRCLEdBQUcsSUFBSUE7QUFDbEMsVUFBU0EsY0FBYztJQUNwQkEsY0FBYyxDQUFDLGdCQUFnQixHQUFHO0lBQ2xDQSxjQUFjLENBQUMsTUFBTSxHQUFHO0lBQ3hCQSxjQUFjLENBQUMsT0FBTyxHQUFHO0lBQ3pCQSxjQUFjLENBQUMsZ0JBQWdCLEdBQUc7SUFDbENBLGNBQWMsQ0FBQyxTQUFTLEdBQUc7SUFDM0JBLGNBQWMsQ0FBQyxpQ0FBaUMsR0FBRztJQUNuREEsY0FBYyxDQUFDLG1CQUFtQixHQUFHO0lBQ3JDQSxjQUFjLENBQUMsZUFBZSxHQUFHO0lBQ2pDQSxjQUFjLENBQUMsY0FBYyxHQUFHO0lBQ2hDQSxjQUFjLENBQUMsd0JBQXdCLEdBQUc7SUFDMUNBLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRztJQUN0Q0EsY0FBYyxDQUFDLFlBQVksR0FBRztBQUNsQyxHQUFHQSxrQkFBbUJBLENBQUFBLGlCQUFpQixDQUFDO0FBQ3hDLElBQUlDO0FBQ0gsVUFBU0Esa0JBQWtCO0lBQ3hCQSxrQkFBa0IsQ0FBQyw2QkFBNkIsR0FBRztJQUNuREEsa0JBQWtCLENBQUMsaUJBQWlCLEdBQUc7QUFDM0MsR0FBR0Esc0JBQXVCQSxDQUFBQSxxQkFBcUIsQ0FBQztBQUNoRCxJQUFJQztBQUNILFVBQVNBLGNBQWM7SUFDcEJBLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRztJQUN0Q0EsY0FBYyxDQUFDLFlBQVksR0FBRztJQUM5QkEsY0FBYyxDQUFDLDBCQUEwQixHQUFHO0lBQzVDQSxjQUFjLENBQUMsZUFBZSxHQUFHO0FBQ3JDLEdBQUdBLGtCQUFtQkEsQ0FBQUEsaUJBQWlCLENBQUM7QUFDeEMsSUFBSUM7QUFDSCxVQUFTQSxrQkFBa0I7SUFD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Q0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDb00sQ0FFdE0scUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvbGliL3RyYWNlL2NvbnN0YW50cy5qcz9lNDllIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbnMgcHJlZGVmaW5lZCBjb25zdGFudHMgZm9yIHRoZSB0cmFjZSBzcGFuIG5hbWUgaW4gbmV4dC9zZXJ2ZXIuXG4gKlxuICogQ3VycmVudGx5LCBuZXh0L3NlcnZlci90cmFjZXIgaXMgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb25seSBmb3IgdHJhY2tpbmdcbiAqIG5leHQuanMncyBpbXBsZW1lbnRhdGlvbiBvbmx5IHdpdGgga25vd24gc3BhbiBuYW1lcyBkZWZpbmVkIGhlcmUuXG4gKiovIC8vIGVzbGludCB0eXBlc2NyaXB0IGhhcyBhIGJ1ZyB3aXRoIFRTIGVudW1zXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1zaGFkb3cgKi8gdmFyIEJhc2VTZXJ2ZXJTcGFuO1xuKGZ1bmN0aW9uKEJhc2VTZXJ2ZXJTcGFuKSB7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJoYW5kbGVSZXF1ZXN0XCJdID0gXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJ1blwiXSA9IFwiQmFzZVNlcnZlci5ydW5cIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInBpcGVcIl0gPSBcIkJhc2VTZXJ2ZXIucGlwZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wiZ2V0U3RhdGljSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5nZXRTdGF0aWNIVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JUb1Jlc3BvbnNlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJCYXNlU2VydmVyLnJlbmRlcjQwNFwiO1xufSkoQmFzZVNlcnZlclNwYW4gfHwgKEJhc2VTZXJ2ZXJTcGFuID0ge30pKTtcbnZhciBMb2FkQ29tcG9uZW50c1NwYW47XG4oZnVuY3Rpb24oTG9hZENvbXBvbmVudHNTcGFuKSB7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWREZWZhdWx0RXJyb3JDb21wb25lbnRzXCI7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZENvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWRDb21wb25lbnRzXCI7XG59KShMb2FkQ29tcG9uZW50c1NwYW4gfHwgKExvYWRDb21wb25lbnRzU3BhbiA9IHt9KSk7XG52YXIgTmV4dFNlcnZlclNwYW47XG4oZnVuY3Rpb24oTmV4dFNlcnZlclNwYW4pIHtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0U2VydmVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiY3JlYXRlU2VydmVyXCJdID0gXCJjcmVhdGVTZXJ2ZXIuY3JlYXRlU2VydmVyXCI7XG59KShOZXh0U2VydmVyU3BhbiB8fCAoTmV4dFNlcnZlclNwYW4gPSB7fSkpO1xudmFyIE5leHROb2RlU2VydmVyU3BhbjtcbihmdW5jdGlvbihOZXh0Tm9kZVNlcnZlclNwYW4pIHtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjb21wcmVzc2lvblwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY29tcHJlc3Npb25cIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRCdWlsZElkXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRCdWlsZElkXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRMYXlvdXRPclBhZ2VNb2R1bGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVN0YXRpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUZzU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUZzU3RhdGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlUHVibGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVJbWFnZVJvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVJbWFnZVJvdXRlcy5yb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInNlbmRSZW5kZXJSZXN1bHRcIl0gPSBcIk5leHROb2RlU2VydmVyLnNlbmRSZW5kZXJSZXN1bHRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJwcm94eVJlcXVlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLnByb3h5UmVxdWVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJ1bkFwaVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucnVuQXBpXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJIVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJIVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiaW1hZ2VPcHRpbWl6ZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmltYWdlT3B0aW1pemVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UGFnZVBhdGhcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFBhZ2VQYXRoXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0Um91dGVzTWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJvdXRlc01hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZmluZFBhZ2VDb21wb25lbnRzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRGb250TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldEZvbnRNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRTZXJ2ZXJDb21wb25lbnRNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyVG9IVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JUb0hUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckVycm9yVG9IVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXI0MDRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bLy8gbmVzdGVkIGlubmVyIHNwYW4sIGRvZXMgbm90IHJlcXVpcmUgcGFyZW50IHNjb3BlIG5hbWVcbiAgICBcInJvdXRlXCJdID0gXCJyb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcIm9uUHJveHlSZXFcIl0gPSBcIm9uUHJveHlSZXFcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJhcGlSZXNvbHZlclwiXSA9IFwiYXBpUmVzb2x2ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbnRlcm5hbEZldGNoXCJdID0gXCJpbnRlcm5hbEZldGNoXCI7XG59KShOZXh0Tm9kZVNlcnZlclNwYW4gfHwgKE5leHROb2RlU2VydmVyU3BhbiA9IHt9KSk7XG52YXIgU3RhcnRTZXJ2ZXJTcGFuO1xuKGZ1bmN0aW9uKFN0YXJ0U2VydmVyU3Bhbikge1xuICAgIFN0YXJ0U2VydmVyU3BhbltcInN0YXJ0U2VydmVyXCJdID0gXCJzdGFydFNlcnZlci5zdGFydFNlcnZlclwiO1xufSkoU3RhcnRTZXJ2ZXJTcGFuIHx8IChTdGFydFNlcnZlclNwYW4gPSB7fSkpO1xudmFyIFJlbmRlclNwYW47XG4oZnVuY3Rpb24oUmVuZGVyU3Bhbikge1xuICAgIFJlbmRlclNwYW5bXCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIjtcbiAgICBSZW5kZXJTcGFuW1wiZ2V0U3RhdGljUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlckRvY3VtZW50XCJdID0gXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIjtcbiAgICBSZW5kZXJTcGFuW1wiY3JlYXRlQm9keVJlc3VsdFwiXSA9IFwiUmVuZGVyLmNyZWF0ZUJvZHlSZXN1bHRcIjtcbn0pKFJlbmRlclNwYW4gfHwgKFJlbmRlclNwYW4gPSB7fSkpO1xudmFyIEFwcFJlbmRlclNwYW47XG4oZnVuY3Rpb24oQXBwUmVuZGVyU3Bhbikge1xuICAgIEFwcFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvUmVhZGFibGVTdHJlYW1cIl0gPSBcIkFwcFJlbmRlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImdldEJvZHlSZXN1bHRcIl0gPSBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImZldGNoXCJdID0gXCJBcHBSZW5kZXIuZmV0Y2hcIjtcbn0pKEFwcFJlbmRlclNwYW4gfHwgKEFwcFJlbmRlclNwYW4gPSB7fSkpO1xudmFyIFJvdXRlclNwYW47XG4oZnVuY3Rpb24oUm91dGVyU3Bhbikge1xuICAgIFJvdXRlclNwYW5bXCJleGVjdXRlUm91dGVcIl0gPSBcIlJvdXRlci5leGVjdXRlUm91dGVcIjtcbn0pKFJvdXRlclNwYW4gfHwgKFJvdXRlclNwYW4gPSB7fSkpO1xudmFyIE5vZGVTcGFuO1xuKGZ1bmN0aW9uKE5vZGVTcGFuKSB7XG4gICAgTm9kZVNwYW5bXCJydW5IYW5kbGVyXCJdID0gXCJOb2RlLnJ1bkhhbmRsZXJcIjtcbn0pKE5vZGVTcGFuIHx8IChOb2RlU3BhbiA9IHt9KSk7XG52YXIgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjtcbihmdW5jdGlvbihBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuKSB7XG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCI7XG59KShBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuIHx8IChBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuID0ge30pKTtcbnZhciBSZXNvbHZlTWV0YWRhdGFTcGFuO1xuKGZ1bmN0aW9uKFJlc29sdmVNZXRhZGF0YVNwYW4pIHtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVNZXRhZGF0YVwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIjtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVWaWV3cG9ydFwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIjtcbn0pKFJlc29sdmVNZXRhZGF0YVNwYW4gfHwgKFJlc29sdmVNZXRhZGF0YVNwYW4gPSB7fSkpO1xuLy8gVGhpcyBsaXN0IGlzIHVzZWQgdG8gZmlsdGVyIG91dCBzcGFucyB0aGF0IGFyZSBub3QgcmVsZXZhbnQgdG8gdGhlIHVzZXJcbmV4cG9ydCBjb25zdCBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QgPSBbXG4gICAgXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIixcbiAgICBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIixcbiAgICBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiLFxuICAgIFwiQXBwUmVuZGVyLmZldGNoXCIsXG4gICAgXCJBcHBSZW5kZXIuZ2V0Qm9keVJlc3VsdFwiLFxuICAgIFwiUmVuZGVyLnJlbmRlckRvY3VtZW50XCIsXG4gICAgXCJOb2RlLnJ1bkhhbmRsZXJcIixcbiAgICBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCIsXG4gICAgXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCJcbl07XG5leHBvcnQgeyBCYXNlU2VydmVyU3BhbiwgTG9hZENvbXBvbmVudHNTcGFuLCBOZXh0U2VydmVyU3BhbiwgTmV4dE5vZGVTZXJ2ZXJTcGFuLCBTdGFydFNlcnZlclNwYW4sIFJlbmRlclNwYW4sIFJvdXRlclNwYW4sIEFwcFJlbmRlclNwYW4sIE5vZGVTcGFuLCBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuLCBSZXNvbHZlTWV0YWRhdGFTcGFuLCAgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6WyJCYXNlU2VydmVyU3BhbiIsIkxvYWRDb21wb25lbnRzU3BhbiIsIk5leHRTZXJ2ZXJTcGFuIiwiTmV4dE5vZGVTZXJ2ZXJTcGFuIiwiU3RhcnRTZXJ2ZXJTcGFuIiwiUmVuZGVyU3BhbiIsIkFwcFJlbmRlclNwYW4iLCJSb3V0ZXJTcGFuIiwiTm9kZVNwYW4iLCJBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuIiwiUmVzb2x2ZU1ldGFkYXRhU3BhbiIsIk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/lib/trace/tracer.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SpanKind: () => (/* binding */ SpanKind),\n/* harmony export */ SpanStatusCode: () => (/* binding */ SpanStatusCode),\n/* harmony export */ getTracer: () => (/* binding */ getTracer)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"(rsc)/../../node_modules/next/dist/esm/server/lib/trace/constants.js\");\n\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (true) {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/../../node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n} else {}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nconst isPromise = (p)=>{\n return p !== null && typeof p === \"object\" && typeof p.then === \"function\";\n};\nconst closeSpanWithError = (span, error)=>{\n if ((error == null ? void 0 : error.bubble) === true) {\n span.setAttribute(\"next.bubble\", true);\n } else {\n if (error) {\n span.recordException(error);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey(\"next.rootSpanId\");\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer(\"next.js\", \"0.0.1\");\n }\n getContext() {\n return context;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === \"function\" ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n if (!_constants__WEBPACK_IMPORTED_MODULE_0__.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== \"1\" || options.hideSpan) {\n return fn();\n }\n const spanName = options.spanName ?? type;\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n \"next.span_name\": spanName,\n \"next.span_type\": type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if (isPromise(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants__WEBPACK_IMPORTED_MODULE_0__.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== \"1\") {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === \"function\" && typeof fn === \"function\") {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === \"function\") {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n //# sourceMappingURL=tracer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF1RDtBQUN2RCxJQUFJQztBQUNKLGdGQUFnRjtBQUNoRiw4RUFBOEU7QUFDOUUsdUNBQXVDO0FBQ3ZDLDBFQUEwRTtBQUMxRSwrRUFBK0U7QUFDL0UsNENBQTRDO0FBQzVDLDZDQUE2QztBQUM3QyxJQUFJQyxJQUFtQyxFQUFFO0lBQ3JDRCxNQUFNSSxtQkFBT0EsQ0FBQyxtR0FBb0I7QUFDdEMsT0FBTyxFQU1OO0FBQ0QsTUFBTSxFQUFFRSxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsS0FBSyxFQUFFQyxjQUFjLEVBQUVDLFFBQVEsRUFBRUMsWUFBWSxFQUFFLEdBQUdYO0FBQ2hGLE1BQU1ZLFlBQVksQ0FBQ0M7SUFDZixPQUFPQSxNQUFNLFFBQVEsT0FBT0EsTUFBTSxZQUFZLE9BQU9BLEVBQUVDLElBQUksS0FBSztBQUNwRTtBQUNBLE1BQU1DLHFCQUFxQixDQUFDQyxNQUFNQztJQUM5QixJQUFJLENBQUNBLFNBQVMsT0FBTyxLQUFLLElBQUlBLE1BQU1DLE1BQU0sTUFBTSxNQUFNO1FBQ2xERixLQUFLRyxZQUFZLENBQUMsZUFBZTtJQUNyQyxPQUFPO1FBQ0gsSUFBSUYsT0FBTztZQUNQRCxLQUFLSSxlQUFlLENBQUNIO1FBQ3pCO1FBQ0FELEtBQUtLLFNBQVMsQ0FBQztZQUNYQyxNQUFNYixlQUFlYyxLQUFLO1lBQzFCQyxTQUFTUCxTQUFTLE9BQU8sS0FBSyxJQUFJQSxNQUFNTyxPQUFPO1FBQ25EO0lBQ0o7SUFDQVIsS0FBS1MsR0FBRztBQUNaO0FBQ0EsOEVBQThFLEdBQUcsTUFBTUMsMEJBQTBCLElBQUlDO0FBQ3JILE1BQU1DLGdCQUFnQjVCLElBQUk2QixnQkFBZ0IsQ0FBQztBQUMzQyxJQUFJQyxhQUFhO0FBQ2pCLE1BQU1DLFlBQVksSUFBSUQ7QUFDdEIsTUFBTUU7SUFDRjs7OztHQUlELEdB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LEVBQUVDO29CQUNwQztvQkFDQSxPQUFPeEMsR0FBR3VDLEtBQUssQ0FBQyxJQUFJLEVBQUVDO2dCQUMxQjtZQUNKLE9BQU87Z0JBQ0gsT0FBT0osT0FBT3JFLEtBQUssQ0FBQ3NFLE1BQU1DLFlBQVksSUFBSXRDLEdBQUd1QyxLQUFLLENBQUMsSUFBSSxFQUFFQztZQUM3RDtRQUNKO0lBQ0o7SUFDQU8sVUFBVSxHQUFHeEMsSUFBSSxFQUFFO1FBQ2YsTUFBTSxDQUFDRSxNQUFNRyxRQUFRLEdBQUdMO1FBQ3hCLE1BQU1VLGNBQWMsSUFBSSxDQUFDZCxjQUFjLENBQUMsQ0FBQ1MsV0FBVyxPQUFPLEtBQUssSUFBSUEsUUFBUU0sVUFBVSxLQUFLLElBQUksQ0FBQ3ZCLGtCQUFrQjtRQUNsSCxPQUFPLElBQUksQ0FBQ0gsaUJBQWlCLEdBQUd1RCxTQUFTLENBQUN0QyxNQUFNRyxTQUFTSztJQUM3RDtJQUNBZCxlQUFlZSxVQUFVLEVBQUU7UUFDdkIsTUFBTUQsY0FBY0MsYUFBYW5ELE1BQU1pRixPQUFPLENBQUNuRixRQUFRZ0MsTUFBTSxJQUFJcUIsY0FBYytCO1FBQy9FLE9BQU9oQztJQUNYO0lBQ0FpQyx3QkFBd0I7UUFDcEIsTUFBTTdCLFNBQVN4RCxRQUFRZ0MsTUFBTSxHQUFHc0QsUUFBUSxDQUFDaEU7UUFDekMsT0FBT0Ysd0JBQXdCbUUsR0FBRyxDQUFDL0I7SUFDdkM7QUFDSjtBQUNBLE1BQU01QixZQUFZLENBQUM7SUFDZixNQUFNMkMsU0FBUyxJQUFJN0M7SUFDbkIsT0FBTyxJQUFJNkM7QUFDZjtBQUMrQyxDQUUvQyxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzPzhkNzMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0IH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5sZXQgYXBpO1xuLy8gd2Ugd2FudCB0byBhbGxvdyB1c2VycyB0byB1c2UgdGhlaXIgb3duIHZlcnNpb24gb2YgQG9wZW50ZWxlbWV0cnkvYXBpIGlmIHRoZXlcbi8vIHdhbnQgdG8sIHNvIHdlIHRyeSB0byByZXF1aXJlIGl0IGZpcnN0LCBhbmQgaWYgaXQgZmFpbHMgd2UgZmFsbCBiYWNrIHRvIHRoZVxuLy8gdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzXG4vLyB0aGlzIGlzIGJlY2F1c2UgQG9wZW50ZWxlbWV0cnkvYXBpIGhhcyB0byBiZSBzeW5jZWQgd2l0aCB0aGUgdmVyc2lvbiBvZlxuLy8gQG9wZW50ZWxlbWV0cnkvdHJhY2luZyB0aGF0IGlzIHVzZWQsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGZvcmNlIHVzZXJzIHRvIHVzZVxuLy8gdGhlIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qcy5cbi8vIHRoZSBBUEkgaXMgfnN0YWJsZSwgc28gdGhpcyBzaG91bGQgYmUgZmluZVxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gXCJlZGdlXCIpIHtcbiAgICBhcGkgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvYXBpXCIpO1xufSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgICBhcGkgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvYXBpXCIpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhcGkgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaVwiKTtcbiAgICB9XG59XG5jb25zdCB7IGNvbnRleHQsIHByb3BhZ2F0aW9uLCB0cmFjZSwgU3BhblN0YXR1c0NvZGUsIFNwYW5LaW5kLCBST09UX0NPTlRFWFQgfSA9IGFwaTtcbmNvbnN0IGlzUHJvbWlzZSA9IChwKT0+e1xuICAgIHJldHVybiBwICE9PSBudWxsICYmIHR5cGVvZiBwID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBwLnRoZW4gPT09IFwiZnVuY3Rpb25cIjtcbn07XG5jb25zdCBjbG9zZVNwYW5XaXRoRXJyb3IgPSAoc3BhbiwgZXJyb3IpPT57XG4gICAgaWYgKChlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IuYnViYmxlKSA9PT0gdHJ1ZSkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZShcIm5leHQuYnViYmxlXCIsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICAgIGNvZGU6IFNwYW5TdGF0dXNDb2RlLkVSUk9SLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IgPT0gbnVsbCA/IHZvaWQgMCA6IGVycm9yLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNwYW4uZW5kKCk7XG59O1xuLyoqIHdlIHVzZSB0aGlzIG1hcCB0byBwcm9wYWdhdGUgYXR0cmlidXRlcyBmcm9tIG5lc3RlZCBzcGFucyB0byB0aGUgdG9wIHNwYW4gKi8gY29uc3Qgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUgPSBuZXcgTWFwKCk7XG5jb25zdCByb290U3BhbklkS2V5ID0gYXBpLmNyZWF0ZUNvbnRleHRLZXkoXCJuZXh0LnJvb3RTcGFuSWRcIik7XG5sZXQgbGFzdFNwYW5JZCA9IDA7XG5jb25zdCBnZXRTcGFuSWQgPSAoKT0+bGFzdFNwYW5JZCsrO1xuY2xhc3MgTmV4dFRyYWNlckltcGwge1xuICAgIC8qKlxuICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIHRvIHRoZSB0cmFjZSB3aXRoIGNvbmZpZ3VyZWQgbmFtZS5cbiAgICogU2luY2Ugd3JhcCAvIHRyYWNlIGNhbiBiZSBkZWZpbmVkIGluIGFueSBwbGFjZSBwcmlvciB0byBhY3R1YWwgdHJhY2Ugc3Vic2NyaWJlciBpbml0aWFsaXphdGlvbixcbiAgICogVGhpcyBzaG91bGQgYmUgbGF6aWx5IGV2YWx1YXRlZC5cbiAgICovIGdldFRyYWNlckluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0VHJhY2VyKFwibmV4dC5qc1wiLCBcIjAuMC4xXCIpO1xuICAgIH1cbiAgICBnZXRDb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG4gICAgZ2V0QWN0aXZlU2NvcGVTcGFuKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0U3Bhbihjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LmFjdGl2ZSgpKTtcbiAgICB9XG4gICAgd2l0aFByb3BhZ2F0ZWRDb250ZXh0KGNhcnJpZXIsIGZuLCBnZXR0ZXIpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGlmICh0cmFjZS5nZXRTcGFuQ29udGV4dChhY3RpdmVDb250ZXh0KSkge1xuICAgICAgICAgICAgLy8gQWN0aXZlIHNwYW4gaXMgYWxyZWFkeSBzZXQsIHRvbyBsYXRlIHRvIHByb3BhZ2F0ZS5cbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlbW90ZUNvbnRleHQgPSBwcm9wYWdhdGlvbi5leHRyYWN0KGFjdGl2ZUNvbnRleHQsIGNhcnJpZXIsIGdldHRlcik7XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgocmVtb3RlQ29udGV4dCwgZm4pO1xuICAgIH1cbiAgICB0cmFjZSguLi5hcmdzKSB7XG4gICAgICAgIHZhciBfdHJhY2VfZ2V0U3BhbkNvbnRleHQ7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBmbk9yT3B0aW9ucywgZm5PckVtcHR5XSA9IGFyZ3M7XG4gICAgICAgIC8vIGNvZXJjZSBvcHRpb25zIGZvcm0gb3ZlcmxvYWRcbiAgICAgICAgY29uc3QgeyBmbiwgb3B0aW9ucyB9ID0gdHlwZW9mIGZuT3JPcHRpb25zID09PSBcImZ1bmN0aW9uXCIgPyB7XG4gICAgICAgICAgICBmbjogZm5Pck9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zOiB7fVxuICAgICAgICB9IDoge1xuICAgICAgICAgICAgZm46IGZuT3JFbXB0eSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAuLi5mbk9yT3B0aW9uc1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoIU5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyh0eXBlKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gXCIxXCIgfHwgb3B0aW9ucy5oaWRlU3Bhbikge1xuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Bhbk5hbWUgPSBvcHRpb25zLnNwYW5OYW1lID8/IHR5cGU7XG4gICAgICAgIC8vIFRyeWluZyB0byBnZXQgYWN0aXZlIHNjb3BlZCBzcGFuIHRvIGFzc2lnbiBwYXJlbnQuIElmIG9wdGlvbiBzcGVjaWZpZXMgcGFyZW50IHNwYW4gbWFudWFsbHksIHdpbGwgdHJ5IHRvIHVzZSBpdC5cbiAgICAgICAgbGV0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgbGV0IGlzUm9vdFNwYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFzcGFuQ29udGV4dCkge1xuICAgICAgICAgICAgc3BhbkNvbnRleHQgPSBST09UX0NPTlRFWFQ7XG4gICAgICAgICAgICBpc1Jvb3RTcGFuID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICgoX3RyYWNlX2dldFNwYW5Db250ZXh0ID0gdHJhY2UuZ2V0U3BhbkNvbnRleHQoc3BhbkNvbnRleHQpKSA9PSBudWxsID8gdm9pZCAwIDogX3RyYWNlX2dldFNwYW5Db250ZXh0LmlzUmVtb3RlKSB7XG4gICAgICAgICAgICBpc1Jvb3RTcGFuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcGFuSWQgPSBnZXRTcGFuSWQoKTtcbiAgICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVzID0ge1xuICAgICAgICAgICAgXCJuZXh0LnNwYW5fbmFtZVwiOiBzcGFuTmFtZSxcbiAgICAgICAgICAgIFwibmV4dC5zcGFuX3R5cGVcIjogdHlwZSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXR0cmlidXRlc1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY29udGV4dC53aXRoKHNwYW5Db250ZXh0LnNldFZhbHVlKHJvb3RTcGFuSWRLZXksIHNwYW5JZCksICgpPT50aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRBY3RpdmVTcGFuKHNwYW5OYW1lLCBvcHRpb25zLCAoc3Bhbik9PntcbiAgICAgICAgICAgICAgICBjb25zdCBvbkNsZWFudXAgPSAoKT0+e1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5kZWxldGUoc3BhbklkKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChpc1Jvb3RTcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLnNldChzcGFuSWQsIG5ldyBNYXAoT2JqZWN0LmVudHJpZXMob3B0aW9ucy5hdHRyaWJ1dGVzID8/IHt9KSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuKHNwYW4sIChlcnIpPT5jbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4oc3Bhbik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1Byb21pc2UocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBlcnJvciBtYWtlIHN1cmUgaXQgdGhyb3dzXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgdG8gcGFzcyBkb3duIHRoZSBwcm9taXNlIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBjb3VsZCBiZSByZWFjdCBzdHJlYW0gcmVzcG9uc2Ugd2l0aCBlcnJvciB7IGVycm9yLCBzdHJlYW0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkob25DbGVhbnVwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIHdyYXAoLi4uYXJncykge1xuICAgICAgICBjb25zdCB0cmFjZXIgPSB0aGlzO1xuICAgICAgICBjb25zdCBbbmFtZSwgb3B0aW9ucywgZm5dID0gYXJncy5sZW5ndGggPT09IDMgPyBhcmdzIDogW1xuICAgICAgICAgICAgYXJnc1swXSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgYXJnc1sxXVxuICAgICAgICBdO1xuICAgICAgICBpZiAoIU5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyhuYW1lKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gXCIxXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgb3B0aW9uc09iaiA9IG9wdGlvbnM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPYmogPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIG9wdGlvbnNPYmogPSBvcHRpb25zT2JqLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsYXN0QXJnSWQgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGNiID0gYXJndW1lbnRzW2xhc3RBcmdJZF07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY29wZUJvdW5kQ2IgPSB0cmFjZXIuZ2V0Q29udGV4dCgpLmJpbmQoY29udGV4dC5hY3RpdmUoKSwgY2IpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKF9zcGFuLCBkb25lKT0+e1xuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbbGFzdEFyZ0lkXSA9IGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9PSBudWxsID8gdm9pZCAwIDogZG9uZShlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlQm91bmRDYi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlci50cmFjZShuYW1lLCBvcHRpb25zT2JqLCAoKT0+Zm4uYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN0YXJ0U3BhbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2VySW5zdGFuY2UoKS5zdGFydFNwYW4odHlwZSwgb3B0aW9ucywgc3BhbkNvbnRleHQpO1xuICAgIH1cbiAgICBnZXRTcGFuQ29udGV4dChwYXJlbnRTcGFuKSB7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gcGFyZW50U3BhbiA/IHRyYWNlLnNldFNwYW4oY29udGV4dC5hY3RpdmUoKSwgcGFyZW50U3BhbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBzcGFuQ29udGV4dDtcbiAgICB9XG4gICAgZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzKCkge1xuICAgICAgICBjb25zdCBzcGFuSWQgPSBjb250ZXh0LmFjdGl2ZSgpLmdldFZhbHVlKHJvb3RTcGFuSWRLZXkpO1xuICAgICAgICByZXR1cm4gcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZ2V0KHNwYW5JZCk7XG4gICAgfVxufVxuY29uc3QgZ2V0VHJhY2VyID0gKCgpPT57XG4gICAgY29uc3QgdHJhY2VyID0gbmV3IE5leHRUcmFjZXJJbXBsKCk7XG4gICAgcmV0dXJuICgpPT50cmFjZXI7XG59KSgpO1xuZXhwb3J0IHsgZ2V0VHJhY2VyLCBTcGFuU3RhdHVzQ29kZSwgU3BhbktpbmQgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHJhY2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QiLCJhcGkiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwicmVxdWlyZSIsImVyciIsImNvbnRleHQiLCJwcm9wYWdhdGlvbiIsInRyYWNlIiwiU3BhblN0YXR1c0NvZGUiLCJTcGFuS2luZCIsIlJPT1RfQ09OVEVYVCIsImlzUHJvbWlzZSIsInAiLCJ0aGVuIiwiY2xvc2VTcGFuV2l0aEVycm9yIiwic3BhbiIsImVycm9yIiwiYnViYmxlIiwic2V0QXR0cmlidXRlIiwicmVjb3JkRXhjZXB0aW9uIiwic2V0U3RhdHVzIiwiY29kZSIsIkVSUk9SIiwibWVzc2FnZSIsImVuZCIsInJvb3RTcGFuQXR0cmlidXRlc1N0b3JlIiwiTWFwIiwicm9vdFNwYW5JZEtleSIsImNyZWF0ZUNvbnRleHRLZXkiLCJsYXN0U3BhbklkIiwiZ2V0U3BhbklkIiwiTmV4dFRyYWNlckltcGwiLCJnZXRUcmFjZXJJbnN0YW5jZSIsImdldFRyYWNlciIsImdldENvbnRleHQiLCJnZXRBY3RpdmVTY29wZVNwYW4iLCJnZXRTcGFuIiwiYWN0aXZlIiwid2l0aFByb3BhZ2F0ZWRDb250ZXh0IiwiY2FycmllciIsImZuIiwiZ2V0dGVyIiwiYWN0aXZlQ29udGV4dCIsImdldFNwYW5Db250ZXh0IiwicmVtb3RlQ29udGV4dCIsImV4dHJhY3QiLCJ3aXRoIiwiYXJncyIsIl90cmFjZV9nZXRTcGFuQ29udGV4dCIsInR5cGUiLCJmbk9yT3B0aW9ucyIsImZuT3JFbXB0eSIsIm9wdGlvbnMiLCJpbmNsdWRlcyIsIk5FWFRfT1RFTF9WRVJCT1NFIiwiaGlkZVNwYW4iLCJzcGFuTmFtZSIsInNwYW5Db250ZXh0IiwicGFyZW50U3BhbiIsImlzUm9vdFNwYW4iLCJpc1JlbW90ZSIsInNwYW5JZCIsImF0dHJpYnV0ZXMiLCJzZXRWYWx1ZSIsInN0YXJ0QWN0aXZlU3BhbiIsIm9uQ2xlYW51cCIsImRlbGV0ZSIsInNldCIsIk9iamVjdCIsImVudHJpZXMiLCJsZW5ndGgiLCJyZXN1bHQiLCJyZXMiLCJjYXRjaCIsImZpbmFsbHkiLCJ3cmFwIiwidHJhY2VyIiwibmFtZSIsIm9wdGlvbnNPYmoiLCJhcHBseSIsImFyZ3VtZW50cyIsImxhc3RBcmdJZCIsImNiIiwic2NvcGVCb3VuZENiIiwiYmluZCIsIl9zcGFuIiwiZG9uZSIsInN0YXJ0U3BhbiIsInNldFNwYW4iLCJ1bmRlZmluZWQiLCJnZXRSb290U3BhbkF0dHJpYnV0ZXMiLCJnZXRWYWx1ZSIsImdldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/lib/trace/tracer.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/server-utils.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/server-utils.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getUtils: () => (/* binding */ getUtils),\n/* harmony export */ interpolateDynamicPath: () => (/* binding */ interpolateDynamicPath),\n/* harmony export */ normalizeDynamicRouteParams: () => (/* binding */ normalizeDynamicRouteParams),\n/* harmony export */ normalizeVercelUrl: () => (/* binding */ normalizeVercelUrl)\n/* harmony export */ });\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! url */ \"(rsc)/../../node_modules/next/dist/compiled/native-url/index.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_lib_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/lib/i18n/normalize-locale-path */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js\");\n/* harmony import */ var _shared_lib_router_utils_path_match__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/lib/router/utils/path-match */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js\");\n/* harmony import */ var _shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/lib/router/utils/route-regex */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js\");\n/* harmony import */ var _shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/lib/router/utils/route-matcher */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js\");\n/* harmony import */ var _shared_lib_router_utils_prepare_destination__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/lib/router/utils/prepare-destination */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js\");\n/* harmony import */ var _shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n/* harmony import */ var _shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../shared/lib/router/utils/app-paths */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\");\n/* harmony import */ var _lib_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../lib/constants */ \"(rsc)/../../node_modules/next/dist/esm/lib/constants.js\");\n\n\n\n\n\n\n\n\n\nfunction normalizeVercelUrl(req, trustQuery, paramKeys, pageIsDynamic, defaultRouteRegex) {\n // make sure to normalize req.url on Vercel to strip dynamic params\n // from the query which are added during routing\n if (pageIsDynamic && trustQuery && defaultRouteRegex) {\n const _parsedUrl = (0,url__WEBPACK_IMPORTED_MODULE_0__.parse)(req.url, true);\n delete _parsedUrl.search;\n for (const key of Object.keys(_parsedUrl.query)){\n if (key !== _lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX) || (paramKeys || Object.keys(defaultRouteRegex.groups)).includes(key)) {\n delete _parsedUrl.query[key];\n }\n }\n req.url = (0,url__WEBPACK_IMPORTED_MODULE_0__.format)(_parsedUrl);\n }\n}\nfunction interpolateDynamicPath(pathname, params, defaultRouteRegex) {\n if (!defaultRouteRegex) return pathname;\n for (const param of Object.keys(defaultRouteRegex.groups)){\n const { optional, repeat } = defaultRouteRegex.groups[param];\n let builtParam = `[${repeat ? \"...\" : \"\"}${param}]`;\n if (optional) {\n builtParam = `[${builtParam}]`;\n }\n const paramIdx = pathname.indexOf(builtParam);\n if (paramIdx > -1) {\n let paramValue;\n const value = params[param];\n if (Array.isArray(value)) {\n paramValue = value.map((v)=>v && encodeURIComponent(v)).join(\"/\");\n } else if (value) {\n paramValue = encodeURIComponent(value);\n } else {\n paramValue = \"\";\n }\n pathname = pathname.slice(0, paramIdx) + paramValue + pathname.slice(paramIdx + builtParam.length);\n }\n }\n return pathname;\n}\nfunction normalizeDynamicRouteParams(params, ignoreOptional, defaultRouteRegex, defaultRouteMatches) {\n let hasValidParams = true;\n if (!defaultRouteRegex) return {\n params,\n hasValidParams: false\n };\n params = Object.keys(defaultRouteRegex.groups).reduce((prev, key)=>{\n let value = params[key];\n if (typeof value === \"string\") {\n value = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_7__.normalizeRscURL)(value);\n }\n if (Array.isArray(value)) {\n value = value.map((val)=>{\n if (typeof val === \"string\") {\n val = (0,_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_7__.normalizeRscURL)(val);\n }\n return val;\n });\n }\n // if the value matches the default value we can't rely\n // on the parsed params, this is used to signal if we need\n // to parse x-now-route-matches or not\n const defaultValue = defaultRouteMatches[key];\n const isOptional = defaultRouteRegex.groups[key].optional;\n const isDefaultValue = Array.isArray(defaultValue) ? defaultValue.some((defaultVal)=>{\n return Array.isArray(value) ? value.some((val)=>val.includes(defaultVal)) : value == null ? void 0 : value.includes(defaultVal);\n }) : value == null ? void 0 : value.includes(defaultValue);\n if (isDefaultValue || typeof value === \"undefined\" && !(isOptional && ignoreOptional)) {\n hasValidParams = false;\n }\n // non-provided optional values should be undefined so normalize\n // them to undefined\n if (isOptional && (!value || Array.isArray(value) && value.length === 1 && // fallback optional catch-all SSG pages have\n // [[...paramName]] for the root path on Vercel\n (value[0] === \"index\" || value[0] === `[[...${key}]]`))) {\n value = undefined;\n delete params[key];\n }\n // query values from the proxy aren't already split into arrays\n // so make sure to normalize catch-all values\n if (value && typeof value === \"string\" && defaultRouteRegex.groups[key].repeat) {\n value = value.split(\"/\");\n }\n if (value) {\n prev[key] = value;\n }\n return prev;\n }, {});\n return {\n params,\n hasValidParams\n };\n}\nfunction getUtils({ page, i18n, basePath, rewrites, pageIsDynamic, trailingSlash, caseSensitive }) {\n let defaultRouteRegex;\n let dynamicRouteMatcher;\n let defaultRouteMatches;\n if (pageIsDynamic) {\n defaultRouteRegex = (0,_shared_lib_router_utils_route_regex__WEBPACK_IMPORTED_MODULE_3__.getNamedRouteRegex)(page, false);\n dynamicRouteMatcher = (0,_shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_4__.getRouteMatcher)(defaultRouteRegex);\n defaultRouteMatches = dynamicRouteMatcher(page);\n }\n function handleRewrites(req, parsedUrl) {\n const rewriteParams = {};\n let fsPathname = parsedUrl.pathname;\n const matchesPage = ()=>{\n const fsPathnameNoSlash = (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_6__.removeTrailingSlash)(fsPathname || \"\");\n return fsPathnameNoSlash === (0,_shared_lib_router_utils_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_6__.removeTrailingSlash)(page) || (dynamicRouteMatcher == null ? void 0 : dynamicRouteMatcher(fsPathnameNoSlash));\n };\n const checkRewrite = (rewrite)=>{\n const matcher = (0,_shared_lib_router_utils_path_match__WEBPACK_IMPORTED_MODULE_2__.getPathMatch)(rewrite.source + (trailingSlash ? \"(/)?\" : \"\"), {\n removeUnnamedParams: true,\n strict: true,\n sensitive: !!caseSensitive\n });\n let params = matcher(parsedUrl.pathname);\n if ((rewrite.has || rewrite.missing) && params) {\n const hasParams = (0,_shared_lib_router_utils_prepare_destination__WEBPACK_IMPORTED_MODULE_5__.matchHas)(req, parsedUrl.query, rewrite.has, rewrite.missing);\n if (hasParams) {\n Object.assign(params, hasParams);\n } else {\n params = false;\n }\n }\n if (params) {\n const { parsedDestination, destQuery } = (0,_shared_lib_router_utils_prepare_destination__WEBPACK_IMPORTED_MODULE_5__.prepareDestination)({\n appendParamsToQuery: true,\n destination: rewrite.destination,\n params: params,\n query: parsedUrl.query\n });\n // if the rewrite destination is external break rewrite chain\n if (parsedDestination.protocol) {\n return true;\n }\n Object.assign(rewriteParams, destQuery, params);\n Object.assign(parsedUrl.query, parsedDestination.query);\n delete parsedDestination.query;\n Object.assign(parsedUrl, parsedDestination);\n fsPathname = parsedUrl.pathname;\n if (basePath) {\n fsPathname = fsPathname.replace(new RegExp(`^${basePath}`), \"\") || \"/\";\n }\n if (i18n) {\n const destLocalePathResult = (0,_shared_lib_i18n_normalize_locale_path__WEBPACK_IMPORTED_MODULE_1__.normalizeLocalePath)(fsPathname, i18n.locales);\n fsPathname = destLocalePathResult.pathname;\n parsedUrl.query.nextInternalLocale = destLocalePathResult.detectedLocale || params.nextInternalLocale;\n }\n if (fsPathname === page) {\n return true;\n }\n if (pageIsDynamic && dynamicRouteMatcher) {\n const dynamicParams = dynamicRouteMatcher(fsPathname);\n if (dynamicParams) {\n parsedUrl.query = {\n ...parsedUrl.query,\n ...dynamicParams\n };\n return true;\n }\n }\n }\n return false;\n };\n for (const rewrite of rewrites.beforeFiles || []){\n checkRewrite(rewrite);\n }\n if (fsPathname !== page) {\n let finished = false;\n for (const rewrite of rewrites.afterFiles || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n if (!finished && !matchesPage()) {\n for (const rewrite of rewrites.fallback || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n }\n }\n return rewriteParams;\n }\n function getParamsFromRouteMatches(req, renderOpts, detectedLocale) {\n return (0,_shared_lib_router_utils_route_matcher__WEBPACK_IMPORTED_MODULE_4__.getRouteMatcher)(function() {\n const { groups, routeKeys } = defaultRouteRegex;\n return {\n re: {\n // Simulate a RegExp match from the \\`req.url\\` input\n exec: (str)=>{\n const obj = Object.fromEntries(new URLSearchParams(str));\n const matchesHasLocale = i18n && detectedLocale && obj[\"1\"] === detectedLocale;\n for (const key of Object.keys(obj)){\n const value = obj[key];\n if (key !== _lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX)) {\n const normalizedKey = key.substring(_lib_constants__WEBPACK_IMPORTED_MODULE_8__.NEXT_QUERY_PARAM_PREFIX.length);\n obj[normalizedKey] = value;\n delete obj[key];\n }\n }\n // favor named matches if available\n const routeKeyNames = Object.keys(routeKeys || {});\n const filterLocaleItem = (val)=>{\n if (i18n) {\n // locale items can be included in route-matches\n // for fallback SSG pages so ensure they are\n // filtered\n const isCatchAll = Array.isArray(val);\n const _val = isCatchAll ? val[0] : val;\n if (typeof _val === \"string\" && i18n.locales.some((item)=>{\n if (item.toLowerCase() === _val.toLowerCase()) {\n detectedLocale = item;\n renderOpts.locale = detectedLocale;\n return true;\n }\n return false;\n })) {\n // remove the locale item from the match\n if (isCatchAll) {\n val.splice(0, 1);\n }\n // the value is only a locale item and\n // shouldn't be added\n return isCatchAll ? val.length === 0 : true;\n }\n }\n return false;\n };\n if (routeKeyNames.every((name)=>obj[name])) {\n return routeKeyNames.reduce((prev, keyName)=>{\n const paramName = routeKeys == null ? void 0 : routeKeys[keyName];\n if (paramName && !filterLocaleItem(obj[keyName])) {\n prev[groups[paramName].pos] = obj[keyName];\n }\n return prev;\n }, {});\n }\n return Object.keys(obj).reduce((prev, key)=>{\n if (!filterLocaleItem(obj[key])) {\n let normalizedKey = key;\n if (matchesHasLocale) {\n normalizedKey = parseInt(key, 10) - 1 + \"\";\n }\n return Object.assign(prev, {\n [normalizedKey]: obj[key]\n });\n }\n return prev;\n }, {});\n }\n },\n groups\n };\n }())(req.headers[\"x-now-route-matches\"]);\n }\n return {\n handleRewrites,\n defaultRouteRegex,\n dynamicRouteMatcher,\n defaultRouteMatches,\n getParamsFromRouteMatches,\n normalizeDynamicRouteParams: (params, ignoreOptional)=>normalizeDynamicRouteParams(params, ignoreOptional, defaultRouteRegex, defaultRouteMatches),\n normalizeVercelUrl: (req, trustQuery, paramKeys)=>normalizeVercelUrl(req, trustQuery, paramKeys, pageIsDynamic, defaultRouteRegex),\n interpolateDynamicPath: (pathname, params)=>interpolateDynamicPath(pathname, params, defaultRouteRegex)\n };\n} //# sourceMappingURL=server-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3NlcnZlci11dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUE2RDtBQUNrQjtBQUNWO0FBQ087QUFDRDtBQUNtQjtBQUNQO0FBQ2hCO0FBQ1o7QUFDcEQsU0FBU2EsbUJBQW1CQyxHQUFHLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxhQUFhLEVBQUVDLGlCQUFpQjtJQUMzRixtRUFBbUU7SUFDbkUsZ0RBQWdEO0lBQ2hELElBQUlELGlCQUFpQkYsY0FBY0csbUJBQW1CO1FBQ2xELE1BQU1DLGFBQWFoQiwwQ0FBUUEsQ0FBQ1csSUFBSU0sR0FBRyxFQUFFO1FBQ3JDLE9BQU9ELFdBQVdFLE1BQU07UUFDeEIsS0FBSyxNQUFNQyxPQUFPQyxPQUFPQyxJQUFJLENBQUNMLFdBQVdNLEtBQUssRUFBRTtZQUM1QyxJQUFJSCxRQUFRVixtRUFBdUJBLElBQUlVLElBQUlJLFVBQVUsQ0FBQ2QsbUVBQXVCQSxLQUFLLENBQUNJLGFBQWFPLE9BQU9DLElBQUksQ0FBQ04sa0JBQWtCUyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ04sTUFBTTtnQkFDbEosT0FBT0gsV0FBV00sS0FBSyxDQUFDSCxJQUFJO1lBQ2hDO1FBQ0o7UUFDQVIsSUFBSU0sR0FBRyxHQUFHbkIsMkNBQVNBLENBQUNrQjtJQUN4QjtBQUNKO0FBQ08sU0FBU1UsdUJBQXVCQyxRQUFRLEVBQUVDLE1BQU0sRUFBRWIsaUJBQWlCO0lBQ3RFLElBQUksQ0FBQ0EsbUJBQW1CLE9BQU9ZO0lBQy9CLEtBQUssTUFBTUUsU0FBU1QsT0FBT0MsSUFBSSxDQUFDTixrQkFBa0JTLE1BQU0sRUFBRTtRQUN0RCxNQUFNLEVBQUVNLFFBQVEsRUFBRUMsTUFBTSxFQUFFLEdBQUdoQixrQkFBa0JTLE1BQU0sQ0FBQ0ssTUFBTTtRQUM1RCxJQUFJRyxhQUFhLENBQUMsQ0FBQyxFQUFFRCxTQUFTLFFBQVEsR0FBRyxFQUFFRixN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ZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3NlcnZlci11dGlscy5qcz84YmI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCBhcyBmb3JtYXRVcmwsIHBhcnNlIGFzIHBhcnNlVXJsIH0gZnJvbSBcInVybFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCB9IGZyb20gXCIuLi9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCI7XG5pbXBvcnQgeyBnZXRQYXRoTWF0Y2ggfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1tYXRjaFwiO1xuaW1wb3J0IHsgZ2V0TmFtZWRSb3V0ZVJlZ2V4IH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4XCI7XG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tIFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlclwiO1xuaW1wb3J0IHsgbWF0Y2hIYXMsIHByZXBhcmVEZXN0aW5hdGlvbiB9IGZyb20gXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wcmVwYXJlLWRlc3RpbmF0aW9uXCI7XG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplUnNjVVJMIH0gZnJvbSBcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiO1xuaW1wb3J0IHsgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggfSBmcm9tIFwiLi4vbGliL2NvbnN0YW50c1wiO1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVZlcmNlbFVybChyZXEsIHRydXN0UXVlcnksIHBhcmFtS2V5cywgcGFnZUlzRHluYW1pYywgZGVmYXVsdFJvdXRlUmVnZXgpIHtcbiAgICAvLyBtYWtlIHN1cmUgdG8gbm9ybWFsaXplIHJlcS51cmwgb24gVmVyY2VsIHRvIHN0cmlwIGR5bmFtaWMgcGFyYW1zXG4gICAgLy8gZnJvbSB0aGUgcXVlcnkgd2hpY2ggYXJlIGFkZGVkIGR1cmluZyByb3V0aW5nXG4gICAgaWYgKHBhZ2VJc0R5bmFtaWMgJiYgdHJ1c3RRdWVyeSAmJiBkZWZhdWx0Um91dGVSZWdleCkge1xuICAgICAgICBjb25zdCBfcGFyc2VkVXJsID0gcGFyc2VVcmwocmVxLnVybCwgdHJ1ZSk7XG4gICAgICAgIGRlbGV0ZSBfcGFyc2VkVXJsLnNlYXJjaDtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoX3BhcnNlZFVybC5xdWVyeSkpe1xuICAgICAgICAgICAgaWYgKGtleSAhPT0gTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggJiYga2V5LnN0YXJ0c1dpdGgoTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgpIHx8IChwYXJhbUtleXMgfHwgT2JqZWN0LmtleXMoZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzKSkuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBfcGFyc2VkVXJsLnF1ZXJ5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVxLnVybCA9IGZvcm1hdFVybChfcGFyc2VkVXJsKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaW50ZXJwb2xhdGVEeW5hbWljUGF0aChwYXRobmFtZSwgcGFyYW1zLCBkZWZhdWx0Um91dGVSZWdleCkge1xuICAgIGlmICghZGVmYXVsdFJvdXRlUmVnZXgpIHJldHVybiBwYXRobmFtZTtcbiAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIE9iamVjdC5rZXlzKGRlZmF1bHRSb3V0ZVJlZ2V4Lmdyb3Vwcykpe1xuICAgICAgICBjb25zdCB7IG9wdGlvbmFsLCByZXBlYXQgfSA9IGRlZmF1bHRSb3V0ZVJlZ2V4Lmdyb3Vwc1twYXJhbV07XG4gICAgICAgIGxldCBidWlsdFBhcmFtID0gYFske3JlcGVhdCA/IFwiLi4uXCIgOiBcIlwifSR7cGFyYW19XWA7XG4gICAgICAgIGlmIChvcHRpb25hbCkge1xuICAgICAgICAgICAgYnVpbHRQYXJhbSA9IGBbJHtidWlsdFBhcmFtfV1gO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtSWR4ID0gcGF0aG5hbWUuaW5kZXhPZihidWlsdFBhcmFtKTtcbiAgICAgICAgaWYgKHBhcmFtSWR4ID4gLTEpIHtcbiAgICAgICAgICAgIGxldCBwYXJhbVZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNbcGFyYW1dO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1WYWx1ZSA9IHZhbHVlLm1hcCgodik9PnYgJiYgZW5jb2RlVVJJQ29tcG9uZW50KHYpKS5qb2luKFwiL1wiKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBwYXJhbVZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyYW1WYWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnNsaWNlKDAsIHBhcmFtSWR4KSArIHBhcmFtVmFsdWUgKyBwYXRobmFtZS5zbGljZShwYXJhbUlkeCArIGJ1aWx0UGFyYW0ubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGF0aG5hbWU7XG59XG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKHBhcmFtcywgaWdub3JlT3B0aW9uYWwsIGRlZmF1bHRSb3V0ZVJlZ2V4LCBkZWZhdWx0Um91dGVNYXRjaGVzKSB7XG4gICAgbGV0IGhhc1ZhbGlkUGFyYW1zID0gdHJ1ZTtcbiAgICBpZiAoIWRlZmF1bHRSb3V0ZVJlZ2V4KSByZXR1cm4ge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhhc1ZhbGlkUGFyYW1zOiBmYWxzZVxuICAgIH07XG4gICAgcGFyYW1zID0gT2JqZWN0LmtleXMoZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzKS5yZWR1Y2UoKHByZXYsIGtleSk9PntcbiAgICAgICAgbGV0IHZhbHVlID0gcGFyYW1zW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbm9ybWFsaXplUnNjVVJMKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUubWFwKCh2YWwpPT57XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplUnNjVVJMKHZhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGUgdmFsdWUgbWF0Y2hlcyB0aGUgZGVmYXVsdCB2YWx1ZSB3ZSBjYW4ndCByZWx5XG4gICAgICAgIC8vIG9uIHRoZSBwYXJzZWQgcGFyYW1zLCB0aGlzIGlzIHVzZWQgdG8gc2lnbmFsIGlmIHdlIG5lZWRcbiAgICAgICAgLy8gdG8gcGFyc2UgeC1ub3ctcm91dGUtbWF0Y2hlcyBvciBub3RcbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFJvdXRlTWF0Y2hlc1trZXldO1xuICAgICAgICBjb25zdCBpc09wdGlvbmFsID0gZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzW2tleV0ub3B0aW9uYWw7XG4gICAgICAgIGNvbnN0IGlzRGVmYXVsdFZhbHVlID0gQXJyYXkuaXNBcnJheShkZWZhdWx0VmFsdWUpID8gZGVmYXVsdFZhbHVlLnNvbWUoKGRlZmF1bHRWYWwpPT57XG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5zb21lKCh2YWwpPT52YWwuaW5jbHVkZXMoZGVmYXVsdFZhbCkpIDogdmFsdWUgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbHVlLmluY2x1ZGVzKGRlZmF1bHRWYWwpO1xuICAgICAgICB9KSA6IHZhbHVlID09IG51bGwgPyB2b2lkIDAgOiB2YWx1ZS5pbmNsdWRlcyhkZWZhdWx0VmFsdWUpO1xuICAgICAgICBpZiAoaXNEZWZhdWx0VmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmICEoaXNPcHRpb25hbCAmJiBpZ25vcmVPcHRpb25hbCkpIHtcbiAgICAgICAgICAgIGhhc1ZhbGlkUGFyYW1zID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbm9uLXByb3ZpZGVkIG9wdGlvbmFsIHZhbHVlcyBzaG91bGQgYmUgdW5kZWZpbmVkIHNvIG5vcm1hbGl6ZVxuICAgICAgICAvLyB0aGVtIHRvIHVuZGVmaW5lZFxuICAgICAgICBpZiAoaXNPcHRpb25hbCAmJiAoIXZhbHVlIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMSAmJiAvLyBmYWxsYmFjayBvcHRpb25hbCBjYXRjaC1hbGwgU1NHIHBhZ2VzIGhhdmVcbiAgICAgICAgLy8gW1suLi5wYXJhbU5hbWVdXSBmb3IgdGhlIHJvb3QgcGF0aCBvbiBWZXJjZWxcbiAgICAgICAgKHZhbHVlWzBdID09PSBcImluZGV4XCIgfHwgdmFsdWVbMF0gPT09IGBbWy4uLiR7a2V5fV1dYCkpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGRlbGV0ZSBwYXJhbXNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICAvLyBxdWVyeSB2YWx1ZXMgZnJvbSB0aGUgcHJveHkgYXJlbid0IGFscmVhZHkgc3BsaXQgaW50byBhcnJheXNcbiAgICAgICAgLy8gc28gbWFrZSBzdXJlIHRvIG5vcm1hbGl6ZSBjYXRjaC1hbGwgdmFsdWVzXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzW2tleV0ucmVwZWF0KSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHByZXZba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhhc1ZhbGlkUGFyYW1zXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRVdGlscyh7IHBhZ2UsIGkxOG4sIGJhc2VQYXRoLCByZXdyaXRlcywgcGFnZUlzRHluYW1pYywgdHJhaWxpbmdTbGFzaCwgY2FzZVNlbnNpdGl2ZSB9KSB7XG4gICAgbGV0IGRlZmF1bHRSb3V0ZVJlZ2V4O1xuICAgIGxldCBkeW5hbWljUm91dGVNYXRjaGVyO1xuICAgIGxldCBkZWZhdWx0Um91dGVNYXRjaGVzO1xuICAgIGlmIChwYWdlSXNEeW5hbWljKSB7XG4gICAgICAgIGRlZmF1bHRSb3V0ZVJlZ2V4ID0gZ2V0TmFtZWRSb3V0ZVJlZ2V4KHBhZ2UsIGZhbHNlKTtcbiAgICAgICAgZHluYW1pY1JvdXRlTWF0Y2hlciA9IGdldFJvdXRlTWF0Y2hlcihkZWZhdWx0Um91dGVSZWdleCk7XG4gICAgICAgIGRlZmF1bHRSb3V0ZU1hdGNoZXMgPSBkeW5hbWljUm91dGVNYXRjaGVyKHBhZ2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVSZXdyaXRlcyhyZXEsIHBhcnNlZFVybCkge1xuICAgICAgICBjb25zdCByZXdyaXRlUGFyYW1zID0ge307XG4gICAgICAgIGxldCBmc1BhdGhuYW1lID0gcGFyc2VkVXJsLnBhdGhuYW1lO1xuICAgICAgICBjb25zdCBtYXRjaGVzUGFnZSA9ICgpPT57XG4gICAgICAgICAgICBjb25zdCBmc1BhdGhuYW1lTm9TbGFzaCA9IHJlbW92ZVRyYWlsaW5nU2xhc2goZnNQYXRobmFtZSB8fCBcIlwiKTtcbiAgICAgICAgICAgIHJldHVybiBmc1BhdGhuYW1lTm9TbGFzaCA9PT0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYWdlKSB8fCAoZHluYW1pY1JvdXRlTWF0Y2hlciA9PSBudWxsID8gdm9pZCAwIDogZHluYW1pY1JvdXRlTWF0Y2hlcihmc1BhdGhuYW1lTm9TbGFzaCkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjaGVja1Jld3JpdGUgPSAocmV3cml0ZSk9PntcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXIgPSBnZXRQYXRoTWF0Y2gocmV3cml0ZS5zb3VyY2UgKyAodHJhaWxpbmdTbGFzaCA/IFwiKC8pP1wiIDogXCJcIiksIHtcbiAgICAgICAgICAgICAgICByZW1vdmVVbm5hbWVkUGFyYW1zOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzZW5zaXRpdmU6ICEhY2FzZVNlbnNpdGl2ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgcGFyYW1zID0gbWF0Y2hlcihwYXJzZWRVcmwucGF0aG5hbWUpO1xuICAgICAgICAgICAgaWYgKChyZXdyaXRlLmhhcyB8fCByZXdyaXRlLm1pc3NpbmcpICYmIHBhcmFtcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhhc1BhcmFtcyA9IG1hdGNoSGFzKHJlcSwgcGFyc2VkVXJsLnF1ZXJ5LCByZXdyaXRlLmhhcywgcmV3cml0ZS5taXNzaW5nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBoYXNQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBhcnNlZERlc3RpbmF0aW9uLCBkZXN0UXVlcnkgfSA9IHByZXBhcmVEZXN0aW5hdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFBhcmFtc1RvUXVlcnk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uOiByZXdyaXRlLmRlc3RpbmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHBhcnNlZFVybC5xdWVyeVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSByZXdyaXRlIGRlc3RpbmF0aW9uIGlzIGV4dGVybmFsIGJyZWFrIHJld3JpdGUgY2hhaW5cbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkRGVzdGluYXRpb24ucHJvdG9jb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmV3cml0ZVBhcmFtcywgZGVzdFF1ZXJ5LCBwYXJhbXMpO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyc2VkVXJsLnF1ZXJ5LCBwYXJzZWREZXN0aW5hdGlvbi5xdWVyeSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5O1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyc2VkVXJsLCBwYXJzZWREZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgZnNQYXRobmFtZSA9IHBhcnNlZFVybC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBpZiAoYmFzZVBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgZnNQYXRobmFtZSA9IGZzUGF0aG5hbWUucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtiYXNlUGF0aH1gKSwgXCJcIikgfHwgXCIvXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpMThuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc3RMb2NhbGVQYXRoUmVzdWx0ID0gbm9ybWFsaXplTG9jYWxlUGF0aChmc1BhdGhuYW1lLCBpMThuLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgICAgICBmc1BhdGhuYW1lID0gZGVzdExvY2FsZVBhdGhSZXN1bHQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeS5uZXh0SW50ZXJuYWxMb2NhbGUgPSBkZXN0TG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZSB8fCBwYXJhbXMubmV4dEludGVybmFsTG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZnNQYXRobmFtZSA9PT0gcGFnZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VJc0R5bmFtaWMgJiYgZHluYW1pY1JvdXRlTWF0Y2hlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkeW5hbWljUGFyYW1zID0gZHluYW1pY1JvdXRlTWF0Y2hlcihmc1BhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGR5bmFtaWNQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wYXJzZWRVcmwucXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZHluYW1pY1BhcmFtc1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJld3JpdGUgb2YgcmV3cml0ZXMuYmVmb3JlRmlsZXMgfHwgW10pe1xuICAgICAgICAgICAgY2hlY2tSZXdyaXRlKHJld3JpdGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmc1BhdGhuYW1lICE9PSBwYWdlKSB7XG4gICAgICAgICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmV3cml0ZSBvZiByZXdyaXRlcy5hZnRlckZpbGVzIHx8IFtdKXtcbiAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IGNoZWNrUmV3cml0ZShyZXdyaXRlKTtcbiAgICAgICAgICAgICAgICBpZiAoZmluaXNoZWQpIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFmaW5pc2hlZCAmJiAhbWF0Y2hlc1BhZ2UoKSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmV3cml0ZSBvZiByZXdyaXRlcy5mYWxsYmFjayB8fCBbXSl7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gY2hlY2tSZXdyaXRlKHJld3JpdGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmluaXNoZWQpIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV3cml0ZVBhcmFtcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UGFyYW1zRnJvbVJvdXRlTWF0Y2hlcyhyZXEsIHJlbmRlck9wdHMsIGRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBnZXRSb3V0ZU1hdGNoZXIoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCB7IGdyb3Vwcywgcm91dGVLZXlzIH0gPSBkZWZhdWx0Um91dGVSZWdleDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmU6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUgYSBSZWdFeHAgbWF0Y2ggZnJvbSB0aGUgXFxgcmVxLnVybFxcYCBpbnB1dFxuICAgICAgICAgICAgICAgICAgICBleGVjOiAoc3RyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKG5ldyBVUkxTZWFyY2hQYXJhbXMoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzSGFzTG9jYWxlID0gaTE4biAmJiBkZXRlY3RlZExvY2FsZSAmJiBvYmpbXCIxXCJdID09PSBkZXRlY3RlZExvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSAhPT0gTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggJiYga2V5LnN0YXJ0c1dpdGgoTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSBrZXkuc3Vic3RyaW5nKE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialtub3JtYWxpemVkS2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmF2b3IgbmFtZWQgbWF0Y2hlcyBpZiBhdmFpbGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlS2V5TmFtZXMgPSBPYmplY3Qua2V5cyhyb3V0ZUtleXMgfHwge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyTG9jYWxlSXRlbSA9ICh2YWwpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkxOG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9jYWxlIGl0ZW1zIGNhbiBiZSBpbmNsdWRlZCBpbiByb3V0ZS1tYXRjaGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBmYWxsYmFjayBTU0cgcGFnZXMgc28gZW5zdXJlIHRoZXkgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbHRlcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQ2F0Y2hBbGwgPSBBcnJheS5pc0FycmF5KHZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF92YWwgPSBpc0NhdGNoQWxsID8gdmFsWzBdIDogdmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIF92YWwgPT09IFwic3RyaW5nXCIgJiYgaTE4bi5sb2NhbGVzLnNvbWUoKGl0ZW0pPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS50b0xvd2VyQ2FzZSgpID09PSBfdmFsLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyT3B0cy5sb2NhbGUgPSBkZXRlY3RlZExvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgbG9jYWxlIGl0ZW0gZnJvbSB0aGUgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsLnNwbGljZSgwLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBpcyBvbmx5IGEgbG9jYWxlIGl0ZW0gYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGRuJ3QgYmUgYWRkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0NhdGNoQWxsID8gdmFsLmxlbmd0aCA9PT0gMCA6IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3V0ZUtleU5hbWVzLmV2ZXJ5KChuYW1lKT0+b2JqW25hbWVdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZUtleU5hbWVzLnJlZHVjZSgocHJldiwga2V5TmFtZSk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gcm91dGVLZXlzID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZUtleXNba2V5TmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbU5hbWUgJiYgIWZpbHRlckxvY2FsZUl0ZW0ob2JqW2tleU5hbWVdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldltncm91cHNbcGFyYW1OYW1lXS5wb3NdID0gb2JqW2tleU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgocHJldiwga2V5KT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlsdGVyTG9jYWxlSXRlbShvYmpba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWRLZXkgPSBrZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzSGFzTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkS2V5ID0gcGFyc2VJbnQoa2V5LCAxMCkgLSAxICsgXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcmV2LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9ybWFsaXplZEtleV06IG9ialtrZXldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZ3JvdXBzXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KCkpKHJlcS5oZWFkZXJzW1wieC1ub3ctcm91dGUtbWF0Y2hlc1wiXSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGhhbmRsZVJld3JpdGVzLFxuICAgICAgICBkZWZhdWx0Um91dGVSZWdleCxcbiAgICAgICAgZHluYW1pY1JvdXRlTWF0Y2hlcixcbiAgICAgICAgZGVmYXVsdFJvdXRlTWF0Y2hlcyxcbiAgICAgICAgZ2V0UGFyYW1zRnJvbVJvdXRlTWF0Y2hlcyxcbiAgICAgICAgbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zOiAocGFyYW1zLCBpZ25vcmVPcHRpb25hbCk9Pm5vcm1hbGl6ZUR5bmFtaWNSb3V0ZVBhcmFtcyhwYXJhbXMsIGlnbm9yZU9wdGlvbmFsLCBkZWZhdWx0Um91dGVSZWdleCwgZGVmYXVsdFJvdXRlTWF0Y2hlcyksXG4gICAgICAgIG5vcm1hbGl6ZVZlcmNlbFVybDogKHJlcSwgdHJ1c3RRdWVyeSwgcGFyYW1LZXlzKT0+bm9ybWFsaXplVmVyY2VsVXJsKHJlcSwgdHJ1c3RRdWVyeSwgcGFyYW1LZXlzLCBwYWdlSXNEeW5hbWljLCBkZWZhdWx0Um91dGVSZWdleCksXG4gICAgICAgIGludGVycG9sYXRlRHluYW1pY1BhdGg6IChwYXRobmFtZSwgcGFyYW1zKT0+aW50ZXJwb2xhdGVEeW5hbWljUGF0aChwYXRobmFtZSwgcGFyYW1zLCBkZWZhdWx0Um91dGVSZWdleClcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbImZvcm1hdCIsImZvcm1hdFVybCIsInBhcnNlIiwicGFyc2VVcmwiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZ2V0UGF0aE1hdGNoIiwiZ2V0TmFtZWRSb3V0ZVJlZ2V4IiwiZ2V0Um91dGVNYXRjaGVyIiwibWF0Y2hIYXMiLCJwcmVwYXJlRGVzdGluYXRpb24iLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwibm9ybWFsaXplUnNjVVJMIiwiTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgiLCJub3JtYWxpemVWZXJjZWxVcmwiLCJyZXEiLCJ0cnVzdFF1ZXJ5IiwicGFyYW1LZXlzIiwicGFnZUlzRHluYW1pYyIsImRlZmF1bHRSb3V0ZVJlZ2V4IiwiX3BhcnNlZFVybCIsInVybCIsInNlYXJjaCIsImtleSIsIk9iamVjdCIsImtleXMiLCJxdWVyeSIsInN0YXJ0c1dpdGgiLCJncm91cHMiLCJpbmNsdWRlcyIsImludGVycG9sYXRlRHluYW1pY1BhdGgiLCJwYXRobmFtZSIsInBhcmFtcyIsInBhcmFtIiwib3B0aW9uYWwiLCJyZXBlYXQiLCJidWlsdFBhcmFtIiwicGFyYW1JZHgiLCJpbmRleE9mIiwicGFyYW1WYWx1ZSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwidiIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJzbGljZSIsImxlbmd0aCIsIm5vcm1hbGl6ZUR5bmFtaWNSb3V0ZVBhcmFtcyIsImlnbm9yZU9wdGlvbmFsIiwiZGVmYXVsdFJvdXRlTWF0Y2hlcyIsImhhc1ZhbGlkUGFyYW1zIiwicmVkdWNlIiwicHJldiIsInZhbCIsImRlZmF1bHRWYWx1ZSIsImlzT3B0aW9uYWwiLCJpc0RlZmF1bHRWYWx1ZSIsInNvbWUiLCJkZWZhdWx0VmFsIiwidW5kZWZpbmVkIiwic3BsaXQiLCJnZXRVdGlscyIsInBhZ2UiLCJpMThuIiwiYmFzZVBhdGgiLCJyZXdyaXRlcyIsInRyYWlsaW5nU2xhc2giLCJjYXNlU2Vuc2l0aXZlIiwiZHluYW1pY1JvdXRlTWF0Y2hlciIsImhhbmRsZVJld3JpdGVzIiwicGFyc2VkVXJsIiwicmV3cml0ZVBhcmFtcyIsImZzUGF0aG5hbWUiLCJtYXRjaGVzUGFnZSIsImZzUGF0aG5hbWVOb1NsYXNoIiwiY2hlY2tSZXdyaXRlIiwicmV3cml0ZSIsIm1hdGNoZXIiLCJzb3VyY2UiLCJyZW1vdmVVbm5hbWVkUGFyYW1zIiwic3RyaWN0Iiwic2Vuc2l0aXZlIiwiaGFzIiwibWlzc2luZyIsImhhc1BhcmFtcyIsImFzc2lnbiIsInBhcnNlZERlc3RpbmF0aW9uIiwiZGVzdFF1ZXJ5IiwiYXBwZW5kUGFyYW1zVG9RdWVyeSIsImRlc3RpbmF0aW9uIiwicHJvdG9jb2wiLCJyZXBsYWNlIiwiUmVnRXhwIiwiZGVzdExvY2FsZVBhdGhSZXN1bHQiLCJsb2NhbGVzIiwibmV4dEludGVybmFsTG9jYWxlIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkeW5hbWljUGFyYW1zIiwiYmVmb3JlRmlsZXMiLCJmaW5pc2hlZCIsImFmdGVyRmlsZXMiLCJmYWxsYmFjayIsImdldFBhcmFtc0Zyb21Sb3V0ZU1hdGNoZXMiLCJyZW5kZXJPcHRzIiwicm91dGVLZXlzIiwicmUiLCJleGVjIiwic3RyIiwib2JqIiwiZnJvbUVudHJpZXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJtYXRjaGVzSGFzTG9jYWxlIiwibm9ybWFsaXplZEtleSIsInN1YnN0cmluZyIsInJvdXRlS2V5TmFtZXMiLCJmaWx0ZXJMb2NhbGVJdGVtIiwiaXNDYXRjaEFsbCIsIl92YWwiLCJpdGVtIiwidG9Mb3dlckNhc2UiLCJsb2NhbGUiLCJzcGxpY2UiLCJldmVyeSIsIm5hbWUiLCJrZXlOYW1lIiwicGFyYW1OYW1lIiwicG9zIiwicGFyc2VJbnQiLCJoZWFkZXJzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/server-utils.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeadersAdapter: () => (/* binding */ HeadersAdapter),\n/* harmony export */ ReadonlyHeadersError: () => (/* binding */ ReadonlyHeadersError)\n/* harmony export */ });\n/* harmony import */ var _reflect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reflect */ \"(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\");\n\n/**\n * @internal\n */ class ReadonlyHeadersError extends Error {\n constructor(){\n super(\"Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers\");\n }\n static callable() {\n throw new ReadonlyHeadersError();\n }\n}\nclass HeadersAdapter extends Headers {\n constructor(headers){\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super();\n this.headers = new Proxy(headers, {\n get (target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === \"symbol\") {\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, prop, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return undefined.\n if (typeof original === \"undefined\") return;\n // If the original casing exists, return the value.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === \"symbol\") {\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.set(target, prop, value, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, use the prop as the key.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === \"symbol\") return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.has(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return false.\n if (typeof original === \"undefined\") return false;\n // If the original casing exists, return true.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === \"symbol\") return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.deleteProperty(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return true.\n if (typeof original === \"undefined\") return true;\n // If the original casing exists, delete the property.\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.deleteProperty(target, original);\n }\n });\n }\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */ static seal(headers) {\n return new Proxy(headers, {\n get (target, prop, receiver) {\n switch(prop){\n case \"append\":\n case \"delete\":\n case \"set\":\n return ReadonlyHeadersError.callable;\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_0__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */ merge(value) {\n if (Array.isArray(value)) return value.join(\", \");\n return value;\n }\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */ static from(headers) {\n if (headers instanceof Headers) return headers;\n return new HeadersAdapter(headers);\n }\n append(name, value) {\n const existing = this.headers[name];\n if (typeof existing === \"string\") {\n this.headers[name] = [\n existing,\n value\n ];\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n this.headers[name] = value;\n }\n }\n delete(name) {\n delete this.headers[name];\n }\n get(name) {\n const value = this.headers[name];\n if (typeof value !== \"undefined\") return this.merge(value);\n return null;\n }\n has(name) {\n return typeof this.headers[name] !== \"undefined\";\n }\n set(name, value) {\n this.headers[name] = value;\n }\n forEach(callbackfn, thisArg) {\n for (const [name, value] of this.entries()){\n callbackfn.call(thisArg, value, name, this);\n }\n }\n *entries() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name);\n yield [\n name,\n value\n ];\n }\n }\n *keys() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n yield name;\n }\n }\n *values() {\n for (const key of Object.keys(this.headers)){\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key);\n yield value;\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n} //# sourceMappingURL=headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEyQztBQUMzQzs7Q0FFQyxHQUFVLE1BQU1DLDZCQUE2QkM7SUFDMUNDLGFBQWE7UUFDVCxLQUFLLENBQUM7SUFDVjtJQUNBLE9BQU9DLFdBQVc7UUFDZCxNQUFNLElBQUlIO0lBQ2Q7QUFDSjtBQUNPLE1BQU1JLHVCQUF1QkM7SUFDaENILFlBQVlJLE9BQU8sQ0FBQztRQUNoQiwyRUFBMkU7UUFDM0UsMkVBQTJFO1FBQzNFLEtBQUs7UUFDTCxJQUFJLENBQUNBLE9BQU8sR0FBRyxJQUFJQyxNQUFNRCxTQUFTO1lBQzlCRSxLQUFLQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUTtnQkFDdkIsc0VBQXNFO2dCQUN0RSxzRUFBc0U7Z0JBQ3RFLGNBQWM7Z0JBQ2QsSUFBSSxPQUFPRCxTQUFTLFVBQVU7b0JBQzFCLE9BQU9YLG9EQUFjQSxDQUFDUyxHQUFHLENBQUNDLFFBQVFDLE1BQU1DO2dCQUM1QztnQkFDQSxNQUFNQyxhQUFhRixLQUFLRyxXQUFXO2dCQUNuQyx3RUFBd0U7Z0JBQ3hFLHFFQUFxRTtnQkFDckUsa0JBQWtCO2dCQUNsQixNQUFNQyxXQUFXQyxPQUFPQyxJQUFJLENBQUNWLFNBQVNXLElBQUksQ0FBQyxDQUFDQyxJQUFJQSxFQUFFTCxXQUFXLE9BQU9EO2dCQUNwRSwwREFBMEQ7Z0JBQzFELElBQUksT0FBT0UsYUFBYSxhQUFhO2dCQUNyQyxtREFBbUQ7Z0JBQ25ELE9BQU9mLG9EQUFjQSxDQUFDUyxHQUFHLENBQUNDLFFBQVFLLFVBQVVIO1lBQ2hEO1lBQ0FRLEtBQUtWLE1BQU0sRUFBRUMsSUFBSSxFQUFFVSxLQUFLLEVBQUVULFFBQVE7Z0JBQzlCLElBQUksT0FBT0QsU0FBUyxVQUFVO29CQUMxQixPQUFPWCxvREFBY0EsQ0FBQ29CLEdBQUcsQ0FBQ1Ys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QzVCLE1BQU1jLFFBQVEsSUFBSSxDQUFDWixHQUFHLENBQUMrQjtZQUN2QixNQUFNbkI7UUFDVjtJQUNKO0lBQ0EsQ0FBQ3FCLE9BQU9DLFFBQVEsQ0FBQyxHQUFHO1FBQ2hCLE9BQU8sSUFBSSxDQUFDTCxPQUFPO0lBQ3ZCO0FBQ0osRUFFQSxtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvaGVhZGVycy5qcz82OTYxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZmxlY3RBZGFwdGVyIH0gZnJvbSBcIi4vcmVmbGVjdFwiO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY2xhc3MgUmVhZG9ubHlIZWFkZXJzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoXCJIZWFkZXJzIGNhbm5vdCBiZSBtb2RpZmllZC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvaGVhZGVyc1wiKTtcbiAgICB9XG4gICAgc3RhdGljIGNhbGxhYmxlKCkge1xuICAgICAgICB0aHJvdyBuZXcgUmVhZG9ubHlIZWFkZXJzRXJyb3IoKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSGVhZGVyc0FkYXB0ZXIgZXh0ZW5kcyBIZWFkZXJzIHtcbiAgICBjb25zdHJ1Y3RvcihoZWFkZXJzKXtcbiAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBvdmVycmlkZGVuIHRoZSBtZXRob2RzIHRoYXQgd291bGQgYmUgY2FsbGVkLCBzbyB3ZSdyZSBqdXN0XG4gICAgICAgIC8vIGNhbGxpbmcgdGhlIHN1cGVyIGNvbnN0cnVjdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBpbnN0YW5jZW9mIGNoZWNrIHdvcmtzLlxuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBuZXcgUHJveHkoaGVhZGVycywge1xuICAgICAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGlzIGlzIGp1c3QgYW4gb2JqZWN0LCB3ZSBleHBlY3QgdGhhdCBhbGwgXCJnZXRcIiBvcGVyYXRpb25zXG4gICAgICAgICAgICAgICAgLy8gYXJlIGZvciBwcm9wZXJ0aWVzLiBJZiBpdCdzIGEgXCJnZXRcIiBmb3IgYSBzeW1ib2wsIHdlJ2xsIGp1c3QgcmV0dXJuXG4gICAgICAgICAgICAgICAgLy8gdGhlIHN5bWJvbC5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09IFwic3ltYm9sXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbG93ZXJjYXNlZCA9IHByb3AudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAvLyBMZXQncyBmaW5kIHRoZSBvcmlnaW5hbCBjYXNpbmcgb2YgdGhlIGtleS4gVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAvLyBubyBtaXhlZCBjYXNlIGtleXMgKGUuZy4gXCJDb250ZW50LVR5cGVcIiBhbmQgXCJjb250ZW50LXR5cGVcIikgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaGVhZGVycyBvYmplY3QuXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBPYmplY3Qua2V5cyhoZWFkZXJzKS5maW5kKChvKT0+by50b0xvd2VyQ2FzZSgpID09PSBsb3dlcmNhc2VkKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGRvZXNuJ3QgZXhpc3QsIHJldHVybiB1bmRlZmluZWQuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCByZXR1cm4gdGhlIHZhbHVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBvcmlnaW5hbCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09IFwic3ltYm9sXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCB1c2UgdGhlIHByb3AgYXMgdGhlIGtleS5cbiAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuc2V0KHRhcmdldCwgb3JpZ2luYWwgPz8gcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzeW1ib2xcIikgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCByZXR1cm4gZmFsc2UuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCByZXR1cm4gdHJ1ZS5cbiAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgb3JpZ2luYWwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlbGV0ZVByb3BlcnR5ICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09IFwic3ltYm9sXCIpIHJldHVybiBSZWZsZWN0QWRhcHRlci5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvd2VyY2FzZWQgPSBwcm9wLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCB0aGUgb3JpZ2luYWwgY2FzaW5nIG9mIHRoZSBrZXkuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgLy8gbm8gbWl4ZWQgY2FzZSBrZXlzIChlLmcuIFwiQ29udGVudC1UeXBlXCIgYW5kIFwiY29udGVudC10eXBlXCIpIGluIHRoZVxuICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgb2JqZWN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgobyk9Pm8udG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJjYXNlZCk7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIGNhc2luZyBkb2Vzbid0IGV4aXN0LCByZXR1cm4gdHJ1ZS5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGV4aXN0cywgZGVsZXRlIHRoZSBwcm9wZXJ0eS5cbiAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBvcmlnaW5hbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICogU2VhbHMgYSBIZWFkZXJzIGluc3RhbmNlIHRvIHByZXZlbnQgbW9kaWZpY2F0aW9uIGJ5IHRocm93aW5nIGFuIGVycm9yIHdoZW5cbiAgICogYW55IG11dGF0aW5nIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAqLyBzdGF0aWMgc2VhbChoZWFkZXJzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkoaGVhZGVycywge1xuICAgICAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiYXBwZW5kXCI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJkZWxldGVcIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcInNldFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlYWRvbmx5SGVhZGVyc0Vycm9yLmNhbGxhYmxlO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICogTWVyZ2VzIGEgaGVhZGVyIHZhbHVlIGludG8gYSBzdHJpbmcuIFRoaXMgc3RvcmVzIG11bHRpcGxlIHZhbHVlcyBhcyBhblxuICAgKiBhcnJheSwgc28gd2UgbmVlZCB0byBtZXJnZSB0aGVtIGludG8gYSBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBhIGhlYWRlciB2YWx1ZVxuICAgKiBAcmV0dXJucyBhIG1lcmdlZCBoZWFkZXIgdmFsdWUgKGEgc3RyaW5nKVxuICAgKi8gbWVyZ2UodmFsdWUpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWUuam9pbihcIiwgXCIpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDcmVhdGVzIGEgSGVhZGVycyBpbnN0YW5jZSBmcm9tIGEgcGxhaW4gb2JqZWN0IG9yIGEgSGVhZGVycyBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlcnMgYSBwbGFpbiBvYmplY3Qgb3IgYSBIZWFkZXJzIGluc3RhbmNlXG4gICAqIEByZXR1cm5zIGEgaGVhZGVycyBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb20oaGVhZGVycykge1xuICAgICAgICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHJldHVybiBoZWFkZXJzO1xuICAgICAgICByZXR1cm4gbmV3IEhlYWRlcnNBZGFwdGVyKGhlYWRlcnMpO1xuICAgIH1cbiAgICBhcHBlbmQobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmhlYWRlcnNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tuYW1lXSA9IFtcbiAgICAgICAgICAgICAgICBleGlzdGluZyxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgICAgICAgZXhpc3RpbmcucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWxldGUobmFtZSkge1xuICAgICAgICBkZWxldGUgdGhpcy5oZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgICBnZXQobmFtZSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaGVhZGVyc1tuYW1lXTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIHRoaXMubWVyZ2UodmFsdWUpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaGFzKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLmhlYWRlcnNbbmFtZV0gIT09IFwidW5kZWZpbmVkXCI7XG4gICAgfVxuICAgIHNldChuYW1lLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgZm9yRWFjaChjYWxsYmFja2ZuLCB0aGlzQXJnKSB7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiB0aGlzLmVudHJpZXMoKSl7XG4gICAgICAgICAgICBjYWxsYmFja2ZuLmNhbGwodGhpc0FyZywgdmFsdWUsIG5hbWUsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgICplbnRyaWVzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIC8vIFdlIGFzc2VydCBoZXJlIHRoYXQgdGhpcyBpcyBhIHN0cmluZyBiZWNhdXNlIHdlIGdvdCBpdCBmcm9tIHRoZVxuICAgICAgICAgICAgLy8gT2JqZWN0LmtleXMoKSBjYWxsIGFib3ZlLlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChuYW1lKTtcbiAgICAgICAgICAgIHlpZWxkIFtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuICAgICprZXlzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHlpZWxkIG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnZhbHVlcygpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5oZWFkZXJzKSl7XG4gICAgICAgICAgICAvLyBXZSBhc3NlcnQgaGVyZSB0aGF0IHRoaXMgaXMgYSBzdHJpbmcgYmVjYXVzZSB3ZSBnb3QgaXQgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIE9iamVjdC5rZXlzKCkgY2FsbCBhYm92ZS5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzKCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWFkZXJzLmpzLm1hcCJdLCJuYW1lcyI6WyJSZWZsZWN0QWRhcHRlciIsIlJlYWRvbmx5SGVhZGVyc0Vycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImNhbGxhYmxlIiwiSGVhZGVyc0FkYXB0ZXIiLCJIZWFkZXJzIiwiaGVhZGVycyIsIlByb3h5IiwiZ2V0IiwidGFyZ2V0IiwicHJvcCIsInJlY2VpdmVyIiwibG93ZXJjYXNlZCIsInRvTG93ZXJDYXNlIiwib3JpZ2luYWwiLCJPYmplY3QiLCJrZXlzIiwiZmluZCIsIm8iLCJzZXQiLCJ2YWx1ZSIsImhhcyIsImRlbGV0ZVByb3BlcnR5Iiwic2VhbCIsIm1lcmdlIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsImZyb20iLCJhcHBlbmQiLCJuYW1lIiwiZXhpc3RpbmciLCJwdXNoIiwiZGVsZXRlIiwiZm9yRWFjaCIsImNhbGxiYWNrZm4iLCJ0aGlzQXJnIiwiZW50cmllcyIsImNhbGwiLCJrZXkiLCJ2YWx1ZXMiLCJTeW1ib2wiLCJpdGVyYXRvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReflectAdapter: () => (/* binding */ ReflectAdapter)\n/* harmony export */ });\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n} //# sourceMappingURL=reflect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQTtJQUNULE9BQU9DLElBQUlDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUU7UUFDL0IsTUFBTUMsUUFBUUMsUUFBUUwsR0FBRyxDQUFDQyxRQUFRQyxNQUFNQztRQUN4QyxJQUFJLE9BQU9DLFVBQVUsWUFBWTtZQUM3QixPQUFPQSxNQUFNRSxJQUFJLENBQUNMO1FBQ3RCO1FBQ0EsT0FBT0c7SUFDWDtJQUNBLE9BQU9HLElBQUlOLE1BQU0sRUFBRUMsSUFBSSxFQUFFRSxLQUFLLEVBQUVELFFBQVEsRUFBRTtRQUN0QyxPQUFPRSxRQUFRRSxHQUFHLENBQUNOLFFBQVFDLE1BQU1FLE9BQU9EO0lBQzVDO0lBQ0EsT0FBT0ssSUFBSVAsTUFBTSxFQUFFQyxJQUFJLEVBQUU7UUFDckIsT0FBT0csUUFBUUcsR0FBRyxDQUFDUCxRQUFRQztJQUMvQjtJQUNBLE9BQU9PLGVBQWVSLE1BQU0sRUFBRUMsSUFBSSxFQUFFO1FBQ2hDLE9BQU9HLFFBQVFJLGNBQWMsQ0FBQ1IsUUFBUUM7SUFDMUM7QUFDSixFQUVBLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0LmpzPzU5NjAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJlZmxlY3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuYmluZCh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgc3RhdGljIHNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgIH1cbiAgICBzdGF0aWMgaGFzKHRhcmdldCwgcHJvcCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICB9XG4gICAgc3RhdGljIGRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVmbGVjdC5qcy5tYXAiXSwibmFtZXMiOlsiUmVmbGVjdEFkYXB0ZXIiLCJnZXQiLCJ0YXJnZXQiLCJwcm9wIiwicmVjZWl2ZXIiLCJ2YWx1ZSIsIlJlZmxlY3QiLCJiaW5kIiwic2V0IiwiaGFzIiwiZGVsZXRlUHJvcGVydHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js":
-/*!**********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js ***!
- \**********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MutableRequestCookiesAdapter: () => (/* binding */ MutableRequestCookiesAdapter),\n/* harmony export */ ReadonlyRequestCookiesError: () => (/* binding */ ReadonlyRequestCookiesError),\n/* harmony export */ RequestCookiesAdapter: () => (/* binding */ RequestCookiesAdapter),\n/* harmony export */ appendMutableCookies: () => (/* binding */ appendMutableCookies),\n/* harmony export */ getModifiedCookieValues: () => (/* binding */ getModifiedCookieValues)\n/* harmony export */ });\n/* harmony import */ var _cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cookies */ \"(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js\");\n/* harmony import */ var _reflect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reflect */ \"(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js\");\n\n\n/**\n * @internal\n */ class ReadonlyRequestCookiesError extends Error {\n constructor(){\n super(\"Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#cookiessetname-value-options\");\n }\n static callable() {\n throw new ReadonlyRequestCookiesError();\n }\n}\nclass RequestCookiesAdapter {\n static seal(cookies) {\n return new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case \"clear\":\n case \"delete\":\n case \"set\":\n return ReadonlyRequestCookiesError.callable;\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_1__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n}\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for(\"next.mutated.cookies\");\nfunction getModifiedCookieValues(cookies) {\n const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES];\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return [];\n }\n return modified;\n}\nfunction appendMutableCookies(headers, mutableCookies) {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies);\n if (modifiedCookieValues.length === 0) {\n return false;\n }\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(headers);\n const returnedCookies = resCookies.getAll();\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues){\n resCookies.set(cookie);\n }\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies){\n resCookies.set(cookie);\n }\n return true;\n}\nclass MutableRequestCookiesAdapter {\n static wrap(cookies, onUpdateCookies) {\n const responseCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(new Headers());\n for (const cookie of cookies.getAll()){\n responseCookies.set(cookie);\n }\n let modifiedValues = [];\n const modifiedCookies = new Set();\n const updateResponseCookies = ()=>{\n var _fetch___nextGetStaticStore;\n // TODO-APP: change method of getting staticGenerationAsyncStore\n const staticGenerationAsyncStore = fetch.__nextGetStaticStore == null ? void 0 : (_fetch___nextGetStaticStore = fetch.__nextGetStaticStore.call(fetch)) == null ? void 0 : _fetch___nextGetStaticStore.getStore();\n if (staticGenerationAsyncStore) {\n staticGenerationAsyncStore.pathWasRevalidated = true;\n }\n const allCookies = responseCookies.getAll();\n modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name));\n if (onUpdateCookies) {\n const serializedCookies = [];\n for (const cookie of modifiedValues){\n const tempCookies = new _cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies(new Headers());\n tempCookies.set(cookie);\n serializedCookies.push(tempCookies.toString());\n }\n onUpdateCookies(serializedCookies);\n }\n };\n return new Proxy(responseCookies, {\n get (target, prop, receiver) {\n switch(prop){\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues;\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case \"delete\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n target.delete(...args);\n } finally{\n updateResponseCookies();\n }\n };\n case \"set\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n return target.set(...args);\n } finally{\n updateResponseCookies();\n }\n };\n default:\n return _reflect__WEBPACK_IMPORTED_MODULE_1__.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n} //# sourceMappingURL=request-cookies.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZXF1ZXN0LWNvb2tpZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUE2QztBQUNGO0FBQzNDOztDQUVDLEdBQVUsTUFBTUUsb0NBQW9DQztJQUNqREMsYUFBYTtRQUNULEtBQUssQ0FBQztJQUNWO0lBQ0EsT0FBT0MsV0FBVztRQUNkLE1BQU0sSUFBSUg7SUFDZDtBQUNKO0FBQ08sTUFBTUk7SUFDVCxPQUFPQyxLQUFLQyxPQUFPLEVBQUU7UUFDakIsT0FBTyxJQUFJQyxNQUFNRCxTQUFTO1lBQ3RCRSxLQUFLQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUTtnQkFDdkIsT0FBT0Q7b0JBQ0gsS0FBSztvQkFDTCxLQUFLO29CQUNMLEtBQUs7d0JBQ0QsT0FBT1YsNEJBQTRCRyxRQUFRO29CQUMvQzt3QkFDSSxPQUFPSixvREFBY0EsQ0FBQ1MsR0FBRyxDQUFDQyxRQUFRQyxNQUFNQztnQkFDaEQ7WUFDSjtRQUNKO0lBQ0o7QUFDSjtBQUNBLE1BQU1DLDhCQUE4QkMsT0FBT0MsR0FBRyxDQUFDO0FBQ3hDLFNBQVNDLHdCQUF3QlQsT0FBTztJQUMzQyxNQUFNVSxXQUFXVixPQUFPLENBQUNNLDRCQUE0QjtJQUNyRCxJQUFJLENBQUNJLFlBQVksQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDRixhQUFhQSxTQUFTRyxNQUFNLEtBQUssR0FBRztRQUNoRSxPQUFPLEVBQUU7SUFDYjtJQUNBLE9BQU9IO0FBQ1g7QUFDTyxTQUFTSSxxQkFBcUJDLE9BQU8sRUFBRUMsY0FBYztJQUN4RCxNQUFNQyx1QkFBdUJSLHdCQUF3Qk87SUFDckQsSUFBSUMscUJBQXFCSixNQUFNLEtBQUssR0FBRztRQUNuQyxPQUFPO0lBQ1g7SUFDQSx1REFBdUQ7SUFDdkQsbURBQW1EO0lBQ25ELDhCQUE4QjtJQUM5QixNQUFNSyxhQUFhLElBQUkxQixxREFBZUEsQ0FBQ3VCO0lBQ3ZDLE1BQU1JLGtCQUFrQkQsV0FBV0UsTUFBTTtJQUN6Qyx5Q0FBeUM7SUFDekMsS0FBSyxNQUFNQyxVQUFVSixxQkFBcUI7UUFDdENDLFdBQVdJLEdBQUcsQ0FBQ0Q7SUFDbkI7SUFDQSxnREFBZ0Q7SUFDaEQsS0FBSyxNQUFNQSxVQUFVRixnQkFBZ0I7UUFDakNELFdBQVdJLEdBQUcsQ0FBQ0Q7SUFDbkI7SUFDQSxPQUFPO0FBQ1g7QUFDTyxNQUFNRTtJQUNULE9BQU9DLEtBQUt4QixPQUFPLEVBQUV5QixlQUFlLEVBQUU7UUFDbEMsTUFBTUMsa0JBQWtCLElBQUlsQyxxREFBZUEsQ0FBQyxJQUFJbUM7UUFDaEQsS0FBSyxNQUFNTixVQUFVckIsUUFBUW9CLE1BQU0sR0FBRztZQUNsQ00sZ0JBQWdCSixHQUFHLENBQUNEO1FBQ3hCO1FBQ0EsSUFBSU8saUJBQWlCLEVBQUU7UUFDdkIsTUFBTUMsa0JBQWtCLElBQUlDO1FBQzVCLE1BQU1DLHdCQUF3QjtZQUMxQixJQUFJQztZQUNKLGdFQUFnRTtZQUNoRSxNQUFNQyw2QkFBNkJDLE1BQU1DLG9CQUFvQixJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUNILDhCQUE4QkUsTUFBTUMsb0JBQW9CLENBQUNDLElBQUksQ0FBQ0YsTUFBSyxLQUFNLE9BQU8sS0FBSyxJQUFJRiw0QkFBNEJLLFFBQVE7WUFDL00sSUFBSUosNEJBQTRCO2dCQUM1QkEsMkJBQTJCSyxrQkFBa0IsR0FBRztZQUNwRDtZQUNBLE1BQU1DLGFBQWFiLGdCQUFnQk4sTUFBTTtZQUN6Q1EsaUJBQWlCVyxXQUFXQyxNQUFNLENBQUMsQ0FBQ0MsSUFBSVosZ0JBQWdCYSxHQUFHLENBQUNELEVBQUVFLElBQUk7WUFDbEUsSUFBSWxCLGlCQUFpQjtnQkFDakIsTUFBTW1CLG9CQUFvQixFQUFFO2dCQUM1QixLQUFLLE1BQU12QixVQUFVTyxlQUFlO29CQUNoQyxNQUFNaUIsY0FBYyxJQUFJckQscURBQWVBLENBQUMsSUFBSW1DO29CQUM1Q2tCLFlBQVl2QixHQUFHLENBQUNEO29CQUNoQnVCLGtCQUFrQkUsSUFBSSxDQUFDRCxZQUFZRSxRQUFRO2dCQUMvQztnQkFDQXRCLGdCQUFnQm1CO1lBQ3BCO1FBQ0o7UUFDQSxPQUFPLElBQUkzQyxNQUFNeUIsaUJBQWlCO1lBQzlCeEIsS0FBS0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFFBQVE7Z0JBQ3ZCLE9BQU9EO29CQUNILHFEQUFxRDtvQkFDckQsS0FBS0U7d0JBQ0QsT0FBT3NCO29CQUNYLGlFQUFpRTtvQkFDakUseUJBQXlCO29CQUN6QixLQUFLO3dCQUNELE9BQU8sU0FBUyxHQUFHb0IsSUFBSTs0QkFDbkJuQixnQkFBZ0JvQixHQUFHLENBQUMsT0FBT0QsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXQSxJQUFJLENBQUMsRUFBRSxHQUFHQSxJQUFJLENBQUMsRUFBRSxDQUFDTCxJQUFJOzRCQUN4RSxJQUFJO2dDQUNBeEMsT0FBTytDLE1BQU0sSUFBSUY7NEJBQ3JCLFNBQVM7Z0NBQ0xqQjs0QkFDSjt3QkFDSjtvQkFDSixLQUFLO3dCQUNELE9BQU8sU0FBUyxHQUFHaUIsSUFBSTs0QkFDbkJuQixnQkFBZ0JvQixHQUFHLENBQUMsT0FBT0QsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXQSxJQUFJLENBQUMsRUFBRSxHQUFHQSxJQUFJLENBQUMsRUFBRSxDQUFDTCxJQUFJOzRCQUN4RSxJQUFJO2dDQUNBLE9BQU94QyxPQUFPbUIsR0FBRyxJQUFJMEI7NEJBQ3pCLFNBQVM7Z0NBQ0xqQjs0QkFDSjt3QkFDSjtvQkFDSjt3QkFDSSxPQUFPdEMsb0RBQWNBLENBQUNTLEdBQUcsQ0FBQ0MsUUFBUUMsTUFBTUM7Z0JBQ2hEO1lBQ0o7UUFDSjtJQUNKO0FBQ0osRUFFQSwyQ0FBMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVxdWVzdC1jb29raWVzLmpzP2RjOTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzcG9uc2VDb29raWVzIH0gZnJvbSBcIi4uL2Nvb2tpZXNcIjtcbmltcG9ydCB7IFJlZmxlY3RBZGFwdGVyIH0gZnJvbSBcIi4vcmVmbGVjdFwiO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY2xhc3MgUmVhZG9ubHlSZXF1ZXN0Q29va2llc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKFwiQ29va2llcyBjYW4gb25seSBiZSBtb2RpZmllZCBpbiBhIFNlcnZlciBBY3Rpb24gb3IgUm91dGUgSGFuZGxlci4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvY29va2llcyNjb29raWVzc2V0bmFtZS12YWx1ZS1vcHRpb25zXCIpO1xuICAgIH1cbiAgICBzdGF0aWMgY2FsbGFibGUoKSB7XG4gICAgICAgIHRocm93IG5ldyBSZWFkb25seVJlcXVlc3RDb29raWVzRXJyb3IoKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVxdWVzdENvb2tpZXNBZGFwdGVyIHtcbiAgICBzdGF0aWMgc2VhbChjb29raWVzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkoY29va2llcywge1xuICAgICAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiY2xlYXJcIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImRlbGV0ZVwiOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic2V0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVhZG9ubHlSZXF1ZXN0Q29va2llc0Vycm9yLmNhbGxhYmxlO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmNvbnN0IFNZTUJPTF9NT0RJRllfQ09PS0lFX1ZBTFVFUyA9IFN5bWJvbC5mb3IoXCJuZXh0Lm11dGF0ZWQuY29va2llc1wiKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RpZmllZENvb2tpZVZhbHVlcyhjb29raWVzKSB7XG4gICAgY29uc3QgbW9kaWZpZWQgPSBjb29raWVzW1NZTUJPTF9NT0RJRllfQ09PS0lFX1ZBTFVFU107XG4gICAgaWYgKCFtb2RpZmllZCB8fCAhQXJyYXkuaXNBcnJheShtb2RpZmllZCkgfHwgbW9kaWZpZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZGlmaWVkO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZE11dGFibGVDb29raWVzKGhlYWRlcnMsIG11dGFibGVDb29raWVzKSB7XG4gICAgY29uc3QgbW9kaWZpZWRDb29raWVWYWx1ZXMgPSBnZXRNb2RpZmllZENvb2tpZVZhbHVlcyhtdXRhYmxlQ29va2llcyk7XG4gICAgaWYgKG1vZGlmaWVkQ29va2llVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFJldHVybiBhIG5ldyByZXNwb25zZSB0aGF0IGV4dGVuZHMgdGhlIHJlc3BvbnNlIHdpdGhcbiAgICAvLyB0aGUgbW9kaWZpZWQgY29va2llcyBhcyBmYWxsYmFja3MuIGByZXNgIGNvb2tpZXNcbiAgICAvLyB3aWxsIHN0aWxsIHRha2UgcHJlY2VkZW5jZS5cbiAgICBjb25zdCByZXNDb29raWVzID0gbmV3IFJlc3BvbnNlQ29va2llcyhoZWFkZXJzKTtcbiAgICBjb25zdCByZXR1cm5lZENvb2tpZXMgPSByZXNDb29raWVzLmdldEFsbCgpO1xuICAgIC8vIFNldCB0aGUgbW9kaWZpZWQgY29va2llcyBhcyBmYWxsYmFja3MuXG4gICAgZm9yIChjb25zdCBjb29raWUgb2YgbW9kaWZpZWRDb29raWVWYWx1ZXMpe1xuICAgICAgICByZXNDb29raWVzLnNldChjb29raWUpO1xuICAgIH1cbiAgICAvLyBTZXQgdGhlIG9yaWdpbmFsIGNvb2tpZXMgYXMgdGhlIGZpbmFsIHZhbHVlcy5cbiAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiByZXR1cm5lZENvb2tpZXMpe1xuICAgICAgICByZXNDb29raWVzLnNldChjb29raWUpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmV4cG9ydCBjbGFzcyBNdXRhYmxlUmVxdWVzdENvb2tpZXNBZGFwdGVyIHtcbiAgICBzdGF0aWMgd3JhcChjb29raWVzLCBvblVwZGF0ZUNvb2tpZXMpIHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2VDb29raWVzID0gbmV3IFJlc3BvbnNlQ29va2llcyhuZXcgSGVhZGVycygpKTtcbiAgICAgICAgZm9yIChjb25zdCBjb29raWUgb2YgY29va2llcy5nZXRBbGwoKSl7XG4gICAgICAgICAgICByZXNwb25zZUNvb2tpZXMuc2V0KGNvb2tpZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1vZGlmaWVkVmFsdWVzID0gW107XG4gICAgICAgIGNvbnN0IG1vZGlmaWVkQ29va2llcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgY29uc3QgdXBkYXRlUmVzcG9uc2VDb29raWVzID0gKCk9PntcbiAgICAgICAgICAgIHZhciBfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmU7XG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogY2hhbmdlIG1ldGhvZCBvZiBnZXR0aW5nIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JlXG4gICAgICAgICAgICBjb25zdCBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yZSA9IGZldGNoLl9fbmV4dEdldFN0YXRpY1N0b3JlID09IG51bGwgPyB2b2lkIDAgOiAoX2ZldGNoX19fbmV4dEdldFN0YXRpY1N0b3JlID0gZmV0Y2guX19uZXh0R2V0U3RhdGljU3RvcmUuY2FsbChmZXRjaCkpID09IG51bGwgPyB2b2lkIDAgOiBfZmV0Y2hfX19uZXh0R2V0U3RhdGljU3RvcmUuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgIGlmIChzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yZSkge1xuICAgICAgICAgICAgICAgIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JlLnBhdGhXYXNSZXZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhbGxDb29raWVzID0gcmVzcG9uc2VDb29raWVzLmdldEFsbCgpO1xuICAgICAgICAgICAgbW9kaWZpZWRWYWx1ZXMgPSBhbGxDb29raWVzLmZpbHRlcigoYyk9Pm1vZGlmaWVkQ29va2llcy5oYXMoYy5uYW1lKSk7XG4gICAgICAgICAgICBpZiAob25VcGRhdGVDb29raWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZENvb2tpZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiBtb2RpZmllZFZhbHVlcyl7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBDb29raWVzID0gbmV3IFJlc3BvbnNlQ29va2llcyhuZXcgSGVhZGVycygpKTtcbiAgICAgICAgICAgICAgICAgICAgdGVtcENvb2tpZXMuc2V0KGNvb2tpZSk7XG4gICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6ZWRDb29raWVzLnB1c2godGVtcENvb2tpZXMudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlQ29va2llcyhzZXJpYWxpemVkQ29va2llcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkocmVzcG9uc2VDb29raWVzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIC8vIEEgc3BlY2lhbCBzeW1ib2wgdG8gZ2V0IHRoZSBtb2RpZmllZCBjb29raWUgdmFsdWVzXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU1lNQk9MX01PRElGWV9DT09LSUVfVkFMVUVTOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZGlmaWVkVmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBUaHJvdyBlcnJvciBpZiB0cnlpbmcgdG8gc2V0IGEgY29va2llIGFmdGVyIHRoZSByZXNwb25zZVxuICAgICAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIGhhdmUgYmVlbiBzZXQuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJkZWxldGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRDb29raWVzLmFkZCh0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kZWxldGUoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVSZXNwb25zZUNvb2tpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic2V0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oLi4uYXJncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkQ29va2llcy5hZGQodHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnNldCguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVJlc3BvbnNlQ29va2llcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LWNvb2tpZXMuanMubWFwIl0sIm5hbWVzIjpbIlJlc3BvbnNlQ29va2llcyIsIlJlZmxlY3RBZGFwdGVyIiwiUmVhZG9ubHlSZXF1ZXN0Q29va2llc0Vycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImNhbGxhYmxlIiwiUmVxdWVzdENvb2tpZXNBZGFwdGVyIiwic2VhbCIsImNvb2tpZXMiLCJQcm94eSIsImdldCIsInRhcmdldCIsInByb3AiLCJyZWNlaXZlciIsIlNZTUJPTF9NT0RJRllfQ09PS0lFX1ZBTFVFUyIsIlN5bWJvbCIsImZvciIsImdldE1vZGlmaWVkQ29va2llVmFsdWVzIiwibW9kaWZpZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJhcHBlbmRNdXRhYmxlQ29va2llcyIsImhlYWRlcnMiLCJtdXRhYmxlQ29va2llcyIsIm1vZGlmaWVkQ29va2llVmFsdWVzIiwicmVzQ29va2llcyIsInJldHVybmVkQ29va2llcyIsImdldEFsbCIsImNvb2tpZSIsInNldCIsIk11dGFibGVSZXF1ZXN0Q29va2llc0FkYXB0ZXIiLCJ3cmFwIiwib25VcGRhdGVDb29raWVzIiwicmVzcG9uc2VDb29raWVzIiwiSGVhZGVycyIsIm1vZGlmaWVkVmFsdWVzIiwibW9kaWZpZWRDb29raWVzIiwiU2V0IiwidXBkYXRlUmVzcG9uc2VDb29raWVzIiwiX2ZldGNoX19fbmV4dEdldFN0YXRpY1N0b3JlIiwic3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmUiLCJmZXRjaCIsIl9fbmV4dEdldFN0YXRpY1N0b3JlIiwiY2FsbCIsImdldFN0b3JlIiwicGF0aFdhc1JldmFsaWRhdGVkIiwiYWxsQ29va2llcyIsImZpbHRlciIsImMiLCJoYXMiLCJuYW1lIiwic2VyaWFsaXplZENvb2tpZXMiLCJ0ZW1wQ29va2llcyIsInB1c2giLCJ0b1N0cmluZyIsImFyZ3MiLCJhZGQiLCJkZWxldGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RequestCookies: () => (/* reexport safe */ next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__.RequestCookies),\n/* harmony export */ ResponseCookies: () => (/* reexport safe */ next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__.ResponseCookies)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(rsc)/../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n/* harmony import */ var next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_compiled_edge_runtime_cookies__WEBPACK_IMPORTED_MODULE_0__);\n //# sourceMappingURL=cookies.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMkYsQ0FFM0YsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2Nvb2tpZXMuanM/MTFlYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZXF1ZXN0Q29va2llcywgUmVzcG9uc2VDb29raWVzIH0gZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXNcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29va2llcy5qcy5tYXAiXSwibmFtZXMiOlsiUmVxdWVzdENvb2tpZXMiLCJSZXNwb25zZUNvb2tpZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/server/web/spec-extension/cookies.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js":
-/*!****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js ***!
- \****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ AppRouterContext: () => (/* binding */ e0),
-/* harmony export */ GlobalLayoutRouterContext: () => (/* binding */ e2),
-/* harmony export */ LayoutRouterContext: () => (/* binding */ e1),
-/* harmony export */ MissingSlotContext: () => (/* binding */ e4),
-/* harmony export */ TemplateContext: () => (/* binding */ e3)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js#AppRouterContext`);
-
-const e1 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js#LayoutRouterContext`);
-
-const e2 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js#GlobalLayoutRouterContext`);
-
-const e3 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js#TemplateContext`);
-
-const e4 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js#MissingSlotContext`);
-
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/escape-regexp.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/escape-regexp.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ escapeStringRegexp: () => (/* binding */ escapeStringRegexp)\n/* harmony export */ });\n// regexp is based on https://github.com/sindresorhus/escape-string-regexp\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, \"\\\\$&\");\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwRUFBMEU7QUFDMUUsTUFBTUEsY0FBYztBQUNwQixNQUFNQyxrQkFBa0I7QUFDakIsU0FBU0MsbUJBQW1CQyxHQUFHO0lBQ2xDLCtHQUErRztJQUMvRyxJQUFJSCxZQUFZSSxJQUFJLENBQUNELE1BQU07UUFDdkIsT0FBT0EsSUFBSUUsT0FBTyxDQUFDSixpQkFBaUI7SUFDeEM7SUFDQSxPQUFPRTtBQUNYLEVBRUEseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2VzY2FwZS1yZWdleHAuanM/OTAwNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdleHAgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9lc2NhcGUtc3RyaW5nLXJlZ2V4cFxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS87XG5jb25zdCByZVJlcGxhY2VSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9nO1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHIpIHtcbiAgICAvLyBzZWUgYWxzbzogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL2VzY2FwZVJlZ0V4cC5qcyNMMjNcbiAgICBpZiAocmVIYXNSZWdFeHAudGVzdChzdHIpKSB7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsIFwiXFxcXCQmXCIpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lc2NhcGUtcmVnZXhwLmpzLm1hcCJdLCJuYW1lcyI6WyJyZUhhc1JlZ0V4cCIsInJlUmVwbGFjZVJlZ0V4cCIsImVzY2FwZVN0cmluZ1JlZ2V4cCIsInN0ciIsInRlc3QiLCJyZXBsYWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/escape-regexp.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/get-img-props.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/get-img-props.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getImgProps: () => (/* binding */ getImgProps)\n/* harmony export */ });\n/* harmony import */ var _utils_warn_once__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/warn-once */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js\");\n/* harmony import */ var _image_blur_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./image-blur-svg */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/image-blur-svg.js\");\n/* harmony import */ var _image_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./image-config */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/image-config.js\");\n\n\n\nconst VALID_LOADING_VALUES = [\n \"lazy\",\n \"eager\",\n undefined\n];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return typeof src === \"object\" && (isStaticRequire(src) || isStaticImageData(src));\n}\nconst allImgs = new Map();\nlet perfObserver;\nfunction getInt(x) {\n if (typeof x === \"undefined\") {\n return x;\n }\n if (typeof x === \"number\") {\n return Number.isFinite(x) ? x : NaN;\n }\n if (typeof x === \"string\" && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10);\n }\n return NaN;\n}\nfunction getWidths(param, width, sizes) {\n let { deviceSizes, allSizes } = param;\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = [];\n for(let match; match = viewportWidthRe.exec(sizes); match){\n percentSizes.push(parseInt(match[2]));\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter((s)=>s >= deviceSizes[0] * smallestRatio),\n kind: \"w\"\n };\n }\n return {\n widths: allSizes,\n kind: \"w\"\n };\n }\n if (typeof width !== \"number\") {\n return {\n widths: deviceSizes,\n kind: \"w\"\n };\n }\n const widths = [\n ...new Set(// > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [\n width,\n width * 2 /*, width * 3*/ \n ].map((w)=>allSizes.find((p)=>p >= w) || allSizes[allSizes.length - 1]))\n ];\n return {\n widths,\n kind: \"x\"\n };\n}\nfunction generateImgAttrs(param) {\n let { config, src, unoptimized, width, quality, sizes, loader } = param;\n if (unoptimized) {\n return {\n src,\n srcSet: undefined,\n sizes: undefined\n };\n }\n const { widths, kind } = getWidths(config, width, sizes);\n const last = widths.length - 1;\n return {\n sizes: !sizes && kind === \"w\" ? \"100vw\" : sizes,\n srcSet: widths.map((w, i)=>loader({\n config,\n src,\n quality,\n width: w\n }) + \" \" + (kind === \"w\" ? w : i + 1) + kind).join(\", \"),\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({\n config,\n src,\n quality,\n width: widths[last]\n })\n };\n}\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */ function getImgProps(param, _state) {\n let { src, sizes, unoptimized = false, priority = false, loading, className, quality, width, height, fill = false, style, onLoad, onLoadingComplete, placeholder = \"empty\", blurDataURL, fetchPriority, layout, objectFit, objectPosition, lazyBoundary, lazyRoot, ...rest } = param;\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state;\n let config;\n let c = imgConf || _image_config__WEBPACK_IMPORTED_MODULE_2__.imageConfigDefault;\n if (\"allSizes\" in c) {\n config = c;\n } else {\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n config = {\n ...c,\n allSizes,\n deviceSizes\n };\n }\n let loader = rest.loader || defaultLoader;\n // Remove property so it's not spread on <img> element\n delete rest.loader;\n delete rest.srcSet;\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = \"__next_img_default\" in loader;\n if (isDefaultLoader) {\n if (config.loader === \"custom\") {\n throw new Error('Image with src \"' + src + '\" is missing \"loader\" prop.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader\");\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader;\n loader = (obj)=>{\n const { config: _, ...opts } = obj;\n return customImageLoader(opts);\n };\n }\n if (layout) {\n if (layout === \"fill\") {\n fill = true;\n }\n const layoutToStyle = {\n intrinsic: {\n maxWidth: \"100%\",\n height: \"auto\"\n },\n responsive: {\n width: \"100%\",\n height: \"auto\"\n }\n };\n const layoutToSizes = {\n responsive: \"100vw\",\n fill: \"100vw\"\n };\n const layoutStyle = layoutToStyle[layout];\n if (layoutStyle) {\n style = {\n ...style,\n ...layoutStyle\n };\n }\n const layoutSizes = layoutToSizes[layout];\n if (layoutSizes && !sizes) {\n sizes = layoutSizes;\n }\n }\n let staticSrc = \"\";\n let widthInt = getInt(width);\n let heightInt = getInt(height);\n let blurWidth;\n let blurHeight;\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n if (!staticImageData.src) {\n throw new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received \" + JSON.stringify(staticImageData));\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received \" + JSON.stringify(staticImageData));\n }\n blurWidth = staticImageData.blurWidth;\n blurHeight = staticImageData.blurHeight;\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width;\n heightInt = staticImageData.height;\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width;\n heightInt = Math.round(staticImageData.height * ratio);\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height;\n widthInt = Math.round(staticImageData.width * ratio);\n }\n }\n }\n src = typeof src === \"string\" ? src : staticSrc;\n let isLazy = !priority && (loading === \"lazy\" || typeof loading === \"undefined\");\n if (!src || src.startsWith(\"data:\") || src.startsWith(\"blob:\")) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (config.unoptimized) {\n unoptimized = true;\n }\n if (isDefaultLoader && src.endsWith(\".svg\") && !config.dangerouslyAllowSVG) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true;\n }\n if (priority) {\n fetchPriority = \"high\";\n }\n const qualityInt = getInt(quality);\n if (true) {\n if (config.output === \"export\" && isDefaultLoader && !unoptimized) {\n throw new Error(\"Image Optimization using the default loader is not compatible with `{ output: 'export' }`.\\n Possible solutions:\\n - Remove `{ output: 'export' }` and run \\\"next start\\\" to run server mode including the Image Optimization API.\\n - Configure `{ images: { unoptimized: true } }` in `next.config.js` to disable the Image Optimization API.\\n Read more: https://nextjs.org/docs/messages/export-image-api\");\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true;\n } else {\n if (fill) {\n if (width) {\n throw new Error('Image with src \"' + src + '\" has both \"width\" and \"fill\" properties. Only one should be used.');\n }\n if (height) {\n throw new Error('Image with src \"' + src + '\" has both \"height\" and \"fill\" properties. Only one should be used.');\n }\n if ((style == null ? void 0 : style.position) && style.position !== \"absolute\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.');\n }\n if ((style == null ? void 0 : style.width) && style.width !== \"100%\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.');\n }\n if ((style == null ? void 0 : style.height) && style.height !== \"100%\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.');\n }\n } else {\n if (typeof widthInt === \"undefined\") {\n throw new Error('Image with src \"' + src + '\" is missing required \"width\" property.');\n } else if (isNaN(widthInt)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"width\" property. Expected a numeric value in pixels but received \"' + width + '\".');\n }\n if (typeof heightInt === \"undefined\") {\n throw new Error('Image with src \"' + src + '\" is missing required \"height\" property.');\n } else if (isNaN(heightInt)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"height\" property. Expected a numeric value in pixels but received \"' + height + '\".');\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"loading\" property. Provided \"' + loading + '\" should be one of ' + VALID_LOADING_VALUES.map(String).join(\",\") + \".\");\n }\n if (priority && loading === \"lazy\") {\n throw new Error('Image with src \"' + src + '\" has both \"priority\" and \"loading=\\'lazy\\'\" properties. Only one should be used.');\n }\n if (placeholder !== \"empty\" && placeholder !== \"blur\" && !placeholder.startsWith(\"data:image/\")) {\n throw new Error('Image with src \"' + src + '\" has invalid \"placeholder\" property \"' + placeholder + '\".');\n }\n if (placeholder !== \"empty\") {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.');\n }\n }\n if (placeholder === \"blur\" && !blurDataURL) {\n const VALID_BLUR_EXT = [\n \"jpeg\",\n \"png\",\n \"webp\",\n \"avif\"\n ] // should match next-image-loader\n ;\n throw new Error('Image with src \"' + src + '\" has \"placeholder=\\'blur\\'\" property but is missing the \"blurDataURL\" property.\\n Possible solutions:\\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\\n - Change the \"src\" property to a static import with one of the supported file types: ' + VALID_BLUR_EXT.join(\",\") + ' (animated images not supported)\\n - Remove the \"placeholder\" property, effectively no blur effect\\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url');\n }\n if (\"ref\" in rest) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.');\n }\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75\n });\n let url;\n try {\n url = new URL(urlStr);\n } catch (err) {}\n if (urlStr === src || url && url.pathname === src && !url.search) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width\");\n }\n }\n if (onLoadingComplete) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.');\n }\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot\n })){\n if (legacyValue) {\n (0,_utils_warn_once__WEBPACK_IMPORTED_MODULE_0__.warnOnce)('Image with src \"' + src + '\" has legacy prop \"' + legacyKey + '\". Did you forget to run the codemod?' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13\");\n }\n }\n if (false) {}\n }\n const imgStyle = Object.assign(fill ? {\n position: \"absolute\",\n height: \"100%\",\n width: \"100%\",\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition\n } : {}, showAltText ? {} : {\n color: \"transparent\"\n }, style);\n const backgroundImage = !blurComplete && placeholder !== \"empty\" ? placeholder === \"blur\" ? 'url(\"data:image/svg+xml;charset=utf-8,' + (0,_image_blur_svg__WEBPACK_IMPORTED_MODULE_1__.getImageBlurSvg)({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || \"\",\n objectFit: imgStyle.objectFit\n }) + '\")' : 'url(\"' + placeholder + '\")' // assume `data:image/`\n : null;\n let placeholderStyle = backgroundImage ? {\n backgroundSize: imgStyle.objectFit || \"cover\",\n backgroundPosition: imgStyle.objectPosition || \"50% 50%\",\n backgroundRepeat: \"no-repeat\",\n backgroundImage\n } : {};\n if (true) {\n if (placeholderStyle.backgroundImage && placeholder === \"blur\" && (blurDataURL == null ? void 0 : blurDataURL.startsWith(\"/\"))) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = 'url(\"' + blurDataURL + '\")';\n }\n }\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader\n });\n if (true) {\n if (false) {}\n }\n const props = {\n ...rest,\n loading: isLazy ? \"lazy\" : loading,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding: \"async\",\n className,\n style: {\n ...imgStyle,\n ...placeholderStyle\n },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: imgAttributes.src\n };\n const meta = {\n unoptimized,\n priority,\n placeholder,\n fill\n };\n return {\n props,\n meta\n };\n} //# sourceMappingURL=get-img-props.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9nZXQtaW1nLXByb3BzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBNkM7QUFDTTtBQUNDO0FBQ3BELE1BQU1HLHVCQUF1QjtJQUN6QjtJQUNBO0lBQ0FDO0NBQ0g7QUFDRCxTQUFTQyxnQkFBZ0JDLEdBQUc7SUFDeEIsT0FBT0EsSUFBSUMsT0FBTyxLQUFLSDtBQUMzQjtBQUNBLFNBQVNJLGtCQUFrQkYsR0FBRztJQUMxQixPQUFPQSxJQUFJQSxHQUFHLEtBQUtGO0FBQ3ZCO0FBQ0EsU0FBU0ssZUFBZUgsR0FBRztJQUN2QixPQUFPLE9BQU9BLFFBQVEsWUFBYUQsQ0FBQUEsZ0JBQWdCQyxRQUFRRSxrQkFBa0JGLElBQUc7QUFDcEY7QUFDQSxNQUFNSSxVQUFVLElBQUlDO0FBQ3BCLElBQUlDO0FBQ0osU0FBU0MsT0FBT0MsQ0FBQztJQUNiLElBQUksT0FBT0EsTUFBTSxhQUFhO1FBQzFCLE9BQU9BO0lBQ1g7SUFDQSxJQUFJLE9BQU9BLE1BQU0sVUFBVTtRQUN2QixPQUFPQyxPQUFPQyxRQUFRLENBQUNGLEtBQUtBLElBQUlHO0lBQ3BDO0lBQ0EsSUFBSSxPQUFPSCxNQUFNLFlBQVksV0FBV0ksSUFBSSxDQUFDSixJQUFJO1FBQzdDLE9BQU9LLFNBQVNMLEdBQUc7SUFDdkI7SUFDQSxPQUFPRztBQUNYO0FBQ0EsU0FBU0csVUFBVUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLEtBQUs7SUFDbEMsSUFBSSxFQUFFQyxXQUFXLEVBQUVDLFFBQVEsRUFBRSxHQUFHSjtJQUNoQyxJQUFJRSxPQUFPO1FBQ1AseURBQXlEO1FBQ3pELE1BQU1HLGtCQUFrQjtRQUN4QixNQUFNQyxlQUFlLEVBQUU7UUFDdkIsSUFBSSxJQUFJQyxPQUFPQSxRQUFRRixnQkFBZ0JHLElBQUksQ0FBQ04sUUFBUUssTUFBTTtZQUN0REQsYUFBYUcsSUFBSSxDQUFDWCxTQUFTUyxLQUFLLENBQUMsRUFBRTtR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QU15RixnQkFBZ0I3RyxpQkFBaUI7UUFDbkNDO1FBQ0F2QztRQUNBd0M7UUFDQXhCLE9BQU95RTtRQUNQaEQsU0FBUzZEO1FBQ1RyRjtRQUNBeUI7SUFDSjtJQUNBLElBQUk2RCxJQUFxQyxFQUFFO1FBQ3ZDLElBQUksS0FBNkIsRUFBRSxFQVlsQztJQUNMO0lBQ0EsTUFBTWtELFFBQVE7UUFDVixHQUFHeEYsSUFBSTtRQUNQZixTQUFTZ0QsU0FBUyxTQUFTaEQ7UUFDM0JTO1FBQ0EzQyxPQUFPeUU7UUFDUHJDLFFBQVFzQztRQUNSZ0UsVUFBVTtRQUNWdkc7UUFDQUcsT0FBTztZQUNILEdBQUdpRixRQUFRO1lBQ1gsR0FBR1EsZ0JBQWdCO1FBQ3ZCO1FBQ0E5SCxPQUFPa0ksY0FBY2xJLEtBQUs7UUFDMUIwQixRQUFRd0csY0FBY3hHLE1BQU07UUFDNUIzQyxLQUFLbUosY0FBY25KLEdBQUc7SUFDMUI7SUFDQSxNQUFNMkosT0FBTztRQUNUbkg7UUFDQVM7UUFDQVE7UUFDQUo7SUFDSjtJQUNBLE9BQU87UUFDSG9HO1FBQ0FFO0lBQ0o7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9nZXQtaW1nLXByb3BzLmpzP2Q4ZTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tIFwiLi91dGlscy93YXJuLW9uY2VcIjtcbmltcG9ydCB7IGdldEltYWdlQmx1clN2ZyB9IGZyb20gXCIuL2ltYWdlLWJsdXItc3ZnXCI7XG5pbXBvcnQgeyBpbWFnZUNvbmZpZ0RlZmF1bHQgfSBmcm9tIFwiLi9pbWFnZS1jb25maWdcIjtcbmNvbnN0IFZBTElEX0xPQURJTkdfVkFMVUVTID0gW1xuICAgIFwibGF6eVwiLFxuICAgIFwiZWFnZXJcIixcbiAgICB1bmRlZmluZWRcbl07XG5mdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUoc3JjKSB7XG4gICAgcmV0dXJuIHNyYy5kZWZhdWx0ICE9PSB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBpc1N0YXRpY0ltYWdlRGF0YShzcmMpIHtcbiAgICByZXR1cm4gc3JjLnNyYyAhPT0gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gaXNTdGF0aWNJbXBvcnQoc3JjKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBzcmMgPT09IFwib2JqZWN0XCIgJiYgKGlzU3RhdGljUmVxdWlyZShzcmMpIHx8IGlzU3RhdGljSW1hZ2VEYXRhKHNyYykpO1xufVxuY29uc3QgYWxsSW1ncyA9IG5ldyBNYXAoKTtcbmxldCBwZXJmT2JzZXJ2ZXI7XG5mdW5jdGlvbiBnZXRJbnQoeCkge1xuICAgIGlmICh0eXBlb2YgeCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4geDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUoeCkgPyB4IDogTmFOO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIgJiYgL15bMC05XSskLy50ZXN0KHgpKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCh4LCAxMCk7XG4gICAgfVxuICAgIHJldHVybiBOYU47XG59XG5mdW5jdGlvbiBnZXRXaWR0aHMocGFyYW0sIHdpZHRoLCBzaXplcykge1xuICAgIGxldCB7IGRldmljZVNpemVzLCBhbGxTaXplcyB9ID0gcGFyYW07XG4gICAgaWYgKHNpemVzKSB7XG4gICAgICAgIC8vIEZpbmQgYWxsIHRoZSBcInZ3XCIgcGVyY2VudCBzaXplcyB1c2VkIGluIHRoZSBzaXplcyBwcm9wXG4gICAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGhSZSA9IC8oXnxcXHMpKDE/XFxkP1xcZCl2dy9nO1xuICAgICAgICBjb25zdCBwZXJjZW50U2l6ZXMgPSBbXTtcbiAgICAgICAgZm9yKGxldCBtYXRjaDsgbWF0Y2ggPSB2aWV3cG9ydFdpZHRoUmUuZXhlYyhzaXplcyk7IG1hdGNoKXtcbiAgICAgICAgICAgIHBlcmNlbnRTaXplcy5wdXNoKHBhcnNlSW50KG1hdGNoWzJdKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcmNlbnRTaXplcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHNtYWxsZXN0UmF0aW8gPSBNYXRoLm1pbiguLi5wZXJjZW50U2l6ZXMpICogMC4wMTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgd2lkdGhzOiBhbGxTaXplcy5maWx0ZXIoKHMpPT5zID49IGRldmljZVNpemVzWzBdICogc21hbGxlc3RSYXRpbyksXG4gICAgICAgICAgICAgICAga2luZDogXCJ3XCJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdpZHRoczogYWxsU2l6ZXMsXG4gICAgICAgICAgICBraW5kOiBcIndcIlxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpZHRoICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3aWR0aHM6IGRldmljZVNpemVzLFxuICAgICAgICAgICAga2luZDogXCJ3XCJcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgd2lkdGhzID0gW1xuICAgICAgICAuLi5uZXcgU2V0KC8vID4gVGhpcyBtZWFucyB0aGF0IG1vc3QgT0xFRCBzY3JlZW5zIHRoYXQgc2F5IHRoZXkgYXJlIDN4IHJlc29sdXRpb24sXG4gICAgICAgIC8vID4gYXJlIGFjdHVhbGx5IDN4IGluIHRoZSBncmVlbiBjb2xvciwgYnV0IG9ubHkgMS41eCBpbiB0aGUgcmVkIGFuZFxuICAgICAgICAvLyA+IGJsdWUgY29sb3JzLiBTaG93aW5nIGEgM3ggcmVzb2x1dGlvbiBpbWFnZSBpbiB0aGUgYXBwIHZzIGEgMnhcbiAgICAgICAgLy8gPiByZXNvbHV0aW9uIGltYWdlIHdpbGwgYmUgdmlzdWFsbHkgdGhlIHNhbWUsIHRob3VnaCB0aGUgM3ggaW1hZ2VcbiAgICAgICAgLy8gPiB0YWtlcyBzaWduaWZpY2FudGx5IG1vcmUgZGF0YS4gRXZlbiB0cnVlIDN4IHJlc29sdXRpb24gc2NyZWVucyBhcmVcbiAgICAgICAgLy8gPiB3YXN0ZWZ1bCBhcyB0aGUgaHVtYW4gZXllIGNhbm5vdCBzZWUgdGhhdCBsZXZlbCBvZiBkZXRhaWwgd2l0aG91dFxuICAgICAgICAvLyA+IHNvbWV0aGluZyBsaWtlIGEgbWFnbmlmeWluZyBnbGFzcy5cbiAgICAgICAgLy8gaHR0cHM6Ly9ibG9nLnR3aXR0ZXIuY29tL2VuZ2luZWVyaW5nL2VuX3VzL3RvcGljcy9pbmZyYXN0cnVjdHVyZS8yMDE5L2NhcHBpbmctaW1hZ2UtZmlkZWxpdHktb24tdWx0cmEtaGlnaC1yZXNvbHV0aW9uLWRldmljZXMuaHRtbFxuICAgICAgICBbXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIHdpZHRoICogMiAvKiwgd2lkdGggKiAzKi8gXG4gICAgICAgIF0ubWFwKCh3KT0+YWxsU2l6ZXMuZmluZCgocCk9PnAgPj0gdykgfHwgYWxsU2l6ZXNbYWxsU2l6ZXMubGVuZ3RoIC0gMV0pKVxuICAgIF07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGhzLFxuICAgICAgICBraW5kOiBcInhcIlxuICAgIH07XG59XG5mdW5jdGlvbiBnZW5lcmF0ZUltZ0F0dHJzKHBhcmFtKSB7XG4gICAgbGV0IHsgY29uZmlnLCBzcmMsIHVub3B0aW1pemVkLCB3aWR0aCwgcXVhbGl0eSwgc2l6ZXMsIGxvYWRlciB9ID0gcGFyYW07XG4gICAgaWYgKHVub3B0aW1pemVkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICBzcmNTZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHNpemVzOiB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgeyB3aWR0aHMsIGtpbmQgfSA9IGdldFdpZHRocyhjb25maWcsIHdpZHRoLCBzaXplcyk7XG4gICAgY29uc3QgbGFzdCA9IHdpZHRocy5sZW5ndGggLSAxO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNpemVzOiAhc2l6ZXMgJiYga2luZCA9PT0gXCJ3XCIgPyBcIjEwMHZ3XCIgOiBzaXplcyxcbiAgICAgICAgc3JjU2V0OiB3aWR0aHMubWFwKCh3LCBpKT0+bG9hZGVyKHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHF1YWxpdHksXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdcbiAgICAgICAgICAgIH0pICsgXCIgXCIgKyAoa2luZCA9PT0gXCJ3XCIgPyB3IDogaSArIDEpICsga2luZCkuam9pbihcIiwgXCIpLFxuICAgICAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYHNyY2AgdGhlIGxhc3QgYXR0cmlidXRlIGJlY2F1c2UgUmVhY3QgdXBkYXRlc1xuICAgICAgICAvLyBhdHRyaWJ1dGVzIGluIG9yZGVyLiBJZiB3ZSBrZWVwIGBzcmNgIHRoZSBmaXJzdCBvbmUsIFNhZmFyaSB3aWxsXG4gICAgICAgIC8vIGltbWVkaWF0ZWx5IHN0YXJ0IHRvIGZldGNoIGBzcmNgLCBiZWZvcmUgYHNpemVzYCBhbmQgYHNyY1NldGAgYXJlIGV2ZW5cbiAgICAgICAgLy8gdXBkYXRlZCBieSBSZWFjdC4gVGhhdCBjYXVzZXMgbXVsdGlwbGUgdW5uZWNlc3NhcnkgcmVxdWVzdHMgaWYgYHNyY1NldGBcbiAgICAgICAgLy8gYW5kIGBzaXplc2AgYXJlIGRlZmluZWQuXG4gICAgICAgIC8vIFRoaXMgYnVnIGNhbm5vdCBiZSByZXByb2R1Y2VkIGluIENocm9tZSBvciBGaXJlZm94LlxuICAgICAgICBzcmM6IGxvYWRlcih7XG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICBxdWFsaXR5LFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoc1tsYXN0XVxuICAgICAgICB9KVxuICAgIH07XG59XG4vKipcbiAqIEEgc2hhcmVkIGZ1bmN0aW9uLCB1c2VkIG9uIGJvdGggY2xpZW50IGFuZCBzZXJ2ZXIsIHRvIGdlbmVyYXRlIHRoZSBwcm9wcyBmb3IgPGltZz4uXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldEltZ1Byb3BzKHBhcmFtLCBfc3RhdGUpIHtcbiAgICBsZXQgeyBzcmMsIHNpemVzLCB1bm9wdGltaXplZCA9IGZhbHNlLCBwcmlvcml0eSA9IGZhbHNlLCBsb2FkaW5nLCBjbGFzc05hbWUsIHF1YWxpdHksIHdpZHRoLCBoZWlnaHQsIGZpbGwgPSBmYWxzZSwgc3R5bGUsIG9uTG9hZCwgb25Mb2FkaW5nQ29tcGxldGUsIHBsYWNlaG9sZGVyID0gXCJlbXB0eVwiLCBibHVyRGF0YVVSTCwgZmV0Y2hQcmlvcml0eSwgbGF5b3V0LCBvYmplY3RGaXQsIG9iamVjdFBvc2l0aW9uLCBsYXp5Qm91bmRhcnksIGxhenlSb290LCAuLi5yZXN0IH0gPSBwYXJhbTtcbiAgICBjb25zdCB7IGltZ0NvbmYsIHNob3dBbHRUZXh0LCBibHVyQ29tcGxldGUsIGRlZmF1bHRMb2FkZXIgfSA9IF9zdGF0ZTtcbiAgICBsZXQgY29uZmlnO1xuICAgIGxldCBjID0gaW1nQ29uZiB8fCBpbWFnZUNvbmZpZ0RlZmF1bHQ7XG4gICAgaWYgKFwiYWxsU2l6ZXNcIiBpbiBjKSB7XG4gICAgICAgIGNvbmZpZyA9IGM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYWxsU2l6ZXMgPSBbXG4gICAgICAgICAgICAuLi5jLmRldmljZVNpemVzLFxuICAgICAgICAgICAgLi4uYy5pbWFnZVNpemVzXG4gICAgICAgIF0uc29ydCgoYSwgYik9PmEgLSBiKTtcbiAgICAgICAgY29uc3QgZGV2aWNlU2l6ZXMgPSBjLmRldmljZVNpemVzLnNvcnQoKGEsIGIpPT5hIC0gYik7XG4gICAgICAgIGNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICBhbGxTaXplcyxcbiAgICAgICAgICAgIGRldmljZVNpemVzXG4gICAgICAgIH07XG4gICAgfVxuICAgIGxldCBsb2FkZXIgPSByZXN0LmxvYWRlciB8fCBkZWZhdWx0TG9hZGVyO1xuICAgIC8vIFJlbW92ZSBwcm9wZXJ0eSBzbyBpdCdzIG5vdCBzcHJlYWQgb24gPGltZz4gZWxlbWVudFxuICAgIGRlbGV0ZSByZXN0LmxvYWRlcjtcbiAgICBkZWxldGUgcmVzdC5zcmNTZXQ7XG4gICAgLy8gVGhpcyBzcGVjaWFsIHZhbHVlIGluZGljYXRlcyB0aGF0IHRoZSB1c2VyXG4gICAgLy8gZGlkbid0IGRlZmluZSBhIFwibG9hZGVyXCIgcHJvcCBvciBcImxvYWRlclwiIGNvbmZpZy5cbiAgICBjb25zdCBpc0RlZmF1bHRMb2FkZXIgPSBcIl9fbmV4dF9pbWdfZGVmYXVsdFwiIGluIGxvYWRlcjtcbiAgICBpZiAoaXNEZWZhdWx0TG9hZGVyKSB7XG4gICAgICAgIGlmIChjb25maWcubG9hZGVyID09PSBcImN1c3RvbVwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBpcyBtaXNzaW5nIFwibG9hZGVyXCIgcHJvcC4nICsgXCJcXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtbWlzc2luZy1sb2FkZXJcIik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgdXNlciBkZWZpbmVkIGEgXCJsb2FkZXJcIiBwcm9wIG9yIGNvbmZpZy5cbiAgICAgICAgLy8gU2luY2UgdGhlIGNvbmZpZyBvYmplY3QgaXMgaW50ZXJuYWwgb25seSwgd2VcbiAgICAgICAgLy8gbXVzdCBub3QgcGFzcyBpdCB0byB0aGUgdXNlci1kZWZpbmVkIFwibG9hZGVyXCIuXG4gICAgICAgIGNvbnN0IGN1c3RvbUltYWdlTG9hZGVyID0gbG9hZGVyO1xuICAgICAgICBsb2FkZXIgPSAob2JqKT0+e1xuICAgICAgICAgICAgY29uc3QgeyBjb25maWc6IF8sIC4uLm9wdHMgfSA9IG9iajtcbiAgICAgICAgICAgIHJldHVybiBjdXN0b21JbWFnZUxvYWRlcihvcHRzKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGxheW91dCkge1xuICAgICAgICBpZiAobGF5b3V0ID09PSBcImZpbGxcIikge1xuICAgICAgICAgICAgZmlsbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGF5b3V0VG9TdHlsZSA9IHtcbiAgICAgICAgICAgIGludHJpbnNpYzoge1xuICAgICAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGxheW91dFRvU2l6ZXMgPSB7XG4gICAgICAgICAgICByZXNwb25zaXZlOiBcIjEwMHZ3XCIsXG4gICAgICAgICAgICBmaWxsOiBcIjEwMHZ3XCJcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbGF5b3V0U3R5bGUgPSBsYXlvdXRUb1N0eWxlW2xheW91dF07XG4gICAgICAgIGlmIChsYXlvdXRTdHlsZSkge1xuICAgICAgICAgICAgc3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgICAgICAgICAgLi4ubGF5b3V0U3R5bGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGF5b3V0U2l6ZXMgPSBsYXlvdXRUb1NpemVzW2xheW91dF07XG4gICAgICAgIGlmIChsYXlvdXRTaXplcyAmJiAhc2l6ZXMpIHtcbiAgICAgICAgICAgIHNpemVzID0gbGF5b3V0U2l6ZXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IHN0YXRpY1NyYyA9IFwiXCI7XG4gICAgbGV0IHdpZHRoSW50ID0gZ2V0SW50KHdpZHRoKTtcbiAgICBsZXQgaGVpZ2h0SW50ID0gZ2V0SW50KGhlaWdodCk7XG4gICAgbGV0IGJsdXJXaWR0aDtcbiAgICBsZXQgYmx1ckhlaWdodDtcbiAgICBpZiAoaXNTdGF0aWNJbXBvcnQoc3JjKSkge1xuICAgICAgICBjb25zdCBzdGF0aWNJbWFnZURhdGEgPSBpc1N0YXRpY1JlcXVpcmUoc3JjKSA/IHNyYy5kZWZhdWx0IDogc3JjO1xuICAgICAgICBpZiAoIXN0YXRpY0ltYWdlRGF0YS5zcmMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFuIG9iamVjdCBzaG91bGQgb25seSBiZSBwYXNzZWQgdG8gdGhlIGltYWdlIGNvbXBvbmVudCBzcmMgcGFyYW1ldGVyIGlmIGl0IGNvbWVzIGZyb20gYSBzdGF0aWMgaW1hZ2UgaW1wb3J0LiBJdCBtdXN0IGluY2x1ZGUgc3JjLiBSZWNlaXZlZCBcIiArIEpTT04uc3RyaW5naWZ5KHN0YXRpY0ltYWdlRGF0YSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc3RhdGljSW1hZ2VEYXRhLmhlaWdodCB8fCAhc3RhdGljSW1hZ2VEYXRhLndpZHRoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIGhlaWdodCBhbmQgd2lkdGguIFJlY2VpdmVkIFwiICsgSlNPTi5zdHJpbmdpZnkoc3RhdGljSW1hZ2VEYXRhKSk7XG4gICAgICAgIH1cbiAgICAgICAgYmx1cldpZHRoID0gc3RhdGljSW1hZ2VEYXRhLmJsdXJXaWR0aDtcbiAgICAgICAgYmx1ckhlaWdodCA9IHN0YXRpY0ltYWdlRGF0YS5ibHVySGVpZ2h0O1xuICAgICAgICBibHVyRGF0YVVSTCA9IGJsdXJEYXRhVVJMIHx8IHN0YXRpY0ltYWdlRGF0YS5ibHVyRGF0YVVSTDtcbiAgICAgICAgc3RhdGljU3JjID0gc3RhdGljSW1hZ2VEYXRhLnNyYztcbiAgICAgICAgaWYgKCFmaWxsKSB7XG4gICAgICAgICAgICBpZiAoIXdpZHRoSW50ICYmICFoZWlnaHRJbnQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aEludCA9IHN0YXRpY0ltYWdlRGF0YS53aWR0aDtcbiAgICAgICAgICAgICAgICBoZWlnaHRJbnQgPSBzdGF0aWNJbWFnZURhdGEuaGVpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh3aWR0aEludCAmJiAhaGVpZ2h0SW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSB3aWR0aEludCAvIHN0YXRpY0ltYWdlRGF0YS53aWR0aDtcbiAgICAgICAgICAgICAgICBoZWlnaHRJbnQgPSBNYXRoLnJvdW5kKHN0YXRpY0ltYWdlRGF0YS5oZWlnaHQgKiByYXRpbyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF3aWR0aEludCAmJiBoZWlnaHRJbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXRpbyA9IGhlaWdodEludCAvIHN0YXRpY0ltYWdlRGF0YS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgd2lkdGhJbnQgPSBNYXRoLnJvdW5kKHN0YXRpY0ltYWdlRGF0YS53aWR0aCAqIHJhdGlvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBzcmMgPSB0eXBlb2Ygc3JjID09PSBcInN0cmluZ1wiID8gc3JjIDogc3RhdGljU3JjO1xuICAgIGxldCBpc0xhenkgPSAhcHJpb3JpdHkgJiYgKGxvYWRpbmcgPT09IFwibGF6eVwiIHx8IHR5cGVvZiBsb2FkaW5nID09PSBcInVuZGVmaW5lZFwiKTtcbiAgICBpZiAoIXNyYyB8fCBzcmMuc3RhcnRzV2l0aChcImRhdGE6XCIpIHx8IHNyYy5zdGFydHNXaXRoKFwiYmxvYjpcIikpIHtcbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9EYXRhX1VSSXNcbiAgICAgICAgdW5vcHRpbWl6ZWQgPSB0cnVlO1xuICAgICAgICBpc0xhenkgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy51bm9wdGltaXplZCkge1xuICAgICAgICB1bm9wdGltaXplZCA9IHRydWU7XG4gICAgfVxuICAgIGlmIChpc0RlZmF1bHRMb2FkZXIgJiYgc3JjLmVuZHNXaXRoKFwiLnN2Z1wiKSAmJiAhY29uZmlnLmRhbmdlcm91c2x5QWxsb3dTVkcpIHtcbiAgICAgICAgLy8gU3BlY2lhbCBjYXNlIHRvIG1ha2Ugc3ZnIHNlcnZlIGFzLWlzIHRvIGF2b2lkIHByb3h5aW5nXG4gICAgICAgIC8vIHRocm91Z2ggdGhlIGJ1aWx0LWluIEltYWdlIE9wdGltaXphdGlvbiBBUEkuXG4gICAgICAgIHVub3B0aW1pemVkID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHByaW9yaXR5KSB7XG4gICAgICAgIGZldGNoUHJpb3JpdHkgPSBcImhpZ2hcIjtcbiAgICB9XG4gICAgY29uc3QgcXVhbGl0eUludCA9IGdldEludChxdWFsaXR5KTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGlmIChjb25maWcub3V0cHV0ID09PSBcImV4cG9ydFwiICYmIGlzRGVmYXVsdExvYWRlciAmJiAhdW5vcHRpbWl6ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkltYWdlIE9wdGltaXphdGlvbiB1c2luZyB0aGUgZGVmYXVsdCBsb2FkZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBgeyBvdXRwdXQ6ICdleHBvcnQnIH1gLlxcbiAgUG9zc2libGUgc29sdXRpb25zOlxcbiAgICAtIFJlbW92ZSBgeyBvdXRwdXQ6ICdleHBvcnQnIH1gIGFuZCBydW4gXFxcIm5leHQgc3RhcnRcXFwiIHRvIHJ1biBzZXJ2ZXIgbW9kZSBpbmNsdWRpbmcgdGhlIEltYWdlIE9wdGltaXphdGlvbiBBUEkuXFxuICAgIC0gQ29uZmlndXJlIGB7IGltYWdlczogeyB1bm9wdGltaXplZDogdHJ1ZSB9IH1gIGluIGBuZXh0LmNvbmZpZy5qc2AgdG8gZGlzYWJsZSB0aGUgSW1hZ2UgT3B0aW1pemF0aW9uIEFQSS5cXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZXhwb3J0LWltYWdlLWFwaVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNyYykge1xuICAgICAgICAgICAgLy8gUmVhY3QgZG9lc24ndCBzaG93IHRoZSBzdGFjayB0cmFjZSBhbmQgdGhlcmUnc1xuICAgICAgICAgICAgLy8gbm8gYHNyY2AgdG8gaGVscCBpZGVudGlmeSB3aGljaCBpbWFnZSwgc28gd2VcbiAgICAgICAgICAgIC8vIGluc3RlYWQgY29uc29sZS5lcnJvcihyZWYpIGR1cmluZyBtb3VudC5cbiAgICAgICAgICAgIHVub3B0aW1pemVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmaWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBib3RoIFwid2lkdGhcIiBhbmQgXCJmaWxsXCIgcHJvcGVydGllcy4gT25seSBvbmUgc2hvdWxkIGJlIHVzZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChoZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBzcmMgKyAnXCIgaGFzIGJvdGggXCJoZWlnaHRcIiBhbmQgXCJmaWxsXCIgcHJvcGVydGllcy4gT25seSBvbmUgc2hvdWxkIGJlIHVzZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoc3R5bGUgPT0gbnVsbCA/IHZvaWQgMCA6IHN0eWxlLnBvc2l0aW9uKSAmJiBzdHlsZS5wb3NpdGlvbiAhPT0gXCJhYnNvbHV0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBib3RoIFwiZmlsbFwiIGFuZCBcInN0eWxlLnBvc2l0aW9uXCIgcHJvcGVydGllcy4gSW1hZ2VzIHdpdGggXCJmaWxsXCIgYWx3YXlzIHVzZSBwb3NpdGlvbiBhYnNvbHV0ZSAtIGl0IGNhbm5vdCBiZSBtb2RpZmllZC4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChzdHlsZSA9PSBudWxsID8gdm9pZCAwIDogc3R5bGUud2lkdGgpICYmIHN0eWxlLndpZHRoICE9PSBcIjEwMCVcIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgYm90aCBcImZpbGxcIiBhbmQgXCJzdHlsZS53aWR0aFwiIHByb3BlcnRpZXMuIEltYWdlcyB3aXRoIFwiZmlsbFwiIGFsd2F5cyB1c2Ugd2lkdGggMTAwJSAtIGl0IGNhbm5vdCBiZSBtb2RpZmllZC4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChzdHlsZSA9PSBudWxsID8gdm9pZCAwIDogc3R5bGUuaGVpZ2h0KSAmJiBzdHlsZS5oZWlnaHQgIT09IFwiMTAwJVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBib3RoIFwiZmlsbFwiIGFuZCBcInN0eWxlLmhlaWdodFwiIHByb3BlcnRpZXMuIEltYWdlcyB3aXRoIFwiZmlsbFwiIGFsd2F5cyB1c2UgaGVpZ2h0IDEwMCUgLSBpdCBjYW5ub3QgYmUgbW9kaWZpZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpZHRoSW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJ3aWR0aFwiIHByb3BlcnR5LicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOYU4od2lkdGhJbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBpbnZhbGlkIFwid2lkdGhcIiBwcm9wZXJ0eS4gRXhwZWN0ZWQgYSBudW1lcmljIHZhbHVlIGluIHBpeGVscyBidXQgcmVjZWl2ZWQgXCInICsgd2lkdGggKyAnXCIuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaGVpZ2h0SW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJoZWlnaHRcIiBwcm9wZXJ0eS4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTmFOKGhlaWdodEludCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBzcmMgKyAnXCIgaGFzIGludmFsaWQgXCJoZWlnaHRcIiBwcm9wZXJ0eS4gRXhwZWN0ZWQgYSBudW1lcmljIHZhbHVlIGluIHBpeGVscyBidXQgcmVjZWl2ZWQgXCInICsgaGVpZ2h0ICsgJ1wiLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIVZBTElEX0xPQURJTkdfVkFMVUVTLmluY2x1ZGVzKGxvYWRpbmcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgaW52YWxpZCBcImxvYWRpbmdcIiBwcm9wZXJ0eS4gUHJvdmlkZWQgXCInICsgbG9hZGluZyArICdcIiBzaG91bGQgYmUgb25lIG9mICcgKyBWQUxJRF9MT0FESU5HX1ZBTFVFUy5tYXAoU3RyaW5nKS5qb2luKFwiLFwiKSArIFwiLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJpb3JpdHkgJiYgbG9hZGluZyA9PT0gXCJsYXp5XCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2Ugd2l0aCBzcmMgXCInICsgc3JjICsgJ1wiIGhhcyBib3RoIFwicHJpb3JpdHlcIiBhbmQgXCJsb2FkaW5nPVxcJ2xhenlcXCdcIiBwcm9wZXJ0aWVzLiBPbmx5IG9uZSBzaG91bGQgYmUgdXNlZC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGxhY2Vob2xkZXIgIT09IFwiZW1wdHlcIiAmJiBwbGFjZWhvbGRlciAhPT0gXCJibHVyXCIgJiYgIXBsYWNlaG9sZGVyLnN0YXJ0c1dpdGgoXCJkYXRhOmltYWdlL1wiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBzcmMgKyAnXCIgaGFzIGludmFsaWQgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5IFwiJyArIHBsYWNlaG9sZGVyICsgJ1wiLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwbGFjZWhvbGRlciAhPT0gXCJlbXB0eVwiKSB7XG4gICAgICAgICAgICBpZiAod2lkdGhJbnQgJiYgaGVpZ2h0SW50ICYmIHdpZHRoSW50ICogaGVpZ2h0SW50IDwgMTYwMCkge1xuICAgICAgICAgICAgICAgIHdhcm5PbmNlKCdJbWFnZSB3aXRoIHNyYyBcIicgKyBzcmMgKyAnXCIgaXMgc21hbGxlciB0aGFuIDQweDQwLiBDb25zaWRlciByZW1vdmluZyB0aGUgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlaG9sZGVyID09PSBcImJsdXJcIiAmJiAhYmx1ckRhdGFVUkwpIHtcbiAgICAgICAgICAgIGNvbnN0IFZBTElEX0JMVVJfRVhUID0gW1xuICAgICAgICAgICAgICAgIFwianBlZ1wiLFxuICAgICAgICAgICAgICAgIFwicG5nXCIsXG4gICAgICAgICAgICAgICAgXCJ3ZWJwXCIsXG4gICAgICAgICAgICAgICAgXCJhdmlmXCJcbiAgICAgICAgICAgIF0gLy8gc2hvdWxkIG1hdGNoIG5leHQtaW1hZ2UtbG9hZGVyXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgXCJwbGFjZWhvbGRlcj1cXCdibHVyXFwnXCIgcHJvcGVydHkgYnV0IGlzIG1pc3NpbmcgdGhlIFwiYmx1ckRhdGFVUkxcIiBwcm9wZXJ0eS5cXG4gICAgICAgIFBvc3NpYmxlIHNvbHV0aW9uczpcXG4gICAgICAgICAgLSBBZGQgYSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHksIHRoZSBjb250ZW50cyBzaG91bGQgYmUgYSBzbWFsbCBEYXRhIFVSTCB0byByZXByZXNlbnQgdGhlIGltYWdlXFxuICAgICAgICAgIC0gQ2hhbmdlIHRoZSBcInNyY1wiIHByb3BlcnR5IHRvIGEgc3RhdGljIGltcG9ydCB3aXRoIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGZpbGUgdHlwZXM6ICcgKyBWQUxJRF9CTFVSX0VYVC5qb2luKFwiLFwiKSArICcgKGFuaW1hdGVkIGltYWdlcyBub3Qgc3VwcG9ydGVkKVxcbiAgICAgICAgICAtIFJlbW92ZSB0aGUgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5LCBlZmZlY3RpdmVseSBubyBibHVyIGVmZmVjdFxcbiAgICAgICAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wbGFjZWhvbGRlci1ibHVyLWRhdGEtdXJsJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwicmVmXCIgaW4gcmVzdCkge1xuICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBpcyB1c2luZyB1bnN1cHBvcnRlZCBcInJlZlwiIHByb3BlcnR5LiBDb25zaWRlciB1c2luZyB0aGUgXCJvbkxvYWRcIiBwcm9wZXJ0eSBpbnN0ZWFkLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdW5vcHRpbWl6ZWQgJiYgIWlzRGVmYXVsdExvYWRlcikge1xuICAgICAgICAgICAgY29uc3QgdXJsU3RyID0gbG9hZGVyKHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aEludCB8fCA0MDAsXG4gICAgICAgICAgICAgICAgcXVhbGl0eTogcXVhbGl0eUludCB8fCA3NVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgdXJsO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHVybFN0cik7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHt9XG4gICAgICAgICAgICBpZiAodXJsU3RyID09PSBzcmMgfHwgdXJsICYmIHVybC5wYXRobmFtZSA9PT0gc3JjICYmICF1cmwuc2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgYSBcImxvYWRlclwiIHByb3BlcnR5IHRoYXQgZG9lcyBub3QgaW1wbGVtZW50IHdpZHRoLiBQbGVhc2UgaW1wbGVtZW50IGl0IG9yIHVzZSB0aGUgXCJ1bm9wdGltaXplZFwiIHByb3BlcnR5IGluc3RlYWQuJyArIFwiXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWltYWdlLW1pc3NpbmctbG9hZGVyLXdpZHRoXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChvbkxvYWRpbmdDb21wbGV0ZSkge1xuICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBpcyB1c2luZyBkZXByZWNhdGVkIFwib25Mb2FkaW5nQ29tcGxldGVcIiBwcm9wZXJ0eS4gUGxlYXNlIHVzZSB0aGUgXCJvbkxvYWRcIiBwcm9wZXJ0eSBpbnN0ZWFkLicpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2xlZ2FjeUtleSwgbGVnYWN5VmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHtcbiAgICAgICAgICAgIGxheW91dCxcbiAgICAgICAgICAgIG9iamVjdEZpdCxcbiAgICAgICAgICAgIG9iamVjdFBvc2l0aW9uLFxuICAgICAgICAgICAgbGF6eUJvdW5kYXJ5LFxuICAgICAgICAgICAgbGF6eVJvb3RcbiAgICAgICAgfSkpe1xuICAgICAgICAgICAgaWYgKGxlZ2FjeVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgd2Fybk9uY2UoJ0ltYWdlIHdpdGggc3JjIFwiJyArIHNyYyArICdcIiBoYXMgbGVnYWN5IHByb3AgXCInICsgbGVnYWN5S2V5ICsgJ1wiLiBEaWQgeW91IGZvcmdldCB0byBydW4gdGhlIGNvZGVtb2Q/JyArIFwiXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWltYWdlLXVwZ3JhZGUtdG8tMTNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgIXBlcmZPYnNlcnZlciAmJiB3aW5kb3cuUGVyZm9ybWFuY2VPYnNlcnZlcikge1xuICAgICAgICAgICAgcGVyZk9ic2VydmVyID0gbmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGVudHJ5TGlzdCk9PntcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJ5TGlzdC5nZXRFbnRyaWVzKCkpe1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2VudHJ5X2VsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLSBtaXNzaW5nIFwiTGFyZ2VzdENvbnRlbnRmdWxQYWludFwiIGNsYXNzIHdpdGggXCJlbGVtZW50XCIgcHJvcFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWdTcmMgPSAoZW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IChfZW50cnlfZWxlbWVudCA9IGVudHJ5LmVsZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZW50cnlfZWxlbWVudC5zcmMpIHx8IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxjcEltYWdlID0gYWxsSW1ncy5nZXQoaW1nU3JjKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxjcEltYWdlICYmICFsY3BJbWFnZS5wcmlvcml0eSAmJiBsY3BJbWFnZS5wbGFjZWhvbGRlciA9PT0gXCJlbXB0eVwiICYmICFsY3BJbWFnZS5zcmMuc3RhcnRzV2l0aChcImRhdGE6XCIpICYmICFsY3BJbWFnZS5zcmMuc3RhcnRzV2l0aChcImJsb2I6XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL3dlYi5kZXYvbGNwLyNtZWFzdXJlLWxjcC1pbi1qYXZhc2NyaXB0XG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuT25jZSgnSW1hZ2Ugd2l0aCBzcmMgXCInICsgbGNwSW1hZ2Uuc3JjICsgJ1wiIHdhcyBkZXRlY3RlZCBhcyB0aGUgTGFyZ2VzdCBDb250ZW50ZnVsIFBhaW50IChMQ1ApLiBQbGVhc2UgYWRkIHRoZSBcInByaW9yaXR5XCIgcHJvcGVydHkgaWYgdGhpcyBpbWFnZSBpcyBhYm92ZSB0aGUgZm9sZC4nICsgXCJcXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNwcmlvcml0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwZXJmT2JzZXJ2ZXIub2JzZXJ2ZSh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50XCIsXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcmVkOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBMb2cgZXJyb3IgYnV0IGRvbid0IGNyYXNoIHRoZSBhcHBcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaW1nU3R5bGUgPSBPYmplY3QuYXNzaWduKGZpbGwgPyB7XG4gICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICByaWdodDogMCxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICBvYmplY3RGaXQsXG4gICAgICAgIG9iamVjdFBvc2l0aW9uXG4gICAgfSA6IHt9LCBzaG93QWx0VGV4dCA/IHt9IDoge1xuICAgICAgICBjb2xvcjogXCJ0cmFuc3BhcmVudFwiXG4gICAgfSwgc3R5bGUpO1xuICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZSA9ICFibHVyQ29tcGxldGUgJiYgcGxhY2Vob2xkZXIgIT09IFwiZW1wdHlcIiA/IHBsYWNlaG9sZGVyID09PSBcImJsdXJcIiA/ICd1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwnICsgZ2V0SW1hZ2VCbHVyU3ZnKHtcbiAgICAgICAgd2lkdGhJbnQsXG4gICAgICAgIGhlaWdodEludCxcbiAgICAgICAgYmx1cldpZHRoLFxuICAgICAgICBibHVySGVpZ2h0LFxuICAgICAgICBibHVyRGF0YVVSTDogYmx1ckRhdGFVUkwgfHwgXCJcIixcbiAgICAgICAgb2JqZWN0Rml0OiBpbWdTdHlsZS5vYmplY3RGaXRcbiAgICB9KSArICdcIiknIDogJ3VybChcIicgKyBwbGFjZWhvbGRlciArICdcIiknIC8vIGFzc3VtZSBgZGF0YTppbWFnZS9gXG4gICAgIDogbnVsbDtcbiAgICBsZXQgcGxhY2Vob2xkZXJTdHlsZSA9IGJhY2tncm91bmRJbWFnZSA/IHtcbiAgICAgICAgYmFja2dyb3VuZFNpemU6IGltZ1N0eWxlLm9iamVjdEZpdCB8fCBcImNvdmVyXCIsXG4gICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogaW1nU3R5bGUub2JqZWN0UG9zaXRpb24gfHwgXCI1MCUgNTAlXCIsXG4gICAgICAgIGJhY2tncm91bmRSZXBlYXQ6IFwibm8tcmVwZWF0XCIsXG4gICAgICAgIGJhY2tncm91bmRJbWFnZVxuICAgIH0gOiB7fTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICBpZiAocGxhY2Vob2xkZXJTdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgJiYgcGxhY2Vob2xkZXIgPT09IFwiYmx1clwiICYmIChibHVyRGF0YVVSTCA9PSBudWxsID8gdm9pZCAwIDogYmx1ckRhdGFVUkwuc3RhcnRzV2l0aChcIi9cIikpKSB7XG4gICAgICAgICAgICAvLyBEdXJpbmcgYG5leHQgZGV2YCwgd2UgZG9uJ3Qgd2FudCB0byBnZW5lcmF0ZSBibHVyIHBsYWNlaG9sZGVycyB3aXRoIHdlYnBhY2tcbiAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQgY2FuIGRlbGF5IHN0YXJ0aW5nIHRoZSBkZXYgc2VydmVyLiBJbnN0ZWFkLCBgbmV4dC1pbWFnZS1sb2FkZXIuanNgXG4gICAgICAgICAgICAvLyB3aWxsIGlubGluZSBhIHNwZWNpYWwgdXJsIHRvIGxhemlseSBnZW5lcmF0ZSB0aGUgYmx1ciBwbGFjZWhvbGRlciBhdCByZXF1ZXN0IHRpbWUuXG4gICAgICAgICAgICBwbGFjZWhvbGRlclN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICd1cmwoXCInICsgYmx1ckRhdGFVUkwgKyAnXCIpJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBpbWdBdHRyaWJ1dGVzID0gZ2VuZXJhdGVJbWdBdHRycyh7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgc3JjLFxuICAgICAgICB1bm9wdGltaXplZCxcbiAgICAgICAgd2lkdGg6IHdpZHRoSW50LFxuICAgICAgICBxdWFsaXR5OiBxdWFsaXR5SW50LFxuICAgICAgICBzaXplcyxcbiAgICAgICAgbG9hZGVyXG4gICAgfSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgbGV0IGZ1bGxVcmw7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZ1bGxVcmwgPSBuZXcgVVJMKGltZ0F0dHJpYnV0ZXMuc3JjKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBmdWxsVXJsID0gbmV3IFVSTChpbWdBdHRyaWJ1dGVzLnNyYywgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWxsSW1ncy5zZXQoZnVsbFVybC5ocmVmLCB7XG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHByaW9yaXR5LFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgbG9hZGluZzogaXNMYXp5ID8gXCJsYXp5XCIgOiBsb2FkaW5nLFxuICAgICAgICBmZXRjaFByaW9yaXR5LFxuICAgICAgICB3aWR0aDogd2lkdGhJbnQsXG4gICAgICAgIGhlaWdodDogaGVpZ2h0SW50LFxuICAgICAgICBkZWNvZGluZzogXCJhc3luY1wiLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAuLi5pbWdTdHlsZSxcbiAgICAgICAgICAgIC4uLnBsYWNlaG9sZGVyU3R5bGVcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZXM6IGltZ0F0dHJpYnV0ZXMuc2l6ZXMsXG4gICAgICAgIHNyY1NldDogaW1nQXR0cmlidXRlcy5zcmNTZXQsXG4gICAgICAgIHNyYzogaW1nQXR0cmlidXRlcy5zcmNcbiAgICB9O1xuICAgIGNvbnN0IG1ldGEgPSB7XG4gICAgICAgIHVub3B0aW1pemVkLFxuICAgICAgICBwcmlvcml0eSxcbiAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgIGZpbGxcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3BzLFxuICAgICAgICBtZXRhXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWltZy1wcm9wcy5qcy5tYXAiXSwibmFtZXMiOlsid2Fybk9uY2UiLCJnZXRJbWFnZUJsdXJTdmciLCJpbWFnZUNvbmZpZ0RlZmF1bHQiLCJWQUxJRF9MT0FESU5HX1ZBTFVFUyIsInVuZGVmaW5lZCIsImlzU3RhdGljUmVxdWlyZSIsInNyYyIsImRlZmF1bHQiLCJpc1N0YXRpY0ltYWdlRGF0YSIsImlzU3RhdGljSW1wb3J0IiwiYWxsSW1ncyIsIk1hcCIsInBlcmZPYnNlcnZlciIsImdldEludCIsIngiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIk5hTiIsInRlc3QiLCJwYXJzZUludCIsImdldFdpZHRocyIsInBhcmFtIiwid2lkdGgiLCJzaXplcyIsImRldmljZVNpemVzIiwiYWxsU2l6ZXMiLCJ2aWV3cG9ydFdpZHRoUmUiLCJwZXJjZW50U2l6ZXMiLCJtYXRjaCIsImV4ZWMiLCJwdXNoIiwibGVuZ3RoIiwic21hbGxlc3RSYXRpbyIsIk1hdGgiLCJtaW4iLCJ3aWR0aHMiLCJmaWx0ZXIiLCJzIiwia2luZCIsIlNldCIsIm1hcCIsInciLCJmaW5kIiwicCIsImdlbmVyYXRlSW1nQXR0cnMiLCJjb25maWciLCJ1bm9wdGltaXplZCIsInF1YWxpdHkiLCJsb2FkZXIiLCJzcmNTZXQiLCJsYXN0IiwiaSIsImpvaW4iLCJnZXRJbWdQcm9wcyIsIl9zdGF0ZSIsInByaW9yaXR5IiwibG9hZGluZyIsImNsYXNzTmFtZSIsImhlaWdodCIsImZpbGwiLCJzdHlsZSIsIm9uTG9hZCIsIm9uTG9hZGluZ0NvbXBsZXRlIiwicGxhY2Vob2xkZXIiLCJibHVyRGF0YVVSTCIsImZldGNoUHJpb3JpdHkiLCJsYXlvdXQiLCJvYmplY3RGaXQiLCJvYmplY3RQb3NpdGlvbiIsImxhenlCb3VuZGFyeSIsImxhenlSb290IiwicmVzdCIsImltZ0NvbmYiLCJzaG93QWx0VGV4dCIsImJsdXJDb21wbGV0ZSIsImRlZmF1bHRMb2FkZXIiLCJjIiwiaW1hZ2VTaXplcyIsInNvcnQiLCJhIiwiYiIsImlzRGVmYXVsdExvYWRlciIsIkVycm9yIiwiY3VzdG9tSW1hZ2VMb2FkZXIiLCJvYmoiLCJfIiwib3B0cyIsImxheW91dFRvU3R5bGUiLCJpbnRyaW5zaWMiLCJtYXhXaWR0aCIsInJlc3BvbnNpdmUiLCJsYXlvdXRUb1NpemVzIiwibGF5b3V0U3R5bGUiLCJsYXlvdXRTaXplcyIsInN0YXRpY1NyYyIsIndpZHRoSW50IiwiaGVpZ2h0SW50IiwiYmx1cldpZHRoIiwiYmx1ckhlaWdodCIsInN0YXRpY0ltYWdlRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyYXRpbyIsInJvdW5kIiwiaXNMYXp5Iiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyIsInF1YWxpdHlJbnQiLCJwcm9jZXNzIiwib3V0cHV0IiwicG9zaXRpb24iLCJpc05hTiIsImluY2x1ZGVzIiwiU3RyaW5nIiwiVkFMSURfQkxVUl9FWFQiLCJ1cmxTdHIiLCJ1cmwiLCJVUkwiLCJlcnIiLCJwYXRobmFtZSIsInNlYXJjaCIsImxlZ2FjeUtleSIsImxlZ2FjeVZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyIsIndpbmRvdyIsIlBlcmZvcm1hbmNlT2JzZXJ2ZXIiLCJlbnRyeUxpc3QiLCJlbnRyeSIsImdldEVudHJpZXMiLCJfZW50cnlfZWxlbWVudCIsImltZ1NyYyIsImVsZW1lbnQiLCJsY3BJbWFnZSIsImdldCIsIm9ic2VydmUiLCJ0eXBlIiwiYnVmZmVyZWQiLCJjb25zb2xlIiwiZXJyb3IiLCJpbWdTdHlsZSIsImFzc2lnbiIsImxlZnQiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImNvbG9yIiwiYmFja2dyb3VuZEltYWdlIiwicGxhY2Vob2xkZXJTdHlsZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiYmFja2dyb3VuZFJlcGVhdCIsImltZ0F0dHJpYnV0ZXMiLCJmdWxsVXJsIiwiZSIsImxvY2F0aW9uIiwiaHJlZiIsInNldCIsInByb3BzIiwiZGVjb2RpbmciLCJtZXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/get-img-props.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/hash.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/hash.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ djb2Hash: () => (/* binding */ djb2Hash),\n/* harmony export */ hexHash: () => (/* binding */ hexHash)\n/* harmony export */ });\n// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\nfunction djb2Hash(str) {\n let hash = 5381;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) + hash + char & 0xffffffff;\n }\n return hash >>> 0;\n}\nfunction hexHash(str) {\n return djb2Hash(str).toString(36).slice(0, 5);\n} //# sourceMappingURL=hash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9oYXNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0NBQXdDO0FBQ3hDLDRDQUE0QztBQUM1QyxpSEFBaUg7QUFDakgsd0ZBQXdGO0FBQ3hGLGdHQUFnRztBQUNoRyx3SEFBd0g7QUFDeEgsd0RBQXdEO0FBQ2pELFNBQVNBLFNBQVNDLEdBQUc7SUFDeEIsSUFBSUMsT0FBTztJQUNYLElBQUksSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUk7UUFDL0IsTUFBTUUsT0FBT0osSUFBSUssVUFBVSxDQUFDSDtRQUM1QkQsT0FBTyxDQUFDQSxRQUFRLEtBQUtBLE9BQU9HLE9BQU87SUFDdkM7SUFDQSxPQUFPSCxTQUFTO0FBQ3BCO0FBQ08sU0FBU0ssUUFBUU4sR0FBRztJQUN2QixPQUFPRCxTQUFTQyxLQUFLTyxRQUFRLENBQUMsSUFBSUMsS0FBSyxDQUFDLEdBQUc7QUFDL0MsRUFFQSxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaGFzaC5qcz8zMDU0Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuY3NlLnlvcmt1LmNhL35vei9oYXNoLmh0bWxcbi8vIE1vcmUgc3BlY2lmaWNhbGx5LCAzMi1iaXQgaGFzaCB2aWEgZGpieG9yXG4vLyAocmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9lcGxhd2xlc3MvNTI4MTNiMWQ4YWQ5YWY1MTBkODU/cGVybWFsaW5rX2NvbW1lbnRfaWQ9MzM2Nzc2NSNnaXN0Y29tbWVudC0zMzY3NzY1KVxuLy8gVGhpcyBpcyBkdWUgdG8gbnVtYmVyIHR5cGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBydXN0IGZvciB0dXJib3BhY2sgdG8ganMgbnVtYmVyIHR5cGVzLFxuLy8gd2hlcmUgcnVzdCBkb2VzIG5vdCBoYXZlIGVhc3kgd2F5IHRvIHJlcHJlZXNudCBqcydzIDUzLWJpdCBmbG9hdCBudW1iZXIgdHlwZSBmb3IgdGhlIG1hdGNoaW5nXG4vLyBvdmVyZmxvdyBiZWhhdmlvci4gVGhpcyBpcyBtb3JlIGBjb3JyZWN0YCBpbiB0ZXJtcyBvZiBoYXZpbmcgY2Fub25pY2FsIGhhc2ggYWNyb3NzIGRpZmZlcmVudCBydW50aW1lIC8gaW1wbGVtZW50YXRpb25cbi8vIGFzIGNhbiBnYXVyYW50ZWUgZGV0ZXJtaW5zdGljIG91dHB1dCBmcm9tIDMyYml0IGhhc2guXG5leHBvcnQgZnVuY3Rpb24gZGpiMkhhc2goc3RyKSB7XG4gICAgbGV0IGhhc2ggPSA1MzgxO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBjaGFyID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSArIGhhc2ggKyBjaGFyICYgMHhmZmZmZmZmZjtcbiAgICB9XG4gICAgcmV0dXJuIGhhc2ggPj4+IDA7XG59XG5leHBvcnQgZnVuY3Rpb24gaGV4SGFzaChzdHIpIHtcbiAgICByZXR1cm4gZGpiMkhhc2goc3RyKS50b1N0cmluZygzNikuc2xpY2UoMCwgNSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhc2guanMubWFwIl0sIm5hbWVzIjpbImRqYjJIYXNoIiwic3RyIiwiaGFzaCIsImkiLCJsZW5ndGgiLCJjaGFyIiwiY2hhckNvZGVBdCIsImhleEhhc2giLCJ0b1N0cmluZyIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/hash.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ PathParamsContext: () => (/* binding */ e2),
-/* harmony export */ PathnameContext: () => (/* binding */ e1),
-/* harmony export */ SearchParamsContext: () => (/* binding */ e0)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js#SearchParamsContext`);
-
-const e1 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js#PathnameContext`);
-
-const e2 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js#PathParamsContext`);
-
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeLocalePath: () => (/* binding */ normalizeLocalePath)\n/* harmony export */ });\n/**\n * For a pathname that may include a locale from a list of locales, it\n * removes the locale from the pathname returning it alongside with the\n * detected locale.\n *\n * @param pathname A pathname that may include a locale.\n * @param locales A list of locales.\n * @returns The detected locale and pathname without locale\n */ function normalizeLocalePath(pathname, locales) {\n let detectedLocale;\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split(\"/\");\n (locales || []).some((locale)=>{\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join(\"/\") || \"/\";\n return true;\n }\n return false;\n });\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTQSxvQkFBb0JDLFFBQVEsRUFBRUMsT0FBTztJQUNyRCxJQUFJQztJQUNKLCtEQUErRDtJQUMvRCxNQUFNQyxnQkFBZ0JILFNBQVNJLEtBQUssQ0FBQztJQUNwQ0gsQ0FBQUEsV0FBVyxFQUFFLEVBQUVJLElBQUksQ0FBQyxDQUFDQztRQUNsQixJQUFJSCxhQUFhLENBQUMsRUFBRSxJQUFJQSxhQUFhLENBQUMsRUFBRSxDQUFDSSxXQUFXLE9BQU9ELE9BQU9DLFdBQVcsSUFBSTtZQUM3RUwsaUJBQWlCSTtZQUNqQkgsY0FBY0ssTUFBTSxDQUFDLEdBQUc7WUFDeEJSLFdBQVdHLGNBQWNNLElBQUksQ0FBQyxRQUFRO1lBQ3RDLE9BQU87UUFDWDtRQUNBLE9BQU87SUFDWDtJQUNBLE9BQU87UUFDSFQ7UUFDQUU7SUFDSjtBQUNKLEVBRUEsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzP2QyOWUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlIGZyb20gYSBsaXN0IG9mIGxvY2FsZXMsIGl0XG4gKiByZW1vdmVzIHRoZSBsb2NhbGUgZnJvbSB0aGUgcGF0aG5hbWUgcmV0dXJuaW5nIGl0IGFsb25nc2lkZSB3aXRoIHRoZVxuICogZGV0ZWN0ZWQgbG9jYWxlLlxuICpcbiAqIEBwYXJhbSBwYXRobmFtZSBBIHBhdGhuYW1lIHRoYXQgbWF5IGluY2x1ZGUgYSBsb2NhbGUuXG4gKiBAcGFyYW0gbG9jYWxlcyBBIGxpc3Qgb2YgbG9jYWxlcy5cbiAqIEByZXR1cm5zIFRoZSBkZXRlY3RlZCBsb2NhbGUgYW5kIHBhdGhuYW1lIHdpdGhvdXQgbG9jYWxlXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWUsIGxvY2FsZXMpIHtcbiAgICBsZXQgZGV0ZWN0ZWRMb2NhbGU7XG4gICAgLy8gZmlyc3QgaXRlbSB3aWxsIGJlIGVtcHR5IHN0cmluZyBmcm9tIHNwbGl0dGluZyBhdCBmaXJzdCBjaGFyXG4gICAgY29uc3QgcGF0aG5hbWVQYXJ0cyA9IHBhdGhuYW1lLnNwbGl0KFwiL1wiKTtcbiAgICAobG9jYWxlcyB8fCBbXSkuc29tZSgobG9jYWxlKT0+e1xuICAgICAgICBpZiAocGF0aG5hbWVQYXJ0c1sxXSAmJiBwYXRobmFtZVBhcnRzWzFdLnRvTG93ZXJDYXNlKCkgPT09IGxvY2FsZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHBhdGhuYW1lUGFydHMuc3BsaWNlKDEsIDEpO1xuICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZVBhcnRzLmpvaW4oXCIvXCIpIHx8IFwiL1wiO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBkZXRlY3RlZExvY2FsZVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsibm9ybWFsaXplTG9jYWxlUGF0aCIsInBhdGhuYW1lIiwibG9jYWxlcyIsImRldGVjdGVkTG9jYWxlIiwicGF0aG5hbWVQYXJ0cyIsInNwbGl0Iiwic29tZSIsImxvY2FsZSIsInRvTG93ZXJDYXNlIiwic3BsaWNlIiwiam9pbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/image-blur-svg.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/image-blur-svg.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getImageBlurSvg: () => (/* binding */ getImageBlurSvg)\n/* harmony export */ });\n/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */ function getImageBlurSvg(param) {\n let { widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit } = param;\n const std = 20;\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt;\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt;\n const viewBox = svgWidth && svgHeight ? \"viewBox='0 0 \" + svgWidth + \" \" + svgHeight + \"'\" : \"\";\n const preserveAspectRatio = viewBox ? \"none\" : objectFit === \"contain\" ? \"xMidYMid\" : objectFit === \"cover\" ? \"xMidYMid slice\" : \"none\";\n return \"%3Csvg xmlns='http://www.w3.org/2000/svg' \" + viewBox + \"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='\" + preserveAspectRatio + \"' style='filter: url(%23b);' href='\" + blurDataURL + \"'/%3E%3C/svg%3E\";\n} //# sourceMappingURL=image-blur-svg.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1ibHVyLXN2Zy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0NBRUMsR0FBVSxTQUFTQSxnQkFBZ0JDLEtBQUs7SUFDckMsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsU0FBUyxFQUFFLEdBQUdOO0lBQzdFLE1BQU1PLE1BQU07SUFDWixNQUFNQyxXQUFXTCxZQUFZQSxZQUFZLEtBQUtGO0lBQzlDLE1BQU1RLFlBQVlMLGFBQWFBLGFBQWEsS0FBS0Y7SUFDakQsTUFBTVEsVUFBVUYsWUFBWUMsWUFBWSxrQkFBa0JELFdBQVcsTUFBTUMsWUFBWSxNQUFNO0lBQzdGLE1BQU1FLHNCQUFzQkQsVUFBVSxTQUFTSixjQUFjLFlBQVksYUFBYUEsY0FBYyxVQUFVLG1CQUFtQjtJQUNqSSxPQUFPLCtDQUErQ0ksVUFBVSw4RkFBOEZILE1BQU0sb1FBQW9RQSxNQUFNLGdHQUFnR0ksc0JBQXNCLHdDQUF3Q04sY0FBYztBQUM5bEIsRUFFQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaW1hZ2UtYmx1ci1zdmcuanM/NmUxOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgc2hhcmVkIGZ1bmN0aW9uLCB1c2VkIG9uIGJvdGggY2xpZW50IGFuZCBzZXJ2ZXIsIHRvIGdlbmVyYXRlIGEgU1ZHIGJsdXIgcGxhY2Vob2xkZXIuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldEltYWdlQmx1clN2ZyhwYXJhbSkge1xuICAgIGxldCB7IHdpZHRoSW50LCBoZWlnaHRJbnQsIGJsdXJXaWR0aCwgYmx1ckhlaWdodCwgYmx1ckRhdGFVUkwsIG9iamVjdEZpdCB9ID0gcGFyYW07XG4gICAgY29uc3Qgc3RkID0gMjA7XG4gICAgY29uc3Qgc3ZnV2lkdGggPSBibHVyV2lkdGggPyBibHVyV2lkdGggKiA0MCA6IHdpZHRoSW50O1xuICAgIGNvbnN0IHN2Z0hlaWdodCA9IGJsdXJIZWlnaHQgPyBibHVySGVpZ2h0ICogNDAgOiBoZWlnaHRJbnQ7XG4gICAgY29uc3Qgdmlld0JveCA9IHN2Z1dpZHRoICYmIHN2Z0hlaWdodCA/IFwidmlld0JveD0nMCAwIFwiICsgc3ZnV2lkdGggKyBcIiBcIiArIHN2Z0hlaWdodCArIFwiJ1wiIDogXCJcIjtcbiAgICBjb25zdCBwcmVzZXJ2ZUFzcGVjdFJhdGlvID0gdmlld0JveCA/IFwibm9uZVwiIDogb2JqZWN0Rml0ID09PSBcImNvbnRhaW5cIiA/IFwieE1pZFlNaWRcIiA6IG9iamVjdEZpdCA9PT0gXCJjb3ZlclwiID8gXCJ4TWlkWU1pZCBzbGljZVwiIDogXCJub25lXCI7XG4gICAgcmV0dXJuIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgXCIgKyB2aWV3Qm94ICsgXCIlM0UlM0NmaWx0ZXIgaWQ9J2InIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0nc1JHQiclM0UlM0NmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249J1wiICsgc3RkICsgXCInLyUzRSUzQ2ZlQ29sb3JNYXRyaXggdmFsdWVzPScxIDAgMCAwIDAgMCAxIDAgMCAwIDAgMCAxIDAgMCAwIDAgMCAxMDAgLTEnIHJlc3VsdD0ncycvJTNFJTNDZmVGbG9vZCB4PScwJyB5PScwJyB3aWR0aD0nMTAwJTI1JyBoZWlnaHQ9JzEwMCUyNScvJTNFJTNDZmVDb21wb3NpdGUgb3BlcmF0b3I9J291dCcgaW49J3MnLyUzRSUzQ2ZlQ29tcG9zaXRlIGluMj0nU291cmNlR3JhcGhpYycvJTNFJTNDZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSdcIiArIHN0ZCArIFwiJy8lM0UlM0MvZmlsdGVyJTNFJTNDaW1hZ2Ugd2lkdGg9JzEwMCUyNScgaGVpZ2h0PScxMDAlMjUnIHg9JzAnIHk9JzAnIHByZXNlcnZlQXNwZWN0UmF0aW89J1wiICsgcHJlc2VydmVBc3BlY3RSYXRpbyArIFwiJyBzdHlsZT0nZmlsdGVyOiB1cmwoJTIzYik7JyBocmVmPSdcIiArIGJsdXJEYXRhVVJMICsgXCInLyUzRSUzQy9zdmclM0VcIjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hZ2UtYmx1ci1zdmcuanMubWFwIl0sIm5hbWVzIjpbImdldEltYWdlQmx1clN2ZyIsInBhcmFtIiwid2lkdGhJbnQiLCJoZWlnaHRJbnQiLCJibHVyV2lkdGgiLCJibHVySGVpZ2h0IiwiYmx1ckRhdGFVUkwiLCJvYmplY3RGaXQiLCJzdGQiLCJzdmdXaWR0aCIsInN2Z0hlaWdodCIsInZpZXdCb3giLCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/image-blur-svg.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/image-config.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/image-config.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VALID_LOADERS: () => (/* binding */ VALID_LOADERS),\n/* harmony export */ imageConfigDefault: () => (/* binding */ imageConfigDefault)\n/* harmony export */ });\nconst VALID_LOADERS = [\n \"default\",\n \"imgix\",\n \"cloudinary\",\n \"akamai\",\n \"custom\"\n];\nconst imageConfigDefault = {\n deviceSizes: [\n 640,\n 750,\n 828,\n 1080,\n 1200,\n 1920,\n 2048,\n 3840\n ],\n imageSizes: [\n 16,\n 32,\n 48,\n 64,\n 96,\n 128,\n 256,\n 384\n ],\n path: \"/_next/image\",\n loader: \"default\",\n loaderFile: \"\",\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: [\n \"image/webp\"\n ],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: \"script-src 'none'; frame-src 'none'; sandbox;\",\n contentDispositionType: \"inline\",\n remotePatterns: [],\n unoptimized: false\n}; //# sourceMappingURL=image-config.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1jb25maWcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxNQUFNQSxnQkFBZ0I7SUFDekI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILENBQUM7QUFDSyxNQUFNQyxxQkFBcUI7SUFDOUJDLGFBQWE7UUFDVDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0tBQ0g7SUFDREMsWUFBWTtRQUNSO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDSDtJQUNEQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsWUFBWTtJQUNaQyxTQUFTLEVBQUU7SUFDWEMscUJBQXFCO0lBQ3JCQyxpQkFBaUI7SUFDakJDLFNBQVM7UUFDTDtLQUNIO0lBQ0RDLHFCQUFxQjtJQUNyQkMsdUJBQXVCO0lBQ3ZCQyx3QkFBd0I7SUFDeEJDLGdCQUFnQixFQUFFO0lBQ2xCQyxhQUFhO0FBQ2pCLEVBQUUsQ0FFRix3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLmpzPzcyMDYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZBTElEX0xPQURFUlMgPSBbXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJpbWdpeFwiLFxuICAgIFwiY2xvdWRpbmFyeVwiLFxuICAgIFwiYWthbWFpXCIsXG4gICAgXCJjdXN0b21cIlxuXTtcbmV4cG9ydCBjb25zdCBpbWFnZUNvbmZpZ0RlZmF1bHQgPSB7XG4gICAgZGV2aWNlU2l6ZXM6IFtcbiAgICAgICAgNjQwLFxuICAgICAgICA3NTAsXG4gICAgICAgIDgyOCxcbiAgICAgICAgMTA4MCxcbiAgICAgICAgMTIwMCxcbiAgICAgICAgMTkyMCxcbiAgICAgICAgMjA0OCxcbiAgICAgICAgMzg0MFxuICAgIF0sXG4gICAgaW1hZ2VTaXplczogW1xuICAgICAgICAxNixcbiAgICAgICAgMzIsXG4gICAgICAgIDQ4LFxuICAgICAgICA2NCxcbiAgICAgICAgOTYsXG4gICAgICAgIDEyOCxcbiAgICAgICAgMjU2LFxuICAgICAgICAzODRcbiAgICBdLFxuICAgIHBhdGg6IFwiL19uZXh0L2ltYWdlXCIsXG4gICAgbG9hZGVyOiBcImRlZmF1bHRcIixcbiAgICBsb2FkZXJGaWxlOiBcIlwiLFxuICAgIGRvbWFpbnM6IFtdLFxuICAgIGRpc2FibGVTdGF0aWNJbWFnZXM6IGZhbHNlLFxuICAgIG1pbmltdW1DYWNoZVRUTDogNjAsXG4gICAgZm9ybWF0czogW1xuICAgICAgICBcImltYWdlL3dlYnBcIlxuICAgIF0sXG4gICAgZGFuZ2Vyb3VzbHlBbGxvd1NWRzogZmFsc2UsXG4gICAgY29udGVudFNlY3VyaXR5UG9saWN5OiBcInNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94O1wiLFxuICAgIGNvbnRlbnREaXNwb3NpdGlvblR5cGU6IFwiaW5saW5lXCIsXG4gICAgcmVtb3RlUGF0dGVybnM6IFtdLFxuICAgIHVub3B0aW1pemVkOiBmYWxzZVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hZ2UtY29uZmlnLmpzLm1hcCJdLCJuYW1lcyI6WyJWQUxJRF9MT0FERVJTIiwiaW1hZ2VDb25maWdEZWZhdWx0IiwiZGV2aWNlU2l6ZXMiLCJpbWFnZVNpemVzIiwicGF0aCIsImxvYWRlciIsImxvYWRlckZpbGUiLCJkb21haW5zIiwiZGlzYWJsZVN0YXRpY0ltYWdlcyIsIm1pbmltdW1DYWNoZVRUTCIsImZvcm1hdHMiLCJkYW5nZXJvdXNseUFsbG93U1ZHIiwiY29udGVudFNlY3VyaXR5UG9saWN5IiwiY29udGVudERpc3Bvc2l0aW9uVHlwZSIsInJlbW90ZVBhdHRlcm5zIiwidW5vcHRpbWl6ZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/image-config.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/image-external.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/image-external.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getImageProps: () => (/* binding */ getImageProps)\n/* harmony export */ });\n/* harmony import */ var _get_img_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-img-props */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/get-img-props.js\");\n/* harmony import */ var _client_image_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../client/image-component */ \"(rsc)/../../node_modules/next/dist/esm/client/image-component.js\");\n/* harmony import */ var next_dist_shared_lib_image_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/shared/lib/image-loader */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/image-loader.js\");\n\n\n// @ts-ignore - This is replaced by webpack alias\n\nconst getImageProps = (imgProps)=>{\n const { props } = (0,_get_img_props__WEBPACK_IMPORTED_MODULE_0__.getImgProps)(imgProps, {\n defaultLoader: next_dist_shared_lib_image_loader__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n // This is replaced by webpack define plugin\n imgConf: {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[]}\n });\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)){\n if (value === undefined) {\n delete props[key];\n }\n }\n return {\n props\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_client_image_component__WEBPACK_IMPORTED_MODULE_1__.Image); //# sourceMappingURL=image-external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1leHRlcm5hbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUE4QztBQUNPO0FBQ3JELGlEQUFpRDtBQUNhO0FBQ3ZELE1BQU1HLGdCQUFnQixDQUFDQztJQUMxQixNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHTCwyREFBV0EsQ0FBQ0ksVUFBVTtRQUNwQ0YsYUFBYUEsMkVBQUFBO1FBQ2IsNENBQTRDO1FBQzVDSSxTQUFTQywwTkFBNkI7SUFDMUM7SUFDQSx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLHdEQUF3RDtJQUN4RCxLQUFLLE1BQU0sQ0FBQ0csS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUNSLE9BQU87UUFDN0MsSUFBSU0sVUFBVUcsV0FBVztZQUNyQixPQUFPVCxLQUFLLENBQUNLLElBQUk7UUFDckI7SUFDSjtJQUNBLE9BQU87UUFDSEw7SUFDSjtBQUNKLEVBQUU7QUFDRixpRUFBZUosMERBQUtBLEVBQUMsQ0FFckIsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2ltYWdlLWV4dGVybmFsLmpzP2IxOGMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0SW1nUHJvcHMgfSBmcm9tIFwiLi9nZXQtaW1nLXByb3BzXCI7XG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gXCIuLi8uLi9jbGllbnQvaW1hZ2UtY29tcG9uZW50XCI7XG4vLyBAdHMtaWdub3JlIC0gVGhpcyBpcyByZXBsYWNlZCBieSB3ZWJwYWNrIGFsaWFzXG5pbXBvcnQgZGVmYXVsdExvYWRlciBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtbG9hZGVyXCI7XG5leHBvcnQgY29uc3QgZ2V0SW1hZ2VQcm9wcyA9IChpbWdQcm9wcyk9PntcbiAgICBjb25zdCB7IHByb3BzIH0gPSBnZXRJbWdQcm9wcyhpbWdQcm9wcywge1xuICAgICAgICBkZWZhdWx0TG9hZGVyLFxuICAgICAgICAvLyBUaGlzIGlzIHJlcGxhY2VkIGJ5IHdlYnBhY2sgZGVmaW5lIHBsdWdpblxuICAgICAgICBpbWdDb25mOiBwcm9jZXNzLmVudi5fX05FWFRfSU1BR0VfT1BUU1xuICAgIH0pO1xuICAgIC8vIE5vcm1hbGx5IHdlIGRvbid0IGNhcmUgYWJvdXQgdW5kZWZpbmVkIHByb3BzIGJlY2F1c2Ugd2UgcGFzcyB0byBKU1gsXG4gICAgLy8gYnV0IHRoaXMgZXhwb3J0ZWQgZnVuY3Rpb24gY291bGQgYmUgdXNlZCBieSB0aGUgZW5kIHVzZXIgZm9yIGFueXRoaW5nXG4gICAgLy8gc28gd2UgZGVsZXRlIHVuZGVmaW5lZCBwcm9wcyB0byBjbGVhbiBpdCB1cCBhIGxpdHRsZS5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9wcykpe1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZGVsZXRlIHByb3BzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvcHNcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IEltYWdlO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1leHRlcm5hbC5qcy5tYXAiXSwibmFtZXMiOlsiZ2V0SW1nUHJvcHMiLCJJbWFnZSIsImRlZmF1bHRMb2FkZXIiLCJnZXRJbWFnZVByb3BzIiwiaW1nUHJvcHMiLCJwcm9wcyIsImltZ0NvbmYiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0lNQUdFX09QVFMiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJ1bmRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/image-external.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/image-loader.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/image-loader.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction defaultLoader(param) {\n let { config, src, width, quality } = param;\n if (true) {\n const missingValues = [];\n // these should always be provided but make sure they are\n if (!src) missingValues.push(\"src\");\n if (!width) missingValues.push(\"width\");\n if (missingValues.length > 0) {\n throw new Error(\"Next Image Optimization requires \" + missingValues.join(\", \") + \" to be provided. Make sure you pass them as props to the `next/image` component. Received: \" + JSON.stringify({\n src,\n width,\n quality\n }));\n }\n if (src.startsWith(\"//\")) {\n throw new Error('Failed to parse src \"' + src + '\" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)');\n }\n if (!src.startsWith(\"/\") && (config.domains || config.remotePatterns)) {\n let parsedSrc;\n try {\n parsedSrc = new URL(src);\n } catch (err) {\n console.error(err);\n throw new Error('Failed to parse src \"' + src + '\" on `next/image`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)');\n }\n if (false) {}\n }\n }\n return config.path + \"?url=\" + encodeURIComponent(src) + \"&w=\" + width + \"&q=\" + (quality || 75) + ( false ? 0 : \"\");\n}\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaultLoader); //# sourceMappingURL=image-loader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1sb2FkZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLGNBQWNDLEtBQUs7SUFDeEIsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUUsR0FBR0o7SUFDdEMsSUFBSUssSUFBcUMsRUFBRTtRQUN2QyxNQUFNQyxnQkFBZ0IsRUFBRTtRQUN4Qix5REFBeUQ7UUFDekQsSUFBSSxDQUFDSixLQUFLSSxjQUFjQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDSixPQUFPRyxjQUFjQyxJQUFJLENBQUM7UUFDL0IsSUFBSUQsY0FBY0UsTUFBTSxHQUFHLEdBQUc7WUFDMUIsTUFBTSxJQUFJQyxNQUFNLHNDQUFzQ0gsY0FBY0ksSUFBSSxDQUFDLFFBQVEsZ0dBQWdHQyxLQUFLQyxTQUFTLENBQUM7Z0JBQzVMVjtnQkFDQUM7Z0JBQ0FDO1lBQ0o7UUFDSjtRQUNBLElBQUlGLElBQUlXLFVBQVUsQ0FBQyxPQUFPO1lBQ3RCLE1BQU0sSUFBSUosTUFBTSwwQkFBMEJQLE1BQU07UUFDcEQ7UUFDQSxJQUFJLENBQUNBLElBQUlXLFVBQVUsQ0FBQyxRQUFTWixDQUFBQSxPQUFPYSxPQUFPLElBQUliLE9BQU9jLGNBQWMsR0FBRztZQUNuRSxJQUFJQztZQUNKLElBQUk7Z0JBQ0FBLFlBQVksSUFBSUMsSUFBSWY7WUFDeEIsRUFBRSxPQUFPZ0IsS0FBSztnQkFDVkMsUUFBUUMsS0FBSyxDQUFDRjtnQkFDZCxNQUFNLElBQUlULE1BQU0sMEJBQTBCUCxNQUFNO1lBQ3BEO1lBQ0EsSUFBSUcsS0FDK0IsRUFBRSxFQU1wQztRQUNMO0lBQ0o7SUFDQSxPQUFPSixPQUFPeUIsSUFBSSxHQUFHLFVBQVVDLG1CQUFtQnpCLE9BQU8sUUFBUUMsUUFBUSxRQUFTQyxDQUFBQSxXQUFXLEVBQUMsSUFBTUMsQ0FBQUEsTUFBOEIsR0FBRyxDQUF3QyxHQUFHLEVBQUM7QUFDckw7QUFDQSwrREFBK0Q7QUFDL0QsMkRBQTJEO0FBQzNETixjQUFjOEIsa0JBQWtCLEdBQUc7QUFDbkMsaUVBQWU5QixhQUFhQSxFQUFDLENBRTdCLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pbWFnZS1sb2FkZXIuanM/NjRkNSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBkZWZhdWx0TG9hZGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgY29uZmlnLCBzcmMsIHdpZHRoLCBxdWFsaXR5IH0gPSBwYXJhbTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IG1pc3NpbmdWYWx1ZXMgPSBbXTtcbiAgICAgICAgLy8gdGhlc2Ugc2hvdWxkIGFsd2F5cyBiZSBwcm92aWRlZCBidXQgbWFrZSBzdXJlIHRoZXkgYXJlXG4gICAgICAgIGlmICghc3JjKSBtaXNzaW5nVmFsdWVzLnB1c2goXCJzcmNcIik7XG4gICAgICAgIGlmICghd2lkdGgpIG1pc3NpbmdWYWx1ZXMucHVzaChcIndpZHRoXCIpO1xuICAgICAgICBpZiAobWlzc2luZ1ZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOZXh0IEltYWdlIE9wdGltaXphdGlvbiByZXF1aXJlcyBcIiArIG1pc3NpbmdWYWx1ZXMuam9pbihcIiwgXCIpICsgXCIgdG8gYmUgcHJvdmlkZWQuIE1ha2Ugc3VyZSB5b3UgcGFzcyB0aGVtIGFzIHByb3BzIHRvIHRoZSBgbmV4dC9pbWFnZWAgY29tcG9uZW50LiBSZWNlaXZlZDogXCIgKyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICAgIHF1YWxpdHlcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3JjLnN0YXJ0c1dpdGgoXCIvL1wiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gcGFyc2Ugc3JjIFwiJyArIHNyYyArICdcIiBvbiBgbmV4dC9pbWFnZWAsIHByb3RvY29sLXJlbGF0aXZlIFVSTCAoLy8pIG11c3QgYmUgY2hhbmdlZCB0byBhbiBhYnNvbHV0ZSBVUkwgKGh0dHA6Ly8gb3IgaHR0cHM6Ly8pJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzcmMuc3RhcnRzV2l0aChcIi9cIikgJiYgKGNvbmZpZy5kb21haW5zIHx8IGNvbmZpZy5yZW1vdGVQYXR0ZXJucykpIHtcbiAgICAgICAgICAgIGxldCBwYXJzZWRTcmM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHBhcnNlZFNyYyA9IG5ldyBVUkwoc3JjKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSBzcmMgXCInICsgc3JjICsgJ1wiIG9uIGBuZXh0L2ltYWdlYCwgaWYgdXNpbmcgcmVsYXRpdmUgaW1hZ2UgaXQgbXVzdCBzdGFydCB3aXRoIGEgbGVhZGluZyBzbGFzaCBcIi9cIiBvciBiZSBhbiBhYnNvbHV0ZSBVUkwgKGh0dHA6Ly8gb3IgaHR0cHM6Ly8pJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwidGVzdFwiICYmIC8vIG1pY3JvbWF0Y2ggaXNuJ3QgY29tcGF0aWJsZSB3aXRoIGVkZ2UgcnVudGltZVxuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSBcImVkZ2VcIikge1xuICAgICAgICAgICAgICAgIC8vIFdlIHVzZSBkeW5hbWljIHJlcXVpcmUgYmVjYXVzZSB0aGlzIHNob3VsZCBvbmx5IGVycm9yIGluIGRldmVsb3BtZW50XG4gICAgICAgICAgICAgICAgY29uc3QgeyBoYXNNYXRjaCB9ID0gcmVxdWlyZShcIi4vbWF0Y2gtcmVtb3RlLXBhdHRlcm5cIik7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNNYXRjaChjb25maWcuZG9tYWlucywgY29uZmlnLnJlbW90ZVBhdHRlcm5zLCBwYXJzZWRTcmMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgc3JjIHByb3AgKFwiICsgc3JjICsgJykgb24gYG5leHQvaW1hZ2VgLCBob3N0bmFtZSBcIicgKyBwYXJzZWRTcmMuaG9zdG5hbWUgKyAnXCIgaXMgbm90IGNvbmZpZ3VyZWQgdW5kZXIgaW1hZ2VzIGluIHlvdXIgYG5leHQuY29uZmlnLmpzYFxcbicgKyBcIlNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtdW5jb25maWd1cmVkLWhvc3RcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb25maWcucGF0aCArIFwiP3VybD1cIiArIGVuY29kZVVSSUNvbXBvbmVudChzcmMpICsgXCImdz1cIiArIHdpZHRoICsgXCImcT1cIiArIChxdWFsaXR5IHx8IDc1KSArIChwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQgPyBcIiZkcGw9XCIgKyBwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQgOiBcIlwiKTtcbn1cbi8vIFdlIHVzZSB0aGlzIHRvIGRldGVybWluZSBpZiB0aGUgaW1wb3J0IGlzIHRoZSBkZWZhdWx0IGxvYWRlclxuLy8gb3IgYSBjdXN0b20gbG9hZGVyIGRlZmluZWQgYnkgdGhlIHVzZXIgaW4gbmV4dC5jb25maWcuanNcbmRlZmF1bHRMb2FkZXIuX19uZXh0X2ltZ19kZWZhdWx0ID0gdHJ1ZTtcbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRMb2FkZXI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiZGVmYXVsdExvYWRlciIsInBhcmFtIiwiY29uZmlnIiwic3JjIiwid2lkdGgiLCJxdWFsaXR5IiwicHJvY2VzcyIsIm1pc3NpbmdWYWx1ZXMiLCJwdXNoIiwibGVuZ3RoIiwiRXJyb3IiLCJqb2luIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXJ0c1dpdGgiLCJkb21haW5zIiwicmVtb3RlUGF0dGVybnMiLCJwYXJzZWRTcmMiLCJVUkwiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJoYXNNYXRjaCIsInJlcXVpcmUiLCJob3N0bmFtZSIsInBhdGgiLCJlbmNvZGVVUklDb21wb25lbnQiLCJORVhUX0RFUExPWU1FTlRfSUQiLCJfX25leHRfaW1nX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/image-loader.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js ***!
- \**********************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-eval("/**\n * This module is for next.js server internal usage of path module.\n * It will use native path module for nodejs runtime.\n * It will use path-browserify polyfill for edge runtime.\n */ \nlet path;\nif (true) {\n path = __webpack_require__(/*! next/dist/compiled/path-browserify */ \"(rsc)/../../node_modules/next/dist/compiled/path-browserify/index.js\");\n} else {}\nmodule.exports = path; //# sourceMappingURL=path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQyxHQUFHO0FBQUEsSUFBSUE7QUFDUixJQUFJQyxJQUFtQyxFQUFFO0lBQ3JDRCxPQUFPSSxtQkFBT0EsQ0FBQyxnSEFBb0M7QUFDdkQsT0FBTyxFQUVOO0FBQ0RDLE9BQU9DLE9BQU8sR0FBR04sTUFFakIsZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL2lzb21vcnBoaWMvcGF0aC5qcz9hNjMzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBtb2R1bGUgaXMgZm9yIG5leHQuanMgc2VydmVyIGludGVybmFsIHVzYWdlIG9mIHBhdGggbW9kdWxlLlxuICogSXQgd2lsbCB1c2UgbmF0aXZlIHBhdGggbW9kdWxlIGZvciBub2RlanMgcnVudGltZS5cbiAqIEl0IHdpbGwgdXNlIHBhdGgtYnJvd3NlcmlmeSBwb2x5ZmlsbCBmb3IgZWRnZSBydW50aW1lLlxuICovIGxldCBwYXRoO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gXCJlZGdlXCIpIHtcbiAgICBwYXRoID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9wYXRoLWJyb3dzZXJpZnlcIik7XG59IGVsc2Uge1xuICAgIHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcGF0aDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGF0aC5qcy5tYXAiXSwibmFtZXMiOlsicGF0aCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/isomorphic/path.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BailoutToCSRError: () => (/* binding */ BailoutToCSRError),\n/* harmony export */ isBailoutToCSRError: () => (/* binding */ isBailoutToCSRError)\n/* harmony export */ });\n// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = \"BAILOUT_TO_CLIENT_SIDE_RENDERING\";\n/** An error that should be thrown when we want to bail out to client-side rendering. */ class BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason);\n this.reason = reason;\n this.digest = BAILOUT_TO_CSR;\n }\n}\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */ function isBailoutToCSRError(err) {\n if (typeof err !== \"object\" || err === null || !(\"digest\" in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n} //# sourceMappingURL=bailout-to-csr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrR0FBK0c7QUFDL0csTUFBTUEsaUJBQWlCO0FBQ3ZCLHNGQUFzRixHQUFVLE1BQU1DLDBCQUEwQkM7SUFDNUhDLFlBQVlDLE1BQU0sQ0FBQztRQUNmLEtBQUssQ0FBQyx3Q0FBd0NBO1FBQzlDLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsTUFBTSxHQUFHTDtJQUNsQjtBQUNKO0FBQ0EsNEdBQTRHLEdBQVUsU0FBU00sb0JBQW9CQyxHQUFHO0lBQ2xKLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFFLEdBQUk7UUFDL0QsT0FBTztJQUNYO0lBQ0EsT0FBT0EsSUFBSUYsTUFBTSxLQUFLTDtBQUMxQixFQUVBLDBDQUEwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3IuanM/MjBjMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGhhcyB0byBiZSBhIHNoYXJlZCBtb2R1bGUgd2hpY2ggaXMgc2hhcmVkIGJldHdlZW4gY2xpZW50IGNvbXBvbmVudCBlcnJvciBib3VuZGFyeSBhbmQgZHluYW1pYyBjb21wb25lbnRcbmNvbnN0IEJBSUxPVVRfVE9fQ1NSID0gXCJCQUlMT1VUX1RPX0NMSUVOVF9TSURFX1JFTkRFUklOR1wiO1xuLyoqIEFuIGVycm9yIHRoYXQgc2hvdWxkIGJlIHRocm93biB3aGVuIHdlIHdhbnQgdG8gYmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nLiAqLyBleHBvcnQgY2xhc3MgQmFpbG91dFRvQ1NSRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocmVhc29uKXtcbiAgICAgICAgc3VwZXIoXCJCYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmc6IFwiICsgcmVhc29uKTtcbiAgICAgICAgdGhpcy5yZWFzb24gPSByZWFzb247XG4gICAgICAgIHRoaXMuZGlnZXN0ID0gQkFJTE9VVF9UT19DU1I7XG4gICAgfVxufVxuLyoqIENoZWNrcyBpZiBhIHBhc3NlZCBhcmd1bWVudCBpcyBhbiBlcnJvciB0aGF0IGlzIHRocm93biBpZiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi8gZXhwb3J0IGZ1bmN0aW9uIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyKSB7XG4gICAgaWYgKHR5cGVvZiBlcnIgIT09IFwib2JqZWN0XCIgfHwgZXJyID09PSBudWxsIHx8ICEoXCJkaWdlc3RcIiBpbiBlcnIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGVyci5kaWdlc3QgPT09IEJBSUxPVVRfVE9fQ1NSO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYWlsb3V0LXRvLWNzci5qcy5tYXAiXSwibmFtZXMiOlsiQkFJTE9VVF9UT19DU1IiLCJCYWlsb3V0VG9DU1JFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJyZWFzb24iLCJkaWdlc3QiLCJpc0JhaWxvdXRUb0NTUkVycm9yIiwiZXJyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ensureLeadingSlash: () => (/* binding */ ensureLeadingSlash)\n/* harmony export */ });\n/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ function ensureLeadingSlash(path) {\n return path.startsWith(\"/\") ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUFVLFNBQVNBLG1CQUFtQkMsSUFBSTtJQUN2QyxPQUFPQSxLQUFLQyxVQUFVLENBQUMsT0FBT0QsT0FBTyxNQUFNQTtBQUMvQyxFQUVBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanM/M2M3NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvciBhIGdpdmVuIHBhZ2UgcGF0aCwgdGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgYSBsZWFkaW5nIHNsYXNoLlxuICogSWYgdGhlcmUgaXMgbm90IGEgbGVhZGluZyBzbGFzaCwgb25lIGlzIGFkZGVkLCBvdGhlcndpc2UgaXQgaXMgbm9vcC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZW5zdXJlTGVhZGluZ1NsYXNoKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aC5zdGFydHNXaXRoKFwiL1wiKSA/IHBhdGggOiBcIi9cIiArIHBhdGg7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVuc3VyZS1sZWFkaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnN1cmVMZWFkaW5nU2xhc2giLCJwYXRoIiwic3RhcnRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizePathSep: () => (/* binding */ normalizePathSep)\n/* harmony export */ });\n/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ function normalizePathSep(path) {\n return path.replace(/\\\\/g, \"/\");\n} //# sourceMappingURL=normalize-path-sep.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhdGgtc2VwLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztDQUlDLEdBQVUsU0FBU0EsaUJBQWlCQyxJQUFJO0lBQ3JDLE9BQU9BLEtBQUtDLE9BQU8sQ0FBQyxPQUFPO0FBQy9CLEVBRUEsOENBQThDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXAuanM/YmNlOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvciBhIGdpdmVuIHBhZ2UgcGF0aCwgdGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgbm8gYmFja3NsYXNoXG4gKiBlc2NhcGluZyBzbGFzaGVzIGluIHRoZSBwYXRoLiBFeGFtcGxlOlxuICogIC0gYGZvb1xcL2JhclxcL2JhemAgLT4gYGZvby9iYXIvYmF6YFxuICovIGV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXBhdGgtc2VwLmpzLm1hcCJdLCJuYW1lcyI6WyJub3JtYWxpemVQYXRoU2VwIiwicGF0aCIsInJlcGxhY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeAppPath: () => (/* binding */ normalizeAppPath),\n/* harmony export */ normalizeRscURL: () => (/* binding */ normalizeRscURL)\n/* harmony export */ });\n/* harmony import */ var _page_path_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js\");\n/* harmony import */ var _segment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../segment */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/segment.js\");\n\n\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */ function normalizeAppPath(route) {\n return (0,_page_path_ensure_leading_slash__WEBPACK_IMPORTED_MODULE_0__.ensureLeadingSlash)(route.split(\"/\").reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0,_segment__WEBPACK_IMPORTED_MODULE_1__.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === \"@\") {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === \"page\" || segment === \"route\") && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, \"\"));\n}\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */ function normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, \"$1\");\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMEU7QUFDM0I7QUFDL0M7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWtCQyxHQUFVLFNBQVNFLGlCQUFpQkMsS0FBSztJQUN0QyxPQUFPSCxtRkFBa0JBLENBQUNHLE1BQU1DLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDekUsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNWLE9BQU9EO1FBQ1g7UUFDQSxzQkFBc0I7UUFDdEIsSUFBSUwsd0RBQWNBLENBQUNNLFVBQVU7WUFDekIsT0FBT0Q7UUFDWDtRQUNBLGlDQUFpQztRQUNqQyxJQUFJQyxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUs7WUFDcEIsT0FBT0Q7UUFDWDtRQUNBLHVEQUF1RDtRQUN2RCxJQUFJLENBQUNDLFlBQVksVUFBVUEsWUFBWSxPQUFNLEtBQU1DLFVBQVVDLFNBQVNDLE1BQU0sR0FBRyxHQUFHO1lBQzlFLE9BQU9KO1FBQ1g7UUFDQSxPQUFPQSxXQUFXLE1BQU1DO0lBQzVCLEdBQUc7QUFDUDtBQUNBOzs7Q0FHQyxHQUFVLFNBQVNJLGdCQUFnQkMsR0FBRztJQUNuQyxPQUFPQSxJQUFJQyxPQUFPLENBQUMsZUFDbkI7QUFDSixFQUVBLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzP2QzNGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSBcIi4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaFwiO1xuaW1wb3J0IHsgaXNHcm91cFNlZ21lbnQgfSBmcm9tIFwiLi4vLi4vc2VnbWVudFwiO1xuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFwcFBhdGgocm91dGUpIHtcbiAgICByZXR1cm4gZW5zdXJlTGVhZGluZ1NsYXNoKHJvdXRlLnNwbGl0KFwiL1wiKS5yZWR1Y2UoKHBhdGhuYW1lLCBzZWdtZW50LCBpbmRleCwgc2VnbWVudHMpPT57XG4gICAgICAgIC8vIEVtcHR5IHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRobmFtZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBHcm91cHMgYXJlIGlnbm9yZWQuXG4gICAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIFBhcmFsbGVsIHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgICBpZiAoc2VnbWVudFswXSA9PT0gXCJAXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRobmFtZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICAgIGlmICgoc2VnbWVudCA9PT0gXCJwYWdlXCIgfHwgc2VnbWVudCA9PT0gXCJyb3V0ZVwiKSAmJiBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRobmFtZSArIFwiL1wiICsgc2VnbWVudDtcbiAgICB9LCBcIlwiKSk7XG59XG4vKipcbiAqIFN0cmlwcyB0aGUgYC5yc2NgIGV4dGVuc2lvbiBpZiBpdCdzIGluIHRoZSBwYXRobmFtZS5cbiAqIFNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvbiBmdWxsIHVybHMgaXQgY2hlY2tzIGA/YCBmb3Igc2VhcmNoUGFyYW1zIGhhbmRsaW5nLlxuICovIGV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsKSB7XG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKC9cXC5yc2MoJHxcXD8pLywgLy8gJDEgZW5zdXJlcyBgP2AgaXMgcHJlc2VydmVkXG4gICAgXCIkMVwiKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhdGhzLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnN1cmVMZWFkaW5nU2xhc2giLCJpc0dyb3VwU2VnbWVudCIsIm5vcm1hbGl6ZUFwcFBhdGgiLCJyb3V0ZSIsInNwbGl0IiwicmVkdWNlIiwicGF0aG5hbWUiLCJzZWdtZW50IiwiaW5kZXgiLCJzZWdtZW50cyIsImxlbmd0aCIsIm5vcm1hbGl6ZVJzY1VSTCIsInVybCIsInJlcGxhY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseRelativeUrl: () => (/* binding */ parseRelativeUrl)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/utils.js\");\n/* harmony import */ var _querystring__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./querystring */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js\");\n\n\n/**\n * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative\n * (e.g. `./hello`) then at least base must be.\n * Absolute urls are rejected with one exception, in the browser, absolute urls that are on\n * the current origin will be parsed as relative\n */ function parseRelativeUrl(url, base) {\n const globalBase = new URL( true ? \"http://n\" : 0);\n const resolvedBase = base ? new URL(base, globalBase) : url.startsWith(\".\") ? new URL( true ? \"http://n\" : 0) : globalBase;\n const { pathname, searchParams, search, hash, href, origin } = new URL(url, resolvedBase);\n if (origin !== globalBase.origin) {\n throw new Error(\"invariant: invalid relative URL, router received \" + url);\n }\n return {\n pathname,\n query: (0,_querystring__WEBPACK_IMPORTED_MODULE_1__.searchParamsToUrlQuery)(searchParams),\n search,\n hash,\n href: href.slice(globalBase.origin.length)\n };\n} //# sourceMappingURL=parse-relative-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRDtBQUNPO0FBQ3ZEOzs7OztDQUtDLEdBQVUsU0FBU0UsaUJBQWlCQyxHQUFHLEVBQUVDLElBQUk7SUFDMUMsTUFBTUMsYUFBYSxJQUFJQyxJQUFJLEtBQTZCLEdBQUcsYUFBYU4sQ0FBbUJBO0lBQzNGLE1BQU1PLGVBQWVILE9BQU8sSUFBSUUsSUFBSUYsTUFBTUMsY0FBY0YsSUFBSUssVUFBVSxDQUFDLE9BQU8sSUFBSUYsSUFBSSxLQUE2QixHQUFHLGFBQWFHLENBQW9CLElBQUlKO0lBQzNKLE1BQU0sRUFBRU8sUUFBUSxFQUFFQyxZQUFZLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFSixJQUFJLEVBQUVLLE1BQU0sRUFBRSxHQUFHLElBQUlWLElBQUlILEtBQUtJO0lBQzVFLElBQUlTLFdBQVdYLFdBQVdXLE1BQU0sRUFBRTtRQUM5QixNQUFNLElBQUlDLE1BQU0sc0RBQXNEZDtJQUMxRTtJQUNBLE9BQU87UUFDSFM7UUFDQU0sT0FBT2pCLG9FQUFzQkEsQ0FBQ1k7UUFDOUJDO1FBQ0FDO1FBQ0FKLE1BQU1BLEtBQUtRLEtBQUssQ0FBQ2QsV0FBV1csTUFBTSxDQUFDSSxNQUFNO0lBQzdDO0FBQ0osRUFFQSw4Q0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcz9lNjEwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExvY2F0aW9uT3JpZ2luIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgeyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IH0gZnJvbSBcIi4vcXVlcnlzdHJpbmdcIjtcbi8qKlxuICogUGFyc2VzIHBhdGgtcmVsYXRpdmUgdXJscyAoZS5nLiBgL2hlbGxvL3dvcmxkP2Zvbz1iYXJgKS4gSWYgdXJsIGlzbid0IHBhdGgtcmVsYXRpdmVcbiAqIChlLmcuIGAuL2hlbGxvYCkgdGhlbiBhdCBsZWFzdCBiYXNlIG11c3QgYmUuXG4gKiBBYnNvbHV0ZSB1cmxzIGFyZSByZWplY3RlZCB3aXRoIG9uZSBleGNlcHRpb24sIGluIHRoZSBicm93c2VyLCBhYnNvbHV0ZSB1cmxzIHRoYXQgYXJlIG9uXG4gKiB0aGUgY3VycmVudCBvcmlnaW4gd2lsbCBiZSBwYXJzZWQgYXMgcmVsYXRpdmVcbiAqLyBleHBvcnQgZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybCh1cmwsIGJhc2UpIHtcbiAgICBjb25zdCBnbG9iYWxCYXNlID0gbmV3IFVSTCh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiID8gXCJodHRwOi8vblwiIDogZ2V0TG9jYXRpb25PcmlnaW4oKSk7XG4gICAgY29uc3QgcmVzb2x2ZWRCYXNlID0gYmFzZSA/IG5ldyBVUkwoYmFzZSwgZ2xvYmFsQmFzZSkgOiB1cmwuc3RhcnRzV2l0aChcIi5cIikgPyBuZXcgVVJMKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIgPyBcImh0dHA6Ly9uXCIgOiB3aW5kb3cubG9jYXRpb24uaHJlZikgOiBnbG9iYWxCYXNlO1xuICAgIGNvbnN0IHsgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgc2VhcmNoLCBoYXNoLCBocmVmLCBvcmlnaW4gfSA9IG5ldyBVUkwodXJsLCByZXNvbHZlZEJhc2UpO1xuICAgIGlmIChvcmlnaW4gIT09IGdsb2JhbEJhc2Uub3JpZ2luKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImludmFyaWFudDogaW52YWxpZCByZWxhdGl2ZSBVUkwsIHJvdXRlciByZWNlaXZlZCBcIiArIHVybCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpLFxuICAgICAgICBzZWFyY2gsXG4gICAgICAgIGhhc2gsXG4gICAgICAgIGhyZWY6IGhyZWYuc2xpY2UoZ2xvYmFsQmFzZS5vcmlnaW4ubGVuZ3RoKVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXJlbGF0aXZlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsiZ2V0TG9jYXRpb25PcmlnaW4iLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwicGFyc2VSZWxhdGl2ZVVybCIsInVybCIsImJhc2UiLCJnbG9iYWxCYXNlIiwiVVJMIiwicmVzb2x2ZWRCYXNlIiwic3RhcnRzV2l0aCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInBhdGhuYW1lIiwic2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiaGFzaCIsIm9yaWdpbiIsIkVycm9yIiwicXVlcnkiLCJzbGljZSIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parseUrl: () => (/* binding */ parseUrl)\n/* harmony export */ });\n/* harmony import */ var _querystring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./querystring */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js\");\n/* harmony import */ var _parse_relative_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse-relative-url */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js\");\n\n\nfunction parseUrl(url) {\n if (url.startsWith(\"/\")) {\n return (0,_parse_relative_url__WEBPACK_IMPORTED_MODULE_1__.parseRelativeUrl)(url);\n }\n const parsedURL = new URL(url);\n return {\n hash: parsedURL.hash,\n hostname: parsedURL.hostname,\n href: parsedURL.href,\n pathname: parsedURL.pathname,\n port: parsedURL.port,\n protocol: parsedURL.protocol,\n query: (0,_querystring__WEBPACK_IMPORTED_MODULE_0__.searchParamsToUrlQuery)(parsedURL.searchParams),\n search: parsedURL.search\n };\n} //# sourceMappingURL=parse-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1RDtBQUNDO0FBQ2pELFNBQVNFLFNBQVNDLEdBQUc7SUFDeEIsSUFBSUEsSUFBSUMsVUFBVSxDQUFDLE1BQU07UUFDckIsT0FBT0gscUVBQWdCQSxDQUFDRTtJQUM1QjtJQUNBLE1BQU1FLFlBQVksSUFBSUMsSUFBSUg7SUFDMUIsT0FBTztRQUNISSxNQUFNRixVQUFVRSxJQUFJO1FBQ3BCQyxVQUFVSCxVQUFVRyxRQUFRO1FBQzVCQyxNQUFNSixVQUFVSSxJQUFJO1FBQ3BCQyxVQUFVTCxVQUFVSyxRQUFRO1FBQzVCQyxNQUFNTixVQUFVTSxJQUFJO1FBQ3BCQyxVQUFVUCxVQUFVTyxRQUFRO1FBQzVCQyxPQUFPYixvRUFBc0JBLENBQUNLLFVBQVVTLFlBQVk7UUFDcERDLFFBQVFWLFVBQVVVLE1BQU07SUFDNUI7QUFDSixFQUVBLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtdXJsLmpzP2QwMWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VhcmNoUGFyYW1zVG9VcmxRdWVyeSB9IGZyb20gXCIuL3F1ZXJ5c3RyaW5nXCI7XG5pbXBvcnQgeyBwYXJzZVJlbGF0aXZlVXJsIH0gZnJvbSBcIi4vcGFyc2UtcmVsYXRpdmUtdXJsXCI7XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VVcmwodXJsKSB7XG4gICAgaWYgKHVybC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICByZXR1cm4gcGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWRVUkwgPSBuZXcgVVJMKHVybCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaGFzaDogcGFyc2VkVVJMLmhhc2gsXG4gICAgICAgIGhvc3RuYW1lOiBwYXJzZWRVUkwuaG9zdG5hbWUsXG4gICAgICAgIGhyZWY6IHBhcnNlZFVSTC5ocmVmLFxuICAgICAgICBwYXRobmFtZTogcGFyc2VkVVJMLnBhdGhuYW1lLFxuICAgICAgICBwb3J0OiBwYXJzZWRVUkwucG9ydCxcbiAgICAgICAgcHJvdG9jb2w6IHBhcnNlZFVSTC5wcm90b2NvbCxcbiAgICAgICAgcXVlcnk6IHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkocGFyc2VkVVJMLnNlYXJjaFBhcmFtcyksXG4gICAgICAgIHNlYXJjaDogcGFyc2VkVVJMLnNlYXJjaFxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsic2VhcmNoUGFyYW1zVG9VcmxRdWVyeSIsInBhcnNlUmVsYXRpdmVVcmwiLCJwYXJzZVVybCIsInVybCIsInN0YXJ0c1dpdGgiLCJwYXJzZWRVUkwiLCJVUkwiLCJoYXNoIiwiaG9zdG5hbWUiLCJocmVmIiwicGF0aG5hbWUiLCJwb3J0IiwicHJvdG9jb2wiLCJxdWVyeSIsInNlYXJjaFBhcmFtcyIsInNlYXJjaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getPathMatch: () => (/* binding */ getPathMatch)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(rsc)/../../node_modules/next/dist/compiled/path-to-regexp/index.js\");\n\n\n/**\n * Generates a path matcher function for a given path and options based on\n * path-to-regexp. By default the match will be case insensitive, non strict\n * and delimited by `/`.\n */ function getPathMatch(path, options) {\n const keys = [];\n const regexp = (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.pathToRegexp)(path, keys, {\n delimiter: \"/\",\n sensitive: typeof (options == null ? void 0 : options.sensitive) === \"boolean\" ? options.sensitive : false,\n strict: options == null ? void 0 : options.strict\n });\n const matcher = (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.regexpToFunction)((options == null ? void 0 : options.regexModifier) ? new RegExp(options.regexModifier(regexp.source), regexp.flags) : regexp, keys);\n /**\n * A matcher function that will check if a given pathname matches the path\n * given in the builder function. When the path does not match it will return\n * `false` but if it does it will return an object with the matched params\n * merged with the params provided in the second argument.\n */ return (pathname, params)=>{\n // If no pathname is provided it's not a match.\n if (typeof pathname !== \"string\") return false;\n const match = matcher(pathname);\n // If the path did not match `false` will be returned.\n if (!match) return false;\n /**\n * If unnamed params are not allowed they must be removed from\n * the matched parameters. path-to-regexp uses \"string\" for named and\n * \"number\" for unnamed parameters.\n */ if (options == null ? void 0 : options.removeUnnamedParams) {\n for (const key of keys){\n if (typeof key.name === \"number\") {\n delete match.params[key.name];\n }\n }\n }\n return {\n ...params,\n ...match.params\n };\n };\n} //# sourceMappingURL=path-match.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1tYXRjaC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRTtBQUNJO0FBQ3JFOzs7O0NBSUMsR0FBVSxTQUFTRSxhQUFhQyxJQUFJLEVBQUVDLE9BQU87SUFDMUMsTUFBTUMsT0FBTyxFQUFFO0lBQ2YsTUFBTUMsU0FBU04sK0VBQVlBLENBQUNHLE1BQU1FLE1BQU07UUFDcENFLFdBQVc7UUFDWEMsV0FBVyxPQUFRSixDQUFBQSxXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRSSxTQUFTLE1BQU0sWUFBWUosUUFBUUksU0FBUyxHQUFHO1FBQ3JHQyxRQUFRTCxXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRSyxNQUFNO0lBQ3JEO0lBQ0EsTUFBTUMsVUFBVVQsbUZBQWdCQSxDQUFDLENBQUNHLFdBQVcsT0FBTyxLQUFLLElBQUlBLFFBQVFPLGFBQWEsSUFBSSxJQUFJQyxPQUFPUixRQUFRTyxhQUFhLENBQUNMLE9BQU9PLE1BQU0sR0FBR1AsT0FBT1EsS0FBSyxJQUFJUixRQUFRRDtJQUMvSjs7Ozs7R0FLRCxHQUFHLE9BQU8sQ0FBQ1UsVUFBVUM7UUFDaEIsK0NBQStDO1FBQy9DLElBQUksT0FBT0QsYUFBYSxVQUFVLE9BQU87UUFDekMsTUFBTUUsUUFBUVAsUUFBUUs7UUFDdEIsc0RBQXNEO1FBQ3RELElBQUksQ0FBQ0UsT0FBTyxPQUFPO1FBQ25COzs7O0tBSUgsR0FBRyxJQUFJYixXQUFXLE9BQU8sS0FBSyxJQUFJQSxRQUFRYyxtQkFBbUIsRUFBRTtZQUN4RCxLQUFLLE1BQU1DLE9BQU9kLEtBQUs7Z0JBQ25CLElBQUksT0FBT2MsSUFBSUMsSUFBSSxLQUFLLFVBQVU7b0JBQzlCLE9BQU9ILE1BQU1ELE1BQU0sQ0FBQ0csSUFBSUMsSUFBSSxDQUFDO2dCQUNqQztZQUNKO1FBQ0o7UUFDQSxPQUFPO1lBQ0gsR0FBR0osTUFBTTtZQUNULEdBQUdDLE1BQU1ELE1BQU07UUFDbkI7SUFDSjtBQUNKLEVBRUEsc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXRoLW1hdGNoLmpzPzU1NWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF0aFRvUmVnZXhwIH0gZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cFwiO1xuaW1wb3J0IHsgcmVnZXhwVG9GdW5jdGlvbiB9IGZyb20gXCJuZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHBcIjtcbi8qKlxuICogR2VuZXJhdGVzIGEgcGF0aCBtYXRjaGVyIGZ1bmN0aW9uIGZvciBhIGdpdmVuIHBhdGggYW5kIG9wdGlvbnMgYmFzZWQgb25cbiAqIHBhdGgtdG8tcmVnZXhwLiBCeSBkZWZhdWx0IHRoZSBtYXRjaCB3aWxsIGJlIGNhc2UgaW5zZW5zaXRpdmUsIG5vbiBzdHJpY3RcbiAqIGFuZCBkZWxpbWl0ZWQgYnkgYC9gLlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoTWF0Y2gocGF0aCwgb3B0aW9ucykge1xuICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICBjb25zdCByZWdleHAgPSBwYXRoVG9SZWdleHAocGF0aCwga2V5cywge1xuICAgICAgICBkZWxpbWl0ZXI6IFwiL1wiLFxuICAgICAgICBzZW5zaXRpdmU6IHR5cGVvZiAob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5zZW5zaXRpdmUpID09PSBcImJvb2xlYW5cIiA/IG9wdGlvbnMuc2Vuc2l0aXZlIDogZmFsc2UsXG4gICAgICAgIHN0cmljdDogb3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5zdHJpY3RcbiAgICB9KTtcbiAgICBjb25zdCBtYXRjaGVyID0gcmVnZXhwVG9GdW5jdGlvbigob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5yZWdleE1vZGlmaWVyKSA/IG5ldyBSZWdFeHAob3B0aW9ucy5yZWdleE1vZGlmaWVyKHJlZ2V4cC5zb3VyY2UpLCByZWdleHAuZmxhZ3MpIDogcmVnZXhwLCBrZXlzKTtcbiAgICAvKipcbiAgICogQSBtYXRjaGVyIGZ1bmN0aW9uIHRoYXQgd2lsbCBjaGVjayBpZiBhIGdpdmVuIHBhdGhuYW1lIG1hdGNoZXMgdGhlIHBhdGhcbiAgICogZ2l2ZW4gaW4gdGhlIGJ1aWxkZXIgZnVuY3Rpb24uIFdoZW4gdGhlIHBhdGggZG9lcyBub3QgbWF0Y2ggaXQgd2lsbCByZXR1cm5cbiAgICogYGZhbHNlYCBidXQgaWYgaXQgZG9lcyBpdCB3aWxsIHJldHVybiBhbiBvYmplY3Qgd2l0aCB0aGUgbWF0Y2hlZCBwYXJhbXNcbiAgICogbWVyZ2VkIHdpdGggdGhlIHBhcmFtcyBwcm92aWRlZCBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50LlxuICAgKi8gcmV0dXJuIChwYXRobmFtZSwgcGFyYW1zKT0+e1xuICAgICAgICAvLyBJZiBubyBwYXRobmFtZSBpcyBwcm92aWRlZCBpdCdzIG5vdCBhIG1hdGNoLlxuICAgICAgICBpZiAodHlwZW9mIHBhdGhuYW1lICE9PSBcInN0cmluZ1wiKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gbWF0Y2hlcihwYXRobmFtZSk7XG4gICAgICAgIC8vIElmIHRoZSBwYXRoIGRpZCBub3QgbWF0Y2ggYGZhbHNlYCB3aWxsIGJlIHJldHVybmVkLlxuICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAqIElmIHVubmFtZWQgcGFyYW1zIGFyZSBub3QgYWxsb3dlZCB0aGV5IG11c3QgYmUgcmVtb3ZlZCBmcm9tXG4gICAgICogdGhlIG1hdGNoZWQgcGFyYW1ldGVycy4gcGF0aC10by1yZWdleHAgdXNlcyBcInN0cmluZ1wiIGZvciBuYW1lZCBhbmRcbiAgICAgKiBcIm51bWJlclwiIGZvciB1bm5hbWVkIHBhcmFtZXRlcnMuXG4gICAgICovIGlmIChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnJlbW92ZVVubmFtZWRQYXJhbXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpe1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yga2V5Lm5hbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG1hdGNoLnBhcmFtc1trZXkubmFtZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICAuLi5tYXRjaC5wYXJhbXNcbiAgICAgICAgfTtcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXRoLW1hdGNoLmpzLm1hcCJdLCJuYW1lcyI6WyJwYXRoVG9SZWdleHAiLCJyZWdleHBUb0Z1bmN0aW9uIiwiZ2V0UGF0aE1hdGNoIiwicGF0aCIsIm9wdGlvbnMiLCJrZXlzIiwicmVnZXhwIiwiZGVsaW1pdGVyIiwic2Vuc2l0aXZlIiwic3RyaWN0IiwibWF0Y2hlciIsInJlZ2V4TW9kaWZpZXIiLCJSZWdFeHAiLCJzb3VyY2UiLCJmbGFncyIsInBhdGhuYW1lIiwicGFyYW1zIiwibWF0Y2giLCJyZW1vdmVVbm5hbWVkUGFyYW1zIiwia2V5IiwibmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js":
-/*!***************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js ***!
- \***************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ compileNonPath: () => (/* binding */ compileNonPath),\n/* harmony export */ matchHas: () => (/* binding */ matchHas),\n/* harmony export */ prepareDestination: () => (/* binding */ prepareDestination)\n/* harmony export */ });\n/* harmony import */ var next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(rsc)/../../node_modules/next/dist/compiled/path-to-regexp/index.js\");\n/* harmony import */ var _escape_regexp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../escape-regexp */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/escape-regexp.js\");\n/* harmony import */ var _parse_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parse-url */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js\");\n/* harmony import */ var _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(rsc)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\");\n/* harmony import */ var _client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../client/components/app-router-headers */ \"(rsc)/../../node_modules/next/dist/esm/client/components/app-router-headers.js\");\n/* harmony import */ var _server_api_utils_get_cookie_parser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../server/api-utils/get-cookie-parser */ \"(rsc)/../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js\");\n\n\n\n\n\n\n/**\n * Ensure only a-zA-Z are used for param names for proper interpolating\n * with path-to-regexp\n */ function getSafeParamName(paramName) {\n let newParamName = \"\";\n for(let i = 0; i < paramName.length; i++){\n const charCode = paramName.charCodeAt(i);\n if (charCode > 64 && charCode < 91 || // A-Z\n charCode > 96 && charCode < 123 // a-z\n ) {\n newParamName += paramName[i];\n }\n }\n return newParamName;\n}\nfunction escapeSegment(str, segmentName) {\n return str.replace(new RegExp(\":\" + (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(segmentName), \"g\"), \"__ESC_COLON_\" + segmentName);\n}\nfunction unescapeSegments(str) {\n return str.replace(/__ESC_COLON_/gi, \":\");\n}\nfunction matchHas(req, query, has, missing) {\n if (has === void 0) has = [];\n if (missing === void 0) missing = [];\n const params = {};\n const hasMatch = (hasItem)=>{\n let value;\n let key = hasItem.key;\n switch(hasItem.type){\n case \"header\":\n {\n key = key.toLowerCase();\n value = req.headers[key];\n break;\n }\n case \"cookie\":\n {\n if (\"cookies\" in req) {\n value = req.cookies[hasItem.key];\n } else {\n const cookies = (0,_server_api_utils_get_cookie_parser__WEBPACK_IMPORTED_MODULE_5__.getCookieParser)(req.headers)();\n value = cookies[hasItem.key];\n }\n break;\n }\n case \"query\":\n {\n value = query[key];\n break;\n }\n case \"host\":\n {\n const { host } = (req == null ? void 0 : req.headers) || {};\n // remove port from host if present\n const hostname = host == null ? void 0 : host.split(\":\", 1)[0].toLowerCase();\n value = hostname;\n break;\n }\n default:\n {\n break;\n }\n }\n if (!hasItem.value && value) {\n params[getSafeParamName(key)] = value;\n return true;\n } else if (value) {\n const matcher = new RegExp(\"^\" + hasItem.value + \"$\");\n const matches = Array.isArray(value) ? value.slice(-1)[0].match(matcher) : value.match(matcher);\n if (matches) {\n if (Array.isArray(matches)) {\n if (matches.groups) {\n Object.keys(matches.groups).forEach((groupKey)=>{\n params[groupKey] = matches.groups[groupKey];\n });\n } else if (hasItem.type === \"host\" && matches[0]) {\n params.host = matches[0];\n }\n }\n return true;\n }\n }\n return false;\n };\n const allMatch = has.every((item)=>hasMatch(item)) && !missing.some((item)=>hasMatch(item));\n if (allMatch) {\n return params;\n }\n return false;\n}\nfunction compileNonPath(value, params) {\n if (!value.includes(\":\")) {\n return value;\n }\n for (const key of Object.keys(params)){\n if (value.includes(\":\" + key)) {\n value = value.replace(new RegExp(\":\" + key + \"\\\\*\", \"g\"), \":\" + key + \"--ESCAPED_PARAM_ASTERISKS\").replace(new RegExp(\":\" + key + \"\\\\?\", \"g\"), \":\" + key + \"--ESCAPED_PARAM_QUESTION\").replace(new RegExp(\":\" + key + \"\\\\+\", \"g\"), \":\" + key + \"--ESCAPED_PARAM_PLUS\").replace(new RegExp(\":\" + key + \"(?!\\\\w)\", \"g\"), \"--ESCAPED_PARAM_COLON\" + key);\n }\n }\n value = value.replace(/(:|\\*|\\?|\\+|\\(|\\)|\\{|\\})/g, \"\\\\$1\").replace(/--ESCAPED_PARAM_PLUS/g, \"+\").replace(/--ESCAPED_PARAM_COLON/g, \":\").replace(/--ESCAPED_PARAM_QUESTION/g, \"?\").replace(/--ESCAPED_PARAM_ASTERISKS/g, \"*\");\n // the value needs to start with a forward-slash to be compiled\n // correctly\n return (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.compile)(\"/\" + value, {\n validate: false\n })(params).slice(1);\n}\nfunction prepareDestination(args) {\n const query = Object.assign({}, args.query);\n delete query.__nextLocale;\n delete query.__nextDefaultLocale;\n delete query.__nextDataReq;\n delete query.__nextInferredLocaleFromDefault;\n delete query[_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_4__.NEXT_RSC_UNION_QUERY];\n let escapedDestination = args.destination;\n for (const param of Object.keys({\n ...args.params,\n ...query\n })){\n escapedDestination = escapeSegment(escapedDestination, param);\n }\n const parsedDestination = (0,_parse_url__WEBPACK_IMPORTED_MODULE_2__.parseUrl)(escapedDestination);\n const destQuery = parsedDestination.query;\n const destPath = unescapeSegments(\"\" + parsedDestination.pathname + (parsedDestination.hash || \"\"));\n const destHostname = unescapeSegments(parsedDestination.hostname || \"\");\n const destPathParamKeys = [];\n const destHostnameParamKeys = [];\n (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.pathToRegexp)(destPath, destPathParamKeys);\n (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.pathToRegexp)(destHostname, destHostnameParamKeys);\n const destParams = [];\n destPathParamKeys.forEach((key)=>destParams.push(key.name));\n destHostnameParamKeys.forEach((key)=>destParams.push(key.name));\n const destPathCompiler = (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.compile)(destPath, // have already validated before we got to this point and validating\n // breaks compiling destinations with named pattern params from the source\n // e.g. /something:hello(.*) -> /another/:hello is broken with validation\n // since compile validation is meant for reversing and not for inserting\n // params from a separate path-regex into another\n {\n validate: false\n });\n const destHostnameCompiler = (0,next_dist_compiled_path_to_regexp__WEBPACK_IMPORTED_MODULE_0__.compile)(destHostname, {\n validate: false\n });\n // update any params in query values\n for (const [key, strOrArray] of Object.entries(destQuery)){\n // the value needs to start with a forward-slash to be compiled\n // correctly\n if (Array.isArray(strOrArray)) {\n destQuery[key] = strOrArray.map((value)=>compileNonPath(unescapeSegments(value), args.params));\n } else if (typeof strOrArray === \"string\") {\n destQuery[key] = compileNonPath(unescapeSegments(strOrArray), args.params);\n }\n }\n // add path params to query if it's not a redirect and not\n // already defined in destination query or path\n let paramKeys = Object.keys(args.params).filter((name)=>name !== \"nextInternalLocale\");\n if (args.appendParamsToQuery && !paramKeys.some((key)=>destParams.includes(key))) {\n for (const key of paramKeys){\n if (!(key in destQuery)) {\n destQuery[key] = args.params[key];\n }\n }\n }\n let newUrl;\n // The compiler also that the interception route marker is an unnamed param, hence '0',\n // so we need to add it to the params object.\n if ((0,_server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_3__.isInterceptionRouteAppPath)(destPath)) {\n for (const segment of destPath.split(\"/\")){\n const marker = _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_3__.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n args.params[\"0\"] = marker;\n break;\n }\n }\n }\n try {\n newUrl = destPathCompiler(args.params);\n const [pathname, hash] = newUrl.split(\"#\", 2);\n parsedDestination.hostname = destHostnameCompiler(args.params);\n parsedDestination.pathname = pathname;\n parsedDestination.hash = \"\" + (hash ? \"#\" : \"\") + (hash || \"\");\n delete parsedDestination.search;\n } catch (err) {\n if (err.message.match(/Expected .*? to not repeat, but got an array/)) {\n throw new Error(\"To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match\");\n }\n throw err;\n }\n // Query merge order lowest priority to highest\n // 1. initial URL query values\n // 2. path segment values\n // 3. destination specified query values\n parsedDestination.query = {\n ...query,\n ...parsedDestination.query\n };\n return {\n newUrl,\n destQuery,\n parsedDestination\n };\n} //# sourceMappingURL=prepare-destination.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcHJlcGFyZS1kZXN0aW5hdGlvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBMEU7QUFDakI7QUFDbEI7QUFDd0Y7QUFDdkM7QUFDUDtBQUNqRjs7O0NBR0MsR0FBRyxTQUFTUSxpQkFBaUJDLFNBQVM7SUFDbkMsSUFBSUMsZUFBZTtJQUNuQixJQUFJLElBQUlDLElBQUksR0FBR0EsSUFBSUYsVUFBVUcsTUFBTSxFQUFFRCxJQUFJO1FBQ3JDLE1BQU1FLFdBQVdKLFVBQVVLLFVBQVUsQ0FBQ0g7UUFDdEMsSUFBSUUsV0FBVyxNQUFNQSxXQUFXLE1BQU0sTUFBTTtRQUM1Q0EsV0FBVyxNQUFNQSxXQUFXLElBQUksTUFBTTtVQUNwQztZQUNFSCxnQkFBZ0JELFNBQVMsQ0FBQ0UsRUFBRTtRQUNoQztJQUNKO0lBQ0EsT0FBT0Q7QUFDWDtBQUNBLFNBQVNLLGNBQWNDLEdBQUcsRUFBRUMsV0FBVztJQUNuQyxPQUFPRCxJQUFJRSxPQUFPLENBQUMsSUFBSUMsT0FBTyxNQUFNakIsa0VBQWtCQSxDQUFDZSxjQUFjLE1BQU0saUJBQWlCQTtBQUNoRztBQUNBLFNBQVNHLGlCQUFpQkosR0FBRztJQUN6QixPQUFPQSxJQUFJRSxPQUFPLENBQUMsa0JBQWtCO0FBQ3pDO0FBQ08sU0FBU0csU0FBU0MsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLEdBQUcsRUFBRUMsT0FBTztJQUM3QyxJQUFJRCxRQUFRLEtBQUssR0FBR0EsTUFBTSxFQUFFO0lBQzVCLElBQUlDLFlBQVksS0FBSyxHQUFHQSxVQUFVLEVBQUU7SUFDcEMsTUFBTUMsU0FBUyxDQUFDO0lBQ2hCLE1BQU1DLFdBQVcsQ0FBQ0M7UUFDZCxJQUFJQztRQUNKLElBQUlDLE1BQU1GLFFBQVFFLEdBQUc7UUFDckIsT0FBT0YsUUFBUUcsSUFBSTtZQUNmLEtBQUs7Z0JBQ0Q7b0JBQ0lELE1BQU1BLElBQUlF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QUs7SUFDOUI7SUFDQSxPQUFPO1FBQ0g4RDtRQUNBbEI7UUFDQUQ7SUFDSjtBQUNKLEVBRUEsK0NBQStDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wcmVwYXJlLWRlc3RpbmF0aW9uLmpzP2Q0MjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGlsZSwgcGF0aFRvUmVnZXhwIH0gZnJvbSBcIm5leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cFwiO1xuaW1wb3J0IHsgZXNjYXBlU3RyaW5nUmVnZXhwIH0gZnJvbSBcIi4uLy4uL2VzY2FwZS1yZWdleHBcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIi4vcGFyc2UtdXJsXCI7XG5pbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUywgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGggfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXNcIjtcbmltcG9ydCB7IE5FWFRfUlNDX1VOSU9OX1FVRVJZIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiO1xuaW1wb3J0IHsgZ2V0Q29va2llUGFyc2VyIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZlci9hcGktdXRpbHMvZ2V0LWNvb2tpZS1wYXJzZXJcIjtcbi8qKlxuICogRW5zdXJlIG9ubHkgYS16QS1aIGFyZSB1c2VkIGZvciBwYXJhbSBuYW1lcyBmb3IgcHJvcGVyIGludGVycG9sYXRpbmdcbiAqIHdpdGggcGF0aC10by1yZWdleHBcbiAqLyBmdW5jdGlvbiBnZXRTYWZlUGFyYW1OYW1lKHBhcmFtTmFtZSkge1xuICAgIGxldCBuZXdQYXJhbU5hbWUgPSBcIlwiO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBwYXJhbU5hbWUubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBjaGFyQ29kZSA9IHBhcmFtTmFtZS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoY2hhckNvZGUgPiA2NCAmJiBjaGFyQ29kZSA8IDkxIHx8IC8vIEEtWlxuICAgICAgICBjaGFyQ29kZSA+IDk2ICYmIGNoYXJDb2RlIDwgMTIzIC8vIGEtelxuICAgICAgICApIHtcbiAgICAgICAgICAgIG5ld1BhcmFtTmFtZSArPSBwYXJhbU5hbWVbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1BhcmFtTmFtZTtcbn1cbmZ1bmN0aW9uIGVzY2FwZVNlZ21lbnQoc3RyLCBzZWdtZW50TmFtZSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiOlwiICsgZXNjYXBlU3RyaW5nUmVnZXhwKHNlZ21lbnROYW1lKSwgXCJnXCIpLCBcIl9fRVNDX0NPTE9OX1wiICsgc2VnbWVudE5hbWUpO1xufVxuZnVuY3Rpb24gdW5lc2NhcGVTZWdtZW50cyhzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL19fRVNDX0NPTE9OXy9naSwgXCI6XCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoSGFzKHJlcSwgcXVlcnksIGhhcywgbWlzc2luZykge1xuICAgIGlmIChoYXMgPT09IHZvaWQgMCkgaGFzID0gW107XG4gICAgaWYgKG1pc3NpbmcgPT09IHZvaWQgMCkgbWlzc2luZyA9IFtdO1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IGhhc01hdGNoID0gKGhhc0l0ZW0pPT57XG4gICAgICAgIGxldCB2YWx1ZTtcbiAgICAgICAgbGV0IGtleSA9IGhhc0l0ZW0ua2V5O1xuICAgICAgICBzd2l0Y2goaGFzSXRlbS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgXCJoZWFkZXJcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHJlcS5oZWFkZXJzW2tleV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJjb29raWVcIjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcImNvb2tpZXNcIiBpbiByZXEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcmVxLmNvb2tpZXNbaGFzSXRlbS5rZXldO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29va2llcyA9IGdldENvb2tpZVBhcnNlcihyZXEuaGVhZGVycykoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29va2llc1toYXNJdGVtLmtleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcInF1ZXJ5XCI6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJob3N0XCI6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGhvc3QgfSA9IChyZXEgPT0gbnVsbCA/IHZvaWQgMCA6IHJlcS5oZWFkZXJzKSB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHBvcnQgZnJvbSBob3N0IGlmIHByZXNlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaG9zdG5hbWUgPSBob3N0ID09IG51bGwgPyB2b2lkIDAgOiBob3N0LnNwbGl0KFwiOlwiLCAxKVswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGhvc3RuYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaGFzSXRlbS52YWx1ZSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgcGFyYW1zW2dldFNhZmVQYXJhbU5hbWUoa2V5KV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVyID0gbmV3IFJlZ0V4cChcIl5cIiArIGhhc0l0ZW0udmFsdWUgKyBcIiRcIik7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5zbGljZSgtMSlbMF0ubWF0Y2gobWF0Y2hlcikgOiB2YWx1ZS5tYXRjaChtYXRjaGVyKTtcbiAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobWF0Y2hlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXMuZ3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhtYXRjaGVzLmdyb3VwcykuZm9yRWFjaCgoZ3JvdXBLZXkpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zW2dyb3VwS2V5XSA9IG1hdGNoZXMuZ3JvdXBzW2dyb3VwS2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0l0ZW0udHlwZSA9PT0gXCJob3N0XCIgJiYgbWF0Y2hlc1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmhvc3QgPSBtYXRjaGVzWzBdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIGNvbnN0IGFsbE1hdGNoID0gaGFzLmV2ZXJ5KChpdGVtKT0+aGFzTWF0Y2goaXRlbSkpICYmICFtaXNzaW5nLnNvbWUoKGl0ZW0pPT5oYXNNYXRjaChpdGVtKSk7XG4gICAgaWYgKGFsbE1hdGNoKSB7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjb21waWxlTm9uUGF0aCh2YWx1ZSwgcGFyYW1zKSB7XG4gICAgaWYgKCF2YWx1ZS5pbmNsdWRlcyhcIjpcIikpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKXtcbiAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKFwiOlwiICsga2V5KSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCI6XCIgKyBrZXkgKyBcIlxcXFwqXCIsIFwiZ1wiKSwgXCI6XCIgKyBrZXkgKyBcIi0tRVNDQVBFRF9QQVJBTV9BU1RFUklTS1NcIikucmVwbGFjZShuZXcgUmVnRXhwKFwiOlwiICsga2V5ICsgXCJcXFxcP1wiLCBcImdcIiksIFwiOlwiICsga2V5ICsgXCItLUVTQ0FQRURfUEFSQU1fUVVFU1RJT05cIikucmVwbGFjZShuZXcgUmVnRXhwKFwiOlwiICsga2V5ICsgXCJcXFxcK1wiLCBcImdcIiksIFwiOlwiICsga2V5ICsgXCItLUVTQ0FQRURfUEFSQU1fUExVU1wiKS5yZXBsYWNlKG5ldyBSZWdFeHAoXCI6XCIgKyBrZXkgKyBcIig/IVxcXFx3KVwiLCBcImdcIiksIFwiLS1FU0NBUEVEX1BBUkFNX0NPTE9OXCIgKyBrZXkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvKDp8XFwqfFxcP3xcXCt8XFwofFxcKXxcXHt8XFx9KS9nLCBcIlxcXFwkMVwiKS5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fUExVUy9nLCBcIitcIikucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX0NPTE9OL2csIFwiOlwiKS5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fUVVFU1RJT04vZywgXCI/XCIpLnJlcGxhY2UoLy0tRVNDQVBFRF9QQVJBTV9BU1RFUklTS1MvZywgXCIqXCIpO1xuICAgIC8vIHRoZSB2YWx1ZSBuZWVkcyB0byBzdGFydCB3aXRoIGEgZm9yd2FyZC1zbGFzaCB0byBiZSBjb21waWxlZFxuICAgIC8vIGNvcnJlY3RseVxuICAgIHJldHVybiBjb21waWxlKFwiL1wiICsgdmFsdWUsIHtcbiAgICAgICAgdmFsaWRhdGU6IGZhbHNlXG4gICAgfSkocGFyYW1zKS5zbGljZSgxKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlRGVzdGluYXRpb24oYXJncykge1xuICAgIGNvbnN0IHF1ZXJ5ID0gT2JqZWN0LmFzc2lnbih7fSwgYXJncy5xdWVyeSk7XG4gICAgZGVsZXRlIHF1ZXJ5Ll9fbmV4dExvY2FsZTtcbiAgICBkZWxldGUgcXVlcnkuX19uZXh0RGVmYXVsdExvY2FsZTtcbiAgICBkZWxldGUgcXVlcnkuX19uZXh0RGF0YVJlcTtcbiAgICBkZWxldGUgcXVlcnkuX19uZXh0SW5mZXJyZWRMb2NhbGVGcm9tRGVmYXVsdDtcbiAgICBkZWxldGUgcXVlcnlbTkVYVF9SU0NfVU5JT05fUVVFUlldO1xuICAgIGxldCBlc2NhcGVkRGVzdGluYXRpb24gPSBhcmdzLmRlc3RpbmF0aW9uO1xuICAgIGZvciAoY29uc3QgcGFyYW0gb2YgT2JqZWN0LmtleXMoe1xuICAgICAgICAuLi5hcmdzLnBhcmFtcyxcbiAgICAgICAgLi4ucXVlcnlcbiAgICB9KSl7XG4gICAgICAgIGVzY2FwZWREZXN0aW5hdGlvbiA9IGVzY2FwZVNlZ21lbnQoZXNjYXBlZERlc3RpbmF0aW9uLCBwYXJhbSk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZERlc3RpbmF0aW9uID0gcGFyc2VVcmwoZXNjYXBlZERlc3RpbmF0aW9uKTtcbiAgICBjb25zdCBkZXN0UXVlcnkgPSBwYXJzZWREZXN0aW5hdGlvbi5xdWVyeTtcbiAgICBjb25zdCBkZXN0UGF0aCA9IHVuZXNjYXBlU2VnbWVudHMoXCJcIiArIHBhcnNlZERlc3RpbmF0aW9uLnBhdGhuYW1lICsgKHBhcnNlZERlc3RpbmF0aW9uLmhhc2ggfHwgXCJcIikpO1xuICAgIGNvbnN0IGRlc3RIb3N0bmFtZSA9IHVuZXNjYXBlU2VnbWVudHMocGFyc2VkRGVzdGluYXRpb24uaG9zdG5hbWUgfHwgXCJcIik7XG4gICAgY29uc3QgZGVzdFBhdGhQYXJhbUtleXMgPSBbXTtcbiAgICBjb25zdCBkZXN0SG9zdG5hbWVQYXJhbUtleXMgPSBbXTtcbiAgICBwYXRoVG9SZWdleHAoZGVzdFBhdGgsIGRlc3RQYXRoUGFyYW1LZXlzKTtcbiAgICBwYXRoVG9SZWdleHAoZGVzdEhvc3RuYW1lLCBkZXN0SG9zdG5hbWVQYXJhbUtleXMpO1xuICAgIGNvbnN0IGRlc3RQYXJhbXMgPSBbXTtcbiAgICBkZXN0UGF0aFBhcmFtS2V5cy5mb3JFYWNoKChrZXkpPT5kZXN0UGFyYW1zLnB1c2goa2V5Lm5hbWUpKTtcbiAgICBkZXN0SG9zdG5hbWVQYXJhbUtleXMuZm9yRWFjaCgoa2V5KT0+ZGVzdFBhcmFtcy5wdXNoKGtleS5uYW1lKSk7XG4gICAgY29uc3QgZGVzdFBhdGhDb21waWxlciA9IGNvbXBpbGUoZGVzdFBhdGgsIC8vIHdlIGRvbid0IHZhbGlkYXRlIHdoaWxlIGNvbXBpbGluZyB0aGUgZGVzdGluYXRpb24gc2luY2Ugd2Ugc2hvdWxkXG4gICAgLy8gaGF2ZSBhbHJlYWR5IHZhbGlkYXRlZCBiZWZvcmUgd2UgZ290IHRvIHRoaXMgcG9pbnQgYW5kIHZhbGlkYXRpbmdcbiAgICAvLyBicmVha3MgY29tcGlsaW5nIGRlc3RpbmF0aW9ucyB3aXRoIG5hbWVkIHBhdHRlcm4gcGFyYW1zIGZyb20gdGhlIHNvdXJjZVxuICAgIC8vIGUuZy4gL3NvbWV0aGluZzpoZWxsbyguKikgLT4gL2Fub3RoZXIvOmhlbGxvIGlzIGJyb2tlbiB3aXRoIHZhbGlkYXRpb25cbiAgICAvLyBzaW5jZSBjb21waWxlIHZhbGlkYXRpb24gaXMgbWVhbnQgZm9yIHJldmVyc2luZyBhbmQgbm90IGZvciBpbnNlcnRpbmdcbiAgICAvLyBwYXJhbXMgZnJvbSBhIHNlcGFyYXRlIHBhdGgtcmVnZXggaW50byBhbm90aGVyXG4gICAge1xuICAgICAgICB2YWxpZGF0ZTogZmFsc2VcbiAgICB9KTtcbiAgICBjb25zdCBkZXN0SG9zdG5hbWVDb21waWxlciA9IGNvbXBpbGUoZGVzdEhvc3RuYW1lLCB7XG4gICAgICAgIHZhbGlkYXRlOiBmYWxzZVxuICAgIH0pO1xuICAgIC8vIHVwZGF0ZSBhbnkgcGFyYW1zIGluIHF1ZXJ5IHZhbHVlc1xuICAgIGZvciAoY29uc3QgW2tleSwgc3RyT3JBcnJheV0gb2YgT2JqZWN0LmVudHJpZXMoZGVzdFF1ZXJ5KSl7XG4gICAgICAgIC8vIHRoZSB2YWx1ZSBuZWVkcyB0byBzdGFydCB3aXRoIGEgZm9yd2FyZC1zbGFzaCB0byBiZSBjb21waWxlZFxuICAgICAgICAvLyBjb3JyZWN0bHlcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc3RyT3JBcnJheSkpIHtcbiAgICAgICAgICAgIGRlc3RRdWVyeVtrZXldID0gc3RyT3JBcnJheS5tYXAoKHZhbHVlKT0+Y29tcGlsZU5vblBhdGgodW5lc2NhcGVTZWdtZW50cyh2YWx1ZSksIGFyZ3MucGFyYW1zKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0ck9yQXJyYXkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGRlc3RRdWVyeVtrZXldID0gY29tcGlsZU5vblBhdGgodW5lc2NhcGVTZWdtZW50cyhzdHJPckFycmF5KSwgYXJncy5wYXJhbXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGFkZCBwYXRoIHBhcmFtcyB0byBxdWVyeSBpZiBpdCdzIG5vdCBhIHJlZGlyZWN0IGFuZCBub3RcbiAgICAvLyBhbHJlYWR5IGRlZmluZWQgaW4gZGVzdGluYXRpb24gcXVlcnkgb3IgcGF0aFxuICAgIGxldCBwYXJhbUtleXMgPSBPYmplY3Qua2V5cyhhcmdzLnBhcmFtcykuZmlsdGVyKChuYW1lKT0+bmFtZSAhPT0gXCJuZXh0SW50ZXJuYWxMb2NhbGVcIik7XG4gICAgaWYgKGFyZ3MuYXBwZW5kUGFyYW1zVG9RdWVyeSAmJiAhcGFyYW1LZXlzLnNvbWUoKGtleSk9PmRlc3RQYXJhbXMuaW5jbHVkZXMoa2V5KSkpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgcGFyYW1LZXlzKXtcbiAgICAgICAgICAgIGlmICghKGtleSBpbiBkZXN0UXVlcnkpKSB7XG4gICAgICAgICAgICAgICAgZGVzdFF1ZXJ5W2tleV0gPSBhcmdzLnBhcmFtc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBuZXdVcmw7XG4gICAgLy8gVGhlIGNvbXBpbGVyIGFsc28gdGhhdCB0aGUgaW50ZXJjZXB0aW9uIHJvdXRlIG1hcmtlciBpcyBhbiB1bm5hbWVkIHBhcmFtLCBoZW5jZSAnMCcsXG4gICAgLy8gc28gd2UgbmVlZCB0byBhZGQgaXQgdG8gdGhlIHBhcmFtcyBvYmplY3QuXG4gICAgaWYgKGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKGRlc3RQYXRoKSkge1xuICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgZGVzdFBhdGguc3BsaXQoXCIvXCIpKXtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pPT5zZWdtZW50LnN0YXJ0c1dpdGgobSkpO1xuICAgICAgICAgICAgaWYgKG1hcmtlcikge1xuICAgICAgICAgICAgICAgIGFyZ3MucGFyYW1zW1wiMFwiXSA9IG1hcmtlcjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBuZXdVcmwgPSBkZXN0UGF0aENvbXBpbGVyKGFyZ3MucGFyYW1zKTtcbiAgICAgICAgY29uc3QgW3BhdGhuYW1lLCBoYXNoXSA9IG5ld1VybC5zcGxpdChcIiNcIiwgMik7XG4gICAgICAgIHBhcnNlZERlc3RpbmF0aW9uLmhvc3RuYW1lID0gZGVzdEhvc3RuYW1lQ29tcGlsZXIoYXJncy5wYXJhbXMpO1xuICAgICAgICBwYXJzZWREZXN0aW5hdGlvbi5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICAgICAgICBwYXJzZWREZXN0aW5hdGlvbi5oYXNoID0gXCJcIiArIChoYXNoID8gXCIjXCIgOiBcIlwiKSArIChoYXNoIHx8IFwiXCIpO1xuICAgICAgICBkZWxldGUgcGFyc2VkRGVzdGluYXRpb24uc2VhcmNoO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoZXJyLm1lc3NhZ2UubWF0Y2goL0V4cGVjdGVkIC4qPyB0byBub3QgcmVwZWF0LCBidXQgZ290IGFuIGFycmF5LykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRvIHVzZSBhIG11bHRpLW1hdGNoIGluIHRoZSBkZXN0aW5hdGlvbiB5b3UgbXVzdCBhZGQgYCpgIGF0IHRoZSBlbmQgb2YgdGhlIHBhcmFtIG5hbWUgdG8gc2lnbmlmeSBpdCBzaG91bGQgcmVwZWF0LiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLW11bHRpLW1hdGNoXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgLy8gUXVlcnkgbWVyZ2Ugb3JkZXIgbG93ZXN0IHByaW9yaXR5IHRvIGhpZ2hlc3RcbiAgICAvLyAxLiBpbml0aWFsIFVSTCBxdWVyeSB2YWx1ZXNcbiAgICAvLyAyLiBwYXRoIHNlZ21lbnQgdmFsdWVzXG4gICAgLy8gMy4gZGVzdGluYXRpb24gc3BlY2lmaWVkIHF1ZXJ5IHZhbHVlc1xuICAgIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5ID0ge1xuICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgLi4ucGFyc2VkRGVzdGluYXRpb24ucXVlcnlcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIG5ld1VybCxcbiAgICAgICAgZGVzdFF1ZXJ5LFxuICAgICAgICBwYXJzZWREZXN0aW5hdGlvblxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZXBhcmUtZGVzdGluYXRpb24uanMubWFwIl0sIm5hbWVzIjpbImNvbXBpbGUiLCJwYXRoVG9SZWdleHAiLCJlc2NhcGVTdHJpbmdSZWdleHAiLCJwYXJzZVVybCIsIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJORVhUX1JTQ19VTklPTl9RVUVSWSIsImdldENvb2tpZVBhcnNlciIsImdldFNhZmVQYXJhbU5hbWUiLCJwYXJhbU5hbWUiLCJuZXdQYXJhbU5hbWUiLCJpIiwibGVuZ3RoIiwiY2hhckNvZGUiLCJjaGFyQ29kZUF0IiwiZXNjYXBlU2VnbWVudCIsInN0ciIsInNlZ21lbnROYW1lIiwicmVwbGFjZSIsIlJlZ0V4cCIsInVuZXNjYXBlU2VnbWVudHMiLCJtYXRjaEhhcyIsInJlcSIsInF1ZXJ5IiwiaGFzIiwibWlzc2luZyIsInBhcmFtcyIsImhhc01hdGNoIiwiaGFzSXRlbSIsInZhbHVlIiwia2V5IiwidHlwZSIsInRvTG93ZXJDYXNlIiwiaGVhZGVycyIsImNvb2tpZXMiLCJob3N0IiwiaG9zdG5hbWUiLCJzcGxpdCIsIm1hdGNoZXIiLCJtYXRjaGVzIiwiQXJyYXkiLCJpc0FycmF5Iiwic2xpY2UiLCJtYXRjaCIsImdyb3VwcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiZ3JvdXBLZXkiLCJhbGxNYXRjaCIsImV2ZXJ5IiwiaXRlbSIsInNvbWUiLCJjb21waWxlTm9uUGF0aCIsImluY2x1ZGVzIiwidmFsaWRhdGUiLCJwcmVwYXJlRGVzdGluYXRpb24iLCJhcmdzIiwiYXNzaWduIiwiX19uZXh0TG9jYWxlIiwiX19uZXh0RGVmYXVsdExvY2FsZSIsIl9fbmV4dERhdGFSZXEiLCJfX25leHRJbmZlcnJlZExvY2FsZUZyb21EZWZhdWx0IiwiZXNjYXBlZERlc3RpbmF0aW9uIiwiZGVzdGluYXRpb24iLCJwYXJhbSIsInBhcnNlZERlc3RpbmF0aW9uIiwiZGVzdFF1ZXJ5IiwiZGVzdFBhdGgiLCJwYXRobmFtZSIsImhhc2giLCJkZXN0SG9zdG5hbWUiLCJkZXN0UGF0aFBhcmFtS2V5cyIsImRlc3RIb3N0bmFtZVBhcmFtS2V5cyIsImRlc3RQYXJhbXMiLCJwdXNoIiwibmFtZSIsImRlc3RQYXRoQ29tcGlsZXIiLCJkZXN0SG9zdG5hbWVDb21waWxlciIsInN0ck9yQXJyYXkiLCJlbnRyaWVzIiwibWFwIiwicGFyYW1LZXlzIiwiZmlsdGVyIiwiYXBwZW5kUGFyYW1zVG9RdWVyeSIsIm5ld1VybCIsInNlZ21lbnQiLCJtYXJrZXIiLCJmaW5kIiwibSIsInN0YXJ0c1dpdGgiLCJzZWFyY2giLCJlcnIiLCJtZXNzYWdlIiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ assign: () => (/* binding */ assign),\n/* harmony export */ searchParamsToUrlQuery: () => (/* binding */ searchParamsToUrlQuery),\n/* harmony export */ urlQueryToSearchParams: () => (/* binding */ urlQueryToSearchParams)\n/* harmony export */ });\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n searchParams.forEach((value, key)=>{\n if (typeof query[key] === \"undefined\") {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [\n query[key],\n value\n ];\n }\n });\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === \"string\" || typeof param === \"number\" && !isNaN(param) || typeof param === \"boolean\") {\n return String(param);\n } else {\n return \"\";\n }\n}\nfunction urlQueryToSearchParams(urlQuery) {\n const result = new URLSearchParams();\n Object.entries(urlQuery).forEach((param)=>{\n let [key, value] = param;\n if (Array.isArray(value)) {\n value.forEach((item)=>result.append(key, stringifyUrlQueryParam(item)));\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n searchParamsList.forEach((searchParams)=>{\n Array.from(searchParams.keys()).forEach((key)=>target.delete(key));\n searchParams.forEach((value, key)=>target.append(key, value));\n });\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU8sU0FBU0EsdUJBQXVCQyxZQUFZO0lBQy9DLE1BQU1DLFFBQVEsQ0FBQztJQUNmRCxhQUFhRSxPQUFPLENBQUMsQ0FBQ0MsT0FBT0M7UUFDekIsSUFBSSxPQUFPSCxLQUFLLENBQUNHLElBQUksS0FBSyxhQUFhO1lBQ25DSCxLQUFLLENBQUNHLElBQUksR0FBR0Q7UUFDakIsT0FBTyxJQUFJRSxNQUFNQyxPQUFPLENBQUNMLEtBQUssQ0FBQ0csSUFBSSxHQUFHO1lBQ2xDSCxLQUFLLENBQUNHLElBQUksQ0FBQ0csSUFBSSxDQUFDSjtRQUNwQixPQUFPO1lBQ0hGLEtBQUssQ0FBQ0csSUFBSSxHQUFHO2dCQUNUSCxLQUFLLENBQUNHLElBQUk7Z0JBQ1ZEO2FBQ0g7UUFDTDtJQUNKO0lBQ0EsT0FBT0Y7QUFDWDtBQUNBLFNBQVNPLHVCQUF1QkMsS0FBSztJQUNqQyxJQUFJLE9BQU9BLFVBQVUsWUFBWSxPQUFPQSxVQUFVLFlBQVksQ0FBQ0MsTUFBTUQsVUFBVSxPQUFPQSxVQUFVLFdBQVc7UUFDdkcsT0FBT0UsT0FBT0Y7SUFDbEIsT0FBTztRQUNILE9BQU87SUFDWDtBQUNKO0FBQ08sU0FBU0csdUJBQXVCQyxRQUFRO0lBQzNDLE1BQU1DLFNBQVMsSUFBSUM7SUFDbkJDLE9BQU9DLE9BQU8sQ0FBQ0osVUFBVVgsT0FBTyxDQUFDLENBQUNPO1FBQzlCLElBQUksQ0FBQ0wsS0FBS0QsTUFBTSxHQUFHTTtRQUNuQixJQUFJSixNQUFNQyxPQUFPLENBQUNILFFBQVE7WUFDdEJBLE1BQU1ELE9BQU8sQ0FBQyxDQUFDZ0IsT0FBT0osT0FBT0ssTUFBTSxDQUFDZixLQUFLSSx1QkFBdUJVO1FBQ3BFLE9BQU87WUFDSEosT0FBT00sR0FBRyxDQUFDaEIsS0FBS0ksdUJBQXVCTDtRQUMzQztJQUNKO0lBQ0EsT0FBT1c7QUFDWDtBQUNPLFNBQVNPLE9BQU9DLE1BQU07SUFDekIsSUFBSSxJQUFJQyxPQUFPQyxVQUFVQyxNQUFNLEVBQUVDLG1CQUFtQixJQUFJckIsTUFBTWtCLE9BQU8sSUFBSUEsT0FBTyxJQUFJLElBQUlJLE9BQU8sR0FBR0EsT0FBT0osTUFBTUksT0FBTztRQUNsSEQsZ0JBQWdCLENBQUNDLE9BQU8sRUFBRSxHQUFHSCxTQUFTLENBQUNHLEtBQUs7SUFDaEQ7SUFDQUQsaUJBQWlCeEIsT0FBTyxDQUFDLENBQUNGO1FBQ3RCSyxNQUFNdUIsSUFBSSxDQUFDNUIsYUFBYTZCLElBQUksSUFBSTNCLE9BQU8sQ0FBQyxDQUFDRSxNQUFNa0IsT0FBT1EsTUFBTSxDQUFDMUI7UUFDN0RKLGFBQWFFLE9BQU8sQ0FBQyxDQUFDQyxPQUFPQyxNQUFNa0IsT0FBT0gsTUFBTSxDQUFDZixLQUFLRDtJQUMxRDtJQUNBLE9BQU9tQjtBQUNYLEVBRUEsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZy5qcz8zNDVjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHNlYXJjaFBhcmFtcykge1xuICAgIGNvbnN0IHF1ZXJ5ID0ge307XG4gICAgc2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpPT57XG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnlba2V5XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgcXVlcnlba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgICAgICAgIHF1ZXJ5W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVtrZXldID0gW1xuICAgICAgICAgICAgICAgIHF1ZXJ5W2tleV0sXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcXVlcnk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgcGFyYW0gPT09IFwibnVtYmVyXCIgJiYgIWlzTmFOKHBhcmFtKSB8fCB0eXBlb2YgcGFyYW0gPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcocGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHVybFF1ZXJ5KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIE9iamVjdC5lbnRyaWVzKHVybFF1ZXJ5KS5mb3JFYWNoKChwYXJhbSk9PntcbiAgICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IHBhcmFtO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW0pPT5yZXN1bHQuYXBwZW5kKGtleSwgc3RyaW5naWZ5VXJsUXVlcnlQYXJhbShpdGVtKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0LnNldChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0odmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKHRhcmdldCkge1xuICAgIGZvcih2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHNlYXJjaFBhcmFtc0xpc3QgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKyl7XG4gICAgICAgIHNlYXJjaFBhcmFtc0xpc3RbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cbiAgICBzZWFyY2hQYXJhbXNMaXN0LmZvckVhY2goKHNlYXJjaFBhcmFtcyk9PntcbiAgICAgICAgQXJyYXkuZnJvbShzZWFyY2hQYXJhbXMua2V5cygpKS5mb3JFYWNoKChrZXkpPT50YXJnZXQuZGVsZXRlKGtleSkpO1xuICAgICAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PnRhcmdldC5hcHBlbmQoa2V5LCB2YWx1ZSkpO1xuICAgIH0pO1xuICAgIHJldHVybiB0YXJnZXQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXF1ZXJ5c3RyaW5nLmpzLm1hcCJdLCJuYW1lcyI6WyJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5Iiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJmb3JFYWNoIiwidmFsdWUiLCJrZXkiLCJBcnJheSIsImlzQXJyYXkiLCJwdXNoIiwic3RyaW5naWZ5VXJsUXVlcnlQYXJhbSIsInBhcmFtIiwiaXNOYU4iLCJTdHJpbmciLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwidXJsUXVlcnkiLCJyZXN1bHQiLCJVUkxTZWFyY2hQYXJhbXMiLCJPYmplY3QiLCJlbnRyaWVzIiwiaXRlbSIsImFwcGVuZCIsInNldCIsImFzc2lnbiIsInRhcmdldCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzZWFyY2hQYXJhbXNMaXN0IiwiX2tleSIsImZyb20iLCJrZXlzIiwiZGVsZXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js":
-/*!*****************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js ***!
- \*****************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removeTrailingSlash: () => (/* binding */ removeTrailingSlash)\n/* harmony export */ });\n/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ function removeTrailingSlash(route) {\n return route.replace(/\\/$/, \"\") || \"/\";\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7O0NBTUMsR0FBVSxTQUFTQSxvQkFBb0JDLEtBQUs7SUFDekMsT0FBT0EsTUFBTUMsT0FBTyxDQUFDLE9BQU8sT0FBTztBQUN2QyxFQUVBLGlEQUFpRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzPzgyYmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZW1vdmVzIHRoZSB0cmFpbGluZyBzbGFzaCBmb3IgYSBnaXZlbiByb3V0ZSBvciBwYWdlIHBhdGguIFByZXNlcnZlcyB0aGVcbiAqIHJvb3QgcGFnZS4gRXhhbXBsZXM6XG4gKiAgIC0gYC9mb28vYmFyL2AgLT4gYC9mb28vYmFyYFxuICogICAtIGAvZm9vL2JhcmAgLT4gYC9mb28vYmFyYFxuICogICAtIGAvYCAtPiBgL2BcbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkge1xuICAgIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgXCJcIikgfHwgXCIvXCI7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbW92ZS10cmFpbGluZy1zbGFzaC5qcy5tYXAiXSwibmFtZXMiOlsicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInJvdXRlIiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getRouteMatcher: () => (/* binding */ getRouteMatcher)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/utils.js\");\n\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) {\n return false;\n }\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils__WEBPACK_IMPORTED_MODULE_0__.DecodeError(\"failed to decode param\");\n }\n };\n const params = {};\n Object.keys(groups).forEach((slugName)=>{\n const g = groups[slugName];\n const m = routeMatch[g.pos];\n if (m !== undefined) {\n params[slugName] = ~m.indexOf(\"/\") ? m.split(\"/\").map((entry)=>decode(entry)) : g.repeat ? [\n decode(m)\n ] : decode(m);\n }\n });\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEwQztBQUNuQyxTQUFTQyxnQkFBZ0JDLEtBQUs7SUFDakMsSUFBSSxFQUFFQyxFQUFFLEVBQUVDLE1BQU0sRUFBRSxHQUFHRjtJQUNyQixPQUFPLENBQUNHO1FBQ0osTUFBTUMsYUFBYUgsR0FBR0ksSUFBSSxDQUFDRjtRQUMzQixJQUFJLENBQUNDLFlBQVk7WUFDYixPQUFPO1FBQ1g7UUFDQSxNQUFNRSxTQUFTLENBQUNOO1lBQ1osSUFBSTtnQkFDQSxPQUFPTyxtQkFBbUJQO1lBQzlCLEVBQUUsT0FBT1EsR0FBRztnQkFDUixNQUFNLElBQUlWLCtDQUFXQSxDQUFDO1lBQzFCO1FBQ0o7UUFDQSxNQUFNVyxTQUFTLENBQUM7UUFDaEJDLE9BQU9DLElBQUksQ0FBQ1QsUUFBUVUsT0FBTyxDQUFDLENBQUNDO1lBQ3pCLE1BQU1DLElBQUlaLE1BQU0sQ0FBQ1csU0FBUztZQUMxQixNQUFNRSxJQUFJWCxVQUFVLENBQUNVLEVBQUVFLEdBQUcsQ0FBQztZQUMzQixJQUFJRCxNQUFNRSxXQUFXO2dCQUNqQlIsTUFBTSxDQUFDSSxTQUFTLEdBQUcsQ0FBQ0UsRUFBRUcsT0FBTyxDQUFDLE9BQU9ILEVBQUVJLEtBQUssQ0FBQyxLQUFLQyxHQUFHLENBQUMsQ0FBQ0MsUUFBUWYsT0FBT2UsVUFBVVAsRUFBRVEsTUFBTSxHQUFHO29CQUN2RmhCLE9BQU9TO2lCQUNWLEdBQUdULE9BQU9TO1lBQ2Y7UUFDSjtRQUNBLE9BQU9OO0lBQ1g7QUFDSixFQUVBLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcz9hNDkwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29kZUVycm9yIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVNYXRjaGVyKHBhcmFtKSB7XG4gICAgbGV0IHsgcmUsIGdyb3VwcyB9ID0gcGFyYW07XG4gICAgcmV0dXJuIChwYXRobmFtZSk9PntcbiAgICAgICAgY29uc3Qgcm91dGVNYXRjaCA9IHJlLmV4ZWMocGF0aG5hbWUpO1xuICAgICAgICBpZiAoIXJvdXRlTWF0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWNvZGUgPSAocGFyYW0pPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGFyYW0pO1xuICAgICAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWNvZGVFcnJvcihcImZhaWxlZCB0byBkZWNvZGUgcGFyYW1cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyhncm91cHMpLmZvckVhY2goKHNsdWdOYW1lKT0+e1xuICAgICAgICAgICAgY29uc3QgZyA9IGdyb3Vwc1tzbHVnTmFtZV07XG4gICAgICAgICAgICBjb25zdCBtID0gcm91dGVNYXRjaFtnLnBvc107XG4gICAgICAgICAgICBpZiAobSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zW3NsdWdOYW1lXSA9IH5tLmluZGV4T2YoXCIvXCIpID8gbS5zcGxpdChcIi9cIikubWFwKChlbnRyeSk9PmRlY29kZShlbnRyeSkpIDogZy5yZXBlYXQgPyBbXG4gICAgICAgICAgICAgICAgICAgIGRlY29kZShtKVxuICAgICAgICAgICAgICAgIF0gOiBkZWNvZGUobSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLW1hdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiZ2V0Um91dGVNYXRjaGVyIiwicGFyYW0iLCJyZSIsImdyb3VwcyIsInBhdGhuYW1lIiwicm91dGVNYXRjaCIsImV4ZWMiLCJkZWNvZGUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwicGFyYW1zIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJzbHVnTmFtZSIsImciLCJtIiwicG9zIiwidW5kZWZpbmVkIiwiaW5kZXhPZiIsInNwbGl0IiwibWFwIiwiZW50cnkiLCJyZXBlYXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getNamedMiddlewareRegex: () => (/* binding */ getNamedMiddlewareRegex),\n/* harmony export */ getNamedRouteRegex: () => (/* binding */ getNamedRouteRegex),\n/* harmony export */ getRouteRegex: () => (/* binding */ getRouteRegex)\n/* harmony export */ });\n/* harmony import */ var _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(rsc)/../../node_modules/next/dist/esm/server/future/helpers/interception-routes.js\");\n/* harmony import */ var _escape_regexp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../escape-regexp */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/escape-regexp.js\");\n/* harmony import */ var _remove_trailing_slash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./remove-trailing-slash */ \"(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js\");\n\n\n\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst NEXT_INTERCEPTION_MARKER_PREFIX = \"nxtI\";\n/**\n * Parses a given parameter from a route to a data structure that can be used\n * to generate the parametrized route. Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n */ function parseParameter(param) {\n const optional = param.startsWith(\"[\") && param.endsWith(\"]\");\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith(\"...\");\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route) {\n const segments = (0,_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_2__.removeTrailingSlash)(route).slice(1).split(\"/\");\n const groups = {};\n let groupIndex = 1;\n return {\n parameterizedRoute: segments.map((segment)=>{\n const markerMatch = _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (markerMatch && paramMatches) {\n const { key, optional, repeat } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return \"/\" + (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(markerMatch) + \"([^/]+?)\";\n } else if (paramMatches) {\n const { key, repeat, optional } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return repeat ? optional ? \"(?:/(.+?))?\" : \"/(.+?)\" : \"/([^/]+?)\";\n } else {\n return \"/\" + (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n groups\n };\n}\n/**\n * From a normalized route this function generates a regular expression and\n * a corresponding groups object intended to be used to store matching groups\n * from the regular expression.\n */ function getRouteRegex(normalizedRoute) {\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute);\n return {\n re: new RegExp(\"^\" + parameterizedRoute + \"(?:/)?$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = \"\";\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix } = param;\n const { key, optional, repeat } = parseParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, \"\");\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(interceptionMarker) : \"\";\n return repeat ? optional ? \"(?:/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?))?\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?)\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">[^/]+?)\";\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys) {\n const segments = (0,_remove_trailing_slash__WEBPACK_IMPORTED_MODULE_2__.removeTrailingSlash)(route).slice(1).split(\"/\");\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n return {\n namedParameterizedRoute: segments.map((segment)=>{\n const hasInterceptionMarker = _server_future_helpers_interception_routes__WEBPACK_IMPORTED_MODULE_0__.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches) {\n const [usedMarker] = segment.split(paramMatches[0]);\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: usedMarker,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_INTERCEPTION_MARKER_PREFIX : undefined\n });\n } else if (paramMatches) {\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_QUERY_PARAM_PREFIX : undefined\n });\n } else {\n return \"/\" + (0,_escape_regexp__WEBPACK_IMPORTED_MODULE_1__.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n routeKeys\n };\n}\n/**\n * This function extends `getRouteRegex` generating also a named regexp where\n * each group is named along with a routeKeys object that indexes the assigned\n * named group with its corresponding key. When the routeKeys need to be\n * prefixed to uniquely identify internally the \"prefixRouteKey\" arg should\n * be \"true\" currently this is only the case when creating the routes-manifest\n * during the build\n */ function getNamedRouteRegex(normalizedRoute, prefixRouteKey) {\n const result = getNamedParametrizedRoute(normalizedRoute, prefixRouteKey);\n return {\n ...getRouteRegex(normalizedRoute),\n namedRegex: \"^\" + result.namedParameterizedRoute + \"(?:/)?$\",\n routeKeys: result.routeKeys\n };\n}\n/**\n * Generates a named regexp.\n * This is intended to be using for build time only.\n */ function getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute);\n const { catchAll = true } = options;\n if (parameterizedRoute === \"/\") {\n let catchAllRegex = catchAll ? \".*\" : \"\";\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false);\n let catchAllGroupedRegex = catchAll ? \"(?:(/.*)?)\" : \"\";\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQW1HO0FBQzFDO0FBQ0s7QUFDOUQsTUFBTUcsMEJBQTBCO0FBQ2hDLE1BQU1DLGtDQUFrQztBQUN4Qzs7Ozs7OztDQU9DLEdBQUcsU0FBU0MsZUFBZUMsS0FBSztJQUM3QixNQUFNQyxXQUFXRCxNQUFNRSxVQUFVLENBQUMsUUFBUUYsTUFBTUcsUUFBUSxDQUFDO0lBQ3pELElBQUlGLFVBQVU7UUFDVkQsUUFBUUEsTUFBTUksS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUM1QjtJQUNBLE1BQU1DLFNBQVNMLE1BQU1FLFVBQVUsQ0FBQztJQUNoQyxJQUFJRyxRQUFRO1FBQ1JMLFFBQVFBLE1BQU1JLEtBQUssQ0FBQztJQUN4QjtJQUNBLE9BQU87UUFDSEUsS0FBS047UUFDTEs7UUFDQUo7SUFDSjtBQUNKO0FBQ0EsU0FBU00scUJBQXFCQyxLQUFLO0lBQy9CLE1BQU1DLFdBQVdiLDJFQUFtQkEsQ0FBQ1ksT0FBT0osS0FBSyxDQUFDLEdBQUdNLEtBQUssQ0FBQztJQUMzRCxNQUFNQyxTQUFTLENBQUM7SUFDaEIsSUFBSUMsYUFBYTtJQUNqQixPQUFPO1FBQ0hDLG9CQUFvQkosU0FBU0ssR0FBRyxDQUFDLENBQUNDO1lBQzlCLE1BQU1DLGNBQWN0QixrR0FBMEJBLENBQUN1QixJQUFJLENBQUMsQ0FBQ0MsSUFBSUgsUUFBUWIsVUFBVSxDQUFDZ0I7WUFDNUUsTUFBTUMsZUFBZUosUUFBUUssS0FBSyxDQUFDLHVCQUF1Qix1QkFBdUI7O1lBRWpGLElBQUlKLGVBQWVHLGNBQWM7Z0JBQzdCLE1BQU0sRUFBRWIsR0FBRyxFQUFFTCxRQUFRLEVBQUVJLE1BQU0sRUFBRSxHQUFHTixlQUFlb0IsWUFBWSxDQUFDLEVBQUU7Z0JBQ2hFUixNQUFNLENBQUNMLElBQUksR0FBRztvQkFDVmUsS0FBS1Q7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T0ksZ0JBQWdCO1FBQ3ZDO0lBQ0o7SUFDQSxNQUFNLEVBQUVaLHVCQUF1QixFQUFFLEdBQUdGLDBCQUEwQnZCLGlCQUFpQjtJQUMvRSxJQUFJc0MsdUJBQXVCRixXQUFXLGVBQWU7SUFDckQsT0FBTztRQUNISCxZQUFZLE1BQU1SLDBCQUEwQmEsdUJBQXVCO0lBQ3ZFO0FBQ0osRUFFQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzP2VjMWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmVyL2Z1dHVyZS9oZWxwZXJzL2ludGVyY2VwdGlvbi1yb3V0ZXNcIjtcbmltcG9ydCB7IGVzY2FwZVN0cmluZ1JlZ2V4cCB9IGZyb20gXCIuLi8uLi9lc2NhcGUtcmVnZXhwXCI7XG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSBcIi4vcmVtb3ZlLXRyYWlsaW5nLXNsYXNoXCI7XG5jb25zdCBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA9IFwibnh0UFwiO1xuY29uc3QgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCA9IFwibnh0SVwiO1xuLyoqXG4gKiBQYXJzZXMgYSBnaXZlbiBwYXJhbWV0ZXIgZnJvbSBhIHJvdXRlIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZFxuICogdG8gZ2VuZXJhdGUgdGhlIHBhcmFtZXRyaXplZCByb3V0ZS4gRXhhbXBsZXM6XG4gKiAgIC0gYFsuLi5zbHVnXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgLi4uc2x1Z2AgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiAgIC0gYFtmb29dYCAtPiBgeyBrZXk6ICdmb28nLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGBiYXJgIC0+IGB7IGtleTogJ2JhcicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICovIGZ1bmN0aW9uIHBhcnNlUGFyYW1ldGVyKHBhcmFtKSB7XG4gICAgY29uc3Qgb3B0aW9uYWwgPSBwYXJhbS5zdGFydHNXaXRoKFwiW1wiKSAmJiBwYXJhbS5lbmRzV2l0aChcIl1cIik7XG4gICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMSwgLTEpO1xuICAgIH1cbiAgICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKFwiLi4uXCIpO1xuICAgIGlmIChyZXBlYXQpIHtcbiAgICAgICAgcGFyYW0gPSBwYXJhbS5zbGljZSgzKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBwYXJhbSxcbiAgICAgICAgcmVwZWF0LFxuICAgICAgICBvcHRpb25hbFxuICAgIH07XG59XG5mdW5jdGlvbiBnZXRQYXJhbWV0cml6ZWRSb3V0ZShyb3V0ZSkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IGdyb3VwcyA9IHt9O1xuICAgIGxldCBncm91cEluZGV4ID0gMTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzLm1hcCgoc2VnbWVudCk9PntcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlck1hdGNoID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSk7XG4gICAgICAgICAgICBjb25zdCBwYXJhbU1hdGNoZXMgPSBzZWdtZW50Lm1hdGNoKC9cXFsoKD86XFxbLipcXF0pfC4rKVxcXS8pIC8vIENoZWNrIGZvciBwYXJhbWV0ZXJzXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBpZiAobWFya2VyTWF0Y2ggJiYgcGFyYW1NYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXksIG9wdGlvbmFsLCByZXBlYXQgfSA9IHBhcnNlUGFyYW1ldGVyKHBhcmFtTWF0Y2hlc1sxXSk7XG4gICAgICAgICAgICAgICAgZ3JvdXBzW2tleV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHBvczogZ3JvdXBJbmRleCsrLFxuICAgICAgICAgICAgICAgICAgICByZXBlYXQsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIvXCIgKyBlc2NhcGVTdHJpbmdSZWdleHAobWFya2VyTWF0Y2gpICsgXCIoW14vXSs/KVwiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbU1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSwgcmVwZWF0LCBvcHRpb25hbCB9ID0gcGFyc2VQYXJhbWV0ZXIocGFyYW1NYXRjaGVzWzFdKTtcbiAgICAgICAgICAgICAgICBncm91cHNba2V5XSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zOiBncm91cEluZGV4KyssXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdCxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiByZXBlYXQgPyBvcHRpb25hbCA/IFwiKD86LyguKz8pKT9cIiA6IFwiLyguKz8pXCIgOiBcIi8oW14vXSs/KVwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIvXCIgKyBlc2NhcGVTdHJpbmdSZWdleHAoc2VnbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmpvaW4oXCJcIiksXG4gICAgICAgIGdyb3Vwc1xuICAgIH07XG59XG4vKipcbiAqIEZyb20gYSBub3JtYWxpemVkIHJvdXRlIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgcmVndWxhciBleHByZXNzaW9uIGFuZFxuICogYSBjb3JyZXNwb25kaW5nIGdyb3VwcyBvYmplY3QgaW50ZW5kZWQgdG8gYmUgdXNlZCB0byBzdG9yZSBtYXRjaGluZyBncm91cHNcbiAqIGZyb20gdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVSZWdleChub3JtYWxpemVkUm91dGUpIHtcbiAgICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSwgZ3JvdXBzIH0gPSBnZXRQYXJhbWV0cml6ZWRSb3V0ZShub3JtYWxpemVkUm91dGUpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlOiBuZXcgUmVnRXhwKFwiXlwiICsgcGFyYW1ldGVyaXplZFJvdXRlICsgXCIoPzovKT8kXCIpLFxuICAgICAgICBncm91cHM6IGdyb3Vwc1xuICAgIH07XG59XG4vKipcbiAqIEJ1aWxkcyBhIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbFxuICogbnVtYmVyIG9mIGNoYXJhY3RlcnMuXG4gKi8gZnVuY3Rpb24gYnVpbGRHZXRTYWZlUm91dGVLZXkoKSB7XG4gICAgbGV0IGkgPSAwO1xuICAgIHJldHVybiAoKT0+e1xuICAgICAgICBsZXQgcm91dGVLZXkgPSBcIlwiO1xuICAgICAgICBsZXQgaiA9ICsraTtcbiAgICAgICAgd2hpbGUoaiA+IDApe1xuICAgICAgICAgICAgcm91dGVLZXkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSg5NyArIChqIC0gMSkgJSAyNik7XG4gICAgICAgICAgICBqID0gTWF0aC5mbG9vcigoaiAtIDEpIC8gMjYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3V0ZUtleTtcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0U2FmZUtleUZyb21TZWdtZW50KHBhcmFtKSB7XG4gICAgbGV0IHsgaW50ZXJjZXB0aW9uTWFya2VyLCBnZXRTYWZlUm91dGVLZXksIHNlZ21lbnQsIHJvdXRlS2V5cywga2V5UHJlZml4IH0gPSBwYXJhbTtcbiAgICBjb25zdCB7IGtleSwgb3B0aW9uYWwsIHJlcGVhdCB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudCk7XG4gICAgLy8gcmVwbGFjZSBhbnkgbm9uLXdvcmQgY2hhcmFjdGVycyBzaW5jZSB0aGV5IGNhbiBicmVha1xuICAgIC8vIHRoZSBuYW1lZCByZWdleFxuICAgIGxldCBjbGVhbmVkS2V5ID0ga2V5LnJlcGxhY2UoL1xcVy9nLCBcIlwiKTtcbiAgICBpZiAoa2V5UHJlZml4KSB7XG4gICAgICAgIGNsZWFuZWRLZXkgPSBcIlwiICsga2V5UHJlZml4ICsgY2xlYW5lZEtleTtcbiAgICB9XG4gICAgbGV0IGludmFsaWRLZXkgPSBmYWxzZTtcbiAgICAvLyBjaGVjayBpZiB0aGUga2V5IGlzIHN0aWxsIGludmFsaWQgYW5kIGZhbGxiYWNrIHRvIHVzaW5nIGEga25vd25cbiAgICAvLyBzYWZlIGtleVxuICAgIGlmIChjbGVhbmVkS2V5Lmxlbmd0aCA9PT0gMCB8fCBjbGVhbmVkS2V5Lmxlbmd0aCA+IDMwKSB7XG4gICAgICAgIGludmFsaWRLZXkgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWlzTmFOKHBhcnNlSW50KGNsZWFuZWRLZXkuc2xpY2UoMCwgMSkpKSkge1xuICAgICAgICBpbnZhbGlkS2V5ID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGludmFsaWRLZXkpIHtcbiAgICAgICAgY2xlYW5lZEtleSA9IGdldFNhZmVSb3V0ZUtleSgpO1xuICAgIH1cbiAgICBpZiAoa2V5UHJlZml4KSB7XG4gICAgICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IFwiXCIgKyBrZXlQcmVmaXggKyBrZXk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcm91dGVLZXlzW2NsZWFuZWRLZXldID0ga2V5O1xuICAgIH1cbiAgICAvLyBpZiB0aGUgc2VnbWVudCBoYXMgYW4gaW50ZXJjZXB0aW9uIG1hcmtlciwgbWFrZSBzdXJlIHRoYXQncyBwYXJ0IG9mIHRoZSByZWdleCBwYXR0ZXJuXG4gICAgLy8gdGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcm91dGUgd2l0aCB0aGUgaW50ZXJjZXB0aW9uIG1hcmtlciBkb2Vzbid0IGluY29ycmVjdGx5IG1hdGNoXG4gICAgLy8gdGhlIG5vbi1pbnRlcmNlcHRlZCByb3V0ZSAoaWUgL2FwcC8oLilbdXNlcm5hbWVdIHNob3VsZCBub3QgbWF0Y2ggL2FwcC9bdXNlcm5hbWVdKVxuICAgIGNvbnN0IGludGVyY2VwdGlvblByZWZpeCA9IGludGVyY2VwdGlvbk1hcmtlciA/IGVzY2FwZVN0cmluZ1JlZ2V4cChpbnRlcmNlcHRpb25NYXJrZXIpIDogXCJcIjtcbiAgICByZXR1cm4gcmVwZWF0ID8gb3B0aW9uYWwgPyBcIig/Oi9cIiArIGludGVyY2VwdGlvblByZWZpeCArIFwiKD88XCIgKyBjbGVhbmVkS2V5ICsgXCI+Lis/KSk/XCIgOiBcIi9cIiArIGludGVyY2VwdGlvblByZWZpeCArIFwiKD88XCIgKyBjbGVhbmVkS2V5ICsgXCI+Lis/KVwiIDogXCIvXCIgKyBpbnRlcmNlcHRpb25QcmVmaXggKyBcIig/PFwiICsgY2xlYW5lZEtleSArIFwiPlteL10rPylcIjtcbn1cbmZ1bmN0aW9uIGdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUocm91dGUsIHByZWZpeFJvdXRlS2V5cykge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IGdldFNhZmVSb3V0ZUtleSA9IGJ1aWxkR2V0U2FmZVJvdXRlS2V5KCk7XG4gICAgY29uc3Qgcm91dGVLZXlzID0ge307XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzLm1hcCgoc2VnbWVudCk9PntcbiAgICAgICAgICAgIGNvbnN0IGhhc0ludGVyY2VwdGlvbk1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pPT5zZWdtZW50LnN0YXJ0c1dpdGgobSkpO1xuICAgICAgICAgICAgY29uc3QgcGFyYW1NYXRjaGVzID0gc2VnbWVudC5tYXRjaCgvXFxbKCg/OlxcWy4qXFxdKXwuKylcXF0vKSAvLyBDaGVjayBmb3IgcGFyYW1ldGVyc1xuICAgICAgICAgICAgO1xuICAgICAgICAgICAgaWYgKGhhc0ludGVyY2VwdGlvbk1hcmtlciAmJiBwYXJhbU1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbdXNlZE1hcmtlcl0gPSBzZWdtZW50LnNwbGl0KHBhcmFtTWF0Y2hlc1swXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFNhZmVLZXlGcm9tU2VnbWVudCh7XG4gICAgICAgICAgICAgICAgICAgIGdldFNhZmVSb3V0ZUtleSxcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJjZXB0aW9uTWFya2VyOiB1c2VkTWFya2VyLFxuICAgICAgICAgICAgICAgICAgICBzZWdtZW50OiBwYXJhbU1hdGNoZXNbMV0sXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2V5cyxcbiAgICAgICAgICAgICAgICAgICAga2V5UHJlZml4OiBwcmVmaXhSb3V0ZUtleXMgPyBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtTWF0Y2hlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTYWZlS2V5RnJvbVNlZ21lbnQoe1xuICAgICAgICAgICAgICAgICAgICBnZXRTYWZlUm91dGVLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlZ21lbnQ6IHBhcmFtTWF0Y2hlc1sxXSxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVLZXlzLFxuICAgICAgICAgICAgICAgICAgICBrZXlQcmVmaXg6IHByZWZpeFJvdXRlS2V5cyA/IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIi9cIiArIGVzY2FwZVN0cmluZ1JlZ2V4cChzZWdtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuam9pbihcIlwiKSxcbiAgICAgICAgcm91dGVLZXlzXG4gICAgfTtcbn1cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBleHRlbmRzIGBnZXRSb3V0ZVJlZ2V4YCBnZW5lcmF0aW5nIGFsc28gYSBuYW1lZCByZWdleHAgd2hlcmVcbiAqIGVhY2ggZ3JvdXAgaXMgbmFtZWQgYWxvbmcgd2l0aCBhIHJvdXRlS2V5cyBvYmplY3QgdGhhdCBpbmRleGVzIHRoZSBhc3NpZ25lZFxuICogbmFtZWQgZ3JvdXAgd2l0aCBpdHMgY29ycmVzcG9uZGluZyBrZXkuIFdoZW4gdGhlIHJvdXRlS2V5cyBuZWVkIHRvIGJlXG4gKiBwcmVmaXhlZCB0byB1bmlxdWVseSBpZGVudGlmeSBpbnRlcm5hbGx5IHRoZSBcInByZWZpeFJvdXRlS2V5XCIgYXJnIHNob3VsZFxuICogYmUgXCJ0cnVlXCIgY3VycmVudGx5IHRoaXMgaXMgb25seSB0aGUgY2FzZSB3aGVuIGNyZWF0aW5nIHRoZSByb3V0ZXMtbWFuaWZlc3RcbiAqIGR1cmluZyB0aGUgYnVpbGRcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWRSb3V0ZVJlZ2V4KG5vcm1hbGl6ZWRSb3V0ZSwgcHJlZml4Um91dGVLZXkpIHtcbiAgICBjb25zdCByZXN1bHQgPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSwgcHJlZml4Um91dGVLZXkpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmdldFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlKSxcbiAgICAgICAgbmFtZWRSZWdleDogXCJeXCIgKyByZXN1bHQubmFtZWRQYXJhbWV0ZXJpemVkUm91dGUgKyBcIig/Oi8pPyRcIixcbiAgICAgICAgcm91dGVLZXlzOiByZXN1bHQucm91dGVLZXlzXG4gICAgfTtcbn1cbi8qKlxuICogR2VuZXJhdGVzIGEgbmFtZWQgcmVnZXhwLlxuICogVGhpcyBpcyBpbnRlbmRlZCB0byBiZSB1c2luZyBmb3IgYnVpbGQgdGltZSBvbmx5LlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXROYW1lZE1pZGRsZXdhcmVSZWdleChub3JtYWxpemVkUm91dGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSB9ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBjb25zdCB7IGNhdGNoQWxsID0gdHJ1ZSB9ID0gb3B0aW9ucztcbiAgICBpZiAocGFyYW1ldGVyaXplZFJvdXRlID09PSBcIi9cIikge1xuICAgICAgICBsZXQgY2F0Y2hBbGxSZWdleCA9IGNhdGNoQWxsID8gXCIuKlwiIDogXCJcIjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWVkUmVnZXg6IFwiXi9cIiArIGNhdGNoQWxsUmVnZXggKyBcIiRcIlxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB7IG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlIH0gPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSwgZmFsc2UpO1xuICAgIGxldCBjYXRjaEFsbEdyb3VwZWRSZWdleCA9IGNhdGNoQWxsID8gXCIoPzooLy4qKT8pXCIgOiBcIlwiO1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWVkUmVnZXg6IFwiXlwiICsgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGUgKyBjYXRjaEFsbEdyb3VwZWRSZWdleCArIFwiJFwiXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtcmVnZXguanMubWFwIl0sIm5hbWVzIjpbIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiZXNjYXBlU3RyaW5nUmVnZXhwIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsIk5FWFRfUVVFUllfUEFSQU1fUFJFRklYIiwiTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCIsInBhcnNlUGFyYW1ldGVyIiwicGFyYW0iLCJvcHRpb25hbCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwicmVwZWF0Iiwia2V5IiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJyb3V0ZSIsInNlZ21lbnRzIiwic3BsaXQiLCJncm91cHMiLCJncm91cEluZGV4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwibWFwIiwic2VnbWVudCIsIm1hcmtlck1hdGNoIiwiZmluZCIsIm0iLCJwYXJhbU1hdGNoZXMiLCJtYXRjaCIsInBvcyIsImpvaW4iLCJnZXRSb3V0ZVJlZ2V4Iiwibm9ybWFsaXplZFJvdXRlIiwicmUiLCJSZWdFeHAiLCJidWlsZEdldFNhZmVSb3V0ZUtleSIsImkiLCJyb3V0ZUtleSIsImoiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJNYXRoIiwiZmxvb3IiLCJnZXRTYWZlS2V5RnJvbVNlZ21lbnQiLCJpbnRlcmNlcHRpb25NYXJrZXIiLCJnZXRTYWZlUm91dGVLZXkiLCJyb3V0ZUtleXMiLCJrZXlQcmVmaXgiLCJjbGVhbmVkS2V5IiwicmVwbGFjZSIsImludmFsaWRLZXkiLCJsZW5ndGgiLCJpc05hTiIsInBhcnNlSW50IiwiaW50ZXJjZXB0aW9uUHJlZml4IiwiZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZSIsInByZWZpeFJvdXRlS2V5cyIsIm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlIiwiaGFzSW50ZXJjZXB0aW9uTWFya2VyIiwic29tZSIsInVzZWRNYXJrZXIiLCJ1bmRlZmluZWQiLCJnZXROYW1lZFJvdXRlUmVnZXgiLCJwcmVmaXhSb3V0ZUtleSIsInJlc3VsdCIsIm5hbWVkUmVnZXgiLCJnZXROYW1lZE1pZGRsZXdhcmVSZWdleCIsIm9wdGlvbnMiLCJjYXRjaEFsbCIsImNhdGNoQWxsUmVnZXgiLCJjYXRjaEFsbEdyb3VwZWRSZWdleCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/segment.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/segment.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_SEGMENT_KEY: () => (/* binding */ DEFAULT_SEGMENT_KEY),\n/* harmony export */ PAGE_SEGMENT_KEY: () => (/* binding */ PAGE_SEGMENT_KEY),\n/* harmony export */ isGroupSegment: () => (/* binding */ isGroupSegment)\n/* harmony export */ });\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === \"(\" && segment.endsWith(\")\");\n}\nconst PAGE_SEGMENT_KEY = \"__PAGE__\";\nconst DEFAULT_SEGMENT_KEY = \"__DEFAULT__\"; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi9zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLFNBQVNBLGVBQWVDLE9BQU87SUFDbEMsc0NBQXNDO0lBQ3RDLE9BQU9BLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBT0EsUUFBUUMsUUFBUSxDQUFDO0FBQ2xEO0FBQ08sTUFBTUMsbUJBQW1CLFdBQVc7QUFDcEMsTUFBTUMsc0JBQXNCLGNBQWMsQ0FFakQsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3NlZ21lbnQuanM/M2ZmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudCkge1xuICAgIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gICAgcmV0dXJuIHNlZ21lbnRbMF0gPT09IFwiKFwiICYmIHNlZ21lbnQuZW5kc1dpdGgoXCIpXCIpO1xufVxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSBcIl9fUEFHRV9fXCI7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9IFwiX19ERUZBVUxUX19cIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VnbWVudC5qcy5tYXAiXSwibmFtZXMiOlsiaXNHcm91cFNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJQQUdFX1NFR01FTlRfS0VZIiwiREVGQVVMVF9TRUdNRU5UX0tFWSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/segment.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js":
-/*!******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js ***!
- \******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ ServerInsertedHTMLContext: () => (/* binding */ e0),
-/* harmony export */ useServerInsertedHTML: () => (/* binding */ e1)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js#ServerInsertedHTMLContext`);
-
-const e1 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js#useServerInsertedHTML`);
-
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/utils.js":
-/*!************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/utils.js ***!
- \************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DecodeError: () => (/* binding */ DecodeError),\n/* harmony export */ MiddlewareNotFoundError: () => (/* binding */ MiddlewareNotFoundError),\n/* harmony export */ MissingStaticPage: () => (/* binding */ MissingStaticPage),\n/* harmony export */ NormalizeError: () => (/* binding */ NormalizeError),\n/* harmony export */ PageNotFoundError: () => (/* binding */ PageNotFoundError),\n/* harmony export */ SP: () => (/* binding */ SP),\n/* harmony export */ ST: () => (/* binding */ ST),\n/* harmony export */ WEB_VITALS: () => (/* binding */ WEB_VITALS),\n/* harmony export */ execOnce: () => (/* binding */ execOnce),\n/* harmony export */ getDisplayName: () => (/* binding */ getDisplayName),\n/* harmony export */ getLocationOrigin: () => (/* binding */ getLocationOrigin),\n/* harmony export */ getURL: () => (/* binding */ getURL),\n/* harmony export */ isAbsoluteUrl: () => (/* binding */ isAbsoluteUrl),\n/* harmony export */ isResSent: () => (/* binding */ isResSent),\n/* harmony export */ loadGetInitialProps: () => (/* binding */ loadGetInitialProps),\n/* harmony export */ normalizeRepeatedSlashes: () => (/* binding */ normalizeRepeatedSlashes),\n/* harmony export */ stringifyError: () => (/* binding */ stringifyError)\n/* harmony export */ });\n/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */ const WEB_VITALS = [\n \"CLS\",\n \"FCP\",\n \"FID\",\n \"INP\",\n \"LCP\",\n \"TTFB\"\n];\n/**\n * Utils\n */ function execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : \"\");\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === \"string\" ? Component : Component.displayName || Component.name || \"Unknown\";\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split(\"?\");\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, \"/\").replace(/\\/\\/+/g, \"/\") + (urlParts[1] ? \"?\" + urlParts.slice(1).join(\"?\") : \"\");\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw new Error(message);\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== \"undefined\";\nconst ST = SP && [\n \"mark\",\n \"measure\",\n \"getEntriesByName\"\n].every((method)=>typeof performance[method] === \"function\");\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = \"ENOENT\";\n this.name = \"PageNotFoundError\";\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = \"ENOENT\";\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Q0FHQyxHQUFVLE1BQU1BLGFBQWE7SUFDMUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0gsQ0FBQztBQUNGOztDQUVDLEdBQVUsU0FBU0MsU0FBU0MsRUFBRTtJQUMzQixJQUFJQyxPQUFPO0lBQ1gsSUFBSUM7SUFDSixPQUFPO1FBQ0gsSUFBSSxJQUFJQyxPQUFPQyxVQUFVQyxNQUFNLEVBQUVDLE9BQU8sSUFBSUMsTUFBTUosT0FBT0ssT0FBTyxHQUFHQSxPQUFPTCxNQUFNSyxPQUFPO1lBQ25GRixJQUFJLENBQUNFLEtBQUssR0FBR0osU0FBUyxDQUFDSSxLQUFLO1FBQ2hDO1FBQ0EsSUFBSSxDQUFDUCxNQUFNO1lBQ1BBLE9BQU87WUFDUEMsU0FBU0YsTUFBTU07UUFDbkI7UUFDQSxPQUFPSjtJQUNYO0FBQ0o7QUFDQSwwREFBMEQ7QUFDMUQsZ0VBQWdFO0FBQ2hFLE1BQU1PLHFCQUFxQjtBQUNwQixNQUFNQyxnQkFBZ0IsQ0FBQ0MsTUFBTUYsbUJBQW1CRyxJQUFJLENBQUNELEtBQUs7QUFDMUQsU0FBU0U7SUFDWixNQUFNLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFBUTtJQUNwRCxPQUFPSixXQUFXLE9BQU9DLFdBQVlDLENBQUFBLE9BQU8sTUFBTUEsT0FBTyxFQUFDO0FBQzlEO0FBQ08sU0FBU0c7SUFDWixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHSCxPQUFPQyxRQUFRO0lBQ2hDLE1BQU1HLFNBQVNSO0lBQ2YsT0FBT08sS0FBS0UsU0FBUyxDQUFDRCxPQUFPaEIsTUFBTTtBQUN2QztBQUNPLFNBQVNrQixlQUFlQyxTQUFTO0lBQ3BDLE9BQU8sT0FBT0EsY0FBYyxXQUFXQSxZQUFZQSxVQUFVQyxXQUFXLElBQUlE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S0MsU0FBUyxDQUFDO1FBQ2xCeEIsU0FBU3NCLE1BQU10QixPQUFPO1FBQ3RCeUIsT0FBT0gsTUFBTUcsS0FBSztJQUN0QjtBQUNKLEVBRUEsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3V0aWxzLmpzPzQ5ZjEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqLyBleHBvcnQgY29uc3QgV0VCX1ZJVEFMUyA9IFtcbiAgICBcIkNMU1wiLFxuICAgIFwiRkNQXCIsXG4gICAgXCJGSURcIixcbiAgICBcIklOUFwiLFxuICAgIFwiTENQXCIsXG4gICAgXCJUVEZCXCJcbl07XG4vKipcbiAqIFV0aWxzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGV4ZWNPbmNlKGZuKSB7XG4gICAgbGV0IHVzZWQgPSBmYWxzZTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgZm9yKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5Kyspe1xuICAgICAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXVzZWQpIHtcbiAgICAgICAgICAgIHVzZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufVxuLy8gU2NoZW1lOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMVxuLy8gQWJzb2x1dGUgVVJMOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTQuM1xuY29uc3QgQUJTT0xVVEVfVVJMX1JFR0VYID0gL15bYS16QS1aXVthLXpBLVpcXGQrXFwtLl0qPzovO1xuZXhwb3J0IGNvbnN0IGlzQWJzb2x1dGVVcmwgPSAodXJsKT0+QUJTT0xVVEVfVVJMX1JFR0VYLnRlc3QodXJsKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgICBjb25zdCB7IHByb3RvY29sLCBob3N0bmFtZSwgcG9ydCB9ID0gd2luZG93LmxvY2F0aW9uO1xuICAgIHJldHVybiBwcm90b2NvbCArIFwiLy9cIiArIGhvc3RuYW1lICsgKHBvcnQgPyBcIjpcIiArIHBvcnQgOiBcIlwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gICAgY29uc3QgeyBocmVmIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgY29uc3Qgb3JpZ2luID0gZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICByZXR1cm4gaHJlZi5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzcGxheU5hbWUoQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09IFwic3RyaW5nXCIgPyBDb21wb25lbnQgOiBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgXCJVbmtub3duXCI7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNSZXNTZW50KHJlcykge1xuICAgIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50O1xufVxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmwpIHtcbiAgICBjb25zdCB1cmxQYXJ0cyA9IHVybC5zcGxpdChcIj9cIik7XG4gICAgY29uc3QgdXJsTm9RdWVyeSA9IHVybFBhcnRzWzBdO1xuICAgIHJldHVybiB1cmxOb1F1ZXJ5Ly8gZmlyc3Qgd2UgcmVwbGFjZSBhbnkgbm9uLWVuY29kZWQgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkXG4gICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpLnJlcGxhY2UoL1xcL1xcLysvZywgXCIvXCIpICsgKHVybFBhcnRzWzFdID8gXCI/XCIgKyB1cmxQYXJ0cy5zbGljZSgxKS5qb2luKFwiP1wiKSA6IFwiXCIpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBjdHgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIHZhciBfQXBwX3Byb3RvdHlwZTtcbiAgICAgICAgaWYgKChfQXBwX3Byb3RvdHlwZSA9IEFwcC5wcm90b3R5cGUpID09IG51bGwgPyB2b2lkIDAgOiBfQXBwX3Byb3RvdHlwZS5nZXRJbml0aWFsUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnXCInICsgZ2V0RGlzcGxheU5hbWUoQXBwKSArICcuZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHdoZW4gY2FsbGVkIGZyb20gX2FwcCBgY3R4YCBpcyBuZXN0ZWQgaW4gYGN0eGBcbiAgICBjb25zdCByZXMgPSBjdHgucmVzIHx8IGN0eC5jdHggJiYgY3R4LmN0eC5yZXM7XG4gICAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGFnZVByb3BzOiBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKGN0eC5Db21wb25lbnQsIGN0eC5jdHgpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgcHJvcHMgPSBhd2FpdCBBcHAuZ2V0SW5pdGlhbFByb3BzKGN0eCk7XG4gICAgaWYgKHJlcyAmJiBpc1Jlc1NlbnQocmVzKSkge1xuICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgfVxuICAgIGlmICghcHJvcHMpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdcIicgKyBnZXREaXNwbGF5TmFtZShBcHApICsgJy5nZXRJbml0aWFsUHJvcHMoKVwiIHNob3VsZCByZXNvbHZlIHRvIGFuIG9iamVjdC4gQnV0IGZvdW5kIFwiJyArIHByb3BzICsgJ1wiIGluc3RlYWQuJztcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoID09PSAwICYmICFjdHguY3R4KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJcIiArIGdldERpc3BsYXlOYW1lKEFwcCkgKyBcIiByZXR1cm5lZCBhbiBlbXB0eSBvYmplY3QgZnJvbSBgZ2V0SW5pdGlhbFByb3BzYC4gVGhpcyBkZS1vcHRpbWl6ZXMgYW5kIHByZXZlbnRzIGF1dG9tYXRpYyBzdGF0aWMgb3B0aW1pemF0aW9uLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9lbXB0eS1vYmplY3QtZ2V0SW5pdGlhbFByb3BzXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wcztcbn1cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gXCJ1bmRlZmluZWRcIjtcbmV4cG9ydCBjb25zdCBTVCA9IFNQICYmIFtcbiAgICBcIm1hcmtcIixcbiAgICBcIm1lYXN1cmVcIixcbiAgICBcImdldEVudHJpZXNCeU5hbWVcIlxuXS5ldmVyeSgobWV0aG9kKT0+dHlwZW9mIHBlcmZvcm1hbmNlW21ldGhvZF0gPT09IFwiZnVuY3Rpb25cIik7XG5leHBvcnQgY2xhc3MgRGVjb2RlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG5leHBvcnQgY2xhc3MgTm9ybWFsaXplRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocGFnZSl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29kZSA9IFwiRU5PRU5UXCI7XG4gICAgICAgIHRoaXMubmFtZSA9IFwiUGFnZU5vdEZvdW5kRXJyb3JcIjtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gXCJDYW5ub3QgZmluZCBtb2R1bGUgZm9yIHBhZ2U6IFwiICsgcGFnZTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWlzc2luZ1N0YXRpY1BhZ2UgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocGFnZSwgbWVzc2FnZSl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IFwiRmFpbGVkIHRvIGxvYWQgc3RhdGljIGZpbGUgZm9yIHBhZ2U6IFwiICsgcGFnZSArIFwiIFwiICsgbWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb2RlID0gXCJFTk9FTlRcIjtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gXCJDYW5ub3QgZmluZCB0aGUgbWlkZGxld2FyZSBtb2R1bGVcIjtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICBzdGFjazogZXJyb3Iuc3RhY2tcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbIldFQl9WSVRBTFMiLCJleGVjT25jZSIsImZuIiwidXNlZCIsInJlc3VsdCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwiaXNBYnNvbHV0ZVVybCIsInVybCIsInRlc3QiLCJnZXRMb2NhdGlvbk9yaWdpbiIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJnZXRVUkwiLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwiZ2V0RGlzcGxheU5hbWUiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJpc1Jlc1NlbnQiLCJyZXMiLCJmaW5pc2hlZCIsImhlYWRlcnNTZW50Iiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwidXJsUGFydHMiLCJzcGxpdCIsInVybE5vUXVlcnkiLCJyZXBsYWNlIiwic2xpY2UiLCJqb2luIiwibG9hZEdldEluaXRpYWxQcm9wcyIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJfQXBwX3Byb3RvdHlwZSIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwiU1AiLCJwZXJmb3JtYW5jZSIsIlNUIiwiZXZlcnkiLCJtZXRob2QiLCJEZWNvZGVFcnJvciIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJjb25zdHJ1Y3RvciIsInBhZ2UiLCJjb2RlIiwiTWlzc2luZ1N0YXRpY1BhZ2UiLCJNaWRkbGV3YXJlTm90Rm91bmRFcnJvciIsInN0cmluZ2lmeUVycm9yIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/utils.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ warnOnce: () => (/* binding */ warnOnce)\n/* harmony export */ });\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n}\n //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUlBLFdBQVcsQ0FBQ0MsS0FBSztBQUNyQixJQUFJQyxJQUFxQyxFQUFFO0lBQ3ZDLE1BQU1DLFdBQVcsSUFBSUM7SUFDckJKLFdBQVcsQ0FBQ0s7UUFDUixJQUFJLENBQUNGLFNBQVNHLEdBQUcsQ0FBQ0QsTUFBTTtZQUNwQkUsUUFBUUMsSUFBSSxDQUFDSDtRQUNqQjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2pCO0FBQ0o7QUFDb0IsQ0FFcEIscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9zaGFyZWQvbGliL3V0aWxzL3dhcm4tb25jZS5qcz8zZTM0Il0sInNvdXJjZXNDb250ZW50IjpbImxldCB3YXJuT25jZSA9IChfKT0+e307XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgY29uc3Qgd2FybmluZ3MgPSBuZXcgU2V0KCk7XG4gICAgd2Fybk9uY2UgPSAobXNnKT0+e1xuICAgICAgICBpZiAoIXdhcm5pbmdzLmhhcyhtc2cpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4obXNnKTtcbiAgICAgICAgfVxuICAgICAgICB3YXJuaW5ncy5hZGQobXNnKTtcbiAgICB9O1xufVxuZXhwb3J0IHsgd2Fybk9uY2UgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2Fybi1vbmNlLmpzLm1hcCJdLCJuYW1lcyI6WyJ3YXJuT25jZSIsIl8iLCJwcm9jZXNzIiwid2FybmluZ3MiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwid2FybiIsImFkZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/esm/shared/lib/utils/warn-once.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./src/app/favicon.ico?__next_metadata__":
-/*!******************************************************************************************************************************************************************************************************************************************!*\
- !*** ../../node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./src/app/favicon.ico?__next_metadata__ ***!
- \******************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/../../node_modules/next/dist/esm/lib/metadata/get-metadata-route.js\");\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((props) => {\n const imageData = {\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", props.params, \"favicon.ico\")\n\n return [{\n ...imageData,\n url: imageUrl + \"\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXIuanM/dHlwZT1mYXZpY29uJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzIS4vc3JjL2FwcC9mYXZpY29uLmljbz9fX25leHRfbWV0YWRhdGFfXyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLEVBQWlGOztBQUVqRixFQUFFLGlFQUFlO0FBQ2pCLHVCQUF1QjtBQUN2QixxQkFBcUIsOEZBQW1COztBQUV4QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2FwcC9mYXZpY29uLmljbz8wZjk3Il0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3gtaWNvblwiLFwic2l6ZXNcIjpcIjE2eDE2XCJ9XG4gICAgY29uc3QgaW1hZ2VVcmwgPSBmaWxsTWV0YWRhdGFTZWdtZW50KFwiLlwiLCBwcm9wcy5wYXJhbXMsIFwiZmF2aWNvbi5pY29cIilcblxuICAgIHJldHVybiBbe1xuICAgICAgLi4uaW1hZ2VEYXRhLFxuICAgICAgdXJsOiBpbWFnZVVybCArIFwiXCIsXG4gICAgfV1cbiAgfSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!./src/app/favicon.ico?__next_metadata__\n");
-
-/***/ }),
-
-/***/ "(shared)/../../node_modules/next/dist/esm/client/components/action-async-storage.external.js?eaaf":
-/*!*******************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/action-async-storage.external.js ***!
- \*******************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ actionAsyncStorage: () => (/* binding */ actionAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var _async_local_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./async-local-storage */ \"(shared)/../../node_modules/next/dist/esm/client/components/async-local-storage.js\");\n\nconst actionAsyncStorage = (0,_async_local_storage__WEBPACK_IMPORTED_MODULE_0__.createAsyncLocalStorage)(); //# sourceMappingURL=action-async-storage.external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanM/ZWFhZiIsIm1hcHBpbmdzIjoiOzs7OztBQUFnRTtBQUN6RCxNQUFNQyxxQkFBcUJELDZFQUF1QkEsR0FBRyxDQUU1RCx5REFBeUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2FjdGlvbi1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzP2EzYmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UgfSBmcm9tIFwiLi9hc3luYy1sb2NhbC1zdG9yYWdlXCI7XG5leHBvcnQgY29uc3QgYWN0aW9uQXN5bmNTdG9yYWdlID0gY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UoKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanMubWFwIl0sIm5hbWVzIjpbImNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlIiwiYWN0aW9uQXN5bmNTdG9yYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(shared)/../../node_modules/next/dist/esm/client/components/action-async-storage.external.js?eaaf\n");
-
-/***/ }),
-
-/***/ "(shared)/../../node_modules/next/dist/esm/client/components/async-local-storage.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/async-local-storage.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createAsyncLocalStorage: () => (/* binding */ createAsyncLocalStorage)\n/* harmony export */ });\nconst sharedAsyncLocalStorageNotAvailableError = new Error(\"Invariant: AsyncLocalStorage accessed in runtime where it is not available\");\nclass FakeAsyncLocalStorage {\n disable() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n getStore() {\n // This fake implementation of AsyncLocalStorage always returns `undefined`.\n return undefined;\n }\n run() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n exit() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n enterWith() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n}\nconst maybeGlobalAsyncLocalStorage = globalThis.AsyncLocalStorage;\nfunction createAsyncLocalStorage() {\n if (maybeGlobalAsyncLocalStorage) {\n return new maybeGlobalAsyncLocalStorage();\n }\n return new FakeAsyncLocalStorage();\n} //# sourceMappingURL=async-local-storage.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvYXN5bmMtbG9jYWwtc3RvcmFnZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTUEsMkNBQTJDLElBQUlDLE1BQU07QUFDM0QsTUFBTUM7SUFDRkMsVUFBVTtRQUNOLE1BQU1IO0lBQ1Y7SUFDQUksV0FBVztRQUNQLDRFQUE0RTtRQUM1RSxPQUFPQztJQUNYO0lBQ0FDLE1BQU07UUFDRixNQUFNTjtJQUNWO0lBQ0FPLE9BQU87UUFDSCxNQUFNUDtJQUNWO0lBQ0FRLFlBQVk7UUFDUixNQUFNUjtJQUNWO0FBQ0o7QUFDQSxNQUFNUywrQkFBK0JDLFdBQVdDLGlCQUFpQjtBQUMxRCxTQUFTQztJQUNaLElBQUlILDhCQUE4QjtRQUM5QixPQUFPLElBQUlBO0lBQ2Y7SUFDQSxPQUFPLElBQUlQO0FBQ2YsRUFFQSwrQ0FBK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvZXNtL2NsaWVudC9jb21wb25lbnRzL2FzeW5jLWxvY2FsLXN0b3JhZ2UuanM/OGJkMCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFyZWRBc3luY0xvY2FsU3RvcmFnZU5vdEF2YWlsYWJsZUVycm9yID0gbmV3IEVycm9yKFwiSW52YXJpYW50OiBBc3luY0xvY2FsU3RvcmFnZSBhY2Nlc3NlZCBpbiBydW50aW1lIHdoZXJlIGl0IGlzIG5vdCBhdmFpbGFibGVcIik7XG5jbGFzcyBGYWtlQXN5bmNMb2NhbFN0b3JhZ2Uge1xuICAgIGRpc2FibGUoKSB7XG4gICAgICAgIHRocm93IHNoYXJlZEFzeW5jTG9jYWxTdG9yYWdlTm90QXZhaWxhYmxlRXJyb3I7XG4gICAgfVxuICAgIGdldFN0b3JlKCkge1xuICAgICAgICAvLyBUaGlzIGZha2UgaW1wbGVtZW50YXRpb24gb2YgQXN5bmNMb2NhbFN0b3JhZ2UgYWx3YXlzIHJldHVybnMgYHVuZGVmaW5lZGAuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJ1bigpIHtcbiAgICAgICAgdGhyb3cgc2hhcmVkQXN5bmNMb2NhbFN0b3JhZ2VOb3RBdmFpbGFibGVFcnJvcjtcbiAgICB9XG4gICAgZXhpdCgpIHtcbiAgICAgICAgdGhyb3cgc2hhcmVkQXN5bmNMb2NhbFN0b3JhZ2VOb3RBdmFpbGFibGVFcnJvcjtcbiAgICB9XG4gICAgZW50ZXJXaXRoKCkge1xuICAgICAgICB0aHJvdyBzaGFyZWRBc3luY0xvY2FsU3RvcmFnZU5vdEF2YWlsYWJsZUVycm9yO1xuICAgIH1cbn1cbmNvbnN0IG1heWJlR2xvYmFsQXN5bmNMb2NhbFN0b3JhZ2UgPSBnbG9iYWxUaGlzLkFzeW5jTG9jYWxTdG9yYWdlO1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlKCkge1xuICAgIGlmIChtYXliZUdsb2JhbEFzeW5jTG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgbWF5YmVHbG9iYWxBc3luY0xvY2FsU3RvcmFnZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEZha2VBc3luY0xvY2FsU3RvcmFnZSgpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hc3luYy1sb2NhbC1zdG9yYWdlLmpzLm1hcCJdLCJuYW1lcyI6WyJzaGFyZWRBc3luY0xvY2FsU3RvcmFnZU5vdEF2YWlsYWJsZUVycm9yIiwiRXJyb3IiLCJGYWtlQXN5bmNMb2NhbFN0b3JhZ2UiLCJkaXNhYmxlIiwiZ2V0U3RvcmUiLCJ1bmRlZmluZWQiLCJydW4iLCJleGl0IiwiZW50ZXJXaXRoIiwibWF5YmVHbG9iYWxBc3luY0xvY2FsU3RvcmFnZSIsImdsb2JhbFRoaXMiLCJBc3luY0xvY2FsU3RvcmFnZSIsImNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(shared)/../../node_modules/next/dist/esm/client/components/async-local-storage.js\n");
-
-/***/ }),
-
-/***/ "(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?ee1e":
-/*!********************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/request-async-storage.external.js ***!
- \********************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ requestAsyncStorage: () => (/* binding */ requestAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var _async_local_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./async-local-storage */ \"(shared)/../../node_modules/next/dist/esm/client/components/async-local-storage.js\");\n\nconst requestAsyncStorage = (0,_async_local_storage__WEBPACK_IMPORTED_MODULE_0__.createAsyncLocalStorage)(); //# sourceMappingURL=request-async-storage.external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvcmVxdWVzdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzP2VlMWUiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBZ0U7QUFDekQsTUFBTUMsc0JBQXNCRCw2RUFBdUJBLEdBQUcsQ0FFN0QsMERBQTBEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2VzbS9jbGllbnQvY29tcG9uZW50cy9yZXF1ZXN0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanM/MTliNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSB9IGZyb20gXCIuL2FzeW5jLWxvY2FsLXN0b3JhZ2VcIjtcbmV4cG9ydCBjb25zdCByZXF1ZXN0QXN5bmNTdG9yYWdlID0gY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UoKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSIsInJlcXVlc3RBc3luY1N0b3JhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(shared)/../../node_modules/next/dist/esm/client/components/request-async-storage.external.js?ee1e\n");
-
-/***/ }),
-
-/***/ "(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?926a":
-/*!******************************************************************************************************!*\
- !*** ../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js ***!
- \******************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ staticGenerationAsyncStorage: () => (/* binding */ staticGenerationAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var _async_local_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./async-local-storage */ \"(shared)/../../node_modules/next/dist/esm/client/components/async-local-storage.js\");\n\nconst staticGenerationAsyncStorage = (0,_async_local_storage__WEBPACK_IMPORTED_MODULE_0__.createAsyncLocalStorage)(); //# sourceMappingURL=static-generation-async-storage.external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNoYXJlZCkvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbC5qcz85MjZhIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWdFO0FBQ3pELE1BQU1DLCtCQUErQkQsNkVBQXVCQSxHQUFHLENBRXRFLG9FQUFvRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9lc20vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbC5qcz85Y2YyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSBcIi4vYXN5bmMtbG9jYWwtc3RvcmFnZVwiO1xuZXhwb3J0IGNvbnN0IHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UgPSBjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSgpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGF0aWMtZ2VuZXJhdGlvbi1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzLm1hcCJdLCJuYW1lcyI6WyJjcmVhdGVBc3luY0xvY2FsU3RvcmFnZSIsInN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(shared)/../../node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js?926a\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/next/dist/compiled/superstruct/index.cjs":
-/*!*******************************************************************!*\
- !*** ../../node_modules/next/dist/compiled/superstruct/index.cjs ***!
- \*******************************************************************/
-/***/ ((module) => {
-
-"use strict";
-eval("var __dirname = \"/\";\n\n(()=>{\n var e = {\n 318: function(e, t) {\n (function(e, n) {\n true ? n(t) : 0;\n })(this, function(e) {\n \"use strict\";\n class StructError extends TypeError {\n constructor(e, t){\n let n;\n const { message: r, explanation: i, ...c } = e;\n const { path: o } = e;\n const a = o.length === 0 ? r : `At path: ${o.join(\".\")} -- ${r}`;\n super(i ?? a);\n if (i != null) this.cause = a;\n Object.assign(this, c);\n this.name = this.constructor.name;\n this.failures = ()=>n ?? (n = [\n e,\n ...t()\n ]);\n }\n }\n function isIterable(e) {\n return isObject(e) && typeof e[Symbol.iterator] === \"function\";\n }\n function isObject(e) {\n return typeof e === \"object\" && e != null;\n }\n function isPlainObject(e) {\n if (Object.prototype.toString.call(e) !== \"[object Object]\") {\n return false;\n }\n const t = Object.getPrototypeOf(e);\n return t === null || t === Object.prototype;\n }\n function print(e) {\n if (typeof e === \"symbol\") {\n return e.toString();\n }\n return typeof e === \"string\" ? JSON.stringify(e) : `${e}`;\n }\n function shiftIterator(e) {\n const { done: t, value: n } = e.next();\n return t ? undefined : n;\n }\n function toFailure(e, t, n, r) {\n if (e === true) {\n return;\n } else if (e === false) {\n e = {};\n } else if (typeof e === \"string\") {\n e = {\n message: e\n };\n }\n const { path: i, branch: c } = t;\n const { type: o } = n;\n const { refinement: a, message: s = `Expected a value of type \\`${o}\\`${a ? ` with refinement \\`${a}\\`` : \"\"}, but received: \\`${print(r)}\\`` } = e;\n return {\n value: r,\n type: o,\n refinement: a,\n key: i[i.length - 1],\n path: i,\n branch: c,\n ...e,\n message: s\n };\n }\n function* toFailures(e, t, n, r) {\n if (!isIterable(e)) {\n e = [\n e\n ];\n }\n for (const i of e){\n const e = toFailure(i, t, n, r);\n if (e) {\n yield e;\n }\n }\n }\n function* run(e, t, n = {}) {\n const { path: r = [], branch: i = [\n e\n ], coerce: c = false, mask: o = false } = n;\n const a = {\n path: r,\n branch: i\n };\n if (c) {\n e = t.coercer(e, a);\n if (o && t.type !== \"type\" && isObject(t.schema) && isObject(e) && !Array.isArray(e)) {\n for(const n in e){\n if (t.schema[n] === undefined) {\n delete e[n];\n }\n }\n }\n }\n let s = \"valid\";\n for (const r of t.validator(e, a)){\n r.explanation = n.message;\n s = \"not_valid\";\n yield [\n r,\n undefined\n ];\n }\n for (let [u, f, l] of t.entries(e, a)){\n const t = run(f, l, {\n path: u === undefined ? r : [\n ...r,\n u\n ],\n branch: u === undefined ? i : [\n ...i,\n f\n ],\n coerce: c,\n mask: o,\n message: n.message\n });\n for (const n of t){\n if (n[0]) {\n s = n[0].refinement != null ? \"not_refined\" : \"not_valid\";\n yield [\n n[0],\n undefined\n ];\n } else if (c) {\n f = n[1];\n if (u === undefined) {\n e = f;\n } else if (e instanceof Map) {\n e.set(u, f);\n } else if (e instanceof Set) {\n e.add(f);\n } else if (isObject(e)) {\n if (f !== undefined || u in e) e[u] = f;\n }\n }\n }\n }\n if (s !== \"not_valid\") {\n for (const r of t.refiner(e, a)){\n r.explanation = n.message;\n s = \"not_refined\";\n yield [\n r,\n undefined\n ];\n }\n }\n if (s === \"valid\") {\n yield [\n undefined,\n e\n ];\n }\n }\n class Struct {\n constructor(e){\n const { type: t, schema: n, validator: r, refiner: i, coercer: c = (e)=>e, entries: o = function*() {} } = e;\n this.type = t;\n this.schema = n;\n this.entries = o;\n this.coercer = c;\n if (r) {\n this.validator = (e, t)=>{\n const n = r(e, t);\n return toFailures(n, t, this, e);\n };\n } else {\n this.validator = ()=>[];\n }\n if (i) {\n this.refiner = (e, t)=>{\n const n = i(e, t);\n return toFailures(n, t, this, e);\n };\n } else {\n this.refiner = ()=>[];\n }\n }\n assert(e, t) {\n return assert(e, this, t);\n }\n create(e, t) {\n return create(e, this, t);\n }\n is(e) {\n return is(e, this);\n }\n mask(e, t) {\n return mask(e, this, t);\n }\n validate(e, t = {}) {\n return validate(e, this, t);\n }\n }\n function assert(e, t, n) {\n const r = validate(e, t, {\n message: n\n });\n if (r[0]) {\n throw r[0];\n }\n }\n function create(e, t, n) {\n const r = validate(e, t, {\n coerce: true,\n message: n\n });\n if (r[0]) {\n throw r[0];\n } else {\n return r[1];\n }\n }\n function mask(e, t, n) {\n const r = validate(e, t, {\n coerce: true,\n mask: true,\n message: n\n });\n if (r[0]) {\n throw r[0];\n } else {\n return r[1];\n }\n }\n function is(e, t) {\n const n = validate(e, t);\n return !n[0];\n }\n function validate(e, t, n = {}) {\n const r = run(e, t, n);\n const i = shiftIterator(r);\n if (i[0]) {\n const e = new StructError(i[0], function*() {\n for (const e of r){\n if (e[0]) {\n yield e[0];\n }\n }\n });\n return [\n e,\n undefined\n ];\n } else {\n const e = i[1];\n return [\n undefined,\n e\n ];\n }\n }\n function assign(...e) {\n const t = e[0].type === \"type\";\n const n = e.map((e)=>e.schema);\n const r = Object.assign({}, ...n);\n return t ? type(r) : object(r);\n }\n function define(e, t) {\n return new Struct({\n type: e,\n schema: null,\n validator: t\n });\n }\n function deprecated(e, t) {\n return new Struct({\n ...e,\n refiner: (t, n)=>t === undefined || e.refiner(t, n),\n validator (n, r) {\n if (n === undefined) {\n return true;\n } else {\n t(n, r);\n return e.validator(n, r);\n }\n }\n });\n }\n function dynamic(e) {\n return new Struct({\n type: \"dynamic\",\n schema: null,\n *entries (t, n) {\n const r = e(t, n);\n yield* r.entries(t, n);\n },\n validator (t, n) {\n const r = e(t, n);\n return r.validator(t, n);\n },\n coercer (t, n) {\n const r = e(t, n);\n return r.coercer(t, n);\n },\n refiner (t, n) {\n const r = e(t, n);\n return r.refiner(t, n);\n }\n });\n }\n function lazy(e) {\n let t;\n return new Struct({\n type: \"lazy\",\n schema: null,\n *entries (n, r) {\n t ?? (t = e());\n yield* t.entries(n, r);\n },\n validator (n, r) {\n t ?? (t = e());\n return t.validator(n, r);\n },\n coercer (n, r) {\n t ?? (t = e());\n return t.coercer(n, r);\n },\n refiner (n, r) {\n t ?? (t = e());\n return t.refiner(n, r);\n }\n });\n }\n function omit(e, t) {\n const { schema: n } = e;\n const r = {\n ...n\n };\n for (const e of t){\n delete r[e];\n }\n switch(e.type){\n case \"type\":\n return type(r);\n default:\n return object(r);\n }\n }\n function partial(e) {\n const t = e instanceof Struct ? {\n ...e.schema\n } : {\n ...e\n };\n for(const e in t){\n t[e] = optional(t[e]);\n }\n return object(t);\n }\n function pick(e, t) {\n const { schema: n } = e;\n const r = {};\n for (const e of t){\n r[e] = n[e];\n }\n return object(r);\n }\n function struct(e, t) {\n console.warn(\"[email protected] - The `struct` helper has been renamed to `define`.\");\n return define(e, t);\n }\n function any() {\n return define(\"any\", ()=>true);\n }\n function array(e) {\n return new Struct({\n type: \"array\",\n schema: e,\n *entries (t) {\n if (e && Array.isArray(t)) {\n for (const [n, r] of t.entries()){\n yield [\n n,\n r,\n e\n ];\n }\n }\n },\n coercer (e) {\n return Array.isArray(e) ? e.slice() : e;\n },\n validator (e) {\n return Array.isArray(e) || `Expected an array value, but received: ${print(e)}`;\n }\n });\n }\n function bigint() {\n return define(\"bigint\", (e)=>typeof e === \"bigint\");\n }\n function boolean() {\n return define(\"boolean\", (e)=>typeof e === \"boolean\");\n }\n function date() {\n return define(\"date\", (e)=>e instanceof Date && !isNaN(e.getTime()) || `Expected a valid \\`Date\\` object, but received: ${print(e)}`);\n }\n function enums(e) {\n const t = {};\n const n = e.map((e)=>print(e)).join();\n for (const n of e){\n t[n] = n;\n }\n return new Struct({\n type: \"enums\",\n schema: t,\n validator (t) {\n return e.includes(t) || `Expected one of \\`${n}\\`, but received: ${print(t)}`;\n }\n });\n }\n function func() {\n return define(\"func\", (e)=>typeof e === \"function\" || `Expected a function, but received: ${print(e)}`);\n }\n function instance(e) {\n return define(\"instance\", (t)=>t instanceof e || `Expected a \\`${e.name}\\` instance, but received: ${print(t)}`);\n }\n function integer() {\n return define(\"integer\", (e)=>typeof e === \"number\" && !isNaN(e) && Number.isInteger(e) || `Expected an integer, but received: ${print(e)}`);\n }\n function intersection(e) {\n return new Struct({\n type: \"intersection\",\n schema: null,\n *entries (t, n) {\n for (const r of e){\n yield* r.entries(t, n);\n }\n },\n *validator (t, n) {\n for (const r of e){\n yield* r.validator(t, n);\n }\n },\n *refiner (t, n) {\n for (const r of e){\n yield* r.refiner(t, n);\n }\n }\n });\n }\n function literal(e) {\n const t = print(e);\n const n = typeof e;\n return new Struct({\n type: \"literal\",\n schema: n === \"string\" || n === \"number\" || n === \"boolean\" ? e : null,\n validator (n) {\n return n === e || `Expected the literal \\`${t}\\`, but received: ${print(n)}`;\n }\n });\n }\n function map(e, t) {\n return new Struct({\n type: \"map\",\n schema: null,\n *entries (n) {\n if (e && t && n instanceof Map) {\n for (const [r, i] of n.entries()){\n yield [\n r,\n r,\n e\n ];\n yield [\n r,\n i,\n t\n ];\n }\n }\n },\n coercer (e) {\n return e instanceof Map ? new Map(e) : e;\n },\n validator (e) {\n return e instanceof Map || `Expected a \\`Map\\` object, but received: ${print(e)}`;\n }\n });\n }\n function never() {\n return define(\"never\", ()=>false);\n }\n function nullable(e) {\n return new Struct({\n ...e,\n validator: (t, n)=>t === null || e.validator(t, n),\n refiner: (t, n)=>t === null || e.refiner(t, n)\n });\n }\n function number() {\n return define(\"number\", (e)=>typeof e === \"number\" && !isNaN(e) || `Expected a number, but received: ${print(e)}`);\n }\n function object(e) {\n const t = e ? Object.keys(e) : [];\n const n = never();\n return new Struct({\n type: \"object\",\n schema: e ? e : null,\n *entries (r) {\n if (e && isObject(r)) {\n const i = new Set(Object.keys(r));\n for (const n of t){\n i.delete(n);\n yield [\n n,\n r[n],\n e[n]\n ];\n }\n for (const e of i){\n yield [\n e,\n r[e],\n n\n ];\n }\n }\n },\n validator (e) {\n return isObject(e) || `Expected an object, but received: ${print(e)}`;\n },\n coercer (e) {\n return isObject(e) ? {\n ...e\n } : e;\n }\n });\n }\n function optional(e) {\n return new Struct({\n ...e,\n validator: (t, n)=>t === undefined || e.validator(t, n),\n refiner: (t, n)=>t === undefined || e.refiner(t, n)\n });\n }\n function record(e, t) {\n return new Struct({\n type: \"record\",\n schema: null,\n *entries (n) {\n if (isObject(n)) {\n for(const r in n){\n const i = n[r];\n yield [\n r,\n r,\n e\n ];\n yield [\n r,\n i,\n t\n ];\n }\n }\n },\n validator (e) {\n return isObject(e) || `Expected an object, but received: ${print(e)}`;\n }\n });\n }\n function regexp() {\n return define(\"regexp\", (e)=>e instanceof RegExp);\n }\n function set(e) {\n return new Struct({\n type: \"set\",\n schema: null,\n *entries (t) {\n if (e && t instanceof Set) {\n for (const n of t){\n yield [\n n,\n n,\n e\n ];\n }\n }\n },\n coercer (e) {\n return e instanceof Set ? new Set(e) : e;\n },\n validator (e) {\n return e instanceof Set || `Expected a \\`Set\\` object, but received: ${print(e)}`;\n }\n });\n }\n function string() {\n return define(\"string\", (e)=>typeof e === \"string\" || `Expected a string, but received: ${print(e)}`);\n }\n function tuple(e) {\n const t = never();\n return new Struct({\n type: \"tuple\",\n schema: null,\n *entries (n) {\n if (Array.isArray(n)) {\n const r = Math.max(e.length, n.length);\n for(let i = 0; i < r; i++){\n yield [\n i,\n n[i],\n e[i] || t\n ];\n }\n }\n },\n validator (e) {\n return Array.isArray(e) || `Expected an array, but received: ${print(e)}`;\n }\n });\n }\n function type(e) {\n const t = Object.keys(e);\n return new Struct({\n type: \"type\",\n schema: e,\n *entries (n) {\n if (isObject(n)) {\n for (const r of t){\n yield [\n r,\n n[r],\n e[r]\n ];\n }\n }\n },\n validator (e) {\n return isObject(e) || `Expected an object, but received: ${print(e)}`;\n },\n coercer (e) {\n return isObject(e) ? {\n ...e\n } : e;\n }\n });\n }\n function union(e) {\n const t = e.map((e)=>e.type).join(\" | \");\n return new Struct({\n type: \"union\",\n schema: null,\n coercer (t) {\n for (const n of e){\n const [e, r] = n.validate(t, {\n coerce: true\n });\n if (!e) {\n return r;\n }\n }\n return t;\n },\n validator (n, r) {\n const i = [];\n for (const t of e){\n const [...e] = run(n, t, r);\n const [c] = e;\n if (!c[0]) {\n return [];\n } else {\n for (const [t] of e){\n if (t) {\n i.push(t);\n }\n }\n }\n }\n return [\n `Expected the value to satisfy a union of \\`${t}\\`, but received: ${print(n)}`,\n ...i\n ];\n }\n });\n }\n function unknown() {\n return define(\"unknown\", ()=>true);\n }\n function coerce(e, t, n) {\n return new Struct({\n ...e,\n coercer: (r, i)=>is(r, t) ? e.coercer(n(r, i), i) : e.coercer(r, i)\n });\n }\n function defaulted(e, t, n = {}) {\n return coerce(e, unknown(), (e)=>{\n const r = typeof t === \"function\" ? t() : t;\n if (e === undefined) {\n return r;\n }\n if (!n.strict && isPlainObject(e) && isPlainObject(r)) {\n const t = {\n ...e\n };\n let n = false;\n for(const e in r){\n if (t[e] === undefined) {\n t[e] = r[e];\n n = true;\n }\n }\n if (n) {\n return t;\n }\n }\n return e;\n });\n }\n function trimmed(e) {\n return coerce(e, string(), (e)=>e.trim());\n }\n function empty(e) {\n return refine(e, \"empty\", (t)=>{\n const n = getSize(t);\n return n === 0 || `Expected an empty ${e.type} but received one with a size of \\`${n}\\``;\n });\n }\n function getSize(e) {\n if (e instanceof Map || e instanceof Set) {\n return e.size;\n } else {\n return e.length;\n }\n }\n function max(e, t, n = {}) {\n const { exclusive: r } = n;\n return refine(e, \"max\", (n)=>r ? n < t : n <= t || `Expected a ${e.type} less than ${r ? \"\" : \"or equal to \"}${t} but received \\`${n}\\``);\n }\n function min(e, t, n = {}) {\n const { exclusive: r } = n;\n return refine(e, \"min\", (n)=>r ? n > t : n >= t || `Expected a ${e.type} greater than ${r ? \"\" : \"or equal to \"}${t} but received \\`${n}\\``);\n }\n function nonempty(e) {\n return refine(e, \"nonempty\", (t)=>{\n const n = getSize(t);\n return n > 0 || `Expected a nonempty ${e.type} but received an empty one`;\n });\n }\n function pattern(e, t) {\n return refine(e, \"pattern\", (n)=>t.test(n) || `Expected a ${e.type} matching \\`/${t.source}/\\` but received \"${n}\"`);\n }\n function size(e, t, n = t) {\n const r = `Expected a ${e.type}`;\n const i = t === n ? `of \\`${t}\\`` : `between \\`${t}\\` and \\`${n}\\``;\n return refine(e, \"size\", (e)=>{\n if (typeof e === \"number\" || e instanceof Date) {\n return t <= e && e <= n || `${r} ${i} but received \\`${e}\\``;\n } else if (e instanceof Map || e instanceof Set) {\n const { size: c } = e;\n return t <= c && c <= n || `${r} with a size ${i} but received one with a size of \\`${c}\\``;\n } else {\n const { length: c } = e;\n return t <= c && c <= n || `${r} with a length ${i} but received one with a length of \\`${c}\\``;\n }\n });\n }\n function refine(e, t, n) {\n return new Struct({\n ...e,\n *refiner (r, i) {\n yield* e.refiner(r, i);\n const c = n(r, i);\n const o = toFailures(c, i, e, r);\n for (const e of o){\n yield {\n ...e,\n refinement: t\n };\n }\n }\n });\n }\n e.Struct = Struct;\n e.StructError = StructError;\n e.any = any;\n e.array = array;\n e.assert = assert;\n e.assign = assign;\n e.bigint = bigint;\n e.boolean = boolean;\n e.coerce = coerce;\n e.create = create;\n e.date = date;\n e.defaulted = defaulted;\n e.define = define;\n e.deprecated = deprecated;\n e.dynamic = dynamic;\n e.empty = empty;\n e.enums = enums;\n e.func = func;\n e.instance = instance;\n e.integer = integer;\n e.intersection = intersection;\n e.is = is;\n e.lazy = lazy;\n e.literal = literal;\n e.map = map;\n e.mask = mask;\n e.max = max;\n e.min = min;\n e.never = never;\n e.nonempty = nonempty;\n e.nullable = nullable;\n e.number = number;\n e.object = object;\n e.omit = omit;\n e.optional = optional;\n e.partial = partial;\n e.pattern = pattern;\n e.pick = pick;\n e.record = record;\n e.refine = refine;\n e.regexp = regexp;\n e.set = set;\n e.size = size;\n e.string = string;\n e.struct = struct;\n e.trimmed = trimmed;\n e.tuple = tuple;\n e.type = type;\n e.union = union;\n e.unknown = unknown;\n e.validate = validate;\n });\n }\n };\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var t = {};\n e[318](0, t);\n module.exports = t;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdXBlcnN0cnVjdC9pbmRleC5janMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLLElBQUlBLElBQUU7UUFBQyxLQUFJLFNBQVNBLENBQUMsRUFBQ0MsQ0FBQztZQUFHLFVBQVNELENBQUMsRUFBQ0UsQ0FBQztnQkFBRSxLQUFJLEdBQUNBLEVBQUVELEtBQUcsQ0FBQztZQUFBLEdBQUcsSUFBSSxFQUFFLFNBQVNELENBQUM7Z0JBQUU7Z0JBQWEsTUFBTUcsb0JBQW9CQztvQkFBVUMsWUFBWUwsQ0FBQyxFQUFDQyxDQUFDLENBQUM7d0JBQUMsSUFBSUM7d0JBQUUsTUFBSyxFQUFDSSxTQUFRQyxDQUFDLEVBQUNDLGFBQVlDLENBQUMsRUFBQyxHQUFHQyxHQUFFLEdBQUNWO3dCQUFFLE1BQUssRUFBQ1csTUFBS0MsQ0FBQyxFQUFDLEdBQUNaO3dCQUFFLE1BQU1hLElBQUVELEVBQUVFLE1BQU0sS0FBRyxJQUFFUCxJQUFFLENBQUMsU0FBUyxFQUFFSyxFQUFFRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUVSLEVBQUUsQ0FBQzt3QkFBQyxLQUFLLENBQUNFLEtBQUdJO3dCQUFHLElBQUdKLEtBQUcsTUFBSyxJQUFJLENBQUNPLEtBQUssR0FBQ0g7d0JBQUVJLE9BQU9DLE1BQU0sQ0FBQyxJQUFJLEVBQUNSO3dCQUFHLElBQUksQ0FBQ1MsSUFBSSxHQUFDLElBQUksQ0FBQ2QsV0FBVyxDQUFDYyxJQUFJO3dCQUFDLElBQUksQ0FBQ0MsUUFBUSxHQUFDLElBQUlsQixLQUFJQSxDQUFBQSxJQUFFO2dDQUFDRjttQ0FBS0M7NkJBQUk7b0JBQUM7Z0JBQUM7Z0JBQUMsU0FBU29CLFdBQVdyQixDQUFDO29CQUFFLE9BQU9zQixTQUFTdEIsTUFBSSxPQUFPQSxDQUFDLENBQUN1QixPQUFPQyxRQUFRLENBQUMsS0FBRztnQkFBVTtnQkFBQyxTQUFTRixTQUFTdEIsQ0FBQztvQkFBRSxPQUFPLE9BQU9B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USxHQUFDQTtZQUFRO1FBQUc7SUFBQztJQUFFLElBQUcsT0FBTzZELHdCQUFzQixhQUFZQSxvQkFBb0JDLEVBQUUsR0FBQ0MsU0FBU0EsR0FBQztJQUFJLElBQUloSSxJQUFFLENBQUM7SUFBRUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFFQztJQUFHaUksT0FBT0MsT0FBTyxHQUFDbEk7QUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdXBlcnN0cnVjdC9pbmRleC5janM/NGQ5OSJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9Pnt2YXIgZT17MzE4OmZ1bmN0aW9uKGUsdCl7KGZ1bmN0aW9uKGUsbil7dHJ1ZT9uKHQpOjB9KSh0aGlzLChmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtjbGFzcyBTdHJ1Y3RFcnJvciBleHRlbmRzIFR5cGVFcnJvcntjb25zdHJ1Y3RvcihlLHQpe2xldCBuO2NvbnN0e21lc3NhZ2U6cixleHBsYW5hdGlvbjppLC4uLmN9PWU7Y29uc3R7cGF0aDpvfT1lO2NvbnN0IGE9by5sZW5ndGg9PT0wP3I6YEF0IHBhdGg6ICR7by5qb2luKFwiLlwiKX0gLS0gJHtyfWA7c3VwZXIoaT8/YSk7aWYoaSE9bnVsbCl0aGlzLmNhdXNlPWE7T2JqZWN0LmFzc2lnbih0aGlzLGMpO3RoaXMubmFtZT10aGlzLmNvbnN0cnVjdG9yLm5hbWU7dGhpcy5mYWlsdXJlcz0oKT0+bj8/KG49W2UsLi4udCgpXSl9fWZ1bmN0aW9uIGlzSXRlcmFibGUoZSl7cmV0dXJuIGlzT2JqZWN0KGUpJiZ0eXBlb2YgZVtTeW1ib2wuaXRlcmF0b3JdPT09XCJmdW5jdGlvblwifWZ1bmN0aW9uIGlzT2JqZWN0KGUpe3JldHVybiB0eXBlb2YgZT09PVwib2JqZWN0XCImJmUhPW51bGx9ZnVuY3Rpb24gaXNQbGFpbk9iamVjdChlKXtpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkhPT1cIltvYmplY3QgT2JqZWN0XVwiKXtyZXR1cm4gZmFsc2V9Y29uc3QgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiBwcmludChlKXtpZih0eXBlb2YgZT09PVwic3ltYm9sXCIpe3JldHVybiBlLnRvU3RyaW5nKCl9cmV0dXJuIHR5cGVvZiBlPT09XCJzdHJpbmdcIj9KU09OLnN0cmluZ2lmeShlKTpgJHtlfWB9ZnVuY3Rpb24gc2hpZnRJdGVyYXRvcihlKXtjb25zdHtkb25lOnQsdmFsdWU6bn09ZS5uZXh0KCk7cmV0dXJuIHQ/dW5kZWZpbmVkOm59ZnVuY3Rpb24gdG9GYWlsdXJlKGUsdCxuLHIpe2lmKGU9PT10cnVlKXtyZXR1cm59ZWxzZSBpZihlPT09ZmFsc2Upe2U9e319ZWxzZSBpZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe2U9e21lc3NhZ2U6ZX19Y29uc3R7cGF0aDppLGJyYW5jaDpjfT10O2NvbnN0e3R5cGU6b309bjtjb25zdHtyZWZpbmVtZW50OmEsbWVzc2FnZTpzPWBFeHBlY3RlZCBhIHZhbHVlIG9mIHR5cGUgXFxgJHtvfVxcYCR7YT9gIHdpdGggcmVmaW5lbWVudCBcXGAke2F9XFxgYDpcIlwifSwgYnV0IHJlY2VpdmVkOiBcXGAke3ByaW50KHIpfVxcYGB9PWU7cmV0dXJue3ZhbHVlOnIsdHlwZTpvLHJlZmluZW1lbnQ6YSxrZXk6aVtpLmxlbmd0aC0xXSxwYXRoOmksYnJhbmNoOmMsLi4uZSxtZXNzYWdlOnN9fWZ1bmN0aW9uKnRvRmFpbHVyZXMoZSx0LG4scil7aWYoIWlzSXRlcmFibGUoZSkpe2U9W2VdfWZvcihjb25zdCBpIG9mIGUpe2NvbnN0IGU9dG9GYWlsdXJlKGksdCxuLHIpO2lmKGUpe3lpZWxkIGV9fX1mdW5jdGlvbipydW4oZSx0LG49e30pe2NvbnN0e3BhdGg6cj1bXSxicmFuY2g6aT1bZV0sY29lcmNlOmM9ZmFsc2UsbWFzazpvPWZhbHNlfT1uO2NvbnN0IGE9e3BhdGg6cixicmFuY2g6aX07aWYoYyl7ZT10LmNvZXJjZXIoZSxhKTtpZihvJiZ0LnR5cGUhPT1cInR5cGVcIiYmaXNPYmplY3QodC5zY2hlbWEpJiZpc09iamVjdChlKSYmIUFycmF5LmlzQXJyYXkoZSkpe2Zvcihjb25zdCBuIGluIGUpe2lmKHQuc2NoZW1hW25dPT09dW5kZWZpbmVkKXtkZWxldGUgZVtuXX19fX1sZXQgcz1cInZhbGlkXCI7Zm9yKGNvbnN0IHIgb2YgdC52YWxpZGF0b3IoZSxhKSl7ci5leHBsYW5hdGlvbj1uLm1lc3NhZ2U7cz1cIm5vdF92YWxpZFwiO3lpZWxkW3IsdW5kZWZpbmVkXX1mb3IobGV0W3UsZixsXW9mIHQuZW50cmllcyhlLGEpKXtjb25zdCB0PXJ1bihmLGwse3BhdGg6dT09PXVuZGVmaW5lZD9yOlsuLi5yLHVdLGJyYW5jaDp1PT09dW5kZWZpbmVkP2k6Wy4uLmksZl0sY29lcmNlOmMsbWFzazpvLG1lc3NhZ2U6bi5tZXNzYWdlfSk7Zm9yKGNvbnN0IG4gb2YgdCl7aWYoblswXSl7cz1uWzBdLnJlZmluZW1lbnQhPW51bGw/XCJub3RfcmVmaW5lZFwiOlwibm90X3ZhbGlkXCI7eWllbGRbblswXSx1bmRlZmluZWRdfWVsc2UgaWYoYyl7Zj1uWzFdO2lmKHU9PT11bmRlZmluZWQpe2U9Zn1lbHNlIGlmKGUgaW5zdGFuY2VvZiBNYXApe2Uuc2V0KHUsZil9ZWxzZSBpZihlIGluc3RhbmNlb2YgU2V0KXtlLmFkZChmKX1lbHNlIGlmKGlzT2JqZWN0KGUpKXtpZihmIT09dW5kZWZpbmVkfHx1IGluIGUpZVt1XT1mfX19fWlmKHMhPT1cIm5vdF92YWxpZFwiKXtmb3IoY29uc3QgciBvZiB0LnJlZmluZXIoZSxhKSl7ci5leHBsYW5hdGlvbj1uLm1lc3NhZ2U7cz1cIm5vdF9yZWZpbmVkXCI7eWllbGRbcix1bmRlZmluZWRdfX1pZihzPT09XCJ2YWxpZFwiKXt5aWVsZFt1bmRlZmluZWQsZV19fWNsYXNzIFN0cnVjdHtjb25zdHJ1Y3RvcihlKXtjb25zdHt0eXBlOnQsc2NoZW1hOm4sdmFsaWRhdG9yOnIscmVmaW5lcjppLGNvZXJjZXI6Yz0oZT0+ZSksZW50cmllczpvPWZ1bmN0aW9uKigpe319PWU7dGhpcy50eXBlPXQ7dGhpcy5zY2hlbWE9bjt0aGlzLmVudHJpZXM9bzt0aGlzLmNvZXJjZXI9YztpZihyKXt0aGlzLnZhbGlkYXRvcj0oZSx0KT0+e2NvbnN0IG49cihlLHQpO3JldHVybiB0b0ZhaWx1cmVzKG4sdCx0aGlzLGUpfX1lbHNle3RoaXMudmFsaWRhdG9yPSgpPT5bXX1pZihpKXt0aGlzLnJlZmluZXI9KGUsdCk9Pntjb25zdCBuPWkoZSx0KTtyZXR1cm4gdG9GYWlsdXJlcyhuLHQsdGhpcyxlKX19ZWxzZXt0aGlzLnJlZmluZXI9KCk9PltdfX1hc3NlcnQoZSx0KXtyZXR1cm4gYXNzZXJ0KGUsdGhpcyx0KX1jcmVhdGUoZSx0KXtyZXR1cm4gY3JlYXRlKGUsdGhpcyx0KX1pcyhlKXtyZXR1cm4gaXMoZSx0aGlzKX1tYXNrKGUsdCl7cmV0dXJuIG1hc2soZSx0aGlzLHQpfXZhbGlkYXRlKGUsdD17fSl7cmV0dXJuIHZhbGlkYXRlKGUsdGhpcyx0KX19ZnVuY3Rpb24gYXNzZXJ0KGUsdCxuKXtjb25zdCByPXZhbGlkYXRlKGUsdCx7bWVzc2FnZTpufSk7aWYoclswXSl7dGhyb3cgclswXX19ZnVuY3Rpb24gY3JlYXRlKGUsdCxuKXtjb25zdCByPXZhbGlkYXRlKGUsdCx7Y29lcmNlOnRydWUsbWVzc2FnZTpufSk7aWYoclswXSl7dGhyb3cgclswXX1lbHNle3JldHVybiByWzFdfX1mdW5jdGlvbiBtYXNrKGUsdCxuKXtjb25zdCByPXZhbGlkYXRlKGUsdCx7Y29lcmNlOnRydWUsbWFzazp0cnVlLG1lc3NhZ2U6bn0pO2lmKHJbMF0pe3Rocm93IHJbMF19ZWxzZXtyZXR1cm4gclsxXX19ZnVuY3Rpb24gaXMoZSx0KXtjb25zdCBuPXZhbGlkYXRlKGUsdCk7cmV0dXJuIW5bMF19ZnVuY3Rpb24gdmFsaWRhdGUoZSx0LG49e30pe2NvbnN0IHI9cnVuKGUsdCxuKTtjb25zdCBpPXNoaWZ0SXRlcmF0b3Iocik7aWYoaVswXSl7Y29uc3QgZT1uZXcgU3RydWN0RXJyb3IoaVswXSwoZnVuY3Rpb24qKCl7Zm9yKGNvbnN0IGUgb2Ygcil7aWYoZVswXSl7eWllbGQgZVswXX19fSkpO3JldHVybltlLHVuZGVmaW5lZF19ZWxzZXtjb25zdCBlPWlbMV07cmV0dXJuW3VuZGVmaW5lZCxlXX19ZnVuY3Rpb24gYXNzaWduKC4uLmUpe2NvbnN0IHQ9ZVswXS50eXBlPT09XCJ0eXBlXCI7Y29uc3Qgbj1lLm1hcCgoZT0+ZS5zY2hlbWEpKTtjb25zdCByPU9iamVjdC5hc3NpZ24oe30sLi4ubik7cmV0dXJuIHQ/dHlwZShyKTpvYmplY3Qocil9ZnVuY3Rpb24gZGVmaW5lKGUsdCl7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6ZSxzY2hlbWE6bnVsbCx2YWxpZGF0b3I6dH0pfWZ1bmN0aW9uIGRlcHJlY2F0ZWQoZSx0KXtyZXR1cm4gbmV3IFN0cnVjdCh7Li4uZSxyZWZpbmVyOih0LG4pPT50PT09dW5kZWZpbmVkfHxlLnJlZmluZXIodCxuKSx2YWxpZGF0b3IobixyKXtpZihuPT09dW5kZWZpbmVkKXtyZXR1cm4gdHJ1ZX1lbHNle3QobixyKTtyZXR1cm4gZS52YWxpZGF0b3IobixyKX19fSl9ZnVuY3Rpb24gZHluYW1pYyhlKXtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcImR5bmFtaWNcIixzY2hlbWE6bnVsbCwqZW50cmllcyh0LG4pe2NvbnN0IHI9ZSh0LG4pO3lpZWxkKnIuZW50cmllcyh0LG4pfSx2YWxpZGF0b3IodCxuKXtjb25zdCByPWUodCxuKTtyZXR1cm4gci52YWxpZGF0b3IodCxuKX0sY29lcmNlcih0LG4pe2NvbnN0IHI9ZSh0LG4pO3JldHVybiByLmNvZXJjZXIodCxuKX0scmVmaW5lcih0LG4pe2NvbnN0IHI9ZSh0LG4pO3JldHVybiByLnJlZmluZXIodCxuKX19KX1mdW5jdGlvbiBsYXp5KGUpe2xldCB0O3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwibGF6eVwiLHNjaGVtYTpudWxsLCplbnRyaWVzKG4scil7dD8/KHQ9ZSgpKTt5aWVsZCp0LmVudHJpZXMobixyKX0sdmFsaWRhdG9yKG4scil7dD8/KHQ9ZSgpKTtyZXR1cm4gdC52YWxpZGF0b3IobixyKX0sY29lcmNlcihuLHIpe3Q/Pyh0PWUoKSk7cmV0dXJuIHQuY29lcmNlcihuLHIpfSxyZWZpbmVyKG4scil7dD8/KHQ9ZSgpKTtyZXR1cm4gdC5yZWZpbmVyKG4scil9fSl9ZnVuY3Rpb24gb21pdChlLHQpe2NvbnN0e3NjaGVtYTpufT1lO2NvbnN0IHI9ey4uLm59O2Zvcihjb25zdCBlIG9mIHQpe2RlbGV0ZSByW2VdfXN3aXRjaChlLnR5cGUpe2Nhc2VcInR5cGVcIjpyZXR1cm4gdHlwZShyKTtkZWZhdWx0OnJldHVybiBvYmplY3Qocil9fWZ1bmN0aW9uIHBhcnRpYWwoZSl7Y29uc3QgdD1lIGluc3RhbmNlb2YgU3RydWN0P3suLi5lLnNjaGVtYX06ey4uLmV9O2Zvcihjb25zdCBlIGluIHQpe3RbZV09b3B0aW9uYWwodFtlXSl9cmV0dXJuIG9iamVjdCh0KX1mdW5jdGlvbiBwaWNrKGUsdCl7Y29uc3R7c2NoZW1hOm59PWU7Y29uc3Qgcj17fTtmb3IoY29uc3QgZSBvZiB0KXtyW2VdPW5bZV19cmV0dXJuIG9iamVjdChyKX1mdW5jdGlvbiBzdHJ1Y3QoZSx0KXtjb25zb2xlLndhcm4oXCJzdXBlcnN0cnVjdEAwLjExIC0gVGhlIGBzdHJ1Y3RgIGhlbHBlciBoYXMgYmVlbiByZW5hbWVkIHRvIGBkZWZpbmVgLlwiKTtyZXR1cm4gZGVmaW5lKGUsdCl9ZnVuY3Rpb24gYW55KCl7cmV0dXJuIGRlZmluZShcImFueVwiLCgoKT0+dHJ1ZSkpfWZ1bmN0aW9uIGFycmF5KGUpe3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwiYXJyYXlcIixzY2hlbWE6ZSwqZW50cmllcyh0KXtpZihlJiZBcnJheS5pc0FycmF5KHQpKXtmb3IoY29uc3RbbixyXW9mIHQuZW50cmllcygpKXt5aWVsZFtuLHIsZV19fX0sY29lcmNlcihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLnNsaWNlKCk6ZX0sdmFsaWRhdG9yKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpfHxgRXhwZWN0ZWQgYW4gYXJyYXkgdmFsdWUsIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gfX0pfWZ1bmN0aW9uIGJpZ2ludCgpe3JldHVybiBkZWZpbmUoXCJiaWdpbnRcIiwoZT0+dHlwZW9mIGU9PT1cImJpZ2ludFwiKSl9ZnVuY3Rpb24gYm9vbGVhbigpe3JldHVybiBkZWZpbmUoXCJib29sZWFuXCIsKGU9PnR5cGVvZiBlPT09XCJib29sZWFuXCIpKX1mdW5jdGlvbiBkYXRlKCl7cmV0dXJuIGRlZmluZShcImRhdGVcIiwoZT0+ZSBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihlLmdldFRpbWUoKSl8fGBFeHBlY3RlZCBhIHZhbGlkIFxcYERhdGVcXGAgb2JqZWN0LCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YCkpfWZ1bmN0aW9uIGVudW1zKGUpe2NvbnN0IHQ9e307Y29uc3Qgbj1lLm1hcCgoZT0+cHJpbnQoZSkpKS5qb2luKCk7Zm9yKGNvbnN0IG4gb2YgZSl7dFtuXT1ufXJldHVybiBuZXcgU3RydWN0KHt0eXBlOlwiZW51bXNcIixzY2hlbWE6dCx2YWxpZGF0b3IodCl7cmV0dXJuIGUuaW5jbHVkZXModCl8fGBFeHBlY3RlZCBvbmUgb2YgXFxgJHtufVxcYCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KHQpfWB9fSl9ZnVuY3Rpb24gZnVuYygpe3JldHVybiBkZWZpbmUoXCJmdW5jXCIsKGU9PnR5cGVvZiBlPT09XCJmdW5jdGlvblwifHxgRXhwZWN0ZWQgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWApKX1mdW5jdGlvbiBpbnN0YW5jZShlKXtyZXR1cm4gZGVmaW5lKFwiaW5zdGFuY2VcIiwodD0+dCBpbnN0YW5jZW9mIGV8fGBFeHBlY3RlZCBhIFxcYCR7ZS5uYW1lfVxcYCBpbnN0YW5jZSwgYnV0IHJlY2VpdmVkOiAke3ByaW50KHQpfWApKX1mdW5jdGlvbiBpbnRlZ2VyKCl7cmV0dXJuIGRlZmluZShcImludGVnZXJcIiwoZT0+dHlwZW9mIGU9PT1cIm51bWJlclwiJiYhaXNOYU4oZSkmJk51bWJlci5pc0ludGVnZXIoZSl8fGBFeHBlY3RlZCBhbiBpbnRlZ2VyLCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YCkpfWZ1bmN0aW9uIGludGVyc2VjdGlvbihlKXtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcImludGVyc2VjdGlvblwiLHNjaGVtYTpudWxsLCplbnRyaWVzKHQsbil7Zm9yKGNvbnN0IHIgb2YgZSl7eWllbGQqci5lbnRyaWVzKHQsbil9fSwqdmFsaWRhdG9yKHQsbil7Zm9yKGNvbnN0IHIgb2YgZSl7eWllbGQqci52YWxpZGF0b3IodCxuKX19LCpyZWZpbmVyKHQsbil7Zm9yKGNvbnN0IHIgb2YgZSl7eWllbGQqci5yZWZpbmVyKHQsbil9fX0pfWZ1bmN0aW9uIGxpdGVyYWwoZSl7Y29uc3QgdD1wcmludChlKTtjb25zdCBuPXR5cGVvZiBlO3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwibGl0ZXJhbFwiLHNjaGVtYTpuPT09XCJzdHJpbmdcInx8bj09PVwibnVtYmVyXCJ8fG49PT1cImJvb2xlYW5cIj9lOm51bGwsdmFsaWRhdG9yKG4pe3JldHVybiBuPT09ZXx8YEV4cGVjdGVkIHRoZSBsaXRlcmFsIFxcYCR7dH1cXGAsIGJ1dCByZWNlaXZlZDogJHtwcmludChuKX1gfX0pfWZ1bmN0aW9uIG1hcChlLHQpe3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwibWFwXCIsc2NoZW1hOm51bGwsKmVudHJpZXMobil7aWYoZSYmdCYmbiBpbnN0YW5jZW9mIE1hcCl7Zm9yKGNvbnN0W3IsaV1vZiBuLmVudHJpZXMoKSl7eWllbGRbcixyLGVdO3lpZWxkW3IsaSx0XX19fSxjb2VyY2VyKGUpe3JldHVybiBlIGluc3RhbmNlb2YgTWFwP25ldyBNYXAoZSk6ZX0sdmFsaWRhdG9yKGUpe3JldHVybiBlIGluc3RhbmNlb2YgTWFwfHxgRXhwZWN0ZWQgYSBcXGBNYXBcXGAgb2JqZWN0LCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YH19KX1mdW5jdGlvbiBuZXZlcigpe3JldHVybiBkZWZpbmUoXCJuZXZlclwiLCgoKT0+ZmFsc2UpKX1mdW5jdGlvbiBudWxsYWJsZShlKXtyZXR1cm4gbmV3IFN0cnVjdCh7Li4uZSx2YWxpZGF0b3I6KHQsbik9PnQ9PT1udWxsfHxlLnZhbGlkYXRvcih0LG4pLHJlZmluZXI6KHQsbik9PnQ9PT1udWxsfHxlLnJlZmluZXIodCxuKX0pfWZ1bmN0aW9uIG51bWJlcigpe3JldHVybiBkZWZpbmUoXCJudW1iZXJcIiwoZT0+dHlwZW9mIGU9PT1cIm51bWJlclwiJiYhaXNOYU4oZSl8fGBFeHBlY3RlZCBhIG51bWJlciwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWApKX1mdW5jdGlvbiBvYmplY3QoZSl7Y29uc3QgdD1lP09iamVjdC5rZXlzKGUpOltdO2NvbnN0IG49bmV2ZXIoKTtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcIm9iamVjdFwiLHNjaGVtYTplP2U6bnVsbCwqZW50cmllcyhyKXtpZihlJiZpc09iamVjdChyKSl7Y29uc3QgaT1uZXcgU2V0KE9iamVjdC5rZXlzKHIpKTtmb3IoY29uc3QgbiBvZiB0KXtpLmRlbGV0ZShuKTt5aWVsZFtuLHJbbl0sZVtuXV19Zm9yKGNvbnN0IGUgb2YgaSl7eWllbGRbZSxyW2VdLG5dfX19LHZhbGlkYXRvcihlKXtyZXR1cm4gaXNPYmplY3QoZSl8fGBFeHBlY3RlZCBhbiBvYmplY3QsIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gfSxjb2VyY2VyKGUpe3JldHVybiBpc09iamVjdChlKT97Li4uZX06ZX19KX1mdW5jdGlvbiBvcHRpb25hbChlKXtyZXR1cm4gbmV3IFN0cnVjdCh7Li4uZSx2YWxpZGF0b3I6KHQsbik9PnQ9PT11bmRlZmluZWR8fGUudmFsaWRhdG9yKHQsbikscmVmaW5lcjoodCxuKT0+dD09PXVuZGVmaW5lZHx8ZS5yZWZpbmVyKHQsbil9KX1mdW5jdGlvbiByZWNvcmQoZSx0KXtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcInJlY29yZFwiLHNjaGVtYTpudWxsLCplbnRyaWVzKG4pe2lmKGlzT2JqZWN0KG4pKXtmb3IoY29uc3QgciBpbiBuKXtjb25zdCBpPW5bcl07eWllbGRbcixyLGVdO3lpZWxkW3IsaSx0XX19fSx2YWxpZGF0b3IoZSl7cmV0dXJuIGlzT2JqZWN0KGUpfHxgRXhwZWN0ZWQgYW4gb2JqZWN0LCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YH19KX1mdW5jdGlvbiByZWdleHAoKXtyZXR1cm4gZGVmaW5lKFwicmVnZXhwXCIsKGU9PmUgaW5zdGFuY2VvZiBSZWdFeHApKX1mdW5jdGlvbiBzZXQoZSl7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJzZXRcIixzY2hlbWE6bnVsbCwqZW50cmllcyh0KXtpZihlJiZ0IGluc3RhbmNlb2YgU2V0KXtmb3IoY29uc3QgbiBvZiB0KXt5aWVsZFtuLG4sZV19fX0sY29lcmNlcihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFNldD9uZXcgU2V0KGUpOmV9LHZhbGlkYXRvcihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFNldHx8YEV4cGVjdGVkIGEgXFxgU2V0XFxgIG9iamVjdCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWB9fSl9ZnVuY3Rpb24gc3RyaW5nKCl7cmV0dXJuIGRlZmluZShcInN0cmluZ1wiLChlPT50eXBlb2YgZT09PVwic3RyaW5nXCJ8fGBFeHBlY3RlZCBhIHN0cmluZywgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWApKX1mdW5jdGlvbiB0dXBsZShlKXtjb25zdCB0PW5ldmVyKCk7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJ0dXBsZVwiLHNjaGVtYTpudWxsLCplbnRyaWVzKG4pe2lmKEFycmF5LmlzQXJyYXkobikpe2NvbnN0IHI9TWF0aC5tYXgoZS5sZW5ndGgsbi5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8cjtpKyspe3lpZWxkW2ksbltpXSxlW2ldfHx0XX19fSx2YWxpZGF0b3IoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSl8fGBFeHBlY3RlZCBhbiBhcnJheSwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWB9fSl9ZnVuY3Rpb24gdHlwZShlKXtjb25zdCB0PU9iamVjdC5rZXlzKGUpO3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwidHlwZVwiLHNjaGVtYTplLCplbnRyaWVzKG4pe2lmKGlzT2JqZWN0KG4pKXtmb3IoY29uc3QgciBvZiB0KXt5aWVsZFtyLG5bcl0sZVtyXV19fX0sdmFsaWRhdG9yKGUpe3JldHVybiBpc09iamVjdChlKXx8YEV4cGVjdGVkIGFuIG9iamVjdCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWB9LGNvZXJjZXIoZSl7cmV0dXJuIGlzT2JqZWN0KGUpP3suLi5lfTplfX0pfWZ1bmN0aW9uIHVuaW9uKGUpe2NvbnN0IHQ9ZS5tYXAoKGU9PmUudHlwZSkpLmpvaW4oXCIgfCBcIik7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJ1bmlvblwiLHNjaGVtYTpudWxsLGNvZXJjZXIodCl7Zm9yKGNvbnN0IG4gb2YgZSl7Y29uc3RbZSxyXT1uLnZhbGlkYXRlKHQse2NvZXJjZTp0cnVlfSk7aWYoIWUpe3JldHVybiByfX1yZXR1cm4gdH0sdmFsaWRhdG9yKG4scil7Y29uc3QgaT1bXTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdFsuLi5lXT1ydW4obix0LHIpO2NvbnN0W2NdPWU7aWYoIWNbMF0pe3JldHVybltdfWVsc2V7Zm9yKGNvbnN0W3Rdb2YgZSl7aWYodCl7aS5wdXNoKHQpfX19fXJldHVybltgRXhwZWN0ZWQgdGhlIHZhbHVlIHRvIHNhdGlzZnkgYSB1bmlvbiBvZiBcXGAke3R9XFxgLCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQobil9YCwuLi5pXX19KX1mdW5jdGlvbiB1bmtub3duKCl7cmV0dXJuIGRlZmluZShcInVua25vd25cIiwoKCk9PnRydWUpKX1mdW5jdGlvbiBjb2VyY2UoZSx0LG4pe3JldHVybiBuZXcgU3RydWN0KHsuLi5lLGNvZXJjZXI6KHIsaSk9PmlzKHIsdCk/ZS5jb2VyY2VyKG4ocixpKSxpKTplLmNvZXJjZXIocixpKX0pfWZ1bmN0aW9uIGRlZmF1bHRlZChlLHQsbj17fSl7cmV0dXJuIGNvZXJjZShlLHVua25vd24oKSwoZT0+e2NvbnN0IHI9dHlwZW9mIHQ9PT1cImZ1bmN0aW9uXCI/dCgpOnQ7aWYoZT09PXVuZGVmaW5lZCl7cmV0dXJuIHJ9aWYoIW4uc3RyaWN0JiZpc1BsYWluT2JqZWN0KGUpJiZpc1BsYWluT2JqZWN0KHIpKXtjb25zdCB0PXsuLi5lfTtsZXQgbj1mYWxzZTtmb3IoY29uc3QgZSBpbiByKXtpZih0W2VdPT09dW5kZWZpbmVkKXt0W2VdPXJbZV07bj10cnVlfX1pZihuKXtyZXR1cm4gdH19cmV0dXJuIGV9KSl9ZnVuY3Rpb24gdHJpbW1lZChlKXtyZXR1cm4gY29lcmNlKGUsc3RyaW5nKCksKGU9PmUudHJpbSgpKSl9ZnVuY3Rpb24gZW1wdHkoZSl7cmV0dXJuIHJlZmluZShlLFwiZW1wdHlcIiwodD0+e2NvbnN0IG49Z2V0U2l6ZSh0KTtyZXR1cm4gbj09PTB8fGBFeHBlY3RlZCBhbiBlbXB0eSAke2UudHlwZX0gYnV0IHJlY2VpdmVkIG9uZSB3aXRoIGEgc2l6ZSBvZiBcXGAke259XFxgYH0pKX1mdW5jdGlvbiBnZXRTaXplKGUpe2lmKGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBTZXQpe3JldHVybiBlLnNpemV9ZWxzZXtyZXR1cm4gZS5sZW5ndGh9fWZ1bmN0aW9uIG1heChlLHQsbj17fSl7Y29uc3R7ZXhjbHVzaXZlOnJ9PW47cmV0dXJuIHJlZmluZShlLFwibWF4XCIsKG49PnI/bjx0Om48PXR8fGBFeHBlY3RlZCBhICR7ZS50eXBlfSBsZXNzIHRoYW4gJHtyP1wiXCI6XCJvciBlcXVhbCB0byBcIn0ke3R9IGJ1dCByZWNlaXZlZCBcXGAke259XFxgYCkpfWZ1bmN0aW9uIG1pbihlLHQsbj17fSl7Y29uc3R7ZXhjbHVzaXZlOnJ9PW47cmV0dXJuIHJlZmluZShlLFwibWluXCIsKG49PnI/bj50Om4+PXR8fGBFeHBlY3RlZCBhICR7ZS50eXBlfSBncmVhdGVyIHRoYW4gJHtyP1wiXCI6XCJvciBlcXVhbCB0byBcIn0ke3R9IGJ1dCByZWNlaXZlZCBcXGAke259XFxgYCkpfWZ1bmN0aW9uIG5vbmVtcHR5KGUpe3JldHVybiByZWZpbmUoZSxcIm5vbmVtcHR5XCIsKHQ9Pntjb25zdCBuPWdldFNpemUodCk7cmV0dXJuIG4+MHx8YEV4cGVjdGVkIGEgbm9uZW1wdHkgJHtlLnR5cGV9IGJ1dCByZWNlaXZlZCBhbiBlbXB0eSBvbmVgfSkpfWZ1bmN0aW9uIHBhdHRlcm4oZSx0KXtyZXR1cm4gcmVmaW5lKGUsXCJwYXR0ZXJuXCIsKG49PnQudGVzdChuKXx8YEV4cGVjdGVkIGEgJHtlLnR5cGV9IG1hdGNoaW5nIFxcYC8ke3Quc291cmNlfS9cXGAgYnV0IHJlY2VpdmVkIFwiJHtufVwiYCkpfWZ1bmN0aW9uIHNpemUoZSx0LG49dCl7Y29uc3Qgcj1gRXhwZWN0ZWQgYSAke2UudHlwZX1gO2NvbnN0IGk9dD09PW4/YG9mIFxcYCR7dH1cXGBgOmBiZXR3ZWVuIFxcYCR7dH1cXGAgYW5kIFxcYCR7bn1cXGBgO3JldHVybiByZWZpbmUoZSxcInNpemVcIiwoZT0+e2lmKHR5cGVvZiBlPT09XCJudW1iZXJcInx8ZSBpbnN0YW5jZW9mIERhdGUpe3JldHVybiB0PD1lJiZlPD1ufHxgJHtyfSAke2l9IGJ1dCByZWNlaXZlZCBcXGAke2V9XFxgYH1lbHNlIGlmKGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBTZXQpe2NvbnN0e3NpemU6Y309ZTtyZXR1cm4gdDw9YyYmYzw9bnx8YCR7cn0gd2l0aCBhIHNpemUgJHtpfSBidXQgcmVjZWl2ZWQgb25lIHdpdGggYSBzaXplIG9mIFxcYCR7Y31cXGBgfWVsc2V7Y29uc3R7bGVuZ3RoOmN9PWU7cmV0dXJuIHQ8PWMmJmM8PW58fGAke3J9IHdpdGggYSBsZW5ndGggJHtpfSBidXQgcmVjZWl2ZWQgb25lIHdpdGggYSBsZW5ndGggb2YgXFxgJHtjfVxcYGB9fSkpfWZ1bmN0aW9uIHJlZmluZShlLHQsbil7cmV0dXJuIG5ldyBTdHJ1Y3Qoey4uLmUsKnJlZmluZXIocixpKXt5aWVsZCplLnJlZmluZXIocixpKTtjb25zdCBjPW4ocixpKTtjb25zdCBvPXRvRmFpbHVyZXMoYyxpLGUscik7Zm9yKGNvbnN0IGUgb2Ygbyl7eWllbGR7Li4uZSxyZWZpbmVtZW50OnR9fX19KX1lLlN0cnVjdD1TdHJ1Y3Q7ZS5TdHJ1Y3RFcnJvcj1TdHJ1Y3RFcnJvcjtlLmFueT1hbnk7ZS5hcnJheT1hcnJheTtlLmFzc2VydD1hc3NlcnQ7ZS5hc3NpZ249YXNzaWduO2UuYmlnaW50PWJpZ2ludDtlLmJvb2xlYW49Ym9vbGVhbjtlLmNvZXJjZT1jb2VyY2U7ZS5jcmVhdGU9Y3JlYXRlO2UuZGF0ZT1kYXRlO2UuZGVmYXVsdGVkPWRlZmF1bHRlZDtlLmRlZmluZT1kZWZpbmU7ZS5kZXByZWNhdGVkPWRlcHJlY2F0ZWQ7ZS5keW5hbWljPWR5bmFtaWM7ZS5lbXB0eT1lbXB0eTtlLmVudW1zPWVudW1zO2UuZnVuYz1mdW5jO2UuaW5zdGFuY2U9aW5zdGFuY2U7ZS5pbnRlZ2VyPWludGVnZXI7ZS5pbnRlcnNlY3Rpb249aW50ZXJzZWN0aW9uO2UuaXM9aXM7ZS5sYXp5PWxhenk7ZS5saXRlcmFsPWxpdGVyYWw7ZS5tYXA9bWFwO2UubWFzaz1tYXNrO2UubWF4PW1heDtlLm1pbj1taW47ZS5uZXZlcj1uZXZlcjtlLm5vbmVtcHR5PW5vbmVtcHR5O2UubnVsbGFibGU9bnVsbGFibGU7ZS5udW1iZXI9bnVtYmVyO2Uub2JqZWN0PW9iamVjdDtlLm9taXQ9b21pdDtlLm9wdGlvbmFsPW9wdGlvbmFsO2UucGFydGlhbD1wYXJ0aWFsO2UucGF0dGVybj1wYXR0ZXJuO2UucGljaz1waWNrO2UucmVjb3JkPXJlY29yZDtlLnJlZmluZT1yZWZpbmU7ZS5yZWdleHA9cmVnZXhwO2Uuc2V0PXNldDtlLnNpemU9c2l6ZTtlLnN0cmluZz1zdHJpbmc7ZS5zdHJ1Y3Q9c3RydWN0O2UudHJpbW1lZD10cmltbWVkO2UudHVwbGU9dHVwbGU7ZS50eXBlPXR5cGU7ZS51bmlvbj11bmlvbjtlLnVua25vd249dW5rbm93bjtlLnZhbGlkYXRlPXZhbGlkYXRlfSkpfX07aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB0PXt9O2VbMzE4XSgwLHQpO21vZHVsZS5leHBvcnRzPXR9KSgpOyJdLCJuYW1lcyI6WyJlIiwidCIsIm4iLCJTdHJ1Y3RFcnJvciIsIlR5cGVFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsInIiLCJleHBsYW5hdGlvbiIsImkiLCJjIiwicGF0aCIsIm8iLCJhIiwibGVuZ3RoIiwiam9pbiIsImNhdXNlIiwiT2JqZWN0IiwiYXNzaWduIiwibmFtZSIsImZhaWx1cmVzIiwiaXNJdGVyYWJsZSIsImlzT2JqZWN0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJpc1BsYWluT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJwcmludCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzaGlmdEl0ZXJhdG9yIiwiZG9uZSIsInZhbHVlIiwibmV4dCIsInVuZGVmaW5lZCIsInRvRmFpbHVyZSIsImJyYW5jaCIsInR5cGUiLCJyZWZpbmVtZW50IiwicyIsImtleSIsInRvRmFpbHVyZXMiLCJydW4iLCJjb2VyY2UiLCJtYXNrIiwiY29lcmNlciIsInNjaGVtYSIsIkFycmF5IiwiaXNBcnJheSIsInZhbGlkYXRvciIsInUiLCJmIiwibCIsImVudHJpZXMiLCJNYXAiLCJzZXQiLCJTZXQiLCJhZGQiLCJyZWZpbmVyIiwiU3RydWN0IiwiYXNzZXJ0IiwiY3JlYXRlIiwiaXMiLCJ2YWxpZGF0ZSIsIm1hcCIsIm9iamVjdCIsImRlZmluZSIsImRlcHJlY2F0ZWQiLCJkeW5hbWljIiwibGF6eSIsIm9taXQiLCJwYXJ0aWFsIiwib3B0aW9uYWwiLCJwaWNrIiwic3RydWN0IiwiY29uc29sZSIsIndhcm4iLCJhbnkiLCJhcnJheSIsInNsaWNlIiwiYmlnaW50IiwiYm9vbGVhbiIsImRhdGUiLCJEYXRlIiwiaXNOYU4iLCJnZXRUaW1lIiwiZW51bXMiLCJpbmNsdWRlcyIsImZ1bmMiLCJpbnN0YW5jZSIsImludGVnZXIiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJpbnRlcnNlY3Rpb24iLCJsaXRlcmFsIiwibmV2ZXIiLCJudWxsYWJsZSIsIm51bWJlciIsImtleXMiLCJkZWxldGUiLCJyZWNvcmQiLCJyZWdleHAiLCJSZWdFeHAiLCJzdHJpbmciLCJ0dXBsZSIsIk1hdGgiLCJtYXgiLCJ1bmlvbiIsInB1c2giLCJ1bmtub3duIiwiZGVmYXVsdGVkIiwic3RyaWN0IiwidHJpbW1lZCIsInRyaW0iLCJlbXB0eSIsInJlZmluZSIsImdldFNpemUiLCJzaXplIiwiZXhjbHVzaXZlIiwibWluIiwibm9uZW1wdHkiLCJwYXR0ZXJuIiwidGVzdCIsInNvdXJjZSIsIl9fbmNjd3Bja19yZXF1aXJlX18iLCJhYiIsIl9fZGlybmFtZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/compiled/superstruct/index.cjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@babel/runtime/helpers/esm/extends.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/@babel/runtime/helpers/esm/extends.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ _extends)\n/* harmony export */ });\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlLFNBQVNBO0lBQ3RCQSxXQUFXQyxPQUFPQyxNQUFNLEdBQUdELE9BQU9DLE1BQU0sQ0FBQ0MsSUFBSSxLQUFLLFNBQVVDLE1BQU07UUFDaEUsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlDLFVBQVVDLE1BQU0sRUFBRUYsSUFBSztZQUN6QyxJQUFJRyxTQUFTRixTQUFTLENBQUNELEVBQUU7WUFDekIsSUFBSyxJQUFJSSxPQUFPRCxPQUFRO2dCQUN0QixJQUFJUCxPQUFPUyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSixRQUFRQyxNQUFNO29CQUNyREwsTUFBTSxDQUFDSyxJQUFJLEdBQUdELE1BQU0sQ0FBQ0MsSUFBSTtnQkFDM0I7WUFDRjtRQUNGO1FBQ0EsT0FBT0w7SUFDVDtJQUNBLE9BQU9KLFNBQVNhLEtBQUssQ0FBQyxJQUFJLEVBQUVQO0FBQzlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcy5qcz8yZmRiIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG4gIHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufSJdLCJuYW1lcyI6WyJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsImJpbmQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@babel/runtime/helpers/esm/extends.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs":
-/*!**********************************************************************!*\
- !*** ../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs ***!
- \**********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeRefs: () => (/* binding */ $6ed0406888f73fc4$export$43e446d32b3d21af),\n/* harmony export */ useComposedRefs: () => (/* binding */ $6ed0406888f73fc4$export$c7b2cbe3552a0d05)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$var$setRef(ref, value) {\n if (typeof ref === \"function\") ref(value);\n else if (ref !== null && ref !== undefined) ref.current = value;\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$43e446d32b3d21af(...refs) {\n return (node)=>refs.forEach((ref)=>$6ed0406888f73fc4$var$setRef(ref, node));\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)($6ed0406888f73fc4$export$43e446d32b3d21af(...refs), refs);\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXdEO0FBR3hEOzs7Q0FHQyxHQUFHLFNBQVNFLDZCQUE2QkMsR0FBRyxFQUFFQyxLQUFLO0lBQ2hELElBQUksT0FBT0QsUUFBUSxZQUFZQSxJQUFJQztTQUM5QixJQUFJRCxRQUFRLFFBQVFBLFFBQVFFLFdBQVdGLElBQUlHLE9BQU8sR0FBR0Y7QUFDOUQ7QUFDQTs7O0NBR0MsR0FBRyxTQUFTRywwQ0FBMEMsR0FBR0MsSUFBSTtJQUMxRCxPQUFPLENBQUNDLE9BQU9ELEtBQUtFLE9BQU8sQ0FBQyxDQUFDUCxNQUFNRCw2QkFBNkJDLEtBQUtNO0FBR3pFO0FBQ0E7OztDQUdDLEdBQUcsU0FBU0UsMENBQTBDLEdBQUdILElBQUk7SUFDMUQsdURBQXVEO0lBQ3ZELE9BQU9QLGtEQUFrQkEsQ0FBQ00sNkNBQTZDQyxPQUFPQTtBQUNsRjtBQUtnSSxDQUNoSSxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzL2Rpc3QvaW5kZXgubWpzPzE3MjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt1c2VDYWxsYmFjayBhcyAkM3ZxbXIkdXNlQ2FsbGJhY2t9IGZyb20gXCJyZWFjdFwiO1xuXG5cbi8qKlxuICogU2V0IGEgZ2l2ZW4gcmVmIHRvIGEgZ2l2ZW4gdmFsdWVcbiAqIFRoaXMgdXRpbGl0eSB0YWtlcyBjYXJlIG9mIGRpZmZlcmVudCB0eXBlcyBvZiByZWZzOiBjYWxsYmFjayByZWZzIGFuZCBSZWZPYmplY3QocylcbiAqLyBmdW5jdGlvbiAkNmVkMDQwNjg4OGY3M2ZjNCR2YXIkc2V0UmVmKHJlZiwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykgcmVmKHZhbHVlKTtcbiAgICBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB1bmRlZmluZWQpIHJlZi5jdXJyZW50ID0gdmFsdWU7XG59XG4vKipcbiAqIEEgdXRpbGl0eSB0byBjb21wb3NlIG11bHRpcGxlIHJlZnMgdG9nZXRoZXJcbiAqIEFjY2VwdHMgY2FsbGJhY2sgcmVmcyBhbmQgUmVmT2JqZWN0KHMpXG4gKi8gZnVuY3Rpb24gJDZlZDA0MDY4ODhmNzNmYzQkZXhwb3J0JDQzZTQ0NmQzMmIzZDIxYWYoLi4ucmVmcykge1xuICAgIHJldHVybiAobm9kZSk9PnJlZnMuZm9yRWFjaCgocmVmKT0+JDZlZDA0MDY4ODhmNzNmYzQkdmFyJHNldFJlZihyZWYsIG5vZGUpXG4gICAgICAgIClcbiAgICA7XG59XG4vKipcbiAqIEEgY3VzdG9tIGhvb2sgdGhhdCBjb21wb3NlcyBtdWx0aXBsZSByZWZzXG4gKiBBY2NlcHRzIGNhbGxiYWNrIHJlZnMgYW5kIFJlZk9iamVjdChzKVxuICovIGZ1bmN0aW9uICQ2ZWQwNDA2ODg4ZjczZmM0JGV4cG9ydCRjN2IyY2JlMzU1MmEwZDA1KC4uLnJlZnMpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgcmV0dXJuICQzdnFtciR1c2VDYWxsYmFjaygkNmVkMDQwNjg4OGY3M2ZjNCRleHBvcnQkNDNlNDQ2ZDMyYjNkMjFhZiguLi5yZWZzKSwgcmVmcyk7XG59XG5cblxuXG5cbmV4cG9ydCB7JDZlZDA0MDY4ODhmNzNmYzQkZXhwb3J0JDQzZTQ0NmQzMmIzZDIxYWYgYXMgY29tcG9zZVJlZnMsICQ2ZWQwNDA2ODg4ZjczZmM0JGV4cG9ydCRjN2IyY2JlMzU1MmEwZDA1IGFzIHVzZUNvbXBvc2VkUmVmc307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOlsidXNlQ2FsbGJhY2siLCIkM3ZxbXIkdXNlQ2FsbGJhY2siLCIkNmVkMDQwNjg4OGY3M2ZjNCR2YXIkc2V0UmVmIiwicmVmIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJjdXJyZW50IiwiJDZlZDA0MDY4ODhmNzNmYzQkZXhwb3J0JDQzZTQ0NmQzMmIzZDIxYWYiLCJyZWZzIiwibm9kZSIsImZvckVhY2giLCIkNmVkMDQwNjg4OGY3M2ZjNCRleHBvcnQkYzdiMmNiZTM1NTJhMGQwNSIsImNvbXBvc2VSZWZzIiwidXNlQ29tcG9zZWRSZWZzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@radix-ui/react-label/dist/index.mjs":
-/*!***************************************************************!*\
- !*** ../../node_modules/@radix-ui/react-label/dist/index.mjs ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Label: () => (/* binding */ $b73a6c6685e72184$export$b04be29aa201d4f5),\n/* harmony export */ Root: () => (/* binding */ $b73a6c6685e72184$export$be92b6f5f03c0fe9)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(ssr)/../../node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/../../node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Label\n * -----------------------------------------------------------------------------------------------*/ const $b73a6c6685e72184$var$NAME = \"Label\";\nconst $b73a6c6685e72184$export$b04be29aa201d4f5 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.label, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, {\n ref: forwardedRef,\n onMouseDown: (event)=>{\n var _props$onMouseDown;\n (_props$onMouseDown = props.onMouseDown) === null || _props$onMouseDown === void 0 || _props$onMouseDown.call(props, event); // prevent text selection when double clicking label\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }));\n});\n/*#__PURE__*/ Object.assign($b73a6c6685e72184$export$b04be29aa201d4f5, {\n displayName: $b73a6c6685e72184$var$NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $b73a6c6685e72184$export$be92b6f5f03c0fe9 = $b73a6c6685e72184$export$b04be29aa201d4f5;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1sYWJlbC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFzRjtBQUNPO0FBQ3JCO0FBS3hFOztrR0FFa0csR0FBRyxNQUFNTyw2QkFBNkI7QUFDeEksTUFBTUMsNENBQTRDLFdBQVcsR0FBR04saURBQWlCQSxDQUFDLENBQUNPLE9BQU9DO0lBQ3RGLE9BQU8sV0FBVyxHQUFHTixvREFBb0JBLENBQUNFLGdFQUFnQkEsQ0FBQ0ssS0FBSyxFQUFFWCw4RUFBb0NBLENBQUMsQ0FBQyxHQUFHUyxPQUFPO1FBQzlHRyxLQUFLRjtRQUNMRyxhQUFhLENBQUNDO1lBQ1YsSUFBSUM7WUFDSEEsQ0FBQUEscUJBQXFCTixNQUFNSSxXQUFXLE1BQU0sUUFBUUUsdUJBQXVCLEtBQUssS0FBS0EsbUJBQW1CQyxJQUFJLENBQUNQLE9BQU9LLFFBQVEsb0RBQW9EO1lBQ2pMLElBQUksQ0FBQ0EsTUFBTUcsZ0JBQWdCLElBQUlILE1BQU1JLE1BQU0sR0FBRyxHQUFHSixNQUFNSyxjQUFjO1FBQ3pFO0lBQ0o7QUFDSjtBQUNBLFdBQVcsR0FBR0MsT0FBT0MsTUFBTSxDQUFDYiwyQ0FBMkM7SUFDbkVjLGFBQWFmO0FBQ2pCO0FBQ0Esa0dBQWtHLEdBQUcsTUFBTWdCLDRDQUE0Q2Y7QUFLeEMsQ0FDL0csa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWxhYmVsL2Rpc3QvaW5kZXgubWpzP2JhNGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQ3VjRKWiRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IHtmb3J3YXJkUmVmIGFzICQ3VjRKWiRmb3J3YXJkUmVmLCBjcmVhdGVFbGVtZW50IGFzICQ3VjRKWiRjcmVhdGVFbGVtZW50fSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7UHJpbWl0aXZlIGFzICQ3VjRKWiRQcmltaXRpdmV9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5cblxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIExhYmVsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICRiNzNhNmM2Njg1ZTcyMTg0JHZhciROQU1FID0gJ0xhYmVsJztcbmNvbnN0ICRiNzNhNmM2Njg1ZTcyMTg0JGV4cG9ydCRiMDRiZTI5YWEyMDFkNGY1ID0gLyojX19QVVJFX18qLyAkN1Y0SlokZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAkN1Y0SlokY3JlYXRlRWxlbWVudCgkN1Y0SlokUHJpbWl0aXZlLmxhYmVsLCAkN1Y0SlokYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMoe30sIHByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgICBvbk1vdXNlRG93bjogKGV2ZW50KT0+e1xuICAgICAgICAgICAgdmFyIF9wcm9wcyRvbk1vdXNlRG93bjtcbiAgICAgICAgICAgIChfcHJvcHMkb25Nb3VzZURvd24gPSBwcm9wcy5vbk1vdXNlRG93bikgPT09IG51bGwgfHwgX3Byb3BzJG9uTW91c2VEb3duID09PSB2b2lkIDAgfHwgX3Byb3BzJG9uTW91c2VEb3duLmNhbGwocHJvcHMsIGV2ZW50KTsgLy8gcHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGVuIGRvdWJsZSBjbGlja2luZyBsYWJlbFxuICAgICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkICYmIGV2ZW50LmRldGFpbCA+IDEpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9KSk7XG59KTtcbi8qI19fUFVSRV9fKi8gT2JqZWN0LmFzc2lnbigkYjczYTZjNjY4NWU3MjE4NCRleHBvcnQkYjA0YmUyOWFhMjAxZDRmNSwge1xuICAgIGRpc3BsYXlOYW1lOiAkYjczYTZjNjY4NWU3MjE4NCR2YXIkTkFNRVxufSk7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICRiNzNhNmM2Njg1ZTcyMTg0JGV4cG9ydCRiZTkyYjZmNWYwM2MwZmU5ID0gJGI3M2E2YzY2ODVlNzIxODQkZXhwb3J0JGIwNGJlMjlhYTIwMWQ0ZjU7XG5cblxuXG5cbmV4cG9ydCB7JGI3M2E2YzY2ODVlNzIxODQkZXhwb3J0JGIwNGJlMjlhYTIwMWQ0ZjUgYXMgTGFiZWwsICRiNzNhNmM2Njg1ZTcyMTg0JGV4cG9ydCRiZTkyYjZmNWYwM2MwZmU5IGFzIFJvb3R9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbIiQ3VjRKWiRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyIsImZvcndhcmRSZWYiLCIkN1Y0SlokZm9yd2FyZFJlZiIsImNyZWF0ZUVsZW1lbnQiLCIkN1Y0SlokY3JlYXRlRWxlbWVudCIsIlByaW1pdGl2ZSIsIiQ3VjRKWiRQcmltaXRpdmUiLCIkYjczYTZjNjY4NWU3MjE4NCR2YXIkTkFNRSIsIiRiNzNhNmM2Njg1ZTcyMTg0JGV4cG9ydCRiMDRiZTI5YWEyMDFkNGY1IiwicHJvcHMiLCJmb3J3YXJkZWRSZWYiLCJsYWJlbCIsInJlZiIsIm9uTW91c2VEb3duIiwiZXZlbnQiLCJfcHJvcHMkb25Nb3VzZURvd24iLCJjYWxsIiwiZGVmYXVsdFByZXZlbnRlZCIsImRldGFpbCIsInByZXZlbnREZWZhdWx0IiwiT2JqZWN0IiwiYXNzaWduIiwiZGlzcGxheU5hbWUiLCIkYjczYTZjNjY4NWU3MjE4NCRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSIsIkxhYmVsIiwiUm9vdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@radix-ui/react-label/dist/index.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@radix-ui/react-primitive/dist/index.mjs":
-/*!*******************************************************************!*\
- !*** ../../node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ $8927f6f2acc4f386$export$250ffa63cdc0d034),\n/* harmony export */ Root: () => (/* binding */ $8927f6f2acc4f386$export$be92b6f5f03c0fe9),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ $8927f6f2acc4f386$export$6d1a0317bde7de7f)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(ssr)/../../node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"(ssr)/../../node_modules/next/dist/compiled/react-dom/server-rendering-stub.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(ssr)/../../node_modules/@radix-ui/react-slot/dist/index.mjs\");\n\n\n\n\nconst $8927f6f2acc4f386$var$NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n]; // Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node)=>{\n const Node = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { asChild: asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n window[Symbol.for(\"radix-ui\")] = true;\n }, []);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(Comp, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return {\n ...primitive,\n [node]: Node\n };\n}, {});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */ function $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target) (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.flushSync)(()=>target.dispatchEvent(event));\n}\n/* -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$be92b6f5f03c0fe9 = $8927f6f2acc4f386$export$250ffa63cdc0d034;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFzRjtBQUNzQztBQUNwRTtBQUNDO0FBTXpELE1BQU1XLDhCQUE4QjtJQUNoQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNILEVBQUUsOENBQThDO0FBQ2pELGdFQUFnRTtBQUNoRSxrQkFBa0I7QUFDbEI7O2tHQUVrRyxHQUFHLE1BQU1DLDRDQUE0Q0QsNEJBQTRCRSxNQUFNLENBQUMsQ0FBQ0MsV0FBV0M7SUFDbE0sTUFBTUMsT0FBTyxXQUFXLEdBQUdkLGlEQUFpQkEsQ0FBQyxDQUFDZSxPQUFPQztRQUNqRCxNQUFNLEVBQUVDLFNBQVNBLE9BQU8sRUFBRyxHQUFHQyxnQkFBZ0IsR0FBR0g7UUFDakQsTUFBTUksT0FBT0YsVUFBVVQsc0RBQVdBLEdBQUdLO1FBQ3JDWCxnREFBZ0JBLENBQUM7WUFDYmtCLE1BQU0sQ0FBQ0MsT0FBT0MsR0FBRyxDQUFDLFlBQVksR0FBRztRQUNyQyxHQUFHLEVBQUU7UUFDTCxPQUFPLFdBQVcsR0FBR2xCLG9EQUFvQkEsQ0FBQ2UsTUFBTXJCLDhFQUFvQ0EsQ0FBQyxDQUFDLEdBQUdvQixnQkFBZ0I7WUFDckdLLEtBQUtQO1FBQ1Q7SUFDSjtJQUNBRixLQUFLVSxXQUFXLEdBQUcsQ0FBQyxVQUFVLEVBQUVYLEtBQUssQ0FBQztJQUN0QyxPQUFPO1FBQ0gsR0FBR0QsU0FBUztRQUNaLENBQUNDLEtBQUssRUFBRUM7SUFDWjtBQUNKLEdBQUcsQ0FBQztBQUNKOztrR0FFa0csR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FtQ3BHLEdBQUcsU0FBU1csMENBQTBDQyxNQUFNLEVBQUVDLEtBQUs7SUFDaEUsSUFBSUQsUUFBUXBCLG9EQUFnQkEsQ0FBQyxJQUFJb0IsT0FBT0UsYUFBYSxDQUFDRDtBQUUxRDtBQUNBLGtHQUFrRyxHQUFHLE1BQU1FLDRDQUE0Q25CO0FBS3NDLENBQzdMLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUvZGlzdC9pbmRleC5tanM/Y2I4MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJDRxNUZxJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQge2ZvcndhcmRSZWYgYXMgJDRxNUZxJGZvcndhcmRSZWYsIHVzZUVmZmVjdCBhcyAkNHE1RnEkdXNlRWZmZWN0LCBjcmVhdGVFbGVtZW50IGFzICQ0cTVGcSRjcmVhdGVFbGVtZW50fSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7Zmx1c2hTeW5jIGFzICQ0cTVGcSRmbHVzaFN5bmN9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7U2xvdCBhcyAkNHE1RnEkU2xvdH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1zbG90XCI7XG5cblxuXG5cblxuY29uc3QgJDg5MjdmNmYyYWNjNGYzODYkdmFyJE5PREVTID0gW1xuICAgICdhJyxcbiAgICAnYnV0dG9uJyxcbiAgICAnZGl2JyxcbiAgICAnZm9ybScsXG4gICAgJ2gyJyxcbiAgICAnaDMnLFxuICAgICdpbWcnLFxuICAgICdpbnB1dCcsXG4gICAgJ2xhYmVsJyxcbiAgICAnbGknLFxuICAgICduYXYnLFxuICAgICdvbCcsXG4gICAgJ3AnLFxuICAgICdzcGFuJyxcbiAgICAnc3ZnJyxcbiAgICAndWwnXG5dOyAvLyBUZW1wb3Jhcnkgd2hpbGUgd2UgYXdhaXQgbWVyZ2Ugb2YgdGhpcyBmaXg6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vRGVmaW5pdGVseVR5cGVkL0RlZmluaXRlbHlUeXBlZC9wdWxsLzU1Mzk2XG4vLyBwcmV0dGllci1pZ25vcmVcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFByaW1pdGl2ZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkODkyN2Y2ZjJhY2M0ZjM4NiRleHBvcnQkMjUwZmZhNjNjZGMwZDAzNCA9ICQ4OTI3ZjZmMmFjYzRmMzg2JHZhciROT0RFUy5yZWR1Y2UoKHByaW1pdGl2ZSwgbm9kZSk9PntcbiAgICBjb25zdCBOb2RlID0gLyojX19QVVJFX18qLyAkNHE1RnEkZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICAgICAgY29uc3QgeyBhc0NoaWxkOiBhc0NoaWxkICwgLi4ucHJpbWl0aXZlUHJvcHMgfSA9IHByb3BzO1xuICAgICAgICBjb25zdCBDb21wID0gYXNDaGlsZCA/ICQ0cTVGcSRTbG90IDogbm9kZTtcbiAgICAgICAgJDRxNUZxJHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICAgICAgd2luZG93W1N5bWJvbC5mb3IoJ3JhZGl4LXVpJyldID0gdHJ1ZTtcbiAgICAgICAgfSwgW10pO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAkNHE1RnEkY3JlYXRlRWxlbWVudChDb21wLCAkNHE1RnEkYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMoe30sIHByaW1pdGl2ZVByb3BzLCB7XG4gICAgICAgICAgICByZWY6IGZvcndhcmRlZFJlZlxuICAgICAgICB9KSk7XG4gICAgfSk7XG4gICAgTm9kZS5kaXNwbGF5TmFtZSA9IGBQcmltaXRpdmUuJHtub2RlfWA7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJpbWl0aXZlLFxuICAgICAgICBbbm9kZV06IE5vZGVcbiAgICB9O1xufSwge30pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVXRpbHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gLyoqXG4gKiBGbHVzaCBjdXN0b20gZXZlbnQgZGlzcGF0Y2hcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL3B1bGwvMTM3OFxuICpcbiAqIFJlYWN0IGJhdGNoZXMgKmFsbCogZXZlbnQgaGFuZGxlcnMgc2luY2UgdmVyc2lvbiAxOCwgdGhpcyBpbnRyb2R1Y2VzIGNlcnRhaW4gY29uc2lkZXJhdGlvbnMgd2hlbiB1c2luZyBjdXN0b20gZXZlbnQgdHlwZXMuXG4gKlxuICogSW50ZXJuYWxseSwgUmVhY3QgcHJpb3JpdGlzZXMgZXZlbnRzIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6XG4gKiAgLSBkaXNjcmV0ZVxuICogIC0gY29udGludW91c1xuICogIC0gZGVmYXVsdFxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL2E4YTQ3NDJmMWM1NDQ5M2RmMDBkYTY0OGEzZjlkMjZlM2RiOWM4YjUvcGFja2FnZXMvcmVhY3QtZG9tL3NyYy9ldmVudHMvUmVhY3RET01FdmVudExpc3RlbmVyLmpzI0wyOTQtTDM1MFxuICpcbiAqIGBkaXNjcmV0ZWAgaXMgYW4gIGltcG9ydGFudCBkaXN0aW5jdGlvbiBhcyB1cGRhdGVzIHdpdGhpbiB0aGVzZSBldmVudHMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHkuXG4gKiBSZWFjdCBob3dldmVyLCBpcyBub3QgYWJsZSB0byBpbmZlciB0aGUgcHJpb3JpdHkgb2YgY3VzdG9tIGV2ZW50IHR5cGVzIGR1ZSB0byBob3cgdGhleSBhcmUgZGV0ZWN0ZWQgaW50ZXJuYWxseS5cbiAqIEJlY2F1c2Ugb2YgdGhpcywgaXQncyBwb3NzaWJsZSBmb3IgdXBkYXRlcyBmcm9tIGN1c3RvbSBldmVudHMgdG8gYmUgdW5leHBlY3RlZGx5IGJhdGNoZWQgd2hlblxuICogZGlzcGF0Y2hlZCBieSBhbm90aGVyIGBkaXNjcmV0ZWAgZXZlbnQuXG4gKlxuICogSW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdXBkYXRlcyBmcm9tIGN1c3RvbSBldmVudHMgYXJlIGFwcGxpZWQgcHJlZGljdGFibHksIHdlIG5lZWQgdG8gbWFudWFsbHkgZmx1c2ggdGhlIGJhdGNoLlxuICogVGhpcyB1dGlsaXR5IHNob3VsZCBiZSB1c2VkIHdoZW4gZGlzcGF0Y2hpbmcgYSBjdXN0b20gZXZlbnQgZnJvbSB3aXRoaW4gYW5vdGhlciBgZGlzY3JldGVgIGV2ZW50LCB0aGlzIHV0aWxpdHlcbiAqIGlzIG5vdCBuZXNzZXNhcnkgd2hlbiBkaXNwYXRjaGluZyBrbm93biBldmVudCB0eXBlcywgb3IgaWYgZGlzcGF0Y2hpbmcgYSBjdXN0b20gdHlwZSBpbnNpZGUgYSBub24tZGlzY3JldGUgZXZlbnQuXG4gKiBGb3IgZXhhbXBsZTpcbiAqXG4gKiBkaXNwYXRjaGluZyBhIGtub3duIGNsaWNrIPCfkY5cbiAqIHRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCjigJhjbGlja+KAmSkpXG4gKlxuICogZGlzcGF0Y2hpbmcgYSBjdXN0b20gdHlwZSB3aXRoaW4gYSBub24tZGlzY3JldGUgZXZlbnQg8J+RjlxuICogb25TY3JvbGw9eyhldmVudCkgPT4gZXZlbnQudGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KOKAmGN1c3RvbVR5cGXigJkpKX1cbiAqXG4gKiBkaXNwYXRjaGluZyBhIGN1c3RvbSB0eXBlIHdpdGhpbiBhIGBkaXNjcmV0ZWAgZXZlbnQg8J+RjVxuICogb25Qb2ludGVyRG93bj17KGV2ZW50KSA9PiBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQoZXZlbnQudGFyZ2V0LCBuZXcgQ3VzdG9tRXZlbnQo4oCYY3VzdG9tVHlwZeKAmSkpfVxuICpcbiAqIE5vdGU6IHRob3VnaCBSZWFjdCBjbGFzc2lmaWVzIGBmb2N1c2AsIGBmb2N1c2luYCBhbmQgYGZvY3Vzb3V0YCBldmVudHMgYXMgYGRpc2NyZXRlYCwgaXQncyAgbm90IHJlY29tbWVuZGVkIHRvIHVzZVxuICogdGhpcyB1dGlsaXR5IHdpdGggdGhlbS4gVGhpcyBpcyBiZWNhdXNlIGl0J3MgcG9zc2libGUgZm9yIHRob3NlIGhhbmRsZXJzIHRvIGJlIGNhbGxlZCBpbXBsaWNpdGx5IGR1cmluZyByZW5kZXJcbiAqIGUuZy4gd2hlbiBmb2N1cyBpcyB3aXRoaW4gYSBjb21wb25lbnQgYXMgaXQgaXMgdW5tb3VudGVkLCBvciB3aGVuIG1hbmFnaW5nIGZvY3VzIG9uIG1vdW50LlxuICovIGZ1bmN0aW9uICQ4OTI3ZjZmMmFjYzRmMzg2JGV4cG9ydCQ2ZDFhMDMxN2JkZTdkZTdmKHRhcmdldCwgZXZlbnQpIHtcbiAgICBpZiAodGFyZ2V0KSAkNHE1RnEkZmx1c2hTeW5jKCgpPT50YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudClcbiAgICApO1xufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyBjb25zdCAkODkyN2Y2ZjJhY2M0ZjM4NiRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSA9ICQ4OTI3ZjZmMmFjYzRmMzg2JGV4cG9ydCQyNTBmZmE2M2NkYzBkMDM0O1xuXG5cblxuXG5leHBvcnQgeyQ4OTI3ZjZmMmFjYzRmMzg2JGV4cG9ydCQyNTBmZmE2M2NkYzBkMDM0IGFzIFByaW1pdGl2ZSwgJDg5MjdmNmYyYWNjNGYzODYkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkgYXMgUm9vdCwgJDg5MjdmNmYyYWNjNGYzODYkZXhwb3J0JDZkMWEwMzE3YmRlN2RlN2YgYXMgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6WyIkNHE1RnEkYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMiLCJmb3J3YXJkUmVmIiwiJDRxNUZxJGZvcndhcmRSZWYiLCJ1c2VFZmZlY3QiLCIkNHE1RnEkdXNlRWZmZWN0IiwiY3JlYXRlRWxlbWVudCIsIiQ0cTVGcSRjcmVhdGVFbGVtZW50IiwiZmx1c2hTeW5jIiwiJDRxNUZxJGZsdXNoU3luYyIsIlNsb3QiLCIkNHE1RnEkU2xvdCIsIiQ4OTI3ZjZmMmFjYzRmMzg2JHZhciROT0RFUyIsIiQ4OTI3ZjZmMmFjYzRmMzg2JGV4cG9ydCQyNTBmZmE2M2NkYzBkMDM0IiwicmVkdWNlIiwicHJpbWl0aXZlIiwibm9kZSIsIk5vZGUiLCJwcm9wcyIsImZvcndhcmRlZFJlZiIsImFzQ2hpbGQiLCJwcmltaXRpdmVQcm9wcyIsIkNvbXAiLCJ3aW5kb3ciLCJTeW1ib2wiLCJmb3IiLCJyZWYiLCJkaXNwbGF5TmFtZSIsIiQ4OTI3ZjZmMmFjYzRmMzg2JGV4cG9ydCQ2ZDFhMDMxN2JkZTdkZTdmIiwidGFyZ2V0IiwiZXZlbnQiLCJkaXNwYXRjaEV2ZW50IiwiJDg5MjdmNmYyYWNjNGYzODYkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkiLCJQcmltaXRpdmUiLCJSb290IiwiZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@radix-ui/react-primitive/dist/index.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@radix-ui/react-slot/dist/index.mjs":
-/*!**************************************************************!*\
- !*** ../../node_modules/@radix-ui/react-slot/dist/index.mjs ***!
- \**************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ $5e63c961fc1ce211$export$be92b6f5f03c0fe9),\n/* harmony export */ Slot: () => (/* binding */ $5e63c961fc1ce211$export$8c6ed5c666ac1360),\n/* harmony export */ Slottable: () => (/* binding */ $5e63c961fc1ce211$export$d9f1ccf0bdb05d45)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"(ssr)/../../node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/../../node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$8c6ed5c666ac1360 = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { children: children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_1__.Children.toArray(children);\n const slottable = childrenArray.find($5e63c961fc1ce211$var$isSlottable);\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child)=>{\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (react__WEBPACK_IMPORTED_MODULE_1__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_1__.Children.only(null);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(newElement) ? newElement.props.children : null;\n } else return child;\n });\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5e63c961fc1ce211$var$SlotClone, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, slotProps, {\n ref: forwardedRef\n }), /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(newElement) ? /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(newElement, undefined, newChildren) : null);\n }\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)($5e63c961fc1ce211$var$SlotClone, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, slotProps, {\n ref: forwardedRef\n }), children);\n});\n$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName = \"Slot\";\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$var$SlotClone = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, forwardedRef)=>{\n const { children: children, ...slotProps } = props;\n if (/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(children)) return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(children, {\n ...$5e63c961fc1ce211$var$mergeProps(slotProps, children.props),\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, children.ref) : children.ref\n });\n return react__WEBPACK_IMPORTED_MODULE_1__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_1__.Children.only(null) : null;\n});\n$5e63c961fc1ce211$var$SlotClone.displayName = \"SlotClone\";\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 = ({ children: children })=>{\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, children);\n};\n/* ---------------------------------------------------------------------------------------------- */ function $5e63c961fc1ce211$var$isSlottable(child) {\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(child) && child.type === $5e63c961fc1ce211$export$d9f1ccf0bdb05d45;\n}\nfunction $5e63c961fc1ce211$var$mergeProps(slotProps, childProps) {\n // all child props should override\n const overrideProps = {\n ...childProps\n };\n for(const propName in childProps){\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) overrideProps[propName] = (...args)=>{\n childPropValue(...args);\n slotPropValue(...args);\n };\n else if (slotPropValue) overrideProps[propName] = slotPropValue;\n } else if (propName === \"style\") overrideProps[propName] = {\n ...slotPropValue,\n ...childPropValue\n };\n else if (propName === \"className\") overrideProps[propName] = [\n slotPropValue,\n childPropValue\n ].filter(Boolean).join(\" \");\n }\n return {\n ...slotProps,\n ...overrideProps\n };\n}\nconst $5e63c961fc1ce211$export$be92b6f5f03c0fe9 = $5e63c961fc1ce211$export$8c6ed5c666ac1360;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1zbG90L2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFzRjtBQUMrSTtBQUN0SjtBQUsvRTs7a0dBRWtHLEdBQUcsTUFBTWUsNENBQTRDLFdBQVcsR0FBR2IsaURBQWlCQSxDQUFDLENBQUNjLE9BQU9DO0lBQzNMLE1BQU0sRUFBRUMsVUFBVUEsUUFBUSxFQUFHLEdBQUdDLFdBQVcsR0FBR0g7SUFDOUMsTUFBTUksZ0JBQWdCaEIsMkNBQWVBLENBQUNpQixPQUFPLENBQUNIO0lBQzlDLE1BQU1JLFlBQVlGLGNBQWNHLElBQUksQ0FBQ0M7SUFDckMsSUFBSUYsV0FBVztRQUNYLHdFQUF3RTtRQUN4RSxNQUFNRyxhQUFhSCxVQUFVTixLQUFLLENBQUNFLFFBQVE7UUFDM0MsTUFBTVEsY0FBY04sY0FBY08sR0FBRyxDQUFDLENBQUNDO1lBQ25DLElBQUlBLFVBQVVOLFdBQVc7Z0JBQ3JCLDJFQUEyRTtnQkFDM0UseURBQXlEO2dCQUN6RCxJQUFJbEIsMkNBQWVBLENBQUN5QixLQUFLLENBQUNKLGNBQWMsR0FBRyxPQUFPckIsMkNBQWVBLENBQUMwQixJQUFJLENBQUM7Z0JBQ3ZFLE9BQU8sV0FBVyxHQUFHeEIscURBQXFCQSxDQUFDbUIsY0FBY0EsV0FBV1QsS0FBSyxDQUFDRSxRQUFRLEdBQUc7WUFDekYsT0FBTyxPQUFPVTtRQUNsQjtRQUNBLE9BQU8sV0FBVyxHQUFHcEIsb0RBQW9CQSxDQUFDdUIsaUNBQWlDL0IsOEVBQW9DQSxDQUFDLENBQUMsR0FBR21CLFdBQVc7WUFDM0hhLEtBQUtmO1FBQ1QsSUFBSSxXQUFXLEdBQUdYLHFEQUFxQkEsQ0FBQ21CLGNBQWMsV0FBVyxHQUFHZixtREFBbUJBLENBQUNlLFlBQVlRLFdBQVdQLGVBQWU7SUFDbEk7SUFDQSxPQUFPLFdBQVcsR0FBR2xCLG9EQUFvQkEsQ0FBQ3VCLGlDQUFpQy9CLDhFQUFvQ0EsQ0FBQyxDQUFDLEdBQUdtQixXQUFXO1FBQzNIYSxLQUFLZjtJQUNULElBQUlDO0FBQ1I7QUFDQUgsMENBQTBDbUIsV0FBVyxHQUFHO0FBQ3hEOztrR0FFa0csR0FBRyxNQUFNSCxrQ0FBa0MsV0FBVyxHQUFHN0IsaURBQWlCQSxDQUFDLENBQUNjLE9BQU9DO0lBQ2pMLE1BQU0sRUFBRUMsVUFBVUEsUUFBUSxFQUFHLEdBQUdDLFdBQVcsR0FBR0g7SUFDOUMsSUFBSSxXQUFXLEdBQUdWLHFEQUFxQkEsQ0FBQ1ksV0FBVyxPQUFPLFdBQVcsR0FBR1IsbURBQW1CQSxDQUFDUSxVQUFVO1FBQ2xHLEdBQUdpQixpQ0FBaUNoQixXQUFXRCxTQUFTRixLQUFLLENBQUM7UUFDOURnQixLQUFLZixlQUFlSCx5RUFBa0JBLENBQUNHLGNBQWNDLFNBQVNjLEdBQUcsSUFBSWQsU0FBU2MsR0FBRztJQUNyRjtJQUNBLE9BQU81QiwyQ0FBZUEsQ0FBQ3lCLEtBQUssQ0FBQ1gsWUFBWSxJQUFJZCwyQ0FBZUEsQ0FBQzBCLElBQUksQ0FBQyxRQUFRO0FBQzlFO0FBQ0FDLGdDQUFnQ0csV0FBVyxHQUFHO0FBQzlDOztrR0FFa0csR0FBRyxNQUFNRSw0Q0FBNEMsQ0FBQyxFQUFFbEIsVUFBVUEsUUFBUSxFQUFHO0lBQzNLLE9BQU8sV0FBVyxHQUFHVixvREFBb0JBLENBQUNJLDJDQUFlQSxFQUFFLE1BQU1NO0FBQ3JFO0FBQ0Esa0dBQWtHLEdBQUcsU0FBU00sa0NBQWtDSSxLQUFLO0lBQ2pKLE9BQU8sV0FBVyxHQUFHdEIscURBQXFCQSxDQUFDc0IsVUFBVUEsTUFBTVMsSUFBSSxLQUFLRDtBQUN4RTtBQUNBLFNBQVNELGlDQUFpQ2hCLFNBQVMsRUFBRW1CLFVBQVU7SUFDM0Qsa0NBQWtDO0lBQ2xDLE1BQU1DLGdCQUFnQjtRQUNsQixHQUFHRCxVQUFVO0lBQ2pCO0lBQ0EsSUFBSSxNQUFNRSxZQUFZRixXQUFXO1FBQzdCLE1BQU1HLGdCQUFnQnRCLFNBQVMsQ0FBQ3FCLFNBQVM7UUFDekMsTUFBTUUsaUJBQWlCSixVQUFVLENBQUNFLFNBQVM7UUFDM0MsTUFBTUcsWUFBWSxXQUFXQyxJQUFJLENBQUNKO1FBQ2xDLElBQUlHLFdBQVc7WUFDWCxpREFBaUQ7WUFDakQsSUFBSUYsaUJBQWlCQyxnQkFBZ0JILGFBQWEsQ0FBQ0MsU0FBUyxHQUFHLENBQUMsR0FBR0s7Z0JBQy9ESCxrQkFBa0JHO2dCQUNsQkosaUJBQWlCSTtZQUNyQjtpQkFDSyxJQUFJSixlQUFlRixhQUFhLENBQUNDLFNBQVMsR0FBR0M7UUFDdEQsT0FBTyxJQUFJRCxhQUFhLFNBQVNELGFBQWEsQ0FBQ0MsU0FBUyxHQUFHO1lBQ3ZELEdBQUdDLGFBQWE7WUFDaEIsR0FBR0MsY0FBYztRQUNyQjthQUNLLElBQUlGLGFBQWEsYUFBYUQsYUFBYSxDQUFDQyxTQUFTLEdBQUc7WUFDekRDO1lBQ0FDO1NBQ0gsQ0FBQ0ksTUFBTSxDQUFDQyxTQUFTQyxJQUFJLENBQUM7SUFDM0I7SUFDQSxPQUFPO1FBQ0gsR0FBRzdCLFNBQVM7UUFDWixHQUFHb0IsYUFBYTtJQUNwQjtBQUNKO0FBQ0EsTUFBTVUsNENBQTRDbEM7QUFLb0gsQ0FDdEssa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanM/OTRmMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJDlJcmpYJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQge2ZvcndhcmRSZWYgYXMgJDlJcmpYJGZvcndhcmRSZWYsIENoaWxkcmVuIGFzICQ5SXJqWCRDaGlsZHJlbiwgaXNWYWxpZEVsZW1lbnQgYXMgJDlJcmpYJGlzVmFsaWRFbGVtZW50LCBjcmVhdGVFbGVtZW50IGFzICQ5SXJqWCRjcmVhdGVFbGVtZW50LCBjbG9uZUVsZW1lbnQgYXMgJDlJcmpYJGNsb25lRWxlbWVudCwgRnJhZ21lbnQgYXMgJDlJcmpYJEZyYWdtZW50fSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7Y29tcG9zZVJlZnMgYXMgJDlJcmpYJGNvbXBvc2VSZWZzfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuXG5cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTbG90XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCQ4YzZlZDVjNjY2YWMxMzYwID0gLyojX19QVVJFX18qLyAkOUlyalgkZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZik9PntcbiAgICBjb25zdCB7IGNoaWxkcmVuOiBjaGlsZHJlbiAsIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2hpbGRyZW5BcnJheSA9ICQ5SXJqWCRDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgICBjb25zdCBzbG90dGFibGUgPSBjaGlsZHJlbkFycmF5LmZpbmQoJDVlNjNjOTYxZmMxY2UyMTEkdmFyJGlzU2xvdHRhYmxlKTtcbiAgICBpZiAoc2xvdHRhYmxlKSB7XG4gICAgICAgIC8vIHRoZSBuZXcgZWxlbWVudCB0byByZW5kZXIgaXMgdGhlIG9uZSBwYXNzZWQgYXMgYSBjaGlsZCBvZiBgU2xvdHRhYmxlYFxuICAgICAgICBjb25zdCBuZXdFbGVtZW50ID0gc2xvdHRhYmxlLnByb3BzLmNoaWxkcmVuO1xuICAgICAgICBjb25zdCBuZXdDaGlsZHJlbiA9IGNoaWxkcmVuQXJyYXkubWFwKChjaGlsZCk9PntcbiAgICAgICAgICAgIGlmIChjaGlsZCA9PT0gc2xvdHRhYmxlKSB7XG4gICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGUgbmV3IGVsZW1lbnQgd2lsbCBiZSB0aGUgb25lIHJlbmRlcmVkLCB3ZSBhcmUgb25seSBpbnRlcmVzdGVkXG4gICAgICAgICAgICAgICAgLy8gaW4gZ3JhYmJpbmcgaXRzIGNoaWxkcmVuIChgbmV3RWxlbWVudC5wcm9wcy5jaGlsZHJlbmApXG4gICAgICAgICAgICAgICAgaWYgKCQ5SXJqWCRDaGlsZHJlbi5jb3VudChuZXdFbGVtZW50KSA+IDEpIHJldHVybiAkOUlyalgkQ2hpbGRyZW4ub25seShudWxsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAkOUlyalgkaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBuZXdFbGVtZW50LnByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSByZXR1cm4gY2hpbGQ7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAkOUlyalgkY3JlYXRlRWxlbWVudCgkNWU2M2M5NjFmYzFjZTIxMSR2YXIkU2xvdENsb25lLCAkOUlyalgkYmFiZWxydW50aW1laGVscGVyc2VzbWV4dGVuZHMoe30sIHNsb3RQcm9wcywge1xuICAgICAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWZcbiAgICAgICAgfSksIC8qI19fUFVSRV9fKi8gJDlJcmpYJGlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gLyojX19QVVJFX18qLyAkOUlyalgkY2xvbmVFbGVtZW50KG5ld0VsZW1lbnQsIHVuZGVmaW5lZCwgbmV3Q2hpbGRyZW4pIDogbnVsbCk7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQ5SXJqWCRjcmVhdGVFbGVtZW50KCQ1ZTYzYzk2MWZjMWNlMjExJHZhciRTbG90Q2xvbmUsICQ5SXJqWCRiYWJlbHJ1bnRpbWVoZWxwZXJzZXNtZXh0ZW5kcyh7fSwgc2xvdFByb3BzLCB7XG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmXG4gICAgfSksIGNoaWxkcmVuKTtcbn0pO1xuJDVlNjNjOTYxZmMxY2UyMTEkZXhwb3J0JDhjNmVkNWM2NjZhYzEzNjAuZGlzcGxheU5hbWUgPSAnU2xvdCc7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTbG90Q2xvbmVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gY29uc3QgJDVlNjNjOTYxZmMxY2UyMTEkdmFyJFNsb3RDbG9uZSA9IC8qI19fUFVSRV9fKi8gJDlJcmpYJGZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpPT57XG4gICAgY29uc3QgeyBjaGlsZHJlbjogY2hpbGRyZW4gLCAuLi5zbG90UHJvcHMgfSA9IHByb3BzO1xuICAgIGlmICgvKiNfX1BVUkVfXyovICQ5SXJqWCRpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHJldHVybiAvKiNfX1BVUkVfXyovICQ5SXJqWCRjbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgICAgLi4uJDVlNjNjOTYxZmMxY2UyMTEkdmFyJG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZHJlbi5wcm9wcyksXG4gICAgICAgIHJlZjogZm9yd2FyZGVkUmVmID8gJDlJcmpYJGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW4ucmVmKSA6IGNoaWxkcmVuLnJlZlxuICAgIH0pO1xuICAgIHJldHVybiAkOUlyalgkQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMSA/ICQ5SXJqWCRDaGlsZHJlbi5vbmx5KG51bGwpIDogbnVsbDtcbn0pO1xuJDVlNjNjOTYxZmMxY2UyMTEkdmFyJFNsb3RDbG9uZS5kaXNwbGF5TmFtZSA9ICdTbG90Q2xvbmUnO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2xvdHRhYmxlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIGNvbnN0ICQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCRkOWYxY2NmMGJkYjA1ZDQ1ID0gKHsgY2hpbGRyZW46IGNoaWxkcmVuICB9KT0+e1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICQ5SXJqWCRjcmVhdGVFbGVtZW50KCQ5SXJqWCRGcmFnbWVudCwgbnVsbCwgY2hpbGRyZW4pO1xufTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8gZnVuY3Rpb24gJDVlNjNjOTYxZmMxY2UyMTEkdmFyJGlzU2xvdHRhYmxlKGNoaWxkKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gJDlJcmpYJGlzVmFsaWRFbGVtZW50KGNoaWxkKSAmJiBjaGlsZC50eXBlID09PSAkNWU2M2M5NjFmYzFjZTIxMSRleHBvcnQkZDlmMWNjZjBiZGIwNWQ0NTtcbn1cbmZ1bmN0aW9uICQ1ZTYzYzk2MWZjMWNlMjExJHZhciRtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRQcm9wcykge1xuICAgIC8vIGFsbCBjaGlsZCBwcm9wcyBzaG91bGQgb3ZlcnJpZGVcbiAgICBjb25zdCBvdmVycmlkZVByb3BzID0ge1xuICAgICAgICAuLi5jaGlsZFByb3BzXG4gICAgfTtcbiAgICBmb3IoY29uc3QgcHJvcE5hbWUgaW4gY2hpbGRQcm9wcyl7XG4gICAgICAgIGNvbnN0IHNsb3RQcm9wVmFsdWUgPSBzbG90UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCBjaGlsZFByb3BWYWx1ZSA9IGNoaWxkUHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgICAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgaGFuZGxlciBleGlzdHMgb24gYm90aCwgd2UgY29tcG9zZSB0aGVtXG4gICAgICAgICAgICBpZiAoc2xvdFByb3BWYWx1ZSAmJiBjaGlsZFByb3BWYWx1ZSkgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICBzbG90UHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHNsb3RQcm9wVmFsdWUpIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gc2xvdFByb3BWYWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gJ3N0eWxlJykgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSB7XG4gICAgICAgICAgICAuLi5zbG90UHJvcFZhbHVlLFxuICAgICAgICAgICAgLi4uY2hpbGRQcm9wVmFsdWVcbiAgICAgICAgfTtcbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09ICdjbGFzc05hbWUnKSBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IFtcbiAgICAgICAgICAgIHNsb3RQcm9wVmFsdWUsXG4gICAgICAgICAgICBjaGlsZFByb3BWYWx1ZVxuICAgICAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLnNsb3RQcm9wcyxcbiAgICAgICAgLi4ub3ZlcnJpZGVQcm9wc1xuICAgIH07XG59XG5jb25zdCAkNWU2M2M5NjFmYzFjZTIxMSRleHBvcnQkYmU5MmI2ZjVmMDNjMGZlOSA9ICQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCQ4YzZlZDVjNjY2YWMxMzYwO1xuXG5cblxuXG5leHBvcnQgeyQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCQ4YzZlZDVjNjY2YWMxMzYwIGFzIFNsb3QsICQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCRkOWYxY2NmMGJkYjA1ZDQ1IGFzIFNsb3R0YWJsZSwgJDVlNjNjOTYxZmMxY2UyMTEkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkgYXMgUm9vdH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOlsiJDlJcmpYJGJhYmVscnVudGltZWhlbHBlcnNlc21leHRlbmRzIiwiZm9yd2FyZFJlZiIsIiQ5SXJqWCRmb3J3YXJkUmVmIiwiQ2hpbGRyZW4iLCIkOUlyalgkQ2hpbGRyZW4iLCJpc1ZhbGlkRWxlbWVudCIsIiQ5SXJqWCRpc1ZhbGlkRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCIkOUlyalgkY3JlYXRlRWxlbWVudCIsImNsb25lRWxlbWVudCIsIiQ5SXJqWCRjbG9uZUVsZW1lbnQiLCJGcmFnbWVudCIsIiQ5SXJqWCRGcmFnbWVudCIsImNvbXBvc2VSZWZzIiwiJDlJcmpYJGNvbXBvc2VSZWZzIiwiJDVlNjNjOTYxZmMxY2UyMTEkZXhwb3J0JDhjNmVkNWM2NjZhYzEzNjAiLCJwcm9wcyIsImZvcndhcmRlZFJlZiIsImNoaWxkcmVuIiwic2xvdFByb3BzIiwiY2hpbGRyZW5BcnJheSIsInRvQXJyYXkiLCJzbG90dGFibGUiLCJmaW5kIiwiJDVlNjNjOTYxZmMxY2UyMTEkdmFyJGlzU2xvdHRhYmxlIiwibmV3RWxlbWVudCIsIm5ld0NoaWxkcmVuIiwibWFwIiwiY2hpbGQiLCJjb3VudCIsIm9ubHkiLCIkNWU2M2M5NjFmYzFjZTIxMSR2YXIkU2xvdENsb25lIiwicmVmIiwidW5kZWZpbmVkIiwiZGlzcGxheU5hbWUiLCIkNWU2M2M5NjFmYzFjZTIxMSR2YXIkbWVyZ2VQcm9wcyIsIiQ1ZTYzYzk2MWZjMWNlMjExJGV4cG9ydCRkOWYxY2NmMGJkYjA1ZDQ1IiwidHlwZSIsImNoaWxkUHJvcHMiLCJvdmVycmlkZVByb3BzIiwicHJvcE5hbWUiLCJzbG90UHJvcFZhbHVlIiwiY2hpbGRQcm9wVmFsdWUiLCJpc0hhbmRsZXIiLCJ0ZXN0IiwiYXJncyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiJDVlNjNjOTYxZmMxY2UyMTEkZXhwb3J0JGJlOTJiNmY1ZjAzYzBmZTkiLCJTbG90IiwiU2xvdHRhYmxlIiwiUm9vdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@radix-ui/react-slot/dist/index.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@swc/helpers/esm/_class_private_field_loose_base.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/@swc/helpers/esm/_class_private_field_loose_base.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _class_private_field_loose_base),\n/* harmony export */ _class_private_field_loose_base: () => (/* binding */ _class_private_field_loose_base)\n/* harmony export */ });\nfunction _class_private_field_loose_base(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError(\"attempted to use private field on non-instance\");\n }\n return receiver;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9lc20vX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPLFNBQVNBLGdDQUFnQ0MsUUFBUSxFQUFFQyxVQUFVO0lBQ2hFLElBQUksQ0FBQ0MsT0FBT0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0wsVUFBVUMsYUFBYTtRQUM3RCxNQUFNLElBQUlLLFVBQVU7SUFDeEI7SUFFQSxPQUFPTjtBQUNYO0FBQ2dEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9iYXNlLmpzPzNiZjUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIF9jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2Jhc2UocmVjZWl2ZXIsIHByaXZhdGVLZXkpIHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWNlaXZlciwgcHJpdmF0ZUtleSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImF0dGVtcHRlZCB0byB1c2UgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2VcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY2VpdmVyO1xufVxuZXhwb3J0IHsgX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSBhcyBfIH07XG4iXSwibmFtZXMiOlsiX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2VfYmFzZSIsInJlY2VpdmVyIiwicHJpdmF0ZUtleSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlR5cGVFcnJvciIsIl8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@swc/helpers/esm/_class_private_field_loose_key.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/@swc/helpers/esm/_class_private_field_loose_key.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _class_private_field_loose_key),\n/* harmony export */ _class_private_field_loose_key: () => (/* binding */ _class_private_field_loose_key)\n/* harmony export */ });\nvar id = 0;\nfunction _class_private_field_loose_key(name) {\n return \"__private_\" + id++ + \"_\" + name;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9lc20vX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBSUEsS0FBSztBQUVGLFNBQVNDLCtCQUErQkMsSUFBSTtJQUMvQyxPQUFPLGVBQWVGLE9BQU8sTUFBTUU7QUFDdkM7QUFDK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL19jbGFzc19wcml2YXRlX2ZpZWxkX2xvb3NlX2tleS5qcz81ZmYzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpZCA9IDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkobmFtZSkge1xuICAgIHJldHVybiBcIl9fcHJpdmF0ZV9cIiArIGlkKysgKyBcIl9cIiArIG5hbWU7XG59XG5leHBvcnQgeyBfY2xhc3NfcHJpdmF0ZV9maWVsZF9sb29zZV9rZXkgYXMgXyB9O1xuIl0sIm5hbWVzIjpbImlkIiwiX2NsYXNzX3ByaXZhdGVfZmllbGRfbG9vc2Vfa2V5IiwibmFtZSIsIl8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _tagged_template_literal_loose),\n/* harmony export */ _tagged_template_literal_loose: () => (/* binding */ _tagged_template_literal_loose)\n/* harmony export */ });\nfunction _tagged_template_literal_loose(strings, raw) {\n if (!raw) raw = strings.slice(0);\n strings.raw = raw;\n return strings;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9lc20vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sU0FBU0EsK0JBQStCQyxPQUFPLEVBQUVDLEdBQUc7SUFDdkQsSUFBSSxDQUFDQSxLQUFLQSxNQUFNRCxRQUFRRSxLQUFLLENBQUM7SUFFOUJGLFFBQVFDLEdBQUcsR0FBR0E7SUFFZCxPQUFPRDtBQUNYO0FBQytDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UuanM/OTg0MyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlKHN0cmluZ3MsIHJhdykge1xuICAgIGlmICghcmF3KSByYXcgPSBzdHJpbmdzLnNsaWNlKDApO1xuXG4gICAgc3RyaW5ncy5yYXcgPSByYXc7XG5cbiAgICByZXR1cm4gc3RyaW5ncztcbn1cbmV4cG9ydCB7IF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZSBhcyBfIH07XG4iXSwibmFtZXMiOlsiX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIiwic3RyaW5ncyIsInJhdyIsInNsaWNlIiwiXyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@ungap/structured-clone/esm/deserialize.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/@ungap/structured-clone/esm/deserialize.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deserialize: () => (/* binding */ deserialize)\n/* harmony export */ });\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types.js */ \"(ssr)/../../node_modules/@ungap/structured-clone/esm/types.js\");\n\nconst env = typeof self === \"object\" ? self : globalThis;\nconst deserializer = ($, _)=>{\n const as = (out, index)=>{\n $.set(index, out);\n return out;\n };\n const unpair = (index)=>{\n if ($.has(index)) return $.get(index);\n const [type, value] = _[index];\n switch(type){\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.PRIMITIVE:\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.VOID:\n return as(value, index);\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY:\n {\n const arr = as([], index);\n for (const index of value)arr.push(unpair(index));\n return arr;\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.OBJECT:\n {\n const object = as({}, index);\n for (const [key, index] of value)object[unpair(key)] = unpair(index);\n return object;\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.DATE:\n return as(new Date(value), index);\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.REGEXP:\n {\n const { source, flags } = value;\n return as(new RegExp(source, flags), index);\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.MAP:\n {\n const map = as(new Map, index);\n for (const [key, index] of value)map.set(unpair(key), unpair(index));\n return map;\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.SET:\n {\n const set = as(new Set, index);\n for (const index of value)set.add(unpair(index));\n return set;\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.ERROR:\n {\n const { name, message } = value;\n return as(new env[name](message), index);\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.BIGINT:\n return as(BigInt(value), index);\n case \"BigInt\":\n return as(Object(BigInt(value)), index);\n }\n return as(new env[type](value), index);\n };\n return unpair;\n};\n/**\n * @typedef {Array<string,any>} Record a type representation\n */ /**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */ const deserialize = (serialized)=>deserializer(new Map, serialized)(0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0B1bmdhcC9zdHJ1Y3R1cmVkLWNsb25lL2VzbS9kZXNlcmlhbGl6ZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUtvQjtBQUVwQixNQUFNVSxNQUFNLE9BQU9DLFNBQVMsV0FBV0EsT0FBT0M7QUFFOUMsTUFBTUMsZUFBZSxDQUFDQyxHQUFHQztJQUN2QixNQUFNQyxLQUFLLENBQUNDLEtBQUtDO1FBQ2ZKLEVBQUVLLEdBQUcsQ0FBQ0QsT0FBT0Q7UUFDYixPQUFPQTtJQUNUO0lBRUEsTUFBTUcsU0FBU0YsQ0FBQUE7UUFDYixJQUFJSixFQUFFTyxHQUFHLENBQUNILFFBQ1IsT0FBT0osRUFBRVEsR0FBRyxDQUFDSjtRQUVmLE1BQU0sQ0FBQ0ssTUFBTUMsTUFBTSxHQUFHVCxDQUFDLENBQUNHLE1BQU07UUFDOUIsT0FBUUs7WUFDTixLQUFLdEIsZ0RBQVNBO1lBQ2QsS0FBS0QsMkNBQUlBO2dCQUNQLE9BQU9nQixHQUFHUSxPQUFPTjtZQUNuQixLQUFLaEIsNENBQUtBO2dCQUFFO29CQUNWLE1BQU11QixNQUFNVCxHQUFHLEVBQUUsRUFBRUU7b0JBQ25CLEtBQUssTUFBTUEsU0FBU00sTUFDbEJDLElBQUlDLElBQUksQ0FBQ04sT0FBT0Y7b0JBQ2xCLE9BQU9PO2dCQUNUO1lBQ0EsS0FBS3RCLDZDQUFNQTtnQkFBRTtvQkFDWCxNQUFNd0IsU0FBU1gsR0FBRyxDQUFDLEdBQUdFO29CQUN0QixLQUFLLE1BQU0sQ0FBQ1UsS0FBS1YsTUFBTSxJQUFJTSxNQUN6QkcsTUFBTSxDQUFDUCxPQUFPUSxLQUFLLEdBQUdSLE9BQU9GO29CQUMvQixPQUFPUztnQkFDVDtZQUNBLEtBQUt2QiwyQ0FBSUE7Z0JBQ1AsT0FBT1ksR0FBRyxJQUFJYSxLQUFLTCxRQUFRTjtZQUM3QixLQUFLYiw2Q0FBTUE7Z0JBQUU7b0JBQ1gsTUFBTSxFQUFDeUIsTUFBTSxFQUFFQyxLQUFLLEVBQUMsR0FBR1A7b0JBQ3hCLE9BQU9SLEdBQUcsSUFBSWdCLE9BQU9GLFFBQVFDLFFBQVFiO2dCQUN2QztZQUNBLEtBQUtaLDBDQUFHQTtnQkFBRTtvQkFDUixNQUFNMkIsTUFBTWpCLEdBQUcsSUFBSWtCLEtBQUtoQjtvQkFDeEIsS0FBSyxNQUFNLENBQUNVLEtBQUtWLE1BQU0sSUFBSU0sTUFDekJTLElBQUlkLEdBQUcsQ0FBQ0MsT0FBT1EsTUFBTVIsT0FBT0Y7b0JBQzlCLE9BQU9lO2dCQUNUO1lBQ0EsS0FBSzFCLDBDQUFHQTtnQkFBRTtvQkFDUixNQUFNWSxNQUFNSCxHQUFHLElBQUltQixLQUFLakI7b0JBQ3hCLEtBQUssTUFBTUEsU0FBU00sTUFDbEJMLElBQUlpQixHQUFHLENBQUNoQixPQUFPRjtvQkFDakIsT0FBT0M7Z0JBQ1Q7WUFDQSxLQUFLWCw0Q0FBS0E7Z0JBQUU7b0JBQ1YsTUFBTSxFQUFDNkIsSUFBSSxFQUFFQyxPQUFPLEVBQUMsR0FBR2Q7b0JBQ3hCLE9BQU9SLEdBQUcsSUFBSU4sR0FBRyxDQUFDMkIsS0FBSyxDQUFDQyxVQUFVcEI7Z0JBQ3BDO1lBQ0EsS0FBS1QsNkNBQU1BO2dCQUNULE9BQU9PLEdBQUd1QixPQUFPZixRQUFRTjtZQUMzQixLQUFLO2dCQUNILE9BQU9GLEdBQUd3QixPQUFPRCxPQUFPZixTQUFTTjtRQUNyQztRQUNBLE9BQU9GLEdBQUcsSUFBSU4sR0FBRyxDQUFDYSxLQUFLLENBQUNDLFFBQVFOO0lBQ2xDO0lBRUEsT0FBT0U7QUFDVDtBQUVBOztDQUVDLEdBRUQ7Ozs7Q0FJQyxHQUNNLE1BQU1xQixjQUFjQyxDQUFBQSxhQUFjN0IsYUFBYSxJQUFJcUIsS0FBS1EsWUFBWSxHQUFHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvQHVuZ2FwL3N0cnVjdHVyZWQtY2xvbmUvZXNtL2Rlc2VyaWFsaXplLmpzPzA0ZDIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVk9JRCwgUFJJTUlUSVZFLFxuICBBUlJBWSwgT0JKRUNULFxuICBEQVRFLCBSRUdFWFAsIE1BUCwgU0VULFxuICBFUlJPUiwgQklHSU5UXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5jb25zdCBlbnYgPSB0eXBlb2Ygc2VsZiA9PT0gJ29iamVjdCcgPyBzZWxmIDogZ2xvYmFsVGhpcztcblxuY29uc3QgZGVzZXJpYWxpemVyID0gKCQsIF8pID0+IHtcbiAgY29uc3QgYXMgPSAob3V0LCBpbmRleCkgPT4ge1xuICAgICQuc2V0KGluZGV4LCBvdXQpO1xuICAgIHJldHVybiBvdXQ7XG4gIH07XG5cbiAgY29uc3QgdW5wYWlyID0gaW5kZXggPT4ge1xuICAgIGlmICgkLmhhcyhpbmRleCkpXG4gICAgICByZXR1cm4gJC5nZXQoaW5kZXgpO1xuXG4gICAgY29uc3QgW3R5cGUsIHZhbHVlXSA9IF9baW5kZXhdO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBQUklNSVRJVkU6XG4gICAgICBjYXNlIFZPSUQ6XG4gICAgICAgIHJldHVybiBhcyh2YWx1ZSwgaW5kZXgpO1xuICAgICAgY2FzZSBBUlJBWToge1xuICAgICAgICBjb25zdCBhcnIgPSBhcyhbXSwgaW5kZXgpO1xuICAgICAgICBmb3IgKGNvbnN0IGluZGV4IG9mIHZhbHVlKVxuICAgICAgICAgIGFyci5wdXNoKHVucGFpcihpbmRleCkpO1xuICAgICAgICByZXR1cm4gYXJyO1xuICAgICAgfVxuICAgICAgY2FzZSBPQkpFQ1Q6IHtcbiAgICAgICAgY29uc3Qgb2JqZWN0ID0gYXMoe30sIGluZGV4KTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBpbmRleF0gb2YgdmFsdWUpXG4gICAgICAgICAgb2JqZWN0W3VucGFpcihrZXkpXSA9IHVucGFpcihpbmRleCk7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICB9XG4gICAgICBjYXNlIERBVEU6XG4gICAgICAgIHJldHVybiBhcyhuZXcgRGF0ZSh2YWx1ZSksIGluZGV4KTtcbiAgICAgIGNhc2UgUkVHRVhQOiB7XG4gICAgICAgIGNvbnN0IHtzb3VyY2UsIGZsYWdzfSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gYXMobmV3IFJlZ0V4cChzb3VyY2UsIGZsYWdzKSwgaW5kZXgpO1xuICAgICAgfVxuICAgICAgY2FzZSBNQVA6IHtcbiAgICAgICAgY29uc3QgbWFwID0gYXMobmV3IE1hcCwgaW5kZXgpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGluZGV4XSBvZiB2YWx1ZSlcbiAgICAgICAgICBtYXAuc2V0KHVucGFpcihrZXkpLCB1bnBhaXIoaW5kZXgpKTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgIH1cbiAgICAgIGNhc2UgU0VUOiB7XG4gICAgICAgIGNvbnN0IHNldCA9IGFzKG5ldyBTZXQsIGluZGV4KTtcbiAgICAgICAgZm9yIChjb25zdCBpbmRleCBvZiB2YWx1ZSlcbiAgICAgICAgICBzZXQuYWRkKHVucGFpcihpbmRleCkpO1xuICAgICAgICByZXR1cm4gc2V0O1xuICAgICAgfVxuICAgICAgY2FzZSBFUlJPUjoge1xuICAgICAgICBjb25zdCB7bmFtZSwgbWVzc2FnZX0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIGFzKG5ldyBlbnZbbmFtZV0obWVzc2FnZSksIGluZGV4KTtcbiAgICAgIH1cbiAgICAgIGNhc2UgQklHSU5UOlxuICAgICAgICByZXR1cm4gYXMoQmlnSW50KHZhbHVlKSwgaW5kZXgpO1xuICAgICAgY2FzZSAnQmlnSW50JzpcbiAgICAgICAgcmV0dXJuIGFzKE9iamVjdChCaWdJbnQodmFsdWUpKSwgaW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gYXMobmV3IGVudlt0eXBlXSh2YWx1ZSksIGluZGV4KTtcbiAgfTtcblxuICByZXR1cm4gdW5wYWlyO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7QXJyYXk8c3RyaW5nLGFueT59IFJlY29yZCBhIHR5cGUgcmVwcmVzZW50YXRpb25cbiAqL1xuXG4vKipcbiAqIFJldHVybnMgYSBkZXNlcmlhbGl6ZWQgdmFsdWUgZnJvbSBhIHNlcmlhbGl6ZWQgYXJyYXkgb2YgUmVjb3Jkcy5cbiAqIEBwYXJhbSB7UmVjb3JkW119IHNlcmlhbGl6ZWQgYSBwcmV2aW91c2x5IHNlcmlhbGl6ZWQgdmFsdWUuXG4gKiBAcmV0dXJucyB7YW55fVxuICovXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemUgPSBzZXJpYWxpemVkID0+IGRlc2VyaWFsaXplcihuZXcgTWFwLCBzZXJpYWxpemVkKSgwKTtcbiJdLCJuYW1lcyI6WyJWT0lEIiwiUFJJTUlUSVZFIiwiQVJSQVkiLCJPQkpFQ1QiLCJEQVRFIiwiUkVHRVhQIiwiTUFQIiwiU0VUIiwiRVJST1IiLCJCSUdJTlQiLCJlbnYiLCJzZWxmIiwiZ2xvYmFsVGhpcyIsImRlc2VyaWFsaXplciIsIiQiLCJfIiwiYXMiLCJvdXQiLCJpbmRleCIsInNldCIsInVucGFpciIsImhhcyIsImdldCIsInR5cGUiLCJ2YWx1ZSIsImFyciIsInB1c2giLCJvYmplY3QiLCJrZXkiLCJEYXRlIiwic291cmNlIiwiZmxhZ3MiLCJSZWdFeHAiLCJtYXAiLCJNYXAiLCJTZXQiLCJhZGQiLCJuYW1lIiwibWVzc2FnZSIsIkJpZ0ludCIsIk9iamVjdCIsImRlc2VyaWFsaXplIiwic2VyaWFsaXplZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@ungap/structured-clone/esm/deserialize.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@ungap/structured-clone/esm/index.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/@ungap/structured-clone/esm/index.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ deserialize: () => (/* reexport safe */ _deserialize_js__WEBPACK_IMPORTED_MODULE_0__.deserialize),\n/* harmony export */ serialize: () => (/* reexport safe */ _serialize_js__WEBPACK_IMPORTED_MODULE_1__.serialize)\n/* harmony export */ });\n/* harmony import */ var _deserialize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deserialize.js */ \"(ssr)/../../node_modules/@ungap/structured-clone/esm/deserialize.js\");\n/* harmony import */ var _serialize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./serialize.js */ \"(ssr)/../../node_modules/@ungap/structured-clone/esm/serialize.js\");\n\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */ /**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof structuredClone === \"function\" ? /* c8 ignore start */ (any, options)=>options && (\"json\" in options || \"lossy\" in options) ? (0,_deserialize_js__WEBPACK_IMPORTED_MODULE_0__.deserialize)((0,_serialize_js__WEBPACK_IMPORTED_MODULE_1__.serialize)(any, options)) : structuredClone(any) : (any, options)=>(0,_deserialize_js__WEBPACK_IMPORTED_MODULE_0__.deserialize)((0,_serialize_js__WEBPACK_IMPORTED_MODULE_1__.serialize)(any, options)));\n/* c8 ignore stop */ \n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0B1bmdhcC9zdHJ1Y3R1cmVkLWNsb25lL2VzbS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUE2QztBQUNKO0FBRXpDOztDQUVDLEdBRUQ7Ozs7Ozs7Q0FPQyxHQUNELGlFQUFlLE9BQU9FLG9CQUFvQixhQUN4QyxtQkFBbUIsR0FDbkIsQ0FBQ0MsS0FBS0MsVUFDSkEsV0FBWSxXQUFVQSxXQUFXLFdBQVdBLE9BQU0sSUFDaERKLDREQUFXQSxDQUFDQyx3REFBU0EsQ0FBQ0UsS0FBS0MsWUFBWUYsZ0JBQWdCQyxPQUUzRCxDQUFDQSxLQUFLQyxVQUFZSiw0REFBV0EsQ0FBQ0Msd0RBQVNBLENBQUNFLEtBQUtDLFNBQVNBLEVBQUM7QUFDdkQsa0JBQWtCLEdBRVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9AdW5nYXAvc3RydWN0dXJlZC1jbG9uZS9lc20vaW5kZXguanM/N2NjZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Rlc2VyaWFsaXplfSBmcm9tICcuL2Rlc2VyaWFsaXplLmpzJztcbmltcG9ydCB7c2VyaWFsaXplfSBmcm9tICcuL3NlcmlhbGl6ZS5qcyc7XG5cbi8qKlxuICogQHR5cGVkZWYge0FycmF5PHN0cmluZyxhbnk+fSBSZWNvcmQgYSB0eXBlIHJlcHJlc2VudGF0aW9uXG4gKi9cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IG9mIHNlcmlhbGl6ZWQgUmVjb3Jkcy5cbiAqIEBwYXJhbSB7YW55fSBhbnkgYSBzZXJpYWxpemFibGUgdmFsdWUuXG4gKiBAcGFyYW0ge3t0cmFuc2Zlcj86IGFueVtdLCBqc29uPzogYm9vbGVhbiwgbG9zc3k/OiBib29sZWFufT99IG9wdGlvbnMgYW4gb2JqZWN0IHdpdGhcbiAqIGEgdHJhbnNmZXIgb3B0aW9uIChpZ25vcmVkIHdoZW4gcG9seWZpbGxlZCkgYW5kL29yIG5vbiBzdGFuZGFyZCBmaWVsZHMgdGhhdFxuICogZmFsbGJhY2sgdG8gdGhlIHBvbHlmaWxsIGlmIHByZXNlbnQuXG4gKiBAcmV0dXJucyB7UmVjb3JkW119XG4gKi9cbmV4cG9ydCBkZWZhdWx0IHR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/XG4gIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAoYW55LCBvcHRpb25zKSA9PiAoXG4gICAgb3B0aW9ucyAmJiAoJ2pzb24nIGluIG9wdGlvbnMgfHwgJ2xvc3N5JyBpbiBvcHRpb25zKSA/XG4gICAgICBkZXNlcmlhbGl6ZShzZXJpYWxpemUoYW55LCBvcHRpb25zKSkgOiBzdHJ1Y3R1cmVkQ2xvbmUoYW55KVxuICApIDpcbiAgKGFueSwgb3B0aW9ucykgPT4gZGVzZXJpYWxpemUoc2VyaWFsaXplKGFueSwgb3B0aW9ucykpO1xuICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG5leHBvcnQge2Rlc2VyaWFsaXplLCBzZXJpYWxpemV9O1xuIl0sIm5hbWVzIjpbImRlc2VyaWFsaXplIiwic2VyaWFsaXplIiwic3RydWN0dXJlZENsb25lIiwiYW55Iiwib3B0aW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@ungap/structured-clone/esm/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@ungap/structured-clone/esm/serialize.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/@ungap/structured-clone/esm/serialize.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ serialize: () => (/* binding */ serialize)\n/* harmony export */ });\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types.js */ \"(ssr)/../../node_modules/@ungap/structured-clone/esm/types.js\");\n\nconst EMPTY = \"\";\nconst { toString } = {};\nconst { keys } = Object;\nconst typeOf = (value)=>{\n const type = typeof value;\n if (type !== \"object\" || !value) return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.PRIMITIVE,\n type\n ];\n const asString = toString.call(value).slice(8, -1);\n switch(asString){\n case \"Array\":\n return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY,\n EMPTY\n ];\n case \"Object\":\n return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.OBJECT,\n EMPTY\n ];\n case \"Date\":\n return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.DATE,\n EMPTY\n ];\n case \"RegExp\":\n return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.REGEXP,\n EMPTY\n ];\n case \"Map\":\n return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.MAP,\n EMPTY\n ];\n case \"Set\":\n return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.SET,\n EMPTY\n ];\n }\n if (asString.includes(\"Array\")) return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY,\n asString\n ];\n if (asString.includes(\"Error\")) return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.ERROR,\n asString\n ];\n return [\n _types_js__WEBPACK_IMPORTED_MODULE_0__.OBJECT,\n asString\n ];\n};\nconst shouldSkip = ([TYPE, type])=>TYPE === _types_js__WEBPACK_IMPORTED_MODULE_0__.PRIMITIVE && (type === \"function\" || type === \"symbol\");\nconst serializer = (strict, json, $, _)=>{\n const as = (out, value)=>{\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n const pair = (value)=>{\n if ($.has(value)) return $.get(value);\n let [TYPE, type] = typeOf(value);\n switch(TYPE){\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.PRIMITIVE:\n {\n let entry = value;\n switch(type){\n case \"bigint\":\n TYPE = _types_js__WEBPACK_IMPORTED_MODULE_0__.BIGINT;\n entry = value.toString();\n break;\n case \"function\":\n case \"symbol\":\n if (strict) throw new TypeError(\"unable to serialize \" + type);\n entry = null;\n break;\n case \"undefined\":\n return as([\n _types_js__WEBPACK_IMPORTED_MODULE_0__.VOID\n ], value);\n }\n return as([\n TYPE,\n entry\n ], value);\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.ARRAY:\n {\n if (type) return as([\n type,\n [\n ...value\n ]\n ], value);\n const arr = [];\n const index = as([\n TYPE,\n arr\n ], value);\n for (const entry of value)arr.push(pair(entry));\n return index;\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.OBJECT:\n {\n if (type) {\n switch(type){\n case \"BigInt\":\n return as([\n type,\n value.toString()\n ], value);\n case \"Boolean\":\n case \"Number\":\n case \"String\":\n return as([\n type,\n value.valueOf()\n ], value);\n }\n }\n if (json && \"toJSON\" in value) return pair(value.toJSON());\n const entries = [];\n const index = as([\n TYPE,\n entries\n ], value);\n for (const key of keys(value)){\n if (strict || !shouldSkip(typeOf(value[key]))) entries.push([\n pair(key),\n pair(value[key])\n ]);\n }\n return index;\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.DATE:\n return as([\n TYPE,\n value.toISOString()\n ], value);\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.REGEXP:\n {\n const { source, flags } = value;\n return as([\n TYPE,\n {\n source,\n flags\n }\n ], value);\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.MAP:\n {\n const entries = [];\n const index = as([\n TYPE,\n entries\n ], value);\n for (const [key, entry] of value){\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry)))) entries.push([\n pair(key),\n pair(entry)\n ]);\n }\n return index;\n }\n case _types_js__WEBPACK_IMPORTED_MODULE_0__.SET:\n {\n const entries = [];\n const index = as([\n TYPE,\n entries\n ], value);\n for (const entry of value){\n if (strict || !shouldSkip(typeOf(entry))) entries.push(pair(entry));\n }\n return index;\n }\n }\n const { message } = value;\n return as([\n TYPE,\n {\n name: type,\n message\n }\n ], value);\n };\n return pair;\n};\n/**\n * @typedef {Array<string,any>} Record a type representation\n */ /**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */ const serialize = (value, { json, lossy } = {})=>{\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0B1bmdhcC9zdHJ1Y3R1cmVkLWNsb25lL2VzbS9zZXJpYWxpemUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLb0I7QUFFcEIsTUFBTVUsUUFBUTtBQUVkLE1BQU0sRUFBQ0MsUUFBUSxFQUFDLEdBQUcsQ0FBQztBQUNwQixNQUFNLEVBQUNDLElBQUksRUFBQyxHQUFHQztBQUVmLE1BQU1DLFNBQVNDLENBQUFBO0lBQ2IsTUFBTUMsT0FBTyxPQUFPRDtJQUNwQixJQUFJQyxTQUFTLFlBQVksQ0FBQ0QsT0FDeEIsT0FBTztRQUFDZCxnREFBU0E7UUFBRWU7S0FBSztJQUUxQixNQUFNQyxXQUFXTixTQUFTTyxJQUFJLENBQUNILE9BQU9JLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDaEQsT0FBUUY7UUFDTixLQUFLO1lBQ0gsT0FBTztnQkFBQ2YsNENBQUtBO2dCQUFFUTthQUFNO1FBQ3ZCLEtBQUs7WUFDSCxPQUFPO2dCQUFDUCw2Q0FBTUE7Z0JBQUVPO2FBQU07UUFDeEIsS0FBSztZQUNILE9BQU87Z0JBQUNOLDJDQUFJQTtnQkFBRU07YUFBTTtRQUN0QixLQUFLO1lBQ0gsT0FBTztnQkFBQ0wsNkNBQU1BO2dCQUFFSzthQUFNO1FBQ3hCLEtBQUs7WUFDSCxPQUFPO2dCQUFDSiwwQ0FBR0E7Z0JBQUVJO2FBQU07UUFDckIsS0FBSztZQUNILE9BQU87Z0JBQUNILDBDQUFHQTtnQkFBRUc7YUFBTTtJQUN2QjtJQUVBLElBQUlPLFNBQVNHLFFBQVEsQ0FBQyxVQUNwQixPQUFPO1FBQUNsQiw0Q0FBS0E7UUFBRWU7S0FBUztJQUUxQixJQUFJQSxTQUFTRyxRQUFRLENBQUMsVUFDcEIsT0FBTztRQUFDWiw0Q0FBS0E7UUFBRVM7S0FBUztJQUUxQixPQUFPO1FBQUNkLDZDQUFNQTtRQUFFYztLQUFTO0FBQzNCO0FBRUEsTUFBTUksYUFBYSxDQUFDLENBQUNDLE1BQU1OLEtBQUssR0FDOUJNLFNBQVNyQixnREFBU0EsSUFDakJlLENB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SCxDQUFBQSxXQUFXUCxPQUFPNEIsU0FBU3JCLFdBQVdQLE9BQU9zQixPQUFNLEdBQ2pFSyxRQUFRVixJQUFJLENBQUM7NEJBQUNFLEtBQUtTOzRCQUFNVCxLQUFLRzt5QkFBTztvQkFDekM7b0JBQ0EsT0FBT047Z0JBQ1Q7WUFDQSxLQUFLdkIsMENBQUdBO2dCQUFFO29CQUNSLE1BQU1rQyxVQUFVLEVBQUU7b0JBQ2xCLE1BQU1YLFFBQVFGLEdBQUc7d0JBQUNOO3dCQUFNbUI7cUJBQVEsRUFBRTFCO29CQUNsQyxLQUFLLE1BQU1xQixTQUFTckIsTUFBTzt3QkFDekIsSUFBSVMsVUFBVSxDQUFDSCxXQUFXUCxPQUFPc0IsU0FDL0JLLFFBQVFWLElBQUksQ0FBQ0UsS0FBS0c7b0JBQ3RCO29CQUNBLE9BQU9OO2dCQUNUO1FBQ0Y7UUFFQSxNQUFNLEVBQUNnQixPQUFPLEVBQUMsR0FBRy9CO1FBQ2xCLE9BQU9hLEdBQUc7WUFBQ047WUFBTTtnQkFBQ3lCLE1BQU0vQjtnQkFBTThCO1lBQU87U0FBRSxFQUFFL0I7SUFDM0M7SUFFQSxPQUFPa0I7QUFDVDtBQUVBOztDQUVDLEdBRUQ7Ozs7Ozs7Q0FPQyxHQUNPLE1BQU1lLFlBQVksQ0FBQ2pDLE9BQU8sRUFBQ1UsSUFBSSxFQUFFd0IsS0FBSyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE1BQU10QixJQUFJLEVBQUU7SUFDWixPQUFPSixXQUFXLENBQUVFLENBQUFBLFFBQVF3QixLQUFJLEdBQUksQ0FBQyxDQUFDeEIsTUFBTSxJQUFJeUIsS0FBS3ZCLEdBQUdaLFFBQVFZO0FBQ2xFLEVBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9AdW5nYXAvc3RydWN0dXJlZC1jbG9uZS9lc20vc2VyaWFsaXplLmpzP2EwZjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVk9JRCwgUFJJTUlUSVZFLFxuICBBUlJBWSwgT0JKRUNULFxuICBEQVRFLCBSRUdFWFAsIE1BUCwgU0VULFxuICBFUlJPUiwgQklHSU5UXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5jb25zdCBFTVBUWSA9ICcnO1xuXG5jb25zdCB7dG9TdHJpbmd9ID0ge307XG5jb25zdCB7a2V5c30gPSBPYmplY3Q7XG5cbmNvbnN0IHR5cGVPZiA9IHZhbHVlID0+IHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgaWYgKHR5cGUgIT09ICdvYmplY3QnIHx8ICF2YWx1ZSlcbiAgICByZXR1cm4gW1BSSU1JVElWRSwgdHlwZV07XG5cbiAgY29uc3QgYXNTdHJpbmcgPSB0b1N0cmluZy5jYWxsKHZhbHVlKS5zbGljZSg4LCAtMSk7XG4gIHN3aXRjaCAoYXNTdHJpbmcpIHtcbiAgICBjYXNlICdBcnJheSc6XG4gICAgICByZXR1cm4gW0FSUkFZLCBFTVBUWV07XG4gICAgY2FzZSAnT2JqZWN0JzpcbiAgICAgIHJldHVybiBbT0JKRUNULCBFTVBUWV07XG4gICAgY2FzZSAnRGF0ZSc6XG4gICAgICByZXR1cm4gW0RBVEUsIEVNUFRZXTtcbiAgICBjYXNlICdSZWdFeHAnOlxuICAgICAgcmV0dXJuIFtSRUdFWFAsIEVNUFRZXTtcbiAgICBjYXNlICdNYXAnOlxuICAgICAgcmV0dXJuIFtNQVAsIEVNUFRZXTtcbiAgICBjYXNlICdTZXQnOlxuICAgICAgcmV0dXJuIFtTRVQsIEVNUFRZXTtcbiAgfVxuXG4gIGlmIChhc1N0cmluZy5pbmNsdWRlcygnQXJyYXknKSlcbiAgICByZXR1cm4gW0FSUkFZLCBhc1N0cmluZ107XG5cbiAgaWYgKGFzU3RyaW5nLmluY2x1ZGVzKCdFcnJvcicpKVxuICAgIHJldHVybiBbRVJST1IsIGFzU3RyaW5nXTtcblxuICByZXR1cm4gW09CSkVDVCwgYXNTdHJpbmddO1xufTtcblxuY29uc3Qgc2hvdWxkU2tpcCA9IChbVFlQRSwgdHlwZV0pID0+IChcbiAgVFlQRSA9PT0gUFJJTUlUSVZFICYmXG4gICh0eXBlID09PSAnZnVuY3Rpb24nIHx8IHR5cGUgPT09ICdzeW1ib2wnKVxuKTtcblxuY29uc3Qgc2VyaWFsaXplciA9IChzdHJpY3QsIGpzb24sICQsIF8pID0+IHtcblxuICBjb25zdCBhcyA9IChvdXQsIHZhbHVlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBfLnB1c2gob3V0KSAtIDE7XG4gICAgJC5zZXQodmFsdWUsIGluZGV4KTtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH07XG5cbiAgY29uc3QgcGFpciA9IHZhbHVlID0+IHtcbiAgICBpZiAoJC5oYXModmFsdWUpKVxuICAgICAgcmV0dXJuICQuZ2V0KHZhbHVlKTtcblxuICAgIGxldCBbVFlQRSwgdHlwZV0gPSB0eXBlT2YodmFsdWUpO1xuICAgIHN3aXRjaCAoVFlQRSkge1xuICAgICAgY2FzZSBQUklNSVRJVkU6IHtcbiAgICAgICAgbGV0IGVudHJ5ID0gdmFsdWU7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2JpZ2ludCc6XG4gICAgICAgICAgICBUWVBFID0gQklHSU5UO1xuICAgICAgICAgICAgZW50cnkgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICAgICAgICBpZiAoc3RyaWN0KVxuICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1bmFibGUgdG8gc2VyaWFsaXplICcgKyB0eXBlKTtcbiAgICAgICAgICAgIGVudHJ5ID0gbnVsbDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICByZXR1cm4gYXMoW1ZPSURdLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFzKFtUWVBFLCBlbnRyeV0sIHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgQVJSQVk6IHtcbiAgICAgICAgaWYgKHR5cGUpXG4gICAgICAgICAgcmV0dXJuIGFzKFt0eXBlLCBbLi4udmFsdWVdXSwgdmFsdWUpO1xuICBcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIGNvbnN0IGluZGV4ID0gYXMoW1RZUEUsIGFycl0sIHZhbHVlKTtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiB2YWx1ZSlcbiAgICAgICAgICBhcnIucHVzaChwYWlyKGVudHJ5KSk7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICAgIGNhc2UgT0JKRUNUOiB7XG4gICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdCaWdJbnQnOlxuICAgICAgICAgICAgICByZXR1cm4gYXMoW3R5cGUsIHZhbHVlLnRvU3RyaW5nKCldLCB2YWx1ZSk7XG4gICAgICAgICAgICBjYXNlICdCb29sZWFuJzpcbiAgICAgICAgICAgIGNhc2UgJ051bWJlcic6XG4gICAgICAgICAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgICAgICAgICByZXR1cm4gYXMoW3R5cGUsIHZhbHVlLnZhbHVlT2YoKV0sIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoanNvbiAmJiAoJ3RvSlNPTicgaW4gdmFsdWUpKVxuICAgICAgICAgIHJldHVybiBwYWlyKHZhbHVlLnRvSlNPTigpKTtcblxuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIGNvbnN0IGluZGV4ID0gYXMoW1RZUEUsIGVudHJpZXNdLCB2YWx1ZSk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXModmFsdWUpKSB7XG4gICAgICAgICAgaWYgKHN0cmljdCB8fCAhc2hvdWxkU2tpcCh0eXBlT2YodmFsdWVba2V5XSkpKVxuICAgICAgICAgICAgZW50cmllcy5wdXNoKFtwYWlyKGtleSksIHBhaXIodmFsdWVba2V5XSldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgICBjYXNlIERBVEU6XG4gICAgICAgIHJldHVybiBhcyhbVFlQRSwgdmFsdWUudG9JU09TdHJpbmcoKV0sIHZhbHVlKTtcbiAgICAgIGNhc2UgUkVHRVhQOiB7XG4gICAgICAgIGNvbnN0IHtzb3VyY2UsIGZsYWdzfSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gYXMoW1RZUEUsIHtzb3VyY2UsIGZsYWdzfV0sIHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgTUFQOiB7XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBbXTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBhcyhbVFlQRSwgZW50cmllc10sIHZhbHVlKTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBlbnRyeV0gb2YgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoc3RyaWN0IHx8ICEoc2hvdWxkU2tpcCh0eXBlT2Yoa2V5KSkgfHwgc2hvdWxkU2tpcCh0eXBlT2YoZW50cnkpKSkpXG4gICAgICAgICAgICBlbnRyaWVzLnB1c2goW3BhaXIoa2V5KSwgcGFpcihlbnRyeSldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgICBjYXNlIFNFVDoge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIGNvbnN0IGluZGV4ID0gYXMoW1RZUEUsIGVudHJpZXNdLCB2YWx1ZSk7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoc3RyaWN0IHx8ICFzaG91bGRTa2lwKHR5cGVPZihlbnRyeSkpKVxuICAgICAgICAgICAgZW50cmllcy5wdXNoKHBhaXIoZW50cnkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qge21lc3NhZ2V9ID0gdmFsdWU7XG4gICAgcmV0dXJuIGFzKFtUWVBFLCB7bmFtZTogdHlwZSwgbWVzc2FnZX1dLCB2YWx1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIHBhaXI7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtBcnJheTxzdHJpbmcsYW55Pn0gUmVjb3JkIGEgdHlwZSByZXByZXNlbnRhdGlvblxuICovXG5cbi8qKlxuICogUmV0dXJucyBhbiBhcnJheSBvZiBzZXJpYWxpemVkIFJlY29yZHMuXG4gKiBAcGFyYW0ge2FueX0gdmFsdWUgYSBzZXJpYWxpemFibGUgdmFsdWUuXG4gKiBAcGFyYW0ge3tqc29uPzogYm9vbGVhbiwgbG9zc3k/OiBib29sZWFufT99IG9wdGlvbnMgYW4gb2JqZWN0IHdpdGggYSBgbG9zc3lgIG9yIGBqc29uYCBwcm9wZXJ0eSB0aGF0LFxuICogIGlmIGB0cnVlYCwgd2lsbCBub3QgdGhyb3cgZXJyb3JzIG9uIGluY29tcGF0aWJsZSB0eXBlcywgYW5kIGJlaGF2ZSBtb3JlXG4gKiAgbGlrZSBKU09OIHN0cmluZ2lmeSB3b3VsZCBiZWhhdmUuIFN5bWJvbCBhbmQgRnVuY3Rpb24gd2lsbCBiZSBkaXNjYXJkZWQuXG4gKiBAcmV0dXJucyB7UmVjb3JkW119XG4gKi9cbiBleHBvcnQgY29uc3Qgc2VyaWFsaXplID0gKHZhbHVlLCB7anNvbiwgbG9zc3l9ID0ge30pID0+IHtcbiAgY29uc3QgXyA9IFtdO1xuICByZXR1cm4gc2VyaWFsaXplcighKGpzb24gfHwgbG9zc3kpLCAhIWpzb24sIG5ldyBNYXAsIF8pKHZhbHVlKSwgXztcbn07XG4iXSwibmFtZXMiOlsiVk9JRCIsIlBSSU1JVElWRSIsIkFSUkFZIiwiT0JKRUNUIiwiREFURSIsIlJFR0VYUCIsIk1BUCIsIlNFVCIsIkVSUk9SIiwiQklHSU5UIiwiRU1QVFkiLCJ0b1N0cmluZyIsImtleXMiLCJPYmplY3QiLCJ0eXBlT2YiLCJ2YWx1ZSIsInR5cGUiLCJhc1N0cmluZyIsImNhbGwiLCJzbGljZSIsImluY2x1ZGVzIiwic2hvdWxkU2tpcCIsIlRZUEUiLCJzZXJpYWxpemVyIiwic3RyaWN0IiwianNvbiIsIiQiLCJfIiwiYXMiLCJvdXQiLCJpbmRleCIsInB1c2giLCJzZXQiLCJwYWlyIiwiaGFzIiwiZ2V0IiwiZW50cnkiLCJUeXBlRXJyb3IiLCJhcnIiLCJ2YWx1ZU9mIiwidG9KU09OIiwiZW50cmllcyIsImtleSIsInRvSVNPU3RyaW5nIiwic291cmNlIiwiZmxhZ3MiLCJtZXNzYWdlIiwibmFtZSIsInNlcmlhbGl6ZSIsImxvc3N5IiwiTWFwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@ungap/structured-clone/esm/serialize.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/@ungap/structured-clone/esm/types.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/@ungap/structured-clone/esm/types.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ARRAY: () => (/* binding */ ARRAY),\n/* harmony export */ BIGINT: () => (/* binding */ BIGINT),\n/* harmony export */ DATE: () => (/* binding */ DATE),\n/* harmony export */ ERROR: () => (/* binding */ ERROR),\n/* harmony export */ MAP: () => (/* binding */ MAP),\n/* harmony export */ OBJECT: () => (/* binding */ OBJECT),\n/* harmony export */ PRIMITIVE: () => (/* binding */ PRIMITIVE),\n/* harmony export */ REGEXP: () => (/* binding */ REGEXP),\n/* harmony export */ SET: () => (/* binding */ SET),\n/* harmony export */ VOID: () => (/* binding */ VOID)\n/* harmony export */ });\nconst VOID = -1;\nconst PRIMITIVE = 0;\nconst ARRAY = 1;\nconst OBJECT = 2;\nconst DATE = 3;\nconst REGEXP = 4;\nconst MAP = 5;\nconst SET = 6;\nconst ERROR = 7;\nconst BIGINT = 8; // export const SYMBOL = 9;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL0B1bmdhcC9zdHJ1Y3R1cmVkLWNsb25lL2VzbS90eXBlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQU8sTUFBTUEsT0FBYSxDQUFDLEVBQUU7QUFDdEIsTUFBTUMsWUFBYSxFQUFFO0FBQ3JCLE1BQU1DLFFBQWEsRUFBRTtBQUNyQixNQUFNQyxTQUFhLEVBQUU7QUFDckIsTUFBTUMsT0FBYSxFQUFFO0FBQ3JCLE1BQU1DLFNBQWEsRUFBRTtBQUNyQixNQUFNQyxNQUFhLEVBQUU7QUFDckIsTUFBTUMsTUFBYSxFQUFFO0FBQ3JCLE1BQU1DLFFBQWEsRUFBRTtBQUNyQixNQUFNQyxTQUFhLEVBQUUsQ0FDNUIsMkJBQTJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvQHVuZ2FwL3N0cnVjdHVyZWQtY2xvbmUvZXNtL3R5cGVzLmpzPzBkZWQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZPSUQgICAgICAgPSAtMTtcbmV4cG9ydCBjb25zdCBQUklNSVRJVkUgID0gMDtcbmV4cG9ydCBjb25zdCBBUlJBWSAgICAgID0gMTtcbmV4cG9ydCBjb25zdCBPQkpFQ1QgICAgID0gMjtcbmV4cG9ydCBjb25zdCBEQVRFICAgICAgID0gMztcbmV4cG9ydCBjb25zdCBSRUdFWFAgICAgID0gNDtcbmV4cG9ydCBjb25zdCBNQVAgICAgICAgID0gNTtcbmV4cG9ydCBjb25zdCBTRVQgICAgICAgID0gNjtcbmV4cG9ydCBjb25zdCBFUlJPUiAgICAgID0gNztcbmV4cG9ydCBjb25zdCBCSUdJTlQgICAgID0gODtcbi8vIGV4cG9ydCBjb25zdCBTWU1CT0wgPSA5O1xuIl0sIm5hbWVzIjpbIlZPSUQiLCJQUklNSVRJVkUiLCJBUlJBWSIsIk9CSkVDVCIsIkRBVEUiLCJSRUdFWFAiLCJNQVAiLCJTRVQiLCJFUlJPUiIsIkJJR0lOVCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/@ungap/structured-clone/esm/types.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/bail/index.js":
-/*!****************************************!*\
- !*** ../../node_modules/bail/index.js ***!
- \****************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bail: () => (/* binding */ bail)\n/* harmony export */ });\n/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */ function bail(error) {\n if (error) {\n throw error;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2JhaWwvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Q0FNQyxHQUNNLFNBQVNBLEtBQUtDLEtBQUs7SUFDeEIsSUFBSUEsT0FBTztRQUNULE1BQU1BO0lBQ1I7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2JhaWwvaW5kZXguanM/MDhjNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRocm93IGEgZ2l2ZW4gZXJyb3IuXG4gKlxuICogQHBhcmFtIHtFcnJvcnxudWxsfHVuZGVmaW5lZH0gW2Vycm9yXVxuICogICBNYXliZSBlcnJvci5cbiAqIEByZXR1cm5zIHthc3NlcnRzIGVycm9yIGlzIG51bGx8dW5kZWZpbmVkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmFpbChlcnJvcikge1xuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiYmFpbCIsImVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/bail/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/ccount/index.js":
-/*!******************************************!*\
- !*** ../../node_modules/ccount/index.js ***!
- \******************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ccount: () => (/* binding */ ccount)\n/* harmony export */ });\n/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */ function ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while(index !== -1){\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2Njb3VudC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7OztDQVNDLEdBQ00sU0FBU0EsT0FBT0MsS0FBSyxFQUFFQyxTQUFTO0lBQ3JDLE1BQU1DLFNBQVNDLE9BQU9IO0lBRXRCLElBQUksT0FBT0MsY0FBYyxVQUFVO1FBQ2pDLE1BQU0sSUFBSUcsVUFBVTtJQUN0QjtJQUVBLElBQUlDLFFBQVE7SUFDWixJQUFJQyxRQUFRSixPQUFPSyxPQUFPLENBQUNOO0lBRTNCLE1BQU9LLFVBQVUsQ0FBQyxFQUFHO1FBQ25CRDtRQUNBQyxRQUFRSixPQUFPSyxPQUFPLENBQUNOLFdBQVdLLFFBQVFMLFVBQVVPLE1BQU07SUFDNUQ7SUFFQSxPQUFPSDtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvY2NvdW50L2luZGV4LmpzPzNmMWYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3VudCBob3cgb2Z0ZW4gYSBjaGFyYWN0ZXIgKG9yIHN1YnN0cmluZykgaXMgdXNlZCBpbiBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gc2VhcmNoIGluLlxuICogQHBhcmFtIHtzdHJpbmd9IGNoYXJhY3RlclxuICogICBDaGFyYWN0ZXIgKG9yIHN1YnN0cmluZykgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKiAgIE51bWJlciBvZiB0aW1lcyBgY2hhcmFjdGVyYCBvY2N1cnJlZCBpbiBgdmFsdWVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2NvdW50KHZhbHVlLCBjaGFyYWN0ZXIpIHtcbiAgY29uc3Qgc291cmNlID0gU3RyaW5nKHZhbHVlKVxuXG4gIGlmICh0eXBlb2YgY2hhcmFjdGVyICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGNoYXJhY3RlcicpXG4gIH1cblxuICBsZXQgY291bnQgPSAwXG4gIGxldCBpbmRleCA9IHNvdXJjZS5pbmRleE9mKGNoYXJhY3RlcilcblxuICB3aGlsZSAoaW5kZXggIT09IC0xKSB7XG4gICAgY291bnQrK1xuICAgIGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyLCBpbmRleCArIGNoYXJhY3Rlci5sZW5ndGgpXG4gIH1cblxuICByZXR1cm4gY291bnRcbn1cbiJdLCJuYW1lcyI6WyJjY291bnQiLCJ2YWx1ZSIsImNoYXJhY3RlciIsInNvdXJjZSIsIlN0cmluZyIsIlR5cGVFcnJvciIsImNvdW50IiwiaW5kZXgiLCJpbmRleE9mIiwibGVuZ3RoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/ccount/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/character-entities/index.js":
-/*!******************************************************!*\
- !*** ../../node_modules/character-entities/index.js ***!
- \******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ characterEntities: () => (/* binding */ characterEntities)\n/* harmony export */ });\n/**\n * Map of named character references.\n *\n * @type {Record<string, string>}\n */ const characterEntities = {\n AElig: \"\\xc6\",\n AMP: \"&\",\n Aacute: \"\\xc1\",\n Abreve: \"Ă\",\n Acirc: \"\\xc2\",\n Acy: \"А\",\n Afr: \"\\uD835\\uDD04\",\n Agrave: \"\\xc0\",\n Alpha: \"Α\",\n Amacr: \"Ā\",\n And: \"⩓\",\n Aogon: \"Ą\",\n Aopf: \"\\uD835\\uDD38\",\n ApplyFunction: \"⁡\",\n Aring: \"\\xc5\",\n Ascr: \"\\uD835\\uDC9C\",\n Assign: \"≔\",\n Atilde: \"\\xc3\",\n Auml: \"\\xc4\",\n Backslash: \"∖\",\n Barv: \"⫧\",\n Barwed: \"⌆\",\n Bcy: \"Б\",\n Because: \"∵\",\n Bernoullis: \"ℬ\",\n Beta: \"Β\",\n Bfr: \"\\uD835\\uDD05\",\n Bopf: \"\\uD835\\uDD39\",\n Breve: \"˘\",\n Bscr: \"ℬ\",\n Bumpeq: \"≎\",\n CHcy: \"Ч\",\n COPY: \"\\xa9\",\n Cacute: \"Ć\",\n Cap: \"⋒\",\n CapitalDifferentialD: \"ⅅ\",\n Cayleys: \"ℭ\",\n Ccaron: \"Č\",\n Ccedil: \"\\xc7\",\n Ccirc: \"Ĉ\",\n Cconint: \"∰\",\n Cdot: \"Ċ\",\n Cedilla: \"\\xb8\",\n CenterDot: \"\\xb7\",\n Cfr: \"ℭ\",\n Chi: \"Χ\",\n CircleDot: \"⊙\",\n CircleMinus: \"⊖\",\n CirclePlus: \"⊕\",\n CircleTimes: \"⊗\",\n ClockwiseContourIntegral: \"∲\",\n CloseCurlyDoubleQuote: \"”\",\n CloseCurlyQuote: \"’\",\n Colon: \"∷\",\n Colone: \"⩴\",\n Congruent: \"≡\",\n Conint: \"∯\",\n ContourIntegral: \"∮\",\n Copf: \"ℂ\",\n Coproduct: \"∐\",\n CounterClockwiseContourIntegral: \"∳\",\n Cross: \"⨯\",\n Cscr: \"\\uD835\\uDC9E\",\n Cup: \"⋓\",\n CupCap: \"≍\",\n DD: \"ⅅ\",\n DDotrahd: \"⤑\",\n DJcy: \"Ђ\",\n DScy: \"Ѕ\",\n DZcy: \"Џ\",\n Dagger: \"‡\",\n Darr: \"↡\",\n Dashv: \"⫤\",\n Dcaron: \"Ď\",\n Dcy: \"Д\",\n Del: \"∇\",\n Delta: \"Δ\",\n Dfr: \"\\uD835\\uDD07\",\n DiacriticalAcute: \"\\xb4\",\n DiacriticalDot: \"˙\",\n DiacriticalDoubleAcute: \"˝\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"˜\",\n Diamond: \"⋄\",\n DifferentialD: \"ⅆ\",\n Dopf: \"\\uD835\\uDD3B\",\n Dot: \"\\xa8\",\n DotDot: \"⃜\",\n DotEqual: \"≐\",\n DoubleContourIntegral: \"∯\",\n DoubleDot: \"\\xa8\",\n DoubleDownArrow: \"⇓\",\n DoubleLeftArrow: \"⇐\",\n DoubleLeftRightArrow: \"⇔\",\n DoubleLeftTee: \"⫤\",\n DoubleLongLeftArrow: \"⟸\",\n DoubleLongLeftRightArrow: \"⟺\",\n DoubleLongRightArrow: \"⟹\",\n DoubleRightArrow: \"⇒\",\n DoubleRightTee: \"⊨\",\n DoubleUpArrow: \"⇑\",\n DoubleUpDownArrow: \"⇕\",\n DoubleVerticalBar: \"∥\",\n DownArrow: \"↓\",\n DownArrowBar: \"⤓\",\n DownArrowUpArrow: \"⇵\",\n DownBreve: \"̑\",\n DownLeftRightVector: \"⥐\",\n DownLeftTeeVector: \"⥞\",\n DownLeftVector: \"↽\",\n DownLeftVectorBar: \"⥖\",\n DownRightTeeVector: \"⥟\",\n DownRightVector: \"⇁\",\n DownRightVectorBar: \"⥗\",\n DownTee: \"⊤\",\n DownTeeArrow: \"↧\",\n Downarrow: \"⇓\",\n Dscr: \"\\uD835\\uDC9F\",\n Dstrok: \"Đ\",\n ENG: \"Ŋ\",\n ETH: \"\\xd0\",\n Eacute: \"\\xc9\",\n Ecaron: \"Ě\",\n Ecirc: \"\\xca\",\n Ecy: \"Э\",\n Edot: \"Ė\",\n Efr: \"\\uD835\\uDD08\",\n Egrave: \"\\xc8\",\n Element: \"∈\",\n Emacr: \"Ē\",\n EmptySmallSquare: \"◻\",\n EmptyVerySmallSquare: \"▫\",\n Eogon: \"Ę\",\n Eopf: \"\\uD835\\uDD3C\",\n Epsilon: \"Ε\",\n Equal: \"⩵\",\n EqualTilde: \"≂\",\n Equilibrium: \"⇌\",\n Escr: \"ℰ\",\n Esim: \"⩳\",\n Eta: \"Η\",\n Euml: \"\\xcb\",\n Exists: \"∃\",\n ExponentialE: \"ⅇ\",\n Fcy: \"Ф\",\n Ffr: \"\\uD835\\uDD09\",\n FilledSmallSquare: \"◼\",\n FilledVerySmallSquare: \"▪\",\n Fopf: \"\\uD835\\uDD3D\",\n ForAll: \"∀\",\n Fouriertrf: \"ℱ\",\n Fscr: \"ℱ\",\n GJcy: \"Ѓ\",\n GT: \">\",\n Gamma: \"Γ\",\n Gammad: \"Ϝ\",\n Gbreve: \"Ğ\",\n Gcedil: \"Ģ\",\n Gcirc: \"Ĝ\",\n Gcy: \"Г\",\n Gdot: \"Ġ\",\n Gfr: \"\\uD835\\uDD0A\",\n Gg: \"⋙\",\n Gopf: \"\\uD835\\uDD3E\",\n GreaterEqual: \"≥\",\n GreaterEqualLess: \"⋛\",\n GreaterFullEqual: \"≧\",\n GreaterGreater: \"⪢\",\n GreaterLess: \"≷\",\n GreaterSlantEqual: \"⩾\",\n GreaterTilde: \"≳\",\n Gscr: \"\\uD835\\uDCA2\",\n Gt: \"≫\",\n HARDcy: \"Ъ\",\n Hacek: \"ˇ\",\n Hat: \"^\",\n Hcirc: \"Ĥ\",\n Hfr: \"ℌ\",\n HilbertSpace: \"ℋ\",\n Hopf: \"ℍ\",\n HorizontalLine: \"─\",\n Hscr: \"ℋ\",\n Hstrok: \"Ħ\",\n HumpDownHump: \"≎\",\n HumpEqual: \"≏\",\n IEcy: \"Е\",\n IJlig: \"IJ\",\n IOcy: \"Ё\",\n Iacute: \"\\xcd\",\n Icirc: \"\\xce\",\n Icy: \"И\",\n Idot: \"İ\",\n Ifr: \"ℑ\",\n Igrave: \"\\xcc\",\n Im: \"ℑ\",\n Imacr: \"Ī\",\n ImaginaryI: \"ⅈ\",\n Implies: \"⇒\",\n Int: \"∬\",\n Integral: \"∫\",\n Intersection: \"⋂\",\n InvisibleComma: \"⁣\",\n InvisibleTimes: \"⁢\",\n Iogon: \"Į\",\n Iopf: \"\\uD835\\uDD40\",\n Iota: \"Ι\",\n Iscr: \"ℐ\",\n Itilde: \"Ĩ\",\n Iukcy: \"І\",\n Iuml: \"\\xcf\",\n Jcirc: \"Ĵ\",\n Jcy: \"Й\",\n Jfr: \"\\uD835\\uDD0D\",\n Jopf: \"\\uD835\\uDD41\",\n Jscr: \"\\uD835\\uDCA5\",\n Jsercy: \"Ј\",\n Jukcy: \"Є\",\n KHcy: \"Х\",\n KJcy: \"Ќ\",\n Kappa: \"Κ\",\n Kcedil: \"Ķ\",\n Kcy: \"К\",\n Kfr: \"\\uD835\\uDD0E\",\n Kopf: \"\\uD835\\uDD42\",\n Kscr: \"\\uD835\\uDCA6\",\n LJcy: \"Љ\",\n LT: \"<\",\n Lacute: \"Ĺ\",\n Lambda: \"Λ\",\n Lang: \"⟪\",\n Laplacetrf: \"ℒ\",\n Larr: \"↞\",\n Lcaron: \"Ľ\",\n Lcedil: \"Ļ\",\n Lcy: \"Л\",\n LeftAngleBracket: \"⟨\",\n LeftArrow: \"←\",\n LeftArrowBar: \"⇤\",\n LeftArrowRightArrow: \"⇆\",\n LeftCeiling: \"⌈\",\n LeftDoubleBracket: \"⟦\",\n LeftDownTeeVector: \"⥡\",\n LeftDownVector: \"⇃\",\n LeftDownVectorBar: \"⥙\",\n LeftFloor: \"⌊\",\n LeftRightArrow: \"↔\",\n LeftRightVector: \"⥎\",\n LeftTee: \"⊣\",\n LeftTeeArrow: \"↤\",\n LeftTeeVector: \"⥚\",\n LeftTriangle: \"⊲\",\n LeftTriangleBar: \"⧏\",\n LeftTriangleEqual: \"⊴\",\n LeftUpDownVector: \"⥑\",\n LeftUpTeeVector: \"⥠\",\n LeftUpVector: \"↿\",\n LeftUpVectorBar: \"⥘\",\n LeftVector: \"↼\",\n LeftVectorBar: \"⥒\",\n Leftarrow: \"⇐\",\n Leftrightarrow: \"⇔\",\n LessEqualGreater: \"⋚\",\n LessFullEqual: \"≦\",\n LessGreater: \"≶\",\n LessLess: \"⪡\",\n LessSlantEqual: \"⩽\",\n LessTilde: \"≲\",\n Lfr: \"\\uD835\\uDD0F\",\n Ll: \"⋘\",\n Lleftarrow: \"⇚\",\n Lmidot: \"Ŀ\",\n LongLeftArrow: \"⟵\",\n LongLeftRightArrow: \"⟷\",\n LongRightArrow: \"⟶\",\n Longleftarrow: \"⟸\",\n Longleftrightarrow: \"⟺\",\n Longrightarrow: \"⟹\",\n Lopf: \"\\uD835\\uDD43\",\n LowerLeftArrow: \"↙\",\n LowerRightArrow: \"↘\",\n Lscr: \"ℒ\",\n Lsh: \"↰\",\n Lstrok: \"Ł\",\n Lt: \"≪\",\n Map: \"⤅\",\n Mcy: \"М\",\n MediumSpace: \" \",\n Mellintrf: \"ℳ\",\n Mfr: \"\\uD835\\uDD10\",\n MinusPlus: \"∓\",\n Mopf: \"\\uD835\\uDD44\",\n Mscr: \"ℳ\",\n Mu: \"Μ\",\n NJcy: \"Њ\",\n Nacute: \"Ń\",\n Ncaron: \"Ň\",\n Ncedil: \"Ņ\",\n Ncy: \"Н\",\n NegativeMediumSpace: \"​\",\n NegativeThickSpace: \"​\",\n NegativeThinSpace: \"​\",\n NegativeVeryThinSpace: \"​\",\n NestedGreaterGreater: \"≫\",\n NestedLessLess: \"≪\",\n NewLine: \"\\n\",\n Nfr: \"\\uD835\\uDD11\",\n NoBreak: \"⁠\",\n NonBreakingSpace: \"\\xa0\",\n Nopf: \"ℕ\",\n Not: \"⫬\",\n NotCongruent: \"≢\",\n NotCupCap: \"≭\",\n NotDoubleVerticalBar: \"∦\",\n NotElement: \"∉\",\n NotEqual: \"≠\",\n NotEqualTilde: \"≂̸\",\n NotExists: \"∄\",\n NotGreater: \"≯\",\n NotGreaterEqual: \"≱\",\n NotGreaterFullEqual: \"≧̸\",\n NotGreaterGreater: \"≫̸\",\n NotGreaterLess: \"≹\",\n NotGreaterSlantEqual: \"⩾̸\",\n NotGreaterTilde: \"≵\",\n NotHumpDownHump: \"≎̸\",\n NotHumpEqual: \"≏̸\",\n NotLeftTriangle: \"⋪\",\n NotLeftTriangleBar: \"⧏̸\",\n NotLeftTriangleEqual: \"⋬\",\n NotLess: \"≮\",\n NotLessEqual: \"≰\",\n NotLessGreater: \"≸\",\n NotLessLess: \"≪̸\",\n NotLessSlantEqual: \"⩽̸\",\n NotLessTilde: \"≴\",\n NotNestedGreaterGreater: \"⪢̸\",\n NotNestedLessLess: \"⪡̸\",\n NotPrecedes: \"⊀\",\n NotPrecedesEqual: \"⪯̸\",\n NotPrecedesSlantEqual: \"⋠\",\n NotReverseElement: \"∌\",\n NotRightTriangle: \"⋫\",\n NotRightTriangleBar: \"⧐̸\",\n NotRightTriangleEqual: \"⋭\",\n NotSquareSubset: \"⊏̸\",\n NotSquareSubsetEqual: \"⋢\",\n NotSquareSuperset: \"⊐̸\",\n NotSquareSupersetEqual: \"⋣\",\n NotSubset: \"⊂⃒\",\n NotSubsetEqual: \"⊈\",\n NotSucceeds: \"⊁\",\n NotSucceedsEqual: \"⪰̸\",\n NotSucceedsSlantEqual: \"⋡\",\n NotSucceedsTilde: \"≿̸\",\n NotSuperset: \"⊃⃒\",\n NotSupersetEqual: \"⊉\",\n NotTilde: \"≁\",\n NotTildeEqual: \"≄\",\n NotTildeFullEqual: \"≇\",\n NotTildeTilde: \"≉\",\n NotVerticalBar: \"∤\",\n Nscr: \"\\uD835\\uDCA9\",\n Ntilde: \"\\xd1\",\n Nu: \"Ν\",\n OElig: \"Œ\",\n Oacute: \"\\xd3\",\n Ocirc: \"\\xd4\",\n Ocy: \"О\",\n Odblac: \"Ő\",\n Ofr: \"\\uD835\\uDD12\",\n Ograve: \"\\xd2\",\n Omacr: \"Ō\",\n Omega: \"Ω\",\n Omicron: \"Ο\",\n Oopf: \"\\uD835\\uDD46\",\n OpenCurlyDoubleQuote: \"“\",\n OpenCurlyQuote: \"‘\",\n Or: \"⩔\",\n Oscr: \"\\uD835\\uDCAA\",\n Oslash: \"\\xd8\",\n Otilde: \"\\xd5\",\n Otimes: \"⨷\",\n Ouml: \"\\xd6\",\n OverBar: \"‾\",\n OverBrace: \"⏞\",\n OverBracket: \"⎴\",\n OverParenthesis: \"⏜\",\n PartialD: \"∂\",\n Pcy: \"П\",\n Pfr: \"\\uD835\\uDD13\",\n Phi: \"Φ\",\n Pi: \"Π\",\n PlusMinus: \"\\xb1\",\n Poincareplane: \"ℌ\",\n Popf: \"ℙ\",\n Pr: \"⪻\",\n Precedes: \"≺\",\n PrecedesEqual: \"⪯\",\n PrecedesSlantEqual: \"≼\",\n PrecedesTilde: \"≾\",\n Prime: \"″\",\n Product: \"∏\",\n Proportion: \"∷\",\n Proportional: \"∝\",\n Pscr: \"\\uD835\\uDCAB\",\n Psi: \"Ψ\",\n QUOT: '\"',\n Qfr: \"\\uD835\\uDD14\",\n Qopf: \"ℚ\",\n Qscr: \"\\uD835\\uDCAC\",\n RBarr: \"⤐\",\n REG: \"\\xae\",\n Racute: \"Ŕ\",\n Rang: \"⟫\",\n Rarr: \"↠\",\n Rarrtl: \"⤖\",\n Rcaron: \"Ř\",\n Rcedil: \"Ŗ\",\n Rcy: \"Р\",\n Re: \"ℜ\",\n ReverseElement: \"∋\",\n ReverseEquilibrium: \"⇋\",\n ReverseUpEquilibrium: \"⥯\",\n Rfr: \"ℜ\",\n Rho: \"Ρ\",\n RightAngleBracket: \"⟩\",\n RightArrow: \"→\",\n RightArrowBar: \"⇥\",\n RightArrowLeftArrow: \"⇄\",\n RightCeiling: \"⌉\",\n RightDoubleBracket: \"⟧\",\n RightDownTeeVector: \"⥝\",\n RightDownVector: \"⇂\",\n RightDownVectorBar: \"⥕\",\n RightFloor: \"⌋\",\n RightTee: \"⊢\",\n RightTeeArrow: \"↦\",\n RightTeeVector: \"⥛\",\n RightTriangle: \"⊳\",\n RightTriangleBar: \"⧐\",\n RightTriangleEqual: \"⊵\",\n RightUpDownVector: \"⥏\",\n RightUpTeeVector: \"⥜\",\n RightUpVector: \"↾\",\n RightUpVectorBar: \"⥔\",\n RightVector: \"⇀\",\n RightVectorBar: \"⥓\",\n Rightarrow: \"⇒\",\n Ropf: \"ℝ\",\n RoundImplies: \"⥰\",\n Rrightarrow: \"⇛\",\n Rscr: \"ℛ\",\n Rsh: \"↱\",\n RuleDelayed: \"⧴\",\n SHCHcy: \"Щ\",\n SHcy: \"Ш\",\n SOFTcy: \"Ь\",\n Sacute: \"Ś\",\n Sc: \"⪼\",\n Scaron: \"Š\",\n Scedil: \"Ş\",\n Scirc: \"Ŝ\",\n Scy: \"С\",\n Sfr: \"\\uD835\\uDD16\",\n ShortDownArrow: \"↓\",\n ShortLeftArrow: \"←\",\n ShortRightArrow: \"→\",\n ShortUpArrow: \"↑\",\n Sigma: \"Σ\",\n SmallCircle: \"∘\",\n Sopf: \"\\uD835\\uDD4A\",\n Sqrt: \"√\",\n Square: \"□\",\n SquareIntersection: \"⊓\",\n SquareSubset: \"⊏\",\n SquareSubsetEqual: \"⊑\",\n SquareSuperset: \"⊐\",\n SquareSupersetEqual: \"⊒\",\n SquareUnion: \"⊔\",\n Sscr: \"\\uD835\\uDCAE\",\n Star: \"⋆\",\n Sub: \"⋐\",\n Subset: \"⋐\",\n SubsetEqual: \"⊆\",\n Succeeds: \"≻\",\n SucceedsEqual: \"⪰\",\n SucceedsSlantEqual: \"≽\",\n SucceedsTilde: \"≿\",\n SuchThat: \"∋\",\n Sum: \"∑\",\n Sup: \"⋑\",\n Superset: \"⊃\",\n SupersetEqual: \"⊇\",\n Supset: \"⋑\",\n THORN: \"\\xde\",\n TRADE: \"™\",\n TSHcy: \"Ћ\",\n TScy: \"Ц\",\n Tab: \"\t\",\n Tau: \"Τ\",\n Tcaron: \"Ť\",\n Tcedil: \"Ţ\",\n Tcy: \"Т\",\n Tfr: \"\\uD835\\uDD17\",\n Therefore: \"∴\",\n Theta: \"Θ\",\n ThickSpace: \"  \",\n ThinSpace: \" \",\n Tilde: \"∼\",\n TildeEqual: \"≃\",\n TildeFullEqual: \"≅\",\n TildeTilde: \"≈\",\n Topf: \"\\uD835\\uDD4B\",\n TripleDot: \"⃛\",\n Tscr: \"\\uD835\\uDCAF\",\n Tstrok: \"Ŧ\",\n Uacute: \"\\xda\",\n Uarr: \"↟\",\n Uarrocir: \"⥉\",\n Ubrcy: \"Ў\",\n Ubreve: \"Ŭ\",\n Ucirc: \"\\xdb\",\n Ucy: \"У\",\n Udblac: \"Ű\",\n Ufr: \"\\uD835\\uDD18\",\n Ugrave: \"\\xd9\",\n Umacr: \"Ū\",\n UnderBar: \"_\",\n UnderBrace: \"⏟\",\n UnderBracket: \"⎵\",\n UnderParenthesis: \"⏝\",\n Union: \"⋃\",\n UnionPlus: \"⊎\",\n Uogon: \"Ų\",\n Uopf: \"\\uD835\\uDD4C\",\n UpArrow: \"↑\",\n UpArrowBar: \"⤒\",\n UpArrowDownArrow: \"⇅\",\n UpDownArrow: \"↕\",\n UpEquilibrium: \"⥮\",\n UpTee: \"⊥\",\n UpTeeArrow: \"↥\",\n Uparrow: \"⇑\",\n Updownarrow: \"⇕\",\n UpperLeftArrow: \"↖\",\n UpperRightArrow: \"↗\",\n Upsi: \"ϒ\",\n Upsilon: \"Υ\",\n Uring: \"Ů\",\n Uscr: \"\\uD835\\uDCB0\",\n Utilde: \"Ũ\",\n Uuml: \"\\xdc\",\n VDash: \"⊫\",\n Vbar: \"⫫\",\n Vcy: \"В\",\n Vdash: \"⊩\",\n Vdashl: \"⫦\",\n Vee: \"⋁\",\n Verbar: \"‖\",\n Vert: \"‖\",\n VerticalBar: \"∣\",\n VerticalLine: \"|\",\n VerticalSeparator: \"❘\",\n VerticalTilde: \"≀\",\n VeryThinSpace: \" \",\n Vfr: \"\\uD835\\uDD19\",\n Vopf: \"\\uD835\\uDD4D\",\n Vscr: \"\\uD835\\uDCB1\",\n Vvdash: \"⊪\",\n Wcirc: \"Ŵ\",\n Wedge: \"⋀\",\n Wfr: \"\\uD835\\uDD1A\",\n Wopf: \"\\uD835\\uDD4E\",\n Wscr: \"\\uD835\\uDCB2\",\n Xfr: \"\\uD835\\uDD1B\",\n Xi: \"Ξ\",\n Xopf: \"\\uD835\\uDD4F\",\n Xscr: \"\\uD835\\uDCB3\",\n YAcy: \"Я\",\n YIcy: \"Ї\",\n YUcy: \"Ю\",\n Yacute: \"\\xdd\",\n Ycirc: \"Ŷ\",\n Ycy: \"Ы\",\n Yfr: \"\\uD835\\uDD1C\",\n Yopf: \"\\uD835\\uDD50\",\n Yscr: \"\\uD835\\uDCB4\",\n Yuml: \"Ÿ\",\n ZHcy: \"Ж\",\n Zacute: \"Ź\",\n Zcaron: \"Ž\",\n Zcy: \"З\",\n Zdot: \"Ż\",\n ZeroWidthSpace: \"​\",\n Zeta: \"Ζ\",\n Zfr: \"ℨ\",\n Zopf: \"ℤ\",\n Zscr: \"\\uD835\\uDCB5\",\n aacute: \"\\xe1\",\n abreve: \"ă\",\n ac: \"∾\",\n acE: \"∾̳\",\n acd: \"∿\",\n acirc: \"\\xe2\",\n acute: \"\\xb4\",\n acy: \"а\",\n aelig: \"\\xe6\",\n af: \"⁡\",\n afr: \"\\uD835\\uDD1E\",\n agrave: \"\\xe0\",\n alefsym: \"ℵ\",\n aleph: \"ℵ\",\n alpha: \"α\",\n amacr: \"ā\",\n amalg: \"⨿\",\n amp: \"&\",\n and: \"∧\",\n andand: \"⩕\",\n andd: \"⩜\",\n andslope: \"⩘\",\n andv: \"⩚\",\n ang: \"∠\",\n ange: \"⦤\",\n angle: \"∠\",\n angmsd: \"∡\",\n angmsdaa: \"⦨\",\n angmsdab: \"⦩\",\n angmsdac: \"⦪\",\n angmsdad: \"⦫\",\n angmsdae: \"⦬\",\n angmsdaf: \"⦭\",\n angmsdag: \"⦮\",\n angmsdah: \"⦯\",\n angrt: \"∟\",\n angrtvb: \"⊾\",\n angrtvbd: \"⦝\",\n angsph: \"∢\",\n angst: \"\\xc5\",\n angzarr: \"⍼\",\n aogon: \"ą\",\n aopf: \"\\uD835\\uDD52\",\n ap: \"≈\",\n apE: \"⩰\",\n apacir: \"⩯\",\n ape: \"≊\",\n apid: \"≋\",\n apos: \"'\",\n approx: \"≈\",\n approxeq: \"≊\",\n aring: \"\\xe5\",\n ascr: \"\\uD835\\uDCB6\",\n ast: \"*\",\n asymp: \"≈\",\n asympeq: \"≍\",\n atilde: \"\\xe3\",\n auml: \"\\xe4\",\n awconint: \"∳\",\n awint: \"⨑\",\n bNot: \"⫭\",\n backcong: \"≌\",\n backepsilon: \"϶\",\n backprime: \"‵\",\n backsim: \"∽\",\n backsimeq: \"⋍\",\n barvee: \"⊽\",\n barwed: \"⌅\",\n barwedge: \"⌅\",\n bbrk: \"⎵\",\n bbrktbrk: \"⎶\",\n bcong: \"≌\",\n bcy: \"б\",\n bdquo: \"„\",\n becaus: \"∵\",\n because: \"∵\",\n bemptyv: \"⦰\",\n bepsi: \"϶\",\n bernou: \"ℬ\",\n beta: \"β\",\n beth: \"ℶ\",\n between: \"≬\",\n bfr: \"\\uD835\\uDD1F\",\n bigcap: \"⋂\",\n bigcirc: \"◯\",\n bigcup: \"⋃\",\n bigodot: \"⨀\",\n bigoplus: \"⨁\",\n bigotimes: \"⨂\",\n bigsqcup: \"⨆\",\n bigstar: \"★\",\n bigtriangledown: \"▽\",\n bigtriangleup: \"△\",\n biguplus: \"⨄\",\n bigvee: \"⋁\",\n bigwedge: \"⋀\",\n bkarow: \"⤍\",\n blacklozenge: \"⧫\",\n blacksquare: \"▪\",\n blacktriangle: \"▴\",\n blacktriangledown: \"▾\",\n blacktriangleleft: \"◂\",\n blacktriangleright: \"▸\",\n blank: \"␣\",\n blk12: \"▒\",\n blk14: \"░\",\n blk34: \"▓\",\n block: \"█\",\n bne: \"=⃥\",\n bnequiv: \"≡⃥\",\n bnot: \"⌐\",\n bopf: \"\\uD835\\uDD53\",\n bot: \"⊥\",\n bottom: \"⊥\",\n bowtie: \"⋈\",\n boxDL: \"╗\",\n boxDR: \"╔\",\n boxDl: \"╖\",\n boxDr: \"╓\",\n boxH: \"═\",\n boxHD: \"╦\",\n boxHU: \"╩\",\n boxHd: \"╤\",\n boxHu: \"╧\",\n boxUL: \"╝\",\n boxUR: \"╚\",\n boxUl: \"╜\",\n boxUr: \"╙\",\n boxV: \"║\",\n boxVH: \"╬\",\n boxVL: \"╣\",\n boxVR: \"╠\",\n boxVh: \"╫\",\n boxVl: \"╢\",\n boxVr: \"╟\",\n boxbox: \"⧉\",\n boxdL: \"╕\",\n boxdR: \"╒\",\n boxdl: \"┐\",\n boxdr: \"┌\",\n boxh: \"─\",\n boxhD: \"╥\",\n boxhU: \"╨\",\n boxhd: \"┬\",\n boxhu: \"┴\",\n boxminus: \"⊟\",\n boxplus: \"⊞\",\n boxtimes: \"⊠\",\n boxuL: \"╛\",\n boxuR: \"╘\",\n boxul: \"┘\",\n boxur: \"└\",\n boxv: \"│\",\n boxvH: \"╪\",\n boxvL: \"╡\",\n boxvR: \"╞\",\n boxvh: \"┼\",\n boxvl: \"┤\",\n boxvr: \"├\",\n bprime: \"‵\",\n breve: \"˘\",\n brvbar: \"\\xa6\",\n bscr: \"\\uD835\\uDCB7\",\n bsemi: \"⁏\",\n bsim: \"∽\",\n bsime: \"⋍\",\n bsol: \"\\\\\",\n bsolb: \"⧅\",\n bsolhsub: \"⟈\",\n bull: \"•\",\n bullet: \"•\",\n bump: \"≎\",\n bumpE: \"⪮\",\n bumpe: \"≏\",\n bumpeq: \"≏\",\n cacute: \"ć\",\n cap: \"∩\",\n capand: \"⩄\",\n capbrcup: \"⩉\",\n capcap: \"⩋\",\n capcup: \"⩇\",\n capdot: \"⩀\",\n caps: \"∩︀\",\n caret: \"⁁\",\n caron: \"ˇ\",\n ccaps: \"⩍\",\n ccaron: \"č\",\n ccedil: \"\\xe7\",\n ccirc: \"ĉ\",\n ccups: \"⩌\",\n ccupssm: \"⩐\",\n cdot: \"ċ\",\n cedil: \"\\xb8\",\n cemptyv: \"⦲\",\n cent: \"\\xa2\",\n centerdot: \"\\xb7\",\n cfr: \"\\uD835\\uDD20\",\n chcy: \"ч\",\n check: \"✓\",\n checkmark: \"✓\",\n chi: \"χ\",\n cir: \"○\",\n cirE: \"⧃\",\n circ: \"ˆ\",\n circeq: \"≗\",\n circlearrowleft: \"↺\",\n circlearrowright: \"↻\",\n circledR: \"\\xae\",\n circledS: \"Ⓢ\",\n circledast: \"⊛\",\n circledcirc: \"⊚\",\n circleddash: \"⊝\",\n cire: \"≗\",\n cirfnint: \"⨐\",\n cirmid: \"⫯\",\n cirscir: \"⧂\",\n clubs: \"♣\",\n clubsuit: \"♣\",\n colon: \":\",\n colone: \"≔\",\n coloneq: \"≔\",\n comma: \",\",\n commat: \"@\",\n comp: \"∁\",\n compfn: \"∘\",\n complement: \"∁\",\n complexes: \"ℂ\",\n cong: \"≅\",\n congdot: \"⩭\",\n conint: \"∮\",\n copf: \"\\uD835\\uDD54\",\n coprod: \"∐\",\n copy: \"\\xa9\",\n copysr: \"℗\",\n crarr: \"↵\",\n cross: \"✗\",\n cscr: \"\\uD835\\uDCB8\",\n csub: \"⫏\",\n csube: \"⫑\",\n csup: \"⫐\",\n csupe: \"⫒\",\n ctdot: \"⋯\",\n cudarrl: \"⤸\",\n cudarrr: \"⤵\",\n cuepr: \"⋞\",\n cuesc: \"⋟\",\n cularr: \"↶\",\n cularrp: \"⤽\",\n cup: \"∪\",\n cupbrcap: \"⩈\",\n cupcap: \"⩆\",\n cupcup: \"⩊\",\n cupdot: \"⊍\",\n cupor: \"⩅\",\n cups: \"∪︀\",\n curarr: \"↷\",\n curarrm: \"⤼\",\n curlyeqprec: \"⋞\",\n curlyeqsucc: \"⋟\",\n curlyvee: \"⋎\",\n curlywedge: \"⋏\",\n curren: \"\\xa4\",\n curvearrowleft: \"↶\",\n curvearrowright: \"↷\",\n cuvee: \"⋎\",\n cuwed: \"⋏\",\n cwconint: \"∲\",\n cwint: \"∱\",\n cylcty: \"⌭\",\n dArr: \"⇓\",\n dHar: \"⥥\",\n dagger: \"†\",\n daleth: \"ℸ\",\n darr: \"↓\",\n dash: \"‐\",\n dashv: \"⊣\",\n dbkarow: \"⤏\",\n dblac: \"˝\",\n dcaron: \"ď\",\n dcy: \"д\",\n dd: \"ⅆ\",\n ddagger: \"‡\",\n ddarr: \"⇊\",\n ddotseq: \"⩷\",\n deg: \"\\xb0\",\n delta: \"δ\",\n demptyv: \"⦱\",\n dfisht: \"⥿\",\n dfr: \"\\uD835\\uDD21\",\n dharl: \"⇃\",\n dharr: \"⇂\",\n diam: \"⋄\",\n diamond: \"⋄\",\n diamondsuit: \"♦\",\n diams: \"♦\",\n die: \"\\xa8\",\n digamma: \"ϝ\",\n disin: \"⋲\",\n div: \"\\xf7\",\n divide: \"\\xf7\",\n divideontimes: \"⋇\",\n divonx: \"⋇\",\n djcy: \"ђ\",\n dlcorn: \"⌞\",\n dlcrop: \"⌍\",\n dollar: \"$\",\n dopf: \"\\uD835\\uDD55\",\n dot: \"˙\",\n doteq: \"≐\",\n doteqdot: \"≑\",\n dotminus: \"∸\",\n dotplus: \"∔\",\n dotsquare: \"⊡\",\n doublebarwedge: \"⌆\",\n downarrow: \"↓\",\n downdownarrows: \"⇊\",\n downharpoonleft: \"⇃\",\n downharpoonright: \"⇂\",\n drbkarow: \"⤐\",\n drcorn: \"⌟\",\n drcrop: \"⌌\",\n dscr: \"\\uD835\\uDCB9\",\n dscy: \"ѕ\",\n dsol: \"⧶\",\n dstrok: \"đ\",\n dtdot: \"⋱\",\n dtri: \"▿\",\n dtrif: \"▾\",\n duarr: \"⇵\",\n duhar: \"⥯\",\n dwangle: \"⦦\",\n dzcy: \"џ\",\n dzigrarr: \"⟿\",\n eDDot: \"⩷\",\n eDot: \"≑\",\n eacute: \"\\xe9\",\n easter: \"⩮\",\n ecaron: \"ě\",\n ecir: \"≖\",\n ecirc: \"\\xea\",\n ecolon: \"≕\",\n ecy: \"э\",\n edot: \"ė\",\n ee: \"ⅇ\",\n efDot: \"≒\",\n efr: \"\\uD835\\uDD22\",\n eg: \"⪚\",\n egrave: \"\\xe8\",\n egs: \"⪖\",\n egsdot: \"⪘\",\n el: \"⪙\",\n elinters: \"⏧\",\n ell: \"ℓ\",\n els: \"⪕\",\n elsdot: \"⪗\",\n emacr: \"ē\",\n empty: \"∅\",\n emptyset: \"∅\",\n emptyv: \"∅\",\n emsp13: \" \",\n emsp14: \" \",\n emsp: \" \",\n eng: \"ŋ\",\n ensp: \" \",\n eogon: \"ę\",\n eopf: \"\\uD835\\uDD56\",\n epar: \"⋕\",\n eparsl: \"⧣\",\n eplus: \"⩱\",\n epsi: \"ε\",\n epsilon: \"ε\",\n epsiv: \"ϵ\",\n eqcirc: \"≖\",\n eqcolon: \"≕\",\n eqsim: \"≂\",\n eqslantgtr: \"⪖\",\n eqslantless: \"⪕\",\n equals: \"=\",\n equest: \"≟\",\n equiv: \"≡\",\n equivDD: \"⩸\",\n eqvparsl: \"⧥\",\n erDot: \"≓\",\n erarr: \"⥱\",\n escr: \"ℯ\",\n esdot: \"≐\",\n esim: \"≂\",\n eta: \"η\",\n eth: \"\\xf0\",\n euml: \"\\xeb\",\n euro: \"€\",\n excl: \"!\",\n exist: \"∃\",\n expectation: \"ℰ\",\n exponentiale: \"ⅇ\",\n fallingdotseq: \"≒\",\n fcy: \"ф\",\n female: \"♀\",\n ffilig: \"ffi\",\n fflig: \"ff\",\n ffllig: \"ffl\",\n ffr: \"\\uD835\\uDD23\",\n filig: \"fi\",\n fjlig: \"fj\",\n flat: \"♭\",\n fllig: \"fl\",\n fltns: \"▱\",\n fnof: \"ƒ\",\n fopf: \"\\uD835\\uDD57\",\n forall: \"∀\",\n fork: \"⋔\",\n forkv: \"⫙\",\n fpartint: \"⨍\",\n frac12: \"\\xbd\",\n frac13: \"⅓\",\n frac14: \"\\xbc\",\n frac15: \"⅕\",\n frac16: \"⅙\",\n frac18: \"⅛\",\n frac23: \"⅔\",\n frac25: \"⅖\",\n frac34: \"\\xbe\",\n frac35: \"⅗\",\n frac38: \"⅜\",\n frac45: \"⅘\",\n frac56: \"⅚\",\n frac58: \"⅝\",\n frac78: \"⅞\",\n frasl: \"⁄\",\n frown: \"⌢\",\n fscr: \"\\uD835\\uDCBB\",\n gE: \"≧\",\n gEl: \"⪌\",\n gacute: \"ǵ\",\n gamma: \"γ\",\n gammad: \"ϝ\",\n gap: \"⪆\",\n gbreve: \"ğ\",\n gcirc: \"ĝ\",\n gcy: \"г\",\n gdot: \"ġ\",\n ge: \"≥\",\n gel: \"⋛\",\n geq: \"≥\",\n geqq: \"≧\",\n geqslant: \"⩾\",\n ges: \"⩾\",\n gescc: \"⪩\",\n gesdot: \"⪀\",\n gesdoto: \"⪂\",\n gesdotol: \"⪄\",\n gesl: \"⋛︀\",\n gesles: \"⪔\",\n gfr: \"\\uD835\\uDD24\",\n gg: \"≫\",\n ggg: \"⋙\",\n gimel: \"ℷ\",\n gjcy: \"ѓ\",\n gl: \"≷\",\n glE: \"⪒\",\n gla: \"⪥\",\n glj: \"⪤\",\n gnE: \"≩\",\n gnap: \"⪊\",\n gnapprox: \"⪊\",\n gne: \"⪈\",\n gneq: \"⪈\",\n gneqq: \"≩\",\n gnsim: \"⋧\",\n gopf: \"\\uD835\\uDD58\",\n grave: \"`\",\n gscr: \"ℊ\",\n gsim: \"≳\",\n gsime: \"⪎\",\n gsiml: \"⪐\",\n gt: \">\",\n gtcc: \"⪧\",\n gtcir: \"⩺\",\n gtdot: \"⋗\",\n gtlPar: \"⦕\",\n gtquest: \"⩼\",\n gtrapprox: \"⪆\",\n gtrarr: \"⥸\",\n gtrdot: \"⋗\",\n gtreqless: \"⋛\",\n gtreqqless: \"⪌\",\n gtrless: \"≷\",\n gtrsim: \"≳\",\n gvertneqq: \"≩︀\",\n gvnE: \"≩︀\",\n hArr: \"⇔\",\n hairsp: \" \",\n half: \"\\xbd\",\n hamilt: \"ℋ\",\n hardcy: \"ъ\",\n harr: \"↔\",\n harrcir: \"⥈\",\n harrw: \"↭\",\n hbar: \"ℏ\",\n hcirc: \"ĥ\",\n hearts: \"♥\",\n heartsuit: \"♥\",\n hellip: \"…\",\n hercon: \"⊹\",\n hfr: \"\\uD835\\uDD25\",\n hksearow: \"⤥\",\n hkswarow: \"⤦\",\n hoarr: \"⇿\",\n homtht: \"∻\",\n hookleftarrow: \"↩\",\n hookrightarrow: \"↪\",\n hopf: \"\\uD835\\uDD59\",\n horbar: \"―\",\n hscr: \"\\uD835\\uDCBD\",\n hslash: \"ℏ\",\n hstrok: \"ħ\",\n hybull: \"⁃\",\n hyphen: \"‐\",\n iacute: \"\\xed\",\n ic: \"⁣\",\n icirc: \"\\xee\",\n icy: \"и\",\n iecy: \"е\",\n iexcl: \"\\xa1\",\n iff: \"⇔\",\n ifr: \"\\uD835\\uDD26\",\n igrave: \"\\xec\",\n ii: \"ⅈ\",\n iiiint: \"⨌\",\n iiint: \"∭\",\n iinfin: \"⧜\",\n iiota: \"℩\",\n ijlig: \"ij\",\n imacr: \"ī\",\n image: \"ℑ\",\n imagline: \"ℐ\",\n imagpart: \"ℑ\",\n imath: \"ı\",\n imof: \"⊷\",\n imped: \"Ƶ\",\n in: \"∈\",\n incare: \"℅\",\n infin: \"∞\",\n infintie: \"⧝\",\n inodot: \"ı\",\n int: \"∫\",\n intcal: \"⊺\",\n integers: \"ℤ\",\n intercal: \"⊺\",\n intlarhk: \"⨗\",\n intprod: \"⨼\",\n iocy: \"ё\",\n iogon: \"į\",\n iopf: \"\\uD835\\uDD5A\",\n iota: \"ι\",\n iprod: \"⨼\",\n iquest: \"\\xbf\",\n iscr: \"\\uD835\\uDCBE\",\n isin: \"∈\",\n isinE: \"⋹\",\n isindot: \"⋵\",\n isins: \"⋴\",\n isinsv: \"⋳\",\n isinv: \"∈\",\n it: \"⁢\",\n itilde: \"ĩ\",\n iukcy: \"і\",\n iuml: \"\\xef\",\n jcirc: \"ĵ\",\n jcy: \"й\",\n jfr: \"\\uD835\\uDD27\",\n jmath: \"ȷ\",\n jopf: \"\\uD835\\uDD5B\",\n jscr: \"\\uD835\\uDCBF\",\n jsercy: \"ј\",\n jukcy: \"є\",\n kappa: \"κ\",\n kappav: \"ϰ\",\n kcedil: \"ķ\",\n kcy: \"к\",\n kfr: \"\\uD835\\uDD28\",\n kgreen: \"ĸ\",\n khcy: \"х\",\n kjcy: \"ќ\",\n kopf: \"\\uD835\\uDD5C\",\n kscr: \"\\uD835\\uDCC0\",\n lAarr: \"⇚\",\n lArr: \"⇐\",\n lAtail: \"⤛\",\n lBarr: \"⤎\",\n lE: \"≦\",\n lEg: \"⪋\",\n lHar: \"⥢\",\n lacute: \"ĺ\",\n laemptyv: \"⦴\",\n lagran: \"ℒ\",\n lambda: \"λ\",\n lang: \"⟨\",\n langd: \"⦑\",\n langle: \"⟨\",\n lap: \"⪅\",\n laquo: \"\\xab\",\n larr: \"←\",\n larrb: \"⇤\",\n larrbfs: \"⤟\",\n larrfs: \"⤝\",\n larrhk: \"↩\",\n larrlp: \"↫\",\n larrpl: \"⤹\",\n larrsim: \"⥳\",\n larrtl: \"↢\",\n lat: \"⪫\",\n latail: \"⤙\",\n late: \"⪭\",\n lates: \"⪭︀\",\n lbarr: \"⤌\",\n lbbrk: \"❲\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"⦋\",\n lbrksld: \"⦏\",\n lbrkslu: \"⦍\",\n lcaron: \"ľ\",\n lcedil: \"ļ\",\n lceil: \"⌈\",\n lcub: \"{\",\n lcy: \"л\",\n ldca: \"⤶\",\n ldquo: \"“\",\n ldquor: \"„\",\n ldrdhar: \"⥧\",\n ldrushar: \"⥋\",\n ldsh: \"↲\",\n le: \"≤\",\n leftarrow: \"←\",\n leftarrowtail: \"↢\",\n leftharpoondown: \"↽\",\n leftharpoonup: \"↼\",\n leftleftarrows: \"⇇\",\n leftrightarrow: \"↔\",\n leftrightarrows: \"⇆\",\n leftrightharpoons: \"⇋\",\n leftrightsquigarrow: \"↭\",\n leftthreetimes: \"⋋\",\n leg: \"⋚\",\n leq: \"≤\",\n leqq: \"≦\",\n leqslant: \"⩽\",\n les: \"⩽\",\n lescc: \"⪨\",\n lesdot: \"⩿\",\n lesdoto: \"⪁\",\n lesdotor: \"⪃\",\n lesg: \"⋚︀\",\n lesges: \"⪓\",\n lessapprox: \"⪅\",\n lessdot: \"⋖\",\n lesseqgtr: \"⋚\",\n lesseqqgtr: \"⪋\",\n lessgtr: \"≶\",\n lesssim: \"≲\",\n lfisht: \"⥼\",\n lfloor: \"⌊\",\n lfr: \"\\uD835\\uDD29\",\n lg: \"≶\",\n lgE: \"⪑\",\n lhard: \"↽\",\n lharu: \"↼\",\n lharul: \"⥪\",\n lhblk: \"▄\",\n ljcy: \"љ\",\n ll: \"≪\",\n llarr: \"⇇\",\n llcorner: \"⌞\",\n llhard: \"⥫\",\n lltri: \"◺\",\n lmidot: \"ŀ\",\n lmoust: \"⎰\",\n lmoustache: \"⎰\",\n lnE: \"≨\",\n lnap: \"⪉\",\n lnapprox: \"⪉\",\n lne: \"⪇\",\n lneq: \"⪇\",\n lneqq: \"≨\",\n lnsim: \"⋦\",\n loang: \"⟬\",\n loarr: \"⇽\",\n lobrk: \"⟦\",\n longleftarrow: \"⟵\",\n longleftrightarrow: \"⟷\",\n longmapsto: \"⟼\",\n longrightarrow: \"⟶\",\n looparrowleft: \"↫\",\n looparrowright: \"↬\",\n lopar: \"⦅\",\n lopf: \"\\uD835\\uDD5D\",\n loplus: \"⨭\",\n lotimes: \"⨴\",\n lowast: \"∗\",\n lowbar: \"_\",\n loz: \"◊\",\n lozenge: \"◊\",\n lozf: \"⧫\",\n lpar: \"(\",\n lparlt: \"⦓\",\n lrarr: \"⇆\",\n lrcorner: \"⌟\",\n lrhar: \"⇋\",\n lrhard: \"⥭\",\n lrm: \"‎\",\n lrtri: \"⊿\",\n lsaquo: \"‹\",\n lscr: \"\\uD835\\uDCC1\",\n lsh: \"↰\",\n lsim: \"≲\",\n lsime: \"⪍\",\n lsimg: \"⪏\",\n lsqb: \"[\",\n lsquo: \"‘\",\n lsquor: \"‚\",\n lstrok: \"ł\",\n lt: \"<\",\n ltcc: \"⪦\",\n ltcir: \"⩹\",\n ltdot: \"⋖\",\n lthree: \"⋋\",\n ltimes: \"⋉\",\n ltlarr: \"⥶\",\n ltquest: \"⩻\",\n ltrPar: \"⦖\",\n ltri: \"◃\",\n ltrie: \"⊴\",\n ltrif: \"◂\",\n lurdshar: \"⥊\",\n luruhar: \"⥦\",\n lvertneqq: \"≨︀\",\n lvnE: \"≨︀\",\n mDDot: \"∺\",\n macr: \"\\xaf\",\n male: \"♂\",\n malt: \"✠\",\n maltese: \"✠\",\n map: \"↦\",\n mapsto: \"↦\",\n mapstodown: \"↧\",\n mapstoleft: \"↤\",\n mapstoup: \"↥\",\n marker: \"▮\",\n mcomma: \"⨩\",\n mcy: \"м\",\n mdash: \"—\",\n measuredangle: \"∡\",\n mfr: \"\\uD835\\uDD2A\",\n mho: \"℧\",\n micro: \"\\xb5\",\n mid: \"∣\",\n midast: \"*\",\n midcir: \"⫰\",\n middot: \"\\xb7\",\n minus: \"−\",\n minusb: \"⊟\",\n minusd: \"∸\",\n minusdu: \"⨪\",\n mlcp: \"⫛\",\n mldr: \"…\",\n mnplus: \"∓\",\n models: \"⊧\",\n mopf: \"\\uD835\\uDD5E\",\n mp: \"∓\",\n mscr: \"\\uD835\\uDCC2\",\n mstpos: \"∾\",\n mu: \"μ\",\n multimap: \"⊸\",\n mumap: \"⊸\",\n nGg: \"⋙̸\",\n nGt: \"≫⃒\",\n nGtv: \"≫̸\",\n nLeftarrow: \"⇍\",\n nLeftrightarrow: \"⇎\",\n nLl: \"⋘̸\",\n nLt: \"≪⃒\",\n nLtv: \"≪̸\",\n nRightarrow: \"⇏\",\n nVDash: \"⊯\",\n nVdash: \"⊮\",\n nabla: \"∇\",\n nacute: \"ń\",\n nang: \"∠⃒\",\n nap: \"≉\",\n napE: \"⩰̸\",\n napid: \"≋̸\",\n napos: \"ʼn\",\n napprox: \"≉\",\n natur: \"♮\",\n natural: \"♮\",\n naturals: \"ℕ\",\n nbsp: \"\\xa0\",\n nbump: \"≎̸\",\n nbumpe: \"≏̸\",\n ncap: \"⩃\",\n ncaron: \"ň\",\n ncedil: \"ņ\",\n ncong: \"≇\",\n ncongdot: \"⩭̸\",\n ncup: \"⩂\",\n ncy: \"н\",\n ndash: \"–\",\n ne: \"≠\",\n neArr: \"⇗\",\n nearhk: \"⤤\",\n nearr: \"↗\",\n nearrow: \"↗\",\n nedot: \"≐̸\",\n nequiv: \"≢\",\n nesear: \"⤨\",\n nesim: \"≂̸\",\n nexist: \"∄\",\n nexists: \"∄\",\n nfr: \"\\uD835\\uDD2B\",\n ngE: \"≧̸\",\n nge: \"≱\",\n ngeq: \"≱\",\n ngeqq: \"≧̸\",\n ngeqslant: \"⩾̸\",\n nges: \"⩾̸\",\n ngsim: \"≵\",\n ngt: \"≯\",\n ngtr: \"≯\",\n nhArr: \"⇎\",\n nharr: \"↮\",\n nhpar: \"⫲\",\n ni: \"∋\",\n nis: \"⋼\",\n nisd: \"⋺\",\n niv: \"∋\",\n njcy: \"њ\",\n nlArr: \"⇍\",\n nlE: \"≦̸\",\n nlarr: \"↚\",\n nldr: \"‥\",\n nle: \"≰\",\n nleftarrow: \"↚\",\n nleftrightarrow: \"↮\",\n nleq: \"≰\",\n nleqq: \"≦̸\",\n nleqslant: \"⩽̸\",\n nles: \"⩽̸\",\n nless: \"≮\",\n nlsim: \"≴\",\n nlt: \"≮\",\n nltri: \"⋪\",\n nltrie: \"⋬\",\n nmid: \"∤\",\n nopf: \"\\uD835\\uDD5F\",\n not: \"\\xac\",\n notin: \"∉\",\n notinE: \"⋹̸\",\n notindot: \"⋵̸\",\n notinva: \"∉\",\n notinvb: \"⋷\",\n notinvc: \"⋶\",\n notni: \"∌\",\n notniva: \"∌\",\n notnivb: \"⋾\",\n notnivc: \"⋽\",\n npar: \"∦\",\n nparallel: \"∦\",\n nparsl: \"⫽⃥\",\n npart: \"∂̸\",\n npolint: \"⨔\",\n npr: \"⊀\",\n nprcue: \"⋠\",\n npre: \"⪯̸\",\n nprec: \"⊀\",\n npreceq: \"⪯̸\",\n nrArr: \"⇏\",\n nrarr: \"↛\",\n nrarrc: \"⤳̸\",\n nrarrw: \"↝̸\",\n nrightarrow: \"↛\",\n nrtri: \"⋫\",\n nrtrie: \"⋭\",\n nsc: \"⊁\",\n nsccue: \"⋡\",\n nsce: \"⪰̸\",\n nscr: \"\\uD835\\uDCC3\",\n nshortmid: \"∤\",\n nshortparallel: \"∦\",\n nsim: \"≁\",\n nsime: \"≄\",\n nsimeq: \"≄\",\n nsmid: \"∤\",\n nspar: \"∦\",\n nsqsube: \"⋢\",\n nsqsupe: \"⋣\",\n nsub: \"⊄\",\n nsubE: \"⫅̸\",\n nsube: \"⊈\",\n nsubset: \"⊂⃒\",\n nsubseteq: \"⊈\",\n nsubseteqq: \"⫅̸\",\n nsucc: \"⊁\",\n nsucceq: \"⪰̸\",\n nsup: \"⊅\",\n nsupE: \"⫆̸\",\n nsupe: \"⊉\",\n nsupset: \"⊃⃒\",\n nsupseteq: \"⊉\",\n nsupseteqq: \"⫆̸\",\n ntgl: \"≹\",\n ntilde: \"\\xf1\",\n ntlg: \"≸\",\n ntriangleleft: \"⋪\",\n ntrianglelefteq: \"⋬\",\n ntriangleright: \"⋫\",\n ntrianglerighteq: \"⋭\",\n nu: \"ν\",\n num: \"#\",\n numero: \"№\",\n numsp: \" \",\n nvDash: \"⊭\",\n nvHarr: \"⤄\",\n nvap: \"≍⃒\",\n nvdash: \"⊬\",\n nvge: \"≥⃒\",\n nvgt: \">⃒\",\n nvinfin: \"⧞\",\n nvlArr: \"⤂\",\n nvle: \"≤⃒\",\n nvlt: \"<⃒\",\n nvltrie: \"⊴⃒\",\n nvrArr: \"⤃\",\n nvrtrie: \"⊵⃒\",\n nvsim: \"∼⃒\",\n nwArr: \"⇖\",\n nwarhk: \"⤣\",\n nwarr: \"↖\",\n nwarrow: \"↖\",\n nwnear: \"⤧\",\n oS: \"Ⓢ\",\n oacute: \"\\xf3\",\n oast: \"⊛\",\n ocir: \"⊚\",\n ocirc: \"\\xf4\",\n ocy: \"о\",\n odash: \"⊝\",\n odblac: \"ő\",\n odiv: \"⨸\",\n odot: \"⊙\",\n odsold: \"⦼\",\n oelig: \"œ\",\n ofcir: \"⦿\",\n ofr: \"\\uD835\\uDD2C\",\n ogon: \"˛\",\n ograve: \"\\xf2\",\n ogt: \"⧁\",\n ohbar: \"⦵\",\n ohm: \"Ω\",\n oint: \"∮\",\n olarr: \"↺\",\n olcir: \"⦾\",\n olcross: \"⦻\",\n oline: \"‾\",\n olt: \"⧀\",\n omacr: \"ō\",\n omega: \"ω\",\n omicron: \"ο\",\n omid: \"⦶\",\n ominus: \"⊖\",\n oopf: \"\\uD835\\uDD60\",\n opar: \"⦷\",\n operp: \"⦹\",\n oplus: \"⊕\",\n or: \"∨\",\n orarr: \"↻\",\n ord: \"⩝\",\n order: \"ℴ\",\n orderof: \"ℴ\",\n ordf: \"\\xaa\",\n ordm: \"\\xba\",\n origof: \"⊶\",\n oror: \"⩖\",\n orslope: \"⩗\",\n orv: \"⩛\",\n oscr: \"ℴ\",\n oslash: \"\\xf8\",\n osol: \"⊘\",\n otilde: \"\\xf5\",\n otimes: \"⊗\",\n otimesas: \"⨶\",\n ouml: \"\\xf6\",\n ovbar: \"⌽\",\n par: \"∥\",\n para: \"\\xb6\",\n parallel: \"∥\",\n parsim: \"⫳\",\n parsl: \"⫽\",\n part: \"∂\",\n pcy: \"п\",\n percnt: \"%\",\n period: \".\",\n permil: \"‰\",\n perp: \"⊥\",\n pertenk: \"‱\",\n pfr: \"\\uD835\\uDD2D\",\n phi: \"φ\",\n phiv: \"ϕ\",\n phmmat: \"ℳ\",\n phone: \"☎\",\n pi: \"π\",\n pitchfork: \"⋔\",\n piv: \"ϖ\",\n planck: \"ℏ\",\n planckh: \"ℎ\",\n plankv: \"ℏ\",\n plus: \"+\",\n plusacir: \"⨣\",\n plusb: \"⊞\",\n pluscir: \"⨢\",\n plusdo: \"∔\",\n plusdu: \"⨥\",\n pluse: \"⩲\",\n plusmn: \"\\xb1\",\n plussim: \"⨦\",\n plustwo: \"⨧\",\n pm: \"\\xb1\",\n pointint: \"⨕\",\n popf: \"\\uD835\\uDD61\",\n pound: \"\\xa3\",\n pr: \"≺\",\n prE: \"⪳\",\n prap: \"⪷\",\n prcue: \"≼\",\n pre: \"⪯\",\n prec: \"≺\",\n precapprox: \"⪷\",\n preccurlyeq: \"≼\",\n preceq: \"⪯\",\n precnapprox: \"⪹\",\n precneqq: \"⪵\",\n precnsim: \"⋨\",\n precsim: \"≾\",\n prime: \"′\",\n primes: \"ℙ\",\n prnE: \"⪵\",\n prnap: \"⪹\",\n prnsim: \"⋨\",\n prod: \"∏\",\n profalar: \"⌮\",\n profline: \"⌒\",\n profsurf: \"⌓\",\n prop: \"∝\",\n propto: \"∝\",\n prsim: \"≾\",\n prurel: \"⊰\",\n pscr: \"\\uD835\\uDCC5\",\n psi: \"ψ\",\n puncsp: \" \",\n qfr: \"\\uD835\\uDD2E\",\n qint: \"⨌\",\n qopf: \"\\uD835\\uDD62\",\n qprime: \"⁗\",\n qscr: \"\\uD835\\uDCC6\",\n quaternions: \"ℍ\",\n quatint: \"⨖\",\n quest: \"?\",\n questeq: \"≟\",\n quot: '\"',\n rAarr: \"⇛\",\n rArr: \"⇒\",\n rAtail: \"⤜\",\n rBarr: \"⤏\",\n rHar: \"⥤\",\n race: \"∽̱\",\n racute: \"ŕ\",\n radic: \"√\",\n raemptyv: \"⦳\",\n rang: \"⟩\",\n rangd: \"⦒\",\n range: \"⦥\",\n rangle: \"⟩\",\n raquo: \"\\xbb\",\n rarr: \"→\",\n rarrap: \"⥵\",\n rarrb: \"⇥\",\n rarrbfs: \"⤠\",\n rarrc: \"⤳\",\n rarrfs: \"⤞\",\n rarrhk: \"↪\",\n rarrlp: \"↬\",\n rarrpl: \"⥅\",\n rarrsim: \"⥴\",\n rarrtl: \"↣\",\n rarrw: \"↝\",\n ratail: \"⤚\",\n ratio: \"∶\",\n rationals: \"ℚ\",\n rbarr: \"⤍\",\n rbbrk: \"❳\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"⦌\",\n rbrksld: \"⦎\",\n rbrkslu: \"⦐\",\n rcaron: \"ř\",\n rcedil: \"ŗ\",\n rceil: \"⌉\",\n rcub: \"}\",\n rcy: \"р\",\n rdca: \"⤷\",\n rdldhar: \"⥩\",\n rdquo: \"”\",\n rdquor: \"”\",\n rdsh: \"↳\",\n real: \"ℜ\",\n realine: \"ℛ\",\n realpart: \"ℜ\",\n reals: \"ℝ\",\n rect: \"▭\",\n reg: \"\\xae\",\n rfisht: \"⥽\",\n rfloor: \"⌋\",\n rfr: \"\\uD835\\uDD2F\",\n rhard: \"⇁\",\n rharu: \"⇀\",\n rharul: \"⥬\",\n rho: \"ρ\",\n rhov: \"ϱ\",\n rightarrow: \"→\",\n rightarrowtail: \"↣\",\n rightharpoondown: \"⇁\",\n rightharpoonup: \"⇀\",\n rightleftarrows: \"⇄\",\n rightleftharpoons: \"⇌\",\n rightrightarrows: \"⇉\",\n rightsquigarrow: \"↝\",\n rightthreetimes: \"⋌\",\n ring: \"˚\",\n risingdotseq: \"≓\",\n rlarr: \"⇄\",\n rlhar: \"⇌\",\n rlm: \"‏\",\n rmoust: \"⎱\",\n rmoustache: \"⎱\",\n rnmid: \"⫮\",\n roang: \"⟭\",\n roarr: \"⇾\",\n robrk: \"⟧\",\n ropar: \"⦆\",\n ropf: \"\\uD835\\uDD63\",\n roplus: \"⨮\",\n rotimes: \"⨵\",\n rpar: \")\",\n rpargt: \"⦔\",\n rppolint: \"⨒\",\n rrarr: \"⇉\",\n rsaquo: \"›\",\n rscr: \"\\uD835\\uDCC7\",\n rsh: \"↱\",\n rsqb: \"]\",\n rsquo: \"’\",\n rsquor: \"’\",\n rthree: \"⋌\",\n rtimes: \"⋊\",\n rtri: \"▹\",\n rtrie: \"⊵\",\n rtrif: \"▸\",\n rtriltri: \"⧎\",\n ruluhar: \"⥨\",\n rx: \"℞\",\n sacute: \"ś\",\n sbquo: \"‚\",\n sc: \"≻\",\n scE: \"⪴\",\n scap: \"⪸\",\n scaron: \"š\",\n sccue: \"≽\",\n sce: \"⪰\",\n scedil: \"ş\",\n scirc: \"ŝ\",\n scnE: \"⪶\",\n scnap: \"⪺\",\n scnsim: \"⋩\",\n scpolint: \"⨓\",\n scsim: \"≿\",\n scy: \"с\",\n sdot: \"⋅\",\n sdotb: \"⊡\",\n sdote: \"⩦\",\n seArr: \"⇘\",\n searhk: \"⤥\",\n searr: \"↘\",\n searrow: \"↘\",\n sect: \"\\xa7\",\n semi: \";\",\n seswar: \"⤩\",\n setminus: \"∖\",\n setmn: \"∖\",\n sext: \"✶\",\n sfr: \"\\uD835\\uDD30\",\n sfrown: \"⌢\",\n sharp: \"♯\",\n shchcy: \"щ\",\n shcy: \"ш\",\n shortmid: \"∣\",\n shortparallel: \"∥\",\n shy: \"\\xad\",\n sigma: \"σ\",\n sigmaf: \"ς\",\n sigmav: \"ς\",\n sim: \"∼\",\n simdot: \"⩪\",\n sime: \"≃\",\n simeq: \"≃\",\n simg: \"⪞\",\n simgE: \"⪠\",\n siml: \"⪝\",\n simlE: \"⪟\",\n simne: \"≆\",\n simplus: \"⨤\",\n simrarr: \"⥲\",\n slarr: \"←\",\n smallsetminus: \"∖\",\n smashp: \"⨳\",\n smeparsl: \"⧤\",\n smid: \"∣\",\n smile: \"⌣\",\n smt: \"⪪\",\n smte: \"⪬\",\n smtes: \"⪬︀\",\n softcy: \"ь\",\n sol: \"/\",\n solb: \"⧄\",\n solbar: \"⌿\",\n sopf: \"\\uD835\\uDD64\",\n spades: \"♠\",\n spadesuit: \"♠\",\n spar: \"∥\",\n sqcap: \"⊓\",\n sqcaps: \"⊓︀\",\n sqcup: \"⊔\",\n sqcups: \"⊔︀\",\n sqsub: \"⊏\",\n sqsube: \"⊑\",\n sqsubset: \"⊏\",\n sqsubseteq: \"⊑\",\n sqsup: \"⊐\",\n sqsupe: \"⊒\",\n sqsupset: \"⊐\",\n sqsupseteq: \"⊒\",\n squ: \"□\",\n square: \"□\",\n squarf: \"▪\",\n squf: \"▪\",\n srarr: \"→\",\n sscr: \"\\uD835\\uDCC8\",\n ssetmn: \"∖\",\n ssmile: \"⌣\",\n sstarf: \"⋆\",\n star: \"☆\",\n starf: \"★\",\n straightepsilon: \"ϵ\",\n straightphi: \"ϕ\",\n strns: \"\\xaf\",\n sub: \"⊂\",\n subE: \"⫅\",\n subdot: \"⪽\",\n sube: \"⊆\",\n subedot: \"⫃\",\n submult: \"⫁\",\n subnE: \"⫋\",\n subne: \"⊊\",\n subplus: \"⪿\",\n subrarr: \"⥹\",\n subset: \"⊂\",\n subseteq: \"⊆\",\n subseteqq: \"⫅\",\n subsetneq: \"⊊\",\n subsetneqq: \"⫋\",\n subsim: \"⫇\",\n subsub: \"⫕\",\n subsup: \"⫓\",\n succ: \"≻\",\n succapprox: \"⪸\",\n succcurlyeq: \"≽\",\n succeq: \"⪰\",\n succnapprox: \"⪺\",\n succneqq: \"⪶\",\n succnsim: \"⋩\",\n succsim: \"≿\",\n sum: \"∑\",\n sung: \"♪\",\n sup1: \"\\xb9\",\n sup2: \"\\xb2\",\n sup3: \"\\xb3\",\n sup: \"⊃\",\n supE: \"⫆\",\n supdot: \"⪾\",\n supdsub: \"⫘\",\n supe: \"⊇\",\n supedot: \"⫄\",\n suphsol: \"⟉\",\n suphsub: \"⫗\",\n suplarr: \"⥻\",\n supmult: \"⫂\",\n supnE: \"⫌\",\n supne: \"⊋\",\n supplus: \"⫀\",\n supset: \"⊃\",\n supseteq: \"⊇\",\n supseteqq: \"⫆\",\n supsetneq: \"⊋\",\n supsetneqq: \"⫌\",\n supsim: \"⫈\",\n supsub: \"⫔\",\n supsup: \"⫖\",\n swArr: \"⇙\",\n swarhk: \"⤦\",\n swarr: \"↙\",\n swarrow: \"↙\",\n swnwar: \"⤪\",\n szlig: \"\\xdf\",\n target: \"⌖\",\n tau: \"τ\",\n tbrk: \"⎴\",\n tcaron: \"ť\",\n tcedil: \"ţ\",\n tcy: \"т\",\n tdot: \"⃛\",\n telrec: \"⌕\",\n tfr: \"\\uD835\\uDD31\",\n there4: \"∴\",\n therefore: \"∴\",\n theta: \"θ\",\n thetasym: \"ϑ\",\n thetav: \"ϑ\",\n thickapprox: \"≈\",\n thicksim: \"∼\",\n thinsp: \" \",\n thkap: \"≈\",\n thksim: \"∼\",\n thorn: \"\\xfe\",\n tilde: \"˜\",\n times: \"\\xd7\",\n timesb: \"⊠\",\n timesbar: \"⨱\",\n timesd: \"⨰\",\n tint: \"∭\",\n toea: \"⤨\",\n top: \"⊤\",\n topbot: \"⌶\",\n topcir: \"⫱\",\n topf: \"\\uD835\\uDD65\",\n topfork: \"⫚\",\n tosa: \"⤩\",\n tprime: \"‴\",\n trade: \"™\",\n triangle: \"▵\",\n triangledown: \"▿\",\n triangleleft: \"◃\",\n trianglelefteq: \"⊴\",\n triangleq: \"≜\",\n triangleright: \"▹\",\n trianglerighteq: \"⊵\",\n tridot: \"◬\",\n trie: \"≜\",\n triminus: \"⨺\",\n triplus: \"⨹\",\n trisb: \"⧍\",\n tritime: \"⨻\",\n trpezium: \"⏢\",\n tscr: \"\\uD835\\uDCC9\",\n tscy: \"ц\",\n tshcy: \"ћ\",\n tstrok: \"ŧ\",\n twixt: \"≬\",\n twoheadleftarrow: \"↞\",\n twoheadrightarrow: \"↠\",\n uArr: \"⇑\",\n uHar: \"⥣\",\n uacute: \"\\xfa\",\n uarr: \"↑\",\n ubrcy: \"ў\",\n ubreve: \"ŭ\",\n ucirc: \"\\xfb\",\n ucy: \"у\",\n udarr: \"⇅\",\n udblac: \"ű\",\n udhar: \"⥮\",\n ufisht: \"⥾\",\n ufr: \"\\uD835\\uDD32\",\n ugrave: \"\\xf9\",\n uharl: \"↿\",\n uharr: \"↾\",\n uhblk: \"▀\",\n ulcorn: \"⌜\",\n ulcorner: \"⌜\",\n ulcrop: \"⌏\",\n ultri: \"◸\",\n umacr: \"ū\",\n uml: \"\\xa8\",\n uogon: \"ų\",\n uopf: \"\\uD835\\uDD66\",\n uparrow: \"↑\",\n updownarrow: \"↕\",\n upharpoonleft: \"↿\",\n upharpoonright: \"↾\",\n uplus: \"⊎\",\n upsi: \"υ\",\n upsih: \"ϒ\",\n upsilon: \"υ\",\n upuparrows: \"⇈\",\n urcorn: \"⌝\",\n urcorner: \"⌝\",\n urcrop: \"⌎\",\n uring: \"ů\",\n urtri: \"◹\",\n uscr: \"\\uD835\\uDCCA\",\n utdot: \"⋰\",\n utilde: \"ũ\",\n utri: \"▵\",\n utrif: \"▴\",\n uuarr: \"⇈\",\n uuml: \"\\xfc\",\n uwangle: \"⦧\",\n vArr: \"⇕\",\n vBar: \"⫨\",\n vBarv: \"⫩\",\n vDash: \"⊨\",\n vangrt: \"⦜\",\n varepsilon: \"ϵ\",\n varkappa: \"ϰ\",\n varnothing: \"∅\",\n varphi: \"ϕ\",\n varpi: \"ϖ\",\n varpropto: \"∝\",\n varr: \"↕\",\n varrho: \"ϱ\",\n varsigma: \"ς\",\n varsubsetneq: \"⊊︀\",\n varsubsetneqq: \"⫋︀\",\n varsupsetneq: \"⊋︀\",\n varsupsetneqq: \"⫌︀\",\n vartheta: \"ϑ\",\n vartriangleleft: \"⊲\",\n vartriangleright: \"⊳\",\n vcy: \"в\",\n vdash: \"⊢\",\n vee: \"∨\",\n veebar: \"⊻\",\n veeeq: \"≚\",\n vellip: \"⋮\",\n verbar: \"|\",\n vert: \"|\",\n vfr: \"\\uD835\\uDD33\",\n vltri: \"⊲\",\n vnsub: \"⊂⃒\",\n vnsup: \"⊃⃒\",\n vopf: \"\\uD835\\uDD67\",\n vprop: \"∝\",\n vrtri: \"⊳\",\n vscr: \"\\uD835\\uDCCB\",\n vsubnE: \"⫋︀\",\n vsubne: \"⊊︀\",\n vsupnE: \"⫌︀\",\n vsupne: \"⊋︀\",\n vzigzag: \"⦚\",\n wcirc: \"ŵ\",\n wedbar: \"⩟\",\n wedge: \"∧\",\n wedgeq: \"≙\",\n weierp: \"℘\",\n wfr: \"\\uD835\\uDD34\",\n wopf: \"\\uD835\\uDD68\",\n wp: \"℘\",\n wr: \"≀\",\n wreath: \"≀\",\n wscr: \"\\uD835\\uDCCC\",\n xcap: \"⋂\",\n xcirc: \"◯\",\n xcup: \"⋃\",\n xdtri: \"▽\",\n xfr: \"\\uD835\\uDD35\",\n xhArr: \"⟺\",\n xharr: \"⟷\",\n xi: \"ξ\",\n xlArr: \"⟸\",\n xlarr: \"⟵\",\n xmap: \"⟼\",\n xnis: \"⋻\",\n xodot: \"⨀\",\n xopf: \"\\uD835\\uDD69\",\n xoplus: \"⨁\",\n xotime: \"⨂\",\n xrArr: \"⟹\",\n xrarr: \"⟶\",\n xscr: \"\\uD835\\uDCCD\",\n xsqcup: \"⨆\",\n xuplus: \"⨄\",\n xutri: \"△\",\n xvee: \"⋁\",\n xwedge: \"⋀\",\n yacute: \"\\xfd\",\n yacy: \"я\",\n ycirc: \"ŷ\",\n ycy: \"ы\",\n yen: \"\\xa5\",\n yfr: \"\\uD835\\uDD36\",\n yicy: \"ї\",\n yopf: \"\\uD835\\uDD6A\",\n yscr: \"\\uD835\\uDCCE\",\n yucy: \"ю\",\n yuml: \"\\xff\",\n zacute: \"ź\",\n zcaron: \"ž\",\n zcy: \"з\",\n zdot: \"ż\",\n zeetrf: \"ℨ\",\n zeta: \"ζ\",\n zfr: \"\\uD835\\uDD37\",\n zhcy: \"ж\",\n zigrarr: \"⇝\",\n zopf: \"\\uD835\\uDD6B\",\n zscr: \"\\uD835\\uDCCF\",\n zwj: \"‍\",\n zwnj: \"‌\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2NoYXJhY3Rlci1lbnRpdGllcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUNNLE1BQU1BLG9CQUFvQjtJQUMvQkMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxlQUFlO0lBQ2ZDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxXQUFXO0lBQ1hDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxLQUFLO0lBQ0xDLFNBQVM7SUFDVEMsWUFBWTtJQUNaQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxLQUFLO0lBQ0xDLHNCQUFzQjtJQUN0QkMsU0FBUztJQUNUQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLE1BQU07SUFDTkMsU0FBUztJQUNUQyxXQUFXO0lBQ1hDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxXQUFXO0lBQ1hDLGFBQWE7SUFDYkMsWUFBWTtJQUNaQyxhQUFhO0lBQ2JDLDBCQUEwQjtJQUMxQkMsdUJBQXVCO0lBQ3ZCQyxpQkFBaUI7SUFDakJDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxXQUFXO0lBQ1hDLFFBQVE7SUFDUkMsaUJBQWlCO0lBQ2pCQyxNQUFNO0lBQ05DLFdBQVc7SUFDWEMsaUNBQWlDO0lBQ2pDQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLElBQUk7SUFDSkMsVUFBVTtJQUNWQyxNQUFNO0lBQ05DLE1BQU07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SUFDTEMsT0FBTztJQUNQQyxJQUFJO0lBQ0pDLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxVQUFVO0lBQ1ZDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLFVBQVU7SUFDVkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLElBQUk7SUFDSkMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsVUFBVTtJQUNWQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLFNBQVM7SUFDVEMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLFVBQVU7SUFDVkMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLFVBQVU7SUFDVkMsYUFBYTtJQUNiQyxXQUFXO0lBQ1hDLFNBQVM7SUFDVEMsV0FBVztJQUNYQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsVUFBVTtJQUNWQyxNQUFNO0lBQ05DLFVBQVU7SUFDVkMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxTQUFTO0lBQ1RDLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLFFBQVE7SUFDUkMsU0FBUztJQUNUQyxVQUFVO0lBQ1ZDLFdBQVc7SUFDWEMsVUFB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SUFDTkMsVUFBVTtJQUNWQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLElBQUk7SUFDSkMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLElBQUk7SUFDSkMsUUFBUTtJQUNSQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsSUFBSTtJQUNKQyxVQUFVO0lBQ1ZDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxVQUFVO0lBQ1ZDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxZQUFZO0lBQ1pDLGFBQWE7SUFDYkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsT0FBTztJQUNQQyxhQUFhO0lBQ2JDLGNBQWM7SUFDZEMsZUFBZTtJQUNmQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLFVBQVU7SUFDVkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsSUFBSTtJQUNKQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxJQUFJO0lBQ0pDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLFVBQVU7SUFDVkMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsU0FBUztJQUNUQyxVQUFVO0lBQ1ZDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxLQUFLO0lBQ0xDLElBQUk7SUFDSkMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsSUFBSTtJQUNKQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLE1BQU07SUFDTkMsVUFBVTtJQUNWQyxLQUFLO0lBQ0xDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLElBQUk7SUFDSkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLFdBQVc7SUFDWEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFdBQVc7SUFDWEMsWUFBWTtJQUNaQyxTQUFTO0lBQ1RDLFFBQVE7SUFDUkMsV0FBVztJQUNYQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxXQUFXO0lBQ1hDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxLQUFLO0lBQ0xDLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsZUFBZTtJQUNmQyxnQkFBZ0I7SUFDaEJDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxJQUFJO0lBQ0pDLE9BQU87SUFDUEMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsSUFBSTtJQUNKQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxJQUFJO0lBQ0pDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxVQUFVO0lBQ1ZDLFFBQVE7SUFDUkMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFNBQVM7SUFDVEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsU0FBUztJQUNUQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxJQUFJO0lBQ0pDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxPQUFPO0lB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QUNOQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLFNBQVM7SUFDVEMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxVQUFVO0lBQ1ZDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxLQUFLO0lBQ0xDLE9BQU87SUFDUEMsZUFBZTtJQUNmQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFNBQVM7SUFDVEMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLElBQUk7SUFDSkMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLElBQUk7SUFDSkMsVUFBVTtJQUNWQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLFlBQVk7SUFDWkMsaUJBQWlCO0lBQ2pCQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxhQUFhO0lBQ2JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxLQUFLO0lBQ0xDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLFVBQVU7SUFDVkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxVQUFVO0lBQ1ZDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLElBQUk7SUFDSkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsU0FBUztJQUNUQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsV0FBVztJQUNYQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLElBQUk7SUFDSkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsWUFBWTtJQUNaQyxpQkFBaUI7SUFDakJDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxXQUFXO0lBQ1hDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxLQUFLO0lBQ0xDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLFNBQVM7SUFDVEMsU0FBUztJQUNUQyxTQUFTO0lBQ1RDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxTQUFTO0lBQ1RDLFNBQVM7SUFDVEMsTUFBTTtJQUNOQyxXQUFXO0lBQ1hDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsU0FBUztJQUNUQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLGFBQWE7SUFDYkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsV0FBVztJQUNYQyxnQkFBZ0I7SUFDaEJDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLFNBQVM7SUFDVEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxXQUFXO0lBQ1hDLFlBQVk7SUFDWkMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLFNBQVM7SUFDVEMsV0FBVztJQUNYQyxZQUFZO0lBQ1pDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsaUJBQWlCO0lBQ2pCQyxnQkFBZ0I7SUFDaEJDLGtCQUFrQjtJQUNsQkMsSUFBSTtJQUNKQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxTQUFTO0lBQ1RDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLFNBQVM7SUFDVEMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxRQUFRO0lBQ1JDLElBQUk7SUFDSkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLFNBQVM7SUFDVEMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsSUFBSTtJQUNKQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsU0FBUztJQUNUQyxLQUFLO0lBQ0xDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLE1BQU07SUFDTkMsVUFBVTtJQUNWQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsU0FBUztJQUNUQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsSUFBSTtJQUNKQyxXQUFXO0lBQ1hDLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLFNBQVM7SUFDVEMsU0FBUztJQUNUQyxJQUFJO0lBQ0pDLFVBQVU7SUFDVkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLElBQUk7SUFDSkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLFlBQVk7SUFDWkMsYUFBYTtJQUNiQyxRQUFRO0lBQ1JDLGFBQWE7SUFDYkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxLQUFLO0lBQ0xDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsYUFBYTtJQUNiQyxTQUFTO0lBQ1RDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxVQUFVO0lBQ1ZDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsV0FBVztJQUNYQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxTQUFTO0lBQ1RDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxTQUFTO0lBQ1RDLFVBQVU7SUFDVkMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLFlBQVk7SUFDWkMsZ0JBQWdCO0lBQ2hCQyxrQkFBa0I7SUFDbEJDLGdCQUFnQjtJQUNoQkMsaUJBQWlCO0lBQ2pCQyxtQkFBbUI7SUFDbkJDLGtCQUFrQjtJQUNsQkMsaUJBQWlCO0lBQ2pCQyxpQkFBaUI7SUFDakJDLE1BQU07SUFDTkMsY0FBYztJQUNkQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLFlBQVk7SUFDWkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLFVBQVU7SUFDVkMsU0FBUztJQUNUQyxJQUFJO0lBQ0pDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxJQUFJO0lBQ0pDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsVUFBVTtJQUNWQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsVUFBVTtJQUNWQyxlQUFlO0lBQ2ZDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxTQUFTO0lBQ1RDLE9BQU87SUFDUEMsZUFBZTtJQUNmQyxRQUFRO0lB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LE9BQU87SUFDUEMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxLQUFLO0lBQ0xDLE1BQU07SUFDTkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLElBQUk7SUFDSkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLEtBQUs7SUFDTEMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxNQUFNO0lBQ05DLFNBQVM7SUFDVEMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsTUFBTTtBQUNSLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9jaGFyYWN0ZXItZW50aXRpZXMvaW5kZXguanM/YmZmNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1hcCBvZiBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcy5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckVudGl0aWVzID0ge1xuICBBRWxpZzogJ8OGJyxcbiAgQU1QOiAnJicsXG4gIEFhY3V0ZTogJ8OBJyxcbiAgQWJyZXZlOiAnxIInLFxuICBBY2lyYzogJ8OCJyxcbiAgQWN5OiAn0JAnLFxuICBBZnI6ICfwnZSEJyxcbiAgQWdyYXZlOiAnw4AnLFxuICBBbHBoYTogJ86RJyxcbiAgQW1hY3I6ICfEgCcsXG4gIEFuZDogJ+KpkycsXG4gIEFvZ29uOiAnxIQnLFxuICBBb3BmOiAn8J2UuCcsXG4gIEFwcGx5RnVuY3Rpb246ICfigaEnLFxuICBBcmluZzogJ8OFJyxcbiAgQXNjcjogJ/CdkpwnLFxuICBBc3NpZ246ICfiiZQnLFxuICBBdGlsZGU6ICfDgycsXG4gIEF1bWw6ICfDhCcsXG4gIEJhY2tzbGFzaDogJ+KIlicsXG4gIEJhcnY6ICfiq6cnLFxuICBCYXJ3ZWQ6ICfijIYnLFxuICBCY3k6ICfQkScsXG4gIEJlY2F1c2U6ICfiiLUnLFxuICBCZXJub3VsbGlzOiAn4oSsJyxcbiAgQmV0YTogJ86SJyxcbiAgQmZyOiAn8J2UhScsXG4gIEJvcGY6ICfwnZS5JyxcbiAgQnJldmU6ICfLmCcsXG4gIEJzY3I6ICfihKwnLFxuICBCdW1wZXE6ICfiiY4nLFxuICBDSGN5OiAn0KcnLFxuICBDT1BZOiAnwqknLFxuICBDYWN1dGU6ICfEhicsXG4gIENhcDogJ+KLkicsXG4gIENhcGl0YWxEaWZmZXJlbnRpYWxEOiAn4oWFJyxcbiAgQ2F5bGV5czogJ+KErScsXG4gIENjYXJvbjogJ8SMJyxcbiAgQ2NlZGlsOiAnw4cnLFxuICBDY2lyYzogJ8SIJyxcbiAgQ2NvbmludDogJ+KIsCcsXG4gIENkb3Q6ICfEiicsXG4gIENlZGlsbGE6ICfCuCcsXG4gIENlbnRlckRvdDogJ8K3JyxcbiAgQ2ZyOiAn4oStJyxcbiAgQ2hpOiAnzqcnLFxuICBDaXJjbGVEb3Q6ICfiipknLFxuICBDaXJjbGVNaW51czogJ+KKlicsXG4gIENpcmNsZVBsdXM6ICfiipUnLFxuICBDaXJjbGVUaW1lczogJ+KKlycsXG4gIENsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbDogJ+KIsicsXG4gIENsb3NlQ3VybHlEb3VibGVRdW90ZTogJ+KAnScsXG4gIENsb3NlQ3VybHlRdW90ZTogJ+KAmScsXG4gIENvbG9uOiAn4oi3JyxcbiAgQ29sb25lOiAn4qm0JyxcbiAgQ29uZ3J1ZW50OiAn4omhJyxcbiAgQ29uaW50OiAn4oivJyxcbiAgQ29udG91ckludGVncmFsOiAn4oiuJyxcbiAgQ29wZjogJ+KEgicsXG4gIENvcHJvZHVjdDogJ+KIkCcsXG4gIENvdW50ZXJDbG9ja3dpc2VDb250b3VySW50ZWdyYWw6ICfiiLMnLFxuICBDcm9zczogJ+KorycsXG4gIENzY3I6ICfwnZKeJyxcbiAgQ3VwOiAn4ouTJyxcbiAgQ3VwQ2FwOiAn4omNJyxcbiAgREQ6ICfihYUnLFxuICBERG90cmFoZDogJ+KkkScsXG4gIERKY3k6ICfQgicsXG4gIERTY3k6ICfQhScsXG4gIERaY3k6ICfQjycsXG4gIERhZ2dlcjogJ+KAoScsXG4gIERhcnI6ICfihqEnLFxuICBEYXNodjogJ+KrpCcsXG4gIERjYXJvbjogJ8SOJyxcbiAgRGN5OiAn0JQnLFxuICBEZWw6ICfiiIcnLFxuICBEZWx0YTogJ86UJyxcbiAgRGZyOiAn8J2UhycsXG4gIERpYWNyaXRpY2FsQWN1dGU6ICfCtCcsXG4gIERpYWNyaXRpY2FsRG90OiAny5knLFxuICBEaWFjcml0aWNhbERvdWJsZUFjdXRlOiAny50nLFxuICBEaWFjcml0aWNhbEdyYXZlOiAnYCcsXG4gIERpYWNyaXRpY2FsVGlsZGU6ICfLnCcsXG4gIERpYW1vbmQ6ICfii4QnLFxuICBEaWZmZXJlbnRpYWxEOiAn4oWGJyxcbiAgRG9wZjogJ/CdlLsnLFxuICBEb3Q6ICfCqCcsXG4gIERvdERvdDogJ+KDnCcsXG4gIERvdEVxdWFsOiAn4omQJyxcbiAgRG91YmxlQ29udG91ckludGVncmFsOiAn4oivJyxcbiAgRG91YmxlRG90OiAnwqgnLFxuICBEb3VibGVEb3duQXJyb3c6ICfih5MnLFxuICBEb3VibGVMZWZ0QXJyb3c6ICfih5AnLFxuICBEb3VibGVMZWZ0UmlnaHRBcnJvdzogJ+KHlCcsXG4gIERvdWJsZUxlZnRUZWU6ICfiq6QnLFxuICBEb3VibGVMb25nTGVmdEFycm93OiAn4p+4JyxcbiAgRG91YmxlTG9uZ0xlZnRSaWdodEFycm93OiAn4p+6JyxcbiAgRG91YmxlTG9uZ1JpZ2h0QXJyb3c6ICfin7knLFxuICBEb3VibGVSaWdodEFycm93OiAn4oeSJyxcbiAgRG91YmxlUmlnaHRUZWU6ICfiiqgnLFxuICBEb3VibGVVcEFycm93OiAn4oeRJyxcbiAgRG91YmxlVXBEb3duQXJyb3c6ICfih5UnLFxuICBEb3VibGVWZXJ0aWNhbEJhcjogJ+KIpScsXG4gIERvd25BcnJvdzogJ+KGkycsXG4gIERvd25BcnJvd0JhcjogJ+KkkycsXG4gIERvd25BcnJvd1VwQXJyb3c6ICfih7UnLFxuICBEb3duQnJldmU6ICfMkScsXG4gIERvd25MZWZ0UmlnaHRWZWN0b3I6ICfipZAnLFxuICBEb3duTGVmdFRlZVZlY3RvcjogJ+KlnicsXG4gIERvd25MZWZ0VmVjdG9yOiAn4oa9JyxcbiAgRG93bkxlZnRWZWN0b3JCYXI6ICfipZYnLFxuICBEb3duUmlnaHRUZWVWZWN0b3I6ICfipZ8nLFxuICBEb3duUmlnaHRWZWN0b3I6ICfih4EnLFxuICBEb3duUmlnaHRWZWN0b3JCYXI6ICfipZcnLFxuICBEb3duVGVlOiAn4oqkJyxcbiAgRG93blRlZUFycm93OiAn4oanJyxcbiAgRG93bmFycm93OiAn4oeTJyxcbiAgRHNjcjogJ/Cdkp8nLFxuICBEc3Ryb2s6ICfEkCcsXG4gIEVORzogJ8WKJyxcbiAgRVRIOiAnw5AnLFxuICBFYWN1dGU6ICfDiScsXG4gIEVjYXJvbjogJ8SaJyxcbiAgRWNpcmM6ICfDiicsXG4gIEVjeTogJ9CtJyxcbiAgRWRvdDogJ8SWJyxcbiAgRWZyOiAn8J2UiCcsXG4gIEVncmF2ZTogJ8OIJyxcbiAgRWxlbWVudDogJ+KIiCcsXG4gIEVtYWNyOiAnxJInLFxuICBFbXB0eVNtYWxsU3F1YXJlOiAn4pe7JyxcbiAgRW1wdHlWZXJ5U21hbGxTcXVhcmU6ICfilqsnLFxuICBFb2dvbjogJ8SYJyxcbiAgRW9wZjogJ/CdlLwnLFxuICBFcHNpbG9uOiAnzpUnLFxuICBFcXVhbDogJ+KptScsXG4gIEVxdWFsVGlsZGU6ICfiiYInLFxuICBFcXVpbGlicml1bTogJ+KHjCcsXG4gIEVzY3I6ICfihLAnLFxuICBFc2ltOiAn4qmzJyxcbiAgRXRhOiAnzpcnLFxuICBFdW1sOiAnw4snLFxuICBFeGlzdHM6ICfiiIMnLFxuICBFeHBvbmVudGlhbEU6ICfihYcnLFxuICBGY3k6ICfQpCcsXG4gIEZmcjogJ/CdlIknLFxuICBGaWxsZWRTbWFsbFNxdWFyZTogJ+KXvCcsXG4gIEZpbGxlZFZlcnlTbWFsbFNxdWFyZTogJ+KWqicsXG4gIEZvcGY6ICfwnZS9JyxcbiAgRm9yQWxsOiAn4oiAJyxcbiAgRm91cmllcnRyZjogJ+KEsScsXG4gIEZzY3I6ICfihLEnLFxuICBHSmN5OiAn0IMnLFxuICBHVDogJz4nLFxuICBHYW1tYTogJ86TJyxcbiAgR2FtbWFkOiAnz5wnLFxuICBHYnJldmU6ICfEnicsXG4gIEdjZWRpbDogJ8SiJyxcbiAgR2NpcmM6ICfEnCcsXG4gIEdjeTogJ9CTJyxcbiAgR2RvdDogJ8SgJyxcbiAgR2ZyOiAn8J2UiicsXG4gIEdnOiAn4ouZJyxcbiAgR29wZjogJ/CdlL4nLFxuICBHcmVhdGVyRXF1YWw6ICfiiaUnLFxuICBHcmVhdGVyRXF1YWxMZXNzOiAn4oubJyxcbiAgR3JlYXRlckZ1bGxFcXVhbDogJ+KJpycsXG4gIEdyZWF0ZXJHcmVhdGVyOiAn4qqiJyxcbiAgR3JlYXRlckxlc3M6ICfiibcnLFxuICBHcmVhdGVyU2xhbnRFcXVhbDogJ+KpvicsXG4gIEdyZWF0ZXJUaWxkZTogJ+KJsycsXG4gIEdzY3I6ICfwnZKiJyxcbiAgR3Q6ICfiiasnLFxuICBIQVJEY3k6ICfQqicsXG4gIEhhY2VrOiAny4cnLFxuICBIYXQ6ICdeJyxcbiAgSGNpcmM6ICfEpCcsXG4gIEhmcjogJ+KEjCcsXG4gIEhpbGJlcnRTcGFjZTogJ+KEiycsXG4gIEhvcGY6ICfihI0nLFxuICBIb3Jpem9udGFsTGluZTogJ+KUgCcsXG4gIEhzY3I6ICfihIsnLFxuICBIc3Ryb2s6ICfEpicsXG4gIEh1bXBEb3duSHVtcDogJ+KJjicsXG4gIEh1bXBFcXVhbDogJ+KJjycsXG4gIElFY3k6ICfQlScsXG4gIElKbGlnOiAnxLInLFxuICBJT2N5OiAn0IEnLFxuICBJYWN1dGU6ICfDjScsXG4gIEljaXJjOiAnw44nLFxuICBJY3k6ICfQmCcsXG4gIElkb3Q6ICfEsCcsXG4gIElmcjogJ+KEkScsXG4gIElncmF2ZTogJ8OMJyxcbiAgSW06ICfihJEnLFxuICBJbWFjcjogJ8SqJyxcbiAgSW1hZ2luYXJ5STogJ+KFiCcsXG4gIEltcGxpZXM6ICfih5InLFxuICBJbnQ6ICfiiKwnLFxuICBJbnRlZ3JhbDogJ+KIqycsXG4gIEludGVyc2VjdGlvbjogJ+KLgicsXG4gIEludmlzaWJsZUNvbW1hOiAn4oGjJyxcbiAgSW52aXNpYmxlVGltZXM6ICfigaInLFxuICBJb2dvbjogJ8SuJyxcbiAgSW9wZjogJ/CdlYAnLFxuICBJb3RhOiAnzpknLFxuICBJc2NyOiAn4oSQJyxcbiAgSXRpbGRlOiAnxKgnLFxuICBJdWtjeTogJ9CGJyxcbiAgSXVtbDogJ8OPJyxcbiAgSmNpcmM6ICfEtCcsXG4gIEpjeTogJ9CZJyxcbiAgSmZyOiAn8J2UjScsXG4gIEpvcGY6ICfwnZWBJyxcbiAgSnNjcjogJ/CdkqUnLFxuICBKc2VyY3k6ICfQiCcsXG4gIEp1a2N5OiAn0IQnLFxuICBLSGN5OiAn0KUnLFxuICBLSmN5OiAn0IwnLFxuICBLYXBwYTogJ86aJyxcbiAgS2NlZGlsOiAnxLYnLFxuICBLY3k6ICfQmicsXG4gIEtmcjogJ/CdlI4nLFxuICBLb3BmOiAn8J2VgicsXG4gIEtzY3I6ICfwnZKmJyxcbiAgTEpjeTogJ9CJJyxcbiAgTFQ6ICc8JyxcbiAgTGFjdXRlOiAnxLknLFxuICBMYW1iZGE6ICfOmycsXG4gIExhbmc6ICfin6onLFxuICBMYXBsYWNldHJmOiAn4oSSJyxcbiAgTGFycjogJ+KGnicsXG4gIExjYXJvbjogJ8S9JyxcbiAgTGNlZGlsOiAnxLsnLFxuICBMY3k6ICfQmycsXG4gIExlZnRBbmdsZUJyYWNrZXQ6ICfin6gnLFxuICBMZWZ0QXJyb3c6ICfihpAnLFxuICBMZWZ0QXJyb3dCYXI6ICfih6QnLFxuICBMZWZ0QXJyb3dSaWdodEFycm93OiAn4oeGJyxcbiAgTGVmdENlaWxpbmc6ICfijIgnLFxuICBMZWZ0RG91YmxlQnJhY2tldDogJ+KfpicsXG4gIExlZnREb3duVGVlVmVjdG9yOiAn4qWhJyxcbiAgTGVmdERvd25WZWN0b3I6ICfih4MnLFxuICBMZWZ0RG93blZlY3RvckJhcjogJ+KlmScsXG4gIExlZnRGbG9vcjogJ+KMiicsXG4gIExlZnRSaWdodEFycm93OiAn4oaUJyxcbiAgTGVmdFJpZ2h0VmVjdG9yOiAn4qWOJyxcbiAgTGVmdFRlZTogJ+KKoycsXG4gIExlZnRUZWVBcnJvdzogJ+KGpCcsXG4gIExlZnRUZWVWZWN0b3I6ICfipZonLFxuICBMZWZ0VHJpYW5nbGU6ICfiirInLFxuICBMZWZ0VHJpYW5nbGVCYXI6ICfip48nLFxuICBMZWZ0VHJpYW5nbGVFcXVhbDogJ+KKtCcsXG4gIExlZnRVcERvd25WZWN0b3I6ICfipZEnLFxuICBMZWZ0VXBUZWVWZWN0b3I6ICfipaAnLFxuICBMZWZ0VXBWZWN0b3I6ICfihr8nLFxuICBMZWZ0VXBWZWN0b3JCYXI6ICfipZgnLFxuICBMZWZ0VmVjdG9yOiAn4oa8JyxcbiAgTGVmdFZlY3RvckJhcjogJ+KlkicsXG4gIExlZnRhcnJvdzogJ+KHkCcsXG4gIExlZnRyaWdodGFycm93OiAn4oeUJyxcbiAgTGVzc0VxdWFsR3JlYXRlcjogJ+KLmicsXG4gIExlc3NGdWxsRXF1YWw6ICfiiaYnLFxuICBMZXNzR3JlYXRlcjogJ+KJticsXG4gIExlc3NMZXNzOiAn4qqhJyxcbiAgTGVzc1NsYW50RXF1YWw6ICfiqb0nLFxuICBMZXNzVGlsZGU6ICfiibInLFxuICBMZnI6ICfwnZSPJyxcbiAgTGw6ICfii5gnLFxuICBMbGVmdGFycm93OiAn4oeaJyxcbiAgTG1pZG90OiAnxL8nLFxuICBMb25nTGVmdEFycm93OiAn4p+1JyxcbiAgTG9uZ0xlZnRSaWdodEFycm93OiAn4p+3JyxcbiAgTG9uZ1JpZ2h0QXJyb3c6ICfin7YnLFxuICBMb25nbGVmdGFycm93OiAn4p+4JyxcbiAgTG9uZ2xlZnRyaWdodGFycm93OiAn4p+6JyxcbiAgTG9uZ3JpZ2h0YXJyb3c6ICfin7knLFxuICBMb3BmOiAn8J2VgycsXG4gIExvd2VyTGVmdEFycm93OiAn4oaZJyxcbiAgTG93ZXJSaWdodEFycm93OiAn4oaYJyxcbiAgTHNjcjogJ+KEkicsXG4gIExzaDogJ+KGsCcsXG4gIExzdHJvazogJ8WBJyxcbiAgTHQ6ICfiiaonLFxuICBNYXA6ICfipIUnLFxuICBNY3k6ICfQnCcsXG4gIE1lZGl1bVNwYWNlOiAn4oGfJyxcbiAgTWVsbGludHJmOiAn4oSzJyxcbiAgTWZyOiAn8J2UkCcsXG4gIE1pbnVzUGx1czogJ+KIkycsXG4gIE1vcGY6ICfwnZWEJyxcbiAgTXNjcjogJ+KEsycsXG4gIE11OiAnzpwnLFxuICBOSmN5OiAn0IonLFxuICBOYWN1dGU6ICfFgycsXG4gIE5jYXJvbjogJ8WHJyxcbiAgTmNlZGlsOiAnxYUnLFxuICBOY3k6ICfQnScsXG4gIE5lZ2F0aXZlTWVkaXVtU3BhY2U6ICfigIsnLFxuICBOZWdhdGl2ZVRoaWNrU3BhY2U6ICfigIsnLFxuICBOZWdhdGl2ZVRoaW5TcGFjZTogJ+KAiycsXG4gIE5lZ2F0aXZlVmVyeVRoaW5TcGFjZTogJ+KAiycsXG4gIE5lc3RlZEdyZWF0ZXJHcmVhdGVyOiAn4omrJyxcbiAgTmVzdGVkTGVzc0xlc3M6ICfiiaonLFxuICBOZXdMaW5lOiAnXFxuJyxcbiAgTmZyOiAn8J2UkScsXG4gIE5vQnJlYWs6ICfigaAnLFxuICBOb25CcmVha2luZ1NwYWNlOiAnwqAnLFxuICBOb3BmOiAn4oSVJyxcbiAgTm90OiAn4qusJyxcbiAgTm90Q29uZ3J1ZW50OiAn4omiJyxcbiAgTm90Q3VwQ2FwOiAn4omtJyxcbiAgTm90RG91YmxlVmVydGljYWxCYXI6ICfiiKYnLFxuICBOb3RFbGVtZW50OiAn4oiJJyxcbiAgTm90RXF1YWw6ICfiiaAnLFxuICBOb3RFcXVhbFRpbGRlOiAn4omCzLgnLFxuICBOb3RFeGlzdHM6ICfiiIQnLFxuICBOb3RHcmVhdGVyOiAn4omvJyxcbiAgTm90R3JlYXRlckVxdWFsOiAn4omxJyxcbiAgTm90R3JlYXRlckZ1bGxFcXVhbDogJ+KJp8y4JyxcbiAgTm90R3JlYXRlckdyZWF0ZXI6ICfiiavMuCcsXG4gIE5vdEdyZWF0ZXJMZXNzOiAn4om5JyxcbiAgTm90R3JlYXRlclNsYW50RXF1YWw6ICfiqb7MuCcsXG4gIE5vdEdyZWF0ZXJUaWxkZTogJ+KJtScsXG4gIE5vdEh1bXBEb3duSHVtcDogJ+KJjsy4JyxcbiAgTm90SHVtcEVxdWFsOiAn4omPzLgnLFxuICBOb3RMZWZ0VHJpYW5nbGU6ICfii6onLFxuICBOb3RMZWZ0VHJpYW5nbGVCYXI6ICfip4/MuCcsXG4gIE5vdExlZnRUcmlhbmdsZUVxdWFsOiAn4ousJyxcbiAgTm90TGVzczogJ+KJricsXG4gIE5vdExlc3NFcXVhbDogJ+KJsCcsXG4gIE5vdExlc3NHcmVhdGVyOiAn4om4JyxcbiAgTm90TGVzc0xlc3M6ICfiiarMuCcsXG4gIE5vdExlc3NTbGFudEVxdWFsOiAn4qm9zLgnLFxuICBOb3RMZXNzVGlsZGU6ICfiibQnLFxuICBOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlcjogJ+Kqosy4JyxcbiAgTm90TmVzdGVkTGVzc0xlc3M6ICfiqqHMuCcsXG4gIE5vdFByZWNlZGVzOiAn4oqAJyxcbiAgTm90UHJlY2VkZXNFcXVhbDogJ+Kqr8y4JyxcbiAgTm90UHJlY2VkZXNTbGFudEVxdWFsOiAn4ougJyxcbiAgTm90UmV2ZXJzZUVsZW1lbnQ6ICfiiIwnLFxuICBOb3RSaWdodFRyaWFuZ2xlOiAn4ourJyxcbiAgTm90UmlnaHRUcmlhbmdsZUJhcjogJ+KnkMy4JyxcbiAgTm90UmlnaHRUcmlhbmdsZUVxdWFsOiAn4outJyxcbiAgTm90U3F1YXJlU3Vic2V0OiAn4oqPzLgnLFxuICBOb3RTcXVhcmVTdWJzZXRFcXVhbDogJ+KLoicsXG4gIE5vdFNxdWFyZVN1cGVyc2V0OiAn4oqQzLgnLFxuICBOb3RTcXVhcmVTdXBlcnNldEVxdWFsOiAn4oujJyxcbiAgTm90U3Vic2V0OiAn4oqC4oOSJyxcbiAgTm90U3Vic2V0RXF1YWw6ICfiiognLFxuICBOb3RTdWNjZWVkczogJ+KKgScsXG4gIE5vdFN1Y2NlZWRzRXF1YWw6ICfiqrDMuCcsXG4gIE5vdFN1Y2NlZWRzU2xhbnRFcXVhbDogJ+KLoScsXG4gIE5vdFN1Y2NlZWRzVGlsZGU6ICfiib/MuCcsXG4gIE5vdFN1cGVyc2V0OiAn4oqD4oOSJyxcbiAgTm90U3VwZXJzZXRFcXVhbDogJ+KKiScsXG4gIE5vdFRpbGRlOiAn4omBJyxcbiAgTm90VGlsZGVFcXVhbDogJ+KJhCcsXG4gIE5vdFRpbGRlRnVsbEVxdWFsOiAn4omHJyxcbiAgTm90VGlsZGVUaWxkZTogJ+KJiScsXG4gIE5vdFZlcnRpY2FsQmFyOiAn4oikJyxcbiAgTnNjcjogJ/CdkqknLFxuICBOdGlsZGU6ICfDkScsXG4gIE51OiAnzp0nLFxuICBPRWxpZzogJ8WSJyxcbiAgT2FjdXRlOiAnw5MnLFxuICBPY2lyYzogJ8OUJyxcbiAgT2N5OiAn0J4nLFxuICBPZGJsYWM6ICfFkCcsXG4gIE9mcjogJ/CdlJInLFxuICBPZ3JhdmU6ICfDkicsXG4gIE9tYWNyOiAnxYwnLFxuICBPbWVnYTogJ86pJyxcbiAgT21pY3JvbjogJ86fJyxcbiAgT29wZjogJ/CdlYYnLFxuICBPcGVuQ3VybHlEb3VibGVRdW90ZTogJ+KAnCcsXG4gIE9wZW5DdXJseVF1b3RlOiAn4oCYJyxcbiAgT3I6ICfiqZQnLFxuICBPc2NyOiAn8J2SqicsXG4gIE9zbGFzaDogJ8OYJyxcbiAgT3RpbGRlOiAnw5UnLFxuICBPdGltZXM6ICfiqLcnLFxuICBPdW1sOiAnw5YnLFxuICBPdmVyQmFyOiAn4oC+JyxcbiAgT3ZlckJyYWNlOiAn4o+eJyxcbiAgT3ZlckJyYWNrZXQ6ICfijrQnLFxuICBPdmVyUGFyZW50aGVzaXM6ICfij5wnLFxuICBQYXJ0aWFsRDogJ+KIgicsXG4gIFBjeTogJ9CfJyxcbiAgUGZyOiAn8J2UkycsXG4gIFBoaTogJ86mJyxcbiAgUGk6ICfOoCcsXG4gIFBsdXNNaW51czogJ8KxJyxcbiAgUG9pbmNhcmVwbGFuZTogJ+KEjCcsXG4gIFBvcGY6ICfihJknLFxuICBQcjogJ+KquycsXG4gIFByZWNlZGVzOiAn4om6JyxcbiAgUHJlY2VkZXNFcXVhbDogJ+KqrycsXG4gIFByZWNlZGVzU2xhbnRFcXVhbDogJ+KJvCcsXG4gIFByZWNlZGVzVGlsZGU6ICfiib4nLFxuICBQcmltZTogJ+KAsycsXG4gIFByb2R1Y3Q6ICfiiI8nLFxuICBQcm9wb3J0aW9uOiAn4oi3JyxcbiAgUHJvcG9ydGlvbmFsOiAn4oidJyxcbiAgUHNjcjogJ/CdkqsnLFxuICBQc2k6ICfOqCcsXG4gIFFVT1Q6ICdcIicsXG4gIFFmcjogJ/CdlJQnLFxuICBRb3BmOiAn4oSaJyxcbiAgUXNjcjogJ/CdkqwnLFxuICBSQmFycjogJ+KkkCcsXG4gIFJFRzogJ8KuJyxcbiAgUmFjdXRlOiAnxZQnLFxuICBSYW5nOiAn4p+rJyxcbiAgUmFycjogJ+KGoCcsXG4gIFJhcnJ0bDogJ+KklicsXG4gIFJjYXJvbjogJ8WYJyxcbiAgUmNlZGlsOiAnxZYnLFxuICBSY3k6ICfQoCcsXG4gIFJlOiAn4oScJyxcbiAgUmV2ZXJzZUVsZW1lbnQ6ICfiiIsnLFxuICBSZXZlcnNlRXF1aWxpYnJpdW06ICfih4snLFxuICBSZXZlcnNlVXBFcXVpbGlicml1bTogJ+KlrycsXG4gIFJmcjogJ+KEnCcsXG4gIFJobzogJ86hJyxcbiAgUmlnaHRBbmdsZUJyYWNrZXQ6ICfin6knLFxuICBSaWdodEFycm93OiAn4oaSJyxcbiAgUmlnaHRBcnJvd0JhcjogJ+KHpScsXG4gIFJpZ2h0QXJyb3dMZWZ0QXJyb3c6ICfih4QnLFxuICBSaWdodENlaWxpbmc6ICfijIknLFxuICBSaWdodERvdWJsZUJyYWNrZXQ6ICfin6cnLFxuICBSaWdodERvd25UZWVWZWN0b3I6ICfipZ0nLFxuICBSaWdodERvd25WZWN0b3I6ICfih4InLFxuICBSaWdodERvd25WZWN0b3JCYXI6ICfipZUnLFxuICBSaWdodEZsb29yOiAn4oyLJyxcbiAgUmlnaHRUZWU6ICfiiqInLFxuICBSaWdodFRlZUFycm93OiAn4oamJyxcbiAgUmlnaHRUZWVWZWN0b3I6ICfipZsnLFxuICBSaWdodFRyaWFuZ2xlOiAn4oqzJyxcbiAgUmlnaHRUcmlhbmdsZUJhcjogJ+KnkCcsXG4gIFJpZ2h0VHJpYW5nbGVFcXVhbDogJ+KKtScsXG4gIFJpZ2h0VXBEb3duVmVjdG9yOiAn4qWPJyxcbiAgUmlnaHRVcFRlZVZlY3RvcjogJ+KlnCcsXG4gIFJpZ2h0VXBWZWN0b3I6ICfihr4nLFxuICBSaWdodFVwVmVjdG9yQmFyOiAn4qWUJyxcbiAgUmlnaHRWZWN0b3I6ICfih4AnLFxuICBSaWdodFZlY3RvckJhcjogJ+KlkycsXG4gIFJpZ2h0YXJyb3c6ICfih5InLFxuICBSb3BmOiAn4oSdJyxcbiAgUm91bmRJbXBsaWVzOiAn4qWwJyxcbiAgUnJpZ2h0YXJyb3c6ICfih5snLFxuICBSc2NyOiAn4oSbJyxcbiAgUnNoOiAn4oaxJyxcbiAgUnVsZURlbGF5ZWQ6ICfip7QnLFxuICBTSENIY3k6ICfQqScsXG4gIFNIY3k6ICfQqCcsXG4gIFNPRlRjeTogJ9CsJyxcbiAgU2FjdXRlOiAnxZonLFxuICBTYzogJ+KqvCcsXG4gIFNjYXJvbjogJ8WgJyxcbiAgU2NlZGlsOiAnxZ4nLFxuICBTY2lyYzogJ8WcJyxcbiAgU2N5OiAn0KEnLFxuICBTZnI6ICfwnZSWJyxcbiAgU2hvcnREb3duQXJyb3c6ICfihpMnLFxuICBTaG9ydExlZnRBcnJvdzogJ+KGkCcsXG4gIFNob3J0UmlnaHRBcnJvdzogJ+KGkicsXG4gIFNob3J0VXBBcnJvdzogJ+KGkScsXG4gIFNpZ21hOiAnzqMnLFxuICBTbWFsbENpcmNsZTogJ+KImCcsXG4gIFNvcGY6ICfwnZWKJyxcbiAgU3FydDogJ+KImicsXG4gIFNxdWFyZTogJ+KWoScsXG4gIFNxdWFyZUludGVyc2VjdGlvbjogJ+KKkycsXG4gIFNxdWFyZVN1YnNldDogJ+KKjycsXG4gIFNxdWFyZVN1YnNldEVxdWFsOiAn4oqRJyxcbiAgU3F1YXJlU3VwZXJzZXQ6ICfiipAnLFxuICBTcXVhcmVTdXBlcnNldEVxdWFsOiAn4oqSJyxcbiAgU3F1YXJlVW5pb246ICfiipQnLFxuICBTc2NyOiAn8J2SricsXG4gIFN0YXI6ICfii4YnLFxuICBTdWI6ICfii5AnLFxuICBTdWJzZXQ6ICfii5AnLFxuICBTdWJzZXRFcXVhbDogJ+KKhicsXG4gIFN1Y2NlZWRzOiAn4om7JyxcbiAgU3VjY2VlZHNFcXVhbDogJ+KqsCcsXG4gIFN1Y2NlZWRzU2xhbnRFcXVhbDogJ+KJvScsXG4gIFN1Y2NlZWRzVGlsZGU6ICfiib8nLFxuICBTdWNoVGhhdDogJ+KIiycsXG4gIFN1bTogJ+KIkScsXG4gIFN1cDogJ+KLkScsXG4gIFN1cGVyc2V0OiAn4oqDJyxcbiAgU3VwZXJzZXRFcXVhbDogJ+KKhycsXG4gIFN1cHNldDogJ+KLkScsXG4gIFRIT1JOOiAnw54nLFxuICBUUkFERTogJ+KEoicsXG4gIFRTSGN5OiAn0IsnLFxuICBUU2N5OiAn0KYnLFxuICBUYWI6ICdcXHQnLFxuICBUYXU6ICfOpCcsXG4gIFRjYXJvbjogJ8WkJyxcbiAgVGNlZGlsOiAnxaInLFxuICBUY3k6ICfQoicsXG4gIFRmcjogJ/CdlJcnLFxuICBUaGVyZWZvcmU6ICfiiLQnLFxuICBUaGV0YTogJ86YJyxcbiAgVGhpY2tTcGFjZTogJ+KBn+KAiicsXG4gIFRoaW5TcGFjZTogJ+KAiScsXG4gIFRpbGRlOiAn4oi8JyxcbiAgVGlsZGVFcXVhbDogJ+KJgycsXG4gIFRpbGRlRnVsbEVxdWFsOiAn4omFJyxcbiAgVGlsZGVUaWxkZTogJ+KJiCcsXG4gIFRvcGY6ICfwnZWLJyxcbiAgVHJpcGxlRG90OiAn4oObJyxcbiAgVHNjcjogJ/Cdkq8nLFxuICBUc3Ryb2s6ICfFpicsXG4gIFVhY3V0ZTogJ8OaJyxcbiAgVWFycjogJ+KGnycsXG4gIFVhcnJvY2lyOiAn4qWJJyxcbiAgVWJyY3k6ICfQjicsXG4gIFVicmV2ZTogJ8WsJyxcbiAgVWNpcmM6ICfDmycsXG4gIFVjeTogJ9CjJyxcbiAgVWRibGFjOiAnxbAnLFxuICBVZnI6ICfwnZSYJyxcbiAgVWdyYXZlOiAnw5knLFxuICBVbWFjcjogJ8WqJyxcbiAgVW5kZXJCYXI6ICdfJyxcbiAgVW5kZXJCcmFjZTogJ+KPnycsXG4gIFVuZGVyQnJhY2tldDogJ+KOtScsXG4gIFVuZGVyUGFyZW50aGVzaXM6ICfij50nLFxuICBVbmlvbjogJ+KLgycsXG4gIFVuaW9uUGx1czogJ+KKjicsXG4gIFVvZ29uOiAnxbInLFxuICBVb3BmOiAn8J2VjCcsXG4gIFVwQXJyb3c6ICfihpEnLFxuICBVcEFycm93QmFyOiAn4qSSJyxcbiAgVXBBcnJvd0Rvd25BcnJvdzogJ+KHhScsXG4gIFVwRG93bkFycm93OiAn4oaVJyxcbiAgVXBFcXVpbGlicml1bTogJ+KlricsXG4gIFVwVGVlOiAn4oqlJyxcbiAgVXBUZWVBcnJvdzogJ+KGpScsXG4gIFVwYXJyb3c6ICfih5EnLFxuICBVcGRvd25hcnJvdzogJ+KHlScsXG4gIFVwcGVyTGVmdEFycm93OiAn4oaWJyxcbiAgVXBwZXJSaWdodEFycm93OiAn4oaXJyxcbiAgVXBzaTogJ8+SJyxcbiAgVXBzaWxvbjogJ86lJyxcbiAgVXJpbmc6ICfFricsXG4gIFVzY3I6ICfwnZKwJyxcbiAgVXRpbGRlOiAnxagnLFxuICBVdW1sOiAnw5wnLFxuICBWRGFzaDogJ+KKqycsXG4gIFZiYXI6ICfiq6snLFxuICBWY3k6ICfQkicsXG4gIFZkYXNoOiAn4oqpJyxcbiAgVmRhc2hsOiAn4qumJyxcbiAgVmVlOiAn4ouBJyxcbiAgVmVyYmFyOiAn4oCWJyxcbiAgVmVydDogJ+KAlicsXG4gIFZlcnRpY2FsQmFyOiAn4oijJyxcbiAgVmVydGljYWxMaW5lOiAnfCcsXG4gIFZlcnRpY2FsU2VwYXJhdG9yOiAn4p2YJyxcbiAgVmVydGljYWxUaWxkZTogJ+KJgCcsXG4gIFZlcnlUaGluU3BhY2U6ICfigIonLFxuICBWZnI6ICfwnZSZJyxcbiAgVm9wZjogJ/CdlY0nLFxuICBWc2NyOiAn8J2SsScsXG4gIFZ2ZGFzaDogJ+KKqicsXG4gIFdjaXJjOiAnxbQnLFxuICBXZWRnZTogJ+KLgCcsXG4gIFdmcjogJ/CdlJonLFxuICBXb3BmOiAn8J2VjicsXG4gIFdzY3I6ICfwnZKyJyxcbiAgWGZyOiAn8J2UmycsXG4gIFhpOiAnzp4nLFxuICBYb3BmOiAn8J2VjycsXG4gIFhzY3I6ICfwnZKzJyxcbiAgWUFjeTogJ9CvJyxcbiAgWUljeTogJ9CHJyxcbiAgWVVjeTogJ9CuJyxcbiAgWWFjdXRlOiAnw50nLFxuICBZY2lyYzogJ8W2JyxcbiAgWWN5OiAn0KsnLFxuICBZZnI6ICfwnZScJyxcbiAgWW9wZjogJ/CdlZAnLFxuICBZc2NyOiAn8J2StCcsXG4gIFl1bWw6ICfFuCcsXG4gIFpIY3k6ICfQlicsXG4gIFphY3V0ZTogJ8W5JyxcbiAgWmNhcm9uOiAnxb0nLFxuICBaY3k6ICfQlycsXG4gIFpkb3Q6ICfFuycsXG4gIFplcm9XaWR0aFNwYWNlOiAn4oCLJyxcbiAgWmV0YTogJ86WJyxcbiAgWmZyOiAn4oSoJyxcbiAgWm9wZjogJ+KEpCcsXG4gIFpzY3I6ICfwnZK1JyxcbiAgYWFjdXRlOiAnw6EnLFxuICBhYnJldmU6ICfEgycsXG4gIGFjOiAn4oi+JyxcbiAgYWNFOiAn4oi+zLMnLFxuICBhY2Q6ICfiiL8nLFxuICBhY2lyYzogJ8OiJyxcbiAgYWN1dGU6ICfCtCcsXG4gIGFjeTogJ9CwJyxcbiAgYWVsaWc6ICfDpicsXG4gIGFmOiAn4oGhJyxcbiAgYWZyOiAn8J2UnicsXG4gIGFncmF2ZTogJ8OgJyxcbiAgYWxlZnN5bTogJ+KEtScsXG4gIGFsZXBoOiAn4oS1JyxcbiAgYWxwaGE6ICfOsScsXG4gIGFtYWNyOiAnxIEnLFxuICBhbWFsZzogJ+KovycsXG4gIGFtcDogJyYnLFxuICBhbmQ6ICfiiKcnLFxuICBhbmRhbmQ6ICfiqZUnLFxuICBhbmRkOiAn4qmcJyxcbiAgYW5kc2xvcGU6ICfiqZgnLFxuICBhbmR2OiAn4qmaJyxcbiAgYW5nOiAn4oigJyxcbiAgYW5nZTogJ+KmpCcsXG4gIGFuZ2xlOiAn4oigJyxcbiAgYW5nbXNkOiAn4oihJyxcbiAgYW5nbXNkYWE6ICfipqgnLFxuICBhbmdtc2RhYjogJ+KmqScsXG4gIGFuZ21zZGFjOiAn4qaqJyxcbiAgYW5nbXNkYWQ6ICfipqsnLFxuICBhbmdtc2RhZTogJ+KmrCcsXG4gIGFuZ21zZGFmOiAn4qatJyxcbiAgYW5nbXNkYWc6ICfipq4nLFxuICBhbmdtc2RhaDogJ+KmrycsXG4gIGFuZ3J0OiAn4oifJyxcbiAgYW5ncnR2YjogJ+KKvicsXG4gIGFuZ3J0dmJkOiAn4qadJyxcbiAgYW5nc3BoOiAn4oiiJyxcbiAgYW5nc3Q6ICfDhScsXG4gIGFuZ3phcnI6ICfijbwnLFxuICBhb2dvbjogJ8SFJyxcbiAgYW9wZjogJ/CdlZInLFxuICBhcDogJ+KJiCcsXG4gIGFwRTogJ+KpsCcsXG4gIGFwYWNpcjogJ+KprycsXG4gIGFwZTogJ+KJiicsXG4gIGFwaWQ6ICfiiYsnLFxuICBhcG9zOiBcIidcIixcbiAgYXBwcm94OiAn4omIJyxcbiAgYXBwcm94ZXE6ICfiiYonLFxuICBhcmluZzogJ8OlJyxcbiAgYXNjcjogJ/CdkrYnLFxuICBhc3Q6ICcqJyxcbiAgYXN5bXA6ICfiiYgnLFxuICBhc3ltcGVxOiAn4omNJyxcbiAgYXRpbGRlOiAnw6MnLFxuICBhdW1sOiAnw6QnLFxuICBhd2NvbmludDogJ+KIsycsXG4gIGF3aW50OiAn4qiRJyxcbiAgYk5vdDogJ+KrrScsXG4gIGJhY2tjb25nOiAn4omMJyxcbiAgYmFja2Vwc2lsb246ICfPticsXG4gIGJhY2twcmltZTogJ+KAtScsXG4gIGJhY2tzaW06ICfiiL0nLFxuICBiYWNrc2ltZXE6ICfii40nLFxuICBiYXJ2ZWU6ICfiir0nLFxuICBiYXJ3ZWQ6ICfijIUnLFxuICBiYXJ3ZWRnZTogJ+KMhScsXG4gIGJicms6ICfijrUnLFxuICBiYnJrdGJyazogJ+KOticsXG4gIGJjb25nOiAn4omMJyxcbiAgYmN5OiAn0LEnLFxuICBiZHF1bzogJ+KAnicsXG4gIGJlY2F1czogJ+KItScsXG4gIGJlY2F1c2U6ICfiiLUnLFxuICBiZW1wdHl2OiAn4qawJyxcbiAgYmVwc2k6ICfPticsXG4gIGJlcm5vdTogJ+KErCcsXG4gIGJldGE6ICfOsicsXG4gIGJldGg6ICfihLYnLFxuICBiZXR3ZWVuOiAn4omsJyxcbiAgYmZyOiAn8J2UnycsXG4gIGJpZ2NhcDogJ+KLgicsXG4gIGJpZ2NpcmM6ICfil68nLFxuICBiaWdjdXA6ICfii4MnLFxuICBiaWdvZG90OiAn4qiAJyxcbiAgYmlnb3BsdXM6ICfiqIEnLFxuICBiaWdvdGltZXM6ICfiqIInLFxuICBiaWdzcWN1cDogJ+KohicsXG4gIGJpZ3N0YXI6ICfimIUnLFxuICBiaWd0cmlhbmdsZWRvd246ICfilr0nLFxuICBiaWd0cmlhbmdsZXVwOiAn4pazJyxcbiAgYmlndXBsdXM6ICfiqIQnLFxuICBiaWd2ZWU6ICfii4EnLFxuICBiaWd3ZWRnZTogJ+KLgCcsXG4gIGJrYXJvdzogJ+KkjScsXG4gIGJsYWNrbG96ZW5nZTogJ+KnqycsXG4gIGJsYWNrc3F1YXJlOiAn4paqJyxcbiAgYmxhY2t0cmlhbmdsZTogJ+KWtCcsXG4gIGJsYWNrdHJpYW5nbGVkb3duOiAn4pa+JyxcbiAgYmxhY2t0cmlhbmdsZWxlZnQ6ICfil4InLFxuICBibGFja3RyaWFuZ2xlcmlnaHQ6ICfilrgnLFxuICBibGFuazogJ+KQoycsXG4gIGJsazEyOiAn4paSJyxcbiAgYmxrMTQ6ICfilpEnLFxuICBibGszNDogJ+KWkycsXG4gIGJsb2NrOiAn4paIJyxcbiAgYm5lOiAnPeKDpScsXG4gIGJuZXF1aXY6ICfiiaHig6UnLFxuICBibm90OiAn4oyQJyxcbiAgYm9wZjogJ/CdlZMnLFxuICBib3Q6ICfiiqUnLFxuICBib3R0b206ICfiiqUnLFxuICBib3d0aWU6ICfii4gnLFxuICBib3hETDogJ+KVlycsXG4gIGJveERSOiAn4pWUJyxcbiAgYm94RGw6ICfilZYnLFxuICBib3hEcjogJ+KVkycsXG4gIGJveEg6ICfilZAnLFxuICBib3hIRDogJ+KVpicsXG4gIGJveEhVOiAn4pWpJyxcbiAgYm94SGQ6ICfilaQnLFxuICBib3hIdTogJ+KVpycsXG4gIGJveFVMOiAn4pWdJyxcbiAgYm94VVI6ICfilZonLFxuICBib3hVbDogJ+KVnCcsXG4gIGJveFVyOiAn4pWZJyxcbiAgYm94VjogJ+KVkScsXG4gIGJveFZIOiAn4pWsJyxcbiAgYm94Vkw6ICfilaMnLFxuICBib3hWUjogJ+KVoCcsXG4gIGJveFZoOiAn4pWrJyxcbiAgYm94Vmw6ICfilaInLFxuICBib3hWcjogJ+KVnycsXG4gIGJveGJveDogJ+KniScsXG4gIGJveGRMOiAn4pWVJyxcbiAgYm94ZFI6ICfilZInLFxuICBib3hkbDogJ+KUkCcsXG4gIGJveGRyOiAn4pSMJyxcbiAgYm94aDogJ+KUgCcsXG4gIGJveGhEOiAn4pWlJyxcbiAgYm94aFU6ICfilagnLFxuICBib3hoZDogJ+KUrCcsXG4gIGJveGh1OiAn4pS0JyxcbiAgYm94bWludXM6ICfiip8nLFxuICBib3hwbHVzOiAn4oqeJyxcbiAgYm94dGltZXM6ICfiiqAnLFxuICBib3h1TDogJ+KVmycsXG4gIGJveHVSOiAn4pWYJyxcbiAgYm94dWw6ICfilJgnLFxuICBib3h1cjogJ+KUlCcsXG4gIGJveHY6ICfilIInLFxuICBib3h2SDogJ+KVqicsXG4gIGJveHZMOiAn4pWhJyxcbiAgYm94dlI6ICfilZ4nLFxuICBib3h2aDogJ+KUvCcsXG4gIGJveHZsOiAn4pSkJyxcbiAgYm94dnI6ICfilJwnLFxuICBicHJpbWU6ICfigLUnLFxuICBicmV2ZTogJ8uYJyxcbiAgYnJ2YmFyOiAnwqYnLFxuICBic2NyOiAn8J2StycsXG4gIGJzZW1pOiAn4oGPJyxcbiAgYnNpbTogJ+KIvScsXG4gIGJzaW1lOiAn4ouNJyxcbiAgYnNvbDogJ1xcXFwnLFxuICBic29sYjogJ+KnhScsXG4gIGJzb2xoc3ViOiAn4p+IJyxcbiAgYnVsbDogJ+KAoicsXG4gIGJ1bGxldDogJ+KAoicsXG4gIGJ1bXA6ICfiiY4nLFxuICBidW1wRTogJ+KqricsXG4gIGJ1bXBlOiAn4omPJyxcbiAgYnVtcGVxOiAn4omPJyxcbiAgY2FjdXRlOiAnxIcnLFxuICBjYXA6ICfiiKknLFxuICBjYXBhbmQ6ICfiqYQnLFxuICBjYXBicmN1cDogJ+KpiScsXG4gIGNhcGNhcDogJ+KpiycsXG4gIGNhcGN1cDogJ+KphycsXG4gIGNhcGRvdDogJ+KpgCcsXG4gIGNhcHM6ICfiiKnvuIAnLFxuICBjYXJldDogJ+KBgScsXG4gIGNhcm9uOiAny4cnLFxuICBjY2FwczogJ+KpjScsXG4gIGNjYXJvbjogJ8SNJyxcbiAgY2NlZGlsOiAnw6cnLFxuICBjY2lyYzogJ8SJJyxcbiAgY2N1cHM6ICfiqYwnLFxuICBjY3Vwc3NtOiAn4qmQJyxcbiAgY2RvdDogJ8SLJyxcbiAgY2VkaWw6ICfCuCcsXG4gIGNlbXB0eXY6ICfiprInLFxuICBjZW50OiAnwqInLFxuICBjZW50ZXJkb3Q6ICfCtycsXG4gIGNmcjogJ/CdlKAnLFxuICBjaGN5OiAn0YcnLFxuICBjaGVjazogJ+KckycsXG4gIGNoZWNrbWFyazogJ+KckycsXG4gIGNoaTogJ8+HJyxcbiAgY2lyOiAn4peLJyxcbiAgY2lyRTogJ+KngycsXG4gIGNpcmM6ICfLhicsXG4gIGNpcmNlcTogJ+KJlycsXG4gIGNpcmNsZWFycm93bGVmdDogJ+KGuicsXG4gIGNpcmNsZWFycm93cmlnaHQ6ICfihrsnLFxuICBjaXJjbGVkUjogJ8KuJyxcbiAgY2lyY2xlZFM6ICfik4gnLFxuICBjaXJjbGVkYXN0OiAn4oqbJyxcbiAgY2lyY2xlZGNpcmM6ICfiiponLFxuICBjaXJjbGVkZGFzaDogJ+KKnScsXG4gIGNpcmU6ICfiiZcnLFxuICBjaXJmbmludDogJ+KokCcsXG4gIGNpcm1pZDogJ+KrrycsXG4gIGNpcnNjaXI6ICfip4InLFxuICBjbHViczogJ+KZoycsXG4gIGNsdWJzdWl0OiAn4pmjJyxcbiAgY29sb246ICc6JyxcbiAgY29sb25lOiAn4omUJyxcbiAgY29sb25lcTogJ+KJlCcsXG4gIGNvbW1hOiAnLCcsXG4gIGNvbW1hdDogJ0AnLFxuICBjb21wOiAn4oiBJyxcbiAgY29tcGZuOiAn4oiYJyxcbiAgY29tcGxlbWVudDogJ+KIgScsXG4gIGNvbXBsZXhlczogJ+KEgicsXG4gIGNvbmc6ICfiiYUnLFxuICBjb25nZG90OiAn4qmtJyxcbiAgY29uaW50OiAn4oiuJyxcbiAgY29wZjogJ/CdlZQnLFxuICBjb3Byb2Q6ICfiiJAnLFxuICBjb3B5OiAnwqknLFxuICBjb3B5c3I6ICfihJcnLFxuICBjcmFycjogJ+KGtScsXG4gIGNyb3NzOiAn4pyXJyxcbiAgY3NjcjogJ/CdkrgnLFxuICBjc3ViOiAn4quPJyxcbiAgY3N1YmU6ICfiq5EnLFxuICBjc3VwOiAn4quQJyxcbiAgY3N1cGU6ICfiq5InLFxuICBjdGRvdDogJ+KLrycsXG4gIGN1ZGFycmw6ICfipLgnLFxuICBjdWRhcnJyOiAn4qS1JyxcbiAgY3VlcHI6ICfii54nLFxuICBjdWVzYzogJ+KLnycsXG4gIGN1bGFycjogJ+KGticsXG4gIGN1bGFycnA6ICfipL0nLFxuICBjdXA6ICfiiKonLFxuICBjdXBicmNhcDogJ+KpiCcsXG4gIGN1cGNhcDogJ+KphicsXG4gIGN1cGN1cDogJ+KpiicsXG4gIGN1cGRvdDogJ+KKjScsXG4gIGN1cG9yOiAn4qmFJyxcbiAgY3VwczogJ+KIqu+4gCcsXG4gIGN1cmFycjogJ+KGtycsXG4gIGN1cmFycm06ICfipLwnLFxuICBjdXJseWVxcHJlYzogJ+KLnicsXG4gIGN1cmx5ZXFzdWNjOiAn4oufJyxcbiAgY3VybHl2ZWU6ICfii44nLFxuICBjdXJseXdlZGdlOiAn4ouPJyxcbiAgY3VycmVuOiAnwqQnLFxuICBjdXJ2ZWFycm93bGVmdDogJ+KGticsXG4gIGN1cnZlYXJyb3dyaWdodDogJ+KGtycsXG4gIGN1dmVlOiAn4ouOJyxcbiAgY3V3ZWQ6ICfii48nLFxuICBjd2NvbmludDogJ+KIsicsXG4gIGN3aW50OiAn4oixJyxcbiAgY3lsY3R5OiAn4oytJyxcbiAgZEFycjogJ+KHkycsXG4gIGRIYXI6ICfipaUnLFxuICBkYWdnZXI6ICfigKAnLFxuICBkYWxldGg6ICfihLgnLFxuICBkYXJyOiAn4oaTJyxcbiAgZGFzaDogJ+KAkCcsXG4gIGRhc2h2OiAn4oqjJyxcbiAgZGJrYXJvdzogJ+KkjycsXG4gIGRibGFjOiAny50nLFxuICBkY2Fyb246ICfEjycsXG4gIGRjeTogJ9C0JyxcbiAgZGQ6ICfihYYnLFxuICBkZGFnZ2VyOiAn4oChJyxcbiAgZGRhcnI6ICfih4onLFxuICBkZG90c2VxOiAn4qm3JyxcbiAgZGVnOiAnwrAnLFxuICBkZWx0YTogJ860JyxcbiAgZGVtcHR5djogJ+KmsScsXG4gIGRmaXNodDogJ+KlvycsXG4gIGRmcjogJ/CdlKEnLFxuICBkaGFybDogJ+KHgycsXG4gIGRoYXJyOiAn4oeCJyxcbiAgZGlhbTogJ+KLhCcsXG4gIGRpYW1vbmQ6ICfii4QnLFxuICBkaWFtb25kc3VpdDogJ+KZpicsXG4gIGRpYW1zOiAn4pmmJyxcbiAgZGllOiAnwqgnLFxuICBkaWdhbW1hOiAnz50nLFxuICBkaXNpbjogJ+KLsicsXG4gIGRpdjogJ8O3JyxcbiAgZGl2aWRlOiAnw7cnLFxuICBkaXZpZGVvbnRpbWVzOiAn4ouHJyxcbiAgZGl2b254OiAn4ouHJyxcbiAgZGpjeTogJ9GSJyxcbiAgZGxjb3JuOiAn4oyeJyxcbiAgZGxjcm9wOiAn4oyNJyxcbiAgZG9sbGFyOiAnJCcsXG4gIGRvcGY6ICfwnZWVJyxcbiAgZG90OiAny5knLFxuICBkb3RlcTogJ+KJkCcsXG4gIGRvdGVxZG90OiAn4omRJyxcbiAgZG90bWludXM6ICfiiLgnLFxuICBkb3RwbHVzOiAn4oiUJyxcbiAgZG90c3F1YXJlOiAn4oqhJyxcbiAgZG91YmxlYmFyd2VkZ2U6ICfijIYnLFxuICBkb3duYXJyb3c6ICfihpMnLFxuICBkb3duZG93bmFycm93czogJ+KHiicsXG4gIGRvd25oYXJwb29ubGVmdDogJ+KHgycsXG4gIGRvd25oYXJwb29ucmlnaHQ6ICfih4InLFxuICBkcmJrYXJvdzogJ+KkkCcsXG4gIGRyY29ybjogJ+KMnycsXG4gIGRyY3JvcDogJ+KMjCcsXG4gIGRzY3I6ICfwnZK5JyxcbiAgZHNjeTogJ9GVJyxcbiAgZHNvbDogJ+KnticsXG4gIGRzdHJvazogJ8SRJyxcbiAgZHRkb3Q6ICfii7EnLFxuICBkdHJpOiAn4pa/JyxcbiAgZHRyaWY6ICfilr4nLFxuICBkdWFycjogJ+KHtScsXG4gIGR1aGFyOiAn4qWvJyxcbiAgZHdhbmdsZTogJ+KmpicsXG4gIGR6Y3k6ICfRnycsXG4gIGR6aWdyYXJyOiAn4p+/JyxcbiAgZUREb3Q6ICfiqbcnLFxuICBlRG90OiAn4omRJyxcbiAgZWFjdXRlOiAnw6knLFxuICBlYXN0ZXI6ICfiqa4nLFxuICBlY2Fyb246ICfEmycsXG4gIGVjaXI6ICfiiZYnLFxuICBlY2lyYzogJ8OqJyxcbiAgZWNvbG9uOiAn4omVJyxcbiAgZWN5OiAn0Y0nLFxuICBlZG90OiAnxJcnLFxuICBlZTogJ+KFhycsXG4gIGVmRG90OiAn4omSJyxcbiAgZWZyOiAn8J2UoicsXG4gIGVnOiAn4qqaJyxcbiAgZWdyYXZlOiAnw6gnLFxuICBlZ3M6ICfiqpYnLFxuICBlZ3Nkb3Q6ICfiqpgnLFxuICBlbDogJ+KqmScsXG4gIGVsaW50ZXJzOiAn4o+nJyxcbiAgZWxsOiAn4oSTJyxcbiAgZWxzOiAn4qqVJyxcbiAgZWxzZG90OiAn4qqXJyxcbiAgZW1hY3I6ICfEkycsXG4gIGVtcHR5OiAn4oiFJyxcbiAgZW1wdHlzZXQ6ICfiiIUnLFxuICBlbXB0eXY6ICfiiIUnLFxuICBlbXNwMTM6ICfigIQnLFxuICBlbXNwMTQ6ICfigIUnLFxuICBlbXNwOiAn4oCDJyxcbiAgZW5nOiAnxYsnLFxuICBlbnNwOiAn4oCCJyxcbiAgZW9nb246ICfEmScsXG4gIGVvcGY6ICfwnZWWJyxcbiAgZXBhcjogJ+KLlScsXG4gIGVwYXJzbDogJ+KnoycsXG4gIGVwbHVzOiAn4qmxJyxcbiAgZXBzaTogJ861JyxcbiAgZXBzaWxvbjogJ861JyxcbiAgZXBzaXY6ICfPtScsXG4gIGVxY2lyYzogJ+KJlicsXG4gIGVxY29sb246ICfiiZUnLFxuICBlcXNpbTogJ+KJgicsXG4gIGVxc2xhbnRndHI6ICfiqpYnLFxuICBlcXNsYW50bGVzczogJ+KqlScsXG4gIGVxdWFsczogJz0nLFxuICBlcXVlc3Q6ICfiiZ8nLFxuICBlcXVpdjogJ+KJoScsXG4gIGVxdWl2REQ6ICfiqbgnLFxuICBlcXZwYXJzbDogJ+KnpScsXG4gIGVyRG90OiAn4omTJyxcbiAgZXJhcnI6ICfipbEnLFxuICBlc2NyOiAn4oSvJyxcbiAgZXNkb3Q6ICfiiZAnLFxuICBlc2ltOiAn4omCJyxcbiAgZXRhOiAnzrcnLFxuICBldGg6ICfDsCcsXG4gIGV1bWw6ICfDqycsXG4gIGV1cm86ICfigqwnLFxuICBleGNsOiAnIScsXG4gIGV4aXN0OiAn4oiDJyxcbiAgZXhwZWN0YXRpb246ICfihLAnLFxuICBleHBvbmVudGlhbGU6ICfihYcnLFxuICBmYWxsaW5nZG90c2VxOiAn4omSJyxcbiAgZmN5OiAn0YQnLFxuICBmZW1hbGU6ICfimYAnLFxuICBmZmlsaWc6ICfvrIMnLFxuICBmZmxpZzogJ++sgCcsXG4gIGZmbGxpZzogJ++shCcsXG4gIGZmcjogJ/CdlKMnLFxuICBmaWxpZzogJ++sgScsXG4gIGZqbGlnOiAnZmonLFxuICBmbGF0OiAn4pmtJyxcbiAgZmxsaWc6ICfvrIInLFxuICBmbHRuczogJ+KWsScsXG4gIGZub2Y6ICfGkicsXG4gIGZvcGY6ICfwnZWXJyxcbiAgZm9yYWxsOiAn4oiAJyxcbiAgZm9yazogJ+KLlCcsXG4gIGZvcmt2OiAn4quZJyxcbiAgZnBhcnRpbnQ6ICfiqI0nLFxuICBmcmFjMTI6ICfCvScsXG4gIGZyYWMxMzogJ+KFkycsXG4gIGZyYWMxNDogJ8K8JyxcbiAgZnJhYzE1OiAn4oWVJyxcbiAgZnJhYzE2OiAn4oWZJyxcbiAgZnJhYzE4OiAn4oWbJyxcbiAgZnJhYzIzOiAn4oWUJyxcbiAgZnJhYzI1OiAn4oWWJyxcbiAgZnJhYzM0OiAnwr4nLFxuICBmcmFjMzU6ICfihZcnLFxuICBmcmFjMzg6ICfihZwnLFxuICBmcmFjNDU6ICfihZgnLFxuICBmcmFjNTY6ICfihZonLFxuICBmcmFjNTg6ICfihZ0nLFxuICBmcmFjNzg6ICfihZ4nLFxuICBmcmFzbDogJ+KBhCcsXG4gIGZyb3duOiAn4oyiJyxcbiAgZnNjcjogJ/CdkrsnLFxuICBnRTogJ+KJpycsXG4gIGdFbDogJ+KqjCcsXG4gIGdhY3V0ZTogJ8e1JyxcbiAgZ2FtbWE6ICfOsycsXG4gIGdhbW1hZDogJ8+dJyxcbiAgZ2FwOiAn4qqGJyxcbiAgZ2JyZXZlOiAnxJ8nLFxuICBnY2lyYzogJ8SdJyxcbiAgZ2N5OiAn0LMnLFxuICBnZG90OiAnxKEnLFxuICBnZTogJ+KJpScsXG4gIGdlbDogJ+KLmycsXG4gIGdlcTogJ+KJpScsXG4gIGdlcXE6ICfiiacnLFxuICBnZXFzbGFudDogJ+KpvicsXG4gIGdlczogJ+KpvicsXG4gIGdlc2NjOiAn4qqpJyxcbiAgZ2VzZG90OiAn4qqAJyxcbiAgZ2VzZG90bzogJ+KqgicsXG4gIGdlc2RvdG9sOiAn4qqEJyxcbiAgZ2VzbDogJ+KLm++4gCcsXG4gIGdlc2xlczogJ+KqlCcsXG4gIGdmcjogJ/CdlKQnLFxuICBnZzogJ+KJqycsXG4gIGdnZzogJ+KLmScsXG4gIGdpbWVsOiAn4oS3JyxcbiAgZ2pjeTogJ9GTJyxcbiAgZ2w6ICfiibcnLFxuICBnbEU6ICfiqpInLFxuICBnbGE6ICfiqqUnLFxuICBnbGo6ICfiqqQnLFxuICBnbkU6ICfiiaknLFxuICBnbmFwOiAn4qqKJyxcbiAgZ25hcHByb3g6ICfiqoonLFxuICBnbmU6ICfiqognLFxuICBnbmVxOiAn4qqIJyxcbiAgZ25lcXE6ICfiiaknLFxuICBnbnNpbTogJ+KLpycsXG4gIGdvcGY6ICfwnZWYJyxcbiAgZ3JhdmU6ICdgJyxcbiAgZ3NjcjogJ+KEiicsXG4gIGdzaW06ICfiibMnLFxuICBnc2ltZTogJ+KqjicsXG4gIGdzaW1sOiAn4qqQJyxcbiAgZ3Q6ICc+JyxcbiAgZ3RjYzogJ+KqpycsXG4gIGd0Y2lyOiAn4qm6JyxcbiAgZ3Rkb3Q6ICfii5cnLFxuICBndGxQYXI6ICfippUnLFxuICBndHF1ZXN0OiAn4qm8JyxcbiAgZ3RyYXBwcm94OiAn4qqGJyxcbiAgZ3RyYXJyOiAn4qW4JyxcbiAgZ3RyZG90OiAn4ouXJyxcbiAgZ3RyZXFsZXNzOiAn4oubJyxcbiAgZ3RyZXFxbGVzczogJ+KqjCcsXG4gIGd0cmxlc3M6ICfiibcnLFxuICBndHJzaW06ICfiibMnLFxuICBndmVydG5lcXE6ICfiianvuIAnLFxuICBndm5FOiAn4omp77iAJyxcbiAgaEFycjogJ+KHlCcsXG4gIGhhaXJzcDogJ+KAiicsXG4gIGhhbGY6ICfCvScsXG4gIGhhbWlsdDogJ+KEiycsXG4gIGhhcmRjeTogJ9GKJyxcbiAgaGFycjogJ+KGlCcsXG4gIGhhcnJjaXI6ICfipYgnLFxuICBoYXJydzogJ+KGrScsXG4gIGhiYXI6ICfihI8nLFxuICBoY2lyYzogJ8SlJyxcbiAgaGVhcnRzOiAn4pmlJyxcbiAgaGVhcnRzdWl0OiAn4pmlJyxcbiAgaGVsbGlwOiAn4oCmJyxcbiAgaGVyY29uOiAn4oq5JyxcbiAgaGZyOiAn8J2UpScsXG4gIGhrc2Vhcm93OiAn4qSlJyxcbiAgaGtzd2Fyb3c6ICfipKYnLFxuICBob2FycjogJ+KHvycsXG4gIGhvbXRodDogJ+KIuycsXG4gIGhvb2tsZWZ0YXJyb3c6ICfihqknLFxuICBob29rcmlnaHRhcnJvdzogJ+KGqicsXG4gIGhvcGY6ICfwnZWZJyxcbiAgaG9yYmFyOiAn4oCVJyxcbiAgaHNjcjogJ/Cdkr0nLFxuICBoc2xhc2g6ICfihI8nLFxuICBoc3Ryb2s6ICfEpycsXG4gIGh5YnVsbDogJ+KBgycsXG4gIGh5cGhlbjogJ+KAkCcsXG4gIGlhY3V0ZTogJ8OtJyxcbiAgaWM6ICfigaMnLFxuICBpY2lyYzogJ8OuJyxcbiAgaWN5OiAn0LgnLFxuICBpZWN5OiAn0LUnLFxuICBpZXhjbDogJ8KhJyxcbiAgaWZmOiAn4oeUJyxcbiAgaWZyOiAn8J2UpicsXG4gIGlncmF2ZTogJ8OsJyxcbiAgaWk6ICfihYgnLFxuICBpaWlpbnQ6ICfiqIwnLFxuICBpaWludDogJ+KIrScsXG4gIGlpbmZpbjogJ+KnnCcsXG4gIGlpb3RhOiAn4oSpJyxcbiAgaWpsaWc6ICfEsycsXG4gIGltYWNyOiAnxKsnLFxuICBpbWFnZTogJ+KEkScsXG4gIGltYWdsaW5lOiAn4oSQJyxcbiAgaW1hZ3BhcnQ6ICfihJEnLFxuICBpbWF0aDogJ8SxJyxcbiAgaW1vZjogJ+KKtycsXG4gIGltcGVkOiAnxrUnLFxuICBpbjogJ+KIiCcsXG4gIGluY2FyZTogJ+KEhScsXG4gIGluZmluOiAn4oieJyxcbiAgaW5maW50aWU6ICfip50nLFxuICBpbm9kb3Q6ICfEsScsXG4gIGludDogJ+KIqycsXG4gIGludGNhbDogJ+KKuicsXG4gIGludGVnZXJzOiAn4oSkJyxcbiAgaW50ZXJjYWw6ICfiironLFxuICBpbnRsYXJoazogJ+KolycsXG4gIGludHByb2Q6ICfiqLwnLFxuICBpb2N5OiAn0ZEnLFxuICBpb2dvbjogJ8SvJyxcbiAgaW9wZjogJ/CdlZonLFxuICBpb3RhOiAnzrknLFxuICBpcHJvZDogJ+KovCcsXG4gIGlxdWVzdDogJ8K/JyxcbiAgaXNjcjogJ/Cdkr4nLFxuICBpc2luOiAn4oiIJyxcbiAgaXNpbkU6ICfii7knLFxuICBpc2luZG90OiAn4ou1JyxcbiAgaXNpbnM6ICfii7QnLFxuICBpc2luc3Y6ICfii7MnLFxuICBpc2ludjogJ+KIiCcsXG4gIGl0OiAn4oGiJyxcbiAgaXRpbGRlOiAnxKknLFxuICBpdWtjeTogJ9GWJyxcbiAgaXVtbDogJ8OvJyxcbiAgamNpcmM6ICfEtScsXG4gIGpjeTogJ9C5JyxcbiAgamZyOiAn8J2UpycsXG4gIGptYXRoOiAnyLcnLFxuICBqb3BmOiAn8J2VmycsXG4gIGpzY3I6ICfwnZK/JyxcbiAganNlcmN5OiAn0ZgnLFxuICBqdWtjeTogJ9GUJyxcbiAga2FwcGE6ICfOuicsXG4gIGthcHBhdjogJ8+wJyxcbiAga2NlZGlsOiAnxLcnLFxuICBrY3k6ICfQuicsXG4gIGtmcjogJ/CdlKgnLFxuICBrZ3JlZW46ICfEuCcsXG4gIGtoY3k6ICfRhScsXG4gIGtqY3k6ICfRnCcsXG4gIGtvcGY6ICfwnZWcJyxcbiAga3NjcjogJ/Cdk4AnLFxuICBsQWFycjogJ+KHmicsXG4gIGxBcnI6ICfih5AnLFxuICBsQXRhaWw6ICfipJsnLFxuICBsQmFycjogJ+KkjicsXG4gIGxFOiAn4ommJyxcbiAgbEVnOiAn4qqLJyxcbiAgbEhhcjogJ+KloicsXG4gIGxhY3V0ZTogJ8S6JyxcbiAgbGFlbXB0eXY6ICfiprQnLFxuICBsYWdyYW46ICfihJInLFxuICBsYW1iZGE6ICfOuycsXG4gIGxhbmc6ICfin6gnLFxuICBsYW5nZDogJ+KmkScsXG4gIGxhbmdsZTogJ+KfqCcsXG4gIGxhcDogJ+KqhScsXG4gIGxhcXVvOiAnwqsnLFxuICBsYXJyOiAn4oaQJyxcbiAgbGFycmI6ICfih6QnLFxuICBsYXJyYmZzOiAn4qSfJyxcbiAgbGFycmZzOiAn4qSdJyxcbiAgbGFycmhrOiAn4oapJyxcbiAgbGFycmxwOiAn4oarJyxcbiAgbGFycnBsOiAn4qS5JyxcbiAgbGFycnNpbTogJ+KlsycsXG4gIGxhcnJ0bDogJ+KGoicsXG4gIGxhdDogJ+KqqycsXG4gIGxhdGFpbDogJ+KkmScsXG4gIGxhdGU6ICfiqq0nLFxuICBsYXRlczogJ+Kqre+4gCcsXG4gIGxiYXJyOiAn4qSMJyxcbiAgbGJicms6ICfinbInLFxuICBsYnJhY2U6ICd7JyxcbiAgbGJyYWNrOiAnWycsXG4gIGxicmtlOiAn4qaLJyxcbiAgbGJya3NsZDogJ+KmjycsXG4gIGxicmtzbHU6ICfipo0nLFxuICBsY2Fyb246ICfEvicsXG4gIGxjZWRpbDogJ8S8JyxcbiAgbGNlaWw6ICfijIgnLFxuICBsY3ViOiAneycsXG4gIGxjeTogJ9C7JyxcbiAgbGRjYTogJ+KkticsXG4gIGxkcXVvOiAn4oCcJyxcbiAgbGRxdW9yOiAn4oCeJyxcbiAgbGRyZGhhcjogJ+KlpycsXG4gIGxkcnVzaGFyOiAn4qWLJyxcbiAgbGRzaDogJ+KGsicsXG4gIGxlOiAn4omkJyxcbiAgbGVmdGFycm93OiAn4oaQJyxcbiAgbGVmdGFycm93dGFpbDogJ+KGoicsXG4gIGxlZnRoYXJwb29uZG93bjogJ+KGvScsXG4gIGxlZnRoYXJwb29udXA6ICfihrwnLFxuICBsZWZ0bGVmdGFycm93czogJ+KHhycsXG4gIGxlZnRyaWdodGFycm93OiAn4oaUJyxcbiAgbGVmdHJpZ2h0YXJyb3dzOiAn4oeGJyxcbiAgbGVmdHJpZ2h0aGFycG9vbnM6ICfih4snLFxuICBsZWZ0cmlnaHRzcXVpZ2Fycm93OiAn4oatJyxcbiAgbGVmdHRocmVldGltZXM6ICfii4snLFxuICBsZWc6ICfii5onLFxuICBsZXE6ICfiiaQnLFxuICBsZXFxOiAn4ommJyxcbiAgbGVxc2xhbnQ6ICfiqb0nLFxuICBsZXM6ICfiqb0nLFxuICBsZXNjYzogJ+KqqCcsXG4gIGxlc2RvdDogJ+KpvycsXG4gIGxlc2RvdG86ICfiqoEnLFxuICBsZXNkb3RvcjogJ+KqgycsXG4gIGxlc2c6ICfii5rvuIAnLFxuICBsZXNnZXM6ICfiqpMnLFxuICBsZXNzYXBwcm94OiAn4qqFJyxcbiAgbGVzc2RvdDogJ+KLlicsXG4gIGxlc3NlcWd0cjogJ+KLmicsXG4gIGxlc3NlcXFndHI6ICfiqosnLFxuICBsZXNzZ3RyOiAn4om2JyxcbiAgbGVzc3NpbTogJ+KJsicsXG4gIGxmaXNodDogJ+KlvCcsXG4gIGxmbG9vcjogJ+KMiicsXG4gIGxmcjogJ/CdlKknLFxuICBsZzogJ+KJticsXG4gIGxnRTogJ+KqkScsXG4gIGxoYXJkOiAn4oa9JyxcbiAgbGhhcnU6ICfihrwnLFxuICBsaGFydWw6ICfipaonLFxuICBsaGJsazogJ+KWhCcsXG4gIGxqY3k6ICfRmScsXG4gIGxsOiAn4omqJyxcbiAgbGxhcnI6ICfih4cnLFxuICBsbGNvcm5lcjogJ+KMnicsXG4gIGxsaGFyZDogJ+KlqycsXG4gIGxsdHJpOiAn4pe6JyxcbiAgbG1pZG90OiAnxYAnLFxuICBsbW91c3Q6ICfijrAnLFxuICBsbW91c3RhY2hlOiAn4o6wJyxcbiAgbG5FOiAn4omoJyxcbiAgbG5hcDogJ+KqiScsXG4gIGxuYXBwcm94OiAn4qqJJyxcbiAgbG5lOiAn4qqHJyxcbiAgbG5lcTogJ+KqhycsXG4gIGxuZXFxOiAn4omoJyxcbiAgbG5zaW06ICfii6YnLFxuICBsb2FuZzogJ+KfrCcsXG4gIGxvYXJyOiAn4oe9JyxcbiAgbG9icms6ICfin6YnLFxuICBsb25nbGVmdGFycm93OiAn4p+1JyxcbiAgbG9uZ2xlZnRyaWdodGFycm93OiAn4p+3JyxcbiAgbG9uZ21hcHN0bzogJ+KfvCcsXG4gIGxvbmdyaWdodGFycm93OiAn4p+2JyxcbiAgbG9vcGFycm93bGVmdDogJ+KGqycsXG4gIGxvb3BhcnJvd3JpZ2h0OiAn4oasJyxcbiAgbG9wYXI6ICfipoUnLFxuICBsb3BmOiAn8J2VnScsXG4gIGxvcGx1czogJ+KorScsXG4gIGxvdGltZXM6ICfiqLQnLFxuICBsb3dhc3Q6ICfiiJcnLFxuICBsb3diYXI6ICdfJyxcbiAgbG96OiAn4peKJyxcbiAgbG96ZW5nZTogJ+KXiicsXG4gIGxvemY6ICfip6snLFxuICBscGFyOiAnKCcsXG4gIGxwYXJsdDogJ+KmkycsXG4gIGxyYXJyOiAn4oeGJyxcbiAgbHJjb3JuZXI6ICfijJ8nLFxuICBscmhhcjogJ+KHiycsXG4gIGxyaGFyZDogJ+KlrScsXG4gIGxybTogJ+KAjicsXG4gIGxydHJpOiAn4oq/JyxcbiAgbHNhcXVvOiAn4oC5JyxcbiAgbHNjcjogJ/Cdk4EnLFxuICBsc2g6ICfihrAnLFxuICBsc2ltOiAn4omyJyxcbiAgbHNpbWU6ICfiqo0nLFxuICBsc2ltZzogJ+KqjycsXG4gIGxzcWI6ICdbJyxcbiAgbHNxdW86ICfigJgnLFxuICBsc3F1b3I6ICfigJonLFxuICBsc3Ryb2s6ICfFgicsXG4gIGx0OiAnPCcsXG4gIGx0Y2M6ICfiqqYnLFxuICBsdGNpcjogJ+KpuScsXG4gIGx0ZG90OiAn4ouWJyxcbiAgbHRocmVlOiAn4ouLJyxcbiAgbHRpbWVzOiAn4ouJJyxcbiAgbHRsYXJyOiAn4qW2JyxcbiAgbHRxdWVzdDogJ+KpuycsXG4gIGx0clBhcjogJ+KmlicsXG4gIGx0cmk6ICfil4MnLFxuICBsdHJpZTogJ+KKtCcsXG4gIGx0cmlmOiAn4peCJyxcbiAgbHVyZHNoYXI6ICfipYonLFxuICBsdXJ1aGFyOiAn4qWmJyxcbiAgbHZlcnRuZXFxOiAn4omo77iAJyxcbiAgbHZuRTogJ+KJqO+4gCcsXG4gIG1ERG90OiAn4oi6JyxcbiAgbWFjcjogJ8KvJyxcbiAgbWFsZTogJ+KZgicsXG4gIG1hbHQ6ICfinKAnLFxuICBtYWx0ZXNlOiAn4pygJyxcbiAgbWFwOiAn4oamJyxcbiAgbWFwc3RvOiAn4oamJyxcbiAgbWFwc3RvZG93bjogJ+KGpycsXG4gIG1hcHN0b2xlZnQ6ICfihqQnLFxuICBtYXBzdG91cDogJ+KGpScsXG4gIG1hcmtlcjogJ+KWricsXG4gIG1jb21tYTogJ+KoqScsXG4gIG1jeTogJ9C8JyxcbiAgbWRhc2g6ICfigJQnLFxuICBtZWFzdXJlZGFuZ2xlOiAn4oihJyxcbiAgbWZyOiAn8J2UqicsXG4gIG1obzogJ+KEpycsXG4gIG1pY3JvOiAnwrUnLFxuICBtaWQ6ICfiiKMnLFxuICBtaWRhc3Q6ICcqJyxcbiAgbWlkY2lyOiAn4quwJyxcbiAgbWlkZG90OiAnwrcnLFxuICBtaW51czogJ+KIkicsXG4gIG1pbnVzYjogJ+KKnycsXG4gIG1pbnVzZDogJ+KIuCcsXG4gIG1pbnVzZHU6ICfiqKonLFxuICBtbGNwOiAn4qubJyxcbiAgbWxkcjogJ+KApicsXG4gIG1ucGx1czogJ+KIkycsXG4gIG1vZGVsczogJ+KKpycsXG4gIG1vcGY6ICfwnZWeJyxcbiAgbXA6ICfiiJMnLFxuICBtc2NyOiAn8J2TgicsXG4gIG1zdHBvczogJ+KIvicsXG4gIG11OiAnzrwnLFxuICBtdWx0aW1hcDogJ+KKuCcsXG4gIG11bWFwOiAn4oq4JyxcbiAgbkdnOiAn4ouZzLgnLFxuICBuR3Q6ICfiiavig5InLFxuICBuR3R2OiAn4omrzLgnLFxuICBuTGVmdGFycm93OiAn4oeNJyxcbiAgbkxlZnRyaWdodGFycm93OiAn4oeOJyxcbiAgbkxsOiAn4ouYzLgnLFxuICBuTHQ6ICfiiarig5InLFxuICBuTHR2OiAn4omqzLgnLFxuICBuUmlnaHRhcnJvdzogJ+KHjycsXG4gIG5WRGFzaDogJ+KKrycsXG4gIG5WZGFzaDogJ+KKricsXG4gIG5hYmxhOiAn4oiHJyxcbiAgbmFjdXRlOiAnxYQnLFxuICBuYW5nOiAn4oig4oOSJyxcbiAgbmFwOiAn4omJJyxcbiAgbmFwRTogJ+KpsMy4JyxcbiAgbmFwaWQ6ICfiiYvMuCcsXG4gIG5hcG9zOiAnxYknLFxuICBuYXBwcm94OiAn4omJJyxcbiAgbmF0dXI6ICfima4nLFxuICBuYXR1cmFsOiAn4pmuJyxcbiAgbmF0dXJhbHM6ICfihJUnLFxuICBuYnNwOiAnwqAnLFxuICBuYnVtcDogJ+KJjsy4JyxcbiAgbmJ1bXBlOiAn4omPzLgnLFxuICBuY2FwOiAn4qmDJyxcbiAgbmNhcm9uOiAnxYgnLFxuICBuY2VkaWw6ICfFhicsXG4gIG5jb25nOiAn4omHJyxcbiAgbmNvbmdkb3Q6ICfiqa3MuCcsXG4gIG5jdXA6ICfiqYInLFxuICBuY3k6ICfQvScsXG4gIG5kYXNoOiAn4oCTJyxcbiAgbmU6ICfiiaAnLFxuICBuZUFycjogJ+KHlycsXG4gIG5lYXJoazogJ+KkpCcsXG4gIG5lYXJyOiAn4oaXJyxcbiAgbmVhcnJvdzogJ+KGlycsXG4gIG5lZG90OiAn4omQzLgnLFxuICBuZXF1aXY6ICfiiaInLFxuICBuZXNlYXI6ICfipKgnLFxuICBuZXNpbTogJ+KJgsy4JyxcbiAgbmV4aXN0OiAn4oiEJyxcbiAgbmV4aXN0czogJ+KIhCcsXG4gIG5mcjogJ/CdlKsnLFxuICBuZ0U6ICfiiafMuCcsXG4gIG5nZTogJ+KJsScsXG4gIG5nZXE6ICfiibEnLFxuICBuZ2VxcTogJ+KJp8y4JyxcbiAgbmdlcXNsYW50OiAn4qm+zLgnLFxuICBuZ2VzOiAn4qm+zLgnLFxuICBuZ3NpbTogJ+KJtScsXG4gIG5ndDogJ+KJrycsXG4gIG5ndHI6ICfiia8nLFxuICBuaEFycjogJ+KHjicsXG4gIG5oYXJyOiAn4oauJyxcbiAgbmhwYXI6ICfiq7InLFxuICBuaTogJ+KIiycsXG4gIG5pczogJ+KLvCcsXG4gIG5pc2Q6ICfii7onLFxuICBuaXY6ICfiiIsnLFxuICBuamN5OiAn0ZonLFxuICBubEFycjogJ+KHjScsXG4gIG5sRTogJ+KJpsy4JyxcbiAgbmxhcnI6ICfihponLFxuICBubGRyOiAn4oClJyxcbiAgbmxlOiAn4omwJyxcbiAgbmxlZnRhcnJvdzogJ+KGmicsXG4gIG5sZWZ0cmlnaHRhcnJvdzogJ+KGricsXG4gIG5sZXE6ICfiibAnLFxuICBubGVxcTogJ+KJpsy4JyxcbiAgbmxlcXNsYW50OiAn4qm9zLgnLFxuICBubGVzOiAn4qm9zLgnLFxuICBubGVzczogJ+KJricsXG4gIG5sc2ltOiAn4om0JyxcbiAgbmx0OiAn4omuJyxcbiAgbmx0cmk6ICfii6onLFxuICBubHRyaWU6ICfii6wnLFxuICBubWlkOiAn4oikJyxcbiAgbm9wZjogJ/CdlZ8nLFxuICBub3Q6ICfCrCcsXG4gIG5vdGluOiAn4oiJJyxcbiAgbm90aW5FOiAn4ou5zLgnLFxuICBub3RpbmRvdDogJ+KLtcy4JyxcbiAgbm90aW52YTogJ+KIiScsXG4gIG5vdGludmI6ICfii7cnLFxuICBub3RpbnZjOiAn4ou2JyxcbiAgbm90bmk6ICfiiIwnLFxuICBub3RuaXZhOiAn4oiMJyxcbiAgbm90bml2YjogJ+KLvicsXG4gIG5vdG5pdmM6ICfii70nLFxuICBucGFyOiAn4oimJyxcbiAgbnBhcmFsbGVsOiAn4oimJyxcbiAgbnBhcnNsOiAn4qu94oOlJyxcbiAgbnBhcnQ6ICfiiILMuCcsXG4gIG5wb2xpbnQ6ICfiqJQnLFxuICBucHI6ICfiioAnLFxuICBucHJjdWU6ICfii6AnLFxuICBucHJlOiAn4qqvzLgnLFxuICBucHJlYzogJ+KKgCcsXG4gIG5wcmVjZXE6ICfiqq/MuCcsXG4gIG5yQXJyOiAn4oePJyxcbiAgbnJhcnI6ICfihpsnLFxuICBucmFycmM6ICfipLPMuCcsXG4gIG5yYXJydzogJ+KGncy4JyxcbiAgbnJpZ2h0YXJyb3c6ICfihpsnLFxuICBucnRyaTogJ+KLqycsXG4gIG5ydHJpZTogJ+KLrScsXG4gIG5zYzogJ+KKgScsXG4gIG5zY2N1ZTogJ+KLoScsXG4gIG5zY2U6ICfiqrDMuCcsXG4gIG5zY3I6ICfwnZODJyxcbiAgbnNob3J0bWlkOiAn4oikJyxcbiAgbnNob3J0cGFyYWxsZWw6ICfiiKYnLFxuICBuc2ltOiAn4omBJyxcbiAgbnNpbWU6ICfiiYQnLFxuICBuc2ltZXE6ICfiiYQnLFxuICBuc21pZDogJ+KIpCcsXG4gIG5zcGFyOiAn4oimJyxcbiAgbnNxc3ViZTogJ+KLoicsXG4gIG5zcXN1cGU6ICfii6MnLFxuICBuc3ViOiAn4oqEJyxcbiAgbnN1YkU6ICfiq4XMuCcsXG4gIG5zdWJlOiAn4oqIJyxcbiAgbnN1YnNldDogJ+KKguKDkicsXG4gIG5zdWJzZXRlcTogJ+KKiCcsXG4gIG5zdWJzZXRlcXE6ICfiq4XMuCcsXG4gIG5zdWNjOiAn4oqBJyxcbiAgbnN1Y2NlcTogJ+KqsMy4JyxcbiAgbnN1cDogJ+KKhScsXG4gIG5zdXBFOiAn4quGzLgnLFxuICBuc3VwZTogJ+KKiScsXG4gIG5zdXBzZXQ6ICfiioPig5InLFxuICBuc3Vwc2V0ZXE6ICfiioknLFxuICBuc3Vwc2V0ZXFxOiAn4quGzLgnLFxuICBudGdsOiAn4om5JyxcbiAgbnRpbGRlOiAnw7EnLFxuICBudGxnOiAn4om4JyxcbiAgbnRyaWFuZ2xlbGVmdDogJ+KLqicsXG4gIG50cmlhbmdsZWxlZnRlcTogJ+KLrCcsXG4gIG50cmlhbmdsZXJpZ2h0OiAn4ourJyxcbiAgbnRyaWFuZ2xlcmlnaHRlcTogJ+KLrScsXG4gIG51OiAnzr0nLFxuICBudW06ICcjJyxcbiAgbnVtZXJvOiAn4oSWJyxcbiAgbnVtc3A6ICfigIcnLFxuICBudkRhc2g6ICfiiq0nLFxuICBudkhhcnI6ICfipIQnLFxuICBudmFwOiAn4omN4oOSJyxcbiAgbnZkYXNoOiAn4oqsJyxcbiAgbnZnZTogJ+KJpeKDkicsXG4gIG52Z3Q6ICc+4oOSJyxcbiAgbnZpbmZpbjogJ+KnnicsXG4gIG52bEFycjogJ+KkgicsXG4gIG52bGU6ICfiiaTig5InLFxuICBudmx0OiAnPOKDkicsXG4gIG52bHRyaWU6ICfiirTig5InLFxuICBudnJBcnI6ICfipIMnLFxuICBudnJ0cmllOiAn4oq14oOSJyxcbiAgbnZzaW06ICfiiLzig5InLFxuICBud0FycjogJ+KHlicsXG4gIG53YXJoazogJ+KkoycsXG4gIG53YXJyOiAn4oaWJyxcbiAgbndhcnJvdzogJ+KGlicsXG4gIG53bmVhcjogJ+KkpycsXG4gIG9TOiAn4pOIJyxcbiAgb2FjdXRlOiAnw7MnLFxuICBvYXN0OiAn4oqbJyxcbiAgb2NpcjogJ+KKmicsXG4gIG9jaXJjOiAnw7QnLFxuICBvY3k6ICfQvicsXG4gIG9kYXNoOiAn4oqdJyxcbiAgb2RibGFjOiAnxZEnLFxuICBvZGl2OiAn4qi4JyxcbiAgb2RvdDogJ+KKmScsXG4gIG9kc29sZDogJ+KmvCcsXG4gIG9lbGlnOiAnxZMnLFxuICBvZmNpcjogJ+KmvycsXG4gIG9mcjogJ/CdlKwnLFxuICBvZ29uOiAny5snLFxuICBvZ3JhdmU6ICfDsicsXG4gIG9ndDogJ+KngScsXG4gIG9oYmFyOiAn4qa1JyxcbiAgb2htOiAnzqknLFxuICBvaW50OiAn4oiuJyxcbiAgb2xhcnI6ICfihronLFxuICBvbGNpcjogJ+KmvicsXG4gIG9sY3Jvc3M6ICfiprsnLFxuICBvbGluZTogJ+KAvicsXG4gIG9sdDogJ+KngCcsXG4gIG9tYWNyOiAnxY0nLFxuICBvbWVnYTogJ8+JJyxcbiAgb21pY3JvbjogJ86/JyxcbiAgb21pZDogJ+KmticsXG4gIG9taW51czogJ+KKlicsXG4gIG9vcGY6ICfwnZWgJyxcbiAgb3BhcjogJ+KmtycsXG4gIG9wZXJwOiAn4qa5JyxcbiAgb3BsdXM6ICfiipUnLFxuICBvcjogJ+KIqCcsXG4gIG9yYXJyOiAn4oa7JyxcbiAgb3JkOiAn4qmdJyxcbiAgb3JkZXI6ICfihLQnLFxuICBvcmRlcm9mOiAn4oS0JyxcbiAgb3JkZjogJ8KqJyxcbiAgb3JkbTogJ8K6JyxcbiAgb3JpZ29mOiAn4oq2JyxcbiAgb3JvcjogJ+KplicsXG4gIG9yc2xvcGU6ICfiqZcnLFxuICBvcnY6ICfiqZsnLFxuICBvc2NyOiAn4oS0JyxcbiAgb3NsYXNoOiAnw7gnLFxuICBvc29sOiAn4oqYJyxcbiAgb3RpbGRlOiAnw7UnLFxuICBvdGltZXM6ICfiipcnLFxuICBvdGltZXNhczogJ+KoticsXG4gIG91bWw6ICfDticsXG4gIG92YmFyOiAn4oy9JyxcbiAgcGFyOiAn4oilJyxcbiAgcGFyYTogJ8K2JyxcbiAgcGFyYWxsZWw6ICfiiKUnLFxuICBwYXJzaW06ICfiq7MnLFxuICBwYXJzbDogJ+KrvScsXG4gIHBhcnQ6ICfiiIInLFxuICBwY3k6ICfQvycsXG4gIHBlcmNudDogJyUnLFxuICBwZXJpb2Q6ICcuJyxcbiAgcGVybWlsOiAn4oCwJyxcbiAgcGVycDogJ+KKpScsXG4gIHBlcnRlbms6ICfigLEnLFxuICBwZnI6ICfwnZStJyxcbiAgcGhpOiAnz4YnLFxuICBwaGl2OiAnz5UnLFxuICBwaG1tYXQ6ICfihLMnLFxuICBwaG9uZTogJ+KYjicsXG4gIHBpOiAnz4AnLFxuICBwaXRjaGZvcms6ICfii5QnLFxuICBwaXY6ICfPlicsXG4gIHBsYW5jazogJ+KEjycsXG4gIHBsYW5ja2g6ICfihI4nLFxuICBwbGFua3Y6ICfihI8nLFxuICBwbHVzOiAnKycsXG4gIHBsdXNhY2lyOiAn4qijJyxcbiAgcGx1c2I6ICfiip4nLFxuICBwbHVzY2lyOiAn4qiiJyxcbiAgcGx1c2RvOiAn4oiUJyxcbiAgcGx1c2R1OiAn4qilJyxcbiAgcGx1c2U6ICfiqbInLFxuICBwbHVzbW46ICfCsScsXG4gIHBsdXNzaW06ICfiqKYnLFxuICBwbHVzdHdvOiAn4qinJyxcbiAgcG06ICfCsScsXG4gIHBvaW50aW50OiAn4qiVJyxcbiAgcG9wZjogJ/CdlaEnLFxuICBwb3VuZDogJ8KjJyxcbiAgcHI6ICfiibonLFxuICBwckU6ICfiqrMnLFxuICBwcmFwOiAn4qq3JyxcbiAgcHJjdWU6ICfiibwnLFxuICBwcmU6ICfiqq8nLFxuICBwcmVjOiAn4om6JyxcbiAgcHJlY2FwcHJveDogJ+KqtycsXG4gIHByZWNjdXJseWVxOiAn4om8JyxcbiAgcHJlY2VxOiAn4qqvJyxcbiAgcHJlY25hcHByb3g6ICfiqrknLFxuICBwcmVjbmVxcTogJ+KqtScsXG4gIHByZWNuc2ltOiAn4ouoJyxcbiAgcHJlY3NpbTogJ+KJvicsXG4gIHByaW1lOiAn4oCyJyxcbiAgcHJpbWVzOiAn4oSZJyxcbiAgcHJuRTogJ+KqtScsXG4gIHBybmFwOiAn4qq5JyxcbiAgcHJuc2ltOiAn4ouoJyxcbiAgcHJvZDogJ+KIjycsXG4gIHByb2ZhbGFyOiAn4oyuJyxcbiAgcHJvZmxpbmU6ICfijJInLFxuICBwcm9mc3VyZjogJ+KMkycsXG4gIHByb3A6ICfiiJ0nLFxuICBwcm9wdG86ICfiiJ0nLFxuICBwcnNpbTogJ+KJvicsXG4gIHBydXJlbDogJ+KKsCcsXG4gIHBzY3I6ICfwnZOFJyxcbiAgcHNpOiAnz4gnLFxuICBwdW5jc3A6ICfigIgnLFxuICBxZnI6ICfwnZSuJyxcbiAgcWludDogJ+KojCcsXG4gIHFvcGY6ICfwnZWiJyxcbiAgcXByaW1lOiAn4oGXJyxcbiAgcXNjcjogJ/Cdk4YnLFxuICBxdWF0ZXJuaW9uczogJ+KEjScsXG4gIHF1YXRpbnQ6ICfiqJYnLFxuICBxdWVzdDogJz8nLFxuICBxdWVzdGVxOiAn4omfJyxcbiAgcXVvdDogJ1wiJyxcbiAgckFhcnI6ICfih5snLFxuICByQXJyOiAn4oeSJyxcbiAgckF0YWlsOiAn4qScJyxcbiAgckJhcnI6ICfipI8nLFxuICBySGFyOiAn4qWkJyxcbiAgcmFjZTogJ+KIvcyxJyxcbiAgcmFjdXRlOiAnxZUnLFxuICByYWRpYzogJ+KImicsXG4gIHJhZW1wdHl2OiAn4qazJyxcbiAgcmFuZzogJ+KfqScsXG4gIHJhbmdkOiAn4qaSJyxcbiAgcmFuZ2U6ICfipqUnLFxuICByYW5nbGU6ICfin6knLFxuICByYXF1bzogJ8K7JyxcbiAgcmFycjogJ+KGkicsXG4gIHJhcnJhcDogJ+KltScsXG4gIHJhcnJiOiAn4oelJyxcbiAgcmFycmJmczogJ+KkoCcsXG4gIHJhcnJjOiAn4qSzJyxcbiAgcmFycmZzOiAn4qSeJyxcbiAgcmFycmhrOiAn4oaqJyxcbiAgcmFycmxwOiAn4oasJyxcbiAgcmFycnBsOiAn4qWFJyxcbiAgcmFycnNpbTogJ+KltCcsXG4gIHJhcnJ0bDogJ+KGoycsXG4gIHJhcnJ3OiAn4oadJyxcbiAgcmF0YWlsOiAn4qSaJyxcbiAgcmF0aW86ICfiiLYnLFxuICByYXRpb25hbHM6ICfihJonLFxuICByYmFycjogJ+KkjScsXG4gIHJiYnJrOiAn4p2zJyxcbiAgcmJyYWNlOiAnfScsXG4gIHJicmFjazogJ10nLFxuICByYnJrZTogJ+KmjCcsXG4gIHJicmtzbGQ6ICfipo4nLFxuICByYnJrc2x1OiAn4qaQJyxcbiAgcmNhcm9uOiAnxZknLFxuICByY2VkaWw6ICfFlycsXG4gIHJjZWlsOiAn4oyJJyxcbiAgcmN1YjogJ30nLFxuICByY3k6ICfRgCcsXG4gIHJkY2E6ICfipLcnLFxuICByZGxkaGFyOiAn4qWpJyxcbiAgcmRxdW86ICfigJ0nLFxuICByZHF1b3I6ICfigJ0nLFxuICByZHNoOiAn4oazJyxcbiAgcmVhbDogJ+KEnCcsXG4gIHJlYWxpbmU6ICfihJsnLFxuICByZWFscGFydDogJ+KEnCcsXG4gIHJlYWxzOiAn4oSdJyxcbiAgcmVjdDogJ+KWrScsXG4gIHJlZzogJ8KuJyxcbiAgcmZpc2h0OiAn4qW9JyxcbiAgcmZsb29yOiAn4oyLJyxcbiAgcmZyOiAn8J2UrycsXG4gIHJoYXJkOiAn4oeBJyxcbiAgcmhhcnU6ICfih4AnLFxuICByaGFydWw6ICfipawnLFxuICByaG86ICfPgScsXG4gIHJob3Y6ICfPsScsXG4gIHJpZ2h0YXJyb3c6ICfihpInLFxuICByaWdodGFycm93dGFpbDogJ+KGoycsXG4gIHJpZ2h0aGFycG9vbmRvd246ICfih4EnLFxuICByaWdodGhhcnBvb251cDogJ+KHgCcsXG4gIHJpZ2h0bGVmdGFycm93czogJ+KHhCcsXG4gIHJpZ2h0bGVmdGhhcnBvb25zOiAn4oeMJyxcbiAgcmlnaHRyaWdodGFycm93czogJ+KHiScsXG4gIHJpZ2h0c3F1aWdhcnJvdzogJ+KGnScsXG4gIHJpZ2h0dGhyZWV0aW1lczogJ+KLjCcsXG4gIHJpbmc6ICfLmicsXG4gIHJpc2luZ2RvdHNlcTogJ+KJkycsXG4gIHJsYXJyOiAn4oeEJyxcbiAgcmxoYXI6ICfih4wnLFxuICBybG06ICfigI8nLFxuICBybW91c3Q6ICfijrEnLFxuICBybW91c3RhY2hlOiAn4o6xJyxcbiAgcm5taWQ6ICfiq64nLFxuICByb2FuZzogJ+KfrScsXG4gIHJvYXJyOiAn4oe+JyxcbiAgcm9icms6ICfin6cnLFxuICByb3BhcjogJ+KmhicsXG4gIHJvcGY6ICfwnZWjJyxcbiAgcm9wbHVzOiAn4qiuJyxcbiAgcm90aW1lczogJ+KotScsXG4gIHJwYXI6ICcpJyxcbiAgcnBhcmd0OiAn4qaUJyxcbiAgcnBwb2xpbnQ6ICfiqJInLFxuICBycmFycjogJ+KHiScsXG4gIHJzYXF1bzogJ+KAuicsXG4gIHJzY3I6ICfwnZOHJyxcbiAgcnNoOiAn4oaxJyxcbiAgcnNxYjogJ10nLFxuICByc3F1bzogJ+KAmScsXG4gIHJzcXVvcjogJ+KAmScsXG4gIHJ0aHJlZTogJ+KLjCcsXG4gIHJ0aW1lczogJ+KLiicsXG4gIHJ0cmk6ICfilrknLFxuICBydHJpZTogJ+KKtScsXG4gIHJ0cmlmOiAn4pa4JyxcbiAgcnRyaWx0cmk6ICfip44nLFxuICBydWx1aGFyOiAn4qWoJyxcbiAgcng6ICfihJ4nLFxuICBzYWN1dGU6ICfFmycsXG4gIHNicXVvOiAn4oCaJyxcbiAgc2M6ICfiibsnLFxuICBzY0U6ICfiqrQnLFxuICBzY2FwOiAn4qq4JyxcbiAgc2Nhcm9uOiAnxaEnLFxuICBzY2N1ZTogJ+KJvScsXG4gIHNjZTogJ+KqsCcsXG4gIHNjZWRpbDogJ8WfJyxcbiAgc2NpcmM6ICfFnScsXG4gIHNjbkU6ICfiqrYnLFxuICBzY25hcDogJ+KquicsXG4gIHNjbnNpbTogJ+KLqScsXG4gIHNjcG9saW50OiAn4qiTJyxcbiAgc2NzaW06ICfiib8nLFxuICBzY3k6ICfRgScsXG4gIHNkb3Q6ICfii4UnLFxuICBzZG90YjogJ+KKoScsXG4gIHNkb3RlOiAn4qmmJyxcbiAgc2VBcnI6ICfih5gnLFxuICBzZWFyaGs6ICfipKUnLFxuICBzZWFycjogJ+KGmCcsXG4gIHNlYXJyb3c6ICfihpgnLFxuICBzZWN0OiAnwqcnLFxuICBzZW1pOiAnOycsXG4gIHNlc3dhcjogJ+KkqScsXG4gIHNldG1pbnVzOiAn4oiWJyxcbiAgc2V0bW46ICfiiJYnLFxuICBzZXh0OiAn4py2JyxcbiAgc2ZyOiAn8J2UsCcsXG4gIHNmcm93bjogJ+KMoicsXG4gIHNoYXJwOiAn4pmvJyxcbiAgc2hjaGN5OiAn0YknLFxuICBzaGN5OiAn0YgnLFxuICBzaG9ydG1pZDogJ+KIoycsXG4gIHNob3J0cGFyYWxsZWw6ICfiiKUnLFxuICBzaHk6ICfCrScsXG4gIHNpZ21hOiAnz4MnLFxuICBzaWdtYWY6ICfPgicsXG4gIHNpZ21hdjogJ8+CJyxcbiAgc2ltOiAn4oi8JyxcbiAgc2ltZG90OiAn4qmqJyxcbiAgc2ltZTogJ+KJgycsXG4gIHNpbWVxOiAn4omDJyxcbiAgc2ltZzogJ+KqnicsXG4gIHNpbWdFOiAn4qqgJyxcbiAgc2ltbDogJ+KqnScsXG4gIHNpbWxFOiAn4qqfJyxcbiAgc2ltbmU6ICfiiYYnLFxuICBzaW1wbHVzOiAn4qikJyxcbiAgc2ltcmFycjogJ+KlsicsXG4gIHNsYXJyOiAn4oaQJyxcbiAgc21hbGxzZXRtaW51czogJ+KIlicsXG4gIHNtYXNocDogJ+KosycsXG4gIHNtZXBhcnNsOiAn4qekJyxcbiAgc21pZDogJ+KIoycsXG4gIHNtaWxlOiAn4oyjJyxcbiAgc210OiAn4qqqJyxcbiAgc210ZTogJ+KqrCcsXG4gIHNtdGVzOiAn4qqs77iAJyxcbiAgc29mdGN5OiAn0YwnLFxuICBzb2w6ICcvJyxcbiAgc29sYjogJ+KnhCcsXG4gIHNvbGJhcjogJ+KMvycsXG4gIHNvcGY6ICfwnZWkJyxcbiAgc3BhZGVzOiAn4pmgJyxcbiAgc3BhZGVzdWl0OiAn4pmgJyxcbiAgc3BhcjogJ+KIpScsXG4gIHNxY2FwOiAn4oqTJyxcbiAgc3FjYXBzOiAn4oqT77iAJyxcbiAgc3FjdXA6ICfiipQnLFxuICBzcWN1cHM6ICfiipTvuIAnLFxuICBzcXN1YjogJ+KKjycsXG4gIHNxc3ViZTogJ+KKkScsXG4gIHNxc3Vic2V0OiAn4oqPJyxcbiAgc3FzdWJzZXRlcTogJ+KKkScsXG4gIHNxc3VwOiAn4oqQJyxcbiAgc3FzdXBlOiAn4oqSJyxcbiAgc3FzdXBzZXQ6ICfiipAnLFxuICBzcXN1cHNldGVxOiAn4oqSJyxcbiAgc3F1OiAn4pahJyxcbiAgc3F1YXJlOiAn4pahJyxcbiAgc3F1YXJmOiAn4paqJyxcbiAgc3F1ZjogJ+KWqicsXG4gIHNyYXJyOiAn4oaSJyxcbiAgc3NjcjogJ/Cdk4gnLFxuICBzc2V0bW46ICfiiJYnLFxuICBzc21pbGU6ICfijKMnLFxuICBzc3RhcmY6ICfii4YnLFxuICBzdGFyOiAn4piGJyxcbiAgc3RhcmY6ICfimIUnLFxuICBzdHJhaWdodGVwc2lsb246ICfPtScsXG4gIHN0cmFpZ2h0cGhpOiAnz5UnLFxuICBzdHJuczogJ8KvJyxcbiAgc3ViOiAn4oqCJyxcbiAgc3ViRTogJ+KrhScsXG4gIHN1YmRvdDogJ+KqvScsXG4gIHN1YmU6ICfiioYnLFxuICBzdWJlZG90OiAn4quDJyxcbiAgc3VibXVsdDogJ+KrgScsXG4gIHN1Ym5FOiAn4quLJyxcbiAgc3VibmU6ICfiioonLFxuICBzdWJwbHVzOiAn4qq/JyxcbiAgc3VicmFycjogJ+KluScsXG4gIHN1YnNldDogJ+KKgicsXG4gIHN1YnNldGVxOiAn4oqGJyxcbiAgc3Vic2V0ZXFxOiAn4quFJyxcbiAgc3Vic2V0bmVxOiAn4oqKJyxcbiAgc3Vic2V0bmVxcTogJ+KriycsXG4gIHN1YnNpbTogJ+KrhycsXG4gIHN1YnN1YjogJ+KrlScsXG4gIHN1YnN1cDogJ+KrkycsXG4gIHN1Y2M6ICfiibsnLFxuICBzdWNjYXBwcm94OiAn4qq4JyxcbiAgc3VjY2N1cmx5ZXE6ICfiib0nLFxuICBzdWNjZXE6ICfiqrAnLFxuICBzdWNjbmFwcHJveDogJ+KquicsXG4gIHN1Y2NuZXFxOiAn4qq2JyxcbiAgc3VjY25zaW06ICfii6knLFxuICBzdWNjc2ltOiAn4om/JyxcbiAgc3VtOiAn4oiRJyxcbiAgc3VuZzogJ+KZqicsXG4gIHN1cDE6ICfCuScsXG4gIHN1cDI6ICfCsicsXG4gIHN1cDM6ICfCsycsXG4gIHN1cDogJ+KKgycsXG4gIHN1cEU6ICfiq4YnLFxuICBzdXBkb3Q6ICfiqr4nLFxuICBzdXBkc3ViOiAn4quYJyxcbiAgc3VwZTogJ+KKhycsXG4gIHN1cGVkb3Q6ICfiq4QnLFxuICBzdXBoc29sOiAn4p+JJyxcbiAgc3VwaHN1YjogJ+KrlycsXG4gIHN1cGxhcnI6ICfipbsnLFxuICBzdXBtdWx0OiAn4quCJyxcbiAgc3VwbkU6ICfiq4wnLFxuICBzdXBuZTogJ+KKiycsXG4gIHN1cHBsdXM6ICfiq4AnLFxuICBzdXBzZXQ6ICfiioMnLFxuICBzdXBzZXRlcTogJ+KKhycsXG4gIHN1cHNldGVxcTogJ+KrhicsXG4gIHN1cHNldG5lcTogJ+KKiycsXG4gIHN1cHNldG5lcXE6ICfiq4wnLFxuICBzdXBzaW06ICfiq4gnLFxuICBzdXBzdWI6ICfiq5QnLFxuICBzdXBzdXA6ICfiq5YnLFxuICBzd0FycjogJ+KHmScsXG4gIHN3YXJoazogJ+KkpicsXG4gIHN3YXJyOiAn4oaZJyxcbiAgc3dhcnJvdzogJ+KGmScsXG4gIHN3bndhcjogJ+KkqicsXG4gIHN6bGlnOiAnw58nLFxuICB0YXJnZXQ6ICfijJYnLFxuICB0YXU6ICfPhCcsXG4gIHRicms6ICfijrQnLFxuICB0Y2Fyb246ICfFpScsXG4gIHRjZWRpbDogJ8WjJyxcbiAgdGN5OiAn0YInLFxuICB0ZG90OiAn4oObJyxcbiAgdGVscmVjOiAn4oyVJyxcbiAgdGZyOiAn8J2UsScsXG4gIHRoZXJlNDogJ+KItCcsXG4gIHRoZXJlZm9yZTogJ+KItCcsXG4gIHRoZXRhOiAnzrgnLFxuICB0aGV0YXN5bTogJ8+RJyxcbiAgdGhldGF2OiAnz5EnLFxuICB0aGlja2FwcHJveDogJ+KJiCcsXG4gIHRoaWNrc2ltOiAn4oi8JyxcbiAgdGhpbnNwOiAn4oCJJyxcbiAgdGhrYXA6ICfiiYgnLFxuICB0aGtzaW06ICfiiLwnLFxuICB0aG9ybjogJ8O+JyxcbiAgdGlsZGU6ICfLnCcsXG4gIHRpbWVzOiAnw5cnLFxuICB0aW1lc2I6ICfiiqAnLFxuICB0aW1lc2JhcjogJ+KosScsXG4gIHRpbWVzZDogJ+KosCcsXG4gIHRpbnQ6ICfiiK0nLFxuICB0b2VhOiAn4qSoJyxcbiAgdG9wOiAn4oqkJyxcbiAgdG9wYm90OiAn4oy2JyxcbiAgdG9wY2lyOiAn4quxJyxcbiAgdG9wZjogJ/CdlaUnLFxuICB0b3Bmb3JrOiAn4quaJyxcbiAgdG9zYTogJ+KkqScsXG4gIHRwcmltZTogJ+KAtCcsXG4gIHRyYWRlOiAn4oSiJyxcbiAgdHJpYW5nbGU6ICfilrUnLFxuICB0cmlhbmdsZWRvd246ICfilr8nLFxuICB0cmlhbmdsZWxlZnQ6ICfil4MnLFxuICB0cmlhbmdsZWxlZnRlcTogJ+KKtCcsXG4gIHRyaWFuZ2xlcTogJ+KJnCcsXG4gIHRyaWFuZ2xlcmlnaHQ6ICfilrknLFxuICB0cmlhbmdsZXJpZ2h0ZXE6ICfiirUnLFxuICB0cmlkb3Q6ICfil6wnLFxuICB0cmllOiAn4omcJyxcbiAgdHJpbWludXM6ICfiqLonLFxuICB0cmlwbHVzOiAn4qi5JyxcbiAgdHJpc2I6ICfip40nLFxuICB0cml0aW1lOiAn4qi7JyxcbiAgdHJwZXppdW06ICfij6InLFxuICB0c2NyOiAn8J2TiScsXG4gIHRzY3k6ICfRhicsXG4gIHRzaGN5OiAn0ZsnLFxuICB0c3Ryb2s6ICfFpycsXG4gIHR3aXh0OiAn4omsJyxcbiAgdHdvaGVhZGxlZnRhcnJvdzogJ+KGnicsXG4gIHR3b2hlYWRyaWdodGFycm93OiAn4oagJyxcbiAgdUFycjogJ+KHkScsXG4gIHVIYXI6ICfipaMnLFxuICB1YWN1dGU6ICfDuicsXG4gIHVhcnI6ICfihpEnLFxuICB1YnJjeTogJ9GeJyxcbiAgdWJyZXZlOiAnxa0nLFxuICB1Y2lyYzogJ8O7JyxcbiAgdWN5OiAn0YMnLFxuICB1ZGFycjogJ+KHhScsXG4gIHVkYmxhYzogJ8WxJyxcbiAgdWRoYXI6ICfipa4nLFxuICB1ZmlzaHQ6ICfipb4nLFxuICB1ZnI6ICfwnZSyJyxcbiAgdWdyYXZlOiAnw7knLFxuICB1aGFybDogJ+KGvycsXG4gIHVoYXJyOiAn4oa+JyxcbiAgdWhibGs6ICfiloAnLFxuICB1bGNvcm46ICfijJwnLFxuICB1bGNvcm5lcjogJ+KMnCcsXG4gIHVsY3JvcDogJ+KMjycsXG4gIHVsdHJpOiAn4pe4JyxcbiAgdW1hY3I6ICfFqycsXG4gIHVtbDogJ8KoJyxcbiAgdW9nb246ICfFsycsXG4gIHVvcGY6ICfwnZWmJyxcbiAgdXBhcnJvdzogJ+KGkScsXG4gIHVwZG93bmFycm93OiAn4oaVJyxcbiAgdXBoYXJwb29ubGVmdDogJ+KGvycsXG4gIHVwaGFycG9vbnJpZ2h0OiAn4oa+JyxcbiAgdXBsdXM6ICfiio4nLFxuICB1cHNpOiAnz4UnLFxuICB1cHNpaDogJ8+SJyxcbiAgdXBzaWxvbjogJ8+FJyxcbiAgdXB1cGFycm93czogJ+KHiCcsXG4gIHVyY29ybjogJ+KMnScsXG4gIHVyY29ybmVyOiAn4oydJyxcbiAgdXJjcm9wOiAn4oyOJyxcbiAgdXJpbmc6ICfFrycsXG4gIHVydHJpOiAn4pe5JyxcbiAgdXNjcjogJ/Cdk4onLFxuICB1dGRvdDogJ+KLsCcsXG4gIHV0aWxkZTogJ8WpJyxcbiAgdXRyaTogJ+KWtScsXG4gIHV0cmlmOiAn4pa0JyxcbiAgdXVhcnI6ICfih4gnLFxuICB1dW1sOiAnw7wnLFxuICB1d2FuZ2xlOiAn4qanJyxcbiAgdkFycjogJ+KHlScsXG4gIHZCYXI6ICfiq6gnLFxuICB2QmFydjogJ+KrqScsXG4gIHZEYXNoOiAn4oqoJyxcbiAgdmFuZ3J0OiAn4qacJyxcbiAgdmFyZXBzaWxvbjogJ8+1JyxcbiAgdmFya2FwcGE6ICfPsCcsXG4gIHZhcm5vdGhpbmc6ICfiiIUnLFxuICB2YXJwaGk6ICfPlScsXG4gIHZhcnBpOiAnz5YnLFxuICB2YXJwcm9wdG86ICfiiJ0nLFxuICB2YXJyOiAn4oaVJyxcbiAgdmFycmhvOiAnz7EnLFxuICB2YXJzaWdtYTogJ8+CJyxcbiAgdmFyc3Vic2V0bmVxOiAn4oqK77iAJyxcbiAgdmFyc3Vic2V0bmVxcTogJ+Kri++4gCcsXG4gIHZhcnN1cHNldG5lcTogJ+KKi++4gCcsXG4gIHZhcnN1cHNldG5lcXE6ICfiq4zvuIAnLFxuICB2YXJ0aGV0YTogJ8+RJyxcbiAgdmFydHJpYW5nbGVsZWZ0OiAn4oqyJyxcbiAgdmFydHJpYW5nbGVyaWdodDogJ+KKsycsXG4gIHZjeTogJ9CyJyxcbiAgdmRhc2g6ICfiiqInLFxuICB2ZWU6ICfiiKgnLFxuICB2ZWViYXI6ICfiirsnLFxuICB2ZWVlcTogJ+KJmicsXG4gIHZlbGxpcDogJ+KLricsXG4gIHZlcmJhcjogJ3wnLFxuICB2ZXJ0OiAnfCcsXG4gIHZmcjogJ/CdlLMnLFxuICB2bHRyaTogJ+KKsicsXG4gIHZuc3ViOiAn4oqC4oOSJyxcbiAgdm5zdXA6ICfiioPig5InLFxuICB2b3BmOiAn8J2VpycsXG4gIHZwcm9wOiAn4oidJyxcbiAgdnJ0cmk6ICfiirMnLFxuICB2c2NyOiAn8J2TiycsXG4gIHZzdWJuRTogJ+Kri++4gCcsXG4gIHZzdWJuZTogJ+KKiu+4gCcsXG4gIHZzdXBuRTogJ+KrjO+4gCcsXG4gIHZzdXBuZTogJ+KKi++4gCcsXG4gIHZ6aWd6YWc6ICfipponLFxuICB3Y2lyYzogJ8W1JyxcbiAgd2VkYmFyOiAn4qmfJyxcbiAgd2VkZ2U6ICfiiKcnLFxuICB3ZWRnZXE6ICfiiZknLFxuICB3ZWllcnA6ICfihJgnLFxuICB3ZnI6ICfwnZS0JyxcbiAgd29wZjogJ/CdlagnLFxuICB3cDogJ+KEmCcsXG4gIHdyOiAn4omAJyxcbiAgd3JlYXRoOiAn4omAJyxcbiAgd3NjcjogJ/Cdk4wnLFxuICB4Y2FwOiAn4ouCJyxcbiAgeGNpcmM6ICfil68nLFxuICB4Y3VwOiAn4ouDJyxcbiAgeGR0cmk6ICfilr0nLFxuICB4ZnI6ICfwnZS1JyxcbiAgeGhBcnI6ICfin7onLFxuICB4aGFycjogJ+KftycsXG4gIHhpOiAnzr4nLFxuICB4bEFycjogJ+KfuCcsXG4gIHhsYXJyOiAn4p+1JyxcbiAgeG1hcDogJ+KfvCcsXG4gIHhuaXM6ICfii7snLFxuICB4b2RvdDogJ+KogCcsXG4gIHhvcGY6ICfwnZWpJyxcbiAgeG9wbHVzOiAn4qiBJyxcbiAgeG90aW1lOiAn4qiCJyxcbiAgeHJBcnI6ICfin7knLFxuICB4cmFycjogJ+KfticsXG4gIHhzY3I6ICfwnZONJyxcbiAgeHNxY3VwOiAn4qiGJyxcbiAgeHVwbHVzOiAn4qiEJyxcbiAgeHV0cmk6ICfilrMnLFxuICB4dmVlOiAn4ouBJyxcbiAgeHdlZGdlOiAn4ouAJyxcbiAgeWFjdXRlOiAnw70nLFxuICB5YWN5OiAn0Y8nLFxuICB5Y2lyYzogJ8W3JyxcbiAgeWN5OiAn0YsnLFxuICB5ZW46ICfCpScsXG4gIHlmcjogJ/CdlLYnLFxuICB5aWN5OiAn0ZcnLFxuICB5b3BmOiAn8J2VqicsXG4gIHlzY3I6ICfwnZOOJyxcbiAgeXVjeTogJ9GOJyxcbiAgeXVtbDogJ8O/JyxcbiAgemFjdXRlOiAnxbonLFxuICB6Y2Fyb246ICfFvicsXG4gIHpjeTogJ9C3JyxcbiAgemRvdDogJ8W8JyxcbiAgemVldHJmOiAn4oSoJyxcbiAgemV0YTogJ862JyxcbiAgemZyOiAn8J2UtycsXG4gIHpoY3k6ICfQticsXG4gIHppZ3JhcnI6ICfih50nLFxuICB6b3BmOiAn8J2VqycsXG4gIHpzY3I6ICfwnZOPJyxcbiAgendqOiAn4oCNJyxcbiAgenduajogJ+KAjCdcbn1cbiJdLCJuYW1lcyI6WyJjaGFyYWN0ZXJFbnRpdGllcyIsIkFFbGlnIiwiQU1QIiwiQWFjdXRlIiwiQWJyZXZlIiwiQWNpcmMiLCJBY3kiLCJBZnIiLCJBZ3JhdmUiLCJBbHBoYSIsIkFtYWNyIiwiQW5kIiwiQW9nb24iLCJBb3BmIiwiQXBwbHlGdW5jdGlvbiIsIkFyaW5nIiwiQXNjciIsIkFzc2lnbiIsIkF0aWxkZSIsIkF1bWwiLCJCYWNrc2xhc2giLCJCYXJ2IiwiQmFyd2VkIiwiQmN5IiwiQmVjYXVzZSIsIkJlcm5vdWxsaXMiLCJCZXRhIiwiQmZyIiwiQm9wZiIsIkJyZXZlIiwiQnNjciIsIkJ1bXBlcSIsIkNIY3kiLCJDT1BZIiwiQ2FjdXRlIiwiQ2FwIiwiQ2FwaXRhbERpZmZlcmVudGlhbEQiLCJDYXlsZXlzIiwiQ2Nhcm9uIiwiQ2NlZGlsIiwiQ2NpcmMiLCJDY29uaW50IiwiQ2RvdCIsIkNlZGlsbGEiLCJDZW50ZXJEb3QiLCJDZnIiLCJDaGkiLCJDaXJjbGVEb3QiLCJDaXJjbGVNaW51cyIsIkNpcmNsZVBsdXMiLCJDaXJjbGVUaW1lcyIsIkNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCIsIkNsb3NlQ3VybHlEb3VibGVRdW90ZSIsIkNsb3NlQ3VybHlRdW90ZSIsIkNvbG9uIiwiQ29sb25lIiwiQ29uZ3J1ZW50IiwiQ29uaW50IiwiQ29udG91ckludGVncmFsIiwiQ29wZiIsIkNvcHJvZHVjdCIsIkNvdW50ZXJDbG9ja3dpc2VDb250b3VySW50ZWdyYWwiLCJDcm9zcyIsIkNzY3IiLCJDdXAiLCJDdXBDYXAiLCJERCIsIkREb3RyYWhkIiwiREpjeSIsIkRTY3kiLCJEWmN5IiwiRGFnZ2VyIiwiRGFyciIsIkRhc2h2IiwiRGNhcm9uIiwiRGN5IiwiRGVsIiwiRGVsdGEiLCJEZnIiLCJEaWFjcml0aWNhbEFjdXRlIiwiRGlhY3JpdGljYWxEb3QiLCJEaWFjcml0aWNhbERvdWJsZUFjdXRlIiwiRGlhY3JpdGljYWxHcmF2ZSIsIkRpYWNyaXRpY2FsVGlsZGUiLCJEaWFtb25kIiwiRGlmZmVyZW50aWFsRCIsIkRvcGYiLCJEb3QiLCJEb3REb3QiLCJEb3RFcXVhbCIsIkRvdWJsZUNvbnRvdXJJbnRlZ3JhbCIsIkRvdWJsZURvdCIsIkRvdWJsZURvd25BcnJvdyIsIkRvdWJsZUxlZnRBcnJvdyIsIkRvdWJsZUxlZnRSaWdodEFycm93IiwiRG91YmxlTGVmdFRlZSIsIkRvdWJsZUxvbmdMZWZ0QXJyb3ciLCJEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3ciLCJEb3VibGVMb25nUmlnaHRBcnJvdyIsIkRvdWJsZVJpZ2h0QXJyb3ciLCJEb3VibGVSaWdodFRlZSIsIkRvdWJsZVVwQXJyb3ciLCJEb3VibGVVcERvd25BcnJvdyIsIkRvdWJsZVZlcnRpY2FsQmFyIiwiRG93bkFycm93IiwiRG93bkFycm93QmFyIiwiRG93bkFycm93VXBBcnJvdyIsIkRvd25CcmV2ZSIsIkRvd25MZWZ0UmlnaHRWZWN0b3IiLCJEb3duTGVmdFRlZVZlY3RvciIsIkRvd25MZWZ0VmVjdG9yIiwiRG93bkxlZnRWZWN0b3JCYXIiLCJEb3duUmlnaHRUZWVWZWN0b3IiLCJEb3duUmlnaHRWZWN0b3IiLCJEb3duUmlnaHRWZWN0b3JCYXIiLCJEb3duVGVlIiwiRG93blRlZUFycm93IiwiRG93bmFycm93IiwiRHNjciIsIkRzdHJvayIsIkVORyIsIkVUSCIsIkVhY3V0ZSIsIkVjYXJvbiIsIkVjaXJjIiwiRWN5IiwiRWRvdCIsIkVmciIsIkVncmF2ZSIsIkVsZW1lbnQiLCJFbWFjciIsIkVtcHR5U21hbGxTcXVhcmUiLCJFbXB0eVZlcnlTbWFsbFNxdWFyZSIsIkVvZ29uIiwiRW9wZiIsIkVwc2lsb24iLCJFcXVhbCIsIkVxdWFsVGlsZGUiLCJFcXVpbGlicml1bSIsIkVzY3IiLCJFc2ltIiwiRXRhIiwiRXVtbCIsIkV4aXN0cyIsIkV4cG9uZW50aWFsRSIsIkZjeSIsIkZmciIsIkZpbGxlZFNtYWxsU3F1YXJlIiwiRmlsbGVkVmVyeVNtYWxsU3F1YXJlIiwiRm9wZiIsIkZvckFsbCIsIkZvdXJpZXJ0cmYiLCJGc2NyIiwiR0pjeSIsIkdUIiwiR2FtbWEiLCJHYW1tYWQiLCJHYnJldmUiLCJHY2VkaWwiLCJHY2lyYyIsIkdjeSIsIkdkb3QiLCJHZnIiLCJHZyIsIkdvcGYiLCJHcmVhdGVyRXF1YWwiLCJHcmVhdGVyRXF1YWxMZXNzIiwiR3JlYXRlckZ1bGxFcXVhbCIsIkdyZWF0ZXJHcmVhdGVyIiwiR3JlYXRlckxlc3MiLCJHcmVhdGVyU2xhbnRFcXVhbCIsIkdyZWF0ZXJUaWxkZSIsIkdzY3IiLCJHdCIsIkhBUkRjeSIsIkhhY2VrIiwiSGF0IiwiSGNpcmMiLCJIZnIiLCJIaWxiZXJ0U3BhY2UiLCJIb3BmIiwiSG9yaXpvbnRhbExpbmUiLCJIc2NyIiwiSHN0cm9rIiwiSHVtcERvd25IdW1wIiwiSHVtcEVxdWFsIiwiSUVjeSIsIklKbGlnIiwiSU9jeSIsIklhY3V0ZSIsIkljaXJjIiwiSWN5IiwiSWRvdCIsIklmciIsIklncmF2ZSIsIkltIiwiSW1hY3IiLCJJbWFnaW5hcnlJIiwiSW1wbGllcyIsIkludCIsIkludGVncmFsIiwiSW50ZXJzZWN0aW9uIiwiSW52aXNpYmxlQ29tbWEiLCJJbnZpc2libGVUaW1lcyIsIklvZ29uIiwiSW9wZiIsIklvdGEiLCJJc2NyIiwiSXRpbGRlIiwiSXVrY3kiLCJJdW1sIiwiSmNpcmMiLCJKY3kiLCJKZnIiLCJKb3BmIiwiSnNjciIsIkpzZXJjeSIsIkp1a2N5IiwiS0hjeSIsIktKY3kiLCJLYXBwYSIsIktjZWRpbCIsIktjeSIsIktmciIsIktvcGYiLCJLc2NyIiwiTEpjeSIsIkxUIiwiTGFjdXRlIiwiTGFtYmRhIiwiTGFuZyIsIkxhcGxhY2V0cmYiLCJMYXJyIiwiTGNhcm9uIiwiTGNlZGlsIiwiTGN5IiwiTGVmdEFuZ2xlQnJhY2tldCIsIkxlZnRBcnJvdyIsIkxlZnRBcnJvd0JhciIsIkxlZnRBcnJvd1JpZ2h0QXJyb3ciLCJMZWZ0Q2VpbGluZyIsIkxlZnREb3VibGVCcmFja2V0IiwiTGVmdERvd25UZWVWZWN0b3IiLCJMZWZ0RG93blZlY3RvciIsIkxlZnREb3duVmVjdG9yQmFyIiwiTGVmdEZsb29yIiwiTGVmdFJpZ2h0QXJyb3ciLCJMZWZ0UmlnaHRWZWN0b3IiLCJMZWZ0VGVlIiwiTGVmdFRlZUFycm93IiwiTGVmdFRlZVZlY3RvciIsIkxlZnRUcmlhbmdsZSIsIkxlZnRUcmlhbmdsZUJhciIsIkxlZnRUcmlhbmdsZUVxdWFsIiwiTGVmdFVwRG93blZlY3RvciIsIkxlZnRVcFRlZVZlY3RvciIsIkxlZnRVcFZlY3RvciIsIkxlZnRVcFZlY3RvckJhciIsIkxlZnRWZWN0b3IiLCJMZWZ0VmVjdG9yQmFyIiwiTGVmdGFycm93IiwiTGVmdHJpZ2h0YXJyb3ciLCJMZXNzRXF1YWxHcmVhdGVyIiwiTGVzc0Z1bGxFcXVhbCIsIkxlc3NHcmVhdGVyIiwiTGVzc0xlc3MiLCJMZXNzU2xhbnRFcXVhbCIsIkxlc3NUaWxkZSIsIkxmciIsIkxsIiwiTGxlZnRhcnJvdyIsIkxtaWRvdCIsIkxvbmdMZWZ0QXJyb3ciLCJMb25nTGVmdFJpZ2h0QXJyb3ciLCJMb25nUmlnaHRBcnJvdyIsIkxvbmdsZWZ0YXJyb3ciLCJMb25nbGVmdHJpZ2h0YXJyb3ciLCJMb25ncmlnaHRhcnJvdyIsIkxvcGYiLCJMb3dlckxlZnRBcnJvdyIsIkxvd2VyUmlnaHRBcnJvdyIsIkxzY3IiLCJMc2giLCJMc3Ryb2siLCJMdCIsIk1hcCIsIk1jeSIsIk1lZGl1bVNwYWNlIiwiTWVsbGludHJmIiwiTWZyIiwiTWludXNQbHVzIiwiTW9wZiIsIk1zY3IiLCJNdSIsIk5KY3kiLCJOYWN1dGUiLCJOY2Fyb24iLCJOY2VkaWwiLCJOY3kiLCJOZWdhdGl2ZU1lZGl1bVNwYWNlIiwiTmVnYXRpdmVUaGlja1NwYWNlIiwiTmVnYXRpdmVUaGluU3BhY2UiLCJOZWdhdGl2ZVZlcnlUaGluU3BhY2UiLCJOZXN0ZWRHcmVhdGVyR3JlYXRlciIsIk5lc3RlZExlc3NMZXNzIiwiTmV3TGluZSIsIk5mciIsIk5vQnJlYWsiLCJOb25CcmVha2luZ1NwYWNlIiwiTm9wZiIsIk5vdCIsIk5vdENvbmdydWVudCIsIk5vdEN1cENhcCIsIk5vdERvdWJsZVZlcnRpY2FsQmFyIiwiTm90RWxlbWVudCIsIk5vdEVxdWFsIiwiTm90RXF1YWxUaWxkZSIsIk5vdEV4aXN0cyIsIk5vdEdyZWF0ZXIiLCJOb3RHcmVhdGVyRXF1YWwiLCJOb3RHcmVhdGVyRnVsbEVxdWFsIiwiTm90R3JlYXRlckdyZWF0ZXIiLCJOb3RHcmVhdGVyTGVzcyIsIk5vdEdyZWF0ZXJTbGFudEVxdWFsIiwiTm90R3JlYXRlclRpbGRlIiwiTm90SHVtcERvd25IdW1wIiwiTm90SHVtcEVxdWFsIiwiTm90TGVmdFRyaWFuZ2xlIiwiTm90TGVmdFRyaWFuZ2xlQmFyIiwiTm90TGVmdFRyaWFuZ2xlRXF1YWwiLCJOb3RMZXNzIiwiTm90TGVzc0VxdWFsIiwiTm90TGVzc0dyZWF0ZXIiLCJOb3RMZXNzTGVzcyIsIk5vdExlc3NTbGFudEVxdWFsIiwiTm90TGVzc1RpbGRlIiwiTm90TmVzdGVkR3JlYXRlckdyZWF0ZXIiLCJOb3ROZXN0ZWRMZXNzTGVzcyIsIk5vdFByZWNlZGVzIiwiTm90UHJlY2VkZXNFcXVhbCIsIk5vdFByZWNlZGVzU2xhbnRFcXVhbCIsIk5vdFJldmVyc2VFbGVtZW50IiwiTm90UmlnaHRUcmlhbmdsZSIsIk5vdFJpZ2h0VHJpYW5nbGVCYXIiLCJOb3RSaWdodFRyaWFuZ2xlRXF1YWwiLCJOb3RTcXVhcmVTdWJzZXQiLCJOb3RTcXVhcmVTdWJzZXRFcXVhbCIsIk5vdFNxdWFyZVN1cGVyc2V0IiwiTm90U3F1YXJlU3VwZXJzZXRFcXVhbCIsIk5vdFN1YnNldCIsIk5vdFN1YnNldEVxdWFsIiwiTm90U3VjY2VlZHMiLCJOb3RTdWNjZWVkc0VxdWFsIiwiTm90U3VjY2VlZHNTbGFudEVxdWFsIiwiTm90U3VjY2VlZHNUaWxkZSIsIk5vdFN1cGVyc2V0IiwiTm90U3VwZXJzZXRFcXVhbCIsIk5vdFRpbGRlIiwiTm90VGlsZGVFcXVhbCIsIk5vdFRpbGRlRnVsbEVxdWFsIiwiTm90VGlsZGVUaWxkZSIsIk5vdFZlcnRpY2FsQmFyIiwiTnNjciIsIk50aWxkZSIsIk51IiwiT0VsaWciLCJPYWN1dGUiLCJPY2lyYyIsIk9jeSIsIk9kYmxhYyIsIk9mciIsIk9ncmF2ZSIsIk9tYWNyIiwiT21lZ2EiLCJPbWljcm9uIiwiT29wZiIsIk9wZW5DdXJseURvdWJsZVF1b3RlIiwiT3BlbkN1cmx5UXVvdGUiLCJPciIsIk9zY3IiLCJPc2xhc2giLCJPdGlsZGUiLCJPdGltZXMiLCJPdW1sIiwiT3ZlckJhciIsIk92ZXJCcmFjZSIsIk92ZXJCcmFja2V0IiwiT3ZlclBhcmVudGhlc2lzIiwiUGFydGlhbEQiLCJQY3kiLCJQZnIiLCJQaGkiLCJQaSIsIlBsdXNNaW51cyIsIlBvaW5jYXJlcGxhbmUiLCJQb3BmIiwiUHIiLCJQcmVjZWRlcyIsIlByZWNlZGVzRXF1YWwiLCJQcmVjZWRlc1NsYW50RXF1YWwiLCJQcmVjZWRlc1RpbGRlIiwiUHJpbWUiLCJQcm9kdWN0IiwiUHJvcG9ydGlvbiIsIlByb3BvcnRpb25hbCIsIlBzY3IiLCJQc2kiLCJRVU9UIiwiUWZyIiwiUW9wZiIsIlFzY3IiLCJSQmFyciIsIlJFRyIsIlJhY3V0ZSIsIlJhbmciLCJSYXJyIiwiUmFycnRsIiwiUmNhcm9uIiwiUmNlZGlsIiwiUmN5IiwiUmUiLCJSZXZlcnNlRWxlbWVudCIsIlJldmVyc2VFcXVpbGlicml1bSIsIlJldmVyc2VVcEVxdWlsaWJyaXVtIiwiUmZyIiwiUmhvIiwiUmlnaHRBbmdsZUJyYWNrZXQiLCJSaWdodEFycm93IiwiUmlnaHRBcnJvd0JhciIsIlJpZ2h0QXJyb3dMZWZ0QXJyb3ciLCJSaWdodENlaWxpbmciLCJSaWdodERvdWJsZUJyYWNrZXQiLCJSaWdodERvd25UZWVWZWN0b3IiLCJSaWdodERvd25WZWN0b3IiLCJSaWdodERvd25WZWN0b3JCYXIiLCJSaWdodEZsb29yIiwiUmlnaHRUZWUiLCJSaWdodFRlZUFycm93IiwiUmlnaHRUZWVWZWN0b3IiLCJSaWdodFRyaWFuZ2xlIiwiUmlnaHRUcmlhbmdsZUJhciIsIlJpZ2h0VHJpYW5nbGVFcXVhbCIsIlJpZ2h0VXBEb3duVmVjdG9yIiwiUmlnaHRVcFRlZVZlY3RvciIsIlJpZ2h0VXBWZWN0b3IiLCJSaWdodFVwVmVjdG9yQmFyIiwiUmlnaHRWZWN0b3IiLCJSaWdodFZlY3RvckJhciIsIlJpZ2h0YXJyb3ciLCJSb3BmIiwiUm91bmRJbXBsaWVzIiwiUnJpZ2h0YXJyb3ciLCJSc2NyIiwiUnNoIiwiUnVsZURlbGF5ZWQiLCJTSENIY3kiLCJTSGN5IiwiU09GVGN5IiwiU2FjdXRlIiwiU2MiLCJTY2Fyb24iLCJTY2VkaWwiLCJTY2lyYyIsIlNjeSIsIlNmciIsIlNob3J0RG93bkFycm93IiwiU2hvcnRMZWZ0QXJyb3ciLCJTaG9ydFJpZ2h0QXJyb3ciLCJTaG9ydFVwQXJyb3ciLCJTaWdtYSIsIlNtYWxsQ2lyY2xlIiwiU29wZiIsIlNxcnQiLCJTcXVhcmUiLCJTcXVhcmVJbnRlcnNlY3Rpb24iLCJTcXVhcmVTdWJzZXQiLCJTcXVhcmVTdWJzZXRFcXVhbCIsIlNxdWFyZVN1cGVyc2V0IiwiU3F1YXJlU3VwZXJzZXRFcXVhbCIsIlNxdWFyZVVuaW9uIiwiU3NjciIsIlN0YXIiLCJTdWIiLCJTdWJzZXQiLCJTdWJzZXRFcXVhbCIsIlN1Y2NlZWRzIiwiU3VjY2VlZHNFcXVhbCIsIlN1Y2NlZWRzU2xhbnRFcXVhbCIsIlN1Y2NlZWRzVGlsZGUiLCJTdWNoVGhhdCIsIlN1bSIsIlN1cCIsIlN1cGVyc2V0IiwiU3VwZXJzZXRFcXVhbCIsIlN1cHNldCIsIlRIT1JOIiwiVFJBREUiLCJUU0hjeSIsIlRTY3kiLCJUYWIiLCJUYXUiLCJUY2Fyb24iLCJUY2VkaWwiLCJUY3kiLCJUZnIiLCJUaGVyZWZvcmUiLCJUaGV0YSIsIlRoaWNrU3BhY2UiLCJUaGluU3BhY2UiLCJUaWxkZSIsIlRpbGRlRXF1YWwiLCJUaWxkZUZ1bGxFcXVhbCIsIlRpbGRlVGlsZGUiLCJUb3BmIiwiVHJpcGxlRG90IiwiVHNjciIsIlRzdHJvayIsIlVhY3V0ZSIsIlVhcnIiLCJVYXJyb2NpciIsIlVicmN5IiwiVWJyZXZlIiwiVWNpcmMiLCJVY3kiLCJVZGJsYWMiLCJVZnIiLCJVZ3JhdmUiLCJVbWFjciIsIlVuZGVyQmFyIiwiVW5kZXJCcmFjZSIsIlVuZGVyQnJhY2tldCIsIlVuZGVyUGFyZW50aGVzaXMiLCJVbmlvbiIsIlVuaW9uUGx1cyIsIlVvZ29uIiwiVW9wZiIsIlVwQXJyb3ciLCJVcEFycm93QmFyIiwiVXBBcnJvd0Rvd25BcnJvdyIsIlVwRG93bkFycm93IiwiVXBFcXVpbGlicml1bSIsIlVwVGVlIiwiVXBUZWVBcnJvdyIsIlVwYXJyb3ciLCJVcGRvd25hcnJvdyIsIlVwcGVyTGVmdEFycm93IiwiVXBwZXJSaWdodEFycm93IiwiVXBzaSIsIlVwc2lsb24iLCJVcmluZyIsIlVzY3IiLCJVdGlsZGUiLCJVdW1sIiwiVkRhc2giLCJWYmFyIiwiVmN5IiwiVmRhc2giLCJWZGFzaGwiLCJWZWUiLCJWZXJiYXIiLCJWZXJ0IiwiVmVydGljYWxCYXIiLCJWZXJ0aWNhbExpbmUiLCJWZXJ0aWNhbFNlcGFyYXRvciIsIlZlcnRpY2FsVGlsZGUiLCJWZXJ5VGhpblNwYWNlIiwiVmZyIiwiVm9wZiIsIlZzY3IiLCJWdmRhc2giLCJXY2lyYyIsIldlZGdlIiwiV2ZyIiwiV29wZiIsIldzY3IiLCJYZnIiLCJYaSIsIlhvcGYiLCJYc2NyIiwiWUFjeSIsIllJY3kiLCJZVWN5IiwiWWFjdXRlIiwiWWNpcmMiLCJZY3kiLCJZZnIiLCJZb3BmIiwiWXNjciIsIll1bWwiLCJaSGN5IiwiWmFjdXRlIiwiWmNhcm9uIiwiWmN5IiwiWmRvdCIsIlplcm9XaWR0aFNwYWNlIiwiWmV0YSIsIlpmciIsIlpvcGYiLCJac2NyIiwiYWFjdXRlIiwiYWJyZXZlIiwiYWMiLCJhY0UiLCJhY2QiLCJhY2lyYyIsImFjdXRlIiwiYWN5IiwiYWVsaWciLCJhZiIsImFmciIsImFncmF2ZSIsImFsZWZzeW0iLCJhbGVwaCIsImFscGhhIiwiYW1hY3IiLCJhbWFsZyIsImFtcCIsImFuZCIsImFuZGFuZCIsImFuZGQiLCJhbmRzbG9wZSIsImFuZHYiLCJhbmciLCJhbmdlIiwiYW5nbGUiLCJhbmdtc2QiLCJhbmdtc2RhYSIsImFuZ21zZGFiIiwiYW5nbXNkYWMiLCJhbmdtc2RhZCIsImFuZ21zZGFlIiwiYW5nbXNkYWYiLCJhbmdtc2RhZyIsImFuZ21zZGFoIiwiYW5ncnQiLCJhbmdydHZiIiwiYW5ncnR2YmQiLCJhbmdzcGgiLCJhbmdzdCIsImFuZ3phcnIiLCJhb2dvbiIsImFvcGYiLCJhcCIsImFwRSIsImFwYWNpciIsImFwZSIsImFwaWQiLCJhcG9zIiwiYXBwcm94IiwiYXBwcm94ZXEiLCJhcmluZyIsImFzY3IiLCJhc3QiLCJhc3ltcCIsImFzeW1wZXEiLCJhdGlsZGUiLCJhdW1sIiwiYXdjb25pbnQiLCJhd2ludCIsImJOb3QiLCJiYWNrY29uZyIsImJhY2tlcHNpbG9uIiwiYmFja3ByaW1lIiwiYmFja3NpbSIsImJhY2tzaW1lcSIsImJhcnZlZSIsImJhcndlZCIsImJhcndlZGdlIiwiYmJyayIsImJicmt0YnJrIiwiYmNvbmciLCJiY3kiLCJiZHF1byIsImJlY2F1cyIsImJlY2F1c2UiLCJiZW1wdHl2IiwiYmVwc2kiLCJiZXJub3UiLCJiZXRhIiwiYmV0aCIsImJldHdlZW4iLCJiZnIiLCJiaWdjYXAiLCJiaWdjaXJjIiwiYmlnY3VwIiwiYmlnb2RvdCIsImJpZ29wbHVzIiwiYmlnb3RpbWVzIiwiYmlnc3FjdXAiLCJiaWdzdGFyIiwiYmlndHJpYW5nbGVkb3duIiwiYmlndHJpYW5nbGV1cCIsImJpZ3VwbHVzIiwiYmlndmVlIiwiYmlnd2VkZ2UiLCJia2Fyb3ciLCJibGFja2xvemVuZ2UiLCJibGFja3NxdWFyZSIsImJsYWNrdHJpYW5nbGUiLCJibGFja3RyaWFuZ2xlZG93biIsImJsYWNrdHJpYW5nbGVsZWZ0IiwiYmxhY2t0cmlhbmdsZXJpZ2h0IiwiYmxhbmsiLCJibGsxMiIsImJsazE0IiwiYmxrMzQiLCJibG9jayIsImJuZSIsImJuZXF1aXYiLCJibm90IiwiYm9wZiIsImJvdCIsImJvdHRvbSIsImJvd3RpZSIsImJveERMIiwiYm94RFIiLCJib3hEbCIsImJveERyIiwiYm94SCIsImJveEhEIiwiYm94SFUiLCJib3hIZCIsImJveEh1IiwiYm94VUwiLCJib3hVUiIsImJveFVsIiwiYm94VXIiLCJib3hWIiwiYm94VkgiLCJib3hWTCIsImJveFZSIiwiYm94VmgiLCJib3hWbCIsImJveFZyIiwiYm94Ym94IiwiYm94ZEwiLCJib3hkUiIsImJveGRsIiwiYm94ZHIiLCJib3hoIiwiYm94aEQiLCJib3hoVSIsImJveGhkIiwiYm94aHUiLCJib3htaW51cyIsImJveHBsdXMiLCJib3h0aW1lcyIsImJveHVMIiwiYm94dVIiLCJib3h1bCIsImJveHVyIiwiYm94diIsImJveHZIIiwiYm94dkwiLCJib3h2UiIsImJveHZoIiwiYm94dmwiLCJib3h2ciIsImJwcmltZSIsImJyZXZlIiwiYnJ2YmFyIiwiYnNjciIsImJzZW1pIiwiYnNpbSIsImJzaW1lIiwiYnNvbCIsImJzb2xiIiwiYnNvbGhzdWIiLCJidWxsIiwiYnVsbGV0IiwiYnVtcCIsImJ1bXBFIiwiYnVtcGUiLCJidW1wZXEiLCJjYWN1dGUiLCJjYXAiLCJjYXBhbmQiLCJjYXBicmN1cCIsImNhcGNhcCIsImNhcGN1cCIsImNhcGRvdCIsImNhcHMiLCJjYXJldCIsImNhcm9uIiwiY2NhcHMiLCJjY2Fyb24iLCJjY2VkaWwiLCJjY2lyYyIsImNjdXBzIiwiY2N1cHNzbSIsImNkb3QiLCJjZWRpbCIsImNlbXB0eXYiLCJjZW50IiwiY2VudGVyZG90IiwiY2ZyIiwiY2hjeSIsImNoZWNrIiwiY2hlY2ttYXJrIiwiY2hpIiwiY2lyIiwiY2lyRSIsImNpcmMiLCJjaXJjZXEiLCJjaXJjbGVhcnJvd2xlZnQiLCJjaXJjbGVhcnJvd3JpZ2h0IiwiY2lyY2xlZFIiLCJjaXJjbGVkUyIsImNpcmNsZWRhc3QiLCJjaXJjbGVkY2lyYyIsImNpcmNsZWRkYXNoIiwiY2lyZSIsImNpcmZuaW50IiwiY2lybWlkIiwiY2lyc2NpciIsImNsdWJzIiwiY2x1YnN1aXQiLCJjb2xvbiIsImNvbG9uZSIsImNvbG9uZXEiLCJjb21tYSIsImNvbW1hdCIsImNvbXAiLCJjb21wZm4iLCJjb21wbGVtZW50IiwiY29tcGxleGVzIiwiY29uZyIsImNvbmdkb3QiLCJjb25pbnQiLCJjb3BmIiwiY29wcm9kIiwiY29weSIsImNvcHlzciIsImNyYXJyIiwiY3Jvc3MiLCJjc2NyIiwiY3N1YiIsImNzdWJlIiwiY3N1cCIsImNzdXBlIiwiY3Rkb3QiLCJjdWRhcnJsIiwiY3VkYXJyciIsImN1ZXByIiwiY3Vlc2MiLCJjdWxhcnIiLCJjdWxhcnJwIiwiY3VwIiwiY3VwYnJjYXAiLCJjdXBjYXAiLCJjdXBjdXAiLCJjdXBkb3QiLCJjdXBvciIsImN1cHMiLCJjdXJhcnIiLCJjdXJhcnJtIiwiY3VybHllcXByZWMiLCJjdXJseWVxc3VjYyIsImN1cmx5dmVlIiwiY3VybHl3ZWRnZSIsImN1cnJlbiIsImN1cnZlYXJyb3dsZWZ0IiwiY3VydmVhcnJvd3JpZ2h0IiwiY3V2ZWUiLCJjdXdlZCIsImN3Y29uaW50IiwiY3dpbnQiLCJjeWxjdHkiLCJkQXJyIiwiZEhhciIsImRhZ2dlciIsImRhbGV0aCIsImRhcnIiLCJkYXNoIiwiZGFzaHYiLCJkYmthcm93IiwiZGJsYWMiLCJkY2Fyb24iLCJkY3kiLCJkZCIsImRkYWdnZXIiLCJkZGFyciIsImRkb3RzZXEiLCJkZWciLCJkZWx0YSIsImRlbXB0eXYiLCJkZmlzaHQiLCJkZnIiLCJkaGFybCIsImRoYXJyIiwiZGlhbSIsImRpYW1vbmQiLCJkaWFtb25kc3VpdCIsImRpYW1zIiwiZGllIiwiZGlnYW1tYSIsImRpc2luIiwiZGl2IiwiZGl2aWRlIiwiZGl2aWRlb250aW1lcyIsImRpdm9ueCIsImRqY3kiLCJkbGNvcm4iLCJkbGNyb3AiLCJkb2xsYXIiLCJkb3BmIiwiZG90IiwiZG90ZXEiLCJkb3RlcWRvdCIsImRvdG1pbnVzIiwiZG90cGx1cyIsImRvdHNxdWFyZSIsImRvdWJsZWJhcndlZGdlIiwiZG93bmFycm93IiwiZG93bmRvd25hcnJvd3MiLCJkb3duaGFycG9vbmxlZnQiLCJkb3duaGFycG9vbnJpZ2h0IiwiZHJia2Fyb3ciLCJkcmNvcm4iLCJkcmNyb3AiLCJkc2NyIiwiZHNjeSIsImRzb2wiLCJkc3Ryb2siLCJkdGRvdCIsImR0cmkiLCJkdHJpZiIsImR1YXJyIiwiZHVoYXIiLCJkd2FuZ2xlIiwiZHpjeSIsImR6aWdyYXJyIiwiZUREb3QiLCJlRG90IiwiZWFjdXRlIiwiZWFzdGVyIiwiZWNhcm9uIiwiZWNpciIsImVjaXJjIiwiZWNvbG9uIiwiZWN5IiwiZWRvdCIsImVlIiwiZWZEb3QiLCJlZnIiLCJlZyIsImVncmF2ZSIsImVncyIsImVnc2RvdCIsImVsIiwiZWxpbnRlcnMiLCJlbGwiLCJlbHMiLCJlbHNkb3QiLCJlbWFjciIsImVtcHR5IiwiZW1wdHlzZXQiLCJlbXB0eXYiLCJlbXNwMTMiLCJlbXNwMTQiLCJlbXNwIiwiZW5nIiwiZW5zcCIsImVvZ29uIiwiZW9wZiIsImVwYXIiLCJlcGFyc2wiLCJlcGx1cyIsImVwc2kiLCJlcHNpbG9uIiwiZXBzaXYiLCJlcWNpcmMiLCJlcWNvbG9uIiwiZXFzaW0iLCJlcXNsYW50Z3RyIiwiZXFzbGFudGxlc3MiLCJlcXVhbHMiLCJlcXVlc3QiLCJlcXVpdiIsImVxdWl2REQiLCJlcXZwYXJzbCIsImVyRG90IiwiZXJhcnIiLCJlc2NyIiwiZXNkb3QiLCJlc2ltIiwiZXRhIiwiZXRoIiwiZXVtbCIsImV1cm8iLCJleGNsIiwiZXhpc3QiLCJleHBlY3RhdGlvbiIsImV4cG9uZW50aWFsZSIsImZhbGxpbmdkb3RzZXEiLCJmY3kiLCJmZW1hbGUiLCJmZmlsaWciLCJmZmxpZyIsImZmbGxpZyIsImZmciIsImZpbGlnIiwiZmpsaWciLCJmbGF0IiwiZmxsaWciLCJmbHRucyIsImZub2YiLCJmb3BmIiwiZm9yYWxsIiwiZm9yayIsImZvcmt2IiwiZnBhcnRpbnQiLCJmcmFjMTIiLCJmcmFjMTMiLCJmcmFjMTQiLCJmcmFjMTUiLCJmcmFjMTYiLCJmcmFjMTgiLCJmcmFjMjMiLCJmcmFjMjUiLCJmcmFjMzQiLCJmcmFjMzUiLCJmcmFjMzgiLCJmcmFjNDUiLCJmcmFjNTYiLCJmcmFjNTgiLCJmcmFjNzgiLCJmcmFzbCIsImZyb3duIiwiZnNjciIsImdFIiwiZ0VsIiwiZ2FjdXRlIiwiZ2FtbWEiLCJnYW1tYWQiLCJnYXAiLCJnYnJldmUiLCJnY2lyYyIsImdjeSIsImdkb3QiLCJnZSIsImdlbCIsImdlcSIsImdlcXEiLCJnZXFzbGFudCIsImdlcyIsImdlc2NjIiwiZ2VzZG90IiwiZ2VzZG90byIsImdlc2RvdG9sIiwiZ2VzbCIsImdlc2xlcyIsImdmciIsImdnIiwiZ2dnIiwiZ2ltZWwiLCJnamN5IiwiZ2wiLCJnbEUiLCJnbGEiLCJnbGoiLCJnbkUiLCJnbmFwIiwiZ25hcHByb3giLCJnbmUiLCJnbmVxIiwiZ25lcXEiLCJnbnNpbSIsImdvcGYiLCJncmF2ZSIsImdzY3IiLCJnc2ltIiwiZ3NpbWUiLCJnc2ltbCIsImd0IiwiZ3RjYyIsImd0Y2lyIiwiZ3Rkb3QiLCJndGxQYXIiLCJndHF1ZXN0IiwiZ3RyYXBwcm94IiwiZ3RyYXJyIiwiZ3RyZG90IiwiZ3RyZXFsZXNzIiwiZ3RyZXFxbGVzcyIsImd0cmxlc3MiLCJndHJzaW0iLCJndmVydG5lcXEiLCJndm5FIiwiaEFyciIsImhhaXJzcCIsImhhbGYiLCJoYW1pbHQiLCJoYXJkY3kiLCJoYXJyIiwiaGFycmNpciIsImhhcnJ3IiwiaGJhciIsImhjaXJjIiwiaGVhcnRzIiwiaGVhcnRzdWl0IiwiaGVsbGlwIiwiaGVyY29uIiwiaGZyIiwiaGtzZWFyb3ciLCJoa3N3YXJvdyIsImhvYXJyIiwiaG9tdGh0IiwiaG9va2xlZnRhcnJvdyIsImhvb2tyaWdodGFycm93IiwiaG9wZiIsImhvcmJhciIsImhzY3IiLCJoc2xhc2giLCJoc3Ryb2siLCJoeWJ1bGwiLCJoeXBoZW4iLCJpYWN1dGUiLCJpYyIsImljaXJjIiwiaWN5IiwiaWVjeSIsImlleGNsIiwiaWZmIiwiaWZyIiwiaWdyYXZlIiwiaWkiLCJpaWlpbnQiLCJpaWludCIsImlpbmZpbiIsImlpb3RhIiwiaWpsaWciLCJpbWFjciIsImltYWdlIiwiaW1hZ2xpbmUiLCJpbWFncGFydCIsImltYXRoIiwiaW1vZiIsImltcGVkIiwiaW4iLCJpbmNhcmUiLCJpbmZpbiIsImluZmludGllIiwiaW5vZG90IiwiaW50IiwiaW50Y2FsIiwiaW50ZWdlcnMiLCJpbnRlcmNhbCIsImludGxhcmhrIiwiaW50cHJvZCIsImlvY3kiLCJpb2dvbiIsImlvcGYiLCJpb3RhIiwiaXByb2QiLCJpcXVlc3QiLCJpc2NyIiwiaXNpbiIsImlzaW5FIiwiaXNpbmRvdCIsImlzaW5zIiwiaXNpbnN2IiwiaXNpbnYiLCJpdCIsIml0aWxkZSIsIml1a2N5IiwiaXVtbCIsImpjaXJjIiwiamN5IiwiamZyIiwiam1hdGgiLCJqb3BmIiwianNjciIsImpzZXJjeSIsImp1a2N5Iiwia2FwcGEiLCJrYXBwYXYiLCJrY2VkaWwiLCJrY3kiLCJrZnIiLCJrZ3JlZW4iLCJraGN5Iiwia2pjeSIsImtvcGYiLCJrc2NyIiwibEFhcnIiLCJsQXJyIiwibEF0YWlsIiwibEJhcnIiLCJsRSIsImxFZyIsImxIYXIiLCJsYWN1dGUiLCJsYWVtcHR5diIsImxhZ3JhbiIsImxhbWJkYSIsImxhbmciLCJsYW5nZCIsImxhbmdsZSIsImxhcCIsImxhcXVvIiwibGFyciIsImxhcnJiIiwibGFycmJmcyIsImxhcnJmcyIsImxhcnJoayIsImxhcnJscCIsImxhcnJwbCIsImxhcnJzaW0iLCJsYXJydGwiLCJsYXQiLCJsYXRhaWwiLCJsYXRlIiwibGF0ZXMiLCJsYmFyciIsImxiYnJrIiwibGJyYWNlIiwibGJyYWNrIiwibGJya2UiLCJsYnJrc2xkIiwibGJya3NsdSIsImxjYXJvbiIsImxjZWRpbCIsImxjZWlsIiwibGN1YiIsImxjeSIsImxkY2EiLCJsZHF1byIsImxkcXVvciIsImxkcmRoYXIiLCJsZHJ1c2hhciIsImxkc2giLCJsZSIsImxlZnRhcnJvdyIsImxlZnRhcnJvd3RhaWwiLCJsZWZ0aGFycG9vbmRvd24iLCJsZWZ0aGFycG9vbnVwIiwibGVmdGxlZnRhcnJvd3MiLCJsZWZ0cmlnaHRhcnJvdyIsImxlZnRyaWdodGFycm93cyIsImxlZnRyaWdodGhhcnBvb25zIiwibGVmdHJpZ2h0c3F1aWdhcnJvdyIsImxlZnR0aHJlZXRpbWVzIiwibGVnIiwibGVxIiwibGVxcSIsImxlcXNsYW50IiwibGVzIiwibGVzY2MiLCJsZXNkb3QiLCJsZXNkb3RvIiwibGVzZG90b3IiLCJsZXNnIiwibGVzZ2VzIiwibGVzc2FwcHJveCIsImxlc3Nkb3QiLCJsZXNzZXFndHIiLCJsZXNzZXFxZ3RyIiwibGVzc2d0ciIsImxlc3NzaW0iLCJsZmlzaHQiLCJsZmxvb3IiLCJsZnIiLCJsZyIsImxnRSIsImxoYXJkIiwibGhhcnUiLCJsaGFydWwiLCJsaGJsayIsImxqY3kiLCJsbCIsImxsYXJyIiwibGxjb3JuZXIiLCJsbGhhcmQiLCJsbHRyaSIsImxtaWRvdCIsImxtb3VzdCIsImxtb3VzdGFjaGUiLCJsbkUiLCJsbmFwIiwibG5hcHByb3giLCJsbmUiLCJsbmVxIiwibG5lcXEiLCJsbnNpbSIsImxvYW5nIiwibG9hcnIiLCJsb2JyayIsImxvbmdsZWZ0YXJyb3ciLCJsb25nbGVmdHJpZ2h0YXJyb3ciLCJsb25nbWFwc3RvIiwibG9uZ3JpZ2h0YXJyb3ciLCJsb29wYXJyb3dsZWZ0IiwibG9vcGFycm93cmlnaHQiLCJsb3BhciIsImxvcGYiLCJsb3BsdXMiLCJsb3RpbWVzIiwibG93YXN0IiwibG93YmFyIiwibG96IiwibG96ZW5nZSIsImxvemYiLCJscGFyIiwibHBhcmx0IiwibHJhcnIiLCJscmNvcm5lciIsImxyaGFyIiwibHJoYXJkIiwibHJtIiwibHJ0cmkiLCJsc2FxdW8iLCJsc2NyIiwibHNoIiwibHNpbSIsImxzaW1lIiwibHNpbWciLCJsc3FiIiwibHNxdW8iLCJsc3F1b3IiLCJsc3Ryb2siLCJsdCIsImx0Y2MiLCJsdGNpciIsImx0ZG90IiwibHRocmVlIiwibHRpbWVzIiwibHRsYXJyIiwibHRxdWVzdCIsImx0clBhciIsImx0cmkiLCJsdHJpZSIsImx0cmlmIiwibHVyZHNoYXIiLCJsdXJ1aGFyIiwibHZlcnRuZXFxIiwibHZuRSIsIm1ERG90IiwibWFjciIsIm1hbGUiLCJtYWx0IiwibWFsdGVzZSIsIm1hcCIsIm1hcHN0byIsIm1hcHN0b2Rvd24iLCJtYXBzdG9sZWZ0IiwibWFwc3RvdXAiLCJtYXJrZXIiLCJtY29tbWEiLCJtY3kiLCJtZGFzaCIsIm1lYXN1cmVkYW5nbGUiLCJtZnIiLCJtaG8iLCJtaWNybyIsIm1pZCIsIm1pZGFzdCIsIm1pZGNpciIsIm1pZGRvdCIsIm1pbnVzIiwibWludXNiIiwibWludXNkIiwibWludXNkdSIsIm1sY3AiLCJtbGRyIiwibW5wbHVzIiwibW9kZWxzIiwibW9wZiIsIm1wIiwibXNjciIsIm1zdHBvcyIsIm11IiwibXVsdGltYXAiLCJtdW1hcCIsIm5HZyIsIm5HdCIsIm5HdHYiLCJuTGVmdGFycm93IiwibkxlZnRyaWdodGFycm93IiwibkxsIiwibkx0Iiwibkx0diIsIm5SaWdodGFycm93IiwiblZEYXNoIiwiblZkYXNoIiwibmFibGEiLCJuYWN1dGUiLCJuYW5nIiwibmFwIiwibmFwRSIsIm5hcGlkIiwibmFwb3MiLCJuYXBwcm94IiwibmF0dXIiLCJuYXR1cmFsIiwibmF0dXJhbHMiLCJuYnNwIiwibmJ1bXAiLCJuYnVtcGUiLCJuY2FwIiwibmNhcm9uIiwibmNlZGlsIiwibmNvbmciLCJuY29uZ2RvdCIsIm5jdXAiLCJuY3kiLCJuZGFzaCIsIm5lIiwibmVBcnIiLCJuZWFyaGsiLCJuZWFyciIsIm5lYXJyb3ciLCJuZWRvdCIsIm5lcXVpdiIsIm5lc2VhciIsIm5lc2ltIiwibmV4aXN0IiwibmV4aXN0cyIsIm5mciIsIm5nRSIsIm5nZSIsIm5nZXEiLCJuZ2VxcSIsIm5nZXFzbGFudCIsIm5nZXMiLCJuZ3NpbSIsIm5ndCIsIm5ndHIiLCJuaEFyciIsIm5oYXJyIiwibmhwYXIiLCJuaSIsIm5pcyIsIm5pc2QiLCJuaXYiLCJuamN5IiwibmxBcnIiLCJubEUiLCJubGFyciIsIm5sZHIiLCJubGUiLCJubGVmdGFycm93IiwibmxlZnRyaWdodGFycm93IiwibmxlcSIsIm5sZXFxIiwibmxlcXNsYW50IiwibmxlcyIsIm5sZXNzIiwibmxzaW0iLCJubHQiLCJubHRyaSIsIm5sdHJpZSIsIm5taWQiLCJub3BmIiwibm90Iiwibm90aW4iLCJub3RpbkUiLCJub3RpbmRvdCIsIm5vdGludmEiLCJub3RpbnZiIiwibm90aW52YyIsIm5vdG5pIiwibm90bml2YSIsIm5vdG5pdmIiLCJub3RuaXZjIiwibnBhciIsIm5wYXJhbGxlbCIsIm5wYXJzbCIsIm5wYXJ0IiwibnBvbGludCIsIm5wciIsIm5wcmN1ZSIsIm5wcmUiLCJucHJlYyIsIm5wcmVjZXEiLCJuckFyciIsIm5yYXJyIiwibnJhcnJjIiwibnJhcnJ3IiwibnJpZ2h0YXJyb3ciLCJucnRyaSIsIm5ydHJpZSIsIm5zYyIsIm5zY2N1ZSIsIm5zY2UiLCJuc2NyIiwibnNob3J0bWlkIiwibnNob3J0cGFyYWxsZWwiLCJuc2ltIiwibnNpbWUiLCJuc2ltZXEiLCJuc21pZCIsIm5zcGFyIiwibnNxc3ViZSIsIm5zcXN1cGUiLCJuc3ViIiwibnN1YkUiLCJuc3ViZSIsIm5zdWJzZXQiLCJuc3Vic2V0ZXEiLCJuc3Vic2V0ZXFxIiwibnN1Y2MiLCJuc3VjY2VxIiwibnN1cCIsIm5zdXBFIiwibnN1cGUiLCJuc3Vwc2V0IiwibnN1cHNldGVxIiwibnN1cHNldGVxcSIsIm50Z2wiLCJudGlsZGUiLCJudGxnIiwibnRyaWFuZ2xlbGVmdCIsIm50cmlhbmdsZWxlZnRlcSIsIm50cmlhbmdsZXJpZ2h0IiwibnRyaWFuZ2xlcmlnaHRlcSIsIm51IiwibnVtIiwibnVtZXJvIiwibnVtc3AiLCJudkRhc2giLCJudkhhcnIiLCJudmFwIiwibnZkYXNoIiwibnZnZSIsIm52Z3QiLCJudmluZmluIiwibnZsQXJyIiwibnZsZSIsIm52bHQiLCJudmx0cmllIiwibnZyQXJyIiwibnZydHJpZSIsIm52c2ltIiwibndBcnIiLCJud2FyaGsiLCJud2FyciIsIm53YXJyb3ciLCJud25lYXIiLCJvUyIsIm9hY3V0ZSIsIm9hc3QiLCJvY2lyIiwib2NpcmMiLCJvY3kiLCJvZGFzaCIsIm9kYmxhYyIsIm9kaXYiLCJvZG90Iiwib2Rzb2xkIiwib2VsaWciLCJvZmNpciIsIm9mciIsIm9nb24iLCJvZ3JhdmUiLCJvZ3QiLCJvaGJhciIsIm9obSIsIm9pbnQiLCJvbGFyciIsIm9sY2lyIiwib2xjcm9zcyIsIm9saW5lIiwib2x0Iiwib21hY3IiLCJvbWVnYSIsIm9taWNyb24iLCJvbWlkIiwib21pbnVzIiwib29wZiIsIm9wYXIiLCJvcGVycCIsIm9wbHVzIiwib3IiLCJvcmFyciIsIm9yZCIsIm9yZGVyIiwib3JkZXJvZiIsIm9yZGYiLCJvcmRtIiwib3JpZ29mIiwib3JvciIsIm9yc2xvcGUiLCJvcnYiLCJvc2NyIiwib3NsYXNoIiwib3NvbCIsIm90aWxkZSIsIm90aW1lcyIsIm90aW1lc2FzIiwib3VtbCIsIm92YmFyIiwicGFyIiwicGFyYSIsInBhcmFsbGVsIiwicGFyc2ltIiwicGFyc2wiLCJwYXJ0IiwicGN5IiwicGVyY250IiwicGVyaW9kIiwicGVybWlsIiwicGVycCIsInBlcnRlbmsiLCJwZnIiLCJwaGkiLCJwaGl2IiwicGhtbWF0IiwicGhvbmUiLCJwaSIsInBpdGNoZm9yayIsInBpdiIsInBsYW5jayIsInBsYW5ja2giLCJwbGFua3YiLCJwbHVzIiwicGx1c2FjaXIiLCJwbHVzYiIsInBsdXNjaXIiLCJwbHVzZG8iLCJwbHVzZHUiLCJwbHVzZSIsInBsdXNtbiIsInBsdXNzaW0iLCJwbHVzdHdvIiwicG0iLCJwb2ludGludCIsInBvcGYiLCJwb3VuZCIsInByIiwicHJFIiwicHJhcCIsInByY3VlIiwicHJlIiwicHJlYyIsInByZWNhcHByb3giLCJwcmVjY3VybHllcSIsInByZWNlcSIsInByZWNuYXBwcm94IiwicHJlY25lcXEiLCJwcmVjbnNpbSIsInByZWNzaW0iLCJwcmltZSIsInByaW1lcyIsInBybkUiLCJwcm5hcCIsInBybnNpbSIsInByb2QiLCJwcm9mYWxhciIsInByb2ZsaW5lIiwicHJvZnN1cmYiLCJwcm9wIiwicHJvcHRvIiwicHJzaW0iLCJwcnVyZWwiLCJwc2NyIiwicHNpIiwicHVuY3NwIiwicWZyIiwicWludCIsInFvcGYiLCJxcHJpbWUiLCJxc2NyIiwicXVhdGVybmlvbnMiLCJxdWF0aW50IiwicXVlc3QiLCJxdWVzdGVxIiwicXVvdCIsInJBYXJyIiwickFyciIsInJBdGFpbCIsInJCYXJyIiwickhhciIsInJhY2UiLCJyYWN1dGUiLCJyYWRpYyIsInJhZW1wdHl2IiwicmFuZyIsInJhbmdkIiwicmFuZ2UiLCJyYW5nbGUiLCJyYXF1byIsInJhcnIiLCJyYXJyYXAiLCJyYXJyYiIsInJhcnJiZnMiLCJyYXJyYyIsInJhcnJmcyIsInJhcnJoayIsInJhcnJscCIsInJhcnJwbCIsInJhcnJzaW0iLCJyYXJydGwiLCJyYXJydyIsInJhdGFpbCIsInJhdGlvIiwicmF0aW9uYWxzIiwicmJhcnIiLCJyYmJyayIsInJicmFjZSIsInJicmFjayIsInJicmtlIiwicmJya3NsZCIsInJicmtzbHUiLCJyY2Fyb24iLCJyY2VkaWwiLCJyY2VpbCIsInJjdWIiLCJyY3kiLCJyZGNhIiwicmRsZGhhciIsInJkcXVvIiwicmRxdW9yIiwicmRzaCIsInJlYWwiLCJyZWFsaW5lIiwicmVhbHBhcnQiLCJyZWFscyIsInJlY3QiLCJyZWciLCJyZmlzaHQiLCJyZmxvb3IiLCJyZnIiLCJyaGFyZCIsInJoYXJ1IiwicmhhcnVsIiwicmhvIiwicmhvdiIsInJpZ2h0YXJyb3ciLCJyaWdodGFycm93dGFpbCIsInJpZ2h0aGFycG9vbmRvd24iLCJyaWdodGhhcnBvb251cCIsInJpZ2h0bGVmdGFycm93cyIsInJpZ2h0bGVmdGhhcnBvb25zIiwicmlnaHRyaWdodGFycm93cyIsInJpZ2h0c3F1aWdhcnJvdyIsInJpZ2h0dGhyZWV0aW1lcyIsInJpbmciLCJyaXNpbmdkb3RzZXEiLCJybGFyciIsInJsaGFyIiwicmxtIiwicm1vdXN0Iiwicm1vdXN0YWNoZSIsInJubWlkIiwicm9hbmciLCJyb2FyciIsInJvYnJrIiwicm9wYXIiLCJyb3BmIiwicm9wbHVzIiwicm90aW1lcyIsInJwYXIiLCJycGFyZ3QiLCJycHBvbGludCIsInJyYXJyIiwicnNhcXVvIiwicnNjciIsInJzaCIsInJzcWIiLCJyc3F1byIsInJzcXVvciIsInJ0aHJlZSIsInJ0aW1lcyIsInJ0cmkiLCJydHJpZSIsInJ0cmlmIiwicnRyaWx0cmkiLCJydWx1aGFyIiwicngiLCJzYWN1dGUiLCJzYnF1byIsInNjIiwic2NFIiwic2NhcCIsInNjYXJvbiIsInNjY3VlIiwic2NlIiwic2NlZGlsIiwic2NpcmMiLCJzY25FIiwic2NuYXAiLCJzY25zaW0iLCJzY3BvbGludCIsInNjc2ltIiwic2N5Iiwic2RvdCIsInNkb3RiIiwic2RvdGUiLCJzZUFyciIsInNlYXJoayIsInNlYXJyIiwic2VhcnJvdyIsInNlY3QiLCJzZW1pIiwic2Vzd2FyIiwic2V0bWludXMiLCJzZXRtbiIsInNleHQiLCJzZnIiLCJzZnJvd24iLCJzaGFycCIsInNoY2hjeSIsInNoY3kiLCJzaG9ydG1pZCIsInNob3J0cGFyYWxsZWwiLCJzaHkiLCJzaWdtYSIsInNpZ21hZiIsInNpZ21hdiIsInNpbSIsInNpbWRvdCIsInNpbWUiLCJzaW1lcSIsInNpbWciLCJzaW1nRSIsInNpbWwiLCJzaW1sRSIsInNpbW5lIiwic2ltcGx1cyIsInNpbXJhcnIiLCJzbGFyciIsInNtYWxsc2V0bWludXMiLCJzbWFzaHAiLCJzbWVwYXJzbCIsInNtaWQiLCJzbWlsZSIsInNtdCIsInNtdGUiLCJzbXRlcyIsInNvZnRjeSIsInNvbCIsInNvbGIiLCJzb2xiYXIiLCJzb3BmIiwic3BhZGVzIiwic3BhZGVzdWl0Iiwic3BhciIsInNxY2FwIiwic3FjYXBzIiwic3FjdXAiLCJzcWN1cHMiLCJzcXN1YiIsInNxc3ViZSIsInNxc3Vic2V0Iiwic3FzdWJzZXRlcSIsInNxc3VwIiwic3FzdXBlIiwic3FzdXBzZXQiLCJzcXN1cHNldGVxIiwic3F1Iiwic3F1YXJlIiwic3F1YXJmIiwic3F1ZiIsInNyYXJyIiwic3NjciIsInNzZXRtbiIsInNzbWlsZSIsInNzdGFyZiIsInN0YXIiLCJzdGFyZiIsInN0cmFpZ2h0ZXBzaWxvbiIsInN0cmFpZ2h0cGhpIiwic3RybnMiLCJzdWIiLCJzdWJFIiwic3ViZG90Iiwic3ViZSIsInN1YmVkb3QiLCJzdWJtdWx0Iiwic3VibkUiLCJzdWJuZSIsInN1YnBsdXMiLCJzdWJyYXJyIiwic3Vic2V0Iiwic3Vic2V0ZXEiLCJzdWJzZXRlcXEiLCJzdWJzZXRuZXEiLCJzdWJzZXRuZXFxIiwic3Vic2ltIiwic3Vic3ViIiwic3Vic3VwIiwic3VjYyIsInN1Y2NhcHByb3giLCJzdWNjY3VybHllcSIsInN1Y2NlcSIsInN1Y2NuYXBwcm94Iiwic3VjY25lcXEiLCJzdWNjbnNpbSIsInN1Y2NzaW0iLCJzdW0iLCJzdW5nIiwic3VwMSIsInN1cDIiLCJzdXAzIiwic3VwIiwic3VwRSIsInN1cGRvdCIsInN1cGRzdWIiLCJzdXBlIiwic3VwZWRvdCIsInN1cGhzb2wiLCJzdXBoc3ViIiwic3VwbGFyciIsInN1cG11bHQiLCJzdXBuRSIsInN1cG5lIiwic3VwcGx1cyIsInN1cHNldCIsInN1cHNldGVxIiwic3Vwc2V0ZXFxIiwic3Vwc2V0bmVxIiwic3Vwc2V0bmVxcSIsInN1cHNpbSIsInN1cHN1YiIsInN1cHN1cCIsInN3QXJyIiwic3dhcmhrIiwic3dhcnIiLCJzd2Fycm93Iiwic3dud2FyIiwic3psaWciLCJ0YXJnZXQiLCJ0YXUiLCJ0YnJrIiwidGNhcm9uIiwidGNlZGlsIiwidGN5IiwidGRvdCIsInRlbHJlYyIsInRmciIsInRoZXJlNCIsInRoZXJlZm9yZSIsInRoZXRhIiwidGhldGFzeW0iLCJ0aGV0YXYiLCJ0aGlja2FwcHJveCIsInRoaWNrc2ltIiwidGhpbnNwIiwidGhrYXAiLCJ0aGtzaW0iLCJ0aG9ybiIsInRpbGRlIiwidGltZXMiLCJ0aW1lc2IiLCJ0aW1lc2JhciIsInRpbWVzZCIsInRpbnQiLCJ0b2VhIiwidG9wIiwidG9wYm90IiwidG9wY2lyIiwidG9wZiIsInRvcGZvcmsiLCJ0b3NhIiwidHByaW1lIiwidHJhZGUiLCJ0cmlhbmdsZSIsInRyaWFuZ2xlZG93biIsInRyaWFuZ2xlbGVmdCIsInRyaWFuZ2xlbGVmdGVxIiwidHJpYW5nbGVxIiwidHJpYW5nbGVyaWdodCIsInRyaWFuZ2xlcmlnaHRlcSIsInRyaWRvdCIsInRyaWUiLCJ0cmltaW51cyIsInRyaXBsdXMiLCJ0cmlzYiIsInRyaXRpbWUiLCJ0cnBleml1bSIsInRzY3IiLCJ0c2N5IiwidHNoY3kiLCJ0c3Ryb2siLCJ0d2l4dCIsInR3b2hlYWRsZWZ0YXJyb3ciLCJ0d29oZWFkcmlnaHRhcnJvdyIsInVBcnIiLCJ1SGFyIiwidWFjdXRlIiwidWFyciIsInVicmN5IiwidWJyZXZlIiwidWNpcmMiLCJ1Y3kiLCJ1ZGFyciIsInVkYmxhYyIsInVkaGFyIiwidWZpc2h0IiwidWZyIiwidWdyYXZlIiwidWhhcmwiLCJ1aGFyciIsInVoYmxrIiwidWxjb3JuIiwidWxjb3JuZXIiLCJ1bGNyb3AiLCJ1bHRyaSIsInVtYWNyIiwidW1sIiwidW9nb24iLCJ1b3BmIiwidXBhcnJvdyIsInVwZG93bmFycm93IiwidXBoYXJwb29ubGVmdCIsInVwaGFycG9vbnJpZ2h0IiwidXBsdXMiLCJ1cHNpIiwidXBzaWgiLCJ1cHNpbG9uIiwidXB1cGFycm93cyIsInVyY29ybiIsInVyY29ybmVyIiwidXJjcm9wIiwidXJpbmciLCJ1cnRyaSIsInVzY3IiLCJ1dGRvdCIsInV0aWxkZSIsInV0cmkiLCJ1dHJpZiIsInV1YXJyIiwidXVtbCIsInV3YW5nbGUiLCJ2QXJyIiwidkJhciIsInZCYXJ2IiwidkRhc2giLCJ2YW5ncnQiLCJ2YXJlcHNpbG9uIiwidmFya2FwcGEiLCJ2YXJub3RoaW5nIiwidmFycGhpIiwidmFycGkiLCJ2YXJwcm9wdG8iLCJ2YXJyIiwidmFycmhvIiwidmFyc2lnbWEiLCJ2YXJzdWJzZXRuZXEiLCJ2YXJzdWJzZXRuZXFxIiwidmFyc3Vwc2V0bmVxIiwidmFyc3Vwc2V0bmVxcSIsInZhcnRoZXRhIiwidmFydHJpYW5nbGVsZWZ0IiwidmFydHJpYW5nbGVyaWdodCIsInZjeSIsInZkYXNoIiwidmVlIiwidmVlYmFyIiwidmVlZXEiLCJ2ZWxsaXAiLCJ2ZXJiYXIiLCJ2ZXJ0IiwidmZyIiwidmx0cmkiLCJ2bnN1YiIsInZuc3VwIiwidm9wZiIsInZwcm9wIiwidnJ0cmkiLCJ2c2NyIiwidnN1Ym5FIiwidnN1Ym5lIiwidnN1cG5FIiwidnN1cG5lIiwidnppZ3phZyIsIndjaXJjIiwid2VkYmFyIiwid2VkZ2UiLCJ3ZWRnZXEiLCJ3ZWllcnAiLCJ3ZnIiLCJ3b3BmIiwid3AiLCJ3ciIsIndyZWF0aCIsIndzY3IiLCJ4Y2FwIiwieGNpcmMiLCJ4Y3VwIiwieGR0cmkiLCJ4ZnIiLCJ4aEFyciIsInhoYXJyIiwieGkiLCJ4bEFyciIsInhsYXJyIiwieG1hcCIsInhuaXMiLCJ4b2RvdCIsInhvcGYiLCJ4b3BsdXMiLCJ4b3RpbWUiLCJ4ckFyciIsInhyYXJyIiwieHNjciIsInhzcWN1cCIsInh1cGx1cyIsInh1dHJpIiwieHZlZSIsInh3ZWRnZSIsInlhY3V0ZSIsInlhY3kiLCJ5Y2lyYyIsInljeSIsInllbiIsInlmciIsInlpY3kiLCJ5b3BmIiwieXNjciIsInl1Y3kiLCJ5dW1sIiwiemFjdXRlIiwiemNhcm9uIiwiemN5IiwiemRvdCIsInplZXRyZiIsInpldGEiLCJ6ZnIiLCJ6aGN5IiwiemlncmFyciIsInpvcGYiLCJ6c2NyIiwiendqIiwienduaiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/character-entities/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/class-variance-authority/dist/index.mjs":
-/*!******************************************************************!*\
- !*** ../../node_modules/class-variance-authority/dist/index.mjs ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cva: () => (/* binding */ cva),\n/* harmony export */ cx: () => (/* binding */ cx)\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(ssr)/../../node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs\");\n\nconst falsyToString = (value)=>typeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nconst cx = clsx__WEBPACK_IMPORTED_MODULE_0__.clsx;\nconst cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n}; //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEI7QUFDNUIsTUFBTUMsZ0JBQWdCLENBQUNDLFFBQVEsT0FBT0EsVUFBVSxZQUFZLEdBQUdDLE1BQU0sQ0FBQ0QsU0FBU0EsVUFBVSxJQUFJLE1BQU1BO0FBQzVGLE1BQU1FLEtBQUtKLHNDQUFJQSxDQUFDO0FBQ2hCLE1BQU1LLE1BQU0sQ0FBQ0MsTUFBTUM7SUFDdEIsT0FBTyxDQUFDQztRQUNKLElBQUlDO1FBQ0osSUFBSSxDQUFDRixXQUFXLFFBQVFBLFdBQVcsS0FBSyxJQUFJLEtBQUssSUFBSUEsT0FBT0csUUFBUSxLQUFLLE1BQU0sT0FBT04sR0FBR0UsTUFBTUUsVUFBVSxRQUFRQSxVQUFVLEtBQUssSUFBSSxLQUFLLElBQUlBLE1BQU1HLEtBQUssRUFBRUgsVUFBVSxRQUFRQSxVQUFVLEtBQUssSUFBSSxLQUFLLElBQUlBLE1BQU1JLFNBQVM7UUFDdk4sTUFBTSxFQUFFRixRQUFRLEVBQUdHLGVBQWUsRUFBRyxHQUFHTjtRQUN4QyxNQUFNTyx1QkFBdUJDLE9BQU9DLElBQUksQ0FBQ04sVUFBVU8sR0FBRyxDQUFDLENBQUNDO1lBQ3BELE1BQU1DLGNBQWNYLFVBQVUsUUFBUUEsVUFBVSxLQUFLLElBQUksS0FBSyxJQUFJQSxLQUFLLENBQUNVLFFBQVE7WUFDaEYsTUFBTUUscUJBQXFCUCxvQkFBb0IsUUFBUUEsb0JBQW9CLEtBQUssSUFBSSxLQUFLLElBQUlBLGVBQWUsQ0FBQ0ssUUFBUTtZQUNySCxJQUFJQyxnQkFBZ0IsTUFBTSxPQUFPO1lBQ2pDLE1BQU1FLGFBQWFwQixjQUFja0IsZ0JBQWdCbEIsY0FBY21CO1lBQy9ELE9BQU9WLFFBQVEsQ0FBQ1EsUUFBUSxDQUFDRyxXQUFXO1FBQ3hDO1FBQ0EsTUFBTUMsd0JBQXdCZCxTQUFTTyxPQUFPUSxPQUFPLENBQUNmLE9BQU9nQixNQUFNLENBQUMsQ0FBQ0MsS0FBS0M7WUFDdEUsSUFBSSxDQUFDQyxLQUFLekIsTUFBTSxHQUFHd0I7WUFDbkIsSUFBSXhCLFVBQVUwQixXQUFXO2dCQUNyQixPQUFPSDtZQUNYO1lBQ0FBLEdBQUcsQ0FBQ0UsSUFBSSxHQUFHekI7WUFDWCxPQUFPdUI7UUFDWCxHQUFHLENBQUM7UUFDSixNQUFNSSwrQkFBK0J0QixXQUFXLFFBQVFBLFdBQVcsS0FBSyxJQUFJLEtBQUssSUFBSSxDQUFDRSxNQUFNRixPQUFPdUIsZ0JBQWdCLE1BQU0sUUFBUXJCLFFBQVEsS0FBSyxJQUFJLEtBQUssSUFBSUEsSUFBSWUsTUFBTSxDQUFDLENBQUNDLEtBQUtNO1lBQ3hLLElBQUksRUFBRXBCLE9BQU9xQixPQUFPLEVBQUdwQixXQUFXcUIsV0FBVyxFQUFHLEdBQUdDLHdCQUF3QixHQUFHSDtZQUM5RSxPQUFPaEIsT0FBT1EsT0FBTyxDQUFDVyx3QkFBd0JDLEtBQUssQ0FBQyxDQUFDVDtnQkFDakQsSUFBSSxDQUFDQyxLQUFLekIsTUFBTSxHQUFHd0I7Z0JBQ25CLE9BQU9VLE1BQU1DLE9BQU8sQ0FBQ25DLFNBQVNBLE1BQU1vQyxRQUFRLENBQUM7b0JBQ3pDLEdBQUd6QixlQUFlO29CQUNsQixHQUFHUyxxQkFBcUI7Z0JBQzVCLENBQUMsQ0FBQ0ssSUFBSSxJQUFJLENBQUM7b0JBQ1AsR0FBR2QsZUFBZTtvQkFDbEIsR0FBR1MscUJBQXFCO2dCQUM1QixFQUFFLENBQUNLLElBQUksS0FBS3pCO1lBQ2hCLEtBQUs7bUJBQ0V1QjtnQkFDSE87Z0JBQ0FDO2FBQ0gsR0FBR1I7UUFDUixHQUFHLEVBQUU7UUFDTCxPQUFPckIsR0FBR0UsTUFBTVEsc0JBQXNCZSw4QkFBOEJyQixVQUFVLFFBQVFBLFVBQVUsS0FBSyxJQUFJLEtBQUssSUFBSUEsTUFBTUcsS0FBSyxFQUFFSCxVQUFVLFFBQVFBLFVBQVUsS0FBSyxJQUFJLEtBQUssSUFBSUEsTUFBTUksU0FBUztJQUNoTTtBQUNKLEVBQUUsQ0FHRixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9jbGFzcy12YXJpYW5jZS1hdXRob3JpdHkvZGlzdC9pbmRleC5tanM/MmJlOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbHN4IH0gZnJvbSBcImNsc3hcIjtcbmNvbnN0IGZhbHN5VG9TdHJpbmcgPSAodmFsdWUpPT50eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiID8gXCJcIi5jb25jYXQodmFsdWUpIDogdmFsdWUgPT09IDAgPyBcIjBcIiA6IHZhbHVlO1xuZXhwb3J0IGNvbnN0IGN4ID0gY2xzeDtcbmV4cG9ydCBjb25zdCBjdmEgPSAoYmFzZSwgY29uZmlnKT0+e1xuICAgIHJldHVybiAocHJvcHMpPT57XG4gICAgICAgIHZhciByZWY7XG4gICAgICAgIGlmICgoY29uZmlnID09PSBudWxsIHx8IGNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29uZmlnLnZhcmlhbnRzKSA9PSBudWxsKSByZXR1cm4gY3goYmFzZSwgcHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLmNsYXNzLCBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY2xhc3NOYW1lKTtcbiAgICAgICAgY29uc3QgeyB2YXJpYW50cyAsIGRlZmF1bHRWYXJpYW50cyAgfSA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgZ2V0VmFyaWFudENsYXNzTmFtZXMgPSBPYmplY3Qua2V5cyh2YXJpYW50cykubWFwKCh2YXJpYW50KT0+e1xuICAgICAgICAgICAgY29uc3QgdmFyaWFudFByb3AgPSBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHNbdmFyaWFudF07XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0VmFyaWFudFByb3AgPSBkZWZhdWx0VmFyaWFudHMgPT09IG51bGwgfHwgZGVmYXVsdFZhcmlhbnRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWZhdWx0VmFyaWFudHNbdmFyaWFudF07XG4gICAgICAgICAgICBpZiAodmFyaWFudFByb3AgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY29uc3QgdmFyaWFudEtleSA9IGZhbHN5VG9TdHJpbmcodmFyaWFudFByb3ApIHx8IGZhbHN5VG9TdHJpbmcoZGVmYXVsdFZhcmlhbnRQcm9wKTtcbiAgICAgICAgICAgIHJldHVybiB2YXJpYW50c1t2YXJpYW50XVt2YXJpYW50S2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHByb3BzV2l0aG91dFVuZGVmaW5lZCA9IHByb3BzICYmIE9iamVjdC5lbnRyaWVzKHByb3BzKS5yZWR1Y2UoKGFjYywgcGFyYW0pPT57XG4gICAgICAgICAgICBsZXQgW2tleSwgdmFsdWVdID0gcGFyYW07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY2Nba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgICAgICBjb25zdCBnZXRDb21wb3VuZFZhcmlhbnRDbGFzc05hbWVzID0gY29uZmlnID09PSBudWxsIHx8IGNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogKHJlZiA9IGNvbmZpZy5jb21wb3VuZFZhcmlhbnRzKSA9PT0gbnVsbCB8fCByZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZi5yZWR1Y2UoKGFjYywgcGFyYW0xKT0+e1xuICAgICAgICAgICAgbGV0IHsgY2xhc3M6IGN2Q2xhc3MgLCBjbGFzc05hbWU6IGN2Q2xhc3NOYW1lICwgLi4uY29tcG91bmRWYXJpYW50T3B0aW9ucyB9ID0gcGFyYW0xO1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvbXBvdW5kVmFyaWFudE9wdGlvbnMpLmV2ZXJ5KChwYXJhbSk9PntcbiAgICAgICAgICAgICAgICBsZXQgW2tleSwgdmFsdWVdID0gcGFyYW07XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUuaW5jbHVkZXMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0VmFyaWFudHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3BzV2l0aG91dFVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1ba2V5XSkgOiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0VmFyaWFudHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3BzV2l0aG91dFVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0pW2tleV0gPT09IHZhbHVlO1xuICAgICAgICAgICAgfSkgPyBbXG4gICAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAgIGN2Q2xhc3MsXG4gICAgICAgICAgICAgICAgY3ZDbGFzc05hbWVcbiAgICAgICAgICAgIF0gOiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICAgICAgcmV0dXJuIGN4KGJhc2UsIGdldFZhcmlhbnRDbGFzc05hbWVzLCBnZXRDb21wb3VuZFZhcmlhbnRDbGFzc05hbWVzLCBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY2xhc3MsIHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5jbGFzc05hbWUpO1xuICAgIH07XG59O1xuXG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXAiXSwibmFtZXMiOlsiY2xzeCIsImZhbHN5VG9TdHJpbmciLCJ2YWx1ZSIsImNvbmNhdCIsImN4IiwiY3ZhIiwiYmFzZSIsImNvbmZpZyIsInByb3BzIiwicmVmIiwidmFyaWFudHMiLCJjbGFzcyIsImNsYXNzTmFtZSIsImRlZmF1bHRWYXJpYW50cyIsImdldFZhcmlhbnRDbGFzc05hbWVzIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsInZhcmlhbnQiLCJ2YXJpYW50UHJvcCIsImRlZmF1bHRWYXJpYW50UHJvcCIsInZhcmlhbnRLZXkiLCJwcm9wc1dpdGhvdXRVbmRlZmluZWQiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjIiwicGFyYW0iLCJrZXkiLCJ1bmRlZmluZWQiLCJnZXRDb21wb3VuZFZhcmlhbnRDbGFzc05hbWVzIiwiY29tcG91bmRWYXJpYW50cyIsInBhcmFtMSIsImN2Q2xhc3MiLCJjdkNsYXNzTmFtZSIsImNvbXBvdW5kVmFyaWFudE9wdGlvbnMiLCJldmVyeSIsIkFycmF5IiwiaXNBcnJheSIsImluY2x1ZGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/class-variance-authority/dist/index.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clsx: () => (/* binding */ clsx),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction r(e) {\n var t, f, n = \"\";\n if (\"string\" == typeof e || \"number\" == typeof e) n += e;\n else if (\"object\" == typeof e) if (Array.isArray(e)) for(t = 0; t < e.length; t++)e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);\n else for(t in e)e[t] && (n && (n += \" \"), n += t);\n return n;\n}\nfunction clsx() {\n for(var e, t, f = 0, n = \"\"; f < arguments.length;)(e = arguments[f++]) && (t = r(e)) && (n && (n += \" \"), n += t);\n return n;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eS9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsRUFBRUMsQ0FBQztJQUFFLElBQUlDLEdBQUVDLEdBQUVDLElBQUU7SUFBRyxJQUFHLFlBQVUsT0FBT0gsS0FBRyxZQUFVLE9BQU9BLEdBQUVHLEtBQUdIO1NBQU8sSUFBRyxZQUFVLE9BQU9BLEdBQUUsSUFBR0ksTUFBTUMsT0FBTyxDQUFDTCxJQUFHLElBQUlDLElBQUUsR0FBRUEsSUFBRUQsRUFBRU0sTUFBTSxFQUFDTCxJQUFJRCxDQUFDLENBQUNDLEVBQUUsSUFBR0MsQ0FBQUEsSUFBRUgsRUFBRUMsQ0FBQyxDQUFDQyxFQUFFLE1BQUtFLENBQUFBLEtBQUlBLENBQUFBLEtBQUcsR0FBRSxHQUFHQSxLQUFHRCxDQUFBQTtTQUFRLElBQUlELEtBQUtELEVBQUVBLENBQUMsQ0FBQ0MsRUFBRSxJQUFHRSxDQUFBQSxLQUFJQSxDQUFBQSxLQUFHLEdBQUUsR0FBR0EsS0FBR0YsQ0FBQUE7SUFBRyxPQUFPRTtBQUFDO0FBQVEsU0FBU0k7SUFBTyxJQUFJLElBQUlQLEdBQUVDLEdBQUVDLElBQUUsR0FBRUMsSUFBRSxJQUFHRCxJQUFFTSxVQUFVRixNQUFNLEVBQUUsQ0FBQ04sSUFBRVEsU0FBUyxDQUFDTixJQUFJLEtBQUlELENBQUFBLElBQUVGLEVBQUVDLEVBQUMsS0FBS0csQ0FBQUEsS0FBSUEsQ0FBQUEsS0FBRyxHQUFFLEdBQUdBLEtBQUdGLENBQUFBO0lBQUcsT0FBT0U7QUFBQztBQUFDLGlFQUFlSSxJQUFJQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5L25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tanM/OTk5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiByKGUpe3ZhciB0LGYsbj1cIlwiO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlfHxcIm51bWJlclwiPT10eXBlb2YgZSluKz1lO2Vsc2UgaWYoXCJvYmplY3RcIj09dHlwZW9mIGUpaWYoQXJyYXkuaXNBcnJheShlKSlmb3IodD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0mJihmPXIoZVt0XSkpJiYobiYmKG4rPVwiIFwiKSxuKz1mKTtlbHNlIGZvcih0IGluIGUpZVt0XSYmKG4mJihuKz1cIiBcIiksbis9dCk7cmV0dXJuIG59ZXhwb3J0IGZ1bmN0aW9uIGNsc3goKXtmb3IodmFyIGUsdCxmPTAsbj1cIlwiO2Y8YXJndW1lbnRzLmxlbmd0aDspKGU9YXJndW1lbnRzW2YrK10pJiYodD1yKGUpKSYmKG4mJihuKz1cIiBcIiksbis9dCk7cmV0dXJuIG59ZXhwb3J0IGRlZmF1bHQgY2xzeDsiXSwibmFtZXMiOlsiciIsImUiLCJ0IiwiZiIsIm4iLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJjbHN4IiwiYXJndW1lbnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/clsx/dist/clsx.mjs":
-/*!*********************************************!*\
- !*** ../../node_modules/clsx/dist/clsx.mjs ***!
- \*********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clsx: () => (/* binding */ clsx),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction r(e) {\n var t, f, n = \"\";\n if (\"string\" == typeof e || \"number\" == typeof e) n += e;\n else if (\"object\" == typeof e) if (Array.isArray(e)) for(t = 0; t < e.length; t++)e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);\n else for(t in e)e[t] && (n && (n += \" \"), n += t);\n return n;\n}\nfunction clsx() {\n for(var e, t, f = 0, n = \"\"; f < arguments.length;)(e = arguments[f++]) && (t = r(e)) && (n && (n += \" \"), n += t);\n return n;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBQVNBLEVBQUVDLENBQUM7SUFBRSxJQUFJQyxHQUFFQyxHQUFFQyxJQUFFO0lBQUcsSUFBRyxZQUFVLE9BQU9ILEtBQUcsWUFBVSxPQUFPQSxHQUFFRyxLQUFHSDtTQUFPLElBQUcsWUFBVSxPQUFPQSxHQUFFLElBQUdJLE1BQU1DLE9BQU8sQ0FBQ0wsSUFBRyxJQUFJQyxJQUFFLEdBQUVBLElBQUVELEVBQUVNLE1BQU0sRUFBQ0wsSUFBSUQsQ0FBQyxDQUFDQyxFQUFFLElBQUdDLENBQUFBLElBQUVILEVBQUVDLENBQUMsQ0FBQ0MsRUFBRSxNQUFLRSxDQUFBQSxLQUFJQSxDQUFBQSxLQUFHLEdBQUUsR0FBR0EsS0FBR0QsQ0FBQUE7U0FBUSxJQUFJRCxLQUFLRCxFQUFFQSxDQUFDLENBQUNDLEVBQUUsSUFBR0UsQ0FBQUEsS0FBSUEsQ0FBQUEsS0FBRyxHQUFFLEdBQUdBLEtBQUdGLENBQUFBO0lBQUcsT0FBT0U7QUFBQztBQUFRLFNBQVNJO0lBQU8sSUFBSSxJQUFJUCxHQUFFQyxHQUFFQyxJQUFFLEdBQUVDLElBQUUsSUFBR0QsSUFBRU0sVUFBVUYsTUFBTSxFQUFFLENBQUNOLElBQUVRLFNBQVMsQ0FBQ04sSUFBSSxLQUFJRCxDQUFBQSxJQUFFRixFQUFFQyxFQUFDLEtBQUtHLENBQUFBLEtBQUlBLENBQUFBLEtBQUcsR0FBRSxHQUFHQSxLQUFHRixDQUFBQTtJQUFHLE9BQU9FO0FBQUM7QUFBQyxpRUFBZUksSUFBSUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm1qcz9hZDlhIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHIoZSl7dmFyIHQsZixuPVwiXCI7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGV8fFwibnVtYmVyXCI9PXR5cGVvZiBlKW4rPWU7ZWxzZSBpZihcIm9iamVjdFwiPT10eXBlb2YgZSlpZihBcnJheS5pc0FycmF5KGUpKWZvcih0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSYmKGY9cihlW3RdKSkmJihuJiYobis9XCIgXCIpLG4rPWYpO2Vsc2UgZm9yKHQgaW4gZSllW3RdJiYobiYmKG4rPVwiIFwiKSxuKz10KTtyZXR1cm4gbn1leHBvcnQgZnVuY3Rpb24gY2xzeCgpe2Zvcih2YXIgZSx0LGY9MCxuPVwiXCI7Zjxhcmd1bWVudHMubGVuZ3RoOykoZT1hcmd1bWVudHNbZisrXSkmJih0PXIoZSkpJiYobiYmKG4rPVwiIFwiKSxuKz10KTtyZXR1cm4gbn1leHBvcnQgZGVmYXVsdCBjbHN4OyJdLCJuYW1lcyI6WyJyIiwiZSIsInQiLCJmIiwibiIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImNsc3giLCJhcmd1bWVudHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/clsx/dist/clsx.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/comma-separated-tokens/index.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/comma-separated-tokens/index.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parse: () => (/* binding */ parse),\n/* harmony export */ stringify: () => (/* binding */ stringify)\n/* harmony export */ });\n/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */ /**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */ /**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */ function parse(value) {\n /** @type {Array<string>} */ const tokens = [];\n const input = String(value || \"\");\n let index = input.indexOf(\",\");\n let start = 0;\n /** @type {boolean} */ let end = false;\n while(!end){\n if (index === -1) {\n index = input.length;\n end = true;\n }\n const token = input.slice(start, index).trim();\n if (token || !end) {\n tokens.push(token);\n }\n start = index + 1;\n index = input.indexOf(\",\", start);\n }\n return tokens;\n}\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */ function stringify(values, options) {\n const settings = options || {};\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === \"\" ? [\n ...values,\n \"\"\n ] : values;\n return input.join((settings.padRight ? \" \" : \"\") + \",\" + (settings.padLeft === false ? \"\" : \" \")).trim();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2NvbW1hLXNlcGFyYXRlZC10b2tlbnMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBRUQ7OztDQUdDLEdBRUQ7Ozs7Ozs7Q0FPQyxHQUNNLFNBQVNBLE1BQU1DLEtBQUs7SUFDekIsMEJBQTBCLEdBQzFCLE1BQU1DLFNBQVMsRUFBRTtJQUNqQixNQUFNQyxRQUFRQyxPQUFPSCxTQUFTO0lBQzlCLElBQUlJLFFBQVFGLE1BQU1HLE9BQU8sQ0FBQztJQUMxQixJQUFJQyxRQUFRO0lBQ1osb0JBQW9CLEdBQ3BCLElBQUlDLE1BQU07SUFFVixNQUFPLENBQUNBLElBQUs7UUFDWCxJQUFJSCxVQUFVLENBQUMsR0FBRztZQUNoQkEsUUFBUUYsTUFBTU0sTUFBTTtZQUNwQkQsTUFBTTtRQUNSO1FBRUEsTUFBTUUsUUFBUVAsTUFBTVEsS0FBSyxDQUFDSixPQUFPRixPQUFPTyxJQUFJO1FBRTVDLElBQUlGLFNBQVMsQ0FBQ0YsS0FBSztZQUNqQk4sT0FBT1csSUFBSSxDQUFDSDtRQUNkO1FBRUFILFFBQVFGLFFBQVE7UUFDaEJBLFFBQVFGLE1BQU1HLE9BQU8sQ0FBQyxLQUFLQztJQUM3QjtJQUVBLE9BQU9MO0FBQ1Q7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTWSxVQUFVQyxNQUFNLEVBQUVDLE9BQU87SUFDdkMsTUFBTUMsV0FBV0QsV0FBVyxDQUFDO0lBRTdCLHVDQUF1QztJQUN2QyxNQUFNYixRQUFRWSxNQUFNLENBQUNBLE9BQU9OLE1BQU0sR0FBRyxFQUFFLEtBQUssS0FBSztXQUFJTTtRQUFRO0tBQUcsR0FBR0E7SUFFbkUsT0FBT1osTUFDSmUsSUFBSSxDQUNILENBQUNELFNBQVNFLFFBQVEsR0FBRyxNQUFNLEVBQUMsSUFDMUIsTUFDQ0YsQ0FBQUEsU0FBU0csT0FBTyxLQUFLLFFBQVEsS0FBSyxHQUFFLEdBRXhDUixJQUFJO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzPzYwZGEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkTGVmdD10cnVlXVxuICogICBXaGV0aGVyIHRvIHBhZCBhIHNwYWNlIGJlZm9yZSBhIHRva2VuLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkUmlnaHQ9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gcGFkIGEgc3BhY2UgYWZ0ZXIgYSB0b2tlbi5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPcHRpb25zfSBTdHJpbmdpZnlPcHRpb25zXG4gKiAgIFBsZWFzZSB1c2UgYFN0cmluZ2lmeU9wdGlvbnNgIGluc3RlYWQuXG4gKi9cblxuLyoqXG4gKiBQYXJzZSBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59XG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB0b2tlbnMgPSBbXVxuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJylcbiAgbGV0IGluZGV4ID0gaW5wdXQuaW5kZXhPZignLCcpXG4gIGxldCBzdGFydCA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZW5kID0gZmFsc2VcblxuICB3aGlsZSAoIWVuZCkge1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoXG4gICAgICBlbmQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBpbnB1dC5zbGljZShzdGFydCwgaW5kZXgpLnRyaW0oKVxuXG4gICAgaWYgKHRva2VuIHx8ICFlbmQpIHtcbiAgICAgIHRva2Vucy5wdXNoKHRva2VuKVxuICAgIH1cblxuICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgaW5kZXggPSBpbnB1dC5pbmRleE9mKCcsJywgc3RhcnQpXG4gIH1cblxuICByZXR1cm4gdG9rZW5zXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGFycmF5IG9mIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcywgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICAvLyBFbnN1cmUgdGhlIGxhc3QgZW1wdHkgZW50cnkgaXMgc2Vlbi5cbiAgY29uc3QgaW5wdXQgPSB2YWx1ZXNbdmFsdWVzLmxlbmd0aCAtIDFdID09PSAnJyA/IFsuLi52YWx1ZXMsICcnXSA6IHZhbHVlc1xuXG4gIHJldHVybiBpbnB1dFxuICAgIC5qb2luKFxuICAgICAgKHNldHRpbmdzLnBhZFJpZ2h0ID8gJyAnIDogJycpICtcbiAgICAgICAgJywnICtcbiAgICAgICAgKHNldHRpbmdzLnBhZExlZnQgPT09IGZhbHNlID8gJycgOiAnICcpXG4gICAgKVxuICAgIC50cmltKClcbn1cbiJdLCJuYW1lcyI6WyJwYXJzZSIsInZhbHVlIiwidG9rZW5zIiwiaW5wdXQiLCJTdHJpbmciLCJpbmRleCIsImluZGV4T2YiLCJzdGFydCIsImVuZCIsImxlbmd0aCIsInRva2VuIiwic2xpY2UiLCJ0cmltIiwicHVzaCIsInN0cmluZ2lmeSIsInZhbHVlcyIsIm9wdGlvbnMiLCJzZXR0aW5ncyIsImpvaW4iLCJwYWRSaWdodCIsInBhZExlZnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/comma-separated-tokens/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/decode-named-character-reference/index.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/decode-named-character-reference/index.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decodeNamedCharacterReference: () => (/* binding */ decodeNamedCharacterReference)\n/* harmony export */ });\n/* harmony import */ var character_entities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! character-entities */ \"(ssr)/../../node_modules/character-entities/index.js\");\n\nconst own = {}.hasOwnProperty;\n/**\n * Decode a single character reference (without the `&` or `;`).\n * You probably only need this when you’re building parsers yourself that follow\n * different rules compared to HTML.\n * This is optimized to be tiny in browsers.\n *\n * @param {string} value\n * `notin` (named), `#123` (deci), `#x123` (hexa).\n * @returns {string|false}\n * Decoded reference.\n */ function decodeNamedCharacterReference(value) {\n return own.call(character_entities__WEBPACK_IMPORTED_MODULE_0__.characterEntities, value) ? character_entities__WEBPACK_IMPORTED_MODULE_0__.characterEntities[value] : false;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2RlY29kZS1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW9EO0FBRXBELE1BQU1DLE1BQU0sQ0FBQyxFQUFFQyxjQUFjO0FBRTdCOzs7Ozs7Ozs7O0NBVUMsR0FDTSxTQUFTQyw4QkFBOEJDLEtBQUs7SUFDakQsT0FBT0gsSUFBSUksSUFBSSxDQUFDTCxpRUFBaUJBLEVBQUVJLFNBQVNKLGlFQUFpQixDQUFDSSxNQUFNLEdBQUc7QUFDekUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kZWNvZGUtbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZS9pbmRleC5qcz84ODA1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y2hhcmFjdGVyRW50aXRpZXN9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcydcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBEZWNvZGUgYSBzaW5nbGUgY2hhcmFjdGVyIHJlZmVyZW5jZSAod2l0aG91dCB0aGUgYCZgIG9yIGA7YCkuXG4gKiBZb3UgcHJvYmFibHkgb25seSBuZWVkIHRoaXMgd2hlbiB5b3XigJlyZSBidWlsZGluZyBwYXJzZXJzIHlvdXJzZWxmIHRoYXQgZm9sbG93XG4gKiBkaWZmZXJlbnQgcnVsZXMgY29tcGFyZWQgdG8gSFRNTC5cbiAqIFRoaXMgaXMgb3B0aW1pemVkIHRvIGJlIHRpbnkgaW4gYnJvd3NlcnMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIGBub3RpbmAgKG5hbWVkKSwgYCMxMjNgIChkZWNpKSwgYCN4MTIzYCAoaGV4YSkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfGZhbHNlfVxuICogICBEZWNvZGVkIHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKHZhbHVlKSB7XG4gIHJldHVybiBvd24uY2FsbChjaGFyYWN0ZXJFbnRpdGllcywgdmFsdWUpID8gY2hhcmFjdGVyRW50aXRpZXNbdmFsdWVdIDogZmFsc2Vcbn1cbiJdLCJuYW1lcyI6WyJjaGFyYWN0ZXJFbnRpdGllcyIsIm93biIsImhhc093blByb3BlcnR5IiwiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiLCJ2YWx1ZSIsImNhbGwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/decode-named-character-reference/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/dequal/dist/index.mjs":
-/*!************************************************!*\
- !*** ../../node_modules/dequal/dist/index.mjs ***!
- \************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dequal: () => (/* binding */ dequal)\n/* harmony export */ });\nvar has = Object.prototype.hasOwnProperty;\nfunction find(iter, tar, key) {\n for (key of iter.keys()){\n if (dequal(key, tar)) return key;\n }\n}\nfunction dequal(foo, bar) {\n var ctor, len, tmp;\n if (foo === bar) return true;\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while(len-- && dequal(foo[len], bar[len]));\n }\n return len === -1;\n }\n if (ctor === Set) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo){\n tmp = len;\n if (tmp && typeof tmp === \"object\") {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!bar.has(tmp)) return false;\n }\n return true;\n }\n if (ctor === Map) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo){\n tmp = len[0];\n if (tmp && typeof tmp === \"object\") {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!dequal(len[1], bar.get(tmp))) {\n return false;\n }\n }\n return true;\n }\n if (ctor === ArrayBuffer) {\n foo = new Uint8Array(foo);\n bar = new Uint8Array(bar);\n } else if (ctor === DataView) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while(len-- && foo.getInt8(len) === bar.getInt8(len));\n }\n return len === -1;\n }\n if (ArrayBuffer.isView(foo)) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while(len-- && foo[len] === bar[len]);\n }\n return len === -1;\n }\n if (!ctor || typeof foo === \"object\") {\n len = 0;\n for(ctor in foo){\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n }\n return Object.keys(bar).length === len;\n }\n }\n return foo !== foo && bar !== bar;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2RlcXVhbC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBSUEsTUFBTUMsT0FBT0MsU0FBUyxDQUFDQyxjQUFjO0FBRXpDLFNBQVNDLEtBQUtDLElBQUksRUFBRUMsR0FBRyxFQUFFQyxHQUFHO0lBQzNCLEtBQUtBLE9BQU9GLEtBQUtHLElBQUksR0FBSTtRQUN4QixJQUFJQyxPQUFPRixLQUFLRCxNQUFNLE9BQU9DO0lBQzlCO0FBQ0Q7QUFFTyxTQUFTRSxPQUFPQyxHQUFHLEVBQUVDLEdBQUc7SUFDOUIsSUFBSUMsTUFBTUMsS0FBS0M7SUFDZixJQUFJSixRQUFRQyxLQUFLLE9BQU87SUFFeEIsSUFBSUQsT0FBT0MsT0FBTyxDQUFDQyxPQUFLRixJQUFJSyxXQUFXLE1BQU1KLElBQUlJLFdBQVcsRUFBRTtRQUM3RCxJQUFJSCxTQUFTSSxNQUFNLE9BQU9OLElBQUlPLE9BQU8sT0FBT04sSUFBSU0sT0FBTztRQUN2RCxJQUFJTCxTQUFTTSxRQUFRLE9BQU9SLElBQUlTLFFBQVEsT0FBT1IsSUFBSVEsUUFBUTtRQUUzRCxJQUFJUCxTQUFTUSxPQUFPO1lBQ25CLElBQUksQ0FBQ1AsTUFBSUgsSUFBSVcsTUFBTSxNQUFNVixJQUFJVSxNQUFNLEVBQUU7Z0JBQ3BDLE1BQU9SLFNBQVNKLE9BQU9DLEdBQUcsQ0FBQ0csSUFBSSxFQUFFRixHQUFHLENBQUNFLElBQUk7WUFDMUM7WUFDQSxPQUFPQSxRQUFRLENBQUM7UUFDakI7UUFFQSxJQUFJRCxTQUFTVSxLQUFLO1lBQ2pCLElBQUlaLElBQUlhLElBQUksS0FBS1osSUFBSVksSUFBSSxFQUFFO2dCQUMxQixPQUFPO1lBQ1I7WUFDQSxLQUFLVixPQUFPSCxJQUFLO2dCQUNoQkksTUFBTUQ7Z0JBQ04sSUFBSUMsT0FBTyxPQUFPQSxRQUFRLFVBQVU7b0JBQ25DQSxNQUFNVixLQUFLTyxLQUFLRztvQkFDaEIsSUFBSSxDQUFDQSxLQUFLLE9BQU87Z0JBQ2xCO2dCQUNBLElBQUksQ0FBQ0gsSUFBSVgsR0FBRyxDQUFDYyxNQUFNLE9BQU87WUFDM0I7WUFDQSxPQUFPO1FBQ1I7UUFFQSxJQUFJRixTQUFTWSxLQUFLO1lBQ2pCLElBQUlkLElBQUlhLElBQUksS0FBS1osSUFBSVksSUFBSSxFQUFFO2dCQUMxQixPQUFPO1lBQ1I7WUFDQSxLQUFLVixPQUFPSCxJQUFLO2dCQUNoQkksTUFBTUQsR0FBRyxDQUFDLEVBQUU7Z0JBQ1osSUFBSUMsT0FBTyxPQUFPQSxRQUFRLFVBQVU7b0JBQ25DQSxNQUFNVixLQUFLTyxLQUFLRztvQkFDaEIsSUFBSSxDQUFDQSxLQUFLLE9BQU87Z0JBQ2xCO2dCQUNBLElBQUksQ0FBQ0wsT0FBT0ksR0FBRyxDQUFDLEVBQUUsRUFBRUYsSUFBSWMsR0FBRyxDQUFDWCxPQUFPO29CQUNsQyxPQUFPO2dCQUNSO1lBQ0Q7WUFDQSxPQUFPO1FBQ1I7UUFFQSxJQUFJRixTQUFTYyxhQUFhO1lBQ3pCaEIsTUFBTSxJQUFJaUIsV0FBV2pCO1lBQ3JCQyxNQUFNLElBQUlnQixXQUFXaEI7UUFDdEIsT0FBTyxJQUFJQyxTQUFTZ0IsVUFBVTtZQUM3QixJQUFJLENBQUNmLE1BQUlILElBQUltQixVQUFVLE1BQU1sQixJQUFJa0IsVUFBVSxFQUFFO2dCQUM1QyxNQUFPaEIsU0FBU0gsSUFBSW9CLE9BQU8sQ0FBQ2pCLFNBQVNGLElBQUltQixPQUFPLENBQUNqQjtZQUNsRDtZQUNBLE9BQU9BLFFBQVEsQ0FBQztRQUNqQjtRQUVBLElBQUlhLFlBQVlLLE1BQU0sQ0FBQ3JCLE1BQU07WUFDNUIsSUFBSSxDQUFDRyxNQUFJSCxJQUFJbUIsVUFBVSxNQUFNbEIsSUFBSWtCLFVBQVUsRUFBRTtnQkFDNUMsTUFBT2hCLFNBQVNILEdBQUcsQ0FBQ0csSUFBSSxLQUFLRixHQUFHLENBQUNFLElBQUk7WUFDdEM7WUFDQSxPQUFPQSxRQUFRLENBQUM7UUFDakI7UUFFQSxJQUFJLENBQUNELFFBQVEsT0FBT0YsUUFBUSxVQUFVO1lBQ3JDRyxNQUFNO1lBQ04sSUFBS0QsUUFBUUYsSUFBSztnQkFDakIsSUFBSVYsSUFBSWdDLElBQUksQ0FBQ3RCLEtBQUtFLFNBQVMsRUFBRUMsT0FBTyxDQUFDYixJQUFJZ0MsSUFBSSxDQUFDckIsS0FBS0MsT0FBTyxPQUFPO2dCQUNqRSxJQUFJLENBQUVBLENBQUFBLFFBQVFELEdBQUUsS0FBTSxDQUFDRixPQUFPQyxHQUFHLENBQUNFLEtBQUssRUFBRUQsR0FBRyxDQUFDQyxLQUFLLEdBQUcsT0FBTztZQUM3RDtZQUNBLE9BQU9YLE9BQU9PLElBQUksQ0FBQ0csS0FBS1UsTUFBTSxLQUFLUjtRQUNwQztJQUNEO0lBRUEsT0FBT0gsUUFBUUEsT0FBT0MsUUFBUUE7QUFDL0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kZXF1YWwvZGlzdC9pbmRleC5tanM/NmE3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaGFzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZmluZChpdGVyLCB0YXIsIGtleSkge1xuXHRmb3IgKGtleSBvZiBpdGVyLmtleXMoKSkge1xuXHRcdGlmIChkZXF1YWwoa2V5LCB0YXIpKSByZXR1cm4ga2V5O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXF1YWwoZm9vLCBiYXIpIHtcblx0dmFyIGN0b3IsIGxlbiwgdG1wO1xuXHRpZiAoZm9vID09PSBiYXIpIHJldHVybiB0cnVlO1xuXG5cdGlmIChmb28gJiYgYmFyICYmIChjdG9yPWZvby5jb25zdHJ1Y3RvcikgPT09IGJhci5jb25zdHJ1Y3Rvcikge1xuXHRcdGlmIChjdG9yID09PSBEYXRlKSByZXR1cm4gZm9vLmdldFRpbWUoKSA9PT0gYmFyLmdldFRpbWUoKTtcblx0XHRpZiAoY3RvciA9PT0gUmVnRXhwKSByZXR1cm4gZm9vLnRvU3RyaW5nKCkgPT09IGJhci50b1N0cmluZygpO1xuXG5cdFx0aWYgKGN0b3IgPT09IEFycmF5KSB7XG5cdFx0XHRpZiAoKGxlbj1mb28ubGVuZ3RoKSA9PT0gYmFyLmxlbmd0aCkge1xuXHRcdFx0XHR3aGlsZSAobGVuLS0gJiYgZGVxdWFsKGZvb1tsZW5dLCBiYXJbbGVuXSkpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGxlbiA9PT0gLTE7XG5cdFx0fVxuXG5cdFx0aWYgKGN0b3IgPT09IFNldCkge1xuXHRcdFx0aWYgKGZvby5zaXplICE9PSBiYXIuc2l6ZSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGxlbiBvZiBmb28pIHtcblx0XHRcdFx0dG1wID0gbGVuO1xuXHRcdFx0XHRpZiAodG1wICYmIHR5cGVvZiB0bXAgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdFx0dG1wID0gZmluZChiYXIsIHRtcCk7XG5cdFx0XHRcdFx0aWYgKCF0bXApIHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWJhci5oYXModG1wKSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKGN0b3IgPT09IE1hcCkge1xuXHRcdFx0aWYgKGZvby5zaXplICE9PSBiYXIuc2l6ZSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGxlbiBvZiBmb28pIHtcblx0XHRcdFx0dG1wID0gbGVuWzBdO1xuXHRcdFx0XHRpZiAodG1wICYmIHR5cGVvZiB0bXAgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdFx0dG1wID0gZmluZChiYXIsIHRtcCk7XG5cdFx0XHRcdFx0aWYgKCF0bXApIHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWRlcXVhbChsZW5bMV0sIGJhci5nZXQodG1wKSkpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGlmIChjdG9yID09PSBBcnJheUJ1ZmZlcikge1xuXHRcdFx0Zm9vID0gbmV3IFVpbnQ4QXJyYXkoZm9vKTtcblx0XHRcdGJhciA9IG5ldyBVaW50OEFycmF5KGJhcik7XG5cdFx0fSBlbHNlIGlmIChjdG9yID09PSBEYXRhVmlldykge1xuXHRcdFx0aWYgKChsZW49Zm9vLmJ5dGVMZW5ndGgpID09PSBiYXIuYnl0ZUxlbmd0aCkge1xuXHRcdFx0XHR3aGlsZSAobGVuLS0gJiYgZm9vLmdldEludDgobGVuKSA9PT0gYmFyLmdldEludDgobGVuKSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbGVuID09PSAtMTtcblx0XHR9XG5cblx0XHRpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGZvbykpIHtcblx0XHRcdGlmICgobGVuPWZvby5ieXRlTGVuZ3RoKSA9PT0gYmFyLmJ5dGVMZW5ndGgpIHtcblx0XHRcdFx0d2hpbGUgKGxlbi0tICYmIGZvb1tsZW5dID09PSBiYXJbbGVuXSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbGVuID09PSAtMTtcblx0XHR9XG5cblx0XHRpZiAoIWN0b3IgfHwgdHlwZW9mIGZvbyA9PT0gJ29iamVjdCcpIHtcblx0XHRcdGxlbiA9IDA7XG5cdFx0XHRmb3IgKGN0b3IgaW4gZm9vKSB7XG5cdFx0XHRcdGlmIChoYXMuY2FsbChmb28sIGN0b3IpICYmICsrbGVuICYmICFoYXMuY2FsbChiYXIsIGN0b3IpKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlmICghKGN0b3IgaW4gYmFyKSB8fCAhZGVxdWFsKGZvb1tjdG9yXSwgYmFyW2N0b3JdKSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIE9iamVjdC5rZXlzKGJhcikubGVuZ3RoID09PSBsZW47XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGZvbyAhPT0gZm9vICYmIGJhciAhPT0gYmFyO1xufVxuIl0sIm5hbWVzIjpbImhhcyIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiZmluZCIsIml0ZXIiLCJ0YXIiLCJrZXkiLCJrZXlzIiwiZGVxdWFsIiwiZm9vIiwiYmFyIiwiY3RvciIsImxlbiIsInRtcCIsImNvbnN0cnVjdG9yIiwiRGF0ZSIsImdldFRpbWUiLCJSZWdFeHAiLCJ0b1N0cmluZyIsIkFycmF5IiwibGVuZ3RoIiwiU2V0Iiwic2l6ZSIsIk1hcCIsImdldCIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkRhdGFWaWV3IiwiYnl0ZUxlbmd0aCIsImdldEludDgiLCJpc1ZpZXciLCJjYWxsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/dequal/dist/index.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/devlop/lib/development.js":
-/*!****************************************************!*\
- !*** ../../node_modules/devlop/lib/development.js ***!
- \****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deprecate: () => (/* binding */ deprecate),\n/* harmony export */ equal: () => (/* binding */ equal),\n/* harmony export */ ok: () => (/* binding */ ok),\n/* harmony export */ unreachable: () => (/* binding */ unreachable)\n/* harmony export */ });\n/* harmony import */ var dequal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dequal */ \"(ssr)/../../node_modules/dequal/dist/index.mjs\");\n\n/**\n * @type {Set<string>}\n */ const codesWarned = new Set();\nclass AssertionError extends Error {\n /**\n * Create an assertion error.\n *\n * @param {string} message\n * Message explaining error.\n * @param {unknown} actual\n * Value.\n * @param {unknown} expected\n * Baseline.\n * @param {string} operator\n * Name of equality operation.\n * @param {boolean} generated\n * Whether `message` is a custom message or not\n * @returns\n * Instance.\n */ // eslint-disable-next-line max-params\n constructor(message, actual, expected, operator, generated){\n super(message);\n this.name = /** @type {const} */ \"Assertion\";\n this.code = /** @type {const} */ \"ERR_ASSERTION\";\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n /**\n * @type {unknown}\n */ this.actual = actual;\n /**\n * @type {unknown}\n */ this.expected = expected;\n /**\n * @type {boolean}\n */ this.generated = generated;\n /**\n * @type {string}\n */ this.operator = operator;\n }\n}\nclass DeprecationError extends Error {\n /**\n * Create a deprecation message.\n *\n * @param {string} message\n * Message explaining deprecation.\n * @param {string | undefined} code\n * Deprecation identifier; deprecation messages will be generated only once per code.\n * @returns\n * Instance.\n */ constructor(message, code){\n super(message);\n this.name = /** @type {const} */ \"DeprecationWarning\";\n /**\n * @type {string | undefined}\n */ this.code = code;\n }\n}\n/**\n * Wrap a function or class to show a deprecation message when first called.\n *\n * > 👉 **Important**: only shows a message when the `development` condition is\n * > used, does nothing in production.\n *\n * When the resulting wrapped `fn` is called, emits a warning once to\n * `console.error` (`stderr`).\n * If a code is given, one warning message will be emitted in total per code.\n *\n * @template {Function} T\n * Function or class kind.\n * @param {T} fn\n * Function or class.\n * @param {string} message\n * Message explaining deprecation.\n * @param {string | null | undefined} [code]\n * Deprecation identifier (optional); deprecation messages will be generated\n * only once per code.\n * @returns {T}\n * Wrapped `fn`.\n */ function deprecate(fn, message, code) {\n let warned = false;\n // The wrapper will keep the same prototype as fn to maintain prototype chain\n Object.setPrototypeOf(deprecated, fn);\n // @ts-expect-error: it’s perfect, typescript…\n return deprecated;\n /**\n * @this {unknown}\n * @param {...Array<unknown>} args\n * @returns {unknown}\n */ function deprecated(...args) {\n if (!warned) {\n warned = true;\n if (typeof code === \"string\" && codesWarned.has(code)) {\n // Empty.\n } else {\n console.error(new DeprecationError(message, code || undefined));\n if (typeof code === \"string\") codesWarned.add(code);\n }\n }\n return new.target ? Reflect.construct(fn, args, new.target) : Reflect.apply(fn, this, args);\n }\n}\n/**\n * Assert deep strict equivalence.\n *\n * > 👉 **Important**: only asserts when the `development` condition is used,\n * > does nothing in production.\n *\n * @template {unknown} T\n * Expected kind.\n * @param {unknown} actual\n * Value.\n * @param {T} expected\n * Baseline.\n * @param {Error | string | null | undefined} [message]\n * Message for assertion error (default: `'Expected values to be deeply equal'`).\n * @returns {asserts actual is T}\n * Nothing; throws when `actual` is not deep strict equal to `expected`.\n * @throws {AssertionError}\n * Throws when `actual` is not deep strict equal to `expected`.\n */ function equal(actual, expected, message) {\n assert((0,dequal__WEBPACK_IMPORTED_MODULE_0__.dequal)(actual, expected), actual, expected, \"equal\", \"Expected values to be deeply equal\", message);\n}\n/**\n * Assert if `value` is truthy.\n *\n * > 👉 **Important**: only asserts when the `development` condition is used,\n * > does nothing in production.\n *\n * @param {unknown} value\n * Value to assert.\n * @param {Error | string | null | undefined} [message]\n * Message for assertion error (default: `'Expected value to be truthy'`).\n * @returns {asserts value}\n * Nothing; throws when `value` is falsey.\n * @throws {AssertionError}\n * Throws when `value` is falsey.\n */ function ok(value, message) {\n assert(Boolean(value), false, true, \"ok\", \"Expected value to be truthy\", message);\n}\n/**\n * Assert that a code path never happens.\n *\n * > 👉 **Important**: only asserts when the `development` condition is used,\n * > does nothing in production.\n *\n * @param {Error | string | null | undefined} [message]\n * Message for assertion error (default: `'Unreachable'`).\n * @returns {never}\n * Nothing; always throws.\n * @throws {AssertionError}\n * Throws when `value` is falsey.\n */ function unreachable(message) {\n assert(false, false, true, \"ok\", \"Unreachable\", message);\n}\n/**\n * @param {boolean} bool\n * Whether to skip this operation.\n * @param {unknown} actual\n * Actual value.\n * @param {unknown} expected\n * Expected value.\n * @param {string} operator\n * Operator.\n * @param {string} defaultMessage\n * Default message for operation.\n * @param {Error | string | null | undefined} userMessage\n * User-provided message.\n * @returns {asserts bool}\n * Nothing; throws when falsey.\n */ // eslint-disable-next-line max-params\nfunction assert(bool, actual, expected, operator, defaultMessage, userMessage) {\n if (!bool) {\n throw userMessage instanceof Error ? userMessage : new AssertionError(userMessage || defaultMessage, actual, expected, operator, !userMessage);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2RldmxvcC9saWIvZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBNkI7QUFFN0I7O0NBRUMsR0FDRCxNQUFNQyxjQUFjLElBQUlDO0FBRXhCLE1BQU1DLHVCQUF1QkM7SUFJM0I7Ozs7Ozs7Ozs7Ozs7OztHQWVDLEdBQ0Qsc0NBQXNDO0lBQ3RDQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsQ0FBRTtRQUMxRCxLQUFLLENBQUNKO2FBckJSSyxPQUFPLGtCQUFrQixHQUFJO2FBQzdCQyxPQUFPLGtCQUFrQixHQUFJO1FBc0IzQixJQUFJUixNQUFNUyxpQkFBaUIsRUFBRTtZQUMzQlQsTUFBTVMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQ1IsV0FBVztRQUNoRDtRQUVBOztLQUVDLEdBQ0QsSUFBSSxDQUFDRSxNQUFNLEdBQUdBO1FBRWQ7O0tBRUMsR0FDRCxJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFFaEI7O0tBRUMsR0FDRCxJQUFJLENBQUNFLFNBQVMsR0FBR0E7UUFFakI7O0tBRUMsR0FDRCxJQUFJLENBQUNELFFBQVEsR0FBR0E7SUFDbEI7QUFDRjtBQUVBLE1BQU1LLHlCQUF5QlY7SUFHN0I7Ozs7Ozs7OztHQVNDLEdBQ0RDLFlBQVlDLE9BQU8sRUFBRU0sSUFBSSxDQUFFO1FBQ3pCLEtBQUssQ0FBQ047YUFiUkssT0FBTyxrQkFBa0IsR0FBSTtRQWUzQjs7S0FFQyxHQUNELElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0FBQ0Y7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJDLEdBQ00sU0FBU0csVUFBVUMsRUFBRSxFQUFFVixPQUFPLEVBQUVNLElBQUk7SUFDekMsSUFBSUssU0FBUztJQUViLDZFQUE2RTtJQUM3RUMsT0FBT0MsY0FBYyxDQUFDQyxZQUFZSjtJQUVsQyw4Q0FBOEM7SUFDOUMsT0FBT0k7SUFFUDs7OztHQUlDLEdBQ0QsU0FBU0EsV0FBVyxHQUFHQyxJQUFJO1FBQ3pCLElBQUksQ0FBQ0osUUFBUTtZQUNYQSxTQUFTO1lBRVQsSUFBSSxPQUFPTCxTQUFTLFlBQVlYLFlBQVlxQixHQUFHLENBQUNWLE9BQU87WUFDckQsU0FBUztZQUNYLE9BQU87Z0JBQ0xXLFFBQVFDLEtBQUssQ0FBQyxJQUFJVixpQkFBaUJSLFNBQVNNLFFBQVFhO2dCQUVwRCxJQUFJLE9BQU9iLFNBQVMsVUFBVVgsWUFBWXlCLEdBQUcsQ0FBQ2Q7WUFDaEQ7UUFDRjtRQUVBLE9BQU8sYUFDSGUsUUFBUUMsU0FBUyxDQUFDWixJQUFJSyxNQUFNLGNBQzVCTSxRQUFRRSxLQUFLLENBQUNiLElBQUksSUFBSSxFQUFFSztJQUM5QjtBQUNGO0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWtCQyxHQUNNLFNBQVNTLE1BQU12QixNQUFNLEVBQUVDLFFBQVEsRUFBRUYsT0FBTztJQUM3Q3lCLE9BQ0UvQiw4Q0FBTUEsQ0FBQ08sUUFBUUMsV0FDZkQsUUFDQUMsVUFDQSxTQUNBLHNDQUNBRjtBQUVKO0FBRUE7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FDTSxTQUFTMEIsR0FBR0MsS0FBSyxFQUFFM0IsT0FBTztJQUMvQnlCLE9BQ0VHLFFBQVFELFFBQ1IsT0FDQSxNQUNBLE1BQ0EsK0JBQ0EzQjtBQUVKO0FBRUE7Ozs7Ozs7Ozs7OztDQVlDLEdBQ00sU0FBUzZCLFlBQVk3QixPQUFPO0lBQ2pDeUIsT0FBTyxPQUFPLE9BQU8sTUFBTSxNQUFNLGVBQWV6QjtBQUNsRDtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlQyxHQUNELHNDQUFzQztBQUN0QyxTQUFTeUIsT0FBT0ssSUFBSSxFQUFFN0IsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFFBQVEsRUFBRTRCLGNBQWMsRUFBRUMsV0FBVztJQUMzRSxJQUFJLENBQUNGLE1BQU07UUFDVCxNQUFNRSx1QkFBdUJsQyxRQUN6QmtDLGNBQ0EsSUFBSW5DLGVBQ0ZtQyxlQUFlRCxnQkFDZjlCLFFBQ0FDLFVBQ0FDLFVBQ0EsQ0FBQzZCO0lBRVQ7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RldmxvcC9saWIvZGV2ZWxvcG1lbnQuanM/NTQ4MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RlcXVhbH0gZnJvbSAnZGVxdWFsJ1xuXG4vKipcbiAqIEB0eXBlIHtTZXQ8c3RyaW5nPn1cbiAqL1xuY29uc3QgY29kZXNXYXJuZWQgPSBuZXcgU2V0KClcblxuY2xhc3MgQXNzZXJ0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIG5hbWUgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoJ0Fzc2VydGlvbicpXG4gIGNvZGUgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoJ0VSUl9BU1NFUlRJT04nKVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gYXNzZXJ0aW9uIGVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICAgKiAgIE1lc3NhZ2UgZXhwbGFpbmluZyBlcnJvci5cbiAgICogQHBhcmFtIHt1bmtub3dufSBhY3R1YWxcbiAgICogICBWYWx1ZS5cbiAgICogQHBhcmFtIHt1bmtub3dufSBleHBlY3RlZFxuICAgKiAgIEJhc2VsaW5lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3BlcmF0b3JcbiAgICogICBOYW1lIG9mIGVxdWFsaXR5IG9wZXJhdGlvbi5cbiAgICogQHBhcmFtIHtib29sZWFufSBnZW5lcmF0ZWRcbiAgICogICBXaGV0aGVyIGBtZXNzYWdlYCBpcyBhIGN1c3RvbSBtZXNzYWdlIG9yIG5vdFxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluc3RhbmNlLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbiAgY29uc3RydWN0b3IobWVzc2FnZSwgYWN0dWFsLCBleHBlY3RlZCwgb3BlcmF0b3IsIGdlbmVyYXRlZCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG5cbiAgICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcbiAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHR5cGUge3Vua25vd259XG4gICAgICovXG4gICAgdGhpcy5hY3R1YWwgPSBhY3R1YWxcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIHt1bmtub3dufVxuICAgICAqL1xuICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZFxuXG4gICAgLyoqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgdGhpcy5nZW5lcmF0ZWQgPSBnZW5lcmF0ZWRcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yXG4gIH1cbn1cblxuY2xhc3MgRGVwcmVjYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgbmFtZSA9IC8qKiBAdHlwZSB7Y29uc3R9ICovICgnRGVwcmVjYXRpb25XYXJuaW5nJylcblxuICAvKipcbiAgICogQ3JlYXRlIGEgZGVwcmVjYXRpb24gbWVzc2FnZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAgICogICBNZXNzYWdlIGV4cGxhaW5pbmcgZGVwcmVjYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBjb2RlXG4gICAqICAgRGVwcmVjYXRpb24gaWRlbnRpZmllcjsgZGVwcmVjYXRpb24gbWVzc2FnZXMgd2lsbCBiZSBnZW5lcmF0ZWQgb25seSBvbmNlIHBlciBjb2RlLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3IobWVzc2FnZSwgY29kZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG5cbiAgICAvKipcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuY29kZSA9IGNvZGVcbiAgfVxufVxuXG4vKipcbiAqIFdyYXAgYSBmdW5jdGlvbiBvciBjbGFzcyB0byBzaG93IGEgZGVwcmVjYXRpb24gbWVzc2FnZSB3aGVuIGZpcnN0IGNhbGxlZC5cbiAqXG4gKiA+IPCfkYkgKipJbXBvcnRhbnQqKjogb25seSBzaG93cyBhIG1lc3NhZ2Ugd2hlbiB0aGUgYGRldmVsb3BtZW50YCBjb25kaXRpb24gaXNcbiAqID4gdXNlZCwgZG9lcyBub3RoaW5nIGluIHByb2R1Y3Rpb24uXG4gKlxuICogV2hlbiB0aGUgcmVzdWx0aW5nIHdyYXBwZWQgYGZuYCBpcyBjYWxsZWQsIGVtaXRzIGEgd2FybmluZyBvbmNlIHRvXG4gKiBgY29uc29sZS5lcnJvcmAgKGBzdGRlcnJgKS5cbiAqIElmIGEgY29kZSBpcyBnaXZlbiwgb25lIHdhcm5pbmcgbWVzc2FnZSB3aWxsIGJlIGVtaXR0ZWQgaW4gdG90YWwgcGVyIGNvZGUuXG4gKlxuICogQHRlbXBsYXRlIHtGdW5jdGlvbn0gVFxuICogICBGdW5jdGlvbiBvciBjbGFzcyBraW5kLlxuICogQHBhcmFtIHtUfSBmblxuICogICBGdW5jdGlvbiBvciBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKiAgIE1lc3NhZ2UgZXhwbGFpbmluZyBkZXByZWNhdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvZGVdXG4gKiAgIERlcHJlY2F0aW9uIGlkZW50aWZpZXIgKG9wdGlvbmFsKTsgZGVwcmVjYXRpb24gbWVzc2FnZXMgd2lsbCBiZSBnZW5lcmF0ZWRcbiAqICAgb25seSBvbmNlIHBlciBjb2RlLlxuICogQHJldHVybnMge1R9XG4gKiAgIFdyYXBwZWQgYGZuYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcHJlY2F0ZShmbiwgbWVzc2FnZSwgY29kZSkge1xuICBsZXQgd2FybmVkID0gZmFsc2VcblxuICAvLyBUaGUgd3JhcHBlciB3aWxsIGtlZXAgdGhlIHNhbWUgcHJvdG90eXBlIGFzIGZuIHRvIG1haW50YWluIHByb3RvdHlwZSBjaGFpblxuICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZGVwcmVjYXRlZCwgZm4pXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogaXTigJlzIHBlcmZlY3QsIHR5cGVzY3JpcHTigKZcbiAgcmV0dXJuIGRlcHJlY2F0ZWRcblxuICAvKipcbiAgICogQHRoaXMge3Vua25vd259XG4gICAqIEBwYXJhbSAgey4uLkFycmF5PHVua25vd24+fSBhcmdzXG4gICAqIEByZXR1cm5zIHt1bmtub3dufVxuICAgKi9cbiAgZnVuY3Rpb24gZGVwcmVjYXRlZCguLi5hcmdzKSB7XG4gICAgaWYgKCF3YXJuZWQpIHtcbiAgICAgIHdhcm5lZCA9IHRydWVcblxuICAgICAgaWYgKHR5cGVvZiBjb2RlID09PSAnc3RyaW5nJyAmJiBjb2Rlc1dhcm5lZC5oYXMoY29kZSkpIHtcbiAgICAgICAgLy8gRW1wdHkuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKG5ldyBEZXByZWNhdGlvbkVycm9yKG1lc3NhZ2UsIGNvZGUgfHwgdW5kZWZpbmVkKSlcblxuICAgICAgICBpZiAodHlwZW9mIGNvZGUgPT09ICdzdHJpbmcnKSBjb2Rlc1dhcm5lZC5hZGQoY29kZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3LnRhcmdldFxuICAgICAgPyBSZWZsZWN0LmNvbnN0cnVjdChmbiwgYXJncywgbmV3LnRhcmdldClcbiAgICAgIDogUmVmbGVjdC5hcHBseShmbiwgdGhpcywgYXJncylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBkZWVwIHN0cmljdCBlcXVpdmFsZW5jZS5cbiAqXG4gKiA+IPCfkYkgKipJbXBvcnRhbnQqKjogb25seSBhc3NlcnRzIHdoZW4gdGhlIGBkZXZlbG9wbWVudGAgY29uZGl0aW9uIGlzIHVzZWQsXG4gKiA+IGRvZXMgbm90aGluZyBpbiBwcm9kdWN0aW9uLlxuICpcbiAqIEB0ZW1wbGF0ZSB7dW5rbm93bn0gVFxuICogICBFeHBlY3RlZCBraW5kLlxuICogQHBhcmFtIHt1bmtub3dufSBhY3R1YWxcbiAqICAgVmFsdWUuXG4gKiBAcGFyYW0ge1R9IGV4cGVjdGVkXG4gKiAgIEJhc2VsaW5lLlxuICogQHBhcmFtIHtFcnJvciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFttZXNzYWdlXVxuICogICBNZXNzYWdlIGZvciBhc3NlcnRpb24gZXJyb3IgKGRlZmF1bHQ6IGAnRXhwZWN0ZWQgdmFsdWVzIHRvIGJlIGRlZXBseSBlcXVhbCdgKS5cbiAqIEByZXR1cm5zIHthc3NlcnRzIGFjdHVhbCBpcyBUfVxuICogICBOb3RoaW5nOyB0aHJvd3Mgd2hlbiBgYWN0dWFsYCBpcyBub3QgZGVlcCBzdHJpY3QgZXF1YWwgdG8gYGV4cGVjdGVkYC5cbiAqIEB0aHJvd3Mge0Fzc2VydGlvbkVycm9yfVxuICogICBUaHJvd3Mgd2hlbiBgYWN0dWFsYCBpcyBub3QgZGVlcCBzdHJpY3QgZXF1YWwgdG8gYGV4cGVjdGVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHtcbiAgYXNzZXJ0KFxuICAgIGRlcXVhbChhY3R1YWwsIGV4cGVjdGVkKSxcbiAgICBhY3R1YWwsXG4gICAgZXhwZWN0ZWQsXG4gICAgJ2VxdWFsJyxcbiAgICAnRXhwZWN0ZWQgdmFsdWVzIHRvIGJlIGRlZXBseSBlcXVhbCcsXG4gICAgbWVzc2FnZVxuICApXG59XG5cbi8qKlxuICogQXNzZXJ0IGlmIGB2YWx1ZWAgaXMgdHJ1dGh5LlxuICpcbiAqID4g8J+RiSAqKkltcG9ydGFudCoqOiBvbmx5IGFzc2VydHMgd2hlbiB0aGUgYGRldmVsb3BtZW50YCBjb25kaXRpb24gaXMgdXNlZCxcbiAqID4gZG9lcyBub3RoaW5nIGluIHByb2R1Y3Rpb24uXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICBWYWx1ZSB0byBhc3NlcnQuXG4gKiBAcGFyYW0ge0Vycm9yIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW21lc3NhZ2VdXG4gKiAgIE1lc3NhZ2UgZm9yIGFzc2VydGlvbiBlcnJvciAoZGVmYXVsdDogYCdFeHBlY3RlZCB2YWx1ZSB0byBiZSB0cnV0aHknYCkuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyB2YWx1ZX1cbiAqICAgTm90aGluZzsgdGhyb3dzIHdoZW4gYHZhbHVlYCBpcyBmYWxzZXkuXG4gKiBAdGhyb3dzIHtBc3NlcnRpb25FcnJvcn1cbiAqICAgVGhyb3dzIHdoZW4gYHZhbHVlYCBpcyBmYWxzZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvayh2YWx1ZSwgbWVzc2FnZSkge1xuICBhc3NlcnQoXG4gICAgQm9vbGVhbih2YWx1ZSksXG4gICAgZmFsc2UsXG4gICAgdHJ1ZSxcbiAgICAnb2snLFxuICAgICdFeHBlY3RlZCB2YWx1ZSB0byBiZSB0cnV0aHknLFxuICAgIG1lc3NhZ2VcbiAgKVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IGEgY29kZSBwYXRoIG5ldmVyIGhhcHBlbnMuXG4gKlxuICogPiDwn5GJICoqSW1wb3J0YW50Kio6IG9ubHkgYXNzZXJ0cyB3aGVuIHRoZSBgZGV2ZWxvcG1lbnRgIGNvbmRpdGlvbiBpcyB1c2VkLFxuICogPiBkb2VzIG5vdGhpbmcgaW4gcHJvZHVjdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW21lc3NhZ2VdXG4gKiAgIE1lc3NhZ2UgZm9yIGFzc2VydGlvbiBlcnJvciAoZGVmYXVsdDogYCdVbnJlYWNoYWJsZSdgKS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTm90aGluZzsgYWx3YXlzIHRocm93cy5cbiAqIEB0aHJvd3Mge0Fzc2VydGlvbkVycm9yfVxuICogICBUaHJvd3Mgd2hlbiBgdmFsdWVgIGlzIGZhbHNleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVucmVhY2hhYmxlKG1lc3NhZ2UpIHtcbiAgYXNzZXJ0KGZhbHNlLCBmYWxzZSwgdHJ1ZSwgJ29rJywgJ1VucmVhY2hhYmxlJywgbWVzc2FnZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJvb2xcbiAqICAgV2hldGhlciB0byBza2lwIHRoaXMgb3BlcmF0aW9uLlxuICogQHBhcmFtIHt1bmtub3dufSBhY3R1YWxcbiAqICAgQWN0dWFsIHZhbHVlLlxuICogQHBhcmFtIHt1bmtub3dufSBleHBlY3RlZFxuICogICBFeHBlY3RlZCB2YWx1ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcGVyYXRvclxuICogICBPcGVyYXRvci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkZWZhdWx0TWVzc2FnZVxuICogICBEZWZhdWx0IG1lc3NhZ2UgZm9yIG9wZXJhdGlvbi5cbiAqIEBwYXJhbSB7RXJyb3IgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSB1c2VyTWVzc2FnZVxuICogICBVc2VyLXByb3ZpZGVkIG1lc3NhZ2UuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBib29sfVxuICogICBOb3RoaW5nOyB0aHJvd3Mgd2hlbiBmYWxzZXkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtcGFyYW1zXG5mdW5jdGlvbiBhc3NlcnQoYm9vbCwgYWN0dWFsLCBleHBlY3RlZCwgb3BlcmF0b3IsIGRlZmF1bHRNZXNzYWdlLCB1c2VyTWVzc2FnZSkge1xuICBpZiAoIWJvb2wpIHtcbiAgICB0aHJvdyB1c2VyTWVzc2FnZSBpbnN0YW5jZW9mIEVycm9yXG4gICAgICA/IHVzZXJNZXNzYWdlXG4gICAgICA6IG5ldyBBc3NlcnRpb25FcnJvcihcbiAgICAgICAgICB1c2VyTWVzc2FnZSB8fCBkZWZhdWx0TWVzc2FnZSxcbiAgICAgICAgICBhY3R1YWwsXG4gICAgICAgICAgZXhwZWN0ZWQsXG4gICAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgICAgIXVzZXJNZXNzYWdlXG4gICAgICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRlcXVhbCIsImNvZGVzV2FybmVkIiwiU2V0IiwiQXNzZXJ0aW9uRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsImFjdHVhbCIsImV4cGVjdGVkIiwib3BlcmF0b3IiLCJnZW5lcmF0ZWQiLCJuYW1lIiwiY29kZSIsImNhcHR1cmVTdGFja1RyYWNlIiwiRGVwcmVjYXRpb25FcnJvciIsImRlcHJlY2F0ZSIsImZuIiwid2FybmVkIiwiT2JqZWN0Iiwic2V0UHJvdG90eXBlT2YiLCJkZXByZWNhdGVkIiwiYXJncyIsImhhcyIsImNvbnNvbGUiLCJlcnJvciIsInVuZGVmaW5lZCIsImFkZCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJhcHBseSIsImVxdWFsIiwiYXNzZXJ0Iiwib2siLCJ2YWx1ZSIsIkJvb2xlYW4iLCJ1bnJlYWNoYWJsZSIsImJvb2wiLCJkZWZhdWx0TWVzc2FnZSIsInVzZXJNZXNzYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/devlop/lib/development.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/estree-util-is-identifier-name/lib/index.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/estree-util-is-identifier-name/lib/index.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cont: () => (/* binding */ cont),\n/* harmony export */ name: () => (/* binding */ name),\n/* harmony export */ start: () => (/* binding */ start)\n/* harmony export */ });\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */ const startRe = /[$_\\p{ID_Start}]/u;\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u;\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u;\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u;\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u;\n/** @type {Options} */ const emptyOptions = {};\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */ // Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nfunction start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false;\n}\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */ // Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nfunction cont(code, options) {\n const settings = options || emptyOptions;\n const re = settings.jsx ? contReJsx : contRe;\n return code ? re.test(String.fromCodePoint(code)) : false;\n}\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */ function name(name, options) {\n const settings = options || emptyOptions;\n const re = settings.jsx ? nameReJsx : nameRe;\n return re.test(name);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2VzdHJlZS11dGlsLWlzLWlkZW50aWZpZXItbmFtZS9saWIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFRCxNQUFNQSxVQUFVO0FBQ2hCLE1BQU1DLFNBQVM7QUFDZixNQUFNQyxZQUFZO0FBQ2xCLE1BQU1DLFNBQVM7QUFDZixNQUFNQyxZQUFZO0FBRWxCLG9CQUFvQixHQUNwQixNQUFNQyxlQUFlLENBQUM7QUFFdEI7Ozs7Ozs7Q0FPQyxHQUNELG1GQUFtRjtBQUM1RSxTQUFTQyxNQUFNQyxJQUFJO0lBQ3hCLE9BQU9BLE9BQU9QLFFBQVFRLElBQUksQ0FBQ0MsT0FBT0MsYUFBYSxDQUFDSCxTQUFTO0FBQzNEO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ0QsbUZBQW1GO0FBQzVFLFNBQVNJLEtBQUtKLElBQUksRUFBRUssT0FBTztJQUNoQyxNQUFNQyxXQUFXRCxXQUFXUDtJQUM1QixNQUFNUyxLQUFLRCxTQUFTRSxHQUFHLEdBQUdiLFlBQVlEO0lBQ3RDLE9BQU9NLE9BQU9PLEdBQUdOLElBQUksQ0FBQ0MsT0FBT0MsYUFBYSxDQUFDSCxTQUFTO0FBQ3REO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ00sU0FBU1MsS0FBS0EsSUFBSSxFQUFFSixPQUFPO0lBQ2hDLE1BQU1DLFdBQVdELFdBQVdQO0lBQzVCLE1BQU1TLEtBQUtELFNBQVNFLEdBQUcsR0FBR1gsWUFBWUQ7SUFDdEMsT0FBT1csR0FBR04sSUFBSSxDQUFDUTtBQUNqQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2VzdHJlZS11dGlsLWlzLWlkZW50aWZpZXItbmFtZS9saWIvaW5kZXguanM/NTc2YiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtqc3g9ZmFsc2VdXG4gKiAgIFN1cHBvcnQgSlNYIGlkZW50aWZpZXJzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqL1xuXG5jb25zdCBzdGFydFJlID0gL1skX1xccHtJRF9TdGFydH1dL3VcbmNvbnN0IGNvbnRSZSA9IC9bJF9cXHV7MjAwQ31cXHV7MjAwRH1cXHB7SURfQ29udGludWV9XS91XG5jb25zdCBjb250UmVKc3ggPSAvWy0kX1xcdXsyMDBDfVxcdXsyMDBEfVxccHtJRF9Db250aW51ZX1dL3VcbmNvbnN0IG5hbWVSZSA9IC9eWyRfXFxwe0lEX1N0YXJ0fV1bJF9cXHV7MjAwQ31cXHV7MjAwRH1cXHB7SURfQ29udGludWV9XSokL3VcbmNvbnN0IG5hbWVSZUpzeCA9IC9eWyRfXFxwe0lEX1N0YXJ0fV1bLSRfXFx1ezIwMEN9XFx1ezIwMER9XFxwe0lEX0NvbnRpbnVlfV0qJC91XG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBjb2RlIHBvaW50IGNhbiBzdGFydCBhbiBpZGVudGlmaWVyLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBjb2RlXG4gKiAgIENvZGUgcG9pbnQgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBgY29kZWAgY2FuIHN0YXJ0IGFuIGlkZW50aWZpZXIuXG4gKi9cbi8vIE5vdGU6IGB1bmRlZmluZWRgIGlzIHN1cHBvcnRlZCBzbyB5b3UgY2FuIHBhc3MgdGhlIHJlc3VsdCBmcm9tIGAnJy5jb2RlUG9pbnRBdGAuXG5leHBvcnQgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICByZXR1cm4gY29kZSA/IHN0YXJ0UmUudGVzdChTdHJpbmcuZnJvbUNvZGVQb2ludChjb2RlKSkgOiBmYWxzZVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gY29kZSBwb2ludCBjYW4gY29udGludWUgYW4gaWRlbnRpZmllci5cbiAqXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gY29kZVxuICogICBDb2RlIHBvaW50IHRvIGNoZWNrLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGBjb2RlYCBjYW4gY29udGludWUgYW4gaWRlbnRpZmllci5cbiAqL1xuLy8gTm90ZTogYHVuZGVmaW5lZGAgaXMgc3VwcG9ydGVkIHNvIHlvdSBjYW4gcGFzcyB0aGUgcmVzdWx0IGZyb20gYCcnLmNvZGVQb2ludEF0YC5cbmV4cG9ydCBmdW5jdGlvbiBjb250KGNvZGUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IGVtcHR5T3B0aW9uc1xuICBjb25zdCByZSA9IHNldHRpbmdzLmpzeCA/IGNvbnRSZUpzeCA6IGNvbnRSZVxuICByZXR1cm4gY29kZSA/IHJlLnRlc3QoU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZSkpIDogZmFsc2Vcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgdmFsaWQgaWRlbnRpZmllciBuYW1lLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIElkZW50aWZpZXIgdG8gY2hlY2suXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgYG5hbWVgIGNhbiBiZSBhbiBpZGVudGlmaWVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmFtZShuYW1lLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgcmUgPSBzZXR0aW5ncy5qc3ggPyBuYW1lUmVKc3ggOiBuYW1lUmVcbiAgcmV0dXJuIHJlLnRlc3QobmFtZSlcbn1cbiJdLCJuYW1lcyI6WyJzdGFydFJlIiwiY29udFJlIiwiY29udFJlSnN4IiwibmFtZVJlIiwibmFtZVJlSnN4IiwiZW1wdHlPcHRpb25zIiwic3RhcnQiLCJjb2RlIiwidGVzdCIsIlN0cmluZyIsImZyb21Db2RlUG9pbnQiLCJjb250Iiwib3B0aW9ucyIsInNldHRpbmdzIiwicmUiLCJqc3giLCJuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/estree-util-is-identifier-name/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/hast-util-to-jsx-runtime/lib/index.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/hast-util-to-jsx-runtime/lib/index.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ toJsxRuntime: () => (/* binding */ toJsxRuntime)\n/* harmony export */ });\n/* harmony import */ var comma_separated_tokens__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! comma-separated-tokens */ \"(ssr)/../../node_modules/comma-separated-tokens/index.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var estree_util_is_identifier_name__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! estree-util-is-identifier-name */ \"(ssr)/../../node_modules/estree-util-is-identifier-name/lib/index.js\");\n/* harmony import */ var hast_util_whitespace__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! hast-util-whitespace */ \"(ssr)/../../node_modules/hast-util-whitespace/lib/index.js\");\n/* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! property-information */ \"(ssr)/../../node_modules/property-information/index.js\");\n/* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! property-information */ \"(ssr)/../../node_modules/property-information/lib/find.js\");\n/* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! property-information */ \"(ssr)/../../node_modules/property-information/lib/hast-to-react.js\");\n/* harmony import */ var space_separated_tokens__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! space-separated-tokens */ \"(ssr)/../../node_modules/space-separated-tokens/index.js\");\n/* harmony import */ var style_to_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! style-to-object */ \"(ssr)/../../node_modules/style-to-object/esm/index.mjs\");\n/* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! unist-util-position */ \"(ssr)/../../node_modules/unist-util-position/lib/index.js\");\n/* harmony import */ var vfile_message__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vfile-message */ \"(ssr)/../../node_modules/vfile-message/lib/index.js\");\n// Register MDX nodes in mdast:\n/// <reference types=\"mdast-util-mdx-expression\" />\n/// <reference types=\"mdast-util-mdx-jsx\" />\n/// <reference types=\"mdast-util-mdxjs-esm\" />\n/**\n * @typedef {import('estree').Identifier} Identifier\n * @typedef {import('estree').Literal} Literal\n * @typedef {import('estree').MemberExpression} MemberExpression\n * @typedef {import('estree').Expression} Expression\n * @typedef {import('estree').Program} Program\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-mdx-expression').MdxFlowExpressionHast} MdxFlowExpression\n * @typedef {import('mdast-util-mdx-expression').MdxTextExpressionHast} MdxTextExpression\n *\n * @typedef {import('mdast-util-mdx-jsx').MdxJsxFlowElementHast} MdxJsxFlowElement\n * @typedef {import('mdast-util-mdx-jsx').MdxJsxTextElementHast} MdxJsxTextElement\n *\n * @typedef {import('mdast-util-mdxjs-esm').MdxjsEsmHast} MdxjsEsm\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('unist').Position} Position\n *\n * @typedef {import('./components.js').Components} Components\n */ /**\n * @typedef {JSX.Element | string | null | undefined} Child\n * Child.\n *\n * @callback Create\n * Create something in development or production.\n * @param {Nodes} node\n * hast node.\n * @param {unknown} type\n * Fragment symbol or tag name.\n * @param {Props} props\n * Properties and children.\n * @param {string | undefined} key\n * Key.\n * @returns {JSX.Element}\n * Result.\n *\n * @callback CreateEvaluater\n * Create an evaluator that turns ESTree ASTs from embedded MDX into values.\n * @returns {Evaluater}\n * Evaluater.\n *\n * @typedef {'html' | 'react'} ElementAttributeNameCase\n * Casing to use for attribute names.\n *\n * HTML casing is for example `class`, `stroke-linecap`, `xml:lang`.\n * React casing is for example `className`, `strokeLinecap`, `xmlLang`.\n *\n * @callback EvaluateExpression\n * Turn an MDX expression into a value.\n * @param {Expression} expression\n * ESTree expression.\n * @returns {unknown}\n * Result of expression.\n *\n * @callback EvaluateProgram\n * Turn an MDX program (export/import statements) into a value.\n * @param {Program} expression\n * ESTree program.\n * @returns {unknown}\n * Result of program;\n * should likely be `undefined` as ESM changes the scope but doesn’t yield\n * something.\n *\n * @typedef Evaluater\n * Evaluator that turns ESTree ASTs from embedded MDX into values.\n * @property {EvaluateExpression} evaluateExpression\n * Evaluate an expression.\n * @property {EvaluateProgram} evaluateProgram\n * Evaluate a program.\n *\n * @typedef {[string, Value]} Field\n * Property field.\n *\n * @typedef {unknown} Fragment\n * Represent the children, typically a symbol.\n *\n * @callback Jsx\n * Create a production element.\n * @param {unknown} type\n * Element type: `Fragment` symbol, tag name (`string`), component.\n * @param {Props} props\n * Element props, `children`, and maybe `node`.\n * @param {string | undefined} [key]\n * Dynamicly generated key to use.\n * @returns {JSX.Element}\n * Element from your framework.\n *\n * @callback JsxDev\n * Create a development element.\n * @param {unknown} type\n * Element type: `Fragment` symbol, tag name (`string`), component.\n * @param {Props} props\n * Element props, `children`, and maybe `node`.\n * @param {string | undefined} key\n * Dynamicly generated key to use.\n * @param {boolean} isStaticChildren\n * Whether two or more children are passed (in an array), which is whether\n * `jsxs` or `jsx` would be used.\n * @param {Source} source\n * Info about source.\n * @param {undefined} self\n * Nothing (this is used by frameworks that have components, we don’t).\n * @returns {JSX.Element}\n * Element from your framework.\n *\n * @typedef {{children?: Array<Child> | Child, node?: Element | MdxJsxFlowElement | MdxJsxTextElement | undefined, [prop: string]: Array<Child> | Child | Element | MdxJsxFlowElement | MdxJsxTextElement | Value | undefined}} Props\n * Properties and children.\n *\n * @typedef RegularFields\n * Configuration.\n * @property {Partial<Components> | null | undefined} [components]\n * Components to use (optional).\n * @property {CreateEvaluater | null | undefined} [createEvaluater]\n * Create an evaluator that turns ESTree ASTs into values (optional).\n * @property {ElementAttributeNameCase | null | undefined} [elementAttributeNameCase='react']\n * Specify casing to use for attribute names (default: `'react'`).\n * @property {string | null | undefined} [filePath]\n * File path to the original source file (optional).\n *\n * Passed in source info to `jsxDEV` when using the automatic runtime with\n * `development: true`.\n * @property {boolean | null | undefined} [ignoreInvalidStyle=false]\n * Ignore invalid CSS in `style` props (default: `false`);\n * the default behavior is to throw an error.\n * @property {boolean | null | undefined} [passKeys=true]\n * Generate keys to optimize frameworks that support them (default: `true`).\n *\n * > 👉 **Note**: Solid currently fails if keys are passed.\n * @property {boolean | null | undefined} [passNode=false]\n * Pass the hast element node to components (default: `false`).\n * @property {Space | null | undefined} [space='html']\n * Whether `tree` is in the `'html'` or `'svg'` space (default: `'html'`).\n *\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n * @property {StylePropertyNameCase | null | undefined} [stylePropertyNameCase='dom']\n * Specify casing to use for property names in `style` objects (default:\n * `'dom'`).\n * @property {boolean | null | undefined} [tableCellAlignToStyle=true]\n * Turn obsolete `align` props on `td` and `th` into CSS `style` props\n * (default: `true`).\n *\n * @typedef RuntimeDevelopment\n * Runtime fields when development is on.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {true} development\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off).\n * @property {Jsx | null | undefined} [jsx]\n * Dynamic JSX (optional).\n * @property {JsxDev} jsxDEV\n * Development JSX.\n * @property {Jsx | null | undefined} [jsxs]\n * Static JSX (optional).\n *\n * @typedef RuntimeProduction\n * Runtime fields when development is off.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {false | null | undefined} [development]\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off) (optional).\n * @property {Jsx} jsx\n * Dynamic JSX.\n * @property {JsxDev | null | undefined} [jsxDEV]\n * Development JSX (optional).\n * @property {Jsx} jsxs\n * Static JSX.\n *\n * @typedef RuntimeUnknown\n * Runtime fields when development might be on or off.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {boolean} development\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off).\n * @property {Jsx | null | undefined} [jsx]\n * Dynamic JSX (optional).\n * @property {JsxDev | null | undefined} [jsxDEV]\n * Development JSX (optional).\n * @property {Jsx | null | undefined} [jsxs]\n * Static JSX (optional).\n *\n * @typedef Source\n * Info about source.\n * @property {number | undefined} columnNumber\n * Column where thing starts (0-indexed).\n * @property {string | undefined} fileName\n * Name of source file.\n * @property {number | undefined} lineNumber\n * Line where thing starts (1-indexed).\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * > 👉 **Note**: hast is not XML.\n * > It supports SVG as embedded in HTML.\n * > It does not support the features available in XML.\n * > Passing SVG might break but fragments of modern SVG should be fine.\n * > Use `xast` if you need to support SVG as XML.\n *\n * @typedef State\n * Info passed around.\n * @property {unknown} Fragment\n * Fragment symbol.\n * @property {Array<Parents>} ancestors\n * Stack of parents.\n * @property {Partial<Components>} components\n * Components to swap.\n * @property {Create} create\n * Create something in development or production.\n * @property {ElementAttributeNameCase} elementAttributeNameCase\n * Casing to use for attribute names.\n * @property {Evaluater | undefined} evaluater\n * Evaluator that turns ESTree ASTs into values.\n * @property {string | undefined} filePath\n * File path.\n * @property {boolean} ignoreInvalidStyle\n * Ignore invalid CSS in `style` props.\n * @property {boolean} passKeys\n * Generate keys to optimize frameworks that support them.\n * @property {boolean} passNode\n * Pass `node` to components.\n * @property {Schema} schema\n * Current schema.\n * @property {StylePropertyNameCase} stylePropertyNameCase\n * Casing to use for property names in `style` objects.\n * @property {boolean} tableCellAlignToStyle\n * Turn obsolete `align` props on `td` and `th` into CSS `style` props.\n *\n * @typedef {Record<string, string>} Style\n * Style map.\n *\n * @typedef {'css' | 'dom'} StylePropertyNameCase\n * Casing to use for property names in `style` objects.\n *\n * CSS casing is for example `background-color` and `-webkit-line-clamp`.\n * DOM casing is for example `backgroundColor` and `WebkitLineClamp`.\n *\n * @typedef {Style | boolean | number | string} Value\n * Primitive property value and `Style` map.\n */ /**\n * @typedef {RuntimeDevelopment & RegularFields} Development\n * Configuration (development).\n * @typedef {Development | Production | Unknown} Options\n * Configuration.\n * @typedef {RegularFields & RuntimeProduction} Production\n * Configuration (production).\n * @typedef {RegularFields & RuntimeUnknown} Unknown\n * Configuration (production or development).\n */ \n\n\n\n\n\n\n\n\nconst own = {}.hasOwnProperty;\n/** @type {Map<string, number>} */ const emptyMap = new Map();\nconst cap = /[A-Z]/g;\nconst dashSomething = /-([a-z])/g;\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set([\n \"table\",\n \"tbody\",\n \"thead\",\n \"tfoot\",\n \"tr\"\n]);\nconst tableCellElement = new Set([\n \"td\",\n \"th\"\n]);\nconst docs = \"https://github.com/syntax-tree/hast-util-to-jsx-runtime\";\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options} options\n * Configuration (required).\n * @returns {JSX.Element}\n * JSX element.\n */ function toJsxRuntime(tree, options) {\n if (!options || options.Fragment === undefined) {\n throw new TypeError(\"Expected `Fragment` in options\");\n }\n const filePath = options.filePath || undefined;\n /** @type {Create} */ let create;\n if (options.development) {\n if (typeof options.jsxDEV !== \"function\") {\n throw new TypeError(\"Expected `jsxDEV` in options when `development: true`\");\n }\n create = developmentCreate(filePath, options.jsxDEV);\n } else {\n if (typeof options.jsx !== \"function\") {\n throw new TypeError(\"Expected `jsx` in production options\");\n }\n if (typeof options.jsxs !== \"function\") {\n throw new TypeError(\"Expected `jsxs` in production options\");\n }\n create = productionCreate(filePath, options.jsx, options.jsxs);\n }\n /** @type {State} */ const state = {\n Fragment: options.Fragment,\n ancestors: [],\n components: options.components || {},\n create,\n elementAttributeNameCase: options.elementAttributeNameCase || \"react\",\n evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n filePath,\n ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n passKeys: options.passKeys !== false,\n passNode: options.passNode || false,\n schema: options.space === \"svg\" ? property_information__WEBPACK_IMPORTED_MODULE_1__.svg : property_information__WEBPACK_IMPORTED_MODULE_1__.html,\n stylePropertyNameCase: options.stylePropertyNameCase || \"dom\",\n tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n };\n const result = one(state, tree, undefined);\n // JSX element.\n if (result && typeof result !== \"string\") {\n return result;\n }\n // Text node or something that turned into nothing.\n return state.create(tree, state.Fragment, {\n children: result || undefined\n }, undefined);\n}\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around.\n * @param {Nodes} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */ function one(state, node, key) {\n if (node.type === \"element\") {\n return element(state, node, key);\n }\n if (node.type === \"mdxFlowExpression\" || node.type === \"mdxTextExpression\") {\n return mdxExpression(state, node);\n }\n if (node.type === \"mdxJsxFlowElement\" || node.type === \"mdxJsxTextElement\") {\n return mdxJsxElement(state, node, key);\n }\n if (node.type === \"mdxjsEsm\") {\n return mdxEsm(state, node);\n }\n if (node.type === \"root\") {\n return root(state, node, key);\n }\n if (node.type === \"text\") {\n return text(state, node);\n }\n}\n/**\n * Handle element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */ function element(state, node, key) {\n const parentSchema = state.schema;\n let schema = parentSchema;\n if (node.tagName.toLowerCase() === \"svg\" && parentSchema.space === \"html\") {\n schema = property_information__WEBPACK_IMPORTED_MODULE_1__.svg;\n state.schema = schema;\n }\n state.ancestors.push(node);\n const type = findComponentFromName(state, node.tagName, false);\n const props = createElementProps(state, node);\n let children = createChildren(state, node);\n if (tableElements.has(node.tagName)) {\n children = children.filter(function(child) {\n return typeof child === \"string\" ? !(0,hast_util_whitespace__WEBPACK_IMPORTED_MODULE_2__.whitespace)(child) : true;\n });\n }\n addNode(state, props, type, node);\n addChildren(props, children);\n // Restore.\n state.ancestors.pop();\n state.schema = parentSchema;\n return state.create(node, type, props, key);\n}\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxFlowExpression | MdxTextExpression} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */ function mdxExpression(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n const program = node.data.estree;\n const expression = program.body[0];\n (0,devlop__WEBPACK_IMPORTED_MODULE_3__.ok)(expression.type === \"ExpressionStatement\");\n // Assume result is a child.\n return /** @type {Child | undefined} */ state.evaluater.evaluateExpression(expression.expression);\n }\n crashEstree(state, node.position);\n}\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxjsEsm} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */ function mdxEsm(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n // Assume result is a child.\n return /** @type {Child | undefined} */ state.evaluater.evaluateProgram(node.data.estree);\n }\n crashEstree(state, node.position);\n}\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElement | MdxJsxTextElement} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */ function mdxJsxElement(state, node, key) {\n const parentSchema = state.schema;\n let schema = parentSchema;\n if (node.name === \"svg\" && parentSchema.space === \"html\") {\n schema = property_information__WEBPACK_IMPORTED_MODULE_1__.svg;\n state.schema = schema;\n }\n state.ancestors.push(node);\n const type = node.name === null ? state.Fragment : findComponentFromName(state, node.name, true);\n const props = createJsxElementProps(state, node);\n const children = createChildren(state, node);\n addNode(state, props, type, node);\n addChildren(props, children);\n // Restore.\n state.ancestors.pop();\n state.schema = parentSchema;\n return state.create(node, type, props, key);\n}\n/**\n * Handle root.\n *\n * @param {State} state\n * Info passed around.\n * @param {Root} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */ function root(state, node, key) {\n /** @type {Props} */ const props = {};\n addChildren(props, createChildren(state, node));\n return state.create(node, state.Fragment, props, key);\n}\n/**\n * Handle text.\n *\n * @param {State} _\n * Info passed around.\n * @param {Text} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */ function text(_, node) {\n return node.value;\n}\n/**\n * Add `node` to props.\n *\n * @param {State} state\n * Info passed around.\n * @param {Props} props\n * Props.\n * @param {unknown} type\n * Type.\n * @param {Element | MdxJsxFlowElement | MdxJsxTextElement} node\n * Node.\n * @returns {undefined}\n * Nothing.\n */ function addNode(state, props, type, node) {\n // If this is swapped out for a component:\n if (typeof type !== \"string\" && type !== state.Fragment && state.passNode) {\n props.node = node;\n }\n}\n/**\n * Add children to props.\n *\n * @param {Props} props\n * Props.\n * @param {Array<Child>} children\n * Children.\n * @returns {undefined}\n * Nothing.\n */ function addChildren(props, children) {\n if (children.length > 0) {\n const value = children.length > 1 ? children : children[0];\n if (value) {\n props.children = value;\n }\n }\n}\n/**\n * @param {string | undefined} _\n * Path to file.\n * @param {Jsx} jsx\n * Dynamic.\n * @param {Jsx} jsxs\n * Static.\n * @returns {Create}\n * Create a production element.\n */ function productionCreate(_, jsx, jsxs) {\n return create;\n /** @type {Create} */ function create(_, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children);\n const fn = isStaticChildren ? jsxs : jsx;\n return key ? fn(type, props, key) : fn(type, props);\n }\n}\n/**\n * @param {string | undefined} filePath\n * Path to file.\n * @param {JsxDev} jsxDEV\n * Development.\n * @returns {Create}\n * Create a development element.\n */ function developmentCreate(filePath, jsxDEV) {\n return create;\n /** @type {Create} */ function create(node, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children);\n const point = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointStart)(node);\n return jsxDEV(type, props, key, isStaticChildren, {\n columnNumber: point ? point.column - 1 : undefined,\n fileName: filePath,\n lineNumber: point ? point.line : undefined\n }, undefined);\n }\n}\n/**\n * Create props from an element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current element.\n * @returns {Props}\n * Props.\n */ function createElementProps(state, node) {\n /** @type {Props} */ const props = {};\n /** @type {string | undefined} */ let alignValue;\n /** @type {string} */ let prop;\n for(prop in node.properties){\n if (prop !== \"children\" && own.call(node.properties, prop)) {\n const result = createProperty(state, prop, node.properties[prop]);\n if (result) {\n const [key, value] = result;\n if (state.tableCellAlignToStyle && key === \"align\" && typeof value === \"string\" && tableCellElement.has(node.tagName)) {\n alignValue = value;\n } else {\n props[key] = value;\n }\n }\n }\n }\n if (alignValue) {\n // Assume style is an object.\n const style = /** @type {Style} */ props.style || (props.style = {});\n style[state.stylePropertyNameCase === \"css\" ? \"text-align\" : \"textAlign\"] = alignValue;\n }\n return props;\n}\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElement | MdxJsxTextElement} node\n * Current JSX element.\n * @returns {Props}\n * Props.\n */ function createJsxElementProps(state, node) {\n /** @type {Props} */ const props = {};\n for (const attribute of node.attributes){\n if (attribute.type === \"mdxJsxExpressionAttribute\") {\n if (attribute.data && attribute.data.estree && state.evaluater) {\n const program = attribute.data.estree;\n const expression = program.body[0];\n (0,devlop__WEBPACK_IMPORTED_MODULE_3__.ok)(expression.type === \"ExpressionStatement\");\n const objectExpression = expression.expression;\n (0,devlop__WEBPACK_IMPORTED_MODULE_3__.ok)(objectExpression.type === \"ObjectExpression\");\n const property = objectExpression.properties[0];\n (0,devlop__WEBPACK_IMPORTED_MODULE_3__.ok)(property.type === \"SpreadElement\");\n Object.assign(props, state.evaluater.evaluateExpression(property.argument));\n } else {\n crashEstree(state, node.position);\n }\n } else {\n // For JSX, the author is responsible of passing in the correct values.\n const name = attribute.name;\n /** @type {unknown} */ let value;\n if (attribute.value && typeof attribute.value === \"object\") {\n if (attribute.value.data && attribute.value.data.estree && state.evaluater) {\n const program = attribute.value.data.estree;\n const expression = program.body[0];\n (0,devlop__WEBPACK_IMPORTED_MODULE_3__.ok)(expression.type === \"ExpressionStatement\");\n value = state.evaluater.evaluateExpression(expression.expression);\n } else {\n crashEstree(state, node.position);\n }\n } else {\n value = attribute.value === null ? true : attribute.value;\n }\n // Assume a prop.\n props[name] = /** @type {Props[keyof Props]} */ value;\n }\n }\n return props;\n}\n/**\n * Create children.\n *\n * @param {State} state\n * Info passed around.\n * @param {Parents} node\n * Current element.\n * @returns {Array<Child>}\n * Children.\n */ function createChildren(state, node) {\n /** @type {Array<Child>} */ const children = [];\n let index = -1;\n /** @type {Map<string, number>} */ // Note: test this when Solid doesn’t want to merge my upcoming PR.\n /* c8 ignore next */ const countsByName = state.passKeys ? new Map() : emptyMap;\n while(++index < node.children.length){\n const child = node.children[index];\n /** @type {string | undefined} */ let key;\n if (state.passKeys) {\n const name = child.type === \"element\" ? child.tagName : child.type === \"mdxJsxFlowElement\" || child.type === \"mdxJsxTextElement\" ? child.name : undefined;\n if (name) {\n const count = countsByName.get(name) || 0;\n key = name + \"-\" + count;\n countsByName.set(name, count + 1);\n }\n }\n const result = one(state, child, key);\n if (result !== undefined) children.push(result);\n }\n return children;\n}\n/**\n * Handle a property.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Field | undefined}\n * Field for runtime, optional.\n */ function createProperty(state, prop, value) {\n const info = (0,property_information__WEBPACK_IMPORTED_MODULE_5__.find)(state.schema, prop);\n // Ignore nullish and `NaN` values.\n if (value === null || value === undefined || typeof value === \"number\" && Number.isNaN(value)) {\n return;\n }\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? (0,comma_separated_tokens__WEBPACK_IMPORTED_MODULE_6__.stringify)(value) : (0,space_separated_tokens__WEBPACK_IMPORTED_MODULE_7__.stringify)(value);\n }\n // React only accepts `style` as object.\n if (info.property === \"style\") {\n let styleObject = typeof value === \"object\" ? value : parseStyle(state, String(value));\n if (state.stylePropertyNameCase === \"css\") {\n styleObject = transformStylesToCssCasing(styleObject);\n }\n return [\n \"style\",\n styleObject\n ];\n }\n return [\n state.elementAttributeNameCase === \"react\" && info.space ? property_information__WEBPACK_IMPORTED_MODULE_8__.hastToReact[info.property] || info.property : info.attribute,\n value\n ];\n}\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} value\n * CSS declarations.\n * @returns {Style}\n * Properties.\n * @throws\n * Throws `VFileMessage` when CSS cannot be parsed.\n */ function parseStyle(state, value) {\n /** @type {Style} */ const result = {};\n try {\n // @ts-expect-error: `style-to-object` types are broken.\n (0,style_to_object__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, replacer);\n } catch (error) {\n if (!state.ignoreInvalidStyle) {\n const cause = /** @type {Error} */ error;\n const message = new vfile_message__WEBPACK_IMPORTED_MODULE_9__.VFileMessage(\"Cannot parse `style` attribute\", {\n ancestors: state.ancestors,\n cause,\n ruleId: \"style\",\n source: \"hast-util-to-jsx-runtime\"\n });\n message.file = state.filePath || undefined;\n message.url = docs + \"#cannot-parse-style-attribute\";\n throw message;\n }\n }\n return result;\n /**\n * Add a CSS property (normal, so with dashes) to `result` as a DOM CSS\n * property.\n *\n * @param {string} name\n * Key.\n * @param {string} value\n * Value\n * @returns {undefined}\n * Nothing.\n */ function replacer(name, value) {\n let key = name;\n if (key.slice(0, 2) !== \"--\") {\n if (key.slice(0, 4) === \"-ms-\") key = \"ms-\" + key.slice(4);\n key = key.replace(dashSomething, toCamel);\n }\n result[key] = value;\n }\n}\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n * To do.\n * @param {string} name\n * Name.\n * @param {boolean} allowExpression\n * Allow member expressions and identifiers.\n * @returns {unknown}\n * To do.\n */ function findComponentFromName(state, name, allowExpression) {\n /** @type {Identifier | Literal | MemberExpression} */ let result;\n if (!allowExpression) {\n result = {\n type: \"Literal\",\n value: name\n };\n } else if (name.includes(\".\")) {\n const identifiers = name.split(\".\");\n let index = -1;\n /** @type {Identifier | Literal | MemberExpression | undefined} */ let node;\n while(++index < identifiers.length){\n /** @type {Identifier | Literal} */ const prop = (0,estree_util_is_identifier_name__WEBPACK_IMPORTED_MODULE_10__.name)(identifiers[index]) ? {\n type: \"Identifier\",\n name: identifiers[index]\n } : {\n type: \"Literal\",\n value: identifiers[index]\n };\n node = node ? {\n type: \"MemberExpression\",\n object: node,\n property: prop,\n computed: Boolean(index && prop.type === \"Literal\"),\n optional: false\n } : prop;\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_3__.ok)(node, \"always a result\");\n result = node;\n } else {\n result = (0,estree_util_is_identifier_name__WEBPACK_IMPORTED_MODULE_10__.name)(name) && !/^[a-z]/.test(name) ? {\n type: \"Identifier\",\n name\n } : {\n type: \"Literal\",\n value: name\n };\n }\n // Only literals can be passed in `components` currently.\n // No identifiers / member expressions.\n if (result.type === \"Literal\") {\n const name = /** @type {keyof JSX.IntrinsicElements} */ result.value;\n return own.call(state.components, name) ? state.components[name] : name;\n }\n // Assume component.\n if (state.evaluater) {\n return state.evaluater.evaluateExpression(result);\n }\n crashEstree(state);\n}\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */ function crashEstree(state, place) {\n const message = new vfile_message__WEBPACK_IMPORTED_MODULE_9__.VFileMessage(\"Cannot handle MDX estrees without `createEvaluater`\", {\n ancestors: state.ancestors,\n place,\n ruleId: \"mdx-estree\",\n source: \"hast-util-to-jsx-runtime\"\n });\n message.file = state.filePath || undefined;\n message.url = docs + \"#cannot-handle-mdx-estrees-without-createevaluater\";\n throw message;\n}\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */ function transformStylesToCssCasing(domCasing) {\n /** @type {Style} */ const cssCasing = {};\n /** @type {string} */ let from;\n for(from in domCasing){\n if (own.call(domCasing, from)) {\n cssCasing[transformStyleToCssCasing(from)] = domCasing[from];\n }\n }\n return cssCasing;\n}\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */ function transformStyleToCssCasing(from) {\n let to = from.replace(cap, toDash);\n // Handle `ms-xxx` -> `-ms-xxx`.\n if (to.slice(0, 3) === \"ms-\") to = \"-\" + to;\n return to;\n}\n/**\n * Make `$1` capitalized.\n *\n * @param {string} _\n * Whatever.\n * @param {string} $1\n * Single ASCII alphabetical.\n * @returns {string}\n * Capitalized `$1`.\n */ function toCamel(_, $1) {\n return $1.toUpperCase();\n}\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n * Capitalized ASCII leter.\n * @returns {string}\n * Dash and lower letter.\n */ function toDash($0) {\n return \"-\" + $0.toLowerCase();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1qc3gtcnVudGltZS9saWIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1EQUFtRDtBQUNuRCw0Q0FBNEM7QUFDNUMsOENBQThDO0FBRTlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTBCQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZOQyxHQUVEOzs7Ozs7Ozs7Q0FTQyxHQUV5RDtBQUN2QjtBQUNvQztBQUN4QjtBQUNrQjtBQUNQO0FBQ2Y7QUFDRztBQUNKO0FBRTFDLE1BQU1lLE1BQU0sQ0FBQyxFQUFFQyxjQUFjO0FBRTdCLGdDQUFnQyxHQUNoQyxNQUFNQyxXQUFXLElBQUlDO0FBRXJCLE1BQU1DLE1BQU07QUFDWixNQUFNQyxnQkFBZ0I7QUFFdEIsa0VBQWtFO0FBQ2xFLDZFQUE2RTtBQUM3RSwyRUFBMkU7QUFDM0UsUUFBUTtBQUVSLHNEQUFzRDtBQUN0RCxzREFBc0Q7QUFDdEQsNkRBQTZEO0FBQzdELDJEQUEyRDtBQUMzRCwyREFBMkQ7QUFDM0QsMkRBQTJEO0FBQzNELE1BQU1DLGdCQUFnQixJQUFJQyxJQUFJO0lBQUM7SUFBUztJQUFTO0lBQVM7SUFBUztDQUFLO0FBRXhFLE1BQU1DLG1CQUFtQixJQUFJRCxJQUFJO0lBQUM7SUFBTTtDQUFLO0FBRTdDLE1BQU1FLE9BQU87QUFFYjs7Ozs7Ozs7OztDQVVDLEdBRU0sU0FBU0MsYUFBYUMsSUFBSSxFQUFFQyxP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Q3JILEtBQUtzSTtJQUMzQixnQ0FBZ0M7SUFDaEMsSUFBSUQsR0FBR2pCLEtBQUssQ0FBQyxHQUFHLE9BQU8sT0FBT2lCLEtBQUssTUFBTUE7SUFDekMsT0FBT0E7QUFDVDtBQUVBOzs7Ozs7Ozs7Q0FTQyxHQUNELFNBQVNmLFFBQVFqRCxDQUFDLEVBQUVrRSxFQUFFO0lBQ3BCLE9BQU9BLEdBQUdDLFdBQVc7QUFDdkI7QUFFQTs7Ozs7OztDQU9DLEdBQ0QsU0FBU0YsT0FBT0csRUFBRTtJQUNoQixPQUFPLE1BQU1BLEdBQUcxRixXQUFXO0FBQzdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWpzeC1ydW50aW1lL2xpYi9pbmRleC5qcz9hN2RhIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZ2lzdGVyIE1EWCBub2RlcyBpbiBtZGFzdDpcbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibWRhc3QtdXRpbC1tZHgtZXhwcmVzc2lvblwiIC8+XG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm1kYXN0LXV0aWwtbWR4LWpzeFwiIC8+XG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm1kYXN0LXV0aWwtbWR4anMtZXNtXCIgLz5cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdlc3RyZWUnKS5JZGVudGlmaWVyfSBJZGVudGlmaWVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdlc3RyZWUnKS5MaXRlcmFsfSBMaXRlcmFsXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdlc3RyZWUnKS5NZW1iZXJFeHByZXNzaW9ufSBNZW1iZXJFeHByZXNzaW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdlc3RyZWUnKS5FeHByZXNzaW9ufSBFeHByZXNzaW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdlc3RyZWUnKS5Qcm9ncmFtfSBQcm9ncmFtXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlRleHR9IFRleHRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLW1keC1leHByZXNzaW9uJykuTWR4Rmxvd0V4cHJlc3Npb25IYXN0fSBNZHhGbG93RXhwcmVzc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1tZHgtZXhwcmVzc2lvbicpLk1keFRleHRFeHByZXNzaW9uSGFzdH0gTWR4VGV4dEV4cHJlc3Npb25cbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLW1keC1qc3gnKS5NZHhKc3hGbG93RWxlbWVudEhhc3R9IE1keEpzeEZsb3dFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLW1keC1qc3gnKS5NZHhKc3hUZXh0RWxlbWVudEhhc3R9IE1keEpzeFRleHRFbGVtZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1tZHhqcy1lc20nKS5NZHhqc0VzbUhhc3R9IE1keGpzRXNtXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jb21wb25lbnRzLmpzJykuQ29tcG9uZW50c30gQ29tcG9uZW50c1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0pTWC5FbGVtZW50IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gQ2hpbGRcbiAqICAgQ2hpbGQuXG4gKlxuICogQGNhbGxiYWNrIENyZWF0ZVxuICogICBDcmVhdGUgc29tZXRoaW5nIGluIGRldmVsb3BtZW50IG9yIHByb2R1Y3Rpb24uXG4gKiBAcGFyYW0ge05vZGVzfSBub2RlXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdHlwZVxuICogICBGcmFnbWVudCBzeW1ib2wgb3IgdGFnIG5hbWUuXG4gKiBAcGFyYW0ge1Byb3BzfSBwcm9wc1xuICogICBQcm9wZXJ0aWVzIGFuZCBjaGlsZHJlbi5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBrZXlcbiAqICAgS2V5LlxuICogQHJldHVybnMge0pTWC5FbGVtZW50fVxuICogICBSZXN1bHQuXG4gKlxuICogQGNhbGxiYWNrIENyZWF0ZUV2YWx1YXRlclxuICogICBDcmVhdGUgYW4gZXZhbHVhdG9yIHRoYXQgdHVybnMgRVNUcmVlIEFTVHMgZnJvbSBlbWJlZGRlZCBNRFggaW50byB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RXZhbHVhdGVyfVxuICogICBFdmFsdWF0ZXIuXG4gKlxuICogQHR5cGVkZWYgeydodG1sJyB8ICdyZWFjdCd9IEVsZW1lbnRBdHRyaWJ1dGVOYW1lQ2FzZVxuICogICBDYXNpbmcgdG8gdXNlIGZvciBhdHRyaWJ1dGUgbmFtZXMuXG4gKlxuICogICBIVE1MIGNhc2luZyBpcyBmb3IgZXhhbXBsZSBgY2xhc3NgLCBgc3Ryb2tlLWxpbmVjYXBgLCBgeG1sOmxhbmdgLlxuICogICBSZWFjdCBjYXNpbmcgaXMgZm9yIGV4YW1wbGUgYGNsYXNzTmFtZWAsIGBzdHJva2VMaW5lY2FwYCwgYHhtbExhbmdgLlxuICpcbiAqIEBjYWxsYmFjayBFdmFsdWF0ZUV4cHJlc3Npb25cbiAqICAgVHVybiBhbiBNRFggZXhwcmVzc2lvbiBpbnRvIGEgdmFsdWUuXG4gKiBAcGFyYW0ge0V4cHJlc3Npb259IGV4cHJlc3Npb25cbiAqICAgRVNUcmVlIGV4cHJlc3Npb24uXG4gKiBAcmV0dXJucyB7dW5rbm93bn1cbiAqICAgUmVzdWx0IG9mIGV4cHJlc3Npb24uXG4gKlxuICogQGNhbGxiYWNrIEV2YWx1YXRlUHJvZ3JhbVxuICogICBUdXJuIGFuIE1EWCBwcm9ncmFtIChleHBvcnQvaW1wb3J0IHN0YXRlbWVudHMpIGludG8gYSB2YWx1ZS5cbiAqIEBwYXJhbSB7UHJvZ3JhbX0gZXhwcmVzc2lvblxuICogICBFU1RyZWUgcHJvZ3JhbS5cbiAqIEByZXR1cm5zIHt1bmtub3dufVxuICogICBSZXN1bHQgb2YgcHJvZ3JhbTtcbiAqICAgc2hvdWxkIGxpa2VseSBiZSBgdW5kZWZpbmVkYCBhcyBFU00gY2hhbmdlcyB0aGUgc2NvcGUgYnV0IGRvZXNu4oCZdCB5aWVsZFxuICogICBzb21ldGhpbmcuXG4gKlxuICogQHR5cGVkZWYgRXZhbHVhdGVyXG4gKiAgIEV2YWx1YXRvciB0aGF0IHR1cm5zIEVTVHJlZSBBU1RzIGZyb20gZW1iZWRkZWQgTURYIGludG8gdmFsdWVzLlxuICogQHByb3BlcnR5IHtFdmFsdWF0ZUV4cHJlc3Npb259IGV2YWx1YXRlRXhwcmVzc2lvblxuICogICBFdmFsdWF0ZSBhbiBleHByZXNzaW9uLlxuICogQHByb3BlcnR5IHtFdmFsdWF0ZVByb2dyYW19IGV2YWx1YXRlUHJvZ3JhbVxuICogICBFdmFsdWF0ZSBhIHByb2dyYW0uXG4gKlxuICogQHR5cGVkZWYge1tzdHJpbmcsIFZhbHVlXX0gRmllbGRcbiAqICAgUHJvcGVydHkgZmllbGQuXG4gKlxuICogQHR5cGVkZWYge3Vua25vd259IEZyYWdtZW50XG4gKiAgIFJlcHJlc2VudCB0aGUgY2hpbGRyZW4sIHR5cGljYWxseSBhIHN5bWJvbC5cbiAqXG4gKiBAY2FsbGJhY2sgSnN4XG4gKiAgIENyZWF0ZSBhIHByb2R1Y3Rpb24gZWxlbWVudC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdHlwZVxuICogICBFbGVtZW50IHR5cGU6IGBGcmFnbWVudGAgc3ltYm9sLCB0YWcgbmFtZSAoYHN0cmluZ2ApLCBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1Byb3BzfSBwcm9wc1xuICogICBFbGVtZW50IHByb3BzLCBgY2hpbGRyZW5gLCBhbmQgbWF5YmUgYG5vZGVgLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IFtrZXldXG4gKiAgIER5bmFtaWNseSBnZW5lcmF0ZWQga2V5IHRvIHVzZS5cbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH1cbiAqICAgRWxlbWVudCBmcm9tIHlvdXIgZnJhbWV3b3JrLlxuICpcbiAqIEBjYWxsYmFjayBKc3hEZXZcbiAqICAgQ3JlYXRlIGEgZGV2ZWxvcG1lbnQgZWxlbWVudC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdHlwZVxuICogICBFbGVtZW50IHR5cGU6IGBGcmFnbWVudGAgc3ltYm9sLCB0YWcgbmFtZSAoYHN0cmluZ2ApLCBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1Byb3BzfSBwcm9wc1xuICogICBFbGVtZW50IHByb3BzLCBgY2hpbGRyZW5gLCBhbmQgbWF5YmUgYG5vZGVgLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGtleVxuICogICBEeW5hbWljbHkgZ2VuZXJhdGVkIGtleSB0byB1c2UuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzU3RhdGljQ2hpbGRyZW5cbiAqICAgV2hldGhlciB0d28gb3IgbW9yZSBjaGlsZHJlbiBhcmUgcGFzc2VkIChpbiBhbiBhcnJheSksIHdoaWNoIGlzIHdoZXRoZXJcbiAqICAgYGpzeHNgIG9yIGBqc3hgIHdvdWxkIGJlIHVzZWQuXG4gKiBAcGFyYW0ge1NvdXJjZX0gc291cmNlXG4gKiAgIEluZm8gYWJvdXQgc291cmNlLlxuICogQHBhcmFtIHt1bmRlZmluZWR9IHNlbGZcbiAqICAgTm90aGluZyAodGhpcyBpcyB1c2VkIGJ5IGZyYW1ld29ya3MgdGhhdCBoYXZlIGNvbXBvbmVudHMsIHdlIGRvbuKAmXQpLlxuICogQHJldHVybnMge0pTWC5FbGVtZW50fVxuICogICBFbGVtZW50IGZyb20geW91ciBmcmFtZXdvcmsuXG4gKlxuICogQHR5cGVkZWYge3tjaGlsZHJlbj86IEFycmF5PENoaWxkPiB8IENoaWxkLCBub2RlPzogRWxlbWVudCB8IE1keEpzeEZsb3dFbGVtZW50IHwgTWR4SnN4VGV4dEVsZW1lbnQgfCB1bmRlZmluZWQsIFtwcm9wOiBzdHJpbmddOiBBcnJheTxDaGlsZD4gfCBDaGlsZCB8IEVsZW1lbnQgfCBNZHhKc3hGbG93RWxlbWVudCB8IE1keEpzeFRleHRFbGVtZW50IHwgVmFsdWUgfCB1bmRlZmluZWR9fSBQcm9wc1xuICogICBQcm9wZXJ0aWVzIGFuZCBjaGlsZHJlbi5cbiAqXG4gKiBAdHlwZWRlZiBSZWd1bGFyRmllbGRzXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1BhcnRpYWw8Q29tcG9uZW50cz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbY29tcG9uZW50c11cbiAqICAgQ29tcG9uZW50cyB0byB1c2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7Q3JlYXRlRXZhbHVhdGVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NyZWF0ZUV2YWx1YXRlcl1cbiAqICAgQ3JlYXRlIGFuIGV2YWx1YXRvciB0aGF0IHR1cm5zIEVTVHJlZSBBU1RzIGludG8gdmFsdWVzIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge0VsZW1lbnRBdHRyaWJ1dGVOYW1lQ2FzZSB8IG51bGwgfCB1bmRlZmluZWR9IFtlbGVtZW50QXR0cmlidXRlTmFtZUNhc2U9J3JlYWN0J11cbiAqICAgU3BlY2lmeSBjYXNpbmcgdG8gdXNlIGZvciBhdHRyaWJ1dGUgbmFtZXMgKGRlZmF1bHQ6IGAncmVhY3QnYCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtmaWxlUGF0aF1cbiAqICAgRmlsZSBwYXRoIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSAob3B0aW9uYWwpLlxuICpcbiAqICAgUGFzc2VkIGluIHNvdXJjZSBpbmZvIHRvIGBqc3hERVZgIHdoZW4gdXNpbmcgdGhlIGF1dG9tYXRpYyBydW50aW1lIHdpdGhcbiAqICAgYGRldmVsb3BtZW50OiB0cnVlYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtpZ25vcmVJbnZhbGlkU3R5bGU9ZmFsc2VdXG4gKiAgIElnbm9yZSBpbnZhbGlkIENTUyBpbiBgc3R5bGVgIHByb3BzIChkZWZhdWx0OiBgZmFsc2VgKTtcbiAqICAgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gdGhyb3cgYW4gZXJyb3IuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcGFzc0tleXM9dHJ1ZV1cbiAqICAgR2VuZXJhdGUga2V5cyB0byBvcHRpbWl6ZSBmcmFtZXdvcmtzIHRoYXQgc3VwcG9ydCB0aGVtIChkZWZhdWx0OiBgdHJ1ZWApLlxuICpcbiAqICAgPiDwn5GJICoqTm90ZSoqOiBTb2xpZCBjdXJyZW50bHkgZmFpbHMgaWYga2V5cyBhcmUgcGFzc2VkLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Bhc3NOb2RlPWZhbHNlXVxuICogICBQYXNzIHRoZSBoYXN0IGVsZW1lbnQgbm9kZSB0byBjb21wb25lbnRzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3BhY2U9J2h0bWwnXVxuICogICBXaGV0aGVyIGB0cmVlYCBpcyBpbiB0aGUgYCdodG1sJ2Agb3IgYCdzdmcnYCBzcGFjZSAoZGVmYXVsdDogYCdodG1sJ2ApLlxuICpcbiAqICAgV2hlbiBhbiBgPHN2Zz5gIGVsZW1lbnQgaXMgZm91bmQgaW4gdGhlIEhUTUwgc3BhY2UsIHRoaXMgcGFja2FnZSBhbHJlYWR5XG4gKiAgIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gYW5kIGZyb20gdGhlIFNWRyBzcGFjZSB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nXG4gKiAgIGl0LlxuICogQHByb3BlcnR5IHtTdHlsZVByb3BlcnR5TmFtZUNhc2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3R5bGVQcm9wZXJ0eU5hbWVDYXNlPSdkb20nXVxuICogICBTcGVjaWZ5IGNhc2luZyB0byB1c2UgZm9yIHByb3BlcnR5IG5hbWVzIGluIGBzdHlsZWAgb2JqZWN0cyAoZGVmYXVsdDpcbiAqICAgYCdkb20nYCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGFibGVDZWxsQWxpZ25Ub1N0eWxlPXRydWVdXG4gKiAgIFR1cm4gb2Jzb2xldGUgYGFsaWduYCBwcm9wcyBvbiBgdGRgIGFuZCBgdGhgIGludG8gQ1NTIGBzdHlsZWAgcHJvcHNcbiAqICAgKGRlZmF1bHQ6IGB0cnVlYCkuXG4gKlxuICogQHR5cGVkZWYgUnVudGltZURldmVsb3BtZW50XG4gKiAgIFJ1bnRpbWUgZmllbGRzIHdoZW4gZGV2ZWxvcG1lbnQgaXMgb24uXG4gKiBAcHJvcGVydHkge0ZyYWdtZW50fSBGcmFnbWVudFxuICogICBGcmFnbWVudC5cbiAqIEBwcm9wZXJ0eSB7dHJ1ZX0gZGV2ZWxvcG1lbnRcbiAqICAgV2hldGhlciB0byB1c2UgYGpzeERFVmAgKHdoZW4gb24pIG9yIGBqc3hgIGFuZCBganN4c2AgKHdoZW4gb2ZmKS5cbiAqIEBwcm9wZXJ0eSB7SnN4IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2pzeF1cbiAqICAgRHluYW1pYyBKU1ggKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7SnN4RGV2fSBqc3hERVZcbiAqICAgRGV2ZWxvcG1lbnQgSlNYLlxuICogQHByb3BlcnR5IHtKc3ggfCBudWxsIHwgdW5kZWZpbmVkfSBbanN4c11cbiAqICAgU3RhdGljIEpTWCAob3B0aW9uYWwpLlxuICpcbiAqIEB0eXBlZGVmIFJ1bnRpbWVQcm9kdWN0aW9uXG4gKiAgIFJ1bnRpbWUgZmllbGRzIHdoZW4gZGV2ZWxvcG1lbnQgaXMgb2ZmLlxuICogQHByb3BlcnR5IHtGcmFnbWVudH0gRnJhZ21lbnRcbiAqICAgRnJhZ21lbnQuXG4gKiBAcHJvcGVydHkge2ZhbHNlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RldmVsb3BtZW50XVxuICogICBXaGV0aGVyIHRvIHVzZSBganN4REVWYCAod2hlbiBvbikgb3IgYGpzeGAgYW5kIGBqc3hzYCAod2hlbiBvZmYpIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge0pzeH0ganN4XG4gKiAgIER5bmFtaWMgSlNYLlxuICogQHByb3BlcnR5IHtKc3hEZXYgfCBudWxsIHwgdW5kZWZpbmVkfSBbanN4REVWXVxuICogICBEZXZlbG9wbWVudCBKU1ggKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7SnN4fSBqc3hzXG4gKiAgIFN0YXRpYyBKU1guXG4gKlxuICogQHR5cGVkZWYgUnVudGltZVVua25vd25cbiAqICAgUnVudGltZSBmaWVsZHMgd2hlbiBkZXZlbG9wbWVudCBtaWdodCBiZSBvbiBvciBvZmYuXG4gKiBAcHJvcGVydHkge0ZyYWdtZW50fSBGcmFnbWVudFxuICogICBGcmFnbWVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZGV2ZWxvcG1lbnRcbiAqICAgV2hldGhlciB0byB1c2UgYGpzeERFVmAgKHdoZW4gb24pIG9yIGBqc3hgIGFuZCBganN4c2AgKHdoZW4gb2ZmKS5cbiAqIEBwcm9wZXJ0eSB7SnN4IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2pzeF1cbiAqICAgRHluYW1pYyBKU1ggKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7SnN4RGV2IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2pzeERFVl1cbiAqICAgRGV2ZWxvcG1lbnQgSlNYIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge0pzeCB8IG51bGwgfCB1bmRlZmluZWR9IFtqc3hzXVxuICogICBTdGF0aWMgSlNYIChvcHRpb25hbCkuXG4gKlxuICogQHR5cGVkZWYgU291cmNlXG4gKiAgIEluZm8gYWJvdXQgc291cmNlLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCB1bmRlZmluZWR9IGNvbHVtbk51bWJlclxuICogICBDb2x1bW4gd2hlcmUgdGhpbmcgc3RhcnRzICgwLWluZGV4ZWQpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCB1bmRlZmluZWR9IGZpbGVOYW1lXG4gKiAgIE5hbWUgb2Ygc291cmNlIGZpbGUuXG4gKiBAcHJvcGVydHkge251bWJlciB8IHVuZGVmaW5lZH0gbGluZU51bWJlclxuICogICBMaW5lIHdoZXJlIHRoaW5nIHN0YXJ0cyAoMS1pbmRleGVkKS5cbiAqXG4gKiBAdHlwZWRlZiB7J2h0bWwnIHwgJ3N2Zyd9IFNwYWNlXG4gKiAgIE5hbWVzcGFjZS5cbiAqXG4gKiAgID4g8J+RiSAqKk5vdGUqKjogaGFzdCBpcyBub3QgWE1MLlxuICogICA+IEl0IHN1cHBvcnRzIFNWRyBhcyBlbWJlZGRlZCBpbiBIVE1MLlxuICogICA+IEl0IGRvZXMgbm90IHN1cHBvcnQgdGhlIGZlYXR1cmVzIGF2YWlsYWJsZSBpbiBYTUwuXG4gKiAgID4gUGFzc2luZyBTVkcgbWlnaHQgYnJlYWsgYnV0IGZyYWdtZW50cyBvZiBtb2Rlcm4gU1ZHIHNob3VsZCBiZSBmaW5lLlxuICogICA+IFVzZSBgeGFzdGAgaWYgeW91IG5lZWQgdG8gc3VwcG9ydCBTVkcgYXMgWE1MLlxuICpcbiAqIEB0eXBlZGVmIFN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwcm9wZXJ0eSB7dW5rbm93bn0gRnJhZ21lbnRcbiAqICAgRnJhZ21lbnQgc3ltYm9sLlxuICogQHByb3BlcnR5IHtBcnJheTxQYXJlbnRzPn0gYW5jZXN0b3JzXG4gKiAgIFN0YWNrIG9mIHBhcmVudHMuXG4gKiBAcHJvcGVydHkge1BhcnRpYWw8Q29tcG9uZW50cz59IGNvbXBvbmVudHNcbiAqICAgQ29tcG9uZW50cyB0byBzd2FwLlxuICogQHByb3BlcnR5IHtDcmVhdGV9IGNyZWF0ZVxuICogICBDcmVhdGUgc29tZXRoaW5nIGluIGRldmVsb3BtZW50IG9yIHByb2R1Y3Rpb24uXG4gKiBAcHJvcGVydHkge0VsZW1lbnRBdHRyaWJ1dGVOYW1lQ2FzZX0gZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlXG4gKiAgIENhc2luZyB0byB1c2UgZm9yIGF0dHJpYnV0ZSBuYW1lcy5cbiAqIEBwcm9wZXJ0eSB7RXZhbHVhdGVyIHwgdW5kZWZpbmVkfSBldmFsdWF0ZXJcbiAqICAgRXZhbHVhdG9yIHRoYXQgdHVybnMgRVNUcmVlIEFTVHMgaW50byB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gZmlsZVBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHByb3BlcnR5IHtib29sZWFufSBpZ25vcmVJbnZhbGlkU3R5bGVcbiAqICAgSWdub3JlIGludmFsaWQgQ1NTIGluIGBzdHlsZWAgcHJvcHMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHBhc3NLZXlzXG4gKiAgIEdlbmVyYXRlIGtleXMgdG8gb3B0aW1pemUgZnJhbWV3b3JrcyB0aGF0IHN1cHBvcnQgdGhlbS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcGFzc05vZGVcbiAqICAgUGFzcyBgbm9kZWAgdG8gY29tcG9uZW50cy5cbiAqIEBwcm9wZXJ0eSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgQ3VycmVudCBzY2hlbWEuXG4gKiBAcHJvcGVydHkge1N0eWxlUHJvcGVydHlOYW1lQ2FzZX0gc3R5bGVQcm9wZXJ0eU5hbWVDYXNlXG4gKiAgIENhc2luZyB0byB1c2UgZm9yIHByb3BlcnR5IG5hbWVzIGluIGBzdHlsZWAgb2JqZWN0cy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gdGFibGVDZWxsQWxpZ25Ub1N0eWxlXG4gKiAgIFR1cm4gb2Jzb2xldGUgYGFsaWduYCBwcm9wcyBvbiBgdGRgIGFuZCBgdGhgIGludG8gQ1NTIGBzdHlsZWAgcHJvcHMuXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFN0eWxlXG4gKiAgIFN0eWxlIG1hcC5cbiAqXG4gKiBAdHlwZWRlZiB7J2NzcycgfCAnZG9tJ30gU3R5bGVQcm9wZXJ0eU5hbWVDYXNlXG4gKiAgIENhc2luZyB0byB1c2UgZm9yIHByb3BlcnR5IG5hbWVzIGluIGBzdHlsZWAgb2JqZWN0cy5cbiAqXG4gKiAgIENTUyBjYXNpbmcgaXMgZm9yIGV4YW1wbGUgYGJhY2tncm91bmQtY29sb3JgIGFuZCBgLXdlYmtpdC1saW5lLWNsYW1wYC5cbiAqICAgRE9NIGNhc2luZyBpcyBmb3IgZXhhbXBsZSBgYmFja2dyb3VuZENvbG9yYCBhbmQgYFdlYmtpdExpbmVDbGFtcGAuXG4gKlxuICogQHR5cGVkZWYge1N0eWxlIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZ30gVmFsdWVcbiAqICAgUHJpbWl0aXZlIHByb3BlcnR5IHZhbHVlIGFuZCBgU3R5bGVgIG1hcC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtSdW50aW1lRGV2ZWxvcG1lbnQgJiBSZWd1bGFyRmllbGRzfSBEZXZlbG9wbWVudFxuICogICBDb25maWd1cmF0aW9uIChkZXZlbG9wbWVudCkuXG4gKiBAdHlwZWRlZiB7RGV2ZWxvcG1lbnQgfCBQcm9kdWN0aW9uIHwgVW5rbm93bn0gT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHR5cGVkZWYge1JlZ3VsYXJGaWVsZHMgJiBSdW50aW1lUHJvZHVjdGlvbn0gUHJvZHVjdGlvblxuICogICBDb25maWd1cmF0aW9uIChwcm9kdWN0aW9uKS5cbiAqIEB0eXBlZGVmIHtSZWd1bGFyRmllbGRzICYgUnVudGltZVVua25vd259IFVua25vd25cbiAqICAgQ29uZmlndXJhdGlvbiAocHJvZHVjdGlvbiBvciBkZXZlbG9wbWVudCkuXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnkgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7bmFtZSBhcyBpc0lkZW50aWZpZXJOYW1lfSBmcm9tICdlc3RyZWUtdXRpbC1pcy1pZGVudGlmaWVyLW5hbWUnXG5pbXBvcnQge3doaXRlc3BhY2V9IGZyb20gJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJ1xuaW1wb3J0IHtmaW5kLCBoYXN0VG9SZWFjdCwgaHRtbCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7c3RyaW5naWZ5IGFzIHNwYWNlc30gZnJvbSAnc3BhY2Utc2VwYXJhdGVkLXRva2VucydcbmltcG9ydCBzdHlsZVRvT2JqZWN0IGZyb20gJ3N0eWxlLXRvLW9iamVjdCdcbmltcG9ydCB7cG9pbnRTdGFydH0gZnJvbSAndW5pc3QtdXRpbC1wb3NpdGlvbidcbmltcG9ydCB7VkZpbGVNZXNzYWdlfSBmcm9tICd2ZmlsZS1tZXNzYWdlJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKiogQHR5cGUge01hcDxzdHJpbmcsIG51bWJlcj59ICovXG5jb25zdCBlbXB0eU1hcCA9IG5ldyBNYXAoKVxuXG5jb25zdCBjYXAgPSAvW0EtWl0vZ1xuY29uc3QgZGFzaFNvbWV0aGluZyA9IC8tKFthLXpdKS9nXG5cbi8vIGByZWFjdC1kb21gIHRyaWdnZXJzIGEgd2FybmluZyBmb3IgKmFueSogd2hpdGUgc3BhY2UgaW4gdGFibGVzLlxuLy8gVG8gZm9sbG93IEdGTSwgYG1kYXN0LXV0aWwtdG8taGFzdGAgaW5qZWN0cyBsaW5lIGVuZGluZ3MgYmV0d2VlbiBlbGVtZW50cy5cbi8vIE90aGVyIHRvb2xzIG1pZ2h0IGRvIHNvIHRvbywgYnV0IHRoZXkgZG9u4oCZdCBkbyBoZXJlLCBzbyB3ZSByZW1vdmUgYWxsIG9mXG4vLyB0aGF0LlxuXG4vLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MDgxPi5cbi8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzc1MTU+LlxuLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL3JlbWFya2pzL3JlbWFyay1yZWFjdC9pc3N1ZXMvNjQ+LlxuLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL3JlaHlwZWpzL3JlaHlwZS1yZWFjdC9wdWxsLzI5Pi5cbi8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9yZWh5cGVqcy9yZWh5cGUtcmVhY3QvcHVsbC8zMj4uXG4vLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vcmVoeXBlanMvcmVoeXBlLXJlYWN0L3B1bGwvNDU+LlxuY29uc3QgdGFibGVFbGVtZW50cyA9IG5ldyBTZXQoWyd0YWJsZScsICd0Ym9keScsICd0aGVhZCcsICd0Zm9vdCcsICd0ciddKVxuXG5jb25zdCB0YWJsZUNlbGxFbGVtZW50ID0gbmV3IFNldChbJ3RkJywgJ3RoJ10pXG5cbmNvbnN0IGRvY3MgPSAnaHR0cHM6Ly9naXRodWIuY29tL3N5bnRheC10cmVlL2hhc3QtdXRpbC10by1qc3gtcnVudGltZSdcblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBoYXN0IHRyZWUgdG8gcHJlYWN0LCByZWFjdCwgc29saWQsIHN2ZWx0ZSwgdnVlLCBldGMuLFxuICogd2l0aCBhbiBhdXRvbWF0aWMgSlNYIHJ1bnRpbWUuXG4gKlxuICogQHBhcmFtIHtOb2Rlc30gdHJlZVxuICogICBUcmVlIHRvIHRyYW5zZm9ybS5cbiAqIEBwYXJhbSB7T3B0aW9uc30gb3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9XG4gKiAgIEpTWCBlbGVtZW50LlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiB0b0pzeFJ1bnRpbWUodHJlZSwgb3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucy5GcmFnbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYEZyYWdtZW50YCBpbiBvcHRpb25zJylcbiAgfVxuXG4gIGNvbnN0IGZpbGVQYXRoID0gb3B0aW9ucy5maWxlUGF0aCB8fCB1bmRlZmluZWRcbiAgLyoqIEB0eXBlIHtDcmVhdGV9ICovXG4gIGxldCBjcmVhdGVcblxuICBpZiAob3B0aW9ucy5kZXZlbG9wbWVudCkge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5qc3hERVYgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICdFeHBlY3RlZCBganN4REVWYCBpbiBvcHRpb25zIHdoZW4gYGRldmVsb3BtZW50OiB0cnVlYCdcbiAgICAgIClcbiAgICB9XG5cbiAgICBjcmVhdGUgPSBkZXZlbG9wbWVudENyZWF0ZShmaWxlUGF0aCwgb3B0aW9ucy5qc3hERVYpXG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLmpzeCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYGpzeGAgaW4gcHJvZHVjdGlvbiBvcHRpb25zJylcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuanN4cyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYGpzeHNgIGluIHByb2R1Y3Rpb24gb3B0aW9ucycpXG4gICAgfVxuXG4gICAgY3JlYXRlID0gcHJvZHVjdGlvbkNyZWF0ZShmaWxlUGF0aCwgb3B0aW9ucy5qc3gsIG9wdGlvbnMuanN4cylcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGNvbnN0IHN0YXRlID0ge1xuICAgIEZyYWdtZW50OiBvcHRpb25zLkZyYWdtZW50LFxuICAgIGFuY2VzdG9yczogW10sXG4gICAgY29tcG9uZW50czogb3B0aW9ucy5jb21wb25lbnRzIHx8IHt9LFxuICAgIGNyZWF0ZSxcbiAgICBlbGVtZW50QXR0cmlidXRlTmFtZUNhc2U6IG9wdGlvbnMuZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlIHx8ICdyZWFjdCcsXG4gICAgZXZhbHVhdGVyOiBvcHRpb25zLmNyZWF0ZUV2YWx1YXRlciA/IG9wdGlvbnMuY3JlYXRlRXZhbHVhdGVyKCkgOiB1bmRlZmluZWQsXG4gICAgZmlsZVBhdGgsXG4gICAgaWdub3JlSW52YWxpZFN0eWxlOiBvcHRpb25zLmlnbm9yZUludmFsaWRTdHlsZSB8fCBmYWxzZSxcbiAgICBwYXNzS2V5czogb3B0aW9ucy5wYXNzS2V5cyAhPT0gZmFsc2UsXG4gICAgcGFzc05vZGU6IG9wdGlvbnMucGFzc05vZGUgfHwgZmFsc2UsXG4gICAgc2NoZW1hOiBvcHRpb25zLnNwYWNlID09PSAnc3ZnJyA/IHN2ZyA6IGh0bWwsXG4gICAgc3R5bGVQcm9wZXJ0eU5hbWVDYXNlOiBvcHRpb25zLnN0eWxlUHJvcGVydHlOYW1lQ2FzZSB8fCAnZG9tJyxcbiAgICB0YWJsZUNlbGxBbGlnblRvU3R5bGU6IG9wdGlvbnMudGFibGVDZWxsQWxpZ25Ub1N0eWxlICE9PSBmYWxzZVxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gb25lKHN0YXRlLCB0cmVlLCB1bmRlZmluZWQpXG5cbiAgLy8gSlNYIGVsZW1lbnQuXG4gIGlmIChyZXN1bHQgJiYgdHlwZW9mIHJlc3VsdCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICAvLyBUZXh0IG5vZGUgb3Igc29tZXRoaW5nIHRoYXQgdHVybmVkIGludG8gbm90aGluZy5cbiAgcmV0dXJuIHN0YXRlLmNyZWF0ZShcbiAgICB0cmVlLFxuICAgIHN0YXRlLkZyYWdtZW50LFxuICAgIHtjaGlsZHJlbjogcmVzdWx0IHx8IHVuZGVmaW5lZH0sXG4gICAgdW5kZWZpbmVkXG4gIClcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBub2RlLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7Tm9kZXN9IG5vZGVcbiAqICAgQ3VycmVudCBub2RlLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGtleVxuICogICBLZXkuXG4gKiBAcmV0dXJucyB7Q2hpbGQgfCB1bmRlZmluZWR9XG4gKiAgIENoaWxkLCBvcHRpb25hbC5cbiAqL1xuZnVuY3Rpb24gb25lKHN0YXRlLCBub2RlLCBrZXkpIHtcbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQoc3RhdGUsIG5vZGUsIGtleSlcbiAgfVxuXG4gIGlmIChub2RlLnR5cGUgPT09ICdtZHhGbG93RXhwcmVzc2lvbicgfHwgbm9kZS50eXBlID09PSAnbWR4VGV4dEV4cHJlc3Npb24nKSB7XG4gICAgcmV0dXJuIG1keEV4cHJlc3Npb24oc3RhdGUsIG5vZGUpXG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSAnbWR4SnN4Rmxvd0VsZW1lbnQnIHx8IG5vZGUudHlwZSA9PT0gJ21keEpzeFRleHRFbGVtZW50Jykge1xuICAgIHJldHVybiBtZHhKc3hFbGVtZW50KHN0YXRlLCBub2RlLCBrZXkpXG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSAnbWR4anNFc20nKSB7XG4gICAgcmV0dXJuIG1keEVzbShzdGF0ZSwgbm9kZSlcbiAgfVxuXG4gIGlmIChub2RlLnR5cGUgPT09ICdyb290Jykge1xuICAgIHJldHVybiByb290KHN0YXRlLCBub2RlLCBrZXkpXG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSAndGV4dCcpIHtcbiAgICByZXR1cm4gdGV4dChzdGF0ZSwgbm9kZSlcbiAgfVxufVxuXG4vKipcbiAqIEhhbmRsZSBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBDdXJyZW50IG5vZGUuXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0ga2V5XG4gKiAgIEtleS5cbiAqIEByZXR1cm5zIHtDaGlsZCB8IHVuZGVmaW5lZH1cbiAqICAgQ2hpbGQsIG9wdGlvbmFsLlxuICovXG5mdW5jdGlvbiBlbGVtZW50KHN0YXRlLCBub2RlLCBrZXkpIHtcbiAgY29uc3QgcGFyZW50U2NoZW1hID0gc3RhdGUuc2NoZW1hXG4gIGxldCBzY2hlbWEgPSBwYXJlbnRTY2hlbWFcblxuICBpZiAobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnICYmIHBhcmVudFNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnKSB7XG4gICAgc2NoZW1hID0gc3ZnXG4gICAgc3RhdGUuc2NoZW1hID0gc2NoZW1hXG4gIH1cblxuICBzdGF0ZS5hbmNlc3RvcnMucHVzaChub2RlKVxuXG4gIGNvbnN0IHR5cGUgPSBmaW5kQ29tcG9uZW50RnJvbU5hbWUoc3RhdGUsIG5vZGUudGFnTmFtZSwgZmFsc2UpXG4gIGNvbnN0IHByb3BzID0gY3JlYXRlRWxlbWVudFByb3BzKHN0YXRlLCBub2RlKVxuICBsZXQgY2hpbGRyZW4gPSBjcmVhdGVDaGlsZHJlbihzdGF0ZSwgbm9kZSlcblxuICBpZiAodGFibGVFbGVtZW50cy5oYXMobm9kZS50YWdOYW1lKSkge1xuICAgIGNoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiBjaGlsZCA9PT0gJ3N0cmluZycgPyAhd2hpdGVzcGFjZShjaGlsZCkgOiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIGFkZE5vZGUoc3RhdGUsIHByb3BzLCB0eXBlLCBub2RlKVxuICBhZGRDaGlsZHJlbihwcm9wcywgY2hpbGRyZW4pXG5cbiAgLy8gUmVzdG9yZS5cbiAgc3RhdGUuYW5jZXN0b3JzLnBvcCgpXG4gIHN0YXRlLnNjaGVtYSA9IHBhcmVudFNjaGVtYVxuXG4gIHJldHVybiBzdGF0ZS5jcmVhdGUobm9kZSwgdHlwZSwgcHJvcHMsIGtleSlcbn1cblxuLyoqXG4gKiBIYW5kbGUgTURYIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtNZHhGbG93RXhwcmVzc2lvbiB8IE1keFRleHRFeHByZXNzaW9ufSBub2RlXG4gKiAgIEN1cnJlbnQgbm9kZS5cbiAqIEByZXR1cm5zIHtDaGlsZCB8IHVuZGVmaW5lZH1cbiAqICAgQ2hpbGQsIG9wdGlvbmFsLlxuICovXG5mdW5jdGlvbiBtZHhFeHByZXNzaW9uKHN0YXRlLCBub2RlKSB7XG4gIGlmIChub2RlLmRhdGEgJiYgbm9kZS5kYXRhLmVzdHJlZSAmJiBzdGF0ZS5ldmFsdWF0ZXIpIHtcbiAgICBjb25zdCBwcm9ncmFtID0gbm9kZS5kYXRhLmVzdHJlZVxuICAgIGNvbnN0IGV4cHJlc3Npb24gPSBwcm9ncmFtLmJvZHlbMF1cbiAgICBhc3NlcnQoZXhwcmVzc2lvbi50eXBlID09PSAnRXhwcmVzc2lvblN0YXRlbWVudCcpXG5cbiAgICAvLyBBc3N1bWUgcmVzdWx0IGlzIGEgY2hpbGQuXG4gICAgcmV0dXJuIC8qKiBAdHlwZSB7Q2hpbGQgfCB1bmRlZmluZWR9ICovIChcbiAgICAgIHN0YXRlLmV2YWx1YXRlci5ldmFsdWF0ZUV4cHJlc3Npb24oZXhwcmVzc2lvbi5leHByZXNzaW9uKVxuICAgIClcbiAgfVxuXG4gIGNyYXNoRXN0cmVlKHN0YXRlLCBub2RlLnBvc2l0aW9uKVxufVxuXG4vKipcbiAqIEhhbmRsZSBNRFggRVNNLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7TWR4anNFc219IG5vZGVcbiAqICAgQ3VycmVudCBub2RlLlxuICogQHJldHVybnMge0NoaWxkIHwgdW5kZWZpbmVkfVxuICogICBDaGlsZCwgb3B0aW9uYWwuXG4gKi9cbmZ1bmN0aW9uIG1keEVzbShzdGF0ZSwgbm9kZSkge1xuICBpZiAobm9kZS5kYXRhICYmIG5vZGUuZGF0YS5lc3RyZWUgJiYgc3RhdGUuZXZhbHVhdGVyKSB7XG4gICAgLy8gQXNzdW1lIHJlc3VsdCBpcyBhIGNoaWxkLlxuICAgIHJldHVybiAvKiogQHR5cGUge0NoaWxkIHwgdW5kZWZpbmVkfSAqLyAoXG4gICAgICBzdGF0ZS5ldmFsdWF0ZXIuZXZhbHVhdGVQcm9ncmFtKG5vZGUuZGF0YS5lc3RyZWUpXG4gICAgKVxuICB9XG5cbiAgY3Jhc2hFc3RyZWUoc3RhdGUsIG5vZGUucG9zaXRpb24pXG59XG5cbi8qKlxuICogSGFuZGxlIE1EWCBKU1guXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtNZHhKc3hGbG93RWxlbWVudCB8IE1keEpzeFRleHRFbGVtZW50fSBub2RlXG4gKiAgIEN1cnJlbnQgbm9kZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBrZXlcbiAqICAgS2V5LlxuICogQHJldHVybnMge0NoaWxkIHwgdW5kZWZpbmVkfVxuICogICBDaGlsZCwgb3B0aW9uYWwuXG4gKi9cbmZ1bmN0aW9uIG1keEpzeEVsZW1lbnQoc3RhdGUsIG5vZGUsIGtleSkge1xuICBjb25zdCBwYXJlbnRTY2hlbWEgPSBzdGF0ZS5zY2hlbWFcbiAgbGV0IHNjaGVtYSA9IHBhcmVudFNjaGVtYVxuXG4gIGlmIChub2RlLm5hbWUgPT09ICdzdmcnICYmIHBhcmVudFNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnKSB7XG4gICAgc2NoZW1hID0gc3ZnXG4gICAgc3RhdGUuc2NoZW1hID0gc2NoZW1hXG4gIH1cblxuICBzdGF0ZS5hbmNlc3RvcnMucHVzaChub2RlKVxuXG4gIGNvbnN0IHR5cGUgPVxuICAgIG5vZGUubmFtZSA9PT0gbnVsbFxuICAgICAgPyBzdGF0ZS5GcmFnbWVudFxuICAgICAgOiBmaW5kQ29tcG9uZW50RnJvbU5hbWUoc3RhdGUsIG5vZGUubmFtZSwgdHJ1ZSlcbiAgY29uc3QgcHJvcHMgPSBjcmVhdGVKc3hFbGVtZW50UHJvcHMoc3RhdGUsIG5vZGUpXG4gIGNvbnN0IGNoaWxkcmVuID0gY3JlYXRlQ2hpbGRyZW4oc3RhdGUsIG5vZGUpXG5cbiAgYWRkTm9kZShzdGF0ZSwgcHJvcHMsIHR5cGUsIG5vZGUpXG4gIGFkZENoaWxkcmVuKHByb3BzLCBjaGlsZHJlbilcblxuICAvLyBSZXN0b3JlLlxuICBzdGF0ZS5hbmNlc3RvcnMucG9wKClcbiAgc3RhdGUuc2NoZW1hID0gcGFyZW50U2NoZW1hXG5cbiAgcmV0dXJuIHN0YXRlLmNyZWF0ZShub2RlLCB0eXBlLCBwcm9wcywga2V5KVxufVxuXG4vKipcbiAqIEhhbmRsZSByb290LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7Um9vdH0gbm9kZVxuICogICBDdXJyZW50IG5vZGUuXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0ga2V5XG4gKiAgIEtleS5cbiAqIEByZXR1cm5zIHtDaGlsZCB8IHVuZGVmaW5lZH1cbiAqICAgQ2hpbGQsIG9wdGlvbmFsLlxuICovXG5mdW5jdGlvbiByb290KHN0YXRlLCBub2RlLCBrZXkpIHtcbiAgLyoqIEB0eXBlIHtQcm9wc30gKi9cbiAgY29uc3QgcHJvcHMgPSB7fVxuXG4gIGFkZENoaWxkcmVuKHByb3BzLCBjcmVhdGVDaGlsZHJlbihzdGF0ZSwgbm9kZSkpXG5cbiAgcmV0dXJuIHN0YXRlLmNyZWF0ZShub2RlLCBzdGF0ZS5GcmFnbWVudCwgcHJvcHMsIGtleSlcbn1cblxuLyoqXG4gKiBIYW5kbGUgdGV4dC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBfXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7VGV4dH0gbm9kZVxuICogICBDdXJyZW50IG5vZGUuXG4gKiBAcmV0dXJucyB7Q2hpbGQgfCB1bmRlZmluZWR9XG4gKiAgIENoaWxkLCBvcHRpb25hbC5cbiAqL1xuZnVuY3Rpb24gdGV4dChfLCBub2RlKSB7XG4gIHJldHVybiBub2RlLnZhbHVlXG59XG5cbi8qKlxuICogQWRkIGBub2RlYCB0byBwcm9wcy5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge1Byb3BzfSBwcm9wc1xuICogICBQcm9wcy5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdHlwZVxuICogICBUeXBlLlxuICogQHBhcmFtIHtFbGVtZW50IHwgTWR4SnN4Rmxvd0VsZW1lbnQgfCBNZHhKc3hUZXh0RWxlbWVudH0gbm9kZVxuICogICBOb2RlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYWRkTm9kZShzdGF0ZSwgcHJvcHMsIHR5cGUsIG5vZGUpIHtcbiAgLy8gSWYgdGhpcyBpcyBzd2FwcGVkIG91dCBmb3IgYSBjb21wb25lbnQ6XG4gIGlmICh0eXBlb2YgdHlwZSAhPT0gJ3N0cmluZycgJiYgdHlwZSAhPT0gc3RhdGUuRnJhZ21lbnQgJiYgc3RhdGUucGFzc05vZGUpIHtcbiAgICBwcm9wcy5ub2RlID0gbm9kZVxuICB9XG59XG5cbi8qKlxuICogQWRkIGNoaWxkcmVuIHRvIHByb3BzLlxuICpcbiAqIEBwYXJhbSB7UHJvcHN9IHByb3BzXG4gKiAgIFByb3BzLlxuICogQHBhcmFtIHtBcnJheTxDaGlsZD59IGNoaWxkcmVuXG4gKiAgIENoaWxkcmVuLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYWRkQ2hpbGRyZW4ocHJvcHMsIGNoaWxkcmVuKSB7XG4gIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgdmFsdWUgPSBjaGlsZHJlbi5sZW5ndGggPiAxID8gY2hpbGRyZW4gOiBjaGlsZHJlblswXVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBwcm9wcy5jaGlsZHJlbiA9IHZhbHVlXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IF9cbiAqICAgUGF0aCB0byBmaWxlLlxuICogQHBhcmFtIHtKc3h9IGpzeFxuICogICBEeW5hbWljLlxuICogQHBhcmFtIHtKc3h9IGpzeHNcbiAqICAgU3RhdGljLlxuICogQHJldHVybnMge0NyZWF0ZX1cbiAqICAgQ3JlYXRlIGEgcHJvZHVjdGlvbiBlbGVtZW50LlxuICovXG5mdW5jdGlvbiBwcm9kdWN0aW9uQ3JlYXRlKF8sIGpzeCwganN4cykge1xuICByZXR1cm4gY3JlYXRlXG4gIC8qKiBAdHlwZSB7Q3JlYXRlfSAqL1xuICBmdW5jdGlvbiBjcmVhdGUoXywgdHlwZSwgcHJvcHMsIGtleSkge1xuICAgIC8vIE9ubHkgYW4gYXJyYXkgd2hlbiB0aGVyZSBhcmUgMiBvciBtb3JlIGNoaWxkcmVuLlxuICAgIGNvbnN0IGlzU3RhdGljQ2hpbGRyZW4gPSBBcnJheS5pc0FycmF5KHByb3BzLmNoaWxkcmVuKVxuICAgIGNvbnN0IGZuID0gaXNTdGF0aWNDaGlsZHJlbiA/IGpzeHMgOiBqc3hcbiAgICByZXR1cm4ga2V5ID8gZm4odHlwZSwgcHJvcHMsIGtleSkgOiBmbih0eXBlLCBwcm9wcylcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBmaWxlUGF0aFxuICogICBQYXRoIHRvIGZpbGUuXG4gKiBAcGFyYW0ge0pzeERldn0ganN4REVWXG4gKiAgIERldmVsb3BtZW50LlxuICogQHJldHVybnMge0NyZWF0ZX1cbiAqICAgQ3JlYXRlIGEgZGV2ZWxvcG1lbnQgZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gZGV2ZWxvcG1lbnRDcmVhdGUoZmlsZVBhdGgsIGpzeERFVikge1xuICByZXR1cm4gY3JlYXRlXG4gIC8qKiBAdHlwZSB7Q3JlYXRlfSAqL1xuICBmdW5jdGlvbiBjcmVhdGUobm9kZSwgdHlwZSwgcHJvcHMsIGtleSkge1xuICAgIC8vIE9ubHkgYW4gYXJyYXkgd2hlbiB0aGVyZSBhcmUgMiBvciBtb3JlIGNoaWxkcmVuLlxuICAgIGNvbnN0IGlzU3RhdGljQ2hpbGRyZW4gPSBBcnJheS5pc0FycmF5KHByb3BzLmNoaWxkcmVuKVxuICAgIGNvbnN0IHBvaW50ID0gcG9pbnRTdGFydChub2RlKVxuICAgIHJldHVybiBqc3hERVYoXG4gICAgICB0eXBlLFxuICAgICAgcHJvcHMsXG4gICAgICBrZXksXG4gICAgICBpc1N0YXRpY0NoaWxkcmVuLFxuICAgICAge1xuICAgICAgICBjb2x1bW5OdW1iZXI6IHBvaW50ID8gcG9pbnQuY29sdW1uIC0gMSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZmlsZU5hbWU6IGZpbGVQYXRoLFxuICAgICAgICBsaW5lTnVtYmVyOiBwb2ludCA/IHBvaW50LmxpbmUgOiB1bmRlZmluZWRcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWRcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgcHJvcHMgZnJvbSBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBDdXJyZW50IGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7UHJvcHN9XG4gKiAgIFByb3BzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50UHJvcHMoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtQcm9wc30gKi9cbiAgY29uc3QgcHJvcHMgPSB7fVxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGFsaWduVmFsdWVcbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBwcm9wXG5cbiAgZm9yIChwcm9wIGluIG5vZGUucHJvcGVydGllcykge1xuICAgIGlmIChwcm9wICE9PSAnY2hpbGRyZW4nICYmIG93bi5jYWxsKG5vZGUucHJvcGVydGllcywgcHJvcCkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNyZWF0ZVByb3BlcnR5KHN0YXRlLCBwcm9wLCBub2RlLnByb3BlcnRpZXNbcHJvcF0pXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gcmVzdWx0XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHN0YXRlLnRhYmxlQ2VsbEFsaWduVG9TdHlsZSAmJlxuICAgICAgICAgIGtleSA9PT0gJ2FsaWduJyAmJlxuICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICB0YWJsZUNlbGxFbGVtZW50Lmhhcyhub2RlLnRhZ05hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIGFsaWduVmFsdWUgPSB2YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb3BzW2tleV0gPSB2YWx1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGFsaWduVmFsdWUpIHtcbiAgICAvLyBBc3N1bWUgc3R5bGUgaXMgYW4gb2JqZWN0LlxuICAgIGNvbnN0IHN0eWxlID0gLyoqIEB0eXBlIHtTdHlsZX0gKi8gKHByb3BzLnN0eWxlIHx8IChwcm9wcy5zdHlsZSA9IHt9KSlcbiAgICBzdHlsZVtzdGF0ZS5zdHlsZVByb3BlcnR5TmFtZUNhc2UgPT09ICdjc3MnID8gJ3RleHQtYWxpZ24nIDogJ3RleHRBbGlnbiddID1cbiAgICAgIGFsaWduVmFsdWVcbiAgfVxuXG4gIHJldHVybiBwcm9wc1xufVxuXG4vKipcbiAqIENyZWF0ZSBwcm9wcyBmcm9tIGEgSlNYIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtNZHhKc3hGbG93RWxlbWVudCB8IE1keEpzeFRleHRFbGVtZW50fSBub2RlXG4gKiAgIEN1cnJlbnQgSlNYIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7UHJvcHN9XG4gKiAgIFByb3BzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVKc3hFbGVtZW50UHJvcHMoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtQcm9wc30gKi9cbiAgY29uc3QgcHJvcHMgPSB7fVxuXG4gIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIG5vZGUuYXR0cmlidXRlcykge1xuICAgIGlmIChhdHRyaWJ1dGUudHlwZSA9PT0gJ21keEpzeEV4cHJlc3Npb25BdHRyaWJ1dGUnKSB7XG4gICAgICBpZiAoYXR0cmlidXRlLmRhdGEgJiYgYXR0cmlidXRlLmRhdGEuZXN0cmVlICYmIHN0YXRlLmV2YWx1YXRlcikge1xuICAgICAgICBjb25zdCBwcm9ncmFtID0gYXR0cmlidXRlLmRhdGEuZXN0cmVlXG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBwcm9ncmFtLmJvZHlbMF1cbiAgICAgICAgYXNzZXJ0KGV4cHJlc3Npb24udHlwZSA9PT0gJ0V4cHJlc3Npb25TdGF0ZW1lbnQnKVxuICAgICAgICBjb25zdCBvYmplY3RFeHByZXNzaW9uID0gZXhwcmVzc2lvbi5leHByZXNzaW9uXG4gICAgICAgIGFzc2VydChvYmplY3RFeHByZXNzaW9uLnR5cGUgPT09ICdPYmplY3RFeHByZXNzaW9uJylcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBvYmplY3RFeHByZXNzaW9uLnByb3BlcnRpZXNbMF1cbiAgICAgICAgYXNzZXJ0KHByb3BlcnR5LnR5cGUgPT09ICdTcHJlYWRFbGVtZW50JylcblxuICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHByb3BzLFxuICAgICAgICAgIHN0YXRlLmV2YWx1YXRlci5ldmFsdWF0ZUV4cHJlc3Npb24ocHJvcGVydHkuYXJndW1lbnQpXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNyYXNoRXN0cmVlKHN0YXRlLCBub2RlLnBvc2l0aW9uKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGb3IgSlNYLCB0aGUgYXV0aG9yIGlzIHJlc3BvbnNpYmxlIG9mIHBhc3NpbmcgaW4gdGhlIGNvcnJlY3QgdmFsdWVzLlxuICAgICAgY29uc3QgbmFtZSA9IGF0dHJpYnV0ZS5uYW1lXG4gICAgICAvKiogQHR5cGUge3Vua25vd259ICovXG4gICAgICBsZXQgdmFsdWVcblxuICAgICAgaWYgKGF0dHJpYnV0ZS52YWx1ZSAmJiB0eXBlb2YgYXR0cmlidXRlLnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYXR0cmlidXRlLnZhbHVlLmRhdGEgJiZcbiAgICAgICAgICBhdHRyaWJ1dGUudmFsdWUuZGF0YS5lc3RyZWUgJiZcbiAgICAgICAgICBzdGF0ZS5ldmFsdWF0ZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGF0dHJpYnV0ZS52YWx1ZS5kYXRhLmVzdHJlZVxuICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBwcm9ncmFtLmJvZHlbMF1cbiAgICAgICAgICBhc3NlcnQoZXhwcmVzc2lvbi50eXBlID09PSAnRXhwcmVzc2lvblN0YXRlbWVudCcpXG4gICAgICAgICAgdmFsdWUgPSBzdGF0ZS5ldmFsdWF0ZXIuZXZhbHVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24uZXhwcmVzc2lvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjcmFzaEVzdHJlZShzdGF0ZSwgbm9kZS5wb3NpdGlvbilcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSBhdHRyaWJ1dGUudmFsdWUgPT09IG51bGwgPyB0cnVlIDogYXR0cmlidXRlLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIC8vIEFzc3VtZSBhIHByb3AuXG4gICAgICBwcm9wc1tuYW1lXSA9IC8qKiBAdHlwZSB7UHJvcHNba2V5b2YgUHJvcHNdfSAqLyAodmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbi8qKlxuICogQ3JlYXRlIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7UGFyZW50c30gbm9kZVxuICogICBDdXJyZW50IGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7QXJyYXk8Q2hpbGQ+fVxuICogICBDaGlsZHJlbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2hpbGRyZW4oc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxDaGlsZD59ICovXG4gIGNvbnN0IGNoaWxkcmVuID0gW11cbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtNYXA8c3RyaW5nLCBudW1iZXI+fSAqL1xuICAvLyBOb3RlOiB0ZXN0IHRoaXMgd2hlbiBTb2xpZCBkb2VzbuKAmXQgd2FudCB0byBtZXJnZSBteSB1cGNvbWluZyBQUi5cbiAgLyogYzggaWdub3JlIG5leHQgKi9cbiAgY29uc3QgY291bnRzQnlOYW1lID0gc3RhdGUucGFzc0tleXMgPyBuZXcgTWFwKCkgOiBlbXB0eU1hcFxuXG4gIHdoaWxlICgrK2luZGV4IDwgbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baW5kZXhdXG4gICAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IGtleVxuXG4gICAgaWYgKHN0YXRlLnBhc3NLZXlzKSB7XG4gICAgICBjb25zdCBuYW1lID1cbiAgICAgICAgY2hpbGQudHlwZSA9PT0gJ2VsZW1lbnQnXG4gICAgICAgICAgPyBjaGlsZC50YWdOYW1lXG4gICAgICAgICAgOiBjaGlsZC50eXBlID09PSAnbWR4SnN4Rmxvd0VsZW1lbnQnIHx8XG4gICAgICAgICAgICAgIGNoaWxkLnR5cGUgPT09ICdtZHhKc3hUZXh0RWxlbWVudCdcbiAgICAgICAgICAgID8gY2hpbGQubmFtZVxuICAgICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgY29uc3QgY291bnQgPSBjb3VudHNCeU5hbWUuZ2V0KG5hbWUpIHx8IDBcbiAgICAgICAga2V5ID0gbmFtZSArICctJyArIGNvdW50XG4gICAgICAgIGNvdW50c0J5TmFtZS5zZXQobmFtZSwgY291bnQgKyAxKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IG9uZShzdGF0ZSwgY2hpbGQsIGtleSlcbiAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIGNoaWxkcmVuLnB1c2gocmVzdWx0KVxuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuXG59XG5cbi8qKlxuICogSGFuZGxlIGEgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BcbiAqICAgS2V5LlxuICogQHBhcmFtIHtBcnJheTxudW1iZXIgfCBzdHJpbmc+IHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gKiAgIGhhc3QgcHJvcGVydHkgdmFsdWUuXG4gKiBAcmV0dXJucyB7RmllbGQgfCB1bmRlZmluZWR9XG4gKiAgIEZpZWxkIGZvciBydW50aW1lLCBvcHRpb25hbC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUHJvcGVydHkoc3RhdGUsIHByb3AsIHZhbHVlKSB7XG4gIGNvbnN0IGluZm8gPSBmaW5kKHN0YXRlLnNjaGVtYSwgcHJvcClcblxuICAvLyBJZ25vcmUgbnVsbGlzaCBhbmQgYE5hTmAgdmFsdWVzLlxuICBpZiAoXG4gICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzTmFOKHZhbHVlKSlcbiAgKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAvLyBBY2NlcHQgYGFycmF5YC5cbiAgICAvLyBNb3N0IHByb3BzIGFyZSBzcGFjZS1zZXBhcmF0ZWQuXG4gICAgdmFsdWUgPSBpbmZvLmNvbW1hU2VwYXJhdGVkID8gY29tbWFzKHZhbHVlKSA6IHNwYWNlcyh2YWx1ZSlcbiAgfVxuXG4gIC8vIFJlYWN0IG9ubHkgYWNjZXB0cyBgc3R5bGVgIGFzIG9iamVjdC5cbiAgaWYgKGluZm8ucHJvcGVydHkgPT09ICdzdHlsZScpIHtcbiAgICBsZXQgc3R5bGVPYmplY3QgPVxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyA/IHZhbHVlIDogcGFyc2VTdHlsZShzdGF0ZSwgU3RyaW5nKHZhbHVlKSlcblxuICAgIGlmIChzdGF0ZS5zdHlsZVByb3BlcnR5TmFtZUNhc2UgPT09ICdjc3MnKSB7XG4gICAgICBzdHlsZU9iamVjdCA9IHRyYW5zZm9ybVN0eWxlc1RvQ3NzQ2FzaW5nKHN0eWxlT2JqZWN0KVxuICAgIH1cblxuICAgIHJldHVybiBbJ3N0eWxlJywgc3R5bGVPYmplY3RdXG4gIH1cblxuICByZXR1cm4gW1xuICAgIHN0YXRlLmVsZW1lbnRBdHRyaWJ1dGVOYW1lQ2FzZSA9PT0gJ3JlYWN0JyAmJiBpbmZvLnNwYWNlXG4gICAgICA/IGhhc3RUb1JlYWN0W2luZm8ucHJvcGVydHldIHx8IGluZm8ucHJvcGVydHlcbiAgICAgIDogaW5mby5hdHRyaWJ1dGUsXG4gICAgdmFsdWVcbiAgXVxufVxuXG4vKipcbiAqIFBhcnNlIGEgQ1NTIGRlY2xhcmF0aW9uIHRvIGFuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgQ1NTIGRlY2xhcmF0aW9ucy5cbiAqIEByZXR1cm5zIHtTdHlsZX1cbiAqICAgUHJvcGVydGllcy5cbiAqIEB0aHJvd3NcbiAqICAgVGhyb3dzIGBWRmlsZU1lc3NhZ2VgIHdoZW4gQ1NTIGNhbm5vdCBiZSBwYXJzZWQuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlU3R5bGUoc3RhdGUsIHZhbHVlKSB7XG4gIC8qKiBAdHlwZSB7U3R5bGV9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHt9XG5cbiAgdHJ5IHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBgc3R5bGUtdG8tb2JqZWN0YCB0eXBlcyBhcmUgYnJva2VuLlxuICAgIHN0eWxlVG9PYmplY3QodmFsdWUsIHJlcGxhY2VyKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmICghc3RhdGUuaWdub3JlSW52YWxpZFN0eWxlKSB7XG4gICAgICBjb25zdCBjYXVzZSA9IC8qKiBAdHlwZSB7RXJyb3J9ICovIChlcnJvcilcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVkZpbGVNZXNzYWdlKCdDYW5ub3QgcGFyc2UgYHN0eWxlYCBhdHRyaWJ1dGUnLCB7XG4gICAgICAgIGFuY2VzdG9yczogc3RhdGUuYW5jZXN0b3JzLFxuICAgICAgICBjYXVzZSxcbiAgICAgICAgcnVsZUlkOiAnc3R5bGUnLFxuICAgICAgICBzb3VyY2U6ICdoYXN0LXV0aWwtdG8tanN4LXJ1bnRpbWUnXG4gICAgICB9KVxuICAgICAgbWVzc2FnZS5maWxlID0gc3RhdGUuZmlsZVBhdGggfHwgdW5kZWZpbmVkXG4gICAgICBtZXNzYWdlLnVybCA9IGRvY3MgKyAnI2Nhbm5vdC1wYXJzZS1zdHlsZS1hdHRyaWJ1dGUnXG5cbiAgICAgIHRocm93IG1lc3NhZ2VcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG5cbiAgLyoqXG4gICAqIEFkZCBhIENTUyBwcm9wZXJ0eSAobm9ybWFsLCBzbyB3aXRoIGRhc2hlcykgdG8gYHJlc3VsdGAgYXMgYSBET00gQ1NTXG4gICAqIHByb3BlcnR5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiAgIEtleS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqICAgVmFsdWVcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gcmVwbGFjZXIobmFtZSwgdmFsdWUpIHtcbiAgICBsZXQga2V5ID0gbmFtZVxuXG4gICAgaWYgKGtleS5zbGljZSgwLCAyKSAhPT0gJy0tJykge1xuICAgICAgaWYgKGtleS5zbGljZSgwLCA0KSA9PT0gJy1tcy0nKSBrZXkgPSAnbXMtJyArIGtleS5zbGljZSg0KVxuICAgICAga2V5ID0ga2V5LnJlcGxhY2UoZGFzaFNvbWV0aGluZywgdG9DYW1lbClcbiAgICB9XG5cbiAgICByZXN1bHRba2V5XSA9IHZhbHVlXG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBKU1ggbmFtZSBmcm9tIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIFRvIGRvLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgTmFtZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsb3dFeHByZXNzaW9uXG4gKiAgIEFsbG93IG1lbWJlciBleHByZXNzaW9ucyBhbmQgaWRlbnRpZmllcnMuXG4gKiBAcmV0dXJucyB7dW5rbm93bn1cbiAqICAgVG8gZG8uXG4gKi9cbmZ1bmN0aW9uIGZpbmRDb21wb25lbnRGcm9tTmFtZShzdGF0ZSwgbmFtZSwgYWxsb3dFeHByZXNzaW9uKSB7XG4gIC8qKiBAdHlwZSB7SWRlbnRpZmllciB8IExpdGVyYWwgfCBNZW1iZXJFeHByZXNzaW9ufSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgaWYgKCFhbGxvd0V4cHJlc3Npb24pIHtcbiAgICByZXN1bHQgPSB7dHlwZTogJ0xpdGVyYWwnLCB2YWx1ZTogbmFtZX1cbiAgfSBlbHNlIGlmIChuYW1lLmluY2x1ZGVzKCcuJykpIHtcbiAgICBjb25zdCBpZGVudGlmaWVycyA9IG5hbWUuc3BsaXQoJy4nKVxuICAgIGxldCBpbmRleCA9IC0xXG4gICAgLyoqIEB0eXBlIHtJZGVudGlmaWVyIHwgTGl0ZXJhbCB8IE1lbWJlckV4cHJlc3Npb24gfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IG5vZGVcblxuICAgIHdoaWxlICgrK2luZGV4IDwgaWRlbnRpZmllcnMubGVuZ3RoKSB7XG4gICAgICAvKiogQHR5cGUge0lkZW50aWZpZXIgfCBMaXRlcmFsfSAqL1xuICAgICAgY29uc3QgcHJvcCA9IGlzSWRlbnRpZmllck5hbWUoaWRlbnRpZmllcnNbaW5kZXhdKVxuICAgICAgICA/IHt0eXBlOiAnSWRlbnRpZmllcicsIG5hbWU6IGlkZW50aWZpZXJzW2luZGV4XX1cbiAgICAgICAgOiB7dHlwZTogJ0xpdGVyYWwnLCB2YWx1ZTogaWRlbnRpZmllcnNbaW5kZXhdfVxuICAgICAgbm9kZSA9IG5vZGVcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB0eXBlOiAnTWVtYmVyRXhwcmVzc2lvbicsXG4gICAgICAgICAgICBvYmplY3Q6IG5vZGUsXG4gICAgICAgICAgICBwcm9wZXJ0eTogcHJvcCxcbiAgICAgICAgICAgIGNvbXB1dGVkOiBCb29sZWFuKGluZGV4ICYmIHByb3AudHlwZSA9PT0gJ0xpdGVyYWwnKSxcbiAgICAgICAgICAgIG9wdGlvbmFsOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgOiBwcm9wXG4gICAgfVxuXG4gICAgYXNzZXJ0KG5vZGUsICdhbHdheXMgYSByZXN1bHQnKVxuICAgIHJlc3VsdCA9IG5vZGVcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPVxuICAgICAgaXNJZGVudGlmaWVyTmFtZShuYW1lKSAmJiAhL15bYS16XS8udGVzdChuYW1lKVxuICAgICAgICA/IHt0eXBlOiAnSWRlbnRpZmllcicsIG5hbWV9XG4gICAgICAgIDoge3R5cGU6ICdMaXRlcmFsJywgdmFsdWU6IG5hbWV9XG4gIH1cblxuICAvLyBPbmx5IGxpdGVyYWxzIGNhbiBiZSBwYXNzZWQgaW4gYGNvbXBvbmVudHNgIGN1cnJlbnRseS5cbiAgLy8gTm8gaWRlbnRpZmllcnMgLyBtZW1iZXIgZXhwcmVzc2lvbnMuXG4gIGlmIChyZXN1bHQudHlwZSA9PT0gJ0xpdGVyYWwnKSB7XG4gICAgY29uc3QgbmFtZSA9IC8qKiBAdHlwZSB7a2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzfSAqLyAocmVzdWx0LnZhbHVlKVxuXG4gICAgcmV0dXJuIG93bi5jYWxsKHN0YXRlLmNvbXBvbmVudHMsIG5hbWUpID8gc3RhdGUuY29tcG9uZW50c1tuYW1lXSA6IG5hbWVcbiAgfVxuXG4gIC8vIEFzc3VtZSBjb21wb25lbnQuXG4gIGlmIChzdGF0ZS5ldmFsdWF0ZXIpIHtcbiAgICByZXR1cm4gc3RhdGUuZXZhbHVhdGVyLmV2YWx1YXRlRXhwcmVzc2lvbihyZXN1bHQpXG4gIH1cblxuICBjcmFzaEVzdHJlZShzdGF0ZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtQb3NpdGlvbiB8IHVuZGVmaW5lZH0gW3BsYWNlXVxuICogQHJldHVybnMge25ldmVyfVxuICovXG5mdW5jdGlvbiBjcmFzaEVzdHJlZShzdGF0ZSwgcGxhY2UpIHtcbiAgY29uc3QgbWVzc2FnZSA9IG5ldyBWRmlsZU1lc3NhZ2UoXG4gICAgJ0Nhbm5vdCBoYW5kbGUgTURYIGVzdHJlZXMgd2l0aG91dCBgY3JlYXRlRXZhbHVhdGVyYCcsXG4gICAge1xuICAgICAgYW5jZXN0b3JzOiBzdGF0ZS5hbmNlc3RvcnMsXG4gICAgICBwbGFjZSxcbiAgICAgIHJ1bGVJZDogJ21keC1lc3RyZWUnLFxuICAgICAgc291cmNlOiAnaGFzdC11dGlsLXRvLWpzeC1ydW50aW1lJ1xuICAgIH1cbiAgKVxuICBtZXNzYWdlLmZpbGUgPSBzdGF0ZS5maWxlUGF0aCB8fCB1bmRlZmluZWRcbiAgbWVzc2FnZS51cmwgPSBkb2NzICsgJyNjYW5ub3QtaGFuZGxlLW1keC1lc3RyZWVzLXdpdGhvdXQtY3JlYXRlZXZhbHVhdGVyJ1xuXG4gIHRocm93IG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBET00gY2FzaW5nIHN0eWxlIG9iamVjdCB0byBhIENTUyBjYXNpbmcgc3R5bGUgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7U3R5bGV9IGRvbUNhc2luZ1xuICogQHJldHVybnMge1N0eWxlfVxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1TdHlsZXNUb0Nzc0Nhc2luZyhkb21DYXNpbmcpIHtcbiAgLyoqIEB0eXBlIHtTdHlsZX0gKi9cbiAgY29uc3QgY3NzQ2FzaW5nID0ge31cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBmcm9tXG5cbiAgZm9yIChmcm9tIGluIGRvbUNhc2luZykge1xuICAgIGlmIChvd24uY2FsbChkb21DYXNpbmcsIGZyb20pKSB7XG4gICAgICBjc3NDYXNpbmdbdHJhbnNmb3JtU3R5bGVUb0Nzc0Nhc2luZyhmcm9tKV0gPSBkb21DYXNpbmdbZnJvbV1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3NzQ2FzaW5nXG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGEgRE9NIGNhc2luZyBzdHlsZSBmaWVsZCB0byBhIENTUyBjYXNpbmcgc3R5bGUgZmllbGQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGZyb21cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybVN0eWxlVG9Dc3NDYXNpbmcoZnJvbSkge1xuICBsZXQgdG8gPSBmcm9tLnJlcGxhY2UoY2FwLCB0b0Rhc2gpXG4gIC8vIEhhbmRsZSBgbXMteHh4YCAtPiBgLW1zLXh4eGAuXG4gIGlmICh0by5zbGljZSgwLCAzKSA9PT0gJ21zLScpIHRvID0gJy0nICsgdG9cbiAgcmV0dXJuIHRvXG59XG5cbi8qKlxuICogTWFrZSBgJDFgIGNhcGl0YWxpemVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBfXG4gKiAgIFdoYXRldmVyLlxuICogQHBhcmFtIHtzdHJpbmd9ICQxXG4gKiAgIFNpbmdsZSBBU0NJSSBhbHBoYWJldGljYWwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDYXBpdGFsaXplZCBgJDFgLlxuICovXG5mdW5jdGlvbiB0b0NhbWVsKF8sICQxKSB7XG4gIHJldHVybiAkMS50b1VwcGVyQ2FzZSgpXG59XG5cbi8qKlxuICogTWFrZSBgJDBgIGRhc2ggY2FzZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiAgIENhcGl0YWxpemVkIEFTQ0lJIGxldGVyLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRGFzaCBhbmQgbG93ZXIgbGV0dGVyLlxuICovXG5mdW5jdGlvbiB0b0Rhc2goJDApIHtcbiAgcmV0dXJuICctJyArICQwLnRvTG93ZXJDYXNlKClcbn1cbiJdLCJuYW1lcyI6WyJzdHJpbmdpZnkiLCJjb21tYXMiLCJvayIsImFzc2VydCIsIm5hbWUiLCJpc0lkZW50aWZpZXJOYW1lIiwid2hpdGVzcGFjZSIsImZpbmQiLCJoYXN0VG9SZWFjdCIsImh0bWwiLCJzdmciLCJzcGFjZXMiLCJzdHlsZVRvT2JqZWN0IiwicG9pbnRTdGFydCIsIlZGaWxlTWVzc2FnZSIsIm93biIsImhhc093blByb3BlcnR5IiwiZW1wdHlNYXAiLCJNYXAiLCJjYXAiLCJkYXNoU29tZXRoaW5nIiwidGFibGVFbGVtZW50cyIsIlNldCIsInRhYmxlQ2VsbEVsZW1lbnQiLCJkb2NzIiwidG9Kc3hSdW50aW1lIiwidHJlZSIsIm9wdGlvbnMiLCJGcmFnbWVudCIsInVuZGVmaW5lZCIsIlR5cGVFcnJvciIsImZpbGVQYXRoIiwiY3JlYXRlIiwiZGV2ZWxvcG1lbnQiLCJqc3hERVYiLCJkZXZlbG9wbWVudENyZWF0ZSIsImpzeCIsImpzeHMiLCJwcm9kdWN0aW9uQ3JlYXRlIiwic3RhdGUiLCJhbmNlc3RvcnMiLCJjb21wb25lbnRzIiwiZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlIiwiZXZhbHVhdGVyIiwiY3JlYXRlRXZhbHVhdGVyIiwiaWdub3JlSW52YWxpZFN0eWxlIiwicGFzc0tleXMiLCJwYXNzTm9kZSIsInNjaGVtYSIsInNwYWNlIiwic3R5bGVQcm9wZXJ0eU5hbWVDYXNlIiwidGFibGVDZWxsQWxpZ25Ub1N0eWxlIiwicmVzdWx0Iiwib25lIiwiY2hpbGRyZW4iLCJub2RlIiwia2V5IiwidHlwZSIsImVsZW1lbnQiLCJtZHhFeHByZXNzaW9uIiwibWR4SnN4RWxlbWVudCIsIm1keEVzbSIsInJvb3QiLCJ0ZXh0IiwicGFyZW50U2NoZW1hIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwicHVzaCIsImZpbmRDb21wb25lbnRGcm9tTmFtZSIsInByb3BzIiwiY3JlYXRlRWxlbWVudFByb3BzIiwiY3JlYXRlQ2hpbGRyZW4iLCJoYXMiLCJmaWx0ZXIiLCJjaGlsZCIsImFkZE5vZGUiLCJhZGRDaGlsZHJlbiIsInBvcCIsImRhdGEiLCJlc3RyZWUiLCJwcm9ncmFtIiwiZXhwcmVzc2lvbiIsImJvZHkiLCJldmFsdWF0ZUV4cHJlc3Npb24iLCJjcmFzaEVzdHJlZSIsInBvc2l0aW9uIiwiZXZhbHVhdGVQcm9ncmFtIiwiY3JlYXRlSnN4RWxlbWVudFByb3BzIiwiXyIsInZhbHVlIiwibGVuZ3RoIiwiaXNTdGF0aWNDaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsImZuIiwicG9pbnQiLCJjb2x1bW5OdW1iZXIiLCJjb2x1bW4iLCJmaWxlTmFtZSIsImxpbmVOdW1iZXIiLCJsaW5lIiwiYWxpZ25WYWx1ZSIsInByb3AiLCJwcm9wZXJ0aWVzIiwiY2FsbCIsImNyZWF0ZVByb3BlcnR5Iiwic3R5bGUiLCJhdHRyaWJ1dGUiLCJhdHRyaWJ1dGVzIiwib2JqZWN0RXhwcmVzc2lvbiIsInByb3BlcnR5IiwiT2JqZWN0IiwiYXNzaWduIiwiYXJndW1lbnQiLCJpbmRleCIsImNvdW50c0J5TmFtZSIsImNvdW50IiwiZ2V0Iiwic2V0IiwiaW5mbyIsIk51bWJlciIsImlzTmFOIiwiY29tbWFTZXBhcmF0ZWQiLCJzdHlsZU9iamVjdCIsInBhcnNlU3R5bGUiLCJTdHJpbmciLCJ0cmFuc2Zvcm1TdHlsZXNUb0Nzc0Nhc2luZyIsInJlcGxhY2VyIiwiZXJyb3IiLCJjYXVzZSIsIm1lc3NhZ2UiLCJydWxlSWQiLCJzb3VyY2UiLCJmaWxlIiwidXJsIiwic2xpY2UiLCJyZXBsYWNlIiwidG9DYW1lbCIsImFsbG93RXhwcmVzc2lvbiIsImluY2x1ZGVzIiwiaWRlbnRpZmllcnMiLCJzcGxpdCIsIm9iamVjdCIsImNvbXB1dGVkIiwiQm9vbGVhbiIsIm9wdGlvbmFsIiwidGVzdCIsInBsYWNlIiwiZG9tQ2FzaW5nIiwiY3NzQ2FzaW5nIiwiZnJvbSIsInRyYW5zZm9ybVN0eWxlVG9Dc3NDYXNpbmciLCJ0byIsInRvRGFzaCIsIiQxIiwidG9VcHBlckNhc2UiLCIkMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/hast-util-to-jsx-runtime/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/hast-util-whitespace/lib/index.js":
-/*!************************************************************!*\
- !*** ../../node_modules/hast-util-whitespace/lib/index.js ***!
- \************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ whitespace: () => (/* binding */ whitespace)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Nodes} Nodes\n */ // HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g;\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */ function whitespace(thing) {\n return typeof thing === \"object\" ? thing.type === \"text\" ? empty(thing.value) : false : empty(thing);\n}\n/**\n * @param {string} value\n * @returns {boolean}\n */ function empty(value) {\n return value.replace(re, \"\") === \"\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC13aGl0ZXNwYWNlL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0NBRUMsR0FFRCw4QkFBOEI7QUFDOUIseURBQXlEO0FBQ3pELE1BQU1BLEtBQUs7QUFFWDs7Ozs7Ozs7OztDQVVDLEdBQ00sU0FBU0MsV0FBV0MsS0FBSztJQUM5QixPQUFPLE9BQU9BLFVBQVUsV0FDcEJBLE1BQU1DLElBQUksS0FBSyxTQUNiQyxNQUFNRixNQUFNRyxLQUFLLElBQ2pCLFFBQ0ZELE1BQU1GO0FBQ1o7QUFFQTs7O0NBR0MsR0FDRCxTQUFTRSxNQUFNQyxLQUFLO0lBQ2xCLE9BQU9BLE1BQU1DLE9BQU8sQ0FBQ04sSUFBSSxRQUFRO0FBQ25DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXdoaXRlc3BhY2UvbGliL2luZGV4LmpzPzYzNjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKi9cblxuLy8gSFRNTCB3aGl0ZXNwYWNlIGV4cHJlc3Npb24uXG4vLyBTZWUgPGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNhc2NpaS13aGl0ZXNwYWNlPi5cbmNvbnN0IHJlID0gL1sgXFx0XFxuXFxmXFxyXS9nXG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIHZhbHVlIGlzICppbnRlci1lbGVtZW50IHdoaXRlc3BhY2UqLlxuICpcbiAqIEBwYXJhbSB7Tm9kZXMgfCBzdHJpbmd9IHRoaW5nXG4gKiAgIFRoaW5nIHRvIGNoZWNrIChgTm9kZWAgb3IgYHN0cmluZ2ApLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGB2YWx1ZWAgaXMgaW50ZXItZWxlbWVudCB3aGl0ZXNwYWNlIChgYm9vbGVhbmApOiBjb25zaXN0aW5nIG9mXG4gKiAgIHplcm8gb3IgbW9yZSBvZiBzcGFjZSwgdGFiIChgXFx0YCksIGxpbmUgZmVlZCAoYFxcbmApLCBjYXJyaWFnZSByZXR1cm5cbiAqICAgKGBcXHJgKSwgb3IgZm9ybSBmZWVkIChgXFxmYCk7IGlmIGEgbm9kZSBpcyBwYXNzZWQgaXQgbXVzdCBiZSBhIGBUZXh0YCBub2RlLFxuICogICB3aG9zZSBgdmFsdWVgIGZpZWxkIGlzIGNoZWNrZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGl0ZXNwYWNlKHRoaW5nKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpbmcgPT09ICdvYmplY3QnXG4gICAgPyB0aGluZy50eXBlID09PSAndGV4dCdcbiAgICAgID8gZW1wdHkodGhpbmcudmFsdWUpXG4gICAgICA6IGZhbHNlXG4gICAgOiBlbXB0eSh0aGluZylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBlbXB0eSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZShyZSwgJycpID09PSAnJ1xufVxuIl0sIm5hbWVzIjpbInJlIiwid2hpdGVzcGFjZSIsInRoaW5nIiwidHlwZSIsImVtcHR5IiwidmFsdWUiLCJyZXBsYWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/hast-util-whitespace/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/html-url-attributes/lib/index.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/html-url-attributes/lib/index.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ urlAttributes: () => (/* binding */ urlAttributes)\n/* harmony export */ });\n/**\n * HTML URL properties.\n *\n * Each key is a property name and each value is a list of tag names it applies\n * to or `null` if it applies to all elements.\n *\n * @type {Record<string, Array<string> | null>}\n */ const urlAttributes = {\n action: [\n \"form\"\n ],\n cite: [\n \"blockquote\",\n \"del\",\n \"ins\",\n \"q\"\n ],\n data: [\n \"object\"\n ],\n formAction: [\n \"button\",\n \"input\"\n ],\n href: [\n \"a\",\n \"area\",\n \"base\",\n \"link\"\n ],\n icon: [\n \"menuitem\"\n ],\n itemId: null,\n manifest: [\n \"html\"\n ],\n ping: [\n \"a\",\n \"area\"\n ],\n poster: [\n \"video\"\n ],\n src: [\n \"audio\",\n \"embed\",\n \"iframe\",\n \"img\",\n \"input\",\n \"script\",\n \"source\",\n \"track\",\n \"video\"\n ]\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2h0bWwtdXJsLWF0dHJpYnV0ZXMvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBQ00sTUFBTUEsZ0JBQWdCO0lBQzNCQyxRQUFRO1FBQUM7S0FBTztJQUNoQkMsTUFBTTtRQUFDO1FBQWM7UUFBTztRQUFPO0tBQUk7SUFDdkNDLE1BQU07UUFBQztLQUFTO0lBQ2hCQyxZQUFZO1FBQUM7UUFBVTtLQUFRO0lBQy9CQyxNQUFNO1FBQUM7UUFBSztRQUFRO1FBQVE7S0FBTztJQUNuQ0MsTUFBTTtRQUFDO0tBQVc7SUFDbEJDLFFBQVE7SUFDUkMsVUFBVTtRQUFDO0tBQU87SUFDbEJDLE1BQU07UUFBQztRQUFLO0tBQU87SUFDbkJDLFFBQVE7UUFBQztLQUFRO0lBQ2pCQyxLQUFLO1FBQ0g7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0tBQ0Q7QUFDSCxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvaHRtbC11cmwtYXR0cmlidXRlcy9saWIvaW5kZXguanM/MjkxMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhUTUwgVVJMIHByb3BlcnRpZXMuXG4gKlxuICogRWFjaCBrZXkgaXMgYSBwcm9wZXJ0eSBuYW1lIGFuZCBlYWNoIHZhbHVlIGlzIGEgbGlzdCBvZiB0YWcgbmFtZXMgaXQgYXBwbGllc1xuICogdG8gb3IgYG51bGxgIGlmIGl0IGFwcGxpZXMgdG8gYWxsIGVsZW1lbnRzLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBBcnJheTxzdHJpbmc+IHwgbnVsbD59XG4gKi9cbmV4cG9ydCBjb25zdCB1cmxBdHRyaWJ1dGVzID0ge1xuICBhY3Rpb246IFsnZm9ybSddLFxuICBjaXRlOiBbJ2Jsb2NrcXVvdGUnLCAnZGVsJywgJ2lucycsICdxJ10sXG4gIGRhdGE6IFsnb2JqZWN0J10sXG4gIGZvcm1BY3Rpb246IFsnYnV0dG9uJywgJ2lucHV0J10sXG4gIGhyZWY6IFsnYScsICdhcmVhJywgJ2Jhc2UnLCAnbGluayddLFxuICBpY29uOiBbJ21lbnVpdGVtJ10sXG4gIGl0ZW1JZDogbnVsbCxcbiAgbWFuaWZlc3Q6IFsnaHRtbCddLFxuICBwaW5nOiBbJ2EnLCAnYXJlYSddLFxuICBwb3N0ZXI6IFsndmlkZW8nXSxcbiAgc3JjOiBbXG4gICAgJ2F1ZGlvJyxcbiAgICAnZW1iZWQnLFxuICAgICdpZnJhbWUnLFxuICAgICdpbWcnLFxuICAgICdpbnB1dCcsXG4gICAgJ3NjcmlwdCcsXG4gICAgJ3NvdXJjZScsXG4gICAgJ3RyYWNrJyxcbiAgICAndmlkZW8nXG4gIF1cbn1cbiJdLCJuYW1lcyI6WyJ1cmxBdHRyaWJ1dGVzIiwiYWN0aW9uIiwiY2l0ZSIsImRhdGEiLCJmb3JtQWN0aW9uIiwiaHJlZiIsImljb24iLCJpdGVtSWQiLCJtYW5pZmVzdCIsInBpbmciLCJwb3N0ZXIiLCJzcmMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/html-url-attributes/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/is-plain-obj/index.js":
-/*!************************************************!*\
- !*** ../../node_modules/is-plain-obj/index.js ***!
- \************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isPlainObject)\n/* harmony export */ });\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2lzLXBsYWluLW9iai9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWUsU0FBU0EsY0FBY0MsS0FBSztJQUMxQyxJQUFJLE9BQU9BLFVBQVUsWUFBWUEsVUFBVSxNQUFNO1FBQ2hELE9BQU87SUFDUjtJQUVBLE1BQU1DLFlBQVlDLE9BQU9DLGNBQWMsQ0FBQ0g7SUFDeEMsT0FBTyxDQUFDQyxjQUFjLFFBQVFBLGNBQWNDLE9BQU9ELFNBQVMsSUFBSUMsT0FBT0MsY0FBYyxDQUFDRixlQUFlLElBQUcsS0FBTSxDQUFFRyxDQUFBQSxPQUFPQyxXQUFXLElBQUlMLEtBQUksS0FBTSxDQUFFSSxDQUFBQSxPQUFPRSxRQUFRLElBQUlOLEtBQUk7QUFDMUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9pcy1wbGFpbi1vYmovaW5kZXguanM/OWFiYSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG5cdGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Y29uc3QgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKTtcblx0cmV0dXJuIChwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90b3R5cGUpID09PSBudWxsKSAmJiAhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB2YWx1ZSkgJiYgIShTeW1ib2wuaXRlcmF0b3IgaW4gdmFsdWUpO1xufVxuIl0sIm5hbWVzIjpbImlzUGxhaW5PYmplY3QiLCJ2YWx1ZSIsInByb3RvdHlwZSIsIk9iamVjdCIsImdldFByb3RvdHlwZU9mIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJpdGVyYXRvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/is-plain-obj/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/longest-streak/index.js":
-/*!**************************************************!*\
- !*** ../../node_modules/longest-streak/index.js ***!
- \**************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ longestStreak: () => (/* binding */ longestStreak)\n/* harmony export */ });\n/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */ function longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while(index !== -1){\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL2xvbmdlc3Qtc3RyZWFrL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQSxjQUFjQyxLQUFLLEVBQUVDLFNBQVM7SUFDNUMsTUFBTUMsU0FBU0MsT0FBT0g7SUFDdEIsSUFBSUksUUFBUUYsT0FBT0csT0FBTyxDQUFDSjtJQUMzQixJQUFJSyxXQUFXRjtJQUNmLElBQUlHLFFBQVE7SUFDWixJQUFJQyxNQUFNO0lBRVYsSUFBSSxPQUFPUCxjQUFjLFVBQVU7UUFDakMsTUFBTSxJQUFJUSxVQUFVO0lBQ3RCO0lBRUEsTUFBT0wsVUFBVSxDQUFDLEVBQUc7UUFDbkIsSUFBSUEsVUFBVUUsVUFBVTtZQUN0QixJQUFJLEVBQUVDLFFBQVFDLEtBQUs7Z0JBQ2pCQSxNQUFNRDtZQUNSO1FBQ0YsT0FBTztZQUNMQSxRQUFRO1FBQ1Y7UUFFQUQsV0FBV0YsUUFBUUgsVUFBVVMsTUFBTTtRQUNuQ04sUUFBUUYsT0FBT0csT0FBTyxDQUFDSixXQUFXSztJQUNwQztJQUVBLE9BQU9FO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9sb25nZXN0LXN0cmVhay9pbmRleC5qcz8yYzY0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2V0IHRoZSBjb3VudCBvZiB0aGUgbG9uZ2VzdCByZXBlYXRpbmcgc3RyZWFrIG9mIGBzdWJzdHJpbmdgIGluIGB2YWx1ZWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIENvbnRlbnQgdG8gc2VhcmNoIGluLlxuICogQHBhcmFtIHtzdHJpbmd9IHN1YnN0cmluZ1xuICogICBTdWJzdHJpbmcgdG8gbG9vayBmb3IsIHR5cGljYWxseSBvbmUgY2hhcmFjdGVyLlxuICogQHJldHVybnMge251bWJlcn1cbiAqICAgQ291bnQgb2YgbW9zdCBmcmVxdWVudCBhZGphY2VudCBgc3Vic3RyaW5nYHMgaW4gYHZhbHVlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvbmdlc3RTdHJlYWsodmFsdWUsIHN1YnN0cmluZykge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG4gIGxldCBpbmRleCA9IHNvdXJjZS5pbmRleE9mKHN1YnN0cmluZylcbiAgbGV0IGV4cGVjdGVkID0gaW5kZXhcbiAgbGV0IGNvdW50ID0gMFxuICBsZXQgbWF4ID0gMFxuXG4gIGlmICh0eXBlb2Ygc3Vic3RyaW5nICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIHN1YnN0cmluZycpXG4gIH1cblxuICB3aGlsZSAoaW5kZXggIT09IC0xKSB7XG4gICAgaWYgKGluZGV4ID09PSBleHBlY3RlZCkge1xuICAgICAgaWYgKCsrY291bnQgPiBtYXgpIHtcbiAgICAgICAgbWF4ID0gY291bnRcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY291bnQgPSAxXG4gICAgfVxuXG4gICAgZXhwZWN0ZWQgPSBpbmRleCArIHN1YnN0cmluZy5sZW5ndGhcbiAgICBpbmRleCA9IHNvdXJjZS5pbmRleE9mKHN1YnN0cmluZywgZXhwZWN0ZWQpXG4gIH1cblxuICByZXR1cm4gbWF4XG59XG4iXSwibmFtZXMiOlsibG9uZ2VzdFN0cmVhayIsInZhbHVlIiwic3Vic3RyaW5nIiwic291cmNlIiwiU3RyaW5nIiwiaW5kZXgiLCJpbmRleE9mIiwiZXhwZWN0ZWQiLCJjb3VudCIsIm1heCIsIlR5cGVFcnJvciIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/longest-streak/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/markdown-table/index.js":
-/*!**************************************************!*\
- !*** ../../node_modules/markdown-table/index.js ***!
- \**************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ markdownTable: () => (/* binding */ markdownTable)\n/* harmony export */ });\n/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|ReadonlyArray<string|null|undefined>} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */ /**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */ /**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray<ReadonlyArray<string|null|undefined>>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */ function markdownTable(table, options = {}) {\n const align = (options.align || []).concat();\n const stringLength = options.stringLength || defaultStringLength;\n /** @type {Array<number>} Character codes as symbols for alignment per column. */ const alignments = [];\n /** @type {Array<Array<string>>} Cells per row. */ const cellMatrix = [];\n /** @type {Array<Array<number>>} Sizes of each cell per row. */ const sizeMatrix = [];\n /** @type {Array<number>} */ const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while(++rowIndex < table.length){\n /** @type {Array<string>} */ const row = [];\n /** @type {Array<number>} */ const sizes = [];\n let columnIndex = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while(++columnIndex < table[rowIndex].length){\n const cell = serialize(table[rowIndex][columnIndex]);\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes[columnIndex] = size;\n if (longestCellByColumn[columnIndex] === undefined || size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n }\n row.push(cell);\n }\n cellMatrix[rowIndex] = row;\n sizeMatrix[rowIndex] = sizes;\n }\n // Figure out which alignments to use.\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while(++columnIndex < mostCellsPerRow){\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code = toAlignment(align);\n while(++columnIndex < mostCellsPerRow){\n alignments[columnIndex] = code;\n }\n }\n // Inject the alignment row.\n columnIndex = -1;\n /** @type {Array<string>} */ const row = [];\n /** @type {Array<number>} */ const sizes = [];\n while(++columnIndex < mostCellsPerRow){\n const code = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code === 99 /* `c` */ ) {\n before = \":\";\n after = \":\";\n } else if (code === 108 /* `l` */ ) {\n before = \":\";\n } else if (code === 114 /* `r` */ ) {\n after = \":\";\n }\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size = options.alignDelimiters === false ? 1 : Math.max(1, longestCellByColumn[columnIndex] - before.length - after.length);\n const cell = before + \"-\".repeat(size) + after;\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n /** @type {Array<string>} */ const lines = [];\n while(++rowIndex < cellMatrix.length){\n const row = cellMatrix[rowIndex];\n const sizes = sizeMatrix[rowIndex];\n columnIndex = -1;\n /** @type {Array<string>} */ const line = [];\n while(++columnIndex < mostCellsPerRow){\n const cell = row[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (options.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0);\n const code = alignments[columnIndex];\n if (code === 114 /* `r` */ ) {\n before = \" \".repeat(size);\n } else if (code === 99 /* `c` */ ) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (options.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (options.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === \"\") && (options.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (options.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (options.alignDelimiters !== false) {\n line.push(after);\n }\n if (options.padding !== false) {\n line.push(\" \");\n }\n if (options.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(options.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\"));\n }\n return lines.join(\"\\n\");\n}\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */ function serialize(value) {\n return value === null || value === undefined ? \"\" : String(value);\n}\n/**\n * @param {string} value\n * @returns {number}\n */ function defaultStringLength(value) {\n return value.length;\n}\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */ function toAlignment(value) {\n const code = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code === 67 /* `C` */ || code === 99 /* `c` */ ? 99 /* `c` */ : code === 76 /* `L` */ || code === 108 /* `l` */ ? 108 /* `l` */ : code === 82 /* `R` */ || code === 114 /* `r` */ ? 114 /* `r` */ : 0;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21hcmtkb3duLXRhYmxlL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F5SUMsR0FFRDs7OztDQUlDLEdBRUQ7Ozs7Ozs7O0NBUUMsR0FDTSxTQUFTQSxjQUFjQyxLQUFLLEVBQUVDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLE1BQU1DLFFBQVEsQ0FBQ0QsUUFBUUMsS0FBSyxJQUFJLEVBQUUsRUFBRUMsTUFBTTtJQUMxQyxNQUFNQyxlQUFlSCxRQUFRRyxZQUFZLElBQUlDO0lBQzdDLCtFQUErRSxHQUMvRSxNQUFNQyxhQUFhLEVBQUU7SUFDckIsZ0RBQWdELEdBQ2hELE1BQU1DLGFBQWEsRUFBRTtJQUNyQiw2REFBNkQsR0FDN0QsTUFBTUMsYUFBYSxFQUFFO0lBQ3JCLDBCQUEwQixHQUMxQixNQUFNQyxzQkFBc0IsRUFBRTtJQUM5QixJQUFJQyxrQkFBa0I7SUFDdEIsSUFBSUMsV0FBVyxDQUFDO0lBRWhCLDhFQUE4RTtJQUM5RSwrREFBK0Q7SUFDL0QsTUFBTyxFQUFFQSxXQUFXWCxNQUFNWSxNQUFNLENBQUU7UUFDaEMsMEJBQTBCLEdBQzFCLE1BQU1DLE1BQU0sRUFBRTtRQUNkLDBCQUEwQixHQUMxQixNQUFNQyxRQUFRLEVBQUU7UUFDaEIsSUFBSUMsY0FBYyxDQUFDO1FBRW5CLElBQUlmLEtBQUssQ0FBQ1csU0FBUyxDQUFDQyxNQUFNLEdBQUdGLGlCQUFpQjtZQUM1Q0Esa0JBQWtCVixLQUFLLENBQUNXLFNBQVMsQ0FBQ0MsTUFBTTtRQUMxQztRQUVBLE1BQU8sRUFBRUcsY0FBY2YsS0FBSyxDQUFDVyxTQUFTLENBQUNDLE1BQU0sQ0FBRTtZQUM3QyxNQUFN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QUNFcEIsUUFBUWlDLFlBQVksS0FBSyxTQUN6Qm5CLGdCQUFnQkwsa0JBQWtCLEdBQ2xDO2dCQUNBcUIsS0FBS1YsSUFBSSxDQUFDO1lBQ1o7UUFDRjtRQUVBUyxNQUFNVCxJQUFJLENBQ1JwQixRQUFRaUMsWUFBWSxLQUFLLFFBQ3JCSCxLQUFLSSxJQUFJLENBQUMsSUFBSUMsT0FBTyxDQUFDLE9BQU8sTUFDN0JMLEtBQUtJLElBQUksQ0FBQztJQUVsQjtJQUVBLE9BQU9MLE1BQU1LLElBQUksQ0FBQztBQUNwQjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNsQixVQUFVb0IsS0FBSztJQUN0QixPQUFPQSxVQUFVLFFBQVFBLFVBQVVqQixZQUFZLEtBQUtrQixPQUFPRDtBQUM3RDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNoQyxvQkFBb0JnQyxLQUFLO0lBQ2hDLE9BQU9BLE1BQU16QixNQUFNO0FBQ3JCO0FBRUE7OztDQUdDLEdBQ0QsU0FBU1UsWUFBWWUsS0FBSztJQUN4QixNQUFNZCxPQUFPLE9BQU9jLFVBQVUsV0FBV0EsTUFBTUUsV0FBVyxDQUFDLEtBQUs7SUFFaEUsT0FBT2hCLFNBQVMsR0FBRyxPQUFPLE9BQU1BLFNBQVMsR0FBRyxPQUFPLE1BQy9DLEdBQUcsT0FBTyxNQUNWQSxTQUFTLEdBQUcsT0FBTyxPQUFNQSxTQUFTLElBQUksT0FBTyxNQUM3QyxJQUFJLE9BQU8sTUFDWEEsU0FBUyxHQUFHLE9BQU8sT0FBTUEsU0FBUyxJQUFJLE9BQU8sTUFDN0MsSUFBSSxPQUFPLE1BQ1g7QUFDTiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21hcmtkb3duLXRhYmxlL2luZGV4LmpzP2VhMzciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfG51bGx8UmVhZG9ubHlBcnJheTxzdHJpbmd8bnVsbHx1bmRlZmluZWQ+fSBbYWxpZ25dXG4gKiAgIE9uZSBzdHlsZSBmb3IgYWxsIGNvbHVtbnMsIG9yIHN0eWxlcyBmb3IgdGhlaXIgcmVzcGVjdGl2ZSBjb2x1bW5zLlxuICogICBFYWNoIHN0eWxlIGlzIGVpdGhlciBgJ2wnYCAobGVmdCksIGAncidgIChyaWdodCksIG9yIGAnYydgIChjZW50ZXIpLlxuICogICBPdGhlciB2YWx1ZXMgYXJlIHRyZWF0ZWQgYXMgYCcnYCwgd2hpY2ggZG9lc27igJl0IHBsYWNlIHRoZSBjb2xvbiBpbiB0aGVcbiAqICAgYWxpZ25tZW50IHJvdyBidXQgZG9lcyBhbGlnbiBsZWZ0LlxuICogICAqT25seSB0aGUgbG93ZXJjYXNlZCBmaXJzdCBjaGFyYWN0ZXIgaXMgdXNlZCwgc28gYFJpZ2h0YCBpcyBmaW5lLipcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3BhZGRpbmc9dHJ1ZV1cbiAqICAgV2hldGhlciB0byBhZGQgYSBzcGFjZSBvZiBwYWRkaW5nIGJldHdlZW4gZGVsaW1pdGVycyBhbmQgY2VsbHMuXG4gKlxuICogICBXaGVuIGB0cnVlYCwgdGhlcmUgaXMgcGFkZGluZzpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIHwgQWxwaGEgfCBCICAgICB8XG4gKiAgIHwgLS0tLS0gfCAtLS0tLSB8XG4gKiAgIHwgQyAgICAgfCBEZWx0YSB8XG4gKiAgIGBgYFxuICpcbiAqICAgV2hlbiBgZmFsc2VgLCB0aGVyZSBpcyBubyBwYWRkaW5nOlxuICpcbiAqICAgYGBgbWFya2Rvd25cbiAqICAgfEFscGhhfEIgICAgfFxuICogICB8LS0tLS18LS0tLS18XG4gKiAgIHxDICAgIHxEZWx0YXxcbiAqICAgYGBgXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtkZWxpbWl0ZXJTdGFydD10cnVlXVxuICogICBXaGV0aGVyIHRvIGJlZ2luIGVhY2ggcm93IHdpdGggdGhlIGRlbGltaXRlci5cbiAqXG4gKiAgID4g8J+RiSAqKk5vdGUqKjogcGxlYXNlIGRvbuKAmXQgdXNlIHRoaXM6IGl0IGNvdWxkIGNyZWF0ZSBmcmFnaWxlIHN0cnVjdHVyZXNcbiAqICAgPiB0aGF0IGFyZW7igJl0IHVuZGVyc3RhbmRhYmxlIHRvIHNvbWUgbWFya2Rvd24gcGFyc2Vycy5cbiAqXG4gKiAgIFdoZW4gYHRydWVgLCB0aGVyZSBhcmUgc3RhcnRpbmcgZGVsaW1pdGVyczpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIHwgQWxwaGEgfCBCICAgICB8XG4gKiAgIHwgLS0tLS0gfCAtLS0tLSB8XG4gKiAgIHwgQyAgICAgfCBEZWx0YSB8XG4gKiAgIGBgYFxuICpcbiAqICAgV2hlbiBgZmFsc2VgLCB0aGVyZSBhcmUgbm8gc3RhcnRpbmcgZGVsaW1pdGVyczpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIEFscGhhIHwgQiAgICAgfFxuICogICAtLS0tLSB8IC0tLS0tIHxcbiAqICAgQyAgICAgfCBEZWx0YSB8XG4gKiAgIGBgYFxuICogQHByb3BlcnR5IHtib29sZWFufSBbZGVsaW1pdGVyRW5kPXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gZW5kIGVhY2ggcm93IHdpdGggdGhlIGRlbGltaXRlci5cbiAqXG4gKiAgID4g8J+RiSAqKk5vdGUqKjogcGxlYXNlIGRvbuKAmXQgdXNlIHRoaXM6IGl0IGNvdWxkIGNyZWF0ZSBmcmFnaWxlIHN0cnVjdHVyZXNcbiAqICAgPiB0aGF0IGFyZW7igJl0IHVuZGVyc3RhbmRhYmxlIHRvIHNvbWUgbWFya2Rvd24gcGFyc2Vycy5cbiAqXG4gKiAgIFdoZW4gYHRydWVgLCB0aGVyZSBhcmUgZW5kaW5nIGRlbGltaXRlcnM6XG4gKlxuICogICBgYGBtYXJrZG93blxuICogICB8IEFscGhhIHwgQiAgICAgfFxuICogICB8IC0tLS0tIHwgLS0tLS0gfFxuICogICB8IEMgICAgIHwgRGVsdGEgfFxuICogICBgYGBcbiAqXG4gKiAgIFdoZW4gYGZhbHNlYCwgdGhlcmUgYXJlIG5vIGVuZGluZyBkZWxpbWl0ZXJzOlxuICpcbiAqICAgYGBgbWFya2Rvd25cbiAqICAgfCBBbHBoYSB8IEJcbiAqICAgfCAtLS0tLSB8IC0tLS0tXG4gKiAgIHwgQyAgICAgfCBEZWx0YVxuICogICBgYGBcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2FsaWduRGVsaW1pdGVycz10cnVlXVxuICogICBXaGV0aGVyIHRvIGFsaWduIHRoZSBkZWxpbWl0ZXJzLlxuICogICBCeSBkZWZhdWx0LCB0aGV5IGFyZSBhbGlnbmVkOlxuICpcbiAqICAgYGBgbWFya2Rvd25cbiAqICAgfCBBbHBoYSB8IEIgICAgIHxcbiAqICAgfCAtLS0tLSB8IC0tLS0tIHxcbiAqICAgfCBDICAgICB8IERlbHRhIHxcbiAqICAgYGBgXG4gKlxuICogICBQYXNzIGBmYWxzZWAgdG8gbWFrZSB0aGVtIHN0YWdnZXJlZDpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIHwgQWxwaGEgfCBCIHxcbiAqICAgfCAtIHwgLSB8XG4gKiAgIHwgQyB8IERlbHRhIHxcbiAqICAgYGBgXG4gKiBAcHJvcGVydHkgeyh2YWx1ZTogc3RyaW5nKSA9PiBudW1iZXJ9IFtzdHJpbmdMZW5ndGhdXG4gKiAgIEZ1bmN0aW9uIHRvIGRldGVjdCB0aGUgbGVuZ3RoIG9mIHRhYmxlIGNlbGwgY29udGVudC5cbiAqICAgVGhpcyBpcyB1c2VkIHdoZW4gYWxpZ25pbmcgdGhlIGRlbGltaXRlcnMgKGB8YCkgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqICAgRnVsbC13aWR0aCBjaGFyYWN0ZXJzIGFuZCBlbW9qaSBtZXNzIHVwIGRlbGltaXRlciBhbGlnbm1lbnQgd2hlbiB2aWV3aW5nXG4gKiAgIHRoZSBtYXJrZG93biBzb3VyY2UuXG4gKiAgIFRvIGZpeCB0aGlzLCB5b3UgY2FuIHBhc3MgdGhpcyBmdW5jdGlvbiwgd2hpY2ggcmVjZWl2ZXMgdGhlIGNlbGwgY29udGVudFxuICogICBhbmQgcmV0dXJucyBpdHMg4oCcdmlzaWJsZeKAnSBzaXplLlxuICogICBOb3RlIHRoYXQgd2hhdCBpcyBhbmQgaXNu4oCZdCB2aXNpYmxlIGRlcGVuZHMgb24gd2hlcmUgdGhlIHRleHQgaXMgZGlzcGxheWVkLlxuICpcbiAqICAgV2l0aG91dCBzdWNoIGEgZnVuY3Rpb24sIHRoZSBmb2xsb3dpbmc6XG4gKlxuICogICBgYGBqc1xuICogICBtYXJrZG93blRhYmxlKFtcbiAqICAgICBbJ0FscGhhJywgJ0JyYXZvJ10sXG4gKiAgICAgWyfkuK3mlocnLCAnQ2hhcmxpZSddLFxuICogICAgIFsn8J+RqeKAjeKdpO+4j+KAjfCfkaknLCAnRGVsdGEnXVxuICogICBdKVxuICogICBgYGBcbiAqXG4gKiAgIFlpZWxkczpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIHwgQWxwaGEgfCBCcmF2byB8XG4gKiAgIHwgLSB8IC0gfFxuICogICB8IOS4reaWhyB8IENoYXJsaWUgfFxuICogICB8IPCfkanigI3inaTvuI/igI3wn5GpIHwgRGVsdGEgfFxuICogICBgYGBcbiAqXG4gKiAgIFdpdGggW2BzdHJpbmctd2lkdGhgXShodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL3N0cmluZy13aWR0aCk6XG4gKlxuICogICBgYGBqc1xuICogICBpbXBvcnQgc3RyaW5nV2lkdGggZnJvbSAnc3RyaW5nLXdpZHRoJ1xuICpcbiAqICAgbWFya2Rvd25UYWJsZShcbiAqICAgICBbXG4gKiAgICAgICBbJ0FscGhhJywgJ0JyYXZvJ10sXG4gKiAgICAgICBbJ+S4reaWhycsICdDaGFybGllJ10sXG4gKiAgICAgICBbJ/CfkanigI3inaTvuI/igI3wn5GpJywgJ0RlbHRhJ11cbiAqICAgICBdLFxuICogICAgIHtzdHJpbmdMZW5ndGg6IHN0cmluZ1dpZHRofVxuICogICApXG4gKiAgIGBgYFxuICpcbiAqICAgWWllbGRzOlxuICpcbiAqICAgYGBgbWFya2Rvd25cbiAqICAgfCBBbHBoYSB8IEJyYXZvICAgfFxuICogICB8IC0tLS0tIHwgLS0tLS0tLSB8XG4gKiAgIHwg5Lit5paHICB8IENoYXJsaWUgfFxuICogICB8IPCfkanigI3inaTvuI/igI3wn5GpICAgIHwgRGVsdGEgICB8XG4gKiAgIGBgYFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09wdGlvbnN9IE1hcmtkb3duVGFibGVPcHRpb25zXG4gKiBAdG9kb1xuICogICBSZW1vdmUgbmV4dCBtYWpvci5cbiAqL1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgbWFya2Rvd24gKFtHRk1dKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2dpdGh1Yi93cml0aW5nLW9uLWdpdGh1Yi93b3JraW5nLXdpdGgtYWR2YW5jZWQtZm9ybWF0dGluZy9vcmdhbml6aW5nLWluZm9ybWF0aW9uLXdpdGgtdGFibGVzKSkgdGFibGUuLlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHlBcnJheTxSZWFkb25seUFycmF5PHN0cmluZ3xudWxsfHVuZGVmaW5lZD4+fSB0YWJsZVxuICogICBUYWJsZSBkYXRhIChtYXRyaXggb2Ygc3RyaW5ncykuXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya2Rvd25UYWJsZSh0YWJsZSwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGFsaWduID0gKG9wdGlvbnMuYWxpZ24gfHwgW10pLmNvbmNhdCgpXG4gIGNvbnN0IHN0cmluZ0xlbmd0aCA9IG9wdGlvbnMuc3RyaW5nTGVuZ3RoIHx8IGRlZmF1bHRTdHJpbmdMZW5ndGhcbiAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXI+fSBDaGFyYWN0ZXIgY29kZXMgYXMgc3ltYm9scyBmb3IgYWxpZ25tZW50IHBlciBjb2x1bW4uICovXG4gIGNvbnN0IGFsaWdubWVudHMgPSBbXVxuICAvKiogQHR5cGUge0FycmF5PEFycmF5PHN0cmluZz4+fSBDZWxscyBwZXIgcm93LiAqL1xuICBjb25zdCBjZWxsTWF0cml4ID0gW11cbiAgLyoqIEB0eXBlIHtBcnJheTxBcnJheTxudW1iZXI+Pn0gU2l6ZXMgb2YgZWFjaCBjZWxsIHBlciByb3cuICovXG4gIGNvbnN0IHNpemVNYXRyaXggPSBbXVxuICAvKiogQHR5cGUge0FycmF5PG51bWJlcj59ICovXG4gIGNvbnN0IGxvbmdlc3RDZWxsQnlDb2x1bW4gPSBbXVxuICBsZXQgbW9zdENlbGxzUGVyUm93ID0gMFxuICBsZXQgcm93SW5kZXggPSAtMVxuXG4gIC8vIFRoaXMgaXMgYSBzdXBlcmZsdW91cyBsb29wIGlmIHdlIGRvbuKAmXQgYWxpZ24gZGVsaW1pdGVycywgYnV0IG90aGVyd2lzZSB3ZeKAmWRcbiAgLy8gZG8gc3VwZXJmbHVvdXMgd29yayB3aGVuIGFsaWduaW5nLCBzbyBvcHRpbWl6ZSBmb3IgYWxpZ25pbmcuXG4gIHdoaWxlICgrK3Jvd0luZGV4IDwgdGFibGUubGVuZ3RoKSB7XG4gICAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICAgIGNvbnN0IHJvdyA9IFtdXG4gICAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXI+fSAqL1xuICAgIGNvbnN0IHNpemVzID0gW11cbiAgICBsZXQgY29sdW1uSW5kZXggPSAtMVxuXG4gICAgaWYgKHRhYmxlW3Jvd0luZGV4XS5sZW5ndGggPiBtb3N0Q2VsbHNQZXJSb3cpIHtcbiAgICAgIG1vc3RDZWxsc1BlclJvdyA9IHRhYmxlW3Jvd0luZGV4XS5sZW5ndGhcbiAgICB9XG5cbiAgICB3aGlsZSAoKytjb2x1bW5JbmRleCA8IHRhYmxlW3Jvd0luZGV4XS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGNlbGwgPSBzZXJpYWxpemUodGFibGVbcm93SW5kZXhdW2NvbHVtbkluZGV4XSlcblxuICAgICAgaWYgKG9wdGlvbnMuYWxpZ25EZWxpbWl0ZXJzICE9PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBzaXplID0gc3RyaW5nTGVuZ3RoKGNlbGwpXG4gICAgICAgIHNpemVzW2NvbHVtbkluZGV4XSA9IHNpemVcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgbG9uZ2VzdENlbGxCeUNvbHVtbltjb2x1bW5JbmRleF0gPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgIHNpemUgPiBsb25nZXN0Q2VsbEJ5Q29sdW1uW2NvbHVtbkluZGV4XVxuICAgICAgICApIHtcbiAgICAgICAgICBsb25nZXN0Q2VsbEJ5Q29sdW1uW2NvbHVtbkluZGV4XSA9IHNpemVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByb3cucHVzaChjZWxsKVxuICAgIH1cblxuICAgIGNlbGxNYXRyaXhbcm93SW5kZXhdID0gcm93XG4gICAgc2l6ZU1hdHJpeFtyb3dJbmRleF0gPSBzaXplc1xuICB9XG5cbiAgLy8gRmlndXJlIG91dCB3aGljaCBhbGlnbm1lbnRzIHRvIHVzZS5cbiAgbGV0IGNvbHVtbkluZGV4ID0gLTFcblxuICBpZiAodHlwZW9mIGFsaWduID09PSAnb2JqZWN0JyAmJiAnbGVuZ3RoJyBpbiBhbGlnbikge1xuICAgIHdoaWxlICgrK2NvbHVtbkluZGV4IDwgbW9zdENlbGxzUGVyUm93KSB7XG4gICAgICBhbGlnbm1lbnRzW2NvbHVtbkluZGV4XSA9IHRvQWxpZ25tZW50KGFsaWduW2NvbHVtbkluZGV4XSlcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29kZSA9IHRvQWxpZ25tZW50KGFsaWduKVxuXG4gICAgd2hpbGUgKCsrY29sdW1uSW5kZXggPCBtb3N0Q2VsbHNQZXJSb3cpIHtcbiAgICAgIGFsaWdubWVudHNbY29sdW1uSW5kZXhdID0gY29kZVxuICAgIH1cbiAgfVxuXG4gIC8vIEluamVjdCB0aGUgYWxpZ25tZW50IHJvdy5cbiAgY29sdW1uSW5kZXggPSAtMVxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJvdyA9IFtdXG4gIC8qKiBAdHlwZSB7QXJyYXk8bnVtYmVyPn0gKi9cbiAgY29uc3Qgc2l6ZXMgPSBbXVxuXG4gIHdoaWxlICgrK2NvbHVtbkluZGV4IDwgbW9zdENlbGxzUGVyUm93KSB7XG4gICAgY29uc3QgY29kZSA9IGFsaWdubWVudHNbY29sdW1uSW5kZXhdXG4gICAgbGV0IGJlZm9yZSA9ICcnXG4gICAgbGV0IGFmdGVyID0gJydcblxuICAgIGlmIChjb2RlID09PSA5OSAvKiBgY2AgKi8pIHtcbiAgICAgIGJlZm9yZSA9ICc6J1xuICAgICAgYWZ0ZXIgPSAnOidcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDEwOCAvKiBgbGAgKi8pIHtcbiAgICAgIGJlZm9yZSA9ICc6J1xuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gMTE0IC8qIGByYCAqLykge1xuICAgICAgYWZ0ZXIgPSAnOidcbiAgICB9XG5cbiAgICAvLyBUaGVyZSAqbXVzdCogYmUgYXQgbGVhc3Qgb25lIGh5cGhlbi1taW51cyBpbiBlYWNoIGFsaWdubWVudCBjZWxsLlxuICAgIGxldCBzaXplID1cbiAgICAgIG9wdGlvbnMuYWxpZ25EZWxpbWl0ZXJzID09PSBmYWxzZVxuICAgICAgICA/IDFcbiAgICAgICAgOiBNYXRoLm1heChcbiAgICAgICAgICAgIDEsXG4gICAgICAgICAgICBsb25nZXN0Q2VsbEJ5Q29sdW1uW2NvbHVtbkluZGV4XSAtIGJlZm9yZS5sZW5ndGggLSBhZnRlci5sZW5ndGhcbiAgICAgICAgICApXG5cbiAgICBjb25zdCBjZWxsID0gYmVmb3JlICsgJy0nLnJlcGVhdChzaXplKSArIGFmdGVyXG5cbiAgICBpZiAob3B0aW9ucy5hbGlnbkRlbGltaXRlcnMgIT09IGZhbHNlKSB7XG4gICAgICBzaXplID0gYmVmb3JlLmxlbmd0aCArIHNpemUgKyBhZnRlci5sZW5ndGhcblxuICAgICAgaWYgKHNpemUgPiBsb25nZXN0Q2VsbEJ5Q29sdW1uW2NvbHVtbkluZGV4XSkge1xuICAgICAgICBsb25nZXN0Q2VsbEJ5Q29sdW1uW2NvbHVtbkluZGV4XSA9IHNpemVcbiAgICAgIH1cblxuICAgICAgc2l6ZXNbY29sdW1uSW5kZXhdID0gc2l6ZVxuICAgIH1cblxuICAgIHJvd1tjb2x1bW5JbmRleF0gPSBjZWxsXG4gIH1cblxuICAvLyBJbmplY3QgdGhlIGFsaWdubWVudCByb3cuXG4gIGNlbGxNYXRyaXguc3BsaWNlKDEsIDAsIHJvdylcbiAgc2l6ZU1hdHJpeC5zcGxpY2UoMSwgMCwgc2l6ZXMpXG5cbiAgcm93SW5kZXggPSAtMVxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IGxpbmVzID0gW11cblxuICB3aGlsZSAoKytyb3dJbmRleCA8IGNlbGxNYXRyaXgubGVuZ3RoKSB7XG4gICAgY29uc3Qgcm93ID0gY2VsbE1hdHJpeFtyb3dJbmRleF1cbiAgICBjb25zdCBzaXplcyA9IHNpemVNYXRyaXhbcm93SW5kZXhdXG4gICAgY29sdW1uSW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgICBjb25zdCBsaW5lID0gW11cblxuICAgIHdoaWxlICgrK2NvbHVtbkluZGV4IDwgbW9zdENlbGxzUGVyUm93KSB7XG4gICAgICBjb25zdCBjZWxsID0gcm93W2NvbHVtbkluZGV4XSB8fCAnJ1xuICAgICAgbGV0IGJlZm9yZSA9ICcnXG4gICAgICBsZXQgYWZ0ZXIgPSAnJ1xuXG4gICAgICBpZiAob3B0aW9ucy5hbGlnbkRlbGltaXRlcnMgIT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHNpemUgPVxuICAgICAgICAgIGxvbmdlc3RDZWxsQnlDb2x1bW5bY29sdW1uSW5kZXhdIC0gKHNpemVzW2NvbHVtbkluZGV4XSB8fCAwKVxuICAgICAgICBjb25zdCBjb2RlID0gYWxpZ25tZW50c1tjb2x1bW5JbmRleF1cblxuICAgICAgICBpZiAoY29kZSA9PT0gMTE0IC8qIGByYCAqLykge1xuICAgICAgICAgIGJlZm9yZSA9ICcgJy5yZXBlYXQoc2l6ZSlcbiAgICAgICAgfSBlbHNlIGlmIChjb2RlID09PSA5OSAvKiBgY2AgKi8pIHtcbiAgICAgICAgICBpZiAoc2l6ZSAlIDIpIHtcbiAgICAgICAgICAgIGJlZm9yZSA9ICcgJy5yZXBlYXQoc2l6ZSAvIDIgKyAwLjUpXG4gICAgICAgICAgICBhZnRlciA9ICcgJy5yZXBlYXQoc2l6ZSAvIDIgLSAwLjUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJlZm9yZSA9ICcgJy5yZXBlYXQoc2l6ZSAvIDIpXG4gICAgICAgICAgICBhZnRlciA9IGJlZm9yZVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZnRlciA9ICcgJy5yZXBlYXQoc2l6ZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5kZWxpbWl0ZXJTdGFydCAhPT0gZmFsc2UgJiYgIWNvbHVtbkluZGV4KSB7XG4gICAgICAgIGxpbmUucHVzaCgnfCcpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgb3B0aW9ucy5wYWRkaW5nICE9PSBmYWxzZSAmJlxuICAgICAgICAvLyBEb27igJl0IGFkZCB0aGUgb3BlbmluZyBzcGFjZSBpZiB3ZeKAmXJlIG5vdCBhbGlnbmluZyBhbmQgdGhlIGNlbGwgaXNcbiAgICAgICAgLy8gZW1wdHk6IHRoZXJlIHdpbGwgYmUgYSBjbG9zaW5nIHNwYWNlLlxuICAgICAgICAhKG9wdGlvbnMuYWxpZ25EZWxpbWl0ZXJzID09PSBmYWxzZSAmJiBjZWxsID09PSAnJykgJiZcbiAgICAgICAgKG9wdGlvbnMuZGVsaW1pdGVyU3RhcnQgIT09IGZhbHNlIHx8IGNvbHVtbkluZGV4KVxuICAgICAgKSB7XG4gICAgICAgIGxpbmUucHVzaCgnICcpXG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLmFsaWduRGVsaW1pdGVycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgbGluZS5wdXNoKGJlZm9yZSlcbiAgICAgIH1cblxuICAgICAgbGluZS5wdXNoKGNlbGwpXG5cbiAgICAgIGlmIChvcHRpb25zLmFsaWduRGVsaW1pdGVycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgbGluZS5wdXNoKGFmdGVyKVxuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5wYWRkaW5nICE9PSBmYWxzZSkge1xuICAgICAgICBsaW5lLnB1c2goJyAnKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIG9wdGlvbnMuZGVsaW1pdGVyRW5kICE9PSBmYWxzZSB8fFxuICAgICAgICBjb2x1bW5JbmRleCAhPT0gbW9zdENlbGxzUGVyUm93IC0gMVxuICAgICAgKSB7XG4gICAgICAgIGxpbmUucHVzaCgnfCcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgbGluZXMucHVzaChcbiAgICAgIG9wdGlvbnMuZGVsaW1pdGVyRW5kID09PSBmYWxzZVxuICAgICAgICA/IGxpbmUuam9pbignJykucmVwbGFjZSgvICskLywgJycpXG4gICAgICAgIDogbGluZS5qb2luKCcnKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfG51bGx8dW5kZWZpbmVkfSBbdmFsdWVdXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzZXJpYWxpemUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIGRlZmF1bHRTdHJpbmdMZW5ndGgodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfG51bGx8dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZnVuY3Rpb24gdG9BbGlnbm1lbnQodmFsdWUpIHtcbiAgY29uc3QgY29kZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS5jb2RlUG9pbnRBdCgwKSA6IDBcblxuICByZXR1cm4gY29kZSA9PT0gNjcgLyogYENgICovIHx8IGNvZGUgPT09IDk5IC8qIGBjYCAqL1xuICAgID8gOTkgLyogYGNgICovXG4gICAgOiBjb2RlID09PSA3NiAvKiBgTGAgKi8gfHwgY29kZSA9PT0gMTA4IC8qIGBsYCAqL1xuICAgID8gMTA4IC8qIGBsYCAqL1xuICAgIDogY29kZSA9PT0gODIgLyogYFJgICovIHx8IGNvZGUgPT09IDExNCAvKiBgcmAgKi9cbiAgICA/IDExNCAvKiBgcmAgKi9cbiAgICA6IDBcbn1cbiJdLCJuYW1lcyI6WyJtYXJrZG93blRhYmxlIiwidGFibGUiLCJvcHRpb25zIiwiYWxpZ24iLCJjb25jYXQiLCJzdHJpbmdMZW5ndGgiLCJkZWZhdWx0U3RyaW5nTGVuZ3RoIiwiYWxpZ25tZW50cyIsImNlbGxNYXRyaXgiLCJzaXplTWF0cml4IiwibG9uZ2VzdENlbGxCeUNvbHVtbiIsIm1vc3RDZWxsc1BlclJvdyIsInJvd0luZGV4IiwibGVuZ3RoIiwicm93Iiwic2l6ZXMiLCJjb2x1bW5JbmRleCIsImNlbGwiLCJzZXJpYWxpemUiLCJhbGlnbkRlbGltaXRlcnMiLCJzaXplIiwidW5kZWZpbmVkIiwicHVzaCIsInRvQWxpZ25tZW50IiwiY29kZSIsImJlZm9yZSIsImFmdGVyIiwiTWF0aCIsIm1heCIsInJlcGVhdCIsInNwbGljZSIsImxpbmVzIiwibGluZSIsImRlbGltaXRlclN0YXJ0IiwicGFkZGluZyIsImRlbGltaXRlckVuZCIsImpvaW4iLCJyZXBsYWNlIiwidmFsdWUiLCJTdHJpbmciLCJjb2RlUG9pbnRBdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/markdown-table/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-find-and-replace/lib/index.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/mdast-util-find-and-replace/lib/index.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ findAndReplace: () => (/* binding */ findAndReplace)\n/* harmony export */ });\n/* harmony import */ var escape_string_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! escape-string-regexp */ \"(ssr)/../../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js\");\n/* harmony import */ var unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! unist-util-visit-parents */ \"(ssr)/../../node_modules/unist-util-visit-parents/lib/index.js\");\n/* harmony import */ var unist_util_is__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unist-util-is */ \"(ssr)/../../node_modules/unist-util-is/lib/index.js\");\n/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */ /**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array<Parents>, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array<string>`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array<PhrasingContent> | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array<Node>`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array<Pair>} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */ \n\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */ function findAndReplace(tree, list, options) {\n const settings = options || {};\n const ignored = (0,unist_util_is__WEBPACK_IMPORTED_MODULE_1__.convert)(settings.ignore || []);\n const pairs = toPairs(list);\n let pairIndex = -1;\n while(++pairIndex < pairs.length){\n (0,unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_2__.visitParents)(tree, \"text\", visitor);\n }\n /** @type {import('unist-util-visit-parents').BuildVisitor<Root, 'text'>} */ function visitor(node, parents) {\n let index = -1;\n /** @type {Parents | undefined} */ let grandparent;\n while(++index < parents.length){\n const parent = parents[index];\n /** @type {Array<Nodes> | undefined} */ const siblings = grandparent ? grandparent.children : undefined;\n if (ignored(parent, siblings ? siblings.indexOf(parent) : undefined, grandparent)) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node, parents);\n }\n }\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array<Parents>} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */ function handler(node, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace = pairs[pairIndex][1];\n let start = 0;\n /** @type {Array<Nodes>} */ const siblings = parent.children;\n const index = siblings.indexOf(node);\n let change = false;\n /** @type {Array<PhrasingContent>} */ let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node.value);\n while(match){\n const position = match.index;\n /** @type {RegExpMatchObject} */ const matchObject = {\n index: match.index,\n input: match.input,\n stack: [\n ...parents,\n node\n ]\n };\n let value = replace(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? {\n type: \"text\",\n value\n } : undefined;\n }\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node.value);\n }\n if (change) {\n if (start < node.value.length) {\n nodes.push({\n type: \"text\",\n value: node.value.slice(start)\n });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [\n node\n ];\n }\n return index + nodes.length;\n }\n}\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */ function toPairs(tupleOrList) {\n /** @type {Pairs} */ const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n /** @type {FindAndReplaceList} */ // @ts-expect-error: correct.\n const list = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [\n tupleOrList\n ];\n let index = -1;\n while(++index < list.length){\n const tuple = list[index];\n result.push([\n toExpression(tuple[0]),\n toFunction(tuple[1])\n ]);\n }\n return result;\n}\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */ function toExpression(find) {\n return typeof find === \"string\" ? new RegExp((0,escape_string_regexp__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(find), \"g\") : find;\n}\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */ function toFunction(replace) {\n return typeof replace === \"function\" ? replace : function() {\n return replace;\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZmluZC1hbmQtcmVwbGFjZS9saWIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7Ozs7OztDQVFDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0RDLEdBRXdDO0FBQ1k7QUFDaEI7QUFFckM7Ozs7Ozs7Ozs7Ozs7OztDQWVDLEdBQ00sU0FBU0csZUFBZUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLE9BQU87SUFDaEQsTUFBTUMsV0FBV0QsV0FBVyxDQUFDO0lBQzdCLE1BQU1FLFVBQVVOLHNEQUFPQSxDQUFDSyxTQUFTRSxNQUFNLElBQUksRUFBRTtJQUM3QyxNQUFNQyxRQUFRQyxRQUFRTjtJQUN0QixJQUFJTyxZQUFZLENBQUM7SUFFakIsTUFBTyxFQUFFQSxZQUFZRixNQUFNRyxNQUFNLENBQUU7UUFDakNaLHNFQUFZQSxDQUFDRyxNQUFNLFFBQVFVO0lBQzdCO0lBRUEsMEVBQTBFLEdBQzFFLFNBQVNBLFFBQVFDLElBQUksRUFBRUMsT0FBTztRQUM1QixJQUFJQyxRQUFRLENBQUM7UUFDYixnQ0FBZ0MsR0FDaEMsSUFBSUM7UUFFSixNQUFPLEVBQUVELFFBQVFELFFBQVFILE1BQU0sQ0FBRTtZQUMvQixNQUFNTSxTQUFTSCxPQUFPLENBQUNDLE1BQU07WUFDN0IscUNBQXFDLEdBQ3JDLE1BQU1HLFdBQVdGLGNBQWNBLFlBQVlHLFFBQVEsR0FBR0M7WUFFdEQsSUFDRWQsUUFDRVcsUUFDQUMsV0FBV0EsU0FBU0csT0FBTyxDQUFDSixVQUFVRyxXQUN0Q0osY0FFRjtnQkFDQTtZQUNGO1lBRUFBLGNBQWNDO1FBQ2hCO1FBRUEsSUFBSUQsYUFBYTtZQUNmLE9BQU9NLFFBQVFULE1BQU1DO1FBQ3ZCO0lBQ0Y7SUFFQTs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTUSxRQUFRVCxJQUFJLEVBQUVDLE9BQU87UUFDNUIsTUFBTUcsU0FB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QU9QLElBQUksQ0FBQztZQUFDVSxhQUFhRCxLQUFLLENBQUMsRUFBRTtZQUFHRSxXQUFXRixLQUFLLENBQUMsRUFBRTtTQUFFO0lBQzVEO0lBRUEsT0FBT0Y7QUFDVDtBQUVBOzs7Ozs7O0NBT0MsR0FDRCxTQUFTRyxhQUFheEIsSUFBSTtJQUN4QixPQUFPLE9BQU9BLFNBQVMsV0FBVyxJQUFJMEIsT0FBT25ELGdFQUFNQSxDQUFDeUIsT0FBTyxPQUFPQTtBQUNwRTtBQUVBOzs7Ozs7O0NBT0MsR0FDRCxTQUFTeUIsV0FBV3hCLE9BQU87SUFDekIsT0FBTyxPQUFPQSxZQUFZLGFBQ3RCQSxVQUNBO1FBQ0UsT0FBT0E7SUFDVDtBQUNOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1maW5kLWFuZC1yZXBsYWNlL2xpYi9pbmRleC5qcz9hNGNhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QaHJhc2luZ0NvbnRlbnR9IFBocmFzaW5nQ29udGVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Sb290fSBSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlRleHR9IFRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cycpLlRlc3R9IFRlc3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cycpLlZpc2l0b3JSZXN1bHR9IFZpc2l0b3JSZXN1bHRcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFJlZ0V4cE1hdGNoT2JqZWN0XG4gKiAgIEluZm8gb24gdGhlIG1hdGNoLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGluZGV4XG4gKiAgIFRoZSBpbmRleCBvZiB0aGUgc2VhcmNoIGF0IHdoaWNoIHRoZSByZXN1bHQgd2FzIGZvdW5kLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGlucHV0XG4gKiAgIEEgY29weSBvZiB0aGUgc2VhcmNoIHN0cmluZyBpbiB0aGUgdGV4dCBub2RlLlxuICogQHByb3BlcnR5IHtbLi4uQXJyYXk8UGFyZW50cz4sIFRleHRdfSBzdGFja1xuICogICBBbGwgYW5jZXN0b3JzIG9mIHRoZSB0ZXh0IG5vZGUsIHdoZXJlIHRoZSBsYXN0IG5vZGUgaXMgdGhlIHRleHQgaXRzZWxmLlxuICpcbiAqIEB0eXBlZGVmIHtSZWdFeHAgfCBzdHJpbmd9IEZpbmRcbiAqICAgUGF0dGVybiB0byBmaW5kLlxuICpcbiAqICAgU3RyaW5ncyBhcmUgZXNjYXBlZCBhbmQgdGhlbiB0dXJuZWQgaW50byBnbG9iYWwgZXhwcmVzc2lvbnMuXG4gKlxuICogQHR5cGVkZWYge0FycmF5PEZpbmRBbmRSZXBsYWNlVHVwbGU+fSBGaW5kQW5kUmVwbGFjZUxpc3RcbiAqICAgU2V2ZXJhbCBmaW5kIGFuZCByZXBsYWNlcywgaW4gYXJyYXkgZm9ybS5cbiAqXG4gKiBAdHlwZWRlZiB7W0ZpbmQsIFJlcGxhY2U/XX0gRmluZEFuZFJlcGxhY2VUdXBsZVxuICogICBGaW5kIGFuZCByZXBsYWNlIGluIHR1cGxlIGZvcm0uXG4gKlxuICogQHR5cGVkZWYge1JlcGxhY2VGdW5jdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFJlcGxhY2VcbiAqICAgVGhpbmcgdG8gcmVwbGFjZSB3aXRoLlxuICpcbiAqIEBjYWxsYmFjayBSZXBsYWNlRnVuY3Rpb25cbiAqICAgQ2FsbGJhY2sgY2FsbGVkIHdoZW4gYSBzZWFyY2ggbWF0Y2hlcy5cbiAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbWV0ZXJzXG4gKiAgIFRoZSBwYXJhbWV0ZXJzIGFyZSB0aGUgcmVzdWx0IG9mIGNvcnJlc3BvbmRpbmcgc2VhcmNoIGV4cHJlc3Npb246XG4gKlxuICogICAqIGB2YWx1ZWAgKGBzdHJpbmdgKSDigJQgd2hvbGUgbWF0Y2hcbiAqICAgKiBgLi4uY2FwdHVyZWAgKGBBcnJheTxzdHJpbmc+YCkg4oCUIG1hdGNoZXMgZnJvbSByZWdleCBjYXB0dXJlIGdyb3Vwc1xuICogICAqIGBtYXRjaGAgKGBSZWdFeHBNYXRjaE9iamVjdGApIOKAlCBpbmZvIG9uIHRoZSBtYXRjaFxuICogQHJldHVybnMge0FycmF5PFBocmFzaW5nQ29udGVudD4gfCBQaHJhc2luZ0NvbnRlbnQgfCBzdHJpbmcgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWR9XG4gKiAgIFRoaW5nIHRvIHJlcGxhY2Ugd2l0aC5cbiAqXG4gKiAgICogd2hlbiBgbnVsbGAsIGB1bmRlZmluZWRgLCBgJydgLCByZW1vdmUgdGhlIG1hdGNoXG4gKiAgICog4oCmb3Igd2hlbiBgZmFsc2VgLCBkbyBub3QgcmVwbGFjZSBhdCBhbGxcbiAqICAgKiDigKZvciB3aGVuIGBzdHJpbmdgLCByZXBsYWNlIHdpdGggYSB0ZXh0IG5vZGUgb2YgdGhhdCB2YWx1ZVxuICogICAqIOKApm9yIHdoZW4gYE5vZGVgIG9yIGBBcnJheTxOb2RlPmAsIHJlcGxhY2Ugd2l0aCB0aG9zZSBub2Rlc1xuICpcbiAqIEB0eXBlZGVmIHtbUmVnRXhwLCBSZXBsYWNlRnVuY3Rpb25dfSBQYWlyXG4gKiAgIE5vcm1hbGl6ZWQgZmluZCBhbmQgcmVwbGFjZS5cbiAqXG4gKiBAdHlwZWRlZiB7QXJyYXk8UGFpcj59IFBhaXJzXG4gKiAgIEFsbCBmaW5kIGFuZCByZXBsYWNlZC5cbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1Rlc3QgfCBudWxsIHwgdW5kZWZpbmVkfSBbaWdub3JlXVxuICogICBUZXN0IGZvciB3aGljaCBub2RlcyB0byBpZ25vcmUgKG9wdGlvbmFsKS5cbiAqL1xuXG5pbXBvcnQgZXNjYXBlIGZyb20gJ2VzY2FwZS1zdHJpbmctcmVnZXhwJ1xuaW1wb3J0IHt2aXNpdFBhcmVudHN9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cydcbmltcG9ydCB7Y29udmVydH0gZnJvbSAndW5pc3QtdXRpbC1pcydcblxuLyoqXG4gKiBGaW5kIHBhdHRlcm5zIGluIGEgdHJlZSBhbmQgcmVwbGFjZSB0aGVtLlxuICpcbiAqIFRoZSBhbGdvcml0aG0gc2VhcmNoZXMgdGhlIHRyZWUgaW4gKnByZW9yZGVyKiBmb3IgY29tcGxldGUgdmFsdWVzIGluIGBUZXh0YFxuICogbm9kZXMuXG4gKiBQYXJ0aWFsIG1hdGNoZXMgYXJlIG5vdCBzdXBwb3J0ZWQuXG4gKlxuICogQHBhcmFtIHtOb2Rlc30gdHJlZVxuICogICBUcmVlIHRvIGNoYW5nZS5cbiAqIEBwYXJhbSB7RmluZEFuZFJlcGxhY2VMaXN0IHwgRmluZEFuZFJlcGxhY2VUdXBsZX0gbGlzdFxuICogICBQYXR0ZXJucyB0byBmaW5kLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKHdoZW4gYGZpbmRgIGlzIG5vdCBgRmluZGApLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBbmRSZXBsYWNlKHRyZWUsIGxpc3QsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG4gIGNvbnN0IGlnbm9yZWQgPSBjb252ZXJ0KHNldHRpbmdzLmlnbm9yZSB8fCBbXSlcbiAgY29uc3QgcGFpcnMgPSB0b1BhaXJzKGxpc3QpXG4gIGxldCBwYWlySW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK3BhaXJJbmRleCA8IHBhaXJzLmxlbmd0aCkge1xuICAgIHZpc2l0UGFyZW50cyh0cmVlLCAndGV4dCcsIHZpc2l0b3IpXG4gIH1cblxuICAvKiogQHR5cGUge2ltcG9ydCgndW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzJykuQnVpbGRWaXNpdG9yPFJvb3QsICd0ZXh0Jz59ICovXG4gIGZ1bmN0aW9uIHZpc2l0b3Iobm9kZSwgcGFyZW50cykge1xuICAgIGxldCBpbmRleCA9IC0xXG4gICAgLyoqIEB0eXBlIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSAqL1xuICAgIGxldCBncmFuZHBhcmVudFxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBwYXJlbnRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgcGFyZW50ID0gcGFyZW50c1tpbmRleF1cbiAgICAgIC8qKiBAdHlwZSB7QXJyYXk8Tm9kZXM+IHwgdW5kZWZpbmVkfSAqL1xuICAgICAgY29uc3Qgc2libGluZ3MgPSBncmFuZHBhcmVudCA/IGdyYW5kcGFyZW50LmNoaWxkcmVuIDogdW5kZWZpbmVkXG5cbiAgICAgIGlmIChcbiAgICAgICAgaWdub3JlZChcbiAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgc2libGluZ3MgPyBzaWJsaW5ncy5pbmRleE9mKHBhcmVudCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgZ3JhbmRwYXJlbnRcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBncmFuZHBhcmVudCA9IHBhcmVudFxuICAgIH1cblxuICAgIGlmIChncmFuZHBhcmVudCkge1xuICAgICAgcmV0dXJuIGhhbmRsZXIobm9kZSwgcGFyZW50cylcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGEgdGV4dCBub2RlIHdoaWNoIGlzIG5vdCBpbiBhbiBpZ25vcmVkIHBhcmVudC5cbiAgICpcbiAgICogQHBhcmFtIHtUZXh0fSBub2RlXG4gICAqICAgVGV4dCBub2RlLlxuICAgKiBAcGFyYW0ge0FycmF5PFBhcmVudHM+fSBwYXJlbnRzXG4gICAqICAgUGFyZW50cy5cbiAgICogQHJldHVybnMge1Zpc2l0b3JSZXN1bHR9XG4gICAqICAgUmVzdWx0LlxuICAgKi9cbiAgZnVuY3Rpb24gaGFuZGxlcihub2RlLCBwYXJlbnRzKSB7XG4gICAgY29uc3QgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdXG4gICAgY29uc3QgZmluZCA9IHBhaXJzW3BhaXJJbmRleF1bMF1cbiAgICBjb25zdCByZXBsYWNlID0gcGFpcnNbcGFpckluZGV4XVsxXVxuICAgIGxldCBzdGFydCA9IDBcbiAgICAvKiogQHR5cGUge0FycmF5PE5vZGVzPn0gKi9cbiAgICBjb25zdCBzaWJsaW5ncyA9IHBhcmVudC5jaGlsZHJlblxuICAgIGNvbnN0IGluZGV4ID0gc2libGluZ3MuaW5kZXhPZihub2RlKVxuICAgIGxldCBjaGFuZ2UgPSBmYWxzZVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8UGhyYXNpbmdDb250ZW50Pn0gKi9cbiAgICBsZXQgbm9kZXMgPSBbXVxuXG4gICAgZmluZC5sYXN0SW5kZXggPSAwXG5cbiAgICBsZXQgbWF0Y2ggPSBmaW5kLmV4ZWMobm9kZS52YWx1ZSlcblxuICAgIHdoaWxlIChtYXRjaCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBtYXRjaC5pbmRleFxuICAgICAgLyoqIEB0eXBlIHtSZWdFeHBNYXRjaE9iamVjdH0gKi9cbiAgICAgIGNvbnN0IG1hdGNoT2JqZWN0ID0ge1xuICAgICAgICBpbmRleDogbWF0Y2guaW5kZXgsXG4gICAgICAgIGlucHV0OiBtYXRjaC5pbnB1dCxcbiAgICAgICAgc3RhY2s6IFsuLi5wYXJlbnRzLCBub2RlXVxuICAgICAgfVxuICAgICAgbGV0IHZhbHVlID0gcmVwbGFjZSguLi5tYXRjaCwgbWF0Y2hPYmplY3QpXG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUubGVuZ3RoID4gMCA/IHt0eXBlOiAndGV4dCcsIHZhbHVlfSA6IHVuZGVmaW5lZFxuICAgICAgfVxuXG4gICAgICAvLyBJdCB3YXNu4oCZdCBhIG1hdGNoIGFmdGVyIGFsbC5cbiAgICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gRmFsc2UgYWN0cyBhcyBpZiB0aGVyZSB3YXMgbm8gbWF0Y2guXG4gICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gcmVzZXQgYGxhc3RJbmRleGAsIHdoaWNoIGN1cnJlbnRseSBiZWluZyBhdCB0aGUgZW5kIG9mXG4gICAgICAgIC8vIHRoZSBjdXJyZW50IG1hdGNoLCB0byB0aGUgYmVnaW5uaW5nLlxuICAgICAgICBmaW5kLmxhc3RJbmRleCA9IHBvc2l0aW9uICsgMVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0YXJ0ICE9PSBwb3NpdGlvbikge1xuICAgICAgICAgIG5vZGVzLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgdmFsdWU6IG5vZGUudmFsdWUuc2xpY2Uoc3RhcnQsIHBvc2l0aW9uKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICBub2Rlcy5wdXNoKC4uLnZhbHVlKVxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgbm9kZXMucHVzaCh2YWx1ZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXJ0ID0gcG9zaXRpb24gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgY2hhbmdlID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoIWZpbmQuZ2xvYmFsKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIG1hdGNoID0gZmluZC5leGVjKG5vZGUudmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZSkge1xuICAgICAgaWYgKHN0YXJ0IDwgbm9kZS52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgbm9kZXMucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogbm9kZS52YWx1ZS5zbGljZShzdGFydCl9KVxuICAgICAgfVxuXG4gICAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAxLCAuLi5ub2RlcylcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZXMgPSBbbm9kZV1cbiAgICB9XG5cbiAgICByZXR1cm4gaW5kZXggKyBub2Rlcy5sZW5ndGhcbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYSB0dXBsZSBvciBhIGxpc3Qgb2YgdHVwbGVzIGludG8gcGFpcnMuXG4gKlxuICogQHBhcmFtIHtGaW5kQW5kUmVwbGFjZUxpc3QgfCBGaW5kQW5kUmVwbGFjZVR1cGxlfSB0dXBsZU9yTGlzdFxuICogICBTY2hlbWEuXG4gKiBAcmV0dXJucyB7UGFpcnN9XG4gKiAgIENsZWFuIHBhaXJzLlxuICovXG5mdW5jdGlvbiB0b1BhaXJzKHR1cGxlT3JMaXN0KSB7XG4gIC8qKiBAdHlwZSB7UGFpcnN9ICovXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KHR1cGxlT3JMaXN0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGZpbmQgYW5kIHJlcGxhY2UgdHVwbGUgb3IgbGlzdCBvZiB0dXBsZXMnKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtGaW5kQW5kUmVwbGFjZUxpc3R9ICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IGNvcnJlY3QuXG4gIGNvbnN0IGxpc3QgPVxuICAgICF0dXBsZU9yTGlzdFswXSB8fCBBcnJheS5pc0FycmF5KHR1cGxlT3JMaXN0WzBdKVxuICAgICAgPyB0dXBsZU9yTGlzdFxuICAgICAgOiBbdHVwbGVPckxpc3RdXG5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgY29uc3QgdHVwbGUgPSBsaXN0W2luZGV4XVxuICAgIHJlc3VsdC5wdXNoKFt0b0V4cHJlc3Npb24odHVwbGVbMF0pLCB0b0Z1bmN0aW9uKHR1cGxlWzFdKV0pXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogVHVybiBhIGZpbmQgaW50byBhbiBleHByZXNzaW9uLlxuICpcbiAqIEBwYXJhbSB7RmluZH0gZmluZFxuICogICBGaW5kLlxuICogQHJldHVybnMge1JlZ0V4cH1cbiAqICAgRXhwcmVzc2lvbi5cbiAqL1xuZnVuY3Rpb24gdG9FeHByZXNzaW9uKGZpbmQpIHtcbiAgcmV0dXJuIHR5cGVvZiBmaW5kID09PSAnc3RyaW5nJyA/IG5ldyBSZWdFeHAoZXNjYXBlKGZpbmQpLCAnZycpIDogZmluZFxufVxuXG4vKipcbiAqIFR1cm4gYSByZXBsYWNlIGludG8gYSBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1JlcGxhY2V9IHJlcGxhY2VcbiAqICAgUmVwbGFjZS5cbiAqIEByZXR1cm5zIHtSZXBsYWNlRnVuY3Rpb259XG4gKiAgIEZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiB0b0Z1bmN0aW9uKHJlcGxhY2UpIHtcbiAgcmV0dXJuIHR5cGVvZiByZXBsYWNlID09PSAnZnVuY3Rpb24nXG4gICAgPyByZXBsYWNlXG4gICAgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlXG4gICAgICB9XG59XG4iXSwibmFtZXMiOlsiZXNjYXBlIiwidmlzaXRQYXJlbnRzIiwiY29udmVydCIsImZpbmRBbmRSZXBsYWNlIiwidHJlZSIsImxpc3QiLCJvcHRpb25zIiwic2V0dGluZ3MiLCJpZ25vcmVkIiwiaWdub3JlIiwicGFpcnMiLCJ0b1BhaXJzIiwicGFpckluZGV4IiwibGVuZ3RoIiwidmlzaXRvciIsIm5vZGUiLCJwYXJlbnRzIiwiaW5kZXgiLCJncmFuZHBhcmVudCIsInBhcmVudCIsInNpYmxpbmdzIiwiY2hpbGRyZW4iLCJ1bmRlZmluZWQiLCJpbmRleE9mIiwiaGFuZGxlciIsImZpbmQiLCJyZXBsYWNlIiwic3RhcnQiLCJjaGFuZ2UiLCJub2RlcyIsImxhc3RJbmRleCIsIm1hdGNoIiwiZXhlYyIsInZhbHVlIiwicG9zaXRpb24iLCJtYXRjaE9iamVjdCIsImlucHV0Iiwic3RhY2siLCJ0eXBlIiwicHVzaCIsInNsaWNlIiwiQXJyYXkiLCJpc0FycmF5IiwiZ2xvYmFsIiwic3BsaWNlIiwidHVwbGVPckxpc3QiLCJyZXN1bHQiLCJUeXBlRXJyb3IiLCJ0dXBsZSIsInRvRXhwcmVzc2lvbiIsInRvRnVuY3Rpb24iLCJSZWdFeHAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-find-and-replace/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js":
-/*!*************************************************************************************************!*\
- !*** ../../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js ***!
- \*************************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ escapeStringRegexp)\n/* harmony export */ });\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZmluZC1hbmQtcmVwbGFjZS9ub2RlX21vZHVsZXMvZXNjYXBlLXN0cmluZy1yZWdleHAvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlLFNBQVNBLG1CQUFtQkMsTUFBTTtJQUNoRCxJQUFJLE9BQU9BLFdBQVcsVUFBVTtRQUMvQixNQUFNLElBQUlDLFVBQVU7SUFDckI7SUFFQSxrRkFBa0Y7SUFDbEYsNkpBQTZKO0lBQzdKLE9BQU9ELE9BQ0xFLE9BQU8sQ0FBQyx1QkFBdUIsUUFDL0JBLE9BQU8sQ0FBQyxNQUFNO0FBQ2pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1maW5kLWFuZC1yZXBsYWNlL25vZGVfbW9kdWxlcy9lc2NhcGUtc3RyaW5nLXJlZ2V4cC9pbmRleC5qcz9hOTliIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHJpbmcpIHtcblx0aWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYSBzdHJpbmcnKTtcblx0fVxuXG5cdC8vIEVzY2FwZSBjaGFyYWN0ZXJzIHdpdGggc3BlY2lhbCBtZWFuaW5nIGVpdGhlciBpbnNpZGUgb3Igb3V0c2lkZSBjaGFyYWN0ZXIgc2V0cy5cblx0Ly8gVXNlIGEgc2ltcGxlIGJhY2tzbGFzaCBlc2NhcGUgd2hlbiBpdOKAmXMgYWx3YXlzIHZhbGlkLCBhbmQgYSBgXFx4bm5gIGVzY2FwZSB3aGVuIHRoZSBzaW1wbGVyIGZvcm0gd291bGQgYmUgZGlzYWxsb3dlZCBieSBVbmljb2RlIHBhdHRlcm5z4oCZIHN0cmljdGVyIGdyYW1tYXIuXG5cdHJldHVybiBzdHJpbmdcblx0XHQucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy5dL2csICdcXFxcJCYnKVxuXHRcdC5yZXBsYWNlKC8tL2csICdcXFxceDJkJyk7XG59XG4iXSwibmFtZXMiOlsiZXNjYXBlU3RyaW5nUmVnZXhwIiwic3RyaW5nIiwiVHlwZUVycm9yIiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-from-markdown/dev/lib/index.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-from-markdown/dev/lib/index.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fromMarkdown: () => (/* binding */ fromMarkdown)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var mdast_util_to_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mdast-util-to-string */ \"(ssr)/../../node_modules/mdast-util-to-string/lib/index.js\");\n/* harmony import */ var micromark__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark */ \"(ssr)/../../node_modules/micromark/dev/lib/postprocess.js\");\n/* harmony import */ var micromark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark */ \"(ssr)/../../node_modules/micromark/dev/lib/parse.js\");\n/* harmony import */ var micromark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark */ \"(ssr)/../../node_modules/micromark/dev/lib/preprocess.js\");\n/* harmony import */ var micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-util-decode-numeric-character-reference */ \"(ssr)/../../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js\");\n/* harmony import */ var micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-util-decode-string */ \"(ssr)/../../node_modules/micromark-util-decode-string/dev/index.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"(ssr)/../../node_modules/micromark-util-normalize-identifier/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! decode-named-character-reference */ \"(ssr)/../../node_modules/decode-named-character-reference/index.js\");\n/* harmony import */ var unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! unist-util-stringify-position */ \"(ssr)/../../node_modules/unist-util-stringify-position/lib/index.js\");\n/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */ /**\n * @typedef {Omit<Parent, 'children' | 'type'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */ /**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */ /**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Fragment | Nodes>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */ \n\n\n\n\n\n\n\n\nconst own = {}.hasOwnProperty;\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */ function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== \"string\") {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)((0,micromark__WEBPACK_IMPORTED_MODULE_0__.postprocess)((0,micromark__WEBPACK_IMPORTED_MODULE_1__.parse)(options).document().write((0,micromark__WEBPACK_IMPORTED_MODULE_2__.preprocess)()(value, encoding, true))));\n}\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */ function compiler(options) {\n /** @type {Config} */ const config = {\n transforms: [],\n canContainEols: [\n \"emphasis\",\n \"fragment\",\n \"heading\",\n \"paragraph\",\n \"strong\"\n ],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n /** @type {CompileData} */ const data = {};\n return compile;\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */ function compile(events) {\n /** @type {Root} */ let tree = {\n type: \"root\",\n children: []\n };\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */ const context = {\n stack: [\n tree\n ],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array<number>} */ const listStack = [];\n let index = -1;\n while(++index < events.length){\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listOrdered || events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listUnordered) {\n if (events[index][0] === \"enter\") {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(typeof tail === \"number\", \"expected list ot be open\");\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while(++index < events.length){\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n // Call transforms.\n index = -1;\n while(++index < config.transforms.length){\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */ function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */ let listItem;\n /** @type {number | undefined} */ let lineIndex;\n /** @type {number | undefined} */ let firstBlankLineIndex;\n /** @type {boolean | undefined} */ let atMarker;\n while(++index <= length){\n const event = events[index];\n switch(event[1].type){\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listUnordered:\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listOrdered:\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.blockQuote:\n {\n if (event[0] === \"enter\") {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEndingBlank:\n {\n if (event[0] === \"enter\") {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.linePrefix:\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listItemValue:\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listItemMarker:\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listItemPrefix:\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listItemPrefixWhitespace:\n {\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === \"enter\" && event[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listItemPrefix || containerBalance === -1 && event[0] === \"exit\" && (event[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listUnordered || event[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listOrdered)) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while(tailIndex--){\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding || tailEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEndingBlank) {\n if (tailEvent[0] === \"exit\") continue;\n if (lineIndex) {\n events[lineIndex][1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEndingBlank;\n listSpread = true;\n }\n tailEvent[1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding;\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.linePrefix || tailEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.blockQuotePrefix || tailEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.blockQuotePrefixWhitespace || tailEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.blockQuoteMarker || tailEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listItemIndent) {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, [\n \"exit\",\n listItem,\n event[2]\n ]);\n index++;\n length++;\n }\n // Create a new list item.\n if (event[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.listItemPrefix) {\n /** @type {Token} */ const item = {\n type: \"listItem\",\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, [\n \"enter\",\n item,\n event[2]\n ]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */ function opener(create, and) {\n return open;\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */ function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */ function buffer() {\n this.stack.push({\n type: \"fragment\",\n children: []\n });\n }\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */ function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(parent, \"expected `parent`\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(\"children\" in parent, \"expected `parent`\");\n /** @type {Array<Nodes>} */ const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([\n token,\n errorHandler\n ]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */ function closer(and) {\n return close;\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */ function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */ function exit(token, onExitError) {\n const node = this.stack.pop();\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected `node`\");\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error(\"Cannot close `\" + token.type + \"` (\" + (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({\n start: token.start,\n end: token.end\n }) + \"): it’s not open\");\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type !== \"fragment\", \"unexpected fragment `exit`ed\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.position, \"expected `position` to be defined\");\n node.position.end = point(token.end);\n }\n /**\n * @this {CompileContext}\n * @returns {string}\n */ function resume() {\n return (0,mdast_util_to_string__WEBPACK_IMPORTED_MODULE_6__.toString)(this.stack.pop());\n }\n //\n // Handlers.\n //\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(ancestor, \"expected nodes on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(ancestor.type === \"list\", \"expected list on stack\");\n ancestor.start = Number.parseInt(this.sliceSerialize(token), micromark_util_symbol__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"code\", \"expected code on stack\");\n node.lang = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"code\", \"expected code on stack\");\n node.meta = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"code\", \"expected code on stack\");\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, \"\");\n this.data.flowCodeInside = undefined;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"code\", \"expected code on stack\");\n node.value = data.replace(/(\\r?\\n|\\r)$/g, \"\");\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"definition\", \"expected definition on stack\");\n node.label = label;\n node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(this.sliceSerialize(token)).toLowerCase();\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"definition\", \"expected definition on stack\");\n node.title = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"definition\", \"expected definition on stack\");\n node.url = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"heading\", \"expected heading on stack\");\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(depth === 1 || depth === 2 || depth === 3 || depth === 4 || depth === 5 || depth === 6, \"expected `depth` between `1` and `6`\");\n node.depth = depth;\n }\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"heading\", \"expected heading on stack\");\n node.depth = this.sliceSerialize(token).codePointAt(0) === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_9__.codes.equalsTo ? 1 : 2;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(\"children\" in node, \"expected parent on stack\");\n /** @type {Array<Nodes>} */ const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== \"text\") {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitdata(token) {\n const tail = this.stack.pop();\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(tail, \"expected a `node` to be on the stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(\"value\" in tail, \"expected a `literal` to be on the stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(tail.position, \"expected `node` to have an open position\");\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(context, \"expected `node`\");\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(\"children\" in context, \"expected `parent`\");\n const tail = context.children[context.children.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(tail.position, \"expected tail to have a starting position\");\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"html\", \"expected html on stack\");\n node.value = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"html\", \"expected html on stack\");\n node.value = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"inlineCode\", \"expected inline code on stack\");\n node.value = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"link\", \"expected link on stack\");\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */ const referenceType = this.data.referenceType || \"shortcut\";\n node.type += \"Reference\";\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"image\", \"expected image on stack\");\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */ const referenceType = this.data.referenceType || \"shortcut\";\n node.type += \"Reference\";\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(ancestor, \"expected ancestor on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(ancestor.type === \"image\" || ancestor.type === \"link\", \"expected image or link on stack\");\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = (0,micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_10__.decodeString)(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(string).toLowerCase();\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(fragment, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(fragment.type === \"fragment\", \"expected fragment on stack\");\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"image\" || node.type === \"link\", \"expected image or link on stack\");\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === \"link\") {\n /** @type {Array<PhrasingContent>} */ const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"image\" || node.type === \"link\", \"expected image or link on stack\");\n node.url = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"image\" || node.type === \"link\", \"expected image or link on stack\");\n node.title = data;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitresource() {\n this.data.inReference = undefined;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onenterreference() {\n this.data.referenceType = \"collapsed\";\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"image\" || node.type === \"link\", \"expected image reference or link reference on stack\");\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = \"full\";\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitcharacterreferencemarker(token) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(token.type === \"characterReferenceMarkerNumeric\" || token.type === \"characterReferenceMarkerHexadecimal\");\n this.data.characterReferenceType = token.type;\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */ let value;\n if (type) {\n value = (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_11__.decodeNumericCharacterReference)(data, type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.characterReferenceMarkerNumeric ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseHexadecimal);\n this.data.characterReferenceType = undefined;\n } else {\n const result = (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_12__.decodeNamedCharacterReference)(data);\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(result !== false, \"expected reference to decode\");\n value = result;\n }\n const tail = this.stack.pop();\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(tail, \"expected `node`\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(tail.position, \"expected `node.position`\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(\"value\" in tail, \"expected `node.value`\");\n tail.value += value;\n tail.position.end = point(token.end);\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"link\", \"expected link on stack\");\n node.url = this.sliceSerialize(token);\n }\n /**\n * @this {CompileContext}\n * @type {Handle}\n */ function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node, \"expected node on stack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(node.type === \"link\", \"expected link on stack\");\n node.url = \"mailto:\" + this.sliceSerialize(token);\n }\n //\n // Creaters.\n //\n /** @returns {Blockquote} */ function blockQuote() {\n return {\n type: \"blockquote\",\n children: []\n };\n }\n /** @returns {Code} */ function codeFlow() {\n return {\n type: \"code\",\n lang: null,\n meta: null,\n value: \"\"\n };\n }\n /** @returns {InlineCode} */ function codeText() {\n return {\n type: \"inlineCode\",\n value: \"\"\n };\n }\n /** @returns {Definition} */ function definition() {\n return {\n type: \"definition\",\n identifier: \"\",\n label: null,\n title: null,\n url: \"\"\n };\n }\n /** @returns {Emphasis} */ function emphasis() {\n return {\n type: \"emphasis\",\n children: []\n };\n }\n /** @returns {Heading} */ function heading() {\n return {\n type: \"heading\",\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n /** @returns {Break} */ function hardBreak() {\n return {\n type: \"break\"\n };\n }\n /** @returns {Html} */ function html() {\n return {\n type: \"html\",\n value: \"\"\n };\n }\n /** @returns {Image} */ function image() {\n return {\n type: \"image\",\n title: null,\n url: \"\",\n alt: null\n };\n }\n /** @returns {Link} */ function link() {\n return {\n type: \"link\",\n title: null,\n url: \"\",\n children: []\n };\n }\n /**\n * @param {Token} token\n * @returns {List}\n */ function list(token) {\n return {\n type: \"list\",\n ordered: token.type === \"listOrdered\",\n start: null,\n spread: token._spread,\n children: []\n };\n }\n /**\n * @param {Token} token\n * @returns {ListItem}\n */ function listItem(token) {\n return {\n type: \"listItem\",\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n /** @returns {Paragraph} */ function paragraph() {\n return {\n type: \"paragraph\",\n children: []\n };\n }\n /** @returns {Strong} */ function strong() {\n return {\n type: \"strong\",\n children: []\n };\n }\n /** @returns {Text} */ function text() {\n return {\n type: \"text\",\n value: \"\"\n };\n }\n /** @returns {ThematicBreak} */ function thematicBreak() {\n return {\n type: \"thematicBreak\"\n };\n }\n}\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */ function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */ function configure(combined, extensions) {\n let index = -1;\n while(++index < extensions.length){\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */ function extension(combined, extension) {\n /** @type {keyof Extension} */ let key;\n for(key in extension){\n if (own.call(extension, key)) {\n switch(key){\n case \"canContainEols\":\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case \"transforms\":\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case \"enter\":\n case \"exit\":\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n }\n }\n }\n}\n/** @type {OnEnterError} */ function defaultOnError(left, right) {\n if (left) {\n throw new Error(\"Cannot close `\" + left.type + \"` (\" + (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({\n start: left.start,\n end: left.end\n }) + \"): a different token (`\" + right.type + \"`, \" + (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({\n start: right.start,\n end: right.end\n }) + \") is open\");\n } else {\n throw new Error(\"Cannot close document, a token (`\" + right.type + \"`, \" + (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({\n start: right.start,\n end: right.end\n }) + \") is still open\");\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bi9kZXYvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWlDQyxHQUVEOztDQUVDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBK0NDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZDQyxHQUVrQztBQUNVO0FBQ1c7QUFDeUM7QUFDeEM7QUFDYztBQUNWO0FBQ2lCO0FBQ2Y7QUFFL0QsTUFBTWMsTUFBTSxDQUFDLEVBQUVDLGNBQWM7QUFFN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQkMsR0FDTSxTQUFTQyxhQUFhQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsT0FBTztJQUNuRCxJQUFJLE9BQU9ELGFBQWEsVUFBVTtRQUNoQ0MsVUFBVUQ7UUFDVkEsV0FBV0U7SUFDYjtJQUVBLE9BQU9DLFNBQVNGLFNBQ2RmLHNEQUFXQSxDQUNURCxnREFBS0EsQ0FBQ2dCLFNBQVNHLFFBQVEsR0FBR0MsS0FBSyxDQUFDbEIscURBQVVBLEdBQUdZLE9BQU9DLFVBQVU7QUFHcEU7QUFFQTs7OztDQUlDLEdBQ0QsU0FBU0csU0FBU0YsT0FBTztJQUN2QixtQkFBbUIsR0FDbkIsTUFBTUssU0FBUztRQUNiQyxZQUFZLEVBQUU7UUFDZEMsZ0JBQWdCO1lBQUM7WUFBWTtZQUFZO1lBQVc7WUFBYTtTQUFTO1FBQzFFQyxPQUFPO1lBQ0xDLFVBQVVDLE9BQU9DO1lBQ2pCQyxrQkFBa0JDO1lBQ2xCQyxlQUFlRDtZQUNmRSxZQUFZTCxPQUFPTTtZQUNuQkMsWUFBWVAsT0FBT087WUFDbkJDLGlCQUFpQkw7WUFDakJNLG9CQUFvQk47WUFDcEJPLFlBQVlWLE9BQU9XO1lBQ25CQyxxQkFBcUJDO1lBQ3JCQyxx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LE1BQ1Isc0NBQ0V1QyxNQUFNL0YsSUFBSSxHQUNWLFFBQ0FuSCxnRkFBaUJBLENBQUM7WUFBQ3VJLE9BQU8yRSxNQUFNM0UsS0FBSztZQUFFSyxLQUFLc0UsTUFBTXRFLEdBQUc7UUFBQSxLQUNyRDtJQUVOO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWZyb20tbWFya2Rvd24vZGV2L2xpYi9pbmRleC5qcz82ODlmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5CcmVha30gQnJlYWtcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuQmxvY2txdW90ZX0gQmxvY2txdW90ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Db2RlfSBDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkRlZmluaXRpb259IERlZmluaXRpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuRW1waGFzaXN9IEVtcGhhc2lzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkhlYWRpbmd9IEhlYWRpbmdcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuSHRtbH0gSHRtbFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5JbWFnZX0gSW1hZ2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuSW5saW5lQ29kZX0gSW5saW5lQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5MaW5rfSBMaW5rXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkxpc3R9IExpc3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuTGlzdEl0ZW19IExpc3RJdGVtXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJhZ3JhcGh9IFBhcmFncmFwaFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnR9IFBhcmVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QaHJhc2luZ0NvbnRlbnR9IFBocmFzaW5nQ29udGVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5SZWZlcmVuY2VUeXBlfSBSZWZlcmVuY2VUeXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuU3Ryb25nfSBTdHJvbmdcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuVGV4dH0gVGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5UaGVtYXRpY0JyZWFrfSBUaGVtYXRpY0JyZWFrXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FbmNvZGluZ30gRW5jb2RpbmdcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlBhcnNlT3B0aW9uc30gUGFyc2VPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5WYWx1ZX0gVmFsdWVcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuQ29tcGlsZURhdGF9IENvbXBpbGVEYXRhXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T21pdDxQYXJlbnQsICdjaGlsZHJlbicgfCAndHlwZSc+ICYge3R5cGU6ICdmcmFnbWVudCcsIGNoaWxkcmVuOiBBcnJheTxQaHJhc2luZ0NvbnRlbnQ+fX0gRnJhZ21lbnRcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBUcmFuc2Zvcm1cbiAqICAgRXh0cmEgdHJhbnNmb3JtLCB0byBjaGFuZ2UgdGhlIEFTVCBhZnRlcndhcmRzLlxuICogQHBhcmFtIHtSb290fSB0cmVlXG4gKiAgIFRyZWUgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybnMge1Jvb3QgfCBudWxsIHwgdW5kZWZpbmVkIHwgdm9pZH1cbiAqICAgTmV3IHRyZWUgb3Igbm90aGluZyAoaW4gd2hpY2ggY2FzZSB0aGUgY3VycmVudCB0cmVlIGlzIHVzZWQpLlxuICpcbiAqIEBjYWxsYmFjayBIYW5kbGVcbiAqICAgSGFuZGxlIGEgdG9rZW4uXG4gKiBAcGFyYW0ge0NvbXBpbGVDb250ZXh0fSB0aGlzXG4gKiAgIENvbnRleHQuXG4gKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICogICBDdXJyZW50IHRva2VuLlxuICogQHJldHVybnMge3VuZGVmaW5lZCB8IHZvaWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIEhhbmRsZT59IEhhbmRsZXNcbiAqICAgVG9rZW4gdHlwZXMgbWFwcGluZyB0byBoYW5kbGVzXG4gKlxuICogQGNhbGxiYWNrIE9uRW50ZXJFcnJvclxuICogICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGByaWdodGAgdG9rZW4gaXMgb3BlbiwgYnV0IGl0IGlzIGNsb3NlZCAoYnkgdGhlXG4gKiAgIGBsZWZ0YCB0b2tlbikgb3IgYmVjYXVzZSB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LlxuICogQHBhcmFtIHtPbWl0PENvbXBpbGVDb250ZXh0LCAnc2xpY2VTZXJpYWxpemUnPn0gdGhpc1xuICogICBDb250ZXh0LlxuICogQHBhcmFtIHtUb2tlbiB8IHVuZGVmaW5lZH0gbGVmdFxuICogICBMZWZ0IHRva2VuLlxuICogQHBhcmFtIHtUb2tlbn0gcmlnaHRcbiAqICAgUmlnaHQgdG9rZW4uXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICpcbiAqIEBjYWxsYmFjayBPbkV4aXRFcnJvclxuICogICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGByaWdodGAgdG9rZW4gaXMgb3BlbiBidXQgaXQgaXMgY2xvc2VkIGJ5XG4gKiAgIGV4aXRpbmcgdGhlIGBsZWZ0YCB0b2tlbi5cbiAqIEBwYXJhbSB7T21pdDxDb21waWxlQ29udGV4dCwgJ3NsaWNlU2VyaWFsaXplJz59IHRoaXNcbiAqICAgQ29udGV4dC5cbiAqIEBwYXJhbSB7VG9rZW59IGxlZnRcbiAqICAgTGVmdCB0b2tlbi5cbiAqIEBwYXJhbSB7VG9rZW59IHJpZ2h0XG4gKiAgIFJpZ2h0IHRva2VuLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqXG4gKiBAdHlwZWRlZiB7W1Rva2VuLCBPbkVudGVyRXJyb3IgfCB1bmRlZmluZWRdfSBUb2tlblR1cGxlXG4gKiAgIE9wZW4gdG9rZW4gb24gdGhlIHN0YWNrLCB3aXRoIGFuIG9wdGlvbmFsIGVycm9yIGhhbmRsZXIgZm9yIHdoZW5cbiAqICAgdGhhdCB0b2tlbiBpc27igJl0IGNsb3NlZCBwcm9wZXJseS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIENvbmZpZ1xuICogICBDb25maWd1cmF0aW9uLlxuICpcbiAqICAgV2UgaGF2ZSBvdXIgZGVmYXVsdHMsIGJ1dCBleHRlbnNpb25zIHdpbGwgYWRkIG1vcmUuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IGNhbkNvbnRhaW5Fb2xzXG4gKiAgIFRva2VuIHR5cGVzIHdoZXJlIGxpbmUgZW5kaW5ncyBhcmUgdXNlZC5cbiAqIEBwcm9wZXJ0eSB7SGFuZGxlc30gZW50ZXJcbiAqICAgT3BlbmluZyBoYW5kbGVzLlxuICogQHByb3BlcnR5IHtIYW5kbGVzfSBleGl0XG4gKiAgIENsb3NpbmcgaGFuZGxlcy5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8VHJhbnNmb3JtPn0gdHJhbnNmb3Jtc1xuICogICBUcmVlIHRyYW5zZm9ybXMuXG4gKlxuICogQHR5cGVkZWYge1BhcnRpYWw8Q29uZmlnPn0gRXh0ZW5zaW9uXG4gKiAgIENoYW5nZSBob3cgbWFya2Rvd24gdG9rZW5zIGZyb20gbWljcm9tYXJrIGFyZSB0dXJuZWQgaW50byBtZGFzdC5cbiAqXG4gKiBAdHlwZWRlZiBDb21waWxlQ29udGV4dFxuICogICBtZGFzdCBjb21waWxlciBjb250ZXh0LlxuICogQHByb3BlcnR5IHtBcnJheTxGcmFnbWVudCB8IE5vZGVzPn0gc3RhY2tcbiAqICAgU3RhY2sgb2Ygbm9kZXMuXG4gKiBAcHJvcGVydHkge0FycmF5PFRva2VuVHVwbGU+fSB0b2tlblN0YWNrXG4gKiAgIFN0YWNrIG9mIHRva2Vucy5cbiAqIEBwcm9wZXJ0eSB7KHRoaXM6IENvbXBpbGVDb250ZXh0KSA9PiB1bmRlZmluZWR9IGJ1ZmZlclxuICogICBDYXB0dXJlIHNvbWUgb2YgdGhlIG91dHB1dCBkYXRhLlxuICogQHByb3BlcnR5IHsodGhpczogQ29tcGlsZUNvbnRleHQpID0+IHN0cmluZ30gcmVzdW1lXG4gKiAgIFN0b3AgY2FwdHVyaW5nIGFuZCBhY2Nlc3MgdGhlIG91dHB1dCBkYXRhLlxuICogQHByb3BlcnR5IHsodGhpczogQ29tcGlsZUNvbnRleHQsIG5vZGU6IE5vZGVzLCB0b2tlbjogVG9rZW4sIG9uRXJyb3I/OiBPbkVudGVyRXJyb3IpID0+IHVuZGVmaW5lZH0gZW50ZXJcbiAqICAgRW50ZXIgYSBub2RlLlxuICogQHByb3BlcnR5IHsodGhpczogQ29tcGlsZUNvbnRleHQsIHRva2VuOiBUb2tlbiwgb25FcnJvcj86IE9uRXhpdEVycm9yKSA9PiB1bmRlZmluZWR9IGV4aXRcbiAqICAgRXhpdCBhIG5vZGUuXG4gKiBAcHJvcGVydHkge1Rva2VuaXplQ29udGV4dFsnc2xpY2VTZXJpYWxpemUnXX0gc2xpY2VTZXJpYWxpemVcbiAqICAgR2V0IHRoZSBzdHJpbmcgdmFsdWUgb2YgYSB0b2tlbi5cbiAqIEBwcm9wZXJ0eSB7Q29uZmlnfSBjb25maWdcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Q29tcGlsZURhdGF9IGRhdGFcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kOyBrZXkvdmFsdWUgc3RvcmUuXG4gKlxuICogQHR5cGVkZWYgRnJvbU1hcmtkb3duT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uIGZvciBob3cgdG8gYnVpbGQgbWRhc3QuXG4gKiBAcHJvcGVydHkge0FycmF5PEV4dGVuc2lvbiB8IEFycmF5PEV4dGVuc2lvbj4+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW21kYXN0RXh0ZW5zaW9uc11cbiAqICAgRXh0ZW5zaW9ucyBmb3IgdGhpcyB1dGlsaXR5IHRvIGNoYW5nZSBob3cgdG9rZW5zIGFyZSB0dXJuZWQgaW50byBhIHRyZWUuXG4gKlxuICogQHR5cGVkZWYge1BhcnNlT3B0aW9ucyAmIEZyb21NYXJrZG93bk9wdGlvbnN9IE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHt0b1N0cmluZ30gZnJvbSAnbWRhc3QtdXRpbC10by1zdHJpbmcnXG5pbXBvcnQge3BhcnNlLCBwb3N0cHJvY2VzcywgcHJlcHJvY2Vzc30gZnJvbSAnbWljcm9tYXJrJ1xuaW1wb3J0IHtkZWNvZGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1kZWNvZGUtbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlJ1xuaW1wb3J0IHtkZWNvZGVTdHJpbmd9IGZyb20gJ21pY3JvbWFyay11dGlsLWRlY29kZS1zdHJpbmcnXG5pbXBvcnQge25vcm1hbGl6ZUlkZW50aWZpZXJ9IGZyb20gJ21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyJ1xuaW1wb3J0IHtjb2RlcywgY29uc3RhbnRzLCB0eXBlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuaW1wb3J0IHtkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZX0gZnJvbSAnZGVjb2RlLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2UnXG5pbXBvcnQge3N0cmluZ2lmeVBvc2l0aW9ufSBmcm9tICd1bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbidcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBUdXJuIG1hcmtkb3duIGludG8gYSBzeW50YXggdHJlZS5cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VmFsdWV9IHZhbHVlXG4gKiBAcGFyYW0ge0VuY29kaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nXVxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiBAcmV0dXJucyB7Um9vdH1cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VmFsdWV9IHZhbHVlXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqIEByZXR1cm5zIHtSb290fVxuICpcbiAqIEBwYXJhbSB7VmFsdWV9IHZhbHVlXG4gKiAgIE1hcmtkb3duIHRvIHBhcnNlLlxuICogQHBhcmFtIHtFbmNvZGluZyB8IE9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5jb2RpbmddXG4gKiAgIENoYXJhY3RlciBlbmNvZGluZyBmb3Igd2hlbiBgdmFsdWVgIGlzIGBCdWZmZXJgLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7Um9vdH1cbiAqICAgbWRhc3QgdHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21NYXJrZG93bih2YWx1ZSwgZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBlbmNvZGluZyAhPT0gJ3N0cmluZycpIHtcbiAgICBvcHRpb25zID0gZW5jb2RpbmdcbiAgICBlbmNvZGluZyA9IHVuZGVmaW5lZFxuICB9XG5cbiAgcmV0dXJuIGNvbXBpbGVyKG9wdGlvbnMpKFxuICAgIHBvc3Rwcm9jZXNzKFxuICAgICAgcGFyc2Uob3B0aW9ucykuZG9jdW1lbnQoKS53cml0ZShwcmVwcm9jZXNzKCkodmFsdWUsIGVuY29kaW5nLCB0cnVlKSlcbiAgICApXG4gIClcbn1cblxuLyoqXG4gKiBOb3RlIHRoaXMgY29tcGlsZXIgb25seSB1bmRlcnN0YW5kIGNvbXBsZXRlIGJ1ZmZlcmluZywgbm90IHN0cmVhbWluZy5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqL1xuZnVuY3Rpb24gY29tcGlsZXIob3B0aW9ucykge1xuICAvKiogQHR5cGUge0NvbmZpZ30gKi9cbiAgY29uc3QgY29uZmlnID0ge1xuICAgIHRyYW5zZm9ybXM6IFtdLFxuICAgIGNhbkNvbnRhaW5Fb2xzOiBbJ2VtcGhhc2lzJywgJ2ZyYWdtZW50JywgJ2hlYWRpbmcnLCAncGFyYWdyYXBoJywgJ3N0cm9uZyddLFxuICAgIGVudGVyOiB7XG4gICAgICBhdXRvbGluazogb3BlbmVyKGxpbmspLFxuICAgICAgYXV0b2xpbmtQcm90b2NvbDogb25lbnRlcmRhdGEsXG4gICAgICBhdXRvbGlua0VtYWlsOiBvbmVudGVyZGF0YSxcbiAgICAgIGF0eEhlYWRpbmc6IG9wZW5lcihoZWFkaW5nKSxcbiAgICAgIGJsb2NrUXVvdGU6IG9wZW5lcihibG9ja1F1b3RlKSxcbiAgICAgIGNoYXJhY3RlckVzY2FwZTogb25lbnRlcmRhdGEsXG4gICAgICBjaGFyYWN0ZXJSZWZlcmVuY2U6IG9uZW50ZXJkYXRhLFxuICAgICAgY29kZUZlbmNlZDogb3BlbmVyKGNvZGVGbG93KSxcbiAgICAgIGNvZGVGZW5jZWRGZW5jZUluZm86IGJ1ZmZlcixcbiAgICAgIGNvZGVGZW5jZWRGZW5jZU1ldGE6IGJ1ZmZlcixcbiAgICAgIGNvZGVJbmRlbnRlZDogb3BlbmVyKGNvZGVGbG93LCBidWZmZXIpLFxuICAgICAgY29kZVRleHQ6IG9wZW5lcihjb2RlVGV4dCwgYnVmZmVyKSxcbiAgICAgIGNvZGVUZXh0RGF0YTogb25lbnRlcmRhdGEsXG4gICAgICBkYXRhOiBvbmVudGVyZGF0YSxcbiAgICAgIGNvZGVGbG93VmFsdWU6IG9uZW50ZXJkYXRhLFxuICAgICAgZGVmaW5pdGlvbjogb3BlbmVyKGRlZmluaXRpb24pLFxuICAgICAgZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOiBidWZmZXIsXG4gICAgICBkZWZpbml0aW9uTGFiZWxTdHJpbmc6IGJ1ZmZlcixcbiAgICAgIGRlZmluaXRpb25UaXRsZVN0cmluZzogYnVmZmVyLFxuICAgICAgZW1waGFzaXM6IG9wZW5lcihlbXBoYXNpcyksXG4gICAgICBoYXJkQnJlYWtFc2NhcGU6IG9wZW5lcihoYXJkQnJlYWspLFxuICAgICAgaGFyZEJyZWFrVHJhaWxpbmc6IG9wZW5lcihoYXJkQnJlYWspLFxuICAgICAgaHRtbEZsb3c6IG9wZW5lcihodG1sLCBidWZmZXIpLFxuICAgICAgaHRtbEZsb3dEYXRhOiBvbmVudGVyZGF0YSxcbiAgICAgIGh0bWxUZXh0OiBvcGVuZXIoaHRtbCwgYnVmZmVyKSxcbiAgICAgIGh0bWxUZXh0RGF0YTogb25lbnRlcmRhdGEsXG4gICAgICBpbWFnZTogb3BlbmVyKGltYWdlKSxcbiAgICAgIGxhYmVsOiBidWZmZXIsXG4gICAgICBsaW5rOiBvcGVuZXIobGluayksXG4gICAgICBsaXN0SXRlbTogb3BlbmVyKGxpc3RJdGVtKSxcbiAgICAgIGxpc3RJdGVtVmFsdWU6IG9uZW50ZXJsaXN0aXRlbXZhbHVlLFxuICAgICAgbGlzdE9yZGVyZWQ6IG9wZW5lcihsaXN0LCBvbmVudGVybGlzdG9yZGVyZWQpLFxuICAgICAgbGlzdFVub3JkZXJlZDogb3BlbmVyKGxpc3QpLFxuICAgICAgcGFyYWdyYXBoOiBvcGVuZXIocGFyYWdyYXBoKSxcbiAgICAgIHJlZmVyZW5jZTogb25lbnRlcnJlZmVyZW5jZSxcbiAgICAgIHJlZmVyZW5jZVN0cmluZzogYnVmZmVyLFxuICAgICAgcmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzogYnVmZmVyLFxuICAgICAgcmVzb3VyY2VUaXRsZVN0cmluZzogYnVmZmVyLFxuICAgICAgc2V0ZXh0SGVhZGluZzogb3BlbmVyKGhlYWRpbmcpLFxuICAgICAgc3Ryb25nOiBvcGVuZXIoc3Ryb25nKSxcbiAgICAgIHRoZW1hdGljQnJlYWs6IG9wZW5lcih0aGVtYXRpY0JyZWFrKVxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgYXR4SGVhZGluZzogY2xvc2VyKCksXG4gICAgICBhdHhIZWFkaW5nU2VxdWVuY2U6IG9uZXhpdGF0eGhlYWRpbmdzZXF1ZW5jZSxcbiAgICAgIGF1dG9saW5rOiBjbG9zZXIoKSxcbiAgICAgIGF1dG9saW5rRW1haWw6IG9uZXhpdGF1dG9saW5rZW1haWwsXG4gICAgICBhdXRvbGlua1Byb3RvY29sOiBvbmV4aXRhdXRvbGlua3Byb3RvY29sLFxuICAgICAgYmxvY2tRdW90ZTogY2xvc2VyKCksXG4gICAgICBjaGFyYWN0ZXJFc2NhcGVWYWx1ZTogb25leGl0ZGF0YSxcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOiBvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2VtYXJrZXIsXG4gICAgICBjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOiBvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2VtYXJrZXIsXG4gICAgICBjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTogb25leGl0Y2hhcmFjdGVycmVmZXJlbmNldmFsdWUsXG4gICAgICBjb2RlRmVuY2VkOiBjbG9zZXIob25leGl0Y29kZWZlbmNlZCksXG4gICAgICBjb2RlRmVuY2VkRmVuY2U6IG9uZXhpdGNvZGVmZW5jZWRmZW5jZSxcbiAgICAgIGNvZGVGZW5jZWRGZW5jZUluZm86IG9uZXhpdGNvZGVmZW5jZWRmZW5jZWluZm8sXG4gICAgICBjb2RlRmVuY2VkRmVuY2VNZXRhOiBvbmV4aXRjb2RlZmVuY2VkZmVuY2VtZXRhLFxuICAgICAgY29kZUZsb3dWYWx1ZTogb25leGl0ZGF0YSxcbiAgICAgIGNvZGVJbmRlbnRlZDogY2xvc2VyKG9uZXhpdGNvZGVpbmRlbnRlZCksXG4gICAgICBjb2RlVGV4dDogY2xvc2VyKG9uZXhpdGNvZGV0ZXh0KSxcbiAgICAgIGNvZGVUZXh0RGF0YTogb25leGl0ZGF0YSxcbiAgICAgIGRhdGE6IG9uZXhpdGRhdGEsXG4gICAgICBkZWZpbml0aW9uOiBjbG9zZXIoKSxcbiAgICAgIGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzogb25leGl0ZGVmaW5pdGlvbmRlc3RpbmF0aW9uc3RyaW5nLFxuICAgICAgZGVmaW5pdGlvbkxhYmVsU3RyaW5nOiBvbmV4aXRkZWZpbml0aW9ubGFiZWxzdHJpbmcsXG4gICAgICBkZWZpbml0aW9uVGl0bGVTdHJpbmc6IG9uZXhpdGRlZmluaXRpb250aXRsZXN0cmluZyxcbiAgICAgIGVtcGhhc2lzOiBjbG9zZXIoKSxcbiAgICAgIGhhcmRCcmVha0VzY2FwZTogY2xvc2VyKG9uZXhpdGhhcmRicmVhayksXG4gICAgICBoYXJkQnJlYWtUcmFpbGluZzogY2xvc2VyKG9uZXhpdGhhcmRicmVhayksXG4gICAgICBodG1sRmxvdzogY2xvc2VyKG9uZXhpdGh0bWxmbG93KSxcbiAgICAgIGh0bWxGbG93RGF0YTogb25leGl0ZGF0YSxcbiAgICAgIGh0bWxUZXh0OiBjbG9zZXIob25leGl0aHRtbHRleHQpLFxuICAgICAgaHRtbFRleHREYXRhOiBvbmV4aXRkYXRhLFxuICAgICAgaW1hZ2U6IGNsb3NlcihvbmV4aXRpbWFnZSksXG4gICAgICBsYWJlbDogb25leGl0bGFiZWwsXG4gICAgICBsYWJlbFRleHQ6IG9uZXhpdGxhYmVsdGV4dCxcbiAgICAgIGxpbmVFbmRpbmc6IG9uZXhpdGxpbmVlbmRpbmcsXG4gICAgICBsaW5rOiBjbG9zZXIob25leGl0bGluayksXG4gICAgICBsaXN0SXRlbTogY2xvc2VyKCksXG4gICAgICBsaXN0T3JkZXJlZDogY2xvc2VyKCksXG4gICAgICBsaXN0VW5vcmRlcmVkOiBjbG9zZXIoKSxcbiAgICAgIHBhcmFncmFwaDogY2xvc2VyKCksXG4gICAgICByZWZlcmVuY2VTdHJpbmc6IG9uZXhpdHJlZmVyZW5jZXN0cmluZyxcbiAgICAgIHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6IG9uZXhpdHJlc291cmNlZGVzdGluYXRpb25zdHJpbmcsXG4gICAgICByZXNvdXJjZVRpdGxlU3RyaW5nOiBvbmV4aXRyZXNvdXJjZXRpdGxlc3RyaW5nLFxuICAgICAgcmVzb3VyY2U6IG9uZXhpdHJlc291cmNlLFxuICAgICAgc2V0ZXh0SGVhZGluZzogY2xvc2VyKG9uZXhpdHNldGV4dGhlYWRpbmcpLFxuICAgICAgc2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZTogb25leGl0c2V0ZXh0aGVhZGluZ2xpbmVzZXF1ZW5jZSxcbiAgICAgIHNldGV4dEhlYWRpbmdUZXh0OiBvbmV4aXRzZXRleHRoZWFkaW5ndGV4dCxcbiAgICAgIHN0cm9uZzogY2xvc2VyKCksXG4gICAgICB0aGVtYXRpY0JyZWFrOiBjbG9zZXIoKVxuICAgIH1cbiAgfVxuXG4gIGNvbmZpZ3VyZShjb25maWcsIChvcHRpb25zIHx8IHt9KS5tZGFzdEV4dGVuc2lvbnMgfHwgW10pXG5cbiAgLyoqIEB0eXBlIHtDb21waWxlRGF0YX0gKi9cbiAgY29uc3QgZGF0YSA9IHt9XG5cbiAgcmV0dXJuIGNvbXBpbGVcblxuICAvKipcbiAgICogVHVybiBtaWNyb21hcmsgZXZlbnRzIGludG8gYW4gbWRhc3QgdHJlZS5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxFdmVudD59IGV2ZW50c1xuICAgKiAgIEV2ZW50cy5cbiAgICogQHJldHVybnMge1Jvb3R9XG4gICAqICAgbWRhc3QgdHJlZS5cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBpbGUoZXZlbnRzKSB7XG4gICAgLyoqIEB0eXBlIHtSb290fSAqL1xuICAgIGxldCB0cmVlID0ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IFtdfVxuICAgIC8qKiBAdHlwZSB7T21pdDxDb21waWxlQ29udGV4dCwgJ3NsaWNlU2VyaWFsaXplJz59ICovXG4gICAgY29uc3QgY29udGV4dCA9IHtcbiAgICAgIHN0YWNrOiBbdHJlZV0sXG4gICAgICB0b2tlblN0YWNrOiBbXSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGVudGVyLFxuICAgICAgZXhpdCxcbiAgICAgIGJ1ZmZlcixcbiAgICAgIHJlc3VtZSxcbiAgICAgIGRhdGFcbiAgICB9XG4gICAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXI+fSAqL1xuICAgIGNvbnN0IGxpc3RTdGFjayA9IFtdXG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgICAgLy8gV2UgcHJlcHJvY2VzcyBsaXN0cyB0byBhZGQgYGxpc3RJdGVtYCB0b2tlbnMsIGFuZCB0byBpbmZlciB3aGV0aGVyXG4gICAgICAvLyBpdGVtcyB0aGUgbGlzdCBpdHNlbGYgYXJlIHNwcmVhZCBvdXQuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gdHlwZXMubGlzdE9yZGVyZWQgfHxcbiAgICAgICAgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSB0eXBlcy5saXN0VW5vcmRlcmVkXG4gICAgICApIHtcbiAgICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMF0gPT09ICdlbnRlcicpIHtcbiAgICAgICAgICBsaXN0U3RhY2sucHVzaChpbmRleClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YWlsID0gbGlzdFN0YWNrLnBvcCgpXG4gICAgICAgICAgYXNzZXJ0KHR5cGVvZiB0YWlsID09PSAnbnVtYmVyJywgJ2V4cGVjdGVkIGxpc3Qgb3QgYmUgb3BlbicpXG4gICAgICAgICAgaW5kZXggPSBwcmVwYXJlTGlzdChldmVudHMsIHRhaWwsIGluZGV4KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBldmVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBoYW5kbGVyID0gY29uZmlnW2V2ZW50c1tpbmRleF1bMF1dXG5cbiAgICAgIGlmIChvd24uY2FsbChoYW5kbGVyLCBldmVudHNbaW5kZXhdWzFdLnR5cGUpKSB7XG4gICAgICAgIGhhbmRsZXJbZXZlbnRzW2luZGV4XVsxXS50eXBlXS5jYWxsKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7c2xpY2VTZXJpYWxpemU6IGV2ZW50c1tpbmRleF1bMl0uc2xpY2VTZXJpYWxpemV9LFxuICAgICAgICAgICAgY29udGV4dFxuICAgICAgICAgICksXG4gICAgICAgICAgZXZlbnRzW2luZGV4XVsxXVxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHRva2VucyBzdGlsbCBiZWluZyBvcGVuLlxuICAgIGlmIChjb250ZXh0LnRva2VuU3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdGFpbCA9IGNvbnRleHQudG9rZW5TdGFja1tjb250ZXh0LnRva2VuU3RhY2subGVuZ3RoIC0gMV1cbiAgICAgIGNvbnN0IGhhbmRsZXIgPSB0YWlsWzFdIHx8IGRlZmF1bHRPbkVycm9yXG4gICAgICBoYW5kbGVyLmNhbGwoY29udGV4dCwgdW5kZWZpbmVkLCB0YWlsWzBdKVxuICAgIH1cblxuICAgIC8vIEZpZ3VyZSBvdXQgYHJvb3RgIHBvc2l0aW9uLlxuICAgIHRyZWUucG9zaXRpb24gPSB7XG4gICAgICBzdGFydDogcG9pbnQoXG4gICAgICAgIGV2ZW50cy5sZW5ndGggPiAwID8gZXZlbnRzWzBdWzFdLnN0YXJ0IDoge2xpbmU6IDEsIGNvbHVtbjogMSwgb2Zmc2V0OiAwfVxuICAgICAgKSxcbiAgICAgIGVuZDogcG9pbnQoXG4gICAgICAgIGV2ZW50cy5sZW5ndGggPiAwXG4gICAgICAgICAgPyBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDJdWzFdLmVuZFxuICAgICAgICAgIDoge2xpbmU6IDEsIGNvbHVtbjogMSwgb2Zmc2V0OiAwfVxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIENhbGwgdHJhbnNmb3Jtcy5cbiAgICBpbmRleCA9IC0xXG4gICAgd2hpbGUgKCsraW5kZXggPCBjb25maWcudHJhbnNmb3Jtcy5sZW5ndGgpIHtcbiAgICAgIHRyZWUgPSBjb25maWcudHJhbnNmb3Jtc1tpbmRleF0odHJlZSkgfHwgdHJlZVxuICAgIH1cblxuICAgIHJldHVybiB0cmVlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtBcnJheTxFdmVudD59IGV2ZW50c1xuICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgKi9cbiAgZnVuY3Rpb24gcHJlcGFyZUxpc3QoZXZlbnRzLCBzdGFydCwgbGVuZ3RoKSB7XG4gICAgbGV0IGluZGV4ID0gc3RhcnQgLSAxXG4gICAgbGV0IGNvbnRhaW5lckJhbGFuY2UgPSAtMVxuICAgIGxldCBsaXN0U3ByZWFkID0gZmFsc2VcbiAgICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICAgIGxldCBsaXN0SXRlbVxuICAgIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICAgIGxldCBsaW5lSW5kZXhcbiAgICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgZmlyc3RCbGFua0xpbmVJbmRleFxuICAgIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgYXRNYXJrZXJcblxuICAgIHdoaWxlICgrK2luZGV4IDw9IGxlbmd0aCkge1xuICAgICAgY29uc3QgZXZlbnQgPSBldmVudHNbaW5kZXhdXG5cbiAgICAgIHN3aXRjaCAoZXZlbnRbMV0udHlwZSkge1xuICAgICAgICBjYXNlIHR5cGVzLmxpc3RVbm9yZGVyZWQ6XG4gICAgICAgIGNhc2UgdHlwZXMubGlzdE9yZGVyZWQ6XG4gICAgICAgIGNhc2UgdHlwZXMuYmxvY2tRdW90ZToge1xuICAgICAgICAgIGlmIChldmVudFswXSA9PT0gJ2VudGVyJykge1xuICAgICAgICAgICAgY29udGFpbmVyQmFsYW5jZSsrXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRhaW5lckJhbGFuY2UtLVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGF0TWFya2VyID0gdW5kZWZpbmVkXG5cbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSB0eXBlcy5saW5lRW5kaW5nQmxhbms6IHtcbiAgICAgICAgICBpZiAoZXZlbnRbMF0gPT09ICdlbnRlcicpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbGlzdEl0ZW0gJiZcbiAgICAgICAgICAgICAgIWF0TWFya2VyICYmXG4gICAgICAgICAgICAgICFjb250YWluZXJCYWxhbmNlICYmXG4gICAgICAgICAgICAgICFmaXJzdEJsYW5rTGluZUluZGV4XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgZmlyc3RCbGFua0xpbmVJbmRleCA9IGluZGV4XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF0TWFya2VyID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgdHlwZXMubGluZVByZWZpeDpcbiAgICAgICAgY2FzZSB0eXBlcy5saXN0SXRlbVZhbHVlOlxuICAgICAgICBjYXNlIHR5cGVzLmxpc3RJdGVtTWFya2VyOlxuICAgICAgICBjYXNlIHR5cGVzLmxpc3RJdGVtUHJlZml4OlxuICAgICAgICBjYXNlIHR5cGVzLmxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZToge1xuICAgICAgICAgIC8vIEVtcHR5LlxuXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBhdE1hcmtlciA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgKCFjb250YWluZXJCYWxhbmNlICYmXG4gICAgICAgICAgZXZlbnRbMF0gPT09ICdlbnRlcicgJiZcbiAgICAgICAgICBldmVudFsxXS50eXBlID09PSB0eXBlcy5saXN0SXRlbVByZWZpeCkgfHxcbiAgICAgICAgKGNvbnRhaW5lckJhbGFuY2UgPT09IC0xICYmXG4gICAgICAgICAgZXZlbnRbMF0gPT09ICdleGl0JyAmJlxuICAgICAgICAgIChldmVudFsxXS50eXBlID09PSB0eXBlcy5saXN0VW5vcmRlcmVkIHx8XG4gICAgICAgICAgICBldmVudFsxXS50eXBlID09PSB0eXBlcy5saXN0T3JkZXJlZCkpXG4gICAgICApIHtcbiAgICAgICAgaWYgKGxpc3RJdGVtKSB7XG4gICAgICAgICAgbGV0IHRhaWxJbmRleCA9IGluZGV4XG4gICAgICAgICAgbGluZUluZGV4ID0gdW5kZWZpbmVkXG5cbiAgICAgICAgICB3aGlsZSAodGFpbEluZGV4LS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRhaWxFdmVudCA9IGV2ZW50c1t0YWlsSW5kZXhdXG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGFpbEV2ZW50WzFdLnR5cGUgPT09IHR5cGVzLmxpbmVFbmRpbmcgfHxcbiAgICAgICAgICAgICAgdGFpbEV2ZW50WzFdLnR5cGUgPT09IHR5cGVzLmxpbmVFbmRpbmdCbGFua1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGlmICh0YWlsRXZlbnRbMF0gPT09ICdleGl0JykgY29udGludWVcblxuICAgICAgICAgICAgICBpZiAobGluZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgZXZlbnRzW2xpbmVJbmRleF1bMV0udHlwZSA9IHR5cGVzLmxpbmVFbmRpbmdCbGFua1xuICAgICAgICAgICAgICAgIGxpc3RTcHJlYWQgPSB0cnVlXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0YWlsRXZlbnRbMV0udHlwZSA9IHR5cGVzLmxpbmVFbmRpbmdcbiAgICAgICAgICAgICAgbGluZUluZGV4ID0gdGFpbEluZGV4XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICB0YWlsRXZlbnRbMV0udHlwZSA9PT0gdHlwZXMubGluZVByZWZpeCB8fFxuICAgICAgICAgICAgICB0YWlsRXZlbnRbMV0udHlwZSA9PT0gdHlwZXMuYmxvY2tRdW90ZVByZWZpeCB8fFxuICAgICAgICAgICAgICB0YWlsRXZlbnRbMV0udHlwZSA9PT0gdHlwZXMuYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UgfHxcbiAgICAgICAgICAgICAgdGFpbEV2ZW50WzFdLnR5cGUgPT09IHR5cGVzLmJsb2NrUXVvdGVNYXJrZXIgfHxcbiAgICAgICAgICAgICAgdGFpbEV2ZW50WzFdLnR5cGUgPT09IHR5cGVzLmxpc3RJdGVtSW5kZW50XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgLy8gRW1wdHlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZmlyc3RCbGFua0xpbmVJbmRleCAmJlxuICAgICAgICAgICAgKCFsaW5lSW5kZXggfHwgZmlyc3RCbGFua0xpbmVJbmRleCA8IGxpbmVJbmRleClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGxpc3RJdGVtLl9zcHJlYWQgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRml4IHBvc2l0aW9uLlxuICAgICAgICAgIGxpc3RJdGVtLmVuZCA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGxpbmVJbmRleCA/IGV2ZW50c1tsaW5lSW5kZXhdWzFdLnN0YXJ0IDogZXZlbnRbMV0uZW5kXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgZXZlbnRzLnNwbGljZShsaW5lSW5kZXggfHwgaW5kZXgsIDAsIFsnZXhpdCcsIGxpc3RJdGVtLCBldmVudFsyXV0pXG4gICAgICAgICAgaW5kZXgrK1xuICAgICAgICAgIGxlbmd0aCsrXG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgbGlzdCBpdGVtLlxuICAgICAgICBpZiAoZXZlbnRbMV0udHlwZSA9PT0gdHlwZXMubGlzdEl0ZW1QcmVmaXgpIHtcbiAgICAgICAgICAvKiogQHR5cGUge1Rva2VufSAqL1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB7XG4gICAgICAgICAgICB0eXBlOiAnbGlzdEl0ZW0nLFxuICAgICAgICAgICAgX3NwcmVhZDogZmFsc2UsXG4gICAgICAgICAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRbMV0uc3RhcnQpLFxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogd2XigJlsbCBhZGQgYGVuZGAgaW4gYSBzZWNvbmQuXG4gICAgICAgICAgICBlbmQ6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBsaXN0SXRlbSA9IGl0ZW1cbiAgICAgICAgICBldmVudHMuc3BsaWNlKGluZGV4LCAwLCBbJ2VudGVyJywgaXRlbSwgZXZlbnRbMl1dKVxuICAgICAgICAgIGluZGV4KytcbiAgICAgICAgICBsZW5ndGgrK1xuICAgICAgICAgIGZpcnN0QmxhbmtMaW5lSW5kZXggPSB1bmRlZmluZWRcbiAgICAgICAgICBhdE1hcmtlciA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGV2ZW50c1tzdGFydF1bMV0uX3NwcmVhZCA9IGxpc3RTcHJlYWRcbiAgICByZXR1cm4gbGVuZ3RoXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW5lciBoYW5kbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7KHRva2VuOiBUb2tlbikgPT4gTm9kZXN9IGNyZWF0ZVxuICAgKiAgIENyZWF0ZSBhIG5vZGUuXG4gICAqIEBwYXJhbSB7SGFuZGxlIHwgdW5kZWZpbmVkfSBbYW5kXVxuICAgKiAgIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGFsc28gcnVuLlxuICAgKiBAcmV0dXJucyB7SGFuZGxlfVxuICAgKiAgIEhhbmRsZS5cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW5lcihjcmVhdGUsIGFuZCkge1xuICAgIHJldHVybiBvcGVuXG5cbiAgICAvKipcbiAgICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAgICogQHBhcmFtIHtUb2tlbn0gdG9rZW5cbiAgICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9wZW4odG9rZW4pIHtcbiAgICAgIGVudGVyLmNhbGwodGhpcywgY3JlYXRlKHRva2VuKSwgdG9rZW4pXG4gICAgICBpZiAoYW5kKSBhbmQuY2FsbCh0aGlzLCB0b2tlbilcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gYnVmZmVyKCkge1xuICAgIHRoaXMuc3RhY2sucHVzaCh7dHlwZTogJ2ZyYWdtZW50JywgY2hpbGRyZW46IFtdfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqICAgQ29udGV4dC5cbiAgICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICAgKiAgIE5vZGUgdG8gZW50ZXIuXG4gICAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gICAqICAgQ29ycmVzcG9uZGluZyB0b2tlbi5cbiAgICogQHBhcmFtIHtPbkVudGVyRXJyb3IgfCB1bmRlZmluZWR9IFtlcnJvckhhbmRsZXJdXG4gICAqICAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoaXMgdG9rZW4gaXMgb3BlbiwgYnV0IGl0IGlzIGNsb3NlZCBieSBzb21ldGhpbmcgZWxzZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gZW50ZXIobm9kZSwgdG9rZW4sIGVycm9ySGFuZGxlcikge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChwYXJlbnQsICdleHBlY3RlZCBgcGFyZW50YCcpXG4gICAgYXNzZXJ0KCdjaGlsZHJlbicgaW4gcGFyZW50LCAnZXhwZWN0ZWQgYHBhcmVudGAnKVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8Tm9kZXM+fSAqL1xuICAgIGNvbnN0IHNpYmxpbmdzID0gcGFyZW50LmNoaWxkcmVuXG4gICAgc2libGluZ3MucHVzaChub2RlKVxuICAgIHRoaXMuc3RhY2sucHVzaChub2RlKVxuICAgIHRoaXMudG9rZW5TdGFjay5wdXNoKFt0b2tlbiwgZXJyb3JIYW5kbGVyXSlcbiAgICBub2RlLnBvc2l0aW9uID0ge1xuICAgICAgc3RhcnQ6IHBvaW50KHRva2VuLnN0YXJ0KSxcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGBlbmRgIHdpbGwgYmUgcGF0Y2hlZCBsYXRlci5cbiAgICAgIGVuZDogdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNsb3NlciBoYW5kbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7SGFuZGxlIHwgdW5kZWZpbmVkfSBbYW5kXVxuICAgKiAgIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGFsc28gcnVuLlxuICAgKiBAcmV0dXJucyB7SGFuZGxlfVxuICAgKiAgIEhhbmRsZS5cbiAgICovXG4gIGZ1bmN0aW9uIGNsb3NlcihhbmQpIHtcbiAgICByZXR1cm4gY2xvc2VcblxuICAgIC8qKlxuICAgICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvc2UodG9rZW4pIHtcbiAgICAgIGlmIChhbmQpIGFuZC5jYWxsKHRoaXMsIHRva2VuKVxuICAgICAgZXhpdC5jYWxsKHRoaXMsIHRva2VuKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqICAgQ29udGV4dC5cbiAgICogQHBhcmFtIHtUb2tlbn0gdG9rZW5cbiAgICogICBDb3JyZXNwb25kaW5nIHRva2VuLlxuICAgKiBAcGFyYW0ge09uRXhpdEVycm9yIHwgdW5kZWZpbmVkfSBbb25FeGl0RXJyb3JdXG4gICAqICAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGFub3RoZXIgdG9rZW4gaXMgb3Blbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gZXhpdCh0b2tlbiwgb25FeGl0RXJyb3IpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFjay5wb3AoKVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgYG5vZGVgJylcbiAgICBjb25zdCBvcGVuID0gdGhpcy50b2tlblN0YWNrLnBvcCgpXG5cbiAgICBpZiAoIW9wZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBjbG9zZSBgJyArXG4gICAgICAgICAgdG9rZW4udHlwZSArXG4gICAgICAgICAgJ2AgKCcgK1xuICAgICAgICAgIHN0cmluZ2lmeVBvc2l0aW9uKHtzdGFydDogdG9rZW4uc3RhcnQsIGVuZDogdG9rZW4uZW5kfSkgK1xuICAgICAgICAgICcpOiBpdOKAmXMgbm90IG9wZW4nXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChvcGVuWzBdLnR5cGUgIT09IHRva2VuLnR5cGUpIHtcbiAgICAgIGlmIChvbkV4aXRFcnJvcikge1xuICAgICAgICBvbkV4aXRFcnJvci5jYWxsKHRoaXMsIHRva2VuLCBvcGVuWzBdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IG9wZW5bMV0gfHwgZGVmYXVsdE9uRXJyb3JcbiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMsIHRva2VuLCBvcGVuWzBdKVxuICAgICAgfVxuICAgIH1cblxuICAgIGFzc2VydChub2RlLnR5cGUgIT09ICdmcmFnbWVudCcsICd1bmV4cGVjdGVkIGZyYWdtZW50IGBleGl0YGVkJylcbiAgICBhc3NlcnQobm9kZS5wb3NpdGlvbiwgJ2V4cGVjdGVkIGBwb3NpdGlvbmAgdG8gYmUgZGVmaW5lZCcpXG4gICAgbm9kZS5wb3NpdGlvbi5lbmQgPSBwb2ludCh0b2tlbi5lbmQpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzdW1lKCkge1xuICAgIHJldHVybiB0b1N0cmluZyh0aGlzLnN0YWNrLnBvcCgpKVxuICB9XG5cbiAgLy9cbiAgLy8gSGFuZGxlcnMuXG4gIC8vXG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJsaXN0b3JkZXJlZCgpIHtcbiAgICB0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlID0gdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJsaXN0aXRlbXZhbHVlKHRva2VuKSB7XG4gICAgaWYgKHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUpIHtcbiAgICAgIGNvbnN0IGFuY2VzdG9yID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDJdXG4gICAgICBhc3NlcnQoYW5jZXN0b3IsICdleHBlY3RlZCBub2RlcyBvbiBzdGFjaycpXG4gICAgICBhc3NlcnQoYW5jZXN0b3IudHlwZSA9PT0gJ2xpc3QnLCAnZXhwZWN0ZWQgbGlzdCBvbiBzdGFjaycpXG4gICAgICBhbmNlc3Rvci5zdGFydCA9IE51bWJlci5wYXJzZUludChcbiAgICAgICAgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbiksXG4gICAgICAgIGNvbnN0YW50cy5udW1lcmljQmFzZURlY2ltYWxcbiAgICAgIClcbiAgICAgIHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUgPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0Y29kZWZlbmNlZGZlbmNlaW5mbygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChub2RlLnR5cGUgPT09ICdjb2RlJywgJ2V4cGVjdGVkIGNvZGUgb24gc3RhY2snKVxuICAgIG5vZGUubGFuZyA9IGRhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjb2RlZmVuY2VkZmVuY2VtZXRhKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgbm9kZSBvbiBzdGFjaycpXG4gICAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ2NvZGUnLCAnZXhwZWN0ZWQgY29kZSBvbiBzdGFjaycpXG4gICAgbm9kZS5tZXRhID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGNvZGVmZW5jZWRmZW5jZSgpIHtcbiAgICAvLyBFeGl0IGlmIHRoaXMgaXMgdGhlIGNsb3NpbmcgZmVuY2UuXG4gICAgaWYgKHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZSkgcmV0dXJuXG4gICAgdGhpcy5idWZmZXIoKVxuICAgIHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZSA9IHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjb2RlZmVuY2VkKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgbm9kZSBvbiBzdGFjaycpXG4gICAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ2NvZGUnLCAnZXhwZWN0ZWQgY29kZSBvbiBzdGFjaycpXG5cbiAgICBub2RlLnZhbHVlID0gZGF0YS5yZXBsYWNlKC9eKFxccj9cXG58XFxyKXwoXFxyP1xcbnxcXHIpJC9nLCAnJylcbiAgICB0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGUgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjb2RlaW5kZW50ZWQoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgYXNzZXJ0KG5vZGUsICdleHBlY3RlZCBub2RlIG9uIHN0YWNrJylcbiAgICBhc3NlcnQobm9kZS50eXBlID09PSAnY29kZScsICdleHBlY3RlZCBjb2RlIG9uIHN0YWNrJylcblxuICAgIG5vZGUudmFsdWUgPSBkYXRhLnJlcGxhY2UoLyhcXHI/XFxufFxccikkL2csICcnKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGRlZmluaXRpb25sYWJlbHN0cmluZyh0b2tlbikge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChub2RlLnR5cGUgPT09ICdkZWZpbml0aW9uJywgJ2V4cGVjdGVkIGRlZmluaXRpb24gb24gc3RhY2snKVxuXG4gICAgbm9kZS5sYWJlbCA9IGxhYmVsXG4gICAgbm9kZS5pZGVudGlmaWVyID0gbm9ybWFsaXplSWRlbnRpZmllcihcbiAgICAgIHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pXG4gICAgKS50b0xvd2VyQ2FzZSgpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0ZGVmaW5pdGlvbnRpdGxlc3RyaW5nKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgbm9kZSBvbiBzdGFjaycpXG4gICAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ2RlZmluaXRpb24nLCAnZXhwZWN0ZWQgZGVmaW5pdGlvbiBvbiBzdGFjaycpXG5cbiAgICBub2RlLnRpdGxlID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGRlZmluaXRpb25kZXN0aW5hdGlvbnN0cmluZygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChub2RlLnR5cGUgPT09ICdkZWZpbml0aW9uJywgJ2V4cGVjdGVkIGRlZmluaXRpb24gb24gc3RhY2snKVxuXG4gICAgbm9kZS51cmwgPSBkYXRhXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0YXR4aGVhZGluZ3NlcXVlbmNlKHRva2VuKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgbm9kZSBvbiBzdGFjaycpXG4gICAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ2hlYWRpbmcnLCAnZXhwZWN0ZWQgaGVhZGluZyBvbiBzdGFjaycpXG5cbiAgICBpZiAoIW5vZGUuZGVwdGgpIHtcbiAgICAgIGNvbnN0IGRlcHRoID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbikubGVuZ3RoXG5cbiAgICAgIGFzc2VydChcbiAgICAgICAgZGVwdGggPT09IDEgfHxcbiAgICAgICAgICBkZXB0aCA9PT0gMiB8fFxuICAgICAgICAgIGRlcHRoID09PSAzIHx8XG4gICAgICAgICAgZGVwdGggPT09IDQgfHxcbiAgICAgICAgICBkZXB0aCA9PT0gNSB8fFxuICAgICAgICAgIGRlcHRoID09PSA2LFxuICAgICAgICAnZXhwZWN0ZWQgYGRlcHRoYCBiZXR3ZWVuIGAxYCBhbmQgYDZgJ1xuICAgICAgKVxuXG4gICAgICBub2RlLmRlcHRoID0gZGVwdGhcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0c2V0ZXh0aGVhZGluZ3RleHQoKSB7XG4gICAgdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcgPSB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0c2V0ZXh0aGVhZGluZ2xpbmVzZXF1ZW5jZSh0b2tlbikge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChub2RlLnR5cGUgPT09ICdoZWFkaW5nJywgJ2V4cGVjdGVkIGhlYWRpbmcgb24gc3RhY2snKVxuXG4gICAgbm9kZS5kZXB0aCA9XG4gICAgICB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKS5jb2RlUG9pbnRBdCgwKSA9PT0gY29kZXMuZXF1YWxzVG8gPyAxIDogMlxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdHNldGV4dGhlYWRpbmcoKSB7XG4gICAgdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZW50ZXJkYXRhKHRva2VuKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgbm9kZSBvbiBzdGFjaycpXG4gICAgYXNzZXJ0KCdjaGlsZHJlbicgaW4gbm9kZSwgJ2V4cGVjdGVkIHBhcmVudCBvbiBzdGFjaycpXG4gICAgLyoqIEB0eXBlIHtBcnJheTxOb2Rlcz59ICovXG4gICAgY29uc3Qgc2libGluZ3MgPSBub2RlLmNoaWxkcmVuXG5cbiAgICBsZXQgdGFpbCA9IHNpYmxpbmdzW3NpYmxpbmdzLmxlbmd0aCAtIDFdXG5cbiAgICBpZiAoIXRhaWwgfHwgdGFpbC50eXBlICE9PSAndGV4dCcpIHtcbiAgICAgIC8vIEFkZCBhIG5ldyB0ZXh0IG5vZGUuXG4gICAgICB0YWlsID0gdGV4dCgpXG4gICAgICB0YWlsLnBvc2l0aW9uID0ge1xuICAgICAgICBzdGFydDogcG9pbnQodG9rZW4uc3RhcnQpLFxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB3ZeKAmWxsIGFkZCBgZW5kYCBsYXRlci5cbiAgICAgICAgZW5kOiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAgIHNpYmxpbmdzLnB1c2godGFpbClcbiAgICB9XG5cbiAgICB0aGlzLnN0YWNrLnB1c2godGFpbClcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGRhdGEodG9rZW4pIHtcbiAgICBjb25zdCB0YWlsID0gdGhpcy5zdGFjay5wb3AoKVxuICAgIGFzc2VydCh0YWlsLCAnZXhwZWN0ZWQgYSBgbm9kZWAgdG8gYmUgb24gdGhlIHN0YWNrJylcbiAgICBhc3NlcnQoJ3ZhbHVlJyBpbiB0YWlsLCAnZXhwZWN0ZWQgYSBgbGl0ZXJhbGAgdG8gYmUgb24gdGhlIHN0YWNrJylcbiAgICBhc3NlcnQodGFpbC5wb3NpdGlvbiwgJ2V4cGVjdGVkIGBub2RlYCB0byBoYXZlIGFuIG9wZW4gcG9zaXRpb24nKVxuICAgIHRhaWwudmFsdWUgKz0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbiAgICB0YWlsLnBvc2l0aW9uLmVuZCA9IHBvaW50KHRva2VuLmVuZClcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGxpbmVlbmRpbmcodG9rZW4pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgYXNzZXJ0KGNvbnRleHQsICdleHBlY3RlZCBgbm9kZWAnKVxuXG4gICAgLy8gSWYgd2XigJlyZSBhdCBhIGhhcmQgYnJlYWssIGluY2x1ZGUgdGhlIGxpbmUgZW5kaW5nIGluIHRoZXJlLlxuICAgIGlmICh0aGlzLmRhdGEuYXRIYXJkQnJlYWspIHtcbiAgICAgIGFzc2VydCgnY2hpbGRyZW4nIGluIGNvbnRleHQsICdleHBlY3RlZCBgcGFyZW50YCcpXG4gICAgICBjb25zdCB0YWlsID0gY29udGV4dC5jaGlsZHJlbltjb250ZXh0LmNoaWxkcmVuLmxlbmd0aCAtIDFdXG4gICAgICBhc3NlcnQodGFpbC5wb3NpdGlvbiwgJ2V4cGVjdGVkIHRhaWwgdG8gaGF2ZSBhIHN0YXJ0aW5nIHBvc2l0aW9uJylcbiAgICAgIHRhaWwucG9zaXRpb24uZW5kID0gcG9pbnQodG9rZW4uZW5kKVxuICAgICAgdGhpcy5kYXRhLmF0SGFyZEJyZWFrID0gdW5kZWZpbmVkXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcgJiZcbiAgICAgIGNvbmZpZy5jYW5Db250YWluRW9scy5pbmNsdWRlcyhjb250ZXh0LnR5cGUpXG4gICAgKSB7XG4gICAgICBvbmVudGVyZGF0YS5jYWxsKHRoaXMsIHRva2VuKVxuICAgICAgb25leGl0ZGF0YS5jYWxsKHRoaXMsIHRva2VuKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGhhcmRicmVhaygpIHtcbiAgICB0aGlzLmRhdGEuYXRIYXJkQnJlYWsgPSB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRodG1sZmxvdygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChub2RlLnR5cGUgPT09ICdodG1sJywgJ2V4cGVjdGVkIGh0bWwgb24gc3RhY2snKVxuXG4gICAgbm9kZS52YWx1ZSA9IGRhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGh0bWx0ZXh0KCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgbm9kZSBvbiBzdGFjaycpXG4gICAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ2h0bWwnLCAnZXhwZWN0ZWQgaHRtbCBvbiBzdGFjaycpXG5cbiAgICBub2RlLnZhbHVlID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0Y29kZXRleHQoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgYXNzZXJ0KG5vZGUsICdleHBlY3RlZCBub2RlIG9uIHN0YWNrJylcbiAgICBhc3NlcnQobm9kZS50eXBlID09PSAnaW5saW5lQ29kZScsICdleHBlY3RlZCBpbmxpbmUgY29kZSBvbiBzdGFjaycpXG5cbiAgICBub2RlLnZhbHVlID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0bGluaygpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgYXNzZXJ0KG5vZGUsICdleHBlY3RlZCBub2RlIG9uIHN0YWNrJylcbiAgICBhc3NlcnQobm9kZS50eXBlID09PSAnbGluaycsICdleHBlY3RlZCBsaW5rIG9uIHN0YWNrJylcblxuICAgIC8vIE5vdGU6IHRoZXJlIGFyZSBhbHNvIGBpZGVudGlmaWVyYCBhbmQgYGxhYmVsYCBmaWVsZHMgb24gdGhpcyBsaW5rIG5vZGUhXG4gICAgLy8gVGhlc2UgYXJlIHVzZWQgLyBjbGVhbmVkIGhlcmUuXG5cbiAgICAvLyBUbyBkbzogY2xlYW4uXG4gICAgaWYgKHRoaXMuZGF0YS5pblJlZmVyZW5jZSkge1xuICAgICAgLyoqIEB0eXBlIHtSZWZlcmVuY2VUeXBlfSAqL1xuICAgICAgY29uc3QgcmVmZXJlbmNlVHlwZSA9IHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlIHx8ICdzaG9ydGN1dCdcblxuICAgICAgbm9kZS50eXBlICs9ICdSZWZlcmVuY2UnXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtdXRhdGUuXG4gICAgICBub2RlLnJlZmVyZW5jZVR5cGUgPSByZWZlcmVuY2VUeXBlXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtdXRhdGUuXG4gICAgICBkZWxldGUgbm9kZS51cmxcbiAgICAgIGRlbGV0ZSBub2RlLnRpdGxlXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG11dGF0ZS5cbiAgICAgIGRlbGV0ZSBub2RlLmlkZW50aWZpZXJcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG11dGF0ZS5cbiAgICAgIGRlbGV0ZSBub2RlLmxhYmVsXG4gICAgfVxuXG4gICAgdGhpcy5kYXRhLnJlZmVyZW5jZVR5cGUgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGltYWdlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChub2RlLnR5cGUgPT09ICdpbWFnZScsICdleHBlY3RlZCBpbWFnZSBvbiBzdGFjaycpXG5cbiAgICAvLyBOb3RlOiB0aGVyZSBhcmUgYWxzbyBgaWRlbnRpZmllcmAgYW5kIGBsYWJlbGAgZmllbGRzIG9uIHRoaXMgbGluayBub2RlIVxuICAgIC8vIFRoZXNlIGFyZSB1c2VkIC8gY2xlYW5lZCBoZXJlLlxuXG4gICAgLy8gVG8gZG86IGNsZWFuLlxuICAgIGlmICh0aGlzLmRhdGEuaW5SZWZlcmVuY2UpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVmZXJlbmNlVHlwZX0gKi9cbiAgICAgIGNvbnN0IHJlZmVyZW5jZVR5cGUgPSB0aGlzLmRhdGEucmVmZXJlbmNlVHlwZSB8fCAnc2hvcnRjdXQnXG5cbiAgICAgIG5vZGUudHlwZSArPSAnUmVmZXJlbmNlJ1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgbm9kZS5yZWZlcmVuY2VUeXBlID0gcmVmZXJlbmNlVHlwZVxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgZGVsZXRlIG5vZGUudXJsXG4gICAgICBkZWxldGUgbm9kZS50aXRsZVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtdXRhdGUuXG4gICAgICBkZWxldGUgbm9kZS5pZGVudGlmaWVyXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtdXRhdGUuXG4gICAgICBkZWxldGUgbm9kZS5sYWJlbFxuICAgIH1cblxuICAgIHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlID0gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRsYWJlbHRleHQodG9rZW4pIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKVxuICAgIGNvbnN0IGFuY2VzdG9yID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDJdXG4gICAgYXNzZXJ0KGFuY2VzdG9yLCAnZXhwZWN0ZWQgYW5jZXN0b3Igb24gc3RhY2snKVxuICAgIGFzc2VydChcbiAgICAgIGFuY2VzdG9yLnR5cGUgPT09ICdpbWFnZScgfHwgYW5jZXN0b3IudHlwZSA9PT0gJ2xpbmsnLFxuICAgICAgJ2V4cGVjdGVkIGltYWdlIG9yIGxpbmsgb24gc3RhY2snXG4gICAgKVxuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc3Rhc2ggdGhpcyBvbiB0aGUgbm9kZSwgYXMgaXQgbWlnaHQgYmVjb21lIGEgcmVmZXJlbmNlXG4gICAgLy8gbGF0ZXIuXG4gICAgYW5jZXN0b3IubGFiZWwgPSBkZWNvZGVTdHJpbmcoc3RyaW5nKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHNhbWUgYXMgYWJvdmUuXG4gICAgYW5jZXN0b3IuaWRlbnRpZmllciA9IG5vcm1hbGl6ZUlkZW50aWZpZXIoc3RyaW5nKS50b0xvd2VyQ2FzZSgpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRsYWJlbCgpIHtcbiAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChmcmFnbWVudCwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChmcmFnbWVudC50eXBlID09PSAnZnJhZ21lbnQnLCAnZXhwZWN0ZWQgZnJhZ21lbnQgb24gc3RhY2snKVxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChcbiAgICAgIG5vZGUudHlwZSA9PT0gJ2ltYWdlJyB8fCBub2RlLnR5cGUgPT09ICdsaW5rJyxcbiAgICAgICdleHBlY3RlZCBpbWFnZSBvciBsaW5rIG9uIHN0YWNrJ1xuICAgIClcblxuICAgIC8vIEFzc3VtZSBhIHJlZmVyZW5jZS5cbiAgICB0aGlzLmRhdGEuaW5SZWZlcmVuY2UgPSB0cnVlXG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnbGluaycpIHtcbiAgICAgIC8qKiBAdHlwZSB7QXJyYXk8UGhyYXNpbmdDb250ZW50Pn0gKi9cbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gZnJhZ21lbnQuY2hpbGRyZW5cblxuICAgICAgbm9kZS5jaGlsZHJlbiA9IGNoaWxkcmVuXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuYWx0ID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRyZXNvdXJjZWRlc3RpbmF0aW9uc3RyaW5nKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgbm9kZSBvbiBzdGFjaycpXG4gICAgYXNzZXJ0KFxuICAgICAgbm9kZS50eXBlID09PSAnaW1hZ2UnIHx8IG5vZGUudHlwZSA9PT0gJ2xpbmsnLFxuICAgICAgJ2V4cGVjdGVkIGltYWdlIG9yIGxpbmsgb24gc3RhY2snXG4gICAgKVxuICAgIG5vZGUudXJsID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0cmVzb3VyY2V0aXRsZXN0cmluZygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChcbiAgICAgIG5vZGUudHlwZSA9PT0gJ2ltYWdlJyB8fCBub2RlLnR5cGUgPT09ICdsaW5rJyxcbiAgICAgICdleHBlY3RlZCBpbWFnZSBvciBsaW5rIG9uIHN0YWNrJ1xuICAgIClcbiAgICBub2RlLnRpdGxlID0gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0cmVzb3VyY2UoKSB7XG4gICAgdGhpcy5kYXRhLmluUmVmZXJlbmNlID0gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmVudGVycmVmZXJlbmNlKCkge1xuICAgIHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlID0gJ2NvbGxhcHNlZCdcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdHJlZmVyZW5jZXN0cmluZyh0b2tlbikge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5yZXN1bWUoKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChcbiAgICAgIG5vZGUudHlwZSA9PT0gJ2ltYWdlJyB8fCBub2RlLnR5cGUgPT09ICdsaW5rJyxcbiAgICAgICdleHBlY3RlZCBpbWFnZSByZWZlcmVuY2Ugb3IgbGluayByZWZlcmVuY2Ugb24gc3RhY2snXG4gICAgKVxuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc3Rhc2ggdGhpcyBvbiB0aGUgbm9kZSwgYXMgaXQgbWlnaHQgYmVjb21lIGEgcmVmZXJlbmNlXG4gICAgLy8gbGF0ZXIuXG4gICAgbm9kZS5sYWJlbCA9IGxhYmVsXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc2FtZSBhcyBhYm92ZS5cbiAgICBub2RlLmlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKFxuICAgICAgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbiAgICApLnRvTG93ZXJDYXNlKClcbiAgICB0aGlzLmRhdGEucmVmZXJlbmNlVHlwZSA9ICdmdWxsJ1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0Y2hhcmFjdGVycmVmZXJlbmNlbWFya2VyKHRva2VuKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgdG9rZW4udHlwZSA9PT0gJ2NoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMnIHx8XG4gICAgICAgIHRva2VuLnR5cGUgPT09ICdjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCdcbiAgICApXG4gICAgdGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUgPSB0b2tlbi50eXBlXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0Y2hhcmFjdGVycmVmZXJlbmNldmFsdWUodG9rZW4pIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbiAgICBjb25zdCB0eXBlID0gdGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGVcbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgdmFsdWVcblxuICAgIGlmICh0eXBlKSB7XG4gICAgICB2YWx1ZSA9IGRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHR5cGUgPT09IHR5cGVzLmNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWNcbiAgICAgICAgICA/IGNvbnN0YW50cy5udW1lcmljQmFzZURlY2ltYWxcbiAgICAgICAgICA6IGNvbnN0YW50cy5udW1lcmljQmFzZUhleGFkZWNpbWFsXG4gICAgICApXG4gICAgICB0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSA9IHVuZGVmaW5lZFxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShkYXRhKVxuICAgICAgYXNzZXJ0KHJlc3VsdCAhPT0gZmFsc2UsICdleHBlY3RlZCByZWZlcmVuY2UgdG8gZGVjb2RlJylcbiAgICAgIHZhbHVlID0gcmVzdWx0XG4gICAgfVxuXG4gICAgY29uc3QgdGFpbCA9IHRoaXMuc3RhY2sucG9wKClcbiAgICBhc3NlcnQodGFpbCwgJ2V4cGVjdGVkIGBub2RlYCcpXG4gICAgYXNzZXJ0KHRhaWwucG9zaXRpb24sICdleHBlY3RlZCBgbm9kZS5wb3NpdGlvbmAnKVxuICAgIGFzc2VydCgndmFsdWUnIGluIHRhaWwsICdleHBlY3RlZCBgbm9kZS52YWx1ZWAnKVxuICAgIHRhaWwudmFsdWUgKz0gdmFsdWVcbiAgICB0YWlsLnBvc2l0aW9uLmVuZCA9IHBvaW50KHRva2VuLmVuZClcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRhdXRvbGlua3Byb3RvY29sKHRva2VuKSB7XG4gICAgb25leGl0ZGF0YS5jYWxsKHRoaXMsIHRva2VuKVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZSwgJ2V4cGVjdGVkIG5vZGUgb24gc3RhY2snKVxuICAgIGFzc2VydChub2RlLnR5cGUgPT09ICdsaW5rJywgJ2V4cGVjdGVkIGxpbmsgb24gc3RhY2snKVxuXG4gICAgbm9kZS51cmwgPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGF1dG9saW5rZW1haWwodG9rZW4pIHtcbiAgICBvbmV4aXRkYXRhLmNhbGwodGhpcywgdG9rZW4pXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICAgIGFzc2VydChub2RlLCAnZXhwZWN0ZWQgbm9kZSBvbiBzdGFjaycpXG4gICAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ2xpbmsnLCAnZXhwZWN0ZWQgbGluayBvbiBzdGFjaycpXG5cbiAgICBub2RlLnVybCA9ICdtYWlsdG86JyArIHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pXG4gIH1cblxuICAvL1xuICAvLyBDcmVhdGVycy5cbiAgLy9cblxuICAvKiogQHJldHVybnMge0Jsb2NrcXVvdGV9ICovXG4gIGZ1bmN0aW9uIGJsb2NrUXVvdGUoKSB7XG4gICAgcmV0dXJuIHt0eXBlOiAnYmxvY2txdW90ZScsIGNoaWxkcmVuOiBbXX1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Q29kZX0gKi9cbiAgZnVuY3Rpb24gY29kZUZsb3coKSB7XG4gICAgcmV0dXJuIHt0eXBlOiAnY29kZScsIGxhbmc6IG51bGwsIG1ldGE6IG51bGwsIHZhbHVlOiAnJ31cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7SW5saW5lQ29kZX0gKi9cbiAgZnVuY3Rpb24gY29kZVRleHQoKSB7XG4gICAgcmV0dXJuIHt0eXBlOiAnaW5saW5lQ29kZScsIHZhbHVlOiAnJ31cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7RGVmaW5pdGlvbn0gKi9cbiAgZnVuY3Rpb24gZGVmaW5pdGlvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2RlZmluaXRpb24nLFxuICAgICAgaWRlbnRpZmllcjogJycsXG4gICAgICBsYWJlbDogbnVsbCxcbiAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgdXJsOiAnJ1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7RW1waGFzaXN9ICovXG4gIGZ1bmN0aW9uIGVtcGhhc2lzKCkge1xuICAgIHJldHVybiB7dHlwZTogJ2VtcGhhc2lzJywgY2hpbGRyZW46IFtdfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtIZWFkaW5nfSAqL1xuICBmdW5jdGlvbiBoZWFkaW5nKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnaGVhZGluZycsXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGBkZXB0aGAgd2lsbCBiZSBzZXQgbGF0ZXIuXG4gICAgICBkZXB0aDogMCxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7QnJlYWt9ICovXG4gIGZ1bmN0aW9uIGhhcmRCcmVhaygpIHtcbiAgICByZXR1cm4ge3R5cGU6ICdicmVhayd9XG4gIH1cblxuICAvKiogQHJldHVybnMge0h0bWx9ICovXG4gIGZ1bmN0aW9uIGh0bWwoKSB7XG4gICAgcmV0dXJuIHt0eXBlOiAnaHRtbCcsIHZhbHVlOiAnJ31cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7SW1hZ2V9ICovXG4gIGZ1bmN0aW9uIGltYWdlKCkge1xuICAgIHJldHVybiB7dHlwZTogJ2ltYWdlJywgdGl0bGU6IG51bGwsIHVybDogJycsIGFsdDogbnVsbH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7TGlua30gKi9cbiAgZnVuY3Rpb24gbGluaygpIHtcbiAgICByZXR1cm4ge3R5cGU6ICdsaW5rJywgdGl0bGU6IG51bGwsIHVybDogJycsIGNoaWxkcmVuOiBbXX1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgKiBAcmV0dXJucyB7TGlzdH1cbiAgICovXG4gIGZ1bmN0aW9uIGxpc3QodG9rZW4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgb3JkZXJlZDogdG9rZW4udHlwZSA9PT0gJ2xpc3RPcmRlcmVkJyxcbiAgICAgIHN0YXJ0OiBudWxsLFxuICAgICAgc3ByZWFkOiB0b2tlbi5fc3ByZWFkLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gICAqIEByZXR1cm5zIHtMaXN0SXRlbX1cbiAgICovXG4gIGZ1bmN0aW9uIGxpc3RJdGVtKHRva2VuKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdsaXN0SXRlbScsXG4gICAgICBzcHJlYWQ6IHRva2VuLl9zcHJlYWQsXG4gICAgICBjaGVja2VkOiBudWxsLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQYXJhZ3JhcGh9ICovXG4gIGZ1bmN0aW9uIHBhcmFncmFwaCgpIHtcbiAgICByZXR1cm4ge3R5cGU6ICdwYXJhZ3JhcGgnLCBjaGlsZHJlbjogW119XG4gIH1cblxuICAvKiogQHJldHVybnMge1N0cm9uZ30gKi9cbiAgZnVuY3Rpb24gc3Ryb25nKCkge1xuICAgIHJldHVybiB7dHlwZTogJ3N0cm9uZycsIGNoaWxkcmVuOiBbXX1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7VGV4dH0gKi9cbiAgZnVuY3Rpb24gdGV4dCgpIHtcbiAgICByZXR1cm4ge3R5cGU6ICd0ZXh0JywgdmFsdWU6ICcnfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtUaGVtYXRpY0JyZWFrfSAqL1xuICBmdW5jdGlvbiB0aGVtYXRpY0JyZWFrKCkge1xuICAgIHJldHVybiB7dHlwZTogJ3RoZW1hdGljQnJlYWsnfVxuICB9XG59XG5cbi8qKlxuICogQ29weSBhIHBvaW50LWxpa2UgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtQb2ludH0gZFxuICogICBQb2ludC1saWtlIHZhbHVlLlxuICogQHJldHVybnMge1BvaW50fVxuICogICB1bmlzdCBwb2ludC5cbiAqL1xuZnVuY3Rpb24gcG9pbnQoZCkge1xuICByZXR1cm4ge2xpbmU6IGQubGluZSwgY29sdW1uOiBkLmNvbHVtbiwgb2Zmc2V0OiBkLm9mZnNldH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NvbmZpZ30gY29tYmluZWRcbiAqIEBwYXJhbSB7QXJyYXk8QXJyYXk8RXh0ZW5zaW9uPiB8IEV4dGVuc2lvbj59IGV4dGVuc2lvbnNcbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZShjb21iaW5lZCwgZXh0ZW5zaW9ucykge1xuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgZXh0ZW5zaW9ucy5sZW5ndGgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV4dGVuc2lvbnNbaW5kZXhdXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGNvbmZpZ3VyZShjb21iaW5lZCwgdmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGV4dGVuc2lvbihjb21iaW5lZCwgdmFsdWUpXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb25maWd9IGNvbWJpbmVkXG4gKiBAcGFyYW0ge0V4dGVuc2lvbn0gZXh0ZW5zaW9uXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICovXG5mdW5jdGlvbiBleHRlbnNpb24oY29tYmluZWQsIGV4dGVuc2lvbikge1xuICAvKiogQHR5cGUge2tleW9mIEV4dGVuc2lvbn0gKi9cbiAgbGV0IGtleVxuXG4gIGZvciAoa2V5IGluIGV4dGVuc2lvbikge1xuICAgIGlmIChvd24uY2FsbChleHRlbnNpb24sIGtleSkpIHtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgJ2NhbkNvbnRhaW5Fb2xzJzoge1xuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gZXh0ZW5zaW9uW2tleV1cbiAgICAgICAgICBpZiAocmlnaHQpIHtcbiAgICAgICAgICAgIGNvbWJpbmVkW2tleV0ucHVzaCguLi5yaWdodClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSAndHJhbnNmb3Jtcyc6IHtcbiAgICAgICAgICBjb25zdCByaWdodCA9IGV4dGVuc2lvbltrZXldXG4gICAgICAgICAgaWYgKHJpZ2h0KSB7XG4gICAgICAgICAgICBjb21iaW5lZFtrZXldLnB1c2goLi4ucmlnaHQpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ2VudGVyJzpcbiAgICAgICAgY2FzZSAnZXhpdCc6IHtcbiAgICAgICAgICBjb25zdCByaWdodCA9IGV4dGVuc2lvbltrZXldXG4gICAgICAgICAgaWYgKHJpZ2h0KSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvbWJpbmVkW2tleV0sIHJpZ2h0KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgLy8gTm8gZGVmYXVsdFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiogQHR5cGUge09uRW50ZXJFcnJvcn0gKi9cbmZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGxlZnQsIHJpZ2h0KSB7XG4gIGlmIChsZWZ0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBjbG9zZSBgJyArXG4gICAgICAgIGxlZnQudHlwZSArXG4gICAgICAgICdgICgnICtcbiAgICAgICAgc3RyaW5naWZ5UG9zaXRpb24oe3N0YXJ0OiBsZWZ0LnN0YXJ0LCBlbmQ6IGxlZnQuZW5kfSkgK1xuICAgICAgICAnKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAnICtcbiAgICAgICAgcmlnaHQudHlwZSArXG4gICAgICAgICdgLCAnICtcbiAgICAgICAgc3RyaW5naWZ5UG9zaXRpb24oe3N0YXJ0OiByaWdodC5zdGFydCwgZW5kOiByaWdodC5lbmR9KSArXG4gICAgICAgICcpIGlzIG9wZW4nXG4gICAgKVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAnICtcbiAgICAgICAgcmlnaHQudHlwZSArXG4gICAgICAgICdgLCAnICtcbiAgICAgICAgc3RyaW5naWZ5UG9zaXRpb24oe3N0YXJ0OiByaWdodC5zdGFydCwgZW5kOiByaWdodC5lbmR9KSArXG4gICAgICAgICcpIGlzIHN0aWxsIG9wZW4nXG4gICAgKVxuICB9XG59XG4iXSwibmFtZXMiOlsib2siLCJhc3NlcnQiLCJ0b1N0cmluZyIsInBhcnNlIiwicG9zdHByb2Nlc3MiLCJwcmVwcm9jZXNzIiwiZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSIsImRlY29kZVN0cmluZyIsIm5vcm1hbGl6ZUlkZW50aWZpZXIiLCJjb2RlcyIsImNvbnN0YW50cyIsInR5cGVzIiwiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiLCJzdHJpbmdpZnlQb3NpdGlvbiIsIm93biIsImhhc093blByb3BlcnR5IiwiZnJvbU1hcmtkb3duIiwidmFsdWUiLCJlbmNvZGluZyIsIm9wdGlvbnMiLCJ1bmRlZmluZWQiLCJjb21waWxlciIsImRvY3VtZW50Iiwid3JpdGUiLCJjb25maWciLCJ0cmFuc2Zvcm1zIiwiY2FuQ29udGFpbkVvbHMiLCJlbnRlciIsImF1dG9saW5rIiwib3BlbmVyIiwibGluayIsImF1dG9saW5rUHJvdG9jb2wiLCJvbmVudGVyZGF0YSIsImF1dG9saW5rRW1haWwiLCJhdHhIZWFkaW5nIiwiaGVhZGluZyIsImJsb2NrUXVvdGUiLCJjaGFyYWN0ZXJFc2NhcGUiLCJjaGFyYWN0ZXJSZWZlcmVuY2UiLCJjb2RlRmVuY2VkIiwiY29kZUZsb3ciLCJjb2RlRmVuY2VkRmVuY2VJbmZvIiwiYnVmZmVyIiwiY29kZUZlbmNlZEZlbmNlTWV0YSIsImNvZGVJbmRlbnRlZCIsImNvZGVUZXh0IiwiY29kZVRleHREYXRhIiwiZGF0YSIsImNvZGVGbG93VmFsdWUiLCJkZWZpbml0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nIiwiZGVmaW5pdGlvbkxhYmVsU3RyaW5nIiwiZGVmaW5pdGlvblRpdGxlU3RyaW5nIiwiZW1waGFzaXMiLCJoYXJkQnJlYWtFc2NhcGUiLCJoYXJkQnJlYWsiLCJoYXJkQnJlYWtUcmFpbGluZyIsImh0bWxGbG93IiwiaHRtbCIsImh0bWxGbG93RGF0YSIsImh0bWxUZXh0IiwiaHRtbFRleHREYXRhIiwiaW1hZ2UiLCJsYWJlbCIsImxpc3RJdGVtIiwibGlzdEl0ZW1WYWx1ZSIsIm9uZW50ZXJsaXN0aXRlbXZhbHVlIiwibGlzdE9yZGVyZWQiLCJsaXN0Iiwib25lbnRlcmxpc3RvcmRlcmVkIiwibGlzdFVub3JkZXJlZCIsInBhcmFncmFwaCIsInJlZmVyZW5jZSIsIm9uZW50ZXJyZWZlcmVuY2UiLCJyZWZlcmVuY2VTdHJpbmciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwicmVzb3VyY2VUaXRsZVN0cmluZyIsInNldGV4dEhlYWRpbmciLCJzdHJvbmciLCJ0aGVtYXRpY0JyZWFrIiwiZXhpdCIsImNsb3NlciIsImF0eEhlYWRpbmdTZXF1ZW5jZSIsIm9uZXhpdGF0eGhlYWRpbmdzZXF1ZW5jZSIsIm9uZXhpdGF1dG9saW5rZW1haWwiLCJvbmV4aXRhdXRvbGlua3Byb3RvY29sIiwiY2hhcmFjdGVyRXNjYXBlVmFsdWUiLCJvbmV4aXRkYXRhIiwiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiLCJvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2VtYXJrZXIiLCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiwiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiLCJvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2V2YWx1ZSIsIm9uZXhpdGNvZGVmZW5jZWQiLCJjb2RlRmVuY2VkRmVuY2UiLCJvbmV4aXRjb2RlZmVuY2VkZmVuY2UiLCJvbmV4aXRjb2RlZmVuY2VkZmVuY2VpbmZvIiwib25leGl0Y29kZWZlbmNlZGZlbmNlbWV0YSIsIm9uZXhpdGNvZGVpbmRlbnRlZCIsIm9uZXhpdGNvZGV0ZXh0Iiwib25leGl0ZGVmaW5pdGlvbmRlc3RpbmF0aW9uc3RyaW5nIiwib25leGl0ZGVmaW5pdGlvbmxhYmVsc3RyaW5nIiwib25leGl0ZGVmaW5pdGlvbnRpdGxlc3RyaW5nIiwib25leGl0aGFyZGJyZWFrIiwib25leGl0aHRtbGZsb3ciLCJvbmV4aXRodG1sdGV4dCIsIm9uZXhpdGltYWdlIiwib25leGl0bGFiZWwiLCJsYWJlbFRleHQiLCJvbmV4aXRsYWJlbHRleHQiLCJsaW5lRW5kaW5nIiwib25leGl0bGluZWVuZGluZyIsIm9uZXhpdGxpbmsiLCJvbmV4aXRyZWZlcmVuY2VzdHJpbmciLCJvbmV4aXRyZXNvdXJjZWRlc3RpbmF0aW9uc3RyaW5nIiwib25leGl0cmVzb3VyY2V0aXRsZXN0cmluZyIsInJlc291cmNlIiwib25leGl0cmVzb3VyY2UiLCJvbmV4aXRzZXRleHRoZWFkaW5nIiwic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIsIm9uZXhpdHNldGV4dGhlYWRpbmdsaW5lc2VxdWVuY2UiLCJzZXRleHRIZWFkaW5nVGV4dCIsIm9uZXhpdHNldGV4dGhlYWRpbmd0ZXh0IiwiY29uZmlndXJlIiwibWRhc3RFeHRlbnNpb25zIiwiY29tcGlsZSIsImV2ZW50cyIsInRyZWUiLCJ0eXBlIiwiY2hpbGRyZW4iLCJjb250ZXh0Iiwic3RhY2siLCJ0b2tlblN0YWNrIiwicmVzdW1lIiwibGlzdFN0YWNrIiwiaW5kZXgiLCJsZW5ndGgiLCJwdXNoIiwidGFpbCIsInBvcCIsInByZXBhcmVMaXN0IiwiaGFuZGxlciIsImNhbGwiLCJPYmplY3QiLCJhc3NpZ24iLCJzbGljZVNlcmlhbGl6ZSIsImRlZmF1bHRPbkVycm9yIiwicG9zaXRpb24iLCJzdGFydCIsInBvaW50IiwibGluZSIsImNvbHVtbiIsIm9mZnNldCIsImVuZCIsImNvbnRhaW5lckJhbGFuY2UiLCJsaXN0U3ByZWFkIiwibGluZUluZGV4IiwiZmlyc3RCbGFua0xpbmVJbmRleCIsImF0TWFya2VyIiwiZXZlbnQiLCJsaW5lRW5kaW5nQmxhbmsiLCJsaW5lUHJlZml4IiwibGlzdEl0ZW1NYXJrZXIiLCJsaXN0SXRlbVByZWZpeCIsImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsInRhaWxJbmRleCIsInRhaWxFdmVudCIsImJsb2NrUXVvdGVQcmVmaXgiLCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIsImJsb2NrUXVvdGVNYXJrZXIiLCJsaXN0SXRlbUluZGVudCIsIl9zcHJlYWQiLCJzcGxpY2UiLCJpdGVtIiwiY3JlYXRlIiwiYW5kIiwib3BlbiIsInRva2VuIiwibm9kZSIsImVycm9ySGFuZGxlciIsInBhcmVudCIsInNpYmxpbmdzIiwiY2xvc2UiLCJvbkV4aXRFcnJvciIsIkVycm9yIiwiZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlIiwiYW5jZXN0b3IiLCJOdW1iZXIiLCJwYXJzZUludCIsIm51bWVyaWNCYXNlRGVjaW1hbCIsImxhbmciLCJtZXRhIiwiZmxvd0NvZGVJbnNpZGUiLCJyZXBsYWNlIiwiaWRlbnRpZmllciIsInRvTG93ZXJDYXNlIiwidGl0bGUiLCJ1cmwiLCJkZXB0aCIsInNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmciLCJjb2RlUG9pbnRBdCIsImVxdWFsc1RvIiwidGV4dCIsImF0SGFyZEJyZWFrIiwiaW5jbHVkZXMiLCJpblJlZmVyZW5jZSIsInJlZmVyZW5jZVR5cGUiLCJzdHJpbmciLCJmcmFnbWVudCIsImFsdCIsImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiLCJudW1lcmljQmFzZUhleGFkZWNpbWFsIiwicmVzdWx0Iiwib3JkZXJlZCIsInNwcmVhZCIsImNoZWNrZWQiLCJkIiwiY29tYmluZWQiLCJleHRlbnNpb25zIiwiQXJyYXkiLCJpc0FycmF5IiwiZXh0ZW5zaW9uIiwia2V5IiwicmlnaHQiLCJsZWZ0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-from-markdown/dev/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-gfm-autolink-literal/lib/index.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/mdast-util-gfm-autolink-literal/lib/index.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmAutolinkLiteralFromMarkdown: () => (/* binding */ gfmAutolinkLiteralFromMarkdown),\n/* harmony export */ gfmAutolinkLiteralToMarkdown: () => (/* binding */ gfmAutolinkLiteralToMarkdown)\n/* harmony export */ });\n/* harmony import */ var ccount__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ccount */ \"(ssr)/../../node_modules/ccount/index.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var mdast_util_find_and_replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-find-and-replace */ \"(ssr)/../../node_modules/mdast-util-find-and-replace/lib/index.js\");\n/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n */ \n\n\n\n/** @type {ConstructName} */ const inConstruct = \"phrasing\";\n/** @type {Array<ConstructName>} */ const notInConstruct = [\n \"autolink\",\n \"link\",\n \"image\",\n \"label\"\n];\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */ function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [\n transformGfmAutolinkLiterals\n ],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */ function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterLiteralAutolink(token) {\n this.enter({\n type: \"link\",\n title: null,\n url: \"\",\n children: []\n }, token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === \"link\");\n node.url = \"http://\" + this.sliceSerialize(token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitLiteralAutolink(token) {\n this.exit(token);\n}\n/** @type {FromMarkdownTransform} */ function transformGfmAutolinkLiterals(tree) {\n (0,mdast_util_find_and_replace__WEBPACK_IMPORTED_MODULE_1__.findAndReplace)(tree, [\n [\n /(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi,\n findUrl\n ],\n [\n /([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g,\n findEmail\n ]\n ], {\n ignore: [\n \"link\",\n \"linkReference\"\n ]\n });\n}\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array<PhrasingContent> | Link | false}\n */ // eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = \"\";\n // Not an expected previous character.\n if (!previous(match)) {\n return false;\n }\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain)) {\n return false;\n }\n const parts = splitUrl(domain + path);\n if (!parts[0]) return false;\n /** @type {Link} */ const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [\n {\n type: \"text\",\n value: protocol + parts[0]\n }\n ]\n };\n if (parts[1]) {\n return [\n result,\n {\n type: \"text\",\n value: parts[1]\n }\n ];\n }\n return result;\n}\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */ function findEmail(_, atext, label, match) {\n if (// Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [\n {\n type: \"text\",\n value: atext + \"@\" + label\n }\n ]\n };\n}\n/**\n * @param {string} domain\n * @returns {boolean}\n */ function isCorrectDomain(domain) {\n const parts = domain.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */ function splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [\n url,\n undefined\n ];\n }\n url = url.slice(0, trailExec.index);\n let trail = trailExec[0];\n let closingParenIndex = trail.indexOf(\")\");\n const openingParens = (0,ccount__WEBPACK_IMPORTED_MODULE_2__.ccount)(url, \"(\");\n let closingParens = (0,ccount__WEBPACK_IMPORTED_MODULE_2__.ccount)(url, \")\");\n while(closingParenIndex !== -1 && openingParens > closingParens){\n url += trail.slice(0, closingParenIndex + 1);\n trail = trail.slice(closingParenIndex + 1);\n closingParenIndex = trail.indexOf(\")\");\n closingParens++;\n }\n return [\n url,\n trail\n ];\n}\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */ function previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.unicodeWhitespace)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.unicodePunctuation)(code)) && (!email || code !== 47);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLWF1dG9saW5rLWxpdGVyYWwvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7OztDQWNDLEdBRTRCO0FBQ007QUFDMkM7QUFDcEI7QUFFMUQsMEJBQTBCLEdBQzFCLE1BQU1NLGNBQWM7QUFDcEIsaUNBQWlDLEdBQ2pDLE1BQU1DLGlCQUFpQjtJQUFDO0lBQVk7SUFBUTtJQUFTO0NBQVE7QUFFN0Q7Ozs7OztDQU1DLEdBQ00sU0FBU0M7SUFDZCxPQUFPO1FBQ0xDLFlBQVk7WUFBQ0M7U0FBNkI7UUFDMUNDLE9BQU87WUFDTEMsaUJBQWlCQztZQUNqQkMsc0JBQXNCQztZQUN0QkMscUJBQXFCRDtZQUNyQkUsb0JBQW9CRjtRQUN0QjtRQUNBRyxNQUFNO1lBQ0pOLGlCQUFpQk87WUFDakJMLHNCQUFzQk07WUFDdEJKLHFCQUFxQks7WUFDckJKLG9CQUFvQks7UUFDdEI7SUFDRjtBQUNGO0FBRUE7Ozs7OztDQU1DLEdBQ00sU0FBU0M7SUFDZCxPQUFPO1FBQ0xDLFFBQVE7WUFDTjtnQkFDRUMsV0FBVztnQkFDWEMsUUFBUTtnQkFDUkMsT0FBTztnQkFDUHJCO2dCQUNBQztZQUNGO1lBQ0E7Z0JBQ0VrQixXQUFXO2dCQUNYQyxRQUFRO2dCQUNSQyxPQUFPO2dCQUNQckI7Z0JBQ0FDO1lBQ0Y7WUFDQTtnQkFDRWtCLFdBQVc7Z0JBQ1hDLFFBQVE7Z0JBQ1JDLE9BQU87Z0JBQ1ByQjtnQkFDQUM7WUFDRjtTQUNEO0lBQ0g7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNNLHFCQUFxQmUsS0FBSztJQUNqQyxJQUFJLENBQUNqQixLQUFLLENBQUM7UUFBQ2tCLE1BQU07UUFBUUMsT0FBTztRQUFNQyxLQUFLO1FBQUlDLFVBQVUsRUFBRTtJQUFBLEdBQUdKO0FBQ2pFO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2IsMEJBQTBCYSxLQUFLO0lBQ3RDLElBQUksQ0FBQ0ss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RCxNQUFNRSxPQUFPLENBQUM7UUFDbENFO0lBQ0Y7SUFFQSxPQUFPO1FBQUN4QztRQUFLb0M7S0FBTTtBQUNyQjtBQUVBOzs7O0NBSUMsR0FDRCxTQUFTZixTQUFTRixLQUFLLEVBQUVzQixLQUFLO0lBQzVCLE1BQU1DLE9BQU92QixNQUFNd0IsS0FBSyxDQUFDQyxVQUFVLENBQUN6QixNQUFNZ0IsS0FBSyxHQUFHO0lBRWxELE9BQ0UsQ0FBQ2hCLE1BQU1nQixLQUFLLEtBQUssS0FDZjlELDJFQUFpQkEsQ0FBQ3FFLFNBQ2xCdEUsNEVBQWtCQSxDQUFDc0UsS0FBSSxLQUN4QixFQUFDRCxTQUFTQyxTQUFTLEVBQUM7QUFFekIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWdmbS1hdXRvbGluay1saXRlcmFsL2xpYi9pbmRleC5qcz80OTRhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5MaW5rfSBMaW5rXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlBocmFzaW5nQ29udGVudH0gUGhyYXNpbmdDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuQ29tcGlsZUNvbnRleHR9IENvbXBpbGVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5FeHRlbnNpb259IEZyb21NYXJrZG93bkV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuSGFuZGxlfSBGcm9tTWFya2Rvd25IYW5kbGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLlRyYW5zZm9ybX0gRnJvbU1hcmtkb3duVHJhbnNmb3JtXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLkNvbnN0cnVjdE5hbWV9IENvbnN0cnVjdE5hbWVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nKS5PcHRpb25zfSBUb01hcmtkb3duRXh0ZW5zaW9uXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1maW5kLWFuZC1yZXBsYWNlJykuUmVnRXhwTWF0Y2hPYmplY3R9IFJlZ0V4cE1hdGNoT2JqZWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZpbmQtYW5kLXJlcGxhY2UnKS5SZXBsYWNlRnVuY3Rpb259IFJlcGxhY2VGdW5jdGlvblxuICovXG5cbmltcG9ydCB7Y2NvdW50fSBmcm9tICdjY291bnQnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHt1bmljb2RlUHVuY3R1YXRpb24sIHVuaWNvZGVXaGl0ZXNwYWNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge2ZpbmRBbmRSZXBsYWNlfSBmcm9tICdtZGFzdC11dGlsLWZpbmQtYW5kLXJlcGxhY2UnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0TmFtZX0gKi9cbmNvbnN0IGluQ29uc3RydWN0ID0gJ3BocmFzaW5nJ1xuLyoqIEB0eXBlIHtBcnJheTxDb25zdHJ1Y3ROYW1lPn0gKi9cbmNvbnN0IG5vdEluQ29uc3RydWN0ID0gWydhdXRvbGluaycsICdsaW5rJywgJ2ltYWdlJywgJ2xhYmVsJ11cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIGF1dG9saW5rXG4gKiBsaXRlcmFscyBpbiBtYXJrZG93bi5cbiAqXG4gKiBAcmV0dXJucyB7RnJvbU1hcmtkb3duRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIGF1dG9saW5rIGxpdGVyYWxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtQXV0b2xpbmtMaXRlcmFsRnJvbU1hcmtkb3duKCkge1xuICByZXR1cm4ge1xuICAgIHRyYW5zZm9ybXM6IFt0cmFuc2Zvcm1HZm1BdXRvbGlua0xpdGVyYWxzXSxcbiAgICBlbnRlcjoge1xuICAgICAgbGl0ZXJhbEF1dG9saW5rOiBlbnRlckxpdGVyYWxBdXRvbGluayxcbiAgICAgIGxpdGVyYWxBdXRvbGlua0VtYWlsOiBlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlLFxuICAgICAgbGl0ZXJhbEF1dG9saW5rSHR0cDogZW50ZXJMaXRlcmFsQXV0b2xpbmtWYWx1ZSxcbiAgICAgIGxpdGVyYWxBdXRvbGlua1d3dzogZW50ZXJMaXRlcmFsQXV0b2xpbmtWYWx1ZVxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgbGl0ZXJhbEF1dG9saW5rOiBleGl0TGl0ZXJhbEF1dG9saW5rLFxuICAgICAgbGl0ZXJhbEF1dG9saW5rRW1haWw6IGV4aXRMaXRlcmFsQXV0b2xpbmtFbWFpbCxcbiAgICAgIGxpdGVyYWxBdXRvbGlua0h0dHA6IGV4aXRMaXRlcmFsQXV0b2xpbmtIdHRwLFxuICAgICAgbGl0ZXJhbEF1dG9saW5rV3d3OiBleGl0TGl0ZXJhbEF1dG9saW5rV3d3XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gYXV0b2xpbmtcbiAqIGxpdGVyYWxzIGluIG1hcmtkb3duLlxuICpcbiAqIEByZXR1cm5zIHtUb01hcmtkb3duRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIGF1dG9saW5rIGxpdGVyYWxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtQXV0b2xpbmtMaXRlcmFsVG9NYXJrZG93bigpIHtcbiAgcmV0dXJuIHtcbiAgICB1bnNhZmU6IFtcbiAgICAgIHtcbiAgICAgICAgY2hhcmFjdGVyOiAnQCcsXG4gICAgICAgIGJlZm9yZTogJ1srXFxcXC0uXFxcXHddJyxcbiAgICAgICAgYWZ0ZXI6ICdbXFxcXC0uXFxcXHddJyxcbiAgICAgICAgaW5Db25zdHJ1Y3QsXG4gICAgICAgIG5vdEluQ29uc3RydWN0XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjaGFyYWN0ZXI6ICcuJyxcbiAgICAgICAgYmVmb3JlOiAnW1d3XScsXG4gICAgICAgIGFmdGVyOiAnW1xcXFwtLlxcXFx3XScsXG4gICAgICAgIGluQ29uc3RydWN0LFxuICAgICAgICBub3RJbkNvbnN0cnVjdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2hhcmFjdGVyOiAnOicsXG4gICAgICAgIGJlZm9yZTogJ1twc10nLFxuICAgICAgICBhZnRlcjogJ1xcXFwvJyxcbiAgICAgICAgaW5Db25zdHJ1Y3QsXG4gICAgICAgIG5vdEluQ29uc3RydWN0XG4gICAgICB9XG4gICAgXVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZW50ZXJMaXRlcmFsQXV0b2xpbmsodG9rZW4pIHtcbiAgdGhpcy5lbnRlcih7dHlwZTogJ2xpbmsnLCB0aXRsZTogbnVsbCwgdXJsOiAnJywgY2hpbGRyZW46IFtdfSwgdG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZW50ZXJMaXRlcmFsQXV0b2xpbmtWYWx1ZSh0b2tlbikge1xuICB0aGlzLmNvbmZpZy5lbnRlci5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcywgdG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdExpdGVyYWxBdXRvbGlua0h0dHAodG9rZW4pIHtcbiAgdGhpcy5jb25maWcuZXhpdC5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcywgdG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdExpdGVyYWxBdXRvbGlua1d3dyh0b2tlbikge1xuICB0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLCB0b2tlbilcbiAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICBhc3NlcnQobm9kZS50eXBlID09PSAnbGluaycpXG4gIG5vZGUudXJsID0gJ2h0dHA6Ly8nICsgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0TGl0ZXJhbEF1dG9saW5rRW1haWwodG9rZW4pIHtcbiAgdGhpcy5jb25maWcuZXhpdC5hdXRvbGlua0VtYWlsLmNhbGwodGhpcywgdG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdExpdGVyYWxBdXRvbGluayh0b2tlbikge1xuICB0aGlzLmV4aXQodG9rZW4pXG59XG5cbi8qKiBAdHlwZSB7RnJvbU1hcmtkb3duVHJhbnNmb3JtfSAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtR2ZtQXV0b2xpbmtMaXRlcmFscyh0cmVlKSB7XG4gIGZpbmRBbmRSZXBsYWNlKFxuICAgIHRyZWUsXG4gICAgW1xuICAgICAgWy8oaHR0cHM/OlxcL1xcL3x3d3coPz1cXC4pKShbLS5cXHddKykoW14gXFx0XFxyXFxuXSopL2dpLCBmaW5kVXJsXSxcbiAgICAgIFsvKFstLlxcdytdKylAKFstXFx3XSsoPzpcXC5bLVxcd10rKSspL2csIGZpbmRFbWFpbF1cbiAgICBdLFxuICAgIHtpZ25vcmU6IFsnbGluaycsICdsaW5rUmVmZXJlbmNlJ119XG4gIClcbn1cblxuLyoqXG4gKiBAdHlwZSB7UmVwbGFjZUZ1bmN0aW9ufVxuICogQHBhcmFtIHtzdHJpbmd9IF9cbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm90b2NvbFxuICogQHBhcmFtIHtzdHJpbmd9IGRvbWFpblxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEBwYXJhbSB7UmVnRXhwTWF0Y2hPYmplY3R9IG1hdGNoXG4gKiBAcmV0dXJucyB7QXJyYXk8UGhyYXNpbmdDb250ZW50PiB8IExpbmsgfCBmYWxzZX1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbmZ1bmN0aW9uIGZpbmRVcmwoXywgcHJvdG9jb2wsIGRvbWFpbiwgcGF0aCwgbWF0Y2gpIHtcbiAgbGV0IHByZWZpeCA9ICcnXG5cbiAgLy8gTm90IGFuIGV4cGVjdGVkIHByZXZpb3VzIGNoYXJhY3Rlci5cbiAgaWYgKCFwcmV2aW91cyhtYXRjaCkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIFRyZWF0IGB3d3dgIGFzIHBhcnQgb2YgdGhlIGRvbWFpbi5cbiAgaWYgKC9edy9pLnRlc3QocHJvdG9jb2wpKSB7XG4gICAgZG9tYWluID0gcHJvdG9jb2wgKyBkb21haW5cbiAgICBwcm90b2NvbCA9ICcnXG4gICAgcHJlZml4ID0gJ2h0dHA6Ly8nXG4gIH1cblxuICBpZiAoIWlzQ29ycmVjdERvbWFpbihkb21haW4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBwYXJ0cyA9IHNwbGl0VXJsKGRvbWFpbiArIHBhdGgpXG5cbiAgaWYgKCFwYXJ0c1swXSkgcmV0dXJuIGZhbHNlXG5cbiAgLyoqIEB0eXBlIHtMaW5rfSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2xpbmsnLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHVybDogcHJlZml4ICsgcHJvdG9jb2wgKyBwYXJ0c1swXSxcbiAgICBjaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsIHZhbHVlOiBwcm90b2NvbCArIHBhcnRzWzBdfV1cbiAgfVxuXG4gIGlmIChwYXJ0c1sxXSkge1xuICAgIHJldHVybiBbcmVzdWx0LCB7dHlwZTogJ3RleHQnLCB2YWx1ZTogcGFydHNbMV19XVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIEB0eXBlIHtSZXBsYWNlRnVuY3Rpb259XG4gKiBAcGFyYW0ge3N0cmluZ30gX1xuICogQHBhcmFtIHtzdHJpbmd9IGF0ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gbGFiZWxcbiAqIEBwYXJhbSB7UmVnRXhwTWF0Y2hPYmplY3R9IG1hdGNoXG4gKiBAcmV0dXJucyB7TGluayB8IGZhbHNlfVxuICovXG5mdW5jdGlvbiBmaW5kRW1haWwoXywgYXRleHQsIGxhYmVsLCBtYXRjaCkge1xuICBpZiAoXG4gICAgLy8gTm90IGFuIGV4cGVjdGVkIHByZXZpb3VzIGNoYXJhY3Rlci5cbiAgICAhcHJldmlvdXMobWF0Y2gsIHRydWUpIHx8XG4gICAgLy8gTGFiZWwgZW5kcyBpbiBub3QgYWxsb3dlZCBjaGFyYWN0ZXIuXG4gICAgL1stXFxkX10kLy50ZXN0KGxhYmVsKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2xpbmsnLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHVybDogJ21haWx0bzonICsgYXRleHQgKyAnQCcgKyBsYWJlbCxcbiAgICBjaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsIHZhbHVlOiBhdGV4dCArICdAJyArIGxhYmVsfV1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBkb21haW5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc0NvcnJlY3REb21haW4oZG9tYWluKSB7XG4gIGNvbnN0IHBhcnRzID0gZG9tYWluLnNwbGl0KCcuJylcblxuICBpZiAoXG4gICAgcGFydHMubGVuZ3RoIDwgMiB8fFxuICAgIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSAmJlxuICAgICAgKC9fLy50ZXN0KHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKSB8fFxuICAgICAgICAhL1thLXpBLVpcXGRdLy50ZXN0KHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKSkpIHx8XG4gICAgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDJdICYmXG4gICAgICAoL18vLnRlc3QocGFydHNbcGFydHMubGVuZ3RoIC0gMl0pIHx8XG4gICAgICAgICEvW2EtekEtWlxcZF0vLnRlc3QocGFydHNbcGFydHMubGVuZ3RoIC0gMl0pKSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAqIEByZXR1cm5zIHtbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdfVxuICovXG5mdW5jdGlvbiBzcGxpdFVybCh1cmwpIHtcbiAgY29uc3QgdHJhaWxFeGVjID0gL1shXCImJyksLjo7PD4/XFxdfV0rJC8uZXhlYyh1cmwpXG5cbiAgaWYgKCF0cmFpbEV4ZWMpIHtcbiAgICByZXR1cm4gW3VybCwgdW5kZWZpbmVkXVxuICB9XG5cbiAgdXJsID0gdXJsLnNsaWNlKDAsIHRyYWlsRXhlYy5pbmRleClcblxuICBsZXQgdHJhaWwgPSB0cmFpbEV4ZWNbMF1cbiAgbGV0IGNsb3NpbmdQYXJlbkluZGV4ID0gdHJhaWwuaW5kZXhPZignKScpXG4gIGNvbnN0IG9wZW5pbmdQYXJlbnMgPSBjY291bnQodXJsLCAnKCcpXG4gIGxldCBjbG9zaW5nUGFyZW5zID0gY2NvdW50KHVybCwgJyknKVxuXG4gIHdoaWxlIChjbG9zaW5nUGFyZW5JbmRleCAhPT0gLTEgJiYgb3BlbmluZ1BhcmVucyA+IGNsb3NpbmdQYXJlbnMpIHtcbiAgICB1cmwgKz0gdHJhaWwuc2xpY2UoMCwgY2xvc2luZ1BhcmVuSW5kZXggKyAxKVxuICAgIHRyYWlsID0gdHJhaWwuc2xpY2UoY2xvc2luZ1BhcmVuSW5kZXggKyAxKVxuICAgIGNsb3NpbmdQYXJlbkluZGV4ID0gdHJhaWwuaW5kZXhPZignKScpXG4gICAgY2xvc2luZ1BhcmVucysrXG4gIH1cblxuICByZXR1cm4gW3VybCwgdHJhaWxdXG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHBNYXRjaE9iamVjdH0gbWF0Y2hcbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtlbWFpbD1mYWxzZV1cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBwcmV2aW91cyhtYXRjaCwgZW1haWwpIHtcbiAgY29uc3QgY29kZSA9IG1hdGNoLmlucHV0LmNoYXJDb2RlQXQobWF0Y2guaW5kZXggLSAxKVxuXG4gIHJldHVybiAoXG4gICAgKG1hdGNoLmluZGV4ID09PSAwIHx8XG4gICAgICB1bmljb2RlV2hpdGVzcGFjZShjb2RlKSB8fFxuICAgICAgdW5pY29kZVB1bmN0dWF0aW9uKGNvZGUpKSAmJlxuICAgICghZW1haWwgfHwgY29kZSAhPT0gNDcpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJjY291bnQiLCJvayIsImFzc2VydCIsInVuaWNvZGVQdW5jdHVhdGlvbiIsInVuaWNvZGVXaGl0ZXNwYWNlIiwiZmluZEFuZFJlcGxhY2UiLCJpbkNvbnN0cnVjdCIsIm5vdEluQ29uc3RydWN0IiwiZ2ZtQXV0b2xpbmtMaXRlcmFsRnJvbU1hcmtkb3duIiwidHJhbnNmb3JtcyIsInRyYW5zZm9ybUdmbUF1dG9saW5rTGl0ZXJhbHMiLCJlbnRlciIsImxpdGVyYWxBdXRvbGluayIsImVudGVyTGl0ZXJhbEF1dG9saW5rIiwibGl0ZXJhbEF1dG9saW5rRW1haWwiLCJlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlIiwibGl0ZXJhbEF1dG9saW5rSHR0cCIsImxpdGVyYWxBdXRvbGlua1d3dyIsImV4aXQiLCJleGl0TGl0ZXJhbEF1dG9saW5rIiwiZXhpdExpdGVyYWxBdXRvbGlua0VtYWlsIiwiZXhpdExpdGVyYWxBdXRvbGlua0h0dHAiLCJleGl0TGl0ZXJhbEF1dG9saW5rV3d3IiwiZ2ZtQXV0b2xpbmtMaXRlcmFsVG9NYXJrZG93biIsInVuc2FmZSIsImNoYXJhY3RlciIsImJlZm9yZSIsImFmdGVyIiwidG9rZW4iLCJ0eXBlIiwidGl0bGUiLCJ1cmwiLCJjaGlsZHJlbiIsImNvbmZpZyIsImF1dG9saW5rUHJvdG9jb2wiLCJjYWxsIiwiZGF0YSIsIm5vZGUiLCJzdGFjayIsImxlbmd0aCIsInNsaWNlU2VyaWFsaXplIiwiYXV0b2xpbmtFbWFpbCIsInRyZWUiLCJmaW5kVXJsIiwiZmluZEVtYWlsIiwiaWdub3JlIiwiXyIsInByb3RvY29sIiwiZG9tYWluIiwicGF0aCIsIm1hdGNoIiwicHJlZml4IiwicHJldmlvdXMiLCJ0ZXN0IiwiaXNDb3JyZWN0RG9tYWluIiwicGFydHMiLCJzcGxpdFVybCIsInJlc3VsdCIsInZhbHVlIiwiYXRleHQiLCJsYWJlbCIsInNwbGl0IiwidHJhaWxFeGVjIiwiZXhlYyIsInVuZGVmaW5lZCIsInNsaWNlIiwiaW5kZXgiLCJ0cmFpbCIsImNsb3NpbmdQYXJlbkluZGV4IiwiaW5kZXhPZiIsIm9wZW5pbmdQYXJlbnMiLCJjbG9zaW5nUGFyZW5zIiwiZW1haWwiLCJjb2RlIiwiaW5wdXQiLCJjaGFyQ29kZUF0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-gfm-autolink-literal/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-gfm-footnote/lib/index.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/mdast-util-gfm-footnote/lib/index.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmFootnoteFromMarkdown: () => (/* binding */ gfmFootnoteFromMarkdown),\n/* harmony export */ gfmFootnoteToMarkdown: () => (/* binding */ gfmFootnoteToMarkdown)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"(ssr)/../../node_modules/micromark-util-normalize-identifier/dev/index.js\");\n/**\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */ \n\nfootnoteReference.peek = footnoteReferencePeek;\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */ function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n };\n}\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */ function gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [\n {\n character: \"[\",\n inConstruct: [\n \"phrasing\",\n \"label\",\n \"reference\"\n ]\n }\n ],\n handlers: {\n footnoteDefinition,\n footnoteReference\n }\n };\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterFootnoteDefinition(token) {\n this.enter({\n type: \"footnoteDefinition\",\n identifier: \"\",\n label: \"\",\n children: []\n }, token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === \"footnoteDefinition\");\n node.label = label;\n node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__.normalizeIdentifier)(this.sliceSerialize(token)).toLowerCase();\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitFootnoteDefinition(token) {\n this.exit(token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterFootnoteCall(token) {\n this.enter({\n type: \"footnoteReference\",\n identifier: \"\",\n label: \"\"\n }, token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterFootnoteCallString() {\n this.buffer();\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitFootnoteCallString(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === \"footnoteReference\");\n node.label = label;\n node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__.normalizeIdentifier)(this.sliceSerialize(token)).toLowerCase();\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitFootnoteCall(token) {\n this.exit(token);\n}\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */ function footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: \"]\"\n }));\n subexit();\n exit();\n value += tracker.move(\"]\");\n return value;\n}\n/** @type {ToMarkdownHandle} */ function footnoteReferencePeek() {\n return \"[\";\n}\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */ function footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: \"]\"\n }));\n subexit();\n value += tracker.move(\"]:\" + (node.children && node.children.length > 0 ? \" \" : \"\"));\n tracker.shift(4);\n value += tracker.move(state.indentLines(state.containerFlow(node, tracker.current()), map));\n exit();\n return value;\n}\n/** @type {Map} */ function map(line, index, blank) {\n if (index === 0) {\n return line;\n }\n return (blank ? \"\" : \" \") + line;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLWZvb3Rub3RlL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7OztDQVNDLEdBRWtDO0FBQ29DO0FBRXZFRyxrQkFBa0JDLElBQUksR0FBR0M7QUFFekI7Ozs7OztDQU1DLEdBQ00sU0FBU0M7SUFDZCxPQUFPO1FBQ0xDLE9BQU87WUFDTEMsdUJBQXVCQztZQUN2QkMsa0NBQWtDQztZQUNsQ0MsaUJBQWlCQztZQUNqQkMsdUJBQXVCQztRQUN6QjtRQUNBQyxNQUFNO1lBQ0pSLHVCQUF1QlM7WUFDdkJQLGtDQUFrQ1E7WUFDbENOLGlCQUFpQk87WUFDakJMLHVCQUF1Qk07UUFDekI7SUFDRjtBQUNGO0FBRUE7Ozs7OztDQU1DLEdBQ00sU0FBU0M7SUFDZCxPQUFPO1FBQ0wsaUNBQWlDO1FBQ2pDQyxRQUFRO1lBQUM7Z0JBQUNDLFdBQVc7Z0JBQUtDLGFBQWE7b0JBQUM7b0JBQVk7b0JBQVM7aUJBQVk7WUFBQTtTQUFFO1FBQzNFQyxVQUFVO1lBQUNDO1lBQW9CdkI7UUFBaUI7SUFDbEQ7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNNLHdCQUF3QmtCLEtBQUs7SUFDcEMsSUFBSSxDQUFDcEIsS0FBSyxDQUNSO1FBQUNxQixNQUFNO1FBQXNCQyxZQUFZO1FBQUlDLE9BQU87UUFBSUMsVUFBVSxFQUFFO0lBQUEsR0FDcEVKO0FBRUo7QUFFQTs7O0NBR0MsR0FDRCxTQUFTaEI7SUFDUCxJQUFJLENBQUNxQixNQUFNO0FBQ2I7QUFFQTs7O0NBR0MsR0FDRCxTQUFTZCxrQ0FBa0NTLEtBQUs7SUFDOUMsTUFBTUcsUUFBUSxJQUFJLENBQUNHLE1BQU07SUFDekIsTUFBTUMsT0FBTyxJQUFJLENBQUNDLEtBQUssQ0FBQyxJQUFJLENBQUNBLEtBQUssQ0FBQ0MsTUFBTSxHQUFHLEVBQUU7SUFDOUNuQywwQ0FBTUEsQ0FBQ2lDLEtBQUtOLElBQUksS0FBSztJQUNyQk0sS0FB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QUVBLE9BQU8sQ0FBQ0UsUUFBUSxLQUFLLE1BQUssSUFBS0Y7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWdmbS1mb290bm90ZS9saWIvaW5kZXguanM/YWViNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuRm9vdG5vdGVEZWZpbml0aW9ufSBGb290bm90ZURlZmluaXRpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuRm9vdG5vdGVSZWZlcmVuY2V9IEZvb3Rub3RlUmVmZXJlbmNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5Db21waWxlQ29udGV4dH0gQ29tcGlsZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLkV4dGVuc2lvbn0gRnJvbU1hcmtkb3duRXh0ZW5zaW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5IYW5kbGV9IEZyb21NYXJrZG93bkhhbmRsZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLkhhbmRsZX0gVG9NYXJrZG93bkhhbmRsZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLk1hcH0gTWFwXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLW1hcmtkb3duJykuT3B0aW9uc30gVG9NYXJrZG93bkV4dGVuc2lvblxuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge25vcm1hbGl6ZUlkZW50aWZpZXJ9IGZyb20gJ21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyJ1xuXG5mb290bm90ZVJlZmVyZW5jZS5wZWVrID0gZm9vdG5vdGVSZWZlcmVuY2VQZWVrXG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtZnJvbS1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSBmb290bm90ZXNcbiAqIGluIG1hcmtkb3duLlxuICpcbiAqIEByZXR1cm5zIHtGcm9tTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtZnJvbS1tYXJrZG93bmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1Gb290bm90ZUZyb21NYXJrZG93bigpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnRlcjoge1xuICAgICAgZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOiBlbnRlckZvb3Rub3RlRGVmaW5pdGlvbixcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOiBlbnRlckZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nLFxuICAgICAgZ2ZtRm9vdG5vdGVDYWxsOiBlbnRlckZvb3Rub3RlQ2FsbCxcbiAgICAgIGdmbUZvb3Rub3RlQ2FsbFN0cmluZzogZW50ZXJGb290bm90ZUNhbGxTdHJpbmdcbiAgICB9LFxuICAgIGV4aXQ6IHtcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbjogZXhpdEZvb3Rub3RlRGVmaW5pdGlvbixcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOiBleGl0Rm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcsXG4gICAgICBnZm1Gb290bm90ZUNhbGw6IGV4aXRGb290bm90ZUNhbGwsXG4gICAgICBnZm1Gb290bm90ZUNhbGxTdHJpbmc6IGV4aXRGb290bm90ZUNhbGxTdHJpbmdcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSBmb290bm90ZXNcbiAqIGluIG1hcmtkb3duLlxuICpcbiAqIEByZXR1cm5zIHtUb01hcmtkb3duRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbUZvb3Rub3RlVG9NYXJrZG93bigpIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBUaGlzIGlzIG9uIGJ5IGRlZmF1bHQgYWxyZWFkeS5cbiAgICB1bnNhZmU6IFt7Y2hhcmFjdGVyOiAnWycsIGluQ29uc3RydWN0OiBbJ3BocmFzaW5nJywgJ2xhYmVsJywgJ3JlZmVyZW5jZSddfV0sXG4gICAgaGFuZGxlcnM6IHtmb290bm90ZURlZmluaXRpb24sIGZvb3Rub3RlUmVmZXJlbmNlfVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZW50ZXJGb290bm90ZURlZmluaXRpb24odG9rZW4pIHtcbiAgdGhpcy5lbnRlcihcbiAgICB7dHlwZTogJ2Zvb3Rub3RlRGVmaW5pdGlvbicsIGlkZW50aWZpZXI6ICcnLCBsYWJlbDogJycsIGNoaWxkcmVuOiBbXX0sXG4gICAgdG9rZW5cbiAgKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGVudGVyRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcoKSB7XG4gIHRoaXMuYnVmZmVyKClcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0Rm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcodG9rZW4pIHtcbiAgY29uc3QgbGFiZWwgPSB0aGlzLnJlc3VtZSgpXG4gIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ2Zvb3Rub3RlRGVmaW5pdGlvbicpXG4gIG5vZGUubGFiZWwgPSBsYWJlbFxuICBub2RlLmlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKFxuICAgIHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pXG4gICkudG9Mb3dlckNhc2UoKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXRGb290bm90ZURlZmluaXRpb24odG9rZW4pIHtcbiAgdGhpcy5leGl0KHRva2VuKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGVudGVyRm9vdG5vdGVDYWxsKHRva2VuKSB7XG4gIHRoaXMuZW50ZXIoe3R5cGU6ICdmb290bm90ZVJlZmVyZW5jZScsIGlkZW50aWZpZXI6ICcnLCBsYWJlbDogJyd9LCB0b2tlbilcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBlbnRlckZvb3Rub3RlQ2FsbFN0cmluZygpIHtcbiAgdGhpcy5idWZmZXIoKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXRGb290bm90ZUNhbGxTdHJpbmcodG9rZW4pIHtcbiAgY29uc3QgbGFiZWwgPSB0aGlzLnJlc3VtZSgpXG4gIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ2Zvb3Rub3RlUmVmZXJlbmNlJylcbiAgbm9kZS5sYWJlbCA9IGxhYmVsXG4gIG5vZGUuaWRlbnRpZmllciA9IG5vcm1hbGl6ZUlkZW50aWZpZXIoXG4gICAgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbiAgKS50b0xvd2VyQ2FzZSgpXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdEZvb3Rub3RlQ2FsbCh0b2tlbikge1xuICB0aGlzLmV4aXQodG9rZW4pXG59XG5cbi8qKlxuICogQHR5cGUge1RvTWFya2Rvd25IYW5kbGV9XG4gKiBAcGFyYW0ge0Zvb3Rub3RlUmVmZXJlbmNlfSBub2RlXG4gKi9cbmZ1bmN0aW9uIGZvb3Rub3RlUmVmZXJlbmNlKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZSgnW14nKVxuICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2Zvb3Rub3RlUmVmZXJlbmNlJylcbiAgY29uc3Qgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdyZWZlcmVuY2UnKVxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoXG4gICAgc3RhdGUuc2FmZShzdGF0ZS5hc3NvY2lhdGlvbklkKG5vZGUpLCB7XG4gICAgICAuLi50cmFja2VyLmN1cnJlbnQoKSxcbiAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICBhZnRlcjogJ10nXG4gICAgfSlcbiAgKVxuICBzdWJleGl0KClcbiAgZXhpdCgpXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnXScpXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKiogQHR5cGUge1RvTWFya2Rvd25IYW5kbGV9ICovXG5mdW5jdGlvbiBmb290bm90ZVJlZmVyZW5jZVBlZWsoKSB7XG4gIHJldHVybiAnWydcbn1cblxuLyoqXG4gKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX1cbiAqIEBwYXJhbSB7Rm9vdG5vdGVEZWZpbml0aW9ufSBub2RlXG4gKi9cbmZ1bmN0aW9uIGZvb3Rub3RlRGVmaW5pdGlvbihub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCB0cmFja2VyID0gc3RhdGUuY3JlYXRlVHJhY2tlcihpbmZvKVxuICBsZXQgdmFsdWUgPSB0cmFja2VyLm1vdmUoJ1teJylcbiAgY29uc3QgZXhpdCA9IHN0YXRlLmVudGVyKCdmb290bm90ZURlZmluaXRpb24nKVxuICBjb25zdCBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ2xhYmVsJylcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgIHN0YXRlLnNhZmUoc3RhdGUuYXNzb2NpYXRpb25JZChub2RlKSwge1xuICAgICAgLi4udHJhY2tlci5jdXJyZW50KCksXG4gICAgICBiZWZvcmU6IHZhbHVlLFxuICAgICAgYWZ0ZXI6ICddJ1xuICAgIH0pXG4gIClcbiAgc3ViZXhpdCgpXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAnXTonICsgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwID8gJyAnIDogJycpXG4gIClcbiAgdHJhY2tlci5zaGlmdCg0KVxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoXG4gICAgc3RhdGUuaW5kZW50TGluZXMoc3RhdGUuY29udGFpbmVyRmxvdyhub2RlLCB0cmFja2VyLmN1cnJlbnQoKSksIG1hcClcbiAgKVxuICBleGl0KClcblxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqIEB0eXBlIHtNYXB9ICovXG5mdW5jdGlvbiBtYXAobGluZSwgaW5kZXgsIGJsYW5rKSB7XG4gIGlmIChpbmRleCA9PT0gMCkge1xuICAgIHJldHVybiBsaW5lXG4gIH1cblxuICByZXR1cm4gKGJsYW5rID8gJycgOiAnICAgICcpICsgbGluZVxufVxuIl0sIm5hbWVzIjpbIm9rIiwiYXNzZXJ0Iiwibm9ybWFsaXplSWRlbnRpZmllciIsImZvb3Rub3RlUmVmZXJlbmNlIiwicGVlayIsImZvb3Rub3RlUmVmZXJlbmNlUGVlayIsImdmbUZvb3Rub3RlRnJvbU1hcmtkb3duIiwiZW50ZXIiLCJnZm1Gb290bm90ZURlZmluaXRpb24iLCJlbnRlckZvb3Rub3RlRGVmaW5pdGlvbiIsImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiwiZW50ZXJGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIsImdmbUZvb3Rub3RlQ2FsbCIsImVudGVyRm9vdG5vdGVDYWxsIiwiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIiwiZW50ZXJGb290bm90ZUNhbGxTdHJpbmciLCJleGl0IiwiZXhpdEZvb3Rub3RlRGVmaW5pdGlvbiIsImV4aXRGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIsImV4aXRGb290bm90ZUNhbGwiLCJleGl0Rm9vdG5vdGVDYWxsU3RyaW5nIiwiZ2ZtRm9vdG5vdGVUb01hcmtkb3duIiwidW5zYWZlIiwiY2hhcmFjdGVyIiwiaW5Db25zdHJ1Y3QiLCJoYW5kbGVycyIsImZvb3Rub3RlRGVmaW5pdGlvbiIsInRva2VuIiwidHlwZSIsImlkZW50aWZpZXIiLCJsYWJlbCIsImNoaWxkcmVuIiwiYnVmZmVyIiwicmVzdW1lIiwibm9kZSIsInN0YWNrIiwibGVuZ3RoIiwic2xpY2VTZXJpYWxpemUiLCJ0b0xvd2VyQ2FzZSIsIl8iLCJzdGF0ZSIsImluZm8iLCJ0cmFja2VyIiwiY3JlYXRlVHJhY2tlciIsInZhbHVlIiwibW92ZSIsInN1YmV4aXQiLCJzYWZlIiwiYXNzb2NpYXRpb25JZCIsImN1cnJlbnQiLCJiZWZvcmUiLCJhZnRlciIsInNoaWZ0IiwiaW5kZW50TGluZXMiLCJjb250YWluZXJGbG93IiwibWFwIiwibGluZSIsImluZGV4IiwiYmxhbmsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-gfm-footnote/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-gfm-strikethrough/lib/index.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-gfm-strikethrough/lib/index.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmStrikethroughFromMarkdown: () => (/* binding */ gfmStrikethroughFromMarkdown),\n/* harmony export */ gfmStrikethroughToMarkdown: () => (/* binding */ gfmStrikethroughToMarkdown)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */ /**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: <https://github.com/syntax-tree/mdast-util-to-markdown/blob/8ce8dbf/lib/unsafe.js#L14>\n *\n * @type {Array<ConstructName>}\n */ const constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */ function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\n \"delete\"\n ],\n enter: {\n strikethrough: enterStrikethrough\n },\n exit: {\n strikethrough: exitStrikethrough\n }\n };\n}\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */ function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {\n delete: handleDelete\n }\n };\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterStrikethrough(token) {\n this.enter({\n type: \"delete\",\n children: []\n }, token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitStrikethrough(token) {\n this.exit(token);\n}\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */ function handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info);\n const exit = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit();\n return value;\n}\n/** @type {ToMarkdownHandle} */ function peekDelete() {\n return \"~\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLXN0cmlrZXRocm91Z2gvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Q0FVQyxHQUVEOzs7Ozs7Ozs7Q0FTQyxHQUNELE1BQU1BLGlDQUFpQztJQUNyQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVEQyxhQUFhQyxJQUFJLEdBQUdDO0FBRXBCOzs7Ozs7Q0FNQyxHQUNNLFNBQVNDO0lBQ2QsT0FBTztRQUNMQyxnQkFBZ0I7WUFBQztTQUFTO1FBQzFCQyxPQUFPO1lBQUNDLGVBQWVDO1FBQWtCO1FBQ3pDQyxNQUFNO1lBQUNGLGVBQWVHO1FBQWlCO0lBQ3pDO0FBQ0Y7QUFFQTs7Ozs7O0NBTUMsR0FDTSxTQUFTQztJQUNkLE9BQU87UUFDTEMsUUFBUTtZQUNOO2dCQUNFQyxXQUFXO2dCQUNYQyxhQUFhO2dCQUNiQyxnQkFBZ0JmO1lBQ2xCO1NBQ0Q7UUFDRGdCLFVBQVU7WUFBQ0MsUUFBUWhCO1FBQVk7SUFDakM7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNPLG1CQUFtQlUsS0FBSztJQUMvQixJQUFJLENBQUNaLEtBQUssQ0FBQztRQUFDYSxNQUFNO1FBQVVDLFVBQVUsRUFBRTtJQUFBLEdBQUdGO0FBQzdDO0FBRUE7OztDQUdDLEdBQ0QsU0FBU1Isa0JBQWtCUSxLQUFLO0lBQzlCLElBQUksQ0FBQ1QsSUFBSSxDQUFDUztBQUNaO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2pCLGFBQWFvQixJQUFJLEVBQUVDLENBQUMsRUFBRUMsS0FBSyxFQUFFQyxJQUFJO0lBQ3hDLE1BQU1DLFVBQVVGLE1BQU1HLGFBQWEsQ0FBQ0Y7SUFDcEMsTUFBTWYsT0FBT2MsTUFBTWpCLEtBQUssQ0FBQztJQUN6QixJQUFJcUIsUUFBUUYsUUFBUUcsSUFBSSxDQUFDO0lBQ3pCRCxTQUFTSixNQUFNTSxpQkFBaUIsQ0FBQ1IsTUFBTTtRQUNyQyxHQUFHSSxRQUFRSyxPQUFPLEVBQUU7UUFDcEJDLFFBQVFKO1FBQ1JLLE9BQU87SUFDVDtJQUNBTCxTQUFTRixRQUFRRyxJQUFJLENBQUM7SUFDdEJuQjtJQUNBLE9BQU9rQjtBQUNUO0FBRUEsNkJBQTZCLEdBQzdCLFNBQVN4QjtJQUNQLE9BQU87QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLXN0cmlrZXRocm91Z2gvbGliL2luZGV4LmpzP2U2OTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkRlbGV0ZX0gRGVsZXRlXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuQ29tcGlsZUNvbnRleHR9IENvbXBpbGVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5FeHRlbnNpb259IEZyb21NYXJrZG93bkV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuSGFuZGxlfSBGcm9tTWFya2Rvd25IYW5kbGVcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLW1hcmtkb3duJykuQ29uc3RydWN0TmFtZX0gQ29uc3RydWN0TmFtZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLkhhbmRsZX0gVG9NYXJrZG93bkhhbmRsZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLk9wdGlvbnN9IFRvTWFya2Rvd25FeHRlbnNpb25cbiAqL1xuXG4vKipcbiAqIExpc3Qgb2YgY29uc3RydWN0cyB0aGF0IG9jY3VyIGluIHBocmFzaW5nIChwYXJhZ3JhcGhzLCBoZWFkaW5ncyksIGJ1dCBjYW5ub3RcbiAqIGNvbnRhaW4gc3RyaWtldGhyb3VnaC5cbiAqIFNvIHRoZXkgc29ydCBvZiBjYW5jZWwgZWFjaCBvdGhlciBvdXQuXG4gKiBOb3RlOiBjb3VsZCB1c2UgYSBiZXR0ZXIgbmFtZS5cbiAqXG4gKiBOb3RlOiBrZWVwIGluIHN5bmMgd2l0aDogPGh0dHBzOi8vZ2l0aHViLmNvbS9zeW50YXgtdHJlZS9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2Jsb2IvOGNlOGRiZi9saWIvdW5zYWZlLmpzI0wxND5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8Q29uc3RydWN0TmFtZT59XG4gKi9cbmNvbnN0IGNvbnN0cnVjdHNXaXRob3V0U3RyaWtldGhyb3VnaCA9IFtcbiAgJ2F1dG9saW5rJyxcbiAgJ2Rlc3RpbmF0aW9uTGl0ZXJhbCcsXG4gICdkZXN0aW5hdGlvblJhdycsXG4gICdyZWZlcmVuY2UnLFxuICAndGl0bGVRdW90ZScsXG4gICd0aXRsZUFwb3N0cm9waGUnXG5dXG5cbmhhbmRsZURlbGV0ZS5wZWVrID0gcGVla0RlbGV0ZVxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk1cbiAqIHN0cmlrZXRocm91Z2ggaW4gbWFya2Rvd24uXG4gKlxuICogQHJldHVybnMge0Zyb21NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIHN0cmlrZXRocm91Z2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1TdHJpa2V0aHJvdWdoRnJvbU1hcmtkb3duKCkge1xuICByZXR1cm4ge1xuICAgIGNhbkNvbnRhaW5Fb2xzOiBbJ2RlbGV0ZSddLFxuICAgIGVudGVyOiB7c3RyaWtldGhyb3VnaDogZW50ZXJTdHJpa2V0aHJvdWdofSxcbiAgICBleGl0OiB7c3RyaWtldGhyb3VnaDogZXhpdFN0cmlrZXRocm91Z2h9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTVxuICogc3RyaWtldGhyb3VnaCBpbiBtYXJrZG93bi5cbiAqXG4gKiBAcmV0dXJucyB7VG9NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSBzdHJpa2V0aHJvdWdoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtU3RyaWtldGhyb3VnaFRvTWFya2Rvd24oKSB7XG4gIHJldHVybiB7XG4gICAgdW5zYWZlOiBbXG4gICAgICB7XG4gICAgICAgIGNoYXJhY3RlcjogJ34nLFxuICAgICAgICBpbkNvbnN0cnVjdDogJ3BocmFzaW5nJyxcbiAgICAgICAgbm90SW5Db25zdHJ1Y3Q6IGNvbnN0cnVjdHNXaXRob3V0U3RyaWtldGhyb3VnaFxuICAgICAgfVxuICAgIF0sXG4gICAgaGFuZGxlcnM6IHtkZWxldGU6IGhhbmRsZURlbGV0ZX1cbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGVudGVyU3RyaWtldGhyb3VnaCh0b2tlbikge1xuICB0aGlzLmVudGVyKHt0eXBlOiAnZGVsZXRlJywgY2hpbGRyZW46IFtdfSwgdG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdFN0cmlrZXRocm91Z2godG9rZW4pIHtcbiAgdGhpcy5leGl0KHRva2VuKVxufVxuXG4vKipcbiAqIEB0eXBlIHtUb01hcmtkb3duSGFuZGxlfVxuICogQHBhcmFtIHtEZWxldGV9IG5vZGVcbiAqL1xuZnVuY3Rpb24gaGFuZGxlRGVsZXRlKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignc3RyaWtldGhyb3VnaCcpXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZSgnfn4nKVxuICB2YWx1ZSArPSBzdGF0ZS5jb250YWluZXJQaHJhc2luZyhub2RlLCB7XG4gICAgLi4udHJhY2tlci5jdXJyZW50KCksXG4gICAgYmVmb3JlOiB2YWx1ZSxcbiAgICBhZnRlcjogJ34nXG4gIH0pXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnfn4nKVxuICBleGl0KClcbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX0gKi9cbmZ1bmN0aW9uIHBlZWtEZWxldGUoKSB7XG4gIHJldHVybiAnfidcbn1cbiJdLCJuYW1lcyI6WyJjb25zdHJ1Y3RzV2l0aG91dFN0cmlrZXRocm91Z2giLCJoYW5kbGVEZWxldGUiLCJwZWVrIiwicGVla0RlbGV0ZSIsImdmbVN0cmlrZXRocm91Z2hGcm9tTWFya2Rvd24iLCJjYW5Db250YWluRW9scyIsImVudGVyIiwic3RyaWtldGhyb3VnaCIsImVudGVyU3RyaWtldGhyb3VnaCIsImV4aXQiLCJleGl0U3RyaWtldGhyb3VnaCIsImdmbVN0cmlrZXRocm91Z2hUb01hcmtkb3duIiwidW5zYWZlIiwiY2hhcmFjdGVyIiwiaW5Db25zdHJ1Y3QiLCJub3RJbkNvbnN0cnVjdCIsImhhbmRsZXJzIiwiZGVsZXRlIiwidG9rZW4iLCJ0eXBlIiwiY2hpbGRyZW4iLCJub2RlIiwiXyIsInN0YXRlIiwiaW5mbyIsInRyYWNrZXIiLCJjcmVhdGVUcmFja2VyIiwidmFsdWUiLCJtb3ZlIiwiY29udGFpbmVyUGhyYXNpbmciLCJjdXJyZW50IiwiYmVmb3JlIiwiYWZ0ZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-gfm-strikethrough/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-gfm-table/lib/index.js":
-/*!************************************************************!*\
- !*** ../../node_modules/mdast-util-gfm-table/lib/index.js ***!
- \************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmTableFromMarkdown: () => (/* binding */ gfmTableFromMarkdown),\n/* harmony export */ gfmTableToMarkdown: () => (/* binding */ gfmTableToMarkdown)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var markdown_table__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! markdown-table */ \"(ssr)/../../node_modules/markdown-table/index.js\");\n/* harmony import */ var mdast_util_to_markdown__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mdast-util-to-markdown */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/index.js\");\n/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */ /**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */ \n\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */ function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterTable(token) {\n const align = token._align;\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(align, \"expected `_align` on table\");\n this.enter({\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n }, token);\n this.data.inTable = true;\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitTable(token) {\n this.exit(token);\n this.data.inTable = undefined;\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterRow(token) {\n this.enter({\n type: \"tableRow\",\n children: []\n }, token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exit(token) {\n this.exit(token);\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterCell(token) {\n this.enter({\n type: \"tableCell\",\n children: []\n }, token);\n}\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === \"inlineCode\");\n node.value = value;\n this.exit(token);\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */ function replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === \"|\" ? $1 : $0;\n}\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */ function gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n {\n character: \"\\r\",\n inConstruct: \"tableCell\"\n },\n {\n character: \"\\n\",\n inConstruct: \"tableCell\"\n },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {\n atBreak: true,\n character: \"|\",\n after: \"[\t :-]\"\n },\n // A pipe in a cell must be encoded.\n {\n character: \"|\",\n inConstruct: \"tableCell\"\n },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {\n atBreak: true,\n character: \":\",\n after: \"-\"\n },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n {\n atBreak: true,\n character: \"-\",\n after: \"[:|-]\"\n }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */ function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align);\n }\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */ function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info);\n const value = serializeData([\n row\n ]);\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */ function handleTableCell(node, _, state, info) {\n const exit = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit();\n return value;\n }\n /**\n * @param {Array<Array<string>>} matrix\n * @param {Array<string | null | undefined> | null | undefined} [align]\n */ function serializeData(matrix, align) {\n return (0,markdown_table__WEBPACK_IMPORTED_MODULE_1__.markdownTable)(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */ function handleTableAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n /** @type {Array<Array<string>>} */ const result = [];\n const subexit = state.enter(\"table\");\n while(++index < children.length){\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */ function handleTableRowAsData(node, state, info) {\n const children = node.children;\n let index = -1;\n /** @type {Array<string>} */ const result = [];\n const subexit = state.enter(\"tableRow\");\n while(++index < children.length){\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info);\n }\n subexit();\n return result;\n }\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */ function inlineCodeWithTable(node, parent, state) {\n let value = mdast_util_to_markdown__WEBPACK_IMPORTED_MODULE_2__.handle.inlineCode(node, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLXRhYmxlL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JDLEdBRUQ7Ozs7Ozs7Ozs7O0NBV0MsR0FFa0M7QUFDUztBQUNVO0FBRXREOzs7Ozs7Q0FNQyxHQUNNLFNBQVNJO0lBQ2QsT0FBTztRQUNMQyxPQUFPO1lBQ0xDLE9BQU9DO1lBQ1BDLFdBQVdDO1lBQ1hDLGFBQWFEO1lBQ2JFLFVBQVVDO1FBQ1o7UUFDQUMsTUFBTTtZQUNKQyxVQUFVQztZQUNWVCxPQUFPVTtZQUNQUixXQUFXSztZQUNYSCxhQUFhRztZQUNiRixVQUFVRTtRQUNaO0lBQ0Y7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNOLFdBQVdVLEtBQUs7SUFDdkIsTUFBTUMsUUFBUUQsTUFBTUUsTUFBTTtJQUMxQmxCLDBDQUFNQSxDQUFDaUIsT0FBTztJQUNkLElBQUksQ0FBQ2IsS0FBSyxDQUNSO1FBQ0VlLE1BQU07UUFDTkYsT0FBT0EsTUFBTUcsR0FBRyxDQUFDLFNBQVVDLENBQUM7WUFDMUIsT0FBT0EsTUFBTSxTQUFTLE9BQU9BO1FBQy9CO1FBQ0FDLFVBQVUsRUFBRTtJQUNkLEdBQ0FOO0lBRUYsSUFBSSxDQUFDTyxJQUFJLENBQUNDLE9BQU8sR0FBRztBQUN0QjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNULFVBQVVDLEtBQUs7SUFDdEIsSUFBSSxDQUFDSixJQUFJLENBQUNJO0lBQ1YsSUFBSSxDQUFDTyxJQUFJLENBQUNDLE9BQU8sR0FBR0M7QUFDdEI7QUFFQTs7O0NBR0MsR0FDRCxTQUFTZCxTQUFTSyxLQUFLO0lBQ3JCLElBQUksQ0FBQ1osS0FBSyxDQUFDO1FBQUNlLE1BQU07UUFBWUcsVUFBVSxFQUFFO0lBQUEsR0FBR047QUFDL0M7QUFFQTs7O0NBR0MsR0FDRCxTQUFTSixLQUFLSSxLQUFLO0lBQ2pCLElBQUksQ0FBQ0osSUFBSSxDQUFDSTtBQUNaO0FB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b0JyQixJQUFJLEVBQUV5QyxNQUFNLEVBQUVkLEtBQUs7UUFDOUMsSUFBSTlCLFFBQVF4QiwwREFBZUEsQ0FBQytDLFVBQVUsQ0FBQ3BCLE1BQU15QyxRQUFRZDtRQUVyRCxJQUFJQSxNQUFNMUIsS0FBSyxDQUFDeUMsUUFBUSxDQUFDLGNBQWM7WUFDckM3QyxRQUFRQSxNQUFNRSxPQUFPLENBQUMsT0FBTztRQUMvQjtRQUVBLE9BQU9GO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLXRhYmxlL2xpYi9pbmRleC5qcz80YzNiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5JbmxpbmVDb2RlfSBJbmxpbmVDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlRhYmxlfSBUYWJsZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5UYWJsZUNlbGx9IFRhYmxlQ2VsbFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5UYWJsZVJvd30gVGFibGVSb3dcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtYXJrZG93bi10YWJsZScpLk9wdGlvbnN9IE1hcmtkb3duVGFibGVPcHRpb25zXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuQ29tcGlsZUNvbnRleHR9IENvbXBpbGVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5FeHRlbnNpb259IEZyb21NYXJrZG93bkV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuSGFuZGxlfSBGcm9tTWFya2Rvd25IYW5kbGVcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLW1hcmtkb3duJykuT3B0aW9uc30gVG9NYXJrZG93bkV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLkhhbmRsZX0gVG9NYXJrZG93bkhhbmRsZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLkluZm99IEluZm9cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0YWJsZUNlbGxQYWRkaW5nPXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gYWRkIGEgc3BhY2Ugb2YgcGFkZGluZyBiZXR3ZWVuIGRlbGltaXRlcnMgYW5kIGNlbGxzIChkZWZhdWx0OlxuICogICBgdHJ1ZWApLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RhYmxlUGlwZUFsaWduPXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gYWxpZ24gdGhlIGRlbGltaXRlcnMgKGRlZmF1bHQ6IGB0cnVlYCkuXG4gKiBAcHJvcGVydHkge01hcmtkb3duVGFibGVPcHRpb25zWydzdHJpbmdMZW5ndGgnXSB8IG51bGwgfCB1bmRlZmluZWR9IFtzdHJpbmdMZW5ndGhdXG4gKiAgIEZ1bmN0aW9uIHRvIGRldGVjdCB0aGUgbGVuZ3RoIG9mIHRhYmxlIGNlbGwgY29udGVudCwgdXNlZCB3aGVuIGFsaWduaW5nXG4gKiAgIHRoZSBkZWxpbWl0ZXJzIGJldHdlZW4gY2VsbHMgKG9wdGlvbmFsKS5cbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHttYXJrZG93blRhYmxlfSBmcm9tICdtYXJrZG93bi10YWJsZSdcbmltcG9ydCB7ZGVmYXVsdEhhbmRsZXJzfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gdGFibGVzIGluXG4gKiBtYXJrZG93bi5cbiAqXG4gKiBAcmV0dXJucyB7RnJvbU1hcmtkb3duRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gdGFibGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtVGFibGVGcm9tTWFya2Rvd24oKSB7XG4gIHJldHVybiB7XG4gICAgZW50ZXI6IHtcbiAgICAgIHRhYmxlOiBlbnRlclRhYmxlLFxuICAgICAgdGFibGVEYXRhOiBlbnRlckNlbGwsXG4gICAgICB0YWJsZUhlYWRlcjogZW50ZXJDZWxsLFxuICAgICAgdGFibGVSb3c6IGVudGVyUm93XG4gICAgfSxcbiAgICBleGl0OiB7XG4gICAgICBjb2RlVGV4dDogZXhpdENvZGVUZXh0LFxuICAgICAgdGFibGU6IGV4aXRUYWJsZSxcbiAgICAgIHRhYmxlRGF0YTogZXhpdCxcbiAgICAgIHRhYmxlSGVhZGVyOiBleGl0LFxuICAgICAgdGFibGVSb3c6IGV4aXRcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBlbnRlclRhYmxlKHRva2VuKSB7XG4gIGNvbnN0IGFsaWduID0gdG9rZW4uX2FsaWduXG4gIGFzc2VydChhbGlnbiwgJ2V4cGVjdGVkIGBfYWxpZ25gIG9uIHRhYmxlJylcbiAgdGhpcy5lbnRlcihcbiAgICB7XG4gICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgYWxpZ246IGFsaWduLm1hcChmdW5jdGlvbiAoZCkge1xuICAgICAgICByZXR1cm4gZCA9PT0gJ25vbmUnID8gbnVsbCA6IGRcbiAgICAgIH0pLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfSxcbiAgICB0b2tlblxuICApXG4gIHRoaXMuZGF0YS5pblRhYmxlID0gdHJ1ZVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXRUYWJsZSh0b2tlbikge1xuICB0aGlzLmV4aXQodG9rZW4pXG4gIHRoaXMuZGF0YS5pblRhYmxlID0gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZW50ZXJSb3codG9rZW4pIHtcbiAgdGhpcy5lbnRlcih7dHlwZTogJ3RhYmxlUm93JywgY2hpbGRyZW46IFtdfSwgdG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdCh0b2tlbikge1xuICB0aGlzLmV4aXQodG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZW50ZXJDZWxsKHRva2VuKSB7XG4gIHRoaXMuZW50ZXIoe3R5cGU6ICd0YWJsZUNlbGwnLCBjaGlsZHJlbjogW119LCB0b2tlbilcbn1cblxuLy8gT3ZlcndyaXRlIHRoZSBkZWZhdWx0IGNvZGUgdGV4dCBkYXRhIGhhbmRsZXIgdG8gdW5lc2NhcGUgZXNjYXBlZCBwaXBlcyB3aGVuXG4vLyB0aGV5IGFyZSBpbiB0YWJsZXMuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXRDb2RlVGV4dCh0b2tlbikge1xuICBsZXQgdmFsdWUgPSB0aGlzLnJlc3VtZSgpXG5cbiAgaWYgKHRoaXMuZGF0YS5pblRhYmxlKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXFxcKFtcXFxcfF0pL2csIHJlcGxhY2UpXG4gIH1cblxuICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gIGFzc2VydChub2RlLnR5cGUgPT09ICdpbmxpbmVDb2RlJylcbiAgbm9kZS52YWx1ZSA9IHZhbHVlXG4gIHRoaXMuZXhpdCh0b2tlbilcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcmVwbGFjZSgkMCwgJDEpIHtcbiAgLy8gUGlwZXMgd29yaywgYmFja3NsYXNoZXMgZG9u4oCZdCAoYnV0IGNhbuKAmXQgZXNjYXBlIHBpcGVzKS5cbiAgcmV0dXJuICQxID09PSAnfCcgPyAkMSA6ICQwXG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gdGFibGVzIGluXG4gKiBtYXJrZG93bi5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtUb01hcmtkb3duRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIHRhYmxlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRhYmxlVG9NYXJrZG93bihvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fVxuICBjb25zdCBwYWRkaW5nID0gc2V0dGluZ3MudGFibGVDZWxsUGFkZGluZ1xuICBjb25zdCBhbGlnbkRlbGltaXRlcnMgPSBzZXR0aW5ncy50YWJsZVBpcGVBbGlnblxuICBjb25zdCBzdHJpbmdMZW5ndGggPSBzZXR0aW5ncy5zdHJpbmdMZW5ndGhcbiAgY29uc3QgYXJvdW5kID0gcGFkZGluZyA/ICcgJyA6ICd8J1xuXG4gIHJldHVybiB7XG4gICAgdW5zYWZlOiBbXG4gICAgICB7Y2hhcmFjdGVyOiAnXFxyJywgaW5Db25zdHJ1Y3Q6ICd0YWJsZUNlbGwnfSxcbiAgICAgIHtjaGFyYWN0ZXI6ICdcXG4nLCBpbkNvbnN0cnVjdDogJ3RhYmxlQ2VsbCd9LFxuICAgICAgLy8gQSBwaXBlLCB3aGVuIGZvbGxvd2VkIGJ5IGEgdGFiIG9yIHNwYWNlIChwYWRkaW5nKSwgb3IgYSBkYXNoIG9yIGNvbG9uXG4gICAgICAvLyAodW5wYWRkZWQgZGVsaW1pdGVyIHJvdyksIGNvdWxkIHJlc3VsdCBpbiBhIHRhYmxlLlxuICAgICAge2F0QnJlYWs6IHRydWUsIGNoYXJhY3RlcjogJ3wnLCBhZnRlcjogJ1tcXHQgOi1dJ30sXG4gICAgICAvLyBBIHBpcGUgaW4gYSBjZWxsIG11c3QgYmUgZW5jb2RlZC5cbiAgICAgIHtjaGFyYWN0ZXI6ICd8JywgaW5Db25zdHJ1Y3Q6ICd0YWJsZUNlbGwnfSxcbiAgICAgIC8vIEEgY29sb24gbXVzdCBiZSBmb2xsb3dlZCBieSBhIGRhc2gsIGluIHdoaWNoIGNhc2UgaXQgY291bGQgc3RhcnQgYVxuICAgICAgLy8gZGVsaW1pdGVyIHJvdy5cbiAgICAgIHthdEJyZWFrOiB0cnVlLCBjaGFyYWN0ZXI6ICc6JywgYWZ0ZXI6ICctJ30sXG4gICAgICAvLyBBIGRlbGltaXRlciByb3cgY2FuIGFsc28gc3RhcnQgd2l0aCBhIGRhc2gsIHdoZW4gZm9sbG93ZWQgYnkgbW9yZVxuICAgICAgLy8gZGFzaGVzLCBhIGNvbG9uLCBvciBhIHBpcGUuXG4gICAgICAvLyBUaGlzIGlzIGEgc3RyaWN0ZXIgdmVyc2lvbiB0aGFuIHRoZSBidWlsdCBpbiBjaGVjayBmb3IgbGlzdHMsIHRoZW1hdGljXG4gICAgICAvLyBicmVha3MsIGFuZCBzZXRleCBoZWFkaW5nIHVuZGVybGluZXMgdGhvdWdoOlxuICAgICAgLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9zeW50YXgtdHJlZS9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2Jsb2IvNTFhMjAzOC9saWIvdW5zYWZlLmpzI0w1Nz5cbiAgICAgIHthdEJyZWFrOiB0cnVlLCBjaGFyYWN0ZXI6ICctJywgYWZ0ZXI6ICdbOnwtXSd9XG4gICAgXSxcbiAgICBoYW5kbGVyczoge1xuICAgICAgaW5saW5lQ29kZTogaW5saW5lQ29kZVdpdGhUYWJsZSxcbiAgICAgIHRhYmxlOiBoYW5kbGVUYWJsZSxcbiAgICAgIHRhYmxlQ2VsbDogaGFuZGxlVGFibGVDZWxsLFxuICAgICAgdGFibGVSb3c6IGhhbmRsZVRhYmxlUm93XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtUb01hcmtkb3duSGFuZGxlfVxuICAgKiBAcGFyYW0ge1RhYmxlfSBub2RlXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVUYWJsZShub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICAgIHJldHVybiBzZXJpYWxpemVEYXRhKGhhbmRsZVRhYmxlQXNEYXRhKG5vZGUsIHN0YXRlLCBpbmZvKSwgbm9kZS5hbGlnbilcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGlzbuKAmXQgcmVhbGx5IHVzZWQgbm9ybWFsbHksIGJlY2F1c2Ugd2UgaGFuZGxlIHJvd3MgYXQgdGhlXG4gICAqIHRhYmxlIGxldmVsLlxuICAgKiBCdXQsIGlmIHNvbWVvbmUgcGFzc2VzIGluIGEgdGFibGUgcm93LCB0aGlzIGVuc3VyZXMgd2UgbWFrZSBzb21ld2hhdCBzZW5zZS5cbiAgICpcbiAgICogQHR5cGUge1RvTWFya2Rvd25IYW5kbGV9XG4gICAqIEBwYXJhbSB7VGFibGVSb3d9IG5vZGVcbiAgICovXG4gIGZ1bmN0aW9uIGhhbmRsZVRhYmxlUm93KG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gICAgY29uc3Qgcm93ID0gaGFuZGxlVGFibGVSb3dBc0RhdGEobm9kZSwgc3RhdGUsIGluZm8pXG4gICAgY29uc3QgdmFsdWUgPSBzZXJpYWxpemVEYXRhKFtyb3ddKVxuICAgIC8vIGBtYXJrZG93bi10YWJsZWAgd2lsbCBhbHdheXMgYWRkIGFuIGFsaWduIHJvd1xuICAgIHJldHVybiB2YWx1ZS5zbGljZSgwLCB2YWx1ZS5pbmRleE9mKCdcXG4nKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX1cbiAgICogQHBhcmFtIHtUYWJsZUNlbGx9IG5vZGVcbiAgICovXG4gIGZ1bmN0aW9uIGhhbmRsZVRhYmxlQ2VsbChub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICAgIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcigndGFibGVDZWxsJylcbiAgICBjb25zdCBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ3BocmFzaW5nJylcbiAgICBjb25zdCB2YWx1ZSA9IHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIHtcbiAgICAgIC4uLmluZm8sXG4gICAgICBiZWZvcmU6IGFyb3VuZCxcbiAgICAgIGFmdGVyOiBhcm91bmRcbiAgICB9KVxuICAgIHN1YmV4aXQoKVxuICAgIGV4aXQoKVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7QXJyYXk8QXJyYXk8c3RyaW5nPj59IG1hdHJpeFxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FsaWduXVxuICAgKi9cbiAgZnVuY3Rpb24gc2VyaWFsaXplRGF0YShtYXRyaXgsIGFsaWduKSB7XG4gICAgcmV0dXJuIG1hcmtkb3duVGFibGUobWF0cml4LCB7XG4gICAgICBhbGlnbixcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGBtYXJrZG93bi10YWJsZWAgdHlwZXMgc2hvdWxkIHN1cHBvcnQgYG51bGxgLlxuICAgICAgYWxpZ25EZWxpbWl0ZXJzLFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYG1hcmtkb3duLXRhYmxlYCB0eXBlcyBzaG91bGQgc3VwcG9ydCBgbnVsbGAuXG4gICAgICBwYWRkaW5nLFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYG1hcmtkb3duLXRhYmxlYCB0eXBlcyBzaG91bGQgc3VwcG9ydCBgbnVsbGAuXG4gICAgICBzdHJpbmdMZW5ndGhcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VGFibGV9IG5vZGVcbiAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAgICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVUYWJsZUFzRGF0YShub2RlLCBzdGF0ZSwgaW5mbykge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlblxuICAgIGxldCBpbmRleCA9IC0xXG4gICAgLyoqIEB0eXBlIHtBcnJheTxBcnJheTxzdHJpbmc+Pn0gKi9cbiAgICBjb25zdCByZXN1bHQgPSBbXVxuICAgIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigndGFibGUnKVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdFtpbmRleF0gPSBoYW5kbGVUYWJsZVJvd0FzRGF0YShjaGlsZHJlbltpbmRleF0sIHN0YXRlLCBpbmZvKVxuICAgIH1cblxuICAgIHN1YmV4aXQoKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VGFibGVSb3d9IG5vZGVcbiAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAgICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVUYWJsZVJvd0FzRGF0YShub2RlLCBzdGF0ZSwgaW5mbykge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlblxuICAgIGxldCBpbmRleCA9IC0xXG4gICAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdXG4gICAgY29uc3Qgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCd0YWJsZVJvdycpXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgLy8gTm90ZTogdGhlIHBvc2l0aW9uYWwgaW5mbyBhcyB1c2VkIGhlcmUgaXMgaW5jb3JyZWN0LlxuICAgICAgLy8gTWFraW5nIGl0IGNvcnJlY3Qgd291bGQgYmUgaW1wb3NzaWJsZSBkdWUgdG8gYWxpZ25pbmcgY2VsbHM/XG4gICAgICAvLyBBbmQgaXQgd291bGQgbmVlZCBjb3B5L3Bhc3RpbmcgYG1hcmtkb3duLXRhYmxlYCBpbnRvIHRoaXMgcHJvamVjdC5cbiAgICAgIHJlc3VsdFtpbmRleF0gPSBoYW5kbGVUYWJsZUNlbGwoY2hpbGRyZW5baW5kZXhdLCBub2RlLCBzdGF0ZSwgaW5mbylcbiAgICB9XG5cbiAgICBzdWJleGl0KClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX1cbiAgICogQHBhcmFtIHtJbmxpbmVDb2RlfSBub2RlXG4gICAqL1xuICBmdW5jdGlvbiBpbmxpbmVDb2RlV2l0aFRhYmxlKG5vZGUsIHBhcmVudCwgc3RhdGUpIHtcbiAgICBsZXQgdmFsdWUgPSBkZWZhdWx0SGFuZGxlcnMuaW5saW5lQ29kZShub2RlLCBwYXJlbnQsIHN0YXRlKVxuXG4gICAgaWYgKHN0YXRlLnN0YWNrLmluY2x1ZGVzKCd0YWJsZUNlbGwnKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXHwvZywgJ1xcXFwkJicpXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJvayIsImFzc2VydCIsIm1hcmtkb3duVGFibGUiLCJkZWZhdWx0SGFuZGxlcnMiLCJnZm1UYWJsZUZyb21NYXJrZG93biIsImVudGVyIiwidGFibGUiLCJlbnRlclRhYmxlIiwidGFibGVEYXRhIiwiZW50ZXJDZWxsIiwidGFibGVIZWFkZXIiLCJ0YWJsZVJvdyIsImVudGVyUm93IiwiZXhpdCIsImNvZGVUZXh0IiwiZXhpdENvZGVUZXh0IiwiZXhpdFRhYmxlIiwidG9rZW4iLCJhbGlnbiIsIl9hbGlnbiIsInR5cGUiLCJtYXAiLCJkIiwiY2hpbGRyZW4iLCJkYXRhIiwiaW5UYWJsZSIsInVuZGVmaW5lZCIsInZhbHVlIiwicmVzdW1lIiwicmVwbGFjZSIsIm5vZGUiLCJzdGFjayIsImxlbmd0aCIsIiQwIiwiJDEiLCJnZm1UYWJsZVRvTWFya2Rvd24iLCJvcHRpb25zIiwic2V0dGluZ3MiLCJwYWRkaW5nIiwidGFibGVDZWxsUGFkZGluZyIsImFsaWduRGVsaW1pdGVycyIsInRhYmxlUGlwZUFsaWduIiwic3RyaW5nTGVuZ3RoIiwiYXJvdW5kIiwidW5zYWZlIiwiY2hhcmFjdGVyIiwiaW5Db25zdHJ1Y3QiLCJhdEJyZWFrIiwiYWZ0ZXIiLCJoYW5kbGVycyIsImlubGluZUNvZGUiLCJpbmxpbmVDb2RlV2l0aFRhYmxlIiwiaGFuZGxlVGFibGUiLCJ0YWJsZUNlbGwiLCJoYW5kbGVUYWJsZUNlbGwiLCJoYW5kbGVUYWJsZVJvdyIsIl8iLCJzdGF0ZSIsImluZm8iLCJzZXJpYWxpemVEYXRhIiwiaGFuZGxlVGFibGVBc0RhdGEiLCJyb3ciLCJoYW5kbGVUYWJsZVJvd0FzRGF0YSIsInNsaWNlIiwiaW5kZXhPZiIsInN1YmV4aXQiLCJjb250YWluZXJQaHJhc2luZyIsImJlZm9yZSIsIm1hdHJpeCIsImluZGV4IiwicmVzdWx0IiwicGFyZW50IiwiaW5jbHVkZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-gfm-table/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-gfm-task-list-item/lib/index.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/mdast-util-gfm-task-list-item/lib/index.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmTaskListItemFromMarkdown: () => (/* binding */ gfmTaskListItemFromMarkdown),\n/* harmony export */ gfmTaskListItemToMarkdown: () => (/* binding */ gfmTaskListItemToMarkdown)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var mdast_util_to_markdown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-to-markdown */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/index.js\");\n/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */ \n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */ function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */ function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [\n {\n atBreak: true,\n character: \"-\",\n after: \"[:|-]\"\n }\n ],\n handlers: {\n listItem: listItemWithTaskListItem\n }\n };\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2];\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === \"listItem\");\n node.checked = token.type === \"taskListCheckValueChecked\";\n}\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node = this.stack[this.stack.length - 1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === \"paragraph\");\n const head = node.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n /** @type {Paragraph | undefined} */ let firstParaghraph;\n while(++index < siblings.length){\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node.children.shift();\n } else if (node.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */ function listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0];\n const checkable = typeof node.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = mdast_util_to_markdown__WEBPACK_IMPORTED_MODULE_1__.handle.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n /**\n * @param {string} $0\n * @returns {string}\n */ function check($0) {\n return $0 + checkbox;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLXRhc2stbGlzdC1pdGVtL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FFa0M7QUFDbUI7QUFFdEQ7Ozs7OztDQU1DLEdBQ00sU0FBU0c7SUFDZCxPQUFPO1FBQ0xDLE1BQU07WUFDSkMsMkJBQTJCQztZQUMzQkMsNkJBQTZCRDtZQUM3QkUsV0FBV0M7UUFDYjtJQUNGO0FBQ0Y7QUFFQTs7Ozs7O0NBTUMsR0FDTSxTQUFTQztJQUNkLE9BQU87UUFDTEMsUUFBUTtZQUFDO2dCQUFDQyxTQUFTO2dCQUFNQyxXQUFXO2dCQUFLQyxPQUFPO1lBQU87U0FBRTtRQUN6REMsVUFBVTtZQUFDQyxVQUFVQztRQUF3QjtJQUMvQztBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBU1gsVUFBVVksS0FBSztJQUN0QiwrQ0FBK0M7SUFDL0MsTUFBTUMsT0FBTyxJQUFJLENBQUNDLEtBQUssQ0FBQyxJQUFJLENBQUNBLEtBQUssQ0FBQ0MsTUFBTSxHQUFHLEVBQUU7SUFDOUNwQiwwQ0FBTUEsQ0FBQ2tCLEtBQUtHLElBQUksS0FBSztJQUNyQkgsS0FBS0ksT0FBTyxHQUFHTCxNQUFNSSxJQUFJLEtBQUs7QUFDaEM7QUFFQTs7O0NBR0MsR0FDRCxTQUFTYiw4QkFBOEJTLEtBQUs7SUFDMUMsTUFBTU0sU0FBUyxJQUFJLENBQUNKLEtBQUssQ0FBQyxJQUFJLENBQUNBLEtBQUssQ0FBQ0MsTUFBTSxHQUFHLEVBQUU7SUFFaEQsSUFDRUcsVUFDQUEsT0FBT0YsSUFBSSxLQUFLLGNBQ2hCLE9BQU9FLE9BQU9ELE9BQU8sS0FBSyxXQUMxQjtRQUNBLE1BQU1KLE9BQU8sSUFBSSxDQUFDQyxLQUFLLENBQUMsSUFBSSxDQUFDQSxLQUFLLENBQUNDLE1BQU0sR0FBRyxFQUFFO1FBQzlDcEIsMENBQU1BLENBQUNrQixLQUFLRyxJQUFJLEtBQUs7UUFDckIsTUFBTUcsT0FBT04sS0FBS08sUUFBUSxDQUFDLEVBQUU7UUFFN0IsSUFBSUQsUUFBUUEsS0FBS0gsSUFBSSxLQUFLLFFBQVE7WUFDaEMsTUFBTUssV0FBV0gsT0FBT0UsUUFBUTtZQUNoQyxJQUFJRSxRQUFRLENBQUM7WUFDYixrQ0FBa0MsR0FDbEMsSUFBSUM7WUFFSixNQUFPLEVBQUVELFFBQVFELFNBQVNOLE1BQU0sQ0FBRTtnQkFDaEMsTUFBTVMsVUFBVUgsUUFBUSxDQUFDQyxNQUFNO2dCQUMvQixJQUFJRSxRQUFRUixJQUFJLEtBQUssYUFBYTtvQkFDaENPLGtCQUFrQkM7b0JBQ2xCO2dCQUNGO1lBQ0Y7WUFFQSxJQUFJRCxvQkFBb0JWLE1BQU07Z0JBQzVCLG9DQUFvQztnQkFDcENNLEtBQUtNLEtBQUssR0FBR04sS0FBS00sS0FBSyxDQUFDQyxLQUFLLENBQUM7Z0JBRTlCLElBQUlQLEtBQUtNLEtBQUssQ0FBQ1YsTUFBTSxLQUFLLEdBQUc7b0JBQzNCRixLQUFLTyxRQUFRLENBQUNPLEtBQUs7Z0JBQ3JCLE9BQU8sSUFDTGQsS0FBS2UsUUFBUSxJQUNiVCxLQUFLUyxRQUFRLElBQ2IsT0FBT1QsS0FBS1MsUUFBUSxDQUFDQyxLQUFLLENBQUNDLE1BQU0sS0FBSyxVQUN0QztvQkFDQVgsS0FBS1MsUUFBUSxDQUFDQyxLQUFLLENBQUNFLE1BQU07b0JBQzFCWixLQUFLUyxRQUFRLENBQUNDLEtBQUssQ0FBQ0MsTUFBTTtvQkFDMUJqQixLQUFLZSxRQUFRLENBQUNDLEtBQUssR0FBR0csT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR2QsS0FBS1MsUUFBUSxDQUFDQyxLQUFLO2dCQUM3RDtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQUksQ0FBQy9CLElBQUksQ0FBQ2M7QUFDWjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNELHlCQUF5QkUsSUFBSSxFQUFFSyxNQUFNLEVBQUVnQixLQUFLLEVBQUVDLElBQUk7SUFDekQsTUFBTWhCLE9BQU9OLEtBQUtPLFFBQVEsQ0FBQyxFQUFFO0lBQzdCLE1BQU1nQixZQUNKLE9BQU92QixLQUFLSSxPQUFPLEtBQUssYUFBYUUsUUFBUUEsS0FBS0gsSUFBSSxLQUFLO0lBQzdELE1BQU1xQixXQUFXLE1BQU94QixDQUFBQSxLQUFLSSxPQUFPLEdBQUcsTUFBTSxHQUFFLElBQUs7SUFDcEQsTUFBTXFCLFVBQVVKLE1BQU1LLGFBQWEsQ0FBQ0o7SUFFcEMsSUFBSUMsV0FBVztRQUNiRSxRQUFRRSxJQUFJLENBQUNIO0lBQ2Y7SUFFQSxJQUFJWixRQUFRN0IsMERBQWVBLENBQUNjLFFBQVEsQ0FBQ0csTUFBTUssUUFBUWdCLE9BQU87UUFDeEQsR0FBR0MsSUFBSTtRQUNQLEdBQUdHLFFBQVFHLE9BQU8sRUFBRTtJQUN0QjtJQUVBLElBQUlMLFdBQVc7UUFDYlgsUUFBUUEsTUFBTWlCLE9BQU8sQ0FBQyxtQ0FBbUNDO0lBQzNEO0lBRUEsT0FBT2xCO0lBRVA7OztHQUdDLEdBQ0QsU0FBU2tCLE1BQU1DLEVBQUU7UUFDZixPQUFPQSxLQUFLUDtJQUNkO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWdmbS10YXNrLWxpc3QtaXRlbS9saWIvaW5kZXguanM/MzcxYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuTGlzdEl0ZW19IExpc3RJdGVtXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlBhcmFncmFwaH0gUGFyYWdyYXBoXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5Db21waWxlQ29udGV4dH0gQ29tcGlsZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLkV4dGVuc2lvbn0gRnJvbU1hcmtkb3duRXh0ZW5zaW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5IYW5kbGV9IEZyb21NYXJrZG93bkhhbmRsZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLk9wdGlvbnN9IFRvTWFya2Rvd25FeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nKS5IYW5kbGV9IFRvTWFya2Rvd25IYW5kbGVcbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtkZWZhdWx0SGFuZGxlcnN9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtZnJvbS1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSB0YXNrXG4gKiBsaXN0IGl0ZW1zIGluIG1hcmtkb3duLlxuICpcbiAqIEByZXR1cm5zIHtGcm9tTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtZnJvbS1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSB0YXNrIGxpc3QgaXRlbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1UYXNrTGlzdEl0ZW1Gcm9tTWFya2Rvd24oKSB7XG4gIHJldHVybiB7XG4gICAgZXhpdDoge1xuICAgICAgdGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZDogZXhpdENoZWNrLFxuICAgICAgdGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkOiBleGl0Q2hlY2ssXG4gICAgICBwYXJhZ3JhcGg6IGV4aXRQYXJhZ3JhcGhXaXRoVGFza0xpc3RJdGVtXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gdGFzayBsaXN0XG4gKiBpdGVtcyBpbiBtYXJrZG93bi5cbiAqXG4gKiBAcmV0dXJucyB7VG9NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSB0YXNrIGxpc3QgaXRlbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1UYXNrTGlzdEl0ZW1Ub01hcmtkb3duKCkge1xuICByZXR1cm4ge1xuICAgIHVuc2FmZTogW3thdEJyZWFrOiB0cnVlLCBjaGFyYWN0ZXI6ICctJywgYWZ0ZXI6ICdbOnwtXSd9XSxcbiAgICBoYW5kbGVyczoge2xpc3RJdGVtOiBsaXN0SXRlbVdpdGhUYXNrTGlzdEl0ZW19XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0Q2hlY2sodG9rZW4pIHtcbiAgLy8gV2XigJlyZSBhbHdheXMgaW4gYSBwYXJhZ3JhcGgsIGluIGEgbGlzdCBpdGVtLlxuICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDJdXG4gIGFzc2VydChub2RlLnR5cGUgPT09ICdsaXN0SXRlbScpXG4gIG5vZGUuY2hlY2tlZCA9IHRva2VuLnR5cGUgPT09ICd0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkJ1xufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXRQYXJhZ3JhcGhXaXRoVGFza0xpc3RJdGVtKHRva2VuKSB7XG4gIGNvbnN0IHBhcmVudCA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAyXVxuXG4gIGlmIChcbiAgICBwYXJlbnQgJiZcbiAgICBwYXJlbnQudHlwZSA9PT0gJ2xpc3RJdGVtJyAmJlxuICAgIHR5cGVvZiBwYXJlbnQuY2hlY2tlZCA9PT0gJ2Jvb2xlYW4nXG4gICkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgICBhc3NlcnQobm9kZS50eXBlID09PSAncGFyYWdyYXBoJylcbiAgICBjb25zdCBoZWFkID0gbm9kZS5jaGlsZHJlblswXVxuXG4gICAgaWYgKGhlYWQgJiYgaGVhZC50eXBlID09PSAndGV4dCcpIHtcbiAgICAgIGNvbnN0IHNpYmxpbmdzID0gcGFyZW50LmNoaWxkcmVuXG4gICAgICBsZXQgaW5kZXggPSAtMVxuICAgICAgLyoqIEB0eXBlIHtQYXJhZ3JhcGggfCB1bmRlZmluZWR9ICovXG4gICAgICBsZXQgZmlyc3RQYXJhZ2hyYXBoXG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgc2libGluZ3MubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHNpYmxpbmcgPSBzaWJsaW5nc1tpbmRleF1cbiAgICAgICAgaWYgKHNpYmxpbmcudHlwZSA9PT0gJ3BhcmFncmFwaCcpIHtcbiAgICAgICAgICBmaXJzdFBhcmFnaHJhcGggPSBzaWJsaW5nXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZmlyc3RQYXJhZ2hyYXBoID09PSBub2RlKSB7XG4gICAgICAgIC8vIE11c3Qgc3RhcnQgd2l0aCBhIHNwYWNlIG9yIGEgdGFiLlxuICAgICAgICBoZWFkLnZhbHVlID0gaGVhZC52YWx1ZS5zbGljZSgxKVxuXG4gICAgICAgIGlmIChoZWFkLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIG5vZGUuY2hpbGRyZW4uc2hpZnQoKVxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIG5vZGUucG9zaXRpb24gJiZcbiAgICAgICAgICBoZWFkLnBvc2l0aW9uICYmXG4gICAgICAgICAgdHlwZW9mIGhlYWQucG9zaXRpb24uc3RhcnQub2Zmc2V0ID09PSAnbnVtYmVyJ1xuICAgICAgICApIHtcbiAgICAgICAgICBoZWFkLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbisrXG4gICAgICAgICAgaGVhZC5wb3NpdGlvbi5zdGFydC5vZmZzZXQrK1xuICAgICAgICAgIG5vZGUucG9zaXRpb24uc3RhcnQgPSBPYmplY3QuYXNzaWduKHt9LCBoZWFkLnBvc2l0aW9uLnN0YXJ0KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGhpcy5leGl0KHRva2VuKVxufVxuXG4vKipcbiAqIEB0eXBlIHtUb01hcmtkb3duSGFuZGxlfVxuICogQHBhcmFtIHtMaXN0SXRlbX0gbm9kZVxuICovXG5mdW5jdGlvbiBsaXN0SXRlbVdpdGhUYXNrTGlzdEl0ZW0obm9kZSwgcGFyZW50LCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCBoZWFkID0gbm9kZS5jaGlsZHJlblswXVxuICBjb25zdCBjaGVja2FibGUgPVxuICAgIHR5cGVvZiBub2RlLmNoZWNrZWQgPT09ICdib29sZWFuJyAmJiBoZWFkICYmIGhlYWQudHlwZSA9PT0gJ3BhcmFncmFwaCdcbiAgY29uc3QgY2hlY2tib3ggPSAnWycgKyAobm9kZS5jaGVja2VkID8gJ3gnIDogJyAnKSArICddICdcbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcblxuICBpZiAoY2hlY2thYmxlKSB7XG4gICAgdHJhY2tlci5tb3ZlKGNoZWNrYm94KVxuICB9XG5cbiAgbGV0IHZhbHVlID0gZGVmYXVsdEhhbmRsZXJzLmxpc3RJdGVtKG5vZGUsIHBhcmVudCwgc3RhdGUsIHtcbiAgICAuLi5pbmZvLFxuICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gIH0pXG5cbiAgaWYgKGNoZWNrYWJsZSkge1xuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXig/OlsqKy1dfFxcZCtcXC4pKFtcXHJcXG5dfCB7MSwzfSkvLCBjaGVjaylcbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGZ1bmN0aW9uIGNoZWNrKCQwKSB7XG4gICAgcmV0dXJuICQwICsgY2hlY2tib3hcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm9rIiwiYXNzZXJ0IiwiZGVmYXVsdEhhbmRsZXJzIiwiZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duIiwiZXhpdCIsInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiLCJleGl0Q2hlY2siLCJ0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQiLCJwYXJhZ3JhcGgiLCJleGl0UGFyYWdyYXBoV2l0aFRhc2tMaXN0SXRlbSIsImdmbVRhc2tMaXN0SXRlbVRvTWFya2Rvd24iLCJ1bnNhZmUiLCJhdEJyZWFrIiwiY2hhcmFjdGVyIiwiYWZ0ZXIiLCJoYW5kbGVycyIsImxpc3RJdGVtIiwibGlzdEl0ZW1XaXRoVGFza0xpc3RJdGVtIiwidG9rZW4iLCJub2RlIiwic3RhY2siLCJsZW5ndGgiLCJ0eXBlIiwiY2hlY2tlZCIsInBhcmVudCIsImhlYWQiLCJjaGlsZHJlbiIsInNpYmxpbmdzIiwiaW5kZXgiLCJmaXJzdFBhcmFnaHJhcGgiLCJzaWJsaW5nIiwidmFsdWUiLCJzbGljZSIsInNoaWZ0IiwicG9zaXRpb24iLCJzdGFydCIsIm9mZnNldCIsImNvbHVtbiIsIk9iamVjdCIsImFzc2lnbiIsInN0YXRlIiwiaW5mbyIsImNoZWNrYWJsZSIsImNoZWNrYm94IiwidHJhY2tlciIsImNyZWF0ZVRyYWNrZXIiLCJtb3ZlIiwiY3VycmVudCIsInJlcGxhY2UiLCJjaGVjayIsIiQwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-gfm-task-list-item/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-gfm/lib/index.js":
-/*!******************************************************!*\
- !*** ../../node_modules/mdast-util-gfm/lib/index.js ***!
- \******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmFromMarkdown: () => (/* binding */ gfmFromMarkdown),\n/* harmony export */ gfmToMarkdown: () => (/* binding */ gfmToMarkdown)\n/* harmony export */ });\n/* harmony import */ var mdast_util_gfm_autolink_literal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-gfm-autolink-literal */ \"(ssr)/../../node_modules/mdast-util-gfm-autolink-literal/lib/index.js\");\n/* harmony import */ var mdast_util_gfm_footnote__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-gfm-footnote */ \"(ssr)/../../node_modules/mdast-util-gfm-footnote/lib/index.js\");\n/* harmony import */ var mdast_util_gfm_strikethrough__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mdast-util-gfm-strikethrough */ \"(ssr)/../../node_modules/mdast-util-gfm-strikethrough/lib/index.js\");\n/* harmony import */ var mdast_util_gfm_table__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mdast-util-gfm-table */ \"(ssr)/../../node_modules/mdast-util-gfm-table/lib/index.js\");\n/* harmony import */ var mdast_util_gfm_task_list_item__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! mdast-util-gfm-task-list-item */ \"(ssr)/../../node_modules/mdast-util-gfm-task-list-item/lib/index.js\");\n/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */ /**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n * Configuration.\n */ \n\n\n\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array<FromMarkdownExtension>}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */ function gfmFromMarkdown() {\n return [\n (0,mdast_util_gfm_autolink_literal__WEBPACK_IMPORTED_MODULE_0__.gfmAutolinkLiteralFromMarkdown)(),\n (0,mdast_util_gfm_footnote__WEBPACK_IMPORTED_MODULE_1__.gfmFootnoteFromMarkdown)(),\n (0,mdast_util_gfm_strikethrough__WEBPACK_IMPORTED_MODULE_2__.gfmStrikethroughFromMarkdown)(),\n (0,mdast_util_gfm_table__WEBPACK_IMPORTED_MODULE_3__.gfmTableFromMarkdown)(),\n (0,mdast_util_gfm_task_list_item__WEBPACK_IMPORTED_MODULE_4__.gfmTaskListItemFromMarkdown)()\n ];\n}\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */ function gfmToMarkdown(options) {\n return {\n extensions: [\n (0,mdast_util_gfm_autolink_literal__WEBPACK_IMPORTED_MODULE_0__.gfmAutolinkLiteralToMarkdown)(),\n (0,mdast_util_gfm_footnote__WEBPACK_IMPORTED_MODULE_1__.gfmFootnoteToMarkdown)(),\n (0,mdast_util_gfm_strikethrough__WEBPACK_IMPORTED_MODULE_2__.gfmStrikethroughToMarkdown)(),\n (0,mdast_util_gfm_table__WEBPACK_IMPORTED_MODULE_3__.gfmTableToMarkdown)(options),\n (0,mdast_util_gfm_task_list_item__WEBPACK_IMPORTED_MODULE_4__.gfmTaskListItemToMarkdown)()\n ]\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7OztDQUdDLEdBRUQ7OztDQUdDLEdBS3VDO0FBSVI7QUFJSztBQUN3QztBQUl2QztBQUV0Qzs7Ozs7OztDQU9DLEdBQ00sU0FBU1U7SUFDZCxPQUFPO1FBQ0xWLCtGQUE4QkE7UUFDOUJFLGdGQUF1QkE7UUFDdkJFLDBGQUE0QkE7UUFDNUJFLDBFQUFvQkE7UUFDcEJFLDBGQUEyQkE7S0FDNUI7QUFDSDtBQUVBOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNHLGNBQWNDLE9BQU87SUFDbkMsT0FBTztRQUNMQyxZQUFZO1lBQ1ZaLDZGQUE0QkE7WUFDNUJFLDhFQUFxQkE7WUFDckJFLHdGQUEwQkE7WUFDMUJFLHdFQUFrQkEsQ0FBQ0s7WUFDbkJILHdGQUF5QkE7U0FDMUI7SUFDSDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1nZm0vbGliL2luZGV4LmpzPzAzZDUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5FeHRlbnNpb259IEZyb21NYXJrZG93bkV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLk9wdGlvbnN9IFRvTWFya2Rvd25FeHRlbnNpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZ2ZtLXRhYmxlJykuT3B0aW9uc30gT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICovXG5cbmltcG9ydCB7XG4gIGdmbUF1dG9saW5rTGl0ZXJhbEZyb21NYXJrZG93bixcbiAgZ2ZtQXV0b2xpbmtMaXRlcmFsVG9NYXJrZG93blxufSBmcm9tICdtZGFzdC11dGlsLWdmbS1hdXRvbGluay1saXRlcmFsJ1xuaW1wb3J0IHtcbiAgZ2ZtRm9vdG5vdGVGcm9tTWFya2Rvd24sXG4gIGdmbUZvb3Rub3RlVG9NYXJrZG93blxufSBmcm9tICdtZGFzdC11dGlsLWdmbS1mb290bm90ZSdcbmltcG9ydCB7XG4gIGdmbVN0cmlrZXRocm91Z2hGcm9tTWFya2Rvd24sXG4gIGdmbVN0cmlrZXRocm91Z2hUb01hcmtkb3duXG59IGZyb20gJ21kYXN0LXV0aWwtZ2ZtLXN0cmlrZXRocm91Z2gnXG5pbXBvcnQge2dmbVRhYmxlRnJvbU1hcmtkb3duLCBnZm1UYWJsZVRvTWFya2Rvd259IGZyb20gJ21kYXN0LXV0aWwtZ2ZtLXRhYmxlJ1xuaW1wb3J0IHtcbiAgZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duLFxuICBnZm1UYXNrTGlzdEl0ZW1Ub01hcmtkb3duXG59IGZyb20gJ21kYXN0LXV0aWwtZ2ZtLXRhc2stbGlzdC1pdGVtJ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gKGF1dG9saW5rXG4gKiBsaXRlcmFscywgZm9vdG5vdGVzLCBzdHJpa2V0aHJvdWdoLCB0YWJsZXMsIHRhc2tsaXN0cykuXG4gKlxuICogQHJldHVybnMge0FycmF5PEZyb21NYXJrZG93bkV4dGVuc2lvbj59XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtZnJvbS1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSAoYXV0b2xpbmsgbGl0ZXJhbHMsXG4gKiAgIGZvb3Rub3Rlcywgc3RyaWtldGhyb3VnaCwgdGFibGVzLCB0YXNrbGlzdHMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtRnJvbU1hcmtkb3duKCkge1xuICByZXR1cm4gW1xuICAgIGdmbUF1dG9saW5rTGl0ZXJhbEZyb21NYXJrZG93bigpLFxuICAgIGdmbUZvb3Rub3RlRnJvbU1hcmtkb3duKCksXG4gICAgZ2ZtU3RyaWtldGhyb3VnaEZyb21NYXJrZG93bigpLFxuICAgIGdmbVRhYmxlRnJvbU1hcmtkb3duKCksXG4gICAgZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duKClcbiAgXVxufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIChhdXRvbGlua1xuICogbGl0ZXJhbHMsIGZvb3Rub3Rlcywgc3RyaWtldGhyb3VnaCwgdGFibGVzLCB0YXNrbGlzdHMpLlxuICpcbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge1RvTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gKGF1dG9saW5rIGxpdGVyYWxzLFxuICogICBmb290bm90ZXMsIHN0cmlrZXRocm91Z2gsIHRhYmxlcywgdGFza2xpc3RzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRvTWFya2Rvd24ob3B0aW9ucykge1xuICByZXR1cm4ge1xuICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgIGdmbUF1dG9saW5rTGl0ZXJhbFRvTWFya2Rvd24oKSxcbiAgICAgIGdmbUZvb3Rub3RlVG9NYXJrZG93bigpLFxuICAgICAgZ2ZtU3RyaWtldGhyb3VnaFRvTWFya2Rvd24oKSxcbiAgICAgIGdmbVRhYmxlVG9NYXJrZG93bihvcHRpb25zKSxcbiAgICAgIGdmbVRhc2tMaXN0SXRlbVRvTWFya2Rvd24oKVxuICAgIF1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImdmbUF1dG9saW5rTGl0ZXJhbEZyb21NYXJrZG93biIsImdmbUF1dG9saW5rTGl0ZXJhbFRvTWFya2Rvd24iLCJnZm1Gb290bm90ZUZyb21NYXJrZG93biIsImdmbUZvb3Rub3RlVG9NYXJrZG93biIsImdmbVN0cmlrZXRocm91Z2hGcm9tTWFya2Rvd24iLCJnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93biIsImdmbVRhYmxlRnJvbU1hcmtkb3duIiwiZ2ZtVGFibGVUb01hcmtkb3duIiwiZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duIiwiZ2ZtVGFza0xpc3RJdGVtVG9NYXJrZG93biIsImdmbUZyb21NYXJrZG93biIsImdmbVRvTWFya2Rvd24iLCJvcHRpb25zIiwiZXh0ZW5zaW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-gfm/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-phrasing/lib/index.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/mdast-util-phrasing/lib/index.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ phrasing: () => (/* binding */ phrasing)\n/* harmony export */ });\n/* harmony import */ var unist_util_is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-is */ \"(ssr)/../../node_modules/unist-util-is/lib/index.js\");\n/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */ \n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */ const phrasing = /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */ (0,unist_util_is__WEBPACK_IMPORTED_MODULE_0__.convert)([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n]);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtcGhyYXNpbmcvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztDQUdDLEdBRW9DO0FBRXJDOzs7Ozs7Ozs7Q0FTQyxHQUVNLE1BQU1DLFdBQ1gsdUVBQXVFLEdBRXJFRCxzREFBT0EsQ0FBQztJQUNOO0lBQ0E7SUFDQTtJQUNBLGdFQUFnRTtJQUNoRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsZ0NBQWdDO0lBQ2hDO0lBQ0E7SUFDQTtJQUNBLCtCQUErQjtJQUMvQjtJQUNBLCtCQUErQjtJQUMvQjtJQUNBO0lBQ0E7SUFDQSxxQ0FBcUM7SUFDckM7Q0FDRCxFQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1waHJhc2luZy9saWIvaW5kZXguanM/ZGJjMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuSHRtbH0gSHRtbFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QaHJhc2luZ0NvbnRlbnR9IFBocmFzaW5nQ29udGVudFxuICovXG5cbmltcG9ydCB7Y29udmVydH0gZnJvbSAndW5pc3QtdXRpbC1pcydcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgKnBocmFzaW5nIGNvbnRlbnQqLlxuICpcbiAqID4g8J+RiSAqKk5vdGUqKjogRXhjbHVkZXMgYGh0bWxgLCB3aGljaCBjYW4gYmUgYm90aCBwaHJhc2luZyBvciBmbG93LlxuICpcbiAqIEBwYXJhbSBub2RlXG4gKiAgIFRoaW5nIHRvIGNoZWNrLCB0eXBpY2FsbHkgYE5vZGVgLlxuICogQHJldHVybnNcbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIHBocmFzaW5nIGNvbnRlbnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IHBocmFzaW5nID1cbiAgLyoqIEB0eXBlIHsobm9kZT86IHVua25vd24pID0+IG5vZGUgaXMgRXhjbHVkZTxQaHJhc2luZ0NvbnRlbnQsIEh0bWw+fSAqL1xuICAoXG4gICAgY29udmVydChbXG4gICAgICAnYnJlYWsnLFxuICAgICAgJ2RlbGV0ZScsXG4gICAgICAnZW1waGFzaXMnLFxuICAgICAgLy8gVG8gZG86IG5leHQgbWFqb3I6IHJlbW92ZWQgc2luY2UgZm9vdG5vdGVzIHdlcmUgYWRkZWQgdG8gR0ZNLlxuICAgICAgJ2Zvb3Rub3RlJyxcbiAgICAgICdmb290bm90ZVJlZmVyZW5jZScsXG4gICAgICAnaW1hZ2UnLFxuICAgICAgJ2ltYWdlUmVmZXJlbmNlJyxcbiAgICAgICdpbmxpbmVDb2RlJyxcbiAgICAgIC8vIEVuYWJsZWQgYnkgYG1kYXN0LXV0aWwtbWF0aGA6XG4gICAgICAnaW5saW5lTWF0aCcsXG4gICAgICAnbGluaycsXG4gICAgICAnbGlua1JlZmVyZW5jZScsXG4gICAgICAvLyBFbmFibGVkIGJ5IGBtZGFzdC11dGlsLW1keGA6XG4gICAgICAnbWR4SnN4VGV4dEVsZW1lbnQnLFxuICAgICAgLy8gRW5hYmxlZCBieSBgbWRhc3QtdXRpbC1tZHhgOlxuICAgICAgJ21keFRleHRFeHByZXNzaW9uJyxcbiAgICAgICdzdHJvbmcnLFxuICAgICAgJ3RleHQnLFxuICAgICAgLy8gRW5hYmxlZCBieSBgbWRhc3QtdXRpbC1kaXJlY3RpdmVgOlxuICAgICAgJ3RleHREaXJlY3RpdmUnXG4gICAgXSlcbiAgKVxuIl0sIm5hbWVzIjpbImNvbnZlcnQiLCJwaHJhc2luZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-phrasing/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/footer.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/footer.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultFootnoteBackContent: () => (/* binding */ defaultFootnoteBackContent),\n/* harmony export */ defaultFootnoteBackLabel: () => (/* binding */ defaultFootnoteBackLabel),\n/* harmony export */ footer: () => (/* binding */ footer)\n/* harmony export */ });\n/* harmony import */ var _ungap_structured_clone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ungap/structured-clone */ \"(ssr)/../../node_modules/@ungap/structured-clone/esm/index.js\");\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */ /**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */ \n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n * Content.\n */ function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array<ElementContent>} */ const result = [\n {\n type: \"text\",\n value: \"↩\"\n }\n ];\n if (rereferenceIndex > 1) {\n result.push({\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [\n {\n type: \"text\",\n value: String(rereferenceIndex)\n }\n ]\n });\n }\n return result;\n}\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */ function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return \"Back to reference \" + (referenceIndex + 1) + (rereferenceIndex > 1 ? \"-\" + rereferenceIndex : \"\");\n}\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */ // eslint-disable-next-line complexity\nfunction footer(state) {\n const clobberPrefix = typeof state.options.clobberPrefix === \"string\" ? state.options.clobberPrefix : \"user-content-\";\n const footnoteBackContent = state.options.footnoteBackContent || defaultFootnoteBackContent;\n const footnoteBackLabel = state.options.footnoteBackLabel || defaultFootnoteBackLabel;\n const footnoteLabel = state.options.footnoteLabel || \"Footnotes\";\n const footnoteLabelTagName = state.options.footnoteLabelTagName || \"h2\";\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: [\n \"sr-only\"\n ]\n };\n /** @type {Array<ElementContent>} */ const listItems = [];\n let referenceIndex = -1;\n while(++referenceIndex < state.footnoteOrder.length){\n const def = state.footnoteById.get(state.footnoteOrder[referenceIndex]);\n if (!def) {\n continue;\n }\n const content = state.all(def);\n const id = String(def.identifier).toUpperCase();\n const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(id.toLowerCase());\n let rereferenceIndex = 0;\n /** @type {Array<ElementContent>} */ const backReferences = [];\n const counts = state.footnoteCounts.get(id);\n // eslint-disable-next-line no-unmodified-loop-condition\n while(counts !== undefined && ++rereferenceIndex <= counts){\n if (backReferences.length > 0) {\n backReferences.push({\n type: \"text\",\n value: \" \"\n });\n }\n let children = typeof footnoteBackContent === \"string\" ? footnoteBackContent : footnoteBackContent(referenceIndex, rereferenceIndex);\n if (typeof children === \"string\") {\n children = {\n type: \"text\",\n value: children\n };\n }\n backReferences.push({\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + clobberPrefix + \"fnref-\" + safeId + (rereferenceIndex > 1 ? \"-\" + rereferenceIndex : \"\"),\n dataFootnoteBackref: \"\",\n ariaLabel: typeof footnoteBackLabel === \"string\" ? footnoteBackLabel : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: [\n \"data-footnote-backref\"\n ]\n },\n children: Array.isArray(children) ? children : [\n children\n ]\n });\n }\n const tail = content[content.length - 1];\n if (tail && tail.type === \"element\" && tail.tagName === \"p\") {\n const tailTail = tail.children[tail.children.length - 1];\n if (tailTail && tailTail.type === \"text\") {\n tailTail.value += \" \";\n } else {\n tail.children.push({\n type: \"text\",\n value: \" \"\n });\n }\n tail.children.push(...backReferences);\n } else {\n content.push(...backReferences);\n }\n /** @type {Element} */ const listItem = {\n type: \"element\",\n tagName: \"li\",\n properties: {\n id: clobberPrefix + \"fn-\" + safeId\n },\n children: state.wrap(content, true)\n };\n state.patch(def, listItem);\n listItems.push(listItem);\n }\n if (listItems.length === 0) {\n return;\n }\n return {\n type: \"element\",\n tagName: \"section\",\n properties: {\n dataFootnotes: true,\n className: [\n \"footnotes\"\n ]\n },\n children: [\n {\n type: \"element\",\n tagName: footnoteLabelTagName,\n properties: {\n ...(0,_ungap_structured_clone__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(footnoteLabelProperties),\n id: \"footnote-label\"\n },\n children: [\n {\n type: \"text\",\n value: footnoteLabel\n }\n ]\n },\n {\n type: \"text\",\n value: \"\\n\"\n },\n {\n type: \"element\",\n tagName: \"ol\",\n properties: {},\n children: state.wrap(listItems, true)\n },\n {\n type: \"text\",\n value: \"\\n\"\n }\n ]\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvZm9vdGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBeURDLEdBRW9EO0FBQ0c7QUFFeEQ7Ozs7Ozs7Ozs7Q0FVQyxHQUNNLFNBQVNFLDJCQUEyQkMsQ0FBQyxFQUFFQyxnQkFBZ0I7SUFDNUQsa0NBQWtDLEdBQ2xDLE1BQU1DLFNBQVM7UUFBQztZQUFDQyxNQUFNO1lBQVFDLE9BQU87UUFBRztLQUFFO0lBRTNDLElBQUlILG1CQUFtQixHQUFHO1FBQ3hCQyxPQUFPRyxJQUFJLENBQUM7WUFDVkYsTUFBTTtZQUNORyxTQUFTO1lBQ1RDLFlBQVksQ0FBQztZQUNiQyxVQUFVO2dCQUFDO29CQUFDTCxNQUFNO29CQUFRQyxPQUFPSyxPQUFPUjtnQkFBaUI7YUFBRTtRQUM3RDtJQUNGO0lBRUEsT0FBT0M7QUFDVDtBQUVBOzs7Ozs7Ozs7O0NBVUMsR0FDTSxTQUFTUSx5QkFBeUJDLGNBQWMsRUFBRVYsZ0JBQWdCO0lBQ3ZFLE9BQ0UsdUJBQ0NVLENBQUFBLGlCQUFpQixLQUNqQlYsQ0FBQUEsbUJBQW1CLElBQUksTUFBTUEsbUJBQW1CLEVBQUM7QUFFdEQ7QUFFQTs7Ozs7OztDQU9DLEdBQ0Qsc0NBQXNDO0FBQy9CLFNBQVNXLE9BQU9DLEtBQUs7SUFDMUIsTUFBTUMsZ0JBQ0osT0FBT0QsTUFBTUUsT0FBTyxDQUFDRCxhQUFhLEtBQUssV0FDbkNELE1BQU1FLE9BQU8sQ0FBQ0QsYUFBYSxHQUMzQjtJQUNOLE1BQU1FLHNCQUNKSCxNQUFNRSxPQUFPLENBQUNDLG1CQUFtQixJQUFJakI7SUFDdkMsTUFBTWtCLG9CQUNKSixNQUFNRSxPQUFPLENBQUNFLGlCQUFpQixJQUFJUDtJQUNyQyxNQUFNUSxnQkFBZ0JMLE1BQU1FLE9BQU8sQ0FBQ0csYUFB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QSxJQUFJeEIsVUFBVUUsTUFBTSxLQUFLLEdBQUc7UUFDMUI7SUFDRjtJQUVBLE9BQU87UUFDTHJCLE1BQU07UUFDTkcsU0FBUztRQUNUQyxZQUFZO1lBQUMwQyxlQUFlO1lBQU01QixXQUFXO2dCQUFDO2FBQVk7UUFBQTtRQUMxRGIsVUFBVTtZQUNSO2dCQUNFTCxNQUFNO2dCQUNORyxTQUFTYTtnQkFDVFosWUFBWTtvQkFDVixHQUFHVixtRUFBZUEsQ0FBQ3VCLHdCQUF3QjtvQkFDM0NVLElBQUk7Z0JBQ047Z0JBQ0F0QixVQUFVO29CQUFDO3dCQUFDTCxNQUFNO3dCQUFRQyxPQUFPYztvQkFBYTtpQkFBRTtZQUNsRDtZQUNBO2dCQUFDZixNQUFNO2dCQUFRQyxPQUFPO1lBQUk7WUFDMUI7Z0JBQ0VELE1BQU07Z0JBQ05HLFNBQVM7Z0JBQ1RDLFlBQVksQ0FBQztnQkFDYkMsVUFBVUssTUFBTWtDLElBQUksQ0FBQ3pCLFdBQVc7WUFDbEM7WUFDQTtnQkFBQ25CLE1BQU07Z0JBQVFDLE9BQU87WUFBSTtTQUMzQjtJQUNIO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2Zvb3Rlci5qcz9iMmVjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50Q29udGVudH0gRWxlbWVudENvbnRlbnRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgRm9vdG5vdGVCYWNrQ29udGVudFRlbXBsYXRlXG4gKiAgIEdlbmVyYXRlIGNvbnRlbnQgZm9yIHRoZSBiYWNrcmVmZXJlbmNlIGR5bmFtaWNhbGx5LlxuICpcbiAqICAgRm9yIHRoZSBmb2xsb3dpbmcgbWFya2Rvd246XG4gKlxuICogICBgYGBtYXJrZG93blxuICogICBBbHBoYVtebWljcm9tYXJrXSwgYnJhdm9bXm1pY3JvbWFya10sIGFuZCBjaGFybGllW15yZW1hcmtdLlxuICpcbiAqICAgW15yZW1hcmtdOiB0aGluZ3MgYWJvdXQgcmVtYXJrXG4gKiAgIFtebWljcm9tYXJrXTogdGhpbmdzIGFib3V0IG1pY3JvbWFya1xuICogICBgYGBcbiAqXG4gKiAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aDpcbiAqXG4gKiAgICogIGAwYCBhbmQgYDBgIGZvciB0aGUgYmFja3JlZmVyZW5jZSBmcm9tIGB0aGluZ3MgYWJvdXQgbWljcm9tYXJrYCB0b1xuICogICAgICBgYWxwaGFgLCBhcyBpdCBpcyB0aGUgZmlyc3QgdXNlZCBkZWZpbml0aW9uLCBhbmQgdGhlIGZpcnN0IGNhbGwgdG8gaXRcbiAqICAgKiAgYDBgIGFuZCBgMWAgZm9yIHRoZSBiYWNrcmVmZXJlbmNlIGZyb20gYHRoaW5ncyBhYm91dCBtaWNyb21hcmtgIHRvXG4gKiAgICAgIGBicmF2b2AsIGFzIGl0IGlzIHRoZSBmaXJzdCB1c2VkIGRlZmluaXRpb24sIGFuZCB0aGUgc2Vjb25kIGNhbGwgdG8gaXRcbiAqICAgKiAgYDFgIGFuZCBgMGAgZm9yIHRoZSBiYWNrcmVmZXJlbmNlIGZyb20gYHRoaW5ncyBhYm91dCByZW1hcmtgIHRvXG4gKiAgICAgIGBjaGFybGllYCwgYXMgaXQgaXMgdGhlIHNlY29uZCB1c2VkIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSByZWZlcmVuY2VJbmRleFxuICogICBJbmRleCBvZiB0aGUgZGVmaW5pdGlvbiBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IGFyZSBmaXJzdCByZWZlcmVuY2VkLFxuICogICAwLWluZGV4ZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gcmVyZWZlcmVuY2VJbmRleFxuICogICBJbmRleCBvZiBjYWxscyB0byB0aGUgc2FtZSBkZWZpbml0aW9uLCAwLWluZGV4ZWQuXG4gKiBAcmV0dXJucyB7QXJyYXk8RWxlbWVudENvbnRlbnQ+IHwgRWxlbWVudENvbnRlbnQgfCBzdHJpbmd9XG4gKiAgIENvbnRlbnQgZm9yIHRoZSBiYWNrcmVmZXJlbmNlIHdoZW4gbGlua2luZyBiYWNrIGZyb20gZGVmaW5pdGlvbnMgdG8gdGhlaXJcbiAqICAgcmVmZXJlbmNlLlxuICpcbiAqIEBjYWxsYmFjayBGb290bm90ZUJhY2tMYWJlbFRlbXBsYXRlXG4gKiAgIEdlbmVyYXRlIGEgYmFjayBsYWJlbCBkeW5hbWljYWxseS5cbiAqXG4gKiAgIEZvciB0aGUgZm9sbG93aW5nIG1hcmtkb3duOlxuICpcbiAqICAgYGBgbWFya2Rvd25cbiAqICAgQWxwaGFbXm1pY3JvbWFya10sIGJyYXZvW15taWNyb21hcmtdLCBhbmQgY2hhcmxpZVtecmVtYXJrXS5cbiAqXG4gKiAgIFtecmVtYXJrXTogdGhpbmdzIGFib3V0IHJlbWFya1xuICogICBbXm1pY3JvbWFya106IHRoaW5ncyBhYm91dCBtaWNyb21hcmtcbiAqICAgYGBgXG4gKlxuICogICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGg6XG4gKlxuICogICAqICBgMGAgYW5kIGAwYCBmb3IgdGhlIGJhY2tyZWZlcmVuY2UgZnJvbSBgdGhpbmdzIGFib3V0IG1pY3JvbWFya2AgdG9cbiAqICAgICAgYGFscGhhYCwgYXMgaXQgaXMgdGhlIGZpcnN0IHVzZWQgZGVmaW5pdGlvbiwgYW5kIHRoZSBmaXJzdCBjYWxsIHRvIGl0XG4gKiAgICogIGAwYCBhbmQgYDFgIGZvciB0aGUgYmFja3JlZmVyZW5jZSBmcm9tIGB0aGluZ3MgYWJvdXQgbWljcm9tYXJrYCB0b1xuICogICAgICBgYnJhdm9gLCBhcyBpdCBpcyB0aGUgZmlyc3QgdXNlZCBkZWZpbml0aW9uLCBhbmQgdGhlIHNlY29uZCBjYWxsIHRvIGl0XG4gKiAgICogIGAxYCBhbmQgYDBgIGZvciB0aGUgYmFja3JlZmVyZW5jZSBmcm9tIGB0aGluZ3MgYWJvdXQgcmVtYXJrYCB0b1xuICogICAgICBgY2hhcmxpZWAsIGFzIGl0IGlzIHRoZSBzZWNvbmQgdXNlZCBkZWZpbml0aW9uXG4gKiBAcGFyYW0ge251bWJlcn0gcmVmZXJlbmNlSW5kZXhcbiAqICAgSW5kZXggb2YgdGhlIGRlZmluaXRpb24gaW4gdGhlIG9yZGVyIHRoYXQgdGhleSBhcmUgZmlyc3QgcmVmZXJlbmNlZCxcbiAqICAgMC1pbmRleGVkLlxuICogQHBhcmFtIHtudW1iZXJ9IHJlcmVmZXJlbmNlSW5kZXhcbiAqICAgSW5kZXggb2YgY2FsbHMgdG8gdGhlIHNhbWUgZGVmaW5pdGlvbiwgMC1pbmRleGVkLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQmFjayBsYWJlbCB0byB1c2Ugd2hlbiBsaW5raW5nIGJhY2sgZnJvbSBkZWZpbml0aW9ucyB0byB0aGVpciByZWZlcmVuY2UuXG4gKi9cblxuaW1wb3J0IHN0cnVjdHVyZWRDbG9uZSBmcm9tICdAdW5nYXAvc3RydWN0dXJlZC1jbG9uZSdcbmltcG9ydCB7bm9ybWFsaXplVXJpfSBmcm9tICdtaWNyb21hcmstdXRpbC1zYW5pdGl6ZS11cmknXG5cbi8qKlxuICogR2VuZXJhdGUgdGhlIGRlZmF1bHQgY29udGVudCB0aGF0IEdpdEh1YiB1c2VzIG9uIGJhY2tyZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBfXG4gKiAgIEluZGV4IG9mIHRoZSBkZWZpbml0aW9uIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgYXJlIGZpcnN0IHJlZmVyZW5jZWQsXG4gKiAgIDAtaW5kZXhlZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSByZXJlZmVyZW5jZUluZGV4XG4gKiAgIEluZGV4IG9mIGNhbGxzIHRvIHRoZSBzYW1lIGRlZmluaXRpb24sIDAtaW5kZXhlZC5cbiAqIEByZXR1cm5zIHtBcnJheTxFbGVtZW50Q29udGVudD59XG4gKiAgIENvbnRlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0Rm9vdG5vdGVCYWNrQ29udGVudChfLCByZXJlZmVyZW5jZUluZGV4KSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8RWxlbWVudENvbnRlbnQ+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbe3R5cGU6ICd0ZXh0JywgdmFsdWU6ICfihqknfV1cblxuICBpZiAocmVyZWZlcmVuY2VJbmRleCA+IDEpIHtcbiAgICByZXN1bHQucHVzaCh7XG4gICAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgICB0YWdOYW1lOiAnc3VwJyxcbiAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgY2hpbGRyZW46IFt7dHlwZTogJ3RleHQnLCB2YWx1ZTogU3RyaW5nKHJlcmVmZXJlbmNlSW5kZXgpfV1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIEdlbmVyYXRlIHRoZSBkZWZhdWx0IGxhYmVsIHRoYXQgR2l0SHViIHVzZXMgb24gYmFja3JlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHJlZmVyZW5jZUluZGV4XG4gKiAgIEluZGV4IG9mIHRoZSBkZWZpbml0aW9uIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgYXJlIGZpcnN0IHJlZmVyZW5jZWQsXG4gKiAgIDAtaW5kZXhlZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSByZXJlZmVyZW5jZUluZGV4XG4gKiAgIEluZGV4IG9mIGNhbGxzIHRvIHRoZSBzYW1lIGRlZmluaXRpb24sIDAtaW5kZXhlZC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIExhYmVsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEZvb3Rub3RlQmFja0xhYmVsKHJlZmVyZW5jZUluZGV4LCByZXJlZmVyZW5jZUluZGV4KSB7XG4gIHJldHVybiAoXG4gICAgJ0JhY2sgdG8gcmVmZXJlbmNlICcgK1xuICAgIChyZWZlcmVuY2VJbmRleCArIDEpICtcbiAgICAocmVyZWZlcmVuY2VJbmRleCA+IDEgPyAnLScgKyByZXJlZmVyZW5jZUluZGV4IDogJycpXG4gIClcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGhhc3QgZm9vdGVyIGZvciBjYWxsZWQgZm9vdG5vdGUgZGVmaW5pdGlvbnMuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHJldHVybnMge0VsZW1lbnQgfCB1bmRlZmluZWR9XG4gKiAgIGBzZWN0aW9uYCBlbGVtZW50IG9yIGB1bmRlZmluZWRgLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZXhwb3J0IGZ1bmN0aW9uIGZvb3RlcihzdGF0ZSkge1xuICBjb25zdCBjbG9iYmVyUHJlZml4ID1cbiAgICB0eXBlb2Ygc3RhdGUub3B0aW9ucy5jbG9iYmVyUHJlZml4ID09PSAnc3RyaW5nJ1xuICAgICAgPyBzdGF0ZS5vcHRpb25zLmNsb2JiZXJQcmVmaXhcbiAgICAgIDogJ3VzZXItY29udGVudC0nXG4gIGNvbnN0IGZvb3Rub3RlQmFja0NvbnRlbnQgPVxuICAgIHN0YXRlLm9wdGlvbnMuZm9vdG5vdGVCYWNrQ29udGVudCB8fCBkZWZhdWx0Rm9vdG5vdGVCYWNrQ29udGVudFxuICBjb25zdCBmb290bm90ZUJhY2tMYWJlbCA9XG4gICAgc3RhdGUub3B0aW9ucy5mb290bm90ZUJhY2tMYWJlbCB8fCBkZWZhdWx0Rm9vdG5vdGVCYWNrTGFiZWxcbiAgY29uc3QgZm9vdG5vdGVMYWJlbCA9IHN0YXRlLm9wdGlvbnMuZm9vdG5vdGVMYWJlbCB8fCAnRm9vdG5vdGVzJ1xuICBjb25zdCBmb290bm90ZUxhYmVsVGFnTmFtZSA9IHN0YXRlLm9wdGlvbnMuZm9vdG5vdGVMYWJlbFRhZ05hbWUgfHwgJ2gyJ1xuICBjb25zdCBmb290bm90ZUxhYmVsUHJvcGVydGllcyA9IHN0YXRlLm9wdGlvbnMuZm9vdG5vdGVMYWJlbFByb3BlcnRpZXMgfHwge1xuICAgIGNsYXNzTmFtZTogWydzci1vbmx5J11cbiAgfVxuICAvKiogQHR5cGUge0FycmF5PEVsZW1lbnRDb250ZW50Pn0gKi9cbiAgY29uc3QgbGlzdEl0ZW1zID0gW11cbiAgbGV0IHJlZmVyZW5jZUluZGV4ID0gLTFcblxuICB3aGlsZSAoKytyZWZlcmVuY2VJbmRleCA8IHN0YXRlLmZvb3Rub3RlT3JkZXIubGVuZ3RoKSB7XG4gICAgY29uc3QgZGVmID0gc3RhdGUuZm9vdG5vdGVCeUlkLmdldChzdGF0ZS5mb290bm90ZU9yZGVyW3JlZmVyZW5jZUluZGV4XSlcblxuICAgIGlmICghZGVmKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hbGwoZGVmKVxuICAgIGNvbnN0IGlkID0gU3RyaW5nKGRlZi5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpXG4gICAgY29uc3Qgc2FmZUlkID0gbm9ybWFsaXplVXJpKGlkLnRvTG93ZXJDYXNlKCkpXG4gICAgbGV0IHJlcmVmZXJlbmNlSW5kZXggPSAwXG4gICAgLyoqIEB0eXBlIHtBcnJheTxFbGVtZW50Q29udGVudD59ICovXG4gICAgY29uc3QgYmFja1JlZmVyZW5jZXMgPSBbXVxuICAgIGNvbnN0IGNvdW50cyA9IHN0YXRlLmZvb3Rub3RlQ291bnRzLmdldChpZClcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uXG4gICAgd2hpbGUgKGNvdW50cyAhPT0gdW5kZWZpbmVkICYmICsrcmVyZWZlcmVuY2VJbmRleCA8PSBjb3VudHMpIHtcbiAgICAgIGlmIChiYWNrUmVmZXJlbmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGJhY2tSZWZlcmVuY2VzLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6ICcgJ30pXG4gICAgICB9XG5cbiAgICAgIGxldCBjaGlsZHJlbiA9XG4gICAgICAgIHR5cGVvZiBmb290bm90ZUJhY2tDb250ZW50ID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gZm9vdG5vdGVCYWNrQ29udGVudFxuICAgICAgICAgIDogZm9vdG5vdGVCYWNrQ29udGVudChyZWZlcmVuY2VJbmRleCwgcmVyZWZlcmVuY2VJbmRleClcblxuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2hpbGRyZW4gPSB7dHlwZTogJ3RleHQnLCB2YWx1ZTogY2hpbGRyZW59XG4gICAgICB9XG5cbiAgICAgIGJhY2tSZWZlcmVuY2VzLnB1c2goe1xuICAgICAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgICAgIHRhZ05hbWU6ICdhJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGhyZWY6XG4gICAgICAgICAgICAnIycgK1xuICAgICAgICAgICAgY2xvYmJlclByZWZpeCArXG4gICAgICAgICAgICAnZm5yZWYtJyArXG4gICAgICAgICAgICBzYWZlSWQgK1xuICAgICAgICAgICAgKHJlcmVmZXJlbmNlSW5kZXggPiAxID8gJy0nICsgcmVyZWZlcmVuY2VJbmRleCA6ICcnKSxcbiAgICAgICAgICBkYXRhRm9vdG5vdGVCYWNrcmVmOiAnJyxcbiAgICAgICAgICBhcmlhTGFiZWw6XG4gICAgICAgICAgICB0eXBlb2YgZm9vdG5vdGVCYWNrTGFiZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZm9vdG5vdGVCYWNrTGFiZWxcbiAgICAgICAgICAgICAgOiBmb290bm90ZUJhY2tMYWJlbChyZWZlcmVuY2VJbmRleCwgcmVyZWZlcmVuY2VJbmRleCksXG4gICAgICAgICAgY2xhc3NOYW1lOiBbJ2RhdGEtZm9vdG5vdGUtYmFja3JlZiddXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogW2NoaWxkcmVuXVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCB0YWlsID0gY29udGVudFtjb250ZW50Lmxlbmd0aCAtIDFdXG5cbiAgICBpZiAodGFpbCAmJiB0YWlsLnR5cGUgPT09ICdlbGVtZW50JyAmJiB0YWlsLnRhZ05hbWUgPT09ICdwJykge1xuICAgICAgY29uc3QgdGFpbFRhaWwgPSB0YWlsLmNoaWxkcmVuW3RhaWwuY2hpbGRyZW4ubGVuZ3RoIC0gMV1cbiAgICAgIGlmICh0YWlsVGFpbCAmJiB0YWlsVGFpbC50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgdGFpbFRhaWwudmFsdWUgKz0gJyAnXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWlsLmNoaWxkcmVuLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6ICcgJ30pXG4gICAgICB9XG5cbiAgICAgIHRhaWwuY2hpbGRyZW4ucHVzaCguLi5iYWNrUmVmZXJlbmNlcylcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudC5wdXNoKC4uLmJhY2tSZWZlcmVuY2VzKVxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgICBjb25zdCBsaXN0SXRlbSA9IHtcbiAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgIHRhZ05hbWU6ICdsaScsXG4gICAgICBwcm9wZXJ0aWVzOiB7aWQ6IGNsb2JiZXJQcmVmaXggKyAnZm4tJyArIHNhZmVJZH0sXG4gICAgICBjaGlsZHJlbjogc3RhdGUud3JhcChjb250ZW50LCB0cnVlKVxuICAgIH1cblxuICAgIHN0YXRlLnBhdGNoKGRlZiwgbGlzdEl0ZW0pXG5cbiAgICBsaXN0SXRlbXMucHVzaChsaXN0SXRlbSlcbiAgfVxuXG4gIGlmIChsaXN0SXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnc2VjdGlvbicsXG4gICAgcHJvcGVydGllczoge2RhdGFGb290bm90ZXM6IHRydWUsIGNsYXNzTmFtZTogWydmb290bm90ZXMnXX0sXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgICB0YWdOYW1lOiBmb290bm90ZUxhYmVsVGFnTmFtZSxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIC4uLnN0cnVjdHVyZWRDbG9uZShmb290bm90ZUxhYmVsUHJvcGVydGllcyksXG4gICAgICAgICAgaWQ6ICdmb290bm90ZS1sYWJlbCdcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFt7dHlwZTogJ3RleHQnLCB2YWx1ZTogZm9vdG5vdGVMYWJlbH1dXG4gICAgICB9LFxuICAgICAge3R5cGU6ICd0ZXh0JywgdmFsdWU6ICdcXG4nfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgICB0YWdOYW1lOiAnb2wnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgICAgY2hpbGRyZW46IHN0YXRlLndyYXAobGlzdEl0ZW1zLCB0cnVlKVxuICAgICAgfSxcbiAgICAgIHt0eXBlOiAndGV4dCcsIHZhbHVlOiAnXFxuJ31cbiAgICBdXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdHJ1Y3R1cmVkQ2xvbmUiLCJub3JtYWxpemVVcmkiLCJkZWZhdWx0Rm9vdG5vdGVCYWNrQ29udGVudCIsIl8iLCJyZXJlZmVyZW5jZUluZGV4IiwicmVzdWx0IiwidHlwZSIsInZhbHVlIiwicHVzaCIsInRhZ05hbWUiLCJwcm9wZXJ0aWVzIiwiY2hpbGRyZW4iLCJTdHJpbmciLCJkZWZhdWx0Rm9vdG5vdGVCYWNrTGFiZWwiLCJyZWZlcmVuY2VJbmRleCIsImZvb3RlciIsInN0YXRlIiwiY2xvYmJlclByZWZpeCIsIm9wdGlvbnMiLCJmb290bm90ZUJhY2tDb250ZW50IiwiZm9vdG5vdGVCYWNrTGFiZWwiLCJmb290bm90ZUxhYmVsIiwiZm9vdG5vdGVMYWJlbFRhZ05hbWUiLCJmb290bm90ZUxhYmVsUHJvcGVydGllcyIsImNsYXNzTmFtZSIsImxpc3RJdGVtcyIsImZvb3Rub3RlT3JkZXIiLCJsZW5ndGgiLCJkZWYiLCJmb290bm90ZUJ5SWQiLCJnZXQiLCJjb250ZW50IiwiYWxsIiwiaWQiLCJpZGVudGlmaWVyIiwidG9VcHBlckNhc2UiLCJzYWZlSWQiLCJ0b0xvd2VyQ2FzZSIsImJhY2tSZWZlcmVuY2VzIiwiY291bnRzIiwiZm9vdG5vdGVDb3VudHMiLCJ1bmRlZmluZWQiLCJocmVmIiwiZGF0YUZvb3Rub3RlQmFja3JlZiIsImFyaWFMYWJlbCIsIkFycmF5IiwiaXNBcnJheSIsInRhaWwiLCJ0YWlsVGFpbCIsImxpc3RJdGVtIiwid3JhcCIsInBhdGNoIiwiZGF0YUZvb3Rub3RlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/footer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ blockquote: () => (/* binding */ blockquote)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function blockquote(state, node) {\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"blockquote\",\n properties: {},\n children: state.wrap(state.all(node), true)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvYmxvY2txdW90ZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUVELG1EQUFtRDtBQUNuRDtBQUVBOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNBLFdBQVdDLEtBQUssRUFBRUMsSUFBSTtJQUNwQyxvQkFBb0IsR0FDcEIsTUFBTUMsU0FBUztRQUNiQyxNQUFNO1FBQ05DLFNBQVM7UUFDVEMsWUFBWSxDQUFDO1FBQ2JDLFVBQVVOLE1BQU1PLElBQUksQ0FBQ1AsTUFBTVEsR0FBRyxDQUFDUCxPQUFPO0lBQ3hDO0lBQ0FELE1BQU1TLEtBQUssQ0FBQ1IsTUFBTUM7SUFDbEIsT0FBT0YsTUFBTVUsU0FBUyxDQUFDVCxNQUFNQztBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvYmxvY2txdW90ZS5qcz83ODNhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuQmxvY2txdW90ZX0gQmxvY2txdW90ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vc3RhdGUuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG4vLyBNYWtlIFZTIENvZGUgc2hvdyByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgYmxvY2txdW90ZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtCbG9ja3F1b3RlfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmxvY2txdW90ZShzdGF0ZSwgbm9kZSkge1xuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2Jsb2NrcXVvdGUnLFxuICAgIHByb3BlcnRpZXM6IHt9LFxuICAgIGNoaWxkcmVuOiBzdGF0ZS53cmFwKHN0YXRlLmFsbChub2RlKSwgdHJ1ZSlcbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIl0sIm5hbWVzIjpbImJsb2NrcXVvdGUiLCJzdGF0ZSIsIm5vZGUiLCJyZXN1bHQiLCJ0eXBlIiwidGFnTmFtZSIsInByb3BlcnRpZXMiLCJjaGlsZHJlbiIsIndyYXAiLCJhbGwiLCJwYXRjaCIsImFwcGx5RGF0YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/break.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/break.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hardBreak: () => (/* binding */ hardBreak)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */ function hardBreak(state, node) {\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"br\",\n properties: {},\n children: []\n };\n state.patch(node, result);\n return [\n state.applyData(node, result),\n {\n type: \"text\",\n value: \"\\n\"\n }\n ];\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvYnJlYWsuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7OztDQUtDLEdBRUQsbURBQW1EO0FBQ25EO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ00sU0FBU0EsVUFBVUMsS0FBSyxFQUFFQyxJQUFJO0lBQ25DLG9CQUFvQixHQUNwQixNQUFNQyxTQUFTO1FBQUNDLE1BQU07UUFBV0MsU0FBUztRQUFNQyxZQUFZLENBQUM7UUFBR0MsVUFBVSxFQUFFO0lBQUE7SUFDNUVOLE1BQU1PLEtBQUssQ0FBQ04sTUFBTUM7SUFDbEIsT0FBTztRQUFDRixNQUFNUSxTQUFTLENBQUNQLE1BQU1DO1FBQVM7WUFBQ0MsTUFBTTtZQUFRTSxPQUFPO1FBQUk7S0FBRTtBQUNyRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvYnJlYWsuanM/M2FlMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuVGV4dH0gVGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5CcmVha30gQnJlYWtcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBDb2RlIHNob3cgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGJyZWFrYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0JyZWFrfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7QXJyYXk8RWxlbWVudCB8IFRleHQ+fVxuICogICBoYXN0IGVsZW1lbnQgY29udGVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhcmRCcmVhayhzdGF0ZSwgbm9kZSkge1xuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHt0eXBlOiAnZWxlbWVudCcsIHRhZ05hbWU6ICdicicsIHByb3BlcnRpZXM6IHt9LCBjaGlsZHJlbjogW119XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIFtzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KSwge3R5cGU6ICd0ZXh0JywgdmFsdWU6ICdcXG4nfV1cbn1cbiJdLCJuYW1lcyI6WyJoYXJkQnJlYWsiLCJzdGF0ZSIsIm5vZGUiLCJyZXN1bHQiLCJ0eXBlIiwidGFnTmFtZSIsInByb3BlcnRpZXMiLCJjaGlsZHJlbiIsInBhdGNoIiwiYXBwbHlEYXRhIiwidmFsdWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/break.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/code.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/code.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ code: () => (/* binding */ code)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function code(state, node) {\n const value = node.value ? node.value + \"\\n\" : \"\";\n /** @type {Properties} */ const properties = {};\n if (node.lang) {\n properties.className = [\n \"language-\" + node.lang\n ];\n }\n // Create `<code>`.\n /** @type {Element} */ let result = {\n type: \"element\",\n tagName: \"code\",\n properties,\n children: [\n {\n type: \"text\",\n value\n }\n ]\n };\n if (node.meta) {\n result.data = {\n meta: node.meta\n };\n }\n state.patch(node, result);\n result = state.applyData(node, result);\n // Create `<pre>`.\n result = {\n type: \"element\",\n tagName: \"pre\",\n properties: {},\n children: [\n result\n ]\n };\n state.patch(node, result);\n return result;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvY29kZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7O0NBS0MsR0FFRCxtREFBbUQ7QUFDbkQ7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQSxLQUFLQyxLQUFLLEVBQUVDLElBQUk7SUFDOUIsTUFBTUMsUUFBUUQsS0FBS0MsS0FBSyxHQUFHRCxLQUFLQyxLQUFLLEdBQUcsT0FBTztJQUMvQyx1QkFBdUIsR0FDdkIsTUFBTUMsYUFBYSxDQUFDO0lBRXBCLElBQUlGLEtBQUtHLElBQUksRUFBRTtRQUNiRCxXQUFXRSxTQUFTLEdBQUc7WUFBQyxjQUFjSixLQUFLRyxJQUFJO1NBQUM7SUFDbEQ7SUFFQSxtQkFBbUI7SUFDbkIsb0JBQW9CLEdBQ3BCLElBQUlFLFNBQVM7UUFDWEMsTUFBTTtRQUNOQyxTQUFTO1FBQ1RMO1FBQ0FNLFVBQVU7WUFBQztnQkFBQ0YsTUFBTTtnQkFBUUw7WUFBSztTQUFFO0lBQ25DO0lBRUEsSUFBSUQsS0FBS1MsSUFBSSxFQUFFO1FBQ2JKLE9BQU9LLElBQUksR0FBRztZQUFDRCxNQUFNVCxLQUFLUyxJQUFJO1FBQUE7SUFDaEM7SUFFQVYsTUFBTVksS0FBSyxDQUFDWCxNQUFNSztJQUNsQkEsU0FBU04sTUFBTWEsU0FBUyxDQUFDWixNQUFNSztJQUUvQixrQkFBa0I7SUFDbEJBLFNBQVM7UUFBQ0MsTUFBTTtRQUFXQyxTQUFTO1FBQU9MLFlBQVksQ0FBQztRQUFHTSxVQUFVO1lBQUNIO1NBQU87SUFBQTtJQUM3RU4sTUFBTVksS0FBSyxDQUFDWCxNQUFNSztJQUNsQixPQUFPQTtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9jb2RlLmpzP2Y4ODciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vc3RhdGUuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG4vLyBNYWtlIFZTIENvZGUgc2hvdyByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgY29kZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtDb2RlfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29kZShzdGF0ZSwgbm9kZSkge1xuICBjb25zdCB2YWx1ZSA9IG5vZGUudmFsdWUgPyBub2RlLnZhbHVlICsgJ1xcbicgOiAnJ1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnRpZXMgPSB7fVxuXG4gIGlmIChub2RlLmxhbmcpIHtcbiAgICBwcm9wZXJ0aWVzLmNsYXNzTmFtZSA9IFsnbGFuZ3VhZ2UtJyArIG5vZGUubGFuZ11cbiAgfVxuXG4gIC8vIENyZWF0ZSBgPGNvZGU+YC5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBsZXQgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnY29kZScsXG4gICAgcHJvcGVydGllcyxcbiAgICBjaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsIHZhbHVlfV1cbiAgfVxuXG4gIGlmIChub2RlLm1ldGEpIHtcbiAgICByZXN1bHQuZGF0YSA9IHttZXRhOiBub2RlLm1ldGF9XG4gIH1cblxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJlc3VsdCA9IHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG5cbiAgLy8gQ3JlYXRlIGA8cHJlPmAuXG4gIHJlc3VsdCA9IHt0eXBlOiAnZWxlbWVudCcsIHRhZ05hbWU6ICdwcmUnLCBwcm9wZXJ0aWVzOiB7fSwgY2hpbGRyZW46IFtyZXN1bHRdfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJjb2RlIiwic3RhdGUiLCJub2RlIiwidmFsdWUiLCJwcm9wZXJ0aWVzIiwibGFuZyIsImNsYXNzTmFtZSIsInJlc3VsdCIsInR5cGUiLCJ0YWdOYW1lIiwiY2hpbGRyZW4iLCJtZXRhIiwiZGF0YSIsInBhdGNoIiwiYXBwbHlEYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/code.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/delete.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/delete.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ strikethrough: () => (/* binding */ strikethrough)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function strikethrough(state, node) {\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"del\",\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvZGVsZXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztDQUlDLEdBRUQsbURBQW1EO0FBQ25EO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ00sU0FBU0EsY0FBY0MsS0FBSyxFQUFFQyxJQUFJO0lBQ3ZDLG9CQUFvQixHQUNwQixNQUFNQyxTQUFTO1FBQ2JDLE1BQU07UUFDTkMsU0FBUztRQUNUQyxZQUFZLENBQUM7UUFDYkMsVUFBVU4sTUFBTU8sR0FBRyxDQUFDTjtJQUN0QjtJQUNBRCxNQUFNUSxLQUFLLENBQUNQLE1BQU1DO0lBQ2xCLE9BQU9GLE1BQU1TLFNBQVMsQ0FBQ1IsTUFBTUM7QUFDL0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2RlbGV0ZS5qcz8xYjdhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuRGVsZXRlfSBEZWxldGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBDb2RlIHNob3cgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGRlbGV0ZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtEZWxldGV9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpa2V0aHJvdWdoKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnZGVsJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogc3RhdGUuYWxsKG5vZGUpXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiJdLCJuYW1lcyI6WyJzdHJpa2V0aHJvdWdoIiwic3RhdGUiLCJub2RlIiwicmVzdWx0IiwidHlwZSIsInRhZ05hbWUiLCJwcm9wZXJ0aWVzIiwiY2hpbGRyZW4iLCJhbGwiLCJwYXRjaCIsImFwcGx5RGF0YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/delete.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ emphasis: () => (/* binding */ emphasis)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function emphasis(state, node) {\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"em\",\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvZW1waGFzaXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0NBSUMsR0FFRCxtREFBbUQ7QUFDbkQ7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQSxTQUFTQyxLQUFLLEVBQUVDLElBQUk7SUFDbEMsb0JBQW9CLEdBQ3BCLE1BQU1DLFNBQVM7UUFDYkMsTUFBTTtRQUNOQyxTQUFTO1FBQ1RDLFlBQVksQ0FBQztRQUNiQyxVQUFVTixNQUFNTyxHQUFHLENBQUNOO0lBQ3RCO0lBQ0FELE1BQU1RLEtBQUssQ0FBQ1AsTUFBTUM7SUFDbEIsT0FBT0YsTUFBTVMsU0FBUyxDQUFDUixNQUFNQztBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvZW1waGFzaXMuanM/NjE3MyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkVtcGhhc2lzfSBFbXBoYXNpc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vc3RhdGUuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG4vLyBNYWtlIFZTIENvZGUgc2hvdyByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgZW1waGFzaXNgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7RW1waGFzaXN9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbXBoYXNpcyhzdGF0ZSwgbm9kZSkge1xuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2VtJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogc3RhdGUuYWxsKG5vZGUpXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiJdLCJuYW1lcyI6WyJlbXBoYXNpcyIsInN0YXRlIiwibm9kZSIsInJlc3VsdCIsInR5cGUiLCJ0YWdOYW1lIiwicHJvcGVydGllcyIsImNoaWxkcmVuIiwiYWxsIiwicGF0Y2giLCJhcHBseURhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ footnoteReference: () => (/* binding */ footnoteReference)\n/* harmony export */ });\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */ \n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function footnoteReference(state, node) {\n const clobberPrefix = typeof state.options.clobberPrefix === \"string\" ? state.options.clobberPrefix : \"user-content-\";\n const id = String(node.identifier).toUpperCase();\n const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase());\n const index = state.footnoteOrder.indexOf(id);\n /** @type {number} */ let counter;\n let reuseCounter = state.footnoteCounts.get(id);\n if (reuseCounter === undefined) {\n reuseCounter = 0;\n state.footnoteOrder.push(id);\n counter = state.footnoteOrder.length;\n } else {\n counter = index + 1;\n }\n reuseCounter += 1;\n state.footnoteCounts.set(id, reuseCounter);\n /** @type {Element} */ const link = {\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + clobberPrefix + \"fn-\" + safeId,\n id: clobberPrefix + \"fnref-\" + safeId + (reuseCounter > 1 ? \"-\" + reuseCounter : \"\"),\n dataFootnoteRef: true,\n ariaDescribedBy: [\n \"footnote-label\"\n ]\n },\n children: [\n {\n type: \"text\",\n value: String(counter)\n }\n ]\n };\n state.patch(node, link);\n /** @type {Element} */ const sup = {\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [\n link\n ]\n };\n state.patch(node, sup);\n return state.applyData(node, sup);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvZm9vdG5vdGUtcmVmZXJlbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Q0FJQyxHQUV1RDtBQUV4RDs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQyxrQkFBa0JDLEtBQUssRUFBRUMsSUFBSTtJQUMzQyxNQUFNQyxnQkFDSixPQUFPRixNQUFNRyxPQUFPLENBQUNELGFBQWEsS0FBSyxXQUNuQ0YsTUFBTUcsT0FBTyxDQUFDRCxhQUFhLEdBQzNCO0lBQ04sTUFBTUUsS0FBS0MsT0FBT0osS0FBS0ssVUFBVSxFQUFFQyxXQUFXO0lBQzlDLE1BQU1DLFNBQVNWLHlFQUFZQSxDQUFDTSxHQUFHSyxXQUFXO0lBQzFDLE1BQU1DLFFBQVFWLE1BQU1XLGFBQWEsQ0FBQ0MsT0FBTyxDQUFDUjtJQUMxQyxtQkFBbUIsR0FDbkIsSUFBSVM7SUFFSixJQUFJQyxlQUFlZCxNQUFNZSxjQUFjLENBQUNDLEdBQUcsQ0FBQ1o7SUFFNUMsSUFBSVUsaUJBQWlCRyxXQUFXO1FBQzlCSCxlQUFlO1FBQ2ZkLE1BQU1XLGFBQWEsQ0FBQ08sSUFBSSxDQUFDZDtRQUN6QlMsVUFBVWIsTUFBTVcsYUFBYSxDQUFDUSxNQUFNO0lBQ3RDLE9BQU87UUFDTE4sVUFBVUgsUUFBUTtJQUNwQjtJQUVBSSxnQkFBZ0I7SUFDaEJkLE1BQU1lLGNBQWMsQ0FBQ0ssR0FBRyxDQUFDaEIsSUFBSVU7SUFFN0Isb0JBQW9CLEdBQ3BCLE1BQU1PLE9BQU87UUFDWEMsTUFBTTtRQUNOQyxTQUFTO1FBQ1RDLFlBQVk7WUFDVkMsTUFBTSxNQUFNdkIsZ0JBQWdCLFFBQVFNO1lBQ3BDSixJQUNFRixnQkFDQSxXQUNBTSxTQUNDTSxDQUFBQSxlQUFlLElBQUksTUFBTUEsZUFBZSxFQUFDO1lBQzVDWSxpQkFBaUI7WUFDakJDLGlCQUFpQjtnQkFBQzthQUFpQjtRQUNyQztRQUNBQyxVQUFVO1lBQUM7Z0JBQUNOLE1BQU07Z0JBQVFPLE9BQU94QixPQUFPUTtZQUFRO1NBQUU7SUFDcEQ7SUFDQWIsTUFBTThCLEtBQUssQ0FBQzdCLE1BQU1vQjtJQUVsQixvQkFBb0IsR0FDcEIsTUFBTVUsTUFBTTtRQUNWVCxNQUFNO1FBQ05DLFNBQVM7UUFDVEMsWUFBWSxDQUFDO1FBQ2JJLFVBQVU7WUFBQ1A7U0FBSztJQUNsQjtJQUNBckIsTUFBTThCLEtBQUssQ0FBQzdCLE1BQU04QjtJQUNsQixPQUFPL0IsTUFBTWdDLFNBQVMsQ0FBQy9CLE1BQU04QjtBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvZm9vdG5vdGUtcmVmZXJlbmNlLmpzP2I0NTciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Gb290bm90ZVJlZmVyZW5jZX0gRm9vdG5vdGVSZWZlcmVuY2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemVVcml9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSdcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBmb290bm90ZVJlZmVyZW5jZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtGb290bm90ZVJlZmVyZW5jZX0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvb3Rub3RlUmVmZXJlbmNlKHN0YXRlLCBub2RlKSB7XG4gIGNvbnN0IGNsb2JiZXJQcmVmaXggPVxuICAgIHR5cGVvZiBzdGF0ZS5vcHRpb25zLmNsb2JiZXJQcmVmaXggPT09ICdzdHJpbmcnXG4gICAgICA/IHN0YXRlLm9wdGlvbnMuY2xvYmJlclByZWZpeFxuICAgICAgOiAndXNlci1jb250ZW50LSdcbiAgY29uc3QgaWQgPSBTdHJpbmcobm9kZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpXG4gIGNvbnN0IHNhZmVJZCA9IG5vcm1hbGl6ZVVyaShpZC50b0xvd2VyQ2FzZSgpKVxuICBjb25zdCBpbmRleCA9IHN0YXRlLmZvb3Rub3RlT3JkZXIuaW5kZXhPZihpZClcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBjb3VudGVyXG5cbiAgbGV0IHJldXNlQ291bnRlciA9IHN0YXRlLmZvb3Rub3RlQ291bnRzLmdldChpZClcblxuICBpZiAocmV1c2VDb3VudGVyID09PSB1bmRlZmluZWQpIHtcbiAgICByZXVzZUNvdW50ZXIgPSAwXG4gICAgc3RhdGUuZm9vdG5vdGVPcmRlci5wdXNoKGlkKVxuICAgIGNvdW50ZXIgPSBzdGF0ZS5mb290bm90ZU9yZGVyLmxlbmd0aFxuICB9IGVsc2Uge1xuICAgIGNvdW50ZXIgPSBpbmRleCArIDFcbiAgfVxuXG4gIHJldXNlQ291bnRlciArPSAxXG4gIHN0YXRlLmZvb3Rub3RlQ291bnRzLnNldChpZCwgcmV1c2VDb3VudGVyKVxuXG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgbGluayA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2EnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGhyZWY6ICcjJyArIGNsb2JiZXJQcmVmaXggKyAnZm4tJyArIHNhZmVJZCxcbiAgICAgIGlkOlxuICAgICAgICBjbG9iYmVyUHJlZml4ICtcbiAgICAgICAgJ2ZucmVmLScgK1xuICAgICAgICBzYWZlSWQgK1xuICAgICAgICAocmV1c2VDb3VudGVyID4gMSA/ICctJyArIHJldXNlQ291bnRlciA6ICcnKSxcbiAgICAgIGRhdGFGb290bm90ZVJlZjogdHJ1ZSxcbiAgICAgIGFyaWFEZXNjcmliZWRCeTogWydmb290bm90ZS1sYWJlbCddXG4gICAgfSxcbiAgICBjaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsIHZhbHVlOiBTdHJpbmcoY291bnRlcil9XVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIGxpbmspXG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCBzdXAgPSB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICdzdXAnLFxuICAgIHByb3BlcnRpZXM6IHt9LFxuICAgIGNoaWxkcmVuOiBbbGlua11cbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCBzdXApXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgc3VwKVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVVyaSIsImZvb3Rub3RlUmVmZXJlbmNlIiwic3RhdGUiLCJub2RlIiwiY2xvYmJlclByZWZpeCIsIm9wdGlvbnMiLCJpZCIsIlN0cmluZyIsImlkZW50aWZpZXIiLCJ0b1VwcGVyQ2FzZSIsInNhZmVJZCIsInRvTG93ZXJDYXNlIiwiaW5kZXgiLCJmb290bm90ZU9yZGVyIiwiaW5kZXhPZiIsImNvdW50ZXIiLCJyZXVzZUNvdW50ZXIiLCJmb290bm90ZUNvdW50cyIsImdldCIsInVuZGVmaW5lZCIsInB1c2giLCJsZW5ndGgiLCJzZXQiLCJsaW5rIiwidHlwZSIsInRhZ05hbWUiLCJwcm9wZXJ0aWVzIiwiaHJlZiIsImRhdGFGb290bm90ZVJlZiIsImFyaWFEZXNjcmliZWRCeSIsImNoaWxkcmVuIiwidmFsdWUiLCJwYXRjaCIsInN1cCIsImFwcGx5RGF0YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/heading.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/heading.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ heading: () => (/* binding */ heading)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function heading(state, node) {\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"h\" + node.depth,\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaGVhZGluZy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUVELG1EQUFtRDtBQUNuRDtBQUVBOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNBLFFBQVFDLEtBQUssRUFBRUMsSUFBSTtJQUNqQyxvQkFBb0IsR0FDcEIsTUFBTUMsU0FBUztRQUNiQyxNQUFNO1FBQ05DLFNBQVMsTUFBTUgsS0FBS0ksS0FBSztRQUN6QkMsWUFBWSxDQUFDO1FBQ2JDLFVBQVVQLE1BQU1RLEdBQUcsQ0FBQ1A7SUFDdEI7SUFDQUQsTUFBTVMsS0FBSyxDQUFDUixNQUFNQztJQUNsQixPQUFPRixNQUFNVSxTQUFTLENBQUNULE1BQU1DO0FBQy9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9oZWFkaW5nLmpzPzQzNDIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5IZWFkaW5nfSBIZWFkaW5nXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9zdGF0ZS5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgQ29kZSBzaG93IHJlZmVyZW5jZXMgdG8gdGhlIGFib3ZlIHR5cGVzLlxuJydcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBoZWFkaW5nYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0hlYWRpbmd9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoZWFkaW5nKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnaCcgKyBub2RlLmRlcHRoLFxuICAgIHByb3BlcnRpZXM6IHt9LFxuICAgIGNoaWxkcmVuOiBzdGF0ZS5hbGwobm9kZSlcbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIl0sIm5hbWVzIjpbImhlYWRpbmciLCJzdGF0ZSIsIm5vZGUiLCJyZXN1bHQiLCJ0eXBlIiwidGFnTmFtZSIsImRlcHRoIiwicHJvcGVydGllcyIsImNoaWxkcmVuIiwiYWxsIiwicGF0Y2giLCJhcHBseURhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/heading.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/html.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/html.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ html: () => (/* binding */ html)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Element | Raw | undefined}\n * hast node.\n */ function html(state, node) {\n if (state.options.allowDangerousHtml) {\n /** @type {Raw} */ const result = {\n type: \"raw\",\n value: node.value\n };\n state.patch(node, result);\n return state.applyData(node, result);\n }\n return undefined;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaHRtbC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7O0NBS0MsR0FFRCxtREFBbUQ7QUFDbkQ7QUFFQTs7Ozs7Ozs7OztDQVVDLEdBQ00sU0FBU0EsS0FBS0MsS0FBSyxFQUFFQyxJQUFJO0lBQzlCLElBQUlELE1BQU1FLE9BQU8sQ0FBQ0Msa0JBQWtCLEVBQUU7UUFDcEMsZ0JBQWdCLEdBQ2hCLE1BQU1DLFNBQVM7WUFBQ0MsTUFBTTtZQUFPQyxPQUFPTCxLQUFLSyxLQUFLO1FBQUE7UUFDOUNOLE1BQU1PLEtBQUssQ0FBQ04sTUFBTUc7UUFDbEIsT0FBT0osTUFBTVEsU0FBUyxDQUFDUCxNQUFNRztJQUMvQjtJQUVBLE9BQU9LO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2h0bWwuanM/NjkyYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkh0bWx9IEh0bWxcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi8uLi9pbmRleC5qcycpLlJhd30gUmF3XG4gKi9cblxuLy8gTWFrZSBWUyBDb2RlIHNob3cgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGh0bWxgIG5vZGUgaW50byBoYXN0IChgcmF3YCBub2RlIGluIGRhbmdlcm91cyBtb2RlLCBvdGhlcndpc2VcbiAqIG5vdGhpbmcpLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7SHRtbH0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0VsZW1lbnQgfCBSYXcgfCB1bmRlZmluZWR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh0bWwoc3RhdGUsIG5vZGUpIHtcbiAgaWYgKHN0YXRlLm9wdGlvbnMuYWxsb3dEYW5nZXJvdXNIdG1sKSB7XG4gICAgLyoqIEB0eXBlIHtSYXd9ICovXG4gICAgY29uc3QgcmVzdWx0ID0ge3R5cGU6ICdyYXcnLCB2YWx1ZTogbm9kZS52YWx1ZX1cbiAgICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gICAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkXG59XG4iXSwibmFtZXMiOlsiaHRtbCIsInN0YXRlIiwibm9kZSIsIm9wdGlvbnMiLCJhbGxvd0Rhbmdlcm91c0h0bWwiLCJyZXN1bHQiLCJ0eXBlIiwidmFsdWUiLCJwYXRjaCIsImFwcGx5RGF0YSIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ imageReference: () => (/* binding */ imageReference)\n/* harmony export */ });\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/revert.js\");\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */ \n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */ function imageReference(state, node) {\n const id = String(node.identifier).toUpperCase();\n const def = state.definitionById.get(id);\n if (!def) {\n return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node);\n }\n /** @type {Properties} */ const properties = {\n src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || \"\"),\n alt: node.alt\n };\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title;\n }\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"img\",\n properties,\n children: []\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaW1hZ2UtcmVmZXJlbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7Ozs7Q0FNQyxHQUV1RDtBQUNyQjtBQUVuQzs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTRSxlQUFlQyxLQUFLLEVBQUVDLElBQUk7SUFDeEMsTUFBTUMsS0FBS0MsT0FBT0YsS0FBS0csVUFBVSxFQUFFQyxXQUFXO0lBQzlDLE1BQU1DLE1BQU1OLE1BQU1PLGNBQWMsQ0FBQ0MsR0FBRyxDQUFDTjtJQUVyQyxJQUFJLENBQUNJLEtBQUs7UUFDUixPQUFPUixrREFBTUEsQ0FBQ0UsT0FBT0M7SUFDdkI7SUFFQSx1QkFBdUIsR0FDdkIsTUFBTVEsYUFBYTtRQUFDQyxLQUFLYix5RUFBWUEsQ0FBQ1MsSUFBSUssR0FBRyxJQUFJO1FBQUtDLEtBQUtYLEtBQUtXLEdBQUc7SUFBQTtJQUVuRSxJQUFJTixJQUFJTyxLQUFLLEtBQUssUUFBUVAsSUFBSU8sS0FBSyxLQUFLQyxXQUFXO1FBQ2pETCxXQUFXSSxLQUFLLEdBQUdQLElBQUlPLEtBQUs7SUFDOUI7SUFFQSxvQkFBb0IsR0FDcEIsTUFBTUUsU0FBUztRQUFDQyxNQUFNO1FBQVdDLFNBQVM7UUFBT1I7UUFBWVMsVUFBVSxFQUFFO0lBQUE7SUFDekVsQixNQUFNbUIsS0FBSyxDQUFDbEIsTUFBTWM7SUFDbEIsT0FBT2YsTUFBTW9CLFNBQVMsQ0FBQ25CLE1BQU1jO0FBQy9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9pbWFnZS1yZWZlcmVuY2UuanM/ZmM2MSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudENvbnRlbnR9IEVsZW1lbnRDb250ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5JbWFnZVJlZmVyZW5jZX0gSW1hZ2VSZWZlcmVuY2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemVVcml9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSdcbmltcG9ydCB7cmV2ZXJ0fSBmcm9tICcuLi9yZXZlcnQuanMnXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgaW1hZ2VSZWZlcmVuY2VgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7SW1hZ2VSZWZlcmVuY2V9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtBcnJheTxFbGVtZW50Q29udGVudD4gfCBFbGVtZW50Q29udGVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VSZWZlcmVuY2Uoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3QgaWQgPSBTdHJpbmcobm9kZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpXG4gIGNvbnN0IGRlZiA9IHN0YXRlLmRlZmluaXRpb25CeUlkLmdldChpZClcblxuICBpZiAoIWRlZikge1xuICAgIHJldHVybiByZXZlcnQoc3RhdGUsIG5vZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnRpZXMgPSB7c3JjOiBub3JtYWxpemVVcmkoZGVmLnVybCB8fCAnJyksIGFsdDogbm9kZS5hbHR9XG5cbiAgaWYgKGRlZi50aXRsZSAhPT0gbnVsbCAmJiBkZWYudGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BlcnRpZXMudGl0bGUgPSBkZWYudGl0bGVcbiAgfVxuXG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge3R5cGU6ICdlbGVtZW50JywgdGFnTmFtZTogJ2ltZycsIHByb3BlcnRpZXMsIGNoaWxkcmVuOiBbXX1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVVcmkiLCJyZXZlcnQiLCJpbWFnZVJlZmVyZW5jZSIsInN0YXRlIiwibm9kZSIsImlkIiwiU3RyaW5nIiwiaWRlbnRpZmllciIsInRvVXBwZXJDYXNlIiwiZGVmIiwiZGVmaW5pdGlvbkJ5SWQiLCJnZXQiLCJwcm9wZXJ0aWVzIiwic3JjIiwidXJsIiwiYWx0IiwidGl0bGUiLCJ1bmRlZmluZWQiLCJyZXN1bHQiLCJ0eXBlIiwidGFnTmFtZSIsImNoaWxkcmVuIiwicGF0Y2giLCJhcHBseURhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/image.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/image.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ image: () => (/* binding */ image)\n/* harmony export */ });\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */ \n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function image(state, node) {\n /** @type {Properties} */ const properties = {\n src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)\n };\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt;\n }\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title;\n }\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"img\",\n properties,\n children: []\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaW1hZ2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUV1RDtBQUV4RDs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQyxNQUFNQyxLQUFLLEVBQUVDLElBQUk7SUFDL0IsdUJBQXVCLEdBQ3ZCLE1BQU1DLGFBQWE7UUFBQ0MsS0FBS0wseUVBQVlBLENBQUNHLEtBQUtHLEdBQUc7SUFBQztJQUUvQyxJQUFJSCxLQUFLSSxHQUFHLEtBQUssUUFBUUosS0FBS0ksR0FBRyxLQUFLQyxXQUFXO1FBQy9DSixXQUFXRyxHQUFHLEdBQUdKLEtBQUtJLEdBQUc7SUFDM0I7SUFFQSxJQUFJSixLQUFLTSxLQUFLLEtBQUssUUFBUU4sS0FBS00sS0FBSyxLQUFLRCxXQUFXO1FBQ25ESixXQUFXSyxLQUFLLEdBQUdOLEtBQUtNLEtBQUs7SUFDL0I7SUFFQSxvQkFBb0IsR0FDcEIsTUFBTUMsU0FBUztRQUFDQyxNQUFNO1FBQVdDLFNBQVM7UUFBT1I7UUFBWVMsVUFBVSxFQUFFO0lBQUE7SUFDekVYLE1BQU1ZLEtBQUssQ0FBQ1gsTUFBTU87SUFDbEIsT0FBT1IsTUFBTWEsU0FBUyxDQUFDWixNQUFNTztBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaW1hZ2UuanM/YmFkYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5JbWFnZX0gSW1hZ2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemVVcml9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSdcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBpbWFnZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtJbWFnZX0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydGllcyA9IHtzcmM6IG5vcm1hbGl6ZVVyaShub2RlLnVybCl9XG5cbiAgaWYgKG5vZGUuYWx0ICE9PSBudWxsICYmIG5vZGUuYWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcm9wZXJ0aWVzLmFsdCA9IG5vZGUuYWx0XG4gIH1cblxuICBpZiAobm9kZS50aXRsZSAhPT0gbnVsbCAmJiBub2RlLnRpdGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcm9wZXJ0aWVzLnRpdGxlID0gbm9kZS50aXRsZVxuICB9XG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7dHlwZTogJ2VsZW1lbnQnLCB0YWdOYW1lOiAnaW1nJywgcHJvcGVydGllcywgY2hpbGRyZW46IFtdfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVVyaSIsImltYWdlIiwic3RhdGUiLCJub2RlIiwicHJvcGVydGllcyIsInNyYyIsInVybCIsImFsdCIsInVuZGVmaW5lZCIsInRpdGxlIiwicmVzdWx0IiwidHlwZSIsInRhZ05hbWUiLCJjaGlsZHJlbiIsInBhdGNoIiwiYXBwbHlEYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/image.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/index.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/index.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handlers: () => (/* binding */ handlers)\n/* harmony export */ });\n/* harmony import */ var _blockquote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blockquote.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js\");\n/* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./break.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/break.js\");\n/* harmony import */ var _code_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./code.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/code.js\");\n/* harmony import */ var _delete_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/delete.js\");\n/* harmony import */ var _emphasis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emphasis.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js\");\n/* harmony import */ var _footnote_reference_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./footnote-reference.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js\");\n/* harmony import */ var _heading_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./heading.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/heading.js\");\n/* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./html.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/html.js\");\n/* harmony import */ var _image_reference_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./image-reference.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js\");\n/* harmony import */ var _image_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./image.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/image.js\");\n/* harmony import */ var _inline_code_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./inline-code.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js\");\n/* harmony import */ var _link_reference_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./link-reference.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js\");\n/* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./link.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/link.js\");\n/* harmony import */ var _list_item_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./list-item.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js\");\n/* harmony import */ var _list_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./list.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/list.js\");\n/* harmony import */ var _paragraph_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./paragraph.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./root.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/root.js\");\n/* harmony import */ var _strong_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./strong.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/strong.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./table.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table.js\");\n/* harmony import */ var _table_row_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./table-row.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js\");\n/* harmony import */ var _table_cell_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./table-cell.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js\");\n/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./text.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/text.js\");\n/* harmony import */ var _thematic_break_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./thematic-break.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */ const handlers = {\n blockquote: _blockquote_js__WEBPACK_IMPORTED_MODULE_0__.blockquote,\n break: _break_js__WEBPACK_IMPORTED_MODULE_1__.hardBreak,\n code: _code_js__WEBPACK_IMPORTED_MODULE_2__.code,\n delete: _delete_js__WEBPACK_IMPORTED_MODULE_3__.strikethrough,\n emphasis: _emphasis_js__WEBPACK_IMPORTED_MODULE_4__.emphasis,\n footnoteReference: _footnote_reference_js__WEBPACK_IMPORTED_MODULE_5__.footnoteReference,\n heading: _heading_js__WEBPACK_IMPORTED_MODULE_6__.heading,\n html: _html_js__WEBPACK_IMPORTED_MODULE_7__.html,\n imageReference: _image_reference_js__WEBPACK_IMPORTED_MODULE_8__.imageReference,\n image: _image_js__WEBPACK_IMPORTED_MODULE_9__.image,\n inlineCode: _inline_code_js__WEBPACK_IMPORTED_MODULE_10__.inlineCode,\n linkReference: _link_reference_js__WEBPACK_IMPORTED_MODULE_11__.linkReference,\n link: _link_js__WEBPACK_IMPORTED_MODULE_12__.link,\n listItem: _list_item_js__WEBPACK_IMPORTED_MODULE_13__.listItem,\n list: _list_js__WEBPACK_IMPORTED_MODULE_14__.list,\n paragraph: _paragraph_js__WEBPACK_IMPORTED_MODULE_15__.paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root: _root_js__WEBPACK_IMPORTED_MODULE_16__.root,\n strong: _strong_js__WEBPACK_IMPORTED_MODULE_17__.strong,\n table: _table_js__WEBPACK_IMPORTED_MODULE_18__.table,\n tableCell: _table_cell_js__WEBPACK_IMPORTED_MODULE_19__.tableCell,\n tableRow: _table_row_js__WEBPACK_IMPORTED_MODULE_20__.tableRow,\n text: _text_js__WEBPACK_IMPORTED_MODULE_21__.text,\n thematicBreak: _thematic_break_js__WEBPACK_IMPORTED_MODULE_22__.thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n};\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBDO0FBQ047QUFDTjtBQUNXO0FBQ0g7QUFDbUI7QUFDckI7QUFDTjtBQUNxQjtBQUNuQjtBQUNXO0FBQ007QUFDbkI7QUFDUztBQUNUO0FBQ1U7QUFDVjtBQUNJO0FBQ0Y7QUFDTztBQUNFO0FBQ1g7QUFDbUI7QUFFakQ7Ozs7Q0FJQyxHQUNNLE1BQU11QixXQUFXO0lBQ3RCdkIsVUFBVUEsd0RBQUFBO0lBQ1Z3QixPQUFPdkIsZ0RBQVNBO0lBQ2hCQyxJQUFJQSw0Q0FBQUE7SUFDSnVCLFFBQVF0QixxREFBYUE7SUFDckJDLFFBQVFBLG9EQUFBQTtJQUNSQyxpQkFBaUJBLHVFQUFBQTtJQUNqQkMsT0FBT0Esa0RBQUFBO0lBQ1BDLElBQUlBLDRDQUFBQTtJQUNKQyxjQUFjQSxpRUFBQUE7SUFDZEMsS0FBS0EsOENBQUFBO0lBQ0xDLFVBQVVBLDBEQUFBQTtJQUNWQyxhQUFhQSxnRUFBQUE7SUFDYkMsSUFBSUEsNkNBQUFBO0lBQ0pDLFFBQVFBLHNEQUFBQTtJQUNSQyxJQUFJQSw2Q0FBQUE7SUFDSkMsU0FBU0EsdURBQUFBO0lBQ1QseURBQXlEO0lBQ3pEQyxJQUFJQSw2Q0FBQUE7SUFDSkMsTUFBTUEsaURBQUFBO0lBQ05DLEtBQUtBLCtDQUFBQTtJQUNMRSxTQUFTQSx3REFBQUE7SUFDVEQsUUFBUUEsc0RBQUFBO0lBQ1JFLElBQUlBLDZDQUFBQTtJQUNKQyxhQUFhQSxnRUFBQUE7SUFDYkksTUFBTUM7SUFDTkMsTUFBTUQ7SUFDTkUsWUFBWUY7SUFDWkcsb0JBQW9CSDtBQUN0QixFQUFDO0FBRUQsNkNBQTZDO0FBQzdDLFNBQVNBO0lBQ1AsT0FBT0k7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaW5kZXguanM/NmRkYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Jsb2NrcXVvdGV9IGZyb20gJy4vYmxvY2txdW90ZS5qcydcbmltcG9ydCB7aGFyZEJyZWFrfSBmcm9tICcuL2JyZWFrLmpzJ1xuaW1wb3J0IHtjb2RlfSBmcm9tICcuL2NvZGUuanMnXG5pbXBvcnQge3N0cmlrZXRocm91Z2h9IGZyb20gJy4vZGVsZXRlLmpzJ1xuaW1wb3J0IHtlbXBoYXNpc30gZnJvbSAnLi9lbXBoYXNpcy5qcydcbmltcG9ydCB7Zm9vdG5vdGVSZWZlcmVuY2V9IGZyb20gJy4vZm9vdG5vdGUtcmVmZXJlbmNlLmpzJ1xuaW1wb3J0IHtoZWFkaW5nfSBmcm9tICcuL2hlYWRpbmcuanMnXG5pbXBvcnQge2h0bWx9IGZyb20gJy4vaHRtbC5qcydcbmltcG9ydCB7aW1hZ2VSZWZlcmVuY2V9IGZyb20gJy4vaW1hZ2UtcmVmZXJlbmNlLmpzJ1xuaW1wb3J0IHtpbWFnZX0gZnJvbSAnLi9pbWFnZS5qcydcbmltcG9ydCB7aW5saW5lQ29kZX0gZnJvbSAnLi9pbmxpbmUtY29kZS5qcydcbmltcG9ydCB7bGlua1JlZmVyZW5jZX0gZnJvbSAnLi9saW5rLXJlZmVyZW5jZS5qcydcbmltcG9ydCB7bGlua30gZnJvbSAnLi9saW5rLmpzJ1xuaW1wb3J0IHtsaXN0SXRlbX0gZnJvbSAnLi9saXN0LWl0ZW0uanMnXG5pbXBvcnQge2xpc3R9IGZyb20gJy4vbGlzdC5qcydcbmltcG9ydCB7cGFyYWdyYXBofSBmcm9tICcuL3BhcmFncmFwaC5qcydcbmltcG9ydCB7cm9vdH0gZnJvbSAnLi9yb290LmpzJ1xuaW1wb3J0IHtzdHJvbmd9IGZyb20gJy4vc3Ryb25nLmpzJ1xuaW1wb3J0IHt0YWJsZX0gZnJvbSAnLi90YWJsZS5qcydcbmltcG9ydCB7dGFibGVSb3d9IGZyb20gJy4vdGFibGUtcm93LmpzJ1xuaW1wb3J0IHt0YWJsZUNlbGx9IGZyb20gJy4vdGFibGUtY2VsbC5qcydcbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuaW1wb3J0IHt0aGVtYXRpY0JyZWFrfSBmcm9tICcuL3RoZW1hdGljLWJyZWFrLmpzJ1xuXG4vKipcbiAqIERlZmF1bHQgaGFuZGxlcnMgZm9yIG5vZGVzLlxuICpcbiAqIEBzYXRpc2ZpZXMge2ltcG9ydCgnLi4vc3RhdGUuanMnKS5IYW5kbGVyc31cbiAqL1xuZXhwb3J0IGNvbnN0IGhhbmRsZXJzID0ge1xuICBibG9ja3F1b3RlLFxuICBicmVhazogaGFyZEJyZWFrLFxuICBjb2RlLFxuICBkZWxldGU6IHN0cmlrZXRocm91Z2gsXG4gIGVtcGhhc2lzLFxuICBmb290bm90ZVJlZmVyZW5jZSxcbiAgaGVhZGluZyxcbiAgaHRtbCxcbiAgaW1hZ2VSZWZlcmVuY2UsXG4gIGltYWdlLFxuICBpbmxpbmVDb2RlLFxuICBsaW5rUmVmZXJlbmNlLFxuICBsaW5rLFxuICBsaXN0SXRlbSxcbiAgbGlzdCxcbiAgcGFyYWdyYXBoLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yOiByb290IGlzIGRpZmZlcmVudCwgYnV0IGhhcmQgdG8gdHlwZS5cbiAgcm9vdCxcbiAgc3Ryb25nLFxuICB0YWJsZSxcbiAgdGFibGVDZWxsLFxuICB0YWJsZVJvdyxcbiAgdGV4dCxcbiAgdGhlbWF0aWNCcmVhayxcbiAgdG9tbDogaWdub3JlLFxuICB5YW1sOiBpZ25vcmUsXG4gIGRlZmluaXRpb246IGlnbm9yZSxcbiAgZm9vdG5vdGVEZWZpbml0aW9uOiBpZ25vcmVcbn1cblxuLy8gUmV0dXJuIG5vdGhpbmcgZm9yIG5vZGVzIHRoYXQgYXJlIGlnbm9yZWQuXG5mdW5jdGlvbiBpZ25vcmUoKSB7XG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiJdLCJuYW1lcyI6WyJibG9ja3F1b3RlIiwiaGFyZEJyZWFrIiwiY29kZSIsInN0cmlrZXRocm91Z2giLCJlbXBoYXNpcyIsImZvb3Rub3RlUmVmZXJlbmNlIiwiaGVhZGluZyIsImh0bWwiLCJpbWFnZVJlZmVyZW5jZSIsImltYWdlIiwiaW5saW5lQ29kZSIsImxpbmtSZWZlcmVuY2UiLCJsaW5rIiwibGlzdEl0ZW0iLCJsaXN0IiwicGFyYWdyYXBoIiwicm9vdCIsInN0cm9uZyIsInRhYmxlIiwidGFibGVSb3ciLCJ0YWJsZUNlbGwiLCJ0ZXh0IiwidGhlbWF0aWNCcmVhayIsImhhbmRsZXJzIiwiYnJlYWsiLCJkZWxldGUiLCJ0b21sIiwiaWdub3JlIiwieWFtbCIsImRlZmluaXRpb24iLCJmb290bm90ZURlZmluaXRpb24iLCJ1bmRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ inlineCode: () => (/* binding */ inlineCode)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function inlineCode(state, node) {\n /** @type {Text} */ const text = {\n type: \"text\",\n value: node.value.replace(/\\r?\\n|\\r/g, \" \")\n };\n state.patch(node, text);\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: [\n text\n ]\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaW5saW5lLWNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7OztDQUtDLEdBRUQsbURBQW1EO0FBQ25EO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ00sU0FBU0EsV0FBV0MsS0FBSyxFQUFFQyxJQUFJO0lBQ3BDLGlCQUFpQixHQUNqQixNQUFNQyxPQUFPO1FBQUNDLE1BQU07UUFBUUMsT0FBT0gsS0FBS0csS0FBSyxDQUFDQyxPQUFPLENBQUMsYUFBYTtJQUFJO0lBQ3ZFTCxNQUFNTSxLQUFLLENBQUNMLE1BQU1DO0lBRWxCLG9CQUFvQixHQUNwQixNQUFNSyxTQUFTO1FBQ2JKLE1BQU07UUFDTkssU0FBUztRQUNUQyxZQUFZLENBQUM7UUFDYkMsVUFBVTtZQUFDUjtTQUFLO0lBQ2xCO0lBQ0FGLE1BQU1NLEtBQUssQ0FBQ0wsTUFBTU07SUFDbEIsT0FBT1AsTUFBTVcsU0FBUyxDQUFDVixNQUFNTTtBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaW5saW5lLWNvZGUuanM/MTlhOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuVGV4dH0gVGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5JbmxpbmVDb2RlfSBJbmxpbmVDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9zdGF0ZS5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgQ29kZSBzaG93IHJlZmVyZW5jZXMgdG8gdGhlIGFib3ZlIHR5cGVzLlxuJydcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBpbmxpbmVDb2RlYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0lubGluZUNvZGV9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmxpbmVDb2RlKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7VGV4dH0gKi9cbiAgY29uc3QgdGV4dCA9IHt0eXBlOiAndGV4dCcsIHZhbHVlOiBub2RlLnZhbHVlLnJlcGxhY2UoL1xccj9cXG58XFxyL2csICcgJyl9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHRleHQpXG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICdjb2RlJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogW3RleHRdXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiJdLCJuYW1lcyI6WyJpbmxpbmVDb2RlIiwic3RhdGUiLCJub2RlIiwidGV4dCIsInR5cGUiLCJ2YWx1ZSIsInJlcGxhY2UiLCJwYXRjaCIsInJlc3VsdCIsInRhZ05hbWUiLCJwcm9wZXJ0aWVzIiwiY2hpbGRyZW4iLCJhcHBseURhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js ***!
- \****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ linkReference: () => (/* binding */ linkReference)\n/* harmony export */ });\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/revert.js\");\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */ \n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */ function linkReference(state, node) {\n const id = String(node.identifier).toUpperCase();\n const def = state.definitionById.get(id);\n if (!def) {\n return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node);\n }\n /** @type {Properties} */ const properties = {\n href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || \"\")\n };\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title;\n }\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"a\",\n properties,\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGluay1yZWZlcmVuY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7OztDQU1DLEdBRXVEO0FBQ3JCO0FBRW5DOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNFLGNBQWNDLEtBQUssRUFBRUMsSUFBSTtJQUN2QyxNQUFNQyxLQUFLQyxPQUFPRixLQUFLRyxVQUFVLEVBQUVDLFdBQVc7SUFDOUMsTUFBTUMsTUFBTU4sTUFBTU8sY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBRXJDLElBQUksQ0FBQ0ksS0FBSztRQUNSLE9BQU9SLGtEQUFNQSxDQUFDRSxPQUFPQztJQUN2QjtJQUVBLHVCQUF1QixHQUN2QixNQUFNUSxhQUFhO1FBQUNDLE1BQU1iLHlFQUFZQSxDQUFDUyxJQUFJSyxHQUFHLElBQUk7SUFBRztJQUVyRCxJQUFJTCxJQUFJTSxLQUFLLEtBQUssUUFBUU4sSUFBSU0sS0FBSyxLQUFLQyxXQUFXO1FBQ2pESixXQUFXRyxLQUFLLEdBQUdOLElBQUlNLEtBQUs7SUFDOUI7SUFFQSxvQkFBb0IsR0FDcEIsTUFBTUUsU0FBUztRQUNiQyxNQUFNO1FBQ05DLFNBQVM7UUFDVFA7UUFDQVEsVUFBVWpCLE1BQU1rQixHQUFHLENBQUNqQjtJQUN0QjtJQUNBRCxNQUFNbUIsS0FBSyxDQUFDbEIsTUFBTWE7SUFDbEIsT0FBT2QsTUFBTW9CLFNBQVMsQ0FBQ25CLE1BQU1hO0FBQy9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9saW5rLXJlZmVyZW5jZS5qcz9jZThiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50Q29udGVudH0gRWxlbWVudENvbnRlbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkxpbmtSZWZlcmVuY2V9IExpbmtSZWZlcmVuY2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemVVcml9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSdcbmltcG9ydCB7cmV2ZXJ0fSBmcm9tICcuLi9yZXZlcnQuanMnXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgbGlua1JlZmVyZW5jZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtMaW5rUmVmZXJlbmNlfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7QXJyYXk8RWxlbWVudENvbnRlbnQ+IHwgRWxlbWVudENvbnRlbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpbmtSZWZlcmVuY2Uoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3QgaWQgPSBTdHJpbmcobm9kZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpXG4gIGNvbnN0IGRlZiA9IHN0YXRlLmRlZmluaXRpb25CeUlkLmdldChpZClcblxuICBpZiAoIWRlZikge1xuICAgIHJldHVybiByZXZlcnQoc3RhdGUsIG5vZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnRpZXMgPSB7aHJlZjogbm9ybWFsaXplVXJpKGRlZi51cmwgfHwgJycpfVxuXG4gIGlmIChkZWYudGl0bGUgIT09IG51bGwgJiYgZGVmLnRpdGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcm9wZXJ0aWVzLnRpdGxlID0gZGVmLnRpdGxlXG4gIH1cblxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2EnLFxuICAgIHByb3BlcnRpZXMsXG4gICAgY2hpbGRyZW46IHN0YXRlLmFsbChub2RlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplVXJpIiwicmV2ZXJ0IiwibGlua1JlZmVyZW5jZSIsInN0YXRlIiwibm9kZSIsImlkIiwiU3RyaW5nIiwiaWRlbnRpZmllciIsInRvVXBwZXJDYXNlIiwiZGVmIiwiZGVmaW5pdGlvbkJ5SWQiLCJnZXQiLCJwcm9wZXJ0aWVzIiwiaHJlZiIsInVybCIsInRpdGxlIiwidW5kZWZpbmVkIiwicmVzdWx0IiwidHlwZSIsInRhZ05hbWUiLCJjaGlsZHJlbiIsImFsbCIsInBhdGNoIiwiYXBwbHlEYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/link.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/link.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ link: () => (/* binding */ link)\n/* harmony export */ });\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */ \n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function link(state, node) {\n /** @type {Properties} */ const properties = {\n href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)\n };\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title;\n }\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"a\",\n properties,\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGluay5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7OztDQUtDLEdBRXVEO0FBRXhEOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNDLEtBQUtDLEtBQUssRUFBRUMsSUFBSTtJQUM5Qix1QkFBdUIsR0FDdkIsTUFBTUMsYUFBYTtRQUFDQyxNQUFNTCx5RUFBWUEsQ0FBQ0csS0FBS0csR0FBRztJQUFDO0lBRWhELElBQUlILEtBQUtJLEtBQUssS0FBSyxRQUFRSixLQUFLSSxLQUFLLEtBQUtDLFdBQVc7UUFDbkRKLFdBQVdHLEtBQUssR0FBR0osS0FBS0ksS0FBSztJQUMvQjtJQUVBLG9CQUFvQixHQUNwQixNQUFNRSxTQUFTO1FBQ2JDLE1BQU07UUFDTkMsU0FBUztRQUNUUDtRQUNBUSxVQUFVVixNQUFNVyxHQUFHLENBQUNWO0lBQ3RCO0lBQ0FELE1BQU1ZLEtBQUssQ0FBQ1gsTUFBTU07SUFDbEIsT0FBT1AsTUFBTWEsU0FBUyxDQUFDWixNQUFNTTtBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGluay5qcz8wMTI3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkxpbmt9IExpbmtcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemVVcml9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSdcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBsaW5rYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0xpbmt9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5rKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydGllcyA9IHtocmVmOiBub3JtYWxpemVVcmkobm9kZS51cmwpfVxuXG4gIGlmIChub2RlLnRpdGxlICE9PSBudWxsICYmIG5vZGUudGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BlcnRpZXMudGl0bGUgPSBub2RlLnRpdGxlXG4gIH1cblxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2EnLFxuICAgIHByb3BlcnRpZXMsXG4gICAgY2hpbGRyZW46IHN0YXRlLmFsbChub2RlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplVXJpIiwibGluayIsInN0YXRlIiwibm9kZSIsInByb3BlcnRpZXMiLCJocmVmIiwidXJsIiwidGl0bGUiLCJ1bmRlZmluZWQiLCJyZXN1bHQiLCJ0eXBlIiwidGFnTmFtZSIsImNoaWxkcmVuIiwiYWxsIiwicGF0Y2giLCJhcHBseURhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/link.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ listItem: () => (/* binding */ listItem)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */ function listItem(state, node, parent) {\n const results = state.all(node);\n const loose = parent ? listLoose(parent) : listItemLoose(node);\n /** @type {Properties} */ const properties = {};\n /** @type {Array<ElementContent>} */ const children = [];\n if (typeof node.checked === \"boolean\") {\n const head = results[0];\n /** @type {Element} */ let paragraph;\n if (head && head.type === \"element\" && head.tagName === \"p\") {\n paragraph = head;\n } else {\n paragraph = {\n type: \"element\",\n tagName: \"p\",\n properties: {},\n children: []\n };\n results.unshift(paragraph);\n }\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({\n type: \"text\",\n value: \" \"\n });\n }\n paragraph.children.unshift({\n type: \"element\",\n tagName: \"input\",\n properties: {\n type: \"checkbox\",\n checked: node.checked,\n disabled: true\n },\n children: []\n });\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = [\n \"task-list-item\"\n ];\n }\n let index = -1;\n while(++index < results.length){\n const child = results[index];\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (loose || index !== 0 || child.type !== \"element\" || child.tagName !== \"p\") {\n children.push({\n type: \"text\",\n value: \"\\n\"\n });\n }\n if (child.type === \"element\" && child.tagName === \"p\" && !loose) {\n children.push(...child.children);\n } else {\n children.push(child);\n }\n }\n const tail = results[results.length - 1];\n // Add a final eol.\n if (tail && (loose || tail.type !== \"element\" || tail.tagName !== \"p\")) {\n children.push({\n type: \"text\",\n value: \"\\n\"\n });\n }\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"li\",\n properties,\n children\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n/**\n * @param {Parents} node\n * @return {Boolean}\n */ function listLoose(node) {\n let loose = false;\n if (node.type === \"list\") {\n loose = node.spread || false;\n const children = node.children;\n let index = -1;\n while(!loose && ++index < children.length){\n loose = listItemLoose(children[index]);\n }\n }\n return loose;\n}\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */ function listItemLoose(node) {\n const spread = node.spread;\n return spread === null || spread === undefined ? node.children.length > 1 : spread;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGlzdC1pdGVtLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBRUQsbURBQW1EO0FBQ25EO0FBRUE7Ozs7Ozs7Ozs7O0NBV0MsR0FDTSxTQUFTQSxTQUFTQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsTUFBTTtJQUMxQyxNQUFNQyxVQUFVSCxNQUFNSSxHQUFHLENBQUNIO0lBQzFCLE1BQU1JLFFBQVFILFNBQVNJLFVBQVVKLFVBQVVLLGNBQWNOO0lBQ3pELHVCQUF1QixHQUN2QixNQUFNTyxhQUFhLENBQUM7SUFDcEIsa0NBQWtDLEdBQ2xDLE1BQU1DLFdBQVcsRUFBRTtJQUVuQixJQUFJLE9BQU9SLEtBQUtTLE9BQU8sS0FBSyxXQUFXO1FBQ3JDLE1BQU1DLE9BQU9SLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZCLG9CQUFvQixHQUNwQixJQUFJUztRQUVKLElBQUlELFFBQVFBLEtBQUtFLElBQUksS0FBSyxhQUFhRixLQUFLRyxPQUFPLEtBQUssS0FBSztZQUMzREYsWUFBWUQ7UUFDZCxPQUFPO1lBQ0xDLFlBQVk7Z0JBQUNDLE1BQU07Z0JBQVdDLFNBQVM7Z0JBQUtOLFlBQVksQ0FBQztnQkFBR0MsVUFBVSxFQUFFO1lBQUE7WUFDeEVOLFFBQVFZLE9BQU8sQ0FBQ0g7UUFDbEI7UUFFQSxJQUFJQSxVQUFVSCxRQUFRLENBQUNPLE1BQU0sR0FBRyxHQUFHO1lBQ2pDSixVQUFVSCxRQUFRLENBQUNNLE9BQU8sQ0FBQztnQkFBQ0YsTUFBTTtnQkFBUUksT0FBTztZQUFHO1FBQ3REO1FBRUFMLFVBQVVILFFBQVEsQ0FBQ00sT0FBTyxDQUFDO1lBQ3pCRixNQUFNO1lBQ05DLFNBQVM7WUFDVE4sWUFBWTtnQkFBQ0ssTUFBTTtnQkFBWUgsU0FBU1QsS0FBS1MsT0FBTztnQkFBRVEsVUFBVTtZQUFJO1lBQ3BFVCxVQUFVLEVBQUU7UUFDZDtRQUVBLDZEQUE2RDtRQUM3RCw4REFBOEQ7UUFDOURELFdBQVdXLFNBQVMsR0FBRztZQUFDO1NBQWlCO0lBQzNDO0lBRUEsSUFBSUMsUUFBUSxDQUFDO0lBRWIsTUFBTyxFQUFFQSxRQUFRakIsUUFBUWEsTUFBTSxDQUFFO1FBQy9CLE1BQU1LLFFBQVFsQixPQUFPLENBQUNpQixNQUFNO1FBRTVCLHFFQUFxRTtRQUNyRSxJQUNFZixTQUNBZSxVQUFVLEtBQ1ZDLE1BQU1SLElBQUksS0FBSyxhQUNmUSxNQUFNUCxPQUFPLEtBQUssS0FDbEI7WUFDQUwsU0FBU2EsSUFBSSxDQUFDO2dCQUFDVCxNQUFNO2dCQUFRSSxPQUFPO1lBQUk7UUFDMUM7UUFFQSxJQUFJSSxNQUFNUixJQUFJLEtBQUssYUFBYVEsTUFBTVAsT0FBTyxLQUFLLE9BQU8sQ0FBQ1QsT0FBTztZQUMvREksU0FBU2EsSUFBSSxJQUFJRCxNQUFNWixRQUFRO1FBQ2pDLE9BQU87WUFDTEEsU0FBU2EsSUFBSSxDQUFDRDtRQUNoQjtJQUNGO0lBRUEsTUFBTUUsT0FBT3BCLE9BQU8sQ0FBQ0EsUUFBUWEsTUFBTSxHQUFHLEVBQUU7SUFFeEMsbUJBQW1CO0lBQ25CLElBQUlPLFFBQVNsQixDQUFBQSxTQUFTa0IsS0FBS1YsSUFBSSxLQUFLLGFBQWFVLEtBQUtULE9BQU8sS0FBSyxHQUFFLEdBQUk7UUFDdEVMLFNBQVNhLElBQUksQ0FBQztZQUFDVCxNQUFNO1lBQVFJLE9BQU87UUFBSTtJQUMxQztJQUVBLG9CQUFvQixHQUNwQixNQUFNTyxTQUFTO1FBQUNYLE1BQU07UUFBV0MsU0FBUztRQUFNTjtRQUFZQztJQUFRO0lBQ3BFVCxNQUFNeUIsS0FBSyxDQUFDeEIsTUFBTXVCO0lBQ2xCLE9BQU94QixNQUFNMEIsU0FBUyxDQUFDekIsTUFBTXVCO0FBQy9CO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2xCLFVBQVVMLElBQUk7SUFDckIsSUFBSUksUUFBUTtJQUNaLElBQUlKLEtBQUtZLElBQUksS0FBSyxRQUFRO1FBQ3hCUixRQUFRSixLQUFLMEIsTUFBTSxJQUFJO1FBQ3ZCLE1BQU1sQixXQUFXUixLQUFLUSxRQUFRO1FBQzlCLElBQUlXLFFBQVEsQ0FBQztRQUViLE1BQU8sQ0FBQ2YsU0FBUyxFQUFFZSxRQUFRWCxTQUFTTyxNQUFNLENBQUU7WUFDMUNYLFFBQVFFLGNBQWNFLFFBQVEsQ0FBQ1csTUFBTTtRQUN2QztJQUNGO0lBRUEsT0FBT2Y7QUFDVDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNFLGNBQWNOLElBQUk7SUFDekIsTUFBTTBCLFNBQVMxQixLQUFLMEIsTUFBTTtJQUUxQixPQUFPQSxXQUFXLFFBQVFBLFdBQVdDLFlBQ2pDM0IsS0FBS1EsUUFBUSxDQUFDTyxNQUFNLEdBQUcsSUFDdkJXO0FBQ04iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2xpc3QtaXRlbS5qcz9kYmQ1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50Q29udGVudH0gRWxlbWVudENvbnRlbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkxpc3RJdGVtfSBMaXN0SXRlbVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9zdGF0ZS5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgQ29kZSBzaG93IHJlZmVyZW5jZXMgdG8gdGhlIGFib3ZlIHR5cGVzLlxuJydcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBsaXN0SXRlbWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtMaXN0SXRlbX0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaXN0SXRlbShzdGF0ZSwgbm9kZSwgcGFyZW50KSB7XG4gIGNvbnN0IHJlc3VsdHMgPSBzdGF0ZS5hbGwobm9kZSlcbiAgY29uc3QgbG9vc2UgPSBwYXJlbnQgPyBsaXN0TG9vc2UocGFyZW50KSA6IGxpc3RJdGVtTG9vc2Uobm9kZSlcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wZXJ0aWVzID0ge31cbiAgLyoqIEB0eXBlIHtBcnJheTxFbGVtZW50Q29udGVudD59ICovXG4gIGNvbnN0IGNoaWxkcmVuID0gW11cblxuICBpZiAodHlwZW9mIG5vZGUuY2hlY2tlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgY29uc3QgaGVhZCA9IHJlc3VsdHNbMF1cbiAgICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gICAgbGV0IHBhcmFncmFwaFxuXG4gICAgaWYgKGhlYWQgJiYgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiYgaGVhZC50YWdOYW1lID09PSAncCcpIHtcbiAgICAgIHBhcmFncmFwaCA9IGhlYWRcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYWdyYXBoID0ge3R5cGU6ICdlbGVtZW50JywgdGFnTmFtZTogJ3AnLCBwcm9wZXJ0aWVzOiB7fSwgY2hpbGRyZW46IFtdfVxuICAgICAgcmVzdWx0cy51bnNoaWZ0KHBhcmFncmFwaClcbiAgICB9XG5cbiAgICBpZiAocGFyYWdyYXBoLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHBhcmFncmFwaC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiAndGV4dCcsIHZhbHVlOiAnICd9KVxuICAgIH1cblxuICAgIHBhcmFncmFwaC5jaGlsZHJlbi51bnNoaWZ0KHtcbiAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgIHRhZ05hbWU6ICdpbnB1dCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7dHlwZTogJ2NoZWNrYm94JywgY2hlY2tlZDogbm9kZS5jaGVja2VkLCBkaXNhYmxlZDogdHJ1ZX0sXG4gICAgICBjaGlsZHJlbjogW11cbiAgICB9KVxuXG4gICAgLy8gQWNjb3JkaW5nIHRvIGdpdGh1Yi1tYXJrZG93bi1jc3MsIHRoaXMgY2xhc3MgaGlkZXMgYnVsbGV0LlxuICAgIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvZ2l0aHViLW1hcmtkb3duLWNzcz4uXG4gICAgcHJvcGVydGllcy5jbGFzc05hbWUgPSBbJ3Rhc2stbGlzdC1pdGVtJ11cbiAgfVxuXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCByZXN1bHRzLmxlbmd0aCkge1xuICAgIGNvbnN0IGNoaWxkID0gcmVzdWx0c1tpbmRleF1cblxuICAgIC8vIEFkZCBlb2xzIGJlZm9yZSBub2RlcywgZXhjZXB0IGlmIHRoaXMgaXMgYSBsb29zZSwgZmlyc3QgcGFyYWdyYXBoLlxuICAgIGlmIChcbiAgICAgIGxvb3NlIHx8XG4gICAgICBpbmRleCAhPT0gMCB8fFxuICAgICAgY2hpbGQudHlwZSAhPT0gJ2VsZW1lbnQnIHx8XG4gICAgICBjaGlsZC50YWdOYW1lICE9PSAncCdcbiAgICApIHtcbiAgICAgIGNoaWxkcmVuLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6ICdcXG4nfSlcbiAgICB9XG5cbiAgICBpZiAoY2hpbGQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIGNoaWxkLnRhZ05hbWUgPT09ICdwJyAmJiAhbG9vc2UpIHtcbiAgICAgIGNoaWxkcmVuLnB1c2goLi4uY2hpbGQuY2hpbGRyZW4pXG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkcmVuLnB1c2goY2hpbGQpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGFpbCA9IHJlc3VsdHNbcmVzdWx0cy5sZW5ndGggLSAxXVxuXG4gIC8vIEFkZCBhIGZpbmFsIGVvbC5cbiAgaWYgKHRhaWwgJiYgKGxvb3NlIHx8IHRhaWwudHlwZSAhPT0gJ2VsZW1lbnQnIHx8IHRhaWwudGFnTmFtZSAhPT0gJ3AnKSkge1xuICAgIGNoaWxkcmVuLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6ICdcXG4nfSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge3R5cGU6ICdlbGVtZW50JywgdGFnTmFtZTogJ2xpJywgcHJvcGVydGllcywgY2hpbGRyZW59XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtQYXJlbnRzfSBub2RlXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiBsaXN0TG9vc2Uobm9kZSkge1xuICBsZXQgbG9vc2UgPSBmYWxzZVxuICBpZiAobm9kZS50eXBlID09PSAnbGlzdCcpIHtcbiAgICBsb29zZSA9IG5vZGUuc3ByZWFkIHx8IGZhbHNlXG4gICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuXG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICghbG9vc2UgJiYgKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgbG9vc2UgPSBsaXN0SXRlbUxvb3NlKGNoaWxkcmVuW2luZGV4XSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9vc2Vcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0xpc3RJdGVtfSBub2RlXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiBsaXN0SXRlbUxvb3NlKG5vZGUpIHtcbiAgY29uc3Qgc3ByZWFkID0gbm9kZS5zcHJlYWRcblxuICByZXR1cm4gc3ByZWFkID09PSBudWxsIHx8IHNwcmVhZCA9PT0gdW5kZWZpbmVkXG4gICAgPyBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDFcbiAgICA6IHNwcmVhZFxufVxuIl0sIm5hbWVzIjpbImxpc3RJdGVtIiwic3RhdGUiLCJub2RlIiwicGFyZW50IiwicmVzdWx0cyIsImFsbCIsImxvb3NlIiwibGlzdExvb3NlIiwibGlzdEl0ZW1Mb29zZSIsInByb3BlcnRpZXMiLCJjaGlsZHJlbiIsImNoZWNrZWQiLCJoZWFkIiwicGFyYWdyYXBoIiwidHlwZSIsInRhZ05hbWUiLCJ1bnNoaWZ0IiwibGVuZ3RoIiwidmFsdWUiLCJkaXNhYmxlZCIsImNsYXNzTmFtZSIsImluZGV4IiwiY2hpbGQiLCJwdXNoIiwidGFpbCIsInJlc3VsdCIsInBhdGNoIiwiYXBwbHlEYXRhIiwic3ByZWFkIiwidW5kZWZpbmVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/list.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/list.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ list: () => (/* binding */ list)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function list(state, node) {\n /** @type {Properties} */ const properties = {};\n const results = state.all(node);\n let index = -1;\n if (typeof node.start === \"number\" && node.start !== 1) {\n properties.start = node.start;\n }\n // Like GitHub, add a class for custom styling.\n while(++index < results.length){\n const child = results[index];\n if (child.type === \"element\" && child.tagName === \"li\" && child.properties && Array.isArray(child.properties.className) && child.properties.className.includes(\"task-list-item\")) {\n properties.className = [\n \"contains-task-list\"\n ];\n break;\n }\n }\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: node.ordered ? \"ol\" : \"ul\",\n properties,\n children: state.wrap(results, true)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGlzdC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7O0NBS0MsR0FFRCxtREFBbUQ7QUFDbkQ7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQSxLQUFLQyxLQUFLLEVBQUVDLElBQUk7SUFDOUIsdUJBQXVCLEdBQ3ZCLE1BQU1DLGFBQWEsQ0FBQztJQUNwQixNQUFNQyxVQUFVSCxNQUFNSSxHQUFHLENBQUNIO0lBQzFCLElBQUlJLFFBQVEsQ0FBQztJQUViLElBQUksT0FBT0osS0FBS0ssS0FBSyxLQUFLLFlBQVlMLEtBQUtLLEtBQUssS0FBSyxHQUFHO1FBQ3RESixXQUFXSSxLQUFLLEdBQUdMLEtBQUtLLEtBQUs7SUFDL0I7SUFFQSwrQ0FBK0M7SUFDL0MsTUFBTyxFQUFFRCxRQUFRRixRQUFRSSxNQUFNLENBQUU7UUFDL0IsTUFBTUMsUUFBUUwsT0FBTyxDQUFDRSxNQUFNO1FBRTVCLElBQ0VHLE1BQU1DLElBQUksS0FBSyxhQUNmRCxNQUFNRSxPQUFPLEtBQUssUUFDbEJGLE1BQU1OLFVBQVUsSUFDaEJTLE1BQU1DLE9BQU8sQ0FBQ0osTUFBTU4sVUFBVSxDQUFDVyxTQUFTLEtBQ3hDTCxNQUFNTixVQUFVLENBQUNXLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDLG1CQUNwQztZQUNBWixXQUFXVyxTQUFTLEdBQUc7Z0JBQUM7YUFBcUI7WUFDN0M7UUFDRjtJQUNGO0lBRUEsb0JBQW9CLEdBQ3BCLE1BQU1FLFNBQVM7UUFDYk4sTUFBTTtRQUNOQyxTQUFTVCxLQUFLZSxPQUFPLEdBQUcsT0FBTztRQUMvQmQ7UUFDQWUsVUFBVWpCLE1BQU1rQixJQUFJLENBQUNmLFNBQVM7SUFDaEM7SUFDQUgsTUFBTW1CLEtBQUssQ0FBQ2xCLE1BQU1jO0lBQ2xCLE9BQU9mLE1BQU1vQixTQUFTLENBQUNuQixNQUFNYztBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGlzdC5qcz85MTcxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkxpc3R9IExpc3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBDb2RlIHNob3cgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGxpc3RgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7TGlzdH0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3Qoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wZXJ0aWVzID0ge31cbiAgY29uc3QgcmVzdWx0cyA9IHN0YXRlLmFsbChub2RlKVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIGlmICh0eXBlb2Ygbm9kZS5zdGFydCA9PT0gJ251bWJlcicgJiYgbm9kZS5zdGFydCAhPT0gMSkge1xuICAgIHByb3BlcnRpZXMuc3RhcnQgPSBub2RlLnN0YXJ0XG4gIH1cblxuICAvLyBMaWtlIEdpdEh1YiwgYWRkIGEgY2xhc3MgZm9yIGN1c3RvbSBzdHlsaW5nLlxuICB3aGlsZSAoKytpbmRleCA8IHJlc3VsdHMubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hpbGQgPSByZXN1bHRzW2luZGV4XVxuXG4gICAgaWYgKFxuICAgICAgY2hpbGQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICBjaGlsZC50YWdOYW1lID09PSAnbGknICYmXG4gICAgICBjaGlsZC5wcm9wZXJ0aWVzICYmXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkLnByb3BlcnRpZXMuY2xhc3NOYW1lKSAmJlxuICAgICAgY2hpbGQucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoJ3Rhc2stbGlzdC1pdGVtJylcbiAgICApIHtcbiAgICAgIHByb3BlcnRpZXMuY2xhc3NOYW1lID0gWydjb250YWlucy10YXNrLWxpc3QnXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogbm9kZS5vcmRlcmVkID8gJ29sJyA6ICd1bCcsXG4gICAgcHJvcGVydGllcyxcbiAgICBjaGlsZHJlbjogc3RhdGUud3JhcChyZXN1bHRzLCB0cnVlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iXSwibmFtZXMiOlsibGlzdCIsInN0YXRlIiwibm9kZSIsInByb3BlcnRpZXMiLCJyZXN1bHRzIiwiYWxsIiwiaW5kZXgiLCJzdGFydCIsImxlbmd0aCIsImNoaWxkIiwidHlwZSIsInRhZ05hbWUiLCJBcnJheSIsImlzQXJyYXkiLCJjbGFzc05hbWUiLCJpbmNsdWRlcyIsInJlc3VsdCIsIm9yZGVyZWQiLCJjaGlsZHJlbiIsIndyYXAiLCJwYXRjaCIsImFwcGx5RGF0YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/list.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ paragraph: () => (/* binding */ paragraph)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function paragraph(state, node) {\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"p\",\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvcGFyYWdyYXBoLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztDQUlDLEdBRUQsbURBQW1EO0FBQ25EO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ00sU0FBU0EsVUFBVUMsS0FBSyxFQUFFQyxJQUFJO0lBQ25DLG9CQUFvQixHQUNwQixNQUFNQyxTQUFTO1FBQ2JDLE1BQU07UUFDTkMsU0FBUztRQUNUQyxZQUFZLENBQUM7UUFDYkMsVUFBVU4sTUFBTU8sR0FBRyxDQUFDTjtJQUN0QjtJQUNBRCxNQUFNUSxLQUFLLENBQUNQLE1BQU1DO0lBQ2xCLE9BQU9GLE1BQU1TLFNBQVMsQ0FBQ1IsTUFBTUM7QUFDL0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3BhcmFncmFwaC5qcz9iNDhkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyYWdyYXBofSBQYXJhZ3JhcGhcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBDb2RlIHNob3cgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYHBhcmFncmFwaGAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtQYXJhZ3JhcGh9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJhZ3JhcGgoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICdwJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogc3RhdGUuYWxsKG5vZGUpXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiJdLCJuYW1lcyI6WyJwYXJhZ3JhcGgiLCJzdGF0ZSIsIm5vZGUiLCJyZXN1bHQiLCJ0eXBlIiwidGFnTmFtZSIsInByb3BlcnRpZXMiLCJjaGlsZHJlbiIsImFsbCIsInBhdGNoIiwiYXBwbHlEYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/root.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/root.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ root: () => (/* binding */ root)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastParents}\n * hast node.\n */ function root(state, node) {\n /** @type {HastRoot} */ const result = {\n type: \"root\",\n children: state.wrap(state.all(node))\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvcm9vdC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7O0NBS0MsR0FFRCxtREFBbUQ7QUFDbkQ7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQSxLQUFLQyxLQUFLLEVBQUVDLElBQUk7SUFDOUIscUJBQXFCLEdBQ3JCLE1BQU1DLFNBQVM7UUFBQ0MsTUFBTTtRQUFRQyxVQUFVSixNQUFNSyxJQUFJLENBQUNMLE1BQU1NLEdBQUcsQ0FBQ0w7SUFBTTtJQUNuRUQsTUFBTU8sS0FBSyxDQUFDTixNQUFNQztJQUNsQixPQUFPRixNQUFNUSxTQUFTLENBQUNQLE1BQU1DO0FBQy9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9yb290LmpzP2Y3NmYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gSGFzdFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290fSBIYXN0Um9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Sb290fSBNZGFzdFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBDb2RlIHNob3cgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYHJvb3RgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7TWRhc3RSb290fSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7SGFzdFBhcmVudHN9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3Qoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtIYXN0Um9vdH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IHN0YXRlLndyYXAoc3RhdGUuYWxsKG5vZGUpKX1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiJdLCJuYW1lcyI6WyJyb290Iiwic3RhdGUiLCJub2RlIiwicmVzdWx0IiwidHlwZSIsImNoaWxkcmVuIiwid3JhcCIsImFsbCIsInBhdGNoIiwiYXBwbHlEYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/root.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/strong.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/strong.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ strong: () => (/* binding */ strong)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function strong(state, node) {\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"strong\",\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvc3Ryb25nLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztDQUlDLEdBRUQsbURBQW1EO0FBQ25EO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ00sU0FBU0EsT0FBT0MsS0FBSyxFQUFFQyxJQUFJO0lBQ2hDLG9CQUFvQixHQUNwQixNQUFNQyxTQUFTO1FBQ2JDLE1BQU07UUFDTkMsU0FBUztRQUNUQyxZQUFZLENBQUM7UUFDYkMsVUFBVU4sTUFBTU8sR0FBRyxDQUFDTjtJQUN0QjtJQUNBRCxNQUFNUSxLQUFLLENBQUNQLE1BQU1DO0lBQ2xCLE9BQU9GLE1BQU1TLFNBQVMsQ0FBQ1IsTUFBTUM7QUFDL0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3N0cm9uZy5qcz8yOTMxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuU3Ryb25nfSBTdHJvbmdcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBDb2RlIHNob3cgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYHN0cm9uZ2Agbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtTdHJvbmd9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJvbmcoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICdzdHJvbmcnLFxuICAgIHByb3BlcnRpZXM6IHt9LFxuICAgIGNoaWxkcmVuOiBzdGF0ZS5hbGwobm9kZSlcbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIl0sIm5hbWVzIjpbInN0cm9uZyIsInN0YXRlIiwibm9kZSIsInJlc3VsdCIsInR5cGUiLCJ0YWdOYW1lIiwicHJvcGVydGllcyIsImNoaWxkcmVuIiwiYWxsIiwicGF0Y2giLCJhcHBseURhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/strong.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ tableCell: () => (/* binding */ tableCell)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"td\",\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGFibGUtY2VsbC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUVELG1EQUFtRDtBQUNuRDtBQUVBOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNBLFVBQVVDLEtBQUssRUFBRUMsSUFBSTtJQUNuQywyRUFBMkU7SUFDM0UsZ0NBQWdDO0lBQ2hDLG9CQUFvQixHQUNwQixNQUFNQyxTQUFTO1FBQ2JDLE1BQU07UUFDTkMsU0FBUztRQUNUQyxZQUFZLENBQUM7UUFDYkMsVUFBVU4sTUFBTU8sR0FBRyxDQUFDTjtJQUN0QjtJQUNBRCxNQUFNUSxLQUFLLENBQUNQLE1BQU1DO0lBQ2xCLE9BQU9GLE1BQU1TLFNBQVMsQ0FBQ1IsTUFBTUM7QUFDL0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3RhYmxlLWNlbGwuanM/ZjIzMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlRhYmxlQ2VsbH0gVGFibGVDZWxsXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9zdGF0ZS5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgQ29kZSBzaG93IHJlZmVyZW5jZXMgdG8gdGhlIGFib3ZlIHR5cGVzLlxuJydcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGB0YWJsZUNlbGxgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7VGFibGVDZWxsfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFibGVDZWxsKHN0YXRlLCBub2RlKSB7XG4gIC8vIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgbm90IGNhbGxlZDogc2VlIGB0YWJsZS1yb3dgIGZvciBob3cgcm93c1xuICAvLyBhbmQgdGhlaXIgY2VsbHMgYXJlIGNvbXBpbGVkLlxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ3RkJywgLy8gQXNzdW1lIGJvZHkgY2VsbC5cbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogc3RhdGUuYWxsKG5vZGUpXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiJdLCJuYW1lcyI6WyJ0YWJsZUNlbGwiLCJzdGF0ZSIsIm5vZGUiLCJyZXN1bHQiLCJ0eXBlIiwidGFnTmFtZSIsInByb3BlcnRpZXMiLCJjaGlsZHJlbiIsImFsbCIsInBhdGNoIiwiYXBwbHlEYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ tableRow: () => (/* binding */ tableRow)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */ function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined;\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1;\n const tagName = rowIndex === 0 ? \"th\" : \"td\";\n // To do: option to use `style`?\n const align = parent && parent.type === \"table\" ? parent.align : undefined;\n const length = align ? align.length : node.children.length;\n let cellIndex = -1;\n /** @type {Array<ElementContent>} */ const cells = [];\n while(++cellIndex < length){\n // Note: can also be undefined.\n const cell = node.children[cellIndex];\n /** @type {Properties} */ const properties = {};\n const alignValue = align ? align[cellIndex] : undefined;\n if (alignValue) {\n properties.align = alignValue;\n }\n /** @type {Element} */ let result = {\n type: \"element\",\n tagName,\n properties,\n children: []\n };\n if (cell) {\n result.children = state.all(cell);\n state.patch(cell, result);\n result = state.applyData(cell, result);\n }\n cells.push(result);\n }\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"tr\",\n properties: {},\n children: state.wrap(cells, true)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGFibGUtcm93LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBRUQsbURBQW1EO0FBQ25EO0FBRUE7Ozs7Ozs7Ozs7O0NBV0MsR0FDTSxTQUFTQSxTQUFTQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsTUFBTTtJQUMxQyxNQUFNQyxXQUFXRCxTQUFTQSxPQUFPRSxRQUFRLEdBQUdDO0lBQzVDLDJDQUEyQztJQUMzQyxNQUFNQyxXQUFXSCxXQUFXQSxTQUFTSSxPQUFPLENBQUNOLFFBQVE7SUFDckQsTUFBTU8sVUFBVUYsYUFBYSxJQUFJLE9BQU87SUFDeEMsZ0NBQWdDO0lBQ2hDLE1BQU1HLFFBQVFQLFVBQVVBLE9BQU9RLElBQUksS0FBSyxVQUFVUixPQUFPTyxLQUFLLEdBQUdKO0lBQ2pFLE1BQU1NLFNBQVNGLFFBQVFBLE1BQU1FLE1BQU0sR0FBR1YsS0FBS0csUUFBUSxDQUFDTyxNQUFNO0lBQzFELElBQUlDLFlBQVksQ0FBQztJQUNqQixrQ0FBa0MsR0FDbEMsTUFBTUMsUUFBUSxFQUFFO0lBRWhCLE1BQU8sRUFBRUQsWUFBWUQsT0FBUTtRQUMzQiwrQkFBK0I7UUFDL0IsTUFBTUcsT0FBT2IsS0FBS0csUUFBUSxDQUFDUSxVQUFVO1FBQ3JDLHVCQUF1QixHQUN2QixNQUFNRyxhQUFhLENBQUM7UUFDcEIsTUFBTUMsYUFBYVAsUUFBUUEsS0FBSyxDQUFDRyxVQUFVLEdBQUdQO1FBRTlDLElBQUlXLFlBQVk7WUFDZEQsV0FBV04sS0FBSyxHQUFHTztRQUNyQjtRQUVBLG9CQUFvQixHQUNwQixJQUFJQyxTQUFTO1lBQUNQLE1BQU07WUFBV0Y7WUFBU087WUFBWVgsVUFBVSxFQUFFO1FBQUE7UUFFaEUsSUFBSVUsTUFBTTtZQUNSRyxPQUFPYixRQUFRLEdBQUdKLE1BQU1rQixHQUFHLENBQUNKO1lBQzVCZCxNQUFNbUIsS0FBSyxDQUFDTCxNQUFNRztZQUNsQkEsU0FBU2pCLE1BQU1vQixTQUFTLENBQUNOLE1BQU1HO1FBQ2pDO1FBRUFKLE1BQU1RLElBQUksQ0FBQ0o7SUFDYjtJQUVBLG9CQUFvQixHQUNwQixNQUFNQSxTQUFTO1FBQ2JQLE1BQU07UUFDTkYsU0FBUztRQUNUTyxZQUFZLENBQUM7UUFDYlgsVUFBVUosTUFBTXNCLElBQUksQ0FBQ1QsT0FBTztJQUM5QjtJQUNBYixNQUFNbUIsS0FBSyxDQUFDbEIsTUFBTWdCO0lBQ2xCLE9BQU9qQixNQUFNb0IsU0FBUyxDQUFDbkIsTUFBTWdCO0FBQy9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy90YWJsZS1yb3cuanM/M2ZmYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudENvbnRlbnR9IEVsZW1lbnRDb250ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlRhYmxlUm93fSBUYWJsZVJvd1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vc3RhdGUuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG4vLyBNYWtlIFZTIENvZGUgc2hvdyByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgdGFibGVSb3dgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7VGFibGVSb3d9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFibGVSb3coc3RhdGUsIG5vZGUsIHBhcmVudCkge1xuICBjb25zdCBzaWJsaW5ncyA9IHBhcmVudCA/IHBhcmVudC5jaGlsZHJlbiA6IHVuZGVmaW5lZFxuICAvLyBHZW5lcmF0ZSBhIGJvZHkgcm93IHdoZW4gd2l0aG91dCBwYXJlbnQuXG4gIGNvbnN0IHJvd0luZGV4ID0gc2libGluZ3MgPyBzaWJsaW5ncy5pbmRleE9mKG5vZGUpIDogMVxuICBjb25zdCB0YWdOYW1lID0gcm93SW5kZXggPT09IDAgPyAndGgnIDogJ3RkJ1xuICAvLyBUbyBkbzogb3B0aW9uIHRvIHVzZSBgc3R5bGVgP1xuICBjb25zdCBhbGlnbiA9IHBhcmVudCAmJiBwYXJlbnQudHlwZSA9PT0gJ3RhYmxlJyA/IHBhcmVudC5hbGlnbiA6IHVuZGVmaW5lZFxuICBjb25zdCBsZW5ndGggPSBhbGlnbiA/IGFsaWduLmxlbmd0aCA6IG5vZGUuY2hpbGRyZW4ubGVuZ3RoXG4gIGxldCBjZWxsSW5kZXggPSAtMVxuICAvKiogQHR5cGUge0FycmF5PEVsZW1lbnRDb250ZW50Pn0gKi9cbiAgY29uc3QgY2VsbHMgPSBbXVxuXG4gIHdoaWxlICgrK2NlbGxJbmRleCA8IGxlbmd0aCkge1xuICAgIC8vIE5vdGU6IGNhbiBhbHNvIGJlIHVuZGVmaW5lZC5cbiAgICBjb25zdCBjZWxsID0gbm9kZS5jaGlsZHJlbltjZWxsSW5kZXhdXG4gICAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB7fVxuICAgIGNvbnN0IGFsaWduVmFsdWUgPSBhbGlnbiA/IGFsaWduW2NlbGxJbmRleF0gOiB1bmRlZmluZWRcblxuICAgIGlmIChhbGlnblZhbHVlKSB7XG4gICAgICBwcm9wZXJ0aWVzLmFsaWduID0gYWxpZ25WYWx1ZVxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgICBsZXQgcmVzdWx0ID0ge3R5cGU6ICdlbGVtZW50JywgdGFnTmFtZSwgcHJvcGVydGllcywgY2hpbGRyZW46IFtdfVxuXG4gICAgaWYgKGNlbGwpIHtcbiAgICAgIHJlc3VsdC5jaGlsZHJlbiA9IHN0YXRlLmFsbChjZWxsKVxuICAgICAgc3RhdGUucGF0Y2goY2VsbCwgcmVzdWx0KVxuICAgICAgcmVzdWx0ID0gc3RhdGUuYXBwbHlEYXRhKGNlbGwsIHJlc3VsdClcbiAgICB9XG5cbiAgICBjZWxscy5wdXNoKHJlc3VsdClcbiAgfVxuXG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAndHInLFxuICAgIHByb3BlcnRpZXM6IHt9LFxuICAgIGNoaWxkcmVuOiBzdGF0ZS53cmFwKGNlbGxzLCB0cnVlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iXSwibmFtZXMiOlsidGFibGVSb3ciLCJzdGF0ZSIsIm5vZGUiLCJwYXJlbnQiLCJzaWJsaW5ncyIsImNoaWxkcmVuIiwidW5kZWZpbmVkIiwicm93SW5kZXgiLCJpbmRleE9mIiwidGFnTmFtZSIsImFsaWduIiwidHlwZSIsImxlbmd0aCIsImNlbGxJbmRleCIsImNlbGxzIiwiY2VsbCIsInByb3BlcnRpZXMiLCJhbGlnblZhbHVlIiwicmVzdWx0IiwiYWxsIiwicGF0Y2giLCJhcHBseURhdGEiLCJwdXNoIiwid3JhcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/table.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ table: () => (/* binding */ table)\n/* harmony export */ });\n/* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-position */ \"(ssr)/../../node_modules/unist-util-position/lib/index.js\");\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */ \n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function table(state, node) {\n const rows = state.all(node);\n const firstRow = rows.shift();\n /** @type {Array<Element>} */ const tableContent = [];\n if (firstRow) {\n /** @type {Element} */ const head = {\n type: \"element\",\n tagName: \"thead\",\n properties: {},\n children: state.wrap([\n firstRow\n ], true)\n };\n state.patch(node.children[0], head);\n tableContent.push(head);\n }\n if (rows.length > 0) {\n /** @type {Element} */ const body = {\n type: \"element\",\n tagName: \"tbody\",\n properties: {},\n children: state.wrap(rows, true)\n };\n const start = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointStart)(node.children[1]);\n const end = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointEnd)(node.children[node.children.length - 1]);\n if (start && end) body.position = {\n start,\n end\n };\n tableContent.push(body);\n }\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"table\",\n properties: {},\n children: state.wrap(tableContent, true)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGFibGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7OztDQUlDLEdBRXVEO0FBRXhEOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNFLE1BQU1DLEtBQUssRUFBRUMsSUFBSTtJQUMvQixNQUFNQyxPQUFPRixNQUFNRyxHQUFHLENBQUNGO0lBQ3ZCLE1BQU1HLFdBQVdGLEtBQUtHLEtBQUs7SUFDM0IsMkJBQTJCLEdBQzNCLE1BQU1DLGVBQWUsRUFBRTtJQUV2QixJQUFJRixVQUFVO1FBQ1osb0JBQW9CLEdBQ3BCLE1BQU1HLE9BQU87WUFDWEMsTUFBTTtZQUNOQyxTQUFTO1lBQ1RDLFlBQVksQ0FBQztZQUNiQyxVQUFVWCxNQUFNWSxJQUFJLENBQUM7Z0JBQUNSO2FBQVMsRUFBRTtRQUNuQztRQUNBSixNQUFNYSxLQUFLLENBQUNaLEtBQUtVLFFBQVEsQ0FBQyxFQUFFLEVBQUVKO1FBQzlCRCxhQUFhUSxJQUFJLENBQUNQO0lBQ3BCO0lBRUEsSUFBSUwsS0FBS2EsTUFBTSxHQUFHLEdBQUc7UUFDbkIsb0JBQW9CLEdBQ3BCLE1BQU1DLE9BQU87WUFDWFIsTUFBTTtZQUNOQyxTQUFTO1lBQ1RDLFlBQVksQ0FBQztZQUNiQyxVQUFVWCxNQUFNWSxJQUFJLENBQUNWLE1BQU07UUFDN0I7UUFFQSxNQUFNZSxRQUFRbkIsK0RBQVVBLENBQUNHLEtBQUtVLFFBQVEsQ0FBQyxFQUFFO1FBQ3pDLE1BQU1PLE1BQU1yQiw2REFBUUEsQ0FBQ0ksS0FBS1UsUUFBUSxDQUFDVixLQUFLVSxRQUFRLENBQUNJLE1BQU0sR0FBRyxFQUFFO1FBQzVELElBQUlFLFNBQVNDLEtBQUtGLEtBQUtHLFFBQVEsR0FBRztZQUFDRjtZQUFPQztRQUFHO1FBQzdDWixhQUFhUSxJQUFJLENBQUNFO0lBQ3BCO0lBRUEsb0JBQW9CLEdBQ3BCLE1BQU1JLFNBQVM7UUFDYlosTUFBTTtRQUNOQyxTQUFTO1FBQ1RDLFlBQVksQ0FBQztRQUNiQyxVQUFVWCxNQUFNWSxJQUFJLENBQUNOLGNBQWM7SUFDckM7SUFDQU4sTUFBTWEsS0FBSyxDQUFDWixNQUFNbUI7SUFDbEIsT0FBT3BCLE1BQU1xQixTQUFTLENBQUNwQixNQUFNbUI7QUFDL0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3RhYmxlLmpzP2YwODIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5UYWJsZX0gVGFibGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtwb2ludEVuZCwgcG9pbnRTdGFydH0gZnJvbSAndW5pc3QtdXRpbC1wb3NpdGlvbidcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGB0YWJsZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtUYWJsZX0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlKHN0YXRlLCBub2RlKSB7XG4gIGNvbnN0IHJvd3MgPSBzdGF0ZS5hbGwobm9kZSlcbiAgY29uc3QgZmlyc3RSb3cgPSByb3dzLnNoaWZ0KClcbiAgLyoqIEB0eXBlIHtBcnJheTxFbGVtZW50Pn0gKi9cbiAgY29uc3QgdGFibGVDb250ZW50ID0gW11cblxuICBpZiAoZmlyc3RSb3cpIHtcbiAgICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gICAgY29uc3QgaGVhZCA9IHtcbiAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgIHRhZ05hbWU6ICd0aGVhZCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgIGNoaWxkcmVuOiBzdGF0ZS53cmFwKFtmaXJzdFJvd10sIHRydWUpXG4gICAgfVxuICAgIHN0YXRlLnBhdGNoKG5vZGUuY2hpbGRyZW5bMF0sIGhlYWQpXG4gICAgdGFibGVDb250ZW50LnB1c2goaGVhZClcbiAgfVxuXG4gIGlmIChyb3dzLmxlbmd0aCA+IDApIHtcbiAgICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgIHRhZ05hbWU6ICd0Ym9keScsXG4gICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgIGNoaWxkcmVuOiBzdGF0ZS53cmFwKHJvd3MsIHRydWUpXG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnQgPSBwb2ludFN0YXJ0KG5vZGUuY2hpbGRyZW5bMV0pXG4gICAgY29uc3QgZW5kID0gcG9pbnRFbmQobm9kZS5jaGlsZHJlbltub2RlLmNoaWxkcmVuLmxlbmd0aCAtIDFdKVxuICAgIGlmIChzdGFydCAmJiBlbmQpIGJvZHkucG9zaXRpb24gPSB7c3RhcnQsIGVuZH1cbiAgICB0YWJsZUNvbnRlbnQucHVzaChib2R5KVxuICB9XG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICd0YWJsZScsXG4gICAgcHJvcGVydGllczoge30sXG4gICAgY2hpbGRyZW46IHN0YXRlLndyYXAodGFibGVDb250ZW50LCB0cnVlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iXSwibmFtZXMiOlsicG9pbnRFbmQiLCJwb2ludFN0YXJ0IiwidGFibGUiLCJzdGF0ZSIsIm5vZGUiLCJyb3dzIiwiYWxsIiwiZmlyc3RSb3ciLCJzaGlmdCIsInRhYmxlQ29udGVudCIsImhlYWQiLCJ0eXBlIiwidGFnTmFtZSIsInByb3BlcnRpZXMiLCJjaGlsZHJlbiIsIndyYXAiLCJwYXRjaCIsInB1c2giLCJsZW5ndGgiLCJib2R5Iiwic3RhcnQiLCJlbmQiLCJwb3NpdGlvbiIsInJlc3VsdCIsImFwcGx5RGF0YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/table.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/text.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/text.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ text: () => (/* binding */ text)\n/* harmony export */ });\n/* harmony import */ var trim_lines__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! trim-lines */ \"(ssr)/../../node_modules/trim-lines/index.js\");\n/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */ \n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastElement | HastText}\n * hast node.\n */ function text(state, node) {\n /** @type {HastText} */ const result = {\n type: \"text\",\n value: (0,trim_lines__WEBPACK_IMPORTED_MODULE_0__.trimLines)(String(node.value))\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGV4dC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7OztDQUtDLEdBRW1DO0FBRXBDOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNDLEtBQUtDLEtBQUssRUFBRUMsSUFBSTtJQUM5QixxQkFBcUIsR0FDckIsTUFBTUMsU0FBUztRQUFDQyxNQUFNO1FBQVFDLE9BQU9OLHFEQUFTQSxDQUFDTyxPQUFPSixLQUFLRyxLQUFLO0lBQUU7SUFDbEVKLE1BQU1NLEtBQUssQ0FBQ0wsTUFBTUM7SUFDbEIsT0FBT0YsTUFBTU8sU0FBUyxDQUFDTixNQUFNQztBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGV4dC5qcz8xZWI3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEhhc3RFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuVGV4dH0gSGFzdFRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuVGV4dH0gTWRhc3RUZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9zdGF0ZS5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7dHJpbUxpbmVzfSBmcm9tICd0cmltLWxpbmVzJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYHRleHRgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7TWRhc3RUZXh0fSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7SGFzdEVsZW1lbnQgfCBIYXN0VGV4dH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGV4dChzdGF0ZSwgbm9kZSkge1xuICAvKiogQHR5cGUge0hhc3RUZXh0fSAqL1xuICBjb25zdCByZXN1bHQgPSB7dHlwZTogJ3RleHQnLCB2YWx1ZTogdHJpbUxpbmVzKFN0cmluZyhub2RlLnZhbHVlKSl9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iXSwibmFtZXMiOlsidHJpbUxpbmVzIiwidGV4dCIsInN0YXRlIiwibm9kZSIsInJlc3VsdCIsInR5cGUiLCJ2YWx1ZSIsIlN0cmluZyIsInBhdGNoIiwiYXBwbHlEYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/text.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js ***!
- \****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)\n/* harmony export */ });\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */ function thematicBreak(state, node) {\n /** @type {Element} */ const result = {\n type: \"element\",\n tagName: \"hr\",\n properties: {},\n children: []\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGhlbWF0aWMtYnJlYWsuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0NBSUMsR0FFRCxtREFBbUQ7QUFDbkQ7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQSxjQUFjQyxLQUFLLEVBQUVDLElBQUk7SUFDdkMsb0JBQW9CLEdBQ3BCLE1BQU1DLFNBQVM7UUFDYkMsTUFBTTtRQUNOQyxTQUFTO1FBQ1RDLFlBQVksQ0FBQztRQUNiQyxVQUFVLEVBQUU7SUFDZDtJQUNBTixNQUFNTyxLQUFLLENBQUNOLE1BQU1DO0lBQ2xCLE9BQU9GLE1BQU1RLFNBQVMsQ0FBQ1AsTUFBTUM7QUFDL0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3RoZW1hdGljLWJyZWFrLmpzPzIxODEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5UaGVtYXRpY0JyZWFrfSBUaGVtYXRpY0JyZWFrXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9zdGF0ZS5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgQ29kZSBzaG93IHJlZmVyZW5jZXMgdG8gdGhlIGFib3ZlIHR5cGVzLlxuJydcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGB0aGVtYXRpY0JyZWFrYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge1RoZW1hdGljQnJlYWt9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aGVtYXRpY0JyZWFrKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnaHInLFxuICAgIHByb3BlcnRpZXM6IHt9LFxuICAgIGNoaWxkcmVuOiBbXVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iXSwibmFtZXMiOlsidGhlbWF0aWNCcmVhayIsInN0YXRlIiwibm9kZSIsInJlc3VsdCIsInR5cGUiLCJ0YWdOYW1lIiwicHJvcGVydGllcyIsImNoaWxkcmVuIiwicGF0Y2giLCJhcHBseURhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/index.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/index.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ toHast: () => (/* binding */ toHast)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var _footer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./footer.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/footer.js\");\n/* harmony import */ var _state_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/state.js\");\n/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */ \n\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */ function toHast(tree, options) {\n const state = (0,_state_js__WEBPACK_IMPORTED_MODULE_0__.createState)(tree, options);\n const node = state.one(tree, undefined);\n const foot = (0,_footer_js__WEBPACK_IMPORTED_MODULE_1__.footer)(state);\n /** @type {HastNodes} */ const result = Array.isArray(node) ? {\n type: \"root\",\n children: node\n } : node || {\n type: \"root\",\n children: []\n };\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(\"children\" in result);\n result.children.push({\n type: \"text\",\n value: \"\\n\"\n }, foot);\n }\n return result;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0NBSUMsR0FFa0M7QUFDRDtBQUNJO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEVDLEdBQ00sU0FBU0ksT0FBT0MsSUFBSSxFQUFFQyxPQUFPO0lBQ2xDLE1BQU1DLFFBQVFKLHNEQUFXQSxDQUFDRSxNQUFNQztJQUNoQyxNQUFNRSxPQUFPRCxNQUFNRSxHQUFHLENBQUNKLE1BQU1LO0lBQzdCLE1BQU1DLE9BQU9ULGtEQUFNQSxDQUFDSztJQUNwQixzQkFBc0IsR0FDdEIsTUFBTUssU0FBU0MsTUFBTUMsT0FBTyxDQUFDTixRQUN6QjtRQUFDTyxNQUFNO1FBQVFDLFVBQVVSO0lBQUksSUFDN0JBLFFBQVE7UUFBQ08sTUFBTTtRQUFRQyxVQUFVLEVBQUU7SUFBQTtJQUV2QyxJQUFJTCxNQUFNO1FBQ1IsNkRBQTZEO1FBQzdELFdBQVc7UUFDWCxnQ0FBZ0M7UUFDaENWLDBDQUFNQSxDQUFDLGNBQWNXO1FBQ3JCQSxPQUFPSSxRQUFRLENBQUNDLElBQUksQ0FBQztZQUFDRixNQUFNO1lBQVFHLE9BQU87UUFBSSxHQUFHUDtJQUNwRDtJQUVBLE9BQU9DO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2luZGV4LmpzP2YzOTkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IEhhc3ROb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Ob2Rlc30gTWRhc3ROb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zdGF0ZS5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtmb290ZXJ9IGZyb20gJy4vZm9vdGVyLmpzJ1xuaW1wb3J0IHtjcmVhdGVTdGF0ZX0gZnJvbSAnLi9zdGF0ZS5qcydcblxuLyoqXG4gKiBUcmFuc2Zvcm0gbWRhc3QgdG8gaGFzdC5cbiAqXG4gKiAjIyMjIyBOb3Rlc1xuICpcbiAqICMjIyMjIyBIVE1MXG4gKlxuICogUmF3IEhUTUwgaXMgYXZhaWxhYmxlIGluIG1kYXN0IGFzIGBodG1sYCBub2RlcyBhbmQgY2FuIGJlIGVtYmVkZGVkIGluIGhhc3RcbiAqIGFzIHNlbWlzdGFuZGFyZCBgcmF3YCBub2Rlcy5cbiAqIE1vc3QgdXRpbGl0aWVzIGlnbm9yZSBgcmF3YCBub2RlcyBidXQgdHdvIG5vdGFibGUgb25lcyBkb27igJl0OlxuICpcbiAqICogICBgaGFzdC11dGlsLXRvLWh0bWxgIGFsc28gaGFzIGFuIG9wdGlvbiBgYWxsb3dEYW5nZXJvdXNIdG1sYCB3aGljaCB3aWxsXG4gKiAgICAgb3V0cHV0IHRoZSByYXcgSFRNTC5cbiAqICAgICBUaGlzIGlzIHR5cGljYWxseSBkaXNjb3VyYWdlZCBhcyBub3RlZCBieSB0aGUgb3B0aW9uIG5hbWUgYnV0IGlzIHVzZWZ1bFxuICogICAgIGlmIHlvdSBjb21wbGV0ZWx5IHRydXN0IGF1dGhvcnNcbiAqICogICBgaGFzdC11dGlsLXJhd2AgY2FuIGhhbmRsZSB0aGUgcmF3IGVtYmVkZGVkIEhUTUwgc3RyaW5ncyBieSBwYXJzaW5nIHRoZW1cbiAqICAgICBpbnRvIHN0YW5kYXJkIGhhc3Qgbm9kZXMgKGBlbGVtZW50YCwgYHRleHRgLCBldGMpLlxuICogICAgIFRoaXMgaXMgYSBoZWF2eSB0YXNrIGFzIGl0IG5lZWRzIGEgZnVsbCBIVE1MIHBhcnNlciwgYnV0IGl0IGlzIHRoZSBvbmx5XG4gKiAgICAgd2F5IHRvIHN1cHBvcnQgdW50cnVzdGVkIGNvbnRlbnRcbiAqXG4gKiAjIyMjIyMgRm9vdG5vdGVzXG4gKlxuICogTWFueSBvcHRpb25zIHN1cHBvcnRlZCBoZXJlIHJlbGF0ZSB0byBmb290bm90ZXMuXG4gKiBGb290bm90ZXMgYXJlIG5vdCBzcGVjaWZpZWQgYnkgQ29tbW9uTWFyaywgd2hpY2ggd2UgZm9sbG93IGJ5IGRlZmF1bHQuXG4gKiBUaGV5IGFyZSBzdXBwb3J0ZWQgYnkgR2l0SHViLCBzbyBmb290bm90ZXMgY2FuIGJlIGVuYWJsZWQgaW4gbWFya2Rvd24gd2l0aFxuICogYG1kYXN0LXV0aWwtZ2ZtYC5cbiAqXG4gKiBUaGUgb3B0aW9ucyBgZm9vdG5vdGVCYWNrTGFiZWxgIGFuZCBgZm9vdG5vdGVMYWJlbGAgZGVmaW5lIG5hdHVyYWwgbGFuZ3VhZ2VcbiAqIHRoYXQgZXhwbGFpbnMgZm9vdG5vdGVzLCB3aGljaCBpcyBoaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMgYnV0IHNob3duIHRvXG4gKiBhc3Npc3RpdmUgdGVjaG5vbG9neS5cbiAqIFdoZW4geW91ciBwYWdlIGlzIG5vdCBpbiBFbmdsaXNoLCB5b3UgbXVzdCBkZWZpbmUgdHJhbnNsYXRlZCB2YWx1ZXMuXG4gKlxuICogQmFjayByZWZlcmVuY2VzIHVzZSBBUklBIGF0dHJpYnV0ZXMsIGJ1dCB0aGUgc2VjdGlvbiBsYWJlbCBpdHNlbGYgdXNlcyBhXG4gKiBoZWFkaW5nIHRoYXQgaXMgaGlkZGVuIHdpdGggYW4gYHNyLW9ubHlgIGNsYXNzLlxuICogVG8gc2hvdyBpdCB0byBzaWdodGVkIHVzZXJzLCBkZWZpbmUgZGlmZmVyZW50IGF0dHJpYnV0ZXMgaW5cbiAqIGBmb290bm90ZUxhYmVsUHJvcGVydGllc2AuXG4gKlxuICogIyMjIyMjIENsb2JiZXJpbmdcbiAqXG4gKiBGb290bm90ZXMgaW50cm9kdWNlcyBhIHByb2JsZW0sIGFzIGl0IGxpbmtzIGZvb3Rub3RlIGNhbGxzIHRvIGZvb3Rub3RlXG4gKiBkZWZpbml0aW9ucyBvbiB0aGUgcGFnZSB0aHJvdWdoIGBpZGAgYXR0cmlidXRlcyBnZW5lcmF0ZWQgZnJvbSB1c2VyIGNvbnRlbnQsXG4gKiB3aGljaCByZXN1bHRzIGluIERPTSBjbG9iYmVyaW5nLlxuICpcbiAqIERPTSBjbG9iYmVyaW5nIGlzIHRoaXM6XG4gKlxuICogYGBgaHRtbFxuICogPHAgaWQ9eD48L3A+XG4gKiA8c2NyaXB0PmFsZXJ0KHgpIC8vIGB4YCBub3cgcmVmZXJzIHRvIHRoZSBET00gYHAjeGAgZWxlbWVudDwvc2NyaXB0PlxuICogYGBgXG4gKlxuICogRWxlbWVudHMgYnkgdGhlaXIgSUQgYXJlIG1hZGUgYXZhaWxhYmxlIGJ5IGJyb3dzZXJzIG9uIHRoZSBgd2luZG93YCBvYmplY3QsXG4gKiB3aGljaCBpcyBhIHNlY3VyaXR5IHJpc2suXG4gKiBVc2luZyBhIHByZWZpeCBzb2x2ZXMgdGhpcyBwcm9ibGVtLlxuICpcbiAqIE1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIGhhbmRsZSBjbG9iYmVyaW5nIGFuZCB0aGUgcHJlZml4IGlzIGV4cGxhaW5lZCBpblxuICogRXhhbXBsZTogaGVhZGluZ3MgKERPTSBjbG9iYmVyaW5nKSBpbiBgcmVoeXBlLXNhbml0aXplYC5cbiAqXG4gKiAjIyMjIyMgVW5rbm93biBub2Rlc1xuICpcbiAqIFVua25vd24gbm9kZXMgYXJlIG5vZGVzIHdpdGggYSB0eXBlIHRoYXQgaXNu4oCZdCBpbiBgaGFuZGxlcnNgIG9yIGBwYXNzVGhyb3VnaGAuXG4gKiBUaGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgdW5rbm93biBub2RlcyBpczpcbiAqXG4gKiAqICAgd2hlbiB0aGUgbm9kZSBoYXMgYSBgdmFsdWVgIChhbmQgZG9lc27igJl0IGhhdmUgYGRhdGEuaE5hbWVgLFxuICogICAgIGBkYXRhLmhQcm9wZXJ0aWVzYCwgb3IgYGRhdGEuaENoaWxkcmVuYCwgc2VlIGxhdGVyKSwgY3JlYXRlIGEgaGFzdCBgdGV4dGBcbiAqICAgICBub2RlXG4gKiAqICAgb3RoZXJ3aXNlLCBjcmVhdGUgYSBgPGRpdj5gIGVsZW1lbnQgKHdoaWNoIGNvdWxkIGJlIGNoYW5nZWQgd2l0aFxuICogICAgIGBkYXRhLmhOYW1lYCksIHdpdGggaXRzIGNoaWxkcmVuIG1hcHBlZCBmcm9tIG1kYXN0IHRvIGhhc3QgYXMgd2VsbFxuICpcbiAqIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQgYnkgcGFzc2luZyBhbiBgdW5rbm93bkhhbmRsZXJgLlxuICpcbiAqIEBwYXJhbSB7TWRhc3ROb2Rlc30gdHJlZVxuICogICBtZGFzdCB0cmVlLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtIYXN0Tm9kZXN9XG4gKiAgIGhhc3QgdHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGFzdCh0cmVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHN0YXRlID0gY3JlYXRlU3RhdGUodHJlZSwgb3B0aW9ucylcbiAgY29uc3Qgbm9kZSA9IHN0YXRlLm9uZSh0cmVlLCB1bmRlZmluZWQpXG4gIGNvbnN0IGZvb3QgPSBmb290ZXIoc3RhdGUpXG4gIC8qKiBAdHlwZSB7SGFzdE5vZGVzfSAqL1xuICBjb25zdCByZXN1bHQgPSBBcnJheS5pc0FycmF5KG5vZGUpXG4gICAgPyB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogbm9kZX1cbiAgICA6IG5vZGUgfHwge3R5cGU6ICdyb290JywgY2hpbGRyZW46IFtdfVxuXG4gIGlmIChmb290KSB7XG4gICAgLy8gSWYgdGhlcmXigJlzIGEgZm9vdGVyLCB0aGVyZSB3ZXJlIGRlZmluaXRpb25zLCBtZWFuaW5nIGJsb2NrXG4gICAgLy8gY29udGVudC5cbiAgICAvLyBTbyBgcmVzdWx0YCBpcyBhIHBhcmVudCBub2RlLlxuICAgIGFzc2VydCgnY2hpbGRyZW4nIGluIHJlc3VsdClcbiAgICByZXN1bHQuY2hpbGRyZW4ucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9LCBmb290KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbIm9rIiwiYXNzZXJ0IiwiZm9vdGVyIiwiY3JlYXRlU3RhdGUiLCJ0b0hhc3QiLCJ0cmVlIiwib3B0aW9ucyIsInN0YXRlIiwibm9kZSIsIm9uZSIsInVuZGVmaW5lZCIsImZvb3QiLCJyZXN1bHQiLCJBcnJheSIsImlzQXJyYXkiLCJ0eXBlIiwiY2hpbGRyZW4iLCJwdXNoIiwidmFsdWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/revert.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/revert.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ revert: () => (/* binding */ revert)\n/* harmony export */ });\n/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */ // Make VS Code show references to the above types.\n\"\";\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract<Nodes, Reference>} node\n * Reference node (image, link).\n * @returns {Array<ElementContent>}\n * hast content.\n */ function revert(state, node) {\n const subtype = node.referenceType;\n let suffix = \"]\";\n if (subtype === \"collapsed\") {\n suffix += \"[]\";\n } else if (subtype === \"full\") {\n suffix += \"[\" + (node.label || node.identifier) + \"]\";\n }\n if (node.type === \"imageReference\") {\n return [\n {\n type: \"text\",\n value: \"![\" + node.alt + suffix\n }\n ];\n }\n const contents = state.all(node);\n const head = contents[0];\n if (head && head.type === \"text\") {\n head.value = \"[\" + head.value;\n } else {\n contents.unshift({\n type: \"text\",\n value: \"[\"\n });\n }\n const tail = contents[contents.length - 1];\n if (tail && tail.type === \"text\") {\n tail.value += suffix;\n } else {\n contents.push({\n type: \"text\",\n value: suffix\n });\n }\n return contents;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvcmV2ZXJ0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBRUQsbURBQW1EO0FBQ25EO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ00sU0FBU0EsT0FBT0MsS0FBSyxFQUFFQyxJQUFJO0lBQ2hDLE1BQU1DLFVBQVVELEtBQUtFLGFBQWE7SUFDbEMsSUFBSUMsU0FBUztJQUViLElBQUlGLFlBQVksYUFBYTtRQUMzQkUsVUFBVTtJQUNaLE9BQU8sSUFBSUYsWUFBWSxRQUFRO1FBQzdCRSxVQUFVLE1BQU9ILENBQUFBLEtBQUtJLEtBQUssSUFBSUosS0FBS0ssVUFBVSxJQUFJO0lBQ3BEO0lBRUEsSUFBSUwsS0FBS00sSUFBSSxLQUFLLGtCQUFrQjtRQUNsQyxPQUFPO1lBQUM7Z0JBQUNBLE1BQU07Z0JBQVFDLE9BQU8sT0FBT1AsS0FBS1EsR0FBRyxHQUFHTDtZQUFNO1NBQUU7SUFDMUQ7SUFFQSxNQUFNTSxXQUFXVixNQUFNVyxHQUFHLENBQUNWO0lBQzNCLE1BQU1XLE9BQU9GLFFBQVEsQ0FBQyxFQUFFO0lBRXhCLElBQUlFLFFBQVFBLEtBQUtMLElBQUksS0FBSyxRQUFRO1FBQ2hDSyxLQUFLSixLQUFLLEdBQUcsTUFBTUksS0FBS0osS0FBSztJQUMvQixPQUFPO1FBQ0xFLFNBQVNHLE9BQU8sQ0FBQztZQUFDTixNQUFNO1lBQVFDLE9BQU87UUFBRztJQUM1QztJQUVBLE1BQU1NLE9BQU9KLFFBQVEsQ0FBQ0EsU0FBU0ssTUFBTSxHQUFHLEVBQUU7SUFFMUMsSUFBSUQsUUFBUUEsS0FBS1AsSUFBSSxLQUFLLFFBQVE7UUFDaENPLEtBQUtOLEtBQUssSUFBSUo7SUFDaEIsT0FBTztRQUNMTSxTQUFTTSxJQUFJLENBQUM7WUFBQ1QsTUFBTTtZQUFRQyxPQUFPSjtRQUFNO0lBQzVDO0lBRUEsT0FBT007QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvcmV2ZXJ0LmpzPzE5ZGIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudENvbnRlbnR9IEVsZW1lbnRDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUmVmZXJlbmNlfSBSZWZlcmVuY2VcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3N0YXRlLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBDb2RlIHNob3cgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFJldHVybiB0aGUgY29udGVudCBvZiBhIHJlZmVyZW5jZSB3aXRob3V0IGRlZmluaXRpb24gYXMgcGxhaW4gdGV4dC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0V4dHJhY3Q8Tm9kZXMsIFJlZmVyZW5jZT59IG5vZGVcbiAqICAgUmVmZXJlbmNlIG5vZGUgKGltYWdlLCBsaW5rKS5cbiAqIEByZXR1cm5zIHtBcnJheTxFbGVtZW50Q29udGVudD59XG4gKiAgIGhhc3QgY29udGVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldmVydChzdGF0ZSwgbm9kZSkge1xuICBjb25zdCBzdWJ0eXBlID0gbm9kZS5yZWZlcmVuY2VUeXBlXG4gIGxldCBzdWZmaXggPSAnXSdcblxuICBpZiAoc3VidHlwZSA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICBzdWZmaXggKz0gJ1tdJ1xuICB9IGVsc2UgaWYgKHN1YnR5cGUgPT09ICdmdWxsJykge1xuICAgIHN1ZmZpeCArPSAnWycgKyAobm9kZS5sYWJlbCB8fCBub2RlLmlkZW50aWZpZXIpICsgJ10nXG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSAnaW1hZ2VSZWZlcmVuY2UnKSB7XG4gICAgcmV0dXJuIFt7dHlwZTogJ3RleHQnLCB2YWx1ZTogJyFbJyArIG5vZGUuYWx0ICsgc3VmZml4fV1cbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnRzID0gc3RhdGUuYWxsKG5vZGUpXG4gIGNvbnN0IGhlYWQgPSBjb250ZW50c1swXVxuXG4gIGlmIChoZWFkICYmIGhlYWQudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgaGVhZC52YWx1ZSA9ICdbJyArIGhlYWQudmFsdWVcbiAgfSBlbHNlIHtcbiAgICBjb250ZW50cy51bnNoaWZ0KHt0eXBlOiAndGV4dCcsIHZhbHVlOiAnWyd9KVxuICB9XG5cbiAgY29uc3QgdGFpbCA9IGNvbnRlbnRzW2NvbnRlbnRzLmxlbmd0aCAtIDFdXG5cbiAgaWYgKHRhaWwgJiYgdGFpbC50eXBlID09PSAndGV4dCcpIHtcbiAgICB0YWlsLnZhbHVlICs9IHN1ZmZpeFxuICB9IGVsc2Uge1xuICAgIGNvbnRlbnRzLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6IHN1ZmZpeH0pXG4gIH1cblxuICByZXR1cm4gY29udGVudHNcbn1cbiJdLCJuYW1lcyI6WyJyZXZlcnQiLCJzdGF0ZSIsIm5vZGUiLCJzdWJ0eXBlIiwicmVmZXJlbmNlVHlwZSIsInN1ZmZpeCIsImxhYmVsIiwiaWRlbnRpZmllciIsInR5cGUiLCJ2YWx1ZSIsImFsdCIsImNvbnRlbnRzIiwiYWxsIiwiaGVhZCIsInVuc2hpZnQiLCJ0YWlsIiwibGVuZ3RoIiwicHVzaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/revert.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-hast/lib/state.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/mdast-util-to-hast/lib/state.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createState: () => (/* binding */ createState),\n/* harmony export */ wrap: () => (/* binding */ wrap)\n/* harmony export */ });\n/* harmony import */ var _ungap_structured_clone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ungap/structured-clone */ \"(ssr)/../../node_modules/@ungap/structured-clone/esm/index.js\");\n/* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! unist-util-visit */ \"(ssr)/../../node_modules/unist-util-visit/lib/index.js\");\n/* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! unist-util-position */ \"(ssr)/../../node_modules/unist-util-position/lib/index.js\");\n/* harmony import */ var _handlers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./handlers/index.js */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/handlers/index.js\");\n/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */ /**\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | undefined} parent\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n * Handle nodes.\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree (default:\n * `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` property on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > 👉 **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n * Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */ \n\n\n\nconst own = {}.hasOwnProperty;\n/** @type {Options} */ const emptyOptions = {};\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */ function createState(tree, options) {\n const settings = options || emptyOptions;\n /** @type {Map<string, MdastDefinition>} */ const definitionById = new Map();\n /** @type {Map<string, MdastFootnoteDefinition>} */ const footnoteById = new Map();\n /** @type {Map<string, number>} */ const footnoteCounts = new Map();\n /** @type {Handlers} */ // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {\n ..._handlers_index_js__WEBPACK_IMPORTED_MODULE_1__.handlers,\n ...settings.handlers\n };\n /** @type {State} */ const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n };\n (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_2__.visit)(tree, function(node) {\n if (node.type === \"definition\" || node.type === \"footnoteDefinition\") {\n const map = node.type === \"definition\" ? definitionById : footnoteById;\n const id = String(node.identifier).toUpperCase();\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node);\n }\n }\n });\n return state;\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * Resulting hast node.\n */ function one(node, parent) {\n const type = node.type;\n const handle = state.handlers[type];\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent);\n }\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if (\"children\" in node) {\n const { children, ...shallow } = node;\n const result = (0,_ungap_structured_clone__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(shallow);\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node);\n // @ts-expect-error: TS doesn’t understand…\n return result;\n }\n // @ts-expect-error: it’s custom.\n return (0,_ungap_structured_clone__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node);\n }\n const unknown = state.options.unknownHandler || defaultUnknownHandler;\n return unknown(state, node, parent);\n }\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */ function all(parent) {\n /** @type {Array<HastElementContent>} */ const values = [];\n if (\"children\" in parent) {\n const nodes = parent.children;\n let index = -1;\n while(++index < nodes.length){\n const result = state.one(nodes[index], parent);\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === \"break\") {\n if (!Array.isArray(result) && result.type === \"text\") {\n result.value = trimMarkdownSpaceStart(result.value);\n }\n if (!Array.isArray(result) && result.type === \"element\") {\n const head = result.children[0];\n if (head && head.type === \"text\") {\n head.value = trimMarkdownSpaceStart(head.value);\n }\n }\n }\n if (Array.isArray(result)) {\n values.push(...result);\n } else {\n values.push(result);\n }\n }\n }\n }\n return values;\n }\n}\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */ function patch(from, to) {\n if (from.position) to.position = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_3__.position)(from);\n}\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */ function applyData(from, to) {\n /** @type {HastElement | Type} */ let result = to;\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName;\n const hChildren = from.data.hChildren;\n const hProperties = from.data.hProperties;\n if (typeof hName === \"string\") {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === \"element\") {\n result.tagName = hName;\n } else {\n /** @type {Array<HastElementContent>} */ // @ts-expect-error: assume no doctypes in `root`.\n const children = \"children\" in result ? result.children : [\n result\n ];\n result = {\n type: \"element\",\n tagName: hName,\n properties: {},\n children\n };\n }\n }\n if (result.type === \"element\" && hProperties) {\n Object.assign(result.properties, (0,_ungap_structured_clone__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(hProperties));\n }\n if (\"children\" in result && result.children && hChildren !== null && hChildren !== undefined) {\n result.children = hChildren;\n }\n }\n return result;\n}\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */ function defaultUnknownHandler(state, node) {\n const data = node.data || {};\n /** @type {HastElement | HastText} */ const result = \"value\" in node && !(own.call(data, \"hProperties\") || own.call(data, \"hChildren\")) ? {\n type: \"text\",\n value: node.value\n } : {\n type: \"element\",\n tagName: \"div\",\n properties: {},\n children: state.all(node)\n };\n state.patch(node, result);\n return state.applyData(node, result);\n}\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n * Wrapped nodes.\n */ function wrap(nodes, loose) {\n /** @type {Array<HastText | Type>} */ const result = [];\n let index = -1;\n if (loose) {\n result.push({\n type: \"text\",\n value: \"\\n\"\n });\n }\n while(++index < nodes.length){\n if (index) result.push({\n type: \"text\",\n value: \"\\n\"\n });\n result.push(nodes[index]);\n }\n if (loose && nodes.length > 0) {\n result.push({\n type: \"text\",\n value: \"\\n\"\n });\n }\n return result;\n}\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */ function trimMarkdownSpaceStart(value) {\n let index = 0;\n let code = value.charCodeAt(index);\n while(code === 9 || code === 32){\n index++;\n code = value.charCodeAt(index);\n }\n return value.slice(index);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvc3RhdGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXlKQyxHQUVvRDtBQUNmO0FBQ007QUFDbUI7QUFFL0QsTUFBTUssTUFBTSxDQUFDLEVBQUVDLGNBQWM7QUFFN0Isb0JBQW9CLEdBQ3BCLE1BQU1DLGVBQWUsQ0FBQztBQUV0Qjs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQyxZQUFZQyxJQUFJLEVBQUVDLE9BQU87SUFDdkMsTUFBTUMsV0FBV0QsV0FBV0g7SUFDNUIseUNBQXlDLEdBQ3pDLE1BQU1LLGlCQUFpQixJQUFJQztJQUMzQixpREFBaUQsR0FDakQsTUFBTUMsZUFBZSxJQUFJRDtJQUN6QixnQ0FBZ0MsR0FDaEMsTUFBTUUsaUJBQWlCLElBQUlGO0lBQzNCLHFCQUFxQixHQUNyQixxREFBcUQ7SUFDckQsZ0JBQWdCO0lBQ2hCLE1BQU1WLFdBQVc7UUFBQyxHQUFHQyx3REFBZTtRQUFFLEdBQUdPLFNBQVNSLFFBQVE7SUFBQTtJQUUxRCxrQkFBa0IsR0FDbEIsTUFBTWEsUUFBUTtRQUNaQztRQUNBQztRQUNBTjtRQUNBRTtRQUNBQztRQUNBSSxlQUFlLEVBQUU7UUFDakJoQjtRQUNBaUI7UUFDQVYsU0FBU0M7UUFDVFU7UUFDQUM7SUFDRjtJQUVBckIsdURBQUtBLENBQUNRLE1BQU0sU0FBVWMsSUFBSTtRQUN4QixJQUFJQSxLQUFLQyxJQUFJLEtBQUssZ0JBQWdCRCxLQUFLQyxJQUFJLEtBQUssc0JBQXNCO1lBQ3BFLE1BQU1DLE1BQU1G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LCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL3N0YXRlLmpzP2JkMGYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gSGFzdEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50Q29udGVudH0gSGFzdEVsZW1lbnRDb250ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IEhhc3ROb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlByb3BlcnRpZXN9IEhhc3RQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IEhhc3RSb290Q29udGVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlRleHR9IEhhc3RUZXh0XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5EZWZpbml0aW9ufSBNZGFzdERlZmluaXRpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuRm9vdG5vdGVEZWZpbml0aW9ufSBNZGFzdEZvb3Rub3RlRGVmaW5pdGlvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Ob2Rlc30gTWRhc3ROb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnRzfSBNZGFzdFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZGaWxlfSBWRmlsZVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vZm9vdGVyLmpzJykuRm9vdG5vdGVCYWNrQ29udGVudFRlbXBsYXRlfSBGb290bm90ZUJhY2tDb250ZW50VGVtcGxhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vZm9vdGVyLmpzJykuRm9vdG5vdGVCYWNrTGFiZWxUZW1wbGF0ZX0gRm9vdG5vdGVCYWNrTGFiZWxUZW1wbGF0ZVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIEhhbmRsZXJcbiAqICAgSGFuZGxlIGEgbm9kZS5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7YW55fSBub2RlXG4gKiAgIG1kYXN0IG5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtNZGFzdFBhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHJldHVybnMge0FycmF5PEhhc3RFbGVtZW50Q29udGVudD4gfCBIYXN0RWxlbWVudENvbnRlbnQgfCB1bmRlZmluZWR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqXG4gKiBAdHlwZWRlZiB7UGFydGlhbDxSZWNvcmQ8TWRhc3ROb2Rlc1sndHlwZSddLCBIYW5kbGVyPj59IEhhbmRsZXJzXG4gKiAgIEhhbmRsZSBub2Rlcy5cbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0h0bWw9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gcGVyc2lzdCByYXcgSFRNTCBpbiBtYXJrZG93biBpbiB0aGUgaGFzdCB0cmVlIChkZWZhdWx0OlxuICogICBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Nsb2JiZXJQcmVmaXg9J3VzZXItY29udGVudC0nXVxuICogICBQcmVmaXggdG8gdXNlIGJlZm9yZSB0aGUgYGlkYCBwcm9wZXJ0eSBvbiBmb290bm90ZXMgdG8gcHJldmVudCB0aGVtIGZyb21cbiAqICAgKmNsb2JiZXJpbmcqIChkZWZhdWx0OiBgJ3VzZXItY29udGVudC0nYCkuXG4gKlxuICogICBQYXNzIGAnJ2AgZm9yIHRydXN0ZWQgbWFya2Rvd24gYW5kIHdoZW4geW91IGFyZSBjYXJlZnVsIHdpdGhcbiAqICAgcG9seWZpbGxpbmcuXG4gKiAgIFlvdSBjb3VsZCBwYXNzIGEgZGlmZmVyZW50IHByZWZpeC5cbiAqXG4gKiAgIERPTSBjbG9iYmVyaW5nIGlzIHRoaXM6XG4gKlxuICogICBgYGBodG1sXG4gKiAgIDxwIGlkPVwieFwiPjwvcD5cbiAqICAgPHNjcmlwdD5hbGVydCh4KSAvLyBgeGAgbm93IHJlZmVycyB0byB0aGUgYHAjeGAgRE9NIGVsZW1lbnQ8L3NjcmlwdD5cbiAqICAgYGBgXG4gKlxuICogICBUaGUgYWJvdmUgZXhhbXBsZSBzaG93cyB0aGF0IGVsZW1lbnRzIGFyZSBtYWRlIGF2YWlsYWJsZSBieSBicm93c2VycywgYnlcbiAqICAgdGhlaXIgSUQsIG9uIHRoZSBgd2luZG93YCBvYmplY3QuXG4gKiAgIFRoaXMgaXMgYSBzZWN1cml0eSByaXNrIGJlY2F1c2UgeW91IG1pZ2h0IGJlIGV4cGVjdGluZyBzb21lIG90aGVyIHZhcmlhYmxlXG4gKiAgIGF0IHRoYXQgcGxhY2UuXG4gKiAgIEl0IGNhbiBhbHNvIGJyZWFrIHBvbHlmaWxscy5cbiAqICAgVXNpbmcgYSBwcmVmaXggc29sdmVzIHRoZXNlIHByb2JsZW1zLlxuICogQHByb3BlcnR5IHtWRmlsZSB8IG51bGwgfCB1bmRlZmluZWR9IFtmaWxlXVxuICogICBDb3JyZXNwb25kaW5nIHZpcnR1YWwgZmlsZSByZXByZXNlbnRpbmcgdGhlIGlucHV0IGRvY3VtZW50IChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge0Zvb3Rub3RlQmFja0NvbnRlbnRUZW1wbGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtmb290bm90ZUJhY2tDb250ZW50XVxuICogICBDb250ZW50IG9mIHRoZSBiYWNrcmVmZXJlbmNlIGJhY2sgdG8gcmVmZXJlbmNlcyAoZGVmYXVsdDogYGRlZmF1bHRGb290bm90ZUJhY2tDb250ZW50YCkuXG4gKlxuICogICBUaGUgZGVmYXVsdCB2YWx1ZSBpczpcbiAqXG4gKiAgIGBgYGpzXG4gKiAgIGZ1bmN0aW9uIGRlZmF1bHRGb290bm90ZUJhY2tDb250ZW50KF8sIHJlcmVmZXJlbmNlSW5kZXgpIHtcbiAqICAgICBjb25zdCByZXN1bHQgPSBbe3R5cGU6ICd0ZXh0JywgdmFsdWU6ICfihqknfV1cbiAqXG4gKiAgICAgaWYgKHJlcmVmZXJlbmNlSW5kZXggPiAxKSB7XG4gKiAgICAgICByZXN1bHQucHVzaCh7XG4gKiAgICAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAqICAgICAgICAgdGFnTmFtZTogJ3N1cCcsXG4gKiAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICogICAgICAgICBjaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsIHZhbHVlOiBTdHJpbmcocmVyZWZlcmVuY2VJbmRleCl9XVxuICogICAgICAgfSlcbiAqICAgICB9XG4gKlxuICogICAgIHJldHVybiByZXN1bHRcbiAqICAgfVxuICogICBgYGBcbiAqXG4gKiAgIFRoaXMgY29udGVudCBpcyB1c2VkIGluIHRoZSBgYWAgZWxlbWVudCBvZiBlYWNoIGJhY2tyZWZlcmVuY2UgKHRoZSBg4oapYFxuICogICBsaW5rcykuXG4gKiBAcHJvcGVydHkge0Zvb3Rub3RlQmFja0xhYmVsVGVtcGxhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZm9vdG5vdGVCYWNrTGFiZWxdXG4gKiAgIExhYmVsIHRvIGRlc2NyaWJlIHRoZSBiYWNrcmVmZXJlbmNlIGJhY2sgdG8gcmVmZXJlbmNlcyAoZGVmYXVsdDpcbiAqICAgYGRlZmF1bHRGb290bm90ZUJhY2tMYWJlbGApLlxuICpcbiAqICAgVGhlIGRlZmF1bHQgdmFsdWUgaXM6XG4gKlxuICogICBgYGBqc1xuICogICBmdW5jdGlvbiBkZWZhdWx0Rm9vdG5vdGVCYWNrTGFiZWwocmVmZXJlbmNlSW5kZXgsIHJlcmVmZXJlbmNlSW5kZXgpIHtcbiAqICAgIHJldHVybiAoXG4gKiAgICAgICdCYWNrIHRvIHJlZmVyZW5jZSAnICtcbiAqICAgICAgKHJlZmVyZW5jZUluZGV4ICsgMSkgK1xuICogICAgICAocmVyZWZlcmVuY2VJbmRleCA+IDEgPyAnLScgKyByZXJlZmVyZW5jZUluZGV4IDogJycpXG4gKiAgICApXG4gKiAgIH1cbiAqICAgYGBgXG4gKlxuICogICBDaGFuZ2UgaXQgd2hlbiB0aGUgbWFya2Rvd24gaXMgbm90IGluIEVuZ2xpc2guXG4gKlxuICogICBUaGlzIGxhYmVsIGlzIHVzZWQgaW4gdGhlIGBhcmlhTGFiZWxgIHByb3BlcnR5IG9uIGVhY2ggYmFja3JlZmVyZW5jZVxuICogICAodGhlIGDihqlgIGxpbmtzKS5cbiAqICAgSXQgYWZmZWN0cyB1c2VycyBvZiBhc3Npc3RpdmUgdGVjaG5vbG9neS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Zvb3Rub3RlTGFiZWw9J0Zvb3Rub3RlcyddXG4gKiAgIFRleHR1YWwgbGFiZWwgdG8gdXNlIGZvciB0aGUgZm9vdG5vdGVzIHNlY3Rpb24gKGRlZmF1bHQ6IGAnRm9vdG5vdGVzJ2ApLlxuICpcbiAqICAgQ2hhbmdlIGl0IHdoZW4gdGhlIG1hcmtkb3duIGlzIG5vdCBpbiBFbmdsaXNoLlxuICpcbiAqICAgVGhpcyBsYWJlbCBpcyB0eXBpY2FsbHkgaGlkZGVuIHZpc3VhbGx5IChhc3N1bWluZyBhIGBzci1vbmx5YCBDU1MgY2xhc3NcbiAqICAgaXMgZGVmaW5lZCB0aGF0IGRvZXMgdGhhdCkgYW5kIHNvIGFmZmVjdHMgc2NyZWVuIHJlYWRlcnMgb25seS5cbiAqICAgSWYgeW91IGRvIGhhdmUgc3VjaCBhIGNsYXNzLCBidXQgd2FudCB0byBzaG93IHRoaXMgc2VjdGlvbiB0byBldmVyeW9uZSxcbiAqICAgcGFzcyBkaWZmZXJlbnQgcHJvcGVydGllcyB3aXRoIHRoZSBgZm9vdG5vdGVMYWJlbFByb3BlcnRpZXNgIG9wdGlvbi5cbiAqIEBwcm9wZXJ0eSB7SGFzdFByb3BlcnRpZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBbZm9vdG5vdGVMYWJlbFByb3BlcnRpZXM9e2NsYXNzTmFtZTogWydzci1vbmx5J119XVxuICogICBQcm9wZXJ0aWVzIHRvIHVzZSBvbiB0aGUgZm9vdG5vdGUgbGFiZWwgKGRlZmF1bHQ6IGB7Y2xhc3NOYW1lOlxuICogICBbJ3NyLW9ubHknXX1gKS5cbiAqXG4gKiAgIENoYW5nZSBpdCB0byBzaG93IHRoZSBsYWJlbCBhbmQgYWRkIG90aGVyIHByb3BlcnRpZXMuXG4gKlxuICogICBUaGlzIGxhYmVsIGlzIHR5cGljYWxseSBoaWRkZW4gdmlzdWFsbHkgKGFzc3VtaW5nIGFuIGBzci1vbmx5YCBDU1MgY2xhc3NcbiAqICAgaXMgZGVmaW5lZCB0aGF0IGRvZXMgdGhhdCkgYW5kIHNvIGFmZmVjdHMgc2NyZWVuIHJlYWRlcnMgb25seS5cbiAqICAgSWYgeW91IGRvIGhhdmUgc3VjaCBhIGNsYXNzLCBidXQgd2FudCB0byBzaG93IHRoaXMgc2VjdGlvbiB0byBldmVyeW9uZSxcbiAqICAgcGFzcyBhbiBlbXB0eSBzdHJpbmcuXG4gKiAgIFlvdSBjYW4gYWxzbyBhZGQgZGlmZmVyZW50IHByb3BlcnRpZXMuXG4gKlxuICogICA+IPCfkYkgKipOb3RlKio6IGBpZDogJ2Zvb3Rub3RlLWxhYmVsJ2AgaXMgYWx3YXlzIGFkZGVkLCBiZWNhdXNlIGZvb3Rub3RlXG4gKiAgID4gY2FsbHMgdXNlIGl0IHdpdGggYGFyaWEtZGVzY3JpYmVkYnlgIHRvIHByb3ZpZGUgYW4gYWNjZXNzaWJsZSBsYWJlbC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Zvb3Rub3RlTGFiZWxUYWdOYW1lPSdoMiddXG4gKiAgIEhUTUwgdGFnIG5hbWUgdG8gdXNlIGZvciB0aGUgZm9vdG5vdGUgbGFiZWwgZWxlbWVudCAoZGVmYXVsdDogYCdoMidgKS5cbiAqXG4gKiAgIENoYW5nZSBpdCB0byBtYXRjaCB5b3VyIGRvY3VtZW50IHN0cnVjdHVyZS5cbiAqXG4gKiAgIFRoaXMgbGFiZWwgaXMgdHlwaWNhbGx5IGhpZGRlbiB2aXN1YWxseSAoYXNzdW1pbmcgYSBgc3Itb25seWAgQ1NTIGNsYXNzXG4gKiAgIGlzIGRlZmluZWQgdGhhdCBkb2VzIHRoYXQpIGFuZCBzbyBhZmZlY3RzIHNjcmVlbiByZWFkZXJzIG9ubHkuXG4gKiAgIElmIHlvdSBkbyBoYXZlIHN1Y2ggYSBjbGFzcywgYnV0IHdhbnQgdG8gc2hvdyB0aGlzIHNlY3Rpb24gdG8gZXZlcnlvbmUsXG4gKiAgIHBhc3MgZGlmZmVyZW50IHByb3BlcnRpZXMgd2l0aCB0aGUgYGZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzYCBvcHRpb24uXG4gKiBAcHJvcGVydHkge0hhbmRsZXJzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2hhbmRsZXJzXVxuICogICBFeHRyYSBoYW5kbGVycyBmb3Igbm9kZXMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8TWRhc3ROb2Rlc1sndHlwZSddPiB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXNzVGhyb3VnaF1cbiAqICAgTGlzdCBvZiBjdXN0b20gbWRhc3Qgbm9kZSB0eXBlcyB0byBwYXNzIHRocm91Z2ggKGtlZXApIGluIGhhc3QgKG5vdGUgdGhhdFxuICogICB0aGUgbm9kZSBpdHNlbGYgaXMgcGFzc2VkLCBidXQgZXZlbnR1YWwgY2hpbGRyZW4gYXJlIHRyYW5zZm9ybWVkKVxuICogICAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtIYW5kbGVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Vua25vd25IYW5kbGVyXVxuICogICBIYW5kbGVyIGZvciBhbGwgdW5rbm93biBub2RlcyAob3B0aW9uYWwpLlxuICpcbiAqIEB0eXBlZGVmIFN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE1kYXN0Tm9kZXMpID0+IEFycmF5PEhhc3RFbGVtZW50Q29udGVudD59IGFsbFxuICogICBUcmFuc2Zvcm0gdGhlIGNoaWxkcmVuIG9mIGFuIG1kYXN0IHBhcmVudCB0byBoYXN0LlxuICogQHByb3BlcnR5IHs8VHlwZSBleHRlbmRzIEhhc3ROb2Rlcz4oZnJvbTogTWRhc3ROb2RlcywgdG86IFR5cGUpID0+IEhhc3RFbGVtZW50IHwgVHlwZX0gYXBwbHlEYXRhXG4gKiAgIEhvbm9yIHRoZSBgZGF0YWAgb2YgYGZyb21gLCBhbmQgZ2VuZXJhdGUgYW4gZWxlbWVudCBpbnN0ZWFkIG9mIGBub2RlYC5cbiAqIEBwcm9wZXJ0eSB7TWFwPHN0cmluZywgTWRhc3REZWZpbml0aW9uPn0gZGVmaW5pdGlvbkJ5SWRcbiAqICAgRGVmaW5pdGlvbnMgYnkgdGhlaXIgaWRlbnRpZmllci5cbiAqIEBwcm9wZXJ0eSB7TWFwPHN0cmluZywgTWRhc3RGb290bm90ZURlZmluaXRpb24+fSBmb290bm90ZUJ5SWRcbiAqICAgRm9vdG5vdGUgZGVmaW5pdGlvbnMgYnkgdGhlaXIgaWRlbnRpZmllci5cbiAqIEBwcm9wZXJ0eSB7TWFwPHN0cmluZywgbnVtYmVyPn0gZm9vdG5vdGVDb3VudHNcbiAqICAgQ291bnRzIGZvciBob3cgb2Z0ZW4gdGhlIHNhbWUgZm9vdG5vdGUgd2FzIGNhbGxlZC5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gZm9vdG5vdGVPcmRlclxuICogICBJZGVudGlmaWVycyBvZiBvcmRlciB3aGVuIGZvb3Rub3RlIGNhbGxzIGZpcnN0IGFwcGVhciBpbiB0cmVlIG9yZGVyLlxuICogQHByb3BlcnR5IHtIYW5kbGVyc30gaGFuZGxlcnNcbiAqICAgQXBwbGllZCBoYW5kbGVycy5cbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE1kYXN0Tm9kZXMsIHBhcmVudDogTWRhc3RQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBBcnJheTxIYXN0RWxlbWVudENvbnRlbnQ+IHwgSGFzdEVsZW1lbnRDb250ZW50IHwgdW5kZWZpbmVkfSBvbmVcbiAqICAgVHJhbnNmb3JtIGFuIG1kYXN0IG5vZGUgdG8gaGFzdC5cbiAqIEBwcm9wZXJ0eSB7T3B0aW9uc30gb3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHsoZnJvbTogTWRhc3ROb2Rlcywgbm9kZTogSGFzdE5vZGVzKSA9PiB1bmRlZmluZWR9IHBhdGNoXG4gKiAgIENvcHkgYSBub2Rl4oCZcyBwb3NpdGlvbmFsIGluZm8uXG4gKiBAcHJvcGVydHkgezxUeXBlIGV4dGVuZHMgSGFzdFJvb3RDb250ZW50Pihub2RlczogQXJyYXk8VHlwZT4sIGxvb3NlPzogYm9vbGVhbiB8IHVuZGVmaW5lZCkgPT4gQXJyYXk8SGFzdFRleHQgfCBUeXBlPn0gd3JhcFxuICogICBXcmFwIGBub2Rlc2Agd2l0aCBsaW5lIGVuZGluZ3MgYmV0d2VlbiBlYWNoIG5vZGUsIGFkZHMgaW5pdGlhbC9maW5hbCBsaW5lIGVuZGluZ3Mgd2hlbiBgbG9vc2VgLlxuICovXG5cbmltcG9ydCBzdHJ1Y3R1cmVkQ2xvbmUgZnJvbSAnQHVuZ2FwL3N0cnVjdHVyZWQtY2xvbmUnXG5pbXBvcnQge3Zpc2l0fSBmcm9tICd1bmlzdC11dGlsLXZpc2l0J1xuaW1wb3J0IHtwb3NpdGlvbn0gZnJvbSAndW5pc3QtdXRpbC1wb3NpdGlvbidcbmltcG9ydCB7aGFuZGxlcnMgYXMgZGVmYXVsdEhhbmRsZXJzfSBmcm9tICcuL2hhbmRsZXJzL2luZGV4LmpzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKiogQHR5cGUge09wdGlvbnN9ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKipcbiAqIENyZWF0ZSBgc3RhdGVgIGZyb20gYW4gbWRhc3QgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge01kYXN0Tm9kZXN9IHRyZWVcbiAqICAgbWRhc3Qgbm9kZSB0byB0cmFuc2Zvcm0uXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge1N0YXRlfVxuICogICBgc3RhdGVgIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RhdGUodHJlZSwgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgTWRhc3REZWZpbml0aW9uPn0gKi9cbiAgY29uc3QgZGVmaW5pdGlvbkJ5SWQgPSBuZXcgTWFwKClcbiAgLyoqIEB0eXBlIHtNYXA8c3RyaW5nLCBNZGFzdEZvb3Rub3RlRGVmaW5pdGlvbj59ICovXG4gIGNvbnN0IGZvb3Rub3RlQnlJZCA9IG5ldyBNYXAoKVxuICAvKiogQHR5cGUge01hcDxzdHJpbmcsIG51bWJlcj59ICovXG4gIGNvbnN0IGZvb3Rub3RlQ291bnRzID0gbmV3IE1hcCgpXG4gIC8qKiBAdHlwZSB7SGFuZGxlcnN9ICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSByb290IGhhbmRsZXIgcmV0dXJucyBhIHJvb3QuXG4gIC8vIEhhcmQgdG8gdHlwZS5cbiAgY29uc3QgaGFuZGxlcnMgPSB7Li4uZGVmYXVsdEhhbmRsZXJzLCAuLi5zZXR0aW5ncy5oYW5kbGVyc31cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBhbGwsXG4gICAgYXBwbHlEYXRhLFxuICAgIGRlZmluaXRpb25CeUlkLFxuICAgIGZvb3Rub3RlQnlJZCxcbiAgICBmb290bm90ZUNvdW50cyxcbiAgICBmb290bm90ZU9yZGVyOiBbXSxcbiAgICBoYW5kbGVycyxcbiAgICBvbmUsXG4gICAgb3B0aW9uczogc2V0dGluZ3MsXG4gICAgcGF0Y2gsXG4gICAgd3JhcFxuICB9XG5cbiAgdmlzaXQodHJlZSwgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBpZiAobm9kZS50eXBlID09PSAnZGVmaW5pdGlvbicgfHwgbm9kZS50eXBlID09PSAnZm9vdG5vdGVEZWZpbml0aW9uJykge1xuICAgICAgY29uc3QgbWFwID0gbm9kZS50eXBlID09PSAnZGVmaW5pdGlvbicgPyBkZWZpbml0aW9uQnlJZCA6IGZvb3Rub3RlQnlJZFxuICAgICAgY29uc3QgaWQgPSBTdHJpbmcobm9kZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpXG5cbiAgICAgIC8vIE1pbWljayBDTSBiZWhhdmlvciBvZiBsaW5rIGRlZmluaXRpb25zLlxuICAgICAgLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL3N5bnRheC10cmVlL21kYXN0LXV0aWwtZGVmaW5pdGlvbnMvYmxvYi85MDMyMTg5L2xpYi9pbmRleC5qcyNMMjAtTDIxPi5cbiAgICAgIGlmICghbWFwLmhhcyhpZCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbm9kZSB0eXBlIG1hdGNoZXMgbWFwLlxuICAgICAgICBtYXAuc2V0KGlkLCBub2RlKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc3RhdGVcblxuICAvKipcbiAgICogVHJhbnNmb3JtIGFuIG1kYXN0IG5vZGUgaW50byBhIGhhc3Qgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtNZGFzdE5vZGVzfSBub2RlXG4gICAqICAgbWRhc3Qgbm9kZS5cbiAgICogQHBhcmFtIHtNZGFzdFBhcmVudHMgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gICAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAgICogQHJldHVybnMge0FycmF5PEhhc3RFbGVtZW50Q29udGVudD4gfCBIYXN0RWxlbWVudENvbnRlbnQgfCB1bmRlZmluZWR9XG4gICAqICAgUmVzdWx0aW5nIGhhc3Qgbm9kZS5cbiAgICovXG4gIGZ1bmN0aW9uIG9uZShub2RlLCBwYXJlbnQpIHtcbiAgICBjb25zdCB0eXBlID0gbm9kZS50eXBlXG4gICAgY29uc3QgaGFuZGxlID0gc3RhdGUuaGFuZGxlcnNbdHlwZV1cblxuICAgIGlmIChvd24uY2FsbChzdGF0ZS5oYW5kbGVycywgdHlwZSkgJiYgaGFuZGxlKSB7XG4gICAgICByZXR1cm4gaGFuZGxlKHN0YXRlLCBub2RlLCBwYXJlbnQpXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLm9wdGlvbnMucGFzc1Rocm91Z2ggJiYgc3RhdGUub3B0aW9ucy5wYXNzVGhyb3VnaC5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgaWYgKCdjaGlsZHJlbicgaW4gbm9kZSkge1xuICAgICAgICBjb25zdCB7Y2hpbGRyZW4sIC4uLnNoYWxsb3d9ID0gbm9kZVxuICAgICAgICBjb25zdCByZXN1bHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoc2hhbGxvdylcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgZG9lc27igJl0IHVuZGVyc3RhbmTigKZcbiAgICAgICAgcmVzdWx0LmNoaWxkcmVuID0gc3RhdGUuYWxsKG5vZGUpXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFRTIGRvZXNu4oCZdCB1bmRlcnN0YW5k4oCmXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH1cblxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogaXTigJlzIGN1c3RvbS5cbiAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUobm9kZSlcbiAgICB9XG5cbiAgICBjb25zdCB1bmtub3duID0gc3RhdGUub3B0aW9ucy51bmtub3duSGFuZGxlciB8fCBkZWZhdWx0VW5rbm93bkhhbmRsZXJcblxuICAgIHJldHVybiB1bmtub3duKHN0YXRlLCBub2RlLCBwYXJlbnQpXG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRoZSBjaGlsZHJlbiBvZiBhbiBtZGFzdCBub2RlIGludG8gaGFzdCBub2Rlcy5cbiAgICpcbiAgICogQHBhcmFtIHtNZGFzdE5vZGVzfSBwYXJlbnRcbiAgICogICBtZGFzdCBub2RlIHRvIGNvbXBpbGVcbiAgICogQHJldHVybnMge0FycmF5PEhhc3RFbGVtZW50Q29udGVudD59XG4gICAqICAgUmVzdWx0aW5nIGhhc3Qgbm9kZXMuXG4gICAqL1xuICBmdW5jdGlvbiBhbGwocGFyZW50KSB7XG4gICAgLyoqIEB0eXBlIHtBcnJheTxIYXN0RWxlbWVudENvbnRlbnQ+fSAqL1xuICAgIGNvbnN0IHZhbHVlcyA9IFtdXG5cbiAgICBpZiAoJ2NoaWxkcmVuJyBpbiBwYXJlbnQpIHtcbiAgICAgIGNvbnN0IG5vZGVzID0gcGFyZW50LmNoaWxkcmVuXG4gICAgICBsZXQgaW5kZXggPSAtMVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBub2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3RhdGUub25lKG5vZGVzW2luZGV4XSwgcGFyZW50KVxuXG4gICAgICAgIC8vIFRvIGRvOiBzZWUgaWYgd2UgdmFuIGNsZWFuIHRoaXM/IENhbiB3ZSBtZXJnZSB0ZXh0cz9cbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIGlmIChpbmRleCAmJiBub2Rlc1tpbmRleCAtIDFdLnR5cGUgPT09ICdicmVhaycpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlID0gdHJpbU1hcmtkb3duU3BhY2VTdGFydChyZXN1bHQudmFsdWUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC50eXBlID09PSAnZWxlbWVudCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgaGVhZCA9IHJlc3VsdC5jaGlsZHJlblswXVxuXG4gICAgICAgICAgICAgIGlmIChoZWFkICYmIGhlYWQudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICAgICAgaGVhZC52YWx1ZSA9IHRyaW1NYXJrZG93blNwYWNlU3RhcnQoaGVhZC52YWx1ZSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKC4uLnJlc3VsdClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2gocmVzdWx0KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXNcbiAgfVxufVxuXG4vKipcbiAqIENvcHkgYSBub2Rl4oCZcyBwb3NpdGlvbmFsIGluZm8uXG4gKlxuICogQHBhcmFtIHtNZGFzdE5vZGVzfSBmcm9tXG4gKiAgIG1kYXN0IG5vZGUgdG8gY29weSBmcm9tLlxuICogQHBhcmFtIHtIYXN0Tm9kZXN9IHRvXG4gKiAgIGhhc3Qgbm9kZSB0byBjb3B5IGludG8uXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBwYXRjaChmcm9tLCB0bykge1xuICBpZiAoZnJvbS5wb3NpdGlvbikgdG8ucG9zaXRpb24gPSBwb3NpdGlvbihmcm9tKVxufVxuXG4vKipcbiAqIEhvbm9yIHRoZSBgZGF0YWAgb2YgYGZyb21gIGFuZCBtYXliZSBnZW5lcmF0ZSBhbiBlbGVtZW50IGluc3RlYWQgb2YgYHRvYC5cbiAqXG4gKiBAdGVtcGxhdGUge0hhc3ROb2Rlc30gVHlwZVxuICogICBOb2RlIHR5cGUuXG4gKiBAcGFyYW0ge01kYXN0Tm9kZXN9IGZyb21cbiAqICAgbWRhc3Qgbm9kZSB0byB1c2UgZGF0YSBmcm9tLlxuICogQHBhcmFtIHtUeXBlfSB0b1xuICogICBoYXN0IG5vZGUgdG8gY2hhbmdlLlxuICogQHJldHVybnMge0hhc3RFbGVtZW50IHwgVHlwZX1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXBwbHlEYXRhKGZyb20sIHRvKSB7XG4gIC8qKiBAdHlwZSB7SGFzdEVsZW1lbnQgfCBUeXBlfSAqL1xuICBsZXQgcmVzdWx0ID0gdG9cblxuICAvLyBIYW5kbGUgYGRhdGEuaE5hbWVgLCBgZGF0YS5oUHJvcGVydGllcywgYGRhdGEuaENoaWxkcmVuYC5cbiAgaWYgKGZyb20gJiYgZnJvbS5kYXRhKSB7XG4gICAgY29uc3QgaE5hbWUgPSBmcm9tLmRhdGEuaE5hbWVcbiAgICBjb25zdCBoQ2hpbGRyZW4gPSBmcm9tLmRhdGEuaENoaWxkcmVuXG4gICAgY29uc3QgaFByb3BlcnRpZXMgPSBmcm9tLmRhdGEuaFByb3BlcnRpZXNcblxuICAgIGlmICh0eXBlb2YgaE5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBUcmFuc2Zvcm1pbmcgdGhlIG5vZGUgcmVzdWx0ZWQgaW4gYW4gZWxlbWVudCB3aXRoIGEgZGlmZmVyZW50IG5hbWVcbiAgICAgIC8vIHRoYW4gd2FudGVkOlxuICAgICAgaWYgKHJlc3VsdC50eXBlID09PSAnZWxlbWVudCcpIHtcbiAgICAgICAgcmVzdWx0LnRhZ05hbWUgPSBoTmFtZVxuICAgICAgfVxuICAgICAgLy8gVHJhbnNmb3JtaW5nIHRoZSBub2RlIHJlc3VsdGVkIGluIGEgbm9uLWVsZW1lbnQsIHdoaWNoIGhhcHBlbnMgZm9yXG4gICAgICAvLyByYXcsIHRleHQsIGFuZCByb290IG5vZGVzICh1bmxlc3MgY3VzdG9tIGhhbmRsZXJzIGFyZSBwYXNzZWQpLlxuICAgICAgLy8gVGhlIGludGVudCBvZiBgaE5hbWVgIGlzIHRvIGNyZWF0ZSBhbiBlbGVtZW50LCBidXQgbGlrZWx5IGFsc28gdG8ga2VlcFxuICAgICAgLy8gdGhlIGNvbnRlbnQgYXJvdW5kIChvdGhlcndpc2U6IHBhc3MgYGhDaGlsZHJlbmApLlxuICAgICAgZWxzZSB7XG4gICAgICAgIC8qKiBAdHlwZSB7QXJyYXk8SGFzdEVsZW1lbnRDb250ZW50Pn0gKi9cbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYXNzdW1lIG5vIGRvY3R5cGVzIGluIGByb290YC5cbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSAnY2hpbGRyZW4nIGluIHJlc3VsdCA/IHJlc3VsdC5jaGlsZHJlbiA6IFtyZXN1bHRdXG4gICAgICAgIHJlc3VsdCA9IHt0eXBlOiAnZWxlbWVudCcsIHRhZ05hbWU6IGhOYW1lLCBwcm9wZXJ0aWVzOiB7fSwgY2hpbGRyZW59XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdC50eXBlID09PSAnZWxlbWVudCcgJiYgaFByb3BlcnRpZXMpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LnByb3BlcnRpZXMsIHN0cnVjdHVyZWRDbG9uZShoUHJvcGVydGllcykpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgJ2NoaWxkcmVuJyBpbiByZXN1bHQgJiZcbiAgICAgIHJlc3VsdC5jaGlsZHJlbiAmJlxuICAgICAgaENoaWxkcmVuICE9PSBudWxsICYmXG4gICAgICBoQ2hpbGRyZW4gIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgcmVzdWx0LmNoaWxkcmVuID0gaENoaWxkcmVuXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhbiB1bmtub3duIG5vZGUuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtNZGFzdE5vZGVzfSBub2RlXG4gKiAgIFVua25vd24gbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtIYXN0RWxlbWVudCB8IEhhc3RUZXh0fVxuICogICBSZXN1bHRpbmcgaGFzdCBub2RlLlxuICovXG5mdW5jdGlvbiBkZWZhdWx0VW5rbm93bkhhbmRsZXIoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3QgZGF0YSA9IG5vZGUuZGF0YSB8fCB7fVxuICAvKiogQHR5cGUge0hhc3RFbGVtZW50IHwgSGFzdFRleHR9ICovXG4gIGNvbnN0IHJlc3VsdCA9XG4gICAgJ3ZhbHVlJyBpbiBub2RlICYmXG4gICAgIShvd24uY2FsbChkYXRhLCAnaFByb3BlcnRpZXMnKSB8fCBvd24uY2FsbChkYXRhLCAnaENoaWxkcmVuJykpXG4gICAgICA/IHt0eXBlOiAndGV4dCcsIHZhbHVlOiBub2RlLnZhbHVlfVxuICAgICAgOiB7XG4gICAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgICAgIHRhZ05hbWU6ICdkaXYnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgIGNoaWxkcmVuOiBzdGF0ZS5hbGwobm9kZSlcbiAgICAgICAgfVxuXG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG5cbi8qKlxuICogV3JhcCBgbm9kZXNgIHdpdGggbGluZSBlbmRpbmdzIGJldHdlZW4gZWFjaCBub2RlLlxuICpcbiAqIEB0ZW1wbGF0ZSB7SGFzdFJvb3RDb250ZW50fSBUeXBlXG4gKiAgIE5vZGUgdHlwZS5cbiAqIEBwYXJhbSB7QXJyYXk8VHlwZT59IG5vZGVzXG4gKiAgIExpc3Qgb2Ygbm9kZXMgdG8gd3JhcC5cbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gW2xvb3NlPWZhbHNlXVxuICogICBXaGV0aGVyIHRvIGFkZCBsaW5lIGVuZGluZ3MgYXQgc3RhcnQgYW5kIGVuZCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKiBAcmV0dXJucyB7QXJyYXk8SGFzdFRleHQgfCBUeXBlPn1cbiAqICAgV3JhcHBlZCBub2Rlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXAobm9kZXMsIGxvb3NlKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8SGFzdFRleHQgfCBUeXBlPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICBpZiAobG9vc2UpIHtcbiAgICByZXN1bHQucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9KVxuICB9XG5cbiAgd2hpbGUgKCsraW5kZXggPCBub2Rlcy5sZW5ndGgpIHtcbiAgICBpZiAoaW5kZXgpIHJlc3VsdC5wdXNoKHt0eXBlOiAndGV4dCcsIHZhbHVlOiAnXFxuJ30pXG4gICAgcmVzdWx0LnB1c2gobm9kZXNbaW5kZXhdKVxuICB9XG5cbiAgaWYgKGxvb3NlICYmIG5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICByZXN1bHQucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFRyaW0gc3BhY2VzIGFuZCB0YWJzIGF0IHRoZSBzdGFydCBvZiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byB0cmltLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUmVzdWx0LlxuICovXG5mdW5jdGlvbiB0cmltTWFya2Rvd25TcGFjZVN0YXJ0KHZhbHVlKSB7XG4gIGxldCBpbmRleCA9IDBcbiAgbGV0IGNvZGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KVxuXG4gIHdoaWxlIChjb2RlID09PSA5IHx8IGNvZGUgPT09IDMyKSB7XG4gICAgaW5kZXgrK1xuICAgIGNvZGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlLnNsaWNlKGluZGV4KVxufVxuIl0sIm5hbWVzIjpbInN0cnVjdHVyZWRDbG9uZSIsInZpc2l0IiwicG9zaXRpb24iLCJoYW5kbGVycyIsImRlZmF1bHRIYW5kbGVycyIsIm93biIsImhhc093blByb3BlcnR5IiwiZW1wdHlPcHRpb25zIiwiY3JlYXRlU3RhdGUiLCJ0cmVlIiwib3B0aW9ucyIsInNldHRpbmdzIiwiZGVmaW5pdGlvbkJ5SWQiLCJNYXAiLCJmb290bm90ZUJ5SWQiLCJmb290bm90ZUNvdW50cyIsInN0YXRlIiwiYWxsIiwiYXBwbHlEYXRhIiwiZm9vdG5vdGVPcmRlciIsIm9uZSIsInBhdGNoIiwid3JhcCIsIm5vZGUiLCJ0eXBlIiwibWFwIiwiaWQiLCJTdHJpbmciLCJpZGVudGlmaWVyIiwidG9VcHBlckNhc2UiLCJoYXMiLCJzZXQiLCJwYXJlbnQiLCJoYW5kbGUiLCJjYWxsIiwicGFzc1Rocm91Z2giLCJpbmNsdWRlcyIsImNoaWxkcmVuIiwic2hhbGxvdyIsInJlc3VsdCIsInVua25vd24iLCJ1bmtub3duSGFuZGxlciIsImRlZmF1bHRVbmtub3duSGFuZGxlciIsInZhbHVlcyIsIm5vZGVzIiwiaW5kZXgiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJ2YWx1ZSIsInRyaW1NYXJrZG93blNwYWNlU3RhcnQiLCJoZWFkIiwicHVzaCIsImZyb20iLCJ0byIsImRhdGEiLCJoTmFtZSIsImhDaGlsZHJlbiIsImhQcm9wZXJ0aWVzIiwidGFnTmFtZSIsInByb3BlcnRpZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJ1bmRlZmluZWQiLCJsb29zZSIsImNvZGUiLCJjaGFyQ29kZUF0Iiwic2xpY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-hast/lib/state.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ blockquote: () => (/* binding */ blockquote)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function blockquote(node, _, state, info) {\n const exit = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(state.containerFlow(node, tracker.current()), map);\n exit();\n return value;\n}\n/** @type {Map} */ function map(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9ibG9ja3F1b3RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7O0NBTUMsR0FFRDs7Ozs7O0NBTUMsR0FDTSxTQUFTQSxXQUFXQyxJQUFJLEVBQUVDLENBQUMsRUFBRUMsS0FBSyxFQUFFQyxJQUFJO0lBQzdDLE1BQU1DLE9BQU9GLE1BQU1HLEtBQUssQ0FBQztJQUN6QixNQUFNQyxVQUFVSixNQUFNSyxhQUFhLENBQUNKO0lBQ3BDRyxRQUFRRSxJQUFJLENBQUM7SUFDYkYsUUFBUUcsS0FBSyxDQUFDO0lBQ2QsTUFBTUMsUUFBUVIsTUFBTVMsV0FBVyxDQUM3QlQsTUFBTVUsYUFBYSxDQUFDWixNQUFNTSxRQUFRTyxPQUFPLEtBQ3pDQztJQUVGVjtJQUNBLE9BQU9NO0FBQ1Q7QUFFQSxnQkFBZ0IsR0FDaEIsU0FBU0ksSUFBSUMsSUFBSSxFQUFFZCxDQUFDLEVBQUVlLEtBQUs7SUFDekIsT0FBTyxNQUFPQSxDQUFBQSxRQUFRLEtBQUssR0FBRSxJQUFLRDtBQUNwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9ibG9ja3F1b3RlLmpzPzcxNmEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkJsb2NrcXVvdGV9IEJsb2NrcXVvdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLk1hcH0gTWFwXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtCbG9ja3F1b3RlfSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBibG9ja3F1b3RlKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignYmxvY2txdW90ZScpXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIHRyYWNrZXIubW92ZSgnPiAnKVxuICB0cmFja2VyLnNoaWZ0KDIpXG4gIGNvbnN0IHZhbHVlID0gc3RhdGUuaW5kZW50TGluZXMoXG4gICAgc3RhdGUuY29udGFpbmVyRmxvdyhub2RlLCB0cmFja2VyLmN1cnJlbnQoKSksXG4gICAgbWFwXG4gIClcbiAgZXhpdCgpXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKiogQHR5cGUge01hcH0gKi9cbmZ1bmN0aW9uIG1hcChsaW5lLCBfLCBibGFuaykge1xuICByZXR1cm4gJz4nICsgKGJsYW5rID8gJycgOiAnICcpICsgbGluZVxufVxuIl0sIm5hbWVzIjpbImJsb2NrcXVvdGUiLCJub2RlIiwiXyIsInN0YXRlIiwiaW5mbyIsImV4aXQiLCJlbnRlciIsInRyYWNrZXIiLCJjcmVhdGVUcmFja2VyIiwibW92ZSIsInNoaWZ0IiwidmFsdWUiLCJpbmRlbnRMaW5lcyIsImNvbnRhaW5lckZsb3ciLCJjdXJyZW50IiwibWFwIiwibGluZSIsImJsYW5rIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/break.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/break.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hardBreak: () => (/* binding */ hardBreak)\n/* harmony export */ });\n/* harmony import */ var _util_pattern_in_scope_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/pattern-in-scope.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js\");\n/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function hardBreak(_, _1, state, info) {\n let index = -1;\n while(++index < state.unsafe.length){\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (state.unsafe[index].character === \"\\n\" && (0,_util_pattern_in_scope_js__WEBPACK_IMPORTED_MODULE_0__.patternInScope)(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9icmVhay5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7OztDQUtDLEdBRXlEO0FBRTFEOzs7Ozs7Q0FNQyxHQUNNLFNBQVNDLFVBQVVDLENBQUMsRUFBRUMsRUFBRSxFQUFFQyxLQUFLLEVBQUVDLElBQUk7SUFDMUMsSUFBSUMsUUFBUSxDQUFDO0lBRWIsTUFBTyxFQUFFQSxRQUFRRixNQUFNRyxNQUFNLENBQUNDLE1BQU0sQ0FBRTtRQUNwQywwRUFBMEU7UUFDMUUsaUJBQWlCO1FBQ2pCLElBQ0VKLE1BQU1HLE1BQU0sQ0FBQ0QsTUFBTSxDQUFDRyxTQUFTLEtBQUssUUFDbENULHlFQUFjQSxDQUFDSSxNQUFNTSxLQUFLLEVBQUVOLE1BQU1HLE1BQU0sQ0FBQ0QsTUFBTSxHQUMvQztZQUNBLE9BQU8sUUFBUUssSUFBSSxDQUFDTixLQUFLTyxNQUFNLElBQUksS0FBSztRQUMxQztJQUNGO0lBRUEsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2JyZWFrLmpzPzk3Y2UiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkJyZWFrfSBCcmVha1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtwYXR0ZXJuSW5TY29wZX0gZnJvbSAnLi4vdXRpbC9wYXR0ZXJuLWluLXNjb3BlLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7QnJlYWt9IF9cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzFcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXJkQnJlYWsoXywgXzEsIHN0YXRlLCBpbmZvKSB7XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzdGF0ZS51bnNhZmUubGVuZ3RoKSB7XG4gICAgLy8gSWYgd2UgY2Fu4oCZdCBwdXQgZW9scyBpbiB0aGlzIGNvbnN0cnVjdCAoc2V0ZXh0IGhlYWRpbmdzLCB0YWJsZXMpLCB1c2UgYVxuICAgIC8vIHNwYWNlIGluc3RlYWQuXG4gICAgaWYgKFxuICAgICAgc3RhdGUudW5zYWZlW2luZGV4XS5jaGFyYWN0ZXIgPT09ICdcXG4nICYmXG4gICAgICBwYXR0ZXJuSW5TY29wZShzdGF0ZS5zdGFjaywgc3RhdGUudW5zYWZlW2luZGV4XSlcbiAgICApIHtcbiAgICAgIHJldHVybiAvWyBcXHRdLy50ZXN0KGluZm8uYmVmb3JlKSA/ICcnIDogJyAnXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICdcXFxcXFxuJ1xufVxuIl0sIm5hbWVzIjpbInBhdHRlcm5JblNjb3BlIiwiaGFyZEJyZWFrIiwiXyIsIl8xIiwic3RhdGUiLCJpbmZvIiwiaW5kZXgiLCJ1bnNhZmUiLCJsZW5ndGgiLCJjaGFyYWN0ZXIiLCJzdGFjayIsInRlc3QiLCJiZWZvcmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/break.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/code.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/code.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ code: () => (/* binding */ code)\n/* harmony export */ });\n/* harmony import */ var longest_streak__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! longest-streak */ \"(ssr)/../../node_modules/longest-streak/index.js\");\n/* harmony import */ var _util_format_code_as_indented_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/format-code-as-indented.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js\");\n/* harmony import */ var _util_check_fence_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-fence.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-fence.js\");\n/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */ \n\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function code(node, _, state, info) {\n const marker = (0,_util_check_fence_js__WEBPACK_IMPORTED_MODULE_0__.checkFence)(state);\n const raw = node.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if ((0,_util_format_code_as_indented_js__WEBPACK_IMPORTED_MODULE_1__.formatCodeAsIndented)(node, state)) {\n const exit = state.enter(\"codeIndented\");\n const value = state.indentLines(raw, map);\n exit();\n return value;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max((0,longest_streak__WEBPACK_IMPORTED_MODULE_2__.longestStreak)(raw, marker) + 1, 3));\n const exit = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(state.safe(node.lang, {\n before: value,\n after: \" \",\n encode: [\n \"`\"\n ],\n ...tracker.current()\n }));\n subexit();\n }\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(state.safe(node.meta, {\n before: value,\n after: \"\\n\",\n encode: [\n \"`\"\n ],\n ...tracker.current()\n }));\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit();\n return value;\n}\n/** @type {Map} */ function map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7O0NBTUMsR0FFMkM7QUFDMkI7QUFDdEI7QUFFakQ7Ozs7OztDQU1DLEdBQ00sU0FBU0csS0FBS0MsSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUssRUFBRUMsSUFBSTtJQUN2QyxNQUFNQyxTQUFTTixnRUFBVUEsQ0FBQ0k7SUFDMUIsTUFBTUcsTUFBTUwsS0FBS00sS0FBSyxJQUFJO0lBQzFCLE1BQU1DLFNBQVNILFdBQVcsTUFBTSxnQkFBZ0I7SUFFaEQsSUFBSVAsc0ZBQW9CQSxDQUFDRyxNQUFNRSxRQUFRO1FBQ3JDLE1BQU1NLE9BQU9OLE1BQU1PLEtBQUssQ0FBQztRQUN6QixNQUFNSCxRQUFRSixNQUFNUSxXQUFXLENBQUNMLEtBQUtNO1FBQ3JDSDtRQUNBLE9BQU9GO0lBQ1Q7SUFFQSxNQUFNTSxVQUFVVixNQUFNVyxhQUFhLENBQUNWO0lBQ3BDLE1BQU1XLFdBQVdWLE9BQU9XLE1BQU0sQ0FBQ0MsS0FBS0MsR0FBRyxDQUFDckIsNkRBQWFBLENBQUNTLEtBQUtELFVBQVUsR0FBRztJQUN4RSxNQUFNSSxPQUFPTixNQUFNTyxLQUFLLENBQUM7SUFDekIsSUFBSUgsUUFBUU0sUUFBUU0sSUFBSSxDQUFDSjtJQUV6QixJQUFJZCxLQUFLbUIsSUFBSSxFQUFFO1FBQ2IsTUFBTUMsVUFBVWxCLE1BQU1PLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRUYsT0FBTyxDQUFDO1FBQ3JERCxTQUFTTSxRQUFRTSxJQUFJLENBQ25CaEIsTUFBTW1CLElBQUksQ0FBQ3JCLEtBQUttQixJQUFJLEVBQUU7WUFDcEJHLFFBQVFoQjtZQUNSaUIsT0FBTztZQUNQQyxRQUFRO2dCQUFDO2FBQUk7WUFDYixHQUFHWixRQUFRYSxPQUFPLEVBQUU7UUFDdEI7UUFFRkw7SUFDRjtJQUVBLElBQUlwQixLQUFLbUIsSUFBSSxJQUFJbkIsS0FBSzBCLElBQUksRUFBRTtRQUMxQixNQUFNTixVQUFVbEIsTUFBTU8sS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFRixPQUFPLENBQUM7UUFDckRELFNBQVNNLFFBQVFNLElBQUksQ0FBQztRQUN0QlosU0FBU00sUUFBUU0sSUFBSSxDQUNuQmhCLE1BQU1tQixJQUFJLENBQUNyQixLQUFLMEIsSUFBSSxFQUFFO1lBQ3BCSixRQUFRaEI7WUFDUmlCLE9BQU87WUFDUEMsUUFBUTtnQkFBQzthQUFJO1lBQ2IsR0FBR1osUUFBUWEsT0FBTyxFQUFFO1FBQ3RCO1FBRUZMO0lBQ0Y7SUFFQWQsU0FBU00sUUFBUU0sSUFBSSxDQUFDO0lBRXRCLElBQUliLEtBQUs7UUFDUEMsU0FBU00sUUFBUU0sSUFBSSxDQUFDYixNQUFNO0lBQzlCO0lBRUFDLFNBQVNNLFFBQVFNLElBQUksQ0FBQ0o7SUFDdEJOO0lBQ0EsT0FBT0Y7QUFDVDtBQUVBLGdCQUFnQixHQUNoQixTQUFTSyxJQUFJZ0IsSUFBSSxFQUFFMUIsQ0FBQyxFQUFFMkIsS0FBSztJQUN6QixPQUFPLENBQUNBLFFBQVEsS0FBSyxNQUFLLElBQUtEO0FBQ2pDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2NvZGUuanM/ODJjMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuTWFwfSBNYXBcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtsb25nZXN0U3RyZWFrfSBmcm9tICdsb25nZXN0LXN0cmVhaydcbmltcG9ydCB7Zm9ybWF0Q29kZUFzSW5kZW50ZWR9IGZyb20gJy4uL3V0aWwvZm9ybWF0LWNvZGUtYXMtaW5kZW50ZWQuanMnXG5pbXBvcnQge2NoZWNrRmVuY2V9IGZyb20gJy4uL3V0aWwvY2hlY2stZmVuY2UuanMnXG5cbi8qKlxuICogQHBhcmFtIHtDb2RlfSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2RlKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IG1hcmtlciA9IGNoZWNrRmVuY2Uoc3RhdGUpXG4gIGNvbnN0IHJhdyA9IG5vZGUudmFsdWUgfHwgJydcbiAgY29uc3Qgc3VmZml4ID0gbWFya2VyID09PSAnYCcgPyAnR3JhdmVBY2NlbnQnIDogJ1RpbGRlJ1xuXG4gIGlmIChmb3JtYXRDb2RlQXNJbmRlbnRlZChub2RlLCBzdGF0ZSkpIHtcbiAgICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2NvZGVJbmRlbnRlZCcpXG4gICAgY29uc3QgdmFsdWUgPSBzdGF0ZS5pbmRlbnRMaW5lcyhyYXcsIG1hcClcbiAgICBleGl0KClcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIGNvbnN0IHNlcXVlbmNlID0gbWFya2VyLnJlcGVhdChNYXRoLm1heChsb25nZXN0U3RyZWFrKHJhdywgbWFya2VyKSArIDEsIDMpKVxuICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2NvZGVGZW5jZWQnKVxuICBsZXQgdmFsdWUgPSB0cmFja2VyLm1vdmUoc2VxdWVuY2UpXG5cbiAgaWYgKG5vZGUubGFuZykge1xuICAgIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcihgY29kZUZlbmNlZExhbmcke3N1ZmZpeH1gKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS5sYW5nLCB7XG4gICAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICAgIGFmdGVyOiAnICcsXG4gICAgICAgIGVuY29kZTogWydgJ10sXG4gICAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgICB9KVxuICAgIClcbiAgICBzdWJleGl0KClcbiAgfVxuXG4gIGlmIChub2RlLmxhbmcgJiYgbm9kZS5tZXRhKSB7XG4gICAgY29uc3Qgc3ViZXhpdCA9IHN0YXRlLmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7c3VmZml4fWApXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCcgJylcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoXG4gICAgICBzdGF0ZS5zYWZlKG5vZGUubWV0YSwge1xuICAgICAgICBiZWZvcmU6IHZhbHVlLFxuICAgICAgICBhZnRlcjogJ1xcbicsXG4gICAgICAgIGVuY29kZTogWydgJ10sXG4gICAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgICB9KVxuICAgIClcbiAgICBzdWJleGl0KClcbiAgfVxuXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnXFxuJylcblxuICBpZiAocmF3KSB7XG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKHJhdyArICdcXG4nKVxuICB9XG5cbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKHNlcXVlbmNlKVxuICBleGl0KClcbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKiBAdHlwZSB7TWFwfSAqL1xuZnVuY3Rpb24gbWFwKGxpbmUsIF8sIGJsYW5rKSB7XG4gIHJldHVybiAoYmxhbmsgPyAnJyA6ICcgICAgJykgKyBsaW5lXG59XG4iXSwibmFtZXMiOlsibG9uZ2VzdFN0cmVhayIsImZvcm1hdENvZGVBc0luZGVudGVkIiwiY2hlY2tGZW5jZSIsImNvZGUiLCJub2RlIiwiXyIsInN0YXRlIiwiaW5mbyIsIm1hcmtlciIsInJhdyIsInZhbHVlIiwic3VmZml4IiwiZXhpdCIsImVudGVyIiwiaW5kZW50TGluZXMiLCJtYXAiLCJ0cmFja2VyIiwiY3JlYXRlVHJhY2tlciIsInNlcXVlbmNlIiwicmVwZWF0IiwiTWF0aCIsIm1heCIsIm1vdmUiLCJsYW5nIiwic3ViZXhpdCIsInNhZmUiLCJiZWZvcmUiLCJhZnRlciIsImVuY29kZSIsImN1cnJlbnQiLCJtZXRhIiwibGluZSIsImJsYW5rIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/code.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/definition.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/definition.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ definition: () => (/* binding */ definition)\n/* harmony export */ });\n/* harmony import */ var _util_check_quote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-quote.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js\");\n/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function definition(node, _, state, info) {\n const quote = (0,_util_check_quote_js__WEBPACK_IMPORTED_MODULE_0__.checkQuote)(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n }));\n value += tracker.move(\"]: \");\n subexit();\n if (// If there’s no url, or…\n !node.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(state.safe(node.url, {\n before: value,\n after: \">\",\n ...tracker.current()\n }));\n value += tracker.move(\">\");\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \"\\n\",\n ...tracker.current()\n }));\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n }));\n value += tracker.move(quote);\n subexit();\n }\n exit();\n return value;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9kZWZpbml0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFZ0Q7QUFFakQ7Ozs7OztDQU1DLEdBQ00sU0FBU0MsV0FBV0MsSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUssRUFBRUMsSUFBSTtJQUM3QyxNQUFNQyxRQUFRTixnRUFBVUEsQ0FBQ0k7SUFDekIsTUFBTUcsU0FBU0QsVUFBVSxNQUFNLFVBQVU7SUFDekMsTUFBTUUsT0FBT0osTUFBTUssS0FBSyxDQUFDO0lBQ3pCLElBQUlDLFVBQVVOLE1BQU1LLEtBQUssQ0FBQztJQUMxQixNQUFNRSxVQUFVUCxNQUFNUSxhQUFhLENBQUNQO0lBQ3BDLElBQUlRLFFBQVFGLFFBQVFHLElBQUksQ0FBQztJQUN6QkQsU0FBU0YsUUFBUUcsSUFBSSxDQUNuQlYsTUFBTVcsSUFBSSxDQUFDWCxNQUFNWSxhQUFhLENBQUNkLE9BQU87UUFDcENlLFFBQVFKO1FBQ1JLLE9BQU87UUFDUCxHQUFHUCxRQUFRUSxPQUFPLEVBQUU7SUFDdEI7SUFFRk4sU0FBU0YsUUFBUUcsSUFBSSxDQUFDO0lBRXRCSjtJQUVBLElBQ0UseUJBQXlCO0lBQ3pCLENBQUNSLEtBQUtrQixHQUFHLElBQ1QsaURBQWlEO0lBQ2pELGVBQWVDLElBQUksQ0FBQ25CLEtBQUtrQixHQUFHLEdBQzVCO1FBQ0FWLFVBQVVOLE1BQU1LLEtBQUssQ0FBQztRQUN0QkksU0FBU0YsUUFBUUcsSUFBSSxDQUFDO1FBQ3RCRCxTQUFTRixRQUFRRyxJQUFJLENBQ25CVixNQUFNVyxJQUFJLENBQUNiLEtBQUtrQixHQUFHLEVBQUU7WUFBQ0gsUUFBUUo7WUFBT0ssT0FBTztZQUFLLEdBQUdQLFFBQVFRLE9BQU8sRUFBRTtRQUFBO1FBRXZFTixTQUFTRixRQUFRRyxJQUFJLENBQUM7SUFDeEIsT0FBTztRQUNMLGtDQUFrQztRQUNsQ0osVUFBVU4sTUFBTUssS0FBSyxDQUFDO1FBQ3RCSSxTQUFTRixRQUFRRyxJQUFJLENBQ25CVixNQUFNVyxJQUFJLENBQUNiLEtBQUtrQixHQUFHLEVBQUU7WUFDbkJILFFBQVFKO1lBQ1JLLE9BQU9oQixLQUFLb0IsS0FBSyxHQUFHLE1BQU07WUFDMUIsR0FBR1gsUUFBUVEsT0FBTyxFQUFFO1FBQ3RCO0lBRUo7SUFFQVQ7SUFFQSxJQUFJUixLQUFLb0IsS0FBSyxFQUFFO1FBQ2RaLFVBQVVOLE1BQU1LLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRUYsT0FBTyxDQUFDO1FBQ3RDTSxTQUFTRixRQUFRRyxJQUFJLENBQUMsTUFBTVI7UUFDNUJPLFNBQVNGLFFBQVFHLElBQUksQ0FDbkJWLE1BQU1XLElBQUksQ0FBQ2IsS0FBS29CLEtBQUssRUFBRTtZQUNyQkwsUUFBUUo7WUFDUkssT0FBT1o7WUFDUCxHQUFHSyxRQUFRUSxPQUFPLEVBQUU7UUFDdEI7UUFFRk4sU0FBU0YsUUFBUUcsSUFBSSxDQUFDUjtRQUN0Qkk7SUFDRjtJQUVBRjtJQUVBLE9BQU9LO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvZGVmaW5pdGlvbi5qcz8yYWYxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5EZWZpbml0aW9ufSBEZWZpbml0aW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge2NoZWNrUXVvdGV9IGZyb20gJy4uL3V0aWwvY2hlY2stcXVvdGUuanMnXG5cbi8qKlxuICogQHBhcmFtIHtEZWZpbml0aW9ufSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbml0aW9uKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IHF1b3RlID0gY2hlY2tRdW90ZShzdGF0ZSlcbiAgY29uc3Qgc3VmZml4ID0gcXVvdGUgPT09ICdcIicgPyAnUXVvdGUnIDogJ0Fwb3N0cm9waGUnXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignZGVmaW5pdGlvbicpXG4gIGxldCBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ2xhYmVsJylcbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcbiAgbGV0IHZhbHVlID0gdHJhY2tlci5tb3ZlKCdbJylcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgIHN0YXRlLnNhZmUoc3RhdGUuYXNzb2NpYXRpb25JZChub2RlKSwge1xuICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgIGFmdGVyOiAnXScsXG4gICAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICAgIH0pXG4gIClcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCddOiAnKVxuXG4gIHN1YmV4aXQoKVxuXG4gIGlmIChcbiAgICAvLyBJZiB0aGVyZeKAmXMgbm8gdXJsLCBvcuKAplxuICAgICFub2RlLnVybCB8fFxuICAgIC8vIElmIHRoZXJlIGFyZSBjb250cm9sIGNoYXJhY3RlcnMgb3Igd2hpdGVzcGFjZS5cbiAgICAvW1xcMC0gXFx1MDA3Rl0vLnRlc3Qobm9kZS51cmwpXG4gICkge1xuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignZGVzdGluYXRpb25MaXRlcmFsJylcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJzwnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS51cmwsIHtiZWZvcmU6IHZhbHVlLCBhZnRlcjogJz4nLCAuLi50cmFja2VyLmN1cnJlbnQoKX0pXG4gICAgKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnPicpXG4gIH0gZWxzZSB7XG4gICAgLy8gTm8gd2hpdGVzcGFjZSwgcmF3IGlzIHByZXR0aWVyLlxuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignZGVzdGluYXRpb25SYXcnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS51cmwsIHtcbiAgICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgICAgYWZ0ZXI6IG5vZGUudGl0bGUgPyAnICcgOiAnXFxuJyxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgc3ViZXhpdCgpXG5cbiAgaWYgKG5vZGUudGl0bGUpIHtcbiAgICBzdWJleGl0ID0gc3RhdGUuZW50ZXIoYHRpdGxlJHtzdWZmaXh9YClcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJyAnICsgcXVvdGUpXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgICAgc3RhdGUuc2FmZShub2RlLnRpdGxlLCB7XG4gICAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICAgIGFmdGVyOiBxdW90ZSxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShxdW90ZSlcbiAgICBzdWJleGl0KClcbiAgfVxuXG4gIGV4aXQoKVxuXG4gIHJldHVybiB2YWx1ZVxufVxuIl0sIm5hbWVzIjpbImNoZWNrUXVvdGUiLCJkZWZpbml0aW9uIiwibm9kZSIsIl8iLCJzdGF0ZSIsImluZm8iLCJxdW90ZSIsInN1ZmZpeCIsImV4aXQiLCJlbnRlciIsInN1YmV4aXQiLCJ0cmFja2VyIiwiY3JlYXRlVHJhY2tlciIsInZhbHVlIiwibW92ZSIsInNhZmUiLCJhc3NvY2lhdGlvbklkIiwiYmVmb3JlIiwiYWZ0ZXIiLCJjdXJyZW50IiwidXJsIiwidGVzdCIsInRpdGxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/definition.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ emphasis: () => (/* binding */ emphasis)\n/* harmony export */ });\n/* harmony import */ var _util_check_emphasis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-emphasis.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js\");\n/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \nemphasis.peek = emphasisPeek;\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function emphasis(node, _, state, info) {\n const marker = (0,_util_check_emphasis_js__WEBPACK_IMPORTED_MODULE_0__.checkEmphasis)(state);\n const exit = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n let value = tracker.move(marker);\n value += tracker.move(state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n }));\n value += tracker.move(marker);\n exit();\n return value;\n}\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */ function emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9lbXBoYXNpcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7OztDQUtDLEdBRXNEO0FBRXZEQyxTQUFTQyxJQUFJLEdBQUdDO0FBRWhCLHVFQUF1RTtBQUN2RSwyQ0FBMkM7QUFDM0MsNEVBQTRFO0FBQzVFLHdDQUF3QztBQUN4Qzs7Ozs7O0NBTUMsR0FDTSxTQUFTRixTQUFTRyxJQUFJLEVBQUVDLENBQUMsRUFBRUMsS0FBSyxFQUFFQyxJQUFJO0lBQzNDLE1BQU1DLFNBQVNSLHNFQUFhQSxDQUFDTTtJQUM3QixNQUFNRyxPQUFPSCxNQUFNSSxLQUFLLENBQUM7SUFDekIsTUFBTUMsVUFBVUwsTUFBTU0sYUFBYSxDQUFDTDtJQUNwQyxJQUFJTSxRQUFRRixRQUFRRyxJQUFJLENBQUNOO0lBQ3pCSyxTQUFTRixRQUFRRyxJQUFJLENBQ25CUixNQUFNUyxpQkFBaUIsQ0FBQ1gsTUFBTTtRQUM1QlksUUFBUUg7UUFDUkksT0FBT1Q7UUFDUCxHQUFHRyxRQUFRTyxPQUFPLEVBQUU7SUFDdEI7SUFFRkwsU0FBU0YsUUFBUUcsSUFBSSxDQUFDTjtJQUN0QkM7SUFDQSxPQUFPSTtBQUNUO0FBRUE7Ozs7O0NBS0MsR0FDRCxTQUFTVixhQUFhRSxDQUFDLEVBQUVjLEVBQUUsRUFBRWIsS0FBSztJQUNoQyxPQUFPQSxNQUFNYyxPQUFPLENBQUNuQixRQUFRLElBQUk7QUFDbkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvZW1waGFzaXMuanM/ZDgyYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuRW1waGFzaXN9IEVtcGhhc2lzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge2NoZWNrRW1waGFzaXN9IGZyb20gJy4uL3V0aWwvY2hlY2stZW1waGFzaXMuanMnXG5cbmVtcGhhc2lzLnBlZWsgPSBlbXBoYXNpc1BlZWtcblxuLy8gVG8gZG86IHRoZXJlIGFyZSBjYXNlcyB3aGVyZSBlbXBoYXNpcyBjYW5ub3Qg4oCcZm9ybeKAnSBkZXBlbmRpbmcgb24gdGhlXG4vLyBwcmV2aW91cyBvciBuZXh0IGNoYXJhY3RlciBvZiBzZXF1ZW5jZXMuXG4vLyBUaGVyZeKAmXMgbm8gd2F5IGFyb3VuZCB0aGF0IHRob3VnaCwgZXhjZXB0IGZvciBpbmplY3RpbmcgemVyby13aWR0aCBzdHVmZi5cbi8vIERvIHdlIG5lZWQgdG8gc2FmZWd1YXJkIGFnYWluc3QgdGhhdD9cbi8qKlxuICogQHBhcmFtIHtFbXBoYXNpc30gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1waGFzaXMobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgbWFya2VyID0gY2hlY2tFbXBoYXNpcyhzdGF0ZSlcbiAgY29uc3QgZXhpdCA9IHN0YXRlLmVudGVyKCdlbXBoYXNpcycpXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZShtYXJrZXIpXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICBzdGF0ZS5jb250YWluZXJQaHJhc2luZyhub2RlLCB7XG4gICAgICBiZWZvcmU6IHZhbHVlLFxuICAgICAgYWZ0ZXI6IG1hcmtlcixcbiAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgfSlcbiAgKVxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUobWFya2VyKVxuICBleGl0KClcbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtFbXBoYXNpc30gX1xuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMVxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVtcGhhc2lzUGVlayhfLCBfMSwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLm9wdGlvbnMuZW1waGFzaXMgfHwgJyonXG59XG4iXSwibmFtZXMiOlsiY2hlY2tFbXBoYXNpcyIsImVtcGhhc2lzIiwicGVlayIsImVtcGhhc2lzUGVlayIsIm5vZGUiLCJfIiwic3RhdGUiLCJpbmZvIiwibWFya2VyIiwiZXhpdCIsImVudGVyIiwidHJhY2tlciIsImNyZWF0ZVRyYWNrZXIiLCJ2YWx1ZSIsIm1vdmUiLCJjb250YWluZXJQaHJhc2luZyIsImJlZm9yZSIsImFmdGVyIiwiY3VycmVudCIsIl8xIiwib3B0aW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/heading.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/heading.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ heading: () => (/* binding */ heading)\n/* harmony export */ });\n/* harmony import */ var _util_format_heading_as_setext_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/format-heading-as-setext.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js\");\n/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1);\n const tracker = state.createTracker(info);\n if ((0,_util_format_heading_as_setext_js__WEBPACK_IMPORTED_MODULE_0__.formatHeadingAsSetext)(node, state)) {\n const exit = state.enter(\"headingSetext\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit();\n exit();\n return value + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(// The whole size…\n value.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf(\"\\r\"), value.lastIndexOf(\"\\n\")) + 1));\n }\n const sequence = \"#\".repeat(rank);\n const exit = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value = \"&#x\" + value.charCodeAt(0).toString(16).toUpperCase() + \";\" + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit();\n return value;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9oZWFkaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFd0U7QUFFekU7Ozs7OztDQU1DLEdBQ00sU0FBU0MsUUFBUUMsSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUssRUFBRUMsSUFBSTtJQUMxQyxNQUFNQyxPQUFPQyxLQUFLQyxHQUFHLENBQUNELEtBQUtFLEdBQUcsQ0FBQyxHQUFHUCxLQUFLUSxLQUFLLElBQUksSUFBSTtJQUNwRCxNQUFNQyxVQUFVUCxNQUFNUSxhQUFhLENBQUNQO0lBRXBDLElBQUlMLHdGQUFxQkEsQ0FBQ0UsTUFBTUUsUUFBUTtRQUN0QyxNQUFNUyxPQUFPVCxNQUFNVSxLQUFLLENBQUM7UUFDekIsTUFBTUMsVUFBVVgsTUFBTVUsS0FBSyxDQUFDO1FBQzVCLE1BQU1FLFFBQVFaLE1BQU1hLGlCQUFpQixDQUFDZixNQUFNO1lBQzFDLEdBQUdTLFFBQVFPLE9BQU8sRUFBRTtZQUNwQkMsUUFBUTtZQUNSQyxPQUFPO1FBQ1Q7UUFDQUw7UUFDQUY7UUFFQSxPQUNFRyxRQUNBLE9BQ0EsQ0FBQ1YsU0FBUyxJQUFJLE1BQU0sR0FBRSxFQUFHZSxNQUFNLENBQzdCLGtCQUFrQjtRQUNsQkwsTUFBTU0sTUFBTSxHQUNWLDZEQUE2RDtRQUM3RCx1QkFBdUI7UUFDdEJmLENBQUFBLEtBQUtDLEdBQUcsQ0FBQ1EsTUFBTU8sV0FBVyxDQUFDLE9BQU9QLE1BQU1PLFdBQVcsQ0FBQyxTQUFTO0lBR3RFO0lBRUEsTUFBTUMsV0FBVyxJQUFJSCxNQUFNLENBQUNmO0lBQzVCLE1BQU1PLE9BQU9ULE1BQU1VLEtBQUssQ0FBQztJQUN6QixNQUFNQyxVQUFVWCxNQUFNVSxLQUFLLENBQUM7SUFFNUIsNkVBQTZFO0lBQzdFLGdFQUFnRTtJQUNoRSw0RUFBNEU7SUFDNUUseUNBQXlDO0lBQ3pDSCxRQUFRYyxJQUFJLENBQUNELFdBQVc7SUFFeEIsSUFBSVIsUUFBUVosTUFBTWEsaUJBQWlCLENBQUNmLE1BQU07UUFDeENpQixRQUFRO1FBQ1JDLE9BQU87UUFDUCxHQUFHVCxRQUFRTyxPQUFPLEVBQUU7SUFDdEI7SUFFQSxJQUFJLFNBQVNRLElBQUksQ0FBQ1YsUUFBUTtRQUN4Qiw4REFBOEQ7UUFDOURBLFFBQ0UsUUFDQUEsTUFBTVcsVUFBVSxDQUFDLEdBQUdDLFFBQVEsQ0FBQyxJQUFJQyxXQUFXLEtBQzVDLE1BQ0FiLE1BQU1jLEtBQUssQ0FBQztJQUNoQjtJQUVBZCxRQUFRQSxRQUFRUSxXQUFXLE1BQU1SLFFBQVFRO0lBRXpDLElBQUlwQixNQUFNMkIsT0FBTyxDQUFDQyxRQUFRLEVBQUU7UUFDMUJoQixTQUFTLE1BQU1RO0lBQ2pCO0lBRUFUO0lBQ0FGO0lBRUEsT0FBT0c7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9oZWFkaW5nLmpzP2ZjNDEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkhlYWRpbmd9IEhlYWRpbmdcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7Zm9ybWF0SGVhZGluZ0FzU2V0ZXh0fSBmcm9tICcuLi91dGlsL2Zvcm1hdC1oZWFkaW5nLWFzLXNldGV4dC5qcydcblxuLyoqXG4gKiBAcGFyYW0ge0hlYWRpbmd9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhlYWRpbmcobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgcmFuayA9IE1hdGgubWF4KE1hdGgubWluKDYsIG5vZGUuZGVwdGggfHwgMSksIDEpXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG5cbiAgaWYgKGZvcm1hdEhlYWRpbmdBc1NldGV4dChub2RlLCBzdGF0ZSkpIHtcbiAgICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2hlYWRpbmdTZXRleHQnKVxuICAgIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigncGhyYXNpbmcnKVxuICAgIGNvbnN0IHZhbHVlID0gc3RhdGUuY29udGFpbmVyUGhyYXNpbmcobm9kZSwge1xuICAgICAgLi4udHJhY2tlci5jdXJyZW50KCksXG4gICAgICBiZWZvcmU6ICdcXG4nLFxuICAgICAgYWZ0ZXI6ICdcXG4nXG4gICAgfSlcbiAgICBzdWJleGl0KClcbiAgICBleGl0KClcblxuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZSArXG4gICAgICAnXFxuJyArXG4gICAgICAocmFuayA9PT0gMSA/ICc9JyA6ICctJykucmVwZWF0KFxuICAgICAgICAvLyBUaGUgd2hvbGUgc2l6ZeKAplxuICAgICAgICB2YWx1ZS5sZW5ndGggLVxuICAgICAgICAgIC8vIE1pbnVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZSBsYXN0IEVPTCAob3JcbiAgICAgICAgICAvLyAwIGlmIHRoZXJlIGlzIG5vbmUp4oCmXG4gICAgICAgICAgKE1hdGgubWF4KHZhbHVlLmxhc3RJbmRleE9mKCdcXHInKSwgdmFsdWUubGFzdEluZGV4T2YoJ1xcbicpKSArIDEpXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgY29uc3Qgc2VxdWVuY2UgPSAnIycucmVwZWF0KHJhbmspXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignaGVhZGluZ0F0eCcpXG4gIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigncGhyYXNpbmcnKVxuXG4gIC8vIE5vdGU6IGZvciBwcm9wZXIgdHJhY2tpbmcsIHdlIHNob3VsZCByZXNldCB0aGUgb3V0cHV0IHBvc2l0aW9ucyB3aGVuIHRoZXJlXG4gIC8vIGlzIG5vIGNvbnRlbnQgcmV0dXJuZWQsIGJlY2F1c2UgdGhlbiB0aGUgc3BhY2UgaXMgbm90IG91dHB1dC5cbiAgLy8gUHJhY3RpY2FsbHksIGluIHRoYXQgY2FzZSwgdGhlcmUgaXMgbm8gY29udGVudCwgc28gaXQgZG9lc27igJl0IG1hdHRlciB0aGF0XG4gIC8vIHdl4oCZdmUgdHJhY2tlZCBvbmUgdG9vIG1hbnkgY2hhcmFjdGVycy5cbiAgdHJhY2tlci5tb3ZlKHNlcXVlbmNlICsgJyAnKVxuXG4gIGxldCB2YWx1ZSA9IHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIHtcbiAgICBiZWZvcmU6ICcjICcsXG4gICAgYWZ0ZXI6ICdcXG4nLFxuICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gIH0pXG5cbiAgaWYgKC9eW1xcdCBdLy50ZXN0KHZhbHVlKSkge1xuICAgIC8vIFRvIGRvOiB3aGF0IGVmZmVjdCBoYXMgdGhlIGNoYXJhY3RlciByZWZlcmVuY2Ugb24gdHJhY2tpbmc/XG4gICAgdmFsdWUgPVxuICAgICAgJyYjeCcgK1xuICAgICAgdmFsdWUuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSArXG4gICAgICAnOycgK1xuICAgICAgdmFsdWUuc2xpY2UoMSlcbiAgfVxuXG4gIHZhbHVlID0gdmFsdWUgPyBzZXF1ZW5jZSArICcgJyArIHZhbHVlIDogc2VxdWVuY2VcblxuICBpZiAoc3RhdGUub3B0aW9ucy5jbG9zZUF0eCkge1xuICAgIHZhbHVlICs9ICcgJyArIHNlcXVlbmNlXG4gIH1cblxuICBzdWJleGl0KClcbiAgZXhpdCgpXG5cbiAgcmV0dXJuIHZhbHVlXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0SGVhZGluZ0FzU2V0ZXh0IiwiaGVhZGluZyIsIm5vZGUiLCJfIiwic3RhdGUiLCJpbmZvIiwicmFuayIsIk1hdGgiLCJtYXgiLCJtaW4iLCJkZXB0aCIsInRyYWNrZXIiLCJjcmVhdGVUcmFja2VyIiwiZXhpdCIsImVudGVyIiwic3ViZXhpdCIsInZhbHVlIiwiY29udGFpbmVyUGhyYXNpbmciLCJjdXJyZW50IiwiYmVmb3JlIiwiYWZ0ZXIiLCJyZXBlYXQiLCJsZW5ndGgiLCJsYXN0SW5kZXhPZiIsInNlcXVlbmNlIiwibW92ZSIsInRlc3QiLCJjaGFyQ29kZUF0IiwidG9TdHJpbmciLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwib3B0aW9ucyIsImNsb3NlQXR4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/heading.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/html.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/html.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ html: () => (/* binding */ html)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').Html} Html\n */ html.peek = htmlPeek;\n/**\n * @param {Html} node\n * @returns {string}\n */ function html(node) {\n return node.value || \"\";\n}\n/**\n * @returns {string}\n */ function htmlPeek() {\n return \"<\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9odG1sLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Q0FFQyxHQUVEQSxLQUFLQyxJQUFJLEdBQUdDO0FBRVo7OztDQUdDLEdBQ00sU0FBU0YsS0FBS0csSUFBSTtJQUN2QixPQUFPQSxLQUFLQyxLQUFLLElBQUk7QUFDdkI7QUFFQTs7Q0FFQyxHQUNELFNBQVNGO0lBQ1AsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2h0bWwuanM/Nzc0NCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuSHRtbH0gSHRtbFxuICovXG5cbmh0bWwucGVlayA9IGh0bWxQZWVrXG5cbi8qKlxuICogQHBhcmFtIHtIdG1sfSBub2RlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaHRtbChub2RlKSB7XG4gIHJldHVybiBub2RlLnZhbHVlIHx8ICcnXG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gaHRtbFBlZWsoKSB7XG4gIHJldHVybiAnPCdcbn1cbiJdLCJuYW1lcyI6WyJodG1sIiwicGVlayIsImh0bWxQZWVrIiwibm9kZSIsInZhbHVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js":
-/*!*******************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js ***!
- \*******************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ imageReference: () => (/* binding */ imageReference)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ imageReference.peek = imageReferencePeek;\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function imageReference(node, _, state, info) {\n const type = node.referenceType;\n const exit = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n // Remove the unwanted `[`.\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\n/**\n * @returns {string}\n */ function imageReferencePeek() {\n return \"!\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9pbWFnZS1yZWZlcmVuY2UuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7OztDQUtDLEdBRURBLGVBQWVDLElBQUksR0FBR0M7QUFFdEI7Ozs7OztDQU1DLEdBQ00sU0FBU0YsZUFBZUcsSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUssRUFBRUMsSUFBSTtJQUNqRCxNQUFNQyxPQUFPSixLQUFLSyxhQUFhO0lBQy9CLE1BQU1DLE9BQU9KLE1BQU1LLEtBQUssQ0FBQztJQUN6QixJQUFJQyxVQUFVTixNQUFNSyxLQUFLLENBQUM7SUFDMUIsTUFBTUUsVUFBVVAsTUFBTVEsYUFBYSxDQUFDUDtJQUNwQyxJQUFJUSxRQUFRRixRQUFRRyxJQUFJLENBQUM7SUFDekIsTUFBTUMsTUFBTVgsTUFBTVksSUFBSSxDQUFDZCxLQUFLYSxHQUFHLEVBQUU7UUFDL0JFLFFBQVFKO1FBQ1JLLE9BQU87UUFDUCxHQUFHUCxRQUFRUSxPQUFPLEVBQUU7SUFDdEI7SUFDQU4sU0FBU0YsUUFBUUcsSUFBSSxDQUFDQyxNQUFNO0lBRTVCTDtJQUNBLG9FQUFvRTtJQUNwRSxNQUFNVSxRQUFRaEIsTUFBTWdCLEtBQUs7SUFDekJoQixNQUFNZ0IsS0FBSyxHQUFHLEVBQUU7SUFDaEJWLFVBQVVOLE1BQU1LLEtBQUssQ0FBQztJQUN0Qiw4RUFBOEU7SUFDOUUsMkVBQTJFO0lBQzNFLDRFQUE0RTtJQUM1RSx5Q0FBeUM7SUFDekMsTUFBTVksWUFBWWpCLE1BQU1ZLElBQUksQ0FBQ1osTUFBTWtCLGFBQWEsQ0FBQ3BCLE9BQU87UUFDdERlLFFBQVFKO1FBQ1JLLE9BQU87UUFDUCxHQUFHUCxRQUFRUSxPQUFPLEVBQUU7SUFDdEI7SUFDQVQ7SUFDQU4sTUFBTWdCLEtBQUssR0FBR0E7SUFDZFo7SUFFQSxJQUFJRixTQUFTLFVBQVUsQ0FBQ1MsT0FBT0EsUUFBUU0sV0FBVztRQUNoRFIsU0FBU0YsUUFBUUcsSUFBSSxDQUFDTyxZQUFZO0lBQ3BDLE9BQU8sSUFBSWYsU0FBUyxZQUFZO1FBQzlCLDJCQUEyQjtRQUMzQk8sUUFBUUEsTUFBTVUsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUMxQixPQUFPO1FBQ0xWLFNBQVNGLFFBQVFHLElBQUksQ0FBQztJQUN4QjtJQUVBLE9BQU9EO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNELFNBQVNaO0lBQ1AsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2ltYWdlLXJlZmVyZW5jZS5qcz82ZDM5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5JbWFnZVJlZmVyZW5jZX0gSW1hZ2VSZWZlcmVuY2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltYWdlUmVmZXJlbmNlLnBlZWsgPSBpbWFnZVJlZmVyZW5jZVBlZWtcblxuLyoqXG4gKiBAcGFyYW0ge0ltYWdlUmVmZXJlbmNlfSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZVJlZmVyZW5jZShub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCB0eXBlID0gbm9kZS5yZWZlcmVuY2VUeXBlXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignaW1hZ2VSZWZlcmVuY2UnKVxuICBsZXQgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdsYWJlbCcpXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZSgnIVsnKVxuICBjb25zdCBhbHQgPSBzdGF0ZS5zYWZlKG5vZGUuYWx0LCB7XG4gICAgYmVmb3JlOiB2YWx1ZSxcbiAgICBhZnRlcjogJ10nLFxuICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gIH0pXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZShhbHQgKyAnXVsnKVxuXG4gIHN1YmV4aXQoKVxuICAvLyBIaWRlIHRoZSBmYWN0IHRoYXQgd2XigJlyZSBpbiBwaHJhc2luZywgYmVjYXVzZSBlc2NhcGVzIGRvbuKAmXQgd29yay5cbiAgY29uc3Qgc3RhY2sgPSBzdGF0ZS5zdGFja1xuICBzdGF0ZS5zdGFjayA9IFtdXG4gIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigncmVmZXJlbmNlJylcbiAgLy8gTm90ZTogZm9yIHByb3BlciB0cmFja2luZywgd2Ugc2hvdWxkIHJlc2V0IHRoZSBvdXRwdXQgcG9zaXRpb25zIHdoZW4gd2UgZW5kXG4gIC8vIHVwIG1ha2luZyBhIGBzaG9ydGN1dGAgcmVmZXJlbmNlLCBiZWNhdXNlIHRoZW4gdGhlcmUgaXMgbm8gYnJhY2Ugb3V0cHV0LlxuICAvLyBQcmFjdGljYWxseSwgaW4gdGhhdCBjYXNlLCB0aGVyZSBpcyBubyBjb250ZW50LCBzbyBpdCBkb2VzbuKAmXQgbWF0dGVyIHRoYXRcbiAgLy8gd2XigJl2ZSB0cmFja2VkIG9uZSB0b28gbWFueSBjaGFyYWN0ZXJzLlxuICBjb25zdCByZWZlcmVuY2UgPSBzdGF0ZS5zYWZlKHN0YXRlLmFzc29jaWF0aW9uSWQobm9kZSksIHtcbiAgICBiZWZvcmU6IHZhbHVlLFxuICAgIGFmdGVyOiAnXScsXG4gICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgfSlcbiAgc3ViZXhpdCgpXG4gIHN0YXRlLnN0YWNrID0gc3RhY2tcbiAgZXhpdCgpXG5cbiAgaWYgKHR5cGUgPT09ICdmdWxsJyB8fCAhYWx0IHx8IGFsdCAhPT0gcmVmZXJlbmNlKSB7XG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKHJlZmVyZW5jZSArICddJylcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnc2hvcnRjdXQnKSB7XG4gICAgLy8gUmVtb3ZlIHRoZSB1bndhbnRlZCBgW2AuXG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCAtMSlcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJ10nKVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gaW1hZ2VSZWZlcmVuY2VQZWVrKCkge1xuICByZXR1cm4gJyEnXG59XG4iXSwibmFtZXMiOlsiaW1hZ2VSZWZlcmVuY2UiLCJwZWVrIiwiaW1hZ2VSZWZlcmVuY2VQZWVrIiwibm9kZSIsIl8iLCJzdGF0ZSIsImluZm8iLCJ0eXBlIiwicmVmZXJlbmNlVHlwZSIsImV4aXQiLCJlbnRlciIsInN1YmV4aXQiLCJ0cmFja2VyIiwiY3JlYXRlVHJhY2tlciIsInZhbHVlIiwibW92ZSIsImFsdCIsInNhZmUiLCJiZWZvcmUiLCJhZnRlciIsImN1cnJlbnQiLCJzdGFjayIsInJlZmVyZW5jZSIsImFzc29jaWF0aW9uSWQiLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/image.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/image.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ image: () => (/* binding */ image)\n/* harmony export */ });\n/* harmony import */ var _util_check_quote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-quote.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js\");\n/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \nimage.peek = imagePeek;\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function image(node, _, state, info) {\n const quote = (0,_util_check_quote_js__WEBPACK_IMPORTED_MODULE_0__.checkQuote)(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(state.safe(node.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n }));\n value += tracker.move(\"](\");\n subexit();\n if (// If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(state.safe(node.url, {\n before: value,\n after: \">\",\n ...tracker.current()\n }));\n value += tracker.move(\">\");\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n }));\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n }));\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit();\n return value;\n}\n/**\n * @returns {string}\n */ function imagePeek() {\n return \"!\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9pbWFnZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7OztDQUtDLEdBRWdEO0FBRWpEQyxNQUFNQyxJQUFJLEdBQUdDO0FBRWI7Ozs7OztDQU1DLEdBQ00sU0FBU0YsTUFBTUcsSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUssRUFBRUMsSUFBSTtJQUN4QyxNQUFNQyxRQUFRUixnRUFBVUEsQ0FBQ007SUFDekIsTUFBTUcsU0FBU0QsVUFBVSxNQUFNLFVBQVU7SUFDekMsTUFBTUUsT0FBT0osTUFBTUssS0FBSyxDQUFDO0lBQ3pCLElBQUlDLFVBQVVOLE1BQU1LLEtBQUssQ0FBQztJQUMxQixNQUFNRSxVQUFVUCxNQUFNUSxhQUFhLENBQUNQO0lBQ3BDLElBQUlRLFFBQVFGLFFBQVFHLElBQUksQ0FBQztJQUN6QkQsU0FBU0YsUUFBUUcsSUFBSSxDQUNuQlYsTUFBTVcsSUFBSSxDQUFDYixLQUFLYyxHQUFHLEVBQUU7UUFBQ0MsUUFBUUo7UUFBT0ssT0FBTztRQUFLLEdBQUdQLFFBQVFRLE9BQU8sRUFBRTtJQUFBO0lBRXZFTixTQUFTRixRQUFRRyxJQUFJLENBQUM7SUFFdEJKO0lBRUEsSUFFRSwwQ0FEMEM7SUFDekMsQ0FBQ1IsS0FBS2tCLEdBQUcsSUFBSWxCLEtBQUttQixLQUFLLElBQ3hCLGlEQUFpRDtJQUNqRCxlQUFlQyxJQUFJLENBQUNwQixLQUFLa0IsR0FBRyxHQUM1QjtRQUNBVixVQUFVTixNQUFNSyxLQUFLLENBQUM7UUFDdEJJLFNBQVNGLFFBQVFHLElBQUksQ0FBQztRQUN0QkQsU0FBU0YsUUFBUUcsSUFBSSxDQUNuQlYsTUFBTVcsSUFBSSxDQUFDYixLQUFLa0IsR0FBRyxFQUFFO1lBQUNILFFBQVFKO1lBQU9LLE9BQU87WUFBSyxHQUFHUCxRQUFRUSxPQUFPLEVBQUU7UUFBQTtRQUV2RU4sU0FBU0YsUUFBUUcsSUFBSSxDQUFDO0lBQ3hCLE9BQU87UUFDTCxrQ0FBa0M7UUFDbENKLFVBQVVOLE1BQU1LLEtBQUssQ0FBQztRQUN0QkksU0FBU0YsUUFBUUcsSUFBSSxDQUNuQlYsTUFBTVcsSUFBSSxDQUFDYixLQUFLa0IsR0FBRyxFQUFFO1lBQ25CSCxRQUFRSjtZQUNSSyxPQUFPaEIsS0FBS21CLEtBQUssR0FBRyxNQUFNO1lBQzFCLEdBQUdWLFFBQVFRLE9BQU8sRUFBRTtRQUN0QjtJQUVKO0lBRUFUO0lBRUEsSUFBSVIsS0FBS21CLEtBQUssRUFBRTtRQUNkWCxVQUFVTixNQUFNSyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUVGLE9BQU8sQ0FBQztRQUN0Q00sU0FBU0YsUUFBUUcsSUFBSSxDQUFDLE1BQU1SO1FBQzVCTyxTQUFTRixRQUFRRyxJQUFJLENBQ25CVixNQUFNVyxJQUFJLENBQUNiLEtBQUttQixLQUFLLEVBQUU7WUFDckJKLFFBQVFKO1lBQ1JLLE9BQU9aO1lBQ1AsR0FBR0ssUUFBUVEsT0FBTyxFQUFFO1FBQ3RCO1FBRUZOLFNBQVNGLFFBQVFHLElBQUksQ0FBQ1I7UUFDdEJJO0lBQ0Y7SUFFQUcsU0FBU0YsUUFBUUcsSUFBSSxDQUFDO0lBQ3RCTjtJQUVBLE9BQU9LO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNELFNBQVNaO0lBQ1AsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2ltYWdlLmpzPzVhNzMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkltYWdlfSBJbWFnZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtjaGVja1F1b3RlfSBmcm9tICcuLi91dGlsL2NoZWNrLXF1b3RlLmpzJ1xuXG5pbWFnZS5wZWVrID0gaW1hZ2VQZWVrXG5cbi8qKlxuICogQHBhcmFtIHtJbWFnZX0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2Uobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgcXVvdGUgPSBjaGVja1F1b3RlKHN0YXRlKVxuICBjb25zdCBzdWZmaXggPSBxdW90ZSA9PT0gJ1wiJyA/ICdRdW90ZScgOiAnQXBvc3Ryb3BoZSdcbiAgY29uc3QgZXhpdCA9IHN0YXRlLmVudGVyKCdpbWFnZScpXG4gIGxldCBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ2xhYmVsJylcbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcbiAgbGV0IHZhbHVlID0gdHJhY2tlci5tb3ZlKCchWycpXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICBzdGF0ZS5zYWZlKG5vZGUuYWx0LCB7YmVmb3JlOiB2YWx1ZSwgYWZ0ZXI6ICddJywgLi4udHJhY2tlci5jdXJyZW50KCl9KVxuICApXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnXSgnKVxuXG4gIHN1YmV4aXQoKVxuXG4gIGlmIChcbiAgICAvLyBJZiB0aGVyZeKAmXMgbm8gdXJsIGJ1dCB0aGVyZSBpcyBhIHRpdGxl4oCmXG4gICAgKCFub2RlLnVybCAmJiBub2RlLnRpdGxlKSB8fFxuICAgIC8vIElmIHRoZXJlIGFyZSBjb250cm9sIGNoYXJhY3RlcnMgb3Igd2hpdGVzcGFjZS5cbiAgICAvW1xcMC0gXFx1MDA3Rl0vLnRlc3Qobm9kZS51cmwpXG4gICkge1xuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignZGVzdGluYXRpb25MaXRlcmFsJylcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJzwnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS51cmwsIHtiZWZvcmU6IHZhbHVlLCBhZnRlcjogJz4nLCAuLi50cmFja2VyLmN1cnJlbnQoKX0pXG4gICAgKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnPicpXG4gIH0gZWxzZSB7XG4gICAgLy8gTm8gd2hpdGVzcGFjZSwgcmF3IGlzIHByZXR0aWVyLlxuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignZGVzdGluYXRpb25SYXcnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS51cmwsIHtcbiAgICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgICAgYWZ0ZXI6IG5vZGUudGl0bGUgPyAnICcgOiAnKScsXG4gICAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHN1YmV4aXQoKVxuXG4gIGlmIChub2RlLnRpdGxlKSB7XG4gICAgc3ViZXhpdCA9IHN0YXRlLmVudGVyKGB0aXRsZSR7c3VmZml4fWApXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCcgJyArIHF1b3RlKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS50aXRsZSwge1xuICAgICAgICBiZWZvcmU6IHZhbHVlLFxuICAgICAgICBhZnRlcjogcXVvdGUsXG4gICAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgICB9KVxuICAgIClcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUocXVvdGUpXG4gICAgc3ViZXhpdCgpXG4gIH1cblxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJyknKVxuICBleGl0KClcblxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBpbWFnZVBlZWsoKSB7XG4gIHJldHVybiAnISdcbn1cbiJdLCJuYW1lcyI6WyJjaGVja1F1b3RlIiwiaW1hZ2UiLCJwZWVrIiwiaW1hZ2VQZWVrIiwibm9kZSIsIl8iLCJzdGF0ZSIsImluZm8iLCJxdW90ZSIsInN1ZmZpeCIsImV4aXQiLCJlbnRlciIsInN1YmV4aXQiLCJ0cmFja2VyIiwiY3JlYXRlVHJhY2tlciIsInZhbHVlIiwibW92ZSIsInNhZmUiLCJhbHQiLCJiZWZvcmUiLCJhZnRlciIsImN1cnJlbnQiLCJ1cmwiLCJ0aXRsZSIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/image.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/index.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/index.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handle: () => (/* binding */ handle)\n/* harmony export */ });\n/* harmony import */ var _blockquote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blockquote.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js\");\n/* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./break.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/break.js\");\n/* harmony import */ var _code_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./code.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/code.js\");\n/* harmony import */ var _definition_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./definition.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/definition.js\");\n/* harmony import */ var _emphasis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emphasis.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js\");\n/* harmony import */ var _heading_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./heading.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/heading.js\");\n/* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./html.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/html.js\");\n/* harmony import */ var _image_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./image.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/image.js\");\n/* harmony import */ var _image_reference_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./image-reference.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js\");\n/* harmony import */ var _inline_code_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./inline-code.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js\");\n/* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./link.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/link.js\");\n/* harmony import */ var _link_reference_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./link-reference.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js\");\n/* harmony import */ var _list_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./list.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/list.js\");\n/* harmony import */ var _list_item_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./list-item.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/list-item.js\");\n/* harmony import */ var _paragraph_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./paragraph.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./root.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/root.js\");\n/* harmony import */ var _strong_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./strong.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/strong.js\");\n/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./text.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/text.js\");\n/* harmony import */ var _thematic_break_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./thematic-break.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Default (CommonMark) handlers.\n */ const handle = {\n blockquote: _blockquote_js__WEBPACK_IMPORTED_MODULE_0__.blockquote,\n break: _break_js__WEBPACK_IMPORTED_MODULE_1__.hardBreak,\n code: _code_js__WEBPACK_IMPORTED_MODULE_2__.code,\n definition: _definition_js__WEBPACK_IMPORTED_MODULE_3__.definition,\n emphasis: _emphasis_js__WEBPACK_IMPORTED_MODULE_4__.emphasis,\n hardBreak: _break_js__WEBPACK_IMPORTED_MODULE_1__.hardBreak,\n heading: _heading_js__WEBPACK_IMPORTED_MODULE_5__.heading,\n html: _html_js__WEBPACK_IMPORTED_MODULE_6__.html,\n image: _image_js__WEBPACK_IMPORTED_MODULE_7__.image,\n imageReference: _image_reference_js__WEBPACK_IMPORTED_MODULE_8__.imageReference,\n inlineCode: _inline_code_js__WEBPACK_IMPORTED_MODULE_9__.inlineCode,\n link: _link_js__WEBPACK_IMPORTED_MODULE_10__.link,\n linkReference: _link_reference_js__WEBPACK_IMPORTED_MODULE_11__.linkReference,\n list: _list_js__WEBPACK_IMPORTED_MODULE_12__.list,\n listItem: _list_item_js__WEBPACK_IMPORTED_MODULE_13__.listItem,\n paragraph: _paragraph_js__WEBPACK_IMPORTED_MODULE_14__.paragraph,\n root: _root_js__WEBPACK_IMPORTED_MODULE_15__.root,\n strong: _strong_js__WEBPACK_IMPORTED_MODULE_16__.strong,\n text: _text_js__WEBPACK_IMPORTED_MODULE_17__.text,\n thematicBreak: _thematic_break_js__WEBPACK_IMPORTED_MODULE_18__.thematicBreak\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEwQztBQUNOO0FBQ047QUFDWTtBQUNKO0FBQ0Y7QUFDTjtBQUNFO0FBQ21CO0FBQ1I7QUFDYjtBQUNtQjtBQUNuQjtBQUNTO0FBQ0M7QUFDVjtBQUNJO0FBQ0o7QUFDbUI7QUFFakQ7O0NBRUMsR0FDTSxNQUFNbUIsU0FBUztJQUNwQm5CLFVBQVVBLHdEQUFBQTtJQUNWb0IsT0FBT25CLGdEQUFTQTtJQUNoQkMsSUFBSUEsNENBQUFBO0lBQ0pDLFVBQVVBLHdEQUFBQTtJQUNWQyxRQUFRQSxvREFBQUE7SUFDUkgsU0FBU0Esa0RBQUFBO0lBQ1RJLE9BQU9BLGtEQUFBQTtJQUNQQyxJQUFJQSw0Q0FBQUE7SUFDSkMsS0FBS0EsOENBQUFBO0lBQ0xDLGNBQWNBLGlFQUFBQTtJQUNkQyxVQUFVQSx5REFBQUE7SUFDVkMsSUFBSUEsNkNBQUFBO0lBQ0pDLGFBQWFBLGdFQUFBQTtJQUNiQyxJQUFJQSw2Q0FBQUE7SUFDSkMsUUFBUUEsc0RBQUFBO0lBQ1JDLFNBQVNBLHVEQUFBQTtJQUNUQyxJQUFJQSw2Q0FBQUE7SUFDSkMsTUFBTUEsaURBQUFBO0lBQ05DLElBQUlBLDZDQUFBQTtJQUNKQyxhQUFhQSxnRUFBQUE7QUFDZixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2luZGV4LmpzPzE5NTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtibG9ja3F1b3RlfSBmcm9tICcuL2Jsb2NrcXVvdGUuanMnXG5pbXBvcnQge2hhcmRCcmVha30gZnJvbSAnLi9icmVhay5qcydcbmltcG9ydCB7Y29kZX0gZnJvbSAnLi9jb2RlLmpzJ1xuaW1wb3J0IHtkZWZpbml0aW9ufSBmcm9tICcuL2RlZmluaXRpb24uanMnXG5pbXBvcnQge2VtcGhhc2lzfSBmcm9tICcuL2VtcGhhc2lzLmpzJ1xuaW1wb3J0IHtoZWFkaW5nfSBmcm9tICcuL2hlYWRpbmcuanMnXG5pbXBvcnQge2h0bWx9IGZyb20gJy4vaHRtbC5qcydcbmltcG9ydCB7aW1hZ2V9IGZyb20gJy4vaW1hZ2UuanMnXG5pbXBvcnQge2ltYWdlUmVmZXJlbmNlfSBmcm9tICcuL2ltYWdlLXJlZmVyZW5jZS5qcydcbmltcG9ydCB7aW5saW5lQ29kZX0gZnJvbSAnLi9pbmxpbmUtY29kZS5qcydcbmltcG9ydCB7bGlua30gZnJvbSAnLi9saW5rLmpzJ1xuaW1wb3J0IHtsaW5rUmVmZXJlbmNlfSBmcm9tICcuL2xpbmstcmVmZXJlbmNlLmpzJ1xuaW1wb3J0IHtsaXN0fSBmcm9tICcuL2xpc3QuanMnXG5pbXBvcnQge2xpc3RJdGVtfSBmcm9tICcuL2xpc3QtaXRlbS5qcydcbmltcG9ydCB7cGFyYWdyYXBofSBmcm9tICcuL3BhcmFncmFwaC5qcydcbmltcG9ydCB7cm9vdH0gZnJvbSAnLi9yb290LmpzJ1xuaW1wb3J0IHtzdHJvbmd9IGZyb20gJy4vc3Ryb25nLmpzJ1xuaW1wb3J0IHt0ZXh0fSBmcm9tICcuL3RleHQuanMnXG5pbXBvcnQge3RoZW1hdGljQnJlYWt9IGZyb20gJy4vdGhlbWF0aWMtYnJlYWsuanMnXG5cbi8qKlxuICogRGVmYXVsdCAoQ29tbW9uTWFyaykgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGUgPSB7XG4gIGJsb2NrcXVvdGUsXG4gIGJyZWFrOiBoYXJkQnJlYWssXG4gIGNvZGUsXG4gIGRlZmluaXRpb24sXG4gIGVtcGhhc2lzLFxuICBoYXJkQnJlYWssXG4gIGhlYWRpbmcsXG4gIGh0bWwsXG4gIGltYWdlLFxuICBpbWFnZVJlZmVyZW5jZSxcbiAgaW5saW5lQ29kZSxcbiAgbGluayxcbiAgbGlua1JlZmVyZW5jZSxcbiAgbGlzdCxcbiAgbGlzdEl0ZW0sXG4gIHBhcmFncmFwaCxcbiAgcm9vdCxcbiAgc3Ryb25nLFxuICB0ZXh0LFxuICB0aGVtYXRpY0JyZWFrXG59XG4iXSwibmFtZXMiOlsiYmxvY2txdW90ZSIsImhhcmRCcmVhayIsImNvZGUiLCJkZWZpbml0aW9uIiwiZW1waGFzaXMiLCJoZWFkaW5nIiwiaHRtbCIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwibGluayIsImxpbmtSZWZlcmVuY2UiLCJsaXN0IiwibGlzdEl0ZW0iLCJwYXJhZ3JhcGgiLCJyb290Iiwic3Ryb25nIiwidGV4dCIsInRoZW1hdGljQnJlYWsiLCJoYW5kbGUiLCJicmVhayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ inlineCode: () => (/* binding */ inlineCode)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').State} State\n */ inlineCode.peek = inlineCodePeek;\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */ function inlineCode(node, _, state) {\n let value = node.value || \"\";\n let sequence = \"`\";\n let index = -1;\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while(new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)){\n sequence += \"`\";\n }\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while(++index < state.unsafe.length){\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n /** @type {RegExpExecArray | null} */ let match;\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue;\n while(match = expression.exec(value)){\n let position = match.index;\n // Support CRLF (patterns only look for one of the characters).\n if (value.charCodeAt(position) === 10 /* `\\n` */ && value.charCodeAt(position - 1) === 13 /* `\\r` */ ) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\n/**\n * @returns {string}\n */ function inlineCodePeek() {\n return \"`\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9pbmxpbmUtY29kZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUVEQSxXQUFXQyxJQUFJLEdBQUdDO0FBRWxCOzs7OztDQUtDLEdBQ00sU0FBU0YsV0FBV0csSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUs7SUFDdkMsSUFBSUMsUUFBUUgsS0FBS0csS0FBSyxJQUFJO0lBQzFCLElBQUlDLFdBQVc7SUFDZixJQUFJQyxRQUFRLENBQUM7SUFFYiwyRUFBMkU7SUFDM0UsT0FBTztJQUNQLHNDQUFzQztJQUN0QyxNQUFPLElBQUlDLE9BQU8sYUFBYUYsV0FBVyxZQUFZRyxJQUFJLENBQUNKLE9BQVE7UUFDakVDLFlBQVk7SUFDZDtJQUVBLHdFQUF3RTtJQUN4RSwyRUFBMkU7SUFDM0UsSUFDRSxXQUFXRyxJQUFJLENBQUNKLFVBQ2YsWUFBWUksSUFBSSxDQUFDSixVQUFVLFdBQVdJLElBQUksQ0FBQ0osVUFBVyxRQUFRSSxJQUFJLENBQUNKLE1BQUssR0FDekU7UUFDQUEsUUFBUSxNQUFNQSxRQUFRO0lBQ3hCO0lBRUEsNkVBQTZFO0lBQzdFLHFCQUFxQjtJQUNyQix5RUFBeUU7SUFDekUsNEJBQTRCO0lBQzVCLG1FQUFtRTtJQUNuRSw2RUFBNkU7SUFDN0UsWUFBWTtJQUNaLE1BQU8sRUFBRUUsUUFBUUgsTUFBTU0sTUFBTSxDQUFDQyxNQUFNLENBQUU7UUFDcEMsTUFBTUMsVUFBVVIsTUFBTU0sTUFBTSxDQUFDSCxNQUFNO1FBQ25DLE1BQU1NLGFBQWFULE1BQU1VLGNBQWMsQ0FBQ0Y7UUFDeEMsbUNBQW1DLEdBQ25DLElBQUlHO1FBRUosNEJBQTRCO1FBQzVCLHlFQUF5RTtRQUN6RSxNQUFNO1FBQ04sSUFBSSxDQUFDSCxRQUFRSSxPQUFPLEVBQUU7UUFFdEIsTUFBUUQsUUFBUUYsV0FBV0ksSUFBSSxDQUFDWixPQUFTO1lBQ3ZDLElBQUlhLFdBQVdILE1BQU1SLEtBQUs7WUFFMUIsK0RBQStEO1lBQy9ELElBQ0VGLE1BQU1jLFVBQVUsQ0FBQ0QsY0FBYyxHQUFHLFFBQVEsT0FDMUNiLE1BQU1jLFVBQVUsQ0FBQ0QsV0FBVyxPQUFPLEdBQUcsUUFBUSxLQUM5QztnQkFDQUE7WUFDRjtZQUVBYixRQUFRQSxNQUFNZSxLQUFLLENBQUMsR0FBR0YsWUFBWSxNQUFNYixNQUFNZSxLQUFLLENBQUNMLE1BQU1SLEtBQUssR0FBRztRQUNyRTtJQUNGO0lBRUEsT0FBT0QsV0FBV0QsUUFBUUM7QUFDNUI7QUFFQTs7Q0FFQyxHQUNELFNBQVNMO0lBQ1AsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2lubGluZS1jb2RlLmpzPzU5MTMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLklubGluZUNvZGV9IElubGluZUNvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbmxpbmVDb2RlLnBlZWsgPSBpbmxpbmVDb2RlUGVla1xuXG4vKipcbiAqIEBwYXJhbSB7SW5saW5lQ29kZX0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlubGluZUNvZGUobm9kZSwgXywgc3RhdGUpIHtcbiAgbGV0IHZhbHVlID0gbm9kZS52YWx1ZSB8fCAnJ1xuICBsZXQgc2VxdWVuY2UgPSAnYCdcbiAgbGV0IGluZGV4ID0gLTFcblxuICAvLyBJZiB0aGVyZSBpcyBhIHNpbmdsZSBncmF2ZSBhY2NlbnQgb24gaXRzIG93biBpbiB0aGUgY29kZSwgdXNlIGEgZmVuY2Ugb2ZcbiAgLy8gdHdvLlxuICAvLyBJZiB0aGVyZSBhcmUgdHdvIGluIGEgcm93LCB1c2Ugb25lLlxuICB3aGlsZSAobmV3IFJlZ0V4cCgnKF58W15gXSknICsgc2VxdWVuY2UgKyAnKFteYF18JCknKS50ZXN0KHZhbHVlKSkge1xuICAgIHNlcXVlbmNlICs9ICdgJ1xuICB9XG5cbiAgLy8gSWYgdGhpcyBpcyBub3QganVzdCBzcGFjZXMgb3IgZW9scyAodGFicyBkb27igJl0IGNvdW50KSwgYW5kIGVpdGhlciB0aGVcbiAgLy8gZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIgYXJlIGEgc3BhY2UsIGVvbCwgb3IgdGljaywgdGhlbiBwYWQgd2l0aCBzcGFjZXMuXG4gIGlmIChcbiAgICAvW14gXFxyXFxuXS8udGVzdCh2YWx1ZSkgJiZcbiAgICAoKC9eWyBcXHJcXG5dLy50ZXN0KHZhbHVlKSAmJiAvWyBcXHJcXG5dJC8udGVzdCh2YWx1ZSkpIHx8IC9eYHxgJC8udGVzdCh2YWx1ZSkpXG4gICkge1xuICAgIHZhbHVlID0gJyAnICsgdmFsdWUgKyAnICdcbiAgfVxuXG4gIC8vIFdlIGhhdmUgYSBwb3RlbnRpYWwgcHJvYmxlbTogY2VydGFpbiBjaGFyYWN0ZXJzIGFmdGVyIGVvbHMgY291bGQgcmVzdWx0IGluXG4gIC8vIGJsb2NrcyBiZWluZyBzZWVuLlxuICAvLyBGb3IgZXhhbXBsZSwgaWYgc29tZW9uZSBpbmplY3RlZCB0aGUgc3RyaW5nIGAnXFxuIyBiJ2AsIHRoZW4gdGhhdCB3b3VsZFxuICAvLyByZXN1bHQgaW4gYW4gQVRYIGhlYWRpbmcuXG4gIC8vIFdlIGNhbuKAmXQgZXNjYXBlIGNoYXJhY3RlcnMgaW4gYGlubGluZUNvZGVgLCBidXQgYmVjYXVzZSBlb2xzIGFyZVxuICAvLyB0cmFuc2Zvcm1lZCB0byBzcGFjZXMgd2hlbiBnb2luZyBmcm9tIG1hcmtkb3duIHRvIEhUTUwgYW55d2F5LCB3ZSBjYW4gc3dhcFxuICAvLyB0aGVtIG91dC5cbiAgd2hpbGUgKCsraW5kZXggPCBzdGF0ZS51bnNhZmUubGVuZ3RoKSB7XG4gICAgY29uc3QgcGF0dGVybiA9IHN0YXRlLnVuc2FmZVtpbmRleF1cbiAgICBjb25zdCBleHByZXNzaW9uID0gc3RhdGUuY29tcGlsZVBhdHRlcm4ocGF0dGVybilcbiAgICAvKiogQHR5cGUge1JlZ0V4cEV4ZWNBcnJheSB8IG51bGx9ICovXG4gICAgbGV0IG1hdGNoXG5cbiAgICAvLyBPbmx5IGxvb2sgZm9yIGBhdEJyZWFrYHMuXG4gICAgLy8gQnR3OiBub3RlIHRoYXQgYGF0QnJlYWtgIHBhdHRlcm5zIHdpbGwgYWx3YXlzIHN0YXJ0IHRoZSByZWdleCBhdCBMRiBvclxuICAgIC8vIENSLlxuICAgIGlmICghcGF0dGVybi5hdEJyZWFrKSBjb250aW51ZVxuXG4gICAgd2hpbGUgKChtYXRjaCA9IGV4cHJlc3Npb24uZXhlYyh2YWx1ZSkpKSB7XG4gICAgICBsZXQgcG9zaXRpb24gPSBtYXRjaC5pbmRleFxuXG4gICAgICAvLyBTdXBwb3J0IENSTEYgKHBhdHRlcm5zIG9ubHkgbG9vayBmb3Igb25lIG9mIHRoZSBjaGFyYWN0ZXJzKS5cbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUuY2hhckNvZGVBdChwb3NpdGlvbikgPT09IDEwIC8qIGBcXG5gICovICYmXG4gICAgICAgIHZhbHVlLmNoYXJDb2RlQXQocG9zaXRpb24gLSAxKSA9PT0gMTMgLyogYFxccmAgKi9cbiAgICAgICkge1xuICAgICAgICBwb3NpdGlvbi0tXG4gICAgICB9XG5cbiAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMCwgcG9zaXRpb24pICsgJyAnICsgdmFsdWUuc2xpY2UobWF0Y2guaW5kZXggKyAxKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzZXF1ZW5jZSArIHZhbHVlICsgc2VxdWVuY2Vcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBpbmxpbmVDb2RlUGVlaygpIHtcbiAgcmV0dXJuICdgJ1xufVxuIl0sIm5hbWVzIjpbImlubGluZUNvZGUiLCJwZWVrIiwiaW5saW5lQ29kZVBlZWsiLCJub2RlIiwiXyIsInN0YXRlIiwidmFsdWUiLCJzZXF1ZW5jZSIsImluZGV4IiwiUmVnRXhwIiwidGVzdCIsInVuc2FmZSIsImxlbmd0aCIsInBhdHRlcm4iLCJleHByZXNzaW9uIiwiY29tcGlsZVBhdHRlcm4iLCJtYXRjaCIsImF0QnJlYWsiLCJleGVjIiwicG9zaXRpb24iLCJjaGFyQ29kZUF0Iiwic2xpY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ linkReference: () => (/* binding */ linkReference)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ linkReference.peek = linkReferencePeek;\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function linkReference(node, _, state, info) {\n const type = node.referenceType;\n const exit = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text = state.containerPhrasing(node, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text + \"][\");\n subexit();\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit();\n if (type === \"full\" || !text || text !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n // Remove the unwanted `[`.\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\n/**\n * @returns {string}\n */ function linkReferencePeek() {\n return \"[\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saW5rLXJlZmVyZW5jZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7O0NBS0MsR0FFREEsY0FBY0MsSUFBSSxHQUFHQztBQUVyQjs7Ozs7O0NBTUMsR0FDTSxTQUFTRixjQUFjRyxJQUFJLEVBQUVDLENBQUMsRUFBRUMsS0FBSyxFQUFFQyxJQUFJO0lBQ2hELE1BQU1DLE9BQU9KLEtBQUtLLGFBQWE7SUFDL0IsTUFBTUMsT0FBT0osTUFBTUssS0FBSyxDQUFDO0lBQ3pCLElBQUlDLFVBQVVOLE1BQU1LLEtBQUssQ0FBQztJQUMxQixNQUFNRSxVQUFVUCxNQUFNUSxhQUFhLENBQUNQO0lBQ3BDLElBQUlRLFFBQVFGLFFBQVFHLElBQUksQ0FBQztJQUN6QixNQUFNQyxPQUFPWCxNQUFNWSxpQkFBaUIsQ0FBQ2QsTUFBTTtRQUN6Q2UsUUFBUUo7UUFDUkssT0FBTztRQUNQLEdBQUdQLFFBQVFRLE9BQU8sRUFBRTtJQUN0QjtJQUNBTixTQUFTRixRQUFRRyxJQUFJLENBQUNDLE9BQU87SUFFN0JMO0lBQ0Esb0VBQW9FO0lBQ3BFLE1BQU1VLFFBQVFoQixNQUFNZ0IsS0FBSztJQUN6QmhCLE1BQU1nQixLQUFLLEdBQUcsRUFBRTtJQUNoQlYsVUFBVU4sTUFBTUssS0FBSyxDQUFDO0lBQ3RCLDhFQUE4RTtJQUM5RSwyRUFBMkU7SUFDM0UsNEVBQTRFO0lBQzVFLHlDQUF5QztJQUN6QyxNQUFNWSxZQUFZakIsTUFBTWtCLElBQUksQ0FBQ2xCLE1BQU1tQixhQUFhLENBQUNyQixPQUFPO1FBQ3REZSxRQUFRSjtRQUNSSyxPQUFPO1FBQ1AsR0FBR1AsUUFBUVEsT0FBTyxFQUFFO0lBQ3RCO0lBQ0FUO0lBQ0FOLE1BQU1nQixLQUFLLEdBQUdBO0lBQ2RaO0lBRUEsSUFBSUYsU0FBUyxVQUFVLENBQUNTLFFBQVFBLFNBQVNNLFdBQVc7UUFDbERSLFNBQVNGLFFBQVFHLElBQUksQ0FBQ08sWUFBWTtJQUNwQyxPQUFPLElBQUlmLFNBQVMsWUFBWTtRQUM5QiwyQkFBMkI7UUFDM0JPLFFBQVFBLE1BQU1XLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDMUIsT0FBTztRQUNMWCxTQUFTRixRQUFRRyxJQUFJLENBQUM7SUFDeEI7SUFFQSxPQUFPRDtBQUNUO0FBRUE7O0NBRUMsR0FDRCxTQUFTWjtJQUNQLE9BQU87QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saW5rLXJlZmVyZW5jZS5qcz8zZWQ2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5MaW5rUmVmZXJlbmNlfSBMaW5rUmVmZXJlbmNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5saW5rUmVmZXJlbmNlLnBlZWsgPSBsaW5rUmVmZXJlbmNlUGVla1xuXG4vKipcbiAqIEBwYXJhbSB7TGlua1JlZmVyZW5jZX0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbGlua1JlZmVyZW5jZShub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCB0eXBlID0gbm9kZS5yZWZlcmVuY2VUeXBlXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignbGlua1JlZmVyZW5jZScpXG4gIGxldCBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ2xhYmVsJylcbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcbiAgbGV0IHZhbHVlID0gdHJhY2tlci5tb3ZlKCdbJylcbiAgY29uc3QgdGV4dCA9IHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIHtcbiAgICBiZWZvcmU6IHZhbHVlLFxuICAgIGFmdGVyOiAnXScsXG4gICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgfSlcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKHRleHQgKyAnXVsnKVxuXG4gIHN1YmV4aXQoKVxuICAvLyBIaWRlIHRoZSBmYWN0IHRoYXQgd2XigJlyZSBpbiBwaHJhc2luZywgYmVjYXVzZSBlc2NhcGVzIGRvbuKAmXQgd29yay5cbiAgY29uc3Qgc3RhY2sgPSBzdGF0ZS5zdGFja1xuICBzdGF0ZS5zdGFjayA9IFtdXG4gIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigncmVmZXJlbmNlJylcbiAgLy8gTm90ZTogZm9yIHByb3BlciB0cmFja2luZywgd2Ugc2hvdWxkIHJlc2V0IHRoZSBvdXRwdXQgcG9zaXRpb25zIHdoZW4gd2UgZW5kXG4gIC8vIHVwIG1ha2luZyBhIGBzaG9ydGN1dGAgcmVmZXJlbmNlLCBiZWNhdXNlIHRoZW4gdGhlcmUgaXMgbm8gYnJhY2Ugb3V0cHV0LlxuICAvLyBQcmFjdGljYWxseSwgaW4gdGhhdCBjYXNlLCB0aGVyZSBpcyBubyBjb250ZW50LCBzbyBpdCBkb2VzbuKAmXQgbWF0dGVyIHRoYXRcbiAgLy8gd2XigJl2ZSB0cmFja2VkIG9uZSB0b28gbWFueSBjaGFyYWN0ZXJzLlxuICBjb25zdCByZWZlcmVuY2UgPSBzdGF0ZS5zYWZlKHN0YXRlLmFzc29jaWF0aW9uSWQobm9kZSksIHtcbiAgICBiZWZvcmU6IHZhbHVlLFxuICAgIGFmdGVyOiAnXScsXG4gICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgfSlcbiAgc3ViZXhpdCgpXG4gIHN0YXRlLnN0YWNrID0gc3RhY2tcbiAgZXhpdCgpXG5cbiAgaWYgKHR5cGUgPT09ICdmdWxsJyB8fCAhdGV4dCB8fCB0ZXh0ICE9PSByZWZlcmVuY2UpIHtcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUocmVmZXJlbmNlICsgJ10nKVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzaG9ydGN1dCcpIHtcbiAgICAvLyBSZW1vdmUgdGhlIHVud2FudGVkIGBbYC5cbiAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIC0xKVxuICB9IGVsc2Uge1xuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnXScpXG4gIH1cblxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBsaW5rUmVmZXJlbmNlUGVlaygpIHtcbiAgcmV0dXJuICdbJ1xufVxuIl0sIm5hbWVzIjpbImxpbmtSZWZlcmVuY2UiLCJwZWVrIiwibGlua1JlZmVyZW5jZVBlZWsiLCJub2RlIiwiXyIsInN0YXRlIiwiaW5mbyIsInR5cGUiLCJyZWZlcmVuY2VUeXBlIiwiZXhpdCIsImVudGVyIiwic3ViZXhpdCIsInRyYWNrZXIiLCJjcmVhdGVUcmFja2VyIiwidmFsdWUiLCJtb3ZlIiwidGV4dCIsImNvbnRhaW5lclBocmFzaW5nIiwiYmVmb3JlIiwiYWZ0ZXIiLCJjdXJyZW50Iiwic3RhY2siLCJyZWZlcmVuY2UiLCJzYWZlIiwiYXNzb2NpYXRpb25JZCIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/link.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/link.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ link: () => (/* binding */ link)\n/* harmony export */ });\n/* harmony import */ var _util_check_quote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-quote.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js\");\n/* harmony import */ var _util_format_link_as_autolink_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/format-link-as-autolink.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js\");\n/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Exit} Exit\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \n\nlink.peek = linkPeek;\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function link(node, _, state, info) {\n const quote = (0,_util_check_quote_js__WEBPACK_IMPORTED_MODULE_0__.checkQuote)(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n /** @type {Exit} */ let exit;\n /** @type {Exit} */ let subexit;\n if ((0,_util_format_link_as_autolink_js__WEBPACK_IMPORTED_MODULE_1__.formatLinkAsAutolink)(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack;\n state.stack = [];\n exit = state.enter(\"autolink\");\n let value = tracker.move(\"<\");\n value += tracker.move(state.containerPhrasing(node, {\n before: value,\n after: \">\",\n ...tracker.current()\n }));\n value += tracker.move(\">\");\n exit();\n state.stack = stack;\n return value;\n }\n exit = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(state.containerPhrasing(node, {\n before: value,\n after: \"](\",\n ...tracker.current()\n }));\n value += tracker.move(\"](\");\n subexit();\n if (// If there’s no url but there is a title…\n !node.url && node.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(state.safe(node.url, {\n before: value,\n after: \">\",\n ...tracker.current()\n }));\n value += tracker.move(\">\");\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(state.safe(node.url, {\n before: value,\n after: node.title ? \" \" : \")\",\n ...tracker.current()\n }));\n }\n subexit();\n if (node.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n }));\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit();\n return value;\n}\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */ function linkPeek(node, _, state) {\n return (0,_util_format_link_as_autolink_js__WEBPACK_IMPORTED_MODULE_1__.formatLinkAsAutolink)(node, state) ? \"<\" : \"[\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saW5rLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7Ozs7Q0FNQyxHQUVnRDtBQUNzQjtBQUV2RUUsS0FBS0MsSUFBSSxHQUFHQztBQUVaOzs7Ozs7Q0FNQyxHQUNNLFNBQVNGLEtBQUtHLElBQUksRUFBRUMsQ0FBQyxFQUFFQyxLQUFLLEVBQUVDLElBQUk7SUFDdkMsTUFBTUMsUUFBUVQsZ0VBQVVBLENBQUNPO0lBQ3pCLE1BQU1HLFNBQVNELFVBQVUsTUFBTSxVQUFVO0lBQ3pDLE1BQU1FLFVBQVVKLE1BQU1LLGFBQWEsQ0FBQ0o7SUFDcEMsaUJBQWlCLEdBQ2pCLElBQUlLO0lBQ0osaUJBQWlCLEdBQ2pCLElBQUlDO0lBRUosSUFBSWIsc0ZBQW9CQSxDQUFDSSxNQUFNRSxRQUFRO1FBQ3JDLG9FQUFvRTtRQUNwRSxNQUFNUSxRQUFRUixNQUFNUSxLQUFLO1FBQ3pCUixNQUFNUSxLQUFLLEdBQUcsRUFBRTtRQUNoQkYsT0FBT04sTUFBTVMsS0FBSyxDQUFDO1FBQ25CLElBQUlDLFFBQVFOLFFBQVFPLElBQUksQ0FBQztRQUN6QkQsU0FBU04sUUFBUU8sSUFBSSxDQUNuQlgsTUFBTVksaUJBQWlCLENBQUNkLE1BQU07WUFDNUJlLFFBQVFIO1lBQ1JJLE9BQU87WUFDUCxHQUFHVixRQUFRVyxPQUFPLEVBQUU7UUFDdEI7UUFFRkwsU0FBU04sUUFBUU8sSUFBSSxDQUFDO1FBQ3RCTDtRQUNBTixNQUFNUSxLQUFLLEdBQUdBO1FBQ2QsT0FBT0U7SUFDVDtJQUVBSixPQUFPTixNQUFNUyxLQUFLLENBQUM7SUFDbkJGLFVBQVVQLE1BQU1TLEtBQUssQ0FBQztJQUN0QixJQUFJQyxRQUFRTixRQUFRTyxJQUFJLENBQUM7SUFDekJELFNBQVNOLFFBQVFPLElBQUksQ0FDbkJYLE1BQU1ZLGlCQUFpQixDQUFDZCxNQUFNO1FBQzVCZSxRQUFRSDtRQUNSSSxPQUFPO1FBQ1AsR0FBR1YsUUFBUVcsT0FBTyxFQUFFO0lBQ3RCO0lBRUZMLFNBQVNOLFFBQVFPLElBQUksQ0FBQztJQUN0Qko7SUFFQSxJQUVFLDBDQUQwQztJQUN6QyxDQUFDVCxLQUFLa0IsR0FBRyxJQUFJbEIsS0FBS21CLEtBQUssSUFDeEIsaURBQWlEO0lBQ2pELGVBQWVDLElBQUksQ0FBQ3BCLEtBQUtrQixHQUFHLEdBQzVCO1FBQ0FULFVBQVVQLE1BQU1TLEtBQUssQ0FBQztRQUN0QkMsU0FBU04sUUFBUU8sSUFBSSxDQUFDO1FBQ3RCRCxTQUFTTixRQUFRTyxJQUFJLENBQ25CWCxNQUFNbUIsSUFBSSxDQUFDckIsS0FBS2tCLEdBQUcsRUFBRTtZQUFDSCxRQUFRSDtZQUFPSSxPQUFPO1lBQUssR0FBR1YsUUFBUVcsT0FBTyxFQUFFO1FBQUE7UUFFdkVMLFNBQVNOLFFBQVFPLElBQUksQ0FBQztJQUN4QixPQUFPO1FBQ0wsa0NBQWtDO1FBQ2xDSixVQUFVUCxNQUFNUyxLQUFLLENBQUM7UUFDdEJDLFNBQVNOLFFBQVFPLElBQUksQ0FDbkJYLE1BQU1tQixJQUFJLENBQUNyQixLQUFLa0IsR0FBRyxFQUFFO1lBQ25CSCxRQUFRSDtZQUNSSSxPQUFPaEIsS0FBS21CLEtBQUssR0FBRyxNQUFNO1lBQzFCLEdBQUdiLFFBQVFXLE9BQU8sRUFBRTtRQUN0QjtJQUVKO0lBRUFSO0lBRUEsSUFBSVQsS0FBS21CLEtBQUssRUFBRTtRQUNkVixVQUFVUCxNQUFNUyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUVOLE9BQU8sQ0FBQztRQUN0Q08sU0FBU04sUUFBUU8sSUFBSSxDQUFDLE1BQU1UO1FBQzVCUSxTQUFTTixRQUFRTyxJQUFJLENBQ25CWCxNQUFNbUIsSUFBSSxDQUFDckIsS0FBS21CLEtBQUssRUFBRTtZQUNyQkosUUFBUUg7WUFDUkksT0FBT1o7WUFDUCxHQUFHRSxRQUFRVyxPQUFPLEVBQUU7UUFDdEI7UUFFRkwsU0FBU04sUUFBUU8sSUFBSSxDQUFDVDtRQUN0Qks7SUFDRjtJQUVBRyxTQUFTTixRQUFRTyxJQUFJLENBQUM7SUFFdEJMO0lBQ0EsT0FBT0k7QUFDVDtBQUVBOzs7OztDQUtDLEdBQ0QsU0FBU2IsU0FBU0MsSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUs7SUFDOUIsT0FBT04sc0ZBQW9CQSxDQUFDSSxNQUFNRSxTQUFTLE1BQU07QUFDbkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvbGluay5qcz83YjQ0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5MaW5rfSBMaW5rXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuRXhpdH0gRXhpdFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7Y2hlY2tRdW90ZX0gZnJvbSAnLi4vdXRpbC9jaGVjay1xdW90ZS5qcydcbmltcG9ydCB7Zm9ybWF0TGlua0FzQXV0b2xpbmt9IGZyb20gJy4uL3V0aWwvZm9ybWF0LWxpbmstYXMtYXV0b2xpbmsuanMnXG5cbmxpbmsucGVlayA9IGxpbmtQZWVrXG5cbi8qKlxuICogQHBhcmFtIHtMaW5rfSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5rKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IHF1b3RlID0gY2hlY2tRdW90ZShzdGF0ZSlcbiAgY29uc3Qgc3VmZml4ID0gcXVvdGUgPT09ICdcIicgPyAnUXVvdGUnIDogJ0Fwb3N0cm9waGUnXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIC8qKiBAdHlwZSB7RXhpdH0gKi9cbiAgbGV0IGV4aXRcbiAgLyoqIEB0eXBlIHtFeGl0fSAqL1xuICBsZXQgc3ViZXhpdFxuXG4gIGlmIChmb3JtYXRMaW5rQXNBdXRvbGluayhub2RlLCBzdGF0ZSkpIHtcbiAgICAvLyBIaWRlIHRoZSBmYWN0IHRoYXQgd2XigJlyZSBpbiBwaHJhc2luZywgYmVjYXVzZSBlc2NhcGVzIGRvbuKAmXQgd29yay5cbiAgICBjb25zdCBzdGFjayA9IHN0YXRlLnN0YWNrXG4gICAgc3RhdGUuc3RhY2sgPSBbXVxuICAgIGV4aXQgPSBzdGF0ZS5lbnRlcignYXV0b2xpbmsnKVxuICAgIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZSgnPCcpXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgICAgc3RhdGUuY29udGFpbmVyUGhyYXNpbmcobm9kZSwge1xuICAgICAgICBiZWZvcmU6IHZhbHVlLFxuICAgICAgICBhZnRlcjogJz4nLFxuICAgICAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICAgICAgfSlcbiAgICApXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCc+JylcbiAgICBleGl0KClcbiAgICBzdGF0ZS5zdGFjayA9IHN0YWNrXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICBleGl0ID0gc3RhdGUuZW50ZXIoJ2xpbmsnKVxuICBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ2xhYmVsJylcbiAgbGV0IHZhbHVlID0gdHJhY2tlci5tb3ZlKCdbJylcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgIHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIHtcbiAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICBhZnRlcjogJ10oJyxcbiAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgfSlcbiAgKVxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJ10oJylcbiAgc3ViZXhpdCgpXG5cbiAgaWYgKFxuICAgIC8vIElmIHRoZXJl4oCZcyBubyB1cmwgYnV0IHRoZXJlIGlzIGEgdGl0bGXigKZcbiAgICAoIW5vZGUudXJsICYmIG5vZGUudGl0bGUpIHx8XG4gICAgLy8gSWYgdGhlcmUgYXJlIGNvbnRyb2wgY2hhcmFjdGVycyBvciB3aGl0ZXNwYWNlLlxuICAgIC9bXFwwLSBcXHUwMDdGXS8udGVzdChub2RlLnVybClcbiAgKSB7XG4gICAgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdkZXN0aW5hdGlvbkxpdGVyYWwnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnPCcpXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgICAgc3RhdGUuc2FmZShub2RlLnVybCwge2JlZm9yZTogdmFsdWUsIGFmdGVyOiAnPicsIC4uLnRyYWNrZXIuY3VycmVudCgpfSlcbiAgICApXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCc+JylcbiAgfSBlbHNlIHtcbiAgICAvLyBObyB3aGl0ZXNwYWNlLCByYXcgaXMgcHJldHRpZXIuXG4gICAgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdkZXN0aW5hdGlvblJhdycpXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgICAgc3RhdGUuc2FmZShub2RlLnVybCwge1xuICAgICAgICBiZWZvcmU6IHZhbHVlLFxuICAgICAgICBhZnRlcjogbm9kZS50aXRsZSA/ICcgJyA6ICcpJyxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgc3ViZXhpdCgpXG5cbiAgaWYgKG5vZGUudGl0bGUpIHtcbiAgICBzdWJleGl0ID0gc3RhdGUuZW50ZXIoYHRpdGxlJHtzdWZmaXh9YClcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJyAnICsgcXVvdGUpXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgICAgc3RhdGUuc2FmZShub2RlLnRpdGxlLCB7XG4gICAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICAgIGFmdGVyOiBxdW90ZSxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShxdW90ZSlcbiAgICBzdWJleGl0KClcbiAgfVxuXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnKScpXG5cbiAgZXhpdCgpXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7TGlua30gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gbGlua1BlZWsobm9kZSwgXywgc3RhdGUpIHtcbiAgcmV0dXJuIGZvcm1hdExpbmtBc0F1dG9saW5rKG5vZGUsIHN0YXRlKSA/ICc8JyA6ICdbJ1xufVxuIl0sIm5hbWVzIjpbImNoZWNrUXVvdGUiLCJmb3JtYXRMaW5rQXNBdXRvbGluayIsImxpbmsiLCJwZWVrIiwibGlua1BlZWsiLCJub2RlIiwiXyIsInN0YXRlIiwiaW5mbyIsInF1b3RlIiwic3VmZml4IiwidHJhY2tlciIsImNyZWF0ZVRyYWNrZXIiLCJleGl0Iiwic3ViZXhpdCIsInN0YWNrIiwiZW50ZXIiLCJ2YWx1ZSIsIm1vdmUiLCJjb250YWluZXJQaHJhc2luZyIsImJlZm9yZSIsImFmdGVyIiwiY3VycmVudCIsInVybCIsInRpdGxlIiwidGVzdCIsInNhZmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/link.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/list-item.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/list-item.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ listItem: () => (/* binding */ listItem)\n/* harmony export */ });\n/* harmony import */ var _util_check_bullet_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/check-bullet.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js\");\n/* harmony import */ var _util_check_list_item_indent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-list-item-indent.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js\");\n/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */ \n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function listItem(node, parent, state, info) {\n const listItemIndent = (0,_util_check_list_item_indent_js__WEBPACK_IMPORTED_MODULE_0__.checkListItemIndent)(state);\n let bullet = state.bulletCurrent || (0,_util_check_bullet_js__WEBPACK_IMPORTED_MODULE_1__.checkBullet)(state);\n // Add the marker value for ordered lists.\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit = state.enter(\"listItem\");\n const value = state.indentLines(state.containerFlow(node, tracker.current()), map);\n exit();\n return value;\n /** @type {Map} */ function map(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saXN0LWl0ZW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7OztDQU1DLEdBRWtEO0FBQ2tCO0FBRXJFOzs7Ozs7Q0FNQyxHQUNNLFNBQVNFLFNBQVNDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLElBQUk7SUFDaEQsTUFBTUMsaUJBQWlCTixvRkFBbUJBLENBQUNJO0lBQzNDLElBQUlHLFNBQVNILE1BQU1JLGFBQWEsSUFBSVQsa0VBQVdBLENBQUNLO0lBRWhELDBDQUEwQztJQUMxQyxJQUFJRCxVQUFVQSxPQUFPTSxJQUFJLEtBQUssVUFBVU4sT0FBT08sT0FBTyxFQUFFO1FBQ3RESCxTQUNFLENBQUMsT0FBT0osT0FBT1EsS0FBSyxLQUFLLFlBQVlSLE9BQU9RLEtBQUssR0FBRyxDQUFDLElBQ2pEUixPQUFPUSxLQUFLLEdBQ1osS0FDSFAsQ0FBQUEsTUFBTVEsT0FBTyxDQUFDQyxtQkFBbUIsS0FBSyxRQUNuQyxJQUNBVixPQUFPVyxRQUFRLENBQUNDLE9BQU8sQ0FBQ2IsS0FBSSxJQUNoQ0s7SUFDSjtJQUVBLElBQUlTLE9BQU9ULE9BQU9VLE1BQU0sR0FBRztJQUUzQixJQUNFWCxtQkFBbUIsU0FDbEJBLG1CQUFtQixXQUNqQixXQUFXSCxPQUFPTSxJQUFJLEtBQUssVUFBVU4sT0FBT2UsTUFBTSxJQUFLaEIsS0FBS2dCLE1BQU0sR0FDckU7UUFDQUYsT0FBT0csS0FBS0MsSUFBSSxDQUFDSixPQUFPLEtBQUs7SUFDL0I7SUFFQSxNQUFNSyxVQUFVakIsTUFBTWtCLGFBQWEsQ0FBQ2pCO0lBQ3BDZ0IsUUFBUUUsSUFBSSxDQUFDaEIsU0FBUyxJQUFJaUIsTUFBTSxDQUFDUixPQUFPVCxPQUFPVSxNQUFNO0lBQ3JESSxRQUFRSSxLQUFLLENBQUNUO0lBQ2QsTUFBTVUsT0FBT3RCLE1BQU11QixLQUFLLENBQUM7SUFDekIsTUFBTUMsUUFBUXhCLE1BQU15QixXQUFXLENBQzdCekIsTUFBTTBCLGFBQWEsQ0FBQzVCLE1BQU1tQixRQUFRVSxPQUFPLEtBQ3pDQztJQUVGTjtJQUVBLE9BQU9FO0lBRVAsZ0JBQWdCLEdBQ2hCLFNBQVNJLElBQUlDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxLQUFLO1FBQzdCLElBQUlELE9BQU87WUFDVCxPQUFPLENBQUNDLFFBQVEsS0FBSyxJQUFJWCxNQUFNLENBQUNSLEtBQUksSUFBS2lCO1FBQzNDO1FBRUEsT0FBTyxDQUFDRSxRQUFRNUIsU0FBU0EsU0FBUyxJQUFJaUIsTUFBTSxDQUFDUixPQUFPVCxPQUFPVSxNQUFNLEtBQUtnQjtJQUN4RTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2xpc3QtaXRlbS5qcz80MTVhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5MaXN0SXRlbX0gTGlzdEl0ZW1cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLk1hcH0gTWFwXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7Y2hlY2tCdWxsZXR9IGZyb20gJy4uL3V0aWwvY2hlY2stYnVsbGV0LmpzJ1xuaW1wb3J0IHtjaGVja0xpc3RJdGVtSW5kZW50fSBmcm9tICcuLi91dGlsL2NoZWNrLWxpc3QtaXRlbS1pbmRlbnQuanMnXG5cbi8qKlxuICogQHBhcmFtIHtMaXN0SXRlbX0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaXN0SXRlbShub2RlLCBwYXJlbnQsIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IGxpc3RJdGVtSW5kZW50ID0gY2hlY2tMaXN0SXRlbUluZGVudChzdGF0ZSlcbiAgbGV0IGJ1bGxldCA9IHN0YXRlLmJ1bGxldEN1cnJlbnQgfHwgY2hlY2tCdWxsZXQoc3RhdGUpXG5cbiAgLy8gQWRkIHRoZSBtYXJrZXIgdmFsdWUgZm9yIG9yZGVyZWQgbGlzdHMuXG4gIGlmIChwYXJlbnQgJiYgcGFyZW50LnR5cGUgPT09ICdsaXN0JyAmJiBwYXJlbnQub3JkZXJlZCkge1xuICAgIGJ1bGxldCA9XG4gICAgICAodHlwZW9mIHBhcmVudC5zdGFydCA9PT0gJ251bWJlcicgJiYgcGFyZW50LnN0YXJ0ID4gLTFcbiAgICAgICAgPyBwYXJlbnQuc3RhcnRcbiAgICAgICAgOiAxKSArXG4gICAgICAoc3RhdGUub3B0aW9ucy5pbmNyZW1lbnRMaXN0TWFya2VyID09PSBmYWxzZVxuICAgICAgICA/IDBcbiAgICAgICAgOiBwYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihub2RlKSkgK1xuICAgICAgYnVsbGV0XG4gIH1cblxuICBsZXQgc2l6ZSA9IGJ1bGxldC5sZW5ndGggKyAxXG5cbiAgaWYgKFxuICAgIGxpc3RJdGVtSW5kZW50ID09PSAndGFiJyB8fFxuICAgIChsaXN0SXRlbUluZGVudCA9PT0gJ21peGVkJyAmJlxuICAgICAgKChwYXJlbnQgJiYgcGFyZW50LnR5cGUgPT09ICdsaXN0JyAmJiBwYXJlbnQuc3ByZWFkKSB8fCBub2RlLnNwcmVhZCkpXG4gICkge1xuICAgIHNpemUgPSBNYXRoLmNlaWwoc2l6ZSAvIDQpICogNFxuICB9XG5cbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcbiAgdHJhY2tlci5tb3ZlKGJ1bGxldCArICcgJy5yZXBlYXQoc2l6ZSAtIGJ1bGxldC5sZW5ndGgpKVxuICB0cmFja2VyLnNoaWZ0KHNpemUpXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignbGlzdEl0ZW0nKVxuICBjb25zdCB2YWx1ZSA9IHN0YXRlLmluZGVudExpbmVzKFxuICAgIHN0YXRlLmNvbnRhaW5lckZsb3cobm9kZSwgdHJhY2tlci5jdXJyZW50KCkpLFxuICAgIG1hcFxuICApXG4gIGV4aXQoKVxuXG4gIHJldHVybiB2YWx1ZVxuXG4gIC8qKiBAdHlwZSB7TWFwfSAqL1xuICBmdW5jdGlvbiBtYXAobGluZSwgaW5kZXgsIGJsYW5rKSB7XG4gICAgaWYgKGluZGV4KSB7XG4gICAgICByZXR1cm4gKGJsYW5rID8gJycgOiAnICcucmVwZWF0KHNpemUpKSArIGxpbmVcbiAgICB9XG5cbiAgICByZXR1cm4gKGJsYW5rID8gYnVsbGV0IDogYnVsbGV0ICsgJyAnLnJlcGVhdChzaXplIC0gYnVsbGV0Lmxlbmd0aCkpICsgbGluZVxuICB9XG59XG4iXSwibmFtZXMiOlsiY2hlY2tCdWxsZXQiLCJjaGVja0xpc3RJdGVtSW5kZW50IiwibGlzdEl0ZW0iLCJub2RlIiwicGFyZW50Iiwic3RhdGUiLCJpbmZvIiwibGlzdEl0ZW1JbmRlbnQiLCJidWxsZXQiLCJidWxsZXRDdXJyZW50IiwidHlwZSIsIm9yZGVyZWQiLCJzdGFydCIsIm9wdGlvbnMiLCJpbmNyZW1lbnRMaXN0TWFya2VyIiwiY2hpbGRyZW4iLCJpbmRleE9mIiwic2l6ZSIsImxlbmd0aCIsInNwcmVhZCIsIk1hdGgiLCJjZWlsIiwidHJhY2tlciIsImNyZWF0ZVRyYWNrZXIiLCJtb3ZlIiwicmVwZWF0Iiwic2hpZnQiLCJleGl0IiwiZW50ZXIiLCJ2YWx1ZSIsImluZGVudExpbmVzIiwiY29udGFpbmVyRmxvdyIsImN1cnJlbnQiLCJtYXAiLCJsaW5lIiwiaW5kZXgiLCJibGFuayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/list-item.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/list.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/list.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ list: () => (/* binding */ list)\n/* harmony export */ });\n/* harmony import */ var _util_check_bullet_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/check-bullet.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js\");\n/* harmony import */ var _util_check_bullet_other_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/check-bullet-other.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js\");\n/* harmony import */ var _util_check_bullet_ordered_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-bullet-ordered.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js\");\n/* harmony import */ var _util_check_rule_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/check-rule.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-rule.js\");\n/**\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \n\n\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function list(node, parent, state, info) {\n const exit = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n /** @type {string} */ let bullet = node.ordered ? (0,_util_check_bullet_ordered_js__WEBPACK_IMPORTED_MODULE_0__.checkBulletOrdered)(state) : (0,_util_check_bullet_js__WEBPACK_IMPORTED_MODULE_1__.checkBullet)(state);\n /** @type {string} */ const bulletOther = node.ordered ? bullet === \".\" ? \")\" : \".\" : (0,_util_check_bullet_other_js__WEBPACK_IMPORTED_MODULE_2__.checkBulletOther)(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined;\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (// Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0) {\n useDifferentMarker = true;\n }\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if ((0,_util_check_rule_js__WEBPACK_IMPORTED_MODULE_3__.checkRule)(state) === bullet && firstListItem) {\n let index = -1;\n while(++index < node.children.length){\n const item = node.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit();\n return value;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saXN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFa0Q7QUFDVztBQUNJO0FBQ25CO0FBRS9DOzs7Ozs7Q0FNQyxHQUNNLFNBQVNJLEtBQUtDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLElBQUk7SUFDNUMsTUFBTUMsT0FBT0YsTUFBTUcsS0FBSyxDQUFDO0lBQ3pCLE1BQU1DLGdCQUFnQkosTUFBTUksYUFBYTtJQUN6QyxtQkFBbUIsR0FDbkIsSUFBSUMsU0FBU1AsS0FBS1EsT0FBTyxHQUFHWCxpRkFBa0JBLENBQUNLLFNBQVNQLGtFQUFXQSxDQUFDTztJQUNwRSxtQkFBbUIsR0FDbkIsTUFBTU8sY0FBY1QsS0FBS1EsT0FBTyxHQUM1QkQsV0FBVyxNQUNULE1BQ0EsTUFDRlgsNkVBQWdCQSxDQUFDTTtJQUNyQixJQUFJUSxxQkFDRlQsVUFBVUMsTUFBTVMsY0FBYyxHQUFHSixXQUFXTCxNQUFNUyxjQUFjLEdBQUc7SUFFckUsSUFBSSxDQUFDWCxLQUFLUSxPQUFPLEVBQUU7UUFDakIsTUFBTUksZ0JBQWdCWixLQUFLYSxRQUFRLEdBQUdiLEtBQUthLFFBQVEsQ0FBQyxFQUFFLEdBQUdDO1FBRXpELGtFQUFrRTtRQUNsRSxxQ0FBcUM7UUFDckMsRUFBRTtRQUNGLGNBQWM7UUFDZCxRQUFRO1FBQ1IsTUFBTTtRQUNOLEVBQUU7UUFDRiw2REFBNkQ7UUFDN0QsSUFFRSxtREFEbUQ7UUFDbERQLENBQUFBLFdBQVcsT0FBT0EsV0FBVyxHQUFFLEtBQ2hDLHlCQUF5QjtRQUN6QkssaUJBQ0MsRUFBQ0EsY0FBY0MsUUFBUSxJQUFJLENBQUNELGNBQWNDLFFBQVEsQ0FBQyxFQUFFLEtBQ3RELG9DQUFvQztRQUNwQ1gsTUFBTWEsS0FBSyxDQUFDYixNQUFNYSxLQUFLLENBQUNDLE1BQU0sR0FBRyxFQUFFLEtBQUssVUFDeENkLE1BQU1hLEtBQUssQ0FBQ2IsTUFBTWEsS0FBSyxDQUFDQyxNQUFNLEdBQUcsRUFBRSxLQUFLLGNBQ3hDZCxNQUFNYSxLQUFLLENBQUNiLE1BQU1hLEtBQUssQ0FBQ0MsTUFBTSxHQUFHLEVBQUUsS0FBSyxVQUN4Q2QsTUFBTWEsS0FBSyxDQUFDYixNQUFNYSxLQUFLLENBQUNDLE1BQU0sR0FBRyxFQUFFLEtBQUssY0FDeEMsaUNBQWlDO1FBQ2pDZCxNQUFNZSxVQUFVLENBQUNmLE1BQU1lLFVBQVUsQ0FBQ0QsTUFBTSxHQUFHLEVBQUUsS0FBSyxLQUNsRGQsTUFBTWUsVUFBVSxDQUFDZixNQUFNZSxVQUFVLENBQUNELE1BQU0sR0FBRyxFQUFFLEtBQUssS0FDbERkLE1BQU1lLFVBQVUsQ0FBQ2YsTUFBTWUsVUFBVSxDQUFDRCxNQUFNLEdBQUcsRUFBRSxLQUFLLEdBQ2xEO1lBQ0FOLHFCQUFxQjtRQUN2QjtRQUVBLG1FQUFtRTtRQUNuRSxxQ0FBcUM7UUFDckMsRUFBRTtRQUNGLGNBQWM7UUFDZCxRQUFRO1FBQ1IsTUFBTTtRQUNOLEVBQUU7UUFDRiw2REFBNkQ7UUFDN0QsSUFBSVosOERBQVNBLENBQUNJLFdBQVdLLFVBQVVLLGVBQWU7WUFDaEQsSUFBSU0sUUFBUSxDQUFDO1lBRWIsTUFBTyxFQUFFQSxRQUFRbEIsS0FBS2EsUUFBUSxDQUFDRyxNQUFNLENBQUU7Z0JBQ3JDLE1BQU1HLE9BQU9uQixLQUFLYSxRQUFRLENBQUNLLE1BQU07Z0JBRWpDLElBQ0VDLFFBQ0FBLEtBQUtDLElBQUksS0FBSyxjQUNkRCxLQUFLTixRQUFRLElBQ2JNLEtBQUtOLFFBQVEsQ0FBQyxFQUFFLElBQ2hCTSxLQUFLTixRQUFRLENBQUMsRUFBRSxDQUFDTyxJQUFJLEtBQUssaUJBQzFCO29CQUNBVixxQkFBcUI7b0JBQ3JCO2dCQUNGO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSUEsb0JBQW9CO1FBQ3RCSCxTQUFTRTtJQUNYO0lBRUFQLE1BQU1JLGFBQWEsR0FBR0M7SUFDdEIsTUFBTWMsUUFBUW5CLE1BQU1vQixhQUFhLENBQUN0QixNQUFNRztJQUN4Q0QsTUFBTVMsY0FBYyxHQUFHSjtJQUN2QkwsTUFBTUksYUFBYSxHQUFHQTtJQUN0QkY7SUFDQSxPQUFPaUI7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saXN0LmpzP2ZhODIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkxpc3R9IExpc3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7Y2hlY2tCdWxsZXR9IGZyb20gJy4uL3V0aWwvY2hlY2stYnVsbGV0LmpzJ1xuaW1wb3J0IHtjaGVja0J1bGxldE90aGVyfSBmcm9tICcuLi91dGlsL2NoZWNrLWJ1bGxldC1vdGhlci5qcydcbmltcG9ydCB7Y2hlY2tCdWxsZXRPcmRlcmVkfSBmcm9tICcuLi91dGlsL2NoZWNrLWJ1bGxldC1vcmRlcmVkLmpzJ1xuaW1wb3J0IHtjaGVja1J1bGV9IGZyb20gJy4uL3V0aWwvY2hlY2stcnVsZS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge0xpc3R9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbGlzdChub2RlLCBwYXJlbnQsIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignbGlzdCcpXG4gIGNvbnN0IGJ1bGxldEN1cnJlbnQgPSBzdGF0ZS5idWxsZXRDdXJyZW50XG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgYnVsbGV0ID0gbm9kZS5vcmRlcmVkID8gY2hlY2tCdWxsZXRPcmRlcmVkKHN0YXRlKSA6IGNoZWNrQnVsbGV0KHN0YXRlKVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgY29uc3QgYnVsbGV0T3RoZXIgPSBub2RlLm9yZGVyZWRcbiAgICA/IGJ1bGxldCA9PT0gJy4nXG4gICAgICA/ICcpJ1xuICAgICAgOiAnLidcbiAgICA6IGNoZWNrQnVsbGV0T3RoZXIoc3RhdGUpXG4gIGxldCB1c2VEaWZmZXJlbnRNYXJrZXIgPVxuICAgIHBhcmVudCAmJiBzdGF0ZS5idWxsZXRMYXN0VXNlZCA/IGJ1bGxldCA9PT0gc3RhdGUuYnVsbGV0TGFzdFVzZWQgOiBmYWxzZVxuXG4gIGlmICghbm9kZS5vcmRlcmVkKSB7XG4gICAgY29uc3QgZmlyc3RMaXN0SXRlbSA9IG5vZGUuY2hpbGRyZW4gPyBub2RlLmNoaWxkcmVuWzBdIDogdW5kZWZpbmVkXG5cbiAgICAvLyBJZiB0aGVyZeKAmXMgYW4gZW1wdHkgZmlyc3QgbGlzdCBpdGVtIGRpcmVjdGx5IGluIHR3byBsaXN0IGl0ZW1zLFxuICAgIC8vIHdlIGhhdmUgdG8gdXNlIGEgZGlmZmVyZW50IGJ1bGxldDpcbiAgICAvL1xuICAgIC8vIGBgYG1hcmtkb3duXG4gICAgLy8gKiAtICpcbiAgICAvLyBgYGBcbiAgICAvL1xuICAgIC8vIOKApmJlY2F1c2Ugb3RoZXJ3aXNlIGl0IHdvdWxkIGJlY29tZSBvbmUgYmlnIHRoZW1hdGljIGJyZWFrLlxuICAgIGlmIChcbiAgICAgIC8vIEJ1bGxldCBjb3VsZCBiZSB1c2VkIGFzIGEgdGhlbWF0aWMgYnJlYWsgbWFya2VyOlxuICAgICAgKGJ1bGxldCA9PT0gJyonIHx8IGJ1bGxldCA9PT0gJy0nKSAmJlxuICAgICAgLy8gRW1wdHkgZmlyc3QgbGlzdCBpdGVtOlxuICAgICAgZmlyc3RMaXN0SXRlbSAmJlxuICAgICAgKCFmaXJzdExpc3RJdGVtLmNoaWxkcmVuIHx8ICFmaXJzdExpc3RJdGVtLmNoaWxkcmVuWzBdKSAmJlxuICAgICAgLy8gRGlyZWN0bHkgaW4gdHdvIG90aGVyIGxpc3QgaXRlbXM6XG4gICAgICBzdGF0ZS5zdGFja1tzdGF0ZS5zdGFjay5sZW5ndGggLSAxXSA9PT0gJ2xpc3QnICYmXG4gICAgICBzdGF0ZS5zdGFja1tzdGF0ZS5zdGFjay5sZW5ndGggLSAyXSA9PT0gJ2xpc3RJdGVtJyAmJlxuICAgICAgc3RhdGUuc3RhY2tbc3RhdGUuc3RhY2subGVuZ3RoIC0gM10gPT09ICdsaXN0JyAmJlxuICAgICAgc3RhdGUuc3RhY2tbc3RhdGUuc3RhY2subGVuZ3RoIC0gNF0gPT09ICdsaXN0SXRlbScgJiZcbiAgICAgIC8vIFRoYXQgYXJlIGVhY2ggdGhlIGZpcnN0IGNoaWxkLlxuICAgICAgc3RhdGUuaW5kZXhTdGFja1tzdGF0ZS5pbmRleFN0YWNrLmxlbmd0aCAtIDFdID09PSAwICYmXG4gICAgICBzdGF0ZS5pbmRleFN0YWNrW3N0YXRlLmluZGV4U3RhY2subGVuZ3RoIC0gMl0gPT09IDAgJiZcbiAgICAgIHN0YXRlLmluZGV4U3RhY2tbc3RhdGUuaW5kZXhTdGFjay5sZW5ndGggLSAzXSA9PT0gMFxuICAgICkge1xuICAgICAgdXNlRGlmZmVyZW50TWFya2VyID0gdHJ1ZVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJl4oCZcyBhIHRoZW1hdGljIGJyZWFrIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlyc3QgbGlzdCBpdGVtLFxuICAgIC8vIHdlIGhhdmUgdG8gdXNlIGEgZGlmZmVyZW50IGJ1bGxldDpcbiAgICAvL1xuICAgIC8vIGBgYG1hcmtkb3duXG4gICAgLy8gKiAtLS1cbiAgICAvLyBgYGBcbiAgICAvL1xuICAgIC8vIOKApmJlY2F1c2Ugb3RoZXJ3aXNlIGl0IHdvdWxkIGJlY29tZSBvbmUgYmlnIHRoZW1hdGljIGJyZWFrLlxuICAgIGlmIChjaGVja1J1bGUoc3RhdGUpID09PSBidWxsZXQgJiYgZmlyc3RMaXN0SXRlbSkge1xuICAgICAgbGV0IGluZGV4ID0gLTFcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBub2RlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBpdGVtID0gbm9kZS5jaGlsZHJlbltpbmRleF1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgaXRlbSAmJlxuICAgICAgICAgIGl0ZW0udHlwZSA9PT0gJ2xpc3RJdGVtJyAmJlxuICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gJiZcbiAgICAgICAgICBpdGVtLmNoaWxkcmVuWzBdICYmXG4gICAgICAgICAgaXRlbS5jaGlsZHJlblswXS50eXBlID09PSAndGhlbWF0aWNCcmVhaydcbiAgICAgICAgKSB7XG4gICAgICAgICAgdXNlRGlmZmVyZW50TWFya2VyID0gdHJ1ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodXNlRGlmZmVyZW50TWFya2VyKSB7XG4gICAgYnVsbGV0ID0gYnVsbGV0T3RoZXJcbiAgfVxuXG4gIHN0YXRlLmJ1bGxldEN1cnJlbnQgPSBidWxsZXRcbiAgY29uc3QgdmFsdWUgPSBzdGF0ZS5jb250YWluZXJGbG93KG5vZGUsIGluZm8pXG4gIHN0YXRlLmJ1bGxldExhc3RVc2VkID0gYnVsbGV0XG4gIHN0YXRlLmJ1bGxldEN1cnJlbnQgPSBidWxsZXRDdXJyZW50XG4gIGV4aXQoKVxuICByZXR1cm4gdmFsdWVcbn1cbiJdLCJuYW1lcyI6WyJjaGVja0J1bGxldCIsImNoZWNrQnVsbGV0T3RoZXIiLCJjaGVja0J1bGxldE9yZGVyZWQiLCJjaGVja1J1bGUiLCJsaXN0Iiwibm9kZSIsInBhcmVudCIsInN0YXRlIiwiaW5mbyIsImV4aXQiLCJlbnRlciIsImJ1bGxldEN1cnJlbnQiLCJidWxsZXQiLCJvcmRlcmVkIiwiYnVsbGV0T3RoZXIiLCJ1c2VEaWZmZXJlbnRNYXJrZXIiLCJidWxsZXRMYXN0VXNlZCIsImZpcnN0TGlzdEl0ZW0iLCJjaGlsZHJlbiIsInVuZGVmaW5lZCIsInN0YWNrIiwibGVuZ3RoIiwiaW5kZXhTdGFjayIsImluZGV4IiwiaXRlbSIsInR5cGUiLCJ2YWx1ZSIsImNvbnRhaW5lckZsb3ciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/list.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ paragraph: () => (/* binding */ paragraph)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function paragraph(node, _, state, info) {\n const exit = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node, info);\n subexit();\n exit();\n return value;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9wYXJhZ3JhcGguanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7OztDQUtDLEdBRUQ7Ozs7OztDQU1DLEdBQ00sU0FBU0EsVUFBVUMsSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUssRUFBRUMsSUFBSTtJQUM1QyxNQUFNQyxPQUFPRixNQUFNRyxLQUFLLENBQUM7SUFDekIsTUFBTUMsVUFBVUosTUFBTUcsS0FBSyxDQUFDO0lBQzVCLE1BQU1FLFFBQVFMLE1BQU1NLGlCQUFpQixDQUFDUixNQUFNRztJQUM1Q0c7SUFDQUY7SUFDQSxPQUFPRztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL3BhcmFncmFwaC5qcz82Mzg0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJhZ3JhcGh9IFBhcmFncmFwaFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1BhcmFncmFwaH0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyYWdyYXBoKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcigncGFyYWdyYXBoJylcbiAgY29uc3Qgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdwaHJhc2luZycpXG4gIGNvbnN0IHZhbHVlID0gc3RhdGUuY29udGFpbmVyUGhyYXNpbmcobm9kZSwgaW5mbylcbiAgc3ViZXhpdCgpXG4gIGV4aXQoKVxuICByZXR1cm4gdmFsdWVcbn1cbiJdLCJuYW1lcyI6WyJwYXJhZ3JhcGgiLCJub2RlIiwiXyIsInN0YXRlIiwiaW5mbyIsImV4aXQiLCJlbnRlciIsInN1YmV4aXQiLCJ2YWx1ZSIsImNvbnRhaW5lclBocmFzaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/root.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/root.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ root: () => (/* binding */ root)\n/* harmony export */ });\n/* harmony import */ var mdast_util_phrasing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-phrasing */ \"(ssr)/../../node_modules/mdast-util-phrasing/lib/index.js\");\n/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function(d) {\n return (0,mdast_util_phrasing__WEBPACK_IMPORTED_MODULE_0__.phrasing)(d);\n });\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return fn.call(state, node, info);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9yb290LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFMkM7QUFFNUM7Ozs7OztDQU1DLEdBQ00sU0FBU0MsS0FBS0MsSUFBSSxFQUFFQyxDQUFDLEVBQUVDLEtBQUssRUFBRUMsSUFBSTtJQUN2QyxvQ0FBb0M7SUFDcEMsTUFBTUMsY0FBY0osS0FBS0ssUUFBUSxDQUFDQyxJQUFJLENBQUMsU0FBVUMsQ0FBQztRQUNoRCxPQUFPVCw2REFBUUEsQ0FBQ1M7SUFDbEI7SUFDQSxNQUFNQyxLQUFLSixjQUFjRixNQUFNTyxpQkFBaUIsR0FBR1AsTUFBTVEsYUFBYTtJQUN0RSxPQUFPRixHQUFHRyxJQUFJLENBQUNULE9BQU9GLE1BQU1HO0FBQzlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL3Jvb3QuanM/YjZmNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5Sb290fSBSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtwaHJhc2luZ30gZnJvbSAnbWRhc3QtdXRpbC1waHJhc2luZydcblxuLyoqXG4gKiBAcGFyYW0ge1Jvb3R9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3Qobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgLy8gTm90ZTogYGh0bWxgIG5vZGVzIGFyZSBhbWJpZ3VvdXMuXG4gIGNvbnN0IGhhc1BocmFzaW5nID0gbm9kZS5jaGlsZHJlbi5zb21lKGZ1bmN0aW9uIChkKSB7XG4gICAgcmV0dXJuIHBocmFzaW5nKGQpXG4gIH0pXG4gIGNvbnN0IGZuID0gaGFzUGhyYXNpbmcgPyBzdGF0ZS5jb250YWluZXJQaHJhc2luZyA6IHN0YXRlLmNvbnRhaW5lckZsb3dcbiAgcmV0dXJuIGZuLmNhbGwoc3RhdGUsIG5vZGUsIGluZm8pXG59XG4iXSwibmFtZXMiOlsicGhyYXNpbmciLCJyb290Iiwibm9kZSIsIl8iLCJzdGF0ZSIsImluZm8iLCJoYXNQaHJhc2luZyIsImNoaWxkcmVuIiwic29tZSIsImQiLCJmbiIsImNvbnRhaW5lclBocmFzaW5nIiwiY29udGFpbmVyRmxvdyIsImNhbGwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/root.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/strong.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/strong.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ strong: () => (/* binding */ strong)\n/* harmony export */ });\n/* harmony import */ var _util_check_strong_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-strong.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-strong.js\");\n/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ \nstrong.peek = strongPeek;\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function strong(node, _, state, info) {\n const marker = (0,_util_check_strong_js__WEBPACK_IMPORTED_MODULE_0__.checkStrong)(state);\n const exit = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n let value = tracker.move(marker + marker);\n value += tracker.move(state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n }));\n value += tracker.move(marker + marker);\n exit();\n return value;\n}\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */ function strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9zdHJvbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUVrRDtBQUVuREMsT0FBT0MsSUFBSSxHQUFHQztBQUVkLHVFQUF1RTtBQUN2RSwyQ0FBMkM7QUFDM0MsNEVBQTRFO0FBQzVFLHdDQUF3QztBQUN4Qzs7Ozs7O0NBTUMsR0FDTSxTQUFTRixPQUFPRyxJQUFJLEVBQUVDLENBQUMsRUFBRUMsS0FBSyxFQUFFQyxJQUFJO0lBQ3pDLE1BQU1DLFNBQVNSLGtFQUFXQSxDQUFDTTtJQUMzQixNQUFNRyxPQUFPSCxNQUFNSSxLQUFLLENBQUM7SUFDekIsTUFBTUMsVUFBVUwsTUFBTU0sYUFBYSxDQUFDTDtJQUNwQyxJQUFJTSxRQUFRRixRQUFRRyxJQUFJLENBQUNOLFNBQVNBO0lBQ2xDSyxTQUFTRixRQUFRRyxJQUFJLENBQ25CUixNQUFNUyxpQkFBaUIsQ0FBQ1gsTUFBTTtRQUM1QlksUUFBUUg7UUFDUkksT0FBT1Q7UUFDUCxHQUFHRyxRQUFRTyxPQUFPLEVBQUU7SUFDdEI7SUFFRkwsU0FBU0YsUUFBUUcsSUFBSSxDQUFDTixTQUFTQTtJQUMvQkM7SUFDQSxPQUFPSTtBQUNUO0FBRUE7Ozs7O0NBS0MsR0FDRCxTQUFTVixXQUFXRSxDQUFDLEVBQUVjLEVBQUUsRUFBRWIsS0FBSztJQUM5QixPQUFPQSxNQUFNYyxPQUFPLENBQUNuQixNQUFNLElBQUk7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvc3Ryb25nLmpzP2VkMDciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuU3Ryb25nfSBTdHJvbmdcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge2NoZWNrU3Ryb25nfSBmcm9tICcuLi91dGlsL2NoZWNrLXN0cm9uZy5qcydcblxuc3Ryb25nLnBlZWsgPSBzdHJvbmdQZWVrXG5cbi8vIFRvIGRvOiB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgZW1waGFzaXMgY2Fubm90IOKAnGZvcm3igJ0gZGVwZW5kaW5nIG9uIHRoZVxuLy8gcHJldmlvdXMgb3IgbmV4dCBjaGFyYWN0ZXIgb2Ygc2VxdWVuY2VzLlxuLy8gVGhlcmXigJlzIG5vIHdheSBhcm91bmQgdGhhdCB0aG91Z2gsIGV4Y2VwdCBmb3IgaW5qZWN0aW5nIHplcm8td2lkdGggc3R1ZmYuXG4vLyBEbyB3ZSBuZWVkIHRvIHNhZmVndWFyZCBhZ2FpbnN0IHRoYXQ/XG4vKipcbiAqIEBwYXJhbSB7U3Ryb25nfSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJvbmcobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgbWFya2VyID0gY2hlY2tTdHJvbmcoc3RhdGUpXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignc3Ryb25nJylcbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcbiAgbGV0IHZhbHVlID0gdHJhY2tlci5tb3ZlKG1hcmtlciArIG1hcmtlcilcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgIHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIHtcbiAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICBhZnRlcjogbWFya2VyLFxuICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICB9KVxuICApXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZShtYXJrZXIgKyBtYXJrZXIpXG4gIGV4aXQoKVxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0cm9uZ30gX1xuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMVxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHN0cm9uZ1BlZWsoXywgXzEsIHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5vcHRpb25zLnN0cm9uZyB8fCAnKidcbn1cbiJdLCJuYW1lcyI6WyJjaGVja1N0cm9uZyIsInN0cm9uZyIsInBlZWsiLCJzdHJvbmdQZWVrIiwibm9kZSIsIl8iLCJzdGF0ZSIsImluZm8iLCJtYXJrZXIiLCJleGl0IiwiZW50ZXIiLCJ0cmFja2VyIiwiY3JlYXRlVHJhY2tlciIsInZhbHVlIiwibW92ZSIsImNvbnRhaW5lclBocmFzaW5nIiwiYmVmb3JlIiwiYWZ0ZXIiLCJjdXJyZW50IiwiXzEiLCJvcHRpb25zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/strong.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/text.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/text.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ text: () => (/* binding */ text)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */ function text(node, _, state, info) {\n return state.safe(node.value, info);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS90ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUVEOzs7Ozs7Q0FNQyxHQUNNLFNBQVNBLEtBQUtDLElBQUksRUFBRUMsQ0FBQyxFQUFFQyxLQUFLLEVBQUVDLElBQUk7SUFDdkMsT0FBT0QsTUFBTUUsSUFBSSxDQUFDSixLQUFLSyxLQUFLLEVBQUVGO0FBQ2hDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL3RleHQuanM/YjZkMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5UZXh0fSBUZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1RleHR9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRleHQobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgcmV0dXJuIHN0YXRlLnNhZmUobm9kZS52YWx1ZSwgaW5mbylcbn1cbiJdLCJuYW1lcyI6WyJ0ZXh0Iiwibm9kZSIsIl8iLCJzdGF0ZSIsImluZm8iLCJzYWZlIiwidmFsdWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/text.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)\n/* harmony export */ });\n/* harmony import */ var _util_check_rule_repetition_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/check-rule-repetition.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js\");\n/* harmony import */ var _util_check_rule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/check-rule.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-rule.js\");\n/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').State} State\n */ \n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */ function thematicBreak(_, _1, state) {\n const value = ((0,_util_check_rule_js__WEBPACK_IMPORTED_MODULE_0__.checkRule)(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat((0,_util_check_rule_repetition_js__WEBPACK_IMPORTED_MODULE_1__.checkRuleRepetition)(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS90aGVtYXRpYy1icmVhay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztDQUlDLEdBRW1FO0FBQ3JCO0FBRS9DOzs7OztDQUtDLEdBQ00sU0FBU0UsY0FBY0MsQ0FBQyxFQUFFQyxFQUFFLEVBQUVDLEtBQUs7SUFDeEMsTUFBTUMsUUFBUSxDQUNaTCw4REFBU0EsQ0FBQ0ksU0FBVUEsQ0FBQUEsTUFBTUUsT0FBTyxDQUFDQyxVQUFVLEdBQUcsTUFBTSxFQUFDLENBQUMsRUFDdkRDLE1BQU0sQ0FBQ1QsbUZBQW1CQSxDQUFDSztJQUU3QixPQUFPQSxNQUFNRSxPQUFPLENBQUNDLFVBQVUsR0FBR0YsTUFBTUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLSjtBQUN6RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS90aGVtYXRpYy1icmVhay5qcz82Y2YyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlRoZW1hdGljQnJlYWt9IFRoZW1hdGljQnJlYWtcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtjaGVja1J1bGVSZXBldGl0aW9ufSBmcm9tICcuLi91dGlsL2NoZWNrLXJ1bGUtcmVwZXRpdGlvbi5qcydcbmltcG9ydCB7Y2hlY2tSdWxlfSBmcm9tICcuLi91dGlsL2NoZWNrLXJ1bGUuanMnXG5cbi8qKlxuICogQHBhcmFtIHtUaGVtYXRpY0JyZWFrfSBfXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8xXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRoZW1hdGljQnJlYWsoXywgXzEsIHN0YXRlKSB7XG4gIGNvbnN0IHZhbHVlID0gKFxuICAgIGNoZWNrUnVsZShzdGF0ZSkgKyAoc3RhdGUub3B0aW9ucy5ydWxlU3BhY2VzID8gJyAnIDogJycpXG4gICkucmVwZWF0KGNoZWNrUnVsZVJlcGV0aXRpb24oc3RhdGUpKVxuXG4gIHJldHVybiBzdGF0ZS5vcHRpb25zLnJ1bGVTcGFjZXMgPyB2YWx1ZS5zbGljZSgwLCAtMSkgOiB2YWx1ZVxufVxuIl0sIm5hbWVzIjpbImNoZWNrUnVsZVJlcGV0aXRpb24iLCJjaGVja1J1bGUiLCJ0aGVtYXRpY0JyZWFrIiwiXyIsIl8xIiwic3RhdGUiLCJ2YWx1ZSIsIm9wdGlvbnMiLCJydWxlU3BhY2VzIiwicmVwZWF0Iiwic2xpY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkBulletOrdered: () => (/* binding */ checkBulletOrdered)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['bulletOrdered'], null | undefined>}\n */ function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\");\n }\n return marker;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stYnVsbGV0LW9yZGVyZWQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUVEOzs7Q0FHQyxHQUNNLFNBQVNBLG1CQUFtQkMsS0FBSztJQUN0QyxNQUFNQyxTQUFTRCxNQUFNRSxPQUFPLENBQUNDLGFBQWEsSUFBSTtJQUU5QyxJQUFJRixXQUFXLE9BQU9BLFdBQVcsS0FBSztRQUNwQyxNQUFNLElBQUlHLE1BQ1Isa0NBQ0VILFNBQ0E7SUFFTjtJQUVBLE9BQU9BO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2NoZWNrLWJ1bGxldC1vcmRlcmVkLmpzP2Q2ZGMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1snYnVsbGV0T3JkZXJlZCddLCBudWxsIHwgdW5kZWZpbmVkPn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQnVsbGV0T3JkZXJlZChzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLmJ1bGxldE9yZGVyZWQgfHwgJy4nXG5cbiAgaWYgKG1hcmtlciAhPT0gJy4nICYmIG1hcmtlciAhPT0gJyknKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgJyArXG4gICAgICAgIG1hcmtlciArXG4gICAgICAgICdgIGZvciBgb3B0aW9ucy5idWxsZXRPcmRlcmVkYCwgZXhwZWN0ZWQgYC5gIG9yIGApYCdcbiAgICApXG4gIH1cblxuICByZXR1cm4gbWFya2VyXG59XG4iXSwibmFtZXMiOlsiY2hlY2tCdWxsZXRPcmRlcmVkIiwic3RhdGUiLCJtYXJrZXIiLCJvcHRpb25zIiwiYnVsbGV0T3JkZXJlZCIsIkVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkBulletOther: () => (/* binding */ checkBulletOther)\n/* harmony export */ });\n/* harmony import */ var _check_bullet_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./check-bullet.js */ \"(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js\");\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ \n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */ function checkBulletOther(state) {\n const bullet = (0,_check_bullet_js__WEBPACK_IMPORTED_MODULE_0__.checkBullet)(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\");\n }\n if (bulletOther === bullet) {\n throw new Error(\"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\");\n }\n return bulletOther;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stYnVsbGV0LW90aGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztDQUdDLEdBRTRDO0FBRTdDOzs7Q0FHQyxHQUNNLFNBQVNDLGlCQUFpQkMsS0FBSztJQUNwQyxNQUFNQyxTQUFTSCw2REFBV0EsQ0FBQ0U7SUFDM0IsTUFBTUUsY0FBY0YsTUFBTUcsT0FBTyxDQUFDRCxXQUFXO0lBRTdDLElBQUksQ0FBQ0EsYUFBYTtRQUNoQixPQUFPRCxXQUFXLE1BQU0sTUFBTTtJQUNoQztJQUVBLElBQUlDLGdCQUFnQixPQUFPQSxnQkFBZ0IsT0FBT0EsZ0JBQWdCLEtBQUs7UUFDckUsTUFBTSxJQUFJRSxNQUNSLGtDQUNFRixjQUNBO0lBRU47SUFFQSxJQUFJQSxnQkFBZ0JELFFBQVE7UUFDMUIsTUFBTSxJQUFJRyxNQUNSLHlCQUNFSCxTQUNBLDRCQUNBQyxjQUNBO0lBRU47SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1idWxsZXQtb3RoZXIuanM/Mjg0OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuT3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge2NoZWNrQnVsbGV0fSBmcm9tICcuL2NoZWNrLWJ1bGxldC5qcydcblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1snYnVsbGV0J10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tCdWxsZXRPdGhlcihzdGF0ZSkge1xuICBjb25zdCBidWxsZXQgPSBjaGVja0J1bGxldChzdGF0ZSlcbiAgY29uc3QgYnVsbGV0T3RoZXIgPSBzdGF0ZS5vcHRpb25zLmJ1bGxldE90aGVyXG5cbiAgaWYgKCFidWxsZXRPdGhlcikge1xuICAgIHJldHVybiBidWxsZXQgPT09ICcqJyA/ICctJyA6ICcqJ1xuICB9XG5cbiAgaWYgKGJ1bGxldE90aGVyICE9PSAnKicgJiYgYnVsbGV0T3RoZXIgIT09ICcrJyAmJiBidWxsZXRPdGhlciAhPT0gJy0nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgJyArXG4gICAgICAgIGJ1bGxldE90aGVyICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLmJ1bGxldE90aGVyYCwgZXhwZWN0ZWQgYCpgLCBgK2AsIG9yIGAtYCdcbiAgICApXG4gIH1cblxuICBpZiAoYnVsbGV0T3RoZXIgPT09IGJ1bGxldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdFeHBlY3RlZCBgYnVsbGV0YCAoYCcgK1xuICAgICAgICBidWxsZXQgK1xuICAgICAgICAnYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAnICtcbiAgICAgICAgYnVsbGV0T3RoZXIgK1xuICAgICAgICAnYCkgdG8gYmUgZGlmZmVyZW50J1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBidWxsZXRPdGhlclxufVxuIl0sIm5hbWVzIjpbImNoZWNrQnVsbGV0IiwiY2hlY2tCdWxsZXRPdGhlciIsInN0YXRlIiwiYnVsbGV0IiwiYnVsbGV0T3RoZXIiLCJvcHRpb25zIiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkBullet: () => (/* binding */ checkBullet)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */ function checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\");\n }\n return marker;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stYnVsbGV0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7O0NBR0MsR0FFRDs7O0NBR0MsR0FDTSxTQUFTQSxZQUFZQyxLQUFLO0lBQy9CLE1BQU1DLFNBQVNELE1BQU1FLE9BQU8sQ0FBQ0MsTUFBTSxJQUFJO0lBRXZDLElBQUlGLFdBQVcsT0FBT0EsV0FBVyxPQUFPQSxXQUFXLEtBQUs7UUFDdEQsTUFBTSxJQUFJRyxNQUNSLGtDQUNFSCxTQUNBO0lBRU47SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1idWxsZXQuanM/MDQ5YiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuT3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcmV0dXJucyB7RXhjbHVkZTxPcHRpb25zWydidWxsZXQnXSwgbnVsbCB8IHVuZGVmaW5lZD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0J1bGxldChzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLmJ1bGxldCB8fCAnKidcblxuICBpZiAobWFya2VyICE9PSAnKicgJiYgbWFya2VyICE9PSAnKycgJiYgbWFya2VyICE9PSAnLScpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAnICtcbiAgICAgICAgbWFya2VyICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLmJ1bGxldGAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG1hcmtlclxufVxuIl0sIm5hbWVzIjpbImNoZWNrQnVsbGV0Iiwic3RhdGUiLCJtYXJrZXIiLCJvcHRpb25zIiwiYnVsbGV0IiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js ***!
- \****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkEmphasis: () => (/* binding */ checkEmphasis)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['emphasis'], null | undefined>}\n */ function checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\");\n }\n return marker;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stZW1waGFzaXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUVEOzs7Q0FHQyxHQUNNLFNBQVNBLGNBQWNDLEtBQUs7SUFDakMsTUFBTUMsU0FBU0QsTUFBTUUsT0FBTyxDQUFDQyxRQUFRLElBQUk7SUFFekMsSUFBSUYsV0FBVyxPQUFPQSxXQUFXLEtBQUs7UUFDcEMsTUFBTSxJQUFJRyxNQUNSLHFDQUNFSCxTQUNBO0lBRU47SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1lbXBoYXNpcy5qcz9kMDgyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5PcHRpb25zfSBPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtFeGNsdWRlPE9wdGlvbnNbJ2VtcGhhc2lzJ10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tFbXBoYXNpcyhzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLmVtcGhhc2lzIHx8ICcqJ1xuXG4gIGlmIChtYXJrZXIgIT09ICcqJyAmJiBtYXJrZXIgIT09ICdfJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3Qgc2VyaWFsaXplIGVtcGhhc2lzIHdpdGggYCcgK1xuICAgICAgICBtYXJrZXIgK1xuICAgICAgICAnYCBmb3IgYG9wdGlvbnMuZW1waGFzaXNgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCdcbiAgICApXG4gIH1cblxuICByZXR1cm4gbWFya2VyXG59XG4iXSwibmFtZXMiOlsiY2hlY2tFbXBoYXNpcyIsInN0YXRlIiwibWFya2VyIiwib3B0aW9ucyIsImVtcGhhc2lzIiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-fence.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-fence.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkFence: () => (/* binding */ checkFence)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['fence'], null | undefined>}\n */ function checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\");\n }\n return marker;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stZmVuY2UuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUVEOzs7Q0FHQyxHQUNNLFNBQVNBLFdBQVdDLEtBQUs7SUFDOUIsTUFBTUMsU0FBU0QsTUFBTUUsT0FBTyxDQUFDQyxLQUFLLElBQUk7SUFFdEMsSUFBSUYsV0FBVyxPQUFPQSxXQUFXLEtBQUs7UUFDcEMsTUFBTSxJQUFJRyxNQUNSLGlDQUNFSCxTQUNBO0lBRU47SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1mZW5jZS5qcz9jMWNiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5PcHRpb25zfSBPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtFeGNsdWRlPE9wdGlvbnNbJ2ZlbmNlJ10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tGZW5jZShzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLmZlbmNlIHx8ICdgJ1xuXG4gIGlmIChtYXJrZXIgIT09ICdgJyAmJiBtYXJrZXIgIT09ICd+Jykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgJyArXG4gICAgICAgIG1hcmtlciArXG4gICAgICAgICdgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gJ1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBtYXJrZXJcbn1cbiJdLCJuYW1lcyI6WyJjaGVja0ZlbmNlIiwic3RhdGUiLCJtYXJrZXIiLCJvcHRpb25zIiwiZmVuY2UiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-fence.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkListItemIndent: () => (/* binding */ checkListItemIndent)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['listItemIndent'], null | undefined>}\n */ function checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\");\n }\n return style;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stbGlzdC1pdGVtLWluZGVudC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7OztDQUdDLEdBRUQ7OztDQUdDLEdBQ00sU0FBU0Esb0JBQW9CQyxLQUFLO0lBQ3ZDLE1BQU1DLFFBQVFELE1BQU1FLE9BQU8sQ0FBQ0MsY0FBYyxJQUFJO0lBRTlDLElBQUlGLFVBQVUsU0FBU0EsVUFBVSxTQUFTQSxVQUFVLFNBQVM7UUFDM0QsTUFBTSxJQUFJRyxNQUNSLGtDQUNFSCxRQUNBO0lBRU47SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1saXN0LWl0ZW0taW5kZW50LmpzPzZjOWUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1snbGlzdEl0ZW1JbmRlbnQnXSwgbnVsbCB8IHVuZGVmaW5lZD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0xpc3RJdGVtSW5kZW50KHN0YXRlKSB7XG4gIGNvbnN0IHN0eWxlID0gc3RhdGUub3B0aW9ucy5saXN0SXRlbUluZGVudCB8fCAnb25lJ1xuXG4gIGlmIChzdHlsZSAhPT0gJ3RhYicgJiYgc3R5bGUgIT09ICdvbmUnICYmIHN0eWxlICE9PSAnbWl4ZWQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgJyArXG4gICAgICAgIHN0eWxlICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLmxpc3RJdGVtSW5kZW50YCwgZXhwZWN0ZWQgYHRhYmAsIGBvbmVgLCBvciBgbWl4ZWRgJ1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBzdHlsZVxufVxuIl0sIm5hbWVzIjpbImNoZWNrTGlzdEl0ZW1JbmRlbnQiLCJzdGF0ZSIsInN0eWxlIiwib3B0aW9ucyIsImxpc3RJdGVtSW5kZW50IiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkQuote: () => (/* binding */ checkQuote)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['quote'], null | undefined>}\n */ function checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\");\n }\n return marker;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stcXVvdGUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUVEOzs7Q0FHQyxHQUNNLFNBQVNBLFdBQVdDLEtBQUs7SUFDOUIsTUFBTUMsU0FBU0QsTUFBTUUsT0FBTyxDQUFDQyxLQUFLLElBQUk7SUFFdEMsSUFBSUYsV0FBVyxPQUFPQSxXQUFXLEtBQUs7UUFDcEMsTUFBTSxJQUFJRyxNQUNSLGtDQUNFSCxTQUNBO0lBRU47SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1xdW90ZS5qcz83MDFhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5PcHRpb25zfSBPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtFeGNsdWRlPE9wdGlvbnNbJ3F1b3RlJ10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tRdW90ZShzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLnF1b3RlIHx8ICdcIidcblxuICBpZiAobWFya2VyICE9PSAnXCInICYmIG1hcmtlciAhPT0gXCInXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAnICtcbiAgICAgICAgbWFya2VyICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYFxcJ2AnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG1hcmtlclxufVxuIl0sIm5hbWVzIjpbImNoZWNrUXVvdGUiLCJzdGF0ZSIsIm1hcmtlciIsIm9wdGlvbnMiLCJxdW90ZSIsIkVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkRuleRepetition: () => (/* binding */ checkRuleRepetition)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['ruleRepetition'], null | undefined>}\n */ function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\");\n }\n return repetition;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stcnVsZS1yZXBldGl0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7O0NBR0MsR0FFRDs7O0NBR0MsR0FDTSxTQUFTQSxvQkFBb0JDLEtBQUs7SUFDdkMsTUFBTUMsYUFBYUQsTUFBTUUsT0FBTyxDQUFDQyxjQUFjLElBQUk7SUFFbkQsSUFBSUYsYUFBYSxHQUFHO1FBQ2xCLE1BQU0sSUFBSUcsTUFDUiw2Q0FDRUgsYUFDQTtJQUVOO0lBRUEsT0FBT0E7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stcnVsZS1yZXBldGl0aW9uLmpzP2YyMjUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1sncnVsZVJlcGV0aXRpb24nXSwgbnVsbCB8IHVuZGVmaW5lZD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1J1bGVSZXBldGl0aW9uKHN0YXRlKSB7XG4gIGNvbnN0IHJlcGV0aXRpb24gPSBzdGF0ZS5vcHRpb25zLnJ1bGVSZXBldGl0aW9uIHx8IDNcblxuICBpZiAocmVwZXRpdGlvbiA8IDMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIHJlcGV0aXRpb24gYCcgK1xuICAgICAgICByZXBldGl0aW9uICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLnJ1bGVSZXBldGl0aW9uYCwgZXhwZWN0ZWQgYDNgIG9yIG1vcmUnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHJlcGV0aXRpb25cbn1cbiJdLCJuYW1lcyI6WyJjaGVja1J1bGVSZXBldGl0aW9uIiwic3RhdGUiLCJyZXBldGl0aW9uIiwib3B0aW9ucyIsInJ1bGVSZXBldGl0aW9uIiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-rule.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-rule.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkRule: () => (/* binding */ checkRule)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['rule'], null | undefined>}\n */ function checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\");\n }\n return marker;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stcnVsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7OztDQUdDLEdBRUQ7OztDQUdDLEdBQ00sU0FBU0EsVUFBVUMsS0FBSztJQUM3QixNQUFNQyxTQUFTRCxNQUFNRSxPQUFPLENBQUNDLElBQUksSUFBSTtJQUVyQyxJQUFJRixXQUFXLE9BQU9BLFdBQVcsT0FBT0EsV0FBVyxLQUFLO1FBQ3RELE1BQU0sSUFBSUcsTUFDUixrQ0FDRUgsU0FDQTtJQUVOO0lBRUEsT0FBT0E7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stcnVsZS5qcz8wZGFjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5PcHRpb25zfSBPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtFeGNsdWRlPE9wdGlvbnNbJ3J1bGUnXSwgbnVsbCB8IHVuZGVmaW5lZD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1J1bGUoc3RhdGUpIHtcbiAgY29uc3QgbWFya2VyID0gc3RhdGUub3B0aW9ucy5ydWxlIHx8ICcqJ1xuXG4gIGlmIChtYXJrZXIgIT09ICcqJyAmJiBtYXJrZXIgIT09ICctJyAmJiBtYXJrZXIgIT09ICdfJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3Qgc2VyaWFsaXplIHJ1bGVzIHdpdGggYCcgK1xuICAgICAgICBtYXJrZXIgK1xuICAgICAgICAnYCBmb3IgYG9wdGlvbnMucnVsZWAsIGV4cGVjdGVkIGAqYCwgYC1gLCBvciBgX2AnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG1hcmtlclxufVxuIl0sIm5hbWVzIjpbImNoZWNrUnVsZSIsInN0YXRlIiwibWFya2VyIiwib3B0aW9ucyIsInJ1bGUiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-rule.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-strong.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/check-strong.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkStrong: () => (/* binding */ checkStrong)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {State} state\n * @returns {Exclude<Options['strong'], null | undefined>}\n */ function checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\");\n }\n return marker;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stc3Ryb25nLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7O0NBR0MsR0FFRDs7O0NBR0MsR0FDTSxTQUFTQSxZQUFZQyxLQUFLO0lBQy9CLE1BQU1DLFNBQVNELE1BQU1FLE9BQU8sQ0FBQ0MsTUFBTSxJQUFJO0lBRXZDLElBQUlGLFdBQVcsT0FBT0EsV0FBVyxLQUFLO1FBQ3BDLE1BQU0sSUFBSUcsTUFDUixtQ0FDRUgsU0FDQTtJQUVOO0lBRUEsT0FBT0E7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stc3Ryb25nLmpzPzEwMzgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1snc3Ryb25nJ10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tTdHJvbmcoc3RhdGUpIHtcbiAgY29uc3QgbWFya2VyID0gc3RhdGUub3B0aW9ucy5zdHJvbmcgfHwgJyonXG5cbiAgaWYgKG1hcmtlciAhPT0gJyonICYmIG1hcmtlciAhPT0gJ18nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBzZXJpYWxpemUgc3Ryb25nIHdpdGggYCcgK1xuICAgICAgICBtYXJrZXIgK1xuICAgICAgICAnYCBmb3IgYG9wdGlvbnMuc3Ryb25nYCwgZXhwZWN0ZWQgYCpgLCBvciBgX2AnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG1hcmtlclxufVxuIl0sIm5hbWVzIjpbImNoZWNrU3Ryb25nIiwic3RhdGUiLCJtYXJrZXIiLCJvcHRpb25zIiwic3Ryb25nIiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/check-strong.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatCodeAsIndented: () => (/* binding */ formatCodeAsIndented)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */ /**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */ function formatCodeAsIndented(node, state) {\n return Boolean(state.options.fences === false && node.value && // If there’s no info…\n !node.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvZm9ybWF0LWNvZGUtYXMtaW5kZW50ZWQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUVEOzs7O0NBSUMsR0FDTSxTQUFTQSxxQkFBcUJDLElBQUksRUFBRUMsS0FBSztJQUM5QyxPQUFPQyxRQUNMRCxNQUFNRSxPQUFPLENBQUNDLE1BQU0sS0FBSyxTQUN2QkosS0FBS0ssS0FBSyxJQUNWLHNCQUFzQjtJQUN0QixDQUFDTCxLQUFLTSxJQUFJLElBQ1YsMENBQTBDO0lBQzFDLFdBQVdDLElBQUksQ0FBQ1AsS0FBS0ssS0FBSyxLQUMxQixpREFBaUQ7SUFDakQsQ0FBQywwQ0FBMENFLElBQUksQ0FBQ1AsS0FBS0ssS0FBSztBQUVoRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvZm9ybWF0LWNvZGUtYXMtaW5kZW50ZWQuanM/Y2EyMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7Q29kZX0gbm9kZVxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Q29kZUFzSW5kZW50ZWQobm9kZSwgc3RhdGUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgc3RhdGUub3B0aW9ucy5mZW5jZXMgPT09IGZhbHNlICYmXG4gICAgICBub2RlLnZhbHVlICYmXG4gICAgICAvLyBJZiB0aGVyZeKAmXMgbm8gaW5mb+KAplxuICAgICAgIW5vZGUubGFuZyAmJlxuICAgICAgLy8gQW5kIHRoZXJl4oCZcyBhIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcuKAplxuICAgICAgL1teIFxcclxcbl0vLnRlc3Qobm9kZS52YWx1ZSkgJiZcbiAgICAgIC8vIEFuZCB0aGUgdmFsdWUgZG9lc27igJl0IHN0YXJ0IG9yIGVuZCBpbiBhIGJsYW5r4oCmXG4gICAgICAhL15bXFx0IF0qKD86W1xcclxcbl18JCl8KD86XnxbXFxyXFxuXSlbXFx0IF0qJC8udGVzdChub2RlLnZhbHVlKVxuICApXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0Q29kZUFzSW5kZW50ZWQiLCJub2RlIiwic3RhdGUiLCJCb29sZWFuIiwib3B0aW9ucyIsImZlbmNlcyIsInZhbHVlIiwibGFuZyIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatHeadingAsSetext: () => (/* binding */ formatHeadingAsSetext)\n/* harmony export */ });\n/* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ \"(ssr)/../../node_modules/unist-util-visit/lib/index.js\");\n/* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unist-util-visit */ \"(ssr)/../../node_modules/unist-util-visit-parents/lib/index.js\");\n/* harmony import */ var mdast_util_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mdast-util-to-string */ \"(ssr)/../../node_modules/mdast-util-to-string/lib/index.js\");\n/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */ \n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */ function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false;\n // Look for literals with a line break.\n // Note that this also\n (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(node, function(node) {\n if (\"value\" in node && /\\r?\\n|\\r/.test(node.value) || node.type === \"break\") {\n literalWithBreak = true;\n return unist_util_visit__WEBPACK_IMPORTED_MODULE_1__.EXIT;\n }\n });\n return Boolean((!node.depth || node.depth < 3) && (0,mdast_util_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(node) && (state.options.setext || literalWithBreak));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvZm9ybWF0LWhlYWRpbmctYXMtc2V0ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7O0NBR0MsR0FFMkM7QUFDQztBQUU3Qzs7OztDQUlDLEdBQ00sU0FBU0csc0JBQXNCQyxJQUFJLEVBQUVDLEtBQUs7SUFDL0MsSUFBSUMsbUJBQW1CO0lBRXZCLHVDQUF1QztJQUN2QyxzQkFBc0I7SUFDdEJMLHVEQUFLQSxDQUFDRyxNQUFNLFNBQVVBLElBQUk7UUFDeEIsSUFDRSxXQUFZQSxRQUFRLFdBQVdHLElBQUksQ0FBQ0gsS0FBS0ksS0FBSyxLQUM5Q0osS0FBS0ssSUFBSSxLQUFLLFNBQ2Q7WUFDQUgsbUJBQW1CO1lBQ25CLE9BQU9OLGtEQUFJQTtRQUNiO0lBQ0Y7SUFFQSxPQUFPVSxRQUNMLENBQUMsQ0FBQ04sS0FBS08sS0FBSyxJQUFJUCxLQUFLTyxLQUFLLEdBQUcsTUFDM0JULDhEQUFRQSxDQUFDRSxTQUNSQyxDQUFBQSxNQUFNTyxPQUFPLENBQUNDLE1BQU0sSUFBSVAsZ0JBQWU7QUFFOUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2Zvcm1hdC1oZWFkaW5nLWFzLXNldGV4dC5qcz9iMTM5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5IZWFkaW5nfSBIZWFkaW5nXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7RVhJVCwgdmlzaXR9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQnXG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICdtZGFzdC11dGlsLXRvLXN0cmluZydcblxuLyoqXG4gKiBAcGFyYW0ge0hlYWRpbmd9IG5vZGVcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEhlYWRpbmdBc1NldGV4dChub2RlLCBzdGF0ZSkge1xuICBsZXQgbGl0ZXJhbFdpdGhCcmVhayA9IGZhbHNlXG5cbiAgLy8gTG9vayBmb3IgbGl0ZXJhbHMgd2l0aCBhIGxpbmUgYnJlYWsuXG4gIC8vIE5vdGUgdGhhdCB0aGlzIGFsc29cbiAgdmlzaXQobm9kZSwgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBpZiAoXG4gICAgICAoJ3ZhbHVlJyBpbiBub2RlICYmIC9cXHI/XFxufFxcci8udGVzdChub2RlLnZhbHVlKSkgfHxcbiAgICAgIG5vZGUudHlwZSA9PT0gJ2JyZWFrJ1xuICAgICkge1xuICAgICAgbGl0ZXJhbFdpdGhCcmVhayA9IHRydWVcbiAgICAgIHJldHVybiBFWElUXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBCb29sZWFuKFxuICAgICghbm9kZS5kZXB0aCB8fCBub2RlLmRlcHRoIDwgMykgJiZcbiAgICAgIHRvU3RyaW5nKG5vZGUpICYmXG4gICAgICAoc3RhdGUub3B0aW9ucy5zZXRleHQgfHwgbGl0ZXJhbFdpdGhCcmVhaylcbiAgKVxufVxuIl0sIm5hbWVzIjpbIkVYSVQiLCJ2aXNpdCIsInRvU3RyaW5nIiwiZm9ybWF0SGVhZGluZ0FzU2V0ZXh0Iiwibm9kZSIsInN0YXRlIiwibGl0ZXJhbFdpdGhCcmVhayIsInRlc3QiLCJ2YWx1ZSIsInR5cGUiLCJCb29sZWFuIiwiZGVwdGgiLCJvcHRpb25zIiwic2V0ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatLinkAsAutolink: () => (/* binding */ formatLinkAsAutolink)\n/* harmony export */ });\n/* harmony import */ var mdast_util_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-to-string */ \"(ssr)/../../node_modules/mdast-util-to-string/lib/index.js\");\n/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */ \n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */ function formatLinkAsAutolink(node, state) {\n const raw = (0,mdast_util_to_string__WEBPACK_IMPORTED_MODULE_0__.toString)(node);\n return Boolean(!state.options.resourceLink && // If there’s a url…\n node.url && // And there’s a no title…\n !node.title && // And the content of `node` is a single text node…\n node.children && node.children.length === 1 && node.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node.url || \"mailto:\" + raw === node.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvZm9ybWF0LWxpbmstYXMtYXV0b2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7O0NBR0MsR0FFNEM7QUFFN0M7Ozs7Q0FJQyxHQUNNLFNBQVNDLHFCQUFxQkMsSUFBSSxFQUFFQyxLQUFLO0lBQzlDLE1BQU1DLE1BQU1KLDhEQUFRQSxDQUFDRTtJQUVyQixPQUFPRyxRQUNMLENBQUNGLE1BQU1HLE9BQU8sQ0FBQ0MsWUFBWSxJQUN6QixvQkFBb0I7SUFDcEJMLEtBQUtNLEdBQUcsSUFDUiwwQkFBMEI7SUFDMUIsQ0FBQ04sS0FBS08sS0FBSyxJQUNYLG1EQUFtRDtJQUNuRFAsS0FBS1EsUUFBUSxJQUNiUixLQUFLUSxRQUFRLENBQUNDLE1BQU0sS0FBSyxLQUN6QlQsS0FBS1EsUUFBUSxDQUFDLEVBQUUsQ0FBQ0UsSUFBSSxLQUFLLFVBQzFCLDZDQUE2QztJQUM1Q1IsQ0FBQUEsUUFBUUYsS0FBS00sR0FBRyxJQUFJLFlBQVlKLFFBQVFGLEtBQUtNLEdBQUcsS0FDakQsaUNBQWlDO0lBQ2pDLG9CQUFvQkssSUFBSSxDQUFDWCxLQUFLTSxHQUFHLEtBQ2pDLHNFQUFzRTtJQUN0RSxvREFBb0Q7SUFDcEQsQ0FBQyxpQkFBaUJLLElBQUksQ0FBQ1gsS0FBS00sR0FBRztBQUVyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvZm9ybWF0LWxpbmstYXMtYXV0b2xpbmsuanM/YzgwZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuTGlua30gTGlua1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMuanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICdtZGFzdC11dGlsLXRvLXN0cmluZydcblxuLyoqXG4gKiBAcGFyYW0ge0xpbmt9IG5vZGVcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdExpbmtBc0F1dG9saW5rKG5vZGUsIHN0YXRlKSB7XG4gIGNvbnN0IHJhdyA9IHRvU3RyaW5nKG5vZGUpXG5cbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgIXN0YXRlLm9wdGlvbnMucmVzb3VyY2VMaW5rICYmXG4gICAgICAvLyBJZiB0aGVyZeKAmXMgYSB1cmzigKZcbiAgICAgIG5vZGUudXJsICYmXG4gICAgICAvLyBBbmQgdGhlcmXigJlzIGEgbm8gdGl0bGXigKZcbiAgICAgICFub2RlLnRpdGxlICYmXG4gICAgICAvLyBBbmQgdGhlIGNvbnRlbnQgb2YgYG5vZGVgIGlzIGEgc2luZ2xlIHRleHQgbm9kZeKAplxuICAgICAgbm9kZS5jaGlsZHJlbiAmJlxuICAgICAgbm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiZcbiAgICAgIG5vZGUuY2hpbGRyZW5bMF0udHlwZSA9PT0gJ3RleHQnICYmXG4gICAgICAvLyBBbmQgaWYgdGhlIHVybCBpcyB0aGUgc2FtZSBhcyB0aGUgY29udGVudOKAplxuICAgICAgKHJhdyA9PT0gbm9kZS51cmwgfHwgJ21haWx0bzonICsgcmF3ID09PSBub2RlLnVybCkgJiZcbiAgICAgIC8vIEFuZCB0aGF0IHN0YXJ0cyB3LyBhIHByb3RvY29s4oCmXG4gICAgICAvXlthLXpdW2EteisuLV0rOi9pLnRlc3Qobm9kZS51cmwpICYmXG4gICAgICAvLyBBbmQgdGhhdCBkb2VzbuKAmXQgY29udGFpbiBBU0NJSSBjb250cm9sIGNvZGVzIChjaGFyYWN0ZXIgZXNjYXBlcyBhbmRcbiAgICAgIC8vIHJlZmVyZW5jZXMgZG9u4oCZdCB3b3JrKSwgc3BhY2UsIG9yIGFuZ2xlIGJyYWNrZXRz4oCmXG4gICAgICAhL1tcXDAtIDw+XFx1MDA3Rl0vLnRlc3Qobm9kZS51cmwpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ0b1N0cmluZyIsImZvcm1hdExpbmtBc0F1dG9saW5rIiwibm9kZSIsInN0YXRlIiwicmF3IiwiQm9vbGVhbiIsIm9wdGlvbnMiLCJyZXNvdXJjZUxpbmsiLCJ1cmwiLCJ0aXRsZSIsImNoaWxkcmVuIiwibGVuZ3RoIiwidHlwZSIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ patternInScope: () => (/* binding */ patternInScope)\n/* harmony export */ });\n/**\n * @typedef {import('../types.js').ConstructName} ConstructName\n * @typedef {import('../types.js').Unsafe} Unsafe\n */ /**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */ function patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */ function listInScope(stack, list, none) {\n if (typeof list === \"string\") {\n list = [\n list\n ];\n }\n if (!list || list.length === 0) {\n return none;\n }\n let index = -1;\n while(++index < list.length){\n if (stack.includes(list[index])) {\n return true;\n }\n }\n return false;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvcGF0dGVybi1pbi1zY29wZS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7OztDQUdDLEdBRUQ7Ozs7Q0FJQyxHQUNNLFNBQVNBLGVBQWVDLEtBQUssRUFBRUMsT0FBTztJQUMzQyxPQUNFQyxZQUFZRixPQUFPQyxRQUFRRSxXQUFXLEVBQUUsU0FDeEMsQ0FBQ0QsWUFBWUYsT0FBT0MsUUFBUUcsY0FBYyxFQUFFO0FBRWhEO0FBRUE7Ozs7O0NBS0MsR0FDRCxTQUFTRixZQUFZRixLQUFLLEVBQUVLLElBQUksRUFBRUMsSUFBSTtJQUNwQyxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QkEsT0FBTztZQUFDQTtTQUFLO0lBQ2Y7SUFFQSxJQUFJLENBQUNBLFFBQVFBLEtBQUtFLE1BQU0sS0FBSyxHQUFHO1FBQzlCLE9BQU9EO0lBQ1Q7SUFFQSxJQUFJRSxRQUFRLENBQUM7SUFFYixNQUFPLEVBQUVBLFFBQVFILEtBQUtFLE1BQU0sQ0FBRTtRQUM1QixJQUFJUCxNQUFNUyxRQUFRLENBQUNKLElBQUksQ0FBQ0csTUFBTSxHQUFHO1lBQy9CLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9wYXR0ZXJuLWluLXNjb3BlLmpzP2RlZjYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcy5qcycpLkNvbnN0cnVjdE5hbWV9IENvbnN0cnVjdE5hbWVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzLmpzJykuVW5zYWZlfSBVbnNhZmVcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8Q29uc3RydWN0TmFtZT59IHN0YWNrXG4gKiBAcGFyYW0ge1Vuc2FmZX0gcGF0dGVyblxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXR0ZXJuSW5TY29wZShzdGFjaywgcGF0dGVybikge1xuICByZXR1cm4gKFxuICAgIGxpc3RJblNjb3BlKHN0YWNrLCBwYXR0ZXJuLmluQ29uc3RydWN0LCB0cnVlKSAmJlxuICAgICFsaXN0SW5TY29wZShzdGFjaywgcGF0dGVybi5ub3RJbkNvbnN0cnVjdCwgZmFsc2UpXG4gIClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PENvbnN0cnVjdE5hbWU+fSBzdGFja1xuICogQHBhcmFtIHtVbnNhZmVbJ2luQ29uc3RydWN0J119IGxpc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbm9uZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGxpc3RJblNjb3BlKHN0YWNrLCBsaXN0LCBub25lKSB7XG4gIGlmICh0eXBlb2YgbGlzdCA9PT0gJ3N0cmluZycpIHtcbiAgICBsaXN0ID0gW2xpc3RdXG4gIH1cblxuICBpZiAoIWxpc3QgfHwgbGlzdC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbm9uZVxuICB9XG5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgaWYgKHN0YWNrLmluY2x1ZGVzKGxpc3RbaW5kZXhdKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cbiJdLCJuYW1lcyI6WyJwYXR0ZXJuSW5TY29wZSIsInN0YWNrIiwicGF0dGVybiIsImxpc3RJblNjb3BlIiwiaW5Db25zdHJ1Y3QiLCJub3RJbkNvbnN0cnVjdCIsImxpc3QiLCJub25lIiwibGVuZ3RoIiwiaW5kZXgiLCJpbmNsdWRlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/mdast-util-to-string/lib/index.js":
-/*!************************************************************!*\
- !*** ../../node_modules/mdast-util-to-string/lib/index.js ***!
- \************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ toString: () => (/* binding */ toString)\n/* harmony export */ });\n/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */ /** @type {Options} */ const emptyOptions = {};\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */ function toString(value, options) {\n const settings = options || emptyOptions;\n const includeImageAlt = typeof settings.includeImageAlt === \"boolean\" ? settings.includeImageAlt : true;\n const includeHtml = typeof settings.includeHtml === \"boolean\" ? settings.includeHtml : true;\n return one(value, includeImageAlt, includeHtml);\n}\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */ function one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if (\"value\" in value) {\n return value.type === \"html\" && !includeHtml ? \"\" : value.value;\n }\n if (includeImageAlt && \"alt\" in value && value.alt) {\n return value.alt;\n }\n if (\"children\" in value) {\n return all(value.children, includeImageAlt, includeHtml);\n }\n }\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml);\n }\n return \"\";\n}\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */ function all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */ const result = [];\n let index = -1;\n while(++index < values.length){\n result[index] = one(values[index], includeImageAlt, includeHtml);\n }\n return result.join(\"\");\n}\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */ function node(value) {\n return Boolean(value && typeof value === \"object\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tc3RyaW5nL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7OztDQVNDLEdBRUQsb0JBQW9CLEdBQ3BCLE1BQU1BLGVBQWUsQ0FBQztBQUV0Qjs7Ozs7Ozs7Ozs7O0NBWUMsR0FDTSxTQUFTQyxTQUFTQyxLQUFLLEVBQUVDLE9BQU87SUFDckMsTUFBTUMsV0FBV0QsV0FBV0g7SUFDNUIsTUFBTUssa0JBQ0osT0FBT0QsU0FBU0MsZUFBZSxLQUFLLFlBQ2hDRCxTQUFTQyxlQUFlLEdBQ3hCO0lBQ04sTUFBTUMsY0FDSixPQUFPRixTQUFTRSxXQUFXLEtBQUssWUFBWUYsU0FBU0UsV0FBVyxHQUFHO0lBRXJFLE9BQU9DLElBQUlMLE9BQU9HLGlCQUFpQkM7QUFDckM7QUFFQTs7Ozs7Ozs7Ozs7Q0FXQyxHQUNELFNBQVNDLElBQUlMLEtBQUssRUFBRUcsZUFBZSxFQUFFQyxXQUFXO0lBQzlDLElBQUlFLEtBQUtOLFFBQVE7UUFDZixJQUFJLFdBQVdBLE9BQU87WUFDcEIsT0FBT0EsTUFBTU8sSUFBSSxLQUFLLFVBQVUsQ0FBQ0gsY0FBYyxLQUFLSixNQUFNQSxLQUFLO1FBQ2pFO1FBRUEsSUFBSUcsbUJBQW1CLFNBQVNILFNBQVNBLE1BQU1RLEdBQUcsRUFBRTtZQUNsRCxPQUFPUixNQUFNUSxHQUFHO1FBQ2xCO1FBRUEsSUFBSSxjQUFjUixPQUFPO1lBQ3ZCLE9BQU9TLElBQUlULE1BQU1VLFFBQVEsRUFBRVAsaUJBQWlCQztRQUM5QztJQUNGO0lBRUEsSUFBSU8sTUFBTUMsT0FBTyxDQUFDWixRQUFRO1FBQ3hCLE9BQU9TLElBQUlULE9BQU9HLGlCQUFpQkM7SUFDckM7SUFFQSxPQUFPO0FBQ1Q7QUFFQTs7Ozs7Ozs7Ozs7Q0FXQyxHQUNELFNBQVNLLElBQUlJLE1BQU0sRUFBRVYsZUFBZSxFQUFFQyxXQUFXO0lBQy9DLDBCQUEwQixHQUMxQixNQUFNVSxTQUFTLEVBQUU7SUFDakIsSUFBSUMsUUFBUSxDQUFDO0lBRWIsTUFBTyxFQUFFQSxRQUFRRixPQUFPRyxNQUFNLENBQUU7UUFDOUJGLE1BQU0sQ0FBQ0MsTUFBTSxHQUFHVixJQUFJUSxNQUFNLENBQUNFLE1BQU0sRUFBRVosaUJBQWlCQztJQUN0RDtJQUVBLE9BQU9VLE9BQU9HLElBQUksQ0FBQztBQUNyQjtBQUVBOzs7Ozs7O0NBT0MsR0FDRCxTQUFTWCxLQUFLTixLQUFLO0lBQ2pCLE9BQU9rQixRQUFRbEIsU0FBUyxPQUFPQSxVQUFVO0FBQzNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1zdHJpbmcvbGliL2luZGV4LmpzPzJkYmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLk5vZGVzfSBOb2Rlc1xuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2luY2x1ZGVJbWFnZUFsdD10cnVlXVxuICogICBXaGV0aGVyIHRvIHVzZSBgYWx0YCBmb3IgYGltYWdlYHMgKGRlZmF1bHQ6IGB0cnVlYCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5jbHVkZUh0bWw9dHJ1ZV1cbiAqICAgV2hldGhlciB0byB1c2UgYHZhbHVlYCBvZiBIVE1MIChkZWZhdWx0OiBgdHJ1ZWApLlxuICovXG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKlxuICogR2V0IHRoZSB0ZXh0IGNvbnRlbnQgb2YgYSBub2RlIG9yIGxpc3Qgb2Ygbm9kZXMuXG4gKlxuICogUHJlZmVycyB0aGUgbm9kZeKAmXMgcGxhaW4tdGV4dCBmaWVsZHMsIG90aGVyd2lzZSBzZXJpYWxpemVzIGl0cyBjaGlsZHJlbixcbiAqIGFuZCBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gYXJyYXksIHNlcmlhbGl6ZSB0aGUgbm9kZXMgaW4gaXQuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBbdmFsdWVdXG4gKiAgIFRoaW5nIHRvIHNlcmlhbGl6ZSwgdHlwaWNhbGx5IGBOb2RlYC5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIGB2YWx1ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSwgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIGNvbnN0IGluY2x1ZGVJbWFnZUFsdCA9XG4gICAgdHlwZW9mIHNldHRpbmdzLmluY2x1ZGVJbWFnZUFsdCA9PT0gJ2Jvb2xlYW4nXG4gICAgICA/IHNldHRpbmdzLmluY2x1ZGVJbWFnZUFsdFxuICAgICAgOiB0cnVlXG4gIGNvbnN0IGluY2x1ZGVIdG1sID1cbiAgICB0eXBlb2Ygc2V0dGluZ3MuaW5jbHVkZUh0bWwgPT09ICdib29sZWFuJyA/IHNldHRpbmdzLmluY2x1ZGVIdG1sIDogdHJ1ZVxuXG4gIHJldHVybiBvbmUodmFsdWUsIGluY2x1ZGVJbWFnZUFsdCwgaW5jbHVkZUh0bWwpXG59XG5cbi8qKlxuICogT25lIG5vZGUgb3Igc2V2ZXJhbCBub2Rlcy5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIFRoaW5nIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUltYWdlQWx0XG4gKiAgIEluY2x1ZGUgaW1hZ2UgYGFsdGBzLlxuICogQHBhcmFtIHtib29sZWFufSBpbmNsdWRlSHRtbFxuICogICBJbmNsdWRlIEhUTUwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG9uZSh2YWx1ZSwgaW5jbHVkZUltYWdlQWx0LCBpbmNsdWRlSHRtbCkge1xuICBpZiAobm9kZSh2YWx1ZSkpIHtcbiAgICBpZiAoJ3ZhbHVlJyBpbiB2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdodG1sJyAmJiAhaW5jbHVkZUh0bWwgPyAnJyA6IHZhbHVlLnZhbHVlXG4gICAgfVxuXG4gICAgaWYgKGluY2x1ZGVJbWFnZUFsdCAmJiAnYWx0JyBpbiB2YWx1ZSAmJiB2YWx1ZS5hbHQpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5hbHRcbiAgICB9XG5cbiAgICBpZiAoJ2NoaWxkcmVuJyBpbiB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGFsbCh2YWx1ZS5jaGlsZHJlbiwgaW5jbHVkZUltYWdlQWx0LCBpbmNsdWRlSHRtbClcbiAgICB9XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gYWxsKHZhbHVlLCBpbmNsdWRlSW1hZ2VBbHQsIGluY2x1ZGVIdG1sKVxuICB9XG5cbiAgcmV0dXJuICcnXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGEgbGlzdCBvZiBub2Rlcy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHVua25vd24+fSB2YWx1ZXNcbiAqICAgVGhpbmcgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIHtib29sZWFufSBpbmNsdWRlSW1hZ2VBbHRcbiAqICAgSW5jbHVkZSBpbWFnZSBgYWx0YHMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVIdG1sXG4gKiAgIEluY2x1ZGUgSFRNTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGFsbCh2YWx1ZXMsIGluY2x1ZGVJbWFnZUFsdCwgaW5jbHVkZUh0bWwpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSBvbmUodmFsdWVzW2luZGV4XSwgaW5jbHVkZUltYWdlQWx0LCBpbmNsdWRlSHRtbClcbiAgfVxuXG4gIHJldHVybiByZXN1bHQuam9pbignJylcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBgdmFsdWVgIGxvb2tzIGxpa2UgYSBub2RlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgVGhpbmcuXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgTm9kZXN9XG4gKiAgIFdoZXRoZXIgYHZhbHVlYCBpcyBhIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG5vZGUodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4odmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jylcbn1cbiJdLCJuYW1lcyI6WyJlbXB0eU9wdGlvbnMiLCJ0b1N0cmluZyIsInZhbHVlIiwib3B0aW9ucyIsInNldHRpbmdzIiwiaW5jbHVkZUltYWdlQWx0IiwiaW5jbHVkZUh0bWwiLCJvbmUiLCJub2RlIiwidHlwZSIsImFsdCIsImFsbCIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5IiwidmFsdWVzIiwicmVzdWx0IiwiaW5kZXgiLCJsZW5ndGgiLCJqb2luIiwiQm9vbGVhbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/mdast-util-to-string/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/attention.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/attention.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ attention: () => (/* binding */ attention)\n/* harmony export */ });\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-chunked */ \"(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\");\n/* harmony import */ var micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-classify-character */ \"(ssr)/../../node_modules/micromark-util-classify-character/dev/index.js\");\n/* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-resolve-all */ \"(ssr)/../../node_modules/micromark-util-resolve-all/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n\n/** @type {Construct} */ const attention = {\n name: \"attention\",\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */ // eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */ let open;\n /** @type {Token} */ let group;\n /** @type {Token} */ let text;\n /** @type {Token} */ let openingSequence;\n /** @type {Token} */ let closingSequence;\n /** @type {number} */ let use;\n /** @type {Array<Event>} */ let nextEvents;\n /** @type {number} */ let offset;\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while(++index < events.length){\n // Find a token that can close.\n if (events[index][0] === \"enter\" && events[index][1].type === \"attentionSequence\" && events[index][1]._close) {\n open = index;\n // Now walk back to find an opener.\n while(open--){\n // Find a token that can open the closer.\n if (events[open][0] === \"exit\" && events[open][1].type === \"attentionSequence\" && events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = Object.assign({}, events[open][1].end);\n const end = Object.assign({}, events[index][1].start);\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.strongSequence : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.emphasisSequence,\n start,\n end: Object.assign({}, events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.strongSequence : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.emphasisSequence,\n start: Object.assign({}, events[index][1].start),\n end\n };\n text = {\n type: use > 1 ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.strongText : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.emphasisText,\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n group = {\n type: use > 1 ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.strong : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.emphasis,\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n };\n events[open][1].end = Object.assign({}, openingSequence.start);\n events[index][1].start = Object.assign({}, closingSequence.end);\n nextEvents = [];\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.push)(nextEvents, [\n [\n \"enter\",\n events[open][1],\n context\n ],\n [\n \"exit\",\n events[open][1],\n context\n ]\n ]);\n }\n // Opening.\n nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.push)(nextEvents, [\n [\n \"enter\",\n group,\n context\n ],\n [\n \"enter\",\n openingSequence,\n context\n ],\n [\n \"exit\",\n openingSequence,\n context\n ],\n [\n \"enter\",\n text,\n context\n ]\n ]);\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(context.parser.constructs.insideSpan.null, \"expected `insideSpan` to be populated\");\n // Between.\n nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.push)(nextEvents, (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n // Closing.\n nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.push)(nextEvents, [\n [\n \"exit\",\n text,\n context\n ],\n [\n \"enter\",\n closingSequence,\n context\n ],\n [\n \"exit\",\n closingSequence,\n context\n ],\n [\n \"exit\",\n group,\n context\n ]\n ]);\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.push)(nextEvents, [\n [\n \"enter\",\n events[index][1],\n context\n ],\n [\n \"exit\",\n events[index][1],\n context\n ]\n ]);\n } else {\n offset = 0;\n }\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.splice)(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n // Remove remaining sequences.\n index = -1;\n while(++index < events.length){\n if (events[index][1].type === \"attentionSequence\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(previous);\n /** @type {NonNullable<Code>} */ let marker;\n return start;\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.underscore, \"expected asterisk or underscore\");\n marker = code;\n effects.enter(\"attentionSequence\");\n return inside(code);\n }\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */ function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit(\"attentionSequence\");\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(code);\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(attentionMarkers, \"expected `attentionMarkers` to be populated\");\n const open = !after || after === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && before || attentionMarkers.includes(code);\n const close = !before || before === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? open : open && (before || !close));\n token._close = Boolean(marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? close : close && (after || !open));\n return ok(code);\n }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {undefined}\n */ function movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9hdHRlbnRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7OztDQVVDLEdBRWtEO0FBQ2dCO0FBQ2Q7QUFDUTtBQUMxQjtBQUVuQyxzQkFBc0IsR0FDZixNQUFNUyxZQUFZO0lBQ3ZCQyxNQUFNO0lBQ05DLFVBQVVDO0lBQ1ZULFlBQVlVO0FBQ2QsRUFBQztBQUVEOzs7O0NBSUMsR0FDRCxzQ0FBc0M7QUFDdEMsU0FBU0Esb0JBQW9CQyxNQUFNLEVBQUVDLE9BQU87SUFDMUMsSUFBSUMsUUFBUSxDQUFDO0lBQ2IsbUJBQW1CLEdBQ25CLElBQUlDO0lBQ0osa0JBQWtCLEdBQ2xCLElBQUlDO0lBQ0osa0JBQWtCLEdBQ2xCLElBQUlDO0lBQ0osa0JBQWtCLEdBQ2xCLElBQUlDO0lBQ0osa0JBQWtCLEdBQ2xCLElBQUlDO0lBQ0osbUJBQW1CLEdBQ25CLElBQUlDO0lBQ0oseUJBQXlCLEdBQ3pCLElBQUlDO0lBQ0osbUJBQW1CLEdBQ25CLElBQUlDO0lBRUosMkJBQTJCO0lBQzNCLEVBQUU7SUFDRiwwRUFBMEU7SUFDMUUsb0NBQW9DO0lBQ3BDLE1BQU8sRUFBRVIsUUFBUUYsT0FBT1csTUFBTSxDQUFFO1FBQzlCLCtCQUErQjtRQUMvQixJQUNFWCxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFLEtBQUssV0FDckJGLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLEVBQUUsQ0FBQ1UsSUFBSSxLQUFLLHVCQUMxQlosTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRSxDQUFDVyxNQUFNLEVBQ3ZCO1lBQ0FWLE9BQU9EO1lBRVAsbUNBQW1DO1lBQ25DLE1BQU9DLE9BQVE7Z0JBQ2IseUNBQXlDO2dCQUN6QyxJQUNFSCxNQUFNLENBQUNHLEtBQUssQ0FBQyxFQUFFLEtBQUssVUFDcEJILE1BQU0sQ0FBQ0csS0FBSyxDQUFDLEVBQUUsQ0FBQ1MsSUFBSSxL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O1FBQzVCLE1BQU1XLFFBQ0osQ0FBQ2IsVUFDQUEsV0FBVzdDLDREQUFTQSxDQUFDd0QseUJBQXlCLElBQUlELFNBQ25EWixpQkFBaUJjLFFBQVEsQ0FBQ2I7UUFFNUJTLE1BQU05QixLQUFLLEdBQUdvQyxRQUNaYixXQUFXL0Msd0RBQUtBLENBQUNpRCxRQUFRLEdBQUdwQyxPQUFPQSxRQUFTaUMsQ0FBQUEsVUFBVSxDQUFDYSxLQUFJO1FBRTdETCxNQUFNL0IsTUFBTSxHQUFHcUMsUUFDYmIsV0FBVy9DLHdEQUFLQSxDQUFDaUQsUUFBUSxHQUFHVSxRQUFRQSxTQUFVSCxDQUFBQSxTQUFTLENBQUMzQyxJQUFHO1FBRTdELE9BQU9WLEdBQUc2QztJQUNaO0FBQ0Y7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDRCxTQUFTakIsVUFBVThCLEtBQUssRUFBRXpDLE1BQU07SUFDOUJ5QyxNQUFNQyxNQUFNLElBQUkxQztJQUNoQnlDLE1BQU16QyxNQUFNLElBQUlBO0lBQ2hCeUMsTUFBTUUsWUFBWSxJQUFJM0M7QUFDeEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2Rldi9saWIvYXR0ZW50aW9uLmpzPzA2N2QiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7cHVzaCwgc3BsaWNlfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaHVua2VkJ1xuaW1wb3J0IHtjbGFzc2lmeUNoYXJhY3Rlcn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2xhc3NpZnktY2hhcmFjdGVyJ1xuaW1wb3J0IHtyZXNvbHZlQWxsfSBmcm9tICdtaWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbCdcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGF0dGVudGlvbiA9IHtcbiAgbmFtZTogJ2F0dGVudGlvbicsXG4gIHRva2VuaXplOiB0b2tlbml6ZUF0dGVudGlvbixcbiAgcmVzb2x2ZUFsbDogcmVzb2x2ZUFsbEF0dGVudGlvblxufVxuXG4vKipcbiAqIFRha2UgYWxsIGV2ZW50cyBhbmQgcmVzb2x2ZSBhdHRlbnRpb24gdG8gZW1waGFzaXMgb3Igc3Ryb25nLlxuICpcbiAqIEB0eXBlIHtSZXNvbHZlcn1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmZ1bmN0aW9uIHJlc29sdmVBbGxBdHRlbnRpb24oZXZlbnRzLCBjb250ZXh0KSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgb3BlblxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgZ3JvdXBcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IHRleHRcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IG9wZW5pbmdTZXF1ZW5jZVxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgY2xvc2luZ1NlcXVlbmNlXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgdXNlXG4gIC8qKiBAdHlwZSB7QXJyYXk8RXZlbnQ+fSAqL1xuICBsZXQgbmV4dEV2ZW50c1xuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IG9mZnNldFxuXG4gIC8vIFdhbGsgdGhyb3VnaCBhbGwgZXZlbnRzLlxuICAvL1xuICAvLyBOb3RlOiBwZXJmb3JtYW5jZSBvZiB0aGlzIGlzIGZpbmUgb24gYW4gbWIgb2Ygbm9ybWFsIG1hcmtkb3duLCBidXQgaXTigJlzXG4gIC8vIGEgYm90dGxlbmVjayBmb3IgbWFsaWNpb3VzIHN0dWZmLlxuICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICAvLyBGaW5kIGEgdG9rZW4gdGhhdCBjYW4gY2xvc2UuXG4gICAgaWYgKFxuICAgICAgZXZlbnRzW2luZGV4XVswXSA9PT0gJ2VudGVyJyAmJlxuICAgICAgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSAnYXR0ZW50aW9uU2VxdWVuY2UnICYmXG4gICAgICBldmVudHNbaW5kZXhdWzFdLl9jbG9zZVxuICAgICkge1xuICAgICAgb3BlbiA9IGluZGV4XG5cbiAgICAgIC8vIE5vdyB3YWxrIGJhY2sgdG8gZmluZCBhbiBvcGVuZXIuXG4gICAgICB3aGlsZSAob3Blbi0tKSB7XG4gICAgICAgIC8vIEZpbmQgYSB0b2tlbiB0aGF0IGNhbiBvcGVuIHRoZSBjbG9zZXIuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudHNbb3Blbl1bMF0gPT09ICdleGl0JyAmJlxuICAgICAgICAgIGV2ZW50c1tvcGVuXVsxXS50eXBlID09PSAnYXR0ZW50aW9uU2VxdWVuY2UnICYmXG4gICAgICAgICAgZXZlbnRzW29wZW5dWzFdLl9vcGVuICYmXG4gICAgICAgICAgLy8gSWYgdGhlIG1hcmtlcnMgYXJlIHRoZSBzYW1lOlxuICAgICAgICAgIGNvbnRleHQuc2xpY2VTZXJpYWxpemUoZXZlbnRzW29wZW5dWzFdKS5jaGFyQ29kZUF0KDApID09PVxuICAgICAgICAgICAgY29udGV4dC5zbGljZVNlcmlhbGl6ZShldmVudHNbaW5kZXhdWzFdKS5jaGFyQ29kZUF0KDApXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIElmIHRoZSBvcGVuaW5nIGNhbiBjbG9zZSBvciB0aGUgY2xvc2luZyBjYW4gb3BlbixcbiAgICAgICAgICAvLyBhbmQgdGhlIGNsb3NlIHNpemUgKmlzIG5vdCogYSBtdWx0aXBsZSBvZiB0aHJlZSxcbiAgICAgICAgICAvLyBidXQgdGhlIHN1bSBvZiB0aGUgb3BlbmluZyBhbmQgY2xvc2luZyBzaXplICppcyogbXVsdGlwbGUgb2YgdGhyZWUsXG4gICAgICAgICAgLy8gdGhlbiBkb27igJl0IG1hdGNoLlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIChldmVudHNbb3Blbl1bMV0uX2Nsb3NlIHx8IGV2ZW50c1tpbmRleF1bMV0uX29wZW4pICYmXG4gICAgICAgICAgICAoZXZlbnRzW2luZGV4XVsxXS5lbmQub2Zmc2V0IC0gZXZlbnRzW2luZGV4XVsxXS5zdGFydC5vZmZzZXQpICUgMyAmJlxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgKGV2ZW50c1tvcGVuXVsxXS5lbmQub2Zmc2V0IC1cbiAgICAgICAgICAgICAgICBldmVudHNbb3Blbl1bMV0uc3RhcnQub2Zmc2V0ICtcbiAgICAgICAgICAgICAgICBldmVudHNbaW5kZXhdWzFdLmVuZC5vZmZzZXQgLVxuICAgICAgICAgICAgICAgIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQub2Zmc2V0KSAlXG4gICAgICAgICAgICAgIDNcbiAgICAgICAgICAgIClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gTnVtYmVyIG9mIG1hcmtlcnMgdG8gdXNlIGZyb20gdGhlIHNlcXVlbmNlLlxuICAgICAgICAgIHVzZSA9XG4gICAgICAgICAgICBldmVudHNbb3Blbl1bMV0uZW5kLm9mZnNldCAtIGV2ZW50c1tvcGVuXVsxXS5zdGFydC5vZmZzZXQgPiAxICYmXG4gICAgICAgICAgICBldmVudHNbaW5kZXhdWzFdLmVuZC5vZmZzZXQgLSBldmVudHNbaW5kZXhdWzFdLnN0YXJ0Lm9mZnNldCA+IDFcbiAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgIDogMVxuXG4gICAgICAgICAgY29uc3Qgc3RhcnQgPSBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbb3Blbl1bMV0uZW5kKVxuICAgICAgICAgIGNvbnN0IGVuZCA9IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQpXG4gICAgICAgICAgbW92ZVBvaW50KHN0YXJ0LCAtdXNlKVxuICAgICAgICAgIG1vdmVQb2ludChlbmQsIHVzZSlcblxuICAgICAgICAgIG9wZW5pbmdTZXF1ZW5jZSA9IHtcbiAgICAgICAgICAgIHR5cGU6IHVzZSA+IDEgPyB0eXBlcy5zdHJvbmdTZXF1ZW5jZSA6IHR5cGVzLmVtcGhhc2lzU2VxdWVuY2UsXG4gICAgICAgICAgICBzdGFydCxcbiAgICAgICAgICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW29wZW5dWzFdLmVuZClcbiAgICAgICAgICB9XG4gICAgICAgICAgY2xvc2luZ1NlcXVlbmNlID0ge1xuICAgICAgICAgICAgdHlwZTogdXNlID4gMSA/IHR5cGVzLnN0cm9uZ1NlcXVlbmNlIDogdHlwZXMuZW1waGFzaXNTZXF1ZW5jZSxcbiAgICAgICAgICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbaW5kZXhdWzFdLnN0YXJ0KSxcbiAgICAgICAgICAgIGVuZFxuICAgICAgICAgIH1cbiAgICAgICAgICB0ZXh0ID0ge1xuICAgICAgICAgICAgdHlwZTogdXNlID4gMSA/IHR5cGVzLnN0cm9uZ1RleHQgOiB0eXBlcy5lbXBoYXNpc1RleHQsXG4gICAgICAgICAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW29wZW5dWzFdLmVuZCksXG4gICAgICAgICAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQpXG4gICAgICAgICAgfVxuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgdHlwZTogdXNlID4gMSA/IHR5cGVzLnN0cm9uZyA6IHR5cGVzLmVtcGhhc2lzLFxuICAgICAgICAgICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIG9wZW5pbmdTZXF1ZW5jZS5zdGFydCksXG4gICAgICAgICAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIGNsb3NpbmdTZXF1ZW5jZS5lbmQpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXZlbnRzW29wZW5dWzFdLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIG9wZW5pbmdTZXF1ZW5jZS5zdGFydClcbiAgICAgICAgICBldmVudHNbaW5kZXhdWzFdLnN0YXJ0ID0gT2JqZWN0LmFzc2lnbih7fSwgY2xvc2luZ1NlcXVlbmNlLmVuZClcblxuICAgICAgICAgIG5leHRFdmVudHMgPSBbXVxuXG4gICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG1vcmUgbWFya2VycyBpbiB0aGUgb3BlbmluZywgYWRkIHRoZW0gYmVmb3JlLlxuICAgICAgICAgIGlmIChldmVudHNbb3Blbl1bMV0uZW5kLm9mZnNldCAtIGV2ZW50c1tvcGVuXVsxXS5zdGFydC5vZmZzZXQpIHtcbiAgICAgICAgICAgIG5leHRFdmVudHMgPSBwdXNoKG5leHRFdmVudHMsIFtcbiAgICAgICAgICAgICAgWydlbnRlcicsIGV2ZW50c1tvcGVuXVsxXSwgY29udGV4dF0sXG4gICAgICAgICAgICAgIFsnZXhpdCcsIGV2ZW50c1tvcGVuXVsxXSwgY29udGV4dF1cbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gT3BlbmluZy5cbiAgICAgICAgICBuZXh0RXZlbnRzID0gcHVzaChuZXh0RXZlbnRzLCBbXG4gICAgICAgICAgICBbJ2VudGVyJywgZ3JvdXAsIGNvbnRleHRdLFxuICAgICAgICAgICAgWydlbnRlcicsIG9wZW5pbmdTZXF1ZW5jZSwgY29udGV4dF0sXG4gICAgICAgICAgICBbJ2V4aXQnLCBvcGVuaW5nU2VxdWVuY2UsIGNvbnRleHRdLFxuICAgICAgICAgICAgWydlbnRlcicsIHRleHQsIGNvbnRleHRdXG4gICAgICAgICAgXSlcblxuICAgICAgICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG4gICAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgICAgY29udGV4dC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsXG4gICAgICAgICAgICAnZXhwZWN0ZWQgYGluc2lkZVNwYW5gIHRvIGJlIHBvcHVsYXRlZCdcbiAgICAgICAgICApXG5cbiAgICAgICAgICAvLyBCZXR3ZWVuLlxuICAgICAgICAgIG5leHRFdmVudHMgPSBwdXNoKFxuICAgICAgICAgICAgbmV4dEV2ZW50cyxcbiAgICAgICAgICAgIHJlc29sdmVBbGwoXG4gICAgICAgICAgICAgIGNvbnRleHQucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLFxuICAgICAgICAgICAgICBldmVudHMuc2xpY2Uob3BlbiArIDEsIGluZGV4KSxcbiAgICAgICAgICAgICAgY29udGV4dFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcblxuICAgICAgICAgIC8vIENsb3NpbmcuXG4gICAgICAgICAgbmV4dEV2ZW50cyA9IHB1c2gobmV4dEV2ZW50cywgW1xuICAgICAgICAgICAgWydleGl0JywgdGV4dCwgY29udGV4dF0sXG4gICAgICAgICAgICBbJ2VudGVyJywgY2xvc2luZ1NlcXVlbmNlLCBjb250ZXh0XSxcbiAgICAgICAgICAgIFsnZXhpdCcsIGNsb3NpbmdTZXF1ZW5jZSwgY29udGV4dF0sXG4gICAgICAgICAgICBbJ2V4aXQnLCBncm91cCwgY29udGV4dF1cbiAgICAgICAgICBdKVxuXG4gICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG1vcmUgbWFya2VycyBpbiB0aGUgY2xvc2luZywgYWRkIHRoZW0gYWZ0ZXIuXG4gICAgICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMV0uZW5kLm9mZnNldCAtIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQub2Zmc2V0KSB7XG4gICAgICAgICAgICBvZmZzZXQgPSAyXG4gICAgICAgICAgICBuZXh0RXZlbnRzID0gcHVzaChuZXh0RXZlbnRzLCBbXG4gICAgICAgICAgICAgIFsnZW50ZXInLCBldmVudHNbaW5kZXhdWzFdLCBjb250ZXh0XSxcbiAgICAgICAgICAgICAgWydleGl0JywgZXZlbnRzW2luZGV4XVsxXSwgY29udGV4dF1cbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9mZnNldCA9IDBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGxpY2UoZXZlbnRzLCBvcGVuIC0gMSwgaW5kZXggLSBvcGVuICsgMywgbmV4dEV2ZW50cylcblxuICAgICAgICAgIGluZGV4ID0gb3BlbiArIG5leHRFdmVudHMubGVuZ3RoIC0gb2Zmc2V0IC0gMlxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgcmVtYWluaW5nIHNlcXVlbmNlcy5cbiAgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgIGlmIChldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdhdHRlbnRpb25TZXF1ZW5jZScpIHtcbiAgICAgIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9ICdkYXRhJ1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBldmVudHNcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVBdHRlbnRpb24oZWZmZWN0cywgb2spIHtcbiAgY29uc3QgYXR0ZW50aW9uTWFya2VycyA9IHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuYXR0ZW50aW9uTWFya2Vycy5udWxsXG4gIGNvbnN0IHByZXZpb3VzID0gdGhpcy5wcmV2aW91c1xuICBjb25zdCBiZWZvcmUgPSBjbGFzc2lmeUNoYXJhY3RlcihwcmV2aW91cylcblxuICAvKiogQHR5cGUge05vbk51bGxhYmxlPENvZGU+fSAqL1xuICBsZXQgbWFya2VyXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIEJlZm9yZSBhIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKipcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBhc3NlcnQoXG4gICAgICBjb2RlID09PSBjb2Rlcy5hc3RlcmlzayB8fCBjb2RlID09PSBjb2Rlcy51bmRlcnNjb3JlLFxuICAgICAgJ2V4cGVjdGVkIGFzdGVyaXNrIG9yIHVuZGVyc2NvcmUnXG4gICAgKVxuICAgIG1hcmtlciA9IGNvZGVcbiAgICBlZmZlY3RzLmVudGVyKCdhdHRlbnRpb25TZXF1ZW5jZScpXG4gICAgcmV0dXJuIGluc2lkZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGEgc2VxdWVuY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqKlxuICAgKiAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gaW5zaWRlXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBlZmZlY3RzLmV4aXQoJ2F0dGVudGlvblNlcXVlbmNlJylcblxuICAgIC8vIFRvIGRvOiBuZXh0IG1ham9yOiBtb3ZlIHRoaXMgdG8gcmVzb2x2ZXIsIGp1c3QgbGlrZSBgbWFya2Rvd24tcnNgLlxuICAgIGNvbnN0IGFmdGVyID0gY2xhc3NpZnlDaGFyYWN0ZXIoY29kZSlcblxuICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG4gICAgYXNzZXJ0KGF0dGVudGlvbk1hcmtlcnMsICdleHBlY3RlZCBgYXR0ZW50aW9uTWFya2Vyc2AgdG8gYmUgcG9wdWxhdGVkJylcblxuICAgIGNvbnN0IG9wZW4gPVxuICAgICAgIWFmdGVyIHx8XG4gICAgICAoYWZ0ZXIgPT09IGNvbnN0YW50cy5jaGFyYWN0ZXJHcm91cFB1bmN0dWF0aW9uICYmIGJlZm9yZSkgfHxcbiAgICAgIGF0dGVudGlvbk1hcmtlcnMuaW5jbHVkZXMoY29kZSlcbiAgICBjb25zdCBjbG9zZSA9XG4gICAgICAhYmVmb3JlIHx8XG4gICAgICAoYmVmb3JlID09PSBjb25zdGFudHMuY2hhcmFjdGVyR3JvdXBQdW5jdHVhdGlvbiAmJiBhZnRlcikgfHxcbiAgICAgIGF0dGVudGlvbk1hcmtlcnMuaW5jbHVkZXMocHJldmlvdXMpXG5cbiAgICB0b2tlbi5fb3BlbiA9IEJvb2xlYW4oXG4gICAgICBtYXJrZXIgPT09IGNvZGVzLmFzdGVyaXNrID8gb3BlbiA6IG9wZW4gJiYgKGJlZm9yZSB8fCAhY2xvc2UpXG4gICAgKVxuICAgIHRva2VuLl9jbG9zZSA9IEJvb2xlYW4oXG4gICAgICBtYXJrZXIgPT09IGNvZGVzLmFzdGVyaXNrID8gY2xvc2UgOiBjbG9zZSAmJiAoYWZ0ZXIgfHwgIW9wZW4pXG4gICAgKVxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogTW92ZSBhIHBvaW50IGEgYml0LlxuICpcbiAqIE5vdGU6IGBtb3ZlYCBvbmx5IHdvcmtzIGluc2lkZSBsaW5lcyEgSXTigJlzIG5vdCBwb3NzaWJsZSB0byBtb3ZlIHBhc3Qgb3RoZXJcbiAqIGNodW5rcyAocmVwbGFjZW1lbnQgY2hhcmFjdGVycywgdGFicywgb3IgbGluZSBlbmRpbmdzKS5cbiAqXG4gKiBAcGFyYW0ge1BvaW50fSBwb2ludFxuICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gbW92ZVBvaW50KHBvaW50LCBvZmZzZXQpIHtcbiAgcG9pbnQuY29sdW1uICs9IG9mZnNldFxuICBwb2ludC5vZmZzZXQgKz0gb2Zmc2V0XG4gIHBvaW50Ll9idWZmZXJJbmRleCArPSBvZmZzZXRcbn1cbiJdLCJuYW1lcyI6WyJwdXNoIiwic3BsaWNlIiwiY2xhc3NpZnlDaGFyYWN0ZXIiLCJyZXNvbHZlQWxsIiwiY29kZXMiLCJjb25zdGFudHMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiYXR0ZW50aW9uIiwibmFtZSIsInRva2VuaXplIiwidG9rZW5pemVBdHRlbnRpb24iLCJyZXNvbHZlQWxsQXR0ZW50aW9uIiwiZXZlbnRzIiwiY29udGV4dCIsImluZGV4Iiwib3BlbiIsImdyb3VwIiwidGV4dCIsIm9wZW5pbmdTZXF1ZW5jZSIsImNsb3NpbmdTZXF1ZW5jZSIsInVzZSIsIm5leHRFdmVudHMiLCJvZmZzZXQiLCJsZW5ndGgiLCJ0eXBlIiwiX2Nsb3NlIiwiX29wZW4iLCJzbGljZVNlcmlhbGl6ZSIsImNoYXJDb2RlQXQiLCJlbmQiLCJzdGFydCIsIk9iamVjdCIsImFzc2lnbiIsIm1vdmVQb2ludCIsInN0cm9uZ1NlcXVlbmNlIiwiZW1waGFzaXNTZXF1ZW5jZSIsInN0cm9uZ1RleHQiLCJlbXBoYXNpc1RleHQiLCJzdHJvbmciLCJlbXBoYXNpcyIsInBhcnNlciIsImNvbnN0cnVjdHMiLCJpbnNpZGVTcGFuIiwibnVsbCIsInNsaWNlIiwiZWZmZWN0cyIsImF0dGVudGlvbk1hcmtlcnMiLCJwcmV2aW91cyIsImJlZm9yZSIsIm1hcmtlciIsImNvZGUiLCJhc3RlcmlzayIsInVuZGVyc2NvcmUiLCJlbnRlciIsImluc2lkZSIsImNvbnN1bWUiLCJ0b2tlbiIsImV4aXQiLCJhZnRlciIsImNoYXJhY3Rlckdyb3VwUHVuY3R1YXRpb24iLCJpbmNsdWRlcyIsImNsb3NlIiwiQm9vbGVhbiIsInBvaW50IiwiY29sdW1uIiwiX2J1ZmZlckluZGV4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/attention.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/autolink.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/autolink.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ autolink: () => (/* binding */ autolink)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n/** @type {Construct} */ const autolink = {\n name: \"autolink\",\n tokenize: tokenizeAutolink\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<[email protected]>b\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, \"expected `<`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolink);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol);\n return open;\n }\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<[email protected]>b\n * ^\n * ```\n *\n * @type {State}\n */ function open(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n return emailAtext(code);\n }\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<[email protected]>b\n * ^\n * ```\n *\n * @type {State}\n */ function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dot || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<[email protected]>b\n * ^\n * ```\n *\n * @type {State}\n */ function schemeInsideOrEmailAtext(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dot || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) && size++ < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkSchemeSizeMax) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */ function urlInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolink);\n return ok;\n }\n // ASCII control, space, or `<`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.space || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiControl)(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<[email protected]>b\n * ^\n * ```\n *\n * @type {State}\n */ function emailAtext(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.atSign) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAtext)(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<[email protected]>b\n * ^ ^\n * ```\n *\n * @type {State}\n */ function emailAtSignOrDot(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code) ? emailLabel(code) : nok(code);\n }\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<[email protected]>b\n * ^\n * ```\n *\n * @type {State}\n */ function emailLabel(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dot) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {\n // Exit, then change the token type.\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol).type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkEmail;\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolink);\n return ok;\n }\n return emailValue(code);\n }\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<[email protected]>b\n * ^\n * ```\n *\n * @type {State}\n */ function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) && size++ < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkDomainSizeMax) {\n const next = code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9hdXRvbGluay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQU9nQztBQUM0QjtBQUMxQjtBQUVuQyxzQkFBc0IsR0FDZixNQUFNUyxXQUFXO0lBQUNDLE1BQU07SUFBWUMsVUFBVUM7QUFBZ0IsRUFBQztBQUV0RTs7O0NBR0MsR0FDRCxTQUFTQSxpQkFBaUJDLE9BQU8sRUFBRU4sRUFBRSxFQUFFTyxHQUFHO0lBQ3hDLElBQUlDLE9BQU87SUFFWCxPQUFPQztJQUVQOzs7Ozs7Ozs7OztHQVdDLEdBQ0QsU0FBU0EsTUFBTUMsSUFBSTtRQUNqQlQsMENBQU1BLENBQUNTLFNBQVNiLHdEQUFLQSxDQUFDYyxRQUFRLEVBQUU7UUFDaENMLFFBQVFNLEtBQUssQ0FBQ2Isd0RBQUtBLENBQUNHLFFBQVE7UUFDNUJJLFFBQVFNLEtBQUssQ0FBQ2Isd0RBQUtBLENBQUNjLGNBQWM7UUFDbENQLFFBQVFRLE9BQU8sQ0FBQ0o7UUFDaEJKLFFBQVFTLElBQUksQ0FBQ2hCLHdEQUFLQSxDQUFDYyxjQUFjO1FBQ2pDUCxRQUFRTSxLQUFLLENBQUNiLHdEQUFLQSxDQUFDaUIsZ0JBQWdCO1FBQ3BDLE9BQU9DO0lBQ1Q7SUFFQTs7Ozs7Ozs7Ozs7R0FXQyxHQUNELFNBQVNBLEtBQUtQLElBQUk7UUFDaEIsSUFBSWpCLG9FQUFVQSxDQUFDaUIsT0FBTztZQUNwQkosUUFBUVEsT0FBTyxDQUFDSjtZQUNoQixPQUFPUTtRQUNUO1FBRUEsT0FBT0MsV0FBV1Q7SUFDcEI7SUFFQTs7Ozs7Ozs7Ozs7R0FXQyxHQUNELFNBQVNRLG1CQUFtQlIsSUFBSTtRQUM5Qiw0Q0FBNEM7UUFDNUMsSUFDRUEsU0FBU2Isd0RBQUtBLENBQUN1QixRQUFRLElBQ3ZCVixTQUFTYix3REFBS0EsQ0FBQ3dCLElBQUksSUFDbkJYLFNBQVNiLHdEQUFLQSxDQUFDeUIsR0FBRyxJQUNs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Ozs7Ozs7O0dBV0MsR0FDRCxTQUFTeUIsV0FBV3pCLElBQUk7UUFDdEIsNkJBQTZCO1FBQzdCLElBQ0UsQ0FBQ0EsU0FBU2Isd0RBQUtBLENBQUN3QixJQUFJLElBQUkzQiwyRUFBaUJBLENBQUNnQixLQUFJLEtBQzlDRixTQUFTViw0REFBU0EsQ0FBQ3NDLHFCQUFxQixFQUN4QztZQUNBLE1BQU1DLE9BQU8zQixTQUFTYix3REFBS0EsQ0FBQ3dCLElBQUksR0FBR2MsYUFBYUg7WUFDaEQxQixRQUFRUSxPQUFPLENBQUNKO1lBQ2hCLE9BQU8yQjtRQUNUO1FBRUEsT0FBTzlCLElBQUlHO0lBQ2I7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9hdXRvbGluay5qcz9hNDUzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge1xuICBhc2NpaUFscGhhLFxuICBhc2NpaUFscGhhbnVtZXJpYyxcbiAgYXNjaWlBdGV4dCxcbiAgYXNjaWlDb250cm9sXG59IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGF1dG9saW5rID0ge25hbWU6ICdhdXRvbGluaycsIHRva2VuaXplOiB0b2tlbml6ZUF1dG9saW5rfVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUF1dG9saW5rKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgbGV0IHNpemUgPSAwXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGFuIGF1dG9saW5rLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTxodHRwczovL2V4YW1wbGUuY29tPmJcbiAgICogICAgICBeXG4gICAqID4gfCBhPHVzZXJAZXhhbXBsZS5jb20+YlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBhc3NlcnQoY29kZSA9PT0gY29kZXMubGVzc1RoYW4sICdleHBlY3RlZCBgPGAnKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuYXV0b2xpbmspXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5hdXRvbGlua01hcmtlcilcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMuYXV0b2xpbmtNYXJrZXIpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5hdXRvbGlua1Byb3RvY29sKVxuICAgIHJldHVybiBvcGVuXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDxgLCBhdCBwcm90b2NvbCBvciBhdGV4dC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8aHR0cHM6Ly9leGFtcGxlLmNvbT5iXG4gICAqICAgICAgIF5cbiAgICogPiB8IGE8dXNlckBleGFtcGxlLmNvbT5iXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4oY29kZSkge1xuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBzY2hlbWVPckVtYWlsQXRleHRcbiAgICB9XG5cbiAgICByZXR1cm4gZW1haWxBdGV4dChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IHNlY29uZCBieXRlIG9mIHByb3RvY29sIG9yIGF0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTxodHRwczovL2V4YW1wbGUuY29tPmJcbiAgICogICAgICAgIF5cbiAgICogPiB8IGE8dXNlckBleGFtcGxlLmNvbT5iXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzY2hlbWVPckVtYWlsQXRleHQoY29kZSkge1xuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpYyBhbmQgYCtgLCBgLWAsIGFuZCBgLmAuXG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMucGx1c1NpZ24gfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmRhc2ggfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmRvdCB8fFxuICAgICAgYXNjaWlBbHBoYW51bWVyaWMoY29kZSlcbiAgICApIHtcbiAgICAgIC8vIENvdW50IHRoZSBwcmV2aW91cyBhbHBoYWJldGljYWwgZnJvbSBgb3BlbmAgdG9vLlxuICAgICAgc2l6ZSA9IDFcbiAgICAgIHJldHVybiBzY2hlbWVJbnNpZGVPckVtYWlsQXRleHQoY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gZW1haWxBdGV4dChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGFtYmlndW91cyBwcm90b2NvbCBvciBhdGV4dC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8aHR0cHM6Ly9leGFtcGxlLmNvbT5iXG4gICAqICAgICAgICBeXG4gICAqID4gfCBhPHVzZXJAZXhhbXBsZS5jb20+YlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc2NoZW1lSW5zaWRlT3JFbWFpbEF0ZXh0KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuY29sb24pIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgc2l6ZSA9IDBcbiAgICAgIHJldHVybiB1cmxJbnNpZGVcbiAgICB9XG5cbiAgICAvLyBBU0NJSSBhbHBoYW51bWVyaWMgYW5kIGArYCwgYC1gLCBhbmQgYC5gLlxuICAgIGlmIChcbiAgICAgIChjb2RlID09PSBjb2Rlcy5wbHVzU2lnbiB8fFxuICAgICAgICBjb2RlID09PSBjb2Rlcy5kYXNoIHx8XG4gICAgICAgIGNvZGUgPT09IGNvZGVzLmRvdCB8fFxuICAgICAgICBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKSkgJiZcbiAgICAgIHNpemUrKyA8IGNvbnN0YW50cy5hdXRvbGlua1NjaGVtZVNpemVNYXhcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHNjaGVtZUluc2lkZU9yRW1haWxBdGV4dFxuICAgIH1cblxuICAgIHNpemUgPSAwXG4gICAgcmV0dXJuIGVtYWlsQXRleHQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBwcm90b2NvbCwgaW4gVVJMLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTxodHRwczovL2V4YW1wbGUuY29tPmJcbiAgICogICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdXJsSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5hdXRvbGlua1Byb3RvY29sKVxuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlcy5hdXRvbGlua01hcmtlcilcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmF1dG9saW5rTWFya2VyKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmF1dG9saW5rKVxuICAgICAgcmV0dXJuIG9rXG4gICAgfVxuXG4gICAgLy8gQVNDSUkgY29udHJvbCwgc3BhY2UsIG9yIGA8YC5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnNwYWNlIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5sZXNzVGhhbiB8fFxuICAgICAgYXNjaWlDb250cm9sKGNvZGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIHVybEluc2lkZVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGVtYWlsIGF0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTx1c2VyLm5hbWVAZXhhbXBsZS5jb20+YlxuICAgKiAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxBdGV4dChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmF0U2lnbikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gZW1haWxBdFNpZ25PckRvdFxuICAgIH1cblxuICAgIGlmIChhc2NpaUF0ZXh0KGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBlbWFpbEF0ZXh0XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCBhZnRlciBhdC1zaWduIG9yIGRvdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8dXNlci5uYW1lQGV4YW1wbGUuY29tPmJcbiAgICogICAgICAgICAgICAgICAgIF4gICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxBdFNpZ25PckRvdChjb2RlKSB7XG4gICAgcmV0dXJuIGFzY2lpQWxwaGFudW1lcmljKGNvZGUpID8gZW1haWxMYWJlbChjb2RlKSA6IG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCB3aGVyZSBgLmAgYW5kIGA+YCBhcmUgYWxsb3dlZC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8dXNlci5uYW1lQGV4YW1wbGUuY29tPmJcbiAgICogICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxMYWJlbChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRvdCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBzaXplID0gMFxuICAgICAgcmV0dXJuIGVtYWlsQXRTaWduT3JEb3RcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICAgIC8vIEV4aXQsIHRoZW4gY2hhbmdlIHRoZSB0b2tlbiB0eXBlLlxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmF1dG9saW5rUHJvdG9jb2wpLnR5cGUgPSB0eXBlcy5hdXRvbGlua0VtYWlsXG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmF1dG9saW5rTWFya2VyKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuYXV0b2xpbmtNYXJrZXIpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuYXV0b2xpbmspXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG5cbiAgICByZXR1cm4gZW1haWxWYWx1ZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCB3aGVyZSBgLmAgYW5kIGA+YCBhcmUgKm5vdCogYWxsb3dlZC5cbiAgICpcbiAgICogVGhvdWdoLCB0aGlzIGlzIGFsc28gdXNlZCBpbiBgZW1haWxMYWJlbGAgdG8gcGFyc2Ugb3RoZXIgdmFsdWVzLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTx1c2VyLm5hbWVAZXgtYW1wbGUuY29tPmJcbiAgICogICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVtYWlsVmFsdWUoY29kZSkge1xuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpYyBvciBgLWAuXG4gICAgaWYgKFxuICAgICAgKGNvZGUgPT09IGNvZGVzLmRhc2ggfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpICYmXG4gICAgICBzaXplKysgPCBjb25zdGFudHMuYXV0b2xpbmtEb21haW5TaXplTWF4XG4gICAgKSB7XG4gICAgICBjb25zdCBuZXh0ID0gY29kZSA9PT0gY29kZXMuZGFzaCA/IGVtYWlsVmFsdWUgOiBlbWFpbExhYmVsXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBuZXh0XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG4iXSwibmFtZXMiOlsiYXNjaWlBbHBoYSIsImFzY2lpQWxwaGFudW1lcmljIiwiYXNjaWlBdGV4dCIsImFzY2lpQ29udHJvbCIsImNvZGVzIiwiY29uc3RhbnRzIiwidHlwZXMiLCJvayIsImFzc2VydCIsImF1dG9saW5rIiwibmFtZSIsInRva2VuaXplIiwidG9rZW5pemVBdXRvbGluayIsImVmZmVjdHMiLCJub2siLCJzaXplIiwic3RhcnQiLCJjb2RlIiwibGVzc1RoYW4iLCJlbnRlciIsImF1dG9saW5rTWFya2VyIiwiY29uc3VtZSIsImV4aXQiLCJhdXRvbGlua1Byb3RvY29sIiwib3BlbiIsInNjaGVtZU9yRW1haWxBdGV4dCIsImVtYWlsQXRleHQiLCJwbHVzU2lnbiIsImRhc2giLCJkb3QiLCJzY2hlbWVJbnNpZGVPckVtYWlsQXRleHQiLCJjb2xvbiIsInVybEluc2lkZSIsImF1dG9saW5rU2NoZW1lU2l6ZU1heCIsImdyZWF0ZXJUaGFuIiwiZW9mIiwic3BhY2UiLCJhdFNpZ24iLCJlbWFpbEF0U2lnbk9yRG90IiwiZW1haWxMYWJlbCIsInR5cGUiLCJhdXRvbGlua0VtYWlsIiwiZW1haWxWYWx1ZSIsImF1dG9saW5rRG9tYWluU2l6ZU1heCIsIm5leHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/autolink.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/blank-line.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/blank-line.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ blankLine: () => (/* binding */ blankLine)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n/** @type {Construct} */ const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeBlankLine(effects, ok, nok) {\n return start;\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__.factorySpace)(effects, after, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)(code) : after(code);\n }\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownLineEnding)(code) ? ok(code) : nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9ibGFuay1saW5lLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFbUQ7QUFDc0I7QUFDeEI7QUFFbEQsc0JBQXNCLEdBQ2YsTUFBTUssWUFBWTtJQUFDQyxVQUFVQztJQUFtQkMsU0FBUztBQUFJLEVBQUM7QUFFckU7OztDQUdDLEdBQ0QsU0FBU0Qsa0JBQWtCRSxPQUFPLEVBQUVDLEVBQUUsRUFBRUMsR0FBRztJQUN6QyxPQUFPQztJQUVQOzs7Ozs7Ozs7Ozs7O0dBYUMsR0FDRCxTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCLE9BQU9YLHVFQUFhQSxDQUFDVyxRQUNqQmIscUVBQVlBLENBQUNTLFNBQVNLLE9BQU9WLHdEQUFLQSxDQUFDVyxVQUFVLEVBQUVGLFFBQy9DQyxNQUFNRDtJQUNaO0lBRUE7Ozs7Ozs7Ozs7Ozs7R0FhQyxHQUNELFNBQVNDLE1BQU1ELElBQUk7UUFDakIsT0FBT0EsU0FBU1Ysd0RBQUtBLENBQUNhLEdBQUcsSUFBSWYsNEVBQWtCQSxDQUFDWSxRQUFRSCxHQUFHRyxRQUFRRixJQUFJRTtJQUN6RTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL2JsYW5rLWxpbmUuanM/MzUzMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGJsYW5rTGluZSA9IHt0b2tlbml6ZTogdG9rZW5pemVCbGFua0xpbmUsIHBhcnRpYWw6IHRydWV9XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQmxhbmtMaW5lKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGJsYW5rIGxpbmUuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogYOKQoGAgcmVwcmVzZW50cyBhIHNwYWNlIGNoYXJhY3Rlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IOKQoOKQoOKQilxuICAgKiAgICAgXlxuICAgKiA+IHwg4pCKXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgID8gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyLCB0eXBlcy5saW5lUHJlZml4KShjb2RlKVxuICAgICAgOiBhZnRlcihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGVvZi9lb2wsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogYOKQoGAgcmVwcmVzZW50cyBhIHNwYWNlIGNoYXJhY3Rlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IOKQoOKQoOKQilxuICAgKiAgICAgICBeXG4gICAqID4gfCDikIpcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSA/IG9rKGNvZGUpIDogbm9rKGNvZGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmYWN0b3J5U3BhY2UiLCJtYXJrZG93bkxpbmVFbmRpbmciLCJtYXJrZG93blNwYWNlIiwiY29kZXMiLCJ0eXBlcyIsImJsYW5rTGluZSIsInRva2VuaXplIiwidG9rZW5pemVCbGFua0xpbmUiLCJwYXJ0aWFsIiwiZWZmZWN0cyIsIm9rIiwibm9rIiwic3RhcnQiLCJjb2RlIiwiYWZ0ZXIiLCJsaW5lUHJlZml4IiwiZW9mIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/blank-line.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/block-quote.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/block-quote.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ blockQuote: () => (/* binding */ blockQuote)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n/** @type {Construct} */ const blockQuote = {\n name: \"blockQuote\",\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this;\n return start;\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {\n const state = self.containerState;\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(state, \"expected `containerState` to be defined in container\");\n if (!state.open) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote, {\n _container: true\n });\n state.open = true;\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker);\n return after;\n }\n return nok(code);\n }\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix);\n return ok;\n }\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix);\n return ok(code);\n }\n}\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this;\n return contStart;\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */ function contStart(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.parser.constructs.disable.null, \"expected `disable.null` to be populated\");\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, contBefore, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix, self.parser.constructs.disable.null.includes(\"codeIndented\") ? undefined : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize)(code);\n }\n return contBefore(code);\n }\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */ function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code);\n }\n}\n/** @type {Exiter} */ function exit(effects) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9ibG9jay1xdW90ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7OztDQU1DLEdBRW1EO0FBQ0U7QUFDTztBQUMxQjtBQUVuQyxzQkFBc0IsR0FDZixNQUFNTyxhQUFhO0lBQ3hCQyxNQUFNO0lBQ05DLFVBQVVDO0lBQ1ZDLGNBQWM7UUFBQ0YsVUFBVUc7SUFBOEI7SUFDdkRDO0FBQ0YsRUFBQztBQUVEOzs7Q0FHQyxHQUNELFNBQVNILHdCQUF3QkksT0FBTyxFQUFFVCxFQUFFLEVBQUVVLEdBQUc7SUFDL0MsTUFBTUMsT0FBTyxJQUFJO0lBRWpCLE9BQU9DO0lBRVA7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsTUFBTUMsSUFBSTtRQUNqQixJQUFJQSxTQUFTaEIsd0RBQUtBLENBQUNpQixXQUFXLEVBQUU7WUFDOUIsTUFBTUMsUUFBUUosS0FBS0ssY0FBYztZQUVqQ2YsMENBQU1BLENBQUNjLE9BQU87WUFFZCxJQUFJLENBQUNBLE1BQU1FLElBQUksRUFBRTtnQkFDZlIsUUFBUVMsS0FBSyxDQUFDbkIsd0RBQUtBLENBQUNHLFVBQVUsRUFBRTtvQkFBQ2lCLFlBQVk7Z0JBQUk7Z0JBQ2pESixNQUFNRSxJQUFJLEdBQUc7WUFDZjtZQUVBUixRQUFRUyxLQUFLLENBQUNuQix3REFBS0EsQ0FBQ3FCLGdCQUFnQjtZQUNwQ1gsUUFBUVMsS0FBSyxDQUFDbkIsd0RBQUtBLENBQUNzQixnQkFBZ0I7WUFDcENaLFFBQVFhLE9BQU8sQ0FBQ1Q7WUFDaEJKLFFBQVFELElBQUksQ0FBQ1Qsd0RBQUtBLENBQUNzQixnQkFBZ0I7WUFDbkMsT0FBT0U7UUFDVDtRQUVBLE9BQU9iLElBQUlHO0lBQ2I7SUFFQTs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTVSxNQUFNVixJQUFJO1FBQ2pCLElBQUlqQix1RUFBYUEsQ0FBQ2lCLE9BQU87WUFDdkJKLFFBQVFTLEtBQUssQ0FBQ25CLHdEQUFLQSxDQUFDeUIsMEJBQTBCO1lBQzlDZixRQUFRYSxPQUFPLENBQUNUO1lBQ2hCSixRQUFRRCxJQUFJLENBQUNULHdEQUFLQSxDQUFDeUIsMEJBQTBCO1lBQzdDZixRQUFRRCxJQUFJLENBQUNULHdEQUFLQSxDQUFDcUIsZ0JBQWdCO1lBQ25DLE9BQU9wQjtRQUNUO1FBRUFTLFFBQVFELElBQUksQ0FBQ1Qsd0RBQUtBLENBQUNxQixnQkFBZ0I7UUFDbkMsT0FBT3BCLEdBQUdhO0lBQ1o7QUFDRjtBQUVBOzs7Ozs7Ozs7OztDQVdDLEdBQ0QsU0FBU04sK0JBQStCRSxPQUFPLEVBQUVULEVBQUUsRUFBRVUsR0FBRztJQUN0RCxNQUFNQyxPQUFPLElBQUk7SUFFakIsT0FBT2M7SUFFUDs7Ozs7Ozs7Ozs7O0dBWUMsR0FDRCxTQUFTQSxVQUFVWixJQUFJO1FBQ3JCLElBQUlqQix1RUFBYUEsQ0FBQ2lCLE9BQU87WUFDdkIsZ0NBQWdDO1lBQ2hDWiwwQ0FBTUEsQ0FDSlUsS0FBS2UsTUFBTSxDQUFDQyxVQUFVLENBQUNDLE9BQU8sQ0FBQ0MsSUFBSSxFQUNuQztZQUdGLE9BQU9sQyxxRUFBWUEsQ0FDakJjLFNBQ0FxQixZQUNBL0Isd0RBQUtBLENBQUNnQyxVQUFVLEVBQ2hCcEIsS0FBS2UsTUFBTSxDQUFDQyxVQUFVLENBQUNDLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDRyxRQUFRLENBQUMsa0JBQ3pDQyxZQUNBbkMsNERBQVNBLENBQUNvQyxPQUFPLEVBQ3JCckI7UUFDSjtRQUVBLE9BQU9pQixXQUFXakI7SUFDcEI7SUFFQTs7Ozs7Ozs7Ozs7O0dBWUMsR0FDRCxTQUFTaUIsV0FBV2pCLElBQUk7UUFDdEIsT0FBT0osUUFBUTBCLE9BQU8sQ0FBQ2pDLFlBQVlGLElBQUlVLEtBQUtHO0lBQzlDO0FBQ0Y7QUFFQSxtQkFBbUIsR0FDbkIsU0FBU0wsS0FBS0MsT0FBTztJQUNuQkEsUUFBUUQsSUFBSSxDQUFDVCx3REFBS0EsQ0FBQ0csVUFBVTtBQUMvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9ibG9jay1xdW90ZS5qcz9mNTY0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FeGl0ZXJ9IEV4aXRlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge21hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGJsb2NrUXVvdGUgPSB7XG4gIG5hbWU6ICdibG9ja1F1b3RlJyxcbiAgdG9rZW5pemU6IHRva2VuaXplQmxvY2tRdW90ZVN0YXJ0LFxuICBjb250aW51YXRpb246IHt0b2tlbml6ZTogdG9rZW5pemVCbG9ja1F1b3RlQ29udGludWF0aW9ufSxcbiAgZXhpdFxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUJsb2NrUXVvdGVTdGFydChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGJsb2NrIHF1b3RlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPiBhXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmdyZWF0ZXJUaGFuKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IHNlbGYuY29udGFpbmVyU3RhdGVcblxuICAgICAgYXNzZXJ0KHN0YXRlLCAnZXhwZWN0ZWQgYGNvbnRhaW5lclN0YXRlYCB0byBiZSBkZWZpbmVkIGluIGNvbnRhaW5lcicpXG5cbiAgICAgIGlmICghc3RhdGUub3Blbikge1xuICAgICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmJsb2NrUXVvdGUsIHtfY29udGFpbmVyOiB0cnVlfSlcbiAgICAgICAgc3RhdGUub3BlbiA9IHRydWVcbiAgICAgIH1cblxuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlcy5ibG9ja1F1b3RlUHJlZml4KVxuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlcy5ibG9ja1F1b3RlTWFya2VyKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuYmxvY2tRdW90ZU1hcmtlcilcbiAgICAgIHJldHVybiBhZnRlclxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPmAsIGJlZm9yZSBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPiBhXG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXIoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuYmxvY2tRdW90ZVByZWZpeClcbiAgICAgIHJldHVybiBva1xuICAgIH1cblxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5ibG9ja1F1b3RlUHJlZml4KVxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogU3RhcnQgb2YgYmxvY2sgcXVvdGUgY29udGludWF0aW9uLlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiAgIHwgPiBhXG4gKiA+IHwgPiBiXG4gKiAgICAgXlxuICogYGBgXG4gKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQmxvY2tRdW90ZUNvbnRpbnVhdGlvbihlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG5cbiAgcmV0dXJuIGNvbnRTdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBibG9jayBxdW90ZSBjb250aW51YXRpb24uXG4gICAqXG4gICAqIEFsc28gdXNlZCB0byBwYXJzZSB0aGUgZmlyc3QgYmxvY2sgcXVvdGUgb3BlbmluZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8ID4gYVxuICAgKiA+IHwgPiBiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250U3RhcnQoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuICAgICAgYXNzZXJ0KFxuICAgICAgICBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbCxcbiAgICAgICAgJ2V4cGVjdGVkIGBkaXNhYmxlLm51bGxgIHRvIGJlIHBvcHVsYXRlZCdcbiAgICAgIClcblxuICAgICAgcmV0dXJuIGZhY3RvcnlTcGFjZShcbiAgICAgICAgZWZmZWN0cyxcbiAgICAgICAgY29udEJlZm9yZSxcbiAgICAgICAgdHlwZXMubGluZVByZWZpeCxcbiAgICAgICAgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IGNvbnN0YW50cy50YWJTaXplXG4gICAgICApKGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRCZWZvcmUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBgPmAsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIEFsc28gdXNlZCB0byBwYXJzZSB0aGUgZmlyc3QgYmxvY2sgcXVvdGUgb3BlbmluZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8ID4gYVxuICAgKiA+IHwgPiBiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250QmVmb3JlKGNvZGUpIHtcbiAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KGJsb2NrUXVvdGUsIG9rLCBub2spKGNvZGUpXG4gIH1cbn1cblxuLyoqIEB0eXBlIHtFeGl0ZXJ9ICovXG5mdW5jdGlvbiBleGl0KGVmZmVjdHMpIHtcbiAgZWZmZWN0cy5leGl0KHR5cGVzLmJsb2NrUXVvdGUpXG59XG4iXSwibmFtZXMiOlsiZmFjdG9yeVNwYWNlIiwibWFya2Rvd25TcGFjZSIsImNvZGVzIiwiY29uc3RhbnRzIiwidHlwZXMiLCJvayIsImFzc2VydCIsImJsb2NrUXVvdGUiLCJuYW1lIiwidG9rZW5pemUiLCJ0b2tlbml6ZUJsb2NrUXVvdGVTdGFydCIsImNvbnRpbnVhdGlvbiIsInRva2VuaXplQmxvY2tRdW90ZUNvbnRpbnVhdGlvbiIsImV4aXQiLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsInN0YXJ0IiwiY29kZSIsImdyZWF0ZXJUaGFuIiwic3RhdGUiLCJjb250YWluZXJTdGF0ZSIsIm9wZW4iLCJlbnRlciIsIl9jb250YWluZXIiLCJibG9ja1F1b3RlUHJlZml4IiwiYmxvY2tRdW90ZU1hcmtlciIsImNvbnN1bWUiLCJhZnRlciIsImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiwiY29udFN0YXJ0IiwicGFyc2VyIiwiY29uc3RydWN0cyIsImRpc2FibGUiLCJudWxsIiwiY29udEJlZm9yZSIsImxpbmVQcmVmaXgiLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsInRhYlNpemUiLCJhdHRlbXB0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/block-quote.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/character-escape.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/character-escape.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ characterEscape: () => (/* binding */ characterEscape)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n/** @type {Construct} */ const characterEscape = {\n name: \"characterEscape\",\n tokenize: tokenizeCharacterEscape\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, \"expected `\\\\`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker);\n return inside;\n }\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */ function inside(code) {\n // ASCII punctuation.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiPunctuation)(code)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape);\n return ok;\n }\n return nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9jaGFyYWN0ZXItZXNjYXBlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFd0Q7QUFDUDtBQUNmO0FBRW5DLHNCQUFzQixHQUNmLE1BQU1LLGtCQUFrQjtJQUM3QkMsTUFBTTtJQUNOQyxVQUFVQztBQUNaLEVBQUM7QUFFRDs7O0NBR0MsR0FDRCxTQUFTQSx3QkFBd0JDLE9BQU8sRUFBRU4sRUFBRSxFQUFFTyxHQUFHO0lBQy9DLE9BQU9DO0lBRVA7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsTUFBTUMsSUFBSTtRQUNqQlIsMENBQU1BLENBQUNRLFNBQVNYLHdEQUFLQSxDQUFDWSxTQUFTLEVBQUU7UUFDakNKLFFBQVFLLEtBQUssQ0FBQ1osd0RBQUtBLENBQUNHLGVBQWU7UUFDbkNJLFFBQVFLLEtBQUssQ0FBQ1osd0RBQUtBLENBQUNhLFlBQVk7UUFDaENOLFFBQVFPLE9BQU8sQ0FBQ0o7UUFDaEJILFFBQVFRLElBQUksQ0FBQ2Ysd0RBQUtBLENBQUNhLFlBQVk7UUFDL0IsT0FBT0c7SUFDVDtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLE9BQU9OLElBQUk7UUFDbEIscUJBQXFCO1FBQ3JCLElBQUlaLDBFQUFnQkEsQ0FBQ1ksT0FBTztZQUMxQkgsUUFBUUssS0FBSyxDQUFDWix3REFBS0EsQ0FBQ2lCLG9CQUFvQjtZQUN4Q1YsUUFBUU8sT0FBTyxDQUFDSjtZQUNoQkgsUUFBUVEsSUFBSSxDQUFDZix3REFBS0EsQ0FBQ2lCLG9CQUFvQjtZQUN2Q1YsUUFBUVEsSUFBSSxDQUFDZix3REFBS0EsQ0FBQ0csZUFBZTtZQUNsQyxPQUFPRjtRQUNUO1FBRUEsT0FBT08sSUFBSUU7SUFDYjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL2NoYXJhY3Rlci1lc2NhcGUuanM/M2M0YSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHthc2NpaVB1bmN0dWF0aW9ufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge2NvZGVzLCB0eXBlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRXNjYXBlID0ge1xuICBuYW1lOiAnY2hhcmFjdGVyRXNjYXBlJyxcbiAgdG9rZW5pemU6IHRva2VuaXplQ2hhcmFjdGVyRXNjYXBlXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ2hhcmFjdGVyRXNjYXBlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGNoYXJhY3RlciBlc2NhcGUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhXFwqYlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBhc3NlcnQoY29kZSA9PT0gY29kZXMuYmFja3NsYXNoLCAnZXhwZWN0ZWQgYFxcXFxgJylcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNoYXJhY3RlckVzY2FwZSlcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmVzY2FwZU1hcmtlcilcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMuZXNjYXBlTWFya2VyKVxuICAgIHJldHVybiBpbnNpZGVcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXFxgLCBhdCBwdW5jdHVhdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFcXCpiXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc2lkZShjb2RlKSB7XG4gICAgLy8gQVNDSUkgcHVuY3R1YXRpb24uXG4gICAgaWYgKGFzY2lpUHVuY3R1YXRpb24oY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY2hhcmFjdGVyRXNjYXBlVmFsdWUpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaGFyYWN0ZXJFc2NhcGVWYWx1ZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaGFyYWN0ZXJFc2NhcGUpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJhc2NpaVB1bmN0dWF0aW9uIiwiY29kZXMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiY2hhcmFjdGVyRXNjYXBlIiwibmFtZSIsInRva2VuaXplIiwidG9rZW5pemVDaGFyYWN0ZXJFc2NhcGUiLCJlZmZlY3RzIiwibm9rIiwic3RhcnQiLCJjb2RlIiwiYmFja3NsYXNoIiwiZW50ZXIiLCJlc2NhcGVNYXJrZXIiLCJjb25zdW1lIiwiZXhpdCIsImluc2lkZSIsImNoYXJhY3RlckVzY2FwZVZhbHVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/character-escape.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/character-reference.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/character-reference.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ characterReference: () => (/* binding */ characterReference)\n/* harmony export */ });\n/* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! decode-named-character-reference */ \"(ssr)/../../node_modules/decode-named-character-reference/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n/** @type {Construct} */ const characterReference = {\n name: \"characterReference\",\n tokenize: tokenizeCharacterReference\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */ let max;\n /** @type {(code: Code) => boolean} */ let test;\n return start;\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.ampersand, \"expected `&`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReference);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker);\n return open;\n }\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */ function open(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.numberSign) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric);\n return numeric;\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue);\n max = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceNamedSizeMax;\n test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric;\n return value(code);\n }\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */ function numeric(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.uppercaseX || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lowercaseX) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue);\n max = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceHexadecimalSizeMax;\n test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiHexDigit;\n return value;\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue);\n max = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceDecimalSizeMax;\n test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiDigit;\n return value(code);\n }\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&amp;b\n * ^^^\n * > | a&#123;b\n * ^^^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */ function value(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.semicolon && size) {\n const token = effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue);\n if (test === micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric && !(0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_5__.decodeNamedCharacterReference)(self.sliceSerialize(token))) {\n return nok(code);\n }\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.characterReference);\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9jaGFyYWN0ZXItcmVmZXJlbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7Ozs7O0NBTUMsR0FFNkU7QUFLN0M7QUFDNEI7QUFDMUI7QUFFbkMsc0JBQXNCLEdBQ2YsTUFBTVMscUJBQXFCO0lBQ2hDQyxNQUFNO0lBQ05DLFVBQVVDO0FBQ1osRUFBQztBQUVEOzs7Q0FHQyxHQUNELFNBQVNBLDJCQUEyQkMsT0FBTyxFQUFFTixFQUFFLEVBQUVPLEdBQUc7SUFDbEQsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLElBQUlDLE9BQU87SUFDWCxtQkFBbUIsR0FDbkIsSUFBSUM7SUFDSixvQ0FBb0MsR0FDcEMsSUFBSUM7SUFFSixPQUFPQztJQUVQOzs7Ozs7Ozs7Ozs7O0dBYUMsR0FDRCxTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCWiwwQ0FBTUEsQ0FBQ1ksU0FBU2hCLHdEQUFLQSxDQUFDaUIsU0FBUyxFQUFFO1FBQ2pDUixRQUFRUyxLQUFLLENBQUNoQix3REFBS0EsQ0FBQ0csa0JBQWtCO1FBQ3RDSSxRQUFRUyxLQUFLLENBQUNoQix3REFBS0EsQ0FBQ2lCLHdCQUF3QjtRQUM1Q1YsUUFBUVcsT0FBTyxDQUFDSjtRQUNoQlAsUUFBUVksSUFBSSxDQUFDbkIsd0RBQUtBLENBQUNpQix3QkFBd0I7UUFDM0MsT0FBT0c7SUFDVDtJQUVBOzs7Ozs7Ozs7Ozs7OztHQWNDLEdBQ0QsU0FBU0EsS0FBS04sSUFBSTtRQUNoQixJQUFJQSxTQUFTaEIsd0RBQUtBLENBQUN1QixVQUFVLEVBQUU7WUFDN0JkLFFBQVFTLEtBQUssQ0FBQ2hCLHdEQUFLQSxDQUFDc0IsK0JBQStCO1lBQ25EZixRQUFRVyxPQUFPLENBQUNKO1lBQ2hCUCxRQUFRWSxJQUFJLENBQUNuQix3REFBS0EsQ0FBQ3NCLCtCQUErQjtZQUNsRCxPQUFPQztRQUNUO1FBRUFoQixRQUFRUyxLQUFLLENBQUNoQix3REFBS0EsQ0FBQ3dCLHVCQUF1QjtRQUMzQ2IsTUFBTVosNERBQVNBLENBQUMwQiw4QkFBOEI7UUFDOUNiLE9BQU9qQix1RUFBaUJBO1FBQ3hCLE9BQU8rQixNQUFNWjtJQUNmO0lBRUE7Ozs7Ozs7Ozs7O0dBV0MsR0FDRCxTQUFTUyxRQUFRVCxJQUFJO1FBQ25CLElBQUlBLFNBQVNoQix3REFBS0EsQ0FBQzZCLFVBQVUsSUFBSWIsU0FBU2hCLHdEQUFLQSxDQUFDOEIsVUFBVSxFQUFFO1lBQzFEckIsUUFBUVMsS0FBSyxDQUFDaEIsd0RBQUtBLENBQUM2QixtQ0FBbUM7WUFDdkR0QixRQUFRVyxPQUFPLENBQUNKO1lBQ2hCUCxRQUFRWSxJQUFJLENBQUNuQix3REFBS0EsQ0FBQzZCLG1DQUFtQztZQUN0RHRCLFFBQVFTLEtBQUssQ0FBQ2hCLHdEQUFLQSxDQUFDd0IsdUJBQXVCO1lBQzNDYixNQUFNWiw0REFBU0EsQ0FBQytCLG9DQUFvQztZQUNwRGxCLE9BQU9mLG1FQUFhQTtZQUNwQixPQUFPNkI7UUFDVDtRQUVBbkIsUUFBUVMsS0FBSyxDQUFDaEIsd0RBQUtBLENBQUN3Qix1QkFBdUI7UUFDM0NiLE1BQU1aLDREQUFTQSxDQUFDZ0MsZ0NBQWdDO1FBQ2hEbkIsT0FBT2hCLGdFQUFVQTtRQUNqQixPQUFPOEIsTUFBTVo7SUFDZjtJQUVBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JDLEdBQ0QsU0FBU1ksTUFBTVosSUFBSTtRQUNqQixJQUFJQSxTQUFTaEIsd0RBQUtBLENBQUNrQyxTQUFTLElBQUl0QixNQUFNO1lBQ3BDLE1BQU11QixRQUFRMUIsUUFBUVksSUFBSSxDQUFDbkIsd0RBQUtBLENBQUN3Qix1QkFBdUI7WUFFeEQsSUFDRVosU0FBU2pCLHVFQUFpQkEsSUFDMUIsQ0FBQ0QsK0ZBQTZCQSxDQUFDZSxLQUFLeUIsY0FBYyxDQUFDRCxTQUNuRDtnQkFDQSxPQUFPekIsSUFBSU07WUFDYjtZQUVBLDhDQUE4QztZQUM5QyxrQ0FBa0M7WUFDbENQLFFBQVFTLEtBQUssQ0FBQ2hCLHdEQUFLQSxDQUFDaUIsd0JBQXdCO1lBQzVDVixRQUFRVyxPQUFPLENBQUNKO1lBQ2hCUCxRQUFRWSxJQUFJLENBQUNuQix3REFBS0EsQ0FBQ2lCLHdCQUF3QjtZQUMzQ1YsUUFBUVksSUFBSSxDQUFDbkIsd0RBQUtBLENBQUNHLGtCQUFrQjtZQUNyQyxPQUFPRjtRQUNUO1FBRUEsSUFBSVcsS0FBS0UsU0FBU0osU0FBU0MsS0FBSztZQUM5QkosUUFBUVcsT0FBTyxDQUFDSjtZQUNoQixPQUFPWTtRQUNUO1FBRUEsT0FBT2xCLElBQUlNO0lBQ2I7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9jaGFyYWN0ZXItcmVmZXJlbmNlLmpzP2NlNDEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZX0gZnJvbSAnZGVjb2RlLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2UnXG5pbXBvcnQge1xuICBhc2NpaUFscGhhbnVtZXJpYyxcbiAgYXNjaWlEaWdpdCxcbiAgYXNjaWlIZXhEaWdpdFxufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge2NvZGVzLCBjb25zdGFudHMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJSZWZlcmVuY2UgPSB7XG4gIG5hbWU6ICdjaGFyYWN0ZXJSZWZlcmVuY2UnLFxuICB0b2tlbml6ZTogdG9rZW5pemVDaGFyYWN0ZXJSZWZlcmVuY2Vcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDaGFyYWN0ZXJSZWZlcmVuY2UoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBsZXQgc2l6ZSA9IDBcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBtYXhcbiAgLyoqIEB0eXBlIHsoY29kZTogQ29kZSkgPT4gYm9vbGVhbn0gKi9cbiAgbGV0IHRlc3RcblxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgY2hhcmFjdGVyIHJlZmVyZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEmYW1wO2JcbiAgICogICAgICBeXG4gICAqID4gfCBhJiMxMjM7YlxuICAgKiAgICAgIF5cbiAgICogPiB8IGEmI3g5O2JcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLmFtcGVyc2FuZCwgJ2V4cGVjdGVkIGAmYCcpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5jaGFyYWN0ZXJSZWZlcmVuY2UpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5jaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmNoYXJhY3RlclJlZmVyZW5jZU1hcmtlcilcbiAgICByZXR1cm4gb3BlblxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGAmYCwgYXQgYCNgIGZvciBudW1lcmljIHJlZmVyZW5jZXMgb3IgYWxwaGFudW1lcmljIGZvciBuYW1lZFxuICAgKiByZWZlcmVuY2VzLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSZhbXA7YlxuICAgKiAgICAgICBeXG4gICAqID4gfCBhJiMxMjM7YlxuICAgKiAgICAgICBeXG4gICAqID4gfCBhJiN4OTtiXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5udW1iZXJTaWduKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljKVxuICAgICAgcmV0dXJuIG51bWVyaWNcbiAgICB9XG5cbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNoYXJhY3RlclJlZmVyZW5jZVZhbHVlKVxuICAgIG1heCA9IGNvbnN0YW50cy5jaGFyYWN0ZXJSZWZlcmVuY2VOYW1lZFNpemVNYXhcbiAgICB0ZXN0ID0gYXNjaWlBbHBoYW51bWVyaWNcbiAgICByZXR1cm4gdmFsdWUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgI2AsIGF0IGB4YCBmb3IgaGV4YWRlY2ltYWxzIG9yIGRpZ2l0IGZvciBkZWNpbWFscy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEmIzEyMztiXG4gICAqICAgICAgICBeXG4gICAqID4gfCBhJiN4OTtiXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBudW1lcmljKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMudXBwZXJjYXNlWCB8fCBjb2RlID09PSBjb2Rlcy5sb3dlcmNhc2VYKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwpXG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNoYXJhY3RlclJlZmVyZW5jZVZhbHVlKVxuICAgICAgbWF4ID0gY29uc3RhbnRzLmNoYXJhY3RlclJlZmVyZW5jZUhleGFkZWNpbWFsU2l6ZU1heFxuICAgICAgdGVzdCA9IGFzY2lpSGV4RGlnaXRcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUpXG4gICAgbWF4ID0gY29uc3RhbnRzLmNoYXJhY3RlclJlZmVyZW5jZURlY2ltYWxTaXplTWF4XG4gICAgdGVzdCA9IGFzY2lpRGlnaXRcbiAgICByZXR1cm4gdmFsdWUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBtYXJrZXJzIChgJiN4YCwgYCYjYCwgb3IgYCZgKSwgaW4gdmFsdWUsIGJlZm9yZSBgO2AuXG4gICAqXG4gICAqIFRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGtpbmQgZGVmaW5lcyB3aGF0IGFuZCBob3cgbWFueSBjaGFyYWN0ZXJzIGFyZVxuICAgKiBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSZhbXA7YlxuICAgKiAgICAgICBeXl5cbiAgICogPiB8IGEmIzEyMztiXG4gICAqICAgICAgICBeXl5cbiAgICogPiB8IGEmI3g5O2JcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB2YWx1ZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnNlbWljb2xvbiAmJiBzaXplKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IGVmZmVjdHMuZXhpdCh0eXBlcy5jaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSlcblxuICAgICAgaWYgKFxuICAgICAgICB0ZXN0ID09PSBhc2NpaUFscGhhbnVtZXJpYyAmJlxuICAgICAgICAhZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2Uoc2VsZi5zbGljZVNlcmlhbGl6ZSh0b2tlbikpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgICAgfVxuXG4gICAgICAvLyBUbyBkbzogYG1hcmtkb3duLXJzYCB1c2VzIGEgZGlmZmVyZW50IG5hbWU6XG4gICAgICAvLyBgQ2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyU2VtaWAuXG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNoYXJhY3RlclJlZmVyZW5jZU1hcmtlcilcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmNoYXJhY3RlclJlZmVyZW5jZU1hcmtlcilcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaGFyYWN0ZXJSZWZlcmVuY2UpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG5cbiAgICBpZiAodGVzdChjb2RlKSAmJiBzaXplKysgPCBtYXgpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG4iXSwibmFtZXMiOlsiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiLCJhc2NpaUFscGhhbnVtZXJpYyIsImFzY2lpRGlnaXQiLCJhc2NpaUhleERpZ2l0IiwiY29kZXMiLCJjb25zdGFudHMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiY2hhcmFjdGVyUmVmZXJlbmNlIiwibmFtZSIsInRva2VuaXplIiwidG9rZW5pemVDaGFyYWN0ZXJSZWZlcmVuY2UiLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsInNpemUiLCJtYXgiLCJ0ZXN0Iiwic3RhcnQiLCJjb2RlIiwiYW1wZXJzYW5kIiwiZW50ZXIiLCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiLCJjb25zdW1lIiwiZXhpdCIsIm9wZW4iLCJudW1iZXJTaWduIiwiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIsIm51bWVyaWMiLCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIsImNoYXJhY3RlclJlZmVyZW5jZU5hbWVkU2l6ZU1heCIsInZhbHVlIiwidXBwZXJjYXNlWCIsImxvd2VyY2FzZVgiLCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIsImNoYXJhY3RlclJlZmVyZW5jZUhleGFkZWNpbWFsU2l6ZU1heCIsImNoYXJhY3RlclJlZmVyZW5jZURlY2ltYWxTaXplTWF4Iiwic2VtaWNvbG9uIiwidG9rZW4iLCJzbGljZVNlcmlhbGl6ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/character-reference.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ codeFenced: () => (/* binding */ codeFenced)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n/** @type {Construct} */ const nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n};\n/** @type {Construct} */ const codeFenced = {\n name: \"codeFenced\",\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */ const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable<Code>} */ let marker;\n return start;\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */ function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */ function beforeSequenceOpen(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.tilde, \"expected `` ` `` or `~`\");\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence);\n return sequenceOpen(code);\n }\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */ function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.codeFencedSequenceSizeMin) {\n return nok(code);\n }\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence);\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, infoBefore, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code) : infoBefore(code);\n }\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */ function infoBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence);\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.contentTypeString\n });\n return info(code);\n }\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */ function info(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo);\n return infoBefore(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo);\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, metaBefore, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */ function metaBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n return infoBefore(code);\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.contentTypeString\n });\n return meta(code);\n }\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */ function meta(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta);\n return infoBefore(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */ function atNonLazyBreak(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), \"expected eol\");\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */ function contentBefore(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), \"expected eol\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n return contentStart;\n }\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */ function contentStart(code) {\n return initialPrefix > 0 && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, beforeContentChunk, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix, initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */ function beforeContentChunk(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue);\n return contentChunk(code);\n }\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */ function contentChunk(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue);\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced);\n return ok(code);\n }\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n /**\n *\n *\n * @type {State}\n */ function startBefore(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), \"expected eol\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n return start;\n }\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(self.parser.constructs.disable.null, \"expected `disable.null` to be populated\");\n // To do: `enter` here or in next state?\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence);\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, beforeSequenceClose, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix, self.parser.constructs.disable.null.includes(\"codeIndented\") ? undefined : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.tabSize)(code) : beforeSequenceClose(code);\n }\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */ function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence);\n return sequenceClose(code);\n }\n return nok(code);\n }\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */ function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence);\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, sequenceCloseAfter, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */ function sequenceCloseAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence);\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n /**\n *\n *\n * @type {State}\n */ function start(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n return nok(code);\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), \"expected eol\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n return lineStart;\n }\n /**\n *\n *\n * @type {State}\n */ function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9jb2RlLWZlbmNlZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7OztDQU1DLEdBRW1EO0FBQ3NCO0FBQ2I7QUFDMUI7QUFFbkMsc0JBQXNCLEdBQ3RCLE1BQU1RLHNCQUFzQjtJQUMxQkMsVUFBVUM7SUFDVkMsU0FBUztBQUNYO0FBRUEsc0JBQXNCLEdBQ2YsTUFBTUMsYUFBYTtJQUN4QkMsTUFBTTtJQUNOSixVQUFVSztJQUNWQyxVQUFVO0FBQ1osRUFBQztBQUVEOzs7Q0FHQyxHQUNELFNBQVNELG1CQUFtQkUsT0FBTyxFQUFFVixFQUFFLEVBQUVXLEdBQUc7SUFDMUMsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLHNCQUFzQixHQUN0QixNQUFNQyxhQUFhO1FBQUNWLFVBQVVXO1FBQW9CVCxTQUFTO0lBQUk7SUFDL0QsSUFBSVUsZ0JBQWdCO0lBQ3BCLElBQUlDLFdBQVc7SUFDZiw4QkFBOEIsR0FDOUIsSUFBSUM7SUFFSixPQUFPQztJQUVQOzs7Ozs7Ozs7OztHQVdDLEdBQ0QsU0FBU0EsTUFBTUMsSUFBSTtRQUNqQiw4Q0FBOEM7UUFDOUMsT0FBT0MsbUJBQW1CRDtJQUM1QjtJQUVBOzs7Ozs7Ozs7OztHQVdDLEdBQ0QsU0FBU0MsbUJBQW1CRCxJQUFJO1FBQzlCbEIsMENBQU1BLENBQ0prQixTQUFTdEIsd0RBQUtBLENBQUN3QixXQUFXLElBQUlGLFNBQVN0Qix3REFBS0EsQ0FBQ3lCLEtBQUssRUFDbEQ7UUFHRixNQUFNQyxPQUFPWCxLQUFLWSxNQUFNLENBQUNaLEtBQUtZLE1BQU0sQ0FBQ0MsTUFBTSxHQUFHLEVBQUU7UUFDaERWLGdCQUNFUSxRQUFRQSxJQUFJLENBQUMsRUFBRSxDQUFDRyxJQUFJLEtBQUszQix3REFBS0EsQ0FBQzRCLFVBQVUsR0FDckNKLElBQUksQ0FBQyxFQUFFLENBQUNLLGNBQWMsQ0FBQ0wsSUFBSSxDQUFDLEVB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Qix3REFBS0EsQ0FBQ3lDLEdBQUcsSUFBSTNDLDRFQUFrQkEsQ0FBQ3dCLE9BQU87Z0JBQ2xEVCxRQUFReUIsSUFBSSxDQUFDcEMsd0RBQUtBLENBQUMrQixlQUFlO2dCQUNsQyxPQUFPOUIsR0FBR21CO1lBQ1o7WUFFQSxPQUFPUixJQUFJUTtRQUNiO0lBQ0Y7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNmLDRCQUE0Qk0sT0FBTyxFQUFFVixFQUFFLEVBQUVXLEdBQUc7SUFDbkQsTUFBTUMsT0FBTyxJQUFJO0lBRWpCLE9BQU9NO0lBRVA7Ozs7R0FJQyxHQUNELFNBQVNBLE1BQU1DLElBQUk7UUFDakIsSUFBSUEsU0FBU3RCLHdEQUFLQSxDQUFDeUMsR0FBRyxFQUFFO1lBQ3RCLE9BQU8zQixJQUFJUTtRQUNiO1FBRUFsQiwwQ0FBTUEsQ0FBQ04sNEVBQWtCQSxDQUFDd0IsT0FBTztRQUNqQ1QsUUFBUW1CLEtBQUssQ0FBQzlCLHdEQUFLQSxDQUFDc0QsVUFBVTtRQUM5QjNDLFFBQVF1QixPQUFPLENBQUNkO1FBQ2hCVCxRQUFReUIsSUFBSSxDQUFDcEMsd0RBQUtBLENBQUNzRCxVQUFVO1FBQzdCLE9BQU9pQjtJQUNUO0lBRUE7Ozs7R0FJQyxHQUNELFNBQVNBLFVBQVVuRCxJQUFJO1FBQ3JCLE9BQU9QLEtBQUtnRCxNQUFNLENBQUNXLElBQUksQ0FBQzNELEtBQUs0RCxHQUFHLEdBQUdDLElBQUksQ0FBQyxHQUFHOUQsSUFBSVEsUUFBUW5CLEdBQUdtQjtJQUM1RDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL2NvZGUtZmVuY2VkLmpzP2JmYTMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuY29uc3Qgbm9uTGF6eUNvbnRpbnVhdGlvbiA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvbixcbiAgcGFydGlhbDogdHJ1ZVxufVxuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBjb2RlRmVuY2VkID0ge1xuICBuYW1lOiAnY29kZUZlbmNlZCcsXG4gIHRva2VuaXplOiB0b2tlbml6ZUNvZGVGZW5jZWQsXG4gIGNvbmNyZXRlOiB0cnVlXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ29kZUZlbmNlZChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIC8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuICBjb25zdCBjbG9zZVN0YXJ0ID0ge3Rva2VuaXplOiB0b2tlbml6ZUNsb3NlU3RhcnQsIHBhcnRpYWw6IHRydWV9XG4gIGxldCBpbml0aWFsUHJlZml4ID0gMFxuICBsZXQgc2l6ZU9wZW4gPSAwXG4gIC8qKiBAdHlwZSB7Tm9uTnVsbGFibGU8Q29kZT59ICovXG4gIGxldCBtYXJrZXJcblxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgY29kZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IH5+fmpzXG4gICAqICAgICBeXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgLy8gVG8gZG86IHBhcnNlIHdoaXRlc3BhY2UgbGlrZSBgbWFya2Rvd24tcnNgLlxuICAgIHJldHVybiBiZWZvcmVTZXF1ZW5jZU9wZW4oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIGZlbmNlLCBhZnRlciBwcmVmaXgsIGF0IHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZVNlcXVlbmNlT3Blbihjb2RlKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgY29kZSA9PT0gY29kZXMuZ3JhdmVBY2NlbnQgfHwgY29kZSA9PT0gY29kZXMudGlsZGUsXG4gICAgICAnZXhwZWN0ZWQgYGAgYCBgYCBvciBgfmAnXG4gICAgKVxuXG4gICAgY29uc3QgdGFpbCA9IHNlbGYuZXZlbnRzW3NlbGYuZXZlbnRzLmxlbmd0aCAtIDFdXG4gICAgaW5pdGlhbFByZWZpeCA9XG4gICAgICB0YWlsICYmIHRhaWxbMV0udHlwZSA9PT0gdHlwZXMubGluZVByZWZpeFxuICAgICAgICA/IHRhaWxbMl0uc2xpY2VTZXJpYWxpemUodGFpbFsxXSwgdHJ1ZSkubGVuZ3RoXG4gICAgICAgIDogMFxuXG4gICAgbWFya2VyID0gY29kZVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY29kZUZlbmNlZClcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNvZGVGZW5jZWRGZW5jZSlcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlKVxuICAgIHJldHVybiBzZXF1ZW5jZU9wZW4oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIGZlbmNlIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgICBeXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzZXF1ZW5jZU9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgIHNpemVPcGVuKytcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHNlcXVlbmNlT3BlblxuICAgIH1cblxuICAgIGlmIChzaXplT3BlbiA8IGNvbnN0YW50cy5jb2RlRmVuY2VkU2VxdWVuY2VTaXplTWluKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlKVxuICAgIHJldHVybiBtYXJrZG93blNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCBpbmZvQmVmb3JlLCB0eXBlcy53aGl0ZXNwYWNlKShjb2RlKVxuICAgICAgOiBpbmZvQmVmb3JlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyBmZW5jZSwgYWZ0ZXIgdGhlIHNlcXVlbmNlIChhbmQgb3B0aW9uYWwgd2hpdGVzcGFjZSksIGJlZm9yZSBpbmZvLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluZm9CZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY29kZUZlbmNlZEZlbmNlKVxuICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0XG4gICAgICAgID8gb2soY29kZSlcbiAgICAgICAgOiBlZmZlY3RzLmNoZWNrKG5vbkxhenlDb250aW51YXRpb24sIGF0Tm9uTGF6eUJyZWFrLCBhZnRlcikoY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNvZGVGZW5jZWRGZW5jZUluZm8pXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5jaHVua1N0cmluZywge2NvbnRlbnRUeXBlOiBjb25zdGFudHMuY29udGVudFR5cGVTdHJpbmd9KVxuICAgIHJldHVybiBpbmZvKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gaW5mby5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IH5+fmpzXG4gICAqICAgICAgICBeXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBpbmZvKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmNodW5rU3RyaW5nKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmNvZGVGZW5jZWRGZW5jZUluZm8pXG4gICAgICByZXR1cm4gaW5mb0JlZm9yZShjb2RlKVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY2h1bmtTdHJpbmcpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY29kZUZlbmNlZEZlbmNlSW5mbylcbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgbWV0YUJlZm9yZSwgdHlwZXMud2hpdGVzcGFjZSkoY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JhdmVBY2NlbnQgJiYgY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGluZm9cbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIGZlbmNlLCBhZnRlciBpbmZvIGFuZCB3aGl0ZXNwYWNlLCBiZWZvcmUgbWV0YS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IH5+fmpzIGV2YWxcbiAgICogICAgICAgICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG1ldGFCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gaW5mb0JlZm9yZShjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY29kZUZlbmNlZEZlbmNlTWV0YSlcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNodW5rU3RyaW5nLCB7Y29udGVudFR5cGU6IGNvbnN0YW50cy5jb250ZW50VHlwZVN0cmluZ30pXG4gICAgcmV0dXJuIG1ldGEoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBtZXRhLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anMgZXZhbFxuICAgKiAgICAgICAgICAgXlxuICAgKiAgIHwgYWxlcnQoMSlcbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbWV0YShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmVvZiB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaHVua1N0cmluZylcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jb2RlRmVuY2VkRmVuY2VNZXRhKVxuICAgICAgcmV0dXJuIGluZm9CZWZvcmUoY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JhdmVBY2NlbnQgJiYgY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIG1ldGFcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBlb2wvZW9mIGluIGNvZGUsIGJlZm9yZSBhIG5vbi1sYXp5IGNsb3NpbmcgZmVuY2Ugb3IgY29udGVudC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IH5+fmpzXG4gICAqICAgICAgICAgIF5cbiAgICogPiB8IGFsZXJ0KDEpXG4gICAqICAgICAgICAgICAgIF5cbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYXROb25MYXp5QnJlYWsoY29kZSkge1xuICAgIGFzc2VydChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSksICdleHBlY3RlZCBlb2wnKVxuICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoY2xvc2VTdGFydCwgYWZ0ZXIsIGNvbnRlbnRCZWZvcmUpKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQmVmb3JlIGNvZGUgY29udGVudCwgbm90IGEgY2xvc2luZyBmZW5jZSwgYXQgZW9sLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfn5+anNcbiAgICogPiB8IGFsZXJ0KDEpXG4gICAqICAgICAgICAgICAgIF5cbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGVudEJlZm9yZShjb2RlKSB7XG4gICAgYXNzZXJ0KG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSwgJ2V4cGVjdGVkIGVvbCcpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5saW5lRW5kaW5nKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5saW5lRW5kaW5nKVxuICAgIHJldHVybiBjb250ZW50U3RhcnRcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgY29kZSBjb250ZW50LCBub3QgYSBjbG9zaW5nIGZlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfn5+anNcbiAgICogPiB8IGFsZXJ0KDEpXG4gICAqICAgICBeXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRlbnRTdGFydChjb2RlKSB7XG4gICAgcmV0dXJuIGluaXRpYWxQcmVmaXggPiAwICYmIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgID8gZmFjdG9yeVNwYWNlKFxuICAgICAgICAgIGVmZmVjdHMsXG4gICAgICAgICAgYmVmb3JlQ29udGVudENodW5rLFxuICAgICAgICAgIHR5cGVzLmxpbmVQcmVmaXgsXG4gICAgICAgICAgaW5pdGlhbFByZWZpeCArIDFcbiAgICAgICAgKShjb2RlKVxuICAgICAgOiBiZWZvcmVDb250ZW50Q2h1bmsoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgY29kZSBjb250ZW50LCBhZnRlciBvcHRpb25hbCBwcmVmaXguXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB+fn5qc1xuICAgKiA+IHwgYWxlcnQoMSlcbiAgICogICAgIF5cbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmVmb3JlQ29udGVudENodW5rKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2sobm9uTGF6eUNvbnRpbnVhdGlvbiwgYXROb25MYXp5QnJlYWssIGFmdGVyKShjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY29kZUZsb3dWYWx1ZSlcbiAgICByZXR1cm4gY29udGVudENodW5rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY29kZSBjb250ZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfn5+anNcbiAgICogPiB8IGFsZXJ0KDEpXG4gICAqICAgICBeXl5eXl5eXlxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250ZW50Q2h1bmsoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY29kZUZsb3dWYWx1ZSlcbiAgICAgIHJldHVybiBiZWZvcmVDb250ZW50Q2h1bmsoY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gY29udGVudENodW5rXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgY29kZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IH5+fmpzXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiA+IHwgfn5+XG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmNvZGVGZW5jZWQpXG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAgICogQHR5cGUge1Rva2VuaXplcn1cbiAgICovXG4gIGZ1bmN0aW9uIHRva2VuaXplQ2xvc2VTdGFydChlZmZlY3RzLCBvaywgbm9rKSB7XG4gICAgbGV0IHNpemUgPSAwXG5cbiAgICByZXR1cm4gc3RhcnRCZWZvcmVcblxuICAgIC8qKlxuICAgICAqXG4gICAgICpcbiAgICAgKiBAdHlwZSB7U3RhdGV9XG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhcnRCZWZvcmUoY29kZSkge1xuICAgICAgYXNzZXJ0KG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSwgJ2V4cGVjdGVkIGVvbCcpXG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5saW5lRW5kaW5nKVxuICAgICAgcmV0dXJuIHN0YXJ0XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQmVmb3JlIGNsb3NpbmcgZmVuY2UsIGF0IG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCB+fn5qc1xuICAgICAqICAgfCBhbGVydCgxKVxuICAgICAqID4gfCB+fn5cbiAgICAgKiAgICAgXlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG4gICAgICBhc3NlcnQoXG4gICAgICAgIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLFxuICAgICAgICAnZXhwZWN0ZWQgYGRpc2FibGUubnVsbGAgdG8gYmUgcG9wdWxhdGVkJ1xuICAgICAgKVxuXG4gICAgICAvLyBUbyBkbzogYGVudGVyYCBoZXJlIG9yIGluIG5leHQgc3RhdGU/XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNvZGVGZW5jZWRGZW5jZSlcbiAgICAgIHJldHVybiBtYXJrZG93blNwYWNlKGNvZGUpXG4gICAgICAgID8gZmFjdG9yeVNwYWNlKFxuICAgICAgICAgICAgZWZmZWN0cyxcbiAgICAgICAgICAgIGJlZm9yZVNlcXVlbmNlQ2xvc2UsXG4gICAgICAgICAgICB0eXBlcy5saW5lUHJlZml4LFxuICAgICAgICAgICAgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpXG4gICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgIDogY29uc3RhbnRzLnRhYlNpemVcbiAgICAgICAgICApKGNvZGUpXG4gICAgICAgIDogYmVmb3JlU2VxdWVuY2VDbG9zZShjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluIGNsb3NpbmcgZmVuY2UsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UsIGF0IHNlcXVlbmNlLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiAgIHwgfn5+anNcbiAgICAgKiAgIHwgYWxlcnQoMSlcbiAgICAgKiA+IHwgfn5+XG4gICAgICogICAgIF5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiZWZvcmVTZXF1ZW5jZUNsb3NlKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgICAgZWZmZWN0cy5lbnRlcih0eXBlcy5jb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSlcbiAgICAgICAgcmV0dXJuIHNlcXVlbmNlQ2xvc2UoY29kZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluIGNsb3NpbmcgZmVuY2Ugc2VxdWVuY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCB+fn5qc1xuICAgICAqICAgfCBhbGVydCgxKVxuICAgICAqID4gfCB+fn5cbiAgICAgKiAgICAgXlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNlcXVlbmNlQ2xvc2UoY29kZSkge1xuICAgICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgICBzaXplKytcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgIHJldHVybiBzZXF1ZW5jZUNsb3NlXG4gICAgICB9XG5cbiAgICAgIGlmIChzaXplID49IHNpemVPcGVuKSB7XG4gICAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSlcbiAgICAgICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgICAgICA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCBzZXF1ZW5jZUNsb3NlQWZ0ZXIsIHR5cGVzLndoaXRlc3BhY2UpKGNvZGUpXG4gICAgICAgICAgOiBzZXF1ZW5jZUNsb3NlQWZ0ZXIoY29kZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFmdGVyIGNsb3NpbmcgZmVuY2Ugc2VxdWVuY2UsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCB+fn5qc1xuICAgICAqICAgfCBhbGVydCgxKVxuICAgICAqID4gfCB+fn5cbiAgICAgKiAgICAgICAgXlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNlcXVlbmNlQ2xvc2VBZnRlcihjb2RlKSB7XG4gICAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY29kZUZlbmNlZEZlbmNlKVxuICAgICAgICByZXR1cm4gb2soY29kZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmVvZikge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIGFzc2VydChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSksICdleHBlY3RlZCBlb2wnKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMubGluZUVuZGluZylcbiAgICByZXR1cm4gbGluZVN0YXJ0XG4gIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGluZVN0YXJ0KGNvZGUpIHtcbiAgICByZXR1cm4gc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdID8gbm9rKGNvZGUpIDogb2soY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZhY3RvcnlTcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsIm1hcmtkb3duU3BhY2UiLCJjb2RlcyIsImNvbnN0YW50cyIsInR5cGVzIiwib2siLCJhc3NlcnQiLCJub25MYXp5Q29udGludWF0aW9uIiwidG9rZW5pemUiLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb24iLCJwYXJ0aWFsIiwiY29kZUZlbmNlZCIsIm5hbWUiLCJ0b2tlbml6ZUNvZGVGZW5jZWQiLCJjb25jcmV0ZSIsImVmZmVjdHMiLCJub2siLCJzZWxmIiwiY2xvc2VTdGFydCIsInRva2VuaXplQ2xvc2VTdGFydCIsImluaXRpYWxQcmVmaXgiLCJzaXplT3BlbiIsIm1hcmtlciIsInN0YXJ0IiwiY29kZSIsImJlZm9yZVNlcXVlbmNlT3BlbiIsImdyYXZlQWNjZW50IiwidGlsZGUiLCJ0YWlsIiwiZXZlbnRzIiwibGVuZ3RoIiwidHlwZSIsImxpbmVQcmVmaXgiLCJzbGljZVNlcmlhbGl6ZSIsImVudGVyIiwiY29kZUZlbmNlZEZlbmNlIiwiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiLCJzZXF1ZW5jZU9wZW4iLCJjb25zdW1lIiwiY29kZUZlbmNlZFNlcXVlbmNlU2l6ZU1pbiIsImV4aXQiLCJpbmZvQmVmb3JlIiwid2hpdGVzcGFjZSIsImVvZiIsImludGVycnVwdCIsImNoZWNrIiwiYXROb25MYXp5QnJlYWsiLCJhZnRlciIsImNvZGVGZW5jZWRGZW5jZUluZm8iLCJjaHVua1N0cmluZyIsImNvbnRlbnRUeXBlIiwiY29udGVudFR5cGVTdHJpbmciLCJpbmZvIiwibWV0YUJlZm9yZSIsImNvZGVGZW5jZWRGZW5jZU1ldGEiLCJtZXRhIiwiYXR0ZW1wdCIsImNvbnRlbnRCZWZvcmUiLCJsaW5lRW5kaW5nIiwiY29udGVudFN0YXJ0IiwiYmVmb3JlQ29udGVudENodW5rIiwiY29kZUZsb3dWYWx1ZSIsImNvbnRlbnRDaHVuayIsInNpemUiLCJzdGFydEJlZm9yZSIsInBhcnNlciIsImNvbnN0cnVjdHMiLCJkaXNhYmxlIiwibnVsbCIsImJlZm9yZVNlcXVlbmNlQ2xvc2UiLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsInRhYlNpemUiLCJzZXF1ZW5jZUNsb3NlIiwic2VxdWVuY2VDbG9zZUFmdGVyIiwibGluZVN0YXJ0IiwibGF6eSIsIm5vdyIsImxpbmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-indented.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/code-indented.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ codeIndented: () => (/* binding */ codeIndented)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n/** @type {Construct} */ const codeIndented = {\n name: \"codeIndented\",\n tokenize: tokenizeCodeIndented\n};\n/** @type {Construct} */ const furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeCodeIndented(effects, ok, nok) {\n const self = this;\n return start;\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownSpace)(code));\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented);\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, afterPrefix, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1)(code);\n }\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */ function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix && tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize ? atBreak(code) : nok(code);\n }\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */ function atBreak(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {\n return after(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code);\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue);\n return inside(code);\n }\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */ function inside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue);\n return atBreak(code);\n }\n effects.consume(code);\n return inside;\n }\n /** @type {State} */ function after(code) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented);\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeFurtherStart(effects, ok, nok) {\n const self = this;\n return furtherStart;\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */ function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n return furtherStart;\n }\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, afterPrefix, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1)(code);\n }\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */ function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix && tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize ? ok(code) : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code) ? furtherStart(code) : nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9jb2RlLWluZGVudGVkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUVtRDtBQUNzQjtBQUNiO0FBQzFCO0FBRW5DLHNCQUFzQixHQUNmLE1BQU1RLGVBQWU7SUFDMUJDLE1BQU07SUFDTkMsVUFBVUM7QUFDWixFQUFDO0FBRUQsc0JBQXNCLEdBQ3RCLE1BQU1DLGVBQWU7SUFBQ0YsVUFBVUc7SUFBc0JDLFNBQVM7QUFBSTtBQUVuRTs7O0NBR0MsR0FDRCxTQUFTSCxxQkFBcUJJLE9BQU8sRUFBRVQsRUFBRSxFQUFFVSxHQUFHO0lBQzVDLE1BQU1DLE9BQU8sSUFBSTtJQUNqQixPQUFPQztJQUVQOzs7Ozs7Ozs7Ozs7O0dBYUMsR0FDRCxTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCLDREQUE0RDtRQUM1RFosMENBQU1BLENBQUNMLHVFQUFhQSxDQUFDaUI7UUFDckJKLFFBQVFLLEtBQUssQ0FBQ2Ysd0RBQUtBLENBQUNHLFlBQVk7UUFDaEMscUVBQXFFO1FBQ3JFLHNDQUFzQztRQUN0QyxPQUFPUixxRUFBWUEsQ0FDakJlLFNBQ0FNLGFBQ0FoQix3REFBS0EsQ0FBQ2lCLFVBQVUsRUFDaEJsQiw0REFBU0EsQ0FBQ21CLE9BQU8sR0FBRyxHQUNwQko7SUFDSjtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNFLFlBQVlGLElBQUk7UUFDdkIsTUFBTUssT0FBT1AsS0FBS1EsTUFBTSxDQUFDUixLQUFLUSxNQUFNLENBQUNDLE1BQU0sR0FBRyxFQUFFO1FBQ2hELE9BQU9GLFFBQ0xBLElBQUksQ0FBQyxFQUFFLENBQUNHLElBQUksS0FBS3RCLHdEQUFLQSxDQUFDaUIsVUFBVSxJQUNqQ0UsSUFBSSxDQUFDLEVBQUUsQ0FBQ0ksY0FBYyxDQUFDSixJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU1FLE1BQU0sSUFBSXRCLDREQUFTQSxDQUFDbUIsT0FBTyxHQUMvRE0sUUFBUVYsUUFDUkgsSUFBSUc7SUFDVjtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNVLFFBQVFWLElBQUk7UUFDbkIsSUFBSUEsU0FBU2hCLHdEQUFLQSxDQUFDMkIsR0FBRyxFQUFFO1lBQ3RCLE9BQU9DLE1BQU1aO1FBQ2Y7UUFFQSxJQUFJbEIsNEVBQWtCQSxDQUFDa0IsT0FBTztZQUM1QixPQUFPSixRQUFRaUIsT0FBTyxDQUFDcEIsY0FBY2lCLFNBQVNFLE9BQU9aO1FBQ3ZEO1FBRUFKLFFBQVFLLEtBQUssQ0FBQ2Ysd0RBQUtBLENBQUM0QixhQUFhO1FBQ2pDLE9BQU9DLE9BQU9mO0lBQ2hCO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU2UsT0FBT2YsSUFBSTtRQUNsQixJQUFJQSxTQUFTaEIsd0RBQUtBLENBQUMyQixHQUFHLElBQUk3Qiw0RUFBa0JBLENBQUNrQixPQUFPO1lBQ2xESixRQUFRb0IsSUFBSSxDQUFDOUIsd0RBQUtBLENBQUM0QixhQUFhO1lBQ2hDLE9BQU9KLFFBQVFWO1FBQ2pCO1FBRUFKLFFBQVFxQixPQUFPLENBQUNqQjtRQUNoQixPQUFPZTtJQUNUO0lBRUEsa0JBQWtCLEdBQ2xCLFNBQVNILE1BQU1aLElBQUk7UUFDakJKLFFBQVFvQixJQUFJLENBQUM5Qix3REFBS0EsQ0FBQ0csWUFBWTtRQUMvQixnREFBZ0Q7UUFDaEQsMEJBQTBCO1FBQzFCLDhCQUE4QjtRQUM5QixPQUFPRixHQUFHYTtJQUNaO0FBQ0Y7QUFFQTs7O0NBR0MsR0FDRCxTQUFTTixxQkFBcUJFLE9BQU8sRUFBRVQsRUFBRSxFQUFFVSxHQUFHO0lBQzVDLE1BQU1DLE9BQU8sSUFBSTtJQUVqQixPQUFPTDtJQUVQOzs7Ozs7Ozs7O0dBVUMsR0FDRCxTQUFTQSxhQUFhTyxJQUFJO1FBQ3hCLDZDQUE2QztRQUM3Qyw0Q0FBNEM7UUFDNUMsSUFBSUYsS0FBS29CLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDckIsS0FBS3NCLEdBQUcsR0FBR0MsSUFBSSxDQUFDLEVBQUU7WUFDckMsT0FBT3hCLElBQUlHO1FBQ2I7UUFFQSxJQUFJbEIsNEVBQWtCQSxDQUFDa0IsT0FBTztZQUM1QkosUUFBUUssS0FBSyxDQUFDZix3REFBS0EsQ0FBQ29DLFVBQVU7WUFDOUIxQixRQUFRcUIsT0FBTyxDQUFDakI7WUFDaEJKLFFBQVFvQixJQUFJLENBQUM5Qix3REFBS0EsQ0FBQ29DLFVBQVU7WUFDN0IsT0FBTzdCO1FBQ1Q7UUFFQSxpRUFBaUU7UUFDakUscURBQXFEO1FBQ3JELGdCQUFnQjtRQUNoQixFQUFFO1FBQ0YscUVBQXFFO1FBQ3JFLHNDQUFzQztRQUN0QyxPQUFPWixxRUFBWUEsQ0FDakJlLFNBQ0FNLGFBQ0FoQix3REFBS0EsQ0FBQ2lCLFVBQVUsRUFDaEJsQiw0REFBU0EsQ0FBQ21CLE9BQU8sR0FBRyxHQUNwQko7SUFDSjtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNFLFlBQVlGLElBQUk7UUFDdkIsTUFBTUssT0FBT1AsS0FBS1EsTUFBTSxDQUFDUixLQUFLUSxNQUFNLENBQUNDLE1BQU0sR0FBRyxFQUFFO1FBQ2hELE9BQU9GLFFBQ0xBLElBQUksQ0FBQyxFQUFFLENBQUNHLElBQUksS0FBS3RCLHdEQUFLQSxDQUFDaUIsVUFBVSxJQUNqQ0UsSUFBSSxDQUFDLEVBQUUsQ0FBQ0ksY0FBYyxDQUFDSixJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU1FLE1BQU0sSUFBSXRCLDREQUFTQSxDQUFDbUIsT0FBTyxHQUMvRGpCLEdBQUdhLFFBQ0hsQiw0RUFBa0JBLENBQUNrQixRQUNuQlAsYUFBYU8sUUFDYkgsSUFBSUc7SUFDVjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL2NvZGUtaW5kZW50ZWQuanM/ZjBkMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGNvZGVJbmRlbnRlZCA9IHtcbiAgbmFtZTogJ2NvZGVJbmRlbnRlZCcsXG4gIHRva2VuaXplOiB0b2tlbml6ZUNvZGVJbmRlbnRlZFxufVxuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IGZ1cnRoZXJTdGFydCA9IHt0b2tlbml6ZTogdG9rZW5pemVGdXJ0aGVyU3RhcnQsIHBhcnRpYWw6IHRydWV9XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ29kZUluZGVudGVkKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGNvZGUgKGluZGVudGVkKS5cbiAgICpcbiAgICogPiAqKlBhcnNpbmcgbm90ZSoqOiBpdCBpcyBub3QgbmVlZGVkIHRvIGNoZWNrIGlmIHRoaXMgZmlyc3QgbGluZSBpcyBhXG4gICAqID4gZmlsbGVkIGxpbmUgKHRoYXQgaXQgaGFzIGEgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyKSwgYmVjYXVzZSBibGFuayBsaW5lc1xuICAgKiA+IGFyZSBwYXJzZWQgYWxyZWFkeSwgc28gd2UgbmV2ZXIgcnVuIGludG8gdGhhdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICAgICBhYWFcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBUbyBkbzogbWFudWFsbHkgY2hlY2sgaWYgaW50ZXJydXB0aW5nIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICBhc3NlcnQobWFya2Rvd25TcGFjZShjb2RlKSlcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNvZGVJbmRlbnRlZClcbiAgICAvLyBUbyBkbzogdXNlIGFuIGltcHJvdmVkIGBzcGFjZV9vcl90YWJgIGZ1bmN0aW9uIGxpa2UgYG1hcmtkb3duLXJzYCxcbiAgICAvLyBzbyB0aGF0IHdlIGNhbiBkcm9wIHRoZSBuZXh0IHN0YXRlLlxuICAgIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgICBlZmZlY3RzLFxuICAgICAgYWZ0ZXJQcmVmaXgsXG4gICAgICB0eXBlcy5saW5lUHJlZml4LFxuICAgICAgY29uc3RhbnRzLnRhYlNpemUgKyAxXG4gICAgKShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IHN0YXJ0LCBhZnRlciAxIG9yIDQgc3BhY2VzLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyUHJlZml4KGNvZGUpIHtcbiAgICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV1cbiAgICByZXR1cm4gdGFpbCAmJlxuICAgICAgdGFpbFsxXS50eXBlID09PSB0eXBlcy5saW5lUHJlZml4ICYmXG4gICAgICB0YWlsWzJdLnNsaWNlU2VyaWFsaXplKHRhaWxbMV0sIHRydWUpLmxlbmd0aCA+PSBjb25zdGFudHMudGFiU2l6ZVxuICAgICAgPyBhdEJyZWFrKGNvZGUpXG4gICAgICA6IG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGEgYnJlYWsuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAgICAgYWFhXG4gICAqICAgICAgICAgXiAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYXRCcmVhayhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmVvZikge1xuICAgICAgcmV0dXJuIGFmdGVyKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuYXR0ZW1wdChmdXJ0aGVyU3RhcnQsIGF0QnJlYWssIGFmdGVyKShjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY29kZUZsb3dWYWx1ZSlcbiAgICByZXR1cm4gaW5zaWRlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY29kZSBjb250ZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgICAgIF5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmVvZiB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jb2RlRmxvd1ZhbHVlKVxuICAgICAgcmV0dXJuIGF0QnJlYWsoY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gaW5zaWRlXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmNvZGVJbmRlbnRlZClcbiAgICAvLyBUbyBkbzogYWxsb3cgaW50ZXJydXB0aW5nIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICAvLyBGZWVsIGZyZWUgdG8gaW50ZXJydXB0LlxuICAgIC8vIHRva2VuaXplci5pbnRlcnJ1cHQgPSBmYWxzZVxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplRnVydGhlclN0YXJ0KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcblxuICByZXR1cm4gZnVydGhlclN0YXJ0XG5cbiAgLyoqXG4gICAqIEF0IGVvbCwgdHJ5aW5nIHRvIHBhcnNlIGFub3RoZXIgaW5kZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgICAgICAgIF5cbiAgICogICB8ICAgICBiYmJcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGZ1cnRoZXJTdGFydChjb2RlKSB7XG4gICAgLy8gVG8gZG86IGltcHJvdmUgYGxhenlgIC8gYHBpZXJjZWAgaGFuZGxpbmcuXG4gICAgLy8gSWYgdGhpcyBpcyBhIGxhenkgbGluZSwgaXQgY2Fu4oCZdCBiZSBjb2RlLlxuICAgIGlmIChzZWxmLnBhcnNlci5sYXp5W3NlbGYubm93KCkubGluZV0pIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5saW5lRW5kaW5nKVxuICAgICAgcmV0dXJuIGZ1cnRoZXJTdGFydFxuICAgIH1cblxuICAgIC8vIFRvIGRvOiB0aGUgY29kZSBoZXJlIGluIGBtaWNyb21hcmstanNgIGlzIGEgYml0IGRpZmZlcmVudCBmcm9tXG4gICAgLy8gYG1hcmtkb3duLXJzYCBiZWNhdXNlIHRoZXJlIGl0IGNhbiBhdHRlbXB0IHNwYWNlcy5cbiAgICAvLyBXZSBjYW7igJl0IHlldC5cbiAgICAvL1xuICAgIC8vIFRvIGRvOiB1c2UgYW4gaW1wcm92ZWQgYHNwYWNlX29yX3RhYmAgZnVuY3Rpb24gbGlrZSBgbWFya2Rvd24tcnNgLFxuICAgIC8vIHNvIHRoYXQgd2UgY2FuIGRyb3AgdGhlIG5leHQgc3RhdGUuXG4gICAgcmV0dXJuIGZhY3RvcnlTcGFjZShcbiAgICAgIGVmZmVjdHMsXG4gICAgICBhZnRlclByZWZpeCxcbiAgICAgIHR5cGVzLmxpbmVQcmVmaXgsXG4gICAgICBjb25zdGFudHMudGFiU2l6ZSArIDFcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQXQgc3RhcnQsIGFmdGVyIDEgb3IgNCBzcGFjZXMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAgICAgYWFhXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXJQcmVmaXgoY29kZSkge1xuICAgIGNvbnN0IHRhaWwgPSBzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXVxuICAgIHJldHVybiB0YWlsICYmXG4gICAgICB0YWlsWzFdLnR5cGUgPT09IHR5cGVzLmxpbmVQcmVmaXggJiZcbiAgICAgIHRhaWxbMl0uc2xpY2VTZXJpYWxpemUodGFpbFsxXSwgdHJ1ZSkubGVuZ3RoID49IGNvbnN0YW50cy50YWJTaXplXG4gICAgICA/IG9rKGNvZGUpXG4gICAgICA6IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKVxuICAgICAgPyBmdXJ0aGVyU3RhcnQoY29kZSlcbiAgICAgIDogbm9rKGNvZGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmYWN0b3J5U3BhY2UiLCJtYXJrZG93bkxpbmVFbmRpbmciLCJtYXJrZG93blNwYWNlIiwiY29kZXMiLCJjb25zdGFudHMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiY29kZUluZGVudGVkIiwibmFtZSIsInRva2VuaXplIiwidG9rZW5pemVDb2RlSW5kZW50ZWQiLCJmdXJ0aGVyU3RhcnQiLCJ0b2tlbml6ZUZ1cnRoZXJTdGFydCIsInBhcnRpYWwiLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsInN0YXJ0IiwiY29kZSIsImVudGVyIiwiYWZ0ZXJQcmVmaXgiLCJsaW5lUHJlZml4IiwidGFiU2l6ZSIsInRhaWwiLCJldmVudHMiLCJsZW5ndGgiLCJ0eXBlIiwic2xpY2VTZXJpYWxpemUiLCJhdEJyZWFrIiwiZW9mIiwiYWZ0ZXIiLCJhdHRlbXB0IiwiY29kZUZsb3dWYWx1ZSIsImluc2lkZSIsImV4aXQiLCJjb25zdW1lIiwicGFyc2VyIiwibGF6eSIsIm5vdyIsImxpbmUiLCJsaW5lRW5kaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-indented.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-text.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/code-text.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ codeText: () => (/* binding */ codeText)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n/** @type {Construct} */ const codeText = {\n name: \"codeText\",\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n};\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */ function resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */ let index;\n /** @type {number | undefined} */ let enter;\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding || events[headEnterIndex][1].type === \"space\") && (events[tailExitIndex][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding || events[tailExitIndex][1].type === \"space\")) {\n index = headEnterIndex;\n // And we have data.\n while(++index < tailExitIndex){\n if (events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextData) {\n // Then we have padding.\n events[headEnterIndex][1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextPadding;\n events[tailExitIndex][1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextPadding;\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while(++index <= tailExitIndex){\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding) {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding) {\n events[enter][1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextData;\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */ function previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent || this.events[this.events.length - 1][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.characterEscape;\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */ let size;\n /** @type {Token} */ let token;\n return start;\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent, \"expected `` ` ``\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(previous.call(self, self.previous), \"expected correct previous\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeText);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextSequence);\n return sequenceOpen(code);\n }\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */ function sequenceOpen(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextSequence);\n return between(code);\n }\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */ function between(code) {\n // EOF.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n return nok(code);\n }\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.space) {\n effects.enter(\"space\");\n effects.consume(code);\n effects.exit(\"space\");\n return between;\n }\n // Closing fence? Could also be data.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent) {\n token = effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextSequence);\n size = 0;\n return sequenceClose(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n return between;\n }\n // Data.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextData);\n return data(code);\n }\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */ function data(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.space || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextData);\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */ function sequenceClose(code) {\n // More.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n // Done!\n if (size === sizeOpen) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextSequence);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeText);\n return ok(code);\n }\n // More or less accents: mark as data.\n token.type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.codeTextData;\n return data(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9jb2RlLXRleHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Q0FRQyxHQUUwRDtBQUNUO0FBQ2Y7QUFFbkMsc0JBQXNCLEdBQ2YsTUFBTUssV0FBVztJQUN0QkMsTUFBTTtJQUNOQyxVQUFVQztJQUNWQyxTQUFTQztJQUNUQztBQUNGLEVBQUM7QUFFRCx3REFBd0Q7QUFDeEQscUJBQXFCLEdBQ3JCLFNBQVNELGdCQUFnQkUsTUFBTTtJQUM3QixJQUFJQyxnQkFBZ0JELE9BQU9FLE1BQU0sR0FBRztJQUNwQyxJQUFJQyxpQkFBaUI7SUFDckIsbUJBQW1CLEdBQ25CLElBQUlDO0lBQ0osK0JBQStCLEdBQy9CLElBQUlDO0lBRUosOENBQThDO0lBQzlDLElBQ0UsQ0FBQ0wsTUFBTSxDQUFDRyxlQUFlLENBQUMsRUFBRSxDQUFDRyxJQUFJLEtBQUtoQix3REFBS0EsQ0FBQ2lCLFVBQVUsSUFDbERQLE1BQU0sQ0FBQ0csZUFBZSxDQUFDLEVBQUUsQ0FBQ0csSUFBSSxLQUFLLE9BQU0sS0FDMUNOLENBQUFBLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDLEVBQUUsQ0FBQ0ssSUFBSSxLQUFLaEIsd0RBQUtBLENBQUNpQixVQUFVLElBQ2pEUCxNQUFNLENBQUNDLGNBQWMsQ0FBQyxFQUFFLENBQUNLLElBQUksS0FBSyxPQUFNLEdBQzFDO1FBQ0FGLFFBQVFEO1FBRVIsb0JBQW9CO1FBQ3BCLE1BQU8sRUFBRUMsUUFBUUgsY0FBZTtZQUM5QixJQUFJRCxNQUFNLENBQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUNFLElBQUksS0FBS2hCLHdEQUFLQSxDQUFDa0IsWUFBWSxFQUFFO2dCQUNoRCx3QkFBd0I7Z0JBQ3hCUixNQUFNLENBQUNHLGVBQWUsQ0FBQyxFQUFFLENBQUNHLElBQUksR0FBR2hCLHdEQUFLQSxDQUFDbUIsZUFBZTtnQkFDdERULE1BQU0sQ0FBQ0Ms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Q0FBQ3JDLHdEQUFLQSxDQUFDa0MsZ0JBQWdCO1lBQ25DUixRQUFRVyxJQUFJLENBQUNyQyx3REFBS0EsQ0FBQ0csUUFBUTtZQUMzQixPQUFPRixHQUFHc0I7UUFDWjtRQUVBLHNDQUFzQztRQUN0Q1EsTUFBTWYsSUFBSSxHQUFHaEIsd0RBQUtBLENBQUNrQixZQUFZO1FBQy9CLE9BQU93QixLQUFLbkI7SUFDZDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL2NvZGUtdGV4dC5qcz9mMmI4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5QcmV2aW91c30gUHJldmlvdXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUmVzb2x2ZXJ9IFJlc29sdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbn0gVG9rZW5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZ30gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtjb2RlcywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGNvZGVUZXh0ID0ge1xuICBuYW1lOiAnY29kZVRleHQnLFxuICB0b2tlbml6ZTogdG9rZW5pemVDb2RlVGV4dCxcbiAgcmVzb2x2ZTogcmVzb2x2ZUNvZGVUZXh0LFxuICBwcmV2aW91c1xufVxuXG4vLyBUbyBkbzogbmV4dCBtYWpvcjogZG9u4oCZdCByZXNvbHZlLCBsaWtlIGBtYXJrZG93bi1yc2AuXG4vKiogQHR5cGUge1Jlc29sdmVyfSAqL1xuZnVuY3Rpb24gcmVzb2x2ZUNvZGVUZXh0KGV2ZW50cykge1xuICBsZXQgdGFpbEV4aXRJbmRleCA9IGV2ZW50cy5sZW5ndGggLSA0XG4gIGxldCBoZWFkRW50ZXJJbmRleCA9IDNcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBpbmRleFxuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGVudGVyXG5cbiAgLy8gSWYgd2Ugc3RhcnQgYW5kIGVuZCB3aXRoIGFuIEVPTCBvciBhIHNwYWNlLlxuICBpZiAoXG4gICAgKGV2ZW50c1toZWFkRW50ZXJJbmRleF1bMV0udHlwZSA9PT0gdHlwZXMubGluZUVuZGluZyB8fFxuICAgICAgZXZlbnRzW2hlYWRFbnRlckluZGV4XVsxXS50eXBlID09PSAnc3BhY2UnKSAmJlxuICAgIChldmVudHNbdGFpbEV4aXRJbmRleF1bMV0udHlwZSA9PT0gdHlwZXMubGluZUVuZGluZyB8fFxuICAgICAgZXZlbnRzW3RhaWxFeGl0SW5kZXhdWzFdLnR5cGUgPT09ICdzcGFjZScpXG4gICkge1xuICAgIGluZGV4ID0gaGVhZEVudGVySW5kZXhcblxuICAgIC8vIEFuZCB3ZSBoYXZlIGRhdGEuXG4gICAgd2hpbGUgKCsraW5kZXggPCB0YWlsRXhpdEluZGV4KSB7XG4gICAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSB0eXBlcy5jb2RlVGV4dERhdGEpIHtcbiAgICAgICAgLy8gVGhlbiB3ZSBoYXZlIHBhZGRpbmcuXG4gICAgICAgIGV2ZW50c1toZWFkRW50ZXJJbmRleF1bMV0udHlwZSA9IHR5cGVzLmNvZGVUZXh0UGFkZGluZ1xuICAgICAgICBldmVudHNbdGFpbEV4aXRJbmRleF1bMV0udHlwZSA9IHR5cGVzLmNvZGVUZXh0UGFkZGluZ1xuICAgICAgICBoZWFkRW50ZXJJbmRleCArPSAyXG4gICAgICAgIHRhaWxFeGl0SW5kZXggLT0gMlxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1lcmdlIGFkamFjZW50IHNwYWNlcyBhbmQgZGF0YS5cbiAgaW5kZXggPSBoZWFkRW50ZXJJbmRleCAtIDFcbiAgdGFpbEV4aXRJbmRleCsrXG5cbiAgd2hpbGUgKCsraW5kZXggPD0gdGFpbEV4aXRJbmRleCkge1xuICAgIGlmIChlbnRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGluZGV4ICE9PSB0YWlsRXhpdEluZGV4ICYmXG4gICAgICAgIGV2ZW50c1tpbmRleF1bMV0udHlwZSAhPT0gdHlwZXMubGluZUVuZGluZ1xuICAgICAgKSB7XG4gICAgICAgIGVudGVyID0gaW5kZXhcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgaW5kZXggPT09IHRhaWxFeGl0SW5kZXggfHxcbiAgICAgIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gdHlwZXMubGluZUVuZGluZ1xuICAgICkge1xuICAgICAgZXZlbnRzW2VudGVyXVsxXS50eXBlID0gdHlwZXMuY29kZVRleHREYXRhXG5cbiAgICAgIGlmIChpbmRleCAhPT0gZW50ZXIgKyAyKSB7XG4gICAgICAgIGV2ZW50c1tlbnRlcl1bMV0uZW5kID0gZXZlbnRzW2luZGV4IC0gMV1bMV0uZW5kXG4gICAgICAgIGV2ZW50cy5zcGxpY2UoZW50ZXIgKyAyLCBpbmRleCAtIGVudGVyIC0gMilcbiAgICAgICAgdGFpbEV4aXRJbmRleCAtPSBpbmRleCAtIGVudGVyIC0gMlxuICAgICAgICBpbmRleCA9IGVudGVyICsgMlxuICAgICAgfVxuXG4gICAgICBlbnRlciA9IHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBldmVudHNcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1ByZXZpb3VzfVxuICovXG5mdW5jdGlvbiBwcmV2aW91cyhjb2RlKSB7XG4gIC8vIElmIHRoZXJlIGlzIGEgcHJldmlvdXMgY29kZSwgdGhlcmUgd2lsbCBhbHdheXMgYmUgYSB0YWlsLlxuICByZXR1cm4gKFxuICAgIGNvZGUgIT09IGNvZGVzLmdyYXZlQWNjZW50IHx8XG4gICAgdGhpcy5ldmVudHNbdGhpcy5ldmVudHMubGVuZ3RoIC0gMV1bMV0udHlwZSA9PT0gdHlwZXMuY2hhcmFjdGVyRXNjYXBlXG4gIClcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDb2RlVGV4dChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIGxldCBzaXplT3BlbiA9IDBcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBzaXplXG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCB0b2tlblxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBjb2RlICh0ZXh0KS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGBhYFxuICAgKiAgICAgXlxuICAgKiA+IHwgXFxgYWBcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLmdyYXZlQWNjZW50LCAnZXhwZWN0ZWQgYGAgYCBgYCcpXG4gICAgYXNzZXJ0KHByZXZpb3VzLmNhbGwoc2VsZiwgc2VsZi5wcmV2aW91cyksICdleHBlY3RlZCBjb3JyZWN0IHByZXZpb3VzJylcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNvZGVUZXh0KVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY29kZVRleHRTZXF1ZW5jZSlcbiAgICByZXR1cm4gc2VxdWVuY2VPcGVuKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyBzZXF1ZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGBhYFxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc2VxdWVuY2VPcGVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JhdmVBY2NlbnQpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgc2l6ZU9wZW4rK1xuICAgICAgcmV0dXJuIHNlcXVlbmNlT3BlblxuICAgIH1cblxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jb2RlVGV4dFNlcXVlbmNlKVxuICAgIHJldHVybiBiZXR3ZWVuKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQmV0d2VlbiBzb21ldGhpbmcgYW5kIHNvbWV0aGluZyBlbHNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYGFgXG4gICAqICAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJldHdlZW4oY29kZSkge1xuICAgIC8vIEVPRi5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gVG8gZG86IG5leHQgbWFqb3I6IGRvbuKAmXQgZG8gc3BhY2VzIGluIHJlc29sdmUsIGJ1dCB3aGVuIGNvbXBpbGluZyxcbiAgICAvLyBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgLy8gVGFicyBkb27igJl0IHdvcmssIGFuZCB2aXJ0dWFsIHNwYWNlcyBkb27igJl0IG1ha2Ugc2Vuc2UuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnNwYWNlKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdzcGFjZScpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnc3BhY2UnKVxuICAgICAgcmV0dXJuIGJldHdlZW5cbiAgICB9XG5cbiAgICAvLyBDbG9zaW5nIGZlbmNlPyBDb3VsZCBhbHNvIGJlIGRhdGEuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmdyYXZlQWNjZW50KSB7XG4gICAgICB0b2tlbiA9IGVmZmVjdHMuZW50ZXIodHlwZXMuY29kZVRleHRTZXF1ZW5jZSlcbiAgICAgIHNpemUgPSAwXG4gICAgICByZXR1cm4gc2VxdWVuY2VDbG9zZShjb2RlKVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgICByZXR1cm4gYmV0d2VlblxuICAgIH1cblxuICAgIC8vIERhdGEuXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5jb2RlVGV4dERhdGEpXG4gICAgcmV0dXJuIGRhdGEoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBkYXRhLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYGFgXG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZGF0YShjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMuZW9mIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5zcGFjZSB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZ3JhdmVBY2NlbnQgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZyhjb2RlKVxuICAgICkge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmNvZGVUZXh0RGF0YSlcbiAgICAgIHJldHVybiBiZXR3ZWVuKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjbG9zaW5nIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYGFgXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcXVlbmNlQ2xvc2UoY29kZSkge1xuICAgIC8vIE1vcmUuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmdyYXZlQWNjZW50KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHNpemUrK1xuICAgICAgcmV0dXJuIHNlcXVlbmNlQ2xvc2VcbiAgICB9XG5cbiAgICAvLyBEb25lIVxuICAgIGlmIChzaXplID09PSBzaXplT3Blbikge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmNvZGVUZXh0U2VxdWVuY2UpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY29kZVRleHQpXG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG5cbiAgICAvLyBNb3JlIG9yIGxlc3MgYWNjZW50czogbWFyayBhcyBkYXRhLlxuICAgIHRva2VuLnR5cGUgPSB0eXBlcy5jb2RlVGV4dERhdGFcbiAgICByZXR1cm4gZGF0YShjb2RlKVxuICB9XG59XG4iXSwibmFtZXMiOlsibWFya2Rvd25MaW5lRW5kaW5nIiwiY29kZXMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiY29kZVRleHQiLCJuYW1lIiwidG9rZW5pemUiLCJ0b2tlbml6ZUNvZGVUZXh0IiwicmVzb2x2ZSIsInJlc29sdmVDb2RlVGV4dCIsInByZXZpb3VzIiwiZXZlbnRzIiwidGFpbEV4aXRJbmRleCIsImxlbmd0aCIsImhlYWRFbnRlckluZGV4IiwiaW5kZXgiLCJlbnRlciIsInR5cGUiLCJsaW5lRW5kaW5nIiwiY29kZVRleHREYXRhIiwiY29kZVRleHRQYWRkaW5nIiwidW5kZWZpbmVkIiwiZW5kIiwic3BsaWNlIiwiY29kZSIsImdyYXZlQWNjZW50IiwiY2hhcmFjdGVyRXNjYXBlIiwiZWZmZWN0cyIsIm5vayIsInNlbGYiLCJzaXplT3BlbiIsInNpemUiLCJ0b2tlbiIsInN0YXJ0IiwiY2FsbCIsImNvZGVUZXh0U2VxdWVuY2UiLCJzZXF1ZW5jZU9wZW4iLCJjb25zdW1lIiwiZXhpdCIsImJldHdlZW4iLCJlb2YiLCJzcGFjZSIsInNlcXVlbmNlQ2xvc2UiLCJkYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-text.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/content.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/content.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ content: () => (/* binding */ content)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-subtokenize */ \"(ssr)/../../node_modules/micromark-util-subtokenize/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */ const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n};\n/** @type {Construct} */ const continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n};\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */ function resolveContent(events) {\n (0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__.subtokenize)(events);\n return events;\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */ let previous;\n return chunkStart;\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */ function chunkStart(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), \"expected no eof or eol\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.content);\n previous = effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent\n });\n return chunkInside(code);\n }\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */ function chunkInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {\n return contentEnd(code);\n }\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n }\n // Data.\n effects.consume(code);\n return chunkInside;\n }\n /**\n *\n *\n * @type {State}\n */ function contentEnd(code) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.content);\n return ok(code);\n }\n /**\n *\n *\n * @type {State}\n */ function contentContinue(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), \"expected eol\");\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent);\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(previous, \"expected previous token\");\n previous.next = effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent,\n previous\n });\n previous = previous.next;\n return chunkInside;\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeContinuation(effects, ok, nok) {\n const self = this;\n return startLookahead;\n /**\n *\n *\n * @type {State}\n */ function startLookahead(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), \"expected a line ending\");\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding);\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, prefixed, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix);\n }\n /**\n *\n *\n * @type {State}\n */ function prefixed(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n return nok(code);\n }\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.parser.constructs.disable.null, \"expected `disable.null` to be populated\");\n const tail = self.events[self.events.length - 1];\n if (!self.parser.constructs.disable.null.includes(\"codeIndented\") && tail && tail[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix && tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize) {\n return ok(code);\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9jb250ZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Q0FPQyxHQUVtRDtBQUNPO0FBQ0w7QUFDTztBQUMxQjtBQUVuQzs7O0NBR0MsR0FDTSxNQUFNUSxVQUFVO0lBQUNDLFVBQVVDO0lBQWlCQyxTQUFTQztBQUFjLEVBQUM7QUFFM0Usc0JBQXNCLEdBQ3RCLE1BQU1DLHdCQUF3QjtJQUFDSixVQUFVSztJQUFzQkMsU0FBUztBQUFJO0FBRTVFOzs7OztDQUtDLEdBQ0QsU0FBU0gsZUFBZUksTUFBTTtJQUM1QmQsdUVBQVdBLENBQUNjO0lBQ1osT0FBT0E7QUFDVDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNOLGdCQUFnQk8sT0FBTyxFQUFFWCxFQUFFO0lBQ2xDLDhCQUE4QixHQUM5QixJQUFJWTtJQUVKLE9BQU9DO0lBRVA7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsV0FBV0MsSUFBSTtRQUN0QmIsMENBQU1BLENBQ0phLFNBQVNqQix3REFBS0EsQ0FBQ2tCLEdBQUcsSUFBSSxDQUFDcEIsNEVBQWtCQSxDQUFDbUIsT0FDMUM7UUFHRkgsUUFBUUssS0FBSyxDQUFDakIsd0RBQUtBLENBQUNHLE9BQU87UUFDM0JVLFdBQVdELFFBQVFLLEtBQUssQ0FBQ2pCLHdEQUFLQSxDQUFDa0IsWUFBWSxFQUFFO1lBQzNDQyxhQUFhcEIsNERBQVNBLENBQUNxQixrQkFBa0I7UUFDM0M7UUFDQSxPQUFPQyxZQUFZTjtJQUNyQjtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNNLFlBQVlOLElBQUk7UUFDdkIsSUFBSUEsU0FBU2pCLHdEQUFLQSxDQUFDa0IsR0FBRyxFQUFFO1lBQ3RCLE9BQU9NLFdBQVdQO1FBQ3BCO1FBRUEsMEVBQTBFO1FBQzFFLGtDQUFrQztRQUNsQyxJQUFJbkIsNEVBQWtCQSxDQUFDbUIsT0FBTztZQUM1QixPQUFPSCxRQUFRVyxLQUFLLENBQ2xCZix1QkFDQWdCLGlCQUNBRixZQUNBUDtRQUNKO1FBRUEsUUFBUTtRQUNSSCxRQUFRYSxPQUFPLENBQUNWO1FBQ2hCLE9BQU9NO0lBQ1Q7SUFFQTs7OztHQUlDLEdBQ0QsU0FBU0MsV0FBV1AsSUFBSTtRQUN0QkgsUUFBUWMsSUFBSSxDQUFDMUIsd0RBQUtBLENBQUNrQixZQUFZO1FBQy9CTixRQUFRYyxJQUFJLENBQUMxQix3REFBS0EsQ0FBQ0csT0FBTztRQUMxQixPQUFPRixHQUFHYztJQUNaO0lBRUE7Ozs7R0FJQyxHQUNELFNBQVNTLGdCQUFnQlQsSUFBSTtRQUMzQmIsMENBQU1BLENBQUNOLDRFQUFrQkEsQ0FBQ21CLE9BQU87UUFDakNILFFBQVFhLE9BQU8sQ0FBQ1Y7UUFDaEJILFFBQVFjLElBQUksQ0FBQzFCLHdEQUFLQSxDQUFDa0IsWUFBWTtRQUMvQmhCLDBDQUFNQSxDQUFDVyxVQUFVO1FBQ2pCQSxTQUFTYyxJQUFJLEdBQUdmLFFBQVFLLEtBQUssQ0FBQ2pCLHdEQUFLQSxDQUFDa0IsWUFBWSxFQUFFO1lBQ2hEQyxhQUFhcEIsNERBQVNBLENBQUNxQixrQkFBa0I7WUFDekNQO1FBQ0Y7UUFDQUEsV0FBV0EsU0FBU2MsSUFBSTtRQUN4QixPQUFPTjtJQUNUO0FBQ0Y7QUFFQTs7O0NBR0MsR0FDRCxTQUFTWixxQkFBcUJHLE9BQU8sRUFBRVgsRUFBRSxFQUFFMkIsR0FBRztJQUM1QyxNQUFNQyxPQUFPLElBQUk7SUFFakIsT0FBT0M7SUFFUDs7OztHQUlDLEdBQ0QsU0FBU0EsZUFBZWYsSUFBSTtRQUMxQmIsMENBQU1BLENBQUNOLDRFQUFrQkEsQ0FBQ21CLE9BQU87UUFDakNILFFBQVFjLElBQUksQ0FBQzFCLHdEQUFLQSxDQUFDa0IsWUFBWTtRQUMvQk4sUUFBUUssS0FBSyxDQUFDakIsd0RBQUtBLENBQUMrQixVQUFVO1FBQzlCbkIsUUFBUWEsT0FBTyxDQUFDVjtRQUNoQkgsUUFBUWMsSUFBSSxDQUFDMUIsd0RBQUtBLENBQUMrQixVQUFVO1FBQzdCLE9BQU9wQyxxRUFBWUEsQ0FBQ2lCLFNBQVNvQixVQUFVaEMsd0RBQUtBLENBQUNpQyxVQUFVO0lBQ3pEO0lBRUE7Ozs7R0FJQyxHQUNELFNBQVNELFNBQVNqQixJQUFJO1FBQ3BCLElBQUlBLFNBQVNqQix3REFBS0EsQ0FBQ2tCLEdBQUcsSUFBSXBCLDRFQUFrQkEsQ0FBQ21CLE9BQU87WUFDbEQsT0FBT2EsSUFBSWI7UUFDYjtRQUVBLGdDQUFnQztRQUNoQ2IsMENBQU1BLENBQ0oyQixLQUFLSyxNQUFNLENBQUNDLFVBQVUsQ0FBQ0MsT0FBTyxDQUFDQyxJQUFJLEVBQ25DO1FBR0YsTUFBTUMsT0FBT1QsS0FBS2xCLE1BQU0sQ0FBQ2tCLEtBQUtsQixNQUFNLENBQUM0QixNQUFNLEdBQUcsRUFBRTtRQUVoRCxJQUNFLENBQUNWLEtBQUtLLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDQyxPQUFPLENBQUNDLElBQUksQ0FBQ0csUUFBUSxDQUFDLG1CQUM5Q0YsUUFDQUEsSUFBSSxDQUFDLEVBQUUsQ0FBQ0csSUFBSSxLQUFLekMsd0RBQUtBLENBQUNpQyxVQUFVLElBQ2pDSyxJQUFJLENBQUMsRUFBRSxDQUFDSSxjQUFjLENBQUNKLElBQUksQ0FBQyxFQUFFLEVBQUUsTUFBTUMsTUFBTSxJQUFJeEMsNERBQVNBLENBQUM0QyxPQUFPLEVBQ2pFO1lBQ0EsT0FBTzFDLEdBQUdjO1FBQ1o7UUFFQSxPQUFPSCxRQUFRZ0MsU0FBUyxDQUFDZixLQUFLSyxNQUFNLENBQUNDLFVBQVUsQ0FBQ1UsSUFBSSxFQUFFakIsS0FBSzNCLElBQUljO0lBQ2pFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2Rldi9saWIvY29udGVudC5qcz8yMzEyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge3N1YnRva2VuaXplfSBmcm9tICdtaWNyb21hcmstdXRpbC1zdWJ0b2tlbml6ZSdcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKlxuICogTm8gbmFtZSBiZWNhdXNlIGl0IG11c3Qgbm90IGJlIHR1cm5lZCBvZmYuXG4gKiBAdHlwZSB7Q29uc3RydWN0fVxuICovXG5leHBvcnQgY29uc3QgY29udGVudCA9IHt0b2tlbml6ZTogdG9rZW5pemVDb250ZW50LCByZXNvbHZlOiByZXNvbHZlQ29udGVudH1cblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCBjb250aW51YXRpb25Db25zdHJ1Y3QgPSB7dG9rZW5pemU6IHRva2VuaXplQ29udGludWF0aW9uLCBwYXJ0aWFsOiB0cnVlfVxuXG4vKipcbiAqIENvbnRlbnQgaXMgdHJhbnNwYXJlbnQ6IGl04oCZcyBwYXJzZWQgcmlnaHQgbm93LiBUaGF0IHdheSwgZGVmaW5pdGlvbnMgYXJlIGFsc29cbiAqIHBhcnNlZCByaWdodCBub3c6IGJlZm9yZSB0ZXh0IGluIHBhcmFncmFwaHMgKHNwZWNpZmljYWxseSwgbWVkaWEpIGFyZSBwYXJzZWQuXG4gKlxuICogQHR5cGUge1Jlc29sdmVyfVxuICovXG5mdW5jdGlvbiByZXNvbHZlQ29udGVudChldmVudHMpIHtcbiAgc3VidG9rZW5pemUoZXZlbnRzKVxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ29udGVudChlZmZlY3RzLCBvaykge1xuICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcHJldmlvdXNcblxuICByZXR1cm4gY2h1bmtTdGFydFxuXG4gIC8qKlxuICAgKiBCZWZvcmUgYSBjb250ZW50IGNodW5rLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYWJjXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjaHVua1N0YXJ0KGNvZGUpIHtcbiAgICBhc3NlcnQoXG4gICAgICBjb2RlICE9PSBjb2Rlcy5lb2YgJiYgIW1hcmtkb3duTGluZUVuZGluZyhjb2RlKSxcbiAgICAgICdleHBlY3RlZCBubyBlb2Ygb3IgZW9sJ1xuICAgIClcblxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY29udGVudClcbiAgICBwcmV2aW91cyA9IGVmZmVjdHMuZW50ZXIodHlwZXMuY2h1bmtDb250ZW50LCB7XG4gICAgICBjb250ZW50VHlwZTogY29uc3RhbnRzLmNvbnRlbnRUeXBlQ29udGVudFxuICAgIH0pXG4gICAgcmV0dXJuIGNodW5rSW5zaWRlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gYSBjb250ZW50IGNodW5rLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYWJjXG4gICAqICAgICBeXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNodW5rSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICByZXR1cm4gY29udGVudEVuZChjb2RlKVxuICAgIH1cblxuICAgIC8vIFRvIGRvOiBpbiBgbWFya2Rvd24tcnNgLCBlYWNoIGxpbmUgaXMgcGFyc2VkIG9uIGl0cyBvd24sIGFuZCBldmVyeXRoaW5nXG4gICAgLy8gaXMgc3RpdGNoZWQgdG9nZXRoZXIgcmVzb2x2aW5nLlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKFxuICAgICAgICBjb250aW51YXRpb25Db25zdHJ1Y3QsXG4gICAgICAgIGNvbnRlbnRDb250aW51ZSxcbiAgICAgICAgY29udGVudEVuZFxuICAgICAgKShjb2RlKVxuICAgIH1cblxuICAgIC8vIERhdGEuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGNodW5rSW5zaWRlXG4gIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGVudEVuZChjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmNodW5rQ29udGVudClcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMuY29udGVudClcbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250ZW50Q29udGludWUoY29kZSkge1xuICAgIGFzc2VydChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSksICdleHBlY3RlZCBlb2wnKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaHVua0NvbnRlbnQpXG4gICAgYXNzZXJ0KHByZXZpb3VzLCAnZXhwZWN0ZWQgcHJldmlvdXMgdG9rZW4nKVxuICAgIHByZXZpb3VzLm5leHQgPSBlZmZlY3RzLmVudGVyKHR5cGVzLmNodW5rQ29udGVudCwge1xuICAgICAgY29udGVudFR5cGU6IGNvbnN0YW50cy5jb250ZW50VHlwZUNvbnRlbnQsXG4gICAgICBwcmV2aW91c1xuICAgIH0pXG4gICAgcHJldmlvdXMgPSBwcmV2aW91cy5uZXh0XG4gICAgcmV0dXJuIGNodW5rSW5zaWRlXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDb250aW51YXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuXG4gIHJldHVybiBzdGFydExvb2thaGVhZFxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydExvb2thaGVhZChjb2RlKSB7XG4gICAgYXNzZXJ0KG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSwgJ2V4cGVjdGVkIGEgbGluZSBlbmRpbmcnKVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaHVua0NvbnRlbnQpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5saW5lRW5kaW5nKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5saW5lRW5kaW5nKVxuICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgcHJlZml4ZWQsIHR5cGVzLmxpbmVQcmVmaXgpXG4gIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcHJlZml4ZWQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cbiAgICBhc3NlcnQoXG4gICAgICBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbCxcbiAgICAgICdleHBlY3RlZCBgZGlzYWJsZS5udWxsYCB0byBiZSBwb3B1bGF0ZWQnXG4gICAgKVxuXG4gICAgY29uc3QgdGFpbCA9IHNlbGYuZXZlbnRzW3NlbGYuZXZlbnRzLmxlbmd0aCAtIDFdXG5cbiAgICBpZiAoXG4gICAgICAhc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpICYmXG4gICAgICB0YWlsICYmXG4gICAgICB0YWlsWzFdLnR5cGUgPT09IHR5cGVzLmxpbmVQcmVmaXggJiZcbiAgICAgIHRhaWxbMl0uc2xpY2VTZXJpYWxpemUodGFpbFsxXSwgdHJ1ZSkubGVuZ3RoID49IGNvbnN0YW50cy50YWJTaXplXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gZWZmZWN0cy5pbnRlcnJ1cHQoc2VsZi5wYXJzZXIuY29uc3RydWN0cy5mbG93LCBub2ssIG9rKShjb2RlKVxuICB9XG59XG4iXSwibmFtZXMiOlsiZmFjdG9yeVNwYWNlIiwibWFya2Rvd25MaW5lRW5kaW5nIiwic3VidG9rZW5pemUiLCJjb2RlcyIsImNvbnN0YW50cyIsInR5cGVzIiwib2siLCJhc3NlcnQiLCJjb250ZW50IiwidG9rZW5pemUiLCJ0b2tlbml6ZUNvbnRlbnQiLCJyZXNvbHZlIiwicmVzb2x2ZUNvbnRlbnQiLCJjb250aW51YXRpb25Db25zdHJ1Y3QiLCJ0b2tlbml6ZUNvbnRpbnVhdGlvbiIsInBhcnRpYWwiLCJldmVudHMiLCJlZmZlY3RzIiwicHJldmlvdXMiLCJjaHVua1N0YXJ0IiwiY29kZSIsImVvZiIsImVudGVyIiwiY2h1bmtDb250ZW50IiwiY29udGVudFR5cGUiLCJjb250ZW50VHlwZUNvbnRlbnQiLCJjaHVua0luc2lkZSIsImNvbnRlbnRFbmQiLCJjaGVjayIsImNvbnRlbnRDb250aW51ZSIsImNvbnN1bWUiLCJleGl0IiwibmV4dCIsIm5vayIsInNlbGYiLCJzdGFydExvb2thaGVhZCIsImxpbmVFbmRpbmciLCJwcmVmaXhlZCIsImxpbmVQcmVmaXgiLCJwYXJzZXIiLCJjb25zdHJ1Y3RzIiwiZGlzYWJsZSIsIm51bGwiLCJ0YWlsIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJ0eXBlIiwic2xpY2VTZXJpYWxpemUiLCJ0YWJTaXplIiwiaW50ZXJydXB0IiwiZmxvdyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/content.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/definition.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/definition.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ definition: () => (/* binding */ definition)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-destination */ \"(ssr)/../../node_modules/micromark-factory-destination/dev/index.js\");\n/* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-label */ \"(ssr)/../../node_modules/micromark-factory-label/dev/index.js\");\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-factory-title */ \"(ssr)/../../node_modules/micromark-factory-title/dev/index.js\");\n/* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-whitespace */ \"(ssr)/../../node_modules/micromark-factory-whitespace/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"(ssr)/../../node_modules/micromark-util-normalize-identifier/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n\n\n\n\n\n/** @type {Construct} */ const definition = {\n name: \"definition\",\n tokenize: tokenizeDefinition\n};\n/** @type {Construct} */ const titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeDefinition(effects, ok, nok) {\n const self = this;\n /** @type {string} */ let identifier;\n return start;\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definition);\n return before(code);\n }\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, \"expected `[`\");\n return micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__.factoryLabel.call(self, effects, labelAfter, // Note: we don’t need to reset the way `markdown-rs` does.\n nok, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionLabel, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionLabelMarker, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionLabelString)(code);\n }\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function labelAfter(code) {\n identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_4__.normalizeIdentifier)(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.colon) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionMarker);\n return markerAfter;\n }\n return nok(code);\n }\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function markerAfter(code) {\n // Note: whitespace is optional.\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code) ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, destinationBefore)(code) : destinationBefore(code);\n }\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function destinationBefore(code) {\n return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__.factoryDestination)(effects, destinationAfter, // Note: we don’t need to reset the way `markdown-rs` does.\n nok, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionDestination, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionDestinationLiteral, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionDestinationLiteralMarker, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionDestinationRaw, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionDestinationString)(code);\n }\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code);\n }\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(effects, afterWhitespace, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code) : afterWhitespace(code);\n }\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function afterWhitespace(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definition);\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier);\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code);\n }\n return nok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore;\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function titleBefore(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code) ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, beforeMarker)(code) : nok(code);\n }\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function beforeMarker(code) {\n return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__.factoryTitle)(effects, titleAfter, nok, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionTitle, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionTitleMarker, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definitionTitleString)(code);\n }\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function titleAfter(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(effects, titleAfterOptionalWhitespace, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code) : titleAfterOptionalWhitespace(code);\n }\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */ function titleAfterOptionalWhitespace(code) {\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code) ? ok(code) : nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9kZWZpbml0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFK0Q7QUFDWjtBQUNBO0FBQ0E7QUFDVTtBQUs3QjtBQUNzQztBQUNyQjtBQUNmO0FBRW5DLHNCQUFzQixHQUNmLE1BQU1hLGFBQWE7SUFBQ0MsTUFBTTtJQUFjQyxVQUFVQztBQUFrQixFQUFDO0FBRTVFLHNCQUFzQixHQUN0QixNQUFNQyxjQUFjO0lBQUNGLFVBQVVHO0lBQXFCQyxTQUFTO0FBQUk7QUFFakU7OztDQUdDLEdBQ0QsU0FBU0gsbUJBQW1CSSxPQUFPLEVBQUVULEVBQUUsRUFBRVUsR0FBRztJQUMxQyxNQUFNQyxPQUFPLElBQUk7SUFDakIsbUJBQW1CLEdBQ25CLElBQUlDO0lBRUosT0FBT0M7SUFFUDs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCLDJEQUEyRDtRQUMzRCxvREFBb0Q7UUFDcEQsc0RBQXNEO1FBQ3RETCxRQUFRTSxLQUFLLENBQUNoQix3REFBS0EsQ0FBQ0csVUFBVTtRQUM5QixPQUFPYyxPQUFPRjtJQUNoQjtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNFLE9BQU9GLElBQUk7UUFDbEIsc0RBQXNEO1FBQ3REYiwwQ0FBTUEsQ0FBQ2EsU0FBU2hCLHdEQUFLQSxDQUFDbUIsaUJBQWlCLEVBQUU7UUFDekMsT0FBTzNCLGlFQUFZQSxDQUFDNEIsSUFBSSxDQUN0QlAsTUFDQUYsU0FDQVUsWUFDQSwyREFBMkQ7UUFDM0RULEtBQ0FYLHdEQUFLQSxDQUFDcUIsZUFBZSxFQUNyQnJCLHdEQUFLQSxDQUFDc0IscUJBQXFCLEVBQzNCdEIsd0RBQUtBLENBQUN1QixxQkFBcUIsRUFDM0JSO0lBQ0o7SUFFQTs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTSyxXQUFXTCxJQUFJO1FBQ3RCRixhQUFhZix3RkFBbUJB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LFVBQVUsRUFDaEI1QixRQUNGc0MsNkJBQTZCdEM7SUFDbkM7SUFFQTs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTc0MsNkJBQTZCdEMsSUFBSTtRQUN4QyxPQUFPQSxTQUFTaEIsd0RBQUtBLENBQUM2QyxHQUFHLElBQUlqRCw0RUFBa0JBLENBQUNvQixRQUFRZCxHQUFHYyxRQUFRSixJQUFJSTtJQUN6RTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL2RlZmluaXRpb24uanM/NjJlMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5RGVzdGluYXRpb259IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LWRlc3RpbmF0aW9uJ1xuaW1wb3J0IHtmYWN0b3J5TGFiZWx9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LWxhYmVsJ1xuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHtmYWN0b3J5VGl0bGV9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXRpdGxlJ1xuaW1wb3J0IHtmYWN0b3J5V2hpdGVzcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktd2hpdGVzcGFjZSdcbmltcG9ydCB7XG4gIG1hcmtkb3duTGluZUVuZGluZyxcbiAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSxcbiAgbWFya2Rvd25TcGFjZVxufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge25vcm1hbGl6ZUlkZW50aWZpZXJ9IGZyb20gJ21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyJ1xuaW1wb3J0IHtjb2RlcywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGRlZmluaXRpb24gPSB7bmFtZTogJ2RlZmluaXRpb24nLCB0b2tlbml6ZTogdG9rZW5pemVEZWZpbml0aW9ufVxuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IHRpdGxlQmVmb3JlID0ge3Rva2VuaXplOiB0b2tlbml6ZVRpdGxlQmVmb3JlLCBwYXJ0aWFsOiB0cnVlfVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZURlZmluaXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGlkZW50aWZpZXJcblxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogQXQgc3RhcnQgb2YgYSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgLy8gRG8gbm90IGludGVycnVwdCBwYXJhZ3JhcGhzIChidXQgZG8gZm9sbG93IGRlZmluaXRpb25zKS5cbiAgICAvLyBUbyBkbzogZG8gYGludGVycnVwdGAgdGhlIHdheSBgbWFya2Rvd24tcnNgIGRvZXMuXG4gICAgLy8gVG8gZG86IHBhcnNlIHdoaXRlc3BhY2UgdGhlIHdheSBgbWFya2Rvd24tcnNgIGRvZXMuXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5kZWZpbml0aW9uKVxuICAgIHJldHVybiBiZWZvcmUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLCBhdCBgW2AuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZShjb2RlKSB7XG4gICAgLy8gVG8gZG86IHBhcnNlIHdoaXRlc3BhY2UgdGhlIHdheSBgbWFya2Rvd24tcnNgIGRvZXMuXG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0LCAnZXhwZWN0ZWQgYFtgJylcbiAgICByZXR1cm4gZmFjdG9yeUxhYmVsLmNhbGwoXG4gICAgICBzZWxmLFxuICAgICAgZWZmZWN0cyxcbiAgICAgIGxhYmVsQWZ0ZXIsXG4gICAgICAvLyBOb3RlOiB3ZSBkb27igJl0IG5lZWQgdG8gcmVzZXQgdGhlIHdheSBgbWFya2Rvd24tcnNgIGRvZXMuXG4gICAgICBub2ssXG4gICAgICB0eXBlcy5kZWZpbml0aW9uTGFiZWwsXG4gICAgICB0eXBlcy5kZWZpbml0aW9uTGFiZWxNYXJrZXIsXG4gICAgICB0eXBlcy5kZWZpbml0aW9uTGFiZWxTdHJpbmdcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgbGFiZWwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsQWZ0ZXIoY29kZSkge1xuICAgIGlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKFxuICAgICAgc2VsZi5zbGljZVNlcmlhbGl6ZShzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXVsxXSkuc2xpY2UoMSwgLTEpXG4gICAgKVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmNvbG9uKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmRlZmluaXRpb25NYXJrZXIpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5kZWZpbml0aW9uTWFya2VyKVxuICAgICAgcmV0dXJuIG1hcmtlckFmdGVyXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIG1hcmtlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYiBcImNcIlxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG1hcmtlckFmdGVyKGNvZGUpIHtcbiAgICAvLyBOb3RlOiB3aGl0ZXNwYWNlIGlzIG9wdGlvbmFsLlxuICAgIHJldHVybiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlXaGl0ZXNwYWNlKGVmZmVjdHMsIGRlc3RpbmF0aW9uQmVmb3JlKShjb2RlKVxuICAgICAgOiBkZXN0aW5hdGlvbkJlZm9yZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSBkZXN0aW5hdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYiBcImNcIlxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkZXN0aW5hdGlvbkJlZm9yZShjb2RlKSB7XG4gICAgcmV0dXJuIGZhY3RvcnlEZXN0aW5hdGlvbihcbiAgICAgIGVmZmVjdHMsXG4gICAgICBkZXN0aW5hdGlvbkFmdGVyLFxuICAgICAgLy8gTm90ZTogd2UgZG9u4oCZdCBuZWVkIHRvIHJlc2V0IHRoZSB3YXkgYG1hcmtkb3duLXJzYCBkb2VzLlxuICAgICAgbm9rLFxuICAgICAgdHlwZXMuZGVmaW5pdGlvbkRlc3RpbmF0aW9uLFxuICAgICAgdHlwZXMuZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCxcbiAgICAgIHR5cGVzLmRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIsXG4gICAgICB0eXBlcy5kZWZpbml0aW9uRGVzdGluYXRpb25SYXcsXG4gICAgICB0eXBlcy5kZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmdcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGRlc3RpbmF0aW9uQWZ0ZXIoY29kZSkge1xuICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQodGl0bGVCZWZvcmUsIGFmdGVyLCBhZnRlcikoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiXG4gICAqICAgICAgICAgICBeXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgID8gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyV2hpdGVzcGFjZSwgdHlwZXMud2hpdGVzcGFjZSkoY29kZSlcbiAgICAgIDogYWZ0ZXJXaGl0ZXNwYWNlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVmaW5pdGlvbiwgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYlxuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXJXaGl0ZXNwYWNlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmRlZmluaXRpb24pXG5cbiAgICAgIC8vIE5vdGU6IHdlIGRvbuKAmXQgY2FyZSBhYm91dCB1bmlxdWVuZXNzLlxuICAgICAgLy8gSXTigJlzIGxpa2VseSB0aGF0IHRoYXQgZG9lc27igJl0IGhhcHBlbiB2ZXJ5IGZyZXF1ZW50bHkuXG4gICAgICAvLyBJdCBpcyBtb3JlIGxpa2VseSB0aGF0IGl0IHdhc3RlcyBwcmVjaW91cyB0aW1lLlxuICAgICAgc2VsZi5wYXJzZXIuZGVmaW5lZC5wdXNoKGlkZW50aWZpZXIpXG5cbiAgICAgIC8vIFRvIGRvOiBgbWFya2Rvd24tcnNgIGludGVycnVwdC5cbiAgICAgIC8vIC8vIFlvdeKAmWQgYmUgaW50ZXJydXB0aW5nLlxuICAgICAgLy8gdG9rZW5pemVyLmludGVycnVwdCA9IHRydWVcbiAgICAgIHJldHVybiBvayhjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVRpdGxlQmVmb3JlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgcmV0dXJuIHRpdGxlQmVmb3JlXG5cbiAgLyoqXG4gICAqIEFmdGVyIGRlc3RpbmF0aW9uLCBhdCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiXG4gICAqICAgICAgICAgICBeXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRpdGxlQmVmb3JlKGNvZGUpIHtcbiAgICByZXR1cm4gbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKVxuICAgICAgPyBmYWN0b3J5V2hpdGVzcGFjZShlZmZlY3RzLCBiZWZvcmVNYXJrZXIpKGNvZGUpXG4gICAgICA6IG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IHRpdGxlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgW2FdOiBiXG4gICAqID4gfCBcImNcIlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmVmb3JlTWFya2VyKGNvZGUpIHtcbiAgICByZXR1cm4gZmFjdG9yeVRpdGxlKFxuICAgICAgZWZmZWN0cyxcbiAgICAgIHRpdGxlQWZ0ZXIsXG4gICAgICBub2ssXG4gICAgICB0eXBlcy5kZWZpbml0aW9uVGl0bGUsXG4gICAgICB0eXBlcy5kZWZpbml0aW9uVGl0bGVNYXJrZXIsXG4gICAgICB0eXBlcy5kZWZpbml0aW9uVGl0bGVTdHJpbmdcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgdGl0bGUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0aXRsZUFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKVxuICAgICAgPyBmYWN0b3J5U3BhY2UoXG4gICAgICAgICAgZWZmZWN0cyxcbiAgICAgICAgICB0aXRsZUFmdGVyT3B0aW9uYWxXaGl0ZXNwYWNlLFxuICAgICAgICAgIHR5cGVzLndoaXRlc3BhY2VcbiAgICAgICAgKShjb2RlKVxuICAgICAgOiB0aXRsZUFmdGVyT3B0aW9uYWxXaGl0ZXNwYWNlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgdGl0bGUsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0aXRsZUFmdGVyT3B0aW9uYWxXaGl0ZXNwYWNlKGNvZGUpIHtcbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSA/IG9rKGNvZGUpIDogbm9rKGNvZGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmYWN0b3J5RGVzdGluYXRpb24iLCJmYWN0b3J5TGFiZWwiLCJmYWN0b3J5U3BhY2UiLCJmYWN0b3J5VGl0bGUiLCJmYWN0b3J5V2hpdGVzcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCJtYXJrZG93blNwYWNlIiwibm9ybWFsaXplSWRlbnRpZmllciIsImNvZGVzIiwidHlwZXMiLCJvayIsImFzc2VydCIsImRlZmluaXRpb24iLCJuYW1lIiwidG9rZW5pemUiLCJ0b2tlbml6ZURlZmluaXRpb24iLCJ0aXRsZUJlZm9yZSIsInRva2VuaXplVGl0bGVCZWZvcmUiLCJwYXJ0aWFsIiwiZWZmZWN0cyIsIm5vayIsInNlbGYiLCJpZGVudGlmaWVyIiwic3RhcnQiLCJjb2RlIiwiZW50ZXIiLCJiZWZvcmUiLCJsZWZ0U3F1YXJlQnJhY2tldCIsImNhbGwiLCJsYWJlbEFmdGVyIiwiZGVmaW5pdGlvbkxhYmVsIiwiZGVmaW5pdGlvbkxhYmVsTWFya2VyIiwiZGVmaW5pdGlvbkxhYmVsU3RyaW5nIiwic2xpY2VTZXJpYWxpemUiLCJldmVudHMiLCJsZW5ndGgiLCJzbGljZSIsImNvbG9uIiwiZGVmaW5pdGlvbk1hcmtlciIsImNvbnN1bWUiLCJleGl0IiwibWFya2VyQWZ0ZXIiLCJkZXN0aW5hdGlvbkJlZm9yZSIsImRlc3RpbmF0aW9uQWZ0ZXIiLCJkZWZpbml0aW9uRGVzdGluYXRpb24iLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsImRlZmluaXRpb25EZXN0aW5hdGlvblJhdyIsImRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZyIsImF0dGVtcHQiLCJhZnRlciIsImFmdGVyV2hpdGVzcGFjZSIsIndoaXRlc3BhY2UiLCJlb2YiLCJwYXJzZXIiLCJkZWZpbmVkIiwicHVzaCIsImJlZm9yZU1hcmtlciIsInRpdGxlQWZ0ZXIiLCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciLCJ0aXRsZUFmdGVyT3B0aW9uYWxXaGl0ZXNwYWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/definition.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hardBreakEscape: () => (/* binding */ hardBreakEscape)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n/** @type {Construct} */ const hardBreakEscape = {\n name: \"hardBreakEscape\",\n tokenize: tokenizeHardBreakEscape\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, \"expected `\\\\`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape);\n effects.consume(code);\n return after;\n }\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */ function after(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape);\n return ok(code);\n }\n return nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9oYXJkLWJyZWFrLWVzY2FwZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7OztDQUtDLEdBRTBEO0FBQ1Q7QUFDZjtBQUVuQyxzQkFBc0IsR0FDZixNQUFNSyxrQkFBa0I7SUFDN0JDLE1BQU07SUFDTkMsVUFBVUM7QUFDWixFQUFDO0FBRUQ7OztDQUdDLEdBQ0QsU0FBU0Esd0JBQXdCQyxPQUFPLEVBQUVOLEVBQUUsRUFBRU8sR0FBRztJQUMvQyxPQUFPQztJQUVQOzs7Ozs7Ozs7O0dBVUMsR0FDRCxTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCUiwwQ0FBTUEsQ0FBQ1EsU0FBU1gsd0RBQUtBLENBQUNZLFNBQVMsRUFBRTtRQUNqQ0osUUFBUUssS0FBSyxDQUFDWix3REFBS0EsQ0FBQ0csZUFBZTtRQUNuQ0ksUUFBUU0sT0FBTyxDQUFDSDtRQUNoQixPQUFPSTtJQUNUO0lBRUE7Ozs7Ozs7Ozs7R0FVQyxHQUNELFNBQVNBLE1BQU1KLElBQUk7UUFDakIsSUFBSVosNEVBQWtCQSxDQUFDWSxPQUFPO1lBQzVCSCxRQUFRUSxJQUFJLENBQUNmLHdEQUFLQSxDQUFDRyxlQUFlO1lBQ2xDLE9BQU9GLEdBQUdTO1FBQ1o7UUFFQSxPQUFPRixJQUFJRTtJQUNiO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2Rldi9saWIvaGFyZC1icmVhay1lc2NhcGUuanM/OTUwOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmd9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBoYXJkQnJlYWtFc2NhcGUgPSB7XG4gIG5hbWU6ICdoYXJkQnJlYWtFc2NhcGUnLFxuICB0b2tlbml6ZTogdG9rZW5pemVIYXJkQnJlYWtFc2NhcGVcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVIYXJkQnJlYWtFc2NhcGUoZWZmZWN0cywgb2ssIG5vaykge1xuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgYSBoYXJkIGJyZWFrIChlc2NhcGUpLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYVxcXG4gICAqICAgICAgXlxuICAgKiAgIHwgYlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGFzc2VydChjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2gsICdleHBlY3RlZCBgXFxcXGAnKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuaGFyZEJyZWFrRXNjYXBlKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBhZnRlclxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGBcXGAsIGF0IGVvbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFcXFxuICAgKiAgICAgICBeXG4gICAqICAgfCBiXG4gICAqIGBgYFxuICAgKlxuICAgKiAgQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXIoY29kZSkge1xuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5oYXJkQnJlYWtFc2NhcGUpXG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtYXJrZG93bkxpbmVFbmRpbmciLCJjb2RlcyIsInR5cGVzIiwib2siLCJhc3NlcnQiLCJoYXJkQnJlYWtFc2NhcGUiLCJuYW1lIiwidG9rZW5pemUiLCJ0b2tlbml6ZUhhcmRCcmVha0VzY2FwZSIsImVmZmVjdHMiLCJub2siLCJzdGFydCIsImNvZGUiLCJiYWNrc2xhc2giLCJlbnRlciIsImNvbnN1bWUiLCJhZnRlciIsImV4aXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ headingAtx: () => (/* binding */ headingAtx)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ \"(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n\n/** @type {Construct} */ const headingAtx = {\n name: \"headingAtx\",\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n};\n/** @type {Resolver} */ function resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n /** @type {Token} */ let content;\n /** @type {Token} */ let text;\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace) {\n contentStart += 2;\n }\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace) {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content = {\n type: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingText,\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.chunkText,\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.constants.contentTypeText\n };\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, contentStart, contentEnd - contentStart + 1, [\n [\n \"enter\",\n content,\n context\n ],\n [\n \"enter\",\n text,\n context\n ],\n [\n \"exit\",\n text,\n context\n ],\n [\n \"exit\",\n content,\n context\n ]\n ]);\n }\n return events;\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeading);\n return before(code);\n }\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */ function before(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_3__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign, \"expected `#`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence);\n return sequenceOpen(code);\n }\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */ function sequenceOpen(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign && size++ < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.constants.atxHeadingOpeningFenceSizeMax) {\n effects.consume(code);\n return sequenceOpen;\n }\n // Always at least one `#`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence);\n return atBreak(code);\n }\n return nok(code);\n }\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */ function atBreak(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence);\n return sequenceFurther(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeading);\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)) {\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, atBreak, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code);\n }\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingText);\n return data(code);\n }\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */ function sequenceFurther(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence);\n return atBreak(code);\n }\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */ function data(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingText);\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9oZWFkaW5nLWF0eC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOzs7Ozs7O0NBT0MsR0FFbUQ7QUFLbkI7QUFDWTtBQUNnQjtBQUMxQjtBQUVuQyxzQkFBc0IsR0FDZixNQUFNVSxhQUFhO0lBQ3hCQyxNQUFNO0lBQ05DLFVBQVVDO0lBQ1ZDLFNBQVNDO0FBQ1gsRUFBQztBQUVELHFCQUFxQixHQUNyQixTQUFTQSxrQkFBa0JDLE1BQU0sRUFBRUMsT0FBTztJQUN4QyxJQUFJQyxhQUFhRixPQUFPRyxNQUFNLEdBQUc7SUFDakMsSUFBSUMsZUFBZTtJQUNuQixrQkFBa0IsR0FDbEIsSUFBSUM7SUFDSixrQkFBa0IsR0FDbEIsSUFBSUM7SUFFSiwwQ0FBMEM7SUFDMUMsSUFBSU4sTUFBTSxDQUFDSSxhQUFhLENBQUMsRUFBRSxDQUFDRyxJQUFJLEtBQUtoQix3REFBS0EsQ0FBQ2lCLFVBQVUsRUFBRTtRQUNyREosZ0JBQWdCO0lBQ2xCO0lBRUEsMENBQTBDO0lBQzFDLElBQ0VGLGFBQWEsSUFBSUUsZ0JBQ2pCSixNQUFNLENBQUNFLFdBQVcsQ0FBQyxFQUFFLENBQUNLLElBQUksS0FBS2hCLHdEQUFLQSxDQUFDaUIsVUFBVSxFQUMvQztRQUNBTixjQUFjO0lBQ2hCO0lBRUEsSUFDRUYsTUFBTSxDQUFDRSxXQUFXLENBQUMsRUFBRSxDQUFDSyxJQUFJLEtBQUtoQix3REFBS0EsQ0FBQ2tCLGtCQUFrQixJQUN0REwsQ0FBQUEsaUJBQWlCRixhQUFhLEtBQzVCQSxhQUFhLElBQUlFLGdCQUNoQkosTUFBTSxDQUFDRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUNLLElBQUksS0FBS2hCLHdEQUFLQSxDQUFDaUIsVUFBVSxHQUN2RDtRQUNBTixjQUFjRSxlQUFlLE1BQU1GLGFBQWEsSUFBSTtJQUN0RDtJQUVBLElBQUlBLGFBQWFFLGNBQWM7UUFDN0JDLFVB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SUEsU0FBUzlCLHdEQUFLQSxDQUFDa0MsVUFBVSxFQUFFO1lBQzdCUCxRQUFRVSxPQUFPLENBQUNQO1lBQ2hCLE9BQU9XO1FBQ1Q7UUFFQWQsUUFBUVksSUFBSSxDQUFDckMsd0RBQUtBLENBQUNrQixrQkFBa0I7UUFDckMsT0FBT29CLFFBQVFWO0lBQ2pCO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU1ksS0FBS1osSUFBSTtRQUNoQixJQUNFQSxTQUFTOUIsd0RBQUtBLENBQUNzQyxHQUFHLElBQ2xCUixTQUFTOUIsd0RBQUtBLENBQUNrQyxVQUFVLElBQ3pCckMsbUZBQXlCQSxDQUFDaUMsT0FDMUI7WUFDQUgsUUFBUVksSUFBSSxDQUFDckMsd0RBQUtBLENBQUNtQixjQUFjO1lBQ2pDLE9BQU9tQixRQUFRVjtRQUNqQjtRQUVBSCxRQUFRVSxPQUFPLENBQUNQO1FBQ2hCLE9BQU9ZO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9oZWFkaW5nLWF0eC5qcz82N2Y3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7XG4gIG1hcmtkb3duTGluZUVuZGluZyxcbiAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSxcbiAgbWFya2Rvd25TcGFjZVxufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge3NwbGljZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2h1bmtlZCdcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGhlYWRpbmdBdHggPSB7XG4gIG5hbWU6ICdoZWFkaW5nQXR4JyxcbiAgdG9rZW5pemU6IHRva2VuaXplSGVhZGluZ0F0eCxcbiAgcmVzb2x2ZTogcmVzb2x2ZUhlYWRpbmdBdHhcbn1cblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cbmZ1bmN0aW9uIHJlc29sdmVIZWFkaW5nQXR4KGV2ZW50cywgY29udGV4dCkge1xuICBsZXQgY29udGVudEVuZCA9IGV2ZW50cy5sZW5ndGggLSAyXG4gIGxldCBjb250ZW50U3RhcnQgPSAzXG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCBjb250ZW50XG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCB0ZXh0XG5cbiAgLy8gUHJlZml4IHdoaXRlc3BhY2UsIHBhcnQgb2YgdGhlIG9wZW5pbmcuXG4gIGlmIChldmVudHNbY29udGVudFN0YXJ0XVsxXS50eXBlID09PSB0eXBlcy53aGl0ZXNwYWNlKSB7XG4gICAgY29udGVudFN0YXJ0ICs9IDJcbiAgfVxuXG4gIC8vIFN1ZmZpeCB3aGl0ZXNwYWNlLCBwYXJ0IG9mIHRoZSBjbG9zaW5nLlxuICBpZiAoXG4gICAgY29udGVudEVuZCAtIDIgPiBjb250ZW50U3RhcnQgJiZcbiAgICBldmVudHNbY29udGVudEVuZF1bMV0udHlwZSA9PT0gdHlwZXMud2hpdGVzcGFjZVxuICApIHtcbiAgICBjb250ZW50RW5kIC09IDJcbiAgfVxuXG4gIGlmIChcbiAgICBldmVudHNbY29udGVudEVuZF1bMV0udHlwZSA9PT0gdHlwZXMuYXR4SGVhZGluZ1NlcXVlbmNlICYmXG4gICAgKGNvbnRlbnRTdGFydCA9PT0gY29udGVudEVuZCAtIDEgfHxcbiAgICAgIChjb250ZW50RW5kIC0gNCA+IGNvbnRlbnRTdGFydCAmJlxuICAgICAgICBldmVudHNbY29udGVudEVuZCAtIDJdWzFdLnR5cGUgPT09IHR5cGVzLndoaXRlc3BhY2UpKVxuICApIHtcbiAgICBjb250ZW50RW5kIC09IGNvbnRlbnRTdGFydCArIDEgPT09IGNvbnRlbnRFbmQgPyAyIDogNFxuICB9XG5cbiAgaWYgKGNvbnRlbnRFbmQgPiBjb250ZW50U3RhcnQpIHtcbiAgICBjb250ZW50ID0ge1xuICAgICAgdHlwZTogdHlwZXMuYXR4SGVhZGluZ1RleHQsXG4gICAgICBzdGFydDogZXZlbnRzW2NvbnRlbnRTdGFydF1bMV0uc3RhcnQsXG4gICAgICBlbmQ6IGV2ZW50c1tjb250ZW50RW5kXVsxXS5lbmRcbiAgICB9XG4gICAgdGV4dCA9IHtcbiAgICAgIHR5cGU6IHR5cGVzLmNodW5rVGV4dCxcbiAgICAgIHN0YXJ0OiBldmVudHNbY29udGVudFN0YXJ0XVsxXS5zdGFydCxcbiAgICAgIGVuZDogZXZlbnRzW2NvbnRlbnRFbmRdWzFdLmVuZCxcbiAgICAgIGNvbnRlbnRUeXBlOiBjb25zdGFudHMuY29udGVudFR5cGVUZXh0XG4gICAgfVxuXG4gICAgc3BsaWNlKGV2ZW50cywgY29udGVudFN0YXJ0LCBjb250ZW50RW5kIC0gY29udGVudFN0YXJ0ICsgMSwgW1xuICAgICAgWydlbnRlcicsIGNvbnRlbnQsIGNvbnRleHRdLFxuICAgICAgWydlbnRlcicsIHRleHQsIGNvbnRleHRdLFxuICAgICAgWydleGl0JywgdGV4dCwgY29udGV4dF0sXG4gICAgICBbJ2V4aXQnLCBjb250ZW50LCBjb250ZXh0XVxuICAgIF0pXG4gIH1cblxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplSGVhZGluZ0F0eChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGxldCBzaXplID0gMFxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBhIGhlYWRpbmcgKGF0eCkuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAjIyBhYVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIC8vIFRvIGRvOiBwYXJzZSBpbmRlbnQgbGlrZSBgbWFya2Rvd24tcnNgLlxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuYXR4SGVhZGluZylcbiAgICByZXR1cm4gYmVmb3JlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZSwgYXQgYCNgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgIyMgYWFcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZShjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLm51bWJlclNpZ24sICdleHBlY3RlZCBgI2AnKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuYXR4SGVhZGluZ1NlcXVlbmNlKVxuICAgIHJldHVybiBzZXF1ZW5jZU9wZW4oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgIyMgYWFcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcXVlbmNlT3Blbihjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMubnVtYmVyU2lnbiAmJlxuICAgICAgc2l6ZSsrIDwgY29uc3RhbnRzLmF0eEhlYWRpbmdPcGVuaW5nRmVuY2VTaXplTWF4XG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBzZXF1ZW5jZU9wZW5cbiAgICB9XG5cbiAgICAvLyBBbHdheXMgYXQgbGVhc3Qgb25lIGAjYC5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5hdHhIZWFkaW5nU2VxdWVuY2UpXG4gICAgICByZXR1cm4gYXRCcmVhayhjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBzb21ldGhpbmcsIGJlZm9yZSBzb21ldGhpbmcgZWxzZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICMjIGFhXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGF0QnJlYWsoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5udW1iZXJTaWduKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmF0eEhlYWRpbmdTZXF1ZW5jZSlcbiAgICAgIHJldHVybiBzZXF1ZW5jZUZ1cnRoZXIoY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmF0eEhlYWRpbmcpXG4gICAgICAvLyBUbyBkbzogaW50ZXJydXB0IGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICAgIC8vIC8vIEZlZWwgZnJlZSB0byBpbnRlcnJ1cHQuXG4gICAgICAvLyB0b2tlbml6ZXIuaW50ZXJydXB0ID0gZmFsc2VcbiAgICAgIHJldHVybiBvayhjb2RlKVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGF0QnJlYWssIHR5cGVzLndoaXRlc3BhY2UpKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gVG8gZG86IGdlbmVyYXRlIGBkYXRhYCB0b2tlbnMsIGFkZCB0aGUgYHRleHRgIHRva2VuIGxhdGVyLlxuICAgIC8vIE5lZWRzIGVkaXQgbWFwLCBzZWU6IGBtYXJrZG93bi5yc2AuXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5hdHhIZWFkaW5nVGV4dClcbiAgICByZXR1cm4gZGF0YShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGZ1cnRoZXIgc2VxdWVuY2UgKGFmdGVyIHdoaXRlc3BhY2UpLlxuICAgKlxuICAgKiBDb3VsZCBiZSBub3JtYWwg4oCcdmlzaWJsZeKAnSBoYXNoZXMgaW4gdGhlIGhlYWRpbmcgb3IgYSBmaW5hbCBzZXF1ZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICMjIGFhICMjXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzZXF1ZW5jZUZ1cnRoZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5udW1iZXJTaWduKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBzZXF1ZW5jZUZ1cnRoZXJcbiAgICB9XG5cbiAgICBlZmZlY3RzLmV4aXQodHlwZXMuYXR4SGVhZGluZ1NlcXVlbmNlKVxuICAgIHJldHVybiBhdEJyZWFrKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gdGV4dC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICMjIGFhXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkYXRhKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLm51bWJlclNpZ24gfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5hdHhIZWFkaW5nVGV4dClcbiAgICAgIHJldHVybiBhdEJyZWFrKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZhY3RvcnlTcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCJtYXJrZG93blNwYWNlIiwic3BsaWNlIiwiY29kZXMiLCJjb25zdGFudHMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiaGVhZGluZ0F0eCIsIm5hbWUiLCJ0b2tlbml6ZSIsInRva2VuaXplSGVhZGluZ0F0eCIsInJlc29sdmUiLCJyZXNvbHZlSGVhZGluZ0F0eCIsImV2ZW50cyIsImNvbnRleHQiLCJjb250ZW50RW5kIiwibGVuZ3RoIiwiY29udGVudFN0YXJ0IiwiY29udGVudCIsInRleHQiLCJ0eXBlIiwid2hpdGVzcGFjZSIsImF0eEhlYWRpbmdTZXF1ZW5jZSIsImF0eEhlYWRpbmdUZXh0Iiwic3RhcnQiLCJlbmQiLCJjaHVua1RleHQiLCJjb250ZW50VHlwZSIsImNvbnRlbnRUeXBlVGV4dCIsImVmZmVjdHMiLCJub2siLCJzaXplIiwiY29kZSIsImVudGVyIiwiYXR4SGVhZGluZyIsImJlZm9yZSIsIm51bWJlclNpZ24iLCJzZXF1ZW5jZU9wZW4iLCJhdHhIZWFkaW5nT3BlbmluZ0ZlbmNlU2l6ZU1heCIsImNvbnN1bWUiLCJlb2YiLCJleGl0IiwiYXRCcmVhayIsInNlcXVlbmNlRnVydGhlciIsImRhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/html-flow.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/html-flow.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ htmlFlow: () => (/* binding */ htmlFlow)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-html-tag-name */ \"(ssr)/../../node_modules/micromark-util-html-tag-name/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var _blank_line_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blank-line.js */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/blank-line.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n\n/** @type {Construct} */ const htmlFlow = {\n name: \"htmlFlow\",\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n};\n/** @type {Construct} */ const blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n};\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n};\n/** @type {Resolver} */ function resolveToHtmlFlow(events) {\n let index = events.length;\n while(index--){\n if (events[index][0] === \"enter\" && events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlow) {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.linePrefix) {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start;\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start;\n // Remove the line prefix.\n events.splice(index - 2, 2);\n }\n return events;\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeHtmlFlow(effects, ok, nok) {\n const self = this;\n /** @type {number} */ let marker;\n /** @type {boolean} */ let closingTag;\n /** @type {string} */ let buffer;\n /** @type {number} */ let index;\n /** @type {Code} */ let markerB;\n return start;\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */ function before(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan, \"expected `<`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlow);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData);\n effects.consume(code);\n return open;\n }\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */ function open(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {\n effects.consume(code);\n closingTag = true;\n return tagCloseStart;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark) {\n effects.consume(code);\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction;\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n // ASCII alphabetical.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */ function declarationOpen(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {\n effects.consume(code);\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment;\n return commentOpenInside;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {\n effects.consume(code);\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata;\n index = 0;\n return cdataOpenInside;\n }\n // ASCII alphabetical.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {\n effects.consume(code);\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */ function commentOpenInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */ function cdataOpenInside(code) {\n const value = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.cdataOpeningString;\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code);\n }\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */ function tagCloseStart(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */ function tagName(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)) {\n const slash = code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic;\n if (slash) {\n effects.consume(code);\n return basicSelfClosing;\n }\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete;\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n }\n // ASCII alphanumerical and `-`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)) {\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */ function basicSelfClosing(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return nok(code);\n }\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */ function completeClosingTagAfter(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n return completeEnd(code);\n }\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */ function completeAttributeNameBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {\n effects.consume(code);\n return completeEnd;\n }\n // ASCII alphanumerical and `:` and `_`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.colon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n return completeEnd(code);\n }\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */ function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dot || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.colon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code);\n }\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */ function completeAttributeNameAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code);\n }\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */ function completeAttributeValueBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe) {\n effects.consume(code);\n markerB = code;\n return completeAttributeValueQuoted;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code);\n }\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */ function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n return nok(code);\n }\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */ function completeAttributeValueUnquoted(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)) {\n return completeAttributeNameAfter(code);\n }\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */ function completeAttributeValueQuotedAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n return completeAttributeNameBefore(code);\n }\n return nok(code);\n }\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */ function completeEnd(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */ function completeAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */ function continuation(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment) {\n effects.consume(code);\n return continuationCommentInside;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration) {\n effects.consume(code);\n return continuationClose;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.rightSquareBracket && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata) {\n effects.consume(code);\n return continuationCdataInside;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code) && (marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic || marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData);\n return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData);\n return continuationStart(code);\n }\n effects.consume(code);\n return continuation;\n }\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */ function continuationStart(code) {\n return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n }\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */ function continuationStartNonLazy(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code));\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n return continuationBefore;\n }\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */ function continuationBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n return continuationStart(code);\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData);\n return continuation(code);\n }\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */ function continuationCommentInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */ function continuationRawTagOpen(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {\n effects.consume(code);\n buffer = \"\";\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */ function continuationRawEndTag(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {\n const name = buffer.toLowerCase();\n if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code) && buffer.length < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRawSizeMax) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */ function continuationCdataInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.rightSquareBracket) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */ function continuationDeclarationInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {\n effects.consume(code);\n return continuationClose;\n }\n // More dashes.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */ function continuationClose(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData);\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */ function continuationAfter(code) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlow);\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */ function start(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n return after;\n }\n return nok(code);\n }\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), \"expected a line ending\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n return effects.attempt(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, ok, nok);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9odG1sLWZsb3cuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBUWdDO0FBQ3dDO0FBQ1o7QUFDMUI7QUFDTTtBQUV6QyxzQkFBc0IsR0FDZixNQUFNYSxXQUFXO0lBQ3RCQyxNQUFNO0lBQ05DLFVBQVVDO0lBQ1ZDLFdBQVdDO0lBQ1hDLFVBQVU7QUFDWixFQUFDO0FBRUQsc0JBQXNCLEdBQ3RCLE1BQU1DLGtCQUFrQjtJQUFDTCxVQUFVTTtJQUF5QkMsU0FBUztBQUFJO0FBQ3pFLE1BQU1DLDJCQUEyQjtJQUMvQlIsVUFBVVM7SUFDVkYsU0FBUztBQUNYO0FBRUEscUJBQXFCLEdBQ3JCLFNBQVNKLGtCQUFrQk8sTUFBTTtJQUMvQixJQUFJQyxRQUFRRCxPQUFPRSxNQUFNO0lBRXpCLE1BQU9ELFFBQVM7UUFDZCxJQUNFRCxNQUFNLENBQUNDLE1BQU0sQ0FBQyxFQUFFLEtBQUssV0FDckJELE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLEVBQUUsQ0FBQ0UsSUFBSSxLQUFLbkIsd0RBQUtBLENBQUNJLFFBQVEsRUFDeEM7WUFDQTtRQUNGO0lBQ0Y7SUFFQSxJQUFJYSxRQUFRLEtBQUtELE1BQU0sQ0FBQ0MsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDRSxJQUFJLEtBQUtuQix3REFBS0EsQ0FBQ29CLFVBQVUsRUFBRTtRQUMvRCwwQ0FBMEM7UUFDMUNKLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLEVBQUUsQ0FBQ0ksS0FBSyxHQUFHTCxNQUFNLENBQUNDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQ0ksS0FBSztRQUNuRCwrQ0FBK0M7UUFDL0NMLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDSSxLQUFLLEdBQUdMLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDSSxLQUFLO1FBQ3ZELDBCQUEwQjtRQUMxQkws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LENBQUNDLElBQUksQ0FBQzNDLEtBQUs0QyxHQUFHLEdBQUdDLElBQUksQ0FBQyxHQUFHOUMsSUFBSU0sUUFBUTdCLEdBQUc2QjtJQUM1RDtBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2xCLHdCQUF3QlcsT0FBTyxFQUFFdEIsRUFBRSxFQUFFdUIsR0FBRztJQUMvQyxPQUFPSDtJQUVQOzs7Ozs7Ozs7O0dBVUMsR0FDRCxTQUFTQSxNQUFNUyxJQUFJO1FBQ2pCNUIsMENBQU1BLENBQUNULDRFQUFrQkEsQ0FBQ3FDLE9BQU87UUFDakNQLFFBQVFVLEtBQUssQ0FBQ2pDLHdEQUFLQSxDQUFDa0csVUFBVTtRQUM5QjNFLFFBQVFZLE9BQU8sQ0FBQ0w7UUFDaEJQLFFBQVFzRSxJQUFJLENBQUM3Rix3REFBS0EsQ0FBQ2tHLFVBQVU7UUFDN0IsT0FBTzNFLFFBQVFnRixPQUFPLENBQUNwRyxxREFBU0EsRUFBRUYsSUFBSXVCO0lBQ3hDO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2Rldi9saWIvaHRtbC1mbG93LmpzP2QxNzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUmVzb2x2ZXJ9IFJlc29sdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7XG4gIGFzY2lpQWxwaGEsXG4gIGFzY2lpQWxwaGFudW1lcmljLFxuICBtYXJrZG93bkxpbmVFbmRpbmcsXG4gIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsXG4gIG1hcmtkb3duU3BhY2Vcbn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtodG1sQmxvY2tOYW1lcywgaHRtbFJhd05hbWVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1odG1sLXRhZy1uYW1lJ1xuaW1wb3J0IHtjb2RlcywgY29uc3RhbnRzLCB0eXBlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7YmxhbmtMaW5lfSBmcm9tICcuL2JsYW5rLWxpbmUuanMnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGh0bWxGbG93ID0ge1xuICBuYW1lOiAnaHRtbEZsb3cnLFxuICB0b2tlbml6ZTogdG9rZW5pemVIdG1sRmxvdyxcbiAgcmVzb2x2ZVRvOiByZXNvbHZlVG9IdG1sRmxvdyxcbiAgY29uY3JldGU6IHRydWVcbn1cblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCBibGFua0xpbmVCZWZvcmUgPSB7dG9rZW5pemU6IHRva2VuaXplQmxhbmtMaW5lQmVmb3JlLCBwYXJ0aWFsOiB0cnVlfVxuY29uc3Qgbm9uTGF6eUNvbnRpbnVhdGlvblN0YXJ0ID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uU3RhcnQsXG4gIHBhcnRpYWw6IHRydWVcbn1cblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cbmZ1bmN0aW9uIHJlc29sdmVUb0h0bWxGbG93KGV2ZW50cykge1xuICBsZXQgaW5kZXggPSBldmVudHMubGVuZ3RoXG5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBpZiAoXG4gICAgICBldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInICYmXG4gICAgICBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IHR5cGVzLmh0bWxGbG93XG4gICAgKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmIChpbmRleCA+IDEgJiYgZXZlbnRzW2luZGV4IC0gMl1bMV0udHlwZSA9PT0gdHlwZXMubGluZVByZWZpeCkge1xuICAgIC8vIEFkZCB0aGUgcHJlZml4IHN0YXJ0IHRvIHRoZSBIVE1MIHRva2VuLlxuICAgIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQgPSBldmVudHNbaW5kZXggLSAyXVsxXS5zdGFydFxuICAgIC8vIEFkZCB0aGUgcHJlZml4IHN0YXJ0IHRvIHRoZSBIVE1MIGxpbmUgdG9rZW4uXG4gICAgZXZlbnRzW2luZGV4ICsgMV1bMV0uc3RhcnQgPSBldmVudHNbaW5kZXggLSAyXVsxXS5zdGFydFxuICAgIC8vIFJlbW92ZSB0aGUgbGluZSBwcmVmaXguXG4gICAgZXZlbnRzLnNwbGljZShpbmRleCAtIDIsIDIpXG4gIH1cblxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplSHRtbEZsb3coZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IG1hcmtlclxuICAvKiogQHR5cGUge2Jvb2xlYW59ICovXG4gIGxldCBjbG9zaW5nVGFnXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgYnVmZmVyXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgaW5kZXhcbiAgLyoqIEB0eXBlIHtDb2RlfSAqL1xuICBsZXQgbWFya2VyQlxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBIVE1MIChmbG93KS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDx4IC8+XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgLy8gVG8gZG86IHBhcnNlIGluZGVudCBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgcmV0dXJuIGJlZm9yZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGA8YCwgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDx4IC8+XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZWZvcmUoY29kZSkge1xuICAgIGFzc2VydChjb2RlID09PSBjb2Rlcy5sZXNzVGhhbiwgJ2V4cGVjdGVkIGA8YCcpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5odG1sRmxvdylcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmh0bWxGbG93RGF0YSlcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gb3BlblxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8YCwgYXQgdGFnIG5hbWUgb3Igb3RoZXIgc3R1ZmYuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8eCAvPlxuICAgKiAgICAgIF5cbiAgICogPiB8IDwhZG9jdHlwZT5cbiAgICogICAgICBeXG4gICAqID4gfCA8IS0teHh4LS0+XG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gb3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmV4Y2xhbWF0aW9uTWFyaykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gZGVjbGFyYXRpb25PcGVuXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnNsYXNoKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGNsb3NpbmdUYWcgPSB0cnVlXG4gICAgICByZXR1cm4gdGFnQ2xvc2VTdGFydFxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5xdWVzdGlvbk1hcmspIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgbWFya2VyID0gY29uc3RhbnRzLmh0bWxJbnN0cnVjdGlvblxuICAgICAgLy8gVG8gZG86XG4gICAgICAvLyB0b2tlbml6ZXIuY29uY3JldGUgPSB0cnVlXG4gICAgICAvLyBUbyBkbzogdXNlIGBtYXJrZG93bi1yc2Agc3R5bGUgaW50ZXJydXB0LlxuICAgICAgLy8gV2hpbGUgd2XigJlyZSBpbiBhbiBpbnN0cnVjdGlvbiBpbnN0ZWFkIG9mIGEgZGVjbGFyYXRpb24sIHdl4oCZcmUgb24gYSBgP2BcbiAgICAgIC8vIHJpZ2h0IG5vdywgc28gd2UgZG8gbmVlZCB0byBzZWFyY2ggZm9yIGA+YCwgc2ltaWxhciB0byBkZWNsYXJhdGlvbnMuXG4gICAgICByZXR1cm4gc2VsZi5pbnRlcnJ1cHQgPyBvayA6IGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlXG4gICAgfVxuXG4gICAgLy8gQVNDSUkgYWxwaGFiZXRpY2FsLlxuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG5vdCBudWxsLlxuICAgICAgYnVmZmVyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ05hbWVcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwhYCwgYXQgZGVjbGFyYXRpb24sIGNvbW1lbnQsIG9yIENEQVRBLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPCFkb2N0eXBlPlxuICAgKiAgICAgICBeXG4gICAqID4gfCA8IS0teHh4LS0+XG4gICAqICAgICAgIF5cbiAgICogPiB8IDwhW0NEQVRBWz4mPF1dPlxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkZWNsYXJhdGlvbk9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5kYXNoKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIG1hcmtlciA9IGNvbnN0YW50cy5odG1sQ29tbWVudFxuICAgICAgcmV0dXJuIGNvbW1lbnRPcGVuSW5zaWRlXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIG1hcmtlciA9IGNvbnN0YW50cy5odG1sQ2RhdGFcbiAgICAgIGluZGV4ID0gMFxuICAgICAgcmV0dXJuIGNkYXRhT3Blbkluc2lkZVxuICAgIH1cblxuICAgIC8vIEFTQ0lJIGFscGhhYmV0aWNhbC5cbiAgICBpZiAoYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBtYXJrZXIgPSBjb25zdGFudHMuaHRtbERlY2xhcmF0aW9uXG4gICAgICAvLyAvLyBEbyBub3QgZm9ybSBjb250YWluZXJzLlxuICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2sgOiBjb250aW51YXRpb25EZWNsYXJhdGlvbkluc2lkZVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPCEtYCwgaW5zaWRlIGEgY29tbWVudCwgYXQgYW5vdGhlciBgLWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IS0teHh4LS0+XG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50T3Blbkluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRhc2gpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgLy8gLy8gRG8gbm90IGZvcm0gY29udGFpbmVycy5cbiAgICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IHRydWVcbiAgICAgIHJldHVybiBzZWxmLmludGVycnVwdCA/IG9rIDogY29udGludWF0aW9uRGVjbGFyYXRpb25JbnNpZGVcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwhW2AsIGluc2lkZSBDREFUQSwgZXhwZWN0aW5nIGBDREFUQVtgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPCFbQ0RBVEFbPiY8XV0+XG4gICAqICAgICAgICBeXl5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNkYXRhT3Blbkluc2lkZShjb2RlKSB7XG4gICAgY29uc3QgdmFsdWUgPSBjb25zdGFudHMuY2RhdGFPcGVuaW5nU3RyaW5nXG5cbiAgICBpZiAoY29kZSA9PT0gdmFsdWUuY2hhckNvZGVBdChpbmRleCsrKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG5cbiAgICAgIGlmIChpbmRleCA9PT0gdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IHRydWVcbiAgICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2sgOiBjb250aW51YXRpb25cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNkYXRhT3Blbkluc2lkZVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPC9gLCBpbiBjbG9zaW5nIHRhZywgYXQgdGFnIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8L3g+XG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ0Nsb3NlU3RhcnQoY29kZSkge1xuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG5vdCBudWxsLlxuICAgICAgYnVmZmVyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ05hbWVcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gdGFnIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YWI+XG4gICAqICAgICAgXl5cbiAgICogPiB8IDwvYWI+XG4gICAqICAgICAgIF5eXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdOYW1lKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnNsYXNoIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbiB8fFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKVxuICAgICkge1xuICAgICAgY29uc3Qgc2xhc2ggPSBjb2RlID09PSBjb2Rlcy5zbGFzaFxuICAgICAgY29uc3QgbmFtZSA9IGJ1ZmZlci50b0xvd2VyQ2FzZSgpXG5cbiAgICAgIGlmICghc2xhc2ggJiYgIWNsb3NpbmdUYWcgJiYgaHRtbFJhd05hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgIG1hcmtlciA9IGNvbnN0YW50cy5odG1sUmF3XG4gICAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IHRydWVcbiAgICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2soY29kZSkgOiBjb250aW51YXRpb24oY29kZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGh0bWxCbG9ja05hbWVzLmluY2x1ZGVzKGJ1ZmZlci50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICBtYXJrZXIgPSBjb25zdGFudHMuaHRtbEJhc2ljXG5cbiAgICAgICAgaWYgKHNsYXNoKSB7XG4gICAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgICAgcmV0dXJuIGJhc2ljU2VsZkNsb3NpbmdcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IHRydWVcbiAgICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2soY29kZSkgOiBjb250aW51YXRpb24oY29kZSlcbiAgICAgIH1cblxuICAgICAgbWFya2VyID0gY29uc3RhbnRzLmh0bWxDb21wbGV0ZVxuICAgICAgLy8gRG8gbm90IHN1cHBvcnQgY29tcGxldGUgSFRNTCB3aGVuIGludGVycnVwdGluZy5cbiAgICAgIHJldHVybiBzZWxmLmludGVycnVwdCAmJiAhc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdXG4gICAgICAgID8gbm9rKGNvZGUpXG4gICAgICAgIDogY2xvc2luZ1RhZ1xuICAgICAgICA/IGNvbXBsZXRlQ2xvc2luZ1RhZ0FmdGVyKGNvZGUpXG4gICAgICAgIDogY29tcGxldGVBdHRyaWJ1dGVOYW1lQmVmb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gQVNDSUkgYWxwaGFudW1lcmljYWwgYW5kIGAtYC5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZGFzaCB8fCBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBidWZmZXIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ05hbWVcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgY2xvc2luZyBzbGFzaCBvZiBhIGJhc2ljIHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGRpdi8+XG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2ljU2VsZkNsb3NpbmcoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAvLyAvLyBEbyBub3QgZm9ybSBjb250YWluZXJzLlxuICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2sgOiBjb250aW51YXRpb25cbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgY2xvc2luZyBzbGFzaCBvZiBhIGNvbXBsZXRlIHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHgvPlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVDbG9zaW5nVGFnQWZ0ZXIoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21wbGV0ZUNsb3NpbmdUYWdBZnRlclxuICAgIH1cblxuICAgIHJldHVybiBjb21wbGV0ZUVuZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGFuIGF0dHJpYnV0ZSBuYW1lLlxuICAgKlxuICAgKiBBdCBmaXJzdCwgdGhpcyBzdGF0ZSBpcyB1c2VkIGFmdGVyIGEgY29tcGxldGUgdGFnIG5hbWUsIGFmdGVyIHdoaXRlc3BhY2UsXG4gICAqIHdoZXJlIGl0IGV4cGVjdHMgb3B0aW9uYWwgYXR0cmlidXRlcyBvciB0aGUgZW5kIG9mIHRoZSB0YWcuXG4gICAqIEl0IGlzIGFsc28gcmV1c2VkIGFmdGVyIGF0dHJpYnV0ZXMsIHdoZW4gZXhwZWN0aW5nIG1vcmUgb3B0aW9uYWxcbiAgICogYXR0cmlidXRlcy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIC8+XG4gICAqICAgICAgICBeXG4gICAqID4gfCA8YSA6Yj5cbiAgICogICAgICAgIF5cbiAgICogPiB8IDxhIF9iPlxuICAgKiAgICAgICAgXlxuICAgKiA+IHwgPGEgYj5cbiAgICogICAgICAgIF5cbiAgICogPiB8IDxhID5cbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQXR0cmlidXRlTmFtZUJlZm9yZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnNsYXNoKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21wbGV0ZUVuZFxuICAgIH1cblxuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpY2FsIGFuZCBgOmAgYW5kIGBfYC5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuY29sb24gfHwgY29kZSA9PT0gY29kZXMudW5kZXJzY29yZSB8fCBhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVcbiAgICB9XG5cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVOYW1lQmVmb3JlXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBsZXRlRW5kKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gYXR0cmlidXRlIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSA6Yj5cbiAgICogICAgICAgICBeXG4gICAqID4gfCA8YSBfYj5cbiAgICogICAgICAgICBeXG4gICAqID4gfCA8YSBiPlxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQXR0cmlidXRlTmFtZShjb2RlKSB7XG4gICAgLy8gQVNDSUkgYWxwaGFudW1lcmljYWwgYW5kIGAtYCwgYC5gLCBgOmAsIGFuZCBgX2AuXG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMuZGFzaCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZG90IHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5jb2xvbiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMudW5kZXJzY29yZSB8fFxuICAgICAgYXNjaWlBbHBoYW51bWVyaWMoY29kZSlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZVxuICAgIH1cblxuICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVBZnRlcihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGF0dHJpYnV0ZSBuYW1lLCBhdCBhbiBvcHRpb25hbCBpbml0aWFsaXplciwgdGhlIGVuZCBvZiB0aGUgdGFnLCBvclxuICAgKiB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGEgYj5cbiAgICogICAgICAgICBeXG4gICAqID4gfCA8YSBiPWM+XG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBdHRyaWJ1dGVOYW1lQWZ0ZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lcXVhbHNUbykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZUJlZm9yZVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVBZnRlclxuICAgIH1cblxuICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVCZWZvcmUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgdW5xdW90ZWQsIGRvdWJsZSBxdW90ZWQsIG9yIHNpbmdsZSBxdW90ZWQgYXR0cmlidXRlIHZhbHVlLCBhbGxvd2luZ1xuICAgKiB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGEgYj1jPlxuICAgKiAgICAgICAgICBeXG4gICAqID4gfCA8YSBiPVwiY1wiPlxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlQmVmb3JlKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlc3NUaGFuIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5lcXVhbHNUbyB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4gfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmdyYXZlQWNjZW50XG4gICAgKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnF1b3RhdGlvbk1hcmsgfHwgY29kZSA9PT0gY29kZXMuYXBvc3Ryb3BoZSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBtYXJrZXJCID0gY29kZVxuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVRdW90ZWRcbiAgICB9XG5cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZUJlZm9yZVxuICAgIH1cblxuICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBkb3VibGUgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSBiPVwiY1wiPlxuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgPGEgYj0nYyc+XG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyQikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBtYXJrZXJCID0gbnVsbFxuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVRdW90ZWRBZnRlclxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVRdW90ZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSBiPWM+XG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMuZW9mIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5xdW90YXRpb25NYXJrIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5hcG9zdHJvcGhlIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5zbGFzaCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMubGVzc1RoYW4gfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVxdWFsc1RvIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZ3JhdmVBY2NlbnQgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVBZnRlcihjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkb3VibGUgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUsIGJlZm9yZSB3aGl0ZXNwYWNlIG9yIHRoZVxuICAgKiBlbmQgb2YgdGhlIHRhZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIGI9XCJjXCI+XG4gICAqICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVF1b3RlZEFmdGVyKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5zbGFzaCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4gfHxcbiAgICAgIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVCZWZvcmUoY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzIG9mIGEgY29tcGxldGUgdGFnIHdoZXJlIG9ubHkgYW4gYD5gIGlzIGFsbG93ZWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSBiPVwiY1wiPlxuICAgKiAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21wbGV0ZUVuZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmdyZWF0ZXJUaGFuKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21wbGV0ZUFmdGVyXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA+YCBpbiBhIGNvbXBsZXRlIHRhZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDx4PlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBZnRlcihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmVvZiB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAvLyB0b2tlbml6ZXIuY29uY3JldGUgPSB0cnVlXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbXBsZXRlQWZ0ZXJcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY29udGludWF0aW9uIG9mIGFueSBIVE1MIGtpbmQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IS0teHh4LS0+XG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRpbnVhdGlvbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRhc2ggJiYgbWFya2VyID09PSBjb25zdGFudHMuaHRtbENvbW1lbnQpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNvbW1lbnRJbnNpZGVcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMubGVzc1RoYW4gJiYgbWFya2VyID09PSBjb25zdGFudHMuaHRtbFJhdykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29udGludWF0aW9uUmF3VGFnT3BlblxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbiAmJiBtYXJrZXIgPT09IGNvbnN0YW50cy5odG1sRGVjbGFyYXRpb24pIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNsb3NlXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnF1ZXN0aW9uTWFyayAmJiBtYXJrZXIgPT09IGNvbnN0YW50cy5odG1sSW5zdHJ1Y3Rpb24pIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCAmJiBtYXJrZXIgPT09IGNvbnN0YW50cy5odG1sQ2RhdGEpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNkYXRhSW5zaWRlXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpICYmXG4gICAgICAobWFya2VyID09PSBjb25zdGFudHMuaHRtbEJhc2ljIHx8IG1hcmtlciA9PT0gY29uc3RhbnRzLmh0bWxDb21wbGV0ZSlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5odG1sRmxvd0RhdGEpXG4gICAgICByZXR1cm4gZWZmZWN0cy5jaGVjayhcbiAgICAgICAgYmxhbmtMaW5lQmVmb3JlLFxuICAgICAgICBjb250aW51YXRpb25BZnRlcixcbiAgICAgICAgY29udGludWF0aW9uU3RhcnRcbiAgICAgICkoY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmh0bWxGbG93RGF0YSlcbiAgICAgIHJldHVybiBjb250aW51YXRpb25TdGFydChjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb250aW51YXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb250aW51YXRpb24sIGF0IGVvbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDx4PlxuICAgKiAgICAgICAgXlxuICAgKiAgIHwgYXNkXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25TdGFydChjb2RlKSB7XG4gICAgcmV0dXJuIGVmZmVjdHMuY2hlY2soXG4gICAgICBub25MYXp5Q29udGludWF0aW9uU3RhcnQsXG4gICAgICBjb250aW51YXRpb25TdGFydE5vbkxhenksXG4gICAgICBjb250aW51YXRpb25BZnRlclxuICAgICkoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb250aW51YXRpb24sIGF0IGVvbCwgYmVmb3JlIG5vbi1sYXp5IGNvbnRlbnQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8eD5cbiAgICogICAgICAgIF5cbiAgICogICB8IGFzZFxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGludWF0aW9uU3RhcnROb25MYXp5KGNvZGUpIHtcbiAgICBhc3NlcnQobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMubGluZUVuZGluZylcbiAgICByZXR1cm4gY29udGludWF0aW9uQmVmb3JlXG4gIH1cblxuICAvKipcbiAgICogSW4gY29udGludWF0aW9uLCBiZWZvcmUgbm9uLWxhenkgY29udGVudC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IDx4PlxuICAgKiA+IHwgYXNkXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25CZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gY29udGludWF0aW9uU3RhcnQoY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmh0bWxGbG93RGF0YSlcbiAgICByZXR1cm4gY29udGludWF0aW9uKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY29tbWVudCBjb250aW51YXRpb24sIGFmdGVyIG9uZSBgLWAsIGV4cGVjdGluZyBhbm90aGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPCEtLXh4eC0tPlxuICAgKiAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25Db21tZW50SW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZGFzaCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29udGludWF0aW9uRGVjbGFyYXRpb25JbnNpZGVcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gcmF3IGNvbnRpbnVhdGlvbiwgYWZ0ZXIgYDxgLCBhdCBgL2AuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8c2NyaXB0PmNvbnNvbGUubG9nKDEpPC9zY3JpcHQ+XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRpbnVhdGlvblJhd1RhZ09wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5zbGFzaCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBidWZmZXIgPSAnJ1xuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvblJhd0VuZFRhZ1xuICAgIH1cblxuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByYXcgY29udGludWF0aW9uLCBhZnRlciBgPC9gLCBpbiBhIHJhdyB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxzY3JpcHQ+Y29uc29sZS5sb2coMSk8L3NjcmlwdD5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGludWF0aW9uUmF3RW5kVGFnKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBidWZmZXIudG9Mb3dlckNhc2UoKVxuXG4gICAgICBpZiAoaHRtbFJhd05hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uQ2xvc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjb2RlKVxuICAgIH1cblxuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpICYmIGJ1ZmZlci5sZW5ndGggPCBjb25zdGFudHMuaHRtbFJhd1NpemVNYXgpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbm90IG51bGwuXG4gICAgICBidWZmZXIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvblJhd0VuZFRhZ1xuICAgIH1cblxuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjZGF0YSBjb250aW51YXRpb24sIGFmdGVyIGBdYCwgZXhwZWN0aW5nIGBdPmAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IVtDREFUQVs+JjxdXT5cbiAgICogICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25DZGF0YUluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29udGludWF0aW9uRGVjbGFyYXRpb25JbnNpZGVcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gZGVjbGFyYXRpb24gb3IgaW5zdHJ1Y3Rpb24gY29udGludWF0aW9uLCBhdCBgPmAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IS0tPlxuICAgKiAgICAgICAgIF5cbiAgICogPiB8IDw/PlxuICAgKiAgICAgICBeXG4gICAqID4gfCA8IXE+XG4gICAqICAgICAgICBeXG4gICAqID4gfCA8IS0tYWItLT5cbiAgICogICAgICAgICAgICAgXlxuICAgKiA+IHwgPCFbQ0RBVEFbPiY8XV0+XG4gICAqICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNsb3NlXG4gICAgfVxuXG4gICAgLy8gTW9yZSBkYXNoZXMuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRhc2ggJiYgbWFya2VyID09PSBjb25zdGFudHMuaHRtbENvbW1lbnQpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNsb3NlZCBjb250aW51YXRpb246IGV2ZXJ5dGhpbmcgd2UgZ2V0IHVudGlsIHRoZSBlb2wvZW9mIGlzIHBhcnQgb2YgaXQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IWRvY3R5cGU+XG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGludWF0aW9uQ2xvc2UoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuaHRtbEZsb3dEYXRhKVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkFmdGVyKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNsb3NlXG4gIH1cblxuICAvKipcbiAgICogRG9uZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDwhZG9jdHlwZT5cbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25BZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmh0bWxGbG93KVxuICAgIC8vIC8vIEZlZWwgZnJlZSB0byBpbnRlcnJ1cHQuXG4gICAgLy8gdG9rZW5pemVyLmludGVycnVwdCA9IGZhbHNlXG4gICAgLy8gLy8gTm8gbG9uZ2VyIGNvbmNyZXRlLlxuICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IGZhbHNlXG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uU3RhcnQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBBdCBlb2wsIGJlZm9yZSBjb250aW51YXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqIGBgYGpzXG4gICAqICAgICAgICAgICAgXlxuICAgKiAgIHwgYlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgICByZXR1cm4gYWZ0ZXJcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQSBjb250aW51YXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCAqIGBgYGpzXG4gICAqID4gfCBiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgcmV0dXJuIHNlbGYucGFyc2VyLmxhenlbc2VsZi5ub3coKS5saW5lXSA/IG5vayhjb2RlKSA6IG9rKGNvZGUpXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVCbGFua0xpbmVCZWZvcmUoZWZmZWN0cywgb2ssIG5vaykge1xuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogQmVmb3JlIGVvbCwgZXhwZWN0aW5nIGJsYW5rIGxpbmUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8ZGl2PlxuICAgKiAgICAgICAgICBeXG4gICAqICAgfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGFzc2VydChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSksICdleHBlY3RlZCBhIGxpbmUgZW5kaW5nJylcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgcmV0dXJuIGVmZmVjdHMuYXR0ZW1wdChibGFua0xpbmUsIG9rLCBub2spXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJhc2NpaUFscGhhIiwiYXNjaWlBbHBoYW51bWVyaWMiLCJtYXJrZG93bkxpbmVFbmRpbmciLCJtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIiwibWFya2Rvd25TcGFjZSIsImh0bWxCbG9ja05hbWVzIiwiaHRtbFJhd05hbWVzIiwiY29kZXMiLCJjb25zdGFudHMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiYmxhbmtMaW5lIiwiaHRtbEZsb3ciLCJuYW1lIiwidG9rZW5pemUiLCJ0b2tlbml6ZUh0bWxGbG93IiwicmVzb2x2ZVRvIiwicmVzb2x2ZVRvSHRtbEZsb3ciLCJjb25jcmV0ZSIsImJsYW5rTGluZUJlZm9yZSIsInRva2VuaXplQmxhbmtMaW5lQmVmb3JlIiwicGFydGlhbCIsIm5vbkxhenlDb250aW51YXRpb25TdGFydCIsInRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvblN0YXJ0IiwiZXZlbnRzIiwiaW5kZXgiLCJsZW5ndGgiLCJ0eXBlIiwibGluZVByZWZpeCIsInN0YXJ0Iiwic3BsaWNlIiwiZWZmZWN0cyIsIm5vayIsInNlbGYiLCJtYXJrZXIiLCJjbG9zaW5nVGFnIiwiYnVmZmVyIiwibWFya2VyQiIsImNvZGUiLCJiZWZvcmUiLCJsZXNzVGhhbiIsImVudGVyIiwiaHRtbEZsb3dEYXRhIiwiY29uc3VtZSIsIm9wZW4iLCJleGNsYW1hdGlvbk1hcmsiLCJkZWNsYXJhdGlvbk9wZW4iLCJzbGFzaCIsInRhZ0Nsb3NlU3RhcnQiLCJxdWVzdGlvbk1hcmsiLCJodG1sSW5zdHJ1Y3Rpb24iLCJpbnRlcnJ1cHQiLCJjb250aW51YXRpb25EZWNsYXJhdGlvbkluc2lkZSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsInRhZ05hbWUiLCJkYXNoIiwiaHRtbENvbW1lbnQiLCJjb21tZW50T3Blbkluc2lkZSIsImxlZnRTcXVhcmVCcmFja2V0IiwiaHRtbENkYXRhIiwiY2RhdGFPcGVuSW5zaWRlIiwiaHRtbERlY2xhcmF0aW9uIiwidmFsdWUiLCJjZGF0YU9wZW5pbmdTdHJpbmciLCJjaGFyQ29kZUF0IiwiY29udGludWF0aW9uIiwiZW9mIiwiZ3JlYXRlclRoYW4iLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiaHRtbFJhdyIsImh0bWxCYXNpYyIsImJhc2ljU2VsZkNsb3NpbmciLCJodG1sQ29tcGxldGUiLCJwYXJzZXIiLCJsYXp5Iiwibm93IiwibGluZSIsImNvbXBsZXRlQ2xvc2luZ1RhZ0FmdGVyIiwiY29tcGxldGVBdHRyaWJ1dGVOYW1lQmVmb3JlIiwiY29tcGxldGVFbmQiLCJjb2xvbiIsInVuZGVyc2NvcmUiLCJjb21wbGV0ZUF0dHJpYnV0ZU5hbWUiLCJkb3QiLCJjb21wbGV0ZUF0dHJpYnV0ZU5hbWVBZnRlciIsImVxdWFsc1RvIiwiY29tcGxldGVBdHRyaWJ1dGVWYWx1ZUJlZm9yZSIsImdyYXZlQWNjZW50IiwicXVvdGF0aW9uTWFyayIsImFwb3N0cm9waGUiLCJjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlUXVvdGVkIiwiY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkIiwiY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVF1b3RlZEFmdGVyIiwiY29tcGxldGVBZnRlciIsImNvbnRpbnVhdGlvbkNvbW1lbnRJbnNpZGUiLCJjb250aW51YXRpb25SYXdUYWdPcGVuIiwiY29udGludWF0aW9uQ2xvc2UiLCJyaWdodFNxdWFyZUJyYWNrZXQiLCJjb250aW51YXRpb25DZGF0YUluc2lkZSIsImV4aXQiLCJjaGVjayIsImNvbnRpbnVhdGlvbkFmdGVyIiwiY29udGludWF0aW9uU3RhcnQiLCJjb250aW51YXRpb25TdGFydE5vbkxhenkiLCJsaW5lRW5kaW5nIiwiY29udGludWF0aW9uQmVmb3JlIiwiY29udGludWF0aW9uUmF3RW5kVGFnIiwiaHRtbFJhd1NpemVNYXgiLCJhZnRlciIsImF0dGVtcHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/html-flow.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/html-text.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/html-text.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ htmlText: () => (/* binding */ htmlText)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n/** @type {Construct} */ const htmlText = {\n name: \"htmlText\",\n tokenize: tokenizeHtmlText\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code> | undefined} */ let marker;\n /** @type {number} */ let index;\n /** @type {State} */ let returnState;\n return start;\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, \"expected `<`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.htmlText);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData);\n effects.consume(code);\n return open;\n }\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */ function open(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.exclamationMark) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {\n effects.consume(code);\n return instruction;\n }\n // ASCII alphabetical.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */ function declarationOpen(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */ function commentOpenInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */ function comment(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {\n effects.consume(code);\n return commentClose;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */ function commentClose(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */ function commentEnd(code) {\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ? end(code) : code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash ? commentClose(code) : comment(code);\n }\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */ function cdataOpenInside(code) {\n const value = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.cdataOpeningString;\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */ function cdata(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n effects.consume(code);\n return cdataClose;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */ function cdataClose(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */ function cdataEnd(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {\n return end(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */ function declaration(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {\n return end(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */ function instruction(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {\n effects.consume(code);\n return instructionClose;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */ function instructionClose(code) {\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ? end(code) : instruction(code);\n }\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */ function tagCloseStart(code) {\n // ASCII alphabetical.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */ function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */ function tagCloseBetween(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */ function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.slash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */ function tagOpenBetween(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {\n effects.consume(code);\n return end;\n }\n // ASCII alphabetical and `:` and `_`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.colon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */ function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dot || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.colon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */ function tagOpenAttributeNameAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */ function tagOpenAttributeValueBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.apostrophe) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */ function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n return nok(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */ function tagOpenAttributeValueUnquoted(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.apostrophe || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.slash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */ function tagOpenAttributeValueQuotedAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.slash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */ function end(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.htmlText);\n return ok;\n }\n return nok(code);\n }\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */ function lineEndingBefore(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(returnState, \"expected return state\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), \"expected eol\");\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n return lineEndingAfter;\n }\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */ function lineEndingAfter(code) {\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(self.parser.constructs.disable.null, \"expected `disable.null` to be populated\");\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, lineEndingAfterPrefix, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix, self.parser.constructs.disable.null.includes(\"codeIndented\") ? undefined : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize)(code) : lineEndingAfterPrefix(code);\n }\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */ function lineEndingAfterPrefix(code) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData);\n return returnState(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9odG1sLXRleHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7Ozs7Q0FNQyxHQUVtRDtBQU9uQjtBQUM0QjtBQUMxQjtBQUVuQyxzQkFBc0IsR0FDZixNQUFNVyxXQUFXO0lBQUNDLE1BQU07SUFBWUMsVUFBVUM7QUFBZ0IsRUFBQztBQUV0RTs7O0NBR0MsR0FDRCxTQUFTQSxpQkFBaUJDLE9BQU8sRUFBRU4sRUFBRSxFQUFFTyxHQUFHO0lBQ3hDLE1BQU1DLE9BQU8sSUFBSTtJQUNqQiwwQ0FBMEMsR0FDMUMsSUFBSUM7SUFDSixtQkFBbUIsR0FDbkIsSUFBSUM7SUFDSixrQkFBa0IsR0FDbEIsSUFBSUM7SUFFSixPQUFPQztJQUVQOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLE1BQU1DLElBQUk7UUFDakJaLDBDQUFNQSxDQUFDWSxTQUFTaEIsd0RBQUtBLENBQUNpQixRQUFRLEVBQUU7UUFDaENSLFFBQVFTLEtBQUssQ0FBQ2hCLHdEQUFLQSxDQUFDRyxRQUFRO1FBQzVCSSxRQUFRUyxLQUFLLENBQUNoQix3REFBS0EsQ0FBQ2lCLFlBQVk7UUFDaENWLFFBQVFXLE9BQU8sQ0FBQ0o7UUFDaEIsT0FBT0s7SUFDVDtJQUVBOzs7Ozs7Ozs7Ozs7O0dBYUMsR0FDRCxTQUFTQSxLQUFLTCxJQUFJO1FBQ2hCLElBQUlBLFNBQVNoQix3REFBS0EsQ0FBQ3NCLGVBQWUsRUFBRTtZQUNsQ2IsUUFBUVcsT0FBTyxDQUFDSjtZQUNoQixPQUFPTztRQUNUO1FBRUEsSUFBSVAsU0FBU2hCLHdEQUFLQSxDQUFDd0IsS0FBSyxFQUFFO1lBQ3hCZixRQUFRVyxPQUFPLENBQUNKO1lBQ2hCLE9BQU9TO1FBQ1Q7UUFFQSxJQUFJVCxTQUFTaEIsd0RBQUtBLENBQUMwQixZQUFZLEVBQUU7WUFDL0JqQixRQUFRVyxPQUFPLENBQUNKO1lBQ2hCLE9BQU9XO1FBQ1Q7UUFF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bW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2Rldi9saWIvaHRtbC10ZXh0LmpzPzc2ODQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHtcbiAgYXNjaWlBbHBoYSxcbiAgYXNjaWlBbHBoYW51bWVyaWMsXG4gIG1hcmtkb3duTGluZUVuZGluZyxcbiAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSxcbiAgbWFya2Rvd25TcGFjZVxufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge2NvZGVzLCBjb25zdGFudHMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBodG1sVGV4dCA9IHtuYW1lOiAnaHRtbFRleHQnLCB0b2tlbml6ZTogdG9rZW5pemVIdG1sVGV4dH1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVIdG1sVGV4dChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIC8qKiBAdHlwZSB7Tm9uTnVsbGFibGU8Q29kZT4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBtYXJrZXJcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBpbmRleFxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBsZXQgcmV0dXJuU3RhdGVcblxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgSFRNTCAodGV4dCkuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiPiBjXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBhc3NlcnQoY29kZSA9PT0gY29kZXMubGVzc1RoYW4sICdleHBlY3RlZCBgPGAnKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuaHRtbFRleHQpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5odG1sVGV4dERhdGEpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIG9wZW5cbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPGAsIGF0IHRhZyBuYW1lIG9yIG90aGVyIHN0dWZmLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8Yj4gY1xuICAgKiAgICAgICAgXlxuICAgKiA+IHwgYSA8IWRvY3R5cGU+IGNcbiAgICogICAgICAgIF5cbiAgICogPiB8IGEgPCEtLWItLT4gY1xuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gb3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmV4Y2xhbWF0aW9uTWFyaykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gZGVjbGFyYXRpb25PcGVuXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnNsYXNoKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0YWdDbG9zZVN0YXJ0XG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnF1ZXN0aW9uTWFyaykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gaW5zdHJ1Y3Rpb25cbiAgICB9XG5cbiAgICAvLyBBU0NJSSBhbHBoYWJldGljYWwuXG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5cbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwhYCwgYXQgZGVjbGFyYXRpb24sIGNvbW1lbnQsIG9yIENEQVRBLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IWRvY3R5cGU+IGNcbiAgICogICAgICAgICBeXG4gICAqID4gfCBhIDwhLS1iLS0+IGNcbiAgICogICAgICAgICBeXG4gICAqID4gfCBhIDwhW0NEQVRBWz4mPF1dPiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZGVjbGFyYXRpb25PcGVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZGFzaCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tbWVudE9wZW5JbnNpZGVcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMubGVmdFNxdWFyZUJyYWNrZXQpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgaW5kZXggPSAwXG4gICAgICByZXR1cm4gY2RhdGFPcGVuSW5zaWRlXG4gICAgfVxuXG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGEgY29tbWVudCwgYWZ0ZXIgYDwhLWAsIGF0IGFub3RoZXIgYC1gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbW1lbnRPcGVuSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZGFzaCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29tbWVudEVuZFxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb21tZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRhc2gpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNvbW1lbnRDbG9zZVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVyblN0YXRlID0gY29tbWVudFxuICAgICAgcmV0dXJuIGxpbmVFbmRpbmdCZWZvcmUoY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gY29tbWVudFxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNvbW1lbnQsIGFmdGVyIGAtYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPCEtLWItLT4gY1xuICAgKiAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50Q2xvc2UoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5kYXNoKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjb21tZW50RW5kXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbW1lbnQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb21tZW50LCBhZnRlciBgLS1gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50RW5kKGNvZGUpIHtcbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW5cbiAgICAgID8gZW5kKGNvZGUpXG4gICAgICA6IGNvZGUgPT09IGNvZGVzLmRhc2hcbiAgICAgID8gY29tbWVudENsb3NlKGNvZGUpXG4gICAgICA6IGNvbW1lbnQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPCFbYCwgaW4gQ0RBVEEsIGV4cGVjdGluZyBgQ0RBVEFbYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPCFbQ0RBVEFbPiY8XV0+IGJcbiAgICogICAgICAgICAgXl5eXl5eXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjZGF0YU9wZW5JbnNpZGUoY29kZSkge1xuICAgIGNvbnN0IHZhbHVlID0gY29uc3RhbnRzLmNkYXRhT3BlbmluZ1N0cmluZ1xuXG4gICAgaWYgKGNvZGUgPT09IHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgrKykpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGluZGV4ID09PSB2YWx1ZS5sZW5ndGggPyBjZGF0YSA6IGNkYXRhT3Blbkluc2lkZVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBDREFUQS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPCFbQ0RBVEFbPiY8XV0+IGJcbiAgICogICAgICAgICAgICAgICAgXl5eXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjZGF0YShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmVvZikge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5yaWdodFNxdWFyZUJyYWNrZXQpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGNkYXRhQ2xvc2VcbiAgICB9XG5cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IGNkYXRhXG4gICAgICByZXR1cm4gbGluZUVuZGluZ0JlZm9yZShjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEluIENEQVRBLCBhZnRlciBgXWAsIGF0IGFub3RoZXIgYF1gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IVtDREFUQVs+JjxdXT4gYlxuICAgKiAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2RhdGFDbG9zZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY2RhdGFFbmRcbiAgICB9XG5cbiAgICByZXR1cm4gY2RhdGEoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBDREFUQSwgYWZ0ZXIgYF1dYCwgYXQgYD5gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IVtDREFUQVs+JjxdXT4gYlxuICAgKiAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNkYXRhRW5kKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICAgIHJldHVybiBlbmQoY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBjZGF0YUVuZFxuICAgIH1cblxuICAgIHJldHVybiBjZGF0YShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGRlY2xhcmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IWI+IGNcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZGVjbGFyYXRpb24oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICAgIHJldHVybiBlbmQoY29kZSlcbiAgICB9XG5cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IGRlY2xhcmF0aW9uXG4gICAgICByZXR1cm4gbGluZUVuZGluZ0JlZm9yZShjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBkZWNsYXJhdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIEluIGluc3RydWN0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8P2I/PiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5zdHJ1Y3Rpb24oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YpIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMucXVlc3Rpb25NYXJrKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBpbnN0cnVjdGlvbkNsb3NlXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSBpbnN0cnVjdGlvblxuICAgICAgcmV0dXJuIGxpbmVFbmRpbmdCZWZvcmUoY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gaW5zdHJ1Y3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBpbnN0cnVjdGlvbiwgYWZ0ZXIgYD9gLCBhdCBgPmAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDw/Yj8+IGNcbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc3RydWN0aW9uQ2xvc2UoY29kZSkge1xuICAgIHJldHVybiBjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbiA/IGVuZChjb2RlKSA6IGluc3RydWN0aW9uKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwvYCwgaW4gY2xvc2luZyB0YWcsIGF0IHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8L2I+IGNcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdDbG9zZVN0YXJ0KGNvZGUpIHtcbiAgICAvLyBBU0NJSSBhbHBoYWJldGljYWwuXG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ0Nsb3NlXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8L3hgLCBpbiBhIHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8L2I+IGNcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnQ2xvc2UoY29kZSkge1xuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpY2FsIGFuZCBgLWAuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRhc2ggfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ0Nsb3NlXG4gICAgfVxuXG4gICAgcmV0dXJuIHRhZ0Nsb3NlQmV0d2Vlbihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNsb3NpbmcgdGFnLCBhZnRlciB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPC9iPiBjXG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ0Nsb3NlQmV0d2Vlbihjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSB0YWdDbG9zZUJldHdlZW5cbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ0Nsb3NlQmV0d2VlblxuICAgIH1cblxuICAgIHJldHVybiBlbmQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPHhgLCBpbiBvcGVuaW5nIHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8Yj4gY1xuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW4oY29kZSkge1xuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpY2FsIGFuZCBgLWAuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRhc2ggfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5zbGFzaCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4gfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0YWdPcGVuQmV0d2Vlbihjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIHRhZywgYWZ0ZXIgdGFnIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiPiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3BlbkJldHdlZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5zbGFzaCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gZW5kXG4gICAgfVxuXG4gICAgLy8gQVNDSUkgYWxwaGFiZXRpY2FsIGFuZCBgOmAgYW5kIGBfYC5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuY29sb24gfHwgY29kZSA9PT0gY29kZXMudW5kZXJzY29yZSB8fCBhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlTmFtZVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVyblN0YXRlID0gdGFnT3BlbkJldHdlZW5cbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5CZXR3ZWVuXG4gICAgfVxuXG4gICAgcmV0dXJuIGVuZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGF0dHJpYnV0ZSBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8YiBjPiBkXG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW5BdHRyaWJ1dGVOYW1lKGNvZGUpIHtcbiAgICAvLyBBU0NJSSBhbHBoYWJldGljYWwgYW5kIGAtYCwgYC5gLCBgOmAsIGFuZCBgX2AuXG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMuZGFzaCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZG90IHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5jb2xvbiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMudW5kZXJzY29yZSB8fFxuICAgICAgYXNjaWlBbHBoYW51bWVyaWMoY29kZSlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVOYW1lXG4gICAgfVxuXG4gICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVOYW1lQWZ0ZXIoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBhdHRyaWJ1dGUgbmFtZSwgYmVmb3JlIGluaXRpYWxpemVyLCB0aGUgZW5kIG9mIHRoZSB0YWcsIG9yXG4gICAqIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiIGM+IGRcbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW5BdHRyaWJ1dGVOYW1lQWZ0ZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lcXVhbHNUbykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlQmVmb3JlXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSB0YWdPcGVuQXR0cmlidXRlTmFtZUFmdGVyXG4gICAgICByZXR1cm4gbGluZUVuZGluZ0JlZm9yZShjb2RlKVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlTmFtZUFmdGVyXG4gICAgfVxuXG4gICAgcmV0dXJuIHRhZ09wZW5CZXR3ZWVuKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQmVmb3JlIHVucXVvdGVkLCBkb3VibGUgcXVvdGVkLCBvciBzaW5nbGUgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSwgYWxsb3dpbmdcbiAgICogd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPGIgYz1kPiBlXG4gICAqICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlQmVmb3JlKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlc3NUaGFuIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5lcXVhbHNUbyB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4gfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmdyYXZlQWNjZW50XG4gICAgKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnF1b3RhdGlvbk1hcmsgfHwgY29kZSA9PT0gY29kZXMuYXBvc3Ryb3BoZSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBtYXJrZXIgPSBjb2RlXG4gICAgICByZXR1cm4gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlUXVvdGVkXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSB0YWdPcGVuQXR0cmlidXRlVmFsdWVCZWZvcmVcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZUJlZm9yZVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlVmFsdWVVbnF1b3RlZFxuICB9XG5cbiAgLyoqXG4gICAqIEluIGRvdWJsZSBvciBzaW5nbGUgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPGIgYz1cImRcIj4gZVxuICAgKiAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdPcGVuQXR0cmlidXRlVmFsdWVRdW90ZWQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgbWFya2VyID0gdW5kZWZpbmVkXG4gICAgICByZXR1cm4gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlUXVvdGVkQWZ0ZXJcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSB0YWdPcGVuQXR0cmlidXRlVmFsdWVRdW90ZWRcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVF1b3RlZFxuICB9XG5cbiAgLyoqXG4gICAqIEluIHVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPGIgYz1kPiBlXG4gICAqICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMucXVvdGF0aW9uTWFyayB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuYXBvc3Ryb3BoZSB8fFxuICAgICAgY29kZSA9PT0gY29kZXMubGVzc1RoYW4gfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVxdWFsc1RvIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5ncmF2ZUFjY2VudFxuICAgICkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLnNsYXNoIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbiB8fFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRhZ09wZW5CZXR3ZWVuKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVVucXVvdGVkXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZG91YmxlIG9yIHNpbmdsZSBxdW90ZWQgYXR0cmlidXRlIHZhbHVlLCBiZWZvcmUgd2hpdGVzcGFjZSBvciB0aGUgZW5kXG4gICAqIG9mIHRoZSB0YWcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiIGM9XCJkXCI+IGVcbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdPcGVuQXR0cmlidXRlVmFsdWVRdW90ZWRBZnRlcihjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMuc2xhc2ggfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmdyZWF0ZXJUaGFuIHx8XG4gICAgICBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGFnT3BlbkJldHdlZW4oY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzIG9mIGEgdGFnIHdoZXJlIG9ubHkgYW4gYD5gIGlzIGFsbG93ZWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiIGM9XCJkXCI+IGVcbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBlbmQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuaHRtbFRleHREYXRhKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmh0bWxUZXh0KVxuICAgICAgcmV0dXJuIG9rXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGVvbC5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiB3ZSBjYW7igJl0IGhhdmUgYmxhbmsgbGluZXMgaW4gdGV4dCwgc28gbm8gbmVlZCB0byB3b3JyeSBhYm91dFxuICAgKiA+IGVtcHR5IHRva2Vucy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPCEtLWFcbiAgICogICAgICAgICAgICBeXG4gICAqICAgfCBiLS0+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpIHtcbiAgICBhc3NlcnQocmV0dXJuU3RhdGUsICdleHBlY3RlZCByZXR1cm4gc3RhdGUnKVxuICAgIGFzc2VydChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSksICdleHBlY3RlZCBlb2wnKVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5odG1sVGV4dERhdGEpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5saW5lRW5kaW5nKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5saW5lRW5kaW5nKVxuICAgIHJldHVybiBsaW5lRW5kaW5nQWZ0ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBlb2wsIGF0IG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogd2UgY2Fu4oCZdCBoYXZlIGJsYW5rIGxpbmVzIGluIHRleHQsIHNvIG5vIG5lZWQgdG8gd29ycnkgYWJvdXRcbiAgICogPiBlbXB0eSB0b2tlbnMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCBhIDwhLS1hXG4gICAqID4gfCBiLS0+XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsaW5lRW5kaW5nQWZ0ZXIoY29kZSkge1xuICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG4gICAgYXNzZXJ0KFxuICAgICAgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwsXG4gICAgICAnZXhwZWN0ZWQgYGRpc2FibGUubnVsbGAgdG8gYmUgcG9wdWxhdGVkJ1xuICAgIClcbiAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKVxuICAgICAgPyBmYWN0b3J5U3BhY2UoXG4gICAgICAgICAgZWZmZWN0cyxcbiAgICAgICAgICBsaW5lRW5kaW5nQWZ0ZXJQcmVmaXgsXG4gICAgICAgICAgdHlwZXMubGluZVByZWZpeCxcbiAgICAgICAgICBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygnY29kZUluZGVudGVkJylcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICA6IGNvbnN0YW50cy50YWJTaXplXG4gICAgICAgICkoY29kZSlcbiAgICAgIDogbGluZUVuZGluZ0FmdGVyUHJlZml4KGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZW9sLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiA+IPCfkYkgKipOb3RlKio6IHdlIGNhbuKAmXQgaGF2ZSBibGFuayBsaW5lcyBpbiB0ZXh0LCBzbyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0XG4gICAqID4gZW1wdHkgdG9rZW5zLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgYSA8IS0tYVxuICAgKiA+IHwgYi0tPlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGluZUVuZGluZ0FmdGVyUHJlZml4KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmh0bWxUZXh0RGF0YSlcbiAgICByZXR1cm4gcmV0dXJuU3RhdGUoY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZhY3RvcnlTcGFjZSIsImFzY2lpQWxwaGEiLCJhc2NpaUFscGhhbnVtZXJpYyIsIm1hcmtkb3duTGluZUVuZGluZyIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCJtYXJrZG93blNwYWNlIiwiY29kZXMiLCJjb25zdGFudHMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiaHRtbFRleHQiLCJuYW1lIiwidG9rZW5pemUiLCJ0b2tlbml6ZUh0bWxUZXh0IiwiZWZmZWN0cyIsIm5vayIsInNlbGYiLCJtYXJrZXIiLCJpbmRleCIsInJldHVyblN0YXRlIiwic3RhcnQiLCJjb2RlIiwibGVzc1RoYW4iLCJlbnRlciIsImh0bWxUZXh0RGF0YSIsImNvbnN1bWUiLCJvcGVuIiwiZXhjbGFtYXRpb25NYXJrIiwiZGVjbGFyYXRpb25PcGVuIiwic2xhc2giLCJ0YWdDbG9zZVN0YXJ0IiwicXVlc3Rpb25NYXJrIiwiaW5zdHJ1Y3Rpb24iLCJ0YWdPcGVuIiwiZGFzaCIsImNvbW1lbnRPcGVuSW5zaWRlIiwibGVmdFNxdWFyZUJyYWNrZXQiLCJjZGF0YU9wZW5JbnNpZGUiLCJkZWNsYXJhdGlvbiIsImNvbW1lbnRFbmQiLCJjb21tZW50IiwiZW9mIiwiY29tbWVudENsb3NlIiwibGluZUVuZGluZ0JlZm9yZSIsImdyZWF0ZXJUaGFuIiwiZW5kIiwidmFsdWUiLCJjZGF0YU9wZW5pbmdTdHJpbmciLCJjaGFyQ29kZUF0IiwibGVuZ3RoIiwiY2RhdGEiLCJyaWdodFNxdWFyZUJyYWNrZXQiLCJjZGF0YUNsb3NlIiwiY2RhdGFFbmQiLCJpbnN0cnVjdGlvbkNsb3NlIiwidGFnQ2xvc2UiLCJ0YWdDbG9zZUJldHdlZW4iLCJ0YWdPcGVuQmV0d2VlbiIsImNvbG9uIiwidW5kZXJzY29yZSIsInRhZ09wZW5BdHRyaWJ1dGVOYW1lIiwiZG90IiwidGFnT3BlbkF0dHJpYnV0ZU5hbWVBZnRlciIsImVxdWFsc1RvIiwidGFnT3BlbkF0dHJpYnV0ZVZhbHVlQmVmb3JlIiwiZ3JhdmVBY2NlbnQiLCJxdW90YXRpb25NYXJrIiwiYXBvc3Ryb3BoZSIsInRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVF1b3RlZCIsInRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVVucXVvdGVkIiwidW5kZWZpbmVkIiwidGFnT3BlbkF0dHJpYnV0ZVZhbHVlUXVvdGVkQWZ0ZXIiLCJleGl0IiwibGluZUVuZGluZyIsImxpbmVFbmRpbmdBZnRlciIsInBhcnNlciIsImNvbnN0cnVjdHMiLCJkaXNhYmxlIiwibnVsbCIsImxpbmVFbmRpbmdBZnRlclByZWZpeCIsImxpbmVQcmVmaXgiLCJpbmNsdWRlcyIsInRhYlNpemUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/html-text.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-end.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/label-end.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ labelEnd: () => (/* binding */ labelEnd)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-destination */ \"(ssr)/../../node_modules/micromark-factory-destination/dev/index.js\");\n/* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-factory-label */ \"(ssr)/../../node_modules/micromark-factory-label/dev/index.js\");\n/* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-factory-title */ \"(ssr)/../../node_modules/micromark-factory-title/dev/index.js\");\n/* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-whitespace */ \"(ssr)/../../node_modules/micromark-factory-whitespace/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ \"(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"(ssr)/../../node_modules/micromark-util-normalize-identifier/dev/index.js\");\n/* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-resolve-all */ \"(ssr)/../../node_modules/micromark-util-resolve-all/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n\n\n\n\n\n\n/** @type {Construct} */ const labelEnd = {\n name: \"labelEnd\",\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\n/** @type {Construct} */ const resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */ const referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */ const referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n/** @type {Resolver} */ function resolveAllLabelEnd(events) {\n let index = -1;\n while(++index < events.length){\n const token = events[index][1];\n if (token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelImage || token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelLink || token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelEnd) {\n // Remove the marker.\n events.splice(index + 1, token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelImage ? 4 : 2);\n token.type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.data;\n index++;\n }\n }\n return events;\n}\n/** @type {Resolver} */ function resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */ let token;\n /** @type {number | undefined} */ let open;\n /** @type {number | undefined} */ let close;\n /** @type {Array<Event>} */ let media;\n // Find an opening.\n while(index--){\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.link || token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelLink && token._inactive) {\n break;\n }\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === \"enter\" && token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelLink) {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === \"enter\" && (token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelImage || token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelLink) && !token._balanced) {\n open = index;\n if (token.type !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelLink) {\n offset = 2;\n break;\n }\n }\n } else if (token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelEnd) {\n close = index;\n }\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(open !== undefined, \"`open` is supposed to be found\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(close !== undefined, \"`close` is supposed to be found\");\n const group = {\n type: events[open][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelLink ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.link : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.image,\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const label = {\n type: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.label,\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n };\n const text = {\n type: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelText,\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n };\n media = [\n [\n \"enter\",\n group,\n context\n ],\n [\n \"enter\",\n label,\n context\n ]\n ];\n // Opening marker.\n media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(open + 1, open + offset + 3));\n // Text open.\n media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [\n [\n \"enter\",\n text,\n context\n ]\n ]);\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(context.parser.constructs.insideSpan.null, \"expected `insideSpan.null` to be populated\");\n // Between.\n media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n // Text close, marker close, label close.\n media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [\n [\n \"exit\",\n text,\n context\n ],\n events[close - 2],\n events[close - 1],\n [\n \"exit\",\n label,\n context\n ]\n ]);\n // Reference, resource, or so.\n media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(close + 1));\n // Media close.\n media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [\n [\n \"exit\",\n group,\n context\n ]\n ]);\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open, events.length, media);\n return events;\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */ let labelStart;\n /** @type {boolean} */ let defined;\n // Find an opening.\n while(index--){\n if ((self.events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelImage || self.events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelLink) && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket, \"expected `]`\");\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes((0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelEnd);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelMarker);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.labelEnd);\n return after;\n }\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n // Resource (`[asd](fgh)`)?\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */ function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */ function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */ function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeResource(effects, ok, nok) {\n return resourceStart;\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */ function resourceStart(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis, \"expected left paren\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resource);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceMarker);\n return resourceBefore;\n }\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */ function resourceBefore(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code) ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceOpen)(code) : resourceOpen(code);\n }\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */ function resourceOpen(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {\n return resourceEnd(code);\n }\n return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__.factoryDestination)(effects, resourceDestinationAfter, resourceDestinationMissing, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceDestination, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceDestinationLiteral, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceDestinationLiteralMarker, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceDestinationRaw, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceDestinationString, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_9__.constants.linkResourceDestinationBalanceMax)(code);\n }\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */ function resourceDestinationAfter(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code) ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceBetween)(code) : resourceEnd(code);\n }\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */ function resourceDestinationMissing(code) {\n return nok(code);\n }\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */ function resourceBetween(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.apostrophe || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis) {\n return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__.factoryTitle)(effects, resourceTitleAfter, nok, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceTitle, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceTitleMarker, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceTitleString)(code);\n }\n return resourceEnd(code);\n }\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */ function resourceTitleAfter(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code) ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceEnd)(code) : resourceEnd(code);\n }\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */ function resourceEnd(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resourceMarker);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.resource);\n return ok;\n }\n return nok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */ function referenceFull(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, \"expected left bracket\");\n return micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__.factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.reference, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.referenceMarker, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.referenceString)(code);\n }\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */ function referenceFullAfter(code) {\n return self.parser.defined.includes((0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */ function referenceFullMissing(code) {\n return nok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */ function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, \"expected left bracket\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.reference);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.referenceMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.referenceMarker);\n return referenceCollapsedOpen;\n }\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */ function referenceCollapsedOpen(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.referenceMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.referenceMarker);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.reference);\n return ok;\n }\n return nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9sYWJlbC1lbmQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7OztDQVFDLEdBRStEO0FBQ1o7QUFDQTtBQUNVO0FBQ0k7QUFDZjtBQUNvQjtBQUNsQjtBQUNRO0FBQzFCO0FBRW5DLHNCQUFzQixHQUNmLE1BQU1jLFdBQVc7SUFDdEJDLE1BQU07SUFDTkMsVUFBVUM7SUFDVkMsV0FBV0M7SUFDWFgsWUFBWVk7QUFDZCxFQUFDO0FBRUQsc0JBQXNCLEdBQ3RCLE1BQU1DLG9CQUFvQjtJQUFDTCxVQUFVTTtBQUFnQjtBQUNyRCxzQkFBc0IsR0FDdEIsTUFBTUMseUJBQXlCO0lBQUNQLFVBQVVRO0FBQXFCO0FBQy9ELHNCQUFzQixHQUN0QixNQUFNQyw4QkFBOEI7SUFBQ1QsVUFBVVU7QUFBMEI7QUFFekUscUJBQXFCLEdBQ3JCLFNBQVNOLG1CQUFtQk8sTUFBTTtJQUNoQyxJQUFJQyxRQUFRLENBQUM7SUFFYixNQUFPLEVBQUVBLFFBQVFELE9BQU9FLE1BQU0sQ0FBRTtRQUM5QixNQUFNQyxRQUFRSCxNQUFNLENBQUNDLE1BQU0sQ0FBQyxFQUFFO1FBRTlCLElBQ0VFLE1BQU1DLElBQUksS0FBS3BCLHdEQUFLQSxDQUFDcUIsVUFBVSxJQUMvQkYsTUFBTUMsSUFBSSxLQUFLcEIsd0RBQUtBLENBQUNzQixTQUFTLElBQzlCSCxNQUFNQyxJQUFJLEtBQUtwQix3REFBS0EsQ0FBQ0csUUFBUSxFQUM3QjtZQUNBLHFCQUFxQjtZQUNyQmEsT0FBT3JCLE1BQU0sQ0FBQ3NCLFFBQVEsR0FBR0UsTUFBTUMsSUFBSSxLQUFLcEIsd0RBQUtBLENBQUNxQixVQUFVLEdBQUcsSUFBSTtZQUMvREYsTUFBTUMsSUFBSSxHQUFHcEIsd0RBQUtBLENBQUN1QixJQUFJO1lBQ3ZCTjtRQUNGO0lBQ0Y7SUFFQSxPQUFPRDtBQUNUO0FBRUEscUJBQXFCLEdB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LGVBQWU7UUFDbEMsT0FBT0c7SUFDVDtJQUVBOzs7Ozs7Ozs7OztHQVdDLEdBQ0QsU0FBU0EsdUJBQXVCOUMsSUFBSTtRQUNsQyxJQUFJQSxTQUFTdEQsd0RBQUtBLENBQUN1RCxrQkFBa0IsRUFBRTtZQUNyQ04sUUFBUVcsS0FBSyxDQUFDMUQsd0RBQUtBLENBQUMrRixlQUFlO1lBQ25DaEQsUUFBUWEsT0FBTyxDQUFDUjtZQUNoQkwsUUFBUWMsSUFBSSxDQUFDN0Qsd0RBQUtBLENBQUMrRixlQUFlO1lBQ2xDaEQsUUFBUWMsSUFBSSxDQUFDN0Qsd0RBQUtBLENBQUM4RixTQUFTO1lBQzVCLE9BQU83RjtRQUNUO1FBRUEsT0FBTytDLElBQUlJO0lBQ2I7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9sYWJlbC1lbmQuanM/MDcxMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlJlc29sdmVyfSBSZXNvbHZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW59IFRva2VuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5RGVzdGluYXRpb259IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LWRlc3RpbmF0aW9uJ1xuaW1wb3J0IHtmYWN0b3J5TGFiZWx9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LWxhYmVsJ1xuaW1wb3J0IHtmYWN0b3J5VGl0bGV9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXRpdGxlJ1xuaW1wb3J0IHtmYWN0b3J5V2hpdGVzcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktd2hpdGVzcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtwdXNoLCBzcGxpY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNodW5rZWQnXG5pbXBvcnQge25vcm1hbGl6ZUlkZW50aWZpZXJ9IGZyb20gJ21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyJ1xuaW1wb3J0IHtyZXNvbHZlQWxsfSBmcm9tICdtaWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbCdcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGxhYmVsRW5kID0ge1xuICBuYW1lOiAnbGFiZWxFbmQnLFxuICB0b2tlbml6ZTogdG9rZW5pemVMYWJlbEVuZCxcbiAgcmVzb2x2ZVRvOiByZXNvbHZlVG9MYWJlbEVuZCxcbiAgcmVzb2x2ZUFsbDogcmVzb2x2ZUFsbExhYmVsRW5kXG59XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuY29uc3QgcmVzb3VyY2VDb25zdHJ1Y3QgPSB7dG9rZW5pemU6IHRva2VuaXplUmVzb3VyY2V9XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IHJlZmVyZW5jZUZ1bGxDb25zdHJ1Y3QgPSB7dG9rZW5pemU6IHRva2VuaXplUmVmZXJlbmNlRnVsbH1cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuY29uc3QgcmVmZXJlbmNlQ29sbGFwc2VkQ29uc3RydWN0ID0ge3Rva2VuaXplOiB0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZH1cblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cbmZ1bmN0aW9uIHJlc29sdmVBbGxMYWJlbEVuZChldmVudHMpIHtcbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICBjb25zdCB0b2tlbiA9IGV2ZW50c1tpbmRleF1bMV1cblxuICAgIGlmIChcbiAgICAgIHRva2VuLnR5cGUgPT09IHR5cGVzLmxhYmVsSW1hZ2UgfHxcbiAgICAgIHRva2VuLnR5cGUgPT09IHR5cGVzLmxhYmVsTGluayB8fFxuICAgICAgdG9rZW4udHlwZSA9PT0gdHlwZXMubGFiZWxFbmRcbiAgICApIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgbWFya2VyLlxuICAgICAgZXZlbnRzLnNwbGljZShpbmRleCArIDEsIHRva2VuLnR5cGUgPT09IHR5cGVzLmxhYmVsSW1hZ2UgPyA0IDogMilcbiAgICAgIHRva2VuLnR5cGUgPSB0eXBlcy5kYXRhXG4gICAgICBpbmRleCsrXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV2ZW50c1xufVxuXG4vKiogQHR5cGUge1Jlc29sdmVyfSAqL1xuZnVuY3Rpb24gcmVzb2x2ZVRvTGFiZWxFbmQoZXZlbnRzLCBjb250ZXh0KSB7XG4gIGxldCBpbmRleCA9IGV2ZW50cy5sZW5ndGhcbiAgbGV0IG9mZnNldCA9IDBcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IHRva2VuXG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgb3BlblxuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGNsb3NlXG4gIC8qKiBAdHlwZSB7QXJyYXk8RXZlbnQ+fSAqL1xuICBsZXQgbWVkaWFcblxuICAvLyBGaW5kIGFuIG9wZW5pbmcuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgdG9rZW4gPSBldmVudHNbaW5kZXhdWzFdXG5cbiAgICBpZiAob3Blbikge1xuICAgICAgLy8gSWYgd2Ugc2VlIGFub3RoZXIgbGluaywgb3IgaW5hY3RpdmUgbGluayBsYWJlbCwgd2XigJl2ZSBiZWVuIGhlcmUgYmVmb3JlLlxuICAgICAgaWYgKFxuICAgICAgICB0b2tlbi50eXBlID09PSB0eXBlcy5saW5rIHx8XG4gICAgICAgICh0b2tlbi50eXBlID09PSB0eXBlcy5sYWJlbExpbmsgJiYgdG9rZW4uX2luYWN0aXZlKVxuICAgICAgKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIC8vIE1hcmsgb3RoZXIgbGluayBvcGVuaW5ncyBhcyBpbmFjdGl2ZSwgYXMgd2UgY2Fu4oCZdCBoYXZlIGxpbmtzIGluXG4gICAgICAvLyBsaW5rcy5cbiAgICAgIGlmIChldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInICYmIHRva2VuLnR5cGUgPT09IHR5cGVzLmxhYmVsTGluaykge1xuICAgICAgICB0b2tlbi5faW5hY3RpdmUgPSB0cnVlXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjbG9zZSkge1xuICAgICAgaWYgKFxuICAgICAgICBldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInICYmXG4gICAgICAgICh0b2tlbi50eXBlID09PSB0eXBlcy5sYWJlbEltYWdlIHx8IHRva2VuLnR5cGUgPT09IHR5cGVzLmxhYmVsTGluaykgJiZcbiAgICAgICAgIXRva2VuLl9iYWxhbmNlZFxuICAgICAgKSB7XG4gICAgICAgIG9wZW4gPSBpbmRleFxuXG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSB0eXBlcy5sYWJlbExpbmspIHtcbiAgICAgICAgICBvZmZzZXQgPSAyXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gdHlwZXMubGFiZWxFbmQpIHtcbiAgICAgIGNsb3NlID0gaW5kZXhcbiAgICB9XG4gIH1cblxuICBhc3NlcnQob3BlbiAhPT0gdW5kZWZpbmVkLCAnYG9wZW5gIGlzIHN1cHBvc2VkIHRvIGJlIGZvdW5kJylcbiAgYXNzZXJ0KGNsb3NlICE9PSB1bmRlZmluZWQsICdgY2xvc2VgIGlzIHN1cHBvc2VkIHRvIGJlIGZvdW5kJylcblxuICBjb25zdCBncm91cCA9IHtcbiAgICB0eXBlOiBldmVudHNbb3Blbl1bMV0udHlwZSA9PT0gdHlwZXMubGFiZWxMaW5rID8gdHlwZXMubGluayA6IHR5cGVzLmltYWdlLFxuICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbb3Blbl1bMV0uc3RhcnQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXVsxXS5lbmQpXG4gIH1cblxuICBjb25zdCBsYWJlbCA9IHtcbiAgICB0eXBlOiB0eXBlcy5sYWJlbCxcbiAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW29wZW5dWzFdLnN0YXJ0KSxcbiAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tjbG9zZV1bMV0uZW5kKVxuICB9XG5cbiAgY29uc3QgdGV4dCA9IHtcbiAgICB0eXBlOiB0eXBlcy5sYWJlbFRleHQsXG4gICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tvcGVuICsgb2Zmc2V0ICsgMl1bMV0uZW5kKSxcbiAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tjbG9zZSAtIDJdWzFdLnN0YXJ0KVxuICB9XG5cbiAgbWVkaWEgPSBbXG4gICAgWydlbnRlcicsIGdyb3VwLCBjb250ZXh0XSxcbiAgICBbJ2VudGVyJywgbGFiZWwsIGNvbnRleHRdXG4gIF1cblxuICAvLyBPcGVuaW5nIG1hcmtlci5cbiAgbWVkaWEgPSBwdXNoKG1lZGlhLCBldmVudHMuc2xpY2Uob3BlbiArIDEsIG9wZW4gKyBvZmZzZXQgKyAzKSlcblxuICAvLyBUZXh0IG9wZW4uXG4gIG1lZGlhID0gcHVzaChtZWRpYSwgW1snZW50ZXInLCB0ZXh0LCBjb250ZXh0XV0pXG5cbiAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cbiAgYXNzZXJ0KFxuICAgIGNvbnRleHQucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLFxuICAgICdleHBlY3RlZCBgaW5zaWRlU3Bhbi5udWxsYCB0byBiZSBwb3B1bGF0ZWQnXG4gIClcbiAgLy8gQmV0d2Vlbi5cbiAgbWVkaWEgPSBwdXNoKFxuICAgIG1lZGlhLFxuICAgIHJlc29sdmVBbGwoXG4gICAgICBjb250ZXh0LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCxcbiAgICAgIGV2ZW50cy5zbGljZShvcGVuICsgb2Zmc2V0ICsgNCwgY2xvc2UgLSAzKSxcbiAgICAgIGNvbnRleHRcbiAgICApXG4gIClcblxuICAvLyBUZXh0IGNsb3NlLCBtYXJrZXIgY2xvc2UsIGxhYmVsIGNsb3NlLlxuICBtZWRpYSA9IHB1c2gobWVkaWEsIFtcbiAgICBbJ2V4aXQnLCB0ZXh0LCBjb250ZXh0XSxcbiAgICBldmVudHNbY2xvc2UgLSAyXSxcbiAgICBldmVudHNbY2xvc2UgLSAxXSxcbiAgICBbJ2V4aXQnLCBsYWJlbCwgY29udGV4dF1cbiAgXSlcblxuICAvLyBSZWZlcmVuY2UsIHJlc291cmNlLCBvciBzby5cbiAgbWVkaWEgPSBwdXNoKG1lZGlhLCBldmVudHMuc2xpY2UoY2xvc2UgKyAxKSlcblxuICAvLyBNZWRpYSBjbG9zZS5cbiAgbWVkaWEgPSBwdXNoKG1lZGlhLCBbWydleGl0JywgZ3JvdXAsIGNvbnRleHRdXSlcblxuICBzcGxpY2UoZXZlbnRzLCBvcGVuLCBldmVudHMubGVuZ3RoLCBtZWRpYSlcblxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGFiZWxFbmQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBsZXQgaW5kZXggPSBzZWxmLmV2ZW50cy5sZW5ndGhcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IGxhYmVsU3RhcnRcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZGVmaW5lZFxuXG4gIC8vIEZpbmQgYW4gb3BlbmluZy5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBpZiAoXG4gICAgICAoc2VsZi5ldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IHR5cGVzLmxhYmVsSW1hZ2UgfHxcbiAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IHR5cGVzLmxhYmVsTGluaykgJiZcbiAgICAgICFzZWxmLmV2ZW50c1tpbmRleF1bMV0uX2JhbGFuY2VkXG4gICAgKSB7XG4gICAgICBsYWJlbFN0YXJ0ID0gc2VsZi5ldmVudHNbaW5kZXhdWzFdXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBsYWJlbCBlbmQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICBeXG4gICAqID4gfCBbYV1bYl0gY1xuICAgKiAgICAgICBeXG4gICAqID4gfCBbYV1bXSBiXG4gICAqICAgICAgIF5cbiAgICogPiB8IFthXSBiXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCwgJ2V4cGVjdGVkIGBdYCcpXG5cbiAgICAvLyBJZiB0aGVyZSBpcyBub3QgYW4gb2theSBvcGVuaW5nLlxuICAgIGlmICghbGFiZWxTdGFydCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIC8vIElmIHRoZSBjb3JyZXNwb25kaW5nIGxhYmVsIChsaW5rKSBzdGFydCBpcyBtYXJrZWQgYXMgaW5hY3RpdmUsXG4gICAgLy8gaXQgbWVhbnMgd2XigJlkIGJlIHdyYXBwaW5nIGEgbGluaywgbGlrZSB0aGlzOlxuICAgIC8vXG4gICAgLy8gYGBgbWFya2Rvd25cbiAgICAvLyA+IHwgYSBbYiBbY10oZCkgZV0oZikgZy5cbiAgICAvLyAgICAgICAgICAgICAgICAgIF5cbiAgICAvLyBgYGBcbiAgICAvL1xuICAgIC8vIFdlIGNhbuKAmXQgaGF2ZSB0aGF0LCBzbyBpdOKAmXMganVzdCBiYWxhbmNlZCBicmFja2V0cy5cbiAgICBpZiAobGFiZWxTdGFydC5faW5hY3RpdmUpIHtcbiAgICAgIHJldHVybiBsYWJlbEVuZE5vayhjb2RlKVxuICAgIH1cblxuICAgIGRlZmluZWQgPSBzZWxmLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKFxuICAgICAgbm9ybWFsaXplSWRlbnRpZmllcihcbiAgICAgICAgc2VsZi5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6IGxhYmVsU3RhcnQuZW5kLCBlbmQ6IHNlbGYubm93KCl9KVxuICAgICAgKVxuICAgIClcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmxhYmVsRW5kKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGFiZWxNYXJrZXIpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmxhYmVsTWFya2VyKVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5sYWJlbEVuZClcbiAgICByZXR1cm4gYWZ0ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICBeXG4gICAqID4gfCBbYV1bYl0gY1xuICAgKiAgICAgICBeXG4gICAqID4gfCBbYV1bXSBiXG4gICAqICAgICAgIF5cbiAgICogPiB8IFthXSBiXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICAvLyBOb3RlOiBgbWFya2Rvd24tcnNgIGFsc28gcGFyc2VzIEdGTSBmb290bm90ZXMgaGVyZSwgd2hpY2ggZm9yIHVzIGlzIGluXG4gICAgLy8gYW4gZXh0ZW5zaW9uLlxuXG4gICAgLy8gUmVzb3VyY2UgKGBbYXNkXShmZ2gpYCk/XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmxlZnRQYXJlbnRoZXNpcykge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuYXR0ZW1wdChcbiAgICAgICAgcmVzb3VyY2VDb25zdHJ1Y3QsXG4gICAgICAgIGxhYmVsRW5kT2ssXG4gICAgICAgIGRlZmluZWQgPyBsYWJlbEVuZE9rIDogbGFiZWxFbmROb2tcbiAgICAgICkoY29kZSlcbiAgICB9XG5cbiAgICAvLyBGdWxsIChgW2FzZF1bZmdoXWApIG9yIGNvbGxhcHNlZCAoYFthc2RdW11gKSByZWZlcmVuY2U/XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0KSB7XG4gICAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KFxuICAgICAgICByZWZlcmVuY2VGdWxsQ29uc3RydWN0LFxuICAgICAgICBsYWJlbEVuZE9rLFxuICAgICAgICBkZWZpbmVkID8gcmVmZXJlbmNlTm90RnVsbCA6IGxhYmVsRW5kTm9rXG4gICAgICApKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gU2hvcnRjdXQgKGBbYXNkXWApIHJlZmVyZW5jZT9cbiAgICByZXR1cm4gZGVmaW5lZCA/IGxhYmVsRW5kT2soY29kZSkgOiBsYWJlbEVuZE5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGBdYCwgYXQgYFtgLCBidXQgbm90IGF0IGEgZnVsbCByZWZlcmVuY2UuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogd2Ugb25seSBnZXQgaGVyZSBpZiB0aGUgbGFiZWwgaXMgZGVmaW5lZC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVtdIGJcbiAgICogICAgICAgIF5cbiAgICogPiB8IFthXSBiXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VOb3RGdWxsKGNvZGUpIHtcbiAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KFxuICAgICAgcmVmZXJlbmNlQ29sbGFwc2VkQ29uc3RydWN0LFxuICAgICAgbGFiZWxFbmRPayxcbiAgICAgIGxhYmVsRW5kTm9rXG4gICAgKShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIERvbmUsIHdlIGZvdW5kIHNvbWV0aGluZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiKSBjXG4gICAqICAgICAgICAgICBeXG4gICAqID4gfCBbYV1bYl0gY1xuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgW2FdW10gYlxuICAgKiAgICAgICAgICBeXG4gICAqID4gfCBbYV0gYlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxFbmRPayhjb2RlKSB7XG4gICAgLy8gTm90ZTogYG1hcmtkb3duLXJzYCBkb2VzIGEgYnVuY2ggb2Ygc3R1ZmYgaGVyZS5cbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBEb25lLCBpdOKAmXMgbm90aGluZy5cbiAgICpcbiAgICogVGhlcmUgd2FzIGFuIG9rYXkgb3BlbmluZywgYnV0IHdlIGRpZG7igJl0IG1hdGNoIGFueXRoaW5nLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdKGIgY1xuICAgKiAgICAgICAgXlxuICAgKiA+IHwgW2FdW2IgY1xuICAgKiAgICAgICAgXlxuICAgKiA+IHwgW2FdIGJcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsRW5kTm9rKGNvZGUpIHtcbiAgICBsYWJlbFN0YXJ0Ll9iYWxhbmNlZCA9IHRydWVcbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVSZXNvdXJjZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiByZXNvdXJjZVN0YXJ0XG5cbiAgLyoqXG4gICAqIEF0IGEgcmVzb3VyY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VTdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLmxlZnRQYXJlbnRoZXNpcywgJ2V4cGVjdGVkIGxlZnQgcGFyZW4nKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMucmVzb3VyY2UpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5yZXNvdXJjZU1hcmtlcilcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMucmVzb3VyY2VNYXJrZXIpXG4gICAgcmV0dXJuIHJlc291cmNlQmVmb3JlXG4gIH1cblxuICAvKipcbiAgICogSW4gcmVzb3VyY2UsIGFmdGVyIGAoYCwgYXQgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiKSBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VCZWZvcmUoY29kZSkge1xuICAgIHJldHVybiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlXaGl0ZXNwYWNlKGVmZmVjdHMsIHJlc291cmNlT3BlbikoY29kZSlcbiAgICAgIDogcmVzb3VyY2VPcGVuKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gcmVzb3VyY2UsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UsIGF0IGApYCBvciBhIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdKGIpIGNcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZU9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5yaWdodFBhcmVudGhlc2lzKSB7XG4gICAgICByZXR1cm4gcmVzb3VyY2VFbmQoY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gZmFjdG9yeURlc3RpbmF0aW9uKFxuICAgICAgZWZmZWN0cyxcbiAgICAgIHJlc291cmNlRGVzdGluYXRpb25BZnRlcixcbiAgICAgIHJlc291cmNlRGVzdGluYXRpb25NaXNzaW5nLFxuICAgICAgdHlwZXMucmVzb3VyY2VEZXN0aW5hdGlvbixcbiAgICAgIHR5cGVzLnJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsLFxuICAgICAgdHlwZXMucmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIsXG4gICAgICB0eXBlcy5yZXNvdXJjZURlc3RpbmF0aW9uUmF3LFxuICAgICAgdHlwZXMucmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZyxcbiAgICAgIGNvbnN0YW50cy5saW5rUmVzb3VyY2VEZXN0aW5hdGlvbkJhbGFuY2VNYXhcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gcmVzb3VyY2UsIGFmdGVyIGRlc3RpbmF0aW9uLCBhdCBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdKGIpIGNcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VEZXN0aW5hdGlvbkFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKVxuICAgICAgPyBmYWN0b3J5V2hpdGVzcGFjZShlZmZlY3RzLCByZXNvdXJjZUJldHdlZW4pKGNvZGUpXG4gICAgICA6IHJlc291cmNlRW5kKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQXQgaW52YWxpZCBkZXN0aW5hdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXSg8PCkgYlxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJlc291cmNlRGVzdGluYXRpb25NaXNzaW5nKGNvZGUpIHtcbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gcmVzb3VyY2UsIGFmdGVyIGRlc3RpbmF0aW9uIGFuZCB3aGl0ZXNwYWNlLCBhdCBgKGAgb3IgdGl0bGUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYiApIGNcbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJlc291cmNlQmV0d2Vlbihjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMucXVvdGF0aW9uTWFyayB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuYXBvc3Ryb3BoZSB8fFxuICAgICAgY29kZSA9PT0gY29kZXMubGVmdFBhcmVudGhlc2lzXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVRpdGxlKFxuICAgICAgICBlZmZlY3RzLFxuICAgICAgICByZXNvdXJjZVRpdGxlQWZ0ZXIsXG4gICAgICAgIG5vayxcbiAgICAgICAgdHlwZXMucmVzb3VyY2VUaXRsZSxcbiAgICAgICAgdHlwZXMucmVzb3VyY2VUaXRsZU1hcmtlcixcbiAgICAgICAgdHlwZXMucmVzb3VyY2VUaXRsZVN0cmluZ1xuICAgICAgKShjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiByZXNvdXJjZUVuZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHJlc291cmNlLCBhZnRlciB0aXRsZSwgYXQgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiIFwiY1wiKSBkXG4gICAqICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZVRpdGxlQWZ0ZXIoY29kZSkge1xuICAgIHJldHVybiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gICAgICA/IGZhY3RvcnlXaGl0ZXNwYWNlKGVmZmVjdHMsIHJlc291cmNlRW5kKShjb2RlKVxuICAgICAgOiByZXNvdXJjZUVuZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHJlc291cmNlLCBhdCBgKWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgZFxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZUVuZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnJpZ2h0UGFyZW50aGVzaXMpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMucmVzb3VyY2VNYXJrZXIpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5yZXNvdXJjZU1hcmtlcilcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5yZXNvdXJjZSlcbiAgICAgIHJldHVybiBva1xuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVJlZmVyZW5jZUZ1bGwoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuXG4gIHJldHVybiByZWZlcmVuY2VGdWxsXG5cbiAgLyoqXG4gICAqIEluIGEgcmVmZXJlbmNlIChmdWxsKSwgYXQgdGhlIGBbYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVtiXSBkXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VGdWxsKGNvZGUpIHtcbiAgICBhc3NlcnQoY29kZSA9PT0gY29kZXMubGVmdFNxdWFyZUJyYWNrZXQsICdleHBlY3RlZCBsZWZ0IGJyYWNrZXQnKVxuICAgIHJldHVybiBmYWN0b3J5TGFiZWwuY2FsbChcbiAgICAgIHNlbGYsXG4gICAgICBlZmZlY3RzLFxuICAgICAgcmVmZXJlbmNlRnVsbEFmdGVyLFxuICAgICAgcmVmZXJlbmNlRnVsbE1pc3NpbmcsXG4gICAgICB0eXBlcy5yZWZlcmVuY2UsXG4gICAgICB0eXBlcy5yZWZlcmVuY2VNYXJrZXIsXG4gICAgICB0eXBlcy5yZWZlcmVuY2VTdHJpbmdcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gYSByZWZlcmVuY2UgKGZ1bGwpLCBhZnRlciBgXWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1bYl0gZFxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VGdWxsQWZ0ZXIoY29kZSkge1xuICAgIHJldHVybiBzZWxmLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKFxuICAgICAgbm9ybWFsaXplSWRlbnRpZmllcihcbiAgICAgICAgc2VsZi5zbGljZVNlcmlhbGl6ZShzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXVsxXSkuc2xpY2UoMSwgLTEpXG4gICAgICApXG4gICAgKVxuICAgICAgPyBvayhjb2RlKVxuICAgICAgOiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZWZlcmVuY2UgKGZ1bGwpIHRoYXQgd2FzIG1pc3NpbmcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1bYiBkXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VGdWxsTWlzc2luZyhjb2RlKSB7XG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplUmVmZXJlbmNlQ29sbGFwc2VkKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgcmV0dXJuIHJlZmVyZW5jZUNvbGxhcHNlZFN0YXJ0XG5cbiAgLyoqXG4gICAqIEluIHJlZmVyZW5jZSAoY29sbGFwc2VkKSwgYXQgYFtgLlxuICAgKlxuICAgKiA+IPCfkYkgKipOb3RlKio6IHdlIG9ubHkgZ2V0IGhlcmUgaWYgdGhlIGxhYmVsIGlzIGRlZmluZWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1bXSBkXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VDb2xsYXBzZWRTdGFydChjb2RlKSB7XG4gICAgLy8gV2Ugb25seSBhdHRlbXB0IGEgY29sbGFwc2VkIGxhYmVsIGlmIHRoZXJl4oCZcyBhIGBbYC5cbiAgICBhc3NlcnQoY29kZSA9PT0gY29kZXMubGVmdFNxdWFyZUJyYWNrZXQsICdleHBlY3RlZCBsZWZ0IGJyYWNrZXQnKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMucmVmZXJlbmNlKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMucmVmZXJlbmNlTWFya2VyKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5yZWZlcmVuY2VNYXJrZXIpXG4gICAgcmV0dXJuIHJlZmVyZW5jZUNvbGxhcHNlZE9wZW5cbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZWZlcmVuY2UgKGNvbGxhcHNlZCksIGF0IGBdYC5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiB3ZSBvbmx5IGdldCBoZXJlIGlmIHRoZSBsYWJlbCBpcyBkZWZpbmVkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdW10gZFxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqICBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VDb2xsYXBzZWRPcGVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0KSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLnJlZmVyZW5jZU1hcmtlcilcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLnJlZmVyZW5jZU1hcmtlcilcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5yZWZlcmVuY2UpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmYWN0b3J5RGVzdGluYXRpb24iLCJmYWN0b3J5TGFiZWwiLCJmYWN0b3J5VGl0bGUiLCJmYWN0b3J5V2hpdGVzcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCJwdXNoIiwic3BsaWNlIiwibm9ybWFsaXplSWRlbnRpZmllciIsInJlc29sdmVBbGwiLCJjb2RlcyIsImNvbnN0YW50cyIsInR5cGVzIiwib2siLCJhc3NlcnQiLCJsYWJlbEVuZCIsIm5hbWUiLCJ0b2tlbml6ZSIsInRva2VuaXplTGFiZWxFbmQiLCJyZXNvbHZlVG8iLCJyZXNvbHZlVG9MYWJlbEVuZCIsInJlc29sdmVBbGxMYWJlbEVuZCIsInJlc291cmNlQ29uc3RydWN0IiwidG9rZW5pemVSZXNvdXJjZSIsInJlZmVyZW5jZUZ1bGxDb25zdHJ1Y3QiLCJ0b2tlbml6ZVJlZmVyZW5jZUZ1bGwiLCJyZWZlcmVuY2VDb2xsYXBzZWRDb25zdHJ1Y3QiLCJ0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZCIsImV2ZW50cyIsImluZGV4IiwibGVuZ3RoIiwidG9rZW4iLCJ0eXBlIiwibGFiZWxJbWFnZSIsImxhYmVsTGluayIsImRhdGEiLCJjb250ZXh0Iiwib2Zmc2V0Iiwib3BlbiIsImNsb3NlIiwibWVkaWEiLCJsaW5rIiwiX2luYWN0aXZlIiwiX2JhbGFuY2VkIiwidW5kZWZpbmVkIiwiZ3JvdXAiLCJpbWFnZSIsInN0YXJ0IiwiT2JqZWN0IiwiYXNzaWduIiwiZW5kIiwibGFiZWwiLCJ0ZXh0IiwibGFiZWxUZXh0Iiwic2xpY2UiLCJwYXJzZXIiLCJjb25zdHJ1Y3RzIiwiaW5zaWRlU3BhbiIsIm51bGwiLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsImxhYmVsU3RhcnQiLCJkZWZpbmVkIiwiY29kZSIsInJpZ2h0U3F1YXJlQnJhY2tldCIsImxhYmVsRW5kTm9rIiwiaW5jbHVkZXMiLCJzbGljZVNlcmlhbGl6ZSIsIm5vdyIsImVudGVyIiwibGFiZWxNYXJrZXIiLCJjb25zdW1lIiwiZXhpdCIsImFmdGVyIiwibGVmdFBhcmVudGhlc2lzIiwiYXR0ZW1wdCIsImxhYmVsRW5kT2siLCJsZWZ0U3F1YXJlQnJhY2tldCIsInJlZmVyZW5jZU5vdEZ1bGwiLCJyZXNvdXJjZVN0YXJ0IiwicmVzb3VyY2UiLCJyZXNvdXJjZU1hcmtlciIsInJlc291cmNlQmVmb3JlIiwicmVzb3VyY2VPcGVuIiwicmlnaHRQYXJlbnRoZXNpcyIsInJlc291cmNlRW5kIiwicmVzb3VyY2VEZXN0aW5hdGlvbkFmdGVyIiwicmVzb3VyY2VEZXN0aW5hdGlvbk1pc3NpbmciLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwibGlua1Jlc291cmNlRGVzdGluYXRpb25CYWxhbmNlTWF4IiwicmVzb3VyY2VCZXR3ZWVuIiwicXVvdGF0aW9uTWFyayIsImFwb3N0cm9waGUiLCJyZXNvdXJjZVRpdGxlQWZ0ZXIiLCJyZXNvdXJjZVRpdGxlIiwicmVzb3VyY2VUaXRsZU1hcmtlciIsInJlc291cmNlVGl0bGVTdHJpbmciLCJyZWZlcmVuY2VGdWxsIiwiY2FsbCIsInJlZmVyZW5jZUZ1bGxBZnRlciIsInJlZmVyZW5jZUZ1bGxNaXNzaW5nIiwicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIiwicmVmZXJlbmNlQ29sbGFwc2VkU3RhcnQiLCJyZWZlcmVuY2VDb2xsYXBzZWRPcGVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-end.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ labelStartImage: () => (/* binding */ labelStartImage)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var _label_end_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./label-end.js */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-end.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n/** @type {Construct} */ const labelStartImage = {\n name: \"labelStartImage\",\n tokenize: tokenizeLabelStartImage,\n resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_0__.labelEnd.resolveAll\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark, \"expected `!`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelImage);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker);\n return open;\n }\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */ function open(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelImage);\n return after;\n }\n return nok(code);\n }\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */ function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */ return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.caret && \"_hiddenFootnoteSupport\" in self.parser.constructs ? nok(code) : ok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9sYWJlbC1zdGFydC1pbWFnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7OztDQUtDLEdBRWlEO0FBQ2Y7QUFDSTtBQUV2QyxzQkFBc0IsR0FDZixNQUFNSyxrQkFBa0I7SUFDN0JDLE1BQU07SUFDTkMsVUFBVUM7SUFDVkMsWUFBWUwsbURBQVFBLENBQUNLLFVBQVU7QUFDakMsRUFBQztBQUVEOzs7Q0FHQyxHQUNELFNBQVNELHdCQUF3QkUsT0FBTyxFQUFFUixFQUFFLEVBQUVTLEdBQUc7SUFDL0MsTUFBTUMsT0FBTyxJQUFJO0lBRWpCLE9BQU9DO0lBRVA7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsTUFBTUMsSUFBSTtRQUNqQlgsMENBQU1BLENBQUNXLFNBQVNkLHdEQUFLQSxDQUFDZSxlQUFlLEVBQUU7UUFDdkNMLFFBQVFNLEtBQUssQ0FBQ2Ysd0RBQUtBLENBQUNnQixVQUFVO1FBQzlCUCxRQUFRTSxLQUFLLENBQUNmLHdEQUFLQSxDQUFDaUIsZ0JBQWdCO1FBQ3BDUixRQUFRUyxPQUFPLENBQUNMO1FBQ2hCSixRQUFRVSxJQUFJLENBQUNuQix3REFBS0EsQ0FBQ2lCLGdCQUFnQjtRQUNuQyxPQUFPRztJQUNUO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsS0FBS1AsSUFBSTtRQUNoQixJQUFJQSxTQUFTZCx3REFBS0EsQ0FBQ3NCLGlCQUFpQixFQUFFO1lBQ3BDWixRQUFRTSxLQUFLLENBQUNmLHdEQUFLQSxDQUFDc0IsV0FBVztZQUMvQmIsUUFBUVMsT0FBTyxDQUFDTDtZQUNoQkosUUFBUVUsSUFBSSxDQUFDbkIsd0RBQUtBLENBQUNzQixXQUFXO1lBQzlCYixRQUFRVSxJQUFJLENBQUNuQix3REFBS0EsQ0FBQ2dCLFVBQVU7WUFDN0IsT0FBT087UUFDVDtRQUVBLE9BQU9iLElBQUlHO0lBQ2I7SUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkMsR0FDRCxTQUFTVSxNQUFNVixJQUFJO1FBQ2pCLDhEQUE4RDtRQUM5RCxpRUFBaUU7UUFDakUsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QixvQkFBb0IsR0FDcEIsT0FBT0EsU0FBU2Qsd0RBQUtBLENBQUN5QixLQUFLLElBQ3pCLDRCQUE0QmIsS0FBS2MsTUFBTSxDQUFDQyxVQUFVLEdBQ2hEaEIsSUFBSUcsUUFDSlosR0FBR1k7SUFDVDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL2xhYmVsLXN0YXJ0LWltYWdlLmpzPzU0YjUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7Y29kZXMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtsYWJlbEVuZH0gZnJvbSAnLi9sYWJlbC1lbmQuanMnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGxhYmVsU3RhcnRJbWFnZSA9IHtcbiAgbmFtZTogJ2xhYmVsU3RhcnRJbWFnZScsXG4gIHRva2VuaXplOiB0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZSxcbiAgcmVzb2x2ZUFsbDogbGFiZWxFbmQucmVzb2x2ZUFsbFxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGxhYmVsIChpbWFnZSkgc3RhcnQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhICFbYl0gY1xuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLmV4Y2xhbWF0aW9uTWFyaywgJ2V4cGVjdGVkIGAhYCcpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5sYWJlbEltYWdlKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGFiZWxJbWFnZU1hcmtlcilcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMubGFiZWxJbWFnZU1hcmtlcilcbiAgICByZXR1cm4gb3BlblxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGAhYCwgYXQgYFtgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSAhW2JdIGNcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldCkge1xuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlcy5sYWJlbE1hcmtlcilcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmxhYmVsTWFya2VyKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmxhYmVsSW1hZ2UpXG4gICAgICByZXR1cm4gYWZ0ZXJcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYCFbYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgIVtiXSBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogVGhpcyBpcyBuZWVkZWQgaW4gYmVjYXVzZSwgd2hlbiBHRk0gZm9vdG5vdGVzIGFyZSBlbmFibGVkLCBpbWFnZXMgbmV2ZXJcbiAgICogZm9ybSB3aGVuIHN0YXJ0ZWQgd2l0aCBhIGBeYC5cbiAgICogSW5zdGVhZCwgbGlua3MgZm9ybTpcbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogIVteYV0oYilcbiAgICpcbiAgICogIVteYV1bYl1cbiAgICpcbiAgICogW2JdOiBjXG4gICAqIGBgYFxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxwPiE8YSBocmVmPVxcXCJiXFxcIj5eYTwvYT48L3A+XG4gICAqIDxwPiE8YSBocmVmPVxcXCJjXFxcIj5eYTwvYT48L3A+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgLy8gVG8gZG86IHVzZSBhIG5ldyBmaWVsZCB0byBkbyB0aGlzLCB0aGlzIGlzIHN0aWxsIG5lZWRlZCBmb3JcbiAgICAvLyBgbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGVgLCBidXQgdGhlIGBsYWJlbC1zdGFydC1saW5rYFxuICAgIC8vIGJlaGF2aW9yIGlzbuKAmXQuXG4gICAgLy8gSGlkZGVuIGZvb3Rub3RlcyBob29rLlxuICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuY2FyZXQgJiZcbiAgICAgICdfaGlkZGVuRm9vdG5vdGVTdXBwb3J0JyBpbiBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzXG4gICAgICA/IG5vayhjb2RlKVxuICAgICAgOiBvayhjb2RlKVxuICB9XG59XG4iXSwibmFtZXMiOlsiY29kZXMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwibGFiZWxFbmQiLCJsYWJlbFN0YXJ0SW1hZ2UiLCJuYW1lIiwidG9rZW5pemUiLCJ0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZSIsInJlc29sdmVBbGwiLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsInN0YXJ0IiwiY29kZSIsImV4Y2xhbWF0aW9uTWFyayIsImVudGVyIiwibGFiZWxJbWFnZSIsImxhYmVsSW1hZ2VNYXJrZXIiLCJjb25zdW1lIiwiZXhpdCIsIm9wZW4iLCJsZWZ0U3F1YXJlQnJhY2tldCIsImxhYmVsTWFya2VyIiwiYWZ0ZXIiLCJjYXJldCIsInBhcnNlciIsImNvbnN0cnVjdHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ labelStartLink: () => (/* binding */ labelStartLink)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var _label_end_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./label-end.js */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-end.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n/** @type {Construct} */ const labelStartLink = {\n name: \"labelStartLink\",\n tokenize: tokenizeLabelStartLink,\n resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_0__.labelEnd.resolveAll\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, \"expected `[`\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelLink);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.labelLink);\n return after;\n }\n /** @type {State} */ function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */ return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.caret && \"_hiddenFootnoteSupport\" in self.parser.constructs ? nok(code) : ok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9sYWJlbC1zdGFydC1saW5rLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFaUQ7QUFDZjtBQUNJO0FBRXZDLHNCQUFzQixHQUNmLE1BQU1LLGlCQUFpQjtJQUM1QkMsTUFBTTtJQUNOQyxVQUFVQztJQUNWQyxZQUFZTCxtREFBUUEsQ0FBQ0ssVUFBVTtBQUNqQyxFQUFDO0FBRUQ7OztDQUdDLEdBQ0QsU0FBU0QsdUJBQXVCRSxPQUFPLEVBQUVSLEVBQUUsRUFBRVMsR0FBRztJQUM5QyxNQUFNQyxPQUFPLElBQUk7SUFFakIsT0FBT0M7SUFFUDs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCWCwwQ0FBTUEsQ0FBQ1csU0FBU2Qsd0RBQUtBLENBQUNlLGlCQUFpQixFQUFFO1FBQ3pDTCxRQUFRTSxLQUFLLENBQUNmLHdEQUFLQSxDQUFDZ0IsU0FBUztRQUM3QlAsUUFBUU0sS0FBSyxDQUFDZix3REFBS0EsQ0FBQ2lCLFdBQVc7UUFDL0JSLFFBQVFTLE9BQU8sQ0FBQ0w7UUFDaEJKLFFBQVFVLElBQUksQ0FBQ25CLHdEQUFLQSxDQUFDaUIsV0FBVztRQUM5QlIsUUFBUVUsSUFBSSxDQUFDbkIsd0RBQUtBLENBQUNnQixTQUFTO1FBQzVCLE9BQU9JO0lBQ1Q7SUFFQSxrQkFBa0IsR0FDbEIsU0FBU0EsTUFBTVAsSUFBSTtRQUNqQixrRUFBa0U7UUFDbEUsVUFBVTtRQUNWLHlCQUF5QjtRQUN6QixvQkFBb0IsR0FDcEIsT0FBT0EsU0FBU2Qsd0RBQUtBLENBQUNzQixLQUFLLElBQ3pCLDRCQUE0QlYsS0FBS1csTUFBTSxDQUFDQyxVQUFVLEdBQ2hEYixJQUFJRyxRQUNKWixHQUFHWTtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2Rldi9saWIvbGFiZWwtc3RhcnQtbGluay5qcz81NTYwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2NvZGVzLCB0eXBlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7bGFiZWxFbmR9IGZyb20gJy4vbGFiZWwtZW5kLmpzJ1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBsYWJlbFN0YXJ0TGluayA9IHtcbiAgbmFtZTogJ2xhYmVsU3RhcnRMaW5rJyxcbiAgdG9rZW5pemU6IHRva2VuaXplTGFiZWxTdGFydExpbmssXG4gIHJlc29sdmVBbGw6IGxhYmVsRW5kLnJlc29sdmVBbGxcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVMYWJlbFN0YXJ0TGluayhlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGxhYmVsIChsaW5rKSBzdGFydC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgW2JdIGNcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGFzc2VydChjb2RlID09PSBjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldCwgJ2V4cGVjdGVkIGBbYCcpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5sYWJlbExpbmspXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5sYWJlbE1hcmtlcilcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMubGFiZWxNYXJrZXIpXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmxhYmVsTGluaylcbiAgICByZXR1cm4gYWZ0ZXJcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICAvLyBUbyBkbzogdGhpcyBpc27igJl0IG5lZWRlZCBpbiBgbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGVgLFxuICAgIC8vIHJlbW92ZS5cbiAgICAvLyBIaWRkZW4gZm9vdG5vdGVzIGhvb2suXG4gICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgIHJldHVybiBjb2RlID09PSBjb2Rlcy5jYXJldCAmJlxuICAgICAgJ19oaWRkZW5Gb290bm90ZVN1cHBvcnQnIGluIHNlbGYucGFyc2VyLmNvbnN0cnVjdHNcbiAgICAgID8gbm9rKGNvZGUpXG4gICAgICA6IG9rKGNvZGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjb2RlcyIsInR5cGVzIiwib2siLCJhc3NlcnQiLCJsYWJlbEVuZCIsImxhYmVsU3RhcnRMaW5rIiwibmFtZSIsInRva2VuaXplIiwidG9rZW5pemVMYWJlbFN0YXJ0TGluayIsInJlc29sdmVBbGwiLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsInN0YXJ0IiwiY29kZSIsImxlZnRTcXVhcmVCcmFja2V0IiwiZW50ZXIiLCJsYWJlbExpbmsiLCJsYWJlbE1hcmtlciIsImNvbnN1bWUiLCJleGl0IiwiYWZ0ZXIiLCJjYXJldCIsInBhcnNlciIsImNvbnN0cnVjdHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/line-ending.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/line-ending.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ lineEnding: () => (/* binding */ lineEnding)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n/** @type {Construct} */ const lineEnding = {\n name: \"lineEnding\",\n tokenize: tokenizeLineEnding\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeLineEnding(effects, ok) {\n return start;\n /** @type {State} */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code), \"expected eol\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, ok, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9saW5lLWVuZGluZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7OztDQUtDLEdBRW1EO0FBQ087QUFDaEI7QUFDUjtBQUVuQyxzQkFBc0IsR0FDZixNQUFNSyxhQUFhO0lBQUNDLE1BQU07SUFBY0MsVUFBVUM7QUFBa0IsRUFBQztBQUU1RTs7O0NBR0MsR0FDRCxTQUFTQSxtQkFBbUJDLE9BQU8sRUFBRU4sRUFBRTtJQUNyQyxPQUFPTztJQUVQLGtCQUFrQixHQUNsQixTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCUCwwQ0FBTUEsQ0FBQ0gsNEVBQWtCQSxDQUFDVSxPQUFPO1FBQ2pDRixRQUFRRyxLQUFLLENBQUNWLHdEQUFLQSxDQUFDRyxVQUFVO1FBQzlCSSxRQUFRSSxPQUFPLENBQUNGO1FBQ2hCRixRQUFRSyxJQUFJLENBQUNaLHdEQUFLQSxDQUFDRyxVQUFVO1FBQzdCLE9BQU9MLHFFQUFZQSxDQUFDUyxTQUFTTixJQUFJRCx3REFBS0EsQ0FBQ2EsVUFBVTtJQUNuRDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL2xpbmUtZW5kaW5nLmpzPzEzZTgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge3R5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBsaW5lRW5kaW5nID0ge25hbWU6ICdsaW5lRW5kaW5nJywgdG9rZW5pemU6IHRva2VuaXplTGluZUVuZGluZ31cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVMaW5lRW5kaW5nKGVmZmVjdHMsIG9rKSB7XG4gIHJldHVybiBzdGFydFxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBhc3NlcnQobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpLCAnZXhwZWN0ZWQgZW9sJylcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgcmV0dXJuIGZhY3RvcnlTcGFjZShlZmZlY3RzLCBvaywgdHlwZXMubGluZVByZWZpeClcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZhY3RvcnlTcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsInR5cGVzIiwib2siLCJhc3NlcnQiLCJsaW5lRW5kaW5nIiwibmFtZSIsInRva2VuaXplIiwidG9rZW5pemVMaW5lRW5kaW5nIiwiZWZmZWN0cyIsInN0YXJ0IiwiY29kZSIsImVudGVyIiwiY29uc3VtZSIsImV4aXQiLCJsaW5lUHJlZml4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/line-ending.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/list.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/list.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ list: () => (/* binding */ list)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var _blank_line_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blank-line.js */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/blank-line.js\");\n/* harmony import */ var _thematic_break_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./thematic-break.js */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n\n\n/** @type {Construct} */ const list = {\n name: \"list\",\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n};\n/** @type {Construct} */ const listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n};\n/** @type {Construct} */ const indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n};\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */ function tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.linePrefix ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n /** @type {State} */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n const kind = self.containerState.type || (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.plusSign || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listUnordered : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listOrdered);\n if (kind === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listUnordered ? !self.containerState.marker || code === self.containerState.marker : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listUnordered) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemPrefix);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash ? effects.check(_thematic_break_js__WEBPACK_IMPORTED_MODULE_4__.thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.digit1) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemPrefix);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemValue);\n return inside(code);\n }\n }\n return nok(code);\n }\n /** @type {State} */ function inside(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code) && ++size < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.listItemValueSizeMax) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.rightParenthesis || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dot)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemValue);\n return atMarker(code);\n }\n return nok(code);\n }\n /**\n * @type {State}\n **/ function atMarker(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof, \"eof (`null`) is not a marker\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemMarker);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemMarker);\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n /** @type {State} */ function onBlank(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n /** @type {State} */ function otherPrefix(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemPrefixWhitespace);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemPrefixWhitespace);\n return endOfPrefix;\n }\n return nok(code);\n }\n /** @type {State} */ function endOfPrefix(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemPrefix), true).length;\n return ok(code);\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */ function tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n self.containerState._closeFlow = undefined;\n return effects.check(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, onBlank, notBlank);\n /** @type {State} */ function onBlank(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof self.containerState.size === \"number\", \"expected size\");\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n // We have a blank line.\n // Still, try to consume at most the items size.\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(effects, ok, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemIndent, self.containerState.size + 1)(code);\n }\n /** @type {State} */ function notBlank(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n if (self.containerState.furtherBlankLines || !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n /** @type {State} */ function notInCurrentItem(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.parser.constructs.disable.null, \"expected `disable.null` to be populated\");\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(effects, effects.attempt(list, ok, nok), micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.linePrefix, self.parser.constructs.disable.null.includes(\"codeIndented\") ? undefined : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize)(code);\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */ function tokenizeIndent(effects, ok, nok) {\n const self = this;\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof self.containerState.size === \"number\", \"expected size\");\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(effects, afterPrefix, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemIndent, self.containerState.size + 1);\n /** @type {State} */ function afterPrefix(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.containerState, \"expected state\");\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemIndent && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */ function tokenizeListEnd(effects) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(this.containerState, \"expected state\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof this.containerState.type === \"string\", \"expected type\");\n effects.exit(this.containerState.type);\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */ function tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(self.parser.constructs.disable.null, \"expected `disable.null` to be populated\");\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(effects, afterPrefix, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemPrefixWhitespace, self.parser.constructs.disable.null.includes(\"codeIndented\") ? undefined : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize + 1);\n /** @type {State} */ function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code) && tail && tail[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemPrefixWhitespace ? ok(code) : nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9saXN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7OztDQVFDLEdBRW1EO0FBQ2M7QUFDTDtBQUMxQjtBQUNNO0FBQ1E7QUFFakQsc0JBQXNCLEdBQ2YsTUFBTVUsT0FBTztJQUNsQkMsTUFBTTtJQUNOQyxVQUFVQztJQUNWQyxjQUFjO1FBQUNGLFVBQVVHO0lBQXdCO0lBQ2pEQyxNQUFNQztBQUNSLEVBQUM7QUFFRCxzQkFBc0IsR0FDdEIsTUFBTUMsb0NBQW9DO0lBQ3hDTixVQUFVTztJQUNWQyxTQUFTO0FBQ1g7QUFFQSxzQkFBc0IsR0FDdEIsTUFBTUMsa0JBQWtCO0lBQUNULFVBQVVVO0lBQWdCRixTQUFTO0FBQUk7QUFFaEUsOEVBQThFO0FBQzlFLFlBQVk7QUFFWjs7O0NBR0MsR0FDRCxTQUFTUCxrQkFBa0JVLE9BQU8sRUFBRWpCLEVBQUUsRUFBRWtCLEdBQUc7SUFDekMsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLE1BQU1DLE9BQU9ELEtBQUtFLE1BQU0sQ0FBQ0YsS0FBS0UsTUFBTSxDQUFDQyxNQUFNLEdBQUcsRUFBRTtJQUNoRCxJQUFJQyxjQUNGSCxRQUFRQSxJQUFJLENBQUMsRUFBRSxDQUFDSSxJQUFJLEtBQUt6Qix3REFBS0EsQ0FBQzBCLFVBQVUsR0FDckNMLElBQUksQ0FBQyxFQUFFLENBQUNNLGNBQWMsQ0FBQ04sSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNRSxNQUFNLEdBQzVDO0lBQ04sSUFBSUssT0FBTztJQUVYLE9BQU9DO0lBRVAsa0JBQWtCLEdBQ2xCLFNBQVNBLE1BQU1DLElBQUk7UUFDakI1QiwwQ0FBTUEsQ0FBQ2tCLEtBQUtXLGNBQWMsRUFBRTtRQUM1QixNQUFNQyxPQUNKWixLQUFLVyxjQUFjLENBQUNOLElBQUksSUFDdkJLLENBQUFBLFNBQVNoQyx3REFBS0EsQ0FBQ21DLFFBQVEsSUFBSUgsU0FBU2hDLHdEQUFLQSxDQUFDb0MsUUFBUSxJQUFJSixTQUFTaEMsd0RBQUtBLENBQUNxQyxJQUFJLEdBQ3RFbkMsd0RBQUtBLENBQUNvQyxhQUFhLEdBQ25CcEMsd0RBQUtBLENBQUNxQyxXQUFXO1FBRXZCLElBQ0VMLFNBQVNoQyx3REFBS0EsQ0FBQ29DLGFBQWEsR0FDeEIsQ0FBQ2hCLEtBQUtXLGNBQWMsQ0FBQ08sTUFBTSxJQUFJUixTQUFTVixLQUFLVyxjQUFjLENBQUNPLE1BQU0sR0FDbEUxQyxvRUFBVUEsQ0FBQ2tDLE9BQ2Y7WUFDQSxJQUFJLENBQUNWLEtBQUtXLGNBQWMsQ0FBQ04sSUFBSSxFQUFFO2dCQUM3QkwsS0FBS1csY0FBYyxDQUFDTixJQUFJLEdBQUdPO2dCQUMzQmQsUUFBUXFCLEtBQUssQ0FBQ1AsTUFBTTtvQkFBQ1EsWUFBWTtnQkFBSTtZQUN2QztZQUVBLElBQUlSLFNBQVNoQyx3REFBS0EsQ0FBQ29DLGFBQWEsRUFBRTtnQkFDaENsQixRQUFRcUIsS0FBSyxDQUFDdkMsd0RBQUtBLENBQUN5QyxjQUFjO2dCQUNsQyxPQUFPWCxTQUFTaEMsd0RBQUtBLENBQUNtQyxRQUFRLElBQUlILFNBQVNoQyx3REFBS0EsQ0FBQ3FDLElBQUksR0FDakRqQixRQUFRd0IsS0FBSyxDQUFDdEMsNkRBQWFBLEVBQUVlLEtBQUt3QixVQUFVYixRQUM1Q2EsU0FBU2I7WUFDZjtZQUVBLElBQUksQ0FBQ1YsS0FBS3dCLFNBQVMsSUFBSWQsU0FBU2hDLHdEQUFLQSxDQUFDK0MsTUFBTSxFQUFFO2dCQUM1QzNCLFFBQVFxQixLQUFLLENBQUN2Qyx3REFBS0EsQ0FBQ3lDLGNBQWM7Z0JBQ2xDdkIsUUFBUXFCLEtBQUssQ0FBQ3ZDLHdEQUFLQSxDQUFDOEMsYUFBYTtnQkFDakMsT0FBT0MsT0FBT2pCO1lBQ2hCO1FBQ0Y7UUFFQSxPQUFPWCxJQUFJVztJQUNiO0lBRUEsa0JBQWtCLEdBQ2xCLFNBQVNpQixPQUFPakIsSUFBSTtRQUNsQjVCLDBDQUFNQSxDQUFDa0IsS0FBS1csY0FBYyxFQUFFO1FBQzVCLElBQUluQyxvRUFBVUEsQ0FBQ2tDLFNBQVMsRUFBRUYsT0FBTzdCLDREQUFTQSxDQUFDaUQsb0JBQW9CLEVBQUU7WUFDL0Q5QixRQUFRK0IsT0FBTyxDQUFDbkI7WUFDaEIsT0FBT2lCO1FBQ1Q7UUFFQSxJQUNFLENBQUMsQ0FBQzNCLEtBQUt3QixTQUFTLElBQUloQixPQUFPLE1BQzFCUixDQUFBQSxLQUFLVyxjQUFjLENBQUNPLE1BQU0sR0FDdkJSLFNBQVNWLEtBQUtXLGNBQWMsQ0FBQ08sTUFBTSxHQUNuQ1IsU0FBU2hDLHdEQUFLQSxDQUFDb0QsZ0JBQWdCLElBQUlwQixTQUFTaEMsd0RBQUtBLENBQUNxRCxHQUFHLEdBQ3pEO1lBQ0FqQyxRQUFRUCxJQUFJLENBQUNYLHdEQUFLQSxDQUFDOEMsYUFBYTtZQUNoQyxPQUFPSCxTQUFTYjtRQUNsQjtRQUVBLE9BQU9YLElBQUlXO0lBQ2I7SUFFQTs7SUFFRSxHQUNGLFNBQVNhLFNBQVNiLElBQUk7UUFDcEI1QiwwQ0FBTUEsQ0FBQ2tCLEtBQUtXLGNBQWMsRUFBRTtRQUM1QjdCLDBDQUFNQSxDQUFDNEIsU0FBU2hDLHdEQUFLQSxDQUFDc0QsR0FBRyxFQUFFO1FBQzNCbEMsUUFBUXFCLEtBQUssQ0FBQ3ZDLHdEQUFLQSxDQUFDcUQsY0FBYztRQUNsQ25DLFFBQVErQixPQUFPLENBQUNuQjtRQUNoQlosUUFBUVAsSUFBSSxDQUFDWCx3REFBS0EsQ0FBQ3FELGNBQWM7UUFDakNqQyxLQUFLVyxjQUFjLENBQUNPLE1BQU0sR0FBR2xCLEtBQUtXLGNBQWMsQ0FBQ08sTUFBTSxJQUFJUjtRQUMzRCxPQUFPWixRQUFRd0IsS0FBSyxDQUNsQnZDLHFEQUFTQSxFQUNULG9DQUFvQztRQUNwQ2lCLEtBQUt3QixTQUFTLEdBQUd6QixNQUFNbUMsU0FDdkJwQyxRQUFRcUMsT0FBTyxDQUNiMUMsbUNBQ0EyQyxhQUNBQztJQUdOO0lBRUEsa0JBQWtCLEdBQ2xCLFNBQVNILFFBQVF4QixJQUFJO1FBQ25CNUIsMENBQU1BLENBQUNrQixLQUFLVyxjQUFjLEVBQUU7UUFDNUJYLEtBQUtXLGNBQWMsQ0FBQzJCLGdCQUFnQixHQUFHO1FBQ3ZDbEM7UUFDQSxPQUFPZ0MsWUFBWTFCO0lBQ3JCO0lBRUEsa0JBQWtCLEdBQ2xCLFNBQVMyQixZQUFZM0IsSUFBSTtRQUN2QixJQUFJakMsdUVBQWFBLENBQUNpQyxPQUFPO1lBQ3ZCWixRQUFRcUIsS0FBSyxDQUFDdkMsd0RBQUtBLENBQUMyRCx3QkFBd0I7WUFDNUN6QyxRQUFRK0IsT0FBTyxDQUFDbkI7WUFDaEJaLFFBQVFQLElBQUksQ0FBQ1gsd0RBQUtBLENBQUMyRCx3QkFBd0I7WUFDM0MsT0FBT0g7UUFDVDtRQUVBLE9BQU9yQyxJQUFJVztJQUNiO0lBRUEsa0JBQWtCLEdBQ2xCLFNBQVMwQixZQUFZMUIsSUFBSTtRQUN2QjVCLDBDQUFNQSxDQUFDa0IsS0FBS1csY0FBYyxFQUFFO1FBQzVCWCxLQUFLVyxjQUFjLENBQUNILElBQUksR0FDdEJKLGNBQ0FKLEtBQUtPLGNBQWMsQ0FBQ1QsUUFBUVAsSUFBSSxDQUFDWCx3REFBS0EsQ0FBQ3lDLGNBQWMsR0FBRyxNQUFNbEIsTUFBTTtRQUN0RSxPQUFPdEIsR0FBRzZCO0lBQ1o7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNwQix5QkFBeUJRLE9BQU8sRUFBRWpCLEVBQUUsRUFBRWtCLEdBQUc7SUFDaEQsTUFBTUMsT0FBTyxJQUFJO0lBRWpCbEIsMENBQU1BLENBQUNrQixLQUFLVyxjQUFjLEVBQUU7SUFDNUJYLEtBQUtXLGNBQWMsQ0FBQzZCLFVBQVUsR0FBR0M7SUFFakMsT0FBTzNDLFFBQVF3QixLQUFLLENBQUN2QyxxREFBU0EsRUFBRW1ELFNBQVNRO0lBRXpDLGtCQUFrQixHQUNsQixTQUFTUixRQUFReEIsSUFBSTtRQUNuQjVCLDBDQUFNQSxDQUFDa0IsS0FBS1csY0FBYyxFQUFFO1FBQzVCN0IsMENBQU1BLENBQUMsT0FBT2tCLEtBQUtXLGNBQWMsQ0FBQ0gsSUFBSSxLQUFLLFVBQVU7UUFDckRSLEtBQUtXLGNBQWMsQ0FBQ2dDLGlCQUFpQixHQUNuQzNDLEtBQUtXLGNBQWMsQ0FBQ2dDLGlCQUFpQixJQUNyQzNDLEtBQUtXLGNBQWMsQ0FBQzJCLGdCQUFnQjtRQUV0Qyx3QkFBd0I7UUFDeEIsZ0RBQWdEO1FBQ2hELE9BQU8vRCxxRUFBWUEsQ0FDakJ1QixTQUNBakIsSUFDQUQsd0RBQUtBLENBQUNnRSxjQUFjLEVBQ3BCNUMsS0FBS1csY0FBYyxDQUFDSCxJQUFJLEdBQUcsR0FDM0JFO0lBQ0o7SUFFQSxrQkFBa0IsR0FDbEIsU0FBU2dDLFNBQVNoQyxJQUFJO1FBQ3BCNUIsMENBQU1BLENBQUNrQixLQUFLVyxjQUFjLEVBQUU7UUFDNUIsSUFBSVgsS0FBS1csY0FBYyxDQUFDZ0MsaUJBQWlCLElBQUksQ0FBQ2xFLHVFQUFhQSxDQUFDaUMsT0FBTztZQUNqRVYsS0FBS1csY0FBYyxDQUFDZ0MsaUJBQWlCLEdBQUdGO1lBQ3hDekMsS0FBS1csY0FBYyxDQUFDMkIsZ0JBQWdCLEdBQUdHO1lBQ3ZDLE9BQU9JLGlCQUFpQm5DO1FBQzFCO1FBRUFWLEtBQUtXLGNBQWMsQ0FBQ2dDLGlCQUFpQixHQUFHRjtRQUN4Q3pDLEtBQUtXLGNBQWMsQ0FBQzJCLGdCQUFnQixHQUFHRztRQUN2QyxPQUFPM0MsUUFBUXFDLE9BQU8sQ0FBQ3ZDLGlCQUFpQmYsSUFBSWdFLGtCQUFrQm5DO0lBQ2hFO0lBRUEsa0JBQWtCLEdBQ2xCLFNBQVNtQyxpQkFBaUJuQyxJQUFJO1FBQzVCNUIsMENBQU1BLENBQUNrQixLQUFLVyxjQUFjLEVBQUU7UUFDNUIsa0VBQWtFO1FBQ2xFWCxLQUFLVyxjQUFjLENBQUM2QixVQUFVLEdBQUc7UUFDakMsdURBQXVEO1FBQ3ZEeEMsS0FBS3dCLFNBQVMsR0FBR2lCO1FBQ2pCLGdDQUFnQztRQUNoQzNELDBDQUFNQSxDQUNKa0IsS0FBSzhDLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDQyxPQUFPLENBQUNDLElBQUksRUFDbkM7UUFFRixPQUFPMUUscUVBQVlBLENBQ2pCdUIsU0FDQUEsUUFBUXFDLE9BQU8sQ0FBQ2xELE1BQU1KLElBQUlrQixNQUMxQm5CLHdEQUFLQSxDQUFDMEIsVUFBVSxFQUNoQk4sS0FBSzhDLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDQyxPQUFPLENBQUNDLElBQUksQ0FBQ0MsUUFBUSxDQUFDLGtCQUN6Q1QsWUFDQTlELDREQUFTQSxDQUFDd0UsT0FBTyxFQUNyQnpDO0lBQ0o7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNiLGVBQWVDLE9BQU8sRUFBRWpCLEVBQUUsRUFBRWtCLEdBQUc7SUFDdEMsTUFBTUMsT0FBTyxJQUFJO0lBRWpCbEIsMENBQU1BLENBQUNrQixLQUFLVyxjQUFjLEVBQUU7SUFDNUI3QiwwQ0FBTUEsQ0FBQyxPQUFPa0IsS0FBS1csY0FBYyxDQUFDSCxJQUFJLEtBQUssVUFBVTtJQUVyRCxPQUFPakMscUVBQVlBLENBQ2pCdUIsU0FDQXNELGFBQ0F4RSx3REFBS0EsQ0FBQ2dFLGNBQWMsRUFDcEI1QyxLQUFLVyxjQUFjLENBQUNILElBQUksR0FBRztJQUc3QixrQkFBa0IsR0FDbEIsU0FBUzRDLFlBQVkxQyxJQUFJO1FBQ3ZCNUIsMENBQU1BLENBQUNrQixLQUFLVyxjQUFjLEVBQUU7UUFDNUIsTUFBTVYsT0FBT0QsS0FBS0UsTUFBTSxDQUFDRixLQUFLRSxNQUFNLENBQUNDLE1BQU0sR0FBRyxFQUFFO1FBQ2hELE9BQU9GLFFBQ0xBLElBQUksQ0FBQyxFQUFFLENBQUNJLElBQUksS0FBS3pCLHdEQUFLQSxDQUFDZ0UsY0FBYyxJQUNyQzNDLElBQUksQ0FBQyxFQUFFLENBQUNNLGNBQWMsQ0FBQ04sSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNRSxNQUFNLEtBQUtILEtBQUtXLGNBQWMsQ0FBQ0gsSUFBSSxHQUN2RTNCLEdBQUc2QixRQUNIWCxJQUFJVztJQUNWO0FBQ0Y7QUFFQTs7O0NBR0MsR0FDRCxTQUFTbEIsZ0JBQWdCTSxPQUFPO0lBQzlCaEIsMENBQU1BLENBQUMsSUFBSSxDQUFDNkIsY0FBYyxFQUFFO0lBQzVCN0IsMENBQU1BLENBQUMsT0FBTyxJQUFJLENBQUM2QixjQUFjLENBQUNOLElBQUksS0FBSyxVQUFVO0lBQ3JEUCxRQUFRUCxJQUFJLENBQUMsSUFBSSxDQUFDb0IsY0FBYyxDQUFDTixJQUFJO0FBQ3ZDO0FBRUE7OztDQUdDLEdBQ0QsU0FBU1gsaUNBQWlDSSxPQUFPLEVBQUVqQixFQUFFLEVBQUVrQixHQUFHO0lBQ3hELE1BQU1DLE9BQU8sSUFBSTtJQUVqQixnQ0FBZ0M7SUFDaENsQiwwQ0FBTUEsQ0FDSmtCLEtBQUs4QyxNQUFNLENBQUNDLFVBQVUsQ0FBQ0MsT0FBTyxDQUFDQyxJQUFJLEVBQ25DO0lBR0YsT0FBTzFFLHFFQUFZQSxDQUNqQnVCLFNBQ0FzRCxhQUNBeEUsd0RBQUtBLENBQUMyRCx3QkFBd0IsRUFDOUJ2QyxLQUFLOEMsTUFBTSxDQUFDQyxVQUFVLENBQUNDLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDQyxRQUFRLENBQUMsa0JBQ3pDVCxZQUNBOUQsNERBQVNBLENBQUN3RSxPQUFPLEdBQUc7SUFHMUIsa0JBQWtCLEdBQ2xCLFNBQVNDLFlBQVkxQyxJQUFJO1FBQ3ZCLE1BQU1ULE9BQU9ELEtBQUtFLE1BQU0sQ0FBQ0YsS0FBS0UsTUFBTSxDQUFDQyxNQUFNLEdBQUcsRUFBRTtRQUVoRCxPQUFPLENBQUMxQix1RUFBYUEsQ0FBQ2lDLFNBQ3BCVCxRQUNBQSxJQUFJLENBQUMsRUFBRSxDQUFDSSxJQUFJLEtBQUt6Qix3REFBS0EsQ0FBQzJELHdCQUF3QixHQUM3QzFELEdBQUc2QixRQUNIWCxJQUFJVztJQUNWO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2Rldi9saWIvbGlzdC5qcz81MGU2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db2RlfSBDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnN0cnVjdH0gQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvbnRhaW5lclN0YXRlfSBDb250YWluZXJTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FeGl0ZXJ9IEV4aXRlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG5pbXBvcnQge2ZhY3RvcnlTcGFjZX0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnXG5pbXBvcnQge2FzY2lpRGlnaXQsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge2JsYW5rTGluZX0gZnJvbSAnLi9ibGFuay1saW5lLmpzJ1xuaW1wb3J0IHt0aGVtYXRpY0JyZWFrfSBmcm9tICcuL3RoZW1hdGljLWJyZWFrLmpzJ1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBsaXN0ID0ge1xuICBuYW1lOiAnbGlzdCcsXG4gIHRva2VuaXplOiB0b2tlbml6ZUxpc3RTdGFydCxcbiAgY29udGludWF0aW9uOiB7dG9rZW5pemU6IHRva2VuaXplTGlzdENvbnRpbnVhdGlvbn0sXG4gIGV4aXQ6IHRva2VuaXplTGlzdEVuZFxufVxuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IGxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZUNvbnN0cnVjdCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplTGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlLFxuICBwYXJ0aWFsOiB0cnVlXG59XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuY29uc3QgaW5kZW50Q29uc3RydWN0ID0ge3Rva2VuaXplOiB0b2tlbml6ZUluZGVudCwgcGFydGlhbDogdHJ1ZX1cblxuLy8gVG8gZG86IGBtYXJrZG93bi1yc2AgcGFyc2VzIGxpc3QgaXRlbXMgb24gdGhlaXIgb3duIGFuZCBsYXRlciBzdGl0Y2hlcyB0aGVtXG4vLyB0b2dldGhlci5cblxuLyoqXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVMaXN0U3RhcnQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV1cbiAgbGV0IGluaXRpYWxTaXplID1cbiAgICB0YWlsICYmIHRhaWxbMV0udHlwZSA9PT0gdHlwZXMubGluZVByZWZpeFxuICAgICAgPyB0YWlsWzJdLnNsaWNlU2VyaWFsaXplKHRhaWxbMV0sIHRydWUpLmxlbmd0aFxuICAgICAgOiAwXG4gIGxldCBzaXplID0gMFxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBhc3NlcnQoc2VsZi5jb250YWluZXJTdGF0ZSwgJ2V4cGVjdGVkIHN0YXRlJylcbiAgICBjb25zdCBraW5kID1cbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUudHlwZSB8fFxuICAgICAgKGNvZGUgPT09IGNvZGVzLmFzdGVyaXNrIHx8IGNvZGUgPT09IGNvZGVzLnBsdXNTaWduIHx8IGNvZGUgPT09IGNvZGVzLmRhc2hcbiAgICAgICAgPyB0eXBlcy5saXN0VW5vcmRlcmVkXG4gICAgICAgIDogdHlwZXMubGlzdE9yZGVyZWQpXG5cbiAgICBpZiAoXG4gICAgICBraW5kID09PSB0eXBlcy5saXN0VW5vcmRlcmVkXG4gICAgICAgID8gIXNlbGYuY29udGFpbmVyU3RhdGUubWFya2VyIHx8IGNvZGUgPT09IHNlbGYuY29udGFpbmVyU3RhdGUubWFya2VyXG4gICAgICAgIDogYXNjaWlEaWdpdChjb2RlKVxuICAgICkge1xuICAgICAgaWYgKCFzZWxmLmNvbnRhaW5lclN0YXRlLnR5cGUpIHtcbiAgICAgICAgc2VsZi5jb250YWluZXJTdGF0ZS50eXBlID0ga2luZFxuICAgICAgICBlZmZlY3RzLmVudGVyKGtpbmQsIHtfY29udGFpbmVyOiB0cnVlfSlcbiAgICAgIH1cblxuICAgICAgaWYgKGtpbmQgPT09IHR5cGVzLmxpc3RVbm9yZGVyZWQpIHtcbiAgICAgICAgZWZmZWN0cy5lbnRlcih0eXBlcy5saXN0SXRlbVByZWZpeClcbiAgICAgICAgcmV0dXJuIGNvZGUgPT09IGNvZGVzLmFzdGVyaXNrIHx8IGNvZGUgPT09IGNvZGVzLmRhc2hcbiAgICAgICAgICA/IGVmZmVjdHMuY2hlY2sodGhlbWF0aWNCcmVhaywgbm9rLCBhdE1hcmtlcikoY29kZSlcbiAgICAgICAgICA6IGF0TWFya2VyKGNvZGUpXG4gICAgICB9XG5cbiAgICAgIGlmICghc2VsZi5pbnRlcnJ1cHQgfHwgY29kZSA9PT0gY29kZXMuZGlnaXQxKSB7XG4gICAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGlzdEl0ZW1QcmVmaXgpXG4gICAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGlzdEl0ZW1WYWx1ZSlcbiAgICAgICAgcmV0dXJuIGluc2lkZShjb2RlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGluc2lkZShjb2RlKSB7XG4gICAgYXNzZXJ0KHNlbGYuY29udGFpbmVyU3RhdGUsICdleHBlY3RlZCBzdGF0ZScpXG4gICAgaWYgKGFzY2lpRGlnaXQoY29kZSkgJiYgKytzaXplIDwgY29uc3RhbnRzLmxpc3RJdGVtVmFsdWVTaXplTWF4KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBpbnNpZGVcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAoIXNlbGYuaW50ZXJydXB0IHx8IHNpemUgPCAyKSAmJlxuICAgICAgKHNlbGYuY29udGFpbmVyU3RhdGUubWFya2VyXG4gICAgICAgID8gY29kZSA9PT0gc2VsZi5jb250YWluZXJTdGF0ZS5tYXJrZXJcbiAgICAgICAgOiBjb2RlID09PSBjb2Rlcy5yaWdodFBhcmVudGhlc2lzIHx8IGNvZGUgPT09IGNvZGVzLmRvdClcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5saXN0SXRlbVZhbHVlKVxuICAgICAgcmV0dXJuIGF0TWFya2VyKGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICoqL1xuICBmdW5jdGlvbiBhdE1hcmtlcihjb2RlKSB7XG4gICAgYXNzZXJ0KHNlbGYuY29udGFpbmVyU3RhdGUsICdleHBlY3RlZCBzdGF0ZScpXG4gICAgYXNzZXJ0KGNvZGUgIT09IGNvZGVzLmVvZiwgJ2VvZiAoYG51bGxgKSBpcyBub3QgYSBtYXJrZXInKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGlzdEl0ZW1NYXJrZXIpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpc3RJdGVtTWFya2VyKVxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUubWFya2VyID0gc2VsZi5jb250YWluZXJTdGF0ZS5tYXJrZXIgfHwgY29kZVxuICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKFxuICAgICAgYmxhbmtMaW5lLFxuICAgICAgLy8gQ2Fu4oCZdCBiZSBlbXB0eSB3aGVuIGludGVycnVwdGluZy5cbiAgICAgIHNlbGYuaW50ZXJydXB0ID8gbm9rIDogb25CbGFuayxcbiAgICAgIGVmZmVjdHMuYXR0ZW1wdChcbiAgICAgICAgbGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlQ29uc3RydWN0LFxuICAgICAgICBlbmRPZlByZWZpeCxcbiAgICAgICAgb3RoZXJQcmVmaXhcbiAgICAgIClcbiAgICApXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBvbkJsYW5rKGNvZGUpIHtcbiAgICBhc3NlcnQoc2VsZi5jb250YWluZXJTdGF0ZSwgJ2V4cGVjdGVkIHN0YXRlJylcbiAgICBzZWxmLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUgPSB0cnVlXG4gICAgaW5pdGlhbFNpemUrK1xuICAgIHJldHVybiBlbmRPZlByZWZpeChjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gb3RoZXJQcmVmaXgoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSlcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSlcbiAgICAgIHJldHVybiBlbmRPZlByZWZpeFxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGVuZE9mUHJlZml4KGNvZGUpIHtcbiAgICBhc3NlcnQoc2VsZi5jb250YWluZXJTdGF0ZSwgJ2V4cGVjdGVkIHN0YXRlJylcbiAgICBzZWxmLmNvbnRhaW5lclN0YXRlLnNpemUgPVxuICAgICAgaW5pdGlhbFNpemUgK1xuICAgICAgc2VsZi5zbGljZVNlcmlhbGl6ZShlZmZlY3RzLmV4aXQodHlwZXMubGlzdEl0ZW1QcmVmaXgpLCB0cnVlKS5sZW5ndGhcbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxpc3RDb250aW51YXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuXG4gIGFzc2VydChzZWxmLmNvbnRhaW5lclN0YXRlLCAnZXhwZWN0ZWQgc3RhdGUnKVxuICBzZWxmLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cgPSB1bmRlZmluZWRcblxuICByZXR1cm4gZWZmZWN0cy5jaGVjayhibGFua0xpbmUsIG9uQmxhbmssIG5vdEJsYW5rKVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIG9uQmxhbmsoY29kZSkge1xuICAgIGFzc2VydChzZWxmLmNvbnRhaW5lclN0YXRlLCAnZXhwZWN0ZWQgc3RhdGUnKVxuICAgIGFzc2VydCh0eXBlb2Ygc2VsZi5jb250YWluZXJTdGF0ZS5zaXplID09PSAnbnVtYmVyJywgJ2V4cGVjdGVkIHNpemUnKVxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXMgPVxuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcyB8fFxuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lXG5cbiAgICAvLyBXZSBoYXZlIGEgYmxhbmsgbGluZS5cbiAgICAvLyBTdGlsbCwgdHJ5IHRvIGNvbnN1bWUgYXQgbW9zdCB0aGUgaXRlbXMgc2l6ZS5cbiAgICByZXR1cm4gZmFjdG9yeVNwYWNlKFxuICAgICAgZWZmZWN0cyxcbiAgICAgIG9rLFxuICAgICAgdHlwZXMubGlzdEl0ZW1JbmRlbnQsXG4gICAgICBzZWxmLmNvbnRhaW5lclN0YXRlLnNpemUgKyAxXG4gICAgKShjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gbm90QmxhbmsoY29kZSkge1xuICAgIGFzc2VydChzZWxmLmNvbnRhaW5lclN0YXRlLCAnZXhwZWN0ZWQgc3RhdGUnKVxuICAgIGlmIChzZWxmLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzIHx8ICFtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBzZWxmLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzID0gdW5kZWZpbmVkXG4gICAgICBzZWxmLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUgPSB1bmRlZmluZWRcbiAgICAgIHJldHVybiBub3RJbkN1cnJlbnRJdGVtKGNvZGUpXG4gICAgfVxuXG4gICAgc2VsZi5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcyA9IHVuZGVmaW5lZFxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSA9IHVuZGVmaW5lZFxuICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoaW5kZW50Q29uc3RydWN0LCBvaywgbm90SW5DdXJyZW50SXRlbSkoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIG5vdEluQ3VycmVudEl0ZW0oY29kZSkge1xuICAgIGFzc2VydChzZWxmLmNvbnRhaW5lclN0YXRlLCAnZXhwZWN0ZWQgc3RhdGUnKVxuICAgIC8vIFdoaWxlIHdlIGRvIGNvbnRpbnVlLCB3ZSBzaWduYWwgdGhhdCB0aGUgZmxvdyBzaG91bGQgYmUgY2xvc2VkLlxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyA9IHRydWVcbiAgICAvLyBBcyB3ZeKAmXJlIGNsb3NpbmcgZmxvdywgd2XigJlyZSBubyBsb25nZXIgaW50ZXJydXB0aW5nLlxuICAgIHNlbGYuaW50ZXJydXB0ID0gdW5kZWZpbmVkXG4gICAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cbiAgICBhc3NlcnQoXG4gICAgICBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbCxcbiAgICAgICdleHBlY3RlZCBgZGlzYWJsZS5udWxsYCB0byBiZSBwb3B1bGF0ZWQnXG4gICAgKVxuICAgIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgICBlZmZlY3RzLFxuICAgICAgZWZmZWN0cy5hdHRlbXB0KGxpc3QsIG9rLCBub2spLFxuICAgICAgdHlwZXMubGluZVByZWZpeCxcbiAgICAgIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCdjb2RlSW5kZW50ZWQnKVxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IGNvbnN0YW50cy50YWJTaXplXG4gICAgKShjb2RlKVxuICB9XG59XG5cbi8qKlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplSW5kZW50KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcblxuICBhc3NlcnQoc2VsZi5jb250YWluZXJTdGF0ZSwgJ2V4cGVjdGVkIHN0YXRlJylcbiAgYXNzZXJ0KHR5cGVvZiBzZWxmLmNvbnRhaW5lclN0YXRlLnNpemUgPT09ICdudW1iZXInLCAnZXhwZWN0ZWQgc2l6ZScpXG5cbiAgcmV0dXJuIGZhY3RvcnlTcGFjZShcbiAgICBlZmZlY3RzLFxuICAgIGFmdGVyUHJlZml4LFxuICAgIHR5cGVzLmxpc3RJdGVtSW5kZW50LFxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuc2l6ZSArIDFcbiAgKVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGFmdGVyUHJlZml4KGNvZGUpIHtcbiAgICBhc3NlcnQoc2VsZi5jb250YWluZXJTdGF0ZSwgJ2V4cGVjdGVkIHN0YXRlJylcbiAgICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV1cbiAgICByZXR1cm4gdGFpbCAmJlxuICAgICAgdGFpbFsxXS50eXBlID09PSB0eXBlcy5saXN0SXRlbUluZGVudCAmJlxuICAgICAgdGFpbFsyXS5zbGljZVNlcmlhbGl6ZSh0YWlsWzFdLCB0cnVlKS5sZW5ndGggPT09IHNlbGYuY29udGFpbmVyU3RhdGUuc2l6ZVxuICAgICAgPyBvayhjb2RlKVxuICAgICAgOiBub2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0eXBlIHtFeGl0ZXJ9XG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxpc3RFbmQoZWZmZWN0cykge1xuICBhc3NlcnQodGhpcy5jb250YWluZXJTdGF0ZSwgJ2V4cGVjdGVkIHN0YXRlJylcbiAgYXNzZXJ0KHR5cGVvZiB0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUgPT09ICdzdHJpbmcnLCAnZXhwZWN0ZWQgdHlwZScpXG4gIGVmZmVjdHMuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpXG59XG5cbi8qKlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcblxuICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuICBhc3NlcnQoXG4gICAgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwsXG4gICAgJ2V4cGVjdGVkIGBkaXNhYmxlLm51bGxgIHRvIGJlIHBvcHVsYXRlZCdcbiAgKVxuXG4gIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgZWZmZWN0cyxcbiAgICBhZnRlclByZWZpeCxcbiAgICB0eXBlcy5saXN0SXRlbVByZWZpeFdoaXRlc3BhY2UsXG4gICAgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBjb25zdGFudHMudGFiU2l6ZSArIDFcbiAgKVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGFmdGVyUHJlZml4KGNvZGUpIHtcbiAgICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV1cblxuICAgIHJldHVybiAhbWFya2Rvd25TcGFjZShjb2RlKSAmJlxuICAgICAgdGFpbCAmJlxuICAgICAgdGFpbFsxXS50eXBlID09PSB0eXBlcy5saXN0SXRlbVByZWZpeFdoaXRlc3BhY2VcbiAgICAgID8gb2soY29kZSlcbiAgICAgIDogbm9rKGNvZGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmYWN0b3J5U3BhY2UiLCJhc2NpaURpZ2l0IiwibWFya2Rvd25TcGFjZSIsImNvZGVzIiwiY29uc3RhbnRzIiwidHlwZXMiLCJvayIsImFzc2VydCIsImJsYW5rTGluZSIsInRoZW1hdGljQnJlYWsiLCJsaXN0IiwibmFtZSIsInRva2VuaXplIiwidG9rZW5pemVMaXN0U3RhcnQiLCJjb250aW51YXRpb24iLCJ0b2tlbml6ZUxpc3RDb250aW51YXRpb24iLCJleGl0IiwidG9rZW5pemVMaXN0RW5kIiwibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlQ29uc3RydWN0IiwidG9rZW5pemVMaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLCJwYXJ0aWFsIiwiaW5kZW50Q29uc3RydWN0IiwidG9rZW5pemVJbmRlbnQiLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsInRhaWwiLCJldmVudHMiLCJsZW5ndGgiLCJpbml0aWFsU2l6ZSIsInR5cGUiLCJsaW5lUHJlZml4Iiwic2xpY2VTZXJpYWxpemUiLCJzaXplIiwic3RhcnQiLCJjb2RlIiwiY29udGFpbmVyU3RhdGUiLCJraW5kIiwiYXN0ZXJpc2siLCJwbHVzU2lnbiIsImRhc2giLCJsaXN0VW5vcmRlcmVkIiwibGlzdE9yZGVyZWQiLCJtYXJrZXIiLCJlbnRlciIsIl9jb250YWluZXIiLCJsaXN0SXRlbVByZWZpeCIsImNoZWNrIiwiYXRNYXJrZXIiLCJpbnRlcnJ1cHQiLCJkaWdpdDEiLCJsaXN0SXRlbVZhbHVlIiwiaW5zaWRlIiwibGlzdEl0ZW1WYWx1ZVNpemVNYXgiLCJjb25zdW1lIiwicmlnaHRQYXJlbnRoZXNpcyIsImRvdCIsImVvZiIsImxpc3RJdGVtTWFya2VyIiwib25CbGFuayIsImF0dGVtcHQiLCJlbmRPZlByZWZpeCIsIm90aGVyUHJlZml4IiwiaW5pdGlhbEJsYW5rTGluZSIsImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsIl9jbG9zZUZsb3ciLCJ1bmRlZmluZWQiLCJub3RCbGFuayIsImZ1cnRoZXJCbGFua0xpbmVzIiwibGlzdEl0ZW1JbmRlbnQiLCJub3RJbkN1cnJlbnRJdGVtIiwicGFyc2VyIiwiY29uc3RydWN0cyIsImRpc2FibGUiLCJudWxsIiwiaW5jbHVkZXMiLCJ0YWJTaXplIiwiYWZ0ZXJQcmVmaXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/list.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setextUnderline: () => (/* binding */ setextUnderline)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n/** @type {Construct} */ const setextUnderline = {\n name: \"setextUnderline\",\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n};\n/** @type {Resolver} */ function resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */ let content;\n /** @type {number | undefined} */ let text;\n /** @type {number | undefined} */ let definition;\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while(index--){\n if (events[index][0] === \"enter\") {\n if (events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.content) {\n content = index;\n break;\n }\n if (events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.paragraph) {\n text = index;\n }\n } else {\n if (events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.content) {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.definition) {\n definition = index;\n }\n }\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(text !== undefined, \"expected a `text` index to be found\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(content !== undefined, \"expected a `text` index to be found\");\n const heading = {\n type: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.setextHeading,\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // Change the paragraph to setext heading text.\n events[text][1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.setextHeadingText;\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, [\n \"enter\",\n heading,\n context\n ]);\n events.splice(definition + 1, 0, [\n \"exit\",\n events[content][1],\n context\n ]);\n events[content][1].end = Object.assign({}, events[definition][1].end);\n } else {\n events[content][1] = heading;\n }\n // Add the heading exit at the end.\n events.push([\n \"exit\",\n heading,\n context\n ]);\n return events;\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code>} */ let marker;\n return start;\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */ let paragraph;\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo, \"expected `=` or `-`\");\n // Find an opening.\n while(index--){\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding && self.events[index][1].type !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.linePrefix && self.events[index][1].type !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.content) {\n paragraph = self.events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.paragraph;\n break;\n }\n }\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.setextHeadingLine);\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */ function before(code) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.setextHeadingLineSequence);\n return inside(code);\n }\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */ function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.setextHeadingLineSequence);\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, after, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineSuffix)(code) : after(code);\n }\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.setextHeadingLine);\n return ok(code);\n }\n return nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi9zZXRleHQtdW5kZXJsaW5lLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7Ozs7O0NBT0MsR0FFbUQ7QUFDc0I7QUFDeEI7QUFDZjtBQUVuQyxzQkFBc0IsR0FDZixNQUFNTyxrQkFBa0I7SUFDN0JDLE1BQU07SUFDTkMsVUFBVUM7SUFDVkMsV0FBV0M7QUFDYixFQUFDO0FBRUQscUJBQXFCLEdBQ3JCLFNBQVNBLHlCQUF5QkMsTUFBTSxFQUFFQyxPQUFPO0lBQy9DLHFDQUFxQztJQUNyQyxJQUFJQyxRQUFRRixPQUFPRyxNQUFNO0lBQ3pCLCtCQUErQixHQUMvQixJQUFJQztJQUNKLCtCQUErQixHQUMvQixJQUFJQztJQUNKLCtCQUErQixHQUMvQixJQUFJQztJQUVKLG1DQUFtQztJQUNuQywyREFBMkQ7SUFDM0QsTUFBT0osUUFBUztRQUNkLElBQUlGLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTO1lBQ2hDLElBQUlGLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLEVBQUUsQ0FBQ0ssSUFBSSxLQUFLaEIsd0RBQUtBLENBQUNhLE9BQU8sRUFBRTtnQkFDM0NBLFVBQVVGO2dCQUNWO1lBQ0Y7WUFFQSxJQUFJRixNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFLENBQUNLLElBQUksS0FBS2hCLHdEQUFLQSxDQUFDaUIsU0FBUyxFQUFFO2dCQUM3Q0gsT0FBT0g7WUFDVDtRQUNGLE9BRUs7WUFDSCxJQUFJRixNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFLENBQUNLLElBQUksS0FBS2hCLHdEQUFLQSxDQUFDYSxPQUFPLEVBQUU7Z0JBQzNDLHdEQUF3RDtnQkFDeERKLE9BQU9TLE1BQU0sQ0FBQ1AsT0FBTztZQUN2QjtZQUVBLElBQUksQ0FBQ0ksY0FBY04sTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRSxDQUFDSyxJQUFJLEtBQUtoQix3REFB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SUFFQTs7Ozs7Ozs7OztHQVVDLEdBQ0QsU0FBU1ksT0FBT1osSUFBSTtRQUNsQkosUUFBUWMsS0FBSyxDQUFDMUMsd0RBQUtBLENBQUM2Qyx5QkFBeUI7UUFDN0MsT0FBT0MsT0FBT2Q7SUFDaEI7SUFFQTs7Ozs7Ozs7OztHQVVDLEdBQ0QsU0FBU2MsT0FBT2QsSUFBSTtRQUNsQixJQUFJQSxTQUFTRCxRQUFRO1lBQ25CSCxRQUFRbUIsT0FBTyxDQUFDZjtZQUNoQixPQUFPYztRQUNUO1FBRUFsQixRQUFRb0IsSUFBSSxDQUFDaEQsd0RBQUtBLENBQUM2Qyx5QkFBeUI7UUFFNUMsT0FBTy9DLHVFQUFhQSxDQUFDa0MsUUFDakJwQyxxRUFBWUEsQ0FBQ2dDLFNBQVNxQixPQUFPakQsd0RBQUtBLENBQUNrRCxVQUFVLEVBQUVsQixRQUMvQ2lCLE1BQU1qQjtJQUNaO0lBRUE7Ozs7Ozs7Ozs7R0FVQyxHQUNELFNBQVNpQixNQUFNakIsSUFBSTtRQUNqQixJQUFJQSxTQUFTakMsd0RBQUtBLENBQUNvRCxHQUFHLElBQUl0RCw0RUFBa0JBLENBQUNtQyxPQUFPO1lBQ2xESixRQUFRb0IsSUFBSSxDQUFDaEQsd0RBQUtBLENBQUMyQyxpQkFBaUI7WUFDcEMsT0FBTzFDLEdBQUcrQjtRQUNaO1FBRUEsT0FBT0gsSUFBSUc7SUFDYjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL3NldGV4dC11bmRlcmxpbmUuanM/NjZlNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBzZXRleHRVbmRlcmxpbmUgPSB7XG4gIG5hbWU6ICdzZXRleHRVbmRlcmxpbmUnLFxuICB0b2tlbml6ZTogdG9rZW5pemVTZXRleHRVbmRlcmxpbmUsXG4gIHJlc29sdmVUbzogcmVzb2x2ZVRvU2V0ZXh0VW5kZXJsaW5lXG59XG5cbi8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG5mdW5jdGlvbiByZXNvbHZlVG9TZXRleHRVbmRlcmxpbmUoZXZlbnRzLCBjb250ZXh0KSB7XG4gIC8vIFRvIGRvOiByZXNvbHZlIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgbGV0IGluZGV4ID0gZXZlbnRzLmxlbmd0aFxuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGNvbnRlbnRcbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCB0ZXh0XG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgZGVmaW5pdGlvblxuXG4gIC8vIEZpbmQgdGhlIG9wZW5pbmcgb2YgdGhlIGNvbnRlbnQuXG4gIC8vIEl04oCZbGwgYWx3YXlzIGV4aXN0OiB3ZSBkb27igJl0IHRva2VuaXplIGlmIGl0IGlzbuKAmXQgdGhlcmUuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgaWYgKGV2ZW50c1tpbmRleF1bMF0gPT09ICdlbnRlcicpIHtcbiAgICAgIGlmIChldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IHR5cGVzLmNvbnRlbnQpIHtcbiAgICAgICAgY29udGVudCA9IGluZGV4XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IHR5cGVzLnBhcmFncmFwaCkge1xuICAgICAgICB0ZXh0ID0gaW5kZXhcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhpdFxuICAgIGVsc2Uge1xuICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gdHlwZXMuY29udGVudCkge1xuICAgICAgICAvLyBSZW1vdmUgdGhlIGNvbnRlbnQgZW5kIChpZiBuZWVkZWQgd2XigJlsbCBhZGQgaXQgbGF0ZXIpXG4gICAgICAgIGV2ZW50cy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgICB9XG5cbiAgICAgIGlmICghZGVmaW5pdGlvbiAmJiBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IHR5cGVzLmRlZmluaXRpb24pIHtcbiAgICAgICAgZGVmaW5pdGlvbiA9IGluZGV4XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXNzZXJ0KHRleHQgIT09IHVuZGVmaW5lZCwgJ2V4cGVjdGVkIGEgYHRleHRgIGluZGV4IHRvIGJlIGZvdW5kJylcbiAgYXNzZXJ0KGNvbnRlbnQgIT09IHVuZGVmaW5lZCwgJ2V4cGVjdGVkIGEgYHRleHRgIGluZGV4IHRvIGJlIGZvdW5kJylcblxuICBjb25zdCBoZWFkaW5nID0ge1xuICAgIHR5cGU6IHR5cGVzLnNldGV4dEhlYWRpbmcsXG4gICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1t0ZXh0XVsxXS5zdGFydCksXG4gICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdWzFdLmVuZClcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgcGFyYWdyYXBoIHRvIHNldGV4dCBoZWFkaW5nIHRleHQuXG4gIGV2ZW50c1t0ZXh0XVsxXS50eXBlID0gdHlwZXMuc2V0ZXh0SGVhZGluZ1RleHRcblxuICAvLyBJZiB3ZSBoYXZlIGRlZmluaXRpb25zIGluIHRoZSBjb250ZW50LCB3ZeKAmWxsIGtlZXAgb24gaGF2aW5nIGNvbnRlbnQsXG4gIC8vIGJ1dCB3ZSBuZWVkIG1vdmUgaXQuXG4gIGlmIChkZWZpbml0aW9uKSB7XG4gICAgZXZlbnRzLnNwbGljZSh0ZXh0LCAwLCBbJ2VudGVyJywgaGVhZGluZywgY29udGV4dF0pXG4gICAgZXZlbnRzLnNwbGljZShkZWZpbml0aW9uICsgMSwgMCwgWydleGl0JywgZXZlbnRzW2NvbnRlbnRdWzFdLCBjb250ZXh0XSlcbiAgICBldmVudHNbY29udGVudF1bMV0uZW5kID0gT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2RlZmluaXRpb25dWzFdLmVuZClcbiAgfSBlbHNlIHtcbiAgICBldmVudHNbY29udGVudF1bMV0gPSBoZWFkaW5nXG4gIH1cblxuICAvLyBBZGQgdGhlIGhlYWRpbmcgZXhpdCBhdCB0aGUgZW5kLlxuICBldmVudHMucHVzaChbJ2V4aXQnLCBoZWFkaW5nLCBjb250ZXh0XSlcblxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplU2V0ZXh0VW5kZXJsaW5lKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPn0gKi9cbiAgbGV0IG1hcmtlclxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBBdCBzdGFydCBvZiBoZWFkaW5nIChzZXRleHQpIHVuZGVybGluZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IGFhXG4gICAqID4gfCA9PVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGxldCBpbmRleCA9IHNlbGYuZXZlbnRzLmxlbmd0aFxuICAgIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgcGFyYWdyYXBoXG5cbiAgICBhc3NlcnQoXG4gICAgICBjb2RlID09PSBjb2Rlcy5kYXNoIHx8IGNvZGUgPT09IGNvZGVzLmVxdWFsc1RvLFxuICAgICAgJ2V4cGVjdGVkIGA9YCBvciBgLWAnXG4gICAgKVxuXG4gICAgLy8gRmluZCBhbiBvcGVuaW5nLlxuICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAvLyBTa2lwIGVudGVyL2V4aXQgb2YgbGluZSBlbmRpbmcsIGxpbmUgcHJlZml4LCBhbmQgY29udGVudC5cbiAgICAgIC8vIFdlIGNhbiBub3cgZWl0aGVyIGhhdmUgYSBkZWZpbml0aW9uIG9yIGEgcGFyYWdyYXBoLlxuICAgICAgaWYgKFxuICAgICAgICBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSAhPT0gdHlwZXMubGluZUVuZGluZyAmJlxuICAgICAgICBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSAhPT0gdHlwZXMubGluZVByZWZpeCAmJlxuICAgICAgICBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSAhPT0gdHlwZXMuY29udGVudFxuICAgICAgKSB7XG4gICAgICAgIHBhcmFncmFwaCA9IHNlbGYuZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSB0eXBlcy5wYXJhZ3JhcGhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUbyBkbzogaGFuZGxlIGxhenkvcGllcmNlIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICAvLyBUbyBkbzogcGFyc2UgaW5kZW50IGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICBpZiAoIXNlbGYucGFyc2VyLmxhenlbc2VsZi5ub3coKS5saW5lXSAmJiAoc2VsZi5pbnRlcnJ1cHQgfHwgcGFyYWdyYXBoKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlcy5zZXRleHRIZWFkaW5nTGluZSlcbiAgICAgIG1hcmtlciA9IGNvZGVcbiAgICAgIHJldHVybiBiZWZvcmUoY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZSwgYXQgYC1gIG9yIGA9YC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IGFhXG4gICAqID4gfCA9PVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmVmb3JlKGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLnNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UpXG4gICAgcmV0dXJuIGluc2lkZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgYWFcbiAgICogPiB8ID09XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGluc2lkZVxuICAgIH1cblxuICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5zZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlKVxuXG4gICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSlcbiAgICAgID8gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyLCB0eXBlcy5saW5lU3VmZml4KShjb2RlKVxuICAgICAgOiBhZnRlcihjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIHNlcXVlbmNlLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgYWFcbiAgICogPiB8ID09XG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLnNldGV4dEhlYWRpbmdMaW5lKVxuICAgICAgcmV0dXJuIG9rKGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG4iXSwibmFtZXMiOlsiZmFjdG9yeVNwYWNlIiwibWFya2Rvd25MaW5lRW5kaW5nIiwibWFya2Rvd25TcGFjZSIsImNvZGVzIiwidHlwZXMiLCJvayIsImFzc2VydCIsInNldGV4dFVuZGVybGluZSIsIm5hbWUiLCJ0b2tlbml6ZSIsInRva2VuaXplU2V0ZXh0VW5kZXJsaW5lIiwicmVzb2x2ZVRvIiwicmVzb2x2ZVRvU2V0ZXh0VW5kZXJsaW5lIiwiZXZlbnRzIiwiY29udGV4dCIsImluZGV4IiwibGVuZ3RoIiwiY29udGVudCIsInRleHQiLCJkZWZpbml0aW9uIiwidHlwZSIsInBhcmFncmFwaCIsInNwbGljZSIsInVuZGVmaW5lZCIsImhlYWRpbmciLCJzZXRleHRIZWFkaW5nIiwic3RhcnQiLCJPYmplY3QiLCJhc3NpZ24iLCJlbmQiLCJzZXRleHRIZWFkaW5nVGV4dCIsInB1c2giLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsIm1hcmtlciIsImNvZGUiLCJkYXNoIiwiZXF1YWxzVG8iLCJsaW5lRW5kaW5nIiwibGluZVByZWZpeCIsInBhcnNlciIsImxhenkiLCJub3ciLCJsaW5lIiwiaW50ZXJydXB0IiwiZW50ZXIiLCJzZXRleHRIZWFkaW5nTGluZSIsImJlZm9yZSIsInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiLCJpbnNpZGUiLCJjb25zdW1lIiwiZXhpdCIsImFmdGVyIiwibGluZVN1ZmZpeCIsImVvZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js":
-/*!******************************************************************************!*\
- !*** ../../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js ***!
- \******************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n/** @type {Construct} */ const thematicBreak = {\n name: \"thematicBreak\",\n tokenize: tokenizeThematicBreak\n};\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable<Code>} */ let marker;\n return start;\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.thematicBreak);\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */ function before(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.underscore, \"expected `*`, `-`, or `_`\");\n marker = code;\n return atBreak(code);\n }\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */ function atBreak(code) {\n if (code === marker) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.thematicBreakSequence);\n return sequence(code);\n }\n if (size >= micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.thematicBreakMarkerCountMin && (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.thematicBreak);\n return ok(code);\n }\n return nok(code);\n }\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */ function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.thematicBreakSequence);\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code) ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, atBreak, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code) : atBreak(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvZGV2L2xpYi90aGVtYXRpYy1icmVhay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7OztDQU1DLEdBRW1EO0FBQ3NCO0FBQ2I7QUFDMUI7QUFFbkMsc0JBQXNCLEdBQ2YsTUFBTVEsZ0JBQWdCO0lBQzNCQyxNQUFNO0lBQ05DLFVBQVVDO0FBQ1osRUFBQztBQUVEOzs7Q0FHQyxHQUNELFNBQVNBLHNCQUFzQkMsT0FBTyxFQUFFTixFQUFFLEVBQUVPLEdBQUc7SUFDN0MsSUFBSUMsT0FBTztJQUNYLDhCQUE4QixHQUM5QixJQUFJQztJQUVKLE9BQU9DO0lBRVA7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsTUFBTUMsSUFBSTtRQUNqQkwsUUFBUU0sS0FBSyxDQUFDYix3REFBS0EsQ0FBQ0csYUFBYTtRQUNqQywwQ0FBMEM7UUFDMUMsT0FBT1csT0FBT0Y7SUFDaEI7SUFFQTs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTRSxPQUFPRixJQUFJO1FBQ2xCViwwQ0FBTUEsQ0FDSlUsU0FBU2Qsd0RBQUtBLENBQUNpQixRQUFRLElBQ3JCSCxTQUFTZCx3REFBS0EsQ0FBQ2tCLElBQUksSUFDbkJKLFNBQVNkLHdEQUFLQSxDQUFDbUIsVUFBVSxFQUMzQjtRQUVGUCxTQUFTRTtRQUNULE9BQU9NLFFBQVFOO0lBQ2pCO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU00sUUFBUU4sSUFBSTtRQUNuQixJQUFJQSxTQUFTRixRQUFRO1lBQ25CSCxRQUFRTSxLQUFLLENBQUNiLHdEQUFLQSxDQUFDbUIscUJBQXFCO1lBQ3pDLE9BQU9DLFNBQVNSO1FBQ2xCO1FBRUEsSUFDRUgsUUFBUVYsNERBQVNBLENBQUNzQiwyQkFBMkIsSUFDNUNULENBQUFBLFNBQVNkLHdEQUFLQSxDQUFDd0IsR0FBRyxJQUFJMUIsNEVBQWtCQSxDQUFDZ0IsS0FBSSxHQUM5QztZQUNBTCxRQUFRZ0IsSUFBSSxDQUFDdkIsd0RBQUtBLENBQUNHLGFBQWE7WUFDaEMsT0FBT0YsR0FBR1c7UUFDWjtRQUVBLE9BQU9KLElBQUlJO0lBQ2I7SUFFQTs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTUSxTQUFTUixJQUFJO1FBQ3BCLElBQUlBLFNBQVNGLFFBQVE7WUFDbkJILFFBQVFpQixPQUFPLENBQUNaO1lBQ2hCSDtZQUNBLE9BQU9XO1FBQ1Q7UUFFQWIsUUFBUWdCLElBQUksQ0FBQ3ZCLHdEQUFLQSxDQUFDbUIscUJBQXFCO1FBQ3hDLE9BQU90Qix1RUFBYUEsQ0FBQ2UsUUFDakJqQixxRUFBWUEsQ0FBQ1ksU0FBU1csU0FBU2xCLHdEQUFLQSxDQUFDeUIsVUFBVSxFQUFFYixRQUNqRE0sUUFBUU47SUFDZDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9kZXYvbGliL3RoZW1hdGljLWJyZWFrLmpzP2M0OWMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNvZGV9IENvZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IHRoZW1hdGljQnJlYWsgPSB7XG4gIG5hbWU6ICd0aGVtYXRpY0JyZWFrJyxcbiAgdG9rZW5pemU6IHRva2VuaXplVGhlbWF0aWNCcmVha1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVRoZW1hdGljQnJlYWsoZWZmZWN0cywgb2ssIG5vaykge1xuICBsZXQgc2l6ZSA9IDBcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPn0gKi9cbiAgbGV0IG1hcmtlclxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiB0aGVtYXRpYyBicmVhay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICoqKlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMudGhlbWF0aWNCcmVhaylcbiAgICAvLyBUbyBkbzogcGFyc2UgaW5kZW50IGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICByZXR1cm4gYmVmb3JlKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZSwgYXQgbWFya2VyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKioqXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZWZvcmUoY29kZSkge1xuICAgIGFzc2VydChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmFzdGVyaXNrIHx8XG4gICAgICAgIGNvZGUgPT09IGNvZGVzLmRhc2ggfHxcbiAgICAgICAgY29kZSA9PT0gY29kZXMudW5kZXJzY29yZSxcbiAgICAgICdleHBlY3RlZCBgKmAsIGAtYCwgb3IgYF9gJ1xuICAgIClcbiAgICBtYXJrZXIgPSBjb2RlXG4gICAgcmV0dXJuIGF0QnJlYWsoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBzb21ldGhpbmcsIGJlZm9yZSBzb21ldGhpbmcgZWxzZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICoqKlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYXRCcmVhayhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlcy50aGVtYXRpY0JyZWFrU2VxdWVuY2UpXG4gICAgICByZXR1cm4gc2VxdWVuY2UoY29kZSlcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzaXplID49IGNvbnN0YW50cy50aGVtYXRpY0JyZWFrTWFya2VyQ291bnRNaW4gJiZcbiAgICAgIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKVxuICAgICkge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLnRoZW1hdGljQnJlYWspXG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gc2VxdWVuY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqKipcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcXVlbmNlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHNpemUrK1xuICAgICAgcmV0dXJuIHNlcXVlbmNlXG4gICAgfVxuXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLnRoZW1hdGljQnJlYWtTZXF1ZW5jZSlcbiAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKVxuICAgICAgPyBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYXRCcmVhaywgdHlwZXMud2hpdGVzcGFjZSkoY29kZSlcbiAgICAgIDogYXRCcmVhayhjb2RlKVxuICB9XG59XG4iXSwibmFtZXMiOlsiZmFjdG9yeVNwYWNlIiwibWFya2Rvd25MaW5lRW5kaW5nIiwibWFya2Rvd25TcGFjZSIsImNvZGVzIiwiY29uc3RhbnRzIiwidHlwZXMiLCJvayIsImFzc2VydCIsInRoZW1hdGljQnJlYWsiLCJuYW1lIiwidG9rZW5pemUiLCJ0b2tlbml6ZVRoZW1hdGljQnJlYWsiLCJlZmZlY3RzIiwibm9rIiwic2l6ZSIsIm1hcmtlciIsInN0YXJ0IiwiY29kZSIsImVudGVyIiwiYmVmb3JlIiwiYXN0ZXJpc2siLCJkYXNoIiwidW5kZXJzY29yZSIsImF0QnJlYWsiLCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiLCJzZXF1ZW5jZSIsInRoZW1hdGljQnJlYWtNYXJrZXJDb3VudE1pbiIsImVvZiIsImV4aXQiLCJjb25zdW1lIiwid2hpdGVzcGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmAutolinkLiteralHtml: () => (/* binding */ gfmAutolinkLiteralHtml)\n/* harmony export */ });\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/**\n * @typedef {import('micromark-util-types').CompileContext} CompileContext\n * @typedef {import('micromark-util-types').Handle} Handle\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').Token} Token\n */ \n/**\n * Create an HTML extension for `micromark` to support GitHub autolink literal\n * when serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GitHub autolink literal when serializing to HTML.\n */ function gfmAutolinkLiteralHtml() {\n return {\n exit: {\n literalAutolinkEmail,\n literalAutolinkHttp,\n literalAutolinkWww\n }\n };\n}\n/**\n * @this {CompileContext}\n * @type {Handle}\n */ function literalAutolinkWww(token) {\n anchorFromToken.call(this, token, \"http://\");\n}\n/**\n * @this {CompileContext}\n * @type {Handle}\n */ function literalAutolinkEmail(token) {\n anchorFromToken.call(this, token, \"mailto:\");\n}\n/**\n * @this {CompileContext}\n * @type {Handle}\n */ function literalAutolinkHttp(token) {\n anchorFromToken.call(this, token);\n}\n/**\n * @this CompileContext\n * @param {Token} token\n * @param {string | null | undefined} [protocol]\n * @returns {undefined}\n */ function anchorFromToken(token, protocol) {\n const url = this.sliceSerialize(token);\n this.tag('<a href=\"' + (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.sanitizeUri)((protocol || \"\") + url) + '\">');\n this.raw(this.encode(url));\n this.tag(\"</a>\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWF1dG9saW5rLWxpdGVyYWwvZGV2L2xpYi9odG1sLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFc0Q7QUFFdkQ7Ozs7Ozs7Q0FPQyxHQUNNLFNBQVNDO0lBQ2QsT0FBTztRQUNMQyxNQUFNO1lBQUNDO1lBQXNCQztZQUFxQkM7UUFBa0I7SUFDdEU7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNBLG1CQUFtQkMsS0FBSztJQUMvQkMsZ0JBQWdCQyxJQUFJLENBQUMsSUFBSSxFQUFFRixPQUFPO0FBQ3BDO0FBRUE7OztDQUdDLEdBQ0QsU0FBU0gscUJBQXFCRyxLQUFLO0lBQ2pDQyxnQkFBZ0JDLElBQUksQ0FBQyxJQUFJLEVBQUVGLE9BQU87QUFDcEM7QUFFQTs7O0NBR0MsR0FDRCxTQUFTRixvQkFBb0JFLEtBQUs7SUFDaENDLGdCQUFnQkMsSUFBSSxDQUFDLElBQUksRUFBRUY7QUFDN0I7QUFFQTs7Ozs7Q0FLQyxHQUNELFNBQVNDLGdCQUFnQkQsS0FBSyxFQUFFRyxRQUFRO0lBQ3RDLE1BQU1DLE1BQU0sSUFBSSxDQUFDQyxjQUFjLENBQUNMO0lBQ2hDLElBQUksQ0FBQ00sR0FBRyxDQUFDLGNBQWNaLHdFQUFXQSxDQUFDLENBQUNTLFlBQVksRUFBQyxJQUFLQyxPQUFPO0lBQzdELElBQUksQ0FBQ0csR0FBRyxDQUFDLElBQUksQ0FBQ0MsTUFBTSxDQUFDSjtJQUNyQixJQUFJLENBQUNFLEdBQUcsQ0FBQztBQUNYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tYXV0b2xpbmstbGl0ZXJhbC9kZXYvbGliL2h0bWwuanM/NGFlMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29tcGlsZUNvbnRleHR9IENvbXBpbGVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkhhbmRsZX0gSGFuZGxlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkh0bWxFeHRlbnNpb259IEh0bWxFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW59IFRva2VuXG4gKi9cblxuaW1wb3J0IHtzYW5pdGl6ZVVyaX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtc2FuaXRpemUtdXJpJ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBIVE1MIGV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdG8gc3VwcG9ydCBHaXRIdWIgYXV0b2xpbmsgbGl0ZXJhbFxuICogd2hlbiBzZXJpYWxpemluZyB0byBIVE1MLlxuICpcbiAqIEByZXR1cm5zIHtIdG1sRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgaHRtbEV4dGVuc2lvbnNgIHRvXG4gKiAgIHN1cHBvcnQgR2l0SHViIGF1dG9saW5rIGxpdGVyYWwgd2hlbiBzZXJpYWxpemluZyB0byBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtQXV0b2xpbmtMaXRlcmFsSHRtbCgpIHtcbiAgcmV0dXJuIHtcbiAgICBleGl0OiB7bGl0ZXJhbEF1dG9saW5rRW1haWwsIGxpdGVyYWxBdXRvbGlua0h0dHAsIGxpdGVyYWxBdXRvbGlua1d3d31cbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtIYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGxpdGVyYWxBdXRvbGlua1d3dyh0b2tlbikge1xuICBhbmNob3JGcm9tVG9rZW4uY2FsbCh0aGlzLCB0b2tlbiwgJ2h0dHA6Ly8nKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtIYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGxpdGVyYWxBdXRvbGlua0VtYWlsKHRva2VuKSB7XG4gIGFuY2hvckZyb21Ub2tlbi5jYWxsKHRoaXMsIHRva2VuLCAnbWFpbHRvOicpXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0hhbmRsZX1cbiAqL1xuZnVuY3Rpb24gbGl0ZXJhbEF1dG9saW5rSHR0cCh0b2tlbikge1xuICBhbmNob3JGcm9tVG9rZW4uY2FsbCh0aGlzLCB0b2tlbilcbn1cblxuLyoqXG4gKiBAdGhpcyBDb21waWxlQ29udGV4dFxuICogQHBhcmFtIHtUb2tlbn0gdG9rZW5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Byb3RvY29sXVxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gYW5jaG9yRnJvbVRva2VuKHRva2VuLCBwcm90b2NvbCkge1xuICBjb25zdCB1cmwgPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKVxuICB0aGlzLnRhZygnPGEgaHJlZj1cIicgKyBzYW5pdGl6ZVVyaSgocHJvdG9jb2wgfHwgJycpICsgdXJsKSArICdcIj4nKVxuICB0aGlzLnJhdyh0aGlzLmVuY29kZSh1cmwpKVxuICB0aGlzLnRhZygnPC9hPicpXG59XG4iXSwibmFtZXMiOlsic2FuaXRpemVVcmkiLCJnZm1BdXRvbGlua0xpdGVyYWxIdG1sIiwiZXhpdCIsImxpdGVyYWxBdXRvbGlua0VtYWlsIiwibGl0ZXJhbEF1dG9saW5rSHR0cCIsImxpdGVyYWxBdXRvbGlua1d3dyIsInRva2VuIiwiYW5jaG9yRnJvbVRva2VuIiwiY2FsbCIsInByb3RvY29sIiwidXJsIiwic2xpY2VTZXJpYWxpemUiLCJ0YWciLCJyYXciLCJlbmNvZGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js":
-/*!*************************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js ***!
- \*************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmAutolinkLiteral: () => (/* binding */ gfmAutolinkLiteral)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\n/** @type {ConstructRecord} */ const text = {};\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */ function gfmAutolinkLiteral() {\n return {\n text\n };\n}\n/** @type {Code} */ let code = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit0;\n// Add alphanumerics.\nwhile(code < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftCurlyBrace){\n text[code] = emailAutolink;\n code++;\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.colon) code = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseA;\n else if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket) code = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseA;\n}\ntext[micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.plusSign] = emailAutolink;\ntext[micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dash] = emailAutolink;\ntext[micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dot] = emailAutolink;\ntext[micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore] = emailAutolink;\ntext[micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseH] = [\n emailAutolink,\n protocolAutolink\n];\ntext[micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseH] = [\n emailAutolink,\n protocolAutolink\n];\ntext[micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseW] = [\n emailAutolink,\n wwwAutolink\n];\ntext[micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseW] = [\n emailAutolink,\n wwwAutolink\n];\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a [email protected] b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeEmailAutolink(effects, ok, nok) {\n const self = this;\n /** @type {boolean | undefined} */ let dot;\n /** @type {boolean} */ let data;\n return start;\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a [email protected] b\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n if (!gfmAtext(code) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code);\n }\n /**\n * In email atext.\n *\n * ```markdown\n * > | a [email protected] b\n * ^\n * ```\n *\n * @type {State}\n */ function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code);\n return atext;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.atSign) {\n effects.consume(code);\n return emailDomain;\n }\n return nok(code);\n }\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L318>\n *\n * ```markdown\n * > | a [email protected] b\n * ^\n * ```\n *\n * @type {State}\n */ function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dot) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code);\n }\n // Alphanumerical, `-`, and `_`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiAlphanumeric)(code)) {\n data = true;\n effects.consume(code);\n return emailDomain;\n }\n // To do: `/` if xmpp.\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code);\n }\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a [email protected] b\n * ^\n * ```\n *\n * @type {State}\n */ function emailDomainDot(code) {\n effects.consume(code);\n dot = true;\n return emailDomain;\n }\n /**\n * After email domain.\n *\n * ```markdown\n * > | a [email protected] b\n * ^\n * ```\n *\n * @type {State}\n */ function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L332>.\n if (data && dot && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiAlpha)(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok(code);\n }\n return nok(code);\n }\n}\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeWwwAutolink(effects, ok, nok) {\n const self = this;\n return wwwStart;\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */ function wwwStart(code) {\n if (code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseW && code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseW || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code);\n }\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */ function wwwAfter(code) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok(code);\n }\n}\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */ function protocolStart(code) {\n if ((code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseH || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseH) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n return nok(code);\n }\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */ function protocolPrefixInside(code) {\n // `5` is size of `https`\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiAlpha)(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.colon) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code);\n return protocolSlashesInside;\n }\n }\n return nok(code);\n }\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */ function protocolSlashesInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.slash) {\n effects.consume(code);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code);\n }\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */ function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuation)(code) ? nok(code) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code);\n }\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */ function protocolAfter(code) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok(code);\n }\n}\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0;\n return wwwPrefixInside;\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */ function wwwPrefixInside(code) {\n if ((code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseW || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseW) && size < 3) {\n size++;\n effects.consume(code);\n return wwwPrefixInside;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dot && size === 3) {\n effects.consume(code);\n return wwwPrefixAfter;\n }\n return nok(code);\n }\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */ function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof ? nok(code) : ok(code);\n }\n}\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */ let underscoreInLastSegment;\n /** @type {boolean | undefined} */ let underscoreInLastLastSegment;\n /** @type {boolean | undefined} */ let seen;\n return domainInside;\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */ function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dot || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code);\n }\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L12>.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code) || code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dash && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuation)(code)) {\n return domainAfter(code);\n }\n seen = true;\n effects.consume(code);\n return domainInside;\n }\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */ function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = undefined;\n }\n effects.consume(code);\n return domainInside;\n }\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */ function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // <https://github.com/github/cmark-gfm/issues/279>\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code);\n }\n return ok(code);\n }\n}\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */ function pathInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis) {\n sizeOpen++;\n effects.consume(code);\n return pathInside;\n }\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis && sizeClose < sizeOpen) {\n return pathAtPunctuation(code);\n }\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.exclamationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.apostrophe || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.comma || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dot || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.colon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.semicolon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.questionMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde) {\n return effects.check(trail, ok, pathAtPunctuation)(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code)) {\n return ok(code);\n }\n effects.consume(code);\n return pathInside;\n }\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */ function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis) {\n sizeClose++;\n }\n effects.consume(code);\n return pathInside;\n }\n}\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeTrail(effects, ok, nok) {\n return trail;\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */ function trail(code) {\n // Regular trailing punctuation.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.exclamationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.apostrophe || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.comma || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dot || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.colon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.semicolon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.questionMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde) {\n effects.consume(code);\n return trail;\n }\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand) {\n effects.consume(code);\n return trailCharRefStart;\n }\n // Needed because we allow literals after `[`, as we fix:\n // <https://github.com/github/cmark-gfm/issues/278>.\n // Check that it is not followed by `(` or `[`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket) {\n effects.consume(code);\n return trailBracketAfter;\n }\n if (// `<` is an end.\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan || // So is whitespace.\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code)) {\n return ok(code);\n }\n return nok(code);\n }\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of <https://github.com/github/cmark-gfm/issues/278> for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */ function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code)) {\n return ok(code);\n }\n return trail(code);\n }\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&amp;).\n * ^\n * ```\n *\n * @type {State}\n */ function trailCharRefStart(code) {\n // When non-alpha, it’s not a trail.\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiAlpha)(code) ? trailCharRefInside(code) : nok(code);\n }\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&amp;).\n * ^\n * ```\n *\n * @type {State}\n */ function trailCharRefInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.semicolon) {\n effects.consume(code);\n return trail;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiAlpha)(code)) {\n effects.consume(code);\n return trailCharRefInside;\n }\n // It’s not a trail.\n return nok(code);\n }\n}\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | [email protected].\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n /**\n * Dot.\n *\n * ```markdown\n * > | [email protected].\n * ^ ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n // Must be dot.\n effects.consume(code);\n return after;\n }\n /**\n * After dot.\n *\n * ```markdown\n * > | [email protected].\n * ^ ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n // Not a trail if alphanumeric.\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiAlphanumeric)(code) ? nok(code) : ok(code);\n }\n}\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L156>.\n *\n * @type {Previous}\n */ function previousWww(code) {\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code);\n}\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L214>.\n *\n * @type {Previous}\n */ function previousProtocol(code) {\n return !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiAlpha)(code);\n}\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */ function previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L307>.\n // Other than slash, every preceding character is allowed.\n return !(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.slash || gfmAtext(code));\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */ function gfmAtext(code) {\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.plusSign || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dot || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiAlphanumeric)(code);\n}\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */ function previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while(index--){\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWF1dG9saW5rLWxpdGVyYWwvZGV2L2xpYi9zeW50YXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7Ozs7OztDQVNDLEdBU2dDO0FBQ1U7QUFFM0MsTUFBTU8sWUFBWTtJQUFDQyxVQUFVQztJQUFtQkMsU0FBUztBQUFJO0FBQzdELE1BQU1DLFNBQVM7SUFBQ0gsVUFBVUk7SUFBZ0JGLFNBQVM7QUFBSTtBQUN2RCxNQUFNRyxPQUFPO0lBQUNMLFVBQVVNO0lBQWNKLFNBQVM7QUFBSTtBQUNuRCxNQUFNSyxRQUFRO0lBQUNQLFVBQVVRO0lBQWVOLFNBQVM7QUFBSTtBQUNyRCxNQUFNTyxzQkFBc0I7SUFDMUJULFVBQVVVO0lBQ1ZSLFNBQVM7QUFDWDtBQUVBLE1BQU1TLGNBQWM7SUFBQ1gsVUFBVVk7SUFBcUJDLFVBQVVDO0FBQVc7QUFDekUsTUFBTUMsbUJBQW1CO0lBQ3ZCZixVQUFVZ0I7SUFDVkgsVUFBVUk7QUFDWjtBQUNBLE1BQU1DLGdCQUFnQjtJQUFDbEIsVUFBVW1CO0lBQXVCTixVQUFVTztBQUFhO0FBRS9FLDRCQUE0QixHQUM1QixNQUFNQyxPQUFPLENBQUM7QUFFZDs7Ozs7OztDQU9DLEdBQ00sU0FBU0M7SUFDZCxPQUFPO1FBQUNEO0lBQUk7QUFDZDtBQUVBLGlCQUFpQixHQUNqQixJQUFJRSxPQUFPekIsd0RBQUtBLENBQUMwQixNQUFNO0FBRXZCLHFCQUFxQjtBQUNyQixNQUFPRCxPQUFPekIsd0RBQUtBLENBQUMyQixjQUFjLENBQUU7SUFDbENKLElBQUksQ0FBQ0UsS0FBSyxHQUFHTDtJQUNiSztJQUNBLElBQUlBLFNBQVN6Qix3REFBS0EsQ0FBQzRCLEtBQUssRUFBRUgsT0FBT3pCLHdEQUFLQSxDQUFDNkIsVUFBVTtTQUM1QyxJQUFJSixTQUFTekIsd0RBQUtBLENBQUM4QixpQkFBaUIsRUFBRUwsT0FBT3pCLHdEQUFLQSxDQUFDK0IsVUFBVTtBQUNwRTtBQUVBUixJQUFJLENBQUN2Qix3REFBS0EsQ0FBQ2dDLFFBQVEsQ0FBQyxHQUFHWjtBQUN2QkcsSUFBSSxDQUFDdkIsd0RBQUtBLENBQUNpQyxJQUFJLENBQUMsR0FBR2I7QUFDbkJHLElBQUksQ0FBQ3ZCLHdEQUFLQSxDQUFDa0MsR0FBRyxDQUFDLEdBQUdkO0FBQ2xCRyxJQUFJLENBQUN2Qix3REFBS0EsQ0FBQ21DLFVBQVUsQ0FBQyxHQUFHZjtBQUN6QkcsSUFBSSxDQUFDdkIsd0RBQUtBLENBQUNvQyxVQUFVLENBQUMsR0FBRztJQUFDaEI7SUFBZUg7Q0FBaUI7QUFDMURNLElBQUksQ0FBQ3ZCLHdEQUFLQSxDQUFDcUMsVUFBVSxDQUFDLEdBQUc7SUFBQ2pCO0lBQWVIO0NBQWlCO0FBQzFETSxJQUFJLENBQUN2Qix3REFBS0EsQ0FBQ3NDLFVBQVUsQ0FBQyxHQUFHO0lBQUNsQjtJQUFlUDtDQUFZO0FBQ3JEVSxJQUFJLENBQUN2Qix3REFBS0EsQ0FBQ3VDLFVBQVUsQ0FBQyxHQUFHO0lBQUNuQjtJQUFlUDtDQUFZO0FBRXJELGdFQUFnRTtBQUNoRSx5REFBeUQ7QUFDekQseUVBQXlFO0FBQ3pFLFlBQVk7QUFDWixnREFBZ0Q7QUFFaEQ7Ozs7Ozs7Ozs7Q0FVQyxHQUNELFNBQVNRLHNCQUFzQm1CLE9BQU8sRUFBRUMsRUFBRSxFQUFFQyxHQUFHO0lBQzdDLE1BQU1DLE9BQU8sSUFBSTtJQUNqQixnQ0FBZ0MsR0FDaEMsSUFBSVQ7SUFDSixvQkFBb0IsR0FDcEIsSUFBSVU7SUFFSixPQUFPQztJQUVQOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLE1BQU1wQixJQUFJO1FBQ2pCLElBQ0UsQ0FBQ3FCLFNBQVNyQixTQUNWLENBQUNILGNBQWN5QixJQUFJLENBQUNKLE1BQU1BLEtBQUs1QixRQUFRLEtBQ3ZDaUMsbUJBQW1CTCxLQUFLTSxNQUFNLEdBQzlCO1lBQ0EsT0FBT1AsSUFBSWpCO1FBQ2I7UUFFQWUsUUFBUVUsS0FBSyxDQUFDO1FBQ2RWLFFBQVFVLEtBQUssQ0FBQztRQUNkLE9BQU9DLE1BQU0xQjtJQUNmO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBUzBCLE1BQU0xQixJQUFJO1FBQ2pCLElBQUlxQixTQUFTckIsT0FBTztZQUNsQmUsUUFBUVksT0FBTyxDQUFDM0I7WUFDaEIsT0FBTzBCO1FBQ1Q7UUFFQSxJQUFJMUIsU0FBU3pCLHdEQUFLQSxDQUFDcUQsTUFBTSxFQUFFO1lBQ3pCYixRQUFRWSxPQUFPLENBQUMzQjtZQUNoQixPQUFPNkI7UUFDVDtRQUVBLE9BQU9aLElBQUlqQjtJQUNiO0lBRUE7Ozs7Ozs7Ozs7Ozs7R0FhQyxHQUNELFNBQVM2QixZQUFZN0IsSUFBSTtRQUN2QixtREFBbUQ7UUFDbkQsSUFBSUEsU0FBU3pCLHdEQUFLQSxDQUFDa0MsR0FBRyxFQUFFO1lBQ3RCLE9BQU9NLFFBQVFlLEtBQUssQ0FDbEI1QyxxQkFDQTZDLGtCQUNBQyxnQkFDQWhDO1FBQ0o7UUFFQSxnQ0FBZ0M7UUFDaEMsSUFDRUEsU0FBU3pCLHdEQUFLQSxDQUFDaUMsSUFBSSxJQUNuQlIsU0FBU3pCLHdEQUFLQSxDQUFDbUMsVUFBVSxJQUN6QnhDLDJFQUFpQkEsQ0FBQzhCLE9BQ2xCO1lBQ0FtQixPQUFPO1lBQ1BKLFFBQVFZLE9BQU8sQ0FBQzNCO1lBQ2hCLE9BQU82QjtRQUNUO1FBRUEsc0JBQXNCO1FBRXRCLG1FQUFtRTtRQUNuRSx3RUFBd0U7UUFDeEUsZ0VBQWdFO1FBQ2hFLCtCQUErQjtRQUMvQixPQUFPRSxpQkFBaUIvQjtJQUMxQjtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNnQyxlQUFlaEMsSUFBSTtRQUMxQmUsUUFBUVksT0FBTyxDQUFDM0I7UUFDaEJTLE1BQU07UUFDTixPQUFPb0I7SUFDVDtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNFLGlCQUFpQi9CLElBQUk7UUFDNUIsOEVBQThFO1FBQzlFLHlGQUF5RjtRQUN6RixJQUFJbUIsUUFBUVYsT0FBT3hDLG9FQUFVQSxDQUFDaUQsS0FBSzVCLFFBQVEsR0FBRztZQUM1Q3lCLFFBQVFrQixJQUFJLENBQUM7WUFDYmxCLFFBQVFrQixJQUFJLENBQUM7WUFDYixPQUFPakIsR0FBR2hCO1FBQ1o7UUFFQSxPQUFPaUIsSUFBSWpCO0lBQ2I7QUFDRjtBQUVBOzs7Ozs7Ozs7O0NBVUMsR0FDRCxTQUFTWCxvQkFBb0IwQixPQUFPLEVBQUVDLEVBQUUsRUFBRUMsR0FBRztJQUMzQyxNQUFNQyxPQUFPLElBQUk7SUFFakIsT0FBT2dCO0lBRVA7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsU0FBU2xDLElBQUk7UUFDcEIsSUFDRSxTQUFVekIsd0RBQUtBLENBQUNzQyxVQUFVLElBQUliLFNBQVN6Qix3REFBS0EsQ0FBQ3VDLFVBQVUsSUFDdkQsQ0FBQ3ZCLFlBQVkrQixJQUFJLENBQUNKLE1BQU1BLEtBQUs1QixRQUFRLEtBQ3JDaUMsbUJBQW1CTCxLQUFLTSxNQUFNLEdBQzlCO1lBQ0EsT0FBT1AsSUFBSWpCO1FBQ2I7UUFFQWUsUUFBUVUsS0FBSyxDQUFDO1FBQ2RWLFFBQVFVLEtBQUssQ0FBQztRQUNkLDREQUE0RDtRQUM1RCx3REFBd0Q7UUFDeEQsT0FBT1YsUUFBUWUsS0FBSyxDQUNsQnRELFdBQ0F1QyxRQUFRb0IsT0FBTyxDQUFDdkQsUUFBUW1DLFFBQVFvQixPQUFPLENBQUNyRCxNQUFNc0QsV0FBV25CLE1BQ3pEQSxLQUNBakI7SUFDSjtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNvQyxTQUFTcEMsSUFBSTtRQUNwQmUsUUFBUWtCLElBQUksQ0FBQztRQUNibEIsUUFBUWtCLElBQUksQ0FBQztRQUNiLE9BQU9qQixHQUFHaEI7SUFDWjtBQUNGO0FBRUE7Ozs7Ozs7Ozs7Q0FVQyxHQUNELFNBQVNQLHlCQUF5QnNCLE9BQU8sRUFBRUMsRUFBRSxFQUFFQyxHQUFHO0lBQ2hELE1BQU1DLE9BQU8sSUFBSTtJQUNqQixJQUFJbUIsU0FBUztJQUNiLElBQUlDLE9BQU87SUFFWCxPQUFPQztJQUVQOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLGNBQWN2QyxJQUFJO1FBQ3pCLElBQ0UsQ0FBQ0EsU0FBU3pCLHdEQUFLQSxDQUFDb0MsVUFBVSxJQUFJWCxTQUFTekIsd0RBQUtBLENBQUNxQyxVQUFVLEtBQ3ZEbEIsaUJBQWlCNEIsSUFBSSxDQUFDSixNQUFNQSxLQUFLNUIsUUFBUSxLQUN6QyxDQUFDaUMsbUJBQW1CTCxLQUFLTSxNQUFNLEdBQy9CO1lBQ0FULFFBQVFVLEtBQUssQ0FBQztZQUNkVixRQUFRVSxLQUFLLENBQUM7WUFDZFksVUFBVUcsT0FBT0MsYUFBYSxDQUFDekM7WUFDL0JlLFFBQVFZLE9BQU8sQ0FBQzNCO1lBQ2hCLE9BQU8wQztRQUNUO1FBRUEsT0FBT3pCLElBQUlqQjtJQUNiO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBUzBDLHFCQUFxQjFDLElBQUk7UUFDaEMseUJBQXlCO1FBQ3pCLElBQUkvQixvRUFBVUEsQ0FBQytCLFNBQVNxQyxPQUFPTSxNQUFNLEdBQUcsR0FBRztZQUN6Qyx1Q0FBdUM7WUFDdkNOLFVBQVVHLE9BQU9DLGFBQWEsQ0FBQ3pDO1lBQy9CZSxRQUFRWSxPQUFPLENBQUMzQjtZQUNoQixPQUFPMEM7UUFDVDtRQUVBLElBQUkxQyxTQUFTekIsd0RBQUtBLENBQUM0QixLQUFLLEVBQUU7WUFDeEIsTUFBTXlDLFdBQVdQLE9BQU9RLFdBQVc7WUFFbkMsSUFBSUQsYUFBYSxVQUFVQSxhQUFhLFNBQVM7Z0JBQy9DN0IsUUFBUVksT0FBTyxDQUFDM0I7Z0JBQ2hCLE9BQU84QztZQUNUO1FBQ0Y7UUFFQSxPQUFPN0IsSUFBSWpCO0lBQ2I7SUFFQTs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTOEMsc0JBQXNCOUMsSUFBSTtRQUNqQyxJQUFJQSxTQUFTekIsd0RBQUtBLENBQUN3RSxLQUFLLEVBQUU7WUFDeEJoQyxRQUFRWSxPQUFPLENBQUMzQjtZQUVoQixJQUFJc0MsTUFBTTtnQkFDUixPQUFPVTtZQUNUO1lBRUFWLE9BQU87WUFDUCxPQUFPUTtRQUNUO1FBRUEsT0FBTzdCLElBQUlqQjtJQUNiO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU2dELGNBQWNoRCxJQUFJO1FBQ3pCLCtDQUErQztRQUMvQyxzSUFBc0k7UUFDdEksT0FBT0EsU0FBU3pCLHdEQUFLQSxDQUFDMEUsR0FBRyxJQUN2QjlFLHNFQUFZQSxDQUFDNkIsU0FDYjVCLG1GQUF5QkEsQ0FBQzRCLFNBQzFCMUIsMkVBQWlCQSxDQUFDMEIsU0FDbEIzQiw0RUFBa0JBLENBQUMyQixRQUNqQmlCLElBQUlqQixRQUNKZSxRQUFRb0IsT0FBTyxDQUFDdkQsUUFBUW1DLFFBQVFvQixPQUFPLENBQUNyRCxNQUFNb0UsZ0JBQWdCakMsS0FBS2pCO0lBQ3pFO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU2tELGNBQWNsRCxJQUFJO1FBQ3pCZSxRQUFRa0IsSUFBSSxDQUFDO1FBQ2JsQixRQUFRa0IsSUFBSSxDQUFDO1FBQ2IsT0FBT2pCLEdBQUdoQjtJQUNaO0FBQ0Y7QUFFQTs7Ozs7Ozs7OztDQVVDLEdBQ0QsU0FBU3RCLGtCQUFrQnFDLE9BQU8sRUFBRUMsRUFBRSxFQUFFQyxHQUFHO0lBQ3pDLElBQUlrQyxPQUFPO0lBRVgsT0FBT0M7SUFFUDs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTQSxnQkFBZ0JwRCxJQUFJO1FBQzNCLElBQUksQ0FBQ0EsU0FBU3pCLHdEQUFLQSxDQUFDc0MsVUFBVSxJQUFJYixTQUFTekIsd0RBQUtBLENBQUN1QyxVQUFVLEtBQUtxQyxPQUFPLEdBQUc7WUFDeEVBO1lBQ0FwQyxRQUFRWSxPQUFPLENBQUMzQjtZQUNoQixPQUFPb0Q7UUFDVDtRQUVBLElBQUlwRCxTQUFTekIsd0RBQUtBLENBQUNrQyxHQUFHLElBQUkwQyxTQUFTLEdBQUc7WUFDcENwQyxRQUFRWSxPQUFPLENBQUMzQjtZQUNoQixPQUFPcUQ7UUFDVDtRQUVBLE9BQU9wQyxJQUFJakI7SUFDYjtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNxRCxlQUFlckQsSUFBSTtRQUMxQix1Q0FBdUM7UUFDdkMsT0FBT0EsU0FBU3pCLHdEQUFLQSxDQUFDMEUsR0FBRyxHQUFHaEMsSUFBSWpCLFFBQVFnQixHQUFHaEI7SUFDN0M7QUFDRjtBQUVBOzs7Ozs7Ozs7O0NBVUMsR0FDRCxTQUFTbkIsZUFBZWtDLE9BQU8sRUFBRUMsRUFBRSxFQUFFQyxHQUFHO0lBQ3RDLGdDQUFnQyxHQUNoQyxJQUFJcUM7SUFDSixnQ0FBZ0MsR0FDaEMsSUFBSUM7SUFDSixnQ0FBZ0MsR0FDaEMsSUFBSWpCO0lBRUosT0FBT2tCO0lBRVA7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsYUFBYXhELElBQUk7UUFDeEIsNkRBQTZEO1FBQzdELGlFQUFpRTtRQUNqRSxzQkFBc0I7UUFDdEIsSUFBSUEsU0FBU3pCLHdEQUFLQSxDQUFDa0MsR0FBRyxJQUFJVCxTQUFTekIsd0RBQUtBLENBQUNtQyxVQUFVLEVBQUU7WUFDbkQsT0FBT0ssUUFBUWUsS0FBSyxDQUFDOUMsT0FBT3lFLGFBQWFDLHFCQUFxQjFEO1FBQ2hFO1FBRUEsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSxxQkFBcUI7UUFDckIscUVBQXFFO1FBQ3JFLHlFQUF5RTtRQUN6RSx3RkFBd0Y7UUFDeEYsSUFDRUEsU0FBU3pCLHdEQUFLQSxDQUFDMEUsR0FBRyxJQUNsQjdFLG1GQUF5QkEsQ0FBQzRCLFNBQzFCMUIsMkVBQWlCQSxDQUFDMEIsU0FDakJBLFNBQVN6Qix3REFBS0EsQ0FBQ2lDLElBQUksSUFBSW5DLDRFQUFrQkEsQ0FBQzJCLE9BQzNDO1lBQ0EsT0FBT3lELFlBQVl6RDtRQUNyQjtRQUVBc0MsT0FBTztRQUNQdkIsUUFBUVksT0FBTyxDQUFDM0I7UUFDaEIsT0FBT3dEO0lBQ1Q7SUFFQTs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTRSxvQkFBb0IxRCxJQUFJO1FBQy9CLDJEQUEyRDtRQUMzRCxJQUFJQSxTQUFTekIsd0RBQUtBLENBQUNtQyxVQUFVLEVBQUU7WUFDN0I0QywwQkFBMEI7UUFDNUIsT0FHSztZQUNIQyw4QkFBOEJEO1lBQzlCQSwwQkFBMEJLO1FBQzVCO1FBRUE1QyxRQUFRWSxPQUFPLENBQUMzQjtRQUNoQixPQUFPd0Q7SUFDVDtJQUVBOzs7Ozs7OzttQkFRaUIsR0FDakIsU0FBU0MsWUFBWXpELElBQUk7UUFDdkIsMkRBQTJEO1FBQzNELG1EQUFtRDtRQUNuRCxJQUFJdUQsK0JBQStCRCwyQkFBMkIsQ0FBQ2hCLE1BQU07WUFDbkUsT0FBT3JCLElBQUlqQjtRQUNiO1FBRUEsT0FBT2dCLEdBQUdoQjtJQUNaO0FBQ0Y7QUFFQTs7Ozs7Ozs7OztDQVVDLEdBQ0QsU0FBU2pCLGFBQWFnQyxPQUFPLEVBQUVDLEVBQUU7SUFDL0IsSUFBSTRDLFdBQVc7SUFDZixJQUFJQyxZQUFZO0lBRWhCLE9BQU9DO0lBRVA7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsV0FBVzlELElBQUk7UUFDdEIsSUFBSUEsU0FBU3pCLHdEQUFLQSxDQUFDd0YsZUFBZSxFQUFFO1lBQ2xDSDtZQUNBN0MsUUFBUVksT0FBTyxDQUFDM0I7WUFDaEIsT0FBTzhEO1FBQ1Q7UUFFQSx3Q0FBd0M7UUFDeEMsaUVBQWlFO1FBQ2pFLDhCQUE4QjtRQUM5QixJQUFJOUQsU0FBU3pCLHdEQUFLQSxDQUFDeUYsZ0JBQWdCLElBQUlILFlBQVlELFVBQVU7WUFDM0QsT0FBT0ssa0JBQWtCakU7UUFDM0I7UUFFQSwrREFBK0Q7UUFDL0QsdURBQXVEO1FBQ3ZELGFBQWE7UUFDYixJQUNFQSxTQUFTekIsd0RBQUtBLENBQUMyRixlQUFlLElBQzlCbEUsU0FBU3pCLHdEQUFLQSxDQUFDNEYsYUFBYSxJQUM1Qm5FLFNBQVN6Qix3REFBS0EsQ0FBQzZGLFNBQVMsSUFDeEJwRSxTQUFTekIsd0RBQUtBLENBQUM4RixVQUFVLElBQ3pCckUsU0FBU3pCLHdEQUFLQSxDQUFDeUYsZ0JBQWdCLElBQy9CaEUsU0FBU3pCLHdEQUFLQSxDQUFDK0YsUUFBUSxJQUN2QnRFLFNBQVN6Qix3REFBS0EsQ0FBQ2dHLEtBQUssSUFDcEJ2RSxTQUFTekIsd0RBQUtBLENBQUNrQyxHQUFHLElBQ2xCVCxTQUFTekIsd0RBQUtBLENBQUM0QixLQUFLLElBQ3BCSCxTQUFTekIsd0RBQUtBLENBQUNpRyxTQUFTLElBQ3hCeEUsU0FBU3pCLHdEQUFLQSxDQUFDa0csUUFBUSxJQUN2QnpFLFNBQVN6Qix3REFBS0EsQ0FBQ21HLFlBQVksSUFDM0IxRSxTQUFTekIsd0RBQUtBLENBQUNvRyxrQkFBa0IsSUFDakMzRSxTQUFTekIsd0RBQUtBLENBQUNtQyxVQUFVLElBQ3pCVixTQUFTekIsd0RBQUtBLENBQUNxRyxLQUFLLEVBQ3BCO1lBQ0EsT0FBTzdELFFBQVFlLEtBQUssQ0FBQzlDLE9BQU9nQyxJQUFJaUQsbUJBQW1CakU7UUFDckQ7UUFFQSxJQUNFQSxTQUFTekIsd0RBQUtBLENBQUMwRSxHQUFHLElBQ2xCN0UsbUZBQXlCQSxDQUFDNEIsU0FDMUIxQiwyRUFBaUJBLENBQUMwQixPQUNsQjtZQUNBLE9BQU9nQixHQUFHaEI7UUFDWjtRQUVBZSxRQUFRWSxPQUFPLENBQUMzQjtRQUNoQixPQUFPOEQ7SUFDVDtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNHLGtCQUFrQmpFLElBQUk7UUFDN0Isd0JBQXdCO1FBQ3hCLElBQUlBLFNBQVN6Qix3REFBS0EsQ0FBQ3lGLGdCQUFnQixFQUFFO1lBQ25DSDtRQUNGO1FBRUE5QyxRQUFRWSxPQUFPLENBQUMzQjtRQUNoQixPQUFPOEQ7SUFDVDtBQUNGO0FBRUE7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FDRCxTQUFTN0UsY0FBYzhCLE9BQU8sRUFBRUMsRUFBRSxFQUFFQyxHQUFHO0lBQ3JDLE9BQU9qQztJQUVQOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLE1BQU1nQixJQUFJO1FBQ2pCLGdDQUFnQztRQUNoQyxJQUNFQSxTQUFTekIsd0RBQUtBLENBQUMyRixlQUFlLElBQzlCbEUsU0FBU3pCLHdEQUFLQSxDQUFDNEYsYUFBYSxJQUM1Qm5FLFNBQVN6Qix3REFBS0EsQ0FBQzhGLFVBQVUsSUFDekJyRSxTQUFTekIsd0RBQUtBLENBQUN5RixnQkFBZ0IsSUFDL0JoRSxTQUFTekIsd0RBQUtBLENBQUMrRixRQUFRLElBQ3ZCdEUsU0FBU3pCLHdEQUFLQSxDQUFDZ0csS0FBSyxJQUNwQnZFLFNBQVN6Qix3REFBS0EsQ0FBQ2tDLEdBQUcsSUFDbEJULFNBQVN6Qix3REFBS0EsQ0FBQzRCLEtBQUssSUFDcEJILFNBQVN6Qix3REFBS0EsQ0FBQ2lHLFNBQVMsSUFDeEJ4RSxTQUFTekIsd0RBQUtBLENBQUNtRyxZQUFZLElBQzNCMUUsU0FBU3pCLHdEQUFLQSxDQUFDbUMsVUFBVSxJQUN6QlYsU0FBU3pCLHdEQUFLQSxDQUFDcUcsS0FBSyxFQUNwQjtZQUNBN0QsUUFBUVksT0FBTyxDQUFDM0I7WUFDaEIsT0FBT2hCO1FBQ1Q7UUFFQSwrREFBK0Q7UUFDL0QsaURBQWlEO1FBQ2pELG1FQUFtRTtRQUNuRSxJQUFJZ0IsU0FBU3pCLHdEQUFLQSxDQUFDNkYsU0FBUyxFQUFFO1lBQzVCckQsUUFBUVksT0FBTyxDQUFDM0I7WUFDaEIsT0FBTzZFO1FBQ1Q7UUFFQSx5REFBeUQ7UUFDekQsb0RBQW9EO1FBQ3BELCtDQUErQztRQUMvQyxJQUFJN0UsU0FBU3pCLHdEQUFLQSxDQUFDb0csa0JBQWtCLEVBQUU7WUFDckM1RCxRQUFRWSxPQUFPLENBQUMzQjtZQUNoQixPQUFPOEU7UUFDVDtRQUVBLElBQ0UsaUJBQWlCO1FBQ2pCOUUsU0FBU3pCLHdEQUFLQSxDQUFDa0csUUFBUSxJQUN2QixvQkFBb0I7UUFDcEJ6RSxTQUFTekIsd0RBQUtBLENBQUMwRSxHQUFHLElBQ2xCN0UsbUZBQXlCQSxDQUFDNEIsU0FDMUIxQiwyRUFBaUJBLENBQUMwQixPQUNsQjtZQUNBLE9BQU9nQixHQUFHaEI7UUFDWjtRQUVBLE9BQU9pQixJQUFJakI7SUFDYjtJQUVBOzs7Ozs7Ozs7Ozs7R0FZQyxHQUNELFNBQVM4RSxrQkFBa0I5RSxJQUFJO1FBQzdCLCtFQUErRTtRQUMvRSxrQ0FBa0M7UUFDbEMsSUFDRUEsU0FBU3pCLHdEQUFLQSxDQUFDMEUsR0FBRyxJQUNsQmpELFNBQVN6Qix3REFBS0EsQ0FBQ3dGLGVBQWUsSUFDOUIvRCxTQUFTekIsd0RBQUtBLENBQUM4QixpQkFBaUIsSUFDaENqQyxtRkFBeUJBLENBQUM0QixTQUMxQjFCLDJFQUFpQkEsQ0FBQzBCLE9BQ2xCO1lBQ0EsT0FBT2dCLEdBQUdoQjtRQUNaO1FBRUEsT0FBT2hCLE1BQU1nQjtJQUNmO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBUzZFLGtCQUFrQjdFLElBQUk7UUFDN0Isb0NBQW9DO1FBQ3BDLE9BQU8vQixvRUFBVUEsQ0FBQytCLFFBQVErRSxtQkFBbUIvRSxRQUFRaUIsSUFBSWpCO0lBQzNEO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBUytFLG1CQUFtQi9FLElBQUk7UUFDOUIsK0NBQStDO1FBQy9DLElBQUlBLFNBQVN6Qix3REFBS0EsQ0FBQ2lHLFNBQVMsRUFBRTtZQUM1QnpELFFBQVFZLE9BQU8sQ0FBQzNCO1lBQ2hCLE9BQU9oQjtRQUNUO1FBRUEsSUFBSWYsb0VBQVVBLENBQUMrQixPQUFPO1lBQ3BCZSxRQUFRWSxPQUFPLENBQUMzQjtZQUNoQixPQUFPK0U7UUFDVDtRQUVBLG9CQUFvQjtRQUNwQixPQUFPOUQsSUFBSWpCO0lBQ2I7QUFDRjtBQUVBOzs7Ozs7Ozs7Ozs7OztDQWNDLEdBQ0QsU0FBU2IsNEJBQTRCNEIsT0FBTyxFQUFFQyxFQUFFLEVBQUVDLEdBQUc7SUFDbkQsT0FBT0c7SUFFUDs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTQSxNQUFNcEIsSUFBSTtRQUNqQixlQUFlO1FBQ2ZlLFFBQVFZLE9BQU8sQ0FBQzNCO1FBQ2hCLE9BQU9nRjtJQUNUO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0EsTUFBTWhGLElBQUk7UUFDakIsK0JBQStCO1FBQy9CLE9BQU85QiwyRUFBaUJBLENBQUM4QixRQUFRaUIsSUFBSWpCLFFBQVFnQixHQUFHaEI7SUFDbEQ7QUFDRjtBQUVBOzs7OztDQUtDLEdBQ0QsU0FBU1QsWUFBWVMsSUFBSTtJQUN2QixPQUNFQSxTQUFTekIsd0RBQUtBLENBQUMwRSxHQUFHLElBQ2xCakQsU0FBU3pCLHdEQUFLQSxDQUFDd0YsZUFBZSxJQUM5Qi9ELFNBQVN6Qix3REFBS0EsQ0FBQytGLFFBQVEsSUFDdkJ0RSxTQUFTekIsd0RBQUtBLENBQUNtQyxVQUFVLElBQ3pCVixTQUFTekIsd0RBQUtBLENBQUM4QixpQkFBaUIsSUFDaENMLFNBQVN6Qix3REFBS0EsQ0FBQ29HLGtCQUFrQixJQUNqQzNFLFNBQVN6Qix3REFBS0EsQ0FBQ3FHLEtBQUssSUFDcEJ4RyxtRkFBeUJBLENBQUM0QjtBQUU5QjtBQUVBOzs7OztDQUtDLEdBQ0QsU0FBU04saUJBQWlCTSxJQUFJO0lBQzVCLE9BQU8sQ0FBQy9CLG9FQUFVQSxDQUFDK0I7QUFDckI7QUFFQTs7O0NBR0MsR0FDRCxTQUFTSCxjQUFjRyxJQUFJO0lBQ3pCLHVDQUF1QztJQUN2QyxvRUFBb0U7SUFDcEUseUZBQXlGO0lBQ3pGLDBEQUEwRDtJQUMxRCxPQUFPLENBQUVBLENBQUFBLFNBQVN6Qix3REFBS0EsQ0FBQ3dFLEtBQUssSUFBSTFCLFNBQVNyQixLQUFJO0FBQ2hEO0FBRUE7OztDQUdDLEdBQ0QsU0FBU3FCLFNBQVNyQixJQUFJO0lBQ3BCLE9BQ0VBLFNBQVN6Qix3REFBS0EsQ0FBQ2dDLFFBQVEsSUFDdkJQLFNBQVN6Qix3REFBS0EsQ0FBQ2lDLElBQUksSUFDbkJSLFNBQVN6Qix3REFBS0EsQ0FBQ2tDLEdBQUcsSUFDbEJULFNBQVN6Qix3REFBS0EsQ0FBQ21DLFVBQVUsSUFDekJ4QywyRUFBaUJBLENBQUM4QjtBQUV0QjtBQUVBOzs7Q0FHQyxHQUNELFNBQVN1QixtQkFBbUJDLE1BQU07SUFDaEMsSUFBSXlELFFBQVF6RCxPQUFPbUIsTUFBTTtJQUN6QixJQUFJdUMsU0FBUztJQUViLE1BQU9ELFFBQVM7UUFDZCxNQUFNRSxRQUFRM0QsTUFBTSxDQUFDeUQsTUFBTSxDQUFDLEVBQUU7UUFFOUIsSUFDRSxDQUFDRSxNQUFNQyxJQUFJLEtBQUssZUFBZUQsTUFBTUMsSUFBSSxLQUFLLFlBQVcsS0FDekQsQ0FBQ0QsTUFBTUUsU0FBUyxFQUNoQjtZQUNBSCxTQUFTO1lBQ1Q7UUFDRjtRQUVBLDJFQUEyRTtRQUMzRSxrQ0FBa0M7UUFDbEMsSUFBSUMsTUFBTUcsNkJBQTZCLEVBQUU7WUFDdkNKLFNBQVM7WUFDVDtRQUNGO0lBQ0Y7SUFFQSxJQUFJMUQsT0FBT21CLE1BQU0sR0FBRyxLQUFLLENBQUN1QyxRQUFRO1FBQ2hDLG1EQUFtRDtRQUNuRCxZQUFZO1FBQ1oxRCxNQUFNLENBQUNBLE9BQU9tQixNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQzJDLDZCQUE2QixHQUFHO0lBQy9EO0lBRUEsT0FBT0o7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWF1dG9saW5rLWxpdGVyYWwvZGV2L2xpYi9zeW50YXguanM/OGI1MiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3RSZWNvcmR9IENvbnN0cnVjdFJlY29yZFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FdmVudH0gRXZlbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXh0ZW5zaW9ufSBFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUHJldmlvdXN9IFByZXZpb3VzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7XG4gIGFzY2lpQWxwaGEsXG4gIGFzY2lpQWxwaGFudW1lcmljLFxuICBhc2NpaUNvbnRyb2wsXG4gIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsXG4gIHVuaWNvZGVQdW5jdHVhdGlvbixcbiAgdW5pY29kZVdoaXRlc3BhY2Vcbn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtjb2Rlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuXG5jb25zdCB3d3dQcmVmaXggPSB7dG9rZW5pemU6IHRva2VuaXplV3d3UHJlZml4LCBwYXJ0aWFsOiB0cnVlfVxuY29uc3QgZG9tYWluID0ge3Rva2VuaXplOiB0b2tlbml6ZURvbWFpbiwgcGFydGlhbDogdHJ1ZX1cbmNvbnN0IHBhdGggPSB7dG9rZW5pemU6IHRva2VuaXplUGF0aCwgcGFydGlhbDogdHJ1ZX1cbmNvbnN0IHRyYWlsID0ge3Rva2VuaXplOiB0b2tlbml6ZVRyYWlsLCBwYXJ0aWFsOiB0cnVlfVxuY29uc3QgZW1haWxEb21haW5Eb3RUcmFpbCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplRW1haWxEb21haW5Eb3RUcmFpbCxcbiAgcGFydGlhbDogdHJ1ZVxufVxuXG5jb25zdCB3d3dBdXRvbGluayA9IHt0b2tlbml6ZTogdG9rZW5pemVXd3dBdXRvbGluaywgcHJldmlvdXM6IHByZXZpb3VzV3d3fVxuY29uc3QgcHJvdG9jb2xBdXRvbGluayA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplUHJvdG9jb2xBdXRvbGluayxcbiAgcHJldmlvdXM6IHByZXZpb3VzUHJvdG9jb2xcbn1cbmNvbnN0IGVtYWlsQXV0b2xpbmsgPSB7dG9rZW5pemU6IHRva2VuaXplRW1haWxBdXRvbGluaywgcHJldmlvdXM6IHByZXZpb3VzRW1haWx9XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0UmVjb3JkfSAqL1xuY29uc3QgdGV4dCA9IHt9XG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdG8gc3VwcG9ydCBHaXRIdWIgYXV0b2xpbmsgbGl0ZXJhbFxuICogc3ludGF4LlxuICpcbiAqIEByZXR1cm5zIHtFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBleHRlbnNpb25zYCB0byBlbmFibGUgR0ZNXG4gKiAgIGF1dG9saW5rIGxpdGVyYWwgc3ludGF4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtQXV0b2xpbmtMaXRlcmFsKCkge1xuICByZXR1cm4ge3RleHR9XG59XG5cbi8qKiBAdHlwZSB7Q29kZX0gKi9cbmxldCBjb2RlID0gY29kZXMuZGlnaXQwXG5cbi8vIEFkZCBhbHBoYW51bWVyaWNzLlxud2hpbGUgKGNvZGUgPCBjb2Rlcy5sZWZ0Q3VybHlCcmFjZSkge1xuICB0ZXh0W2NvZGVdID0gZW1haWxBdXRvbGlua1xuICBjb2RlKytcbiAgaWYgKGNvZGUgPT09IGNvZGVzLmNvbG9uKSBjb2RlID0gY29kZXMudXBwZXJjYXNlQVxuICBlbHNlIGlmIChjb2RlID09PSBjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldCkgY29kZSA9IGNvZGVzLmxvd2VyY2FzZUFcbn1cblxudGV4dFtjb2Rlcy5wbHVzU2lnbl0gPSBlbWFpbEF1dG9saW5rXG50ZXh0W2NvZGVzLmRhc2hdID0gZW1haWxBdXRvbGlua1xudGV4dFtjb2Rlcy5kb3RdID0gZW1haWxBdXRvbGlua1xudGV4dFtjb2Rlcy51bmRlcnNjb3JlXSA9IGVtYWlsQXV0b2xpbmtcbnRleHRbY29kZXMudXBwZXJjYXNlSF0gPSBbZW1haWxBdXRvbGluaywgcHJvdG9jb2xBdXRvbGlua11cbnRleHRbY29kZXMubG93ZXJjYXNlSF0gPSBbZW1haWxBdXRvbGluaywgcHJvdG9jb2xBdXRvbGlua11cbnRleHRbY29kZXMudXBwZXJjYXNlV10gPSBbZW1haWxBdXRvbGluaywgd3d3QXV0b2xpbmtdXG50ZXh0W2NvZGVzLmxvd2VyY2FzZVddID0gW2VtYWlsQXV0b2xpbmssIHd3d0F1dG9saW5rXVxuXG4vLyBUbyBkbzogcGVyZm9ybSBlbWFpbCBhdXRvbGluayBsaXRlcmFscyBvbiBldmVudHMsIGFmdGVyd2FyZHMuXG4vLyBUaGF04oCZcyB3aGVyZSBgbWFya2Rvd24tcnNgIGFuZCBgY21hcmstZ2ZtYCBwZXJmb3JtIGl0LlxuLy8gSXQgc2hvdWxkIGxvb2sgZm9yIGBAYCwgdGhlbiBmb3IgYXRleHQgYmFja3dhcmRzLCBhbmQgdGhlbiBmb3IgYSBsYWJlbFxuLy8gZm9yd2FyZHMuXG4vLyBUbyBkbzogYG1haWx0bzpgLCBgeG1wcDpgIHByb3RvY29sIGFzIHByZWZpeC5cblxuLyoqXG4gKiBFbWFpbCBhdXRvbGluayBsaXRlcmFsLlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiA+IHwgYSBjb250YWN0QGV4YW1wbGUub3JnIGJcbiAqICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5cbiAqIGBgYFxuICpcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUVtYWlsQXV0b2xpbmsoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBkb3RcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZGF0YVxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBlbWFpbCBhdXRvbGluayBsaXRlcmFsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBjb250YWN0QGV4YW1wbGUub3JnIGJcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChcbiAgICAgICFnZm1BdGV4dChjb2RlKSB8fFxuICAgICAgIXByZXZpb3VzRW1haWwuY2FsbChzZWxmLCBzZWxmLnByZXZpb3VzKSB8fFxuICAgICAgcHJldmlvdXNVbmJhbGFuY2VkKHNlbGYuZXZlbnRzKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIoJ2xpdGVyYWxBdXRvbGluaycpXG4gICAgZWZmZWN0cy5lbnRlcignbGl0ZXJhbEF1dG9saW5rRW1haWwnKVxuICAgIHJldHVybiBhdGV4dChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGVtYWlsIGF0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBjb250YWN0QGV4YW1wbGUub3JnIGJcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYXRleHQoY29kZSkge1xuICAgIGlmIChnZm1BdGV4dChjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gYXRleHRcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuYXRTaWduKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBlbWFpbERvbWFpblxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBlbWFpbCBkb21haW4uXG4gICAqXG4gICAqIFRoZSByZWZlcmVuY2UgY29kZSBpcyBhIGJpdCBvdmVybHkgY29tcGxleCBhcyBpdCBoYW5kbGVzIHRoZSBgQGAsIG9mIHdoaWNoXG4gICAqIHRoZXJlIG1heSBiZSBqdXN0IG9uZS5cbiAgICogU291cmNlOiA8aHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9jbWFyay1nZm0vYmxvYi9lZjFjZmNiL2V4dGVuc2lvbnMvYXV0b2xpbmsuYyNMMzE4PlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBjb250YWN0QGV4YW1wbGUub3JnIGJcbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBlbWFpbERvbWFpbihjb2RlKSB7XG4gICAgLy8gRG90IGZvbGxvd2VkIGJ5IGFscGhhbnVtZXJpY2FsIChub3QgYC1gIG9yIGBfYCkuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRvdCkge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2soXG4gICAgICAgIGVtYWlsRG9tYWluRG90VHJhaWwsXG4gICAgICAgIGVtYWlsRG9tYWluQWZ0ZXIsXG4gICAgICAgIGVtYWlsRG9tYWluRG90XG4gICAgICApKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gQWxwaGFudW1lcmljYWwsIGAtYCwgYW5kIGBfYC5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5kYXNoIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy51bmRlcnNjb3JlIHx8XG4gICAgICBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKVxuICAgICkge1xuICAgICAgZGF0YSA9IHRydWVcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGVtYWlsRG9tYWluXG4gICAgfVxuXG4gICAgLy8gVG8gZG86IGAvYCBpZiB4bXBwLlxuXG4gICAgLy8gTm90ZTogbm9ybWFsbHkgd2XigJlkIHRydW5jYXRlIHRyYWlsaW5nIHB1bmN0dWF0aW9uIGZyb20gdGhlIGxpbmsuXG4gICAgLy8gSG93ZXZlciwgZW1haWwgYXV0b2xpbmsgbGl0ZXJhbHMgY2Fubm90IGNvbnRhaW4gYW55IG9mIHRob3NlIG1hcmtlcnMsXG4gICAgLy8gZXhjZXB0IGZvciBgLmAsIGJ1dCB0aGF0IGNhbiBvbmx5IG9jY3VyIGlmIGl0IGlzbuKAmXQgdHJhaWxpbmcuXG4gICAgLy8gU28gd2UgY2FuIGlnbm9yZSB0cnVuY2F0aW5nIVxuICAgIHJldHVybiBlbWFpbERvbWFpbkFmdGVyKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gZW1haWwgZG9tYWluLCBvbiBkb3QgdGhhdCBpcyBub3QgYSB0cmFpbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgY29udGFjdEBleGFtcGxlLm9yZyBiXG4gICAqICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVtYWlsRG9tYWluRG90KGNvZGUpIHtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBkb3QgPSB0cnVlXG4gICAgcmV0dXJuIGVtYWlsRG9tYWluXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZW1haWwgZG9tYWluLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBjb250YWN0QGV4YW1wbGUub3JnIGJcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVtYWlsRG9tYWluQWZ0ZXIoY29kZSkge1xuICAgIC8vIERvbWFpbiBtdXN0IG5vdCBiZSBlbXB0eSwgbXVzdCBpbmNsdWRlIGEgZG90LCBhbmQgbXVzdCBlbmQgaW4gYWxwaGFiZXRpY2FsLlxuICAgIC8vIFNvdXJjZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2Jsb2IvZWYxY2ZjYi9leHRlbnNpb25zL2F1dG9saW5rLmMjTDMzMj4uXG4gICAgaWYgKGRhdGEgJiYgZG90ICYmIGFzY2lpQWxwaGEoc2VsZi5wcmV2aW91cykpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnbGl0ZXJhbEF1dG9saW5rRW1haWwnKVxuICAgICAgZWZmZWN0cy5leGl0KCdsaXRlcmFsQXV0b2xpbmsnKVxuICAgICAgcmV0dXJuIG9rKGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogYHd3d2AgYXV0b2xpbmsgbGl0ZXJhbC5cbiAqXG4gKiBgYGBtYXJrZG93blxuICogPiB8IGEgd3d3LmV4YW1wbGUub3JnIGJcbiAqICAgICAgIF5eXl5eXl5eXl5eXl5eXlxuICogYGBgXG4gKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplV3d3QXV0b2xpbmsoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuXG4gIHJldHVybiB3d3dTdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiB3d3cgYXV0b2xpbmsgbGl0ZXJhbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IHd3dy5leGFtcGxlLmNvbS9hP2IjY1xuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gd3d3U3RhcnQoY29kZSkge1xuICAgIGlmIChcbiAgICAgIChjb2RlICE9PSBjb2Rlcy51cHBlcmNhc2VXICYmIGNvZGUgIT09IGNvZGVzLmxvd2VyY2FzZVcpIHx8XG4gICAgICAhcHJldmlvdXNXd3cuY2FsbChzZWxmLCBzZWxmLnByZXZpb3VzKSB8fFxuICAgICAgcHJldmlvdXNVbmJhbGFuY2VkKHNlbGYuZXZlbnRzKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIoJ2xpdGVyYWxBdXRvbGluaycpXG4gICAgZWZmZWN0cy5lbnRlcignbGl0ZXJhbEF1dG9saW5rV3d3JylcbiAgICAvLyBOb3RlOiB3ZSAqY2hlY2sqLCBzbyB3ZSBjYW4gZGlzY2FyZCB0aGUgYHd3dy5gIHdlIHBhcnNlZC5cbiAgICAvLyBJZiBpdCB3b3JrZWQsIHdlIGNvbnNpZGVyIGl0IGFzIGEgcGFydCBvZiB0aGUgZG9tYWluLlxuICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKFxuICAgICAgd3d3UHJlZml4LFxuICAgICAgZWZmZWN0cy5hdHRlbXB0KGRvbWFpbiwgZWZmZWN0cy5hdHRlbXB0KHBhdGgsIHd3d0FmdGVyKSwgbm9rKSxcbiAgICAgIG5va1xuICAgICkoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBhIHd3dyBhdXRvbGluayBsaXRlcmFsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgd3d3LmV4YW1wbGUuY29tL2E/YiNjXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB3d3dBZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KCdsaXRlcmFsQXV0b2xpbmtXd3cnKVxuICAgIGVmZmVjdHMuZXhpdCgnbGl0ZXJhbEF1dG9saW5rJylcbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIFByb3RvY29sIGF1dG9saW5rIGxpdGVyYWwuXG4gKlxuICogYGBgbWFya2Rvd25cbiAqID4gfCBhIGh0dHBzOi8vZXhhbXBsZS5vcmcgYlxuICogICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXlxuICogYGBgXG4gKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplUHJvdG9jb2xBdXRvbGluayhlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIGxldCBidWZmZXIgPSAnJ1xuICBsZXQgc2VlbiA9IGZhbHNlXG5cbiAgcmV0dXJuIHByb3RvY29sU3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgcHJvdG9jb2wgYXV0b2xpbmsgbGl0ZXJhbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGh0dHBzOi8vZXhhbXBsZS5jb20vYT9iI2NcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHByb3RvY29sU3RhcnQoY29kZSkge1xuICAgIGlmIChcbiAgICAgIChjb2RlID09PSBjb2Rlcy51cHBlcmNhc2VIIHx8IGNvZGUgPT09IGNvZGVzLmxvd2VyY2FzZUgpICYmXG4gICAgICBwcmV2aW91c1Byb3RvY29sLmNhbGwoc2VsZiwgc2VsZi5wcmV2aW91cykgJiZcbiAgICAgICFwcmV2aW91c1VuYmFsYW5jZWQoc2VsZi5ldmVudHMpXG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdsaXRlcmFsQXV0b2xpbmsnKVxuICAgICAgZWZmZWN0cy5lbnRlcignbGl0ZXJhbEF1dG9saW5rSHR0cCcpXG4gICAgICBidWZmZXIgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZSlcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHByb3RvY29sUHJlZml4SW5zaWRlXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHByb3RvY29sLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbS9hP2IjY1xuICAgKiAgICAgXl5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHByb3RvY29sUHJlZml4SW5zaWRlKGNvZGUpIHtcbiAgICAvLyBgNWAgaXMgc2l6ZSBvZiBgaHR0cHNgXG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkgJiYgYnVmZmVyLmxlbmd0aCA8IDUpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGRlZmluaXRlbHkgbnVtYmVyLlxuICAgICAgYnVmZmVyICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNvZGUpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBwcm90b2NvbFByZWZpeEluc2lkZVxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5jb2xvbikge1xuICAgICAgY29uc3QgcHJvdG9jb2wgPSBidWZmZXIudG9Mb3dlckNhc2UoKVxuXG4gICAgICBpZiAocHJvdG9jb2wgPT09ICdodHRwJyB8fCBwcm90b2NvbCA9PT0gJ2h0dHBzJykge1xuICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgICAgcmV0dXJuIHByb3RvY29sU2xhc2hlc0luc2lkZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBzbGFzaGVzLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbS9hP2IjY1xuICAgKiAgICAgICAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHByb3RvY29sU2xhc2hlc0luc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnNsYXNoKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcblxuICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgcmV0dXJuIGFmdGVyUHJvdG9jb2xcbiAgICAgIH1cblxuICAgICAgc2VlbiA9IHRydWVcbiAgICAgIHJldHVybiBwcm90b2NvbFNsYXNoZXNJbnNpZGVcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgcHJvdG9jb2wsIGJlZm9yZSBkb21haW4uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tL2E/YiNjXG4gICAqICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyUHJvdG9jb2woY29kZSkge1xuICAgIC8vIFRvIGRvOiB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIGBtYXJrZG93bi1yc2A6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9tYXJrZG93bi1ycy9ibG9iL2IzYTkyMWM3NjEzMDlhZTAwYTUxZmUzNDhkOGE0M2FkYmM1NGI1MTgvc3JjL2NvbnN0cnVjdC9nZm1fYXV0b2xpbmtfbGl0ZXJhbC5ycyNMMTcyLUwxODJcbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuZW9mIHx8XG4gICAgICBhc2NpaUNvbnRyb2woY29kZSkgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgfHxcbiAgICAgIHVuaWNvZGVXaGl0ZXNwYWNlKGNvZGUpIHx8XG4gICAgICB1bmljb2RlUHVuY3R1YXRpb24oY29kZSlcbiAgICAgID8gbm9rKGNvZGUpXG4gICAgICA6IGVmZmVjdHMuYXR0ZW1wdChkb21haW4sIGVmZmVjdHMuYXR0ZW1wdChwYXRoLCBwcm90b2NvbEFmdGVyKSwgbm9rKShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGEgcHJvdG9jb2wgYXV0b2xpbmsgbGl0ZXJhbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGh0dHBzOi8vZXhhbXBsZS5jb20vYT9iI2NcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBwcm90b2NvbEFmdGVyKGNvZGUpIHtcbiAgICBlZmZlY3RzLmV4aXQoJ2xpdGVyYWxBdXRvbGlua0h0dHAnKVxuICAgIGVmZmVjdHMuZXhpdCgnbGl0ZXJhbEF1dG9saW5rJylcbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIGB3d3dgIHByZWZpeC5cbiAqXG4gKiBgYGBtYXJrZG93blxuICogPiB8IGEgd3d3LmV4YW1wbGUub3JnIGJcbiAqICAgICAgIF5eXl5cbiAqIGBgYFxuICpcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVd3d1ByZWZpeChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGxldCBzaXplID0gMFxuXG4gIHJldHVybiB3d3dQcmVmaXhJbnNpZGVcblxuICAvKipcbiAgICogSW4gd3d3IHByZWZpeC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IHd3dy5leGFtcGxlLmNvbVxuICAgKiAgICAgXl5eXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gd3d3UHJlZml4SW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoKGNvZGUgPT09IGNvZGVzLnVwcGVyY2FzZVcgfHwgY29kZSA9PT0gY29kZXMubG93ZXJjYXNlVykgJiYgc2l6ZSA8IDMpIHtcbiAgICAgIHNpemUrK1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gd3d3UHJlZml4SW5zaWRlXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmRvdCAmJiBzaXplID09PSAzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB3d3dQcmVmaXhBZnRlclxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciB3d3cgcHJlZml4LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgd3d3LmV4YW1wbGUuY29tXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gd3d3UHJlZml4QWZ0ZXIoY29kZSkge1xuICAgIC8vIElmIHRoZXJlIGlzICphbnl0aGluZyosIHdlIGNhbiBsaW5rLlxuICAgIHJldHVybiBjb2RlID09PSBjb2Rlcy5lb2YgPyBub2soY29kZSkgOiBvayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogRG9tYWluLlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiA+IHwgYSBodHRwczovL2V4YW1wbGUub3JnIGJcbiAqICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5cbiAqIGBgYFxuICpcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZURvbWFpbihlZmZlY3RzLCBvaywgbm9rKSB7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHVuZGVyc2NvcmVJbkxhc3RTZWdtZW50XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHVuZGVyc2NvcmVJbkxhc3RMYXN0U2VnbWVudFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBzZWVuXG5cbiAgcmV0dXJuIGRvbWFpbkluc2lkZVxuXG4gIC8qKlxuICAgKiBJbiBkb21haW4uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tL2FcbiAgICogICAgICAgICAgICAgXl5eXl5eXl5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGRvbWFpbkluc2lkZShjb2RlKSB7XG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGlzIG1hcmtlciwgd2hpY2ggaXMgYSB0cmFpbGluZyBwdW5jdHVhdGlvblxuICAgIC8vIG1hcmtlciwgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBtb3JlIHRyYWlsaW5nIG1hcmtlcnMsIGFuZCB0aGVuXG4gICAgLy8gZm9sbG93ZWQgYnkgYW4gZW5kLlxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5kb3QgfHwgY29kZSA9PT0gY29kZXMudW5kZXJzY29yZSkge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2sodHJhaWwsIGRvbWFpbkFmdGVyLCBkb21haW5BdFB1bmN0dWF0aW9uKShjb2RlKVxuICAgIH1cblxuICAgIC8vIEdIIGRvY3VtZW50cyB0aGF0IG9ubHkgYWxwaGFudW1lcmljcyAob3RoZXIgdGhhbiBgLWAsIGAuYCwgYW5kIGBfYCkgY2FuXG4gICAgLy8gb2NjdXIsIHdoaWNoIHNvdW5kcyBsaWtlIEFTQ0lJIG9ubHksIGJ1dCB0aGV5IGFsc28gc3VwcG9ydCBgd3d3Lum7nueciy5jb21gLFxuICAgIC8vIHNvIHRoYXTigJlzIFVuaWNvZGUuXG4gICAgLy8gSW5zdGVhZCBvZiBzb21lIG5ldyBwcm9kdWN0aW9uIGZvciBVbmljb2RlIGFscGhhbnVtZXJpY3MsIG1hcmtkb3duXG4gICAgLy8gYWxyZWFkeSBoYXMgdGhhdCBmb3IgVW5pY29kZSBwdW5jdHVhdGlvbiBhbmQgd2hpdGVzcGFjZSwgc28gdXNlIHRob3NlLlxuICAgIC8vIFNvdXJjZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2Jsb2IvZWYxY2ZjYi9leHRlbnNpb25zL2F1dG9saW5rLmMjTDEyPi5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgfHxcbiAgICAgIHVuaWNvZGVXaGl0ZXNwYWNlKGNvZGUpIHx8XG4gICAgICAoY29kZSAhPT0gY29kZXMuZGFzaCAmJiB1bmljb2RlUHVuY3R1YXRpb24oY29kZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZG9tYWluQWZ0ZXIoY29kZSlcbiAgICB9XG5cbiAgICBzZWVuID0gdHJ1ZVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBkb21haW5JbnNpZGVcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBkb21haW4sIGF0IHBvdGVudGlhbCB0cmFpbGluZyBwdW5jdHVhdGlvbiwgdGhhdCB3YXMgbm90IHRyYWlsaW5nLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbVxuICAgKiAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZG9tYWluQXRQdW5jdHVhdGlvbihjb2RlKSB7XG4gICAgLy8gVGhlcmUgaXMgYW4gdW5kZXJzY29yZSBpbiB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBkb21haW5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMudW5kZXJzY29yZSkge1xuICAgICAgdW5kZXJzY29yZUluTGFzdFNlZ21lbnQgPSB0cnVlXG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSwgaXTigJlzIGEgYC5gOiBzYXZlIHRoZSBsYXN0IHNlZ21lbnQgdW5kZXJzY29yZSBpbiB0aGVcbiAgICAvLyBwZW51bHRpbWF0ZSBzZWdtZW50IHNsb3QuXG4gICAgZWxzZSB7XG4gICAgICB1bmRlcnNjb3JlSW5MYXN0TGFzdFNlZ21lbnQgPSB1bmRlcnNjb3JlSW5MYXN0U2VnbWVudFxuICAgICAgdW5kZXJzY29yZUluTGFzdFNlZ21lbnQgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gZG9tYWluSW5zaWRlXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZG9tYWluLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbS9hXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBkb21haW5BZnRlcihjb2RlKSB7XG4gICAgLy8gTm90ZTogdGhhdOKAmXMgR0ggc2F5cyBhIGRvdCBpcyBuZWVkZWQsIGJ1dCBpdOKAmXMgbm90IHRydWU6XG4gICAgLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2lzc3Vlcy8yNzk+XG4gICAgaWYgKHVuZGVyc2NvcmVJbkxhc3RMYXN0U2VnbWVudCB8fCB1bmRlcnNjb3JlSW5MYXN0U2VnbWVudCB8fCAhc2Vlbikge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogUGF0aC5cbiAqXG4gKiBgYGBtYXJrZG93blxuICogPiB8IGEgaHR0cHM6Ly9leGFtcGxlLm9yZy9zdHVmZiBiXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVQYXRoKGVmZmVjdHMsIG9rKSB7XG4gIGxldCBzaXplT3BlbiA9IDBcbiAgbGV0IHNpemVDbG9zZSA9IDBcblxuICByZXR1cm4gcGF0aEluc2lkZVxuXG4gIC8qKlxuICAgKiBJbiBwYXRoLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbS9hXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHBhdGhJbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5sZWZ0UGFyZW50aGVzaXMpIHtcbiAgICAgIHNpemVPcGVuKytcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHBhdGhJbnNpZGVcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogYG1hcmtkb3duLXJzYCBhbHNvIG5lZWRzIHRoaXMuXG4gICAgLy8gSWYgdGhpcyBpcyBhIHBhcmVuLCBhbmQgdGhlcmUgYXJlIGxlc3MgY2xvc2luZ3MgdGhhbiBvcGVuaW5ncyxcbiAgICAvLyB3ZSBkb27igJl0IGNoZWNrIGZvciBhIHRyYWlsLlxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5yaWdodFBhcmVudGhlc2lzICYmIHNpemVDbG9zZSA8IHNpemVPcGVuKSB7XG4gICAgICByZXR1cm4gcGF0aEF0UHVuY3R1YXRpb24oY29kZSlcbiAgICB9XG5cbiAgICAvLyBDaGVjayB3aGV0aGVyIHRoaXMgdHJhaWxpbmcgcHVuY3R1YXRpb24gbWFya2VyIGlzIG9wdGlvbmFsbHlcbiAgICAvLyBmb2xsb3dlZCBieSBtb3JlIHRyYWlsaW5nIG1hcmtlcnMsIGFuZCB0aGVuIGZvbGxvd2VkXG4gICAgLy8gYnkgYW4gZW5kLlxuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmV4Y2xhbWF0aW9uTWFyayB8fFxuICAgICAgY29kZSA9PT0gY29kZXMucXVvdGF0aW9uTWFyayB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuYW1wZXJzYW5kIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5hcG9zdHJvcGhlIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5yaWdodFBhcmVudGhlc2lzIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5hc3RlcmlzayB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuY29tbWEgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmRvdCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuY29sb24gfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnNlbWljb2xvbiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMubGVzc1RoYW4gfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnF1ZXN0aW9uTWFyayB8fFxuICAgICAgY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0IHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy51bmRlcnNjb3JlIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy50aWxkZVxuICAgICkge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2sodHJhaWwsIG9rLCBwYXRoQXRQdW5jdHVhdGlvbikoY29kZSlcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgfHxcbiAgICAgIHVuaWNvZGVXaGl0ZXNwYWNlKGNvZGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gcGF0aEluc2lkZVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHBhdGgsIGF0IHBvdGVudGlhbCB0cmFpbGluZyBwdW5jdHVhdGlvbiwgdGhhdCB3YXMgbm90IHRyYWlsaW5nLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbS9hXCJiXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBwYXRoQXRQdW5jdHVhdGlvbihjb2RlKSB7XG4gICAgLy8gQ291bnQgY2xvc2luZyBwYXJlbnMuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnJpZ2h0UGFyZW50aGVzaXMpIHtcbiAgICAgIHNpemVDbG9zZSsrXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIHBhdGhJbnNpZGVcbiAgfVxufVxuXG4vKipcbiAqIFRyYWlsLlxuICpcbiAqIFRoaXMgY2FsbHMgYG9rYCBpZiB0aGlzICppcyogdGhlIHRyYWlsLCBmb2xsb3dlZCBieSBhbiBlbmQsIHdoaWNoIG1lYW5zXG4gKiB0aGUgZW50aXJlIHRyYWlsIGlzIG5vdCBwYXJ0IG9mIHRoZSBsaW5rLlxuICogSXQgY2FsbHMgYG5va2AgaWYgdGhpcyAqaXMqIHBhcnQgb2YgdGhlIGxpbmsuXG4gKlxuICogYGBgbWFya2Rvd25cbiAqID4gfCBodHRwczovL2V4YW1wbGUuY29tXCIpLlxuICogICAgICAgICAgICAgICAgICAgICAgICBeXl5cbiAqIGBgYFxuICpcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVRyYWlsKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgcmV0dXJuIHRyYWlsXG5cbiAgLyoqXG4gICAqIEluIHRyYWlsIG9mIGRvbWFpbiBvciBwYXRoLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbVwiKS5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0cmFpbChjb2RlKSB7XG4gICAgLy8gUmVndWxhciB0cmFpbGluZyBwdW5jdHVhdGlvbi5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5leGNsYW1hdGlvbk1hcmsgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnF1b3RhdGlvbk1hcmsgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmFwb3N0cm9waGUgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnJpZ2h0UGFyZW50aGVzaXMgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmFzdGVyaXNrIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5jb21tYSB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuZG90IHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5jb2xvbiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuc2VtaWNvbG9uIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5xdWVzdGlvbk1hcmsgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnVuZGVyc2NvcmUgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnRpbGRlXG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0cmFpbFxuICAgIH1cblxuICAgIC8vIGAmYCBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBhbHBoYWJldGljYWxzIGFuZCB0aGVuIGEgYDtgLCBpc1xuICAgIC8vIGFzIGEgd2hvbGUgY29uc2lkZXJlZCBhcyB0cmFpbGluZyBwdW5jdHVhdGlvbi5cbiAgICAvLyBJbiBhbGwgb3RoZXIgY2FzZXMsIGl0IGlzIGNvbnNpZGVyZWQgYXMgY29udGludWF0aW9uIG9mIHRoZSBVUkwuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmFtcGVyc2FuZCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gdHJhaWxDaGFyUmVmU3RhcnRcbiAgICB9XG5cbiAgICAvLyBOZWVkZWQgYmVjYXVzZSB3ZSBhbGxvdyBsaXRlcmFscyBhZnRlciBgW2AsIGFzIHdlIGZpeDpcbiAgICAvLyA8aHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9jbWFyay1nZm0vaXNzdWVzLzI3OD4uXG4gICAgLy8gQ2hlY2sgdGhhdCBpdCBpcyBub3QgZm9sbG93ZWQgYnkgYChgIG9yIGBbYC5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0cmFpbEJyYWNrZXRBZnRlclxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIC8vIGA8YCBpcyBhbiBlbmQuXG4gICAgICBjb2RlID09PSBjb2Rlcy5sZXNzVGhhbiB8fFxuICAgICAgLy8gU28gaXMgd2hpdGVzcGFjZS5cbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSB8fFxuICAgICAgdW5pY29kZVdoaXRlc3BhY2UoY29kZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBvayhjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0cmFpbCwgYWZ0ZXIgYF1gLlxuICAgKlxuICAgKiA+IPCfkYkgKipOb3RlKio6IHRoaXMgZGV2aWF0ZXMgZnJvbSBgY21hcmstZ2ZtYCB0byBmaXggYSBidWcuXG4gICAqID4gU2VlIGVuZCBvZiA8aHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9jbWFyay1nZm0vaXNzdWVzLzI3OD4gZm9yIG1vcmUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tXShcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdHJhaWxCcmFja2V0QWZ0ZXIoY29kZSkge1xuICAgIC8vIFdoaXRlc3BhY2Ugb3Igc29tZXRoaW5nIHRoYXQgY291bGQgc3RhcnQgYSByZXNvdXJjZSBvciByZWZlcmVuY2UgaXMgdGhlIGVuZC5cbiAgICAvLyBTd2l0Y2ggYmFjayB0byB0cmFpbCBvdGhlcndpc2UuXG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMuZW9mIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5sZWZ0UGFyZW50aGVzaXMgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0IHx8XG4gICAgICBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpIHx8XG4gICAgICB1bmljb2RlV2hpdGVzcGFjZShjb2RlKVxuICAgICkge1xuICAgICAgcmV0dXJuIG9rKGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYWlsKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gY2hhcmFjdGVyLXJlZmVyZW5jZSBsaWtlIHRyYWlsLCBhZnRlciBgJmAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tJmFtcDspLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0cmFpbENoYXJSZWZTdGFydChjb2RlKSB7XG4gICAgLy8gV2hlbiBub24tYWxwaGEsIGl04oCZcyBub3QgYSB0cmFpbC5cbiAgICByZXR1cm4gYXNjaWlBbHBoYShjb2RlKSA/IHRyYWlsQ2hhclJlZkluc2lkZShjb2RlKSA6IG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGNoYXJhY3Rlci1yZWZlcmVuY2UgbGlrZSB0cmFpbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGh0dHBzOi8vZXhhbXBsZS5jb20mYW1wOykuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRyYWlsQ2hhclJlZkluc2lkZShjb2RlKSB7XG4gICAgLy8gU3dpdGNoIGJhY2sgdG8gdHJhaWwgaWYgdGhpcyBpcyB3ZWxsLWZvcm1lZC5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuc2VtaWNvbG9uKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0cmFpbFxuICAgIH1cblxuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiB0cmFpbENoYXJSZWZJbnNpZGVcbiAgICB9XG5cbiAgICAvLyBJdOKAmXMgbm90IGEgdHJhaWwuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG59XG5cbi8qKlxuICogRG90IGluIGVtYWlsIGRvbWFpbiB0cmFpbC5cbiAqXG4gKiBUaGlzIGNhbGxzIGBva2AgaWYgdGhpcyAqaXMqIHRoZSB0cmFpbCwgZm9sbG93ZWQgYnkgYW4gZW5kLCB3aGljaCBtZWFuc1xuICogdGhlIHRyYWlsIGlzIG5vdCBwYXJ0IG9mIHRoZSBsaW5rLlxuICogSXQgY2FsbHMgYG5va2AgaWYgdGhpcyAqaXMqIHBhcnQgb2YgdGhlIGxpbmsuXG4gKlxuICogYGBgbWFya2Rvd25cbiAqID4gfCBjb250YWN0QGV4YW1wbGUub3JnLlxuICogICAgICAgICAgICAgICAgICAgICAgICBeXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVFbWFpbERvbWFpbkRvdFRyYWlsKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIERvdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGNvbnRhY3RAZXhhbXBsZS5vcmcuXG4gICAqICAgICAgICAgICAgICAgICAgICBeICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIC8vIE11c3QgYmUgZG90LlxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBhZnRlclxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGRvdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGNvbnRhY3RAZXhhbXBsZS5vcmcuXG4gICAqICAgICAgICAgICAgICAgICAgICAgXiAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICAvLyBOb3QgYSB0cmFpbCBpZiBhbHBoYW51bWVyaWMuXG4gICAgcmV0dXJuIGFzY2lpQWxwaGFudW1lcmljKGNvZGUpID8gbm9rKGNvZGUpIDogb2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIFNlZTpcbiAqIDxodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2NtYXJrLWdmbS9ibG9iL2VmMWNmY2IvZXh0ZW5zaW9ucy9hdXRvbGluay5jI0wxNTY+LlxuICpcbiAqIEB0eXBlIHtQcmV2aW91c31cbiAqL1xuZnVuY3Rpb24gcHJldmlvdXNXd3coY29kZSkge1xuICByZXR1cm4gKFxuICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgIGNvZGUgPT09IGNvZGVzLmxlZnRQYXJlbnRoZXNpcyB8fFxuICAgIGNvZGUgPT09IGNvZGVzLmFzdGVyaXNrIHx8XG4gICAgY29kZSA9PT0gY29kZXMudW5kZXJzY29yZSB8fFxuICAgIGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0IHx8XG4gICAgY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0IHx8XG4gICAgY29kZSA9PT0gY29kZXMudGlsZGUgfHxcbiAgICBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gIClcbn1cblxuLyoqXG4gKiBTZWU6XG4gKiA8aHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9jbWFyay1nZm0vYmxvYi9lZjFjZmNiL2V4dGVuc2lvbnMvYXV0b2xpbmsuYyNMMjE0Pi5cbiAqXG4gKiBAdHlwZSB7UHJldmlvdXN9XG4gKi9cbmZ1bmN0aW9uIHByZXZpb3VzUHJvdG9jb2woY29kZSkge1xuICByZXR1cm4gIWFzY2lpQWxwaGEoY29kZSlcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1ByZXZpb3VzfVxuICovXG5mdW5jdGlvbiBwcmV2aW91c0VtYWlsKGNvZGUpIHtcbiAgLy8gRG8gbm90IGFsbG93IGEgc2xhc2gg4oCcaW5zaWRl4oCdIGF0ZXh0LlxuICAvLyBUaGUgcmVmZXJlbmNlIGNvZGUgaXMgYSBiaXQgd2VpcmQsIGJ1dCB0aGF04oCZcyB3aGF0IGl0IHJlc3VsdHMgaW4uXG4gIC8vIFNvdXJjZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2Jsb2IvZWYxY2ZjYi9leHRlbnNpb25zL2F1dG9saW5rLmMjTDMwNz4uXG4gIC8vIE90aGVyIHRoYW4gc2xhc2gsIGV2ZXJ5IHByZWNlZGluZyBjaGFyYWN0ZXIgaXMgYWxsb3dlZC5cbiAgcmV0dXJuICEoY29kZSA9PT0gY29kZXMuc2xhc2ggfHwgZ2ZtQXRleHQoY29kZSkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZ2ZtQXRleHQoY29kZSkge1xuICByZXR1cm4gKFxuICAgIGNvZGUgPT09IGNvZGVzLnBsdXNTaWduIHx8XG4gICAgY29kZSA9PT0gY29kZXMuZGFzaCB8fFxuICAgIGNvZGUgPT09IGNvZGVzLmRvdCB8fFxuICAgIGNvZGUgPT09IGNvZGVzLnVuZGVyc2NvcmUgfHxcbiAgICBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKVxuICApXG59XG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxFdmVudD59IGV2ZW50c1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIHByZXZpb3VzVW5iYWxhbmNlZChldmVudHMpIHtcbiAgbGV0IGluZGV4ID0gZXZlbnRzLmxlbmd0aFxuICBsZXQgcmVzdWx0ID0gZmFsc2VcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGNvbnN0IHRva2VuID0gZXZlbnRzW2luZGV4XVsxXVxuXG4gICAgaWYgKFxuICAgICAgKHRva2VuLnR5cGUgPT09ICdsYWJlbExpbmsnIHx8IHRva2VuLnR5cGUgPT09ICdsYWJlbEltYWdlJykgJiZcbiAgICAgICF0b2tlbi5fYmFsYW5jZWRcbiAgICApIHtcbiAgICAgIHJlc3VsdCA9IHRydWVcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgLy8gSWYgd2XigJl2ZSBzZWVuIHRoaXMgdG9rZW4sIGFuZCBpdCB3YXMgbWFya2VkIGFzIG5vdCBoYXZpbmcgYW55IHVuYmFsYW5jZWRcbiAgICAvLyBicmFja2V0IGJlZm9yZSBpdCwgd2UgY2FuIGV4aXQuXG4gICAgaWYgKHRva2VuLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoZXZlbnRzLmxlbmd0aCA+IDAgJiYgIXJlc3VsdCkge1xuICAgIC8vIE1hcmsgdGhlIGxhc3QgdG9rZW4gYXMg4oCcd2Fsa2VkIGludG/igJ0gdy9vIGZpbmRpbmdcbiAgICAvLyBhbnl0aGluZy5cbiAgICBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdWzFdLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvID0gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbImFzY2lpQWxwaGEiLCJhc2NpaUFscGhhbnVtZXJpYyIsImFzY2lpQ29udHJvbCIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCJ1bmljb2RlUHVuY3R1YXRpb24iLCJ1bmljb2RlV2hpdGVzcGFjZSIsImNvZGVzIiwid3d3UHJlZml4IiwidG9rZW5pemUiLCJ0b2tlbml6ZVd3d1ByZWZpeCIsInBhcnRpYWwiLCJkb21haW4iLCJ0b2tlbml6ZURvbWFpbiIsInBhdGgiLCJ0b2tlbml6ZVBhdGgiLCJ0cmFpbCIsInRva2VuaXplVHJhaWwiLCJlbWFpbERvbWFpbkRvdFRyYWlsIiwidG9rZW5pemVFbWFpbERvbWFpbkRvdFRyYWlsIiwid3d3QXV0b2xpbmsiLCJ0b2tlbml6ZVd3d0F1dG9saW5rIiwicHJldmlvdXMiLCJwcmV2aW91c1d3dyIsInByb3RvY29sQXV0b2xpbmsiLCJ0b2tlbml6ZVByb3RvY29sQXV0b2xpbmsiLCJwcmV2aW91c1Byb3RvY29sIiwiZW1haWxBdXRvbGluayIsInRva2VuaXplRW1haWxBdXRvbGluayIsInByZXZpb3VzRW1haWwiLCJ0ZXh0IiwiZ2ZtQXV0b2xpbmtMaXRlcmFsIiwiY29kZSIsImRpZ2l0MCIsImxlZnRDdXJseUJyYWNlIiwiY29sb24iLCJ1cHBlcmNhc2VBIiwibGVmdFNxdWFyZUJyYWNrZXQiLCJsb3dlcmNhc2VBIiwicGx1c1NpZ24iLCJkYXNoIiwiZG90IiwidW5kZXJzY29yZSIsInVwcGVyY2FzZUgiLCJsb3dlcmNhc2VIIiwidXBwZXJjYXNlVyIsImxvd2VyY2FzZVciLCJlZmZlY3RzIiwib2siLCJub2siLCJzZWxmIiwiZGF0YSIsInN0YXJ0IiwiZ2ZtQXRleHQiLCJjYWxsIiwicHJldmlvdXNVbmJhbGFuY2VkIiwiZXZlbnRzIiwiZW50ZXIiLCJhdGV4dCIsImNvbnN1bWUiLCJhdFNpZ24iLCJlbWFpbERvbWFpbiIsImNoZWNrIiwiZW1haWxEb21haW5BZnRlciIsImVtYWlsRG9tYWluRG90IiwiZXhpdCIsInd3d1N0YXJ0IiwiYXR0ZW1wdCIsInd3d0FmdGVyIiwiYnVmZmVyIiwic2VlbiIsInByb3RvY29sU3RhcnQiLCJTdHJpbmciLCJmcm9tQ29kZVBvaW50IiwicHJvdG9jb2xQcmVmaXhJbnNpZGUiLCJsZW5ndGgiLCJwcm90b2NvbCIsInRvTG93ZXJDYXNlIiwicHJvdG9jb2xTbGFzaGVzSW5zaWRlIiwic2xhc2giLCJhZnRlclByb3RvY29sIiwiZW9mIiwicHJvdG9jb2xBZnRlciIsInNpemUiLCJ3d3dQcmVmaXhJbnNpZGUiLCJ3d3dQcmVmaXhBZnRlciIsInVuZGVyc2NvcmVJbkxhc3RTZWdtZW50IiwidW5kZXJzY29yZUluTGFzdExhc3RTZWdtZW50IiwiZG9tYWluSW5zaWRlIiwiZG9tYWluQWZ0ZXIiLCJkb21haW5BdFB1bmN0dWF0aW9uIiwidW5kZWZpbmVkIiwic2l6ZU9wZW4iLCJzaXplQ2xvc2UiLCJwYXRoSW5zaWRlIiwibGVmdFBhcmVudGhlc2lzIiwicmlnaHRQYXJlbnRoZXNpcyIsInBhdGhBdFB1bmN0dWF0aW9uIiwiZXhjbGFtYXRpb25NYXJrIiwicXVvdGF0aW9uTWFyayIsImFtcGVyc2FuZCIsImFwb3N0cm9waGUiLCJhc3RlcmlzayIsImNvbW1hIiwic2VtaWNvbG9uIiwibGVzc1RoYW4iLCJxdWVzdGlvbk1hcmsiLCJyaWdodFNxdWFyZUJyYWNrZXQiLCJ0aWxkZSIsInRyYWlsQ2hhclJlZlN0YXJ0IiwidHJhaWxCcmFja2V0QWZ0ZXIiLCJ0cmFpbENoYXJSZWZJbnNpZGUiLCJhZnRlciIsImluZGV4IiwicmVzdWx0IiwidG9rZW4iLCJ0eXBlIiwiX2JhbGFuY2VkIiwiX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-footnote/dev/lib/html.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-footnote/dev/lib/html.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultBackLabel: () => (/* binding */ defaultBackLabel),\n/* harmony export */ gfmFootnoteHtml: () => (/* binding */ gfmFootnoteHtml)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"(ssr)/../../node_modules/micromark-util-normalize-identifier/dev/index.js\");\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */ /**\n * @callback BackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */ /**\n * @typedef Options\n * Configuration.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {string | null | undefined} [label='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different attributes with the `labelAttributes` option.\n * @property {string | null | undefined} [labelAttributes='class=\"sr-only\"']\n * Attributes to use on the footnote label (default: `'class=\"sr-only\"'`).\n *\n * Change it to show the label and add other attributes.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different attributes.\n *\n * > 👉 **Note**: `id=\"footnote-label\"` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [labelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different attributes with the `labelAttributes` option.\n * @property {BackLabelTemplate | string | null | undefined} [backLabel]\n * Textual label to describe the backreference back to references (default:\n * `defaultBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `aria-label` attribute on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n */ \n\n\nconst own = {}.hasOwnProperty;\n/** @type {Options} */ const emptyOptions = {};\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Default label.\n */ function defaultBackLabel(referenceIndex, rereferenceIndex) {\n return \"Back to reference \" + (referenceIndex + 1) + (rereferenceIndex > 1 ? \"-\" + rereferenceIndex : \"\");\n}\n/**\n * Create an extension for `micromark` to support GFM footnotes when\n * serializing to HTML.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration (optional).\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM footnotes when serializing to HTML.\n */ function gfmFootnoteHtml(options) {\n const config = options || emptyOptions;\n const label = config.label || \"Footnotes\";\n const labelTagName = config.labelTagName || \"h2\";\n const labelAttributes = config.labelAttributes === null || config.labelAttributes === undefined ? 'class=\"sr-only\"' : config.labelAttributes;\n const backLabel = config.backLabel || defaultBackLabel;\n const clobberPrefix = config.clobberPrefix === null || config.clobberPrefix === undefined ? \"user-content-\" : config.clobberPrefix;\n return {\n enter: {\n gfmFootnoteDefinition () {\n const stack = this.getData(\"tightStack\");\n stack.push(false);\n },\n gfmFootnoteDefinitionLabelString () {\n this.buffer();\n },\n gfmFootnoteCallString () {\n this.buffer();\n }\n },\n exit: {\n gfmFootnoteDefinition () {\n let definitions = this.getData(\"gfmFootnoteDefinitions\");\n const footnoteStack = this.getData(\"gfmFootnoteDefinitionStack\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(footnoteStack, \"expected `footnoteStack`\");\n const tightStack = this.getData(\"tightStack\");\n const current = footnoteStack.pop();\n const value = this.resume();\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(current, \"expected to be in a footnote\");\n if (!definitions) {\n this.setData(\"gfmFootnoteDefinitions\", definitions = {});\n }\n if (!own.call(definitions, current)) definitions[current] = value;\n tightStack.pop();\n this.setData(\"slurpOneLineEnding\", true);\n // “Hack” to prevent a line ending from showing up if we’re in a definition in\n // an empty list item.\n this.setData(\"lastWasTag\");\n },\n gfmFootnoteDefinitionLabelString (token) {\n let footnoteStack = this.getData(\"gfmFootnoteDefinitionStack\");\n if (!footnoteStack) {\n this.setData(\"gfmFootnoteDefinitionStack\", footnoteStack = []);\n }\n footnoteStack.push((0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__.normalizeIdentifier)(this.sliceSerialize(token)));\n this.resume() // Drop the label.\n ;\n this.buffer() // Get ready for a value.\n ;\n },\n gfmFootnoteCallString (token) {\n let calls = this.getData(\"gfmFootnoteCallOrder\");\n let counts = this.getData(\"gfmFootnoteCallCounts\");\n const id = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__.normalizeIdentifier)(this.sliceSerialize(token));\n /** @type {number} */ let counter;\n this.resume();\n if (!calls) this.setData(\"gfmFootnoteCallOrder\", calls = []);\n if (!counts) this.setData(\"gfmFootnoteCallCounts\", counts = {});\n const index = calls.indexOf(id);\n const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_2__.sanitizeUri)(id.toLowerCase());\n if (index === -1) {\n calls.push(id);\n counts[id] = 1;\n counter = calls.length;\n } else {\n counts[id]++;\n counter = index + 1;\n }\n const reuseCounter = counts[id];\n this.tag('<sup><a href=\"#' + clobberPrefix + \"fn-\" + safeId + '\" id=\"' + clobberPrefix + \"fnref-\" + safeId + (reuseCounter > 1 ? \"-\" + reuseCounter : \"\") + '\" data-footnote-ref=\"\" aria-describedby=\"footnote-label\">' + String(counter) + \"</a></sup>\");\n },\n null () {\n const calls = this.getData(\"gfmFootnoteCallOrder\") || [];\n const counts = this.getData(\"gfmFootnoteCallCounts\") || {};\n const definitions = this.getData(\"gfmFootnoteDefinitions\") || {};\n let index = -1;\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag('<section data-footnotes=\"\" class=\"footnotes\"><' + labelTagName + ' id=\"footnote-label\"' + (labelAttributes ? \" \" + labelAttributes : \"\") + \">\");\n this.raw(this.encode(label));\n this.tag(\"</\" + labelTagName + \">\");\n this.lineEndingIfNeeded();\n this.tag(\"<ol>\");\n }\n while(++index < calls.length){\n // Called definitions are always defined.\n const id = calls[index];\n const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_2__.sanitizeUri)(id.toLowerCase());\n let referenceIndex = 0;\n /** @type {Array<string>} */ const references = [];\n while(++referenceIndex <= counts[id]){\n references.push('<a href=\"#' + clobberPrefix + \"fnref-\" + safeId + (referenceIndex > 1 ? \"-\" + referenceIndex : \"\") + '\" data-footnote-backref=\"\" aria-label=\"' + this.encode(typeof backLabel === \"string\" ? backLabel : backLabel(index, referenceIndex)) + '\" class=\"data-footnote-backref\">↩' + (referenceIndex > 1 ? \"<sup>\" + referenceIndex + \"</sup>\" : \"\") + \"</a>\");\n }\n const reference = references.join(\" \");\n let injected = false;\n this.lineEndingIfNeeded();\n this.tag('<li id=\"' + clobberPrefix + \"fn-\" + safeId + '\">');\n this.lineEndingIfNeeded();\n this.tag(definitions[id].replace(/<\\/p>(?:\\r?\\n|\\r)?$/, function($0) {\n injected = true;\n return \" \" + reference + $0;\n }));\n if (!injected) {\n this.lineEndingIfNeeded();\n this.tag(reference);\n }\n this.lineEndingIfNeeded();\n this.tag(\"</li>\");\n }\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag(\"</ol>\");\n this.lineEndingIfNeeded();\n this.tag(\"</section>\");\n }\n }\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlL2Rldi9saWIvaHRtbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztDQUVDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E0QkMsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTRFQyxHQUVrQztBQUNvQztBQUNoQjtBQUV2RCxNQUFNSSxNQUFNLENBQUMsRUFBRUMsY0FBYztBQUU3QixvQkFBb0IsR0FDcEIsTUFBTUMsZUFBZSxDQUFDO0FBRXRCOzs7Ozs7Ozs7O0NBVUMsR0FDTSxTQUFTQyxpQkFBaUJDLGNBQWMsRUFBRUMsZ0JBQWdCO0lBQy9ELE9BQ0UsdUJBQ0NELENBQUFBLGlCQUFpQixLQUNqQkMsQ0FBQUEsbUJBQW1CLElBQUksTUFBTUEsbUJBQW1CLEVBQUM7QUFFdEQ7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDTSxTQUFTQyxnQkFBZ0JDLE9BQU87SUFDckMsTUFBTUMsU0FBU0QsV0FBV0w7SUFDMUIsTUFBTU8sUUFBUUQsT0FBT0MsS0FBSyxJQUFJO0lBQzlCLE1BQU1DLGVBQWVGLE9BQU9FLFlBQVksSUFBSTtJQUM1QyxNQUFNQyxrQkFDSkgsT0FBT0csZUFBZSxLQUFLLFFBQVFILE9BQU9HLGVBQWUsS0FBS0MsWUFDMUQsb0JBQ0FKLE9BQU9HLGVBQWU7SUFDNUIsTUFBTUUsWUFBWUwsT0FBT0ssU0FBUyxJQUFJVjtJQUN0QyxNQUFNVyxnQkFDSk4sT0FBT00sYUFBYSxLQUFLLFFBQVFOLE9BQU9NLGFBQWEsS0FBS0YsWUFDdEQsa0JBQ0FKLE9BQU9NLGFBQWE7SUFDMUIsT0FBTztRQUNMQyxPQUFPO1lBQ0xDO2dCQUNFLE1BQU1DLFFBQVEsSUFBSSxDQUFDQyxPQUFPLENBQUM7Z0JBQzNCRCxNQUFNRSxJQUFJLENBQUM7WUFD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LElBQUksQ0FBQ08sa0JBQWtCO29CQUN2QixJQUFJLENBQUNILEdBQUcsQ0FDTnJCLFdBQVcsQ0FBQ2EsR0FBRyxDQUFDa0IsT0FBTyxDQUFDLHVCQUF1QixTQUFVQyxFQUFFO3dCQUN6REYsV0FBVzt3QkFDWCxPQUFPLE1BQU1GLFlBQVlJO29CQUMzQjtvQkFHRixJQUFJLENBQUNGLFVBQVU7d0JBQ2IsSUFBSSxDQUFDTixrQkFBa0I7d0JBQ3ZCLElBQUksQ0FBQ0gsR0FBRyxDQUFDTztvQkFDWDtvQkFFQSxJQUFJLENBQUNKLGtCQUFrQjtvQkFDdkIsSUFBSSxDQUFDSCxHQUFHLENBQUM7Z0JBQ1g7Z0JBRUEsSUFBSVYsTUFBTVEsTUFBTSxHQUFHLEdBQUc7b0JBQ3BCLElBQUksQ0FBQ0ssa0JBQWtCO29CQUN2QixJQUFJLENBQUNILEdBQUcsQ0FBQztvQkFDVCxJQUFJLENBQUNHLGtCQUFrQjtvQkFDdkIsSUFBSSxDQUFDSCxHQUFHLENBQUM7Z0JBQ1g7WUFDRjtRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlL2Rldi9saWIvaHRtbC5qcz81YmY0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5IdG1sRXh0ZW5zaW9ufSBIdG1sRXh0ZW5zaW9uXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgQmFja0xhYmVsVGVtcGxhdGVcbiAqICAgR2VuZXJhdGUgYSBiYWNrIGxhYmVsIGR5bmFtaWNhbGx5LlxuICpcbiAqICAgRm9yIHRoZSBmb2xsb3dpbmcgbWFya2Rvd246XG4gKlxuICogICBgYGBtYXJrZG93blxuICogICBBbHBoYVtebWljcm9tYXJrXSwgYnJhdm9bXm1pY3JvbWFya10sIGFuZCBjaGFybGllW15yZW1hcmtdLlxuICpcbiAqICAgW15yZW1hcmtdOiB0aGluZ3MgYWJvdXQgcmVtYXJrXG4gKiAgIFtebWljcm9tYXJrXTogdGhpbmdzIGFib3V0IG1pY3JvbWFya1xuICogICBgYGBcbiAqXG4gKiAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aDpcbiAqXG4gKiAgICogYDBgIGFuZCBgMGAgZm9yIHRoZSBiYWNrcmVmZXJlbmNlIGZyb20gYHRoaW5ncyBhYm91dCBtaWNyb21hcmtgIHRvXG4gKiAgICAgIGBhbHBoYWAsIGFzIGl0IGlzIHRoZSBmaXJzdCB1c2VkIGRlZmluaXRpb24sIGFuZCB0aGUgZmlyc3QgY2FsbCB0byBpdFxuICogICAqIGAwYCBhbmQgYDFgIGZvciB0aGUgYmFja3JlZmVyZW5jZSBmcm9tIGB0aGluZ3MgYWJvdXQgbWljcm9tYXJrYCB0b1xuICogICAgICBgYnJhdm9gLCBhcyBpdCBpcyB0aGUgZmlyc3QgdXNlZCBkZWZpbml0aW9uLCBhbmQgdGhlIHNlY29uZCBjYWxsIHRvIGl0XG4gKiAgICogYDFgIGFuZCBgMGAgZm9yIHRoZSBiYWNrcmVmZXJlbmNlIGZyb20gYHRoaW5ncyBhYm91dCByZW1hcmtgIHRvXG4gKiAgICAgIGBjaGFybGllYCwgYXMgaXQgaXMgdGhlIHNlY29uZCB1c2VkIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSByZWZlcmVuY2VJbmRleFxuICogICBJbmRleCBvZiB0aGUgZGVmaW5pdGlvbiBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IGFyZSBmaXJzdCByZWZlcmVuY2VkLFxuICogICAwLWluZGV4ZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gcmVyZWZlcmVuY2VJbmRleFxuICogICBJbmRleCBvZiBjYWxscyB0byB0aGUgc2FtZSBkZWZpbml0aW9uLCAwLWluZGV4ZWQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBCYWNrIGxhYmVsIHRvIHVzZSB3aGVuIGxpbmtpbmcgYmFjayBmcm9tIGRlZmluaXRpb25zIHRvIHRoZWlyIHJlZmVyZW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Nsb2JiZXJQcmVmaXg9J3VzZXItY29udGVudC0nXVxuICogICBQcmVmaXggdG8gdXNlIGJlZm9yZSB0aGUgYGlkYCBhdHRyaWJ1dGUgb24gZm9vdG5vdGVzIHRvIHByZXZlbnQgdGhlbSBmcm9tXG4gKiAgICpjbG9iYmVyaW5nKiAoZGVmYXVsdDogYCd1c2VyLWNvbnRlbnQtJ2ApLlxuICpcbiAqICAgUGFzcyBgJydgIGZvciB0cnVzdGVkIG1hcmtkb3duIGFuZCB3aGVuIHlvdSBhcmUgY2FyZWZ1bCB3aXRoXG4gKiAgIHBvbHlmaWxsaW5nLlxuICogICBZb3UgY291bGQgcGFzcyBhIGRpZmZlcmVudCBwcmVmaXguXG4gKlxuICogICBET00gY2xvYmJlcmluZyBpcyB0aGlzOlxuICpcbiAqICAgYGBgaHRtbFxuICogICA8cCBpZD1cInhcIj48L3A+XG4gKiAgIDxzY3JpcHQ+YWxlcnQoeCkgLy8gYHhgIG5vdyByZWZlcnMgdG8gdGhlIGBwI3hgIERPTSBlbGVtZW50PC9zY3JpcHQ+XG4gKiAgIGBgYFxuICpcbiAqICAgVGhlIGFib3ZlIGV4YW1wbGUgc2hvd3MgdGhhdCBlbGVtZW50cyBhcmUgbWFkZSBhdmFpbGFibGUgYnkgYnJvd3NlcnMsIGJ5XG4gKiAgIHRoZWlyIElELCBvbiB0aGUgYHdpbmRvd2Agb2JqZWN0LlxuICogICBUaGlzIGlzIGEgc2VjdXJpdHkgcmlzayBiZWNhdXNlIHlvdSBtaWdodCBiZSBleHBlY3Rpbmcgc29tZSBvdGhlciB2YXJpYWJsZVxuICogICBhdCB0aGF0IHBsYWNlLlxuICogICBJdCBjYW4gYWxzbyBicmVhayBwb2x5ZmlsbHMuXG4gKiAgIFVzaW5nIGEgcHJlZml4IHNvbHZlcyB0aGVzZSBwcm9ibGVtcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2xhYmVsPSdGb290bm90ZXMnXVxuICogICBUZXh0dWFsIGxhYmVsIHRvIHVzZSBmb3IgdGhlIGZvb3Rub3RlcyBzZWN0aW9uIChkZWZhdWx0OiBgJ0Zvb3Rub3RlcydgKS5cbiAqXG4gKiAgIENoYW5nZSBpdCB3aGVuIHRoZSBtYXJrZG93biBpcyBub3QgaW4gRW5nbGlzaC5cbiAqXG4gKiAgIFRoaXMgbGFiZWwgaXMgdHlwaWNhbGx5IGhpZGRlbiB2aXN1YWxseSAoYXNzdW1pbmcgYSBgc3Itb25seWAgQ1NTIGNsYXNzXG4gKiAgIGlzIGRlZmluZWQgdGhhdCBkb2VzIHRoYXQpIGFuZCBzbyBhZmZlY3RzIHNjcmVlbiByZWFkZXJzIG9ubHkuXG4gKiAgIElmIHlvdSBkbyBoYXZlIHN1Y2ggYSBjbGFzcywgYnV0IHdhbnQgdG8gc2hvdyB0aGlzIHNlY3Rpb24gdG8gZXZlcnlvbmUsXG4gKiAgIHBhc3MgZGlmZmVyZW50IGF0dHJpYnV0ZXMgd2l0aCB0aGUgYGxhYmVsQXR0cmlidXRlc2Agb3B0aW9uLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbbGFiZWxBdHRyaWJ1dGVzPSdjbGFzcz1cInNyLW9ubHlcIiddXG4gKiAgIEF0dHJpYnV0ZXMgdG8gdXNlIG9uIHRoZSBmb290bm90ZSBsYWJlbCAoZGVmYXVsdDogYCdjbGFzcz1cInNyLW9ubHlcIidgKS5cbiAqXG4gKiAgIENoYW5nZSBpdCB0byBzaG93IHRoZSBsYWJlbCBhbmQgYWRkIG90aGVyIGF0dHJpYnV0ZXMuXG4gKlxuICogICBUaGlzIGxhYmVsIGlzIHR5cGljYWxseSBoaWRkZW4gdmlzdWFsbHkgKGFzc3VtaW5nIGFuIGBzci1vbmx5YCBDU1MgY2xhc3NcbiAqICAgaXMgZGVmaW5lZCB0aGF0IGRvZXMgdGhhdCkgYW5kIHNvIGFmZmVjdHMgc2NyZWVuIHJlYWRlcnMgb25seS5cbiAqICAgSWYgeW91IGRvIGhhdmUgc3VjaCBhIGNsYXNzLCBidXQgd2FudCB0byBzaG93IHRoaXMgc2VjdGlvbiB0byBldmVyeW9uZSxcbiAqICAgcGFzcyBhbiBlbXB0eSBzdHJpbmcuXG4gKiAgIFlvdSBjYW4gYWxzbyBhZGQgZGlmZmVyZW50IGF0dHJpYnV0ZXMuXG4gKlxuICogICA+IPCfkYkgKipOb3RlKio6IGBpZD1cImZvb3Rub3RlLWxhYmVsXCJgIGlzIGFsd2F5cyBhZGRlZCwgYmVjYXVzZSBmb290bm90ZVxuICogICA+IGNhbGxzIHVzZSBpdCB3aXRoIGBhcmlhLWRlc2NyaWJlZGJ5YCB0byBwcm92aWRlIGFuIGFjY2Vzc2libGUgbGFiZWwuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtsYWJlbFRhZ05hbWU9J2gyJ11cbiAqICAgSFRNTCB0YWcgbmFtZSB0byB1c2UgZm9yIHRoZSBmb290bm90ZSBsYWJlbCBlbGVtZW50IChkZWZhdWx0OiBgJ2gyJ2ApLlxuICpcbiAqICAgQ2hhbmdlIGl0IHRvIG1hdGNoIHlvdXIgZG9jdW1lbnQgc3RydWN0dXJlLlxuICpcbiAqICAgVGhpcyBsYWJlbCBpcyB0eXBpY2FsbHkgaGlkZGVuIHZpc3VhbGx5IChhc3N1bWluZyBhIGBzci1vbmx5YCBDU1MgY2xhc3NcbiAqICAgaXMgZGVmaW5lZCB0aGF0IGRvZXMgdGhhdCkgYW5kIHNvIGFmZmVjdHMgc2NyZWVuIHJlYWRlcnMgb25seS5cbiAqICAgSWYgeW91IGRvIGhhdmUgc3VjaCBhIGNsYXNzLCBidXQgd2FudCB0byBzaG93IHRoaXMgc2VjdGlvbiB0byBldmVyeW9uZSxcbiAqICAgcGFzcyBkaWZmZXJlbnQgYXR0cmlidXRlcyB3aXRoIHRoZSBgbGFiZWxBdHRyaWJ1dGVzYCBvcHRpb24uXG4gKiBAcHJvcGVydHkge0JhY2tMYWJlbFRlbXBsYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2JhY2tMYWJlbF1cbiAqICAgVGV4dHVhbCBsYWJlbCB0byBkZXNjcmliZSB0aGUgYmFja3JlZmVyZW5jZSBiYWNrIHRvIHJlZmVyZW5jZXMgKGRlZmF1bHQ6XG4gKiAgIGBkZWZhdWx0QmFja0xhYmVsYCkuXG4gKlxuICogICBUaGUgZGVmYXVsdCB2YWx1ZSBpczpcbiAqXG4gKiAgIGBgYGpzXG4gKiAgIGZ1bmN0aW9uIGRlZmF1bHRCYWNrTGFiZWwocmVmZXJlbmNlSW5kZXgsIHJlcmVmZXJlbmNlSW5kZXgpIHtcbiAqICAgIHJldHVybiAoXG4gKiAgICAgICdCYWNrIHRvIHJlZmVyZW5jZSAnICtcbiAqICAgICAgKHJlZmVyZW5jZUluZGV4ICsgMSkgK1xuICogICAgICAocmVyZWZlcmVuY2VJbmRleCA+IDEgPyAnLScgKyByZXJlZmVyZW5jZUluZGV4IDogJycpXG4gKiAgICApXG4gKiAgfVxuICogICBgYGBcbiAqXG4gKiAgIENoYW5nZSBpdCB3aGVuIHRoZSBtYXJrZG93biBpcyBub3QgaW4gRW5nbGlzaC5cbiAqXG4gKiAgIFRoaXMgbGFiZWwgaXMgdXNlZCBpbiB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSBvbiBlYWNoIGJhY2tyZWZlcmVuY2VcbiAqICAgKHRoZSBg4oapYCBsaW5rcykuXG4gKiAgIEl0IGFmZmVjdHMgdXNlcnMgb2YgYXNzaXN0aXZlIHRlY2hub2xvZ3kuXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7bm9ybWFsaXplSWRlbnRpZmllcn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtbm9ybWFsaXplLWlkZW50aWZpZXInXG5pbXBvcnQge3Nhbml0aXplVXJpfSBmcm9tICdtaWNyb21hcmstdXRpbC1zYW5pdGl6ZS11cmknXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKlxuICogR2VuZXJhdGUgdGhlIGRlZmF1bHQgbGFiZWwgdGhhdCBHaXRIdWIgdXNlcyBvbiBiYWNrcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gcmVmZXJlbmNlSW5kZXhcbiAqICAgSW5kZXggb2YgdGhlIGRlZmluaXRpb24gaW4gdGhlIG9yZGVyIHRoYXQgdGhleSBhcmUgZmlyc3QgcmVmZXJlbmNlZCxcbiAqICAgMC1pbmRleGVkLlxuICogQHBhcmFtIHtudW1iZXJ9IHJlcmVmZXJlbmNlSW5kZXhcbiAqICAgSW5kZXggb2YgY2FsbHMgdG8gdGhlIHNhbWUgZGVmaW5pdGlvbiwgMC1pbmRleGVkLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRGVmYXVsdCBsYWJlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRCYWNrTGFiZWwocmVmZXJlbmNlSW5kZXgsIHJlcmVmZXJlbmNlSW5kZXgpIHtcbiAgcmV0dXJuIChcbiAgICAnQmFjayB0byByZWZlcmVuY2UgJyArXG4gICAgKHJlZmVyZW5jZUluZGV4ICsgMSkgK1xuICAgIChyZXJlZmVyZW5jZUluZGV4ID4gMSA/ICctJyArIHJlcmVmZXJlbmNlSW5kZXggOiAnJylcbiAgKVxufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIHN1cHBvcnQgR0ZNIGZvb3Rub3RlcyB3aGVuXG4gKiBzZXJpYWxpemluZyB0byBIVE1MLlxuICpcbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zPXt9XVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7SHRtbEV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGh0bWxFeHRlbnNpb25zYCB0b1xuICogICBzdXBwb3J0IEdGTSBmb290bm90ZXMgd2hlbiBzZXJpYWxpemluZyB0byBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtRm9vdG5vdGVIdG1sKG9wdGlvbnMpIHtcbiAgY29uc3QgY29uZmlnID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgbGFiZWwgPSBjb25maWcubGFiZWwgfHwgJ0Zvb3Rub3RlcydcbiAgY29uc3QgbGFiZWxUYWdOYW1lID0gY29uZmlnLmxhYmVsVGFnTmFtZSB8fCAnaDInXG4gIGNvbnN0IGxhYmVsQXR0cmlidXRlcyA9XG4gICAgY29uZmlnLmxhYmVsQXR0cmlidXRlcyA9PT0gbnVsbCB8fCBjb25maWcubGFiZWxBdHRyaWJ1dGVzID09PSB1bmRlZmluZWRcbiAgICAgID8gJ2NsYXNzPVwic3Itb25seVwiJ1xuICAgICAgOiBjb25maWcubGFiZWxBdHRyaWJ1dGVzXG4gIGNvbnN0IGJhY2tMYWJlbCA9IGNvbmZpZy5iYWNrTGFiZWwgfHwgZGVmYXVsdEJhY2tMYWJlbFxuICBjb25zdCBjbG9iYmVyUHJlZml4ID1cbiAgICBjb25maWcuY2xvYmJlclByZWZpeCA9PT0gbnVsbCB8fCBjb25maWcuY2xvYmJlclByZWZpeCA9PT0gdW5kZWZpbmVkXG4gICAgICA/ICd1c2VyLWNvbnRlbnQtJ1xuICAgICAgOiBjb25maWcuY2xvYmJlclByZWZpeFxuICByZXR1cm4ge1xuICAgIGVudGVyOiB7XG4gICAgICBnZm1Gb290bm90ZURlZmluaXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXREYXRhKCd0aWdodFN0YWNrJylcbiAgICAgICAgc3RhY2sucHVzaChmYWxzZSlcbiAgICAgIH0sXG4gICAgICBnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZygpIHtcbiAgICAgICAgdGhpcy5idWZmZXIoKVxuICAgICAgfSxcbiAgICAgIGdmbUZvb3Rub3RlQ2FsbFN0cmluZygpIHtcbiAgICAgICAgdGhpcy5idWZmZXIoKVxuICAgICAgfVxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgZ2ZtRm9vdG5vdGVEZWZpbml0aW9uKCkge1xuICAgICAgICBsZXQgZGVmaW5pdGlvbnMgPSB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbnMnKVxuICAgICAgICBjb25zdCBmb290bm90ZVN0YWNrID0gdGhpcy5nZXREYXRhKCdnZm1Gb290bm90ZURlZmluaXRpb25TdGFjaycpXG4gICAgICAgIGFzc2VydChmb290bm90ZVN0YWNrLCAnZXhwZWN0ZWQgYGZvb3Rub3RlU3RhY2tgJylcbiAgICAgICAgY29uc3QgdGlnaHRTdGFjayA9IHRoaXMuZ2V0RGF0YSgndGlnaHRTdGFjaycpXG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBmb290bm90ZVN0YWNrLnBvcCgpXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXN1bWUoKVxuXG4gICAgICAgIGFzc2VydChjdXJyZW50LCAnZXhwZWN0ZWQgdG8gYmUgaW4gYSBmb290bm90ZScpXG5cbiAgICAgICAgaWYgKCFkZWZpbml0aW9ucykge1xuICAgICAgICAgIHRoaXMuc2V0RGF0YSgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucycsIChkZWZpbml0aW9ucyA9IHt9KSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb3duLmNhbGwoZGVmaW5pdGlvbnMsIGN1cnJlbnQpKSBkZWZpbml0aW9uc1tjdXJyZW50XSA9IHZhbHVlXG5cbiAgICAgICAgdGlnaHRTdGFjay5wb3AoKVxuICAgICAgICB0aGlzLnNldERhdGEoJ3NsdXJwT25lTGluZUVuZGluZycsIHRydWUpXG4gICAgICAgIC8vIOKAnEhhY2vigJ0gdG8gcHJldmVudCBhIGxpbmUgZW5kaW5nIGZyb20gc2hvd2luZyB1cCBpZiB3ZeKAmXJlIGluIGEgZGVmaW5pdGlvbiBpblxuICAgICAgICAvLyBhbiBlbXB0eSBsaXN0IGl0ZW0uXG4gICAgICAgIHRoaXMuc2V0RGF0YSgnbGFzdFdhc1RhZycpXG4gICAgICB9LFxuICAgICAgZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcodG9rZW4pIHtcbiAgICAgICAgbGV0IGZvb3Rub3RlU3RhY2sgPSB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrJylcblxuICAgICAgICBpZiAoIWZvb3Rub3RlU3RhY2spIHtcbiAgICAgICAgICB0aGlzLnNldERhdGEoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrJywgKGZvb3Rub3RlU3RhY2sgPSBbXSkpXG4gICAgICAgIH1cblxuICAgICAgICBmb290bm90ZVN0YWNrLnB1c2gobm9ybWFsaXplSWRlbnRpZmllcih0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKSkpXG4gICAgICAgIHRoaXMucmVzdW1lKCkgLy8gRHJvcCB0aGUgbGFiZWwuXG4gICAgICAgIHRoaXMuYnVmZmVyKCkgLy8gR2V0IHJlYWR5IGZvciBhIHZhbHVlLlxuICAgICAgfSxcbiAgICAgIGdmbUZvb3Rub3RlQ2FsbFN0cmluZyh0b2tlbikge1xuICAgICAgICBsZXQgY2FsbHMgPSB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlQ2FsbE9yZGVyJylcbiAgICAgICAgbGV0IGNvdW50cyA9IHRoaXMuZ2V0RGF0YSgnZ2ZtRm9vdG5vdGVDYWxsQ291bnRzJylcbiAgICAgICAgY29uc3QgaWQgPSBub3JtYWxpemVJZGVudGlmaWVyKHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pKVxuICAgICAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICAgICAgbGV0IGNvdW50ZXJcblxuICAgICAgICB0aGlzLnJlc3VtZSgpXG5cbiAgICAgICAgaWYgKCFjYWxscykgdGhpcy5zZXREYXRhKCdnZm1Gb290bm90ZUNhbGxPcmRlcicsIChjYWxscyA9IFtdKSlcbiAgICAgICAgaWYgKCFjb3VudHMpIHRoaXMuc2V0RGF0YSgnZ2ZtRm9vdG5vdGVDYWxsQ291bnRzJywgKGNvdW50cyA9IHt9KSlcblxuICAgICAgICBjb25zdCBpbmRleCA9IGNhbGxzLmluZGV4T2YoaWQpXG4gICAgICAgIGNvbnN0IHNhZmVJZCA9IHNhbml0aXplVXJpKGlkLnRvTG93ZXJDYXNlKCkpXG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgIGNhbGxzLnB1c2goaWQpXG4gICAgICAgICAgY291bnRzW2lkXSA9IDFcbiAgICAgICAgICBjb3VudGVyID0gY2FsbHMubGVuZ3RoXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY291bnRzW2lkXSsrXG4gICAgICAgICAgY291bnRlciA9IGluZGV4ICsgMVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmV1c2VDb3VudGVyID0gY291bnRzW2lkXVxuXG4gICAgICAgIHRoaXMudGFnKFxuICAgICAgICAgICc8c3VwPjxhIGhyZWY9XCIjJyArXG4gICAgICAgICAgICBjbG9iYmVyUHJlZml4ICtcbiAgICAgICAgICAgICdmbi0nICtcbiAgICAgICAgICAgIHNhZmVJZCArXG4gICAgICAgICAgICAnXCIgaWQ9XCInICtcbiAgICAgICAgICAgIGNsb2JiZXJQcmVmaXggK1xuICAgICAgICAgICAgJ2ZucmVmLScgK1xuICAgICAgICAgICAgc2FmZUlkICtcbiAgICAgICAgICAgIChyZXVzZUNvdW50ZXIgPiAxID8gJy0nICsgcmV1c2VDb3VudGVyIDogJycpICtcbiAgICAgICAgICAgICdcIiBkYXRhLWZvb3Rub3RlLXJlZj1cIlwiIGFyaWEtZGVzY3JpYmVkYnk9XCJmb290bm90ZS1sYWJlbFwiPicgK1xuICAgICAgICAgICAgU3RyaW5nKGNvdW50ZXIpICtcbiAgICAgICAgICAgICc8L2E+PC9zdXA+J1xuICAgICAgICApXG4gICAgICB9LFxuICAgICAgbnVsbCgpIHtcbiAgICAgICAgY29uc3QgY2FsbHMgPSB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlQ2FsbE9yZGVyJykgfHwgW11cbiAgICAgICAgY29uc3QgY291bnRzID0gdGhpcy5nZXREYXRhKCdnZm1Gb290bm90ZUNhbGxDb3VudHMnKSB8fCB7fVxuICAgICAgICBjb25zdCBkZWZpbml0aW9ucyA9IHRoaXMuZ2V0RGF0YSgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucycpIHx8IHt9XG4gICAgICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICAgICAgaWYgKGNhbGxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgICAgdGhpcy50YWcoXG4gICAgICAgICAgICAnPHNlY3Rpb24gZGF0YS1mb290bm90ZXM9XCJcIiBjbGFzcz1cImZvb3Rub3Rlc1wiPjwnICtcbiAgICAgICAgICAgICAgbGFiZWxUYWdOYW1lICtcbiAgICAgICAgICAgICAgJyBpZD1cImZvb3Rub3RlLWxhYmVsXCInICtcbiAgICAgICAgICAgICAgKGxhYmVsQXR0cmlidXRlcyA/ICcgJyArIGxhYmVsQXR0cmlidXRlcyA6ICcnKSArXG4gICAgICAgICAgICAgICc+J1xuICAgICAgICAgIClcbiAgICAgICAgICB0aGlzLnJhdyh0aGlzLmVuY29kZShsYWJlbCkpXG4gICAgICAgICAgdGhpcy50YWcoJzwvJyArIGxhYmVsVGFnTmFtZSArICc+JylcbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgICAgdGhpcy50YWcoJzxvbD4nKVxuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBjYWxscy5sZW5ndGgpIHtcbiAgICAgICAgICAvLyBDYWxsZWQgZGVmaW5pdGlvbnMgYXJlIGFsd2F5cyBkZWZpbmVkLlxuICAgICAgICAgIGNvbnN0IGlkID0gY2FsbHNbaW5kZXhdXG4gICAgICAgICAgY29uc3Qgc2FmZUlkID0gc2FuaXRpemVVcmkoaWQudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICBsZXQgcmVmZXJlbmNlSW5kZXggPSAwXG4gICAgICAgICAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSBbXVxuXG4gICAgICAgICAgd2hpbGUgKCsrcmVmZXJlbmNlSW5kZXggPD0gY291bnRzW2lkXSkge1xuICAgICAgICAgICAgcmVmZXJlbmNlcy5wdXNoKFxuICAgICAgICAgICAgICAnPGEgaHJlZj1cIiMnICtcbiAgICAgICAgICAgICAgICBjbG9iYmVyUHJlZml4ICtcbiAgICAgICAgICAgICAgICAnZm5yZWYtJyArXG4gICAgICAgICAgICAgICAgc2FmZUlkICtcbiAgICAgICAgICAgICAgICAocmVmZXJlbmNlSW5kZXggPiAxID8gJy0nICsgcmVmZXJlbmNlSW5kZXggOiAnJykgK1xuICAgICAgICAgICAgICAgICdcIiBkYXRhLWZvb3Rub3RlLWJhY2tyZWY9XCJcIiBhcmlhLWxhYmVsPVwiJyArXG4gICAgICAgICAgICAgICAgdGhpcy5lbmNvZGUoXG4gICAgICAgICAgICAgICAgICB0eXBlb2YgYmFja0xhYmVsID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgICAgICA/IGJhY2tMYWJlbFxuICAgICAgICAgICAgICAgICAgICA6IGJhY2tMYWJlbChpbmRleCwgcmVmZXJlbmNlSW5kZXgpXG4gICAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICAgJ1wiIGNsYXNzPVwiZGF0YS1mb290bm90ZS1iYWNrcmVmXCI+4oapJyArXG4gICAgICAgICAgICAgICAgKHJlZmVyZW5jZUluZGV4ID4gMVxuICAgICAgICAgICAgICAgICAgPyAnPHN1cD4nICsgcmVmZXJlbmNlSW5kZXggKyAnPC9zdXA+J1xuICAgICAgICAgICAgICAgICAgOiAnJykgK1xuICAgICAgICAgICAgICAgICc8L2E+J1xuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHJlZmVyZW5jZXMuam9pbignICcpXG4gICAgICAgICAgbGV0IGluamVjdGVkID0gZmFsc2VcblxuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKClcbiAgICAgICAgICB0aGlzLnRhZygnPGxpIGlkPVwiJyArIGNsb2JiZXJQcmVmaXggKyAnZm4tJyArIHNhZmVJZCArICdcIj4nKVxuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKClcbiAgICAgICAgICB0aGlzLnRhZyhcbiAgICAgICAgICAgIGRlZmluaXRpb25zW2lkXS5yZXBsYWNlKC88XFwvcD4oPzpcXHI/XFxufFxccik/JC8sIGZ1bmN0aW9uICgkMCkge1xuICAgICAgICAgICAgICBpbmplY3RlZCA9IHRydWVcbiAgICAgICAgICAgICAgcmV0dXJuICcgJyArIHJlZmVyZW5jZSArICQwXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcblxuICAgICAgICAgIGlmICghaW5qZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKClcbiAgICAgICAgICAgIHRoaXMudGFnKHJlZmVyZW5jZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgICAgdGhpcy50YWcoJzwvbGk+JylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYWxscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKVxuICAgICAgICAgIHRoaXMudGFnKCc8L29sPicpXG4gICAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKVxuICAgICAgICAgIHRoaXMudGFnKCc8L3NlY3Rpb24+JylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbIm9rIiwiYXNzZXJ0Iiwibm9ybWFsaXplSWRlbnRpZmllciIsInNhbml0aXplVXJpIiwib3duIiwiaGFzT3duUHJvcGVydHkiLCJlbXB0eU9wdGlvbnMiLCJkZWZhdWx0QmFja0xhYmVsIiwicmVmZXJlbmNlSW5kZXgiLCJyZXJlZmVyZW5jZUluZGV4IiwiZ2ZtRm9vdG5vdGVIdG1sIiwib3B0aW9ucyIsImNvbmZpZyIsImxhYmVsIiwibGFiZWxUYWdOYW1lIiwibGFiZWxBdHRyaWJ1dGVzIiwidW5kZWZpbmVkIiwiYmFja0xhYmVsIiwiY2xvYmJlclByZWZpeCIsImVudGVyIiwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIiwic3RhY2siLCJnZXREYXRhIiwicHVzaCIsImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiwiYnVmZmVyIiwiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIiwiZXhpdCIsImRlZmluaXRpb25zIiwiZm9vdG5vdGVTdGFjayIsInRpZ2h0U3RhY2siLCJjdXJyZW50IiwicG9wIiwidmFsdWUiLCJyZXN1bWUiLCJzZXREYXRhIiwiY2FsbCIsInRva2VuIiwic2xpY2VTZXJpYWxpemUiLCJjYWxscyIsImNvdW50cyIsImlkIiwiY291bnRlciIsImluZGV4IiwiaW5kZXhPZiIsInNhZmVJZCIsInRvTG93ZXJDYXNlIiwibGVuZ3RoIiwicmV1c2VDb3VudGVyIiwidGFnIiwiU3RyaW5nIiwibnVsbCIsImxpbmVFbmRpbmdJZk5lZWRlZCIsInJhdyIsImVuY29kZSIsInJlZmVyZW5jZXMiLCJyZWZlcmVuY2UiLCJqb2luIiwiaW5qZWN0ZWQiLCJyZXBsYWNlIiwiJDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-footnote/dev/lib/html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js":
-/*!*****************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js ***!
- \*****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmFootnote: () => (/* binding */ gfmFootnote)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/blank-line.js\");\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"(ssr)/../../node_modules/micromark-util-normalize-identifier/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\n\n\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */ function gfmFootnote() {\n /** @type {Extension} */ return {\n document: {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket]: {\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {Token} */ let labelStart;\n // Find an opening.\n while(index--){\n const token = self.events[index][1];\n if (token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.labelImage) {\n labelStart = token;\n break;\n }\n // Exit if we’ve walked far enough.\n if (token.type === \"gfmFootnoteCall\" || token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.labelLink || token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.label || token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.image || token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.link) {\n break;\n }\n }\n return start;\n /**\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket, \"expected `]`\");\n if (!labelStart || !labelStart._balanced) {\n return nok(code);\n }\n const id = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_3__.normalizeIdentifier)(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.caret || !defined.includes(id.slice(1))) {\n return nok(code);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok(code);\n }\n}\n// To do: remove after micromark update.\n/** @type {Resolver} */ function resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n /** @type {Token | undefined} */ let labelStart;\n // Find an opening.\n while(index--){\n if (events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.labelImage && events[index][0] === \"enter\") {\n labelStart = events[index][1];\n break;\n }\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(labelStart, \"expected `labelStart` to resolve\");\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.data;\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n // The whole (without `!`):\n /** @type {Token} */ const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // The `^` marker\n /** @type {Token} */ const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n // Increment the end 1 character.\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n /** @type {Token} */ const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n /** @type {Token} */ const chunk = {\n type: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.chunkString,\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n /** @type {Array<Event>} */ const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\n \"enter\",\n call,\n context\n ],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\n \"enter\",\n marker,\n context\n ],\n [\n \"exit\",\n marker,\n context\n ],\n // Everything in between.\n [\n \"enter\",\n string,\n context\n ],\n [\n \"enter\",\n chunk,\n context\n ],\n [\n \"exit\",\n chunk,\n context\n ],\n [\n \"exit\",\n string,\n context\n ],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\n \"exit\",\n call,\n context\n ]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n /** @type {boolean} */ let data;\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start;\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket, \"expected `[`\");\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */ function callStart(code) {\n if (code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.caret) return nok(code);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */ function callData(code) {\n if (// Too long.\n size > micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.linkReferenceSizeMax || // Closing brace with nothing.\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes((0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_3__.normalizeIdentifier)(self.sliceSerialize(token)))) {\n return nok(code);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok;\n }\n if (!(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? callEscape : callData;\n }\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */ function callEscape(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket) {\n effects.consume(code);\n size++;\n return callData;\n }\n return callData(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeDefinitionStart(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {string} */ let identifier;\n let size = 0;\n /** @type {boolean | undefined} */ let data;\n return start;\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket, \"expected `[`\");\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */ function labelAtMarker(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.caret) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code);\n }\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */ function labelInside(code) {\n if (// Too long.\n size > micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.linkReferenceSizeMax || // Closing brace with nothing.\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_3__.normalizeIdentifier)(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? labelEscape : labelInside;\n }\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > <https://github.com/github/cmark-gfm/issues/240>\n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */ function labelEscape(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */ function labelAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.colon) {\n effects.enter(\"definitionMarker\");\n effects.consume(code);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, whitespaceAfter, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code);\n }\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */ function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.blankLine, ok, effects.attempt(indent, ok, nok));\n}\n/** @type {Exiter} */ function gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeIndent(effects, ok, nok) {\n const self = this;\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1);\n /**\n * @type {State}\n */ function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize ? ok(code) : nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlL2Rldi9saWIvc3ludGF4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Q0FTQyxHQUVrQztBQUNnQjtBQUNDO0FBQ2M7QUFDSztBQUNWO0FBRTdELE1BQU1TLFNBQVM7SUFBQ0MsVUFBVUM7SUFBZ0JDLFNBQVM7QUFBSTtBQUV2RCw0RUFBNEU7QUFDNUUsK0JBQStCO0FBQy9CLHlEQUF5RDtBQUN6RCw0RUFBNEU7QUFDNUUsdUVBQXVFO0FBRXZFOzs7Ozs7Q0FNQyxHQUNNLFNBQVNDO0lBQ2Qsc0JBQXNCLEdBQ3RCLE9BQU87UUFDTEMsVUFBVTtZQUNSLENBQUNSLHdEQUFLQSxDQUFDUyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUN6QkwsVUFBVU07Z0JBQ1ZDLGNBQWM7b0JBQUNQLFVBQVVRO2dCQUE4QjtnQkFDdkRDLE1BQU1DO1lBQ1I7UUFDRjtRQUNBQyxNQUFNO1lBQ0osQ0FBQ2Ysd0RBQUtBLENBQUNTLGlCQUFpQixDQUFDLEVBQUU7Z0JBQUNMLFVBQVVZO1lBQXVCO1lBQzdELENBQUNoQix3REFBS0EsQ0FBQ2lCLGtCQUFrQixDQUFDLEVBQUU7Z0JBQzFCQyxLQUFLO2dCQUNMZCxVQUFVZTtnQkFDVkMsV0FBV0M7WUFDYjtRQUNGO0lBQ0Y7QUFDRjtBQUVBLHdDQUF3QztBQUN4Qzs7O0NBR0MsR0FDRCxTQUFTRixpQ0FBaUNHLE9BQU8sRUFBRTVCLEVBQUUsRUFBRTZCLEdBQUc7SUFDeEQsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLElBQUlDLFFBQVFELEtBQUtFLE1BQU0sQ0FBQ0MsTUFBTTtJQUM5QixNQUFNQyxVQUFVSixLQUFLSyxNQUFNLENBQUNDLFlBQVksSUFBS04sQ0FBQUEsS0FBS0ssTUFBTSxDQUFDQyxZQUFZLEdBQUcsRUFBRTtJQUMxRSxrQkFBa0IsR0FDbEIsSUFBSUM7SUFFSixtQkFBbUI7SUFDbkIsTUFBT04sUUFB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T0FBTyxHQUFHO0lBR3RCOztHQUVDLEdBQ0QsU0FBU0QsWUFBWTdDLElBQUk7UUFDdkIsTUFBTStDLE9BQU8vRCxLQUFLRSxNQUFNLENBQUNGLEtBQUtFLE1BQU0sQ0FBQ0MsTUFBTSxHQUFHLEVBQUU7UUFDaEQsT0FBTzRELFFBQ0xBLElBQUksQ0FBQyxFQUFFLENBQUN0RCxJQUFJLEtBQUssaUNBQ2pCc0QsSUFBSSxDQUFDLEVBQUUsQ0FBQzVDLGNBQWMsQ0FBQzRDLElBQUksQ0FBQyxFQUFFLEVBQUUsTUFBTTVELE1BQU0sS0FBSzFCLDREQUFTQSxDQUFDcUYsT0FBTyxHQUNoRTVGLEdBQUc4QyxRQUNIakIsSUFBSWlCO0lBQ1Y7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlL2Rldi9saWIvc3ludGF4LmpzPzE2NDIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkV2ZW50fSBFdmVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FeGl0ZXJ9IEV4aXRlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FeHRlbnNpb259IEV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge2JsYW5rTGluZX0gZnJvbSAnbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyaydcbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtub3JtYWxpemVJZGVudGlmaWVyfSBmcm9tICdtaWNyb21hcmstdXRpbC1ub3JtYWxpemUtaWRlbnRpZmllcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcblxuY29uc3QgaW5kZW50ID0ge3Rva2VuaXplOiB0b2tlbml6ZUluZGVudCwgcGFydGlhbDogdHJ1ZX1cblxuLy8gVG8gZG86IG1pY3JvbWFyayBzaG91bGQgc3VwcG9ydCBhIGBfaGlkZGVuR2ZtRm9vdG5vdGVTdXBwb3J0YCwgd2hpY2ggb25seVxuLy8gYWZmZWN0cyBsYWJlbCBzdGFydCAoaW1hZ2UpLlxuLy8gVGhhdCB3aWxsIGxldCB1cyBkcm9wIGB0b2tlbml6ZVBvdGVudGlhbEdmbUZvb3Rub3RlKmAuXG4vLyBJdCBjdXJyZW50bHkgaGFzIGEgYF9oaWRkZW5Gb290bm90ZVN1cHBvcnRgLCB3aGljaCBhZmZlY3RzIHRoYXQgYW5kIG1vcmUuXG4vLyBUaGF0IGNhbiBiZSByZW1vdmVkIHdoZW4gYG1pY3JvbWFyay1leHRlbnNpb24tZm9vdG5vdGVgIGlzIGFyY2hpdmVkLlxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIGVuYWJsZSBHRk0gZm9vdG5vdGUgc3ludGF4LlxuICpcbiAqIEByZXR1cm5zIHtFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBleHRlbnNpb25zYCB0b1xuICogICBlbmFibGUgR0ZNIGZvb3Rub3RlIHN5bnRheC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbUZvb3Rub3RlKCkge1xuICAvKiogQHR5cGUge0V4dGVuc2lvbn0gKi9cbiAgcmV0dXJuIHtcbiAgICBkb2N1bWVudDoge1xuICAgICAgW2NvZGVzLmxlZnRTcXVhcmVCcmFja2V0XToge1xuICAgICAgICB0b2tlbml6ZTogdG9rZW5pemVEZWZpbml0aW9uU3RhcnQsXG4gICAgICAgIGNvbnRpbnVhdGlvbjoge3Rva2VuaXplOiB0b2tlbml6ZURlZmluaXRpb25Db250aW51YXRpb259LFxuICAgICAgICBleGl0OiBnZm1Gb290bm90ZURlZmluaXRpb25FbmRcbiAgICAgIH1cbiAgICB9LFxuICAgIHRleHQ6IHtcbiAgICAgIFtjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldF06IHt0b2tlbml6ZTogdG9rZW5pemVHZm1Gb290bm90ZUNhbGx9LFxuICAgICAgW2NvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldF06IHtcbiAgICAgICAgYWRkOiAnYWZ0ZXInLFxuICAgICAgICB0b2tlbml6ZTogdG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwsXG4gICAgICAgIHJlc29sdmVUbzogcmVzb2x2ZVRvUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRvIGRvOiByZW1vdmUgYWZ0ZXIgbWljcm9tYXJrIHVwZGF0ZS5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgbGV0IGluZGV4ID0gc2VsZi5ldmVudHMubGVuZ3RoXG4gIGNvbnN0IGRlZmluZWQgPSBzZWxmLnBhcnNlci5nZm1Gb290bm90ZXMgfHwgKHNlbGYucGFyc2VyLmdmbUZvb3Rub3RlcyA9IFtdKVxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgbGFiZWxTdGFydFxuXG4gIC8vIEZpbmQgYW4gb3BlbmluZy5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBjb25zdCB0b2tlbiA9IHNlbGYuZXZlbnRzW2luZGV4XVsxXVxuXG4gICAgaWYgKHRva2VuLnR5cGUgPT09IHR5cGVzLmxhYmVsSW1hZ2UpIHtcbiAgICAgIGxhYmVsU3RhcnQgPSB0b2tlblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICAvLyBFeGl0IGlmIHdl4oCZdmUgd2Fsa2VkIGZhciBlbm91Z2guXG4gICAgaWYgKFxuICAgICAgdG9rZW4udHlwZSA9PT0gJ2dmbUZvb3Rub3RlQ2FsbCcgfHxcbiAgICAgIHRva2VuLnR5cGUgPT09IHR5cGVzLmxhYmVsTGluayB8fFxuICAgICAgdG9rZW4udHlwZSA9PT0gdHlwZXMubGFiZWwgfHxcbiAgICAgIHRva2VuLnR5cGUgPT09IHR5cGVzLmltYWdlIHx8XG4gICAgICB0b2tlbi50eXBlID09PSB0eXBlcy5saW5rXG4gICAgKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCwgJ2V4cGVjdGVkIGBdYCcpXG5cbiAgICBpZiAoIWxhYmVsU3RhcnQgfHwgIWxhYmVsU3RhcnQuX2JhbGFuY2VkKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSBub3JtYWxpemVJZGVudGlmaWVyKFxuICAgICAgc2VsZi5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6IGxhYmVsU3RhcnQuZW5kLCBlbmQ6IHNlbGYubm93KCl9KVxuICAgIClcblxuICAgIGlmIChpZC5jb2RlUG9pbnRBdCgwKSAhPT0gY29kZXMuY2FyZXQgfHwgIWRlZmluZWQuaW5jbHVkZXMoaWQuc2xpY2UoMSkpKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXInKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXInKVxuICAgIHJldHVybiBvayhjb2RlKVxuICB9XG59XG5cbi8vIFRvIGRvOiByZW1vdmUgYWZ0ZXIgbWljcm9tYXJrIHVwZGF0ZS5cbi8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG5mdW5jdGlvbiByZXNvbHZlVG9Qb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwoZXZlbnRzLCBjb250ZXh0KSB7XG4gIGxldCBpbmRleCA9IGV2ZW50cy5sZW5ndGhcbiAgLyoqIEB0eXBlIHtUb2tlbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGxhYmVsU3RhcnRcblxuICAvLyBGaW5kIGFuIG9wZW5pbmcuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgaWYgKFxuICAgICAgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSB0eXBlcy5sYWJlbEltYWdlICYmXG4gICAgICBldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInXG4gICAgKSB7XG4gICAgICBsYWJlbFN0YXJ0ID0gZXZlbnRzW2luZGV4XVsxXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBhc3NlcnQobGFiZWxTdGFydCwgJ2V4cGVjdGVkIGBsYWJlbFN0YXJ0YCB0byByZXNvbHZlJylcblxuICAvLyBDaGFuZ2UgdGhlIGBsYWJlbEltYWdlTWFya2VyYCB0byBhIGBkYXRhYC5cbiAgZXZlbnRzW2luZGV4ICsgMV1bMV0udHlwZSA9IHR5cGVzLmRhdGFcbiAgZXZlbnRzW2luZGV4ICsgM11bMV0udHlwZSA9ICdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcidcblxuICAvLyBUaGUgd2hvbGUgKHdpdGhvdXQgYCFgKTpcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgY29uc3QgY2FsbCA9IHtcbiAgICB0eXBlOiAnZ2ZtRm9vdG5vdGVDYWxsJyxcbiAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2luZGV4ICsgM11bMV0uc3RhcnQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXVsxXS5lbmQpXG4gIH1cbiAgLy8gVGhlIGBeYCBtYXJrZXJcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgY29uc3QgbWFya2VyID0ge1xuICAgIHR5cGU6ICdnZm1Gb290bm90ZUNhbGxNYXJrZXInLFxuICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbaW5kZXggKyAzXVsxXS5lbmQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2luZGV4ICsgM11bMV0uZW5kKVxuICB9XG4gIC8vIEluY3JlbWVudCB0aGUgZW5kIDEgY2hhcmFjdGVyLlxuICBtYXJrZXIuZW5kLmNvbHVtbisrXG4gIG1hcmtlci5lbmQub2Zmc2V0KytcbiAgbWFya2VyLmVuZC5fYnVmZmVySW5kZXgrK1xuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBjb25zdCBzdHJpbmcgPSB7XG4gICAgdHlwZTogJ2dmbUZvb3Rub3RlQ2FsbFN0cmluZycsXG4gICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIG1hcmtlci5lbmQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXVsxXS5zdGFydClcbiAgfVxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBjb25zdCBjaHVuayA9IHtcbiAgICB0eXBlOiB0eXBlcy5jaHVua1N0cmluZyxcbiAgICBjb250ZW50VHlwZTogJ3N0cmluZycsXG4gICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIHN0cmluZy5zdGFydCksXG4gICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBzdHJpbmcuZW5kKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGNvbnN0IHJlcGxhY2VtZW50ID0gW1xuICAgIC8vIFRha2UgdGhlIGBsYWJlbEltYWdlTWFya2VyYCAobm93IGBkYXRhYCwgdGhlIGAhYClcbiAgICBldmVudHNbaW5kZXggKyAxXSxcbiAgICBldmVudHNbaW5kZXggKyAyXSxcbiAgICBbJ2VudGVyJywgY2FsbCwgY29udGV4dF0sXG4gICAgLy8gVGhlIGBbYFxuICAgIGV2ZW50c1tpbmRleCArIDNdLFxuICAgIGV2ZW50c1tpbmRleCArIDRdLFxuICAgIC8vIFRoZSBgXmAuXG4gICAgWydlbnRlcicsIG1hcmtlciwgY29udGV4dF0sXG4gICAgWydleGl0JywgbWFya2VyLCBjb250ZXh0XSxcbiAgICAvLyBFdmVyeXRoaW5nIGluIGJldHdlZW4uXG4gICAgWydlbnRlcicsIHN0cmluZywgY29udGV4dF0sXG4gICAgWydlbnRlcicsIGNodW5rLCBjb250ZXh0XSxcbiAgICBbJ2V4aXQnLCBjaHVuaywgY29udGV4dF0sXG4gICAgWydleGl0Jywgc3RyaW5nLCBjb250ZXh0XSxcbiAgICAvLyBUaGUgZW5kaW5nIChgXWAsIHByb3Blcmx5IHBhcnNlZCBhbmQgbGFiZWxsZWQpLlxuICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMl0sXG4gICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXSxcbiAgICBbJ2V4aXQnLCBjYWxsLCBjb250ZXh0XVxuICBdXG5cbiAgZXZlbnRzLnNwbGljZShpbmRleCwgZXZlbnRzLmxlbmd0aCAtIGluZGV4ICsgMSwgLi4ucmVwbGFjZW1lbnQpXG5cbiAgcmV0dXJuIGV2ZW50c1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUdmbUZvb3Rub3RlQ2FsbChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIGNvbnN0IGRlZmluZWQgPSBzZWxmLnBhcnNlci5nZm1Gb290bm90ZXMgfHwgKHNlbGYucGFyc2VyLmdmbUZvb3Rub3RlcyA9IFtdKVxuICBsZXQgc2l6ZSA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZGF0YVxuXG4gIC8vIE5vdGU6IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgbWFya2Rvd24tcnNgIGlzIGRpZmZlcmVudCwgYmVjYXVzZSBpdCBob3VzZXNcbiAgLy8gY29yZSAqYW5kKiBleHRlbnNpb25zIGluIG9uZSBwcm9qZWN0LlxuICAvLyBUaGVyZWZvcmUsIGl0IGNhbiBpbmNsdWRlIGZvb3Rub3RlIGxvZ2ljIGluc2lkZSBgbGFiZWwtZW5kYC5cbiAgLy8gV2UgY2Fu4oCZdCBkbyB0aGF0LCBidXQgbHVja2lseSwgd2UgY2FuIHBhcnNlIGZvb3Rub3RlcyBpbiBhIHNpbXBsZXIgd2F5IHRoYW5cbiAgLy8gbmVlZGVkIGZvciBsYWJlbHMuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBmb290bm90ZSBsYWJlbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgW15iXSBjXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBhc3NlcnQoY29kZSA9PT0gY29kZXMubGVmdFNxdWFyZUJyYWNrZXQsICdleHBlY3RlZCBgW2AnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2dmbUZvb3Rub3RlQ2FsbCcpXG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXInKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXInKVxuICAgIHJldHVybiBjYWxsU3RhcnRcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgW2AsIGF0IGBeYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgW15iXSBjXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjYWxsU3RhcnQoY29kZSkge1xuICAgIGlmIChjb2RlICE9PSBjb2Rlcy5jYXJldCkgcmV0dXJuIG5vayhjb2RlKVxuXG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVDYWxsTWFya2VyJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlQ2FsbE1hcmtlcicpXG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nJylcbiAgICBlZmZlY3RzLmVudGVyKCdjaHVua1N0cmluZycpLmNvbnRlbnRUeXBlID0gJ3N0cmluZydcbiAgICByZXR1cm4gY2FsbERhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBsYWJlbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgW15iXSBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2FsbERhdGEoY29kZSkge1xuICAgIGlmIChcbiAgICAgIC8vIFRvbyBsb25nLlxuICAgICAgc2l6ZSA+IGNvbnN0YW50cy5saW5rUmVmZXJlbmNlU2l6ZU1heCB8fFxuICAgICAgLy8gQ2xvc2luZyBicmFjZSB3aXRoIG5vdGhpbmcuXG4gICAgICAoY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0ICYmICFkYXRhKSB8fFxuICAgICAgLy8gU3BhY2Ugb3IgdGFiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgR0ZNIGZvciBzb21lIHJlYXNvbi5cbiAgICAgIC8vIGBcXG5gIGFuZCBgW2Agbm90IGJlaW5nIHN1cHBvcnRlZCBtYWtlcyBzZW5zZS5cbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMubGVmdFNxdWFyZUJyYWNrZXQgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0KSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2NodW5rU3RyaW5nJylcbiAgICAgIGNvbnN0IHRva2VuID0gZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZUNhbGxTdHJpbmcnKVxuXG4gICAgICBpZiAoIWRlZmluZWQuaW5jbHVkZXMobm9ybWFsaXplSWRlbnRpZmllcihzZWxmLnNsaWNlU2VyaWFsaXplKHRva2VuKSkpKSB7XG4gICAgICAgIHJldHVybiBub2soY29kZSlcbiAgICAgIH1cblxuICAgICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyJylcbiAgICAgIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVDYWxsJylcbiAgICAgIHJldHVybiBva1xuICAgIH1cblxuICAgIGlmICghbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgZGF0YSA9IHRydWVcbiAgICB9XG5cbiAgICBzaXplKytcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuYmFja3NsYXNoID8gY2FsbEVzY2FwZSA6IGNhbGxEYXRhXG4gIH1cblxuICAvKipcbiAgICogT24gY2hhcmFjdGVyIGFmdGVyIGVzY2FwZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgW15iXFxjXSBkXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjYWxsRXNjYXBlKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuYmFja3NsYXNoIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5yaWdodFNxdWFyZUJyYWNrZXRcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgc2l6ZSsrXG4gICAgICByZXR1cm4gY2FsbERhdGFcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsbERhdGEoY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZURlZmluaXRpb25TdGFydChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIGNvbnN0IGRlZmluZWQgPSBzZWxmLnBhcnNlci5nZm1Gb290bm90ZXMgfHwgKHNlbGYucGFyc2VyLmdmbUZvb3Rub3RlcyA9IFtdKVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGlkZW50aWZpZXJcbiAgbGV0IHNpemUgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGRhdGFcblxuICByZXR1cm4gc3RhcnRcblxuICAvKipcbiAgICogU3RhcnQgb2YgR0ZNIGZvb3Rub3RlIGRlZmluaXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbXmFdOiBiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0LCAnZXhwZWN0ZWQgYFtgJylcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb24nKS5fY29udGFpbmVyID0gdHJ1ZVxuICAgIGVmZmVjdHMuZW50ZXIoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsJylcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlcicpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlcicpXG4gICAgcmV0dXJuIGxhYmVsQXRNYXJrZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBsYWJlbCwgYXQgY2FyZXQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbXmFdOiBiXG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxBdE1hcmtlcihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmNhcmV0KSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlcicpXG4gICAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZycpXG4gICAgICBlZmZlY3RzLmVudGVyKCdjaHVua1N0cmluZycpLmNvbnRlbnRUeXBlID0gJ3N0cmluZydcbiAgICAgIHJldHVybiBsYWJlbEluc2lkZVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBsYWJlbC5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBgY21hcmstZ2ZtYCBwcmV2ZW50cyB3aGl0ZXNwYWNlIGZyb20gb2NjdXJyaW5nIGluIGZvb3Rub3RlXG4gICAqID4gZGVmaW5pdGlvbiBsYWJlbHMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbXmFdOiBiXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICAvLyBUb28gbG9uZy5cbiAgICAgIHNpemUgPiBjb25zdGFudHMubGlua1JlZmVyZW5jZVNpemVNYXggfHxcbiAgICAgIC8vIENsb3NpbmcgYnJhY2Ugd2l0aCBub3RoaW5nLlxuICAgICAgKGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCAmJiAhZGF0YSkgfHxcbiAgICAgIC8vIFNwYWNlIG9yIHRhYiBpcyBub3Qgc3VwcG9ydGVkIGJ5IEdGTSBmb3Igc29tZSByZWFzb24uXG4gICAgICAvLyBgXFxuYCBhbmQgYFtgIG5vdCBiZWluZyBzdXBwb3J0ZWQgbWFrZXMgc2Vuc2UuXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0IHx8XG4gICAgICBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCkge1xuICAgICAgZWZmZWN0cy5leGl0KCdjaHVua1N0cmluZycpXG4gICAgICBjb25zdCB0b2tlbiA9IGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcnKVxuICAgICAgaWRlbnRpZmllciA9IG5vcm1hbGl6ZUlkZW50aWZpZXIoc2VsZi5zbGljZVNlcmlhbGl6ZSh0b2tlbikpXG4gICAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXInKVxuICAgICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCcpXG4gICAgICByZXR1cm4gbGFiZWxBZnRlclxuICAgIH1cblxuICAgIGlmICghbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgZGF0YSA9IHRydWVcbiAgICB9XG5cbiAgICBzaXplKytcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuYmFja3NsYXNoID8gbGFiZWxFc2NhcGUgOiBsYWJlbEluc2lkZVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGBcXGAsIGF0IGEgc3BlY2lhbCBjaGFyYWN0ZXIuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogYGNtYXJrLWdmbWAgY3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgZXNjYXBlZCBicmFja2V0czpcbiAgICogPiA8aHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9jbWFyay1nZm0vaXNzdWVzLzI0MD5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFteYVxcKmJdOiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxFc2NhcGUoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0IHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldFxuICAgICkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBzaXplKytcbiAgICAgIHJldHVybiBsYWJlbEluc2lkZVxuICAgIH1cblxuICAgIHJldHVybiBsYWJlbEluc2lkZShjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGRlZmluaXRpb24gbGFiZWwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbXmFdOiBiXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxBZnRlcihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmNvbG9uKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCdkZWZpbml0aW9uTWFya2VyJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCdkZWZpbml0aW9uTWFya2VyJylcblxuICAgICAgaWYgKCFkZWZpbmVkLmluY2x1ZGVzKGlkZW50aWZpZXIpKSB7XG4gICAgICAgIGRlZmluZWQucHVzaChpZGVudGlmaWVyKVxuICAgICAgfVxuXG4gICAgICAvLyBBbnkgd2hpdGVzcGFjZSBhZnRlciB0aGUgbWFya2VyIGlzIGVhdGVuLCBmb3JtaW5nIGluZGVudGVkIGNvZGVcbiAgICAgIC8vIGlzIG5vdCBwb3NzaWJsZS5cbiAgICAgIC8vIE5vIHNwYWNlIGlzIGFsc28gZmluZSwganVzdCBsaWtlIGEgYmxvY2sgcXVvdGUgbWFya2VyLlxuICAgICAgcmV0dXJuIGZhY3RvcnlTcGFjZShcbiAgICAgICAgZWZmZWN0cyxcbiAgICAgICAgd2hpdGVzcGFjZUFmdGVyLFxuICAgICAgICAnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uV2hpdGVzcGFjZSdcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVmaW5pdGlvbiBwcmVmaXguXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbXmFdOiBiXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB3aGl0ZXNwYWNlQWZ0ZXIoY29kZSkge1xuICAgIC8vIGBtYXJrZG93bi1yc2AgaGFzIGEgd3JhcHBpbmcgdG9rZW4gZm9yIHRoZSBwcmVmaXggdGhhdCBpcyBjbG9zZWQgaGVyZS5cbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZURlZmluaXRpb25Db250aW51YXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICAvLy8gU3RhcnQgb2YgZm9vdG5vdGUgZGVmaW5pdGlvbiBjb250aW51YXRpb24uXG4gIC8vL1xuICAvLy8gYGBgbWFya2Rvd25cbiAgLy8vICAgfCBbXmFdOiBiXG4gIC8vLyA+IHwgICAgIGNcbiAgLy8vICAgICBeXG4gIC8vLyBgYGBcbiAgLy9cbiAgLy8gRWl0aGVyIGEgYmxhbmsgbGluZSwgd2hpY2ggaXMgb2theSwgb3IgYW4gaW5kZW50ZWQgdGhpbmcuXG4gIHJldHVybiBlZmZlY3RzLmNoZWNrKGJsYW5rTGluZSwgb2ssIGVmZmVjdHMuYXR0ZW1wdChpbmRlbnQsIG9rLCBub2spKVxufVxuXG4vKiogQHR5cGUge0V4aXRlcn0gKi9cbmZ1bmN0aW9uIGdmbUZvb3Rub3RlRGVmaW5pdGlvbkVuZChlZmZlY3RzKSB7XG4gIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uJylcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVJbmRlbnQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuXG4gIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgZWZmZWN0cyxcbiAgICBhZnRlclByZWZpeCxcbiAgICAnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50JyxcbiAgICBjb25zdGFudHMudGFiU2l6ZSArIDFcbiAgKVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlclByZWZpeChjb2RlKSB7XG4gICAgY29uc3QgdGFpbCA9IHNlbGYuZXZlbnRzW3NlbGYuZXZlbnRzLmxlbmd0aCAtIDFdXG4gICAgcmV0dXJuIHRhaWwgJiZcbiAgICAgIHRhaWxbMV0udHlwZSA9PT0gJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCcgJiZcbiAgICAgIHRhaWxbMl0uc2xpY2VTZXJpYWxpemUodGFpbFsxXSwgdHJ1ZSkubGVuZ3RoID09PSBjb25zdGFudHMudGFiU2l6ZVxuICAgICAgPyBvayhjb2RlKVxuICAgICAgOiBub2soY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm9rIiwiYXNzZXJ0IiwiYmxhbmtMaW5lIiwiZmFjdG9yeVNwYWNlIiwibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsIm5vcm1hbGl6ZUlkZW50aWZpZXIiLCJjb2RlcyIsImNvbnN0YW50cyIsInR5cGVzIiwiaW5kZW50IiwidG9rZW5pemUiLCJ0b2tlbml6ZUluZGVudCIsInBhcnRpYWwiLCJnZm1Gb290bm90ZSIsImRvY3VtZW50IiwibGVmdFNxdWFyZUJyYWNrZXQiLCJ0b2tlbml6ZURlZmluaXRpb25TdGFydCIsImNvbnRpbnVhdGlvbiIsInRva2VuaXplRGVmaW5pdGlvbkNvbnRpbnVhdGlvbiIsImV4aXQiLCJnZm1Gb290bm90ZURlZmluaXRpb25FbmQiLCJ0ZXh0IiwidG9rZW5pemVHZm1Gb290bm90ZUNhbGwiLCJyaWdodFNxdWFyZUJyYWNrZXQiLCJhZGQiLCJ0b2tlbml6ZVBvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbCIsInJlc29sdmVUbyIsInJlc29sdmVUb1BvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbCIsImVmZmVjdHMiLCJub2siLCJzZWxmIiwiaW5kZXgiLCJldmVudHMiLCJsZW5ndGgiLCJkZWZpbmVkIiwicGFyc2VyIiwiZ2ZtRm9vdG5vdGVzIiwibGFiZWxTdGFydCIsInRva2VuIiwidHlwZSIsImxhYmVsSW1hZ2UiLCJsYWJlbExpbmsiLCJsYWJlbCIsImltYWdlIiwibGluayIsInN0YXJ0IiwiY29kZSIsIl9iYWxhbmNlZCIsImlkIiwic2xpY2VTZXJpYWxpemUiLCJlbmQiLCJub3ciLCJjb2RlUG9pbnRBdCIsImNhcmV0IiwiaW5jbHVkZXMiLCJzbGljZSIsImVudGVyIiwiY29uc3VtZSIsImNvbnRleHQiLCJkYXRhIiwiY2FsbCIsIk9iamVjdCIsImFzc2lnbiIsIm1hcmtlciIsImNvbHVtbiIsIm9mZnNldCIsIl9idWZmZXJJbmRleCIsInN0cmluZyIsImNodW5rIiwiY2h1bmtTdHJpbmciLCJjb250ZW50VHlwZSIsInJlcGxhY2VtZW50Iiwic3BsaWNlIiwic2l6ZSIsImNhbGxTdGFydCIsImNhbGxEYXRhIiwibGlua1JlZmVyZW5jZVNpemVNYXgiLCJlb2YiLCJiYWNrc2xhc2giLCJjYWxsRXNjYXBlIiwiaWRlbnRpZmllciIsIl9jb250YWluZXIiLCJsYWJlbEF0TWFya2VyIiwibGFiZWxJbnNpZGUiLCJsYWJlbEFmdGVyIiwibGFiZWxFc2NhcGUiLCJjb2xvbiIsInB1c2giLCJ3aGl0ZXNwYWNlQWZ0ZXIiLCJjaGVjayIsImF0dGVtcHQiLCJhZnRlclByZWZpeCIsInRhYlNpemUiLCJ0YWlsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.js":
-/*!********************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.js ***!
- \********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmStrikethroughHtml: () => (/* binding */ gfmStrikethroughHtml)\n/* harmony export */ });\n/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */ /**\n * Create an HTML extension for `micromark` to support GFM strikethrough when\n * serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions`, to\n * support GFM strikethrough when serializing to HTML.\n */ function gfmStrikethroughHtml() {\n return {\n enter: {\n strikethrough () {\n this.tag(\"<del>\");\n }\n },\n exit: {\n strikethrough () {\n this.tag(\"</del>\");\n }\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXN0cmlrZXRocm91Z2gvZGV2L2xpYi9odG1sLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Q0FFQyxHQUVEOzs7Ozs7O0NBT0MsR0FDTSxTQUFTQTtJQUNkLE9BQU87UUFDTEMsT0FBTztZQUNMQztnQkFDRSxJQUFJLENBQUNDLEdBQUcsQ0FBQztZQUNYO1FBQ0Y7UUFDQUMsTUFBTTtZQUNKRjtnQkFDRSxJQUFJLENBQUNDLEdBQUcsQ0FBQztZQUNYO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tc3RyaWtldGhyb3VnaC9kZXYvbGliL2h0bWwuanM/NDFhMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSHRtbEV4dGVuc2lvbn0gSHRtbEV4dGVuc2lvblxuICovXG5cbi8qKlxuICogQ3JlYXRlIGFuIEhUTUwgZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBzdXBwb3J0IEdGTSBzdHJpa2V0aHJvdWdoIHdoZW5cbiAqIHNlcmlhbGl6aW5nIHRvIEhUTUwuXG4gKlxuICogQHJldHVybnMge0h0bWxFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBodG1sRXh0ZW5zaW9uc2AsIHRvXG4gKiAgIHN1cHBvcnQgR0ZNIHN0cmlrZXRocm91Z2ggd2hlbiBzZXJpYWxpemluZyB0byBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtU3RyaWtldGhyb3VnaEh0bWwoKSB7XG4gIHJldHVybiB7XG4gICAgZW50ZXI6IHtcbiAgICAgIHN0cmlrZXRocm91Z2goKSB7XG4gICAgICAgIHRoaXMudGFnKCc8ZGVsPicpXG4gICAgICB9XG4gICAgfSxcbiAgICBleGl0OiB7XG4gICAgICBzdHJpa2V0aHJvdWdoKCkge1xuICAgICAgICB0aGlzLnRhZygnPC9kZWw+JylcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZm1TdHJpa2V0aHJvdWdoSHRtbCIsImVudGVyIiwic3RyaWtldGhyb3VnaCIsInRhZyIsImV4aXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmStrikethrough: () => (/* binding */ gfmStrikethrough)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-chunked */ \"(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\");\n/* harmony import */ var micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-classify-character */ \"(ssr)/../../node_modules/micromark-util-classify-character/dev/index.js\");\n/* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-resolve-all */ \"(ssr)/../../node_modules/micromark-util-resolve-all/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [singleTilde=true]\n * Whether to support strikethrough with a single tilde (default: `true`).\n *\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */ \n\n\n\n\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */ function gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === undefined) {\n single = true;\n }\n return {\n text: {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde]: tokenizer\n },\n insideSpan: {\n null: [\n tokenizer\n ]\n },\n attentionMarkers: {\n null: [\n micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde\n ]\n }\n };\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */ function resolveAllStrikethrough(events, context) {\n let index = -1;\n // Walk through all events.\n while(++index < events.length){\n // Find a token that can close.\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n // Now walk back to find an opener.\n while(open--){\n // Find a token that can open the closer.\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n /** @type {Token} */ const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n /** @type {Token} */ const text = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n // Opening.\n /** @type {Array<Event>} */ const nextEvents = [\n [\n \"enter\",\n strikethrough,\n context\n ],\n [\n \"enter\",\n events[open][1],\n context\n ],\n [\n \"exit\",\n events[open][1],\n context\n ],\n [\n \"enter\",\n text,\n context\n ]\n ];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n // Between.\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.splice)(nextEvents, nextEvents.length, 0, (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_2__.resolveAll)(insideSpan, events.slice(open + 1, index), context));\n }\n // Closing.\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.splice)(nextEvents, nextEvents.length, 0, [\n [\n \"exit\",\n text,\n context\n ],\n [\n \"enter\",\n events[index][1],\n context\n ],\n [\n \"exit\",\n events[index][1],\n context\n ],\n [\n \"exit\",\n strikethrough,\n context\n ]\n ]);\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__.splice)(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while(++index < events.length){\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.data;\n }\n }\n return events;\n }\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n /** @type {State} */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde, \"expected `~`\");\n if (previous === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde && events[events.length - 1][1].type !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.characterEscape) {\n return nok(code);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code);\n }\n /** @type {State} */ function more(code) {\n const before = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_5__.classifyCharacter)(previous);\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code);\n effects.consume(code);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_5__.classifyCharacter)(code);\n token._open = !after || after === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.constants.attentionSideAfter && Boolean(before);\n token._close = !before || before === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.constants.attentionSideAfter && Boolean(after);\n return ok(code);\n }\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXN0cmlrZXRocm91Z2gvZGV2L2xpYi9zeW50YXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7OztDQWdCQyxHQUVrQztBQUNVO0FBQ3NCO0FBQ2Q7QUFDUTtBQUU3RDs7Ozs7Ozs7Q0FRQyxHQUNNLFNBQVNRLGlCQUFpQkMsT0FBTztJQUN0QyxNQUFNQyxXQUFXRCxXQUFXLENBQUM7SUFDN0IsSUFBSUUsU0FBU0QsU0FBU0UsV0FBVztJQUNqQyxNQUFNQyxZQUFZO1FBQ2hCQyxVQUFVQztRQUNWWCxZQUFZWTtJQUNkO0lBRUEsSUFBSUwsV0FBVyxRQUFRQSxXQUFXTSxXQUFXO1FBQzNDTixTQUFTO0lBQ1g7SUFFQSxPQUFPO1FBQ0xPLE1BQU07WUFBQyxDQUFDYix3REFBS0EsQ0FBQ2MsS0FBSyxDQUFDLEVBQUVOO1FBQVM7UUFDL0JPLFlBQVk7WUFBQ0MsTUFBTTtnQkFBQ1I7YUFBVTtRQUFBO1FBQzlCUyxrQkFBa0I7WUFBQ0QsTUFBTTtnQkFBQ2hCLHdEQUFLQSxDQUFDYyxLQUFLO2FBQUM7UUFBQTtJQUN4QztJQUVBOzs7O0dBSUMsR0FDRCxTQUFTSCx3QkFBd0JPLE1BQU0sRUFBRUMsT0FBTztRQUM5QyxJQUFJQyxRQUFRLENBQUM7UUFFYiwyQkFBMkI7UUFDM0IsTUFBTyxFQUFFQSxRQUFRRixPQUFPRyxNQUFNLENBQUU7WUFDOUIsK0JBQStCO1lBQy9CLElBQ0VILE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLEVBQUUsS0FBSyxXQUNyQkYsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRSxDQUFDRSxJQUFJLEtBQUssb0NBQzFCSixNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFLENBQUNHLE1BQU0sRUFDdkI7Z0JBQ0EsSUFBSUMsT0FBT0o7Z0JBRVgsbUNBQW1DO2dCQUNuQyxNQUFPSSxPQUFRO29CQUNiLHlDQUF5QztvQkFDekMsSUFDRU4sTUFBTSxDQUFDTSxLQUFLLENBQUMsRUFBRSxLQUFLLFVBQ3BCTixNQUFNLENBQUNNLEtBQUssQ0FBQyxFQUFFLENBQUNGLElBQUksS0FBSyxvQ0FDekJKLE1BQU0sQ0FBQ00sS0FBSyxDQUFDLEVBQUUsQ0FBQ0MsS0FBSyxJQUNyQiw2QkFBNkI7b0JBQzdCUCxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFLENBQUNNLEdBQUcsQ0FBQ0MsTUFBTSxHQUFHVCxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFLENBQUNRLEtBQUssQ0FBQ0QsTUFBTSxLQUN6RFQsTUFBTSxDQUFDTSxLQUFLLENBQUMsRUFBRSxDQUFDRSxHQUFHLENBQUNDLE1BQU0sR0FBR1QsTUFBTSxDQUFDTSxLQUFLLENBQUMsRUFBRSxDQUFDSSxLQUFLLENBQUNELE1BQU0sRUFDM0Q7d0JBQ0FULE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLEVBQUUsQ0FBQ0UsSUFBSSxHQUFHO3dCQUN4QkosTUFBTSxDQUFDTSxLQUFLLENBQUMsRUFBRSxDQUFDRixJQUFJLEdBQUc7d0JBRXZCLGtCQUFrQixHQUNsQixNQUFNTyxnQkFBZ0I7NEJBQ3BCUCxNQUFNOzRCQUNOTSxPQUFPRSxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHYixNQUFNLENBQUNNLEtBQUssQ0FBQyxFQUFFLENBQUNJLEtBQUs7NEJBQzlDRixLQUFLSSxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHYixNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFLENBQUNNLEdBQUc7d0JBQzdDO3dCQUVBLGtCQUFrQixHQUNsQixNQUFNYixPQUFPOzRCQUNYUyxNQUFNOzRCQUNOTSxPQUFPRSxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHYixNQUFNLENBQUNNLEtBQUssQ0FBQyxFQUFFLENBQUNFLEdBQUc7NEJBQzVDQSxLQUFLSSxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHYixNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFLENBQUNRLEtBQUs7d0JBQy9DO3dCQUVBLFdBQVc7d0JBQ1gseUJBQXlCLEdBQ3pCLE1BQU1JLGFBQWE7NEJBQ2pCO2dDQUFDO2dDQUFTSDtnQ0FBZVY7NkJBQVE7NEJBQ2pDO2dDQUFDO2dDQUFTRCxNQUFNLENBQUNNLEtBQUssQ0FBQyxFQUFFO2dDQUFFTDs2QkFBUTs0QkFDbkM7Z0NBQUM7Z0NBQVFELE1BQU0sQ0FBQ00sS0FBSyxDQUFDLEVBQUU7Z0NBQUVMOzZCQUFROzRCQUNsQztnQ0FBQztnQ0FBU047Z0NBQU1NOzZCQUFRO3lCQUN6Qjt3QkFFRCxNQUFNSixhQUFhSSxRQUFRYyxNQUFNLENBQUNDLFVBQVUsQ0FBQ25CLFVBQVUsQ0FBQ0MsSUFBSTt3QkFFNUQsSUFBSUQsWUFBWTs0QkFDZCxXQUFXOzRCQUNYbEIsOERBQU1BLENBQ0ptQyxZQUNBQSxXQUFXWCxNQUFNLEVBQ2pCLEdBQ0F0QixzRUFBVUEsQ0FBQ2dCLFlBQVlHLE9BQU9pQixLQUFLLENBQUNYLE9BQU8sR0FBR0osUUFBUUQ7d0JBRTFEO3dCQUVBLFdBQVc7d0JBQ1h0Qiw4REFBTUEsQ0FBQ21DLFlBQVlBLFdBQVdYLE1BQU0sRUFBRSxHQUFHOzRCQUN2QztnQ0FBQztnQ0FBUVI7Z0NBQU1NOzZCQUFROzRCQUN2QjtnQ0FBQztnQ0FBU0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRTtnQ0FBRUQ7NkJBQVE7NEJBQ3BDO2dDQUFDO2dDQUFRRCxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFO2dDQUFFRDs2QkFBUTs0QkFDbkM7Z0NBQUM7Z0NBQVFVO2dDQUFlVjs2QkFBUTt5QkFDakM7d0JBRUR0Qiw4REFBTUEsQ0FBQ3FCLFFBQVFNLE9BQU8sR0FBR0osUUFBUUksT0FBTyxHQUFHUTt3QkFFM0NaLFFBQVFJLE9BQU9RLFdBQVdYLE1BQU0sR0FBRzt3QkFDbkM7b0JBQ0Y7Z0JBQ0Y7WUFDRjtRQUNGO1FBRUFELFFBQVEsQ0FBQztRQUVULE1BQU8sRUFBRUEsUUFBUUYsT0FBT0csTUFBTSxDQUFFO1lBQzlCLElBQUlILE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLEVBQUUsQ0FBQ0UsSUFBSSxLQUFLLGtDQUFrQztnQkFDOURKLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLEVBQUUsQ0FBQ0UsSUFBSSxHQUFHcEIsd0RBQUtBLENBQUNrQyxJQUFJO1lBQ3BDO1FBQ0Y7UUFFQSxPQUFPbEI7SUFDVDtJQUVBOzs7R0FHQyxHQUNELFNBQVNSLHNCQUFzQjJCLE9BQU8sRUFBRTFDLEVBQUUsRUFBRTJDLEdBQUc7UUFDN0MsTUFBTUMsV0FBVyxJQUFJLENBQUNBLFFBQVE7UUFDOUIsTUFBTXJCLFNBQVMsSUFBSSxDQUFDQSxNQUFNO1FBQzFCLElBQUlzQixPQUFPO1FBRVgsT0FBT1o7UUFFUCxrQkFBa0IsR0FDbEIsU0FBU0EsTUFBTWEsSUFBSTtZQUNqQjdDLDBDQUFNQSxDQUFDNkMsU0FBU3pDLHdEQUFLQSxDQUFDYyxLQUFLLEVBQUU7WUFFN0IsSUFDRXlCLGFBQWF2Qyx3REFBS0EsQ0FBQ2MsS0FBSyxJQUN4QkksTUFBTSxDQUFDQSxPQUFPRyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLcEIsd0RBQUtBLENBQUN3QyxlQUFlLEVBQzNEO2dCQUNBLE9BQU9KLElBQUlHO1lBQ2I7WUFFQUosUUFBUU0sS0FBSyxDQUFDO1lBQ2QsT0FBT0MsS0FBS0g7UUFDZDtRQUVBLGtCQUFrQixHQUNsQixTQUFTRyxLQUFLSCxJQUFJO1lBQ2hCLE1BQU1JLFNBQVMvQyxvRkFBaUJBLENBQUN5QztZQUVqQyxJQUFJRSxTQUFTekMsd0RBQUtBLENBQUNjLEtBQUssRUFBRTtnQkFDeEIscUNBQXFDO2dCQUNyQyxJQUFJMEIsT0FBTyxHQUFHLE9BQU9GLElBQUlHO2dCQUN6QkosUUFBUVMsT0FBTyxDQUFDTDtnQkFDaEJEO2dCQUNBLE9BQU9JO1lBQ1Q7WUFFQSxJQUFJSixPQUFPLEtBQUssQ0FBQ2xDLFFBQVEsT0FBT2dDLElBQUlHO1lBQ3BDLE1BQU1NLFFBQVFWLFFBQVFXLElBQUksQ0FBQztZQUMzQixNQUFNQyxRQUFRbkQsb0ZBQWlCQSxDQUFDMkM7WUFDaENNLE1BQU10QixLQUFLLEdBQ1QsQ0FBQ3dCLFNBQVVBLFVBQVVoRCw0REFBU0EsQ0FBQ2lELGtCQUFrQixJQUFJQyxRQUFRTjtZQUMvREUsTUFBTXhCLE1BQU0sR0FDVixDQUFDc0IsVUFBV0EsV0FBVzVDLDREQUFTQSxDQUFDaUQsa0JBQWtCLElBQUlDLFFBQVFGO1lBQ2pFLE9BQU90RCxHQUFHOEM7UUFDWjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1zdHJpa2V0aHJvdWdoL2Rldi9saWIvc3ludGF4LmpzPzQ0NmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkV2ZW50fSBFdmVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FeHRlbnNpb259IEV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5SZXNvbHZlcn0gUmVzb2x2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NpbmdsZVRpbGRlPXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gc3VwcG9ydCBzdHJpa2V0aHJvdWdoIHdpdGggYSBzaW5nbGUgdGlsZGUgKGRlZmF1bHQ6IGB0cnVlYCkuXG4gKlxuICogICBTaW5nbGUgdGlsZGVzIHdvcmsgb24gZ2l0aHViLmNvbSwgYnV0IGFyZSB0ZWNobmljYWxseSBwcm9oaWJpdGVkIGJ5IHRoZVxuICogICBHRk0gc3BlYy5cbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtzcGxpY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNodW5rZWQnXG5pbXBvcnQge2NsYXNzaWZ5Q2hhcmFjdGVyfSBmcm9tICdtaWNyb21hcmstdXRpbC1jbGFzc2lmeS1jaGFyYWN0ZXInXG5pbXBvcnQge3Jlc29sdmVBbGx9IGZyb20gJ21pY3JvbWFyay11dGlsLXJlc29sdmUtYWxsJ1xuaW1wb3J0IHtjb2RlcywgY29uc3RhbnRzLCB0eXBlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIGVuYWJsZSBHRk0gc3RyaWtldGhyb3VnaCBzeW50YXguXG4gKlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnM9e31dXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7RXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgZXh0ZW5zaW9uc2AsIHRvXG4gKiAgIGVuYWJsZSBHRk0gc3RyaWtldGhyb3VnaCBzeW50YXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1TdHJpa2V0aHJvdWdoKG9wdGlvbnMpIHtcbiAgY29uc3Qgb3B0aW9uc18gPSBvcHRpb25zIHx8IHt9XG4gIGxldCBzaW5nbGUgPSBvcHRpb25zXy5zaW5nbGVUaWxkZVxuICBjb25zdCB0b2tlbml6ZXIgPSB7XG4gICAgdG9rZW5pemU6IHRva2VuaXplU3RyaWtldGhyb3VnaCxcbiAgICByZXNvbHZlQWxsOiByZXNvbHZlQWxsU3RyaWtldGhyb3VnaFxuICB9XG5cbiAgaWYgKHNpbmdsZSA9PT0gbnVsbCB8fCBzaW5nbGUgPT09IHVuZGVmaW5lZCkge1xuICAgIHNpbmdsZSA9IHRydWVcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdGV4dDoge1tjb2Rlcy50aWxkZV06IHRva2VuaXplcn0sXG4gICAgaW5zaWRlU3Bhbjoge251bGw6IFt0b2tlbml6ZXJdfSxcbiAgICBhdHRlbnRpb25NYXJrZXJzOiB7bnVsbDogW2NvZGVzLnRpbGRlXX1cbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlIGV2ZW50cyBhbmQgcmVzb2x2ZSBzdHJpa2V0aHJvdWdoLlxuICAgKlxuICAgKiBAdHlwZSB7UmVzb2x2ZXJ9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvbHZlQWxsU3RyaWtldGhyb3VnaChldmVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgLy8gV2FsayB0aHJvdWdoIGFsbCBldmVudHMuXG4gICAgd2hpbGUgKCsraW5kZXggPCBldmVudHMubGVuZ3RoKSB7XG4gICAgICAvLyBGaW5kIGEgdG9rZW4gdGhhdCBjYW4gY2xvc2UuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50c1tpbmRleF1bMF0gPT09ICdlbnRlcicgJiZcbiAgICAgICAgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSAnc3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5JyAmJlxuICAgICAgICBldmVudHNbaW5kZXhdWzFdLl9jbG9zZVxuICAgICAgKSB7XG4gICAgICAgIGxldCBvcGVuID0gaW5kZXhcblxuICAgICAgICAvLyBOb3cgd2FsayBiYWNrIHRvIGZpbmQgYW4gb3BlbmVyLlxuICAgICAgICB3aGlsZSAob3Blbi0tKSB7XG4gICAgICAgICAgLy8gRmluZCBhIHRva2VuIHRoYXQgY2FuIG9wZW4gdGhlIGNsb3Nlci5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudHNbb3Blbl1bMF0gPT09ICdleGl0JyAmJlxuICAgICAgICAgICAgZXZlbnRzW29wZW5dWzFdLnR5cGUgPT09ICdzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnknICYmXG4gICAgICAgICAgICBldmVudHNbb3Blbl1bMV0uX29wZW4gJiZcbiAgICAgICAgICAgIC8vIElmIHRoZSBzaXplcyBhcmUgdGhlIHNhbWU6XG4gICAgICAgICAgICBldmVudHNbaW5kZXhdWzFdLmVuZC5vZmZzZXQgLSBldmVudHNbaW5kZXhdWzFdLnN0YXJ0Lm9mZnNldCA9PT1cbiAgICAgICAgICAgICAgZXZlbnRzW29wZW5dWzFdLmVuZC5vZmZzZXQgLSBldmVudHNbb3Blbl1bMV0uc3RhcnQub2Zmc2V0XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudHNbaW5kZXhdWzFdLnR5cGUgPSAnc3RyaWtldGhyb3VnaFNlcXVlbmNlJ1xuICAgICAgICAgICAgZXZlbnRzW29wZW5dWzFdLnR5cGUgPSAnc3RyaWtldGhyb3VnaFNlcXVlbmNlJ1xuXG4gICAgICAgICAgICAvKiogQHR5cGUge1Rva2VufSAqL1xuICAgICAgICAgICAgY29uc3Qgc3RyaWtldGhyb3VnaCA9IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmlrZXRocm91Z2gnLFxuICAgICAgICAgICAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW29wZW5dWzFdLnN0YXJ0KSxcbiAgICAgICAgICAgICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbaW5kZXhdWzFdLmVuZClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpa2V0aHJvdWdoVGV4dCcsXG4gICAgICAgICAgICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbb3Blbl1bMV0uZW5kKSxcbiAgICAgICAgICAgICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbaW5kZXhdWzFdLnN0YXJ0KVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBPcGVuaW5nLlxuICAgICAgICAgICAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gICAgICAgICAgICBjb25zdCBuZXh0RXZlbnRzID0gW1xuICAgICAgICAgICAgICBbJ2VudGVyJywgc3RyaWtldGhyb3VnaCwgY29udGV4dF0sXG4gICAgICAgICAgICAgIFsnZW50ZXInLCBldmVudHNbb3Blbl1bMV0sIGNvbnRleHRdLFxuICAgICAgICAgICAgICBbJ2V4aXQnLCBldmVudHNbb3Blbl1bMV0sIGNvbnRleHRdLFxuICAgICAgICAgICAgICBbJ2VudGVyJywgdGV4dCwgY29udGV4dF1cbiAgICAgICAgICAgIF1cblxuICAgICAgICAgICAgY29uc3QgaW5zaWRlU3BhbiA9IGNvbnRleHQucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsXG5cbiAgICAgICAgICAgIGlmIChpbnNpZGVTcGFuKSB7XG4gICAgICAgICAgICAgIC8vIEJldHdlZW4uXG4gICAgICAgICAgICAgIHNwbGljZShcbiAgICAgICAgICAgICAgICBuZXh0RXZlbnRzLFxuICAgICAgICAgICAgICAgIG5leHRFdmVudHMubGVuZ3RoLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgcmVzb2x2ZUFsbChpbnNpZGVTcGFuLCBldmVudHMuc2xpY2Uob3BlbiArIDEsIGluZGV4KSwgY29udGV4dClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDbG9zaW5nLlxuICAgICAgICAgICAgc3BsaWNlKG5leHRFdmVudHMsIG5leHRFdmVudHMubGVuZ3RoLCAwLCBbXG4gICAgICAgICAgICAgIFsnZXhpdCcsIHRleHQsIGNvbnRleHRdLFxuICAgICAgICAgICAgICBbJ2VudGVyJywgZXZlbnRzW2luZGV4XVsxXSwgY29udGV4dF0sXG4gICAgICAgICAgICAgIFsnZXhpdCcsIGV2ZW50c1tpbmRleF1bMV0sIGNvbnRleHRdLFxuICAgICAgICAgICAgICBbJ2V4aXQnLCBzdHJpa2V0aHJvdWdoLCBjb250ZXh0XVxuICAgICAgICAgICAgXSlcblxuICAgICAgICAgICAgc3BsaWNlKGV2ZW50cywgb3BlbiAtIDEsIGluZGV4IC0gb3BlbiArIDMsIG5leHRFdmVudHMpXG5cbiAgICAgICAgICAgIGluZGV4ID0gb3BlbiArIG5leHRFdmVudHMubGVuZ3RoIC0gMlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbmRleCA9IC0xXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgIGlmIChldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnknKSB7XG4gICAgICAgIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9IHR5cGVzLmRhdGFcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXZlbnRzXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAgICogQHR5cGUge1Rva2VuaXplcn1cbiAgICovXG4gIGZ1bmN0aW9uIHRva2VuaXplU3RyaWtldGhyb3VnaChlZmZlY3RzLCBvaywgbm9rKSB7XG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnByZXZpb3VzXG4gICAgY29uc3QgZXZlbnRzID0gdGhpcy5ldmVudHNcbiAgICBsZXQgc2l6ZSA9IDBcblxuICAgIHJldHVybiBzdGFydFxuXG4gICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgICBhc3NlcnQoY29kZSA9PT0gY29kZXMudGlsZGUsICdleHBlY3RlZCBgfmAnKVxuXG4gICAgICBpZiAoXG4gICAgICAgIHByZXZpb3VzID09PSBjb2Rlcy50aWxkZSAmJlxuICAgICAgICBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdWzFdLnR5cGUgIT09IHR5cGVzLmNoYXJhY3RlckVzY2FwZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBub2soY29kZSlcbiAgICAgIH1cblxuICAgICAgZWZmZWN0cy5lbnRlcignc3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5JylcbiAgICAgIHJldHVybiBtb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICBmdW5jdGlvbiBtb3JlKGNvZGUpIHtcbiAgICAgIGNvbnN0IGJlZm9yZSA9IGNsYXNzaWZ5Q2hhcmFjdGVyKHByZXZpb3VzKVxuXG4gICAgICBpZiAoY29kZSA9PT0gY29kZXMudGlsZGUpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgdGhpcmQgbWFya2VyLCBleGl0LlxuICAgICAgICBpZiAoc2l6ZSA+IDEpIHJldHVybiBub2soY29kZSlcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgIHNpemUrK1xuICAgICAgICByZXR1cm4gbW9yZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2l6ZSA8IDIgJiYgIXNpbmdsZSkgcmV0dXJuIG5vayhjb2RlKVxuICAgICAgY29uc3QgdG9rZW4gPSBlZmZlY3RzLmV4aXQoJ3N0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeScpXG4gICAgICBjb25zdCBhZnRlciA9IGNsYXNzaWZ5Q2hhcmFjdGVyKGNvZGUpXG4gICAgICB0b2tlbi5fb3BlbiA9XG4gICAgICAgICFhZnRlciB8fCAoYWZ0ZXIgPT09IGNvbnN0YW50cy5hdHRlbnRpb25TaWRlQWZ0ZXIgJiYgQm9vbGVhbihiZWZvcmUpKVxuICAgICAgdG9rZW4uX2Nsb3NlID1cbiAgICAgICAgIWJlZm9yZSB8fCAoYmVmb3JlID09PSBjb25zdGFudHMuYXR0ZW50aW9uU2lkZUFmdGVyICYmIEJvb2xlYW4oYWZ0ZXIpKVxuICAgICAgcmV0dXJuIG9rKGNvZGUpXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsib2siLCJhc3NlcnQiLCJzcGxpY2UiLCJjbGFzc2lmeUNoYXJhY3RlciIsInJlc29sdmVBbGwiLCJjb2RlcyIsImNvbnN0YW50cyIsInR5cGVzIiwiZ2ZtU3RyaWtldGhyb3VnaCIsIm9wdGlvbnMiLCJvcHRpb25zXyIsInNpbmdsZSIsInNpbmdsZVRpbGRlIiwidG9rZW5pemVyIiwidG9rZW5pemUiLCJ0b2tlbml6ZVN0cmlrZXRocm91Z2giLCJyZXNvbHZlQWxsU3RyaWtldGhyb3VnaCIsInVuZGVmaW5lZCIsInRleHQiLCJ0aWxkZSIsImluc2lkZVNwYW4iLCJudWxsIiwiYXR0ZW50aW9uTWFya2VycyIsImV2ZW50cyIsImNvbnRleHQiLCJpbmRleCIsImxlbmd0aCIsInR5cGUiLCJfY2xvc2UiLCJvcGVuIiwiX29wZW4iLCJlbmQiLCJvZmZzZXQiLCJzdGFydCIsInN0cmlrZXRocm91Z2giLCJPYmplY3QiLCJhc3NpZ24iLCJuZXh0RXZlbnRzIiwicGFyc2VyIiwiY29uc3RydWN0cyIsInNsaWNlIiwiZGF0YSIsImVmZmVjdHMiLCJub2siLCJwcmV2aW91cyIsInNpemUiLCJjb2RlIiwiY2hhcmFjdGVyRXNjYXBlIiwiZW50ZXIiLCJtb3JlIiwiYmVmb3JlIiwiY29uc3VtZSIsInRva2VuIiwiZXhpdCIsImFmdGVyIiwiYXR0ZW50aW9uU2lkZUFmdGVyIiwiQm9vbGVhbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js":
-/*!****************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js ***!
- \****************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EditMap: () => (/* binding */ EditMap)\n/* harmony export */ });\n/**\n * @typedef {import('micromark-util-types').Event} Event\n */ // Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n/**\n * @typedef {[number, number, Array<Event>]} Change\n * @typedef {[number, number, number]} Jump\n */ /**\n * Tracks a bunch of edits.\n */ class EditMap {\n /**\n * Create a new edit map.\n */ constructor(){\n /**\n * Record of changes.\n *\n * @type {Array<Change>}\n */ this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */ add(index, remove, add) {\n addImpl(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */ consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */ if (this.map.length === 0) {\n return;\n }\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array<Jump>} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n let index = this.map.length;\n /** @type {Array<Array<Event>>} */ const vecs = [];\n while(index > 0){\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n // Truncate rest.\n events.length = this.map[index][0];\n }\n vecs.push([\n ...events\n ]);\n events.length = 0;\n let slice = vecs.pop();\n while(slice){\n events.push(...slice);\n slice = vecs.pop();\n }\n // Truncate everything.\n this.map.length = 0;\n }\n}\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */ function addImpl(editMap, at, remove, add) {\n let index = 0;\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */ if (remove === 0 && add.length === 0) {\n return;\n }\n while(index < editMap.map.length){\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add);\n // }\n return;\n }\n index += 1;\n }\n editMap.map.push([\n at,\n remove,\n add\n ]);\n} // /**\n // * Shift `previous` and `next` links according to `jumps`.\n // *\n // * This fixes links in case there are events removed or added between them.\n // *\n // * @param {Array<Event>} events\n // * @param {Array<Jump>} jumps\n // */\n // function shiftLinks(events, jumps) {\n // let jumpIndex = 0\n // let index = 0\n // let add = 0\n // let rm = 0\n // while (index < events.length) {\n // const rmCurr = rm\n // while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n // add = jumps[jumpIndex][2]\n // rm = jumps[jumpIndex][1]\n // jumpIndex += 1\n // }\n // // Ignore items that will be removed.\n // if (rm > rmCurr) {\n // index += rm - rmCurr\n // } else {\n // // ?\n // // if let Some(link) = &events[index].link {\n // // if let Some(next) = link.next {\n // // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n // // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n // // add = jumps[jumpIndex].2;\n // // rm = jumps[jumpIndex].1;\n // // jumpIndex += 1;\n // // }\n // // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n // // index = next;\n // // continue;\n // // }\n // // }\n // index += 1\n // }\n // }\n // }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhYmxlL2Rldi9saWIvZWRpdC1tYXAuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztDQUVDLEdBRUQsNENBQTRDO0FBQzVDLDJDQUEyQztBQUUzQywrREFBK0Q7QUFDL0QsRUFBRTtBQUNGLG1EQUFtRDtBQUNuRCw4RUFBOEU7QUFDOUUsOEVBQThFO0FBQzlFLG1CQUFtQjtBQUNuQiwwREFBMEQ7QUFDMUQseUVBQXlFO0FBQ3pFLG1EQUFtRDtBQUVuRDs7O0NBR0MsR0FFRDs7Q0FFQyxHQUNNLE1BQU1BO0lBQ1g7O0dBRUMsR0FDREMsYUFBYztRQUNaOzs7O0tBSUMsR0FDRCxJQUFJLENBQUNDLEdBQUcsR0FBRyxFQUFFO0lBQ2Y7SUFFQTs7Ozs7OztHQU9DLEdBQ0RDLElBQUlDLEtBQUssRUFBRUMsTUFBTSxFQUFFRixHQUFHLEVBQUU7UUFDdEJHLFFBQVEsSUFBSSxFQUFFRixPQUFPQyxRQUFRRjtJQUMvQjtJQUVBLDhDQUE4QztJQUM5QyxNQUFNO0lBQ04saUVBQWlFO0lBQ2pFLEtBQUs7SUFDTCwyQkFBMkI7SUFDM0IsNEJBQTRCO0lBQzVCLCtCQUErQjtJQUMvQiwwQkFBMEI7SUFDMUIsTUFBTTtJQUNOLGtDQUFrQztJQUNsQyw0Q0FBNEM7SUFDNUMsSUFBSTtJQUVKOzs7OztHQUtDLEdBQ0RJLFFBQVFDLE1BQU0sRUFBRTtRQUNkLElBQUksQ0FBQ04sR0FBRyxDQUFDTyxJQUFJLENBQUMsU0FBVUMsQ0FBQyxFQUFFQyxDQUFDO1lBQzFCLE9BQU9ELENBQUMsQ0FBQyxFQUFFLEdBQUdDLENBQUMsQ0FBQyxFQUFFO1FBQ3BCO1FBRUEsbUZBQW1GLEdBQ25GLElBQUksSUFBSSxDQUFDVCxHQUFHLENBQUNVLE1BQU0sS0FBSyxHQUFHO1lBQ3pCO1FBQ0Y7UUFFQSx1RUFBdUU7UUFDdkUsa0JBQWtCO1FBQ2xCLCtEQUErRDtRQUMvRCw2QkFBNkI7UUFDN0IsbUJBQW1CO1FB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bnNpb24tZ2ZtLXRhYmxlL2Rldi9saWIvZWRpdC1tYXAuanM/NWEzZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKi9cblxuLy8gUG9ydCBvZiBgZWRpdF9tYXAucnNgIGZyb20gYG1hcmtkb3duLXJzYC5cbi8vIFRoaXMgc2hvdWxkIG1vdmUgdG8gYG1hcmtkb3duLWpzYCBsYXRlci5cblxuLy8gRGVhbCB3aXRoIHNldmVyYWwgY2hhbmdlcyBpbiBldmVudHMsIGJhdGNoaW5nIHRoZW0gdG9nZXRoZXIuXG4vL1xuLy8gUHJlZmVyYWJseSwgY2hhbmdlcyBzaG91bGQgYmUga2VwdCB0byBhIG1pbmltdW0uXG4vLyBTb21ldGltZXMsIGl04oCZcyBuZWVkZWQgdG8gY2hhbmdlIHRoZSBsaXN0IG9mIGV2ZW50cywgYmVjYXVzZSBwYXJzaW5nIGNhbiBiZVxuLy8gbWVzc3ksIGFuZCBpdCBoZWxwcyB0byBleHBvc2UgYSBjbGVhbmVyIGludGVyZmFjZSBvZiBldmVudHMgdG8gdGhlIGNvbXBpbGVyXG4vLyBhbmQgb3RoZXIgdXNlcnMuXG4vLyBJdCBjYW4gYWxzbyBoZWxwIHRvIG1lcmdlIG1hbnkgYWRqYWNlbnQgc2ltaWxhciBldmVudHMuXG4vLyBBbmQsIGluIG90aGVyIGNhc2VzLCBpdOKAmXMgbmVlZGVkIHRvIHBhcnNlIHN1YmNvbnRlbnQ6IHBhc3Mgc29tZSBldmVudHNcbi8vIHRocm91Z2ggYW5vdGhlciB0b2tlbml6ZXIgYW5kIGluamVjdCB0aGUgcmVzdWx0LlxuXG4vKipcbiAqIEB0eXBlZGVmIHtbbnVtYmVyLCBudW1iZXIsIEFycmF5PEV2ZW50Pl19IENoYW5nZVxuICogQHR5cGVkZWYge1tudW1iZXIsIG51bWJlciwgbnVtYmVyXX0gSnVtcFxuICovXG5cbi8qKlxuICogVHJhY2tzIGEgYnVuY2ggb2YgZWRpdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBFZGl0TWFwIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBlZGl0IG1hcC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8qKlxuICAgICAqIFJlY29yZCBvZiBjaGFuZ2VzLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PENoYW5nZT59XG4gICAgICovXG4gICAgdGhpcy5tYXAgPSBbXVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBlZGl0OiBhIHJlbW92ZSBhbmQvb3IgYWRkIGF0IGEgY2VydGFpbiBwbGFjZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdmVcbiAgICogQHBhcmFtIHtBcnJheTxFdmVudD59IGFkZFxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgYWRkKGluZGV4LCByZW1vdmUsIGFkZCkge1xuICAgIGFkZEltcGwodGhpcywgaW5kZXgsIHJlbW92ZSwgYWRkKVxuICB9XG5cbiAgLy8gVG8gZG86IGFkZCB0aGlzIHdoZW4gbW92aW5nIHRvIGBtaWNyb21hcmtgLlxuICAvLyAvKipcbiAgLy8gICogQ3JlYXRlIGFuIGVkaXQ6IGJ1dCBpbnNlcnQgYGFkZGAgYmVmb3JlIGV4aXN0aW5nIGFkZGl0aW9ucy5cbiAgLy8gICpcbiAgLy8gICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gIC8vICAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdmVcbiAgLy8gICogQHBhcmFtIHtBcnJheTxFdmVudD59IGFkZFxuICAvLyAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAvLyAgKi9cbiAgLy8gYWRkQmVmb3JlKGluZGV4LCByZW1vdmUsIGFkZCkge1xuICAvLyAgIGFkZEltcGwodGhpcywgaW5kZXgsIHJlbW92ZSwgYWRkLCB0cnVlKVxuICAvLyB9XG5cbiAgLyoqXG4gICAqIERvbmUsIGNoYW5nZSB0aGUgZXZlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5PEV2ZW50Pn0gZXZlbnRzXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBjb25zdW1lKGV2ZW50cykge1xuICAgIHRoaXMubWFwLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBhWzBdIC0gYlswXVxuICAgIH0pXG5cbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAzIC0tIGByZXNvbHZlYCBpcyBuZXZlciBjYWxsZWQgd2l0aG91dCB0YWJsZXMsIHNvIHdpdGhvdXQgZWRpdHMuICovXG4gICAgaWYgKHRoaXMubWFwLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gVG8gZG86IGlmIGxpbmtzIGFyZSBhZGRlZCBpbiBldmVudHMsIGxpa2UgdGhleSBhcmUgaW4gYG1hcmtkb3duLXJzYCxcbiAgICAvLyB0aGlzIGlzIG5lZWRlZC5cbiAgICAvLyAvLyBDYWxjdWxhdGUganVtcHM6IHdoZXJlIGl0ZW1zIGluIHRoZSBjdXJyZW50IGxpc3QgbW92ZSB0by5cbiAgICAvLyAvKiogQHR5cGUge0FycmF5PEp1bXA+fSAqL1xuICAgIC8vIGNvbnN0IGp1bXBzID0gW11cbiAgICAvLyBsZXQgaW5kZXggPSAwXG4gICAgLy8gbGV0IGFkZEFjYyA9IDBcbiAgICAvLyBsZXQgcmVtb3ZlQWNjID0gMFxuICAgIC8vIHdoaWxlIChpbmRleCA8IHRoaXMubWFwLmxlbmd0aCkge1xuICAgIC8vICAgY29uc3QgW2F0LCByZW1vdmUsIGFkZF0gPSB0aGlzLm1hcFtpbmRleF1cbiAgICAvLyAgIHJlbW92ZUFjYyArPSByZW1vdmVcbiAgICAvLyAgIGFkZEFjYyArPSBhZGQubGVuZ3RoXG4gICAgLy8gICBqdW1wcy5wdXNoKFthdCwgcmVtb3ZlQWNjLCBhZGRBY2NdKVxuICAgIC8vICAgaW5kZXggKz0gMVxuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIC4gc2hpZnRMaW5rcyhldmVudHMsIGp1bXBzKVxuXG4gICAgbGV0IGluZGV4ID0gdGhpcy5tYXAubGVuZ3RoXG4gICAgLyoqIEB0eXBlIHtBcnJheTxBcnJheTxFdmVudD4+fSAqL1xuICAgIGNvbnN0IHZlY3MgPSBbXVxuICAgIHdoaWxlIChpbmRleCA+IDApIHtcbiAgICAgIGluZGV4IC09IDFcbiAgICAgIHZlY3MucHVzaChcbiAgICAgICAgZXZlbnRzLnNsaWNlKHRoaXMubWFwW2luZGV4XVswXSArIHRoaXMubWFwW2luZGV4XVsxXSksXG4gICAgICAgIHRoaXMubWFwW2luZGV4XVsyXVxuICAgICAgKVxuXG4gICAgICAvLyBUcnVuY2F0ZSByZXN0LlxuICAgICAgZXZlbnRzLmxlbmd0aCA9IHRoaXMubWFwW2luZGV4XVswXVxuICAgIH1cblxuICAgIHZlY3MucHVzaChbLi4uZXZlbnRzXSlcbiAgICBldmVudHMubGVuZ3RoID0gMFxuXG4gICAgbGV0IHNsaWNlID0gdmVjcy5wb3AoKVxuXG4gICAgd2hpbGUgKHNsaWNlKSB7XG4gICAgICBldmVudHMucHVzaCguLi5zbGljZSlcbiAgICAgIHNsaWNlID0gdmVjcy5wb3AoKVxuICAgIH1cblxuICAgIC8vIFRydW5jYXRlIGV2ZXJ5dGhpbmcuXG4gICAgdGhpcy5tYXAubGVuZ3RoID0gMFxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGVkaXQuXG4gKlxuICogQHBhcmFtIHtFZGl0TWFwfSBlZGl0TWFwXG4gKiBAcGFyYW0ge251bWJlcn0gYXRcbiAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdmVcbiAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBhZGRcbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGFkZEltcGwoZWRpdE1hcCwgYXQsIHJlbW92ZSwgYWRkKSB7XG4gIGxldCBpbmRleCA9IDBcblxuICAvKiBjOCBpZ25vcmUgbmV4dCAzIC0tIGByZXNvbHZlYCBpcyBuZXZlciBjYWxsZWQgd2l0aG91dCB0YWJsZXMsIHNvIHdpdGhvdXQgZWRpdHMuICovXG4gIGlmIChyZW1vdmUgPT09IDAgJiYgYWRkLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgd2hpbGUgKGluZGV4IDwgZWRpdE1hcC5tYXAubGVuZ3RoKSB7XG4gICAgaWYgKGVkaXRNYXAubWFwW2luZGV4XVswXSA9PT0gYXQpIHtcbiAgICAgIGVkaXRNYXAubWFwW2luZGV4XVsxXSArPSByZW1vdmVcblxuICAgICAgLy8gVG8gZG86IGJlZm9yZSBub3QgdXNlZCBieSB0YWJsZXMsIHVzZSB3aGVuIG1vdmluZyB0byBtaWNyb21hcmsuXG4gICAgICAvLyBpZiAoYmVmb3JlKSB7XG4gICAgICAvLyAgIGFkZC5wdXNoKC4uLmVkaXRNYXAubWFwW2luZGV4XVsyXSlcbiAgICAgIC8vICAgZWRpdE1hcC5tYXBbaW5kZXhdWzJdID0gYWRkXG4gICAgICAvLyB9IGVsc2Uge1xuICAgICAgZWRpdE1hcC5tYXBbaW5kZXhdWzJdLnB1c2goLi4uYWRkKVxuICAgICAgLy8gfVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpbmRleCArPSAxXG4gIH1cblxuICBlZGl0TWFwLm1hcC5wdXNoKFthdCwgcmVtb3ZlLCBhZGRdKVxufVxuXG4vLyAvKipcbi8vICAqIFNoaWZ0IGBwcmV2aW91c2AgYW5kIGBuZXh0YCBsaW5rcyBhY2NvcmRpbmcgdG8gYGp1bXBzYC5cbi8vICAqXG4vLyAgKiBUaGlzIGZpeGVzIGxpbmtzIGluIGNhc2UgdGhlcmUgYXJlIGV2ZW50cyByZW1vdmVkIG9yIGFkZGVkIGJldHdlZW4gdGhlbS5cbi8vICAqXG4vLyAgKiBAcGFyYW0ge0FycmF5PEV2ZW50Pn0gZXZlbnRzXG4vLyAgKiBAcGFyYW0ge0FycmF5PEp1bXA+fSBqdW1wc1xuLy8gICovXG4vLyBmdW5jdGlvbiBzaGlmdExpbmtzKGV2ZW50cywganVtcHMpIHtcbi8vICAgbGV0IGp1bXBJbmRleCA9IDBcbi8vICAgbGV0IGluZGV4ID0gMFxuLy8gICBsZXQgYWRkID0gMFxuLy8gICBsZXQgcm0gPSAwXG5cbi8vICAgd2hpbGUgKGluZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuLy8gICAgIGNvbnN0IHJtQ3VyciA9IHJtXG5cbi8vICAgICB3aGlsZSAoanVtcEluZGV4IDwganVtcHMubGVuZ3RoICYmIGp1bXBzW2p1bXBJbmRleF1bMF0gPD0gaW5kZXgpIHtcbi8vICAgICAgIGFkZCA9IGp1bXBzW2p1bXBJbmRleF1bMl1cbi8vICAgICAgIHJtID0ganVtcHNbanVtcEluZGV4XVsxXVxuLy8gICAgICAganVtcEluZGV4ICs9IDFcbi8vICAgICB9XG5cbi8vICAgICAvLyBJZ25vcmUgaXRlbXMgdGhhdCB3aWxsIGJlIHJlbW92ZWQuXG4vLyAgICAgaWYgKHJtID4gcm1DdXJyKSB7XG4vLyAgICAgICBpbmRleCArPSBybSAtIHJtQ3VyclxuLy8gICAgIH0gZWxzZSB7XG4vLyAgICAgICAvLyA/XG4vLyAgICAgICAvLyBpZiBsZXQgU29tZShsaW5rKSA9ICZldmVudHNbaW5kZXhdLmxpbmsge1xuLy8gICAgICAgLy8gICAgIGlmIGxldCBTb21lKG5leHQpID0gbGluay5uZXh0IHtcbi8vICAgICAgIC8vICAgICAgICAgZXZlbnRzW25leHRdLmxpbmsuYXNfbXV0KCkudW53cmFwKCkucHJldmlvdXMgPSBTb21lKGluZGV4ICsgYWRkIC0gcm0pO1xuLy8gICAgICAgLy8gICAgICAgICB3aGlsZSBqdW1wSW5kZXggPCBqdW1wcy5sZW4oKSAmJiBqdW1wc1tqdW1wSW5kZXhdLjAgPD0gbmV4dCB7XG4vLyAgICAgICAvLyAgICAgICAgICAgICBhZGQgPSBqdW1wc1tqdW1wSW5kZXhdLjI7XG4vLyAgICAgICAvLyAgICAgICAgICAgICBybSA9IGp1bXBzW2p1bXBJbmRleF0uMTtcbi8vICAgICAgIC8vICAgICAgICAgICAgIGp1bXBJbmRleCArPSAxO1xuLy8gICAgICAgLy8gICAgICAgICB9XG4vLyAgICAgICAvLyAgICAgICAgIGV2ZW50c1tpbmRleF0ubGluay5hc19tdXQoKS51bndyYXAoKS5uZXh0ID0gU29tZShuZXh0ICsgYWRkIC0gcm0pO1xuLy8gICAgICAgLy8gICAgICAgICBpbmRleCA9IG5leHQ7XG4vLyAgICAgICAvLyAgICAgICAgIGNvbnRpbnVlO1xuLy8gICAgICAgLy8gICAgIH1cbi8vICAgICAgIC8vIH1cbi8vICAgICAgIGluZGV4ICs9IDFcbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cbiJdLCJuYW1lcyI6WyJFZGl0TWFwIiwiY29uc3RydWN0b3IiLCJtYXAiLCJhZGQiLCJpbmRleCIsInJlbW92ZSIsImFkZEltcGwiLCJjb25zdW1lIiwiZXZlbnRzIiwic29ydCIsImEiLCJiIiwibGVuZ3RoIiwidmVjcyIsInB1c2giLCJzbGljZSIsInBvcCIsImVkaXRNYXAiLCJhdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/html.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-table/dev/lib/html.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmTableHtml: () => (/* binding */ gfmTableHtml)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */ /**\n * @typedef {import('./infer.js').Align} Align\n */ \nconst alignment = {\n none: \"\",\n left: ' align=\"left\"',\n right: ' align=\"right\"',\n center: ' align=\"center\"'\n};\n// To do: micromark@5: use `infer` here, when all events are exposed.\n/**\n * Create an HTML extension for `micromark` to support GitHub tables when\n * serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GitHub tables when serializing to HTML.\n */ function gfmTableHtml() {\n return {\n enter: {\n table (token) {\n const tableAlign = token._align;\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(tableAlign, \"expected `_align`\");\n this.lineEndingIfNeeded();\n this.tag(\"<table>\");\n this.setData(\"tableAlign\", tableAlign);\n },\n tableBody () {\n this.tag(\"<tbody>\");\n },\n tableData () {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(tableAlign, \"expected `tableAlign`\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tableColumn === \"number\", \"expected `tableColumn`\");\n const align = alignment[tableAlign[tableColumn]];\n if (align === undefined) {\n // Capture results to ignore them.\n this.buffer();\n } else {\n this.lineEndingIfNeeded();\n this.tag(\"<td\" + align + \">\");\n }\n },\n tableHead () {\n this.lineEndingIfNeeded();\n this.tag(\"<thead>\");\n },\n tableHeader () {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(tableAlign, \"expected `tableAlign`\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tableColumn === \"number\", \"expected `tableColumn`\");\n const align = alignment[tableAlign[tableColumn]];\n this.lineEndingIfNeeded();\n this.tag(\"<th\" + align + \">\");\n },\n tableRow () {\n this.setData(\"tableColumn\", 0);\n this.lineEndingIfNeeded();\n this.tag(\"<tr>\");\n }\n },\n exit: {\n // Overwrite the default code text data handler to unescape escaped pipes when\n // they are in tables.\n codeTextData (token) {\n let value = this.sliceSerialize(token);\n if (this.getData(\"tableAlign\")) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n this.raw(this.encode(value));\n },\n table () {\n this.setData(\"tableAlign\");\n // Note: we don’t set `slurpAllLineEndings` anymore, in delimiter rows,\n // but we do need to reset it to match a funky newline GH generates for\n // list items combined with tables.\n this.setData(\"slurpAllLineEndings\");\n this.lineEndingIfNeeded();\n this.tag(\"</table>\");\n },\n tableBody () {\n this.lineEndingIfNeeded();\n this.tag(\"</tbody>\");\n },\n tableData () {\n const tableAlign = this.getData(\"tableAlign\");\n const tableColumn = this.getData(\"tableColumn\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(tableAlign, \"expected `tableAlign`\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tableColumn === \"number\", \"expected `tableColumn`\");\n if (tableColumn in tableAlign) {\n this.tag(\"</td>\");\n this.setData(\"tableColumn\", tableColumn + 1);\n } else {\n // Stop capturing.\n this.resume();\n }\n },\n tableHead () {\n this.lineEndingIfNeeded();\n this.tag(\"</thead>\");\n },\n tableHeader () {\n const tableColumn = this.getData(\"tableColumn\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tableColumn === \"number\", \"expected `tableColumn`\");\n this.tag(\"</th>\");\n this.setData(\"tableColumn\", tableColumn + 1);\n },\n tableRow () {\n const tableAlign = this.getData(\"tableAlign\");\n let tableColumn = this.getData(\"tableColumn\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(tableAlign, \"expected `tableAlign`\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tableColumn === \"number\", \"expected `tableColumn`\");\n while(tableColumn < tableAlign.length){\n this.lineEndingIfNeeded();\n this.tag(\"<td\" + alignment[tableAlign[tableColumn]] + \"></td>\");\n tableColumn++;\n }\n this.setData(\"tableColumn\", tableColumn);\n this.lineEndingIfNeeded();\n this.tag(\"</tr>\");\n }\n }\n };\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */ function replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === \"|\" ? $1 : $0;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhYmxlL2Rldi9saWIvaHRtbC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOztDQUVDLEdBRUQ7O0NBRUMsR0FFa0M7QUFFbkMsTUFBTUUsWUFBWTtJQUNoQkMsTUFBTTtJQUNOQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsUUFBUTtBQUNWO0FBRUEscUVBQXFFO0FBRXJFOzs7Ozs7O0NBT0MsR0FDTSxTQUFTQztJQUNkLE9BQU87UUFDTEMsT0FBTztZQUNMQyxPQUFNQyxLQUFLO2dCQUNULE1BQU1DLGFBQWFELE1BQU1FLE1BQU07Z0JBQy9CWCwwQ0FBTUEsQ0FBQ1UsWUFBWTtnQkFDbkIsSUFBSSxDQUFDRSxrQkFBa0I7Z0JBQ3ZCLElBQUksQ0FBQ0MsR0FBRyxDQUFDO2dCQUNULElBQUksQ0FBQ0MsT0FBTyxDQUFDLGNBQWNKO1lBQzdCO1lBQ0FLO2dCQUNFLElBQUksQ0FBQ0YsR0FBRyxDQUFDO1lBQ1g7WUFDQUc7Z0JBQ0UsTUFBTU4sYUFBYSxJQUFJLENBQUNPLE9BQU8sQ0FBQztnQkFDaEMsTUFBTUMsY0FBYyxJQUFJLENBQUNELE9BQU8sQ0FBQztnQkFDakNqQiwwQ0FBTUEsQ0FBQ1UsWUFBWTtnQkFDbkJWLDBDQUFNQSxDQUFDLE9BQU9rQixnQkFBZ0IsVUFBVTtnQkFDeEMsTUFBTUMsUUFBUWxCLFNBQVMsQ0FBQ1MsVUFBVSxDQUFDUSxZQUFZLENBQUM7Z0JBRWhELElBQUlDLFVBQVVDLFdBQVc7b0JBQ3ZCLGtDQUFrQztvQkFDbEMsSUFBSSxDQUFDQyxNQUFNO2dCQUNiLE9BQU87b0JBQ0wsSUFBSSxDQUFDVCxrQkFBa0I7b0JBQ3ZCLElBQUksQ0FBQ0MsR0FBRyxDQUFDLFFBQVFNLFFBQVE7Z0JBQzNCO1lBQ0Y7WUFDQUc7Z0JBQ0UsSUFBSSxDQUFDVixrQkFBa0I7Z0JBQ3ZCLElBQUksQ0FBQ0MsR0FBRyxDQUFDO1lBQ1g7WUFDQVU7Z0JBQ0UsTUFBTWIsYUFB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QU8sTUFBTUEsS0FBS0Q7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZS9kZXYvbGliL2h0bWwuanM/Y2M5MiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSHRtbEV4dGVuc2lvbn0gSHRtbEV4dGVuc2lvblxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9pbmZlci5qcycpLkFsaWdufSBBbGlnblxuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbmNvbnN0IGFsaWdubWVudCA9IHtcbiAgbm9uZTogJycsXG4gIGxlZnQ6ICcgYWxpZ249XCJsZWZ0XCInLFxuICByaWdodDogJyBhbGlnbj1cInJpZ2h0XCInLFxuICBjZW50ZXI6ICcgYWxpZ249XCJjZW50ZXJcIidcbn1cblxuLy8gVG8gZG86IG1pY3JvbWFya0A1OiB1c2UgYGluZmVyYCBoZXJlLCB3aGVuIGFsbCBldmVudHMgYXJlIGV4cG9zZWQuXG5cbi8qKlxuICogQ3JlYXRlIGFuIEhUTUwgZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBzdXBwb3J0IEdpdEh1YiB0YWJsZXMgd2hlblxuICogc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqXG4gKiBAcmV0dXJucyB7SHRtbEV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGh0bWxFeHRlbnNpb25zYCB0b1xuICogICBzdXBwb3J0IEdpdEh1YiB0YWJsZXMgd2hlbiBzZXJpYWxpemluZyB0byBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtVGFibGVIdG1sKCkge1xuICByZXR1cm4ge1xuICAgIGVudGVyOiB7XG4gICAgICB0YWJsZSh0b2tlbikge1xuICAgICAgICBjb25zdCB0YWJsZUFsaWduID0gdG9rZW4uX2FsaWduXG4gICAgICAgIGFzc2VydCh0YWJsZUFsaWduLCAnZXhwZWN0ZWQgYF9hbGlnbmAnKVxuICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgIHRoaXMudGFnKCc8dGFibGU+JylcbiAgICAgICAgdGhpcy5zZXREYXRhKCd0YWJsZUFsaWduJywgdGFibGVBbGlnbilcbiAgICAgIH0sXG4gICAgICB0YWJsZUJvZHkoKSB7XG4gICAgICAgIHRoaXMudGFnKCc8dGJvZHk+JylcbiAgICAgIH0sXG4gICAgICB0YWJsZURhdGEoKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlQWxpZ24gPSB0aGlzLmdldERhdGEoJ3RhYmxlQWxpZ24nKVxuICAgICAgICBjb25zdCB0YWJsZUNvbHVtbiA9IHRoaXMuZ2V0RGF0YSgndGFibGVDb2x1bW4nKVxuICAgICAgICBhc3NlcnQodGFibGVBbGlnbiwgJ2V4cGVjdGVkIGB0YWJsZUFsaWduYCcpXG4gICAgICAgIGFzc2VydCh0eXBlb2YgdGFibGVDb2x1bW4gPT09ICdudW1iZXInLCAnZXhwZWN0ZWQgYHRhYmxlQ29sdW1uYCcpXG4gICAgICAgIGNvbnN0IGFsaWduID0gYWxpZ25tZW50W3RhYmxlQWxpZ25bdGFibGVDb2x1bW5dXVxuXG4gICAgICAgIGlmIChhbGlnbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gQ2FwdHVyZSByZXN1bHRzIHRvIGlnbm9yZSB0aGVtLlxuICAgICAgICAgIHRoaXMuYnVmZmVyKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgICAgdGhpcy50YWcoJzx0ZCcgKyBhbGlnbiArICc+JylcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhYmxlSGVhZCgpIHtcbiAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKVxuICAgICAgICB0aGlzLnRhZygnPHRoZWFkPicpXG4gICAgICB9LFxuICAgICAgdGFibGVIZWFkZXIoKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlQWxpZ24gPSB0aGlzLmdldERhdGEoJ3RhYmxlQWxpZ24nKVxuICAgICAgICBjb25zdCB0YWJsZUNvbHVtbiA9IHRoaXMuZ2V0RGF0YSgndGFibGVDb2x1bW4nKVxuICAgICAgICBhc3NlcnQodGFibGVBbGlnbiwgJ2V4cGVjdGVkIGB0YWJsZUFsaWduYCcpXG4gICAgICAgIGFzc2VydCh0eXBlb2YgdGFibGVDb2x1bW4gPT09ICdudW1iZXInLCAnZXhwZWN0ZWQgYHRhYmxlQ29sdW1uYCcpXG4gICAgICAgIGNvbnN0IGFsaWduID0gYWxpZ25tZW50W3RhYmxlQWxpZ25bdGFibGVDb2x1bW5dXVxuICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgIHRoaXMudGFnKCc8dGgnICsgYWxpZ24gKyAnPicpXG4gICAgICB9LFxuICAgICAgdGFibGVSb3coKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YSgndGFibGVDb2x1bW4nLCAwKVxuICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgIHRoaXMudGFnKCc8dHI+JylcbiAgICAgIH1cbiAgICB9LFxuICAgIGV4aXQ6IHtcbiAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBjb2RlIHRleHQgZGF0YSBoYW5kbGVyIHRvIHVuZXNjYXBlIGVzY2FwZWQgcGlwZXMgd2hlblxuICAgICAgLy8gdGhleSBhcmUgaW4gdGFibGVzLlxuICAgICAgY29kZVRleHREYXRhKHRva2VuKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pXG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0RGF0YSgndGFibGVBbGlnbicpKSB7XG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXFxcKFtcXFxcfF0pL2csIHJlcGxhY2UpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJhdyh0aGlzLmVuY29kZSh2YWx1ZSkpXG4gICAgICB9LFxuICAgICAgdGFibGUoKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YSgndGFibGVBbGlnbicpXG4gICAgICAgIC8vIE5vdGU6IHdlIGRvbuKAmXQgc2V0IGBzbHVycEFsbExpbmVFbmRpbmdzYCBhbnltb3JlLCBpbiBkZWxpbWl0ZXIgcm93cyxcbiAgICAgICAgLy8gYnV0IHdlIGRvIG5lZWQgdG8gcmVzZXQgaXQgdG8gbWF0Y2ggYSBmdW5reSBuZXdsaW5lIEdIIGdlbmVyYXRlcyBmb3JcbiAgICAgICAgLy8gbGlzdCBpdGVtcyBjb21iaW5lZCB3aXRoIHRhYmxlcy5cbiAgICAgICAgdGhpcy5zZXREYXRhKCdzbHVycEFsbExpbmVFbmRpbmdzJylcbiAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKVxuICAgICAgICB0aGlzLnRhZygnPC90YWJsZT4nKVxuICAgICAgfSxcbiAgICAgIHRhYmxlQm9keSgpIHtcbiAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKVxuICAgICAgICB0aGlzLnRhZygnPC90Ym9keT4nKVxuICAgICAgfSxcbiAgICAgIHRhYmxlRGF0YSgpIHtcbiAgICAgICAgY29uc3QgdGFibGVBbGlnbiA9IHRoaXMuZ2V0RGF0YSgndGFibGVBbGlnbicpXG4gICAgICAgIGNvbnN0IHRhYmxlQ29sdW1uID0gdGhpcy5nZXREYXRhKCd0YWJsZUNvbHVtbicpXG4gICAgICAgIGFzc2VydCh0YWJsZUFsaWduLCAnZXhwZWN0ZWQgYHRhYmxlQWxpZ25gJylcbiAgICAgICAgYXNzZXJ0KHR5cGVvZiB0YWJsZUNvbHVtbiA9PT0gJ251bWJlcicsICdleHBlY3RlZCBgdGFibGVDb2x1bW5gJylcblxuICAgICAgICBpZiAodGFibGVDb2x1bW4gaW4gdGFibGVBbGlnbikge1xuICAgICAgICAgIHRoaXMudGFnKCc8L3RkPicpXG4gICAgICAgICAgdGhpcy5zZXREYXRhKCd0YWJsZUNvbHVtbicsIHRhYmxlQ29sdW1uICsgMSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBTdG9wIGNhcHR1cmluZy5cbiAgICAgICAgICB0aGlzLnJlc3VtZSgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0YWJsZUhlYWQoKSB7XG4gICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKClcbiAgICAgICAgdGhpcy50YWcoJzwvdGhlYWQ+JylcbiAgICAgIH0sXG4gICAgICB0YWJsZUhlYWRlcigpIHtcbiAgICAgICAgY29uc3QgdGFibGVDb2x1bW4gPSB0aGlzLmdldERhdGEoJ3RhYmxlQ29sdW1uJylcbiAgICAgICAgYXNzZXJ0KHR5cGVvZiB0YWJsZUNvbHVtbiA9PT0gJ251bWJlcicsICdleHBlY3RlZCBgdGFibGVDb2x1bW5gJylcbiAgICAgICAgdGhpcy50YWcoJzwvdGg+JylcbiAgICAgICAgdGhpcy5zZXREYXRhKCd0YWJsZUNvbHVtbicsIHRhYmxlQ29sdW1uICsgMSlcbiAgICAgIH0sXG4gICAgICB0YWJsZVJvdygpIHtcbiAgICAgICAgY29uc3QgdGFibGVBbGlnbiA9IHRoaXMuZ2V0RGF0YSgndGFibGVBbGlnbicpXG4gICAgICAgIGxldCB0YWJsZUNvbHVtbiA9IHRoaXMuZ2V0RGF0YSgndGFibGVDb2x1bW4nKVxuICAgICAgICBhc3NlcnQodGFibGVBbGlnbiwgJ2V4cGVjdGVkIGB0YWJsZUFsaWduYCcpXG4gICAgICAgIGFzc2VydCh0eXBlb2YgdGFibGVDb2x1bW4gPT09ICdudW1iZXInLCAnZXhwZWN0ZWQgYHRhYmxlQ29sdW1uYCcpXG5cbiAgICAgICAgd2hpbGUgKHRhYmxlQ29sdW1uIDwgdGFibGVBbGlnbi5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgICAgdGhpcy50YWcoJzx0ZCcgKyBhbGlnbm1lbnRbdGFibGVBbGlnblt0YWJsZUNvbHVtbl1dICsgJz48L3RkPicpXG4gICAgICAgICAgdGFibGVDb2x1bW4rK1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXREYXRhKCd0YWJsZUNvbHVtbicsIHRhYmxlQ29sdW1uKVxuICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgIHRoaXMudGFnKCc8L3RyPicpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcGFyYW0ge3N0cmluZ30gJDFcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHJlcGxhY2UoJDAsICQxKSB7XG4gIC8vIFBpcGVzIHdvcmssIGJhY2tzbGFzaGVzIGRvbuKAmXQgKGJ1dCBjYW7igJl0IGVzY2FwZSBwaXBlcykuXG4gIHJldHVybiAkMSA9PT0gJ3wnID8gJDEgOiAkMFxufVxuIl0sIm5hbWVzIjpbIm9rIiwiYXNzZXJ0IiwiYWxpZ25tZW50Iiwibm9uZSIsImxlZnQiLCJyaWdodCIsImNlbnRlciIsImdmbVRhYmxlSHRtbCIsImVudGVyIiwidGFibGUiLCJ0b2tlbiIsInRhYmxlQWxpZ24iLCJfYWxpZ24iLCJsaW5lRW5kaW5nSWZOZWVkZWQiLCJ0YWciLCJzZXREYXRhIiwidGFibGVCb2R5IiwidGFibGVEYXRhIiwiZ2V0RGF0YSIsInRhYmxlQ29sdW1uIiwiYWxpZ24iLCJ1bmRlZmluZWQiLCJidWZmZXIiLCJ0YWJsZUhlYWQiLCJ0YWJsZUhlYWRlciIsInRhYmxlUm93IiwiZXhpdCIsImNvZGVUZXh0RGF0YSIsInZhbHVlIiwic2xpY2VTZXJpYWxpemUiLCJyZXBsYWNlIiwicmF3IiwiZW5jb2RlIiwicmVzdW1lIiwibGVuZ3RoIiwiJDAiLCIkMSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/infer.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-table/dev/lib/infer.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmTableAlign: () => (/* binding */ gfmTableAlign)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Event} Event\n */ /**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */ \n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly<Array<Event>>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array<Align>}\n * List of aligns.\n */ function gfmTableAlign(events, index) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(events[index][1].type === \"table\", \"expected table\");\n let inDelimiterRow = false;\n /** @type {Array<Align>} */ const align = [];\n while(index < events.length){\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === \"tableContent\") {\n align.push(events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\");\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhYmxlL2Rldi9saWIvaW5mZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Q0FFQyxHQUVEOztDQUVDLEdBRWtDO0FBRW5DOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNFLGNBQWNDLE1BQU0sRUFBRUMsS0FBSztJQUN6Q0gsMENBQU1BLENBQUNFLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLFNBQVM7SUFDMUMsSUFBSUMsaUJBQWlCO0lBQ3JCLHlCQUF5QixHQUN6QixNQUFNQyxRQUFRLEVBQUU7SUFFaEIsTUFBT0gsUUFBUUQsT0FBT0ssTUFBTSxDQUFFO1FBQzVCLE1BQU1DLFFBQVFOLE1BQU0sQ0FBQ0MsTUFBTTtRQUUzQixJQUFJRSxnQkFBZ0I7WUFDbEIsSUFBSUcsS0FBSyxDQUFDLEVBQUUsS0FBSyxTQUFTO2dCQUN4Qiw4Q0FBOEM7Z0JBQzlDLHVEQUF1RDtnQkFDdkQsSUFBSUEsS0FBSyxDQUFDLEVBQUUsQ0FBQ0osSUFBSSxLQUFLLGdCQUFnQjtvQkFDcENFLE1BQU1HLElBQUksQ0FDUlAsTUFBTSxDQUFDQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUNDLElBQUksS0FBSyx5QkFDMUIsU0FDQTtnQkFFUjtZQUNGLE9BSUssSUFBSUksS0FBSyxDQUFDLEVBQUUsQ0FBQ0osSUFBSSxLQUFLLGdCQUFnQjtnQkFDekMsSUFBSUYsTUFBTSxDQUFDQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUNDLElBQUksS0FBSyx3QkFBd0I7b0JBQ3hELE1BQU1NLGFBQWFKLE1BQU1DLE1BQU0sR0FBRztvQkFFbENELEtBQUssQ0FBQ0ksV0FBVyxHQUFHSixLQUFLLENBQUNJLFdBQVcsS0FBSyxTQUFTLFdBQVc7Z0JBQ2hFO1lBQ0YsT0FFSyxJQUFJRixLQUFLLENBQUMsRUFBRSxDQUFDSixJQUFJLEtBQUsscUJBQXFCO2dCQUM5QztZQUNGO1FBQ0YsT0FBTyxJQUFJSSxLQUFLLENBQUMsRUFBRSxLQUFLLFdBQVdBLEtBQUssQ0FBQyxFQUFFLENBQUNKLElBQUksS0FBSyxxQkFBcUI7WUFDeEVDLGlCQUFpQjtRQUNuQjtRQUVBRixTQUFTO0lBQ1g7SUFFQSxPQUFPRztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFibGUvZGV2L2xpYi9pbmZlci5qcz84YjBiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FdmVudH0gRXZlbnRcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsnY2VudGVyJyB8ICdsZWZ0JyB8ICdub25lJyB8ICdyaWdodCd9IEFsaWduXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcblxuLyoqXG4gKiBGaWd1cmUgb3V0IHRoZSBhbGlnbm1lbnQgb2YgYSBHRk0gdGFibGUuXG4gKlxuICogQHBhcmFtIHtSZWFkb25seTxBcnJheTxFdmVudD4+fSBldmVudHNcbiAqICAgTGlzdCBvZiBldmVudHMuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqICAgVGFibGUgZW50ZXIgZXZlbnQuXG4gKiBAcmV0dXJucyB7QXJyYXk8QWxpZ24+fVxuICogICBMaXN0IG9mIGFsaWducy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRhYmxlQWxpZ24oZXZlbnRzLCBpbmRleCkge1xuICBhc3NlcnQoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSAndGFibGUnLCAnZXhwZWN0ZWQgdGFibGUnKVxuICBsZXQgaW5EZWxpbWl0ZXJSb3cgPSBmYWxzZVxuICAvKiogQHR5cGUge0FycmF5PEFsaWduPn0gKi9cbiAgY29uc3QgYWxpZ24gPSBbXVxuXG4gIHdoaWxlIChpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICBjb25zdCBldmVudCA9IGV2ZW50c1tpbmRleF1cblxuICAgIGlmIChpbkRlbGltaXRlclJvdykge1xuICAgICAgaWYgKGV2ZW50WzBdID09PSAnZW50ZXInKSB7XG4gICAgICAgIC8vIFN0YXJ0IG9mIGFsaWdubWVudCB2YWx1ZTogc2V0IGEgbmV3IGNvbHVtbi5cbiAgICAgICAgLy8gVG8gZG86IGBtYXJrZG93bi1yc2AgdXNlcyBgdGFibGVEZWxpbWl0ZXJDZWxsVmFsdWVgLlxuICAgICAgICBpZiAoZXZlbnRbMV0udHlwZSA9PT0gJ3RhYmxlQ29udGVudCcpIHtcbiAgICAgICAgICBhbGlnbi5wdXNoKFxuICAgICAgICAgICAgZXZlbnRzW2luZGV4ICsgMV1bMV0udHlwZSA9PT0gJ3RhYmxlRGVsaW1pdGVyTWFya2VyJ1xuICAgICAgICAgICAgICA/ICdsZWZ0J1xuICAgICAgICAgICAgICA6ICdub25lJ1xuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRXhpdHM6XG4gICAgICAvLyBFbmQgb2YgYWxpZ25tZW50IHZhbHVlOiBjaGFuZ2UgdGhlIGNvbHVtbi5cbiAgICAgIC8vIFRvIGRvOiBgbWFya2Rvd24tcnNgIHVzZXMgYHRhYmxlRGVsaW1pdGVyQ2VsbFZhbHVlYC5cbiAgICAgIGVsc2UgaWYgKGV2ZW50WzFdLnR5cGUgPT09ICd0YWJsZUNvbnRlbnQnKSB7XG4gICAgICAgIGlmIChldmVudHNbaW5kZXggLSAxXVsxXS50eXBlID09PSAndGFibGVEZWxpbWl0ZXJNYXJrZXInKSB7XG4gICAgICAgICAgY29uc3QgYWxpZ25JbmRleCA9IGFsaWduLmxlbmd0aCAtIDFcblxuICAgICAgICAgIGFsaWduW2FsaWduSW5kZXhdID0gYWxpZ25bYWxpZ25JbmRleF0gPT09ICdsZWZ0JyA/ICdjZW50ZXInIDogJ3JpZ2h0J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBEb25lIVxuICAgICAgZWxzZSBpZiAoZXZlbnRbMV0udHlwZSA9PT0gJ3RhYmxlRGVsaW1pdGVyUm93Jykge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXZlbnRbMF0gPT09ICdlbnRlcicgJiYgZXZlbnRbMV0udHlwZSA9PT0gJ3RhYmxlRGVsaW1pdGVyUm93Jykge1xuICAgICAgaW5EZWxpbWl0ZXJSb3cgPSB0cnVlXG4gICAgfVxuXG4gICAgaW5kZXggKz0gMVxuICB9XG5cbiAgcmV0dXJuIGFsaWduXG59XG4iXSwibmFtZXMiOlsib2siLCJhc3NlcnQiLCJnZm1UYWJsZUFsaWduIiwiZXZlbnRzIiwiaW5kZXgiLCJ0eXBlIiwiaW5EZWxpbWl0ZXJSb3ciLCJhbGlnbiIsImxlbmd0aCIsImV2ZW50IiwicHVzaCIsImFsaWduSW5kZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/infer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/syntax.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-table/dev/lib/syntax.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmTable: () => (/* binding */ gfmTable)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var _edit_map_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./edit-map.js */ \"(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js\");\n/* harmony import */ var _infer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./infer.js */ \"(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/infer.js\");\n/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ /**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */ \n\n\n\n\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */ function gfmTable() {\n return {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeTable(effects, ok, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n /** @type {boolean | undefined} */ let seen;\n return start;\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */ function start(code) {\n let index = self.events.length - 1;\n while(index > -1){\n const type = self.events[index][1].type;\n if (type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.linePrefix) index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n return next(code);\n }\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */ function headRowBefore(code) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code);\n }\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */ function headRowStart(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar) {\n return headRowBreak(code);\n }\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n seen = true;\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1;\n return headRowBreak(code);\n }\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */ function headRowBreak(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0;\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding);\n return headDelimiterStart;\n }\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownSpace)(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, headRowBreak, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n // Header cell count.\n size += 1;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code);\n effects.exit(\"tableCellDivider\");\n // Whether a delimiter was seen.\n seen = true;\n return headRowBreak;\n }\n // Anything else is cell data.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.data);\n return headRowData(code);\n }\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */ function headRowData(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEndingOrSpace)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.data);\n return headRowBreak(code);\n }\n effects.consume(code);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? headRowEscape : headRowData;\n }\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */ function headRowEscape(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.backslash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar) {\n effects.consume(code);\n return headRowData;\n }\n return headRowData(code);\n }\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */ function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false;\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n effects.enter(\"tableDelimiterRow\");\n // Track if we’ve seen a `:` or `|`.\n seen = false;\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownSpace)(code)) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(self.parser.constructs.disable.null, \"expected `disabled.null`\");\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, headDelimiterBefore, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.linePrefix, self.parser.constructs.disable.null.includes(\"codeIndented\") ? undefined : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize)(code);\n }\n return headDelimiterBefore(code);\n }\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */ function headDelimiterBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {\n return headDelimiterValueBefore(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar) {\n seen = true;\n // If we start with a pipe, we open a cell marker.\n effects.enter(\"tableCellDivider\");\n effects.consume(code);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code);\n }\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */ function headDelimiterCellBefore(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownSpace)(code)) {\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, headDelimiterValueBefore, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code);\n }\n return headDelimiterValueBefore(code);\n }\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */ function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n // Align: none.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {\n sizeB += 1;\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {\n return headDelimiterCellAfter(code);\n }\n return headDelimiterNok(code);\n }\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */ function headDelimiterLeftAlignmentAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code);\n }\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code);\n }\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */ function headDelimiterFiller(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {\n effects.consume(code);\n return headDelimiterFiller;\n }\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code);\n }\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */ function headDelimiterRightAlignmentAfter(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownSpace)(code)) {\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, headDelimiterCellAfter, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code);\n }\n return headDelimiterCellAfter(code);\n }\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */ function headDelimiterCellAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar) {\n return headDelimiterBefore(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code);\n }\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code);\n }\n return headDelimiterNok(code);\n }\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */ function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */ function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter(\"tableRow\");\n return bodyRowBreak(code);\n }\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */ function bodyRowBreak(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {\n effects.exit(\"tableRow\");\n return ok(code);\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownSpace)(code)) {\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, bodyRowBreak, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code);\n }\n // Anything else is cell content.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.data);\n return bodyRowData(code);\n }\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */ function bodyRowData(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEndingOrSpace)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.data);\n return bodyRowBreak(code);\n }\n effects.consume(code);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? bodyRowEscape : bodyRowData;\n }\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */ function bodyRowEscape(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.backslash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.verticalBar) {\n effects.consume(code);\n return bodyRowData;\n }\n return bodyRowData(code);\n }\n}\n/** @type {Resolver} */ function resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n /** @type {RowKind} */ let rowKind = 0;\n /** @type {Range} */ let lastCell = [\n 0,\n 0,\n 0,\n 0\n ];\n /** @type {Range} */ let cell = [\n 0,\n 0,\n 0,\n 0\n ];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n /** @type {Token | undefined} */ let currentTable;\n /** @type {Token | undefined} */ let currentBody;\n /** @type {Token | undefined} */ let currentCell;\n const map = new _edit_map_js__WEBPACK_IMPORTED_MODULE_6__.EditMap();\n while(++index < events.length){\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n // Start of head.\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(currentTable, \"there should be a table opening\");\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = undefined;\n lastTableEnd = 0;\n }\n // Inject table start.\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [\n [\n \"enter\",\n currentTable,\n context\n ]\n ]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = undefined;\n lastCell = [\n 0,\n 0,\n 0,\n 0\n ];\n cell = [\n 0,\n index + 1,\n 0,\n 0\n ];\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [\n [\n \"enter\",\n currentBody,\n context\n ]\n ]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.data || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n lastCell = [\n 0,\n 0,\n 0,\n 0\n ];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n }\n lastCell = cell;\n cell = [\n lastCell[1],\n index,\n 0,\n 0\n ];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.data || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(currentTable, \"expected table opening\");\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1;\n while(++index < context.events.length){\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = (0,_infer_js__WEBPACK_IMPORTED_MODULE_7__.gfmTableAlign)(context.events, index);\n }\n }\n return events;\n}\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly<TokenizeContext>} context\n * @param {Readonly<Range>} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */ // eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = \"tableContent\";\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(previousCell, \"expected previous cell enter\");\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [\n [\n \"exit\",\n previousCell,\n context\n ]\n ]);\n }\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [\n [\n \"enter\",\n previousCell,\n context\n ]\n ]);\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n /** @type {Token} */ const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [\n [\n \"enter\",\n valueToken,\n context\n ]\n ]);\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(range[3] !== 0);\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.chunkText;\n start[1].contentType = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeText;\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [\n [\n \"exit\",\n valueToken,\n context\n ]\n ]);\n }\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [\n [\n \"exit\",\n previousCell,\n context\n ]\n ]);\n previousCell = undefined;\n }\n return previousCell;\n}\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly<EditMap>} map\n * @param {Readonly<TokenizeContext>} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */ // eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array<Event>} */ const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\n \"exit\",\n tableBody,\n context\n ]);\n }\n table.end = Object.assign({}, related);\n exits.push([\n \"exit\",\n table,\n context\n ]);\n map.add(index + 1, 0, exits);\n}\n/**\n * @param {Readonly<Array<Event>>} events\n * @param {number} index\n * @returns {Readonly<Point>}\n */ function getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhYmxlL2Rldi9saWIvc3ludGF4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Q0FTQyxHQUVEOzs7Ozs7Q0FNQyxHQUVrQztBQUNpQjtBQUtuQjtBQUM0QjtBQUN4QjtBQUNHO0FBRXhDOzs7Ozs7Q0FNQyxHQUNNLFNBQVNXO0lBQ2QsT0FBTztRQUNMQyxNQUFNO1lBQUNDLE1BQU07Z0JBQUNDLFVBQVVDO2dCQUFlQyxZQUFZQztZQUFZO1FBQUM7SUFDbEU7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNGLGNBQWNHLE9BQU8sRUFBRWxCLEVBQUUsRUFBRW1CLEdBQUc7SUFDckMsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLElBQUlDLE9BQU87SUFDWCxJQUFJQyxRQUFRO0lBQ1osZ0NBQWdDLEdBQ2hDLElBQUlDO0lBRUosT0FBT0M7SUFFUDs7Ozs7Ozs7Ozs7Ozs7O0dBZUMsR0FDRCxTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCLElBQUlDLFFBQVFOLEtBQUtPLE1BQU0sQ0FBQ0MsTUFBTSxHQUFHO1FBRWpDLE1BQU9GLFFBQVEsQ0FBQyxFQUFHO1lBQ2pCLE1BQU1HLE9BQU9ULEtBQUtPLE1BQU0sQ0FBQ0QsTUFBTSxDQUFDLEVBQUUsQ0FBQ0csSUFBSTtZQUN2QyxJQUNFQSxTQUFTckIsd0RBQUtBLENBQUNzQixVQUFVLElBQ3pCLDhEQUE4RDtZQUM5REQsU0FBU3JCLHdEQUFLQSxDQUFDdUIsVUFBVSxFQUV6Qkw7aUJBQ0c7UUFDUDtRQUVBLE1BQU1NLE9BQU9OLFFBQVEsQ0FBQyxJQUFJTixLQUFLTyxNQUFNLENBQUNELE1BQU0sQ0FBQyxFQUFFLENBQUNHLElBQUksR0FBRztRQUV2RCxNQUFNSSxPQUNKRCxTQUFTLGVBQWVBLFNBQVMsYUFBYUUsZUFBZUM7UUFFL0QsOEJBQThCO1FBQzlCLElBQUlGLFNBQVNDLGdCQUFnQmQsS0FBS2dCLE1BQU0s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R0YsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR3NCO0lBQzlCRCxNQUFNRSxJQUFJLENBQUM7UUFBQztRQUFRSjtRQUFPbEM7S0FBUTtJQUVuQ1UsSUFBSU8sR0FBRyxDQUFDL0QsUUFBUSxHQUFHLEdBQUdrRjtBQUN4QjtBQUVBOzs7O0NBSUMsR0FDRCxTQUFTWCxTQUFTdEUsTUFBTSxFQUFFRCxLQUFLO0lBQzdCLE1BQU15RCxRQUFReEQsTUFBTSxDQUFDRCxNQUFNO0lBQzNCLE1BQU1xRixPQUFPNUIsS0FBSyxDQUFDLEVBQUUsS0FBSyxVQUFVLFVBQVU7SUFDOUMsT0FBT0EsS0FBSyxDQUFDLEVBQUUsQ0FBQzRCLEtBQUs7QUFDdkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZS9kZXYvbGliL3N5bnRheC5qcz9hNjhjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FdmVudH0gRXZlbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXh0ZW5zaW9ufSBFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlJlc29sdmVyfSBSZXNvbHZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW59IFRva2VuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7W251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl19IFJhbmdlXG4gKiAgIENlbGwgaW5mby5cbiAqXG4gKiBAdHlwZWRlZiB7MCB8IDEgfCAyIHwgM30gUm93S2luZFxuICogICBXaGVyZSB3ZSBhcmU6IGAxYCBmb3IgaGVhZCByb3csIGAyYCBmb3IgZGVsaW1pdGVyIHJvdywgYDNgIGZvciBib2R5IHJvdy5cbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHtcbiAgbWFya2Rvd25MaW5lRW5kaW5nLFxuICBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlLFxuICBtYXJrZG93blNwYWNlXG59IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7RWRpdE1hcH0gZnJvbSAnLi9lZGl0LW1hcC5qcydcbmltcG9ydCB7Z2ZtVGFibGVBbGlnbn0gZnJvbSAnLi9pbmZlci5qcydcblxuLyoqXG4gKiBDcmVhdGUgYW4gSFRNTCBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIHN1cHBvcnQgR2l0SHViIHRhYmxlcyBzeW50YXguXG4gKlxuICogQHJldHVybnMge0V4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGV4dGVuc2lvbnNgIHRvIGVuYWJsZSBHRk1cbiAqICAgdGFibGUgc3ludGF4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtVGFibGUoKSB7XG4gIHJldHVybiB7XG4gICAgZmxvdzoge251bGw6IHt0b2tlbml6ZTogdG9rZW5pemVUYWJsZSwgcmVzb2x2ZUFsbDogcmVzb2x2ZVRhYmxlfX1cbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVRhYmxlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgbGV0IHNpemUgPSAwXG4gIGxldCBzaXplQiA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgc2VlblxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBhIEdGTSB0YWJsZS5cbiAgICpcbiAgICogSWYgdGhlcmUgaXMgYSB2YWxpZCB0YWJsZSByb3cgb3IgdGFibGUgaGVhZCBiZWZvcmUsIHRoZW4gd2UgdHJ5IHRvIHBhcnNlXG4gICAqIGFub3RoZXIgcm93LlxuICAgKiBPdGhlcndpc2UsIHdlIHRyeSB0byBwYXJzZSBhIGhlYWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB8IGEgfFxuICAgKiAgICAgXlxuICAgKiAgIHwgfCAtIHxcbiAgICogPiB8IHwgYiB8XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgbGV0IGluZGV4ID0gc2VsZi5ldmVudHMubGVuZ3RoIC0gMVxuXG4gICAgd2hpbGUgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZVxuICAgICAgaWYgKFxuICAgICAgICB0eXBlID09PSB0eXBlcy5saW5lRW5kaW5nIHx8XG4gICAgICAgIC8vIE5vdGU6IG1hcmtkb3duLXJzIHVzZXMgYHdoaXRlc3BhY2VgIGluc3RlYWQgb2YgYGxpbmVQcmVmaXhgXG4gICAgICAgIHR5cGUgPT09IHR5cGVzLmxpbmVQcmVmaXhcbiAgICAgIClcbiAgICAgICAgaW5kZXgtLVxuICAgICAgZWxzZSBicmVha1xuICAgIH1cblxuICAgIGNvbnN0IHRhaWwgPSBpbmRleCA+IC0xID8gc2VsZi5ldmVudHNbaW5kZXhdWzFdLnR5cGUgOiBudWxsXG5cbiAgICBjb25zdCBuZXh0ID1cbiAgICAgIHRhaWwgPT09ICd0YWJsZUhlYWQnIHx8IHRhaWwgPT09ICd0YWJsZVJvdycgPyBib2R5Um93U3RhcnQgOiBoZWFkUm93QmVmb3JlXG5cbiAgICAvLyBEb27igJl0IGFsbG93IGxhenkgYm9keSByb3dzLlxuICAgIGlmIChuZXh0ID09PSBib2R5Um93U3RhcnQgJiYgc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgdGFibGUgaGVhZCByb3cuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB8IGEgfFxuICAgKiAgICAgXlxuICAgKiAgIHwgfCAtIHxcbiAgICogICB8IHwgYiB8XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBoZWFkUm93QmVmb3JlKGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCd0YWJsZUhlYWQnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ3RhYmxlUm93JylcbiAgICByZXR1cm4gaGVhZFJvd1N0YXJ0KGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQmVmb3JlIHRhYmxlIGhlYWQgcm93LCBhZnRlciB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfCBhIHxcbiAgICogICAgIF5cbiAgICogICB8IHwgLSB8XG4gICAqICAgfCB8IGIgfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZFJvd1N0YXJ0KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMudmVydGljYWxCYXIpIHtcbiAgICAgIHJldHVybiBoZWFkUm93QnJlYWsoY29kZSlcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogbWljcm9tYXJrLWpzIHNob3VsZCBsZXQgdXMgcGFyc2Ugb3VyIG93biB3aGl0ZXNwYWNlIGluIGV4dGVuc2lvbnMsXG4gICAgLy8gbGlrZSBgbWFya2Rvd24tcnNgOlxuICAgIC8vXG4gICAgLy8gYGBganNcbiAgICAvLyAvLyA0KyBzcGFjZXMuXG4gICAgLy8gaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAvLyAgIHJldHVybiBub2soY29kZSlcbiAgICAvLyB9XG4gICAgLy8gYGBgXG5cbiAgICBzZWVuID0gdHJ1ZVxuICAgIC8vIENvdW50IHRoZSBmaXJzdCBjaGFyYWN0ZXIsIHRoYXQgaXNu4oCZdCBhIHBpcGUsIGRvdWJsZS5cbiAgICBzaXplQiArPSAxXG4gICAgcmV0dXJuIGhlYWRSb3dCcmVhayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGJyZWFrIGluIHRhYmxlIGhlYWQgcm93LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfCBhIHxcbiAgICogICAgIF5cbiAgICogICAgICAgXlxuICAgKiAgICAgICAgIF5cbiAgICogICB8IHwgLSB8XG4gICAqICAgfCB8IGIgfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZFJvd0JyZWFrKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICAvLyBOb3RlOiBpbiBgbWFya2Rvd24tcnNgLCB3ZSBuZWVkIHRvIHJlc2V0LCBpbiBgbWljcm9tYXJrLWpzYCB3ZSBkb27igJh0LlxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIC8vIElmIGFueXRoaW5nIG90aGVyIHRoYW4gb25lIHBpcGUgKGlnbm9yaW5nIHdoaXRlc3BhY2UpIHdhcyB1c2VkLCBpdOKAmXMgZmluZS5cbiAgICAgIGlmIChzaXplQiA+IDEpIHtcbiAgICAgICAgc2l6ZUIgPSAwXG4gICAgICAgIC8vIFRvIGRvOiBjaGVjayBpZiB0aGlzIHdvcmtzLlxuICAgICAgICAvLyBGZWVsIGZyZWUgdG8gaW50ZXJydXB0OlxuICAgICAgICBzZWxmLmludGVycnVwdCA9IHRydWVcbiAgICAgICAgZWZmZWN0cy5leGl0KCd0YWJsZVJvdycpXG4gICAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5saW5lRW5kaW5nKVxuICAgICAgICByZXR1cm4gaGVhZERlbGltaXRlclN0YXJ0XG4gICAgICB9XG5cbiAgICAgIC8vIE5vdGU6IGluIGBtYXJrZG93bi1yc2AsIHdlIG5lZWQgdG8gcmVzZXQsIGluIGBtaWNyb21hcmstanNgIHdlIGRvbuKAmHQuXG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIC8vIFRvIGRvOiBjaGVjayBpZiB0aGlzIGlzIGZpbmUuXG4gICAgICAvLyBlZmZlY3RzLmF0dGVtcHQoU3RhdGU6Ok5leHQoU3RhdGVOYW1lOjpHZm1UYWJsZUhlYWRSb3dCcmVhayksIFN0YXRlOjpOb2spXG4gICAgICAvLyBTdGF0ZTo6UmV0cnkoc3BhY2Vfb3JfdGFiKHRva2VuaXplcikpXG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGhlYWRSb3dCcmVhaywgdHlwZXMud2hpdGVzcGFjZSkoY29kZSlcbiAgICB9XG5cbiAgICBzaXplQiArPSAxXG5cbiAgICBpZiAoc2Vlbikge1xuICAgICAgc2VlbiA9IGZhbHNlXG4gICAgICAvLyBIZWFkZXIgY2VsbCBjb3VudC5cbiAgICAgIHNpemUgKz0gMVxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy52ZXJ0aWNhbEJhcikge1xuICAgICAgZWZmZWN0cy5lbnRlcigndGFibGVDZWxsRGl2aWRlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgndGFibGVDZWxsRGl2aWRlcicpXG4gICAgICAvLyBXaGV0aGVyIGEgZGVsaW1pdGVyIHdhcyBzZWVuLlxuICAgICAgc2VlbiA9IHRydWVcbiAgICAgIHJldHVybiBoZWFkUm93QnJlYWtcbiAgICB9XG5cbiAgICAvLyBBbnl0aGluZyBlbHNlIGlzIGNlbGwgZGF0YS5cbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmRhdGEpXG4gICAgcmV0dXJuIGhlYWRSb3dEYXRhKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gdGFibGUgaGVhZCByb3cgZGF0YS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IHwgYSB8XG4gICAqICAgICAgIF5cbiAgICogICB8IHwgLSB8XG4gICAqICAgfCB8IGIgfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZFJvd0RhdGEoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMudmVydGljYWxCYXIgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5kYXRhKVxuICAgICAgcmV0dXJuIGhlYWRSb3dCcmVhayhjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggPyBoZWFkUm93RXNjYXBlIDogaGVhZFJvd0RhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0YWJsZSBoZWFkIHJvdyBlc2NhcGUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB8IGFcXC1iIHxcbiAgICogICAgICAgICBeXG4gICAqICAgfCB8IC0tLS0gfFxuICAgKiAgIHwgfCBjICAgIHxcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWRSb3dFc2NhcGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggfHwgY29kZSA9PT0gY29kZXMudmVydGljYWxCYXIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGhlYWRSb3dEYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIGhlYWRSb3dEYXRhKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQmVmb3JlIGRlbGltaXRlciByb3cuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB8IGEgfFxuICAgKiA+IHwgfCAtIHxcbiAgICogICAgIF5cbiAgICogICB8IHwgYiB8XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBoZWFkRGVsaW1pdGVyU3RhcnQoY29kZSkge1xuICAgIC8vIFJlc2V0IGBpbnRlcnJ1cHRgLlxuICAgIHNlbGYuaW50ZXJydXB0ID0gZmFsc2VcblxuICAgIC8vIE5vdGU6IGluIGBtYXJrZG93bi1yc2AsIHdlIG5lZWQgdG8gaGFuZGxlIHBpZXJjaW5nIGhlcmUgdG9vLlxuICAgIGlmIChzZWxmLnBhcnNlci5sYXp5W3NlbGYubm93KCkubGluZV0pIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmVudGVyKCd0YWJsZURlbGltaXRlclJvdycpXG4gICAgLy8gVHJhY2sgaWYgd2XigJl2ZSBzZWVuIGEgYDpgIG9yIGB8YC5cbiAgICBzZWVuID0gZmFsc2VcblxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBhc3NlcnQoc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwsICdleHBlY3RlZCBgZGlzYWJsZWQubnVsbGAnKVxuICAgICAgcmV0dXJuIGZhY3RvcnlTcGFjZShcbiAgICAgICAgZWZmZWN0cyxcbiAgICAgICAgaGVhZERlbGltaXRlckJlZm9yZSxcbiAgICAgICAgdHlwZXMubGluZVByZWZpeCxcbiAgICAgICAgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IGNvbnN0YW50cy50YWJTaXplXG4gICAgICApKGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJCZWZvcmUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgZGVsaW1pdGVyIHJvdywgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogUmV1c2VkIHdoZW4gYSBgfGAgaXMgZm91bmQgbGF0ZXIsIHRvIHBhcnNlIGFub3RoZXIgY2VsbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgYSB8XG4gICAqID4gfCB8IC0gfFxuICAgKiAgICAgXlxuICAgKiAgIHwgfCBiIHxcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWREZWxpbWl0ZXJCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5kYXNoIHx8IGNvZGUgPT09IGNvZGVzLmNvbG9uKSB7XG4gICAgICByZXR1cm4gaGVhZERlbGltaXRlclZhbHVlQmVmb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnZlcnRpY2FsQmFyKSB7XG4gICAgICBzZWVuID0gdHJ1ZVxuICAgICAgLy8gSWYgd2Ugc3RhcnQgd2l0aCBhIHBpcGUsIHdlIG9wZW4gYSBjZWxsIG1hcmtlci5cbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3RhYmxlQ2VsbERpdmlkZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlQ2VsbERpdmlkZXInKVxuICAgICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJDZWxsQmVmb3JlXG4gICAgfVxuXG4gICAgLy8gTW9yZSB3aGl0ZXNwYWNlIC8gZW1wdHkgcm93IG5vdCBhbGxvd2VkIGF0IHN0YXJ0LlxuICAgIHJldHVybiBoZWFkRGVsaW1pdGVyTm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYHxgLCBiZWZvcmUgZGVsaW1pdGVyIGNlbGwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB8IGEgfFxuICAgKiA+IHwgfCAtIHxcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBoZWFkRGVsaW1pdGVyQ2VsbEJlZm9yZShjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgICAgIGVmZmVjdHMsXG4gICAgICAgIGhlYWREZWxpbWl0ZXJWYWx1ZUJlZm9yZSxcbiAgICAgICAgdHlwZXMud2hpdGVzcGFjZVxuICAgICAgKShjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiBoZWFkRGVsaW1pdGVyVmFsdWVCZWZvcmUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgZGVsaW1pdGVyIGNlbGwgdmFsdWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB8IGEgfFxuICAgKiA+IHwgfCAtIHxcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZERlbGltaXRlclZhbHVlQmVmb3JlKGNvZGUpIHtcbiAgICAvLyBBbGlnbjogbGVmdC5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuY29sb24pIHtcbiAgICAgIHNpemVCICs9IDFcbiAgICAgIHNlZW4gPSB0cnVlXG5cbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3RhYmxlRGVsaW1pdGVyTWFya2VyJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCd0YWJsZURlbGltaXRlck1hcmtlcicpXG4gICAgICByZXR1cm4gaGVhZERlbGltaXRlckxlZnRBbGlnbm1lbnRBZnRlclxuICAgIH1cblxuICAgIC8vIEFsaWduOiBub25lLlxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5kYXNoKSB7XG4gICAgICBzaXplQiArPSAxXG4gICAgICAvLyBUbyBkbzogc2VlbXMgd2VpcmQgdGhhdCB0aGlzICppc27igJl0KiBsZWZ0IGFsaWduZWQsIGJ1dCB0aGF0IHN0YXRlIGlzIHVzZWQ/XG4gICAgICByZXR1cm4gaGVhZERlbGltaXRlckxlZnRBbGlnbm1lbnRBZnRlcihjb2RlKVxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gaGVhZERlbGltaXRlckNlbGxBZnRlcihjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiBoZWFkRGVsaW1pdGVyTm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVsaW1pdGVyIGNlbGwgbGVmdCBhbGlnbm1lbnQgbWFya2VyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfCBhICB8XG4gICAqID4gfCB8IDotIHxcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWREZWxpbWl0ZXJMZWZ0QWxpZ25tZW50QWZ0ZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5kYXNoKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCd0YWJsZURlbGltaXRlckZpbGxlcicpXG4gICAgICByZXR1cm4gaGVhZERlbGltaXRlckZpbGxlcihjb2RlKVxuICAgIH1cblxuICAgIC8vIEFueXRoaW5nIGVsc2UgaXMgbm90IG9rIGFmdGVyIHRoZSBsZWZ0LWFsaWduIGNvbG9uLlxuICAgIHJldHVybiBoZWFkRGVsaW1pdGVyTm9rKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gZGVsaW1pdGVyIGNlbGwgZmlsbGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfCBhIHxcbiAgICogPiB8IHwgLSB8XG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWREZWxpbWl0ZXJGaWxsZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5kYXNoKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBoZWFkRGVsaW1pdGVyRmlsbGVyXG4gICAgfVxuXG4gICAgLy8gQWxpZ24gaXMgYGNlbnRlcmAgaWYgaXQgd2FzIGBsZWZ0YCwgYHJpZ2h0YCBvdGhlcndpc2UuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmNvbG9uKSB7XG4gICAgICBzZWVuID0gdHJ1ZVxuICAgICAgZWZmZWN0cy5leGl0KCd0YWJsZURlbGltaXRlckZpbGxlcicpXG4gICAgICBlZmZlY3RzLmVudGVyKCd0YWJsZURlbGltaXRlck1hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgndGFibGVEZWxpbWl0ZXJNYXJrZXInKVxuICAgICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJSaWdodEFsaWdubWVudEFmdGVyXG4gICAgfVxuXG4gICAgZWZmZWN0cy5leGl0KCd0YWJsZURlbGltaXRlckZpbGxlcicpXG4gICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJSaWdodEFsaWdubWVudEFmdGVyKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVsaW1pdGVyIGNlbGwgcmlnaHQgYWxpZ25tZW50IG1hcmtlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgIGEgfFxuICAgKiA+IHwgfCAtOiB8XG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZERlbGltaXRlclJpZ2h0QWxpZ25tZW50QWZ0ZXIoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKFxuICAgICAgICBlZmZlY3RzLFxuICAgICAgICBoZWFkRGVsaW1pdGVyQ2VsbEFmdGVyLFxuICAgICAgICB0eXBlcy53aGl0ZXNwYWNlXG4gICAgICApKGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJDZWxsQWZ0ZXIoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkZWxpbWl0ZXIgY2VsbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgIGEgfFxuICAgKiA+IHwgfCAtOiB8XG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWREZWxpbWl0ZXJDZWxsQWZ0ZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy52ZXJ0aWNhbEJhcikge1xuICAgICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJCZWZvcmUoY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgLy8gRXhpdCB3aGVuOlxuICAgICAgLy8gKiB0aGVyZSB3YXMgbm8gYDpgIG9yIGB8YCBhdCBhbGwgKGl04oCZcyBhIHRoZW1hdGljIGJyZWFrIG9yIHNldGV4dFxuICAgICAgLy8gICB1bmRlcmxpbmUgaW5zdGVhZClcbiAgICAgIC8vICogdGhlIGhlYWRlciBjZWxsIGNvdW50IGlzIG5vdCB0aGUgZGVsaW1pdGVyIGNlbGwgY291bnRcbiAgICAgIGlmICghc2VlbiB8fCBzaXplICE9PSBzaXplQikge1xuICAgICAgICByZXR1cm4gaGVhZERlbGltaXRlck5vayhjb2RlKVxuICAgICAgfVxuXG4gICAgICAvLyBOb3RlOiBpbiBtYXJrZG93bi1yc2AsIGEgcmVzZXQgaXMgbmVlZGVkIGhlcmUuXG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlRGVsaW1pdGVyUm93JylcbiAgICAgIGVmZmVjdHMuZXhpdCgndGFibGVIZWFkJylcbiAgICAgIC8vIFRvIGRvOiBpbiBgbWFya2Rvd24tcnNgLCByZXNvbHZlcnMgbmVlZCB0byBiZSByZWdpc3RlcmVkIG1hbnVhbGx5LlxuICAgICAgLy8gZWZmZWN0cy5yZWdpc3Rlcl9yZXNvbHZlcihSZXNvbHZlTmFtZTo6R2ZtVGFibGUpXG4gICAgICByZXR1cm4gb2soY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gaGVhZERlbGltaXRlck5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGRlbGltaXRlciByb3csIGF0IGEgZGlzYWxsb3dlZCBieXRlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfCBhIHxcbiAgICogPiB8IHwgeCB8XG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWREZWxpbWl0ZXJOb2soY29kZSkge1xuICAgIC8vIE5vdGU6IGluIGBtYXJrZG93bi1yc2AsIHdlIG5lZWQgdG8gcmVzZXQsIGluIGBtaWNyb21hcmstanNgIHdlIGRvbuKAmHQuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSB0YWJsZSBib2R5IHJvdy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgYSB8XG4gICAqICAgfCB8IC0gfFxuICAgKiA+IHwgfCBiIHxcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJvZHlSb3dTdGFydChjb2RlKSB7XG4gICAgLy8gTm90ZTogaW4gYG1hcmtkb3duLXJzYCB3ZSBuZWVkIHRvIG1hbnVhbGx5IHRha2UgY2FyZSBvZiBhIHByZWZpeCxcbiAgICAvLyBidXQgaW4gYG1pY3JvbWFyay1qc2AgdGhhdCBpcyBkb25lIGZvciB1cywgc28gaWYgd2XigJlyZSBoZXJlLCB3ZeKAmXJlXG4gICAgLy8gbmV2ZXIgYXQgd2hpdGVzcGFjZS5cbiAgICBlZmZlY3RzLmVudGVyKCd0YWJsZVJvdycpXG4gICAgcmV0dXJuIGJvZHlSb3dCcmVhayhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGJyZWFrIGluIHRhYmxlIGJvZHkgcm93LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfCBhIHxcbiAgICogICB8IHwgLSB8XG4gICAqID4gfCB8IGIgfFxuICAgKiAgICAgXlxuICAgKiAgICAgICBeXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYm9keVJvd0JyZWFrKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMudmVydGljYWxCYXIpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3RhYmxlQ2VsbERpdmlkZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlQ2VsbERpdmlkZXInKVxuICAgICAgcmV0dXJuIGJvZHlSb3dCcmVha1xuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlUm93JylcbiAgICAgIHJldHVybiBvayhjb2RlKVxuICAgIH1cblxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGJvZHlSb3dCcmVhaywgdHlwZXMud2hpdGVzcGFjZSkoY29kZSlcbiAgICB9XG5cbiAgICAvLyBBbnl0aGluZyBlbHNlIGlzIGNlbGwgY29udGVudC5cbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmRhdGEpXG4gICAgcmV0dXJuIGJvZHlSb3dEYXRhKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogSW4gdGFibGUgYm9keSByb3cgZGF0YS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgYSB8XG4gICAqICAgfCB8IC0gfFxuICAgKiA+IHwgfCBiIHxcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYm9keVJvd0RhdGEoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMudmVydGljYWxCYXIgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5kYXRhKVxuICAgICAgcmV0dXJuIGJvZHlSb3dCcmVhayhjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggPyBib2R5Um93RXNjYXBlIDogYm9keVJvd0RhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0YWJsZSBib2R5IHJvdyBlc2NhcGUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB8IGEgICAgfFxuICAgKiAgIHwgfCAtLS0tIHxcbiAgICogPiB8IHwgYlxcLWMgfFxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJvZHlSb3dFc2NhcGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggfHwgY29kZSA9PT0gY29kZXMudmVydGljYWxCYXIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGJvZHlSb3dEYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHlSb3dEYXRhKGNvZGUpXG4gIH1cbn1cblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cblxuZnVuY3Rpb24gcmVzb2x2ZVRhYmxlKGV2ZW50cywgY29udGV4dCkge1xuICBsZXQgaW5kZXggPSAtMVxuICBsZXQgaW5GaXJzdENlbGxBd2FpdGluZ1BpcGUgPSB0cnVlXG4gIC8qKiBAdHlwZSB7Um93S2luZH0gKi9cbiAgbGV0IHJvd0tpbmQgPSAwXG4gIC8qKiBAdHlwZSB7UmFuZ2V9ICovXG4gIGxldCBsYXN0Q2VsbCA9IFswLCAwLCAwLCAwXVxuICAvKiogQHR5cGUge1JhbmdlfSAqL1xuICBsZXQgY2VsbCA9IFswLCAwLCAwLCAwXVxuICBsZXQgYWZ0ZXJIZWFkQXdhaXRpbmdGaXJzdEJvZHlSb3cgPSBmYWxzZVxuICBsZXQgbGFzdFRhYmxlRW5kID0gMFxuICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY3VycmVudFRhYmxlXG4gIC8qKiBAdHlwZSB7VG9rZW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBjdXJyZW50Qm9keVxuICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY3VycmVudENlbGxcblxuICBjb25zdCBtYXAgPSBuZXcgRWRpdE1hcCgpXG5cbiAgd2hpbGUgKCsraW5kZXggPCBldmVudHMubGVuZ3RoKSB7XG4gICAgY29uc3QgZXZlbnQgPSBldmVudHNbaW5kZXhdXG4gICAgY29uc3QgdG9rZW4gPSBldmVudFsxXVxuXG4gICAgaWYgKGV2ZW50WzBdID09PSAnZW50ZXInKSB7XG4gICAgICAvLyBTdGFydCBvZiBoZWFkLlxuICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICd0YWJsZUhlYWQnKSB7XG4gICAgICAgIGFmdGVySGVhZEF3YWl0aW5nRmlyc3RCb2R5Um93ID0gZmFsc2VcblxuICAgICAgICAvLyBJbmplY3QgcHJldmlvdXMgKGJvZHkgZW5kIGFuZCkgdGFibGUgZW5kLlxuICAgICAgICBpZiAobGFzdFRhYmxlRW5kICE9PSAwKSB7XG4gICAgICAgICAgYXNzZXJ0KGN1cnJlbnRUYWJsZSwgJ3RoZXJlIHNob3VsZCBiZSBhIHRhYmxlIG9wZW5pbmcnKVxuICAgICAgICAgIGZsdXNoVGFibGVFbmQobWFwLCBjb250ZXh0LCBsYXN0VGFibGVFbmQsIGN1cnJlbnRUYWJsZSwgY3VycmVudEJvZHkpXG4gICAgICAgICAgY3VycmVudEJvZHkgPSB1bmRlZmluZWRcbiAgICAgICAgICBsYXN0VGFibGVFbmQgPSAwXG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbmplY3QgdGFibGUgc3RhcnQuXG4gICAgICAgIGN1cnJlbnRUYWJsZSA9IHtcbiAgICAgICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCB0b2tlbi5zdGFydCksXG4gICAgICAgICAgLy8gTm90ZTogY29ycmVjdCBlbmQgaXMgc2V0IGxhdGVyLlxuICAgICAgICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgdG9rZW4uZW5kKVxuICAgICAgICB9XG4gICAgICAgIG1hcC5hZGQoaW5kZXgsIDAsIFtbJ2VudGVyJywgY3VycmVudFRhYmxlLCBjb250ZXh0XV0pXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0b2tlbi50eXBlID09PSAndGFibGVSb3cnIHx8XG4gICAgICAgIHRva2VuLnR5cGUgPT09ICd0YWJsZURlbGltaXRlclJvdydcbiAgICAgICkge1xuICAgICAgICBpbkZpcnN0Q2VsbEF3YWl0aW5nUGlwZSA9IHRydWVcbiAgICAgICAgY3VycmVudENlbGwgPSB1bmRlZmluZWRcbiAgICAgICAgbGFzdENlbGwgPSBbMCwgMCwgMCwgMF1cbiAgICAgICAgY2VsbCA9IFswLCBpbmRleCArIDEsIDAsIDBdXG5cbiAgICAgICAgLy8gSW5qZWN0IHRhYmxlIGJvZHkgc3RhcnQuXG4gICAgICAgIGlmIChhZnRlckhlYWRBd2FpdGluZ0ZpcnN0Qm9keVJvdykge1xuICAgICAgICAgIGFmdGVySGVhZEF3YWl0aW5nRmlyc3RCb2R5Um93ID0gZmFsc2VcbiAgICAgICAgICBjdXJyZW50Qm9keSA9IHtcbiAgICAgICAgICAgIHR5cGU6ICd0YWJsZUJvZHknLFxuICAgICAgICAgICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIHRva2VuLnN0YXJ0KSxcbiAgICAgICAgICAgIC8vIE5vdGU6IGNvcnJlY3QgZW5kIGlzIHNldCBsYXRlci5cbiAgICAgICAgICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgdG9rZW4uZW5kKVxuICAgICAgICAgIH1cbiAgICAgICAgICBtYXAuYWRkKGluZGV4LCAwLCBbWydlbnRlcicsIGN1cnJlbnRCb2R5LCBjb250ZXh0XV0pXG4gICAgICAgIH1cblxuICAgICAgICByb3dLaW5kID0gdG9rZW4udHlwZSA9PT0gJ3RhYmxlRGVsaW1pdGVyUm93JyA/IDIgOiBjdXJyZW50Qm9keSA/IDMgOiAxXG4gICAgICB9XG4gICAgICAvLyBDZWxsIGRhdGEuXG4gICAgICBlbHNlIGlmIChcbiAgICAgICAgcm93S2luZCAmJlxuICAgICAgICAodG9rZW4udHlwZSA9PT0gdHlwZXMuZGF0YSB8fFxuICAgICAgICAgIHRva2VuLnR5cGUgPT09ICd0YWJsZURlbGltaXRlck1hcmtlcicgfHxcbiAgICAgICAgICB0b2tlbi50eXBlID09PSAndGFibGVEZWxpbWl0ZXJGaWxsZXInKVxuICAgICAgKSB7XG4gICAgICAgIGluRmlyc3RDZWxsQXdhaXRpbmdQaXBlID0gZmFsc2VcblxuICAgICAgICAvLyBGaXJzdCB2YWx1ZSBpbiBjZWxsLlxuICAgICAgICBpZiAoY2VsbFsyXSA9PT0gMCkge1xuICAgICAgICAgIGlmIChsYXN0Q2VsbFsxXSAhPT0gMCkge1xuICAgICAgICAgICAgY2VsbFswXSA9IGNlbGxbMV1cbiAgICAgICAgICAgIGN1cnJlbnRDZWxsID0gZmx1c2hDZWxsKFxuICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIGxhc3RDZWxsLFxuICAgICAgICAgICAgICByb3dLaW5kLFxuICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGN1cnJlbnRDZWxsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBsYXN0Q2VsbCA9IFswLCAwLCAwLCAwXVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNlbGxbMl0gPSBpbmRleFxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUgPT09ICd0YWJsZUNlbGxEaXZpZGVyJykge1xuICAgICAgICBpZiAoaW5GaXJzdENlbGxBd2FpdGluZ1BpcGUpIHtcbiAgICAgICAgICBpbkZpcnN0Q2VsbEF3YWl0aW5nUGlwZSA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGxhc3RDZWxsWzFdICE9PSAwKSB7XG4gICAgICAgICAgICBjZWxsWzBdID0gY2VsbFsxXVxuICAgICAgICAgICAgY3VycmVudENlbGwgPSBmbHVzaENlbGwoXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgbGFzdENlbGwsXG4gICAgICAgICAgICAgIHJvd0tpbmQsXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgY3VycmVudENlbGxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsYXN0Q2VsbCA9IGNlbGxcbiAgICAgICAgICBjZWxsID0gW2xhc3RDZWxsWzFdLCBpbmRleCwgMCwgMF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBFeGl0IGV2ZW50cy5cbiAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSAndGFibGVIZWFkJykge1xuICAgICAgYWZ0ZXJIZWFkQXdhaXRpbmdGaXJzdEJvZHlSb3cgPSB0cnVlXG4gICAgICBsYXN0VGFibGVFbmQgPSBpbmRleFxuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0b2tlbi50eXBlID09PSAndGFibGVSb3cnIHx8XG4gICAgICB0b2tlbi50eXBlID09PSAndGFibGVEZWxpbWl0ZXJSb3cnXG4gICAgKSB7XG4gICAgICBsYXN0VGFibGVFbmQgPSBpbmRleFxuXG4gICAgICBpZiAobGFzdENlbGxbMV0gIT09IDApIHtcbiAgICAgICAgY2VsbFswXSA9IGNlbGxbMV1cbiAgICAgICAgY3VycmVudENlbGwgPSBmbHVzaENlbGwoXG4gICAgICAgICAgbWFwLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbGFzdENlbGwsXG4gICAgICAgICAgcm93S2luZCxcbiAgICAgICAgICBpbmRleCxcbiAgICAgICAgICBjdXJyZW50Q2VsbFxuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKGNlbGxbMV0gIT09IDApIHtcbiAgICAgICAgY3VycmVudENlbGwgPSBmbHVzaENlbGwobWFwLCBjb250ZXh0LCBjZWxsLCByb3dLaW5kLCBpbmRleCwgY3VycmVudENlbGwpXG4gICAgICB9XG5cbiAgICAgIHJvd0tpbmQgPSAwXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHJvd0tpbmQgJiZcbiAgICAgICh0b2tlbi50eXBlID09PSB0eXBlcy5kYXRhIHx8XG4gICAgICAgIHRva2VuLnR5cGUgPT09ICd0YWJsZURlbGltaXRlck1hcmtlcicgfHxcbiAgICAgICAgdG9rZW4udHlwZSA9PT0gJ3RhYmxlRGVsaW1pdGVyRmlsbGVyJylcbiAgICApIHtcbiAgICAgIGNlbGxbM10gPSBpbmRleFxuICAgIH1cbiAgfVxuXG4gIGlmIChsYXN0VGFibGVFbmQgIT09IDApIHtcbiAgICBhc3NlcnQoY3VycmVudFRhYmxlLCAnZXhwZWN0ZWQgdGFibGUgb3BlbmluZycpXG4gICAgZmx1c2hUYWJsZUVuZChtYXAsIGNvbnRleHQsIGxhc3RUYWJsZUVuZCwgY3VycmVudFRhYmxlLCBjdXJyZW50Qm9keSlcbiAgfVxuXG4gIG1hcC5jb25zdW1lKGNvbnRleHQuZXZlbnRzKVxuXG4gIC8vIFRvIGRvOiBtb3ZlIHRoaXMgaW50byBgaHRtbGAsIHdoZW4gZXZlbnRzIGFyZSBleHBvc2VkIHRoZXJlLlxuICAvLyBUaGF04oCZcyB3aGF0IGBtYXJrZG93bi1yc2AgZG9lcy5cbiAgLy8gVGhhdCBuZWVkcyB1cGRhdGVzIHRvIGBtZGFzdC11dGlsLWdmbS10YWJsZWAuXG4gIGluZGV4ID0gLTFcbiAgd2hpbGUgKCsraW5kZXggPCBjb250ZXh0LmV2ZW50cy5sZW5ndGgpIHtcbiAgICBjb25zdCBldmVudCA9IGNvbnRleHQuZXZlbnRzW2luZGV4XVxuICAgIGlmIChldmVudFswXSA9PT0gJ2VudGVyJyAmJiBldmVudFsxXS50eXBlID09PSAndGFibGUnKSB7XG4gICAgICBldmVudFsxXS5fYWxpZ24gPSBnZm1UYWJsZUFsaWduKGNvbnRleHQuZXZlbnRzLCBpbmRleClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXZlbnRzXG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBjZWxsLlxuICpcbiAqIEBwYXJhbSB7RWRpdE1hcH0gbWFwXG4gKiBAcGFyYW0ge1JlYWRvbmx5PFRva2VuaXplQ29udGV4dD59IGNvbnRleHRcbiAqIEBwYXJhbSB7UmVhZG9ubHk8UmFuZ2U+fSByYW5nZVxuICogQHBhcmFtIHtSb3dLaW5kfSByb3dLaW5kXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gcm93RW5kXG4gKiBAcGFyYW0ge1Rva2VuIHwgdW5kZWZpbmVkfSBwcmV2aW91c0NlbGxcbiAqIEByZXR1cm5zIHtUb2tlbiB8IHVuZGVmaW5lZH1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbmZ1bmN0aW9uIGZsdXNoQ2VsbChtYXAsIGNvbnRleHQsIHJhbmdlLCByb3dLaW5kLCByb3dFbmQsIHByZXZpb3VzQ2VsbCkge1xuICAvLyBgbWFya2Rvd24tcnNgIHVzZXM6XG4gIC8vIHJvd0tpbmQgPT09IDIgPyAndGFibGVEZWxpbWl0ZXJDZWxsJyA6ICd0YWJsZUNlbGwnXG4gIGNvbnN0IGdyb3VwTmFtZSA9XG4gICAgcm93S2luZCA9PT0gMVxuICAgICAgPyAndGFibGVIZWFkZXInXG4gICAgICA6IHJvd0tpbmQgPT09IDJcbiAgICAgID8gJ3RhYmxlRGVsaW1pdGVyJ1xuICAgICAgOiAndGFibGVEYXRhJ1xuICAvLyBgbWFya2Rvd24tcnNgIHVzZXM6XG4gIC8vIHJvd0tpbmQgPT09IDIgPyAndGFibGVEZWxpbWl0ZXJDZWxsVmFsdWUnIDogJ3RhYmxlQ2VsbFRleHQnXG4gIGNvbnN0IHZhbHVlTmFtZSA9ICd0YWJsZUNvbnRlbnQnXG5cbiAgLy8gSW5zZXJ0IGFuIGV4aXQgZm9yIHRoZSBwcmV2aW91cyBjZWxsLCBpZiB0aGVyZSBpcyBvbmUuXG4gIC8vXG4gIC8vIGBgYG1hcmtkb3duXG4gIC8vID4gfCB8IGFhIHwgYmIgfCBjYyB8XG4gIC8vICAgICAgICAgIF4tLSBleGl0XG4gIC8vICAgICAgICAgICBeXl5eLS0gdGhpcyBjZWxsXG4gIC8vIGBgYFxuICBpZiAocmFuZ2VbMF0gIT09IDApIHtcbiAgICBhc3NlcnQocHJldmlvdXNDZWxsLCAnZXhwZWN0ZWQgcHJldmlvdXMgY2VsbCBlbnRlcicpXG4gICAgcHJldmlvdXNDZWxsLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIGdldFBvaW50KGNvbnRleHQuZXZlbnRzLCByYW5nZVswXSkpXG4gICAgbWFwLmFkZChyYW5nZVswXSwgMCwgW1snZXhpdCcsIHByZXZpb3VzQ2VsbCwgY29udGV4dF1dKVxuICB9XG5cbiAgLy8gSW5zZXJ0IGVudGVyIG9mIHRoaXMgY2VsbC5cbiAgLy9cbiAgLy8gYGBgbWFya2Rvd25cbiAgLy8gPiB8IHwgYWEgfCBiYiB8IGNjIHxcbiAgLy8gICAgICAgICAgIF4tLSBlbnRlclxuICAvLyAgICAgICAgICAgXl5eXi0tIHRoaXMgY2VsbFxuICAvLyBgYGBcbiAgY29uc3Qgbm93ID0gZ2V0UG9pbnQoY29udGV4dC5ldmVudHMsIHJhbmdlWzFdKVxuICBwcmV2aW91c0NlbGwgPSB7XG4gICAgdHlwZTogZ3JvdXBOYW1lLFxuICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBub3cpLFxuICAgIC8vIE5vdGU6IGNvcnJlY3QgZW5kIGlzIHNldCBsYXRlci5cbiAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIG5vdylcbiAgfVxuICBtYXAuYWRkKHJhbmdlWzFdLCAwLCBbWydlbnRlcicsIHByZXZpb3VzQ2VsbCwgY29udGV4dF1dKVxuXG4gIC8vIEluc2VydCB0ZXh0IHN0YXJ0IGF0IGZpcnN0IGRhdGEgc3RhcnQgYW5kIGVuZCBhdCBsYXN0IGRhdGEgZW5kLCBhbmRcbiAgLy8gcmVtb3ZlIGV2ZW50cyBiZXR3ZWVuLlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyA+IHwgfCBhYSB8IGJiIHwgY2MgfFxuICAvLyAgICAgICAgICAgIF4tLSBlbnRlclxuICAvLyAgICAgICAgICAgICBeLS0gZXhpdFxuICAvLyAgICAgICAgICAgXl5eXi0tIHRoaXMgY2VsbFxuICAvLyBgYGBcbiAgaWYgKHJhbmdlWzJdICE9PSAwKSB7XG4gICAgY29uc3QgcmVsYXRlZFN0YXJ0ID0gZ2V0UG9pbnQoY29udGV4dC5ldmVudHMsIHJhbmdlWzJdKVxuICAgIGNvbnN0IHJlbGF0ZWRFbmQgPSBnZXRQb2ludChjb250ZXh0LmV2ZW50cywgcmFuZ2VbM10pXG4gICAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgICBjb25zdCB2YWx1ZVRva2VuID0ge1xuICAgICAgdHlwZTogdmFsdWVOYW1lLFxuICAgICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIHJlbGF0ZWRTdGFydCksXG4gICAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIHJlbGF0ZWRFbmQpXG4gICAgfVxuICAgIG1hcC5hZGQocmFuZ2VbMl0sIDAsIFtbJ2VudGVyJywgdmFsdWVUb2tlbiwgY29udGV4dF1dKVxuICAgIGFzc2VydChyYW5nZVszXSAhPT0gMClcblxuICAgIGlmIChyb3dLaW5kICE9PSAyKSB7XG4gICAgICAvLyBGaXggcG9zaXRpb25hbCBpbmZvIG9uIHJlbWFpbmluZyBldmVudHNcbiAgICAgIGNvbnN0IHN0YXJ0ID0gY29udGV4dC5ldmVudHNbcmFuZ2VbMl1dXG4gICAgICBjb25zdCBlbmQgPSBjb250ZXh0LmV2ZW50c1tyYW5nZVszXV1cbiAgICAgIHN0YXJ0WzFdLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIGVuZFsxXS5lbmQpXG4gICAgICBzdGFydFsxXS50eXBlID0gdHlwZXMuY2h1bmtUZXh0XG4gICAgICBzdGFydFsxXS5jb250ZW50VHlwZSA9IGNvbnN0YW50cy5jb250ZW50VHlwZVRleHRcblxuICAgICAgLy8gUmVtb3ZlIGlmIG5lZWRlZC5cbiAgICAgIGlmIChyYW5nZVszXSA+IHJhbmdlWzJdICsgMSkge1xuICAgICAgICBjb25zdCBhID0gcmFuZ2VbMl0gKyAxXG4gICAgICAgIGNvbnN0IGIgPSByYW5nZVszXSAtIHJhbmdlWzJdIC0gMVxuICAgICAgICBtYXAuYWRkKGEsIGIsIFtdKVxuICAgICAgfVxuICAgIH1cblxuICAgIG1hcC5hZGQocmFuZ2VbM10gKyAxLCAwLCBbWydleGl0JywgdmFsdWVUb2tlbiwgY29udGV4dF1dKVxuICB9XG5cbiAgLy8gSW5zZXJ0IGFuIGV4aXQgZm9yIHRoZSBsYXN0IGNlbGwsIGlmIGF0IHRoZSByb3cgZW5kLlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyA+IHwgfCBhYSB8IGJiIHwgY2MgfFxuICAvLyAgICAgICAgICAgICAgICAgICAgXi0tIGV4aXRcbiAgLy8gICAgICAgICAgICAgICBeXl5eXl4tLSB0aGlzIGNlbGwgKHRoZSBsYXN0IG9uZSBjb250YWlucyB0d28g4oCcYmV0d2VlbuKAnSBwYXJ0cylcbiAgLy8gYGBgXG4gIGlmIChyb3dFbmQgIT09IHVuZGVmaW5lZCkge1xuICAgIHByZXZpb3VzQ2VsbC5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCBnZXRQb2ludChjb250ZXh0LmV2ZW50cywgcm93RW5kKSlcbiAgICBtYXAuYWRkKHJvd0VuZCwgMCwgW1snZXhpdCcsIHByZXZpb3VzQ2VsbCwgY29udGV4dF1dKVxuICAgIHByZXZpb3VzQ2VsbCA9IHVuZGVmaW5lZFxuICB9XG5cbiAgcmV0dXJuIHByZXZpb3VzQ2VsbFxufVxuXG4vKipcbiAqIEdlbmVyYXRlIHRhYmxlIGVuZCAoYW5kIHRhYmxlIGJvZHkgZW5kKS5cbiAqXG4gKiBAcGFyYW0ge1JlYWRvbmx5PEVkaXRNYXA+fSBtYXBcbiAqIEBwYXJhbSB7UmVhZG9ubHk8VG9rZW5pemVDb250ZXh0Pn0gY29udGV4dFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge1Rva2VufSB0YWJsZVxuICogQHBhcmFtIHtUb2tlbiB8IHVuZGVmaW5lZH0gdGFibGVCb2R5XG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtcGFyYW1zXG5mdW5jdGlvbiBmbHVzaFRhYmxlRW5kKG1hcCwgY29udGV4dCwgaW5kZXgsIHRhYmxlLCB0YWJsZUJvZHkpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGNvbnN0IGV4aXRzID0gW11cbiAgY29uc3QgcmVsYXRlZCA9IGdldFBvaW50KGNvbnRleHQuZXZlbnRzLCBpbmRleClcblxuICBpZiAodGFibGVCb2R5KSB7XG4gICAgdGFibGVCb2R5LmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHJlbGF0ZWQpXG4gICAgZXhpdHMucHVzaChbJ2V4aXQnLCB0YWJsZUJvZHksIGNvbnRleHRdKVxuICB9XG5cbiAgdGFibGUuZW5kID0gT2JqZWN0LmFzc2lnbih7fSwgcmVsYXRlZClcbiAgZXhpdHMucHVzaChbJ2V4aXQnLCB0YWJsZSwgY29udGV4dF0pXG5cbiAgbWFwLmFkZChpbmRleCArIDEsIDAsIGV4aXRzKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVhZG9ubHk8QXJyYXk8RXZlbnQ+Pn0gZXZlbnRzXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEByZXR1cm5zIHtSZWFkb25seTxQb2ludD59XG4gKi9cbmZ1bmN0aW9uIGdldFBvaW50KGV2ZW50cywgaW5kZXgpIHtcbiAgY29uc3QgZXZlbnQgPSBldmVudHNbaW5kZXhdXG4gIGNvbnN0IHNpZGUgPSBldmVudFswXSA9PT0gJ2VudGVyJyA/ICdzdGFydCcgOiAnZW5kJ1xuICByZXR1cm4gZXZlbnRbMV1bc2lkZV1cbn1cbiJdLCJuYW1lcyI6WyJvayIsImFzc2VydCIsImZhY3RvcnlTcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCJtYXJrZG93blNwYWNlIiwiY29kZXMiLCJjb25zdGFudHMiLCJ0eXBlcyIsIkVkaXRNYXAiLCJnZm1UYWJsZUFsaWduIiwiZ2ZtVGFibGUiLCJmbG93IiwibnVsbCIsInRva2VuaXplIiwidG9rZW5pemVUYWJsZSIsInJlc29sdmVBbGwiLCJyZXNvbHZlVGFibGUiLCJlZmZlY3RzIiwibm9rIiwic2VsZiIsInNpemUiLCJzaXplQiIsInNlZW4iLCJzdGFydCIsImNvZGUiLCJpbmRleCIsImV2ZW50cyIsImxlbmd0aCIsInR5cGUiLCJsaW5lRW5kaW5nIiwibGluZVByZWZpeCIsInRhaWwiLCJuZXh0IiwiYm9keVJvd1N0YXJ0IiwiaGVhZFJvd0JlZm9yZSIsInBhcnNlciIsImxhenkiLCJub3ciLCJsaW5lIiwiZW50ZXIiLCJoZWFkUm93U3RhcnQiLCJ2ZXJ0aWNhbEJhciIsImhlYWRSb3dCcmVhayIsImVvZiIsImludGVycnVwdCIsImV4aXQiLCJjb25zdW1lIiwiaGVhZERlbGltaXRlclN0YXJ0Iiwid2hpdGVzcGFjZSIsImRhdGEiLCJoZWFkUm93RGF0YSIsImJhY2tzbGFzaCIsImhlYWRSb3dFc2NhcGUiLCJjb25zdHJ1Y3RzIiwiZGlzYWJsZSIsImhlYWREZWxpbWl0ZXJCZWZvcmUiLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsInRhYlNpemUiLCJkYXNoIiwiY29sb24iLCJoZWFkRGVsaW1pdGVyVmFsdWVCZWZvcmUiLCJoZWFkRGVsaW1pdGVyQ2VsbEJlZm9yZSIsImhlYWREZWxpbWl0ZXJOb2siLCJoZWFkRGVsaW1pdGVyTGVmdEFsaWdubWVudEFmdGVyIiwiaGVhZERlbGltaXRlckNlbGxBZnRlciIsImhlYWREZWxpbWl0ZXJGaWxsZXIiLCJoZWFkRGVsaW1pdGVyUmlnaHRBbGlnbm1lbnRBZnRlciIsImJvZHlSb3dCcmVhayIsImJvZHlSb3dEYXRhIiwiYm9keVJvd0VzY2FwZSIsImNvbnRleHQiLCJpbkZpcnN0Q2VsbEF3YWl0aW5nUGlwZSIsInJvd0tpbmQiLCJsYXN0Q2VsbCIsImNlbGwiLCJhZnRlckhlYWRBd2FpdGluZ0ZpcnN0Qm9keVJvdyIsImxhc3RUYWJsZUVuZCIsImN1cnJlbnRUYWJsZSIsImN1cnJlbnRCb2R5IiwiY3VycmVudENlbGwiLCJtYXAiLCJldmVudCIsInRva2VuIiwiZmx1c2hUYWJsZUVuZCIsIk9iamVjdCIsImFzc2lnbiIsImVuZCIsImFkZCIsImZsdXNoQ2VsbCIsIl9hbGlnbiIsInJhbmdlIiwicm93RW5kIiwicHJldmlvdXNDZWxsIiwiZ3JvdXBOYW1lIiwidmFsdWVOYW1lIiwiZ2V0UG9pbnQiLCJyZWxhdGVkU3RhcnQiLCJyZWxhdGVkRW5kIiwidmFsdWVUb2tlbiIsImNodW5rVGV4dCIsImNvbnRlbnRUeXBlIiwiY29udGVudFR5cGVUZXh0IiwiYSIsImIiLCJ0YWJsZSIsInRhYmxlQm9keSIsImV4aXRzIiwicmVsYXRlZCIsInB1c2giLCJzaWRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/syntax.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-tagfilter/lib/index.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-tagfilter/lib/index.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmTagfilterHtml: () => (/* binding */ gfmTagfilterHtml)\n/* harmony export */ });\n/**\n * @typedef {import('micromark-util-types').CompileContext} CompileContext\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').Token} Token\n */ // An opening or closing tag start, followed by a case-insensitive specific tag name,\n// followed by HTML whitespace, a greater than, or a slash.\nconst reFlow = /<(\\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\\t\\n\\f\\r />])/gi;\n// As HTML (text) parses tags separately (and very strictly), we don’t need to be\n// global.\nconst reText = new RegExp(\"^\" + reFlow.source, \"i\");\n/**\n * Create an HTML extension for `micromark` to support GitHubs weird and\n * useless tagfilter when serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to support\n * GitHubs weird and useless tagfilter when serializing to HTML.\n */ function gfmTagfilterHtml() {\n return {\n exit: {\n htmlFlowData (token) {\n exitHtmlData.call(this, token, reFlow);\n },\n htmlTextData (token) {\n exitHtmlData.call(this, token, reText);\n }\n }\n };\n}\n/**\n * @this {CompileContext}\n * @param {Token} token\n * @param {RegExp} filter\n * @returns {undefined}\n */ function exitHtmlData(token, filter) {\n let value = this.sliceSerialize(token);\n if (this.options.allowDangerousHtml) {\n value = value.replace(filter, \"&lt;$1$2\");\n }\n this.raw(this.encode(value));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhZ2ZpbHRlci9saWIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0NBSUMsR0FFRCxxRkFBcUY7QUFDckYsMkRBQTJEO0FBQzNELE1BQU1BLFNBQ0o7QUFFRixpRkFBaUY7QUFDakYsVUFBVTtBQUNWLE1BQU1DLFNBQVMsSUFBSUMsT0FBTyxNQUFNRixPQUFPRyxNQUFNLEVBQUU7QUFFL0M7Ozs7Ozs7Q0FPQyxHQUNNLFNBQVNDO0lBQ2QsT0FBTztRQUNMQyxNQUFNO1lBQ0pDLGNBQWFDLEtBQUs7Z0JBQ2hCQyxhQUFhQyxJQUFJLENBQUMsSUFBSSxFQUFFRixPQUFPUDtZQUNqQztZQUNBVSxjQUFhSCxLQUFLO2dCQUNoQkMsYUFBYUMsSUFBSSxDQUFDLElBQUksRUFBRUYsT0FBT047WUFDakM7UUFDRjtJQUNGO0FBQ0Y7QUFFQTs7Ozs7Q0FLQyxHQUNELFNBQVNPLGFBQWFELEtBQUssRUFBRUksTUFBTTtJQUNqQyxJQUFJQyxRQUFRLElBQUksQ0FBQ0MsY0FBYyxDQUFDTjtJQUVoQyxJQUFJLElBQUksQ0FBQ08sT0FBTyxDQUFDQyxrQkFBa0IsRUFBRTtRQUNuQ0gsUUFBUUEsTUFBTUksT0FBTyxDQUFDTCxRQUFRO0lBQ2hDO0lBRUEsSUFBSSxDQUFDTSxHQUFHLENBQUMsSUFBSSxDQUFDQyxNQUFNLENBQUNOO0FBQ3ZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFnZmlsdGVyL2xpYi9pbmRleC5qcz8xZDI5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db21waWxlQ29udGV4dH0gQ29tcGlsZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSHRtbEV4dGVuc2lvbn0gSHRtbEV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbn0gVG9rZW5cbiAqL1xuXG4vLyBBbiBvcGVuaW5nIG9yIGNsb3NpbmcgdGFnIHN0YXJ0LCBmb2xsb3dlZCBieSBhIGNhc2UtaW5zZW5zaXRpdmUgc3BlY2lmaWMgdGFnIG5hbWUsXG4vLyBmb2xsb3dlZCBieSBIVE1MIHdoaXRlc3BhY2UsIGEgZ3JlYXRlciB0aGFuLCBvciBhIHNsYXNoLlxuY29uc3QgcmVGbG93ID1cbiAgLzwoXFwvPykoaWZyYW1lfG5vZW1iZWR8bm9mcmFtZXN8cGxhaW50ZXh0fHNjcmlwdHxzdHlsZXx0aXRsZXx0ZXh0YXJlYXx4bXApKD89W1xcdFxcblxcZlxcciAvPl0pL2dpXG5cbi8vIEFzIEhUTUwgKHRleHQpIHBhcnNlcyB0YWdzIHNlcGFyYXRlbHkgKGFuZCB2ZXJ5IHN0cmljdGx5KSwgd2UgZG9u4oCZdCBuZWVkIHRvIGJlXG4vLyBnbG9iYWwuXG5jb25zdCByZVRleHQgPSBuZXcgUmVnRXhwKCdeJyArIHJlRmxvdy5zb3VyY2UsICdpJylcblxuLyoqXG4gKiBDcmVhdGUgYW4gSFRNTCBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIHN1cHBvcnQgR2l0SHVicyB3ZWlyZCBhbmRcbiAqIHVzZWxlc3MgdGFnZmlsdGVyIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqXG4gKiBAcmV0dXJucyB7SHRtbEV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGh0bWxFeHRlbnNpb25zYCB0byBzdXBwb3J0XG4gKiAgIEdpdEh1YnMgd2VpcmQgYW5kIHVzZWxlc3MgdGFnZmlsdGVyIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRhZ2ZpbHRlckh0bWwoKSB7XG4gIHJldHVybiB7XG4gICAgZXhpdDoge1xuICAgICAgaHRtbEZsb3dEYXRhKHRva2VuKSB7XG4gICAgICAgIGV4aXRIdG1sRGF0YS5jYWxsKHRoaXMsIHRva2VuLCByZUZsb3cpXG4gICAgICB9LFxuICAgICAgaHRtbFRleHREYXRhKHRva2VuKSB7XG4gICAgICAgIGV4aXRIdG1sRGF0YS5jYWxsKHRoaXMsIHRva2VuLCByZVRleHQpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHBhcmFtIHtUb2tlbn0gdG9rZW5cbiAqIEBwYXJhbSB7UmVnRXhwfSBmaWx0ZXJcbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGV4aXRIdG1sRGF0YSh0b2tlbiwgZmlsdGVyKSB7XG4gIGxldCB2YWx1ZSA9IHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pXG5cbiAgaWYgKHRoaXMub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoZmlsdGVyLCAnJmx0OyQxJDInKVxuICB9XG5cbiAgdGhpcy5yYXcodGhpcy5lbmNvZGUodmFsdWUpKVxufVxuIl0sIm5hbWVzIjpbInJlRmxvdyIsInJlVGV4dCIsIlJlZ0V4cCIsInNvdXJjZSIsImdmbVRhZ2ZpbHRlckh0bWwiLCJleGl0IiwiaHRtbEZsb3dEYXRhIiwidG9rZW4iLCJleGl0SHRtbERhdGEiLCJjYWxsIiwiaHRtbFRleHREYXRhIiwiZmlsdGVyIiwidmFsdWUiLCJzbGljZVNlcmlhbGl6ZSIsIm9wdGlvbnMiLCJhbGxvd0Rhbmdlcm91c0h0bWwiLCJyZXBsYWNlIiwicmF3IiwiZW5jb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-tagfilter/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.js":
-/*!*********************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.js ***!
- \*********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmTaskListItemHtml: () => (/* binding */ gfmTaskListItemHtml)\n/* harmony export */ });\n/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */ /**\n * Create an HTML extension for `micromark` to support GFM task list items when\n * serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */ function gfmTaskListItemHtml() {\n return {\n enter: {\n taskListCheck () {\n this.tag('<input type=\"checkbox\" disabled=\"\" ');\n }\n },\n exit: {\n taskListCheck () {\n this.tag(\"/>\");\n },\n taskListCheckValueChecked () {\n this.tag('checked=\"\" ');\n }\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhc2stbGlzdC1pdGVtL2Rldi9saWIvaHRtbC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0NBRUMsR0FFRDs7Ozs7OztDQU9DLEdBQ00sU0FBU0E7SUFDZCxPQUFPO1FBQ0xDLE9BQU87WUFDTEM7Z0JBQ0UsSUFBSSxDQUFDQyxHQUFHLENBQUM7WUFDWDtRQUNGO1FBQ0FDLE1BQU07WUFDSkY7Z0JBQ0UsSUFBSSxDQUFDQyxHQUFHLENBQUM7WUFDWDtZQUNBRTtnQkFDRSxJQUFJLENBQUNGLEdBQUcsQ0FBQztZQUNYO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFzay1saXN0LWl0ZW0vZGV2L2xpYi9odG1sLmpzPzIyMTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkh0bWxFeHRlbnNpb259IEh0bWxFeHRlbnNpb25cbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBhbiBIVE1MIGV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdG8gc3VwcG9ydCBHRk0gdGFzayBsaXN0IGl0ZW1zIHdoZW5cbiAqIHNlcmlhbGl6aW5nIHRvIEhUTUwuXG4gKlxuICogQHJldHVybnMge0h0bWxFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBodG1sRXh0ZW5zaW9uc2AgdG9cbiAqICAgc3VwcG9ydCBHRk0gdGFzayBsaXN0IGl0ZW1zIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRhc2tMaXN0SXRlbUh0bWwoKSB7XG4gIHJldHVybiB7XG4gICAgZW50ZXI6IHtcbiAgICAgIHRhc2tMaXN0Q2hlY2soKSB7XG4gICAgICAgIHRoaXMudGFnKCc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZGlzYWJsZWQ9XCJcIiAnKVxuICAgICAgfVxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgdGFza0xpc3RDaGVjaygpIHtcbiAgICAgICAgdGhpcy50YWcoJy8+JylcbiAgICAgIH0sXG4gICAgICB0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkKCkge1xuICAgICAgICB0aGlzLnRhZygnY2hlY2tlZD1cIlwiICcpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2ZtVGFza0xpc3RJdGVtSHRtbCIsImVudGVyIiwidGFza0xpc3RDaGVjayIsInRhZyIsImV4aXQiLCJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js":
-/*!***********************************************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js ***!
- \***********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfmTaskListItem: () => (/* binding */ gfmTaskListItem)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ \n\n\n\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n};\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */ function gfmTaskListItem() {\n return {\n text: {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: tasklistCheck\n }\n };\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeTasklistCheck(effects, ok, nok) {\n const self = this;\n return open;\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */ function open(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket, \"expected `[`\");\n if (// Exit if there’s stuff before.\n self.previous !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem) {\n return nok(code);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */ function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEndingOrSpace)(code)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseX || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseX) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code);\n }\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */ function close(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code);\n }\n /**\n * @type {State}\n */ function after(code) {\n // EOL in paragraph means there must be something else after it.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {\n return ok(code);\n }\n // Space or tab?\n // Check what comes after.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownSpace)(code)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok, nok)(code);\n }\n // EOF, or non-whitespace, both wrong.\n return nok(code);\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function spaceThenNonSpace(effects, ok, nok) {\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, after, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.whitespace);\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */ function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof ? nok(code) : ok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhc2stbGlzdC1pdGVtL2Rldi9saWIvc3ludGF4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7OztDQUtDLEdBRWtDO0FBQ2lCO0FBS25CO0FBQ2lCO0FBRWxELE1BQU1RLGdCQUFnQjtJQUFDQyxVQUFVQztBQUFxQjtBQUV0RDs7Ozs7OztDQU9DLEdBQ00sU0FBU0M7SUFDZCxPQUFPO1FBQ0xDLE1BQU07WUFBQyxDQUFDTix3REFBS0EsQ0FBQ08saUJBQWlCLENBQUMsRUFBRUw7UUFBYTtJQUNqRDtBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBU0Usc0JBQXNCSSxPQUFPLEVBQUVkLEVBQUUsRUFBRWUsR0FBRztJQUM3QyxNQUFNQyxPQUFPLElBQUk7SUFFakIsT0FBT0M7SUFFUDs7Ozs7Ozs7O0dBU0MsR0FDRCxTQUFTQSxLQUFLQyxJQUFJO1FBQ2hCakIsMENBQU1BLENBQUNpQixTQUFTWix3REFBS0EsQ0FBQ08saUJBQWlCLEVBQUU7UUFFekMsSUFDRSxnQ0FBZ0M7UUFDaENHLEtBQUtHLFFBQVEsS0FBS2Isd0RBQUtBLENBQUNjLEdBQUcsSUFDM0IscUVBQXFFO1FBQ3JFLFFBQVE7UUFDUixDQUFDSixLQUFLSyxrQ0FBa0MsRUFDeEM7WUFDQSxPQUFPTixJQUFJRztRQUNiO1FBRUFKLFFBQVFRLEtBQUssQ0FBQztRQUNkUixRQUFRUSxLQUFLLENBQUM7UUFDZFIsUUFBUVMsT0FBTyxDQUFDTDtRQUNoQkosUUFBUVUsSUFBSSxDQUFDO1FBQ2IsT0FBT0M7SUFDVDtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLE9BQU9QLElBQUk7UUFDbEIsNENBQTRDO1FBQzVDLDJFQUEyRTtRQUMzRSxnREFBZ0Q7UUFDaEQsSUFBSWQsbUZBQXlCQSxDQUFDYyxPQUFPO1lBQ25DSixRQUFRUSxLQUFLLENBQUM7WUFDZFIsUUFBUVMsT0FBTyxDQUFDTDtZQUNoQkosUUFBUVUsSUFBSSxDQUFDO1lBQ2IsT0FBT0U7UUFDVDtRQUVBLElBQUlSLFNBQVNaLHdEQUFLQSxDQUFDcUIsVUFBVSxJQUFJVCxTQUFTWix3REFBS0EsQ0FBQ3NCLFVBQVUsRUFBRTtZQUMxRGQsUUFBUVEsS0FBSyxDQUFDO1lBQ2RSLFFBQVFTLE9BQU8sQ0FBQ0w7WUFDaEJKLFFBQVFVLElBQUksQ0FBQztZQUNiLE9BQU9FO1FBQ1Q7UUFFQSxPQUFPWCxJQUFJRztJQUNiO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU1EsTUFBTVIsSUFBSTtRQUNqQixJQUFJQSxTQUFTWix3REFBS0EsQ0FBQ3VCLGtCQUFrQixFQUFFO1lBQ3JDZixRQUFRUSxLQUFLLENBQUM7WUFDZFIsUUFBUVMsT0FBTyxDQUFDTDtZQUNoQkosUUFBUVUsSUFBSSxDQUFDO1lBQ2JWLFFBQVFVLElBQUksQ0FBQztZQUNiLE9BQU9NO1FBQ1Q7UUFFQSxPQUFPZixJQUFJRztJQUNiO0lBRUE7O0dBRUMsR0FDRCxTQUFTWSxNQUFNWixJQUFJO1FBQ2pCLGdFQUFnRTtRQUNoRSxJQUFJZiw0RUFBa0JBLENBQUNlLE9BQU87WUFDNUIsT0FBT2xCLEdBQUdrQjtRQUNaO1FBRUEsZ0JBQWdCO1FBQ2hCLDBCQUEwQjtRQUMxQixJQUFJYix1RUFBYUEsQ0FBQ2EsT0FBTztZQUN2QixPQUFPSixRQUFRaUIsS0FBSyxDQUFDO2dCQUFDdEIsVUFBVXVCO1lBQWlCLEdBQUdoQyxJQUFJZSxLQUFLRztRQUMvRDtRQUVBLHNDQUFzQztRQUN0QyxPQUFPSCxJQUFJRztJQUNiO0FBQ0Y7QUFFQTs7O0NBR0MsR0FDRCxTQUFTYyxrQkFBa0JsQixPQUFPLEVBQUVkLEVBQUUsRUFBRWUsR0FBRztJQUN6QyxPQUFPYixxRUFBWUEsQ0FBQ1ksU0FBU2dCLE9BQU92Qix3REFBS0EsQ0FBQzBCLFVBQVU7SUFFcEQ7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0gsTUFBTVosSUFBSTtRQUNqQix1Q0FBdUM7UUFDdkMsK0NBQStDO1FBQy9DLGtDQUFrQztRQUNsQyx5QkFBeUI7UUFDekIsT0FBT0EsU0FBU1osd0RBQUtBLENBQUNjLEdBQUcsR0FBR0wsSUFBSUcsUUFBUWxCLEdBQUdrQjtJQUM3QztBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFzay1saXN0LWl0ZW0vZGV2L2xpYi9zeW50YXguanM/MGQwMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXh0ZW5zaW9ufSBFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7XG4gIG1hcmtkb3duTGluZUVuZGluZyxcbiAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSxcbiAgbWFya2Rvd25TcGFjZVxufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge2NvZGVzLCB0eXBlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuXG5jb25zdCB0YXNrbGlzdENoZWNrID0ge3Rva2VuaXplOiB0b2tlbml6ZVRhc2tsaXN0Q2hlY2t9XG5cbi8qKlxuICogQ3JlYXRlIGFuIEhUTUwgZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBzdXBwb3J0IEdGTSB0YXNrIGxpc3QgaXRlbXNcbiAqIHN5bnRheC5cbiAqXG4gKiBAcmV0dXJucyB7RXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgaHRtbEV4dGVuc2lvbnNgIHRvXG4gKiAgIHN1cHBvcnQgR0ZNIHRhc2sgbGlzdCBpdGVtcyB3aGVuIHNlcmlhbGl6aW5nIHRvIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1UYXNrTGlzdEl0ZW0oKSB7XG4gIHJldHVybiB7XG4gICAgdGV4dDoge1tjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldF06IHRhc2tsaXN0Q2hlY2t9XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVUYXNrbGlzdENoZWNrKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcblxuICByZXR1cm4gb3BlblxuXG4gIC8qKlxuICAgKiBBdCBzdGFydCBvZiB0YXNrIGxpc3QgaXRlbSBjaGVjay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICogW3hdIHkuXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4oY29kZSkge1xuICAgIGFzc2VydChjb2RlID09PSBjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldCwgJ2V4cGVjdGVkIGBbYCcpXG5cbiAgICBpZiAoXG4gICAgICAvLyBFeGl0IGlmIHRoZXJl4oCZcyBzdHVmZiBiZWZvcmUuXG4gICAgICBzZWxmLnByZXZpb3VzICE9PSBjb2Rlcy5lb2YgfHxcbiAgICAgIC8vIEV4aXQgaWYgbm90IGluIHRoZSBmaXJzdCBjb250ZW50IHRoYXQgaXMgdGhlIGZpcnN0IGNoaWxkIG9mIGEgbGlzdFxuICAgICAgLy8gaXRlbS5cbiAgICAgICFzZWxmLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW1cbiAgICApIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmVudGVyKCd0YXNrTGlzdENoZWNrJylcbiAgICBlZmZlY3RzLmVudGVyKCd0YXNrTGlzdENoZWNrTWFya2VyJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ3Rhc2tMaXN0Q2hlY2tNYXJrZXInKVxuICAgIHJldHVybiBpbnNpZGVcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0YXNrIGxpc3QgaXRlbSBjaGVjay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICogW3hdIHkuXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIC8vIEN1cnJlbnRseSB3ZSBtYXRjaCBob3cgR0ggd29ya3MgaW4gZmlsZXMuXG4gICAgLy8gVG8gbWF0Y2ggaG93IEdIIHdvcmtzIGluIGNvbW1lbnRzLCB1c2UgYG1hcmtkb3duU3BhY2VgIChgW1xcdCBdYCkgaW5zdGVhZFxuICAgIC8vIG9mIGBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlYCAoYFtcXHRcXG5cXHIgXWApLlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCd0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQnKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ3Rhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCcpXG4gICAgICByZXR1cm4gY2xvc2VcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMudXBwZXJjYXNlWCB8fCBjb2RlID09PSBjb2Rlcy5sb3dlcmNhc2VYKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCd0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkJylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KCd0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkJylcbiAgICAgIHJldHVybiBjbG9zZVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBjbG9zZSBvZiB0YXNrIGxpc3QgaXRlbSBjaGVjay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICogW3hdIHkuXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2xvc2UoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5yaWdodFNxdWFyZUJyYWNrZXQpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3Rhc2tMaXN0Q2hlY2tNYXJrZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ3Rhc2tMaXN0Q2hlY2tNYXJrZXInKVxuICAgICAgZWZmZWN0cy5leGl0KCd0YXNrTGlzdENoZWNrJylcbiAgICAgIHJldHVybiBhZnRlclxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgLy8gRU9MIGluIHBhcmFncmFwaCBtZWFucyB0aGVyZSBtdXN0IGJlIHNvbWV0aGluZyBlbHNlIGFmdGVyIGl0LlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBvayhjb2RlKVxuICAgIH1cblxuICAgIC8vIFNwYWNlIG9yIHRhYj9cbiAgICAvLyBDaGVjayB3aGF0IGNvbWVzIGFmdGVyLlxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZWZmZWN0cy5jaGVjayh7dG9rZW5pemU6IHNwYWNlVGhlbk5vblNwYWNlfSwgb2ssIG5vaykoY29kZSlcbiAgICB9XG5cbiAgICAvLyBFT0YsIG9yIG5vbi13aGl0ZXNwYWNlLCBib3RoIHdyb25nLlxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiBzcGFjZVRoZW5Ob25TcGFjZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYWZ0ZXIsIHR5cGVzLndoaXRlc3BhY2UpXG5cbiAgLyoqXG4gICAqIEFmdGVyIHdoaXRlc3BhY2UsIGFmdGVyIHRhc2sgbGlzdCBpdGVtIGNoZWNrLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKiBbeF0geS5cbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICAvLyBFT0YgbWVhbnMgdGhlcmUgd2FzIG5vdGhpbmcsIHNvIGJhZC5cbiAgICAvLyBFT0wgbWVhbnMgdGhlcmXigJlzIGNvbnRlbnQgYWZ0ZXIgaXQsIHNvIGdvb2QuXG4gICAgLy8gSW1wb3NzaWJsZSB0byBoYXZlIG1vcmUgc3BhY2VzLlxuICAgIC8vIEFueXRoaW5nIGVsc2UgaXMgZ29vZC5cbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuZW9mID8gbm9rKGNvZGUpIDogb2soY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm9rIiwiYXNzZXJ0IiwiZmFjdG9yeVNwYWNlIiwibWFya2Rvd25MaW5lRW5kaW5nIiwibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsIm1hcmtkb3duU3BhY2UiLCJjb2RlcyIsInR5cGVzIiwidGFza2xpc3RDaGVjayIsInRva2VuaXplIiwidG9rZW5pemVUYXNrbGlzdENoZWNrIiwiZ2ZtVGFza0xpc3RJdGVtIiwidGV4dCIsImxlZnRTcXVhcmVCcmFja2V0IiwiZWZmZWN0cyIsIm5vayIsInNlbGYiLCJvcGVuIiwiY29kZSIsInByZXZpb3VzIiwiZW9mIiwiX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbSIsImVudGVyIiwiY29uc3VtZSIsImV4aXQiLCJpbnNpZGUiLCJjbG9zZSIsInVwcGVyY2FzZVgiLCJsb3dlcmNhc2VYIiwicmlnaHRTcXVhcmVCcmFja2V0IiwiYWZ0ZXIiLCJjaGVjayIsInNwYWNlVGhlbk5vblNwYWNlIiwid2hpdGVzcGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-extension-gfm/index.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/micromark-extension-gfm/index.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gfm: () => (/* binding */ gfm),\n/* harmony export */ gfmHtml: () => (/* binding */ gfmHtml)\n/* harmony export */ });\n/* harmony import */ var micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-combine-extensions */ \"(ssr)/../../node_modules/micromark-util-combine-extensions/index.js\");\n/* harmony import */ var micromark_extension_gfm_autolink_literal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-extension-gfm-autolink-literal */ \"(ssr)/../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js\");\n/* harmony import */ var micromark_extension_gfm_autolink_literal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-extension-gfm-autolink-literal */ \"(ssr)/../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.js\");\n/* harmony import */ var micromark_extension_gfm_footnote__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-extension-gfm-footnote */ \"(ssr)/../../node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js\");\n/* harmony import */ var micromark_extension_gfm_footnote__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-extension-gfm-footnote */ \"(ssr)/../../node_modules/micromark-extension-gfm-footnote/dev/lib/html.js\");\n/* harmony import */ var micromark_extension_gfm_strikethrough__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-extension-gfm-strikethrough */ \"(ssr)/../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js\");\n/* harmony import */ var micromark_extension_gfm_strikethrough__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-extension-gfm-strikethrough */ \"(ssr)/../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.js\");\n/* harmony import */ var micromark_extension_gfm_table__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-extension-gfm-table */ \"(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/syntax.js\");\n/* harmony import */ var micromark_extension_gfm_table__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-extension-gfm-table */ \"(ssr)/../../node_modules/micromark-extension-gfm-table/dev/lib/html.js\");\n/* harmony import */ var micromark_extension_gfm_tagfilter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-extension-gfm-tagfilter */ \"(ssr)/../../node_modules/micromark-extension-gfm-tagfilter/lib/index.js\");\n/* harmony import */ var micromark_extension_gfm_task_list_item__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-extension-gfm-task-list-item */ \"(ssr)/../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js\");\n/* harmony import */ var micromark_extension_gfm_task_list_item__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-extension-gfm-task-list-item */ \"(ssr)/../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.js\");\n/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */ \n\n\n\n\n\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */ function gfm(options) {\n return (0,micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__.combineExtensions)([\n (0,micromark_extension_gfm_autolink_literal__WEBPACK_IMPORTED_MODULE_1__.gfmAutolinkLiteral)(),\n (0,micromark_extension_gfm_footnote__WEBPACK_IMPORTED_MODULE_2__.gfmFootnote)(),\n (0,micromark_extension_gfm_strikethrough__WEBPACK_IMPORTED_MODULE_3__.gfmStrikethrough)(options),\n (0,micromark_extension_gfm_table__WEBPACK_IMPORTED_MODULE_4__.gfmTable)(),\n (0,micromark_extension_gfm_task_list_item__WEBPACK_IMPORTED_MODULE_5__.gfmTaskListItem)()\n ]);\n}\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */ function gfmHtml(options) {\n return (0,micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__.combineHtmlExtensions)([\n (0,micromark_extension_gfm_autolink_literal__WEBPACK_IMPORTED_MODULE_6__.gfmAutolinkLiteralHtml)(),\n (0,micromark_extension_gfm_footnote__WEBPACK_IMPORTED_MODULE_7__.gfmFootnoteHtml)(options),\n (0,micromark_extension_gfm_strikethrough__WEBPACK_IMPORTED_MODULE_8__.gfmStrikethroughHtml)(),\n (0,micromark_extension_gfm_table__WEBPACK_IMPORTED_MODULE_9__.gfmTableHtml)(),\n (0,micromark_extension_gfm_tagfilter__WEBPACK_IMPORTED_MODULE_10__.gfmTagfilterHtml)(),\n (0,micromark_extension_gfm_task_list_item__WEBPACK_IMPORTED_MODULE_11__.gfmTaskListItemHtml)()\n ]);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FLeUM7QUFJTztBQUM0QjtBQUkvQjtBQUNzQjtBQUNGO0FBSW5CO0FBRS9DOzs7Ozs7Ozs7O0NBVUMsR0FDTSxTQUFTYSxJQUFJQyxPQUFPO0lBQ3pCLE9BQU9kLG9GQUFpQkEsQ0FBQztRQUN2QkUsNEZBQWtCQTtRQUNsQkUsNkVBQVdBO1FBQ1hFLHVGQUFnQkEsQ0FBQ1E7UUFDakJOLHVFQUFRQTtRQUNSRyx1RkFBZUE7S0FDaEI7QUFDSDtBQUVBOzs7Ozs7Ozs7O0NBVUMsR0FDTSxTQUFTSSxRQUFRRCxPQUFPO0lBQzdCLE9BQU9iLHdGQUFxQkEsQ0FBQztRQUMzQkUsZ0dBQXNCQTtRQUN0QkUsaUZBQWVBLENBQUNTO1FBQ2hCUCwyRkFBb0JBO1FBQ3BCRSwyRUFBWUE7UUFDWkMsb0ZBQWdCQTtRQUNoQkUsNEZBQW1CQTtLQUNwQjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0vaW5kZXguanM/MThhNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlJykuSHRtbE9wdGlvbnN9IEh0bWxPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstZXh0ZW5zaW9uLWdmbS1zdHJpa2V0aHJvdWdoJykuT3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FeHRlbnNpb259IEV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5IdG1sRXh0ZW5zaW9ufSBIdG1sRXh0ZW5zaW9uXG4gKi9cblxuaW1wb3J0IHtcbiAgY29tYmluZUV4dGVuc2lvbnMsXG4gIGNvbWJpbmVIdG1sRXh0ZW5zaW9uc1xufSBmcm9tICdtaWNyb21hcmstdXRpbC1jb21iaW5lLWV4dGVuc2lvbnMnXG5pbXBvcnQge1xuICBnZm1BdXRvbGlua0xpdGVyYWwsXG4gIGdmbUF1dG9saW5rTGl0ZXJhbEh0bWxcbn0gZnJvbSAnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tYXV0b2xpbmstbGl0ZXJhbCdcbmltcG9ydCB7Z2ZtRm9vdG5vdGUsIGdmbUZvb3Rub3RlSHRtbH0gZnJvbSAnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGUnXG5pbXBvcnQge1xuICBnZm1TdHJpa2V0aHJvdWdoLFxuICBnZm1TdHJpa2V0aHJvdWdoSHRtbFxufSBmcm9tICdtaWNyb21hcmstZXh0ZW5zaW9uLWdmbS1zdHJpa2V0aHJvdWdoJ1xuaW1wb3J0IHtnZm1UYWJsZSwgZ2ZtVGFibGVIdG1sfSBmcm9tICdtaWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZSdcbmltcG9ydCB7Z2ZtVGFnZmlsdGVySHRtbH0gZnJvbSAnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFnZmlsdGVyJ1xuaW1wb3J0IHtcbiAgZ2ZtVGFza0xpc3RJdGVtLFxuICBnZm1UYXNrTGlzdEl0ZW1IdG1sXG59IGZyb20gJ21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhc2stbGlzdC1pdGVtJ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIGVuYWJsZSBHRk0gc3ludGF4LlxuICpcbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKlxuICogICBQYXNzZWQgdG8gYG1pY3JvbWFyay1leHRlbnMtZ2ZtLXN0cmlrZXRocm91Z2hgLlxuICogQHJldHVybnMge0V4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGV4dGVuc2lvbnNgIHRvIGVuYWJsZSBHRk1cbiAqICAgc3ludGF4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtKG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNvbWJpbmVFeHRlbnNpb25zKFtcbiAgICBnZm1BdXRvbGlua0xpdGVyYWwoKSxcbiAgICBnZm1Gb290bm90ZSgpLFxuICAgIGdmbVN0cmlrZXRocm91Z2gob3B0aW9ucyksXG4gICAgZ2ZtVGFibGUoKSxcbiAgICBnZm1UYXNrTGlzdEl0ZW0oKVxuICBdKVxufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIHN1cHBvcnQgR0ZNIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqXG4gKiBAcGFyYW0ge0h0bWxPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqXG4gKiAgIFBhc3NlZCB0byBgbWljcm9tYXJrLWV4dGVucy1nZm0tZm9vdG5vdGVgLlxuICogQHJldHVybnMge0h0bWxFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBodG1sRXh0ZW5zaW9uc2AgdG9cbiAqICAgc3VwcG9ydCBHRk0gd2hlbiBzZXJpYWxpemluZyB0byBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtSHRtbChvcHRpb25zKSB7XG4gIHJldHVybiBjb21iaW5lSHRtbEV4dGVuc2lvbnMoW1xuICAgIGdmbUF1dG9saW5rTGl0ZXJhbEh0bWwoKSxcbiAgICBnZm1Gb290bm90ZUh0bWwob3B0aW9ucyksXG4gICAgZ2ZtU3RyaWtldGhyb3VnaEh0bWwoKSxcbiAgICBnZm1UYWJsZUh0bWwoKSxcbiAgICBnZm1UYWdmaWx0ZXJIdG1sKCksXG4gICAgZ2ZtVGFza0xpc3RJdGVtSHRtbCgpXG4gIF0pXG59XG4iXSwibmFtZXMiOlsiY29tYmluZUV4dGVuc2lvbnMiLCJjb21iaW5lSHRtbEV4dGVuc2lvbnMiLCJnZm1BdXRvbGlua0xpdGVyYWwiLCJnZm1BdXRvbGlua0xpdGVyYWxIdG1sIiwiZ2ZtRm9vdG5vdGUiLCJnZm1Gb290bm90ZUh0bWwiLCJnZm1TdHJpa2V0aHJvdWdoIiwiZ2ZtU3RyaWtldGhyb3VnaEh0bWwiLCJnZm1UYWJsZSIsImdmbVRhYmxlSHRtbCIsImdmbVRhZ2ZpbHRlckh0bWwiLCJnZm1UYXNrTGlzdEl0ZW0iLCJnZm1UYXNrTGlzdEl0ZW1IdG1sIiwiZ2ZtIiwib3B0aW9ucyIsImdmbUh0bWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-extension-gfm/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-factory-destination/dev/index.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/micromark-factory-destination/dev/index.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ factoryDestination: () => (/* binding */ factoryDestination)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */ \n\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nfunction factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n // ASCII control, space, closing paren.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)) {\n return nok(code);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.contentTypeString\n });\n return raw(code);\n }\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */ function enclosedBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.contentTypeString\n });\n return enclosed(code);\n }\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */ function enclosed(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString);\n effects.exit(stringType);\n return enclosedBefore(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? enclosedEscape : enclosed;\n }\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */ function enclosedEscape(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash) {\n effects.consume(code);\n return enclosed;\n }\n return enclosed(code);\n }\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */ function raw(code) {\n if (!balance && (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code))) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString);\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n if (balance < limit && code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis) {\n effects.consume(code);\n balance++;\n return raw;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis) {\n effects.consume(code);\n balance--;\n return raw;\n }\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? rawEscape : raw;\n }\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */ function rawEscape(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash) {\n effects.consume(code);\n return raw;\n }\n return raw(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LWRlc3RpbmF0aW9uL2Rldi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0NBSUMsR0FNZ0M7QUFDNEI7QUFFN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9DQyxHQUNELHNDQUFzQztBQUMvQixTQUFTTSxtQkFDZEMsT0FBTyxFQUNQQyxFQUFFLEVBQ0ZDLEdBQUcsRUFDSEMsSUFBSSxFQUNKQyxXQUFXLEVBQ1hDLGlCQUFpQixFQUNqQkMsT0FBTyxFQUNQQyxVQUFVLEVBQ1ZDLEdBQUc7SUFFSCxNQUFNQyxRQUFRRCxPQUFPRSxPQUFPQyxpQkFBaUI7SUFDN0MsSUFBSUMsVUFBVTtJQUVkLE9BQU9DO0lBRVA7Ozs7Ozs7Ozs7O0dBV0MsR0FDRCxTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCLElBQUlBLFNBQVNsQix3REFBS0EsQ0FBQ21CLFFBQVEsRUFBRTtZQUMzQmYsUUFBUWdCLEtBQUssQ0FBQ2I7WUFDZEgsUUFBUWdCLEtBQUssQ0FBQ1o7WUFDZEosUUFBUWdCLEtBQUssQ0FBQ1g7WUFDZEwsUUFBUWlCLE9BQU8sQ0FBQ0g7WUFDaEJkLFFBQVFrQixJQUFJLENBQUNiO1lBQ2IsT0FBT2M7UUFDVDtRQUVBLHVDQUF1QztRQUN2QyxJQUNFTCxTQUFTbEIsd0RBQUtBLENBQUN3QixHQUFHLElBQ2xCTixTQUFTbEIsd0RBQUtBLENBQUN5QixLQUFLLElBQ3BCUCxTQUFTbEIsd0RBQUtBLENBQUMwQixnQkFBZ0IsSUFDL0I3QixzRUFBWUEsQ0FBQ3FCLE9BQ2I7WUFDQSxPQUFPWixJQUFJWTtRQUNiO1FBRUFkLFFBQVFnQixLQUFLLENBQUNiO1FBQ2RILFFBQVFnQixLQUFLLENBQUNWO1FBQ2ROLFFBQVFnQixLQUFLLENBQUNUO1FBQ2RQLFFBQVFnQixLQUFLLENBQUNsQix3REFBS0EsQ0FBQ3lCLFdBQVcsRUFBRTtZQUFDQyxhQUFhM0IsNERB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VWxCLElBQUk7UUFDckIsSUFDRUEsU0FBU2xCLHdEQUFLQSxDQUFDbUMsZUFBZSxJQUM5QmpCLFNBQVNsQix3REFBS0EsQ0FBQzBCLGdCQUFnQixJQUMvQlIsU0FBU2xCLHdEQUFLQSxDQUFDaUMsU0FBUyxFQUN4QjtZQUNBN0IsUUFBUWlCLE9BQU8sQ0FBQ0g7WUFDaEIsT0FBT1k7UUFDVDtRQUVBLE9BQU9BLElBQUlaO0lBQ2I7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LWRlc3RpbmF0aW9uL2Rldi9pbmRleC5qcz8wNTRjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FZmZlY3RzfSBFZmZlY3RzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlblR5cGV9IFRva2VuVHlwZVxuICovXG5cbmltcG9ydCB7XG4gIGFzY2lpQ29udHJvbCxcbiAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSxcbiAgbWFya2Rvd25MaW5lRW5kaW5nXG59IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcblxuLyoqXG4gKiBQYXJzZSBkZXN0aW5hdGlvbnMuXG4gKlxuICogIyMjIyMjIEV4YW1wbGVzXG4gKlxuICogYGBgbWFya2Rvd25cbiAqIDxhPlxuICogPGFcXD5iPlxuICogPGEgYj5cbiAqIDxhKT5cbiAqIGFcbiAqIGFcXCliXG4gKiBhKGIpY1xuICogYShiKVxuICogYGBgXG4gKlxuICogQHBhcmFtIHtFZmZlY3RzfSBlZmZlY3RzXG4gKiAgIENvbnRleHQuXG4gKiBAcGFyYW0ge1N0YXRlfSBva1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHN1Y2Nlc3NmdWwuXG4gKiBAcGFyYW0ge1N0YXRlfSBub2tcbiAqICAgU3RhdGUgc3dpdGNoZWQgdG8gd2hlbiB1bnN1Y2Nlc3NmdWwuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gdHlwZVxuICogICBUeXBlIGZvciB3aG9sZSAoYDxhPmAgb3IgYGJgKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSBsaXRlcmFsVHlwZVxuICogICBUeXBlIHdoZW4gZW5jbG9zZWQgKGA8YT5gKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSBsaXRlcmFsTWFya2VyVHlwZVxuICogICBUeXBlIGZvciBlbmNsb3NpbmcgKGA8YCBhbmQgYD5gKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSByYXdUeXBlXG4gKiAgIFR5cGUgd2hlbiBub3QgZW5jbG9zZWQgKGBiYCkuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gc3RyaW5nVHlwZVxuICogICBUeXBlIGZvciB0aGUgdmFsdWUgKGBhYCBvciBgYmApLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IFttYXg9SW5maW5pdHldXG4gKiAgIERlcHRoIG9mIG5lc3RlZCBwYXJlbnMgKGluY2x1c2l2ZSkuXG4gKiBAcmV0dXJucyB7U3RhdGV9XG4gKiAgIFN0YXJ0IHN0YXRlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXBhcmFtc1xuZXhwb3J0IGZ1bmN0aW9uIGZhY3RvcnlEZXN0aW5hdGlvbihcbiAgZWZmZWN0cyxcbiAgb2ssXG4gIG5vayxcbiAgdHlwZSxcbiAgbGl0ZXJhbFR5cGUsXG4gIGxpdGVyYWxNYXJrZXJUeXBlLFxuICByYXdUeXBlLFxuICBzdHJpbmdUeXBlLFxuICBtYXhcbikge1xuICBjb25zdCBsaW1pdCA9IG1heCB8fCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbiAgbGV0IGJhbGFuY2UgPSAwXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGFhPlxuICAgKiAgICAgXlxuICAgKiA+IHwgYWFcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMubGVzc1RoYW4pIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZSlcbiAgICAgIGVmZmVjdHMuZW50ZXIobGl0ZXJhbFR5cGUpXG4gICAgICBlZmZlY3RzLmVudGVyKGxpdGVyYWxNYXJrZXJUeXBlKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQobGl0ZXJhbE1hcmtlclR5cGUpXG4gICAgICByZXR1cm4gZW5jbG9zZWRCZWZvcmVcbiAgICB9XG5cbiAgICAvLyBBU0NJSSBjb250cm9sLCBzcGFjZSwgY2xvc2luZyBwYXJlbi5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnNwYWNlIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5yaWdodFBhcmVudGhlc2lzIHx8XG4gICAgICBhc2NpaUNvbnRyb2woY29kZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmVudGVyKHR5cGUpXG4gICAgZWZmZWN0cy5lbnRlcihyYXdUeXBlKVxuICAgIGVmZmVjdHMuZW50ZXIoc3RyaW5nVHlwZSlcbiAgICBlZmZlY3RzLmVudGVyKHR5cGVzLmNodW5rU3RyaW5nLCB7Y29udGVudFR5cGU6IGNvbnN0YW50cy5jb250ZW50VHlwZVN0cmluZ30pXG4gICAgcmV0dXJuIHJhdyhjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8YCwgYXQgYW4gZW5jbG9zZWQgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YWE+XG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW5jbG9zZWRCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbikge1xuICAgICAgZWZmZWN0cy5lbnRlcihsaXRlcmFsTWFya2VyVHlwZSlcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KGxpdGVyYWxNYXJrZXJUeXBlKVxuICAgICAgZWZmZWN0cy5leGl0KGxpdGVyYWxUeXBlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGUpXG4gICAgICByZXR1cm4gb2tcbiAgICB9XG5cbiAgICBlZmZlY3RzLmVudGVyKHN0cmluZ1R5cGUpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5jaHVua1N0cmluZywge2NvbnRlbnRUeXBlOiBjb25zdGFudHMuY29udGVudFR5cGVTdHJpbmd9KVxuICAgIHJldHVybiBlbmNsb3NlZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIGVuY2xvc2VkIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGFhPlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVuY2xvc2VkKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZ3JlYXRlclRoYW4pIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaHVua1N0cmluZylcbiAgICAgIGVmZmVjdHMuZXhpdChzdHJpbmdUeXBlKVxuICAgICAgcmV0dXJuIGVuY2xvc2VkQmVmb3JlKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMuZW9mIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5sZXNzVGhhbiB8fFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGNvZGUgPT09IGNvZGVzLmJhY2tzbGFzaCA/IGVuY2xvc2VkRXNjYXBlIDogZW5jbG9zZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXFxgLCBhdCBhIHNwZWNpYWwgY2hhcmFjdGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGFcXCphPlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW5jbG9zZWRFc2NhcGUoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlc3NUaGFuIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5ncmVhdGVyVGhhbiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuYmFja3NsYXNoXG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBlbmNsb3NlZFxuICAgIH1cblxuICAgIHJldHVybiBlbmNsb3NlZChjb2RlKVxuICB9XG5cbiAgLyoqXG4gICAqIEluIHJhdyBkZXN0aW5hdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFhXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByYXcoY29kZSkge1xuICAgIGlmIChcbiAgICAgICFiYWxhbmNlICYmXG4gICAgICAoY29kZSA9PT0gY29kZXMuZW9mIHx8XG4gICAgICAgIGNvZGUgPT09IGNvZGVzLnJpZ2h0UGFyZW50aGVzaXMgfHxcbiAgICAgICAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSlcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlcy5jaHVua1N0cmluZylcbiAgICAgIGVmZmVjdHMuZXhpdChzdHJpbmdUeXBlKVxuICAgICAgZWZmZWN0cy5leGl0KHJhd1R5cGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZSlcbiAgICAgIHJldHVybiBvayhjb2RlKVxuICAgIH1cblxuICAgIGlmIChiYWxhbmNlIDwgbGltaXQgJiYgY29kZSA9PT0gY29kZXMubGVmdFBhcmVudGhlc2lzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGJhbGFuY2UrK1xuICAgICAgcmV0dXJuIHJhd1xuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5yaWdodFBhcmVudGhlc2lzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGJhbGFuY2UtLVxuICAgICAgcmV0dXJuIHJhd1xuICAgIH1cblxuICAgIC8vIEFTQ0lJIGNvbnRyb2wgKGJ1dCAqbm90KiBgXFwwYCkgYW5kIHNwYWNlIGFuZCBgKGAuXG4gICAgLy8gTm90ZTogaW4gYG1hcmtkb3duLXJzYCwgYFxcMGAgZXhpc3RzIGluIGNvZGVzLCBpbiBgbWljcm9tYXJrLWpzYCBpdFxuICAgIC8vIGRvZXNu4oCZdC5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnNwYWNlIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5sZWZ0UGFyZW50aGVzaXMgfHxcbiAgICAgIGFzY2lpQ29udHJvbChjb2RlKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggPyByYXdFc2NhcGUgOiByYXdcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXFxgLCBhdCBzcGVjaWFsIGNoYXJhY3Rlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFcXCphXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJhd0VzY2FwZShjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMubGVmdFBhcmVudGhlc2lzIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5yaWdodFBhcmVudGhlc2lzIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2hcbiAgICApIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIHJhd1xuICAgIH1cblxuICAgIHJldHVybiByYXcoY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImFzY2lpQ29udHJvbCIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCJtYXJrZG93bkxpbmVFbmRpbmciLCJjb2RlcyIsImNvbnN0YW50cyIsInR5cGVzIiwiZmFjdG9yeURlc3RpbmF0aW9uIiwiZWZmZWN0cyIsIm9rIiwibm9rIiwidHlwZSIsImxpdGVyYWxUeXBlIiwibGl0ZXJhbE1hcmtlclR5cGUiLCJyYXdUeXBlIiwic3RyaW5nVHlwZSIsIm1heCIsImxpbWl0IiwiTnVtYmVyIiwiUE9TSVRJVkVfSU5GSU5JVFkiLCJiYWxhbmNlIiwic3RhcnQiLCJjb2RlIiwibGVzc1RoYW4iLCJlbnRlciIsImNvbnN1bWUiLCJleGl0IiwiZW5jbG9zZWRCZWZvcmUiLCJlb2YiLCJzcGFjZSIsInJpZ2h0UGFyZW50aGVzaXMiLCJjaHVua1N0cmluZyIsImNvbnRlbnRUeXBlIiwiY29udGVudFR5cGVTdHJpbmciLCJyYXciLCJncmVhdGVyVGhhbiIsImVuY2xvc2VkIiwiYmFja3NsYXNoIiwiZW5jbG9zZWRFc2NhcGUiLCJsZWZ0UGFyZW50aGVzaXMiLCJyYXdFc2NhcGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-factory-destination/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-factory-label/dev/index.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/micromark-factory-label/dev/index.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ factoryLabel: () => (/* binding */ factoryLabel)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */ \n\n\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nfunction factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this;\n let size = 0;\n /** @type {boolean} */ let seen;\n return start;\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket, \"expected `[`\");\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */ function atBreak(code) {\n if (size > micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket && !seen || // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */ code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.caret && !size && \"_hiddenFootnoteSupport\" in self.parser.constructs) {\n return nok(code);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n // To do: indent? Link chunks and EOLs together?\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding);\n return atBreak;\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.chunkString, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.constants.contentTypeString\n });\n return labelInside(code);\n }\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */ function labelInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code) || size++ > micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.types.chunkString);\n return atBreak(code);\n }\n effects.consume(code);\n if (!seen) seen = !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? labelEscape : labelInside;\n }\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */ function labelEscape(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.backslash || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LWxhYmVsL2Rldi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUV5RTtBQUNiO0FBQzFCO0FBRW5DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E4QkMsR0FDRCxzQ0FBc0M7QUFDL0IsU0FBU08sYUFBYUMsT0FBTyxFQUFFSCxFQUFFLEVBQUVJLEdBQUcsRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFVBQVU7SUFDekUsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLElBQUlDLE9BQU87SUFDWCxvQkFBb0IsR0FDcEIsSUFBSUM7SUFFSixPQUFPQztJQUVQOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLE1BQU1DLElBQUk7UUFDakJYLDBDQUFNQSxDQUFDVyxTQUFTZix3REFBS0EsQ0FBQ2dCLGlCQUFpQixFQUFFO1FBQ3pDVixRQUFRVyxLQUFLLENBQUNUO1FBQ2RGLFFBQVFXLEtBQUssQ0FBQ1I7UUFDZEgsUUFBUVksT0FBTyxDQUFDSDtRQUNoQlQsUUFBUWEsSUFBSSxDQUFDVjtRQUNiSCxRQUFRVyxLQUFLLENBQUNQO1FBQ2QsT0FBT1U7SUFDVDtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLFFBQVFMLElBQUk7UUFDbkIsSUFDRUgsT0FBT1gsNERBQVNBLENBQUNvQixvQkFBb0IsSUFDckNOLFNBQVNmLHdEQUFLQSxDQUFDc0IsR0FBRyxJQUNsQlAsU0FBU2Ysd0RBQUtBLENBQUNnQixpQkFBaUIsSUFDL0JELFNBQVNmLHdEQUFLQSxDQUFDdUIsa0JBQWtCLElBQUksQ0FBQ1YsUUFDdkMsdURBQXVEO1FBQ3ZELHdFQUF3RTtRQUN4RSwyQkFBMkI7UUFDM0IseUJBQXlCO1FBQ3pCLG9CQUFvQixHQUNuQkUsU0FBU2Ysd0RBQUtBLENBQUN3QixLQUFLLElBQ25CLENBQUNaLFFBQ0QsNEJBQTRCRCxLQUFLYyxNQUFNLENBQUNDLFVBQVUsRUFDcEQ7WUFDQSxPQUFPbkIsSUFBSVE7UUFDYjtRQUVBLElBQUlBLFNBQVNmLHdEQUFLQSxDQUFDdUIsa0JBQWtCLEVBQUU7WUFDckNqQixRQUFRYSxJQUFJLENBQUNUO1lBQ2JKLFFBQVFXLEtBQUssQ0FBQ1I7WUFDZEgsUUFBUVksT0FBTyxDQUFDSDtZQUNoQlQsUUFBUWEsSUFBSSxDQUFDVjtZQUNiSCxRQUFRYSxJQUFJLENBQUNYO1lBQ2IsT0FBT0w7UUFDVDtRQUVBLGdEQUFnRDtRQUNoRCxJQUFJTCw0RUFBa0JBLENBQUNpQixPQUFPO1lBQzVCVCxRQUFRVyxLQUFLLENBQUNmLHdEQUFLQSxDQUFDeUIsVUFBVTtZQUM5QnJCLFFBQVFZLE9BQU8sQ0FBQ0g7WUFDaEJULFFBQVFhLElBQUksQ0FBQ2pCLHdEQUFLQSxDQUFDeUIsVUFBVTtZQUM3QixPQUFPUDtRQUNUO1FBRUFkLFFBQVFXLEtBQUssQ0FBQ2Ysd0RBQUtBLENBQUMwQixXQUFXLEVBQUU7WUFBQ0MsYUFBYTVCLDREQUFTQSxDQUFDNkIsaUJBQWlCO1FBQUE7UUFDMUUsT0FBT0MsWUFBWWhCO0lBQ3JCO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU2dCLFlBQVloQixJQUFJO1FBQ3ZCLElBQ0VBLFNBQVNmLHdEQUFLQSxDQUFDc0IsR0FBRyxJQUNsQlAsU0FBU2Ysd0RBQUtBLENBQUNnQixpQkFBaUIsSUFDaENELFNBQVNmLHdEQUFLQSxDQUFDdUIsa0JBQWtCLElBQ2pDekIsNEVBQWtCQSxDQUFDaUIsU0FDbkJILFNBQVNYLDREQUFTQSxDQUFDb0Isb0JBQW9CLEVBQ3ZDO1lBQ0FmLFFBQVFhLElBQUksQ0FBQ2pCLHdEQUFLQSxDQUFDMEIsV0FBVztZQUM5QixPQUFPUixRQUFRTDtRQUNqQjtRQUVBVCxRQUFRWSxPQUFPLENBQUNIO1FBQ2hCLElBQUksQ0FBQ0YsTUFBTUEsT0FBTyxDQUFDZCx1RUFBYUEsQ0FBQ2dCO1FBQ2pDLE9BQU9BLFNBQVNmLHdEQUFLQSxDQUFDZ0MsU0FBUyxHQUFHQyxjQUFjRjtJQUNsRDtJQUVBOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNFLFlBQVlsQixJQUFJO1FBQ3ZCLElBQ0VBLFNBQVNmLHdEQUFLQSxDQUFDZ0IsaUJBQWlCLElBQ2hDRCxTQUFTZix3REFBS0EsQ0FBQ2dDLFNBQVMsSUFDeEJqQixTQUFTZix3REFBS0EsQ0FBQ3VCLGtCQUFrQixFQUNqQztZQUNBakIsUUFBUVksT0FBTyxDQUFDSDtZQUNoQkg7WUFDQSxPQUFPbUI7UUFDVDtRQUVBLE9BQU9BLFlBQVloQjtJQUNyQjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWZhY3RvcnktbGFiZWwvZGV2L2luZGV4LmpzP2RlN2MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkVmZmVjdHN9IEVmZmVjdHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuVHlwZX0gVG9rZW5UeXBlXG4gKi9cblxuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKlxuICogUGFyc2UgbGFiZWxzLlxuICpcbiAqID4g8J+RiSAqKk5vdGUqKjogbGFiZWxzIGluIG1hcmtkb3duIGFyZSBjYXBwZWQgYXQgOTk5IGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZy5cbiAqXG4gKiAjIyMjIyMgRXhhbXBsZXNcbiAqXG4gKiBgYGBtYXJrZG93blxuICogW2FdXG4gKiBbYVxuICogYl1cbiAqIFthXFxdYl1cbiAqIGBgYFxuICpcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIFRva2VuaXplIGNvbnRleHQuXG4gKiBAcGFyYW0ge0VmZmVjdHN9IGVmZmVjdHNcbiAqICAgQ29udGV4dC5cbiAqIEBwYXJhbSB7U3RhdGV9IG9rXG4gKiAgIFN0YXRlIHN3aXRjaGVkIHRvIHdoZW4gc3VjY2Vzc2Z1bC5cbiAqIEBwYXJhbSB7U3RhdGV9IG5va1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHVuc3VjY2Vzc2Z1bC5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSB0eXBlXG4gKiAgIFR5cGUgb2YgdGhlIHdob2xlIGxhYmVsIChgW2FdYCkuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gbWFya2VyVHlwZVxuICogICBUeXBlIGZvciB0aGUgbWFya2VycyAoYFtgIGFuZCBgXWApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IHN0cmluZ1R5cGVcbiAqICAgVHlwZSBmb3IgdGhlIGlkZW50aWZpZXIgKGBhYCkuXG4gKiBAcmV0dXJucyB7U3RhdGV9XG4gKiAgIFN0YXJ0IHN0YXRlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXBhcmFtc1xuZXhwb3J0IGZ1bmN0aW9uIGZhY3RvcnlMYWJlbChlZmZlY3RzLCBvaywgbm9rLCB0eXBlLCBtYXJrZXJUeXBlLCBzdHJpbmdUeXBlKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzXG4gIGxldCBzaXplID0gMFxuICAvKiogQHR5cGUge2Jvb2xlYW59ICovXG4gIGxldCBzZWVuXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGxhYmVsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0LCAnZXhwZWN0ZWQgYFtgJylcbiAgICBlZmZlY3RzLmVudGVyKHR5cGUpXG4gICAgZWZmZWN0cy5lbnRlcihtYXJrZXJUeXBlKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdChtYXJrZXJUeXBlKVxuICAgIGVmZmVjdHMuZW50ZXIoc3RyaW5nVHlwZSlcbiAgICByZXR1cm4gYXRCcmVha1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCBhdCBzb21ldGhpbmcsIGJlZm9yZSBzb21ldGhpbmcgZWxzZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGF0QnJlYWsoY29kZSkge1xuICAgIGlmIChcbiAgICAgIHNpemUgPiBjb25zdGFudHMubGlua1JlZmVyZW5jZVNpemVNYXggfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMubGVmdFNxdWFyZUJyYWNrZXQgfHxcbiAgICAgIChjb2RlID09PSBjb2Rlcy5yaWdodFNxdWFyZUJyYWNrZXQgJiYgIXNlZW4pIHx8XG4gICAgICAvLyBUbyBkbzogcmVtb3ZlIGluIHRoZSBmdXR1cmUgb25jZSB3ZeKAmXZlIHN3aXRjaGVkIGZyb21cbiAgICAgIC8vIGBtaWNyb21hcmstZXh0ZW5zaW9uLWZvb3Rub3RlYCB0byBgbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGVgLFxuICAgICAgLy8gd2hpY2ggZG9lc27igJl0IG5lZWQgdGhpcy5cbiAgICAgIC8vIEhpZGRlbiBmb290bm90ZXMgaG9vay5cbiAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICAgIChjb2RlID09PSBjb2Rlcy5jYXJldCAmJlxuICAgICAgICAhc2l6ZSAmJlxuICAgICAgICAnX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCcgaW4gc2VsZi5wYXJzZXIuY29uc3RydWN0cylcbiAgICApIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0KSB7XG4gICAgICBlZmZlY3RzLmV4aXQoc3RyaW5nVHlwZSlcbiAgICAgIGVmZmVjdHMuZW50ZXIobWFya2VyVHlwZSlcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KG1hcmtlclR5cGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZSlcbiAgICAgIHJldHVybiBva1xuICAgIH1cblxuICAgIC8vIFRvIGRvOiBpbmRlbnQ/IExpbmsgY2h1bmtzIGFuZCBFT0xzIHRvZ2V0aGVyP1xuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgICByZXR1cm4gYXRCcmVha1xuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuY2h1bmtTdHJpbmcsIHtjb250ZW50VHlwZTogY29uc3RhbnRzLmNvbnRlbnRUeXBlU3RyaW5nfSlcbiAgICByZXR1cm4gbGFiZWxJbnNpZGUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBsYWJlbCwgaW4gdGV4dC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5lb2YgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0IHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5yaWdodFNxdWFyZUJyYWNrZXQgfHxcbiAgICAgIG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSB8fFxuICAgICAgc2l6ZSsrID4gY29uc3RhbnRzLmxpbmtSZWZlcmVuY2VTaXplTWF4XG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY2h1bmtTdHJpbmcpXG4gICAgICByZXR1cm4gYXRCcmVhayhjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGlmICghc2Vlbikgc2VlbiA9ICFtYXJrZG93blNwYWNlKGNvZGUpXG4gICAgcmV0dXJuIGNvZGUgPT09IGNvZGVzLmJhY2tzbGFzaCA/IGxhYmVsRXNjYXBlIDogbGFiZWxJbnNpZGVcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXFxgLCBhdCBhIHNwZWNpYWwgY2hhcmFjdGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FcXCphXVxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxFc2NhcGUoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0IHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldFxuICAgICkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBzaXplKytcbiAgICAgIHJldHVybiBsYWJlbEluc2lkZVxuICAgIH1cblxuICAgIHJldHVybiBsYWJlbEluc2lkZShjb2RlKVxuICB9XG59XG4iXSwibmFtZXMiOlsibWFya2Rvd25MaW5lRW5kaW5nIiwibWFya2Rvd25TcGFjZSIsImNvZGVzIiwiY29uc3RhbnRzIiwidHlwZXMiLCJvayIsImFzc2VydCIsImZhY3RvcnlMYWJlbCIsImVmZmVjdHMiLCJub2siLCJ0eXBlIiwibWFya2VyVHlwZSIsInN0cmluZ1R5cGUiLCJzZWxmIiwic2l6ZSIsInNlZW4iLCJzdGFydCIsImNvZGUiLCJsZWZ0U3F1YXJlQnJhY2tldCIsImVudGVyIiwiY29uc3VtZSIsImV4aXQiLCJhdEJyZWFrIiwibGlua1JlZmVyZW5jZVNpemVNYXgiLCJlb2YiLCJyaWdodFNxdWFyZUJyYWNrZXQiLCJjYXJldCIsInBhcnNlciIsImNvbnN0cnVjdHMiLCJsaW5lRW5kaW5nIiwiY2h1bmtTdHJpbmciLCJjb250ZW50VHlwZSIsImNvbnRlbnRUeXBlU3RyaW5nIiwibGFiZWxJbnNpZGUiLCJiYWNrc2xhc2giLCJsYWJlbEVzY2FwZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-factory-label/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-factory-space/dev/index.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/micromark-factory-space/dev/index.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ factorySpace: () => (/* binding */ factorySpace)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */ \n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */ function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n /** @type {State} */ function start(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {\n effects.enter(type);\n return prefix(code);\n }\n return ok(code);\n }\n /** @type {State} */ function prefix(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code) && size++ < limit) {\n effects.consume(code);\n return prefix;\n }\n effects.exit(type);\n return ok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LXNwYWNlL2Rldi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7O0NBSUMsR0FFcUQ7QUFFdEQsOEVBQThFO0FBRTlFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBK0JDLEdBQ00sU0FBU0MsYUFBYUMsT0FBTyxFQUFFQyxFQUFFLEVBQUVDLElBQUksRUFBRUMsR0FBRztJQUNqRCxNQUFNQyxRQUFRRCxNQUFNQSxNQUFNLElBQUlFLE9BQU9DLGlCQUFpQjtJQUN0RCxJQUFJQyxPQUFPO0lBRVgsT0FBT0M7SUFFUCxrQkFBa0IsR0FDbEIsU0FBU0EsTUFBTUMsSUFBSTtRQUNqQixJQUFJWCx1RUFBYUEsQ0FBQ1csT0FBTztZQUN2QlQsUUFBUVUsS0FBSyxDQUFDUjtZQUNkLE9BQU9TLE9BQU9GO1FBQ2hCO1FBRUEsT0FBT1IsR0FBR1E7SUFDWjtJQUVBLGtCQUFrQixHQUNsQixTQUFTRSxPQUFPRixJQUFJO1FBQ2xCLElBQUlYLHVFQUFhQSxDQUFDVyxTQUFTRixTQUFTSCxPQUFPO1lBQ3pDSixRQUFRWSxPQUFPLENBQUNIO1lBQ2hCLE9BQU9FO1FBQ1Q7UUFFQVgsUUFBUWEsSUFBSSxDQUFDWDtRQUNiLE9BQU9ELEdBQUdRO0lBQ1o7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LXNwYWNlL2Rldi9pbmRleC5qcz9kNmQxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FZmZlY3RzfSBFZmZlY3RzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlblR5cGV9IFRva2VuVHlwZVxuICovXG5cbmltcG9ydCB7bWFya2Rvd25TcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuXG4vLyBUbyBkbzogaW1wbGVtZW50IGBzcGFjZU9yVGFiYCwgYHNwYWNlT3JUYWJNaW5NYXhgLCBgc3BhY2VPclRhYldpdGhPcHRpb25zYC5cblxuLyoqXG4gKiBQYXJzZSBzcGFjZXMgYW5kIHRhYnMuXG4gKlxuICogVGhlcmUgaXMgbm8gYG5va2AgcGFyYW1ldGVyOlxuICpcbiAqICogICBzcGFjZXMgaW4gbWFya2Rvd24gYXJlIG9mdGVuIG9wdGlvbmFsLCBpbiB3aGljaCBjYXNlIHRoaXMgZmFjdG9yeSBjYW4gYmVcbiAqICAgICB1c2VkIGFuZCBgb2tgIHdpbGwgYmUgc3dpdGNoZWQgdG8gd2hldGhlciBzcGFjZXMgd2VyZSBmb3VuZCBvciBub3RcbiAqICogICBvbmUgbGluZSBlbmRpbmcgb3Igc3BhY2UgY2FuIGJlIGRldGVjdGVkIHdpdGggYG1hcmtkb3duU3BhY2UoY29kZSlgIHJpZ2h0XG4gKiAgICAgYmVmb3JlIHVzaW5nIGBmYWN0b3J5U3BhY2VgXG4gKlxuICogIyMjIyMjIEV4YW1wbGVzXG4gKlxuICogV2hlcmUgYOKQiWAgcmVwcmVzZW50cyBhIHRhYiAocGx1cyBob3cgbXVjaCBpdCBleHBhbmRzKSBhbmQgYOKQoGAgcmVwcmVzZW50cyBhXG4gKiBzaW5nbGUgc3BhY2UuXG4gKlxuICogYGBgbWFya2Rvd25cbiAqIOKQiVxuICog4pCg4pCg4pCg4pCgXG4gKiDikInikKBcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7RWZmZWN0c30gZWZmZWN0c1xuICogICBDb250ZXh0LlxuICogQHBhcmFtIHtTdGF0ZX0gb2tcbiAqICAgU3RhdGUgc3dpdGNoZWQgdG8gd2hlbiBzdWNjZXNzZnVsLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IHR5cGVcbiAqICAgVHlwZSAoYCcgXFx0J2ApLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IFttYXg9SW5maW5pdHldXG4gKiAgIE1heCAoZXhjbHVzaXZlKS5cbiAqIEByZXR1cm5zIHtTdGF0ZX1cbiAqICAgU3RhcnQgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgb2ssIHR5cGUsIG1heCkge1xuICBjb25zdCBsaW1pdCA9IG1heCA/IG1heCAtIDEgOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbiAgbGV0IHNpemUgPSAwXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGUpXG4gICAgICByZXR1cm4gcHJlZml4KGNvZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBwcmVmaXgoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpICYmIHNpemUrKyA8IGxpbWl0KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBwcmVmaXhcbiAgICB9XG5cbiAgICBlZmZlY3RzLmV4aXQodHlwZSlcbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm1hcmtkb3duU3BhY2UiLCJmYWN0b3J5U3BhY2UiLCJlZmZlY3RzIiwib2siLCJ0eXBlIiwibWF4IiwibGltaXQiLCJOdW1iZXIiLCJQT1NJVElWRV9JTkZJTklUWSIsInNpemUiLCJzdGFydCIsImNvZGUiLCJlbnRlciIsInByZWZpeCIsImNvbnN1bWUiLCJleGl0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-factory-space/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-factory-title/dev/index.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/micromark-factory-title/dev/index.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ factoryTitle: () => (/* binding */ factoryTitle)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */ \n\n\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nfunction factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */ let marker;\n return start;\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */ function start(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.apostrophe || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n marker = code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis : code;\n return begin;\n }\n return nok(code);\n }\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */ function begin(code) {\n if (code === marker) {\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code);\n }\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */ function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof) {\n return nok(code);\n }\n // Note: blank lines can’t exist in content.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding);\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, atBreak, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix);\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.contentTypeString\n });\n return inside(code);\n }\n /**\n *\n *\n * @type {State}\n */ function inside(code) {\n if (code === marker || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.chunkString);\n return atBreak(code);\n }\n effects.consume(code);\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? escape : inside;\n }\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */ function escape(code) {\n if (code === marker || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash) {\n effects.consume(code);\n return inside;\n }\n return inside(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LXRpdGxlL2Rldi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUVtRDtBQUNPO0FBQ0U7QUFFN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQThCQyxHQUNELHNDQUFzQztBQUMvQixTQUFTSyxhQUFhQyxPQUFPLEVBQUVDLEVBQUUsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsVUFBVTtJQUN6RSw4QkFBOEIsR0FDOUIsSUFBSUM7SUFFSixPQUFPQztJQUVQOzs7Ozs7Ozs7R0FTQyxHQUNELFNBQVNBLE1BQU1DLElBQUk7UUFDakIsSUFDRUEsU0FBU1osd0RBQUtBLENBQUNhLGFBQWEsSUFDNUJELFNBQVNaLHdEQUFLQSxDQUFDYyxVQUFVLElBQ3pCRixTQUFTWix3REFBS0EsQ0FBQ2UsZUFBZSxFQUM5QjtZQUNBWCxRQUFRWSxLQUFLLENBQUNUO1lBQ2RILFFBQVFZLEtBQUssQ0FBQ1I7WUFDZEosUUFBUWEsT0FBTyxDQUFDTDtZQUNoQlIsUUFBUWMsSUFBSSxDQUFDVjtZQUNiRSxTQUFTRSxTQUFTWix3REFBS0EsQ0FBQ2UsZUFBZSxHQUFHZix3REFBS0EsQ0FBQ21CLGdCQUFnQixHQUFHUDtZQUNuRSxPQUFPUTtRQUNUO1FBRUEsT0FBT2QsSUFBSU07SUFDYjtJQUVBOzs7Ozs7Ozs7OztHQVdDLEdBQ0QsU0FBU1EsTUFBTVIsSUFBSTtRQUNqQixJQUFJQSxTQUFTRixRQUFRO1lBQ25CTixRQUFRWSxLQUFLLENBQUNSO1lBQ2RKLFFBQVFhLE9BQU8sQ0FBQ0w7WUFDaEJSLFFBQVFjLElBQUksQ0FBQ1Y7WUFDYkosUUFBUWMsSUFBSSxDQUFDWDtZQUNiLE9BQU9GO1FBQ1Q7UUFFQUQsUUFBUVksS0FBSyxDQUFDUDtRQUNkLE9BQU9ZLFFBQVFUO0lBQ2pCO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU1MsUUFBUVQsSUFBSTtRQUNuQixJQUFJQSxTQUFTRixRQUFRO1lBQ25CTixRQUFRYyxJQUFJLENBQUNUO1lBQ2IsT0FBT1csTUFBTVY7UUFDZjtRQUVBLElBQUlFLFNBQVNaLHdEQUFLQSxDQUFDc0IsR0FBRyxFQUFFO1lBQ3RCLE9BQU9oQixJQUFJTTtRQUNiO1FBRUEsNENBQTRDO1FBQzVDLElBQUliLDRFQUFrQkEsQ0FBQ2EsT0FBTztZQUM1Qix1REFBdUQ7WUFDdkRSLFFBQVFZLEtBQUssQ0FBQ2Qsd0RBQUtBLENBQUNxQixVQUFVO1lBQzlCbkIsUUFBUWEsT0FBTyxDQUFDTDtZQUNoQlIsUUFBUWMsSUFBSSxDQUFDaEIsd0RBQUtBLENBQUNxQixVQUFVO1lBQzdCLE9BQU96QixxRUFBWUEsQ0FBQ00sU0FBU2lCLFNBQVNuQix3REFBS0EsQ0FBQ3NCLFVBQVU7UUFDeEQ7UUFFQXBCLFFBQVFZLEtBQUssQ0FBQ2Qsd0RBQUtBLENBQUN1QixXQUFXLEVBQUU7WUFBQ0MsYUFBYXpCLDREQUFTQSxDQUFDMEIsaUJBQWlCO1FBQUE7UUFDMUUsT0FBT0MsT0FBT2hCO0lBQ2hCO0lBRUE7Ozs7R0FJQyxHQUNELFNBQVNnQixPQUFPaEIsSUFBSTtRQUNsQixJQUFJQSxTQUFTRixVQUFVRSxTQUFTWix3REFBS0EsQ0FBQ3NCLEdBQUcsSUFBSXZCLDRFQUFrQkEsQ0FBQ2EsT0FBTztZQUNyRVIsUUFBUWMsSUFBSSxDQUFDaEIsd0RBQUtBLENBQUN1QixXQUFXO1lBQzlCLE9BQU9KLFFBQVFUO1FBQ2pCO1FBRUFSLFFBQVFhLE9BQU8sQ0FBQ0w7UUFDaEIsT0FBT0EsU0FBU1osd0RBQUtBLENBQUM2QixTQUFTLEdBQUdDLFNBQVNGO0lBQzdDO0lBRUE7Ozs7Ozs7OztHQVNDLEdBQ0QsU0FBU0UsT0FBT2xCLElBQUk7UUFDbEIsSUFBSUEsU0FBU0YsVUFBVUUsU0FBU1osd0RBQUtBLENBQUM2QixTQUFTLEVBQUU7WUFDL0N6QixRQUFRYSxPQUFPLENBQUNMO1lBQ2hCLE9BQU9nQjtRQUNUO1FBRUEsT0FBT0EsT0FBT2hCO0lBQ2hCO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstZmFjdG9yeS10aXRsZS9kZXYvaW5kZXguanM/ZGQwNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FZmZlY3RzfSBFZmZlY3RzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlblR5cGV9IFRva2VuVHlwZVxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge2NvZGVzLCBjb25zdGFudHMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5cbi8qKlxuICogUGFyc2UgdGl0bGVzLlxuICpcbiAqICMjIyMjIyBFeGFtcGxlc1xuICpcbiAqIGBgYG1hcmtkb3duXG4gKiBcImFcIlxuICogJ2InXG4gKiAoYylcbiAqIFwiYVxuICogYlwiXG4gKiAnYVxuICogICAgIGInXG4gKiAoYVxcKWIpXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge0VmZmVjdHN9IGVmZmVjdHNcbiAqICAgQ29udGV4dC5cbiAqIEBwYXJhbSB7U3RhdGV9IG9rXG4gKiAgIFN0YXRlIHN3aXRjaGVkIHRvIHdoZW4gc3VjY2Vzc2Z1bC5cbiAqIEBwYXJhbSB7U3RhdGV9IG5va1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHVuc3VjY2Vzc2Z1bC5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSB0eXBlXG4gKiAgIFR5cGUgb2YgdGhlIHdob2xlIHRpdGxlIChgXCJhXCJgLCBgJ2InYCwgYChjKWApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IG1hcmtlclR5cGVcbiAqICAgVHlwZSBmb3IgdGhlIG1hcmtlcnMgKGBcImAsIGAnYCwgYChgLCBhbmQgYClgKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSBzdHJpbmdUeXBlXG4gKiAgIFR5cGUgZm9yIHRoZSB2YWx1ZSAoYGFgKS5cbiAqIEByZXR1cm5zIHtTdGF0ZX1cbiAqICAgU3RhcnQgc3RhdGUuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtcGFyYW1zXG5leHBvcnQgZnVuY3Rpb24gZmFjdG9yeVRpdGxlKGVmZmVjdHMsIG9rLCBub2ssIHR5cGUsIG1hcmtlclR5cGUsIHN0cmluZ1R5cGUpIHtcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPn0gKi9cbiAgbGV0IG1hcmtlclxuXG4gIHJldHVybiBzdGFydFxuXG4gIC8qKlxuICAgKiBTdGFydCBvZiB0aXRsZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFwiYVwiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMucXVvdGF0aW9uTWFyayB8fFxuICAgICAgY29kZSA9PT0gY29kZXMuYXBvc3Ryb3BoZSB8fFxuICAgICAgY29kZSA9PT0gY29kZXMubGVmdFBhcmVudGhlc2lzXG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGUpXG4gICAgICBlZmZlY3RzLmVudGVyKG1hcmtlclR5cGUpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdChtYXJrZXJUeXBlKVxuICAgICAgbWFya2VyID0gY29kZSA9PT0gY29kZXMubGVmdFBhcmVudGhlc2lzID8gY29kZXMucmlnaHRQYXJlbnRoZXNpcyA6IGNvZGVcbiAgICAgIHJldHVybiBiZWdpblxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBvcGVuaW5nIG1hcmtlci5cbiAgICpcbiAgICogVGhpcyBpcyBhbHNvIHVzZWQgYXQgdGhlIGNsb3NpbmcgbWFya2VyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgXCJhXCJcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZWdpbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgZWZmZWN0cy5lbnRlcihtYXJrZXJUeXBlKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQobWFya2VyVHlwZSlcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlKVxuICAgICAgcmV0dXJuIG9rXG4gICAgfVxuXG4gICAgZWZmZWN0cy5lbnRlcihzdHJpbmdUeXBlKVxuICAgIHJldHVybiBhdEJyZWFrKGNvZGUpXG4gIH1cblxuICAvKipcbiAgICogQXQgc29tZXRoaW5nLCBiZWZvcmUgc29tZXRoaW5nIGVsc2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBcImFcIlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGF0QnJlYWsoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChzdHJpbmdUeXBlKVxuICAgICAgcmV0dXJuIGJlZ2luKG1hcmtlcilcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgLy8gTm90ZTogYmxhbmsgbGluZXMgY2Fu4oCZdCBleGlzdCBpbiBjb250ZW50LlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIC8vIFRvIGRvOiB1c2UgYHNwYWNlX29yX3RhYl9lb2xfd2l0aF9vcHRpb25zYCwgY29ubmVjdC5cbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGF0QnJlYWssIHR5cGVzLmxpbmVQcmVmaXgpXG4gICAgfVxuXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5jaHVua1N0cmluZywge2NvbnRlbnRUeXBlOiBjb25zdGFudHMuY29udGVudFR5cGVTdHJpbmd9KVxuICAgIHJldHVybiBpbnNpZGUoY29kZSlcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIgfHwgY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmNodW5rU3RyaW5nKVxuICAgICAgcmV0dXJuIGF0QnJlYWsoY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gY29kZSA9PT0gY29kZXMuYmFja3NsYXNoID8gZXNjYXBlIDogaW5zaWRlXG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYFxcYCwgYXQgYSBzcGVjaWFsIGNoYXJhY3Rlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFwiYVxcKmJcIlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVzY2FwZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlciB8fCBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2gpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGluc2lkZVxuICAgIH1cblxuICAgIHJldHVybiBpbnNpZGUoY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZhY3RvcnlTcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsImNvZGVzIiwiY29uc3RhbnRzIiwidHlwZXMiLCJmYWN0b3J5VGl0bGUiLCJlZmZlY3RzIiwib2siLCJub2siLCJ0eXBlIiwibWFya2VyVHlwZSIsInN0cmluZ1R5cGUiLCJtYXJrZXIiLCJzdGFydCIsImNvZGUiLCJxdW90YXRpb25NYXJrIiwiYXBvc3Ryb3BoZSIsImxlZnRQYXJlbnRoZXNpcyIsImVudGVyIiwiY29uc3VtZSIsImV4aXQiLCJyaWdodFBhcmVudGhlc2lzIiwiYmVnaW4iLCJhdEJyZWFrIiwiZW9mIiwibGluZUVuZGluZyIsImxpbmVQcmVmaXgiLCJjaHVua1N0cmluZyIsImNvbnRlbnRUeXBlIiwiY29udGVudFR5cGVTdHJpbmciLCJpbnNpZGUiLCJiYWNrc2xhc2giLCJlc2NhcGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-factory-title/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-factory-whitespace/dev/index.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/micromark-factory-whitespace/dev/index.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ factoryWhitespace: () => (/* binding */ factoryWhitespace)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */ \n\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns {State}\n * Start state.\n */ function factoryWhitespace(effects, ok) {\n /** @type {boolean} */ let seen;\n return start;\n /** @type {State} */ function start(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownLineEnding)(code)) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding);\n seen = true;\n return start;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(effects, start, seen ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix)(code);\n }\n return ok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LXdoaXRlc3BhY2UvZGV2L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7O0NBR0MsR0FFbUQ7QUFDc0I7QUFDL0I7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJDLEdBQ00sU0FBU0ksa0JBQWtCQyxPQUFPLEVBQUVDLEVBQUU7SUFDM0Msb0JBQW9CLEdBQ3BCLElBQUlDO0lBRUosT0FBT0M7SUFFUCxrQkFBa0IsR0FDbEIsU0FBU0EsTUFBTUMsSUFBSTtRQUNqQixJQUFJUiw0RUFBa0JBLENBQUNRLE9BQU87WUFDNUJKLFFBQVFLLEtBQUssQ0FBQ1Asd0RBQUtBLENBQUNRLFVBQVU7WUFDOUJOLFFBQVFPLE9BQU8sQ0FBQ0g7WUFDaEJKLFFBQVFRLElBQUksQ0FBQ1Ysd0RBQUtBLENBQUNRLFVBQVU7WUFDN0JKLE9BQU87WUFDUCxPQUFPQztRQUNUO1FBRUEsSUFBSU4sdUVBQWFBLENBQUNPLE9BQU87WUFDdkIsT0FBT1QscUVBQVlBLENBQ2pCSyxTQUNBRyxPQUNBRCxPQUFPSix3REFBS0EsQ0FBQ1csVUFBVSxHQUFHWCx3REFBS0EsQ0FBQ1ksVUFBVSxFQUMxQ047UUFDSjtRQUVBLE9BQU9ILEdBQUdHO0lBQ1o7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LXdoaXRlc3BhY2UvZGV2L2luZGV4LmpzPzk0Y2QiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkVmZmVjdHN9IEVmZmVjdHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7dHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcblxuLyoqXG4gKiBQYXJzZSBzcGFjZXMgYW5kIHRhYnMuXG4gKlxuICogVGhlcmUgaXMgbm8gYG5va2AgcGFyYW1ldGVyOlxuICpcbiAqICogICBsaW5lIGVuZGluZ3Mgb3Igc3BhY2VzIGluIG1hcmtkb3duIGFyZSBvZnRlbiBvcHRpb25hbCwgaW4gd2hpY2ggY2FzZSB0aGlzXG4gKiAgICAgZmFjdG9yeSBjYW4gYmUgdXNlZCBhbmQgYG9rYCB3aWxsIGJlIHN3aXRjaGVkIHRvIHdoZXRoZXIgc3BhY2VzIHdlcmUgZm91bmRcbiAqICAgICBvciBub3RcbiAqICogICBvbmUgbGluZSBlbmRpbmcgb3Igc3BhY2UgY2FuIGJlIGRldGVjdGVkIHdpdGhcbiAqICAgICBgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKWAgcmlnaHQgYmVmb3JlIHVzaW5nIGBmYWN0b3J5V2hpdGVzcGFjZWBcbiAqXG4gKiBAcGFyYW0ge0VmZmVjdHN9IGVmZmVjdHNcbiAqICAgQ29udGV4dC5cbiAqIEBwYXJhbSB7U3RhdGV9IG9rXG4gKiAgIFN0YXRlIHN3aXRjaGVkIHRvIHdoZW4gc3VjY2Vzc2Z1bC5cbiAqIEByZXR1cm5zIHtTdGF0ZX1cbiAqICAgU3RhcnQgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmYWN0b3J5V2hpdGVzcGFjZShlZmZlY3RzLCBvaykge1xuICAvKiogQHR5cGUge2Jvb2xlYW59ICovXG4gIGxldCBzZWVuXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpbmVFbmRpbmcpXG4gICAgICBzZWVuID0gdHJ1ZVxuICAgICAgcmV0dXJuIHN0YXJ0XG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoXG4gICAgICAgIGVmZmVjdHMsXG4gICAgICAgIHN0YXJ0LFxuICAgICAgICBzZWVuID8gdHlwZXMubGluZVByZWZpeCA6IHR5cGVzLmxpbmVTdWZmaXhcbiAgICAgICkoY29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gb2soY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZhY3RvcnlTcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsIm1hcmtkb3duU3BhY2UiLCJ0eXBlcyIsImZhY3RvcnlXaGl0ZXNwYWNlIiwiZWZmZWN0cyIsIm9rIiwic2VlbiIsInN0YXJ0IiwiY29kZSIsImVudGVyIiwibGluZUVuZGluZyIsImNvbnN1bWUiLCJleGl0IiwibGluZVByZWZpeCIsImxpbmVTdWZmaXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-factory-whitespace/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-character/dev/index.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/micromark-util-character/dev/index.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ asciiAlpha: () => (/* binding */ asciiAlpha),\n/* harmony export */ asciiAlphanumeric: () => (/* binding */ asciiAlphanumeric),\n/* harmony export */ asciiAtext: () => (/* binding */ asciiAtext),\n/* harmony export */ asciiControl: () => (/* binding */ asciiControl),\n/* harmony export */ asciiDigit: () => (/* binding */ asciiDigit),\n/* harmony export */ asciiHexDigit: () => (/* binding */ asciiHexDigit),\n/* harmony export */ asciiPunctuation: () => (/* binding */ asciiPunctuation),\n/* harmony export */ markdownLineEnding: () => (/* binding */ markdownLineEnding),\n/* harmony export */ markdownLineEndingOrSpace: () => (/* binding */ markdownLineEndingOrSpace),\n/* harmony export */ markdownSpace: () => (/* binding */ markdownSpace),\n/* harmony export */ unicodePunctuation: () => (/* binding */ unicodePunctuation),\n/* harmony export */ unicodeWhitespace: () => (/* binding */ unicodeWhitespace)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n */ \n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ const asciiAlpha = regexCheck(/[A-Za-z]/);\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ function asciiControl(code) {\n return(// Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.del));\n}\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ const asciiDigit = regexCheck(/\\d/);\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ function markdownLineEnding(code) {\n return code !== null && code < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab;\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ function markdownLineEndingOrSpace(code) {\n return code !== null && (code < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.nul || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space);\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */ function markdownSpace(code) {\n return code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space;\n}\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */ const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */ const unicodeWhitespace = regexCheck(/\\s/);\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */ function regexCheck(regex) {\n return check;\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */ function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNoYXJhY3Rlci9kZXYvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztDQUVDLEdBRTBDO0FBRTNDOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JDLEdBQ00sTUFBTUMsYUFBYUMsV0FBVyxZQUFXO0FBRWhEOzs7Ozs7Ozs7OztDQVdDLEdBQ00sTUFBTUMsb0JBQW9CRCxXQUFXLGNBQWE7QUFFekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBb0JDLEdBQ00sTUFBTUUsYUFBYUYsV0FBVyx1QkFBc0I7QUFFM0Q7Ozs7Ozs7Ozs7Q0FVQyxHQUNNLFNBQVNHLGFBQWFDLElBQUk7SUFDL0IsT0FDRSx3RUFBd0U7SUFDeEUsZ0JBQWdCO0lBQ2hCQSxTQUFTLFFBQVNBLENBQUFBLE9BQU9OLHdEQUFLQSxDQUFDTyxLQUFLLElBQUlELFNBQVNOLHdEQUFLQSxDQUFDUSxHQUFHO0FBRTlEO0FBRUE7Ozs7Ozs7Ozs7Q0FVQyxHQUNNLE1BQU1DLGFBQWFQLFdBQVcsTUFBSztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQkMsR0FDTSxNQUFNUSxnQkFBZ0JSLFdBQVcsY0FBYTtBQUVyRDs7Ozs7Ozs7Ozs7O0NBWUMsR0FDTSxNQUFNUyxtQkFBbUJULFdBQVcsa0JBQWlCO0FBRTVEOzs7Ozs7Ozs7Ozs7OztDQWNDLEdBQ00sU0FBU1UsbUJBQW1CTixJQUFJO0lBQ3JDLE9BQU9BLFNBQVMsUUFBUUEsT0FBT04sd0RBQUtBLENBQUNhLGFBQWE7QUFDcEQ7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNNLFNBQVNDLDBCQUEwQlIsSUFBSTtJQUM1QyxPQUFPQSxTQUFTLFFBQVNBLENBQUFBLE9BQU9OLHdEQUFLQSxDQUFDZSxHQUFHLElBQUlULFNBQVNOLHdEQUFLQSxDQUFDTyxLQUFLO0FBQ25FO0FBRUE7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FDTSxTQUFTUyxjQUFjVixJQUFJO0lBQ2hDLE9BQ0VBLFNBQVNOLHdEQUFLQSxDQUFDYSxhQUFhLElBQzVCUCxTQUFTTix3REFBS0EsQ0FBQ2lCLFlBQVksSUFDM0JYLFNBQVNOLHdEQUFLQSxDQUFDTyxLQUFLO0FBRXhCO0FBRUEsNkVBQTZFO0FBQzdFLG1DQUFtQztBQUNuQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0JDLEdBQ00sTUFBTVcscUJBQXFCaEIsV0FBVyxnQkFBZTtBQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1CQyxHQUNNLE1BQU1pQixvQkFBb0JqQixXQUFXLE1BQUs7QUFFakQ7Ozs7O0NBS0MsR0FDRCxTQUFTQSxXQUFXa0IsS0FBSztJQUN2QixPQUFPQztJQUVQOzs7Ozs7O0dBT0MsR0FDRCxTQUFTQSxNQUFNZixJQUFJO1FBQ2pCLE9BQU9BLFNBQVMsUUFBUUEsT0FBTyxDQUFDLEtBQUtjLE1BQU1FLElBQUksQ0FBQ0MsT0FBT0MsWUFBWSxDQUFDbEI7SUFDdEU7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNoYXJhY3Rlci9kZXYvaW5kZXguanM/ZTdkNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICovXG5cbmltcG9ydCB7Y29kZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIGFuIEFTQ0lJIGFscGhhIChgYWAgdGhyb3VnaCBgemAsXG4gKiBjYXNlIGluc2Vuc2l0aXZlKS5cbiAqXG4gKiBBbiAqKkFTQ0lJIGFscGhhKiogaXMgYW4gQVNDSUkgdXBwZXIgYWxwaGEgb3IgQVNDSUkgbG93ZXIgYWxwaGEuXG4gKlxuICogQW4gKipBU0NJSSB1cHBlciBhbHBoYSoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDQxIChgQWApXG4gKiB0byBVKzAwNUEgKGBaYCkuXG4gKlxuICogQW4gKipBU0NJSSBsb3dlciBhbHBoYSoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDYxIChgYWApXG4gKiB0byBVKzAwN0EgKGB6YCkuXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBhc2NpaUFscGhhID0gcmVnZXhDaGVjaygvW0EtWmEtel0vKVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgYW4gQVNDSUkgYWxwaGFudW1lcmljIChgYWBcbiAqIHRocm91Z2ggYHpgLCBjYXNlIGluc2Vuc2l0aXZlLCBvciBgMGAgdGhyb3VnaCBgOWApLlxuICpcbiAqIEFuICoqQVNDSUkgYWxwaGFudW1lcmljKiogaXMgYW4gQVNDSUkgZGlnaXQgKHNlZSBgYXNjaWlEaWdpdGApIG9yIEFTQ0lJIGFscGhhXG4gKiAoc2VlIGBhc2NpaUFscGhhYCkuXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBhc2NpaUFscGhhbnVtZXJpYyA9IHJlZ2V4Q2hlY2soL1tcXGRBLVphLXpdLylcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIGFuIEFTQ0lJIGF0ZXh0LlxuICpcbiAqIGF0ZXh0IGlzIGFuIEFTQ0lJIGFscGhhbnVtZXJpYyAoc2VlIGBhc2NpaUFscGhhbnVtZXJpY2ApLCBvciBhIGNoYXJhY3RlciBpblxuICogdGhlIGluY2x1c2l2ZSByYW5nZXMgVSswMDIzIE5VTUJFUiBTSUdOIChgI2ApIHRvIFUrMDAyNyBBUE9TVFJPUEhFIChgJ2ApLFxuICogVSswMDJBIEFTVEVSSVNLIChgKmApLCBVKzAwMkIgUExVUyBTSUdOIChgK2ApLCBVKzAwMkQgREFTSCAoYC1gKSwgVSswMDJGXG4gKiBTTEFTSCAoYC9gKSwgVSswMDNEIEVRVUFMUyBUTyAoYD1gKSwgVSswMDNGIFFVRVNUSU9OIE1BUksgKGA/YCksIFUrMDA1RVxuICogQ0FSRVQgKGBeYCkgdG8gVSswMDYwIEdSQVZFIEFDQ0VOVCAoYGAgYCBgYCksIG9yIFUrMDA3QiBMRUZUIENVUkxZIEJSQUNFXG4gKiAoYHtgKSB0byBVKzAwN0UgVElMREUgKGB+YCkuXG4gKlxuICogU2VlOlxuICogKipcXFtSRkM1MzIyXSoqOlxuICogW0ludGVybmV0IE1lc3NhZ2UgRm9ybWF0XShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMikuXG4gKiBQLiBSZXNuaWNrLlxuICogSUVURi5cbiAqXG4gKiBAcGFyYW0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGFzY2lpQXRleHQgPSByZWdleENoZWNrKC9bIy0nKitcXC0tOT0/QS1aXi1+XS8pXG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIGNoYXJhY3RlciBjb2RlIGlzIGFuIEFTQ0lJIGNvbnRyb2wgY2hhcmFjdGVyLlxuICpcbiAqIEFuICoqQVNDSUkgY29udHJvbCoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDAwIE5VTEwgKE5VTClcbiAqIHRvIFUrMDAxRiAoVVMpLCBvciBVKzAwN0YgKERFTCkuXG4gKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNjaWlDb250cm9sKGNvZGUpIHtcbiAgcmV0dXJuIChcbiAgICAvLyBTcGVjaWFsIHdoaXRlc3BhY2UgY29kZXMgKHdoaWNoIGhhdmUgbmVnYXRpdmUgdmFsdWVzKSwgQzAgYW5kIENvbnRyb2xcbiAgICAvLyBjaGFyYWN0ZXIgREVMXG4gICAgY29kZSAhPT0gbnVsbCAmJiAoY29kZSA8IGNvZGVzLnNwYWNlIHx8IGNvZGUgPT09IGNvZGVzLmRlbClcbiAgKVxufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgYW4gQVNDSUkgZGlnaXQgKGAwYCB0aHJvdWdoIGA5YCkuXG4gKlxuICogQW4gKipBU0NJSSBkaWdpdCoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDMwIChgMGApIHRvXG4gKiBVKzAwMzkgKGA5YCkuXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBhc2NpaURpZ2l0ID0gcmVnZXhDaGVjaygvXFxkLylcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIGFuIEFTQ0lJIGhleCBkaWdpdCAoYGFgIHRocm91Z2hcbiAqIGBmYCwgY2FzZSBpbnNlbnNpdGl2ZSwgb3IgYDBgIHRocm91Z2ggYDlgKS5cbiAqXG4gKiBBbiAqKkFTQ0lJIGhleCBkaWdpdCoqIGlzIGFuIEFTQ0lJIGRpZ2l0IChzZWUgYGFzY2lpRGlnaXRgKSwgQVNDSUkgdXBwZXIgaGV4XG4gKiBkaWdpdCwgb3IgYW4gQVNDSUkgbG93ZXIgaGV4IGRpZ2l0LlxuICpcbiAqIEFuICoqQVNDSUkgdXBwZXIgaGV4IGRpZ2l0KiogaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIGluY2x1c2l2ZSByYW5nZSBVKzAwNDFcbiAqIChgQWApIHRvIFUrMDA0NiAoYEZgKS5cbiAqXG4gKiBBbiAqKkFTQ0lJIGxvd2VyIGhleCBkaWdpdCoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDYxXG4gKiAoYGFgKSB0byBVKzAwNjYgKGBmYCkuXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBhc2NpaUhleERpZ2l0ID0gcmVnZXhDaGVjaygvW1xcZEEtRmEtZl0vKVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgQVNDSUkgcHVuY3R1YXRpb24uXG4gKlxuICogQW4gKipBU0NJSSBwdW5jdHVhdGlvbioqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2VzIFUrMDAyMVxuICogRVhDTEFNQVRJT04gTUFSSyAoYCFgKSB0byBVKzAwMkYgU0xBU0ggKGAvYCksIFUrMDAzQSBDT0xPTiAoYDpgKSB0byBVKzAwNDAgQVRcbiAqIFNJR04gKGBAYCksIFUrMDA1QiBMRUZUIFNRVUFSRSBCUkFDS0VUIChgW2ApIHRvIFUrMDA2MCBHUkFWRSBBQ0NFTlRcbiAqIChgYCBgIGBgKSwgb3IgVSswMDdCIExFRlQgQ1VSTFkgQlJBQ0UgKGB7YCkgdG8gVSswMDdFIFRJTERFIChgfmApLlxuICpcbiAqIEBwYXJhbSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgYXNjaWlQdW5jdHVhdGlvbiA9IHJlZ2V4Q2hlY2soL1shLS86LUBbLWB7LX5dLylcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGEgY2hhcmFjdGVyIGNvZGUgaXMgYSBtYXJrZG93biBsaW5lIGVuZGluZy5cbiAqXG4gKiBBICoqbWFya2Rvd24gbGluZSBlbmRpbmcqKiBpcyB0aGUgdmlydHVhbCBjaGFyYWN0ZXJzIE0tMDAwMyBDQVJSSUFHRSBSRVRVUk5cbiAqIExJTkUgRkVFRCAoQ1JMRiksIE0tMDAwNCBMSU5FIEZFRUQgKExGKSBhbmQgTS0wMDA1IENBUlJJQUdFIFJFVFVSTiAoQ1IpLlxuICpcbiAqIEluIG1pY3JvbWFyaywgdGhlIGFjdHVhbCBjaGFyYWN0ZXIgVSswMDBBIExJTkUgRkVFRCAoTEYpIGFuZCBVKzAwMEQgQ0FSUklBR0VcbiAqIFJFVFVSTiAoQ1IpIGFyZSByZXBsYWNlZCBieSB0aGVzZSB2aXJ0dWFsIGNoYXJhY3RlcnMgZGVwZW5kaW5nIG9uIHdoZXRoZXJcbiAqIHRoZXkgb2NjdXJyZWQgdG9nZXRoZXIuXG4gKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUgIT09IG51bGwgJiYgY29kZSA8IGNvZGVzLmhvcml6b250YWxUYWJcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGEgY2hhcmFjdGVyIGNvZGUgaXMgYSBtYXJrZG93biBsaW5lIGVuZGluZyAoc2VlXG4gKiBgbWFya2Rvd25MaW5lRW5kaW5nYCkgb3IgbWFya2Rvd24gc3BhY2UgKHNlZSBgbWFya2Rvd25TcGFjZWApLlxuICpcbiAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkge1xuICByZXR1cm4gY29kZSAhPT0gbnVsbCAmJiAoY29kZSA8IGNvZGVzLm51bCB8fCBjb2RlID09PSBjb2Rlcy5zcGFjZSlcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGEgY2hhcmFjdGVyIGNvZGUgaXMgYSBtYXJrZG93biBzcGFjZS5cbiAqXG4gKiBBICoqbWFya2Rvd24gc3BhY2UqKiBpcyB0aGUgY29uY3JldGUgY2hhcmFjdGVyIFUrMDAyMCBTUEFDRSAoU1ApIGFuZCB0aGVcbiAqIHZpcnR1YWwgY2hhcmFjdGVycyBNLTAwMDEgVklSVFVBTCBTUEFDRSAoVlMpIGFuZCBNLTAwMDIgSE9SSVpPTlRBTCBUQUIgKEhUKS5cbiAqXG4gKiBJbiBtaWNyb21hcmssIHRoZSBhY3R1YWwgY2hhcmFjdGVyIFUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAoSFQpIGlzXG4gKiByZXBsYWNlZCBieSBvbmUgTS0wMDAyIEhPUklaT05UQUwgVEFCIChIVCkgYW5kIGJldHdlZW4gMCBhbmQgMyBNLTAwMDEgVklSVFVBTFxuICogU1BBQ0UgKFZTKSBjaGFyYWN0ZXJzLCBkZXBlbmRpbmcgb24gdGhlIGNvbHVtbiBhdCB3aGljaCB0aGUgdGFiIG9jY3VycmVkLlxuICpcbiAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duU3BhY2UoY29kZSkge1xuICByZXR1cm4gKFxuICAgIGNvZGUgPT09IGNvZGVzLmhvcml6b250YWxUYWIgfHxcbiAgICBjb2RlID09PSBjb2Rlcy52aXJ0dWFsU3BhY2UgfHxcbiAgICBjb2RlID09PSBjb2Rlcy5zcGFjZVxuICApXG59XG5cbi8vIFNpemUgbm90ZTogcmVtb3ZpbmcgQVNDSUkgZnJvbSB0aGUgcmVnZXggYW5kIHVzaW5nIGBhc2NpaVB1bmN0dWF0aW9uYCBoZXJlXG4vLyBJbiBmYWN0IGFkZHMgdG8gdGhlIGJ1bmRsZSBzaXplLlxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIFVuaWNvZGUgcHVuY3R1YXRpb24uXG4gKlxuICogQSAqKlVuaWNvZGUgcHVuY3R1YXRpb24qKiBpcyBhIGNoYXJhY3RlciBpbiB0aGUgVW5pY29kZSBgUGNgIChQdW5jdHVhdGlvbixcbiAqIENvbm5lY3RvciksIGBQZGAgKFB1bmN0dWF0aW9uLCBEYXNoKSwgYFBlYCAoUHVuY3R1YXRpb24sIENsb3NlKSwgYFBmYFxuICogKFB1bmN0dWF0aW9uLCBGaW5hbCBxdW90ZSksIGBQaWAgKFB1bmN0dWF0aW9uLCBJbml0aWFsIHF1b3RlKSwgYFBvYFxuICogKFB1bmN0dWF0aW9uLCBPdGhlciksIG9yIGBQc2AgKFB1bmN0dWF0aW9uLCBPcGVuKSBjYXRlZ29yaWVzLCBvciBhbiBBU0NJSVxuICogcHVuY3R1YXRpb24gKHNlZSBgYXNjaWlQdW5jdHVhdGlvbmApLlxuICpcbiAqIFNlZTpcbiAqICoqXFxbVU5JQ09ERV0qKjpcbiAqIFtUaGUgVW5pY29kZSBTdGFuZGFyZF0oaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvdmVyc2lvbnMvKS5cbiAqIFVuaWNvZGUgQ29uc29ydGl1bS5cbiAqXG4gKiBAcGFyYW0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnNcbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgdW5pY29kZVB1bmN0dWF0aW9uID0gcmVnZXhDaGVjaygvXFxwe1B9fFxccHtTfS91KVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgVW5pY29kZSB3aGl0ZXNwYWNlLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIGRvZXMgaGFuZGxlIG1pY3JvbWFyayBzcGVjaWZpYyBtYXJrZG93biB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMuXG4gKiBTZWUgYG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2VgIHRvIGNoZWNrIHRoYXQuXG4gKlxuICogQSAqKlVuaWNvZGUgd2hpdGVzcGFjZSoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBVbmljb2RlIGBac2AgKFNlcGFyYXRvcixcbiAqIFNwYWNlKSBjYXRlZ29yeSwgb3IgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OIChIVCksIFUrMDAwQSBMSU5FIEZFRUQgKExGKSxcbiAqIFUrMDAwQyAoRkYpLCBvciBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgKCoqXFxbVU5JQ09ERV0qKikuXG4gKlxuICogU2VlOlxuICogKipcXFtVTklDT0RFXSoqOlxuICogW1RoZSBVbmljb2RlIFN0YW5kYXJkXShodHRwczovL3d3dy51bmljb2RlLm9yZy92ZXJzaW9ucy8pLlxuICogVW5pY29kZSBDb25zb3J0aXVtLlxuICpcbiAqIEBwYXJhbSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJuc1xuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB1bmljb2RlV2hpdGVzcGFjZSA9IHJlZ2V4Q2hlY2soL1xccy8pXG5cbi8qKlxuICogQ3JlYXRlIGEgY29kZSBjaGVjayBmcm9tIGEgcmVnZXguXG4gKlxuICogQHBhcmFtIHtSZWdFeHB9IHJlZ2V4XG4gKiBAcmV0dXJucyB7KGNvZGU6IENvZGUpID0+IGJvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIHJlZ2V4Q2hlY2socmVnZXgpIHtcbiAgcmV0dXJuIGNoZWNrXG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBjb2RlIG1hdGNoZXMgdGhlIGJvdW5kIHJlZ2V4LlxuICAgKlxuICAgKiBAcGFyYW0ge0NvZGV9IGNvZGVcbiAgICogICBDaGFyYWN0ZXIgY29kZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqICAgV2hldGhlciB0aGUgY2hhcmFjdGVyIGNvZGUgbWF0Y2hlcyB0aGUgYm91bmQgcmVnZXguXG4gICAqL1xuICBmdW5jdGlvbiBjaGVjayhjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUgIT09IG51bGwgJiYgY29kZSA+IC0xICYmIHJlZ2V4LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNvZGVzIiwiYXNjaWlBbHBoYSIsInJlZ2V4Q2hlY2siLCJhc2NpaUFscGhhbnVtZXJpYyIsImFzY2lpQXRleHQiLCJhc2NpaUNvbnRyb2wiLCJjb2RlIiwic3BhY2UiLCJkZWwiLCJhc2NpaURpZ2l0IiwiYXNjaWlIZXhEaWdpdCIsImFzY2lpUHVuY3R1YXRpb24iLCJtYXJrZG93bkxpbmVFbmRpbmciLCJob3Jpem9udGFsVGFiIiwibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsIm51bCIsIm1hcmtkb3duU3BhY2UiLCJ2aXJ0dWFsU3BhY2UiLCJ1bmljb2RlUHVuY3R1YXRpb24iLCJ1bmljb2RlV2hpdGVzcGFjZSIsInJlZ2V4IiwiY2hlY2siLCJ0ZXN0IiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-character/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-chunked/dev/index.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/micromark-util-chunked/dev/index.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ push: () => (/* binding */ push),\n/* harmony export */ splice: () => (/* binding */ splice)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n\n/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */ function splice(list, start, remove, items) {\n const end = list.length;\n let chunkStart = 0;\n /** @type {Array<unknown>} */ let parameters;\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove);\n // Insert the items in chunks to not cause stack overflows.\n while(chunkStart < items.length){\n parameters = items.slice(chunkStart, chunkStart + micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize);\n parameters.unshift(start, 0);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n chunkStart += micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize;\n start += micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize;\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */ function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items);\n return list;\n }\n return items;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNodW5rZWQvZGV2L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUErQztBQUUvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJDLEdBQ00sU0FBU0MsT0FBT0MsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsS0FBSztJQUMvQyxNQUFNQyxNQUFNSixLQUFLSyxNQUFNO0lBQ3ZCLElBQUlDLGFBQWE7SUFDakIsMkJBQTJCLEdBQzNCLElBQUlDO0lBRUosZ0RBQWdEO0lBQ2hELElBQUlOLFFBQVEsR0FBRztRQUNiQSxRQUFRLENBQUNBLFFBQVFHLE1BQU0sSUFBSUEsTUFBTUg7SUFDbkMsT0FBTztRQUNMQSxRQUFRQSxRQUFRRyxNQUFNQSxNQUFNSDtJQUM5QjtJQUVBQyxTQUFTQSxTQUFTLElBQUlBLFNBQVM7SUFFL0IsbUVBQW1FO0lBQ25FLElBQUlDLE1BQU1FLE1BQU0sR0FBR1AsNERBQVNBLENBQUNVLGtCQUFrQixFQUFFO1FBQy9DRCxhQUFhRSxNQUFNQyxJQUFJLENBQUNQO1FBQ3hCSSxXQUFXSSxPQUFPLENBQUNWLE9BQU9DO1FBQzFCLG9DQUFvQztRQUNwQ0YsS0FBS0QsTUFBTSxJQUFJUTtJQUNqQixPQUFPO1FBQ0wsOENBQThDO1FBQzlDLElBQUlMLFFBQVFGLEtBQUtELE1BQU0sQ0FBQ0UsT0FBT0M7UUFFL0IsMkRBQTJEO1FBQzNELE1BQU9JLGFBQWFILE1BQU1FLE1BQU0sQ0FBRTtZQUNoQ0UsYUFBYUosTUFBTVMsS0FBSyxDQUN0Qk4sWUFDQUEsYUFBYVIsNERBQVNBLENBQUNVLGtCQUFrQjtZQUUzQ0QsV0FBV0ksT0FBTyxDQUFDVixPQUFPO1lBQzFCLG9DQUFvQztZQUNwQ0QsS0FBS0QsTUFBTSxJQUFJUTtZQUVmRCxjQUFjUiw0REFBU0EsQ0FBQ1Usa0JBQWtCO1lBQzFDUCxTQUFTSCw0REFBU0EsQ0FBQ1Usa0JBQWtCO1FBQ3ZDO0lBQ0Y7QUFDRjtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlQyxHQUNNLFNBQVNLLEtBQUtiLElBQUksRUFBRUcsS0FBSztJQUM5QixJQUFJSCxLQUFLSyxNQUFNLEdBQUcsR0FBRztRQUNuQk4sT0FBT0MsTUFBTUEsS0FBS0ssTUFBTSxFQUFFLEdBQUdGO1FBQzdCLE9BQU9IO0lBQ1Q7SUFFQSxPQUFPRztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtY2h1bmtlZC9kZXYvaW5kZXguanM/Yjg4NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NvbnN0YW50c30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuXG4vKipcbiAqIExpa2UgYEFycmF5I3NwbGljZWAsIGJ1dCBzbWFydGVyIGZvciBnaWFudCBhcnJheXMuXG4gKlxuICogYEFycmF5I3NwbGljZWAgdGFrZXMgYWxsIGl0ZW1zIHRvIGJlIGluc2VydGVkIGFzIGluZGl2aWR1YWwgYXJndW1lbnQgd2hpY2hcbiAqIGNhdXNlcyBhIHN0YWNrIG92ZXJmbG93IGluIFY4IHdoZW4gdHJ5aW5nIHRvIGluc2VydCAxMDBrIGl0ZW1zIGZvciBpbnN0YW5jZS5cbiAqXG4gKiBPdGhlcndpc2UsIHRoaXMgZG9lcyBub3QgcmV0dXJuIHRoZSByZW1vdmVkIGl0ZW1zLCBhbmQgdGFrZXMgYGl0ZW1zYCBhcyBhblxuICogYXJyYXkgaW5zdGVhZCBvZiByZXN0IHBhcmFtZXRlcnMuXG4gKlxuICogQHRlbXBsYXRlIHt1bmtub3dufSBUXG4gKiAgIEl0ZW0gdHlwZS5cbiAqIEBwYXJhbSB7QXJyYXk8VD59IGxpc3RcbiAqICAgTGlzdCB0byBvcGVyYXRlIG9uLlxuICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0XG4gKiAgIEluZGV4IHRvIHJlbW92ZS9pbnNlcnQgYXQgKGNhbiBiZSBuZWdhdGl2ZSkuXG4gKiBAcGFyYW0ge251bWJlcn0gcmVtb3ZlXG4gKiAgIE51bWJlciBvZiBpdGVtcyB0byByZW1vdmUuXG4gKiBAcGFyYW0ge0FycmF5PFQ+fSBpdGVtc1xuICogICBJdGVtcyB0byBpbmplY3QgaW50byBgbGlzdGAuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaWNlKGxpc3QsIHN0YXJ0LCByZW1vdmUsIGl0ZW1zKSB7XG4gIGNvbnN0IGVuZCA9IGxpc3QubGVuZ3RoXG4gIGxldCBjaHVua1N0YXJ0ID0gMFxuICAvKiogQHR5cGUge0FycmF5PHVua25vd24+fSAqL1xuICBsZXQgcGFyYW1ldGVyc1xuXG4gIC8vIE1ha2Ugc3RhcnQgYmV0d2VlbiB6ZXJvIGFuZCBgZW5kYCAoaW5jbHVkZWQpLlxuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgPSAtc3RhcnQgPiBlbmQgPyAwIDogZW5kICsgc3RhcnRcbiAgfSBlbHNlIHtcbiAgICBzdGFydCA9IHN0YXJ0ID4gZW5kID8gZW5kIDogc3RhcnRcbiAgfVxuXG4gIHJlbW92ZSA9IHJlbW92ZSA+IDAgPyByZW1vdmUgOiAwXG5cbiAgLy8gTm8gbmVlZCB0byBjaHVuayB0aGUgaXRlbXMgaWYgdGhlcmXigJlzIG9ubHkgYSBjb3VwbGUgKDEwaykgaXRlbXMuXG4gIGlmIChpdGVtcy5sZW5ndGggPCBjb25zdGFudHMudjhNYXhTYWZlQ2h1bmtTaXplKSB7XG4gICAgcGFyYW1ldGVycyA9IEFycmF5LmZyb20oaXRlbXMpXG4gICAgcGFyYW1ldGVycy51bnNoaWZ0KHN0YXJ0LCByZW1vdmUpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBIdXNoLCBpdOKAmXMgZmluZS5cbiAgICBsaXN0LnNwbGljZSguLi5wYXJhbWV0ZXJzKVxuICB9IGVsc2Uge1xuICAgIC8vIERlbGV0ZSBgcmVtb3ZlYCBpdGVtcyBzdGFydGluZyBmcm9tIGBzdGFydGBcbiAgICBpZiAocmVtb3ZlKSBsaXN0LnNwbGljZShzdGFydCwgcmVtb3ZlKVxuXG4gICAgLy8gSW5zZXJ0IHRoZSBpdGVtcyBpbiBjaHVua3MgdG8gbm90IGNhdXNlIHN0YWNrIG92ZXJmbG93cy5cbiAgICB3aGlsZSAoY2h1bmtTdGFydCA8IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgcGFyYW1ldGVycyA9IGl0ZW1zLnNsaWNlKFxuICAgICAgICBjaHVua1N0YXJ0LFxuICAgICAgICBjaHVua1N0YXJ0ICsgY29uc3RhbnRzLnY4TWF4U2FmZUNodW5rU2l6ZVxuICAgICAgKVxuICAgICAgcGFyYW1ldGVycy51bnNoaWZ0KHN0YXJ0LCAwKVxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBIdXNoLCBpdOKAmXMgZmluZS5cbiAgICAgIGxpc3Quc3BsaWNlKC4uLnBhcmFtZXRlcnMpXG5cbiAgICAgIGNodW5rU3RhcnQgKz0gY29uc3RhbnRzLnY4TWF4U2FmZUNodW5rU2l6ZVxuICAgICAgc3RhcnQgKz0gY29uc3RhbnRzLnY4TWF4U2FmZUNodW5rU2l6ZVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwcGVuZCBgaXRlbXNgIChhbiBhcnJheSkgYXQgdGhlIGVuZCBvZiBgbGlzdGAgKGFub3RoZXIgYXJyYXkpLlxuICogV2hlbiBgbGlzdGAgd2FzIGVtcHR5LCByZXR1cm5zIGBpdGVtc2AgaW5zdGVhZC5cbiAqXG4gKiBUaGlzIHByZXZlbnRzIGEgcG90ZW50aWFsbHkgZXhwZW5zaXZlIG9wZXJhdGlvbiB3aGVuIGBsaXN0YCBpcyBlbXB0eSxcbiAqIGFuZCBhZGRzIGl0ZW1zIGluIGJhdGNoZXMgdG8gcHJldmVudCBWOCBmcm9tIGhhbmdpbmcuXG4gKlxuICogQHRlbXBsYXRlIHt1bmtub3dufSBUXG4gKiAgIEl0ZW0gdHlwZS5cbiAqIEBwYXJhbSB7QXJyYXk8VD59IGxpc3RcbiAqICAgTGlzdCB0byBvcGVyYXRlIG9uLlxuICogQHBhcmFtIHtBcnJheTxUPn0gaXRlbXNcbiAqICAgSXRlbXMgdG8gYWRkIHRvIGBsaXN0YC5cbiAqIEByZXR1cm5zIHtBcnJheTxUPn1cbiAqICAgRWl0aGVyIGBsaXN0YCBvciBgaXRlbXNgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHVzaChsaXN0LCBpdGVtcykge1xuICBpZiAobGlzdC5sZW5ndGggPiAwKSB7XG4gICAgc3BsaWNlKGxpc3QsIGxpc3QubGVuZ3RoLCAwLCBpdGVtcylcbiAgICByZXR1cm4gbGlzdFxuICB9XG5cbiAgcmV0dXJuIGl0ZW1zXG59XG4iXSwibmFtZXMiOlsiY29uc3RhbnRzIiwic3BsaWNlIiwibGlzdCIsInN0YXJ0IiwicmVtb3ZlIiwiaXRlbXMiLCJlbmQiLCJsZW5ndGgiLCJjaHVua1N0YXJ0IiwicGFyYW1ldGVycyIsInY4TWF4U2FmZUNodW5rU2l6ZSIsIkFycmF5IiwiZnJvbSIsInVuc2hpZnQiLCJzbGljZSIsInB1c2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-classify-character/dev/index.js":
-/*!*************************************************************************!*\
- !*** ../../node_modules/micromark-util-classify-character/dev/index.js ***!
- \*************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ classifyCharacter: () => (/* binding */ classifyCharacter)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n */ \n\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */ function classifyCharacter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code)) {\n return micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupWhitespace;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuation)(code)) {\n return micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupPunctuation;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNsYXNzaWZ5LWNoYXJhY3Rlci9kZXYvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztDQUVDLEdBTWdDO0FBQ3FCO0FBRXREOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDTSxTQUFTSyxrQkFBa0JDLElBQUk7SUFDcEMsSUFDRUEsU0FBU0gsd0RBQUtBLENBQUNJLEdBQUcsSUFDbEJQLG1GQUF5QkEsQ0FBQ00sU0FDMUJKLDJFQUFpQkEsQ0FBQ0ksT0FDbEI7UUFDQSxPQUFPRiw0REFBU0EsQ0FBQ0ksd0JBQXdCO0lBQzNDO0lBRUEsSUFBSVAsNEVBQWtCQSxDQUFDSyxPQUFPO1FBQzVCLE9BQU9GLDREQUFTQSxDQUFDSyx5QkFBeUI7SUFDNUM7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNsYXNzaWZ5LWNoYXJhY3Rlci9kZXYvaW5kZXguanM/OTQzMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICovXG5cbmltcG9ydCB7XG4gIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsXG4gIHVuaWNvZGVQdW5jdHVhdGlvbixcbiAgdW5pY29kZVdoaXRlc3BhY2Vcbn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtjb2RlcywgY29uc3RhbnRzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5cbi8qKlxuICogQ2xhc3NpZnkgd2hldGhlciBhIGNvZGUgcmVwcmVzZW50cyB3aGl0ZXNwYWNlLCBwdW5jdHVhdGlvbiwgb3Igc29tZXRoaW5nXG4gKiBlbHNlLlxuICpcbiAqIFVzZWQgZm9yIGF0dGVudGlvbiAoZW1waGFzaXMsIHN0cm9uZyksIHdob3NlIHNlcXVlbmNlcyBjYW4gb3BlbiBvciBjbG9zZVxuICogYmFzZWQgb24gdGhlIGNsYXNzIG9mIHN1cnJvdW5kaW5nIGNoYXJhY3RlcnMuXG4gKlxuICogPiDwn5GJICoqTm90ZSoqOiBlb2YgKGBudWxsYCkgaXMgc2VlbiBhcyB3aGl0ZXNwYWNlLlxuICpcbiAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnMge3R5cGVvZiBjb25zdGFudHMuY2hhcmFjdGVyR3JvdXBXaGl0ZXNwYWNlIHwgdHlwZW9mIGNvbnN0YW50cy5jaGFyYWN0ZXJHcm91cFB1bmN0dWF0aW9uIHwgdW5kZWZpbmVkfVxuICogICBHcm91cC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsYXNzaWZ5Q2hhcmFjdGVyKGNvZGUpIHtcbiAgaWYgKFxuICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgfHxcbiAgICB1bmljb2RlV2hpdGVzcGFjZShjb2RlKVxuICApIHtcbiAgICByZXR1cm4gY29uc3RhbnRzLmNoYXJhY3Rlckdyb3VwV2hpdGVzcGFjZVxuICB9XG5cbiAgaWYgKHVuaWNvZGVQdW5jdHVhdGlvbihjb2RlKSkge1xuICAgIHJldHVybiBjb25zdGFudHMuY2hhcmFjdGVyR3JvdXBQdW5jdHVhdGlvblxuICB9XG59XG4iXSwibmFtZXMiOlsibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsInVuaWNvZGVQdW5jdHVhdGlvbiIsInVuaWNvZGVXaGl0ZXNwYWNlIiwiY29kZXMiLCJjb25zdGFudHMiLCJjbGFzc2lmeUNoYXJhY3RlciIsImNvZGUiLCJlb2YiLCJjaGFyYWN0ZXJHcm91cFdoaXRlc3BhY2UiLCJjaGFyYWN0ZXJHcm91cFB1bmN0dWF0aW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-classify-character/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-combine-extensions/index.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/micromark-util-combine-extensions/index.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ combineExtensions: () => (/* binding */ combineExtensions),\n/* harmony export */ combineHtmlExtensions: () => (/* binding */ combineHtmlExtensions)\n/* harmony export */ });\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ \"(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\");\n/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */ \nconst hasOwnProperty = {}.hasOwnProperty;\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */ function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */ const all = {};\n let index = -1;\n while(++index < extensions.length){\n syntaxExtension(all, extensions[index]);\n }\n return all;\n}\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n */ function syntaxExtension(all, extension) {\n /** @type {keyof Extension} */ let hook;\n for(hook in extension){\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined;\n /** @type {Record<string, unknown>} */ const left = maybe || (all[hook] = {});\n /** @type {Record<string, unknown> | undefined} */ const right = extension[hook];\n /** @type {string} */ let code;\n if (right) {\n for(code in right){\n if (!hasOwnProperty.call(left, code)) left[code] = [];\n const value = right[code];\n constructs(// @ts-expect-error Looks like a list.\n left[code], Array.isArray(value) ? value : value ? [\n value\n ] : []);\n }\n }\n }\n}\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {undefined}\n */ function constructs(existing, list) {\n let index = -1;\n /** @type {Array<unknown>} */ const before = [];\n while(++index < list.length){\n // @ts-expect-error Looks like an object.\n ;\n (list[index].add === \"after\" ? existing : before).push(list[index]);\n }\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__.splice)(existing, 0, 0, before);\n}\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */ function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */ const handlers = {};\n let index = -1;\n while(++index < htmlExtensions.length){\n htmlExtension(handlers, htmlExtensions[index]);\n }\n return handlers;\n}\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n */ function htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */ let hook;\n for(hook in extension){\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined;\n const left = maybe || (all[hook] = {});\n const right = extension[hook];\n /** @type {keyof Handles} */ let type;\n if (right) {\n for(type in right){\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type];\n }\n }\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNvbWJpbmUtZXh0ZW5zaW9ucy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUU0QztBQUU3QyxNQUFNQyxpQkFBaUIsQ0FBQyxFQUFFQSxjQUFjO0FBRXhDOzs7Ozs7O0NBT0MsR0FDTSxTQUFTQyxrQkFBa0JDLFVBQVU7SUFDMUMsZ0NBQWdDLEdBQ2hDLE1BQU1DLE1BQU0sQ0FBQztJQUNiLElBQUlDLFFBQVEsQ0FBQztJQUViLE1BQU8sRUFBRUEsUUFBUUYsV0FBV0csTUFBTSxDQUFFO1FBQ2xDQyxnQkFBZ0JILEtBQUtELFVBQVUsQ0FBQ0UsTUFBTTtJQUN4QztJQUVBLE9BQU9EO0FBQ1Q7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELFNBQVNHLGdCQUFnQkgsR0FBRyxFQUFFSSxTQUFTO0lBQ3JDLDRCQUE0QixHQUM1QixJQUFJQztJQUVKLElBQUtBLFFBQVFELFVBQVc7UUFDdEIsTUFBTUUsUUFBUVQsZUFBZVUsSUFBSSxDQUFDUCxLQUFLSyxRQUFRTCxHQUFHLENBQUNLLEtBQUssR0FBR0c7UUFDM0Qsb0NBQW9DLEdBQ3BDLE1BQU1DLE9BQU9ILFNBQVVOLENBQUFBLEdBQUcsQ0FBQ0ssS0FBSyxHQUFHLENBQUM7UUFDcEMsZ0RBQWdELEdBQ2hELE1BQU1LLFFBQVFOLFNBQVMsQ0FBQ0MsS0FBSztRQUM3QixtQkFBbUIsR0FDbkIsSUFBSU07UUFFSixJQUFJRCxPQUFPO1lBQ1QsSUFBS0MsUUFBUUQsTUFBTztnQkFDbEIsSUFBSSxDQUFDYixlQUFlVSxJQUFJLENBQUNFLE1BQU1FLE9BQU9GLElBQUksQ0FBQ0UsS0FBSyxHQUFHLEVBQUU7Z0JBQ3JELE1BQU1DLFFBQVFGLEtBQUssQ0FBQ0MsS0FBSztnQkFDekJFLFdBQ0Usc0NBQXNDO2dCQUN0Q0osSUFBSSxDQUFDRSxLQUFLLEVBQ1ZHLE1BQU1DLE9BQU8sQ0FBQ0gsU0FBU0EsUUFBUUEsUUFBUTtvQkFBQ0E7aUJBQU0sR0FBRyxFQUFFO1lBRXZEO1FBQ0Y7SUFDRjtBQUNGO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNELFNBQVNDLFdBQVdHLFFBQVEsRUFBRUMsSUFBSTtJQUNoQyxJQUFJaEIsUUFBUSxDQUFDO0lBQ2IsMkJBQTJCLEdBQzNCLE1BQU1pQixTQUFTLEVBQUU7SUFFakIsTUFBTyxFQUFFakIsUUFBUWdCLEtBQUtmLE1BQU0sQ0FBRTtRQUM1Qix5Q0FBeUM7O1FBQ3ZDZSxDQUFBQSxJQUFJLENBQUNoQixNQUFNLENBQUNrQixHQUFHLEtBQUssVUFBVUgsV0FBV0UsTUFBSyxFQUFHRSxJQUFJLENBQUNILElBQUksQ0FBQ2hCLE1BQU07SUFDckU7SUFFQUwsOERBQU1BLENBQUNvQixVQUFVLEdBQUcsR0FBR0U7QUFDekI7QUFFQTs7Ozs7OztDQU9DLEdBQ00sU0FBU0csc0JBQXNCQyxjQUFjO0lBQ2xELDBCQUEwQixHQUMxQixNQUFNQyxXQUFXLENBQUM7SUFDbEIsSUFBSXRCLFFBQVEsQ0FBQztJQUViLE1BQU8sRUFBRUEsUUFBUXFCLGVBQWVwQixNQUFNLENBQUU7UUFDdENzQixjQUFjRCxVQUFVRCxjQUFjLENBQUNyQixNQUFNO0lBQy9DO0lBRUEsT0FBT3NCO0FBQ1Q7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELFNBQVNDLGNBQWN4QixHQUFHLEVBQUVJLFNBQVM7SUFDbkMsZ0NBQWdDLEdBQ2hDLElBQUlDO0lBRUosSUFBS0EsUUFBUUQsVUFBVztRQUN0QixNQUFNRSxRQUFRVCxlQUFlVSxJQUFJLENBQUNQLEtBQUtLLFFBQVFMLEdBQUcsQ0FBQ0ssS0FBSyxHQUFHRztRQUMzRCxNQUFNQyxPQUFPSCxTQUFVTixDQUFBQSxHQUFHLENBQUNLLEtBQUssR0FBRyxDQUFDO1FBQ3BDLE1BQU1LLFFBQVFOLFNBQVMsQ0FBQ0MsS0FBSztRQUM3QiwwQkFBMEIsR0FDMUIsSUFBSW9CO1FBRUosSUFBSWYsT0FBTztZQUNULElBQUtlLFFBQVFmLE1BQU87Z0JBQ2xCLDZFQUE2RTtnQkFDN0VELElBQUksQ0FBQ2dCLEtBQUssR0FBR2YsS0FBSyxDQUFDZSxLQUFLO1lBQzFCO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtY29tYmluZS1leHRlbnNpb25zL2luZGV4LmpzPzIxNjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkV4dGVuc2lvbn0gRXh0ZW5zaW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkhhbmRsZXN9IEhhbmRsZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSHRtbEV4dGVuc2lvbn0gSHRtbEV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ob3JtYWxpemVkRXh0ZW5zaW9ufSBOb3JtYWxpemVkRXh0ZW5zaW9uXG4gKi9cblxuaW1wb3J0IHtzcGxpY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNodW5rZWQnXG5cbmNvbnN0IGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBDb21iaW5lIG11bHRpcGxlIHN5bnRheCBleHRlbnNpb25zIGludG8gb25lLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8RXh0ZW5zaW9uPn0gZXh0ZW5zaW9uc1xuICogICBMaXN0IG9mIHN5bnRheCBleHRlbnNpb25zLlxuICogQHJldHVybnMge05vcm1hbGl6ZWRFeHRlbnNpb259XG4gKiAgIEEgc2luZ2xlIGNvbWJpbmVkIGV4dGVuc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVFeHRlbnNpb25zKGV4dGVuc2lvbnMpIHtcbiAgLyoqIEB0eXBlIHtOb3JtYWxpemVkRXh0ZW5zaW9ufSAqL1xuICBjb25zdCBhbGwgPSB7fVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgZXh0ZW5zaW9ucy5sZW5ndGgpIHtcbiAgICBzeW50YXhFeHRlbnNpb24oYWxsLCBleHRlbnNpb25zW2luZGV4XSlcbiAgfVxuXG4gIHJldHVybiBhbGxcbn1cblxuLyoqXG4gKiBNZXJnZSBgZXh0ZW5zaW9uYCBpbnRvIGBhbGxgLlxuICpcbiAqIEBwYXJhbSB7Tm9ybWFsaXplZEV4dGVuc2lvbn0gYWxsXG4gKiAgIEV4dGVuc2lvbiB0byBtZXJnZSBpbnRvLlxuICogQHBhcmFtIHtFeHRlbnNpb259IGV4dGVuc2lvblxuICogICBFeHRlbnNpb24gdG8gbWVyZ2UuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICovXG5mdW5jdGlvbiBzeW50YXhFeHRlbnNpb24oYWxsLCBleHRlbnNpb24pIHtcbiAgLyoqIEB0eXBlIHtrZXlvZiBFeHRlbnNpb259ICovXG4gIGxldCBob29rXG5cbiAgZm9yIChob29rIGluIGV4dGVuc2lvbikge1xuICAgIGNvbnN0IG1heWJlID0gaGFzT3duUHJvcGVydHkuY2FsbChhbGwsIGhvb2spID8gYWxsW2hvb2tdIDogdW5kZWZpbmVkXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi9cbiAgICBjb25zdCBsZWZ0ID0gbWF5YmUgfHwgKGFsbFtob29rXSA9IHt9KVxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWR9ICovXG4gICAgY29uc3QgcmlnaHQgPSBleHRlbnNpb25baG9va11cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgY29kZVxuXG4gICAgaWYgKHJpZ2h0KSB7XG4gICAgICBmb3IgKGNvZGUgaW4gcmlnaHQpIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKGxlZnQsIGNvZGUpKSBsZWZ0W2NvZGVdID0gW11cbiAgICAgICAgY29uc3QgdmFsdWUgPSByaWdodFtjb2RlXVxuICAgICAgICBjb25zdHJ1Y3RzKFxuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgTG9va3MgbGlrZSBhIGxpc3QuXG4gICAgICAgICAgbGVmdFtjb2RlXSxcbiAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogdmFsdWUgPyBbdmFsdWVdIDogW11cbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIE1lcmdlIGBsaXN0YCBpbnRvIGBleGlzdGluZ2AgKGJvdGggbGlzdHMgb2YgY29uc3RydWN0cykuXG4gKiBNdXRhdGVzIGBleGlzdGluZ2AuXG4gKlxuICogQHBhcmFtIHtBcnJheTx1bmtub3duPn0gZXhpc3RpbmdcbiAqIEBwYXJhbSB7QXJyYXk8dW5rbm93bj59IGxpc3RcbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGNvbnN0cnVjdHMoZXhpc3RpbmcsIGxpc3QpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTx1bmtub3duPn0gKi9cbiAgY29uc3QgYmVmb3JlID0gW11cblxuICB3aGlsZSAoKytpbmRleCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBMb29rcyBsaWtlIGFuIG9iamVjdC5cbiAgICA7KGxpc3RbaW5kZXhdLmFkZCA9PT0gJ2FmdGVyJyA/IGV4aXN0aW5nIDogYmVmb3JlKS5wdXNoKGxpc3RbaW5kZXhdKVxuICB9XG5cbiAgc3BsaWNlKGV4aXN0aW5nLCAwLCAwLCBiZWZvcmUpXG59XG5cbi8qKlxuICogQ29tYmluZSBtdWx0aXBsZSBIVE1MIGV4dGVuc2lvbnMgaW50byBvbmUuXG4gKlxuICogQHBhcmFtIHtBcnJheTxIdG1sRXh0ZW5zaW9uPn0gaHRtbEV4dGVuc2lvbnNcbiAqICAgTGlzdCBvZiBIVE1MIGV4dGVuc2lvbnMuXG4gKiBAcmV0dXJucyB7SHRtbEV4dGVuc2lvbn1cbiAqICAgQSBzaW5nbGUgY29tYmluZWQgSFRNTCBleHRlbnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lSHRtbEV4dGVuc2lvbnMoaHRtbEV4dGVuc2lvbnMpIHtcbiAgLyoqIEB0eXBlIHtIdG1sRXh0ZW5zaW9ufSAqL1xuICBjb25zdCBoYW5kbGVycyA9IHt9XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBodG1sRXh0ZW5zaW9ucy5sZW5ndGgpIHtcbiAgICBodG1sRXh0ZW5zaW9uKGhhbmRsZXJzLCBodG1sRXh0ZW5zaW9uc1tpbmRleF0pXG4gIH1cblxuICByZXR1cm4gaGFuZGxlcnNcbn1cblxuLyoqXG4gKiBNZXJnZSBgZXh0ZW5zaW9uYCBpbnRvIGBhbGxgLlxuICpcbiAqIEBwYXJhbSB7SHRtbEV4dGVuc2lvbn0gYWxsXG4gKiAgIEV4dGVuc2lvbiB0byBtZXJnZSBpbnRvLlxuICogQHBhcmFtIHtIdG1sRXh0ZW5zaW9ufSBleHRlbnNpb25cbiAqICAgRXh0ZW5zaW9uIHRvIG1lcmdlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gaHRtbEV4dGVuc2lvbihhbGwsIGV4dGVuc2lvbikge1xuICAvKiogQHR5cGUge2tleW9mIEh0bWxFeHRlbnNpb259ICovXG4gIGxldCBob29rXG5cbiAgZm9yIChob29rIGluIGV4dGVuc2lvbikge1xuICAgIGNvbnN0IG1heWJlID0gaGFzT3duUHJvcGVydHkuY2FsbChhbGwsIGhvb2spID8gYWxsW2hvb2tdIDogdW5kZWZpbmVkXG4gICAgY29uc3QgbGVmdCA9IG1heWJlIHx8IChhbGxbaG9va10gPSB7fSlcbiAgICBjb25zdCByaWdodCA9IGV4dGVuc2lvbltob29rXVxuICAgIC8qKiBAdHlwZSB7a2V5b2YgSGFuZGxlc30gKi9cbiAgICBsZXQgdHlwZVxuXG4gICAgaWYgKHJpZ2h0KSB7XG4gICAgICBmb3IgKHR5cGUgaW4gcmlnaHQpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBhc3N1bWUgZG9jdW1lbnQgdnMgcmVndWxhciBoYW5kbGVyIGFyZSBtYW5hZ2VkIGNvcnJlY3RseS5cbiAgICAgICAgbGVmdFt0eXBlXSA9IHJpZ2h0W3R5cGVdXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsic3BsaWNlIiwiaGFzT3duUHJvcGVydHkiLCJjb21iaW5lRXh0ZW5zaW9ucyIsImV4dGVuc2lvbnMiLCJhbGwiLCJpbmRleCIsImxlbmd0aCIsInN5bnRheEV4dGVuc2lvbiIsImV4dGVuc2lvbiIsImhvb2siLCJtYXliZSIsImNhbGwiLCJ1bmRlZmluZWQiLCJsZWZ0IiwicmlnaHQiLCJjb2RlIiwidmFsdWUiLCJjb25zdHJ1Y3RzIiwiQXJyYXkiLCJpc0FycmF5IiwiZXhpc3RpbmciLCJsaXN0IiwiYmVmb3JlIiwiYWRkIiwicHVzaCIsImNvbWJpbmVIdG1sRXh0ZW5zaW9ucyIsImh0bWxFeHRlbnNpb25zIiwiaGFuZGxlcnMiLCJodG1sRXh0ZW5zaW9uIiwidHlwZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-combine-extensions/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js":
-/*!*****************************************************************************************!*\
- !*** ../../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js ***!
- \*****************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decodeNumericCharacterReference: () => (/* binding */ decodeNumericCharacterReference)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/values.js\");\n\n/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */ function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (// C0 except for HT, LF, FF, CR, space.\n code < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.ht || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.vt || code > micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.cr && code < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space || // Control character (DEL) of C0, and C1 controls.\n code > micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde && code < 160 || // Lone high surrogates and low surrogates.\n code > 55295 && code < 57344 || // Noncharacters.\n code > 64975 && code < 65008 || /* eslint-disable no-bitwise */ (code & 65535) === 65535 || (code & 65535) === 65534 || /* eslint-enable no-bitwise */ // Out of range\n code > 1114111) {\n return micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.values.replacementCharacter;\n }\n return String.fromCodePoint(code);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWRlY29kZS1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2UvZGV2L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFtRDtBQUVuRDs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ00sU0FBU0UsZ0NBQWdDQyxLQUFLLEVBQUVDLElBQUk7SUFDekQsTUFBTUMsT0FBT0MsT0FBT0MsUUFBUSxDQUFDSixPQUFPQztJQUVwQyxJQUNFLHVDQUF1QztJQUN2Q0MsT0FBT0wsd0RBQUtBLENBQUNRLEVBQUUsSUFDZkgsU0FBU0wsd0RBQUtBLENBQUNTLEVBQUUsSUFDaEJKLE9BQU9MLHdEQUFLQSxDQUFDVSxFQUFFLElBQUlMLE9BQU9MLHdEQUFLQSxDQUFDVyxLQUFLLElBQ3RDLGtEQUFrRDtJQUNqRE4sT0FBT0wsd0RBQUtBLENBQUNZLEtBQUssSUFBSVAsT0FBTyxPQUM5QiwyQ0FBMkM7SUFDMUNBLE9BQU8sU0FBVUEsT0FBTyxTQUN6QixpQkFBaUI7SUFDaEJBLE9BQU8sU0FBVUEsT0FBTyxTQUV6Qiw2QkFENkIsR0FDNUJBLENBQUFBLE9BQU8sS0FBSyxNQUFPLFNBQ3BCLENBQUNBLE9BQU8sS0FBSyxNQUFPLFNBQ3BCLDRCQUE0QixHQUM1QixlQUFlO0lBQ2ZBLE9BQU8sU0FDUDtRQUNBLE9BQU9KLHlEQUFNQSxDQUFDWSxvQkFBb0I7SUFDcEM7SUFFQSxPQUFPQyxPQUFPQyxhQUFhLENBQUNWO0FBQzlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtZGVjb2RlLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZS9kZXYvaW5kZXguanM/MzQyYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NvZGVzLCB2YWx1ZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcblxuLyoqXG4gKiBUdXJuIHRoZSBudW1iZXIgKGluIHN0cmluZyBmb3JtIGFzIGVpdGhlciBoZXhhLSBvciBwbGFpbiBkZWNpbWFsKSBjb21pbmcgZnJvbVxuICogYSBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UgaW50byBhIGNoYXJhY3Rlci5cbiAqXG4gKiBTb3J0IG9mIGxpa2UgYFN0cmluZy5mcm9tQ29kZVBvaW50KE51bWJlci5wYXJzZUludCh2YWx1ZSwgYmFzZSkpYCwgYnV0IG1ha2VzXG4gKiBub24tY2hhcmFjdGVycyBhbmQgY29udHJvbCBjaGFyYWN0ZXJzIHNhZmUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGRlY29kZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBiYXNlXG4gKiAgIE51bWVyaWMgYmFzZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENoYXJhY3Rlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UodmFsdWUsIGJhc2UpIHtcbiAgY29uc3QgY29kZSA9IE51bWJlci5wYXJzZUludCh2YWx1ZSwgYmFzZSlcblxuICBpZiAoXG4gICAgLy8gQzAgZXhjZXB0IGZvciBIVCwgTEYsIEZGLCBDUiwgc3BhY2UuXG4gICAgY29kZSA8IGNvZGVzLmh0IHx8XG4gICAgY29kZSA9PT0gY29kZXMudnQgfHxcbiAgICAoY29kZSA+IGNvZGVzLmNyICYmIGNvZGUgPCBjb2Rlcy5zcGFjZSkgfHxcbiAgICAvLyBDb250cm9sIGNoYXJhY3RlciAoREVMKSBvZiBDMCwgYW5kIEMxIGNvbnRyb2xzLlxuICAgIChjb2RlID4gY29kZXMudGlsZGUgJiYgY29kZSA8IDE2MCkgfHxcbiAgICAvLyBMb25lIGhpZ2ggc3Vycm9nYXRlcyBhbmQgbG93IHN1cnJvZ2F0ZXMuXG4gICAgKGNvZGUgPiA1NV8yOTUgJiYgY29kZSA8IDU3XzM0NCkgfHxcbiAgICAvLyBOb25jaGFyYWN0ZXJzLlxuICAgIChjb2RlID4gNjRfOTc1ICYmIGNvZGUgPCA2NV8wMDgpIHx8XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSAqL1xuICAgIChjb2RlICYgNjVfNTM1KSA9PT0gNjVfNTM1IHx8XG4gICAgKGNvZGUgJiA2NV81MzUpID09PSA2NV81MzQgfHxcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLWJpdHdpc2UgKi9cbiAgICAvLyBPdXQgb2YgcmFuZ2VcbiAgICBjb2RlID4gMV8xMTRfMTExXG4gICkge1xuICAgIHJldHVybiB2YWx1ZXMucmVwbGFjZW1lbnRDaGFyYWN0ZXJcbiAgfVxuXG4gIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChjb2RlKVxufVxuIl0sIm5hbWVzIjpbImNvZGVzIiwidmFsdWVzIiwiZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSIsInZhbHVlIiwiYmFzZSIsImNvZGUiLCJOdW1iZXIiLCJwYXJzZUludCIsImh0IiwidnQiLCJjciIsInNwYWNlIiwidGlsZGUiLCJyZXBsYWNlbWVudENoYXJhY3RlciIsIlN0cmluZyIsImZyb21Db2RlUG9pbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-decode-string/dev/index.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/micromark-util-decode-string/dev/index.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decodeString: () => (/* binding */ decodeString)\n/* harmony export */ });\n/* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! decode-named-character-reference */ \"(ssr)/../../node_modules/decode-named-character-reference/index.js\");\n/* harmony import */ var micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-decode-numeric-character-reference */ \"(ssr)/../../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n\n\n\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */ function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */ function decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign) {\n const head = $2.charCodeAt(1);\n const hex = head === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseX || head === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseX;\n return (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__.decodeNumericCharacterReference)($2.slice(hex ? 2 : 1), hex ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseHexadecimal : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseDecimal);\n }\n return (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_3__.decodeNamedCharacterReference)($2) || $0;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWRlY29kZS1zdHJpbmcvZGV2L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQThFO0FBQ21CO0FBQzNDO0FBRXRELE1BQU1JLDZCQUNKO0FBRUY7Ozs7Ozs7Ozs7O0NBV0MsR0FDTSxTQUFTQyxhQUFhQyxLQUFLO0lBQ2hDLE9BQU9BLE1BQU1DLE9BQU8sQ0FBQ0gsNEJBQTRCSTtBQUNuRDtBQUVBOzs7OztDQUtDLEdBQ0QsU0FBU0EsT0FBT0MsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUU7SUFDeEIsSUFBSUQsSUFBSTtRQUNOLFVBQVU7UUFDVixPQUFPQTtJQUNUO0lBRUEsYUFBYTtJQUNiLE1BQU1FLE9BQU9ELEdBQUdFLFVBQVUsQ0FBQztJQUUzQixJQUFJRCxTQUFTVix3REFBS0EsQ0FBQ1ksVUFBVSxFQUFFO1FBQzdCLE1BQU1GLE9BQU9ELEdBQUdFLFVBQVUsQ0FBQztRQUMzQixNQUFNRSxNQUFNSCxTQUFTVix3REFBS0EsQ0FBQ2MsVUFBVSxJQUFJSixTQUFTVix3REFBS0EsQ0FBQ2UsVUFBVTtRQUNsRSxPQUFPaEIsa0hBQStCQSxDQUNwQ1UsR0FBR08sS0FBSyxDQUFDSCxNQUFNLElBQUksSUFDbkJBLE1BQU1aLDREQUFTQSxDQUFDZ0Isc0JBQXNCLEdBQUdoQiw0REFBU0EsQ0FBQ2lCLGtCQUFrQjtJQUV6RTtJQUVBLE9BQU9wQiwrRkFBNkJBLENBQUNXLE9BQU9GO0FBQzlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtZGVjb2RlLXN0cmluZy9kZXYvaW5kZXguanM/N2U4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RlY29kZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlfSBmcm9tICdkZWNvZGUtbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZSdcbmltcG9ydCB7ZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtZGVjb2RlLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSdcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50c30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuXG5jb25zdCBjaGFyYWN0ZXJFc2NhcGVPclJlZmVyZW5jZSA9XG4gIC9cXFxcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcXGR7MSw3fXx4W1xcZGEtZl17MSw2fSl8W1xcZGEtel17MSwzMX0pOy9naVxuXG4vKipcbiAqIERlY29kZSBtYXJrZG93biBzdHJpbmdzICh3aGljaCBvY2N1ciBpbiBwbGFjZXMgc3VjaCBhcyBmZW5jZWQgY29kZSBpbmZvXG4gKiBzdHJpbmdzLCBkZXN0aW5hdGlvbnMsIGxhYmVscywgYW5kIHRpdGxlcykuXG4gKlxuICogVGhlIOKAnHN0cmluZ+KAnSBjb250ZW50IHR5cGUgYWxsb3dzIGNoYXJhY3RlciBlc2NhcGVzIGFuZCAtcmVmZXJlbmNlcy5cbiAqIFRoaXMgZGVjb2RlcyB0aG9zZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZGVjb2RlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRGVjb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVN0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZShjaGFyYWN0ZXJFc2NhcGVPclJlZmVyZW5jZSwgZGVjb2RlKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHBhcmFtIHtzdHJpbmd9ICQxXG4gKiBAcGFyYW0ge3N0cmluZ30gJDJcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGRlY29kZSgkMCwgJDEsICQyKSB7XG4gIGlmICgkMSkge1xuICAgIC8vIEVzY2FwZS5cbiAgICByZXR1cm4gJDFcbiAgfVxuXG4gIC8vIFJlZmVyZW5jZS5cbiAgY29uc3QgaGVhZCA9ICQyLmNoYXJDb2RlQXQoMClcblxuICBpZiAoaGVhZCA9PT0gY29kZXMubnVtYmVyU2lnbikge1xuICAgIGNvbnN0IGhlYWQgPSAkMi5jaGFyQ29kZUF0KDEpXG4gICAgY29uc3QgaGV4ID0gaGVhZCA9PT0gY29kZXMubG93ZXJjYXNlWCB8fCBoZWFkID09PSBjb2Rlcy51cHBlcmNhc2VYXG4gICAgcmV0dXJuIGRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoXG4gICAgICAkMi5zbGljZShoZXggPyAyIDogMSksXG4gICAgICBoZXggPyBjb25zdGFudHMubnVtZXJpY0Jhc2VIZXhhZGVjaW1hbCA6IGNvbnN0YW50cy5udW1lcmljQmFzZURlY2ltYWxcbiAgICApXG4gIH1cblxuICByZXR1cm4gZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoJDIpIHx8ICQwXG59XG4iXSwibmFtZXMiOlsiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiLCJkZWNvZGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlIiwiY29kZXMiLCJjb25zdGFudHMiLCJjaGFyYWN0ZXJFc2NhcGVPclJlZmVyZW5jZSIsImRlY29kZVN0cmluZyIsInZhbHVlIiwicmVwbGFjZSIsImRlY29kZSIsIiQwIiwiJDEiLCIkMiIsImhlYWQiLCJjaGFyQ29kZUF0IiwibnVtYmVyU2lnbiIsImhleCIsImxvd2VyY2FzZVgiLCJ1cHBlcmNhc2VYIiwic2xpY2UiLCJudW1lcmljQmFzZUhleGFkZWNpbWFsIiwibnVtZXJpY0Jhc2VEZWNpbWFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-decode-string/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-encode/index.js":
-/*!*********************************************************!*\
- !*** ../../node_modules/micromark-util-encode/index.js ***!
- \*********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ encode: () => (/* binding */ encode)\n/* harmony export */ });\nconst characterReferences = {\n '\"': \"quot\",\n \"&\": \"amp\",\n \"<\": \"lt\",\n \">\": \"gt\"\n};\n/**\n * Encode only the dangerous HTML characters.\n *\n * This ensures that certain characters which have special meaning in HTML are\n * dealt with.\n * Technically, we can skip `>` and `\"` in many cases, but CM includes them.\n *\n * @param {string} value\n * Value to encode.\n * @returns {string}\n * Encoded value.\n */ function encode(value) {\n return value.replace(/[\"&<>]/g, replace);\n /**\n * @param {string} value\n * @returns {string}\n */ function replace(value) {\n // @ts-expect-error Hush, it’s fine.\n return \"&\" + characterReferences[value] + \";\";\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWVuY29kZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTUEsc0JBQXNCO0lBQUMsS0FBSztJQUFRLEtBQUs7SUFBTyxLQUFLO0lBQU0sS0FBSztBQUFJO0FBRTFFOzs7Ozs7Ozs7OztDQVdDLEdBQ00sU0FBU0MsT0FBT0MsS0FBSztJQUMxQixPQUFPQSxNQUFNQyxPQUFPLENBQUMsV0FBV0E7SUFFaEM7OztHQUdDLEdBQ0QsU0FBU0EsUUFBUUQsS0FBSztRQUNwQixvQ0FBb0M7UUFDcEMsT0FBTyxNQUFNRixtQkFBbUIsQ0FBQ0UsTUFBTSxHQUFHO0lBQzVDO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1lbmNvZGUvaW5kZXguanM/YWZiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjaGFyYWN0ZXJSZWZlcmVuY2VzID0geydcIic6ICdxdW90JywgJyYnOiAnYW1wJywgJzwnOiAnbHQnLCAnPic6ICdndCd9XG5cbi8qKlxuICogRW5jb2RlIG9ubHkgdGhlIGRhbmdlcm91cyBIVE1MIGNoYXJhY3RlcnMuXG4gKlxuICogVGhpcyBlbnN1cmVzIHRoYXQgY2VydGFpbiBjaGFyYWN0ZXJzIHdoaWNoIGhhdmUgc3BlY2lhbCBtZWFuaW5nIGluIEhUTUwgYXJlXG4gKiBkZWFsdCB3aXRoLlxuICogVGVjaG5pY2FsbHksIHdlIGNhbiBza2lwIGA+YCBhbmQgYFwiYCBpbiBtYW55IGNhc2VzLCBidXQgQ00gaW5jbHVkZXMgdGhlbS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZW5jb2RlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1wiJjw+XS9nLCByZXBsYWNlKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGZ1bmN0aW9uIHJlcGxhY2UodmFsdWUpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEh1c2gsIGl04oCZcyBmaW5lLlxuICAgIHJldHVybiAnJicgKyBjaGFyYWN0ZXJSZWZlcmVuY2VzW3ZhbHVlXSArICc7J1xuICB9XG59XG4iXSwibmFtZXMiOlsiY2hhcmFjdGVyUmVmZXJlbmNlcyIsImVuY29kZSIsInZhbHVlIiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-encode/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-html-tag-name/index.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/micromark-util-html-tag-name/index.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ htmlBlockNames: () => (/* binding */ htmlBlockNames),\n/* harmony export */ htmlRawNames: () => (/* binding */ htmlRawNames)\n/* harmony export */ });\n/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `[email protected]`.\n */ const htmlBlockNames = [\n \"address\",\n \"article\",\n \"aside\",\n \"base\",\n \"basefont\",\n \"blockquote\",\n \"body\",\n \"caption\",\n \"center\",\n \"col\",\n \"colgroup\",\n \"dd\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"frame\",\n \"frameset\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hr\",\n \"html\",\n \"iframe\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"menu\",\n \"menuitem\",\n \"nav\",\n \"noframes\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"p\",\n \"param\",\n \"search\",\n \"section\",\n \"summary\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"title\",\n \"tr\",\n \"track\",\n \"ul\"\n];\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `[email protected]`.\n */ const htmlRawNames = [\n \"pre\",\n \"script\",\n \"style\",\n \"textarea\"\n];\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWh0bWwtdGFnLW5hbWUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Q0FjQyxHQUNNLE1BQU1BLGlCQUFpQjtJQUM1QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7Q0FXQyxHQUNNLE1BQU1DLGVBQWU7SUFBQztJQUFPO0lBQVU7SUFBUztDQUFXIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtaHRtbC10YWctbmFtZS9pbmRleC5qcz82YzlmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGlzdCBvZiBsb3dlcmNhc2UgSFRNTCDigJxibG9ja+KAnSB0YWcgbmFtZXMuXG4gKlxuICogVGhlIGxpc3QsIHdoZW4gcGFyc2luZyBIVE1MIChmbG93KSwgcmVzdWx0cyBpbiBtb3JlIHJlbGF4ZWQgcnVsZXMgKGNvbmRpdGlvblxuICogNikuXG4gKiBCZWNhdXNlIHRoZXkgYXJlIGtub3duIGJsb2NrcywgdGhlIEhUTUwtbGlrZSBzeW50YXggZG9lc27igJl0IGhhdmUgdG8gYmVcbiAqIHN0cmljdGx5IHBhcnNlZC5cbiAqIEZvciB0YWcgbmFtZXMgbm90IGluIHRoaXMgbGlzdCwgYSBtb3JlIHN0cmljdCBhbGdvcml0aG0gKGNvbmRpdGlvbiA3KSBpcyB1c2VkXG4gKiB0byBkZXRlY3Qgd2hldGhlciB0aGUgSFRNTC1saWtlIHN5bnRheCBpcyBzZWVuIGFzIEhUTUwgKGZsb3cpIG9yIG5vdC5cbiAqXG4gKiBUaGlzIGlzIGNvcGllZCBmcm9tOlxuICogPGh0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjMwLyNodG1sLWJsb2Nrcz4uXG4gKlxuICogPiDwn5GJICoqTm90ZSoqOiBgc2VhcmNoYCB3YXMgYWRkZWQgaW4gYENvbW1vbk1hcmtAMC4zMWAuXG4gKi9cbmV4cG9ydCBjb25zdCBodG1sQmxvY2tOYW1lcyA9IFtcbiAgJ2FkZHJlc3MnLFxuICAnYXJ0aWNsZScsXG4gICdhc2lkZScsXG4gICdiYXNlJyxcbiAgJ2Jhc2Vmb250JyxcbiAgJ2Jsb2NrcXVvdGUnLFxuICAnYm9keScsXG4gICdjYXB0aW9uJyxcbiAgJ2NlbnRlcicsXG4gICdjb2wnLFxuICAnY29sZ3JvdXAnLFxuICAnZGQnLFxuICAnZGV0YWlscycsXG4gICdkaWFsb2cnLFxuICAnZGlyJyxcbiAgJ2RpdicsXG4gICdkbCcsXG4gICdkdCcsXG4gICdmaWVsZHNldCcsXG4gICdmaWdjYXB0aW9uJyxcbiAgJ2ZpZ3VyZScsXG4gICdmb290ZXInLFxuICAnZm9ybScsXG4gICdmcmFtZScsXG4gICdmcmFtZXNldCcsXG4gICdoMScsXG4gICdoMicsXG4gICdoMycsXG4gICdoNCcsXG4gICdoNScsXG4gICdoNicsXG4gICdoZWFkJyxcbiAgJ2hlYWRlcicsXG4gICdocicsXG4gICdodG1sJyxcbiAgJ2lmcmFtZScsXG4gICdsZWdlbmQnLFxuICAnbGknLFxuICAnbGluaycsXG4gICdtYWluJyxcbiAgJ21lbnUnLFxuICAnbWVudWl0ZW0nLFxuICAnbmF2JyxcbiAgJ25vZnJhbWVzJyxcbiAgJ29sJyxcbiAgJ29wdGdyb3VwJyxcbiAgJ29wdGlvbicsXG4gICdwJyxcbiAgJ3BhcmFtJyxcbiAgJ3NlYXJjaCcsXG4gICdzZWN0aW9uJyxcbiAgJ3N1bW1hcnknLFxuICAndGFibGUnLFxuICAndGJvZHknLFxuICAndGQnLFxuICAndGZvb3QnLFxuICAndGgnLFxuICAndGhlYWQnLFxuICAndGl0bGUnLFxuICAndHInLFxuICAndHJhY2snLFxuICAndWwnXG5dXG5cbi8qKlxuICogTGlzdCBvZiBsb3dlcmNhc2UgSFRNTCDigJxyYXfigJ0gdGFnIG5hbWVzLlxuICpcbiAqIFRoZSBsaXN0LCB3aGVuIHBhcnNpbmcgSFRNTCAoZmxvdyksIHJlc3VsdHMgaW4gSFRNTCB0aGF0IGNhbiBpbmNsdWRlIGxpbmVzXG4gKiB3aXRob3V0IGV4aXRpbmcsIHVudGlsIGEgY2xvc2luZyB0YWcgYWxzbyBpbiB0aGlzIGxpc3QgaXMgZm91bmQgKGNvbmRpdGlvblxuICogMSkuXG4gKlxuICogVGhpcyBtb2R1bGUgaXMgY29waWVkIGZyb206XG4gKiA8aHR0cHM6Ly9zcGVjLmNvbW1vbm1hcmsub3JnLzAuMzAvI2h0bWwtYmxvY2tzPi5cbiAqXG4gKiA+IPCfkYkgKipOb3RlKio6IGB0ZXh0YXJlYWAgd2FzIGFkZGVkIGluIGBDb21tb25NYXJrQDAuMzBgLlxuICovXG5leHBvcnQgY29uc3QgaHRtbFJhd05hbWVzID0gWydwcmUnLCAnc2NyaXB0JywgJ3N0eWxlJywgJ3RleHRhcmVhJ11cbiJdLCJuYW1lcyI6WyJodG1sQmxvY2tOYW1lcyIsImh0bWxSYXdOYW1lcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-html-tag-name/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-normalize-identifier/dev/index.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/micromark-util-normalize-identifier/dev/index.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeIdentifier: () => (/* binding */ normalizeIdentifier)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/values.js\");\n\n/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */ function normalizeIdentifier(value) {\n return value// Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.values.space)// Trim.\n .replace(/^ | $/g, \"\")// Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase().toUpperCase();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyL2Rldi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE0QztBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0JDLEdBQ00sU0FBU0Msb0JBQW9CQyxLQUFLO0lBQ3ZDLE9BQ0VBLEtBQ0UsZ0NBQWdDO0tBQy9CQyxPQUFPLENBQUMsZUFBZUgseURBQU1BLENBQUNJLEtBQUssQ0FDcEMsUUFBUTtLQUNQRCxPQUFPLENBQUMsVUFBVSxHQUNuQixxRUFBcUU7SUFDckUsaUVBQWlFO0lBQ2pFLGFBQWE7SUFDYixpRUFBaUU7SUFDakUsdUVBQXVFO0lBQ3ZFLG1DQUFtQztLQUNsQ0UsV0FBVyxHQUNYQyxXQUFXO0FBRWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtbm9ybWFsaXplLWlkZW50aWZpZXIvZGV2L2luZGV4LmpzP2NiMWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt2YWx1ZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcblxuLyoqXG4gKiBOb3JtYWxpemUgYW4gaWRlbnRpZmllciAoYXMgZm91bmQgaW4gcmVmZXJlbmNlcywgZGVmaW5pdGlvbnMpLlxuICpcbiAqIENvbGxhcHNlcyBtYXJrZG93biB3aGl0ZXNwYWNlLCB0cmltLCBhbmQgdGhlbiBsb3dlci0gYW5kIHVwcGVyY2FzZS5cbiAqXG4gKiBTb21lIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQg4oCcdXBwZXJjYXNl4oCdLCBzdWNoIGFzIFUrMDNGNCAoYM+0YCksIGJ1dCBpZiB0aGVpclxuICogbG93ZXJjYXNlIGNvdW50ZXJwYXJ0IChVKzAzQjggKGDOuGApKSBpcyB1cHBlcmNhc2VkIHdpbGwgcmVzdWx0IGluIGEgZGlmZmVyZW50XG4gKiB1cHBlcmNhc2UgY2hhcmFjdGVyIChVKzAzOTggKGDOmGApKS5cbiAqIFNvLCB0byBnZXQgYSBjYW5vbmljYWwgZm9ybSwgd2UgcGVyZm9ybSBib3RoIGxvd2VyLSBhbmQgdXBwZXJjYXNlLlxuICpcbiAqIFVzaW5nIHVwcGVyY2FzZSBsYXN0IG1ha2VzIHN1cmUga2V5cyB3aWxsIG5ldmVyIGludGVyYWN0IHdpdGggZGVmYXVsdFxuICogcHJvdG90eXBhbCB2YWx1ZXMgKHN1Y2ggYXMgYGNvbnN0cnVjdG9yYCk6IG5vdGhpbmcgaW4gdGhlIHByb3RvdHlwZSBvZlxuICogYE9iamVjdGAgaXMgdXBwZXJjYXNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBJZGVudGlmaWVyIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIE5vcm1hbGl6ZWQgaWRlbnRpZmllci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUlkZW50aWZpZXIodmFsdWUpIHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZVxuICAgICAgLy8gQ29sbGFwc2UgbWFya2Rvd24gd2hpdGVzcGFjZS5cbiAgICAgIC5yZXBsYWNlKC9bXFx0XFxuXFxyIF0rL2csIHZhbHVlcy5zcGFjZSlcbiAgICAgIC8vIFRyaW0uXG4gICAgICAucmVwbGFjZSgvXiB8ICQvZywgJycpXG4gICAgICAvLyBTb21lIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQg4oCcdXBwZXJjYXNl4oCdLCBidXQgaWYgdGhlaXIgbG93ZXJjYXNlXG4gICAgICAvLyBjb3VudGVycGFydCBpcyB1cHBlcmNhc2VkIHdpbGwgcmVzdWx0IGluIGEgZGlmZmVyZW50IHVwcGVyY2FzZVxuICAgICAgLy8gY2hhcmFjdGVyLlxuICAgICAgLy8gSGVuY2UsIHRvIGdldCB0aGF0IGZvcm0sIHdlIHBlcmZvcm0gYm90aCBsb3dlci0gYW5kIHVwcGVyY2FzZS5cbiAgICAgIC8vIFVwcGVyIGNhc2UgbWFrZXMgc3VyZSBrZXlzIHdpbGwgbm90IGludGVyYWN0IHdpdGggZGVmYXVsdCBwcm90b3R5cGFsXG4gICAgICAvLyBtZXRob2RzOiBubyBtZXRob2QgaXMgdXBwZXJjYXNlLlxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC50b1VwcGVyQ2FzZSgpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ2YWx1ZXMiLCJub3JtYWxpemVJZGVudGlmaWVyIiwidmFsdWUiLCJyZXBsYWNlIiwic3BhY2UiLCJ0b0xvd2VyQ2FzZSIsInRvVXBwZXJDYXNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-normalize-identifier/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-resolve-all/index.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/micromark-util-resolve-all/index.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveAll: () => (/* binding */ resolveAll)\n/* harmony export */ });\n/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */ /**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */ function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */ const called = [];\n let index = -1;\n while(++index < constructs.length){\n const resolve = constructs[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLXJlc29sdmUtYWxsL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztDQUlDLEdBRUQ7Ozs7Ozs7Ozs7O0NBV0MsR0FDTSxTQUFTQSxXQUFXQyxVQUFVLEVBQUVDLE1BQU0sRUFBRUMsT0FBTztJQUNwRCw0QkFBNEIsR0FDNUIsTUFBTUMsU0FBUyxFQUFFO0lBQ2pCLElBQUlDLFFBQVEsQ0FBQztJQUViLE1BQU8sRUFBRUEsUUFBUUosV0FBV0ssTUFBTSxDQUFFO1FBQ2xDLE1BQU1DLFVBQVVOLFVBQVUsQ0FBQ0ksTUFBTSxDQUFDTCxVQUFVO1FBRTVDLElBQUlPLFdBQVcsQ0FBQ0gsT0FBT0ksUUFBUSxDQUFDRCxVQUFVO1lBQ3hDTCxTQUFTSyxRQUFRTCxRQUFRQztZQUN6QkMsT0FBT0ssSUFBSSxDQUFDRjtRQUNkO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtcmVzb2x2ZS1hbGwvaW5kZXguanM/YzdiZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlJlc29sdmVyfSBSZXNvbHZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICovXG5cbi8qKlxuICogQ2FsbCBhbGwgYHJlc29sdmVBbGxgcy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHtyZXNvbHZlQWxsPzogUmVzb2x2ZXIgfCB1bmRlZmluZWR9Pn0gY29uc3RydWN0c1xuICogICBMaXN0IG9mIGNvbnN0cnVjdHMsIG9wdGlvbmFsbHkgd2l0aCBgcmVzb2x2ZUFsbGBzLlxuICogQHBhcmFtIHtBcnJheTxFdmVudD59IGV2ZW50c1xuICogICBMaXN0IG9mIGV2ZW50cy5cbiAqIEBwYXJhbSB7VG9rZW5pemVDb250ZXh0fSBjb250ZXh0XG4gKiAgIENvbnRleHQgdXNlZCBieSBgdG9rZW5pemVgLlxuICogQHJldHVybnMge0FycmF5PEV2ZW50Pn1cbiAqICAgQ2hhbmdlZCBldmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQWxsKGNvbnN0cnVjdHMsIGV2ZW50cywgY29udGV4dCkge1xuICAvKiogQHR5cGUge0FycmF5PFJlc29sdmVyPn0gKi9cbiAgY29uc3QgY2FsbGVkID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGNvbnN0cnVjdHMubGVuZ3RoKSB7XG4gICAgY29uc3QgcmVzb2x2ZSA9IGNvbnN0cnVjdHNbaW5kZXhdLnJlc29sdmVBbGxcblxuICAgIGlmIChyZXNvbHZlICYmICFjYWxsZWQuaW5jbHVkZXMocmVzb2x2ZSkpIHtcbiAgICAgIGV2ZW50cyA9IHJlc29sdmUoZXZlbnRzLCBjb250ZXh0KVxuICAgICAgY2FsbGVkLnB1c2gocmVzb2x2ZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXZlbnRzXG59XG4iXSwibmFtZXMiOlsicmVzb2x2ZUFsbCIsImNvbnN0cnVjdHMiLCJldmVudHMiLCJjb250ZXh0IiwiY2FsbGVkIiwiaW5kZXgiLCJsZW5ndGgiLCJyZXNvbHZlIiwiaW5jbHVkZXMiLCJwdXNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-resolve-all/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/micromark-util-sanitize-uri/dev/index.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeUri: () => (/* binding */ normalizeUri),\n/* harmony export */ sanitizeUri: () => (/* binding */ sanitizeUri)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-encode */ \"(ssr)/../../node_modules/micromark-util-encode/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/values.js\");\n\n\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */ function sanitizeUri(url, protocol) {\n const value = (0,micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__.encode)(normalizeUri(url || \"\"));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(\":\");\n const questionMark = value.indexOf(\"?\");\n const numberSign = value.indexOf(\"#\");\n const slash = value.indexOf(\"/\");\n if (// If there is no protocol, it’s relative.\n colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign || // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return \"\";\n}\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */ function normalizeUri(value) {\n /** @type {Array<string>} */ const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while(++index < value.length){\n const code = value.charCodeAt(index);\n /** @type {string} */ let replace = \"\";\n // A correct percent encoded value.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.percentSign && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 1)) && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 2))) {\n skip = 2;\n } else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n } else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1);\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n } else {\n replace = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.values.replacementCharacter;\n }\n } else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = \"\";\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join(\"\") + value.slice(start);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaS9kZXYvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTBEO0FBQ2Q7QUFDTztBQUVuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJDLEdBQ00sU0FBU0ksWUFBWUMsR0FBRyxFQUFFQyxRQUFRO0lBQ3ZDLE1BQU1DLFFBQVFOLDZEQUFNQSxDQUFDTyxhQUFhSCxPQUFPO0lBRXpDLElBQUksQ0FBQ0MsVUFBVTtRQUNiLE9BQU9DO0lBQ1Q7SUFFQSxNQUFNRSxRQUFRRixNQUFNRyxPQUFPLENBQUM7SUFDNUIsTUFBTUMsZUFBZUosTUFBTUcsT0FBTyxDQUFDO0lBQ25DLE1BQU1FLGFBQWFMLE1BQU1HLE9BQU8sQ0FBQztJQUNqQyxNQUFNRyxRQUFRTixNQUFNRyxPQUFPLENBQUM7SUFFNUIsSUFDRSwwQ0FBMEM7SUFDMUNELFFBQVEsS0FDUix1RUFBdUU7SUFDdEVJLFFBQVEsQ0FBQyxLQUFLSixRQUFRSSxTQUN0QkYsZUFBZSxDQUFDLEtBQUtGLFFBQVFFLGdCQUM3QkMsYUFBYSxDQUFDLEtBQUtILFFBQVFHLGNBQzVCLDBDQUEwQztJQUMxQ04sU0FBU1EsSUFBSSxDQUFDUCxNQUFNUSxLQUFLLENBQUMsR0FBR04sU0FDN0I7UUFDQSxPQUFPRjtJQUNUO0lBRUEsT0FBTztBQUNUO0FBRUE7Ozs7Ozs7Ozs7Q0FVQyxHQUNNLFNBQVNDLGFBQWFELEtBQUs7SUFDaEMsMEJBQTBCLEdBQzFCLE1BQU1TLFNBQVMsRUFBRTtJQUNqQixJQUFJQyxRQUFRLENBQUM7SUFDYixJQUFJQyxRQUFRO0lBQ1osSUFBSUMsT0FBTztJQUVYLE1BQU8sRUFBRUYsUUFBUVYsTUFBTWEsTUFBTSxDQUFFO1FBQzdCLE1BQU1DLE9BQU9kLE1BQU1lLFVBQVUsQ0FBQ0w7UUFDOUIsbUJBQW1CLEdBQ25CLElBQUlNLFVBQVU7UUFFZCxtQ0FBbUM7UUFDbkMsSUFDRUYsU0FBU25CLHdEQUFLQSxDQUFDc0IsV0FBVyxJQUMxQnhCLDJFQUFpQkEsQ0FBQ08sTUFBTWUsVUFBVSxDQUFDTCxRQUFRLE9BQzNDakIsMkVBQWlCQSxDQUFDTyxNQUFNZSxVQUFVLENBQUNMLFFBQVEsS0FDM0M7WUFDQUUsT0FBTztRQUNULE9BRUssSUFBSUUsT0FBTyxLQUFLO1lBQ25CLElBQUksQ0FBQyxvQkFBb0JQLElBQUksQ0FBQ1csT0FBT0MsWUFBWSxDQUFDTCxRQUFRO2dCQUN4REUsVUFBVUUsT0FBT0MsWUFBWSxDQUFDTDtZQUNoQztRQUNGLE9BRUssSUFBSUEsT0FBTyxTQUFVQSxPQUFPLE9BQVE7WUFDdkMsTUFBTU0sT0FBT3BCLE1BQU1lLFVBQVUsQ0FBQ0wsUUFBUTtZQUV0Qyw0QkFBNEI7WUFDNUIsSUFBSUksT0FBTyxTQUFVTSxPQUFPLFNBQVVBLE9BQU8sT0FBUTtnQkFDbkRKLFVBQVVFLE9BQU9DLFlBQVksQ0FBQ0wsTUFBTU07Z0JBQ3BDUixPQUFPO1lBQ1QsT0FFSztnQkFDSEksVUFBVXBCLHlEQUFNQSxDQUFDeUIsb0JBQW9CO1lBQ3ZDO1FBQ0YsT0FFSztZQUNITCxVQUFVRSxPQUFPQyxZQUFZLENBQUNMO1FBQ2hDO1FBRUEsSUFBSUUsU0FBUztZQUNYUCxPQUFPYSxJQUFJLENBQUN0QixNQUFNUSxLQUFLLENBQUNHLE9BQU9ELFFBQVFhLG1CQUFtQlA7WUFDMURMLFFBQVFELFFBQVFFLE9BQU87WUFDdkJJLFVBQVU7UUFDWjtRQUVBLElBQUlKLE1BQU07WUFDUkYsU0FBU0U7WUFDVEEsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPSCxPQUFPZSxJQUFJLENBQUMsTUFBTXhCLE1BQU1RLEtBQUssQ0FBQ0c7QUFDdkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1zYW5pdGl6ZS11cmkvZGV2L2luZGV4LmpzP2QzNDUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthc2NpaUFscGhhbnVtZXJpY30gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHtlbmNvZGV9IGZyb20gJ21pY3JvbWFyay11dGlsLWVuY29kZSdcbmltcG9ydCB7Y29kZXMsIHZhbHVlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuXG4vKipcbiAqIE1ha2UgYSB2YWx1ZSBzYWZlIGZvciBpbmplY3Rpb24gYXMgYSBVUkwuXG4gKlxuICogVGhpcyBlbmNvZGVzIHVuc2FmZSBjaGFyYWN0ZXJzIHdpdGggcGVyY2VudC1lbmNvZGluZyBhbmQgc2tpcHMgYWxyZWFkeVxuICogZW5jb2RlZCBzZXF1ZW5jZXMgKHNlZSBgbm9ybWFsaXplVXJpYCkuXG4gKiBGdXJ0aGVyIHVuc2FmZSBjaGFyYWN0ZXJzIGFyZSBlbmNvZGVkIGFzIGNoYXJhY3RlciByZWZlcmVuY2VzIChzZWVcbiAqIGBtaWNyb21hcmstdXRpbC1lbmNvZGVgKS5cbiAqXG4gKiBBIHJlZ2V4IG9mIGFsbG93ZWQgcHJvdG9jb2xzIGNhbiBiZSBnaXZlbiwgaW4gd2hpY2ggY2FzZSB0aGUgVVJMIGlzXG4gKiBzYW5pdGl6ZWQuXG4gKiBGb3IgZXhhbXBsZSwgYC9eKGh0dHBzP3xpcmNzP3xtYWlsdG98eG1wcCkkL2lgIGNhbiBiZSB1c2VkIGZvciBgYVtocmVmXWAsIG9yXG4gKiBgL15odHRwcz8kL2lgIGZvciBgaW1nW3NyY11gICh0aGlzIGlzIHdoYXQgYGdpdGh1Yi5jb21gIGFsbG93cykuXG4gKiBJZiB0aGUgVVJMIGluY2x1ZGVzIGFuIHVua25vd24gcHJvdG9jb2wgKG9uZSBub3QgbWF0Y2hlZCBieSBgcHJvdG9jb2xgLCBzdWNoXG4gKiBhcyBhIGRhbmdlcm91cyBleGFtcGxlLCBgamF2YXNjcmlwdDpgKSwgdGhlIHZhbHVlIGlzIGlnbm9yZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSB1cmxcbiAqICAgVVJJIHRvIHNhbml0aXplLlxuICogQHBhcmFtIHtSZWdFeHAgfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJvdG9jb2xdXG4gKiAgIEFsbG93ZWQgcHJvdG9jb2xzLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2FuaXRpemVkIFVSSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplVXJpKHVybCwgcHJvdG9jb2wpIHtcbiAgY29uc3QgdmFsdWUgPSBlbmNvZGUobm9ybWFsaXplVXJpKHVybCB8fCAnJykpXG5cbiAgaWYgKCFwcm90b2NvbCkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgY29uc3QgY29sb24gPSB2YWx1ZS5pbmRleE9mKCc6JylcbiAgY29uc3QgcXVlc3Rpb25NYXJrID0gdmFsdWUuaW5kZXhPZignPycpXG4gIGNvbnN0IG51bWJlclNpZ24gPSB2YWx1ZS5pbmRleE9mKCcjJylcbiAgY29uc3Qgc2xhc2ggPSB2YWx1ZS5pbmRleE9mKCcvJylcblxuICBpZiAoXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gcHJvdG9jb2wsIGl04oCZcyByZWxhdGl2ZS5cbiAgICBjb2xvbiA8IDAgfHxcbiAgICAvLyBJZiB0aGUgZmlyc3QgY29sb24gaXMgYWZ0ZXIgYSBgP2AsIGAjYCwgb3IgYC9gLCBpdOKAmXMgbm90IGEgcHJvdG9jb2wuXG4gICAgKHNsYXNoID4gLTEgJiYgY29sb24gPiBzbGFzaCkgfHxcbiAgICAocXVlc3Rpb25NYXJrID4gLTEgJiYgY29sb24gPiBxdWVzdGlvbk1hcmspIHx8XG4gICAgKG51bWJlclNpZ24gPiAtMSAmJiBjb2xvbiA+IG51bWJlclNpZ24pIHx8XG4gICAgLy8gSXQgaXMgYSBwcm90b2NvbCwgaXQgc2hvdWxkIGJlIGFsbG93ZWQuXG4gICAgcHJvdG9jb2wudGVzdCh2YWx1ZS5zbGljZSgwLCBjb2xvbikpXG4gICkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuICcnXG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgVVJMLlxuICpcbiAqIEVuY29kZSB1bnNhZmUgY2hhcmFjdGVycyB3aXRoIHBlcmNlbnQtZW5jb2RpbmcsIHNraXBwaW5nIGFscmVhZHkgZW5jb2RlZFxuICogc2VxdWVuY2VzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBVUkkgdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgTm9ybWFsaXplZCBVUkkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVVcmkodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuICBsZXQgc3RhcnQgPSAwXG4gIGxldCBza2lwID0gMFxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgY29uc3QgY29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgpXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHJlcGxhY2UgPSAnJ1xuXG4gICAgLy8gQSBjb3JyZWN0IHBlcmNlbnQgZW5jb2RlZCB2YWx1ZS5cbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBjb2Rlcy5wZXJjZW50U2lnbiAmJlxuICAgICAgYXNjaWlBbHBoYW51bWVyaWModmFsdWUuY2hhckNvZGVBdChpbmRleCArIDEpKSAmJlxuICAgICAgYXNjaWlBbHBoYW51bWVyaWModmFsdWUuY2hhckNvZGVBdChpbmRleCArIDIpKVxuICAgICkge1xuICAgICAgc2tpcCA9IDJcbiAgICB9XG4gICAgLy8gQVNDSUkuXG4gICAgZWxzZSBpZiAoY29kZSA8IDEyOCkge1xuICAgICAgaWYgKCEvWyEjJCYtOz0/LVpfYS16fl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKSkpIHtcbiAgICAgICAgcmVwbGFjZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQXN0cmFsLlxuICAgIGVsc2UgaWYgKGNvZGUgPiA1NV8yOTUgJiYgY29kZSA8IDU3XzM0NCkge1xuICAgICAgY29uc3QgbmV4dCA9IHZhbHVlLmNoYXJDb2RlQXQoaW5kZXggKyAxKVxuXG4gICAgICAvLyBBIGNvcnJlY3Qgc3Vycm9nYXRlIHBhaXIuXG4gICAgICBpZiAoY29kZSA8IDU2XzMyMCAmJiBuZXh0ID4gNTZfMzE5ICYmIG5leHQgPCA1N18zNDQpIHtcbiAgICAgICAgcmVwbGFjZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSwgbmV4dClcbiAgICAgICAgc2tpcCA9IDFcbiAgICAgIH1cbiAgICAgIC8vIExvbmUgc3Vycm9nYXRlLlxuICAgICAgZWxzZSB7XG4gICAgICAgIHJlcGxhY2UgPSB2YWx1ZXMucmVwbGFjZW1lbnRDaGFyYWN0ZXJcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gVW5pY29kZS5cbiAgICBlbHNlIHtcbiAgICAgIHJlcGxhY2UgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKHJlcGxhY2UpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHZhbHVlLnNsaWNlKHN0YXJ0LCBpbmRleCksIGVuY29kZVVSSUNvbXBvbmVudChyZXBsYWNlKSlcbiAgICAgIHN0YXJ0ID0gaW5kZXggKyBza2lwICsgMVxuICAgICAgcmVwbGFjZSA9ICcnXG4gICAgfVxuXG4gICAgaWYgKHNraXApIHtcbiAgICAgIGluZGV4ICs9IHNraXBcbiAgICAgIHNraXAgPSAwXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKSArIHZhbHVlLnNsaWNlKHN0YXJ0KVxufVxuIl0sIm5hbWVzIjpbImFzY2lpQWxwaGFudW1lcmljIiwiZW5jb2RlIiwiY29kZXMiLCJ2YWx1ZXMiLCJzYW5pdGl6ZVVyaSIsInVybCIsInByb3RvY29sIiwidmFsdWUiLCJub3JtYWxpemVVcmkiLCJjb2xvbiIsImluZGV4T2YiLCJxdWVzdGlvbk1hcmsiLCJudW1iZXJTaWduIiwic2xhc2giLCJ0ZXN0Iiwic2xpY2UiLCJyZXN1bHQiLCJpbmRleCIsInN0YXJ0Iiwic2tpcCIsImxlbmd0aCIsImNvZGUiLCJjaGFyQ29kZUF0IiwicmVwbGFjZSIsInBlcmNlbnRTaWduIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwibmV4dCIsInJlcGxhY2VtZW50Q2hhcmFjdGVyIiwicHVzaCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-sanitize-uri/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-subtokenize/dev/index.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/micromark-util-subtokenize/dev/index.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ subtokenize: () => (/* binding */ subtokenize)\n/* harmony export */ });\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ \"(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */ \n\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */ // eslint-disable-next-line complexity\nfunction subtokenize(events) {\n /** @type {Record<string, number>} */ const jumps = {};\n let index = -1;\n /** @type {Event} */ let event;\n /** @type {number | undefined} */ let lineIndex;\n /** @type {number} */ let otherIndex;\n /** @type {Event} */ let otherEvent;\n /** @type {Array<Event>} */ let parameters;\n /** @type {Array<Event>} */ let subevents;\n /** @type {boolean | undefined} */ let more;\n while(++index < events.length){\n while(index in jumps){\n index = jumps[index];\n }\n event = events[index];\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (index && event[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.chunkFlow && events[index - 1][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.listItemPrefix) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(event[1]._tokenizer, \"expected `_tokenizer` on subtokens\");\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEndingBlank) {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.content) {\n while(++otherIndex < subevents.length){\n if (subevents[otherIndex][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.content) {\n break;\n }\n if (subevents[otherIndex][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.chunkText) {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n // Enter.\n if (event[0] === \"enter\") {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n } else if (event[1]._container) {\n otherIndex = index;\n lineIndex = undefined;\n while(otherIndex--){\n otherEvent = events[otherIndex];\n if (otherEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding || otherEvent[1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEndingBlank) {\n if (otherEvent[0] === \"enter\") {\n if (lineIndex) {\n events[lineIndex][1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEndingBlank;\n }\n otherEvent[1].type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding;\n lineIndex = otherIndex;\n }\n } else {\n break;\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start);\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n return !more;\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */ function subcontent(events, eventIndex) {\n const token = events[eventIndex][1];\n const context = events[eventIndex][2];\n let startPosition = eventIndex - 1;\n /** @type {Array<number>} */ const startPositions = [];\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(token.contentType, \"expected `contentType` on subtokens\");\n const tokenizer = token._tokenizer || context.parser[token.contentType](token.start);\n const childEvents = tokenizer.events;\n /** @type {Array<[number, number]>} */ const jumps = [];\n /** @type {Record<string, number>} */ const gaps = {};\n /** @type {Array<Chunk>} */ let stream;\n /** @type {Token | undefined} */ let previous;\n let index = -1;\n /** @type {Token | undefined} */ let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [\n start\n ];\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while(current){\n // Find the position of the event for this token.\n while(events[++startPosition][1] !== current){\n // Empty.\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(!previous || current.previous === previous, \"expected previous to match\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(!previous || previous.next === current, \"expected next to match\");\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.codes.eof);\n }\n if (previous) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n }\n // Unravel the next token.\n previous = current;\n current = current.next;\n }\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token;\n while(++index < childEvents.length){\n if (// Find a void token that includes a break.\n childEvents[index][0] === \"exit\" && childEvents[index - 1][0] === \"enter\" && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(current, \"expected a current token\");\n start = index + 1;\n breaks.push(start);\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n current = current.next;\n }\n }\n // Help GC.\n tokenizer.events = [];\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(!current.next, \"expected no next token\");\n } else {\n breaks.pop();\n }\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length;\n while(index--){\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start = startPositions.pop();\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(start !== undefined, \"expected a start position when splicing\");\n jumps.unshift([\n start,\n start + slice.length - 1\n ]);\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, start, 2, slice);\n }\n index = -1;\n while(++index < jumps.length){\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLXN1YnRva2VuaXplL2Rldi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0NBSUMsR0FFNEM7QUFDSztBQUNmO0FBRW5DOzs7Ozs7O0NBT0MsR0FDRCxzQ0FBc0M7QUFDL0IsU0FBU0ssWUFBWUMsTUFBTTtJQUNoQyxtQ0FBbUMsR0FDbkMsTUFBTUMsUUFBUSxDQUFDO0lBQ2YsSUFBSUMsUUFBUSxDQUFDO0lBQ2Isa0JBQWtCLEdBQ2xCLElBQUlDO0lBQ0osK0JBQStCLEdBQy9CLElBQUlDO0lBQ0osbUJBQW1CLEdBQ25CLElBQUlDO0lBQ0osa0JBQWtCLEdBQ2xCLElBQUlDO0lBQ0oseUJBQXlCLEdBQ3pCLElBQUlDO0lBQ0oseUJBQXlCLEdBQ3pCLElBQUlDO0lBQ0osZ0NBQWdDLEdBQ2hDLElBQUlDO0lBRUosTUFBTyxFQUFFUCxRQUFRRixPQUFPVSxNQUFNLENBQUU7UUFDOUIsTUFBT1IsU0FBU0QsTUFBTztZQUNyQkMsUUFBUUQsS0FBSyxDQUFDQyxNQUFNO1FBQ3RCO1FBRUFDLFFBQVFILE1BQU0sQ0FBQ0UsTUFBTTtRQUVyQix5RUFBeUU7UUFDekUsMENBQTBDO1FBQzFDLElBQ0VBLFNBQ0FDLEtBQUssQ0FBQyxFQUFFLENBQUNRLElBQUksS0FBS2Ysd0RBQUtBLENBQUNnQixTQUFTLElBQ2pDWixNQUFNLENBQUNFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQ1MsSUFBSSxLQUFLZix3REFBS0EsQ0FBQ2lCLGNBQWMsRUFDbEQ7WUFDQWYsMENBQU1BLENBQUNLLEtBQUssQ0FBQyxFQUFFLENBQUNXLFVBQVUsRUFBRTtZQUM1Qk4sWUFBWUwsS0FBSyxDQUFDLEVBQUUsQ0FBQ1csVUFBVSxDQUFDZCxNQUFNO1lBQ3RDSyxhQUFhO1lBRWIsSUFDRUEsYUFBYUcsVUFBVUUsTUFBTSxJQUM3QkYsU0FBUyxDQUFDSCxXQUFXLENBQUMsRUFBRSxDQUFDTSxJQUFJLEtBQUtm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QyxNQUFNLEVBQUV5QyxNQUFNLENBQUN6QyxRQUFRLEVBQUU7UUFDaEUsTUFBTXlCLFFBQVFPLGVBQWVrQixHQUFHO1FBQ2hDdEQsMENBQU1BLENBQUM2QixVQUFVSCxXQUFXO1FBQzVCdkIsTUFBTTRCLE9BQU8sQ0FBQztZQUFDRjtZQUFPQSxRQUFRQyxNQUFNbEIsTUFBTSxHQUFHO1NBQUU7UUFDL0NoQiw4REFBTUEsQ0FBQ00sUUFBUTJCLE9BQU8sR0FBR0M7SUFDM0I7SUFFQTFCLFFBQVEsQ0FBQztJQUVULE1BQU8sRUFBRUEsUUFBUUQsTUFBTVMsTUFBTSxDQUFFO1FBQzdCNEIsSUFBSSxDQUFDSSxTQUFTekMsS0FBSyxDQUFDQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUd3QyxTQUFTekMsS0FBSyxDQUFDQyxNQUFNLENBQUMsRUFBRTtRQUN6RHdDLFVBQVV6QyxLQUFLLENBQUNDLE1BQU0sQ0FBQyxFQUFFLEdBQUdELEtBQUssQ0FBQ0MsTUFBTSxDQUFDLEVBQUUsR0FBRztJQUNoRDtJQUVBLE9BQU9vQztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtc3VidG9rZW5pemUvZGV2L2luZGV4LmpzP2VkZmYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkNodW5rfSBDaHVua1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FdmVudH0gRXZlbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW59IFRva2VuXG4gKi9cblxuaW1wb3J0IHtzcGxpY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNodW5rZWQnXG5pbXBvcnQge2NvZGVzLCB0eXBlc30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcblxuLyoqXG4gKiBUb2tlbml6ZSBzdWJjb250ZW50LlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAqICAgTGlzdCBvZiBldmVudHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBzdWJ0b2tlbnMgd2VyZSBmb3VuZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmV4cG9ydCBmdW5jdGlvbiBzdWJ0b2tlbml6ZShldmVudHMpIHtcbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fSAqL1xuICBjb25zdCBqdW1wcyA9IHt9XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7RXZlbnR9ICovXG4gIGxldCBldmVudFxuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGxpbmVJbmRleFxuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IG90aGVySW5kZXhcbiAgLyoqIEB0eXBlIHtFdmVudH0gKi9cbiAgbGV0IG90aGVyRXZlbnRcbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGxldCBwYXJhbWV0ZXJzXG4gIC8qKiBAdHlwZSB7QXJyYXk8RXZlbnQ+fSAqL1xuICBsZXQgc3ViZXZlbnRzXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IG1vcmVcblxuICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICB3aGlsZSAoaW5kZXggaW4ganVtcHMpIHtcbiAgICAgIGluZGV4ID0ganVtcHNbaW5kZXhdXG4gICAgfVxuXG4gICAgZXZlbnQgPSBldmVudHNbaW5kZXhdXG5cbiAgICAvLyBBZGQgYSBob29rIGZvciB0aGUgR0ZNIHRhc2tsaXN0IGV4dGVuc2lvbiwgd2hpY2ggbmVlZHMgdG8ga25vdyBpZiB0ZXh0XG4gICAgLy8gaXMgaW4gdGhlIGZpcnN0IGNvbnRlbnQgb2YgYSBsaXN0IGl0ZW0uXG4gICAgaWYgKFxuICAgICAgaW5kZXggJiZcbiAgICAgIGV2ZW50WzFdLnR5cGUgPT09IHR5cGVzLmNodW5rRmxvdyAmJlxuICAgICAgZXZlbnRzW2luZGV4IC0gMV1bMV0udHlwZSA9PT0gdHlwZXMubGlzdEl0ZW1QcmVmaXhcbiAgICApIHtcbiAgICAgIGFzc2VydChldmVudFsxXS5fdG9rZW5pemVyLCAnZXhwZWN0ZWQgYF90b2tlbml6ZXJgIG9uIHN1YnRva2VucycpXG4gICAgICBzdWJldmVudHMgPSBldmVudFsxXS5fdG9rZW5pemVyLmV2ZW50c1xuICAgICAgb3RoZXJJbmRleCA9IDBcblxuICAgICAgaWYgKFxuICAgICAgICBvdGhlckluZGV4IDwgc3ViZXZlbnRzLmxlbmd0aCAmJlxuICAgICAgICBzdWJldmVudHNbb3RoZXJJbmRleF1bMV0udHlwZSA9PT0gdHlwZXMubGluZUVuZGluZ0JsYW5rXG4gICAgICApIHtcbiAgICAgICAgb3RoZXJJbmRleCArPSAyXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgb3RoZXJJbmRleCA8IHN1YmV2ZW50cy5sZW5ndGggJiZcbiAgICAgICAgc3ViZXZlbnRzW290aGVySW5kZXhdWzFdLnR5cGUgPT09IHR5cGVzLmNvbnRlbnRcbiAgICAgICkge1xuICAgICAgICB3aGlsZSAoKytvdGhlckluZGV4IDwgc3ViZXZlbnRzLmxlbmd0aCkge1xuICAgICAgICAgIGlmIChzdWJldmVudHNbb3RoZXJJbmRleF1bMV0udHlwZSA9PT0gdHlwZXMuY29udGVudCkge1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc3ViZXZlbnRzW290aGVySW5kZXhdWzFdLnR5cGUgPT09IHR5cGVzLmNodW5rVGV4dCkge1xuICAgICAgICAgICAgc3ViZXZlbnRzW290aGVySW5kZXhdWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSA9IHRydWVcbiAgICAgICAgICAgIG90aGVySW5kZXgrK1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVudGVyLlxuICAgIGlmIChldmVudFswXSA9PT0gJ2VudGVyJykge1xuICAgICAgaWYgKGV2ZW50WzFdLmNvbnRlbnRUeXBlKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oanVtcHMsIHN1YmNvbnRlbnQoZXZlbnRzLCBpbmRleCkpXG4gICAgICAgIGluZGV4ID0ganVtcHNbaW5kZXhdXG4gICAgICAgIG1vcmUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIC8vIEV4aXQuXG4gICAgZWxzZSBpZiAoZXZlbnRbMV0uX2NvbnRhaW5lcikge1xuICAgICAgb3RoZXJJbmRleCA9IGluZGV4XG4gICAgICBsaW5lSW5kZXggPSB1bmRlZmluZWRcblxuICAgICAgd2hpbGUgKG90aGVySW5kZXgtLSkge1xuICAgICAgICBvdGhlckV2ZW50ID0gZXZlbnRzW290aGVySW5kZXhdXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIG90aGVyRXZlbnRbMV0udHlwZSA9PT0gdHlwZXMubGluZUVuZGluZyB8fFxuICAgICAgICAgIG90aGVyRXZlbnRbMV0udHlwZSA9PT0gdHlwZXMubGluZUVuZGluZ0JsYW5rXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChvdGhlckV2ZW50WzBdID09PSAnZW50ZXInKSB7XG4gICAgICAgICAgICBpZiAobGluZUluZGV4KSB7XG4gICAgICAgICAgICAgIGV2ZW50c1tsaW5lSW5kZXhdWzFdLnR5cGUgPSB0eXBlcy5saW5lRW5kaW5nQmxhbmtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3RoZXJFdmVudFsxXS50eXBlID0gdHlwZXMubGluZUVuZGluZ1xuICAgICAgICAgICAgbGluZUluZGV4ID0gb3RoZXJJbmRleFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5lSW5kZXgpIHtcbiAgICAgICAgLy8gRml4IHBvc2l0aW9uLlxuICAgICAgICBldmVudFsxXS5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbbGluZUluZGV4XVsxXS5zdGFydClcblxuICAgICAgICAvLyBTd2l0Y2ggY29udGFpbmVyIGV4aXQgdy8gbGluZSBlbmRpbmdzLlxuICAgICAgICBwYXJhbWV0ZXJzID0gZXZlbnRzLnNsaWNlKGxpbmVJbmRleCwgaW5kZXgpXG4gICAgICAgIHBhcmFtZXRlcnMudW5zaGlmdChldmVudClcbiAgICAgICAgc3BsaWNlKGV2ZW50cywgbGluZUluZGV4LCBpbmRleCAtIGxpbmVJbmRleCArIDEsIHBhcmFtZXRlcnMpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICFtb3JlXG59XG5cbi8qKlxuICogVG9rZW5pemUgZW1iZWRkZWQgdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAqIEBwYXJhbSB7bnVtYmVyfSBldmVudEluZGV4XG4gKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgbnVtYmVyPn1cbiAqL1xuZnVuY3Rpb24gc3ViY29udGVudChldmVudHMsIGV2ZW50SW5kZXgpIHtcbiAgY29uc3QgdG9rZW4gPSBldmVudHNbZXZlbnRJbmRleF1bMV1cbiAgY29uc3QgY29udGV4dCA9IGV2ZW50c1tldmVudEluZGV4XVsyXVxuICBsZXQgc3RhcnRQb3NpdGlvbiA9IGV2ZW50SW5kZXggLSAxXG4gIC8qKiBAdHlwZSB7QXJyYXk8bnVtYmVyPn0gKi9cbiAgY29uc3Qgc3RhcnRQb3NpdGlvbnMgPSBbXVxuICBhc3NlcnQodG9rZW4uY29udGVudFR5cGUsICdleHBlY3RlZCBgY29udGVudFR5cGVgIG9uIHN1YnRva2VucycpXG4gIGNvbnN0IHRva2VuaXplciA9XG4gICAgdG9rZW4uX3Rva2VuaXplciB8fCBjb250ZXh0LnBhcnNlclt0b2tlbi5jb250ZW50VHlwZV0odG9rZW4uc3RhcnQpXG4gIGNvbnN0IGNoaWxkRXZlbnRzID0gdG9rZW5pemVyLmV2ZW50c1xuICAvKiogQHR5cGUge0FycmF5PFtudW1iZXIsIG51bWJlcl0+fSAqL1xuICBjb25zdCBqdW1wcyA9IFtdXG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgbnVtYmVyPn0gKi9cbiAgY29uc3QgZ2FwcyA9IHt9XG4gIC8qKiBAdHlwZSB7QXJyYXk8Q2h1bms+fSAqL1xuICBsZXQgc3RyZWFtXG4gIC8qKiBAdHlwZSB7VG9rZW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBwcmV2aW91c1xuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY3VycmVudCA9IHRva2VuXG4gIGxldCBhZGp1c3QgPSAwXG4gIGxldCBzdGFydCA9IDBcbiAgY29uc3QgYnJlYWtzID0gW3N0YXJ0XVxuXG4gIC8vIExvb3AgZm9yd2FyZCB0aHJvdWdoIHRoZSBsaW5rZWQgdG9rZW5zIHRvIHBhc3MgdGhlbSBpbiBvcmRlciB0byB0aGVcbiAgLy8gc3VidG9rZW5pemVyLlxuICB3aGlsZSAoY3VycmVudCkge1xuICAgIC8vIEZpbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBldmVudCBmb3IgdGhpcyB0b2tlbi5cbiAgICB3aGlsZSAoZXZlbnRzWysrc3RhcnRQb3NpdGlvbl1bMV0gIT09IGN1cnJlbnQpIHtcbiAgICAgIC8vIEVtcHR5LlxuICAgIH1cblxuICAgIGFzc2VydChcbiAgICAgICFwcmV2aW91cyB8fCBjdXJyZW50LnByZXZpb3VzID09PSBwcmV2aW91cyxcbiAgICAgICdleHBlY3RlZCBwcmV2aW91cyB0byBtYXRjaCdcbiAgICApXG4gICAgYXNzZXJ0KCFwcmV2aW91cyB8fCBwcmV2aW91cy5uZXh0ID09PSBjdXJyZW50LCAnZXhwZWN0ZWQgbmV4dCB0byBtYXRjaCcpXG5cbiAgICBzdGFydFBvc2l0aW9ucy5wdXNoKHN0YXJ0UG9zaXRpb24pXG5cbiAgICBpZiAoIWN1cnJlbnQuX3Rva2VuaXplcikge1xuICAgICAgc3RyZWFtID0gY29udGV4dC5zbGljZVN0cmVhbShjdXJyZW50KVxuXG4gICAgICBpZiAoIWN1cnJlbnQubmV4dCkge1xuICAgICAgICBzdHJlYW0ucHVzaChjb2Rlcy5lb2YpXG4gICAgICB9XG5cbiAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICB0b2tlbml6ZXIuZGVmaW5lU2tpcChjdXJyZW50LnN0YXJ0KVxuICAgICAgfVxuXG4gICAgICBpZiAoY3VycmVudC5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0pIHtcbiAgICAgICAgdG9rZW5pemVyLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0gPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIHRva2VuaXplci53cml0ZShzdHJlYW0pXG5cbiAgICAgIGlmIChjdXJyZW50Ll9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSkge1xuICAgICAgICB0b2tlbml6ZXIuX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbSA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVucmF2ZWwgdGhlIG5leHQgdG9rZW4uXG4gICAgcHJldmlvdXMgPSBjdXJyZW50XG4gICAgY3VycmVudCA9IGN1cnJlbnQubmV4dFxuICB9XG5cbiAgLy8gTm93LCBsb29wIGJhY2sgdGhyb3VnaCBhbGwgZXZlbnRzIChhbmQgbGlua2VkIHRva2VucyksIHRvIGZpZ3VyZSBvdXQgd2hpY2hcbiAgLy8gcGFydHMgYmVsb25nIHdoZXJlLlxuICBjdXJyZW50ID0gdG9rZW5cblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkRXZlbnRzLmxlbmd0aCkge1xuICAgIGlmIChcbiAgICAgIC8vIEZpbmQgYSB2b2lkIHRva2VuIHRoYXQgaW5jbHVkZXMgYSBicmVhay5cbiAgICAgIGNoaWxkRXZlbnRzW2luZGV4XVswXSA9PT0gJ2V4aXQnICYmXG4gICAgICBjaGlsZEV2ZW50c1tpbmRleCAtIDFdWzBdID09PSAnZW50ZXInICYmXG4gICAgICBjaGlsZEV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gY2hpbGRFdmVudHNbaW5kZXggLSAxXVsxXS50eXBlICYmXG4gICAgICBjaGlsZEV2ZW50c1tpbmRleF1bMV0uc3RhcnQubGluZSAhPT0gY2hpbGRFdmVudHNbaW5kZXhdWzFdLmVuZC5saW5lXG4gICAgKSB7XG4gICAgICBhc3NlcnQoY3VycmVudCwgJ2V4cGVjdGVkIGEgY3VycmVudCB0b2tlbicpXG4gICAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgICAgYnJlYWtzLnB1c2goc3RhcnQpXG4gICAgICAvLyBIZWxwIEdDLlxuICAgICAgY3VycmVudC5fdG9rZW5pemVyID0gdW5kZWZpbmVkXG4gICAgICBjdXJyZW50LnByZXZpb3VzID0gdW5kZWZpbmVkXG4gICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0XG4gICAgfVxuICB9XG5cbiAgLy8gSGVscCBHQy5cbiAgdG9rZW5pemVyLmV2ZW50cyA9IFtdXG5cbiAgLy8gSWYgdGhlcmXigJlzIG9uZSBtb3JlIHRva2VuICh3aGljaCBpcyB0aGUgY2FzZXMgZm9yIGxpbmVzIHRoYXQgZW5kIGluIGFuXG4gIC8vIEVPRiksIHRoYXTigJlzIHBlcmZlY3Q6IHRoZSBsYXN0IHBvaW50IHdlIGZvdW5kIHN0YXJ0cyBpdC5cbiAgLy8gSWYgdGhlcmUgaXNu4oCZdCB0aGVuIG1ha2Ugc3VyZSBhbnkgcmVtYWluaW5nIGNvbnRlbnQgaXMgYWRkZWQgdG8gaXQuXG4gIGlmIChjdXJyZW50KSB7XG4gICAgLy8gSGVscCBHQy5cbiAgICBjdXJyZW50Ll90b2tlbml6ZXIgPSB1bmRlZmluZWRcbiAgICBjdXJyZW50LnByZXZpb3VzID0gdW5kZWZpbmVkXG4gICAgYXNzZXJ0KCFjdXJyZW50Lm5leHQsICdleHBlY3RlZCBubyBuZXh0IHRva2VuJylcbiAgfSBlbHNlIHtcbiAgICBicmVha3MucG9wKClcbiAgfVxuXG4gIC8vIE5vdyBzcGxpY2UgdGhlIGV2ZW50cyBmcm9tIHRoZSBzdWJ0b2tlbml6ZXIgaW50byB0aGUgY3VycmVudCBldmVudHMsXG4gIC8vIG1vdmluZyBiYWNrIHRvIGZyb250IHNvIHRoYXQgc3BsaWNlIGluZGljZXMgYXJlbuKAmXQgYWZmZWN0ZWQuXG4gIGluZGV4ID0gYnJlYWtzLmxlbmd0aFxuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgY29uc3Qgc2xpY2UgPSBjaGlsZEV2ZW50cy5zbGljZShicmVha3NbaW5kZXhdLCBicmVha3NbaW5kZXggKyAxXSlcbiAgICBjb25zdCBzdGFydCA9IHN0YXJ0UG9zaXRpb25zLnBvcCgpXG4gICAgYXNzZXJ0KHN0YXJ0ICE9PSB1bmRlZmluZWQsICdleHBlY3RlZCBhIHN0YXJ0IHBvc2l0aW9uIHdoZW4gc3BsaWNpbmcnKVxuICAgIGp1bXBzLnVuc2hpZnQoW3N0YXJ0LCBzdGFydCArIHNsaWNlLmxlbmd0aCAtIDFdKVxuICAgIHNwbGljZShldmVudHMsIHN0YXJ0LCAyLCBzbGljZSlcbiAgfVxuXG4gIGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGp1bXBzLmxlbmd0aCkge1xuICAgIGdhcHNbYWRqdXN0ICsganVtcHNbaW5kZXhdWzBdXSA9IGFkanVzdCArIGp1bXBzW2luZGV4XVsxXVxuICAgIGFkanVzdCArPSBqdW1wc1tpbmRleF1bMV0gLSBqdW1wc1tpbmRleF1bMF0gLSAxXG4gIH1cblxuICByZXR1cm4gZ2Fwc1xufVxuIl0sIm5hbWVzIjpbInNwbGljZSIsImNvZGVzIiwidHlwZXMiLCJvayIsImFzc2VydCIsInN1YnRva2VuaXplIiwiZXZlbnRzIiwianVtcHMiLCJpbmRleCIsImV2ZW50IiwibGluZUluZGV4Iiwib3RoZXJJbmRleCIsIm90aGVyRXZlbnQiLCJwYXJhbWV0ZXJzIiwic3ViZXZlbnRzIiwibW9yZSIsImxlbmd0aCIsInR5cGUiLCJjaHVua0Zsb3ciLCJsaXN0SXRlbVByZWZpeCIsIl90b2tlbml6ZXIiLCJsaW5lRW5kaW5nQmxhbmsiLCJjb250ZW50IiwiY2h1bmtUZXh0IiwiX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtIiwiY29udGVudFR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzdWJjb250ZW50IiwiX2NvbnRhaW5lciIsInVuZGVmaW5lZCIsImxpbmVFbmRpbmciLCJlbmQiLCJzdGFydCIsInNsaWNlIiwidW5zaGlmdCIsImV2ZW50SW5kZXgiLCJ0b2tlbiIsImNvbnRleHQiLCJzdGFydFBvc2l0aW9uIiwic3RhcnRQb3NpdGlvbnMiLCJ0b2tlbml6ZXIiLCJwYXJzZXIiLCJjaGlsZEV2ZW50cyIsImdhcHMiLCJzdHJlYW0iLCJwcmV2aW91cyIsImN1cnJlbnQiLCJhZGp1c3QiLCJicmVha3MiLCJuZXh0IiwicHVzaCIsInNsaWNlU3RyZWFtIiwiZW9mIiwiZGVmaW5lU2tpcCIsIl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0iLCJ3cml0ZSIsImxpbmUiLCJwb3AiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-subtokenize/dev/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/micromark-util-symbol/lib/codes.js ***!
- \*************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ codes: () => (/* binding */ codes)\n/* harmony export */ });\n/**\n * Character codes.\n *\n * This module is compiled away!\n *\n * micromark works based on character codes.\n * This module contains constants for the ASCII block and the replacement\n * character.\n * A couple of them are handled in a special way, such as the line endings\n * (CR, LF, and CR+LF, commonly known as end-of-line: EOLs), the tab (horizontal\n * tab) and its expansion based on what column it’s at (virtual space),\n * and the end-of-file (eof) character.\n * As values are preprocessed before handling them, the actual characters LF,\n * CR, HT, and NUL (which is present as the replacement character), are\n * guaranteed to not exist.\n *\n * Unicode basic latin block.\n */ const codes = /** @type {const} */ {\n carriageReturn: -5,\n lineFeed: -4,\n carriageReturnLineFeed: -3,\n horizontalTab: -2,\n virtualSpace: -1,\n eof: null,\n nul: 0,\n soh: 1,\n stx: 2,\n etx: 3,\n eot: 4,\n enq: 5,\n ack: 6,\n bel: 7,\n bs: 8,\n ht: 9,\n lf: 10,\n vt: 11,\n ff: 12,\n cr: 13,\n so: 14,\n si: 15,\n dle: 16,\n dc1: 17,\n dc2: 18,\n dc3: 19,\n dc4: 20,\n nak: 21,\n syn: 22,\n etb: 23,\n can: 24,\n em: 25,\n sub: 26,\n esc: 27,\n fs: 28,\n gs: 29,\n rs: 30,\n us: 31,\n space: 32,\n exclamationMark: 33,\n quotationMark: 34,\n numberSign: 35,\n dollarSign: 36,\n percentSign: 37,\n ampersand: 38,\n apostrophe: 39,\n leftParenthesis: 40,\n rightParenthesis: 41,\n asterisk: 42,\n plusSign: 43,\n comma: 44,\n dash: 45,\n dot: 46,\n slash: 47,\n digit0: 48,\n digit1: 49,\n digit2: 50,\n digit3: 51,\n digit4: 52,\n digit5: 53,\n digit6: 54,\n digit7: 55,\n digit8: 56,\n digit9: 57,\n colon: 58,\n semicolon: 59,\n lessThan: 60,\n equalsTo: 61,\n greaterThan: 62,\n questionMark: 63,\n atSign: 64,\n uppercaseA: 65,\n uppercaseB: 66,\n uppercaseC: 67,\n uppercaseD: 68,\n uppercaseE: 69,\n uppercaseF: 70,\n uppercaseG: 71,\n uppercaseH: 72,\n uppercaseI: 73,\n uppercaseJ: 74,\n uppercaseK: 75,\n uppercaseL: 76,\n uppercaseM: 77,\n uppercaseN: 78,\n uppercaseO: 79,\n uppercaseP: 80,\n uppercaseQ: 81,\n uppercaseR: 82,\n uppercaseS: 83,\n uppercaseT: 84,\n uppercaseU: 85,\n uppercaseV: 86,\n uppercaseW: 87,\n uppercaseX: 88,\n uppercaseY: 89,\n uppercaseZ: 90,\n leftSquareBracket: 91,\n backslash: 92,\n rightSquareBracket: 93,\n caret: 94,\n underscore: 95,\n graveAccent: 96,\n lowercaseA: 97,\n lowercaseB: 98,\n lowercaseC: 99,\n lowercaseD: 100,\n lowercaseE: 101,\n lowercaseF: 102,\n lowercaseG: 103,\n lowercaseH: 104,\n lowercaseI: 105,\n lowercaseJ: 106,\n lowercaseK: 107,\n lowercaseL: 108,\n lowercaseM: 109,\n lowercaseN: 110,\n lowercaseO: 111,\n lowercaseP: 112,\n lowercaseQ: 113,\n lowercaseR: 114,\n lowercaseS: 115,\n lowercaseT: 116,\n lowercaseU: 117,\n lowercaseV: 118,\n lowercaseW: 119,\n lowercaseX: 120,\n lowercaseY: 121,\n lowercaseZ: 122,\n leftCurlyBrace: 123,\n verticalBar: 124,\n rightCurlyBrace: 125,\n tilde: 126,\n del: 127,\n // Unicode Specials block.\n byteOrderMarker: 65279,\n // Unicode Specials block.\n replacementCharacter: 65533 // `�`\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLXN5bWJvbC9saWIvY29kZXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCQyxHQUNNLE1BQU1BLFFBQVEsa0JBQWtCLEdBQUk7SUFDekNDLGdCQUFnQixDQUFDO0lBQ2pCQyxVQUFVLENBQUM7SUFDWEMsd0JBQXdCLENBQUM7SUFDekJDLGVBQWUsQ0FBQztJQUNoQkMsY0FBYyxDQUFDO0lBQ2ZDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxLQUFLO0lBQ0xDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxJQUFJO0lBQ0pDLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLE9BQU87SUFDUEMsaUJBQWlCO0lBQ2pCQyxlQUFlO0lBQ2ZDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxhQUFhO0lBQ2JDLFdBQVc7SUFDWEMsWUFBWTtJQUNaQyxpQkFBaUI7SUFDakJDLGtCQUFrQjtJQUNsQkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxLQUFLO0lBQ0xDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxPQUFPO0lBQ1BDLFdBQVc7SUFDWEMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLGFBQWE7SUFDYkMsY0FBYztJQUNkQyxRQUFRO0lBQ1JDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxtQkFBbUI7SUFDbkJDLFdBQVc7SUFDWEMsb0JBQW9CO0lBQ3BCQyxPQUFPO0lBQ1BDLFlBQVk7SUFDWkMsYUFBYTtJQUNiQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsZ0JBQWdCO0lBQ2hCQyxhQUFhO0lBQ2JDLGlCQUFpQjtJQUNqQkMsT0FBTztJQUNQQyxLQUFLO0lBQ0wsMEJBQTBCO0lBQzFCQyxpQkFBaUI7SUFDakIsMEJBQTBCO0lBQzFCQyxzQkFBc0IsTUFBTSxNQUFNO0FBQ3BDLEVBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1zeW1ib2wvbGliL2NvZGVzLmpzPzIxZmIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGFyYWN0ZXIgY29kZXMuXG4gKlxuICogVGhpcyBtb2R1bGUgaXMgY29tcGlsZWQgYXdheSFcbiAqXG4gKiBtaWNyb21hcmsgd29ya3MgYmFzZWQgb24gY2hhcmFjdGVyIGNvZGVzLlxuICogVGhpcyBtb2R1bGUgY29udGFpbnMgY29uc3RhbnRzIGZvciB0aGUgQVNDSUkgYmxvY2sgYW5kIHRoZSByZXBsYWNlbWVudFxuICogY2hhcmFjdGVyLlxuICogQSBjb3VwbGUgb2YgdGhlbSBhcmUgaGFuZGxlZCBpbiBhIHNwZWNpYWwgd2F5LCBzdWNoIGFzIHRoZSBsaW5lIGVuZGluZ3NcbiAqIChDUiwgTEYsIGFuZCBDUitMRiwgY29tbW9ubHkga25vd24gYXMgZW5kLW9mLWxpbmU6IEVPTHMpLCB0aGUgdGFiIChob3Jpem9udGFsXG4gKiB0YWIpIGFuZCBpdHMgZXhwYW5zaW9uIGJhc2VkIG9uIHdoYXQgY29sdW1uIGl04oCZcyBhdCAodmlydHVhbCBzcGFjZSksXG4gKiBhbmQgdGhlIGVuZC1vZi1maWxlIChlb2YpIGNoYXJhY3Rlci5cbiAqIEFzIHZhbHVlcyBhcmUgcHJlcHJvY2Vzc2VkIGJlZm9yZSBoYW5kbGluZyB0aGVtLCB0aGUgYWN0dWFsIGNoYXJhY3RlcnMgTEYsXG4gKiBDUiwgSFQsIGFuZCBOVUwgKHdoaWNoIGlzIHByZXNlbnQgYXMgdGhlIHJlcGxhY2VtZW50IGNoYXJhY3RlciksIGFyZVxuICogZ3VhcmFudGVlZCB0byBub3QgZXhpc3QuXG4gKlxuICogVW5pY29kZSBiYXNpYyBsYXRpbiBibG9jay5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvZGVzID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKHtcbiAgY2FycmlhZ2VSZXR1cm46IC01LFxuICBsaW5lRmVlZDogLTQsXG4gIGNhcnJpYWdlUmV0dXJuTGluZUZlZWQ6IC0zLFxuICBob3Jpem9udGFsVGFiOiAtMixcbiAgdmlydHVhbFNwYWNlOiAtMSxcbiAgZW9mOiBudWxsLFxuICBudWw6IDAsXG4gIHNvaDogMSxcbiAgc3R4OiAyLFxuICBldHg6IDMsXG4gIGVvdDogNCxcbiAgZW5xOiA1LFxuICBhY2s6IDYsXG4gIGJlbDogNyxcbiAgYnM6IDgsXG4gIGh0OiA5LCAvLyBgXFx0YFxuICBsZjogMTAsIC8vIGBcXG5gXG4gIHZ0OiAxMSwgLy8gYFxcdmBcbiAgZmY6IDEyLCAvLyBgXFxmYFxuICBjcjogMTMsIC8vIGBcXHJgXG4gIHNvOiAxNCxcbiAgc2k6IDE1LFxuICBkbGU6IDE2LFxuICBkYzE6IDE3LFxuICBkYzI6IDE4LFxuICBkYzM6IDE5LFxuICBkYzQ6IDIwLFxuICBuYWs6IDIxLFxuICBzeW46IDIyLFxuICBldGI6IDIzLFxuICBjYW46IDI0LFxuICBlbTogMjUsXG4gIHN1YjogMjYsXG4gIGVzYzogMjcsXG4gIGZzOiAyOCxcbiAgZ3M6IDI5LFxuICByczogMzAsXG4gIHVzOiAzMSxcbiAgc3BhY2U6IDMyLFxuICBleGNsYW1hdGlvbk1hcms6IDMzLCAvLyBgIWBcbiAgcXVvdGF0aW9uTWFyazogMzQsIC8vIGBcImBcbiAgbnVtYmVyU2lnbjogMzUsIC8vIGAjYFxuICBkb2xsYXJTaWduOiAzNiwgLy8gYCRgXG4gIHBlcmNlbnRTaWduOiAzNywgLy8gYCVgXG4gIGFtcGVyc2FuZDogMzgsIC8vIGAmYFxuICBhcG9zdHJvcGhlOiAzOSwgLy8gYCdgXG4gIGxlZnRQYXJlbnRoZXNpczogNDAsIC8vIGAoYFxuICByaWdodFBhcmVudGhlc2lzOiA0MSwgLy8gYClgXG4gIGFzdGVyaXNrOiA0MiwgLy8gYCpgXG4gIHBsdXNTaWduOiA0MywgLy8gYCtgXG4gIGNvbW1hOiA0NCwgLy8gYCxgXG4gIGRhc2g6IDQ1LCAvLyBgLWBcbiAgZG90OiA0NiwgLy8gYC5gXG4gIHNsYXNoOiA0NywgLy8gYC9gXG4gIGRpZ2l0MDogNDgsIC8vIGAwYFxuICBkaWdpdDE6IDQ5LCAvLyBgMWBcbiAgZGlnaXQyOiA1MCwgLy8gYDJgXG4gIGRpZ2l0MzogNTEsIC8vIGAzYFxuICBkaWdpdDQ6IDUyLCAvLyBgNGBcbiAgZGlnaXQ1OiA1MywgLy8gYDVgXG4gIGRpZ2l0NjogNTQsIC8vIGA2YFxuICBkaWdpdDc6IDU1LCAvLyBgN2BcbiAgZGlnaXQ4OiA1NiwgLy8gYDhgXG4gIGRpZ2l0OTogNTcsIC8vIGA5YFxuICBjb2xvbjogNTgsIC8vIGA6YFxuICBzZW1pY29sb246IDU5LCAvLyBgO2BcbiAgbGVzc1RoYW46IDYwLCAvLyBgPGBcbiAgZXF1YWxzVG86IDYxLCAvLyBgPWBcbiAgZ3JlYXRlclRoYW46IDYyLCAvLyBgPmBcbiAgcXVlc3Rpb25NYXJrOiA2MywgLy8gYD9gXG4gIGF0U2lnbjogNjQsIC8vIGBAYFxuICB1cHBlcmNhc2VBOiA2NSwgLy8gYEFgXG4gIHVwcGVyY2FzZUI6IDY2LCAvLyBgQmBcbiAgdXBwZXJjYXNlQzogNjcsIC8vIGBDYFxuICB1cHBlcmNhc2VEOiA2OCwgLy8gYERgXG4gIHVwcGVyY2FzZUU6IDY5LCAvLyBgRWBcbiAgdXBwZXJjYXNlRjogNzAsIC8vIGBGYFxuICB1cHBlcmNhc2VHOiA3MSwgLy8gYEdgXG4gIHVwcGVyY2FzZUg6IDcyLCAvLyBgSGBcbiAgdXBwZXJjYXNlSTogNzMsIC8vIGBJYFxuICB1cHBlcmNhc2VKOiA3NCwgLy8gYEpgXG4gIHVwcGVyY2FzZUs6IDc1LCAvLyBgS2BcbiAgdXBwZXJjYXNlTDogNzYsIC8vIGBMYFxuICB1cHBlcmNhc2VNOiA3NywgLy8gYE1gXG4gIHVwcGVyY2FzZU46IDc4LCAvLyBgTmBcbiAgdXBwZXJjYXNlTzogNzksIC8vIGBPYFxuICB1cHBlcmNhc2VQOiA4MCwgLy8gYFBgXG4gIHVwcGVyY2FzZVE6IDgxLCAvLyBgUWBcbiAgdXBwZXJjYXNlUjogODIsIC8vIGBSYFxuICB1cHBlcmNhc2VTOiA4MywgLy8gYFNgXG4gIHVwcGVyY2FzZVQ6IDg0LCAvLyBgVGBcbiAgdXBwZXJjYXNlVTogODUsIC8vIGBVYFxuICB1cHBlcmNhc2VWOiA4NiwgLy8gYFZgXG4gIHVwcGVyY2FzZVc6IDg3LCAvLyBgV2BcbiAgdXBwZXJjYXNlWDogODgsIC8vIGBYYFxuICB1cHBlcmNhc2VZOiA4OSwgLy8gYFlgXG4gIHVwcGVyY2FzZVo6IDkwLCAvLyBgWmBcbiAgbGVmdFNxdWFyZUJyYWNrZXQ6IDkxLCAvLyBgW2BcbiAgYmFja3NsYXNoOiA5MiwgLy8gYFxcYFxuICByaWdodFNxdWFyZUJyYWNrZXQ6IDkzLCAvLyBgXWBcbiAgY2FyZXQ6IDk0LCAvLyBgXmBcbiAgdW5kZXJzY29yZTogOTUsIC8vIGBfYFxuICBncmF2ZUFjY2VudDogOTYsIC8vIGBgIGAgYGBcbiAgbG93ZXJjYXNlQTogOTcsIC8vIGBhYFxuICBsb3dlcmNhc2VCOiA5OCwgLy8gYGJgXG4gIGxvd2VyY2FzZUM6IDk5LCAvLyBgY2BcbiAgbG93ZXJjYXNlRDogMTAwLCAvLyBgZGBcbiAgbG93ZXJjYXNlRTogMTAxLCAvLyBgZWBcbiAgbG93ZXJjYXNlRjogMTAyLCAvLyBgZmBcbiAgbG93ZXJjYXNlRzogMTAzLCAvLyBgZ2BcbiAgbG93ZXJjYXNlSDogMTA0LCAvLyBgaGBcbiAgbG93ZXJjYXNlSTogMTA1LCAvLyBgaWBcbiAgbG93ZXJjYXNlSjogMTA2LCAvLyBgamBcbiAgbG93ZXJjYXNlSzogMTA3LCAvLyBga2BcbiAgbG93ZXJjYXNlTDogMTA4LCAvLyBgbGBcbiAgbG93ZXJjYXNlTTogMTA5LCAvLyBgbWBcbiAgbG93ZXJjYXNlTjogMTEwLCAvLyBgbmBcbiAgbG93ZXJjYXNlTzogMTExLCAvLyBgb2BcbiAgbG93ZXJjYXNlUDogMTEyLCAvLyBgcGBcbiAgbG93ZXJjYXNlUTogMTEzLCAvLyBgcWBcbiAgbG93ZXJjYXNlUjogMTE0LCAvLyBgcmBcbiAgbG93ZXJjYXNlUzogMTE1LCAvLyBgc2BcbiAgbG93ZXJjYXNlVDogMTE2LCAvLyBgdGBcbiAgbG93ZXJjYXNlVTogMTE3LCAvLyBgdWBcbiAgbG93ZXJjYXNlVjogMTE4LCAvLyBgdmBcbiAgbG93ZXJjYXNlVzogMTE5LCAvLyBgd2BcbiAgbG93ZXJjYXNlWDogMTIwLCAvLyBgeGBcbiAgbG93ZXJjYXNlWTogMTIxLCAvLyBgeWBcbiAgbG93ZXJjYXNlWjogMTIyLCAvLyBgemBcbiAgbGVmdEN1cmx5QnJhY2U6IDEyMywgLy8gYHtgXG4gIHZlcnRpY2FsQmFyOiAxMjQsIC8vIGB8YFxuICByaWdodEN1cmx5QnJhY2U6IDEyNSwgLy8gYH1gXG4gIHRpbGRlOiAxMjYsIC8vIGB+YFxuICBkZWw6IDEyNyxcbiAgLy8gVW5pY29kZSBTcGVjaWFscyBibG9jay5cbiAgYnl0ZU9yZGVyTWFya2VyOiA2NTI3OSxcbiAgLy8gVW5pY29kZSBTcGVjaWFscyBibG9jay5cbiAgcmVwbGFjZW1lbnRDaGFyYWN0ZXI6IDY1NTMzIC8vIGDvv71gXG59KVxuIl0sIm5hbWVzIjpbImNvZGVzIiwiY2FycmlhZ2VSZXR1cm4iLCJsaW5lRmVlZCIsImNhcnJpYWdlUmV0dXJuTGluZUZlZWQiLCJob3Jpem9udGFsVGFiIiwidmlydHVhbFNwYWNlIiwiZW9mIiwibnVsIiwic29oIiwic3R4IiwiZXR4IiwiZW90IiwiZW5xIiwiYWNrIiwiYmVsIiwiYnMiLCJodCIsImxmIiwidnQiLCJmZiIsImNyIiwic28iLCJzaSIsImRsZSIsImRjMSIsImRjMiIsImRjMyIsImRjNCIsIm5hayIsInN5biIsImV0YiIsImNhbiIsImVtIiwic3ViIiwiZXNjIiwiZnMiLCJncyIsInJzIiwidXMiLCJzcGFjZSIsImV4Y2xhbWF0aW9uTWFyayIsInF1b3RhdGlvbk1hcmsiLCJudW1iZXJTaWduIiwiZG9sbGFyU2lnbiIsInBlcmNlbnRTaWduIiwiYW1wZXJzYW5kIiwiYXBvc3Ryb3BoZSIsImxlZnRQYXJlbnRoZXNpcyIsInJpZ2h0UGFyZW50aGVzaXMiLCJhc3RlcmlzayIsInBsdXNTaWduIiwiY29tbWEiLCJkYXNoIiwiZG90Iiwic2xhc2giLCJkaWdpdDAiLCJkaWdpdDEiLCJkaWdpdDIiLCJkaWdpdDMiLCJkaWdpdDQiLCJkaWdpdDUiLCJkaWdpdDYiLCJkaWdpdDciLCJkaWdpdDgiLCJkaWdpdDkiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3NUaGFuIiwiZXF1YWxzVG8iLCJncmVhdGVyVGhhbiIsInF1ZXN0aW9uTWFyayIsImF0U2lnbiIsInVwcGVyY2FzZUEiLCJ1cHBlcmNhc2VCIiwidXBwZXJjYXNlQyIsInVwcGVyY2FzZUQiLCJ1cHBlcmNhc2VFIiwidXBwZXJjYXNlRiIsInVwcGVyY2FzZUciLCJ1cHBlcmNhc2VIIiwidXBwZXJjYXNlSSIsInVwcGVyY2FzZUoiLCJ1cHBlcmNhc2VLIiwidXBwZXJjYXNlTCIsInVwcGVyY2FzZU0iLCJ1cHBlcmNhc2VOIiwidXBwZXJjYXNlTyIsInVwcGVyY2FzZVAiLCJ1cHBlcmNhc2VRIiwidXBwZXJjYXNlUiIsInVwcGVyY2FzZVMiLCJ1cHBlcmNhc2VUIiwidXBwZXJjYXNlVSIsInVwcGVyY2FzZVYiLCJ1cHBlcmNhc2VXIiwidXBwZXJjYXNlWCIsInVwcGVyY2FzZVkiLCJ1cHBlcmNhc2VaIiwibGVmdFNxdWFyZUJyYWNrZXQiLCJiYWNrc2xhc2giLCJyaWdodFNxdWFyZUJyYWNrZXQiLCJjYXJldCIsInVuZGVyc2NvcmUiLCJncmF2ZUFjY2VudCIsImxvd2VyY2FzZUEiLCJsb3dlcmNhc2VCIiwibG93ZXJjYXNlQyIsImxvd2VyY2FzZUQiLCJsb3dlcmNhc2VFIiwibG93ZXJjYXNlRiIsImxvd2VyY2FzZUciLCJsb3dlcmNhc2VIIiwibG93ZXJjYXNlSSIsImxvd2VyY2FzZUoiLCJsb3dlcmNhc2VLIiwibG93ZXJjYXNlTCIsImxvd2VyY2FzZU0iLCJsb3dlcmNhc2VOIiwibG93ZXJjYXNlTyIsImxvd2VyY2FzZVAiLCJsb3dlcmNhc2VRIiwibG93ZXJjYXNlUiIsImxvd2VyY2FzZVMiLCJsb3dlcmNhc2VUIiwibG93ZXJjYXNlVSIsImxvd2VyY2FzZVYiLCJsb3dlcmNhc2VXIiwibG93ZXJjYXNlWCIsImxvd2VyY2FzZVkiLCJsb3dlcmNhc2VaIiwibGVmdEN1cmx5QnJhY2UiLCJ2ZXJ0aWNhbEJhciIsInJpZ2h0Q3VybHlCcmFjZSIsInRpbGRlIiwiZGVsIiwiYnl0ZU9yZGVyTWFya2VyIiwicmVwbGFjZW1lbnRDaGFyYWN0ZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/micromark-util-symbol/lib/constants.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ constants: () => (/* binding */ constants)\n/* harmony export */ });\n/**\n * This module is compiled away!\n *\n * Parsing markdown comes with a couple of constants, such as minimum or maximum\n * sizes of certain sequences.\n * Additionally, there are a couple symbols used inside micromark.\n * These are all defined here, but compiled away by scripts.\n */ const constants = /** @type {const} */ {\n attentionSideBefore: 1,\n attentionSideAfter: 2,\n atxHeadingOpeningFenceSizeMax: 6,\n autolinkDomainSizeMax: 63,\n autolinkSchemeSizeMax: 32,\n cdataOpeningString: \"CDATA[\",\n characterGroupWhitespace: 1,\n characterGroupPunctuation: 2,\n characterReferenceDecimalSizeMax: 7,\n characterReferenceHexadecimalSizeMax: 6,\n characterReferenceNamedSizeMax: 31,\n codeFencedSequenceSizeMin: 3,\n contentTypeDocument: \"document\",\n contentTypeFlow: \"flow\",\n contentTypeContent: \"content\",\n contentTypeString: \"string\",\n contentTypeText: \"text\",\n hardBreakPrefixSizeMin: 2,\n htmlRaw: 1,\n htmlComment: 2,\n htmlInstruction: 3,\n htmlDeclaration: 4,\n htmlCdata: 5,\n htmlBasic: 6,\n htmlComplete: 7,\n htmlRawSizeMax: 8,\n linkResourceDestinationBalanceMax: 32,\n linkReferenceSizeMax: 999,\n listItemValueSizeMax: 10,\n numericBaseDecimal: 10,\n numericBaseHexadecimal: 0x10,\n tabSize: 4,\n thematicBreakMarkerCountMin: 3,\n v8MaxSafeChunkSize: 10000 // V8 (and potentially others) have problems injecting giant arrays into other arrays, hence we operate in chunks.\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLXN5bWJvbC9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBQ00sTUFBTUEsWUFBWSxrQkFBa0IsR0FBSTtJQUM3Q0MscUJBQXFCO0lBQ3JCQyxvQkFBb0I7SUFDcEJDLCtCQUErQjtJQUMvQkMsdUJBQXVCO0lBQ3ZCQyx1QkFBdUI7SUFDdkJDLG9CQUFvQjtJQUNwQkMsMEJBQTBCO0lBQzFCQywyQkFBMkI7SUFDM0JDLGtDQUFrQztJQUNsQ0Msc0NBQXNDO0lBQ3RDQyxnQ0FBZ0M7SUFDaENDLDJCQUEyQjtJQUMzQkMscUJBQXFCO0lBQ3JCQyxpQkFBaUI7SUFDakJDLG9CQUFvQjtJQUNwQkMsbUJBQW1CO0lBQ25CQyxpQkFBaUI7SUFDakJDLHdCQUF3QjtJQUN4QkMsU0FBUztJQUNUQyxhQUFhO0lBQ2JDLGlCQUFpQjtJQUNqQkMsaUJBQWlCO0lBQ2pCQyxXQUFXO0lBQ1hDLFdBQVc7SUFDWEMsY0FBYztJQUNkQyxnQkFBZ0I7SUFDaEJDLG1DQUFtQztJQUNuQ0Msc0JBQXNCO0lBQ3RCQyxzQkFBc0I7SUFDdEJDLG9CQUFvQjtJQUNwQkMsd0JBQXdCO0lBQ3hCQyxTQUFTO0lBQ1RDLDZCQUE2QjtJQUM3QkMsb0JBQW9CLE1BQU0sa0hBQWtIO0FBQzlJLEVBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1zeW1ib2wvbGliL2NvbnN0YW50cy5qcz83ZTZjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBtb2R1bGUgaXMgY29tcGlsZWQgYXdheSFcbiAqXG4gKiBQYXJzaW5nIG1hcmtkb3duIGNvbWVzIHdpdGggYSBjb3VwbGUgb2YgY29uc3RhbnRzLCBzdWNoIGFzIG1pbmltdW0gb3IgbWF4aW11bVxuICogc2l6ZXMgb2YgY2VydGFpbiBzZXF1ZW5jZXMuXG4gKiBBZGRpdGlvbmFsbHksIHRoZXJlIGFyZSBhIGNvdXBsZSBzeW1ib2xzIHVzZWQgaW5zaWRlIG1pY3JvbWFyay5cbiAqIFRoZXNlIGFyZSBhbGwgZGVmaW5lZCBoZXJlLCBidXQgY29tcGlsZWQgYXdheSBieSBzY3JpcHRzLlxuICovXG5leHBvcnQgY29uc3QgY29uc3RhbnRzID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKHtcbiAgYXR0ZW50aW9uU2lkZUJlZm9yZTogMSwgLy8gU3ltYm9sIHRvIG1hcmsgYW4gYXR0ZW50aW9uIHNlcXVlbmNlIGFzIGJlZm9yZSBjb250ZW50OiBgKmFgXG4gIGF0dGVudGlvblNpZGVBZnRlcjogMiwgLy8gU3ltYm9sIHRvIG1hcmsgYW4gYXR0ZW50aW9uIHNlcXVlbmNlIGFzIGFmdGVyIGNvbnRlbnQ6IGBhKmBcbiAgYXR4SGVhZGluZ09wZW5pbmdGZW5jZVNpemVNYXg6IDYsIC8vIDYgbnVtYmVyIHNpZ25zIGlzIGZpbmUsIDcgaXNu4oCZdC5cbiAgYXV0b2xpbmtEb21haW5TaXplTWF4OiA2MywgLy8gNjMgY2hhcmFjdGVycyBpcyBmaW5lLCA2NCBpcyB0b28gbWFueS5cbiAgYXV0b2xpbmtTY2hlbWVTaXplTWF4OiAzMiwgLy8gMzIgY2hhcmFjdGVycyBpcyBmaW5lLCAzMyBpcyB0b28gbWFueS5cbiAgY2RhdGFPcGVuaW5nU3RyaW5nOiAnQ0RBVEFbJywgLy8gQW5kIHByZWNlZGVkIGJ5IGA8IVtgLlxuICBjaGFyYWN0ZXJHcm91cFdoaXRlc3BhY2U6IDEsIC8vIFN5bWJvbCB1c2VkIHRvIGluZGljYXRlIGEgY2hhcmFjdGVyIGlzIHdoaXRlc3BhY2VcbiAgY2hhcmFjdGVyR3JvdXBQdW5jdHVhdGlvbjogMiwgLy8gU3ltYm9sIHVzZWQgdG8gaW5kaWNhdGUgYSBjaGFyYWN0ZXIgaXMgcHVuY3R1YXRpb25cbiAgY2hhcmFjdGVyUmVmZXJlbmNlRGVjaW1hbFNpemVNYXg6IDcsIC8vIGAmIzk5OTk5OTk7YC5cbiAgY2hhcmFjdGVyUmVmZXJlbmNlSGV4YWRlY2ltYWxTaXplTWF4OiA2LCAvLyBgJiN4ZmY5OTk5O2AuXG4gIGNoYXJhY3RlclJlZmVyZW5jZU5hbWVkU2l6ZU1heDogMzEsIC8vIGAmQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbDtgLlxuICBjb2RlRmVuY2VkU2VxdWVuY2VTaXplTWluOiAzLCAvLyBBdCBsZWFzdCAzIHRpY2tzIG9yIHRpbGRlcyBhcmUgbmVlZGVkLlxuICBjb250ZW50VHlwZURvY3VtZW50OiAnZG9jdW1lbnQnLFxuICBjb250ZW50VHlwZUZsb3c6ICdmbG93JyxcbiAgY29udGVudFR5cGVDb250ZW50OiAnY29udGVudCcsXG4gIGNvbnRlbnRUeXBlU3RyaW5nOiAnc3RyaW5nJyxcbiAgY29udGVudFR5cGVUZXh0OiAndGV4dCcsXG4gIGhhcmRCcmVha1ByZWZpeFNpemVNaW46IDIsIC8vIEF0IGxlYXN0IDIgdHJhaWxpbmcgc3BhY2VzIGFyZSBuZWVkZWQuXG4gIGh0bWxSYXc6IDEsIC8vIFN5bWJvbCBmb3IgYDxzY3JpcHQ+YFxuICBodG1sQ29tbWVudDogMiwgLy8gU3ltYm9sIGZvciBgPCEtLS0tPmBcbiAgaHRtbEluc3RydWN0aW9uOiAzLCAvLyBTeW1ib2wgZm9yIGA8P3BocD8+YFxuICBodG1sRGVjbGFyYXRpb246IDQsIC8vIFN5bWJvbCBmb3IgYDwhZG9jdHlwZT5gXG4gIGh0bWxDZGF0YTogNSwgLy8gU3ltYm9sIGZvciBgPCFbQ0RBVEFbXV0+YFxuICBodG1sQmFzaWM6IDYsIC8vIFN5bWJvbCBmb3IgYDxkaXZgXG4gIGh0bWxDb21wbGV0ZTogNywgLy8gU3ltYm9sIGZvciBgPHg+YFxuICBodG1sUmF3U2l6ZU1heDogOCwgLy8gTGVuZ3RoIG9mIGB0ZXh0YXJlYWAuXG4gIGxpbmtSZXNvdXJjZURlc3RpbmF0aW9uQmFsYW5jZU1heDogMzIsIC8vIFNlZTogPGh0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjMwLyNsaW5rLWRlc3RpbmF0aW9uPiwgPGh0dHBzOi8vZ2l0aHViLmNvbS9yZW1hcmtqcy9yZWFjdC1tYXJrZG93bi9pc3N1ZXMvNjU4I2lzc3VlY29tbWVudC05ODQzNDU1Nzc+XG4gIGxpbmtSZWZlcmVuY2VTaXplTWF4OiA5OTksIC8vIFNlZTogPGh0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjMwLyNsaW5rLWxhYmVsPlxuICBsaXN0SXRlbVZhbHVlU2l6ZU1heDogMTAsIC8vIFNlZTogPGh0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjMwLyNvcmRlcmVkLWxpc3QtbWFya2VyPlxuICBudW1lcmljQmFzZURlY2ltYWw6IDEwLFxuICBudW1lcmljQmFzZUhleGFkZWNpbWFsOiAweDEwLFxuICB0YWJTaXplOiA0LCAvLyBUYWJzIGhhdmUgYSBoYXJkLWNvZGVkIHNpemUgb2YgNCwgcGVyIENvbW1vbk1hcmsuXG4gIHRoZW1hdGljQnJlYWtNYXJrZXJDb3VudE1pbjogMywgLy8gQXQgbGVhc3QgMyBhc3Rlcmlza3MsIGRhc2hlcywgb3IgdW5kZXJzY29yZXMgYXJlIG5lZWRlZC5cbiAgdjhNYXhTYWZlQ2h1bmtTaXplOiAxMDAwMCAvLyBWOCAoYW5kIHBvdGVudGlhbGx5IG90aGVycykgaGF2ZSBwcm9ibGVtcyBpbmplY3RpbmcgZ2lhbnQgYXJyYXlzIGludG8gb3RoZXIgYXJyYXlzLCBoZW5jZSB3ZSBvcGVyYXRlIGluIGNodW5rcy5cbn0pXG4iXSwibmFtZXMiOlsiY29uc3RhbnRzIiwiYXR0ZW50aW9uU2lkZUJlZm9yZSIsImF0dGVudGlvblNpZGVBZnRlciIsImF0eEhlYWRpbmdPcGVuaW5nRmVuY2VTaXplTWF4IiwiYXV0b2xpbmtEb21haW5TaXplTWF4IiwiYXV0b2xpbmtTY2hlbWVTaXplTWF4IiwiY2RhdGFPcGVuaW5nU3RyaW5nIiwiY2hhcmFjdGVyR3JvdXBXaGl0ZXNwYWNlIiwiY2hhcmFjdGVyR3JvdXBQdW5jdHVhdGlvbiIsImNoYXJhY3RlclJlZmVyZW5jZURlY2ltYWxTaXplTWF4IiwiY2hhcmFjdGVyUmVmZXJlbmNlSGV4YWRlY2ltYWxTaXplTWF4IiwiY2hhcmFjdGVyUmVmZXJlbmNlTmFtZWRTaXplTWF4IiwiY29kZUZlbmNlZFNlcXVlbmNlU2l6ZU1pbiIsImNvbnRlbnRUeXBlRG9jdW1lbnQiLCJjb250ZW50VHlwZUZsb3ciLCJjb250ZW50VHlwZUNvbnRlbnQiLCJjb250ZW50VHlwZVN0cmluZyIsImNvbnRlbnRUeXBlVGV4dCIsImhhcmRCcmVha1ByZWZpeFNpemVNaW4iLCJodG1sUmF3IiwiaHRtbENvbW1lbnQiLCJodG1sSW5zdHJ1Y3Rpb24iLCJodG1sRGVjbGFyYXRpb24iLCJodG1sQ2RhdGEiLCJodG1sQmFzaWMiLCJodG1sQ29tcGxldGUiLCJodG1sUmF3U2l6ZU1heCIsImxpbmtSZXNvdXJjZURlc3RpbmF0aW9uQmFsYW5jZU1heCIsImxpbmtSZWZlcmVuY2VTaXplTWF4IiwibGlzdEl0ZW1WYWx1ZVNpemVNYXgiLCJudW1lcmljQmFzZURlY2ltYWwiLCJudW1lcmljQmFzZUhleGFkZWNpbWFsIiwidGFiU2l6ZSIsInRoZW1hdGljQnJlYWtNYXJrZXJDb3VudE1pbiIsInY4TWF4U2FmZUNodW5rU2l6ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-symbol/lib/types.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/micromark-util-symbol/lib/types.js ***!
- \*************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ types: () => (/* binding */ types)\n/* harmony export */ });\n/**\n * This module is compiled away!\n *\n * Here is the list of all types of tokens exposed by micromark, with a short\n * explanation of what they include and where they are found.\n * In picking names, generally, the rule is to be as explicit as possible\n * instead of reusing names.\n * For example, there is a `definitionDestination` and a `resourceDestination`,\n * instead of one shared name.\n */ // Note: when changing the next record, you must also change `TokenTypeMap`\n// in `micromark-util-types/index.d.ts`.\nconst types = /** @type {const} */ {\n // Generic type for data, such as in a title, a destination, etc.\n data: \"data\",\n // Generic type for syntactic whitespace (tabs, virtual spaces, spaces).\n // Such as, between a fenced code fence and an info string.\n whitespace: \"whitespace\",\n // Generic type for line endings (line feed, carriage return, carriage return +\n // line feed).\n lineEnding: \"lineEnding\",\n // A line ending, but ending a blank line.\n lineEndingBlank: \"lineEndingBlank\",\n // Generic type for whitespace (tabs, virtual spaces, spaces) at the start of a\n // line.\n linePrefix: \"linePrefix\",\n // Generic type for whitespace (tabs, virtual spaces, spaces) at the end of a\n // line.\n lineSuffix: \"lineSuffix\",\n // Whole ATX heading:\n //\n // ```markdown\n // #\n // ## Alpha\n // ### Bravo ###\n // ```\n //\n // Includes `atxHeadingSequence`, `whitespace`, `atxHeadingText`.\n atxHeading: \"atxHeading\",\n // Sequence of number signs in an ATX heading (`###`).\n atxHeadingSequence: \"atxHeadingSequence\",\n // Content in an ATX heading (`alpha`).\n // Includes text.\n atxHeadingText: \"atxHeadingText\",\n // Whole autolink (`<https://example.com>` or `<[email protected]>`)\n // Includes `autolinkMarker` and `autolinkProtocol` or `autolinkEmail`.\n autolink: \"autolink\",\n // Email autolink w/o markers (`[email protected]`)\n autolinkEmail: \"autolinkEmail\",\n // Marker around an `autolinkProtocol` or `autolinkEmail` (`<` or `>`).\n autolinkMarker: \"autolinkMarker\",\n // Protocol autolink w/o markers (`https://example.com`)\n autolinkProtocol: \"autolinkProtocol\",\n // A whole character escape (`\\-`).\n // Includes `escapeMarker` and `characterEscapeValue`.\n characterEscape: \"characterEscape\",\n // The escaped character (`-`).\n characterEscapeValue: \"characterEscapeValue\",\n // A whole character reference (`&amp;`, `&#8800;`, or `&#x1D306;`).\n // Includes `characterReferenceMarker`, an optional\n // `characterReferenceMarkerNumeric`, in which case an optional\n // `characterReferenceMarkerHexadecimal`, and a `characterReferenceValue`.\n characterReference: \"characterReference\",\n // The start or end marker (`&` or `;`).\n characterReferenceMarker: \"characterReferenceMarker\",\n // Mark reference as numeric (`#`).\n characterReferenceMarkerNumeric: \"characterReferenceMarkerNumeric\",\n // Mark reference as numeric (`x` or `X`).\n characterReferenceMarkerHexadecimal: \"characterReferenceMarkerHexadecimal\",\n // Value of character reference w/o markers (`amp`, `8800`, or `1D306`).\n characterReferenceValue: \"characterReferenceValue\",\n // Whole fenced code:\n //\n // ````markdown\n // ```js\n // alert(1)\n // ```\n // ````\n codeFenced: \"codeFenced\",\n // A fenced code fence, including whitespace, sequence, info, and meta\n // (` ```js `).\n codeFencedFence: \"codeFencedFence\",\n // Sequence of grave accent or tilde characters (` ``` `) in a fence.\n codeFencedFenceSequence: \"codeFencedFenceSequence\",\n // Info word (`js`) in a fence.\n // Includes string.\n codeFencedFenceInfo: \"codeFencedFenceInfo\",\n // Meta words (`highlight=\"1\"`) in a fence.\n // Includes string.\n codeFencedFenceMeta: \"codeFencedFenceMeta\",\n // A line of code.\n codeFlowValue: \"codeFlowValue\",\n // Whole indented code:\n //\n // ```markdown\n // alert(1)\n // ```\n //\n // Includes `lineEnding`, `linePrefix`, and `codeFlowValue`.\n codeIndented: \"codeIndented\",\n // A text code (``` `alpha` ```).\n // Includes `codeTextSequence`, `codeTextData`, `lineEnding`, and can include\n // `codeTextPadding`.\n codeText: \"codeText\",\n codeTextData: \"codeTextData\",\n // A space or line ending right after or before a tick.\n codeTextPadding: \"codeTextPadding\",\n // A text code fence (` `` `).\n codeTextSequence: \"codeTextSequence\",\n // Whole content:\n //\n // ```markdown\n // [a]: b\n // c\n // =\n // d\n // ```\n //\n // Includes `paragraph` and `definition`.\n content: \"content\",\n // Whole definition:\n //\n // ```markdown\n // [micromark]: https://github.com/micromark/micromark\n // ```\n //\n // Includes `definitionLabel`, `definitionMarker`, `whitespace`,\n // `definitionDestination`, and optionally `lineEnding` and `definitionTitle`.\n definition: \"definition\",\n // Destination of a definition (`https://github.com/micromark/micromark` or\n // `<https://github.com/micromark/micromark>`).\n // Includes `definitionDestinationLiteral` or `definitionDestinationRaw`.\n definitionDestination: \"definitionDestination\",\n // Enclosed destination of a definition\n // (`<https://github.com/micromark/micromark>`).\n // Includes `definitionDestinationLiteralMarker` and optionally\n // `definitionDestinationString`.\n definitionDestinationLiteral: \"definitionDestinationLiteral\",\n // Markers of an enclosed definition destination (`<` or `>`).\n definitionDestinationLiteralMarker: \"definitionDestinationLiteralMarker\",\n // Unenclosed destination of a definition\n // (`https://github.com/micromark/micromark`).\n // Includes `definitionDestinationString`.\n definitionDestinationRaw: \"definitionDestinationRaw\",\n // Text in an destination (`https://github.com/micromark/micromark`).\n // Includes string.\n definitionDestinationString: \"definitionDestinationString\",\n // Label of a definition (`[micromark]`).\n // Includes `definitionLabelMarker` and `definitionLabelString`.\n definitionLabel: \"definitionLabel\",\n // Markers of a definition label (`[` or `]`).\n definitionLabelMarker: \"definitionLabelMarker\",\n // Value of a definition label (`micromark`).\n // Includes string.\n definitionLabelString: \"definitionLabelString\",\n // Marker between a label and a destination (`:`).\n definitionMarker: \"definitionMarker\",\n // Title of a definition (`\"x\"`, `'y'`, or `(z)`).\n // Includes `definitionTitleMarker` and optionally `definitionTitleString`.\n definitionTitle: \"definitionTitle\",\n // Marker around a title of a definition (`\"`, `'`, `(`, or `)`).\n definitionTitleMarker: \"definitionTitleMarker\",\n // Data without markers in a title (`z`).\n // Includes string.\n definitionTitleString: \"definitionTitleString\",\n // Emphasis (`*alpha*`).\n // Includes `emphasisSequence` and `emphasisText`.\n emphasis: \"emphasis\",\n // Sequence of emphasis markers (`*` or `_`).\n emphasisSequence: \"emphasisSequence\",\n // Emphasis text (`alpha`).\n // Includes text.\n emphasisText: \"emphasisText\",\n // The character escape marker (`\\`).\n escapeMarker: \"escapeMarker\",\n // A hard break created with a backslash (`\\\\n`).\n // Note: does not include the line ending.\n hardBreakEscape: \"hardBreakEscape\",\n // A hard break created with trailing spaces (` \\n`).\n // Does not include the line ending.\n hardBreakTrailing: \"hardBreakTrailing\",\n // Flow HTML:\n //\n // ```markdown\n // <div\n // ```\n //\n // Inlcudes `lineEnding`, `htmlFlowData`.\n htmlFlow: \"htmlFlow\",\n htmlFlowData: \"htmlFlowData\",\n // HTML in text (the tag in `a <i> b`).\n // Includes `lineEnding`, `htmlTextData`.\n htmlText: \"htmlText\",\n htmlTextData: \"htmlTextData\",\n // Whole image (`![alpha](bravo)`, `![alpha][bravo]`, `![alpha][]`, or\n // `![alpha]`).\n // Includes `label` and an optional `resource` or `reference`.\n image: \"image\",\n // Whole link label (`[*alpha*]`).\n // Includes `labelLink` or `labelImage`, `labelText`, and `labelEnd`.\n label: \"label\",\n // Text in an label (`*alpha*`).\n // Includes text.\n labelText: \"labelText\",\n // Start a link label (`[`).\n // Includes a `labelMarker`.\n labelLink: \"labelLink\",\n // Start an image label (`![`).\n // Includes `labelImageMarker` and `labelMarker`.\n labelImage: \"labelImage\",\n // Marker of a label (`[` or `]`).\n labelMarker: \"labelMarker\",\n // Marker to start an image (`!`).\n labelImageMarker: \"labelImageMarker\",\n // End a label (`]`).\n // Includes `labelMarker`.\n labelEnd: \"labelEnd\",\n // Whole link (`[alpha](bravo)`, `[alpha][bravo]`, `[alpha][]`, or `[alpha]`).\n // Includes `label` and an optional `resource` or `reference`.\n link: \"link\",\n // Whole paragraph:\n //\n // ```markdown\n // alpha\n // bravo.\n // ```\n //\n // Includes text.\n paragraph: \"paragraph\",\n // A reference (`[alpha]` or `[]`).\n // Includes `referenceMarker` and an optional `referenceString`.\n reference: \"reference\",\n // A reference marker (`[` or `]`).\n referenceMarker: \"referenceMarker\",\n // Reference text (`alpha`).\n // Includes string.\n referenceString: \"referenceString\",\n // A resource (`(https://example.com \"alpha\")`).\n // Includes `resourceMarker`, an optional `resourceDestination` with an optional\n // `whitespace` and `resourceTitle`.\n resource: \"resource\",\n // A resource destination (`https://example.com`).\n // Includes `resourceDestinationLiteral` or `resourceDestinationRaw`.\n resourceDestination: \"resourceDestination\",\n // A literal resource destination (`<https://example.com>`).\n // Includes `resourceDestinationLiteralMarker` and optionally\n // `resourceDestinationString`.\n resourceDestinationLiteral: \"resourceDestinationLiteral\",\n // A resource destination marker (`<` or `>`).\n resourceDestinationLiteralMarker: \"resourceDestinationLiteralMarker\",\n // A raw resource destination (`https://example.com`).\n // Includes `resourceDestinationString`.\n resourceDestinationRaw: \"resourceDestinationRaw\",\n // Resource destination text (`https://example.com`).\n // Includes string.\n resourceDestinationString: \"resourceDestinationString\",\n // A resource marker (`(` or `)`).\n resourceMarker: \"resourceMarker\",\n // A resource title (`\"alpha\"`, `'alpha'`, or `(alpha)`).\n // Includes `resourceTitleMarker` and optionally `resourceTitleString`.\n resourceTitle: \"resourceTitle\",\n // A resource title marker (`\"`, `'`, `(`, or `)`).\n resourceTitleMarker: \"resourceTitleMarker\",\n // Resource destination title (`alpha`).\n // Includes string.\n resourceTitleString: \"resourceTitleString\",\n // Whole setext heading:\n //\n // ```markdown\n // alpha\n // bravo\n // =====\n // ```\n //\n // Includes `setextHeadingText`, `lineEnding`, `linePrefix`, and\n // `setextHeadingLine`.\n setextHeading: \"setextHeading\",\n // Content in a setext heading (`alpha\\nbravo`).\n // Includes text.\n setextHeadingText: \"setextHeadingText\",\n // Underline in a setext heading, including whitespace suffix (`==`).\n // Includes `setextHeadingLineSequence`.\n setextHeadingLine: \"setextHeadingLine\",\n // Sequence of equals or dash characters in underline in a setext heading (`-`).\n setextHeadingLineSequence: \"setextHeadingLineSequence\",\n // Strong (`**alpha**`).\n // Includes `strongSequence` and `strongText`.\n strong: \"strong\",\n // Sequence of strong markers (`**` or `__`).\n strongSequence: \"strongSequence\",\n // Strong text (`alpha`).\n // Includes text.\n strongText: \"strongText\",\n // Whole thematic break:\n //\n // ```markdown\n // * * *\n // ```\n //\n // Includes `thematicBreakSequence` and `whitespace`.\n thematicBreak: \"thematicBreak\",\n // A sequence of one or more thematic break markers (`***`).\n thematicBreakSequence: \"thematicBreakSequence\",\n // Whole block quote:\n //\n // ```markdown\n // > a\n // >\n // > b\n // ```\n //\n // Includes `blockQuotePrefix` and flow.\n blockQuote: \"blockQuote\",\n // The `>` or `> ` of a block quote.\n blockQuotePrefix: \"blockQuotePrefix\",\n // The `>` of a block quote prefix.\n blockQuoteMarker: \"blockQuoteMarker\",\n // The optional ` ` of a block quote prefix.\n blockQuotePrefixWhitespace: \"blockQuotePrefixWhitespace\",\n // Whole unordered list:\n //\n // ```markdown\n // - a\n // b\n // ```\n //\n // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further\n // lines.\n listOrdered: \"listOrdered\",\n // Whole ordered list:\n //\n // ```markdown\n // 1. a\n // b\n // ```\n //\n // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further\n // lines.\n listUnordered: \"listUnordered\",\n // The indent of further list item lines.\n listItemIndent: \"listItemIndent\",\n // A marker, as in, `*`, `+`, `-`, `.`, or `)`.\n listItemMarker: \"listItemMarker\",\n // The thing that starts a list item, such as `1. `.\n // Includes `listItemValue` if ordered, `listItemMarker`, and\n // `listItemPrefixWhitespace` (unless followed by a line ending).\n listItemPrefix: \"listItemPrefix\",\n // The whitespace after a marker.\n listItemPrefixWhitespace: \"listItemPrefixWhitespace\",\n // The numerical value of an ordered item.\n listItemValue: \"listItemValue\",\n // Internal types used for subtokenizers, compiled away\n chunkDocument: \"chunkDocument\",\n chunkContent: \"chunkContent\",\n chunkFlow: \"chunkFlow\",\n chunkText: \"chunkText\",\n chunkString: \"chunkString\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLXN5bWJvbC9saWIvdHlwZXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7Q0FTQyxHQUVELDJFQUEyRTtBQUMzRSx3Q0FBd0M7QUFDakMsTUFBTUEsUUFBUSxrQkFBa0IsR0FBSTtJQUN6QyxpRUFBaUU7SUFDakVDLE1BQU07SUFFTix3RUFBd0U7SUFDeEUsMkRBQTJEO0lBQzNEQyxZQUFZO0lBRVosK0VBQStFO0lBQy9FLGNBQWM7SUFDZEMsWUFBWTtJQUVaLDBDQUEwQztJQUMxQ0MsaUJBQWlCO0lBRWpCLCtFQUErRTtJQUMvRSxRQUFRO0lBQ1JDLFlBQVk7SUFFWiw2RUFBNkU7SUFDN0UsUUFBUTtJQUNSQyxZQUFZO0lBRVoscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRixjQUFjO0lBQ2QsSUFBSTtJQUNKLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsTUFBTTtJQUNOLEVBQUU7SUFDRixpRUFBaUU7SUFDakVDLFlBQVk7SUFFWixzREFBc0Q7SUFDdERDLG9CQUFvQjtJQUVwQix1Q0FBdUM7SUFDdkMsaUJBQWlCO0lBQ2pCQyxnQkFBZ0I7SUFFaEIsb0VBQW9FO0lBQ3BFLHVFQUF1RTtJQUN2RUMsVUFBVTtJQUVWLG1EQUFtRDtJQUNuREMsZUFBZTtJQUVmLHVFQUF1RTtJQUN2RUMsZ0JBQWdCO0lBRWhCLHdEQUF3RDtJQUN4REMsa0JBQWtCO0lBRWxCLG1DQUFtQztJQUNuQyxzREFBc0Q7SUFDdERDLGlCQUFpQjtJQUVqQiwrQkFBK0I7SUFDL0JDLHNCQUFzQjtJQUV0QixvRUFBb0U7SUFDcEUsbURBQW1EO0lBQ25ELCtEQUErRDtJQUMvRCwwRUFBMEU7SUFDMUVDLG9CQUFvQjtJQUVwQix3Q0FBd0M7SUFDeENDLDBCQUEwQjtJQUUxQixtQ0FBbUM7SUFDbkNDLGlDQUFpQztJQUVqQywwQ0FBMEM7SUFDMUNDLHFDQUFxQztJQUVyQyx3RUFBd0U7SUFDeEVDLHlCQUF5QjtJQUV6Qixx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O0lBQ3pCLGlCQUFpQjtJQUNqQkMsWUFBWTtJQUVaLHdCQUF3QjtJQUN4QixFQUFFO0lBQ0YsY0FBYztJQUNkLFFBQVE7SUFDUixNQUFNO0lBQ04sRUFBRTtJQUNGLHFEQUFxRDtJQUNyREMsZUFBZTtJQUVmLDREQUE0RDtJQUM1REMsdUJBQXVCO0lBRXZCLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsY0FBYztJQUNkLE1BQU07SUFDTixJQUFJO0lBQ0osTUFBTTtJQUNOLE1BQU07SUFDTixFQUFFO0lBQ0Ysd0NBQXdDO0lBQ3hDQyxZQUFZO0lBQ1osb0NBQW9DO0lBQ3BDQyxrQkFBa0I7SUFDbEIsbUNBQW1DO0lBQ25DQyxrQkFBa0I7SUFDbEIsNENBQTRDO0lBQzVDQyw0QkFBNEI7SUFFNUIsd0JBQXdCO0lBQ3hCLEVBQUU7SUFDRixjQUFjO0lBQ2QsTUFBTTtJQUNOLE1BQU07SUFDTixNQUFNO0lBQ04sRUFBRTtJQUNGLCtFQUErRTtJQUMvRSxTQUFTO0lBQ1RDLGFBQWE7SUFFYixzQkFBc0I7SUFDdEIsRUFBRTtJQUNGLGNBQWM7SUFDZCxPQUFPO0lBQ1AsT0FBTztJQUNQLE1BQU07SUFDTixFQUFFO0lBQ0YsK0VBQStFO0lBQy9FLFNBQVM7SUFDVEMsZUFBZTtJQUVmLHlDQUF5QztJQUN6Q0MsZ0JBQWdCO0lBRWhCLCtDQUErQztJQUMvQ0MsZ0JBQWdCO0lBRWhCLG9EQUFvRDtJQUNwRCw2REFBNkQ7SUFDN0QsaUVBQWlFO0lBQ2pFQyxnQkFBZ0I7SUFFaEIsaUNBQWlDO0lBQ2pDQywwQkFBMEI7SUFFMUIsMENBQTBDO0lBQzFDQyxlQUFlO0lBRWYsdURBQXVEO0lBQ3ZEQyxlQUFlO0lBQ2ZDLGNBQWM7SUFDZEMsV0FBVztJQUNYQyxXQUFXO0lBQ1hDLGFBQWE7QUFDZixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtc3ltYm9sL2xpYi90eXBlcy5qcz9lYjg1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBtb2R1bGUgaXMgY29tcGlsZWQgYXdheSFcbiAqXG4gKiBIZXJlIGlzIHRoZSBsaXN0IG9mIGFsbCB0eXBlcyBvZiB0b2tlbnMgZXhwb3NlZCBieSBtaWNyb21hcmssIHdpdGggYSBzaG9ydFxuICogZXhwbGFuYXRpb24gb2Ygd2hhdCB0aGV5IGluY2x1ZGUgYW5kIHdoZXJlIHRoZXkgYXJlIGZvdW5kLlxuICogSW4gcGlja2luZyBuYW1lcywgZ2VuZXJhbGx5LCB0aGUgcnVsZSBpcyB0byBiZSBhcyBleHBsaWNpdCBhcyBwb3NzaWJsZVxuICogaW5zdGVhZCBvZiByZXVzaW5nIG5hbWVzLlxuICogRm9yIGV4YW1wbGUsIHRoZXJlIGlzIGEgYGRlZmluaXRpb25EZXN0aW5hdGlvbmAgYW5kIGEgYHJlc291cmNlRGVzdGluYXRpb25gLFxuICogaW5zdGVhZCBvZiBvbmUgc2hhcmVkIG5hbWUuXG4gKi9cblxuLy8gTm90ZTogd2hlbiBjaGFuZ2luZyB0aGUgbmV4dCByZWNvcmQsIHlvdSBtdXN0IGFsc28gY2hhbmdlIGBUb2tlblR5cGVNYXBgXG4vLyBpbiBgbWljcm9tYXJrLXV0aWwtdHlwZXMvaW5kZXguZC50c2AuXG5leHBvcnQgY29uc3QgdHlwZXMgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoe1xuICAvLyBHZW5lcmljIHR5cGUgZm9yIGRhdGEsIHN1Y2ggYXMgaW4gYSB0aXRsZSwgYSBkZXN0aW5hdGlvbiwgZXRjLlxuICBkYXRhOiAnZGF0YScsXG5cbiAgLy8gR2VuZXJpYyB0eXBlIGZvciBzeW50YWN0aWMgd2hpdGVzcGFjZSAodGFicywgdmlydHVhbCBzcGFjZXMsIHNwYWNlcykuXG4gIC8vIFN1Y2ggYXMsIGJldHdlZW4gYSBmZW5jZWQgY29kZSBmZW5jZSBhbmQgYW4gaW5mbyBzdHJpbmcuXG4gIHdoaXRlc3BhY2U6ICd3aGl0ZXNwYWNlJyxcblxuICAvLyBHZW5lcmljIHR5cGUgZm9yIGxpbmUgZW5kaW5ncyAobGluZSBmZWVkLCBjYXJyaWFnZSByZXR1cm4sIGNhcnJpYWdlIHJldHVybiArXG4gIC8vIGxpbmUgZmVlZCkuXG4gIGxpbmVFbmRpbmc6ICdsaW5lRW5kaW5nJyxcblxuICAvLyBBIGxpbmUgZW5kaW5nLCBidXQgZW5kaW5nIGEgYmxhbmsgbGluZS5cbiAgbGluZUVuZGluZ0JsYW5rOiAnbGluZUVuZGluZ0JsYW5rJyxcblxuICAvLyBHZW5lcmljIHR5cGUgZm9yIHdoaXRlc3BhY2UgKHRhYnMsIHZpcnR1YWwgc3BhY2VzLCBzcGFjZXMpIGF0IHRoZSBzdGFydCBvZiBhXG4gIC8vIGxpbmUuXG4gIGxpbmVQcmVmaXg6ICdsaW5lUHJlZml4JyxcblxuICAvLyBHZW5lcmljIHR5cGUgZm9yIHdoaXRlc3BhY2UgKHRhYnMsIHZpcnR1YWwgc3BhY2VzLCBzcGFjZXMpIGF0IHRoZSBlbmQgb2YgYVxuICAvLyBsaW5lLlxuICBsaW5lU3VmZml4OiAnbGluZVN1ZmZpeCcsXG5cbiAgLy8gV2hvbGUgQVRYIGhlYWRpbmc6XG4gIC8vXG4gIC8vIGBgYG1hcmtkb3duXG4gIC8vICNcbiAgLy8gIyMgQWxwaGFcbiAgLy8gIyMjIEJyYXZvICMjI1xuICAvLyBgYGBcbiAgLy9cbiAgLy8gSW5jbHVkZXMgYGF0eEhlYWRpbmdTZXF1ZW5jZWAsIGB3aGl0ZXNwYWNlYCwgYGF0eEhlYWRpbmdUZXh0YC5cbiAgYXR4SGVhZGluZzogJ2F0eEhlYWRpbmcnLFxuXG4gIC8vIFNlcXVlbmNlIG9mIG51bWJlciBzaWducyBpbiBhbiBBVFggaGVhZGluZyAoYCMjI2ApLlxuICBhdHhIZWFkaW5nU2VxdWVuY2U6ICdhdHhIZWFkaW5nU2VxdWVuY2UnLFxuXG4gIC8vIENvbnRlbnQgaW4gYW4gQVRYIGhlYWRpbmcgKGBhbHBoYWApLlxuICAvLyBJbmNsdWRlcyB0ZXh0LlxuICBhdHhIZWFkaW5nVGV4dDogJ2F0eEhlYWRpbmdUZXh0JyxcblxuICAvLyBXaG9sZSBhdXRvbGluayAoYDxodHRwczovL2V4YW1wbGUuY29tPmAgb3IgYDxhZG1pbkBleGFtcGxlLmNvbT5gKVxuICAvLyBJbmNsdWRlcyBgYXV0b2xpbmtNYXJrZXJgIGFuZCBgYXV0b2xpbmtQcm90b2NvbGAgb3IgYGF1dG9saW5rRW1haWxgLlxuICBhdXRvbGluazogJ2F1dG9saW5rJyxcblxuICAvLyBFbWFpbCBhdXRvbGluayB3L28gbWFya2VycyAoYGFkbWluQGV4YW1wbGUuY29tYClcbiAgYXV0b2xpbmtFbWFpbDogJ2F1dG9saW5rRW1haWwnLFxuXG4gIC8vIE1hcmtlciBhcm91bmQgYW4gYGF1dG9saW5rUHJvdG9jb2xgIG9yIGBhdXRvbGlua0VtYWlsYCAoYDxgIG9yIGA+YCkuXG4gIGF1dG9saW5rTWFya2VyOiAnYXV0b2xpbmtNYXJrZXInLFxuXG4gIC8vIFByb3RvY29sIGF1dG9saW5rIHcvbyBtYXJrZXJzIChgaHR0cHM6Ly9leGFtcGxlLmNvbWApXG4gIGF1dG9saW5rUHJvdG9jb2w6ICdhdXRvbGlua1Byb3RvY29sJyxcblxuICAvLyBBIHdob2xlIGNoYXJhY3RlciBlc2NhcGUgKGBcXC1gKS5cbiAgLy8gSW5jbHVkZXMgYGVzY2FwZU1hcmtlcmAgYW5kIGBjaGFyYWN0ZXJFc2NhcGVWYWx1ZWAuXG4gIGNoYXJhY3RlckVzY2FwZTogJ2NoYXJhY3RlckVzY2FwZScsXG5cbiAgLy8gVGhlIGVzY2FwZWQgY2hhcmFjdGVyIChgLWApLlxuICBjaGFyYWN0ZXJFc2NhcGVWYWx1ZTogJ2NoYXJhY3RlckVzY2FwZVZhbHVlJyxcblxuICAvLyBBIHdob2xlIGNoYXJhY3RlciByZWZlcmVuY2UgKGAmYW1wO2AsIGAmIzg4MDA7YCwgb3IgYCYjeDFEMzA2O2ApLlxuICAvLyBJbmNsdWRlcyBgY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyYCwgYW4gb3B0aW9uYWxcbiAgLy8gYGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWNgLCBpbiB3aGljaCBjYXNlIGFuIG9wdGlvbmFsXG4gIC8vIGBjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbGAsIGFuZCBhIGBjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZWAuXG4gIGNoYXJhY3RlclJlZmVyZW5jZTogJ2NoYXJhY3RlclJlZmVyZW5jZScsXG5cbiAgLy8gVGhlIHN0YXJ0IG9yIGVuZCBtYXJrZXIgKGAmYCBvciBgO2ApLlxuICBjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXI6ICdjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXInLFxuXG4gIC8vIE1hcmsgcmVmZXJlbmNlIGFzIG51bWVyaWMgKGAjYCkuXG4gIGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6ICdjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljJyxcblxuICAvLyBNYXJrIHJlZmVyZW5jZSBhcyBudW1lcmljIChgeGAgb3IgYFhgKS5cbiAgY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6ICdjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCcsXG5cbiAgLy8gVmFsdWUgb2YgY2hhcmFjdGVyIHJlZmVyZW5jZSB3L28gbWFya2VycyAoYGFtcGAsIGA4ODAwYCwgb3IgYDFEMzA2YCkuXG4gIGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOiAnY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUnLFxuXG4gIC8vIFdob2xlIGZlbmNlZCBjb2RlOlxuICAvL1xuICAvLyBgYGBgbWFya2Rvd25cbiAgLy8gYGBganNcbiAgLy8gYWxlcnQoMSlcbiAgLy8gYGBgXG4gIC8vIGBgYGBcbiAgY29kZUZlbmNlZDogJ2NvZGVGZW5jZWQnLFxuXG4gIC8vIEEgZmVuY2VkIGNvZGUgZmVuY2UsIGluY2x1ZGluZyB3aGl0ZXNwYWNlLCBzZXF1ZW5jZSwgaW5mbywgYW5kIG1ldGFcbiAgLy8gKGAgYGBganMgYCkuXG4gIGNvZGVGZW5jZWRGZW5jZTogJ2NvZGVGZW5jZWRGZW5jZScsXG5cbiAgLy8gU2VxdWVuY2Ugb2YgZ3JhdmUgYWNjZW50IG9yIHRpbGRlIGNoYXJhY3RlcnMgKGAgYGBgIGApIGluIGEgZmVuY2UuXG4gIGNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlOiAnY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UnLFxuXG4gIC8vIEluZm8gd29yZCAoYGpzYCkgaW4gYSBmZW5jZS5cbiAgLy8gSW5jbHVkZXMgc3RyaW5nLlxuICBjb2RlRmVuY2VkRmVuY2VJbmZvOiAnY29kZUZlbmNlZEZlbmNlSW5mbycsXG5cbiAgLy8gTWV0YSB3b3JkcyAoYGhpZ2hsaWdodD1cIjFcImApIGluIGEgZmVuY2UuXG4gIC8vIEluY2x1ZGVzIHN0cmluZy5cbiAgY29kZUZlbmNlZEZlbmNlTWV0YTogJ2NvZGVGZW5jZWRGZW5jZU1ldGEnLFxuXG4gIC8vIEEgbGluZSBvZiBjb2RlLlxuICBjb2RlRmxvd1ZhbHVlOiAnY29kZUZsb3dWYWx1ZScsXG5cbiAgLy8gV2hvbGUgaW5kZW50ZWQgY29kZTpcbiAgLy9cbiAgLy8gYGBgbWFya2Rvd25cbiAgLy8gICAgIGFsZXJ0KDEpXG4gIC8vIGBgYFxuICAvL1xuICAvLyBJbmNsdWRlcyBgbGluZUVuZGluZ2AsIGBsaW5lUHJlZml4YCwgYW5kIGBjb2RlRmxvd1ZhbHVlYC5cbiAgY29kZUluZGVudGVkOiAnY29kZUluZGVudGVkJyxcblxuICAvLyBBIHRleHQgY29kZSAoYGBgIGBhbHBoYWAgYGBgKS5cbiAgLy8gSW5jbHVkZXMgYGNvZGVUZXh0U2VxdWVuY2VgLCBgY29kZVRleHREYXRhYCwgYGxpbmVFbmRpbmdgLCBhbmQgY2FuIGluY2x1ZGVcbiAgLy8gYGNvZGVUZXh0UGFkZGluZ2AuXG4gIGNvZGVUZXh0OiAnY29kZVRleHQnLFxuXG4gIGNvZGVUZXh0RGF0YTogJ2NvZGVUZXh0RGF0YScsXG5cbiAgLy8gQSBzcGFjZSBvciBsaW5lIGVuZGluZyByaWdodCBhZnRlciBvciBiZWZvcmUgYSB0aWNrLlxuICBjb2RlVGV4dFBhZGRpbmc6ICdjb2RlVGV4dFBhZGRpbmcnLFxuXG4gIC8vIEEgdGV4dCBjb2RlIGZlbmNlIChgIGBgIGApLlxuICBjb2RlVGV4dFNlcXVlbmNlOiAnY29kZVRleHRTZXF1ZW5jZScsXG5cbiAgLy8gV2hvbGUgY29udGVudDpcbiAgLy9cbiAgLy8gYGBgbWFya2Rvd25cbiAgLy8gW2FdOiBiXG4gIC8vIGNcbiAgLy8gPVxuICAvLyBkXG4gIC8vIGBgYFxuICAvL1xuICAvLyBJbmNsdWRlcyBgcGFyYWdyYXBoYCBhbmQgYGRlZmluaXRpb25gLlxuICBjb250ZW50OiAnY29udGVudCcsXG4gIC8vIFdob2xlIGRlZmluaXRpb246XG4gIC8vXG4gIC8vIGBgYG1hcmtkb3duXG4gIC8vIFttaWNyb21hcmtdOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9tYXJrL21pY3JvbWFya1xuICAvLyBgYGBcbiAgLy9cbiAgLy8gSW5jbHVkZXMgYGRlZmluaXRpb25MYWJlbGAsIGBkZWZpbml0aW9uTWFya2VyYCwgYHdoaXRlc3BhY2VgLFxuICAvLyBgZGVmaW5pdGlvbkRlc3RpbmF0aW9uYCwgYW5kIG9wdGlvbmFsbHkgYGxpbmVFbmRpbmdgIGFuZCBgZGVmaW5pdGlvblRpdGxlYC5cbiAgZGVmaW5pdGlvbjogJ2RlZmluaXRpb24nLFxuXG4gIC8vIERlc3RpbmF0aW9uIG9mIGEgZGVmaW5pdGlvbiAoYGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb21hcmsvbWljcm9tYXJrYCBvclxuICAvLyBgPGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb21hcmsvbWljcm9tYXJrPmApLlxuICAvLyBJbmNsdWRlcyBgZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbGAgb3IgYGRlZmluaXRpb25EZXN0aW5hdGlvblJhd2AuXG4gIGRlZmluaXRpb25EZXN0aW5hdGlvbjogJ2RlZmluaXRpb25EZXN0aW5hdGlvbicsXG5cbiAgLy8gRW5jbG9zZWQgZGVzdGluYXRpb24gb2YgYSBkZWZpbml0aW9uXG4gIC8vIChgPGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb21hcmsvbWljcm9tYXJrPmApLlxuICAvLyBJbmNsdWRlcyBgZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlcmAgYW5kIG9wdGlvbmFsbHlcbiAgLy8gYGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZ2AuXG4gIGRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWw6ICdkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsJyxcblxuICAvLyBNYXJrZXJzIG9mIGFuIGVuY2xvc2VkIGRlZmluaXRpb24gZGVzdGluYXRpb24gKGA8YCBvciBgPmApLlxuICBkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsTWFya2VyOiAnZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlcicsXG5cbiAgLy8gVW5lbmNsb3NlZCBkZXN0aW5hdGlvbiBvZiBhIGRlZmluaXRpb25cbiAgLy8gKGBodHRwczovL2dpdGh1Yi5jb20vbWljcm9tYXJrL21pY3JvbWFya2ApLlxuICAvLyBJbmNsdWRlcyBgZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nYC5cbiAgZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3OiAnZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3JyxcblxuICAvLyBUZXh0IGluIGFuIGRlc3RpbmF0aW9uIChgaHR0cHM6Ly9naXRodWIuY29tL21pY3JvbWFyay9taWNyb21hcmtgKS5cbiAgLy8gSW5jbHVkZXMgc3RyaW5nLlxuICBkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6ICdkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmcnLFxuXG4gIC8vIExhYmVsIG9mIGEgZGVmaW5pdGlvbiAoYFttaWNyb21hcmtdYCkuXG4gIC8vIEluY2x1ZGVzIGBkZWZpbml0aW9uTGFiZWxNYXJrZXJgIGFuZCBgZGVmaW5pdGlvbkxhYmVsU3RyaW5nYC5cbiAgZGVmaW5pdGlvbkxhYmVsOiAnZGVmaW5pdGlvbkxhYmVsJyxcblxuICAvLyBNYXJrZXJzIG9mIGEgZGVmaW5pdGlvbiBsYWJlbCAoYFtgIG9yIGBdYCkuXG4gIGRlZmluaXRpb25MYWJlbE1hcmtlcjogJ2RlZmluaXRpb25MYWJlbE1hcmtlcicsXG5cbiAgLy8gVmFsdWUgb2YgYSBkZWZpbml0aW9uIGxhYmVsIChgbWljcm9tYXJrYCkuXG4gIC8vIEluY2x1ZGVzIHN0cmluZy5cbiAgZGVmaW5pdGlvbkxhYmVsU3RyaW5nOiAnZGVmaW5pdGlvbkxhYmVsU3RyaW5nJyxcblxuICAvLyBNYXJrZXIgYmV0d2VlbiBhIGxhYmVsIGFuZCBhIGRlc3RpbmF0aW9uIChgOmApLlxuICBkZWZpbml0aW9uTWFya2VyOiAnZGVmaW5pdGlvbk1hcmtlcicsXG5cbiAgLy8gVGl0bGUgb2YgYSBkZWZpbml0aW9uIChgXCJ4XCJgLCBgJ3knYCwgb3IgYCh6KWApLlxuICAvLyBJbmNsdWRlcyBgZGVmaW5pdGlvblRpdGxlTWFya2VyYCBhbmQgb3B0aW9uYWxseSBgZGVmaW5pdGlvblRpdGxlU3RyaW5nYC5cbiAgZGVmaW5pdGlvblRpdGxlOiAnZGVmaW5pdGlvblRpdGxlJyxcblxuICAvLyBNYXJrZXIgYXJvdW5kIGEgdGl0bGUgb2YgYSBkZWZpbml0aW9uIChgXCJgLCBgJ2AsIGAoYCwgb3IgYClgKS5cbiAgZGVmaW5pdGlvblRpdGxlTWFya2VyOiAnZGVmaW5pdGlvblRpdGxlTWFya2VyJyxcblxuICAvLyBEYXRhIHdpdGhvdXQgbWFya2VycyBpbiBhIHRpdGxlIChgemApLlxuICAvLyBJbmNsdWRlcyBzdHJpbmcuXG4gIGRlZmluaXRpb25UaXRsZVN0cmluZzogJ2RlZmluaXRpb25UaXRsZVN0cmluZycsXG5cbiAgLy8gRW1waGFzaXMgKGAqYWxwaGEqYCkuXG4gIC8vIEluY2x1ZGVzIGBlbXBoYXNpc1NlcXVlbmNlYCBhbmQgYGVtcGhhc2lzVGV4dGAuXG4gIGVtcGhhc2lzOiAnZW1waGFzaXMnLFxuXG4gIC8vIFNlcXVlbmNlIG9mIGVtcGhhc2lzIG1hcmtlcnMgKGAqYCBvciBgX2ApLlxuICBlbXBoYXNpc1NlcXVlbmNlOiAnZW1waGFzaXNTZXF1ZW5jZScsXG5cbiAgLy8gRW1waGFzaXMgdGV4dCAoYGFscGhhYCkuXG4gIC8vIEluY2x1ZGVzIHRleHQuXG4gIGVtcGhhc2lzVGV4dDogJ2VtcGhhc2lzVGV4dCcsXG5cbiAgLy8gVGhlIGNoYXJhY3RlciBlc2NhcGUgbWFya2VyIChgXFxgKS5cbiAgZXNjYXBlTWFya2VyOiAnZXNjYXBlTWFya2VyJyxcblxuICAvLyBBIGhhcmQgYnJlYWsgY3JlYXRlZCB3aXRoIGEgYmFja3NsYXNoIChgXFxcXG5gKS5cbiAgLy8gTm90ZTogZG9lcyBub3QgaW5jbHVkZSB0aGUgbGluZSBlbmRpbmcuXG4gIGhhcmRCcmVha0VzY2FwZTogJ2hhcmRCcmVha0VzY2FwZScsXG5cbiAgLy8gQSBoYXJkIGJyZWFrIGNyZWF0ZWQgd2l0aCB0cmFpbGluZyBzcGFjZXMgKGAgIFxcbmApLlxuICAvLyBEb2VzIG5vdCBpbmNsdWRlIHRoZSBsaW5lIGVuZGluZy5cbiAgaGFyZEJyZWFrVHJhaWxpbmc6ICdoYXJkQnJlYWtUcmFpbGluZycsXG5cbiAgLy8gRmxvdyBIVE1MOlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyA8ZGl2XG4gIC8vIGBgYFxuICAvL1xuICAvLyBJbmxjdWRlcyBgbGluZUVuZGluZ2AsIGBodG1sRmxvd0RhdGFgLlxuICBodG1sRmxvdzogJ2h0bWxGbG93JyxcblxuICBodG1sRmxvd0RhdGE6ICdodG1sRmxvd0RhdGEnLFxuXG4gIC8vIEhUTUwgaW4gdGV4dCAodGhlIHRhZyBpbiBgYSA8aT4gYmApLlxuICAvLyBJbmNsdWRlcyBgbGluZUVuZGluZ2AsIGBodG1sVGV4dERhdGFgLlxuICBodG1sVGV4dDogJ2h0bWxUZXh0JyxcblxuICBodG1sVGV4dERhdGE6ICdodG1sVGV4dERhdGEnLFxuXG4gIC8vIFdob2xlIGltYWdlIChgIVthbHBoYV0oYnJhdm8pYCwgYCFbYWxwaGFdW2JyYXZvXWAsIGAhW2FscGhhXVtdYCwgb3JcbiAgLy8gYCFbYWxwaGFdYCkuXG4gIC8vIEluY2x1ZGVzIGBsYWJlbGAgYW5kIGFuIG9wdGlvbmFsIGByZXNvdXJjZWAgb3IgYHJlZmVyZW5jZWAuXG4gIGltYWdlOiAnaW1hZ2UnLFxuXG4gIC8vIFdob2xlIGxpbmsgbGFiZWwgKGBbKmFscGhhKl1gKS5cbiAgLy8gSW5jbHVkZXMgYGxhYmVsTGlua2Agb3IgYGxhYmVsSW1hZ2VgLCBgbGFiZWxUZXh0YCwgYW5kIGBsYWJlbEVuZGAuXG4gIGxhYmVsOiAnbGFiZWwnLFxuXG4gIC8vIFRleHQgaW4gYW4gbGFiZWwgKGAqYWxwaGEqYCkuXG4gIC8vIEluY2x1ZGVzIHRleHQuXG4gIGxhYmVsVGV4dDogJ2xhYmVsVGV4dCcsXG5cbiAgLy8gU3RhcnQgYSBsaW5rIGxhYmVsIChgW2ApLlxuICAvLyBJbmNsdWRlcyBhIGBsYWJlbE1hcmtlcmAuXG4gIGxhYmVsTGluazogJ2xhYmVsTGluaycsXG5cbiAgLy8gU3RhcnQgYW4gaW1hZ2UgbGFiZWwgKGAhW2ApLlxuICAvLyBJbmNsdWRlcyBgbGFiZWxJbWFnZU1hcmtlcmAgYW5kIGBsYWJlbE1hcmtlcmAuXG4gIGxhYmVsSW1hZ2U6ICdsYWJlbEltYWdlJyxcblxuICAvLyBNYXJrZXIgb2YgYSBsYWJlbCAoYFtgIG9yIGBdYCkuXG4gIGxhYmVsTWFya2VyOiAnbGFiZWxNYXJrZXInLFxuXG4gIC8vIE1hcmtlciB0byBzdGFydCBhbiBpbWFnZSAoYCFgKS5cbiAgbGFiZWxJbWFnZU1hcmtlcjogJ2xhYmVsSW1hZ2VNYXJrZXInLFxuXG4gIC8vIEVuZCBhIGxhYmVsIChgXWApLlxuICAvLyBJbmNsdWRlcyBgbGFiZWxNYXJrZXJgLlxuICBsYWJlbEVuZDogJ2xhYmVsRW5kJyxcblxuICAvLyBXaG9sZSBsaW5rIChgW2FscGhhXShicmF2bylgLCBgW2FscGhhXVticmF2b11gLCBgW2FscGhhXVtdYCwgb3IgYFthbHBoYV1gKS5cbiAgLy8gSW5jbHVkZXMgYGxhYmVsYCBhbmQgYW4gb3B0aW9uYWwgYHJlc291cmNlYCBvciBgcmVmZXJlbmNlYC5cbiAgbGluazogJ2xpbmsnLFxuXG4gIC8vIFdob2xlIHBhcmFncmFwaDpcbiAgLy9cbiAgLy8gYGBgbWFya2Rvd25cbiAgLy8gYWxwaGFcbiAgLy8gYnJhdm8uXG4gIC8vIGBgYFxuICAvL1xuICAvLyBJbmNsdWRlcyB0ZXh0LlxuICBwYXJhZ3JhcGg6ICdwYXJhZ3JhcGgnLFxuXG4gIC8vIEEgcmVmZXJlbmNlIChgW2FscGhhXWAgb3IgYFtdYCkuXG4gIC8vIEluY2x1ZGVzIGByZWZlcmVuY2VNYXJrZXJgIGFuZCBhbiBvcHRpb25hbCBgcmVmZXJlbmNlU3RyaW5nYC5cbiAgcmVmZXJlbmNlOiAncmVmZXJlbmNlJyxcblxuICAvLyBBIHJlZmVyZW5jZSBtYXJrZXIgKGBbYCBvciBgXWApLlxuICByZWZlcmVuY2VNYXJrZXI6ICdyZWZlcmVuY2VNYXJrZXInLFxuXG4gIC8vIFJlZmVyZW5jZSB0ZXh0IChgYWxwaGFgKS5cbiAgLy8gSW5jbHVkZXMgc3RyaW5nLlxuICByZWZlcmVuY2VTdHJpbmc6ICdyZWZlcmVuY2VTdHJpbmcnLFxuXG4gIC8vIEEgcmVzb3VyY2UgKGAoaHR0cHM6Ly9leGFtcGxlLmNvbSBcImFscGhhXCIpYCkuXG4gIC8vIEluY2x1ZGVzIGByZXNvdXJjZU1hcmtlcmAsIGFuIG9wdGlvbmFsIGByZXNvdXJjZURlc3RpbmF0aW9uYCB3aXRoIGFuIG9wdGlvbmFsXG4gIC8vIGB3aGl0ZXNwYWNlYCBhbmQgYHJlc291cmNlVGl0bGVgLlxuICByZXNvdXJjZTogJ3Jlc291cmNlJyxcblxuICAvLyBBIHJlc291cmNlIGRlc3RpbmF0aW9uIChgaHR0cHM6Ly9leGFtcGxlLmNvbWApLlxuICAvLyBJbmNsdWRlcyBgcmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWxgIG9yIGByZXNvdXJjZURlc3RpbmF0aW9uUmF3YC5cbiAgcmVzb3VyY2VEZXN0aW5hdGlvbjogJ3Jlc291cmNlRGVzdGluYXRpb24nLFxuXG4gIC8vIEEgbGl0ZXJhbCByZXNvdXJjZSBkZXN0aW5hdGlvbiAoYDxodHRwczovL2V4YW1wbGUuY29tPmApLlxuICAvLyBJbmNsdWRlcyBgcmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXJgIGFuZCBvcHRpb25hbGx5XG4gIC8vIGByZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nYC5cbiAgcmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWw6ICdyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCcsXG5cbiAgLy8gQSByZXNvdXJjZSBkZXN0aW5hdGlvbiBtYXJrZXIgKGA8YCBvciBgPmApLlxuICByZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlcjogJ3Jlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyJyxcblxuICAvLyBBIHJhdyByZXNvdXJjZSBkZXN0aW5hdGlvbiAoYGh0dHBzOi8vZXhhbXBsZS5jb21gKS5cbiAgLy8gSW5jbHVkZXMgYHJlc291cmNlRGVzdGluYXRpb25TdHJpbmdgLlxuICByZXNvdXJjZURlc3RpbmF0aW9uUmF3OiAncmVzb3VyY2VEZXN0aW5hdGlvblJhdycsXG5cbiAgLy8gUmVzb3VyY2UgZGVzdGluYXRpb24gdGV4dCAoYGh0dHBzOi8vZXhhbXBsZS5jb21gKS5cbiAgLy8gSW5jbHVkZXMgc3RyaW5nLlxuICByZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOiAncmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZycsXG5cbiAgLy8gQSByZXNvdXJjZSBtYXJrZXIgKGAoYCBvciBgKWApLlxuICByZXNvdXJjZU1hcmtlcjogJ3Jlc291cmNlTWFya2VyJyxcblxuICAvLyBBIHJlc291cmNlIHRpdGxlIChgXCJhbHBoYVwiYCwgYCdhbHBoYSdgLCBvciBgKGFscGhhKWApLlxuICAvLyBJbmNsdWRlcyBgcmVzb3VyY2VUaXRsZU1hcmtlcmAgYW5kIG9wdGlvbmFsbHkgYHJlc291cmNlVGl0bGVTdHJpbmdgLlxuICByZXNvdXJjZVRpdGxlOiAncmVzb3VyY2VUaXRsZScsXG5cbiAgLy8gQSByZXNvdXJjZSB0aXRsZSBtYXJrZXIgKGBcImAsIGAnYCwgYChgLCBvciBgKWApLlxuICByZXNvdXJjZVRpdGxlTWFya2VyOiAncmVzb3VyY2VUaXRsZU1hcmtlcicsXG5cbiAgLy8gUmVzb3VyY2UgZGVzdGluYXRpb24gdGl0bGUgKGBhbHBoYWApLlxuICAvLyBJbmNsdWRlcyBzdHJpbmcuXG4gIHJlc291cmNlVGl0bGVTdHJpbmc6ICdyZXNvdXJjZVRpdGxlU3RyaW5nJyxcblxuICAvLyBXaG9sZSBzZXRleHQgaGVhZGluZzpcbiAgLy9cbiAgLy8gYGBgbWFya2Rvd25cbiAgLy8gYWxwaGFcbiAgLy8gYnJhdm9cbiAgLy8gPT09PT1cbiAgLy8gYGBgXG4gIC8vXG4gIC8vIEluY2x1ZGVzIGBzZXRleHRIZWFkaW5nVGV4dGAsIGBsaW5lRW5kaW5nYCwgYGxpbmVQcmVmaXhgLCBhbmRcbiAgLy8gYHNldGV4dEhlYWRpbmdMaW5lYC5cbiAgc2V0ZXh0SGVhZGluZzogJ3NldGV4dEhlYWRpbmcnLFxuXG4gIC8vIENvbnRlbnQgaW4gYSBzZXRleHQgaGVhZGluZyAoYGFscGhhXFxuYnJhdm9gKS5cbiAgLy8gSW5jbHVkZXMgdGV4dC5cbiAgc2V0ZXh0SGVhZGluZ1RleHQ6ICdzZXRleHRIZWFkaW5nVGV4dCcsXG5cbiAgLy8gVW5kZXJsaW5lIGluIGEgc2V0ZXh0IGhlYWRpbmcsIGluY2x1ZGluZyB3aGl0ZXNwYWNlIHN1ZmZpeCAoYD09YCkuXG4gIC8vIEluY2x1ZGVzIGBzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlYC5cbiAgc2V0ZXh0SGVhZGluZ0xpbmU6ICdzZXRleHRIZWFkaW5nTGluZScsXG5cbiAgLy8gU2VxdWVuY2Ugb2YgZXF1YWxzIG9yIGRhc2ggY2hhcmFjdGVycyBpbiB1bmRlcmxpbmUgaW4gYSBzZXRleHQgaGVhZGluZyAoYC1gKS5cbiAgc2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZTogJ3NldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UnLFxuXG4gIC8vIFN0cm9uZyAoYCoqYWxwaGEqKmApLlxuICAvLyBJbmNsdWRlcyBgc3Ryb25nU2VxdWVuY2VgIGFuZCBgc3Ryb25nVGV4dGAuXG4gIHN0cm9uZzogJ3N0cm9uZycsXG5cbiAgLy8gU2VxdWVuY2Ugb2Ygc3Ryb25nIG1hcmtlcnMgKGAqKmAgb3IgYF9fYCkuXG4gIHN0cm9uZ1NlcXVlbmNlOiAnc3Ryb25nU2VxdWVuY2UnLFxuXG4gIC8vIFN0cm9uZyB0ZXh0IChgYWxwaGFgKS5cbiAgLy8gSW5jbHVkZXMgdGV4dC5cbiAgc3Ryb25nVGV4dDogJ3N0cm9uZ1RleHQnLFxuXG4gIC8vIFdob2xlIHRoZW1hdGljIGJyZWFrOlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyAqICogKlxuICAvLyBgYGBcbiAgLy9cbiAgLy8gSW5jbHVkZXMgYHRoZW1hdGljQnJlYWtTZXF1ZW5jZWAgYW5kIGB3aGl0ZXNwYWNlYC5cbiAgdGhlbWF0aWNCcmVhazogJ3RoZW1hdGljQnJlYWsnLFxuXG4gIC8vIEEgc2VxdWVuY2Ugb2Ygb25lIG9yIG1vcmUgdGhlbWF0aWMgYnJlYWsgbWFya2VycyAoYCoqKmApLlxuICB0aGVtYXRpY0JyZWFrU2VxdWVuY2U6ICd0aGVtYXRpY0JyZWFrU2VxdWVuY2UnLFxuXG4gIC8vIFdob2xlIGJsb2NrIHF1b3RlOlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyA+IGFcbiAgLy8gPlxuICAvLyA+IGJcbiAgLy8gYGBgXG4gIC8vXG4gIC8vIEluY2x1ZGVzIGBibG9ja1F1b3RlUHJlZml4YCBhbmQgZmxvdy5cbiAgYmxvY2tRdW90ZTogJ2Jsb2NrUXVvdGUnLFxuICAvLyBUaGUgYD5gIG9yIGA+IGAgb2YgYSBibG9jayBxdW90ZS5cbiAgYmxvY2tRdW90ZVByZWZpeDogJ2Jsb2NrUXVvdGVQcmVmaXgnLFxuICAvLyBUaGUgYD5gIG9mIGEgYmxvY2sgcXVvdGUgcHJlZml4LlxuICBibG9ja1F1b3RlTWFya2VyOiAnYmxvY2tRdW90ZU1hcmtlcicsXG4gIC8vIFRoZSBvcHRpb25hbCBgIGAgb2YgYSBibG9jayBxdW90ZSBwcmVmaXguXG4gIGJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlOiAnYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UnLFxuXG4gIC8vIFdob2xlIHVub3JkZXJlZCBsaXN0OlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyAtIGFcbiAgLy8gICBiXG4gIC8vIGBgYFxuICAvL1xuICAvLyBJbmNsdWRlcyBgbGlzdEl0ZW1QcmVmaXhgLCBmbG93LCBhbmQgb3B0aW9uYWxseSAgYGxpc3RJdGVtSW5kZW50YCBvbiBmdXJ0aGVyXG4gIC8vIGxpbmVzLlxuICBsaXN0T3JkZXJlZDogJ2xpc3RPcmRlcmVkJyxcblxuICAvLyBXaG9sZSBvcmRlcmVkIGxpc3Q6XG4gIC8vXG4gIC8vIGBgYG1hcmtkb3duXG4gIC8vIDEuIGFcbiAgLy8gICAgYlxuICAvLyBgYGBcbiAgLy9cbiAgLy8gSW5jbHVkZXMgYGxpc3RJdGVtUHJlZml4YCwgZmxvdywgYW5kIG9wdGlvbmFsbHkgIGBsaXN0SXRlbUluZGVudGAgb24gZnVydGhlclxuICAvLyBsaW5lcy5cbiAgbGlzdFVub3JkZXJlZDogJ2xpc3RVbm9yZGVyZWQnLFxuXG4gIC8vIFRoZSBpbmRlbnQgb2YgZnVydGhlciBsaXN0IGl0ZW0gbGluZXMuXG4gIGxpc3RJdGVtSW5kZW50OiAnbGlzdEl0ZW1JbmRlbnQnLFxuXG4gIC8vIEEgbWFya2VyLCBhcyBpbiwgYCpgLCBgK2AsIGAtYCwgYC5gLCBvciBgKWAuXG4gIGxpc3RJdGVtTWFya2VyOiAnbGlzdEl0ZW1NYXJrZXInLFxuXG4gIC8vIFRoZSB0aGluZyB0aGF0IHN0YXJ0cyBhIGxpc3QgaXRlbSwgc3VjaCBhcyBgMS4gYC5cbiAgLy8gSW5jbHVkZXMgYGxpc3RJdGVtVmFsdWVgIGlmIG9yZGVyZWQsIGBsaXN0SXRlbU1hcmtlcmAsIGFuZFxuICAvLyBgbGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlYCAodW5sZXNzIGZvbGxvd2VkIGJ5IGEgbGluZSBlbmRpbmcpLlxuICBsaXN0SXRlbVByZWZpeDogJ2xpc3RJdGVtUHJlZml4JyxcblxuICAvLyBUaGUgd2hpdGVzcGFjZSBhZnRlciBhIG1hcmtlci5cbiAgbGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlOiAnbGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlJyxcblxuICAvLyBUaGUgbnVtZXJpY2FsIHZhbHVlIG9mIGFuIG9yZGVyZWQgaXRlbS5cbiAgbGlzdEl0ZW1WYWx1ZTogJ2xpc3RJdGVtVmFsdWUnLFxuXG4gIC8vIEludGVybmFsIHR5cGVzIHVzZWQgZm9yIHN1YnRva2VuaXplcnMsIGNvbXBpbGVkIGF3YXlcbiAgY2h1bmtEb2N1bWVudDogJ2NodW5rRG9jdW1lbnQnLFxuICBjaHVua0NvbnRlbnQ6ICdjaHVua0NvbnRlbnQnLFxuICBjaHVua0Zsb3c6ICdjaHVua0Zsb3cnLFxuICBjaHVua1RleHQ6ICdjaHVua1RleHQnLFxuICBjaHVua1N0cmluZzogJ2NodW5rU3RyaW5nJ1xufSlcbiJdLCJuYW1lcyI6WyJ0eXBlcyIsImRhdGEiLCJ3aGl0ZXNwYWNlIiwibGluZUVuZGluZyIsImxpbmVFbmRpbmdCbGFuayIsImxpbmVQcmVmaXgiLCJsaW5lU3VmZml4IiwiYXR4SGVhZGluZyIsImF0eEhlYWRpbmdTZXF1ZW5jZSIsImF0eEhlYWRpbmdUZXh0IiwiYXV0b2xpbmsiLCJhdXRvbGlua0VtYWlsIiwiYXV0b2xpbmtNYXJrZXIiLCJhdXRvbGlua1Byb3RvY29sIiwiY2hhcmFjdGVyRXNjYXBlIiwiY2hhcmFjdGVyRXNjYXBlVmFsdWUiLCJjaGFyYWN0ZXJSZWZlcmVuY2UiLCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiLCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiwiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiLCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIsImNvZGVGZW5jZWQiLCJjb2RlRmVuY2VkRmVuY2UiLCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIsImNvZGVGZW5jZWRGZW5jZUluZm8iLCJjb2RlRmVuY2VkRmVuY2VNZXRhIiwiY29kZUZsb3dWYWx1ZSIsImNvZGVJbmRlbnRlZCIsImNvZGVUZXh0IiwiY29kZVRleHREYXRhIiwiY29kZVRleHRQYWRkaW5nIiwiY29kZVRleHRTZXF1ZW5jZSIsImNvbnRlbnQiLCJkZWZpbml0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJkZWZpbml0aW9uRGVzdGluYXRpb25SYXciLCJkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmciLCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciLCJkZWZpbml0aW9uTWFya2VyIiwiZGVmaW5pdGlvblRpdGxlIiwiZGVmaW5pdGlvblRpdGxlTWFya2VyIiwiZGVmaW5pdGlvblRpdGxlU3RyaW5nIiwiZW1waGFzaXMiLCJlbXBoYXNpc1NlcXVlbmNlIiwiZW1waGFzaXNUZXh0IiwiZXNjYXBlTWFya2VyIiwiaGFyZEJyZWFrRXNjYXBlIiwiaGFyZEJyZWFrVHJhaWxpbmciLCJodG1sRmxvdyIsImh0bWxGbG93RGF0YSIsImh0bWxUZXh0IiwiaHRtbFRleHREYXRhIiwiaW1hZ2UiLCJsYWJlbCIsImxhYmVsVGV4dCIsImxhYmVsTGluayIsImxhYmVsSW1hZ2UiLCJsYWJlbE1hcmtlciIsImxhYmVsSW1hZ2VNYXJrZXIiLCJsYWJlbEVuZCIsImxpbmsiLCJwYXJhZ3JhcGgiLCJyZWZlcmVuY2UiLCJyZWZlcmVuY2VNYXJrZXIiLCJyZWZlcmVuY2VTdHJpbmciLCJyZXNvdXJjZSIsInJlc291cmNlRGVzdGluYXRpb24iLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwicmVzb3VyY2VEZXN0aW5hdGlvblJhdyIsInJlc291cmNlRGVzdGluYXRpb25TdHJpbmciLCJyZXNvdXJjZU1hcmtlciIsInJlc291cmNlVGl0bGUiLCJyZXNvdXJjZVRpdGxlTWFya2VyIiwicmVzb3VyY2VUaXRsZVN0cmluZyIsInNldGV4dEhlYWRpbmciLCJzZXRleHRIZWFkaW5nVGV4dCIsInNldGV4dEhlYWRpbmdMaW5lIiwic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIsInN0cm9uZyIsInN0cm9uZ1NlcXVlbmNlIiwic3Ryb25nVGV4dCIsInRoZW1hdGljQnJlYWsiLCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiLCJibG9ja1F1b3RlIiwiYmxvY2tRdW90ZVByZWZpeCIsImJsb2NrUXVvdGVNYXJrZXIiLCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIsImxpc3RPcmRlcmVkIiwibGlzdFVub3JkZXJlZCIsImxpc3RJdGVtSW5kZW50IiwibGlzdEl0ZW1NYXJrZXIiLCJsaXN0SXRlbVByZWZpeCIsImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsImxpc3RJdGVtVmFsdWUiLCJjaHVua0RvY3VtZW50IiwiY2h1bmtDb250ZW50IiwiY2h1bmtGbG93IiwiY2h1bmtUZXh0IiwiY2h1bmtTdHJpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark-util-symbol/lib/values.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/micromark-util-symbol/lib/values.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ values: () => (/* binding */ values)\n/* harmony export */ });\n/**\n * This module is compiled away!\n *\n * While micromark works based on character codes, this module includes the\n * string versions of ’em.\n * The C0 block, except for LF, CR, HT, and w/ the replacement character added,\n * are available here.\n */ const values = /** @type {const} */ {\n ht: \"\t\",\n lf: \"\\n\",\n cr: \"\\r\",\n space: \" \",\n exclamationMark: \"!\",\n quotationMark: '\"',\n numberSign: \"#\",\n dollarSign: \"$\",\n percentSign: \"%\",\n ampersand: \"&\",\n apostrophe: \"'\",\n leftParenthesis: \"(\",\n rightParenthesis: \")\",\n asterisk: \"*\",\n plusSign: \"+\",\n comma: \",\",\n dash: \"-\",\n dot: \".\",\n slash: \"/\",\n digit0: \"0\",\n digit1: \"1\",\n digit2: \"2\",\n digit3: \"3\",\n digit4: \"4\",\n digit5: \"5\",\n digit6: \"6\",\n digit7: \"7\",\n digit8: \"8\",\n digit9: \"9\",\n colon: \":\",\n semicolon: \";\",\n lessThan: \"<\",\n equalsTo: \"=\",\n greaterThan: \">\",\n questionMark: \"?\",\n atSign: \"@\",\n uppercaseA: \"A\",\n uppercaseB: \"B\",\n uppercaseC: \"C\",\n uppercaseD: \"D\",\n uppercaseE: \"E\",\n uppercaseF: \"F\",\n uppercaseG: \"G\",\n uppercaseH: \"H\",\n uppercaseI: \"I\",\n uppercaseJ: \"J\",\n uppercaseK: \"K\",\n uppercaseL: \"L\",\n uppercaseM: \"M\",\n uppercaseN: \"N\",\n uppercaseO: \"O\",\n uppercaseP: \"P\",\n uppercaseQ: \"Q\",\n uppercaseR: \"R\",\n uppercaseS: \"S\",\n uppercaseT: \"T\",\n uppercaseU: \"U\",\n uppercaseV: \"V\",\n uppercaseW: \"W\",\n uppercaseX: \"X\",\n uppercaseY: \"Y\",\n uppercaseZ: \"Z\",\n leftSquareBracket: \"[\",\n backslash: \"\\\\\",\n rightSquareBracket: \"]\",\n caret: \"^\",\n underscore: \"_\",\n graveAccent: \"`\",\n lowercaseA: \"a\",\n lowercaseB: \"b\",\n lowercaseC: \"c\",\n lowercaseD: \"d\",\n lowercaseE: \"e\",\n lowercaseF: \"f\",\n lowercaseG: \"g\",\n lowercaseH: \"h\",\n lowercaseI: \"i\",\n lowercaseJ: \"j\",\n lowercaseK: \"k\",\n lowercaseL: \"l\",\n lowercaseM: \"m\",\n lowercaseN: \"n\",\n lowercaseO: \"o\",\n lowercaseP: \"p\",\n lowercaseQ: \"q\",\n lowercaseR: \"r\",\n lowercaseS: \"s\",\n lowercaseT: \"t\",\n lowercaseU: \"u\",\n lowercaseV: \"v\",\n lowercaseW: \"w\",\n lowercaseX: \"x\",\n lowercaseY: \"y\",\n lowercaseZ: \"z\",\n leftCurlyBrace: \"{\",\n verticalBar: \"|\",\n rightCurlyBrace: \"}\",\n tilde: \"~\",\n replacementCharacter: \"�\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLXN5bWJvbC9saWIvdmFsdWVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBQ00sTUFBTUEsU0FBUyxrQkFBa0IsR0FBSTtJQUMxQ0MsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsT0FBTztJQUNQQyxpQkFBaUI7SUFDakJDLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLGFBQWE7SUFDYkMsV0FBVztJQUNYQyxZQUFZO0lBQ1pDLGlCQUFpQjtJQUNqQkMsa0JBQWtCO0lBQ2xCQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsV0FBVztJQUNYQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsYUFBYTtJQUNiQyxjQUFjO0lBQ2RDLFFBQVE7SUFDUkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLG1CQUFtQjtJQUNuQkMsV0FBVztJQUNYQyxvQkFBb0I7SUFDcEJDLE9BQU87SUFDUEMsWUFBWTtJQUNaQyxhQUFhO0lBQ2JDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxnQkFBZ0I7SUFDaEJDLGFBQWE7SUFDYkMsaUJBQWlCO0lBQ2pCQyxPQUFPO0lBQ1BDLHNCQUFzQjtBQUN4QixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtc3ltYm9sL2xpYi92YWx1ZXMuanM/ZThhOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbW9kdWxlIGlzIGNvbXBpbGVkIGF3YXkhXG4gKlxuICogV2hpbGUgbWljcm9tYXJrIHdvcmtzIGJhc2VkIG9uIGNoYXJhY3RlciBjb2RlcywgdGhpcyBtb2R1bGUgaW5jbHVkZXMgdGhlXG4gKiBzdHJpbmcgdmVyc2lvbnMgb2Yg4oCZZW0uXG4gKiBUaGUgQzAgYmxvY2ssIGV4Y2VwdCBmb3IgTEYsIENSLCBIVCwgYW5kIHcvIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIgYWRkZWQsXG4gKiBhcmUgYXZhaWxhYmxlIGhlcmUuXG4gKi9cbmV4cG9ydCBjb25zdCB2YWx1ZXMgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoe1xuICBodDogJ1xcdCcsXG4gIGxmOiAnXFxuJyxcbiAgY3I6ICdcXHInLFxuICBzcGFjZTogJyAnLFxuICBleGNsYW1hdGlvbk1hcms6ICchJyxcbiAgcXVvdGF0aW9uTWFyazogJ1wiJyxcbiAgbnVtYmVyU2lnbjogJyMnLFxuICBkb2xsYXJTaWduOiAnJCcsXG4gIHBlcmNlbnRTaWduOiAnJScsXG4gIGFtcGVyc2FuZDogJyYnLFxuICBhcG9zdHJvcGhlOiBcIidcIixcbiAgbGVmdFBhcmVudGhlc2lzOiAnKCcsXG4gIHJpZ2h0UGFyZW50aGVzaXM6ICcpJyxcbiAgYXN0ZXJpc2s6ICcqJyxcbiAgcGx1c1NpZ246ICcrJyxcbiAgY29tbWE6ICcsJyxcbiAgZGFzaDogJy0nLFxuICBkb3Q6ICcuJyxcbiAgc2xhc2g6ICcvJyxcbiAgZGlnaXQwOiAnMCcsXG4gIGRpZ2l0MTogJzEnLFxuICBkaWdpdDI6ICcyJyxcbiAgZGlnaXQzOiAnMycsXG4gIGRpZ2l0NDogJzQnLFxuICBkaWdpdDU6ICc1JyxcbiAgZGlnaXQ2OiAnNicsXG4gIGRpZ2l0NzogJzcnLFxuICBkaWdpdDg6ICc4JyxcbiAgZGlnaXQ5OiAnOScsXG4gIGNvbG9uOiAnOicsXG4gIHNlbWljb2xvbjogJzsnLFxuICBsZXNzVGhhbjogJzwnLFxuICBlcXVhbHNUbzogJz0nLFxuICBncmVhdGVyVGhhbjogJz4nLFxuICBxdWVzdGlvbk1hcms6ICc/JyxcbiAgYXRTaWduOiAnQCcsXG4gIHVwcGVyY2FzZUE6ICdBJyxcbiAgdXBwZXJjYXNlQjogJ0InLFxuICB1cHBlcmNhc2VDOiAnQycsXG4gIHVwcGVyY2FzZUQ6ICdEJyxcbiAgdXBwZXJjYXNlRTogJ0UnLFxuICB1cHBlcmNhc2VGOiAnRicsXG4gIHVwcGVyY2FzZUc6ICdHJyxcbiAgdXBwZXJjYXNlSDogJ0gnLFxuICB1cHBlcmNhc2VJOiAnSScsXG4gIHVwcGVyY2FzZUo6ICdKJyxcbiAgdXBwZXJjYXNlSzogJ0snLFxuICB1cHBlcmNhc2VMOiAnTCcsXG4gIHVwcGVyY2FzZU06ICdNJyxcbiAgdXBwZXJjYXNlTjogJ04nLFxuICB1cHBlcmNhc2VPOiAnTycsXG4gIHVwcGVyY2FzZVA6ICdQJyxcbiAgdXBwZXJjYXNlUTogJ1EnLFxuICB1cHBlcmNhc2VSOiAnUicsXG4gIHVwcGVyY2FzZVM6ICdTJyxcbiAgdXBwZXJjYXNlVDogJ1QnLFxuICB1cHBlcmNhc2VVOiAnVScsXG4gIHVwcGVyY2FzZVY6ICdWJyxcbiAgdXBwZXJjYXNlVzogJ1cnLFxuICB1cHBlcmNhc2VYOiAnWCcsXG4gIHVwcGVyY2FzZVk6ICdZJyxcbiAgdXBwZXJjYXNlWjogJ1onLFxuICBsZWZ0U3F1YXJlQnJhY2tldDogJ1snLFxuICBiYWNrc2xhc2g6ICdcXFxcJyxcbiAgcmlnaHRTcXVhcmVCcmFja2V0OiAnXScsXG4gIGNhcmV0OiAnXicsXG4gIHVuZGVyc2NvcmU6ICdfJyxcbiAgZ3JhdmVBY2NlbnQ6ICdgJyxcbiAgbG93ZXJjYXNlQTogJ2EnLFxuICBsb3dlcmNhc2VCOiAnYicsXG4gIGxvd2VyY2FzZUM6ICdjJyxcbiAgbG93ZXJjYXNlRDogJ2QnLFxuICBsb3dlcmNhc2VFOiAnZScsXG4gIGxvd2VyY2FzZUY6ICdmJyxcbiAgbG93ZXJjYXNlRzogJ2cnLFxuICBsb3dlcmNhc2VIOiAnaCcsXG4gIGxvd2VyY2FzZUk6ICdpJyxcbiAgbG93ZXJjYXNlSjogJ2onLFxuICBsb3dlcmNhc2VLOiAnaycsXG4gIGxvd2VyY2FzZUw6ICdsJyxcbiAgbG93ZXJjYXNlTTogJ20nLFxuICBsb3dlcmNhc2VOOiAnbicsXG4gIGxvd2VyY2FzZU86ICdvJyxcbiAgbG93ZXJjYXNlUDogJ3AnLFxuICBsb3dlcmNhc2VROiAncScsXG4gIGxvd2VyY2FzZVI6ICdyJyxcbiAgbG93ZXJjYXNlUzogJ3MnLFxuICBsb3dlcmNhc2VUOiAndCcsXG4gIGxvd2VyY2FzZVU6ICd1JyxcbiAgbG93ZXJjYXNlVjogJ3YnLFxuICBsb3dlcmNhc2VXOiAndycsXG4gIGxvd2VyY2FzZVg6ICd4JyxcbiAgbG93ZXJjYXNlWTogJ3knLFxuICBsb3dlcmNhc2VaOiAneicsXG4gIGxlZnRDdXJseUJyYWNlOiAneycsXG4gIHZlcnRpY2FsQmFyOiAnfCcsXG4gIHJpZ2h0Q3VybHlCcmFjZTogJ30nLFxuICB0aWxkZTogJ34nLFxuICByZXBsYWNlbWVudENoYXJhY3RlcjogJ++/vSdcbn0pXG4iXSwibmFtZXMiOlsidmFsdWVzIiwiaHQiLCJsZiIsImNyIiwic3BhY2UiLCJleGNsYW1hdGlvbk1hcmsiLCJxdW90YXRpb25NYXJrIiwibnVtYmVyU2lnbiIsImRvbGxhclNpZ24iLCJwZXJjZW50U2lnbiIsImFtcGVyc2FuZCIsImFwb3N0cm9waGUiLCJsZWZ0UGFyZW50aGVzaXMiLCJyaWdodFBhcmVudGhlc2lzIiwiYXN0ZXJpc2siLCJwbHVzU2lnbiIsImNvbW1hIiwiZGFzaCIsImRvdCIsInNsYXNoIiwiZGlnaXQwIiwiZGlnaXQxIiwiZGlnaXQyIiwiZGlnaXQzIiwiZGlnaXQ0IiwiZGlnaXQ1IiwiZGlnaXQ2IiwiZGlnaXQ3IiwiZGlnaXQ4IiwiZGlnaXQ5IiwiY29sb24iLCJzZW1pY29sb24iLCJsZXNzVGhhbiIsImVxdWFsc1RvIiwiZ3JlYXRlclRoYW4iLCJxdWVzdGlvbk1hcmsiLCJhdFNpZ24iLCJ1cHBlcmNhc2VBIiwidXBwZXJjYXNlQiIsInVwcGVyY2FzZUMiLCJ1cHBlcmNhc2VEIiwidXBwZXJjYXNlRSIsInVwcGVyY2FzZUYiLCJ1cHBlcmNhc2VHIiwidXBwZXJjYXNlSCIsInVwcGVyY2FzZUkiLCJ1cHBlcmNhc2VKIiwidXBwZXJjYXNlSyIsInVwcGVyY2FzZUwiLCJ1cHBlcmNhc2VNIiwidXBwZXJjYXNlTiIsInVwcGVyY2FzZU8iLCJ1cHBlcmNhc2VQIiwidXBwZXJjYXNlUSIsInVwcGVyY2FzZVIiLCJ1cHBlcmNhc2VTIiwidXBwZXJjYXNlVCIsInVwcGVyY2FzZVUiLCJ1cHBlcmNhc2VWIiwidXBwZXJjYXNlVyIsInVwcGVyY2FzZVgiLCJ1cHBlcmNhc2VZIiwidXBwZXJjYXNlWiIsImxlZnRTcXVhcmVCcmFja2V0IiwiYmFja3NsYXNoIiwicmlnaHRTcXVhcmVCcmFja2V0IiwiY2FyZXQiLCJ1bmRlcnNjb3JlIiwiZ3JhdmVBY2NlbnQiLCJsb3dlcmNhc2VBIiwibG93ZXJjYXNlQiIsImxvd2VyY2FzZUMiLCJsb3dlcmNhc2VEIiwibG93ZXJjYXNlRSIsImxvd2VyY2FzZUYiLCJsb3dlcmNhc2VHIiwibG93ZXJjYXNlSCIsImxvd2VyY2FzZUkiLCJsb3dlcmNhc2VKIiwibG93ZXJjYXNlSyIsImxvd2VyY2FzZUwiLCJsb3dlcmNhc2VNIiwibG93ZXJjYXNlTiIsImxvd2VyY2FzZU8iLCJsb3dlcmNhc2VQIiwibG93ZXJjYXNlUSIsImxvd2VyY2FzZVIiLCJsb3dlcmNhc2VTIiwibG93ZXJjYXNlVCIsImxvd2VyY2FzZVUiLCJsb3dlcmNhc2VWIiwibG93ZXJjYXNlVyIsImxvd2VyY2FzZVgiLCJsb3dlcmNhc2VZIiwibG93ZXJjYXNlWiIsImxlZnRDdXJseUJyYWNlIiwidmVydGljYWxCYXIiLCJyaWdodEN1cmx5QnJhY2UiLCJ0aWxkZSIsInJlcGxhY2VtZW50Q2hhcmFjdGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark-util-symbol/lib/values.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/constructs.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/constructs.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ attentionMarkers: () => (/* binding */ attentionMarkers),\n/* harmony export */ contentInitial: () => (/* binding */ contentInitial),\n/* harmony export */ disable: () => (/* binding */ disable),\n/* harmony export */ document: () => (/* binding */ document),\n/* harmony export */ flow: () => (/* binding */ flow),\n/* harmony export */ flowInitial: () => (/* binding */ flowInitial),\n/* harmony export */ insideSpan: () => (/* binding */ insideSpan),\n/* harmony export */ string: () => (/* binding */ string),\n/* harmony export */ text: () => (/* binding */ text)\n/* harmony export */ });\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/list.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/block-quote.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/definition.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-indented.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/html-flow.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/character-reference.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/character-escape.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/line-ending.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/attention.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/autolink.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/html-text.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/label-end.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/code-text.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./initialize/text.js */ \"(ssr)/../../node_modules/micromark/dev/lib/initialize/text.js\");\n/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */ \n\n\n/** @satisfies {Extension['document']} */ const document = {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.plusSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit0]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit1]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit2]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit3]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit4]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit5]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit6]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit7]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit8]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.digit9]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__.blockQuote\n};\n/** @satisfies {Extension['contentInitial']} */ const contentInitial = {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.definition\n};\n/** @satisfies {Extension['flowInitial']} */ const flowInitial = {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented\n};\n/** @satisfies {Extension['flow']} */ const flow = {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_5__.headingAtx,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.dash]: [\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.setextUnderline,\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak\n ],\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_8__.htmlFlow,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.equalsTo]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.setextUnderline,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced\n};\n/** @satisfies {Extension['string']} */ const string = {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__.characterEscape\n};\n/** @satisfies {Extension['text']} */ const text = {\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.exclamationMark]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_13__.labelStartImage,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan]: [\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_15__.autolink,\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_16__.htmlText\n ],\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_17__.labelStartLink,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.backslash]: [\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_18__.hardBreakEscape,\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__.characterEscape\n ],\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_19__.labelEnd,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,\n [micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_20__.codeText\n};\n/** @satisfies {Extension['insideSpan']} */ const insideSpan = {\n null: [\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,\n _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__.resolver\n ]\n};\n/** @satisfies {Extension['attentionMarkers']} */ const attentionMarkers = {\n null: [\n micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk,\n micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.underscore\n ]\n};\n/** @satisfies {Extension['disable']} */ const disable = {\n null: []\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL2NvbnN0cnVjdHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztDQUVDLEdBdUJpQztBQUNTO0FBQ2lCO0FBRTVELHVDQUF1QyxHQUNoQyxNQUFNdUIsV0FBVztJQUN0QixDQUFDSCx3REFBS0EsQ0FBQ0ksUUFBUSxDQUFDLEVBQUVQLDJEQUFJQTtJQUN0QixDQUFDRyx3REFBS0EsQ0FBQ0ssUUFBUSxDQUFDLEVBQUVSLDJEQUFJQTtJQUN0QixDQUFDRyx3REFBS0EsQ0FBQ00sSUFBSSxDQUFDLEVBQUVULDJEQUFJQTtJQUNsQixDQUFDRyx3REFBS0EsQ0FBQ08sTUFBTSxDQUFDLEVBQUVWLDJEQUFJQTtJQUNwQixDQUFDRyx3REFBS0EsQ0FBQ1EsTUFBTSxDQUFDLEVBQUVYLDJEQUFJQTtJQUNwQixDQUFDRyx3REFBS0EsQ0FBQ1MsTUFBTSxDQUFDLEVBQUVaLDJEQUFJQTtJQUNwQixDQUFDRyx3REFBS0EsQ0FBQ1UsTUFBTSxDQUFDLEVBQUViLDJEQUFJQTtJQUNwQixDQUFDRyx3REFBS0EsQ0FBQ1csTUFBTSxDQUFDLEVBQUVkLDJEQUFJQTtJQUNwQixDQUFDRyx3REFBS0EsQ0FBQ1ksTUFBTSxDQUFDLEVBQUVmLDJEQUFJQTtJQUNwQixDQUFDRyx3REFBS0EsQ0FBQ2EsTUFBTSxDQUFDLEVBQUVoQiwyREFBSUE7SUFDcEIsQ0FBQ0csd0RBQUtBLENBQUNjLE1BQU0sQ0FBQyxFQUFFakIsMkRBQUlBO0lBQ3BCLENBQUNHLHdEQUFLQSxDQUFDZSxNQUFNLENBQUMsRUFBRWxCLDJEQUFJQTtJQUNwQixDQUFDRyx3REFBS0EsQ0FBQ2dCLE1BQU0sQ0FBQyxFQUFFbkIsMkRBQUlBO0lBQ3BCLENBQUNHLHdEQUFLQSxDQUFDaUIsV0FBVyxDQUFDLEVBQUVuQyxpRUFBVUE7QUFDakMsRUFBQztBQUVELDZDQUE2QyxHQUN0QyxNQUFNb0Ms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RUFBRTtBQUFBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmsvZGV2L2xpYi9jb25zdHJ1Y3RzLmpzPzIyZjQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkV4dGVuc2lvbn0gRXh0ZW5zaW9uXG4gKi9cblxuaW1wb3J0IHtcbiAgYXR0ZW50aW9uLFxuICBhdXRvbGluayxcbiAgYmxvY2tRdW90ZSxcbiAgY2hhcmFjdGVyRXNjYXBlLFxuICBjaGFyYWN0ZXJSZWZlcmVuY2UsXG4gIGNvZGVGZW5jZWQsXG4gIGNvZGVJbmRlbnRlZCxcbiAgY29kZVRleHQsXG4gIGRlZmluaXRpb24sXG4gIGhhcmRCcmVha0VzY2FwZSxcbiAgaGVhZGluZ0F0eCxcbiAgaHRtbEZsb3csXG4gIGh0bWxUZXh0LFxuICBsYWJlbEVuZCxcbiAgbGFiZWxTdGFydEltYWdlLFxuICBsYWJlbFN0YXJ0TGluayxcbiAgbGluZUVuZGluZyxcbiAgbGlzdCxcbiAgc2V0ZXh0VW5kZXJsaW5lLFxuICB0aGVtYXRpY0JyZWFrXG59IGZyb20gJ21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsnXG5pbXBvcnQge2NvZGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge3Jlc29sdmVyIGFzIHJlc29sdmVUZXh0fSBmcm9tICcuL2luaXRpYWxpemUvdGV4dC5qcydcblxuLyoqIEBzYXRpc2ZpZXMge0V4dGVuc2lvblsnZG9jdW1lbnQnXX0gKi9cbmV4cG9ydCBjb25zdCBkb2N1bWVudCA9IHtcbiAgW2NvZGVzLmFzdGVyaXNrXTogbGlzdCxcbiAgW2NvZGVzLnBsdXNTaWduXTogbGlzdCxcbiAgW2NvZGVzLmRhc2hdOiBsaXN0LFxuICBbY29kZXMuZGlnaXQwXTogbGlzdCxcbiAgW2NvZGVzLmRpZ2l0MV06IGxpc3QsXG4gIFtjb2Rlcy5kaWdpdDJdOiBsaXN0LFxuICBbY29kZXMuZGlnaXQzXTogbGlzdCxcbiAgW2NvZGVzLmRpZ2l0NF06IGxpc3QsXG4gIFtjb2Rlcy5kaWdpdDVdOiBsaXN0LFxuICBbY29kZXMuZGlnaXQ2XTogbGlzdCxcbiAgW2NvZGVzLmRpZ2l0N106IGxpc3QsXG4gIFtjb2Rlcy5kaWdpdDhdOiBsaXN0LFxuICBbY29kZXMuZGlnaXQ5XTogbGlzdCxcbiAgW2NvZGVzLmdyZWF0ZXJUaGFuXTogYmxvY2tRdW90ZVxufVxuXG4vKiogQHNhdGlzZmllcyB7RXh0ZW5zaW9uWydjb250ZW50SW5pdGlhbCddfSAqL1xuZXhwb3J0IGNvbnN0IGNvbnRlbnRJbml0aWFsID0ge1xuICBbY29kZXMubGVmdFNxdWFyZUJyYWNrZXRdOiBkZWZpbml0aW9uXG59XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ2Zsb3dJbml0aWFsJ119ICovXG5leHBvcnQgY29uc3QgZmxvd0luaXRpYWwgPSB7XG4gIFtjb2Rlcy5ob3Jpem9udGFsVGFiXTogY29kZUluZGVudGVkLFxuICBbY29kZXMudmlydHVhbFNwYWNlXTogY29kZUluZGVudGVkLFxuICBbY29kZXMuc3BhY2VdOiBjb2RlSW5kZW50ZWRcbn1cblxuLyoqIEBzYXRpc2ZpZXMge0V4dGVuc2lvblsnZmxvdyddfSAqL1xuZXhwb3J0IGNvbnN0IGZsb3cgPSB7XG4gIFtjb2Rlcy5udW1iZXJTaWduXTogaGVhZGluZ0F0eCxcbiAgW2NvZGVzLmFzdGVyaXNrXTogdGhlbWF0aWNCcmVhayxcbiAgW2NvZGVzLmRhc2hdOiBbc2V0ZXh0VW5kZXJsaW5lLCB0aGVtYXRpY0JyZWFrXSxcbiAgW2NvZGVzLmxlc3NUaGFuXTogaHRtbEZsb3csXG4gIFtjb2Rlcy5lcXVhbHNUb106IHNldGV4dFVuZGVybGluZSxcbiAgW2NvZGVzLnVuZGVyc2NvcmVdOiB0aGVtYXRpY0JyZWFrLFxuICBbY29kZXMuZ3JhdmVBY2NlbnRdOiBjb2RlRmVuY2VkLFxuICBbY29kZXMudGlsZGVdOiBjb2RlRmVuY2VkXG59XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ3N0cmluZyddfSAqL1xuZXhwb3J0IGNvbnN0IHN0cmluZyA9IHtcbiAgW2NvZGVzLmFtcGVyc2FuZF06IGNoYXJhY3RlclJlZmVyZW5jZSxcbiAgW2NvZGVzLmJhY2tzbGFzaF06IGNoYXJhY3RlckVzY2FwZVxufVxuXG4vKiogQHNhdGlzZmllcyB7RXh0ZW5zaW9uWyd0ZXh0J119ICovXG5leHBvcnQgY29uc3QgdGV4dCA9IHtcbiAgW2NvZGVzLmNhcnJpYWdlUmV0dXJuXTogbGluZUVuZGluZyxcbiAgW2NvZGVzLmxpbmVGZWVkXTogbGluZUVuZGluZyxcbiAgW2NvZGVzLmNhcnJpYWdlUmV0dXJuTGluZUZlZWRdOiBsaW5lRW5kaW5nLFxuICBbY29kZXMuZXhjbGFtYXRpb25NYXJrXTogbGFiZWxTdGFydEltYWdlLFxuICBbY29kZXMuYW1wZXJzYW5kXTogY2hhcmFjdGVyUmVmZXJlbmNlLFxuICBbY29kZXMuYXN0ZXJpc2tdOiBhdHRlbnRpb24sXG4gIFtjb2Rlcy5sZXNzVGhhbl06IFthdXRvbGluaywgaHRtbFRleHRdLFxuICBbY29kZXMubGVmdFNxdWFyZUJyYWNrZXRdOiBsYWJlbFN0YXJ0TGluayxcbiAgW2NvZGVzLmJhY2tzbGFzaF06IFtoYXJkQnJlYWtFc2NhcGUsIGNoYXJhY3RlckVzY2FwZV0sXG4gIFtjb2Rlcy5yaWdodFNxdWFyZUJyYWNrZXRdOiBsYWJlbEVuZCxcbiAgW2NvZGVzLnVuZGVyc2NvcmVdOiBhdHRlbnRpb24sXG4gIFtjb2Rlcy5ncmF2ZUFjY2VudF06IGNvZGVUZXh0XG59XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ2luc2lkZVNwYW4nXX0gKi9cbmV4cG9ydCBjb25zdCBpbnNpZGVTcGFuID0ge251bGw6IFthdHRlbnRpb24sIHJlc29sdmVUZXh0XX1cblxuLyoqIEBzYXRpc2ZpZXMge0V4dGVuc2lvblsnYXR0ZW50aW9uTWFya2VycyddfSAqL1xuZXhwb3J0IGNvbnN0IGF0dGVudGlvbk1hcmtlcnMgPSB7bnVsbDogW2NvZGVzLmFzdGVyaXNrLCBjb2Rlcy51bmRlcnNjb3JlXX1cblxuLyoqIEBzYXRpc2ZpZXMge0V4dGVuc2lvblsnZGlzYWJsZSddfSAqL1xuZXhwb3J0IGNvbnN0IGRpc2FibGUgPSB7bnVsbDogW119XG4iXSwibmFtZXMiOlsiYXR0ZW50aW9uIiwiYXV0b2xpbmsiLCJibG9ja1F1b3RlIiwiY2hhcmFjdGVyRXNjYXBlIiwiY2hhcmFjdGVyUmVmZXJlbmNlIiwiY29kZUZlbmNlZCIsImNvZGVJbmRlbnRlZCIsImNvZGVUZXh0IiwiZGVmaW5pdGlvbiIsImhhcmRCcmVha0VzY2FwZSIsImhlYWRpbmdBdHgiLCJodG1sRmxvdyIsImh0bWxUZXh0IiwibGFiZWxFbmQiLCJsYWJlbFN0YXJ0SW1hZ2UiLCJsYWJlbFN0YXJ0TGluayIsImxpbmVFbmRpbmciLCJsaXN0Iiwic2V0ZXh0VW5kZXJsaW5lIiwidGhlbWF0aWNCcmVhayIsImNvZGVzIiwicmVzb2x2ZXIiLCJyZXNvbHZlVGV4dCIsImRvY3VtZW50IiwiYXN0ZXJpc2siLCJwbHVzU2lnbiIsImRhc2giLCJkaWdpdDAiLCJkaWdpdDEiLCJkaWdpdDIiLCJkaWdpdDMiLCJkaWdpdDQiLCJkaWdpdDUiLCJkaWdpdDYiLCJkaWdpdDciLCJkaWdpdDgiLCJkaWdpdDkiLCJncmVhdGVyVGhhbiIsImNvbnRlbnRJbml0aWFsIiwibGVmdFNxdWFyZUJyYWNrZXQiLCJmbG93SW5pdGlhbCIsImhvcml6b250YWxUYWIiLCJ2aXJ0dWFsU3BhY2UiLCJzcGFjZSIsImZsb3ciLCJudW1iZXJTaWduIiwibGVzc1RoYW4iLCJlcXVhbHNUbyIsInVuZGVyc2NvcmUiLCJncmF2ZUFjY2VudCIsInRpbGRlIiwic3RyaW5nIiwiYW1wZXJzYW5kIiwiYmFja3NsYXNoIiwidGV4dCIsImNhcnJpYWdlUmV0dXJuIiwibGluZUZlZWQiLCJjYXJyaWFnZVJldHVybkxpbmVGZWVkIiwiZXhjbGFtYXRpb25NYXJrIiwicmlnaHRTcXVhcmVCcmFja2V0IiwiaW5zaWRlU3BhbiIsIm51bGwiLCJhdHRlbnRpb25NYXJrZXJzIiwiZGlzYWJsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/constructs.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/create-tokenizer.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/create-tokenizer.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createTokenizer: () => (/* binding */ createTokenizer)\n/* harmony export */ });\n/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ \"(ssr)/../../node_modules/debug/src/browser.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ \"(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\");\n/* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-resolve-all */ \"(ssr)/../../node_modules/micromark-util-resolve-all/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/values.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */ /**\n * @callback Restore\n * @returns {undefined}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {undefined}\n */ \n\n\n\n\n\nconst debug = debug__WEBPACK_IMPORTED_MODULE_0__(\"micromark\");\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */ function createTokenizer(parser, initialize, from) {\n /** @type {Point} */ let point = Object.assign(from ? Object.assign({}, from) : {\n line: 1,\n column: 1,\n offset: 0\n }, {\n _index: 0,\n _bufferIndex: -1\n });\n /** @type {Record<string, number>} */ const columnStart = {};\n /** @type {Array<Construct>} */ const resolveAllConstructs = [];\n /** @type {Array<Chunk>} */ let chunks = [];\n /** @type {Array<Token>} */ let stack = [];\n /** @type {boolean | undefined} */ let consumed = true;\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */ const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */ const context = {\n previous: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof,\n code: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n };\n /**\n * The state function.\n *\n * @type {State | undefined}\n */ let state = initialize.tokenize.call(context, effects);\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */ let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n /** @type {TokenizeContext['write']} */ function write(slice) {\n chunks = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(chunks, slice);\n main();\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n return [];\n }\n addResult(initialize, 0);\n // Otherwise, resolve, and exit.\n context.events = (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(resolveAllConstructs, context.events, context);\n return context.events;\n }\n //\n // Tools.\n //\n /** @type {TokenizeContext['sliceSerialize']} */ function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n /** @type {TokenizeContext['sliceStream']} */ function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n /** @type {TokenizeContext['now']} */ function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const { line, column, offset, _index, _bufferIndex } = point;\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n };\n }\n /** @type {TokenizeContext['defineSkip']} */ function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n debug(\"position: define skip: `%j`\", point);\n }\n //\n // State management.\n //\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n */ function main() {\n /** @type {number} */ let chunkIndex;\n while(point._index < chunks.length){\n const chunk = chunks[point._index];\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === \"string\") {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while(point._index === chunkIndex && point._bufferIndex < chunk.length){\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {undefined}\n */ function go(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(consumed === true, \"expected character to be consumed\");\n consumed = undefined;\n debug(\"main: passing `%s` to %s\", code, state && state.name);\n expectedCode = code;\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(typeof state === \"function\", \"expected state\");\n state = state(code);\n }\n /** @type {Effects['consume']} */ function consume(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(code === expectedCode, \"expected given code to equal expected code\");\n debug(\"consume: `%s`\", code);\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(consumed === undefined, \"expected code to not have been consumed: this might be because `return x(code)` instead of `return x` was used\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(code === null ? context.events.length === 0 || context.events[context.events.length - 1][0] === \"exit\" : context.events[context.events.length - 1][0] === \"enter\", \"expected last token to be open\");\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.carriageReturnLineFeed ? 2 : 1;\n accountForPotentialSkip();\n debug(\"position: after eol: `%j`\", point);\n } else if (code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.virtualSpace) {\n point.column++;\n point.offset++;\n }\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n // Expose the previous character.\n context.previous = code;\n // Mark as consumed.\n consumed = true;\n }\n /** @type {Effects['enter']} */ function enter(type, fields) {\n /** @type {Token} */ // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(typeof type === \"string\", \"expected string type\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(type.length > 0, \"expected non-empty string\");\n debug(\"enter: `%s`\", type);\n context.events.push([\n \"enter\",\n token,\n context\n ]);\n stack.push(token);\n return token;\n }\n /** @type {Effects['exit']} */ function exit(type) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(typeof type === \"string\", \"expected string type\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(type.length > 0, \"expected non-empty string\");\n const token = stack.pop();\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(token, \"cannot close w/o open tokens\");\n token.end = now();\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(type === token.type, \"expected exit token to match current token\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(!(token.start._index === token.end._index && token.start._bufferIndex === token.end._bufferIndex), \"expected non-empty token (`\" + type + \"`)\");\n debug(\"exit: `%s`\", token.type);\n context.events.push([\n \"exit\",\n token,\n context\n ]);\n return token;\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */ function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */ function onsuccessfulcheck(_, info) {\n info.restore();\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */ function constructFactory(onreturn, fields) {\n return hook;\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */ function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */ let listOfConstructs;\n /** @type {number} */ let constructIndex;\n /** @type {Construct} */ let currentConstruct;\n /** @type {Info} */ let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */ handleListOfConstructs(constructs) : \"tokenize\" in constructs ? handleListOfConstructs([\n constructs\n ]) : handleMapOfConstructs(constructs);\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */ function handleMapOfConstructs(map) {\n return start;\n /** @type {State} */ function start(code) {\n const def = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */ ...Array.isArray(def) ? def : def ? [\n def\n ] : [],\n ...Array.isArray(all) ? all : all ? [\n all\n ] : []\n ];\n return handleListOfConstructs(list)(code);\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */ function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(bogusState, \"expected `bogusState` to be given\");\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */ function handleConstruct(construct) {\n return start;\n /** @type {State} */ function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(context.parser.constructs.disable.null, \"expected `disable.null` to be populated\");\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(// If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n /** @type {State} */ function ok(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(code === expectedCode, \"expected code\");\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n /** @type {State} */ function nok(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(code === expectedCode, \"expected code\");\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {undefined}\n */ function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(construct.partial || context.events.length === 0 || context.events[context.events.length - 1][0] === \"exit\", \"expected last token to end\");\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */ function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n restore,\n from: startEventsIndex\n };\n /**\n * Restore state.\n *\n * @returns {undefined}\n */ function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n debug(\"position: restore: `%j`\", point);\n }\n }\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n */ function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */ function sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array<Chunk>} */ let view;\n if (startIndex === endIndex) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(endBufferIndex > -1, \"expected non-negative end buffer index\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(startBufferIndex > -1, \"expected non-negative start buffer index\");\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [\n chunks[startIndex].slice(startBufferIndex, endBufferIndex)\n ];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === \"string\") {\n view[0] = head.slice(startBufferIndex);\n } else {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(startBufferIndex === 0, \"expected `startBufferIndex` to be `0`\");\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */ function serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array<string>} */ const result = [];\n /** @type {boolean | undefined} */ let atTab;\n while(++index < chunks.length){\n const chunk = chunks[index];\n /** @type {string} */ let value;\n if (typeof chunk === \"string\") {\n value = chunk;\n } else switch(chunk){\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.carriageReturn:\n {\n value = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.values.cr;\n break;\n }\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lineFeed:\n {\n value = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.values.lf;\n break;\n }\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.carriageReturnLineFeed:\n {\n value = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.values.cr + micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.values.lf;\n break;\n }\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.horizontalTab:\n {\n value = expandTabs ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.values.space : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.values.ht;\n break;\n }\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.virtualSpace:\n {\n if (!expandTabs && atTab) continue;\n value = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_6__.values.space;\n break;\n }\n default:\n {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(typeof chunk === \"number\", \"expected number\");\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.horizontalTab;\n result.push(value);\n }\n return result.join(\"\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL2NyZWF0ZS10b2tlbml6ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7OztDQWFDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUU4QjtBQUM0QjtBQUNSO0FBQ0U7QUFDRjtBQUNoQjtBQUVuQyxNQUFNUyxRQUFRVCxrQ0FBV0EsQ0FBQztBQUUxQjs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ00sU0FBU1UsZ0JBQWdCQyxNQUFNLEVBQUVDLFVBQVUsRUFBRUMsSUFBSTtJQUN0RCxrQkFBa0IsR0FDbEIsSUFBSUMsUUFBUUMsT0FBT0MsTUFBTSxDQUN2QkgsT0FBT0UsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR0gsUUFBUTtRQUFDSSxNQUFNO1FBQUdDLFFBQVE7UUFBR0MsUUFBUTtJQUFDLEdBQy9EO1FBQUNDLFFBQVE7UUFBR0MsY0FBYyxDQUFDO0lBQUM7SUFFOUIsbUNBQW1DLEdBQ25DLE1BQU1DLGNBQWMsQ0FBQztJQUNyQiw2QkFBNkIsR0FDN0IsTUFBTUMsdUJBQXVCLEVBQUU7SUFDL0IseUJBQXlCLEdBQ3pCLElBQUlDLFNBQVMsRUFBRTtJQUNmLHlCQUF5QixHQUN6QixJQUFJQyxRQUFRLEVBQUU7SUFDZCxnQ0FBZ0MsR0FDaEMsSUFBSUMsV0FBVztJQUVmOzs7O0dBSUMsR0FDRCxNQUFNQyxVQUFVO1FBQ2RDO1FBQ0FDO1FBQ0FDO1FBQ0FDLFNBQVNDLGlCQUFpQkM7UUFDMUJDLE9BQU9GLGlCQUFpQkc7UUFDeEJDLFdBQVdKLGlCQUFpQkcsbUJBQW1CO1lBQUNDLFdBQVc7UUFBSTtJQUNqRTtJQUVBOzs7O0dBSUMsR0FDRCxNQUFNQyxVQUFVO1FBQ2RDLFVBQVVqQyx3REFBS0EsQ0FBQ2tDLEdBQUc7UUFDbkJDLE1BQU1uQyx3REFBS0EsQ0FBQ2tDLEdBQUc7UUFDZkUsZ0JBQWdCLENBQUM7UUFDakJDLFFBQVEsRUFBRTtRQUNWL0I7UUFDQWdDO1FB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LEVBQUU7b0JBRTdCO2dCQUNGO1lBRUEsS0FBS3RILHdEQUFLQSxDQUFDdUgsYUFBYTtnQkFBRTtvQkFDeEJoRSxRQUFRSCxhQUFhbkQseURBQU1BLENBQUN1SCxLQUFLLEdBQUd2SCx5REFBTUEsQ0FBQ3dILEVBQUU7b0JBRTdDO2dCQUNGO1lBRUEsS0FBS3pILHdEQUFLQSxDQUFDZ0UsWUFBWTtnQkFBRTtvQkFDdkIsSUFBSSxDQUFDWixjQUFjOEQsT0FBTztvQkFDMUIzRCxRQUFRdEQseURBQU1BLENBQUN1SCxLQUFLO29CQUVwQjtnQkFDRjtZQUVBO2dCQUFTO29CQUNQckgsMENBQU1BLENBQUMsT0FBT3VELFVBQVUsVUFBVTtvQkFDbEMsd0NBQXdDO29CQUN4Q0gsUUFBUW1FLE9BQU9DLFlBQVksQ0FBQ2pFO2dCQUM5QjtRQUNGO1FBRUZ3RCxRQUFReEQsVUFBVTFELHdEQUFLQSxDQUFDdUgsYUFBYTtRQUNyQ04sT0FBT3BILElBQUksQ0FBQzBEO0lBQ2Q7SUFFQSxPQUFPMEQsT0FBT1csSUFBSSxDQUFDO0FBQ3JCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrL2Rldi9saWIvY3JlYXRlLXRva2VuaXplci5qcz9jODdjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5DaHVua30gQ2h1bmtcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3RSZWNvcmR9IENvbnN0cnVjdFJlY29yZFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FZmZlY3RzfSBFZmZlY3RzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkluaXRpYWxDb25zdHJ1Y3R9IEluaXRpYWxDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUGFyc2VDb250ZXh0fSBQYXJzZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbn0gVG9rZW5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5UeXBlfSBUb2tlblR5cGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBSZXN0b3JlXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEB0eXBlZGVmIEluZm9cbiAqIEBwcm9wZXJ0eSB7UmVzdG9yZX0gcmVzdG9yZVxuICogQHByb3BlcnR5IHtudW1iZXJ9IGZyb21cbiAqXG4gKiBAY2FsbGJhY2sgUmV0dXJuSGFuZGxlXG4gKiAgIEhhbmRsZSBhIHN1Y2Nlc3NmdWwgcnVuLlxuICogQHBhcmFtIHtDb25zdHJ1Y3R9IGNvbnN0cnVjdFxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICovXG5cbmltcG9ydCBjcmVhdGVEZWJ1ZyBmcm9tICdkZWJ1ZydcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge3B1c2gsIHNwbGljZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2h1bmtlZCdcbmltcG9ydCB7cmVzb2x2ZUFsbH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtcmVzb2x2ZS1hbGwnXG5pbXBvcnQge2NvZGVzLCB2YWx1ZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbmNvbnN0IGRlYnVnID0gY3JlYXRlRGVidWcoJ21pY3JvbWFyaycpXG5cbi8qKlxuICogQ3JlYXRlIGEgdG9rZW5pemVyLlxuICogVG9rZW5pemVycyBkZWFsIHdpdGggb25lIHR5cGUgb2YgZGF0YSAoZS5nLiwgY29udGFpbmVycywgZmxvdywgdGV4dCkuXG4gKiBUaGUgcGFyc2VyIGlzIHRoZSBvYmplY3QgZGVhbGluZyB3aXRoIGl0IGFsbC5cbiAqIGBpbml0aWFsaXplYCB3b3JrcyBsaWtlIG90aGVyIGNvbnN0cnVjdHMsIGV4Y2VwdCB0aGF0IG9ubHkgaXRzIGB0b2tlbml6ZWBcbiAqIGZ1bmN0aW9uIGlzIHVzZWQsIGluIHdoaWNoIGNhc2UgaXQgZG9lc27igJl0IHJlY2VpdmUgYW4gYG9rYCBvciBgbm9rYC5cbiAqIGBmcm9tYCBjYW4gYmUgZ2l2ZW4gdG8gc2V0IHRoZSBwb2ludCBiZWZvcmUgdGhlIGZpcnN0IGNoYXJhY3RlciwgYWx0aG91Z2hcbiAqIHdoZW4gZnVydGhlciBsaW5lcyBhcmUgaW5kZW50ZWQsIHRoZXkgbXVzdCBiZSBzZXQgd2l0aCBgZGVmaW5lU2tpcGAuXG4gKlxuICogQHBhcmFtIHtQYXJzZUNvbnRleHR9IHBhcnNlclxuICogQHBhcmFtIHtJbml0aWFsQ29uc3RydWN0fSBpbml0aWFsaXplXG4gKiBAcGFyYW0ge09taXQ8UG9pbnQsICdfYnVmZmVySW5kZXgnIHwgJ19pbmRleCc+IHwgdW5kZWZpbmVkfSBbZnJvbV1cbiAqIEByZXR1cm5zIHtUb2tlbml6ZUNvbnRleHR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlbml6ZXIocGFyc2VyLCBpbml0aWFsaXplLCBmcm9tKSB7XG4gIC8qKiBAdHlwZSB7UG9pbnR9ICovXG4gIGxldCBwb2ludCA9IE9iamVjdC5hc3NpZ24oXG4gICAgZnJvbSA/IE9iamVjdC5hc3NpZ24oe30sIGZyb20pIDoge2xpbmU6IDEsIGNvbHVtbjogMSwgb2Zmc2V0OiAwfSxcbiAgICB7X2luZGV4OiAwLCBfYnVmZmVySW5kZXg6IC0xfVxuICApXG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgbnVtYmVyPn0gKi9cbiAgY29uc3QgY29sdW1uU3RhcnQgPSB7fVxuICAvKiogQHR5cGUge0FycmF5PENvbnN0cnVjdD59ICovXG4gIGNvbnN0IHJlc29sdmVBbGxDb25zdHJ1Y3RzID0gW11cbiAgLyoqIEB0eXBlIHtBcnJheTxDaHVuaz59ICovXG4gIGxldCBjaHVua3MgPSBbXVxuICAvKiogQHR5cGUge0FycmF5PFRva2VuPn0gKi9cbiAgbGV0IHN0YWNrID0gW11cbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY29uc3VtZWQgPSB0cnVlXG5cbiAgLyoqXG4gICAqIFRvb2xzIHVzZWQgZm9yIHRva2VuaXppbmcuXG4gICAqXG4gICAqIEB0eXBlIHtFZmZlY3RzfVxuICAgKi9cbiAgY29uc3QgZWZmZWN0cyA9IHtcbiAgICBjb25zdW1lLFxuICAgIGVudGVyLFxuICAgIGV4aXQsXG4gICAgYXR0ZW1wdDogY29uc3RydWN0RmFjdG9yeShvbnN1Y2Nlc3NmdWxjb25zdHJ1Y3QpLFxuICAgIGNoZWNrOiBjb25zdHJ1Y3RGYWN0b3J5KG9uc3VjY2Vzc2Z1bGNoZWNrKSxcbiAgICBpbnRlcnJ1cHQ6IGNvbnN0cnVjdEZhY3Rvcnkob25zdWNjZXNzZnVsY2hlY2ssIHtpbnRlcnJ1cHQ6IHRydWV9KVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlIGFuZCB0b29scyBmb3IgcmVzb2x2aW5nIGFuZCBzZXJpYWxpemluZy5cbiAgICpcbiAgICogQHR5cGUge1Rva2VuaXplQ29udGV4dH1cbiAgICovXG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgcHJldmlvdXM6IGNvZGVzLmVvZixcbiAgICBjb2RlOiBjb2Rlcy5lb2YsXG4gICAgY29udGFpbmVyU3RhdGU6IHt9LFxuICAgIGV2ZW50czogW10sXG4gICAgcGFyc2VyLFxuICAgIHNsaWNlU3RyZWFtLFxuICAgIHNsaWNlU2VyaWFsaXplLFxuICAgIG5vdyxcbiAgICBkZWZpbmVTa2lwLFxuICAgIHdyaXRlXG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0YXRlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGUgfCB1bmRlZmluZWR9XG4gICAqL1xuICBsZXQgc3RhdGUgPSBpbml0aWFsaXplLnRva2VuaXplLmNhbGwoY29udGV4dCwgZWZmZWN0cylcblxuICAvKipcbiAgICogVHJhY2sgd2hpY2ggY2hhcmFjdGVyIHdlIGV4cGVjdCB0byBiZSBjb25zdW1lZCwgdG8gY2F0Y2ggYnVncy5cbiAgICpcbiAgICogQHR5cGUge0NvZGV9XG4gICAqL1xuICBsZXQgZXhwZWN0ZWRDb2RlXG5cbiAgaWYgKGluaXRpYWxpemUucmVzb2x2ZUFsbCkge1xuICAgIHJlc29sdmVBbGxDb25zdHJ1Y3RzLnB1c2goaW5pdGlhbGl6ZSlcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0XG5cbiAgLyoqIEB0eXBlIHtUb2tlbml6ZUNvbnRleHRbJ3dyaXRlJ119ICovXG4gIGZ1bmN0aW9uIHdyaXRlKHNsaWNlKSB7XG4gICAgY2h1bmtzID0gcHVzaChjaHVua3MsIHNsaWNlKVxuXG4gICAgbWFpbigpXG5cbiAgICAvLyBFeGl0IGlmIHdl4oCZcmUgbm90IGRvbmUsIHJlc29sdmUgbWlnaHQgY2hhbmdlIHN0dWZmLlxuICAgIGlmIChjaHVua3NbY2h1bmtzLmxlbmd0aCAtIDFdICE9PSBjb2Rlcy5lb2YpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cblxuICAgIGFkZFJlc3VsdChpbml0aWFsaXplLCAwKVxuXG4gICAgLy8gT3RoZXJ3aXNlLCByZXNvbHZlLCBhbmQgZXhpdC5cbiAgICBjb250ZXh0LmV2ZW50cyA9IHJlc29sdmVBbGwocmVzb2x2ZUFsbENvbnN0cnVjdHMsIGNvbnRleHQuZXZlbnRzLCBjb250ZXh0KVxuXG4gICAgcmV0dXJuIGNvbnRleHQuZXZlbnRzXG4gIH1cblxuICAvL1xuICAvLyBUb29scy5cbiAgLy9cblxuICAvKiogQHR5cGUge1Rva2VuaXplQ29udGV4dFsnc2xpY2VTZXJpYWxpemUnXX0gKi9cbiAgZnVuY3Rpb24gc2xpY2VTZXJpYWxpemUodG9rZW4sIGV4cGFuZFRhYnMpIHtcbiAgICByZXR1cm4gc2VyaWFsaXplQ2h1bmtzKHNsaWNlU3RyZWFtKHRva2VuKSwgZXhwYW5kVGFicylcbiAgfVxuXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0WydzbGljZVN0cmVhbSddfSAqL1xuICBmdW5jdGlvbiBzbGljZVN0cmVhbSh0b2tlbikge1xuICAgIHJldHVybiBzbGljZUNodW5rcyhjaHVua3MsIHRva2VuKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtUb2tlbml6ZUNvbnRleHRbJ25vdyddfSAqL1xuICBmdW5jdGlvbiBub3coKSB7XG4gICAgLy8gVGhpcyBpcyBhIGhvdCBwYXRoLCBzbyB3ZSBjbG9uZSBtYW51YWxseSBpbnN0ZWFkIG9mIGBPYmplY3QuYXNzaWduKHt9LCBwb2ludClgXG4gICAgY29uc3Qge2xpbmUsIGNvbHVtbiwgb2Zmc2V0LCBfaW5kZXgsIF9idWZmZXJJbmRleH0gPSBwb2ludFxuICAgIHJldHVybiB7bGluZSwgY29sdW1uLCBvZmZzZXQsIF9pbmRleCwgX2J1ZmZlckluZGV4fVxuICB9XG5cbiAgLyoqIEB0eXBlIHtUb2tlbml6ZUNvbnRleHRbJ2RlZmluZVNraXAnXX0gKi9cbiAgZnVuY3Rpb24gZGVmaW5lU2tpcCh2YWx1ZSkge1xuICAgIGNvbHVtblN0YXJ0W3ZhbHVlLmxpbmVdID0gdmFsdWUuY29sdW1uXG4gICAgYWNjb3VudEZvclBvdGVudGlhbFNraXAoKVxuICAgIGRlYnVnKCdwb3NpdGlvbjogZGVmaW5lIHNraXA6IGAlamAnLCBwb2ludClcbiAgfVxuXG4gIC8vXG4gIC8vIFN0YXRlIG1hbmFnZW1lbnQuXG4gIC8vXG5cbiAgLyoqXG4gICAqIE1haW4gbG9vcCAobm90ZSB0aGF0IGBfaW5kZXhgIGFuZCBgX2J1ZmZlckluZGV4YCBpbiBgcG9pbnRgIGFyZSBtb2RpZmllZCBieVxuICAgKiBgY29uc3VtZWApLlxuICAgKiBIZXJlIGlzIHdoZXJlIHdlIHdhbGsgdGhyb3VnaCB0aGUgY2h1bmtzLCB3aGljaCBlaXRoZXIgaW5jbHVkZSBzdHJpbmdzIG9mXG4gICAqIHNldmVyYWwgY2hhcmFjdGVycywgb3IgbnVtZXJpY2FsIGNoYXJhY3RlciBjb2Rlcy5cbiAgICogVGhlIHJlYXNvbiB0byBkbyB0aGlzIGluIGEgbG9vcCBpbnN0ZWFkIG9mIGEgY2FsbCBpcyBzbyB0aGUgc3RhY2sgY2FuXG4gICAqIGRyYWluLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gbWFpbigpIHtcbiAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICBsZXQgY2h1bmtJbmRleFxuXG4gICAgd2hpbGUgKHBvaW50Ll9pbmRleCA8IGNodW5rcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGNodW5rID0gY2h1bmtzW3BvaW50Ll9pbmRleF1cblxuICAgICAgLy8gSWYgd2XigJlyZSBpbiBhIGJ1ZmZlciBjaHVuaywgbG9vcCB0aHJvdWdoIGl0LlxuICAgICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2h1bmtJbmRleCA9IHBvaW50Ll9pbmRleFxuXG4gICAgICAgIGlmIChwb2ludC5fYnVmZmVySW5kZXggPCAwKSB7XG4gICAgICAgICAgcG9pbnQuX2J1ZmZlckluZGV4ID0gMFxuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAgIHBvaW50Ll9pbmRleCA9PT0gY2h1bmtJbmRleCAmJlxuICAgICAgICAgIHBvaW50Ll9idWZmZXJJbmRleCA8IGNodW5rLmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICBnbyhjaHVuay5jaGFyQ29kZUF0KHBvaW50Ll9idWZmZXJJbmRleCkpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGdvKGNodW5rKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFsIHdpdGggb25lIGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gZ28oY29kZSkge1xuICAgIGFzc2VydChjb25zdW1lZCA9PT0gdHJ1ZSwgJ2V4cGVjdGVkIGNoYXJhY3RlciB0byBiZSBjb25zdW1lZCcpXG4gICAgY29uc3VtZWQgPSB1bmRlZmluZWRcbiAgICBkZWJ1ZygnbWFpbjogcGFzc2luZyBgJXNgIHRvICVzJywgY29kZSwgc3RhdGUgJiYgc3RhdGUubmFtZSlcbiAgICBleHBlY3RlZENvZGUgPSBjb2RlXG4gICAgYXNzZXJ0KHR5cGVvZiBzdGF0ZSA9PT0gJ2Z1bmN0aW9uJywgJ2V4cGVjdGVkIHN0YXRlJylcbiAgICBzdGF0ZSA9IHN0YXRlKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge0VmZmVjdHNbJ2NvbnN1bWUnXX0gKi9cbiAgZnVuY3Rpb24gY29uc3VtZShjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGV4cGVjdGVkQ29kZSwgJ2V4cGVjdGVkIGdpdmVuIGNvZGUgdG8gZXF1YWwgZXhwZWN0ZWQgY29kZScpXG5cbiAgICBkZWJ1ZygnY29uc3VtZTogYCVzYCcsIGNvZGUpXG5cbiAgICBhc3NlcnQoXG4gICAgICBjb25zdW1lZCA9PT0gdW5kZWZpbmVkLFxuICAgICAgJ2V4cGVjdGVkIGNvZGUgdG8gbm90IGhhdmUgYmVlbiBjb25zdW1lZDogdGhpcyBtaWdodCBiZSBiZWNhdXNlIGByZXR1cm4geChjb2RlKWAgaW5zdGVhZCBvZiBgcmV0dXJuIHhgIHdhcyB1c2VkJ1xuICAgIClcbiAgICBhc3NlcnQoXG4gICAgICBjb2RlID09PSBudWxsXG4gICAgICAgID8gY29udGV4dC5ldmVudHMubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgICBjb250ZXh0LmV2ZW50c1tjb250ZXh0LmV2ZW50cy5sZW5ndGggLSAxXVswXSA9PT0gJ2V4aXQnXG4gICAgICAgIDogY29udGV4dC5ldmVudHNbY29udGV4dC5ldmVudHMubGVuZ3RoIC0gMV1bMF0gPT09ICdlbnRlcicsXG4gICAgICAnZXhwZWN0ZWQgbGFzdCB0b2tlbiB0byBiZSBvcGVuJ1xuICAgIClcblxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHBvaW50LmxpbmUrK1xuICAgICAgcG9pbnQuY29sdW1uID0gMVxuICAgICAgcG9pbnQub2Zmc2V0ICs9IGNvZGUgPT09IGNvZGVzLmNhcnJpYWdlUmV0dXJuTGluZUZlZWQgPyAyIDogMVxuICAgICAgYWNjb3VudEZvclBvdGVudGlhbFNraXAoKVxuICAgICAgZGVidWcoJ3Bvc2l0aW9uOiBhZnRlciBlb2w6IGAlamAnLCBwb2ludClcbiAgICB9IGVsc2UgaWYgKGNvZGUgIT09IGNvZGVzLnZpcnR1YWxTcGFjZSkge1xuICAgICAgcG9pbnQuY29sdW1uKytcbiAgICAgIHBvaW50Lm9mZnNldCsrXG4gICAgfVxuXG4gICAgLy8gTm90IGluIGEgc3RyaW5nIGNodW5rLlxuICAgIGlmIChwb2ludC5fYnVmZmVySW5kZXggPCAwKSB7XG4gICAgICBwb2ludC5faW5kZXgrK1xuICAgIH0gZWxzZSB7XG4gICAgICBwb2ludC5fYnVmZmVySW5kZXgrK1xuXG4gICAgICAvLyBBdCBlbmQgb2Ygc3RyaW5nIGNodW5rLlxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQb2ludHMgdy8gbm9uLW5lZ2F0aXZlIGBfYnVmZmVySW5kZXhgIHJlZmVyZW5jZVxuICAgICAgLy8gc3RyaW5ncy5cbiAgICAgIGlmIChwb2ludC5fYnVmZmVySW5kZXggPT09IGNodW5rc1twb2ludC5faW5kZXhdLmxlbmd0aCkge1xuICAgICAgICBwb2ludC5fYnVmZmVySW5kZXggPSAtMVxuICAgICAgICBwb2ludC5faW5kZXgrK1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cG9zZSB0aGUgcHJldmlvdXMgY2hhcmFjdGVyLlxuICAgIGNvbnRleHQucHJldmlvdXMgPSBjb2RlXG5cbiAgICAvLyBNYXJrIGFzIGNvbnN1bWVkLlxuICAgIGNvbnN1bWVkID0gdHJ1ZVxuICB9XG5cbiAgLyoqIEB0eXBlIHtFZmZlY3RzWydlbnRlciddfSAqL1xuICBmdW5jdGlvbiBlbnRlcih0eXBlLCBmaWVsZHMpIHtcbiAgICAvKiogQHR5cGUge1Rva2VufSAqL1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUGF0Y2ggaW5zdGVhZCBvZiBhc3NpZ24gcmVxdWlyZWQgZmllbGRzIHRvIGhlbHAgR0MuXG4gICAgY29uc3QgdG9rZW4gPSBmaWVsZHMgfHwge31cbiAgICB0b2tlbi50eXBlID0gdHlwZVxuICAgIHRva2VuLnN0YXJ0ID0gbm93KClcblxuICAgIGFzc2VydCh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycsICdleHBlY3RlZCBzdHJpbmcgdHlwZScpXG4gICAgYXNzZXJ0KHR5cGUubGVuZ3RoID4gMCwgJ2V4cGVjdGVkIG5vbi1lbXB0eSBzdHJpbmcnKVxuICAgIGRlYnVnKCdlbnRlcjogYCVzYCcsIHR5cGUpXG5cbiAgICBjb250ZXh0LmV2ZW50cy5wdXNoKFsnZW50ZXInLCB0b2tlbiwgY29udGV4dF0pXG5cbiAgICBzdGFjay5wdXNoKHRva2VuKVxuXG4gICAgcmV0dXJuIHRva2VuXG4gIH1cblxuICAvKiogQHR5cGUge0VmZmVjdHNbJ2V4aXQnXX0gKi9cbiAgZnVuY3Rpb24gZXhpdCh0eXBlKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJywgJ2V4cGVjdGVkIHN0cmluZyB0eXBlJylcbiAgICBhc3NlcnQodHlwZS5sZW5ndGggPiAwLCAnZXhwZWN0ZWQgbm9uLWVtcHR5IHN0cmluZycpXG5cbiAgICBjb25zdCB0b2tlbiA9IHN0YWNrLnBvcCgpXG4gICAgYXNzZXJ0KHRva2VuLCAnY2Fubm90IGNsb3NlIHcvbyBvcGVuIHRva2VucycpXG4gICAgdG9rZW4uZW5kID0gbm93KClcblxuICAgIGFzc2VydCh0eXBlID09PSB0b2tlbi50eXBlLCAnZXhwZWN0ZWQgZXhpdCB0b2tlbiB0byBtYXRjaCBjdXJyZW50IHRva2VuJylcblxuICAgIGFzc2VydChcbiAgICAgICEoXG4gICAgICAgIHRva2VuLnN0YXJ0Ll9pbmRleCA9PT0gdG9rZW4uZW5kLl9pbmRleCAmJlxuICAgICAgICB0b2tlbi5zdGFydC5fYnVmZmVySW5kZXggPT09IHRva2VuLmVuZC5fYnVmZmVySW5kZXhcbiAgICAgICksXG4gICAgICAnZXhwZWN0ZWQgbm9uLWVtcHR5IHRva2VuIChgJyArIHR5cGUgKyAnYCknXG4gICAgKVxuXG4gICAgZGVidWcoJ2V4aXQ6IGAlc2AnLCB0b2tlbi50eXBlKVxuICAgIGNvbnRleHQuZXZlbnRzLnB1c2goWydleGl0JywgdG9rZW4sIGNvbnRleHRdKVxuXG4gICAgcmV0dXJuIHRva2VuXG4gIH1cblxuICAvKipcbiAgICogVXNlIHJlc3VsdHMuXG4gICAqXG4gICAqIEB0eXBlIHtSZXR1cm5IYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbnN1Y2Nlc3NmdWxjb25zdHJ1Y3QoY29uc3RydWN0LCBpbmZvKSB7XG4gICAgYWRkUmVzdWx0KGNvbnN0cnVjdCwgaW5mby5mcm9tKVxuICB9XG5cbiAgLyoqXG4gICAqIERpc2NhcmQgcmVzdWx0cy5cbiAgICpcbiAgICogQHR5cGUge1JldHVybkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uc3VjY2Vzc2Z1bGNoZWNrKF8sIGluZm8pIHtcbiAgICBpbmZvLnJlc3RvcmUoKVxuICB9XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgdG8gYXR0ZW1wdC9jaGVjay9pbnRlcnJ1cHQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmV0dXJuSGFuZGxlfSBvbnJldHVyblxuICAgKiBAcGFyYW0ge3tpbnRlcnJ1cHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkfSB8IHVuZGVmaW5lZH0gW2ZpZWxkc11cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnN0cnVjdEZhY3Rvcnkob25yZXR1cm4sIGZpZWxkcykge1xuICAgIHJldHVybiBob29rXG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgZWl0aGVyIGFuIG9iamVjdCBtYXBwaW5nIGNvZGVzIHRvIGNvbnN0cnVjdHMsIGEgbGlzdCBvZlxuICAgICAqIGNvbnN0cnVjdHMsIG9yIGEgc2luZ2xlIGNvbnN0cnVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QXJyYXk8Q29uc3RydWN0PiB8IENvbnN0cnVjdCB8IENvbnN0cnVjdFJlY29yZH0gY29uc3RydWN0c1xuICAgICAqIEBwYXJhbSB7U3RhdGV9IHJldHVyblN0YXRlXG4gICAgICogQHBhcmFtIHtTdGF0ZSB8IHVuZGVmaW5lZH0gW2JvZ3VzU3RhdGVdXG4gICAgICogQHJldHVybnMge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhvb2soY29uc3RydWN0cywgcmV0dXJuU3RhdGUsIGJvZ3VzU3RhdGUpIHtcbiAgICAgIC8qKiBAdHlwZSB7QXJyYXk8Q29uc3RydWN0Pn0gKi9cbiAgICAgIGxldCBsaXN0T2ZDb25zdHJ1Y3RzXG4gICAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICAgIGxldCBjb25zdHJ1Y3RJbmRleFxuICAgICAgLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG4gICAgICBsZXQgY3VycmVudENvbnN0cnVjdFxuICAgICAgLyoqIEB0eXBlIHtJbmZvfSAqL1xuICAgICAgbGV0IGluZm9cblxuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY29uc3RydWN0cylcbiAgICAgICAgPyAvKiBjOCBpZ25vcmUgbmV4dCAxICovXG4gICAgICAgICAgaGFuZGxlTGlzdE9mQ29uc3RydWN0cyhjb25zdHJ1Y3RzKVxuICAgICAgICA6ICd0b2tlbml6ZScgaW4gY29uc3RydWN0c1xuICAgICAgICA/IC8vIEB0cy1leHBlY3QtZXJyb3IgTG9va3MgbGlrZSBhIGNvbnN0cnVjdC5cbiAgICAgICAgICBoYW5kbGVMaXN0T2ZDb25zdHJ1Y3RzKFtjb25zdHJ1Y3RzXSlcbiAgICAgICAgOiBoYW5kbGVNYXBPZkNvbnN0cnVjdHMoY29uc3RydWN0cylcblxuICAgICAgLyoqXG4gICAgICAgKiBIYW5kbGUgYSBsaXN0IG9mIGNvbnN0cnVjdC5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge0NvbnN0cnVjdFJlY29yZH0gbWFwXG4gICAgICAgKiBAcmV0dXJucyB7U3RhdGV9XG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZU1hcE9mQ29uc3RydWN0cyhtYXApIHtcbiAgICAgICAgcmV0dXJuIHN0YXJ0XG5cbiAgICAgICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICAgICAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgICAgICAgIGNvbnN0IGRlZiA9IGNvZGUgIT09IG51bGwgJiYgbWFwW2NvZGVdXG4gICAgICAgICAgY29uc3QgYWxsID0gY29kZSAhPT0gbnVsbCAmJiBtYXAubnVsbFxuICAgICAgICAgIGNvbnN0IGxpc3QgPSBbXG4gICAgICAgICAgICAvLyBUbyBkbzogYWRkIG1vcmUgZXh0ZW5zaW9uIHRlc3RzLlxuICAgICAgICAgICAgLyogYzggaWdub3JlIG5leHQgMiAqL1xuICAgICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoZGVmKSA/IGRlZiA6IGRlZiA/IFtkZWZdIDogW10pLFxuICAgICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoYWxsKSA/IGFsbCA6IGFsbCA/IFthbGxdIDogW10pXG4gICAgICAgICAgXVxuXG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUxpc3RPZkNvbnN0cnVjdHMobGlzdCkoY29kZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIEhhbmRsZSBhIGxpc3Qgb2YgY29uc3RydWN0LlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB7QXJyYXk8Q29uc3RydWN0Pn0gbGlzdFxuICAgICAgICogQHJldHVybnMge1N0YXRlfVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBoYW5kbGVMaXN0T2ZDb25zdHJ1Y3RzKGxpc3QpIHtcbiAgICAgICAgbGlzdE9mQ29uc3RydWN0cyA9IGxpc3RcbiAgICAgICAgY29uc3RydWN0SW5kZXggPSAwXG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgYXNzZXJ0KGJvZ3VzU3RhdGUsICdleHBlY3RlZCBgYm9ndXNTdGF0ZWAgdG8gYmUgZ2l2ZW4nKVxuICAgICAgICAgIHJldHVybiBib2d1c1N0YXRlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGFuZGxlQ29uc3RydWN0KGxpc3RbY29uc3RydWN0SW5kZXhdKVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIEhhbmRsZSBhIHNpbmdsZSBjb25zdHJ1Y3QuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtDb25zdHJ1Y3R9IGNvbnN0cnVjdFxuICAgICAgICogQHJldHVybnMge1N0YXRlfVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBoYW5kbGVDb25zdHJ1Y3QoY29uc3RydWN0KSB7XG4gICAgICAgIHJldHVybiBzdGFydFxuXG4gICAgICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgICAgIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAgICAgICAvLyBUbyBkbzogbm90IG5lZWRlZCB0byBzdG9yZSBpZiB0aGVyZSBpcyBubyBib2d1cyBzdGF0ZSwgcHJvYmFibHk/XG4gICAgICAgICAgLy8gQ3VycmVudGx5IGRvZXNu4oCZdCB3b3JrIGJlY2F1c2UgYGluc3BlY3RgIGluIGRvY3VtZW50IGRvZXMgYSBjaGVja1xuICAgICAgICAgIC8vIHcvbyBhIGJvZ3VzLCB3aGljaCBkb2VzbuKAmXQgbWFrZSBzZW5zZS4gQnV0IGl0IGRvZXMgc2VlbSB0byBoZWxwIHBlcmZcbiAgICAgICAgICAvLyBieSBub3Qgc3RvcmluZy5cbiAgICAgICAgICBpbmZvID0gc3RvcmUoKVxuICAgICAgICAgIGN1cnJlbnRDb25zdHJ1Y3QgPSBjb25zdHJ1Y3RcblxuICAgICAgICAgIGlmICghY29uc3RydWN0LnBhcnRpYWwpIHtcbiAgICAgICAgICAgIGNvbnRleHQuY3VycmVudENvbnN0cnVjdCA9IGNvbnN0cnVjdFxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG4gICAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgICAgY29udGV4dC5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwsXG4gICAgICAgICAgICAnZXhwZWN0ZWQgYGRpc2FibGUubnVsbGAgdG8gYmUgcG9wdWxhdGVkJ1xuICAgICAgICAgIClcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbnN0cnVjdC5uYW1lICYmXG4gICAgICAgICAgICBjb250ZXh0LnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcyhjb25zdHJ1Y3QubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBub2soY29kZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29uc3RydWN0LnRva2VuaXplLmNhbGwoXG4gICAgICAgICAgICAvLyBJZiB3ZSBkbyBoYXZlIGZpZWxkcywgY3JlYXRlIGFuIG9iamVjdCB3LyBgY29udGV4dGAgYXMgaXRzXG4gICAgICAgICAgICAvLyBwcm90b3R5cGUuXG4gICAgICAgICAgICAvLyBUaGlzIGFsbG93cyBhIOKAnGxpdmUgYmluZGluZ+KAnSwgd2hpY2ggaXMgbmVlZGVkIGZvciBgaW50ZXJydXB0YC5cbiAgICAgICAgICAgIGZpZWxkcyA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShjb250ZXh0KSwgZmllbGRzKSA6IGNvbnRleHQsXG4gICAgICAgICAgICBlZmZlY3RzLFxuICAgICAgICAgICAgb2ssXG4gICAgICAgICAgICBub2tcbiAgICAgICAgICApKGNvZGUpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICAgIGZ1bmN0aW9uIG9rKGNvZGUpIHtcbiAgICAgICAgYXNzZXJ0KGNvZGUgPT09IGV4cGVjdGVkQ29kZSwgJ2V4cGVjdGVkIGNvZGUnKVxuICAgICAgICBjb25zdW1lZCA9IHRydWVcbiAgICAgICAgb25yZXR1cm4oY3VycmVudENvbnN0cnVjdCwgaW5mbylcbiAgICAgICAgcmV0dXJuIHJldHVyblN0YXRlXG4gICAgICB9XG5cbiAgICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgICBmdW5jdGlvbiBub2soY29kZSkge1xuICAgICAgICBhc3NlcnQoY29kZSA9PT0gZXhwZWN0ZWRDb2RlLCAnZXhwZWN0ZWQgY29kZScpXG4gICAgICAgIGNvbnN1bWVkID0gdHJ1ZVxuICAgICAgICBpbmZvLnJlc3RvcmUoKVxuXG4gICAgICAgIGlmICgrK2NvbnN0cnVjdEluZGV4IDwgbGlzdE9mQ29uc3RydWN0cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlQ29uc3RydWN0KGxpc3RPZkNvbnN0cnVjdHNbY29uc3RydWN0SW5kZXhdKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJvZ3VzU3RhdGVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3R9IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gYWRkUmVzdWx0KGNvbnN0cnVjdCwgZnJvbSkge1xuICAgIGlmIChjb25zdHJ1Y3QucmVzb2x2ZUFsbCAmJiAhcmVzb2x2ZUFsbENvbnN0cnVjdHMuaW5jbHVkZXMoY29uc3RydWN0KSkge1xuICAgICAgcmVzb2x2ZUFsbENvbnN0cnVjdHMucHVzaChjb25zdHJ1Y3QpXG4gICAgfVxuXG4gICAgaWYgKGNvbnN0cnVjdC5yZXNvbHZlKSB7XG4gICAgICBzcGxpY2UoXG4gICAgICAgIGNvbnRleHQuZXZlbnRzLFxuICAgICAgICBmcm9tLFxuICAgICAgICBjb250ZXh0LmV2ZW50cy5sZW5ndGggLSBmcm9tLFxuICAgICAgICBjb25zdHJ1Y3QucmVzb2x2ZShjb250ZXh0LmV2ZW50cy5zbGljZShmcm9tKSwgY29udGV4dClcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoY29uc3RydWN0LnJlc29sdmVUbykge1xuICAgICAgY29udGV4dC5ldmVudHMgPSBjb25zdHJ1Y3QucmVzb2x2ZVRvKGNvbnRleHQuZXZlbnRzLCBjb250ZXh0KVxuICAgIH1cblxuICAgIGFzc2VydChcbiAgICAgIGNvbnN0cnVjdC5wYXJ0aWFsIHx8XG4gICAgICAgIGNvbnRleHQuZXZlbnRzLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICBjb250ZXh0LmV2ZW50c1tjb250ZXh0LmV2ZW50cy5sZW5ndGggLSAxXVswXSA9PT0gJ2V4aXQnLFxuICAgICAgJ2V4cGVjdGVkIGxhc3QgdG9rZW4gdG8gZW5kJ1xuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZSBzdGF0ZS5cbiAgICpcbiAgICogQHJldHVybnMge0luZm99XG4gICAqL1xuICBmdW5jdGlvbiBzdG9yZSgpIHtcbiAgICBjb25zdCBzdGFydFBvaW50ID0gbm93KClcbiAgICBjb25zdCBzdGFydFByZXZpb3VzID0gY29udGV4dC5wcmV2aW91c1xuICAgIGNvbnN0IHN0YXJ0Q3VycmVudENvbnN0cnVjdCA9IGNvbnRleHQuY3VycmVudENvbnN0cnVjdFxuICAgIGNvbnN0IHN0YXJ0RXZlbnRzSW5kZXggPSBjb250ZXh0LmV2ZW50cy5sZW5ndGhcbiAgICBjb25zdCBzdGFydFN0YWNrID0gQXJyYXkuZnJvbShzdGFjaylcblxuICAgIHJldHVybiB7cmVzdG9yZSwgZnJvbTogc3RhcnRFdmVudHNJbmRleH1cblxuICAgIC8qKlxuICAgICAqIFJlc3RvcmUgc3RhdGUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlc3RvcmUoKSB7XG4gICAgICBwb2ludCA9IHN0YXJ0UG9pbnRcbiAgICAgIGNvbnRleHQucHJldmlvdXMgPSBzdGFydFByZXZpb3VzXG4gICAgICBjb250ZXh0LmN1cnJlbnRDb25zdHJ1Y3QgPSBzdGFydEN1cnJlbnRDb25zdHJ1Y3RcbiAgICAgIGNvbnRleHQuZXZlbnRzLmxlbmd0aCA9IHN0YXJ0RXZlbnRzSW5kZXhcbiAgICAgIHN0YWNrID0gc3RhcnRTdGFja1xuICAgICAgYWNjb3VudEZvclBvdGVudGlhbFNraXAoKVxuICAgICAgZGVidWcoJ3Bvc2l0aW9uOiByZXN0b3JlOiBgJWpgJywgcG9pbnQpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgdGhlIGN1cnJlbnQgcG9pbnQgYSBiaXQgZm9yd2FyZCBpbiB0aGUgbGluZSB3aGVuIGl04oCZcyBvbiBhIGNvbHVtblxuICAgKiBza2lwLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gYWNjb3VudEZvclBvdGVudGlhbFNraXAoKSB7XG4gICAgaWYgKHBvaW50LmxpbmUgaW4gY29sdW1uU3RhcnQgJiYgcG9pbnQuY29sdW1uIDwgMikge1xuICAgICAgcG9pbnQuY29sdW1uID0gY29sdW1uU3RhcnRbcG9pbnQubGluZV1cbiAgICAgIHBvaW50Lm9mZnNldCArPSBjb2x1bW5TdGFydFtwb2ludC5saW5lXSAtIDFcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIGNodW5rcyBmcm9tIGEgc2xpY2Ugb2YgY2h1bmtzIGluIHRoZSByYW5nZSBvZiBhIHRva2VuLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8Q2h1bms+fSBjaHVua3NcbiAqIEBwYXJhbSB7UGljazxUb2tlbiwgJ2VuZCcgfCAnc3RhcnQnPn0gdG9rZW5cbiAqIEByZXR1cm5zIHtBcnJheTxDaHVuaz59XG4gKi9cbmZ1bmN0aW9uIHNsaWNlQ2h1bmtzKGNodW5rcywgdG9rZW4pIHtcbiAgY29uc3Qgc3RhcnRJbmRleCA9IHRva2VuLnN0YXJ0Ll9pbmRleFxuICBjb25zdCBzdGFydEJ1ZmZlckluZGV4ID0gdG9rZW4uc3RhcnQuX2J1ZmZlckluZGV4XG4gIGNvbnN0IGVuZEluZGV4ID0gdG9rZW4uZW5kLl9pbmRleFxuICBjb25zdCBlbmRCdWZmZXJJbmRleCA9IHRva2VuLmVuZC5fYnVmZmVySW5kZXhcbiAgLyoqIEB0eXBlIHtBcnJheTxDaHVuaz59ICovXG4gIGxldCB2aWV3XG5cbiAgaWYgKHN0YXJ0SW5kZXggPT09IGVuZEluZGV4KSB7XG4gICAgYXNzZXJ0KGVuZEJ1ZmZlckluZGV4ID4gLTEsICdleHBlY3RlZCBub24tbmVnYXRpdmUgZW5kIGJ1ZmZlciBpbmRleCcpXG4gICAgYXNzZXJ0KHN0YXJ0QnVmZmVySW5kZXggPiAtMSwgJ2V4cGVjdGVkIG5vbi1uZWdhdGl2ZSBzdGFydCBidWZmZXIgaW5kZXgnKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgYF9idWZmZXJJbmRleGAgaXMgdXNlZCBvbiBzdHJpbmcgY2h1bmtzLlxuICAgIHZpZXcgPSBbY2h1bmtzW3N0YXJ0SW5kZXhdLnNsaWNlKHN0YXJ0QnVmZmVySW5kZXgsIGVuZEJ1ZmZlckluZGV4KV1cbiAgfSBlbHNlIHtcbiAgICB2aWV3ID0gY2h1bmtzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuXG4gICAgaWYgKHN0YXJ0QnVmZmVySW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgaGVhZCA9IHZpZXdbMF1cbiAgICAgIGlmICh0eXBlb2YgaGVhZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdmlld1swXSA9IGhlYWQuc2xpY2Uoc3RhcnRCdWZmZXJJbmRleClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChzdGFydEJ1ZmZlckluZGV4ID09PSAwLCAnZXhwZWN0ZWQgYHN0YXJ0QnVmZmVySW5kZXhgIHRvIGJlIGAwYCcpXG4gICAgICAgIHZpZXcuc2hpZnQoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlbmRCdWZmZXJJbmRleCA+IDApIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgYF9idWZmZXJJbmRleGAgaXMgdXNlZCBvbiBzdHJpbmcgY2h1bmtzLlxuICAgICAgdmlldy5wdXNoKGNodW5rc1tlbmRJbmRleF0uc2xpY2UoMCwgZW5kQnVmZmVySW5kZXgpKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2aWV3XG59XG5cbi8qKlxuICogR2V0IHRoZSBzdHJpbmcgdmFsdWUgb2YgYSBzbGljZSBvZiBjaHVua3MuXG4gKlxuICogQHBhcmFtIHtBcnJheTxDaHVuaz59IGNodW5rc1xuICogQHBhcmFtIHtib29sZWFuIHwgdW5kZWZpbmVkfSBbZXhwYW5kVGFicz1mYWxzZV1cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZUNodW5rcyhjaHVua3MsIGV4cGFuZFRhYnMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbXVxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBhdFRhYlxuXG4gIHdoaWxlICgrK2luZGV4IDwgY2h1bmtzLmxlbmd0aCkge1xuICAgIGNvbnN0IGNodW5rID0gY2h1bmtzW2luZGV4XVxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCB2YWx1ZVxuXG4gICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhbHVlID0gY2h1bmtcbiAgICB9IGVsc2VcbiAgICAgIHN3aXRjaCAoY2h1bmspIHtcbiAgICAgICAgY2FzZSBjb2Rlcy5jYXJyaWFnZVJldHVybjoge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVzLmNyXG5cbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBjb2Rlcy5saW5lRmVlZDoge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVzLmxmXG5cbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBjb2Rlcy5jYXJyaWFnZVJldHVybkxpbmVGZWVkOiB7XG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZXMuY3IgKyB2YWx1ZXMubGZcblxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIGNvZGVzLmhvcml6b250YWxUYWI6IHtcbiAgICAgICAgICB2YWx1ZSA9IGV4cGFuZFRhYnMgPyB2YWx1ZXMuc3BhY2UgOiB2YWx1ZXMuaHRcblxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIGNvZGVzLnZpcnR1YWxTcGFjZToge1xuICAgICAgICAgIGlmICghZXhwYW5kVGFicyAmJiBhdFRhYikgY29udGludWVcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlcy5zcGFjZVxuXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBhc3NlcnQodHlwZW9mIGNodW5rID09PSAnbnVtYmVyJywgJ2V4cGVjdGVkIG51bWJlcicpXG4gICAgICAgICAgLy8gQ3VycmVudGx5IG9ubHkgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLlxuICAgICAgICAgIHZhbHVlID0gU3RyaW5nLmZyb21DaGFyQ29kZShjaHVuaylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgYXRUYWIgPSBjaHVuayA9PT0gY29kZXMuaG9yaXpvbnRhbFRhYlxuICAgIHJlc3VsdC5wdXNoKHZhbHVlKVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZURlYnVnIiwibWFya2Rvd25MaW5lRW5kaW5nIiwicHVzaCIsInNwbGljZSIsInJlc29sdmVBbGwiLCJjb2RlcyIsInZhbHVlcyIsIm9rIiwiYXNzZXJ0IiwiZGVidWciLCJjcmVhdGVUb2tlbml6ZXIiLCJwYXJzZXIiLCJpbml0aWFsaXplIiwiZnJvbSIsInBvaW50IiwiT2JqZWN0IiwiYXNzaWduIiwibGluZSIsImNvbHVtbiIsIm9mZnNldCIsIl9pbmRleCIsIl9idWZmZXJJbmRleCIsImNvbHVtblN0YXJ0IiwicmVzb2x2ZUFsbENvbnN0cnVjdHMiLCJjaHVua3MiLCJzdGFjayIsImNvbnN1bWVkIiwiZWZmZWN0cyIsImNvbnN1bWUiLCJlbnRlciIsImV4aXQiLCJhdHRlbXB0IiwiY29uc3RydWN0RmFjdG9yeSIsIm9uc3VjY2Vzc2Z1bGNvbnN0cnVjdCIsImNoZWNrIiwib25zdWNjZXNzZnVsY2hlY2siLCJpbnRlcnJ1cHQiLCJjb250ZXh0IiwicHJldmlvdXMiLCJlb2YiLCJjb2RlIiwiY29udGFpbmVyU3RhdGUiLCJldmVudHMiLCJzbGljZVN0cmVhbSIsInNsaWNlU2VyaWFsaXplIiwibm93IiwiZGVmaW5lU2tpcCIsIndyaXRlIiwic3RhdGUiLCJ0b2tlbml6ZSIsImNhbGwiLCJleHBlY3RlZENvZGUiLCJzbGljZSIsIm1haW4iLCJsZW5ndGgiLCJhZGRSZXN1bHQiLCJ0b2tlbiIsImV4cGFuZFRhYnMiLCJzZXJpYWxpemVDaHVua3MiLCJzbGljZUNodW5rcyIsInZhbHVlIiwiYWNjb3VudEZvclBvdGVudGlhbFNraXAiLCJjaHVua0luZGV4IiwiY2h1bmsiLCJnbyIsImNoYXJDb2RlQXQiLCJ1bmRlZmluZWQiLCJuYW1lIiwiY2FycmlhZ2VSZXR1cm5MaW5lRmVlZCIsInZpcnR1YWxTcGFjZSIsInR5cGUiLCJmaWVsZHMiLCJzdGFydCIsInBvcCIsImVuZCIsImNvbnN0cnVjdCIsImluZm8iLCJfIiwicmVzdG9yZSIsIm9ucmV0dXJuIiwiaG9vayIsImNvbnN0cnVjdHMiLCJyZXR1cm5TdGF0ZSIsImJvZ3VzU3RhdGUiLCJsaXN0T2ZDb25zdHJ1Y3RzIiwiY29uc3RydWN0SW5kZXgiLCJjdXJyZW50Q29uc3RydWN0IiwiQXJyYXkiLCJpc0FycmF5IiwiaGFuZGxlTGlzdE9mQ29uc3RydWN0cyIsImhhbmRsZU1hcE9mQ29uc3RydWN0cyIsIm1hcCIsImRlZiIsImFsbCIsIm51bGwiLCJsaXN0IiwiaGFuZGxlQ29uc3RydWN0Iiwic3RvcmUiLCJwYXJ0aWFsIiwiZGlzYWJsZSIsImluY2x1ZGVzIiwibm9rIiwiY3JlYXRlIiwicmVzb2x2ZSIsInJlc29sdmVUbyIsInN0YXJ0UG9pbnQiLCJzdGFydFByZXZpb3VzIiwic3RhcnRDdXJyZW50Q29uc3RydWN0Iiwic3RhcnRFdmVudHNJbmRleCIsInN0YXJ0U3RhY2siLCJzdGFydEluZGV4Iiwic3RhcnRCdWZmZXJJbmRleCIsImVuZEluZGV4IiwiZW5kQnVmZmVySW5kZXgiLCJ2aWV3IiwiaGVhZCIsInNoaWZ0IiwiaW5kZXgiLCJyZXN1bHQiLCJhdFRhYiIsImNhcnJpYWdlUmV0dXJuIiwiY3IiLCJsaW5lRmVlZCIsImxmIiwiaG9yaXpvbnRhbFRhYiIsInNwYWNlIiwiaHQiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJqb2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/create-tokenizer.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/initialize/content.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/initialize/content.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ content: () => (/* binding */ content)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */ \n\n\n\n/** @type {InitialConstruct} */ const content = {\n tokenize: initializeContent\n};\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */ function initializeContent(effects) {\n const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n /** @type {Token} */ let previous;\n return contentStart;\n /** @type {State} */ function afterContentStartConstruct(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code), \"expected eol or eof\");\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n effects.consume(code);\n return;\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding);\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, contentStart, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.linePrefix);\n }\n /** @type {State} */ function paragraphInitial(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code), \"expected anything other than a line ending or EOF\");\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.paragraph);\n return lineStart(code);\n }\n /** @type {State} */ function lineStart(code) {\n const token = effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.chunkText, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeText,\n previous\n });\n if (previous) {\n previous.next = token;\n }\n previous = token;\n return data(code);\n }\n /** @type {State} */ function data(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.chunkText);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.paragraph);\n effects.consume(code);\n return;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.chunkText);\n return lineStart;\n }\n // Data.\n effects.consume(code);\n return data;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL2luaXRpYWxpemUvY29udGVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7OztDQU1DLEdBRW1EO0FBQ087QUFDRTtBQUMxQjtBQUVuQyw2QkFBNkIsR0FDdEIsTUFBTU8sVUFBVTtJQUFDQyxVQUFVQztBQUFpQixFQUFDO0FBRXBEOzs7Q0FHQyxHQUNELFNBQVNBLGtCQUFrQkMsT0FBTztJQUNoQyxNQUFNQyxlQUFlRCxRQUFRRSxPQUFPLENBQ2xDLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxVQUFVLENBQUNDLGNBQWMsRUFDckNDLDRCQUNBQztJQUVGLGtCQUFrQixHQUNsQixJQUFJQztJQUVKLE9BQU9QO0lBRVAsa0JBQWtCLEdBQ2xCLFNBQVNLLDJCQUEyQkcsSUFBSTtRQUN0Q2IsMENBQU1BLENBQ0phLFNBQVNqQix3REFBS0EsQ0FBQ2tCLEdBQUcsSUFBSW5CLDRFQUFrQkEsQ0FBQ2tCLE9BQ3pDO1FBR0YsSUFBSUEsU0FBU2pCLHdEQUFLQSxDQUFDa0IsR0FBRyxFQUFFO1lBQ3RCVixRQUFRVyxPQUFPLENBQUNGO1lBQ2hCO1FBQ0Y7UUFFQVQsUUFBUVksS0FBSyxDQUFDbEIsd0RBQUtBLENBQUNtQixVQUFVO1FBQzlCYixRQUFRVyxPQUFPLENBQUNGO1FBQ2hCVCxRQUFRYyxJQUFJLENBQUNwQix3REFBS0EsQ0FBQ21CLFVBQVU7UUFDN0IsT0FBT3ZCLHFFQUFZQSxDQUFDVSxTQUFTQyxjQUFjUCx3REFBS0EsQ0FBQ3FCLFVBQVU7SUFDN0Q7SUFFQSxrQkFBa0IsR0FDbEIsU0FBU1IsaUJBQWlCRSxJQUFJO1FBQzVCYiwwQ0FBTUEsQ0FDSmEsU0FBU2pCLHdEQUFLQSxDQUFDa0IsR0FBRyxJQUFJLENBQUNuQiw0RUFBa0JBLENBQUNrQixPQUMxQztRQUVGVCxRQUFRWSxLQUFLLENBQUNsQix3REFBS0EsQ0FBQ3NCLFNBQVM7UUFDN0IsT0FBT0MsVUFBVVI7SUFDbkI7SUFFQSxrQkFBa0IsR0FDbEIsU0FBU1EsVUFBVVIsSUFBSTtRQUNyQixNQUFNUyxRQUFRbEIsUUFBUVksS0FBSyxDQUFDbEIsd0RBQUtBLENBQUN5QixTQUFTLEVBQUU7WUFDM0NDLGFBQWEzQiw0REFBU0EsQ0FBQzRCLGVBQWU7WUFDdENiO1FBQ0Y7UUFFQSxJQUFJQSxVQUFVO1lBQ1pBLFNBQVNjLElBQUksR0FBR0o7UUFDbEI7UUFFQVYsV0FBV1U7UUFFWCxPQUFPSyxLQUFLZDtJQUNkO0lBRUEsa0JBQWtCLEdBQ2xCLFNBQVNjLEtBQUtkLElBQUk7UUFDaEIsSUFBSUEsU0FBU2pCLHdEQUFLQSxDQUFDa0IsR0FBRyxFQUFFO1lBQ3RCVixRQUFRYyxJQUFJLENBQUNwQix3REFBS0EsQ0FBQ3lCLFNBQVM7WUFDNUJuQixRQUFRYyxJQUFJLENBQUNwQix3REFBS0EsQ0FBQ3NCLFNBQVM7WUFDNUJoQixRQUFRVyxPQUFPLENBQUNGO1lBQ2hCO1FBQ0Y7UUFFQSxJQUFJbEIsNEVBQWtCQSxDQUFDa0IsT0FBTztZQUM1QlQsUUFBUVcsT0FBTyxDQUFDRjtZQUNoQlQsUUFBUWMsSUFBSSxDQUFDcEIsd0RBQUtBLENBQUN5QixTQUFTO1lBQzVCLE9BQU9GO1FBQ1Q7UUFFQSxRQUFRO1FBQ1JqQixRQUFRVyxPQUFPLENBQUNGO1FBQ2hCLE9BQU9jO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL2luaXRpYWxpemUvY29udGVudC5qcz8zZTJkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Jbml0aWFsQ29uc3RydWN0fSBJbml0aWFsQ29uc3RydWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkluaXRpYWxpemVyfSBJbml0aWFsaXplclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW59IFRva2VuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKi9cblxuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmd9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7SW5pdGlhbENvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBjb250ZW50ID0ge3Rva2VuaXplOiBpbml0aWFsaXplQ29udGVudH1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge0luaXRpYWxpemVyfVxuICovXG5mdW5jdGlvbiBpbml0aWFsaXplQ29udGVudChlZmZlY3RzKSB7XG4gIGNvbnN0IGNvbnRlbnRTdGFydCA9IGVmZmVjdHMuYXR0ZW1wdChcbiAgICB0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmNvbnRlbnRJbml0aWFsLFxuICAgIGFmdGVyQ29udGVudFN0YXJ0Q29uc3RydWN0LFxuICAgIHBhcmFncmFwaEluaXRpYWxcbiAgKVxuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgcHJldmlvdXNcblxuICByZXR1cm4gY29udGVudFN0YXJ0XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYWZ0ZXJDb250ZW50U3RhcnRDb25zdHJ1Y3QoY29kZSkge1xuICAgIGFzc2VydChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSksXG4gICAgICAnZXhwZWN0ZWQgZW9sIG9yIGVvZidcbiAgICApXG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMubGluZUVuZGluZylcbiAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGNvbnRlbnRTdGFydCwgdHlwZXMubGluZVByZWZpeClcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHBhcmFncmFwaEluaXRpYWwoY29kZSkge1xuICAgIGFzc2VydChcbiAgICAgIGNvZGUgIT09IGNvZGVzLmVvZiAmJiAhbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpLFxuICAgICAgJ2V4cGVjdGVkIGFueXRoaW5nIG90aGVyIHRoYW4gYSBsaW5lIGVuZGluZyBvciBFT0YnXG4gICAgKVxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMucGFyYWdyYXBoKVxuICAgIHJldHVybiBsaW5lU3RhcnQoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGxpbmVTdGFydChjb2RlKSB7XG4gICAgY29uc3QgdG9rZW4gPSBlZmZlY3RzLmVudGVyKHR5cGVzLmNodW5rVGV4dCwge1xuICAgICAgY29udGVudFR5cGU6IGNvbnN0YW50cy5jb250ZW50VHlwZVRleHQsXG4gICAgICBwcmV2aW91c1xuICAgIH0pXG5cbiAgICBpZiAocHJldmlvdXMpIHtcbiAgICAgIHByZXZpb3VzLm5leHQgPSB0b2tlblxuICAgIH1cblxuICAgIHByZXZpb3VzID0gdG9rZW5cblxuICAgIHJldHVybiBkYXRhKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBkYXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY2h1bmtUZXh0KVxuICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLnBhcmFncmFwaClcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQodHlwZXMuY2h1bmtUZXh0KVxuICAgICAgcmV0dXJuIGxpbmVTdGFydFxuICAgIH1cblxuICAgIC8vIERhdGEuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZhY3RvcnlTcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsImNvZGVzIiwiY29uc3RhbnRzIiwidHlwZXMiLCJvayIsImFzc2VydCIsImNvbnRlbnQiLCJ0b2tlbml6ZSIsImluaXRpYWxpemVDb250ZW50IiwiZWZmZWN0cyIsImNvbnRlbnRTdGFydCIsImF0dGVtcHQiLCJwYXJzZXIiLCJjb25zdHJ1Y3RzIiwiY29udGVudEluaXRpYWwiLCJhZnRlckNvbnRlbnRTdGFydENvbnN0cnVjdCIsInBhcmFncmFwaEluaXRpYWwiLCJwcmV2aW91cyIsImNvZGUiLCJlb2YiLCJjb25zdW1lIiwiZW50ZXIiLCJsaW5lRW5kaW5nIiwiZXhpdCIsImxpbmVQcmVmaXgiLCJwYXJhZ3JhcGgiLCJsaW5lU3RhcnQiLCJ0b2tlbiIsImNodW5rVGV4dCIsImNvbnRlbnRUeXBlIiwiY29udGVudFR5cGVUZXh0IiwibmV4dCIsImRhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/initialize/content.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/initialize/document.js":
-/*!*******************************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/initialize/document.js ***!
- \*******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ document: () => (/* binding */ document)\n/* harmony export */ });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ \"(ssr)/../../node_modules/micromark-util-chunked/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */ /**\n * @typedef {[Construct, ContainerState]} StackItem\n */ \n\n\n\n\n/** @type {InitialConstruct} */ const document = {\n tokenize: initializeDocument\n};\n/** @type {Construct} */ const containerConstruct = {\n tokenize: tokenizeContainer\n};\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */ function initializeDocument(effects) {\n const self = this;\n /** @type {Array<StackItem>} */ const stack = [];\n let continued = 0;\n /** @type {TokenizeContext | undefined} */ let childFlow;\n /** @type {Token | undefined} */ let childToken;\n /** @type {number} */ let lineStartOffset;\n return start;\n /** @type {State} */ function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued];\n self.containerState = item[1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(item[0].continuation, \"expected `continuation` to be defined on container construct\");\n return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);\n }\n // Done.\n return checkNewContainers(code);\n }\n /** @type {State} */ function documentContinue(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, \"expected `containerState` to be defined after continuation\");\n continued++;\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined;\n if (childFlow) {\n closeFlow();\n }\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {Point | undefined} */ let point;\n // Find the flow chunk.\n while(indexBeforeFlow--){\n if (self.events[indexBeforeFlow][0] === \"exit\" && self.events[indexBeforeFlow][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow) {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(point, \"could not find previous flow chunk\");\n exitContainers(continued);\n // Fix positions.\n let index = indexBeforeExits;\n while(index < self.events.length){\n self.events[index][1].end = Object.assign({}, point);\n index++;\n }\n // Inject the exits earlier (they’re still also at the end).\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n // Discard the duplicate exits.\n self.events.length = index;\n return checkNewContainers(code);\n }\n return start(code);\n }\n /** @type {State} */ function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code);\n }\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code);\n }\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in [email protected]).\n self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);\n }\n // Check if there is a new container.\n self.containerState = {};\n return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);\n }\n /** @type {State} */ function thereIsANewContainer(code) {\n if (childFlow) closeFlow();\n exitContainers(continued);\n return documentContinued(code);\n }\n /** @type {State} */ function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length;\n lineStartOffset = self.now().offset;\n return flowStart(code);\n }\n /** @type {State} */ function documentContinued(code) {\n // Try new containers.\n self.containerState = {};\n return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n }\n /** @type {State} */ function containerContinue(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(self.currentConstruct, \"expected `currentConstruct` to be defined on tokenizer\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, \"expected `containerState` to be defined on tokenizer\");\n continued++;\n stack.push([\n self.currentConstruct,\n self.containerState\n ]);\n // Try another.\n return documentContinued(code);\n }\n /** @type {State} */ function flowStart(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {\n if (childFlow) closeFlow();\n exitContainers(0);\n effects.consume(code);\n return;\n }\n childFlow = childFlow || self.parser.flow(self.now());\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow, {\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.contentTypeFlow,\n previous: childToken,\n _tokenizer: childFlow\n });\n return flowContinue(code);\n }\n /** @type {State} */ function flowContinue(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {\n writeToChild(effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow), true);\n exitContainers(0);\n effects.consume(code);\n return;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {\n effects.consume(code);\n writeToChild(effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow));\n // Get ready for the next line.\n continued = 0;\n self.interrupt = undefined;\n return start;\n }\n effects.consume(code);\n return flowContinue;\n }\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {undefined}\n */ function writeToChild(token, eof) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, \"expected `childFlow` to be defined when continuing\");\n const stream = self.sliceStream(token);\n if (eof) stream.push(null);\n token.previous = childToken;\n if (childToken) childToken.next = token;\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while(index--){\n if (// The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return;\n }\n }\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {boolean | undefined} */ let seen;\n /** @type {Point | undefined} */ let point;\n // Find the previous chunk (the one before the lazy line).\n while(indexBeforeFlow--){\n if (self.events[indexBeforeFlow][0] === \"exit\" && self.events[indexBeforeFlow][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(point, \"could not find previous flow chunk\");\n exitContainers(continued);\n // Fix positions.\n index = indexBeforeExits;\n while(index < self.events.length){\n self.events[index][1].end = Object.assign({}, point);\n index++;\n }\n // Inject the exits earlier (they’re still also at the end).\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n // Discard the duplicate exits.\n self.events.length = index;\n }\n }\n /**\n * @param {number} size\n * @returns {undefined}\n */ function exitContainers(size) {\n let index = stack.length;\n // Exit open containers.\n while(index-- > size){\n const entry = stack[index];\n self.containerState = entry[1];\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(entry[0].exit, \"expected `exit` to be defined on container construct\");\n entry[0].exit.call(self, effects);\n }\n stack.length = size;\n }\n function closeFlow() {\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, \"expected `containerState` to be defined when closing flow\");\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, \"expected `childFlow` to be defined when closing it\");\n childFlow.write([\n micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.codes.eof\n ]);\n childToken = undefined;\n childFlow = undefined;\n self.containerState._closeFlow = undefined;\n }\n}\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */ function tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(this.parser.constructs.disable.null, \"expected `disable.null` to be populated\");\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, effects.attempt(this.parser.constructs.document, ok, nok), micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix, this.parser.constructs.disable.null.includes(\"codeIndented\") ? undefined : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL2luaXRpYWxpemUvZG9jdW1lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7OztDQVVDLEdBRUQ7O0NBRUMsR0FFbUQ7QUFDTztBQUNkO0FBQ2dCO0FBQzFCO0FBRW5DLDZCQUE2QixHQUN0QixNQUFNUSxXQUFXO0lBQUNDLFVBQVVDO0FBQWtCLEVBQUM7QUFFdEQsc0JBQXNCLEdBQ3RCLE1BQU1DLHFCQUFxQjtJQUFDRixVQUFVRztBQUFpQjtBQUV2RDs7O0NBR0MsR0FDRCxTQUFTRixtQkFBbUJHLE9BQU87SUFDakMsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLDZCQUE2QixHQUM3QixNQUFNQyxRQUFRLEVBQUU7SUFDaEIsSUFBSUMsWUFBWTtJQUNoQix3Q0FBd0MsR0FDeEMsSUFBSUM7SUFDSiw4QkFBOEIsR0FDOUIsSUFBSUM7SUFDSixtQkFBbUIsR0FDbkIsSUFBSUM7SUFFSixPQUFPQztJQUVQLGtCQUFrQixHQUNsQixTQUFTQSxNQUFNQyxJQUFJO1FBQ2pCLG1FQUFtRTtRQUNuRSx1RUFBdUU7UUFDdkUsU0FBUztRQUNULDRFQUE0RTtRQUM1RSxrQkFBa0I7UUFDbEIsdURBQXVEO1FBQ3ZELHlDQUF5QztRQUN6QyxrRUFBa0U7UUFDbEUsdUVBQXVFO1FBQ3ZFLHFCQUFxQjtRQUNyQixJQUFJTCxZQUFZRCxNQUFNTyxNQUFNLEVBQUU7WUFDNUIsTUFBTUMsT0FBT1IsS0FBSyxDQUFDQyxVQUFVO1lBQzdCRixLQUFLVSxjQUFjLEdBQUdELElBQUksQ0FBQyxFQUFFO1lBQzdCaEIsMENBQU1BLENBQ0pnQixJQUFJLENBQUMsRUFBRSxDQUFDRSxZQUFZLEVBQ3BCO1lBRUYsT0FBT1osUUFBUWEsT0FBTyxDQUNwQkgsSUFBSSxDQUFDLEVBQUUsQ0FBQ0UsWUFBWSxFQUNwQkUsa0JBQ0FDLG9CQUNBUDtRQUNKO1FBRUEsUUFBUTtRQUNSLE9BQU9PLG1CQUFtQlA7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VSxHQUFHQztJQUNuQztBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2xCLGtCQUFrQkMsT0FBTyxFQUFFUCxFQUFFLEVBQUU0RSxHQUFHO0lBQ3pDLGdDQUFnQztJQUNoQzNFLDBDQUFNQSxDQUNKLElBQUksQ0FBQytDLE1BQU0sQ0FBQzZCLFVBQVUsQ0FBQ0MsT0FBTyxDQUFDQyxJQUFJLEVBQ25DO0lBRUYsT0FBT3JGLHFFQUFZQSxDQUNqQmEsU0FDQUEsUUFBUWEsT0FBTyxDQUFDLElBQUksQ0FBQzRCLE1BQU0sQ0FBQzZCLFVBQVUsQ0FBQzNFLFFBQVEsRUFBRUYsSUFBSTRFLE1BQ3JEN0Usd0RBQUtBLENBQUNpRixVQUFVLEVBQ2hCLElBQUksQ0FBQ2hDLE1BQU0sQ0FBQzZCLFVBQVUsQ0FBQ0MsT0FBTyxDQUFDQyxJQUFJLENBQUNFLFFBQVEsQ0FBQyxrQkFDekN6RCxZQUNBMUIsNERBQVNBLENBQUNvRixPQUFPO0FBRXpCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrL2Rldi9saWIvaW5pdGlhbGl6ZS9kb2N1bWVudC5qcz9mNjU2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db25zdHJ1Y3R9IENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db250YWluZXJTdGF0ZX0gQ29udGFpbmVyU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSW5pdGlhbENvbnN0cnVjdH0gSW5pdGlhbENvbnN0cnVjdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Jbml0aWFsaXplcn0gSW5pdGlhbGl6ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbn0gVG9rZW5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVyfSBUb2tlbml6ZXJcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtbQ29uc3RydWN0LCBDb250YWluZXJTdGF0ZV19IFN0YWNrSXRlbVxuICovXG5cbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7bWFya2Rvd25MaW5lRW5kaW5nfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge3NwbGljZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2h1bmtlZCdcbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50cywgdHlwZXN9IGZyb20gJ21pY3JvbWFyay11dGlsLXN5bWJvbCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5cbi8qKiBAdHlwZSB7SW5pdGlhbENvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBkb2N1bWVudCA9IHt0b2tlbml6ZTogaW5pdGlhbGl6ZURvY3VtZW50fVxuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IGNvbnRhaW5lckNvbnN0cnVjdCA9IHt0b2tlbml6ZTogdG9rZW5pemVDb250YWluZXJ9XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtJbml0aWFsaXplcn1cbiAqL1xuZnVuY3Rpb24gaW5pdGlhbGl6ZURvY3VtZW50KGVmZmVjdHMpIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgLyoqIEB0eXBlIHtBcnJheTxTdGFja0l0ZW0+fSAqL1xuICBjb25zdCBzdGFjayA9IFtdXG4gIGxldCBjb250aW51ZWQgPSAwXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0IHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY2hpbGRGbG93XG4gIC8qKiBAdHlwZSB7VG9rZW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBjaGlsZFRva2VuXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgbGluZVN0YXJ0T2Zmc2V0XG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIC8vIEZpcnN0IHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgb3BlbiBibG9ja3MsIHN0YXJ0aW5nIHdpdGggdGhlIHJvb3RcbiAgICAvLyBkb2N1bWVudCwgYW5kIGRlc2NlbmRpbmcgdGhyb3VnaCBsYXN0IGNoaWxkcmVuIGRvd24gdG8gdGhlIGxhc3Qgb3BlblxuICAgIC8vIGJsb2NrLlxuICAgIC8vIEVhY2ggYmxvY2sgaW1wb3NlcyBhIGNvbmRpdGlvbiB0aGF0IHRoZSBsaW5lIG11c3Qgc2F0aXNmeSBpZiB0aGUgYmxvY2sgaXNcbiAgICAvLyB0byByZW1haW4gb3Blbi5cbiAgICAvLyBGb3IgZXhhbXBsZSwgYSBibG9jayBxdW90ZSByZXF1aXJlcyBhIGA+YCBjaGFyYWN0ZXIuXG4gICAgLy8gQSBwYXJhZ3JhcGggcmVxdWlyZXMgYSBub24tYmxhbmsgbGluZS5cbiAgICAvLyBJbiB0aGlzIHBoYXNlIHdlIG1heSBtYXRjaCBhbGwgb3IganVzdCBzb21lIG9mIHRoZSBvcGVuIGJsb2Nrcy5cbiAgICAvLyBCdXQgd2UgY2Fubm90IGNsb3NlIHVubWF0Y2hlZCBibG9ja3MgeWV0LCBiZWNhdXNlIHdlIG1heSBoYXZlIGEgbGF6eVxuICAgIC8vIGNvbnRpbnVhdGlvbiBsaW5lLlxuICAgIGlmIChjb250aW51ZWQgPCBzdGFjay5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBzdGFja1tjb250aW51ZWRdXG4gICAgICBzZWxmLmNvbnRhaW5lclN0YXRlID0gaXRlbVsxXVxuICAgICAgYXNzZXJ0KFxuICAgICAgICBpdGVtWzBdLmNvbnRpbnVhdGlvbixcbiAgICAgICAgJ2V4cGVjdGVkIGBjb250aW51YXRpb25gIHRvIGJlIGRlZmluZWQgb24gY29udGFpbmVyIGNvbnN0cnVjdCdcbiAgICAgIClcbiAgICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoXG4gICAgICAgIGl0ZW1bMF0uY29udGludWF0aW9uLFxuICAgICAgICBkb2N1bWVudENvbnRpbnVlLFxuICAgICAgICBjaGVja05ld0NvbnRhaW5lcnNcbiAgICAgICkoY29kZSlcbiAgICB9XG5cbiAgICAvLyBEb25lLlxuICAgIHJldHVybiBjaGVja05ld0NvbnRhaW5lcnMoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGRvY3VtZW50Q29udGludWUoY29kZSkge1xuICAgIGFzc2VydChcbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUsXG4gICAgICAnZXhwZWN0ZWQgYGNvbnRhaW5lclN0YXRlYCB0byBiZSBkZWZpbmVkIGFmdGVyIGNvbnRpbnVhdGlvbidcbiAgICApXG5cbiAgICBjb250aW51ZWQrK1xuXG4gICAgLy8gTm90ZTogdGhpcyBmaWVsZCBpcyBjYWxsZWQgYF9jbG9zZUZsb3dgIGJ1dCBpdCBhbHNvIGNsb3NlcyBjb250YWluZXJzLlxuICAgIC8vIFBlcmhhcHMgYSBnb29kIGlkZWEgdG8gcmVuYW1lIGl0IGJ1dCBpdOKAmXMgYWxyZWFkeSB1c2VkIGluIHRoZSB3aWxkIGJ5XG4gICAgLy8gZXh0ZW5zaW9ucy5cbiAgICBpZiAoc2VsZi5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93KSB7XG4gICAgICBzZWxmLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cgPSB1bmRlZmluZWRcblxuICAgICAgaWYgKGNoaWxkRmxvdykge1xuICAgICAgICBjbG9zZUZsb3coKVxuICAgICAgfVxuXG4gICAgICAvLyBOb3RlOiB0aGlzIGFsZ29yaXRobSBmb3IgbW92aW5nIGV2ZW50cyBhcm91bmQgaXMgc2ltaWxhciB0byB0aGVcbiAgICAgIC8vIGFsZ29yaXRobSB3aGVuIGRlYWxpbmcgd2l0aCBsYXp5IGxpbmVzIGluIGB3cml0ZVRvQ2hpbGRgLlxuICAgICAgY29uc3QgaW5kZXhCZWZvcmVFeGl0cyA9IHNlbGYuZXZlbnRzLmxlbmd0aFxuICAgICAgbGV0IGluZGV4QmVmb3JlRmxvdyA9IGluZGV4QmVmb3JlRXhpdHNcbiAgICAgIC8qKiBAdHlwZSB7UG9pbnQgfCB1bmRlZmluZWR9ICovXG4gICAgICBsZXQgcG9pbnRcblxuICAgICAgLy8gRmluZCB0aGUgZmxvdyBjaHVuay5cbiAgICAgIHdoaWxlIChpbmRleEJlZm9yZUZsb3ctLSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhCZWZvcmVGbG93XVswXSA9PT0gJ2V4aXQnICYmXG4gICAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhCZWZvcmVGbG93XVsxXS50eXBlID09PSB0eXBlcy5jaHVua0Zsb3dcbiAgICAgICAgKSB7XG4gICAgICAgICAgcG9pbnQgPSBzZWxmLmV2ZW50c1tpbmRleEJlZm9yZUZsb3ddWzFdLmVuZFxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXNzZXJ0KHBvaW50LCAnY291bGQgbm90IGZpbmQgcHJldmlvdXMgZmxvdyBjaHVuaycpXG5cbiAgICAgIGV4aXRDb250YWluZXJzKGNvbnRpbnVlZClcblxuICAgICAgLy8gRml4IHBvc2l0aW9ucy5cbiAgICAgIGxldCBpbmRleCA9IGluZGV4QmVmb3JlRXhpdHNcblxuICAgICAgd2hpbGUgKGluZGV4IDwgc2VsZi5ldmVudHMubGVuZ3RoKSB7XG4gICAgICAgIHNlbGYuZXZlbnRzW2luZGV4XVsxXS5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCBwb2ludClcbiAgICAgICAgaW5kZXgrK1xuICAgICAgfVxuXG4gICAgICAvLyBJbmplY3QgdGhlIGV4aXRzIGVhcmxpZXIgKHRoZXnigJlyZSBzdGlsbCBhbHNvIGF0IHRoZSBlbmQpLlxuICAgICAgc3BsaWNlKFxuICAgICAgICBzZWxmLmV2ZW50cyxcbiAgICAgICAgaW5kZXhCZWZvcmVGbG93ICsgMSxcbiAgICAgICAgMCxcbiAgICAgICAgc2VsZi5ldmVudHMuc2xpY2UoaW5kZXhCZWZvcmVFeGl0cylcbiAgICAgIClcblxuICAgICAgLy8gRGlzY2FyZCB0aGUgZHVwbGljYXRlIGV4aXRzLlxuICAgICAgc2VsZi5ldmVudHMubGVuZ3RoID0gaW5kZXhcblxuICAgICAgcmV0dXJuIGNoZWNrTmV3Q29udGFpbmVycyhjb2RlKVxuICAgIH1cblxuICAgIHJldHVybiBzdGFydChjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gY2hlY2tOZXdDb250YWluZXJzKGNvZGUpIHtcbiAgICAvLyBOZXh0LCBhZnRlciBjb25zdW1pbmcgdGhlIGNvbnRpbnVhdGlvbiBtYXJrZXJzIGZvciBleGlzdGluZyBibG9ja3MsIHdlXG4gICAgLy8gbG9vayBmb3IgbmV3IGJsb2NrIHN0YXJ0cyAoZS5nLiBgPmAgZm9yIGEgYmxvY2sgcXVvdGUpLlxuICAgIC8vIElmIHdlIGVuY291bnRlciBhIG5ldyBibG9jayBzdGFydCwgd2UgY2xvc2UgYW55IGJsb2NrcyB1bm1hdGNoZWQgaW5cbiAgICAvLyBzdGVwIDEgYmVmb3JlIGNyZWF0aW5nIHRoZSBuZXcgYmxvY2sgYXMgYSBjaGlsZCBvZiB0aGUgbGFzdCBtYXRjaGVkXG4gICAgLy8gYmxvY2suXG4gICAgaWYgKGNvbnRpbnVlZCA9PT0gc3RhY2subGVuZ3RoKSB7XG4gICAgICAvLyBObyBuZWVkIHRvIGBjaGVja2Agd2hldGhlciB0aGVyZeKAmXMgYSBjb250YWluZXIsIG9mIGBleGl0Q29udGFpbmVyc2BcbiAgICAgIC8vIHdvdWxkIGJlIG1vb3QuXG4gICAgICAvLyBXZSBjYW4gaW5zdGVhZCBpbW1lZGlhdGVseSBgYXR0ZW1wdGAgdG8gcGFyc2Ugb25lLlxuICAgICAgaWYgKCFjaGlsZEZsb3cpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50Q29udGludWVkKGNvZGUpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGhhdmUgY29uY3JldGUgY29udGVudCwgc3VjaCBhcyBibG9jayBIVE1MIG9yIGZlbmNlZCBjb2RlLFxuICAgICAgLy8gd2UgY2Fu4oCZdCBoYXZlIGNvbnRhaW5lcnMg4oCccGllcmNl4oCdIGludG8gdGhlbSwgc28gd2UgY2FuIGltbWVkaWF0ZWx5XG4gICAgICAvLyBzdGFydC5cbiAgICAgIGlmIChjaGlsZEZsb3cuY3VycmVudENvbnN0cnVjdCAmJiBjaGlsZEZsb3cuY3VycmVudENvbnN0cnVjdC5jb25jcmV0ZSkge1xuICAgICAgICByZXR1cm4gZmxvd1N0YXJ0KGNvZGUpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGRvIGhhdmUgZmxvdywgaXQgY291bGQgc3RpbGwgYmUgYSBibGFuayBsaW5lLFxuICAgICAgLy8gYnV0IHdl4oCZZCBiZSBpbnRlcnJ1cHRpbmcgaXQgdy8gYSBuZXcgY29udGFpbmVyIGlmIHRoZXJl4oCZcyBhIGN1cnJlbnRcbiAgICAgIC8vIGNvbnN0cnVjdC5cbiAgICAgIC8vIFRvIGRvOiBuZXh0IG1ham9yOiByZW1vdmUgYF9nZm1UYWJsZUR5bmFtaWNJbnRlcnJ1cHRIYWNrYCAobm8gbG9uZ2VyXG4gICAgICAvLyBuZWVkZWQgaW4gbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFibGVAMS4wLjYpLlxuICAgICAgc2VsZi5pbnRlcnJ1cHQgPSBCb29sZWFuKFxuICAgICAgICBjaGlsZEZsb3cuY3VycmVudENvbnN0cnVjdCAmJiAhY2hpbGRGbG93Ll9nZm1UYWJsZUR5bmFtaWNJbnRlcnJ1cHRIYWNrXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYSBuZXcgY29udGFpbmVyLlxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUgPSB7fVxuICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKFxuICAgICAgY29udGFpbmVyQ29uc3RydWN0LFxuICAgICAgdGhlcmVJc0FOZXdDb250YWluZXIsXG4gICAgICB0aGVyZUlzTm9OZXdDb250YWluZXJcbiAgICApKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiB0aGVyZUlzQU5ld0NvbnRhaW5lcihjb2RlKSB7XG4gICAgaWYgKGNoaWxkRmxvdykgY2xvc2VGbG93KClcbiAgICBleGl0Q29udGFpbmVycyhjb250aW51ZWQpXG4gICAgcmV0dXJuIGRvY3VtZW50Q29udGludWVkKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiB0aGVyZUlzTm9OZXdDb250YWluZXIoY29kZSkge1xuICAgIHNlbGYucGFyc2VyLmxhenlbc2VsZi5ub3coKS5saW5lXSA9IGNvbnRpbnVlZCAhPT0gc3RhY2subGVuZ3RoXG4gICAgbGluZVN0YXJ0T2Zmc2V0ID0gc2VsZi5ub3coKS5vZmZzZXRcbiAgICByZXR1cm4gZmxvd1N0YXJ0KGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBkb2N1bWVudENvbnRpbnVlZChjb2RlKSB7XG4gICAgLy8gVHJ5IG5ldyBjb250YWluZXJzLlxuICAgIHNlbGYuY29udGFpbmVyU3RhdGUgPSB7fVxuICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoXG4gICAgICBjb250YWluZXJDb25zdHJ1Y3QsXG4gICAgICBjb250YWluZXJDb250aW51ZSxcbiAgICAgIGZsb3dTdGFydFxuICAgICkoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGNvbnRhaW5lckNvbnRpbnVlKGNvZGUpIHtcbiAgICBhc3NlcnQoXG4gICAgICBzZWxmLmN1cnJlbnRDb25zdHJ1Y3QsXG4gICAgICAnZXhwZWN0ZWQgYGN1cnJlbnRDb25zdHJ1Y3RgIHRvIGJlIGRlZmluZWQgb24gdG9rZW5pemVyJ1xuICAgIClcbiAgICBhc3NlcnQoXG4gICAgICBzZWxmLmNvbnRhaW5lclN0YXRlLFxuICAgICAgJ2V4cGVjdGVkIGBjb250YWluZXJTdGF0ZWAgdG8gYmUgZGVmaW5lZCBvbiB0b2tlbml6ZXInXG4gICAgKVxuICAgIGNvbnRpbnVlZCsrXG4gICAgc3RhY2sucHVzaChbc2VsZi5jdXJyZW50Q29uc3RydWN0LCBzZWxmLmNvbnRhaW5lclN0YXRlXSlcbiAgICAvLyBUcnkgYW5vdGhlci5cbiAgICByZXR1cm4gZG9jdW1lbnRDb250aW51ZWQoY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGZsb3dTdGFydChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLmVvZikge1xuICAgICAgaWYgKGNoaWxkRmxvdykgY2xvc2VGbG93KClcbiAgICAgIGV4aXRDb250YWluZXJzKDApXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNoaWxkRmxvdyA9IGNoaWxkRmxvdyB8fCBzZWxmLnBhcnNlci5mbG93KHNlbGYubm93KCkpXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5jaHVua0Zsb3csIHtcbiAgICAgIGNvbnRlbnRUeXBlOiBjb25zdGFudHMuY29udGVudFR5cGVGbG93LFxuICAgICAgcHJldmlvdXM6IGNoaWxkVG9rZW4sXG4gICAgICBfdG9rZW5pemVyOiBjaGlsZEZsb3dcbiAgICB9KVxuXG4gICAgcmV0dXJuIGZsb3dDb250aW51ZShjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gZmxvd0NvbnRpbnVlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICB3cml0ZVRvQ2hpbGQoZWZmZWN0cy5leGl0KHR5cGVzLmNodW5rRmxvdyksIHRydWUpXG4gICAgICBleGl0Q29udGFpbmVycygwKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHdyaXRlVG9DaGlsZChlZmZlY3RzLmV4aXQodHlwZXMuY2h1bmtGbG93KSlcbiAgICAgIC8vIEdldCByZWFkeSBmb3IgdGhlIG5leHQgbGluZS5cbiAgICAgIGNvbnRpbnVlZCA9IDBcbiAgICAgIHNlbGYuaW50ZXJydXB0ID0gdW5kZWZpbmVkXG4gICAgICByZXR1cm4gc3RhcnRcbiAgICB9XG5cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICByZXR1cm4gZmxvd0NvbnRpbnVlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtUb2tlbn0gdG9rZW5cbiAgICogQHBhcmFtIHtib29sZWFuIHwgdW5kZWZpbmVkfSBbZW9mXVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gd3JpdGVUb0NoaWxkKHRva2VuLCBlb2YpIHtcbiAgICBhc3NlcnQoY2hpbGRGbG93LCAnZXhwZWN0ZWQgYGNoaWxkRmxvd2AgdG8gYmUgZGVmaW5lZCB3aGVuIGNvbnRpbnVpbmcnKVxuICAgIGNvbnN0IHN0cmVhbSA9IHNlbGYuc2xpY2VTdHJlYW0odG9rZW4pXG4gICAgaWYgKGVvZikgc3RyZWFtLnB1c2gobnVsbClcbiAgICB0b2tlbi5wcmV2aW91cyA9IGNoaWxkVG9rZW5cbiAgICBpZiAoY2hpbGRUb2tlbikgY2hpbGRUb2tlbi5uZXh0ID0gdG9rZW5cbiAgICBjaGlsZFRva2VuID0gdG9rZW5cbiAgICBjaGlsZEZsb3cuZGVmaW5lU2tpcCh0b2tlbi5zdGFydClcbiAgICBjaGlsZEZsb3cud3JpdGUoc3RyZWFtKVxuXG4gICAgLy8gQWxyaWdodCwgc28gd2UganVzdCBhZGRlZCBhIGxhenkgbGluZTpcbiAgICAvL1xuICAgIC8vIGBgYG1hcmtkb3duXG4gICAgLy8gPiBhXG4gICAgLy8gYi5cbiAgICAvL1xuICAgIC8vIE9yOlxuICAgIC8vXG4gICAgLy8gPiB+fn5jXG4gICAgLy8gZFxuICAgIC8vXG4gICAgLy8gT3I6XG4gICAgLy9cbiAgICAvLyA+IHwgZSB8XG4gICAgLy8gZlxuICAgIC8vIGBgYFxuICAgIC8vXG4gICAgLy8gVGhlIGNvbnN0cnVjdCBpbiB0aGUgc2Vjb25kIGV4YW1wbGUgKGZlbmNlZCBjb2RlKSBkb2VzIG5vdCBhY2NlcHQgbGF6eVxuICAgIC8vIGxpbmVzLCBzbyBpdCBtYXJrZWQgaXRzZWxmIGFzIGRvbmUgYXQgdGhlIGVuZCBvZiBpdHMgZmlyc3QgbGluZSwgYW5kXG4gICAgLy8gdGhlbiB0aGUgY29udGVudCBjb25zdHJ1Y3QgcGFyc2VzIGBkYC5cbiAgICAvLyBNb3N0IGNvbnN0cnVjdHMgaW4gbWFya2Rvd24gbWF0Y2ggb24gdGhlIGZpcnN0IGxpbmU6IGlmIHRoZSBmaXJzdCBsaW5lXG4gICAgLy8gZm9ybXMgYSBjb25zdHJ1Y3QsIGEgbm9uLWxhenkgbGluZSBjYW7igJl0IOKAnHVubWFrZeKAnSBpdC5cbiAgICAvL1xuICAgIC8vIFRoZSBjb25zdHJ1Y3QgaW4gdGhlIHRoaXJkIGV4YW1wbGUgaXMgcG90ZW50aWFsbHkgYSBHRk0gdGFibGUsIGFuZFxuICAgIC8vIHRob3NlIGFyZSAqd2VpcmQqLlxuICAgIC8vIEl0ICpjb3VsZCogYmUgYSB0YWJsZSwgZnJvbSB0aGUgZmlyc3QgbGluZSwgaWYgdGhlIGZvbGxvd2luZyBsaW5lXG4gICAgLy8gbWF0Y2hlcyBhIGNvbmRpdGlvbi5cbiAgICAvLyBJbiB0aGlzIGNhc2UsIHRoYXQgc2Vjb25kIGxpbmUgaXMgbGF6eSwgd2hpY2gg4oCcdW5tYWtlc+KAnSB0aGUgZmlyc3QgbGluZVxuICAgIC8vIGFuZCB0dXJucyB0aGUgd2hvbGUgaW50byBvbmUgY29udGVudCBibG9jay5cbiAgICAvL1xuICAgIC8vIFdl4oCZdmUgbm93IHBhcnNlZCB0aGUgbm9uLWxhenkgYW5kIHRoZSBsYXp5IGxpbmUsIGFuZCBjYW4gZmlndXJlIG91dFxuICAgIC8vIHdoZXRoZXIgdGhlIGxhenkgbGluZSBzdGFydGVkIGEgbmV3IGZsb3cgYmxvY2suXG4gICAgLy8gSWYgaXQgZGlkLCB3ZSBleGl0IHRoZSBjdXJyZW50IGNvbnRhaW5lcnMgYmV0d2VlbiB0aGUgdHdvIGZsb3cgYmxvY2tzLlxuICAgIGlmIChzZWxmLnBhcnNlci5sYXp5W3Rva2VuLnN0YXJ0LmxpbmVdKSB7XG4gICAgICBsZXQgaW5kZXggPSBjaGlsZEZsb3cuZXZlbnRzLmxlbmd0aFxuXG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgLy8gVGhlIHRva2VuIHN0YXJ0cyBiZWZvcmUgdGhlIGxpbmUgZW5kaW5n4oCmXG4gICAgICAgICAgY2hpbGRGbG93LmV2ZW50c1tpbmRleF1bMV0uc3RhcnQub2Zmc2V0IDwgbGluZVN0YXJ0T2Zmc2V0ICYmXG4gICAgICAgICAgLy8g4oCmYW5kIGVpdGhlciBpcyBub3QgZW5kZWQgeWV04oCmXG4gICAgICAgICAgKCFjaGlsZEZsb3cuZXZlbnRzW2luZGV4XVsxXS5lbmQgfHxcbiAgICAgICAgICAgIC8vIOKApm9yIGVuZHMgYWZ0ZXIgaXQuXG4gICAgICAgICAgICBjaGlsZEZsb3cuZXZlbnRzW2luZGV4XVsxXS5lbmQub2Zmc2V0ID4gbGluZVN0YXJ0T2Zmc2V0KVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBFeGl0OiB0aGVyZeKAmXMgc3RpbGwgc29tZXRoaW5nIG9wZW4sIHdoaWNoIG1lYW5zIGl04oCZcyBhIGxhenkgbGluZVxuICAgICAgICAgIC8vIHBhcnQgb2Ygc29tZXRoaW5nLlxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE5vdGU6IHRoaXMgYWxnb3JpdGhtIGZvciBtb3ZpbmcgZXZlbnRzIGFyb3VuZCBpcyBzaW1pbGFyIHRvIHRoZVxuICAgICAgLy8gYWxnb3JpdGhtIHdoZW4gY2xvc2luZyBmbG93IGluIGBkb2N1bWVudENvbnRpbnVlYC5cbiAgICAgIGNvbnN0IGluZGV4QmVmb3JlRXhpdHMgPSBzZWxmLmV2ZW50cy5sZW5ndGhcbiAgICAgIGxldCBpbmRleEJlZm9yZUZsb3cgPSBpbmRleEJlZm9yZUV4aXRzXG4gICAgICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gICAgICBsZXQgc2VlblxuICAgICAgLyoqIEB0eXBlIHtQb2ludCB8IHVuZGVmaW5lZH0gKi9cbiAgICAgIGxldCBwb2ludFxuXG4gICAgICAvLyBGaW5kIHRoZSBwcmV2aW91cyBjaHVuayAodGhlIG9uZSBiZWZvcmUgdGhlIGxhenkgbGluZSkuXG4gICAgICB3aGlsZSAoaW5kZXhCZWZvcmVGbG93LS0pIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGYuZXZlbnRzW2luZGV4QmVmb3JlRmxvd11bMF0gPT09ICdleGl0JyAmJlxuICAgICAgICAgIHNlbGYuZXZlbnRzW2luZGV4QmVmb3JlRmxvd11bMV0udHlwZSA9PT0gdHlwZXMuY2h1bmtGbG93XG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgICAgICBwb2ludCA9IHNlbGYuZXZlbnRzW2luZGV4QmVmb3JlRmxvd11bMV0uZW5kXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNlZW4gPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXNzZXJ0KHBvaW50LCAnY291bGQgbm90IGZpbmQgcHJldmlvdXMgZmxvdyBjaHVuaycpXG5cbiAgICAgIGV4aXRDb250YWluZXJzKGNvbnRpbnVlZClcblxuICAgICAgLy8gRml4IHBvc2l0aW9ucy5cbiAgICAgIGluZGV4ID0gaW5kZXhCZWZvcmVFeGl0c1xuXG4gICAgICB3aGlsZSAoaW5kZXggPCBzZWxmLmV2ZW50cy5sZW5ndGgpIHtcbiAgICAgICAgc2VsZi5ldmVudHNbaW5kZXhdWzFdLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHBvaW50KVxuICAgICAgICBpbmRleCsrXG4gICAgICB9XG5cbiAgICAgIC8vIEluamVjdCB0aGUgZXhpdHMgZWFybGllciAodGhleeKAmXJlIHN0aWxsIGFsc28gYXQgdGhlIGVuZCkuXG4gICAgICBzcGxpY2UoXG4gICAgICAgIHNlbGYuZXZlbnRzLFxuICAgICAgICBpbmRleEJlZm9yZUZsb3cgKyAxLFxuICAgICAgICAwLFxuICAgICAgICBzZWxmLmV2ZW50cy5zbGljZShpbmRleEJlZm9yZUV4aXRzKVxuICAgICAgKVxuXG4gICAgICAvLyBEaXNjYXJkIHRoZSBkdXBsaWNhdGUgZXhpdHMuXG4gICAgICBzZWxmLmV2ZW50cy5sZW5ndGggPSBpbmRleFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlcn0gc2l6ZVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gZXhpdENvbnRhaW5lcnMoc2l6ZSkge1xuICAgIGxldCBpbmRleCA9IHN0YWNrLmxlbmd0aFxuXG4gICAgLy8gRXhpdCBvcGVuIGNvbnRhaW5lcnMuXG4gICAgd2hpbGUgKGluZGV4LS0gPiBzaXplKSB7XG4gICAgICBjb25zdCBlbnRyeSA9IHN0YWNrW2luZGV4XVxuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZSA9IGVudHJ5WzFdXG4gICAgICBhc3NlcnQoXG4gICAgICAgIGVudHJ5WzBdLmV4aXQsXG4gICAgICAgICdleHBlY3RlZCBgZXhpdGAgdG8gYmUgZGVmaW5lZCBvbiBjb250YWluZXIgY29uc3RydWN0J1xuICAgICAgKVxuICAgICAgZW50cnlbMF0uZXhpdC5jYWxsKHNlbGYsIGVmZmVjdHMpXG4gICAgfVxuXG4gICAgc3RhY2subGVuZ3RoID0gc2l6ZVxuICB9XG5cbiAgZnVuY3Rpb24gY2xvc2VGbG93KCkge1xuICAgIGFzc2VydChcbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUsXG4gICAgICAnZXhwZWN0ZWQgYGNvbnRhaW5lclN0YXRlYCB0byBiZSBkZWZpbmVkIHdoZW4gY2xvc2luZyBmbG93J1xuICAgIClcbiAgICBhc3NlcnQoY2hpbGRGbG93LCAnZXhwZWN0ZWQgYGNoaWxkRmxvd2AgdG8gYmUgZGVmaW5lZCB3aGVuIGNsb3NpbmcgaXQnKVxuICAgIGNoaWxkRmxvdy53cml0ZShbY29kZXMuZW9mXSlcbiAgICBjaGlsZFRva2VuID0gdW5kZWZpbmVkXG4gICAgY2hpbGRGbG93ID0gdW5kZWZpbmVkXG4gICAgc2VsZi5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93ID0gdW5kZWZpbmVkXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDb250YWluZXIoZWZmZWN0cywgb2ssIG5vaykge1xuICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuICBhc3NlcnQoXG4gICAgdGhpcy5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwsXG4gICAgJ2V4cGVjdGVkIGBkaXNhYmxlLm51bGxgIHRvIGJlIHBvcHVsYXRlZCdcbiAgKVxuICByZXR1cm4gZmFjdG9yeVNwYWNlKFxuICAgIGVmZmVjdHMsXG4gICAgZWZmZWN0cy5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZG9jdW1lbnQsIG9rLCBub2spLFxuICAgIHR5cGVzLmxpbmVQcmVmaXgsXG4gICAgdGhpcy5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBjb25zdGFudHMudGFiU2l6ZVxuICApXG59XG4iXSwibmFtZXMiOlsiZmFjdG9yeVNwYWNlIiwibWFya2Rvd25MaW5lRW5kaW5nIiwic3BsaWNlIiwiY29kZXMiLCJjb25zdGFudHMiLCJ0eXBlcyIsIm9rIiwiYXNzZXJ0IiwiZG9jdW1lbnQiLCJ0b2tlbml6ZSIsImluaXRpYWxpemVEb2N1bWVudCIsImNvbnRhaW5lckNvbnN0cnVjdCIsInRva2VuaXplQ29udGFpbmVyIiwiZWZmZWN0cyIsInNlbGYiLCJzdGFjayIsImNvbnRpbnVlZCIsImNoaWxkRmxvdyIsImNoaWxkVG9rZW4iLCJsaW5lU3RhcnRPZmZzZXQiLCJzdGFydCIsImNvZGUiLCJsZW5ndGgiLCJpdGVtIiwiY29udGFpbmVyU3RhdGUiLCJjb250aW51YXRpb24iLCJhdHRlbXB0IiwiZG9jdW1lbnRDb250aW51ZSIsImNoZWNrTmV3Q29udGFpbmVycyIsIl9jbG9zZUZsb3ciLCJ1bmRlZmluZWQiLCJjbG9zZUZsb3ciLCJpbmRleEJlZm9yZUV4aXRzIiwiZXZlbnRzIiwiaW5kZXhCZWZvcmVGbG93IiwicG9pbnQiLCJ0eXBlIiwiY2h1bmtGbG93IiwiZW5kIiwiZXhpdENvbnRhaW5lcnMiLCJpbmRleCIsIk9iamVjdCIsImFzc2lnbiIsInNsaWNlIiwiZG9jdW1lbnRDb250aW51ZWQiLCJjdXJyZW50Q29uc3RydWN0IiwiY29uY3JldGUiLCJmbG93U3RhcnQiLCJpbnRlcnJ1cHQiLCJCb29sZWFuIiwiX2dmbVRhYmxlRHluYW1pY0ludGVycnVwdEhhY2siLCJjaGVjayIsInRoZXJlSXNBTmV3Q29udGFpbmVyIiwidGhlcmVJc05vTmV3Q29udGFpbmVyIiwicGFyc2VyIiwibGF6eSIsIm5vdyIsImxpbmUiLCJvZmZzZXQiLCJjb250YWluZXJDb250aW51ZSIsInB1c2giLCJlb2YiLCJjb25zdW1lIiwiZmxvdyIsImVudGVyIiwiY29udGVudFR5cGUiLCJjb250ZW50VHlwZUZsb3ciLCJwcmV2aW91cyIsIl90b2tlbml6ZXIiLCJmbG93Q29udGludWUiLCJ3cml0ZVRvQ2hpbGQiLCJleGl0IiwidG9rZW4iLCJzdHJlYW0iLCJzbGljZVN0cmVhbSIsIm5leHQiLCJkZWZpbmVTa2lwIiwid3JpdGUiLCJzZWVuIiwic2l6ZSIsImVudHJ5IiwiY2FsbCIsIm5vayIsImNvbnN0cnVjdHMiLCJkaXNhYmxlIiwibnVsbCIsImxpbmVQcmVmaXgiLCJpbmNsdWRlcyIsInRhYlNpemUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/initialize/document.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/initialize/flow.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/initialize/flow.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ flow: () => (/* binding */ flow)\n/* harmony export */ });\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/blank-line.js\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/../../node_modules/micromark-core-commonmark/dev/lib/content.js\");\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/../../node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/../../node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */ \n\n\n\n\n/** @type {InitialConstruct} */ const flow = {\n tokenize: initializeFlow\n};\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */ function initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(// Try to parse a blank line.\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__.blankLine, atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__.factorySpace)(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__.content, afterConstruct)), micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.linePrefix)));\n return initial;\n /** @type {State} */ function atBlankEnding(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code), \"expected eol or eof\");\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {\n effects.consume(code);\n return;\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEndingBlank);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEndingBlank);\n self.currentConstruct = undefined;\n return initial;\n }\n /** @type {State} */ function afterConstruct(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code), \"expected eol or eof\");\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {\n effects.consume(code);\n return;\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding);\n effects.consume(code);\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding);\n self.currentConstruct = undefined;\n return initial;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL2luaXRpYWxpemUvZmxvdy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOzs7OztDQUtDLEdBRTJEO0FBQ1I7QUFDTztBQUNUO0FBQ2Y7QUFFbkMsNkJBQTZCLEdBQ3RCLE1BQU1RLE9BQU87SUFBQ0MsVUFBVUM7QUFBYyxFQUFDO0FBRTlDOzs7Q0FHQyxHQUNELFNBQVNBLGVBQWVDLE9BQU87SUFDN0IsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLE1BQU1DLFVBQVVGLFFBQVFHLE9BQU8sQ0FDN0IsNkJBQTZCO0lBQzdCZCxnRUFBU0EsRUFDVGUsZUFDQSxzREFBc0Q7SUFDdERKLFFBQVFHLE9BQU8sQ0FDYixJQUFJLENBQUNFLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDQyxXQUFXLEVBQ2xDQyxnQkFDQWpCLHFFQUFZQSxDQUNWUyxTQUNBQSxRQUFRRyxPQUFPLENBQ2IsSUFBSSxDQUFDRSxNQUFNLENBQUNDLFVBQVUsQ0FBQ1QsSUFBSSxFQUMzQlcsZ0JBQ0FSLFFBQVFHLE9BQU8sQ0FBQ2IsOERBQU9BLEVBQUVrQixrQkFFM0JkLHdEQUFLQSxDQUFDZSxVQUFVO0lBS3RCLE9BQU9QO0lBRVAsa0JBQWtCLEdBQ2xCLFNBQVNFLGNBQWNNLElBQUk7UUFDekJkLDBDQUFNQSxDQUNKYyxTQUFTakIsd0RBQUtBLENBQUNrQixHQUFHLElBQUluQiw0RUFBa0JBLENBQUNrQixPQUN6QztRQUdGLElBQUlBLFNBQVNqQix3REFBS0EsQ0FBQ2tCLEdBQUcsRUFBRTtZQUN0QlgsUUFBUVksT0FBTyxDQUFDRjtZQUNoQjtRQUNGO1FBRUFWLFFBQVFhLEtBQUssQ0FBQ25CLHdEQUFLQSxDQUFDb0IsZUFBZTtRQUNuQ2QsUUFBUVksT0FBTyxDQUFDRjtRQUNoQlYsUUFBUWUsSUFBSSxDQUFDckIsd0RBQUtBLENBQUNvQixlQUFlO1FBQ2xDYixLQUFLZSxnQkFBZ0IsR0FBR0M7UUFDeEIsT0FBT2Y7SUFDVDtJQUVBLGtCQUFrQixHQUNsQixTQUFTTSxlQUFlRSxJQUFJO1FBQzFCZCwwQ0FBTUEsQ0FDSmMsU0FBU2pCLHdEQUFLQSxDQUFDa0IsR0FBRyxJQUFJbkIsNEVBQWtCQSxDQUFDa0IsT0FDekM7UUFHRixJQUFJQSxTQUFTakIsd0RBQUtBLENBQUNrQixHQUFHLEVBQUU7WUFDdEJYLFFBQVFZLE9BQU8sQ0FBQ0Y7WUFDaEI7UUFDRjtRQUVBVixRQUFRYSxLQUFLLENBQUNuQix3REFBS0EsQ0FBQ3dCLFVBQVU7UUFDOUJsQixRQUFRWSxPQUFPLENBQUNGO1FBQ2hCVixRQUFRZSxJQUFJLENBQUNyQix3REFBS0EsQ0FBQ3dCLFVBQVU7UUFDN0JqQixLQUFLZSxnQkFBZ0IsR0FBR0M7UUFDeEIsT0FBT2Y7SUFDVDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrL2Rldi9saWIvaW5pdGlhbGl6ZS9mbG93LmpzP2M3NWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkluaXRpYWxDb25zdHJ1Y3R9IEluaXRpYWxDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSW5pdGlhbGl6ZXJ9IEluaXRpYWxpemVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlN0YXRlfSBTdGF0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZUNvbnRleHR9IFRva2VuaXplQ29udGV4dFxuICovXG5cbmltcG9ydCB7YmxhbmtMaW5lLCBjb250ZW50fSBmcm9tICdtaWNyb21hcmstY29yZS1jb21tb25tYXJrJ1xuaW1wb3J0IHtmYWN0b3J5U3BhY2V9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJ1xuaW1wb3J0IHttYXJrZG93bkxpbmVFbmRpbmd9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7Y29kZXMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuXG4vKiogQHR5cGUge0luaXRpYWxDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgZmxvdyA9IHt0b2tlbml6ZTogaW5pdGlhbGl6ZUZsb3d9XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtJbml0aWFsaXplcn1cbiAqL1xuZnVuY3Rpb24gaW5pdGlhbGl6ZUZsb3coZWZmZWN0cykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBjb25zdCBpbml0aWFsID0gZWZmZWN0cy5hdHRlbXB0KFxuICAgIC8vIFRyeSB0byBwYXJzZSBhIGJsYW5rIGxpbmUuXG4gICAgYmxhbmtMaW5lLFxuICAgIGF0QmxhbmtFbmRpbmcsXG4gICAgLy8gVHJ5IHRvIHBhcnNlIGluaXRpYWwgZmxvdyAoZXNzZW50aWFsbHksIG9ubHkgY29kZSkuXG4gICAgZWZmZWN0cy5hdHRlbXB0KFxuICAgICAgdGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxcbiAgICAgIGFmdGVyQ29uc3RydWN0LFxuICAgICAgZmFjdG9yeVNwYWNlKFxuICAgICAgICBlZmZlY3RzLFxuICAgICAgICBlZmZlY3RzLmF0dGVtcHQoXG4gICAgICAgICAgdGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93LFxuICAgICAgICAgIGFmdGVyQ29uc3RydWN0LFxuICAgICAgICAgIGVmZmVjdHMuYXR0ZW1wdChjb250ZW50LCBhZnRlckNvbnN0cnVjdClcbiAgICAgICAgKSxcbiAgICAgICAgdHlwZXMubGluZVByZWZpeFxuICAgICAgKVxuICAgIClcbiAgKVxuXG4gIHJldHVybiBpbml0aWFsXG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYXRCbGFua0VuZGluZyhjb2RlKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgY29kZSA9PT0gY29kZXMuZW9mIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSxcbiAgICAgICdleHBlY3RlZCBlb2wgb3IgZW9mJ1xuICAgIClcblxuICAgIGlmIChjb2RlID09PSBjb2Rlcy5lb2YpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZWZmZWN0cy5lbnRlcih0eXBlcy5saW5lRW5kaW5nQmxhbmspXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KHR5cGVzLmxpbmVFbmRpbmdCbGFuaylcbiAgICBzZWxmLmN1cnJlbnRDb25zdHJ1Y3QgPSB1bmRlZmluZWRcbiAgICByZXR1cm4gaW5pdGlhbFxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYWZ0ZXJDb25zdHJ1Y3QoY29kZSkge1xuICAgIGFzc2VydChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSksXG4gICAgICAnZXhwZWN0ZWQgZW9sIG9yIGVvZidcbiAgICApXG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIodHlwZXMubGluZUVuZGluZylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQodHlwZXMubGluZUVuZGluZylcbiAgICBzZWxmLmN1cnJlbnRDb25zdHJ1Y3QgPSB1bmRlZmluZWRcbiAgICByZXR1cm4gaW5pdGlhbFxuICB9XG59XG4iXSwibmFtZXMiOlsiYmxhbmtMaW5lIiwiY29udGVudCIsImZhY3RvcnlTcGFjZSIsIm1hcmtkb3duTGluZUVuZGluZyIsImNvZGVzIiwidHlwZXMiLCJvayIsImFzc2VydCIsImZsb3ciLCJ0b2tlbml6ZSIsImluaXRpYWxpemVGbG93IiwiZWZmZWN0cyIsInNlbGYiLCJpbml0aWFsIiwiYXR0ZW1wdCIsImF0QmxhbmtFbmRpbmciLCJwYXJzZXIiLCJjb25zdHJ1Y3RzIiwiZmxvd0luaXRpYWwiLCJhZnRlckNvbnN0cnVjdCIsImxpbmVQcmVmaXgiLCJjb2RlIiwiZW9mIiwiY29uc3VtZSIsImVudGVyIiwibGluZUVuZGluZ0JsYW5rIiwiZXhpdCIsImN1cnJlbnRDb25zdHJ1Y3QiLCJ1bmRlZmluZWQiLCJsaW5lRW5kaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/initialize/flow.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/initialize/text.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/initialize/text.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolver: () => (/* binding */ resolver),\n/* harmony export */ string: () => (/* binding */ string),\n/* harmony export */ text: () => (/* binding */ text)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/types.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */ \n\nconst resolver = {\n resolveAll: createResolver()\n};\nconst string = initializeFactory(\"string\");\nconst text = initializeFactory(\"text\");\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */ function initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(field === \"text\" ? resolveAllLineSuffixes : undefined)\n };\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */ function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n /** @type {State} */ function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n /** @type {State} */ function notText(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof) {\n effects.consume(code);\n return;\n }\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.data);\n effects.consume(code);\n return data;\n }\n /** @type {State} */ function data(code) {\n if (atBreak(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.data);\n return text(code);\n }\n // Data.\n effects.consume(code);\n return data;\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */ function atBreak(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n (0,devlop__WEBPACK_IMPORTED_MODULE_2__.ok)(Array.isArray(list), \"expected `disable.null` to be populated\");\n while(++index < list.length){\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */ function createResolver(extraResolver) {\n return resolveAllText;\n /** @type {Resolver} */ function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */ let enter;\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while(++index <= events.length){\n if (enter === undefined) {\n if (events[index] && events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.data) {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.data) {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */ function resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n ;\n while(++eventIndex <= events.length){\n if ((eventIndex === events.length || events[eventIndex][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding) && events[eventIndex - 1][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.data) {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */ let tabs;\n while(index--){\n const chunk = chunks[index];\n if (typeof chunk === \"string\") {\n bufferIndex = chunk.length;\n while(chunk.charCodeAt(bufferIndex - 1) === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space){\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n } else if (chunk === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab) {\n tabs = true;\n size++;\n } else if (chunk === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.hardBreakPrefixSizeMin ? micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix : micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.types.hardBreakTrailing,\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n };\n data.end = Object.assign({}, token.start);\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, [\n \"enter\",\n token,\n context\n ], [\n \"exit\",\n token,\n context\n ]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL2luaXRpYWxpemUvdGV4dC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Q0FPQyxHQUU0RDtBQUMxQjtBQUU1QixNQUFNSyxXQUFXO0lBQUNDLFlBQVlDO0FBQWdCLEVBQUM7QUFDL0MsTUFBTUMsU0FBU0Msa0JBQWtCLFVBQVM7QUFDMUMsTUFBTUMsT0FBT0Qsa0JBQWtCLFFBQU87QUFFN0M7OztDQUdDLEdBQ0QsU0FBU0Esa0JBQWtCRSxLQUFLO0lBQzlCLE9BQU87UUFDTEMsVUFBVUM7UUFDVlAsWUFBWUMsZUFDVkksVUFBVSxTQUFTRyx5QkFBeUJDO0lBRWhEO0lBRUE7OztHQUdDLEdBQ0QsU0FBU0YsZUFBZUcsT0FBTztRQUM3QixNQUFNQyxPQUFPLElBQUk7UUFDakIsTUFBTUMsYUFBYSxJQUFJLENBQUNDLE1BQU0sQ0FBQ0QsVUFBVSxDQUFDUCxNQUFNO1FBQ2hELE1BQU1ELE9BQU9NLFFBQVFJLE9BQU8sQ0FBQ0YsWUFBWUcsT0FBT0M7UUFFaEQsT0FBT0Q7UUFFUCxrQkFBa0IsR0FDbEIsU0FBU0EsTUFBTUUsSUFBSTtZQUNqQixPQUFPQyxRQUFRRCxRQUFRYixLQUFLYSxRQUFRRCxRQUFRQztRQUM5QztRQUVBLGtCQUFrQixHQUNsQixTQUFTRCxRQUFRQyxJQUFJO1lBQ25CLElBQUlBLFNBQVN2Qix3REFBS0EsQ0FBQ3lCLEdBQUcsRUFBRTtnQkFDdEJULFFBQVFVLE9BQU8sQ0FBQ0g7Z0JBQ2hCO1lBQ0Y7WUFFQVAsUUFBUVcsS0FBSyxDQUFDekIsd0RBQUtBLENBQUMwQixJQUFJO1lBQ3hCWixRQUFRVSxPQUFPLENBQUNIO1lBQ2hCLE9BQU9LO1FBQ1Q7UUFFQSxrQkFBa0IsR0FDbEIsU0FBU0EsS0FBS0wsSUFBSTtZQUNoQixJQUFJQyxRQUFRRCxPQUFPO2dCQUNqQlAsUUFBUWEsSUFBSSxDQUFDM0Isd0RBQUtBLENBQUMwQixJQUFJO2dCQUN2QixP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QUlPLEtBQUtQLEtBQUssQ0FBQzBDLE1BQU0sS0FBS25DLEtBQUtlLEdBQUcsQ0FBQ29CLE1BQU0sRUFBRTtvQkFDekNHLE9BQU9DLE1BQU0sQ0FBQ3ZDLE1BQU02QjtnQkFDdEIsT0FBTztvQkFDTGpCLE9BQU9JLE1BQU0sQ0FDWEMsWUFDQSxHQUNBO3dCQUFDO3dCQUFTWTt3QkFBT2hCO3FCQUFRLEVBQ3pCO3dCQUFDO3dCQUFRZ0I7d0JBQU9oQjtxQkFBUTtvQkFFMUJJLGNBQWM7Z0JBQ2hCO1lBQ0Y7WUFFQUE7UUFDRjtJQUNGO0lBRUEsT0FBT0w7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL2luaXRpYWxpemUvdGV4dC5qcz80MGRlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db2RlfSBDb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkluaXRpYWxDb25zdHJ1Y3R9IEluaXRpYWxDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSW5pdGlhbGl6ZXJ9IEluaXRpYWxpemVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlJlc29sdmVyfSBSZXNvbHZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVG9rZW5pemVDb250ZXh0fSBUb2tlbml6ZUNvbnRleHRcbiAqL1xuXG5pbXBvcnQge2NvZGVzLCBjb25zdGFudHMsIHR5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZXIgPSB7cmVzb2x2ZUFsbDogY3JlYXRlUmVzb2x2ZXIoKX1cbmV4cG9ydCBjb25zdCBzdHJpbmcgPSBpbml0aWFsaXplRmFjdG9yeSgnc3RyaW5nJylcbmV4cG9ydCBjb25zdCB0ZXh0ID0gaW5pdGlhbGl6ZUZhY3RvcnkoJ3RleHQnKVxuXG4vKipcbiAqIEBwYXJhbSB7J3N0cmluZycgfCAndGV4dCd9IGZpZWxkXG4gKiBAcmV0dXJucyB7SW5pdGlhbENvbnN0cnVjdH1cbiAqL1xuZnVuY3Rpb24gaW5pdGlhbGl6ZUZhY3RvcnkoZmllbGQpIHtcbiAgcmV0dXJuIHtcbiAgICB0b2tlbml6ZTogaW5pdGlhbGl6ZVRleHQsXG4gICAgcmVzb2x2ZUFsbDogY3JlYXRlUmVzb2x2ZXIoXG4gICAgICBmaWVsZCA9PT0gJ3RleHQnID8gcmVzb2x2ZUFsbExpbmVTdWZmaXhlcyA6IHVuZGVmaW5lZFxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICAgKiBAdHlwZSB7SW5pdGlhbGl6ZXJ9XG4gICAqL1xuICBmdW5jdGlvbiBpbml0aWFsaXplVGV4dChlZmZlY3RzKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgICBjb25zdCBjb25zdHJ1Y3RzID0gdGhpcy5wYXJzZXIuY29uc3RydWN0c1tmaWVsZF1cbiAgICBjb25zdCB0ZXh0ID0gZWZmZWN0cy5hdHRlbXB0KGNvbnN0cnVjdHMsIHN0YXJ0LCBub3RUZXh0KVxuXG4gICAgcmV0dXJuIHN0YXJ0XG5cbiAgICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICAgIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAgIHJldHVybiBhdEJyZWFrKGNvZGUpID8gdGV4dChjb2RlKSA6IG5vdFRleHQoY29kZSlcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICAgIGZ1bmN0aW9uIG5vdFRleHQoY29kZSkge1xuICAgICAgaWYgKGNvZGUgPT09IGNvZGVzLmVvZikge1xuICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGVmZmVjdHMuZW50ZXIodHlwZXMuZGF0YSlcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICAgIGZ1bmN0aW9uIGRhdGEoY29kZSkge1xuICAgICAgaWYgKGF0QnJlYWsoY29kZSkpIHtcbiAgICAgICAgZWZmZWN0cy5leGl0KHR5cGVzLmRhdGEpXG4gICAgICAgIHJldHVybiB0ZXh0KGNvZGUpXG4gICAgICB9XG5cbiAgICAgIC8vIERhdGEuXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHJldHVybiBkYXRhXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgZnVuY3Rpb24gYXRCcmVhayhjb2RlKSB7XG4gICAgICBpZiAoY29kZSA9PT0gY29kZXMuZW9mKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxpc3QgPSBjb25zdHJ1Y3RzW2NvZGVdXG4gICAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgICBpZiAobGlzdCkge1xuICAgICAgICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuICAgICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShsaXN0KSwgJ2V4cGVjdGVkIGBkaXNhYmxlLm51bGxgIHRvIGJlIHBvcHVsYXRlZCcpXG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsaXN0Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBsaXN0W2luZGV4XVxuICAgICAgICAgIGlmICghaXRlbS5wcmV2aW91cyB8fCBpdGVtLnByZXZpb3VzLmNhbGwoc2VsZiwgc2VsZi5wcmV2aW91cykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVzb2x2ZXIgfCB1bmRlZmluZWR9IFtleHRyYVJlc29sdmVyXVxuICogQHJldHVybnMge1Jlc29sdmVyfVxuICovXG5mdW5jdGlvbiBjcmVhdGVSZXNvbHZlcihleHRyYVJlc29sdmVyKSB7XG4gIHJldHVybiByZXNvbHZlQWxsVGV4dFxuXG4gIC8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG4gIGZ1bmN0aW9uIHJlc29sdmVBbGxUZXh0KGV2ZW50cywgY29udGV4dCkge1xuICAgIGxldCBpbmRleCA9IC0xXG4gICAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IGVudGVyXG5cbiAgICAvLyBBIHJhdGhlciBib3JpbmcgY29tcHV0YXRpb24gKHRvIG1lcmdlIGFkamFjZW50IGBkYXRhYCBldmVudHMpIHdoaWNoXG4gICAgLy8gaW1wcm92ZXMgbW0gcGVyZm9ybWFuY2UgYnkgMjklLlxuICAgIHdoaWxlICgrK2luZGV4IDw9IGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgIGlmIChlbnRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChldmVudHNbaW5kZXhdICYmIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gdHlwZXMuZGF0YSkge1xuICAgICAgICAgIGVudGVyID0gaW5kZXhcbiAgICAgICAgICBpbmRleCsrXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWV2ZW50c1tpbmRleF0gfHwgZXZlbnRzW2luZGV4XVsxXS50eXBlICE9PSB0eXBlcy5kYXRhKSB7XG4gICAgICAgIC8vIERvbuKAmXQgZG8gYW55dGhpbmcgaWYgdGhlcmUgaXMgb25lIGRhdGEgdG9rZW4uXG4gICAgICAgIGlmIChpbmRleCAhPT0gZW50ZXIgKyAyKSB7XG4gICAgICAgICAgZXZlbnRzW2VudGVyXVsxXS5lbmQgPSBldmVudHNbaW5kZXggLSAxXVsxXS5lbmRcbiAgICAgICAgICBldmVudHMuc3BsaWNlKGVudGVyICsgMiwgaW5kZXggLSBlbnRlciAtIDIpXG4gICAgICAgICAgaW5kZXggPSBlbnRlciArIDJcbiAgICAgICAgfVxuXG4gICAgICAgIGVudGVyID0gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4dHJhUmVzb2x2ZXIgPyBleHRyYVJlc29sdmVyKGV2ZW50cywgY29udGV4dCkgOiBldmVudHNcbiAgfVxufVxuXG4vKipcbiAqIEEgcmF0aGVyIHVnbHkgc2V0IG9mIGluc3RydWN0aW9ucyB3aGljaCBhZ2FpbiBsb29rcyBhdCBjaHVua3MgaW4gdGhlIGlucHV0XG4gKiBzdHJlYW0uXG4gKiBUaGUgcmVhc29uIHRvIGRvIHRoaXMgaGVyZSBpcyB0aGF0IGl0IGlzICptdWNoKiBmYXN0ZXIgdG8gcGFyc2UgaW4gcmV2ZXJzZS5cbiAqIEFuZCB0aGF0IHdlIGNhbuKAmXQgaG9vayBpbnRvIGBudWxsYCB0byBzcGxpdCB0aGUgbGluZSBzdWZmaXggYmVmb3JlIGFuIEVPRi5cbiAqIFRvIGRvOiBmaWd1cmUgb3V0IGlmIHdlIGNhbiBtYWtlIHRoaXMgaW50byBhIGNsZWFuIHV0aWxpdHksIG9yIGV2ZW4gaW4gY29yZS5cbiAqIEFzIGl0IHdpbGwgYmUgdXNlZnVsIGZvciBHRk1zIGxpdGVyYWwgYXV0b2xpbmsgZXh0ZW5zaW9uIChhbmQgbWF5YmUgZXZlblxuICogdGFibGVzPylcbiAqXG4gKiBAdHlwZSB7UmVzb2x2ZXJ9XG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVBbGxMaW5lU3VmZml4ZXMoZXZlbnRzLCBjb250ZXh0KSB7XG4gIGxldCBldmVudEluZGV4ID0gMCAvLyBTa2lwIGZpcnN0LlxuXG4gIHdoaWxlICgrK2V2ZW50SW5kZXggPD0gZXZlbnRzLmxlbmd0aCkge1xuICAgIGlmIChcbiAgICAgIChldmVudEluZGV4ID09PSBldmVudHMubGVuZ3RoIHx8XG4gICAgICAgIGV2ZW50c1tldmVudEluZGV4XVsxXS50eXBlID09PSB0eXBlcy5saW5lRW5kaW5nKSAmJlxuICAgICAgZXZlbnRzW2V2ZW50SW5kZXggLSAxXVsxXS50eXBlID09PSB0eXBlcy5kYXRhXG4gICAgKSB7XG4gICAgICBjb25zdCBkYXRhID0gZXZlbnRzW2V2ZW50SW5kZXggLSAxXVsxXVxuICAgICAgY29uc3QgY2h1bmtzID0gY29udGV4dC5zbGljZVN0cmVhbShkYXRhKVxuICAgICAgbGV0IGluZGV4ID0gY2h1bmtzLmxlbmd0aFxuICAgICAgbGV0IGJ1ZmZlckluZGV4ID0gLTFcbiAgICAgIGxldCBzaXplID0gMFxuICAgICAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICAgICAgbGV0IHRhYnNcblxuICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgY29uc3QgY2h1bmsgPSBjaHVua3NbaW5kZXhdXG5cbiAgICAgICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBidWZmZXJJbmRleCA9IGNodW5rLmxlbmd0aFxuXG4gICAgICAgICAgd2hpbGUgKGNodW5rLmNoYXJDb2RlQXQoYnVmZmVySW5kZXggLSAxKSA9PT0gY29kZXMuc3BhY2UpIHtcbiAgICAgICAgICAgIHNpemUrK1xuICAgICAgICAgICAgYnVmZmVySW5kZXgtLVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChidWZmZXJJbmRleCkgYnJlYWtcbiAgICAgICAgICBidWZmZXJJbmRleCA9IC0xXG4gICAgICAgIH1cbiAgICAgICAgLy8gTnVtYmVyXG4gICAgICAgIGVsc2UgaWYgKGNodW5rID09PSBjb2Rlcy5ob3Jpem9udGFsVGFiKSB7XG4gICAgICAgICAgdGFicyA9IHRydWVcbiAgICAgICAgICBzaXplKytcbiAgICAgICAgfSBlbHNlIGlmIChjaHVuayA9PT0gY29kZXMudmlydHVhbFNwYWNlKSB7XG4gICAgICAgICAgLy8gRW1wdHlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBSZXBsYWNlbWVudCBjaGFyYWN0ZXIsIGV4aXQuXG4gICAgICAgICAgaW5kZXgrK1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNpemUpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB7XG4gICAgICAgICAgdHlwZTpcbiAgICAgICAgICAgIGV2ZW50SW5kZXggPT09IGV2ZW50cy5sZW5ndGggfHxcbiAgICAgICAgICAgIHRhYnMgfHxcbiAgICAgICAgICAgIHNpemUgPCBjb25zdGFudHMuaGFyZEJyZWFrUHJlZml4U2l6ZU1pblxuICAgICAgICAgICAgICA/IHR5cGVzLmxpbmVTdWZmaXhcbiAgICAgICAgICAgICAgOiB0eXBlcy5oYXJkQnJlYWtUcmFpbGluZyxcbiAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgbGluZTogZGF0YS5lbmQubGluZSxcbiAgICAgICAgICAgIGNvbHVtbjogZGF0YS5lbmQuY29sdW1uIC0gc2l6ZSxcbiAgICAgICAgICAgIG9mZnNldDogZGF0YS5lbmQub2Zmc2V0IC0gc2l6ZSxcbiAgICAgICAgICAgIF9pbmRleDogZGF0YS5zdGFydC5faW5kZXggKyBpbmRleCxcbiAgICAgICAgICAgIF9idWZmZXJJbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgPyBidWZmZXJJbmRleFxuICAgICAgICAgICAgICA6IGRhdGEuc3RhcnQuX2J1ZmZlckluZGV4ICsgYnVmZmVySW5kZXhcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZGF0YS5lbmQpXG4gICAgICAgIH1cblxuICAgICAgICBkYXRhLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHRva2VuLnN0YXJ0KVxuXG4gICAgICAgIGlmIChkYXRhLnN0YXJ0Lm9mZnNldCA9PT0gZGF0YS5lbmQub2Zmc2V0KSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhLCB0b2tlbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBldmVudHMuc3BsaWNlKFxuICAgICAgICAgICAgZXZlbnRJbmRleCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBbJ2VudGVyJywgdG9rZW4sIGNvbnRleHRdLFxuICAgICAgICAgICAgWydleGl0JywgdG9rZW4sIGNvbnRleHRdXG4gICAgICAgICAgKVxuICAgICAgICAgIGV2ZW50SW5kZXggKz0gMlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGV2ZW50SW5kZXgrK1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBldmVudHNcbn1cbiJdLCJuYW1lcyI6WyJjb2RlcyIsImNvbnN0YW50cyIsInR5cGVzIiwib2siLCJhc3NlcnQiLCJyZXNvbHZlciIsInJlc29sdmVBbGwiLCJjcmVhdGVSZXNvbHZlciIsInN0cmluZyIsImluaXRpYWxpemVGYWN0b3J5IiwidGV4dCIsImZpZWxkIiwidG9rZW5pemUiLCJpbml0aWFsaXplVGV4dCIsInJlc29sdmVBbGxMaW5lU3VmZml4ZXMiLCJ1bmRlZmluZWQiLCJlZmZlY3RzIiwic2VsZiIsImNvbnN0cnVjdHMiLCJwYXJzZXIiLCJhdHRlbXB0Iiwic3RhcnQiLCJub3RUZXh0IiwiY29kZSIsImF0QnJlYWsiLCJlb2YiLCJjb25zdW1lIiwiZW50ZXIiLCJkYXRhIiwiZXhpdCIsImxpc3QiLCJpbmRleCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIml0ZW0iLCJwcmV2aW91cyIsImNhbGwiLCJleHRyYVJlc29sdmVyIiwicmVzb2x2ZUFsbFRleHQiLCJldmVudHMiLCJjb250ZXh0IiwidHlwZSIsImVuZCIsInNwbGljZSIsImV2ZW50SW5kZXgiLCJsaW5lRW5kaW5nIiwiY2h1bmtzIiwic2xpY2VTdHJlYW0iLCJidWZmZXJJbmRleCIsInNpemUiLCJ0YWJzIiwiY2h1bmsiLCJjaGFyQ29kZUF0Iiwic3BhY2UiLCJob3Jpem9udGFsVGFiIiwidmlydHVhbFNwYWNlIiwidG9rZW4iLCJoYXJkQnJlYWtQcmVmaXhTaXplTWluIiwibGluZVN1ZmZpeCIsImhhcmRCcmVha1RyYWlsaW5nIiwibGluZSIsImNvbHVtbiIsIm9mZnNldCIsIl9pbmRleCIsIl9idWZmZXJJbmRleCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/initialize/text.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/parse.js":
-/*!*****************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/parse.js ***!
- \*****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parse: () => (/* binding */ parse)\n/* harmony export */ });\n/* harmony import */ var micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-combine-extensions */ \"(ssr)/../../node_modules/micromark-util-combine-extensions/index.js\");\n/* harmony import */ var _initialize_content_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./initialize/content.js */ \"(ssr)/../../node_modules/micromark/dev/lib/initialize/content.js\");\n/* harmony import */ var _initialize_document_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./initialize/document.js */ \"(ssr)/../../node_modules/micromark/dev/lib/initialize/document.js\");\n/* harmony import */ var _initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./initialize/flow.js */ \"(ssr)/../../node_modules/micromark/dev/lib/initialize/flow.js\");\n/* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./initialize/text.js */ \"(ssr)/../../node_modules/micromark/dev/lib/initialize/text.js\");\n/* harmony import */ var _create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./create-tokenizer.js */ \"(ssr)/../../node_modules/micromark/dev/lib/create-tokenizer.js\");\n/* harmony import */ var _constructs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructs.js */ \"(ssr)/../../node_modules/micromark/dev/lib/constructs.js\");\n/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */ \n\n\n\n\n\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */ function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */ (0,micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__.combineExtensions)([\n _constructs_js__WEBPACK_IMPORTED_MODULE_1__,\n ...settings.extensions || []\n ]);\n /** @type {ParseContext} */ const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(_initialize_content_js__WEBPACK_IMPORTED_MODULE_2__.content),\n document: create(_initialize_document_js__WEBPACK_IMPORTED_MODULE_3__.document),\n flow: create(_initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__.flow),\n string: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.string),\n text: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.text)\n };\n return parser;\n /**\n * @param {InitialConstruct} initial\n */ function create(initial) {\n return creator;\n /** @type {Create} */ function creator(from) {\n return (0,_create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__.createTokenizer)(parser, initial, from);\n }\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL3BhcnNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7Ozs7OztDQU1DLEdBRWtFO0FBQ3BCO0FBQ0U7QUFDUjtBQUNRO0FBQ0k7QUFDRDtBQUVwRDs7O0NBR0MsR0FDTSxTQUFTUSxNQUFNQyxPQUFPO0lBQzNCLE1BQU1DLFdBQVdELFdBQVcsQ0FBQztJQUM3QixNQUFNRSxhQUFhLG9DQUFvQyxHQUNyRFgsb0ZBQWlCQSxDQUFDO1FBQUNPLDJDQUFpQkE7V0FBTUcsU0FBU0UsVUFBVSxJQUFJLEVBQUU7S0FBRTtJQUd2RSx5QkFBeUIsR0FDekIsTUFBTUMsU0FBUztRQUNiQyxTQUFTLEVBQUU7UUFDWEMsTUFBTSxDQUFDO1FBQ1BKO1FBQ0FWLFNBQVNlLE9BQU9mLDJEQUFPQTtRQUN2QkMsVUFBVWMsT0FBT2QsNkRBQVFBO1FBQ3pCQyxNQUFNYSxPQUFPYixxREFBSUE7UUFDakJDLFFBQVFZLE9BQU9aLHVEQUFNQTtRQUNyQkMsTUFBTVcsT0FBT1gscURBQUlBO0lBQ25CO0lBRUEsT0FBT1E7SUFFUDs7R0FFQyxHQUNELFNBQVNHLE9BQU9DLE9BQU87UUFDckIsT0FBT0M7UUFDUCxtQkFBbUIsR0FDbkIsU0FBU0EsUUFBUUMsSUFBSTtZQUNuQixPQUFPYixxRUFBZUEsQ0FBQ08sUUFBUUksU0FBU0U7UUFDMUM7SUFDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrL2Rldi9saWIvcGFyc2UuanM/YzlhYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ3JlYXRlfSBDcmVhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRnVsbE5vcm1hbGl6ZWRFeHRlbnNpb259IEZ1bGxOb3JtYWxpemVkRXh0ZW5zaW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkluaXRpYWxDb25zdHJ1Y3R9IEluaXRpYWxDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUGFyc2VDb250ZXh0fSBQYXJzZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUGFyc2VPcHRpb25zfSBQYXJzZU9wdGlvbnNcbiAqL1xuXG5pbXBvcnQge2NvbWJpbmVFeHRlbnNpb25zfSBmcm9tICdtaWNyb21hcmstdXRpbC1jb21iaW5lLWV4dGVuc2lvbnMnXG5pbXBvcnQge2NvbnRlbnR9IGZyb20gJy4vaW5pdGlhbGl6ZS9jb250ZW50LmpzJ1xuaW1wb3J0IHtkb2N1bWVudH0gZnJvbSAnLi9pbml0aWFsaXplL2RvY3VtZW50LmpzJ1xuaW1wb3J0IHtmbG93fSBmcm9tICcuL2luaXRpYWxpemUvZmxvdy5qcydcbmltcG9ydCB7c3RyaW5nLCB0ZXh0fSBmcm9tICcuL2luaXRpYWxpemUvdGV4dC5qcydcbmltcG9ydCB7Y3JlYXRlVG9rZW5pemVyfSBmcm9tICcuL2NyZWF0ZS10b2tlbml6ZXIuanMnXG5pbXBvcnQgKiBhcyBkZWZhdWx0Q29uc3RydWN0cyBmcm9tICcuL2NvbnN0cnVjdHMuanMnXG5cbi8qKlxuICogQHBhcmFtIHtQYXJzZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqIEByZXR1cm5zIHtQYXJzZUNvbnRleHR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fVxuICBjb25zdCBjb25zdHJ1Y3RzID0gLyoqIEB0eXBlIHtGdWxsTm9ybWFsaXplZEV4dGVuc2lvbn0gKi8gKFxuICAgIGNvbWJpbmVFeHRlbnNpb25zKFtkZWZhdWx0Q29uc3RydWN0cywgLi4uKHNldHRpbmdzLmV4dGVuc2lvbnMgfHwgW10pXSlcbiAgKVxuXG4gIC8qKiBAdHlwZSB7UGFyc2VDb250ZXh0fSAqL1xuICBjb25zdCBwYXJzZXIgPSB7XG4gICAgZGVmaW5lZDogW10sXG4gICAgbGF6eToge30sXG4gICAgY29uc3RydWN0cyxcbiAgICBjb250ZW50OiBjcmVhdGUoY29udGVudCksXG4gICAgZG9jdW1lbnQ6IGNyZWF0ZShkb2N1bWVudCksXG4gICAgZmxvdzogY3JlYXRlKGZsb3cpLFxuICAgIHN0cmluZzogY3JlYXRlKHN0cmluZyksXG4gICAgdGV4dDogY3JlYXRlKHRleHQpXG4gIH1cblxuICByZXR1cm4gcGFyc2VyXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7SW5pdGlhbENvbnN0cnVjdH0gaW5pdGlhbFxuICAgKi9cbiAgZnVuY3Rpb24gY3JlYXRlKGluaXRpYWwpIHtcbiAgICByZXR1cm4gY3JlYXRvclxuICAgIC8qKiBAdHlwZSB7Q3JlYXRlfSAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0b3IoZnJvbSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVRva2VuaXplcihwYXJzZXIsIGluaXRpYWwsIGZyb20pXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiY29tYmluZUV4dGVuc2lvbnMiLCJjb250ZW50IiwiZG9jdW1lbnQiLCJmbG93Iiwic3RyaW5nIiwidGV4dCIsImNyZWF0ZVRva2VuaXplciIsImRlZmF1bHRDb25zdHJ1Y3RzIiwicGFyc2UiLCJvcHRpb25zIiwic2V0dGluZ3MiLCJjb25zdHJ1Y3RzIiwiZXh0ZW5zaW9ucyIsInBhcnNlciIsImRlZmluZWQiLCJsYXp5IiwiY3JlYXRlIiwiaW5pdGlhbCIsImNyZWF0b3IiLCJmcm9tIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/parse.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/postprocess.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/postprocess.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ postprocess: () => (/* binding */ postprocess)\n/* harmony export */ });\n/* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-subtokenize */ \"(ssr)/../../node_modules/micromark-util-subtokenize/dev/index.js\");\n/**\n * @typedef {import('micromark-util-types').Event} Event\n */ \n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */ function postprocess(events) {\n while(!(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__.subtokenize)(events)){\n // Empty\n }\n return events;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL3Bvc3Rwcm9jZXNzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7O0NBRUMsR0FFcUQ7QUFFdEQ7OztDQUdDLEdBQ00sU0FBU0MsWUFBWUMsTUFBTTtJQUNoQyxNQUFPLENBQUNGLHVFQUFXQSxDQUFDRSxRQUFTO0lBQzNCLFFBQVE7SUFDVjtJQUVBLE9BQU9BO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9taWNyb21hcmsvZGV2L2xpYi9wb3N0cHJvY2Vzcy5qcz9jZTM0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FdmVudH0gRXZlbnRcbiAqL1xuXG5pbXBvcnQge3N1YnRva2VuaXplfSBmcm9tICdtaWNyb21hcmstdXRpbC1zdWJ0b2tlbml6ZSdcblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PEV2ZW50Pn0gZXZlbnRzXG4gKiBAcmV0dXJucyB7QXJyYXk8RXZlbnQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9zdHByb2Nlc3MoZXZlbnRzKSB7XG4gIHdoaWxlICghc3VidG9rZW5pemUoZXZlbnRzKSkge1xuICAgIC8vIEVtcHR5XG4gIH1cblxuICByZXR1cm4gZXZlbnRzXG59XG4iXSwibmFtZXMiOlsic3VidG9rZW5pemUiLCJwb3N0cHJvY2VzcyIsImV2ZW50cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/postprocess.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/micromark/dev/lib/preprocess.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/micromark/dev/lib/preprocess.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ preprocess: () => (/* binding */ preprocess)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/codes.js\");\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ \"(ssr)/../../node_modules/micromark-util-symbol/lib/constants.js\");\n/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */ /**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */ \nconst search = /[\\0\\t\\n\\r]/g;\n/**\n * @returns {Preprocessor}\n */ function preprocess() {\n let column = 1;\n let buffer = \"\";\n /** @type {boolean | undefined} */ let start = true;\n /** @type {boolean | undefined} */ let atCarriageReturn;\n return preprocessor;\n /** @type {Preprocessor} */ // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */ const chunks = [];\n /** @type {RegExpMatchArray | null} */ let match;\n /** @type {number} */ let next;\n /** @type {number} */ let startPosition;\n /** @type {number} */ let endPosition;\n /** @type {Code} */ let code;\n value = buffer + (typeof value === \"string\" ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = \"\";\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.byteOrderMarker) {\n startPosition++;\n }\n start = undefined;\n }\n while(startPosition < value.length){\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lf && startPosition === endPosition && atCarriageReturn) {\n chunks.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch(code){\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.nul:\n {\n chunks.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.replacementCharacter);\n column++;\n break;\n }\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.ht:\n {\n next = Math.ceil(column / micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.constants.tabSize) * micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.constants.tabSize;\n chunks.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab);\n while(column++ < next)chunks.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace);\n break;\n }\n case micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lf:\n {\n chunks.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn);\n if (buffer) chunks.push(buffer);\n chunks.push(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.eof);\n }\n return chunks;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL21pY3JvbWFyay9kZXYvbGliL3ByZXByb2Nlc3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7O0NBS0MsR0FFRDs7Ozs7O0NBTUMsR0FFcUQ7QUFFdEQsTUFBTUUsU0FBUztBQUVmOztDQUVDLEdBQ00sU0FBU0M7SUFDZCxJQUFJQyxTQUFTO0lBQ2IsSUFBSUMsU0FBUztJQUNiLGdDQUFnQyxHQUNoQyxJQUFJQyxRQUFRO0lBQ1osZ0NBQWdDLEdBQ2hDLElBQUlDO0lBRUosT0FBT0M7SUFFUCx5QkFBeUIsR0FDekIsc0NBQXNDO0lBQ3RDLFNBQVNBLGFBQWFDLEtBQUssRUFBRUMsUUFBUSxFQUFFQyxHQUFHO1FBQ3hDLHlCQUF5QixHQUN6QixNQUFNQyxTQUFTLEVBQUU7UUFDakIsb0NBQW9DLEdBQ3BDLElBQUlDO1FBQ0osbUJBQW1CLEdBQ25CLElBQUlDO1FBQ0osbUJBQW1CLEdBQ25CLElBQUlDO1FBQ0osbUJBQW1CLEdBQ25CLElBQUlDO1FBQ0osaUJBQWlCLEdBQ2pCLElBQUlDO1FBRUpSLFFBQ0VKLFNBQ0MsUUFBT0ksVUFBVSxXQUNkQSxNQUFNUyxRQUFRLEtBQ2QsSUFBSUMsWUFBWVQsWUFBWVUsV0FBV0MsTUFBTSxDQUFDWixNQUFLO1FBRXpETSxnQkFBZ0I7UUFDaEJWLFNBQVM7UUFFVCxJQUFJQyxPQUFPO1lBQ1QsK0RBQStEO1lBQy9ELElBQUlHLE1BQU1hLFVBQVUsQ0FBQyxPQUFPdEIsd0RBQUtBLENBQUN1QixlQUFlLEVBQUU7Z0JBQ2pEUjtZQUNGO1lBRUFULFFBQVFjO1FBQ1Y7UUFFQSxNQUFPTCxnQkFBZ0JOLE1BQU1lLE1BQU0sQ0FBRTtZQUNuQ3RCLE9BQU91QixTQUFTLEdBQUdWO1lBQ25CRixRQUFRWCxPQUFPd0IsSUFBSSxDQUFDakI7WUFDcEJPLGNBQ0VILFNBQVNBLE1BQU1jLEtBQUssS0FBS1AsWUFBWVAsTUFBTWMsS0FBSyxHQUFHbEIsTUFBTWUsTUFBTTtZQUNqRVAsT0FBT1IsTUFBTWEsVUFBVSxDQUFDTjtZQUV4QixJQUFJLENBQUNILE9BQU87Z0JBQ1ZSLFNBQVNJLE1BQU1tQixLQUFLLENBQUNiO2dCQUNyQjtZQUNGO1lBRUEsSUFDRUUsU0FBU2pCLHdEQUFLQSxDQUFDNkIsRUFBRSxJQUNqQmQsa0JBQWtCQyxlQUNsQlQsa0JBQ0E7Z0JBQ0FLLE9BQU9rQixJQUFJLENBQUM5Qix3REFBS0EsQ0FBQytCLHNCQUFzQjtnQkFDeEN4QixtQkFBbUJhO1lBQ3JCLE9BQU87Z0JBQ0wsSUFBSWIsa0JBQWtCO29CQUNwQkssT0FBT2tCLElBQUksQ0FBQzlCLHdEQUFLQSxDQUFDZ0MsY0FBYztvQkFDaEN6QixtQkFBbUJhO2dCQUNyQjtnQkFFQSxJQUFJTCxnQkFBZ0JDLGFBQWE7b0JBQy9CSixPQUFPa0IsSUFBSSxDQUFDckIsTUFBTW1CLEtBQUssQ0FBQ2IsZUFBZUM7b0JBQ3ZDWixVQUFVWSxjQUFjRDtnQkFDMUI7Z0JBRUEsT0FBUUU7b0JBQ04sS0FBS2pCLHdEQUFLQSxDQUFDaUMsR0FBRzt3QkFBRTs0QkFDZHJCLE9BQU9rQixJQUFJLENBQUM5Qix3REFBS0EsQ0FBQ2tDLG9CQUFvQjs0QkFDdEM5Qjs0QkFFQTt3QkFDRjtvQkFFQSxLQUFLSix3REFBS0EsQ0FBQ21DLEVBQUU7d0JBQUU7NEJBQ2JyQixPQUFPc0IsS0FBS0MsSUFBSSxDQUFDakMsU0FBU0gsNERBQVNBLENBQUNxQyxPQUFPLElBQUlyQyw0REFBU0EsQ0FBQ3FDLE9BQU87NEJBQ2hFMUIsT0FBT2tCLElBQUksQ0FBQzlCLHdEQUFLQSxDQUFDdUMsYUFBYTs0QkFDL0IsTUFBT25DLFdBQVdVLEtBQU1GLE9BQU9rQixJQUFJLENBQUM5Qix3REFBS0EsQ0FBQ3dDLFlBQVk7NEJBRXREO3dCQUNGO29CQUVBLEtBQUt4Qyx3REFBS0EsQ0FBQzZCLEVBQUU7d0JBQUU7NEJBQ2JqQixPQUFPa0IsSUFBSSxDQUFDOUIsd0RBQUtBLENBQUN5QyxRQUFROzRCQUMxQnJDLFNBQVM7NEJBRVQ7d0JBQ0Y7b0JBRUE7d0JBQVM7NEJBQ1BHLG1CQUFtQjs0QkFDbkJILFNBQVM7d0JBQ1g7Z0JBQ0Y7WUFDRjtZQUVBVyxnQkFBZ0JDLGNBQWM7UUFDaEM7UUFFQSxJQUFJTCxLQUFLO1lBQ1AsSUFBSUosa0JBQWtCSyxPQUFPa0IsSUFBSSxDQUFDOUIsd0RBQUtBLENBQUNnQyxjQUFjO1lBQ3RELElBQUkzQixRQUFRTyxPQUFPa0IsSUFBSSxDQUFDekI7WUFDeEJPLE9BQU9rQixJQUFJLENBQUM5Qix3REFBS0EsQ0FBQzBDLEdBQUc7UUFDdkI7UUFFQSxPQUFPOUI7SUFDVDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrL2Rldi9saWIvcHJlcHJvY2Vzcy5qcz8yZTViIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5DaHVua30gQ2h1bmtcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29kZX0gQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FbmNvZGluZ30gRW5jb2RpbmdcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuVmFsdWV9IFZhbHVlXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgUHJlcHJvY2Vzc29yXG4gKiBAcGFyYW0ge1ZhbHVlfSB2YWx1ZVxuICogQHBhcmFtIHtFbmNvZGluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmNvZGluZ11cbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmQ9ZmFsc2VdXG4gKiBAcmV0dXJucyB7QXJyYXk8Q2h1bms+fVxuICovXG5cbmltcG9ydCB7Y29kZXMsIGNvbnN0YW50c30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sJ1xuXG5jb25zdCBzZWFyY2ggPSAvW1xcMFxcdFxcblxccl0vZ1xuXG4vKipcbiAqIEByZXR1cm5zIHtQcmVwcm9jZXNzb3J9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwcm9jZXNzKCkge1xuICBsZXQgY29sdW1uID0gMVxuICBsZXQgYnVmZmVyID0gJydcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgc3RhcnQgPSB0cnVlXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGF0Q2FycmlhZ2VSZXR1cm5cblxuICByZXR1cm4gcHJlcHJvY2Vzc29yXG5cbiAgLyoqIEB0eXBlIHtQcmVwcm9jZXNzb3J9ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIGZ1bmN0aW9uIHByZXByb2Nlc3Nvcih2YWx1ZSwgZW5jb2RpbmcsIGVuZCkge1xuICAgIC8qKiBAdHlwZSB7QXJyYXk8Q2h1bms+fSAqL1xuICAgIGNvbnN0IGNodW5rcyA9IFtdXG4gICAgLyoqIEB0eXBlIHtSZWdFeHBNYXRjaEFycmF5IHwgbnVsbH0gKi9cbiAgICBsZXQgbWF0Y2hcbiAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICBsZXQgbmV4dFxuICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgIGxldCBzdGFydFBvc2l0aW9uXG4gICAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gICAgbGV0IGVuZFBvc2l0aW9uXG4gICAgLyoqIEB0eXBlIHtDb2RlfSAqL1xuICAgIGxldCBjb2RlXG5cbiAgICB2YWx1ZSA9XG4gICAgICBidWZmZXIgK1xuICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyB2YWx1ZS50b1N0cmluZygpXG4gICAgICAgIDogbmV3IFRleHREZWNvZGVyKGVuY29kaW5nIHx8IHVuZGVmaW5lZCkuZGVjb2RlKHZhbHVlKSlcblxuICAgIHN0YXJ0UG9zaXRpb24gPSAwXG4gICAgYnVmZmVyID0gJydcblxuICAgIGlmIChzdGFydCkge1xuICAgICAgLy8gVG8gZG86IGBtYXJrZG93bi1yc2AgYWN0dWFsbHkgcGFyc2VzIEJPTXMgKGJ5dGUgb3JkZXIgbWFyaykuXG4gICAgICBpZiAodmFsdWUuY2hhckNvZGVBdCgwKSA9PT0gY29kZXMuYnl0ZU9yZGVyTWFya2VyKSB7XG4gICAgICAgIHN0YXJ0UG9zaXRpb24rK1xuICAgICAgfVxuXG4gICAgICBzdGFydCA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHdoaWxlIChzdGFydFBvc2l0aW9uIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICBzZWFyY2gubGFzdEluZGV4ID0gc3RhcnRQb3NpdGlvblxuICAgICAgbWF0Y2ggPSBzZWFyY2guZXhlYyh2YWx1ZSlcbiAgICAgIGVuZFBvc2l0aW9uID1cbiAgICAgICAgbWF0Y2ggJiYgbWF0Y2guaW5kZXggIT09IHVuZGVmaW5lZCA/IG1hdGNoLmluZGV4IDogdmFsdWUubGVuZ3RoXG4gICAgICBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChlbmRQb3NpdGlvbilcblxuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICBidWZmZXIgPSB2YWx1ZS5zbGljZShzdGFydFBvc2l0aW9uKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGNvZGUgPT09IGNvZGVzLmxmICYmXG4gICAgICAgIHN0YXJ0UG9zaXRpb24gPT09IGVuZFBvc2l0aW9uICYmXG4gICAgICAgIGF0Q2FycmlhZ2VSZXR1cm5cbiAgICAgICkge1xuICAgICAgICBjaHVua3MucHVzaChjb2Rlcy5jYXJyaWFnZVJldHVybkxpbmVGZWVkKVxuICAgICAgICBhdENhcnJpYWdlUmV0dXJuID0gdW5kZWZpbmVkXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYXRDYXJyaWFnZVJldHVybikge1xuICAgICAgICAgIGNodW5rcy5wdXNoKGNvZGVzLmNhcnJpYWdlUmV0dXJuKVxuICAgICAgICAgIGF0Q2FycmlhZ2VSZXR1cm4gPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGFydFBvc2l0aW9uIDwgZW5kUG9zaXRpb24pIHtcbiAgICAgICAgICBjaHVua3MucHVzaCh2YWx1ZS5zbGljZShzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbikpXG4gICAgICAgICAgY29sdW1uICs9IGVuZFBvc2l0aW9uIC0gc3RhcnRQb3NpdGlvblxuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgICAgY2FzZSBjb2Rlcy5udWw6IHtcbiAgICAgICAgICAgIGNodW5rcy5wdXNoKGNvZGVzLnJlcGxhY2VtZW50Q2hhcmFjdGVyKVxuICAgICAgICAgICAgY29sdW1uKytcblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlIGNvZGVzLmh0OiB7XG4gICAgICAgICAgICBuZXh0ID0gTWF0aC5jZWlsKGNvbHVtbiAvIGNvbnN0YW50cy50YWJTaXplKSAqIGNvbnN0YW50cy50YWJTaXplXG4gICAgICAgICAgICBjaHVua3MucHVzaChjb2Rlcy5ob3Jpem9udGFsVGFiKVxuICAgICAgICAgICAgd2hpbGUgKGNvbHVtbisrIDwgbmV4dCkgY2h1bmtzLnB1c2goY29kZXMudmlydHVhbFNwYWNlKVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgY29kZXMubGY6IHtcbiAgICAgICAgICAgIGNodW5rcy5wdXNoKGNvZGVzLmxpbmVGZWVkKVxuICAgICAgICAgICAgY29sdW1uID0gMVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGF0Q2FycmlhZ2VSZXR1cm4gPSB0cnVlXG4gICAgICAgICAgICBjb2x1bW4gPSAxXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN0YXJ0UG9zaXRpb24gPSBlbmRQb3NpdGlvbiArIDFcbiAgICB9XG5cbiAgICBpZiAoZW5kKSB7XG4gICAgICBpZiAoYXRDYXJyaWFnZVJldHVybikgY2h1bmtzLnB1c2goY29kZXMuY2FycmlhZ2VSZXR1cm4pXG4gICAgICBpZiAoYnVmZmVyKSBjaHVua3MucHVzaChidWZmZXIpXG4gICAgICBjaHVua3MucHVzaChjb2Rlcy5lb2YpXG4gICAgfVxuXG4gICAgcmV0dXJuIGNodW5rc1xuICB9XG59XG4iXSwibmFtZXMiOlsiY29kZXMiLCJjb25zdGFudHMiLCJzZWFyY2giLCJwcmVwcm9jZXNzIiwiY29sdW1uIiwiYnVmZmVyIiwic3RhcnQiLCJhdENhcnJpYWdlUmV0dXJuIiwicHJlcHJvY2Vzc29yIiwidmFsdWUiLCJlbmNvZGluZyIsImVuZCIsImNodW5rcyIsIm1hdGNoIiwibmV4dCIsInN0YXJ0UG9zaXRpb24iLCJlbmRQb3NpdGlvbiIsImNvZGUiLCJ0b1N0cmluZyIsIlRleHREZWNvZGVyIiwidW5kZWZpbmVkIiwiZGVjb2RlIiwiY2hhckNvZGVBdCIsImJ5dGVPcmRlck1hcmtlciIsImxlbmd0aCIsImxhc3RJbmRleCIsImV4ZWMiLCJpbmRleCIsInNsaWNlIiwibGYiLCJwdXNoIiwiY2FycmlhZ2VSZXR1cm5MaW5lRmVlZCIsImNhcnJpYWdlUmV0dXJuIiwibnVsIiwicmVwbGFjZW1lbnRDaGFyYWN0ZXIiLCJodCIsIk1hdGgiLCJjZWlsIiwidGFiU2l6ZSIsImhvcml6b250YWxUYWIiLCJ2aXJ0dWFsU3BhY2UiLCJsaW5lRmVlZCIsImVvZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/micromark/dev/lib/preprocess.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/index.js":
-/*!********************************************************!*\
- !*** ../../node_modules/property-information/index.js ***!
- \********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ find: () => (/* reexport safe */ _lib_find_js__WEBPACK_IMPORTED_MODULE_0__.find),\n/* harmony export */ hastToReact: () => (/* reexport safe */ _lib_hast_to_react_js__WEBPACK_IMPORTED_MODULE_1__.hastToReact),\n/* harmony export */ html: () => (/* binding */ html),\n/* harmony export */ normalize: () => (/* reexport safe */ _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__.normalize),\n/* harmony export */ svg: () => (/* binding */ svg)\n/* harmony export */ });\n/* harmony import */ var _lib_util_merge_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/util/merge.js */ \"(ssr)/../../node_modules/property-information/lib/util/merge.js\");\n/* harmony import */ var _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/xlink.js */ \"(ssr)/../../node_modules/property-information/lib/xlink.js\");\n/* harmony import */ var _lib_xml_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/xml.js */ \"(ssr)/../../node_modules/property-information/lib/xml.js\");\n/* harmony import */ var _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/xmlns.js */ \"(ssr)/../../node_modules/property-information/lib/xmlns.js\");\n/* harmony import */ var _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/aria.js */ \"(ssr)/../../node_modules/property-information/lib/aria.js\");\n/* harmony import */ var _lib_html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/html.js */ \"(ssr)/../../node_modules/property-information/lib/html.js\");\n/* harmony import */ var _lib_svg_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lib/svg.js */ \"(ssr)/../../node_modules/property-information/lib/svg.js\");\n/* harmony import */ var _lib_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/find.js */ \"(ssr)/../../node_modules/property-information/lib/find.js\");\n/* harmony import */ var _lib_hast_to_react_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/hast-to-react.js */ \"(ssr)/../../node_modules/property-information/lib/hast-to-react.js\");\n/* harmony import */ var _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/normalize.js */ \"(ssr)/../../node_modules/property-information/lib/normalize.js\");\n/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */ \n\n\n\n\n\n\n\n\n\nconst html = (0,_lib_util_merge_js__WEBPACK_IMPORTED_MODULE_3__.merge)([\n _lib_xml_js__WEBPACK_IMPORTED_MODULE_4__.xml,\n _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__.xlink,\n _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__.xmlns,\n _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__.aria,\n _lib_html_js__WEBPACK_IMPORTED_MODULE_8__.html\n], \"html\");\nconst svg = (0,_lib_util_merge_js__WEBPACK_IMPORTED_MODULE_3__.merge)([\n _lib_xml_js__WEBPACK_IMPORTED_MODULE_4__.xml,\n _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__.xlink,\n _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__.xmlns,\n _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__.aria,\n _lib_svg_js__WEBPACK_IMPORTED_MODULE_9__.svg\n], \"svg\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Q0FHQyxHQUV3QztBQUNMO0FBQ0o7QUFDSTtBQUNGO0FBQ1k7QUFDSDtBQUVUO0FBQ2dCO0FBQ047QUFDckMsTUFBTUssT0FBT0wseURBQUtBLENBQUM7SUFBQ0UsNENBQUdBO0lBQUVELGdEQUFLQTtJQUFFRSxnREFBS0E7SUFBRUMsOENBQUlBO0lBQUVFLDhDQUFRQTtDQUFDLEVBQUUsUUFBTztBQUMvRCxNQUFNQyxNQUFNUCx5REFBS0EsQ0FBQztJQUFDRSw0Q0FBR0E7SUFBRUQsZ0RBQUtBO0lBQUVFLGdEQUFLQTtJQUFFQyw4Q0FBSUE7SUFBRUksNENBQU9BO0NBQUMsRUFBRSxPQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vaW5kZXguanM/ZDllYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL3V0aWwvaW5mby5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL3V0aWwvc2NoZW1hLmpzJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG5pbXBvcnQge21lcmdlfSBmcm9tICcuL2xpYi91dGlsL21lcmdlLmpzJ1xuaW1wb3J0IHt4bGlua30gZnJvbSAnLi9saWIveGxpbmsuanMnXG5pbXBvcnQge3htbH0gZnJvbSAnLi9saWIveG1sLmpzJ1xuaW1wb3J0IHt4bWxuc30gZnJvbSAnLi9saWIveG1sbnMuanMnXG5pbXBvcnQge2FyaWF9IGZyb20gJy4vbGliL2FyaWEuanMnXG5pbXBvcnQge2h0bWwgYXMgaHRtbEJhc2V9IGZyb20gJy4vbGliL2h0bWwuanMnXG5pbXBvcnQge3N2ZyBhcyBzdmdCYXNlfSBmcm9tICcuL2xpYi9zdmcuanMnXG5cbmV4cG9ydCB7ZmluZH0gZnJvbSAnLi9saWIvZmluZC5qcydcbmV4cG9ydCB7aGFzdFRvUmVhY3R9IGZyb20gJy4vbGliL2hhc3QtdG8tcmVhY3QuanMnXG5leHBvcnQge25vcm1hbGl6ZX0gZnJvbSAnLi9saWIvbm9ybWFsaXplLmpzJ1xuZXhwb3J0IGNvbnN0IGh0bWwgPSBtZXJnZShbeG1sLCB4bGluaywgeG1sbnMsIGFyaWEsIGh0bWxCYXNlXSwgJ2h0bWwnKVxuZXhwb3J0IGNvbnN0IHN2ZyA9IG1lcmdlKFt4bWwsIHhsaW5rLCB4bWxucywgYXJpYSwgc3ZnQmFzZV0sICdzdmcnKVxuIl0sIm5hbWVzIjpbIm1lcmdlIiwieGxpbmsiLCJ4bWwiLCJ4bWxucyIsImFyaWEiLCJodG1sIiwiaHRtbEJhc2UiLCJzdmciLCJzdmdCYXNlIiwiZmluZCIsImhhc3RUb1JlYWN0Iiwibm9ybWFsaXplIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/aria.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/property-information/lib/aria.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ aria: () => (/* binding */ aria)\n/* harmony export */ });\n/* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/types.js */ \"(ssr)/../../node_modules/property-information/lib/util/types.js\");\n/* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ \"(ssr)/../../node_modules/property-information/lib/util/create.js\");\n\n\nconst aria = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({\n transform (_, prop) {\n return prop === \"role\" ? prop : \"aria-\" + prop.slice(4).toLowerCase();\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaAutoComplete: null,\n ariaBusy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaChecked: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaColCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaColIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaColSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaControls: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,\n ariaDetails: null,\n ariaDisabled: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaDropEffect: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaFlowTo: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,\n ariaGrabbed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaHasPopup: null,\n ariaHidden: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,\n ariaLevel: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaLive: null,\n ariaModal: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaMultiLine: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaMultiSelectable: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaOrientation: null,\n ariaOwns: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaPressed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaReadOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaRelevant: null,\n ariaRequired: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaRoleDescription: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,\n ariaRowCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaRowIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaRowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaSelected: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,\n ariaSetSize: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaSort: null,\n ariaValueMax: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaValueMin: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaValueNow: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,\n ariaValueText: null,\n role: null\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFrRTtBQUMzQjtBQUVoQyxNQUFNSSxPQUFPRCx1REFBTUEsQ0FBQztJQUN6QkUsV0FBVUMsQ0FBQyxFQUFFQyxJQUFJO1FBQ2YsT0FBT0EsU0FBUyxTQUFTQSxPQUFPLFVBQVVBLEtBQUtDLEtBQUssQ0FBQyxHQUFHQyxXQUFXO0lBQ3JFO0lBQ0FDLFlBQVk7UUFDVkMsc0JBQXNCO1FBQ3RCQyxZQUFZWixzREFBVUE7UUFDdEJhLGtCQUFrQjtRQUNsQkMsVUFBVWQsc0RBQVVBO1FBQ3BCZSxhQUFhZixzREFBVUE7UUFDdkJnQixjQUFjZixrREFBTUE7UUFDcEJnQixjQUFjaEIsa0RBQU1BO1FBQ3BCaUIsYUFBYWpCLGtEQUFNQTtRQUNuQmtCLGNBQWNqQiwwREFBY0E7UUFDNUJrQixhQUFhO1FBQ2JDLGlCQUFpQm5CLDBEQUFjQTtRQUMvQm9CLGFBQWE7UUFDYkMsY0FBY3ZCLHNEQUFVQTtRQUN4QndCLGdCQUFnQnRCLDBEQUFjQTtRQUM5QnVCLGtCQUFrQjtRQUNsQkMsY0FBYzFCLHNEQUFVQTtRQUN4QjJCLFlBQVl6QiwwREFBY0E7UUFDMUIwQixhQUFhNUIsc0RBQVVBO1FBQ3ZCNkIsY0FBYztRQUNkQyxZQUFZOUIsc0RBQVVBO1FBQ3RCK0IsYUFBYTtRQUNiQyxrQkFBa0I7UUFDbEJDLFdBQVc7UUFDWEMsZ0JBQWdCaEMsMERBQWNBO1FBQzlCaUMsV0FBV2xDLGtEQUFNQTtRQUNqQm1DLFVBQVU7UUFDVkMsV0FBV3JDLHNEQUFVQTtRQUNyQnNDLGVBQWV0QyxzREFBVUE7UUFDekJ1QyxxQkFBcUJ2QyxzREFBVUE7UUFDL0J3QyxpQkFBaUI7UUFDakJDLFVBQVV2QywwREFBY0E7UUFDeEJ3QyxpQkFBaUI7UUFDakJDLGNBQWMxQyxrREFBTUE7UUFDcEIyQyxhQUFhNUMsc0RBQVVBO1FBQ3ZCNkMsY0FBYzdDLHNEQUFVQTtRQUN4QjhDLGNBQWM7UUFDZEMsY0FBYy9DLHNEQUFVQTtRQUN4QmdELHFCQUFxQjlDLDBEQUFjQTtRQUNuQytDLGNBQWNoRCxrREFBTUE7UUFDcEJpRCxjQUFjakQsa0RBQU1BO1FBQ3BCa0QsYUFBYWxELGtEQUFNQTtRQUNuQm1ELGNBQWNwRCxzREFBVUE7UUFDeEJxRCxhQUFhcEQsa0RBQU1BO1FBQ25CcUQsVUFBVTtRQUNWQyxjQUFjdEQsa0RBQU1BO1FBQ3BCdUQsY0FBY3ZELGtEQUFNQTtRQUNwQndELGNBQWN4RCxrREFBTUE7UUFDcEJ5RCxlQUFlO1FBQ2ZDLE1BQU07SUFDUjtBQUNGLEdBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvYXJpYS5qcz8wYTdmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Ym9vbGVhbmlzaCwgbnVtYmVyLCBzcGFjZVNlcGFyYXRlZH0gZnJvbSAnLi91dGlsL3R5cGVzLmpzJ1xuaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5cbmV4cG9ydCBjb25zdCBhcmlhID0gY3JlYXRlKHtcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gcHJvcCA9PT0gJ3JvbGUnID8gcHJvcCA6ICdhcmlhLScgKyBwcm9wLnNsaWNlKDQpLnRvTG93ZXJDYXNlKClcbiAgfSxcbiAgcHJvcGVydGllczoge1xuICAgIGFyaWFBY3RpdmVEZXNjZW5kYW50OiBudWxsLFxuICAgIGFyaWFBdG9taWM6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUF1dG9Db21wbGV0ZTogbnVsbCxcbiAgICBhcmlhQnVzeTogYm9vbGVhbmlzaCxcbiAgICBhcmlhQ2hlY2tlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhQ29sQ291bnQ6IG51bWJlcixcbiAgICBhcmlhQ29sSW5kZXg6IG51bWJlcixcbiAgICBhcmlhQ29sU3BhbjogbnVtYmVyLFxuICAgIGFyaWFDb250cm9sczogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUN1cnJlbnQ6IG51bGwsXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhRGV0YWlsczogbnVsbCxcbiAgICBhcmlhRGlzYWJsZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYURyb3BFZmZlY3Q6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFFcnJvck1lc3NhZ2U6IG51bGwsXG4gICAgYXJpYUV4cGFuZGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFGbG93VG86IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFHcmFiYmVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFIYXNQb3B1cDogbnVsbCxcbiAgICBhcmlhSGlkZGVuOiBib29sZWFuaXNoLFxuICAgIGFyaWFJbnZhbGlkOiBudWxsLFxuICAgIGFyaWFLZXlTaG9ydGN1dHM6IG51bGwsXG4gICAgYXJpYUxhYmVsOiBudWxsLFxuICAgIGFyaWFMYWJlbGxlZEJ5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhTGV2ZWw6IG51bWJlcixcbiAgICBhcmlhTGl2ZTogbnVsbCxcbiAgICBhcmlhTW9kYWw6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU11bHRpTGluZTogYm9vbGVhbmlzaCxcbiAgICBhcmlhTXVsdGlTZWxlY3RhYmxlOiBib29sZWFuaXNoLFxuICAgIGFyaWFPcmllbnRhdGlvbjogbnVsbCxcbiAgICBhcmlhT3duczogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYVBsYWNlaG9sZGVyOiBudWxsLFxuICAgIGFyaWFQb3NJblNldDogbnVtYmVyLFxuICAgIGFyaWFQcmVzc2VkOiBib29sZWFuaXNoLFxuICAgIGFyaWFSZWFkT25seTogYm9vbGVhbmlzaCxcbiAgICBhcmlhUmVsZXZhbnQ6IG51bGwsXG4gICAgYXJpYVJlcXVpcmVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFSb2xlRGVzY3JpcHRpb246IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFSb3dDb3VudDogbnVtYmVyLFxuICAgIGFyaWFSb3dJbmRleDogbnVtYmVyLFxuICAgIGFyaWFSb3dTcGFuOiBudW1iZXIsXG4gICAgYXJpYVNlbGVjdGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFTZXRTaXplOiBudW1iZXIsXG4gICAgYXJpYVNvcnQ6IG51bGwsXG4gICAgYXJpYVZhbHVlTWF4OiBudW1iZXIsXG4gICAgYXJpYVZhbHVlTWluOiBudW1iZXIsXG4gICAgYXJpYVZhbHVlTm93OiBudW1iZXIsXG4gICAgYXJpYVZhbHVlVGV4dDogbnVsbCxcbiAgICByb2xlOiBudWxsXG4gIH1cbn0pXG4iXSwibmFtZXMiOlsiYm9vbGVhbmlzaCIsIm51bWJlciIsInNwYWNlU2VwYXJhdGVkIiwiY3JlYXRlIiwiYXJpYSIsInRyYW5zZm9ybSIsIl8iLCJwcm9wIiwic2xpY2UiLCJ0b0xvd2VyQ2FzZSIsInByb3BlcnRpZXMiLCJhcmlhQWN0aXZlRGVzY2VuZGFudCIsImFyaWFBdG9taWMiLCJhcmlhQXV0b0NvbXBsZXRlIiwiYXJpYUJ1c3kiLCJhcmlhQ2hlY2tlZCIsImFyaWFDb2xDb3VudCIsImFyaWFDb2xJbmRleCIsImFyaWFDb2xTcGFuIiwiYXJpYUNvbnRyb2xzIiwiYXJpYUN1cnJlbnQiLCJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhRGV0YWlscyIsImFyaWFEaXNhYmxlZCIsImFyaWFEcm9wRWZmZWN0IiwiYXJpYUVycm9yTWVzc2FnZSIsImFyaWFFeHBhbmRlZCIsImFyaWFGbG93VG8iLCJhcmlhR3JhYmJlZCIsImFyaWFIYXNQb3B1cCIsImFyaWFIaWRkZW4iLCJhcmlhSW52YWxpZCIsImFyaWFLZXlTaG9ydGN1dHMiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsImFyaWFMZXZlbCIsImFyaWFMaXZlIiwiYXJpYU1vZGFsIiwiYXJpYU11bHRpTGluZSIsImFyaWFNdWx0aVNlbGVjdGFibGUiLCJhcmlhT3JpZW50YXRpb24iLCJhcmlhT3ducyIsImFyaWFQbGFjZWhvbGRlciIsImFyaWFQb3NJblNldCIsImFyaWFQcmVzc2VkIiwiYXJpYVJlYWRPbmx5IiwiYXJpYVJlbGV2YW50IiwiYXJpYVJlcXVpcmVkIiwiYXJpYVJvbGVEZXNjcmlwdGlvbiIsImFyaWFSb3dDb3VudCIsImFyaWFSb3dJbmRleCIsImFyaWFSb3dTcGFuIiwiYXJpYVNlbGVjdGVkIiwiYXJpYVNldFNpemUiLCJhcmlhU29ydCIsImFyaWFWYWx1ZU1heCIsImFyaWFWYWx1ZU1pbiIsImFyaWFWYWx1ZU5vdyIsImFyaWFWYWx1ZVRleHQiLCJyb2xlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/aria.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/find.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/property-information/lib/find.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ find: () => (/* binding */ find)\n/* harmony export */ });\n/* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normalize.js */ \"(ssr)/../../node_modules/property-information/lib/normalize.js\");\n/* harmony import */ var _util_defined_info_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/defined-info.js */ \"(ssr)/../../node_modules/property-information/lib/util/defined-info.js\");\n/* harmony import */ var _util_info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/info.js */ \"(ssr)/../../node_modules/property-information/lib/util/info.js\");\n/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */ \n\n\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */ function find(schema, value) {\n const normal = (0,_normalize_js__WEBPACK_IMPORTED_MODULE_0__.normalize)(value);\n let prop = value;\n let Type = _util_info_js__WEBPACK_IMPORTED_MODULE_1__.Info;\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]];\n }\n if (normal.length > 4 && normal.slice(0, 4) === \"data\" && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === \"-\") {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase);\n prop = \"data\" + rest.charAt(0).toUpperCase() + rest.slice(1);\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4);\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab);\n if (dashes.charAt(0) !== \"-\") {\n dashes = \"-\" + dashes;\n }\n value = \"data\" + dashes;\n }\n }\n Type = _util_defined_info_js__WEBPACK_IMPORTED_MODULE_2__.DefinedInfo;\n }\n return new Type(prop, value);\n}\n/**\n * @param {string} $0\n * @returns {string}\n */ function kebab($0) {\n return \"-\" + $0.toLowerCase();\n}\n/**\n * @param {string} $0\n * @returns {string}\n */ function camelcase($0) {\n return $0.charAt(1).toUpperCase();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9maW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Q0FFQyxHQUV1QztBQUNVO0FBQ2Y7QUFFbkMsTUFBTUcsUUFBUTtBQUNkLE1BQU1DLE9BQU87QUFDYixNQUFNQyxNQUFNO0FBRVo7Ozs7Q0FJQyxHQUNNLFNBQVNDLEtBQUtDLE1BQU0sRUFBRUMsS0FBSztJQUNoQyxNQUFNQyxTQUFTVCx3REFBU0EsQ0FBQ1E7SUFDekIsSUFBSUUsT0FBT0Y7SUFDWCxJQUFJRyxPQUFPVCwrQ0FBSUE7SUFFZixJQUFJTyxVQUFVRixPQUFPRSxNQUFNLEVBQUU7UUFDM0IsT0FBT0YsT0FBT0ssUUFBUSxDQUFDTCxPQUFPRSxNQUFNLENBQUNBLE9BQU8sQ0FBQztJQUMvQztJQUVBLElBQUlBLE9BQU9JLE1BQU0sR0FBRyxLQUFLSixPQUFPSyxLQUFLLENBQUMsR0FBRyxPQUFPLFVBQVVYLE1BQU1ZLElBQUksQ0FBQ1AsUUFBUTtRQUMzRSx5QkFBeUI7UUFDekIsSUFBSUEsTUFBTVEsTUFBTSxDQUFDLE9BQU8sS0FBSztZQUMzQiwyQkFBMkI7WUFDM0IsTUFBTUMsT0FBT1QsTUFBTU0sS0FBSyxDQUFDLEdBQUdJLE9BQU8sQ0FBQ2QsTUFBTWU7WUFDMUNULE9BQU8sU0FBU08sS0FBS0QsTUFBTSxDQUFDLEdBQUdJLFdBQVcsS0FBS0gsS0FBS0gsS0FBSyxDQUFDO1FBQzVELE9BQU87WUFDTCw2QkFBNkI7WUFDN0IsTUFBTUcsT0FBT1QsTUFBTU0sS0FBSyxDQUFDO1lBRXpCLElBQUksQ0FBQ1YsS0FBS1csSUFBSSxDQUFDRSxPQUFPO2dCQUNwQixJQUFJSSxTQUFTSixLQUFLQyxPQUFPLENBQUNiLEtBQUtpQjtnQkFFL0IsSUFBSUQsT0FBT0wsTUFBTSxDQUFDLE9BQU8sS0FBSztvQkFDNUJLLFNBQVMsTUFBTUE7Z0JBQ2pCO2dCQUVBYixRQUFRLFNBQVNhO1lBQ25CO1FBQ0Y7UUFFQVYsT0FBT1YsOERBQVdBO0lBQ3BCO0lBRUEsT0FBTyxJQUFJVSxLQUFLRCxNQUFNRjtBQUN4QjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNjLE1BQU1DLEVBQUU7SUFDZixPQUFPLE1BQU1BLEdBQUdDLFdBQVc7QUFDN0I7QUFFQTs7O0NBR0MsR0FDRCxTQUFTTCxVQUFVSSxFQUFFO0lBQ25CLE9BQU9BLEdBQUdQLE1BQU0sQ0FBQyxHQUFHSSxXQUFXO0FBQ2pDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2ZpbmQuanM/ZDFhMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL25vcm1hbGl6ZS5qcydcbmltcG9ydCB7RGVmaW5lZEluZm99IGZyb20gJy4vdXRpbC9kZWZpbmVkLWluZm8uanMnXG5pbXBvcnQge0luZm99IGZyb20gJy4vdXRpbC9pbmZvLmpzJ1xuXG5jb25zdCB2YWxpZCA9IC9eZGF0YVstXFx3LjpdKyQvaVxuY29uc3QgZGFzaCA9IC8tW2Etel0vZ1xuY29uc3QgY2FwID0gL1tBLVpdL2dcblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtJbmZvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZChzY2hlbWEsIHZhbHVlKSB7XG4gIGNvbnN0IG5vcm1hbCA9IG5vcm1hbGl6ZSh2YWx1ZSlcbiAgbGV0IHByb3AgPSB2YWx1ZVxuICBsZXQgVHlwZSA9IEluZm9cblxuICBpZiAobm9ybWFsIGluIHNjaGVtYS5ub3JtYWwpIHtcbiAgICByZXR1cm4gc2NoZW1hLnByb3BlcnR5W3NjaGVtYS5ub3JtYWxbbm9ybWFsXV1cbiAgfVxuXG4gIGlmIChub3JtYWwubGVuZ3RoID4gNCAmJiBub3JtYWwuc2xpY2UoMCwgNCkgPT09ICdkYXRhJyAmJiB2YWxpZC50ZXN0KHZhbHVlKSkge1xuICAgIC8vIEF0dHJpYnV0ZSBvciBwcm9wZXJ0eS5cbiAgICBpZiAodmFsdWUuY2hhckF0KDQpID09PSAnLScpIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhIHByb3BlcnR5LlxuICAgICAgY29uc3QgcmVzdCA9IHZhbHVlLnNsaWNlKDUpLnJlcGxhY2UoZGFzaCwgY2FtZWxjYXNlKVxuICAgICAgcHJvcCA9ICdkYXRhJyArIHJlc3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyByZXN0LnNsaWNlKDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhbiBhdHRyaWJ1dGUuXG4gICAgICBjb25zdCByZXN0ID0gdmFsdWUuc2xpY2UoNClcblxuICAgICAgaWYgKCFkYXNoLnRlc3QocmVzdCkpIHtcbiAgICAgICAgbGV0IGRhc2hlcyA9IHJlc3QucmVwbGFjZShjYXAsIGtlYmFiKVxuXG4gICAgICAgIGlmIChkYXNoZXMuY2hhckF0KDApICE9PSAnLScpIHtcbiAgICAgICAgICBkYXNoZXMgPSAnLScgKyBkYXNoZXNcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlID0gJ2RhdGEnICsgZGFzaGVzXG4gICAgICB9XG4gICAgfVxuXG4gICAgVHlwZSA9IERlZmluZWRJbmZvXG4gIH1cblxuICByZXR1cm4gbmV3IFR5cGUocHJvcCwgdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBrZWJhYigkMCkge1xuICByZXR1cm4gJy0nICsgJDAudG9Mb3dlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZSIsIkRlZmluZWRJbmZvIiwiSW5mbyIsInZhbGlkIiwiZGFzaCIsImNhcCIsImZpbmQiLCJzY2hlbWEiLCJ2YWx1ZSIsIm5vcm1hbCIsInByb3AiLCJUeXBlIiwicHJvcGVydHkiLCJsZW5ndGgiLCJzbGljZSIsInRlc3QiLCJjaGFyQXQiLCJyZXN0IiwicmVwbGFjZSIsImNhbWVsY2FzZSIsInRvVXBwZXJDYXNlIiwiZGFzaGVzIiwia2ViYWIiLCIkMCIsInRvTG93ZXJDYXNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/find.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/hast-to-react.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/property-information/lib/hast-to-react.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hastToReact: () => (/* binding */ hastToReact)\n/* harmony export */ });\n/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */ const hastToReact = {\n classId: \"classID\",\n dataType: \"datatype\",\n itemId: \"itemID\",\n strokeDashArray: \"strokeDasharray\",\n strokeDashOffset: \"strokeDashoffset\",\n strokeLineCap: \"strokeLinecap\",\n strokeLineJoin: \"strokeLinejoin\",\n strokeMiterLimit: \"strokeMiterlimit\",\n typeOf: \"typeof\",\n xLinkActuate: \"xlinkActuate\",\n xLinkArcRole: \"xlinkArcrole\",\n xLinkHref: \"xlinkHref\",\n xLinkRole: \"xlinkRole\",\n xLinkShow: \"xlinkShow\",\n xLinkTitle: \"xlinkTitle\",\n xLinkType: \"xlinkType\",\n xmlnsXLink: \"xmlnsXlink\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9oYXN0LXRvLXJlYWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Q0FRQyxHQUNNLE1BQU1BLGNBQWM7SUFDekJDLFNBQVM7SUFDVEMsVUFBVTtJQUNWQyxRQUFRO0lBQ1JDLGlCQUFpQjtJQUNqQkMsa0JBQWtCO0lBQ2xCQyxlQUFlO0lBQ2ZDLGdCQUFnQjtJQUNoQkMsa0JBQWtCO0lBQ2xCQyxRQUFRO0lBQ1JDLGNBQWM7SUFDZEMsY0FBYztJQUNkQyxXQUFXO0lBQ1hDLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxZQUFZO0lBQ1pDLFdBQVc7SUFDWEMsWUFBWTtBQUNkLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaGFzdC10by1yZWFjdC5qcz84ZGQwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogYGhhc3RgIGlzIGNsb3NlIHRvIGBSZWFjdGAsIGJ1dCBkaWZmZXJzIGluIGEgY291cGxlIG9mIGNhc2VzLlxuICpcbiAqIFRvIGdldCBhIFJlYWN0IHByb3BlcnR5IGZyb20gYSBoYXN0IHByb3BlcnR5LCBjaGVjayBpZiBpdCBpcyBpblxuICogYGhhc3RUb1JlYWN0YCwgaWYgaXQgaXMsIHRoZW4gdXNlIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLFxuICogb3RoZXJ3aXNlLCB1c2UgdGhlIGhhc3QgcHJvcGVydHkuXG4gKlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBoYXN0VG9SZWFjdCA9IHtcbiAgY2xhc3NJZDogJ2NsYXNzSUQnLFxuICBkYXRhVHlwZTogJ2RhdGF0eXBlJyxcbiAgaXRlbUlkOiAnaXRlbUlEJyxcbiAgc3Ryb2tlRGFzaEFycmF5OiAnc3Ryb2tlRGFzaGFycmF5JyxcbiAgc3Ryb2tlRGFzaE9mZnNldDogJ3N0cm9rZURhc2hvZmZzZXQnLFxuICBzdHJva2VMaW5lQ2FwOiAnc3Ryb2tlTGluZWNhcCcsXG4gIHN0cm9rZUxpbmVKb2luOiAnc3Ryb2tlTGluZWpvaW4nLFxuICBzdHJva2VNaXRlckxpbWl0OiAnc3Ryb2tlTWl0ZXJsaW1pdCcsXG4gIHR5cGVPZjogJ3R5cGVvZicsXG4gIHhMaW5rQWN0dWF0ZTogJ3hsaW5rQWN0dWF0ZScsXG4gIHhMaW5rQXJjUm9sZTogJ3hsaW5rQXJjcm9sZScsXG4gIHhMaW5rSHJlZjogJ3hsaW5rSHJlZicsXG4gIHhMaW5rUm9sZTogJ3hsaW5rUm9sZScsXG4gIHhMaW5rU2hvdzogJ3hsaW5rU2hvdycsXG4gIHhMaW5rVGl0bGU6ICd4bGlua1RpdGxlJyxcbiAgeExpbmtUeXBlOiAneGxpbmtUeXBlJyxcbiAgeG1sbnNYTGluazogJ3htbG5zWGxpbmsnXG59XG4iXSwibmFtZXMiOlsiaGFzdFRvUmVhY3QiLCJjbGFzc0lkIiwiZGF0YVR5cGUiLCJpdGVtSWQiLCJzdHJva2VEYXNoQXJyYXkiLCJzdHJva2VEYXNoT2Zmc2V0Iiwic3Ryb2tlTGluZUNhcCIsInN0cm9rZUxpbmVKb2luIiwic3Ryb2tlTWl0ZXJMaW1pdCIsInR5cGVPZiIsInhMaW5rQWN0dWF0ZSIsInhMaW5rQXJjUm9sZSIsInhMaW5rSHJlZiIsInhMaW5rUm9sZSIsInhMaW5rU2hvdyIsInhMaW5rVGl0bGUiLCJ4TGlua1R5cGUiLCJ4bWxuc1hMaW5rIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/hast-to-react.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/html.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/property-information/lib/html.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ html: () => (/* binding */ html)\n/* harmony export */ });\n/* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ \"(ssr)/../../node_modules/property-information/lib/util/types.js\");\n/* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ \"(ssr)/../../node_modules/property-information/lib/util/create.js\");\n/* harmony import */ var _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/case-insensitive-transform.js */ \"(ssr)/../../node_modules/property-information/lib/util/case-insensitive-transform.js\");\n\n\n\nconst html = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({\n space: \"html\",\n attributes: {\n acceptcharset: \"accept-charset\",\n classname: \"class\",\n htmlfor: \"for\",\n httpequiv: \"http-equiv\"\n },\n transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,\n mustUseProperty: [\n \"checked\",\n \"multiple\",\n \"muted\",\n \"selected\"\n ],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,\n acceptCharset: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n accessKey: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n allowPaymentRequest: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n allowUserMedia: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n alt: null,\n as: null,\n async: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n autoCapitalize: null,\n autoComplete: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n autoFocus: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n autoPlay: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n blocking: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n capture: null,\n charSet: null,\n checked: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n cite: null,\n className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n cols: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n colSpan: null,\n content: null,\n contentEditable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,\n controls: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n controlsList: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n coords: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number | _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n defer: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n dir: null,\n dirName: null,\n disabled: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.overloadedBoolean,\n draggable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n formTarget: null,\n headers: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n height: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n hidden: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n high: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n href: null,\n hrefLang: null,\n htmlFor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n httpEquiv: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n itemId: null,\n itemProp: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n itemRef: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n itemScope: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n itemType: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n low: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n manifest: null,\n max: null,\n maxLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n media: null,\n method: null,\n min: null,\n minLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n multiple: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n muted: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n name: null,\n nonce: null,\n noModule: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n noValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n optimum: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n pattern: null,\n ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n placeholder: null,\n playsInline: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n referrerPolicy: null,\n rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n required: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n reversed: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n rows: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n rowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n sandbox: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n scope: null,\n scoped: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n seamless: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n selected: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n shadowRootDelegatesFocus: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n shadowRootMode: null,\n shape: null,\n size: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n sizes: null,\n slot: null,\n span: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n spellCheck: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n step: null,\n style: null,\n tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n useMap: null,\n value: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,\n width: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n wrap: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n aLink: null,\n archive: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n axis: null,\n background: null,\n bgColor: null,\n border: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n borderColor: null,\n bottomMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n cellPadding: null,\n cellSpacing: null,\n char: null,\n charOff: null,\n classId: null,\n clear: null,\n code: null,\n codeBase: null,\n codeType: null,\n color: null,\n compact: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n declare: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n event: null,\n face: null,\n frame: null,\n frameBorder: null,\n hSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n leftMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n link: null,\n longDesc: null,\n lowSrc: null,\n marginHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n marginWidth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n noResize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n noHref: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n noShade: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n noWrap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n object: null,\n profile: null,\n prompt: null,\n rev: null,\n rightMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n rules: null,\n scheme: null,\n scrolling: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,\n standby: null,\n summary: null,\n text: null,\n topMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n valueType: null,\n version: null,\n vAlign: null,\n vLink: null,\n vSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n disableRemotePlayback: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n prefix: null,\n property: null,\n results: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n security: null,\n unselectable: null\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9odG1sLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPd0I7QUFDZTtBQUNzQztBQUV0RSxNQUFNUSxPQUFPRix1REFBTUEsQ0FBQztJQUN6QkcsT0FBTztJQUNQQyxZQUFZO1FBQ1ZDLGVBQWU7UUFDZkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLFdBQVc7SUFDYjtJQUNBQyxXQUFXUix5RkFBd0JBO0lBQ25DUyxpQkFBaUI7UUFBQztRQUFXO1FBQVk7UUFBUztLQUFXO0lBQzdEQyxZQUFZO1FBQ1YsdUJBQXVCO1FBQ3ZCQyxNQUFNO1FBQ05DLFFBQVFkLDBEQUFjQTtRQUN0QmUsZUFBZWhCLDBEQUFjQTtRQUM3QmlCLFdBQVdqQiwwREFBY0E7UUFDekJrQixRQUFRO1FBQ1JDLE9BQU87UUFDUEMsaUJBQWlCeEIsbURBQU9BO1FBQ3hCeUIscUJBQXFCekIsbURBQU9BO1FBQzVCMEIsZ0JBQWdCMUIsbURBQU9BO1FBQ3ZCMkIsS0FBSztRQUNMQyxJQUFJO1FBQ0pDLE9BQU83QixtREFBT0E7UUFDZDhCLGdCQUFnQjtRQUNoQkMsY0FBYzNCLDBEQUFjQTtRQUM1QjRCLFdBQVdoQyxtREFBT0E7UUFDbEJpQyxVQUFVakMsbURBQU9BO1FBQ2pCa0MsVUFBVTlCLDBEQUFjQTtRQUN4QitCLFNBQVM7UUFDVEMsU0FBUztRQUNUQyxTQUFTckMsbURBQU9BO1FBQ2hCc0MsTUFBTTtRQUNOQyxXQUFXbkMsMERBQWNBO1FBQ3pCb0MsTUFBTXJDLGtEQUFNQTtRQUNac0MsU0FBUztRQUNUQyxTQUFTO1FBQ1RDLGlCQUFpQnpDLHNEQUFVQTtRQUMzQjBDLFVBQVU1QyxtREFBT0E7UUFDakI2QyxjQUFjekMsMERBQWNBO1FBQzVCMEMsUUFBUTNDLGtEQUFNQSxHQUFHRSwwREFBY0E7UUFDL0IwQyxhQUFhO1FBQ2JDLE1BQU07UUFDTkMsVUFBVTtRQUNWQyxVQUFVO1FBQ1ZDLFNBQVNuRCxtREFB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LFNBQVM5UyxrREFBTUE7UUFDZitTLFVBQVU7UUFDVkMsY0FBYztJQUNoQjtBQUNGLEdBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcz9lYWY0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW4sXG4gIG92ZXJsb2FkZWRCb29sZWFuLFxuICBib29sZWFuaXNoLFxuICBudW1iZXIsXG4gIHNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCBodG1sID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdodG1sJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NuYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxmb3I6ICdmb3InLFxuICAgIGh0dHBlcXVpdjogJ2h0dHAtZXF1aXYnXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBtdXN0VXNlUHJvcGVydHk6IFsnY2hlY2tlZCcsICdtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLy8gU3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhYmJyOiBudWxsLFxuICAgIGFjY2VwdDogY29tbWFTZXBhcmF0ZWQsXG4gICAgYWNjZXB0Q2hhcnNldDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZXNzS2V5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3c6IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBib29sZWFuLFxuICAgIGFsbG93UGF5bWVudFJlcXVlc3Q6IGJvb2xlYW4sXG4gICAgYWxsb3dVc2VyTWVkaWE6IGJvb2xlYW4sXG4gICAgYWx0OiBudWxsLFxuICAgIGFzOiBudWxsLFxuICAgIGFzeW5jOiBib29sZWFuLFxuICAgIGF1dG9DYXBpdGFsaXplOiBudWxsLFxuICAgIGF1dG9Db21wbGV0ZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXV0b0ZvY3VzOiBib29sZWFuLFxuICAgIGF1dG9QbGF5OiBib29sZWFuLFxuICAgIGJsb2NraW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjYXB0dXJlOiBudWxsLFxuICAgIGNoYXJTZXQ6IG51bGwsXG4gICAgY2hlY2tlZDogYm9vbGVhbixcbiAgICBjaXRlOiBudWxsLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29sczogbnVtYmVyLFxuICAgIGNvbFNwYW46IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50RWRpdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgY29udHJvbHM6IGJvb2xlYW4sXG4gICAgY29udHJvbHNMaXN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb29yZHM6IG51bWJlciB8IGNvbW1hU2VwYXJhdGVkLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGRhdGE6IG51bGwsXG4gICAgZGF0ZVRpbWU6IG51bGwsXG4gICAgZGVjb2Rpbmc6IG51bGwsXG4gICAgZGVmYXVsdDogYm9vbGVhbixcbiAgICBkZWZlcjogYm9vbGVhbixcbiAgICBkaXI6IG51bGwsXG4gICAgZGlyTmFtZTogbnVsbCxcbiAgICBkaXNhYmxlZDogYm9vbGVhbixcbiAgICBkb3dubG9hZDogb3ZlcmxvYWRlZEJvb2xlYW4sXG4gICAgZHJhZ2dhYmxlOiBib29sZWFuaXNoLFxuICAgIGVuY1R5cGU6IG51bGwsXG4gICAgZW50ZXJLZXlIaW50OiBudWxsLFxuICAgIGZldGNoUHJpb3JpdHk6IG51bGwsXG4gICAgZm9ybTogbnVsbCxcbiAgICBmb3JtQWN0aW9uOiBudWxsLFxuICAgIGZvcm1FbmNUeXBlOiBudWxsLFxuICAgIGZvcm1NZXRob2Q6IG51bGwsXG4gICAgZm9ybU5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgZm9ybVRhcmdldDogbnVsbCxcbiAgICBoZWFkZXJzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBoaWRkZW46IGJvb2xlYW4sXG4gICAgaGlnaDogbnVtYmVyLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaHRtbEZvcjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaHR0cEVxdWl2OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpZDogbnVsbCxcbiAgICBpbWFnZVNpemVzOiBudWxsLFxuICAgIGltYWdlU3JjU2V0OiBudWxsLFxuICAgIGluZXJ0OiBib29sZWFuLFxuICAgIGlucHV0TW9kZTogbnVsbCxcbiAgICBpbnRlZ3JpdHk6IG51bGwsXG4gICAgaXM6IG51bGwsXG4gICAgaXNNYXA6IGJvb2xlYW4sXG4gICAgaXRlbUlkOiBudWxsLFxuICAgIGl0ZW1Qcm9wOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtUmVmOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtU2NvcGU6IGJvb2xlYW4sXG4gICAgaXRlbVR5cGU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGtpbmQ6IG51bGwsXG4gICAgbGFiZWw6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsYW5ndWFnZTogbnVsbCxcbiAgICBsaXN0OiBudWxsLFxuICAgIGxvYWRpbmc6IG51bGwsXG4gICAgbG9vcDogYm9vbGVhbixcbiAgICBsb3c6IG51bWJlcixcbiAgICBtYW5pZmVzdDogbnVsbCxcbiAgICBtYXg6IG51bGwsXG4gICAgbWF4TGVuZ3RoOiBudW1iZXIsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtaW5MZW5ndGg6IG51bWJlcixcbiAgICBtdWx0aXBsZTogYm9vbGVhbixcbiAgICBtdXRlZDogYm9vbGVhbixcbiAgICBuYW1lOiBudWxsLFxuICAgIG5vbmNlOiBudWxsLFxuICAgIG5vTW9kdWxlOiBib29sZWFuLFxuICAgIG5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgb25BYm9ydDogbnVsbCxcbiAgICBvbkFmdGVyUHJpbnQ6IG51bGwsXG4gICAgb25BdXhDbGljazogbnVsbCxcbiAgICBvbkJlZm9yZU1hdGNoOiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWZvcmVUb2dnbGU6IG51bGwsXG4gICAgb25CZWZvcmVVbmxvYWQ6IG51bGwsXG4gICAgb25CbHVyOiBudWxsLFxuICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgIG9uQ2FuUGxheTogbnVsbCxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgb25DbG9zZTogbnVsbCxcbiAgICBvbkNvbnRleHRMb3N0OiBudWxsLFxuICAgIG9uQ29udGV4dE1lbnU6IG51bGwsXG4gICAgb25Db250ZXh0UmVzdG9yZWQ6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9ybURhdGE6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25MYW5ndWFnZUNoYW5nZTogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkRW5kOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1lc3NhZ2VFcnJvcjogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlamVjdGlvbkhhbmRsZWQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNjcm9sbEVuZDogbnVsbCxcbiAgICBvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNsb3RDaGFuZ2U6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5oYW5kbGVkUmVqZWN0aW9uOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvbldoZWVsOiBudWxsLFxuICAgIG9wZW46IGJvb2xlYW4sXG4gICAgb3B0aW11bTogbnVtYmVyLFxuICAgIHBhdHRlcm46IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGxhY2Vob2xkZXI6IG51bGwsXG4gICAgcGxheXNJbmxpbmU6IGJvb2xlYW4sXG4gICAgcG9wb3ZlcjogbnVsbCxcbiAgICBwb3BvdmVyVGFyZ2V0OiBudWxsLFxuICAgIHBvcG92ZXJUYXJnZXRBY3Rpb246IG51bGwsXG4gICAgcG9zdGVyOiBudWxsLFxuICAgIHByZWxvYWQ6IG51bGwsXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVsOiBzcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZDogYm9vbGVhbixcbiAgICByZXZlcnNlZDogYm9vbGVhbixcbiAgICByb3dzOiBudW1iZXIsXG4gICAgcm93U3BhbjogbnVtYmVyLFxuICAgIHNhbmRib3g6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHNjb3BlOiBudWxsLFxuICAgIHNjb3BlZDogYm9vbGVhbixcbiAgICBzZWFtbGVzczogYm9vbGVhbixcbiAgICBzZWxlY3RlZDogYm9vbGVhbixcbiAgICBzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6IGJvb2xlYW4sXG4gICAgc2hhZG93Um9vdE1vZGU6IG51bGwsXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNpemVzOiBudWxsLFxuICAgIHNsb3Q6IG51bGwsXG4gICAgc3BhbjogbnVtYmVyLFxuICAgIHNwZWxsQ2hlY2s6IGJvb2xlYW5pc2gsXG4gICAgc3JjOiBudWxsLFxuICAgIHNyY0RvYzogbnVsbCxcbiAgICBzcmNMYW5nOiBudWxsLFxuICAgIHNyY1NldDogbnVsbCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIHN0ZXA6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNsYXRlOiBudWxsLFxuICAgIHR5cGU6IG51bGwsXG4gICAgdHlwZU11c3RNYXRjaDogYm9vbGVhbixcbiAgICB1c2VNYXA6IG51bGwsXG4gICAgdmFsdWU6IGJvb2xlYW5pc2gsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICB3cmFwOiBudWxsLFxuXG4gICAgLy8gTGVnYWN5LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jb3RoZXItZWxlbWVudHMsLWF0dHJpYnV0ZXMtYW5kLWFwaXNcbiAgICBhbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdGV4dC1hbGlnbmAgaW5zdGVhZCxcbiAgICBhTGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6YWN0aXZlIHtjb2xvcn1gIGluc3RlYWRcbiAgICBhcmNoaXZlOiBzcGFjZVNlcGFyYXRlZCwgLy8gYDxvYmplY3Q+YC4gTGlzdCBvZiBVUklzIHRvIGFyY2hpdmVzXG4gICAgYXhpczogbnVsbCwgLy8gYDx0ZD5gIGFuZCBgPHRoPmAuIFVzZSBgc2NvcGVgIG9uIGA8dGg+YFxuICAgIGJhY2tncm91bmQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWltYWdlYCBpbnN0ZWFkXG4gICAgYmdDb2xvcjogbnVsbCwgLy8gYDxib2R5PmAgYW5kIHRhYmxlIGVsZW1lbnRzLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWNvbG9yYCBpbnN0ZWFkXG4gICAgYm9yZGVyOiBudW1iZXIsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLXdpZHRoYCBpbnN0ZWFkLFxuICAgIGJvcmRlckNvbG9yOiBudWxsLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci1jb2xvcmAgaW5zdGVhZCxcbiAgICBib3R0b21NYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBjZWxsUGFkZGluZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2VsbFNwYWNpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNoYXI6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGFsaWduPWNoYXJgLCBzZXRzIHRoZSBjaGFyYWN0ZXIgdG8gYWxpZ24gb25cbiAgICBjaGFyT2ZmOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBjaGFyYCwgb2Zmc2V0cyB0aGUgYWxpZ25tZW50XG4gICAgY2xhc3NJZDogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNsZWFyOiBudWxsLCAvLyBgPGJyPmAuIFVzZSBDU1MgYGNsZWFyYCBpbnN0ZWFkXG4gICAgY29kZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVCYXNlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZVR5cGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2xvcjogbnVsbCwgLy8gYDxmb250PmAgYW5kIGA8aHI+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgY29tcGFjdDogYm9vbGVhbiwgLy8gTGlzdHMuIFVzZSBDU1MgdG8gcmVkdWNlIHNwYWNlIGJldHdlZW4gaXRlbXMgaW5zdGVhZFxuICAgIGRlY2xhcmU6IGJvb2xlYW4sIC8vIGA8b2JqZWN0PmBcbiAgICBldmVudDogbnVsbCwgLy8gYDxzY3JpcHQ+YFxuICAgIGZhY2U6IG51bGwsIC8vIGA8Zm9udD5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBmcmFtZTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgZnJhbWVCb3JkZXI6IG51bGwsIC8vIGA8aWZyYW1lPmAuIFVzZSBDU1MgYGJvcmRlcmAgaW5zdGVhZFxuICAgIGhTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG4gICAgbGVmdE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmxpbmsge2NvbG9yOiAqfWAgaW5zdGVhZFxuICAgIGxvbmdEZXNjOiBudWxsLCAvLyBgPGZyYW1lPmAsIGA8aWZyYW1lPmAsIGFuZCBgPGltZz5gLiBVc2UgYW4gYDxhPmBcbiAgICBsb3dTcmM6IG51bGwsIC8vIGA8aW1nPmAuIFVzZSBhIGA8cGljdHVyZT5gXG4gICAgbWFyZ2luSGVpZ2h0OiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbWFyZ2luV2lkdGg6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBub1Jlc2l6ZTogYm9vbGVhbiwgLy8gYDxmcmFtZT5gXG4gICAgbm9IcmVmOiBib29sZWFuLCAvLyBgPGFyZWE+YC4gVXNlIG5vIGhyZWYgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBgbm9ocmVmYFxuICAgIG5vU2hhZGU6IGJvb2xlYW4sIC8vIGA8aHI+YC4gVXNlIGJhY2tncm91bmQtY29sb3IgYW5kIGhlaWdodCBpbnN0ZWFkIG9mIGJvcmRlcnNcbiAgICBub1dyYXA6IGJvb2xlYW4sIC8vIGA8dGQ+YCBhbmQgYDx0aD5gXG4gICAgb2JqZWN0OiBudWxsLCAvLyBgPGFwcGxldD5gXG4gICAgcHJvZmlsZTogbnVsbCwgLy8gYDxoZWFkPmBcbiAgICBwcm9tcHQ6IG51bGwsIC8vIGA8aXNpbmRleD5gXG4gICAgcmV2OiBudWxsLCAvLyBgPGxpbms+YFxuICAgIHJpZ2h0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgcnVsZXM6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHNjaGVtZTogbnVsbCwgLy8gYDxtZXRhPmBcbiAgICBzY3JvbGxpbmc6IGJvb2xlYW5pc2gsIC8vIGA8ZnJhbWU+YC4gVXNlIG92ZXJmbG93IGluIHRoZSBjaGlsZCBjb250ZXh0XG4gICAgc3RhbmRieTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIHN1bW1hcnk6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHRleHQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBjb2xvcmAgaW5zdGVhZFxuICAgIHRvcE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHZhbHVlVHlwZTogbnVsbCwgLy8gYDxwYXJhbT5gXG4gICAgdmVyc2lvbjogbnVsbCwgLy8gYDxodG1sPmAuIFVzZSBhIGRvY3R5cGUuXG4gICAgdkFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB2ZXJ0aWNhbC1hbGlnbmAgaW5zdGVhZFxuICAgIHZMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTp2aXNpdGVkIHtjb2xvcn1gIGluc3RlYWRcbiAgICB2U3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuXG4gICAgLy8gTm9uLXN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWxsb3dUcmFuc3BhcmVuY3k6IG51bGwsXG4gICAgYXV0b0NvcnJlY3Q6IG51bGwsXG4gICAgYXV0b1NhdmU6IG51bGwsXG4gICAgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6IGJvb2xlYW4sXG4gICAgZGlzYWJsZVJlbW90ZVBsYXliYWNrOiBib29sZWFuLFxuICAgIHByZWZpeDogbnVsbCxcbiAgICBwcm9wZXJ0eTogbnVsbCxcbiAgICByZXN1bHRzOiBudW1iZXIsXG4gICAgc2VjdXJpdHk6IG51bGwsXG4gICAgdW5zZWxlY3RhYmxlOiBudWxsXG4gIH1cbn0pXG4iXSwibmFtZXMiOlsiYm9vbGVhbiIsIm92ZXJsb2FkZWRCb29sZWFuIiwiYm9vbGVhbmlzaCIsIm51bWJlciIsInNwYWNlU2VwYXJhdGVkIiwiY29tbWFTZXBhcmF0ZWQiLCJjcmVhdGUiLCJjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0iLCJodG1sIiwic3BhY2UiLCJhdHRyaWJ1dGVzIiwiYWNjZXB0Y2hhcnNldCIsImNsYXNzbmFtZSIsImh0bWxmb3IiLCJodHRwZXF1aXYiLCJ0cmFuc2Zvcm0iLCJtdXN0VXNlUHJvcGVydHkiLCJwcm9wZXJ0aWVzIiwiYWJiciIsImFjY2VwdCIsImFjY2VwdENoYXJzZXQiLCJhY2Nlc3NLZXkiLCJhY3Rpb24iLCJhbGxvdyIsImFsbG93RnVsbFNjcmVlbiIsImFsbG93UGF5bWVudFJlcXVlc3QiLCJhbGxvd1VzZXJNZWRpYSIsImFsdCIsImFzIiwiYXN5bmMiLCJhdXRvQ2FwaXRhbGl6ZSIsImF1dG9Db21wbGV0ZSIsImF1dG9Gb2N1cyIsImF1dG9QbGF5IiwiYmxvY2tpbmciLCJjYXB0dXJlIiwiY2hhclNldCIsImNoZWNrZWQiLCJjaXRlIiwiY2xhc3NOYW1lIiwiY29scyIsImNvbFNwYW4iLCJjb250ZW50IiwiY29udGVudEVkaXRhYmxlIiwiY29udHJvbHMiLCJjb250cm9sc0xpc3QiLCJjb29yZHMiLCJjcm9zc09yaWdpbiIsImRhdGEiLCJkYXRlVGltZSIsImRlY29kaW5nIiwiZGVmYXVsdCIsImRlZmVyIiwiZGlyIiwiZGlyTmFtZSIsImRpc2FibGVkIiwiZG93bmxvYWQiLCJkcmFnZ2FibGUiLCJlbmNUeXBlIiwiZW50ZXJLZXlIaW50IiwiZmV0Y2hQcmlvcml0eSIsImZvcm0iLCJmb3JtQWN0aW9uIiwiZm9ybUVuY1R5cGUiLCJmb3JtTWV0aG9kIiwiZm9ybU5vVmFsaWRhdGUiLCJmb3JtVGFyZ2V0IiwiaGVhZGVycyIsImhlaWdodCIsImhpZGRlbiIsImhpZ2giLCJocmVmIiwiaHJlZkxhbmciLCJodG1sRm9yIiwiaHR0cEVxdWl2IiwiaWQiLCJpbWFnZVNpemVzIiwiaW1hZ2VTcmNTZXQiLCJpbmVydCIsImlucHV0TW9kZSIsImludGVncml0eSIsImlzIiwiaXNNYXAiLCJpdGVtSWQiLCJpdGVtUHJvcCIsIml0ZW1SZWYiLCJpdGVtU2NvcGUiLCJpdGVtVHlwZSIsImtpbmQiLCJsYWJlbCIsImxhbmciLCJsYW5ndWFnZSIsImxpc3QiLCJsb2FkaW5nIiwibG9vcCIsImxvdyIsIm1hbmlmZXN0IiwibWF4IiwibWF4TGVuZ3RoIiwibWVkaWEiLCJtZXRob2QiLCJtaW4iLCJtaW5MZW5ndGgiLCJtdWx0aXBsZSIsIm11dGVkIiwibmFtZSIsIm5vbmNlIiwibm9Nb2R1bGUiLCJub1ZhbGlkYXRlIiwib25BYm9ydCIsIm9uQWZ0ZXJQcmludCIsIm9uQXV4Q2xpY2siLCJvbkJlZm9yZU1hdGNoIiwib25CZWZvcmVQcmludCIsIm9uQmVmb3JlVG9nZ2xlIiwib25CZWZvcmVVbmxvYWQiLCJvbkJsdXIiLCJvbkNhbmNlbCIsIm9uQ2FuUGxheSIsIm9uQ2FuUGxheVRocm91Z2giLCJvbkNoYW5nZSIsIm9uQ2xpY2siLCJvbkNsb3NlIiwib25Db250ZXh0TG9zdCIsIm9uQ29udGV4dE1lbnUiLCJvbkNvbnRleHRSZXN0b3JlZCIsIm9uQ29weSIsIm9uQ3VlQ2hhbmdlIiwib25DdXQiLCJvbkRibENsaWNrIiwib25EcmFnIiwib25EcmFnRW5kIiwib25EcmFnRW50ZXIiLCJvbkRyYWdFeGl0Iiwib25EcmFnTGVhdmUiLCJvbkRyYWdPdmVyIiwib25EcmFnU3RhcnQiLCJvbkRyb3AiLCJvbkR1cmF0aW9uQ2hhbmdlIiwib25FbXB0aWVkIiwib25FbmRlZCIsIm9uRXJyb3IiLCJvbkZvY3VzIiwib25Gb3JtRGF0YSIsIm9uSGFzaENoYW5nZSIsIm9uSW5wdXQiLCJvbkludmFsaWQiLCJvbktleURvd24iLCJvbktleVByZXNzIiwib25LZXlVcCIsIm9uTGFuZ3VhZ2VDaGFuZ2UiLCJvbkxvYWQiLCJvbkxvYWRlZERhdGEiLCJvbkxvYWRlZE1ldGFkYXRhIiwib25Mb2FkRW5kIiwib25Mb2FkU3RhcnQiLCJvbk1lc3NhZ2UiLCJvbk1lc3NhZ2VFcnJvciIsIm9uTW91c2VEb3duIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwib25Nb3VzZU1vdmUiLCJvbk1vdXNlT3V0Iiwib25Nb3VzZU92ZXIiLCJvbk1vdXNlVXAiLCJvbk9mZmxpbmUiLCJvbk9ubGluZSIsIm9uUGFnZUhpZGUiLCJvblBhZ2VTaG93Iiwib25QYXN0ZSIsIm9uUGF1c2UiLCJvblBsYXkiLCJvblBsYXlpbmciLCJvblBvcFN0YXRlIiwib25Qcm9ncmVzcyIsIm9uUmF0ZUNoYW5nZSIsIm9uUmVqZWN0aW9uSGFuZGxlZCIsIm9uUmVzZXQiLCJvblJlc2l6ZSIsIm9uU2Nyb2xsIiwib25TY3JvbGxFbmQiLCJvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uIiwib25TZWVrZWQiLCJvblNlZWtpbmciLCJvblNlbGVjdCIsIm9uU2xvdENoYW5nZSIsIm9uU3RhbGxlZCIsIm9uU3RvcmFnZSIsIm9uU3VibWl0Iiwib25TdXNwZW5kIiwib25UaW1lVXBkYXRlIiwib25Ub2dnbGUiLCJvblVuaGFuZGxlZFJlamVjdGlvbiIsIm9uVW5sb2FkIiwib25Wb2x1bWVDaGFuZ2UiLCJvbldhaXRpbmciLCJvbldoZWVsIiwib3BlbiIsIm9wdGltdW0iLCJwYXR0ZXJuIiwicGluZyIsInBsYWNlaG9sZGVyIiwicGxheXNJbmxpbmUiLCJwb3BvdmVyIiwicG9wb3ZlclRhcmdldCIsInBvcG92ZXJUYXJnZXRBY3Rpb24iLCJwb3N0ZXIiLCJwcmVsb2FkIiwicmVhZE9ubHkiLCJyZWZlcnJlclBvbGljeSIsInJlbCIsInJlcXVpcmVkIiwicmV2ZXJzZWQiLCJyb3dzIiwicm93U3BhbiIsInNhbmRib3giLCJzY29wZSIsInNjb3BlZCIsInNlYW1sZXNzIiwic2VsZWN0ZWQiLCJzaGFkb3dSb290RGVsZWdhdGVzRm9jdXMiLCJzaGFkb3dSb290TW9kZSIsInNoYXBlIiwic2l6ZSIsInNpemVzIiwic2xvdCIsInNwYW4iLCJzcGVsbENoZWNrIiwic3JjIiwic3JjRG9jIiwic3JjTGFuZyIsInNyY1NldCIsInN0YXJ0Iiwic3RlcCIsInN0eWxlIiwidGFiSW5kZXgiLCJ0YXJnZXQiLCJ0aXRsZSIsInRyYW5zbGF0ZSIsInR5cGUiLCJ0eXBlTXVzdE1hdGNoIiwidXNlTWFwIiwidmFsdWUiLCJ3aWR0aCIsIndyYXAiLCJhbGlnbiIsImFMaW5rIiwiYXJjaGl2ZSIsImF4aXMiLCJiYWNrZ3JvdW5kIiwiYmdDb2xvciIsImJvcmRlciIsImJvcmRlckNvbG9yIiwiYm90dG9tTWFyZ2luIiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsImNoYXIiLCJjaGFyT2ZmIiwiY2xhc3NJZCIsImNsZWFyIiwiY29kZSIsImNvZGVCYXNlIiwiY29kZVR5cGUiLCJjb2xvciIsImNvbXBhY3QiLCJkZWNsYXJlIiwiZXZlbnQiLCJmYWNlIiwiZnJhbWUiLCJmcmFtZUJvcmRlciIsImhTcGFjZSIsImxlZnRNYXJnaW4iLCJsaW5rIiwibG9uZ0Rlc2MiLCJsb3dTcmMiLCJtYXJnaW5IZWlnaHQiLCJtYXJnaW5XaWR0aCIsIm5vUmVzaXplIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9iamVjdCIsInByb2ZpbGUiLCJwcm9tcHQiLCJyZXYiLCJyaWdodE1hcmdpbiIsInJ1bGVzIiwic2NoZW1lIiwic2Nyb2xsaW5nIiwic3RhbmRieSIsInN1bW1hcnkiLCJ0ZXh0IiwidG9wTWFyZ2luIiwidmFsdWVUeXBlIiwidmVyc2lvbiIsInZBbGlnbiIsInZMaW5rIiwidlNwYWNlIiwiYWxsb3dUcmFuc3BhcmVuY3kiLCJhdXRvQ29ycmVjdCIsImF1dG9TYXZlIiwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUiLCJkaXNhYmxlUmVtb3RlUGxheWJhY2siLCJwcmVmaXgiLCJwcm9wZXJ0eSIsInJlc3VsdHMiLCJzZWN1cml0eSIsInVuc2VsZWN0YWJsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/html.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/normalize.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/property-information/lib/normalize.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalize: () => (/* binding */ normalize)\n/* harmony export */ });\n/**\n * @param {string} value\n * @returns {string}\n */ function normalize(value) {\n return value.toLowerCase();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUNNLFNBQVNBLFVBQVVDLEtBQUs7SUFDN0IsT0FBT0EsTUFBTUMsV0FBVztBQUMxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanM/MzI2YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZSIsInZhbHVlIiwidG9Mb3dlckNhc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/normalize.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/svg.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/property-information/lib/svg.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ svg: () => (/* binding */ svg)\n/* harmony export */ });\n/* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ \"(ssr)/../../node_modules/property-information/lib/util/types.js\");\n/* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ \"(ssr)/../../node_modules/property-information/lib/util/create.js\");\n/* harmony import */ var _util_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/case-sensitive-transform.js */ \"(ssr)/../../node_modules/property-information/lib/util/case-sensitive-transform.js\");\n\n\n\nconst svg = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({\n space: \"svg\",\n attributes: {\n accentHeight: \"accent-height\",\n alignmentBaseline: \"alignment-baseline\",\n arabicForm: \"arabic-form\",\n baselineShift: \"baseline-shift\",\n capHeight: \"cap-height\",\n className: \"class\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n crossOrigin: \"crossorigin\",\n dataType: \"datatype\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphName: \"glyph-name\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n hrefLang: \"hreflang\",\n horizAdvX: \"horiz-adv-x\",\n horizOriginX: \"horiz-origin-x\",\n horizOriginY: \"horiz-origin-y\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n navDown: \"nav-down\",\n navDownLeft: \"nav-down-left\",\n navDownRight: \"nav-down-right\",\n navLeft: \"nav-left\",\n navNext: \"nav-next\",\n navPrev: \"nav-prev\",\n navRight: \"nav-right\",\n navUp: \"nav-up\",\n navUpLeft: \"nav-up-left\",\n navUpRight: \"nav-up-right\",\n onAbort: \"onabort\",\n onActivate: \"onactivate\",\n onAfterPrint: \"onafterprint\",\n onBeforePrint: \"onbeforeprint\",\n onBegin: \"onbegin\",\n onCancel: \"oncancel\",\n onCanPlay: \"oncanplay\",\n onCanPlayThrough: \"oncanplaythrough\",\n onChange: \"onchange\",\n onClick: \"onclick\",\n onClose: \"onclose\",\n onCopy: \"oncopy\",\n onCueChange: \"oncuechange\",\n onCut: \"oncut\",\n onDblClick: \"ondblclick\",\n onDrag: \"ondrag\",\n onDragEnd: \"ondragend\",\n onDragEnter: \"ondragenter\",\n onDragExit: \"ondragexit\",\n onDragLeave: \"ondragleave\",\n onDragOver: \"ondragover\",\n onDragStart: \"ondragstart\",\n onDrop: \"ondrop\",\n onDurationChange: \"ondurationchange\",\n onEmptied: \"onemptied\",\n onEnd: \"onend\",\n onEnded: \"onended\",\n onError: \"onerror\",\n onFocus: \"onfocus\",\n onFocusIn: \"onfocusin\",\n onFocusOut: \"onfocusout\",\n onHashChange: \"onhashchange\",\n onInput: \"oninput\",\n onInvalid: \"oninvalid\",\n onKeyDown: \"onkeydown\",\n onKeyPress: \"onkeypress\",\n onKeyUp: \"onkeyup\",\n onLoad: \"onload\",\n onLoadedData: \"onloadeddata\",\n onLoadedMetadata: \"onloadedmetadata\",\n onLoadStart: \"onloadstart\",\n onMessage: \"onmessage\",\n onMouseDown: \"onmousedown\",\n onMouseEnter: \"onmouseenter\",\n onMouseLeave: \"onmouseleave\",\n onMouseMove: \"onmousemove\",\n onMouseOut: \"onmouseout\",\n onMouseOver: \"onmouseover\",\n onMouseUp: \"onmouseup\",\n onMouseWheel: \"onmousewheel\",\n onOffline: \"onoffline\",\n onOnline: \"ononline\",\n onPageHide: \"onpagehide\",\n onPageShow: \"onpageshow\",\n onPaste: \"onpaste\",\n onPause: \"onpause\",\n onPlay: \"onplay\",\n onPlaying: \"onplaying\",\n onPopState: \"onpopstate\",\n onProgress: \"onprogress\",\n onRateChange: \"onratechange\",\n onRepeat: \"onrepeat\",\n onReset: \"onreset\",\n onResize: \"onresize\",\n onScroll: \"onscroll\",\n onSeeked: \"onseeked\",\n onSeeking: \"onseeking\",\n onSelect: \"onselect\",\n onShow: \"onshow\",\n onStalled: \"onstalled\",\n onStorage: \"onstorage\",\n onSubmit: \"onsubmit\",\n onSuspend: \"onsuspend\",\n onTimeUpdate: \"ontimeupdate\",\n onToggle: \"ontoggle\",\n onUnload: \"onunload\",\n onVolumeChange: \"onvolumechange\",\n onWaiting: \"onwaiting\",\n onZoom: \"onzoom\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n panose1: \"panose-1\",\n pointerEvents: \"pointer-events\",\n referrerPolicy: \"referrerpolicy\",\n renderingIntent: \"rendering-intent\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDashArray: \"stroke-dasharray\",\n strokeDashOffset: \"stroke-dashoffset\",\n strokeLineCap: \"stroke-linecap\",\n strokeLineJoin: \"stroke-linejoin\",\n strokeMiterLimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n tabIndex: \"tabindex\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n typeOf: \"typeof\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n unicodeRange: \"unicode-range\",\n unitsPerEm: \"units-per-em\",\n vAlphabetic: \"v-alphabetic\",\n vHanging: \"v-hanging\",\n vIdeographic: \"v-ideographic\",\n vMathematical: \"v-mathematical\",\n vectorEffect: \"vector-effect\",\n vertAdvY: \"vert-adv-y\",\n vertOriginX: \"vert-origin-x\",\n vertOriginY: \"vert-origin-y\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: \"playbackorder\",\n timelineBegin: \"timelinebegin\"\n },\n transform: _util_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseSensitiveTransform,\n properties: {\n about: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n accentHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n amplitude: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n arabicForm: null,\n ascent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n attributeName: null,\n attributeType: null,\n azimuth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n by: null,\n calcMode: null,\n capHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n diffuseConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n direction: null,\n display: null,\n dur: null,\n divisor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n dominantBaseline: null,\n download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,\n g2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,\n glyphName: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n horizOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n horizOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n id: null,\n ideographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n k: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n k1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n k2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n k3: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n k4: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n kernelMatrix: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null,\n keySplines: null,\n keyTimes: null,\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n overlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n pointsAtY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n pointsAtZ: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n rev: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n requiredFeatures: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n requiredFonts: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n requiredFormats: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n specularExponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n strikethroughThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n string: null,\n stroke: null,\n strokeDashArray: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n strokeOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n strokeWidth: null,\n style: null,\n surfaceScale: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n tableValues: null,\n target: null,\n targetX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n targetY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n underlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n values: null,\n vAlphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n vMathematical: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n vectorEffect: null,\n vHanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n vIdeographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n version: null,\n vertAdvY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n vertOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n vertOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9zdmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU13QjtBQUNlO0FBQ2tDO0FBRWxFLE1BQU1PLE1BQU1GLHVEQUFNQSxDQUFDO0lBQ3hCRyxPQUFPO0lBQ1BDLFlBQVk7UUFDVkMsY0FBYztRQUNkQyxtQkFBbUI7UUFDbkJDLFlBQVk7UUFDWkMsZUFBZTtRQUNmQyxXQUFXO1FBQ1hDLFdBQVc7UUFDWEMsVUFBVTtRQUNWQyxVQUFVO1FBQ1ZDLG9CQUFvQjtRQUNwQkMsMkJBQTJCO1FBQzNCQyxjQUFjO1FBQ2RDLGdCQUFnQjtRQUNoQkMsYUFBYTtRQUNiQyxVQUFVO1FBQ1ZDLGtCQUFrQjtRQUNsQkMsa0JBQWtCO1FBQ2xCQyxhQUFhO1FBQ2JDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxjQUFjO1FBQ2RDLFlBQVk7UUFDWkMsVUFBVTtRQUNWQyxnQkFBZ0I7UUFDaEJDLGFBQWE7UUFDYkMsV0FBVztRQUNYQyxhQUFhO1FBQ2JDLFlBQVk7UUFDWkMsV0FBVztRQUNYQyw0QkFBNEI7UUFDNUJDLDBCQUEwQjtRQUMxQkMsVUFBVTtRQUNWQyxXQUFXO1FBQ1hDLGNBQWM7UUFDZEMsY0FBYztRQUNkQyxnQkFBZ0I7UUFDaEJDLGVBQWU7UUFDZkMsZUFBZTtRQUNmQyxXQUFXO1FBQ1hDLFdBQVc7UUFDWEMsYUFBYTtRQUNiQyxTQUFTO1FBQ1RDLGFBQWE7UUFDYkMsY0FBYztRQUNkQyxTQUFTO1FBQ1RDLFNBQVM7UUFDVEMsU0FBUztRQUNUQyxVQUFVO1FBQ1ZDLE9BQU87UUFDUEMsV0FBVztRQUNYQyxZQUFZO1FBQ1pDLFNBQVM7UUFDVEMsWUFBWTtRQUNaQyxjQUFjO1FBQ2RDLGVBQWU7UUFDZkMsU0FBUztRQUNUQyxVQUFVO1FBQ1ZDLFdBQVc7UUFDWEMsa0JBQWtCO1FBQ2xCQyxVQUFVO1FBQ1ZDLFNBQVM7UUFDVEMsU0FBUztRQUNUQyxRQUFRO1FBQ1JDLGFBQWE7UUFDYkMs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QUNIQyxJQUFJO1FBQ0pDLElBQUk7UUFDSkMsa0JBQWtCO1FBQ2xCek0sU0FBU2xMLGtEQUFNQTtRQUNmNFgsR0FBRztRQUNIQyxJQUFJO1FBQ0pDLElBQUk7UUFDSkMsa0JBQWtCO1FBQ2xCQyxHQUFHO1FBQ0hDLFlBQVk7SUFDZDtBQUNGLEdBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvc3ZnLmpzPzllMWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbixcbiAgbnVtYmVyLFxuICBzcGFjZVNlcGFyYXRlZCxcbiAgY29tbWFTZXBhcmF0ZWQsXG4gIGNvbW1hT3JTcGFjZVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZVNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IHN2ZyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAnc3ZnJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VudEhlaWdodDogJ2FjY2VudC1oZWlnaHQnLFxuICAgIGFsaWdubWVudEJhc2VsaW5lOiAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgICBhcmFiaWNGb3JtOiAnYXJhYmljLWZvcm0nLFxuICAgIGJhc2VsaW5lU2hpZnQ6ICdiYXNlbGluZS1zaGlmdCcsXG4gICAgY2FwSGVpZ2h0OiAnY2FwLWhlaWdodCcsXG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGNsaXBQYXRoOiAnY2xpcC1wYXRoJyxcbiAgICBjbGlwUnVsZTogJ2NsaXAtcnVsZScsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uOiAnY29sb3ItaW50ZXJwb2xhdGlvbicsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczogJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICAgY29sb3JQcm9maWxlOiAnY29sb3ItcHJvZmlsZScsXG4gICAgY29sb3JSZW5kZXJpbmc6ICdjb2xvci1yZW5kZXJpbmcnLFxuICAgIGNyb3NzT3JpZ2luOiAnY3Jvc3NvcmlnaW4nLFxuICAgIGRhdGFUeXBlOiAnZGF0YXR5cGUnLFxuICAgIGRvbWluYW50QmFzZWxpbmU6ICdkb21pbmFudC1iYXNlbGluZScsXG4gICAgZW5hYmxlQmFja2dyb3VuZDogJ2VuYWJsZS1iYWNrZ3JvdW5kJyxcbiAgICBmaWxsT3BhY2l0eTogJ2ZpbGwtb3BhY2l0eScsXG4gICAgZmlsbFJ1bGU6ICdmaWxsLXJ1bGUnLFxuICAgIGZsb29kQ29sb3I6ICdmbG9vZC1jb2xvcicsXG4gICAgZmxvb2RPcGFjaXR5OiAnZmxvb2Qtb3BhY2l0eScsXG4gICAgZm9udEZhbWlseTogJ2ZvbnQtZmFtaWx5JyxcbiAgICBmb250U2l6ZTogJ2ZvbnQtc2l6ZScsXG4gICAgZm9udFNpemVBZGp1c3Q6ICdmb250LXNpemUtYWRqdXN0JyxcbiAgICBmb250U3RyZXRjaDogJ2ZvbnQtc3RyZXRjaCcsXG4gICAgZm9udFN0eWxlOiAnZm9udC1zdHlsZScsXG4gICAgZm9udFZhcmlhbnQ6ICdmb250LXZhcmlhbnQnLFxuICAgIGZvbnRXZWlnaHQ6ICdmb250LXdlaWdodCcsXG4gICAgZ2x5cGhOYW1lOiAnZ2x5cGgtbmFtZScsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6ICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJyxcbiAgICBnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICAgaHJlZkxhbmc6ICdocmVmbGFuZycsXG4gICAgaG9yaXpBZHZYOiAnaG9yaXotYWR2LXgnLFxuICAgIGhvcml6T3JpZ2luWDogJ2hvcml6LW9yaWdpbi14JyxcbiAgICBob3Jpek9yaWdpblk6ICdob3Jpei1vcmlnaW4teScsXG4gICAgaW1hZ2VSZW5kZXJpbmc6ICdpbWFnZS1yZW5kZXJpbmcnLFxuICAgIGxldHRlclNwYWNpbmc6ICdsZXR0ZXItc3BhY2luZycsXG4gICAgbGlnaHRpbmdDb2xvcjogJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgICBtYXJrZXJFbmQ6ICdtYXJrZXItZW5kJyxcbiAgICBtYXJrZXJNaWQ6ICdtYXJrZXItbWlkJyxcbiAgICBtYXJrZXJTdGFydDogJ21hcmtlci1zdGFydCcsXG4gICAgbmF2RG93bjogJ25hdi1kb3duJyxcbiAgICBuYXZEb3duTGVmdDogJ25hdi1kb3duLWxlZnQnLFxuICAgIG5hdkRvd25SaWdodDogJ25hdi1kb3duLXJpZ2h0JyxcbiAgICBuYXZMZWZ0OiAnbmF2LWxlZnQnLFxuICAgIG5hdk5leHQ6ICduYXYtbmV4dCcsXG4gICAgbmF2UHJldjogJ25hdi1wcmV2JyxcbiAgICBuYXZSaWdodDogJ25hdi1yaWdodCcsXG4gICAgbmF2VXA6ICduYXYtdXAnLFxuICAgIG5hdlVwTGVmdDogJ25hdi11cC1sZWZ0JyxcbiAgICBuYXZVcFJpZ2h0OiAnbmF2LXVwLXJpZ2h0JyxcbiAgICBvbkFib3J0OiAnb25hYm9ydCcsXG4gICAgb25BY3RpdmF0ZTogJ29uYWN0aXZhdGUnLFxuICAgIG9uQWZ0ZXJQcmludDogJ29uYWZ0ZXJwcmludCcsXG4gICAgb25CZWZvcmVQcmludDogJ29uYmVmb3JlcHJpbnQnLFxuICAgIG9uQmVnaW46ICdvbmJlZ2luJyxcbiAgICBvbkNhbmNlbDogJ29uY2FuY2VsJyxcbiAgICBvbkNhblBsYXk6ICdvbmNhbnBsYXknLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6ICdvbmNhbnBsYXl0aHJvdWdoJyxcbiAgICBvbkNoYW5nZTogJ29uY2hhbmdlJyxcbiAgICBvbkNsaWNrOiAnb25jbGljaycsXG4gICAgb25DbG9zZTogJ29uY2xvc2UnLFxuICAgIG9uQ29weTogJ29uY29weScsXG4gICAgb25DdWVDaGFuZ2U6ICdvbmN1ZWNoYW5nZScsXG4gICAgb25DdXQ6ICdvbmN1dCcsXG4gICAgb25EYmxDbGljazogJ29uZGJsY2xpY2snLFxuICAgIG9uRHJhZzogJ29uZHJhZycsXG4gICAgb25EcmFnRW5kOiAnb25kcmFnZW5kJyxcbiAgICBvbkRyYWdFbnRlcjogJ29uZHJhZ2VudGVyJyxcbiAgICBvbkRyYWdFeGl0OiAnb25kcmFnZXhpdCcsXG4gICAgb25EcmFnTGVhdmU6ICdvbmRyYWdsZWF2ZScsXG4gICAgb25EcmFnT3ZlcjogJ29uZHJhZ292ZXInLFxuICAgIG9uRHJhZ1N0YXJ0OiAnb25kcmFnc3RhcnQnLFxuICAgIG9uRHJvcDogJ29uZHJvcCcsXG4gICAgb25EdXJhdGlvbkNoYW5nZTogJ29uZHVyYXRpb25jaGFuZ2UnLFxuICAgIG9uRW1wdGllZDogJ29uZW1wdGllZCcsXG4gICAgb25FbmQ6ICdvbmVuZCcsXG4gICAgb25FbmRlZDogJ29uZW5kZWQnLFxuICAgIG9uRXJyb3I6ICdvbmVycm9yJyxcbiAgICBvbkZvY3VzOiAnb25mb2N1cycsXG4gICAgb25Gb2N1c0luOiAnb25mb2N1c2luJyxcbiAgICBvbkZvY3VzT3V0OiAnb25mb2N1c291dCcsXG4gICAgb25IYXNoQ2hhbmdlOiAnb25oYXNoY2hhbmdlJyxcbiAgICBvbklucHV0OiAnb25pbnB1dCcsXG4gICAgb25JbnZhbGlkOiAnb25pbnZhbGlkJyxcbiAgICBvbktleURvd246ICdvbmtleWRvd24nLFxuICAgIG9uS2V5UHJlc3M6ICdvbmtleXByZXNzJyxcbiAgICBvbktleVVwOiAnb25rZXl1cCcsXG4gICAgb25Mb2FkOiAnb25sb2FkJyxcbiAgICBvbkxvYWRlZERhdGE6ICdvbmxvYWRlZGRhdGEnLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6ICdvbmxvYWRlZG1ldGFkYXRhJyxcbiAgICBvbkxvYWRTdGFydDogJ29ubG9hZHN0YXJ0JyxcbiAgICBvbk1lc3NhZ2U6ICdvbm1lc3NhZ2UnLFxuICAgIG9uTW91c2VEb3duOiAnb25tb3VzZWRvd24nLFxuICAgIG9uTW91c2VFbnRlcjogJ29ubW91c2VlbnRlcicsXG4gICAgb25Nb3VzZUxlYXZlOiAnb25tb3VzZWxlYXZlJyxcbiAgICBvbk1vdXNlTW92ZTogJ29ubW91c2Vtb3ZlJyxcbiAgICBvbk1vdXNlT3V0OiAnb25tb3VzZW91dCcsXG4gICAgb25Nb3VzZU92ZXI6ICdvbm1vdXNlb3ZlcicsXG4gICAgb25Nb3VzZVVwOiAnb25tb3VzZXVwJyxcbiAgICBvbk1vdXNlV2hlZWw6ICdvbm1vdXNld2hlZWwnLFxuICAgIG9uT2ZmbGluZTogJ29ub2ZmbGluZScsXG4gICAgb25PbmxpbmU6ICdvbm9ubGluZScsXG4gICAgb25QYWdlSGlkZTogJ29ucGFnZWhpZGUnLFxuICAgIG9uUGFnZVNob3c6ICdvbnBhZ2VzaG93JyxcbiAgICBvblBhc3RlOiAnb25wYXN0ZScsXG4gICAgb25QYXVzZTogJ29ucGF1c2UnLFxuICAgIG9uUGxheTogJ29ucGxheScsXG4gICAgb25QbGF5aW5nOiAnb25wbGF5aW5nJyxcbiAgICBvblBvcFN0YXRlOiAnb25wb3BzdGF0ZScsXG4gICAgb25Qcm9ncmVzczogJ29ucHJvZ3Jlc3MnLFxuICAgIG9uUmF0ZUNoYW5nZTogJ29ucmF0ZWNoYW5nZScsXG4gICAgb25SZXBlYXQ6ICdvbnJlcGVhdCcsXG4gICAgb25SZXNldDogJ29ucmVzZXQnLFxuICAgIG9uUmVzaXplOiAnb25yZXNpemUnLFxuICAgIG9uU2Nyb2xsOiAnb25zY3JvbGwnLFxuICAgIG9uU2Vla2VkOiAnb25zZWVrZWQnLFxuICAgIG9uU2Vla2luZzogJ29uc2Vla2luZycsXG4gICAgb25TZWxlY3Q6ICdvbnNlbGVjdCcsXG4gICAgb25TaG93OiAnb25zaG93JyxcbiAgICBvblN0YWxsZWQ6ICdvbnN0YWxsZWQnLFxuICAgIG9uU3RvcmFnZTogJ29uc3RvcmFnZScsXG4gICAgb25TdWJtaXQ6ICdvbnN1Ym1pdCcsXG4gICAgb25TdXNwZW5kOiAnb25zdXNwZW5kJyxcbiAgICBvblRpbWVVcGRhdGU6ICdvbnRpbWV1cGRhdGUnLFxuICAgIG9uVG9nZ2xlOiAnb250b2dnbGUnLFxuICAgIG9uVW5sb2FkOiAnb251bmxvYWQnLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiAnb252b2x1bWVjaGFuZ2UnLFxuICAgIG9uV2FpdGluZzogJ29ud2FpdGluZycsXG4gICAgb25ab29tOiAnb256b29tJyxcbiAgICBvdmVybGluZVBvc2l0aW9uOiAnb3ZlcmxpbmUtcG9zaXRpb24nLFxuICAgIG92ZXJsaW5lVGhpY2tuZXNzOiAnb3ZlcmxpbmUtdGhpY2tuZXNzJyxcbiAgICBwYWludE9yZGVyOiAncGFpbnQtb3JkZXInLFxuICAgIHBhbm9zZTE6ICdwYW5vc2UtMScsXG4gICAgcG9pbnRlckV2ZW50czogJ3BvaW50ZXItZXZlbnRzJyxcbiAgICByZWZlcnJlclBvbGljeTogJ3JlZmVycmVycG9saWN5JyxcbiAgICByZW5kZXJpbmdJbnRlbnQ6ICdyZW5kZXJpbmctaW50ZW50JyxcbiAgICBzaGFwZVJlbmRlcmluZzogJ3NoYXBlLXJlbmRlcmluZycsXG4gICAgc3RvcENvbG9yOiAnc3RvcC1jb2xvcicsXG4gICAgc3RvcE9wYWNpdHk6ICdzdG9wLW9wYWNpdHknLFxuICAgIHN0cmlrZXRocm91Z2hQb3NpdGlvbjogJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nLFxuICAgIHN0cmlrZXRocm91Z2hUaGlja25lc3M6ICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcycsXG4gICAgc3Ryb2tlRGFzaEFycmF5OiAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICAgc3Ryb2tlRGFzaE9mZnNldDogJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgICBzdHJva2VMaW5lQ2FwOiAnc3Ryb2tlLWxpbmVjYXAnLFxuICAgIHN0cm9rZUxpbmVKb2luOiAnc3Ryb2tlLWxpbmVqb2luJyxcbiAgICBzdHJva2VNaXRlckxpbWl0OiAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAgIHN0cm9rZU9wYWNpdHk6ICdzdHJva2Utb3BhY2l0eScsXG4gICAgc3Ryb2tlV2lkdGg6ICdzdHJva2Utd2lkdGgnLFxuICAgIHRhYkluZGV4OiAndGFiaW5kZXgnLFxuICAgIHRleHRBbmNob3I6ICd0ZXh0LWFuY2hvcicsXG4gICAgdGV4dERlY29yYXRpb246ICd0ZXh0LWRlY29yYXRpb24nLFxuICAgIHRleHRSZW5kZXJpbmc6ICd0ZXh0LXJlbmRlcmluZycsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiAndHJhbnNmb3JtLW9yaWdpbicsXG4gICAgdHlwZU9mOiAndHlwZW9mJyxcbiAgICB1bmRlcmxpbmVQb3NpdGlvbjogJ3VuZGVybGluZS1wb3NpdGlvbicsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiAndW5kZXJsaW5lLXRoaWNrbmVzcycsXG4gICAgdW5pY29kZUJpZGk6ICd1bmljb2RlLWJpZGknLFxuICAgIHVuaWNvZGVSYW5nZTogJ3VuaWNvZGUtcmFuZ2UnLFxuICAgIHVuaXRzUGVyRW06ICd1bml0cy1wZXItZW0nLFxuICAgIHZBbHBoYWJldGljOiAndi1hbHBoYWJldGljJyxcbiAgICB2SGFuZ2luZzogJ3YtaGFuZ2luZycsXG4gICAgdklkZW9ncmFwaGljOiAndi1pZGVvZ3JhcGhpYycsXG4gICAgdk1hdGhlbWF0aWNhbDogJ3YtbWF0aGVtYXRpY2FsJyxcbiAgICB2ZWN0b3JFZmZlY3Q6ICd2ZWN0b3ItZWZmZWN0JyxcbiAgICB2ZXJ0QWR2WTogJ3ZlcnQtYWR2LXknLFxuICAgIHZlcnRPcmlnaW5YOiAndmVydC1vcmlnaW4teCcsXG4gICAgdmVydE9yaWdpblk6ICd2ZXJ0LW9yaWdpbi15JyxcbiAgICB3b3JkU3BhY2luZzogJ3dvcmQtc3BhY2luZycsXG4gICAgd3JpdGluZ01vZGU6ICd3cml0aW5nLW1vZGUnLFxuICAgIHhIZWlnaHQ6ICd4LWhlaWdodCcsXG4gICAgLy8gVGhlc2Ugd2VyZSBjYW1lbGNhc2VkIGluIFRpbnkuIE5vdyBsb3dlcmNhc2VkIGluIFNWRyAyXG4gICAgcGxheWJhY2tPcmRlcjogJ3BsYXliYWNrb3JkZXInLFxuICAgIHRpbWVsaW5lQmVnaW46ICd0aW1lbGluZWJlZ2luJ1xuICB9LFxuICB0cmFuc2Zvcm06IGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhYm91dDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIGFjY2VudEhlaWdodDogbnVtYmVyLFxuICAgIGFjY3VtdWxhdGU6IG51bGwsXG4gICAgYWRkaXRpdmU6IG51bGwsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6IG51bGwsXG4gICAgYWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIGFtcGxpdHVkZTogbnVtYmVyLFxuICAgIGFyYWJpY0Zvcm06IG51bGwsXG4gICAgYXNjZW50OiBudW1iZXIsXG4gICAgYXR0cmlidXRlTmFtZTogbnVsbCxcbiAgICBhdHRyaWJ1dGVUeXBlOiBudWxsLFxuICAgIGF6aW11dGg6IG51bWJlcixcbiAgICBiYW5kd2lkdGg6IG51bGwsXG4gICAgYmFzZWxpbmVTaGlmdDogbnVsbCxcbiAgICBiYXNlRnJlcXVlbmN5OiBudWxsLFxuICAgIGJhc2VQcm9maWxlOiBudWxsLFxuICAgIGJib3g6IG51bGwsXG4gICAgYmVnaW46IG51bGwsXG4gICAgYmlhczogbnVtYmVyLFxuICAgIGJ5OiBudWxsLFxuICAgIGNhbGNNb2RlOiBudWxsLFxuICAgIGNhcEhlaWdodDogbnVtYmVyLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY2xpcDogbnVsbCxcbiAgICBjbGlwUGF0aDogbnVsbCxcbiAgICBjbGlwUGF0aFVuaXRzOiBudWxsLFxuICAgIGNsaXBSdWxlOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbjogbnVsbCxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiBudWxsLFxuICAgIGNvbG9yUHJvZmlsZTogbnVsbCxcbiAgICBjb2xvclJlbmRlcmluZzogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGNvbnRlbnRTY3JpcHRUeXBlOiBudWxsLFxuICAgIGNvbnRlbnRTdHlsZVR5cGU6IG51bGwsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgY3Vyc29yOiBudWxsLFxuICAgIGN4OiBudWxsLFxuICAgIGN5OiBudWxsLFxuICAgIGQ6IG51bGwsXG4gICAgZGF0YVR5cGU6IG51bGwsXG4gICAgZGVmYXVsdEFjdGlvbjogbnVsbCxcbiAgICBkZXNjZW50OiBudW1iZXIsXG4gICAgZGlmZnVzZUNvbnN0YW50OiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGRpc3BsYXk6IG51bGwsXG4gICAgZHVyOiBudWxsLFxuICAgIGRpdmlzb3I6IG51bWJlcixcbiAgICBkb21pbmFudEJhc2VsaW5lOiBudWxsLFxuICAgIGRvd25sb2FkOiBib29sZWFuLFxuICAgIGR4OiBudWxsLFxuICAgIGR5OiBudWxsLFxuICAgIGVkZ2VNb2RlOiBudWxsLFxuICAgIGVkaXRhYmxlOiBudWxsLFxuICAgIGVsZXZhdGlvbjogbnVtYmVyLFxuICAgIGVuYWJsZUJhY2tncm91bmQ6IG51bGwsXG4gICAgZW5kOiBudWxsLFxuICAgIGV2ZW50OiBudWxsLFxuICAgIGV4cG9uZW50OiBudW1iZXIsXG4gICAgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDogbnVsbCxcbiAgICBmaWxsOiBudWxsLFxuICAgIGZpbGxPcGFjaXR5OiBudW1iZXIsXG4gICAgZmlsbFJ1bGU6IG51bGwsXG4gICAgZmlsdGVyOiBudWxsLFxuICAgIGZpbHRlclJlczogbnVsbCxcbiAgICBmaWx0ZXJVbml0czogbnVsbCxcbiAgICBmbG9vZENvbG9yOiBudWxsLFxuICAgIGZsb29kT3BhY2l0eTogbnVsbCxcbiAgICBmb2N1c2FibGU6IG51bGwsXG4gICAgZm9jdXNIaWdobGlnaHQ6IG51bGwsXG4gICAgZm9udEZhbWlseTogbnVsbCxcbiAgICBmb250U2l6ZTogbnVsbCxcbiAgICBmb250U2l6ZUFkanVzdDogbnVsbCxcbiAgICBmb250U3RyZXRjaDogbnVsbCxcbiAgICBmb250U3R5bGU6IG51bGwsXG4gICAgZm9udFZhcmlhbnQ6IG51bGwsXG4gICAgZm9udFdlaWdodDogbnVsbCxcbiAgICBmb3JtYXQ6IG51bGwsXG4gICAgZnI6IG51bGwsXG4gICAgZnJvbTogbnVsbCxcbiAgICBmeDogbnVsbCxcbiAgICBmeTogbnVsbCxcbiAgICBnMTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZzI6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGdseXBoTmFtZTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6IG51bGwsXG4gICAgZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiBudWxsLFxuICAgIGdseXBoUmVmOiBudWxsLFxuICAgIGdyYWRpZW50VHJhbnNmb3JtOiBudWxsLFxuICAgIGdyYWRpZW50VW5pdHM6IG51bGwsXG4gICAgaGFuZGxlcjogbnVsbCxcbiAgICBoYW5naW5nOiBudW1iZXIsXG4gICAgaGF0Y2hDb250ZW50VW5pdHM6IG51bGwsXG4gICAgaGF0Y2hVbml0czogbnVsbCxcbiAgICBoZWlnaHQ6IG51bGwsXG4gICAgaHJlZjogbnVsbCxcbiAgICBocmVmTGFuZzogbnVsbCxcbiAgICBob3JpekFkdlg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblk6IG51bWJlcixcbiAgICBpZDogbnVsbCxcbiAgICBpZGVvZ3JhcGhpYzogbnVtYmVyLFxuICAgIGltYWdlUmVuZGVyaW5nOiBudWxsLFxuICAgIGluaXRpYWxWaXNpYmlsaXR5OiBudWxsLFxuICAgIGluOiBudWxsLFxuICAgIGluMjogbnVsbCxcbiAgICBpbnRlcmNlcHQ6IG51bWJlcixcbiAgICBrOiBudW1iZXIsXG4gICAgazE6IG51bWJlcixcbiAgICBrMjogbnVtYmVyLFxuICAgIGszOiBudW1iZXIsXG4gICAgazQ6IG51bWJlcixcbiAgICBrZXJuZWxNYXRyaXg6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBrZXJuZWxVbml0TGVuZ3RoOiBudWxsLFxuICAgIGtleVBvaW50czogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXlTcGxpbmVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtleVRpbWVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtlcm5pbmc6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsZW5ndGhBZGp1c3Q6IG51bGwsXG4gICAgbGV0dGVyU3BhY2luZzogbnVsbCxcbiAgICBsaWdodGluZ0NvbG9yOiBudWxsLFxuICAgIGxpbWl0aW5nQ29uZUFuZ2xlOiBudW1iZXIsXG4gICAgbG9jYWw6IG51bGwsXG4gICAgbWFya2VyRW5kOiBudWxsLFxuICAgIG1hcmtlck1pZDogbnVsbCxcbiAgICBtYXJrZXJTdGFydDogbnVsbCxcbiAgICBtYXJrZXJIZWlnaHQ6IG51bGwsXG4gICAgbWFya2VyVW5pdHM6IG51bGwsXG4gICAgbWFya2VyV2lkdGg6IG51bGwsXG4gICAgbWFzazogbnVsbCxcbiAgICBtYXNrQ29udGVudFVuaXRzOiBudWxsLFxuICAgIG1hc2tVbml0czogbnVsbCxcbiAgICBtYXRoZW1hdGljYWw6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6IG51bGwsXG4gICAgbWVkaWFDb250ZW50RW5jb2RpbmdzOiBudWxsLFxuICAgIG1lZGlhU2l6ZTogbnVtYmVyLFxuICAgIG1lZGlhVGltZTogbnVsbCxcbiAgICBtZXRob2Q6IG51bGwsXG4gICAgbWluOiBudWxsLFxuICAgIG1vZGU6IG51bGwsXG4gICAgbmFtZTogbnVsbCxcbiAgICBuYXZEb3duOiBudWxsLFxuICAgIG5hdkRvd25MZWZ0OiBudWxsLFxuICAgIG5hdkRvd25SaWdodDogbnVsbCxcbiAgICBuYXZMZWZ0OiBudWxsLFxuICAgIG5hdk5leHQ6IG51bGwsXG4gICAgbmF2UHJldjogbnVsbCxcbiAgICBuYXZSaWdodDogbnVsbCxcbiAgICBuYXZVcDogbnVsbCxcbiAgICBuYXZVcExlZnQ6IG51bGwsXG4gICAgbmF2VXBSaWdodDogbnVsbCxcbiAgICBudW1PY3RhdmVzOiBudWxsLFxuICAgIG9ic2VydmVyOiBudWxsLFxuICAgIG9mZnNldDogbnVsbCxcbiAgICBvbkFib3J0OiBudWxsLFxuICAgIG9uQWN0aXZhdGU6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWdpbjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9jdXNJbjogbnVsbCxcbiAgICBvbkZvY3VzT3V0OiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTG9hZDogbnVsbCxcbiAgICBvbkxvYWRlZERhdGE6IG51bGwsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk1vdXNlV2hlZWw6IG51bGwsXG4gICAgb25PZmZsaW5lOiBudWxsLFxuICAgIG9uT25saW5lOiBudWxsLFxuICAgIG9uUGFnZUhpZGU6IG51bGwsXG4gICAgb25QYWdlU2hvdzogbnVsbCxcbiAgICBvblBhc3RlOiBudWxsLFxuICAgIG9uUGF1c2U6IG51bGwsXG4gICAgb25QbGF5OiBudWxsLFxuICAgIG9uUGxheWluZzogbnVsbCxcbiAgICBvblBvcFN0YXRlOiBudWxsLFxuICAgIG9uUHJvZ3Jlc3M6IG51bGwsXG4gICAgb25SYXRlQ2hhbmdlOiBudWxsLFxuICAgIG9uUmVwZWF0OiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TZWVrZWQ6IG51bGwsXG4gICAgb25TZWVraW5nOiBudWxsLFxuICAgIG9uU2VsZWN0OiBudWxsLFxuICAgIG9uU2hvdzogbnVsbCxcbiAgICBvblN0YWxsZWQ6IG51bGwsXG4gICAgb25TdG9yYWdlOiBudWxsLFxuICAgIG9uU3VibWl0OiBudWxsLFxuICAgIG9uU3VzcGVuZDogbnVsbCxcbiAgICBvblRpbWVVcGRhdGU6IG51bGwsXG4gICAgb25Ub2dnbGU6IG51bGwsXG4gICAgb25VbmxvYWQ6IG51bGwsXG4gICAgb25Wb2x1bWVDaGFuZ2U6IG51bGwsXG4gICAgb25XYWl0aW5nOiBudWxsLFxuICAgIG9uWm9vbTogbnVsbCxcbiAgICBvcGFjaXR5OiBudWxsLFxuICAgIG9wZXJhdG9yOiBudWxsLFxuICAgIG9yZGVyOiBudWxsLFxuICAgIG9yaWVudDogbnVsbCxcbiAgICBvcmllbnRhdGlvbjogbnVsbCxcbiAgICBvcmlnaW46IG51bGwsXG4gICAgb3ZlcmZsb3c6IG51bGwsXG4gICAgb3ZlcmxheTogbnVsbCxcbiAgICBvdmVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6IG51bWJlcixcbiAgICBwYWludE9yZGVyOiBudWxsLFxuICAgIHBhbm9zZTE6IG51bGwsXG4gICAgcGF0aDogbnVsbCxcbiAgICBwYXRoTGVuZ3RoOiBudW1iZXIsXG4gICAgcGF0dGVybkNvbnRlbnRVbml0czogbnVsbCxcbiAgICBwYXR0ZXJuVHJhbnNmb3JtOiBudWxsLFxuICAgIHBhdHRlcm5Vbml0czogbnVsbCxcbiAgICBwaGFzZTogbnVsbCxcbiAgICBwaW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBwaXRjaDogbnVsbCxcbiAgICBwbGF5YmFja09yZGVyOiBudWxsLFxuICAgIHBvaW50ZXJFdmVudHM6IG51bGwsXG4gICAgcG9pbnRzOiBudWxsLFxuICAgIHBvaW50c0F0WDogbnVtYmVyLFxuICAgIHBvaW50c0F0WTogbnVtYmVyLFxuICAgIHBvaW50c0F0WjogbnVtYmVyLFxuICAgIHByZXNlcnZlQWxwaGE6IG51bGwsXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbzogbnVsbCxcbiAgICBwcmltaXRpdmVVbml0czogbnVsbCxcbiAgICBwcm9wYWdhdGU6IG51bGwsXG4gICAgcHJvcGVydHk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByOiBudWxsLFxuICAgIHJhZGl1czogbnVsbCxcbiAgICByZWZlcnJlclBvbGljeTogbnVsbCxcbiAgICByZWZYOiBudWxsLFxuICAgIHJlZlk6IG51bGwsXG4gICAgcmVsOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmV2OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVuZGVyaW5nSW50ZW50OiBudWxsLFxuICAgIHJlcGVhdENvdW50OiBudWxsLFxuICAgIHJlcGVhdER1cjogbnVsbCxcbiAgICByZXF1aXJlZEV4dGVuc2lvbnM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZlYXR1cmVzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGb250czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRm9ybWF0czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlc291cmNlOiBudWxsLFxuICAgIHJlc3RhcnQ6IG51bGwsXG4gICAgcmVzdWx0OiBudWxsLFxuICAgIHJvdGF0ZTogbnVsbCxcbiAgICByeDogbnVsbCxcbiAgICByeTogbnVsbCxcbiAgICBzY2FsZTogbnVsbCxcbiAgICBzZWVkOiBudWxsLFxuICAgIHNoYXBlUmVuZGVyaW5nOiBudWxsLFxuICAgIHNpZGU6IG51bGwsXG4gICAgc2xvcGU6IG51bGwsXG4gICAgc25hcHNob3RUaW1lOiBudWxsLFxuICAgIHNwZWN1bGFyQ29uc3RhbnQ6IG51bWJlcixcbiAgICBzcGVjdWxhckV4cG9uZW50OiBudW1iZXIsXG4gICAgc3ByZWFkTWV0aG9kOiBudWxsLFxuICAgIHNwYWNpbmc6IG51bGwsXG4gICAgc3RhcnRPZmZzZXQ6IG51bGwsXG4gICAgc3RkRGV2aWF0aW9uOiBudWxsLFxuICAgIHN0ZW1oOiBudWxsLFxuICAgIHN0ZW12OiBudWxsLFxuICAgIHN0aXRjaFRpbGVzOiBudWxsLFxuICAgIHN0b3BDb2xvcjogbnVsbCxcbiAgICBzdG9wT3BhY2l0eTogbnVsbCxcbiAgICBzdHJpa2V0aHJvdWdoUG9zaXRpb246IG51bWJlcixcbiAgICBzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgc3RyaW5nOiBudWxsLFxuICAgIHN0cm9rZTogbnVsbCxcbiAgICBzdHJva2VEYXNoQXJyYXk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiBudWxsLFxuICAgIHN0cm9rZUxpbmVDYXA6IG51bGwsXG4gICAgc3Ryb2tlTGluZUpvaW46IG51bGwsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogbnVtYmVyLFxuICAgIHN0cm9rZU9wYWNpdHk6IG51bWJlcixcbiAgICBzdHJva2VXaWR0aDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBzdXJmYWNlU2NhbGU6IG51bWJlcixcbiAgICBzeW5jQmVoYXZpb3I6IG51bGwsXG4gICAgc3luY0JlaGF2aW9yRGVmYXVsdDogbnVsbCxcbiAgICBzeW5jTWFzdGVyOiBudWxsLFxuICAgIHN5bmNUb2xlcmFuY2U6IG51bGwsXG4gICAgc3luY1RvbGVyYW5jZURlZmF1bHQ6IG51bGwsXG4gICAgc3lzdGVtTGFuZ3VhZ2U6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICAgIHRhYmxlVmFsdWVzOiBudWxsLFxuICAgIHRhcmdldDogbnVsbCxcbiAgICB0YXJnZXRYOiBudW1iZXIsXG4gICAgdGFyZ2V0WTogbnVtYmVyLFxuICAgIHRleHRBbmNob3I6IG51bGwsXG4gICAgdGV4dERlY29yYXRpb246IG51bGwsXG4gICAgdGV4dFJlbmRlcmluZzogbnVsbCxcbiAgICB0ZXh0TGVuZ3RoOiBudWxsLFxuICAgIHRpbWVsaW5lQmVnaW46IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNmb3JtQmVoYXZpb3I6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB0eXBlT2Y6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0bzogbnVsbCxcbiAgICB0cmFuc2Zvcm06IG51bGwsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiBudWxsLFxuICAgIHUxOiBudWxsLFxuICAgIHUyOiBudWxsLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgdW5pY29kZTogbnVsbCxcbiAgICB1bmljb2RlQmlkaTogbnVsbCxcbiAgICB1bmljb2RlUmFuZ2U6IG51bGwsXG4gICAgdW5pdHNQZXJFbTogbnVtYmVyLFxuICAgIHZhbHVlczogbnVsbCxcbiAgICB2QWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIHZNYXRoZW1hdGljYWw6IG51bWJlcixcbiAgICB2ZWN0b3JFZmZlY3Q6IG51bGwsXG4gICAgdkhhbmdpbmc6IG51bWJlcixcbiAgICB2SWRlb2dyYXBoaWM6IG51bWJlcixcbiAgICB2ZXJzaW9uOiBudWxsLFxuICAgIHZlcnRBZHZZOiBudW1iZXIsXG4gICAgdmVydE9yaWdpblg6IG51bWJlcixcbiAgICB2ZXJ0T3JpZ2luWTogbnVtYmVyLFxuICAgIHZpZXdCb3g6IG51bGwsXG4gICAgdmlld1RhcmdldDogbnVsbCxcbiAgICB2aXNpYmlsaXR5OiBudWxsLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHdpZHRoczogbnVsbCxcbiAgICB3b3JkU3BhY2luZzogbnVsbCxcbiAgICB3cml0aW5nTW9kZTogbnVsbCxcbiAgICB4OiBudWxsLFxuICAgIHgxOiBudWxsLFxuICAgIHgyOiBudWxsLFxuICAgIHhDaGFubmVsU2VsZWN0b3I6IG51bGwsXG4gICAgeEhlaWdodDogbnVtYmVyLFxuICAgIHk6IG51bGwsXG4gICAgeTE6IG51bGwsXG4gICAgeTI6IG51bGwsXG4gICAgeUNoYW5uZWxTZWxlY3RvcjogbnVsbCxcbiAgICB6OiBudWxsLFxuICAgIHpvb21BbmRQYW46IG51bGxcbiAgfVxufSlcbiJdLCJuYW1lcyI6WyJib29sZWFuIiwibnVtYmVyIiwic3BhY2VTZXBhcmF0ZWQiLCJjb21tYVNlcGFyYXRlZCIsImNvbW1hT3JTcGFjZVNlcGFyYXRlZCIsImNyZWF0ZSIsImNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0iLCJzdmciLCJzcGFjZSIsImF0dHJpYnV0ZXMiLCJhY2NlbnRIZWlnaHQiLCJhbGlnbm1lbnRCYXNlbGluZSIsImFyYWJpY0Zvcm0iLCJiYXNlbGluZVNoaWZ0IiwiY2FwSGVpZ2h0IiwiY2xhc3NOYW1lIiwiY2xpcFBhdGgiLCJjbGlwUnVsZSIsImNvbG9ySW50ZXJwb2xhdGlvbiIsImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMiLCJjb2xvclByb2ZpbGUiLCJjb2xvclJlbmRlcmluZyIsImNyb3NzT3JpZ2luIiwiZGF0YVR5cGUiLCJkb21pbmFudEJhc2VsaW5lIiwiZW5hYmxlQmFja2dyb3VuZCIsImZpbGxPcGFjaXR5IiwiZmlsbFJ1bGUiLCJmbG9vZENvbG9yIiwiZmxvb2RPcGFjaXR5IiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFNpemVBZGp1c3QiLCJmb250U3RyZXRjaCIsImZvbnRTdHlsZSIsImZvbnRWYXJpYW50IiwiZm9udFdlaWdodCIsImdseXBoTmFtZSIsImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsIiwiZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsIiwiaHJlZkxhbmciLCJob3JpekFkdlgiLCJob3Jpek9yaWdpblgiLCJob3Jpek9yaWdpblkiLCJpbWFnZVJlbmRlcmluZyIsImxldHRlclNwYWNpbmciLCJsaWdodGluZ0NvbG9yIiwibWFya2VyRW5kIiwibWFya2VyTWlkIiwibWFya2VyU3RhcnQiLCJuYXZEb3duIiwibmF2RG93bkxlZnQiLCJuYXZEb3duUmlnaHQiLCJuYXZMZWZ0IiwibmF2TmV4dCIsIm5hdlByZXYiLCJuYXZSaWdodCIsIm5hdlVwIiwibmF2VXBMZWZ0IiwibmF2VXBSaWdodCIsIm9uQWJvcnQiLCJvbkFjdGl2YXRlIiwib25BZnRlclByaW50Iiwib25CZWZvcmVQcmludCIsIm9uQmVnaW4iLCJvbkNhbmNlbCIsIm9uQ2FuUGxheSIsIm9uQ2FuUGxheVRocm91Z2giLCJvbkNoYW5nZSIsIm9uQ2xpY2siLCJvbkNsb3NlIiwib25Db3B5Iiwib25DdWVDaGFuZ2UiLCJvbkN1dCIsIm9uRGJsQ2xpY2siLCJvbkRyYWciLCJvbkRyYWdFbmQiLCJvbkRyYWdFbnRlciIsIm9uRHJhZ0V4aXQiLCJvbkRyYWdMZWF2ZSIsIm9uRHJhZ092ZXIiLCJvbkRyYWdTdGFydCIsIm9uRHJvcCIsIm9uRHVyYXRpb25DaGFuZ2UiLCJvbkVtcHRpZWQiLCJvbkVuZCIsIm9uRW5kZWQiLCJvbkVycm9yIiwib25Gb2N1cyIsIm9uRm9jdXNJbiIsIm9uRm9jdXNPdXQiLCJvbkhhc2hDaGFuZ2UiLCJvbklucHV0Iiwib25JbnZhbGlkIiwib25LZXlEb3duIiwib25LZXlQcmVzcyIsIm9uS2V5VXAiLCJvbkxvYWQiLCJvbkxvYWRlZERhdGEiLCJvbkxvYWRlZE1ldGFkYXRhIiwib25Mb2FkU3RhcnQiLCJvbk1lc3NhZ2UiLCJvbk1vdXNlRG93biIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm9uTW91c2VNb3ZlIiwib25Nb3VzZU91dCIsIm9uTW91c2VPdmVyIiwib25Nb3VzZVVwIiwib25Nb3VzZVdoZWVsIiwib25PZmZsaW5lIiwib25PbmxpbmUiLCJvblBhZ2VIaWRlIiwib25QYWdlU2hvdyIsIm9uUGFzdGUiLCJvblBhdXNlIiwib25QbGF5Iiwib25QbGF5aW5nIiwib25Qb3BTdGF0ZSIsIm9uUHJvZ3Jlc3MiLCJvblJhdGVDaGFuZ2UiLCJvblJlcGVhdCIsIm9uUmVzZXQiLCJvblJlc2l6ZSIsIm9uU2Nyb2xsIiwib25TZWVrZWQiLCJvblNlZWtpbmciLCJvblNlbGVjdCIsIm9uU2hvdyIsIm9uU3RhbGxlZCIsIm9uU3RvcmFnZSIsIm9uU3VibWl0Iiwib25TdXNwZW5kIiwib25UaW1lVXBkYXRlIiwib25Ub2dnbGUiLCJvblVubG9hZCIsIm9uVm9sdW1lQ2hhbmdlIiwib25XYWl0aW5nIiwib25ab29tIiwib3ZlcmxpbmVQb3NpdGlvbiIsIm92ZXJsaW5lVGhpY2tuZXNzIiwicGFpbnRPcmRlciIsInBhbm9zZTEiLCJwb2ludGVyRXZlbnRzIiwicmVmZXJyZXJQb2xpY3kiLCJyZW5kZXJpbmdJbnRlbnQiLCJzaGFwZVJlbmRlcmluZyIsInN0b3BDb2xvciIsInN0b3BPcGFjaXR5Iiwic3RyaWtldGhyb3VnaFBvc2l0aW9uIiwic3RyaWtldGhyb3VnaFRoaWNrbmVzcyIsInN0cm9rZURhc2hBcnJheSIsInN0cm9rZURhc2hPZmZzZXQiLCJzdHJva2VMaW5lQ2FwIiwic3Ryb2tlTGluZUpvaW4iLCJzdHJva2VNaXRlckxpbWl0Iiwic3Ryb2tlT3BhY2l0eSIsInN0cm9rZVdpZHRoIiwidGFiSW5kZXgiLCJ0ZXh0QW5jaG9yIiwidGV4dERlY29yYXRpb24iLCJ0ZXh0UmVuZGVyaW5nIiwidHJhbnNmb3JtT3JpZ2luIiwidHlwZU9mIiwidW5kZXJsaW5lUG9zaXRpb24iLCJ1bmRlcmxpbmVUaGlja25lc3MiLCJ1bmljb2RlQmlkaSIsInVuaWNvZGVSYW5nZSIsInVuaXRzUGVyRW0iLCJ2QWxwaGFiZXRpYyIsInZIYW5naW5nIiwidklkZW9ncmFwaGljIiwidk1hdGhlbWF0aWNhbCIsInZlY3RvckVmZmVjdCIsInZlcnRBZHZZIiwidmVydE9yaWdpblgiLCJ2ZXJ0T3JpZ2luWSIsIndvcmRTcGFjaW5nIiwid3JpdGluZ01vZGUiLCJ4SGVpZ2h0IiwicGxheWJhY2tPcmRlciIsInRpbWVsaW5lQmVnaW4iLCJ0cmFuc2Zvcm0iLCJwcm9wZXJ0aWVzIiwiYWJvdXQiLCJhY2N1bXVsYXRlIiwiYWRkaXRpdmUiLCJhbHBoYWJldGljIiwiYW1wbGl0dWRlIiwiYXNjZW50IiwiYXR0cmlidXRlTmFtZSIsImF0dHJpYnV0ZVR5cGUiLCJhemltdXRoIiwiYmFuZHdpZHRoIiwiYmFzZUZyZXF1ZW5jeSIsImJhc2VQcm9maWxlIiwiYmJveCIsImJlZ2luIiwiYmlhcyIsImJ5IiwiY2FsY01vZGUiLCJjbGlwIiwiY2xpcFBhdGhVbml0cyIsImNvbG9yIiwiY29udGVudCIsImNvbnRlbnRTY3JpcHRUeXBlIiwiY29udGVudFN0eWxlVHlwZSIsImN1cnNvciIsImN4IiwiY3kiLCJkIiwiZGVmYXVsdEFjdGlvbiIsImRlc2NlbnQiLCJkaWZmdXNlQ29uc3RhbnQiLCJkaXJlY3Rpb24iLCJkaXNwbGF5IiwiZHVyIiwiZGl2aXNvciIsImRvd25sb2FkIiwiZHgiLCJkeSIsImVkZ2VNb2RlIiwiZWRpdGFibGUiLCJlbGV2YXRpb24iLCJlbmQiLCJldmVudCIsImV4cG9uZW50IiwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCIsImZpbGwiLCJmaWx0ZXIiLCJmaWx0ZXJSZXMiLCJmaWx0ZXJVbml0cyIsImZvY3VzYWJsZSIsImZvY3VzSGlnaGxpZ2h0IiwiZm9ybWF0IiwiZnIiLCJmcm9tIiwiZngiLCJmeSIsImcxIiwiZzIiLCJnbHlwaFJlZiIsImdyYWRpZW50VHJhbnNmb3JtIiwiZ3JhZGllbnRVbml0cyIsImhhbmRsZXIiLCJoYW5naW5nIiwiaGF0Y2hDb250ZW50VW5pdHMiLCJoYXRjaFVuaXRzIiwiaGVpZ2h0IiwiaHJlZiIsImlkIiwiaWRlb2dyYXBoaWMiLCJpbml0aWFsVmlzaWJpbGl0eSIsImluIiwiaW4yIiwiaW50ZXJjZXB0IiwiayIsImsxIiwiazIiLCJrMyIsIms0Iiwia2VybmVsTWF0cml4Iiwia2VybmVsVW5pdExlbmd0aCIsImtleVBvaW50cyIsImtleVNwbGluZXMiLCJrZXlUaW1lcyIsImtlcm5pbmciLCJsYW5nIiwibGVuZ3RoQWRqdXN0IiwibGltaXRpbmdDb25lQW5nbGUiLCJsb2NhbCIsIm1hcmtlckhlaWdodCIsIm1hcmtlclVuaXRzIiwibWFya2VyV2lkdGgiLCJtYXNrIiwibWFza0NvbnRlbnRVbml0cyIsIm1hc2tVbml0cyIsIm1hdGhlbWF0aWNhbCIsIm1heCIsIm1lZGlhIiwibWVkaWFDaGFyYWN0ZXJFbmNvZGluZyIsIm1lZGlhQ29udGVudEVuY29kaW5ncyIsIm1lZGlhU2l6ZSIsIm1lZGlhVGltZSIsIm1ldGhvZCIsIm1pbiIsIm1vZGUiLCJuYW1lIiwibnVtT2N0YXZlcyIsIm9ic2VydmVyIiwib2Zmc2V0Iiwib3BhY2l0eSIsIm9wZXJhdG9yIiwib3JkZXIiLCJvcmllbnQiLCJvcmllbnRhdGlvbiIsIm9yaWdpbiIsIm92ZXJmbG93Iiwib3ZlcmxheSIsInBhdGgiLCJwYXRoTGVuZ3RoIiwicGF0dGVybkNvbnRlbnRVbml0cyIsInBhdHRlcm5UcmFuc2Zvcm0iLCJwYXR0ZXJuVW5pdHMiLCJwaGFzZSIsInBpbmciLCJwaXRjaCIsInBvaW50cyIsInBvaW50c0F0WCIsInBvaW50c0F0WSIsInBvaW50c0F0WiIsInByZXNlcnZlQWxwaGEiLCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwicHJpbWl0aXZlVW5pdHMiLCJwcm9wYWdhdGUiLCJwcm9wZXJ0eSIsInIiLCJyYWRpdXMiLCJyZWZYIiwicmVmWSIsInJlbCIsInJldiIsInJlcGVhdENvdW50IiwicmVwZWF0RHVyIiwicmVxdWlyZWRFeHRlbnNpb25zIiwicmVxdWlyZWRGZWF0dXJlcyIsInJlcXVpcmVkRm9udHMiLCJyZXF1aXJlZEZvcm1hdHMiLCJyZXNvdXJjZSIsInJlc3RhcnQiLCJyZXN1bHQiLCJyb3RhdGUiLCJyeCIsInJ5Iiwic2NhbGUiLCJzZWVkIiwic2lkZSIsInNsb3BlIiwic25hcHNob3RUaW1lIiwic3BlY3VsYXJDb25zdGFudCIsInNwZWN1bGFyRXhwb25lbnQiLCJzcHJlYWRNZXRob2QiLCJzcGFjaW5nIiwic3RhcnRPZmZzZXQiLCJzdGREZXZpYXRpb24iLCJzdGVtaCIsInN0ZW12Iiwic3RpdGNoVGlsZXMiLCJzdHJpbmciLCJzdHJva2UiLCJzdHlsZSIsInN1cmZhY2VTY2FsZSIsInN5bmNCZWhhdmlvciIsInN5bmNCZWhhdmlvckRlZmF1bHQiLCJzeW5jTWFzdGVyIiwic3luY1RvbGVyYW5jZSIsInN5bmNUb2xlcmFuY2VEZWZhdWx0Iiwic3lzdGVtTGFuZ3VhZ2UiLCJ0YWJsZVZhbHVlcyIsInRhcmdldCIsInRhcmdldFgiLCJ0YXJnZXRZIiwidGV4dExlbmd0aCIsInRpdGxlIiwidHJhbnNmb3JtQmVoYXZpb3IiLCJ0eXBlIiwidG8iLCJ1MSIsInUyIiwidW5pY29kZSIsInZhbHVlcyIsInZlcnNpb24iLCJ2aWV3Qm94Iiwidmlld1RhcmdldCIsInZpc2liaWxpdHkiLCJ3aWR0aCIsIndpZHRocyIsIngiLCJ4MSIsIngyIiwieENoYW5uZWxTZWxlY3RvciIsInkiLCJ5MSIsInkyIiwieUNoYW5uZWxTZWxlY3RvciIsInoiLCJ6b29tQW5kUGFuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/svg.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/util/case-insensitive-transform.js":
-/*!**************************************************************************************!*\
- !*** ../../node_modules/property-information/lib/util/case-insensitive-transform.js ***!
- \**************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ caseInsensitiveTransform: () => (/* binding */ caseInsensitiveTransform)\n/* harmony export */ });\n/* harmony import */ var _case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./case-sensitive-transform.js */ \"(ssr)/../../node_modules/property-information/lib/util/case-sensitive-transform.js\");\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */ function caseInsensitiveTransform(attributes, property) {\n return (0,_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_0__.caseSensitiveTransform)(attributes, property.toLowerCase());\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW9FO0FBRXBFOzs7O0NBSUMsR0FDTSxTQUFTQyx5QkFBeUJDLFVBQVUsRUFBRUMsUUFBUTtJQUMzRCxPQUFPSCxvRkFBc0JBLENBQUNFLFlBQVlDLFNBQVNDLFdBQVc7QUFDaEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcz8wNzgyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y2FzZVNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbi8qKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHlcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0oYXR0cmlidXRlcywgcHJvcGVydHkpIHtcbiAgcmV0dXJuIGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0oYXR0cmlidXRlcywgcHJvcGVydHkudG9Mb3dlckNhc2UoKSlcbn1cbiJdLCJuYW1lcyI6WyJjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtIiwiY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtIiwiYXR0cmlidXRlcyIsInByb3BlcnR5IiwidG9Mb3dlckNhc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/util/case-insensitive-transform.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/util/case-sensitive-transform.js":
-/*!************************************************************************************!*\
- !*** ../../node_modules/property-information/lib/util/case-sensitive-transform.js ***!
- \************************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ caseSensitiveTransform: () => (/* binding */ caseSensitiveTransform)\n/* harmony export */ });\n/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */ function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUNNLFNBQVNBLHVCQUF1QkMsVUFBVSxFQUFFQyxTQUFTO0lBQzFELE9BQU9BLGFBQWFELGFBQWFBLFVBQVUsQ0FBQ0MsVUFBVSxHQUFHQTtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcz8zNzVkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybShhdHRyaWJ1dGVzLCBhdHRyaWJ1dGUpIHtcbiAgcmV0dXJuIGF0dHJpYnV0ZSBpbiBhdHRyaWJ1dGVzID8gYXR0cmlidXRlc1thdHRyaWJ1dGVdIDogYXR0cmlidXRlXG59XG4iXSwibmFtZXMiOlsiY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybSIsImF0dHJpYnV0ZXMiLCJhdHRyaWJ1dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/util/case-sensitive-transform.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/util/create.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/property-information/lib/util/create.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ create: () => (/* binding */ create)\n/* harmony export */ });\n/* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../normalize.js */ \"(ssr)/../../node_modules/property-information/lib/normalize.js\");\n/* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schema.js */ \"(ssr)/../../node_modules/property-information/lib/util/schema.js\");\n/* harmony import */ var _defined_info_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defined-info.js */ \"(ssr)/../../node_modules/property-information/lib/util/defined-info.js\");\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */ \n\n\nconst own = {}.hasOwnProperty;\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */ function create(definition) {\n /** @type {Properties} */ const property = {};\n /** @type {Normal} */ const normal = {};\n /** @type {string} */ let prop;\n for(prop in definition.properties){\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new _defined_info_js__WEBPACK_IMPORTED_MODULE_0__.DefinedInfo(prop, definition.transform(definition.attributes || {}, prop), value, definition.space);\n if (definition.mustUseProperty && definition.mustUseProperty.includes(prop)) {\n info.mustUseProperty = true;\n }\n property[prop] = info;\n normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(prop)] = prop;\n normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(info.attribute)] = prop;\n }\n }\n return new _schema_js__WEBPACK_IMPORTED_MODULE_2__.Schema(property, normal, definition.space);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7OztDQVlDLEdBRXdDO0FBQ1A7QUFDVztBQUU3QyxNQUFNRyxNQUFNLENBQUMsRUFBRUMsY0FBYztBQUU3Qjs7O0NBR0MsR0FDTSxTQUFTQyxPQUFPQyxVQUFVO0lBQy9CLHVCQUF1QixHQUN2QixNQUFNQyxXQUFXLENBQUM7SUFDbEIsbUJBQW1CLEdBQ25CLE1BQU1DLFNBQVMsQ0FBQztJQUNoQixtQkFBbUIsR0FDbkIsSUFBSUM7SUFFSixJQUFLQSxRQUFRSCxXQUFXSSxVQUFVLENBQUU7UUFDbEMsSUFBSVAsSUFBSVEsSUFBSSxDQUFDTCxXQUFXSSxVQUFVLEVBQUVELE9BQU87WUFDekMsTUFBTUcsUUFBUU4sV0FBV0ksVUFBVSxDQUFDRCxLQUFLO1lBQ3pDLE1BQU1JLE9BQU8sSUFBSVgseURBQVdBLENBQzFCTyxNQUNBSCxXQUFXUSxTQUFTLENBQUNSLFdBQVdTLFVBQVUsSUFBSSxDQUFDLEdBQUdOLE9BQ2xERyxPQUNBTixXQUFXVSxLQUFLO1lBR2xCLElBQ0VWLFdBQVdXLGVBQWUsSUFDMUJYLFdBQVdXLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDVCxPQUNwQztnQkFDQUksS0FBS0ksZUFBZSxHQUFHO1lBQ3pCO1lBRUFWLFFBQVEsQ0FBQ0UsS0FBSyxHQUFHSTtZQUVqQkwsTUFBTSxDQUFDUix3REFBU0EsQ0FBQ1MsTUFBTSxHQUFHQTtZQUMxQkQsTUFBTSxDQUFDUix3REFBU0EsQ0FBQ2EsS0FBS00sU0FBUyxFQUFFLEdBQUdWO1FBQ3RDO0lBQ0Y7SUFFQSxPQUFPLElBQUlSLDhDQUFNQSxDQUFDTSxVQUFVQyxRQUFRRixXQUFXVSxLQUFLO0FBQ3REIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvY3JlYXRlLmpzP2FkYmIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuTm9ybWFsfSBOb3JtYWxcbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gQXR0cmlidXRlc1xuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERlZmluaXRpb25cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgbnVtYmVyfG51bGw+fSBwcm9wZXJ0aWVzXG4gKiBAcHJvcGVydHkgeyhhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVzLCBwcm9wZXJ0eTogc3RyaW5nKSA9PiBzdHJpbmd9IHRyYW5zZm9ybVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtzcGFjZV1cbiAqIEBwcm9wZXJ0eSB7QXR0cmlidXRlc30gW2F0dHJpYnV0ZXNdXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IFttdXN0VXNlUHJvcGVydHldXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemV9IGZyb20gJy4uL25vcm1hbGl6ZS5qcydcbmltcG9ydCB7U2NoZW1hfSBmcm9tICcuL3NjaGVtYS5qcydcbmltcG9ydCB7RGVmaW5lZEluZm99IGZyb20gJy4vZGVmaW5lZC1pbmZvLmpzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEBwYXJhbSB7RGVmaW5pdGlvbn0gZGVmaW5pdGlvblxuICogQHJldHVybnMge1NjaGVtYX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShkZWZpbml0aW9uKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydHkgPSB7fVxuICAvKiogQHR5cGUge05vcm1hbH0gKi9cbiAgY29uc3Qgbm9ybWFsID0ge31cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBwcm9wXG5cbiAgZm9yIChwcm9wIGluIGRlZmluaXRpb24ucHJvcGVydGllcykge1xuICAgIGlmIChvd24uY2FsbChkZWZpbml0aW9uLnByb3BlcnRpZXMsIHByb3ApKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGRlZmluaXRpb24ucHJvcGVydGllc1twcm9wXVxuICAgICAgY29uc3QgaW5mbyA9IG5ldyBEZWZpbmVkSW5mbyhcbiAgICAgICAgcHJvcCxcbiAgICAgICAgZGVmaW5pdGlvbi50cmFuc2Zvcm0oZGVmaW5pdGlvbi5hdHRyaWJ1dGVzIHx8IHt9LCBwcm9wKSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGRlZmluaXRpb24uc3BhY2VcbiAgICAgIClcblxuICAgICAgaWYgKFxuICAgICAgICBkZWZpbml0aW9uLm11c3RVc2VQcm9wZXJ0eSAmJlxuICAgICAgICBkZWZpbml0aW9uLm11c3RVc2VQcm9wZXJ0eS5pbmNsdWRlcyhwcm9wKVxuICAgICAgKSB7XG4gICAgICAgIGluZm8ubXVzdFVzZVByb3BlcnR5ID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVtwcm9wXSA9IGluZm9cblxuICAgICAgbm9ybWFsW25vcm1hbGl6ZShwcm9wKV0gPSBwcm9wXG4gICAgICBub3JtYWxbbm9ybWFsaXplKGluZm8uYXR0cmlidXRlKV0gPSBwcm9wXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBTY2hlbWEocHJvcGVydHksIG5vcm1hbCwgZGVmaW5pdGlvbi5zcGFjZSlcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemUiLCJTY2hlbWEiLCJEZWZpbmVkSW5mbyIsIm93biIsImhhc093blByb3BlcnR5IiwiY3JlYXRlIiwiZGVmaW5pdGlvbiIsInByb3BlcnR5Iiwibm9ybWFsIiwicHJvcCIsInByb3BlcnRpZXMiLCJjYWxsIiwidmFsdWUiLCJpbmZvIiwidHJhbnNmb3JtIiwiYXR0cmlidXRlcyIsInNwYWNlIiwibXVzdFVzZVByb3BlcnR5IiwiaW5jbHVkZXMiLCJhdHRyaWJ1dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/util/create.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/util/defined-info.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/property-information/lib/util/defined-info.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DefinedInfo: () => (/* binding */ DefinedInfo)\n/* harmony export */ });\n/* harmony import */ var _info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./info.js */ \"(ssr)/../../node_modules/property-information/lib/util/info.js\");\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types.js */ \"(ssr)/../../node_modules/property-information/lib/util/types.js\");\n\n\n/** @type {Array<keyof types>} */ // @ts-expect-error: hush.\nconst checks = Object.keys(_types_js__WEBPACK_IMPORTED_MODULE_0__);\nclass DefinedInfo extends _info_js__WEBPACK_IMPORTED_MODULE_1__.Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */ constructor(property, attribute, mask, space){\n let index = -1;\n super(property, attribute);\n mark(this, \"space\", space);\n if (typeof mask === \"number\") {\n while(++index < checks.length){\n const check = checks[index];\n mark(this, checks[index], (mask & _types_js__WEBPACK_IMPORTED_MODULE_0__[check]) === _types_js__WEBPACK_IMPORTED_MODULE_0__[check]);\n }\n }\n }\n}\nDefinedInfo.prototype.defined = true;\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */ function mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2RlZmluZWQtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBOEI7QUFDSztBQUVuQywrQkFBK0IsR0FDL0IsMEJBQTBCO0FBQzFCLE1BQU1FLFNBQVNDLE9BQU9DLElBQUksQ0FBQ0gsc0NBQUtBO0FBRXpCLE1BQU1JLG9CQUFvQkwsMENBQUlBO0lBQ25DOzs7Ozs7R0FNQyxHQUNETSxZQUFZQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsSUFBSSxFQUFFQyxLQUFLLENBQUU7UUFDNUMsSUFBSUMsUUFBUSxDQUFDO1FBRWIsS0FBSyxDQUFDSixVQUFVQztRQUVoQkksS0FBSyxJQUFJLEVBQUUsU0FBU0Y7UUFFcEIsSUFBSSxPQUFPRCxTQUFTLFVBQVU7WUFDNUIsTUFBTyxFQUFFRSxRQUFRVCxPQUFPVyxNQUFNLENBQUU7Z0JBQzlCLE1BQU1DLFFBQVFaLE1BQU0sQ0FBQ1MsTUFBTTtnQkFDM0JDLEtBQUssSUFBSSxFQUFFVixNQUFNLENBQUNTLE1BQU0sRUFBRSxDQUFDRixPQUFPUixzQ0FBSyxDQUFDYSxNQUFNLE1BQU1iLHNDQUFLLENBQUNhLE1BQU07WUFDbEU7UUFDRjtJQUNGO0FBQ0Y7QUFFQVQsWUFBWVUsU0FBUyxDQUFDQyxPQUFPLEdBQUc7QUFFaEM7Ozs7Q0FJQyxHQUNELFNBQVNKLEtBQUtLLE1BQU0sRUFBRUMsR0FBRyxFQUFFQyxLQUFLO0lBQzlCLElBQUlBLE9BQU87UUFDVCx3RUFBd0U7UUFDeEVGLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHQztJQUNoQjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvZGVmaW5lZC1pbmZvLmpzP2ZlMDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmZvfSBmcm9tICcuL2luZm8uanMnXG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL3R5cGVzLmpzJ1xuXG4vKiogQHR5cGUge0FycmF5PGtleW9mIHR5cGVzPn0gKi9cbi8vIEB0cy1leHBlY3QtZXJyb3I6IGh1c2guXG5jb25zdCBjaGVja3MgPSBPYmplY3Qua2V5cyh0eXBlcylcblxuZXhwb3J0IGNsYXNzIERlZmluZWRJbmZvIGV4dGVuZHMgSW5mbyB7XG4gIC8qKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAgICogQHBhcmFtIHtudW1iZXJ8bnVsbH0gW21hc2tdXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3BhY2VdXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgYXR0cmlidXRlLCBtYXNrLCBzcGFjZSkge1xuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICBzdXBlcihwcm9wZXJ0eSwgYXR0cmlidXRlKVxuXG4gICAgbWFyayh0aGlzLCAnc3BhY2UnLCBzcGFjZSlcblxuICAgIGlmICh0eXBlb2YgbWFzayA9PT0gJ251bWJlcicpIHtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgY2hlY2tzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjaGVjayA9IGNoZWNrc1tpbmRleF1cbiAgICAgICAgbWFyayh0aGlzLCBjaGVja3NbaW5kZXhdLCAobWFzayAmIHR5cGVzW2NoZWNrXSkgPT09IHR5cGVzW2NoZWNrXSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuRGVmaW5lZEluZm8ucHJvdG90eXBlLmRlZmluZWQgPSB0cnVlXG5cbi8qKlxuICogQHBhcmFtIHtEZWZpbmVkSW5mb30gdmFsdWVzXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKi9cbmZ1bmN0aW9uIG1hcmsodmFsdWVzLCBrZXksIHZhbHVlKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGFzc3VtZSBgdmFsdWVgIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHZhbHVlIG9mIGBrZXlgLlxuICAgIHZhbHVlc1trZXldID0gdmFsdWVcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkluZm8iLCJ0eXBlcyIsImNoZWNrcyIsIk9iamVjdCIsImtleXMiLCJEZWZpbmVkSW5mbyIsImNvbnN0cnVjdG9yIiwicHJvcGVydHkiLCJhdHRyaWJ1dGUiLCJtYXNrIiwic3BhY2UiLCJpbmRleCIsIm1hcmsiLCJsZW5ndGgiLCJjaGVjayIsInByb3RvdHlwZSIsImRlZmluZWQiLCJ2YWx1ZXMiLCJrZXkiLCJ2YWx1ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/util/defined-info.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/util/info.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/property-information/lib/util/info.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Info: () => (/* binding */ Info)\n/* harmony export */ });\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */ constructor(property, attribute){\n /** @type {string} */ this.property = property;\n /** @type {string} */ this.attribute = attribute;\n }\n}\n/** @type {string|null} */ Info.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLE1BQU1BO0lBQ1g7Ozs7R0FJQyxHQUNEQyxZQUFZQyxRQUFRLEVBQUVDLFNBQVMsQ0FBRTtRQUMvQixtQkFBbUIsR0FDbkIsSUFBSSxDQUFDRCxRQUFRLEdBQUdBO1FBQ2hCLG1CQUFtQixHQUNuQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7QUFDRjtBQUVBLHdCQUF3QixHQUN4QkgsS0FBS0ksU0FBUyxDQUFDQyxLQUFLLEdBQUc7QUFDdkJMLEtBQUtJLFNBQVMsQ0FBQ0UsT0FBTyxHQUFHO0FBQ3pCTixLQUFLSSxTQUFTLENBQUNHLFVBQVUsR0FBRztBQUM1QlAsS0FBS0ksU0FBUyxDQUFDSSxpQkFBaUIsR0FBRztBQUNuQ1IsS0FBS0ksU0FBUyxDQUFDSyxNQUFNLEdBQUc7QUFDeEJULEtBQUtJLFNBQVMsQ0FBQ00sY0FBYyxHQUFHO0FBQ2hDVixLQUFLSSxTQUFTLENBQUNPLGNBQWMsR0FBRztBQUNoQ1gsS0FBS0ksU0FBUyxDQUFDUSxxQkFBcUIsR0FBRztBQUN2Q1osS0FBS0ksU0FBUyxDQUFDUyxlQUFlLEdBQUc7QUFDakNiLEtBQUtJLFNBQVMsQ0FBQ1UsT0FBTyxHQUFHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvaW5mby5qcz9mYzNmIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJbmZvIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydHksIGF0dHJpYnV0ZSkge1xuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eVxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIHRoaXMuYXR0cmlidXRlID0gYXR0cmlidXRlXG4gIH1cbn1cblxuLyoqIEB0eXBlIHtzdHJpbmd8bnVsbH0gKi9cbkluZm8ucHJvdG90eXBlLnNwYWNlID0gbnVsbFxuSW5mby5wcm90b3R5cGUuYm9vbGVhbiA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5ib29sZWFuaXNoID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLm51bWJlciA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5ID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmRlZmluZWQgPSBmYWxzZVxuIl0sIm5hbWVzIjpbIkluZm8iLCJjb25zdHJ1Y3RvciIsInByb3BlcnR5IiwiYXR0cmlidXRlIiwicHJvdG90eXBlIiwic3BhY2UiLCJib29sZWFuIiwiYm9vbGVhbmlzaCIsIm92ZXJsb2FkZWRCb29sZWFuIiwibnVtYmVyIiwiY29tbWFTZXBhcmF0ZWQiLCJzcGFjZVNlcGFyYXRlZCIsImNvbW1hT3JTcGFjZVNlcGFyYXRlZCIsIm11c3RVc2VQcm9wZXJ0eSIsImRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/util/info.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/util/merge.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/property-information/lib/util/merge.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ merge: () => (/* binding */ merge)\n/* harmony export */ });\n/* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schema.js */ \"(ssr)/../../node_modules/property-information/lib/util/schema.js\");\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */ \n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */ function merge(definitions, space) {\n /** @type {Properties} */ const property = {};\n /** @type {Normal} */ const normal = {};\n let index = -1;\n while(++index < definitions.length){\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n return new _schema_js__WEBPACK_IMPORTED_MODULE_0__.Schema(property, normal, space);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL21lcmdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztDQUdDLEdBRWlDO0FBRWxDOzs7O0NBSUMsR0FDTSxTQUFTQyxNQUFNQyxXQUFXLEVBQUVDLEtBQUs7SUFDdEMsdUJBQXVCLEdBQ3ZCLE1BQU1DLFdBQVcsQ0FBQztJQUNsQixtQkFBbUIsR0FDbkIsTUFBTUMsU0FBUyxDQUFDO0lBQ2hCLElBQUlDLFFBQVEsQ0FBQztJQUViLE1BQU8sRUFBRUEsUUFBUUosWUFBWUssTUFBTSxDQUFFO1FBQ25DQyxPQUFPQyxNQUFNLENBQUNMLFVBQVVGLFdBQVcsQ0FBQ0ksTUFBTSxDQUFDRixRQUFRO1FBQ25ESSxPQUFPQyxNQUFNLENBQUNKLFFBQVFILFdBQVcsQ0FBQ0ksTUFBTSxDQUFDRCxNQUFNO0lBQ2pEO0lBRUEsT0FBTyxJQUFJTCw4Q0FBTUEsQ0FBQ0ksVUFBVUMsUUFBUUY7QUFDdEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9tZXJnZS5qcz85MzAyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEuanMnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLk5vcm1hbH0gTm9ybWFsXG4gKi9cblxuaW1wb3J0IHtTY2hlbWF9IGZyb20gJy4vc2NoZW1hLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hW119IGRlZmluaXRpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gW3NwYWNlXVxuICogQHJldHVybnMge1NjaGVtYX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlKGRlZmluaXRpb25zLCBzcGFjZSkge1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnR5ID0ge31cbiAgLyoqIEB0eXBlIHtOb3JtYWx9ICovXG4gIGNvbnN0IG5vcm1hbCA9IHt9XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBkZWZpbml0aW9ucy5sZW5ndGgpIHtcbiAgICBPYmplY3QuYXNzaWduKHByb3BlcnR5LCBkZWZpbml0aW9uc1tpbmRleF0ucHJvcGVydHkpXG4gICAgT2JqZWN0LmFzc2lnbihub3JtYWwsIGRlZmluaXRpb25zW2luZGV4XS5ub3JtYWwpXG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYShwcm9wZXJ0eSwgbm9ybWFsLCBzcGFjZSlcbn1cbiJdLCJuYW1lcyI6WyJTY2hlbWEiLCJtZXJnZSIsImRlZmluaXRpb25zIiwic3BhY2UiLCJwcm9wZXJ0eSIsIm5vcm1hbCIsImluZGV4IiwibGVuZ3RoIiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/util/merge.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/util/schema.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/property-information/lib/util/schema.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Schema: () => (/* binding */ Schema)\n/* harmony export */ });\n/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */ class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */ constructor(property, normal, space){\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n/** @type {Properties} */ Schema.prototype.property = {};\n/** @type {Normal} */ Schema.prototype.normal = {};\n/** @type {string|null} */ Schema.prototype.space = null;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUVNLE1BQU1BO0lBQ1g7Ozs7O0dBS0MsR0FDREMsWUFBWUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssQ0FBRTtRQUNuQyxJQUFJLENBQUNGLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSUMsT0FBTztZQUNULElBQUksQ0FBQ0EsS0FBSyxHQUFHQTtRQUNmO0lBQ0Y7QUFDRjtBQUVBLHVCQUF1QixHQUN2QkosT0FBT0ssU0FBUyxDQUFDSCxRQUFRLEdBQUcsQ0FBQztBQUM3QixtQkFBbUIsR0FDbkJGLE9BQU9LLFNBQVMsQ0FBQ0YsTUFBTSxHQUFHLENBQUM7QUFDM0Isd0JBQXdCLEdBQ3hCSCxPQUFPSyxTQUFTLENBQUNELEtBQUssR0FBRyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcz83YTJiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9pbmZvLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIEluZm8+fSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gTm9ybWFsXG4gKi9cblxuZXhwb3J0IGNsYXNzIFNjaGVtYSB7XG4gIC8qKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtQcm9wZXJ0aWVzfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge05vcm1hbH0gbm9ybWFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3BhY2VdXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgbm9ybWFsLCBzcGFjZSkge1xuICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eVxuICAgIHRoaXMubm9ybWFsID0gbm9ybWFsXG4gICAgaWYgKHNwYWNlKSB7XG4gICAgICB0aGlzLnNwYWNlID0gc3BhY2VcbiAgICB9XG4gIH1cbn1cblxuLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuU2NoZW1hLnByb3RvdHlwZS5wcm9wZXJ0eSA9IHt9XG4vKiogQHR5cGUge05vcm1hbH0gKi9cblNjaGVtYS5wcm90b3R5cGUubm9ybWFsID0ge31cbi8qKiBAdHlwZSB7c3RyaW5nfG51bGx9ICovXG5TY2hlbWEucHJvdG90eXBlLnNwYWNlID0gbnVsbFxuIl0sIm5hbWVzIjpbIlNjaGVtYSIsImNvbnN0cnVjdG9yIiwicHJvcGVydHkiLCJub3JtYWwiLCJzcGFjZSIsInByb3RvdHlwZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/util/schema.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/util/types.js":
-/*!*****************************************************************!*\
- !*** ../../node_modules/property-information/lib/util/types.js ***!
- \*****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ boolean: () => (/* binding */ boolean),\n/* harmony export */ booleanish: () => (/* binding */ booleanish),\n/* harmony export */ commaOrSpaceSeparated: () => (/* binding */ commaOrSpaceSeparated),\n/* harmony export */ commaSeparated: () => (/* binding */ commaSeparated),\n/* harmony export */ number: () => (/* binding */ number),\n/* harmony export */ overloadedBoolean: () => (/* binding */ overloadedBoolean),\n/* harmony export */ spaceSeparated: () => (/* binding */ spaceSeparated)\n/* harmony export */ });\nlet powers = 0;\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\nfunction increment() {\n return 2 ** ++powers;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3R5cGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxTQUFTO0FBRU4sTUFBTUMsVUFBVUMsWUFBVztBQUMzQixNQUFNQyxhQUFhRCxZQUFXO0FBQzlCLE1BQU1FLG9CQUFvQkYsWUFBVztBQUNyQyxNQUFNRyxTQUFTSCxZQUFXO0FBQzFCLE1BQU1JLGlCQUFpQkosWUFBVztBQUNsQyxNQUFNSyxpQkFBaUJMLFlBQVc7QUFDbEMsTUFBTU0sd0JBQXdCTixZQUFXO0FBRWhELFNBQVNBO0lBQ1AsT0FBTyxLQUFLLEVBQUVGO0FBQ2hCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvdHlwZXMuanM/ZWIxOCJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgcG93ZXJzID0gMFxuXG5leHBvcnQgY29uc3QgYm9vbGVhbiA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgYm9vbGVhbmlzaCA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3Qgb3ZlcmxvYWRlZEJvb2xlYW4gPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IG51bWJlciA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3Qgc3BhY2VTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IGNvbW1hU2VwYXJhdGVkID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBjb21tYU9yU3BhY2VTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuXG5mdW5jdGlvbiBpbmNyZW1lbnQoKSB7XG4gIHJldHVybiAyICoqICsrcG93ZXJzXG59XG4iXSwibmFtZXMiOlsicG93ZXJzIiwiYm9vbGVhbiIsImluY3JlbWVudCIsImJvb2xlYW5pc2giLCJvdmVybG9hZGVkQm9vbGVhbiIsIm51bWJlciIsInNwYWNlU2VwYXJhdGVkIiwiY29tbWFTZXBhcmF0ZWQiLCJjb21tYU9yU3BhY2VTZXBhcmF0ZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/util/types.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/xlink.js":
-/*!************************************************************!*\
- !*** ../../node_modules/property-information/lib/xlink.js ***!
- \************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ xlink: () => (/* binding */ xlink)\n/* harmony export */ });\n/* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ \"(ssr)/../../node_modules/property-information/lib/util/create.js\");\n\nconst xlink = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({\n space: \"xlink\",\n transform (_, prop) {\n return \"xlink:\" + prop.slice(5).toLowerCase();\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi94bGluay5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1QztBQUVoQyxNQUFNQyxRQUFRRCx1REFBTUEsQ0FBQztJQUMxQkUsT0FBTztJQUNQQyxXQUFVQyxDQUFDLEVBQUVDLElBQUk7UUFDZixPQUFPLFdBQVdBLEtBQUtDLEtBQUssQ0FBQyxHQUFHQyxXQUFXO0lBQzdDO0lBQ0FDLFlBQVk7UUFDVkMsY0FBYztRQUNkQyxjQUFjO1FBQ2RDLFdBQVc7UUFDWEMsV0FBVztRQUNYQyxXQUFXO1FBQ1hDLFlBQVk7UUFDWkMsV0FBVztJQUNiO0FBQ0YsR0FBRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi94bGluay5qcz9mYzU5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuXG5leHBvcnQgY29uc3QgeGxpbmsgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3hsaW5rJyxcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gJ3hsaW5rOicgKyBwcm9wLnNsaWNlKDUpLnRvTG93ZXJDYXNlKClcbiAgfSxcbiAgcHJvcGVydGllczoge1xuICAgIHhMaW5rQWN0dWF0ZTogbnVsbCxcbiAgICB4TGlua0FyY1JvbGU6IG51bGwsXG4gICAgeExpbmtIcmVmOiBudWxsLFxuICAgIHhMaW5rUm9sZTogbnVsbCxcbiAgICB4TGlua1Nob3c6IG51bGwsXG4gICAgeExpbmtUaXRsZTogbnVsbCxcbiAgICB4TGlua1R5cGU6IG51bGxcbiAgfVxufSlcbiJdLCJuYW1lcyI6WyJjcmVhdGUiLCJ4bGluayIsInNwYWNlIiwidHJhbnNmb3JtIiwiXyIsInByb3AiLCJzbGljZSIsInRvTG93ZXJDYXNlIiwicHJvcGVydGllcyIsInhMaW5rQWN0dWF0ZSIsInhMaW5rQXJjUm9sZSIsInhMaW5rSHJlZiIsInhMaW5rUm9sZSIsInhMaW5rU2hvdyIsInhMaW5rVGl0bGUiLCJ4TGlua1R5cGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/xlink.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/xml.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/property-information/lib/xml.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ xml: () => (/* binding */ xml)\n/* harmony export */ });\n/* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ \"(ssr)/../../node_modules/property-information/lib/util/create.js\");\n\nconst xml = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({\n space: \"xml\",\n transform (_, prop) {\n return \"xml:\" + prop.slice(3).toLowerCase();\n },\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi94bWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUM7QUFFaEMsTUFBTUMsTUFBTUQsdURBQU1BLENBQUM7SUFDeEJFLE9BQU87SUFDUEMsV0FBVUMsQ0FBQyxFQUFFQyxJQUFJO1FBQ2YsT0FBTyxTQUFTQSxLQUFLQyxLQUFLLENBQUMsR0FBR0MsV0FBVztJQUMzQztJQUNBQyxZQUFZO1FBQUNDLFNBQVM7UUFBTUMsU0FBUztRQUFNQyxVQUFVO0lBQUk7QUFDM0QsR0FBRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi94bWwuanM/OTk4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IHhtbCA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneG1sJyxcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gJ3htbDonICsgcHJvcC5zbGljZSgzKS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHt4bWxMYW5nOiBudWxsLCB4bWxCYXNlOiBudWxsLCB4bWxTcGFjZTogbnVsbH1cbn0pXG4iXSwibmFtZXMiOlsiY3JlYXRlIiwieG1sIiwic3BhY2UiLCJ0cmFuc2Zvcm0iLCJfIiwicHJvcCIsInNsaWNlIiwidG9Mb3dlckNhc2UiLCJwcm9wZXJ0aWVzIiwieG1sTGFuZyIsInhtbEJhc2UiLCJ4bWxTcGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/xml.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/property-information/lib/xmlns.js":
-/*!************************************************************!*\
- !*** ../../node_modules/property-information/lib/xmlns.js ***!
- \************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ xmlns: () => (/* binding */ xmlns)\n/* harmony export */ });\n/* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ \"(ssr)/../../node_modules/property-information/lib/util/create.js\");\n/* harmony import */ var _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/case-insensitive-transform.js */ \"(ssr)/../../node_modules/property-information/lib/util/case-insensitive-transform.js\");\n\n\nconst xmlns = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({\n space: \"xmlns\",\n attributes: {\n xmlnsxlink: \"xmlns:xlink\"\n },\n transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi94bWxucy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUM7QUFDc0M7QUFFdEUsTUFBTUUsUUFBUUYsdURBQU1BLENBQUM7SUFDMUJHLE9BQU87SUFDUEMsWUFBWTtRQUFDQyxZQUFZO0lBQWE7SUFDdENDLFdBQVdMLHlGQUF3QkE7SUFDbkNNLFlBQVk7UUFBQ0wsT0FBTztRQUFNTSxZQUFZO0lBQUk7QUFDNUMsR0FBRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi94bWxucy5qcz85YzJhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuaW1wb3J0IHtjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IHhtbG5zID0gY3JlYXRlKHtcbiAgc3BhY2U6ICd4bWxucycsXG4gIGF0dHJpYnV0ZXM6IHt4bWxuc3hsaW5rOiAneG1sbnM6eGxpbmsnfSxcbiAgdHJhbnNmb3JtOiBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHt4bWxuczogbnVsbCwgeG1sbnNYTGluazogbnVsbH1cbn0pXG4iXSwibmFtZXMiOlsiY3JlYXRlIiwiY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtIiwieG1sbnMiLCJzcGFjZSIsImF0dHJpYnV0ZXMiLCJ4bWxuc3hsaW5rIiwidHJhbnNmb3JtIiwicHJvcGVydGllcyIsInhtbG5zWExpbmsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/property-information/lib/xmlns.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/react-markdown/lib/index.js":
-/*!******************************************************!*\
- !*** ../../node_modules/react-markdown/lib/index.js ***!
- \******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Markdown: () => (/* binding */ Markdown),\n/* harmony export */ defaultUrlTransform: () => (/* binding */ defaultUrlTransform)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var hast_util_to_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! hast-util-to-jsx-runtime */ \"(ssr)/../../node_modules/hast-util-to-jsx-runtime/lib/index.js\");\n/* harmony import */ var html_url_attributes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! html-url-attributes */ \"(ssr)/../../node_modules/html-url-attributes/lib/index.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/../../node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var remark_parse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! remark-parse */ \"(ssr)/../../node_modules/remark-parse/lib/index.js\");\n/* harmony import */ var remark_rehype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! remark-rehype */ \"(ssr)/../../node_modules/remark-rehype/lib/index.js\");\n/* harmony import */ var unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unified */ \"(ssr)/../../node_modules/unified/lib/index.js\");\n/* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! unist-util-visit */ \"(ssr)/../../node_modules/unist-util-visit/lib/index.js\");\n/* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vfile */ \"(ssr)/../../node_modules/vfile/lib/index.js\");\n// Register `Raw` in tree:\n/// <reference types=\"mdast-util-to-hast\" />\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor<Root>} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */ /**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly<Element>} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly<Parents> | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial<JsxRuntimeComponents>} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray<string> | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray<string> | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly<RemarkRehypeOptions> | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly<Element>} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */ \n\n\n// @ts-expect-error: untyped.\n\n\n\n\n\n\nconst changelog = \"https://github.com/remarkjs/react-markdown/blob/main/changelog.md\";\n/** @type {PluggableList} */ const emptyPlugins = [];\n/** @type {Readonly<RemarkRehypeOptions>} */ const emptyRemarkRehypeOptions = {\n allowDangerousHtml: true\n};\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i;\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray<Readonly<Deprecation>>} */ const deprecations = [\n {\n from: \"astPlugins\",\n id: \"remove-buggy-html-in-markdown-parser\"\n },\n {\n from: \"allowDangerousHtml\",\n id: \"remove-buggy-html-in-markdown-parser\"\n },\n {\n from: \"allowNode\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowElement\"\n },\n {\n from: \"allowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowedElements\"\n },\n {\n from: \"disallowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"disallowedElements\"\n },\n {\n from: \"escapeHtml\",\n id: \"remove-buggy-html-in-markdown-parser\"\n },\n {\n from: \"includeElementIndex\",\n id: \"#remove-includeelementindex\"\n },\n {\n from: \"includeNodeIndex\",\n id: \"change-includenodeindex-to-includeelementindex\"\n },\n {\n from: \"linkTarget\",\n id: \"remove-linktarget\"\n },\n {\n from: \"plugins\",\n id: \"change-plugins-to-remarkplugins\",\n to: \"remarkPlugins\"\n },\n {\n from: \"rawSourcePos\",\n id: \"#remove-rawsourcepos\"\n },\n {\n from: \"renderers\",\n id: \"change-renderers-to-components\",\n to: \"components\"\n },\n {\n from: \"source\",\n id: \"change-source-to-children\",\n to: \"children\"\n },\n {\n from: \"sourcePos\",\n id: \"#remove-sourcepos\"\n },\n {\n from: \"transformImageUri\",\n id: \"#add-urltransform\",\n to: \"urlTransform\"\n },\n {\n from: \"transformLinkUri\",\n id: \"#add-urltransform\",\n to: \"urlTransform\"\n }\n];\n/**\n * Component to render markdown.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */ function Markdown(options) {\n const allowedElements = options.allowedElements;\n const allowElement = options.allowElement;\n const children = options.children || \"\";\n const className = options.className;\n const components = options.components;\n const disallowedElements = options.disallowedElements;\n const rehypePlugins = options.rehypePlugins || emptyPlugins;\n const remarkPlugins = options.remarkPlugins || emptyPlugins;\n const remarkRehypeOptions = options.remarkRehypeOptions ? {\n ...options.remarkRehypeOptions,\n ...emptyRemarkRehypeOptions\n } : emptyRemarkRehypeOptions;\n const skipHtml = options.skipHtml;\n const unwrapDisallowed = options.unwrapDisallowed;\n const urlTransform = options.urlTransform || defaultUrlTransform;\n const processor = (0,unified__WEBPACK_IMPORTED_MODULE_1__.unified)().use(remark_parse__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).use(remarkPlugins).use(remark_rehype__WEBPACK_IMPORTED_MODULE_3__[\"default\"], remarkRehypeOptions).use(rehypePlugins);\n const file = new vfile__WEBPACK_IMPORTED_MODULE_4__.VFile();\n if (typeof children === \"string\") {\n file.value = children;\n } else {\n (0,devlop__WEBPACK_IMPORTED_MODULE_5__.unreachable)(\"Unexpected value `\" + children + \"` for `children` prop, expected `string`\");\n }\n if (allowedElements && disallowedElements) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_5__.unreachable)(\"Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other\");\n }\n for (const deprecation of deprecations){\n if (Object.hasOwn(options, deprecation.from)) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_5__.unreachable)(\"Unexpected `\" + deprecation.from + \"` prop, \" + (deprecation.to ? \"use `\" + deprecation.to + \"` instead\" : \"remove it\") + \" (see <\" + changelog + \"#\" + deprecation.id + \"> for more info)\");\n }\n }\n const mdastTree = processor.parse(file);\n /** @type {Nodes} */ let hastTree = processor.runSync(mdastTree, file);\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: \"element\",\n tagName: \"div\",\n properties: {\n className\n },\n // Assume no doctypes.\n children: /** @type {Array<ElementContent>} */ hastTree.type === \"root\" ? hastTree.children : [\n hastTree\n ]\n };\n }\n (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_6__.visit)(hastTree, transform);\n return (0,hast_util_to_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.toJsxRuntime)(hastTree, {\n Fragment: react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx: react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx,\n jsxs: react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs,\n passKeys: true,\n passNode: true\n });\n /** @type {Visitor} */ function transform(node, index, parent) {\n if (node.type === \"raw\" && parent && typeof index === \"number\") {\n if (skipHtml) {\n parent.children.splice(index, 1);\n } else {\n parent.children[index] = {\n type: \"text\",\n value: node.value\n };\n }\n return index;\n }\n if (node.type === \"element\") {\n /** @type {string} */ let key;\n for(key in html_url_attributes__WEBPACK_IMPORTED_MODULE_8__.urlAttributes){\n if (Object.hasOwn(html_url_attributes__WEBPACK_IMPORTED_MODULE_8__.urlAttributes, key) && Object.hasOwn(node.properties, key)) {\n const value = node.properties[key];\n const test = html_url_attributes__WEBPACK_IMPORTED_MODULE_8__.urlAttributes[key];\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || \"\"), key, node);\n }\n }\n }\n }\n if (node.type === \"element\") {\n let remove = allowedElements ? !allowedElements.includes(node.tagName) : disallowedElements ? disallowedElements.includes(node.tagName) : false;\n if (!remove && allowElement && typeof index === \"number\") {\n remove = !allowElement(node, index, parent);\n }\n if (remove && parent && typeof index === \"number\") {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children);\n } else {\n parent.children.splice(index, 1);\n }\n return index;\n }\n }\n }\n}\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */ function defaultUrlTransform(value) {\n // Same as:\n // <https://github.com/micromark/micromark/blob/929275e/packages/micromark-util-sanitize-uri/dev/index.js#L34>\n // But without the `encode` part.\n const colon = value.indexOf(\":\");\n const questionMark = value.indexOf(\"?\");\n const numberSign = value.indexOf(\"#\");\n const slash = value.indexOf(\"/\");\n if (// If there is no protocol, it’s relative.\n colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign || // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))) {\n return value;\n }\n return \"\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LW1hcmtkb3duL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDBCQUEwQjtBQUMxQiw0Q0FBNEM7QUFFNUM7Ozs7Ozs7Ozs7Q0FVQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrRUMsR0FFaUM7QUFDbUI7QUFDSjtBQUNqRCw2QkFBNkI7QUFDd0I7QUFDZjtBQUNFO0FBQ1Q7QUFDTztBQUNYO0FBRTNCLE1BQU1XLFlBQ0o7QUFFRiwwQkFBMEIsR0FDMUIsTUFBTUMsZUFBZSxFQUFFO0FBQ3ZCLDBDQUEwQyxHQUMxQyxNQUFNQywyQkFBMkI7SUFBQ0Msb0JBQW9CO0FBQUk7QUFDMUQsTUFBTUMsZUFBZTtBQUVyQix3RUFBd0U7QUFDeEUsaURBQWlELEdBQ2pELE1BQU1DLGVBQWU7SUFDbkI7UUFBQ0MsTUFBTTtRQUFjQyxJQUFJO0lBQXNDO0lBQy9EO1FBQUNELE1BQU07UUFBc0JDLElBQUk7SUFBc0M7SUFDdkU7UUFDRUQsTUFBTTtRQUNOQyxJQUFJO1FBQ0pDLElBQUk7SUFDTjtJQUNBO1FBQ0VGLE1BQU07UUFDTkMsSUFBSTtRQUNKQyxJQUFJO0lBQ047SUFDQTtRQUNFRixNQUFNO1FBQ05DLElBQUk7UUFDSkMsSUFBSTtJQUNOO0lBQ0E7UUFBQ0YsTUFBTTtRQUFjQyxJQUFJO0lBQXNDO0lBQy9EO1FBQUNELE1BQU07UUFBdUJDLElBQUk7SUFBNkI7SUFDL0Q7UUFDRUQsTUFBTTtRQUNOQyxJQUFJO0lBQ047SUFDQTtRQUFDRCxNQUFNO1FBQWNDLElBQUk7SUFBbUI7SUFDNUM7UUFBQ0QsTUFBTTtRQUFXQyxJQUFJO1FBQW1DQyxJQUFJO0lBQWU7SUFDNUU7UUFBQ0YsTUFBTTtRQUFnQkMsSUFBSTtJQUFzQjtJQUNqRDtRQUFDRCxNQUFNO1FBQWFDLElBQUk7UUFBa0NDLElBQUk7SUFBWTtJQUMxRTtRQUFDRixNQUFNO1FBQVVDLElBQUk7UUFBNkJDLElBQUk7SUFBVTtJQUNoRTtRQUFDRixNQUFNO1FBQWFDLElBQUk7SUFBbUI7SUFDM0M7UUFBQ0QsTUFBTTtRQUFxQkMsSUFBSTtRQUFxQkMsSUFBSTtJQUFjO0lBQ3ZFO1FBQUNGLE1BQU07UUFBb0JDLElBQUk7UUFBcUJDLElBQUk7SUFBYztDQUN2RTtBQUVEOzs7Ozs7O0NBT0MsR0FDTSxTQUFTQyxTQUFTQyxPQUFPO0lBQzlCLE1BQU1DLGtCQUFrQkQsUUFBUUMsZUFBZTtJQUMvQyxNQUFNQyxlQUFlRixRQUFRRSxZQUFZO0lBQ3pDLE1BQU1DLFdBQVdILFFBQVFHLFFBQVEsSUFBSTtJQUNyQyxNQUFNQyxZQUFZSixRQUFRSSxTQUFTO0lBQ25DLE1BQU1DLGFBQWFMLFFBQVFLLFVBQVU7SUFDckMsTUFBTUMscUJBQXFCTixRQUFRTSxrQkFBa0I7SUFDckQsTUFBTUMsZ0JBQWdCUCxRQUFRTyxhQUFhLElBQUloQjtJQUMvQyxNQUFNaUIsZ0JBQWdCUixRQUFRUSxhQUFhLElBQUlqQjtJQUMvQyxNQUFNa0Isc0JBQXNCVCxRQUFRUyxtQkFBbUIsR0FDbkQ7UUFBQyxHQUFHVCxRQUFRUyxtQkFBbUI7UUFBRSxHQUFHakIsd0JBQXdCO0lBQUEsSUFDNURBO0lBQ0osTUFBTWtCLFdBQVdWLFFBQVFVLFFBQVE7SUFDakMsTUFBTUMsbUJBQW1CWCxRQUFRVyxnQkFBZ0I7SUFDakQsTUFBTUMsZUFBZVosUUFBUVksWUFBWSxJQUFJQztJQUU3QyxNQUFNQyxZQUFZM0IsZ0RBQU9BLEdBQ3RCNEIsR0FBRyxDQUFDOUIsb0RBQVdBLEVBQ2Y4QixHQUFHLENBQUNQLGVBQ0pPLEdBQUcsQ0FBQzdCLHFEQUFZQSxFQUFFdUIscUJBQ2xCTSxHQUFHLENBQUNSO0lBRVAsTUFBTVMsT0FBTyxJQUFJM0Isd0NBQUtBO0lBRXRCLElBQUksT0FBT2MsYUFBYSxVQUFVO1FBQ2hDYSxLQUFLQyxLQUFLLEdBQUdkO0lBQ2YsT0FBTztRQUNMeEIsbURBQVdBLENBQ1QsdUJBQ0V3QixXQUNBO0lBRU47SUFFQSxJQUFJRixtQkFBbUJLLG9CQUFvQjtRQUN6QzNCLG1EQUFXQSxDQUNUO0lBRUo7SUFFQSxLQUFLLE1BQU11QyxlQUFldkIsYUFBYztRQUN0QyxJQUFJd0IsT0FBT0MsTUFBTSxDQUFDcEIsU0FBU2tCLFlBQVl0QixJQUFJLEdBQUc7WUFDNUNqQixtREFBV0EsQ0FDVCxpQkFDRXVDLFlBQVl0QixJQUFJLEdBQ2hCLGFBQ0NzQixDQUFBQSxZQUFZcEIsRUFBRSxHQUNYLFVBQVVvQixZQUFZcEIsRUFBRSxHQUFHLGNBQzNCLFdBQVUsSUFDZCxZQUNBUixZQUNBLE1BQ0E0QixZQUFZckIsRUFBRSxHQUNkO1FBRU47SUFDRjtJQUVBLE1BQU13QixZQUFZUCxVQUFVUSxLQUFLLENBQUNOO0lBQ2xDLGtCQUFrQixHQUNsQixJQUFJTyxXQUFXVCxVQUFVVSxPQUFPLENBQUNILFdBQVdMO0lBRTVDLHlDQUF5QztJQUN6QyxJQUFJWixXQUFXO1FBQ2JtQixXQUFXO1lBQ1RFLE1BQU07WUFDTkMsU0FBUztZQUNUQyxZQUFZO2dCQUFDdkI7WUFBUztZQUN0QixzQkFBc0I7WUFDdEJELFVBQVUsa0NBQWtDLEdBQzFDb0IsU0FBU0UsSUFBSSxLQUFLLFNBQVNGLFNBQVNwQixRQUFRLEdBQUc7Z0JBQUNvQjthQUFTO1FBRTdEO0lBQ0Y7SUFFQW5DLHVEQUFLQSxDQUFDbUMsVUFBVUs7SUFFaEIsT0FBT2hELHNFQUFZQSxDQUFDMkMsVUFBVTtRQUM1QnpDLFFBQVFBLHlEQUFBQTtRQUNSdUI7UUFDQXdCLG9CQUFvQjtRQUNwQjlDLEdBQUdBLG9EQUFBQTtRQUNIQyxJQUFJQSxxREFBQUE7UUFDSjhDLFVBQVU7UUFDVkMsVUFBVTtJQUNaO0lBRUEsb0JBQW9CLEdBQ3BCLFNBQVNILFVBQVVJLElBQUksRUFBRUMsS0FBSyxFQUFFQyxNQUFNO1FBQ3BDLElBQUlGLEtBQUtQLElBQUksS0FBSyxTQUFTUyxVQUFVLE9BQU9ELFVBQVUsVUFBVTtZQUM5RCxJQUFJdkIsVUFBVTtnQkFDWndCLE9BQU8vQixRQUFRLENBQUNnQyxNQUFNLENBQUNGLE9BQU87WUFDaEMsT0FBTztnQkFDTEMsT0FBTy9CLFFBQVEsQ0FBQzhCLE1BQU0sR0FBRztvQkFBQ1IsTUFBTTtvQkFBUVIsT0FBT2UsS0FBS2YsS0FBSztnQkFBQTtZQUMzRDtZQUVBLE9BQU9nQjtRQUNUO1FBRUEsSUFBSUQsS0FBS1AsSUFBSSxLQUFLLFdBQVc7WUFDM0IsbUJBQW1CLEdBQ25CLElBQUlXO1lBRUosSUFBS0EsT0FBT3ZELDhEQUFhQSxDQUFFO2dCQUN6QixJQUNFc0MsT0FBT0MsTUFBTSxDQUFDdkMsOERBQWFBLEVBQUV1RCxRQUM3QmpCLE9BQU9DLE1BQU0sQ0FBQ1ksS0FBS0wsVUFBVSxFQUFFUyxNQUMvQjtvQkFDQSxNQUFNbkIsUUFBUWUsS0FBS0wsVUFBVSxDQUFDUyxJQUFJO29CQUNsQyxNQUFNQyxPQUFPeEQsOERBQWEsQ0FBQ3VELElBQUk7b0JBQy9CLElBQUlDLFNBQVMsUUFBUUEsS0FBS0MsUUFBUSxDQUFDTixLQUFLTixPQUFPLEdBQUc7d0JBQ2hETSxLQUFLTCxVQUFVLENBQUNTLElBQUksR0FBR3hCLGFBQWEyQixPQUFPdEIsU0FBUyxLQUFLbUIsS0FBS0o7b0JBQ2hFO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLElBQUlBLEtBQUtQLElBQUksS0FBSyxXQUFXO1lBQzNCLElBQUllLFNBQVN2QyxrQkFDVCxDQUFDQSxnQkFBZ0JxQyxRQUFRLENBQUNOLEtBQUtOLE9BQU8sSUFDdENwQixxQkFDQUEsbUJBQW1CZ0MsUUFBUSxDQUFDTixLQUFLTixPQUFPLElBQ3hDO1lBRUosSUFBSSxDQUFDYyxVQUFVdEMsZ0JBQWdCLE9BQU8rQixVQUFVLFVBQVU7Z0JBQ3hETyxTQUFTLENBQUN0QyxhQUFhOEIsTUFBTUMsT0FBT0M7WUFDdEM7WUFFQSxJQUFJTSxVQUFVTixVQUFVLE9BQU9ELFVBQVUsVUFBVTtnQkFDakQsSUFBSXRCLG9CQUFvQnFCLEtBQUs3QixRQUFRLEVBQUU7b0JBQ3JDK0IsT0FBTy9CLFFBQVEsQ0FBQ2dDLE1BQU0sQ0FBQ0YsT0FBTyxNQUFNRCxLQUFLN0IsUUFBUTtnQkFDbkQsT0FBTztvQkFDTCtCLE9BQU8vQixRQUFRLENBQUNnQyxNQUFNLENBQUNGLE9BQU87Z0JBQ2hDO2dCQUVBLE9BQU9BO1lBQ1Q7UUFDRjtJQUNGO0FBQ0Y7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNNLFNBQVNwQixvQkFBb0JJLEtBQUs7SUFDdkMsV0FBVztJQUNYLDhHQUE4RztJQUM5RyxpQ0FBaUM7SUFDakMsTUFBTXdCLFFBQVF4QixNQUFNeUIsT0FBTyxDQUFDO0lBQzVCLE1BQU1DLGVBQWUxQixNQUFNeUIsT0FBTyxDQUFDO0lBQ25DLE1BQU1FLGFBQWEzQixNQUFNeUIsT0FBTyxDQUFDO0lBQ2pDLE1BQU1HLFFBQVE1QixNQUFNeUIsT0FBTyxDQUFDO0lBRTVCLElBQ0UsMENBQTBDO0lBQzFDRCxRQUFRLEtBQ1IsdUVBQXVFO0lBQ3RFSSxRQUFRLENBQUMsS0FBS0osUUFBUUksU0FDdEJGLGVBQWUsQ0FBQyxLQUFLRixRQUFRRSxnQkFDN0JDLGFBQWEsQ0FBQyxLQUFLSCxRQUFRRyxjQUM1QiwwQ0FBMEM7SUFDMUNsRCxhQUFhMkMsSUFBSSxDQUFDcEIsTUFBTTZCLEtBQUssQ0FBQyxHQUFHTCxTQUNqQztRQUNBLE9BQU94QjtJQUNUO0lBRUEsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtbWFya2Rvd24vbGliL2luZGV4LmpzPzAwZTgiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVnaXN0ZXIgYFJhd2AgaW4gdHJlZTpcbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibWRhc3QtdXRpbC10by1oYXN0XCIgLz5cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnRDb250ZW50fSBFbGVtZW50Q29udGVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290fSBSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0LXV0aWwtdG8tanN4LXJ1bnRpbWUnKS5Db21wb25lbnRzfSBKc3hSdW50aW1lQ29tcG9uZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgncmVtYXJrLXJlaHlwZScpLk9wdGlvbnN9IFJlbWFya1JlaHlwZU9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0LXV0aWwtdmlzaXQnKS5CdWlsZFZpc2l0b3I8Um9vdD59IFZpc2l0b3JcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaWZpZWQnKS5QbHVnZ2FibGVMaXN0fSBQbHVnZ2FibGVMaXN0XG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgQWxsb3dFbGVtZW50XG4gKiAgIEZpbHRlciBlbGVtZW50cy5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8RWxlbWVudD59IGVsZW1lbnRcbiAqICAgRWxlbWVudCB0byBjaGVjay5cbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogICBJbmRleCBvZiBgZWxlbWVudGAgaW4gYHBhcmVudGAuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PFBhcmVudHM+IHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBlbGVtZW50YC5cbiAqIEByZXR1cm5zIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAqICAgV2hldGhlciB0byBhbGxvdyBgZWxlbWVudGAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqIEB0eXBlZGVmIHtQYXJ0aWFsPEpzeFJ1bnRpbWVDb21wb25lbnRzPn0gQ29tcG9uZW50c1xuICogICBNYXAgdGFnIG5hbWVzIHRvIGNvbXBvbmVudHMuXG4gKlxuICogQHR5cGVkZWYgRGVwcmVjYXRpb25cbiAqICAgRGVwcmVjYXRpb24uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZnJvbVxuICogICBPbGQgZmllbGQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaWRcbiAqICAgSUQgaW4gcmVhZG1lLlxuICogQHByb3BlcnR5IHtrZXlvZiBPcHRpb25zfSBbdG9dXG4gKiAgIE5ldyBmaWVsZC5cbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge0FsbG93RWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0VsZW1lbnRdXG4gKiAgIEZpbHRlciBlbGVtZW50cyAob3B0aW9uYWwpO1xuICogICBgYWxsb3dlZEVsZW1lbnRzYCAvIGBkaXNhbGxvd2VkRWxlbWVudHNgIGlzIHVzZWQgZmlyc3QuXG4gKiBAcHJvcGVydHkge1JlYWRvbmx5QXJyYXk8c3RyaW5nPiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd2VkRWxlbWVudHNdXG4gKiAgIFRhZyBuYW1lcyB0byBhbGxvdyAoZGVmYXVsdDogYWxsIHRhZyBuYW1lcyk7XG4gKiAgIGNhbm5vdCBjb21iaW5lIHcvIGBkaXNhbGxvd2VkRWxlbWVudHNgLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2hpbGRyZW5dXG4gKiAgIE1hcmtkb3duLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2xhc3NOYW1lXVxuICogICBXcmFwIGluIGEgYGRpdmAgd2l0aCB0aGlzIGNsYXNzIG5hbWUuXG4gKiBAcHJvcGVydHkge0NvbXBvbmVudHMgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29tcG9uZW50c11cbiAqICAgTWFwIHRhZyBuYW1lcyB0byBjb21wb25lbnRzLlxuICogQHByb3BlcnR5IHtSZWFkb25seUFycmF5PHN0cmluZz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbZGlzYWxsb3dlZEVsZW1lbnRzXVxuICogICBUYWcgbmFtZXMgdG8gZGlzYWxsb3cgKGRlZmF1bHQ6IGBbXWApO1xuICogICBjYW5ub3QgY29tYmluZSB3LyBgYWxsb3dlZEVsZW1lbnRzYC5cbiAqIEBwcm9wZXJ0eSB7UGx1Z2dhYmxlTGlzdCB8IG51bGwgfCB1bmRlZmluZWR9IFtyZWh5cGVQbHVnaW5zXVxuICogICBMaXN0IG9mIHJlaHlwZSBwbHVnaW5zIHRvIHVzZS5cbiAqIEBwcm9wZXJ0eSB7UGx1Z2dhYmxlTGlzdCB8IG51bGwgfCB1bmRlZmluZWR9IFtyZW1hcmtQbHVnaW5zXVxuICogICBMaXN0IG9mIHJlbWFyayBwbHVnaW5zIHRvIHVzZS5cbiAqIEBwcm9wZXJ0eSB7UmVhZG9ubHk8UmVtYXJrUmVoeXBlT3B0aW9ucz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmVtYXJrUmVoeXBlT3B0aW9uc11cbiAqICAgT3B0aW9ucyB0byBwYXNzIHRocm91Z2ggdG8gYHJlbWFyay1yZWh5cGVgLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NraXBIdG1sPWZhbHNlXVxuICogICBJZ25vcmUgSFRNTCBpbiBtYXJrZG93biBjb21wbGV0ZWx5IChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt1bndyYXBEaXNhbGxvd2VkPWZhbHNlXVxuICogICBFeHRyYWN0ICh1bndyYXApIHdoYXTigJlzIGluIGRpc2FsbG93ZWQgZWxlbWVudHMgKGRlZmF1bHQ6IGBmYWxzZWApO1xuICogICBub3JtYWxseSB3aGVuIHNheSBgc3Ryb25nYCBpcyBub3QgYWxsb3dlZCwgaXQgYW5kIGl04oCZcyBjaGlsZHJlbiBhcmUgZHJvcHBlZCxcbiAqICAgd2l0aCBgdW53cmFwRGlzYWxsb3dlZGAgdGhlIGVsZW1lbnQgaXRzZWxmIGlzIHJlcGxhY2VkIGJ5IGl0cyBjaGlsZHJlbi5cbiAqIEBwcm9wZXJ0eSB7VXJsVHJhbnNmb3JtIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3VybFRyYW5zZm9ybV1cbiAqICAgQ2hhbmdlIFVSTHMgKGRlZmF1bHQ6IGBkZWZhdWx0VXJsVHJhbnNmb3JtYClcbiAqXG4gKiBAY2FsbGJhY2sgVXJsVHJhbnNmb3JtXG4gKiAgIFRyYW5zZm9ybSBhbGwgVVJMcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAqICAgVVJMLlxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogICBQcm9wZXJ0eSBuYW1lIChleGFtcGxlOiBgJ2hyZWYnYCkuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PEVsZW1lbnQ+fSBub2RlXG4gKiAgIE5vZGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAqICAgVHJhbnNmb3JtZWQgVVJMIChvcHRpb25hbCkuXG4gKi9cblxuaW1wb3J0IHt1bnJlYWNoYWJsZX0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHt0b0pzeFJ1bnRpbWV9IGZyb20gJ2hhc3QtdXRpbC10by1qc3gtcnVudGltZSdcbmltcG9ydCB7dXJsQXR0cmlidXRlc30gZnJvbSAnaHRtbC11cmwtYXR0cmlidXRlcydcbi8vIEB0cy1leHBlY3QtZXJyb3I6IHVudHlwZWQuXG5pbXBvcnQge0ZyYWdtZW50LCBqc3gsIGpzeHN9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJ1xuaW1wb3J0IHJlbWFya1BhcnNlIGZyb20gJ3JlbWFyay1wYXJzZSdcbmltcG9ydCByZW1hcmtSZWh5cGUgZnJvbSAncmVtYXJrLXJlaHlwZSdcbmltcG9ydCB7dW5pZmllZH0gZnJvbSAndW5pZmllZCdcbmltcG9ydCB7dmlzaXR9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQnXG5pbXBvcnQge1ZGaWxlfSBmcm9tICd2ZmlsZSdcblxuY29uc3QgY2hhbmdlbG9nID1cbiAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9yZW1hcmtqcy9yZWFjdC1tYXJrZG93bi9ibG9iL21haW4vY2hhbmdlbG9nLm1kJ1xuXG4vKiogQHR5cGUge1BsdWdnYWJsZUxpc3R9ICovXG5jb25zdCBlbXB0eVBsdWdpbnMgPSBbXVxuLyoqIEB0eXBlIHtSZWFkb25seTxSZW1hcmtSZWh5cGVPcHRpb25zPn0gKi9cbmNvbnN0IGVtcHR5UmVtYXJrUmVoeXBlT3B0aW9ucyA9IHthbGxvd0Rhbmdlcm91c0h0bWw6IHRydWV9XG5jb25zdCBzYWZlUHJvdG9jb2wgPSAvXihodHRwcz98aXJjcz98bWFpbHRvfHhtcHApJC9pXG5cbi8vIE11dGFibGUgYmVjYXVzZSB3ZSBgZGVsZXRlYCBhbnkgdGltZSBpdOKAmXMgdXNlZCBhbmQgYSBtZXNzYWdlIGlzIHNlbnQuXG4vKiogQHR5cGUge1JlYWRvbmx5QXJyYXk8UmVhZG9ubHk8RGVwcmVjYXRpb24+Pn0gKi9cbmNvbnN0IGRlcHJlY2F0aW9ucyA9IFtcbiAge2Zyb206ICdhc3RQbHVnaW5zJywgaWQ6ICdyZW1vdmUtYnVnZ3ktaHRtbC1pbi1tYXJrZG93bi1wYXJzZXInfSxcbiAge2Zyb206ICdhbGxvd0Rhbmdlcm91c0h0bWwnLCBpZDogJ3JlbW92ZS1idWdneS1odG1sLWluLW1hcmtkb3duLXBhcnNlcid9LFxuICB7XG4gICAgZnJvbTogJ2FsbG93Tm9kZScsXG4gICAgaWQ6ICdyZXBsYWNlLWFsbG93bm9kZS1hbGxvd2VkdHlwZXMtYW5kLWRpc2FsbG93ZWR0eXBlcycsXG4gICAgdG86ICdhbGxvd0VsZW1lbnQnXG4gIH0sXG4gIHtcbiAgICBmcm9tOiAnYWxsb3dlZFR5cGVzJyxcbiAgICBpZDogJ3JlcGxhY2UtYWxsb3dub2RlLWFsbG93ZWR0eXBlcy1hbmQtZGlzYWxsb3dlZHR5cGVzJyxcbiAgICB0bzogJ2FsbG93ZWRFbGVtZW50cydcbiAgfSxcbiAge1xuICAgIGZyb206ICdkaXNhbGxvd2VkVHlwZXMnLFxuICAgIGlkOiAncmVwbGFjZS1hbGxvd25vZGUtYWxsb3dlZHR5cGVzLWFuZC1kaXNhbGxvd2VkdHlwZXMnLFxuICAgIHRvOiAnZGlzYWxsb3dlZEVsZW1lbnRzJ1xuICB9LFxuICB7ZnJvbTogJ2VzY2FwZUh0bWwnLCBpZDogJ3JlbW92ZS1idWdneS1odG1sLWluLW1hcmtkb3duLXBhcnNlcid9LFxuICB7ZnJvbTogJ2luY2x1ZGVFbGVtZW50SW5kZXgnLCBpZDogJyNyZW1vdmUtaW5jbHVkZWVsZW1lbnRpbmRleCd9LFxuICB7XG4gICAgZnJvbTogJ2luY2x1ZGVOb2RlSW5kZXgnLFxuICAgIGlkOiAnY2hhbmdlLWluY2x1ZGVub2RlaW5kZXgtdG8taW5jbHVkZWVsZW1lbnRpbmRleCdcbiAgfSxcbiAge2Zyb206ICdsaW5rVGFyZ2V0JywgaWQ6ICdyZW1vdmUtbGlua3RhcmdldCd9LFxuICB7ZnJvbTogJ3BsdWdpbnMnLCBpZDogJ2NoYW5nZS1wbHVnaW5zLXRvLXJlbWFya3BsdWdpbnMnLCB0bzogJ3JlbWFya1BsdWdpbnMnfSxcbiAge2Zyb206ICdyYXdTb3VyY2VQb3MnLCBpZDogJyNyZW1vdmUtcmF3c291cmNlcG9zJ30sXG4gIHtmcm9tOiAncmVuZGVyZXJzJywgaWQ6ICdjaGFuZ2UtcmVuZGVyZXJzLXRvLWNvbXBvbmVudHMnLCB0bzogJ2NvbXBvbmVudHMnfSxcbiAge2Zyb206ICdzb3VyY2UnLCBpZDogJ2NoYW5nZS1zb3VyY2UtdG8tY2hpbGRyZW4nLCB0bzogJ2NoaWxkcmVuJ30sXG4gIHtmcm9tOiAnc291cmNlUG9zJywgaWQ6ICcjcmVtb3ZlLXNvdXJjZXBvcyd9LFxuICB7ZnJvbTogJ3RyYW5zZm9ybUltYWdlVXJpJywgaWQ6ICcjYWRkLXVybHRyYW5zZm9ybScsIHRvOiAndXJsVHJhbnNmb3JtJ30sXG4gIHtmcm9tOiAndHJhbnNmb3JtTGlua1VyaScsIGlkOiAnI2FkZC11cmx0cmFuc2Zvcm0nLCB0bzogJ3VybFRyYW5zZm9ybSd9XG5dXG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHJlbmRlciBtYXJrZG93bi5cbiAqXG4gKiBAcGFyYW0ge1JlYWRvbmx5PE9wdGlvbnM+fSBvcHRpb25zXG4gKiAgIFByb3BzLlxuICogQHJldHVybnMge0pTWC5FbGVtZW50fVxuICogICBSZWFjdCBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gTWFya2Rvd24ob3B0aW9ucykge1xuICBjb25zdCBhbGxvd2VkRWxlbWVudHMgPSBvcHRpb25zLmFsbG93ZWRFbGVtZW50c1xuICBjb25zdCBhbGxvd0VsZW1lbnQgPSBvcHRpb25zLmFsbG93RWxlbWVudFxuICBjb25zdCBjaGlsZHJlbiA9IG9wdGlvbnMuY2hpbGRyZW4gfHwgJydcbiAgY29uc3QgY2xhc3NOYW1lID0gb3B0aW9ucy5jbGFzc05hbWVcbiAgY29uc3QgY29tcG9uZW50cyA9IG9wdGlvbnMuY29tcG9uZW50c1xuICBjb25zdCBkaXNhbGxvd2VkRWxlbWVudHMgPSBvcHRpb25zLmRpc2FsbG93ZWRFbGVtZW50c1xuICBjb25zdCByZWh5cGVQbHVnaW5zID0gb3B0aW9ucy5yZWh5cGVQbHVnaW5zIHx8IGVtcHR5UGx1Z2luc1xuICBjb25zdCByZW1hcmtQbHVnaW5zID0gb3B0aW9ucy5yZW1hcmtQbHVnaW5zIHx8IGVtcHR5UGx1Z2luc1xuICBjb25zdCByZW1hcmtSZWh5cGVPcHRpb25zID0gb3B0aW9ucy5yZW1hcmtSZWh5cGVPcHRpb25zXG4gICAgPyB7Li4ub3B0aW9ucy5yZW1hcmtSZWh5cGVPcHRpb25zLCAuLi5lbXB0eVJlbWFya1JlaHlwZU9wdGlvbnN9XG4gICAgOiBlbXB0eVJlbWFya1JlaHlwZU9wdGlvbnNcbiAgY29uc3Qgc2tpcEh0bWwgPSBvcHRpb25zLnNraXBIdG1sXG4gIGNvbnN0IHVud3JhcERpc2FsbG93ZWQgPSBvcHRpb25zLnVud3JhcERpc2FsbG93ZWRcbiAgY29uc3QgdXJsVHJhbnNmb3JtID0gb3B0aW9ucy51cmxUcmFuc2Zvcm0gfHwgZGVmYXVsdFVybFRyYW5zZm9ybVxuXG4gIGNvbnN0IHByb2Nlc3NvciA9IHVuaWZpZWQoKVxuICAgIC51c2UocmVtYXJrUGFyc2UpXG4gICAgLnVzZShyZW1hcmtQbHVnaW5zKVxuICAgIC51c2UocmVtYXJrUmVoeXBlLCByZW1hcmtSZWh5cGVPcHRpb25zKVxuICAgIC51c2UocmVoeXBlUGx1Z2lucylcblxuICBjb25zdCBmaWxlID0gbmV3IFZGaWxlKClcblxuICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJykge1xuICAgIGZpbGUudmFsdWUgPSBjaGlsZHJlblxuICB9IGVsc2Uge1xuICAgIHVucmVhY2hhYmxlKFxuICAgICAgJ1VuZXhwZWN0ZWQgdmFsdWUgYCcgK1xuICAgICAgICBjaGlsZHJlbiArXG4gICAgICAgICdgIGZvciBgY2hpbGRyZW5gIHByb3AsIGV4cGVjdGVkIGBzdHJpbmdgJ1xuICAgIClcbiAgfVxuXG4gIGlmIChhbGxvd2VkRWxlbWVudHMgJiYgZGlzYWxsb3dlZEVsZW1lbnRzKSB7XG4gICAgdW5yZWFjaGFibGUoXG4gICAgICAnVW5leHBlY3RlZCBjb21iaW5lZCBgYWxsb3dlZEVsZW1lbnRzYCBhbmQgYGRpc2FsbG93ZWRFbGVtZW50c2AsIGV4cGVjdGVkIG9uZSBvciB0aGUgb3RoZXInXG4gICAgKVxuICB9XG5cbiAgZm9yIChjb25zdCBkZXByZWNhdGlvbiBvZiBkZXByZWNhdGlvbnMpIHtcbiAgICBpZiAoT2JqZWN0Lmhhc093bihvcHRpb25zLCBkZXByZWNhdGlvbi5mcm9tKSkge1xuICAgICAgdW5yZWFjaGFibGUoXG4gICAgICAgICdVbmV4cGVjdGVkIGAnICtcbiAgICAgICAgICBkZXByZWNhdGlvbi5mcm9tICtcbiAgICAgICAgICAnYCBwcm9wLCAnICtcbiAgICAgICAgICAoZGVwcmVjYXRpb24udG9cbiAgICAgICAgICAgID8gJ3VzZSBgJyArIGRlcHJlY2F0aW9uLnRvICsgJ2AgaW5zdGVhZCdcbiAgICAgICAgICAgIDogJ3JlbW92ZSBpdCcpICtcbiAgICAgICAgICAnIChzZWUgPCcgK1xuICAgICAgICAgIGNoYW5nZWxvZyArXG4gICAgICAgICAgJyMnICtcbiAgICAgICAgICBkZXByZWNhdGlvbi5pZCArXG4gICAgICAgICAgJz4gZm9yIG1vcmUgaW5mbyknXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgY29uc3QgbWRhc3RUcmVlID0gcHJvY2Vzc29yLnBhcnNlKGZpbGUpXG4gIC8qKiBAdHlwZSB7Tm9kZXN9ICovXG4gIGxldCBoYXN0VHJlZSA9IHByb2Nlc3Nvci5ydW5TeW5jKG1kYXN0VHJlZSwgZmlsZSlcblxuICAvLyBXcmFwIGluIGBkaXZgIGlmIHRoZXJl4oCZcyBhIGNsYXNzIG5hbWUuXG4gIGlmIChjbGFzc05hbWUpIHtcbiAgICBoYXN0VHJlZSA9IHtcbiAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgIHRhZ05hbWU6ICdkaXYnLFxuICAgICAgcHJvcGVydGllczoge2NsYXNzTmFtZX0sXG4gICAgICAvLyBBc3N1bWUgbm8gZG9jdHlwZXMuXG4gICAgICBjaGlsZHJlbjogLyoqIEB0eXBlIHtBcnJheTxFbGVtZW50Q29udGVudD59ICovIChcbiAgICAgICAgaGFzdFRyZWUudHlwZSA9PT0gJ3Jvb3QnID8gaGFzdFRyZWUuY2hpbGRyZW4gOiBbaGFzdFRyZWVdXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgdmlzaXQoaGFzdFRyZWUsIHRyYW5zZm9ybSlcblxuICByZXR1cm4gdG9Kc3hSdW50aW1lKGhhc3RUcmVlLCB7XG4gICAgRnJhZ21lbnQsXG4gICAgY29tcG9uZW50cyxcbiAgICBpZ25vcmVJbnZhbGlkU3R5bGU6IHRydWUsXG4gICAganN4LFxuICAgIGpzeHMsXG4gICAgcGFzc0tleXM6IHRydWUsXG4gICAgcGFzc05vZGU6IHRydWVcbiAgfSlcblxuICAvKiogQHR5cGUge1Zpc2l0b3J9ICovXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybShub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ3JhdycgJiYgcGFyZW50ICYmIHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmIChza2lwSHRtbCkge1xuICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAxKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50LmNoaWxkcmVuW2luZGV4XSA9IHt0eXBlOiAndGV4dCcsIHZhbHVlOiBub2RlLnZhbHVlfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5kZXhcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnZWxlbWVudCcpIHtcbiAgICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgICAgbGV0IGtleVxuXG4gICAgICBmb3IgKGtleSBpbiB1cmxBdHRyaWJ1dGVzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3QuaGFzT3duKHVybEF0dHJpYnV0ZXMsIGtleSkgJiZcbiAgICAgICAgICBPYmplY3QuaGFzT3duKG5vZGUucHJvcGVydGllcywga2V5KVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IG5vZGUucHJvcGVydGllc1trZXldXG4gICAgICAgICAgY29uc3QgdGVzdCA9IHVybEF0dHJpYnV0ZXNba2V5XVxuICAgICAgICAgIGlmICh0ZXN0ID09PSBudWxsIHx8IHRlc3QuaW5jbHVkZXMobm9kZS50YWdOYW1lKSkge1xuICAgICAgICAgICAgbm9kZS5wcm9wZXJ0aWVzW2tleV0gPSB1cmxUcmFuc2Zvcm0oU3RyaW5nKHZhbHVlIHx8ICcnKSwga2V5LCBub2RlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdlbGVtZW50Jykge1xuICAgICAgbGV0IHJlbW92ZSA9IGFsbG93ZWRFbGVtZW50c1xuICAgICAgICA/ICFhbGxvd2VkRWxlbWVudHMuaW5jbHVkZXMobm9kZS50YWdOYW1lKVxuICAgICAgICA6IGRpc2FsbG93ZWRFbGVtZW50c1xuICAgICAgICA/IGRpc2FsbG93ZWRFbGVtZW50cy5pbmNsdWRlcyhub2RlLnRhZ05hbWUpXG4gICAgICAgIDogZmFsc2VcblxuICAgICAgaWYgKCFyZW1vdmUgJiYgYWxsb3dFbGVtZW50ICYmIHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmVtb3ZlID0gIWFsbG93RWxlbWVudChub2RlLCBpbmRleCwgcGFyZW50KVxuICAgICAgfVxuXG4gICAgICBpZiAocmVtb3ZlICYmIHBhcmVudCAmJiB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmICh1bndyYXBEaXNhbGxvd2VkICYmIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAxLCAuLi5ub2RlLmNoaWxkcmVuKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcmVudC5jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDEpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5kZXhcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBNYWtlIGEgVVJMIHNhZmUuXG4gKlxuICogQHNhdGlzZmllcyB7VXJsVHJhbnNmb3JtfVxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFVSTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNhZmUgVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFVybFRyYW5zZm9ybSh2YWx1ZSkge1xuICAvLyBTYW1lIGFzOlxuICAvLyA8aHR0cHM6Ly9naXRodWIuY29tL21pY3JvbWFyay9taWNyb21hcmsvYmxvYi85MjkyNzVlL3BhY2thZ2VzL21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaS9kZXYvaW5kZXguanMjTDM0PlxuICAvLyBCdXQgd2l0aG91dCB0aGUgYGVuY29kZWAgcGFydC5cbiAgY29uc3QgY29sb24gPSB2YWx1ZS5pbmRleE9mKCc6JylcbiAgY29uc3QgcXVlc3Rpb25NYXJrID0gdmFsdWUuaW5kZXhPZignPycpXG4gIGNvbnN0IG51bWJlclNpZ24gPSB2YWx1ZS5pbmRleE9mKCcjJylcbiAgY29uc3Qgc2xhc2ggPSB2YWx1ZS5pbmRleE9mKCcvJylcblxuICBpZiAoXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gcHJvdG9jb2wsIGl04oCZcyByZWxhdGl2ZS5cbiAgICBjb2xvbiA8IDAgfHxcbiAgICAvLyBJZiB0aGUgZmlyc3QgY29sb24gaXMgYWZ0ZXIgYSBgP2AsIGAjYCwgb3IgYC9gLCBpdOKAmXMgbm90IGEgcHJvdG9jb2wuXG4gICAgKHNsYXNoID4gLTEgJiYgY29sb24gPiBzbGFzaCkgfHxcbiAgICAocXVlc3Rpb25NYXJrID4gLTEgJiYgY29sb24gPiBxdWVzdGlvbk1hcmspIHx8XG4gICAgKG51bWJlclNpZ24gPiAtMSAmJiBjb2xvbiA+IG51bWJlclNpZ24pIHx8XG4gICAgLy8gSXQgaXMgYSBwcm90b2NvbCwgaXQgc2hvdWxkIGJlIGFsbG93ZWQuXG4gICAgc2FmZVByb3RvY29sLnRlc3QodmFsdWUuc2xpY2UoMCwgY29sb24pKVxuICApIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIHJldHVybiAnJ1xufVxuIl0sIm5hbWVzIjpbInVucmVhY2hhYmxlIiwidG9Kc3hSdW50aW1lIiwidXJsQXR0cmlidXRlcyIsIkZyYWdtZW50IiwianN4IiwianN4cyIsInJlbWFya1BhcnNlIiwicmVtYXJrUmVoeXBlIiwidW5pZmllZCIsInZpc2l0IiwiVkZpbGUiLCJjaGFuZ2Vsb2ciLCJlbXB0eVBsdWdpbnMiLCJlbXB0eVJlbWFya1JlaHlwZU9wdGlvbnMiLCJhbGxvd0Rhbmdlcm91c0h0bWwiLCJzYWZlUHJvdG9jb2wiLCJkZXByZWNhdGlvbnMiLCJmcm9tIiwiaWQiLCJ0byIsIk1hcmtkb3duIiwib3B0aW9ucyIsImFsbG93ZWRFbGVtZW50cyIsImFsbG93RWxlbWVudCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiY29tcG9uZW50cyIsImRpc2FsbG93ZWRFbGVtZW50cyIsInJlaHlwZVBsdWdpbnMiLCJyZW1hcmtQbHVnaW5zIiwicmVtYXJrUmVoeXBlT3B0aW9ucyIsInNraXBIdG1sIiwidW53cmFwRGlzYWxsb3dlZCIsInVybFRyYW5zZm9ybSIsImRlZmF1bHRVcmxUcmFuc2Zvcm0iLCJwcm9jZXNzb3IiLCJ1c2UiLCJmaWxlIiwidmFsdWUiLCJkZXByZWNhdGlvbiIsIk9iamVjdCIsImhhc093biIsIm1kYXN0VHJlZSIsInBhcnNlIiwiaGFzdFRyZWUiLCJydW5TeW5jIiwidHlwZSIsInRhZ05hbWUiLCJwcm9wZXJ0aWVzIiwidHJhbnNmb3JtIiwiaWdub3JlSW52YWxpZFN0eWxlIiwicGFzc0tleXMiLCJwYXNzTm9kZSIsIm5vZGUiLCJpbmRleCIsInBhcmVudCIsInNwbGljZSIsImtleSIsInRlc3QiLCJpbmNsdWRlcyIsIlN0cmluZyIsInJlbW92ZSIsImNvbG9uIiwiaW5kZXhPZiIsInF1ZXN0aW9uTWFyayIsIm51bWJlclNpZ24iLCJzbGFzaCIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/react-markdown/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/remark-gfm/lib/index.js":
-/*!**************************************************!*\
- !*** ../../node_modules/remark-gfm/lib/index.js ***!
- \**************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ remarkGfm)\n/* harmony export */ });\n/* harmony import */ var mdast_util_gfm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-gfm */ \"(ssr)/../../node_modules/mdast-util-gfm/lib/index.js\");\n/* harmony import */ var micromark_extension_gfm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-extension-gfm */ \"(ssr)/../../node_modules/micromark-extension-gfm/index.js\");\n/// <reference types=\"remark-parse\" />\n/// <reference types=\"remark-stringify\" />\n/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-gfm').Options} MdastOptions\n * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions\n * @typedef {import('unified').Processor<Root>} Processor\n */ /**\n * @typedef {MicromarkOptions & MdastOptions} Options\n * Configuration.\n */ \n\n/** @type {Options} */ const emptyOptions = {};\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */ function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ this;\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push((0,micromark_extension_gfm__WEBPACK_IMPORTED_MODULE_0__.gfm)(settings));\n fromMarkdownExtensions.push((0,mdast_util_gfm__WEBPACK_IMPORTED_MODULE_1__.gfmFromMarkdown)());\n toMarkdownExtensions.push((0,mdast_util_gfm__WEBPACK_IMPORTED_MODULE_1__.gfmToMarkdown)(settings));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1nZm0vbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHNDQUFzQztBQUN0QywwQ0FBMEM7QUFFMUM7Ozs7O0NBS0MsR0FFRDs7O0NBR0MsR0FFNEQ7QUFDbEI7QUFFM0Msb0JBQW9CLEdBQ3BCLE1BQU1HLGVBQWUsQ0FBQztBQUV0Qjs7Ozs7Ozs7Q0FRQyxHQUNjLFNBQVNDLFVBQVVDLE9BQU87SUFDdkMsOENBQThDO0lBQzlDLHNEQUFzRDtJQUN0RCxNQUFNQyxPQUFPLHNCQUFzQixHQUFJLElBQUk7SUFDM0MsTUFBTUMsV0FBV0YsV0FBV0Y7SUFDNUIsTUFBTUssT0FBT0YsS0FBS0UsSUFBSTtJQUV0QixNQUFNQyxzQkFDSkQsS0FBS0MsbUJBQW1CLElBQUtELENBQUFBLEtBQUtDLG1CQUFtQixHQUFHLEVBQUU7SUFDNUQsTUFBTUMseUJBQ0pGLEtBQUtFLHNCQUFzQixJQUFLRixDQUFBQSxLQUFLRSxzQkFBc0IsR0FBRyxFQUFFO0lBQ2xFLE1BQU1DLHVCQUNKSCxLQUFLRyxvQkFBb0IsSUFBS0gsQ0FBQUEsS0FBS0csb0JBQW9CLEdBQUcsRUFBRTtJQUU5REYsb0JBQW9CRyxJQUFJLENBQUNWLDREQUFHQSxDQUFDSztJQUM3QkcsdUJBQXVCRSxJQUFJLENBQUNaLCtEQUFlQTtJQUMzQ1cscUJBQXFCQyxJQUFJLENBQUNYLDZEQUFhQSxDQUFDTTtBQUMxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1nZm0vbGliL2luZGV4LmpzPzliMTciXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJyZW1hcmstcGFyc2VcIiAvPlxuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJyZW1hcmstc3RyaW5naWZ5XCIgLz5cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZ2ZtJykuT3B0aW9uc30gTWRhc3RPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstZXh0ZW5zaW9uLWdmbScpLk9wdGlvbnN9IE1pY3JvbWFya09wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaWZpZWQnKS5Qcm9jZXNzb3I8Um9vdD59IFByb2Nlc3NvclxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge01pY3JvbWFya09wdGlvbnMgJiBNZGFzdE9wdGlvbnN9IE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqL1xuXG5pbXBvcnQge2dmbUZyb21NYXJrZG93biwgZ2ZtVG9NYXJrZG93bn0gZnJvbSAnbWRhc3QtdXRpbC1nZm0nXG5pbXBvcnQge2dmbX0gZnJvbSAnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0nXG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKlxuICogQWRkIHN1cHBvcnQgR0ZNIChhdXRvbGluayBsaXRlcmFscywgZm9vdG5vdGVzLCBzdHJpa2V0aHJvdWdoLCB0YWJsZXMsXG4gKiB0YXNrbGlzdHMpLlxuICpcbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1hcmtHZm0ob3B0aW9ucykge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUUyBpcyB3cm9uZyBhYm91dCBgdGhpc2AuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLXRoaXMtYXNzaWdubWVudFxuICBjb25zdCBzZWxmID0gLyoqIEB0eXBlIHtQcm9jZXNzb3J9ICovICh0aGlzKVxuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIGNvbnN0IGRhdGEgPSBzZWxmLmRhdGEoKVxuXG4gIGNvbnN0IG1pY3JvbWFya0V4dGVuc2lvbnMgPVxuICAgIGRhdGEubWljcm9tYXJrRXh0ZW5zaW9ucyB8fCAoZGF0YS5taWNyb21hcmtFeHRlbnNpb25zID0gW10pXG4gIGNvbnN0IGZyb21NYXJrZG93bkV4dGVuc2lvbnMgPVxuICAgIGRhdGEuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyB8fCAoZGF0YS5mcm9tTWFya2Rvd25FeHRlbnNpb25zID0gW10pXG4gIGNvbnN0IHRvTWFya2Rvd25FeHRlbnNpb25zID1cbiAgICBkYXRhLnRvTWFya2Rvd25FeHRlbnNpb25zIHx8IChkYXRhLnRvTWFya2Rvd25FeHRlbnNpb25zID0gW10pXG5cbiAgbWljcm9tYXJrRXh0ZW5zaW9ucy5wdXNoKGdmbShzZXR0aW5ncykpXG4gIGZyb21NYXJrZG93bkV4dGVuc2lvbnMucHVzaChnZm1Gcm9tTWFya2Rvd24oKSlcbiAgdG9NYXJrZG93bkV4dGVuc2lvbnMucHVzaChnZm1Ub01hcmtkb3duKHNldHRpbmdzKSlcbn1cbiJdLCJuYW1lcyI6WyJnZm1Gcm9tTWFya2Rvd24iLCJnZm1Ub01hcmtkb3duIiwiZ2ZtIiwiZW1wdHlPcHRpb25zIiwicmVtYXJrR2ZtIiwib3B0aW9ucyIsInNlbGYiLCJzZXR0aW5ncyIsImRhdGEiLCJtaWNyb21hcmtFeHRlbnNpb25zIiwiZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyIsInRvTWFya2Rvd25FeHRlbnNpb25zIiwicHVzaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/remark-gfm/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/remark-parse/lib/index.js":
-/*!****************************************************!*\
- !*** ../../node_modules/remark-parse/lib/index.js ***!
- \****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ remarkParse)\n/* harmony export */ });\n/* harmony import */ var mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-from-markdown */ \"(ssr)/../../node_modules/mdast-util-from-markdown/dev/lib/index.js\");\n/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */ /**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */ \n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */ function remarkParse(options) {\n /** @type {Processor} */ // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this;\n self.parser = parser;\n /**\n * @type {Parser}\n */ function parser(doc) {\n return (0,mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_0__.fromMarkdown)(doc, {\n ...self.data(\"settings\"),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data(\"micromarkExtensions\") || [],\n mdastExtensions: self.data(\"fromMarkdownExtensions\") || []\n });\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUVEOztDQUVDLEdBRW9EO0FBRXJEOzs7Ozs7O0NBT0MsR0FDYyxTQUFTQyxZQUFZQyxPQUFPO0lBQ3pDLHNCQUFzQixHQUN0QixvRkFBb0Y7SUFDcEYsTUFBTUMsT0FBTyxJQUFJO0lBRWpCQSxLQUFLQyxNQUFNLEdBQUdBO0lBRWQ7O0dBRUMsR0FDRCxTQUFTQSxPQUFPQyxHQUFHO1FBQ2pCLE9BQU9MLHNFQUFZQSxDQUFDSyxLQUFLO1lBQ3ZCLEdBQUdGLEtBQUtHLElBQUksQ0FBQyxXQUFXO1lBQ3hCLEdBQUdKLE9BQU87WUFDViw2Q0FBNkM7WUFDN0MsdUVBQXVFO1lBQ3ZFLG1CQUFtQjtZQUNuQkssWUFBWUosS0FBS0csSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ2xERSxpQkFBaUJMLEtBQUtHLElBQUksQ0FBQyw2QkFBNkIsRUFBRTtRQUM1RDtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL2luZGV4LmpzPzVlMzciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLk9wdGlvbnN9IEZyb21NYXJrZG93bk9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaWZpZWQnKS5QYXJzZXI8Um9vdD59IFBhcnNlclxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pZmllZCcpLlByb2Nlc3NvcjxSb290Pn0gUHJvY2Vzc29yXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T21pdDxGcm9tTWFya2Rvd25PcHRpb25zLCAnZXh0ZW5zaW9ucycgfCAnbWRhc3RFeHRlbnNpb25zJz59IE9wdGlvbnNcbiAqL1xuXG5pbXBvcnQge2Zyb21NYXJrZG93bn0gZnJvbSAnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJ1xuXG4vKipcbiAqIEFhZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBmcm9tIG1hcmtkb3duLlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHk8T3B0aW9ucz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVtYXJrUGFyc2Uob3B0aW9ucykge1xuICAvKiogQHR5cGUge1Byb2Nlc3Nvcn0gKi9cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgaW4gSlNEb2MgZ2VuZXJhdGVzIHdyb25nIHR5cGVzIGlmIGB0aGlzYCBpcyB0eXBlZCByZWd1bGFybHkuXG4gIGNvbnN0IHNlbGYgPSB0aGlzXG5cbiAgc2VsZi5wYXJzZXIgPSBwYXJzZXJcblxuICAvKipcbiAgICogQHR5cGUge1BhcnNlcn1cbiAgICovXG4gIGZ1bmN0aW9uIHBhcnNlcihkb2MpIHtcbiAgICByZXR1cm4gZnJvbU1hcmtkb3duKGRvYywge1xuICAgICAgLi4uc2VsZi5kYXRhKCdzZXR0aW5ncycpLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC8vIE5vdGU6IHRoZXNlIG9wdGlvbnMgYXJlIG5vdCBpbiB0aGUgcmVhZG1lLlxuICAgICAgLy8gVGhlIGdvYWwgaXMgZm9yIHRoZW0gdG8gYmUgc2V0IGJ5IHBsdWdpbnMgb24gYGRhdGFgIGluc3RlYWQgb2YgYmVpbmdcbiAgICAgIC8vIHBhc3NlZCBieSB1c2Vycy5cbiAgICAgIGV4dGVuc2lvbnM6IHNlbGYuZGF0YSgnbWljcm9tYXJrRXh0ZW5zaW9ucycpIHx8IFtdLFxuICAgICAgbWRhc3RFeHRlbnNpb25zOiBzZWxmLmRhdGEoJ2Zyb21NYXJrZG93bkV4dGVuc2lvbnMnKSB8fCBbXVxuICAgIH0pXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmcm9tTWFya2Rvd24iLCJyZW1hcmtQYXJzZSIsIm9wdGlvbnMiLCJzZWxmIiwicGFyc2VyIiwiZG9jIiwiZGF0YSIsImV4dGVuc2lvbnMiLCJtZGFzdEV4dGVuc2lvbnMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/remark-parse/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/remark-rehype/lib/index.js":
-/*!*****************************************************!*\
- !*** ../../node_modules/remark-rehype/lib/index.js ***!
- \*****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ remarkRehype)\n/* harmony export */ });\n/* harmony import */ var mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-to-hast */ \"(ssr)/../../node_modules/mdast-util-to-hast/lib/index.js\");\n// Include `data` fields in mdast and `raw` nodes in hast.\n/// <reference types=\"mdast-util-to-hast\" />\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */ /**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise<undefined>}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */ \n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */ function remarkRehype(destination, options) {\n if (destination && \"run\" in destination) {\n /**\n * @type {TransformBridge}\n */ return async function(tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(tree, {\n file,\n ...options\n });\n await destination.run(hastTree, file);\n };\n }\n /**\n * @type {TransformMutate}\n */ return function(tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(tree, {\n file,\n ...options || destination\n });\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTBEO0FBQzFELDRDQUE0QztBQUU1Qzs7Ozs7O0NBTUMsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXlCQyxHQUV3QztBQUV6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQThGQyxHQUNjLFNBQVNDLGFBQWFDLFdBQVcsRUFBRUMsT0FBTztJQUN2RCxJQUFJRCxlQUFlLFNBQVNBLGFBQWE7UUFDdkM7O0tBRUMsR0FDRCxPQUFPLGVBQWdCRSxJQUFJLEVBQUVDLElBQUk7WUFDL0Isb0NBQW9DO1lBQ3BDLE1BQU1DLFdBQVcscUJBQXFCLEdBQ3BDTiwwREFBTUEsQ0FBQ0ksTUFBTTtnQkFBQ0M7Z0JBQU0sR0FBR0YsT0FBTztZQUFBO1lBRWhDLE1BQU1ELFlBQVlLLEdBQUcsQ0FBQ0QsVUFBVUQ7UUFDbEM7SUFDRjtJQUVBOztHQUVDLEdBQ0QsT0FBTyxTQUFVRCxJQUFJLEVBQUVDLElBQUk7UUFDekIsb0NBQW9DO1FBQ3BDLE9BQU8scUJBQXFCLEdBQzFCTCwwREFBTUEsQ0FBQ0ksTUFBTTtZQUFDQztZQUFNLEdBQUlGLFdBQVdELFdBQVc7UUFBQztJQUVuRDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9saWIvaW5kZXguanM/MjgxNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbmNsdWRlIGBkYXRhYCBmaWVsZHMgaW4gbWRhc3QgYW5kIGByYXdgIG5vZGVzIGluIGhhc3QuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm1kYXN0LXV0aWwtdG8taGFzdFwiIC8+XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IEhhc3RSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlJvb3R9IE1kYXN0Um9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1oYXN0JykuT3B0aW9uc30gVG9IYXN0T3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgndW5pZmllZCcpLlByb2Nlc3Nvcn0gUHJvY2Vzc29yXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZGaWxlfSBWRmlsZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09taXQ8VG9IYXN0T3B0aW9ucywgJ2ZpbGUnPn0gT3B0aW9uc1xuICpcbiAqIEBjYWxsYmFjayBUcmFuc2Zvcm1CcmlkZ2VcbiAqICAgQnJpZGdlLW1vZGUuXG4gKlxuICogICBSdW5zIHRoZSBkZXN0aW5hdGlvbiB3aXRoIHRoZSBuZXcgaGFzdCB0cmVlLlxuICogICBEaXNjYXJkcyByZXN1bHQuXG4gKiBAcGFyYW0ge01kYXN0Um9vdH0gdHJlZVxuICogICBUcmVlLlxuICogQHBhcmFtIHtWRmlsZX0gZmlsZVxuICogICBGaWxlLlxuICogQHJldHVybnMge1Byb21pc2U8dW5kZWZpbmVkPn1cbiAqICAgTm90aGluZy5cbiAqXG4gKiBAY2FsbGJhY2sgVHJhbnNmb3JtTXV0YXRlXG4gKiAgTXV0YXRlLW1vZGUuXG4gKlxuICogIEZ1cnRoZXIgdHJhbnNmb3JtZXJzIHJ1biBvbiB0aGUgaGFzdCB0cmVlLlxuICogQHBhcmFtIHtNZGFzdFJvb3R9IHRyZWVcbiAqICAgVHJlZS5cbiAqIEBwYXJhbSB7VkZpbGV9IGZpbGVcbiAqICAgRmlsZS5cbiAqIEByZXR1cm5zIHtIYXN0Um9vdH1cbiAqICAgVHJlZSAoaGFzdCkuXG4gKi9cblxuaW1wb3J0IHt0b0hhc3R9IGZyb20gJ21kYXN0LXV0aWwtdG8taGFzdCdcblxuLyoqXG4gKiBUdXJuIG1hcmtkb3duIGludG8gSFRNTC5cbiAqXG4gKiAjIyMjIyBOb3Rlc1xuICpcbiAqICMjIyMjIyBTaWduYXR1cmVcbiAqXG4gKiAqICAgaWYgYSBwcm9jZXNzb3IgaXMgZ2l2ZW4sIHJ1bnMgdGhlIChyZWh5cGUpIHBsdWdpbnMgdXNlZCBvbiBpdCB3aXRoIGFcbiAqICAgICBoYXN0IHRyZWUsIHRoZW4gZGlzY2FyZHMgdGhlIHJlc3VsdCAoKmJyaWRnZSBtb2RlKilcbiAqICogICBvdGhlcndpc2UsIHJldHVybnMgYSBoYXN0IHRyZWUsIHRoZSBwbHVnaW5zIHVzZWQgYWZ0ZXIgYHJlbWFya1JlaHlwZWBcbiAqICAgICBhcmUgcmVoeXBlIHBsdWdpbnMgKCptdXRhdGUgbW9kZSopXG4gKlxuICogPiDwn5GJICoqTm90ZSoqOiBJdOKAmXMgaGlnaGx5IHVubGlrZWx5IHRoYXQgeW91IHdhbnQgdG8gcGFzcyBhIGBwcm9jZXNzb3JgLlxuICpcbiAqICMjIyMjIyBIVE1MXG4gKlxuICogUmF3IEhUTUwgaXMgYXZhaWxhYmxlIGluIG1kYXN0IGFzIGBodG1sYCBub2RlcyBhbmQgY2FuIGJlIGVtYmVkZGVkIGluIGhhc3RcbiAqIGFzIHNlbWlzdGFuZGFyZCBgcmF3YCBub2Rlcy5cbiAqIE1vc3QgcGx1Z2lucyBpZ25vcmUgYHJhd2Agbm9kZXMgYnV0IHR3byBub3RhYmxlIG9uZXMgZG9u4oCZdDpcbiAqXG4gKiAqICAgYHJlaHlwZS1zdHJpbmdpZnlgIGFsc28gaGFzIGFuIG9wdGlvbiBgYWxsb3dEYW5nZXJvdXNIdG1sYCB3aGljaCB3aWxsXG4gKiAgICAgb3V0cHV0IHRoZSByYXcgSFRNTC5cbiAqICAgICBUaGlzIGlzIHR5cGljYWxseSBkaXNjb3VyYWdlZCBhcyBub3RlZCBieSB0aGUgb3B0aW9uIG5hbWUgYnV0IGlzIHVzZWZ1bCBpZlxuICogICAgIHlvdSBjb21wbGV0ZWx5IHRydXN0IGF1dGhvcnNcbiAqICogICBgcmVoeXBlLXJhd2AgY2FuIGhhbmRsZSB0aGUgcmF3IGVtYmVkZGVkIEhUTUwgc3RyaW5ncyBieSBwYXJzaW5nIHRoZW1cbiAqICAgICBpbnRvIHN0YW5kYXJkIGhhc3Qgbm9kZXMgKGBlbGVtZW50YCwgYHRleHRgLCBldGMpLlxuICogICAgIFRoaXMgaXMgYSBoZWF2eSB0YXNrIGFzIGl0IG5lZWRzIGEgZnVsbCBIVE1MIHBhcnNlciwgYnV0IGl0IGlzIHRoZSBvbmx5IHdheVxuICogICAgIHRvIHN1cHBvcnQgdW50cnVzdGVkIGNvbnRlbnRcbiAqXG4gKiAjIyMjIyMgRm9vdG5vdGVzXG4gKlxuICogTWFueSBvcHRpb25zIHN1cHBvcnRlZCBoZXJlIHJlbGF0ZSB0byBmb290bm90ZXMuXG4gKiBGb290bm90ZXMgYXJlIG5vdCBzcGVjaWZpZWQgYnkgQ29tbW9uTWFyaywgd2hpY2ggd2UgZm9sbG93IGJ5IGRlZmF1bHQuXG4gKiBUaGV5IGFyZSBzdXBwb3J0ZWQgYnkgR2l0SHViLCBzbyBmb290bm90ZXMgY2FuIGJlIGVuYWJsZWQgaW4gbWFya2Rvd24gd2l0aFxuICogYHJlbWFyay1nZm1gLlxuICpcbiAqIFRoZSBvcHRpb25zIGBmb290bm90ZUJhY2tMYWJlbGAgYW5kIGBmb290bm90ZUxhYmVsYCBkZWZpbmUgbmF0dXJhbCBsYW5ndWFnZVxuICogdGhhdCBleHBsYWlucyBmb290bm90ZXMsIHdoaWNoIGlzIGhpZGRlbiBmb3Igc2lnaHRlZCB1c2VycyBidXQgc2hvd24gdG9cbiAqIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LlxuICogV2hlbiB5b3VyIHBhZ2UgaXMgbm90IGluIEVuZ2xpc2gsIHlvdSBtdXN0IGRlZmluZSB0cmFuc2xhdGVkIHZhbHVlcy5cbiAqXG4gKiBCYWNrIHJlZmVyZW5jZXMgdXNlIEFSSUEgYXR0cmlidXRlcywgYnV0IHRoZSBzZWN0aW9uIGxhYmVsIGl0c2VsZiB1c2VzIGFcbiAqIGhlYWRpbmcgdGhhdCBpcyBoaWRkZW4gd2l0aCBhbiBgc3Itb25seWAgY2xhc3MuXG4gKiBUbyBzaG93IGl0IHRvIHNpZ2h0ZWQgdXNlcnMsIGRlZmluZSBkaWZmZXJlbnQgYXR0cmlidXRlcyBpblxuICogYGZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzYC5cbiAqXG4gKiAjIyMjIyMgQ2xvYmJlcmluZ1xuICpcbiAqIEZvb3Rub3RlcyBpbnRyb2R1Y2VzIGEgcHJvYmxlbSwgYXMgaXQgbGlua3MgZm9vdG5vdGUgY2FsbHMgdG8gZm9vdG5vdGVcbiAqIGRlZmluaXRpb25zIG9uIHRoZSBwYWdlIHRocm91Z2ggYGlkYCBhdHRyaWJ1dGVzIGdlbmVyYXRlZCBmcm9tIHVzZXIgY29udGVudCxcbiAqIHdoaWNoIHJlc3VsdHMgaW4gRE9NIGNsb2JiZXJpbmcuXG4gKlxuICogRE9NIGNsb2JiZXJpbmcgaXMgdGhpczpcbiAqXG4gKiBgYGBodG1sXG4gKiA8cCBpZD14PjwvcD5cbiAqIDxzY3JpcHQ+YWxlcnQoeCkgLy8gYHhgIG5vdyByZWZlcnMgdG8gdGhlIERPTSBgcCN4YCBlbGVtZW50PC9zY3JpcHQ+XG4gKiBgYGBcbiAqXG4gKiBFbGVtZW50cyBieSB0aGVpciBJRCBhcmUgbWFkZSBhdmFpbGFibGUgYnkgYnJvd3NlcnMgb24gdGhlIGB3aW5kb3dgIG9iamVjdCxcbiAqIHdoaWNoIGlzIGEgc2VjdXJpdHkgcmlzay5cbiAqIFVzaW5nIGEgcHJlZml4IHNvbHZlcyB0aGlzIHByb2JsZW0uXG4gKlxuICogTW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gaGFuZGxlIGNsb2JiZXJpbmcgYW5kIHRoZSBwcmVmaXggaXMgZXhwbGFpbmVkIGluXG4gKiAqRXhhbXBsZTogaGVhZGluZ3MgKERPTSBjbG9iYmVyaW5nKSogaW4gYHJlaHlwZS1zYW5pdGl6ZWAuXG4gKlxuICogIyMjIyMjIFVua25vd24gbm9kZXNcbiAqXG4gKiBVbmtub3duIG5vZGVzIGFyZSBub2RlcyB3aXRoIGEgdHlwZSB0aGF0IGlzbuKAmXQgaW4gYGhhbmRsZXJzYCBvciBgcGFzc1Rocm91Z2hgLlxuICogVGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIHVua25vd24gbm9kZXMgaXM6XG4gKlxuICogKiAgIHdoZW4gdGhlIG5vZGUgaGFzIGEgYHZhbHVlYCAoYW5kIGRvZXNu4oCZdCBoYXZlIGBkYXRhLmhOYW1lYCxcbiAqICAgICBgZGF0YS5oUHJvcGVydGllc2AsIG9yIGBkYXRhLmhDaGlsZHJlbmAsIHNlZSBsYXRlciksIGNyZWF0ZSBhIGhhc3QgYHRleHRgXG4gKiAgICAgbm9kZVxuICogKiAgIG90aGVyd2lzZSwgY3JlYXRlIGEgYDxkaXY+YCBlbGVtZW50ICh3aGljaCBjb3VsZCBiZSBjaGFuZ2VkIHdpdGhcbiAqICAgICBgZGF0YS5oTmFtZWApLCB3aXRoIGl0cyBjaGlsZHJlbiBtYXBwZWQgZnJvbSBtZGFzdCB0byBoYXN0IGFzIHdlbGxcbiAqXG4gKiBUaGlzIGJlaGF2aW9yIGNhbiBiZSBjaGFuZ2VkIGJ5IHBhc3NpbmcgYW4gYHVua25vd25IYW5kbGVyYC5cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7UHJvY2Vzc29yfSBwcm9jZXNzb3JcbiAqIEBwYXJhbSB7UmVhZG9ubHk8T3B0aW9ucz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqIEByZXR1cm5zIHtUcmFuc2Zvcm1CcmlkZ2V9XG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1JlYWRvbmx5PE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiBAcmV0dXJucyB7VHJhbnNmb3JtTXV0YXRlfVxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHk8T3B0aW9ucz4gfCBQcm9jZXNzb3IgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGVzdGluYXRpb25dXG4gKiAgIFByb2Nlc3NvciBvciBjb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIFdoZW4gYSBwcm9jZXNzb3Igd2FzIGdpdmVuLCBjb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7VHJhbnNmb3JtQnJpZGdlIHwgVHJhbnNmb3JtTXV0YXRlfVxuICogICBUcmFuc2Zvcm0uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbWFya1JlaHlwZShkZXN0aW5hdGlvbiwgb3B0aW9ucykge1xuICBpZiAoZGVzdGluYXRpb24gJiYgJ3J1bicgaW4gZGVzdGluYXRpb24pIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7VHJhbnNmb3JtQnJpZGdlfVxuICAgICAqL1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAodHJlZSwgZmlsZSkge1xuICAgICAgLy8gQ2FzdCBiZWNhdXNlIHJvb3QgaW4gLT4gcm9vdCBvdXQuXG4gICAgICBjb25zdCBoYXN0VHJlZSA9IC8qKiBAdHlwZSB7SGFzdFJvb3R9ICovIChcbiAgICAgICAgdG9IYXN0KHRyZWUsIHtmaWxlLCAuLi5vcHRpb25zfSlcbiAgICAgIClcbiAgICAgIGF3YWl0IGRlc3RpbmF0aW9uLnJ1bihoYXN0VHJlZSwgZmlsZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge1RyYW5zZm9ybU11dGF0ZX1cbiAgICovXG4gIHJldHVybiBmdW5jdGlvbiAodHJlZSwgZmlsZSkge1xuICAgIC8vIENhc3QgYmVjYXVzZSByb290IGluIC0+IHJvb3Qgb3V0LlxuICAgIHJldHVybiAvKiogQHR5cGUge0hhc3RSb290fSAqLyAoXG4gICAgICB0b0hhc3QodHJlZSwge2ZpbGUsIC4uLihvcHRpb25zIHx8IGRlc3RpbmF0aW9uKX0pXG4gICAgKVxuICB9XG59XG4iXSwibmFtZXMiOlsidG9IYXN0IiwicmVtYXJrUmVoeXBlIiwiZGVzdGluYXRpb24iLCJvcHRpb25zIiwidHJlZSIsImZpbGUiLCJoYXN0VHJlZSIsInJ1biJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/remark-rehype/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/space-separated-tokens/index.js":
-/*!**********************************************************!*\
- !*** ../../node_modules/space-separated-tokens/index.js ***!
- \**********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ parse: () => (/* binding */ parse),\n/* harmony export */ stringify: () => (/* binding */ stringify)\n/* harmony export */ });\n/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */ function parse(value) {\n const input = String(value || \"\").trim();\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : [];\n}\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */ function stringify(values) {\n return values.join(\" \").trim();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3NwYWNlLXNlcGFyYXRlZC10b2tlbnMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBQ00sU0FBU0EsTUFBTUMsS0FBSztJQUN6QixNQUFNQyxRQUFRQyxPQUFPRixTQUFTLElBQUlHLElBQUk7SUFDdEMsT0FBT0YsUUFBUUEsTUFBTUcsS0FBSyxDQUFDLG1CQUFtQixFQUFFO0FBQ2xEO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNNLFNBQVNDLFVBQVVDLE1BQU07SUFDOUIsT0FBT0EsT0FBT0MsSUFBSSxDQUFDLEtBQUtKLElBQUk7QUFDOUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzP2QyZWYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJzZSBzcGFjZS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFNwYWNlLXNlcGFyYXRlZCB0b2tlbnMuXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn1cbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSh2YWx1ZSkge1xuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJykudHJpbSgpXG4gIHJldHVybiBpbnB1dCA/IGlucHV0LnNwbGl0KC9bIFxcdFxcblxcclxcZl0rL2cpIDogW11cbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gYXJyYXkgb2Ygc3RyaW5ncyBhcyBzcGFjZSBzZXBhcmF0ZWQtdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNwYWNlLXNlcGFyYXRlZCB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkodmFsdWVzKSB7XG4gIHJldHVybiB2YWx1ZXMuam9pbignICcpLnRyaW0oKVxufVxuIl0sIm5hbWVzIjpbInBhcnNlIiwidmFsdWUiLCJpbnB1dCIsIlN0cmluZyIsInRyaW0iLCJzcGxpdCIsInN0cmluZ2lmeSIsInZhbHVlcyIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/space-separated-tokens/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/style-to-object/esm/index.mjs":
-/*!********************************************************!*\
- !*** ../../node_modules/style-to-object/esm/index.mjs ***!
- \********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cjs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cjs/index.js */ \"(ssr)/../../node_modules/style-to-object/cjs/index.js\");\n\n// ensure compatibility with rollup umd build\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_cjs_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || _cjs_index_js__WEBPACK_IMPORTED_MODULE_0__);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLXRvLW9iamVjdC9lc20vaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDO0FBRTVDLDZDQUE2QztBQUM3QyxpRUFBZUEscURBQXFCLElBQUlBLDBDQUFhQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtdG8tb2JqZWN0L2VzbS9pbmRleC5tanM/ZGQ4NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3R5bGVUb09iamVjdCBmcm9tICcuLi9janMvaW5kZXguanMnO1xuXG4vLyBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIHJvbGx1cCB1bWQgYnVpbGRcbmV4cG9ydCBkZWZhdWx0IFN0eWxlVG9PYmplY3QuZGVmYXVsdCB8fCBTdHlsZVRvT2JqZWN0O1xuIl0sIm5hbWVzIjpbIlN0eWxlVG9PYmplY3QiLCJkZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/style-to-object/esm/index.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/tailwind-merge/dist/bundle-mjs.mjs":
-/*!*************************************************************!*\
- !*** ../../node_modules/tailwind-merge/dist/bundle-mjs.mjs ***!
- \*************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createTailwindMerge: () => (/* binding */ createTailwindMerge),\n/* harmony export */ extendTailwindMerge: () => (/* binding */ extendTailwindMerge),\n/* harmony export */ fromTheme: () => (/* binding */ fromTheme),\n/* harmony export */ getDefaultConfig: () => (/* binding */ getDefaultConfig),\n/* harmony export */ mergeConfigs: () => (/* binding */ mergeConfigs),\n/* harmony export */ twJoin: () => (/* binding */ twJoin),\n/* harmony export */ twMerge: () => (/* binding */ twMerge),\n/* harmony export */ validators: () => (/* binding */ validators)\n/* harmony export */ });\nconst CLASS_PART_SEPARATOR = \"-\";\nfunction createClassUtils(config) {\n const classMap = createClassMap(config);\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config;\n function getClassGroupId(className) {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === \"\" && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n }\n function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [\n ...conflicts,\n ...conflictingClassGroupModifiers[classGroupId]\n ];\n }\n return conflicts;\n }\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n}\nfunction getGroupRecursive(classParts, classPartObject) {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({ validator })=>validator(classRest))?.classGroupId;\n}\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nfunction getGroupIdForArbitraryProperty(className) {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(\":\"));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return \"arbitrary..\" + property;\n }\n }\n}\n/**\n * Exported for testing only\n */ function createClassMap(config) {\n const { theme, prefix } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup])=>{\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n}\nfunction processClassesRecursively(classGroup, classPartObject, classGroupId, theme) {\n classGroup.forEach((classDefinition)=>{\n if (typeof classDefinition === \"string\") {\n const classPartObjectToEdit = classDefinition === \"\" ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === \"function\") {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup])=>{\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n}\nfunction getPart(classPartObject, path) {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach((pathPart)=>{\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n}\nfunction isThemeGetter(func) {\n return func.isThemeGetter;\n}\nfunction getPrefixedClassGroupEntries(classGroupEntries, prefix) {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup])=>{\n const prefixedClassGroup = classGroup.map((classDefinition)=>{\n if (typeof classDefinition === \"string\") {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === \"object\") {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value])=>[\n prefix + key,\n value\n ]));\n }\n return classDefinition;\n });\n return [\n classGroupId,\n prefixedClassGroup\n ];\n });\n}\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nfunction createLruCache(maxCacheSize) {\n if (maxCacheSize < 1) {\n return {\n get: ()=>undefined,\n set: ()=>{}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n function update(key, value) {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n }\n return {\n get (key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set (key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n}\nconst IMPORTANT_MODIFIER = \"!\";\nfunction createSplitModifiers(config) {\n const separator = config.separator;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // splitModifiers inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n return function splitModifiers(className) {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for(let index = 0; index < className.length; index++){\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === \"/\") {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === \"[\") {\n bracketDepth++;\n } else if (currentCharacter === \"]\") {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n}\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */ function sortModifiers(modifiers) {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach((modifier)=>{\n const isArbitraryVariant = modifier[0] === \"[\";\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n}\nfunction createConfigUtils(config) {\n return {\n cache: createLruCache(config.cacheSize),\n splitModifiers: createSplitModifiers(config),\n ...createClassUtils(config)\n };\n}\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nfunction mergeClassList(classList, configUtils) {\n const { splitModifiers, getClassGroupId, getConflictingClassGroupIds } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */ const classGroupsInConflict = new Set();\n return classList.trim().split(SPLIT_CLASSES_REGEX).map((originalClassName)=>{\n const { modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition } = splitModifiers(originalClassName);\n let classGroupId = getClassGroupId(maybePostfixModifierPosition ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n if (!classGroupId) {\n if (!maybePostfixModifierPosition) {\n return {\n isTailwindClass: false,\n originalClassName\n };\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n return {\n isTailwindClass: false,\n originalClassName\n };\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(\":\");\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n return {\n isTailwindClass: true,\n modifierId,\n classGroupId,\n originalClassName,\n hasPostfixModifier\n };\n }).reverse()// Last class in conflict wins, so we need to filter conflicting classes in reverse order.\n .filter((parsed)=>{\n if (!parsed.isTailwindClass) {\n return true;\n }\n const { modifierId, classGroupId, hasPostfixModifier } = parsed;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.has(classId)) {\n return false;\n }\n classGroupsInConflict.add(classId);\n getConflictingClassGroupIds(classGroupId, hasPostfixModifier).forEach((group)=>classGroupsInConflict.add(modifierId + group));\n return true;\n }).reverse().map((parsed)=>parsed.originalClassName).join(\" \");\n}\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <[email protected]> (lukeed.com)\n */ function twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = \"\";\n while(index < arguments.length){\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += \" \");\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction toValue(mix) {\n if (typeof mix === \"string\") {\n return mix;\n }\n let resolvedValue;\n let string = \"\";\n for(let k = 0; k < mix.length; k++){\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += \" \");\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent)=>createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nfunction fromTheme(key) {\n const themeGetter = (theme)=>theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n}\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/ new Set([\n \"px\",\n \"full\",\n \"screen\"\n]);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nfunction isLength(value) {\n return isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\n}\nfunction isArbitraryLength(value) {\n return getIsArbitraryValue(value, \"length\", isLengthOnly);\n}\nfunction isNumber(value) {\n return Boolean(value) && !Number.isNaN(Number(value));\n}\nfunction isArbitraryNumber(value) {\n return getIsArbitraryValue(value, \"number\", isNumber);\n}\nfunction isInteger(value) {\n return Boolean(value) && Number.isInteger(Number(value));\n}\nfunction isPercent(value) {\n return value.endsWith(\"%\") && isNumber(value.slice(0, -1));\n}\nfunction isArbitraryValue(value) {\n return arbitraryValueRegex.test(value);\n}\nfunction isTshirtSize(value) {\n return tshirtUnitRegex.test(value);\n}\nconst sizeLabels = /*#__PURE__*/ new Set([\n \"length\",\n \"size\",\n \"percentage\"\n]);\nfunction isArbitrarySize(value) {\n return getIsArbitraryValue(value, sizeLabels, isNever);\n}\nfunction isArbitraryPosition(value) {\n return getIsArbitraryValue(value, \"position\", isNever);\n}\nconst imageLabels = /*#__PURE__*/ new Set([\n \"image\",\n \"url\"\n]);\nfunction isArbitraryImage(value) {\n return getIsArbitraryValue(value, imageLabels, isImage);\n}\nfunction isArbitraryShadow(value) {\n return getIsArbitraryValue(value, \"\", isShadow);\n}\nfunction isAny() {\n return true;\n}\nfunction getIsArbitraryValue(value, label, testValue) {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === \"string\" ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n}\nfunction isLengthOnly(value) {\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n return lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\n}\nfunction isNever() {\n return false;\n}\nfunction isShadow(value) {\n return shadowRegex.test(value);\n}\nfunction isImage(value) {\n return imageRegex.test(value);\n}\nconst validators = /*#__PURE__*/ Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: \"Module\"\n});\nfunction getDefaultConfig() {\n const colors = fromTheme(\"colors\");\n const spacing = fromTheme(\"spacing\");\n const blur = fromTheme(\"blur\");\n const brightness = fromTheme(\"brightness\");\n const borderColor = fromTheme(\"borderColor\");\n const borderRadius = fromTheme(\"borderRadius\");\n const borderSpacing = fromTheme(\"borderSpacing\");\n const borderWidth = fromTheme(\"borderWidth\");\n const contrast = fromTheme(\"contrast\");\n const grayscale = fromTheme(\"grayscale\");\n const hueRotate = fromTheme(\"hueRotate\");\n const invert = fromTheme(\"invert\");\n const gap = fromTheme(\"gap\");\n const gradientColorStops = fromTheme(\"gradientColorStops\");\n const gradientColorStopPositions = fromTheme(\"gradientColorStopPositions\");\n const inset = fromTheme(\"inset\");\n const margin = fromTheme(\"margin\");\n const opacity = fromTheme(\"opacity\");\n const padding = fromTheme(\"padding\");\n const saturate = fromTheme(\"saturate\");\n const scale = fromTheme(\"scale\");\n const sepia = fromTheme(\"sepia\");\n const skew = fromTheme(\"skew\");\n const space = fromTheme(\"space\");\n const translate = fromTheme(\"translate\");\n const getOverscroll = ()=>[\n \"auto\",\n \"contain\",\n \"none\"\n ];\n const getOverflow = ()=>[\n \"auto\",\n \"hidden\",\n \"clip\",\n \"visible\",\n \"scroll\"\n ];\n const getSpacingWithAutoAndArbitrary = ()=>[\n \"auto\",\n isArbitraryValue,\n spacing\n ];\n const getSpacingWithArbitrary = ()=>[\n isArbitraryValue,\n spacing\n ];\n const getLengthWithEmptyAndArbitrary = ()=>[\n \"\",\n isLength,\n isArbitraryLength\n ];\n const getNumberWithAutoAndArbitrary = ()=>[\n \"auto\",\n isNumber,\n isArbitraryValue\n ];\n const getPositions = ()=>[\n \"bottom\",\n \"center\",\n \"left\",\n \"left-bottom\",\n \"left-top\",\n \"right\",\n \"right-bottom\",\n \"right-top\",\n \"top\"\n ];\n const getLineStyles = ()=>[\n \"solid\",\n \"dashed\",\n \"dotted\",\n \"double\",\n \"none\"\n ];\n const getBlendModes = ()=>[\n \"normal\",\n \"multiply\",\n \"screen\",\n \"overlay\",\n \"darken\",\n \"lighten\",\n \"color-dodge\",\n \"color-burn\",\n \"hard-light\",\n \"soft-light\",\n \"difference\",\n \"exclusion\",\n \"hue\",\n \"saturation\",\n \"color\",\n \"luminosity\",\n \"plus-lighter\"\n ];\n const getAlign = ()=>[\n \"start\",\n \"end\",\n \"center\",\n \"between\",\n \"around\",\n \"evenly\",\n \"stretch\"\n ];\n const getZeroAndEmpty = ()=>[\n \"\",\n \"0\",\n isArbitraryValue\n ];\n const getBreaks = ()=>[\n \"auto\",\n \"avoid\",\n \"all\",\n \"avoid-page\",\n \"page\",\n \"left\",\n \"right\",\n \"column\"\n ];\n const getNumber = ()=>[\n isNumber,\n isArbitraryNumber\n ];\n const getNumberAndArbitrary = ()=>[\n isNumber,\n isArbitraryValue\n ];\n return {\n cacheSize: 500,\n separator: \":\",\n theme: {\n colors: [\n isAny\n ],\n spacing: [\n isLength,\n isArbitraryLength\n ],\n blur: [\n \"none\",\n \"\",\n isTshirtSize,\n isArbitraryValue\n ],\n brightness: getNumber(),\n borderColor: [\n colors\n ],\n borderRadius: [\n \"none\",\n \"\",\n \"full\",\n isTshirtSize,\n isArbitraryValue\n ],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumber(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [\n colors\n ],\n gradientColorStopPositions: [\n isPercent,\n isArbitraryLength\n ],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumber(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumber(),\n scale: getNumber(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */ aspect: [\n {\n aspect: [\n \"auto\",\n \"square\",\n \"video\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */ container: [\n \"container\"\n ],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */ columns: [\n {\n columns: [\n isTshirtSize\n ]\n }\n ],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */ \"break-after\": [\n {\n \"break-after\": getBreaks()\n }\n ],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */ \"break-before\": [\n {\n \"break-before\": getBreaks()\n }\n ],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */ \"break-inside\": [\n {\n \"break-inside\": [\n \"auto\",\n \"avoid\",\n \"avoid-page\",\n \"avoid-column\"\n ]\n }\n ],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */ \"box-decoration\": [\n {\n \"box-decoration\": [\n \"slice\",\n \"clone\"\n ]\n }\n ],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */ box: [\n {\n box: [\n \"border\",\n \"content\"\n ]\n }\n ],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */ display: [\n \"block\",\n \"inline-block\",\n \"inline\",\n \"flex\",\n \"inline-flex\",\n \"table\",\n \"inline-table\",\n \"table-caption\",\n \"table-cell\",\n \"table-column\",\n \"table-column-group\",\n \"table-footer-group\",\n \"table-header-group\",\n \"table-row-group\",\n \"table-row\",\n \"flow-root\",\n \"grid\",\n \"inline-grid\",\n \"contents\",\n \"list-item\",\n \"hidden\"\n ],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */ float: [\n {\n float: [\n \"right\",\n \"left\",\n \"none\",\n \"start\",\n \"end\"\n ]\n }\n ],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */ clear: [\n {\n clear: [\n \"left\",\n \"right\",\n \"both\",\n \"none\",\n \"start\",\n \"end\"\n ]\n }\n ],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */ isolation: [\n \"isolate\",\n \"isolation-auto\"\n ],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */ \"object-fit\": [\n {\n object: [\n \"contain\",\n \"cover\",\n \"fill\",\n \"none\",\n \"scale-down\"\n ]\n }\n ],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */ \"object-position\": [\n {\n object: [\n ...getPositions(),\n isArbitraryValue\n ]\n }\n ],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */ overflow: [\n {\n overflow: getOverflow()\n }\n ],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */ \"overflow-x\": [\n {\n \"overflow-x\": getOverflow()\n }\n ],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */ \"overflow-y\": [\n {\n \"overflow-y\": getOverflow()\n }\n ],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */ overscroll: [\n {\n overscroll: getOverscroll()\n }\n ],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */ \"overscroll-x\": [\n {\n \"overscroll-x\": getOverscroll()\n }\n ],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */ \"overscroll-y\": [\n {\n \"overscroll-y\": getOverscroll()\n }\n ],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */ position: [\n \"static\",\n \"fixed\",\n \"absolute\",\n \"relative\",\n \"sticky\"\n ],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ inset: [\n {\n inset: [\n inset\n ]\n }\n ],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ \"inset-x\": [\n {\n \"inset-x\": [\n inset\n ]\n }\n ],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ \"inset-y\": [\n {\n \"inset-y\": [\n inset\n ]\n }\n ],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ start: [\n {\n start: [\n inset\n ]\n }\n ],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ end: [\n {\n end: [\n inset\n ]\n }\n ],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ top: [\n {\n top: [\n inset\n ]\n }\n ],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ right: [\n {\n right: [\n inset\n ]\n }\n ],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ bottom: [\n {\n bottom: [\n inset\n ]\n }\n ],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ left: [\n {\n left: [\n inset\n ]\n }\n ],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */ visibility: [\n \"visible\",\n \"invisible\",\n \"collapse\"\n ],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */ z: [\n {\n z: [\n \"auto\",\n isInteger,\n isArbitraryValue\n ]\n }\n ],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */ basis: [\n {\n basis: getSpacingWithAutoAndArbitrary()\n }\n ],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */ \"flex-direction\": [\n {\n flex: [\n \"row\",\n \"row-reverse\",\n \"col\",\n \"col-reverse\"\n ]\n }\n ],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */ \"flex-wrap\": [\n {\n flex: [\n \"wrap\",\n \"wrap-reverse\",\n \"nowrap\"\n ]\n }\n ],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */ flex: [\n {\n flex: [\n \"1\",\n \"auto\",\n \"initial\",\n \"none\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */ grow: [\n {\n grow: getZeroAndEmpty()\n }\n ],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */ shrink: [\n {\n shrink: getZeroAndEmpty()\n }\n ],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */ order: [\n {\n order: [\n \"first\",\n \"last\",\n \"none\",\n isInteger,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */ \"grid-cols\": [\n {\n \"grid-cols\": [\n isAny\n ]\n }\n ],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */ \"col-start-end\": [\n {\n col: [\n \"auto\",\n {\n span: [\n \"full\",\n isInteger,\n isArbitraryValue\n ]\n },\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */ \"col-start\": [\n {\n \"col-start\": getNumberWithAutoAndArbitrary()\n }\n ],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */ \"col-end\": [\n {\n \"col-end\": getNumberWithAutoAndArbitrary()\n }\n ],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */ \"grid-rows\": [\n {\n \"grid-rows\": [\n isAny\n ]\n }\n ],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */ \"row-start-end\": [\n {\n row: [\n \"auto\",\n {\n span: [\n isInteger,\n isArbitraryValue\n ]\n },\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */ \"row-start\": [\n {\n \"row-start\": getNumberWithAutoAndArbitrary()\n }\n ],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */ \"row-end\": [\n {\n \"row-end\": getNumberWithAutoAndArbitrary()\n }\n ],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */ \"grid-flow\": [\n {\n \"grid-flow\": [\n \"row\",\n \"col\",\n \"dense\",\n \"row-dense\",\n \"col-dense\"\n ]\n }\n ],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */ \"auto-cols\": [\n {\n \"auto-cols\": [\n \"auto\",\n \"min\",\n \"max\",\n \"fr\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */ \"auto-rows\": [\n {\n \"auto-rows\": [\n \"auto\",\n \"min\",\n \"max\",\n \"fr\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */ gap: [\n {\n gap: [\n gap\n ]\n }\n ],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */ \"gap-x\": [\n {\n \"gap-x\": [\n gap\n ]\n }\n ],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */ \"gap-y\": [\n {\n \"gap-y\": [\n gap\n ]\n }\n ],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */ \"justify-content\": [\n {\n justify: [\n \"normal\",\n ...getAlign()\n ]\n }\n ],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */ \"justify-items\": [\n {\n \"justify-items\": [\n \"start\",\n \"end\",\n \"center\",\n \"stretch\"\n ]\n }\n ],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */ \"justify-self\": [\n {\n \"justify-self\": [\n \"auto\",\n \"start\",\n \"end\",\n \"center\",\n \"stretch\"\n ]\n }\n ],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */ \"align-content\": [\n {\n content: [\n \"normal\",\n ...getAlign(),\n \"baseline\"\n ]\n }\n ],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */ \"align-items\": [\n {\n items: [\n \"start\",\n \"end\",\n \"center\",\n \"baseline\",\n \"stretch\"\n ]\n }\n ],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */ \"align-self\": [\n {\n self: [\n \"auto\",\n \"start\",\n \"end\",\n \"center\",\n \"stretch\",\n \"baseline\"\n ]\n }\n ],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */ \"place-content\": [\n {\n \"place-content\": [\n ...getAlign(),\n \"baseline\"\n ]\n }\n ],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */ \"place-items\": [\n {\n \"place-items\": [\n \"start\",\n \"end\",\n \"center\",\n \"baseline\",\n \"stretch\"\n ]\n }\n ],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */ \"place-self\": [\n {\n \"place-self\": [\n \"auto\",\n \"start\",\n \"end\",\n \"center\",\n \"stretch\"\n ]\n }\n ],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */ p: [\n {\n p: [\n padding\n ]\n }\n ],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */ px: [\n {\n px: [\n padding\n ]\n }\n ],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */ py: [\n {\n py: [\n padding\n ]\n }\n ],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */ ps: [\n {\n ps: [\n padding\n ]\n }\n ],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */ pe: [\n {\n pe: [\n padding\n ]\n }\n ],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */ pt: [\n {\n pt: [\n padding\n ]\n }\n ],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */ pr: [\n {\n pr: [\n padding\n ]\n }\n ],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */ pb: [\n {\n pb: [\n padding\n ]\n }\n ],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */ pl: [\n {\n pl: [\n padding\n ]\n }\n ],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */ m: [\n {\n m: [\n margin\n ]\n }\n ],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */ mx: [\n {\n mx: [\n margin\n ]\n }\n ],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */ my: [\n {\n my: [\n margin\n ]\n }\n ],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */ ms: [\n {\n ms: [\n margin\n ]\n }\n ],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */ me: [\n {\n me: [\n margin\n ]\n }\n ],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */ mt: [\n {\n mt: [\n margin\n ]\n }\n ],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */ mr: [\n {\n mr: [\n margin\n ]\n }\n ],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */ mb: [\n {\n mb: [\n margin\n ]\n }\n ],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */ ml: [\n {\n ml: [\n margin\n ]\n }\n ],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */ \"space-x\": [\n {\n \"space-x\": [\n space\n ]\n }\n ],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */ \"space-x-reverse\": [\n \"space-x-reverse\"\n ],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */ \"space-y\": [\n {\n \"space-y\": [\n space\n ]\n }\n ],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */ \"space-y-reverse\": [\n \"space-y-reverse\"\n ],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */ w: [\n {\n w: [\n \"auto\",\n \"min\",\n \"max\",\n \"fit\",\n \"svw\",\n \"lvw\",\n \"dvw\",\n isArbitraryValue,\n spacing\n ]\n }\n ],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */ \"min-w\": [\n {\n \"min-w\": [\n isArbitraryValue,\n spacing,\n \"min\",\n \"max\",\n \"fit\"\n ]\n }\n ],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */ \"max-w\": [\n {\n \"max-w\": [\n isArbitraryValue,\n spacing,\n \"none\",\n \"full\",\n \"min\",\n \"max\",\n \"fit\",\n \"prose\",\n {\n screen: [\n isTshirtSize\n ]\n },\n isTshirtSize\n ]\n }\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */ h: [\n {\n h: [\n isArbitraryValue,\n spacing,\n \"auto\",\n \"min\",\n \"max\",\n \"fit\",\n \"svh\",\n \"lvh\",\n \"dvh\"\n ]\n }\n ],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */ \"min-h\": [\n {\n \"min-h\": [\n isArbitraryValue,\n spacing,\n \"min\",\n \"max\",\n \"fit\",\n \"svh\",\n \"lvh\",\n \"dvh\"\n ]\n }\n ],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */ \"max-h\": [\n {\n \"max-h\": [\n isArbitraryValue,\n spacing,\n \"min\",\n \"max\",\n \"fit\",\n \"svh\",\n \"lvh\",\n \"dvh\"\n ]\n }\n ],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */ size: [\n {\n size: [\n isArbitraryValue,\n spacing,\n \"auto\",\n \"min\",\n \"max\",\n \"fit\"\n ]\n }\n ],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */ \"font-size\": [\n {\n text: [\n \"base\",\n isTshirtSize,\n isArbitraryLength\n ]\n }\n ],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */ \"font-smoothing\": [\n \"antialiased\",\n \"subpixel-antialiased\"\n ],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */ \"font-style\": [\n \"italic\",\n \"not-italic\"\n ],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */ \"font-weight\": [\n {\n font: [\n \"thin\",\n \"extralight\",\n \"light\",\n \"normal\",\n \"medium\",\n \"semibold\",\n \"bold\",\n \"extrabold\",\n \"black\",\n isArbitraryNumber\n ]\n }\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */ \"font-family\": [\n {\n font: [\n isAny\n ]\n }\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-normal\": [\n \"normal-nums\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-ordinal\": [\n \"ordinal\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-slashed-zero\": [\n \"slashed-zero\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-figure\": [\n \"lining-nums\",\n \"oldstyle-nums\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-spacing\": [\n \"proportional-nums\",\n \"tabular-nums\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-fraction\": [\n \"diagonal-fractions\",\n \"stacked-fractons\"\n ],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */ tracking: [\n {\n tracking: [\n \"tighter\",\n \"tight\",\n \"normal\",\n \"wide\",\n \"wider\",\n \"widest\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */ \"line-clamp\": [\n {\n \"line-clamp\": [\n \"none\",\n isNumber,\n isArbitraryNumber\n ]\n }\n ],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */ leading: [\n {\n leading: [\n \"none\",\n \"tight\",\n \"snug\",\n \"normal\",\n \"relaxed\",\n \"loose\",\n isLength,\n isArbitraryValue\n ]\n }\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */ \"list-image\": [\n {\n \"list-image\": [\n \"none\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */ \"list-style-type\": [\n {\n list: [\n \"none\",\n \"disc\",\n \"decimal\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */ \"list-style-position\": [\n {\n list: [\n \"inside\",\n \"outside\"\n ]\n }\n ],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */ \"placeholder-color\": [\n {\n placeholder: [\n colors\n ]\n }\n ],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */ \"placeholder-opacity\": [\n {\n \"placeholder-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */ \"text-alignment\": [\n {\n text: [\n \"left\",\n \"center\",\n \"right\",\n \"justify\",\n \"start\",\n \"end\"\n ]\n }\n ],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */ \"text-color\": [\n {\n text: [\n colors\n ]\n }\n ],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */ \"text-opacity\": [\n {\n \"text-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */ \"text-decoration\": [\n \"underline\",\n \"overline\",\n \"line-through\",\n \"no-underline\"\n ],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */ \"text-decoration-style\": [\n {\n decoration: [\n ...getLineStyles(),\n \"wavy\"\n ]\n }\n ],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */ \"text-decoration-thickness\": [\n {\n decoration: [\n \"auto\",\n \"from-font\",\n isLength,\n isArbitraryLength\n ]\n }\n ],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */ \"underline-offset\": [\n {\n \"underline-offset\": [\n \"auto\",\n isLength,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */ \"text-decoration-color\": [\n {\n decoration: [\n colors\n ]\n }\n ],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */ \"text-transform\": [\n \"uppercase\",\n \"lowercase\",\n \"capitalize\",\n \"normal-case\"\n ],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */ \"text-overflow\": [\n \"truncate\",\n \"text-ellipsis\",\n \"text-clip\"\n ],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */ \"text-wrap\": [\n {\n text: [\n \"wrap\",\n \"nowrap\",\n \"balance\",\n \"pretty\"\n ]\n }\n ],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */ indent: [\n {\n indent: getSpacingWithArbitrary()\n }\n ],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */ \"vertical-align\": [\n {\n align: [\n \"baseline\",\n \"top\",\n \"middle\",\n \"bottom\",\n \"text-top\",\n \"text-bottom\",\n \"sub\",\n \"super\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */ whitespace: [\n {\n whitespace: [\n \"normal\",\n \"nowrap\",\n \"pre\",\n \"pre-line\",\n \"pre-wrap\",\n \"break-spaces\"\n ]\n }\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */ break: [\n {\n break: [\n \"normal\",\n \"words\",\n \"all\",\n \"keep\"\n ]\n }\n ],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */ hyphens: [\n {\n hyphens: [\n \"none\",\n \"manual\",\n \"auto\"\n ]\n }\n ],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */ content: [\n {\n content: [\n \"none\",\n isArbitraryValue\n ]\n }\n ],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */ \"bg-attachment\": [\n {\n bg: [\n \"fixed\",\n \"local\",\n \"scroll\"\n ]\n }\n ],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */ \"bg-clip\": [\n {\n \"bg-clip\": [\n \"border\",\n \"padding\",\n \"content\",\n \"text\"\n ]\n }\n ],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */ \"bg-opacity\": [\n {\n \"bg-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */ \"bg-origin\": [\n {\n \"bg-origin\": [\n \"border\",\n \"padding\",\n \"content\"\n ]\n }\n ],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */ \"bg-position\": [\n {\n bg: [\n ...getPositions(),\n isArbitraryPosition\n ]\n }\n ],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */ \"bg-repeat\": [\n {\n bg: [\n \"no-repeat\",\n {\n repeat: [\n \"\",\n \"x\",\n \"y\",\n \"round\",\n \"space\"\n ]\n }\n ]\n }\n ],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */ \"bg-size\": [\n {\n bg: [\n \"auto\",\n \"cover\",\n \"contain\",\n isArbitrarySize\n ]\n }\n ],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */ \"bg-image\": [\n {\n bg: [\n \"none\",\n {\n \"gradient-to\": [\n \"t\",\n \"tr\",\n \"r\",\n \"br\",\n \"b\",\n \"bl\",\n \"l\",\n \"tl\"\n ]\n },\n isArbitraryImage\n ]\n }\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */ \"bg-color\": [\n {\n bg: [\n colors\n ]\n }\n ],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-from-pos\": [\n {\n from: [\n gradientColorStopPositions\n ]\n }\n ],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-via-pos\": [\n {\n via: [\n gradientColorStopPositions\n ]\n }\n ],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-to-pos\": [\n {\n to: [\n gradientColorStopPositions\n ]\n }\n ],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-from\": [\n {\n from: [\n gradientColorStops\n ]\n }\n ],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-via\": [\n {\n via: [\n gradientColorStops\n ]\n }\n ],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-to\": [\n {\n to: [\n gradientColorStops\n ]\n }\n ],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */ rounded: [\n {\n rounded: [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-s\": [\n {\n \"rounded-s\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-e\": [\n {\n \"rounded-e\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-t\": [\n {\n \"rounded-t\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-r\": [\n {\n \"rounded-r\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-b\": [\n {\n \"rounded-b\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-l\": [\n {\n \"rounded-l\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-ss\": [\n {\n \"rounded-ss\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-se\": [\n {\n \"rounded-se\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-ee\": [\n {\n \"rounded-ee\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-es\": [\n {\n \"rounded-es\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-tl\": [\n {\n \"rounded-tl\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-tr\": [\n {\n \"rounded-tr\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-br\": [\n {\n \"rounded-br\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-bl\": [\n {\n \"rounded-bl\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w\": [\n {\n border: [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-x\": [\n {\n \"border-x\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-y\": [\n {\n \"border-y\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-s\": [\n {\n \"border-s\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-e\": [\n {\n \"border-e\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-t\": [\n {\n \"border-t\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-r\": [\n {\n \"border-r\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-b\": [\n {\n \"border-b\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-l\": [\n {\n \"border-l\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */ \"border-opacity\": [\n {\n \"border-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */ \"border-style\": [\n {\n border: [\n ...getLineStyles(),\n \"hidden\"\n ]\n }\n ],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */ \"divide-x\": [\n {\n \"divide-x\": [\n borderWidth\n ]\n }\n ],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */ \"divide-x-reverse\": [\n \"divide-x-reverse\"\n ],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */ \"divide-y\": [\n {\n \"divide-y\": [\n borderWidth\n ]\n }\n ],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */ \"divide-y-reverse\": [\n \"divide-y-reverse\"\n ],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */ \"divide-opacity\": [\n {\n \"divide-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */ \"divide-style\": [\n {\n divide: getLineStyles()\n }\n ],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color\": [\n {\n border: [\n borderColor\n ]\n }\n ],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-x\": [\n {\n \"border-x\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-y\": [\n {\n \"border-y\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-t\": [\n {\n \"border-t\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-r\": [\n {\n \"border-r\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-b\": [\n {\n \"border-b\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-l\": [\n {\n \"border-l\": [\n borderColor\n ]\n }\n ],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */ \"divide-color\": [\n {\n divide: [\n borderColor\n ]\n }\n ],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */ \"outline-style\": [\n {\n outline: [\n \"\",\n ...getLineStyles()\n ]\n }\n ],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */ \"outline-offset\": [\n {\n \"outline-offset\": [\n isLength,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */ \"outline-w\": [\n {\n outline: [\n isLength,\n isArbitraryLength\n ]\n }\n ],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */ \"outline-color\": [\n {\n outline: [\n colors\n ]\n }\n ],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */ \"ring-w\": [\n {\n ring: getLengthWithEmptyAndArbitrary()\n }\n ],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */ \"ring-w-inset\": [\n \"ring-inset\"\n ],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */ \"ring-color\": [\n {\n ring: [\n colors\n ]\n }\n ],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */ \"ring-opacity\": [\n {\n \"ring-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */ \"ring-offset-w\": [\n {\n \"ring-offset\": [\n isLength,\n isArbitraryLength\n ]\n }\n ],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */ \"ring-offset-color\": [\n {\n \"ring-offset\": [\n colors\n ]\n }\n ],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */ shadow: [\n {\n shadow: [\n \"\",\n \"inner\",\n \"none\",\n isTshirtSize,\n isArbitraryShadow\n ]\n }\n ],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */ \"shadow-color\": [\n {\n shadow: [\n isAny\n ]\n }\n ],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */ opacity: [\n {\n opacity: [\n opacity\n ]\n }\n ],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */ \"mix-blend\": [\n {\n \"mix-blend\": getBlendModes()\n }\n ],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */ \"bg-blend\": [\n {\n \"bg-blend\": getBlendModes()\n }\n ],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */ filter: [\n {\n filter: [\n \"\",\n \"none\"\n ]\n }\n ],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */ blur: [\n {\n blur: [\n blur\n ]\n }\n ],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */ brightness: [\n {\n brightness: [\n brightness\n ]\n }\n ],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */ contrast: [\n {\n contrast: [\n contrast\n ]\n }\n ],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */ \"drop-shadow\": [\n {\n \"drop-shadow\": [\n \"\",\n \"none\",\n isTshirtSize,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */ grayscale: [\n {\n grayscale: [\n grayscale\n ]\n }\n ],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */ \"hue-rotate\": [\n {\n \"hue-rotate\": [\n hueRotate\n ]\n }\n ],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */ invert: [\n {\n invert: [\n invert\n ]\n }\n ],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */ saturate: [\n {\n saturate: [\n saturate\n ]\n }\n ],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */ sepia: [\n {\n sepia: [\n sepia\n ]\n }\n ],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */ \"backdrop-filter\": [\n {\n \"backdrop-filter\": [\n \"\",\n \"none\"\n ]\n }\n ],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */ \"backdrop-blur\": [\n {\n \"backdrop-blur\": [\n blur\n ]\n }\n ],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */ \"backdrop-brightness\": [\n {\n \"backdrop-brightness\": [\n brightness\n ]\n }\n ],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */ \"backdrop-contrast\": [\n {\n \"backdrop-contrast\": [\n contrast\n ]\n }\n ],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */ \"backdrop-grayscale\": [\n {\n \"backdrop-grayscale\": [\n grayscale\n ]\n }\n ],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */ \"backdrop-hue-rotate\": [\n {\n \"backdrop-hue-rotate\": [\n hueRotate\n ]\n }\n ],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */ \"backdrop-invert\": [\n {\n \"backdrop-invert\": [\n invert\n ]\n }\n ],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */ \"backdrop-opacity\": [\n {\n \"backdrop-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */ \"backdrop-saturate\": [\n {\n \"backdrop-saturate\": [\n saturate\n ]\n }\n ],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */ \"backdrop-sepia\": [\n {\n \"backdrop-sepia\": [\n sepia\n ]\n }\n ],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */ \"border-collapse\": [\n {\n border: [\n \"collapse\",\n \"separate\"\n ]\n }\n ],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */ \"border-spacing\": [\n {\n \"border-spacing\": [\n borderSpacing\n ]\n }\n ],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */ \"border-spacing-x\": [\n {\n \"border-spacing-x\": [\n borderSpacing\n ]\n }\n ],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */ \"border-spacing-y\": [\n {\n \"border-spacing-y\": [\n borderSpacing\n ]\n }\n ],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */ \"table-layout\": [\n {\n table: [\n \"auto\",\n \"fixed\"\n ]\n }\n ],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */ caption: [\n {\n caption: [\n \"top\",\n \"bottom\"\n ]\n }\n ],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */ transition: [\n {\n transition: [\n \"none\",\n \"all\",\n \"\",\n \"colors\",\n \"opacity\",\n \"shadow\",\n \"transform\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */ duration: [\n {\n duration: getNumberAndArbitrary()\n }\n ],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */ ease: [\n {\n ease: [\n \"linear\",\n \"in\",\n \"out\",\n \"in-out\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */ delay: [\n {\n delay: getNumberAndArbitrary()\n }\n ],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */ animate: [\n {\n animate: [\n \"none\",\n \"spin\",\n \"ping\",\n \"pulse\",\n \"bounce\",\n isArbitraryValue\n ]\n }\n ],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */ transform: [\n {\n transform: [\n \"\",\n \"gpu\",\n \"none\"\n ]\n }\n ],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */ scale: [\n {\n scale: [\n scale\n ]\n }\n ],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */ \"scale-x\": [\n {\n \"scale-x\": [\n scale\n ]\n }\n ],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */ \"scale-y\": [\n {\n \"scale-y\": [\n scale\n ]\n }\n ],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */ rotate: [\n {\n rotate: [\n isInteger,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */ \"translate-x\": [\n {\n \"translate-x\": [\n translate\n ]\n }\n ],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */ \"translate-y\": [\n {\n \"translate-y\": [\n translate\n ]\n }\n ],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */ \"skew-x\": [\n {\n \"skew-x\": [\n skew\n ]\n }\n ],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */ \"skew-y\": [\n {\n \"skew-y\": [\n skew\n ]\n }\n ],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */ \"transform-origin\": [\n {\n origin: [\n \"center\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\",\n \"top-left\",\n isArbitraryValue\n ]\n }\n ],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */ accent: [\n {\n accent: [\n \"auto\",\n colors\n ]\n }\n ],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */ appearance: [\n {\n appearance: [\n \"none\",\n \"auto\"\n ]\n }\n ],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */ cursor: [\n {\n cursor: [\n \"auto\",\n \"default\",\n \"pointer\",\n \"wait\",\n \"text\",\n \"move\",\n \"help\",\n \"not-allowed\",\n \"none\",\n \"context-menu\",\n \"progress\",\n \"cell\",\n \"crosshair\",\n \"vertical-text\",\n \"alias\",\n \"copy\",\n \"no-drop\",\n \"grab\",\n \"grabbing\",\n \"all-scroll\",\n \"col-resize\",\n \"row-resize\",\n \"n-resize\",\n \"e-resize\",\n \"s-resize\",\n \"w-resize\",\n \"ne-resize\",\n \"nw-resize\",\n \"se-resize\",\n \"sw-resize\",\n \"ew-resize\",\n \"ns-resize\",\n \"nesw-resize\",\n \"nwse-resize\",\n \"zoom-in\",\n \"zoom-out\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */ \"caret-color\": [\n {\n caret: [\n colors\n ]\n }\n ],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */ \"pointer-events\": [\n {\n \"pointer-events\": [\n \"none\",\n \"auto\"\n ]\n }\n ],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */ resize: [\n {\n resize: [\n \"none\",\n \"y\",\n \"x\",\n \"\"\n ]\n }\n ],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */ \"scroll-behavior\": [\n {\n scroll: [\n \"auto\",\n \"smooth\"\n ]\n }\n ],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-m\": [\n {\n \"scroll-m\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-mx\": [\n {\n \"scroll-mx\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-my\": [\n {\n \"scroll-my\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-ms\": [\n {\n \"scroll-ms\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-me\": [\n {\n \"scroll-me\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-mt\": [\n {\n \"scroll-mt\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-mr\": [\n {\n \"scroll-mr\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-mb\": [\n {\n \"scroll-mb\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-ml\": [\n {\n \"scroll-ml\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-p\": [\n {\n \"scroll-p\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-px\": [\n {\n \"scroll-px\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-py\": [\n {\n \"scroll-py\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-ps\": [\n {\n \"scroll-ps\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pe\": [\n {\n \"scroll-pe\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pt\": [\n {\n \"scroll-pt\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pr\": [\n {\n \"scroll-pr\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pb\": [\n {\n \"scroll-pb\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pl\": [\n {\n \"scroll-pl\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */ \"snap-align\": [\n {\n snap: [\n \"start\",\n \"end\",\n \"center\",\n \"align-none\"\n ]\n }\n ],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */ \"snap-stop\": [\n {\n snap: [\n \"normal\",\n \"always\"\n ]\n }\n ],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */ \"snap-type\": [\n {\n snap: [\n \"none\",\n \"x\",\n \"y\",\n \"both\"\n ]\n }\n ],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */ \"snap-strictness\": [\n {\n snap: [\n \"mandatory\",\n \"proximity\"\n ]\n }\n ],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */ touch: [\n {\n touch: [\n \"auto\",\n \"none\",\n \"manipulation\"\n ]\n }\n ],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */ \"touch-x\": [\n {\n \"touch-pan\": [\n \"x\",\n \"left\",\n \"right\"\n ]\n }\n ],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */ \"touch-y\": [\n {\n \"touch-pan\": [\n \"y\",\n \"up\",\n \"down\"\n ]\n }\n ],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */ \"touch-pz\": [\n \"touch-pinch-zoom\"\n ],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */ select: [\n {\n select: [\n \"none\",\n \"text\",\n \"all\",\n \"auto\"\n ]\n }\n ],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */ \"will-change\": [\n {\n \"will-change\": [\n \"auto\",\n \"scroll\",\n \"contents\",\n \"transform\",\n isArbitraryValue\n ]\n }\n ],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */ fill: [\n {\n fill: [\n colors,\n \"none\"\n ]\n }\n ],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */ \"stroke-w\": [\n {\n stroke: [\n isLength,\n isArbitraryLength,\n isArbitraryNumber\n ]\n }\n ],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */ stroke: [\n {\n stroke: [\n colors,\n \"none\"\n ]\n }\n ],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */ sr: [\n \"sr-only\",\n \"not-sr-only\"\n ],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */ \"forced-color-adjust\": [\n {\n \"forced-color-adjust\": [\n \"auto\",\n \"none\"\n ]\n }\n ]\n },\n conflictingClassGroups: {\n overflow: [\n \"overflow-x\",\n \"overflow-y\"\n ],\n overscroll: [\n \"overscroll-x\",\n \"overscroll-y\"\n ],\n inset: [\n \"inset-x\",\n \"inset-y\",\n \"start\",\n \"end\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ],\n \"inset-x\": [\n \"right\",\n \"left\"\n ],\n \"inset-y\": [\n \"top\",\n \"bottom\"\n ],\n flex: [\n \"basis\",\n \"grow\",\n \"shrink\"\n ],\n gap: [\n \"gap-x\",\n \"gap-y\"\n ],\n p: [\n \"px\",\n \"py\",\n \"ps\",\n \"pe\",\n \"pt\",\n \"pr\",\n \"pb\",\n \"pl\"\n ],\n px: [\n \"pr\",\n \"pl\"\n ],\n py: [\n \"pt\",\n \"pb\"\n ],\n m: [\n \"mx\",\n \"my\",\n \"ms\",\n \"me\",\n \"mt\",\n \"mr\",\n \"mb\",\n \"ml\"\n ],\n mx: [\n \"mr\",\n \"ml\"\n ],\n my: [\n \"mt\",\n \"mb\"\n ],\n size: [\n \"w\",\n \"h\"\n ],\n \"font-size\": [\n \"leading\"\n ],\n \"fvn-normal\": [\n \"fvn-ordinal\",\n \"fvn-slashed-zero\",\n \"fvn-figure\",\n \"fvn-spacing\",\n \"fvn-fraction\"\n ],\n \"fvn-ordinal\": [\n \"fvn-normal\"\n ],\n \"fvn-slashed-zero\": [\n \"fvn-normal\"\n ],\n \"fvn-figure\": [\n \"fvn-normal\"\n ],\n \"fvn-spacing\": [\n \"fvn-normal\"\n ],\n \"fvn-fraction\": [\n \"fvn-normal\"\n ],\n \"line-clamp\": [\n \"display\",\n \"overflow\"\n ],\n rounded: [\n \"rounded-s\",\n \"rounded-e\",\n \"rounded-t\",\n \"rounded-r\",\n \"rounded-b\",\n \"rounded-l\",\n \"rounded-ss\",\n \"rounded-se\",\n \"rounded-ee\",\n \"rounded-es\",\n \"rounded-tl\",\n \"rounded-tr\",\n \"rounded-br\",\n \"rounded-bl\"\n ],\n \"rounded-s\": [\n \"rounded-ss\",\n \"rounded-es\"\n ],\n \"rounded-e\": [\n \"rounded-se\",\n \"rounded-ee\"\n ],\n \"rounded-t\": [\n \"rounded-tl\",\n \"rounded-tr\"\n ],\n \"rounded-r\": [\n \"rounded-tr\",\n \"rounded-br\"\n ],\n \"rounded-b\": [\n \"rounded-br\",\n \"rounded-bl\"\n ],\n \"rounded-l\": [\n \"rounded-tl\",\n \"rounded-bl\"\n ],\n \"border-spacing\": [\n \"border-spacing-x\",\n \"border-spacing-y\"\n ],\n \"border-w\": [\n \"border-w-s\",\n \"border-w-e\",\n \"border-w-t\",\n \"border-w-r\",\n \"border-w-b\",\n \"border-w-l\"\n ],\n \"border-w-x\": [\n \"border-w-r\",\n \"border-w-l\"\n ],\n \"border-w-y\": [\n \"border-w-t\",\n \"border-w-b\"\n ],\n \"border-color\": [\n \"border-color-t\",\n \"border-color-r\",\n \"border-color-b\",\n \"border-color-l\"\n ],\n \"border-color-x\": [\n \"border-color-r\",\n \"border-color-l\"\n ],\n \"border-color-y\": [\n \"border-color-t\",\n \"border-color-b\"\n ],\n \"scroll-m\": [\n \"scroll-mx\",\n \"scroll-my\",\n \"scroll-ms\",\n \"scroll-me\",\n \"scroll-mt\",\n \"scroll-mr\",\n \"scroll-mb\",\n \"scroll-ml\"\n ],\n \"scroll-mx\": [\n \"scroll-mr\",\n \"scroll-ml\"\n ],\n \"scroll-my\": [\n \"scroll-mt\",\n \"scroll-mb\"\n ],\n \"scroll-p\": [\n \"scroll-px\",\n \"scroll-py\",\n \"scroll-ps\",\n \"scroll-pe\",\n \"scroll-pt\",\n \"scroll-pr\",\n \"scroll-pb\",\n \"scroll-pl\"\n ],\n \"scroll-px\": [\n \"scroll-pr\",\n \"scroll-pl\"\n ],\n \"scroll-py\": [\n \"scroll-pt\",\n \"scroll-pb\"\n ],\n touch: [\n \"touch-x\",\n \"touch-y\",\n \"touch-pz\"\n ],\n \"touch-x\": [\n \"touch\"\n ],\n \"touch-y\": [\n \"touch\"\n ],\n \"touch-pz\": [\n \"touch\"\n ]\n },\n conflictingClassGroupModifiers: {\n \"font-size\": [\n \"leading\"\n ]\n }\n };\n}\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */ function mergeConfigs(baseConfig, { cacheSize, prefix, separator, extend = {}, override = {} }) {\n overrideProperty(baseConfig, \"cacheSize\", cacheSize);\n overrideProperty(baseConfig, \"prefix\", prefix);\n overrideProperty(baseConfig, \"separator\", separator);\n for(const configKey in override){\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for(const key in extend){\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n}\nfunction overrideProperty(baseObject, overrideKey, overrideValue) {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n}\nfunction overrideConfigProperties(baseObject, overrideObject) {\n if (overrideObject) {\n for(const key in overrideObject){\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n}\nfunction mergeConfigProperties(baseObject, mergeObject) {\n if (mergeObject) {\n for(const key in mergeObject){\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n}\nfunction extendTailwindMerge(configExtension, ...createConfig) {\n return typeof configExtension === \"function\" ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(()=>mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\n}\nconst twMerge = /*#__PURE__*/ createTailwindMerge(getDefaultConfig);\n //# sourceMappingURL=bundle-mjs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3RhaWx3aW5kLW1lcmdlL2Rpc3QvYnVuZGxlLW1qcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxNQUFNQSx1QkFBdUI7QUFDN0IsU0FBU0MsaUJBQWlCQyxNQUFNO0lBQzlCLE1BQU1DLFdBQVdDLGVBQWVGO0lBQ2hDLE1BQU0sRUFDSkcsc0JBQXNCLEVBQ3RCQyw4QkFBOEIsRUFDL0IsR0FBR0o7SUFDSixTQUFTSyxnQkFBZ0JDLFNBQVM7UUFDaEMsTUFBTUMsYUFBYUQsVUFBVUUsS0FBSyxDQUFDVjtRQUNuQyxtS0FBbUs7UUFDbkssSUFBSVMsVUFBVSxDQUFDLEVBQUUsS0FBSyxNQUFNQSxXQUFXRSxNQUFNLEtBQUssR0FBRztZQUNuREYsV0FBV0csS0FBSztRQUNsQjtRQUNBLE9BQU9DLGtCQUFrQkosWUFBWU4sYUFBYVcsK0JBQStCTjtJQUNuRjtJQUNBLFNBQVNPLDRCQUE0QkMsWUFBWSxFQUFFQyxrQkFBa0I7UUFDbkUsTUFBTUMsWUFBWWIsc0JBQXNCLENBQUNXLGFBQWEsSUFBSSxFQUFFO1FBQzVELElBQUlDLHNCQUFzQlgsOEJBQThCLENBQUNVLGFBQWEsRUFBRTtZQUN0RSxPQUFPO21CQUFJRTttQkFBY1osOEJBQThCLENBQUNVLGFBQWE7YUFBQztRQUN4RTtRQUNBLE9BQU9FO0lBQ1Q7SUFDQSxPQUFPO1FBQ0xYO1FBQ0FRO0lBQ0Y7QUFDRjtBQUNBLFNBQVNGLGtCQUFrQkosVUFBVSxFQUFFVSxlQUFlO0lBQ3BELElBQUlWLFdBQVdFLE1BQU0sS0FBSyxHQUFHO1FBQzNCLE9BQU9RLGdCQUFnQkgsWUFBWTtJQUNyQztJQUNBLE1BQU1JLG1CQUFtQlgsVUFBVSxDQUFDLEVBQUU7SUFDdEMsTUFBTVksc0JBQXNCRixnQkFBZ0JHLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDSDtJQUN6RCxNQUFNSSw4QkFBOEJILHNCQUFzQlIsa0JBQWtCSixXQUFXZ0IsS0FBSyxDQUFDLElBQUlKLHVCQUF1Qks7SUFDeEgsSUFBSUYsNkJBQTZCO1FBQy9CLE9BQU9BO0lBQ1Q7SUFDQSxJQUFJTCxnQkFBZ0JRLFVBQVUsQ0FBQ2hCLE1BQU0sS0FBSyxHQUFHO1FBQzNDLE9BQU9lO0lBQ1Q7SUFDQSxNQUFNRSxZQUFZbkIsV0FBV29CLElBQUksQ0FBQzdCO0lBQ2xDLE9BQU9tQixnQkFBZ0JRLFVBQVUsQ0FBQ0csSUFBSSxDQUFDLENBQUMsRUFDdENDLFNBQVMsRUFDVixHQUFLQSxVQUFVSCxhQUFhWjtBQUMvQjtBQUNBLE1BQU1nQix5QkFBeUI7QUFDL0IsU0FBU2xCLCtCQUErQk4sU0FBUztJQUMvQyxJQUFJd0IsdUJBQXVCQyxJQUFJLENBQUN6QixZQUFZO1FBQzFDLE1BQU0wQiw2QkFBNkJGLHVCQUF1QkcsSUFBSSxDQUFDM0IsVUFBVSxDQUFDLEVBQUU7UUFDNUUsTUFBTTRCLFdBQVdGLDRCQUE0QkcsVUFBVSxHQUFHSCwyQkFBMkJJLE9BQU8sQ0FBQztRQUM3RixJQUFJRixVQUFVO1lBQ1osb0ZBQW9GO1lBQ3BGLE9BQU8sZ0JBQWdCQTtRQUN6QjtJQUNGO0FBQ0Y7QUFDQTs7Q0FFQyxHQUNELFNBQVNoQyxlQUFlRixNQUFNO0lBQzVCLE1BQU0sRUFDSnFDLEtBQUssRUFDTEMsTUFBTSxFQUNQLEdBQUd0QztJQUNKLE1BQU1DLFdBQVc7UUFDZm1CLFVBQVUsSUFBSW1CO1FBQ2RkLFlBQVksRUFBRTtJQUNoQjtJQUNBLE1BQU1lLDRCQUE0QkMsNkJBQTZCQyxPQUFPQyxPQUFPLENBQUMzQyxPQUFPNEMsV0FBVyxHQUFHTjtJQUNuR0UsMEJBQTBCSyxPQUFPLENBQUMsQ0FBQyxDQUFDL0IsY0FBY2dDLFdBQVc7UUFDM0RDLDBCQUEwQkQsWUFBWTdDLFVBQVVhLGNBQWN1QjtJQUNoRTtJQUNBLE9BQU9wQztBQUNUO0FBQ0EsU0FBUzhDLDBCQUEwQkQsVUFBVSxFQUFFN0IsZUFBZSxFQUFFSCxZQUFZLEVBQUV1QixLQUFLO0lBQ2pGUyxXQUFXRCxPQUFPLENBQUNHLENBQUFBO1FBQ2pCLElBQUksT0FBT0Esb0JBQW9CLFVBQVU7WUFDdkMsTUFBTUMsd0JBQXdCRCxvQkFBb0IsS0FBSy9CLGtCQUFrQmlDLFFBQVFqQyxpQkFBaUIrQjtZQUNsR0Msc0JBQXNCbkMsWUFBWSxHQUFHQTtZQUNyQztRQUNGO1FBQ0EsSUFBSSxPQUFPa0Msb0JBQW9CLFlBQVk7WUFDekMsSUFBSUcsY0FBY0gsa0JBQWtCO2dCQUNsQ0QsMEJBQTBCQyxnQkFBZ0JYLFFBQVFwQixpQkFBaUJILGNBQWN1QjtnQkFDakY7WUFDRjtZQUNBcEIsZ0JBQWdCUSxVQUFVLENBQUMyQixJQUFJLENBQUM7Z0JBQzlCdkIsV0FBV21CO2dCQUNYbEM7WUFDRjtZQUNBO1FBQ0Y7UUFDQTRCLE9BQU9DLE9BQU8sQ0FBQ0ssaUJBQWlCSCxPQUFPLENBQUMsQ0FBQyxDQUFDUSxLQUFLUCxXQUFXO1lBQ3hEQywwQkFBMEJELFlBQVlJLFFBQVFqQyxpQkFBaUJvQyxNQUFNdkMsY0FBY3VCO1FBQ3JGO0lBQ0Y7QUFDRjtBQUNBLFNBQVNhLFFBQVFqQyxlQUFlLEVBQUVxQyxJQUFJO0lBQ3BDLElBQUlDLHlCQUF5QnRDO0lBQzdCcUMsS0FBSzlDLEtBQUssQ0FBQ1Ysc0JBQXNCK0MsT0FBTyxDQUFDVyxDQUFBQTtRQUN2QyxJQUFJLENBQUNELHVCQUF1Qm5DLFFBQVEsQ0FBQ3FDLEdBQUcsQ0FBQ0QsV0FBVztZQUNsREQsdUJBQXVCbkMsUUFBUSxDQUFDc0MsR0FBRyxDQUFDRixVQUFVO2dCQUM1Q3BDLFVBQVUsSUFBSW1CO2dCQUNkZCxZQUFZLEVBQUU7WUFDaEI7UUFDRjtRQUNBOEIseUJBQXlCQSx1QkFBdUJuQyxRQUFRLENBQUNDLEdBQUcsQ0FBQ21DO0lBQy9EO0lBQ0EsT0FBT0Q7QUFDVDtBQUNBLFNBQVNKLGNBQWNRLElBQUk7SUFDekIsT0FBT0EsS0FBS1IsYUFBYTtBQUMzQjtBQUNBLFNBQVNWLDZCQUE2Qm1CLGlCQUFpQixFQUFFdEIsTUFBTTtJQUM3RCxJQUFJLENBQUNBLFFBQVE7UUFDWCxPQUFPc0I7SUFDVDtJQUNBLE9BQU9BLGtCQUFrQkMsR0FBRyxDQUFDLENBQUMsQ0FBQy9DLGNBQWNnQyxXQUFXO1FBQ3RELE1BQU1nQixxQkFBcUJoQixXQUFXZSxHQUFHLENBQUNiLENBQUFBO1lBQ3hDLElBQUksT0FBT0Esb0JBQW9CLFVBQVU7Z0JBQ3ZDLE9BQU9WLFNBQVNVO1lBQ2xCO1lBQ0EsSUFBSSxPQUFPQSxvQkFBb0IsVUFBVTtnQkFDdkMsT0FBT04sT0FBT3FCLFdBQVcsQ0FBQ3JCLE9BQU9DLE9BQU8sQ0FBQ0ssaUJBQWlCYSxHQUFHLENBQUMsQ0FBQyxDQUFDUixLQUFLVyxNQUFNLEdBQUs7d0JBQUMxQixTQUFTZTt3QkFBS1c7cUJBQU07WUFDdkc7WUFDQSxPQUFPaEI7UUFDVDtRQUNBLE9BQU87WUFBQ2xDO1lBQWNnRDtTQUFtQjtJQUMzQztBQUNGO0FBRUEsb0pBQW9KO0FBQ3BKLFNBQVNHLGVBQWVDLFlBQVk7SUFDbEMsSUFBSUEsZUFBZSxHQUFHO1FBQ3BCLE9BQU87WUFDTDdDLEtBQUssSUFBTUc7WUFDWGtDLEtBQUssS0FBTztRQUNkO0lBQ0Y7SUFDQSxJQUFJUyxZQUFZO0lBQ2hCLElBQUlDLFFBQVEsSUFBSTdCO0lBQ2hCLElBQUk4QixnQkFBZ0IsSUFBSTlCO0lBQ3hCLFNBQVMrQixPQUFPakIsR0FBRyxFQUFFVyxLQUFLO1FBQ3hCSSxNQUFNVixHQUFHLENBQUNMLEtBQUtXO1FBQ2ZHO1FBQ0EsSUFBSUEsWUFBWUQsY0FBYztZQUM1QkMsWUFBWTtZQUNaRSxnQkFBZ0JEO1lBQ2hCQSxRQUFRLElBQUk3QjtRQUNkO0lBQ0Y7SUFDQSxPQUFPO1FBQ0xsQixLQUFJZ0MsR0FBRztZQUNMLElBQUlXLFFBQVFJLE1BQU0vQyxHQUFHLENBQUNnQztZQUN0QixJQUFJVyxVQUFVeEMsV0FBVztnQkFDdkIsT0FBT3dDO1lBQ1Q7WUFDQSxJQUFJLENBQUNBLFFBQVFLLGNBQWNoRCxHQUFHLENBQUNnQyxJQUFHLE1BQU83QixXQUFXO2dCQUNsRDhDLE9BQU9qQixLQUFLVztnQkFDWixPQUFPQTtZQUNUO1FBQ0Y7UUFDQU4sS0FBSUwsR0FBRyxFQUFFVyxLQUFLO1lBQ1osSUFBSUksTUFBTVgsR0FBRyxDQUFDSixNQUFNO2dCQUNsQmUsTUFBTVYsR0FBRyxDQUFDTCxLQUFLVztZQUNqQixPQUFPO2dCQUNMTSxPQUFPakIsS0FBS1c7WUFDZDtRQUNGO0lBQ0Y7QUFDRjtBQUNBLE1BQU1PLHFCQUFxQjtBQUMzQixTQUFTQyxxQkFBcUJ4RSxNQUFNO0lBQ2xDLE1BQU15RSxZQUFZekUsT0FBT3lFLFNBQVM7SUFDbEMsTUFBTUMsNkJBQTZCRCxVQUFVaEUsTUFBTSxLQUFLO0lBQ3hELE1BQU1rRSwwQkFBMEJGLFNBQVMsQ0FBQyxFQUFFO0lBQzVDLE1BQU1HLGtCQUFrQkgsVUFBVWhFLE1BQU07SUFDeEMscUhBQXFIO0lBQ3JILE9BQU8sU0FBU29FLGVBQWV2RSxTQUFTO1FBQ3RDLE1BQU13RSxZQUFZLEVBQUU7UUFDcEIsSUFBSUMsZUFBZTtRQUNuQixJQUFJQyxnQkFBZ0I7UUFDcEIsSUFBSUM7UUFDSixJQUFLLElBQUlDLFFBQVEsR0FBR0EsUUFBUTVFLFVBQVVHLE1BQU0sRUFBRXlFLFFBQVM7WUFDckQsSUFBSUMsbUJBQW1CN0UsU0FBUyxDQUFDNEUsTUFBTTtZQUN2QyxJQUFJSCxpQkFBaUIsR0FBRztnQkFDdEIsSUFBSUkscUJBQXFCUiwyQkFBNEJELENBQUFBLDhCQUE4QnBFLFVBQVVpQixLQUFLLENBQUMyRCxPQUFPQSxRQUFRTixxQkFBcUJILFNBQVEsR0FBSTtvQkFDakpLLFVBQVUxQixJQUFJLENBQUM5QyxVQUFVaUIsS0FBSyxDQUFDeUQsZUFBZUU7b0JBQzlDRixnQkFBZ0JFLFFBQVFOO29CQUN4QjtnQkFDRjtnQkFDQSxJQUFJTyxxQkFBcUIsS0FBSztvQkFDNUJGLDBCQUEwQkM7b0JBQzFCO2dCQUNGO1lBQ0Y7WUFDQSxJQUFJQyxxQkFBcUIsS0FBSztnQkFDNUJKO1lBQ0YsT0FBTyxJQUFJSSxxQkFBcUIsS0FBSztnQkFDbkNKO1lBQ0Y7UUFDRjtRQUNBLE1BQU1LLHFDQUFxQ04sVUFBVXJFLE1BQU0sS0FBSyxJQUFJSCxZQUFZQSxVQUFVNkIsU0FBUyxDQUFDNkM7UUFDcEcsTUFBTUssdUJBQXVCRCxtQ0FBbUNFLFVBQVUsQ0FBQ2Y7UUFDM0UsTUFBTWdCLGdCQUFnQkYsdUJBQXVCRCxtQ0FBbUNqRCxTQUFTLENBQUMsS0FBS2lEO1FBQy9GLE1BQU1JLCtCQUErQlAsMkJBQTJCQSwwQkFBMEJELGdCQUFnQkMsMEJBQTBCRCxnQkFBZ0J4RDtRQUNwSixPQUFPO1lBQ0xzRDtZQUNBTztZQUNBRTtZQUNBQztRQUNGO0lBQ0Y7QUFDRjtBQUNBOzs7O0NBSUMsR0FDRCxTQUFTQyxjQUFjWCxTQUFTO0lBQzlCLElBQUlBLFVBQVVyRSxNQUFNLElBQUksR0FBRztRQUN6QixPQUFPcUU7SUFDVDtJQUNBLE1BQU1ZLGtCQUFrQixFQUFFO0lBQzFCLElBQUlDLG9CQUFvQixFQUFFO0lBQzFCYixVQUFVakMsT0FBTyxDQUFDK0MsQ0FBQUE7UUFDaEIsTUFBTUMscUJBQXFCRCxRQUFRLENBQUMsRUFBRSxLQUFLO1FBQzNDLElBQUlDLG9CQUFvQjtZQUN0QkgsZ0JBQWdCdEMsSUFBSSxJQUFJdUMsa0JBQWtCRyxJQUFJLElBQUlGO1lBQ2xERCxvQkFBb0IsRUFBRTtRQUN4QixPQUFPO1lBQ0xBLGtCQUFrQnZDLElBQUksQ0FBQ3dDO1FBQ3pCO0lBQ0Y7SUFDQUYsZ0JBQWdCdEMsSUFBSSxJQUFJdUMsa0JBQWtCRyxJQUFJO0lBQzlDLE9BQU9KO0FBQ1Q7QUFDQSxTQUFTSyxrQkFBa0IvRixNQUFNO0lBQy9CLE9BQU87UUFDTG9FLE9BQU9ILGVBQWVqRSxPQUFPbUUsU0FBUztRQUN0Q1UsZ0JBQWdCTCxxQkFBcUJ4RTtRQUNyQyxHQUFHRCxpQkFBaUJDLE9BQU87SUFDN0I7QUFDRjtBQUNBLE1BQU1nRyxzQkFBc0I7QUFDNUIsU0FBU0MsZUFBZUMsU0FBUyxFQUFFQyxXQUFXO0lBQzVDLE1BQU0sRUFDSnRCLGNBQWMsRUFDZHhFLGVBQWUsRUFDZlEsMkJBQTJCLEVBQzVCLEdBQUdzRjtJQUNKOzs7Ozs7R0FNQyxHQUNELE1BQU1DLHdCQUF3QixJQUFJQztJQUNsQyxPQUFPSCxVQUFVSSxJQUFJLEdBQUc5RixLQUFLLENBQUN3RixxQkFBcUJuQyxHQUFHLENBQUMwQyxDQUFBQTtRQUNyRCxNQUFNLEVBQ0p6QixTQUFTLEVBQ1RPLG9CQUFvQixFQUNwQkUsYUFBYSxFQUNiQyw0QkFBNEIsRUFDN0IsR0FBR1gsZUFBZTBCO1FBQ25CLElBQUl6RixlQUFlVCxnQkFBZ0JtRiwrQkFBK0JELGNBQWNwRCxTQUFTLENBQUMsR0FBR3FELGdDQUFnQ0Q7UUFDN0gsSUFBSXhFLHFCQUFxQnlGLFFBQVFoQjtRQUNqQyxJQUFJLENBQUMxRSxjQUFjO1lBQ2pCLElBQUksQ0FBQzBFLDhCQUE4QjtnQkFDakMsT0FBTztvQkFDTGlCLGlCQUFpQjtvQkFDakJGO2dCQUNGO1lBQ0Y7WUFDQXpGLGVBQWVULGdCQUFnQmtGO1lBQy9CLElBQUksQ0FBQ3pFLGNBQWM7Z0JBQ2pCLE9BQU87b0JBQ0wyRixpQkFBaUI7b0JBQ2pCRjtnQkFDRjtZQUNGO1lBQ0F4RixxQkFBcUI7UUFDdkI7UUFDQSxNQUFNMkYsa0JBQWtCakIsY0FBY1gsV0FBV25ELElBQUksQ0FBQztRQUN0RCxNQUFNZ0YsYUFBYXRCLHVCQUF1QnFCLGtCQUFrQm5DLHFCQUFxQm1DO1FBQ2pGLE9BQU87WUFDTEQsaUJBQWlCO1lBQ2pCRTtZQUNBN0Y7WUFDQXlGO1lBQ0F4RjtRQUNGO0lBQ0YsR0FBRzZGLE9BQU8sRUFDViwwRkFBMEY7S0FDekZDLE1BQU0sQ0FBQ0MsQ0FBQUE7UUFDTixJQUFJLENBQUNBLE9BQU9MLGVBQWUsRUFBRTtZQUMzQixPQUFPO1FBQ1Q7UUFDQSxNQUFNLEVBQ0pFLFVBQVUsRUFDVjdGLFlBQVksRUFDWkMsa0JBQWtCLEVBQ25CLEdBQUcrRjtRQUNKLE1BQU1DLFVBQVVKLGFBQWE3RjtRQUM3QixJQUFJc0Ysc0JBQXNCM0MsR0FBRyxDQUFDc0QsVUFBVTtZQUN0QyxPQUFPO1FBQ1Q7UUFDQVgsc0JBQXNCWSxHQUFHLENBQUNEO1FBQzFCbEcsNEJBQTRCQyxjQUFjQyxvQkFBb0I4QixPQUFPLENBQUNvRSxDQUFBQSxRQUFTYixzQkFBc0JZLEdBQUcsQ0FBQ0wsYUFBYU07UUFDdEgsT0FBTztJQUNULEdBQUdMLE9BQU8sR0FBRy9DLEdBQUcsQ0FBQ2lELENBQUFBLFNBQVVBLE9BQU9QLGlCQUFpQixFQUFFNUUsSUFBSSxDQUFDO0FBQzVEO0FBRUE7Ozs7Ozs7O0NBUUMsR0FDRCxTQUFTdUY7SUFDUCxJQUFJaEMsUUFBUTtJQUNaLElBQUlpQztJQUNKLElBQUlDO0lBQ0osSUFBSUMsU0FBUztJQUNiLE1BQU9uQyxRQUFRb0MsVUFBVTdHLE1BQU0sQ0FBRTtRQUMvQixJQUFJMEcsV0FBV0csU0FBUyxDQUFDcEMsUUFBUSxFQUFFO1lBQ2pDLElBQUlrQyxnQkFBZ0JHLFFBQVFKLFdBQVc7Z0JBQ3JDRSxVQUFXQSxDQUFBQSxVQUFVLEdBQUU7Z0JBQ3ZCQSxVQUFVRDtZQUNaO1FBQ0Y7SUFDRjtJQUNBLE9BQU9DO0FBQ1Q7QUFDQSxTQUFTRSxRQUFRQyxHQUFHO0lBQ2xCLElBQUksT0FBT0EsUUFBUSxVQUFVO1FBQzNCLE9BQU9BO0lBQ1Q7SUFDQSxJQUFJSjtJQUNKLElBQUlDLFNBQVM7SUFDYixJQUFLLElBQUlJLElBQUksR0FBR0EsSUFBSUQsSUFBSS9HLE1BQU0sRUFBRWdILElBQUs7UUFDbkMsSUFBSUQsR0FBRyxDQUFDQyxFQUFFLEVBQUU7WUFDVixJQUFJTCxnQkFBZ0JHLFFBQVFDLEdBQUcsQ0FBQ0MsRUFBRSxHQUFHO2dCQUNuQ0osVUFBV0EsQ0FBQUEsVUFBVSxHQUFFO2dCQUN2QkEsVUFBVUQ7WUFDWjtRQUNGO0lBQ0Y7SUFDQSxPQUFPQztBQUNUO0FBQ0EsU0FBU0ssb0JBQW9CQyxpQkFBaUIsRUFBRSxHQUFHQyxnQkFBZ0I7SUFDakUsSUFBSXpCO0lBQ0osSUFBSTBCO0lBQ0osSUFBSUM7SUFDSixJQUFJQyxpQkFBaUJDO0lBQ3JCLFNBQVNBLGtCQUFrQjlCLFNBQVM7UUFDbEMsTUFBTWxHLFNBQVM0SCxpQkFBaUJLLE1BQU0sQ0FBQyxDQUFDQyxnQkFBZ0JDLHNCQUF3QkEsb0JBQW9CRCxpQkFBaUJQO1FBQ3JIeEIsY0FBY0osa0JBQWtCL0Y7UUFDaEM2SCxXQUFXMUIsWUFBWS9CLEtBQUssQ0FBQy9DLEdBQUc7UUFDaEN5RyxXQUFXM0IsWUFBWS9CLEtBQUssQ0FBQ1YsR0FBRztRQUNoQ3FFLGlCQUFpQks7UUFDakIsT0FBT0EsY0FBY2xDO0lBQ3ZCO0lBQ0EsU0FBU2tDLGNBQWNsQyxTQUFTO1FBQzlCLE1BQU1tQyxlQUFlUixTQUFTM0I7UUFDOUIsSUFBSW1DLGNBQWM7WUFDaEIsT0FBT0E7UUFDVDtRQUNBLE1BQU1DLFNBQVNyQyxlQUFlQyxXQUFXQztRQUN6QzJCLFNBQVM1QixXQUFXb0M7UUFDcEIsT0FBT0E7SUFDVDtJQUNBLE9BQU8sU0FBU0M7UUFDZCxPQUFPUixlQUFlYixPQUFPc0IsS0FBSyxDQUFDLE1BQU1sQjtJQUMzQztBQUNGO0FBQ0EsU0FBU21CLFVBQVVwRixHQUFHO0lBQ3BCLE1BQU1xRixjQUFjckcsQ0FBQUEsUUFBU0EsS0FBSyxDQUFDZ0IsSUFBSSxJQUFJLEVBQUU7SUFDN0NxRixZQUFZdkYsYUFBYSxHQUFHO0lBQzVCLE9BQU91RjtBQUNUO0FBQ0EsTUFBTUMsc0JBQXNCO0FBQzVCLE1BQU1DLGdCQUFnQjtBQUN0QixNQUFNQyxnQkFBZ0IsV0FBVyxHQUFFLElBQUl4QyxJQUFJO0lBQUM7SUFBTTtJQUFRO0NBQVM7QUFDbkUsTUFBTXlDLGtCQUFrQjtBQUN4QixNQUFNQyxrQkFBa0I7QUFDeEIsTUFBTUMscUJBQXFCO0FBQzNCLGlHQUFpRztBQUNqRyxNQUFNQyxjQUFjO0FBQ3BCLE1BQU1DLGFBQWE7QUFDbkIsU0FBU0MsU0FBU25GLEtBQUs7SUFDckIsT0FBT29GLFNBQVNwRixVQUFVNkUsY0FBY3BGLEdBQUcsQ0FBQ08sVUFBVTRFLGNBQWM3RyxJQUFJLENBQUNpQztBQUMzRTtBQUNBLFNBQVNxRixrQkFBa0JyRixLQUFLO0lBQzlCLE9BQU9zRixvQkFBb0J0RixPQUFPLFVBQVV1RjtBQUM5QztBQUNBLFNBQVNILFNBQVNwRixLQUFLO0lBQ3JCLE9BQU93QyxRQUFReEMsVUFBVSxDQUFDd0YsT0FBT0MsS0FBSyxDQUFDRCxPQUFPeEY7QUFDaEQ7QUFDQSxTQUFTMEYsa0JBQWtCMUYsS0FBSztJQUM5QixPQUFPc0Ysb0JBQW9CdEYsT0FBTyxVQUFVb0Y7QUFDOUM7QUFDQSxTQUFTTyxVQUFVM0YsS0FBSztJQUN0QixPQUFPd0MsUUFBUXhDLFVBQVV3RixPQUFPRyxTQUFTLENBQUNILE9BQU94RjtBQUNuRDtBQUNBLFNBQVM0RixVQUFVNUYsS0FBSztJQUN0QixPQUFPQSxNQUFNNkYsUUFBUSxDQUFDLFFBQVFULFNBQVNwRixNQUFNekMsS0FBSyxDQUFDLEdBQUcsQ0FBQztBQUN6RDtBQUNBLFNBQVN1SSxpQkFBaUI5RixLQUFLO0lBQzdCLE9BQU8yRSxvQkFBb0I1RyxJQUFJLENBQUNpQztBQUNsQztBQUNBLFNBQVMrRixhQUFhL0YsS0FBSztJQUN6QixPQUFPOEUsZ0JBQWdCL0csSUFBSSxDQUFDaUM7QUFDOUI7QUFDQSxNQUFNZ0csYUFBYSxXQUFXLEdBQUUsSUFBSTNELElBQUk7SUFBQztJQUFVO0lBQVE7Q0FBYTtBQUN4RSxTQUFTNEQsZ0JBQWdCakcsS0FBSztJQUM1QixPQUFPc0Ysb0JBQW9CdEYsT0FBT2dHLFlBQVlFO0FBQ2hEO0FBQ0EsU0FBU0Msb0JBQW9CbkcsS0FBSztJQUNoQyxPQUFPc0Ysb0JBQW9CdEYsT0FBTyxZQUFZa0c7QUFDaEQ7QUFDQSxNQUFNRSxjQUFjLFdBQVcsR0FBRSxJQUFJL0QsSUFBSTtJQUFDO0lBQVM7Q0FBTTtBQUN6RCxTQUFTZ0UsaUJBQWlCckcsS0FBSztJQUM3QixPQUFPc0Ysb0JBQW9CdEYsT0FBT29HLGFBQWFFO0FBQ2pEO0FBQ0EsU0FBU0Msa0JBQWtCdkcsS0FBSztJQUM5QixPQUFPc0Ysb0JBQW9CdEYsT0FBTyxJQUFJd0c7QUFDeEM7QUFDQSxTQUFTQztJQUNQLE9BQU87QUFDVDtBQUNBLFNBQVNuQixvQkFBb0J0RixLQUFLLEVBQUUwRyxLQUFLLEVBQUVDLFNBQVM7SUFDbEQsTUFBTXJDLFNBQVNLLG9CQUFvQjFHLElBQUksQ0FBQytCO0lBQ3hDLElBQUlzRSxRQUFRO1FBQ1YsSUFBSUEsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNiLE9BQU8sT0FBT29DLFVBQVUsV0FBV3BDLE1BQU0sQ0FBQyxFQUFFLEtBQUtvQyxRQUFRQSxNQUFNakgsR0FBRyxDQUFDNkUsTUFBTSxDQUFDLEVBQUU7UUFDOUU7UUFDQSxPQUFPcUMsVUFBVXJDLE1BQU0sQ0FBQyxFQUFFO0lBQzVCO0lBQ0EsT0FBTztBQUNUO0FBQ0EsU0FBU2lCLGFBQWF2RixLQUFLO0lBQ3pCLHVKQUF1SjtJQUN2SixrRkFBa0Y7SUFDbEYscUdBQXFHO0lBQ3JHLE9BQU8rRSxnQkFBZ0JoSCxJQUFJLENBQUNpQyxVQUFVLENBQUNnRixtQkFBbUJqSCxJQUFJLENBQUNpQztBQUNqRTtBQUNBLFNBQVNrRztJQUNQLE9BQU87QUFDVDtBQUNBLFNBQVNNLFNBQVN4RyxLQUFLO0lBQ3JCLE9BQU9pRixZQUFZbEgsSUFBSSxDQUFDaUM7QUFDMUI7QUFDQSxTQUFTc0csUUFBUXRHLEtBQUs7SUFDcEIsT0FBT2tGLFdBQVduSCxJQUFJLENBQUNpQztBQUN6QjtBQUNBLE1BQU12QyxhQUFhLFdBQVcsR0FBRWlCLE9BQU9rSSxjQUFjLENBQUM7SUFDcERDLFdBQVc7SUFDWEo7SUFDQUo7SUFDQWhCO0lBQ0FLO0lBQ0FTO0lBQ0FJO0lBQ0FOO0lBQ0FIO0lBQ0FIO0lBQ0FSO0lBQ0FDO0lBQ0FRO0lBQ0FHO0FBQ0YsR0FBR2UsT0FBT0MsV0FBVyxFQUFFO0lBQ3JCL0csT0FBTztBQUNUO0FBQ0EsU0FBU2dIO0lBQ1AsTUFBTUMsU0FBU3hDLFVBQVU7SUFDekIsTUFBTXlDLFVBQVV6QyxVQUFVO0lBQzFCLE1BQU0wQyxPQUFPMUMsVUFBVTtJQUN2QixNQUFNMkMsYUFBYTNDLFVBQVU7SUFDN0IsTUFBTTRDLGNBQWM1QyxVQUFVO0lBQzlCLE1BQU02QyxlQUFlN0MsVUFBVTtJQUMvQixNQUFNOEMsZ0JBQWdCOUMsVUFBVTtJQUNoQyxNQUFNK0MsY0FBYy9DLFVBQVU7SUFDOUIsTUFBTWdELFdBQVdoRCxVQUFVO0lBQzNCLE1BQU1pRCxZQUFZakQsVUFBVTtJQUM1QixNQUFNa0QsWUFBWWxELFVBQVU7SUFDNUIsTUFBTW1ELFNBQVNuRCxVQUFVO0lBQ3pCLE1BQU1vRCxNQUFNcEQsVUFBVTtJQUN0QixNQUFNcUQscUJBQXFCckQsVUFBVTtJQUNyQyxNQUFNc0QsNkJBQTZCdEQsVUFBVTtJQUM3QyxNQUFNdUQsUUFBUXZELFVBQVU7SUFDeEIsTUFBTXdELFNBQVN4RCxVQUFVO0lBQ3pCLE1BQU15RCxVQUFVekQsVUFBVTtJQUMxQixNQUFNMEQsVUFBVTFELFVBQVU7SUFDMUIsTUFBTTJELFdBQVczRCxVQUFVO0lBQzNCLE1BQU00RCxRQUFRNUQsVUFBVTtJQUN4QixNQUFNNkQsUUFBUTdELFVBQVU7SUFDeEIsTUFBTThELE9BQU85RCxVQUFVO0lBQ3ZCLE1BQU0rRCxRQUFRL0QsVUFBVTtJQUN4QixNQUFNZ0UsWUFBWWhFLFVBQVU7SUFDNUIsTUFBTWlFLGdCQUFnQixJQUFNO1lBQUM7WUFBUTtZQUFXO1NBQU87SUFDdkQsTUFBTUMsY0FBYyxJQUFNO1lBQUM7WUFBUTtZQUFVO1lBQVE7WUFBVztTQUFTO0lBQ3pFLE1BQU1DLGlDQUFpQyxJQUFNO1lBQUM7WUFBUTlDO1lBQWtCb0I7U0FBUTtJQUNoRixNQUFNMkIsMEJBQTBCLElBQU07WUFBQy9DO1lBQWtCb0I7U0FBUTtJQUNqRSxNQUFNNEIsaUNBQWlDLElBQU07WUFBQztZQUFJM0Q7WUFBVUU7U0FBa0I7SUFDOUUsTUFBTTBELGdDQUFnQyxJQUFNO1lBQUM7WUFBUTNEO1lBQVVVO1NBQWlCO0lBQ2hGLE1BQU1rRCxlQUFlLElBQU07WUFBQztZQUFVO1lBQVU7WUFBUTtZQUFlO1lBQVk7WUFBUztZQUFnQjtZQUFhO1NBQU07SUFDL0gsTUFBTUMsZ0JBQWdCLElBQU07WUFBQztZQUFTO1lBQVU7WUFBVTtZQUFVO1NBQU87SUFDM0UsTUFBTUMsZ0JBQWdCLElBQU07WUFBQztZQUFVO1lBQVk7WUFBVTtZQUFXO1lBQVU7WUFBVztZQUFlO1lBQWM7WUFBYztZQUFjO1lBQWM7WUFBYTtZQUFPO1lBQWM7WUFBUztZQUFjO1NBQWU7SUFDNU8sTUFBTUMsV0FBVyxJQUFNO1lBQUM7WUFBUztZQUFPO1lBQVU7WUFBVztZQUFVO1lBQVU7U0FBVTtJQUMzRixNQUFNQyxrQkFBa0IsSUFBTTtZQUFDO1lBQUk7WUFBS3REO1NBQWlCO0lBQ3pELE1BQU11RCxZQUFZLElBQU07WUFBQztZQUFRO1lBQVM7WUFBTztZQUFjO1lBQVE7WUFBUTtZQUFTO1NBQVM7SUFDakcsTUFBTUMsWUFBWSxJQUFNO1lBQUNsRTtZQUFVTTtTQUFrQjtJQUNyRCxNQUFNNkQsd0JBQXdCLElBQU07WUFBQ25FO1lBQVVVO1NBQWlCO0lBQ2hFLE9BQU87UUFDTDNGLFdBQVc7UUFDWE0sV0FBVztRQUNYcEMsT0FBTztZQUNMNEksUUFBUTtnQkFBQ1I7YUFBTTtZQUNmUyxTQUFTO2dCQUFDL0I7Z0JBQVVFO2FBQWtCO1lBQ3RDOEIsTUFBTTtnQkFBQztnQkFBUTtnQkFBSXBCO2dCQUFjRDthQUFpQjtZQUNsRHNCLFlBQVlrQztZQUNaakMsYUFBYTtnQkFBQ0o7YUFBTztZQUNyQkssY0FBYztnQkFBQztnQkFBUTtnQkFBSTtnQkFBUXZCO2dCQUFjRDthQUFpQjtZQUNsRXlCLGVBQWVzQjtZQUNmckIsYUFBYXNCO1lBQ2JyQixVQUFVNkI7WUFDVjVCLFdBQVcwQjtZQUNYekIsV0FBVzRCO1lBQ1gzQixRQUFRd0I7WUFDUnZCLEtBQUtnQjtZQUNMZixvQkFBb0I7Z0JBQUNiO2FBQU87WUFDNUJjLDRCQUE0QjtnQkFBQ25DO2dCQUFXUDthQUFrQjtZQUMxRDJDLE9BQU9ZO1lBQ1BYLFFBQVFXO1lBQ1JWLFNBQVNvQjtZQUNUbkIsU0FBU1U7WUFDVFQsVUFBVWtCO1lBQ1ZqQixPQUFPaUI7WUFDUGhCLE9BQU9jO1lBQ1BiLE1BQU1nQjtZQUNOZixPQUFPSztZQUNQSixXQUFXSTtRQUNiO1FBQ0FqSyxhQUFhO1lBQ1gsU0FBUztZQUNUOzs7T0FHQyxHQUNENEssUUFBUTtnQkFBQztvQkFDUEEsUUFBUTt3QkFBQzt3QkFBUTt3QkFBVTt3QkFBUzFEO3FCQUFpQjtnQkFDdkQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNEMkQsV0FBVztnQkFBQzthQUFZO1lBQ3hCOzs7T0FHQyxHQUNEQyxTQUFTO2dCQUFDO29CQUNSQSxTQUFTO3dCQUFDM0Q7cUJBQWE7Z0JBQ3pCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxlQUFlO2dCQUFDO29CQUNkLGVBQWVzRDtnQkFDakI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGdCQUFnQjtnQkFBQztvQkFDZixnQkFBZ0JBO2dCQUNsQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZ0JBQWdCO2dCQUFDO29CQUNmLGdCQUFnQjt3QkFBQzt3QkFBUTt3QkFBUzt3QkFBYztxQkFBZTtnQkFDakU7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakIsa0JBQWtCO3dCQUFDO3dCQUFTO3FCQUFRO2dCQUN0QzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RNLEtBQUs7Z0JBQUM7b0JBQ0pBLEtBQUs7d0JBQUM7d0JBQVU7cUJBQVU7Z0JBQzVCO2FBQUU7WUFDRjs7O09BR0MsR0FDREMsU0FBUztnQkFBQztnQkFBUztnQkFBZ0I7Z0JBQVU7Z0JBQVE7Z0JBQWU7Z0JBQVM7Z0JBQWdCO2dCQUFpQjtnQkFBYztnQkFBZ0I7Z0JBQXNCO2dCQUFzQjtnQkFBc0I7Z0JBQW1CO2dCQUFhO2dCQUFhO2dCQUFRO2dCQUFlO2dCQUFZO2dCQUFhO2FBQVM7WUFDcFQ7OztPQUdDLEdBQ0RDLE9BQU87Z0JBQUM7b0JBQ05BLE9BQU87d0JBQUM7d0JBQVM7d0JBQVE7d0JBQVE7d0JBQVM7cUJBQU07Z0JBQ2xEO2FBQUU7WUFDRjs7O09BR0MsR0FDREMsT0FBTztnQkFBQztvQkFDTkEsT0FBTzt3QkFBQzt3QkFBUTt3QkFBUzt3QkFBUTt3QkFBUTt3QkFBUztxQkFBTTtnQkFDMUQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNEQyxXQUFXO2dCQUFDO2dCQUFXO2FBQWlCO1lBQ3hDOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2JDLFFBQVE7d0JBQUM7d0JBQVc7d0JBQVM7d0JBQVE7d0JBQVE7cUJBQWE7Z0JBQzVEO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxtQkFBbUI7Z0JBQUM7b0JBQ2xCQSxRQUFROzJCQUFJaEI7d0JBQWdCbEQ7cUJBQWlCO2dCQUMvQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RtRSxVQUFVO2dCQUFDO29CQUNUQSxVQUFVdEI7Z0JBQ1o7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsY0FBY0E7Z0JBQ2hCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLGNBQWNBO2dCQUNoQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0R1QixZQUFZO2dCQUFDO29CQUNYQSxZQUFZeEI7Z0JBQ2Q7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGdCQUFnQjtnQkFBQztvQkFDZixnQkFBZ0JBO2dCQUNsQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZ0JBQWdCO2dCQUFDO29CQUNmLGdCQUFnQkE7Z0JBQ2xCO2FBQUU7WUFDRjs7O09BR0MsR0FDRHlCLFVBQVU7Z0JBQUM7Z0JBQVU7Z0JBQVM7Z0JBQVk7Z0JBQVk7YUFBUztZQUMvRDs7O09BR0MsR0FDRG5DLE9BQU87Z0JBQUM7b0JBQ05BLE9BQU87d0JBQUNBO3FCQUFNO2dCQUNoQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsV0FBVztnQkFBQztvQkFDVixXQUFXO3dCQUFDQTtxQkFBTTtnQkFDcEI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELFdBQVc7Z0JBQUM7b0JBQ1YsV0FBVzt3QkFBQ0E7cUJBQU07Z0JBQ3BCO2FBQUU7WUFDRjs7O09BR0MsR0FDRG9DLE9BQU87Z0JBQUM7b0JBQ05BLE9BQU87d0JBQUNwQztxQkFBTTtnQkFDaEI7YUFBRTtZQUNGOzs7T0FHQyxHQUNEcUMsS0FBSztnQkFBQztvQkFDSkEsS0FBSzt3QkFBQ3JDO3FCQUFNO2dCQUNkO2FBQUU7WUFDRjs7O09BR0MsR0FDRHNDLEtBQUs7Z0JBQUM7b0JBQ0pBLEtBQUs7d0JBQUN0QztxQkFBTTtnQkFDZDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0R1QyxPQUFPO2dCQUFDO29CQUNOQSxPQUFPO3dCQUFDdkM7cUJBQU07Z0JBQ2hCO2FBQUU7WUFDRjs7O09BR0MsR0FDRHdDLFFBQVE7Z0JBQUM7b0JBQ1BBLFFBQVE7d0JBQUN4QztxQkFBTTtnQkFDakI7YUFBRTtZQUNGOzs7T0FHQyxHQUNEeUMsTUFBTTtnQkFBQztvQkFDTEEsTUFBTTt3QkFBQ3pDO3FCQUFNO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRDBDLFlBQVk7Z0JBQUM7Z0JBQVc7Z0JBQWE7YUFBVztZQUNoRDs7O09BR0MsR0FDREMsR0FBRztnQkFBQztvQkFDRkEsR0FBRzt3QkFBQzt3QkFBUWhGO3dCQUFXRztxQkFBaUI7Z0JBQzFDO2FBQUU7WUFDRixtQkFBbUI7WUFDbkI7OztPQUdDLEdBQ0Q4RSxPQUFPO2dCQUFDO29CQUNOQSxPQUFPaEM7Z0JBQ1Q7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakJpQyxNQUFNO3dCQUFDO3dCQUFPO3dCQUFlO3dCQUFPO3FCQUFjO2dCQUNwRDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWkEsTUFBTTt3QkFBQzt3QkFBUTt3QkFBZ0I7cUJBQVM7Z0JBQzFDO2FBQUU7WUFDRjs7O09BR0MsR0FDREEsTUFBTTtnQkFBQztvQkFDTEEsTUFBTTt3QkFBQzt3QkFBSzt3QkFBUTt3QkFBVzt3QkFBUS9FO3FCQUFpQjtnQkFDMUQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNEZ0YsTUFBTTtnQkFBQztvQkFDTEEsTUFBTTFCO2dCQUNSO2FBQUU7WUFDRjs7O09BR0MsR0FDRDJCLFFBQVE7Z0JBQUM7b0JBQ1BBLFFBQVEzQjtnQkFDVjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Q0QixPQUFPO2dCQUFDO29CQUNOQSxPQUFPO3dCQUFDO3dCQUFTO3dCQUFRO3dCQUFRckY7d0JBQVdHO3FCQUFpQjtnQkFDL0Q7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGFBQWE7Z0JBQUM7b0JBQ1osYUFBYTt3QkFBQ1c7cUJBQU07Z0JBQ3RCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxpQkFBaUI7Z0JBQUM7b0JBQ2hCd0UsS0FBSzt3QkFBQzt3QkFBUTs0QkFDWkMsTUFBTTtnQ0FBQztnQ0FBUXZGO2dDQUFXRzs2QkFBaUI7d0JBQzdDO3dCQUFHQTtxQkFBaUI7Z0JBQ3RCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFpRDtnQkFDZjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsV0FBVztnQkFBQztvQkFDVixXQUFXQTtnQkFDYjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWixhQUFhO3dCQUFDdEM7cUJBQU07Z0JBQ3RCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxpQkFBaUI7Z0JBQUM7b0JBQ2hCMEUsS0FBSzt3QkFBQzt3QkFBUTs0QkFDWkQsTUFBTTtnQ0FBQ3ZGO2dDQUFXRzs2QkFBaUI7d0JBQ3JDO3dCQUFHQTtxQkFBaUI7Z0JBQ3RCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFpRDtnQkFDZjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsV0FBVztnQkFBQztvQkFDVixXQUFXQTtnQkFDYjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWixhQUFhO3dCQUFDO3dCQUFPO3dCQUFPO3dCQUFTO3dCQUFhO3FCQUFZO2dCQUNoRTthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWixhQUFhO3dCQUFDO3dCQUFRO3dCQUFPO3dCQUFPO3dCQUFNakQ7cUJBQWlCO2dCQUM3RDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWixhQUFhO3dCQUFDO3dCQUFRO3dCQUFPO3dCQUFPO3dCQUFNQTtxQkFBaUI7Z0JBQzdEO2FBQUU7WUFDRjs7O09BR0MsR0FDRCtCLEtBQUs7Z0JBQUM7b0JBQ0pBLEtBQUs7d0JBQUNBO3FCQUFJO2dCQUNaO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxTQUFTO2dCQUFDO29CQUNSLFNBQVM7d0JBQUNBO3FCQUFJO2dCQUNoQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsU0FBUztnQkFBQztvQkFDUixTQUFTO3dCQUFDQTtxQkFBSTtnQkFDaEI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELG1CQUFtQjtnQkFBQztvQkFDbEJ1RCxTQUFTO3dCQUFDOzJCQUFhakM7cUJBQVc7Z0JBQ3BDO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxpQkFBaUI7Z0JBQUM7b0JBQ2hCLGlCQUFpQjt3QkFBQzt3QkFBUzt3QkFBTzt3QkFBVTtxQkFBVTtnQkFDeEQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGdCQUFnQjtnQkFBQztvQkFDZixnQkFBZ0I7d0JBQUM7d0JBQVE7d0JBQVM7d0JBQU87d0JBQVU7cUJBQVU7Z0JBQy9EO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxpQkFBaUI7Z0JBQUM7b0JBQ2hCa0MsU0FBUzt3QkFBQzsyQkFBYWxDO3dCQUFZO3FCQUFXO2dCQUNoRDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZUFBZTtnQkFBQztvQkFDZG1DLE9BQU87d0JBQUM7d0JBQVM7d0JBQU87d0JBQVU7d0JBQVk7cUJBQVU7Z0JBQzFEO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiQyxNQUFNO3dCQUFDO3dCQUFRO3dCQUFTO3dCQUFPO3dCQUFVO3dCQUFXO3FCQUFXO2dCQUNqRTthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsaUJBQWlCO2dCQUFDO29CQUNoQixpQkFBaUI7MkJBQUlwQzt3QkFBWTtxQkFBVztnQkFDOUM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGVBQWU7Z0JBQUM7b0JBQ2QsZUFBZTt3QkFBQzt3QkFBUzt3QkFBTzt3QkFBVTt3QkFBWTtxQkFBVTtnQkFDbEU7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsY0FBYzt3QkFBQzt3QkFBUTt3QkFBUzt3QkFBTzt3QkFBVTtxQkFBVTtnQkFDN0Q7YUFBRTtZQUNGLFVBQVU7WUFDVjs7O09BR0MsR0FDRHFDLEdBQUc7Z0JBQUM7b0JBQ0ZBLEdBQUc7d0JBQUNyRDtxQkFBUTtnQkFDZDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RzRCxJQUFJO2dCQUFDO29CQUNIQSxJQUFJO3dCQUFDdEQ7cUJBQVE7Z0JBQ2Y7YUFBRTtZQUNGOzs7T0FHQyxHQUNEdUQsSUFBSTtnQkFBQztvQkFDSEEsSUFBSTt3QkFBQ3ZEO3FCQUFRO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRHdELElBQUk7Z0JBQUM7b0JBQ0hBLElBQUk7d0JBQUN4RDtxQkFBUTtnQkFDZjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0R5RCxJQUFJO2dCQUFDO29CQUNIQSxJQUFJO3dCQUFDekQ7cUJBQVE7Z0JBQ2Y7YUFBRTtZQUNGOzs7T0FHQyxHQUNEMEQsSUFBSTtnQkFBQztvQkFDSEEsSUFBSTt3QkFBQzFEO3FCQUFRO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRDJELElBQUk7Z0JBQUM7b0JBQ0hBLElBQUk7d0JBQUMzRDtxQkFBUTtnQkFDZjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Q0RCxJQUFJO2dCQUFDO29CQUNIQSxJQUFJO3dCQUFDNUQ7cUJBQVE7Z0JBQ2Y7YUFBRTtZQUNGOzs7T0FHQyxHQUNENkQsSUFBSTtnQkFBQztvQkFDSEEsSUFBSTt3QkFBQzdEO3FCQUFRO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRDhELEdBQUc7Z0JBQUM7b0JBQ0ZBLEdBQUc7d0JBQUNoRTtxQkFBTztnQkFDYjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RpRSxJQUFJO2dCQUFDO29CQUNIQSxJQUFJO3dCQUFDakU7cUJBQU87Z0JBQ2Q7YUFBRTtZQUNGOzs7T0FHQyxHQUNEa0UsSUFBSTtnQkFBQztvQkFDSEEsSUFBSTt3QkFBQ2xFO3FCQUFPO2dCQUNkO2FBQUU7WUFDRjs7O09BR0MsR0FDRG1FLElBQUk7Z0JBQUM7b0JBQ0hBLElBQUk7d0JBQUNuRTtxQkFBTztnQkFDZDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RvRSxJQUFJO2dCQUFDO29CQUNIQSxJQUFJO3dCQUFDcEU7cUJBQU87Z0JBQ2Q7YUFBRTtZQUNGOzs7T0FHQyxHQUNEcUUsSUFBSTtnQkFBQztvQkFDSEEsSUFBSTt3QkFBQ3JFO3FCQUFPO2dCQUNkO2FBQUU7WUFDRjs7O09BR0MsR0FDRHNFLElBQUk7Z0JBQUM7b0JBQ0hBLElBQUk7d0JBQUN0RTtxQkFBTztnQkFDZDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0R1RSxJQUFJO2dCQUFDO29CQUNIQSxJQUFJO3dCQUFDdkU7cUJBQU87Z0JBQ2Q7YUFBRTtZQUNGOzs7T0FHQyxHQUNEd0UsSUFBSTtnQkFBQztvQkFDSEEsSUFBSTt3QkFBQ3hFO3FCQUFPO2dCQUNkO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxXQUFXO2dCQUFDO29CQUNWLFdBQVc7d0JBQUNPO3FCQUFNO2dCQUNwQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsbUJBQW1CO2dCQUFDO2FBQWtCO1lBQ3RDOzs7T0FHQyxHQUNELFdBQVc7Z0JBQUM7b0JBQ1YsV0FBVzt3QkFBQ0E7cUJBQU07Z0JBQ3BCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxtQkFBbUI7Z0JBQUM7YUFBa0I7WUFDdEMsU0FBUztZQUNUOzs7T0FHQyxHQUNEa0UsR0FBRztnQkFBQztvQkFDRkEsR0FBRzt3QkFBQzt3QkFBUTt3QkFBTzt3QkFBTzt3QkFBTzt3QkFBTzt3QkFBTzt3QkFBTzVHO3dCQUFrQm9CO3FCQUFRO2dCQUNsRjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsU0FBUztnQkFBQztvQkFDUixTQUFTO3dCQUFDcEI7d0JBQWtCb0I7d0JBQVM7d0JBQU87d0JBQU87cUJBQU07Z0JBQzNEO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxTQUFTO2dCQUFDO29CQUNSLFNBQVM7d0JBQUNwQjt3QkFBa0JvQjt3QkFBUzt3QkFBUTt3QkFBUTt3QkFBTzt3QkFBTzt3QkFBTzt3QkFBUzs0QkFDakZ5RixRQUFRO2dDQUFDNUc7NkJBQWE7d0JBQ3hCO3dCQUFHQTtxQkFBYTtnQkFDbEI7YUFBRTtZQUNGOzs7T0FHQyxHQUNENkcsR0FBRztnQkFBQztvQkFDRkEsR0FBRzt3QkFBQzlHO3dCQUFrQm9CO3dCQUFTO3dCQUFRO3dCQUFPO3dCQUFPO3dCQUFPO3dCQUFPO3dCQUFPO3FCQUFNO2dCQUNsRjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsU0FBUztnQkFBQztvQkFDUixTQUFTO3dCQUFDcEI7d0JBQWtCb0I7d0JBQVM7d0JBQU87d0JBQU87d0JBQU87d0JBQU87d0JBQU87cUJBQU07Z0JBQ2hGO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxTQUFTO2dCQUFDO29CQUNSLFNBQVM7d0JBQUNwQjt3QkFBa0JvQjt3QkFBUzt3QkFBTzt3QkFBTzt3QkFBTzt3QkFBTzt3QkFBTztxQkFBTTtnQkFDaEY7YUFBRTtZQUNGOzs7T0FHQyxHQUNEMkYsTUFBTTtnQkFBQztvQkFDTEEsTUFBTTt3QkFBQy9HO3dCQUFrQm9CO3dCQUFTO3dCQUFRO3dCQUFPO3dCQUFPO3FCQUFNO2dCQUNoRTthQUFFO1lBQ0YsYUFBYTtZQUNiOzs7T0FHQyxHQUNELGFBQWE7Z0JBQUM7b0JBQ1o0RixNQUFNO3dCQUFDO3dCQUFRL0c7d0JBQWNWO3FCQUFrQjtnQkFDakQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztnQkFBZTthQUF1QjtZQUN6RDs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO2dCQUFVO2FBQWE7WUFDdEM7OztPQUdDLEdBQ0QsZUFBZTtnQkFBQztvQkFDZDBILE1BQU07d0JBQUM7d0JBQVE7d0JBQWM7d0JBQVM7d0JBQVU7d0JBQVU7d0JBQVk7d0JBQVE7d0JBQWE7d0JBQVNySDtxQkFBa0I7Z0JBQ3hIO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxlQUFlO2dCQUFDO29CQUNkcUgsTUFBTTt3QkFBQ3RHO3FCQUFNO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO2FBQWM7WUFDN0I7OztPQUdDLEdBQ0QsZUFBZTtnQkFBQzthQUFVO1lBQzFCOzs7T0FHQyxHQUNELG9CQUFvQjtnQkFBQzthQUFlO1lBQ3BDOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7Z0JBQWU7YUFBZ0I7WUFDOUM7OztPQUdDLEdBQ0QsZUFBZTtnQkFBQztnQkFBcUI7YUFBZTtZQUNwRDs7O09BR0MsR0FDRCxnQkFBZ0I7Z0JBQUM7Z0JBQXNCO2FBQW1CO1lBQzFEOzs7T0FHQyxHQUNEdUcsVUFBVTtnQkFBQztvQkFDVEEsVUFBVTt3QkFBQzt3QkFBVzt3QkFBUzt3QkFBVTt3QkFBUTt3QkFBUzt3QkFBVWxIO3FCQUFpQjtnQkFDdkY7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsY0FBYzt3QkFBQzt3QkFBUVY7d0JBQVVNO3FCQUFrQjtnQkFDckQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNEdUgsU0FBUztnQkFBQztvQkFDUkEsU0FBUzt3QkFBQzt3QkFBUTt3QkFBUzt3QkFBUTt3QkFBVTt3QkFBVzt3QkFBUzlIO3dCQUFVVztxQkFBaUI7Z0JBQzlGO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLGNBQWM7d0JBQUM7d0JBQVFBO3FCQUFpQjtnQkFDMUM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELG1CQUFtQjtnQkFBQztvQkFDbEJvSCxNQUFNO3dCQUFDO3dCQUFRO3dCQUFRO3dCQUFXcEg7cUJBQWlCO2dCQUNyRDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsdUJBQXVCO2dCQUFDO29CQUN0Qm9ILE1BQU07d0JBQUM7d0JBQVU7cUJBQVU7Z0JBQzdCO2FBQUU7WUFDRjs7OztPQUlDLEdBQ0QscUJBQXFCO2dCQUFDO29CQUNwQkMsYUFBYTt3QkFBQ2xHO3FCQUFPO2dCQUN2QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsdUJBQXVCO2dCQUFDO29CQUN0Qix1QkFBdUI7d0JBQUNpQjtxQkFBUTtnQkFDbEM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakI0RSxNQUFNO3dCQUFDO3dCQUFRO3dCQUFVO3dCQUFTO3dCQUFXO3dCQUFTO3FCQUFNO2dCQUM5RDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsY0FBYztnQkFBQztvQkFDYkEsTUFBTTt3QkFBQzdGO3FCQUFPO2dCQUNoQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZ0JBQWdCO2dCQUFDO29CQUNmLGdCQUFnQjt3QkFBQ2lCO3FCQUFRO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsbUJBQW1CO2dCQUFDO2dCQUFhO2dCQUFZO2dCQUFnQjthQUFlO1lBQzVFOzs7T0FHQyxHQUNELHlCQUF5QjtnQkFBQztvQkFDeEJrRixZQUFZOzJCQUFJbkU7d0JBQWlCO3FCQUFPO2dCQUMxQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsNkJBQTZCO2dCQUFDO29CQUM1Qm1FLFlBQVk7d0JBQUM7d0JBQVE7d0JBQWFqSTt3QkFBVUU7cUJBQWtCO2dCQUNoRTthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Qsb0JBQW9CO2dCQUFDO29CQUNuQixvQkFBb0I7d0JBQUM7d0JBQVFGO3dCQUFVVztxQkFBaUI7Z0JBQzFEO2FBQUU7WUFDRjs7O09BR0MsR0FDRCx5QkFBeUI7Z0JBQUM7b0JBQ3hCc0gsWUFBWTt3QkFBQ25HO3FCQUFPO2dCQUN0QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Qsa0JBQWtCO2dCQUFDO2dCQUFhO2dCQUFhO2dCQUFjO2FBQWM7WUFDekU7OztPQUdDLEdBQ0QsaUJBQWlCO2dCQUFDO2dCQUFZO2dCQUFpQjthQUFZO1lBQzNEOzs7T0FHQyxHQUNELGFBQWE7Z0JBQUM7b0JBQ1o2RixNQUFNO3dCQUFDO3dCQUFRO3dCQUFVO3dCQUFXO3FCQUFTO2dCQUMvQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RPLFFBQVE7Z0JBQUM7b0JBQ1BBLFFBQVF4RTtnQkFDVjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Qsa0JBQWtCO2dCQUFDO29CQUNqQnlFLE9BQU87d0JBQUM7d0JBQVk7d0JBQU87d0JBQVU7d0JBQVU7d0JBQVk7d0JBQWU7d0JBQU87d0JBQVN4SDtxQkFBaUI7Z0JBQzdHO2FBQUU7WUFDRjs7O09BR0MsR0FDRHlILFlBQVk7Z0JBQUM7b0JBQ1hBLFlBQVk7d0JBQUM7d0JBQVU7d0JBQVU7d0JBQU87d0JBQVk7d0JBQVk7cUJBQWU7Z0JBQ2pGO2FBQUU7WUFDRjs7O09BR0MsR0FDREMsT0FBTztnQkFBQztvQkFDTkEsT0FBTzt3QkFBQzt3QkFBVTt3QkFBUzt3QkFBTztxQkFBTztnQkFDM0M7YUFBRTtZQUNGOzs7T0FHQyxHQUNEQyxTQUFTO2dCQUFDO29CQUNSQSxTQUFTO3dCQUFDO3dCQUFRO3dCQUFVO3FCQUFPO2dCQUNyQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RwQyxTQUFTO2dCQUFDO29CQUNSQSxTQUFTO3dCQUFDO3dCQUFRdkY7cUJBQWlCO2dCQUNyQzthQUFFO1lBQ0YsY0FBYztZQUNkOzs7T0FHQyxHQUNELGlCQUFpQjtnQkFBQztvQkFDaEI0SCxJQUFJO3dCQUFDO3dCQUFTO3dCQUFTO3FCQUFTO2dCQUNsQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsV0FBVztnQkFBQztvQkFDVixXQUFXO3dCQUFDO3dCQUFVO3dCQUFXO3dCQUFXO3FCQUFPO2dCQUNyRDthQUFFO1lBQ0Y7Ozs7T0FJQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsY0FBYzt3QkFBQ3hGO3FCQUFRO2dCQUN6QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWixhQUFhO3dCQUFDO3dCQUFVO3dCQUFXO3FCQUFVO2dCQUMvQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZUFBZTtnQkFBQztvQkFDZHdGLElBQUk7MkJBQUkxRTt3QkFBZ0I3QztxQkFBb0I7Z0JBQzlDO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNadUgsSUFBSTt3QkFBQzt3QkFBYTs0QkFDaEJDLFFBQVE7Z0NBQUM7Z0NBQUk7Z0NBQUs7Z0NBQUs7Z0NBQVM7NkJBQVE7d0JBQzFDO3FCQUFFO2dCQUNKO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxXQUFXO2dCQUFDO29CQUNWRCxJQUFJO3dCQUFDO3dCQUFRO3dCQUFTO3dCQUFXekg7cUJBQWdCO2dCQUNuRDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsWUFBWTtnQkFBQztvQkFDWHlILElBQUk7d0JBQUM7d0JBQVE7NEJBQ1gsZUFBZTtnQ0FBQztnQ0FBSztnQ0FBTTtnQ0FBSztnQ0FBTTtnQ0FBSztnQ0FBTTtnQ0FBSzs2QkFBSzt3QkFDN0Q7d0JBQUdySDtxQkFBaUI7Z0JBQ3RCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxZQUFZO2dCQUFDO29CQUNYcUgsSUFBSTt3QkFBQ3pHO3FCQUFPO2dCQUNkO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxxQkFBcUI7Z0JBQUM7b0JBQ3BCMkcsTUFBTTt3QkFBQzdGO3FCQUEyQjtnQkFDcEM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELG9CQUFvQjtnQkFBQztvQkFDbkI4RixLQUFLO3dCQUFDOUY7cUJBQTJCO2dCQUNuQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsbUJBQW1CO2dCQUFDO29CQUNsQitGLElBQUk7d0JBQUMvRjtxQkFBMkI7Z0JBQ2xDO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxpQkFBaUI7Z0JBQUM7b0JBQ2hCNkYsTUFBTTt3QkFBQzlGO3FCQUFtQjtnQkFDNUI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGdCQUFnQjtnQkFBQztvQkFDZitGLEtBQUs7d0JBQUMvRjtxQkFBbUI7Z0JBQzNCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxlQUFlO2dCQUFDO29CQUNkZ0csSUFBSTt3QkFBQ2hHO3FCQUFtQjtnQkFDMUI7YUFBRTtZQUNGLFVBQVU7WUFDVjs7O09BR0MsR0FDRGlHLFNBQVM7Z0JBQUM7b0JBQ1JBLFNBQVM7d0JBQUN6RztxQkFBYTtnQkFDekI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGFBQWE7Z0JBQUM7b0JBQ1osYUFBYTt3QkFBQ0E7cUJBQWE7Z0JBQzdCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWE7d0JBQUNBO3FCQUFhO2dCQUM3QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWixhQUFhO3dCQUFDQTtxQkFBYTtnQkFDN0I7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGFBQWE7Z0JBQUM7b0JBQ1osYUFBYTt3QkFBQ0E7cUJBQWE7Z0JBQzdCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWE7d0JBQUNBO3FCQUFhO2dCQUM3QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWixhQUFhO3dCQUFDQTtxQkFBYTtnQkFDN0I7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsY0FBYzt3QkFBQ0E7cUJBQWE7Z0JBQzlCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLGNBQWM7d0JBQUNBO3FCQUFhO2dCQUM5QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsY0FBYztnQkFBQztvQkFDYixjQUFjO3dCQUFDQTtxQkFBYTtnQkFDOUI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsY0FBYzt3QkFBQ0E7cUJBQWE7Z0JBQzlCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLGNBQWM7d0JBQUNBO3FCQUFhO2dCQUM5QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsY0FBYztnQkFBQztvQkFDYixjQUFjO3dCQUFDQTtxQkFBYTtnQkFDOUI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsY0FBYzt3QkFBQ0E7cUJBQWE7Z0JBQzlCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLGNBQWM7d0JBQUNBO3FCQUFhO2dCQUM5QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsWUFBWTtnQkFBQztvQkFDWDBHLFFBQVE7d0JBQUN4RztxQkFBWTtnQkFDdkI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsWUFBWTt3QkFBQ0E7cUJBQVk7Z0JBQzNCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLFlBQVk7d0JBQUNBO3FCQUFZO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsY0FBYztnQkFBQztvQkFDYixZQUFZO3dCQUFDQTtxQkFBWTtnQkFDM0I7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsWUFBWTt3QkFBQ0E7cUJBQVk7Z0JBQzNCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLFlBQVk7d0JBQUNBO3FCQUFZO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsY0FBYztnQkFBQztvQkFDYixZQUFZO3dCQUFDQTtxQkFBWTtnQkFDM0I7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGNBQWM7Z0JBQUM7b0JBQ2IsWUFBWTt3QkFBQ0E7cUJBQVk7Z0JBQzNCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLFlBQVk7d0JBQUNBO3FCQUFZO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Qsa0JBQWtCO2dCQUFDO29CQUNqQixrQkFBa0I7d0JBQUNVO3FCQUFRO2dCQUM3QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZ0JBQWdCO2dCQUFDO29CQUNmOEYsUUFBUTsyQkFBSS9FO3dCQUFpQjtxQkFBUztnQkFDeEM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELFlBQVk7Z0JBQUM7b0JBQ1gsWUFBWTt3QkFBQ3pCO3FCQUFZO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Qsb0JBQW9CO2dCQUFDO2FBQW1CO1lBQ3hDOzs7T0FHQyxHQUNELFlBQVk7Z0JBQUM7b0JBQ1gsWUFBWTt3QkFBQ0E7cUJBQVk7Z0JBQzNCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxvQkFBb0I7Z0JBQUM7YUFBbUI7WUFDeEM7OztPQUdDLEdBQ0Qsa0JBQWtCO2dCQUFDO29CQUNqQixrQkFBa0I7d0JBQUNVO3FCQUFRO2dCQUM3QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZ0JBQWdCO2dCQUFDO29CQUNmK0YsUUFBUWhGO2dCQUNWO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxnQkFBZ0I7Z0JBQUM7b0JBQ2YrRSxRQUFRO3dCQUFDM0c7cUJBQVk7Z0JBQ3ZCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxrQkFBa0I7Z0JBQUM7b0JBQ2pCLFlBQVk7d0JBQUNBO3FCQUFZO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Qsa0JBQWtCO2dCQUFDO29CQUNqQixZQUFZO3dCQUFDQTtxQkFBWTtnQkFDM0I7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakIsWUFBWTt3QkFBQ0E7cUJBQVk7Z0JBQzNCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxrQkFBa0I7Z0JBQUM7b0JBQ2pCLFlBQVk7d0JBQUNBO3FCQUFZO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Qsa0JBQWtCO2dCQUFDO29CQUNqQixZQUFZO3dCQUFDQTtxQkFBWTtnQkFDM0I7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakIsWUFBWTt3QkFBQ0E7cUJBQVk7Z0JBQzNCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxnQkFBZ0I7Z0JBQUM7b0JBQ2Y0RyxRQUFRO3dCQUFDNUc7cUJBQVk7Z0JBQ3ZCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxpQkFBaUI7Z0JBQUM7b0JBQ2hCNkcsU0FBUzt3QkFBQzsyQkFBT2pGO3FCQUFnQjtnQkFDbkM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakIsa0JBQWtCO3dCQUFDOUQ7d0JBQVVXO3FCQUFpQjtnQkFDaEQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGFBQWE7Z0JBQUM7b0JBQ1pvSSxTQUFTO3dCQUFDL0k7d0JBQVVFO3FCQUFrQjtnQkFDeEM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGlCQUFpQjtnQkFBQztvQkFDaEI2SSxTQUFTO3dCQUFDakg7cUJBQU87Z0JBQ25CO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxVQUFVO2dCQUFDO29CQUNUa0gsTUFBTXJGO2dCQUNSO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxnQkFBZ0I7Z0JBQUM7YUFBYTtZQUM5Qjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNicUYsTUFBTTt3QkFBQ2xIO3FCQUFPO2dCQUNoQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZ0JBQWdCO2dCQUFDO29CQUNmLGdCQUFnQjt3QkFBQ2lCO3FCQUFRO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsaUJBQWlCO2dCQUFDO29CQUNoQixlQUFlO3dCQUFDL0M7d0JBQVVFO3FCQUFrQjtnQkFDOUM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELHFCQUFxQjtnQkFBQztvQkFDcEIsZUFBZTt3QkFBQzRCO3FCQUFPO2dCQUN6QjthQUFFO1lBQ0YsVUFBVTtZQUNWOzs7T0FHQyxHQUNEbUgsUUFBUTtnQkFBQztvQkFDUEEsUUFBUTt3QkFBQzt3QkFBSTt3QkFBUzt3QkFBUXJJO3dCQUFjUTtxQkFBa0I7Z0JBQ2hFO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxnQkFBZ0I7Z0JBQUM7b0JBQ2Y2SCxRQUFRO3dCQUFDM0g7cUJBQU07Z0JBQ2pCO2FBQUU7WUFDRjs7O09BR0MsR0FDRHlCLFNBQVM7Z0JBQUM7b0JBQ1JBLFNBQVM7d0JBQUNBO3FCQUFRO2dCQUNwQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsYUFBYTtnQkFBQztvQkFDWixhQUFhZ0I7Z0JBQ2Y7YUFBRTtZQUNGOzs7T0FHQyxHQUNELFlBQVk7Z0JBQUM7b0JBQ1gsWUFBWUE7Z0JBQ2Q7YUFBRTtZQUNGLFVBQVU7WUFDVjs7OztPQUlDLEdBQ0RyRyxRQUFRO2dCQUFDO29CQUNQQSxRQUFRO3dCQUFDO3dCQUFJO3FCQUFPO2dCQUN0QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RzRSxNQUFNO2dCQUFDO29CQUNMQSxNQUFNO3dCQUFDQTtxQkFBSztnQkFDZDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RDLFlBQVk7Z0JBQUM7b0JBQ1hBLFlBQVk7d0JBQUNBO3FCQUFXO2dCQUMxQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RLLFVBQVU7Z0JBQUM7b0JBQ1RBLFVBQVU7d0JBQUNBO3FCQUFTO2dCQUN0QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZUFBZTtnQkFBQztvQkFDZCxlQUFlO3dCQUFDO3dCQUFJO3dCQUFRMUI7d0JBQWNEO3FCQUFpQjtnQkFDN0Q7YUFBRTtZQUNGOzs7T0FHQyxHQUNENEIsV0FBVztnQkFBQztvQkFDVkEsV0FBVzt3QkFBQ0E7cUJBQVU7Z0JBQ3hCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNiLGNBQWM7d0JBQUNDO3FCQUFVO2dCQUMzQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RDLFFBQVE7Z0JBQUM7b0JBQ1BBLFFBQVE7d0JBQUNBO3FCQUFPO2dCQUNsQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RRLFVBQVU7Z0JBQUM7b0JBQ1RBLFVBQVU7d0JBQUNBO3FCQUFTO2dCQUN0QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RFLE9BQU87Z0JBQUM7b0JBQ05BLE9BQU87d0JBQUNBO3FCQUFNO2dCQUNoQjthQUFFO1lBQ0Y7Ozs7T0FJQyxHQUNELG1CQUFtQjtnQkFBQztvQkFDbEIsbUJBQW1CO3dCQUFDO3dCQUFJO3FCQUFPO2dCQUNqQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsaUJBQWlCO2dCQUFDO29CQUNoQixpQkFBaUI7d0JBQUNuQjtxQkFBSztnQkFDekI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELHVCQUF1QjtnQkFBQztvQkFDdEIsdUJBQXVCO3dCQUFDQztxQkFBVztnQkFDckM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELHFCQUFxQjtnQkFBQztvQkFDcEIscUJBQXFCO3dCQUFDSztxQkFBUztnQkFDakM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELHNCQUFzQjtnQkFBQztvQkFDckIsc0JBQXNCO3dCQUFDQztxQkFBVTtnQkFDbkM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELHVCQUF1QjtnQkFBQztvQkFDdEIsdUJBQXVCO3dCQUFDQztxQkFBVTtnQkFDcEM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELG1CQUFtQjtnQkFBQztvQkFDbEIsbUJBQW1CO3dCQUFDQztxQkFBTztnQkFDN0I7YUFBRTtZQUNGOzs7T0FHQyxHQUNELG9CQUFvQjtnQkFBQztvQkFDbkIsb0JBQW9CO3dCQUFDTTtxQkFBUTtnQkFDL0I7YUFBRTtZQUNGOzs7T0FHQyxHQUNELHFCQUFxQjtnQkFBQztvQkFDcEIscUJBQXFCO3dCQUFDRTtxQkFBUztnQkFDakM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakIsa0JBQWtCO3dCQUFDRTtxQkFBTTtnQkFDM0I7YUFBRTtZQUNGLFNBQVM7WUFDVDs7O09BR0MsR0FDRCxtQkFBbUI7Z0JBQUM7b0JBQ2xCMEYsUUFBUTt3QkFBQzt3QkFBWTtxQkFBVztnQkFDbEM7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakIsa0JBQWtCO3dCQUFDekc7cUJBQWM7Z0JBQ25DO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxvQkFBb0I7Z0JBQUM7b0JBQ25CLG9CQUFvQjt3QkFBQ0E7cUJBQWM7Z0JBQ3JDO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxvQkFBb0I7Z0JBQUM7b0JBQ25CLG9CQUFvQjt3QkFBQ0E7cUJBQWM7Z0JBQ3JDO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxnQkFBZ0I7Z0JBQUM7b0JBQ2Y4RyxPQUFPO3dCQUFDO3dCQUFRO3FCQUFRO2dCQUMxQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RDLFNBQVM7Z0JBQUM7b0JBQ1JBLFNBQVM7d0JBQUM7d0JBQU87cUJBQVM7Z0JBQzVCO2FBQUU7WUFDRiw0QkFBNEI7WUFDNUI7OztPQUdDLEdBQ0RDLFlBQVk7Z0JBQUM7b0JBQ1hBLFlBQVk7d0JBQUM7d0JBQVE7d0JBQU87d0JBQUk7d0JBQVU7d0JBQVc7d0JBQVU7d0JBQWF6STtxQkFBaUI7Z0JBQy9GO2FBQUU7WUFDRjs7O09BR0MsR0FDRDBJLFVBQVU7Z0JBQUM7b0JBQ1RBLFVBQVVqRjtnQkFDWjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RrRixNQUFNO2dCQUFDO29CQUNMQSxNQUFNO3dCQUFDO3dCQUFVO3dCQUFNO3dCQUFPO3dCQUFVM0k7cUJBQWlCO2dCQUMzRDthQUFFO1lBQ0Y7OztPQUdDLEdBQ0Q0SSxPQUFPO2dCQUFDO29CQUNOQSxPQUFPbkY7Z0JBQ1Q7YUFBRTtZQUNGOzs7T0FHQyxHQUNEb0YsU0FBUztnQkFBQztvQkFDUkEsU0FBUzt3QkFBQzt3QkFBUTt3QkFBUTt3QkFBUTt3QkFBUzt3QkFBVTdJO3FCQUFpQjtnQkFDeEU7YUFBRTtZQUNGLGFBQWE7WUFDYjs7O09BR0MsR0FDRDhJLFdBQVc7Z0JBQUM7b0JBQ1ZBLFdBQVc7d0JBQUM7d0JBQUk7d0JBQU87cUJBQU87Z0JBQ2hDO2FBQUU7WUFDRjs7O09BR0MsR0FDRHZHLE9BQU87Z0JBQUM7b0JBQ05BLE9BQU87d0JBQUNBO3FCQUFNO2dCQUNoQjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsV0FBVztnQkFBQztvQkFDVixXQUFXO3dCQUFDQTtxQkFBTTtnQkFDcEI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELFdBQVc7Z0JBQUM7b0JBQ1YsV0FBVzt3QkFBQ0E7cUJBQU07Z0JBQ3BCO2FBQUU7WUFDRjs7O09BR0MsR0FDRHdHLFFBQVE7Z0JBQUM7b0JBQ1BBLFFBQVE7d0JBQUNsSjt3QkFBV0c7cUJBQWlCO2dCQUN2QzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZUFBZTtnQkFBQztvQkFDZCxlQUFlO3dCQUFDMkM7cUJBQVU7Z0JBQzVCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxlQUFlO2dCQUFDO29CQUNkLGVBQWU7d0JBQUNBO3FCQUFVO2dCQUM1QjthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsVUFBVTtnQkFBQztvQkFDVCxVQUFVO3dCQUFDRjtxQkFBSztnQkFDbEI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELFVBQVU7Z0JBQUM7b0JBQ1QsVUFBVTt3QkFBQ0E7cUJBQUs7Z0JBQ2xCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxvQkFBb0I7Z0JBQUM7b0JBQ25CdUcsUUFBUTt3QkFBQzt3QkFBVTt3QkFBTzt3QkFBYTt3QkFBUzt3QkFBZ0I7d0JBQVU7d0JBQWU7d0JBQVE7d0JBQVloSjtxQkFBaUI7Z0JBQ2hJO2FBQUU7WUFDRixnQkFBZ0I7WUFDaEI7OztPQUdDLEdBQ0RpSixRQUFRO2dCQUFDO29CQUNQQSxRQUFRO3dCQUFDO3dCQUFROUg7cUJBQU87Z0JBQzFCO2FBQUU7WUFDRjs7O09BR0MsR0FDRCtILFlBQVk7Z0JBQUM7b0JBQ1hBLFlBQVk7d0JBQUM7d0JBQVE7cUJBQU87Z0JBQzlCO2FBQUU7WUFDRjs7O09BR0MsR0FDREMsUUFBUTtnQkFBQztvQkFDUEEsUUFBUTt3QkFBQzt3QkFBUTt3QkFBVzt3QkFBVzt3QkFBUTt3QkFBUTt3QkFBUTt3QkFBUTt3QkFBZTt3QkFBUTt3QkFBZ0I7d0JBQVk7d0JBQVE7d0JBQWE7d0JBQWlCO3dCQUFTO3dCQUFRO3dCQUFXO3dCQUFRO3dCQUFZO3dCQUFjO3dCQUFjO3dCQUFjO3dCQUFZO3dCQUFZO3dCQUFZO3dCQUFZO3dCQUFhO3dCQUFhO3dCQUFhO3dCQUFhO3dCQUFhO3dCQUFhO3dCQUFlO3dCQUFlO3dCQUFXO3dCQUFZbko7cUJBQWlCO2dCQUNoYzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsZUFBZTtnQkFBQztvQkFDZG9KLE9BQU87d0JBQUNqSTtxQkFBTztnQkFDakI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGtCQUFrQjtnQkFBQztvQkFDakIsa0JBQWtCO3dCQUFDO3dCQUFRO3FCQUFPO2dCQUNwQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0RrSSxRQUFRO2dCQUFDO29CQUNQQSxRQUFRO3dCQUFDO3dCQUFRO3dCQUFLO3dCQUFLO3FCQUFHO2dCQUNoQzthQUFFO1lBQ0Y7OztPQUdDLEdBQ0QsbUJBQW1CO2dCQUFDO29CQUNsQkMsUUFBUTt3QkFBQzt3QkFBUTtxQkFBUztnQkFDNUI7YUFBRTtZQUNGOzs7T0FHQyxHQUNELFlBQVk7Z0JBQUM7b0JBQ1gsWUFBWXZHO2dCQUNkO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxZQUFZO2dCQUFDO29CQUNYLFlBQVlBO2dCQUNkO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNid0csTUFBTTt3QkFBQzt3QkFBUzt3QkFBTzt3QkFBVTtxQkFBYTtnQkFDaEQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGFB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QUFTRSxvQkFBb0JDLGVBQWUsRUFBRSxHQUFHQyxZQUFZO0lBQzNELE9BQU8sT0FBT0Qsb0JBQW9CLGFBQWFqTixvQkFBb0JzRCxrQkFBa0IySixvQkFBb0JDLGdCQUFnQmxOLG9CQUFvQixJQUFNaU0sYUFBYTNJLG9CQUFvQjJKLHFCQUFxQkM7QUFDM007QUFDQSxNQUFNQyxVQUFVLFdBQVcsR0FBRW5OLG9CQUFvQnNEO0FBQzJFLENBQzVILHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3RhaWx3aW5kLW1lcmdlL2Rpc3QvYnVuZGxlLW1qcy5tanM/NzQxMyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBDTEFTU19QQVJUX1NFUEFSQVRPUiA9ICctJztcbmZ1bmN0aW9uIGNyZWF0ZUNsYXNzVXRpbHMoY29uZmlnKSB7XG4gIGNvbnN0IGNsYXNzTWFwID0gY3JlYXRlQ2xhc3NNYXAoY29uZmlnKTtcbiAgY29uc3Qge1xuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cHMsXG4gICAgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzXG4gIH0gPSBjb25maWc7XG4gIGZ1bmN0aW9uIGdldENsYXNzR3JvdXBJZChjbGFzc05hbWUpIHtcbiAgICBjb25zdCBjbGFzc1BhcnRzID0gY2xhc3NOYW1lLnNwbGl0KENMQVNTX1BBUlRfU0VQQVJBVE9SKTtcbiAgICAvLyBDbGFzc2VzIGxpa2UgYC1pbnNldC0xYCBwcm9kdWNlIGFuIGVtcHR5IHN0cmluZyBhcyBmaXJzdCBjbGFzc1BhcnQuIFdlIGFzc3VtZSB0aGF0IGNsYXNzZXMgZm9yIG5lZ2F0aXZlIHZhbHVlcyBhcmUgdXNlZCBjb3JyZWN0bHkgYW5kIHJlbW92ZSBpdCBmcm9tIGNsYXNzUGFydHMuXG4gICAgaWYgKGNsYXNzUGFydHNbMF0gPT09ICcnICYmIGNsYXNzUGFydHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICBjbGFzc1BhcnRzLnNoaWZ0KCk7XG4gICAgfVxuICAgIHJldHVybiBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLCBjbGFzc01hcCkgfHwgZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5KGNsYXNzTmFtZSk7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKSB7XG4gICAgY29uc3QgY29uZmxpY3RzID0gY29uZmxpY3RpbmdDbGFzc0dyb3Vwc1tjbGFzc0dyb3VwSWRdIHx8IFtdO1xuICAgIGlmIChoYXNQb3N0Zml4TW9kaWZpZXIgJiYgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzW2NsYXNzR3JvdXBJZF0pIHtcbiAgICAgIHJldHVybiBbLi4uY29uZmxpY3RzLCAuLi5jb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnNbY2xhc3NHcm91cElkXV07XG4gICAgfVxuICAgIHJldHVybiBjb25mbGljdHM7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnZXRDbGFzc0dyb3VwSWQsXG4gICAgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzXG4gIH07XG59XG5mdW5jdGlvbiBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLCBjbGFzc1BhcnRPYmplY3QpIHtcbiAgaWYgKGNsYXNzUGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNsYXNzUGFydE9iamVjdC5jbGFzc0dyb3VwSWQ7XG4gIH1cbiAgY29uc3QgY3VycmVudENsYXNzUGFydCA9IGNsYXNzUGFydHNbMF07XG4gIGNvbnN0IG5leHRDbGFzc1BhcnRPYmplY3QgPSBjbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuZ2V0KGN1cnJlbnRDbGFzc1BhcnQpO1xuICBjb25zdCBjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQgPSBuZXh0Q2xhc3NQYXJ0T2JqZWN0ID8gZ2V0R3JvdXBSZWN1cnNpdmUoY2xhc3NQYXJ0cy5zbGljZSgxKSwgbmV4dENsYXNzUGFydE9iamVjdCkgOiB1bmRlZmluZWQ7XG4gIGlmIChjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQpIHtcbiAgICByZXR1cm4gY2xhc3NHcm91cEZyb21OZXh0Q2xhc3NQYXJ0O1xuICB9XG4gIGlmIChjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IGNsYXNzUmVzdCA9IGNsYXNzUGFydHMuam9pbihDTEFTU19QQVJUX1NFUEFSQVRPUik7XG4gIHJldHVybiBjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5maW5kKCh7XG4gICAgdmFsaWRhdG9yXG4gIH0pID0+IHZhbGlkYXRvcihjbGFzc1Jlc3QpKT8uY2xhc3NHcm91cElkO1xufVxuY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlSZWdleCA9IC9eXFxbKC4rKVxcXSQvO1xuZnVuY3Rpb24gZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5KGNsYXNzTmFtZSkge1xuICBpZiAoYXJiaXRyYXJ5UHJvcGVydHlSZWdleC50ZXN0KGNsYXNzTmFtZSkpIHtcbiAgICBjb25zdCBhcmJpdHJhcnlQcm9wZXJ0eUNsYXNzTmFtZSA9IGFyYml0cmFyeVByb3BlcnR5UmVnZXguZXhlYyhjbGFzc05hbWUpWzFdO1xuICAgIGNvbnN0IHByb3BlcnR5ID0gYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWU/LnN1YnN0cmluZygwLCBhcmJpdHJhcnlQcm9wZXJ0eUNsYXNzTmFtZS5pbmRleE9mKCc6JykpO1xuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgLy8gSSB1c2UgdHdvIGRvdHMgaGVyZSBiZWNhdXNlIG9uZSBkb3QgaXMgdXNlZCBhcyBwcmVmaXggZm9yIGNsYXNzIGdyb3VwcyBpbiBwbHVnaW5zXG4gICAgICByZXR1cm4gJ2FyYml0cmFyeS4uJyArIHByb3BlcnR5O1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBFeHBvcnRlZCBmb3IgdGVzdGluZyBvbmx5XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNsYXNzTWFwKGNvbmZpZykge1xuICBjb25zdCB7XG4gICAgdGhlbWUsXG4gICAgcHJlZml4XG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IGNsYXNzTWFwID0ge1xuICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgdmFsaWRhdG9yczogW11cbiAgfTtcbiAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyA9IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMoT2JqZWN0LmVudHJpZXMoY29uZmlnLmNsYXNzR3JvdXBzKSwgcHJlZml4KTtcbiAgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcy5mb3JFYWNoKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgY2xhc3NNYXAsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsYXNzTWFwO1xufVxuZnVuY3Rpb24gcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0dyb3VwLCBjbGFzc1BhcnRPYmplY3QsIGNsYXNzR3JvdXBJZCwgdGhlbWUpIHtcbiAgY2xhc3NHcm91cC5mb3JFYWNoKGNsYXNzRGVmaW5pdGlvbiA9PiB7XG4gICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBjbGFzc1BhcnRPYmplY3RUb0VkaXQgPSBjbGFzc0RlZmluaXRpb24gPT09ICcnID8gY2xhc3NQYXJ0T2JqZWN0IDogZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIGNsYXNzRGVmaW5pdGlvbik7XG4gICAgICBjbGFzc1BhcnRPYmplY3RUb0VkaXQuY2xhc3NHcm91cElkID0gY2xhc3NHcm91cElkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKGlzVGhlbWVHZXR0ZXIoY2xhc3NEZWZpbml0aW9uKSkge1xuICAgICAgICBwcm9jZXNzQ2xhc3Nlc1JlY3Vyc2l2ZWx5KGNsYXNzRGVmaW5pdGlvbih0aGVtZSksIGNsYXNzUGFydE9iamVjdCwgY2xhc3NHcm91cElkLCB0aGVtZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLnB1c2goe1xuICAgICAgICB2YWxpZGF0b3I6IGNsYXNzRGVmaW5pdGlvbixcbiAgICAgICAgY2xhc3NHcm91cElkXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmVudHJpZXMoY2xhc3NEZWZpbml0aW9uKS5mb3JFYWNoKChba2V5LCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0dyb3VwLCBnZXRQYXJ0KGNsYXNzUGFydE9iamVjdCwga2V5KSwgY2xhc3NHcm91cElkLCB0aGVtZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuZnVuY3Rpb24gZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIHBhdGgpIHtcbiAgbGV0IGN1cnJlbnRDbGFzc1BhcnRPYmplY3QgPSBjbGFzc1BhcnRPYmplY3Q7XG4gIHBhdGguc3BsaXQoQ0xBU1NfUEFSVF9TRVBBUkFUT1IpLmZvckVhY2gocGF0aFBhcnQgPT4ge1xuICAgIGlmICghY3VycmVudENsYXNzUGFydE9iamVjdC5uZXh0UGFydC5oYXMocGF0aFBhcnQpKSB7XG4gICAgICBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LnNldChwYXRoUGFydCwge1xuICAgICAgICBuZXh0UGFydDogbmV3IE1hcCgpLFxuICAgICAgICB2YWxpZGF0b3JzOiBbXVxuICAgICAgfSk7XG4gICAgfVxuICAgIGN1cnJlbnRDbGFzc1BhcnRPYmplY3QgPSBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LmdldChwYXRoUGFydCk7XG4gIH0pO1xuICByZXR1cm4gY3VycmVudENsYXNzUGFydE9iamVjdDtcbn1cbmZ1bmN0aW9uIGlzVGhlbWVHZXR0ZXIoZnVuYykge1xuICByZXR1cm4gZnVuYy5pc1RoZW1lR2V0dGVyO1xufVxuZnVuY3Rpb24gZ2V0UHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyhjbGFzc0dyb3VwRW50cmllcywgcHJlZml4KSB7XG4gIGlmICghcHJlZml4KSB7XG4gICAgcmV0dXJuIGNsYXNzR3JvdXBFbnRyaWVzO1xuICB9XG4gIHJldHVybiBjbGFzc0dyb3VwRW50cmllcy5tYXAoKFtjbGFzc0dyb3VwSWQsIGNsYXNzR3JvdXBdKSA9PiB7XG4gICAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwID0gY2xhc3NHcm91cC5tYXAoY2xhc3NEZWZpbml0aW9uID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gcHJlZml4ICsgY2xhc3NEZWZpbml0aW9uO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoY2xhc3NEZWZpbml0aW9uKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW3ByZWZpeCArIGtleSwgdmFsdWVdKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xhc3NEZWZpbml0aW9uO1xuICAgIH0pO1xuICAgIHJldHVybiBbY2xhc3NHcm91cElkLCBwcmVmaXhlZENsYXNzR3JvdXBdO1xuICB9KTtcbn1cblxuLy8gTFJVIGNhY2hlIGluc3BpcmVkIGZyb20gaGFzaGxydSAoaHR0cHM6Ly9naXRodWIuY29tL2RvbWluaWN0YXJyL2hhc2hscnUvYmxvYi92MS4wLjQvaW5kZXguanMpIGJ1dCBvYmplY3QgcmVwbGFjZWQgd2l0aCBNYXAgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZVxuZnVuY3Rpb24gY3JlYXRlTHJ1Q2FjaGUobWF4Q2FjaGVTaXplKSB7XG4gIGlmIChtYXhDYWNoZVNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgc2V0OiAoKSA9PiB7fVxuICAgIH07XG4gIH1cbiAgbGV0IGNhY2hlU2l6ZSA9IDA7XG4gIGxldCBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgbGV0IHByZXZpb3VzQ2FjaGUgPSBuZXcgTWFwKCk7XG4gIGZ1bmN0aW9uIHVwZGF0ZShrZXksIHZhbHVlKSB7XG4gICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgIGNhY2hlU2l6ZSsrO1xuICAgIGlmIChjYWNoZVNpemUgPiBtYXhDYWNoZVNpemUpIHtcbiAgICAgIGNhY2hlU2l6ZSA9IDA7XG4gICAgICBwcmV2aW91c0NhY2hlID0gY2FjaGU7XG4gICAgICBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnZXQoa2V5KSB7XG4gICAgICBsZXQgdmFsdWUgPSBjYWNoZS5nZXQoa2V5KTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodmFsdWUgPSBwcmV2aW91c0NhY2hlLmdldChrZXkpKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHVwZGF0ZShrZXksIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChjYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICBjYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuY29uc3QgSU1QT1JUQU5UX01PRElGSUVSID0gJyEnO1xuZnVuY3Rpb24gY3JlYXRlU3BsaXRNb2RpZmllcnMoY29uZmlnKSB7XG4gIGNvbnN0IHNlcGFyYXRvciA9IGNvbmZpZy5zZXBhcmF0b3I7XG4gIGNvbnN0IGlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyID0gc2VwYXJhdG9yLmxlbmd0aCA9PT0gMTtcbiAgY29uc3QgZmlyc3RTZXBhcmF0b3JDaGFyYWN0ZXIgPSBzZXBhcmF0b3JbMF07XG4gIGNvbnN0IHNlcGFyYXRvckxlbmd0aCA9IHNlcGFyYXRvci5sZW5ndGg7XG4gIC8vIHNwbGl0TW9kaWZpZXJzIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi92My4yLjIvc3JjL3V0aWwvc3BsaXRBdFRvcExldmVsT25seS5qc1xuICByZXR1cm4gZnVuY3Rpb24gc3BsaXRNb2RpZmllcnMoY2xhc3NOYW1lKSB7XG4gICAgY29uc3QgbW9kaWZpZXJzID0gW107XG4gICAgbGV0IGJyYWNrZXREZXB0aCA9IDA7XG4gICAgbGV0IG1vZGlmaWVyU3RhcnQgPSAwO1xuICAgIGxldCBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbjtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2xhc3NOYW1lLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgbGV0IGN1cnJlbnRDaGFyYWN0ZXIgPSBjbGFzc05hbWVbaW5kZXhdO1xuICAgICAgaWYgKGJyYWNrZXREZXB0aCA9PT0gMCkge1xuICAgICAgICBpZiAoY3VycmVudENoYXJhY3RlciA9PT0gZmlyc3RTZXBhcmF0b3JDaGFyYWN0ZXIgJiYgKGlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyIHx8IGNsYXNzTmFtZS5zbGljZShpbmRleCwgaW5kZXggKyBzZXBhcmF0b3JMZW5ndGgpID09PSBzZXBhcmF0b3IpKSB7XG4gICAgICAgICAgbW9kaWZpZXJzLnB1c2goY2xhc3NOYW1lLnNsaWNlKG1vZGlmaWVyU3RhcnQsIGluZGV4KSk7XG4gICAgICAgICAgbW9kaWZpZXJTdGFydCA9IGluZGV4ICsgc2VwYXJhdG9yTGVuZ3RoO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnLycpIHtcbiAgICAgICAgICBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA9IGluZGV4O1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY3VycmVudENoYXJhY3RlciA9PT0gJ1snKSB7XG4gICAgICAgIGJyYWNrZXREZXB0aCsrO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnXScpIHtcbiAgICAgICAgYnJhY2tldERlcHRoLS07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIgPSBtb2RpZmllcnMubGVuZ3RoID09PSAwID8gY2xhc3NOYW1lIDogY2xhc3NOYW1lLnN1YnN0cmluZyhtb2RpZmllclN0YXJ0KTtcbiAgICBjb25zdCBoYXNJbXBvcnRhbnRNb2RpZmllciA9IGJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIuc3RhcnRzV2l0aChJTVBPUlRBTlRfTU9ESUZJRVIpO1xuICAgIGNvbnN0IGJhc2VDbGFzc05hbWUgPSBoYXNJbXBvcnRhbnRNb2RpZmllciA/IGJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIuc3Vic3RyaW5nKDEpIDogYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllcjtcbiAgICBjb25zdCBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uID0gcG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gJiYgcG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gPiBtb2RpZmllclN0YXJ0ID8gcG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gLSBtb2RpZmllclN0YXJ0IDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBtb2RpZmllcnMsXG4gICAgICBoYXNJbXBvcnRhbnRNb2RpZmllcixcbiAgICAgIGJhc2VDbGFzc05hbWUsXG4gICAgICBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uXG4gICAgfTtcbiAgfTtcbn1cbi8qKlxuICogU29ydHMgbW9kaWZpZXJzIGFjY29yZGluZyB0byBmb2xsb3dpbmcgc2NoZW1hOlxuICogLSBQcmVkZWZpbmVkIG1vZGlmaWVycyBhcmUgc29ydGVkIGFscGhhYmV0aWNhbGx5XG4gKiAtIFdoZW4gYW4gYXJiaXRyYXJ5IHZhcmlhbnQgYXBwZWFycywgaXQgbXVzdCBiZSBwcmVzZXJ2ZWQgd2hpY2ggbW9kaWZpZXJzIGFyZSBiZWZvcmUgYW5kIGFmdGVyIGl0XG4gKi9cbmZ1bmN0aW9uIHNvcnRNb2RpZmllcnMobW9kaWZpZXJzKSB7XG4gIGlmIChtb2RpZmllcnMubGVuZ3RoIDw9IDEpIHtcbiAgICByZXR1cm4gbW9kaWZpZXJzO1xuICB9XG4gIGNvbnN0IHNvcnRlZE1vZGlmaWVycyA9IFtdO1xuICBsZXQgdW5zb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgbW9kaWZpZXJzLmZvckVhY2gobW9kaWZpZXIgPT4ge1xuICAgIGNvbnN0IGlzQXJiaXRyYXJ5VmFyaWFudCA9IG1vZGlmaWVyWzBdID09PSAnWyc7XG4gICAgaWYgKGlzQXJiaXRyYXJ5VmFyaWFudCkge1xuICAgICAgc29ydGVkTW9kaWZpZXJzLnB1c2goLi4udW5zb3J0ZWRNb2RpZmllcnMuc29ydCgpLCBtb2RpZmllcik7XG4gICAgICB1bnNvcnRlZE1vZGlmaWVycyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB1bnNvcnRlZE1vZGlmaWVycy5wdXNoKG1vZGlmaWVyKTtcbiAgICB9XG4gIH0pO1xuICBzb3J0ZWRNb2RpZmllcnMucHVzaCguLi51bnNvcnRlZE1vZGlmaWVycy5zb3J0KCkpO1xuICByZXR1cm4gc29ydGVkTW9kaWZpZXJzO1xufVxuZnVuY3Rpb24gY3JlYXRlQ29uZmlnVXRpbHMoY29uZmlnKSB7XG4gIHJldHVybiB7XG4gICAgY2FjaGU6IGNyZWF0ZUxydUNhY2hlKGNvbmZpZy5jYWNoZVNpemUpLFxuICAgIHNwbGl0TW9kaWZpZXJzOiBjcmVhdGVTcGxpdE1vZGlmaWVycyhjb25maWcpLFxuICAgIC4uLmNyZWF0ZUNsYXNzVXRpbHMoY29uZmlnKVxuICB9O1xufVxuY29uc3QgU1BMSVRfQ0xBU1NFU19SRUdFWCA9IC9cXHMrLztcbmZ1bmN0aW9uIG1lcmdlQ2xhc3NMaXN0KGNsYXNzTGlzdCwgY29uZmlnVXRpbHMpIHtcbiAgY29uc3Qge1xuICAgIHNwbGl0TW9kaWZpZXJzLFxuICAgIGdldENsYXNzR3JvdXBJZCxcbiAgICBnZXRDb25mbGljdGluZ0NsYXNzR3JvdXBJZHNcbiAgfSA9IGNvbmZpZ1V0aWxzO1xuICAvKipcbiAgICogU2V0IG9mIGNsYXNzR3JvdXBJZHMgaW4gZm9sbG93aW5nIGZvcm1hdDpcbiAgICogYHtpbXBvcnRhbnRNb2RpZmllcn17dmFyaWFudE1vZGlmaWVyc317Y2xhc3NHcm91cElkfWBcbiAgICogQGV4YW1wbGUgJ2Zsb2F0J1xuICAgKiBAZXhhbXBsZSAnaG92ZXI6Zm9jdXM6YmctY29sb3InXG4gICAqIEBleGFtcGxlICdtZDohcHInXG4gICAqL1xuICBjb25zdCBjbGFzc0dyb3Vwc0luQ29uZmxpY3QgPSBuZXcgU2V0KCk7XG4gIHJldHVybiBjbGFzc0xpc3QudHJpbSgpLnNwbGl0KFNQTElUX0NMQVNTRVNfUkVHRVgpLm1hcChvcmlnaW5hbENsYXNzTmFtZSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgbW9kaWZpZXJzLFxuICAgICAgaGFzSW1wb3J0YW50TW9kaWZpZXIsXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxuICAgICAgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvblxuICAgIH0gPSBzcGxpdE1vZGlmaWVycyhvcmlnaW5hbENsYXNzTmFtZSk7XG4gICAgbGV0IGNsYXNzR3JvdXBJZCA9IGdldENsYXNzR3JvdXBJZChtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uID8gYmFzZUNsYXNzTmFtZS5zdWJzdHJpbmcoMCwgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbikgOiBiYXNlQ2xhc3NOYW1lKTtcbiAgICBsZXQgaGFzUG9zdGZpeE1vZGlmaWVyID0gQm9vbGVhbihtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uKTtcbiAgICBpZiAoIWNsYXNzR3JvdXBJZCkge1xuICAgICAgaWYgKCFtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaXNUYWlsd2luZENsYXNzOiBmYWxzZSxcbiAgICAgICAgICBvcmlnaW5hbENsYXNzTmFtZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY2xhc3NHcm91cElkID0gZ2V0Q2xhc3NHcm91cElkKGJhc2VDbGFzc05hbWUpO1xuICAgICAgaWYgKCFjbGFzc0dyb3VwSWQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpc1RhaWx3aW5kQ2xhc3M6IGZhbHNlLFxuICAgICAgICAgIG9yaWdpbmFsQ2xhc3NOYW1lXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBoYXNQb3N0Zml4TW9kaWZpZXIgPSBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdmFyaWFudE1vZGlmaWVyID0gc29ydE1vZGlmaWVycyhtb2RpZmllcnMpLmpvaW4oJzonKTtcbiAgICBjb25zdCBtb2RpZmllcklkID0gaGFzSW1wb3J0YW50TW9kaWZpZXIgPyB2YXJpYW50TW9kaWZpZXIgKyBJTVBPUlRBTlRfTU9ESUZJRVIgOiB2YXJpYW50TW9kaWZpZXI7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVGFpbHdpbmRDbGFzczogdHJ1ZSxcbiAgICAgIG1vZGlmaWVySWQsXG4gICAgICBjbGFzc0dyb3VwSWQsXG4gICAgICBvcmlnaW5hbENsYXNzTmFtZSxcbiAgICAgIGhhc1Bvc3RmaXhNb2RpZmllclxuICAgIH07XG4gIH0pLnJldmVyc2UoKVxuICAvLyBMYXN0IGNsYXNzIGluIGNvbmZsaWN0IHdpbnMsIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGNvbmZsaWN0aW5nIGNsYXNzZXMgaW4gcmV2ZXJzZSBvcmRlci5cbiAgLmZpbHRlcihwYXJzZWQgPT4ge1xuICAgIGlmICghcGFyc2VkLmlzVGFpbHdpbmRDbGFzcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIG1vZGlmaWVySWQsXG4gICAgICBjbGFzc0dyb3VwSWQsXG4gICAgICBoYXNQb3N0Zml4TW9kaWZpZXJcbiAgICB9ID0gcGFyc2VkO1xuICAgIGNvbnN0IGNsYXNzSWQgPSBtb2RpZmllcklkICsgY2xhc3NHcm91cElkO1xuICAgIGlmIChjbGFzc0dyb3Vwc0luQ29uZmxpY3QuaGFzKGNsYXNzSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNsYXNzR3JvdXBzSW5Db25mbGljdC5hZGQoY2xhc3NJZCk7XG4gICAgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKS5mb3JFYWNoKGdyb3VwID0+IGNsYXNzR3JvdXBzSW5Db25mbGljdC5hZGQobW9kaWZpZXJJZCArIGdyb3VwKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pLnJldmVyc2UoKS5tYXAocGFyc2VkID0+IHBhcnNlZC5vcmlnaW5hbENsYXNzTmFtZSkuam9pbignICcpO1xufVxuXG4vKipcbiAqIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL2Nsc3ggYW5kIG1vZGlmaWVkIHRvIHN1aXQgdGhlIG5lZWRzIG9mIHRhaWx3aW5kLW1lcmdlIGJldHRlci5cbiAqXG4gKiBTcGVjaWZpY2FsbHk6XG4gKiAtIFJ1bnRpbWUgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9zcmMvaW5kZXguanNcbiAqIC0gVHlwZVNjcmlwdCB0eXBlcyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9jbHN4LmQudHNcbiAqXG4gKiBPcmlnaW5hbCBjb2RlIGhhcyBNSVQgbGljZW5zZTogQ29weXJpZ2h0IChjKSBMdWtlIEVkd2FyZHMgPGx1a2UuZWR3YXJkczA1QGdtYWlsLmNvbT4gKGx1a2VlZC5jb20pXG4gKi9cbmZ1bmN0aW9uIHR3Sm9pbigpIHtcbiAgbGV0IGluZGV4ID0gMDtcbiAgbGV0IGFyZ3VtZW50O1xuICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgbGV0IHN0cmluZyA9ICcnO1xuICB3aGlsZSAoaW5kZXggPCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgaWYgKGFyZ3VtZW50ID0gYXJndW1lbnRzW2luZGV4KytdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUoYXJndW1lbnQpKSB7XG4gICAgICAgIHN0cmluZyAmJiAoc3RyaW5nICs9ICcgJyk7XG4gICAgICAgIHN0cmluZyArPSByZXNvbHZlZFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyaW5nO1xufVxuZnVuY3Rpb24gdG9WYWx1ZShtaXgpIHtcbiAgaWYgKHR5cGVvZiBtaXggPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG1peDtcbiAgfVxuICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgbGV0IHN0cmluZyA9ICcnO1xuICBmb3IgKGxldCBrID0gMDsgayA8IG1peC5sZW5ndGg7IGsrKykge1xuICAgIGlmIChtaXhba10pIHtcbiAgICAgIGlmIChyZXNvbHZlZFZhbHVlID0gdG9WYWx1ZShtaXhba10pKSB7XG4gICAgICAgIHN0cmluZyAmJiAoc3RyaW5nICs9ICcgJyk7XG4gICAgICAgIHN0cmluZyArPSByZXNvbHZlZFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyaW5nO1xufVxuZnVuY3Rpb24gY3JlYXRlVGFpbHdpbmRNZXJnZShjcmVhdGVDb25maWdGaXJzdCwgLi4uY3JlYXRlQ29uZmlnUmVzdCkge1xuICBsZXQgY29uZmlnVXRpbHM7XG4gIGxldCBjYWNoZUdldDtcbiAgbGV0IGNhY2hlU2V0O1xuICBsZXQgZnVuY3Rpb25Ub0NhbGwgPSBpbml0VGFpbHdpbmRNZXJnZTtcbiAgZnVuY3Rpb24gaW5pdFRhaWx3aW5kTWVyZ2UoY2xhc3NMaXN0KSB7XG4gICAgY29uc3QgY29uZmlnID0gY3JlYXRlQ29uZmlnUmVzdC5yZWR1Y2UoKHByZXZpb3VzQ29uZmlnLCBjcmVhdGVDb25maWdDdXJyZW50KSA9PiBjcmVhdGVDb25maWdDdXJyZW50KHByZXZpb3VzQ29uZmlnKSwgY3JlYXRlQ29uZmlnRmlyc3QoKSk7XG4gICAgY29uZmlnVXRpbHMgPSBjcmVhdGVDb25maWdVdGlscyhjb25maWcpO1xuICAgIGNhY2hlR2V0ID0gY29uZmlnVXRpbHMuY2FjaGUuZ2V0O1xuICAgIGNhY2hlU2V0ID0gY29uZmlnVXRpbHMuY2FjaGUuc2V0O1xuICAgIGZ1bmN0aW9uVG9DYWxsID0gdGFpbHdpbmRNZXJnZTtcbiAgICByZXR1cm4gdGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpO1xuICB9XG4gIGZ1bmN0aW9uIHRhaWx3aW5kTWVyZ2UoY2xhc3NMaXN0KSB7XG4gICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gY2FjaGVHZXQoY2xhc3NMaXN0KTtcbiAgICBpZiAoY2FjaGVkUmVzdWx0KSB7XG4gICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBtZXJnZUNsYXNzTGlzdChjbGFzc0xpc3QsIGNvbmZpZ1V0aWxzKTtcbiAgICBjYWNoZVNldChjbGFzc0xpc3QsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gY2FsbFRhaWx3aW5kTWVyZ2UoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uVG9DYWxsKHR3Sm9pbi5hcHBseShudWxsLCBhcmd1bWVudHMpKTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGZyb21UaGVtZShrZXkpIHtcbiAgY29uc3QgdGhlbWVHZXR0ZXIgPSB0aGVtZSA9PiB0aGVtZVtrZXldIHx8IFtdO1xuICB0aGVtZUdldHRlci5pc1RoZW1lR2V0dGVyID0gdHJ1ZTtcbiAgcmV0dXJuIHRoZW1lR2V0dGVyO1xufVxuY29uc3QgYXJiaXRyYXJ5VmFsdWVSZWdleCA9IC9eXFxbKD86KFthLXotXSspOik/KC4rKVxcXSQvaTtcbmNvbnN0IGZyYWN0aW9uUmVnZXggPSAvXlxcZCtcXC9cXGQrJC87XG5jb25zdCBzdHJpbmdMZW5ndGhzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydweCcsICdmdWxsJywgJ3NjcmVlbiddKTtcbmNvbnN0IHRzaGlydFVuaXRSZWdleCA9IC9eKFxcZCsoXFwuXFxkKyk/KT8oeHN8c218bWR8bGd8eGwpJC87XG5jb25zdCBsZW5ndGhVbml0UmVnZXggPSAvXFxkKyglfHB4fHI/ZW18W3NkbF0/dihbaHdpYl18bWlufG1heCl8cHR8cGN8aW58Y218bW18Y2FwfGNofGV4fHI/bGh8Y3Eod3xofGl8YnxtaW58bWF4KSl8XFxiKGNhbGN8bWlufG1heHxjbGFtcClcXCguK1xcKXxeMCQvO1xuY29uc3QgY29sb3JGdW5jdGlvblJlZ2V4ID0gL14ocmdiYT98aHNsYT98aHdifChvayk/KGxhYnxsY2gpKVxcKC4rXFwpJC87XG4vLyBTaGFkb3cgYWx3YXlzIGJlZ2lucyB3aXRoIHggYW5kIHkgb2Zmc2V0IHNlcGFyYXRlZCBieSB1bmRlcnNjb3JlIG9wdGlvbmFsbHkgcHJlcGVuZGVkIGJ5IGluc2V0XG5jb25zdCBzaGFkb3dSZWdleCA9IC9eKGluc2V0Xyk/LT8oKFxcZCspP1xcLj8oXFxkKylbYS16XSt8MClfLT8oKFxcZCspP1xcLj8oXFxkKylbYS16XSt8MCkvO1xuY29uc3QgaW1hZ2VSZWdleCA9IC9eKHVybHxpbWFnZXxpbWFnZS1zZXR8Y3Jvc3MtZmFkZXxlbGVtZW50fChyZXBlYXRpbmctKT8obGluZWFyfHJhZGlhbHxjb25pYyktZ3JhZGllbnQpXFwoLitcXCkkLztcbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiBpc051bWJlcih2YWx1ZSkgfHwgc3RyaW5nTGVuZ3Rocy5oYXModmFsdWUpIHx8IGZyYWN0aW9uUmVnZXgudGVzdCh2YWx1ZSk7XG59XG5mdW5jdGlvbiBpc0FyYml0cmFyeUxlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ2xlbmd0aCcsIGlzTGVuZ3RoT25seSk7XG59XG5mdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICByZXR1cm4gQm9vbGVhbih2YWx1ZSkgJiYgIU51bWJlci5pc05hTihOdW1iZXIodmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5TnVtYmVyKHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCAnbnVtYmVyJywgaXNOdW1iZXIpO1xufVxuZnVuY3Rpb24gaXNJbnRlZ2VyKHZhbHVlKSB7XG4gIHJldHVybiBCb29sZWFuKHZhbHVlKSAmJiBOdW1iZXIuaXNJbnRlZ2VyKE51bWJlcih2YWx1ZSkpO1xufVxuZnVuY3Rpb24gaXNQZXJjZW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5lbmRzV2l0aCgnJScpICYmIGlzTnVtYmVyKHZhbHVlLnNsaWNlKDAsIC0xKSk7XG59XG5mdW5jdGlvbiBpc0FyYml0cmFyeVZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiBhcmJpdHJhcnlWYWx1ZVJlZ2V4LnRlc3QodmFsdWUpO1xufVxuZnVuY3Rpb24gaXNUc2hpcnRTaXplKHZhbHVlKSB7XG4gIHJldHVybiB0c2hpcnRVbml0UmVnZXgudGVzdCh2YWx1ZSk7XG59XG5jb25zdCBzaXplTGFiZWxzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydsZW5ndGgnLCAnc2l6ZScsICdwZXJjZW50YWdlJ10pO1xuZnVuY3Rpb24gaXNBcmJpdHJhcnlTaXplKHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCBzaXplTGFiZWxzLCBpc05ldmVyKTtcbn1cbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5UG9zaXRpb24odmFsdWUpIHtcbiAgcmV0dXJuIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdwb3NpdGlvbicsIGlzTmV2ZXIpO1xufVxuY29uc3QgaW1hZ2VMYWJlbHMgPSAvKiNfX1BVUkVfXyovbmV3IFNldChbJ2ltYWdlJywgJ3VybCddKTtcbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5SW1hZ2UodmFsdWUpIHtcbiAgcmV0dXJuIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsIGltYWdlTGFiZWxzLCBpc0ltYWdlKTtcbn1cbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5U2hhZG93KHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCAnJywgaXNTaGFkb3cpO1xufVxuZnVuY3Rpb24gaXNBbnkoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgbGFiZWwsIHRlc3RWYWx1ZSkge1xuICBjb25zdCByZXN1bHQgPSBhcmJpdHJhcnlWYWx1ZVJlZ2V4LmV4ZWModmFsdWUpO1xuICBpZiAocmVzdWx0KSB7XG4gICAgaWYgKHJlc3VsdFsxXSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgPyByZXN1bHRbMV0gPT09IGxhYmVsIDogbGFiZWwuaGFzKHJlc3VsdFsxXSk7XG4gICAgfVxuICAgIHJldHVybiB0ZXN0VmFsdWUocmVzdWx0WzJdKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc0xlbmd0aE9ubHkodmFsdWUpIHtcbiAgLy8gYGNvbG9yRnVuY3Rpb25SZWdleGAgY2hlY2sgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgY29sb3IgZnVuY3Rpb25zIGNhbiBoYXZlIHBlcmNlbnRhZ2VzIGluIHRoZW0gd2hpY2ggd2hpY2ggd291bGQgYmUgaW5jb3JyZWN0bHkgY2xhc3NpZmllZCBhcyBsZW5ndGhzLlxuICAvLyBGb3IgZXhhbXBsZSwgYGhzbCgwIDAlIDAlKWAgd291bGQgYmUgY2xhc3NpZmllZCBhcyBhIGxlbmd0aCB3aXRob3V0IHRoaXMgY2hlY2suXG4gIC8vIEkgY291bGQgYWxzbyB1c2UgbG9va2JlaGluZCBhc3NlcnRpb24gaW4gYGxlbmd0aFVuaXRSZWdleGAgYnV0IHRoYXQgaXNuJ3Qgc3VwcG9ydGVkIHdpZGVseSBlbm91Z2guXG4gIHJldHVybiBsZW5ndGhVbml0UmVnZXgudGVzdCh2YWx1ZSkgJiYgIWNvbG9yRnVuY3Rpb25SZWdleC50ZXN0KHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGlzTmV2ZXIoKSB7XG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzU2hhZG93KHZhbHVlKSB7XG4gIHJldHVybiBzaGFkb3dSZWdleC50ZXN0KHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGlzSW1hZ2UodmFsdWUpIHtcbiAgcmV0dXJuIGltYWdlUmVnZXgudGVzdCh2YWx1ZSk7XG59XG5jb25zdCB2YWxpZGF0b3JzID0gLyojX19QVVJFX18qL09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgaXNBbnksXG4gIGlzQXJiaXRyYXJ5SW1hZ2UsXG4gIGlzQXJiaXRyYXJ5TGVuZ3RoLFxuICBpc0FyYml0cmFyeU51bWJlcixcbiAgaXNBcmJpdHJhcnlQb3NpdGlvbixcbiAgaXNBcmJpdHJhcnlTaGFkb3csXG4gIGlzQXJiaXRyYXJ5U2l6ZSxcbiAgaXNBcmJpdHJhcnlWYWx1ZSxcbiAgaXNJbnRlZ2VyLFxuICBpc0xlbmd0aCxcbiAgaXNOdW1iZXIsXG4gIGlzUGVyY2VudCxcbiAgaXNUc2hpcnRTaXplXG59LCBTeW1ib2wudG9TdHJpbmdUYWcsIHtcbiAgdmFsdWU6ICdNb2R1bGUnXG59KTtcbmZ1bmN0aW9uIGdldERlZmF1bHRDb25maWcoKSB7XG4gIGNvbnN0IGNvbG9ycyA9IGZyb21UaGVtZSgnY29sb3JzJyk7XG4gIGNvbnN0IHNwYWNpbmcgPSBmcm9tVGhlbWUoJ3NwYWNpbmcnKTtcbiAgY29uc3QgYmx1ciA9IGZyb21UaGVtZSgnYmx1cicpO1xuICBjb25zdCBicmlnaHRuZXNzID0gZnJvbVRoZW1lKCdicmlnaHRuZXNzJyk7XG4gIGNvbnN0IGJvcmRlckNvbG9yID0gZnJvbVRoZW1lKCdib3JkZXJDb2xvcicpO1xuICBjb25zdCBib3JkZXJSYWRpdXMgPSBmcm9tVGhlbWUoJ2JvcmRlclJhZGl1cycpO1xuICBjb25zdCBib3JkZXJTcGFjaW5nID0gZnJvbVRoZW1lKCdib3JkZXJTcGFjaW5nJyk7XG4gIGNvbnN0IGJvcmRlcldpZHRoID0gZnJvbVRoZW1lKCdib3JkZXJXaWR0aCcpO1xuICBjb25zdCBjb250cmFzdCA9IGZyb21UaGVtZSgnY29udHJhc3QnKTtcbiAgY29uc3QgZ3JheXNjYWxlID0gZnJvbVRoZW1lKCdncmF5c2NhbGUnKTtcbiAgY29uc3QgaHVlUm90YXRlID0gZnJvbVRoZW1lKCdodWVSb3RhdGUnKTtcbiAgY29uc3QgaW52ZXJ0ID0gZnJvbVRoZW1lKCdpbnZlcnQnKTtcbiAgY29uc3QgZ2FwID0gZnJvbVRoZW1lKCdnYXAnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BzID0gZnJvbVRoZW1lKCdncmFkaWVudENvbG9yU3RvcHMnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMgPSBmcm9tVGhlbWUoJ2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zJyk7XG4gIGNvbnN0IGluc2V0ID0gZnJvbVRoZW1lKCdpbnNldCcpO1xuICBjb25zdCBtYXJnaW4gPSBmcm9tVGhlbWUoJ21hcmdpbicpO1xuICBjb25zdCBvcGFjaXR5ID0gZnJvbVRoZW1lKCdvcGFjaXR5Jyk7XG4gIGNvbnN0IHBhZGRpbmcgPSBmcm9tVGhlbWUoJ3BhZGRpbmcnKTtcbiAgY29uc3Qgc2F0dXJhdGUgPSBmcm9tVGhlbWUoJ3NhdHVyYXRlJyk7XG4gIGNvbnN0IHNjYWxlID0gZnJvbVRoZW1lKCdzY2FsZScpO1xuICBjb25zdCBzZXBpYSA9IGZyb21UaGVtZSgnc2VwaWEnKTtcbiAgY29uc3Qgc2tldyA9IGZyb21UaGVtZSgnc2tldycpO1xuICBjb25zdCBzcGFjZSA9IGZyb21UaGVtZSgnc3BhY2UnKTtcbiAgY29uc3QgdHJhbnNsYXRlID0gZnJvbVRoZW1lKCd0cmFuc2xhdGUnKTtcbiAgY29uc3QgZ2V0T3ZlcnNjcm9sbCA9ICgpID0+IFsnYXV0bycsICdjb250YWluJywgJ25vbmUnXTtcbiAgY29uc3QgZ2V0T3ZlcmZsb3cgPSAoKSA9PiBbJ2F1dG8nLCAnaGlkZGVuJywgJ2NsaXAnLCAndmlzaWJsZScsICdzY3JvbGwnXTtcbiAgY29uc3QgZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ107XG4gIGNvbnN0IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5ID0gKCkgPT4gW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmddO1xuICBjb25zdCBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkgPSAoKSA9PiBbJycsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF07XG4gIGNvbnN0IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNOdW1iZXIsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICBjb25zdCBnZXRQb3NpdGlvbnMgPSAoKSA9PiBbJ2JvdHRvbScsICdjZW50ZXInLCAnbGVmdCcsICdsZWZ0LWJvdHRvbScsICdsZWZ0LXRvcCcsICdyaWdodCcsICdyaWdodC1ib3R0b20nLCAncmlnaHQtdG9wJywgJ3RvcCddO1xuICBjb25zdCBnZXRMaW5lU3R5bGVzID0gKCkgPT4gWydzb2xpZCcsICdkYXNoZWQnLCAnZG90dGVkJywgJ2RvdWJsZScsICdub25lJ107XG4gIGNvbnN0IGdldEJsZW5kTW9kZXMgPSAoKSA9PiBbJ25vcm1hbCcsICdtdWx0aXBseScsICdzY3JlZW4nLCAnb3ZlcmxheScsICdkYXJrZW4nLCAnbGlnaHRlbicsICdjb2xvci1kb2RnZScsICdjb2xvci1idXJuJywgJ2hhcmQtbGlnaHQnLCAnc29mdC1saWdodCcsICdkaWZmZXJlbmNlJywgJ2V4Y2x1c2lvbicsICdodWUnLCAnc2F0dXJhdGlvbicsICdjb2xvcicsICdsdW1pbm9zaXR5JywgJ3BsdXMtbGlnaHRlciddO1xuICBjb25zdCBnZXRBbGlnbiA9ICgpID0+IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdiZXR3ZWVuJywgJ2Fyb3VuZCcsICdldmVubHknLCAnc3RyZXRjaCddO1xuICBjb25zdCBnZXRaZXJvQW5kRW1wdHkgPSAoKSA9PiBbJycsICcwJywgaXNBcmJpdHJhcnlWYWx1ZV07XG4gIGNvbnN0IGdldEJyZWFrcyA9ICgpID0+IFsnYXV0bycsICdhdm9pZCcsICdhbGwnLCAnYXZvaWQtcGFnZScsICdwYWdlJywgJ2xlZnQnLCAncmlnaHQnLCAnY29sdW1uJ107XG4gIGNvbnN0IGdldE51bWJlciA9ICgpID0+IFtpc051bWJlciwgaXNBcmJpdHJhcnlOdW1iZXJdO1xuICBjb25zdCBnZXROdW1iZXJBbmRBcmJpdHJhcnkgPSAoKSA9PiBbaXNOdW1iZXIsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICByZXR1cm4ge1xuICAgIGNhY2hlU2l6ZTogNTAwLFxuICAgIHNlcGFyYXRvcjogJzonLFxuICAgIHRoZW1lOiB7XG4gICAgICBjb2xvcnM6IFtpc0FueV0sXG4gICAgICBzcGFjaW5nOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXSxcbiAgICAgIGJsdXI6IFsnbm9uZScsICcnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdLFxuICAgICAgYnJpZ2h0bmVzczogZ2V0TnVtYmVyKCksXG4gICAgICBib3JkZXJDb2xvcjogW2NvbG9yc10sXG4gICAgICBib3JkZXJSYWRpdXM6IFsnbm9uZScsICcnLCAnZnVsbCcsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlWYWx1ZV0sXG4gICAgICBib3JkZXJTcGFjaW5nOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgYm9yZGVyV2lkdGg6IGdldExlbmd0aFdpdGhFbXB0eUFuZEFyYml0cmFyeSgpLFxuICAgICAgY29udHJhc3Q6IGdldE51bWJlcigpLFxuICAgICAgZ3JheXNjYWxlOiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIGh1ZVJvdGF0ZTogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KCksXG4gICAgICBpbnZlcnQ6IGdldFplcm9BbmRFbXB0eSgpLFxuICAgICAgZ2FwOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgZ3JhZGllbnRDb2xvclN0b3BzOiBbY29sb3JzXSxcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zOiBbaXNQZXJjZW50LCBpc0FyYml0cmFyeUxlbmd0aF0sXG4gICAgICBpbnNldDogZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5KCksXG4gICAgICBtYXJnaW46IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSgpLFxuICAgICAgb3BhY2l0eTogZ2V0TnVtYmVyKCksXG4gICAgICBwYWRkaW5nOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgc2F0dXJhdGU6IGdldE51bWJlcigpLFxuICAgICAgc2NhbGU6IGdldE51bWJlcigpLFxuICAgICAgc2VwaWE6IGdldFplcm9BbmRFbXB0eSgpLFxuICAgICAgc2tldzogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KCksXG4gICAgICBzcGFjZTogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIHRyYW5zbGF0ZTogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgIH0sXG4gICAgY2xhc3NHcm91cHM6IHtcbiAgICAgIC8vIExheW91dFxuICAgICAgLyoqXG4gICAgICAgKiBBc3BlY3QgUmF0aW9cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hc3BlY3QtcmF0aW9cbiAgICAgICAqL1xuICAgICAgYXNwZWN0OiBbe1xuICAgICAgICBhc3BlY3Q6IFsnYXV0bycsICdzcXVhcmUnLCAndmlkZW8nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENvbnRhaW5lclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRhaW5lclxuICAgICAgICovXG4gICAgICBjb250YWluZXI6IFsnY29udGFpbmVyJ10sXG4gICAgICAvKipcbiAgICAgICAqIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb2x1bW5zXG4gICAgICAgKi9cbiAgICAgIGNvbHVtbnM6IFt7XG4gICAgICAgIGNvbHVtbnM6IFtpc1RzaGlydFNpemVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJlYWsgQWZ0ZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmVhay1hZnRlclxuICAgICAgICovXG4gICAgICAnYnJlYWstYWZ0ZXInOiBbe1xuICAgICAgICAnYnJlYWstYWZ0ZXInOiBnZXRCcmVha3MoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEJlZm9yZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyZWFrLWJlZm9yZVxuICAgICAgICovXG4gICAgICAnYnJlYWstYmVmb3JlJzogW3tcbiAgICAgICAgJ2JyZWFrLWJlZm9yZSc6IGdldEJyZWFrcygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJlYWsgSW5zaWRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJlYWstaW5zaWRlXG4gICAgICAgKi9cbiAgICAgICdicmVhay1pbnNpZGUnOiBbe1xuICAgICAgICAnYnJlYWstaW5zaWRlJzogWydhdXRvJywgJ2F2b2lkJywgJ2F2b2lkLXBhZ2UnLCAnYXZvaWQtY29sdW1uJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3ggRGVjb3JhdGlvbiBCcmVha1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1kZWNvcmF0aW9uLWJyZWFrXG4gICAgICAgKi9cbiAgICAgICdib3gtZGVjb3JhdGlvbic6IFt7XG4gICAgICAgICdib3gtZGVjb3JhdGlvbic6IFsnc2xpY2UnLCAnY2xvbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJveCBTaXppbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2l6aW5nXG4gICAgICAgKi9cbiAgICAgIGJveDogW3tcbiAgICAgICAgYm94OiBbJ2JvcmRlcicsICdjb250ZW50J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXNwbGF5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGlzcGxheVxuICAgICAgICovXG4gICAgICBkaXNwbGF5OiBbJ2Jsb2NrJywgJ2lubGluZS1ibG9jaycsICdpbmxpbmUnLCAnZmxleCcsICdpbmxpbmUtZmxleCcsICd0YWJsZScsICdpbmxpbmUtdGFibGUnLCAndGFibGUtY2FwdGlvbicsICd0YWJsZS1jZWxsJywgJ3RhYmxlLWNvbHVtbicsICd0YWJsZS1jb2x1bW4tZ3JvdXAnLCAndGFibGUtZm9vdGVyLWdyb3VwJywgJ3RhYmxlLWhlYWRlci1ncm91cCcsICd0YWJsZS1yb3ctZ3JvdXAnLCAndGFibGUtcm93JywgJ2Zsb3ctcm9vdCcsICdncmlkJywgJ2lubGluZS1ncmlkJywgJ2NvbnRlbnRzJywgJ2xpc3QtaXRlbScsICdoaWRkZW4nXSxcbiAgICAgIC8qKlxuICAgICAgICogRmxvYXRzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxvYXRcbiAgICAgICAqL1xuICAgICAgZmxvYXQ6IFt7XG4gICAgICAgIGZsb2F0OiBbJ3JpZ2h0JywgJ2xlZnQnLCAnbm9uZScsICdzdGFydCcsICdlbmQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENsZWFyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY2xlYXJcbiAgICAgICAqL1xuICAgICAgY2xlYXI6IFt7XG4gICAgICAgIGNsZWFyOiBbJ2xlZnQnLCAncmlnaHQnLCAnYm90aCcsICdub25lJywgJ3N0YXJ0JywgJ2VuZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSXNvbGF0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaXNvbGF0aW9uXG4gICAgICAgKi9cbiAgICAgIGlzb2xhdGlvbjogWydpc29sYXRlJywgJ2lzb2xhdGlvbi1hdXRvJ10sXG4gICAgICAvKipcbiAgICAgICAqIE9iamVjdCBGaXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vYmplY3QtZml0XG4gICAgICAgKi9cbiAgICAgICdvYmplY3QtZml0JzogW3tcbiAgICAgICAgb2JqZWN0OiBbJ2NvbnRhaW4nLCAnY292ZXInLCAnZmlsbCcsICdub25lJywgJ3NjYWxlLWRvd24nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9iamVjdCBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL29iamVjdC1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnb2JqZWN0LXBvc2l0aW9uJzogW3tcbiAgICAgICAgb2JqZWN0OiBbLi4uZ2V0UG9zaXRpb25zKCksIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdmVyZmxvd1xuICAgICAgICovXG4gICAgICBvdmVyZmxvdzogW3tcbiAgICAgICAgb3ZlcmZsb3c6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyZmxvdyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgJ292ZXJmbG93LXgnOiBbe1xuICAgICAgICAnb3ZlcmZsb3cteCc6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyZmxvdyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgJ292ZXJmbG93LXknOiBbe1xuICAgICAgICAnb3ZlcmZsb3cteSc6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyc2Nyb2xsIEJlaGF2aW9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICBvdmVyc2Nyb2xsOiBbe1xuICAgICAgICBvdmVyc2Nyb2xsOiBnZXRPdmVyc2Nyb2xsKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyc2Nyb2xsIEJlaGF2aW9yIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdmVyc2Nyb2xsLWJlaGF2aW9yXG4gICAgICAgKi9cbiAgICAgICdvdmVyc2Nyb2xsLXgnOiBbe1xuICAgICAgICAnb3ZlcnNjcm9sbC14JzogZ2V0T3ZlcnNjcm9sbCgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvciBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICAnb3ZlcnNjcm9sbC15JzogW3tcbiAgICAgICAgJ292ZXJzY3JvbGwteSc6IGdldE92ZXJzY3JvbGwoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgcG9zaXRpb246IFsnc3RhdGljJywgJ2ZpeGVkJywgJ2Fic29sdXRlJywgJ3JlbGF0aXZlJywgJ3N0aWNreSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3AgLyBSaWdodCAvIEJvdHRvbSAvIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgaW5zZXQ6IFt7XG4gICAgICAgIGluc2V0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmlnaHQgLyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgICdpbnNldC14JzogW3tcbiAgICAgICAgJ2luc2V0LXgnOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wIC8gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgICdpbnNldC15JzogW3tcbiAgICAgICAgJ2luc2V0LXknOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgc3RhcnQ6IFt7XG4gICAgICAgIHN0YXJ0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGVuZDogW3tcbiAgICAgICAgZW5kOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHRvcDogW3tcbiAgICAgICAgdG9wOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgcmlnaHQ6IFt7XG4gICAgICAgIHJpZ2h0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGJvdHRvbTogW3tcbiAgICAgICAgYm90dG9tOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBsZWZ0OiBbe1xuICAgICAgICBsZWZ0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVmlzaWJpbGl0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Zpc2liaWxpdHlcbiAgICAgICAqL1xuICAgICAgdmlzaWJpbGl0eTogWyd2aXNpYmxlJywgJ2ludmlzaWJsZScsICdjb2xsYXBzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBaLUluZGV4XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvei1pbmRleFxuICAgICAgICovXG4gICAgICB6OiBbe1xuICAgICAgICB6OiBbJ2F1dG8nLCBpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEZsZXhib3ggYW5kIEdyaWRcbiAgICAgIC8qKlxuICAgICAgICogRmxleCBCYXNpc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtYmFzaXNcbiAgICAgICAqL1xuICAgICAgYmFzaXM6IFt7XG4gICAgICAgIGJhc2lzOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggRGlyZWN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC1kaXJlY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogW3tcbiAgICAgICAgZmxleDogWydyb3cnLCAncm93LXJldmVyc2UnLCAnY29sJywgJ2NvbC1yZXZlcnNlJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IFdyYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LXdyYXBcbiAgICAgICAqL1xuICAgICAgJ2ZsZXgtd3JhcCc6IFt7XG4gICAgICAgIGZsZXg6IFsnd3JhcCcsICd3cmFwLXJldmVyc2UnLCAnbm93cmFwJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleFxuICAgICAgICovXG4gICAgICBmbGV4OiBbe1xuICAgICAgICBmbGV4OiBbJzEnLCAnYXV0bycsICdpbml0aWFsJywgJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggR3Jvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtZ3Jvd1xuICAgICAgICovXG4gICAgICBncm93OiBbe1xuICAgICAgICBncm93OiBnZXRaZXJvQW5kRW1wdHkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggU2hyaW5rXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC1zaHJpbmtcbiAgICAgICAqL1xuICAgICAgc2hyaW5rOiBbe1xuICAgICAgICBzaHJpbms6IGdldFplcm9BbmRFbXB0eSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3JkZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vcmRlclxuICAgICAgICovXG4gICAgICBvcmRlcjogW3tcbiAgICAgICAgb3JkZXI6IFsnZmlyc3QnLCAnbGFzdCcsICdub25lJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgVGVtcGxhdGUgQ29sdW1uc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtdGVtcGxhdGUtY29sdW1uc1xuICAgICAgICovXG4gICAgICAnZ3JpZC1jb2xzJzogW3tcbiAgICAgICAgJ2dyaWQtY29scyc6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIENvbHVtbiBTdGFydCAvIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtc3RhcnQtZW5kJzogW3tcbiAgICAgICAgY29sOiBbJ2F1dG8nLCB7XG4gICAgICAgICAgc3BhbjogWydmdWxsJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgICB9LCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQ29sdW1uIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1jb2x1bW5cbiAgICAgICAqL1xuICAgICAgJ2NvbC1zdGFydCc6IFt7XG4gICAgICAgICdjb2wtc3RhcnQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBDb2x1bW4gRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1jb2x1bW5cbiAgICAgICAqL1xuICAgICAgJ2NvbC1lbmQnOiBbe1xuICAgICAgICAnY29sLWVuZCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFRlbXBsYXRlIFJvd3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXRlbXBsYXRlLXJvd3NcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtcm93cyc6IFt7XG4gICAgICAgICdncmlkLXJvd3MnOiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgU3RhcnQgLyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LXN0YXJ0LWVuZCc6IFt7XG4gICAgICAgIHJvdzogWydhdXRvJywge1xuICAgICAgICAgIHNwYW46IFtpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICAgIH0sIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LXN0YXJ0JzogW3tcbiAgICAgICAgJ3Jvdy1zdGFydCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFJvdyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LWVuZCc6IFt7XG4gICAgICAgICdyb3ctZW5kJzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQXV0byBGbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1hdXRvLWZsb3dcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtZmxvdyc6IFt7XG4gICAgICAgICdncmlkLWZsb3cnOiBbJ3JvdycsICdjb2wnLCAnZGVuc2UnLCAncm93LWRlbnNlJywgJ2NvbC1kZW5zZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBBdXRvIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWF1dG8tY29sdW1uc1xuICAgICAgICovXG4gICAgICAnYXV0by1jb2xzJzogW3tcbiAgICAgICAgJ2F1dG8tY29scyc6IFsnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIEF1dG8gUm93c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtYXV0by1yb3dzXG4gICAgICAgKi9cbiAgICAgICdhdXRvLXJvd3MnOiBbe1xuICAgICAgICAnYXV0by1yb3dzJzogWydhdXRvJywgJ21pbicsICdtYXgnLCAnZnInLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdhcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICBnYXA6IFt7XG4gICAgICAgIGdhcDogW2dhcF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXAgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICAnZ2FwLXgnOiBbe1xuICAgICAgICAnZ2FwLXgnOiBbZ2FwXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdhcCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ2FwXG4gICAgICAgKi9cbiAgICAgICdnYXAteSc6IFt7XG4gICAgICAgICdnYXAteSc6IFtnYXBdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvanVzdGlmeS1jb250ZW50XG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBbe1xuICAgICAgICBqdXN0aWZ5OiBbJ25vcm1hbCcsIC4uLmdldEFsaWduKCldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBJdGVtc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3RpZnktaXRlbXNcbiAgICAgICAqL1xuICAgICAgJ2p1c3RpZnktaXRlbXMnOiBbe1xuICAgICAgICAnanVzdGlmeS1pdGVtcyc6IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LXNlbGZcbiAgICAgICAqL1xuICAgICAgJ2p1c3RpZnktc2VsZic6IFt7XG4gICAgICAgICdqdXN0aWZ5LXNlbGYnOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbGlnbiBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYWxpZ24tY29udGVudFxuICAgICAgICovXG4gICAgICAnYWxpZ24tY29udGVudCc6IFt7XG4gICAgICAgIGNvbnRlbnQ6IFsnbm9ybWFsJywgLi4uZ2V0QWxpZ24oKSwgJ2Jhc2VsaW5lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbGlnbiBJdGVtc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLWl0ZW1zXG4gICAgICAgKi9cbiAgICAgICdhbGlnbi1pdGVtcyc6IFt7XG4gICAgICAgIGl0ZW1zOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnYmFzZWxpbmUnLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gU2VsZlxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLXNlbGZcbiAgICAgICAqL1xuICAgICAgJ2FsaWduLXNlbGYnOiBbe1xuICAgICAgICBzZWxmOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJywgJ2Jhc2VsaW5lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQbGFjZSBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2UtY29udGVudFxuICAgICAgICovXG4gICAgICAncGxhY2UtY29udGVudCc6IFt7XG4gICAgICAgICdwbGFjZS1jb250ZW50JzogWy4uLmdldEFsaWduKCksICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZS1pdGVtc1xuICAgICAgICovXG4gICAgICAncGxhY2UtaXRlbXMnOiBbe1xuICAgICAgICAncGxhY2UtaXRlbXMnOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnYmFzZWxpbmUnLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgU2VsZlxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlLXNlbGZcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLXNlbGYnOiBbe1xuICAgICAgICAncGxhY2Utc2VsZic6IFsnYXV0bycsICdzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvLyBTcGFjaW5nXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHA6IFt7XG4gICAgICAgIHA6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHg6IFt7XG4gICAgICAgIHB4OiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB5OiBbe1xuICAgICAgICBweTogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHM6IFt7XG4gICAgICAgIHBzOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGU6IFt7XG4gICAgICAgIHBlOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHQ6IFt7XG4gICAgICAgIHB0OiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwcjogW3tcbiAgICAgICAgcHI6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwYjogW3tcbiAgICAgICAgcGI6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGw6IFt7XG4gICAgICAgIHBsOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbTogW3tcbiAgICAgICAgbTogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBteDogW3tcbiAgICAgICAgbXg6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXk6IFt7XG4gICAgICAgIG15OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtczogW3tcbiAgICAgICAgbXM6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtZTogW3tcbiAgICAgICAgbWU6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtdDogW3tcbiAgICAgICAgbXQ6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG1yOiBbe1xuICAgICAgICBtcjogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG1iOiBbe1xuICAgICAgICBtYjogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtbDogW3tcbiAgICAgICAgbWw6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXgnOiBbe1xuICAgICAgICAnc3BhY2UteCc6IFtzcGFjZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFggUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS14LXJldmVyc2UnOiBbJ3NwYWNlLXgtcmV2ZXJzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zcGFjZVxuICAgICAgICovXG4gICAgICAnc3BhY2UteSc6IFt7XG4gICAgICAgICdzcGFjZS15JzogW3NwYWNlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNwYWNlIEJldHdlZW4gWSBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXktcmV2ZXJzZSc6IFsnc3BhY2UteS1yZXZlcnNlJ10sXG4gICAgICAvLyBTaXppbmdcbiAgICAgIC8qKlxuICAgICAgICogV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aWR0aFxuICAgICAgICovXG4gICAgICB3OiBbe1xuICAgICAgICB3OiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3Z3JywgJ2x2dycsICdkdncnLCBpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1pbi1XaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21pbi13aWR0aFxuICAgICAgICovXG4gICAgICAnbWluLXcnOiBbe1xuICAgICAgICAnbWluLXcnOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ21pbicsICdtYXgnLCAnZml0J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXgtV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXgtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ21heC13JzogW3tcbiAgICAgICAgJ21heC13JzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdub25lJywgJ2Z1bGwnLCAnbWluJywgJ21heCcsICdmaXQnLCAncHJvc2UnLCB7XG4gICAgICAgICAgc2NyZWVuOiBbaXNUc2hpcnRTaXplXVxuICAgICAgICB9LCBpc1RzaGlydFNpemVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSGVpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgIGg6IFt7XG4gICAgICAgIGg6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWluLUhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21pbi1oZWlnaHRcbiAgICAgICAqL1xuICAgICAgJ21pbi1oJzogW3tcbiAgICAgICAgJ21pbi1oJzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWF4LUhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21heC1oZWlnaHRcbiAgICAgICAqL1xuICAgICAgJ21heC1oJzogW3tcbiAgICAgICAgJ21heC1oJzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2l6ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NpemVcbiAgICAgICAqL1xuICAgICAgc2l6ZTogW3tcbiAgICAgICAgc2l6ZTogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdhdXRvJywgJ21pbicsICdtYXgnLCAnZml0J11cbiAgICAgIH1dLFxuICAgICAgLy8gVHlwb2dyYXBoeVxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXNpemVcbiAgICAgICAqL1xuICAgICAgJ2ZvbnQtc2l6ZSc6IFt7XG4gICAgICAgIHRleHQ6IFsnYmFzZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBTbW9vdGhpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXNtb290aGluZ1xuICAgICAgICovXG4gICAgICAnZm9udC1zbW9vdGhpbmcnOiBbJ2FudGlhbGlhc2VkJywgJ3N1YnBpeGVsLWFudGlhbGlhc2VkJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdmb250LXN0eWxlJzogWydpdGFsaWMnLCAnbm90LWl0YWxpYyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFdlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtd2VpZ2h0XG4gICAgICAgKi9cbiAgICAgICdmb250LXdlaWdodCc6IFt7XG4gICAgICAgIGZvbnQ6IFsndGhpbicsICdleHRyYWxpZ2h0JywgJ2xpZ2h0JywgJ25vcm1hbCcsICdtZWRpdW0nLCAnc2VtaWJvbGQnLCAnYm9sZCcsICdleHRyYWJvbGQnLCAnYmxhY2snLCBpc0FyYml0cmFyeU51bWJlcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IEZhbWlseVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtZmFtaWx5XG4gICAgICAgKi9cbiAgICAgICdmb250LWZhbWlseSc6IFt7XG4gICAgICAgIGZvbnQ6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tbm9ybWFsJzogWydub3JtYWwtbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tb3JkaW5hbCc6IFsnb3JkaW5hbCddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tc2xhc2hlZC16ZXJvJzogWydzbGFzaGVkLXplcm8nXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLWZpZ3VyZSc6IFsnbGluaW5nLW51bXMnLCAnb2xkc3R5bGUtbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tc3BhY2luZyc6IFsncHJvcG9ydGlvbmFsLW51bXMnLCAndGFidWxhci1udW1zJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgVmFyaWFudCBOdW1lcmljXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcbiAgICAgICAqL1xuICAgICAgJ2Z2bi1mcmFjdGlvbic6IFsnZGlhZ29uYWwtZnJhY3Rpb25zJywgJ3N0YWNrZWQtZnJhY3RvbnMnXSxcbiAgICAgIC8qKlxuICAgICAgICogTGV0dGVyIFNwYWNpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9sZXR0ZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICB0cmFja2luZzogW3tcbiAgICAgICAgdHJhY2tpbmc6IFsndGlnaHRlcicsICd0aWdodCcsICdub3JtYWwnLCAnd2lkZScsICd3aWRlcicsICd3aWRlc3QnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpbmUgQ2xhbXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saW5lLWNsYW1wXG4gICAgICAgKi9cbiAgICAgICdsaW5lLWNsYW1wJzogW3tcbiAgICAgICAgJ2xpbmUtY2xhbXAnOiBbJ25vbmUnLCBpc051bWJlciwgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGluZSBIZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saW5lLWhlaWdodFxuICAgICAgICovXG4gICAgICBsZWFkaW5nOiBbe1xuICAgICAgICBsZWFkaW5nOiBbJ25vbmUnLCAndGlnaHQnLCAnc251ZycsICdub3JtYWwnLCAncmVsYXhlZCcsICdsb29zZScsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpc3QgU3R5bGUgSW1hZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saXN0LXN0eWxlLWltYWdlXG4gICAgICAgKi9cbiAgICAgICdsaXN0LWltYWdlJzogW3tcbiAgICAgICAgJ2xpc3QtaW1hZ2UnOiBbJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpc3QgU3R5bGUgVHlwZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtdHlwZVxuICAgICAgICovXG4gICAgICAnbGlzdC1zdHlsZS10eXBlJzogW3tcbiAgICAgICAgbGlzdDogWydub25lJywgJ2Rpc2MnLCAnZGVjaW1hbCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ2xpc3Qtc3R5bGUtcG9zaXRpb24nOiBbe1xuICAgICAgICBsaXN0OiBbJ2luc2lkZScsICdvdXRzaWRlJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQbGFjZWhvbGRlciBDb2xvclxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlaG9sZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdwbGFjZWhvbGRlci1jb2xvcic6IFt7XG4gICAgICAgIHBsYWNlaG9sZGVyOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlaG9sZGVyIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZWhvbGRlci1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICdwbGFjZWhvbGRlci1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3BsYWNlaG9sZGVyLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IEFsaWdubWVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtYWxpZ25cbiAgICAgICAqL1xuICAgICAgJ3RleHQtYWxpZ25tZW50JzogW3tcbiAgICAgICAgdGV4dDogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCcsICdqdXN0aWZ5JywgJ3N0YXJ0JywgJ2VuZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3RleHQtY29sb3InOiBbe1xuICAgICAgICB0ZXh0OiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAndGV4dC1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3RleHQtb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvblxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uJzogWyd1bmRlcmxpbmUnLCAnb3ZlcmxpbmUnLCAnbGluZS10aHJvdWdoJywgJ25vLXVuZGVybGluZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ3RleHQtZGVjb3JhdGlvbi1zdHlsZSc6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFsuLi5nZXRMaW5lU3R5bGVzKCksICd3YXZ5J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gVGhpY2tuZXNzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzc1xuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyc6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFsnYXV0bycsICdmcm9tLWZvbnQnLCBpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBVbmRlcmxpbmUgT2Zmc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC11bmRlcmxpbmUtb2Zmc2V0XG4gICAgICAgKi9cbiAgICAgICd1bmRlcmxpbmUtb2Zmc2V0JzogW3tcbiAgICAgICAgJ3VuZGVybGluZS1vZmZzZXQnOiBbJ2F1dG8nLCBpc0xlbmd0aCwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3RleHQtZGVjb3JhdGlvbi1jb2xvcic6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBUcmFuc2Zvcm1cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXRyYW5zZm9ybVxuICAgICAgICovXG4gICAgICAndGV4dC10cmFuc2Zvcm0nOiBbJ3VwcGVyY2FzZScsICdsb3dlcmNhc2UnLCAnY2FwaXRhbGl6ZScsICdub3JtYWwtY2FzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IE92ZXJmbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1vdmVyZmxvd1xuICAgICAgICovXG4gICAgICAndGV4dC1vdmVyZmxvdyc6IFsndHJ1bmNhdGUnLCAndGV4dC1lbGxpcHNpcycsICd0ZXh0LWNsaXAnXSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBXcmFwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC13cmFwXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LXdyYXAnOiBbe1xuICAgICAgICB0ZXh0OiBbJ3dyYXAnLCAnbm93cmFwJywgJ2JhbGFuY2UnLCAncHJldHR5J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IEluZGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtaW5kZW50XG4gICAgICAgKi9cbiAgICAgIGluZGVudDogW3tcbiAgICAgICAgaW5kZW50OiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVmVydGljYWwgQWxpZ25tZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdmVydGljYWwtYWxpZ25cbiAgICAgICAqL1xuICAgICAgJ3ZlcnRpY2FsLWFsaWduJzogW3tcbiAgICAgICAgYWxpZ246IFsnYmFzZWxpbmUnLCAndG9wJywgJ21pZGRsZScsICdib3R0b20nLCAndGV4dC10b3AnLCAndGV4dC1ib3R0b20nLCAnc3ViJywgJ3N1cGVyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBXaGl0ZXNwYWNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2hpdGVzcGFjZVxuICAgICAgICovXG4gICAgICB3aGl0ZXNwYWNlOiBbe1xuICAgICAgICB3aGl0ZXNwYWNlOiBbJ25vcm1hbCcsICdub3dyYXAnLCAncHJlJywgJ3ByZS1saW5lJywgJ3ByZS13cmFwJywgJ2JyZWFrLXNwYWNlcyddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogV29yZCBCcmVha1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3dvcmQtYnJlYWtcbiAgICAgICAqL1xuICAgICAgYnJlYWs6IFt7XG4gICAgICAgIGJyZWFrOiBbJ25vcm1hbCcsICd3b3JkcycsICdhbGwnLCAna2VlcCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSHlwaGVuc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2h5cGhlbnNcbiAgICAgICAqL1xuICAgICAgaHlwaGVuczogW3tcbiAgICAgICAgaHlwaGVuczogWydub25lJywgJ21hbnVhbCcsICdhdXRvJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudFxuICAgICAgICovXG4gICAgICBjb250ZW50OiBbe1xuICAgICAgICBjb250ZW50OiBbJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBCYWNrZ3JvdW5kc1xuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEF0dGFjaG1lbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWF0dGFjaG1lbnRcbiAgICAgICAqL1xuICAgICAgJ2JnLWF0dGFjaG1lbnQnOiBbe1xuICAgICAgICBiZzogWydmaXhlZCcsICdsb2NhbCcsICdzY3JvbGwnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgQ2xpcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtY2xpcFxuICAgICAgICovXG4gICAgICAnYmctY2xpcCc6IFt7XG4gICAgICAgICdiZy1jbGlwJzogWydib3JkZXInLCAncGFkZGluZycsICdjb250ZW50JywgJ3RleHQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgT3BhY2l0eVxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYmctb3BhY2l0eSc6IFt7XG4gICAgICAgICdiZy1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBPcmlnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLW9yaWdpblxuICAgICAgICovXG4gICAgICAnYmctb3JpZ2luJzogW3tcbiAgICAgICAgJ2JnLW9yaWdpbic6IFsnYm9yZGVyJywgJ3BhZGRpbmcnLCAnY29udGVudCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ2JnLXBvc2l0aW9uJzogW3tcbiAgICAgICAgYmc6IFsuLi5nZXRQb3NpdGlvbnMoKSwgaXNBcmJpdHJhcnlQb3NpdGlvbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIFJlcGVhdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtcmVwZWF0XG4gICAgICAgKi9cbiAgICAgICdiZy1yZXBlYXQnOiBbe1xuICAgICAgICBiZzogWyduby1yZXBlYXQnLCB7XG4gICAgICAgICAgcmVwZWF0OiBbJycsICd4JywgJ3knLCAncm91bmQnLCAnc3BhY2UnXVxuICAgICAgICB9XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgU2l6ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtc2l6ZVxuICAgICAgICovXG4gICAgICAnYmctc2l6ZSc6IFt7XG4gICAgICAgIGJnOiBbJ2F1dG8nLCAnY292ZXInLCAnY29udGFpbicsIGlzQXJiaXRyYXJ5U2l6ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEltYWdlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1pbWFnZVxuICAgICAgICovXG4gICAgICAnYmctaW1hZ2UnOiBbe1xuICAgICAgICBiZzogWydub25lJywge1xuICAgICAgICAgICdncmFkaWVudC10byc6IFsndCcsICd0cicsICdyJywgJ2JyJywgJ2InLCAnYmwnLCAnbCcsICd0bCddXG4gICAgICAgIH0sIGlzQXJiaXRyYXJ5SW1hZ2VdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JnLWNvbG9yJzogW3tcbiAgICAgICAgYmc6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgRnJvbSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC1mcm9tLXBvcyc6IFt7XG4gICAgICAgIGZyb206IFtncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBWaWEgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdmlhLXBvcyc6IFt7XG4gICAgICAgIHZpYTogW2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFRvIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LXRvLXBvcyc6IFt7XG4gICAgICAgIHRvOiBbZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgRnJvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC1mcm9tJzogW3tcbiAgICAgICAgZnJvbTogW2dyYWRpZW50Q29sb3JTdG9wc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBWaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdmlhJzogW3tcbiAgICAgICAgdmlhOiBbZ3JhZGllbnRDb2xvclN0b3BzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFRvXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LXRvJzogW3tcbiAgICAgICAgdG86IFtncmFkaWVudENvbG9yU3RvcHNdXG4gICAgICB9XSxcbiAgICAgIC8vIEJvcmRlcnNcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgcm91bmRlZDogW3tcbiAgICAgICAgcm91bmRlZDogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1zJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtcyc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWUnOiBbe1xuICAgICAgICAncm91bmRlZC1lJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtdCc6IFt7XG4gICAgICAgICdyb3VuZGVkLXQnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXInOiBbe1xuICAgICAgICAncm91bmRlZC1yJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYic6IFt7XG4gICAgICAgICdyb3VuZGVkLWInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtbCc6IFt7XG4gICAgICAgICdyb3VuZGVkLWwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnQgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXNzJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtc3MnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnQgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1zZSc6IFt7XG4gICAgICAgICdyb3VuZGVkLXNlJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEVuZCBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWVlJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtZWUnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgRW5kIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1lcyc6IFt7XG4gICAgICAgICdyb3VuZGVkLWVzJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcCBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10bCc6IFt7XG4gICAgICAgICdyb3VuZGVkLXRsJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcCBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtdHInOiBbe1xuICAgICAgICAncm91bmRlZC10cic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBCb3R0b20gUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWJyJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYnInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgQm90dG9tIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWJsJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYmwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcnOiBbe1xuICAgICAgICBib3JkZXI6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcteCc6IFt7XG4gICAgICAgICdib3JkZXIteCc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcteSc6IFt7XG4gICAgICAgICdib3JkZXIteSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXMnOiBbe1xuICAgICAgICAnYm9yZGVyLXMnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctZSc6IFt7XG4gICAgICAgICdib3JkZXItZSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy10JzogW3tcbiAgICAgICAgJ2JvcmRlci10JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctcic6IFt7XG4gICAgICAgICdib3JkZXItcic6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1iJzogW3tcbiAgICAgICAgJ2JvcmRlci1iJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1sJzogW3tcbiAgICAgICAgJ2JvcmRlci1sJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2JvcmRlci1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItc3R5bGUnOiBbe1xuICAgICAgICBib3JkZXI6IFsuLi5nZXRMaW5lU3R5bGVzKCksICdoaWRkZW4nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteCc6IFt7XG4gICAgICAgICdkaXZpZGUteCc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWCBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteC1yZXZlcnNlJzogWydkaXZpZGUteC1yZXZlcnNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteSc6IFt7XG4gICAgICAgICdkaXZpZGUteSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWSBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteS1yZXZlcnNlJzogWydkaXZpZGUteS1yZXZlcnNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2RpdmlkZS1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUtc3R5bGUnOiBbe1xuICAgICAgICBkaXZpZGU6IGdldExpbmVTdHlsZXMoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yJzogW3tcbiAgICAgICAgYm9yZGVyOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci14JzogW3tcbiAgICAgICAgJ2JvcmRlci14JzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3IteSc6IFt7XG4gICAgICAgICdib3JkZXIteSc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItdCc6IFt7XG4gICAgICAgICdib3JkZXItdCc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci1yJzogW3tcbiAgICAgICAgJ2JvcmRlci1yJzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci1iJzogW3tcbiAgICAgICAgJ2JvcmRlci1iJzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItbCc6IFt7XG4gICAgICAgICdib3JkZXItbCc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1jb2xvcic6IFt7XG4gICAgICAgIGRpdmlkZTogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLXN0eWxlJzogW3tcbiAgICAgICAgb3V0bGluZTogWycnLCAuLi5nZXRMaW5lU3R5bGVzKCldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBPZmZzZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLW9mZnNldFxuICAgICAgICovXG4gICAgICAnb3V0bGluZS1vZmZzZXQnOiBbe1xuICAgICAgICAnb3V0bGluZS1vZmZzZXQnOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL291dGxpbmUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtdyc6IFt7XG4gICAgICAgIG91dGxpbmU6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL291dGxpbmUtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtY29sb3InOiBbe1xuICAgICAgICBvdXRsaW5lOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLXcnOiBbe1xuICAgICAgICByaW5nOiBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgV2lkdGggSW5zZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLXctaW5zZXQnOiBbJ3JpbmctaW5zZXQnXSxcbiAgICAgIC8qKlxuICAgICAgICogUmluZyBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3JpbmctY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3JpbmctY29sb3InOiBbe1xuICAgICAgICByaW5nOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb3BhY2l0eVxuICAgICAgICovXG4gICAgICAncmluZy1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3Jpbmctb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT2Zmc2V0IFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy1vZmZzZXQtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb2Zmc2V0LXcnOiBbe1xuICAgICAgICAncmluZy1vZmZzZXQnOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT2Zmc2V0IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy1vZmZzZXQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb2Zmc2V0LWNvbG9yJzogW3tcbiAgICAgICAgJ3Jpbmctb2Zmc2V0JzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLy8gRWZmZWN0c1xuICAgICAgLyoqXG4gICAgICAgKiBCb3ggU2hhZG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm94LXNoYWRvd1xuICAgICAgICovXG4gICAgICBzaGFkb3c6IFt7XG4gICAgICAgIHNoYWRvdzogWycnLCAnaW5uZXInLCAnbm9uZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlTaGFkb3ddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm94IFNoYWRvdyBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1zaGFkb3ctY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3NoYWRvdy1jb2xvcic6IFt7XG4gICAgICAgIHNoYWRvdzogW2lzQW55XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgIG9wYWNpdHk6IFt7XG4gICAgICAgIG9wYWNpdHk6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1peCBCbGVuZCBNb2RlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWl4LWJsZW5kLW1vZGVcbiAgICAgICAqL1xuICAgICAgJ21peC1ibGVuZCc6IFt7XG4gICAgICAgICdtaXgtYmxlbmQnOiBnZXRCbGVuZE1vZGVzKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEJsZW5kIE1vZGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWJsZW5kLW1vZGVcbiAgICAgICAqL1xuICAgICAgJ2JnLWJsZW5kJzogW3tcbiAgICAgICAgJ2JnLWJsZW5kJzogZ2V0QmxlbmRNb2RlcygpXG4gICAgICB9XSxcbiAgICAgIC8vIEZpbHRlcnNcbiAgICAgIC8qKlxuICAgICAgICogRmlsdGVyXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmlsdGVyXG4gICAgICAgKi9cbiAgICAgIGZpbHRlcjogW3tcbiAgICAgICAgZmlsdGVyOiBbJycsICdub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCbHVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmx1clxuICAgICAgICovXG4gICAgICBibHVyOiBbe1xuICAgICAgICBibHVyOiBbYmx1cl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCcmlnaHRuZXNzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJpZ2h0bmVzc1xuICAgICAgICovXG4gICAgICBicmlnaHRuZXNzOiBbe1xuICAgICAgICBicmlnaHRuZXNzOiBbYnJpZ2h0bmVzc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250cmFzdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRyYXN0XG4gICAgICAgKi9cbiAgICAgIGNvbnRyYXN0OiBbe1xuICAgICAgICBjb250cmFzdDogW2NvbnRyYXN0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERyb3AgU2hhZG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZHJvcC1zaGFkb3dcbiAgICAgICAqL1xuICAgICAgJ2Ryb3Atc2hhZG93JzogW3tcbiAgICAgICAgJ2Ryb3Atc2hhZG93JzogWycnLCAnbm9uZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmF5c2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmF5c2NhbGVcbiAgICAgICAqL1xuICAgICAgZ3JheXNjYWxlOiBbe1xuICAgICAgICBncmF5c2NhbGU6IFtncmF5c2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSHVlIFJvdGF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2h1ZS1yb3RhdGVcbiAgICAgICAqL1xuICAgICAgJ2h1ZS1yb3RhdGUnOiBbe1xuICAgICAgICAnaHVlLXJvdGF0ZSc6IFtodWVSb3RhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSW52ZXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaW52ZXJ0XG4gICAgICAgKi9cbiAgICAgIGludmVydDogW3tcbiAgICAgICAgaW52ZXJ0OiBbaW52ZXJ0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNhdHVyYXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2F0dXJhdGVcbiAgICAgICAqL1xuICAgICAgc2F0dXJhdGU6IFt7XG4gICAgICAgIHNhdHVyYXRlOiBbc2F0dXJhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2VwaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zZXBpYVxuICAgICAgICovXG4gICAgICBzZXBpYTogW3tcbiAgICAgICAgc2VwaWE6IFtzZXBpYV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBGaWx0ZXJcbiAgICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIFRhaWx3aW5kIENTUyB2My4wLjBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1maWx0ZXJcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWZpbHRlcic6IFt7XG4gICAgICAgICdiYWNrZHJvcC1maWx0ZXInOiBbJycsICdub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBCbHVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtYmx1clxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtYmx1cic6IFt7XG4gICAgICAgICdiYWNrZHJvcC1ibHVyJzogW2JsdXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgQnJpZ2h0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJyaWdodG5lc3NcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWJyaWdodG5lc3MnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtYnJpZ2h0bmVzcyc6IFticmlnaHRuZXNzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIENvbnRyYXN0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtY29udHJhc3RcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWNvbnRyYXN0JzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWNvbnRyYXN0JzogW2NvbnRyYXN0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEdyYXlzY2FsZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWdyYXlzY2FsZVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtZ3JheXNjYWxlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWdyYXlzY2FsZSc6IFtncmF5c2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgSHVlIFJvdGF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWh1ZS1yb3RhdGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWh1ZS1yb3RhdGUnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtaHVlLXJvdGF0ZSc6IFtodWVSb3RhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgSW52ZXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtaW52ZXJ0XG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1pbnZlcnQnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtaW52ZXJ0JzogW2ludmVydF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atb3BhY2l0eSc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgU2F0dXJhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1zYXR1cmF0ZVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atc2F0dXJhdGUnOiBbe1xuICAgICAgICAnYmFja2Ryb3Atc2F0dXJhdGUnOiBbc2F0dXJhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgU2VwaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1zZXBpYVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atc2VwaWEnOiBbe1xuICAgICAgICAnYmFja2Ryb3Atc2VwaWEnOiBbc2VwaWFdXG4gICAgICB9XSxcbiAgICAgIC8vIFRhYmxlc1xuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sbGFwc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sbGFwc2VcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xsYXBzZSc6IFt7XG4gICAgICAgIGJvcmRlcjogWydjb2xsYXBzZScsICdzZXBhcmF0ZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFNwYWNpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbYm9yZGVyU3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3BhY2luZyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nLXgnOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcteCc6IFtib3JkZXJTcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBTcGFjaW5nIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICAnYm9yZGVyLXNwYWNpbmcteSc6IFt7XG4gICAgICAgICdib3JkZXItc3BhY2luZy15JzogW2JvcmRlclNwYWNpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGFibGUgTGF5b3V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGFibGUtbGF5b3V0XG4gICAgICAgKi9cbiAgICAgICd0YWJsZS1sYXlvdXQnOiBbe1xuICAgICAgICB0YWJsZTogWydhdXRvJywgJ2ZpeGVkJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDYXB0aW9uIFNpZGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jYXB0aW9uLXNpZGVcbiAgICAgICAqL1xuICAgICAgY2FwdGlvbjogW3tcbiAgICAgICAgY2FwdGlvbjogWyd0b3AnLCAnYm90dG9tJ11cbiAgICAgIH1dLFxuICAgICAgLy8gVHJhbnNpdGlvbnMgYW5kIEFuaW1hdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuaXNpdGlvbiBQcm9wZXJ0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tcHJvcGVydHlcbiAgICAgICAqL1xuICAgICAgdHJhbnNpdGlvbjogW3tcbiAgICAgICAgdHJhbnNpdGlvbjogWydub25lJywgJ2FsbCcsICcnLCAnY29sb3JzJywgJ29wYWNpdHknLCAnc2hhZG93JywgJ3RyYW5zZm9ybScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNpdGlvbiBEdXJhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tZHVyYXRpb25cbiAgICAgICAqL1xuICAgICAgZHVyYXRpb246IFt7XG4gICAgICAgIGR1cmF0aW9uOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gVGltaW5nIEZ1bmN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cbiAgICAgICAqL1xuICAgICAgZWFzZTogW3tcbiAgICAgICAgZWFzZTogWydsaW5lYXInLCAnaW4nLCAnb3V0JywgJ2luLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNpdGlvbiBEZWxheVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tZGVsYXlcbiAgICAgICAqL1xuICAgICAgZGVsYXk6IFt7XG4gICAgICAgIGRlbGF5OiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEFuaW1hdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FuaW1hdGlvblxuICAgICAgICovXG4gICAgICBhbmltYXRlOiBbe1xuICAgICAgICBhbmltYXRlOiBbJ25vbmUnLCAnc3BpbicsICdwaW5nJywgJ3B1bHNlJywgJ2JvdW5jZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIFRyYW5zZm9ybXNcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNmb3JtXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNmb3JtXG4gICAgICAgKi9cbiAgICAgIHRyYW5zZm9ybTogW3tcbiAgICAgICAgdHJhbnNmb3JtOiBbJycsICdncHUnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY2FsZVxuICAgICAgICovXG4gICAgICBzY2FsZTogW3tcbiAgICAgICAgc2NhbGU6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY2FsZSBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgJ3NjYWxlLXgnOiBbe1xuICAgICAgICAnc2NhbGUteCc6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY2FsZSBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgJ3NjYWxlLXknOiBbe1xuICAgICAgICAnc2NhbGUteSc6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yb3RhdGVcbiAgICAgICAqL1xuICAgICAgcm90YXRlOiBbe1xuICAgICAgICByb3RhdGU6IFtpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNsYXRlIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2xhdGVcbiAgICAgICAqL1xuICAgICAgJ3RyYW5zbGF0ZS14JzogW3tcbiAgICAgICAgJ3RyYW5zbGF0ZS14JzogW3RyYW5zbGF0ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuc2xhdGUgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zbGF0ZVxuICAgICAgICovXG4gICAgICAndHJhbnNsYXRlLXknOiBbe1xuICAgICAgICAndHJhbnNsYXRlLXknOiBbdHJhbnNsYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNrZXcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NrZXdcbiAgICAgICAqL1xuICAgICAgJ3NrZXcteCc6IFt7XG4gICAgICAgICdza2V3LXgnOiBbc2tld11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTa2V3IFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XG4gICAgICAgKi9cbiAgICAgICdza2V3LXknOiBbe1xuICAgICAgICAnc2tldy15JzogW3NrZXddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNmb3JtIE9yaWdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zZm9ybS1vcmlnaW5cbiAgICAgICAqL1xuICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiBbe1xuICAgICAgICBvcmlnaW46IFsnY2VudGVyJywgJ3RvcCcsICd0b3AtcmlnaHQnLCAncmlnaHQnLCAnYm90dG9tLXJpZ2h0JywgJ2JvdHRvbScsICdib3R0b20tbGVmdCcsICdsZWZ0JywgJ3RvcC1sZWZ0JywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLy8gSW50ZXJhY3Rpdml0eVxuICAgICAgLyoqXG4gICAgICAgKiBBY2NlbnQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hY2NlbnQtY29sb3JcbiAgICAgICAqL1xuICAgICAgYWNjZW50OiBbe1xuICAgICAgICBhY2NlbnQ6IFsnYXV0bycsIGNvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBcHBlYXJhbmNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYXBwZWFyYW5jZVxuICAgICAgICovXG4gICAgICBhcHBlYXJhbmNlOiBbe1xuICAgICAgICBhcHBlYXJhbmNlOiBbJ25vbmUnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ3Vyc29yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY3Vyc29yXG4gICAgICAgKi9cbiAgICAgIGN1cnNvcjogW3tcbiAgICAgICAgY3Vyc29yOiBbJ2F1dG8nLCAnZGVmYXVsdCcsICdwb2ludGVyJywgJ3dhaXQnLCAndGV4dCcsICdtb3ZlJywgJ2hlbHAnLCAnbm90LWFsbG93ZWQnLCAnbm9uZScsICdjb250ZXh0LW1lbnUnLCAncHJvZ3Jlc3MnLCAnY2VsbCcsICdjcm9zc2hhaXInLCAndmVydGljYWwtdGV4dCcsICdhbGlhcycsICdjb3B5JywgJ25vLWRyb3AnLCAnZ3JhYicsICdncmFiYmluZycsICdhbGwtc2Nyb2xsJywgJ2NvbC1yZXNpemUnLCAncm93LXJlc2l6ZScsICduLXJlc2l6ZScsICdlLXJlc2l6ZScsICdzLXJlc2l6ZScsICd3LXJlc2l6ZScsICduZS1yZXNpemUnLCAnbnctcmVzaXplJywgJ3NlLXJlc2l6ZScsICdzdy1yZXNpemUnLCAnZXctcmVzaXplJywgJ25zLXJlc2l6ZScsICduZXN3LXJlc2l6ZScsICdud3NlLXJlc2l6ZScsICd6b29tLWluJywgJ3pvb20tb3V0JywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDYXJldCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3QtaW4tdGltZS1tb2RlI2NhcmV0LWNvbG9yLXV0aWxpdGllc1xuICAgICAgICovXG4gICAgICAnY2FyZXQtY29sb3InOiBbe1xuICAgICAgICBjYXJldDogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQb2ludGVyIEV2ZW50c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BvaW50ZXItZXZlbnRzXG4gICAgICAgKi9cbiAgICAgICdwb2ludGVyLWV2ZW50cyc6IFt7XG4gICAgICAgICdwb2ludGVyLWV2ZW50cyc6IFsnbm9uZScsICdhdXRvJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSZXNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yZXNpemVcbiAgICAgICAqL1xuICAgICAgcmVzaXplOiBbe1xuICAgICAgICByZXNpemU6IFsnbm9uZScsICd5JywgJ3gnLCAnJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgQmVoYXZpb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1iZWhhdmlvcic6IFt7XG4gICAgICAgIHNjcm9sbDogWydhdXRvJywgJ3Ntb290aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1teCc6IFt7XG4gICAgICAgICdzY3JvbGwtbXgnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW15JzogW3tcbiAgICAgICAgJ3Njcm9sbC1teSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1zJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tcyc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tZSc6IFt7XG4gICAgICAgICdzY3JvbGwtbWUnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXQnOiBbe1xuICAgICAgICAnc2Nyb2xsLW10JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXInOiBbe1xuICAgICAgICAnc2Nyb2xsLW1yJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1iJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tYic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbWwnOiBbe1xuICAgICAgICAnc2Nyb2xsLW1sJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXB4JzogW3tcbiAgICAgICAgJ3Njcm9sbC1weCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1weSc6IFt7XG4gICAgICAgICdzY3JvbGwtcHknOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBzJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wcyc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBlJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wZSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXB0JzogW3tcbiAgICAgICAgJ3Njcm9sbC1wdCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcHInOiBbe1xuICAgICAgICAnc2Nyb2xsLXByJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcGInOiBbe1xuICAgICAgICAnc2Nyb2xsLXBiJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBsJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wbCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBBbGlnblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1zbmFwLWFsaWduXG4gICAgICAgKi9cbiAgICAgICdzbmFwLWFsaWduJzogW3tcbiAgICAgICAgc25hcDogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2FsaWduLW5vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFN0b3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC1zdG9wXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXN0b3AnOiBbe1xuICAgICAgICBzbmFwOiBbJ25vcm1hbCcsICdhbHdheXMnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFR5cGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC10eXBlXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXR5cGUnOiBbe1xuICAgICAgICBzbmFwOiBbJ25vbmUnLCAneCcsICd5JywgJ2JvdGgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFR5cGUgU3RyaWN0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1zbmFwLXR5cGVcbiAgICAgICAqL1xuICAgICAgJ3NuYXAtc3RyaWN0bmVzcyc6IFt7XG4gICAgICAgIHNuYXA6IFsnbWFuZGF0b3J5JywgJ3Byb3hpbWl0eSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIHRvdWNoOiBbe1xuICAgICAgICB0b3VjaDogWydhdXRvJywgJ25vbmUnLCAnbWFuaXB1bGF0aW9uJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3VjaCBBY3Rpb24gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICAndG91Y2gteCc6IFt7XG4gICAgICAgICd0b3VjaC1wYW4nOiBbJ3gnLCAnbGVmdCcsICdyaWdodCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3VjaC1hY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ3RvdWNoLXknOiBbe1xuICAgICAgICAndG91Y2gtcGFuJzogWyd5JywgJ3VwJywgJ2Rvd24nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvbiBQaW5jaCBab29tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgICd0b3VjaC1weic6IFsndG91Y2gtcGluY2gtem9vbSddLFxuICAgICAgLyoqXG4gICAgICAgKiBVc2VyIFNlbGVjdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VzZXItc2VsZWN0XG4gICAgICAgKi9cbiAgICAgIHNlbGVjdDogW3tcbiAgICAgICAgc2VsZWN0OiBbJ25vbmUnLCAndGV4dCcsICdhbGwnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogV2lsbCBDaGFuZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aWxsLWNoYW5nZVxuICAgICAgICovXG4gICAgICAnd2lsbC1jaGFuZ2UnOiBbe1xuICAgICAgICAnd2lsbC1jaGFuZ2UnOiBbJ2F1dG8nLCAnc2Nyb2xsJywgJ2NvbnRlbnRzJywgJ3RyYW5zZm9ybScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIFNWR1xuICAgICAgLyoqXG4gICAgICAgKiBGaWxsXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmlsbFxuICAgICAgICovXG4gICAgICBmaWxsOiBbe1xuICAgICAgICBmaWxsOiBbY29sb3JzLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3Ryb2tlIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3Ryb2tlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdzdHJva2Utdyc6IFt7XG4gICAgICAgIHN0cm9rZTogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aCwgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3Ryb2tlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3Ryb2tlXG4gICAgICAgKi9cbiAgICAgIHN0cm9rZTogW3tcbiAgICAgICAgc3Ryb2tlOiBbY29sb3JzLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8vIEFjY2Vzc2liaWxpdHlcbiAgICAgIC8qKlxuICAgICAgICogU2NyZWVuIFJlYWRlcnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JlZW4tcmVhZGVyc1xuICAgICAgICovXG4gICAgICBzcjogWydzci1vbmx5JywgJ25vdC1zci1vbmx5J10sXG4gICAgICAvKipcbiAgICAgICAqIEZvcmNlZCBDb2xvciBBZGp1c3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb3JjZWQtY29sb3ItYWRqdXN0XG4gICAgICAgKi9cbiAgICAgICdmb3JjZWQtY29sb3ItYWRqdXN0JzogW3tcbiAgICAgICAgJ2ZvcmNlZC1jb2xvci1hZGp1c3QnOiBbJ2F1dG8nLCAnbm9uZSddXG4gICAgICB9XVxuICAgIH0sXG4gICAgY29uZmxpY3RpbmdDbGFzc0dyb3Vwczoge1xuICAgICAgb3ZlcmZsb3c6IFsnb3ZlcmZsb3cteCcsICdvdmVyZmxvdy15J10sXG4gICAgICBvdmVyc2Nyb2xsOiBbJ292ZXJzY3JvbGwteCcsICdvdmVyc2Nyb2xsLXknXSxcbiAgICAgIGluc2V0OiBbJ2luc2V0LXgnLCAnaW5zZXQteScsICdzdGFydCcsICdlbmQnLCAndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10sXG4gICAgICAnaW5zZXQteCc6IFsncmlnaHQnLCAnbGVmdCddLFxuICAgICAgJ2luc2V0LXknOiBbJ3RvcCcsICdib3R0b20nXSxcbiAgICAgIGZsZXg6IFsnYmFzaXMnLCAnZ3JvdycsICdzaHJpbmsnXSxcbiAgICAgIGdhcDogWydnYXAteCcsICdnYXAteSddLFxuICAgICAgcDogWydweCcsICdweScsICdwcycsICdwZScsICdwdCcsICdwcicsICdwYicsICdwbCddLFxuICAgICAgcHg6IFsncHInLCAncGwnXSxcbiAgICAgIHB5OiBbJ3B0JywgJ3BiJ10sXG4gICAgICBtOiBbJ214JywgJ215JywgJ21zJywgJ21lJywgJ210JywgJ21yJywgJ21iJywgJ21sJ10sXG4gICAgICBteDogWydtcicsICdtbCddLFxuICAgICAgbXk6IFsnbXQnLCAnbWInXSxcbiAgICAgIHNpemU6IFsndycsICdoJ10sXG4gICAgICAnZm9udC1zaXplJzogWydsZWFkaW5nJ10sXG4gICAgICAnZnZuLW5vcm1hbCc6IFsnZnZuLW9yZGluYWwnLCAnZnZuLXNsYXNoZWQtemVybycsICdmdm4tZmlndXJlJywgJ2Z2bi1zcGFjaW5nJywgJ2Z2bi1mcmFjdGlvbiddLFxuICAgICAgJ2Z2bi1vcmRpbmFsJzogWydmdm4tbm9ybWFsJ10sXG4gICAgICAnZnZuLXNsYXNoZWQtemVybyc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1maWd1cmUnOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tc3BhY2luZyc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1mcmFjdGlvbic6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2xpbmUtY2xhbXAnOiBbJ2Rpc3BsYXknLCAnb3ZlcmZsb3cnXSxcbiAgICAgIHJvdW5kZWQ6IFsncm91bmRlZC1zJywgJ3JvdW5kZWQtZScsICdyb3VuZGVkLXQnLCAncm91bmRlZC1yJywgJ3JvdW5kZWQtYicsICdyb3VuZGVkLWwnLCAncm91bmRlZC1zcycsICdyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnLCAncm91bmRlZC1lcycsICdyb3VuZGVkLXRsJywgJ3JvdW5kZWQtdHInLCAncm91bmRlZC1icicsICdyb3VuZGVkLWJsJ10sXG4gICAgICAncm91bmRlZC1zJzogWydyb3VuZGVkLXNzJywgJ3JvdW5kZWQtZXMnXSxcbiAgICAgICdyb3VuZGVkLWUnOiBbJ3JvdW5kZWQtc2UnLCAncm91bmRlZC1lZSddLFxuICAgICAgJ3JvdW5kZWQtdCc6IFsncm91bmRlZC10bCcsICdyb3VuZGVkLXRyJ10sXG4gICAgICAncm91bmRlZC1yJzogWydyb3VuZGVkLXRyJywgJ3JvdW5kZWQtYnInXSxcbiAgICAgICdyb3VuZGVkLWInOiBbJ3JvdW5kZWQtYnInLCAncm91bmRlZC1ibCddLFxuICAgICAgJ3JvdW5kZWQtbCc6IFsncm91bmRlZC10bCcsICdyb3VuZGVkLWJsJ10sXG4gICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbJ2JvcmRlci1zcGFjaW5nLXgnLCAnYm9yZGVyLXNwYWNpbmcteSddLFxuICAgICAgJ2JvcmRlci13JzogWydib3JkZXItdy1zJywgJ2JvcmRlci13LWUnLCAnYm9yZGVyLXctdCcsICdib3JkZXItdy1yJywgJ2JvcmRlci13LWInLCAnYm9yZGVyLXctbCddLFxuICAgICAgJ2JvcmRlci13LXgnOiBbJ2JvcmRlci13LXInLCAnYm9yZGVyLXctbCddLFxuICAgICAgJ2JvcmRlci13LXknOiBbJ2JvcmRlci13LXQnLCAnYm9yZGVyLXctYiddLFxuICAgICAgJ2JvcmRlci1jb2xvcic6IFsnYm9yZGVyLWNvbG9yLXQnLCAnYm9yZGVyLWNvbG9yLXInLCAnYm9yZGVyLWNvbG9yLWInLCAnYm9yZGVyLWNvbG9yLWwnXSxcbiAgICAgICdib3JkZXItY29sb3IteCc6IFsnYm9yZGVyLWNvbG9yLXInLCAnYm9yZGVyLWNvbG9yLWwnXSxcbiAgICAgICdib3JkZXItY29sb3IteSc6IFsnYm9yZGVyLWNvbG9yLXQnLCAnYm9yZGVyLWNvbG9yLWInXSxcbiAgICAgICdzY3JvbGwtbSc6IFsnc2Nyb2xsLW14JywgJ3Njcm9sbC1teScsICdzY3JvbGwtbXMnLCAnc2Nyb2xsLW1lJywgJ3Njcm9sbC1tdCcsICdzY3JvbGwtbXInLCAnc2Nyb2xsLW1iJywgJ3Njcm9sbC1tbCddLFxuICAgICAgJ3Njcm9sbC1teCc6IFsnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tbCddLFxuICAgICAgJ3Njcm9sbC1teSc6IFsnc2Nyb2xsLW10JywgJ3Njcm9sbC1tYiddLFxuICAgICAgJ3Njcm9sbC1wJzogWydzY3JvbGwtcHgnLCAnc2Nyb2xsLXB5JywgJ3Njcm9sbC1wcycsICdzY3JvbGwtcGUnLCAnc2Nyb2xsLXB0JywgJ3Njcm9sbC1wcicsICdzY3JvbGwtcGInLCAnc2Nyb2xsLXBsJ10sXG4gICAgICAnc2Nyb2xsLXB4JzogWydzY3JvbGwtcHInLCAnc2Nyb2xsLXBsJ10sXG4gICAgICAnc2Nyb2xsLXB5JzogWydzY3JvbGwtcHQnLCAnc2Nyb2xsLXBiJ10sXG4gICAgICB0b3VjaDogWyd0b3VjaC14JywgJ3RvdWNoLXknLCAndG91Y2gtcHonXSxcbiAgICAgICd0b3VjaC14JzogWyd0b3VjaCddLFxuICAgICAgJ3RvdWNoLXknOiBbJ3RvdWNoJ10sXG4gICAgICAndG91Y2gtcHonOiBbJ3RvdWNoJ11cbiAgICB9LFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyczoge1xuICAgICAgJ2ZvbnQtc2l6ZSc6IFsnbGVhZGluZyddXG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSBiYXNlQ29uZmlnIENvbmZpZyB3aGVyZSBvdGhlciBjb25maWcgd2lsbCBiZSBtZXJnZWQgaW50by4gVGhpcyBvYmplY3Qgd2lsbCBiZSBtdXRhdGVkLlxuICogQHBhcmFtIGNvbmZpZ0V4dGVuc2lvbiBQYXJ0aWFsIGNvbmZpZyB0byBtZXJnZSBpbnRvIHRoZSBgYmFzZUNvbmZpZ2AuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlQ29uZmlncyhiYXNlQ29uZmlnLCB7XG4gIGNhY2hlU2l6ZSxcbiAgcHJlZml4LFxuICBzZXBhcmF0b3IsXG4gIGV4dGVuZCA9IHt9LFxuICBvdmVycmlkZSA9IHt9XG59KSB7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ2NhY2hlU2l6ZScsIGNhY2hlU2l6ZSk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3ByZWZpeCcsIHByZWZpeCk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gIGZvciAoY29uc3QgY29uZmlnS2V5IGluIG92ZXJyaWRlKSB7XG4gICAgb3ZlcnJpZGVDb25maWdQcm9wZXJ0aWVzKGJhc2VDb25maWdbY29uZmlnS2V5XSwgb3ZlcnJpZGVbY29uZmlnS2V5XSk7XG4gIH1cbiAgZm9yIChjb25zdCBrZXkgaW4gZXh0ZW5kKSB7XG4gICAgbWVyZ2VDb25maWdQcm9wZXJ0aWVzKGJhc2VDb25maWdba2V5XSwgZXh0ZW5kW2tleV0pO1xuICB9XG4gIHJldHVybiBiYXNlQ29uZmlnO1xufVxuZnVuY3Rpb24gb3ZlcnJpZGVQcm9wZXJ0eShiYXNlT2JqZWN0LCBvdmVycmlkZUtleSwgb3ZlcnJpZGVWYWx1ZSkge1xuICBpZiAob3ZlcnJpZGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYmFzZU9iamVjdFtvdmVycmlkZUtleV0gPSBvdmVycmlkZVZhbHVlO1xuICB9XG59XG5mdW5jdGlvbiBvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMoYmFzZU9iamVjdCwgb3ZlcnJpZGVPYmplY3QpIHtcbiAgaWYgKG92ZXJyaWRlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVPYmplY3QpIHtcbiAgICAgIG92ZXJyaWRlUHJvcGVydHkoYmFzZU9iamVjdCwga2V5LCBvdmVycmlkZU9iamVjdFtrZXldKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1lcmdlQ29uZmlnUHJvcGVydGllcyhiYXNlT2JqZWN0LCBtZXJnZU9iamVjdCkge1xuICBpZiAobWVyZ2VPYmplY3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBtZXJnZU9iamVjdCkge1xuICAgICAgY29uc3QgbWVyZ2VWYWx1ZSA9IG1lcmdlT2JqZWN0W2tleV07XG4gICAgICBpZiAobWVyZ2VWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJhc2VPYmplY3Rba2V5XSA9IChiYXNlT2JqZWN0W2tleV0gfHwgW10pLmNvbmNhdChtZXJnZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGV4dGVuZFRhaWx3aW5kTWVyZ2UoY29uZmlnRXh0ZW5zaW9uLCAuLi5jcmVhdGVDb25maWcpIHtcbiAgcmV0dXJuIHR5cGVvZiBjb25maWdFeHRlbnNpb24gPT09ICdmdW5jdGlvbicgPyBjcmVhdGVUYWlsd2luZE1lcmdlKGdldERlZmF1bHRDb25maWcsIGNvbmZpZ0V4dGVuc2lvbiwgLi4uY3JlYXRlQ29uZmlnKSA6IGNyZWF0ZVRhaWx3aW5kTWVyZ2UoKCkgPT4gbWVyZ2VDb25maWdzKGdldERlZmF1bHRDb25maWcoKSwgY29uZmlnRXh0ZW5zaW9uKSwgLi4uY3JlYXRlQ29uZmlnKTtcbn1cbmNvbnN0IHR3TWVyZ2UgPSAvKiNfX1BVUkVfXyovY3JlYXRlVGFpbHdpbmRNZXJnZShnZXREZWZhdWx0Q29uZmlnKTtcbmV4cG9ydCB7IGNyZWF0ZVRhaWx3aW5kTWVyZ2UsIGV4dGVuZFRhaWx3aW5kTWVyZ2UsIGZyb21UaGVtZSwgZ2V0RGVmYXVsdENvbmZpZywgbWVyZ2VDb25maWdzLCB0d0pvaW4sIHR3TWVyZ2UsIHZhbGlkYXRvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1bmRsZS1tanMubWpzLm1hcFxuIl0sIm5hbWVzIjpbIkNMQVNTX1BBUlRfU0VQQVJBVE9SIiwiY3JlYXRlQ2xhc3NVdGlscyIsImNvbmZpZyIsImNsYXNzTWFwIiwiY3JlYXRlQ2xhc3NNYXAiLCJjb25mbGljdGluZ0NsYXNzR3JvdXBzIiwiY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzIiwiZ2V0Q2xhc3NHcm91cElkIiwiY2xhc3NOYW1lIiwiY2xhc3NQYXJ0cyIsInNwbGl0IiwibGVuZ3RoIiwic2hpZnQiLCJnZXRHcm91cFJlY3Vyc2l2ZSIsImdldEdyb3VwSWRGb3JBcmJpdHJhcnlQcm9wZXJ0eSIsImdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkcyIsImNsYXNzR3JvdXBJZCIsImhhc1Bvc3RmaXhNb2RpZmllciIsImNvbmZsaWN0cyIsImNsYXNzUGFydE9iamVjdCIsImN1cnJlbnRDbGFzc1BhcnQiLCJuZXh0Q2xhc3NQYXJ0T2JqZWN0IiwibmV4dFBhcnQiLCJnZXQiLCJjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQiLCJzbGljZSIsInVuZGVmaW5lZCIsInZhbGlkYXRvcnMiLCJjbGFzc1Jlc3QiLCJqb2luIiwiZmluZCIsInZhbGlkYXRvciIsImFyYml0cmFyeVByb3BlcnR5UmVnZXgiLCJ0ZXN0IiwiYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUiLCJleGVjIiwicHJvcGVydHkiLCJzdWJzdHJpbmciLCJpbmRleE9mIiwidGhlbWUiLCJwcmVmaXgiLCJNYXAiLCJwcmVmaXhlZENsYXNzR3JvdXBFbnRyaWVzIiwiZ2V0UHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyIsIk9iamVjdCIsImVudHJpZXMiLCJjbGFzc0dyb3VwcyIsImZvckVhY2giLCJjbGFzc0dyb3VwIiwicHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseSIsImNsYXNzRGVmaW5pdGlvbiIsImNsYXNzUGFydE9iamVjdFRvRWRpdCIsImdldFBhcnQiLCJpc1RoZW1lR2V0dGVyIiwicHVzaCIsImtleSIsInBhdGgiLCJjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0IiwicGF0aFBhcnQiLCJoYXMiLCJzZXQiLCJmdW5jIiwiY2xhc3NHcm91cEVudHJpZXMiLCJtYXAiLCJwcmVmaXhlZENsYXNzR3JvdXAiLCJmcm9tRW50cmllcyIsInZhbHVlIiwiY3JlYXRlTHJ1Q2FjaGUiLCJtYXhDYWNoZVNpemUiLCJjYWNoZVNpemUiLCJjYWNoZSIsInByZXZpb3VzQ2FjaGUiLCJ1cGRhdGUiLCJJTVBPUlRBTlRfTU9ESUZJRVIiLCJjcmVhdGVTcGxpdE1vZGlmaWVycyIsInNlcGFyYXRvciIsImlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyIiwiZmlyc3RTZXBhcmF0b3JDaGFyYWN0ZXIiLCJzZXBhcmF0b3JMZW5ndGgiLCJzcGxpdE1vZGlmaWVycyIsIm1vZGlmaWVycyIsImJyYWNrZXREZXB0aCIsIm1vZGlmaWVyU3RhcnQiLCJwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiIsImluZGV4IiwiY3VycmVudENoYXJhY3RlciIsImJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIiLCJoYXNJbXBvcnRhbnRNb2RpZmllciIsInN0YXJ0c1dpdGgiLCJiYXNlQ2xhc3NOYW1lIiwibWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiIsInNvcnRNb2RpZmllcnMiLCJzb3J0ZWRNb2RpZmllcnMiLCJ1bnNvcnRlZE1vZGlmaWVycyIsIm1vZGlmaWVyIiwiaXNBcmJpdHJhcnlWYXJpYW50Iiwic29ydCIsImNyZWF0ZUNvbmZpZ1V0aWxzIiwiU1BMSVRfQ0xBU1NFU19SRUdFWCIsIm1lcmdlQ2xhc3NMaXN0IiwiY2xhc3NMaXN0IiwiY29uZmlnVXRpbHMiLCJjbGFzc0dyb3Vwc0luQ29uZmxpY3QiLCJTZXQiLCJ0cmltIiwib3JpZ2luYWxDbGFzc05hbWUiLCJCb29sZWFuIiwiaXNUYWlsd2luZENsYXNzIiwidmFyaWFudE1vZGlmaWVyIiwibW9kaWZpZXJJZCIsInJldmVyc2UiLCJmaWx0ZXIiLCJwYXJzZWQiLCJjbGFzc0lkIiwiYWRkIiwiZ3JvdXAiLCJ0d0pvaW4iLCJhcmd1bWVudCIsInJlc29sdmVkVmFsdWUiLCJzdHJpbmciLCJhcmd1bWVudHMiLCJ0b1ZhbHVlIiwibWl4IiwiayIsImNyZWF0ZVRhaWx3aW5kTWVyZ2UiLCJjcmVhdGVDb25maWdGaXJzdCIsImNyZWF0ZUNvbmZpZ1Jlc3QiLCJjYWNoZUdldCIsImNhY2hlU2V0IiwiZnVuY3Rpb25Ub0NhbGwiLCJpbml0VGFpbHdpbmRNZXJnZSIsInJlZHVjZSIsInByZXZpb3VzQ29uZmlnIiwiY3JlYXRlQ29uZmlnQ3VycmVudCIsInRhaWx3aW5kTWVyZ2UiLCJjYWNoZWRSZXN1bHQiLCJyZXN1bHQiLCJjYWxsVGFpbHdpbmRNZXJnZSIsImFwcGx5IiwiZnJvbVRoZW1lIiwidGhlbWVHZXR0ZXIiLCJhcmJpdHJhcnlWYWx1ZVJlZ2V4IiwiZnJhY3Rpb25SZWdleCIsInN0cmluZ0xlbmd0aHMiLCJ0c2hpcnRVbml0UmVnZXgiLCJsZW5ndGhVbml0UmVnZXgiLCJjb2xvckZ1bmN0aW9uUmVnZXgiLCJzaGFkb3dSZWdleCIsImltYWdlUmVnZXgiLCJpc0xlbmd0aCIsImlzTnVtYmVyIiwiaXNBcmJpdHJhcnlMZW5ndGgiLCJnZXRJc0FyYml0cmFyeVZhbHVlIiwiaXNMZW5ndGhPbmx5IiwiTnVtYmVyIiwiaXNOYU4iLCJpc0FyYml0cmFyeU51bWJlciIsImlzSW50ZWdlciIsImlzUGVyY2VudCIsImVuZHNXaXRoIiwiaXNBcmJpdHJhcnlWYWx1ZSIsImlzVHNoaXJ0U2l6ZSIsInNpemVMYWJlbHMiLCJpc0FyYml0cmFyeVNpemUiLCJpc05ldmVyIiwiaXNBcmJpdHJhcnlQb3NpdGlvbiIsImltYWdlTGFiZWxzIiwiaXNBcmJpdHJhcnlJbWFnZSIsImlzSW1hZ2UiLCJpc0FyYml0cmFyeVNoYWRvdyIsImlzU2hhZG93IiwiaXNBbnkiLCJsYWJlbCIsInRlc3RWYWx1ZSIsImRlZmluZVByb3BlcnR5IiwiX19wcm90b19fIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJnZXREZWZhdWx0Q29uZmlnIiwiY29sb3JzIiwic3BhY2luZyIsImJsdXIiLCJicmlnaHRuZXNzIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJTcGFjaW5nIiwiYm9yZGVyV2lkdGgiLCJjb250cmFzdCIsImdyYXlzY2FsZSIsImh1ZVJvdGF0ZSIsImludmVydCIsImdhcCIsImdyYWRpZW50Q29sb3JTdG9wcyIsImdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zIiwiaW5zZXQiLCJtYXJnaW4iLCJvcGFjaXR5IiwicGFkZGluZyIsInNhdHVyYXRlIiwic2NhbGUiLCJzZXBpYSIsInNrZXciLCJzcGFjZSIsInRyYW5zbGF0ZSIsImdldE92ZXJzY3JvbGwiLCJnZXRPdmVyZmxvdyIsImdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSIsImdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5IiwiZ2V0TGVuZ3RoV2l0aEVtcHR5QW5kQXJiaXRyYXJ5IiwiZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkiLCJnZXRQb3NpdGlvbnMiLCJnZXRMaW5lU3R5bGVzIiwiZ2V0QmxlbmRNb2RlcyIsImdldEFsaWduIiwiZ2V0WmVyb0FuZEVtcHR5IiwiZ2V0QnJlYWtzIiwiZ2V0TnVtYmVyIiwiZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5IiwiYXNwZWN0IiwiY29udGFpbmVyIiwiY29sdW1ucyIsImJveCIsImRpc3BsYXkiLCJmbG9hdCIsImNsZWFyIiwiaXNvbGF0aW9uIiwib2JqZWN0Iiwib3ZlcmZsb3ciLCJvdmVyc2Nyb2xsIiwicG9zaXRpb24iLCJzdGFydCIsImVuZCIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCIsInZpc2liaWxpdHkiLCJ6IiwiYmFzaXMiLCJmbGV4IiwiZ3JvdyIsInNocmluayIsIm9yZGVyIiwiY29sIiwic3BhbiIsInJvdyIsImp1c3RpZnkiLCJjb250ZW50IiwiaXRlbXMiLCJzZWxmIiwicCIsInB4IiwicHkiLCJwcyIsInBlIiwicHQiLCJwciIsInBiIiwicGwiLCJtIiwibXgiLCJteSIsIm1zIiwibWUiLCJtdCIsIm1yIiwibWIiLCJtbCIsInciLCJzY3JlZW4iLCJoIiwic2l6ZSIsInRleHQiLCJmb250IiwidHJhY2tpbmciLCJsZWFkaW5nIiwibGlzdCIsInBsYWNlaG9sZGVyIiwiZGVjb3JhdGlvbiIsImluZGVudCIsImFsaWduIiwid2hpdGVzcGFjZSIsImJyZWFrIiwiaHlwaGVucyIsImJnIiwicmVwZWF0IiwiZnJvbSIsInZpYSIsInRvIiwicm91bmRlZCIsImJvcmRlciIsImRpdmlkZSIsIm91dGxpbmUiLCJyaW5nIiwic2hhZG93IiwidGFibGUiLCJjYXB0aW9uIiwidHJhbnNpdGlvbiIsImR1cmF0aW9uIiwiZWFzZSIsImRlbGF5IiwiYW5pbWF0ZSIsInRyYW5zZm9ybSIsInJvdGF0ZSIsIm9yaWdpbiIsImFjY2VudCIsImFwcGVhcmFuY2UiLCJjdXJzb3IiLCJjYXJldCIsInJlc2l6ZSIsInNjcm9sbCIsInNuYXAiLCJ0b3VjaCIsInNlbGVjdCIsImZpbGwiLCJzdHJva2UiLCJzciIsIm1lcmdlQ29uZmlncyIsImJhc2VDb25maWciLCJleHRlbmQiLCJvdmVycmlkZSIsIm92ZXJyaWRlUHJvcGVydHkiLCJjb25maWdLZXkiLCJvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMiLCJtZXJnZUNvbmZpZ1Byb3BlcnRpZXMiLCJiYXNlT2JqZWN0Iiwib3ZlcnJpZGVLZXkiLCJvdmVycmlkZVZhbHVlIiwib3ZlcnJpZGVPYmplY3QiLCJtZXJnZU9iamVjdCIsIm1lcmdlVmFsdWUiLCJjb25jYXQiLCJleHRlbmRUYWlsd2luZE1lcmdlIiwiY29uZmlnRXh0ZW5zaW9uIiwiY3JlYXRlQ29uZmlnIiwidHdNZXJnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/tailwind-merge/dist/bundle-mjs.mjs\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/trim-lines/index.js":
-/*!**********************************************!*\
- !*** ../../node_modules/trim-lines/index.js ***!
- \**********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ trimLines: () => (/* binding */ trimLines)\n/* harmony export */ });\nconst tab = 9 /* `\\t` */ ;\nconst space = 32 /* ` ` */ ;\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */ function trimLines(value) {\n const source = String(value);\n const search = /\\r?\\n|\\r/g;\n let match = search.exec(source);\n let last = 0;\n /** @type {Array<string>} */ const lines = [];\n while(match){\n lines.push(trimLine(source.slice(last, match.index), last > 0, true), match[0]);\n last = match.index + match[0].length;\n match = search.exec(source);\n }\n lines.push(trimLine(source.slice(last), last > 0, false));\n return lines.join(\"\");\n}\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */ function trimLine(value, start, end) {\n let startIndex = 0;\n let endIndex = value.length;\n if (start) {\n let code = value.codePointAt(startIndex);\n while(code === tab || code === space){\n startIndex++;\n code = value.codePointAt(startIndex);\n }\n }\n if (end) {\n let code = value.codePointAt(endIndex - 1);\n while(code === tab || code === space){\n endIndex--;\n code = value.codePointAt(endIndex - 1);\n }\n }\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : \"\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3RyaW0tbGluZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE1BQU1BLE1BQU0sRUFBRSxRQUFRO0FBQ3RCLE1BQU1DLFFBQVEsR0FBRyxPQUFPO0FBRXhCOzs7Ozs7OztDQVFDLEdBQ00sU0FBU0MsVUFBVUMsS0FBSztJQUM3QixNQUFNQyxTQUFTQyxPQUFPRjtJQUN0QixNQUFNRyxTQUFTO0lBQ2YsSUFBSUMsUUFBUUQsT0FBT0UsSUFBSSxDQUFDSjtJQUN4QixJQUFJSyxPQUFPO0lBQ1gsMEJBQTBCLEdBQzFCLE1BQU1DLFFBQVEsRUFBRTtJQUVoQixNQUFPSCxNQUFPO1FBQ1pHLE1BQU1DLElBQUksQ0FDUkMsU0FBU1IsT0FBT1MsS0FBSyxDQUFDSixNQUFNRixNQUFNTyxLQUFLLEdBQUdMLE9BQU8sR0FBRyxPQUNwREYsS0FBSyxDQUFDLEVBQUU7UUFHVkUsT0FBT0YsTUFBTU8sS0FBSyxHQUFHUCxLQUFLLENBQUMsRUFBRSxDQUFDUSxNQUFNO1FBQ3BDUixRQUFRRCxPQUFPRSxJQUFJLENBQUNKO0lBQ3RCO0lBRUFNLE1BQU1DLElBQUksQ0FBQ0MsU0FBU1IsT0FBT1MsS0FBSyxDQUFDSixPQUFPQSxPQUFPLEdBQUc7SUFFbEQsT0FBT0MsTUFBTU0sSUFBSSxDQUFDO0FBQ3BCO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ0QsU0FBU0osU0FBU1QsS0FBSyxFQUFFYyxLQUFLLEVBQUVDLEdBQUc7SUFDakMsSUFBSUMsYUFBYTtJQUNqQixJQUFJQyxXQUFXakIsTUFBTVksTUFBTTtJQUUzQixJQUFJRSxPQUFPO1FBQ1QsSUFBSUksT0FBT2xCLE1BQU1tQixXQUFXLENBQUNIO1FBRTdCLE1BQU9FLFNBQVNyQixPQUFPcUIsU0FBU3BCLE1BQU87WUFDckNrQjtZQUNBRSxPQUFPbEIsTUFBTW1CLFdBQVcsQ0FBQ0g7UUFDM0I7SUFDRjtJQUVBLElBQUlELEtBQUs7UUFDUCxJQUFJRyxPQUFPbEIsTUFBTW1CLFdBQVcsQ0FBQ0YsV0FBVztRQUV4QyxNQUFPQyxTQUFTckIsT0FBT3FCLFNBQVNwQixNQUFPO1lBQ3JDbUI7WUFDQUMsT0FBT2xCLE1BQU1tQixXQUFXLENBQUNGLFdBQVc7UUFDdEM7SUFDRjtJQUVBLE9BQU9BLFdBQVdELGFBQWFoQixNQUFNVSxLQUFLLENBQUNNLFlBQVlDLFlBQVk7QUFDckUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy90cmltLWxpbmVzL2luZGV4LmpzPzM5NGUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdGFiID0gOSAvKiBgXFx0YCAqL1xuY29uc3Qgc3BhY2UgPSAzMiAvKiBgIGAgKi9cblxuLyoqXG4gKiBSZW1vdmUgaW5pdGlhbCBhbmQgZmluYWwgc3BhY2VzIGFuZCB0YWJzIGF0IHRoZSBsaW5lIGJyZWFrcyBpbiBgdmFsdWVgLlxuICogRG9lcyBub3QgdHJpbSBpbml0aWFsIGFuZCBmaW5hbCBzcGFjZXMgYW5kIHRhYnMgb2YgdGhlIHZhbHVlIGl0c2VsZi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gdHJpbS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFRyaW1tZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltTGluZXModmFsdWUpIHtcbiAgY29uc3Qgc291cmNlID0gU3RyaW5nKHZhbHVlKVxuICBjb25zdCBzZWFyY2ggPSAvXFxyP1xcbnxcXHIvZ1xuICBsZXQgbWF0Y2ggPSBzZWFyY2guZXhlYyhzb3VyY2UpXG4gIGxldCBsYXN0ID0gMFxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IGxpbmVzID0gW11cblxuICB3aGlsZSAobWF0Y2gpIHtcbiAgICBsaW5lcy5wdXNoKFxuICAgICAgdHJpbUxpbmUoc291cmNlLnNsaWNlKGxhc3QsIG1hdGNoLmluZGV4KSwgbGFzdCA+IDAsIHRydWUpLFxuICAgICAgbWF0Y2hbMF1cbiAgICApXG5cbiAgICBsYXN0ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGhcbiAgICBtYXRjaCA9IHNlYXJjaC5leGVjKHNvdXJjZSlcbiAgfVxuXG4gIGxpbmVzLnB1c2godHJpbUxpbmUoc291cmNlLnNsaWNlKGxhc3QpLCBsYXN0ID4gMCwgZmFsc2UpKVxuXG4gIHJldHVybiBsaW5lcy5qb2luKCcnKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBMaW5lIHRvIHRyaW0uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHN0YXJ0XG4gKiAgIFdoZXRoZXIgdG8gdHJpbSB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGVuZFxuICogICBXaGV0aGVyIHRvIHRyaW0gdGhlIGVuZCBvZiB0aGUgbGluZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFRyaW1tZWQgbGluZS5cbiAqL1xuZnVuY3Rpb24gdHJpbUxpbmUodmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgbGV0IHN0YXJ0SW5kZXggPSAwXG4gIGxldCBlbmRJbmRleCA9IHZhbHVlLmxlbmd0aFxuXG4gIGlmIChzdGFydCkge1xuICAgIGxldCBjb2RlID0gdmFsdWUuY29kZVBvaW50QXQoc3RhcnRJbmRleClcblxuICAgIHdoaWxlIChjb2RlID09PSB0YWIgfHwgY29kZSA9PT0gc3BhY2UpIHtcbiAgICAgIHN0YXJ0SW5kZXgrK1xuICAgICAgY29kZSA9IHZhbHVlLmNvZGVQb2ludEF0KHN0YXJ0SW5kZXgpXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuZCkge1xuICAgIGxldCBjb2RlID0gdmFsdWUuY29kZVBvaW50QXQoZW5kSW5kZXggLSAxKVxuXG4gICAgd2hpbGUgKGNvZGUgPT09IHRhYiB8fCBjb2RlID09PSBzcGFjZSkge1xuICAgICAgZW5kSW5kZXgtLVxuICAgICAgY29kZSA9IHZhbHVlLmNvZGVQb2ludEF0KGVuZEluZGV4IC0gMSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW5kSW5kZXggPiBzdGFydEluZGV4ID8gdmFsdWUuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpIDogJydcbn1cbiJdLCJuYW1lcyI6WyJ0YWIiLCJzcGFjZSIsInRyaW1MaW5lcyIsInZhbHVlIiwic291cmNlIiwiU3RyaW5nIiwic2VhcmNoIiwibWF0Y2giLCJleGVjIiwibGFzdCIsImxpbmVzIiwicHVzaCIsInRyaW1MaW5lIiwic2xpY2UiLCJpbmRleCIsImxlbmd0aCIsImpvaW4iLCJzdGFydCIsImVuZCIsInN0YXJ0SW5kZXgiLCJlbmRJbmRleCIsImNvZGUiLCJjb2RlUG9pbnRBdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/trim-lines/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/trough/lib/index.js":
-/*!**********************************************!*\
- !*** ../../node_modules/trough/lib/index.js ***!
- \**********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ trough: () => (/* binding */ trough),\n/* harmony export */ wrap: () => (/* binding */ wrap)\n/* harmony export */ });\n// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */ /**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */ function trough() {\n /** @type {Array<Middleware>} */ const fns = [];\n /** @type {Pipeline} */ const pipeline = {\n run,\n use\n };\n return pipeline;\n /** @type {Run} */ function run(...values) {\n let middlewareIndex = -1;\n /** @type {Callback} */ const callback = values.pop();\n if (typeof callback !== \"function\") {\n throw new TypeError(\"Expected function as last argument, not \" + callback);\n }\n next(null, ...values);\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */ function next(error, ...output) {\n const fn = fns[++middlewareIndex];\n let index = -1;\n if (error) {\n callback(error);\n return;\n }\n // Copy non-nullish input into values.\n while(++index < values.length){\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index];\n }\n }\n // Save the newly created `output` for the next call.\n values = output;\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output);\n } else {\n callback(null, ...output);\n }\n }\n }\n /** @type {Use} */ function use(middelware) {\n if (typeof middelware !== \"function\") {\n throw new TypeError(\"Expected `middelware` to be a function, not \" + middelware);\n }\n fns.push(middelware);\n return pipeline;\n }\n}\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */ function wrap(middleware, callback) {\n /** @type {boolean} */ let called;\n return wrapped;\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */ function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length;\n /** @type {any} */ let result;\n if (fnExpectsCallback) {\n parameters.push(done);\n }\n try {\n result = middleware.apply(this, parameters);\n } catch (error) {\n const exception = /** @type {Error} */ error;\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception;\n }\n return done(exception);\n }\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === \"function\") {\n result.then(then, done);\n } else if (result instanceof Error) {\n done(result);\n } else {\n then(result);\n }\n }\n }\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */ function done(error, ...output) {\n if (!called) {\n called = true;\n callback(error, ...output);\n }\n }\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */ function then(value) {\n done(null, value);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3Ryb3VnaC9saWIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3QkFBd0I7QUFDeEIsdUVBQXVFO0FBRXZFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EyQkMsR0FFRDs7Ozs7Q0FLQyxHQUNNLFNBQVNBO0lBQ2QsOEJBQThCLEdBQzlCLE1BQU1DLE1BQU0sRUFBRTtJQUNkLHFCQUFxQixHQUNyQixNQUFNQyxXQUFXO1FBQUNDO1FBQUtDO0lBQUc7SUFFMUIsT0FBT0Y7SUFFUCxnQkFBZ0IsR0FDaEIsU0FBU0MsSUFBSSxHQUFHRSxNQUFNO1FBQ3BCLElBQUlDLGtCQUFrQixDQUFDO1FBQ3ZCLHFCQUFxQixHQUNyQixNQUFNQyxXQUFXRixPQUFPRyxHQUFHO1FBRTNCLElBQUksT0FBT0QsYUFBYSxZQUFZO1lBQ2xDLE1BQU0sSUFBSUUsVUFBVSw2Q0FBNkNGO1FBQ25FO1FBRUFHLEtBQUssU0FBU0w7UUFFZDs7Ozs7S0FLQyxHQUNELFNBQVNLLEtBQUtDLEtBQUssRUFBRSxHQUFHQyxNQUFNO1lBQzVCLE1BQU1DLEtBQUtaLEdBQUcsQ0FBQyxFQUFFSyxnQkFBZ0I7WUFDakMsSUFBSVEsUUFBUSxDQUFDO1lBRWIsSUFBSUgsT0FBTztnQkFDVEosU0FBU0k7Z0JBQ1Q7WUFDRjtZQUVBLHNDQUFzQztZQUN0QyxNQUFPLEVBQUVHLFFBQVFULE9BQU9VLE1BQU0sQ0FBRTtnQkFDOUIsSUFBSUgsTUFBTSxDQUFDRSxNQUFNLEtBQUssUUFBUUYsTUFBTSxDQUFDRSxNQUFNLEtBQUtFLFdBQVc7b0JBQ3pESixNQUFNLENBQUNFLE1BQU0sR0FBR1QsTUFBTSxDQUFDUyxNQUFNO2dCQUMvQjtZQUNGO1lBRUEscURBQXFEO1lBQ3JEVCxTQUFTTztZQUVULGdCQUFnQjtZQUNoQixJQUFJQyxJQUFJO2dCQUNOSSxLQUFLSixJQUFJSCxTQUFTRTtZQUNwQixPQUFPO2dCQUNMTCxTQUFTLFNBQVNLO1lBQ3BCO1FBQ0Y7SUFDRjtJQUVBLGdCQUFnQixHQUNoQixTQUFTUixJQUFJYyxVQUFVO1FBQ3JCLElBQUksT0FBT0EsZUFBZSxZQUFZO1lBQ3BDLE1BQU0sSUFBSVQsVUFDUixpREFBaURTO1FBRXJEO1FBRUFqQixJQUFJa0IsSUFBSSxDQUFDRDtRQUNULE9BQU9oQjtJQUNUO0FBQ0Y7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQStCQyxHQUNNLFNBQVNlLEtBQUtHLFVBQVUsRUFBRWIsUUFBUTtJQUN2QyxvQkFBb0IsR0FDcEIsSUFBSWM7SUFFSixPQUFPQztJQUVQOzs7OztHQUtDLEdBQ0QsU0FBU0EsUUFBUSxHQUFHQyxVQUFVO1FBQzVCLE1BQU1DLG9CQUFvQkosV0FBV0wsTUFBTSxHQUFHUSxXQUFXUixNQUFNO1FBQy9ELGdCQUFnQixHQUNoQixJQUFJVTtRQUVKLElBQUlELG1CQUFtQjtZQUNyQkQsV0FBV0osSUFBSSxDQUFDTztRQUNsQjtRQUVBLElBQUk7WUFDRkQsU0FBU0wsV0FBV08sS0FBSyxDQUFDLElBQUksRUFBRUo7UUFDbEMsRUFBRSxPQUFPWixPQUFPO1lBQ2QsTUFBTWlCLFlBQVksa0JBQWtCLEdBQUlqQjtZQUV4QyxrQ0FBa0M7WUFDbEMseUVBQXlFO1lBQ3pFLGtCQUFrQjtZQUNsQiwyREFBMkQ7WUFDM0QsSUFBSWEscUJBQXFCSCxRQUFRO2dCQUMvQixNQUFNTztZQUNSO1lBRUEsT0FBT0YsS0FBS0U7UUFDZDtRQUVBLElBQUksQ0FBQ0osbUJBQW1CO1lBQ3RCLElBQUlDLFVBQVVBLE9BQU9JLElBQUksSUFBSSxPQUFPSixPQUFPSSxJQUFJLEtBQUssWUFBWTtnQkFDOURKLE9BQU9JLElBQUksQ0FBQ0EsTUFBTUg7WUFDcEIsT0FBTyxJQUFJRCxrQkFBa0JLLE9BQU87Z0JBQ2xDSixLQUFLRDtZQUNQLE9BQU87Z0JBQ0xJLEtBQUtKO1lBQ1A7UUFDRjtJQUNGO0lBRUE7Ozs7R0FJQyxHQUNELFNBQVNDLEtBQUtmLEtBQUssRUFBRSxHQUFHQyxNQUFNO1FBQzVCLElBQUksQ0FBQ1MsUUFBUTtZQUNYQSxTQUFTO1lBQ1RkLFNBQVNJLFVBQVVDO1FBQ3JCO0lBQ0Y7SUFFQTs7OztHQUlDLEdBQ0QsU0FBU2lCLEtBQUtFLEtBQUs7UUFDakJMLEtBQUssTUFBTUs7SUFDYjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvdHJvdWdoL2xpYi9pbmRleC5qcz85OWM2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRvIGRvOiByZW1vdmUgYHZvaWRgc1xuLy8gVG8gZG86IHJlbW92ZSBgbnVsbGAgZnJvbSBvdXRwdXQgb2Ygb3VyIEFQSXMsIGFsbG93IGl0IGFzIHVzZXIgQVBJcy5cblxuLyoqXG4gKiBAdHlwZWRlZiB7KGVycm9yPzogRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkLCAuLi5vdXRwdXQ6IEFycmF5PGFueT4pID0+IHZvaWR9IENhbGxiYWNrXG4gKiAgIENhbGxiYWNrLlxuICpcbiAqIEB0eXBlZGVmIHsoLi4uaW5wdXQ6IEFycmF5PGFueT4pID0+IGFueX0gTWlkZGxld2FyZVxuICogICBXYXJlLlxuICpcbiAqIEB0eXBlZGVmIFBpcGVsaW5lXG4gKiAgIFBpcGVsaW5lLlxuICogQHByb3BlcnR5IHtSdW59IHJ1blxuICogICBSdW4gdGhlIHBpcGVsaW5lLlxuICogQHByb3BlcnR5IHtVc2V9IHVzZVxuICogICBBZGQgbWlkZGxld2FyZS5cbiAqXG4gKiBAdHlwZWRlZiB7KC4uLmlucHV0OiBBcnJheTxhbnk+KSA9PiB2b2lkfSBSdW5cbiAqICAgQ2FsbCBhbGwgbWlkZGxld2FyZS5cbiAqXG4gKiAgIENhbGxzIGBkb25lYCBvbiBjb21wbGV0aW9uIHdpdGggZWl0aGVyIGFuIGVycm9yIG9yIHRoZSBvdXRwdXQgb2YgdGhlXG4gKiAgIGxhc3QgbWlkZGxld2FyZS5cbiAqXG4gKiAgID4g8J+RiSAqKk5vdGUqKjogYXMgdGhlIGxlbmd0aCBvZiBpbnB1dCBkZWZpbmVzIHdoZXRoZXIgYXN5bmMgZnVuY3Rpb25zIGdldCBhXG4gKiAgID4gYG5leHRgIGZ1bmN0aW9uLFxuICogICA+IGl04oCZcyByZWNvbW1lbmRlZCB0byBrZWVwIGBpbnB1dGAgYXQgb25lIHZhbHVlIG5vcm1hbGx5LlxuXG4gKlxuICogQHR5cGVkZWYgeyhmbjogTWlkZGxld2FyZSkgPT4gUGlwZWxpbmV9IFVzZVxuICogICBBZGQgbWlkZGxld2FyZS5cbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBuZXcgbWlkZGxld2FyZS5cbiAqXG4gKiBAcmV0dXJucyB7UGlwZWxpbmV9XG4gKiAgIFBpcGVsaW5lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJvdWdoKCkge1xuICAvKiogQHR5cGUge0FycmF5PE1pZGRsZXdhcmU+fSAqL1xuICBjb25zdCBmbnMgPSBbXVxuICAvKiogQHR5cGUge1BpcGVsaW5lfSAqL1xuICBjb25zdCBwaXBlbGluZSA9IHtydW4sIHVzZX1cblxuICByZXR1cm4gcGlwZWxpbmVcblxuICAvKiogQHR5cGUge1J1bn0gKi9cbiAgZnVuY3Rpb24gcnVuKC4uLnZhbHVlcykge1xuICAgIGxldCBtaWRkbGV3YXJlSW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7Q2FsbGJhY2t9ICovXG4gICAgY29uc3QgY2FsbGJhY2sgPSB2YWx1ZXMucG9wKClcblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGZ1bmN0aW9uIGFzIGxhc3QgYXJndW1lbnQsIG5vdCAnICsgY2FsbGJhY2spXG4gICAgfVxuXG4gICAgbmV4dChudWxsLCAuLi52YWx1ZXMpXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGhlIG5leHQgYGZuYCwgb3Igd2XigJlyZSBkb25lLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFcnJvciB8IG51bGwgfCB1bmRlZmluZWR9IGVycm9yXG4gICAgICogQHBhcmFtIHtBcnJheTxhbnk+fSBvdXRwdXRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBuZXh0KGVycm9yLCAuLi5vdXRwdXQpIHtcbiAgICAgIGNvbnN0IGZuID0gZm5zWysrbWlkZGxld2FyZUluZGV4XVxuICAgICAgbGV0IGluZGV4ID0gLTFcblxuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gQ29weSBub24tbnVsbGlzaCBpbnB1dCBpbnRvIHZhbHVlcy5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICBpZiAob3V0cHV0W2luZGV4XSA9PT0gbnVsbCB8fCBvdXRwdXRbaW5kZXhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBvdXRwdXRbaW5kZXhdID0gdmFsdWVzW2luZGV4XVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFNhdmUgdGhlIG5ld2x5IGNyZWF0ZWQgYG91dHB1dGAgZm9yIHRoZSBuZXh0IGNhbGwuXG4gICAgICB2YWx1ZXMgPSBvdXRwdXRcblxuICAgICAgLy8gTmV4dCBvciBkb25lLlxuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHdyYXAoZm4sIG5leHQpKC4uLm91dHB1dClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIC4uLm91dHB1dClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQHR5cGUge1VzZX0gKi9cbiAgZnVuY3Rpb24gdXNlKG1pZGRlbHdhcmUpIHtcbiAgICBpZiAodHlwZW9mIG1pZGRlbHdhcmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICdFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICcgKyBtaWRkZWx3YXJlXG4gICAgICApXG4gICAgfVxuXG4gICAgZm5zLnB1c2gobWlkZGVsd2FyZSlcbiAgICByZXR1cm4gcGlwZWxpbmVcbiAgfVxufVxuXG4vKipcbiAqIFdyYXAgYG1pZGRsZXdhcmVgIGludG8gYSB1bmlmb3JtIGludGVyZmFjZS5cbiAqXG4gKiBZb3UgY2FuIHBhc3MgYWxsIGlucHV0IHRvIHRoZSByZXN1bHRpbmcgZnVuY3Rpb24uXG4gKiBgY2FsbGJhY2tgIGlzIHRoZW4gY2FsbGVkIHdpdGggdGhlIG91dHB1dCBvZiBgbWlkZGxld2FyZWAuXG4gKlxuICogSWYgYG1pZGRsZXdhcmVgIGFjY2VwdHMgbW9yZSBhcmd1bWVudHMgdGhhbiB0aGUgbGF0ZXIgZ2l2ZW4gaW4gaW5wdXQsXG4gKiBhbiBleHRyYSBgZG9uZWAgZnVuY3Rpb24gaXMgcGFzc2VkIHRvIGl0IGFmdGVyIHRoYXQgaW5wdXQsXG4gKiB3aGljaCBtdXN0IGJlIGNhbGxlZCBieSBgbWlkZGxld2FyZWAuXG4gKlxuICogVGhlIGZpcnN0IHZhbHVlIGluIGBpbnB1dGAgaXMgdGhlIG1haW4gaW5wdXQgdmFsdWUuXG4gKiBBbGwgb3RoZXIgaW5wdXQgdmFsdWVzIGFyZSB0aGUgcmVzdCBpbnB1dCB2YWx1ZXMuXG4gKiBUaGUgdmFsdWVzIGdpdmVuIHRvIGBjYWxsYmFja2AgYXJlIHRoZSBpbnB1dCB2YWx1ZXMsXG4gKiBtZXJnZWQgd2l0aCBldmVyeSBub24tbnVsbGlzaCBvdXRwdXQgdmFsdWUuXG4gKlxuICogKiBpZiBgbWlkZGxld2FyZWAgdGhyb3dzIGFuIGVycm9yLFxuICogICByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGlzIHJlamVjdGVkLFxuICogICBvciBjYWxscyB0aGUgZ2l2ZW4gYGRvbmVgIGZ1bmN0aW9uIHdpdGggYW4gZXJyb3IsXG4gKiAgIGBjYWxsYmFja2AgaXMgY2FsbGVkIHdpdGggdGhhdCBlcnJvclxuICogKiBpZiBgbWlkZGxld2FyZWAgcmV0dXJucyBhIHZhbHVlIG9yIHJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQsXG4gKiAgIHRoYXQgdmFsdWUgaXMgdGhlIG1haW4gb3V0cHV0IHZhbHVlXG4gKiAqIGlmIGBtaWRkbGV3YXJlYCBjYWxscyBgZG9uZWAsXG4gKiAgIGFsbCBub24tbnVsbGlzaCB2YWx1ZXMgZXhjZXB0IGZvciB0aGUgZmlyc3Qgb25lICh0aGUgZXJyb3IpIG92ZXJ3cml0ZSB0aGVcbiAqICAgb3V0cHV0IHZhbHVlc1xuICpcbiAqIEBwYXJhbSB7TWlkZGxld2FyZX0gbWlkZGxld2FyZVxuICogICBGdW5jdGlvbiB0byB3cmFwLlxuICogQHBhcmFtIHtDYWxsYmFja30gY2FsbGJhY2tcbiAqICAgQ2FsbGJhY2sgY2FsbGVkIHdpdGggdGhlIG91dHB1dCBvZiBgbWlkZGxld2FyZWAuXG4gKiBAcmV0dXJucyB7UnVufVxuICogICBXcmFwcGVkIG1pZGRsZXdhcmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cmFwKG1pZGRsZXdhcmUsIGNhbGxiYWNrKSB7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGNhbGxlZFxuXG4gIHJldHVybiB3cmFwcGVkXG5cbiAgLyoqXG4gICAqIENhbGwgYG1pZGRsZXdhcmVgLlxuICAgKiBAdGhpcyB7YW55fVxuICAgKiBAcGFyYW0ge0FycmF5PGFueT59IHBhcmFtZXRlcnNcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBmdW5jdGlvbiB3cmFwcGVkKC4uLnBhcmFtZXRlcnMpIHtcbiAgICBjb25zdCBmbkV4cGVjdHNDYWxsYmFjayA9IG1pZGRsZXdhcmUubGVuZ3RoID4gcGFyYW1ldGVycy5sZW5ndGhcbiAgICAvKiogQHR5cGUge2FueX0gKi9cbiAgICBsZXQgcmVzdWx0XG5cbiAgICBpZiAoZm5FeHBlY3RzQ2FsbGJhY2spIHtcbiAgICAgIHBhcmFtZXRlcnMucHVzaChkb25lKVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBtaWRkbGV3YXJlLmFwcGx5KHRoaXMsIHBhcmFtZXRlcnMpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IC8qKiBAdHlwZSB7RXJyb3J9ICovIChlcnJvcilcblxuICAgICAgLy8gV2VsbCwgdGhpcyBpcyBxdWl0ZSB0aGUgcGlja2xlLlxuICAgICAgLy8gYG1pZGRsZXdhcmVgIHJlY2VpdmVkIGEgY2FsbGJhY2sgYW5kIGNhbGxlZCBpdCBzeW5jaHJvbm91c2x5LCBidXQgdGhhdFxuICAgICAgLy8gdGhyZXcgYW4gZXJyb3IuXG4gICAgICAvLyBUaGUgb25seSB0aGluZyBsZWZ0IHRvIGRvIGlzIHRvIHRocm93IHRoZSB0aGluZyBpbnN0ZWFkLlxuICAgICAgaWYgKGZuRXhwZWN0c0NhbGxiYWNrICYmIGNhbGxlZCkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb25cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRvbmUoZXhjZXB0aW9uKVxuICAgIH1cblxuICAgIGlmICghZm5FeHBlY3RzQ2FsbGJhY2spIHtcbiAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnRoZW4gJiYgdHlwZW9mIHJlc3VsdC50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJlc3VsdC50aGVuKHRoZW4sIGRvbmUpXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGRvbmUocmVzdWx0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhlbihyZXN1bHQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgYGNhbGxiYWNrYCwgb25seSBvbmNlLlxuICAgKlxuICAgKiBAdHlwZSB7Q2FsbGJhY2t9XG4gICAqL1xuICBmdW5jdGlvbiBkb25lKGVycm9yLCAuLi5vdXRwdXQpIHtcbiAgICBpZiAoIWNhbGxlZCkge1xuICAgICAgY2FsbGVkID0gdHJ1ZVxuICAgICAgY2FsbGJhY2soZXJyb3IsIC4uLm91dHB1dClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCBgZG9uZWAgd2l0aCBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSBbdmFsdWVdXG4gICAqL1xuICBmdW5jdGlvbiB0aGVuKHZhbHVlKSB7XG4gICAgZG9uZShudWxsLCB2YWx1ZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbInRyb3VnaCIsImZucyIsInBpcGVsaW5lIiwicnVuIiwidXNlIiwidmFsdWVzIiwibWlkZGxld2FyZUluZGV4IiwiY2FsbGJhY2siLCJwb3AiLCJUeXBlRXJyb3IiLCJuZXh0IiwiZXJyb3IiLCJvdXRwdXQiLCJmbiIsImluZGV4IiwibGVuZ3RoIiwidW5kZWZpbmVkIiwid3JhcCIsIm1pZGRlbHdhcmUiLCJwdXNoIiwibWlkZGxld2FyZSIsImNhbGxlZCIsIndyYXBwZWQiLCJwYXJhbWV0ZXJzIiwiZm5FeHBlY3RzQ2FsbGJhY2siLCJyZXN1bHQiLCJkb25lIiwiYXBwbHkiLCJleGNlcHRpb24iLCJ0aGVuIiwiRXJyb3IiLCJ2YWx1ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/trough/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unified/lib/callable-instance.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/unified/lib/callable-instance.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CallableInstance: () => (/* binding */ CallableInstance)\n/* harmony export */ });\nconst CallableInstance = /** @type {unknown} */ /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */ function(property) {\n const self = this;\n const constr = self.constructor;\n const proto = /** @type {Record<string | symbol, Function>} */ // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype;\n const func = proto[property];\n /** @type {(...parameters: Array<unknown>) => unknown} */ const apply = function() {\n return func.apply(apply, arguments);\n };\n Object.setPrototypeOf(apply, proto);\n const names = Object.getOwnPropertyNames(func);\n for (const p of names){\n const descriptor = Object.getOwnPropertyDescriptor(func, p);\n if (descriptor) Object.defineProperty(apply, p, descriptor);\n }\n return apply;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaWZpZWQvbGliL2NhbGxhYmxlLWluc3RhbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxtQkFLVCxvQkFBb0IsR0FFbEI7Ozs7T0FJQyxHQUNELFNBQVVDLFFBQVE7SUFDaEIsTUFBTUMsT0FBTyxJQUFJO0lBQ2pCLE1BQU1DLFNBQVNELEtBQUtFLFdBQVc7SUFDL0IsTUFBTUMsUUFBUSw4Q0FBOEMsR0FDMUQsdUJBQXVCO0lBQ3ZCLGlDQUFpQztJQUNqQ0YsT0FBT0csU0FBUztJQUVsQixNQUFNQyxPQUFPRixLQUFLLENBQUNKLFNBQVM7SUFDNUIsdURBQXVELEdBQ3ZELE1BQU1PLFFBQVE7UUFDWixPQUFPRCxLQUFLQyxLQUFLLENBQUNBLE9BQU9DO0lBQzNCO0lBRUFDLE9BQU9DLGNBQWMsQ0FBQ0gsT0FBT0g7SUFFN0IsTUFBTU8sUUFBUUYsT0FBT0csbUJBQW1CLENBQUNOO0lBRXpDLEtBQUssTUFBTU8sS0FBS0YsTUFBTztRQUNyQixNQUFNRyxhQUFhTCxPQUFPTSx3QkFBd0IsQ0FBQ1QsTUFBTU87UUFDekQsSUFBSUMsWUFBWUwsT0FBT08sY0FBYyxDQUFDVCxPQUFPTSxHQUFHQztJQUNsRDtJQUVBLE9BQU9QO0FBQ1QsRUFFSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaWZpZWQvbGliL2NhbGxhYmxlLWluc3RhbmNlLmpzP2YzMDgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENhbGxhYmxlSW5zdGFuY2UgPVxuICAvKipcbiAgICogQHR5cGUge25ldyA8UGFyYW1ldGVycyBleHRlbmRzIEFycmF5PHVua25vd24+LCBSZXN1bHQ+KHByb3BlcnR5OiBzdHJpbmcgfCBzeW1ib2wpID0+ICguLi5wYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzKSA9PiBSZXN1bHR9XG4gICAqL1xuICAoXG4gICAgLyoqIEB0eXBlIHt1bmtub3dufSAqL1xuICAgIChcbiAgICAgIC8qKlxuICAgICAgICogQHRoaXMge0Z1bmN0aW9ufVxuICAgICAgICogQHBhcmFtIHtzdHJpbmcgfCBzeW1ib2x9IHByb3BlcnR5XG4gICAgICAgKiBAcmV0dXJucyB7KC4uLnBhcmFtZXRlcnM6IEFycmF5PHVua25vd24+KSA9PiB1bmtub3dufVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiAocHJvcGVydHkpIHtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgICAgICAgY29uc3QgY29uc3RyID0gc2VsZi5jb25zdHJ1Y3RvclxuICAgICAgICBjb25zdCBwcm90byA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZyB8IHN5bWJvbCwgRnVuY3Rpb24+fSAqLyAoXG4gICAgICAgICAgLy8gUHJvdG90eXBlcyBkbyBleGlzdC5cbiAgICAgICAgICAvLyB0eXBlLWNvdmVyYWdlOmlnbm9yZS1uZXh0LWxpbmVcbiAgICAgICAgICBjb25zdHIucHJvdG90eXBlXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgZnVuYyA9IHByb3RvW3Byb3BlcnR5XVxuICAgICAgICAvKiogQHR5cGUgeyguLi5wYXJhbWV0ZXJzOiBBcnJheTx1bmtub3duPikgPT4gdW5rbm93bn0gKi9cbiAgICAgICAgY29uc3QgYXBwbHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkoYXBwbHksIGFyZ3VtZW50cylcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihhcHBseSwgcHJvdG8pXG5cbiAgICAgICAgY29uc3QgbmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhmdW5jKVxuXG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBuYW1lcykge1xuICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGZ1bmMsIHApXG4gICAgICAgICAgaWYgKGRlc2NyaXB0b3IpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcHBseSwgcCwgZGVzY3JpcHRvcilcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcHBseVxuICAgICAgfVxuICAgIClcbiAgKVxuIl0sIm5hbWVzIjpbIkNhbGxhYmxlSW5zdGFuY2UiLCJwcm9wZXJ0eSIsInNlbGYiLCJjb25zdHIiLCJjb25zdHJ1Y3RvciIsInByb3RvIiwicHJvdG90eXBlIiwiZnVuYyIsImFwcGx5IiwiYXJndW1lbnRzIiwiT2JqZWN0Iiwic2V0UHJvdG90eXBlT2YiLCJuYW1lcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJwIiwiZGVzY3JpcHRvciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImRlZmluZVByb3BlcnR5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unified/lib/callable-instance.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unified/lib/index.js":
-/*!***********************************************!*\
- !*** ../../node_modules/unified/lib/index.js ***!
- \***********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Processor: () => (/* binding */ Processor),\n/* harmony export */ unified: () => (/* binding */ unified)\n/* harmony export */ });\n/* harmony import */ var bail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! bail */ \"(ssr)/../../node_modules/bail/index.js\");\n/* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! extend */ \"(ssr)/../../node_modules/unified/node_modules/extend/index.js\");\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! devlop */ \"(ssr)/../../node_modules/devlop/lib/development.js\");\n/* harmony import */ var is_plain_obj__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! is-plain-obj */ \"(ssr)/../../node_modules/is-plain-obj/index.js\");\n/* harmony import */ var trough__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! trough */ \"(ssr)/../../node_modules/trough/lib/index.js\");\n/* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vfile */ \"(ssr)/../../node_modules/vfile/lib/index.js\");\n/* harmony import */ var _callable_instance_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./callable-instance.js */ \"(ssr)/../../node_modules/unified/lib/callable-instance.js\");\n/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */ /**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@link CompileResultMap `CompileResultMap`}.\n */ /**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@link Node `Node`}\n * and {@link VFile `VFile`} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */ /**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@link VFile `VFile`} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@link Node `Node`}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */ /**\n * @typedef {(\n * Plugin<Array<any>, any, any> |\n * PluginTuple<Array<any>, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */ /**\n * @typedef {Array<Pluggable>} PluggableList\n * List of plugins and presets.\n */ // Note: we can’t use `callback` yet as it messes up `this`:\n// <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > 👉 **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */ /**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin<TupleParameters, Input, Output>,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */ /**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */ /**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */ /**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */ /**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */ /**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > 👉 **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback<Output>} next\n * Callback.\n * @returns {(\n * Promise<Output | undefined | void> |\n * Promise<never> | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise<undefined>` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise<Node>` or `Node` — new, changed, tree\n */ /**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */ /**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@link VFile `VFile`} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@link VFile `VFile`}.\n */ \n\n\n\n\n\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\nconst own = {}.hasOwnProperty;\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */ class Processor extends _callable_instance_js__WEBPACK_IMPORTED_MODULE_2__.CallableInstance {\n /**\n * Create a processor.\n */ constructor(){\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super(\"copy\");\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */ this.Compiler = undefined;\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */ this.Parser = undefined;\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array<PluginTuple<Array<unknown>>>}\n */ this.attachers = [];\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */ this.compiler = undefined;\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */ this.freezeIndex = -1;\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */ this.frozen = undefined;\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */ this.namespace = {};\n /**\n * Parser to use.\n *\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */ this.parser = undefined;\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */ this.transformers = (0,trough__WEBPACK_IMPORTED_MODULE_3__.trough)();\n }\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@link Processor `Processor`}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */ copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination = /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ new Processor();\n let index = -1;\n while(++index < this.attachers.length){\n const attacher = this.attachers[index];\n destination.use(...attacher);\n }\n destination.data(extend__WEBPACK_IMPORTED_MODULE_0__(true, {}, this.namespace));\n return destination;\n }\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > 👉 **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > 👉 **Note**: to register custom data in TypeScript, augment the\n * > {@link Data `Data`} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */ data(key, value) {\n if (typeof key === \"string\") {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen(\"data\", this.frozen);\n this.namespace[key] = value;\n return this;\n }\n // Get `key`.\n return own.call(this.namespace, key) && this.namespace[key] || undefined;\n }\n // Set space.\n if (key) {\n assertUnfrozen(\"data\", this.frozen);\n this.namespace = key;\n return this;\n }\n // Get space.\n return this.namespace;\n }\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */ freeze() {\n if (this.frozen) {\n return this;\n }\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {unknown} */ this;\n while(++this.freezeIndex < this.attachers.length){\n const [attacher, ...options] = this.attachers[this.freezeIndex];\n if (options[0] === false) {\n continue;\n }\n if (options[0] === true) {\n options[0] = undefined;\n }\n const transformer = attacher.call(self, ...options);\n if (typeof transformer === \"function\") {\n this.transformers.use(transformer);\n }\n }\n this.frozen = true;\n this.freezeIndex = Number.POSITIVE_INFINITY;\n return this;\n }\n /**\n * Parse text to a syntax tree.\n *\n * > 👉 **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */ parse(file) {\n this.freeze();\n const realFile = vfile(file);\n const parser = this.parser || this.Parser;\n assertParser(\"parse\", parser);\n return parser(String(realFile), realFile);\n }\n /**\n * Process the given file as configured on the processor.\n *\n * > 👉 **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */ process(file, done) {\n const self = this;\n this.freeze();\n assertParser(\"process\", this.parser || this.Parser);\n assertCompiler(\"process\", this.compiler || this.Compiler);\n return done ? executor(undefined, done) : new Promise(executor);\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */ function executor(resolve, reject) {\n const realFile = vfile(file);\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree = /** @type {unknown} */ self.parse(realFile);\n self.run(parseTree, realFile, function(error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error);\n }\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree = /** @type {unknown} */ tree;\n const compileResult = self.stringify(compileTree, file);\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult;\n } else {\n file.result = compileResult;\n }\n realDone(error, /** @type {VFileWithOutput<CompileResult>} */ file);\n });\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput<CompileResult> | undefined} [file]\n * @returns {undefined}\n */ function realDone(error, file) {\n if (error || !file) {\n reject(error);\n } else if (resolve) {\n resolve(file);\n } else {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(done, \"`done` is defined if `resolve` is not\");\n done(undefined, file);\n }\n }\n }\n }\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */ processSync(file) {\n /** @type {boolean} */ let complete = false;\n /** @type {VFileWithOutput<CompileResult> | undefined} */ let result;\n this.freeze();\n assertParser(\"processSync\", this.parser || this.Parser);\n assertCompiler(\"processSync\", this.compiler || this.Compiler);\n this.process(file, realDone);\n assertDone(\"processSync\", \"process\", complete);\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(result, \"we either bailed on an error or have a tree\");\n return result;\n /**\n * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n */ function realDone(error, file) {\n complete = true;\n (0,bail__WEBPACK_IMPORTED_MODULE_5__.bail)(error);\n result = file;\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * > 👉 **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */ run(tree, file, done) {\n assertNode(tree);\n this.freeze();\n const transformers = this.transformers;\n if (!done && typeof file === \"function\") {\n done = file;\n file = undefined;\n }\n return done ? executor(undefined, done) : new Promise(executor);\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */ function executor(resolve, reject) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(typeof file !== \"function\", \"`file` can’t be a `done` anymore, we checked\");\n const realFile = vfile(file);\n transformers.run(tree, realFile, realDone);\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */ function realDone(error, outputTree, file) {\n const resultingTree = /** @type {TailTree extends undefined ? Node : TailTree} */ outputTree || tree;\n if (error) {\n reject(error);\n } else if (resolve) {\n resolve(resultingTree);\n } else {\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(done, \"`done` is defined if `resolve` is not\");\n done(undefined, resultingTree, file);\n }\n }\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */ runSync(tree, file) {\n /** @type {boolean} */ let complete = false;\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */ let result;\n this.run(tree, file, realDone);\n assertDone(\"runSync\", \"run\", complete);\n (0,devlop__WEBPACK_IMPORTED_MODULE_4__.ok)(result, \"we either bailed on an error or have a tree\");\n return result;\n /**\n * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n */ function realDone(error, tree) {\n (0,bail__WEBPACK_IMPORTED_MODULE_5__.bail)(error);\n result = tree;\n complete = true;\n }\n }\n /**\n * Compile a syntax tree.\n *\n * > 👉 **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */ stringify(tree, file) {\n this.freeze();\n const realFile = vfile(file);\n const compiler = this.compiler || this.Compiler;\n assertCompiler(\"stringify\", compiler);\n assertNode(tree);\n return compiler(tree, realFile);\n }\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > 👉 **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */ use(value, ...parameters) {\n const attachers = this.attachers;\n const namespace = this.namespace;\n assertUnfrozen(\"use\", this.frozen);\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === \"function\") {\n addPlugin(value, parameters);\n } else if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n addList(value);\n } else {\n addPreset(value);\n }\n } else {\n throw new TypeError(\"Expected usable value, not `\" + value + \"`\");\n }\n return this;\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */ function add(value) {\n if (typeof value === \"function\") {\n addPlugin(value, []);\n } else if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] = /** @type {PluginTuple<Array<unknown>>} */ value;\n addPlugin(plugin, parameters);\n } else {\n addPreset(value);\n }\n } else {\n throw new TypeError(\"Expected usable value, not `\" + value + \"`\");\n }\n }\n /**\n * @param {Preset} result\n * @returns {undefined}\n */ function addPreset(result) {\n if (!(\"plugins\" in result) && !(\"settings\" in result)) {\n throw new Error(\"Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither\");\n }\n addList(result.plugins);\n if (result.settings) {\n namespace.settings = extend__WEBPACK_IMPORTED_MODULE_0__(true, namespace.settings, result.settings);\n }\n }\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */ function addList(plugins) {\n let index = -1;\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while(++index < plugins.length){\n const thing = plugins[index];\n add(thing);\n }\n } else {\n throw new TypeError(\"Expected a list of plugins, not `\" + plugins + \"`\");\n }\n }\n /**\n * @param {Plugin} plugin\n * @param {Array<unknown>} parameters\n * @returns {undefined}\n */ function addPlugin(plugin, parameters) {\n let index = -1;\n let entryIndex = -1;\n while(++index < attachers.length){\n if (attachers[index][0] === plugin) {\n entryIndex = index;\n break;\n }\n }\n if (entryIndex === -1) {\n attachers.push([\n plugin,\n ...parameters\n ]);\n } else if (parameters.length > 0) {\n let [primary, ...rest] = parameters;\n const currentPrimary = attachers[entryIndex][1];\n if ((0,is_plain_obj__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(currentPrimary) && (0,is_plain_obj__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(primary)) {\n primary = extend__WEBPACK_IMPORTED_MODULE_0__(true, currentPrimary, primary);\n }\n attachers[entryIndex] = [\n plugin,\n primary,\n ...rest\n ];\n }\n }\n }\n}\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */ const unified = new Processor().freeze();\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */ function assertParser(name, value) {\n if (typeof value !== \"function\") {\n throw new TypeError(\"Cannot `\" + name + \"` without `parser`\");\n }\n}\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */ function assertCompiler(name, value) {\n if (typeof value !== \"function\") {\n throw new TypeError(\"Cannot `\" + name + \"` without `compiler`\");\n }\n}\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */ function assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\"Cannot call `\" + name + \"` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.\");\n }\n}\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */ function assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!(0,is_plain_obj__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(node) || typeof node.type !== \"string\") {\n throw new TypeError(\"Expected node, got `\" + node + \"`\");\n // Fine.\n }\n}\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */ function assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\"`\" + name + \"` finished async. Use `\" + asyncName + \"` instead\");\n }\n}\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */ function vfile(value) {\n return looksLikeAVFile(value) ? value : new vfile__WEBPACK_IMPORTED_MODULE_6__.VFile(value);\n}\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */ function looksLikeAVFile(value) {\n return Boolean(value && typeof value === \"object\" && \"message\" in value && \"messages\" in value);\n}\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */ function looksLikeAValue(value) {\n return typeof value === \"string\" || isUint8Array(value);\n}\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */ function isUint8Array(value) {\n return Boolean(value && typeof value === \"object\" && \"byteLength\" in value && \"byteOffset\" in value);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaWZpZWQvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7OztDQVdDLEdBRUQ7Ozs7OztDQU1DLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWlDQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JDLEdBRUQ7Ozs7Ozs7Q0FPQyxHQUVEOzs7Q0FHQyxHQUVELDREQUE0RDtBQUM1RCwyREFBMkQ7QUFDM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E4Q0MsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQStCQyxHQUVEOzs7Ozs7Ozs7Q0FTQyxHQUVEOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FFRDs7Ozs7Ozs7Ozs7Ozs7O0NBZUMsR0FFRDs7Ozs7Ozs7Ozs7Ozs7OztDQWdCQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EwQ0MsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F3REMsR0FFRDs7Ozs7Ozs7Ozs7O0NBWUMsR0FFd0I7QUFDRTtBQUNRO0FBQ0U7QUFDUjtBQUNGO0FBQzRCO0FBRXZELGtFQUFrRTtBQUVsRSw0RUFBNEU7QUFDNUUscUJBQXFCO0FBQ3JCLDZFQUE2RTtBQUU3RSxNQUFNUSxNQUFNLENBQUMsRUFBRUMsY0FBYztBQUU3Qjs7Ozs7Ozs7Ozs7O0NBWUMsR0FDTSxNQUFNQyxrQkFBa0JILG1FQUFnQkE7SUFDN0M7O0dBRUMsR0FDREksYUFBYztRQUNaLGtFQUFrRTtRQUNsRSxLQUFLLENBQUM7UUFFTjs7Ozs7Ozs7Ozs7O0tBWUMsR0FDRCxJQUFJLENBQUNDLFFBQVEsR0FBR0M7UUFFaEI7Ozs7Ozs7OztLQVNDLEdBQ0QsSUFBSSxDQUFDQyxNQUFNLEdBQUdEO1FBRWQscURB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TjtBQUNGO0FBRUE7Ozs7O0NBS0MsR0FDRCxTQUFTdkIsV0FBV3dCLElBQUk7SUFDdEIsOERBQThEO0lBQzlELGlDQUFpQztJQUNqQyxJQUFJLENBQUN0Rix3REFBVUEsQ0FBQ3NGLFNBQVMsT0FBT0EsS0FBS0MsSUFBSSxLQUFLLFVBQVU7UUFDdEQsTUFBTSxJQUFJZixVQUFVLHlCQUF5QmMsT0FBTztJQUNwRCxRQUFRO0lBQ1Y7QUFDRjtBQUVBOzs7Ozs7O0NBT0MsR0FDRCxTQUFTekIsV0FBV3dCLElBQUksRUFBRUcsU0FBUyxFQUFFNUIsUUFBUTtJQUMzQyxJQUFJLENBQUNBLFVBQVU7UUFDYixNQUFNLElBQUllLE1BQ1IsTUFBTVUsT0FBTyw0QkFBNEJHLFlBQVk7SUFFekQ7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNqRCxNQUFNYixLQUFLO0lBQ2xCLE9BQU8rRCxnQkFBZ0IvRCxTQUFTQSxRQUFRLElBQUl4Qix3Q0FBS0EsQ0FBQ3dCO0FBQ3BEO0FBRUE7OztDQUdDLEdBQ0QsU0FBUytELGdCQUFnQi9ELEtBQUs7SUFDNUIsT0FBT2dFLFFBQ0xoRSxTQUNFLE9BQU9BLFVBQVUsWUFDakIsYUFBYUEsU0FDYixjQUFjQTtBQUVwQjtBQUVBOzs7Q0FHQyxHQUNELFNBQVMrQixnQkFBZ0IvQixLQUFLO0lBQzVCLE9BQU8sT0FBT0EsVUFBVSxZQUFZaUUsYUFBYWpFO0FBQ25EO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNELFNBQVNpRSxhQUFhakUsS0FBSztJQUN6QixPQUFPZ0UsUUFDTGhFLFNBQ0UsT0FBT0EsVUFBVSxZQUNqQixnQkFBZ0JBLFNBQ2hCLGdCQUFnQkE7QUFFdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy91bmlmaWVkL2xpYi9pbmRleC5qcz8wMTNkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndHJvdWdoJykuUGlwZWxpbmV9IFBpcGVsaW5lXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5Db21wYXRpYmxlfSBDb21wYXRpYmxlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuQ29tcGlsZVJlc3VsdE1hcH0gQ29tcGlsZVJlc3VsdE1hcFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5EYXRhfSBEYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlNldHRpbmdzfSBTZXR0aW5nc1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0NvbXBpbGVSZXN1bHRNYXBba2V5b2YgQ29tcGlsZVJlc3VsdE1hcF19IENvbXBpbGVSZXN1bHRzXG4gKiAgIEFjY2VwdGFibGUgcmVzdWx0cyBmcm9tIGNvbXBpbGVycy5cbiAqXG4gKiAgIFRvIHJlZ2lzdGVyIGN1c3RvbSByZXN1bHRzLCBhZGQgdGhlbSB0b1xuICogICB7QGxpbmsgQ29tcGlsZVJlc3VsdE1hcCBgQ29tcGlsZVJlc3VsdE1hcGB9LlxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtOb2RlfSBbVHJlZT1Ob2RlXVxuICogICBUaGUgbm9kZSB0aGF0IHRoZSBjb21waWxlciByZWNlaXZlcyAoZGVmYXVsdDogYE5vZGVgKS5cbiAqIEB0ZW1wbGF0ZSB7Q29tcGlsZVJlc3VsdHN9IFtSZXN1bHQ9Q29tcGlsZVJlc3VsdHNdXG4gKiAgIFRoZSB0aGluZyB0aGF0IHRoZSBjb21waWxlciB5aWVsZHMgKGRlZmF1bHQ6IGBDb21waWxlUmVzdWx0c2ApLlxuICogQGNhbGxiYWNrIENvbXBpbGVyXG4gKiAgIEEgKipjb21waWxlcioqIGhhbmRsZXMgdGhlIGNvbXBpbGluZyBvZiBhIHN5bnRheCB0cmVlIHRvIHNvbWV0aGluZyBlbHNlXG4gKiAgIChpbiBtb3N0IGNhc2VzLCB0ZXh0KSAoVHlwZVNjcmlwdCB0eXBlKS5cbiAqXG4gKiAgIEl0IGlzIHVzZWQgaW4gdGhlIHN0cmluZ2lmeSBwaGFzZSBhbmQgY2FsbGVkIHdpdGggYSB7QGxpbmsgTm9kZSBgTm9kZWB9XG4gKiAgIGFuZCB7QGxpbmsgVkZpbGUgYFZGaWxlYH0gcmVwcmVzZW50YXRpb24gb2YgdGhlIGRvY3VtZW50IHRvIGNvbXBpbGUuXG4gKiAgIEl0IHNob3VsZCByZXR1cm4gdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIHRyZWUgKHR5cGljYWxseVxuICogICBgc3RyaW5nYCkuXG4gKlxuICogICA+IPCfkYkgKipOb3RlKio6IHVuaWZpZWQgdHlwaWNhbGx5IGNvbXBpbGVzIGJ5IHNlcmlhbGl6aW5nOiBtb3N0IGNvbXBpbGVyc1xuICogICA+IHJldHVybiBgc3RyaW5nYCAob3IgYFVpbnQ4QXJyYXlgKS5cbiAqICAgPiBTb21lIGNvbXBpbGVycywgc3VjaCBhcyB0aGUgb25lIGNvbmZpZ3VyZWQgd2l0aFxuICogICA+IFtgcmVoeXBlLXJlYWN0YF1bcmVoeXBlLXJlYWN0XSwgcmV0dXJuIG90aGVyIHZhbHVlcyAoaW4gdGhpcyBjYXNlLCBhXG4gKiAgID4gUmVhY3QgdHJlZSkuXG4gKiAgID4gSWYgeW914oCZcmUgdXNpbmcgYSBjb21waWxlciB0aGF0IGRvZXNu4oCZdCBzZXJpYWxpemUsIGV4cGVjdCBkaWZmZXJlbnRcbiAqICAgPiByZXN1bHQgdmFsdWVzLlxuICogICA+XG4gKiAgID4gVG8gcmVnaXN0ZXIgY3VzdG9tIHJlc3VsdHMgaW4gVHlwZVNjcmlwdCwgYWRkIHRoZW0gdG9cbiAqICAgPiB7QGxpbmsgQ29tcGlsZVJlc3VsdE1hcCBgQ29tcGlsZVJlc3VsdE1hcGB9LlxuICpcbiAqICAgW3JlaHlwZS1yZWFjdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWh5cGVqcy9yZWh5cGUtcmVhY3RcbiAqIEBwYXJhbSB7VHJlZX0gdHJlZVxuICogICBUcmVlIHRvIGNvbXBpbGUuXG4gKiBAcGFyYW0ge1ZGaWxlfSBmaWxlXG4gKiAgIEZpbGUgYXNzb2NpYXRlZCB3aXRoIGB0cmVlYC5cbiAqIEByZXR1cm5zIHtSZXN1bHR9XG4gKiAgIE5ldyBjb250ZW50OiBjb21waWxlZCB0ZXh0IChgc3RyaW5nYCBvciBgVWludDhBcnJheWAsIGZvciBgZmlsZS52YWx1ZWApIG9yXG4gKiAgIHNvbWV0aGluZyBlbHNlIChmb3IgYGZpbGUucmVzdWx0YCkuXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge05vZGV9IFtUcmVlPU5vZGVdXG4gKiAgIFRoZSBub2RlIHRoYXQgdGhlIHBhcnNlciB5aWVsZHMgKGRlZmF1bHQ6IGBOb2RlYClcbiAqIEBjYWxsYmFjayBQYXJzZXJcbiAqICAgQSAqKnBhcnNlcioqIGhhbmRsZXMgdGhlIHBhcnNpbmcgb2YgdGV4dCB0byBhIHN5bnRheCB0cmVlLlxuICpcbiAqICAgSXQgaXMgdXNlZCBpbiB0aGUgcGFyc2UgcGhhc2UgYW5kIGlzIGNhbGxlZCB3aXRoIGEgYHN0cmluZ2AgYW5kXG4gKiAgIHtAbGluayBWRmlsZSBgVkZpbGVgfSBvZiB0aGUgZG9jdW1lbnQgdG8gcGFyc2UuXG4gKiAgIEl0IG11c3QgcmV0dXJuIHRoZSBzeW50YXggdHJlZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gZmlsZVxuICogICAoe0BsaW5rIE5vZGUgYE5vZGVgfSkuXG4gKiBAcGFyYW0ge3N0cmluZ30gZG9jdW1lbnRcbiAqICAgRG9jdW1lbnQgdG8gcGFyc2UuXG4gKiBAcGFyYW0ge1ZGaWxlfSBmaWxlXG4gKiAgIEZpbGUgYXNzb2NpYXRlZCB3aXRoIGBkb2N1bWVudGAuXG4gKiBAcmV0dXJucyB7VHJlZX1cbiAqICAgTm9kZSByZXByZXNlbnRpbmcgdGhlIGdpdmVuIGZpbGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBQbHVnaW48QXJyYXk8YW55PiwgYW55LCBhbnk+IHxcbiAqICAgUGx1Z2luVHVwbGU8QXJyYXk8YW55PiwgYW55LCBhbnk+IHxcbiAqICAgUHJlc2V0XG4gKiApfSBQbHVnZ2FibGVcbiAqICAgVW5pb24gb2YgdGhlIGRpZmZlcmVudCB3YXlzIHRvIGFkZCBwbHVnaW5zIGFuZCBzZXR0aW5ncy5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtBcnJheTxQbHVnZ2FibGU+fSBQbHVnZ2FibGVMaXN0XG4gKiAgIExpc3Qgb2YgcGx1Z2lucyBhbmQgcHJlc2V0cy5cbiAqL1xuXG4vLyBOb3RlOiB3ZSBjYW7igJl0IHVzZSBgY2FsbGJhY2tgIHlldCBhcyBpdCBtZXNzZXMgdXAgYHRoaXNgOlxuLy8gIDxodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzU1MTk3Pi5cbi8qKlxuICogQHRlbXBsYXRlIHtBcnJheTx1bmtub3duPn0gW1BsdWdpblBhcmFtZXRlcnM9W11dXG4gKiAgIEFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHBsdWdpbiAoZGVmYXVsdDogYFtdYCwgdGhlIGVtcHR5IHR1cGxlKS5cbiAqIEB0ZW1wbGF0ZSB7Tm9kZSB8IHN0cmluZyB8IHVuZGVmaW5lZH0gW0lucHV0PU5vZGVdXG4gKiAgIFZhbHVlIHRoYXQgaXMgZXhwZWN0ZWQgYXMgaW5wdXQgKGRlZmF1bHQ6IGBOb2RlYCkuXG4gKlxuICogICAqICAgSWYgdGhlIHBsdWdpbiByZXR1cm5zIGEge0BsaW5rIFRyYW5zZm9ybWVyIGBUcmFuc2Zvcm1lcmB9LCB0aGlzXG4gKiAgICAgICBzaG91bGQgYmUgdGhlIG5vZGUgaXQgZXhwZWN0cy5cbiAqICAgKiAgIElmIHRoZSBwbHVnaW4gc2V0cyBhIHtAbGluayBQYXJzZXIgYFBhcnNlcmB9LCB0aGlzIHNob3VsZCBiZVxuICogICAgICAgYHN0cmluZ2AuXG4gKiAgICogICBJZiB0aGUgcGx1Z2luIHNldHMgYSB7QGxpbmsgQ29tcGlsZXIgYENvbXBpbGVyYH0sIHRoaXMgc2hvdWxkIGJlIHRoZVxuICogICAgICAgbm9kZSBpdCBleHBlY3RzLlxuICogQHRlbXBsYXRlIFtPdXRwdXQ9SW5wdXRdXG4gKiAgIFZhbHVlIHRoYXQgaXMgeWllbGRlZCBhcyBvdXRwdXQgKGRlZmF1bHQ6IGBJbnB1dGApLlxuICpcbiAqICAgKiAgIElmIHRoZSBwbHVnaW4gcmV0dXJucyBhIHtAbGluayBUcmFuc2Zvcm1lciBgVHJhbnNmb3JtZXJgfSwgdGhpc1xuICogICAgICAgc2hvdWxkIGJlIHRoZSBub2RlIHRoYXQgdGhhdCB5aWVsZHMuXG4gKiAgICogICBJZiB0aGUgcGx1Z2luIHNldHMgYSB7QGxpbmsgUGFyc2VyIGBQYXJzZXJgfSwgdGhpcyBzaG91bGQgYmUgdGhlXG4gKiAgICAgICBub2RlIHRoYXQgaXQgeWllbGRzLlxuICogICAqICAgSWYgdGhlIHBsdWdpbiBzZXRzIGEge0BsaW5rIENvbXBpbGVyIGBDb21waWxlcmB9LCB0aGlzIHNob3VsZCBiZVxuICogICAgICAgcmVzdWx0IGl0IHlpZWxkcy5cbiAqIEB0eXBlZGVmIHsoXG4gKiAgICh0aGlzOiBQcm9jZXNzb3IsIC4uLnBhcmFtZXRlcnM6IFBsdWdpblBhcmFtZXRlcnMpID0+XG4gKiAgICAgSW5wdXQgZXh0ZW5kcyBzdHJpbmcgPyAvLyBQYXJzZXIuXG4gKiAgICAgICAgT3V0cHV0IGV4dGVuZHMgTm9kZSB8IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCB8IHZvaWQgOiBuZXZlciA6XG4gKiAgICAgT3V0cHV0IGV4dGVuZHMgQ29tcGlsZVJlc3VsdHMgPyAvLyBDb21waWxlci5cbiAqICAgICAgICBJbnB1dCBleHRlbmRzIE5vZGUgfCB1bmRlZmluZWQgPyB1bmRlZmluZWQgfCB2b2lkIDogbmV2ZXIgOlxuICogICAgIFRyYW5zZm9ybWVyPFxuICogICAgICAgSW5wdXQgZXh0ZW5kcyBOb2RlID8gSW5wdXQgOiBOb2RlLFxuICogICAgICAgT3V0cHV0IGV4dGVuZHMgTm9kZSA/IE91dHB1dCA6IE5vZGVcbiAqICAgICA+IHwgdW5kZWZpbmVkIHwgdm9pZFxuICogKX0gUGx1Z2luXG4gKiAgIFNpbmdsZSBwbHVnaW4uXG4gKlxuICogICBQbHVnaW5zIGNvbmZpZ3VyZSB0aGUgcHJvY2Vzc29ycyB0aGV5IGFyZSBhcHBsaWVkIG9uIGluIHRoZSBmb2xsb3dpbmdcbiAqICAgd2F5czpcbiAqXG4gKiAgICogICB0aGV5IGNoYW5nZSB0aGUgcHJvY2Vzc29yLCBzdWNoIGFzIHRoZSBwYXJzZXIsIHRoZSBjb21waWxlciwgb3IgYnlcbiAqICAgICAgIGNvbmZpZ3VyaW5nIGRhdGFcbiAqICAgKiAgIHRoZXkgc3BlY2lmeSBob3cgdG8gaGFuZGxlIHRyZWVzIGFuZCBmaWxlc1xuICpcbiAqICAgSW4gcHJhY3RpY2UsIHRoZXkgYXJlIGZ1bmN0aW9ucyB0aGF0IGNhbiByZWNlaXZlIG9wdGlvbnMgYW5kIGNvbmZpZ3VyZSB0aGVcbiAqICAgcHJvY2Vzc29yIChgdGhpc2ApLlxuICpcbiAqICAgPiDwn5GJICoqTm90ZSoqOiBwbHVnaW5zIGFyZSBjYWxsZWQgd2hlbiB0aGUgcHJvY2Vzc29yIGlzICpmcm96ZW4qLCBub3Qgd2hlblxuICogICA+IHRoZXkgYXJlIGFwcGxpZWQuXG4gKi9cblxuLyoqXG4gKiBUdXBsZSBvZiBhIHBsdWdpbiBhbmQgaXRzIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogVGhlIGZpcnN0IGl0ZW0gaXMgYSBwbHVnaW4sIHRoZSByZXN0IGFyZSBpdHMgcGFyYW1ldGVycy5cbiAqXG4gKiBAdGVtcGxhdGUge0FycmF5PHVua25vd24+fSBbVHVwbGVQYXJhbWV0ZXJzPVtdXVxuICogICBBcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBwbHVnaW4gKGRlZmF1bHQ6IGBbXWAsIHRoZSBlbXB0eSB0dXBsZSkuXG4gKiBAdGVtcGxhdGUge05vZGUgfCBzdHJpbmcgfCB1bmRlZmluZWR9IFtJbnB1dD11bmRlZmluZWRdXG4gKiAgIFZhbHVlIHRoYXQgaXMgZXhwZWN0ZWQgYXMgaW5wdXQgKG9wdGlvbmFsKS5cbiAqXG4gKiAgICogICBJZiB0aGUgcGx1Z2luIHJldHVybnMgYSB7QGxpbmsgVHJhbnNmb3JtZXIgYFRyYW5zZm9ybWVyYH0sIHRoaXNcbiAqICAgICAgIHNob3VsZCBiZSB0aGUgbm9kZSBpdCBleHBlY3RzLlxuICogICAqICAgSWYgdGhlIHBsdWdpbiBzZXRzIGEge0BsaW5rIFBhcnNlciBgUGFyc2VyYH0sIHRoaXMgc2hvdWxkIGJlXG4gKiAgICAgICBgc3RyaW5nYC5cbiAqICAgKiAgIElmIHRoZSBwbHVnaW4gc2V0cyBhIHtAbGluayBDb21waWxlciBgQ29tcGlsZXJgfSwgdGhpcyBzaG91bGQgYmUgdGhlXG4gKiAgICAgICBub2RlIGl0IGV4cGVjdHMuXG4gKiBAdGVtcGxhdGUgW091dHB1dD11bmRlZmluZWRdIChvcHRpb25hbCkuXG4gKiAgIFZhbHVlIHRoYXQgaXMgeWllbGRlZCBhcyBvdXRwdXQuXG4gKlxuICogICAqICAgSWYgdGhlIHBsdWdpbiByZXR1cm5zIGEge0BsaW5rIFRyYW5zZm9ybWVyIGBUcmFuc2Zvcm1lcmB9LCB0aGlzXG4gKiAgICAgICBzaG91bGQgYmUgdGhlIG5vZGUgdGhhdCB0aGF0IHlpZWxkcy5cbiAqICAgKiAgIElmIHRoZSBwbHVnaW4gc2V0cyBhIHtAbGluayBQYXJzZXIgYFBhcnNlcmB9LCB0aGlzIHNob3VsZCBiZSB0aGVcbiAqICAgICAgIG5vZGUgdGhhdCBpdCB5aWVsZHMuXG4gKiAgICogICBJZiB0aGUgcGx1Z2luIHNldHMgYSB7QGxpbmsgQ29tcGlsZXIgYENvbXBpbGVyYH0sIHRoaXMgc2hvdWxkIGJlXG4gKiAgICAgICByZXN1bHQgaXQgeWllbGRzLlxuICogQHR5cGVkZWYgeyhcbiAqICAgW1xuICogICAgIHBsdWdpbjogUGx1Z2luPFR1cGxlUGFyYW1ldGVycywgSW5wdXQsIE91dHB1dD4sXG4gKiAgICAgLi4ucGFyYW1ldGVyczogVHVwbGVQYXJhbWV0ZXJzXG4gKiAgIF1cbiAqICl9IFBsdWdpblR1cGxlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBQcmVzZXRcbiAqICAgU2hhcmFibGUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiAgIFRoZXkgY2FuIGNvbnRhaW4gcGx1Z2lucyBhbmQgc2V0dGluZ3MuXG4gKiBAcHJvcGVydHkge1BsdWdnYWJsZUxpc3QgfCB1bmRlZmluZWR9IFtwbHVnaW5zXVxuICogICBMaXN0IG9mIHBsdWdpbnMgYW5kIHByZXNldHMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7U2V0dGluZ3MgfCB1bmRlZmluZWR9IFtzZXR0aW5nc11cbiAqICAgU2hhcmVkIHNldHRpbmdzIGZvciBwYXJzZXJzIGFuZCBjb21waWxlcnMgKG9wdGlvbmFsKS5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7VkZpbGV9IFtGaWxlPVZGaWxlXVxuICogICBUaGUgZmlsZSB0aGF0IHRoZSBjYWxsYmFjayByZWNlaXZlcyAoZGVmYXVsdDogYFZGaWxlYCkuXG4gKiBAY2FsbGJhY2sgUHJvY2Vzc0NhbGxiYWNrXG4gKiAgIENhbGxiYWNrIGNhbGxlZCB3aGVuIHRoZSBwcm9jZXNzIGlzIGRvbmUuXG4gKlxuICogICBDYWxsZWQgd2l0aCBlaXRoZXIgYW4gZXJyb3Igb3IgYSByZXN1bHQuXG4gKiBAcGFyYW0ge0Vycm9yIHwgdW5kZWZpbmVkfSBbZXJyb3JdXG4gKiAgIEZhdGFsIGVycm9yIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge0ZpbGUgfCB1bmRlZmluZWR9IFtmaWxlXVxuICogICBQcm9jZXNzZWQgZmlsZSAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Tm9kZX0gW1RyZWU9Tm9kZV1cbiAqICAgVGhlIHRyZWUgdGhhdCB0aGUgY2FsbGJhY2sgcmVjZWl2ZXMgKGRlZmF1bHQ6IGBOb2RlYCkuXG4gKiBAY2FsbGJhY2sgUnVuQ2FsbGJhY2tcbiAqICAgQ2FsbGJhY2sgY2FsbGVkIHdoZW4gdHJhbnNmb3JtZXJzIGFyZSBkb25lLlxuICpcbiAqICAgQ2FsbGVkIHdpdGggZWl0aGVyIGFuIGVycm9yIG9yIHJlc3VsdHMuXG4gKiBAcGFyYW0ge0Vycm9yIHwgdW5kZWZpbmVkfSBbZXJyb3JdXG4gKiAgIEZhdGFsIGVycm9yIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge1RyZWUgfCB1bmRlZmluZWR9IFt0cmVlXVxuICogICBUcmFuc2Zvcm1lZCB0cmVlIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge1ZGaWxlIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAqICAgRmlsZSAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Tm9kZX0gW091dHB1dD1Ob2RlXVxuICogICBOb2RlIHR5cGUgdGhhdCB0aGUgdHJhbnNmb3JtZXIgeWllbGRzIChkZWZhdWx0OiBgTm9kZWApLlxuICogQGNhbGxiYWNrIFRyYW5zZm9ybUNhbGxiYWNrXG4gKiAgIENhbGxiYWNrIHBhc3NlZCB0byB0cmFuc2Zvcm1zLlxuICpcbiAqICAgSWYgdGhlIHNpZ25hdHVyZSBvZiBhIGB0cmFuc2Zvcm1lcmAgYWNjZXB0cyBhIHRoaXJkIGFyZ3VtZW50LCB0aGVcbiAqICAgdHJhbnNmb3JtZXIgbWF5IHBlcmZvcm0gYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMsIGFuZCBtdXN0IGNhbGwgaXQuXG4gKiBAcGFyYW0ge0Vycm9yIHwgdW5kZWZpbmVkfSBbZXJyb3JdXG4gKiAgIEZhdGFsIGVycm9yIHRvIHN0b3AgdGhlIHByb2Nlc3MgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSB7T3V0cHV0IHwgdW5kZWZpbmVkfSBbdHJlZV1cbiAqICAgTmV3LCBjaGFuZ2VkLCB0cmVlIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge1ZGaWxlIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAqICAgTmV3LCBjaGFuZ2VkLCBmaWxlIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtOb2RlfSBbSW5wdXQ9Tm9kZV1cbiAqICAgTm9kZSB0eXBlIHRoYXQgdGhlIHRyYW5zZm9ybWVyIGV4cGVjdHMgKGRlZmF1bHQ6IGBOb2RlYCkuXG4gKiBAdGVtcGxhdGUge05vZGV9IFtPdXRwdXQ9SW5wdXRdXG4gKiAgIE5vZGUgdHlwZSB0aGF0IHRoZSB0cmFuc2Zvcm1lciB5aWVsZHMgKGRlZmF1bHQ6IGBJbnB1dGApLlxuICogQGNhbGxiYWNrIFRyYW5zZm9ybWVyXG4gKiAgIFRyYW5zZm9ybWVycyBoYW5kbGUgc3ludGF4IHRyZWVzIGFuZCBmaWxlcy5cbiAqXG4gKiAgIFRoZXkgYXJlIGZ1bmN0aW9ucyB0aGF0IGFyZSBjYWxsZWQgZWFjaCB0aW1lIGEgc3ludGF4IHRyZWUgYW5kIGZpbGUgYXJlXG4gKiAgIHBhc3NlZCB0aHJvdWdoIHRoZSBydW4gcGhhc2UuXG4gKiAgIFdoZW4gYW4gZXJyb3Igb2NjdXJzIGluIHRoZW0gKGVpdGhlciBiZWNhdXNlIGl04oCZcyB0aHJvd24sIHJldHVybmVkLFxuICogICByZWplY3RlZCwgb3IgcGFzc2VkIHRvIGBuZXh0YCksIHRoZSBwcm9jZXNzIHN0b3BzLlxuICpcbiAqICAgVGhlIHJ1biBwaGFzZSBpcyBoYW5kbGVkIGJ5IFtgdHJvdWdoYF1bdHJvdWdoXSwgc2VlIGl0cyBkb2N1bWVudGF0aW9uIGZvclxuICogICB0aGUgZXhhY3Qgc2VtYW50aWNzIG9mIHRoZXNlIGZ1bmN0aW9ucy5cbiAqXG4gKiAgID4g8J+RiSAqKk5vdGUqKjogeW91IHNob3VsZCBsaWtlbHkgaWdub3JlIGBuZXh0YDogZG9u4oCZdCBhY2NlcHQgaXQuXG4gKiAgID4gaXQgc3VwcG9ydHMgY2FsbGJhY2stc3R5bGUgYXN5bmMgd29yay5cbiAqICAgPiBCdXQgcHJvbWlzZXMgYXJlIGxpa2VseSBlYXNpZXIgdG8gcmVhc29uIGFib3V0LlxuICpcbiAqICAgW3Ryb3VnaF06IGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vdHJvdWdoI2Z1bmN0aW9uLWZuaW5wdXQtbmV4dFxuICogQHBhcmFtIHtJbnB1dH0gdHJlZVxuICogICBUcmVlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7VkZpbGV9IGZpbGVcbiAqICAgRmlsZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge1RyYW5zZm9ybUNhbGxiYWNrPE91dHB1dD59IG5leHRcbiAqICAgQ2FsbGJhY2suXG4gKiBAcmV0dXJucyB7KFxuICogICBQcm9taXNlPE91dHB1dCB8IHVuZGVmaW5lZCB8IHZvaWQ+IHxcbiAqICAgUHJvbWlzZTxuZXZlcj4gfCAvLyBGb3Igc29tZSByZWFzb24gdGhpcyBpcyBuZWVkZWQgc2VwYXJhdGVseS5cbiAqICAgT3V0cHV0IHxcbiAqICAgRXJyb3IgfFxuICogICB1bmRlZmluZWQgfFxuICogICB2b2lkXG4gKiApfVxuICogICBJZiB5b3UgYWNjZXB0IGBuZXh0YCwgbm90aGluZy5cbiAqICAgT3RoZXJ3aXNlOlxuICpcbiAqICAgKiAgIGBFcnJvcmAg4oCUIGZhdGFsIGVycm9yIHRvIHN0b3AgdGhlIHByb2Nlc3NcbiAqICAgKiAgIGBQcm9taXNlPHVuZGVmaW5lZD5gIG9yIGB1bmRlZmluZWRgIOKAlCB0aGUgbmV4dCB0cmFuc2Zvcm1lciBrZWVwcyB1c2luZ1xuICogICAgICAgc2FtZSB0cmVlXG4gKiAgICogICBgUHJvbWlzZTxOb2RlPmAgb3IgYE5vZGVgIOKAlCBuZXcsIGNoYW5nZWQsIHRyZWVcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Tm9kZSB8IHVuZGVmaW5lZH0gUGFyc2VUcmVlXG4gKiAgIE91dHB1dCBvZiBgcGFyc2VgLlxuICogQHRlbXBsYXRlIHtOb2RlIHwgdW5kZWZpbmVkfSBIZWFkVHJlZVxuICogICBJbnB1dCBmb3IgYHJ1bmAuXG4gKiBAdGVtcGxhdGUge05vZGUgfCB1bmRlZmluZWR9IFRhaWxUcmVlXG4gKiAgIE91dHB1dCBmb3IgYHJ1bmAuXG4gKiBAdGVtcGxhdGUge05vZGUgfCB1bmRlZmluZWR9IENvbXBpbGVUcmVlXG4gKiAgIElucHV0IG9mIGBzdHJpbmdpZnlgLlxuICogQHRlbXBsYXRlIHtDb21waWxlUmVzdWx0cyB8IHVuZGVmaW5lZH0gQ29tcGlsZVJlc3VsdFxuICogICBPdXRwdXQgb2YgYHN0cmluZ2lmeWAuXG4gKiBAdGVtcGxhdGUge05vZGUgfCBzdHJpbmcgfCB1bmRlZmluZWR9IElucHV0XG4gKiAgIElucHV0IG9mIHBsdWdpbi5cbiAqIEB0ZW1wbGF0ZSBPdXRwdXRcbiAqICAgT3V0cHV0IG9mIHBsdWdpbiAob3B0aW9uYWwpLlxuICogQHR5cGVkZWYgeyhcbiAqICAgSW5wdXQgZXh0ZW5kcyBzdHJpbmdcbiAqICAgICA/IE91dHB1dCBleHRlbmRzIE5vZGUgfCB1bmRlZmluZWRcbiAqICAgICAgID8gLy8gUGFyc2VyLlxuICogICAgICAgICBQcm9jZXNzb3I8XG4gKiAgICAgICAgICAgT3V0cHV0IGV4dGVuZHMgdW5kZWZpbmVkID8gUGFyc2VUcmVlIDogT3V0cHV0LFxuICogICAgICAgICAgIEhlYWRUcmVlLFxuICogICAgICAgICAgIFRhaWxUcmVlLFxuICogICAgICAgICAgIENvbXBpbGVUcmVlLFxuICogICAgICAgICAgIENvbXBpbGVSZXN1bHRcbiAqICAgICAgICAgPlxuICogICAgICAgOiAvLyBVbmtub3duLlxuICogICAgICAgICBQcm9jZXNzb3I8UGFyc2VUcmVlLCBIZWFkVHJlZSwgVGFpbFRyZWUsIENvbXBpbGVUcmVlLCBDb21waWxlUmVzdWx0PlxuICogICAgIDogT3V0cHV0IGV4dGVuZHMgQ29tcGlsZVJlc3VsdHNcbiAqICAgICA/IElucHV0IGV4dGVuZHMgTm9kZSB8IHVuZGVmaW5lZFxuICogICAgICAgPyAvLyBDb21waWxlci5cbiAqICAgICAgICAgUHJvY2Vzc29yPFxuICogICAgICAgICAgIFBhcnNlVHJlZSxcbiAqICAgICAgICAgICBIZWFkVHJlZSxcbiAqICAgICAgICAgICBUYWlsVHJlZSxcbiAqICAgICAgICAgICBJbnB1dCBleHRlbmRzIHVuZGVmaW5lZCA/IENvbXBpbGVUcmVlIDogSW5wdXQsXG4gKiAgICAgICAgICAgT3V0cHV0IGV4dGVuZHMgdW5kZWZpbmVkID8gQ29tcGlsZVJlc3VsdCA6IE91dHB1dFxuICogICAgICAgICA+XG4gKiAgICAgICA6IC8vIFVua25vd24uXG4gKiAgICAgICAgIFByb2Nlc3NvcjxQYXJzZVRyZWUsIEhlYWRUcmVlLCBUYWlsVHJlZSwgQ29tcGlsZVRyZWUsIENvbXBpbGVSZXN1bHQ+XG4gKiAgICAgOiBJbnB1dCBleHRlbmRzIE5vZGUgfCB1bmRlZmluZWRcbiAqICAgICA/IE91dHB1dCBleHRlbmRzIE5vZGUgfCB1bmRlZmluZWRcbiAqICAgICAgID8gLy8gVHJhbnNmb3JtLlxuICogICAgICAgICBQcm9jZXNzb3I8XG4gKiAgICAgICAgICAgUGFyc2VUcmVlLFxuICogICAgICAgICAgIEhlYWRUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gSW5wdXQgOiBIZWFkVHJlZSxcbiAqICAgICAgICAgICBPdXRwdXQgZXh0ZW5kcyB1bmRlZmluZWQgPyBUYWlsVHJlZSA6IE91dHB1dCxcbiAqICAgICAgICAgICBDb21waWxlVHJlZSxcbiAqICAgICAgICAgICBDb21waWxlUmVzdWx0XG4gKiAgICAgICAgID5cbiAqICAgICAgIDogLy8gVW5rbm93bi5cbiAqICAgICAgICAgUHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD5cbiAqICAgICA6IC8vIFVua25vd24uXG4gKiAgICAgICBQcm9jZXNzb3I8UGFyc2VUcmVlLCBIZWFkVHJlZSwgVGFpbFRyZWUsIENvbXBpbGVUcmVlLCBDb21waWxlUmVzdWx0PlxuICogKX0gVXNlUGx1Z2luXG4gKiAgIENyZWF0ZSBhIHByb2Nlc3NvciBiYXNlZCBvbiB0aGUgaW5wdXQvb3V0cHV0IG9mIGEge0BsaW5rIFBsdWdpbiBwbHVnaW59LlxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtDb21waWxlUmVzdWx0cyB8IHVuZGVmaW5lZH0gUmVzdWx0XG4gKiAgIE5vZGUgdHlwZSB0aGF0IHRoZSB0cmFuc2Zvcm1lciB5aWVsZHMuXG4gKiBAdHlwZWRlZiB7KFxuICogICBSZXN1bHQgZXh0ZW5kcyBWYWx1ZSB8IHVuZGVmaW5lZCA/XG4gKiAgICAgVkZpbGUgOlxuICogICAgIFZGaWxlICYge3Jlc3VsdDogUmVzdWx0fVxuICogICApfSBWRmlsZVdpdGhPdXRwdXRcbiAqICAgVHlwZSB0byBnZW5lcmF0ZSBhIHtAbGluayBWRmlsZSBgVkZpbGVgfSBjb3JyZXNwb25kaW5nIHRvIGEgY29tcGlsZXIgcmVzdWx0LlxuICpcbiAqICAgSWYgYSByZXN1bHQgdGhhdCBpcyBub3QgYWNjZXB0YWJsZSBvbiBhIGBWRmlsZWAgaXMgdXNlZCwgdGhhdCB3aWxsXG4gKiAgIGJlIHN0b3JlZCBvbiB0aGUgYHJlc3VsdGAgZmllbGQgb2Yge0BsaW5rIFZGaWxlIGBWRmlsZWB9LlxuICovXG5cbmltcG9ydCB7YmFpbH0gZnJvbSAnYmFpbCdcbmltcG9ydCBleHRlbmQgZnJvbSAnZXh0ZW5kJ1xuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCBpc1BsYWluT2JqIGZyb20gJ2lzLXBsYWluLW9iaidcbmltcG9ydCB7dHJvdWdofSBmcm9tICd0cm91Z2gnXG5pbXBvcnQge1ZGaWxlfSBmcm9tICd2ZmlsZSdcbmltcG9ydCB7Q2FsbGFibGVJbnN0YW5jZX0gZnJvbSAnLi9jYWxsYWJsZS1pbnN0YW5jZS5qcydcblxuLy8gVG8gZG86IG5leHQgbWFqb3I6IGRyb3AgYENvbXBpbGVyYCwgYFBhcnNlcmA6IHByZWZlciBsb3dlcmNhc2UuXG5cbi8vIFRvIGRvOiB3ZSBjb3VsZCBzdGFydCB5aWVsZGluZyBgbmV2ZXJgIGluIFRTIHdoZW4gYSBwYXJzZXIgaXMgbWlzc2luZyBhbmRcbi8vIGBwYXJzZWAgaXMgY2FsbGVkLlxuLy8gQ3VycmVudGx5LCB3ZSBhbGxvdyBkaXJlY3RseSBzZXR0aW5nIGBwcm9jZXNzb3IucGFyc2VyYCwgd2hpY2ggaXMgdW50eXBlZC5cblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBAdGVtcGxhdGUge05vZGUgfCB1bmRlZmluZWR9IFtQYXJzZVRyZWU9dW5kZWZpbmVkXVxuICogICBPdXRwdXQgb2YgYHBhcnNlYCAob3B0aW9uYWwpLlxuICogQHRlbXBsYXRlIHtOb2RlIHwgdW5kZWZpbmVkfSBbSGVhZFRyZWU9dW5kZWZpbmVkXVxuICogICBJbnB1dCBmb3IgYHJ1bmAgKG9wdGlvbmFsKS5cbiAqIEB0ZW1wbGF0ZSB7Tm9kZSB8IHVuZGVmaW5lZH0gW1RhaWxUcmVlPXVuZGVmaW5lZF1cbiAqICAgT3V0cHV0IGZvciBgcnVuYCAob3B0aW9uYWwpLlxuICogQHRlbXBsYXRlIHtOb2RlIHwgdW5kZWZpbmVkfSBbQ29tcGlsZVRyZWU9dW5kZWZpbmVkXVxuICogICBJbnB1dCBvZiBgc3RyaW5naWZ5YCAob3B0aW9uYWwpLlxuICogQHRlbXBsYXRlIHtDb21waWxlUmVzdWx0cyB8IHVuZGVmaW5lZH0gW0NvbXBpbGVSZXN1bHQ9dW5kZWZpbmVkXVxuICogICBPdXRwdXQgb2YgYHN0cmluZ2lmeWAgKG9wdGlvbmFsKS5cbiAqIEBleHRlbmRzIHtDYWxsYWJsZUluc3RhbmNlPFtdLCBQcm9jZXNzb3I8UGFyc2VUcmVlLCBIZWFkVHJlZSwgVGFpbFRyZWUsIENvbXBpbGVUcmVlLCBDb21waWxlUmVzdWx0Pj59XG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9jZXNzb3IgZXh0ZW5kcyBDYWxsYWJsZUluc3RhbmNlIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIHByb2Nlc3Nvci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIElmIGBQcm9jZXNzb3IoKWAgaXMgY2FsbGVkICh3L28gbmV3KSwgYGNvcHlgIGlzIGNhbGxlZCBpbnN0ZWFkLlxuICAgIHN1cGVyKCdjb3B5JylcblxuICAgIC8qKlxuICAgICAqIENvbXBpbGVyIHRvIHVzZSAoZGVwcmVjYXRlZCkuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqICAgVXNlIGBjb21waWxlcmAgaW5zdGVhZC5cbiAgICAgKiBAdHlwZSB7KFxuICAgICAqICAgQ29tcGlsZXI8XG4gICAgICogICAgIENvbXBpbGVUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IENvbXBpbGVUcmVlLFxuICAgICAqICAgICBDb21waWxlUmVzdWx0IGV4dGVuZHMgdW5kZWZpbmVkID8gQ29tcGlsZVJlc3VsdHMgOiBDb21waWxlUmVzdWx0XG4gICAgICogICA+IHxcbiAgICAgKiAgIHVuZGVmaW5lZFxuICAgICAqICl9XG4gICAgICovXG4gICAgdGhpcy5Db21waWxlciA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUGFyc2VyIHRvIHVzZSAoZGVwcmVjYXRlZCkuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqICAgVXNlIGBwYXJzZXJgIGluc3RlYWQuXG4gICAgICogQHR5cGUgeyhcbiAgICAgKiAgIFBhcnNlcjxQYXJzZVRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogUGFyc2VUcmVlPiB8XG4gICAgICogICB1bmRlZmluZWRcbiAgICAgKiApfVxuICAgICAqL1xuICAgIHRoaXMuUGFyc2VyID0gdW5kZWZpbmVkXG5cbiAgICAvLyBOb3RlOiB0aGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgY29uc2lkZXJlZCBwcml2YXRlLlxuICAgIC8vIEhvd2V2ZXIsIHRoZXkgYXJlIG5lZWRlZCBmb3IgdGVzdHMsIGFuZCBUU0MgZ2VuZXJhdGVzIGFuIHVudHlwZWRcbiAgICAvLyBgcHJpdmF0ZSBmcmVlemVJbmRleGAgZmllbGQgZm9yLCB3aGljaCB0cmlwcyBgdHlwZS1jb3ZlcmFnZWAgdXAuXG4gICAgLy8gSW5zdGVhZCwgd2UgdXNlIGBAZGVwcmVjYXRlZGAgdG8gdmlzdWFsaXplIHRoYXQgdGhleSBzaG91bGRu4oCZdCBiZSB1c2VkLlxuICAgIC8qKlxuICAgICAqIEludGVybmFsIGxpc3Qgb2YgY29uZmlndXJlZCBwbHVnaW5zLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiAgIFRoaXMgaXMgYSBwcml2YXRlIGludGVybmFsIHByb3BlcnR5IGFuZCBzaG91bGQgbm90IGJlIHVzZWQuXG4gICAgICogQHR5cGUge0FycmF5PFBsdWdpblR1cGxlPEFycmF5PHVua25vd24+Pj59XG4gICAgICovXG4gICAgdGhpcy5hdHRhY2hlcnMgPSBbXVxuXG4gICAgLyoqXG4gICAgICogQ29tcGlsZXIgdG8gdXNlLlxuICAgICAqXG4gICAgICogQHR5cGUgeyhcbiAgICAgKiAgIENvbXBpbGVyPFxuICAgICAqICAgICBDb21waWxlVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBDb21waWxlVHJlZSxcbiAgICAgKiAgICAgQ29tcGlsZVJlc3VsdCBleHRlbmRzIHVuZGVmaW5lZCA/IENvbXBpbGVSZXN1bHRzIDogQ29tcGlsZVJlc3VsdFxuICAgICAqICAgPiB8XG4gICAgICogICB1bmRlZmluZWRcbiAgICAgKiApfVxuICAgICAqL1xuICAgIHRoaXMuY29tcGlsZXIgPSB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIEludGVybmFsIHN0YXRlIHRvIHRyYWNrIHdoZXJlIHdlIGFyZSB3aGlsZSBmcmVlemluZy5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogICBUaGlzIGlzIGEgcHJpdmF0ZSBpbnRlcm5hbCBwcm9wZXJ0eSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5mcmVlemVJbmRleCA9IC0xXG5cbiAgICAvKipcbiAgICAgKiBJbnRlcm5hbCBzdGF0ZSB0byB0cmFjayB3aGV0aGVyIHdl4oCZcmUgZnJvemVuLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiAgIFRoaXMgaXMgYSBwcml2YXRlIGludGVybmFsIHByb3BlcnR5IGFuZCBzaG91bGQgbm90IGJlIHVzZWQuXG4gICAgICogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5mcm96ZW4gPSB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIEludGVybmFsIHN0YXRlLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiAgIFRoaXMgaXMgYSBwcml2YXRlIGludGVybmFsIHByb3BlcnR5IGFuZCBzaG91bGQgbm90IGJlIHVzZWQuXG4gICAgICogQHR5cGUge0RhdGF9XG4gICAgICovXG4gICAgdGhpcy5uYW1lc3BhY2UgPSB7fVxuXG4gICAgLyoqXG4gICAgICogUGFyc2VyIHRvIHVzZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHsoXG4gICAgICogICBQYXJzZXI8UGFyc2VUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFBhcnNlVHJlZT4gfFxuICAgICAqICAgdW5kZWZpbmVkXG4gICAgICogKX1cbiAgICAgKi9cbiAgICB0aGlzLnBhcnNlciA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgbGlzdCBvZiBjb25maWd1cmVkIHRyYW5zZm9ybWVycy5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogICBUaGlzIGlzIGEgcHJpdmF0ZSBpbnRlcm5hbCBwcm9wZXJ0eSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICAgICAqIEB0eXBlIHtQaXBlbGluZX1cbiAgICAgKi9cbiAgICB0aGlzLnRyYW5zZm9ybWVycyA9IHRyb3VnaCgpXG4gIH1cblxuICAvKipcbiAgICogQ29weSBhIHByb2Nlc3Nvci5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogICBUaGlzIGlzIGEgcHJpdmF0ZSBpbnRlcm5hbCBtZXRob2QgYW5kIHNob3VsZCBub3QgYmUgdXNlZC5cbiAgICogQHJldHVybnMge1Byb2Nlc3NvcjxQYXJzZVRyZWUsIEhlYWRUcmVlLCBUYWlsVHJlZSwgQ29tcGlsZVRyZWUsIENvbXBpbGVSZXN1bHQ+fVxuICAgKiAgIE5ldyAqdW5mcm96ZW4qIHByb2Nlc3NvciAoe0BsaW5rIFByb2Nlc3NvciBgUHJvY2Vzc29yYH0pIHRoYXQgaXNcbiAgICogICBjb25maWd1cmVkIHRvIHdvcmsgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9yLlxuICAgKiAgIFdoZW4gdGhlIGRlc2NlbmRhbnQgcHJvY2Vzc29yIGlzIGNvbmZpZ3VyZWQgaW4gdGhlIGZ1dHVyZSBpdCBkb2VzIG5vdFxuICAgKiAgIGFmZmVjdCB0aGUgYW5jZXN0cmFsIHByb2Nlc3Nvci5cbiAgICovXG4gIGNvcHkoKSB7XG4gICAgLy8gQ2FzdCBhcyB0aGUgdHlwZSBwYXJhbWV0ZXJzIHdpbGwgYmUgdGhlIHNhbWUgYWZ0ZXIgYXR0YWNoaW5nLlxuICAgIGNvbnN0IGRlc3RpbmF0aW9uID1cbiAgICAgIC8qKiBAdHlwZSB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59ICovIChcbiAgICAgICAgbmV3IFByb2Nlc3NvcigpXG4gICAgICApXG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgdGhpcy5hdHRhY2hlcnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBhdHRhY2hlciA9IHRoaXMuYXR0YWNoZXJzW2luZGV4XVxuICAgICAgZGVzdGluYXRpb24udXNlKC4uLmF0dGFjaGVyKVxuICAgIH1cblxuICAgIGRlc3RpbmF0aW9uLmRhdGEoZXh0ZW5kKHRydWUsIHt9LCB0aGlzLm5hbWVzcGFjZSkpXG5cbiAgICByZXR1cm4gZGVzdGluYXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgdGhlIHByb2Nlc3NvciB3aXRoIGluZm8gYXZhaWxhYmxlIHRvIGFsbCBwbHVnaW5zLlxuICAgKiBJbmZvcm1hdGlvbiBpcyBzdG9yZWQgaW4gYW4gb2JqZWN0LlxuICAgKlxuICAgKiBUeXBpY2FsbHksIG9wdGlvbnMgY2FuIGJlIGdpdmVuIHRvIGEgc3BlY2lmaWMgcGx1Z2luLCBidXQgc29tZXRpbWVzIGl0XG4gICAqIG1ha2VzIHNlbnNlIHRvIGhhdmUgaW5mb3JtYXRpb24gc2hhcmVkIHdpdGggc2V2ZXJhbCBwbHVnaW5zLlxuICAgKiBGb3IgZXhhbXBsZSwgYSBsaXN0IG9mIEhUTUwgZWxlbWVudHMgdGhhdCBhcmUgc2VsZi1jbG9zaW5nLCB3aGljaCBpc1xuICAgKiBuZWVkZWQgZHVyaW5nIGFsbCBwaGFzZXMuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogc2V0dGluZyBpbmZvcm1hdGlvbiBjYW5ub3Qgb2NjdXIgb24gKmZyb3plbiogcHJvY2Vzc29ycy5cbiAgICogPiBDYWxsIHRoZSBwcm9jZXNzb3IgZmlyc3QgdG8gY3JlYXRlIGEgbmV3IHVuZnJvemVuIHByb2Nlc3Nvci5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiB0byByZWdpc3RlciBjdXN0b20gZGF0YSBpbiBUeXBlU2NyaXB0LCBhdWdtZW50IHRoZVxuICAgKiA+IHtAbGluayBEYXRhIGBEYXRhYH0gaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAgIFRoaXMgZXhhbXBsZSBzaG93IGhvdyB0byBnZXQgYW5kIHNldCBpbmZvOlxuICAgKlxuICAgKiAgIGBgYGpzXG4gICAqICAgaW1wb3J0IHt1bmlmaWVkfSBmcm9tICd1bmlmaWVkJ1xuICAgKlxuICAgKiAgIGNvbnN0IHByb2Nlc3NvciA9IHVuaWZpZWQoKS5kYXRhKCdhbHBoYScsICdicmF2bycpXG4gICAqXG4gICAqICAgcHJvY2Vzc29yLmRhdGEoJ2FscGhhJykgLy8gPT4gJ2JyYXZvJ1xuICAgKlxuICAgKiAgIHByb2Nlc3Nvci5kYXRhKCkgLy8gPT4ge2FscGhhOiAnYnJhdm8nfVxuICAgKlxuICAgKiAgIHByb2Nlc3Nvci5kYXRhKHtjaGFybGllOiAnZGVsdGEnfSlcbiAgICpcbiAgICogICBwcm9jZXNzb3IuZGF0YSgpIC8vID0+IHtjaGFybGllOiAnZGVsdGEnfVxuICAgKiAgIGBgYFxuICAgKlxuICAgKiBAdGVtcGxhdGUge2tleW9mIERhdGF9IEtleVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHJldHVybnMge0RhdGF9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0RhdGF9IGRhdGFzZXRcbiAgICogQHJldHVybnMge1Byb2Nlc3NvcjxQYXJzZVRyZWUsIEhlYWRUcmVlLCBUYWlsVHJlZSwgQ29tcGlsZVRyZWUsIENvbXBpbGVSZXN1bHQ+fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtLZXl9IGtleVxuICAgKiBAcmV0dXJucyB7RGF0YVtLZXldfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtLZXl9IGtleVxuICAgKiBAcGFyYW0ge0RhdGFbS2V5XX0gdmFsdWVcbiAgICogQHJldHVybnMge1Byb2Nlc3NvcjxQYXJzZVRyZWUsIEhlYWRUcmVlLCBUYWlsVHJlZSwgQ29tcGlsZVRyZWUsIENvbXBpbGVSZXN1bHQ+fVxuICAgKlxuICAgKiBAcGFyYW0ge0RhdGEgfCBLZXl9IFtrZXldXG4gICAqICAgS2V5IHRvIGdldCBvciBzZXQsIG9yIGVudGlyZSBkYXRhc2V0IHRvIHNldCwgb3Igbm90aGluZyB0byBnZXQgdGhlXG4gICAqICAgZW50aXJlIGRhdGFzZXQgKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtEYXRhW0tleV19IFt2YWx1ZV1cbiAgICogICBWYWx1ZSB0byBzZXQgKG9wdGlvbmFsKS5cbiAgICogQHJldHVybnMge3Vua25vd259XG4gICAqICAgVGhlIGN1cnJlbnQgcHJvY2Vzc29yIHdoZW4gc2V0dGluZywgdGhlIHZhbHVlIGF0IGBrZXlgIHdoZW4gZ2V0dGluZywgb3JcbiAgICogICB0aGUgZW50aXJlIGRhdGFzZXQgd2hlbiBnZXR0aW5nIHdpdGhvdXQga2V5LlxuICAgKi9cbiAgZGF0YShrZXksIHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBTZXQgYGtleWAuXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBhc3NlcnRVbmZyb3plbignZGF0YScsIHRoaXMuZnJvemVuKVxuICAgICAgICB0aGlzLm5hbWVzcGFjZVtrZXldID0gdmFsdWVcbiAgICAgICAgcmV0dXJuIHRoaXNcbiAgICAgIH1cblxuICAgICAgLy8gR2V0IGBrZXlgLlxuICAgICAgcmV0dXJuIChvd24uY2FsbCh0aGlzLm5hbWVzcGFjZSwga2V5KSAmJiB0aGlzLm5hbWVzcGFjZVtrZXldKSB8fCB1bmRlZmluZWRcbiAgICB9XG5cbiAgICAvLyBTZXQgc3BhY2UuXG4gICAgaWYgKGtleSkge1xuICAgICAgYXNzZXJ0VW5mcm96ZW4oJ2RhdGEnLCB0aGlzLmZyb3plbilcbiAgICAgIHRoaXMubmFtZXNwYWNlID0ga2V5XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIC8vIEdldCBzcGFjZS5cbiAgICByZXR1cm4gdGhpcy5uYW1lc3BhY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBGcmVlemUgYSBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEZyb3plbiBwcm9jZXNzb3JzIGFyZSBtZWFudCB0byBiZSBleHRlbmRlZCBhbmQgbm90IHRvIGJlIGNvbmZpZ3VyZWRcbiAgICogZGlyZWN0bHkuXG4gICAqXG4gICAqIFdoZW4gYSBwcm9jZXNzb3IgaXMgZnJvemVuIGl0IGNhbm5vdCBiZSB1bmZyb3plbi5cbiAgICogTmV3IHByb2Nlc3NvcnMgd29ya2luZyB0aGUgc2FtZSB3YXkgY2FuIGJlIGNyZWF0ZWQgYnkgY2FsbGluZyB0aGVcbiAgICogcHJvY2Vzc29yLlxuICAgKlxuICAgKiBJdOKAmXMgcG9zc2libGUgdG8gZnJlZXplIHByb2Nlc3NvcnMgZXhwbGljaXRseSBieSBjYWxsaW5nIGAuZnJlZXplKClgLlxuICAgKiBQcm9jZXNzb3JzIGZyZWV6ZSBhdXRvbWF0aWNhbGx5IHdoZW4gYC5wYXJzZSgpYCwgYC5ydW4oKWAsIGAucnVuU3luYygpYCxcbiAgICogYC5zdHJpbmdpZnkoKWAsIGAucHJvY2VzcygpYCwgb3IgYC5wcm9jZXNzU3luYygpYCBhcmUgY2FsbGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59XG4gICAqICAgVGhlIGN1cnJlbnQgcHJvY2Vzc29yLlxuICAgKi9cbiAgZnJlZXplKCkge1xuICAgIGlmICh0aGlzLmZyb3plbikge1xuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICAvLyBDYXN0IHNvIHRoYXQgd2UgY2FuIHR5cGUgcGx1Z2lucyBlYXNpZXIuXG4gICAgLy8gUGx1Z2lucyBhcmUgc3VwcG9zZWQgdG8gYmUgdXNhYmxlIG9uIGRpZmZlcmVudCBwcm9jZXNzb3JzLCBub3QganVzdCBvblxuICAgIC8vIHRoaXMgZXhhY3QgcHJvY2Vzc29yLlxuICAgIGNvbnN0IHNlbGYgPSAvKiogQHR5cGUge1Byb2Nlc3Nvcn0gKi8gKC8qKiBAdHlwZSB7dW5rbm93bn0gKi8gKHRoaXMpKVxuXG4gICAgd2hpbGUgKCsrdGhpcy5mcmVlemVJbmRleCA8IHRoaXMuYXR0YWNoZXJzLmxlbmd0aCkge1xuICAgICAgY29uc3QgW2F0dGFjaGVyLCAuLi5vcHRpb25zXSA9IHRoaXMuYXR0YWNoZXJzW3RoaXMuZnJlZXplSW5kZXhdXG5cbiAgICAgIGlmIChvcHRpb25zWzBdID09PSBmYWxzZSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uc1swXSA9PT0gdHJ1ZSkge1xuICAgICAgICBvcHRpb25zWzBdID0gdW5kZWZpbmVkXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gYXR0YWNoZXIuY2FsbChzZWxmLCAuLi5vcHRpb25zKVxuXG4gICAgICBpZiAodHlwZW9mIHRyYW5zZm9ybWVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMudHJhbnNmb3JtZXJzLnVzZSh0cmFuc2Zvcm1lcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmZyb3plbiA9IHRydWVcbiAgICB0aGlzLmZyZWV6ZUluZGV4ID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIHRleHQgdG8gYSBzeW50YXggdHJlZS5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBgcGFyc2VgIGZyZWV6ZXMgdGhlIHByb2Nlc3NvciBpZiBub3QgYWxyZWFkeSAqZnJvemVuKi5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBgcGFyc2VgIHBlcmZvcm1zIHRoZSBwYXJzZSBwaGFzZSwgbm90IHRoZSBydW4gcGhhc2Ugb3Igb3RoZXJcbiAgICogPiBwaGFzZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqICAgZmlsZSB0byBwYXJzZSAob3B0aW9uYWwpOyB0eXBpY2FsbHkgYHN0cmluZ2Agb3IgYFZGaWxlYDsgYW55IHZhbHVlXG4gICAqICAgYWNjZXB0ZWQgYXMgYHhgIGluIGBuZXcgVkZpbGUoeClgLlxuICAgKiBAcmV0dXJucyB7UGFyc2VUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFBhcnNlVHJlZX1cbiAgICogICBTeW50YXggdHJlZSByZXByZXNlbnRpbmcgYGZpbGVgLlxuICAgKi9cbiAgcGFyc2UoZmlsZSkge1xuICAgIHRoaXMuZnJlZXplKClcbiAgICBjb25zdCByZWFsRmlsZSA9IHZmaWxlKGZpbGUpXG4gICAgY29uc3QgcGFyc2VyID0gdGhpcy5wYXJzZXIgfHwgdGhpcy5QYXJzZXJcbiAgICBhc3NlcnRQYXJzZXIoJ3BhcnNlJywgcGFyc2VyKVxuICAgIHJldHVybiBwYXJzZXIoU3RyaW5nKHJlYWxGaWxlKSwgcmVhbEZpbGUpXG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyB0aGUgZ2l2ZW4gZmlsZSBhcyBjb25maWd1cmVkIG9uIHRoZSBwcm9jZXNzb3IuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogYHByb2Nlc3NgIGZyZWV6ZXMgdGhlIHByb2Nlc3NvciBpZiBub3QgYWxyZWFkeSAqZnJvemVuKi5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBgcHJvY2Vzc2AgcGVyZm9ybXMgdGhlIHBhcnNlLCBydW4sIGFuZCBzdHJpbmdpZnkgcGhhc2VzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBmaWxlXG4gICAqIEBwYXJhbSB7UHJvY2Vzc0NhbGxiYWNrPFZGaWxlV2l0aE91dHB1dDxDb21waWxlUmVzdWx0Pj59IGRvbmVcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFZGaWxlV2l0aE91dHB1dDxDb21waWxlUmVzdWx0Pj59XG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqICAgRmlsZSAob3B0aW9uYWwpOyB0eXBpY2FsbHkgYHN0cmluZ2Agb3IgYFZGaWxlYF07IGFueSB2YWx1ZSBhY2NlcHRlZCBhc1xuICAgKiAgIGB4YCBpbiBgbmV3IFZGaWxlKHgpYC5cbiAgICogQHBhcmFtIHtQcm9jZXNzQ2FsbGJhY2s8VkZpbGVXaXRoT3V0cHV0PENvbXBpbGVSZXN1bHQ+PiB8IHVuZGVmaW5lZH0gW2RvbmVdXG4gICAqICAgQ2FsbGJhY2sgKG9wdGlvbmFsKS5cbiAgICogQHJldHVybnMge1Byb21pc2U8VkZpbGU+IHwgdW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcgaWYgYGRvbmVgIGlzIGdpdmVuLlxuICAgKiAgIE90aGVyd2lzZSBhIHByb21pc2UsIHJlamVjdGVkIHdpdGggYSBmYXRhbCBlcnJvciBvciByZXNvbHZlZCB3aXRoIHRoZVxuICAgKiAgIHByb2Nlc3NlZCBmaWxlLlxuICAgKlxuICAgKiAgIFRoZSBwYXJzZWQsIHRyYW5zZm9ybWVkLCBhbmQgY29tcGlsZWQgdmFsdWUgaXMgYXZhaWxhYmxlIGF0XG4gICAqICAgYGZpbGUudmFsdWVgIChzZWUgbm90ZSkuXG4gICAqXG4gICAqICAgPiDwn5GJICoqTm90ZSoqOiB1bmlmaWVkIHR5cGljYWxseSBjb21waWxlcyBieSBzZXJpYWxpemluZzogbW9zdFxuICAgKiAgID4gY29tcGlsZXJzIHJldHVybiBgc3RyaW5nYCAob3IgYFVpbnQ4QXJyYXlgKS5cbiAgICogICA+IFNvbWUgY29tcGlsZXJzLCBzdWNoIGFzIHRoZSBvbmUgY29uZmlndXJlZCB3aXRoXG4gICAqICAgPiBbYHJlaHlwZS1yZWFjdGBdW3JlaHlwZS1yZWFjdF0sIHJldHVybiBvdGhlciB2YWx1ZXMgKGluIHRoaXMgY2FzZSwgYVxuICAgKiAgID4gUmVhY3QgdHJlZSkuXG4gICAqICAgPiBJZiB5b3XigJlyZSB1c2luZyBhIGNvbXBpbGVyIHRoYXQgZG9lc27igJl0IHNlcmlhbGl6ZSwgZXhwZWN0IGRpZmZlcmVudFxuICAgKiAgID4gcmVzdWx0IHZhbHVlcy5cbiAgICogICA+XG4gICAqICAgPiBUbyByZWdpc3RlciBjdXN0b20gcmVzdWx0cyBpbiBUeXBlU2NyaXB0LCBhZGQgdGhlbSB0b1xuICAgKiAgID4ge0BsaW5rIENvbXBpbGVSZXN1bHRNYXAgYENvbXBpbGVSZXN1bHRNYXBgfS5cbiAgICpcbiAgICogICBbcmVoeXBlLXJlYWN0XTogaHR0cHM6Ly9naXRodWIuY29tL3JlaHlwZWpzL3JlaHlwZS1yZWFjdFxuICAgKi9cbiAgcHJvY2VzcyhmaWxlLCBkb25lKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXNcblxuICAgIHRoaXMuZnJlZXplKClcbiAgICBhc3NlcnRQYXJzZXIoJ3Byb2Nlc3MnLCB0aGlzLnBhcnNlciB8fCB0aGlzLlBhcnNlcilcbiAgICBhc3NlcnRDb21waWxlcigncHJvY2VzcycsIHRoaXMuY29tcGlsZXIgfHwgdGhpcy5Db21waWxlcilcblxuICAgIHJldHVybiBkb25lID8gZXhlY3V0b3IodW5kZWZpbmVkLCBkb25lKSA6IG5ldyBQcm9taXNlKGV4ZWN1dG9yKVxuXG4gICAgLy8gTm90ZTogYHZvaWRgcyBuZWVkZWQgZm9yIFRTLlxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7KChmaWxlOiBWRmlsZVdpdGhPdXRwdXQ8Q29tcGlsZVJlc3VsdD4pID0+IHVuZGVmaW5lZCB8IHZvaWQpIHwgdW5kZWZpbmVkfSByZXNvbHZlXG4gICAgICogQHBhcmFtIHsoZXJyb3I6IEVycm9yIHwgdW5kZWZpbmVkKSA9PiB1bmRlZmluZWQgfCB2b2lkfSByZWplY3RcbiAgICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV4ZWN1dG9yKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgY29uc3QgcmVhbEZpbGUgPSB2ZmlsZShmaWxlKVxuICAgICAgLy8gQXNzdW1lIGBQYXJzZVRyZWVgICh0aGUgcmVzdWx0IG9mIHRoZSBwYXJzZXIpIG1hdGNoZXMgYEhlYWRUcmVlYCAodGhlXG4gICAgICAvLyBpbnB1dCBvZiB0aGUgZmlyc3QgdHJhbnNmb3JtKS5cbiAgICAgIGNvbnN0IHBhcnNlVHJlZSA9XG4gICAgICAgIC8qKiBAdHlwZSB7SGVhZFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogSGVhZFRyZWV9ICovIChcbiAgICAgICAgICAvKiogQHR5cGUge3Vua25vd259ICovIChzZWxmLnBhcnNlKHJlYWxGaWxlKSlcbiAgICAgICAgKVxuXG4gICAgICBzZWxmLnJ1bihwYXJzZVRyZWUsIHJlYWxGaWxlLCBmdW5jdGlvbiAoZXJyb3IsIHRyZWUsIGZpbGUpIHtcbiAgICAgICAgaWYgKGVycm9yIHx8ICF0cmVlIHx8ICFmaWxlKSB7XG4gICAgICAgICAgcmV0dXJuIHJlYWxEb25lKGVycm9yKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXNzdW1lIGBUYWlsVHJlZWAgKHRoZSBvdXRwdXQgb2YgdGhlIGxhc3QgdHJhbnNmb3JtKSBtYXRjaGVzXG4gICAgICAgIC8vIGBDb21waWxlVHJlZWAgKHRoZSBpbnB1dCBvZiB0aGUgY29tcGlsZXIpLlxuICAgICAgICBjb25zdCBjb21waWxlVHJlZSA9XG4gICAgICAgICAgLyoqIEB0eXBlIHtDb21waWxlVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBDb21waWxlVHJlZX0gKi8gKFxuICAgICAgICAgICAgLyoqIEB0eXBlIHt1bmtub3dufSAqLyAodHJlZSlcbiAgICAgICAgICApXG5cbiAgICAgICAgY29uc3QgY29tcGlsZVJlc3VsdCA9IHNlbGYuc3RyaW5naWZ5KGNvbXBpbGVUcmVlLCBmaWxlKVxuXG4gICAgICAgIGlmIChsb29rc0xpa2VBVmFsdWUoY29tcGlsZVJlc3VsdCkpIHtcbiAgICAgICAgICBmaWxlLnZhbHVlID0gY29tcGlsZVJlc3VsdFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpbGUucmVzdWx0ID0gY29tcGlsZVJlc3VsdFxuICAgICAgICB9XG5cbiAgICAgICAgcmVhbERvbmUoZXJyb3IsIC8qKiBAdHlwZSB7VkZpbGVXaXRoT3V0cHV0PENvbXBpbGVSZXN1bHQ+fSAqLyAoZmlsZSkpXG4gICAgICB9KVxuXG4gICAgICAvKipcbiAgICAgICAqIEBwYXJhbSB7RXJyb3IgfCB1bmRlZmluZWR9IGVycm9yXG4gICAgICAgKiBAcGFyYW0ge1ZGaWxlV2l0aE91dHB1dDxDb21waWxlUmVzdWx0PiB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAgICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiByZWFsRG9uZShlcnJvciwgZmlsZSkge1xuICAgICAgICBpZiAoZXJyb3IgfHwgIWZpbGUpIHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgIH0gZWxzZSBpZiAocmVzb2x2ZSkge1xuICAgICAgICAgIHJlc29sdmUoZmlsZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhc3NlcnQoZG9uZSwgJ2Bkb25lYCBpcyBkZWZpbmVkIGlmIGByZXNvbHZlYCBpcyBub3QnKVxuICAgICAgICAgIGRvbmUodW5kZWZpbmVkLCBmaWxlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3MgdGhlIGdpdmVuIGZpbGUgYXMgY29uZmlndXJlZCBvbiB0aGUgcHJvY2Vzc29yLlxuICAgKlxuICAgKiBBbiBlcnJvciBpcyB0aHJvd24gaWYgYXN5bmNocm9ub3VzIHRyYW5zZm9ybXMgYXJlIGNvbmZpZ3VyZWQuXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogYHByb2Nlc3NTeW5jYCBmcmVlemVzIHRoZSBwcm9jZXNzb3IgaWYgbm90IGFscmVhZHkgKmZyb3plbiouXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogYHByb2Nlc3NTeW5jYCBwZXJmb3JtcyB0aGUgcGFyc2UsIHJ1biwgYW5kIHN0cmluZ2lmeSBwaGFzZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqICAgRmlsZSAob3B0aW9uYWwpOyB0eXBpY2FsbHkgYHN0cmluZ2Agb3IgYFZGaWxlYDsgYW55IHZhbHVlIGFjY2VwdGVkIGFzXG4gICAqICAgYHhgIGluIGBuZXcgVkZpbGUoeClgLlxuICAgKiBAcmV0dXJucyB7VkZpbGVXaXRoT3V0cHV0PENvbXBpbGVSZXN1bHQ+fVxuICAgKiAgIFRoZSBwcm9jZXNzZWQgZmlsZS5cbiAgICpcbiAgICogICBUaGUgcGFyc2VkLCB0cmFuc2Zvcm1lZCwgYW5kIGNvbXBpbGVkIHZhbHVlIGlzIGF2YWlsYWJsZSBhdFxuICAgKiAgIGBmaWxlLnZhbHVlYCAoc2VlIG5vdGUpLlxuICAgKlxuICAgKiAgID4g8J+RiSAqKk5vdGUqKjogdW5pZmllZCB0eXBpY2FsbHkgY29tcGlsZXMgYnkgc2VyaWFsaXppbmc6IG1vc3RcbiAgICogICA+IGNvbXBpbGVycyByZXR1cm4gYHN0cmluZ2AgKG9yIGBVaW50OEFycmF5YCkuXG4gICAqICAgPiBTb21lIGNvbXBpbGVycywgc3VjaCBhcyB0aGUgb25lIGNvbmZpZ3VyZWQgd2l0aFxuICAgKiAgID4gW2ByZWh5cGUtcmVhY3RgXVtyZWh5cGUtcmVhY3RdLCByZXR1cm4gb3RoZXIgdmFsdWVzIChpbiB0aGlzIGNhc2UsIGFcbiAgICogICA+IFJlYWN0IHRyZWUpLlxuICAgKiAgID4gSWYgeW914oCZcmUgdXNpbmcgYSBjb21waWxlciB0aGF0IGRvZXNu4oCZdCBzZXJpYWxpemUsIGV4cGVjdCBkaWZmZXJlbnRcbiAgICogICA+IHJlc3VsdCB2YWx1ZXMuXG4gICAqICAgPlxuICAgKiAgID4gVG8gcmVnaXN0ZXIgY3VzdG9tIHJlc3VsdHMgaW4gVHlwZVNjcmlwdCwgYWRkIHRoZW0gdG9cbiAgICogICA+IHtAbGluayBDb21waWxlUmVzdWx0TWFwIGBDb21waWxlUmVzdWx0TWFwYH0uXG4gICAqXG4gICAqICAgW3JlaHlwZS1yZWFjdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWh5cGVqcy9yZWh5cGUtcmVhY3RcbiAgICovXG4gIHByb2Nlc3NTeW5jKGZpbGUpIHtcbiAgICAvKiogQHR5cGUge2Jvb2xlYW59ICovXG4gICAgbGV0IGNvbXBsZXRlID0gZmFsc2VcbiAgICAvKiogQHR5cGUge1ZGaWxlV2l0aE91dHB1dDxDb21waWxlUmVzdWx0PiB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgcmVzdWx0XG5cbiAgICB0aGlzLmZyZWV6ZSgpXG4gICAgYXNzZXJ0UGFyc2VyKCdwcm9jZXNzU3luYycsIHRoaXMucGFyc2VyIHx8IHRoaXMuUGFyc2VyKVxuICAgIGFzc2VydENvbXBpbGVyKCdwcm9jZXNzU3luYycsIHRoaXMuY29tcGlsZXIgfHwgdGhpcy5Db21waWxlcilcblxuICAgIHRoaXMucHJvY2VzcyhmaWxlLCByZWFsRG9uZSlcbiAgICBhc3NlcnREb25lKCdwcm9jZXNzU3luYycsICdwcm9jZXNzJywgY29tcGxldGUpXG4gICAgYXNzZXJ0KHJlc3VsdCwgJ3dlIGVpdGhlciBiYWlsZWQgb24gYW4gZXJyb3Igb3IgaGF2ZSBhIHRyZWUnKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuXG4gICAgLyoqXG4gICAgICogQHR5cGUge1Byb2Nlc3NDYWxsYmFjazxWRmlsZVdpdGhPdXRwdXQ8Q29tcGlsZVJlc3VsdD4+fVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlYWxEb25lKGVycm9yLCBmaWxlKSB7XG4gICAgICBjb21wbGV0ZSA9IHRydWVcbiAgICAgIGJhaWwoZXJyb3IpXG4gICAgICByZXN1bHQgPSBmaWxlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1biAqdHJhbnNmb3JtZXJzKiBvbiBhIHN5bnRheCB0cmVlLlxuICAgKlxuICAgKiA+IPCfkYkgKipOb3RlKio6IGBydW5gIGZyZWV6ZXMgdGhlIHByb2Nlc3NvciBpZiBub3QgYWxyZWFkeSAqZnJvemVuKi5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBgcnVuYCBwZXJmb3JtcyB0aGUgcnVuIHBoYXNlLCBub3Qgb3RoZXIgcGhhc2VzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtIZWFkVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBIZWFkVHJlZX0gdHJlZVxuICAgKiBAcGFyYW0ge1J1bkNhbGxiYWNrPFRhaWxUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFRhaWxUcmVlPn0gZG9uZVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtIZWFkVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBIZWFkVHJlZX0gdHJlZVxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCB1bmRlZmluZWR9IGZpbGVcbiAgICogQHBhcmFtIHtSdW5DYWxsYmFjazxUYWlsVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBUYWlsVHJlZT59IGRvbmVcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7SGVhZFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogSGVhZFRyZWV9IHRyZWVcbiAgICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAgICogQHJldHVybnMge1Byb21pc2U8VGFpbFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogVGFpbFRyZWU+fVxuICAgKlxuICAgKiBAcGFyYW0ge0hlYWRUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IEhlYWRUcmVlfSB0cmVlXG4gICAqICAgVHJlZSB0byB0cmFuc2Zvcm0gYW5kIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7KFxuICAgKiAgIFJ1bkNhbGxiYWNrPFRhaWxUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFRhaWxUcmVlPiB8XG4gICAqICAgQ29tcGF0aWJsZVxuICAgKiApfSBbZmlsZV1cbiAgICogICBGaWxlIGFzc29jaWF0ZWQgd2l0aCBgbm9kZWAgKG9wdGlvbmFsKTsgYW55IHZhbHVlIGFjY2VwdGVkIGFzIGB4YCBpblxuICAgKiAgIGBuZXcgVkZpbGUoeClgLlxuICAgKiBAcGFyYW0ge1J1bkNhbGxiYWNrPFRhaWxUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFRhaWxUcmVlPn0gW2RvbmVdXG4gICAqICAgQ2FsbGJhY2sgKG9wdGlvbmFsKS5cbiAgICogQHJldHVybnMge1Byb21pc2U8VGFpbFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogVGFpbFRyZWU+IHwgdW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcgaWYgYGRvbmVgIGlzIGdpdmVuLlxuICAgKiAgIE90aGVyd2lzZSwgYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBmYXRhbCBlcnJvciBvciByZXNvbHZlZCB3aXRoIHRoZVxuICAgKiAgIHRyYW5zZm9ybWVkIHRyZWUuXG4gICAqL1xuICBydW4odHJlZSwgZmlsZSwgZG9uZSkge1xuICAgIGFzc2VydE5vZGUodHJlZSlcbiAgICB0aGlzLmZyZWV6ZSgpXG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lcnMgPSB0aGlzLnRyYW5zZm9ybWVyc1xuXG4gICAgaWYgKCFkb25lICYmIHR5cGVvZiBmaWxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBkb25lID0gZmlsZVxuICAgICAgZmlsZSA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiBkb25lID8gZXhlY3V0b3IodW5kZWZpbmVkLCBkb25lKSA6IG5ldyBQcm9taXNlKGV4ZWN1dG9yKVxuXG4gICAgLy8gTm90ZTogYHZvaWRgcyBuZWVkZWQgZm9yIFRTLlxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7KFxuICAgICAqICAgKCh0cmVlOiBUYWlsVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBUYWlsVHJlZSkgPT4gdW5kZWZpbmVkIHwgdm9pZCkgfFxuICAgICAqICAgdW5kZWZpbmVkXG4gICAgICogKX0gcmVzb2x2ZVxuICAgICAqIEBwYXJhbSB7KGVycm9yOiBFcnJvcikgPT4gdW5kZWZpbmVkIHwgdm9pZH0gcmVqZWN0XG4gICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBleGVjdXRvcihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGFzc2VydChcbiAgICAgICAgdHlwZW9mIGZpbGUgIT09ICdmdW5jdGlvbicsXG4gICAgICAgICdgZmlsZWAgY2Fu4oCZdCBiZSBhIGBkb25lYCBhbnltb3JlLCB3ZSBjaGVja2VkJ1xuICAgICAgKVxuICAgICAgY29uc3QgcmVhbEZpbGUgPSB2ZmlsZShmaWxlKVxuICAgICAgdHJhbnNmb3JtZXJzLnJ1bih0cmVlLCByZWFsRmlsZSwgcmVhbERvbmUpXG5cbiAgICAgIC8qKlxuICAgICAgICogQHBhcmFtIHtFcnJvciB8IHVuZGVmaW5lZH0gZXJyb3JcbiAgICAgICAqIEBwYXJhbSB7Tm9kZX0gb3V0cHV0VHJlZVxuICAgICAgICogQHBhcmFtIHtWRmlsZX0gZmlsZVxuICAgICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gcmVhbERvbmUoZXJyb3IsIG91dHB1dFRyZWUsIGZpbGUpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0aW5nVHJlZSA9XG4gICAgICAgICAgLyoqIEB0eXBlIHtUYWlsVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBUYWlsVHJlZX0gKi8gKFxuICAgICAgICAgICAgb3V0cHV0VHJlZSB8fCB0cmVlXG4gICAgICAgICAgKVxuXG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgfSBlbHNlIGlmIChyZXNvbHZlKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHRpbmdUcmVlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFzc2VydChkb25lLCAnYGRvbmVgIGlzIGRlZmluZWQgaWYgYHJlc29sdmVgIGlzIG5vdCcpXG4gICAgICAgICAgZG9uZSh1bmRlZmluZWQsIHJlc3VsdGluZ1RyZWUsIGZpbGUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVuICp0cmFuc2Zvcm1lcnMqIG9uIGEgc3ludGF4IHRyZWUuXG4gICAqXG4gICAqIEFuIGVycm9yIGlzIHRocm93biBpZiBhc3luY2hyb25vdXMgdHJhbnNmb3JtcyBhcmUgY29uZmlndXJlZC5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBgcnVuU3luY2AgZnJlZXplcyB0aGUgcHJvY2Vzc29yIGlmIG5vdCBhbHJlYWR5ICpmcm96ZW4qLlxuICAgKlxuICAgKiA+IPCfkYkgKipOb3RlKio6IGBydW5TeW5jYCBwZXJmb3JtcyB0aGUgcnVuIHBoYXNlLCBub3Qgb3RoZXIgcGhhc2VzLlxuICAgKlxuICAgKiBAcGFyYW0ge0hlYWRUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IEhlYWRUcmVlfSB0cmVlXG4gICAqICAgVHJlZSB0byB0cmFuc2Zvcm0gYW5kIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqICAgRmlsZSBhc3NvY2lhdGVkIHdpdGggYG5vZGVgIChvcHRpb25hbCk7IGFueSB2YWx1ZSBhY2NlcHRlZCBhcyBgeGAgaW5cbiAgICogICBgbmV3IFZGaWxlKHgpYC5cbiAgICogQHJldHVybnMge1RhaWxUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFRhaWxUcmVlfVxuICAgKiAgIFRyYW5zZm9ybWVkIHRyZWUuXG4gICAqL1xuICBydW5TeW5jKHRyZWUsIGZpbGUpIHtcbiAgICAvKiogQHR5cGUge2Jvb2xlYW59ICovXG4gICAgbGV0IGNvbXBsZXRlID0gZmFsc2VcbiAgICAvKiogQHR5cGUgeyhUYWlsVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBUYWlsVHJlZSkgfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IHJlc3VsdFxuXG4gICAgdGhpcy5ydW4odHJlZSwgZmlsZSwgcmVhbERvbmUpXG5cbiAgICBhc3NlcnREb25lKCdydW5TeW5jJywgJ3J1bicsIGNvbXBsZXRlKVxuICAgIGFzc2VydChyZXN1bHQsICd3ZSBlaXRoZXIgYmFpbGVkIG9uIGFuIGVycm9yIG9yIGhhdmUgYSB0cmVlJylcbiAgICByZXR1cm4gcmVzdWx0XG5cbiAgICAvKipcbiAgICAgKiBAdHlwZSB7UnVuQ2FsbGJhY2s8VGFpbFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogVGFpbFRyZWU+fVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlYWxEb25lKGVycm9yLCB0cmVlKSB7XG4gICAgICBiYWlsKGVycm9yKVxuICAgICAgcmVzdWx0ID0gdHJlZVxuICAgICAgY29tcGxldGUgPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbXBpbGUgYSBzeW50YXggdHJlZS5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBgc3RyaW5naWZ5YCBmcmVlemVzIHRoZSBwcm9jZXNzb3IgaWYgbm90IGFscmVhZHkgKmZyb3plbiouXG4gICAqXG4gICAqID4g8J+RiSAqKk5vdGUqKjogYHN0cmluZ2lmeWAgcGVyZm9ybXMgdGhlIHN0cmluZ2lmeSBwaGFzZSwgbm90IHRoZSBydW4gcGhhc2VcbiAgICogPiBvciBvdGhlciBwaGFzZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGlsZVRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogQ29tcGlsZVRyZWV9IHRyZWVcbiAgICogICBUcmVlIHRvIGNvbXBpbGUuXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqICAgRmlsZSBhc3NvY2lhdGVkIHdpdGggYG5vZGVgIChvcHRpb25hbCk7IGFueSB2YWx1ZSBhY2NlcHRlZCBhcyBgeGAgaW5cbiAgICogICBgbmV3IFZGaWxlKHgpYC5cbiAgICogQHJldHVybnMge0NvbXBpbGVSZXN1bHQgZXh0ZW5kcyB1bmRlZmluZWQgPyBWYWx1ZSA6IENvbXBpbGVSZXN1bHR9XG4gICAqICAgVGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJlZSAoc2VlIG5vdGUpLlxuICAgKlxuICAgKiAgID4g8J+RiSAqKk5vdGUqKjogdW5pZmllZCB0eXBpY2FsbHkgY29tcGlsZXMgYnkgc2VyaWFsaXppbmc6IG1vc3QgY29tcGlsZXJzXG4gICAqICAgPiByZXR1cm4gYHN0cmluZ2AgKG9yIGBVaW50OEFycmF5YCkuXG4gICAqICAgPiBTb21lIGNvbXBpbGVycywgc3VjaCBhcyB0aGUgb25lIGNvbmZpZ3VyZWQgd2l0aFxuICAgKiAgID4gW2ByZWh5cGUtcmVhY3RgXVtyZWh5cGUtcmVhY3RdLCByZXR1cm4gb3RoZXIgdmFsdWVzIChpbiB0aGlzIGNhc2UsIGFcbiAgICogICA+IFJlYWN0IHRyZWUpLlxuICAgKiAgID4gSWYgeW914oCZcmUgdXNpbmcgYSBjb21waWxlciB0aGF0IGRvZXNu4oCZdCBzZXJpYWxpemUsIGV4cGVjdCBkaWZmZXJlbnRcbiAgICogICA+IHJlc3VsdCB2YWx1ZXMuXG4gICAqICAgPlxuICAgKiAgID4gVG8gcmVnaXN0ZXIgY3VzdG9tIHJlc3VsdHMgaW4gVHlwZVNjcmlwdCwgYWRkIHRoZW0gdG9cbiAgICogICA+IHtAbGluayBDb21waWxlUmVzdWx0TWFwIGBDb21waWxlUmVzdWx0TWFwYH0uXG4gICAqXG4gICAqICAgW3JlaHlwZS1yZWFjdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWh5cGVqcy9yZWh5cGUtcmVhY3RcbiAgICovXG4gIHN0cmluZ2lmeSh0cmVlLCBmaWxlKSB7XG4gICAgdGhpcy5mcmVlemUoKVxuICAgIGNvbnN0IHJlYWxGaWxlID0gdmZpbGUoZmlsZSlcbiAgICBjb25zdCBjb21waWxlciA9IHRoaXMuY29tcGlsZXIgfHwgdGhpcy5Db21waWxlclxuICAgIGFzc2VydENvbXBpbGVyKCdzdHJpbmdpZnknLCBjb21waWxlcilcbiAgICBhc3NlcnROb2RlKHRyZWUpXG5cbiAgICByZXR1cm4gY29tcGlsZXIodHJlZSwgcmVhbEZpbGUpXG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBwcm9jZXNzb3IgdG8gdXNlIGEgcGx1Z2luLCBhIGxpc3Qgb2YgdXNhYmxlIHZhbHVlcywgb3IgYVxuICAgKiBwcmVzZXQuXG4gICAqXG4gICAqIElmIHRoZSBwcm9jZXNzb3IgaXMgYWxyZWFkeSB1c2luZyBhIHBsdWdpbiwgdGhlIHByZXZpb3VzIHBsdWdpblxuICAgKiBjb25maWd1cmF0aW9uIGlzIGNoYW5nZWQgYmFzZWQgb24gdGhlIG9wdGlvbnMgdGhhdCBhcmUgcGFzc2VkIGluLlxuICAgKiBJbiBvdGhlciB3b3JkcywgdGhlIHBsdWdpbiBpcyBub3QgYWRkZWQgYSBzZWNvbmQgdGltZS5cbiAgICpcbiAgICogPiDwn5GJICoqTm90ZSoqOiBgdXNlYCBjYW5ub3QgYmUgY2FsbGVkIG9uICpmcm96ZW4qIHByb2Nlc3NvcnMuXG4gICAqID4gQ2FsbCB0aGUgcHJvY2Vzc29yIGZpcnN0IHRvIGNyZWF0ZSBhIG5ldyB1bmZyb3plbiBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICAgVGhlcmUgYXJlIG1hbnkgd2F5cyB0byBwYXNzIHBsdWdpbnMgdG8gYC51c2UoKWAuXG4gICAqICAgVGhpcyBleGFtcGxlIGdpdmVzIGFuIG92ZXJ2aWV3OlxuICAgKlxuICAgKiAgIGBgYGpzXG4gICAqICAgaW1wb3J0IHt1bmlmaWVkfSBmcm9tICd1bmlmaWVkJ1xuICAgKlxuICAgKiAgIHVuaWZpZWQoKVxuICAgKiAgICAgLy8gUGx1Z2luIHdpdGggb3B0aW9uczpcbiAgICogICAgIC51c2UocGx1Z2luQSwge3g6IHRydWUsIHk6IHRydWV9KVxuICAgKiAgICAgLy8gUGFzc2luZyB0aGUgc2FtZSBwbHVnaW4gYWdhaW4gbWVyZ2VzIGNvbmZpZ3VyYXRpb24gKHRvIGB7eDogdHJ1ZSwgeTogZmFsc2UsIHo6IHRydWV9YCk6XG4gICAqICAgICAudXNlKHBsdWdpbkEsIHt5OiBmYWxzZSwgejogdHJ1ZX0pXG4gICAqICAgICAvLyBQbHVnaW5zOlxuICAgKiAgICAgLnVzZShbcGx1Z2luQiwgcGx1Z2luQ10pXG4gICAqICAgICAvLyBUd28gcGx1Z2lucywgdGhlIHNlY29uZCB3aXRoIG9wdGlvbnM6XG4gICAqICAgICAudXNlKFtwbHVnaW5ELCBbcGx1Z2luRSwge31dXSlcbiAgICogICAgIC8vIFByZXNldCB3aXRoIHBsdWdpbnMgYW5kIHNldHRpbmdzOlxuICAgKiAgICAgLnVzZSh7cGx1Z2luczogW3BsdWdpbkYsIFtwbHVnaW5HLCB7fV1dLCBzZXR0aW5nczoge3Bvc2l0aW9uOiBmYWxzZX19KVxuICAgKiAgICAgLy8gU2V0dGluZ3Mgb25seTpcbiAgICogICAgIC51c2Uoe3NldHRpbmdzOiB7cG9zaXRpb246IGZhbHNlfX0pXG4gICAqICAgYGBgXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSB7QXJyYXk8dW5rbm93bj59IFtQYXJhbWV0ZXJzPVtdXVxuICAgKiBAdGVtcGxhdGUge05vZGUgfCBzdHJpbmcgfCB1bmRlZmluZWR9IFtJbnB1dD11bmRlZmluZWRdXG4gICAqIEB0ZW1wbGF0ZSBbT3V0cHV0PUlucHV0XVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtQcmVzZXQgfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJlc2V0XVxuICAgKiBAcmV0dXJucyB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge1BsdWdnYWJsZUxpc3R9IGxpc3RcbiAgICogQHJldHVybnMge1Byb2Nlc3NvcjxQYXJzZVRyZWUsIEhlYWRUcmVlLCBUYWlsVHJlZSwgQ29tcGlsZVRyZWUsIENvbXBpbGVSZXN1bHQ+fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtQbHVnaW48UGFyYW1ldGVycywgSW5wdXQsIE91dHB1dD59IHBsdWdpblxuICAgKiBAcGFyYW0gey4uLihQYXJhbWV0ZXJzIHwgW2Jvb2xlYW5dKX0gcGFyYW1ldGVyc1xuICAgKiBAcmV0dXJucyB7VXNlUGx1Z2luPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdCwgSW5wdXQsIE91dHB1dD59XG4gICAqXG4gICAqIEBwYXJhbSB7UGx1Z2dhYmxlTGlzdCB8IFBsdWdpbiB8IFByZXNldCB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gICAqICAgVXNhYmxlIHZhbHVlLlxuICAgKiBAcGFyYW0gey4uLnVua25vd259IHBhcmFtZXRlcnNcbiAgICogICBQYXJhbWV0ZXJzLCB3aGVuIGEgcGx1Z2luIGlzIGdpdmVuIGFzIGEgdXNhYmxlIHZhbHVlLlxuICAgKiBAcmV0dXJucyB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59XG4gICAqICAgQ3VycmVudCBwcm9jZXNzb3IuXG4gICAqL1xuICB1c2UodmFsdWUsIC4uLnBhcmFtZXRlcnMpIHtcbiAgICBjb25zdCBhdHRhY2hlcnMgPSB0aGlzLmF0dGFjaGVyc1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IHRoaXMubmFtZXNwYWNlXG5cbiAgICBhc3NlcnRVbmZyb3plbigndXNlJywgdGhpcy5mcm96ZW4pXG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRW1wdHkuXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGFkZFBsdWdpbih2YWx1ZSwgcGFyYW1ldGVycylcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBhZGRMaXN0KHZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkUHJlc2V0KHZhbHVlKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgJyArIHZhbHVlICsgJ2AnKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1BsdWdnYWJsZX0gdmFsdWVcbiAgICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFkZCh2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBhZGRQbHVnaW4odmFsdWUsIFtdKVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IFtwbHVnaW4sIC4uLnBhcmFtZXRlcnNdID1cbiAgICAgICAgICAgIC8qKiBAdHlwZSB7UGx1Z2luVHVwbGU8QXJyYXk8dW5rbm93bj4+fSAqLyAodmFsdWUpXG4gICAgICAgICAgYWRkUGx1Z2luKHBsdWdpbiwgcGFyYW1ldGVycylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZGRQcmVzZXQodmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAnICsgdmFsdWUgKyAnYCcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtQcmVzZXR9IHJlc3VsdFxuICAgICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAgICovXG4gICAgZnVuY3Rpb24gYWRkUHJlc2V0KHJlc3VsdCkge1xuICAgICAgaWYgKCEoJ3BsdWdpbnMnIGluIHJlc3VsdCkgJiYgISgnc2V0dGluZ3MnIGluIHJlc3VsdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdFeHBlY3RlZCB1c2FibGUgdmFsdWUgYnV0IHJlY2VpdmVkIGFuIGVtcHR5IHByZXNldCwgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlOiBwcmVzZXRzIHR5cGljYWxseSBjb21lIHdpdGggYHBsdWdpbnNgIGFuZCBzb21ldGltZXMgd2l0aCBgc2V0dGluZ3NgLCBidXQgdGhpcyBoYXMgbmVpdGhlcidcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBhZGRMaXN0KHJlc3VsdC5wbHVnaW5zKVxuXG4gICAgICBpZiAocmVzdWx0LnNldHRpbmdzKSB7XG4gICAgICAgIG5hbWVzcGFjZS5zZXR0aW5ncyA9IGV4dGVuZCh0cnVlLCBuYW1lc3BhY2Uuc2V0dGluZ3MsIHJlc3VsdC5zZXR0aW5ncylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1BsdWdnYWJsZUxpc3QgfCBudWxsIHwgdW5kZWZpbmVkfSBwbHVnaW5zXG4gICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhZGRMaXN0KHBsdWdpbnMpIHtcbiAgICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICAgIGlmIChwbHVnaW5zID09PSBudWxsIHx8IHBsdWdpbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBFbXB0eS5cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwbHVnaW5zKSkge1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IHBsdWdpbnMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgdGhpbmcgPSBwbHVnaW5zW2luZGV4XVxuICAgICAgICAgIGFkZCh0aGluZylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYSBsaXN0IG9mIHBsdWdpbnMsIG5vdCBgJyArIHBsdWdpbnMgKyAnYCcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtQbHVnaW59IHBsdWdpblxuICAgICAqIEBwYXJhbSB7QXJyYXk8dW5rbm93bj59IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFkZFBsdWdpbihwbHVnaW4sIHBhcmFtZXRlcnMpIHtcbiAgICAgIGxldCBpbmRleCA9IC0xXG4gICAgICBsZXQgZW50cnlJbmRleCA9IC0xXG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgYXR0YWNoZXJzLmxlbmd0aCkge1xuICAgICAgICBpZiAoYXR0YWNoZXJzW2luZGV4XVswXSA9PT0gcGx1Z2luKSB7XG4gICAgICAgICAgZW50cnlJbmRleCA9IGluZGV4XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZW50cnlJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgYXR0YWNoZXJzLnB1c2goW3BsdWdpbiwgLi4ucGFyYW1ldGVyc10pXG4gICAgICB9XG4gICAgICAvLyBPbmx5IHNldCBpZiB0aGVyZSB3YXMgYXQgbGVhc3QgYSBgcHJpbWFyeWAgdmFsdWUsIG90aGVyd2lzZSB3ZeKAmWQgY2hhbmdlXG4gICAgICAvLyBgYXJndW1lbnRzLmxlbmd0aGAuXG4gICAgICBlbHNlIGlmIChwYXJhbWV0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IFtwcmltYXJ5LCAuLi5yZXN0XSA9IHBhcmFtZXRlcnNcbiAgICAgICAgY29uc3QgY3VycmVudFByaW1hcnkgPSBhdHRhY2hlcnNbZW50cnlJbmRleF1bMV1cbiAgICAgICAgaWYgKGlzUGxhaW5PYmooY3VycmVudFByaW1hcnkpICYmIGlzUGxhaW5PYmoocHJpbWFyeSkpIHtcbiAgICAgICAgICBwcmltYXJ5ID0gZXh0ZW5kKHRydWUsIGN1cnJlbnRQcmltYXJ5LCBwcmltYXJ5KVxuICAgICAgICB9XG5cbiAgICAgICAgYXR0YWNoZXJzW2VudHJ5SW5kZXhdID0gW3BsdWdpbiwgcHJpbWFyeSwgLi4ucmVzdF1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gTm90ZTogdGhpcyByZXR1cm5zIGEgKmNhbGxhYmxlKiBpbnN0YW5jZS5cbi8vIFRoYXTigJlzIHdoeSBpdOKAmXMgZG9jdW1lbnRlZCBhcyBhIGZ1bmN0aW9uLlxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgcHJvY2Vzc29yLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIFRoaXMgZXhhbXBsZSBzaG93cyBob3cgYSBuZXcgcHJvY2Vzc29yIGNhbiBiZSBjcmVhdGVkIChmcm9tIGByZW1hcmtgKSBhbmQgbGlua2VkXG4gKiAgIHRvICoqc3RkaW4qKig0KSBhbmQgKipzdGRvdXQqKig0KS5cbiAqXG4gKiAgIGBgYGpzXG4gKiAgIGltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2VzcydcbiAqICAgaW1wb3J0IGNvbmNhdFN0cmVhbSBmcm9tICdjb25jYXQtc3RyZWFtJ1xuICogICBpbXBvcnQge3JlbWFya30gZnJvbSAncmVtYXJrJ1xuICpcbiAqICAgcHJvY2Vzcy5zdGRpbi5waXBlKFxuICogICAgIGNvbmNhdFN0cmVhbShmdW5jdGlvbiAoYnVmKSB7XG4gKiAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShTdHJpbmcocmVtYXJrKCkucHJvY2Vzc1N5bmMoYnVmKSkpXG4gKiAgICAgfSlcbiAqICAgKVxuICogICBgYGBcbiAqXG4gKiBAcmV0dXJuc1xuICogICBOZXcgKnVuZnJvemVuKiBwcm9jZXNzb3IgKGBwcm9jZXNzb3JgKS5cbiAqXG4gKiAgIFRoaXMgcHJvY2Vzc29yIGlzIGNvbmZpZ3VyZWQgdG8gd29yayB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3IuXG4gKiAgIFdoZW4gdGhlIGRlc2NlbmRhbnQgcHJvY2Vzc29yIGlzIGNvbmZpZ3VyZWQgaW4gdGhlIGZ1dHVyZSBpdCBkb2VzIG5vdFxuICogICBhZmZlY3QgdGhlIGFuY2VzdHJhbCBwcm9jZXNzb3IuXG4gKi9cbmV4cG9ydCBjb25zdCB1bmlmaWVkID0gbmV3IFByb2Nlc3NvcigpLmZyZWV6ZSgpXG5cbi8qKlxuICogQXNzZXJ0IGEgcGFyc2VyIGlzIGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge2Fzc2VydHMgdmFsdWUgaXMgUGFyc2VyfVxuICovXG5mdW5jdGlvbiBhc3NlcnRQYXJzZXIobmFtZSwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBgJyArIG5hbWUgKyAnYCB3aXRob3V0IGBwYXJzZXJgJylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBhIGNvbXBpbGVyIGlzIGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge2Fzc2VydHMgdmFsdWUgaXMgQ29tcGlsZXJ9XG4gKi9cbmZ1bmN0aW9uIGFzc2VydENvbXBpbGVyKG5hbWUsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgYCcgKyBuYW1lICsgJ2Agd2l0aG91dCBgY29tcGlsZXJgJylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGUgcHJvY2Vzc29yIGlzIG5vdCBmcm96ZW4uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7dW5rbm93bn0gZnJvemVuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBmcm96ZW4gaXMgZmFsc2V9XG4gKi9cbmZ1bmN0aW9uIGFzc2VydFVuZnJvemVuKG5hbWUsIGZyb3plbikge1xuICBpZiAoZnJvemVuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBjYWxsIGAnICtcbiAgICAgICAgbmFtZSArXG4gICAgICAgICdgIG9uIGEgZnJvemVuIHByb2Nlc3Nvci5cXG5DcmVhdGUgYSBuZXcgcHJvY2Vzc29yIGZpcnN0LCBieSBjYWxsaW5nIGl0OiB1c2UgYHByb2Nlc3NvcigpYCBpbnN0ZWFkIG9mIGBwcm9jZXNzb3JgLidcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYG5vZGVgIGlzIGEgdW5pc3Qgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqIEByZXR1cm5zIHthc3NlcnRzIG5vZGUgaXMgTm9kZX1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9kZShub2RlKSB7XG4gIC8vIGBpc1BsYWluT2JqYCB1bmZvcnR1bmF0ZWx5IHVzZXMgYGFueWAgaW5zdGVhZCBvZiBgdW5rbm93bmAuXG4gIC8vIHR5cGUtY292ZXJhZ2U6aWdub3JlLW5leHQtbGluZVxuICBpZiAoIWlzUGxhaW5PYmoobm9kZSkgfHwgdHlwZW9mIG5vZGUudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBub2RlLCBnb3QgYCcgKyBub2RlICsgJ2AnKVxuICAgIC8vIEZpbmUuXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCBgY29tcGxldGVgIGlzIGB0cnVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IGFzeW5jTmFtZVxuICogQHBhcmFtIHt1bmtub3dufSBjb21wbGV0ZVxuICogQHJldHVybnMge2Fzc2VydHMgY29tcGxldGUgaXMgdHJ1ZX1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0RG9uZShuYW1lLCBhc3luY05hbWUsIGNvbXBsZXRlKSB7XG4gIGlmICghY29tcGxldGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnYCcgKyBuYW1lICsgJ2AgZmluaXNoZWQgYXN5bmMuIFVzZSBgJyArIGFzeW5jTmFtZSArICdgIGluc3RlYWQnXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiBAcmV0dXJucyB7VkZpbGV9XG4gKi9cbmZ1bmN0aW9uIHZmaWxlKHZhbHVlKSB7XG4gIHJldHVybiBsb29rc0xpa2VBVkZpbGUodmFsdWUpID8gdmFsdWUgOiBuZXcgVkZpbGUodmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgVkZpbGV9XG4gKi9cbmZ1bmN0aW9uIGxvb2tzTGlrZUFWRmlsZSh2YWx1ZSkge1xuICByZXR1cm4gQm9vbGVhbihcbiAgICB2YWx1ZSAmJlxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ21lc3NhZ2UnIGluIHZhbHVlICYmXG4gICAgICAnbWVzc2FnZXMnIGluIHZhbHVlXG4gIClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3Vua25vd259IFt2YWx1ZV1cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBWYWx1ZX1cbiAqL1xuZnVuY3Rpb24gbG9va3NMaWtlQVZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IGlzVWludDhBcnJheSh2YWx1ZSlcbn1cblxuLyoqXG4gKiBBc3NlcnQgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICB0aGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBVaW50OEFycmF5fVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICovXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgdmFsdWUgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdieXRlTGVuZ3RoJyBpbiB2YWx1ZSAmJlxuICAgICAgJ2J5dGVPZmZzZXQnIGluIHZhbHVlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJiYWlsIiwiZXh0ZW5kIiwib2siLCJhc3NlcnQiLCJpc1BsYWluT2JqIiwidHJvdWdoIiwiVkZpbGUiLCJDYWxsYWJsZUluc3RhbmNlIiwib3duIiwiaGFzT3duUHJvcGVydHkiLCJQcm9jZXNzb3IiLCJjb25zdHJ1Y3RvciIsIkNvbXBpbGVyIiwidW5kZWZpbmVkIiwiUGFyc2VyIiwiYXR0YWNoZXJzIiwiY29tcGlsZXIiLCJmcmVlemVJbmRleCIsImZyb3plbiIsIm5hbWVzcGFjZSIsInBhcnNlciIsInRyYW5zZm9ybWVycyIsImNvcHkiLCJkZXN0aW5hdGlvbiIsImluZGV4IiwibGVuZ3RoIiwiYXR0YWNoZXIiLCJ1c2UiLCJkYXRhIiwia2V5IiwidmFsdWUiLCJhcmd1bWVudHMiLCJhc3NlcnRVbmZyb3plbiIsImNhbGwiLCJmcmVlemUiLCJzZWxmIiwib3B0aW9ucyIsInRyYW5zZm9ybWVyIiwiTnVtYmVyIiwiUE9TSVRJVkVfSU5GSU5JVFkiLCJwYXJzZSIsImZpbGUiLCJyZWFsRmlsZSIsInZmaWxlIiwiYXNzZXJ0UGFyc2VyIiwiU3RyaW5nIiwicHJvY2VzcyIsImRvbmUiLCJhc3NlcnRDb21waWxlciIsImV4ZWN1dG9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJwYXJzZVRyZWUiLCJydW4iLCJlcnJvciIsInRyZWUiLCJyZWFsRG9uZSIsImNvbXBpbGVUcmVlIiwiY29tcGlsZVJlc3VsdCIsInN0cmluZ2lmeSIsImxvb2tzTGlrZUFWYWx1ZSIsInJlc3VsdCIsInByb2Nlc3NTeW5jIiwiY29tcGxldGUiLCJhc3NlcnREb25lIiwiYXNzZXJ0Tm9kZSIsIm91dHB1dFRyZWUiLCJyZXN1bHRpbmdUcmVlIiwicnVuU3luYyIsInBhcmFtZXRlcnMiLCJhZGRQbHVnaW4iLCJBcnJheSIsImlzQXJyYXkiLCJhZGRMaXN0IiwiYWRkUHJlc2V0IiwiVHlwZUVycm9yIiwiYWRkIiwicGx1Z2luIiwiRXJyb3IiLCJwbHVnaW5zIiwic2V0dGluZ3MiLCJ0aGluZyIsImVudHJ5SW5kZXgiLCJwdXNoIiwicHJpbWFyeSIsInJlc3QiLCJjdXJyZW50UHJpbWFyeSIsInVuaWZpZWQiLCJuYW1lIiwibm9kZSIsInR5cGUiLCJhc3luY05hbWUiLCJsb29rc0xpa2VBVkZpbGUiLCJCb29sZWFuIiwiaXNVaW50OEFycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unified/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unist-util-is/lib/index.js":
-/*!*****************************************************!*\
- !*** ../../node_modules/unist-util-is/lib/index.js ***!
- \*****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convert: () => (/* binding */ convert),\n/* harmony export */ is: () => (/* binding */ is)\n/* harmony export */ });\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */ /**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */ /**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */ /**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */ const is = // Note: overloads in JSDoc can’t yet use different `@template`s.\n/**\n * @type {(\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */ /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */ // eslint-disable-next-line max-params\nfunction(node, test, index, parent, context) {\n const check = convert(test);\n if (index !== undefined && index !== null && (typeof index !== \"number\" || index < 0 || index === Number.POSITIVE_INFINITY)) {\n throw new Error(\"Expected positive finite index\");\n }\n if (parent !== undefined && parent !== null && (!is(parent) || !parent.children)) {\n throw new Error(\"Expected parent node\");\n }\n if ((parent === undefined || parent === null) !== (index === undefined || index === null)) {\n throw new Error(\"Expected both parent and index\");\n }\n return looksLikeANode(node) ? check.call(context, node, index, parent) : false;\n};\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */ const convert = // Note: overloads in JSDoc can’t yet use different `@template`s.\n/**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */ /**\n * @param {Test} [test]\n * @returns {Check}\n */ function(test) {\n if (test === null || test === undefined) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test);\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n};\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */ function anyFactory(tests) {\n /** @type {Array<Check>} */ const checks = [];\n let index = -1;\n while(++index < tests.length){\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n /**\n * @this {unknown}\n * @type {TestFunction}\n */ function any(...parameters) {\n let index = -1;\n while(++index < checks.length){\n if (checks[index].apply(this, parameters)) return true;\n }\n return false;\n }\n}\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */ function propsFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ check;\n return castFactory(all);\n /**\n * @param {Node} node\n * @returns {boolean}\n */ function all(node) {\n const nodeAsRecord = /** @type {unknown} */ node;\n /** @type {string} */ let key;\n for(key in check){\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */ function typeFactory(check) {\n return castFactory(type);\n /**\n * @param {Node} node\n */ function type(node) {\n return node && node.type === check;\n }\n}\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */ function castFactory(testFunction) {\n return check;\n /**\n * @this {unknown}\n * @type {Check}\n */ function check(value, index, parent) {\n return Boolean(looksLikeANode(value) && testFunction.call(this, value, typeof index === \"number\" ? index : undefined, parent || undefined));\n }\n}\nfunction ok() {\n return true;\n}\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */ function looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztDQUdDLEdBRUQ7Ozs7Q0FJQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FvQ0MsR0FFRDs7Ozs7Ozs7Ozs7Ozs7O0NBZUMsR0FDTSxNQUFNQSxLQUNYLGlFQUFpRTtBQUNqRTs7Ozs7Ozs7O0dBU0MsR0FFQzs7Ozs7OztLQU9DLEdBQ0Qsc0NBQXNDO0FBQ3RDLFNBQVVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTztJQUMxQyxNQUFNQyxRQUFRQyxRQUFRTDtJQUV0QixJQUNFQyxVQUFVSyxhQUNWTCxVQUFVLFFBQ1QsUUFBT0EsVUFBVSxZQUNoQkEsUUFBUSxLQUNSQSxVQUFVTSxPQUFPQyxpQkFBaUIsR0FDcEM7UUFDQSxNQUFNLElBQUlDLE1BQU07SUFDbEI7SUFFQSxJQUNFUCxXQUFXSSxhQUNYSixXQUFXLFFBQ1YsRUFBQ0osR0FBR0ksV0FBVyxDQUFDQSxPQUFPUSxRQUFRLEdBQ2hDO1FBQ0EsTUFBTSxJQUFJRCxNQUFNO0lBQ2xCO0lBRUEsSUFDRSxDQUFDUCxXQUFXSSxhQUFhSixXQUFXLElBQUcsTUFDdENELENBQUFBLFVBQVVLLGFBQWFMLFVBQVUsSUFBRyxHQUNyQztRQUNBLE1BQU0sSUFBSVEsTUFBTTtJQUNsQjtJQUVBLE9BQU9FLGVBQWVaLFFBQ2xCSyxNQUFNUSxJQUFJLENBQUNULFNBQVNKLE1BQU1FLE9BQU9DLFVBQ2pDO0FBQ04sRUFDRDtBQUVIOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCQyxHQUNNLE1BQU1HLFVBQ1gsaUVBQWlFO0FBQ2pFOzs7Ozs7OztHQVFDLEdBRUM7OztLQUdDLEdBQ0QsU0FBVUwsSUFBSTtJQUNaLElBQUlBLFNBQVMsUUFBUUEsU0FBU00sV0FBVztRQUN2QyxPQUFPTztJQUNUO0lBRUEsSUFBSSxPQUFPYixTQUFTLFlBQVk7UUFDOUIsT0FBT2MsWUFBWWQ7SUFDckI7SUFFQSxJQUFJLE9BQU9BLFNBQVMsVUFBVTtRQUM1QixPQUFPZSxNQUFNQyxPQUFPLENBQUNoQixRQUFRaUIsV0FBV2pCLFFBQVFrQixhQUFhbEI7SUFDL0Q7SUFFQSxJQUFJLE9BQU9BLFNBQVMsVUFBVTtRQUM1QixPQUFPbUIsWUFBWW5CO0lBQ3JCO0lBRUEsTUFBTSxJQUFJUyxNQUFNO0FBQ2xCLEVBQ0Q7QUFFSDs7O0NBR0MsR0FDRCxTQUFTUSxXQUFXRyxLQUFLO0lBQ3ZCLHlCQUF5QixHQUN6QixNQUFNQyxTQUFTLEVBQUU7SUFDakIsSUFBSXBCLFFBQVEsQ0FBQztJQUViLE1BQU8sRUFBRUEsUUFBUW1CLE1BQU1FLE1BQU0sQ0FBRTtRQUM3QkQsTUFBTSxDQUFDcEIsTUFBTSxHQUFHSSxRQUFRZSxLQUFLLENBQUNuQixNQUFNO0lBQ3RDO0lBRUEsT0FBT2EsWUFBWVM7SUFFbkI7OztHQUdDLEdBQ0QsU0FBU0EsSUFBSSxHQUFHQyxVQUFVO1FBQ3hCLElBQUl2QixRQUFRLENBQUM7UUFFYixNQUFPLEVBQUVBLFFBQVFvQixPQUFPQyxNQUFNLENBQUU7WUFDOUIsSUFBSUQsTUFBTSxDQUFDcEIsTUFBTSxDQUFDd0IsS0FBSyxDQUFDLElBQUksRUFBRUQsYUFBYSxPQUFPO1FBQ3BEO1FBRUEsT0FBTztJQUNUO0FBQ0Y7QUFFQTs7Ozs7Q0FLQyxHQUNELFNBQVNOLGFBQWFkLEtBQUs7SUFDekIsTUFBTXNCLGdCQUFnQixvQ0FBb0MsR0FBSXRCO0lBRTlELE9BQU9VLFlBQVlhO0lBRW5COzs7R0FHQyxHQUNELFNBQVNBLElBQUk1QixJQUFJO1FBQ2YsTUFBTTZCLGVBQ0osb0JBQW9CLEdBQUk3QjtRQUcxQixtQkFBbUIsR0FDbkIsSUFBSThCO1FBRUosSUFBS0EsT0FBT3pCLE1BQU87WUFDakIsSUFBSXdCLFlBQVksQ0FBQ0MsSUFBSSxLQUFLSCxhQUFhLENBQUNHLElBQUksRUFBRSxPQUFPO1FBQ3ZEO1FBRUEsT0FBTztJQUNUO0FBQ0Y7QUFFQTs7Ozs7Q0FLQyxHQUNELFNBQVNWLFlBQVlmLEtBQUs7SUFDeEIsT0FBT1UsWUFBWWdCO0lBRW5COztHQUVDLEdBQ0QsU0FBU0EsS0FBSy9CLElBQUk7UUFDaEIsT0FBT0EsUUFBUUEsS0FBSytCLElBQUksS0FBSzFCO0lBQy9CO0FBQ0Y7QUFFQTs7Ozs7Q0FLQyxHQUNELFNBQVNVLFlBQVlpQixZQUFZO0lBQy9CLE9BQU8zQjtJQUVQOzs7R0FHQyxHQUNELFNBQVNBLE1BQU00QixLQUFLLEVBQUUvQixLQUFLLEVBQUVDLE1BQU07UUFDakMsT0FBTytCLFFBQ0x0QixlQUFlcUIsVUFDYkQsYUFBYW5CLElBQUksQ0FDZixJQUFJLEVBQ0pvQixPQUNBLE9BQU8vQixVQUFVLFdBQVdBLFFBQVFLLFdBQ3BDSixVQUFVSTtJQUdsQjtBQUNGO0FBRUEsU0FBU087SUFDUCxPQUFPO0FBQ1Q7QUFFQTs7O0NBR0MsR0FDRCxTQUFTRixlQUFlcUIsS0FBSztJQUMzQixPQUFPQSxVQUFVLFFBQVEsT0FBT0EsVUFBVSxZQUFZLFVBQVVBO0FBQ2xFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC1pcy9saWIvaW5kZXguanM/YWIxMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5QYXJlbnR9IFBhcmVudFxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIEZuXG4gKiBAdGVtcGxhdGUgRmFsbGJhY2tcbiAqIEB0eXBlZGVmIHtGbiBleHRlbmRzICh2YWx1ZTogYW55KSA9PiB2YWx1ZSBpcyBpbmZlciBUaGluZyA/IFRoaW5nIDogRmFsbGJhY2t9IFByZWRpY2F0ZVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIENoZWNrXG4gKiAgIENoZWNrIHRoYXQgYW4gYXJiaXRyYXJ5IHZhbHVlIGlzIGEgbm9kZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdGhpc1xuICogICBUaGUgZ2l2ZW4gY29udGV4dC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gW25vZGVdXG4gKiAgIEFueXRoaW5nICh0eXBpY2FsbHkgYSBub2RlKS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2luZGV4XVxuICogICBUaGUgbm9kZeKAmXMgcG9zaXRpb24gaW4gaXRzIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BhcmVudF1cbiAqICAgVGhlIG5vZGXigJlzIHBhcmVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoaXMgaXMgYSBub2RlIGFuZCBwYXNzZXMgYSB0ZXN0LlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IE5vZGV9IFByb3BzXG4gKiAgIE9iamVjdCB0byBjaGVjayBmb3IgZXF1aXZhbGVuY2UuXG4gKlxuICogICBOb3RlOiBgTm9kZWAgaXMgaW5jbHVkZWQgYXMgaXQgaXMgY29tbW9uIGJ1dCBpcyBub3QgaW5kZXhhYmxlLlxuICpcbiAqIEB0eXBlZGVmIHtBcnJheTxQcm9wcyB8IFRlc3RGdW5jdGlvbiB8IHN0cmluZz4gfCBQcm9wcyB8IFRlc3RGdW5jdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFRlc3RcbiAqICAgQ2hlY2sgZm9yIGFuIGFyYml0cmFyeSBub2RlLlxuICpcbiAqIEBjYWxsYmFjayBUZXN0RnVuY3Rpb25cbiAqICAgQ2hlY2sgaWYgYSBub2RlIHBhc3NlcyBhIHRlc3QuXG4gKiBAcGFyYW0ge3Vua25vd259IHRoaXNcbiAqICAgVGhlIGdpdmVuIGNvbnRleHQuXG4gKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAqICAgQSBub2RlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IFtpbmRleF1cbiAqICAgVGhlIG5vZGXigJlzIHBvc2l0aW9uIGluIGl0cyBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudCB8IHVuZGVmaW5lZH0gW3BhcmVudF1cbiAqICAgVGhlIG5vZGXigJlzIHBhcmVudC5cbiAqIEByZXR1cm5zIHtib29sZWFuIHwgdW5kZWZpbmVkIHwgdm9pZH1cbiAqICAgV2hldGhlciB0aGlzIG5vZGUgcGFzc2VzIHRoZSB0ZXN0LlxuICpcbiAqICAgTm90ZTogYHZvaWRgIGlzIGluY2x1ZGVkIHVudGlsIFRTIHNlZXMgbm8gcmV0dXJuIGFzIGB1bmRlZmluZWRgLlxuICovXG5cbi8qKlxuICogQ2hlY2sgaWYgYG5vZGVgIGlzIGEgYE5vZGVgIGFuZCB3aGV0aGVyIGl0IHBhc3NlcyB0aGUgZ2l2ZW4gdGVzdC5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqICAgVGhpbmcgdG8gY2hlY2ssIHR5cGljYWxseSBgTm9kZWAuXG4gKiBAcGFyYW0ge1Rlc3R9IHRlc3RcbiAqICAgQSBjaGVjayBmb3IgYSBzcGVjaWZpYyBub2RlLlxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBUaGUgbm9kZeKAmXMgcG9zaXRpb24gaW4gaXRzIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFRoZSBub2Rl4oCZcyBwYXJlbnQuXG4gKiBAcGFyYW0ge3Vua25vd259IGNvbnRleHRcbiAqICAgQ29udGV4dCBvYmplY3QgKGB0aGlzYCkgdG8gcGFzcyB0byBgdGVzdGAgZnVuY3Rpb25zLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgYG5vZGVgIGlzIGEgbm9kZSBhbmQgcGFzc2VzIGEgdGVzdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzID1cbiAgLy8gTm90ZTogb3ZlcmxvYWRzIGluIEpTRG9jIGNhbuKAmXQgeWV0IHVzZSBkaWZmZXJlbnQgYEB0ZW1wbGF0ZWBzLlxuICAvKipcbiAgICogQHR5cGUgeyhcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIHN0cmluZz4obm9kZTogdW5rbm93biwgdGVzdDogQ29uZGl0aW9uLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiB7dHlwZTogQ29uZGl0aW9ufSkgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgUHJvcHM+KG5vZGU6IHVua25vd24sIHRlc3Q6IENvbmRpdGlvbiwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgQ29uZGl0aW9uKSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBUZXN0RnVuY3Rpb24+KG5vZGU6IHVua25vd24sIHRlc3Q6IENvbmRpdGlvbiwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgUHJlZGljYXRlPENvbmRpdGlvbiwgTm9kZT4pICZcbiAgICogICAoKG5vZGU/OiBudWxsIHwgdW5kZWZpbmVkKSA9PiBmYWxzZSkgJlxuICAgKiAgICgobm9kZTogdW5rbm93biwgdGVzdD86IG51bGwgfCB1bmRlZmluZWQsIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSkgJlxuICAgKiAgICgobm9kZTogdW5rbm93biwgdGVzdD86IFRlc3QsIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IGJvb2xlYW4pXG4gICAqICl9XG4gICAqL1xuICAoXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHt1bmtub3dufSBbbm9kZV1cbiAgICAgKiBAcGFyYW0ge1Rlc3R9IFt0ZXN0XVxuICAgICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2luZGV4XVxuICAgICAqIEBwYXJhbSB7UGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BhcmVudF1cbiAgICAgKiBAcGFyYW0ge3Vua25vd259IFtjb250ZXh0XVxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtcGFyYW1zXG4gICAgZnVuY3Rpb24gKG5vZGUsIHRlc3QsIGluZGV4LCBwYXJlbnQsIGNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGNoZWNrID0gY29udmVydCh0ZXN0KVxuXG4gICAgICBpZiAoXG4gICAgICAgIGluZGV4ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgaW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgKHR5cGVvZiBpbmRleCAhPT0gJ251bWJlcicgfHxcbiAgICAgICAgICBpbmRleCA8IDAgfHxcbiAgICAgICAgICBpbmRleCA9PT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4JylcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBwYXJlbnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBwYXJlbnQgIT09IG51bGwgJiZcbiAgICAgICAgKCFpcyhwYXJlbnQpIHx8ICFwYXJlbnQuY2hpbGRyZW4pXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBwYXJlbnQgbm9kZScpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgKHBhcmVudCA9PT0gdW5kZWZpbmVkIHx8IHBhcmVudCA9PT0gbnVsbCkgIT09XG4gICAgICAgIChpbmRleCA9PT0gdW5kZWZpbmVkIHx8IGluZGV4ID09PSBudWxsKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4JylcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvb2tzTGlrZUFOb2RlKG5vZGUpXG4gICAgICAgID8gY2hlY2suY2FsbChjb250ZXh0LCBub2RlLCBpbmRleCwgcGFyZW50KVxuICAgICAgICA6IGZhbHNlXG4gICAgfVxuICApXG5cbi8qKlxuICogR2VuZXJhdGUgYW4gYXNzZXJ0aW9uIGZyb20gYSB0ZXN0LlxuICpcbiAqIFVzZWZ1bCBpZiB5b3XigJlyZSBnb2luZyB0byB0ZXN0IG1hbnkgbm9kZXMsIGZvciBleGFtcGxlIHdoZW4gY3JlYXRpbmcgYVxuICogdXRpbGl0eSB3aGVyZSBzb21ldGhpbmcgZWxzZSBwYXNzZXMgYSBjb21wYXRpYmxlIHRlc3QuXG4gKlxuICogVGhlIGNyZWF0ZWQgZnVuY3Rpb24gaXMgYSBiaXQgZmFzdGVyIGJlY2F1c2UgaXQgZXhwZWN0cyB2YWxpZCBpbnB1dCBvbmx5OlxuICogYSBgbm9kZWAsIGBpbmRleGAsIGFuZCBgcGFyZW50YC5cbiAqXG4gKiBAcGFyYW0ge1Rlc3R9IHRlc3RcbiAqICAgKiAgIHdoZW4gbnVsbGlzaCwgY2hlY2tzIGlmIGBub2RlYCBpcyBhIGBOb2RlYC5cbiAqICAgKiAgIHdoZW4gYHN0cmluZ2AsIHdvcmtzIGxpa2UgcGFzc2luZyBgKG5vZGUpID0+IG5vZGUudHlwZSA9PT0gdGVzdGAuXG4gKiAgICogICB3aGVuIGBmdW5jdGlvbmAgY2hlY2tzIGlmIGZ1bmN0aW9uIHBhc3NlZCB0aGUgbm9kZSBpcyB0cnVlLlxuICogICAqICAgd2hlbiBgb2JqZWN0YCwgY2hlY2tzIHRoYXQgYWxsIGtleXMgaW4gdGVzdCBhcmUgaW4gbm9kZSwgYW5kIHRoYXQgdGhleSBoYXZlIChzdHJpY3RseSkgZXF1YWwgdmFsdWVzLlxuICogICAqICAgd2hlbiBgYXJyYXlgLCBjaGVja3MgaWYgYW55IG9uZSBvZiB0aGUgc3VidGVzdHMgcGFzcy5cbiAqIEByZXR1cm5zIHtDaGVja31cbiAqICAgQW4gYXNzZXJ0aW9uLlxuICovXG5leHBvcnQgY29uc3QgY29udmVydCA9XG4gIC8vIE5vdGU6IG92ZXJsb2FkcyBpbiBKU0RvYyBjYW7igJl0IHlldCB1c2UgZGlmZmVyZW50IGBAdGVtcGxhdGVgcy5cbiAgLyoqXG4gICAqIEB0eXBlIHsoXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBzdHJpbmc+KHRlc3Q6IENvbmRpdGlvbikgPT4gKG5vZGU6IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIHt0eXBlOiBDb25kaXRpb259KSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBQcm9wcz4odGVzdDogQ29uZGl0aW9uKSA9PiAobm9kZTogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgQ29uZGl0aW9uKSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBUZXN0RnVuY3Rpb24+KHRlc3Q6IENvbmRpdGlvbikgPT4gKG5vZGU6IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIFByZWRpY2F0ZTxDb25kaXRpb24sIE5vZGU+KSAmXG4gICAqICAgKCh0ZXN0PzogbnVsbCB8IHVuZGVmaW5lZCkgPT4gKG5vZGU/OiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUpICZcbiAgICogICAoKHRlc3Q/OiBUZXN0KSA9PiBDaGVjaylcbiAgICogKX1cbiAgICovXG4gIChcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1Rlc3R9IFt0ZXN0XVxuICAgICAqIEByZXR1cm5zIHtDaGVja31cbiAgICAgKi9cbiAgICBmdW5jdGlvbiAodGVzdCkge1xuICAgICAgaWYgKHRlc3QgPT09IG51bGwgfHwgdGVzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBva1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRlc3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGNhc3RGYWN0b3J5KHRlc3QpXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGVzdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGVzdCkgPyBhbnlGYWN0b3J5KHRlc3QpIDogcHJvcHNGYWN0b3J5KHRlc3QpXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGVzdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVGYWN0b3J5KHRlc3QpXG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QnKVxuICAgIH1cbiAgKVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8UHJvcHMgfCBUZXN0RnVuY3Rpb24gfCBzdHJpbmc+fSB0ZXN0c1xuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiBhbnlGYWN0b3J5KHRlc3RzKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8Q2hlY2s+fSAqL1xuICBjb25zdCBjaGVja3MgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdGVzdHMubGVuZ3RoKSB7XG4gICAgY2hlY2tzW2luZGV4XSA9IGNvbnZlcnQodGVzdHNbaW5kZXhdKVxuICB9XG5cbiAgcmV0dXJuIGNhc3RGYWN0b3J5KGFueSlcblxuICAvKipcbiAgICogQHRoaXMge3Vua25vd259XG4gICAqIEB0eXBlIHtUZXN0RnVuY3Rpb259XG4gICAqL1xuICBmdW5jdGlvbiBhbnkoLi4ucGFyYW1ldGVycykge1xuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGNoZWNrcy5sZW5ndGgpIHtcbiAgICAgIGlmIChjaGVja3NbaW5kZXhdLmFwcGx5KHRoaXMsIHBhcmFtZXRlcnMpKSByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbi8qKlxuICogVHVybiBhbiBvYmplY3QgaW50byBhIHRlc3QgZm9yIGEgbm9kZSB3aXRoIGEgY2VydGFpbiBmaWVsZHMuXG4gKlxuICogQHBhcmFtIHtQcm9wc30gY2hlY2tcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gcHJvcHNGYWN0b3J5KGNoZWNrKSB7XG4gIGNvbnN0IGNoZWNrQXNSZWNvcmQgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAoY2hlY2spXG5cbiAgcmV0dXJuIGNhc3RGYWN0b3J5KGFsbClcblxuICAvKipcbiAgICogQHBhcmFtIHtOb2RlfSBub2RlXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgZnVuY3Rpb24gYWxsKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQXNSZWNvcmQgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAoXG4gICAgICAvKiogQHR5cGUge3Vua25vd259ICovIChub2RlKVxuICAgIClcblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCBrZXlcblxuICAgIGZvciAoa2V5IGluIGNoZWNrKSB7XG4gICAgICBpZiAobm9kZUFzUmVjb3JkW2tleV0gIT09IGNoZWNrQXNSZWNvcmRba2V5XSkgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYSBzdHJpbmcgaW50byBhIHRlc3QgZm9yIGEgbm9kZSB3aXRoIGEgY2VydGFpbiB0eXBlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGVja1xuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiB0eXBlRmFjdG9yeShjaGVjaykge1xuICByZXR1cm4gY2FzdEZhY3RvcnkodHlwZSlcblxuICAvKipcbiAgICogQHBhcmFtIHtOb2RlfSBub2RlXG4gICAqL1xuICBmdW5jdGlvbiB0eXBlKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZSAmJiBub2RlLnR5cGUgPT09IGNoZWNrXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgY3VzdG9tIHRlc3QgaW50byBhIHRlc3QgZm9yIGEgbm9kZSB0aGF0IHBhc3NlcyB0aGF0IHRlc3QuXG4gKlxuICogQHBhcmFtIHtUZXN0RnVuY3Rpb259IHRlc3RGdW5jdGlvblxuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiBjYXN0RmFjdG9yeSh0ZXN0RnVuY3Rpb24pIHtcbiAgcmV0dXJuIGNoZWNrXG5cbiAgLyoqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiBAdHlwZSB7Q2hlY2t9XG4gICAqL1xuICBmdW5jdGlvbiBjaGVjayh2YWx1ZSwgaW5kZXgsIHBhcmVudCkge1xuICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgbG9va3NMaWtlQU5vZGUodmFsdWUpICYmXG4gICAgICAgIHRlc3RGdW5jdGlvbi5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgdHlwZW9mIGluZGV4ID09PSAnbnVtYmVyJyA/IGluZGV4IDogdW5kZWZpbmVkLFxuICAgICAgICAgIHBhcmVudCB8fCB1bmRlZmluZWRcbiAgICAgICAgKVxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiBvaygpIHtcbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgTm9kZX1cbiAqL1xuZnVuY3Rpb24gbG9va3NMaWtlQU5vZGUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ3R5cGUnIGluIHZhbHVlXG59XG4iXSwibmFtZXMiOlsiaXMiLCJub2RlIiwidGVzdCIsImluZGV4IiwicGFyZW50IiwiY29udGV4dCIsImNoZWNrIiwiY29udmVydCIsInVuZGVmaW5lZCIsIk51bWJlciIsIlBPU0lUSVZFX0lORklOSVRZIiwiRXJyb3IiLCJjaGlsZHJlbiIsImxvb2tzTGlrZUFOb2RlIiwiY2FsbCIsIm9rIiwiY2FzdEZhY3RvcnkiLCJBcnJheSIsImlzQXJyYXkiLCJhbnlGYWN0b3J5IiwicHJvcHNGYWN0b3J5IiwidHlwZUZhY3RvcnkiLCJ0ZXN0cyIsImNoZWNrcyIsImxlbmd0aCIsImFueSIsInBhcmFtZXRlcnMiLCJhcHBseSIsImNoZWNrQXNSZWNvcmQiLCJhbGwiLCJub2RlQXNSZWNvcmQiLCJrZXkiLCJ0eXBlIiwidGVzdEZ1bmN0aW9uIiwidmFsdWUiLCJCb29sZWFuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unist-util-is/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unist-util-position/lib/index.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/unist-util-position/lib/index.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ pointEnd: () => (/* binding */ pointEnd),\n/* harmony export */ pointStart: () => (/* binding */ pointStart),\n/* harmony export */ position: () => (/* binding */ position)\n/* harmony export */ });\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */ /**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */ /**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */ const pointEnd = point(\"end\");\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */ const pointStart = point(\"start\");\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */ function point(type) {\n return point;\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */ function point(node) {\n const point = node && node.position && node.position[type] || {};\n if (typeof point.line === \"number\" && point.line > 0 && typeof point.column === \"number\" && point.column > 0) {\n return {\n line: point.line,\n column: point.column,\n offset: typeof point.offset === \"number\" && point.offset > -1 ? point.offset : undefined\n };\n }\n }\n}\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */ function position(node) {\n const start = pointStart(node);\n const end = pointEnd(node);\n if (start && end) {\n return {\n start,\n end\n };\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtcG9zaXRpb24vbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0NBSUMsR0FFRDs7Ozs7Ozs7Ozs7OztDQWFDLEdBRUQ7Ozs7Ozs7Q0FPQyxHQUNNLE1BQU1BLFdBQVdDLE1BQU0sT0FBTTtBQUVwQzs7Ozs7OztDQU9DLEdBQ00sTUFBTUMsYUFBYUQsTUFBTSxTQUFRO0FBRXhDOzs7Ozs7O0NBT0MsR0FDRCxTQUFTQSxNQUFNRSxJQUFJO0lBQ2pCLE9BQU9GO0lBRVA7Ozs7O0dBS0MsR0FDRCxTQUFTQSxNQUFNRyxJQUFJO1FBQ2pCLE1BQU1ILFFBQVEsUUFBU0csS0FBS0MsUUFBUSxJQUFJRCxLQUFLQyxRQUFRLENBQUNGLEtBQUssSUFBSyxDQUFDO1FBRWpFLElBQ0UsT0FBT0YsTUFBTUssSUFBSSxLQUFLLFlBQ3RCTCxNQUFNSyxJQUFJLEdBQUcsS0FDYixPQUFPTCxNQUFNTSxNQUFNLEtBQUssWUFDeEJOLE1BQU1NLE1BQU0sR0FBRyxHQUNmO1lBQ0EsT0FBTztnQkFDTEQsTUFBTUwsTUFBTUssSUFBSTtnQkFDaEJDLFFBQVFOLE1BQU1NLE1BQU07Z0JBQ3BCQyxRQUNFLE9BQU9QLE1BQU1PLE1BQU0sS0FBSyxZQUFZUCxNQUFNTyxNQUFNLEdBQUcsQ0FBQyxJQUNoRFAsTUFBTU8sTUFBTSxHQUNaQztZQUNSO1FBQ0Y7SUFDRjtBQUNGO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNNLFNBQVNKLFNBQVNELElBQUk7SUFDM0IsTUFBTU0sUUFBUVIsV0FBV0U7SUFDekIsTUFBTU8sTUFBTVgsU0FBU0k7SUFFckIsSUFBSU0sU0FBU0MsS0FBSztRQUNoQixPQUFPO1lBQUNEO1lBQU9DO1FBQUc7SUFDcEI7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtcG9zaXRpb24vbGliL2luZGV4LmpzP2I1Y2IiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgTm9kZUxpa2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0eXBlXG4gKiBAcHJvcGVydHkge1Bvc2l0aW9uTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtwb3NpdGlvbl1cbiAqXG4gKiBAdHlwZWRlZiBQb3NpdGlvbkxpa2VcbiAqIEBwcm9wZXJ0eSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0YXJ0XVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5kXVxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbbGluZV1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvbHVtbl1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqL1xuXG4vKipcbiAqIEdldCB0aGUgZW5kaW5nIHBvaW50IG9mIGBub2RlYC5cbiAqXG4gKiBAcGFyYW0gbm9kZVxuICogICBOb2RlLlxuICogQHJldHVybnNcbiAqICAgUG9pbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBwb2ludEVuZCA9IHBvaW50KCdlbmQnKVxuXG4vKipcbiAqIEdldCB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgYG5vZGVgLlxuICpcbiAqIEBwYXJhbSBub2RlXG4gKiAgIE5vZGUuXG4gKiBAcmV0dXJuc1xuICogICBQb2ludC5cbiAqL1xuZXhwb3J0IGNvbnN0IHBvaW50U3RhcnQgPSBwb2ludCgnc3RhcnQnKVxuXG4vKipcbiAqIEdldCB0aGUgcG9zaXRpb25hbCBpbmZvIG9mIGBub2RlYC5cbiAqXG4gKiBAcGFyYW0geydlbmQnIHwgJ3N0YXJ0J30gdHlwZVxuICogICBTaWRlLlxuICogQHJldHVybnNcbiAqICAgR2V0dGVyLlxuICovXG5mdW5jdGlvbiBwb2ludCh0eXBlKSB7XG4gIHJldHVybiBwb2ludFxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBvaW50IGluZm8gb2YgYG5vZGVgIGF0IGEgYm91bmQgc2lkZS5cbiAgICpcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbbm9kZV1cbiAgICogQHJldHVybnMge1BvaW50IHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gcG9pbnQobm9kZSkge1xuICAgIGNvbnN0IHBvaW50ID0gKG5vZGUgJiYgbm9kZS5wb3NpdGlvbiAmJiBub2RlLnBvc2l0aW9uW3R5cGVdKSB8fCB7fVxuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHBvaW50LmxpbmUgPT09ICdudW1iZXInICYmXG4gICAgICBwb2ludC5saW5lID4gMCAmJlxuICAgICAgdHlwZW9mIHBvaW50LmNvbHVtbiA9PT0gJ251bWJlcicgJiZcbiAgICAgIHBvaW50LmNvbHVtbiA+IDBcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbmU6IHBvaW50LmxpbmUsXG4gICAgICAgIGNvbHVtbjogcG9pbnQuY29sdW1uLFxuICAgICAgICBvZmZzZXQ6XG4gICAgICAgICAgdHlwZW9mIHBvaW50Lm9mZnNldCA9PT0gJ251bWJlcicgJiYgcG9pbnQub2Zmc2V0ID4gLTFcbiAgICAgICAgICAgID8gcG9pbnQub2Zmc2V0XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgcG9zaXRpb25hbCBpbmZvIG9mIGBub2RlYC5cbiAqXG4gKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtub2RlXVxuICogICBOb2RlLlxuICogQHJldHVybnMge1Bvc2l0aW9uIHwgdW5kZWZpbmVkfVxuICogICBQb3NpdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uKG5vZGUpIHtcbiAgY29uc3Qgc3RhcnQgPSBwb2ludFN0YXJ0KG5vZGUpXG4gIGNvbnN0IGVuZCA9IHBvaW50RW5kKG5vZGUpXG5cbiAgaWYgKHN0YXJ0ICYmIGVuZCkge1xuICAgIHJldHVybiB7c3RhcnQsIGVuZH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInBvaW50RW5kIiwicG9pbnQiLCJwb2ludFN0YXJ0IiwidHlwZSIsIm5vZGUiLCJwb3NpdGlvbiIsImxpbmUiLCJjb2x1bW4iLCJvZmZzZXQiLCJ1bmRlZmluZWQiLCJzdGFydCIsImVuZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unist-util-position/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unist-util-stringify-position/lib/index.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/unist-util-stringify-position/lib/index.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stringifyPosition: () => (/* binding */ stringifyPosition)\n/* harmony export */ });\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */ /**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */ /**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */ function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== \"object\") {\n return \"\";\n }\n // Node.\n if (\"position\" in value || \"type\" in value) {\n return position(value.position);\n }\n // Position.\n if (\"start\" in value || \"end\" in value) {\n return position(value);\n }\n // Point.\n if (\"line\" in value || \"column\" in value) {\n return point(value);\n }\n // ?\n return \"\";\n}\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */ function point(point) {\n return index(point && point.line) + \":\" + index(point && point.column);\n}\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */ function position(pos) {\n return point(pos && pos.start) + \"-\" + point(pos && pos.end);\n}\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */ function index(value) {\n return value && typeof value === \"number\" ? value : 1;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Q0FJQyxHQUVEOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Q0FjQyxHQUNNLFNBQVNBLGtCQUFrQkMsS0FBSztJQUNyQyxXQUFXO0lBQ1gsSUFBSSxDQUFDQSxTQUFTLE9BQU9BLFVBQVUsVUFBVTtRQUN2QyxPQUFPO0lBQ1Q7SUFFQSxRQUFRO0lBQ1IsSUFBSSxjQUFjQSxTQUFTLFVBQVVBLE9BQU87UUFDMUMsT0FBT0MsU0FBU0QsTUFBTUMsUUFBUTtJQUNoQztJQUVBLFlBQVk7SUFDWixJQUFJLFdBQVdELFNBQVMsU0FBU0EsT0FBTztRQUN0QyxPQUFPQyxTQUFTRDtJQUNsQjtJQUVBLFNBQVM7SUFDVCxJQUFJLFVBQVVBLFNBQVMsWUFBWUEsT0FBTztRQUN4QyxPQUFPRSxNQUFNRjtJQUNmO0lBRUEsSUFBSTtJQUNKLE9BQU87QUFDVDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNFLE1BQU1BLEtBQUs7SUFDbEIsT0FBT0MsTUFBTUQsU0FBU0EsTUFBTUUsSUFBSSxJQUFJLE1BQU1ELE1BQU1ELFNBQVNBLE1BQU1HLE1BQU07QUFDdkU7QUFFQTs7O0NBR0MsR0FDRCxTQUFTSixTQUFTSyxHQUFHO0lBQ25CLE9BQU9KLE1BQU1JLE9BQU9BLElBQUlDLEtBQUssSUFBSSxNQUFNTCxNQUFNSSxPQUFPQSxJQUFJRSxHQUFHO0FBQzdEO0FBRUE7OztDQUdDLEdBQ0QsU0FBU0wsTUFBTUgsS0FBSztJQUNsQixPQUFPQSxTQUFTLE9BQU9BLFVBQVUsV0FBV0EsUUFBUTtBQUN0RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcz8zYmZlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE5vZGVMaWtlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdHlwZVxuICogQHByb3BlcnR5IHtQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9zaXRpb25dXG4gKlxuICogQHR5cGVkZWYgUG9pbnRMaWtlXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtsaW5lXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sdW1uXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICpcbiAqIEB0eXBlZGVmIFBvc2l0aW9uTGlrZVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RhcnRdXG4gKiBAcHJvcGVydHkge1BvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmRdXG4gKi9cblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIHBvc2l0aW9uYWwgaW5mbyBvZiBhIHBvaW50LCBwb3NpdGlvbiAoc3RhcnQgYW5kIGVuZCBwb2ludHMpLFxuICogb3Igbm9kZS5cbiAqXG4gKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IFBvaW50IHwgUG9pbnRMaWtlIHwgUG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiAgIE5vZGUsIHBvc2l0aW9uLCBvciBwb2ludC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFByZXR0eSBwcmludGVkIHBvc2l0aW9uYWwgaW5mbyBvZiBhIG5vZGUgKGBzdHJpbmdgKS5cbiAqXG4gKiAgIEluIHRoZSBmb3JtYXQgb2YgYSByYW5nZSBgbHM6Y3MtbGU6Y2VgICh3aGVuIGdpdmVuIGBub2RlYCBvciBgcG9zaXRpb25gKVxuICogICBvciBhIHBvaW50IGBsOmNgICh3aGVuIGdpdmVuIGBwb2ludGApLCB3aGVyZSBgbGAgc3RhbmRzIGZvciBsaW5lLCBgY2AgZm9yXG4gKiAgIGNvbHVtbiwgYHNgIGZvciBgc3RhcnRgLCBhbmQgYGVgIGZvciBlbmQuXG4gKiAgIEFuIGVtcHR5IHN0cmluZyAoYCcnYCkgaXMgcmV0dXJuZWQgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5laXRoZXIgYG5vZGVgLFxuICogICBgcG9zaXRpb25gLCBub3IgYHBvaW50YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVBvc2l0aW9uKHZhbHVlKSB7XG4gIC8vIE5vdGhpbmcuXG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gTm9kZS5cbiAgaWYgKCdwb3NpdGlvbicgaW4gdmFsdWUgfHwgJ3R5cGUnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlLnBvc2l0aW9uKVxuICB9XG5cbiAgLy8gUG9zaXRpb24uXG4gIGlmICgnc3RhcnQnIGluIHZhbHVlIHx8ICdlbmQnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlKVxuICB9XG5cbiAgLy8gUG9pbnQuXG4gIGlmICgnbGluZScgaW4gdmFsdWUgfHwgJ2NvbHVtbicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9pbnQodmFsdWUpXG4gIH1cblxuICAvLyA/XG4gIHJldHVybiAnJ1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9pbnQgfCBQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb2ludFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcG9pbnQocG9pbnQpIHtcbiAgcmV0dXJuIGluZGV4KHBvaW50ICYmIHBvaW50LmxpbmUpICsgJzonICsgaW5kZXgocG9pbnQgJiYgcG9pbnQuY29sdW1uKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKHBvcykge1xuICByZXR1cm4gcG9pbnQocG9zICYmIHBvcy5zdGFydCkgKyAnLScgKyBwb2ludChwb3MgJiYgcG9zLmVuZClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5mdW5jdGlvbiBpbmRleCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogMVxufVxuIl0sIm5hbWVzIjpbInN0cmluZ2lmeVBvc2l0aW9uIiwidmFsdWUiLCJwb3NpdGlvbiIsInBvaW50IiwiaW5kZXgiLCJsaW5lIiwiY29sdW1uIiwicG9zIiwic3RhcnQiLCJlbmQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unist-util-stringify-position/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unist-util-visit-parents/lib/color.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/unist-util-visit-parents/lib/color.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ color: () => (/* binding */ color)\n/* harmony export */ });\n/**\n * @param {string} d\n * @returns {string}\n */ function color(d) {\n return d;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cy9saWIvY29sb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Q0FHQyxHQUNNLFNBQVNBLE1BQU1DLENBQUM7SUFDckIsT0FBT0E7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cy9saWIvY29sb3IuanM/NzAwZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBkXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sb3IoZCkge1xuICByZXR1cm4gZFxufVxuIl0sIm5hbWVzIjpbImNvbG9yIiwiZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unist-util-visit-parents/lib/color.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unist-util-visit-parents/lib/index.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/unist-util-visit-parents/lib/index.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CONTINUE: () => (/* binding */ CONTINUE),\n/* harmony export */ EXIT: () => (/* binding */ EXIT),\n/* harmony export */ SKIP: () => (/* binding */ SKIP),\n/* harmony export */ visitParents: () => (/* binding */ visitParents)\n/* harmony export */ });\n/* harmony import */ var unist_util_is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-is */ \"(ssr)/../../node_modules/unist-util-is/lib/index.js\");\n/* harmony import */ var unist_util_visit_parents_do_not_use_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unist-util-visit-parents/do-not-use-color */ \"(ssr)/../../node_modules/unist-util-visit-parents/lib/color.js\");\n/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */ /**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */ /**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */ /**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */ /**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */ /**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */ /**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */ /**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */ /**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */ /**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */ /**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */ /**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */ /**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */ /**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */ /**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */ \n\n/** @type {Readonly<ActionTuple>} */ const empty = [];\n/**\n * Continue traversing as normal.\n */ const CONTINUE = true;\n/**\n * Stop traversing immediately.\n */ const EXIT = false;\n/**\n * Do not traverse this node’s children.\n */ const SKIP = \"skip\";\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */ function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */ let check;\n if (typeof test === \"function\" && typeof visitor !== \"function\") {\n reverse = visitor;\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test;\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test;\n }\n const is = (0,unist_util_is__WEBPACK_IMPORTED_MODULE_0__.convert)(check);\n const step = reverse ? -1 : 1;\n factory(tree, undefined, [])();\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array<UnistParent>} parents\n */ function factory(node, index, parents) {\n const value = /** @type {Record<string, unknown>} */ node && typeof node === \"object\" ? node : {};\n if (typeof value.type === \"string\") {\n const name = // `hast`\n typeof value.tagName === \"string\" ? value.tagName : typeof value.name === \"string\" ? value.name : undefined;\n Object.defineProperty(visit, \"name\", {\n value: \"node (\" + (0,unist_util_visit_parents_do_not_use_color__WEBPACK_IMPORTED_MODULE_1__.color)(node.type + (name ? \"<\" + name + \">\" : \"\")) + \")\"\n });\n }\n return visit;\n function visit() {\n /** @type {Readonly<ActionTuple>} */ let result = empty;\n /** @type {Readonly<ActionTuple>} */ let subresult;\n /** @type {number} */ let offset;\n /** @type {Array<UnistParent>} */ let grandparents;\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents));\n if (result[0] === EXIT) {\n return result;\n }\n }\n if (\"children\" in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ node;\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step;\n grandparents = parents.concat(nodeAsParent);\n while(offset > -1 && offset < nodeAsParent.children.length){\n const child = nodeAsParent.children[offset];\n subresult = factory(child, offset, grandparents)();\n if (subresult[0] === EXIT) {\n return subresult;\n }\n offset = typeof subresult[1] === \"number\" ? subresult[1] : offset + step;\n }\n }\n }\n return result;\n }\n }\n}\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n * Clean result.\n */ function toResult(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"number\") {\n return [\n CONTINUE,\n value\n ];\n }\n return value === null || value === undefined ? empty : [\n value\n ];\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cy9saWIvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7OztDQUdDLEdBRUQ7Ozs7Ozs7Q0FPQyxHQUVEOzs7Ozs7Ozs7OztDQVdDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FtQkMsR0FFRDs7Ozs7Ozs7Ozs7Q0FXQyxHQUVEOzs7Q0FHQyxHQUVEOzs7OztDQUtDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUVEOzs7Ozs7O0NBT0MsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQkMsR0FFRDs7Ozs7OztDQU9DLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQkMsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FtQ0MsR0FFRDs7Ozs7Ozs7O0NBU0MsR0FFb0M7QUFDMEI7QUFFL0Qsa0NBQWtDLEdBQ2xDLE1BQU1FLFFBQVEsRUFBRTtBQUVoQjs7Q0FFQyxHQUNNLE1BQU1DLFdBQVcsS0FBSTtBQUU1Qjs7Q0FFQyxHQUNNLE1BQU1DLE9BQU8sTUFBSztBQUV6Qjs7Q0FFQyxHQUNNLE1BQU1DLE9BQU8sT0FBTTtBQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQThDQyxHQUNNLFNBQVNDLGFBQWFDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLE9BQU87SUFDdkQsaUJBQWlCLEdBQ2pCLElBQUlDO0lBRUosSUFBSSxPQUFPSCxTQUFTLGNBQWMsT0FBT0MsWUFBWSxZQUFZO1FBQy9EQyxVQUFVRDtRQUNWLDJEQUEyRDtRQUMzREEsVUFBVUQ7SUFDWixPQUFPO1FBQ0wsNkRBQTZEO1FBQzdERyxRQUFRSDtJQUNWO0lBRUEsTUFBTUksS0FBS1osc0RBQU9BLENBQUNXO0lBQ25CLE1BQU1FLE9BQU9ILFVBQVUsQ0FBQyxJQUFJO0lBRTVCSSxRQUFRUCxNQUFNUSxXQUFXLEVBQUU7SUFFM0I7Ozs7R0FJQyxHQUNELFNBQVNELFFBQVFFLElBQUksRUFBRUMsS0FBSyxFQUFFQyxPQUFPO1FBQ25DLE1BQU1DLFFBQVEsb0NBQW9DLEdBQ2hESCxRQUFRLE9BQU9BLFNBQVMsV0FBV0EsT0FBTyxDQUFDO1FBRzdDLElBQUksT0FBT0csTUFBTUMsSUFBSSxLQUFLLFVBQVU7WUFDbEMsTUFBTUMsT0FDSixTQUFTO1lBQ1QsT0FBT0YsTUFBTUcsT0FBTyxLQUFLLFdBQ3JCSCxNQUFNRyxPQUFPLEdBRWYsT0FBT0gsTUFBTUUsSUFBSSxLQUFLLFdBQ3BCRixNQUFNRSxJQUFJLEdBQ1ZOO1lBRU5RLE9BQU9DLGNBQWMsQ0FBQ0MsT0FBTyxRQUFRO2dCQUNuQ04sT0FDRSxXQUFXbEIsZ0ZBQUtBLENBQUNlLEtBQUtJLElBQUksR0FBSUMsQ0FBQUEsT0FBTyxNQUFNQSxPQUFPLE1BQU0sRUFBQyxLQUFNO1lBQ25FO1FBQ0Y7UUFFQSxPQUFPSTtRQUVQLFNBQVNBO1lBQ1Asa0NBQWtDLEdBQ2xDLElBQUlDLFNBQVN4QjtZQUNiLGtDQUFrQyxHQUNsQyxJQUFJeUI7WUFDSixtQkFBbUIsR0FDbkIsSUFBSUM7WUFDSiwrQkFBK0IsR0FDL0IsSUFBSUM7WUFFSixJQUFJLENBQUNyQixRQUFRSSxHQUFHSSxNQUFNQyxPQUFPQyxPQUFPLENBQUNBLFFBQVFZLE1BQU0sR0FBRyxFQUFFLElBQUlmLFlBQVk7Z0JBQ3RFLGdEQUFnRDtnQkFDaERXLFNBQVNLLFNBQVN0QixRQUFRTyxNQUFNRTtnQkFFaEMsSUFBSVEsTUFBTSxDQUFDLEVBQUUsS0FBS3RCLE1BQU07b0JBQ3RCLE9BQU9zQjtnQkFDVDtZQUNGO1lBRUEsSUFBSSxjQUFjVixRQUFRQSxLQUFLZ0IsUUFBUSxFQUFFO2dCQUN2QyxNQUFNQyxlQUFlLHdCQUF3QixHQUFJakI7Z0JBRWpELElBQUlpQixhQUFhRCxRQUFRLElBQUlOLE1BQU0sQ0FBQyxFQUFFLEtBQUtyQixNQUFNO29CQUMvQ3VCLFNBQVMsQ0FBQ2xCLFVBQVV1QixhQUFhRCxRQUFRLENBQUNGLE1BQU0sR0FBRyxDQUFDLEtBQUtqQjtvQkFDekRnQixlQUFlWCxRQUFRZ0IsTUFBTSxDQUFDRDtvQkFFOUIsTUFBT0wsU0FBUyxDQUFDLEtBQUtBLFNBQVNLLGFBQWFELFFBQVEsQ0FBQ0YsTUFBTSxDQUFFO3dCQUMzRCxNQUFNSyxRQUFRRixhQUFhRCxRQUFRLENBQUNKLE9BQU87d0JBRTNDRCxZQUFZYixRQUFRcUIsT0FBT1AsUUFBUUM7d0JBRW5DLElBQUlGLFNBQVMsQ0FBQyxFQUFFLEtBQUt2QixNQUFNOzRCQUN6QixPQUFPdUI7d0JBQ1Q7d0JBRUFDLFNBQ0UsT0FBT0QsU0FBUyxDQUFDLEVBQUUsS0FBSyxXQUFXQSxTQUFTLENBQUMsRUFBRSxHQUFHQyxTQUFTZjtvQkFDL0Q7Z0JBQ0Y7WUFDRjtZQUVBLE9BQU9hO1FBQ1Q7SUFDRjtBQUNGO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNELFNBQVNLLFNBQVNaLEtBQUs7SUFDckIsSUFBSWlCLE1BQU1DLE9BQU8sQ0FBQ2xCLFFBQVE7UUFDeEIsT0FBT0E7SUFDVDtJQUVBLElBQUksT0FBT0EsVUFBVSxVQUFVO1FBQzdCLE9BQU87WUFBQ2hCO1lBQVVnQjtTQUFNO0lBQzFCO0lBRUEsT0FBT0EsVUFBVSxRQUFRQSxVQUFVSixZQUFZYixRQUFRO1FBQUNpQjtLQUFNO0FBQ2hFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzL2xpYi9pbmRleC5qcz83Mjk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBVbmlzdE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUGFyZW50fSBVbmlzdFBhcmVudFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0V4Y2x1ZGU8aW1wb3J0KCd1bmlzdC11dGlsLWlzJykuVGVzdCwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZH0gVGVzdFxuICogICBUZXN0IGZyb20gYHVuaXN0LXV0aWwtaXNgLlxuICpcbiAqICAgTm90ZTogd2UgaGF2ZSByZW1vdmUgYW5kIGFkZCBgdW5kZWZpbmVkYCwgYmVjYXVzZSBvdGhlcndpc2Ugd2hlbiBnZW5lcmF0aW5nXG4gKiAgIGF1dG9tYXRpYyBgLmQudHNgIGZpbGVzLCBUUyB0cmllcyB0byBmbGF0dGVuIHBhdGhzIGZyb20gYSBsb2NhbCBwZXJzcGVjdGl2ZSxcbiAqICAgd2hpY2ggZG9lc27igJl0IHdvcmsgd2hlbiBwdWJsaXNoaW5nIG9uIG5wbS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIEZuIGV4dGVuZHMgKHZhbHVlOiBhbnkpID0+IHZhbHVlIGlzIGluZmVyIFRoaW5nXG4gKiAgID8gVGhpbmdcbiAqICAgOiBGYWxsYmFja1xuICogKX0gUHJlZGljYXRlXG4gKiAgIEdldCB0aGUgdmFsdWUgb2YgYSB0eXBlIGd1YXJkIGBGbmAuXG4gKiBAdGVtcGxhdGUgRm5cbiAqICAgVmFsdWU7IHR5cGljYWxseSBmdW5jdGlvbiB0aGF0IGlzIGEgdHlwZSBndWFyZCAoc3VjaCBhcyBgKHgpOiB4IGlzIFlgKS5cbiAqIEB0ZW1wbGF0ZSBGYWxsYmFja1xuICogICBWYWx1ZSB0byB5aWVsZCBpZiBgRm5gIGlzIG5vdCBhIHR5cGUgZ3VhcmQuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBDaGVjayBleHRlbmRzIG51bGwgfCB1bmRlZmluZWQgLy8gTm8gdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IFZhbHVlIGV4dGVuZHMge3R5cGU6IENoZWNrfSAvLyBTdHJpbmcgKHR5cGUpIHRlc3QuXG4gKiAgID8gVmFsdWVcbiAqICAgOiBWYWx1ZSBleHRlbmRzIENoZWNrIC8vIFBhcnRpYWwgdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IENoZWNrIGV4dGVuZHMgRnVuY3Rpb24gLy8gRnVuY3Rpb24gdGVzdC5cbiAqICAgPyBQcmVkaWNhdGU8Q2hlY2ssIFZhbHVlPiBleHRlbmRzIFZhbHVlXG4gKiAgICAgPyBQcmVkaWNhdGU8Q2hlY2ssIFZhbHVlPlxuICogICAgIDogbmV2ZXJcbiAqICAgOiBuZXZlciAvLyBTb21lIG90aGVyIHRlc3Q/XG4gKiApfSBNYXRjaGVzT25lXG4gKiAgIENoZWNrIHdoZXRoZXIgYSBub2RlIG1hdGNoZXMgYSBwcmltaXRpdmUgY2hlY2sgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIFZhbHVlXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgdW5pc3QgYE5vZGVgLlxuICogQHRlbXBsYXRlIENoZWNrXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdCwgYnV0IG5vdCBhcnJheXMuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBDaGVjayBleHRlbmRzIEFycmF5PGFueT5cbiAqICAgPyBNYXRjaGVzT25lPFZhbHVlLCBDaGVja1trZXlvZiBDaGVja10+XG4gKiAgIDogTWF0Y2hlc09uZTxWYWx1ZSwgQ2hlY2s+XG4gKiApfSBNYXRjaGVzXG4gKiAgIENoZWNrIHdoZXRoZXIgYSBub2RlIG1hdGNoZXMgYSBjaGVjayBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUgVmFsdWVcbiAqICAgVmFsdWU7IHR5cGljYWxseSB1bmlzdCBgTm9kZWAuXG4gKiBAdGVtcGxhdGUgQ2hlY2tcbiAqICAgVmFsdWU7IHR5cGljYWxseSBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgezAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMH0gVWludFxuICogICBOdW1iZXI7IGNhcHBlZCByZWFzb25hYmx5LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0kgZXh0ZW5kcyAwID8gMSA6IEkgZXh0ZW5kcyAxID8gMiA6IEkgZXh0ZW5kcyAyID8gMyA6IEkgZXh0ZW5kcyAzID8gNCA6IEkgZXh0ZW5kcyA0ID8gNSA6IEkgZXh0ZW5kcyA1ID8gNiA6IEkgZXh0ZW5kcyA2ID8gNyA6IEkgZXh0ZW5kcyA3ID8gOCA6IEkgZXh0ZW5kcyA4ID8gOSA6IDEwfSBJbmNyZW1lbnRcbiAqICAgSW5jcmVtZW50IGEgbnVtYmVyIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0k9MF1cbiAqICAgSW5kZXguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBOb2RlIGV4dGVuZHMgVW5pc3RQYXJlbnRcbiAqICAgPyBOb2RlIGV4dGVuZHMge2NoaWxkcmVuOiBBcnJheTxpbmZlciBDaGlsZHJlbj59XG4gKiAgICAgPyBDaGlsZCBleHRlbmRzIENoaWxkcmVuID8gTm9kZSA6IG5ldmVyXG4gKiAgICAgOiBuZXZlclxuICogICA6IG5ldmVyXG4gKiApfSBJbnRlcm5hbFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIHRoYXQgY2FuIGJlIHBhcmVudHMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBOb2RlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SW50ZXJuYWxQYXJlbnQ8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hpbGQ+fSBQYXJlbnRcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIERlcHRoIGV4dGVuZHMgTWF4XG4gKiAgID8gbmV2ZXJcbiAqICAgOlxuICogICAgIHwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+XG4gKiAgICAgfCBJbnRlcm5hbEFuY2VzdG9yPE5vZGUsIEludGVybmFsUGFyZW50PE5vZGUsIENoaWxkPiwgTWF4LCBJbmNyZW1lbnQ8RGVwdGg+PlxuICogKX0gSW50ZXJuYWxBbmNlc3RvclxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBhbmNlc3RvcnMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBOb2RlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtNYXg9MTBdXG4gKiAgIE1heDsgc2VhcmNoZXMgdXAgdG8gdGhpcyBkZXB0aC5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0RlcHRoPTBdXG4gKiAgIEN1cnJlbnQgZGVwdGguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SW50ZXJuYWxBbmNlc3RvcjxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGlsZD59IEFuY2VzdG9yXG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIGFuY2VzdG9ycyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIFRyZWUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICAgID8gRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgICAgID8gVHJlZVxuICogICAgICAgOiBUcmVlIHwgSW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlWydjaGlsZHJlbiddW251bWJlcl0sIE1heCwgSW5jcmVtZW50PERlcHRoPj5cbiAqICAgICA6IFRyZWVcbiAqICl9IEluY2x1c2l2ZURlc2NlbmRhbnRcbiAqICAgQ29sbGVjdCBhbGwgKGluY2x1c2l2ZSkgZGVzY2VuZGFudHMgb2YgYFRyZWVgLlxuICpcbiAqICAgPiDwn5GJICoqTm90ZSoqOiBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBzZWVtcyB0byBiZSB0aGUgZmFzdGVzdCB3YXkgdG9cbiAqICAgPiByZWN1cnNlIHdpdGhvdXQgYWN0dWFsbHkgcnVubmluZyBpbnRvIGFuIGluZmluaXRlIGxvb3AsIHdoaWNoIHRoZVxuICogICA+IHByZXZpb3VzIHZlcnNpb24gZGlkLlxuICogICA+XG4gKiAgID4gUHJhY3RpY2FsbHksIGEgbWF4IG9mIGAyYCBpcyB0eXBpY2FsbHkgZW5vdWdoIGFzc3VtaW5nIGEgYFJvb3RgIGlzXG4gKiAgID4gcGFzc2VkLCBidXQgaXQgZG9lc27igJl0IGltcHJvdmUgcGVyZm9ybWFuY2UuXG4gKiAgID4gSXQgZ2V0cyBoaWdoZXIgd2l0aCBgTGlzdCA+IExpc3RJdGVtID4gVGFibGUgPiBUYWJsZVJvdyA+IFRhYmxlQ2VsbGAuXG4gKiAgID4gVXNpbmcgdXAgdG8gYDEwYCBkb2VzbuKAmXQgaHVydCBvciBoZWxwIGVpdGhlci5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBUcmVlXG4gKiAgIFRyZWUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsnc2tpcCcgfCBib29sZWFufSBBY3Rpb25cbiAqICAgVW5pb24gb2YgdGhlIGFjdGlvbiB0eXBlcy5cbiAqXG4gKiBAdHlwZWRlZiB7bnVtYmVyfSBJbmRleFxuICogICBNb3ZlIHRvIHRoZSBzaWJsaW5nIGF0IGBpbmRleGAgbmV4dCAoYWZ0ZXIgbm9kZSBpdHNlbGYgaXMgY29tcGxldGVseVxuICogICB0cmF2ZXJzZWQpLlxuICpcbiAqICAgVXNlZnVsIGlmIG11dGF0aW5nIHRoZSB0cmVlLCBzdWNoIGFzIHJlbW92aW5nIHRoZSBub2RlIHRoZSB2aXNpdG9yIGlzXG4gKiAgIGN1cnJlbnRseSBvbiwgb3IgYW55IG9mIGl0cyBwcmV2aW91cyBzaWJsaW5ncy5cbiAqICAgUmVzdWx0cyBsZXNzIHRoYW4gMCBvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGNoaWxkcmVuLmxlbmd0aGAgc3RvcFxuICogICB0cmF2ZXJzaW5nIHRoZSBwYXJlbnQuXG4gKlxuICogQHR5cGVkZWYge1soQWN0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZCB8IHZvaWQpPywgKEluZGV4IHwgbnVsbCB8IHVuZGVmaW5lZCk/XX0gQWN0aW9uVHVwbGVcbiAqICAgTGlzdCB3aXRoIG9uZSBvciB0d28gdmFsdWVzLCB0aGUgZmlyc3QgYW4gYWN0aW9uLCB0aGUgc2Vjb25kIGFuIGluZGV4LlxuICpcbiAqIEB0eXBlZGVmIHtBY3Rpb24gfCBBY3Rpb25UdXBsZSB8IEluZGV4IHwgbnVsbCB8IHVuZGVmaW5lZCB8IHZvaWR9IFZpc2l0b3JSZXN1bHRcbiAqICAgQW55IHZhbHVlIHRoYXQgY2FuIGJlIHJldHVybmVkIGZyb20gYSB2aXNpdG9yLlxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFZpc2l0b3JcbiAqICAgSGFuZGxlIGEgbm9kZSAobWF0Y2hpbmcgYHRlc3RgLCBpZiBnaXZlbikuXG4gKlxuICogICBWaXNpdG9ycyBhcmUgZnJlZSB0byB0cmFuc2Zvcm0gYG5vZGVgLlxuICogICBUaGV5IGNhbiBhbHNvIHRyYW5zZm9ybSB0aGUgcGFyZW50IG9mIG5vZGUgKHRoZSBsYXN0IG9mIGBhbmNlc3RvcnNgKS5cbiAqXG4gKiAgIFJlcGxhY2luZyBgbm9kZWAgaXRzZWxmLCBpZiBgU0tJUGAgaXMgbm90IHJldHVybmVkLCBzdGlsbCBjYXVzZXMgaXRzXG4gKiAgIGRlc2NlbmRhbnRzIHRvIGJlIHdhbGtlZCAod2hpY2ggaXMgYSBidWcpLlxuICpcbiAqICAgV2hlbiBhZGRpbmcgb3IgcmVtb3ZpbmcgcHJldmlvdXMgc2libGluZ3Mgb2YgYG5vZGVgIChvciBuZXh0IHNpYmxpbmdzLCBpblxuICogICBjYXNlIG9mIHJldmVyc2UpLCB0aGUgYFZpc2l0b3JgIHNob3VsZCByZXR1cm4gYSBuZXcgYEluZGV4YCB0byBzcGVjaWZ5IHRoZVxuICogICBzaWJsaW5nIHRvIHRyYXZlcnNlIGFmdGVyIGBub2RlYCBpcyB0cmF2ZXJzZWQuXG4gKiAgIEFkZGluZyBvciByZW1vdmluZyBuZXh0IHNpYmxpbmdzIG9mIGBub2RlYCAob3IgcHJldmlvdXMgc2libGluZ3MsIGluIGNhc2VcbiAqICAgb2YgcmV2ZXJzZSkgaXMgaGFuZGxlZCBhcyBleHBlY3RlZCB3aXRob3V0IG5lZWRpbmcgdG8gcmV0dXJuIGEgbmV3IGBJbmRleGAuXG4gKlxuICogICBSZW1vdmluZyB0aGUgY2hpbGRyZW4gcHJvcGVydHkgb2YgYW4gYW5jZXN0b3Igc3RpbGwgcmVzdWx0cyBpbiB0aGVtIGJlaW5nXG4gKiAgIHRyYXZlcnNlZC5cbiAqIEBwYXJhbSB7VmlzaXRlZH0gbm9kZVxuICogICBGb3VuZCBub2RlLlxuICogQHBhcmFtIHtBcnJheTxWaXNpdGVkUGFyZW50cz59IGFuY2VzdG9yc1xuICogICBBbmNlc3RvcnMgb2YgYG5vZGVgLlxuICogQHJldHVybnMge1Zpc2l0b3JSZXN1bHR9XG4gKiAgIFdoYXQgdG8gZG8gbmV4dC5cbiAqXG4gKiAgIEFuIGBJbmRleGAgaXMgdHJlYXRlZCBhcyBhIHR1cGxlIG9mIGBbQ09OVElOVUUsIEluZGV4XWAuXG4gKiAgIEFuIGBBY3Rpb25gIGlzIHRyZWF0ZWQgYXMgYSB0dXBsZSBvZiBgW0FjdGlvbl1gLlxuICpcbiAqICAgUGFzc2luZyBhIHR1cGxlIGJhY2sgb25seSBtYWtlcyBzZW5zZSBpZiB0aGUgYEFjdGlvbmAgaXMgYFNLSVBgLlxuICogICBXaGVuIHRoZSBgQWN0aW9uYCBpcyBgRVhJVGAsIHRoYXQgYWN0aW9uIGNhbiBiZSByZXR1cm5lZC5cbiAqICAgV2hlbiB0aGUgYEFjdGlvbmAgaXMgYENPTlRJTlVFYCwgYEluZGV4YCBjYW4gYmUgcmV0dXJuZWQuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gW1Zpc2l0ZWQ9VW5pc3ROb2RlXVxuICogICBWaXNpdGVkIG5vZGUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3RQYXJlbnR9IFtWaXNpdGVkUGFyZW50cz1VbmlzdFBhcmVudF1cbiAqICAgQW5jZXN0b3IgdHlwZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtWaXNpdG9yPE1hdGNoZXM8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hlY2s+LCBBbmNlc3RvcjxUcmVlLCBNYXRjaGVzPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoZWNrPj4+fSBCdWlsZFZpc2l0b3JcbiAqICAgQnVpbGQgYSB0eXBlZCBgVmlzaXRvcmAgZnVuY3Rpb24gZnJvbSBhIHRyZWUgYW5kIGEgdGVzdC5cbiAqXG4gKiAgIEl0IHdpbGwgaW5mZXIgd2hpY2ggdmFsdWVzIGFyZSBwYXNzZWQgYXMgYG5vZGVgIGFuZCB3aGljaCBhcyBgcGFyZW50c2AuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gW1RyZWU9VW5pc3ROb2RlXVxuICogICBUcmVlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1Rlc3R9IFtDaGVjaz1UZXN0XVxuICogICBUZXN0IHR5cGUuXG4gKi9cblxuaW1wb3J0IHtjb252ZXJ0fSBmcm9tICd1bmlzdC11dGlsLWlzJ1xuaW1wb3J0IHtjb2xvcn0gZnJvbSAndW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzL2RvLW5vdC11c2UtY29sb3InXG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fSAqL1xuY29uc3QgZW1wdHkgPSBbXVxuXG4vKipcbiAqIENvbnRpbnVlIHRyYXZlcnNpbmcgYXMgbm9ybWFsLlxuICovXG5leHBvcnQgY29uc3QgQ09OVElOVUUgPSB0cnVlXG5cbi8qKlxuICogU3RvcCB0cmF2ZXJzaW5nIGltbWVkaWF0ZWx5LlxuICovXG5leHBvcnQgY29uc3QgRVhJVCA9IGZhbHNlXG5cbi8qKlxuICogRG8gbm90IHRyYXZlcnNlIHRoaXMgbm9kZeKAmXMgY2hpbGRyZW4uXG4gKi9cbmV4cG9ydCBjb25zdCBTS0lQID0gJ3NraXAnXG5cbi8qKlxuICogVmlzaXQgbm9kZXMsIHdpdGggYW5jZXN0cmFsIGluZm9ybWF0aW9uLlxuICpcbiAqIFRoaXMgYWxnb3JpdGhtIHBlcmZvcm1zICpkZXB0aC1maXJzdCogKnRyZWUgdHJhdmVyc2FsKiBpbiAqcHJlb3JkZXIqXG4gKiAoKipOTFIqKikgb3IgaWYgYHJldmVyc2VgIGlzIGdpdmVuLCBpbiAqcmV2ZXJzZSBwcmVvcmRlciogKCoqTlJMKiopLlxuICpcbiAqIFlvdSBjYW4gY2hvb3NlIGZvciB3aGljaCBub2RlcyBgdmlzaXRvcmAgaXMgY2FsbGVkIGJ5IHBhc3NpbmcgYSBgdGVzdGAuXG4gKiBGb3IgY29tcGxleCB0ZXN0cywgeW91IHNob3VsZCB0ZXN0IHlvdXJzZWxmIGluIGB2aXNpdG9yYCwgYXMgaXQgd2lsbCBiZVxuICogZmFzdGVyIGFuZCB3aWxsIGhhdmUgaW1wcm92ZWQgdHlwZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBXYWxraW5nIHRoZSB0cmVlIGlzIGFuIGludGVuc2l2ZSB0YXNrLlxuICogTWFrZSB1c2Ugb2YgdGhlIHJldHVybiB2YWx1ZXMgb2YgdGhlIHZpc2l0b3Igd2hlbiBwb3NzaWJsZS5cbiAqIEluc3RlYWQgb2Ygd2Fsa2luZyBhIHRyZWUgbXVsdGlwbGUgdGltZXMsIHdhbGsgaXQgb25jZSwgdXNlIGB1bmlzdC11dGlsLWlzYFxuICogdG8gY2hlY2sgaWYgYSBub2RlIG1hdGNoZXMsIGFuZCB0aGVuIHBlcmZvcm0gZGlmZmVyZW50IG9wZXJhdGlvbnMuXG4gKlxuICogWW91IGNhbiBjaGFuZ2UgdGhlIHRyZWUuXG4gKiBTZWUgYFZpc2l0b3JgIGZvciBtb3JlIGluZm8uXG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1RyZWV9IHRyZWVcbiAqIEBwYXJhbSB7Q2hlY2t9IGNoZWNrXG4gKiBAcGFyYW0ge0J1aWxkVmlzaXRvcjxUcmVlLCBDaGVjaz59IHZpc2l0b3JcbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtyZXZlcnNlXVxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VHJlZX0gdHJlZVxuICogQHBhcmFtIHtCdWlsZFZpc2l0b3I8VHJlZT59IHZpc2l0b3JcbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtyZXZlcnNlXVxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqXG4gKiBAcGFyYW0ge1VuaXN0Tm9kZX0gdHJlZVxuICogICBUcmVlIHRvIHRyYXZlcnNlLlxuICogQHBhcmFtIHtWaXNpdG9yIHwgVGVzdH0gdGVzdFxuICogICBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0XG4gKiBAcGFyYW0ge1Zpc2l0b3IgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Zpc2l0b3JdXG4gKiAgIEhhbmRsZSBlYWNoIG5vZGUuXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqICAgVHJhdmVyc2UgaW4gcmV2ZXJzZSBwcmVvcmRlciAoTlJMKSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHByZW9yZGVyIChOTFIpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBOb2RlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1Rlc3R9IENoZWNrXG4gKiAgIGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2aXNpdFBhcmVudHModHJlZSwgdGVzdCwgdmlzaXRvciwgcmV2ZXJzZSkge1xuICAvKiogQHR5cGUge1Rlc3R9ICovXG4gIGxldCBjaGVja1xuXG4gIGlmICh0eXBlb2YgdGVzdCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdmlzaXRvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldmVyc2UgPSB2aXNpdG9yXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBubyB2aXNpdG9yIGdpdmVuLCBzbyBgdmlzaXRvcmAgaXMgdGVzdC5cbiAgICB2aXNpdG9yID0gdGVzdFxuICB9IGVsc2Uge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdmlzaXRvciBnaXZlbiwgc28gYHRlc3RgIGlzbuKAmXQgYSB2aXNpdG9yLlxuICAgIGNoZWNrID0gdGVzdFxuICB9XG5cbiAgY29uc3QgaXMgPSBjb252ZXJ0KGNoZWNrKVxuICBjb25zdCBzdGVwID0gcmV2ZXJzZSA/IC0xIDogMVxuXG4gIGZhY3RvcnkodHJlZSwgdW5kZWZpbmVkLCBbXSkoKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1VuaXN0Tm9kZX0gbm9kZVxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAgICogQHBhcmFtIHtBcnJheTxVbmlzdFBhcmVudD59IHBhcmVudHNcbiAgICovXG4gIGZ1bmN0aW9uIGZhY3Rvcnkobm9kZSwgaW5kZXgsIHBhcmVudHMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59ICovIChcbiAgICAgIG5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnID8gbm9kZSA6IHt9XG4gICAgKVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZS50eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgbmFtZSA9XG4gICAgICAgIC8vIGBoYXN0YFxuICAgICAgICB0eXBlb2YgdmFsdWUudGFnTmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IHZhbHVlLnRhZ05hbWVcbiAgICAgICAgICA6IC8vIGB4YXN0YFxuICAgICAgICAgIHR5cGVvZiB2YWx1ZS5uYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gdmFsdWUubmFtZVxuICAgICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2aXNpdCwgJ25hbWUnLCB7XG4gICAgICAgIHZhbHVlOlxuICAgICAgICAgICdub2RlICgnICsgY29sb3Iobm9kZS50eXBlICsgKG5hbWUgPyAnPCcgKyBuYW1lICsgJz4nIDogJycpKSArICcpJ1xuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdmlzaXRcblxuICAgIGZ1bmN0aW9uIHZpc2l0KCkge1xuICAgICAgLyoqIEB0eXBlIHtSZWFkb25seTxBY3Rpb25UdXBsZT59ICovXG4gICAgICBsZXQgcmVzdWx0ID0gZW1wdHlcbiAgICAgIC8qKiBAdHlwZSB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fSAqL1xuICAgICAgbGV0IHN1YnJlc3VsdFxuICAgICAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gICAgICBsZXQgb2Zmc2V0XG4gICAgICAvKiogQHR5cGUge0FycmF5PFVuaXN0UGFyZW50Pn0gKi9cbiAgICAgIGxldCBncmFuZHBhcmVudHNcblxuICAgICAgaWYgKCF0ZXN0IHx8IGlzKG5vZGUsIGluZGV4LCBwYXJlbnRzW3BhcmVudHMubGVuZ3RoIC0gMV0gfHwgdW5kZWZpbmVkKSkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBgdmlzaXRvcmAgaXMgbm93IGEgdmlzaXRvci5cbiAgICAgICAgcmVzdWx0ID0gdG9SZXN1bHQodmlzaXRvcihub2RlLCBwYXJlbnRzKSlcblxuICAgICAgICBpZiAocmVzdWx0WzBdID09PSBFWElUKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICgnY2hpbGRyZW4nIGluIG5vZGUgJiYgbm9kZS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBub2RlQXNQYXJlbnQgPSAvKiogQHR5cGUge1VuaXN0UGFyZW50fSAqLyAobm9kZSlcblxuICAgICAgICBpZiAobm9kZUFzUGFyZW50LmNoaWxkcmVuICYmIHJlc3VsdFswXSAhPT0gU0tJUCkge1xuICAgICAgICAgIG9mZnNldCA9IChyZXZlcnNlID8gbm9kZUFzUGFyZW50LmNoaWxkcmVuLmxlbmd0aCA6IC0xKSArIHN0ZXBcbiAgICAgICAgICBncmFuZHBhcmVudHMgPSBwYXJlbnRzLmNvbmNhdChub2RlQXNQYXJlbnQpXG5cbiAgICAgICAgICB3aGlsZSAob2Zmc2V0ID4gLTEgJiYgb2Zmc2V0IDwgbm9kZUFzUGFyZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBub2RlQXNQYXJlbnQuY2hpbGRyZW5bb2Zmc2V0XVxuXG4gICAgICAgICAgICBzdWJyZXN1bHQgPSBmYWN0b3J5KGNoaWxkLCBvZmZzZXQsIGdyYW5kcGFyZW50cykoKVxuXG4gICAgICAgICAgICBpZiAoc3VicmVzdWx0WzBdID09PSBFWElUKSB7XG4gICAgICAgICAgICAgIHJldHVybiBzdWJyZXN1bHRcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb2Zmc2V0ID1cbiAgICAgICAgICAgICAgdHlwZW9mIHN1YnJlc3VsdFsxXSA9PT0gJ251bWJlcicgPyBzdWJyZXN1bHRbMV0gOiBvZmZzZXQgKyBzdGVwXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgcmV0dXJuIHZhbHVlIGludG8gYSBjbGVhbiByZXN1bHQuXG4gKlxuICogQHBhcmFtIHtWaXNpdG9yUmVzdWx0fSB2YWx1ZVxuICogICBWYWxpZCByZXR1cm4gdmFsdWVzIGZyb20gdmlzaXRvcnMuXG4gKiBAcmV0dXJucyB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fVxuICogICBDbGVhbiByZXN1bHQuXG4gKi9cbmZ1bmN0aW9uIHRvUmVzdWx0KHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gW0NPTlRJTlVFLCB2YWx1ZV1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gZW1wdHkgOiBbdmFsdWVdXG59XG4iXSwibmFtZXMiOlsiY29udmVydCIsImNvbG9yIiwiZW1wdHkiLCJDT05USU5VRSIsIkVYSVQiLCJTS0lQIiwidmlzaXRQYXJlbnRzIiwidHJlZSIsInRlc3QiLCJ2aXNpdG9yIiwicmV2ZXJzZSIsImNoZWNrIiwiaXMiLCJzdGVwIiwiZmFjdG9yeSIsInVuZGVmaW5lZCIsIm5vZGUiLCJpbmRleCIsInBhcmVudHMiLCJ2YWx1ZSIsInR5cGUiLCJuYW1lIiwidGFnTmFtZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmlzaXQiLCJyZXN1bHQiLCJzdWJyZXN1bHQiLCJvZmZzZXQiLCJncmFuZHBhcmVudHMiLCJsZW5ndGgiLCJ0b1Jlc3VsdCIsImNoaWxkcmVuIiwibm9kZUFzUGFyZW50IiwiY29uY2F0IiwiY2hpbGQiLCJBcnJheSIsImlzQXJyYXkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unist-util-visit-parents/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/unist-util-visit/lib/index.js":
-/*!********************************************************!*\
- !*** ../../node_modules/unist-util-visit/lib/index.js ***!
- \********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CONTINUE: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.CONTINUE),\n/* harmony export */ EXIT: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.EXIT),\n/* harmony export */ SKIP: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.SKIP),\n/* harmony export */ visit: () => (/* binding */ visit)\n/* harmony export */ });\n/* harmony import */ var unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit-parents */ \"(ssr)/../../node_modules/unist-util-visit-parents/lib/index.js\");\n/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */ /**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */ // To do: use types from `unist-util-visit-parents` when it’s released.\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */ /**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */ /**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */ /**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */ /**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */ /**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */ /**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */ /**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */ /**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */ /**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */ /**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */ /**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches<Descendant, Check>,\n * Extract<Descendant, UnistParent>\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */ /**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */ \n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */ function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */ let reverse;\n /** @type {Test} */ let test;\n /** @type {Visitor} */ let visitor;\n if (typeof testOrVisitor === \"function\" && typeof visitorOrReverse !== \"function\") {\n test = undefined;\n visitor = testOrVisitor;\n reverse = visitorOrReverse;\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor;\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse;\n reverse = maybeReverse;\n }\n (0,unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.visitParents)(tree, test, overload, reverse);\n /**\n * @param {UnistNode} node\n * @param {Array<UnistParent>} parents\n */ function overload(node, parents) {\n const parent = parents[parents.length - 1];\n const index = parent ? parent.children.indexOf(node) : undefined;\n return visitor(node, index, parent);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtdmlzaXQvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7Q0FJQyxHQUVEOzs7Ozs7O0NBT0MsR0FFRCx1RUFBdUU7QUFFdkU7Ozs7Ozs7Ozs7O0NBV0MsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1CQyxHQUVEOzs7Ozs7Ozs7OztDQVdDLEdBRUQ7OztDQUdDLEdBRUQ7Ozs7O0NBS0MsR0FFRDs7Ozs7Ozs7Ozs7OztDQWFDLEdBRUQ7Ozs7Ozs7Q0FPQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F3QkMsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFDQyxHQUVEOzs7Ozs7Ozs7Q0FTQyxHQUVEOzs7Ozs7Ozs7Ozs7OztDQWNDLEdBRUQ7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FFb0Q7QUFFUTtBQUU3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQThDQyxHQUNNLFNBQVNJLE1BQU1DLElBQUksRUFBRUMsYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRUMsWUFBWTtJQUN2RSx1Q0FBdUMsR0FDdkMsSUFBSUM7SUFDSixpQkFBaUIsR0FDakIsSUFBSUM7SUFDSixvQkFBb0IsR0FDcEIsSUFBSUM7SUFFSixJQUNFLE9BQU9MLGtCQUFrQixjQUN6QixPQUFPQyxxQkFBcUIsWUFDNUI7UUFDQUcsT0FBT0U7UUFDUEQsVUFBVUw7UUFDVkcsVUFBVUY7SUFDWixPQUFPO1FBQ0wsNkRBQTZEO1FBQzdERyxPQUFPSjtRQUNQLDZEQUE2RDtRQUM3REssVUFBVUo7UUFDVkUsVUFBVUQ7SUFDWjtJQUVBUixzRUFBWUEsQ0FBQ0ssTUFBTUssTUFBTUcsVUFBVUo7SUFFbkM7OztHQUdDLEdBQ0QsU0FBU0ksU0FBU0MsSUFBSSxFQUFFQyxPQUFPO1FBQzdCLE1BQU1DLFNBQVNELE9BQU8sQ0FBQ0EsUUFBUUUsTUFBTSxHQUFHLEVBQUU7UUFDMUMsTUFBTUMsUUFBUUYsU0FBU0EsT0FBT0csUUFBUSxDQUFDQyxPQUFPLENBQUNOLFFBQVFGO1FBQ3ZELE9BQU9ELFFBQVFHLE1BQU1JLE9BQU9GO0lBQzlCO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0L2xpYi9pbmRleC5qcz9hY2M2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBVbmlzdE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUGFyZW50fSBVbmlzdFBhcmVudFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzJykuVmlzaXRvclJlc3VsdH0gVmlzaXRvclJlc3VsdFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0V4Y2x1ZGU8aW1wb3J0KCd1bmlzdC11dGlsLWlzJykuVGVzdCwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZH0gVGVzdFxuICogICBUZXN0IGZyb20gYHVuaXN0LXV0aWwtaXNgLlxuICpcbiAqICAgTm90ZTogd2UgaGF2ZSByZW1vdmUgYW5kIGFkZCBgdW5kZWZpbmVkYCwgYmVjYXVzZSBvdGhlcndpc2Ugd2hlbiBnZW5lcmF0aW5nXG4gKiAgIGF1dG9tYXRpYyBgLmQudHNgIGZpbGVzLCBUUyB0cmllcyB0byBmbGF0dGVuIHBhdGhzIGZyb20gYSBsb2NhbCBwZXJzcGVjdGl2ZSxcbiAqICAgd2hpY2ggZG9lc27igJl0IHdvcmsgd2hlbiBwdWJsaXNoaW5nIG9uIG5wbS5cbiAqL1xuXG4vLyBUbyBkbzogdXNlIHR5cGVzIGZyb20gYHVuaXN0LXV0aWwtdmlzaXQtcGFyZW50c2Agd2hlbiBpdOKAmXMgcmVsZWFzZWQuXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRm4gZXh0ZW5kcyAodmFsdWU6IGFueSkgPT4gdmFsdWUgaXMgaW5mZXIgVGhpbmdcbiAqICAgPyBUaGluZ1xuICogICA6IEZhbGxiYWNrXG4gKiApfSBQcmVkaWNhdGVcbiAqICAgR2V0IHRoZSB2YWx1ZSBvZiBhIHR5cGUgZ3VhcmQgYEZuYC5cbiAqIEB0ZW1wbGF0ZSBGblxuICogICBWYWx1ZTsgdHlwaWNhbGx5IGZ1bmN0aW9uIHRoYXQgaXMgYSB0eXBlIGd1YXJkIChzdWNoIGFzIGAoeCk6IHggaXMgWWApLlxuICogQHRlbXBsYXRlIEZhbGxiYWNrXG4gKiAgIFZhbHVlIHRvIHlpZWxkIGlmIGBGbmAgaXMgbm90IGEgdHlwZSBndWFyZC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIENoZWNrIGV4dGVuZHMgbnVsbCB8IHVuZGVmaW5lZCAvLyBObyB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogVmFsdWUgZXh0ZW5kcyB7dHlwZTogQ2hlY2t9IC8vIFN0cmluZyAodHlwZSkgdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IFZhbHVlIGV4dGVuZHMgQ2hlY2sgLy8gUGFydGlhbCB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogQ2hlY2sgZXh0ZW5kcyBGdW5jdGlvbiAvLyBGdW5jdGlvbiB0ZXN0LlxuICogICA/IFByZWRpY2F0ZTxDaGVjaywgVmFsdWU+IGV4dGVuZHMgVmFsdWVcbiAqICAgICA/IFByZWRpY2F0ZTxDaGVjaywgVmFsdWU+XG4gKiAgICAgOiBuZXZlclxuICogICA6IG5ldmVyIC8vIFNvbWUgb3RoZXIgdGVzdD9cbiAqICl9IE1hdGNoZXNPbmVcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIHByaW1pdGl2ZSBjaGVjayBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUgVmFsdWVcbiAqICAgVmFsdWU7IHR5cGljYWxseSB1bmlzdCBgTm9kZWAuXG4gKiBAdGVtcGxhdGUgQ2hlY2tcbiAqICAgVmFsdWU7IHR5cGljYWxseSBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LCBidXQgbm90IGFycmF5cy5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIENoZWNrIGV4dGVuZHMgQXJyYXk8YW55PlxuICogICA/IE1hdGNoZXNPbmU8VmFsdWUsIENoZWNrW2tleW9mIENoZWNrXT5cbiAqICAgOiBNYXRjaGVzT25lPFZhbHVlLCBDaGVjaz5cbiAqICl9IE1hdGNoZXNcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIGNoZWNrIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSBWYWx1ZVxuICogICBWYWx1ZTsgdHlwaWNhbGx5IHVuaXN0IGBOb2RlYC5cbiAqIEB0ZW1wbGF0ZSBDaGVja1xuICogICBWYWx1ZTsgdHlwaWNhbGx5IGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7MCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDcgfCA4IHwgOSB8IDEwfSBVaW50XG4gKiAgIE51bWJlcjsgY2FwcGVkIHJlYXNvbmFibHkuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SSBleHRlbmRzIDAgPyAxIDogSSBleHRlbmRzIDEgPyAyIDogSSBleHRlbmRzIDIgPyAzIDogSSBleHRlbmRzIDMgPyA0IDogSSBleHRlbmRzIDQgPyA1IDogSSBleHRlbmRzIDUgPyA2IDogSSBleHRlbmRzIDYgPyA3IDogSSBleHRlbmRzIDcgPyA4IDogSSBleHRlbmRzIDggPyA5IDogMTB9IEluY3JlbWVudFxuICogICBJbmNyZW1lbnQgYSBudW1iZXIgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIHtVaW50fSBbST0wXVxuICogICBJbmRleC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIE5vZGUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICA/IE5vZGUgZXh0ZW5kcyB7Y2hpbGRyZW46IEFycmF5PGluZmVyIENoaWxkcmVuPn1cbiAqICAgICA/IENoaWxkIGV4dGVuZHMgQ2hpbGRyZW4gPyBOb2RlIDogbmV2ZXJcbiAqICAgICA6IG5ldmVyXG4gKiAgIDogbmV2ZXJcbiAqICl9IEludGVybmFsUGFyZW50XG4gKiAgIENvbGxlY3Qgbm9kZXMgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbFBhcmVudDxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGlsZD59IFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBwYXJlbnRzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgPyBuZXZlclxuICogICA6XG4gKiAgICAgfCBJbnRlcm5hbFBhcmVudDxOb2RlLCBDaGlsZD5cbiAqICAgICB8IEludGVybmFsQW5jZXN0b3I8Tm9kZSwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+LCBNYXgsIEluY3JlbWVudDxEZXB0aD4+XG4gKiApfSBJbnRlcm5hbEFuY2VzdG9yXG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIGFuY2VzdG9ycyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIFRyZWUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICAgID8gRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgICAgID8gVHJlZVxuICogICAgICAgOiBUcmVlIHwgSW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlWydjaGlsZHJlbiddW251bWJlcl0sIE1heCwgSW5jcmVtZW50PERlcHRoPj5cbiAqICAgICA6IFRyZWVcbiAqICl9IEluY2x1c2l2ZURlc2NlbmRhbnRcbiAqICAgQ29sbGVjdCBhbGwgKGluY2x1c2l2ZSkgZGVzY2VuZGFudHMgb2YgYFRyZWVgLlxuICpcbiAqICAgPiDwn5GJICoqTm90ZSoqOiBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBzZWVtcyB0byBiZSB0aGUgZmFzdGVzdCB3YXkgdG9cbiAqICAgPiByZWN1cnNlIHdpdGhvdXQgYWN0dWFsbHkgcnVubmluZyBpbnRvIGFuIGluZmluaXRlIGxvb3AsIHdoaWNoIHRoZVxuICogICA+IHByZXZpb3VzIHZlcnNpb24gZGlkLlxuICogICA+XG4gKiAgID4gUHJhY3RpY2FsbHksIGEgbWF4IG9mIGAyYCBpcyB0eXBpY2FsbHkgZW5vdWdoIGFzc3VtaW5nIGEgYFJvb3RgIGlzXG4gKiAgID4gcGFzc2VkLCBidXQgaXQgZG9lc27igJl0IGltcHJvdmUgcGVyZm9ybWFuY2UuXG4gKiAgID4gSXQgZ2V0cyBoaWdoZXIgd2l0aCBgTGlzdCA+IExpc3RJdGVtID4gVGFibGUgPiBUYWJsZVJvdyA+IFRhYmxlQ2VsbGAuXG4gKiAgID4gVXNpbmcgdXAgdG8gYDEwYCBkb2VzbuKAmXQgaHVydCBvciBoZWxwIGVpdGhlci5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBUcmVlXG4gKiAgIFRyZWUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBWaXNpdG9yXG4gKiAgIEhhbmRsZSBhIG5vZGUgKG1hdGNoaW5nIGB0ZXN0YCwgaWYgZ2l2ZW4pLlxuICpcbiAqICAgVmlzaXRvcnMgYXJlIGZyZWUgdG8gdHJhbnNmb3JtIGBub2RlYC5cbiAqICAgVGhleSBjYW4gYWxzbyB0cmFuc2Zvcm0gYHBhcmVudGAuXG4gKlxuICogICBSZXBsYWNpbmcgYG5vZGVgIGl0c2VsZiwgaWYgYFNLSVBgIGlzIG5vdCByZXR1cm5lZCwgc3RpbGwgY2F1c2VzIGl0c1xuICogICBkZXNjZW5kYW50cyB0byBiZSB3YWxrZWQgKHdoaWNoIGlzIGEgYnVnKS5cbiAqXG4gKiAgIFdoZW4gYWRkaW5nIG9yIHJlbW92aW5nIHByZXZpb3VzIHNpYmxpbmdzIG9mIGBub2RlYCAob3IgbmV4dCBzaWJsaW5ncywgaW5cbiAqICAgY2FzZSBvZiByZXZlcnNlKSwgdGhlIGBWaXNpdG9yYCBzaG91bGQgcmV0dXJuIGEgbmV3IGBJbmRleGAgdG8gc3BlY2lmeSB0aGVcbiAqICAgc2libGluZyB0byB0cmF2ZXJzZSBhZnRlciBgbm9kZWAgaXMgdHJhdmVyc2VkLlxuICogICBBZGRpbmcgb3IgcmVtb3ZpbmcgbmV4dCBzaWJsaW5ncyBvZiBgbm9kZWAgKG9yIHByZXZpb3VzIHNpYmxpbmdzLCBpbiBjYXNlXG4gKiAgIG9mIHJldmVyc2UpIGlzIGhhbmRsZWQgYXMgZXhwZWN0ZWQgd2l0aG91dCBuZWVkaW5nIHRvIHJldHVybiBhIG5ldyBgSW5kZXhgLlxuICpcbiAqICAgUmVtb3ZpbmcgdGhlIGNoaWxkcmVuIHByb3BlcnR5IG9mIGBwYXJlbnRgIHN0aWxsIHJlc3VsdHMgaW4gdGhlbSBiZWluZ1xuICogICB0cmF2ZXJzZWQuXG4gKiBAcGFyYW0ge1Zpc2l0ZWR9IG5vZGVcbiAqICAgRm91bmQgbm9kZS5cbiAqIEBwYXJhbSB7VmlzaXRlZCBleHRlbmRzIFVuaXN0Tm9kZSA/IG51bWJlciB8IHVuZGVmaW5lZCA6IG5ldmVyfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudGAuXG4gKiBAcGFyYW0ge0FuY2VzdG9yIGV4dGVuZHMgVW5pc3RQYXJlbnQgPyBBbmNlc3RvciB8IHVuZGVmaW5lZCA6IG5ldmVyfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEByZXR1cm5zIHtWaXNpdG9yUmVzdWx0fVxuICogICBXaGF0IHRvIGRvIG5leHQuXG4gKlxuICogICBBbiBgSW5kZXhgIGlzIHRyZWF0ZWQgYXMgYSB0dXBsZSBvZiBgW0NPTlRJTlVFLCBJbmRleF1gLlxuICogICBBbiBgQWN0aW9uYCBpcyB0cmVhdGVkIGFzIGEgdHVwbGUgb2YgYFtBY3Rpb25dYC5cbiAqXG4gKiAgIFBhc3NpbmcgYSB0dXBsZSBiYWNrIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIGBBY3Rpb25gIGlzIGBTS0lQYC5cbiAqICAgV2hlbiB0aGUgYEFjdGlvbmAgaXMgYEVYSVRgLCB0aGF0IGFjdGlvbiBjYW4gYmUgcmV0dXJuZWQuXG4gKiAgIFdoZW4gdGhlIGBBY3Rpb25gIGlzIGBDT05USU5VRWAsIGBJbmRleGAgY2FuIGJlIHJldHVybmVkLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtWaXNpdGVkPVVuaXN0Tm9kZV1cbiAqICAgVmlzaXRlZCBub2RlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VuaXN0UGFyZW50fSBbQW5jZXN0b3I9VW5pc3RQYXJlbnRdXG4gKiAgIEFuY2VzdG9yIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VmlzaXRvcjxWaXNpdGVkLCBQYXJlbnQ8QW5jZXN0b3IsIFZpc2l0ZWQ+Pn0gQnVpbGRWaXNpdG9yRnJvbU1hdGNoXG4gKiAgIEJ1aWxkIGEgdHlwZWQgYFZpc2l0b3JgIGZ1bmN0aW9uIGZyb20gYSBub2RlIGFuZCBhbGwgcG9zc2libGUgcGFyZW50cy5cbiAqXG4gKiAgIEl0IHdpbGwgaW5mZXIgd2hpY2ggdmFsdWVzIGFyZSBwYXNzZWQgYXMgYG5vZGVgIGFuZCB3aGljaCBhcyBgcGFyZW50YC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBWaXNpdGVkXG4gKiAgIE5vZGUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3RQYXJlbnR9IEFuY2VzdG9yXG4gKiAgIFBhcmVudCB0eXBlLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgQnVpbGRWaXNpdG9yRnJvbU1hdGNoPFxuICogICAgIE1hdGNoZXM8RGVzY2VuZGFudCwgQ2hlY2s+LFxuICogICAgIEV4dHJhY3Q8RGVzY2VuZGFudCwgVW5pc3RQYXJlbnQ+XG4gKiAgID5cbiAqICl9IEJ1aWxkVmlzaXRvckZyb21EZXNjZW5kYW50c1xuICogICBCdWlsZCBhIHR5cGVkIGBWaXNpdG9yYCBmdW5jdGlvbiBmcm9tIGEgbGlzdCBvZiBkZXNjZW5kYW50cyBhbmQgYSB0ZXN0LlxuICpcbiAqICAgSXQgd2lsbCBpbmZlciB3aGljaCB2YWx1ZXMgYXJlIHBhc3NlZCBhcyBgbm9kZWAgYW5kIHdoaWNoIGFzIGBwYXJlbnRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IERlc2NlbmRhbnRcbiAqICAgTm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBDaGVja1xuICogICBUZXN0IHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBCdWlsZFZpc2l0b3JGcm9tRGVzY2VuZGFudHM8XG4gKiAgICAgSW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPixcbiAqICAgICBDaGVja1xuICogICA+XG4gKiApfSBCdWlsZFZpc2l0b3JcbiAqICAgQnVpbGQgYSB0eXBlZCBgVmlzaXRvcmAgZnVuY3Rpb24gZnJvbSBhIHRyZWUgYW5kIGEgdGVzdC5cbiAqXG4gKiAgIEl0IHdpbGwgaW5mZXIgd2hpY2ggdmFsdWVzIGFyZSBwYXNzZWQgYXMgYG5vZGVgIGFuZCB3aGljaCBhcyBgcGFyZW50YC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBbVHJlZT1VbmlzdE5vZGVdXG4gKiAgIE5vZGUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VGVzdH0gW0NoZWNrPVRlc3RdXG4gKiAgIFRlc3QgdHlwZS5cbiAqL1xuXG5pbXBvcnQge3Zpc2l0UGFyZW50c30gZnJvbSAndW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzJ1xuXG5leHBvcnQge0NPTlRJTlVFLCBFWElULCBTS0lQfSBmcm9tICd1bmlzdC11dGlsLXZpc2l0LXBhcmVudHMnXG5cbi8qKlxuICogVmlzaXQgbm9kZXMuXG4gKlxuICogVGhpcyBhbGdvcml0aG0gcGVyZm9ybXMgKmRlcHRoLWZpcnN0KiAqdHJlZSB0cmF2ZXJzYWwqIGluICpwcmVvcmRlcipcbiAqICgqKk5MUioqKSBvciBpZiBgcmV2ZXJzZWAgaXMgZ2l2ZW4sIGluICpyZXZlcnNlIHByZW9yZGVyKiAoKipOUkwqKikuXG4gKlxuICogWW91IGNhbiBjaG9vc2UgZm9yIHdoaWNoIG5vZGVzIGB2aXNpdG9yYCBpcyBjYWxsZWQgYnkgcGFzc2luZyBhIGB0ZXN0YC5cbiAqIEZvciBjb21wbGV4IHRlc3RzLCB5b3Ugc2hvdWxkIHRlc3QgeW91cnNlbGYgaW4gYHZpc2l0b3JgLCBhcyBpdCB3aWxsIGJlXG4gKiBmYXN0ZXIgYW5kIHdpbGwgaGF2ZSBpbXByb3ZlZCB0eXBlIGluZm9ybWF0aW9uLlxuICpcbiAqIFdhbGtpbmcgdGhlIHRyZWUgaXMgYW4gaW50ZW5zaXZlIHRhc2suXG4gKiBNYWtlIHVzZSBvZiB0aGUgcmV0dXJuIHZhbHVlcyBvZiB0aGUgdmlzaXRvciB3aGVuIHBvc3NpYmxlLlxuICogSW5zdGVhZCBvZiB3YWxraW5nIGEgdHJlZSBtdWx0aXBsZSB0aW1lcywgd2FsayBpdCBvbmNlLCB1c2UgYHVuaXN0LXV0aWwtaXNgXG4gKiB0byBjaGVjayBpZiBhIG5vZGUgbWF0Y2hlcywgYW5kIHRoZW4gcGVyZm9ybSBkaWZmZXJlbnQgb3BlcmF0aW9ucy5cbiAqXG4gKiBZb3UgY2FuIGNoYW5nZSB0aGUgdHJlZS5cbiAqIFNlZSBgVmlzaXRvcmAgZm9yIG1vcmUgaW5mby5cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VHJlZX0gdHJlZVxuICogQHBhcmFtIHtDaGVja30gY2hlY2tcbiAqIEBwYXJhbSB7QnVpbGRWaXNpdG9yPFRyZWUsIENoZWNrPn0gdmlzaXRvclxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEBvdmVybG9hZFxuICogQHBhcmFtIHtUcmVlfSB0cmVlXG4gKiBAcGFyYW0ge0J1aWxkVmlzaXRvcjxUcmVlPn0gdmlzaXRvclxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEBwYXJhbSB7VW5pc3ROb2RlfSB0cmVlXG4gKiAgIFRyZWUgdG8gdHJhdmVyc2UuXG4gKiBAcGFyYW0ge1Zpc2l0b3IgfCBUZXN0fSB0ZXN0T3JWaXNpdG9yXG4gKiAgIGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QgKG9wdGlvbmFsLCBvbWl0IHRvIHBhc3MgYSB2aXNpdG9yKS5cbiAqIEBwYXJhbSB7VmlzaXRvciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdmlzaXRvck9yUmV2ZXJzZV1cbiAqICAgSGFuZGxlIGVhY2ggbm9kZSAod2hlbiB0ZXN0IGlzIG9taXR0ZWQsIHBhc3MgYHJldmVyc2VgKS5cbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFttYXliZVJldmVyc2U9ZmFsc2VdXG4gKiAgIFRyYXZlcnNlIGluIHJldmVyc2UgcHJlb3JkZXIgKE5STCkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwcmVvcmRlciAoTkxSKS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgTm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBDaGVja1xuICogICBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmlzaXQodHJlZSwgdGVzdE9yVmlzaXRvciwgdmlzaXRvck9yUmV2ZXJzZSwgbWF5YmVSZXZlcnNlKSB7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9ICovXG4gIGxldCByZXZlcnNlXG4gIC8qKiBAdHlwZSB7VGVzdH0gKi9cbiAgbGV0IHRlc3RcbiAgLyoqIEB0eXBlIHtWaXNpdG9yfSAqL1xuICBsZXQgdmlzaXRvclxuXG4gIGlmIChcbiAgICB0eXBlb2YgdGVzdE9yVmlzaXRvciA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiB2aXNpdG9yT3JSZXZlcnNlICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHRlc3QgPSB1bmRlZmluZWRcbiAgICB2aXNpdG9yID0gdGVzdE9yVmlzaXRvclxuICAgIHJldmVyc2UgPSB2aXNpdG9yT3JSZXZlcnNlXG4gIH0gZWxzZSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYXNzdW1lIHRoZSBvdmVybG9hZCB3aXRoIHRlc3Qgd2FzIGdpdmVuLlxuICAgIHRlc3QgPSB0ZXN0T3JWaXNpdG9yXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYXNzdW1lIHRoZSBvdmVybG9hZCB3aXRoIHRlc3Qgd2FzIGdpdmVuLlxuICAgIHZpc2l0b3IgPSB2aXNpdG9yT3JSZXZlcnNlXG4gICAgcmV2ZXJzZSA9IG1heWJlUmV2ZXJzZVxuICB9XG5cbiAgdmlzaXRQYXJlbnRzKHRyZWUsIHRlc3QsIG92ZXJsb2FkLCByZXZlcnNlKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1VuaXN0Tm9kZX0gbm9kZVxuICAgKiBAcGFyYW0ge0FycmF5PFVuaXN0UGFyZW50Pn0gcGFyZW50c1xuICAgKi9cbiAgZnVuY3Rpb24gb3ZlcmxvYWQobm9kZSwgcGFyZW50cykge1xuICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudHNbcGFyZW50cy5sZW5ndGggLSAxXVxuICAgIGNvbnN0IGluZGV4ID0gcGFyZW50ID8gcGFyZW50LmNoaWxkcmVuLmluZGV4T2Yobm9kZSkgOiB1bmRlZmluZWRcbiAgICByZXR1cm4gdmlzaXRvcihub2RlLCBpbmRleCwgcGFyZW50KVxuICB9XG59XG4iXSwibmFtZXMiOlsidmlzaXRQYXJlbnRzIiwiQ09OVElOVUUiLCJFWElUIiwiU0tJUCIsInZpc2l0IiwidHJlZSIsInRlc3RPclZpc2l0b3IiLCJ2aXNpdG9yT3JSZXZlcnNlIiwibWF5YmVSZXZlcnNlIiwicmV2ZXJzZSIsInRlc3QiLCJ2aXNpdG9yIiwidW5kZWZpbmVkIiwib3ZlcmxvYWQiLCJub2RlIiwicGFyZW50cyIsInBhcmVudCIsImxlbmd0aCIsImluZGV4IiwiY2hpbGRyZW4iLCJpbmRleE9mIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/unist-util-visit/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/vfile-message/lib/index.js":
-/*!*****************************************************!*\
- !*** ../../node_modules/vfile-message/lib/index.js ***!
- \*****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VFileMessage: () => (/* binding */ VFileMessage)\n/* harmony export */ });\n/* harmony import */ var unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-stringify-position */ \"(ssr)/../../node_modules/unist-util-stringify-position/lib/index.js\");\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */ /**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */ \n/**\n * Message.\n */ class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */ // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin){\n super();\n if (typeof optionsOrParentOrPlace === \"string\") {\n origin = optionsOrParentOrPlace;\n optionsOrParentOrPlace = undefined;\n }\n /** @type {string} */ let reason = \"\";\n /** @type {Options} */ let options = {};\n let legacyCause = false;\n if (optionsOrParentOrPlace) {\n // Point.\n if (\"line\" in optionsOrParentOrPlace && \"column\" in optionsOrParentOrPlace) {\n options = {\n place: optionsOrParentOrPlace\n };\n } else if (\"start\" in optionsOrParentOrPlace && \"end\" in optionsOrParentOrPlace) {\n options = {\n place: optionsOrParentOrPlace\n };\n } else if (\"type\" in optionsOrParentOrPlace) {\n options = {\n ancestors: [\n optionsOrParentOrPlace\n ],\n place: optionsOrParentOrPlace.position\n };\n } else {\n options = {\n ...optionsOrParentOrPlace\n };\n }\n }\n if (typeof causeOrReason === \"string\") {\n reason = causeOrReason;\n } else if (!options.cause && causeOrReason) {\n legacyCause = true;\n reason = causeOrReason.message;\n options.cause = causeOrReason;\n }\n if (!options.ruleId && !options.source && typeof origin === \"string\") {\n const index = origin.indexOf(\":\");\n if (index === -1) {\n options.ruleId = origin;\n } else {\n options.source = origin.slice(0, index);\n options.ruleId = origin.slice(index + 1);\n }\n }\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1];\n if (parent) {\n options.place = parent.position;\n }\n }\n const start = options.place && \"start\" in options.place ? options.place.start : options.place;\n /* eslint-disable no-unused-expressions */ /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */ this.ancestors = options.ancestors || undefined;\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */ this.cause = options.cause || undefined;\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */ this.column = start ? start.column : undefined;\n /**\n * State of problem.\n *\n * * `true` — error, file not usable\n * * `false` — warning, change may be needed\n * * `undefined` — change likely not needed\n *\n * @type {boolean | null | undefined}\n */ this.fatal = undefined;\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */ this.file;\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */ this.message = reason;\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */ this.line = start ? start.line : undefined;\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */ this.name = (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_0__.stringifyPosition)(options.place) || \"1:1\";\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */ this.place = options.place || undefined;\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */ this.reason = this.message;\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */ this.ruleId = options.ruleId || undefined;\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */ this.source = options.source || undefined;\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */ this.stack = legacyCause && options.cause && typeof options.cause.stack === \"string\" ? options.cause.stack : \"\";\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */ this.actual;\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */ this.expected;\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */ this.note;\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */ this.url;\n /* eslint-enable no-unused-expressions */ }\n}\nVFileMessage.prototype.file = \"\";\nVFileMessage.prototype.name = \"\";\nVFileMessage.prototype.reason = \"\";\nVFileMessage.prototype.message = \"\";\nVFileMessage.prototype.stack = \"\";\nVFileMessage.prototype.column = undefined;\nVFileMessage.prototype.line = undefined;\nVFileMessage.prototype.ancestors = undefined;\nVFileMessage.prototype.cause = undefined;\nVFileMessage.prototype.fatal = undefined;\nVFileMessage.prototype.place = undefined;\nVFileMessage.prototype.ruleId = undefined;\nVFileMessage.prototype.source = undefined;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlLW1lc3NhZ2UvbGliL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Q0FJQyxHQUVEOzs7Ozs7Ozs7Ozs7Ozs7Q0FlQyxHQUU4RDtBQUUvRDs7Q0FFQyxHQUNNLE1BQU1DLHFCQUFxQkM7SUFDaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcURDLEdBQ0Qsc0NBQXNDO0lBQ3RDQyxZQUFZQyxhQUFhLEVBQUVDLHNCQUFzQixFQUFFQyxNQUFNLENBQUU7UUFDekQsS0FBSztRQUVMLElBQUksT0FBT0QsMkJBQTJCLFVBQVU7WUFDOUNDLFNBQVNEO1lBQ1RBLHlCQUF5QkU7UUFDM0I7UUFFQSxtQkFBbUIsR0FDbkIsSUFBSUMsU0FBUztRQUNiLG9CQUFvQixHQUNwQixJQUFJQyxVQUFVLENBQUM7UUFDZixJQUFJQyxjQUFjO1FBRWxCLElBQUlMLHdCQUF3QjtZQUMxQixTQUFTO1lBQ1QsSUFDRSxVQUFVQSwwQkFDVixZQUFZQSx3QkFDWjtnQkFDQUksVUFBVTtvQkFBQ0UsT0FBT047Z0JBQXNCO1lBQzFDLE9BRUssSUFDSCxXQUFXQSwwQkFDWCxTQUFTQSx3QkFDVDtnQkFDQUksVUFBVTtvQkFBQ0UsT0FBT047Z0JBQXNCO1lBQzFDLE9BRUssSUFBSSxVQUFVQSx3QkFBd0I7Z0JBQ3pDSSxVQUFVO29CQUNSRyxXQUFXO3dCQUFDUDtxQkFBdUI7b0JBQ25DTSxPQUFPTix1QkFBdUJRLFFBQVE7Z0JBQ3hDO1lBQ0YsT0FFSztnQkFDSEosVUFBVTtvQkFBQyxHQUFHSixzQkFBc0I7Z0JBQUE7WUFDdEM7UUFDRjtRQUVBLElBQUksT0FBT0Qsa0JBQWtCLFVBQVU7WUFDckNJLFNBQVNKO1FBQ1gsT0FFSyxJQUFJLENBQUNLLFFBQVFLLEtBQUssSUFBSVYsZUFBZTtZQUN4Q00sY0FBYztZQUNkRixTQUFTSixjQUFjVyxPQUFPO1lBQzlCTixRQUFRSyxL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QyxTQUFTLENBQUNMLEtBQUssR0FBRztBQUMvQjVCLGFBQWFpQyxTQUFTLENBQUNWLE1BQU0sR0FBR2pCO0FBQ2hDTixhQUFhaUMsU0FBUyxDQUFDUCxJQUFJLEdBQUdwQjtBQUM5Qk4sYUFBYWlDLFNBQVMsQ0FBQ3RCLFNBQVMsR0FBR0w7QUFDbkNOLGFBQWFpQyxTQUFTLENBQUNwQixLQUFLLEdBQUdQO0FBQy9CTixhQUFhaUMsU0FBUyxDQUFDVCxLQUFLLEdBQUdsQjtBQUMvQk4sYUFBYWlDLFNBQVMsQ0FBQ3ZCLEtBQUssR0FBR0o7QUFDL0JOLGFBQWFpQyxTQUFTLENBQUNsQixNQUFNLEdBQUdUO0FBQ2hDTixhQUFhaUMsU0FBUyxDQUFDakIsTUFBTSxHQUFHViIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlLW1lc3NhZ2UvbGliL2luZGV4LmpzPzc0MTUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdCAmIHt0eXBlOiBzdHJpbmcsIHBvc2l0aW9uPzogUG9zaXRpb24gfCB1bmRlZmluZWR9fSBOb2RlTGlrZVxuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8Tm9kZT4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYW5jZXN0b3JzXVxuICogICBTdGFjayBvZiAoaW5jbHVzaXZlKSBhbmNlc3RvciBub2RlcyBzdXJyb3VuZGluZyB0aGUgbWVzc2FnZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtFcnJvciB8IG51bGwgfCB1bmRlZmluZWR9IFtjYXVzZV1cbiAqICAgT3JpZ2luYWwgZXJyb3IgY2F1c2Ugb2YgdGhlIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IFtwbGFjZV1cbiAqICAgUGxhY2Ugb2YgbWVzc2FnZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbcnVsZUlkXVxuICogICBDYXRlZ29yeSBvZiBtZXNzYWdlIChvcHRpb25hbCwgZXhhbXBsZTogYCdteS1ydWxlJ2ApLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbc291cmNlXVxuICogICBOYW1lc3BhY2Ugb2Ygd2hvIHNlbnQgdGhlIG1lc3NhZ2UgKG9wdGlvbmFsLCBleGFtcGxlOiBgJ215LXBhY2thZ2UnYCkuXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlQb3NpdGlvbn0gZnJvbSAndW5pc3QtdXRpbC1zdHJpbmdpZnktcG9zaXRpb24nXG5cbi8qKlxuICogTWVzc2FnZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZGaWxlTWVzc2FnZSBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG1lc3NhZ2UgZm9yIGByZWFzb25gLlxuICAgKlxuICAgKiA+IPCfqqYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluc3RhbmNlIG9mIGBWRmlsZU1lc3NhZ2VgLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3RydWN0b3IoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zT3JQYXJlbnRPclBsYWNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3JpZ2luID0gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCByZWFzb24gPSAnJ1xuICAgIC8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbiAgICBsZXQgb3B0aW9ucyA9IHt9XG4gICAgbGV0IGxlZ2FjeUNhdXNlID0gZmFsc2VcblxuICAgIGlmIChvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAvLyBQb2ludC5cbiAgICAgIGlmIChcbiAgICAgICAgJ2xpbmUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2NvbHVtbicgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBQb3NpdGlvbi5cbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICAnc3RhcnQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2VuZCcgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBOb2RlLlxuICAgICAgZWxzZSBpZiAoJ3R5cGUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UpIHtcbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICBhbmNlc3RvcnM6IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXSxcbiAgICAgICAgICBwbGFjZTogb3B0aW9uc09yUGFyZW50T3JQbGFjZS5wb3NpdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBPcHRpb25zLlxuICAgICAgZWxzZSB7XG4gICAgICAgIG9wdGlvbnMgPSB7Li4ub3B0aW9uc09yUGFyZW50T3JQbGFjZX1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNhdXNlT3JSZWFzb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZWFzb24gPSBjYXVzZU9yUmVhc29uXG4gICAgfVxuICAgIC8vIEVycm9yLlxuICAgIGVsc2UgaWYgKCFvcHRpb25zLmNhdXNlICYmIGNhdXNlT3JSZWFzb24pIHtcbiAgICAgIGxlZ2FjeUNhdXNlID0gdHJ1ZVxuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvbi5tZXNzYWdlXG4gICAgICBvcHRpb25zLmNhdXNlID0gY2F1c2VPclJlYXNvblxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5ydWxlSWQgJiYgIW9wdGlvbnMuc291cmNlICYmIHR5cGVvZiBvcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBpbmRleCA9IG9yaWdpbi5pbmRleE9mKCc6JylcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3B0aW9ucy5zb3VyY2UgPSBvcmlnaW4uc2xpY2UoMCwgaW5kZXgpXG4gICAgICAgIG9wdGlvbnMucnVsZUlkID0gb3JpZ2luLnNsaWNlKGluZGV4ICsgMSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucGxhY2UgJiYgb3B0aW9ucy5hbmNlc3RvcnMgJiYgb3B0aW9ucy5hbmNlc3RvcnMpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IG9wdGlvbnMuYW5jZXN0b3JzW29wdGlvbnMuYW5jZXN0b3JzLmxlbmd0aCAtIDFdXG5cbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgb3B0aW9ucy5wbGFjZSA9IHBhcmVudC5wb3NpdGlvblxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0ID1cbiAgICAgIG9wdGlvbnMucGxhY2UgJiYgJ3N0YXJ0JyBpbiBvcHRpb25zLnBsYWNlXG4gICAgICAgID8gb3B0aW9ucy5wbGFjZS5zdGFydFxuICAgICAgICA6IG9wdGlvbnMucGxhY2VcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PE5vZGU+IHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuYW5jZXN0b3JzID0gb3B0aW9ucy5hbmNlc3RvcnMgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtFcnJvciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNhdXNlID0gb3B0aW9ucy5jYXVzZSB8fCB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFN0YXJ0aW5nIGNvbHVtbiBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNvbHVtbiA9IHN0YXJ0ID8gc3RhcnQuY29sdW1uIDogdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGF0ZSBvZiBwcm9ibGVtLlxuICAgICAqXG4gICAgICogKiBgdHJ1ZWAg4oCUIGVycm9yLCBmaWxlIG5vdCB1c2FibGVcbiAgICAgKiAqIGBmYWxzZWAg4oCUIHdhcm5pbmcsIGNoYW5nZSBtYXkgYmUgbmVlZGVkXG4gICAgICogKiBgdW5kZWZpbmVkYCDigJQgY2hhbmdlIGxpa2VseSBub3QgbmVlZGVkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUGF0aCBvZiBhIGZpbGUgKHVzZWQgdGhyb3VnaG91dCB0aGUgYFZGaWxlYCBlY29zeXN0ZW0pLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmZpbGVcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZSA9IHJlYXNvblxuXG4gICAgLyoqXG4gICAgICogU3RhcnRpbmcgbGluZSBvZiBlcnJvci5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5saW5lID0gc3RhcnQgPyBzdGFydC5saW5lIDogdW5kZWZpbmVkXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplZCBwb3NpdGlvbmFsIGluZm8gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIE9uIG5vcm1hbCBlcnJvcnMsIHRoaXMgd291bGQgYmUgc29tZXRoaW5nIGxpa2UgYFBhcnNlRXJyb3JgLCBidWl0IGluXG4gICAgICogYFZGaWxlYCBtZXNzYWdlcyB3ZSB1c2UgdGhpcyBzcGFjZSB0byBzaG93IHdoZXJlIGFuIGVycm9yIGhhcHBlbmVkLlxuICAgICAqL1xuICAgIHRoaXMubmFtZSA9IHN0cmluZ2lmeVBvc2l0aW9uKG9wdGlvbnMucGxhY2UpIHx8ICcxOjEnXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge1BvaW50IHwgUG9zaXRpb24gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5wbGFjZSA9IG9wdGlvbnMucGxhY2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMucmVhc29uID0gdGhpcy5tZXNzYWdlXG5cbiAgICAvKipcbiAgICAgKiBDYXRlZ29yeSBvZiBtZXNzYWdlIChleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucnVsZUlkID0gb3B0aW9ucy5ydWxlSWQgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBOYW1lc3BhY2Ugb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnNvdXJjZSA9IG9wdGlvbnMuc291cmNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgbm9ybWFsIGVycm9ycyB0byBzaG93IHdoZXJlIHNvbWV0aGluZyBoYXBwZW5lZCBpblxuICAgICAqIHByb2dyYW1taW5nIGNvZGUsIGlycmVsZXZhbnQgZm9yIGBWRmlsZWAgbWVzc2FnZXMsXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuc3RhY2sgPVxuICAgICAgbGVnYWN5Q2F1c2UgJiYgb3B0aW9ucy5jYXVzZSAmJiB0eXBlb2Ygb3B0aW9ucy5jYXVzZS5zdGFjayA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBvcHRpb25zLmNhdXNlLnN0YWNrXG4gICAgICAgIDogJydcblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSDigJx3ZWxsIGtub3du4oCdLlxuICAgIC8vIE5vdCBzdGFuZGFyZC5cbiAgICAvLyBGZWVsIGZyZWUgdG8gYWRkIG90aGVyIG5vbi1zdGFuZGFyZCBmaWVsZHMgdG8geW91ciBtZXNzYWdlcy5cblxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGhlIHNvdXJjZSB2YWx1ZSB0aGF04oCZcyBiZWluZyByZXBvcnRlZCwgd2hpY2ggaXMgZGVlbWVkXG4gICAgICogaW5jb3JyZWN0LlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFjdHVhbFxuXG4gICAgLyoqXG4gICAgICogU3VnZ2VzdCBhY2NlcHRhYmxlIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYGFjdHVhbGAuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmV4cGVjdGVkXG5cbiAgICAvKipcbiAgICAgKiBMb25nIGZvcm0gZGVzY3JpcHRpb24gb2YgdGhlIG1lc3NhZ2UgKHlvdSBzaG91bGQgdXNlIG1hcmtkb3duKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5ub3RlXG5cbiAgICAvKipcbiAgICAgKiBMaW5rIHRvIGRvY3MgZm9yIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogPiDwn5GJICoqTm90ZSoqOiB0aGlzIG11c3QgYmUgYW4gYWJzb2x1dGUgVVJMIHRoYXQgY2FuIGJlIHBhc3NlZCBhcyBgeGBcbiAgICAgKiA+IHRvIGBuZXcgVVJMKHgpYC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy51cmxcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICB9XG59XG5cblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmlsZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm5hbWUgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5yZWFzb24gPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5tZXNzYWdlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc3RhY2sgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jb2x1bW4gPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubGluZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5hbmNlc3RvcnMgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuY2F1c2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmF0YWwgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucGxhY2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucnVsZUlkID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnNvdXJjZSA9IHVuZGVmaW5lZFxuIl0sIm5hbWVzIjpbInN0cmluZ2lmeVBvc2l0aW9uIiwiVkZpbGVNZXNzYWdlIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImNhdXNlT3JSZWFzb24iLCJvcHRpb25zT3JQYXJlbnRPclBsYWNlIiwib3JpZ2luIiwidW5kZWZpbmVkIiwicmVhc29uIiwib3B0aW9ucyIsImxlZ2FjeUNhdXNlIiwicGxhY2UiLCJhbmNlc3RvcnMiLCJwb3NpdGlvbiIsImNhdXNlIiwibWVzc2FnZSIsInJ1bGVJZCIsInNvdXJjZSIsImluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwicGFyZW50IiwibGVuZ3RoIiwic3RhcnQiLCJjb2x1bW4iLCJmYXRhbCIsImZpbGUiLCJsaW5lIiwibmFtZSIsInN0YWNrIiwiYWN0dWFsIiwiZXhwZWN0ZWQiLCJub3RlIiwidXJsIiwicHJvdG90eXBlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/vfile-message/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/vfile/lib/index.js":
-/*!*********************************************!*\
- !*** ../../node_modules/vfile/lib/index.js ***!
- \*********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VFile: () => (/* binding */ VFile)\n/* harmony export */ });\n/* harmony import */ var vfile_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vfile-message */ \"(ssr)/../../node_modules/vfile-message/lib/index.js\");\n/* harmony import */ var vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vfile/do-not-use-conditional-minpath */ \"(ssr)/../../node_modules/vfile/lib/minpath.browser.js\");\n/* harmony import */ var vfile_do_not_use_conditional_minproc__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vfile/do-not-use-conditional-minproc */ \"(ssr)/../../node_modules/vfile/lib/minproc.browser.js\");\n/* harmony import */ var vfile_do_not_use_conditional_minurl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vfile/do-not-use-conditional-minurl */ \"(ssr)/../../node_modules/vfile/lib/minurl.shared.js\");\n/* harmony import */ var vfile_do_not_use_conditional_minurl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vfile/do-not-use-conditional-minurl */ \"(ssr)/../../node_modules/vfile/lib/minurl.browser.js\");\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */ /**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array<string> | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * <https://github.com/mozilla/source-map/blob/60adcb0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n * An array of URLs to the original source files.\n * @property {Array<string>} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record<string, unknown> & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * Configuration for reporters.\n */ /**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array<VFile>} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */ \n\n\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */ const order = /** @type {const} */ [\n \"history\",\n \"path\",\n \"basename\",\n \"stem\",\n \"extname\",\n \"dirname\"\n];\nclass VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */ constructor(value){\n /** @type {Options | VFile} */ let options;\n if (!value) {\n options = {};\n } else if ((0,vfile_do_not_use_conditional_minurl__WEBPACK_IMPORTED_MODULE_0__.isUrl)(value)) {\n options = {\n path: value\n };\n } else if (typeof value === \"string\" || isUint8Array(value)) {\n options = {\n value\n };\n } else {\n options = value;\n }\n /* eslint-disable no-unused-expressions */ /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */ this.cwd = vfile_do_not_use_conditional_minproc__WEBPACK_IMPORTED_MODULE_1__.proc.cwd();\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */ this.data = {};\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */ this.history = [];\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */ this.messages = [];\n /**\n * Raw value.\n *\n * @type {Value}\n */ this.value;\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */ this.map;\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */ this.result;\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */ this.stored;\n /* eslint-enable no-unused-expressions */ // Set path related properties in the correct order.\n let index = -1;\n while(++index < order.length){\n const prop = order[index];\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined && options[prop] !== null) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === \"history\" ? [\n ...options[prop]\n ] : options[prop];\n }\n }\n /** @type {string} */ let prop;\n // Set non-path related properties.\n for(prop in options){\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop];\n }\n }\n }\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */ get basename() {\n return typeof this.path === \"string\" ? vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.basename(this.path) : undefined;\n }\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */ set basename(basename) {\n assertNonEmpty(basename, \"basename\");\n assertPart(basename, \"basename\");\n this.path = vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.join(this.dirname || \"\", basename);\n }\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */ get dirname() {\n return typeof this.path === \"string\" ? vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.dirname(this.path) : undefined;\n }\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */ set dirname(dirname) {\n assertPath(this.basename, \"dirname\");\n this.path = vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.join(dirname || \"\", this.basename);\n }\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */ get extname() {\n return typeof this.path === \"string\" ? vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.extname(this.path) : undefined;\n }\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */ set extname(extname) {\n assertPart(extname, \"extname\");\n assertPath(this.dirname, \"extname\");\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */ ) {\n throw new Error(\"`extname` must start with `.`\");\n }\n if (extname.includes(\".\", 1)) {\n throw new Error(\"`extname` cannot contain multiple dots\");\n }\n }\n this.path = vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.join(this.dirname, this.stem + (extname || \"\"));\n }\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */ get path() {\n return this.history[this.history.length - 1];\n }\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */ set path(path) {\n if ((0,vfile_do_not_use_conditional_minurl__WEBPACK_IMPORTED_MODULE_0__.isUrl)(path)) {\n path = (0,vfile_do_not_use_conditional_minurl__WEBPACK_IMPORTED_MODULE_3__.urlToPath)(path);\n }\n assertNonEmpty(path, \"path\");\n if (this.path !== path) {\n this.history.push(path);\n }\n }\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */ get stem() {\n return typeof this.path === \"string\" ? vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.basename(this.path, this.extname) : undefined;\n }\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */ set stem(stem) {\n assertNonEmpty(stem, \"stem\");\n assertPart(stem, \"stem\");\n this.path = vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.join(this.dirname || \"\", stem + (this.extname || \"\"));\n }\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */ fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin);\n message.fatal = true;\n throw message;\n }\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */ info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin);\n message.fatal = undefined;\n return message;\n }\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */ message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new vfile_message__WEBPACK_IMPORTED_MODULE_4__.VFileMessage(// @ts-expect-error: the overloads are fine.\n causeOrReason, optionsOrParentOrPlace, origin);\n if (this.path) {\n message.name = this.path + \":\" + message.name;\n message.file = this.path;\n }\n message.fatal = false;\n this.messages.push(message);\n return message;\n }\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */ toString(encoding) {\n if (this.value === undefined) {\n return \"\";\n }\n if (typeof this.value === \"string\") {\n return this.value;\n }\n const decoder = new TextDecoder(encoding || undefined);\n return decoder.decode(this.value);\n }\n}\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */ function assertPart(part, name) {\n if (part && part.includes(vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.sep)) {\n throw new Error(\"`\" + name + \"` cannot be a path: did not expect `\" + vfile_do_not_use_conditional_minpath__WEBPACK_IMPORTED_MODULE_2__.path.sep + \"`\");\n }\n}\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */ function assertNonEmpty(part, name) {\n if (!part) {\n throw new Error(\"`\" + name + \"` cannot be empty\");\n }\n}\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */ function assertPath(path, name) {\n if (!path) {\n throw new Error(\"Setting `\" + name + \"` requires `path` to be set too\");\n }\n}\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */ function isUint8Array(value) {\n return Boolean(value && typeof value === \"object\" && \"byteLength\" in value && \"byteOffset\" in value);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7Ozs7OztDQU9DLEdBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNEQyxHQUVEOzs7Ozs7Ozs7OztDQVdDLEdBRXlDO0FBQ2U7QUFDQTtBQUNXO0FBRXBFOzs7O0NBSUMsR0FDRCxNQUFNSyxRQUFRLGtCQUFrQixHQUFJO0lBQ2xDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTUM7SUFDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJDLEdBQ0RDLFlBQVlDLEtBQUssQ0FBRTtRQUNqQiw0QkFBNEIsR0FDNUIsSUFBSUM7UUFFSixJQUFJLENBQUNELE9BQU87WUFDVkMsVUFBVSxDQUFDO1FBQ2IsT0FBTyxJQUFJTCwwRUFBS0EsQ0FBQ0ksUUFBUTtZQUN2QkMsVUFBVTtnQkFBQ1IsTUFBTU87WUFBSztRQUN4QixPQUFPLElBQUksT0FBT0EsVUFBVSxZQUFZRSxhQUFhRixRQUFRO1lBQzNEQyxVQUFVO2dCQUFDRDtZQUFLO1FBQ2xCLE9BQU87WUFDTEMsVUFBVUQ7UUFDWjtRQUVBLHdDQUF3QyxHQUV4Qzs7OztLQUlDLEdBQ0QsSUFBSSxDQUFDRyxHQUFHLEdBQUdULHNFQUFJQSxDQUFDUyxHQUFHO1FBRW5COzs7Ozs7O0tBT0MsR0FDRCxJQUFJLENBQUNDLElBQUksR0FBRyxDQUFDO1FBRWI7Ozs7OztLQU1DLEdBQ0QsSUFBSSxDQUFDQyxPQUFPLEdBQUcsRUFBRTtRQUVqQjs7OztLQUlDLEdBQ0QsSUFBSSxDQUFDQyxRQUFRLEdBQUcsRUFBRTtRQUVsQjs7OztLQUlDLEdBQ0QsSUFBSSxDQUFDTixLQUFLO1FBRVYscURBQXFEO1FBQ3JELGdDQUFnQztRQUNoQzs7Ozs7OztLQU9DLEdBQ0QsSUFBSSxDQUFDTyxHQUFHO1FBRVI7Ozs7Ozs7S0FPQyxHQUNE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LE1BQU1VLE9BQU8seUNBQXlDeEMsc0VBQUlBLENBQUNnRCxHQUFHLEdBQUc7SUFFckU7QUFDRjtBQUVBOzs7Ozs7Ozs7Q0FTQyxHQUNELFNBQVN6QixlQUFld0IsSUFBSSxFQUFFUCxJQUFJO0lBQ2hDLElBQUksQ0FBQ08sTUFBTTtRQUNULE1BQU0sSUFBSWpCLE1BQU0sTUFBTVUsT0FBTztJQUMvQjtBQUNGO0FBRUE7Ozs7Ozs7OztDQVNDLEdBQ0QsU0FBU2IsV0FBVzNCLElBQUksRUFBRXdDLElBQUk7SUFDNUIsSUFBSSxDQUFDeEMsTUFBTTtRQUNULE1BQU0sSUFBSThCLE1BQU0sY0FBY1UsT0FBTztJQUN2QztBQUNGO0FBRUE7Ozs7Ozs7Q0FPQyxHQUNELFNBQVMvQixhQUFhRixLQUFLO0lBQ3pCLE9BQU8wQyxRQUNMMUMsU0FDRSxPQUFPQSxVQUFVLFlBQ2pCLGdCQUFnQkEsU0FDaEIsZ0JBQWdCQTtBQUV0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcz9iMTM3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlLW1lc3NhZ2UnKS5PcHRpb25zfSBNZXNzYWdlT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5EYXRhfSBEYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlZhbHVlfSBWYWx1ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdCAmIHt0eXBlOiBzdHJpbmcsIHBvc2l0aW9uPzogUG9zaXRpb24gfCB1bmRlZmluZWR9fSBOb2RlTGlrZVxuICpcbiAqIEB0eXBlZGVmIHtPcHRpb25zIHwgVVJMIHwgVkZpbGUgfCBWYWx1ZX0gQ29tcGF0aWJsZVxuICogICBUaGluZ3MgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAdHlwZWRlZiBWRmlsZUNvcmVPcHRpb25zXG4gKiAgIFNldCBtdWx0aXBsZSB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtiYXNlbmFtZV1cbiAqICAgU2V0IGBiYXNlbmFtZWAgKG5hbWUpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbY3dkXVxuICogICBTZXQgYGN3ZGAgKHdvcmtpbmcgZGlyZWN0b3J5KS5cbiAqIEBwcm9wZXJ0eSB7RGF0YSB8IG51bGwgfCB1bmRlZmluZWR9IFtkYXRhXVxuICogICBTZXQgYGRhdGFgIChhc3NvY2lhdGVkIGluZm8pLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGlybmFtZV1cbiAqICAgU2V0IGBkaXJuYW1lYCAocGF0aCB3L28gYmFzZW5hbWUpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZXh0bmFtZV1cbiAqICAgU2V0IGBleHRuYW1lYCAoZXh0ZW5zaW9uIHdpdGggZG90KS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IG51bGwgfCB1bmRlZmluZWR9IFtoaXN0b3J5XVxuICogICBTZXQgYGhpc3RvcnlgIChwYXRocyB0aGUgZmlsZSBtb3ZlZCBiZXR3ZWVuKS5cbiAqIEBwcm9wZXJ0eSB7VVJMIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BhdGhdXG4gKiAgIFNldCBgcGF0aGAgKGN1cnJlbnQgcGF0aCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzdGVtXVxuICogICBTZXQgYHN0ZW1gIChuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uKS5cbiAqIEBwcm9wZXJ0eSB7VmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiAgIFNldCBgdmFsdWVgICh0aGUgY29udGVudHMgb2YgdGhlIGZpbGUpLlxuICpcbiAqIEB0eXBlZGVmIE1hcFxuICogICBSYXcgc291cmNlIG1hcC5cbiAqXG4gKiAgIFNlZTpcbiAqICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3NvdXJjZS1tYXAvYmxvYi82MGFkY2IwL3NvdXJjZS1tYXAuZC50cyNMMTUtTDIzPi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2ZXJzaW9uXG4gKiAgIFdoaWNoIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXAgc3BlYyB0aGlzIG1hcCBpcyBmb2xsb3dpbmcuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IHNvdXJjZXNcbiAqICAgQW4gYXJyYXkgb2YgVVJMcyB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+fSBuYW1lc1xuICogICBBbiBhcnJheSBvZiBpZGVudGlmaWVycyB3aGljaCBjYW4gYmUgcmVmZXJlbmNlZCBieSBpbmRpdmlkdWFsIG1hcHBpbmdzLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCB1bmRlZmluZWR9IFtzb3VyY2VSb290XVxuICogICBUaGUgVVJMIHJvb3QgZnJvbSB3aGljaCBhbGwgc291cmNlcyBhcmUgcmVsYXRpdmUuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9IFtzb3VyY2VzQ29udGVudF1cbiAqICAgQW4gYXJyYXkgb2YgY29udGVudHMgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBtYXBwaW5nc1xuICogICBBIHN0cmluZyBvZiBiYXNlNjQgVkxRcyB3aGljaCBjb250YWluIHRoZSBhY3R1YWwgbWFwcGluZ3MuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZmlsZVxuICogICBUaGUgZ2VuZXJhdGVkIGZpbGUgdGhpcyBzb3VyY2UgbWFwIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiBWRmlsZUNvcmVPcHRpb25zfSBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKlxuICogICBBIGJ1bmNoIG9mIGtleXMgdGhhdCB3aWxsIGJlIHNoYWxsb3cgY29waWVkIG92ZXIgdG8gdGhlIG5ldyBmaWxlLlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gUmVwb3J0ZXJTZXR0aW5nc1xuICogICBDb25maWd1cmF0aW9uIGZvciByZXBvcnRlcnMuXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgW1NldHRpbmdzPVJlcG9ydGVyU2V0dGluZ3NdXG4gKiAgIE9wdGlvbnMgdHlwZS5cbiAqIEBjYWxsYmFjayBSZXBvcnRlclxuICogICBUeXBlIGZvciBhIHJlcG9ydGVyLlxuICogQHBhcmFtIHtBcnJheTxWRmlsZT59IGZpbGVzXG4gKiAgIEZpbGVzIHRvIHJlcG9ydC5cbiAqIEBwYXJhbSB7U2V0dGluZ3N9IG9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFJlcG9ydC5cbiAqL1xuXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7cGF0aH0gZnJvbSAndmZpbGUvZG8tbm90LXVzZS1jb25kaXRpb25hbC1taW5wYXRoJ1xuaW1wb3J0IHtwcm9jfSBmcm9tICd2ZmlsZS9kby1ub3QtdXNlLWNvbmRpdGlvbmFsLW1pbnByb2MnXG5pbXBvcnQge3VybFRvUGF0aCwgaXNVcmx9IGZyb20gJ3ZmaWxlL2RvLW5vdC11c2UtY29uZGl0aW9uYWwtbWludXJsJ1xuXG4vKipcbiAqIE9yZGVyIG9mIHNldHRpbmcgKGxlYXN0IHNwZWNpZmljIHRvIG1vc3QpLCB3ZSBuZWVkIHRoaXMgYmVjYXVzZSBvdGhlcndpc2VcbiAqIGB7c3RlbTogJ2EnLCBwYXRoOiAnfi9iLmpzJ31gIHdvdWxkIHRocm93LCBhcyBhIHBhdGggaXMgbmVlZGVkIGJlZm9yZSBhXG4gKiBzdGVtIGNhbiBiZSBzZXQuXG4gKi9cbmNvbnN0IG9yZGVyID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKFtcbiAgJ2hpc3RvcnknLFxuICAncGF0aCcsXG4gICdiYXNlbmFtZScsXG4gICdzdGVtJyxcbiAgJ2V4dG5hbWUnLFxuICAnZGlybmFtZSdcbl0pXG5cbmV4cG9ydCBjbGFzcyBWRmlsZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdmlydHVhbCBmaWxlLlxuICAgKlxuICAgKiBgb3B0aW9uc2AgaXMgdHJlYXRlZCBhczpcbiAgICpcbiAgICogKiAgIGBzdHJpbmdgIG9yIGBVaW50OEFycmF5YCDigJQgYHt2YWx1ZTogb3B0aW9uc31gXG4gICAqICogICBgVVJMYCDigJQgYHtwYXRoOiBvcHRpb25zfWBcbiAgICogKiAgIGBWRmlsZWAg4oCUIHNoYWxsb3cgY29waWVzIGl0cyBkYXRhIG92ZXIgdG8gdGhlIG5ldyBmaWxlXG4gICAqICogICBgb2JqZWN0YCDigJQgYWxsIGZpZWxkcyBhcmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICpcbiAgICogUGF0aCByZWxhdGVkIGZpZWxkcyBhcmUgc2V0IGluIHRoZSBmb2xsb3dpbmcgb3JkZXIgKGxlYXN0IHNwZWNpZmljIHRvXG4gICAqIG1vc3Qgc3BlY2lmaWMpOiBgaGlzdG9yeWAsIGBwYXRoYCwgYGJhc2VuYW1lYCwgYHN0ZW1gLCBgZXh0bmFtZWAsXG4gICAqIGBkaXJuYW1lYC5cbiAgICpcbiAgICogWW91IGNhbm5vdCBzZXQgYGRpcm5hbWVgIG9yIGBleHRuYW1lYCB3aXRob3V0IHNldHRpbmcgZWl0aGVyIGBoaXN0b3J5YCxcbiAgICogYHBhdGhgLCBgYmFzZW5hbWVgLCBvciBgc3RlbWAgdG9vLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gICAqICAgRmlsZSB2YWx1ZS5cbiAgICogQHJldHVybnNcbiAgICogICBOZXcgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIC8qKiBAdHlwZSB7T3B0aW9ucyB8IFZGaWxlfSAqL1xuICAgIGxldCBvcHRpb25zXG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICBvcHRpb25zID0ge31cbiAgICB9IGVsc2UgaWYgKGlzVXJsKHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHtwYXRoOiB2YWx1ZX1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgaXNVaW50OEFycmF5KHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHt2YWx1ZX1cbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHZhbHVlXG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG5cbiAgICAvKipcbiAgICAgKiBCYXNlIG9mIGBwYXRoYCAoZGVmYXVsdDogYHByb2Nlc3MuY3dkKClgIG9yIGAnLydgIGluIGJyb3dzZXJzKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5jd2QgPSBwcm9jLmN3ZCgpXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSB0byBzdG9yZSBjdXN0b20gaW5mbyAoZGVmYXVsdDogYHt9YCkuXG4gICAgICpcbiAgICAgKiBJdOKAmXMgT0sgdG8gc3RvcmUgY3VzdG9tIGRhdGEgZGlyZWN0bHkgb24gdGhlIGZpbGUgYnV0IG1vdmluZyBpdCB0b1xuICAgICAqIGBkYXRhYCBpcyByZWNvbW1lbmRlZC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtEYXRhfVxuICAgICAqL1xuICAgIHRoaXMuZGF0YSA9IHt9XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGZpbGUgcGF0aHMgdGhlIGZpbGUgbW92ZWQgYmV0d2Vlbi5cbiAgICAgKlxuICAgICAqIFRoZSBmaXJzdCBpcyB0aGUgb3JpZ2luYWwgcGF0aCBhbmQgdGhlIGxhc3QgaXMgdGhlIGN1cnJlbnQgcGF0aC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICAgICAqL1xuICAgIHRoaXMuaGlzdG9yeSA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIG1lc3NhZ2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxWRmlsZU1lc3NhZ2U+fVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZXMgPSBbXVxuXG4gICAgLyoqXG4gICAgICogUmF3IHZhbHVlLlxuICAgICAqXG4gICAgICogQHR5cGUge1ZhbHVlfVxuICAgICAqL1xuICAgIHRoaXMudmFsdWVcblxuICAgIC8vIFRoZSBiZWxvdyBhcmUgbm9uLXN0YW5kYXJkLCB0aGV5IGFyZSDigJx3ZWxsLWtub3du4oCdLlxuICAgIC8vIEFzIGluLCB1c2VkIGluIHNldmVyYWwgdG9vbHMuXG4gICAgLyoqXG4gICAgICogU291cmNlIG1hcC5cbiAgICAgKlxuICAgICAqIFRoaXMgdHlwZSBpcyBlcXVpdmFsZW50IHRvIHRoZSBgUmF3U291cmNlTWFwYCB0eXBlIGZyb20gdGhlIGBzb3VyY2UtbWFwYFxuICAgICAqIG1vZHVsZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtNYXAgfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubWFwXG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20sIG5vbi1zdHJpbmcsIGNvbXBpbGVkLCByZXByZXNlbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZCBieSB1bmlmaWVkIHRvIHN0b3JlIG5vbi1zdHJpbmcgcmVzdWx0cy5cbiAgICAgKiBPbmUgZXhhbXBsZSBpcyB3aGVuIHR1cm5pbmcgbWFya2Rvd24gaW50byBSZWFjdCBub2Rlcy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHt1bmtub3dufVxuICAgICAqL1xuICAgIHRoaXMucmVzdWx0XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGEgZmlsZSB3YXMgc2F2ZWQgdG8gZGlzay5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZCBieSB2ZmlsZSByZXBvcnRlcnMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLnN0b3JlZFxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG5cbiAgICAvLyBTZXQgcGF0aCByZWxhdGVkIHByb3BlcnRpZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuXG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgb3JkZXIubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwcm9wID0gb3JkZXJbaW5kZXhdXG5cbiAgICAgIC8vIE5vdGU6IHdlIHNwZWNpZmljYWxseSB1c2UgYGluYCBpbnN0ZWFkIG9mIGBoYXNPd25Qcm9wZXJ0eWAgdG8gYWNjZXB0XG4gICAgICAvLyBgdmZpbGVgcyB0b28uXG4gICAgICBpZiAoXG4gICAgICAgIHByb3AgaW4gb3B0aW9ucyAmJlxuICAgICAgICBvcHRpb25zW3Byb3BdICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgb3B0aW9uc1twcm9wXSAhPT0gbnVsbFxuICAgICAgKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFRTIGRvZXNu4oCZdCB1bmRlcnN0YW5kIGJhc2ljIHJlYWxpdHkuXG4gICAgICAgIHRoaXNbcHJvcF0gPSBwcm9wID09PSAnaGlzdG9yeScgPyBbLi4ub3B0aW9uc1twcm9wXV0gOiBvcHRpb25zW3Byb3BdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHByb3BcblxuICAgIC8vIFNldCBub24tcGF0aCByZWxhdGVkIHByb3BlcnRpZXMuXG4gICAgZm9yIChwcm9wIGluIG9wdGlvbnMpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGZpbmUgdG8gc2V0IG90aGVyIHRoaW5ncy5cbiAgICAgIGlmICghb3JkZXIuaW5jbHVkZXMocHJvcCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgICB0aGlzW3Byb3BdID0gb3B0aW9uc1twcm9wXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2VuYW1lIChpbmNsdWRpbmcgZXh0bmFtZSkgKGV4YW1wbGU6IGAnaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiAgIEJhc2VuYW1lLlxuICAgKi9cbiAgZ2V0IGJhc2VuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguYmFzZW5hbWUodGhpcy5wYXRoKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBiYXNlbmFtZSAoaW5jbHVkaW5nIGV4dG5hbWUpIChgJ2luZGV4Lm1pbi5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJhc2VuYW1lXG4gICAqICAgQmFzZW5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBiYXNlbmFtZShiYXNlbmFtZSkge1xuICAgIGFzc2VydE5vbkVtcHR5KGJhc2VuYW1lLCAnYmFzZW5hbWUnKVxuICAgIGFzc2VydFBhcnQoYmFzZW5hbWUsICdiYXNlbmFtZScpXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSB8fCAnJywgYmFzZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwYXJlbnQgcGF0aCAoZXhhbXBsZTogYCd+J2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiAgIERpcm5hbWUuXG4gICAqL1xuICBnZXQgZGlybmFtZSgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoLmRpcm5hbWUodGhpcy5wYXRoKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcGFyZW50IHBhdGggKGV4YW1wbGU6IGAnfidgKS5cbiAgICpcbiAgICogQ2Fubm90IGJlIHNldCBpZiB0aGVyZeKAmXMgbm8gYHBhdGhgIHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGRpcm5hbWVcbiAgICogICBEaXJuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgZGlybmFtZShkaXJuYW1lKSB7XG4gICAgYXNzZXJ0UGF0aCh0aGlzLmJhc2VuYW1lLCAnZGlybmFtZScpXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKGRpcm5hbWUgfHwgJycsIHRoaXMuYmFzZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBleHRuYW1lIChpbmNsdWRpbmcgZG90KSAoZXhhbXBsZTogYCcuanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRXh0bmFtZS5cbiAgICovXG4gIGdldCBleHRuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguZXh0bmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBleHRuYW1lIChpbmNsdWRpbmcgZG90KSAoZXhhbXBsZTogYCcuanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgc2V0IGlmIHRoZXJl4oCZcyBubyBgcGF0aGAgeWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gZXh0bmFtZVxuICAgKiAgIEV4dG5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBleHRuYW1lKGV4dG5hbWUpIHtcbiAgICBhc3NlcnRQYXJ0KGV4dG5hbWUsICdleHRuYW1lJylcbiAgICBhc3NlcnRQYXRoKHRoaXMuZGlybmFtZSwgJ2V4dG5hbWUnKVxuXG4gICAgaWYgKGV4dG5hbWUpIHtcbiAgICAgIGlmIChleHRuYW1lLmNvZGVQb2ludEF0KDApICE9PSA0NiAvKiBgLmAgKi8pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZXh0bmFtZWAgbXVzdCBzdGFydCB3aXRoIGAuYCcpXG4gICAgICB9XG5cbiAgICAgIGlmIChleHRuYW1lLmluY2x1ZGVzKCcuJywgMSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cycpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgdGhpcy5zdGVtICsgKGV4dG5hbWUgfHwgJycpKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCBwYXRoIChleGFtcGxlOiBgJ34vaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiAgIFBhdGguXG4gICAqL1xuICBnZXQgcGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGggLSAxXVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZnVsbCBwYXRoIChleGFtcGxlOiBgJ34vaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkLlxuICAgKiBZb3UgY2FuIHNldCBhIGZpbGUgVVJMIChhIGBVUkxgIG9iamVjdCB3aXRoIGEgYGZpbGU6YCBwcm90b2NvbCkgd2hpY2ggd2lsbFxuICAgKiBiZSB0dXJuZWQgaW50byBhIHBhdGggd2l0aCBgdXJsLmZpbGVVUkxUb1BhdGhgLlxuICAgKlxuICAgKiBAcGFyYW0ge1VSTCB8IHN0cmluZ30gcGF0aFxuICAgKiAgIFBhdGguXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBwYXRoKHBhdGgpIHtcbiAgICBpZiAoaXNVcmwocGF0aCkpIHtcbiAgICAgIHBhdGggPSB1cmxUb1BhdGgocGF0aClcbiAgICB9XG5cbiAgICBhc3NlcnROb25FbXB0eShwYXRoLCAncGF0aCcpXG5cbiAgICBpZiAodGhpcy5wYXRoICE9PSBwYXRoKSB7XG4gICAgICB0aGlzLmhpc3RvcnkucHVzaChwYXRoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0ZW0gKGJhc2VuYW1lIHcvbyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4nYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgU3RlbS5cbiAgICovXG4gIGdldCBzdGVtKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJ1xuICAgICAgPyBwYXRoLmJhc2VuYW1lKHRoaXMucGF0aCwgdGhpcy5leHRuYW1lKVxuICAgICAgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHN0ZW0gKGJhc2VuYW1lIHcvbyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4nYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkICh1c2UgYGZpbGUucGF0aCA9IGZpbGUuZGlybmFtZWAgaW5zdGVhZCkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGVtXG4gICAqICAgU3RlbS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHN0ZW0oc3RlbSkge1xuICAgIGFzc2VydE5vbkVtcHR5KHN0ZW0sICdzdGVtJylcbiAgICBhc3NlcnRQYXJ0KHN0ZW0sICdzdGVtJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lIHx8ICcnLCBzdGVtICsgKHRoaXMuZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvLyBOb3JtYWwgcHJvdG90eXBhbCBtZXRob2RzLlxuICAvKipcbiAgICogQ3JlYXRlIGEgZmF0YWwgbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHRydWVgIChlcnJvcjsgZmlsZSBub3QgdXNhYmxlKVxuICAgKiBhbmQgdGhlIGBmaWxlYCBmaWVsZCBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgZmlsZSBwYXRoLlxuICAgKiBUaGUgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgYG1lc3NhZ2VzYCBmaWVsZCBvbiBgZmlsZWAuXG4gICAqXG4gICAqID4g8J+qpiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2UgfCBzdHJpbmd9IGNhdXNlT3JSZWFzb25cbiAgICogICBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgTWVzc2FnZU9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqICAgTmV2ZXIuXG4gICAqIEB0aHJvd3Mge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgZmFpbChjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHRydWVcblxuICAgIHRocm93IG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW5mbyBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgdW5kZWZpbmVkYCAoaW5mbzsgY2hhbmdlXG4gICAqIGxpa2VseSBub3QgbmVlZGVkKSBhbmQgdGhlIGBmaWxlYCBmaWVsZCBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgZmlsZSBwYXRoLlxuICAgKiBUaGUgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgYG1lc3NhZ2VzYCBmaWVsZCBvbiBgZmlsZWAuXG4gICAqXG4gICAqID4g8J+qpiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgaW5mbyhjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgZmFsc2VgICh3YXJuaW5nOyBjaGFuZ2UgbWF5IGJlXG4gICAqIG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IPCfqqYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBNZXNzYWdlT3B0aW9ucyB8IFBvaW50IHwgUG9zaXRpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV1cbiAgICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogICBQbGFjZSBpbiBjb2RlIHdoZXJlIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZXMgKGV4YW1wbGU6XG4gICAqICAgYCdteS1wYWNrYWdlOm15LXJ1bGUnYCBvciBgJ215LXJ1bGUnYCkuXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIG1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBWRmlsZU1lc3NhZ2UoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgICAgY2F1c2VPclJlYXNvbixcbiAgICAgIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsXG4gICAgICBvcmlnaW5cbiAgICApXG5cbiAgICBpZiAodGhpcy5wYXRoKSB7XG4gICAgICBtZXNzYWdlLm5hbWUgPSB0aGlzLnBhdGggKyAnOicgKyBtZXNzYWdlLm5hbWVcbiAgICAgIG1lc3NhZ2UuZmlsZSA9IHRoaXMucGF0aFxuICAgIH1cblxuICAgIG1lc3NhZ2UuZmF0YWwgPSBmYWxzZVxuXG4gICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpXG5cbiAgICByZXR1cm4gbWVzc2FnZVxuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSB0aGUgZmlsZS5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogd2hpY2ggZW5jb2RpbmdzIGFyZSBzdXBwb3J0ZWQgZGVwZW5kcyBvbiB0aGUgZW5naW5lLlxuICAgKiA+IEZvciBpbmZvIG9uIE5vZGUuanMsIHNlZTpcbiAgICogPiA8aHR0cHM6Ly9ub2RlanMub3JnL2FwaS91dGlsLmh0bWwjd2hhdHdnLXN1cHBvcnRlZC1lbmNvZGluZ3M+LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmNvZGluZz0ndXRmOCddXG4gICAqICAgQ2hhcmFjdGVyIGVuY29kaW5nIHRvIHVuZGVyc3RhbmQgYHZhbHVlYCBhcyB3aGVuIGl04oCZcyBhIGBVaW50OEFycmF5YFxuICAgKiAgIChkZWZhdWx0OiBgJ3V0Zi04J2ApLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiAgIFNlcmlhbGl6ZWQgZmlsZS5cbiAgICovXG4gIHRvU3RyaW5nKGVuY29kaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWVcbiAgICB9XG5cbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGVuY29kaW5nIHx8IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUodGhpcy52YWx1ZSlcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IGBwYXJ0YCBpcyBub3QgYSBwYXRoIChhcyBpbiwgZG9lcyBub3QgY29udGFpbiBgcGF0aC5zZXBgKS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHBhcnRcbiAqICAgRmlsZSBwYXRoIHBhcnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBQYXJ0IG5hbWUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQYXJ0KHBhcnQsIG5hbWUpIHtcbiAgaWYgKHBhcnQgJiYgcGFydC5pbmNsdWRlcyhwYXRoLnNlcCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGEgcGF0aDogZGlkIG5vdCBleHBlY3QgYCcgKyBwYXRoLnNlcCArICdgJ1xuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IGBwYXJ0YCBpcyBub3QgZW1wdHkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHBhcnRcbiAqICAgVGhpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBQYXJ0IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXJ0IGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9uRW1wdHkocGFydCwgbmFtZSkge1xuICBpZiAoIXBhcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2AnICsgbmFtZSArICdgIGNhbm5vdCBiZSBlbXB0eScpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHBhdGhgIGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGF0aFxuICogICBQYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgRGVwZW5kZW5jeSBuYW1lLlxuICogQHJldHVybnMge2Fzc2VydHMgcGF0aCBpcyBzdHJpbmd9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhdGgocGF0aCwgbmFtZSkge1xuICBpZiAoIXBhdGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NldHRpbmcgYCcgKyBuYW1lICsgJ2AgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28nKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgdGhpbmcuXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgVWludDhBcnJheX1cbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIGFuIGBVaW50OEFycmF5YC5cbiAqL1xuZnVuY3Rpb24gaXNVaW50OEFycmF5KHZhbHVlKSB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIHZhbHVlICYmXG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAnYnl0ZUxlbmd0aCcgaW4gdmFsdWUgJiZcbiAgICAgICdieXRlT2Zmc2V0JyBpbiB2YWx1ZVxuICApXG59XG4iXSwibmFtZXMiOlsiVkZpbGVNZXNzYWdlIiwicGF0aCIsInByb2MiLCJ1cmxUb1BhdGgiLCJpc1VybCIsIm9yZGVyIiwiVkZpbGUiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwib3B0aW9ucyIsImlzVWludDhBcnJheSIsImN3ZCIsImRhdGEiLCJoaXN0b3J5IiwibWVzc2FnZXMiLCJtYXAiLCJyZXN1bHQiLCJzdG9yZWQiLCJpbmRleCIsImxlbmd0aCIsInByb3AiLCJ1bmRlZmluZWQiLCJpbmNsdWRlcyIsImJhc2VuYW1lIiwiYXNzZXJ0Tm9uRW1wdHkiLCJhc3NlcnRQYXJ0Iiwiam9pbiIsImRpcm5hbWUiLCJhc3NlcnRQYXRoIiwiZXh0bmFtZSIsImNvZGVQb2ludEF0IiwiRXJyb3IiLCJzdGVtIiwicHVzaCIsImZhaWwiLCJjYXVzZU9yUmVhc29uIiwib3B0aW9uc09yUGFyZW50T3JQbGFjZSIsIm9yaWdpbiIsIm1lc3NhZ2UiLCJmYXRhbCIsImluZm8iLCJuYW1lIiwiZmlsZSIsInRvU3RyaW5nIiwiZW5jb2RpbmciLCJkZWNvZGVyIiwiVGV4dERlY29kZXIiLCJkZWNvZGUiLCJwYXJ0Iiwic2VwIiwiQm9vbGVhbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/vfile/lib/index.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/vfile/lib/minpath.browser.js":
-/*!*******************************************************!*\
- !*** ../../node_modules/vfile/lib/minpath.browser.js ***!
- \*******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ path: () => (/* binding */ path)\n/* harmony export */ });\n// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nconst path = {\n basename,\n dirname,\n extname,\n join,\n sep: \"/\"\n};\n/* eslint-disable max-depth, complexity */ /**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */ function basename(path, ext) {\n if (ext !== undefined && typeof ext !== \"string\") {\n throw new TypeError('\"ext\" argument must be a string');\n }\n assertPath(path);\n let start = 0;\n let end = -1;\n let index = path.length;\n /** @type {boolean | undefined} */ let seenNonSlash;\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while(index--){\n if (path.codePointAt(index) === 47 /* `/` */ ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1;\n break;\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true;\n end = index + 1;\n }\n }\n return end < 0 ? \"\" : path.slice(start, end);\n }\n if (ext === path) {\n return \"\";\n }\n let firstNonSlashEnd = -1;\n let extIndex = ext.length - 1;\n while(index--){\n if (path.codePointAt(index) === 47 /* `/` */ ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true;\n firstNonSlashEnd = index + 1;\n }\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === ext.codePointAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end) {\n end = firstNonSlashEnd;\n } else if (end < 0) {\n end = path.length;\n }\n return path.slice(start, end);\n}\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */ function dirname(path) {\n assertPath(path);\n if (path.length === 0) {\n return \".\";\n }\n let end = -1;\n let index = path.length;\n /** @type {boolean | undefined} */ let unmatchedSlash;\n // Prefix `--` is important to not run on `0`.\n while(--index){\n if (path.codePointAt(index) === 47 /* `/` */ ) {\n if (unmatchedSlash) {\n end = index;\n break;\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true;\n }\n }\n return end < 0 ? path.codePointAt(0) === 47 /* `/` */ ? \"/\" : \".\" : end === 1 && path.codePointAt(0) === 47 /* `/` */ ? \"//\" : path.slice(0, end);\n}\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */ function extname(path) {\n assertPath(path);\n let index = path.length;\n let end = -1;\n let startPart = 0;\n let startDot = -1;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0;\n /** @type {boolean | undefined} */ let unmatchedSlash;\n while(index--){\n const code = path.codePointAt(index);\n if (code === 47 /* `/` */ ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1;\n break;\n }\n continue;\n }\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true;\n end = index + 1;\n }\n if (code === 46 /* `.` */ ) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index;\n } else if (preDotState !== 1) {\n preDotState = 1;\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1;\n }\n }\n if (startDot < 0 || end < 0 || // We saw a non-dot character immediately before the dot.\n preDotState === 0 || // The (right-most) trimmed path component is exactly `..`.\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n return path.slice(startDot, end);\n}\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */ function join(...segments) {\n let index = -1;\n /** @type {string | undefined} */ let joined;\n while(++index < segments.length){\n assertPath(segments[index]);\n if (segments[index]) {\n joined = joined === undefined ? segments[index] : joined + \"/\" + segments[index];\n }\n }\n return joined === undefined ? \".\" : normalize(joined);\n}\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */ // Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path);\n const absolute = path.codePointAt(0) === 47 /* `/` */ ;\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute);\n if (value.length === 0 && !absolute) {\n value = \".\";\n }\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */ ) {\n value += \"/\";\n }\n return absolute ? \"/\" + value : value;\n}\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */ function normalizeString(path, allowAboveRoot) {\n let result = \"\";\n let lastSegmentLength = 0;\n let lastSlash = -1;\n let dots = 0;\n let index = -1;\n /** @type {number | undefined} */ let code;\n /** @type {number} */ let lastSlashIndex;\n while(++index <= path.length){\n if (index < path.length) {\n code = path.codePointAt(index);\n } else if (code === 47 /* `/` */ ) {\n break;\n } else {\n code = 47 /* `/` */ ;\n }\n if (code === 47 /* `/` */ ) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (result.length < 2 || lastSegmentLength !== 2 || result.codePointAt(result.length - 1) !== 46 /* `.` */ || result.codePointAt(result.length - 2) !== 46 /* `.` */ ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf(\"/\");\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = \"\";\n lastSegmentLength = 0;\n } else {\n result = result.slice(0, lastSlashIndex);\n lastSegmentLength = result.length - 1 - result.lastIndexOf(\"/\");\n }\n lastSlash = index;\n dots = 0;\n continue;\n }\n } else if (result.length > 0) {\n result = \"\";\n lastSegmentLength = 0;\n lastSlash = index;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n result = result.length > 0 ? result + \"/..\" : \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (result.length > 0) {\n result += \"/\" + path.slice(lastSlash + 1, index);\n } else {\n result = path.slice(lastSlash + 1, index);\n }\n lastSegmentLength = index - lastSlash - 1;\n }\n lastSlash = index;\n dots = 0;\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++;\n } else {\n dots = -1;\n }\n }\n return result;\n}\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */ function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n} /* eslint-enable max-depth, complexity */ \n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDhCQUE4QjtBQUM5QixtREFBbUQ7QUFDbkQscUJBQXFCO0FBQ3JCLEVBQUU7QUFDRixjQUFjO0FBQ2QsRUFBRTtBQUNGLG9DQUFvQztBQUNwQyxFQUFFO0FBQ0Ysa0ZBQWtGO0FBQ2xGLGdGQUFnRjtBQUNoRiwrRUFBK0U7QUFDL0UsbUZBQW1GO0FBQ25GLGtGQUFrRjtBQUNsRix1Q0FBdUM7QUFDdkMsRUFBRTtBQUNGLGlGQUFpRjtBQUNqRixrREFBa0Q7QUFDbEQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSxtRkFBbUY7QUFDbkYsaUZBQWlGO0FBQ2pGLGlGQUFpRjtBQUNqRiwwRUFBMEU7QUFDMUUsNkVBQTZFO0FBQzdFLDhCQUE4QjtBQUM5QixFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLDREQUE0RDtBQUM1RCxxQkFBcUI7QUFDckIsRUFBRTtBQUNGLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7QUFFbEMsTUFBTUEsT0FBTztJQUFDQztJQUFVQztJQUFTQztJQUFTQztJQUFNQyxLQUFLO0FBQUcsRUFBQztBQUVoRSx3Q0FBd0MsR0FFeEM7Ozs7Ozs7OztDQVNDLEdBQ0QsU0FBU0osU0FBU0QsSUFBSSxFQUFFTSxHQUFHO0lBQ3pCLElBQUlBLFFBQVFDLGFBQWEsT0FBT0QsUUFBUSxVQUFVO1FBQ2hELE1BQU0sSUFBSUUsVUFBVTtJQUN0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QkFDckJrQixVQUFVLE1BQU0vQixLQUFLZ0IsS0FBSyxDQUFDaUIsWUFBWSxHQUFHckI7Z0JBQzVDLE9BQU87b0JBQ0xtQixTQUFTL0IsS0FBS2dCLEtBQUssQ0FBQ2lCLFlBQVksR0FBR3JCO2dCQUNyQztnQkFFQW9CLG9CQUFvQnBCLFFBQVFxQixZQUFZO1lBQzFDO1lBRUFBLFlBQVlyQjtZQUNac0IsT0FBTztRQUNULE9BQU8sSUFBSVgsU0FBUyxHQUFHLE9BQU8sT0FBTVcsT0FBTyxDQUFDLEdBQUc7WUFDN0NBO1FBQ0YsT0FBTztZQUNMQSxPQUFPLENBQUM7UUFDVjtJQUNGO0lBRUEsT0FBT0g7QUFDVDtBQUVBOzs7Ozs7O0NBT0MsR0FDRCxTQUFTdEIsV0FBV1QsSUFBSTtJQUN0QixJQUFJLE9BQU9BLFNBQVMsVUFBVTtRQUM1QixNQUFNLElBQUlRLFVBQ1IscUNBQXFDNkIsS0FBS0MsU0FBUyxDQUFDdEM7SUFFeEQ7QUFDRixFQUVBLHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanM/YTgzYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBIGRlcml2YXRpdmUgd29yayBiYXNlZCBvbjpcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vYnJvd3NlcmlmeS9wYXRoLWJyb3dzZXJpZnk+LlxuLy8gV2hpY2ggaXMgbGljZW5zZWQ6XG4vL1xuLy8gTUlUIExpY2Vuc2Vcbi8vXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTMgSmFtZXMgSGFsbGlkYXlcbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mXG4vLyB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluXG4vLyB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvXG4vLyB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZlxuLy8gdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLFxuLy8gc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4vLyBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTXG4vLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Jcbi8vIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUlxuLy8gSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU5cbi8vIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4vLyBBIGRlcml2YXRpdmUgd29yayBiYXNlZCBvbjpcbi8vXG4vLyBQYXJ0cyBvZiB0aGF0IGFyZSBleHRyYWN0ZWQgZnJvbSBOb2Rl4oCZcyBpbnRlcm5hbCBgcGF0aGAgbW9kdWxlOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL21hc3Rlci9saWIvcGF0aC5qcz4uXG4vLyBXaGljaCBpcyBsaWNlbnNlZDpcbi8vXG4vLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuZXhwb3J0IGNvbnN0IHBhdGggPSB7YmFzZW5hbWUsIGRpcm5hbWUsIGV4dG5hbWUsIGpvaW4sIHNlcDogJy8nfVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtZGVwdGgsIGNvbXBsZXhpdHkgKi9cblxuLyoqXG4gKiBHZXQgdGhlIGJhc2VuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2V4dF1cbiAqICAgRXh0ZW5zaW9uIHRvIHN0cmlwLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3RlbSBvciBiYXNlbmFtZS5cbiAqL1xuZnVuY3Rpb24gYmFzZW5hbWUocGF0aCwgZXh0KSB7XG4gIGlmIChleHQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZXh0ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiZXh0XCIgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZycpXG4gIH1cblxuICBhc3NlcnRQYXRoKHBhdGgpXG4gIGxldCBzdGFydCA9IDBcbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHNlZW5Ob25TbGFzaFxuXG4gIGlmIChleHQgPT09IHVuZGVmaW5lZCB8fCBleHQubGVuZ3RoID09PSAwIHx8IGV4dC5sZW5ndGggPiBwYXRoLmxlbmd0aCkge1xuICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIGEgcGF0aCBzZXBhcmF0b3IgdGhhdCB3YXMgbm90IHBhcnQgb2YgYSBzZXQgb2YgcGF0aFxuICAgICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICAgIGlmIChzZWVuTm9uU2xhc2gpIHtcbiAgICAgICAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZW5kIDwgMCkge1xuICAgICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvciwgbWFyayB0aGlzIGFzIHRoZSBlbmQgb2Ygb3VyXG4gICAgICAgIC8vIHBhdGggY29tcG9uZW50LlxuICAgICAgICBzZWVuTm9uU2xhc2ggPSB0cnVlXG4gICAgICAgIGVuZCA9IGluZGV4ICsgMVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlbmQgPCAwID8gJycgOiBwYXRoLnNsaWNlKHN0YXJ0LCBlbmQpXG4gIH1cblxuICBpZiAoZXh0ID09PSBwYXRoKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBsZXQgZmlyc3ROb25TbGFzaEVuZCA9IC0xXG4gIGxldCBleHRJbmRleCA9IGV4dC5sZW5ndGggLSAxXG5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgIGlmIChzZWVuTm9uU2xhc2gpIHtcbiAgICAgICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZpcnN0Tm9uU2xhc2hFbmQgPCAwKSB7XG4gICAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCByZW1lbWJlciB0aGlzIGluZGV4IGluIGNhc2VcbiAgICAgICAgLy8gd2UgbmVlZCBpdCBpZiB0aGUgZXh0ZW5zaW9uIGVuZHMgdXAgbm90IG1hdGNoaW5nLlxuICAgICAgICBzZWVuTm9uU2xhc2ggPSB0cnVlXG4gICAgICAgIGZpcnN0Tm9uU2xhc2hFbmQgPSBpbmRleCArIDFcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dEluZGV4ID4gLTEpIHtcbiAgICAgICAgLy8gVHJ5IHRvIG1hdGNoIHRoZSBleHBsaWNpdCBleHRlbnNpb24uXG4gICAgICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gZXh0LmNvZGVQb2ludEF0KGV4dEluZGV4LS0pKSB7XG4gICAgICAgICAgaWYgKGV4dEluZGV4IDwgMCkge1xuICAgICAgICAgICAgLy8gV2UgbWF0Y2hlZCB0aGUgZXh0ZW5zaW9uLCBzbyBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXIgcGF0aFxuICAgICAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBFeHRlbnNpb24gZG9lcyBub3QgbWF0Y2gsIHNvIG91ciByZXN1bHQgaXMgdGhlIGVudGlyZSBwYXRoXG4gICAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgICAgZXh0SW5kZXggPSAtMVxuICAgICAgICAgIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChzdGFydCA9PT0gZW5kKSB7XG4gICAgZW5kID0gZmlyc3ROb25TbGFzaEVuZFxuICB9IGVsc2UgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgPSBwYXRoLmxlbmd0aFxuICB9XG5cbiAgcmV0dXJuIHBhdGguc2xpY2Uoc3RhcnQsIGVuZClcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGRpcm5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBkaXJuYW1lKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnLidcbiAgfVxuXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCB1bm1hdGNoZWRTbGFzaFxuXG4gIC8vIFByZWZpeCBgLS1gIGlzIGltcG9ydGFudCB0byBub3QgcnVuIG9uIGAwYC5cbiAgd2hpbGUgKC0taW5kZXgpIHtcbiAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgaWYgKHVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAgIGVuZCA9IGluZGV4XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghdW5tYXRjaGVkU2xhc2gpIHtcbiAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yXG4gICAgICB1bm1hdGNoZWRTbGFzaCA9IHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW5kIDwgMFxuICAgID8gcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG4gICAgICA/ICcvJ1xuICAgICAgOiAnLidcbiAgICA6IGVuZCA9PT0gMSAmJiBwYXRoLmNvZGVQb2ludEF0KDApID09PSA0NyAvKiBgL2AgKi9cbiAgICA/ICcvLydcbiAgICA6IHBhdGguc2xpY2UoMCwgZW5kKVxufVxuXG4vKipcbiAqIEdldCBhbiBleHRuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEV4dG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGV4dG5hbWUocGF0aCkge1xuICBhc3NlcnRQYXRoKHBhdGgpXG5cbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcblxuICBsZXQgZW5kID0gLTFcbiAgbGV0IHN0YXJ0UGFydCA9IDBcbiAgbGV0IHN0YXJ0RG90ID0gLTFcbiAgLy8gVHJhY2sgdGhlIHN0YXRlIG9mIGNoYXJhY3RlcnMgKGlmIGFueSkgd2Ugc2VlIGJlZm9yZSBvdXIgZmlyc3QgZG90IGFuZFxuICAvLyBhZnRlciBhbnkgcGF0aCBzZXBhcmF0b3Igd2UgZmluZC5cbiAgbGV0IHByZURvdFN0YXRlID0gMFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCB1bm1hdGNoZWRTbGFzaFxuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgY29uc3QgY29kZSA9IHBhdGguY29kZVBvaW50QXQoaW5kZXgpXG5cbiAgICBpZiAoY29kZSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAvLyBJZiB3ZSByZWFjaGVkIGEgcGF0aCBzZXBhcmF0b3IgdGhhdCB3YXMgbm90IHBhcnQgb2YgYSBzZXQgb2YgcGF0aFxuICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgaWYgKHVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAgIHN0YXJ0UGFydCA9IGluZGV4ICsgMVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGlmIChlbmQgPCAwKSB7XG4gICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvciwgbWFyayB0aGlzIGFzIHRoZSBlbmQgb2Ygb3VyXG4gICAgICAvLyBleHRlbnNpb24uXG4gICAgICB1bm1hdGNoZWRTbGFzaCA9IHRydWVcbiAgICAgIGVuZCA9IGluZGV4ICsgMVxuICAgIH1cblxuICAgIGlmIChjb2RlID09PSA0NiAvKiBgLmAgKi8pIHtcbiAgICAgIC8vIElmIHRoaXMgaXMgb3VyIGZpcnN0IGRvdCwgbWFyayBpdCBhcyB0aGUgc3RhcnQgb2Ygb3VyIGV4dGVuc2lvbi5cbiAgICAgIGlmIChzdGFydERvdCA8IDApIHtcbiAgICAgICAgc3RhcnREb3QgPSBpbmRleFxuICAgICAgfSBlbHNlIGlmIChwcmVEb3RTdGF0ZSAhPT0gMSkge1xuICAgICAgICBwcmVEb3RTdGF0ZSA9IDFcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0YXJ0RG90ID4gLTEpIHtcbiAgICAgIC8vIFdlIHNhdyBhIG5vbi1kb3QgYW5kIG5vbi1wYXRoIHNlcGFyYXRvciBiZWZvcmUgb3VyIGRvdCwgc28gd2Ugc2hvdWxkXG4gICAgICAvLyBoYXZlIGEgZ29vZCBjaGFuY2UgYXQgaGF2aW5nIGEgbm9uLWVtcHR5IGV4dGVuc2lvbi5cbiAgICAgIHByZURvdFN0YXRlID0gLTFcbiAgICB9XG4gIH1cblxuICBpZiAoXG4gICAgc3RhcnREb3QgPCAwIHx8XG4gICAgZW5kIDwgMCB8fFxuICAgIC8vIFdlIHNhdyBhIG5vbi1kb3QgY2hhcmFjdGVyIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgZG90LlxuICAgIHByZURvdFN0YXRlID09PSAwIHx8XG4gICAgLy8gVGhlIChyaWdodC1tb3N0KSB0cmltbWVkIHBhdGggY29tcG9uZW50IGlzIGV4YWN0bHkgYC4uYC5cbiAgICAocHJlRG90U3RhdGUgPT09IDEgJiYgc3RhcnREb3QgPT09IGVuZCAtIDEgJiYgc3RhcnREb3QgPT09IHN0YXJ0UGFydCArIDEpXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgcmV0dXJuIHBhdGguc2xpY2Uoc3RhcnREb3QsIGVuZClcbn1cblxuLyoqXG4gKiBKb2luIHNlZ21lbnRzIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gc2VnbWVudHNcbiAqICAgUGF0aCBzZWdtZW50cy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gam9pbiguLi5zZWdtZW50cykge1xuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGpvaW5lZFxuXG4gIHdoaWxlICgrK2luZGV4IDwgc2VnbWVudHMubGVuZ3RoKSB7XG4gICAgYXNzZXJ0UGF0aChzZWdtZW50c1tpbmRleF0pXG5cbiAgICBpZiAoc2VnbWVudHNbaW5kZXhdKSB7XG4gICAgICBqb2luZWQgPVxuICAgICAgICBqb2luZWQgPT09IHVuZGVmaW5lZCA/IHNlZ21lbnRzW2luZGV4XSA6IGpvaW5lZCArICcvJyArIHNlZ21lbnRzW2luZGV4XVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBqb2luZWQgPT09IHVuZGVmaW5lZCA/ICcuJyA6IG5vcm1hbGl6ZShqb2luZWQpXG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgYmFzaWMgZmlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuLy8gTm90ZTogYG5vcm1hbGl6ZWAgaXMgbm90IGV4cG9zZWQgYXMgYHBhdGgubm9ybWFsaXplYCwgc28gc29tZSBjb2RlIGlzXG4vLyBtYW51YWxseSByZW1vdmVkIGZyb20gaXQuXG5mdW5jdGlvbiBub3JtYWxpemUocGF0aCkge1xuICBhc3NlcnRQYXRoKHBhdGgpXG5cbiAgY29uc3QgYWJzb2x1dGUgPSBwYXRoLmNvZGVQb2ludEF0KDApID09PSA0NyAvKiBgL2AgKi9cblxuICAvLyBOb3JtYWxpemUgdGhlIHBhdGggYWNjb3JkaW5nIHRvIFBPU0lYIHJ1bGVzLlxuICBsZXQgdmFsdWUgPSBub3JtYWxpemVTdHJpbmcocGF0aCwgIWFic29sdXRlKVxuXG4gIGlmICh2YWx1ZS5sZW5ndGggPT09IDAgJiYgIWFic29sdXRlKSB7XG4gICAgdmFsdWUgPSAnLidcbiAgfVxuXG4gIGlmICh2YWx1ZS5sZW5ndGggPiAwICYmIHBhdGguY29kZVBvaW50QXQocGF0aC5sZW5ndGggLSAxKSA9PT0gNDcgLyogLyAqLykge1xuICAgIHZhbHVlICs9ICcvJ1xuICB9XG5cbiAgcmV0dXJuIGFic29sdXRlID8gJy8nICsgdmFsdWUgOiB2YWx1ZVxufVxuXG4vKipcbiAqIFJlc29sdmUgYC5gIGFuZCBgLi5gIGVsZW1lbnRzIGluIGEgcGF0aCB3aXRoIGRpcmVjdG9yeSBuYW1lcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGFsbG93QWJvdmVSb290XG4gKiAgIFdoZXRoZXIgYC4uYCBjYW4gbW92ZSBhYm92ZSByb290LlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTdHJpbmcocGF0aCwgYWxsb3dBYm92ZVJvb3QpIHtcbiAgbGV0IHJlc3VsdCA9ICcnXG4gIGxldCBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgbGV0IGxhc3RTbGFzaCA9IC0xXG4gIGxldCBkb3RzID0gMFxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGNvZGVcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBsYXN0U2xhc2hJbmRleFxuXG4gIHdoaWxlICgrK2luZGV4IDw9IHBhdGgubGVuZ3RoKSB7XG4gICAgaWYgKGluZGV4IDwgcGF0aC5sZW5ndGgpIHtcbiAgICAgIGNvZGUgPSBwYXRoLmNvZGVQb2ludEF0KGluZGV4KVxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICBicmVha1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlID0gNDcgLyogYC9gICovXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgaWYgKGxhc3RTbGFzaCA9PT0gaW5kZXggLSAxIHx8IGRvdHMgPT09IDEpIHtcbiAgICAgICAgLy8gRW1wdHkuXG4gICAgICB9IGVsc2UgaWYgKGxhc3RTbGFzaCAhPT0gaW5kZXggLSAxICYmIGRvdHMgPT09IDIpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJlc3VsdC5sZW5ndGggPCAyIHx8XG4gICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggIT09IDIgfHxcbiAgICAgICAgICByZXN1bHQuY29kZVBvaW50QXQocmVzdWx0Lmxlbmd0aCAtIDEpICE9PSA0NiAvKiBgLmAgKi8gfHxcbiAgICAgICAgICByZXN1bHQuY29kZVBvaW50QXQocmVzdWx0Lmxlbmd0aCAtIDIpICE9PSA0NiAvKiBgLmAgKi9cbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICBsYXN0U2xhc2hJbmRleCA9IHJlc3VsdC5sYXN0SW5kZXhPZignLycpXG5cbiAgICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCAhPT0gcmVzdWx0Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9ICcnXG4gICAgICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAwXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIGxhc3RTbGFzaEluZGV4KVxuICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gcmVzdWx0Lmxlbmd0aCAtIDEgLSByZXN1bHQubGFzdEluZGV4T2YoJy8nKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgICAgICAgICAgZG90cyA9IDBcbiAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAnJ1xuICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAwXG4gICAgICAgICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgICAgICAgZG90cyA9IDBcbiAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFsbG93QWJvdmVSb290KSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0Lmxlbmd0aCA+IDAgPyByZXN1bHQgKyAnLy4uJyA6ICcuLidcbiAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDJcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzdWx0ICs9ICcvJyArIHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaW5kZXgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gcGF0aC5zbGljZShsYXN0U2xhc2ggKyAxLCBpbmRleClcbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gaW5kZXggLSBsYXN0U2xhc2ggLSAxXG4gICAgICB9XG5cbiAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICBkb3RzID0gMFxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gNDYgLyogYC5gICovICYmIGRvdHMgPiAtMSkge1xuICAgICAgZG90cysrXG4gICAgfSBlbHNlIHtcbiAgICAgIGRvdHMgPSAtMVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBNYWtlIHN1cmUgYHBhdGhgIGlzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhdGggaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQYXRoKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAnUGF0aCBtdXN0IGJlIGEgc3RyaW5nLiBSZWNlaXZlZCAnICsgSlNPTi5zdHJpbmdpZnkocGF0aClcbiAgICApXG4gIH1cbn1cblxuLyogZXNsaW50LWVuYWJsZSBtYXgtZGVwdGgsIGNvbXBsZXhpdHkgKi9cbiJdLCJuYW1lcyI6WyJwYXRoIiwiYmFzZW5hbWUiLCJkaXJuYW1lIiwiZXh0bmFtZSIsImpvaW4iLCJzZXAiLCJleHQiLCJ1bmRlZmluZWQiLCJUeXBlRXJyb3IiLCJhc3NlcnRQYXRoIiwic3RhcnQiLCJlbmQiLCJpbmRleCIsImxlbmd0aCIsInNlZW5Ob25TbGFzaCIsImNvZGVQb2ludEF0Iiwic2xpY2UiLCJmaXJzdE5vblNsYXNoRW5kIiwiZXh0SW5kZXgiLCJ1bm1hdGNoZWRTbGFzaCIsInN0YXJ0UGFydCIsInN0YXJ0RG90IiwicHJlRG90U3RhdGUiLCJjb2RlIiwic2VnbWVudHMiLCJqb2luZWQiLCJub3JtYWxpemUiLCJhYnNvbHV0ZSIsInZhbHVlIiwibm9ybWFsaXplU3RyaW5nIiwiYWxsb3dBYm92ZVJvb3QiLCJyZXN1bHQiLCJsYXN0U2VnbWVudExlbmd0aCIsImxhc3RTbGFzaCIsImRvdHMiLCJsYXN0U2xhc2hJbmRleCIsImxhc3RJbmRleE9mIiwiSlNPTiIsInN0cmluZ2lmeSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/vfile/lib/minpath.browser.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/vfile/lib/minproc.browser.js":
-/*!*******************************************************!*\
- !*** ../../node_modules/vfile/lib/minproc.browser.js ***!
- \*******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ proc: () => (/* binding */ proc)\n/* harmony export */ });\n// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nconst proc = {\n cwd\n};\nfunction cwd() {\n return \"/\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFCQUFxQjtBQUNyQiwwRUFBMEU7QUFDMUUsaUVBQWlFO0FBQzFELE1BQU1BLE9BQU87SUFBQ0M7QUFBRyxFQUFDO0FBRXpCLFNBQVNBO0lBQ1AsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvdmZpbGUvbGliL21pbnByb2MuYnJvd3Nlci5qcz9kNWJkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNvbWV3aGF0IGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9kZWZ1bmN0em9tYmllL25vZGUtcHJvY2Vzcy9ibG9iL21hc3Rlci9icm93c2VyLmpzPi5cbi8vIEJ1dCBJIGRvbuKAmXQgdGhpbmsgb25lIHRpbnkgbGluZSBvZiBjb2RlIGNhbiBiZSBjb3B5cmlnaHRlZC4g8J+YhVxuZXhwb3J0IGNvbnN0IHByb2MgPSB7Y3dkfVxuXG5mdW5jdGlvbiBjd2QoKSB7XG4gIHJldHVybiAnLydcbn1cbiJdLCJuYW1lcyI6WyJwcm9jIiwiY3dkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/vfile/lib/minproc.browser.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/vfile/lib/minurl.browser.js":
-/*!******************************************************!*\
- !*** ../../node_modules/vfile/lib/minurl.browser.js ***!
- \******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isUrl: () => (/* reexport safe */ _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl),\n/* harmony export */ urlToPath: () => (/* binding */ urlToPath)\n/* harmony export */ });\n/* harmony import */ var _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./minurl.shared.js */ \"(ssr)/../../node_modules/vfile/lib/minurl.shared.js\");\n\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */ function urlToPath(path) {\n if (typeof path === \"string\") {\n path = new URL(path);\n } else if (!(0,_minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl)(path)) {\n /** @type {NodeJS.ErrnoException} */ const error = new TypeError('The \"path\" argument must be of type string or an instance of URL. Received `' + path + \"`\");\n error.code = \"ERR_INVALID_ARG_TYPE\";\n throw error;\n }\n if (path.protocol !== \"file:\") {\n /** @type {NodeJS.ErrnoException} */ const error = new TypeError(\"The URL must be of scheme file\");\n error.code = \"ERR_INVALID_URL_SCHEME\";\n throw error;\n }\n return getPathFromURLPosix(path);\n}\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */ function getPathFromURLPosix(url) {\n if (url.hostname !== \"\") {\n /** @type {NodeJS.ErrnoException} */ const error = new TypeError('File URL host must be \"localhost\" or empty on darwin');\n error.code = \"ERR_INVALID_FILE_URL_HOST\";\n throw error;\n }\n const pathname = url.pathname;\n let index = -1;\n while(++index < pathname.length){\n if (pathname.codePointAt(index) === 37 /* `%` */ && pathname.codePointAt(index + 1) === 50 /* `2` */ ) {\n const third = pathname.codePointAt(index + 2);\n if (third === 70 /* `F` */ || third === 102 /* `f` */ ) {\n /** @type {NodeJS.ErrnoException} */ const error = new TypeError(\"File URL path must not include encoded / characters\");\n error.code = \"ERR_INVALID_FILE_URL_PATH\";\n throw error;\n }\n }\n }\n return decodeURIComponent(pathname);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuYnJvd3Nlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBd0M7QUFFQTtBQUV4Qyx5RUFBeUU7QUFFekU7Ozs7O0NBS0MsR0FDTSxTQUFTQyxVQUFVQyxJQUFJO0lBQzVCLElBQUksT0FBT0EsU0FBUyxVQUFVO1FBQzVCQSxPQUFPLElBQUlDLElBQUlEO0lBQ2pCLE9BQU8sSUFBSSxDQUFDRix3REFBS0EsQ0FBQ0UsT0FBTztRQUN2QixrQ0FBa0MsR0FDbEMsTUFBTUUsUUFBUSxJQUFJQyxVQUNoQixpRkFDRUgsT0FDQTtRQUVKRSxNQUFNRSxJQUFJLEdBQUc7UUFDYixNQUFNRjtJQUNSO0lBRUEsSUFBSUYsS0FBS0ssUUFBUSxLQUFLLFNBQVM7UUFDN0Isa0NBQWtDLEdBQ2xDLE1BQU1ILFFBQVEsSUFBSUMsVUFBVTtRQUM1QkQsTUFBTUUsSUFBSSxHQUFHO1FBQ2IsTUFBTUY7SUFDUjtJQUVBLE9BQU9JLG9CQUFvQk47QUFDN0I7QUFFQTs7Ozs7OztDQU9DLEdBQ0QsU0FBU00sb0JBQW9CQyxHQUFHO0lBQzlCLElBQUlBLElBQUlDLFFBQVEsS0FBSyxJQUFJO1FBQ3ZCLGtDQUFrQyxHQUNsQyxNQUFNTixRQUFRLElBQUlDLFVBQ2hCO1FBRUZELE1BQU1FLElBQUksR0FBRztRQUNiLE1BQU1GO0lBQ1I7SUFFQSxNQUFNTyxXQUFXRixJQUFJRSxRQUFRO0lBQzdCLElBQUlDLFFBQVEsQ0FBQztJQUViLE1BQU8sRUFBRUEsUUFBUUQsU0FBU0UsTUFBTSxDQUFFO1FBQ2hDLElBQ0VGLFNBQVNHLFdBQVcsQ0FBQ0YsV0FBVyxHQUFHLE9BQU8sT0FDMUNELFNBQVNHLFdBQVcsQ0FBQ0YsUUFBUSxPQUFPLEdBQUcsT0FBTyxLQUM5QztZQUNBLE1BQU1HLFFBQVFKLFNBQVNHLFdBQVcsQ0FBQ0YsUUFBUTtZQUMzQyxJQUFJRyxVQUFVLEdBQUcsT0FBTyxPQUFNQSxVQUFVLElBQUksT0FBTyxLQUFJO2dCQUNyRCxrQ0FBa0MsR0FDbEMsTUFBTVgsUUFBUSxJQUFJQyxVQUNoQjtnQkFFRkQsTUFBTUUsSUFBSSxHQUFHO2dCQUNiLE1BQU1GO1lBQ1I7UUFDRjtJQUNGO0lBRUEsT0FBT1ksbUJBQW1CTDtBQUM1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuYnJvd3Nlci5qcz9iZWNiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNVcmx9IGZyb20gJy4vbWludXJsLnNoYXJlZC5qcydcblxuZXhwb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG4vLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanM+XG5cbi8qKlxuICogQHBhcmFtIHtVUkwgfCBzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIFVSTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVybFRvUGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gbmV3IFVSTChwYXRoKVxuICB9IGVsc2UgaWYgKCFpc1VybChwYXRoKSkge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdUaGUgXCJwYXRoXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnICtcbiAgICAgICAgcGF0aCArXG4gICAgICAgICdgJ1xuICAgIClcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX0FSR19UWVBFJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBpZiAocGF0aC5wcm90b2NvbCAhPT0gJ2ZpbGU6Jykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcignVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlJylcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX1VSTF9TQ0hFTUUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIHJldHVybiBnZXRQYXRoRnJvbVVSTFBvc2l4KHBhdGgpXG59XG5cbi8qKlxuICogR2V0IGEgcGF0aCBmcm9tIGEgUE9TSVggVVJMLlxuICpcbiAqIEBwYXJhbSB7VVJMfSB1cmxcbiAqICAgVVJMLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBnZXRQYXRoRnJvbVVSTFBvc2l4KHVybCkge1xuICBpZiAodXJsLmhvc3RuYW1lICE9PSAnJykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdGaWxlIFVSTCBob3N0IG11c3QgYmUgXCJsb2NhbGhvc3RcIiBvciBlbXB0eSBvbiBkYXJ3aW4nXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1cmwucGF0aG5hbWVcbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHBhdGhuYW1lLmxlbmd0aCkge1xuICAgIGlmIChcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gMzcgLyogYCVgICovICYmXG4gICAgICBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDEpID09PSA1MCAvKiBgMmAgKi9cbiAgICApIHtcbiAgICAgIGNvbnN0IHRoaXJkID0gcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXggKyAyKVxuICAgICAgaWYgKHRoaXJkID09PSA3MCAvKiBgRmAgKi8gfHwgdGhpcmQgPT09IDEwMiAvKiBgZmAgKi8pIHtcbiAgICAgICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzJ1xuICAgICAgICApXG4gICAgICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCdcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHBhdGhuYW1lKVxufVxuIl0sIm5hbWVzIjpbImlzVXJsIiwidXJsVG9QYXRoIiwicGF0aCIsIlVSTCIsImVycm9yIiwiVHlwZUVycm9yIiwiY29kZSIsInByb3RvY29sIiwiZ2V0UGF0aEZyb21VUkxQb3NpeCIsInVybCIsImhvc3RuYW1lIiwicGF0aG5hbWUiLCJpbmRleCIsImxlbmd0aCIsImNvZGVQb2ludEF0IiwidGhpcmQiLCJkZWNvZGVVUklDb21wb25lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/vfile/lib/minurl.browser.js\n");
-
-/***/ }),
-
-/***/ "(ssr)/../../node_modules/vfile/lib/minurl.shared.js":
-/*!*****************************************************!*\
- !*** ../../node_modules/vfile/lib/minurl.shared.js ***!
- \*****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isUrl: () => (/* binding */ isUrl)\n/* harmony export */ });\n/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */ // From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nfunction isUrl(fileUrlOrPath) {\n return Boolean(fileUrlOrPath !== null && typeof fileUrlOrPath === \"object\" && \"href\" in fileUrlOrPath && fileUrlOrPath.href && \"protocol\" in fileUrlOrPath && fileUrlOrPath.protocol && // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQkMsR0FDRCwrRUFBK0U7QUFDeEUsU0FBU0EsTUFBTUMsYUFBYTtJQUNqQyxPQUFPQyxRQUNMRCxrQkFBa0IsUUFDaEIsT0FBT0Esa0JBQWtCLFlBQ3pCLFVBQVVBLGlCQUNWQSxjQUFjRSxJQUFJLElBQ2xCLGNBQWNGLGlCQUNkQSxjQUFjRyxRQUFRLElBQ3RCLHNDQUFzQztJQUN0Q0gsY0FBY0ksSUFBSSxLQUFLQztBQUU3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzPzM0MWYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBoYXMgdGhlIHNoYXBlIG9mIGEgV0hBVFdHIFVSTCBvYmplY3QuXG4gKlxuICogVXNpbmcgYSBzeW1ib2wgb3IgaW5zdGFuY2VvZiB3b3VsZCBub3QgYmUgYWJsZSB0byByZWNvZ25pemUgVVJMIG9iamVjdHNcbiAqIGNvbWluZyBmcm9tIG90aGVyIGltcGxlbWVudGF0aW9ucyAoZS5nLiBpbiBFbGVjdHJvbiksIHNvIGluc3RlYWQgd2UgYXJlXG4gKiBjaGVja2luZyBzb21lIHdlbGwga25vd24gcHJvcGVydGllcyBmb3IgYSBsYWNrIG9mIGEgYmV0dGVyIHRlc3QuXG4gKlxuICogV2UgdXNlIGBocmVmYCBhbmQgYHByb3RvY29sYCBhcyB0aGV5IGFyZSB0aGUgb25seSBwcm9wZXJ0aWVzIHRoYXQgYXJlXG4gKiBlYXN5IHRvIHJldHJpZXZlIGFuZCBjYWxjdWxhdGUgZHVlIHRvIHRoZSBsYXp5IG5hdHVyZSBvZiB0aGUgZ2V0dGVycy5cbiAqXG4gKiBXZSBjaGVjayBmb3IgYXV0aCBhdHRyaWJ1dGUgdG8gZGlzdGluZ3Vpc2ggbGVnYWN5IHVybCBpbnN0YW5jZSB3aXRoXG4gKiBXSEFUV0cgVVJMIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gZmlsZVVybE9yUGF0aFxuICogICBGaWxlIHBhdGggb3IgVVJMLlxuICogQHJldHVybnMge2ZpbGVVcmxPclBhdGggaXMgVVJMfVxuICogICBXaGV0aGVyIGl04oCZcyBhIFVSTC5cbiAqL1xuLy8gRnJvbTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcyNMNzIwPlxuZXhwb3J0IGZ1bmN0aW9uIGlzVXJsKGZpbGVVcmxPclBhdGgpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgZmlsZVVybE9yUGF0aCAhPT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIGZpbGVVcmxPclBhdGggPT09ICdvYmplY3QnICYmXG4gICAgICAnaHJlZicgaW4gZmlsZVVybE9yUGF0aCAmJlxuICAgICAgZmlsZVVybE9yUGF0aC5ocmVmICYmXG4gICAgICAncHJvdG9jb2wnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGgucHJvdG9jb2wgJiZcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGluZGV4aW5nIGlzIGZpbmUuXG4gICAgICBmaWxlVXJsT3JQYXRoLmF1dGggPT09IHVuZGVmaW5lZFxuICApXG59XG4iXSwibmFtZXMiOlsiaXNVcmwiLCJmaWxlVXJsT3JQYXRoIiwiQm9vbGVhbiIsImhyZWYiLCJwcm90b2NvbCIsImF1dGgiLCJ1bmRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/vfile/lib/minurl.shared.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/clsx/dist/clsx.mjs":
-/*!*********************************************!*\
- !*** ../../node_modules/clsx/dist/clsx.mjs ***!
- \*********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clsx: () => (/* binding */ clsx),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction r(e) {\n var t, f, n = \"\";\n if (\"string\" == typeof e || \"number\" == typeof e) n += e;\n else if (\"object\" == typeof e) if (Array.isArray(e)) for(t = 0; t < e.length; t++)e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);\n else for(t in e)e[t] && (n && (n += \" \"), n += t);\n return n;\n}\nfunction clsx() {\n for(var e, t, f = 0, n = \"\"; f < arguments.length;)(e = arguments[f++]) && (t = r(e)) && (n && (n += \" \"), n += t);\n return n;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBQVNBLEVBQUVDLENBQUM7SUFBRSxJQUFJQyxHQUFFQyxHQUFFQyxJQUFFO0lBQUcsSUFBRyxZQUFVLE9BQU9ILEtBQUcsWUFBVSxPQUFPQSxHQUFFRyxLQUFHSDtTQUFPLElBQUcsWUFBVSxPQUFPQSxHQUFFLElBQUdJLE1BQU1DLE9BQU8sQ0FBQ0wsSUFBRyxJQUFJQyxJQUFFLEdBQUVBLElBQUVELEVBQUVNLE1BQU0sRUFBQ0wsSUFBSUQsQ0FBQyxDQUFDQyxFQUFFLElBQUdDLENBQUFBLElBQUVILEVBQUVDLENBQUMsQ0FBQ0MsRUFBRSxNQUFLRSxDQUFBQSxLQUFJQSxDQUFBQSxLQUFHLEdBQUUsR0FBR0EsS0FBR0QsQ0FBQUE7U0FBUSxJQUFJRCxLQUFLRCxFQUFFQSxDQUFDLENBQUNDLEVBQUUsSUFBR0UsQ0FBQUEsS0FBSUEsQ0FBQUEsS0FBRyxHQUFFLEdBQUdBLEtBQUdGLENBQUFBO0lBQUcsT0FBT0U7QUFBQztBQUFRLFNBQVNJO0lBQU8sSUFBSSxJQUFJUCxHQUFFQyxHQUFFQyxJQUFFLEdBQUVDLElBQUUsSUFBR0QsSUFBRU0sVUFBVUYsTUFBTSxFQUFFLENBQUNOLElBQUVRLFNBQVMsQ0FBQ04sSUFBSSxLQUFJRCxDQUFBQSxJQUFFRixFQUFFQyxFQUFDLEtBQUtHLENBQUFBLEtBQUlBLENBQUFBLEtBQUcsR0FBRSxHQUFHQSxLQUFHRixDQUFBQTtJQUFHLE9BQU9FO0FBQUM7QUFBQyxpRUFBZUksSUFBSUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm1qcz9hZDlhIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHIoZSl7dmFyIHQsZixuPVwiXCI7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGV8fFwibnVtYmVyXCI9PXR5cGVvZiBlKW4rPWU7ZWxzZSBpZihcIm9iamVjdFwiPT10eXBlb2YgZSlpZihBcnJheS5pc0FycmF5KGUpKWZvcih0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSYmKGY9cihlW3RdKSkmJihuJiYobis9XCIgXCIpLG4rPWYpO2Vsc2UgZm9yKHQgaW4gZSllW3RdJiYobiYmKG4rPVwiIFwiKSxuKz10KTtyZXR1cm4gbn1leHBvcnQgZnVuY3Rpb24gY2xzeCgpe2Zvcih2YXIgZSx0LGY9MCxuPVwiXCI7Zjxhcmd1bWVudHMubGVuZ3RoOykoZT1hcmd1bWVudHNbZisrXSkmJih0PXIoZSkpJiYobiYmKG4rPVwiIFwiKSxuKz10KTtyZXR1cm4gbn1leHBvcnQgZGVmYXVsdCBjbHN4OyJdLCJuYW1lcyI6WyJyIiwiZSIsInQiLCJmIiwibiIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImNsc3giLCJhcmd1bWVudHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/clsx/dist/clsx.mjs\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/alias.js":
-/*!***********************************************!*\
- !*** ../../node_modules/drizzle-orm/alias.js ***!
- \***********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ColumnAliasProxyHandler: () => (/* binding */ ColumnAliasProxyHandler),\n/* harmony export */ RelationTableAliasProxyHandler: () => (/* binding */ RelationTableAliasProxyHandler),\n/* harmony export */ TableAliasProxyHandler: () => (/* binding */ TableAliasProxyHandler),\n/* harmony export */ aliasedRelation: () => (/* binding */ aliasedRelation),\n/* harmony export */ aliasedTable: () => (/* binding */ aliasedTable),\n/* harmony export */ aliasedTableColumn: () => (/* binding */ aliasedTableColumn),\n/* harmony export */ mapColumnsInAliasedSQLToAlias: () => (/* binding */ mapColumnsInAliasedSQLToAlias),\n/* harmony export */ mapColumnsInSQLToAlias: () => (/* binding */ mapColumnsInSQLToAlias)\n/* harmony export */ });\n/* harmony import */ var _column_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./column.js */ \"(rsc)/../../node_modules/drizzle-orm/column.js\");\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n/* harmony import */ var _view_common_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./view-common.js */ \"(rsc)/../../node_modules/drizzle-orm/view-common.js\");\n\n\n\n\n\nclass ColumnAliasProxyHandler {\n constructor(table){\n this.table = table;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"ColumnAliasProxyHandler\";\n }\n get(columnObj, prop) {\n if (prop === \"table\") {\n return this.table;\n }\n return columnObj[prop];\n }\n}\nclass TableAliasProxyHandler {\n constructor(alias, replaceOriginalName){\n this.alias = alias;\n this.replaceOriginalName = replaceOriginalName;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"TableAliasProxyHandler\";\n }\n get(target, prop) {\n if (prop === _table_js__WEBPACK_IMPORTED_MODULE_1__.Table.Symbol.IsAlias) {\n return true;\n }\n if (prop === _table_js__WEBPACK_IMPORTED_MODULE_1__.Table.Symbol.Name) {\n return this.alias;\n }\n if (this.replaceOriginalName && prop === _table_js__WEBPACK_IMPORTED_MODULE_1__.Table.Symbol.OriginalName) {\n return this.alias;\n }\n if (prop === _view_common_js__WEBPACK_IMPORTED_MODULE_2__.ViewBaseConfig) {\n return {\n ...target[_view_common_js__WEBPACK_IMPORTED_MODULE_2__.ViewBaseConfig],\n name: this.alias,\n isAlias: true\n };\n }\n if (prop === _table_js__WEBPACK_IMPORTED_MODULE_1__.Table.Symbol.Columns) {\n const columns = target[_table_js__WEBPACK_IMPORTED_MODULE_1__.Table.Symbol.Columns];\n if (!columns) {\n return columns;\n }\n const proxiedColumns = {};\n Object.keys(columns).map((key)=>{\n proxiedColumns[key] = new Proxy(columns[key], new ColumnAliasProxyHandler(new Proxy(target, this)));\n });\n return proxiedColumns;\n }\n const value = target[prop];\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(value, _column_js__WEBPACK_IMPORTED_MODULE_3__.Column)) {\n return new Proxy(value, new ColumnAliasProxyHandler(new Proxy(target, this)));\n }\n return value;\n }\n}\nclass RelationTableAliasProxyHandler {\n constructor(alias){\n this.alias = alias;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"RelationTableAliasProxyHandler\";\n }\n get(target, prop) {\n if (prop === \"sourceTable\") {\n return aliasedTable(target.sourceTable, this.alias);\n }\n return target[prop];\n }\n}\nfunction aliasedTable(table, tableAlias) {\n return new Proxy(table, new TableAliasProxyHandler(tableAlias, false));\n}\nfunction aliasedRelation(relation, tableAlias) {\n return new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\nfunction aliasedTableColumn(column, tableAlias) {\n return new Proxy(column, new ColumnAliasProxyHandler(new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false))));\n}\nfunction mapColumnsInAliasedSQLToAlias(query, alias) {\n return new _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__.SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\nfunction mapColumnsInSQLToAlias(query, alias) {\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__.sql.join(query.queryChunks.map((c)=>{\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(c, _column_js__WEBPACK_IMPORTED_MODULE_3__.Column)) {\n return aliasedTableColumn(c, alias);\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(c, _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__.SQL)) {\n return mapColumnsInSQLToAlias(c, alias);\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(c, _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__.SQL.Aliased)) {\n return mapColumnsInAliasedSQLToAlias(c, alias);\n }\n return c;\n }));\n}\n //# sourceMappingURL=alias.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2FsaWFzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBcUM7QUFDUTtBQUNMO0FBQ0w7QUFDZTtBQUNsRCxNQUFNTztJQUNKQyxZQUFZQyxLQUFLLENBQUU7UUFDakIsSUFBSSxDQUFDQSxLQUFLLEdBQUdBO0lBQ2Y7O1lBQ08sQ0FBQ1Isa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJTLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxFQUFFO1FBQ25CLElBQUlBLFNBQVMsU0FBUztZQUNwQixPQUFPLElBQUksQ0FBQ0gsS0FBSztRQUNuQjtRQUNBLE9BQU9FLFNBQVMsQ0FBQ0MsS0FBSztJQUN4QjtBQUNGO0FBQ0EsTUFBTUM7SUFDSkwsWUFBWU0sS0FBSyxFQUFFQyxtQkFBbUIsQ0FBRTtRQUN0QyxJQUFJLENBQUNELEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLG1CQUFtQixHQUFHQTtJQUM3Qjs7WUFDTyxDQUFDZCxrREFBVUEsQ0FBQyxHQUFHOztJQUN0QlMsSUFBSU0sTUFBTSxFQUFFSixJQUFJLEVBQUU7UUFDaEIsSUFBSUEsU0FBU1AsNENBQUtBLENBQUNZLE1BQU0sQ0FBQ0MsT0FBTyxFQUFFO1lBQ2pDLE9BQU87UUFDVDtRQUNBLElBQUlOLFNBQVNQLDRDQUFLQSxDQUFDWSxNQUFNLENBQUNFLElBQUksRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQ0wsS0FBSztRQUNuQjtRQUNBLElBQUksSUFBSSxDQUFDQyxtQkFBbUIsSUFBSUgsU0FBU1AsNENBQUtBLENBQUNZLE1BQU0sQ0FBQ0csWUFBWSxFQUFFO1lBQ2xFLE9BQU8sSUFBSSxDQUFDTixLQUFLO1FBQ25CO1FBQ0EsSUFBSUYsU0FBU04sMkRBQWNBLEVBQUU7WUFDM0IsT0FBTztnQkFDTCxHQUFHVSxNQUFNLENBQUNWLDJEQUFjQSxDQUFDO2dCQUN6QmUsTUFBTSxJQUFJLENBQUNQLEtBQUs7Z0JBQ2hCUSxTQUFTO1lBQ1g7UUFDRjtRQUNBLElBQUlWLFNBQVNQLDRDQUFLQSxDQUFDWSxNQUFNLENBQUNNLE9BQU8sRUFBRTtZQUNqQyxNQUFNQyxVQUFVUixNQUFNLENBQUNYLDRDQUFLQSxDQUFDWSxNQUFNLENBQUNNLE9BQU8sQ0FBQztZQUM1QyxJQUFJLENBQUNDLFNBQVM7Z0JBQ1osT0FBT0E7WUFDVDtZQUNBLE1BQU1DLGlCQUFpQixDQUFDO1lBQ3hCQyxPQUFPQyxJQUFJLENBQUNILFNBQVNJLEdBQUcsQ0FBQyxDQUFDQztnQkFDeEJKLGNBQWMsQ0FBQ0ksSUFBSSxHQUFHLElBQUlDLE1BQ3hCTixPQUFPLENBQUNLLElBQUksRUFDWixJQUFJdEIsd0JBQXdCLElBQUl1QixNQUFNZCxRQUFRLElBQUk7WUFFdEQ7WUFDQSxPQUFPUztRQUNUO1FBQ0EsTUFBTU0sUUFBUWYsTUFBTSxDQUFDSixLQUFLO1FBQzFCLElBQUlWLDhDQUFFQSxDQUFDNkIsT0FBTy9CLDhDQUFNQSxHQUFHO1lBQ3JCLE9BQU8sSUFBSThCLE1BQU1DLE9BQU8sSUFBSXhCLHdCQUF3QixJQUFJdUIsTUFBTWQsUUFBUSxJQUFJO1FBQzVFO1FBQ0EsT0FBT2U7SUFDVDtBQUNGO0FBQ0EsTUFBTUM7SUFDSnhCLFlBQVlNLEtBQUssQ0FBRTtRQUNqQixJQUFJLENBQUNBLEtBQUssR0FBR0E7SUFDZjs7WUFDTyxDQUFDYixrREFBVUEsQ0FBQyxHQUFHOztJQUN0QlMsSUFBSU0sTUFBTSxFQUFFSixJQUFJLEVBQUU7UUFDaEIsSUFBSUEsU0FBUyxlQUFlO1lBQzFCLE9BQU9xQixhQUFhakIsT0FBT2tCLFdBQVcsRUFBRSxJQUFJLENBQUNwQixLQUFLO1FBQ3BEO1FBQ0EsT0FBT0UsTUFBTSxDQUFDSixLQUFLO0lBQ3JCO0FBQ0Y7QUFDQSxTQUFTcUIsYUFBYXhCLEtBQUssRUFBRTBCLFVBQVU7SUFDckMsT0FBTyxJQUFJTCxNQUFNckIsT0FBTyxJQUFJSSx1QkFBdUJzQixZQUFZO0FBQ2pFO0FBQ0EsU0FBU0MsZ0JBQWdCQyxRQUFRLEVBQUVGLFVBQVU7SUFDM0MsT0FBTyxJQUFJTCxNQUFNTyxVQUFVLElBQUlMLCtCQUErQkc7QUFDaEU7QUFDQSxTQUFTRyxtQkFBbUJDLE1BQU0sRUFBRUosVUFBVTtJQUM1QyxPQUFPLElBQUlMLE1BQ1RTLFFBQ0EsSUFBSWhDLHdCQUF3QixJQUFJdUIsTUFBTVMsT0FBTzlCLEtBQUssRUFBRSxJQUFJSSx1QkFBdUJzQixZQUFZO0FBRS9GO0FBQ0EsU0FBU0ssOEJBQThCQyxLQUFLLEVBQUUzQixLQUFLO0lBQ2pELE9BQU8sSUFBSVgsNENBQUdBLENBQUN1QyxPQUFPLENBQUNDLHVCQUF1QkYsTUFBTXJDLEdBQUcsRUFBRVUsUUFBUTJCLE1BQU1HLFVBQVU7QUFDbkY7QUFDQSxTQUFTRCx1QkFBdUJGLEtBQUssRUFBRTNCLEtBQUs7SUFDMUMsT0FBT1YsNENBQUdBLENBQUN5QyxJQUFJLENBQUNKLE1BQU1LLFdBQVcsQ0FBQ2xCLEdBQUcsQ0FBQyxDQUFDbUI7UUFDckMsSUFBSTdDLDhDQUFFQSxDQUFDNkMsR0FBRy9DLDhDQUFNQSxHQUFHO1lBQ2pCLE9BQU9zQyxtQkFBbUJTLEdBQUdqQztRQUMvQjtRQUNBLElBQUlaLDhDQUFFQSxDQUFDNkMsR0FBRzVDLDRDQUFHQSxHQUFHO1lBQ2QsT0FBT3dDLHVCQUF1QkksR0FBR2pDO1FBQ25DO1FBQ0EsSUFBSVosOENBQUVBLENBQUM2QyxHQUFHNUMsNENBQUdBLENBQUN1QyxPQUFPLEdBQUc7WUFDdEIsT0FBT0YsOEJBQThCTyxHQUFHakM7UUFDMUM7UUFDQSxPQUFPaUM7SUFDVDtBQUNGO0FBVUUsQ0FDRixpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9hbGlhcy5qcz80NTMzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbiB9IGZyb20gXCIuL2NvbHVtbi5qc1wiO1xuaW1wb3J0IHsgZW50aXR5S2luZCwgaXMgfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IFNRTCwgc3FsIH0gZnJvbSBcIi4vc3FsL3NxbC5qc1wiO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwiLi90YWJsZS5qc1wiO1xuaW1wb3J0IHsgVmlld0Jhc2VDb25maWcgfSBmcm9tIFwiLi92aWV3LWNvbW1vbi5qc1wiO1xuY2xhc3MgQ29sdW1uQWxpYXNQcm94eUhhbmRsZXIge1xuICBjb25zdHJ1Y3Rvcih0YWJsZSkge1xuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJDb2x1bW5BbGlhc1Byb3h5SGFuZGxlclwiO1xuICBnZXQoY29sdW1uT2JqLCBwcm9wKSB7XG4gICAgaWYgKHByb3AgPT09IFwidGFibGVcIikge1xuICAgICAgcmV0dXJuIHRoaXMudGFibGU7XG4gICAgfVxuICAgIHJldHVybiBjb2x1bW5PYmpbcHJvcF07XG4gIH1cbn1cbmNsYXNzIFRhYmxlQWxpYXNQcm94eUhhbmRsZXIge1xuICBjb25zdHJ1Y3RvcihhbGlhcywgcmVwbGFjZU9yaWdpbmFsTmFtZSkge1xuICAgIHRoaXMuYWxpYXMgPSBhbGlhcztcbiAgICB0aGlzLnJlcGxhY2VPcmlnaW5hbE5hbWUgPSByZXBsYWNlT3JpZ2luYWxOYW1lO1xuICB9XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlRhYmxlQWxpYXNQcm94eUhhbmRsZXJcIjtcbiAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgIGlmIChwcm9wID09PSBUYWJsZS5TeW1ib2wuSXNBbGlhcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChwcm9wID09PSBUYWJsZS5TeW1ib2wuTmFtZSkge1xuICAgICAgcmV0dXJuIHRoaXMuYWxpYXM7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlcGxhY2VPcmlnaW5hbE5hbWUgJiYgcHJvcCA9PT0gVGFibGUuU3ltYm9sLk9yaWdpbmFsTmFtZSkge1xuICAgICAgcmV0dXJuIHRoaXMuYWxpYXM7XG4gICAgfVxuICAgIGlmIChwcm9wID09PSBWaWV3QmFzZUNvbmZpZykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udGFyZ2V0W1ZpZXdCYXNlQ29uZmlnXSxcbiAgICAgICAgbmFtZTogdGhpcy5hbGlhcyxcbiAgICAgICAgaXNBbGlhczogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHByb3AgPT09IFRhYmxlLlN5bWJvbC5Db2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2x1bW5zID0gdGFyZ2V0W1RhYmxlLlN5bWJvbC5Db2x1bW5zXTtcbiAgICAgIGlmICghY29sdW1ucykge1xuICAgICAgICByZXR1cm4gY29sdW1ucztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb3hpZWRDb2x1bW5zID0ge307XG4gICAgICBPYmplY3Qua2V5cyhjb2x1bW5zKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICBwcm94aWVkQ29sdW1uc1trZXldID0gbmV3IFByb3h5KFxuICAgICAgICAgIGNvbHVtbnNba2V5XSxcbiAgICAgICAgICBuZXcgQ29sdW1uQWxpYXNQcm94eUhhbmRsZXIobmV3IFByb3h5KHRhcmdldCwgdGhpcykpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwcm94aWVkQ29sdW1ucztcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSB0YXJnZXRbcHJvcF07XG4gICAgaWYgKGlzKHZhbHVlLCBDb2x1bW4pKSB7XG4gICAgICByZXR1cm4gbmV3IFByb3h5KHZhbHVlLCBuZXcgQ29sdW1uQWxpYXNQcm94eUhhbmRsZXIobmV3IFByb3h5KHRhcmdldCwgdGhpcykpKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG5jbGFzcyBSZWxhdGlvblRhYmxlQWxpYXNQcm94eUhhbmRsZXIge1xuICBjb25zdHJ1Y3RvcihhbGlhcykge1xuICAgIHRoaXMuYWxpYXMgPSBhbGlhcztcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJSZWxhdGlvblRhYmxlQWxpYXNQcm94eUhhbmRsZXJcIjtcbiAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgIGlmIChwcm9wID09PSBcInNvdXJjZVRhYmxlXCIpIHtcbiAgICAgIHJldHVybiBhbGlhc2VkVGFibGUodGFyZ2V0LnNvdXJjZVRhYmxlLCB0aGlzLmFsaWFzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldFtwcm9wXTtcbiAgfVxufVxuZnVuY3Rpb24gYWxpYXNlZFRhYmxlKHRhYmxlLCB0YWJsZUFsaWFzKSB7XG4gIHJldHVybiBuZXcgUHJveHkodGFibGUsIG5ldyBUYWJsZUFsaWFzUHJveHlIYW5kbGVyKHRhYmxlQWxpYXMsIGZhbHNlKSk7XG59XG5mdW5jdGlvbiBhbGlhc2VkUmVsYXRpb24ocmVsYXRpb24sIHRhYmxlQWxpYXMpIHtcbiAgcmV0dXJuIG5ldyBQcm94eShyZWxhdGlvbiwgbmV3IFJlbGF0aW9uVGFibGVBbGlhc1Byb3h5SGFuZGxlcih0YWJsZUFsaWFzKSk7XG59XG5mdW5jdGlvbiBhbGlhc2VkVGFibGVDb2x1bW4oY29sdW1uLCB0YWJsZUFsaWFzKSB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAgY29sdW1uLFxuICAgIG5ldyBDb2x1bW5BbGlhc1Byb3h5SGFuZGxlcihuZXcgUHJveHkoY29sdW1uLnRhYmxlLCBuZXcgVGFibGVBbGlhc1Byb3h5SGFuZGxlcih0YWJsZUFsaWFzLCBmYWxzZSkpKVxuICApO1xufVxuZnVuY3Rpb24gbWFwQ29sdW1uc0luQWxpYXNlZFNRTFRvQWxpYXMocXVlcnksIGFsaWFzKSB7XG4gIHJldHVybiBuZXcgU1FMLkFsaWFzZWQobWFwQ29sdW1uc0luU1FMVG9BbGlhcyhxdWVyeS5zcWwsIGFsaWFzKSwgcXVlcnkuZmllbGRBbGlhcyk7XG59XG5mdW5jdGlvbiBtYXBDb2x1bW5zSW5TUUxUb0FsaWFzKHF1ZXJ5LCBhbGlhcykge1xuICByZXR1cm4gc3FsLmpvaW4ocXVlcnkucXVlcnlDaHVua3MubWFwKChjKSA9PiB7XG4gICAgaWYgKGlzKGMsIENvbHVtbikpIHtcbiAgICAgIHJldHVybiBhbGlhc2VkVGFibGVDb2x1bW4oYywgYWxpYXMpO1xuICAgIH1cbiAgICBpZiAoaXMoYywgU1FMKSkge1xuICAgICAgcmV0dXJuIG1hcENvbHVtbnNJblNRTFRvQWxpYXMoYywgYWxpYXMpO1xuICAgIH1cbiAgICBpZiAoaXMoYywgU1FMLkFsaWFzZWQpKSB7XG4gICAgICByZXR1cm4gbWFwQ29sdW1uc0luQWxpYXNlZFNRTFRvQWxpYXMoYywgYWxpYXMpO1xuICAgIH1cbiAgICByZXR1cm4gYztcbiAgfSkpO1xufVxuZXhwb3J0IHtcbiAgQ29sdW1uQWxpYXNQcm94eUhhbmRsZXIsXG4gIFJlbGF0aW9uVGFibGVBbGlhc1Byb3h5SGFuZGxlcixcbiAgVGFibGVBbGlhc1Byb3h5SGFuZGxlcixcbiAgYWxpYXNlZFJlbGF0aW9uLFxuICBhbGlhc2VkVGFibGUsXG4gIGFsaWFzZWRUYWJsZUNvbHVtbixcbiAgbWFwQ29sdW1uc0luQWxpYXNlZFNRTFRvQWxpYXMsXG4gIG1hcENvbHVtbnNJblNRTFRvQWxpYXNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbGlhcy5qcy5tYXAiXSwibmFtZXMiOlsiQ29sdW1uIiwiZW50aXR5S2luZCIsImlzIiwiU1FMIiwic3FsIiwiVGFibGUiLCJWaWV3QmFzZUNvbmZpZyIsIkNvbHVtbkFsaWFzUHJveHlIYW5kbGVyIiwiY29uc3RydWN0b3IiLCJ0YWJsZSIsImdldCIsImNvbHVtbk9iaiIsInByb3AiLCJUYWJsZUFsaWFzUHJveHlIYW5kbGVyIiwiYWxpYXMiLCJyZXBsYWNlT3JpZ2luYWxOYW1lIiwidGFyZ2V0IiwiU3ltYm9sIiwiSXNBbGlhcyIsIk5hbWUiLCJPcmlnaW5hbE5hbWUiLCJuYW1lIiwiaXNBbGlhcyIsIkNvbHVtbnMiLCJjb2x1bW5zIiwicHJveGllZENvbHVtbnMiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwia2V5IiwiUHJveHkiLCJ2YWx1ZSIsIlJlbGF0aW9uVGFibGVBbGlhc1Byb3h5SGFuZGxlciIsImFsaWFzZWRUYWJsZSIsInNvdXJjZVRhYmxlIiwidGFibGVBbGlhcyIsImFsaWFzZWRSZWxhdGlvbiIsInJlbGF0aW9uIiwiYWxpYXNlZFRhYmxlQ29sdW1uIiwiY29sdW1uIiwibWFwQ29sdW1uc0luQWxpYXNlZFNRTFRvQWxpYXMiLCJxdWVyeSIsIkFsaWFzZWQiLCJtYXBDb2x1bW5zSW5TUUxUb0FsaWFzIiwiZmllbGRBbGlhcyIsImpvaW4iLCJxdWVyeUNodW5rcyIsImMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/alias.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/column-builder.js":
-/*!********************************************************!*\
- !*** ../../node_modules/drizzle-orm/column-builder.js ***!
- \********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ColumnBuilder: () => (/* binding */ ColumnBuilder)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nclass ColumnBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"ColumnBuilder\";\n }\n constructor(name, dataType, columnType){\n /**\n * Alias for {@link $defaultFn}.\n */ this.$default = this.$defaultFn;\n this.config = {\n name,\n notNull: false,\n default: void 0,\n hasDefault: false,\n primaryKey: false,\n isUnique: false,\n uniqueName: void 0,\n uniqueType: void 0,\n dataType,\n columnType\n };\n }\n /**\n * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n *\n * @example\n * ```ts\n * const users = pgTable('users', {\n * \tid: integer('id').$type<UserId>().primaryKey(),\n * \tdetails: json('details').$type<UserDetails>().notNull(),\n * });\n * ```\n */ $type() {\n return this;\n }\n /**\n * Adds a `not null` clause to the column definition.\n *\n * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n */ notNull() {\n this.config.notNull = true;\n return this;\n }\n /**\n * Adds a `default <value>` clause to the column definition.\n *\n * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n *\n * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n */ default(value) {\n this.config.default = value;\n this.config.hasDefault = true;\n return this;\n }\n /**\n * Adds a dynamic default value to the column.\n * The function will be called when the row is inserted, and the returned value will be used as the column value.\n *\n * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n */ $defaultFn(fn) {\n this.config.defaultFn = fn;\n this.config.hasDefault = true;\n return this;\n }\n /**\n * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n *\n * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n */ primaryKey() {\n this.config.primaryKey = true;\n this.config.notNull = true;\n return this;\n }\n}\n //# sourceMappingURL=column-builder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2NvbHVtbi1idWlsZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDO0FBQ3pDLE1BQU1DOztZQUNHLENBQUNELGtEQUFVQSxDQUFDLEdBQUc7O0lBRXRCRSxZQUFZQyxJQUFJLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxDQUFFO1FBNER4Qzs7R0FFQyxRQUNEQyxXQUFXLElBQUksQ0FBQ0MsVUFBVTtRQTlEeEIsSUFBSSxDQUFDQyxNQUFNLEdBQUc7WUFDWkw7WUFDQU0sU0FBUztZQUNUQyxTQUFTLEtBQUs7WUFDZEMsWUFBWTtZQUNaQyxZQUFZO1lBQ1pDLFVBQVU7WUFDVkMsWUFBWSxLQUFLO1lBQ2pCQyxZQUFZLEtBQUs7WUFDakJYO1lBQ0FDO1FBQ0Y7SUFDRjtJQUNBOzs7Ozs7Ozs7O0dBVUMsR0FDRFcsUUFBUTtRQUNOLE9BQU8sSUFBSTtJQUNiO0lBQ0E7Ozs7R0FJQyxHQUNEUCxVQUFVO1FBQ1IsSUFBSSxDQUFDRCxNQUFNLENBQUNDLE9BQU8sR0FBRztRQUN0QixPQUFPLElBQUk7SUFDYjtJQUNBOzs7Ozs7R0FNQyxHQUNEQyxRQUFRTyxLQUFLLEVBQUU7UUFDYixJQUFJLENBQUNULE1BQU0sQ0FBQ0UsT0FBTyxHQUFHTztRQUN0QixJQUFJLENBQUNULE1BQU0sQ0FBQ0csVUFBVSxHQUFHO1FBQ3pCLE9BQU8sSUFBSTtJQUNiO0lBQ0E7Ozs7O0dBS0MsR0FDREosV0FBV1csRUFBRSxFQUFFO1FBQ2IsSUFBSSxDQUFDVixNQUFNLENBQUNXLFNBQVMsR0FBR0Q7UUFDeEIsSUFBSSxDQUFDVixNQUFNLENBQUNHLFVBQVUsR0FBRztRQUN6QixPQUFPLElBQUk7SUFDYjtJQUtBOzs7O0dBSUMsR0FDREMsYUFBYTtRQUNYLElBQUksQ0FBQ0osTUFBTSxDQUFDSSxVQUFVLEdBQUc7UUFDekIsSUFBSSxDQUFDSixNQUFNLENBQUNDLE9BQU8sR0FBRztRQUN0QixPQUFPLElBQUk7SUFDYjtBQUNGO0FBR0UsQ0FDRiwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9jb2x1bW4tYnVpbGRlci5qcz8yY2E0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmNsYXNzIENvbHVtbkJ1aWxkZXIge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJDb2x1bW5CdWlsZGVyXCI7XG4gIGNvbmZpZztcbiAgY29uc3RydWN0b3IobmFtZSwgZGF0YVR5cGUsIGNvbHVtblR5cGUpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIG5hbWUsXG4gICAgICBub3ROdWxsOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IHZvaWQgMCxcbiAgICAgIGhhc0RlZmF1bHQ6IGZhbHNlLFxuICAgICAgcHJpbWFyeUtleTogZmFsc2UsXG4gICAgICBpc1VuaXF1ZTogZmFsc2UsXG4gICAgICB1bmlxdWVOYW1lOiB2b2lkIDAsXG4gICAgICB1bmlxdWVUeXBlOiB2b2lkIDAsXG4gICAgICBkYXRhVHlwZSxcbiAgICAgIGNvbHVtblR5cGVcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGNvbHVtbi4gQ29tbW9ubHkgdXNlZCB3aXRoIGBqc29uYCBjb2x1bW5zLiBBbHNvLCB1c2VmdWwgZm9yIGJyYW5kZWQgdHlwZXMuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGNvbnN0IHVzZXJzID0gcGdUYWJsZSgndXNlcnMnLCB7XG4gICAqIFx0aWQ6IGludGVnZXIoJ2lkJykuJHR5cGU8VXNlcklkPigpLnByaW1hcnlLZXkoKSxcbiAgICogXHRkZXRhaWxzOiBqc29uKCdkZXRhaWxzJykuJHR5cGU8VXNlckRldGFpbHM+KCkubm90TnVsbCgpLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICAkdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogQWRkcyBhIGBub3QgbnVsbGAgY2xhdXNlIHRvIHRoZSBjb2x1bW4gZGVmaW5pdGlvbi5cbiAgICpcbiAgICogQWZmZWN0cyB0aGUgYHNlbGVjdGAgbW9kZWwgb2YgdGhlIHRhYmxlIC0gY29sdW1ucyAqd2l0aG91dCogYG5vdCBudWxsYCB3aWxsIGJlIG51bGxhYmxlIG9uIHNlbGVjdC5cbiAgICovXG4gIG5vdE51bGwoKSB7XG4gICAgdGhpcy5jb25maWcubm90TnVsbCA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEFkZHMgYSBgZGVmYXVsdCA8dmFsdWU+YCBjbGF1c2UgdG8gdGhlIGNvbHVtbiBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBBZmZlY3RzIHRoZSBgaW5zZXJ0YCBtb2RlbCBvZiB0aGUgdGFibGUgLSBjb2x1bW5zICp3aXRoKiBgZGVmYXVsdGAgYXJlIG9wdGlvbmFsIG9uIGluc2VydC5cbiAgICpcbiAgICogSWYgeW91IG5lZWQgdG8gc2V0IGEgZHluYW1pYyBkZWZhdWx0IHZhbHVlLCB1c2Uge0BsaW5rICRkZWZhdWx0Rm59IGluc3RlYWQuXG4gICAqL1xuICBkZWZhdWx0KHZhbHVlKSB7XG4gICAgdGhpcy5jb25maWcuZGVmYXVsdCA9IHZhbHVlO1xuICAgIHRoaXMuY29uZmlnLmhhc0RlZmF1bHQgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBBZGRzIGEgZHluYW1pYyBkZWZhdWx0IHZhbHVlIHRvIHRoZSBjb2x1bW4uXG4gICAqIFRoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSByb3cgaXMgaW5zZXJ0ZWQsIGFuZCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSB1c2VkIGFzIHRoZSBjb2x1bW4gdmFsdWUuXG4gICAqXG4gICAqICoqTm90ZToqKiBUaGlzIHZhbHVlIGRvZXMgbm90IGFmZmVjdCB0aGUgYGRyaXp6bGUta2l0YCBiZWhhdmlvciwgaXQgaXMgb25seSB1c2VkIGF0IHJ1bnRpbWUgaW4gYGRyaXp6bGUtb3JtYC5cbiAgICovXG4gICRkZWZhdWx0Rm4oZm4pIHtcbiAgICB0aGlzLmNvbmZpZy5kZWZhdWx0Rm4gPSBmbjtcbiAgICB0aGlzLmNvbmZpZy5oYXNEZWZhdWx0ID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogQWxpYXMgZm9yIHtAbGluayAkZGVmYXVsdEZufS5cbiAgICovXG4gICRkZWZhdWx0ID0gdGhpcy4kZGVmYXVsdEZuO1xuICAvKipcbiAgICogQWRkcyBhIGBwcmltYXJ5IGtleWAgY2xhdXNlIHRvIHRoZSBjb2x1bW4gZGVmaW5pdGlvbi4gVGhpcyBpbXBsaWNpdGx5IG1ha2VzIHRoZSBjb2x1bW4gYG5vdCBudWxsYC5cbiAgICpcbiAgICogSW4gU1FMaXRlLCBgaW50ZWdlciBwcmltYXJ5IGtleWAgaW1wbGljaXRseSBtYWtlcyB0aGUgY29sdW1uIGF1dG8taW5jcmVtZW50aW5nLlxuICAgKi9cbiAgcHJpbWFyeUtleSgpIHtcbiAgICB0aGlzLmNvbmZpZy5wcmltYXJ5S2V5ID0gdHJ1ZTtcbiAgICB0aGlzLmNvbmZpZy5ub3ROdWxsID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuZXhwb3J0IHtcbiAgQ29sdW1uQnVpbGRlclxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbHVtbi1idWlsZGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiQ29sdW1uQnVpbGRlciIsImNvbnN0cnVjdG9yIiwibmFtZSIsImRhdGFUeXBlIiwiY29sdW1uVHlwZSIsIiRkZWZhdWx0IiwiJGRlZmF1bHRGbiIsImNvbmZpZyIsIm5vdE51bGwiLCJkZWZhdWx0IiwiaGFzRGVmYXVsdCIsInByaW1hcnlLZXkiLCJpc1VuaXF1ZSIsInVuaXF1ZU5hbWUiLCJ1bmlxdWVUeXBlIiwiJHR5cGUiLCJ2YWx1ZSIsImZuIiwiZGVmYXVsdEZuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/column-builder.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/column.js":
-/*!************************************************!*\
- !*** ../../node_modules/drizzle-orm/column.js ***!
- \************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Column: () => (/* binding */ Column)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nclass Column {\n constructor(table, config){\n this.enumValues = void 0;\n this.table = table;\n this.config = config;\n this.name = config.name;\n this.notNull = config.notNull;\n this.default = config.default;\n this.defaultFn = config.defaultFn;\n this.hasDefault = config.hasDefault;\n this.primary = config.primaryKey;\n this.isUnique = config.isUnique;\n this.uniqueName = config.uniqueName;\n this.uniqueType = config.uniqueType;\n this.dataType = config.dataType;\n this.columnType = config.columnType;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"Column\";\n }\n mapFromDriverValue(value) {\n return value;\n }\n mapToDriverValue(value) {\n return value;\n }\n}\n //# sourceMappingURL=column.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2NvbHVtbi5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF5QztBQUN6QyxNQUFNQztJQUNKQyxZQUFZQyxLQUFLLEVBQUVDLE1BQU0sQ0FBRTthQTJCM0JDLGFBQWEsS0FBSztRQTFCaEIsSUFBSSxDQUFDRixLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDRSxJQUFJLEdBQUdGLE9BQU9FLElBQUk7UUFDdkIsSUFBSSxDQUFDQyxPQUFPLEdBQUdILE9BQU9HLE9BQU87UUFDN0IsSUFBSSxDQUFDQyxPQUFPLEdBQUdKLE9BQU9JLE9BQU87UUFDN0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdMLE9BQU9LLFNBQVM7UUFDakMsSUFBSSxDQUFDQyxVQUFVLEdBQUdOLE9BQU9NLFVBQVU7UUFDbkMsSUFBSSxDQUFDQyxPQUFPLEdBQUdQLE9BQU9RLFVBQVU7UUFDaEMsSUFBSSxDQUFDQyxRQUFRLEdBQUdULE9BQU9TLFFBQVE7UUFDL0IsSUFBSSxDQUFDQyxVQUFVLEdBQUdWLE9BQU9VLFVBQVU7UUFDbkMsSUFBSSxDQUFDQyxVQUFVLEdBQUdYLE9BQU9XLFVBQVU7UUFDbkMsSUFBSSxDQUFDQyxRQUFRLEdBQUdaLE9BQU9ZLFFBQVE7UUFDL0IsSUFBSSxDQUFDQyxVQUFVLEdBQUdiLE9BQU9hLFVBQVU7SUFDckM7O1lBQ08sQ0FBQ2pCLGtEQUFVQSxDQUFDLEdBQUc7O0lBY3RCa0IsbUJBQW1CQyxLQUFLLEVBQUU7UUFDeEIsT0FBT0E7SUFDVDtJQUNBQyxpQkFBaUJELEtBQUssRUFBRTtRQUN0QixPQUFPQTtJQUNUO0FBQ0Y7QUFHRSxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2NvbHVtbi5qcz9iZTJkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmNsYXNzIENvbHVtbiB7XG4gIGNvbnN0cnVjdG9yKHRhYmxlLCBjb25maWcpIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5uYW1lID0gY29uZmlnLm5hbWU7XG4gICAgdGhpcy5ub3ROdWxsID0gY29uZmlnLm5vdE51bGw7XG4gICAgdGhpcy5kZWZhdWx0ID0gY29uZmlnLmRlZmF1bHQ7XG4gICAgdGhpcy5kZWZhdWx0Rm4gPSBjb25maWcuZGVmYXVsdEZuO1xuICAgIHRoaXMuaGFzRGVmYXVsdCA9IGNvbmZpZy5oYXNEZWZhdWx0O1xuICAgIHRoaXMucHJpbWFyeSA9IGNvbmZpZy5wcmltYXJ5S2V5O1xuICAgIHRoaXMuaXNVbmlxdWUgPSBjb25maWcuaXNVbmlxdWU7XG4gICAgdGhpcy51bmlxdWVOYW1lID0gY29uZmlnLnVuaXF1ZU5hbWU7XG4gICAgdGhpcy51bmlxdWVUeXBlID0gY29uZmlnLnVuaXF1ZVR5cGU7XG4gICAgdGhpcy5kYXRhVHlwZSA9IGNvbmZpZy5kYXRhVHlwZTtcbiAgICB0aGlzLmNvbHVtblR5cGUgPSBjb25maWcuY29sdW1uVHlwZTtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJDb2x1bW5cIjtcbiAgbmFtZTtcbiAgcHJpbWFyeTtcbiAgbm90TnVsbDtcbiAgZGVmYXVsdDtcbiAgZGVmYXVsdEZuO1xuICBoYXNEZWZhdWx0O1xuICBpc1VuaXF1ZTtcbiAgdW5pcXVlTmFtZTtcbiAgdW5pcXVlVHlwZTtcbiAgZGF0YVR5cGU7XG4gIGNvbHVtblR5cGU7XG4gIGVudW1WYWx1ZXMgPSB2b2lkIDA7XG4gIGNvbmZpZztcbiAgbWFwRnJvbURyaXZlclZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIG1hcFRvRHJpdmVyVmFsdWUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIENvbHVtblxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbHVtbi5qcy5tYXAiXSwibmFtZXMiOlsiZW50aXR5S2luZCIsIkNvbHVtbiIsImNvbnN0cnVjdG9yIiwidGFibGUiLCJjb25maWciLCJlbnVtVmFsdWVzIiwibmFtZSIsIm5vdE51bGwiLCJkZWZhdWx0IiwiZGVmYXVsdEZuIiwiaGFzRGVmYXVsdCIsInByaW1hcnkiLCJwcmltYXJ5S2V5IiwiaXNVbmlxdWUiLCJ1bmlxdWVOYW1lIiwidW5pcXVlVHlwZSIsImRhdGFUeXBlIiwiY29sdW1uVHlwZSIsIm1hcEZyb21Ecml2ZXJWYWx1ZSIsInZhbHVlIiwibWFwVG9Ecml2ZXJWYWx1ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/column.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/d1/driver.js":
-/*!***************************************************!*\
- !*** ../../node_modules/drizzle-orm/d1/driver.js ***!
- \***************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DrizzleD1Database: () => (/* binding */ DrizzleD1Database),\n/* harmony export */ drizzle: () => (/* binding */ drizzle)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../logger.js */ \"(rsc)/../../node_modules/drizzle-orm/logger.js\");\n/* harmony import */ var _relations_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../relations.js */ \"(rsc)/../../node_modules/drizzle-orm/relations.js\");\n/* harmony import */ var _sqlite_core_db_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sqlite-core/db.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/db.js\");\n/* harmony import */ var _sqlite_core_dialect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../sqlite-core/dialect.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/dialect.js\");\n/* harmony import */ var _session_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./session.js */ \"(rsc)/../../node_modules/drizzle-orm/d1/session.js\");\n\n\n\n\n\n\nclass DrizzleD1Database extends _sqlite_core_db_js__WEBPACK_IMPORTED_MODULE_0__.BaseSQLiteDatabase {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"LibSQLDatabase\";\n }\n async batch(batch) {\n return this.session.batch(batch);\n }\n}\nfunction drizzle(client, config = {}) {\n const dialect = new _sqlite_core_dialect_js__WEBPACK_IMPORTED_MODULE_2__.SQLiteAsyncDialect();\n let logger;\n if (config.logger === true) {\n logger = new _logger_js__WEBPACK_IMPORTED_MODULE_3__.DefaultLogger();\n } else if (config.logger !== false) {\n logger = config.logger;\n }\n let schema;\n if (config.schema) {\n const tablesConfig = (0,_relations_js__WEBPACK_IMPORTED_MODULE_4__.extractTablesRelationalConfig)(config.schema, _relations_js__WEBPACK_IMPORTED_MODULE_4__.createTableRelationsHelpers);\n schema = {\n fullSchema: config.schema,\n schema: tablesConfig.tables,\n tableNamesMap: tablesConfig.tableNamesMap\n };\n }\n const session = new _session_js__WEBPACK_IMPORTED_MODULE_5__.SQLiteD1Session(client, dialect, schema, {\n logger\n });\n return new DrizzleD1Database(\"async\", dialect, session, schema);\n}\n //# sourceMappingURL=driver.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2QxL2RyaXZlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUEwQztBQUNHO0FBSXBCO0FBQ2lDO0FBQ0s7QUFDaEI7QUFDL0MsTUFBTU8sMEJBQTBCSCxrRUFBa0JBOztZQUN6QyxDQUFDSixrREFBVUEsQ0FBQyxHQUFHOztJQUN0QixNQUFNUSxNQUFNQSxLQUFLLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDQTtJQUM1QjtBQUNGO0FBQ0EsU0FBU0UsUUFBUUMsTUFBTSxFQUFFQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxNQUFNQyxVQUFVLElBQUlSLHVFQUFrQkE7SUFDdEMsSUFBSVM7SUFDSixJQUFJRixPQUFPRSxNQUFNLEtBQUssTUFBTTtRQUMxQkEsU0FBUyxJQUFJYixxREFBYUE7SUFDNUIsT0FBTyxJQUFJVyxPQUFPRSxNQUFNLEtBQUssT0FBTztRQUNsQ0EsU0FBU0YsT0FBT0UsTUFBTTtJQUN4QjtJQUNBLElBQUlDO0lBQ0osSUFBSUgsT0FBT0csTUFBTSxFQUFFO1FBQ2pCLE1BQU1DLGVBQWViLDRFQUE2QkEsQ0FDaERTLE9BQU9HLE1BQU0sRUFDYmIsc0VBQTJCQTtRQUU3QmEsU0FBUztZQUNQRSxZQUFZTCxPQUFPRyxNQUFNO1lBQ3pCQSxRQUFRQyxhQUFhRSxNQUFNO1lBQzNCQyxlQUFlSCxhQUFhRyxhQUFhO1FBQzNDO0lBQ0Y7SUFDQSxNQUFNVixVQUFVLElBQUlILHdEQUFlQSxDQUFDSyxRQUFRRSxTQUFTRSxRQUFRO1FBQUVEO0lBQU87SUFDdEUsT0FBTyxJQUFJUCxrQkFBa0IsU0FBU00sU0FBU0osU0FBU007QUFDMUQ7QUFJRSxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2QxL2RyaXZlci5qcz8yNzVlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nZ2VyIH0gZnJvbSBcIi4uL2xvZ2dlci5qc1wiO1xuaW1wb3J0IHtcbiAgY3JlYXRlVGFibGVSZWxhdGlvbnNIZWxwZXJzLFxuICBleHRyYWN0VGFibGVzUmVsYXRpb25hbENvbmZpZ1xufSBmcm9tIFwiLi4vcmVsYXRpb25zLmpzXCI7XG5pbXBvcnQgeyBCYXNlU1FMaXRlRGF0YWJhc2UgfSBmcm9tIFwiLi4vc3FsaXRlLWNvcmUvZGIuanNcIjtcbmltcG9ydCB7IFNRTGl0ZUFzeW5jRGlhbGVjdCB9IGZyb20gXCIuLi9zcWxpdGUtY29yZS9kaWFsZWN0LmpzXCI7XG5pbXBvcnQgeyBTUUxpdGVEMVNlc3Npb24gfSBmcm9tIFwiLi9zZXNzaW9uLmpzXCI7XG5jbGFzcyBEcml6emxlRDFEYXRhYmFzZSBleHRlbmRzIEJhc2VTUUxpdGVEYXRhYmFzZSB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIkxpYlNRTERhdGFiYXNlXCI7XG4gIGFzeW5jIGJhdGNoKGJhdGNoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5iYXRjaChiYXRjaCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGRyaXp6bGUoY2xpZW50LCBjb25maWcgPSB7fSkge1xuICBjb25zdCBkaWFsZWN0ID0gbmV3IFNRTGl0ZUFzeW5jRGlhbGVjdCgpO1xuICBsZXQgbG9nZ2VyO1xuICBpZiAoY29uZmlnLmxvZ2dlciA9PT0gdHJ1ZSkge1xuICAgIGxvZ2dlciA9IG5ldyBEZWZhdWx0TG9nZ2VyKCk7XG4gIH0gZWxzZSBpZiAoY29uZmlnLmxvZ2dlciAhPT0gZmFsc2UpIHtcbiAgICBsb2dnZXIgPSBjb25maWcubG9nZ2VyO1xuICB9XG4gIGxldCBzY2hlbWE7XG4gIGlmIChjb25maWcuc2NoZW1hKSB7XG4gICAgY29uc3QgdGFibGVzQ29uZmlnID0gZXh0cmFjdFRhYmxlc1JlbGF0aW9uYWxDb25maWcoXG4gICAgICBjb25maWcuc2NoZW1hLFxuICAgICAgY3JlYXRlVGFibGVSZWxhdGlvbnNIZWxwZXJzXG4gICAgKTtcbiAgICBzY2hlbWEgPSB7XG4gICAgICBmdWxsU2NoZW1hOiBjb25maWcuc2NoZW1hLFxuICAgICAgc2NoZW1hOiB0YWJsZXNDb25maWcudGFibGVzLFxuICAgICAgdGFibGVOYW1lc01hcDogdGFibGVzQ29uZmlnLnRhYmxlTmFtZXNNYXBcbiAgICB9O1xuICB9XG4gIGNvbnN0IHNlc3Npb24gPSBuZXcgU1FMaXRlRDFTZXNzaW9uKGNsaWVudCwgZGlhbGVjdCwgc2NoZW1hLCB7IGxvZ2dlciB9KTtcbiAgcmV0dXJuIG5ldyBEcml6emxlRDFEYXRhYmFzZShcImFzeW5jXCIsIGRpYWxlY3QsIHNlc3Npb24sIHNjaGVtYSk7XG59XG5leHBvcnQge1xuICBEcml6emxlRDFEYXRhYmFzZSxcbiAgZHJpenpsZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRyaXZlci5qcy5tYXAiXSwibmFtZXMiOlsiZW50aXR5S2luZCIsIkRlZmF1bHRMb2dnZXIiLCJjcmVhdGVUYWJsZVJlbGF0aW9uc0hlbHBlcnMiLCJleHRyYWN0VGFibGVzUmVsYXRpb25hbENvbmZpZyIsIkJhc2VTUUxpdGVEYXRhYmFzZSIsIlNRTGl0ZUFzeW5jRGlhbGVjdCIsIlNRTGl0ZUQxU2Vzc2lvbiIsIkRyaXp6bGVEMURhdGFiYXNlIiwiYmF0Y2giLCJzZXNzaW9uIiwiZHJpenpsZSIsImNsaWVudCIsImNvbmZpZyIsImRpYWxlY3QiLCJsb2dnZXIiLCJzY2hlbWEiLCJ0YWJsZXNDb25maWciLCJmdWxsU2NoZW1hIiwidGFibGVzIiwidGFibGVOYW1lc01hcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/d1/driver.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/d1/session.js":
-/*!****************************************************!*\
- !*** ../../node_modules/drizzle-orm/d1/session.js ***!
- \****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ D1PreparedQuery: () => (/* binding */ D1PreparedQuery),\n/* harmony export */ D1Transaction: () => (/* binding */ D1Transaction),\n/* harmony export */ SQLiteD1Session: () => (/* binding */ SQLiteD1Session)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger.js */ \"(rsc)/../../node_modules/drizzle-orm/logger.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var _sqlite_core_session_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sqlite-core/session.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/session.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ \"(rsc)/../../node_modules/drizzle-orm/utils.js\");\n\n\n\n\n\n\nclass SQLiteD1Session extends _sqlite_core_session_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteSession {\n constructor(client, dialect, schema, options = {}){\n super(dialect);\n this.client = client;\n this.schema = schema;\n this.options = options;\n this.logger = options.logger ?? new _logger_js__WEBPACK_IMPORTED_MODULE_1__.NoopLogger();\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_2__.entityKind] = \"SQLiteD1Session\";\n }\n prepareQuery(query, fields, executeMethod, customResultMapper) {\n const stmt = this.client.prepare(query.sql);\n return new D1PreparedQuery(stmt, query, this.logger, fields, executeMethod, customResultMapper);\n }\n /*override */ async batch(queries) {\n const preparedQueries = [];\n const builtQueries = [];\n for (const query of queries){\n const preparedQuery = query._prepare();\n const builtQuery = preparedQuery.getQuery();\n preparedQueries.push(preparedQuery);\n if (builtQuery.params.length > 0) {\n builtQueries.push(preparedQuery.stmt.bind(...builtQuery.params));\n } else {\n const builtQuery2 = preparedQuery.getQuery();\n builtQueries.push(this.client.prepare(builtQuery2.sql).bind(...builtQuery2.params));\n }\n }\n const batchResults = await this.client.batch(builtQueries);\n return batchResults.map((result, i)=>preparedQueries[i].mapResult(result, true));\n }\n extractRawAllValueFromBatchResult(result) {\n return result.results;\n }\n extractRawGetValueFromBatchResult(result) {\n return result.results[0];\n }\n extractRawValuesValueFromBatchResult(result) {\n return d1ToRawMapping(result.results);\n }\n async transaction(transaction, config) {\n const tx = new D1Transaction(\"async\", this.dialect, this, this.schema);\n await this.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.sql.raw(`begin${config?.behavior ? \" \" + config.behavior : \"\"}`));\n try {\n const result = await transaction(tx);\n await this.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.sql`commit`);\n return result;\n } catch (err) {\n await this.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.sql`rollback`);\n throw err;\n }\n }\n}\nclass D1Transaction extends _sqlite_core_session_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteTransaction {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_2__.entityKind] = \"D1Transaction\";\n }\n async transaction(transaction) {\n const savepointName = `sp${this.nestedIndex}`;\n const tx = new D1Transaction(\"async\", this.dialect, this.session, this.schema, this.nestedIndex + 1);\n await this.session.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.sql.raw(`savepoint ${savepointName}`));\n try {\n const result = await transaction(tx);\n await this.session.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.sql.raw(`release savepoint ${savepointName}`));\n return result;\n } catch (err) {\n await this.session.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.sql.raw(`rollback to savepoint ${savepointName}`));\n throw err;\n }\n }\n}\nfunction d1ToRawMapping(results) {\n const rows = [];\n for (const row of results){\n const entry = Object.keys(row).map((k)=>row[k]);\n rows.push(entry);\n }\n return rows;\n}\nclass D1PreparedQuery extends _sqlite_core_session_js__WEBPACK_IMPORTED_MODULE_0__.SQLitePreparedQuery {\n constructor(stmt, query, logger, fields, executeMethod, customResultMapper){\n super(\"async\", executeMethod, query);\n this.logger = logger;\n this.customResultMapper = customResultMapper;\n this.fields = fields;\n this.stmt = stmt;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_2__.entityKind] = \"D1PreparedQuery\";\n }\n run(placeholderValues) {\n const params = (0,_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.fillPlaceholders)(this.query.params, placeholderValues ?? {});\n this.logger.logQuery(this.query.sql, params);\n return this.stmt.bind(...params).run();\n }\n async all(placeholderValues) {\n const { fields, query, logger, stmt, customResultMapper } = this;\n if (!fields && !customResultMapper) {\n const params = (0,_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.fillPlaceholders)(query.params, placeholderValues ?? {});\n logger.logQuery(query.sql, params);\n return stmt.bind(...params).all().then(({ results })=>this.mapAllResult(results));\n }\n const rows = await this.values(placeholderValues);\n return this.mapAllResult(rows);\n }\n mapAllResult(rows, isFromBatch) {\n if (isFromBatch) {\n rows = d1ToRawMapping(rows.results);\n }\n if (!this.fields && !this.customResultMapper) {\n return rows;\n }\n if (this.customResultMapper) {\n return this.customResultMapper(rows);\n }\n return rows.map((row)=>(0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.mapResultRow)(this.fields, row, this.joinsNotNullableMap));\n }\n async get(placeholderValues) {\n const { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n if (!fields && !customResultMapper) {\n const params = (0,_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.fillPlaceholders)(query.params, placeholderValues ?? {});\n logger.logQuery(query.sql, params);\n return stmt.bind(...params).all().then(({ results })=>results[0]);\n }\n const rows = await this.values(placeholderValues);\n if (!rows[0]) {\n return void 0;\n }\n if (customResultMapper) {\n return customResultMapper(rows);\n }\n return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.mapResultRow)(fields, rows[0], joinsNotNullableMap);\n }\n mapGetResult(result, isFromBatch) {\n if (isFromBatch) {\n result = d1ToRawMapping(result.results)[0];\n }\n if (!this.fields && !this.customResultMapper) {\n return result;\n }\n if (this.customResultMapper) {\n return this.customResultMapper([\n result\n ]);\n }\n return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.mapResultRow)(this.fields, result, this.joinsNotNullableMap);\n }\n values(placeholderValues) {\n const params = (0,_sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.fillPlaceholders)(this.query.params, placeholderValues ?? {});\n this.logger.logQuery(this.query.sql, params);\n return this.stmt.bind(...params).raw();\n }\n}\n //# sourceMappingURL=session.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2QxL3Nlc3Npb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBMEM7QUFDQTtBQUNZO0FBQ007QUFDbUI7QUFDcEM7QUFDM0MsTUFBTVEsd0JBQXdCRixrRUFBYUE7SUFDekNHLFlBQVlDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFVBQVUsQ0FBQyxDQUFDLENBQUU7UUFDakQsS0FBSyxDQUFDRjtRQUNOLElBQUksQ0FBQ0QsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0UsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsTUFBTSxHQUFHRCxRQUFRQyxNQUFNLElBQUksSUFBSWIsa0RBQVVBO0lBQ2hEOztZQUNPLENBQUNELGtEQUFVQSxDQUFDLEdBQUc7O0lBRXRCZSxhQUFhQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsYUFBYSxFQUFFQyxrQkFBa0IsRUFBRTtRQUM3RCxNQUFNQyxPQUFPLElBQUksQ0FBQ1YsTUFBTSxDQUFDVyxPQUFPLENBQUNMLE1BQU1iLEdBQUc7UUFDMUMsT0FBTyxJQUFJbUIsZ0JBQWdCRixNQUFNSixPQUFPLElBQUksQ0FBQ0YsTUFBTSxFQUFFRyxRQUFRQyxlQUFlQztJQUM5RTtJQUNBLFdBQVcsR0FDWCxNQUFNSSxNQUFNQyxPQUFPLEVBQUU7UUFDbkIsTUFBTUMsa0JBQWtCLEVBQUU7UUFDMUIsTUFBTUMsZUFBZSxFQUFFO1FBQ3ZCLEtBQUssTUFBTVYsU0FBU1EsUUFBUztZQUMzQixNQUFNRyxnQkFBZ0JYLE1BQU1ZLFFBQVE7WUFDcEMsTUFBTUMsYUFBYUYsY0FBY0csUUFBUTtZQUN6Q0wsZ0JBQWdCTSxJQUFJLENBQUNKO1lBQ3JCLElBQUlFLFdBQVdHLE1BQU0sQ0FBQ0MsTUFBTSxHQUFHLEdBQUc7Z0JBQ2hDUCxhQUFhSyxJQUFJLENBQUNKLGNBQWNQLElBQUksQ0FBQ2MsSUFBSSxJQUFJTCxXQUFXRyxNQUFNO1lBQ2hFLE9BQU87Z0JBQ0wsTUFBTUcsY0FBY1IsY0FBY0csUUFBUTtnQkFDMUNKLGFBQWFLLElBQUksQ0FDZixJQUFJLENBQUNyQixNQUFNLENBQUNXLE9BQU8sQ0FBQ2MsWUFBWWhDLEdBQUcsRUFBRStCLElBQUksSUFBSUMsWUFBWUgsTUFBTTtZQUVuRTtRQUNGO1FBQ0EsTUFBTUksZUFBZSxNQUFNLElBQUksQ0FBQzFCLE1BQU0sQ0FBQ2EsS0FBSyxDQUFDRztRQUM3QyxPQUFPVSxhQUFhQyxHQUFHLENBQUMsQ0FBQ0MsUUFBUUMsSUFBTWQsZUFBZSxDQUFDYyxFQUFFLENBQUNDLFNBQVMsQ0FBQ0YsUUFBUTtJQUM5RTtJQUNBRyxrQ0FBa0NILE1BQU0sRUFBRTtRQUN4QyxPQUFPQSxPQUFPSSxPQUFPO0lBQ3ZCO0lBQ0FDLGtDQUFrQ0wsTUFBTSxFQUFFO1FBQ3hDLE9BQU9BLE9BQU9JLE9BQU8sQ0FBQyxFQUFFO0lBQzFCO0lBQ0FFLHFDQUFxQ04sTUFBTSxFQUFFO1FBQzNDLE9BQU9PLGVBQWVQLE9BQU9JLE9BQU87SUFDdEM7SUFDQSxNQUFNSSxZQUFZQSxXQUFXLEVBQUVDLE1BQU0sRUFBRTtRQUNyQyxNQUFNQyxLQUFLLElBQUlDLGNBQWMsU0FBUyxJQUFJLENBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQ0MsTUFBTTtRQUNyRSxNQUFNLElBQUksQ0FBQ3NDLEdBQUcsQ0FBQy9DLDRDQUFHQSxDQUFDZ0QsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFSixRQUFRSyxXQUFXLE1BQU1MLE9BQU9LLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDOUUsSUFBSTtZQUNGLE1BQU1kLFNBQVMsTUFBTVEsWUFBWUU7WUFDakMsTUFBTSxJQUFJLENBQUNFLEdBQUcsQ0FBQy9DLDRDQUFHLENBQUMsTUFBTSxDQUFDO1lBQzFCLE9BQU9tQztRQUNULEVBQUUsT0FBT2UsS0FBSztZQUNaLE1BQU0sSUFBSSxDQUFDSCxHQUFHLENBQUMvQyw0Q0FBRyxDQUFDLFFBQVEsQ0FBQztZQUM1QixNQUFNa0Q7UUFDUjtJQUNGO0FBQ0Y7QUFDQSxNQUFNSixzQkFBc0I3QyxzRUFBaUJBOztZQUNwQyxDQUFDSixrREFBVUEsQ0FBQyxHQUFHOztJQUN0QixNQUFNOEMsWUFBWUEsV0FBVyxFQUFFO1FBQzdCLE1BQU1RLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUNDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLE1BQU1QLEtBQUssSUFBSUMsY0FBYyxTQUFTLElBQUksQ0FBQ3RDLE9BQU8sRUFBRSxJQUFJLENBQUM2QyxPQUFPLEVBQUUsSUFBSSxDQUFDNUMsTUFBTSxFQUFFLElBQUksQ0FBQzJDLFdBQVcsR0FBRztRQUNsRyxNQUFNLElBQUksQ0FBQ0MsT0FBTyxDQUFDTixHQUFHLENBQUMvQyw0Q0FBR0EsQ0FBQ2dELEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRUcsY0FBYyxDQUFDO1FBQzNELElBQUk7WUFDRixNQUFNaEIsU0FBUyxNQUFNUSxZQUFZRTtZQUNqQyxNQUFNLElBQUksQ0FBQ1EsT0FBTyxDQUFDTixHQUFHLENBQUMvQyw0Q0FBR0EsQ0FBQ2dELEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFRyxjQUFjLENBQUM7WUFDbkUsT0FBT2hCO1FBQ1QsRUFBRSxPQUFPZSxLQUFLO1lBQ1osTUFBTSxJQUFJLENBQUNHLE9BQU8sQ0FBQ04sR0FBRyxDQUFDL0MsNENBQUdBLENBQUNnRCxHQUFHLENBQUMsQ0FBQyxzQkFBc0IsRUFBRUcsY0FBYyxDQUFDO1lBQ3ZFLE1BQU1EO1FBQ1I7SUFDRjtBQUNGO0FBQ0EsU0FBU1IsZUFBZUgsT0FBTztJQUM3QixNQUFNZSxPQUFPLEVBQUU7SUFDZixLQUFLLE1BQU1DLE9BQU9oQixRQUFTO1FBQ3pCLE1BQU1pQixRQUFRQyxPQUFPQyxJQUFJLENBQUNILEtBQUtyQixHQUFHLENBQUMsQ0FBQ3lCLElBQU1KLEdBQUcsQ0FBQ0ksRUFBRTtRQUNoREwsS0FBSzFCLElBQUksQ0FBQzRCO0lBQ1o7SUFDQSxPQUFPRjtBQUNUO0FBQ0EsTUFBTW5DLHdCQUF3QmpCLHdFQUFtQkE7SUFDL0NJLFlBQVlXLElBQUksRUFBRUosS0FBSyxFQUFFRixNQUFNLEVBQUVHLE1BQU0sRUFBRUMsYUFBYSxFQUFFQyxrQkFBa0IsQ0FBRTtRQUMxRSxLQUFLLENBQUMsU0FBU0QsZUFBZUY7UUFDOUIsSUFBSSxDQUFDRixNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDSyxrQkFBa0IsR0FBR0E7UUFDMUIsSUFBSSxDQUFDRixNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDRyxJQUFJLEdBQUdBO0lBQ2Q7O1lBQ08sQ0FBQ3BCLGtEQUFVQSxDQUFDLEdBQUc7O0lBT3RCa0QsSUFBSWEsaUJBQWlCLEVBQUU7UUFDckIsTUFBTS9CLFNBQVM5Qiw2REFBZ0JBLENBQUMsSUFBSSxDQUFDYyxLQUFLLENBQUNnQixNQUFNLEVBQUUrQixxQkFBcUIsQ0FBQztRQUN6RSxJQUFJLENBQUNqRCxNQUFNLENBQUNrRCxRQUFRLENBQUMsSUFBSSxDQUFDaEQsS0FBSyxDQUFDYixHQUFHLEVBQUU2QjtRQUNyQyxPQUFPLElBQUksQ0FBQ1osSUFBSSxDQUFDYyxJQUFJLElBQUlGLFFBQVFrQixHQUFHO0lBQ3RDO0lBQ0EsTUFBTWUsSUFBSUYsaUJBQWlCLEVBQUU7UUFDM0IsTUFBTSxFQUFFOUMsTUFBTSxFQUFFRCxLQUFLLEVBQUVGLE1BQU0sRUFBRU0sSUFBSSxFQUFFRCxrQkFBa0IsRUFBRSxHQUFHLElBQUk7UUFDaEUsSUFBSSxDQUFDRixVQUFVLENBQUNFLG9CQUFvQjtZQUNsQyxNQUFNYSxTQUFTOUIsNkRBQWdCQSxDQUFDYyxNQUFNZ0IsTUFBTSxFQUFFK0IscUJBQXFCLENBQUM7WUFDcEVqRCxPQUFPa0QsUUFBUSxDQUFDaEQsTUFBTWIsR0FBRyxFQUFFNkI7WUFDM0IsT0FBT1osS0FBS2MsSUFBSSxJQUFJRixRQUFRaUMsR0FBRyxHQUFHQyxJQUFJLENBQUMsQ0FBQyxFQUFFeEIsT0FBTyxFQUFFLEdBQUssSUFBSSxDQUFDeUIsWUFBWSxDQUFDekI7UUFDNUU7UUFDQSxNQUFNZSxPQUFPLE1BQU0sSUFBSSxDQUFDVyxNQUFNLENBQUNMO1FBQy9CLE9BQU8sSUFBSSxDQUFDSSxZQUFZLENBQUNWO0lBQzNCO0lBQ0FVLGFBQWFWLElBQUksRUFBRVksV0FBVyxFQUFFO1FBQzlCLElBQUlBLGFBQWE7WUFDZlosT0FBT1osZUFBZVksS0FBS2YsT0FBTztRQUNwQztRQUNBLElBQUksQ0FBQyxJQUFJLENBQUN6QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUNFLGtCQUFrQixFQUFFO1lBQzVDLE9BQU9zQztRQUNUO1FBQ0EsSUFBSSxJQUFJLENBQUN0QyxrQkFBa0IsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQ0Esa0JBQWtCLENBQUNzQztRQUNqQztRQUNBLE9BQU9BLEtBQUtwQixHQUFHLENBQUMsQ0FBQ3FCLE1BQVFuRCx1REFBWUEsQ0FBQyxJQUFJLENBQUNVLE1BQU0sRUFBRXlDLEtBQUssSUFBSSxDQUFDWSxtQkFBbUI7SUFDbEY7SUFDQSxNQUFNQyxJQUFJUixpQkFBaUIsRUFBRTtRQUMzQixNQUFNLEVBQUU5QyxNQUFNLEVBQUVxRCxtQkFBbUIsRUFBRXRELEtBQUssRUFBRUYsTUFBTSxFQUFFTSxJQUFJLEVBQUVELGtCQUFrQixFQUFFLEdBQUcsSUFBSTtRQUNyRixJQUFJLENBQUNGLFVBQVUsQ0FBQ0Usb0JBQW9CO1lBQ2xDLE1BQU1hLFNBQVM5Qiw2REFBZ0JBLENBQUNjLE1BQU1nQixNQUFNLEVBQUUrQixxQkFBcUIsQ0FBQztZQUNwRWpELE9BQU9rRCxRQUFRLENBQUNoRCxNQUFNYixHQUFHLEVBQUU2QjtZQUMzQixPQUFPWixLQUFLYyxJQUFJLElBQUlGLFFBQVFpQyxHQUFHLEdBQUdDLElBQUksQ0FBQyxDQUFDLEVBQUV4QixPQUFPLEVBQUUsR0FBS0EsT0FBTyxDQUFDLEVBQUU7UUFDcEU7UUFDQSxNQUFNZSxPQUFPLE1BQU0sSUFBSSxDQUFDVyxNQUFNLENBQUNMO1FBQy9CLElBQUksQ0FBQ04sSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNaLE9BQU8sS0FBSztRQUNkO1FBQ0EsSUFBSXRDLG9CQUFvQjtZQUN0QixPQUFPQSxtQkFBbUJzQztRQUM1QjtRQUNBLE9BQU9sRCx1REFBWUEsQ0FBQ1UsUUFBUXdDLElBQUksQ0FBQyxFQUFFLEVBQUVhO0lBQ3ZDO0lBQ0FFLGFBQWFsQyxNQUFNLEVBQUUrQixXQUFXLEVBQUU7UUFDaEMsSUFBSUEsYUFBYTtZQUNmL0IsU0FBU08sZUFBZVAsT0FBT0ksT0FBTyxDQUFDLENBQUMsRUFBRTtRQUM1QztRQUNBLElBQUksQ0FBQyxJQUFJLENBQUN6QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUNFLGtCQUFrQixFQUFFO1lBQzVDLE9BQU9tQjtRQUNUO1FBQ0EsSUFBSSxJQUFJLENBQUNuQixrQkFBa0IsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQ0Esa0JBQWtCLENBQUM7Z0JBQUNtQjthQUFPO1FBQ3pDO1FBQ0EsT0FBTy9CLHVEQUFZQSxDQUFDLElBQUksQ0FBQ1UsTUFBTSxFQUFFcUIsUUFBUSxJQUFJLENBQUNnQyxtQkFBbUI7SUFDbkU7SUFDQUYsT0FBT0wsaUJBQWlCLEVBQUU7UUFDeEIsTUFBTS9CLFNBQVM5Qiw2REFBZ0JBLENBQUMsSUFBSSxDQUFDYyxLQUFLLENBQUNnQixNQUFNLEVBQUUrQixxQkFBcUIsQ0FBQztRQUN6RSxJQUFJLENBQUNqRCxNQUFNLENBQUNrRCxRQUFRLENBQUMsSUFBSSxDQUFDaEQsS0FBSyxDQUFDYixHQUFHLEVBQUU2QjtRQUNyQyxPQUFPLElBQUksQ0FBQ1osSUFBSSxDQUFDYyxJQUFJLElBQUlGLFFBQVFtQixHQUFHO0lBQ3RDO0FBQ0Y7QUFLRSxDQUNGLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2QxL3Nlc3Npb24uanM/YmZiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4uL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgTm9vcExvZ2dlciB9IGZyb20gXCIuLi9sb2dnZXIuanNcIjtcbmltcG9ydCB7IGZpbGxQbGFjZWhvbGRlcnMsIHNxbCB9IGZyb20gXCIuLi9zcWwvc3FsLmpzXCI7XG5pbXBvcnQgeyBTUUxpdGVUcmFuc2FjdGlvbiB9IGZyb20gXCIuLi9zcWxpdGUtY29yZS9pbmRleC5qc1wiO1xuaW1wb3J0IHsgU1FMaXRlUHJlcGFyZWRRdWVyeSwgU1FMaXRlU2Vzc2lvbiB9IGZyb20gXCIuLi9zcWxpdGUtY29yZS9zZXNzaW9uLmpzXCI7XG5pbXBvcnQgeyBtYXBSZXN1bHRSb3cgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmNsYXNzIFNRTGl0ZUQxU2Vzc2lvbiBleHRlbmRzIFNRTGl0ZVNlc3Npb24ge1xuICBjb25zdHJ1Y3RvcihjbGllbnQsIGRpYWxlY3QsIHNjaGVtYSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoZGlhbGVjdCk7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy5zY2hlbWEgPSBzY2hlbWE7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyID8/IG5ldyBOb29wTG9nZ2VyKCk7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlRDFTZXNzaW9uXCI7XG4gIGxvZ2dlcjtcbiAgcHJlcGFyZVF1ZXJ5KHF1ZXJ5LCBmaWVsZHMsIGV4ZWN1dGVNZXRob2QsIGN1c3RvbVJlc3VsdE1hcHBlcikge1xuICAgIGNvbnN0IHN0bXQgPSB0aGlzLmNsaWVudC5wcmVwYXJlKHF1ZXJ5LnNxbCk7XG4gICAgcmV0dXJuIG5ldyBEMVByZXBhcmVkUXVlcnkoc3RtdCwgcXVlcnksIHRoaXMubG9nZ2VyLCBmaWVsZHMsIGV4ZWN1dGVNZXRob2QsIGN1c3RvbVJlc3VsdE1hcHBlcik7XG4gIH1cbiAgLypvdmVycmlkZSAqL1xuICBhc3luYyBiYXRjaChxdWVyaWVzKSB7XG4gICAgY29uc3QgcHJlcGFyZWRRdWVyaWVzID0gW107XG4gICAgY29uc3QgYnVpbHRRdWVyaWVzID0gW107XG4gICAgZm9yIChjb25zdCBxdWVyeSBvZiBxdWVyaWVzKSB7XG4gICAgICBjb25zdCBwcmVwYXJlZFF1ZXJ5ID0gcXVlcnkuX3ByZXBhcmUoKTtcbiAgICAgIGNvbnN0IGJ1aWx0UXVlcnkgPSBwcmVwYXJlZFF1ZXJ5LmdldFF1ZXJ5KCk7XG4gICAgICBwcmVwYXJlZFF1ZXJpZXMucHVzaChwcmVwYXJlZFF1ZXJ5KTtcbiAgICAgIGlmIChidWlsdFF1ZXJ5LnBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGJ1aWx0UXVlcmllcy5wdXNoKHByZXBhcmVkUXVlcnkuc3RtdC5iaW5kKC4uLmJ1aWx0UXVlcnkucGFyYW1zKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBidWlsdFF1ZXJ5MiA9IHByZXBhcmVkUXVlcnkuZ2V0UXVlcnkoKTtcbiAgICAgICAgYnVpbHRRdWVyaWVzLnB1c2goXG4gICAgICAgICAgdGhpcy5jbGllbnQucHJlcGFyZShidWlsdFF1ZXJ5Mi5zcWwpLmJpbmQoLi4uYnVpbHRRdWVyeTIucGFyYW1zKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBiYXRjaFJlc3VsdHMgPSBhd2FpdCB0aGlzLmNsaWVudC5iYXRjaChidWlsdFF1ZXJpZXMpO1xuICAgIHJldHVybiBiYXRjaFJlc3VsdHMubWFwKChyZXN1bHQsIGkpID0+IHByZXBhcmVkUXVlcmllc1tpXS5tYXBSZXN1bHQocmVzdWx0LCB0cnVlKSk7XG4gIH1cbiAgZXh0cmFjdFJhd0FsbFZhbHVlRnJvbUJhdGNoUmVzdWx0KHJlc3VsdCkge1xuICAgIHJldHVybiByZXN1bHQucmVzdWx0cztcbiAgfVxuICBleHRyYWN0UmF3R2V0VmFsdWVGcm9tQmF0Y2hSZXN1bHQocmVzdWx0KSB7XG4gICAgcmV0dXJuIHJlc3VsdC5yZXN1bHRzWzBdO1xuICB9XG4gIGV4dHJhY3RSYXdWYWx1ZXNWYWx1ZUZyb21CYXRjaFJlc3VsdChyZXN1bHQpIHtcbiAgICByZXR1cm4gZDFUb1Jhd01hcHBpbmcocmVzdWx0LnJlc3VsdHMpO1xuICB9XG4gIGFzeW5jIHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLCBjb25maWcpIHtcbiAgICBjb25zdCB0eCA9IG5ldyBEMVRyYW5zYWN0aW9uKFwiYXN5bmNcIiwgdGhpcy5kaWFsZWN0LCB0aGlzLCB0aGlzLnNjaGVtYSk7XG4gICAgYXdhaXQgdGhpcy5ydW4oc3FsLnJhdyhgYmVnaW4ke2NvbmZpZz8uYmVoYXZpb3IgPyBcIiBcIiArIGNvbmZpZy5iZWhhdmlvciA6IFwiXCJ9YCkpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc2FjdGlvbih0eCk7XG4gICAgICBhd2FpdCB0aGlzLnJ1bihzcWxgY29tbWl0YCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgYXdhaXQgdGhpcy5ydW4oc3FsYHJvbGxiYWNrYCk7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG59XG5jbGFzcyBEMVRyYW5zYWN0aW9uIGV4dGVuZHMgU1FMaXRlVHJhbnNhY3Rpb24ge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJEMVRyYW5zYWN0aW9uXCI7XG4gIGFzeW5jIHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKSB7XG4gICAgY29uc3Qgc2F2ZXBvaW50TmFtZSA9IGBzcCR7dGhpcy5uZXN0ZWRJbmRleH1gO1xuICAgIGNvbnN0IHR4ID0gbmV3IEQxVHJhbnNhY3Rpb24oXCJhc3luY1wiLCB0aGlzLmRpYWxlY3QsIHRoaXMuc2Vzc2lvbiwgdGhpcy5zY2hlbWEsIHRoaXMubmVzdGVkSW5kZXggKyAxKTtcbiAgICBhd2FpdCB0aGlzLnNlc3Npb24ucnVuKHNxbC5yYXcoYHNhdmVwb2ludCAke3NhdmVwb2ludE5hbWV9YCkpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc2FjdGlvbih0eCk7XG4gICAgICBhd2FpdCB0aGlzLnNlc3Npb24ucnVuKHNxbC5yYXcoYHJlbGVhc2Ugc2F2ZXBvaW50ICR7c2F2ZXBvaW50TmFtZX1gKSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgYXdhaXQgdGhpcy5zZXNzaW9uLnJ1bihzcWwucmF3KGByb2xsYmFjayB0byBzYXZlcG9pbnQgJHtzYXZlcG9pbnROYW1lfWApKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGQxVG9SYXdNYXBwaW5nKHJlc3VsdHMpIHtcbiAgY29uc3Qgcm93cyA9IFtdO1xuICBmb3IgKGNvbnN0IHJvdyBvZiByZXN1bHRzKSB7XG4gICAgY29uc3QgZW50cnkgPSBPYmplY3Qua2V5cyhyb3cpLm1hcCgoaykgPT4gcm93W2tdKTtcbiAgICByb3dzLnB1c2goZW50cnkpO1xuICB9XG4gIHJldHVybiByb3dzO1xufVxuY2xhc3MgRDFQcmVwYXJlZFF1ZXJ5IGV4dGVuZHMgU1FMaXRlUHJlcGFyZWRRdWVyeSB7XG4gIGNvbnN0cnVjdG9yKHN0bXQsIHF1ZXJ5LCBsb2dnZXIsIGZpZWxkcywgZXhlY3V0ZU1ldGhvZCwgY3VzdG9tUmVzdWx0TWFwcGVyKSB7XG4gICAgc3VwZXIoXCJhc3luY1wiLCBleGVjdXRlTWV0aG9kLCBxdWVyeSk7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7XG4gICAgdGhpcy5jdXN0b21SZXN1bHRNYXBwZXIgPSBjdXN0b21SZXN1bHRNYXBwZXI7XG4gICAgdGhpcy5maWVsZHMgPSBmaWVsZHM7XG4gICAgdGhpcy5zdG10ID0gc3RtdDtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJEMVByZXBhcmVkUXVlcnlcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjdXN0b21SZXN1bHRNYXBwZXI7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZmllbGRzO1xuICAvKiogQGludGVybmFsICovXG4gIHN0bXQ7XG4gIHJ1bihwbGFjZWhvbGRlclZhbHVlcykge1xuICAgIGNvbnN0IHBhcmFtcyA9IGZpbGxQbGFjZWhvbGRlcnModGhpcy5xdWVyeS5wYXJhbXMsIHBsYWNlaG9sZGVyVmFsdWVzID8/IHt9KTtcbiAgICB0aGlzLmxvZ2dlci5sb2dRdWVyeSh0aGlzLnF1ZXJ5LnNxbCwgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5zdG10LmJpbmQoLi4ucGFyYW1zKS5ydW4oKTtcbiAgfVxuICBhc3luYyBhbGwocGxhY2Vob2xkZXJWYWx1ZXMpIHtcbiAgICBjb25zdCB7IGZpZWxkcywgcXVlcnksIGxvZ2dlciwgc3RtdCwgY3VzdG9tUmVzdWx0TWFwcGVyIH0gPSB0aGlzO1xuICAgIGlmICghZmllbGRzICYmICFjdXN0b21SZXN1bHRNYXBwZXIpIHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IGZpbGxQbGFjZWhvbGRlcnMocXVlcnkucGFyYW1zLCBwbGFjZWhvbGRlclZhbHVlcyA/PyB7fSk7XG4gICAgICBsb2dnZXIubG9nUXVlcnkocXVlcnkuc3FsLCBwYXJhbXMpO1xuICAgICAgcmV0dXJuIHN0bXQuYmluZCguLi5wYXJhbXMpLmFsbCgpLnRoZW4oKHsgcmVzdWx0cyB9KSA9PiB0aGlzLm1hcEFsbFJlc3VsdChyZXN1bHRzKSk7XG4gICAgfVxuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLnZhbHVlcyhwbGFjZWhvbGRlclZhbHVlcyk7XG4gICAgcmV0dXJuIHRoaXMubWFwQWxsUmVzdWx0KHJvd3MpO1xuICB9XG4gIG1hcEFsbFJlc3VsdChyb3dzLCBpc0Zyb21CYXRjaCkge1xuICAgIGlmIChpc0Zyb21CYXRjaCkge1xuICAgICAgcm93cyA9IGQxVG9SYXdNYXBwaW5nKHJvd3MucmVzdWx0cyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5maWVsZHMgJiYgIXRoaXMuY3VzdG9tUmVzdWx0TWFwcGVyKSB7XG4gICAgICByZXR1cm4gcm93cztcbiAgICB9XG4gICAgaWYgKHRoaXMuY3VzdG9tUmVzdWx0TWFwcGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXN0b21SZXN1bHRNYXBwZXIocm93cyk7XG4gICAgfVxuICAgIHJldHVybiByb3dzLm1hcCgocm93KSA9PiBtYXBSZXN1bHRSb3codGhpcy5maWVsZHMsIHJvdywgdGhpcy5qb2luc05vdE51bGxhYmxlTWFwKSk7XG4gIH1cbiAgYXN5bmMgZ2V0KHBsYWNlaG9sZGVyVmFsdWVzKSB7XG4gICAgY29uc3QgeyBmaWVsZHMsIGpvaW5zTm90TnVsbGFibGVNYXAsIHF1ZXJ5LCBsb2dnZXIsIHN0bXQsIGN1c3RvbVJlc3VsdE1hcHBlciB9ID0gdGhpcztcbiAgICBpZiAoIWZpZWxkcyAmJiAhY3VzdG9tUmVzdWx0TWFwcGVyKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBmaWxsUGxhY2Vob2xkZXJzKHF1ZXJ5LnBhcmFtcywgcGxhY2Vob2xkZXJWYWx1ZXMgPz8ge30pO1xuICAgICAgbG9nZ2VyLmxvZ1F1ZXJ5KHF1ZXJ5LnNxbCwgcGFyYW1zKTtcbiAgICAgIHJldHVybiBzdG10LmJpbmQoLi4ucGFyYW1zKS5hbGwoKS50aGVuKCh7IHJlc3VsdHMgfSkgPT4gcmVzdWx0c1swXSk7XG4gICAgfVxuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLnZhbHVlcyhwbGFjZWhvbGRlclZhbHVlcyk7XG4gICAgaWYgKCFyb3dzWzBdKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBpZiAoY3VzdG9tUmVzdWx0TWFwcGVyKSB7XG4gICAgICByZXR1cm4gY3VzdG9tUmVzdWx0TWFwcGVyKHJvd3MpO1xuICAgIH1cbiAgICByZXR1cm4gbWFwUmVzdWx0Um93KGZpZWxkcywgcm93c1swXSwgam9pbnNOb3ROdWxsYWJsZU1hcCk7XG4gIH1cbiAgbWFwR2V0UmVzdWx0KHJlc3VsdCwgaXNGcm9tQmF0Y2gpIHtcbiAgICBpZiAoaXNGcm9tQmF0Y2gpIHtcbiAgICAgIHJlc3VsdCA9IGQxVG9SYXdNYXBwaW5nKHJlc3VsdC5yZXN1bHRzKVswXTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmZpZWxkcyAmJiAhdGhpcy5jdXN0b21SZXN1bHRNYXBwZXIpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmN1c3RvbVJlc3VsdE1hcHBlcikge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUmVzdWx0TWFwcGVyKFtyZXN1bHRdKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hcFJlc3VsdFJvdyh0aGlzLmZpZWxkcywgcmVzdWx0LCB0aGlzLmpvaW5zTm90TnVsbGFibGVNYXApO1xuICB9XG4gIHZhbHVlcyhwbGFjZWhvbGRlclZhbHVlcykge1xuICAgIGNvbnN0IHBhcmFtcyA9IGZpbGxQbGFjZWhvbGRlcnModGhpcy5xdWVyeS5wYXJhbXMsIHBsYWNlaG9sZGVyVmFsdWVzID8/IHt9KTtcbiAgICB0aGlzLmxvZ2dlci5sb2dRdWVyeSh0aGlzLnF1ZXJ5LnNxbCwgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5zdG10LmJpbmQoLi4ucGFyYW1zKS5yYXcoKTtcbiAgfVxufVxuZXhwb3J0IHtcbiAgRDFQcmVwYXJlZFF1ZXJ5LFxuICBEMVRyYW5zYWN0aW9uLFxuICBTUUxpdGVEMVNlc3Npb25cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXNzaW9uLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiTm9vcExvZ2dlciIsImZpbGxQbGFjZWhvbGRlcnMiLCJzcWwiLCJTUUxpdGVUcmFuc2FjdGlvbiIsIlNRTGl0ZVByZXBhcmVkUXVlcnkiLCJTUUxpdGVTZXNzaW9uIiwibWFwUmVzdWx0Um93IiwiU1FMaXRlRDFTZXNzaW9uIiwiY29uc3RydWN0b3IiLCJjbGllbnQiLCJkaWFsZWN0Iiwic2NoZW1hIiwib3B0aW9ucyIsImxvZ2dlciIsInByZXBhcmVRdWVyeSIsInF1ZXJ5IiwiZmllbGRzIiwiZXhlY3V0ZU1ldGhvZCIsImN1c3RvbVJlc3VsdE1hcHBlciIsInN0bXQiLCJwcmVwYXJlIiwiRDFQcmVwYXJlZFF1ZXJ5IiwiYmF0Y2giLCJxdWVyaWVzIiwicHJlcGFyZWRRdWVyaWVzIiwiYnVpbHRRdWVyaWVzIiwicHJlcGFyZWRRdWVyeSIsIl9wcmVwYXJlIiwiYnVpbHRRdWVyeSIsImdldFF1ZXJ5IiwicHVzaCIsInBhcmFtcyIsImxlbmd0aCIsImJpbmQiLCJidWlsdFF1ZXJ5MiIsImJhdGNoUmVzdWx0cyIsIm1hcCIsInJlc3VsdCIsImkiLCJtYXBSZXN1bHQiLCJleHRyYWN0UmF3QWxsVmFsdWVGcm9tQmF0Y2hSZXN1bHQiLCJyZXN1bHRzIiwiZXh0cmFjdFJhd0dldFZhbHVlRnJvbUJhdGNoUmVzdWx0IiwiZXh0cmFjdFJhd1ZhbHVlc1ZhbHVlRnJvbUJhdGNoUmVzdWx0IiwiZDFUb1Jhd01hcHBpbmciLCJ0cmFuc2FjdGlvbiIsImNvbmZpZyIsInR4IiwiRDFUcmFuc2FjdGlvbiIsInJ1biIsInJhdyIsImJlaGF2aW9yIiwiZXJyIiwic2F2ZXBvaW50TmFtZSIsIm5lc3RlZEluZGV4Iiwic2Vzc2lvbiIsInJvd3MiLCJyb3ciLCJlbnRyeSIsIk9iamVjdCIsImtleXMiLCJrIiwicGxhY2Vob2xkZXJWYWx1ZXMiLCJsb2dRdWVyeSIsImFsbCIsInRoZW4iLCJtYXBBbGxSZXN1bHQiLCJ2YWx1ZXMiLCJpc0Zyb21CYXRjaCIsImpvaW5zTm90TnVsbGFibGVNYXAiLCJnZXQiLCJtYXBHZXRSZXN1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/d1/session.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/entity.js":
-/*!************************************************!*\
- !*** ../../node_modules/drizzle-orm/entity.js ***!
- \************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ entityKind: () => (/* binding */ entityKind),\n/* harmony export */ hasOwnEntityKind: () => (/* binding */ hasOwnEntityKind),\n/* harmony export */ is: () => (/* binding */ is)\n/* harmony export */ });\nconst entityKind = Symbol.for(\"drizzle:entityKind\");\nconst hasOwnEntityKind = Symbol.for(\"drizzle:hasOwnEntityKind\");\nfunction is(value, type) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (value instanceof type) {\n return true;\n }\n if (!Object.prototype.hasOwnProperty.call(type, entityKind)) {\n throw new Error(`Class \"${type.name ?? \"<unknown>\"}\" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);\n }\n let cls = value.constructor;\n if (cls) {\n while(cls){\n if (entityKind in cls && cls[entityKind] === type[entityKind]) {\n return true;\n }\n cls = Object.getPrototypeOf(cls);\n }\n }\n return false;\n}\n //# sourceMappingURL=entity.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2VudGl0eS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSxhQUFhQyxPQUFPQyxHQUFHLENBQUM7QUFDOUIsTUFBTUMsbUJBQW1CRixPQUFPQyxHQUFHLENBQUM7QUFDcEMsU0FBU0UsR0FBR0MsS0FBSyxFQUFFQyxJQUFJO0lBQ3JCLElBQUksQ0FBQ0QsU0FBUyxPQUFPQSxVQUFVLFVBQVU7UUFDdkMsT0FBTztJQUNUO0lBQ0EsSUFBSUEsaUJBQWlCQyxNQUFNO1FBQ3pCLE9BQU87SUFDVDtJQUNBLElBQUksQ0FBQ0MsT0FBT0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osTUFBTU4sYUFBYTtRQUMzRCxNQUFNLElBQUlXLE1BQ1IsQ0FBQyxPQUFPLEVBQUVMLEtBQUtNLElBQUksSUFBSSxZQUFZLDZIQUE2SCxDQUFDO0lBRXJLO0lBQ0EsSUFBSUMsTUFBTVIsTUFBTVMsV0FBVztJQUMzQixJQUFJRCxLQUFLO1FBQ1AsTUFBT0EsSUFBSztZQUNWLElBQUliLGNBQWNhLE9BQU9BLEdBQUcsQ0FBQ2IsV0FBVyxLQUFLTSxJQUFJLENBQUNOLFdBQVcsRUFBRTtnQkFDN0QsT0FBTztZQUNUO1lBQ0FhLE1BQU1OLE9BQU9RLGNBQWMsQ0FBQ0Y7UUFDOUI7SUFDRjtJQUNBLE9BQU87QUFDVDtBQUtFLENBQ0Ysa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vZW50aXR5LmpzP2U2N2QiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZW50aXR5S2luZCA9IFN5bWJvbC5mb3IoXCJkcml6emxlOmVudGl0eUtpbmRcIik7XG5jb25zdCBoYXNPd25FbnRpdHlLaW5kID0gU3ltYm9sLmZvcihcImRyaXp6bGU6aGFzT3duRW50aXR5S2luZFwiKTtcbmZ1bmN0aW9uIGlzKHZhbHVlLCB0eXBlKSB7XG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIHR5cGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0eXBlLCBlbnRpdHlLaW5kKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDbGFzcyBcIiR7dHlwZS5uYW1lID8/IFwiPHVua25vd24+XCJ9XCIgZG9lc24ndCBsb29rIGxpa2UgYSBEcml6emxlIGVudGl0eS4gSWYgdGhpcyBpcyBpbmNvcnJlY3QgYW5kIHRoZSBjbGFzcyBpcyBwcm92aWRlZCBieSBEcml6emxlLCBwbGVhc2UgcmVwb3J0IHRoaXMgYXMgYSBidWcuYFxuICAgICk7XG4gIH1cbiAgbGV0IGNscyA9IHZhbHVlLmNvbnN0cnVjdG9yO1xuICBpZiAoY2xzKSB7XG4gICAgd2hpbGUgKGNscykge1xuICAgICAgaWYgKGVudGl0eUtpbmQgaW4gY2xzICYmIGNsc1tlbnRpdHlLaW5kXSA9PT0gdHlwZVtlbnRpdHlLaW5kXSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGNscyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjbHMpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5leHBvcnQge1xuICBlbnRpdHlLaW5kLFxuICBoYXNPd25FbnRpdHlLaW5kLFxuICBpc1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVudGl0eS5qcy5tYXAiXSwibmFtZXMiOlsiZW50aXR5S2luZCIsIlN5bWJvbCIsImZvciIsImhhc093bkVudGl0eUtpbmQiLCJpcyIsInZhbHVlIiwidHlwZSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIkVycm9yIiwibmFtZSIsImNscyIsImNvbnN0cnVjdG9yIiwiZ2V0UHJvdG90eXBlT2YiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/entity.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/errors.js":
-/*!************************************************!*\
- !*** ../../node_modules/drizzle-orm/errors.js ***!
- \************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DrizzleError: () => (/* binding */ DrizzleError),\n/* harmony export */ TransactionRollbackError: () => (/* binding */ TransactionRollbackError)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nclass DrizzleError extends Error {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"DrizzleError\";\n }\n constructor({ message, cause }){\n super(message);\n this.name = \"DrizzleError\";\n this.cause = cause;\n }\n}\nclass TransactionRollbackError extends DrizzleError {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"TransactionRollbackError\";\n }\n constructor(){\n super({\n message: \"Rollback\"\n });\n }\n}\n //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2Vycm9ycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUM7QUFDekMsTUFBTUMscUJBQXFCQzs7WUFDbEIsQ0FBQ0Ysa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJHLFlBQVksRUFBRUMsT0FBTyxFQUFFQyxLQUFLLEVBQUUsQ0FBRTtRQUM5QixLQUFLLENBQUNEO1FBQ04sSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNELEtBQUssR0FBR0E7SUFDZjtBQUNGO0FBQ0EsTUFBTUUsaUNBQWlDTjs7WUFDOUIsQ0FBQ0Qsa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJHLGFBQWM7UUFDWixLQUFLLENBQUM7WUFBRUMsU0FBUztRQUFXO0lBQzlCO0FBQ0Y7QUFJRSxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2Vycm9ycy5qcz9mNjU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmNsYXNzIERyaXp6bGVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiRHJpenpsZUVycm9yXCI7XG4gIGNvbnN0cnVjdG9yKHsgbWVzc2FnZSwgY2F1c2UgfSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiRHJpenpsZUVycm9yXCI7XG4gICAgdGhpcy5jYXVzZSA9IGNhdXNlO1xuICB9XG59XG5jbGFzcyBUcmFuc2FjdGlvblJvbGxiYWNrRXJyb3IgZXh0ZW5kcyBEcml6emxlRXJyb3Ige1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJUcmFuc2FjdGlvblJvbGxiYWNrRXJyb3JcIjtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoeyBtZXNzYWdlOiBcIlJvbGxiYWNrXCIgfSk7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIERyaXp6bGVFcnJvcixcbiAgVHJhbnNhY3Rpb25Sb2xsYmFja0Vycm9yXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXJyb3JzLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiRHJpenpsZUVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJjYXVzZSIsIm5hbWUiLCJUcmFuc2FjdGlvblJvbGxiYWNrRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/errors.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/logger.js":
-/*!************************************************!*\
- !*** ../../node_modules/drizzle-orm/logger.js ***!
- \************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConsoleLogWriter: () => (/* binding */ ConsoleLogWriter),\n/* harmony export */ DefaultLogger: () => (/* binding */ DefaultLogger),\n/* harmony export */ NoopLogger: () => (/* binding */ NoopLogger)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nclass ConsoleLogWriter {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"ConsoleLogWriter\";\n }\n write(message) {\n console.log(message);\n }\n}\nclass DefaultLogger {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"DefaultLogger\";\n }\n constructor(config){\n this.writer = config?.writer ?? new ConsoleLogWriter();\n }\n logQuery(query, params) {\n const stringifiedParams = params.map((p)=>{\n try {\n return JSON.stringify(p);\n } catch {\n return String(p);\n }\n });\n const paramsStr = stringifiedParams.length ? ` -- params: [${stringifiedParams.join(\", \")}]` : \"\";\n this.writer.write(`Query: ${query}${paramsStr}`);\n }\n}\nclass NoopLogger {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"NoopLogger\";\n }\n logQuery() {}\n}\n //# sourceMappingURL=logger.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL2xvZ2dlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXlDO0FBQ3pDLE1BQU1DOztZQUNHLENBQUNELGtEQUFVQSxDQUFDLEdBQUc7O0lBQ3RCRSxNQUFNQyxPQUFPLEVBQUU7UUFDYkMsUUFBUUMsR0FBRyxDQUFDRjtJQUNkO0FBQ0Y7QUFDQSxNQUFNRzs7WUFDRyxDQUFDTixrREFBVUEsQ0FBQyxHQUFHOztJQUV0Qk8sWUFBWUMsTUFBTSxDQUFFO1FBQ2xCLElBQUksQ0FBQ0MsTUFBTSxHQUFHRCxRQUFRQyxVQUFVLElBQUlSO0lBQ3RDO0lBQ0FTLFNBQVNDLEtBQUssRUFBRUMsTUFBTSxFQUFFO1FBQ3RCLE1BQU1DLG9CQUFvQkQsT0FBT0UsR0FBRyxDQUFDLENBQUNDO1lBQ3BDLElBQUk7Z0JBQ0YsT0FBT0MsS0FBS0MsU0FBUyxDQUFDRjtZQUN4QixFQUFFLE9BQU07Z0JBQ04sT0FBT0csT0FBT0g7WUFDaEI7UUFDRjtRQUNBLE1BQU1JLFlBQVlOLGtCQUFrQk8sTUFBTSxHQUFHLENBQUMsYUFBYSxFQUFFUCxrQkFBa0JRLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHO1FBQy9GLElBQUksQ0FBQ1osTUFBTSxDQUFDUCxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUVTLE1BQU0sRUFBRVEsVUFBVSxDQUFDO0lBQ2pEO0FBQ0Y7QUFDQSxNQUFNRzs7WUFDRyxDQUFDdEIsa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJVLFdBQVcsQ0FDWDtBQUNGO0FBS0UsQ0FDRixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9sb2dnZXIuanM/ZGUwYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4vZW50aXR5LmpzXCI7XG5jbGFzcyBDb25zb2xlTG9nV3JpdGVyIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiQ29uc29sZUxvZ1dyaXRlclwiO1xuICB3cml0ZShtZXNzYWdlKSB7XG4gICAgY29uc29sZS5sb2cobWVzc2FnZSk7XG4gIH1cbn1cbmNsYXNzIERlZmF1bHRMb2dnZXIge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJEZWZhdWx0TG9nZ2VyXCI7XG4gIHdyaXRlcjtcbiAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgdGhpcy53cml0ZXIgPSBjb25maWc/LndyaXRlciA/PyBuZXcgQ29uc29sZUxvZ1dyaXRlcigpO1xuICB9XG4gIGxvZ1F1ZXJ5KHF1ZXJ5LCBwYXJhbXMpIHtcbiAgICBjb25zdCBzdHJpbmdpZmllZFBhcmFtcyA9IHBhcmFtcy5tYXAoKHApID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHBhcmFtc1N0ciA9IHN0cmluZ2lmaWVkUGFyYW1zLmxlbmd0aCA/IGAgLS0gcGFyYW1zOiBbJHtzdHJpbmdpZmllZFBhcmFtcy5qb2luKFwiLCBcIil9XWAgOiBcIlwiO1xuICAgIHRoaXMud3JpdGVyLndyaXRlKGBRdWVyeTogJHtxdWVyeX0ke3BhcmFtc1N0cn1gKTtcbiAgfVxufVxuY2xhc3MgTm9vcExvZ2dlciB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIk5vb3BMb2dnZXJcIjtcbiAgbG9nUXVlcnkoKSB7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIENvbnNvbGVMb2dXcml0ZXIsXG4gIERlZmF1bHRMb2dnZXIsXG4gIE5vb3BMb2dnZXJcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sb2dnZXIuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJDb25zb2xlTG9nV3JpdGVyIiwid3JpdGUiLCJtZXNzYWdlIiwiY29uc29sZSIsImxvZyIsIkRlZmF1bHRMb2dnZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsIndyaXRlciIsImxvZ1F1ZXJ5IiwicXVlcnkiLCJwYXJhbXMiLCJzdHJpbmdpZmllZFBhcmFtcyIsIm1hcCIsInAiLCJKU09OIiwic3RyaW5naWZ5IiwiU3RyaW5nIiwicGFyYW1zU3RyIiwibGVuZ3RoIiwiam9pbiIsIk5vb3BMb2dnZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/logger.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/pg-core/primary-keys.js":
-/*!**************************************************************!*\
- !*** ../../node_modules/drizzle-orm/pg-core/primary-keys.js ***!
- \**************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PrimaryKey: () => (/* binding */ PrimaryKey),\n/* harmony export */ PrimaryKeyBuilder: () => (/* binding */ PrimaryKeyBuilder),\n/* harmony export */ primaryKey: () => (/* binding */ primaryKey)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table.js */ \"(rsc)/../../node_modules/drizzle-orm/pg-core/table.js\");\n\n\nfunction primaryKey(...config) {\n if (config[0].columns) {\n return new PrimaryKeyBuilder(config[0].columns, config[0].name);\n }\n return new PrimaryKeyBuilder(config);\n}\nclass PrimaryKeyBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"PgPrimaryKeyBuilder\";\n }\n constructor(columns, name){\n this.columns = columns;\n this.name = name;\n }\n /** @internal */ build(table) {\n return new PrimaryKey(table, this.columns, this.name);\n }\n}\nclass PrimaryKey {\n constructor(table, columns, name){\n this.table = table;\n this.columns = columns;\n this.name = name;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"PgPrimaryKey\";\n }\n getName() {\n return this.name ?? `${this.table[_table_js__WEBPACK_IMPORTED_MODULE_1__.PgTable.Symbol.Name]}_${this.columns.map((column)=>column.name).join(\"_\")}_pk`;\n }\n}\n //# sourceMappingURL=primary-keys.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3BnLWNvcmUvcHJpbWFyeS1rZXlzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTBDO0FBQ0w7QUFDckMsU0FBU0UsV0FBVyxHQUFHQyxNQUFNO0lBQzNCLElBQUlBLE1BQU0sQ0FBQyxFQUFFLENBQUNDLE9BQU8sRUFBRTtRQUNyQixPQUFPLElBQUlDLGtCQUFrQkYsTUFBTSxDQUFDLEVBQUUsQ0FBQ0MsT0FBTyxFQUFFRCxNQUFNLENBQUMsRUFBRSxDQUFDRyxJQUFJO0lBQ2hFO0lBQ0EsT0FBTyxJQUFJRCxrQkFBa0JGO0FBQy9CO0FBQ0EsTUFBTUU7O1lBQ0csQ0FBQ0wsa0RBQVVBLENBQUMsR0FBRzs7SUFLdEJPLFlBQVlILE9BQU8sRUFBRUUsSUFBSSxDQUFFO1FBQ3pCLElBQUksQ0FBQ0YsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0UsSUFBSSxHQUFHQTtJQUNkO0lBQ0EsY0FBYyxHQUNkRSxNQUFNQyxLQUFLLEVBQUU7UUFDWCxPQUFPLElBQUlDLFdBQVdELE9BQU8sSUFBSSxDQUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDRSxJQUFJO0lBQ3REO0FBQ0Y7QUFDQSxNQUFNSTtJQUNKSCxZQUFZRSxLQUFLLEVBQUVMLE9BQU8sRUFBRUUsSUFBSSxDQUFFO1FBQ2hDLElBQUksQ0FBQ0csS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0wsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0UsSUFBSSxHQUFHQTtJQUNkOztZQUNPLENBQUNOLGtEQUFVQSxDQUFDLEdBQUc7O0lBR3RCVyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNMLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDRyxLQUFLLENBQUNSLDhDQUFPQSxDQUFDVyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNULE9BQU8sQ0FBQ1UsR0FBRyxDQUFDLENBQUNDLFNBQVdBLE9BQU9ULElBQUksRUFBRVUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO0lBQ3BIO0FBQ0Y7QUFLRSxDQUNGLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3BnLWNvcmUvcHJpbWFyeS1rZXlzLmpzP2QxYWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW50aXR5S2luZCB9IGZyb20gXCIuLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IFBnVGFibGUgfSBmcm9tIFwiLi90YWJsZS5qc1wiO1xuZnVuY3Rpb24gcHJpbWFyeUtleSguLi5jb25maWcpIHtcbiAgaWYgKGNvbmZpZ1swXS5jb2x1bW5zKSB7XG4gICAgcmV0dXJuIG5ldyBQcmltYXJ5S2V5QnVpbGRlcihjb25maWdbMF0uY29sdW1ucywgY29uZmlnWzBdLm5hbWUpO1xuICB9XG4gIHJldHVybiBuZXcgUHJpbWFyeUtleUJ1aWxkZXIoY29uZmlnKTtcbn1cbmNsYXNzIFByaW1hcnlLZXlCdWlsZGVyIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiUGdQcmltYXJ5S2V5QnVpbGRlclwiO1xuICAvKiogQGludGVybmFsICovXG4gIGNvbHVtbnM7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbmFtZTtcbiAgY29uc3RydWN0b3IoY29sdW1ucywgbmFtZSkge1xuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIGJ1aWxkKHRhYmxlKSB7XG4gICAgcmV0dXJuIG5ldyBQcmltYXJ5S2V5KHRhYmxlLCB0aGlzLmNvbHVtbnMsIHRoaXMubmFtZSk7XG4gIH1cbn1cbmNsYXNzIFByaW1hcnlLZXkge1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgY29sdW1ucywgbmFtZSkge1xuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiUGdQcmltYXJ5S2V5XCI7XG4gIGNvbHVtbnM7XG4gIG5hbWU7XG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZSA/PyBgJHt0aGlzLnRhYmxlW1BnVGFibGUuU3ltYm9sLk5hbWVdfV8ke3RoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUpLmpvaW4oXCJfXCIpfV9wa2A7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIFByaW1hcnlLZXksXG4gIFByaW1hcnlLZXlCdWlsZGVyLFxuICBwcmltYXJ5S2V5XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJpbWFyeS1rZXlzLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiUGdUYWJsZSIsInByaW1hcnlLZXkiLCJjb25maWciLCJjb2x1bW5zIiwiUHJpbWFyeUtleUJ1aWxkZXIiLCJuYW1lIiwiY29uc3RydWN0b3IiLCJidWlsZCIsInRhYmxlIiwiUHJpbWFyeUtleSIsImdldE5hbWUiLCJTeW1ib2wiLCJOYW1lIiwibWFwIiwiY29sdW1uIiwiam9pbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/pg-core/primary-keys.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/pg-core/table.js":
-/*!*******************************************************!*\
- !*** ../../node_modules/drizzle-orm/pg-core/table.js ***!
- \*******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InlineForeignKeys: () => (/* binding */ InlineForeignKeys),\n/* harmony export */ PgTable: () => (/* binding */ PgTable),\n/* harmony export */ pgTable: () => (/* binding */ pgTable),\n/* harmony export */ pgTableCreator: () => (/* binding */ pgTableCreator),\n/* harmony export */ pgTableWithSchema: () => (/* binding */ pgTableWithSchema)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n\n\nconst InlineForeignKeys = Symbol.for(\"drizzle:PgInlineForeignKeys\");\nlet prop;\nclass PgTable extends _table_js__WEBPACK_IMPORTED_MODULE_0__.Table {\n static{\n prop = _table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.ExtraConfigBuilder;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"PgTable\";\n }\n static{\n /** @internal */ this.Symbol = Object.assign({}, _table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol, {\n InlineForeignKeys\n });\n }\n constructor(...args){\n super(...args);\n /**@internal */ this[InlineForeignKeys] = [];\n /** @internal */ this[prop] = void 0;\n }\n}\nfunction pgTableWithSchema(name, columns, extraConfig, schema, baseName = name) {\n const rawTable = new PgTable(name, schema, baseName);\n const builtColumns = Object.fromEntries(Object.entries(columns).map(([name2, colBuilderBase])=>{\n const colBuilder = colBuilderBase;\n const column = colBuilder.build(rawTable);\n rawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n return [\n name2,\n column\n ];\n }));\n const table = Object.assign(rawTable, builtColumns);\n table[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Columns] = builtColumns;\n if (extraConfig) {\n table[PgTable.Symbol.ExtraConfigBuilder] = extraConfig;\n }\n return table;\n}\nconst pgTable = (name, columns, extraConfig)=>{\n return pgTableWithSchema(name, columns, extraConfig, void 0);\n};\nfunction pgTableCreator(customizeTableName) {\n return (name, columns, extraConfig)=>{\n return pgTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);\n };\n}\n //# sourceMappingURL=table.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3BnLWNvcmUvdGFibGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUEwQztBQUNOO0FBQ3BDLE1BQU1FLG9CQUFvQkMsT0FBT0MsR0FBRyxDQUFDOztBQUNyQyxNQUFNQyxnQkFBZ0JKLDRDQUFLQTs7ZUFTeEJBLDRDQUFLQSxDQUFDRSxNQUFNLENBQUNHLGtCQUFrQjs7O1lBUnpCLENBQUNOLGtEQUFVQSxDQUFDLEdBQUc7OztRQUN0QixjQUFjLFFBQ1BHLFNBQVNJLE9BQU9DLE1BQU0sQ0FBQyxDQUFDLEdBQUdQLDRDQUFLQSxDQUFDRSxNQUFNLEVBQUU7WUFDOUNEO1FBQ0Y7Ozs7UUFDQSxhQUFhLE9BQ2IsQ0FBQ0Esa0JBQWtCLEdBQUcsRUFBRTtRQUN4QixjQUFjLE9BQ2QsTUFBaUMsR0FBRyxLQUFLOztBQUMzQztBQUNBLFNBQVNPLGtCQUFrQkMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxXQUFXSixJQUFJO0lBQzVFLE1BQU1LLFdBQVcsSUFBSVYsUUFBUUssTUFBTUcsUUFBUUM7SUFDM0MsTUFBTUUsZUFBZVQsT0FBT1UsV0FBVyxDQUNyQ1YsT0FBT1csT0FBTyxDQUFDUCxTQUFTUSxHQUFHLENBQUMsQ0FBQyxDQUFDQyxPQUFPQyxlQUFlO1FBQ2xELE1BQU1DLGFBQWFEO1FBQ25CLE1BQU1FLFNBQVNELFdBQVdFLEtBQUssQ0FBQ1Q7UUFDaENBLFFBQVEsQ0FBQ2Isa0JBQWtCLENBQUN1QixJQUFJLElBQUlILFdBQVdJLGdCQUFnQixDQUFDSCxRQUFRUjtRQUN4RSxPQUFPO1lBQUNLO1lBQU9HO1NBQU87SUFDeEI7SUFFRixNQUFNSSxRQUFRcEIsT0FBT0MsTUFBTSxDQUFDTyxVQUFVQztJQUN0Q1csS0FBSyxDQUFDMUIsNENBQUtBLENBQUNFLE1BQU0sQ0FBQ3lCLE9BQU8sQ0FBQyxHQUFHWjtJQUM5QixJQUFJSixhQUFhO1FBQ2ZlLEtBQUssQ0FBQ3RCLFFBQVFGLE1BQU0sQ0FBQ0csa0JBQWtCLENBQUMsR0FBR007SUFDN0M7SUFDQSxPQUFPZTtBQUNUO0FBQ0EsTUFBTUUsVUFBVSxDQUFDbkIsTUFBTUMsU0FBU0M7SUFDOUIsT0FBT0gsa0JBQWtCQyxNQUFNQyxTQUFTQyxhQUFhLEtBQUs7QUFDNUQ7QUFDQSxTQUFTa0IsZUFBZUMsa0JBQWtCO0lBQ3hDLE9BQU8sQ0FBQ3JCLE1BQU1DLFNBQVNDO1FBQ3JCLE9BQU9ILGtCQUFrQnNCLG1CQUFtQnJCLE9BQU9DLFNBQVNDLGFBQWEsS0FBSyxHQUFHRjtJQUNuRjtBQUNGO0FBT0UsQ0FDRixpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9wZy1jb3JlL3RhYmxlLmpzP2U0YTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW50aXR5S2luZCB9IGZyb20gXCIuLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcIi4uL3RhYmxlLmpzXCI7XG5jb25zdCBJbmxpbmVGb3JlaWduS2V5cyA9IFN5bWJvbC5mb3IoXCJkcml6emxlOlBnSW5saW5lRm9yZWlnbktleXNcIik7XG5jbGFzcyBQZ1RhYmxlIGV4dGVuZHMgVGFibGUge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJQZ1RhYmxlXCI7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc3RhdGljIFN5bWJvbCA9IE9iamVjdC5hc3NpZ24oe30sIFRhYmxlLlN5bWJvbCwge1xuICAgIElubGluZUZvcmVpZ25LZXlzXG4gIH0pO1xuICAvKipAaW50ZXJuYWwgKi9cbiAgW0lubGluZUZvcmVpZ25LZXlzXSA9IFtdO1xuICAvKiogQGludGVybmFsICovXG4gIFtUYWJsZS5TeW1ib2wuRXh0cmFDb25maWdCdWlsZGVyXSA9IHZvaWQgMDtcbn1cbmZ1bmN0aW9uIHBnVGFibGVXaXRoU2NoZW1hKG5hbWUsIGNvbHVtbnMsIGV4dHJhQ29uZmlnLCBzY2hlbWEsIGJhc2VOYW1lID0gbmFtZSkge1xuICBjb25zdCByYXdUYWJsZSA9IG5ldyBQZ1RhYmxlKG5hbWUsIHNjaGVtYSwgYmFzZU5hbWUpO1xuICBjb25zdCBidWlsdENvbHVtbnMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMoY29sdW1ucykubWFwKChbbmFtZTIsIGNvbEJ1aWxkZXJCYXNlXSkgPT4ge1xuICAgICAgY29uc3QgY29sQnVpbGRlciA9IGNvbEJ1aWxkZXJCYXNlO1xuICAgICAgY29uc3QgY29sdW1uID0gY29sQnVpbGRlci5idWlsZChyYXdUYWJsZSk7XG4gICAgICByYXdUYWJsZVtJbmxpbmVGb3JlaWduS2V5c10ucHVzaCguLi5jb2xCdWlsZGVyLmJ1aWxkRm9yZWlnbktleXMoY29sdW1uLCByYXdUYWJsZSkpO1xuICAgICAgcmV0dXJuIFtuYW1lMiwgY29sdW1uXTtcbiAgICB9KVxuICApO1xuICBjb25zdCB0YWJsZSA9IE9iamVjdC5hc3NpZ24ocmF3VGFibGUsIGJ1aWx0Q29sdW1ucyk7XG4gIHRhYmxlW1RhYmxlLlN5bWJvbC5Db2x1bW5zXSA9IGJ1aWx0Q29sdW1ucztcbiAgaWYgKGV4dHJhQ29uZmlnKSB7XG4gICAgdGFibGVbUGdUYWJsZS5TeW1ib2wuRXh0cmFDb25maWdCdWlsZGVyXSA9IGV4dHJhQ29uZmlnO1xuICB9XG4gIHJldHVybiB0YWJsZTtcbn1cbmNvbnN0IHBnVGFibGUgPSAobmFtZSwgY29sdW1ucywgZXh0cmFDb25maWcpID0+IHtcbiAgcmV0dXJuIHBnVGFibGVXaXRoU2NoZW1hKG5hbWUsIGNvbHVtbnMsIGV4dHJhQ29uZmlnLCB2b2lkIDApO1xufTtcbmZ1bmN0aW9uIHBnVGFibGVDcmVhdG9yKGN1c3RvbWl6ZVRhYmxlTmFtZSkge1xuICByZXR1cm4gKG5hbWUsIGNvbHVtbnMsIGV4dHJhQ29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHBnVGFibGVXaXRoU2NoZW1hKGN1c3RvbWl6ZVRhYmxlTmFtZShuYW1lKSwgY29sdW1ucywgZXh0cmFDb25maWcsIHZvaWQgMCwgbmFtZSk7XG4gIH07XG59XG5leHBvcnQge1xuICBJbmxpbmVGb3JlaWduS2V5cyxcbiAgUGdUYWJsZSxcbiAgcGdUYWJsZSxcbiAgcGdUYWJsZUNyZWF0b3IsXG4gIHBnVGFibGVXaXRoU2NoZW1hXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGFibGUuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJUYWJsZSIsIklubGluZUZvcmVpZ25LZXlzIiwiU3ltYm9sIiwiZm9yIiwiUGdUYWJsZSIsIkV4dHJhQ29uZmlnQnVpbGRlciIsIk9iamVjdCIsImFzc2lnbiIsInBnVGFibGVXaXRoU2NoZW1hIiwibmFtZSIsImNvbHVtbnMiLCJleHRyYUNvbmZpZyIsInNjaGVtYSIsImJhc2VOYW1lIiwicmF3VGFibGUiLCJidWlsdENvbHVtbnMiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJtYXAiLCJuYW1lMiIsImNvbEJ1aWxkZXJCYXNlIiwiY29sQnVpbGRlciIsImNvbHVtbiIsImJ1aWxkIiwicHVzaCIsImJ1aWxkRm9yZWlnbktleXMiLCJ0YWJsZSIsIkNvbHVtbnMiLCJwZ1RhYmxlIiwicGdUYWJsZUNyZWF0b3IiLCJjdXN0b21pemVUYWJsZU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/pg-core/table.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/query-builders/query-builder.js":
-/*!**********************************************************************!*\
- !*** ../../node_modules/drizzle-orm/query-builders/query-builder.js ***!
- \**********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TypedQueryBuilder: () => (/* binding */ TypedQueryBuilder)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nclass TypedQueryBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"TypedQueryBuilder\";\n }\n /** @internal */ getSelectedFields() {\n return this._.selectedFields;\n }\n}\n //# sourceMappingURL=query-builder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3F1ZXJ5LWJ1aWxkZXJzL3F1ZXJ5LWJ1aWxkZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMEM7QUFDMUMsTUFBTUM7O1lBQ0csQ0FBQ0Qsa0RBQVVBLENBQUMsR0FBRzs7SUFDdEIsY0FBYyxHQUNkRSxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUNDLENBQUMsQ0FBQ0MsY0FBYztJQUM5QjtBQUNGO0FBR0UsQ0FDRix5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9xdWVyeS1idWlsZGVycy9xdWVyeS1idWlsZGVyLmpzP2JmZjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW50aXR5S2luZCB9IGZyb20gXCIuLi9lbnRpdHkuanNcIjtcbmNsYXNzIFR5cGVkUXVlcnlCdWlsZGVyIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiVHlwZWRRdWVyeUJ1aWxkZXJcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRTZWxlY3RlZEZpZWxkcygpIHtcbiAgICByZXR1cm4gdGhpcy5fLnNlbGVjdGVkRmllbGRzO1xuICB9XG59XG5leHBvcnQge1xuICBUeXBlZFF1ZXJ5QnVpbGRlclxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXF1ZXJ5LWJ1aWxkZXIuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJUeXBlZFF1ZXJ5QnVpbGRlciIsImdldFNlbGVjdGVkRmllbGRzIiwiXyIsInNlbGVjdGVkRmllbGRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/query-builders/query-builder.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/query-promise.js":
-/*!*******************************************************!*\
- !*** ../../node_modules/drizzle-orm/query-promise.js ***!
- \*******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ QueryPromise: () => (/* binding */ QueryPromise)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nlet prop;\nclass QueryPromise {\n static{\n prop = Symbol.toStringTag;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"QueryPromise\";\n }\n catch(onRejected) {\n return this.then(void 0, onRejected);\n }\n finally(onFinally) {\n return this.then((value)=>{\n onFinally?.();\n return value;\n }, (reason)=>{\n onFinally?.();\n throw reason;\n });\n }\n then(onFulfilled, onRejected) {\n return this.execute().then(onFulfilled, onRejected);\n }\n constructor(){\n this[prop] = \"QueryPromise\";\n }\n}\n //# sourceMappingURL=query-promise.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3F1ZXJ5LXByb21pc2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBeUM7O0FBQ3pDLE1BQU1DOztlQUVIQyxPQUFPQyxXQUFXOzs7WUFEWixDQUFDSCxrREFBVUEsQ0FBQyxHQUFHOztJQUV0QkksTUFBTUMsVUFBVSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDQyxJQUFJLENBQUMsS0FBSyxHQUFHRDtJQUMzQjtJQUNBRSxRQUFRQyxTQUFTLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUNGLElBQUksQ0FDZCxDQUFDRztZQUNDRDtZQUNBLE9BQU9DO1FBQ1QsR0FDQSxDQUFDQztZQUNDRjtZQUNBLE1BQU1FO1FBQ1I7SUFFSjtJQUNBSixLQUFLSyxXQUFXLEVBQUVOLFVBQVUsRUFBRTtRQUM1QixPQUFPLElBQUksQ0FBQ08sT0FBTyxHQUFHTixJQUFJLENBQUNLLGFBQWFOO0lBQzFDOztZQWxCQSxNQUFvQixHQUFHOztBQW1CekI7QUFHRSxDQUNGLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3F1ZXJ5LXByb21pc2UuanM/MGI3MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4vZW50aXR5LmpzXCI7XG5jbGFzcyBRdWVyeVByb21pc2Uge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJRdWVyeVByb21pc2VcIjtcbiAgW1N5bWJvbC50b1N0cmluZ1RhZ10gPSBcIlF1ZXJ5UHJvbWlzZVwiO1xuICBjYXRjaChvblJlamVjdGVkKSB7XG4gICAgcmV0dXJuIHRoaXMudGhlbih2b2lkIDAsIG9uUmVqZWN0ZWQpO1xuICB9XG4gIGZpbmFsbHkob25GaW5hbGx5KSB7XG4gICAgcmV0dXJuIHRoaXMudGhlbihcbiAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICBvbkZpbmFsbHk/LigpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgICAgKHJlYXNvbikgPT4ge1xuICAgICAgICBvbkZpbmFsbHk/LigpO1xuICAgICAgICB0aHJvdyByZWFzb247XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICB0aGVuKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZSgpLnRoZW4ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpO1xuICB9XG59XG5leHBvcnQge1xuICBRdWVyeVByb21pc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1xdWVyeS1wcm9taXNlLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiUXVlcnlQcm9taXNlIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJjYXRjaCIsIm9uUmVqZWN0ZWQiLCJ0aGVuIiwiZmluYWxseSIsIm9uRmluYWxseSIsInZhbHVlIiwicmVhc29uIiwib25GdWxmaWxsZWQiLCJleGVjdXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/query-promise.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/relations.js":
-/*!***************************************************!*\
- !*** ../../node_modules/drizzle-orm/relations.js ***!
- \***************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Many: () => (/* binding */ Many),\n/* harmony export */ One: () => (/* binding */ One),\n/* harmony export */ Relation: () => (/* binding */ Relation),\n/* harmony export */ Relations: () => (/* binding */ Relations),\n/* harmony export */ createMany: () => (/* binding */ createMany),\n/* harmony export */ createOne: () => (/* binding */ createOne),\n/* harmony export */ createTableRelationsHelpers: () => (/* binding */ createTableRelationsHelpers),\n/* harmony export */ extractTablesRelationalConfig: () => (/* binding */ extractTablesRelationalConfig),\n/* harmony export */ getOperators: () => (/* binding */ getOperators),\n/* harmony export */ getOrderByOperators: () => (/* binding */ getOrderByOperators),\n/* harmony export */ mapRelationalRow: () => (/* binding */ mapRelationalRow),\n/* harmony export */ normalizeRelation: () => (/* binding */ normalizeRelation),\n/* harmony export */ relations: () => (/* binding */ relations)\n/* harmony export */ });\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n/* harmony import */ var _column_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./column.js */ \"(rsc)/../../node_modules/drizzle-orm/column.js\");\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _pg_core_primary_keys_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pg-core/primary-keys.js */ \"(rsc)/../../node_modules/drizzle-orm/pg-core/primary-keys.js\");\n/* harmony import */ var _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sql/expressions/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/expressions/conditions.js\");\n/* harmony import */ var _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sql/expressions/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/expressions/select.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n\n\n\n\n\n\nclass Relation {\n constructor(sourceTable, referencedTable, relationName){\n this.sourceTable = sourceTable;\n this.referencedTable = referencedTable;\n this.relationName = relationName;\n this.referencedTableName = referencedTable[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name];\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"Relation\";\n }\n}\nclass Relations {\n constructor(table, config){\n this.table = table;\n this.config = config;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"Relations\";\n }\n}\nclass One extends Relation {\n constructor(sourceTable, referencedTable, config, isNullable){\n super(sourceTable, referencedTable, config?.relationName);\n this.config = config;\n this.isNullable = isNullable;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"One\";\n }\n withFieldName(fieldName) {\n const relation = new One(this.sourceTable, this.referencedTable, this.config, this.isNullable);\n relation.fieldName = fieldName;\n return relation;\n }\n}\nclass Many extends Relation {\n constructor(sourceTable, referencedTable, config){\n super(sourceTable, referencedTable, config?.relationName);\n this.config = config;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"Many\";\n }\n withFieldName(fieldName) {\n const relation = new Many(this.sourceTable, this.referencedTable, this.config);\n relation.fieldName = fieldName;\n return relation;\n }\n}\nfunction getOperators() {\n return {\n and: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.and,\n between: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.between,\n eq: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.eq,\n exists: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.exists,\n gt: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.gt,\n gte: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.gte,\n ilike: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.ilike,\n inArray: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.inArray,\n isNull: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.isNull,\n isNotNull: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.isNotNull,\n like: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.like,\n lt: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.lt,\n lte: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.lte,\n ne: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.ne,\n not: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.not,\n notBetween: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.notBetween,\n notExists: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.notExists,\n notLike: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.notLike,\n notIlike: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.notIlike,\n notInArray: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.notInArray,\n or: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_2__.or,\n sql: _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.sql\n };\n}\nfunction getOrderByOperators() {\n return {\n sql: _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.sql,\n asc: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_4__.asc,\n desc: _sql_expressions_index_js__WEBPACK_IMPORTED_MODULE_4__.desc\n };\n}\nfunction extractTablesRelationalConfig(schema, configHelpers) {\n if (Object.keys(schema).length === 1 && \"default\" in schema && !(0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(schema[\"default\"], _table_js__WEBPACK_IMPORTED_MODULE_0__.Table)) {\n schema = schema[\"default\"];\n }\n const tableNamesMap = {};\n const relationsBuffer = {};\n const tablesConfig = {};\n for (const [key, value] of Object.entries(schema)){\n if ((0,_table_js__WEBPACK_IMPORTED_MODULE_0__.isTable)(value)) {\n const dbName = value[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name];\n const bufferedRelations = relationsBuffer[dbName];\n tableNamesMap[dbName] = key;\n tablesConfig[key] = {\n tsName: key,\n dbName: value[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name],\n schema: value[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Schema],\n columns: value[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Columns],\n relations: bufferedRelations?.relations ?? {},\n primaryKey: bufferedRelations?.primaryKey ?? []\n };\n for (const column of Object.values(value[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Columns])){\n if (column.primary) {\n tablesConfig[key].primaryKey.push(column);\n }\n }\n const extraConfig = value[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.ExtraConfigBuilder]?.(value);\n if (extraConfig) {\n for (const configEntry of Object.values(extraConfig)){\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(configEntry, _pg_core_primary_keys_js__WEBPACK_IMPORTED_MODULE_5__.PrimaryKeyBuilder)) {\n tablesConfig[key].primaryKey.push(...configEntry.columns);\n }\n }\n }\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(value, Relations)) {\n const dbName = value.table[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name];\n const tableName = tableNamesMap[dbName];\n const relations2 = value.config(configHelpers(value.table));\n let primaryKey;\n for (const [relationName, relation] of Object.entries(relations2)){\n if (tableName) {\n const tableConfig = tablesConfig[tableName];\n tableConfig.relations[relationName] = relation;\n if (primaryKey) {\n tableConfig.primaryKey.push(...primaryKey);\n }\n } else {\n if (!(dbName in relationsBuffer)) {\n relationsBuffer[dbName] = {\n relations: {},\n primaryKey\n };\n }\n relationsBuffer[dbName].relations[relationName] = relation;\n }\n }\n }\n }\n return {\n tables: tablesConfig,\n tableNamesMap\n };\n}\nfunction relations(table, relations2) {\n return new Relations(table, (helpers)=>Object.fromEntries(Object.entries(relations2(helpers)).map(([key, value])=>[\n key,\n value.withFieldName(key)\n ])));\n}\nfunction createOne(sourceTable) {\n return function one(table, config) {\n return new One(sourceTable, table, config, config?.fields.reduce((res, f)=>res && f.notNull, true) ?? false);\n };\n}\nfunction createMany(sourceTable) {\n return function many(referencedTable, config) {\n return new Many(sourceTable, referencedTable, config);\n };\n}\nfunction normalizeRelation(schema, tableNamesMap, relation) {\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(relation, One) && relation.config) {\n return {\n fields: relation.config.fields,\n references: relation.config.references\n };\n }\n const referencedTableTsName = tableNamesMap[relation.referencedTable[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name]];\n if (!referencedTableTsName) {\n throw new Error(`Table \"${relation.referencedTable[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name]}\" not found in schema`);\n }\n const referencedTableConfig = schema[referencedTableTsName];\n if (!referencedTableConfig) {\n throw new Error(`Table \"${referencedTableTsName}\" not found in schema`);\n }\n const sourceTable = relation.sourceTable;\n const sourceTableTsName = tableNamesMap[sourceTable[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name]];\n if (!sourceTableTsName) {\n throw new Error(`Table \"${sourceTable[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name]}\" not found in schema`);\n }\n const reverseRelations = [];\n for (const referencedTableRelation of Object.values(referencedTableConfig.relations)){\n if (relation.relationName && relation !== referencedTableRelation && referencedTableRelation.relationName === relation.relationName || !relation.relationName && referencedTableRelation.referencedTable === relation.sourceTable) {\n reverseRelations.push(referencedTableRelation);\n }\n }\n if (reverseRelations.length > 1) {\n throw relation.relationName ? new Error(`There are multiple relations with name \"${relation.relationName}\" in table \"${referencedTableTsName}\"`) : new Error(`There are multiple relations between \"${referencedTableTsName}\" and \"${relation.sourceTable[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Name]}\". Please specify relation name`);\n }\n if (reverseRelations[0] && (0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(reverseRelations[0], One) && reverseRelations[0].config) {\n return {\n fields: reverseRelations[0].config.references,\n references: reverseRelations[0].config.fields\n };\n }\n throw new Error(`There is not enough information to infer relation \"${sourceTableTsName}.${relation.fieldName}\"`);\n}\nfunction createTableRelationsHelpers(sourceTable) {\n return {\n one: createOne(sourceTable),\n many: createMany(sourceTable)\n };\n}\nfunction mapRelationalRow(tablesConfig, tableConfig, row, buildQueryResultSelection, mapColumnValue = (value)=>value) {\n const result = {};\n for (const [selectionItemIndex, selectionItem] of buildQueryResultSelection.entries()){\n if (selectionItem.isJson) {\n const relation = tableConfig.relations[selectionItem.tsKey];\n const rawSubRows = row[selectionItemIndex];\n const subRows = typeof rawSubRows === \"string\" ? JSON.parse(rawSubRows) : rawSubRows;\n result[selectionItem.tsKey] = (0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(relation, One) ? subRows && mapRelationalRow(tablesConfig, tablesConfig[selectionItem.relationTableTsKey], subRows, selectionItem.selection, mapColumnValue) : subRows.map((subRow)=>mapRelationalRow(tablesConfig, tablesConfig[selectionItem.relationTableTsKey], subRow, selectionItem.selection, mapColumnValue));\n } else {\n const value = mapColumnValue(row[selectionItemIndex]);\n const field = selectionItem.field;\n let decoder;\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(field, _column_js__WEBPACK_IMPORTED_MODULE_6__.Column)) {\n decoder = field;\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.SQL)) {\n decoder = field.decoder;\n } else {\n decoder = field.sql.decoder;\n }\n result[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n }\n }\n return result;\n}\n //# sourceMappingURL=relations.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3JlbGF0aW9ucy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUE0QztBQUNQO0FBQ1E7QUFDaUI7QUF5QjFCO0FBQ0k7QUFDeEMsTUFBTStCO0lBQ0pDLFlBQVlDLFdBQVcsRUFBRUMsZUFBZSxFQUFFQyxZQUFZLENBQUU7UUFDdEQsSUFBSSxDQUFDRixXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsZUFBZSxHQUFHQTtRQUN2QixJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxtQkFBbUIsR0FBR0YsZUFBZSxDQUFDakMsNENBQUtBLENBQUNvQyxNQUFNLENBQUNDLElBQUksQ0FBQztJQUMvRDs7WUFDTyxDQUFDbkMsa0RBQVVBLENBQUMsR0FBRzs7QUFHeEI7QUFDQSxNQUFNb0M7SUFDSlAsWUFBWVEsS0FBSyxFQUFFQyxNQUFNLENBQUU7UUFDekIsSUFBSSxDQUFDRCxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO0lBQ2hCOztZQUNPLENBQUN0QyxrREFBVUEsQ0FBQyxHQUFHOztBQUN4QjtBQUNBLE1BQU11QyxZQUFZWDtJQUNoQkMsWUFBWUMsV0FBVyxFQUFFQyxlQUFlLEVBQUVPLE1BQU0sRUFBRUUsVUFBVSxDQUFFO1FBQzVELEtBQUssQ0FBQ1YsYUFBYUMsaUJBQWlCTyxRQUFRTjtRQUM1QyxJQUFJLENBQUNNLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNFLFVBQVUsR0FBR0E7SUFDcEI7O1lBQ08sQ0FBQ3hDLGtEQUFVQSxDQUFDLEdBQUc7O0lBQ3RCeUMsY0FBY0MsU0FBUyxFQUFFO1FBQ3ZCLE1BQU1DLFdBQVcsSUFBSUosSUFDbkIsSUFBSSxDQUFDVCxXQUFXLEVBQ2hCLElBQUksQ0FBQ0MsZUFBZSxFQUNwQixJQUFJLENBQUNPLE1BQU0sRUFDWCxJQUFJLENBQUNFLFVBQVU7UUFFakJHLFNBQVNELFNBQVMsR0FBR0E7UUFDckIsT0FBT0M7SUFDVDtBQUNGO0FBQ0EsTUFBTUMsYUFBYWhCO0lBQ2pCQyxZQUFZQyxXQUFXLEVBQUVDLGVBQWUsRUFBRU8sTUFBTSxDQUFFO1FBQ2hELEtBQUssQ0FBQ1IsYUFBYUMsaUJBQWlCTyxRQUFRTjtRQUM1QyxJQUFJLENBQUNNLE1BQU0sR0FBR0E7SUFDaEI7O1lBQ08sQ0FBQ3RDLGtEQUFVQSxDQUFDLEdBQUc7O0lBQ3RCeUMsY0FBY0MsU0FBUyxFQUFFO1FBQ3ZCLE1BQU1DLFdBQVcsSUFBSUMsS0FDbkIsSUFBSSxDQUFDZCxXQUFXLEVBQ2hCLElBQUksQ0FBQ0MsZUFBZSxFQUNwQixJQUFJLENBQUNPLE1BQU07UUFFYkssU0FBU0QsU0FBUyxHQUFHQTtRQUNyQixPQUFPQztJQUNUO0FBQ0Y7QUFDQSxTQUFTRTtJQUNQLE9BQU87UUFDTDFDLEdBQUdBLDREQUFBQTtRQUNIRSxPQUFPQSxnRUFBQUE7UUFDUEUsRUFBRUEsMkRBQUFBO1FBQ0ZDLE1BQU1BLCtEQUFBQTtRQUNOQyxFQUFFQSwyREFBQUE7UUFDRkMsR0FBR0EsNERBQUFBO1FBQ0hDLEtBQUtBLDhEQUFBQTtRQUNMQyxPQUFPQSxnRUFBQUE7UUFDUEUsTUFBTUEsK0RBQUFBO1FBQ05ELFNBQVNBLGtFQUFBQTtRQUNURSxJQUFJQSw2REFBQUE7UUFDSkMsRUFBRUEsMkRBQUFBO1FBQ0ZDLEdBQUdBLDREQUFBQTtRQUNIQyxFQUFFQSwyREFBQUE7UUFDRkMsR0FBR0EsNERBQUFBO1FBQ0hDLFVBQVVBLG1FQUFBQTtRQUNWQyxTQUFTQSxrRUFBQUE7UUFDVEcsT0FBT0EsZ0VBQUFBO1FBQ1BGLFFBQVFBLGlFQUFBQTtRQUNSQyxVQUFVQSxtRUFBQUE7UUFDVkUsRUFBRUEsMkRBQUFBO1FBQ0ZFLEdBQUdBLDhDQUFBQTtJQUNMO0FBQ0Y7QUFDQSxTQUFTbUI7SUFDUCxPQUFPO1FBQ0xuQixHQUFHQSw4Q0FBQUE7UUFDSHZCLEdBQUdBLDREQUFBQTtRQUNIRSxJQUFJQSw2REFBQUE7SUFDTjtBQUNGO0FBQ0EsU0FBU3lDLDhCQUE4QkMsTUFBTSxFQUFFQyxhQUFhO0lBQzFELElBQUlDLE9BQU9DLElBQUksQ0FBQ0gsUUFBUUksTUFBTSxLQUFLLEtBQUssYUFBYUosVUFBVSxDQUFDL0MsOENBQUVBLENBQUMrQyxNQUFNLENBQUMsVUFBVSxFQUFFbEQsNENBQUtBLEdBQUc7UUFDNUZrRCxTQUFTQSxNQUFNLENBQUMsVUFBVTtJQUM1QjtJQUNBLE1BQU1LLGdCQUFnQixDQUFDO0lBQ3ZCLE1BQU1DLGtCQUFrQixDQUFDO0lBQ3pCLE1BQU1DLGVBQWUsQ0FBQztJQUN0QixLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJUCxPQUFPUSxPQUFPLENBQUNWLFFBQVM7UUFDakQsSUFBSW5ELGtEQUFPQSxDQUFDNEQsUUFBUTtZQUNsQixNQUFNRSxTQUFTRixLQUFLLENBQUMzRCw0Q0FBS0EsQ0FBQ29DLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO1lBQ3ZDLE1BQU15QixvQkFBb0JOLGVBQWUsQ0FBQ0ssT0FBTztZQUNqRE4sYUFBYSxDQUFDTSxPQUFPLEdBQUdIO1lBQ3hCRCxZQUFZLENBQUNDLElBQUksR0FBRztnQkFDbEJLLFFBQVFMO2dCQUNSRyxRQUFRRixLQUFLLENBQUMzRCw0Q0FBS0EsQ0FBQ29DLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO2dCQUNoQ2EsUUFBUVMsS0FBSyxDQUFDM0QsNENBQUtBLENBQUNvQyxNQUFNLENBQUM0QixNQUFNLENBQUM7Z0JBQ2xDQyxTQUFTTixLQUFLLENBQUMzRCw0Q0FBS0EsQ0FBQ29DLE1BQU0sQ0FBQzhCLE9BQU8sQ0FBQztnQkFDcENDLFdBQVdMLG1CQUFtQkssYUFBYSxDQUFDO2dCQUM1Q0MsWUFBWU4sbUJBQW1CTSxjQUFjLEVBQUU7WUFDakQ7WUFDQSxLQUFLLE1BQU1DLFVBQVVqQixPQUFPa0IsTUFBTSxDQUNoQ1gsS0FBSyxDQUFDM0QsNENBQUtBLENBQUNvQyxNQUFNLENBQUM4QixPQUFPLENBQUMsRUFDMUI7Z0JBQ0QsSUFBSUcsT0FBT0UsT0FBTyxFQUFFO29CQUNsQmQsWUFBWSxDQUFDQyxJQUFJLENBQUNVLFVBQVUsQ0FBQ0ksSUFBSSxDQUFDSDtnQkFDcEM7WUFDRjtZQUNBLE1BQU1JLGNBQWNkLEtBQUssQ0FBQzNELDRDQUFLQSxDQUFDb0MsTUFBTSxDQUFDc0Msa0JBQWtCLENBQUMsR0FBR2Y7WUFDN0QsSUFBSWMsYUFBYTtnQkFDZixLQUFLLE1BQU1FLGVBQWV2QixPQUFPa0IsTUFBTSxDQUFDRyxhQUFjO29CQUNwRCxJQUFJdEUsOENBQUVBLENBQUN3RSxhQUFhdkUsdUVBQWlCQSxHQUFHO3dCQUN0Q3FELFlBQVksQ0FBQ0MsSUFBSSxDQUFDVSxVQUFVLENBQUNJLElBQUksSUFBSUcsWUFBWVYsT0FBTztvQkFDMUQ7Z0JBQ0Y7WUFDRjtRQUNGLE9BQU8sSUFBSTlELDhDQUFFQSxDQUFDd0QsT0FBT3JCLFlBQVk7WUFDL0IsTUFBTXVCLFNBQVNGLE1BQU1wQixLQUFLLENBQUN2Qyw0Q0FBS0EsQ0FBQ29DLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO1lBQzdDLE1BQU11QyxZQUFZckIsYUFBYSxDQUFDTSxPQUFPO1lBQ3ZDLE1BQU1nQixhQUFhbEIsTUFBTW5CLE1BQU0sQ0FDN0JXLGNBQWNRLE1BQU1wQixLQUFLO1lBRTNCLElBQUk2QjtZQUNKLEtBQUssTUFBTSxDQUFDbEMsY0FBY1csU0FBUyxJQUFJTyxPQUFPUSxPQUFPLENBQUNpQixZQUFhO2dCQUNqRSxJQUFJRCxXQUFXO29CQUNiLE1BQU1FLGNBQWNyQixZQUFZLENBQUNtQixVQUFVO29CQUMzQ0UsWUFBWVgsU0FBUyxDQUFDakMsYUFBYSxHQUFHVztvQkFDdEMsSUFBSXVCLFlBQVk7d0JBQ2RVLFlBQVlWLFVBQVUsQ0FBQ0ksSUFBSSxJQUFJSjtvQkFDakM7Z0JBQ0YsT0FBTztvQkFDTCxJQUFJLENBQUVQLENBQUFBLFVBQVVMLGVBQWMsR0FBSTt3QkFDaENBLGVBQWUsQ0FBQ0ssT0FBTyxHQUFHOzRCQUN4Qk0sV0FBVyxDQUFDOzRCQUNaQzt3QkFDRjtvQkFDRjtvQkFDQVosZUFBZSxDQUFDSyxPQUFPLENBQUNNLFNBQVMsQ0FBQ2pDLGFBQWEsR0FBR1c7Z0JBQ3BEO1lBQ0Y7UUFDRjtJQUNGO0lBQ0EsT0FBTztRQUFFa0MsUUFBUXRCO1FBQWNGO0lBQWM7QUFDL0M7QUFDQSxTQUFTWSxVQUFVNUIsS0FBSyxFQUFFc0MsVUFBVTtJQUNsQyxPQUFPLElBQUl2QyxVQUNUQyxPQUNBLENBQUN5QyxVQUFZNUIsT0FBTzZCLFdBQVcsQ0FDN0I3QixPQUFPUSxPQUFPLENBQUNpQixXQUFXRyxVQUFVRSxHQUFHLENBQUMsQ0FBQyxDQUFDeEIsS0FBS0MsTUFBTSxHQUFLO2dCQUN4REQ7Z0JBQ0FDLE1BQU1oQixhQUFhLENBQUNlO2FBQ3JCO0FBR1A7QUFDQSxTQUFTeUIsVUFBVW5ELFdBQVc7SUFDNUIsT0FBTyxTQUFTb0QsSUFBSTdDLEtBQUssRUFBRUMsTUFBTTtRQUMvQixPQUFPLElBQUlDLElBQ1RULGFBQ0FPLE9BQ0FDLFFBQ0FBLFFBQVE2QyxPQUFPQyxPQUFPLENBQUNDLEtBQUtDLElBQU1ELE9BQU9DLEVBQUVDLE9BQU8sRUFBRSxTQUFTO0lBRWpFO0FBQ0Y7QUFDQSxTQUFTQyxXQUFXMUQsV0FBVztJQUM3QixPQUFPLFNBQVMyRCxLQUFLMUQsZUFBZSxFQUFFTyxNQUFNO1FBQzFDLE9BQU8sSUFBSU0sS0FBS2QsYUFBYUMsaUJBQWlCTztJQUNoRDtBQUNGO0FBQ0EsU0FBU29ELGtCQUFrQjFDLE1BQU0sRUFBRUssYUFBYSxFQUFFVixRQUFRO0lBQ3hELElBQUkxQyw4Q0FBRUEsQ0FBQzBDLFVBQVVKLFFBQVFJLFNBQVNMLE1BQU0sRUFBRTtRQUN4QyxPQUFPO1lBQ0w2QyxRQUFReEMsU0FBU0wsTUFBTSxDQUFDNkMsTUFBTTtZQUM5QlEsWUFBWWhELFNBQVNMLE1BQU0sQ0FBQ3FELFVBQVU7UUFDeEM7SUFDRjtJQUNBLE1BQU1DLHdCQUF3QnZDLGFBQWEsQ0FBQ1YsU0FBU1osZUFBZSxDQUFDakMsNENBQUtBLENBQUNvQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDO0lBQ3hGLElBQUksQ0FBQ3lELHVCQUF1QjtRQUMxQixNQUFNLElBQUlDLE1BQ1IsQ0FBQyxPQUFPLEVBQUVsRCxTQUFTWixlQUFlLENBQUNqQyw0Q0FBS0EsQ0FBQ29DLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMscUJBQXFCLENBQUM7SUFFaEY7SUFDQSxNQUFNMkQsd0JBQXdCOUMsTUFBTSxDQUFDNEMsc0JBQXNCO0lBQzNELElBQUksQ0FBQ0UsdUJBQXVCO1FBQzFCLE1BQU0sSUFBSUQsTUFBTSxDQUFDLE9BQU8sRUFBRUQsc0JBQXNCLHFCQUFxQixDQUFDO0lBQ3hFO0lBQ0EsTUFBTTlELGNBQWNhLFNBQVNiLFdBQVc7SUFDeEMsTUFBTWlFLG9CQUFvQjFDLGFBQWEsQ0FBQ3ZCLFdBQVcsQ0FBQ2hDLDRDQUFLQSxDQUFDb0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQztJQUN2RSxJQUFJLENBQUM0RCxtQkFBbUI7UUFDdEIsTUFBTSxJQUFJRixNQUNSLENBQUMsT0FBTyxFQUFFL0QsV0FBVyxDQUFDaEMsNENBQUtBLENBQUNvQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLHFCQUFxQixDQUFDO0lBRW5FO0lBQ0EsTUFBTTZELG1CQUFtQixFQUFFO0lBQzNCLEtBQUssTUFBTUMsMkJBQTJCL0MsT0FBT2tCLE1BQU0sQ0FDakQwQixzQkFBc0I3QixTQUFTLEVBQzlCO1FBQ0QsSUFBSXRCLFNBQVNYLFlBQVksSUFBSVcsYUFBYXNELDJCQUEyQkEsd0JBQXdCakUsWUFBWSxLQUFLVyxTQUFTWCxZQUFZLElBQUksQ0FBQ1csU0FBU1gsWUFBWSxJQUFJaUUsd0JBQXdCbEUsZUFBZSxLQUFLWSxTQUFTYixXQUFXLEVBQUU7WUFDak9rRSxpQkFBaUIxQixJQUFJLENBQUMyQjtRQUN4QjtJQUNGO0lBQ0EsSUFBSUQsaUJBQWlCNUMsTUFBTSxHQUFHLEdBQUc7UUFDL0IsTUFBTVQsU0FBU1gsWUFBWSxHQUFHLElBQUk2RCxNQUNoQyxDQUFDLHdDQUF3QyxFQUFFbEQsU0FBU1gsWUFBWSxDQUFDLFlBQVksRUFBRTRELHNCQUFzQixDQUFDLENBQUMsSUFDckcsSUFBSUMsTUFDTixDQUFDLHNDQUFzQyxFQUFFRCxzQkFBc0IsT0FBTyxFQUFFakQsU0FBU2IsV0FBVyxDQUFDaEMsNENBQUtBLENBQUNvQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLCtCQUErQixDQUFDO0lBRXBKO0lBQ0EsSUFBSTZELGdCQUFnQixDQUFDLEVBQUUsSUFBSS9GLDhDQUFFQSxDQUFDK0YsZ0JBQWdCLENBQUMsRUFBRSxFQUFFekQsUUFBUXlELGdCQUFnQixDQUFDLEVBQUUsQ0FBQzFELE1BQU0sRUFBRTtRQUNyRixPQUFPO1lBQ0w2QyxRQUFRYSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMxRCxNQUFNLENBQUNxRCxVQUFVO1lBQzdDQSxZQUFZSyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMxRCxNQUFNLENBQUM2QyxNQUFNO1FBQy9DO0lBQ0Y7SUFDQSxNQUFNLElBQUlVLE1BQ1IsQ0FBQyxtREFBbUQsRUFBRUUsa0JBQWtCLENBQUMsRUFBRXBELFNBQVNELFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFcEc7QUFDQSxTQUFTd0QsNEJBQTRCcEUsV0FBVztJQUM5QyxPQUFPO1FBQ0xvRCxLQUFLRCxVQUFVbkQ7UUFDZjJELE1BQU1ELFdBQVcxRDtJQUNuQjtBQUNGO0FBQ0EsU0FBU3FFLGlCQUFpQjVDLFlBQVksRUFBRXFCLFdBQVcsRUFBRXdCLEdBQUcsRUFBRUMseUJBQXlCLEVBQUVDLGlCQUFpQixDQUFDN0MsUUFBVUEsS0FBSztJQUNwSCxNQUFNOEMsU0FBUyxDQUFDO0lBQ2hCLEtBQUssTUFBTSxDQUNUQyxvQkFDQUMsY0FDRCxJQUFJSiwwQkFBMEIzQyxPQUFPLEdBQUk7UUFDeEMsSUFBSStDLGNBQWNDLE1BQU0sRUFBRTtZQUN4QixNQUFNL0QsV0FBV2lDLFlBQVlYLFNBQVMsQ0FBQ3dDLGNBQWNFLEtBQUssQ0FBQztZQUMzRCxNQUFNQyxhQUFhUixHQUFHLENBQUNJLG1CQUFtQjtZQUMxQyxNQUFNSyxVQUFVLE9BQU9ELGVBQWUsV0FBV0UsS0FBS0MsS0FBSyxDQUFDSCxjQUFjQTtZQUMxRUwsTUFBTSxDQUFDRSxjQUFjRSxLQUFLLENBQUMsR0FBRzFHLDhDQUFFQSxDQUFDMEMsVUFBVUosT0FBT3NFLFdBQVdWLGlCQUMzRDVDLGNBQ0FBLFlBQVksQ0FBQ2tELGNBQWNPLGtCQUFrQixDQUFDLEVBQzlDSCxTQUNBSixjQUFjUSxTQUFTLEVBQ3ZCWCxrQkFDRU8sUUFBUTdCLEdBQUcsQ0FDYixDQUFDa0MsU0FBV2YsaUJBQ1Y1QyxjQUNBQSxZQUFZLENBQUNrRCxjQUFjTyxrQkFBa0IsQ0FBQyxFQUM5Q0UsUUFDQVQsY0FBY1EsU0FBUyxFQUN2Qlg7UUFHTixPQUFPO1lBQ0wsTUFBTTdDLFFBQVE2QyxlQUFlRixHQUFHLENBQUNJLG1CQUFtQjtZQUNwRCxNQUFNVyxRQUFRVixjQUFjVSxLQUFLO1lBQ2pDLElBQUlDO1lBQ0osSUFBSW5ILDhDQUFFQSxDQUFDa0gsT0FBT3BILDhDQUFNQSxHQUFHO2dCQUNyQnFILFVBQVVEO1lBQ1osT0FBTyxJQUFJbEgsOENBQUVBLENBQUNrSCxPQUFPekYsNENBQUdBLEdBQUc7Z0JBQ3pCMEYsVUFBVUQsTUFBTUMsT0FBTztZQUN6QixPQUFPO2dCQUNMQSxVQUFVRCxNQUFNeEYsR0FBRyxDQUFDeUYsT0FBTztZQUM3QjtZQUNBYixNQUFNLENBQUNFLGNBQWNFLEtBQUssQ0FBQyxHQUFHbEQsVUFBVSxPQUFPLE9BQU8yRCxRQUFRQyxrQkFBa0IsQ0FBQzVEO1FBQ25GO0lBQ0Y7SUFDQSxPQUFPOEM7QUFDVDtBQWVFLENBQ0YscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vcmVsYXRpb25zLmpzPzIzM2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNUYWJsZSwgVGFibGUgfSBmcm9tIFwiLi90YWJsZS5qc1wiO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vY29sdW1uLmpzXCI7XG5pbXBvcnQgeyBlbnRpdHlLaW5kLCBpcyB9IGZyb20gXCIuL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgUHJpbWFyeUtleUJ1aWxkZXIgfSBmcm9tIFwiLi9wZy1jb3JlL3ByaW1hcnkta2V5cy5qc1wiO1xuaW1wb3J0IHtcbiAgYW5kLFxuICBhc2MsXG4gIGJldHdlZW4sXG4gIGRlc2MsXG4gIGVxLFxuICBleGlzdHMsXG4gIGd0LFxuICBndGUsXG4gIGlsaWtlLFxuICBpbkFycmF5LFxuICBpc05vdE51bGwsXG4gIGlzTnVsbCxcbiAgbGlrZSxcbiAgbHQsXG4gIGx0ZSxcbiAgbmUsXG4gIG5vdCxcbiAgbm90QmV0d2VlbixcbiAgbm90RXhpc3RzLFxuICBub3RJbGlrZSxcbiAgbm90SW5BcnJheSxcbiAgbm90TGlrZSxcbiAgb3Jcbn0gZnJvbSBcIi4vc3FsL2V4cHJlc3Npb25zL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBTUUwsIHNxbCB9IGZyb20gXCIuL3NxbC9zcWwuanNcIjtcbmNsYXNzIFJlbGF0aW9uIHtcbiAgY29uc3RydWN0b3Ioc291cmNlVGFibGUsIHJlZmVyZW5jZWRUYWJsZSwgcmVsYXRpb25OYW1lKSB7XG4gICAgdGhpcy5zb3VyY2VUYWJsZSA9IHNvdXJjZVRhYmxlO1xuICAgIHRoaXMucmVmZXJlbmNlZFRhYmxlID0gcmVmZXJlbmNlZFRhYmxlO1xuICAgIHRoaXMucmVsYXRpb25OYW1lID0gcmVsYXRpb25OYW1lO1xuICAgIHRoaXMucmVmZXJlbmNlZFRhYmxlTmFtZSA9IHJlZmVyZW5jZWRUYWJsZVtUYWJsZS5TeW1ib2wuTmFtZV07XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiUmVsYXRpb25cIjtcbiAgcmVmZXJlbmNlZFRhYmxlTmFtZTtcbiAgZmllbGROYW1lO1xufVxuY2xhc3MgUmVsYXRpb25zIHtcbiAgY29uc3RydWN0b3IodGFibGUsIGNvbmZpZykge1xuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJSZWxhdGlvbnNcIjtcbn1cbmNsYXNzIE9uZSBleHRlbmRzIFJlbGF0aW9uIHtcbiAgY29uc3RydWN0b3Ioc291cmNlVGFibGUsIHJlZmVyZW5jZWRUYWJsZSwgY29uZmlnLCBpc051bGxhYmxlKSB7XG4gICAgc3VwZXIoc291cmNlVGFibGUsIHJlZmVyZW5jZWRUYWJsZSwgY29uZmlnPy5yZWxhdGlvbk5hbWUpO1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuaXNOdWxsYWJsZSA9IGlzTnVsbGFibGU7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiT25lXCI7XG4gIHdpdGhGaWVsZE5hbWUoZmllbGROYW1lKSB7XG4gICAgY29uc3QgcmVsYXRpb24gPSBuZXcgT25lKFxuICAgICAgdGhpcy5zb3VyY2VUYWJsZSxcbiAgICAgIHRoaXMucmVmZXJlbmNlZFRhYmxlLFxuICAgICAgdGhpcy5jb25maWcsXG4gICAgICB0aGlzLmlzTnVsbGFibGVcbiAgICApO1xuICAgIHJlbGF0aW9uLmZpZWxkTmFtZSA9IGZpZWxkTmFtZTtcbiAgICByZXR1cm4gcmVsYXRpb247XG4gIH1cbn1cbmNsYXNzIE1hbnkgZXh0ZW5kcyBSZWxhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNvdXJjZVRhYmxlLCByZWZlcmVuY2VkVGFibGUsIGNvbmZpZykge1xuICAgIHN1cGVyKHNvdXJjZVRhYmxlLCByZWZlcmVuY2VkVGFibGUsIGNvbmZpZz8ucmVsYXRpb25OYW1lKTtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJNYW55XCI7XG4gIHdpdGhGaWVsZE5hbWUoZmllbGROYW1lKSB7XG4gICAgY29uc3QgcmVsYXRpb24gPSBuZXcgTWFueShcbiAgICAgIHRoaXMuc291cmNlVGFibGUsXG4gICAgICB0aGlzLnJlZmVyZW5jZWRUYWJsZSxcbiAgICAgIHRoaXMuY29uZmlnXG4gICAgKTtcbiAgICByZWxhdGlvbi5maWVsZE5hbWUgPSBmaWVsZE5hbWU7XG4gICAgcmV0dXJuIHJlbGF0aW9uO1xuICB9XG59XG5mdW5jdGlvbiBnZXRPcGVyYXRvcnMoKSB7XG4gIHJldHVybiB7XG4gICAgYW5kLFxuICAgIGJldHdlZW4sXG4gICAgZXEsXG4gICAgZXhpc3RzLFxuICAgIGd0LFxuICAgIGd0ZSxcbiAgICBpbGlrZSxcbiAgICBpbkFycmF5LFxuICAgIGlzTnVsbCxcbiAgICBpc05vdE51bGwsXG4gICAgbGlrZSxcbiAgICBsdCxcbiAgICBsdGUsXG4gICAgbmUsXG4gICAgbm90LFxuICAgIG5vdEJldHdlZW4sXG4gICAgbm90RXhpc3RzLFxuICAgIG5vdExpa2UsXG4gICAgbm90SWxpa2UsXG4gICAgbm90SW5BcnJheSxcbiAgICBvcixcbiAgICBzcWxcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldE9yZGVyQnlPcGVyYXRvcnMoKSB7XG4gIHJldHVybiB7XG4gICAgc3FsLFxuICAgIGFzYyxcbiAgICBkZXNjXG4gIH07XG59XG5mdW5jdGlvbiBleHRyYWN0VGFibGVzUmVsYXRpb25hbENvbmZpZyhzY2hlbWEsIGNvbmZpZ0hlbHBlcnMpIHtcbiAgaWYgKE9iamVjdC5rZXlzKHNjaGVtYSkubGVuZ3RoID09PSAxICYmIFwiZGVmYXVsdFwiIGluIHNjaGVtYSAmJiAhaXMoc2NoZW1hW1wiZGVmYXVsdFwiXSwgVGFibGUpKSB7XG4gICAgc2NoZW1hID0gc2NoZW1hW1wiZGVmYXVsdFwiXTtcbiAgfVxuICBjb25zdCB0YWJsZU5hbWVzTWFwID0ge307XG4gIGNvbnN0IHJlbGF0aW9uc0J1ZmZlciA9IHt9O1xuICBjb25zdCB0YWJsZXNDb25maWcgPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc2NoZW1hKSkge1xuICAgIGlmIChpc1RhYmxlKHZhbHVlKSkge1xuICAgICAgY29uc3QgZGJOYW1lID0gdmFsdWVbVGFibGUuU3ltYm9sLk5hbWVdO1xuICAgICAgY29uc3QgYnVmZmVyZWRSZWxhdGlvbnMgPSByZWxhdGlvbnNCdWZmZXJbZGJOYW1lXTtcbiAgICAgIHRhYmxlTmFtZXNNYXBbZGJOYW1lXSA9IGtleTtcbiAgICAgIHRhYmxlc0NvbmZpZ1trZXldID0ge1xuICAgICAgICB0c05hbWU6IGtleSxcbiAgICAgICAgZGJOYW1lOiB2YWx1ZVtUYWJsZS5TeW1ib2wuTmFtZV0sXG4gICAgICAgIHNjaGVtYTogdmFsdWVbVGFibGUuU3ltYm9sLlNjaGVtYV0sXG4gICAgICAgIGNvbHVtbnM6IHZhbHVlW1RhYmxlLlN5bWJvbC5Db2x1bW5zXSxcbiAgICAgICAgcmVsYXRpb25zOiBidWZmZXJlZFJlbGF0aW9ucz8ucmVsYXRpb25zID8/IHt9LFxuICAgICAgICBwcmltYXJ5S2V5OiBidWZmZXJlZFJlbGF0aW9ucz8ucHJpbWFyeUtleSA/PyBbXVxuICAgICAgfTtcbiAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIE9iamVjdC52YWx1ZXMoXG4gICAgICAgIHZhbHVlW1RhYmxlLlN5bWJvbC5Db2x1bW5zXVxuICAgICAgKSkge1xuICAgICAgICBpZiAoY29sdW1uLnByaW1hcnkpIHtcbiAgICAgICAgICB0YWJsZXNDb25maWdba2V5XS5wcmltYXJ5S2V5LnB1c2goY29sdW1uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgZXh0cmFDb25maWcgPSB2YWx1ZVtUYWJsZS5TeW1ib2wuRXh0cmFDb25maWdCdWlsZGVyXT8uKHZhbHVlKTtcbiAgICAgIGlmIChleHRyYUNvbmZpZykge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbmZpZ0VudHJ5IG9mIE9iamVjdC52YWx1ZXMoZXh0cmFDb25maWcpKSB7XG4gICAgICAgICAgaWYgKGlzKGNvbmZpZ0VudHJ5LCBQcmltYXJ5S2V5QnVpbGRlcikpIHtcbiAgICAgICAgICAgIHRhYmxlc0NvbmZpZ1trZXldLnByaW1hcnlLZXkucHVzaCguLi5jb25maWdFbnRyeS5jb2x1bW5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzKHZhbHVlLCBSZWxhdGlvbnMpKSB7XG4gICAgICBjb25zdCBkYk5hbWUgPSB2YWx1ZS50YWJsZVtUYWJsZS5TeW1ib2wuTmFtZV07XG4gICAgICBjb25zdCB0YWJsZU5hbWUgPSB0YWJsZU5hbWVzTWFwW2RiTmFtZV07XG4gICAgICBjb25zdCByZWxhdGlvbnMyID0gdmFsdWUuY29uZmlnKFxuICAgICAgICBjb25maWdIZWxwZXJzKHZhbHVlLnRhYmxlKVxuICAgICAgKTtcbiAgICAgIGxldCBwcmltYXJ5S2V5O1xuICAgICAgZm9yIChjb25zdCBbcmVsYXRpb25OYW1lLCByZWxhdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMocmVsYXRpb25zMikpIHtcbiAgICAgICAgaWYgKHRhYmxlTmFtZSkge1xuICAgICAgICAgIGNvbnN0IHRhYmxlQ29uZmlnID0gdGFibGVzQ29uZmlnW3RhYmxlTmFtZV07XG4gICAgICAgICAgdGFibGVDb25maWcucmVsYXRpb25zW3JlbGF0aW9uTmFtZV0gPSByZWxhdGlvbjtcbiAgICAgICAgICBpZiAocHJpbWFyeUtleSkge1xuICAgICAgICAgICAgdGFibGVDb25maWcucHJpbWFyeUtleS5wdXNoKC4uLnByaW1hcnlLZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIShkYk5hbWUgaW4gcmVsYXRpb25zQnVmZmVyKSkge1xuICAgICAgICAgICAgcmVsYXRpb25zQnVmZmVyW2RiTmFtZV0gPSB7XG4gICAgICAgICAgICAgIHJlbGF0aW9uczoge30sXG4gICAgICAgICAgICAgIHByaW1hcnlLZXlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlbGF0aW9uc0J1ZmZlcltkYk5hbWVdLnJlbGF0aW9uc1tyZWxhdGlvbk5hbWVdID0gcmVsYXRpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgdGFibGVzOiB0YWJsZXNDb25maWcsIHRhYmxlTmFtZXNNYXAgfTtcbn1cbmZ1bmN0aW9uIHJlbGF0aW9ucyh0YWJsZSwgcmVsYXRpb25zMikge1xuICByZXR1cm4gbmV3IFJlbGF0aW9ucyhcbiAgICB0YWJsZSxcbiAgICAoaGVscGVycykgPT4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVsYXRpb25zMihoZWxwZXJzKSkubWFwKChba2V5LCB2YWx1ZV0pID0+IFtcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZS53aXRoRmllbGROYW1lKGtleSlcbiAgICAgIF0pXG4gICAgKVxuICApO1xufVxuZnVuY3Rpb24gY3JlYXRlT25lKHNvdXJjZVRhYmxlKSB7XG4gIHJldHVybiBmdW5jdGlvbiBvbmUodGFibGUsIGNvbmZpZykge1xuICAgIHJldHVybiBuZXcgT25lKFxuICAgICAgc291cmNlVGFibGUsXG4gICAgICB0YWJsZSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGNvbmZpZz8uZmllbGRzLnJlZHVjZSgocmVzLCBmKSA9PiByZXMgJiYgZi5ub3ROdWxsLCB0cnVlKSA/PyBmYWxzZVxuICAgICk7XG4gIH07XG59XG5mdW5jdGlvbiBjcmVhdGVNYW55KHNvdXJjZVRhYmxlKSB7XG4gIHJldHVybiBmdW5jdGlvbiBtYW55KHJlZmVyZW5jZWRUYWJsZSwgY29uZmlnKSB7XG4gICAgcmV0dXJuIG5ldyBNYW55KHNvdXJjZVRhYmxlLCByZWZlcmVuY2VkVGFibGUsIGNvbmZpZyk7XG4gIH07XG59XG5mdW5jdGlvbiBub3JtYWxpemVSZWxhdGlvbihzY2hlbWEsIHRhYmxlTmFtZXNNYXAsIHJlbGF0aW9uKSB7XG4gIGlmIChpcyhyZWxhdGlvbiwgT25lKSAmJiByZWxhdGlvbi5jb25maWcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGRzOiByZWxhdGlvbi5jb25maWcuZmllbGRzLFxuICAgICAgcmVmZXJlbmNlczogcmVsYXRpb24uY29uZmlnLnJlZmVyZW5jZXNcbiAgICB9O1xuICB9XG4gIGNvbnN0IHJlZmVyZW5jZWRUYWJsZVRzTmFtZSA9IHRhYmxlTmFtZXNNYXBbcmVsYXRpb24ucmVmZXJlbmNlZFRhYmxlW1RhYmxlLlN5bWJvbC5OYW1lXV07XG4gIGlmICghcmVmZXJlbmNlZFRhYmxlVHNOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRhYmxlIFwiJHtyZWxhdGlvbi5yZWZlcmVuY2VkVGFibGVbVGFibGUuU3ltYm9sLk5hbWVdfVwiIG5vdCBmb3VuZCBpbiBzY2hlbWFgXG4gICAgKTtcbiAgfVxuICBjb25zdCByZWZlcmVuY2VkVGFibGVDb25maWcgPSBzY2hlbWFbcmVmZXJlbmNlZFRhYmxlVHNOYW1lXTtcbiAgaWYgKCFyZWZlcmVuY2VkVGFibGVDb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRhYmxlIFwiJHtyZWZlcmVuY2VkVGFibGVUc05hbWV9XCIgbm90IGZvdW5kIGluIHNjaGVtYWApO1xuICB9XG4gIGNvbnN0IHNvdXJjZVRhYmxlID0gcmVsYXRpb24uc291cmNlVGFibGU7XG4gIGNvbnN0IHNvdXJjZVRhYmxlVHNOYW1lID0gdGFibGVOYW1lc01hcFtzb3VyY2VUYWJsZVtUYWJsZS5TeW1ib2wuTmFtZV1dO1xuICBpZiAoIXNvdXJjZVRhYmxlVHNOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRhYmxlIFwiJHtzb3VyY2VUYWJsZVtUYWJsZS5TeW1ib2wuTmFtZV19XCIgbm90IGZvdW5kIGluIHNjaGVtYWBcbiAgICApO1xuICB9XG4gIGNvbnN0IHJldmVyc2VSZWxhdGlvbnMgPSBbXTtcbiAgZm9yIChjb25zdCByZWZlcmVuY2VkVGFibGVSZWxhdGlvbiBvZiBPYmplY3QudmFsdWVzKFxuICAgIHJlZmVyZW5jZWRUYWJsZUNvbmZpZy5yZWxhdGlvbnNcbiAgKSkge1xuICAgIGlmIChyZWxhdGlvbi5yZWxhdGlvbk5hbWUgJiYgcmVsYXRpb24gIT09IHJlZmVyZW5jZWRUYWJsZVJlbGF0aW9uICYmIHJlZmVyZW5jZWRUYWJsZVJlbGF0aW9uLnJlbGF0aW9uTmFtZSA9PT0gcmVsYXRpb24ucmVsYXRpb25OYW1lIHx8ICFyZWxhdGlvbi5yZWxhdGlvbk5hbWUgJiYgcmVmZXJlbmNlZFRhYmxlUmVsYXRpb24ucmVmZXJlbmNlZFRhYmxlID09PSByZWxhdGlvbi5zb3VyY2VUYWJsZSkge1xuICAgICAgcmV2ZXJzZVJlbGF0aW9ucy5wdXNoKHJlZmVyZW5jZWRUYWJsZVJlbGF0aW9uKTtcbiAgICB9XG4gIH1cbiAgaWYgKHJldmVyc2VSZWxhdGlvbnMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IHJlbGF0aW9uLnJlbGF0aW9uTmFtZSA/IG5ldyBFcnJvcihcbiAgICAgIGBUaGVyZSBhcmUgbXVsdGlwbGUgcmVsYXRpb25zIHdpdGggbmFtZSBcIiR7cmVsYXRpb24ucmVsYXRpb25OYW1lfVwiIGluIHRhYmxlIFwiJHtyZWZlcmVuY2VkVGFibGVUc05hbWV9XCJgXG4gICAgKSA6IG5ldyBFcnJvcihcbiAgICAgIGBUaGVyZSBhcmUgbXVsdGlwbGUgcmVsYXRpb25zIGJldHdlZW4gXCIke3JlZmVyZW5jZWRUYWJsZVRzTmFtZX1cIiBhbmQgXCIke3JlbGF0aW9uLnNvdXJjZVRhYmxlW1RhYmxlLlN5bWJvbC5OYW1lXX1cIi4gUGxlYXNlIHNwZWNpZnkgcmVsYXRpb24gbmFtZWBcbiAgICApO1xuICB9XG4gIGlmIChyZXZlcnNlUmVsYXRpb25zWzBdICYmIGlzKHJldmVyc2VSZWxhdGlvbnNbMF0sIE9uZSkgJiYgcmV2ZXJzZVJlbGF0aW9uc1swXS5jb25maWcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGRzOiByZXZlcnNlUmVsYXRpb25zWzBdLmNvbmZpZy5yZWZlcmVuY2VzLFxuICAgICAgcmVmZXJlbmNlczogcmV2ZXJzZVJlbGF0aW9uc1swXS5jb25maWcuZmllbGRzXG4gICAgfTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYFRoZXJlIGlzIG5vdCBlbm91Z2ggaW5mb3JtYXRpb24gdG8gaW5mZXIgcmVsYXRpb24gXCIke3NvdXJjZVRhYmxlVHNOYW1lfS4ke3JlbGF0aW9uLmZpZWxkTmFtZX1cImBcbiAgKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRhYmxlUmVsYXRpb25zSGVscGVycyhzb3VyY2VUYWJsZSkge1xuICByZXR1cm4ge1xuICAgIG9uZTogY3JlYXRlT25lKHNvdXJjZVRhYmxlKSxcbiAgICBtYW55OiBjcmVhdGVNYW55KHNvdXJjZVRhYmxlKVxuICB9O1xufVxuZnVuY3Rpb24gbWFwUmVsYXRpb25hbFJvdyh0YWJsZXNDb25maWcsIHRhYmxlQ29uZmlnLCByb3csIGJ1aWxkUXVlcnlSZXN1bHRTZWxlY3Rpb24sIG1hcENvbHVtblZhbHVlID0gKHZhbHVlKSA9PiB2YWx1ZSkge1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgZm9yIChjb25zdCBbXG4gICAgc2VsZWN0aW9uSXRlbUluZGV4LFxuICAgIHNlbGVjdGlvbkl0ZW1cbiAgXSBvZiBidWlsZFF1ZXJ5UmVzdWx0U2VsZWN0aW9uLmVudHJpZXMoKSkge1xuICAgIGlmIChzZWxlY3Rpb25JdGVtLmlzSnNvbikge1xuICAgICAgY29uc3QgcmVsYXRpb24gPSB0YWJsZUNvbmZpZy5yZWxhdGlvbnNbc2VsZWN0aW9uSXRlbS50c0tleV07XG4gICAgICBjb25zdCByYXdTdWJSb3dzID0gcm93W3NlbGVjdGlvbkl0ZW1JbmRleF07XG4gICAgICBjb25zdCBzdWJSb3dzID0gdHlwZW9mIHJhd1N1YlJvd3MgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKHJhd1N1YlJvd3MpIDogcmF3U3ViUm93cztcbiAgICAgIHJlc3VsdFtzZWxlY3Rpb25JdGVtLnRzS2V5XSA9IGlzKHJlbGF0aW9uLCBPbmUpID8gc3ViUm93cyAmJiBtYXBSZWxhdGlvbmFsUm93KFxuICAgICAgICB0YWJsZXNDb25maWcsXG4gICAgICAgIHRhYmxlc0NvbmZpZ1tzZWxlY3Rpb25JdGVtLnJlbGF0aW9uVGFibGVUc0tleV0sXG4gICAgICAgIHN1YlJvd3MsXG4gICAgICAgIHNlbGVjdGlvbkl0ZW0uc2VsZWN0aW9uLFxuICAgICAgICBtYXBDb2x1bW5WYWx1ZVxuICAgICAgKSA6IHN1YlJvd3MubWFwKFxuICAgICAgICAoc3ViUm93KSA9PiBtYXBSZWxhdGlvbmFsUm93KFxuICAgICAgICAgIHRhYmxlc0NvbmZpZyxcbiAgICAgICAgICB0YWJsZXNDb25maWdbc2VsZWN0aW9uSXRlbS5yZWxhdGlvblRhYmxlVHNLZXldLFxuICAgICAgICAgIHN1YlJvdyxcbiAgICAgICAgICBzZWxlY3Rpb25JdGVtLnNlbGVjdGlvbixcbiAgICAgICAgICBtYXBDb2x1bW5WYWx1ZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG1hcENvbHVtblZhbHVlKHJvd1tzZWxlY3Rpb25JdGVtSW5kZXhdKTtcbiAgICAgIGNvbnN0IGZpZWxkID0gc2VsZWN0aW9uSXRlbS5maWVsZDtcbiAgICAgIGxldCBkZWNvZGVyO1xuICAgICAgaWYgKGlzKGZpZWxkLCBDb2x1bW4pKSB7XG4gICAgICAgIGRlY29kZXIgPSBmaWVsZDtcbiAgICAgIH0gZWxzZSBpZiAoaXMoZmllbGQsIFNRTCkpIHtcbiAgICAgICAgZGVjb2RlciA9IGZpZWxkLmRlY29kZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWNvZGVyID0gZmllbGQuc3FsLmRlY29kZXI7XG4gICAgICB9XG4gICAgICByZXN1bHRbc2VsZWN0aW9uSXRlbS50c0tleV0gPSB2YWx1ZSA9PT0gbnVsbCA/IG51bGwgOiBkZWNvZGVyLm1hcEZyb21Ecml2ZXJWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQge1xuICBNYW55LFxuICBPbmUsXG4gIFJlbGF0aW9uLFxuICBSZWxhdGlvbnMsXG4gIGNyZWF0ZU1hbnksXG4gIGNyZWF0ZU9uZSxcbiAgY3JlYXRlVGFibGVSZWxhdGlvbnNIZWxwZXJzLFxuICBleHRyYWN0VGFibGVzUmVsYXRpb25hbENvbmZpZyxcbiAgZ2V0T3BlcmF0b3JzLFxuICBnZXRPcmRlckJ5T3BlcmF0b3JzLFxuICBtYXBSZWxhdGlvbmFsUm93LFxuICBub3JtYWxpemVSZWxhdGlvbixcbiAgcmVsYXRpb25zXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVsYXRpb25zLmpzLm1hcCJdLCJuYW1lcyI6WyJpc1RhYmxlIiwiVGFibGUiLCJDb2x1bW4iLCJlbnRpdHlLaW5kIiwiaXMiLCJQcmltYXJ5S2V5QnVpbGRlciIsImFuZCIsImFzYyIsImJldHdlZW4iLCJkZXNjIiwiZXEiLCJleGlzdHMiLCJndCIsImd0ZSIsImlsaWtlIiwiaW5BcnJheSIsImlzTm90TnVsbCIsImlzTnVsbCIsImxpa2UiLCJsdCIsImx0ZSIsIm5lIiwibm90Iiwibm90QmV0d2VlbiIsIm5vdEV4aXN0cyIsIm5vdElsaWtlIiwibm90SW5BcnJheSIsIm5vdExpa2UiLCJvciIsIlNRTCIsInNxbCIsIlJlbGF0aW9uIiwiY29uc3RydWN0b3IiLCJzb3VyY2VUYWJsZSIsInJlZmVyZW5jZWRUYWJsZSIsInJlbGF0aW9uTmFtZSIsInJlZmVyZW5jZWRUYWJsZU5hbWUiLCJTeW1ib2wiLCJOYW1lIiwiUmVsYXRpb25zIiwidGFibGUiLCJjb25maWciLCJPbmUiLCJpc051bGxhYmxlIiwid2l0aEZpZWxkTmFtZSIsImZpZWxkTmFtZSIsInJlbGF0aW9uIiwiTWFueSIsImdldE9wZXJhdG9ycyIsImdldE9yZGVyQnlPcGVyYXRvcnMiLCJleHRyYWN0VGFibGVzUmVsYXRpb25hbENvbmZpZyIsInNjaGVtYSIsImNvbmZpZ0hlbHBlcnMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwidGFibGVOYW1lc01hcCIsInJlbGF0aW9uc0J1ZmZlciIsInRhYmxlc0NvbmZpZyIsImtleSIsInZhbHVlIiwiZW50cmllcyIsImRiTmFtZSIsImJ1ZmZlcmVkUmVsYXRpb25zIiwidHNOYW1lIiwiU2NoZW1hIiwiY29sdW1ucyIsIkNvbHVtbnMiLCJyZWxhdGlvbnMiLCJwcmltYXJ5S2V5IiwiY29sdW1uIiwidmFsdWVzIiwicHJpbWFyeSIsInB1c2giLCJleHRyYUNvbmZpZyIsIkV4dHJhQ29uZmlnQnVpbGRlciIsImNvbmZpZ0VudHJ5IiwidGFibGVOYW1lIiwicmVsYXRpb25zMiIsInRhYmxlQ29uZmlnIiwidGFibGVzIiwiaGVscGVycyIsImZyb21FbnRyaWVzIiwibWFwIiwiY3JlYXRlT25lIiwib25lIiwiZmllbGRzIiwicmVkdWNlIiwicmVzIiwiZiIsIm5vdE51bGwiLCJjcmVhdGVNYW55IiwibWFueSIsIm5vcm1hbGl6ZVJlbGF0aW9uIiwicmVmZXJlbmNlcyIsInJlZmVyZW5jZWRUYWJsZVRzTmFtZSIsIkVycm9yIiwicmVmZXJlbmNlZFRhYmxlQ29uZmlnIiwic291cmNlVGFibGVUc05hbWUiLCJyZXZlcnNlUmVsYXRpb25zIiwicmVmZXJlbmNlZFRhYmxlUmVsYXRpb24iLCJjcmVhdGVUYWJsZVJlbGF0aW9uc0hlbHBlcnMiLCJtYXBSZWxhdGlvbmFsUm93Iiwicm93IiwiYnVpbGRRdWVyeVJlc3VsdFNlbGVjdGlvbiIsIm1hcENvbHVtblZhbHVlIiwicmVzdWx0Iiwic2VsZWN0aW9uSXRlbUluZGV4Iiwic2VsZWN0aW9uSXRlbSIsImlzSnNvbiIsInRzS2V5IiwicmF3U3ViUm93cyIsInN1YlJvd3MiLCJKU09OIiwicGFyc2UiLCJyZWxhdGlvblRhYmxlVHNLZXkiLCJzZWxlY3Rpb24iLCJzdWJSb3ciLCJmaWVsZCIsImRlY29kZXIiLCJtYXBGcm9tRHJpdmVyVmFsdWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/relations.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/selection-proxy.js":
-/*!*********************************************************!*\
- !*** ../../node_modules/drizzle-orm/selection-proxy.js ***!
- \*********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SelectionProxyHandler: () => (/* binding */ SelectionProxyHandler)\n/* harmony export */ });\n/* harmony import */ var _alias_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./alias.js */ \"(rsc)/../../node_modules/drizzle-orm/alias.js\");\n/* harmony import */ var _column_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./column.js */ \"(rsc)/../../node_modules/drizzle-orm/column.js\");\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var _subquery_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subquery.js */ \"(rsc)/../../node_modules/drizzle-orm/subquery.js\");\n/* harmony import */ var _view_common_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./view-common.js */ \"(rsc)/../../node_modules/drizzle-orm/view-common.js\");\n\n\n\n\n\n\nclass SelectionProxyHandler {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SelectionProxyHandler\";\n }\n constructor(config){\n this.config = {\n ...config\n };\n }\n get(subquery, prop) {\n if (prop === _subquery_js__WEBPACK_IMPORTED_MODULE_1__.SubqueryConfig) {\n return {\n ...subquery[_subquery_js__WEBPACK_IMPORTED_MODULE_1__.SubqueryConfig],\n selection: new Proxy(subquery[_subquery_js__WEBPACK_IMPORTED_MODULE_1__.SubqueryConfig].selection, this)\n };\n }\n if (prop === _view_common_js__WEBPACK_IMPORTED_MODULE_2__.ViewBaseConfig) {\n return {\n ...subquery[_view_common_js__WEBPACK_IMPORTED_MODULE_2__.ViewBaseConfig],\n selectedFields: new Proxy(subquery[_view_common_js__WEBPACK_IMPORTED_MODULE_2__.ViewBaseConfig].selectedFields, this)\n };\n }\n if (typeof prop === \"symbol\") {\n return subquery[prop];\n }\n const columns = (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(subquery, _subquery_js__WEBPACK_IMPORTED_MODULE_1__.Subquery) ? subquery[_subquery_js__WEBPACK_IMPORTED_MODULE_1__.SubqueryConfig].selection : (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(subquery, _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.View) ? subquery[_view_common_js__WEBPACK_IMPORTED_MODULE_2__.ViewBaseConfig].selectedFields : subquery;\n const value = columns[prop];\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(value, _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.SQL.Aliased)) {\n if (this.config.sqlAliasedBehavior === \"sql\" && !value.isSelectionField) {\n return value.sql;\n }\n const newValue = value.clone();\n newValue.isSelectionField = true;\n return newValue;\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(value, _sql_sql_js__WEBPACK_IMPORTED_MODULE_3__.SQL)) {\n if (this.config.sqlBehavior === \"sql\") {\n return value;\n }\n throw new Error(`You tried to reference \"${prop}\" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using \".as('alias')\" method.`);\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(value, _column_js__WEBPACK_IMPORTED_MODULE_4__.Column)) {\n if (this.config.alias) {\n return new Proxy(value, new _alias_js__WEBPACK_IMPORTED_MODULE_5__.ColumnAliasProxyHandler(new Proxy(value.table, new _alias_js__WEBPACK_IMPORTED_MODULE_5__.TableAliasProxyHandler(this.config.alias, this.config.replaceOriginalName ?? false))));\n }\n return value;\n }\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n return new Proxy(value, new SelectionProxyHandler(this.config));\n }\n}\n //# sourceMappingURL=selection-proxy.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NlbGVjdGlvbi1wcm94eS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTZFO0FBQ3hDO0FBQ1E7QUFDSjtBQUNnQjtBQUNQO0FBQ2xELE1BQU1VOztZQUNHLENBQUNQLGtEQUFVQSxDQUFDLEdBQUc7O0lBRXRCUSxZQUFZQyxNQUFNLENBQUU7UUFDbEIsSUFBSSxDQUFDQSxNQUFNLEdBQUc7WUFBRSxHQUFHQSxNQUFNO1FBQUM7SUFDNUI7SUFDQUMsSUFBSUMsUUFBUSxFQUFFQyxJQUFJLEVBQUU7UUFDbEIsSUFBSUEsU0FBU1Asd0RBQWNBLEVBQUU7WUFDM0IsT0FBTztnQkFDTCxHQUFHTSxRQUFRLENBQUNOLHdEQUFjQSxDQUFDO2dCQUMzQlEsV0FBVyxJQUFJQyxNQUNiSCxRQUFRLENBQUNOLHdEQUFjQSxDQUFDLENBQUNRLFNBQVMsRUFDbEMsSUFBSTtZQUVSO1FBQ0Y7UUFDQSxJQUFJRCxTQUFTTiwyREFBY0EsRUFBRTtZQUMzQixPQUFPO2dCQUNMLEdBQUdLLFFBQVEsQ0FBQ0wsMkRBQWNBLENBQUM7Z0JBQzNCUyxnQkFBZ0IsSUFBSUQsTUFDbEJILFFBQVEsQ0FBQ0wsMkRBQWNBLENBQUMsQ0FBQ1MsY0FBYyxFQUN2QyxJQUFJO1lBRVI7UUFDRjtRQUNBLElBQUksT0FBT0gsU0FBUyxVQUFVO1lBQzVCLE9BQU9ELFFBQVEsQ0FBQ0MsS0FBSztRQUN2QjtRQUNBLE1BQU1JLFVBQVVmLDhDQUFFQSxDQUFDVSxVQUFVUCxrREFBUUEsSUFBSU8sUUFBUSxDQUFDTix3REFBY0EsQ0FBQyxDQUFDUSxTQUFTLEdBQUdaLDhDQUFFQSxDQUFDVSxVQUFVUiw2Q0FBSUEsSUFBSVEsUUFBUSxDQUFDTCwyREFBY0EsQ0FBQyxDQUFDUyxjQUFjLEdBQUdKO1FBQzdJLE1BQU1NLFFBQVFELE9BQU8sQ0FBQ0osS0FBSztRQUMzQixJQUFJWCw4Q0FBRUEsQ0FBQ2dCLE9BQU9mLDRDQUFHQSxDQUFDZ0IsT0FBTyxHQUFHO1lBQzFCLElBQUksSUFBSSxDQUFDVCxNQUFNLENBQUNVLGtCQUFrQixLQUFLLFNBQVMsQ0FBQ0YsTUFBTUcsZ0JBQWdCLEVBQUU7Z0JBQ3ZFLE9BQU9ILE1BQU1JLEdBQUc7WUFDbEI7WUFDQSxNQUFNQyxXQUFXTCxNQUFNTSxLQUFLO1lBQzVCRCxTQUFTRixnQkFBZ0IsR0FBRztZQUM1QixPQUFPRTtRQUNUO1FBQ0EsSUFBSXJCLDhDQUFFQSxDQUFDZ0IsT0FBT2YsNENBQUdBLEdBQUc7WUFDbEIsSUFBSSxJQUFJLENBQUNPLE1BQU0sQ0FBQ2UsV0FBVyxLQUFLLE9BQU87Z0JBQ3JDLE9BQU9QO1lBQ1Q7WUFDQSxNQUFNLElBQUlRLE1BQ1IsQ0FBQyx3QkFBd0IsRUFBRWIsS0FBSyx1SkFBdUosQ0FBQztRQUU1TDtRQUNBLElBQUlYLDhDQUFFQSxDQUFDZ0IsT0FBT2xCLDhDQUFNQSxHQUFHO1lBQ3JCLElBQUksSUFBSSxDQUFDVSxNQUFNLENBQUNpQixLQUFLLEVBQUU7Z0JBQ3JCLE9BQU8sSUFBSVosTUFDVEcsT0FDQSxJQUFJcEIsOERBQXVCQSxDQUN6QixJQUFJaUIsTUFDRkcsTUFBTVUsS0FBSyxFQUNYLElBQUk3Qiw2REFBc0JBLENBQUMsSUFBSSxDQUFDVyxNQUFNLENBQUNpQixLQUFLLEVBQUUsSUFBSSxDQUFDakIsTUFBTSxDQUFDbUIsbUJBQW1CLElBQUk7WUFJekY7WUFDQSxPQUFPWDtRQUNUO1FBQ0EsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsTUFBTTtZQUMvQyxPQUFPQTtRQUNUO1FBQ0EsT0FBTyxJQUFJSCxNQUFNRyxPQUFPLElBQUlWLHNCQUFzQixJQUFJLENBQUNFLE1BQU07SUFDL0Q7QUFDRjtBQUdFLENBQ0YsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc2VsZWN0aW9uLXByb3h5LmpzP2NkNGQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uQWxpYXNQcm94eUhhbmRsZXIsIFRhYmxlQWxpYXNQcm94eUhhbmRsZXIgfSBmcm9tIFwiLi9hbGlhcy5qc1wiO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vY29sdW1uLmpzXCI7XG5pbXBvcnQgeyBlbnRpdHlLaW5kLCBpcyB9IGZyb20gXCIuL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgU1FMLCBWaWV3IH0gZnJvbSBcIi4vc3FsL3NxbC5qc1wiO1xuaW1wb3J0IHsgU3VicXVlcnksIFN1YnF1ZXJ5Q29uZmlnIH0gZnJvbSBcIi4vc3VicXVlcnkuanNcIjtcbmltcG9ydCB7IFZpZXdCYXNlQ29uZmlnIH0gZnJvbSBcIi4vdmlldy1jb21tb24uanNcIjtcbmNsYXNzIFNlbGVjdGlvblByb3h5SGFuZGxlciB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNlbGVjdGlvblByb3h5SGFuZGxlclwiO1xuICBjb25maWc7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0geyAuLi5jb25maWcgfTtcbiAgfVxuICBnZXQoc3VicXVlcnksIHByb3ApIHtcbiAgICBpZiAocHJvcCA9PT0gU3VicXVlcnlDb25maWcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN1YnF1ZXJ5W1N1YnF1ZXJ5Q29uZmlnXSxcbiAgICAgICAgc2VsZWN0aW9uOiBuZXcgUHJveHkoXG4gICAgICAgICAgc3VicXVlcnlbU3VicXVlcnlDb25maWddLnNlbGVjdGlvbixcbiAgICAgICAgICB0aGlzXG4gICAgICAgIClcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChwcm9wID09PSBWaWV3QmFzZUNvbmZpZykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3VicXVlcnlbVmlld0Jhc2VDb25maWddLFxuICAgICAgICBzZWxlY3RlZEZpZWxkczogbmV3IFByb3h5KFxuICAgICAgICAgIHN1YnF1ZXJ5W1ZpZXdCYXNlQ29uZmlnXS5zZWxlY3RlZEZpZWxkcyxcbiAgICAgICAgICB0aGlzXG4gICAgICAgIClcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gXCJzeW1ib2xcIikge1xuICAgICAgcmV0dXJuIHN1YnF1ZXJ5W3Byb3BdO1xuICAgIH1cbiAgICBjb25zdCBjb2x1bW5zID0gaXMoc3VicXVlcnksIFN1YnF1ZXJ5KSA/IHN1YnF1ZXJ5W1N1YnF1ZXJ5Q29uZmlnXS5zZWxlY3Rpb24gOiBpcyhzdWJxdWVyeSwgVmlldykgPyBzdWJxdWVyeVtWaWV3QmFzZUNvbmZpZ10uc2VsZWN0ZWRGaWVsZHMgOiBzdWJxdWVyeTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbHVtbnNbcHJvcF07XG4gICAgaWYgKGlzKHZhbHVlLCBTUUwuQWxpYXNlZCkpIHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5zcWxBbGlhc2VkQmVoYXZpb3IgPT09IFwic3FsXCIgJiYgIXZhbHVlLmlzU2VsZWN0aW9uRmllbGQpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnNxbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUuY2xvbmUoKTtcbiAgICAgIG5ld1ZhbHVlLmlzU2VsZWN0aW9uRmllbGQgPSB0cnVlO1xuICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xuICAgIH1cbiAgICBpZiAoaXModmFsdWUsIFNRTCkpIHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5zcWxCZWhhdmlvciA9PT0gXCJzcWxcIikge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBZb3UgdHJpZWQgdG8gcmVmZXJlbmNlIFwiJHtwcm9wfVwiIGZpZWxkIGZyb20gYSBzdWJxdWVyeSwgd2hpY2ggaXMgYSByYXcgU1FMIGZpZWxkLCBidXQgaXQgZG9lc24ndCBoYXZlIGFuIGFsaWFzIGRlY2xhcmVkLiBQbGVhc2UgYWRkIGFuIGFsaWFzIHRvIHRoZSBmaWVsZCB1c2luZyBcIi5hcygnYWxpYXMnKVwiIG1ldGhvZC5gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoaXModmFsdWUsIENvbHVtbikpIHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5hbGlhcykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5KFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIG5ldyBDb2x1bW5BbGlhc1Byb3h5SGFuZGxlcihcbiAgICAgICAgICAgIG5ldyBQcm94eShcbiAgICAgICAgICAgICAgdmFsdWUudGFibGUsXG4gICAgICAgICAgICAgIG5ldyBUYWJsZUFsaWFzUHJveHlIYW5kbGVyKHRoaXMuY29uZmlnLmFsaWFzLCB0aGlzLmNvbmZpZy5yZXBsYWNlT3JpZ2luYWxOYW1lID8/IGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb3h5KHZhbHVlLCBuZXcgU2VsZWN0aW9uUHJveHlIYW5kbGVyKHRoaXMuY29uZmlnKSk7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIFNlbGVjdGlvblByb3h5SGFuZGxlclxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlbGVjdGlvbi1wcm94eS5qcy5tYXAiXSwibmFtZXMiOlsiQ29sdW1uQWxpYXNQcm94eUhhbmRsZXIiLCJUYWJsZUFsaWFzUHJveHlIYW5kbGVyIiwiQ29sdW1uIiwiZW50aXR5S2luZCIsImlzIiwiU1FMIiwiVmlldyIsIlN1YnF1ZXJ5IiwiU3VicXVlcnlDb25maWciLCJWaWV3QmFzZUNvbmZpZyIsIlNlbGVjdGlvblByb3h5SGFuZGxlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwiZ2V0Iiwic3VicXVlcnkiLCJwcm9wIiwic2VsZWN0aW9uIiwiUHJveHkiLCJzZWxlY3RlZEZpZWxkcyIsImNvbHVtbnMiLCJ2YWx1ZSIsIkFsaWFzZWQiLCJzcWxBbGlhc2VkQmVoYXZpb3IiLCJpc1NlbGVjdGlvbkZpZWxkIiwic3FsIiwibmV3VmFsdWUiLCJjbG9uZSIsInNxbEJlaGF2aW9yIiwiRXJyb3IiLCJhbGlhcyIsInRhYmxlIiwicmVwbGFjZU9yaWdpbmFsTmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/selection-proxy.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sql/expressions/conditions.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sql/expressions/conditions.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ and: () => (/* binding */ and),\n/* harmony export */ arrayContained: () => (/* binding */ arrayContained),\n/* harmony export */ arrayContains: () => (/* binding */ arrayContains),\n/* harmony export */ arrayOverlaps: () => (/* binding */ arrayOverlaps),\n/* harmony export */ between: () => (/* binding */ between),\n/* harmony export */ bindIfParam: () => (/* binding */ bindIfParam),\n/* harmony export */ eq: () => (/* binding */ eq),\n/* harmony export */ exists: () => (/* binding */ exists),\n/* harmony export */ gt: () => (/* binding */ gt),\n/* harmony export */ gte: () => (/* binding */ gte),\n/* harmony export */ ilike: () => (/* binding */ ilike),\n/* harmony export */ inArray: () => (/* binding */ inArray),\n/* harmony export */ isNotNull: () => (/* binding */ isNotNull),\n/* harmony export */ isNull: () => (/* binding */ isNull),\n/* harmony export */ like: () => (/* binding */ like),\n/* harmony export */ lt: () => (/* binding */ lt),\n/* harmony export */ lte: () => (/* binding */ lte),\n/* harmony export */ ne: () => (/* binding */ ne),\n/* harmony export */ not: () => (/* binding */ not),\n/* harmony export */ notBetween: () => (/* binding */ notBetween),\n/* harmony export */ notExists: () => (/* binding */ notExists),\n/* harmony export */ notIlike: () => (/* binding */ notIlike),\n/* harmony export */ notInArray: () => (/* binding */ notInArray),\n/* harmony export */ notLike: () => (/* binding */ notLike),\n/* harmony export */ or: () => (/* binding */ or)\n/* harmony export */ });\n/* harmony import */ var _column_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../column.js */ \"(rsc)/../../node_modules/drizzle-orm/column.js\");\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n/* harmony import */ var _sql_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n\n\n\n\nfunction bindIfParam(value, column) {\n if ((0,_sql_js__WEBPACK_IMPORTED_MODULE_0__.isDriverValueEncoder)(column) && !(0,_sql_js__WEBPACK_IMPORTED_MODULE_0__.isSQLWrapper)(value) && !(0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(value, _sql_js__WEBPACK_IMPORTED_MODULE_0__.Param) && !(0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(value, _sql_js__WEBPACK_IMPORTED_MODULE_0__.Placeholder) && !(0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(value, _column_js__WEBPACK_IMPORTED_MODULE_2__.Column) && !(0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(value, _table_js__WEBPACK_IMPORTED_MODULE_3__.Table) && !(0,_entity_js__WEBPACK_IMPORTED_MODULE_1__.is)(value, _sql_js__WEBPACK_IMPORTED_MODULE_0__.View)) {\n return new _sql_js__WEBPACK_IMPORTED_MODULE_0__.Param(value, column);\n }\n return value;\n}\nconst eq = (left, right)=>{\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${left} = ${bindIfParam(right, left)}`;\n};\nconst ne = (left, right)=>{\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${left} <> ${bindIfParam(right, left)}`;\n};\nfunction and(...unfilteredConditions) {\n const conditions = unfilteredConditions.filter((c)=>c !== void 0);\n if (conditions.length === 0) {\n return void 0;\n }\n if (conditions.length === 1) {\n return new _sql_js__WEBPACK_IMPORTED_MODULE_0__.SQL(conditions);\n }\n return new _sql_js__WEBPACK_IMPORTED_MODULE_0__.SQL([\n new _sql_js__WEBPACK_IMPORTED_MODULE_0__.StringChunk(\"(\"),\n _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql.join(conditions, new _sql_js__WEBPACK_IMPORTED_MODULE_0__.StringChunk(\" and \")),\n new _sql_js__WEBPACK_IMPORTED_MODULE_0__.StringChunk(\")\")\n ]);\n}\nfunction or(...unfilteredConditions) {\n const conditions = unfilteredConditions.filter((c)=>c !== void 0);\n if (conditions.length === 0) {\n return void 0;\n }\n if (conditions.length === 1) {\n return new _sql_js__WEBPACK_IMPORTED_MODULE_0__.SQL(conditions);\n }\n return new _sql_js__WEBPACK_IMPORTED_MODULE_0__.SQL([\n new _sql_js__WEBPACK_IMPORTED_MODULE_0__.StringChunk(\"(\"),\n _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql.join(conditions, new _sql_js__WEBPACK_IMPORTED_MODULE_0__.StringChunk(\" or \")),\n new _sql_js__WEBPACK_IMPORTED_MODULE_0__.StringChunk(\")\")\n ]);\n}\nfunction not(condition) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`not ${condition}`;\n}\nconst gt = (left, right)=>{\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${left} > ${bindIfParam(right, left)}`;\n};\nconst gte = (left, right)=>{\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${left} >= ${bindIfParam(right, left)}`;\n};\nconst lt = (left, right)=>{\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${left} < ${bindIfParam(right, left)}`;\n};\nconst lte = (left, right)=>{\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${left} <= ${bindIfParam(right, left)}`;\n};\nfunction inArray(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n throw new Error(\"inArray requires at least one value\");\n }\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} in ${values.map((v)=>bindIfParam(v, column))}`;\n }\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} in ${bindIfParam(values, column)}`;\n}\nfunction notInArray(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n throw new Error(\"notInArray requires at least one value\");\n }\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} not in ${values.map((v)=>bindIfParam(v, column))}`;\n }\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} not in ${bindIfParam(values, column)}`;\n}\nfunction isNull(value) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${value} is null`;\n}\nfunction isNotNull(value) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${value} is not null`;\n}\nfunction exists(subquery) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`exists ${subquery}`;\n}\nfunction notExists(subquery) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`not exists ${subquery}`;\n}\nfunction between(column, min, max) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\nfunction notBetween(column, min, max) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} not between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\nfunction like(column, value) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} like ${value}`;\n}\nfunction notLike(column, value) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} not like ${value}`;\n}\nfunction ilike(column, value) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} ilike ${value}`;\n}\nfunction notIlike(column, value) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} not ilike ${value}`;\n}\nfunction arrayContains(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n throw new Error(\"arrayContains requires at least one value\");\n }\n const array = _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${bindIfParam(values, column)}`;\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} @> ${array}`;\n }\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} @> ${bindIfParam(values, column)}`;\n}\nfunction arrayContained(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n throw new Error(\"arrayContained requires at least one value\");\n }\n const array = _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${bindIfParam(values, column)}`;\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} <@ ${array}`;\n }\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} <@ ${bindIfParam(values, column)}`;\n}\nfunction arrayOverlaps(column, values) {\n if (Array.isArray(values)) {\n if (values.length === 0) {\n throw new Error(\"arrayOverlaps requires at least one value\");\n }\n const array = _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${bindIfParam(values, column)}`;\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} && ${array}`;\n }\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} && ${bindIfParam(values, column)}`;\n}\n //# sourceMappingURL=conditions.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbC9leHByZXNzaW9ucy9jb25kaXRpb25zLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXlDO0FBQ0o7QUFDRTtBQVVwQjtBQUNuQixTQUFTVyxZQUFZQyxLQUFLLEVBQUVDLE1BQU07SUFDaEMsSUFBSVYsNkRBQW9CQSxDQUFDVSxXQUFXLENBQUNULHFEQUFZQSxDQUFDUSxVQUFVLENBQUNYLDhDQUFFQSxDQUFDVyxPQUFPUCwwQ0FBS0EsS0FBSyxDQUFDSiw4Q0FBRUEsQ0FBQ1csT0FBT04sZ0RBQVdBLEtBQUssQ0FBQ0wsOENBQUVBLENBQUNXLE9BQU9aLDhDQUFNQSxLQUFLLENBQUNDLDhDQUFFQSxDQUFDVyxPQUFPViw0Q0FBS0EsS0FBSyxDQUFDRCw4Q0FBRUEsQ0FBQ1csT0FBT0YseUNBQUlBLEdBQUc7UUFDdkssT0FBTyxJQUFJTCwwQ0FBS0EsQ0FBQ08sT0FBT0M7SUFDMUI7SUFDQSxPQUFPRDtBQUNUO0FBQ0EsTUFBTUUsS0FBSyxDQUFDQyxNQUFNQztJQUNoQixPQUFPUix3Q0FBRyxDQUFDLEVBQUVPLEtBQUssR0FBRyxFQUFFSixZQUFZSyxPQUFPRCxNQUFNLENBQUM7QUFDbkQ7QUFDQSxNQUFNRSxLQUFLLENBQUNGLE1BQU1DO0lBQ2hCLE9BQU9SLHdDQUFHLENBQUMsRUFBRU8sS0FBSyxJQUFJLEVBQUVKLFlBQVlLLE9BQU9ELE1BQU0sQ0FBQztBQUNwRDtBQUNBLFNBQVNHLElBQUksR0FBR0Msb0JBQW9CO0lBQ2xDLE1BQU1DLGFBQWFELHFCQUFxQkUsTUFBTSxDQUM1QyxDQUFDQyxJQUFNQSxNQUFNLEtBQUs7SUFFcEIsSUFBSUYsV0FBV0csTUFBTSxLQUFLLEdBQUc7UUFDM0IsT0FBTyxLQUFLO0lBQ2Q7SUFDQSxJQUFJSCxXQUFXRyxNQUFNLEtBQUssR0FBRztRQUMzQixPQUFPLElBQUloQix3Q0FBR0EsQ0FBQ2E7SUFDakI7SUFDQSxPQUFPLElBQUliLHdDQUFHQSxDQUFDO1FBQ2IsSUFBSUUsZ0RBQVdBLENBQUM7UUFDaEJELHdDQUFHQSxDQUFDZ0IsSUFBSSxDQUFDSixZQUFZLElBQUlYLGdEQUFXQSxDQUFDO1FBQ3JDLElBQUlBLGdEQUFXQSxDQUFDO0tBQ2pCO0FBQ0g7QUFDQSxTQUFTZ0IsR0FBRyxHQUFHTixvQkFBb0I7SUFDakMsTUFBTUMsYUFBYUQscUJBQXFCRSxNQUFNLENBQzVDLENBQUNDLElBQU1BLE1BQU0sS0FBSztJQUVwQixJQUFJRixXQUFXRyxNQUFNLEtBQUssR0FBRztRQUMzQixPQUFPLEtBQUs7SUFDZDtJQUNBLElBQUlILFdBQVdHLE1BQU0sS0FBSyxHQUFHO1FBQzNCLE9BQU8sSUFBSWhCLHdDQUFHQSxDQUFDYTtJQUNqQjtJQUNBLE9BQU8sSUFBSWIsd0NBQUdBLENBQUM7UUFDYixJQUFJRSxnREFBV0EsQ0FBQztRQUNoQkQsd0NBQUdBLENBQUNnQixJQUFJLENBQUNKLFlBQVksSUFBSVgsZ0RBQVdBLENBQUM7UUFDckMsSUFBSUEsZ0RBQVdBLENBQUM7S0FDakI7QUFDSDtBQUNBLFNBQVNpQixJQUFJQyxTQUFTO0lBQ3BCLE9BQU9uQix3Q0FBRyxDQUFDLElBQUksRUFBRW1CLFVBQVUsQ0FBQztBQUM5QjtBQUNBLE1BQU1DLEtBQUssQ0FBQ2IsTUFBTUM7SUFDaEIsT0FBT1Isd0NBQUcsQ0FBQyxFQUFFTyxLQUFLLEdBQUcsRUFBRUosWUFBWUssT0FBT0QsTUFBTSxDQUFDO0FBQ25EO0FBQ0EsTUFBTWMsTUFBTSxDQUFDZCxNQUFNQztJQUNqQixPQUFPUix3Q0FBRyxDQUFDLEVBQUVPLEtBQUssSUFBSSxFQUFFSixZQUFZSyxPQUFPRCxNQUFNLENBQUM7QUFDcEQ7QUFDQSxNQUFNZSxLQUFLLENBQUNmLE1BQU1DO0lBQ2hCLE9BQU9SLHdDQUFHLENBQUMsRUFBRU8sS0FBSyxHQUFHLEVBQUVKLFlBQVlLLE9BQU9ELE1BQU0sQ0FBQztBQUNuRDtBQUNBLE1BQU1nQixNQUFNLENBQUNoQixNQUFNQztJQUNqQixPQUFPUix3Q0FBRyxDQUFDLEVBQUVPLEtBQUssSUFBSSxFQUFFSixZQUFZSyxPQUFPRCxNQUFNLENBQUM7QUFDcEQ7QUFDQSxTQUFTaUIsUUFBUW5CLE1BQU0sRUFBRW9CLE1BQU07SUFDN0IsSUFBSUMsTUFBTUMsT0FBTyxDQUFDRixTQUFTO1FBQ3pCLElBQUlBLE9BQU9WLE1BQU0sS0FBSyxHQUFHO1lBQ3ZCLE1BQU0sSUFBSWEsTUFBTTtRQUNsQjtRQUNBLE9BQU81Qix3Q0FBRyxDQUFDLEVBQUVLLE9BQU8sSUFBSSxFQUFFb0IsT0FBT0ksR0FBRyxDQUFDLENBQUNDLElBQU0zQixZQUFZMkIsR0FBR3pCLFNBQVMsQ0FBQztJQUN2RTtJQUNBLE9BQU9MLHdDQUFHLENBQUMsRUFBRUssT0FBTyxJQUFJLEVBQUVGLFlBQVlzQixRQUFRcEIsUUFBUSxDQUFDO0FBQ3pEO0FBQ0EsU0FBUzBCLFdBQVcxQixNQUFNLEVBQUVvQixNQUFNO0lBQ2hDLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0YsU0FBUztRQUN6QixJQUFJQSxPQUFPVixNQUFNLEtBQUssR0FBRztZQUN2QixNQUFNLElBQUlhLE1BQU07UUFDbEI7UUFDQSxPQUFPNUIsd0NBQUcsQ0FBQyxFQUFFSyxPQUFPLFFBQVEsRUFBRW9CLE9BQU9JLEdBQUcsQ0FBQyxDQUFDQyxJQUFNM0IsWUFBWTJCLEdBQUd6QixTQUFTLENBQUM7SUFDM0U7SUFDQSxPQUFPTCx3Q0FBRyxDQUFDLEVBQUVLLE9BQU8sUUFBUSxFQUFFRixZQUFZc0IsUUFBUXBCLFFBQVEsQ0FBQztBQUM3RDtBQUNBLFNBQVMyQixPQUFPNUIsS0FBSztJQUNuQixPQUFPSix3Q0FBRyxDQUFDLEVBQUVJLE1BQU0sUUFBUSxDQUFDO0FBQzlCO0FBQ0EsU0FBUzZCLFVBQVU3QixLQUFLO0lBQ3RCLE9BQU9KLHdDQUFHLENBQUMsRUFBRUksTUFBTSxZQUFZLENBQUM7QUFDbEM7QUFDQSxTQUFTOEIsT0FBT0MsUUFBUTtJQUN0QixPQUFPbkMsd0NBQUcsQ0FBQyxPQUFPLEVBQUVtQyxTQUFTLENBQUM7QUFDaEM7QUFDQSxTQUFTQyxVQUFVRCxRQUFRO0lBQ3pCLE9BQU9uQyx3Q0FBRyxDQUFDLFdBQVcsRUFBRW1DLFNBQVMsQ0FBQztBQUNwQztBQUNBLFNBQVNFLFFBQVFoQyxNQUFNLEVBQUVpQyxHQUFHLEVBQUVDLEdBQUc7SUFDL0IsT0FBT3ZDLHdDQUFHLENBQUMsRUFBRUssT0FBTyxTQUFTLEVBQUVGLFlBQVltQyxLQUFLakMsUUFBUSxLQUFLLEVBQUVGLFlBQzdEb0MsS0FDQWxDLFFBQ0EsQ0FBQztBQUNMO0FBQ0EsU0FBU21DLFdBQVduQyxNQUFNLEVBQUVpQyxHQUFHLEVBQUVDLEdBQUc7SUFDbEMsT0FBT3ZDLHdDQUFHLENBQUMsRUFBRUssT0FBTyxhQUFhLEVBQUVGLFlBQ2pDbUMsS0FDQWpDLFFBQ0EsS0FBSyxFQUFFRixZQUFZb0MsS0FBS2xDLFFBQVEsQ0FBQztBQUNyQztBQUNBLFNBQVNvQyxLQUFLcEMsTUFBTSxFQUFFRCxLQUFLO0lBQ3pCLE9BQU9KLHdDQUFHLENBQUMsRUFBRUssT0FBTyxNQUFNLEVBQUVELE1BQU0sQ0FBQztBQUNyQztBQUNBLFNBQVNzQyxRQUFRckMsTUFBTSxFQUFFRCxLQUFLO0lBQzVCLE9BQU9KLHdDQUFHLENBQUMsRUFBRUssT0FBTyxVQUFVLEVBQUVELE1BQU0sQ0FBQztBQUN6QztBQUNBLFNBQVN1QyxNQUFNdEMsTUFBTSxFQUFFRCxLQUFLO0lBQzFCLE9BQU9KLHdDQUFHLENBQUMsRUFBRUssT0FBTyxPQUFPLEVBQUVELE1BQU0sQ0FBQztBQUN0QztBQUNBLFNBQVN3QyxTQUFTdkMsTUFBTSxFQUFFRCxLQUFLO0lBQzdCLE9BQU9KLHdDQUFHLENBQUMsRUFBRUssT0FBTyxXQUFXLEVBQUVELE1BQU0sQ0FBQztBQUMxQztBQUNBLFNBQVN5QyxjQUFjeEMsTUFBTSxFQUFFb0IsTUFBTTtJQUNuQyxJQUFJQyxNQUFNQyxPQUFPLENBQUNGLFNBQVM7UUFDekIsSUFBSUEsT0FBT1YsTUFBTSxLQUFLLEdBQUc7WUFDdkIsTUFBTSxJQUFJYSxNQUFNO1FBQ2xCO1FBQ0EsTUFBTWtCLFFBQVE5Qyx3Q0FBRyxDQUFDLEVBQUVHLFlBQVlzQixRQUFRcEIsUUFBUSxDQUFDO1FBQ2pELE9BQU9MLHdDQUFHLENBQUMsRUFBRUssT0FBTyxJQUFJLEVBQUV5QyxNQUFNLENBQUM7SUFDbkM7SUFDQSxPQUFPOUMsd0NBQUcsQ0FBQyxFQUFFSyxPQUFPLElBQUksRUFBRUYsWUFBWXNCLFFBQVFwQixRQUFRLENBQUM7QUFDekQ7QUFDQSxTQUFTMEMsZUFBZTFDLE1BQU0sRUFBRW9CLE1BQU07SUFDcEMsSUFBSUMsTUFBTUMsT0FBTyxDQUFDRixTQUFTO1FBQ3pCLElBQUlBLE9BQU9WLE1BQU0sS0FBSyxHQUFHO1lBQ3ZCLE1BQU0sSUFBSWEsTUFBTTtRQUNsQjtRQUNBLE1BQU1rQixRQUFROUMsd0NBQUcsQ0FBQyxFQUFFRyxZQUFZc0IsUUFBUXBCLFFBQVEsQ0FBQztRQUNqRCxPQUFPTCx3Q0FBRyxDQUFDLEVBQUVLLE9BQU8sSUFBSSxFQUFFeUMsTUFBTSxDQUFDO0lBQ25DO0lBQ0EsT0FBTzlDLHdDQUFHLENBQUMsRUFBRUssT0FBTyxJQUFJLEVBQUVGLFlBQVlzQixRQUFRcEIsUUFBUSxDQUFDO0FBQ3pEO0FBQ0EsU0FBUzJDLGNBQWMzQyxNQUFNLEVBQUVvQixNQUFNO0lBQ25DLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0YsU0FBUztRQUN6QixJQUFJQSxPQUFPVixNQUFNLEtBQUssR0FBRztZQUN2QixNQUFNLElBQUlhLE1BQU07UUFDbEI7UUFDQSxNQUFNa0IsUUFBUTlDLHdDQUFHLENBQUMsRUFBRUcsWUFBWXNCLFFBQVFwQixRQUFRLENBQUM7UUFDakQsT0FBT0wsd0NBQUcsQ0FBQyxFQUFFSyxPQUFPLElBQUksRUFBRXlDLE1BQU0sQ0FBQztJQUNuQztJQUNBLE9BQU85Qyx3Q0FBRyxDQUFDLEVBQUVLLE9BQU8sSUFBSSxFQUFFRixZQUFZc0IsUUFBUXBCLFFBQVEsQ0FBQztBQUN6RDtBQTJCRSxDQUNGLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbC9leHByZXNzaW9ucy9jb25kaXRpb25zLmpzPzJkY2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4uLy4uL2NvbHVtbi5qc1wiO1xuaW1wb3J0IHsgaXMgfSBmcm9tIFwiLi4vLi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCIuLi8uLi90YWJsZS5qc1wiO1xuaW1wb3J0IHtcbiAgaXNEcml2ZXJWYWx1ZUVuY29kZXIsXG4gIGlzU1FMV3JhcHBlcixcbiAgUGFyYW0sXG4gIFBsYWNlaG9sZGVyLFxuICBTUUwsXG4gIHNxbCxcbiAgU3RyaW5nQ2h1bmssXG4gIFZpZXdcbn0gZnJvbSBcIi4uL3NxbC5qc1wiO1xuZnVuY3Rpb24gYmluZElmUGFyYW0odmFsdWUsIGNvbHVtbikge1xuICBpZiAoaXNEcml2ZXJWYWx1ZUVuY29kZXIoY29sdW1uKSAmJiAhaXNTUUxXcmFwcGVyKHZhbHVlKSAmJiAhaXModmFsdWUsIFBhcmFtKSAmJiAhaXModmFsdWUsIFBsYWNlaG9sZGVyKSAmJiAhaXModmFsdWUsIENvbHVtbikgJiYgIWlzKHZhbHVlLCBUYWJsZSkgJiYgIWlzKHZhbHVlLCBWaWV3KSkge1xuICAgIHJldHVybiBuZXcgUGFyYW0odmFsdWUsIGNvbHVtbik7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuY29uc3QgZXEgPSAobGVmdCwgcmlnaHQpID0+IHtcbiAgcmV0dXJuIHNxbGAke2xlZnR9ID0gJHtiaW5kSWZQYXJhbShyaWdodCwgbGVmdCl9YDtcbn07XG5jb25zdCBuZSA9IChsZWZ0LCByaWdodCkgPT4ge1xuICByZXR1cm4gc3FsYCR7bGVmdH0gPD4gJHtiaW5kSWZQYXJhbShyaWdodCwgbGVmdCl9YDtcbn07XG5mdW5jdGlvbiBhbmQoLi4udW5maWx0ZXJlZENvbmRpdGlvbnMpIHtcbiAgY29uc3QgY29uZGl0aW9ucyA9IHVuZmlsdGVyZWRDb25kaXRpb25zLmZpbHRlcihcbiAgICAoYykgPT4gYyAhPT0gdm9pZCAwXG4gICk7XG4gIGlmIChjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgaWYgKGNvbmRpdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIG5ldyBTUUwoY29uZGl0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIG5ldyBTUUwoW1xuICAgIG5ldyBTdHJpbmdDaHVuayhcIihcIiksXG4gICAgc3FsLmpvaW4oY29uZGl0aW9ucywgbmV3IFN0cmluZ0NodW5rKFwiIGFuZCBcIikpLFxuICAgIG5ldyBTdHJpbmdDaHVuayhcIilcIilcbiAgXSk7XG59XG5mdW5jdGlvbiBvciguLi51bmZpbHRlcmVkQ29uZGl0aW9ucykge1xuICBjb25zdCBjb25kaXRpb25zID0gdW5maWx0ZXJlZENvbmRpdGlvbnMuZmlsdGVyKFxuICAgIChjKSA9PiBjICE9PSB2b2lkIDBcbiAgKTtcbiAgaWYgKGNvbmRpdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICBpZiAoY29uZGl0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gbmV3IFNRTChjb25kaXRpb25zKTtcbiAgfVxuICByZXR1cm4gbmV3IFNRTChbXG4gICAgbmV3IFN0cmluZ0NodW5rKFwiKFwiKSxcbiAgICBzcWwuam9pbihjb25kaXRpb25zLCBuZXcgU3RyaW5nQ2h1bmsoXCIgb3IgXCIpKSxcbiAgICBuZXcgU3RyaW5nQ2h1bmsoXCIpXCIpXG4gIF0pO1xufVxuZnVuY3Rpb24gbm90KGNvbmRpdGlvbikge1xuICByZXR1cm4gc3FsYG5vdCAke2NvbmRpdGlvbn1gO1xufVxuY29uc3QgZ3QgPSAobGVmdCwgcmlnaHQpID0+IHtcbiAgcmV0dXJuIHNxbGAke2xlZnR9ID4gJHtiaW5kSWZQYXJhbShyaWdodCwgbGVmdCl9YDtcbn07XG5jb25zdCBndGUgPSAobGVmdCwgcmlnaHQpID0+IHtcbiAgcmV0dXJuIHNxbGAke2xlZnR9ID49ICR7YmluZElmUGFyYW0ocmlnaHQsIGxlZnQpfWA7XG59O1xuY29uc3QgbHQgPSAobGVmdCwgcmlnaHQpID0+IHtcbiAgcmV0dXJuIHNxbGAke2xlZnR9IDwgJHtiaW5kSWZQYXJhbShyaWdodCwgbGVmdCl9YDtcbn07XG5jb25zdCBsdGUgPSAobGVmdCwgcmlnaHQpID0+IHtcbiAgcmV0dXJuIHNxbGAke2xlZnR9IDw9ICR7YmluZElmUGFyYW0ocmlnaHQsIGxlZnQpfWA7XG59O1xuZnVuY3Rpb24gaW5BcnJheShjb2x1bW4sIHZhbHVlcykge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImluQXJyYXkgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHZhbHVlXCIpO1xuICAgIH1cbiAgICByZXR1cm4gc3FsYCR7Y29sdW1ufSBpbiAke3ZhbHVlcy5tYXAoKHYpID0+IGJpbmRJZlBhcmFtKHYsIGNvbHVtbikpfWA7XG4gIH1cbiAgcmV0dXJuIHNxbGAke2NvbHVtbn0gaW4gJHtiaW5kSWZQYXJhbSh2YWx1ZXMsIGNvbHVtbil9YDtcbn1cbmZ1bmN0aW9uIG5vdEluQXJyYXkoY29sdW1uLCB2YWx1ZXMpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3RJbkFycmF5IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSB2YWx1ZVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHNxbGAke2NvbHVtbn0gbm90IGluICR7dmFsdWVzLm1hcCgodikgPT4gYmluZElmUGFyYW0odiwgY29sdW1uKSl9YDtcbiAgfVxuICByZXR1cm4gc3FsYCR7Y29sdW1ufSBub3QgaW4gJHtiaW5kSWZQYXJhbSh2YWx1ZXMsIGNvbHVtbil9YDtcbn1cbmZ1bmN0aW9uIGlzTnVsbCh2YWx1ZSkge1xuICByZXR1cm4gc3FsYCR7dmFsdWV9IGlzIG51bGxgO1xufVxuZnVuY3Rpb24gaXNOb3ROdWxsKHZhbHVlKSB7XG4gIHJldHVybiBzcWxgJHt2YWx1ZX0gaXMgbm90IG51bGxgO1xufVxuZnVuY3Rpb24gZXhpc3RzKHN1YnF1ZXJ5KSB7XG4gIHJldHVybiBzcWxgZXhpc3RzICR7c3VicXVlcnl9YDtcbn1cbmZ1bmN0aW9uIG5vdEV4aXN0cyhzdWJxdWVyeSkge1xuICByZXR1cm4gc3FsYG5vdCBleGlzdHMgJHtzdWJxdWVyeX1gO1xufVxuZnVuY3Rpb24gYmV0d2Vlbihjb2x1bW4sIG1pbiwgbWF4KSB7XG4gIHJldHVybiBzcWxgJHtjb2x1bW59IGJldHdlZW4gJHtiaW5kSWZQYXJhbShtaW4sIGNvbHVtbil9IGFuZCAke2JpbmRJZlBhcmFtKFxuICAgIG1heCxcbiAgICBjb2x1bW5cbiAgKX1gO1xufVxuZnVuY3Rpb24gbm90QmV0d2Vlbihjb2x1bW4sIG1pbiwgbWF4KSB7XG4gIHJldHVybiBzcWxgJHtjb2x1bW59IG5vdCBiZXR3ZWVuICR7YmluZElmUGFyYW0oXG4gICAgbWluLFxuICAgIGNvbHVtblxuICApfSBhbmQgJHtiaW5kSWZQYXJhbShtYXgsIGNvbHVtbil9YDtcbn1cbmZ1bmN0aW9uIGxpa2UoY29sdW1uLCB2YWx1ZSkge1xuICByZXR1cm4gc3FsYCR7Y29sdW1ufSBsaWtlICR7dmFsdWV9YDtcbn1cbmZ1bmN0aW9uIG5vdExpa2UoY29sdW1uLCB2YWx1ZSkge1xuICByZXR1cm4gc3FsYCR7Y29sdW1ufSBub3QgbGlrZSAke3ZhbHVlfWA7XG59XG5mdW5jdGlvbiBpbGlrZShjb2x1bW4sIHZhbHVlKSB7XG4gIHJldHVybiBzcWxgJHtjb2x1bW59IGlsaWtlICR7dmFsdWV9YDtcbn1cbmZ1bmN0aW9uIG5vdElsaWtlKGNvbHVtbiwgdmFsdWUpIHtcbiAgcmV0dXJuIHNxbGAke2NvbHVtbn0gbm90IGlsaWtlICR7dmFsdWV9YDtcbn1cbmZ1bmN0aW9uIGFycmF5Q29udGFpbnMoY29sdW1uLCB2YWx1ZXMpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJhcnJheUNvbnRhaW5zIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSB2YWx1ZVwiKTtcbiAgICB9XG4gICAgY29uc3QgYXJyYXkgPSBzcWxgJHtiaW5kSWZQYXJhbSh2YWx1ZXMsIGNvbHVtbil9YDtcbiAgICByZXR1cm4gc3FsYCR7Y29sdW1ufSBAPiAke2FycmF5fWA7XG4gIH1cbiAgcmV0dXJuIHNxbGAke2NvbHVtbn0gQD4gJHtiaW5kSWZQYXJhbSh2YWx1ZXMsIGNvbHVtbil9YDtcbn1cbmZ1bmN0aW9uIGFycmF5Q29udGFpbmVkKGNvbHVtbiwgdmFsdWVzKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYXJyYXlDb250YWluZWQgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHZhbHVlXCIpO1xuICAgIH1cbiAgICBjb25zdCBhcnJheSA9IHNxbGAke2JpbmRJZlBhcmFtKHZhbHVlcywgY29sdW1uKX1gO1xuICAgIHJldHVybiBzcWxgJHtjb2x1bW59IDxAICR7YXJyYXl9YDtcbiAgfVxuICByZXR1cm4gc3FsYCR7Y29sdW1ufSA8QCAke2JpbmRJZlBhcmFtKHZhbHVlcywgY29sdW1uKX1gO1xufVxuZnVuY3Rpb24gYXJyYXlPdmVybGFwcyhjb2x1bW4sIHZhbHVlcykge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImFycmF5T3ZlcmxhcHMgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHZhbHVlXCIpO1xuICAgIH1cbiAgICBjb25zdCBhcnJheSA9IHNxbGAke2JpbmRJZlBhcmFtKHZhbHVlcywgY29sdW1uKX1gO1xuICAgIHJldHVybiBzcWxgJHtjb2x1bW59ICYmICR7YXJyYXl9YDtcbiAgfVxuICByZXR1cm4gc3FsYCR7Y29sdW1ufSAmJiAke2JpbmRJZlBhcmFtKHZhbHVlcywgY29sdW1uKX1gO1xufVxuZXhwb3J0IHtcbiAgYW5kLFxuICBhcnJheUNvbnRhaW5lZCxcbiAgYXJyYXlDb250YWlucyxcbiAgYXJyYXlPdmVybGFwcyxcbiAgYmV0d2VlbixcbiAgYmluZElmUGFyYW0sXG4gIGVxLFxuICBleGlzdHMsXG4gIGd0LFxuICBndGUsXG4gIGlsaWtlLFxuICBpbkFycmF5LFxuICBpc05vdE51bGwsXG4gIGlzTnVsbCxcbiAgbGlrZSxcbiAgbHQsXG4gIGx0ZSxcbiAgbmUsXG4gIG5vdCxcbiAgbm90QmV0d2VlbixcbiAgbm90RXhpc3RzLFxuICBub3RJbGlrZSxcbiAgbm90SW5BcnJheSxcbiAgbm90TGlrZSxcbiAgb3Jcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25kaXRpb25zLmpzLm1hcCJdLCJuYW1lcyI6WyJDb2x1bW4iLCJpcyIsIlRhYmxlIiwiaXNEcml2ZXJWYWx1ZUVuY29kZXIiLCJpc1NRTFdyYXBwZXIiLCJQYXJhbSIsIlBsYWNlaG9sZGVyIiwiU1FMIiwic3FsIiwiU3RyaW5nQ2h1bmsiLCJWaWV3IiwiYmluZElmUGFyYW0iLCJ2YWx1ZSIsImNvbHVtbiIsImVxIiwibGVmdCIsInJpZ2h0IiwibmUiLCJhbmQiLCJ1bmZpbHRlcmVkQ29uZGl0aW9ucyIsImNvbmRpdGlvbnMiLCJmaWx0ZXIiLCJjIiwibGVuZ3RoIiwiam9pbiIsIm9yIiwibm90IiwiY29uZGl0aW9uIiwiZ3QiLCJndGUiLCJsdCIsImx0ZSIsImluQXJyYXkiLCJ2YWx1ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJFcnJvciIsIm1hcCIsInYiLCJub3RJbkFycmF5IiwiaXNOdWxsIiwiaXNOb3ROdWxsIiwiZXhpc3RzIiwic3VicXVlcnkiLCJub3RFeGlzdHMiLCJiZXR3ZWVuIiwibWluIiwibWF4Iiwibm90QmV0d2VlbiIsImxpa2UiLCJub3RMaWtlIiwiaWxpa2UiLCJub3RJbGlrZSIsImFycmF5Q29udGFpbnMiLCJhcnJheSIsImFycmF5Q29udGFpbmVkIiwiYXJyYXlPdmVybGFwcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sql/expressions/conditions.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sql/expressions/select.js":
-/*!****************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sql/expressions/select.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ asc: () => (/* binding */ asc),\n/* harmony export */ desc: () => (/* binding */ desc)\n/* harmony export */ });\n/* harmony import */ var _sql_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n\nfunction asc(column) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} asc`;\n}\nfunction desc(column) {\n return _sql_js__WEBPACK_IMPORTED_MODULE_0__.sql`${column} desc`;\n}\n //# sourceMappingURL=select.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbC9leHByZXNzaW9ucy9zZWxlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdDO0FBQ2hDLFNBQVNDLElBQUlDLE1BQU07SUFDakIsT0FBT0Ysd0NBQUcsQ0FBQyxFQUFFRSxPQUFPLElBQUksQ0FBQztBQUMzQjtBQUNBLFNBQVNDLEtBQUtELE1BQU07SUFDbEIsT0FBT0Ysd0NBQUcsQ0FBQyxFQUFFRSxPQUFPLEtBQUssQ0FBQztBQUM1QjtBQUlFLENBQ0Ysa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc3FsL2V4cHJlc3Npb25zL3NlbGVjdC5qcz9lNWQ3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNxbCB9IGZyb20gXCIuLi9zcWwuanNcIjtcbmZ1bmN0aW9uIGFzYyhjb2x1bW4pIHtcbiAgcmV0dXJuIHNxbGAke2NvbHVtbn0gYXNjYDtcbn1cbmZ1bmN0aW9uIGRlc2MoY29sdW1uKSB7XG4gIHJldHVybiBzcWxgJHtjb2x1bW59IGRlc2NgO1xufVxuZXhwb3J0IHtcbiAgYXNjLFxuICBkZXNjXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VsZWN0LmpzLm1hcCJdLCJuYW1lcyI6WyJzcWwiLCJhc2MiLCJjb2x1bW4iLCJkZXNjIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sql/expressions/select.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sql/sql.js":
-/*!*************************************************!*\
- !*** ../../node_modules/drizzle-orm/sql/sql.js ***!
- \*************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FakePrimitiveParam: () => (/* binding */ FakePrimitiveParam),\n/* harmony export */ Name: () => (/* binding */ Name),\n/* harmony export */ Param: () => (/* binding */ Param),\n/* harmony export */ Placeholder: () => (/* binding */ Placeholder),\n/* harmony export */ SQL: () => (/* binding */ SQL),\n/* harmony export */ StringChunk: () => (/* binding */ StringChunk),\n/* harmony export */ View: () => (/* binding */ View),\n/* harmony export */ fillPlaceholders: () => (/* binding */ fillPlaceholders),\n/* harmony export */ isDriverValueEncoder: () => (/* binding */ isDriverValueEncoder),\n/* harmony export */ isSQLWrapper: () => (/* binding */ isSQLWrapper),\n/* harmony export */ name: () => (/* binding */ name),\n/* harmony export */ noopDecoder: () => (/* binding */ noopDecoder),\n/* harmony export */ noopEncoder: () => (/* binding */ noopEncoder),\n/* harmony export */ noopMapper: () => (/* binding */ noopMapper),\n/* harmony export */ param: () => (/* binding */ param),\n/* harmony export */ placeholder: () => (/* binding */ placeholder),\n/* harmony export */ sql: () => (/* binding */ sql)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _subquery_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../subquery.js */ \"(rsc)/../../node_modules/drizzle-orm/subquery.js\");\n/* harmony import */ var _tracing_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../tracing.js */ \"(rsc)/../../node_modules/drizzle-orm/tracing.js\");\n/* harmony import */ var _view_common_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../view-common.js */ \"(rsc)/../../node_modules/drizzle-orm/view-common.js\");\n/* harmony import */ var _column_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../column.js */ \"(rsc)/../../node_modules/drizzle-orm/column.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n\n\n\n\n\n\nclass FakePrimitiveParam {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"FakePrimitiveParam\";\n }\n}\nfunction isSQLWrapper(value) {\n return typeof value === \"object\" && value !== null && \"getSQL\" in value && typeof value.getSQL === \"function\";\n}\nfunction mergeQueries(queries) {\n const result = {\n sql: \"\",\n params: []\n };\n for (const query of queries){\n result.sql += query.sql;\n result.params.push(...query.params);\n if (query.typings?.length) {\n if (!result.typings) {\n result.typings = [];\n }\n result.typings.push(...query.typings);\n }\n }\n return result;\n}\nclass StringChunk {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"StringChunk\";\n }\n constructor(value){\n this.value = Array.isArray(value) ? value : [\n value\n ];\n }\n getSQL() {\n return new SQL([\n this\n ]);\n }\n}\nclass SQL {\n constructor(queryChunks){\n /** @internal */ this.decoder = noopDecoder;\n this.shouldInlineParams = false;\n this.queryChunks = queryChunks;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQL\";\n }\n append(query) {\n this.queryChunks.push(...query.queryChunks);\n return this;\n }\n toQuery(config) {\n return _tracing_js__WEBPACK_IMPORTED_MODULE_1__.tracer.startActiveSpan(\"drizzle.buildSQL\", (span)=>{\n const query = this.buildQueryFromSourceParams(this.queryChunks, config);\n span?.setAttributes({\n \"drizzle.query.text\": query.sql,\n \"drizzle.query.params\": JSON.stringify(query.params)\n });\n return query;\n });\n }\n buildQueryFromSourceParams(chunks, _config) {\n const config = Object.assign({}, _config, {\n inlineParams: _config.inlineParams || this.shouldInlineParams,\n paramStartIndex: _config.paramStartIndex || {\n value: 0\n }\n });\n const { escapeName, escapeParam, prepareTyping, inlineParams, paramStartIndex } = config;\n return mergeQueries(chunks.map((chunk)=>{\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, StringChunk)) {\n return {\n sql: chunk.value.join(\"\"),\n params: []\n };\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, Name)) {\n return {\n sql: escapeName(chunk.value),\n params: []\n };\n }\n if (chunk === void 0) {\n return {\n sql: \"\",\n params: []\n };\n }\n if (Array.isArray(chunk)) {\n const result = [\n new StringChunk(\"(\")\n ];\n for (const [i, p] of chunk.entries()){\n result.push(p);\n if (i < chunk.length - 1) {\n result.push(new StringChunk(\", \"));\n }\n }\n result.push(new StringChunk(\")\"));\n return this.buildQueryFromSourceParams(result, config);\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, SQL)) {\n return this.buildQueryFromSourceParams(chunk.queryChunks, {\n ...config,\n inlineParams: inlineParams || chunk.shouldInlineParams\n });\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, _table_js__WEBPACK_IMPORTED_MODULE_2__.Table)) {\n const schemaName = chunk[_table_js__WEBPACK_IMPORTED_MODULE_2__.Table.Symbol.Schema];\n const tableName = chunk[_table_js__WEBPACK_IMPORTED_MODULE_2__.Table.Symbol.Name];\n return {\n sql: schemaName === void 0 ? escapeName(tableName) : escapeName(schemaName) + \".\" + escapeName(tableName),\n params: []\n };\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, _column_js__WEBPACK_IMPORTED_MODULE_3__.Column)) {\n return {\n sql: escapeName(chunk.table[_table_js__WEBPACK_IMPORTED_MODULE_2__.Table.Symbol.Name]) + \".\" + escapeName(chunk.name),\n params: []\n };\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, View)) {\n const schemaName = chunk[_view_common_js__WEBPACK_IMPORTED_MODULE_4__.ViewBaseConfig].schema;\n const viewName = chunk[_view_common_js__WEBPACK_IMPORTED_MODULE_4__.ViewBaseConfig].name;\n return {\n sql: schemaName === void 0 ? escapeName(viewName) : escapeName(schemaName) + \".\" + escapeName(viewName),\n params: []\n };\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, Param)) {\n const mappedValue = chunk.value === null ? null : chunk.encoder.mapToDriverValue(chunk.value);\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(mappedValue, SQL)) {\n return this.buildQueryFromSourceParams([\n mappedValue\n ], config);\n }\n if (inlineParams) {\n return {\n sql: this.mapInlineParam(mappedValue, config),\n params: []\n };\n }\n let typings;\n if (prepareTyping !== void 0) {\n typings = [\n prepareTyping(chunk.encoder)\n ];\n }\n return {\n sql: escapeParam(paramStartIndex.value++, mappedValue),\n params: [\n mappedValue\n ],\n typings\n };\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, Placeholder)) {\n return {\n sql: escapeParam(paramStartIndex.value++, chunk),\n params: [\n chunk\n ]\n };\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, SQL.Aliased) && chunk.fieldAlias !== void 0) {\n return {\n sql: escapeName(chunk.fieldAlias),\n params: []\n };\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, _subquery_js__WEBPACK_IMPORTED_MODULE_5__.Subquery)) {\n if (chunk[_subquery_js__WEBPACK_IMPORTED_MODULE_5__.SubqueryConfig].isWith) {\n return {\n sql: escapeName(chunk[_subquery_js__WEBPACK_IMPORTED_MODULE_5__.SubqueryConfig].alias),\n params: []\n };\n }\n return this.buildQueryFromSourceParams([\n new StringChunk(\"(\"),\n chunk[_subquery_js__WEBPACK_IMPORTED_MODULE_5__.SubqueryConfig].sql,\n new StringChunk(\") \"),\n new Name(chunk[_subquery_js__WEBPACK_IMPORTED_MODULE_5__.SubqueryConfig].alias)\n ], config);\n }\n if (isSQLWrapper(chunk)) {\n return this.buildQueryFromSourceParams([\n new StringChunk(\"(\"),\n chunk.getSQL(),\n new StringChunk(\")\")\n ], config);\n }\n if (inlineParams) {\n return {\n sql: this.mapInlineParam(chunk, config),\n params: []\n };\n }\n return {\n sql: escapeParam(paramStartIndex.value++, chunk),\n params: [\n chunk\n ]\n };\n }));\n }\n mapInlineParam(chunk, { escapeString }) {\n if (chunk === null) {\n return \"null\";\n }\n if (typeof chunk === \"number\" || typeof chunk === \"boolean\") {\n return chunk.toString();\n }\n if (typeof chunk === \"string\") {\n return escapeString(chunk);\n }\n if (typeof chunk === \"object\") {\n const mappedValueAsString = chunk.toString();\n if (mappedValueAsString === \"[object Object]\") {\n return escapeString(JSON.stringify(chunk));\n }\n return escapeString(mappedValueAsString);\n }\n throw new Error(\"Unexpected param value: \" + chunk);\n }\n getSQL() {\n return this;\n }\n as(alias) {\n if (alias === void 0) {\n return this;\n }\n return new SQL.Aliased(this, alias);\n }\n mapWith(decoder) {\n this.decoder = typeof decoder === \"function\" ? {\n mapFromDriverValue: decoder\n } : decoder;\n return this;\n }\n inlineParams() {\n this.shouldInlineParams = true;\n return this;\n }\n}\nclass Name {\n constructor(value){\n this.value = value;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"Name\";\n }\n getSQL() {\n return new SQL([\n this\n ]);\n }\n}\nfunction name(value) {\n return new Name(value);\n}\nfunction isDriverValueEncoder(value) {\n return typeof value === \"object\" && value !== null && \"mapToDriverValue\" in value && typeof value.mapToDriverValue === \"function\";\n}\nconst noopDecoder = {\n mapFromDriverValue: (value)=>value\n};\nconst noopEncoder = {\n mapToDriverValue: (value)=>value\n};\nconst noopMapper = {\n ...noopDecoder,\n ...noopEncoder\n};\nclass Param {\n /**\n * @param value - Parameter value\n * @param encoder - Encoder to convert the value to a driver parameter\n */ constructor(value, encoder = noopEncoder){\n this.value = value;\n this.encoder = encoder;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"Param\";\n }\n getSQL() {\n return new SQL([\n this\n ]);\n }\n}\nfunction param(value, encoder) {\n return new Param(value, encoder);\n}\nfunction sql(strings, ...params) {\n const queryChunks = [];\n if (params.length > 0 || strings.length > 0 && strings[0] !== \"\") {\n queryChunks.push(new StringChunk(strings[0]));\n }\n for (const [paramIndex, param2] of params.entries()){\n queryChunks.push(param2, new StringChunk(strings[paramIndex + 1]));\n }\n return new SQL(queryChunks);\n}\n((sql2)=>{\n function empty() {\n return new SQL([]);\n }\n sql2.empty = empty;\n function fromList(list) {\n return new SQL(list);\n }\n sql2.fromList = fromList;\n function raw(str) {\n return new SQL([\n new StringChunk(str)\n ]);\n }\n sql2.raw = raw;\n function join(chunks, separator) {\n const result = [];\n for (const [i, chunk] of chunks.entries()){\n if (i > 0 && separator !== void 0) {\n result.push(separator);\n }\n result.push(chunk);\n }\n return new SQL(result);\n }\n sql2.join = join;\n function identifier(value) {\n return new Name(value);\n }\n sql2.identifier = identifier;\n function placeholder2(name2) {\n return new Placeholder(name2);\n }\n sql2.placeholder = placeholder2;\n function param2(value, encoder) {\n return new Param(value, encoder);\n }\n sql2.param = param2;\n})(sql || (sql = {}));\n((SQL2)=>{\n class Aliased {\n constructor(sql2, fieldAlias){\n /** @internal */ this.isSelectionField = false;\n this.sql = sql2;\n this.fieldAlias = fieldAlias;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQL.Aliased\";\n }\n getSQL() {\n return this.sql;\n }\n /** @internal */ clone() {\n return new Aliased(this.sql, this.fieldAlias);\n }\n }\n SQL2.Aliased = Aliased;\n})(SQL || (SQL = {}));\nclass Placeholder {\n constructor(name2){\n this.name = name2;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"Placeholder\";\n }\n getSQL() {\n return new SQL([\n this\n ]);\n }\n}\nfunction placeholder(name2) {\n return new Placeholder(name2);\n}\nfunction fillPlaceholders(params, values) {\n return params.map((p)=>{\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(p, Placeholder)) {\n if (!(p.name in values)) {\n throw new Error(`No value for placeholder \"${p.name}\" was provided`);\n }\n return values[p.name];\n }\n return p;\n });\n}\nclass View {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"View\";\n }\n constructor({ name: name2, schema, selectedFields, query }){\n this[_view_common_js__WEBPACK_IMPORTED_MODULE_4__.ViewBaseConfig] = {\n name: name2,\n originalName: name2,\n schema,\n selectedFields,\n query,\n isExisting: !query,\n isAlias: false\n };\n }\n getSQL() {\n return new SQL([\n this\n ]);\n }\n}\n_column_js__WEBPACK_IMPORTED_MODULE_3__.Column.prototype.getSQL = function() {\n return new SQL([\n this\n ]);\n};\n_table_js__WEBPACK_IMPORTED_MODULE_2__.Table.prototype.getSQL = function() {\n return new SQL([\n this\n ]);\n};\n_subquery_js__WEBPACK_IMPORTED_MODULE_5__.Subquery.prototype.getSQL = function() {\n return new SQL([\n this\n ]);\n};\n //# sourceMappingURL=sql.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbC9zcWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOEM7QUFDWTtBQUNuQjtBQUNZO0FBQ2I7QUFDRjtBQUNwQyxNQUFNUTs7WUFDRyxDQUFDUixrREFBVUEsQ0FBQyxHQUFHOztBQUN4QjtBQUNBLFNBQVNTLGFBQWFDLEtBQUs7SUFDekIsT0FBTyxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxZQUFZQSxTQUFTLE9BQU9BLE1BQU1DLE1BQU0sS0FBSztBQUNyRztBQUNBLFNBQVNDLGFBQWFDLE9BQU87SUFDM0IsTUFBTUMsU0FBUztRQUFFQyxLQUFLO1FBQUlDLFFBQVEsRUFBRTtJQUFDO0lBQ3JDLEtBQUssTUFBTUMsU0FBU0osUUFBUztRQUMzQkMsT0FBT0MsR0FBRyxJQUFJRSxNQUFNRixHQUFHO1FBQ3ZCRCxPQUFPRSxNQUFNLENBQUNFLElBQUksSUFBSUQsTUFBTUQsTUFBTTtRQUNsQyxJQUFJQyxNQUFNRSxPQUFPLEVBQUVDLFFBQVE7WUFDekIsSUFBSSxDQUFDTixPQUFPSyxPQUFPLEVBQUU7Z0JBQ25CTCxPQUFPSyxPQUFPLEdBQUcsRUFBRTtZQUNyQjtZQUNBTCxPQUFPSyxPQUFPLENBQUNELElBQUksSUFBSUQsTUFBTUUsT0FBTztRQUN0QztJQUNGO0lBQ0EsT0FBT0w7QUFDVDtBQUNBLE1BQU1POztZQUNHLENBQUNyQixrREFBVUEsQ0FBQyxHQUFHOztJQUV0QnNCLFlBQVlaLEtBQUssQ0FBRTtRQUNqQixJQUFJLENBQUNBLEtBQUssR0FBR2EsTUFBTUMsT0FBTyxDQUFDZCxTQUFTQSxRQUFRO1lBQUNBO1NBQU07SUFDckQ7SUFDQUMsU0FBUztRQUNQLE9BQU8sSUFBSWMsSUFBSTtZQUFDLElBQUk7U0FBQztJQUN2QjtBQUNGO0FBQ0EsTUFBTUE7SUFDSkgsWUFBWUksV0FBVyxDQUFFO1FBSXpCLGNBQWMsUUFDZEMsVUFBVUM7YUFDVkMs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LElBQUksSUFBSTJDLE1BQUssR0FBSTtnQkFDdkIsTUFBTSxJQUFJMUIsTUFBTSxDQUFDLDBCQUEwQixFQUFFeEIsRUFBRU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNyRTtZQUNBLE9BQU8yQyxNQUFNLENBQUNsRCxFQUFFTyxJQUFJLENBQUM7UUFDdkI7UUFDQSxPQUFPUDtJQUNUO0FBQ0Y7QUFDQSxNQUFNUTs7WUFDRyxDQUFDN0Qsa0RBQVVBLENBQUMsR0FBRzs7SUFHdEJzQixZQUFZLEVBQUVzQyxNQUFNcUMsS0FBSyxFQUFFbkMsTUFBTSxFQUFFMEMsY0FBYyxFQUFFdkYsS0FBSyxFQUFFLENBQUU7UUFDMUQsSUFBSSxDQUFDWiwyREFBY0EsQ0FBQyxHQUFHO1lBQ3JCdUQsTUFBTXFDO1lBQ05RLGNBQWNSO1lBQ2RuQztZQUNBMEM7WUFDQXZGO1lBQ0F5RixZQUFZLENBQUN6RjtZQUNiMEYsU0FBUztRQUNYO0lBQ0Y7SUFDQWhHLFNBQVM7UUFDUCxPQUFPLElBQUljLElBQUk7WUFBQyxJQUFJO1NBQUM7SUFDdkI7QUFDRjtBQUNBbkIsOENBQU1BLENBQUNzRyxTQUFTLENBQUNqRyxNQUFNLEdBQUc7SUFDeEIsT0FBTyxJQUFJYyxJQUFJO1FBQUMsSUFBSTtLQUFDO0FBQ3ZCO0FBQ0FsQiw0Q0FBS0EsQ0FBQ3FHLFNBQVMsQ0FBQ2pHLE1BQU0sR0FBRztJQUN2QixPQUFPLElBQUljLElBQUk7UUFBQyxJQUFJO0tBQUM7QUFDdkI7QUFDQXZCLGtEQUFRQSxDQUFDMEcsU0FBUyxDQUFDakcsTUFBTSxHQUFHO0lBQzFCLE9BQU8sSUFBSWMsSUFBSTtRQUFDLElBQUk7S0FBQztBQUN2QjtBQW1CRSxDQUNGLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbC9zcWwuanM/NGJkNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kLCBpcyB9IGZyb20gXCIuLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IFN1YnF1ZXJ5LCBTdWJxdWVyeUNvbmZpZyB9IGZyb20gXCIuLi9zdWJxdWVyeS5qc1wiO1xuaW1wb3J0IHsgdHJhY2VyIH0gZnJvbSBcIi4uL3RyYWNpbmcuanNcIjtcbmltcG9ydCB7IFZpZXdCYXNlQ29uZmlnIH0gZnJvbSBcIi4uL3ZpZXctY29tbW9uLmpzXCI7XG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tIFwiLi4vY29sdW1uLmpzXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCIuLi90YWJsZS5qc1wiO1xuY2xhc3MgRmFrZVByaW1pdGl2ZVBhcmFtIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiRmFrZVByaW1pdGl2ZVBhcmFtXCI7XG59XG5mdW5jdGlvbiBpc1NRTFdyYXBwZXIodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCAmJiBcImdldFNRTFwiIGluIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS5nZXRTUUwgPT09IFwiZnVuY3Rpb25cIjtcbn1cbmZ1bmN0aW9uIG1lcmdlUXVlcmllcyhxdWVyaWVzKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHsgc3FsOiBcIlwiLCBwYXJhbXM6IFtdIH07XG4gIGZvciAoY29uc3QgcXVlcnkgb2YgcXVlcmllcykge1xuICAgIHJlc3VsdC5zcWwgKz0gcXVlcnkuc3FsO1xuICAgIHJlc3VsdC5wYXJhbXMucHVzaCguLi5xdWVyeS5wYXJhbXMpO1xuICAgIGlmIChxdWVyeS50eXBpbmdzPy5sZW5ndGgpIHtcbiAgICAgIGlmICghcmVzdWx0LnR5cGluZ3MpIHtcbiAgICAgICAgcmVzdWx0LnR5cGluZ3MgPSBbXTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC50eXBpbmdzLnB1c2goLi4ucXVlcnkudHlwaW5ncyk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5jbGFzcyBTdHJpbmdDaHVuayB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlN0cmluZ0NodW5rXCI7XG4gIHZhbHVlO1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfVxuICBnZXRTUUwoKSB7XG4gICAgcmV0dXJuIG5ldyBTUUwoW3RoaXNdKTtcbiAgfVxufVxuY2xhc3MgU1FMIHtcbiAgY29uc3RydWN0b3IocXVlcnlDaHVua3MpIHtcbiAgICB0aGlzLnF1ZXJ5Q2h1bmtzID0gcXVlcnlDaHVua3M7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMXCI7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZGVjb2RlciA9IG5vb3BEZWNvZGVyO1xuICBzaG91bGRJbmxpbmVQYXJhbXMgPSBmYWxzZTtcbiAgYXBwZW5kKHF1ZXJ5KSB7XG4gICAgdGhpcy5xdWVyeUNodW5rcy5wdXNoKC4uLnF1ZXJ5LnF1ZXJ5Q2h1bmtzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB0b1F1ZXJ5KGNvbmZpZykge1xuICAgIHJldHVybiB0cmFjZXIuc3RhcnRBY3RpdmVTcGFuKFwiZHJpenpsZS5idWlsZFNRTFwiLCAoc3BhbikgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLmJ1aWxkUXVlcnlGcm9tU291cmNlUGFyYW1zKHRoaXMucXVlcnlDaHVua3MsIGNvbmZpZyk7XG4gICAgICBzcGFuPy5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgXCJkcml6emxlLnF1ZXJ5LnRleHRcIjogcXVlcnkuc3FsLFxuICAgICAgICBcImRyaXp6bGUucXVlcnkucGFyYW1zXCI6IEpTT04uc3RyaW5naWZ5KHF1ZXJ5LnBhcmFtcylcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgIH0pO1xuICB9XG4gIGJ1aWxkUXVlcnlGcm9tU291cmNlUGFyYW1zKGNodW5rcywgX2NvbmZpZykge1xuICAgIGNvbnN0IGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIF9jb25maWcsIHtcbiAgICAgIGlubGluZVBhcmFtczogX2NvbmZpZy5pbmxpbmVQYXJhbXMgfHwgdGhpcy5zaG91bGRJbmxpbmVQYXJhbXMsXG4gICAgICBwYXJhbVN0YXJ0SW5kZXg6IF9jb25maWcucGFyYW1TdGFydEluZGV4IHx8IHsgdmFsdWU6IDAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHtcbiAgICAgIGVzY2FwZU5hbWUsXG4gICAgICBlc2NhcGVQYXJhbSxcbiAgICAgIHByZXBhcmVUeXBpbmcsXG4gICAgICBpbmxpbmVQYXJhbXMsXG4gICAgICBwYXJhbVN0YXJ0SW5kZXhcbiAgICB9ID0gY29uZmlnO1xuICAgIHJldHVybiBtZXJnZVF1ZXJpZXMoY2h1bmtzLm1hcCgoY2h1bmspID0+IHtcbiAgICAgIGlmIChpcyhjaHVuaywgU3RyaW5nQ2h1bmspKSB7XG4gICAgICAgIHJldHVybiB7IHNxbDogY2h1bmsudmFsdWUuam9pbihcIlwiKSwgcGFyYW1zOiBbXSB9O1xuICAgICAgfVxuICAgICAgaWYgKGlzKGNodW5rLCBOYW1lKSkge1xuICAgICAgICByZXR1cm4geyBzcWw6IGVzY2FwZU5hbWUoY2h1bmsudmFsdWUpLCBwYXJhbXM6IFtdIH07XG4gICAgICB9XG4gICAgICBpZiAoY2h1bmsgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4geyBzcWw6IFwiXCIsIHBhcmFtczogW10gfTtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNodW5rKSkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbbmV3IFN0cmluZ0NodW5rKFwiKFwiKV07XG4gICAgICAgIGZvciAoY29uc3QgW2ksIHBdIG9mIGNodW5rLmVudHJpZXMoKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHApO1xuICAgICAgICAgIGlmIChpIDwgY2h1bmsubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3IFN0cmluZ0NodW5rKFwiLCBcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChuZXcgU3RyaW5nQ2h1bmsoXCIpXCIpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRRdWVyeUZyb21Tb3VyY2VQYXJhbXMocmVzdWx0LCBjb25maWcpO1xuICAgICAgfVxuICAgICAgaWYgKGlzKGNodW5rLCBTUUwpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkUXVlcnlGcm9tU291cmNlUGFyYW1zKGNodW5rLnF1ZXJ5Q2h1bmtzLCB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIGlubGluZVBhcmFtczogaW5saW5lUGFyYW1zIHx8IGNodW5rLnNob3VsZElubGluZVBhcmFtc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChpcyhjaHVuaywgVGFibGUpKSB7XG4gICAgICAgIGNvbnN0IHNjaGVtYU5hbWUgPSBjaHVua1tUYWJsZS5TeW1ib2wuU2NoZW1hXTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gY2h1bmtbVGFibGUuU3ltYm9sLk5hbWVdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNxbDogc2NoZW1hTmFtZSA9PT0gdm9pZCAwID8gZXNjYXBlTmFtZSh0YWJsZU5hbWUpIDogZXNjYXBlTmFtZShzY2hlbWFOYW1lKSArIFwiLlwiICsgZXNjYXBlTmFtZSh0YWJsZU5hbWUpLFxuICAgICAgICAgIHBhcmFtczogW11cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmIChpcyhjaHVuaywgQ29sdW1uKSkge1xuICAgICAgICByZXR1cm4geyBzcWw6IGVzY2FwZU5hbWUoY2h1bmsudGFibGVbVGFibGUuU3ltYm9sLk5hbWVdKSArIFwiLlwiICsgZXNjYXBlTmFtZShjaHVuay5uYW1lKSwgcGFyYW1zOiBbXSB9O1xuICAgICAgfVxuICAgICAgaWYgKGlzKGNodW5rLCBWaWV3KSkge1xuICAgICAgICBjb25zdCBzY2hlbWFOYW1lID0gY2h1bmtbVmlld0Jhc2VDb25maWddLnNjaGVtYTtcbiAgICAgICAgY29uc3Qgdmlld05hbWUgPSBjaHVua1tWaWV3QmFzZUNvbmZpZ10ubmFtZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzcWw6IHNjaGVtYU5hbWUgPT09IHZvaWQgMCA/IGVzY2FwZU5hbWUodmlld05hbWUpIDogZXNjYXBlTmFtZShzY2hlbWFOYW1lKSArIFwiLlwiICsgZXNjYXBlTmFtZSh2aWV3TmFtZSksXG4gICAgICAgICAgcGFyYW1zOiBbXVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKGlzKGNodW5rLCBQYXJhbSkpIHtcbiAgICAgICAgY29uc3QgbWFwcGVkVmFsdWUgPSBjaHVuay52YWx1ZSA9PT0gbnVsbCA/IG51bGwgOiBjaHVuay5lbmNvZGVyLm1hcFRvRHJpdmVyVmFsdWUoY2h1bmsudmFsdWUpO1xuICAgICAgICBpZiAoaXMobWFwcGVkVmFsdWUsIFNRTCkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZFF1ZXJ5RnJvbVNvdXJjZVBhcmFtcyhbbWFwcGVkVmFsdWVdLCBjb25maWcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmxpbmVQYXJhbXMpIHtcbiAgICAgICAgICByZXR1cm4geyBzcWw6IHRoaXMubWFwSW5saW5lUGFyYW0obWFwcGVkVmFsdWUsIGNvbmZpZyksIHBhcmFtczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdHlwaW5ncztcbiAgICAgICAgaWYgKHByZXBhcmVUeXBpbmcgIT09IHZvaWQgMCkge1xuICAgICAgICAgIHR5cGluZ3MgPSBbcHJlcGFyZVR5cGluZyhjaHVuay5lbmNvZGVyKV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3FsOiBlc2NhcGVQYXJhbShwYXJhbVN0YXJ0SW5kZXgudmFsdWUrKywgbWFwcGVkVmFsdWUpLCBwYXJhbXM6IFttYXBwZWRWYWx1ZV0sIHR5cGluZ3MgfTtcbiAgICAgIH1cbiAgICAgIGlmIChpcyhjaHVuaywgUGxhY2Vob2xkZXIpKSB7XG4gICAgICAgIHJldHVybiB7IHNxbDogZXNjYXBlUGFyYW0ocGFyYW1TdGFydEluZGV4LnZhbHVlKyssIGNodW5rKSwgcGFyYW1zOiBbY2h1bmtdIH07XG4gICAgICB9XG4gICAgICBpZiAoaXMoY2h1bmssIFNRTC5BbGlhc2VkKSAmJiBjaHVuay5maWVsZEFsaWFzICE9PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIHsgc3FsOiBlc2NhcGVOYW1lKGNodW5rLmZpZWxkQWxpYXMpLCBwYXJhbXM6IFtdIH07XG4gICAgICB9XG4gICAgICBpZiAoaXMoY2h1bmssIFN1YnF1ZXJ5KSkge1xuICAgICAgICBpZiAoY2h1bmtbU3VicXVlcnlDb25maWddLmlzV2l0aCkge1xuICAgICAgICAgIHJldHVybiB7IHNxbDogZXNjYXBlTmFtZShjaHVua1tTdWJxdWVyeUNvbmZpZ10uYWxpYXMpLCBwYXJhbXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRRdWVyeUZyb21Tb3VyY2VQYXJhbXMoW1xuICAgICAgICAgIG5ldyBTdHJpbmdDaHVuayhcIihcIiksXG4gICAgICAgICAgY2h1bmtbU3VicXVlcnlDb25maWddLnNxbCxcbiAgICAgICAgICBuZXcgU3RyaW5nQ2h1bmsoXCIpIFwiKSxcbiAgICAgICAgICBuZXcgTmFtZShjaHVua1tTdWJxdWVyeUNvbmZpZ10uYWxpYXMpXG4gICAgICAgIF0sIGNvbmZpZyk7XG4gICAgICB9XG4gICAgICBpZiAoaXNTUUxXcmFwcGVyKGNodW5rKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZFF1ZXJ5RnJvbVNvdXJjZVBhcmFtcyhbXG4gICAgICAgICAgbmV3IFN0cmluZ0NodW5rKFwiKFwiKSxcbiAgICAgICAgICBjaHVuay5nZXRTUUwoKSxcbiAgICAgICAgICBuZXcgU3RyaW5nQ2h1bmsoXCIpXCIpXG4gICAgICAgIF0sIGNvbmZpZyk7XG4gICAgICB9XG4gICAgICBpZiAoaW5saW5lUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiB7IHNxbDogdGhpcy5tYXBJbmxpbmVQYXJhbShjaHVuaywgY29uZmlnKSwgcGFyYW1zOiBbXSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3FsOiBlc2NhcGVQYXJhbShwYXJhbVN0YXJ0SW5kZXgudmFsdWUrKywgY2h1bmspLCBwYXJhbXM6IFtjaHVua10gfTtcbiAgICB9KSk7XG4gIH1cbiAgbWFwSW5saW5lUGFyYW0oY2h1bmssIHsgZXNjYXBlU3RyaW5nIH0pIHtcbiAgICBpZiAoY2h1bmsgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBcIm51bGxcIjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgY2h1bmsgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICByZXR1cm4gY2h1bmsudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIGVzY2FwZVN0cmluZyhjaHVuayk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY2h1bmsgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGNvbnN0IG1hcHBlZFZhbHVlQXNTdHJpbmcgPSBjaHVuay50b1N0cmluZygpO1xuICAgICAgaWYgKG1hcHBlZFZhbHVlQXNTdHJpbmcgPT09IFwiW29iamVjdCBPYmplY3RdXCIpIHtcbiAgICAgICAgcmV0dXJuIGVzY2FwZVN0cmluZyhKU09OLnN0cmluZ2lmeShjaHVuaykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVzY2FwZVN0cmluZyhtYXBwZWRWYWx1ZUFzU3RyaW5nKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBwYXJhbSB2YWx1ZTogXCIgKyBjaHVuayk7XG4gIH1cbiAgZ2V0U1FMKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGFzKGFsaWFzKSB7XG4gICAgaWYgKGFsaWFzID09PSB2b2lkIDApIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFNRTC5BbGlhc2VkKHRoaXMsIGFsaWFzKTtcbiAgfVxuICBtYXBXaXRoKGRlY29kZXIpIHtcbiAgICB0aGlzLmRlY29kZXIgPSB0eXBlb2YgZGVjb2RlciA9PT0gXCJmdW5jdGlvblwiID8geyBtYXBGcm9tRHJpdmVyVmFsdWU6IGRlY29kZXIgfSA6IGRlY29kZXI7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgaW5saW5lUGFyYW1zKCkge1xuICAgIHRoaXMuc2hvdWxkSW5saW5lUGFyYW1zID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuY2xhc3MgTmFtZSB7XG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIk5hbWVcIjtcbiAgYnJhbmQ7XG4gIGdldFNRTCgpIHtcbiAgICByZXR1cm4gbmV3IFNRTChbdGhpc10pO1xuICB9XG59XG5mdW5jdGlvbiBuYW1lKHZhbHVlKSB7XG4gIHJldHVybiBuZXcgTmFtZSh2YWx1ZSk7XG59XG5mdW5jdGlvbiBpc0RyaXZlclZhbHVlRW5jb2Rlcih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsICYmIFwibWFwVG9Ecml2ZXJWYWx1ZVwiIGluIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS5tYXBUb0RyaXZlclZhbHVlID09PSBcImZ1bmN0aW9uXCI7XG59XG5jb25zdCBub29wRGVjb2RlciA9IHtcbiAgbWFwRnJvbURyaXZlclZhbHVlOiAodmFsdWUpID0+IHZhbHVlXG59O1xuY29uc3Qgbm9vcEVuY29kZXIgPSB7XG4gIG1hcFRvRHJpdmVyVmFsdWU6ICh2YWx1ZSkgPT4gdmFsdWVcbn07XG5jb25zdCBub29wTWFwcGVyID0ge1xuICAuLi5ub29wRGVjb2RlcixcbiAgLi4ubm9vcEVuY29kZXJcbn07XG5jbGFzcyBQYXJhbSB7XG4gIC8qKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQYXJhbWV0ZXIgdmFsdWVcbiAgICogQHBhcmFtIGVuY29kZXIgLSBFbmNvZGVyIHRvIGNvbnZlcnQgdGhlIHZhbHVlIHRvIGEgZHJpdmVyIHBhcmFtZXRlclxuICAgKi9cbiAgY29uc3RydWN0b3IodmFsdWUsIGVuY29kZXIgPSBub29wRW5jb2Rlcikge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmVuY29kZXIgPSBlbmNvZGVyO1xuICB9XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlBhcmFtXCI7XG4gIGJyYW5kO1xuICBnZXRTUUwoKSB7XG4gICAgcmV0dXJuIG5ldyBTUUwoW3RoaXNdKTtcbiAgfVxufVxuZnVuY3Rpb24gcGFyYW0odmFsdWUsIGVuY29kZXIpIHtcbiAgcmV0dXJuIG5ldyBQYXJhbSh2YWx1ZSwgZW5jb2Rlcik7XG59XG5mdW5jdGlvbiBzcWwoc3RyaW5ncywgLi4ucGFyYW1zKSB7XG4gIGNvbnN0IHF1ZXJ5Q2h1bmtzID0gW107XG4gIGlmIChwYXJhbXMubGVuZ3RoID4gMCB8fCBzdHJpbmdzLmxlbmd0aCA+IDAgJiYgc3RyaW5nc1swXSAhPT0gXCJcIikge1xuICAgIHF1ZXJ5Q2h1bmtzLnB1c2gobmV3IFN0cmluZ0NodW5rKHN0cmluZ3NbMF0pKTtcbiAgfVxuICBmb3IgKGNvbnN0IFtwYXJhbUluZGV4LCBwYXJhbTJdIG9mIHBhcmFtcy5lbnRyaWVzKCkpIHtcbiAgICBxdWVyeUNodW5rcy5wdXNoKHBhcmFtMiwgbmV3IFN0cmluZ0NodW5rKHN0cmluZ3NbcGFyYW1JbmRleCArIDFdKSk7XG4gIH1cbiAgcmV0dXJuIG5ldyBTUUwocXVlcnlDaHVua3MpO1xufVxuKChzcWwyKSA9PiB7XG4gIGZ1bmN0aW9uIGVtcHR5KCkge1xuICAgIHJldHVybiBuZXcgU1FMKFtdKTtcbiAgfVxuICBzcWwyLmVtcHR5ID0gZW1wdHk7XG4gIGZ1bmN0aW9uIGZyb21MaXN0KGxpc3QpIHtcbiAgICByZXR1cm4gbmV3IFNRTChsaXN0KTtcbiAgfVxuICBzcWwyLmZyb21MaXN0ID0gZnJvbUxpc3Q7XG4gIGZ1bmN0aW9uIHJhdyhzdHIpIHtcbiAgICByZXR1cm4gbmV3IFNRTChbbmV3IFN0cmluZ0NodW5rKHN0cildKTtcbiAgfVxuICBzcWwyLnJhdyA9IHJhdztcbiAgZnVuY3Rpb24gam9pbihjaHVua3MsIHNlcGFyYXRvcikge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAoY29uc3QgW2ksIGNodW5rXSBvZiBjaHVua3MuZW50cmllcygpKSB7XG4gICAgICBpZiAoaSA+IDAgJiYgc2VwYXJhdG9yICE9PSB2b2lkIDApIHtcbiAgICAgICAgcmVzdWx0LnB1c2goc2VwYXJhdG9yKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKGNodW5rKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBTUUwocmVzdWx0KTtcbiAgfVxuICBzcWwyLmpvaW4gPSBqb2luO1xuICBmdW5jdGlvbiBpZGVudGlmaWVyKHZhbHVlKSB7XG4gICAgcmV0dXJuIG5ldyBOYW1lKHZhbHVlKTtcbiAgfVxuICBzcWwyLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyO1xuICBmdW5jdGlvbiBwbGFjZWhvbGRlcjIobmFtZTIpIHtcbiAgICByZXR1cm4gbmV3IFBsYWNlaG9sZGVyKG5hbWUyKTtcbiAgfVxuICBzcWwyLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXIyO1xuICBmdW5jdGlvbiBwYXJhbTIodmFsdWUsIGVuY29kZXIpIHtcbiAgICByZXR1cm4gbmV3IFBhcmFtKHZhbHVlLCBlbmNvZGVyKTtcbiAgfVxuICBzcWwyLnBhcmFtID0gcGFyYW0yO1xufSkoc3FsIHx8IChzcWwgPSB7fSkpO1xuKChTUUwyKSA9PiB7XG4gIGNsYXNzIEFsaWFzZWQge1xuICAgIGNvbnN0cnVjdG9yKHNxbDIsIGZpZWxkQWxpYXMpIHtcbiAgICAgIHRoaXMuc3FsID0gc3FsMjtcbiAgICAgIHRoaXMuZmllbGRBbGlhcyA9IGZpZWxkQWxpYXM7XG4gICAgfVxuICAgIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTC5BbGlhc2VkXCI7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIGlzU2VsZWN0aW9uRmllbGQgPSBmYWxzZTtcbiAgICBnZXRTUUwoKSB7XG4gICAgICByZXR1cm4gdGhpcy5zcWw7XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBjbG9uZSgpIHtcbiAgICAgIHJldHVybiBuZXcgQWxpYXNlZCh0aGlzLnNxbCwgdGhpcy5maWVsZEFsaWFzKTtcbiAgICB9XG4gIH1cbiAgU1FMMi5BbGlhc2VkID0gQWxpYXNlZDtcbn0pKFNRTCB8fCAoU1FMID0ge30pKTtcbmNsYXNzIFBsYWNlaG9sZGVyIHtcbiAgY29uc3RydWN0b3IobmFtZTIpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lMjtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJQbGFjZWhvbGRlclwiO1xuICBnZXRTUUwoKSB7XG4gICAgcmV0dXJuIG5ldyBTUUwoW3RoaXNdKTtcbiAgfVxufVxuZnVuY3Rpb24gcGxhY2Vob2xkZXIobmFtZTIpIHtcbiAgcmV0dXJuIG5ldyBQbGFjZWhvbGRlcihuYW1lMik7XG59XG5mdW5jdGlvbiBmaWxsUGxhY2Vob2xkZXJzKHBhcmFtcywgdmFsdWVzKSB7XG4gIHJldHVybiBwYXJhbXMubWFwKChwKSA9PiB7XG4gICAgaWYgKGlzKHAsIFBsYWNlaG9sZGVyKSkge1xuICAgICAgaWYgKCEocC5uYW1lIGluIHZhbHVlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyB2YWx1ZSBmb3IgcGxhY2Vob2xkZXIgXCIke3AubmFtZX1cIiB3YXMgcHJvdmlkZWRgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXNbcC5uYW1lXTtcbiAgICB9XG4gICAgcmV0dXJuIHA7XG4gIH0pO1xufVxuY2xhc3MgVmlldyB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlZpZXdcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBbVmlld0Jhc2VDb25maWddO1xuICBjb25zdHJ1Y3Rvcih7IG5hbWU6IG5hbWUyLCBzY2hlbWEsIHNlbGVjdGVkRmllbGRzLCBxdWVyeSB9KSB7XG4gICAgdGhpc1tWaWV3QmFzZUNvbmZpZ10gPSB7XG4gICAgICBuYW1lOiBuYW1lMixcbiAgICAgIG9yaWdpbmFsTmFtZTogbmFtZTIsXG4gICAgICBzY2hlbWEsXG4gICAgICBzZWxlY3RlZEZpZWxkcyxcbiAgICAgIHF1ZXJ5LFxuICAgICAgaXNFeGlzdGluZzogIXF1ZXJ5LFxuICAgICAgaXNBbGlhczogZmFsc2VcbiAgICB9O1xuICB9XG4gIGdldFNRTCgpIHtcbiAgICByZXR1cm4gbmV3IFNRTChbdGhpc10pO1xuICB9XG59XG5Db2x1bW4ucHJvdG90eXBlLmdldFNRTCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFNRTChbdGhpc10pO1xufTtcblRhYmxlLnByb3RvdHlwZS5nZXRTUUwgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBTUUwoW3RoaXNdKTtcbn07XG5TdWJxdWVyeS5wcm90b3R5cGUuZ2V0U1FMID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgU1FMKFt0aGlzXSk7XG59O1xuZXhwb3J0IHtcbiAgRmFrZVByaW1pdGl2ZVBhcmFtLFxuICBOYW1lLFxuICBQYXJhbSxcbiAgUGxhY2Vob2xkZXIsXG4gIFNRTCxcbiAgU3RyaW5nQ2h1bmssXG4gIFZpZXcsXG4gIGZpbGxQbGFjZWhvbGRlcnMsXG4gIGlzRHJpdmVyVmFsdWVFbmNvZGVyLFxuICBpc1NRTFdyYXBwZXIsXG4gIG5hbWUsXG4gIG5vb3BEZWNvZGVyLFxuICBub29wRW5jb2RlcixcbiAgbm9vcE1hcHBlcixcbiAgcGFyYW0sXG4gIHBsYWNlaG9sZGVyLFxuICBzcWxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zcWwuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJpcyIsIlN1YnF1ZXJ5IiwiU3VicXVlcnlDb25maWciLCJ0cmFjZXIiLCJWaWV3QmFzZUNvbmZpZyIsIkNvbHVtbiIsIlRhYmxlIiwiRmFrZVByaW1pdGl2ZVBhcmFtIiwiaXNTUUxXcmFwcGVyIiwidmFsdWUiLCJnZXRTUUwiLCJtZXJnZVF1ZXJpZXMiLCJxdWVyaWVzIiwicmVzdWx0Iiwic3FsIiwicGFyYW1zIiwicXVlcnkiLCJwdXNoIiwidHlwaW5ncyIsImxlbmd0aCIsIlN0cmluZ0NodW5rIiwiY29uc3RydWN0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJTUUwiLCJxdWVyeUNodW5rcyIsImRlY29kZXIiLCJub29wRGVjb2RlciIsInNob3VsZElubGluZVBhcmFtcyIsImFwcGVuZCIsInRvUXVlcnkiLCJjb25maWciLCJzdGFydEFjdGl2ZVNwYW4iLCJzcGFuIiwiYnVpbGRRdWVyeUZyb21Tb3VyY2VQYXJhbXMiLCJzZXRBdHRyaWJ1dGVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNodW5rcyIsIl9jb25maWciLCJPYmplY3QiLCJhc3NpZ24iLCJpbmxpbmVQYXJhbXMiLCJwYXJhbVN0YXJ0SW5kZXgiLCJlc2NhcGVOYW1lIiwiZXNjYXBlUGFyYW0iLCJwcmVwYXJlVHlwaW5nIiwibWFwIiwiY2h1bmsiLCJqb2luIiwiTmFtZSIsImkiLCJwIiwiZW50cmllcyIsInNjaGVtYU5hbWUiLCJTeW1ib2wiLCJTY2hlbWEiLCJ0YWJsZU5hbWUiLCJ0YWJsZSIsIm5hbWUiLCJWaWV3Iiwic2NoZW1hIiwidmlld05hbWUiLCJQYXJhbSIsIm1hcHBlZFZhbHVlIiwiZW5jb2RlciIsIm1hcFRvRHJpdmVyVmFsdWUiLCJtYXBJbmxpbmVQYXJhbSIsIlBsYWNlaG9sZGVyIiwiQWxpYXNlZCIsImZpZWxkQWxpYXMiLCJpc1dpdGgiLCJhbGlhcyIsImVzY2FwZVN0cmluZyIsInRvU3RyaW5nIiwibWFwcGVkVmFsdWVBc1N0cmluZyIsIkVycm9yIiwiYXMiLCJtYXBXaXRoIiwibWFwRnJvbURyaXZlclZhbHVlIiwiaXNEcml2ZXJWYWx1ZUVuY29kZXIiLCJub29wRW5jb2RlciIsIm5vb3BNYXBwZXIiLCJwYXJhbSIsInN0cmluZ3MiLCJwYXJhbUluZGV4IiwicGFyYW0yIiwic3FsMiIsImVtcHR5IiwiZnJvbUxpc3QiLCJsaXN0IiwicmF3Iiwic3RyIiwic2VwYXJhdG9yIiwiaWRlbnRpZmllciIsInBsYWNlaG9sZGVyMiIsIm5hbWUyIiwicGxhY2Vob2xkZXIiLCJTUUwyIiwiaXNTZWxlY3Rpb25GaWVsZCIsImNsb25lIiwiZmlsbFBsYWNlaG9sZGVycyIsInZhbHVlcyIsInNlbGVjdGVkRmllbGRzIiwib3JpZ2luYWxOYW1lIiwiaXNFeGlzdGluZyIsImlzQWxpYXMiLCJwcm90b3R5cGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sql/sql.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/common.js":
-/*!********************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/columns/common.js ***!
- \********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteColumn: () => (/* binding */ SQLiteColumn),\n/* harmony export */ SQLiteColumnBuilder: () => (/* binding */ SQLiteColumnBuilder)\n/* harmony export */ });\n/* harmony import */ var _column_builder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../column-builder.js */ \"(rsc)/../../node_modules/drizzle-orm/column-builder.js\");\n/* harmony import */ var _column_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../column.js */ \"(rsc)/../../node_modules/drizzle-orm/column.js\");\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _foreign_keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../foreign-keys.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/foreign-keys.js\");\n/* harmony import */ var _unique_constraint_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../unique-constraint.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/unique-constraint.js\");\n\n\n\n\n\nclass SQLiteColumnBuilder extends _column_builder_js__WEBPACK_IMPORTED_MODULE_0__.ColumnBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteColumnBuilder\";\n }\n references(ref, actions = {}) {\n this.foreignKeyConfigs.push({\n ref,\n actions\n });\n return this;\n }\n unique(name) {\n this.config.isUnique = true;\n this.config.uniqueName = name;\n return this;\n }\n /** @internal */ buildForeignKeys(column, table) {\n return this.foreignKeyConfigs.map(({ ref, actions })=>{\n return ((ref2, actions2)=>{\n const builder = new _foreign_keys_js__WEBPACK_IMPORTED_MODULE_2__.ForeignKeyBuilder(()=>{\n const foreignColumn = ref2();\n return {\n columns: [\n column\n ],\n foreignColumns: [\n foreignColumn\n ]\n };\n });\n if (actions2.onUpdate) {\n builder.onUpdate(actions2.onUpdate);\n }\n if (actions2.onDelete) {\n builder.onDelete(actions2.onDelete);\n }\n return builder.build(table);\n })(ref, actions);\n });\n }\n constructor(...args){\n super(...args);\n this.foreignKeyConfigs = [];\n }\n}\nclass SQLiteColumn extends _column_js__WEBPACK_IMPORTED_MODULE_3__.Column {\n constructor(table, config){\n if (!config.uniqueName) {\n config.uniqueName = (0,_unique_constraint_js__WEBPACK_IMPORTED_MODULE_4__.uniqueKeyName)(table, [\n config.name\n ]);\n }\n super(table, config);\n this.table = table;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteColumn\";\n }\n}\n //# sourceMappingURL=common.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2NvbHVtbnMvY29tbW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBd0Q7QUFDZjtBQUNJO0FBQ1U7QUFDQztBQUN4RCxNQUFNSyw0QkFBNEJMLDZEQUFhQTs7WUFDdEMsQ0FBQ0Usa0RBQVVBLENBQUMsR0FBRzs7SUFFdEJJLFdBQVdDLEdBQUcsRUFBRUMsVUFBVSxDQUFDLENBQUMsRUFBRTtRQUM1QixJQUFJLENBQUNDLGlCQUFpQixDQUFDQyxJQUFJLENBQUM7WUFBRUg7WUFBS0M7UUFBUTtRQUMzQyxPQUFPLElBQUk7SUFDYjtJQUNBRyxPQUFPQyxJQUFJLEVBQUU7UUFDWCxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxHQUFHO1FBQ3ZCLElBQUksQ0FBQ0QsTUFBTSxDQUFDRSxVQUFVLEdBQUdIO1FBQ3pCLE9BQU8sSUFBSTtJQUNiO0lBQ0EsY0FBYyxHQUNkSSxpQkFBaUJDLE1BQU0sRUFBRUMsS0FBSyxFQUFFO1FBQzlCLE9BQU8sSUFBSSxDQUFDVCxpQkFBaUIsQ0FBQ1UsR0FBRyxDQUFDLENBQUMsRUFBRVosR0FBRyxFQUFFQyxPQUFPLEVBQUU7WUFDakQsT0FBTyxDQUFDLENBQUNZLE1BQU1DO2dCQUNiLE1BQU1DLFVBQVUsSUFBSW5CLCtEQUFpQkEsQ0FBQztvQkFDcEMsTUFBTW9CLGdCQUFnQkg7b0JBQ3RCLE9BQU87d0JBQUVJLFNBQVM7NEJBQUNQO3lCQUFPO3dCQUFFUSxnQkFBZ0I7NEJBQUNGO3lCQUFjO29CQUFDO2dCQUM5RDtnQkFDQSxJQUFJRixTQUFTSyxRQUFRLEVBQUU7b0JBQ3JCSixRQUFRSSxRQUFRLENBQUNMLFNBQVNLLFFBQVE7Z0JBQ3BDO2dCQUNBLElBQUlMLFNBQVNNLFFBQVEsRUFBRTtvQkFDckJMLFFBQVFLLFFBQVEsQ0FBQ04sU0FBU00sUUFBUTtnQkFDcEM7Z0JBQ0EsT0FBT0wsUUFBUU0sS0FBSyxDQUFDVjtZQUN2QixHQUFHWCxLQUFLQztRQUNWO0lBQ0Y7OzthQTNCQUMsb0JBQW9CLEVBQUU7O0FBNEJ4QjtBQUNBLE1BQU1vQixxQkFBcUI1Qiw4Q0FBTUE7SUFDL0I2QixZQUFZWixLQUFLLEVBQUVMLE1BQU0sQ0FBRTtRQUN6QixJQUFJLENBQUNBLE9BQU9FLFVBQVUsRUFBRTtZQUN0QkYsT0FBT0UsVUFBVSxHQUFHWCxvRUFBYUEsQ0FBQ2MsT0FBTztnQkFBQ0wsT0FBT0QsSUFBSTthQUFDO1FBQ3hEO1FBQ0EsS0FBSyxDQUFDTSxPQUFPTDtRQUNiLElBQUksQ0FBQ0ssS0FBSyxHQUFHQTtJQUNmOztZQUNPLENBQUNoQixrREFBVUEsQ0FBQyxHQUFHOztBQUN4QjtBQUlFLENBQ0Ysa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUvY29sdW1ucy9jb21tb24uanM/NjBiNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW5CdWlsZGVyIH0gZnJvbSBcIi4uLy4uL2NvbHVtbi1idWlsZGVyLmpzXCI7XG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tIFwiLi4vLi4vY29sdW1uLmpzXCI7XG5pbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4uLy4uL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgRm9yZWlnbktleUJ1aWxkZXIgfSBmcm9tIFwiLi4vZm9yZWlnbi1rZXlzLmpzXCI7XG5pbXBvcnQgeyB1bmlxdWVLZXlOYW1lIH0gZnJvbSBcIi4uL3VuaXF1ZS1jb25zdHJhaW50LmpzXCI7XG5jbGFzcyBTUUxpdGVDb2x1bW5CdWlsZGVyIGV4dGVuZHMgQ29sdW1uQnVpbGRlciB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZUNvbHVtbkJ1aWxkZXJcIjtcbiAgZm9yZWlnbktleUNvbmZpZ3MgPSBbXTtcbiAgcmVmZXJlbmNlcyhyZWYsIGFjdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuZm9yZWlnbktleUNvbmZpZ3MucHVzaCh7IHJlZiwgYWN0aW9ucyB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB1bmlxdWUobmFtZSkge1xuICAgIHRoaXMuY29uZmlnLmlzVW5pcXVlID0gdHJ1ZTtcbiAgICB0aGlzLmNvbmZpZy51bmlxdWVOYW1lID0gbmFtZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIGJ1aWxkRm9yZWlnbktleXMoY29sdW1uLCB0YWJsZSkge1xuICAgIHJldHVybiB0aGlzLmZvcmVpZ25LZXlDb25maWdzLm1hcCgoeyByZWYsIGFjdGlvbnMgfSkgPT4ge1xuICAgICAgcmV0dXJuICgocmVmMiwgYWN0aW9uczIpID0+IHtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBGb3JlaWduS2V5QnVpbGRlcigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZm9yZWlnbkNvbHVtbiA9IHJlZjIoKTtcbiAgICAgICAgICByZXR1cm4geyBjb2x1bW5zOiBbY29sdW1uXSwgZm9yZWlnbkNvbHVtbnM6IFtmb3JlaWduQ29sdW1uXSB9O1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGFjdGlvbnMyLm9uVXBkYXRlKSB7XG4gICAgICAgICAgYnVpbGRlci5vblVwZGF0ZShhY3Rpb25zMi5vblVwZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbnMyLm9uRGVsZXRlKSB7XG4gICAgICAgICAgYnVpbGRlci5vbkRlbGV0ZShhY3Rpb25zMi5vbkRlbGV0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYnVpbGQodGFibGUpO1xuICAgICAgfSkocmVmLCBhY3Rpb25zKTtcbiAgICB9KTtcbiAgfVxufVxuY2xhc3MgU1FMaXRlQ29sdW1uIGV4dGVuZHMgQ29sdW1uIHtcbiAgY29uc3RydWN0b3IodGFibGUsIGNvbmZpZykge1xuICAgIGlmICghY29uZmlnLnVuaXF1ZU5hbWUpIHtcbiAgICAgIGNvbmZpZy51bmlxdWVOYW1lID0gdW5pcXVlS2V5TmFtZSh0YWJsZSwgW2NvbmZpZy5uYW1lXSk7XG4gICAgfVxuICAgIHN1cGVyKHRhYmxlLCBjb25maWcpO1xuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVDb2x1bW5cIjtcbn1cbmV4cG9ydCB7XG4gIFNRTGl0ZUNvbHVtbixcbiAgU1FMaXRlQ29sdW1uQnVpbGRlclxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbW1vbi5qcy5tYXAiXSwibmFtZXMiOlsiQ29sdW1uQnVpbGRlciIsIkNvbHVtbiIsImVudGl0eUtpbmQiLCJGb3JlaWduS2V5QnVpbGRlciIsInVuaXF1ZUtleU5hbWUiLCJTUUxpdGVDb2x1bW5CdWlsZGVyIiwicmVmZXJlbmNlcyIsInJlZiIsImFjdGlvbnMiLCJmb3JlaWduS2V5Q29uZmlncyIsInB1c2giLCJ1bmlxdWUiLCJuYW1lIiwiY29uZmlnIiwiaXNVbmlxdWUiLCJ1bmlxdWVOYW1lIiwiYnVpbGRGb3JlaWduS2V5cyIsImNvbHVtbiIsInRhYmxlIiwibWFwIiwicmVmMiIsImFjdGlvbnMyIiwiYnVpbGRlciIsImZvcmVpZ25Db2x1bW4iLCJjb2x1bW5zIiwiZm9yZWlnbkNvbHVtbnMiLCJvblVwZGF0ZSIsIm9uRGVsZXRlIiwiYnVpbGQiLCJTUUxpdGVDb2x1bW4iLCJjb25zdHJ1Y3RvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/common.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/integer.js":
-/*!*********************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/columns/integer.js ***!
- \*********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteBaseInteger: () => (/* binding */ SQLiteBaseInteger),\n/* harmony export */ SQLiteBaseIntegerBuilder: () => (/* binding */ SQLiteBaseIntegerBuilder),\n/* harmony export */ SQLiteBoolean: () => (/* binding */ SQLiteBoolean),\n/* harmony export */ SQLiteBooleanBuilder: () => (/* binding */ SQLiteBooleanBuilder),\n/* harmony export */ SQLiteInteger: () => (/* binding */ SQLiteInteger),\n/* harmony export */ SQLiteIntegerBuilder: () => (/* binding */ SQLiteIntegerBuilder),\n/* harmony export */ SQLiteTimestamp: () => (/* binding */ SQLiteTimestamp),\n/* harmony export */ SQLiteTimestampBuilder: () => (/* binding */ SQLiteTimestampBuilder),\n/* harmony export */ int: () => (/* binding */ int),\n/* harmony export */ integer: () => (/* binding */ integer)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/common.js\");\n\n\n\nclass SQLiteBaseIntegerBuilder extends _common_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteColumnBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteBaseIntegerBuilder\";\n }\n constructor(name, dataType, columnType){\n super(name, dataType, columnType);\n this.config.autoIncrement = false;\n }\n primaryKey(config) {\n if (config?.autoIncrement) {\n this.config.autoIncrement = true;\n }\n this.config.hasDefault = true;\n return super.primaryKey();\n }\n}\nclass SQLiteBaseInteger extends _common_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteColumn {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteBaseInteger\";\n }\n getSQLType() {\n return \"integer\";\n }\n constructor(...args){\n super(...args);\n this.autoIncrement = this.config.autoIncrement;\n }\n}\nclass SQLiteIntegerBuilder extends SQLiteBaseIntegerBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteIntegerBuilder\";\n }\n constructor(name){\n super(name, \"number\", \"SQLiteInteger\");\n }\n build(table) {\n return new SQLiteInteger(table, this.config);\n }\n}\nclass SQLiteInteger extends SQLiteBaseInteger {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteInteger\";\n }\n}\nclass SQLiteTimestampBuilder extends SQLiteBaseIntegerBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteTimestampBuilder\";\n }\n constructor(name, mode){\n super(name, \"date\", \"SQLiteTimestamp\");\n this.config.mode = mode;\n }\n /**\n * @deprecated Use `default()` with your own expression instead.\n *\n * Adds `DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer))` to the column, which is the current epoch timestamp in milliseconds.\n */ defaultNow() {\n return this.default(_sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`);\n }\n build(table) {\n return new SQLiteTimestamp(table, this.config);\n }\n}\nclass SQLiteTimestamp extends SQLiteBaseInteger {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteTimestamp\";\n }\n mapFromDriverValue(value) {\n if (this.config.mode === \"timestamp\") {\n return new Date(value * 1e3);\n }\n return new Date(value);\n }\n mapToDriverValue(value) {\n const unix = value.getTime();\n if (this.config.mode === \"timestamp\") {\n return Math.floor(unix / 1e3);\n }\n return unix;\n }\n constructor(...args){\n super(...args);\n this.mode = this.config.mode;\n }\n}\nclass SQLiteBooleanBuilder extends SQLiteBaseIntegerBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteBooleanBuilder\";\n }\n constructor(name, mode){\n super(name, \"boolean\", \"SQLiteBoolean\");\n this.config.mode = mode;\n }\n build(table) {\n return new SQLiteBoolean(table, this.config);\n }\n}\nclass SQLiteBoolean extends SQLiteBaseInteger {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteBoolean\";\n }\n mapFromDriverValue(value) {\n return Number(value) === 1;\n }\n mapToDriverValue(value) {\n return value ? 1 : 0;\n }\n constructor(...args){\n super(...args);\n this.mode = this.config.mode;\n }\n}\nfunction integer(name, config) {\n if (config?.mode === \"timestamp\" || config?.mode === \"timestamp_ms\") {\n return new SQLiteTimestampBuilder(name, config.mode);\n }\n if (config?.mode === \"boolean\") {\n return new SQLiteBooleanBuilder(name, config.mode);\n }\n return new SQLiteIntegerBuilder(name);\n}\nconst int = integer;\n //# sourceMappingURL=integer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2NvbHVtbnMvaW50ZWdlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQTZDO0FBQ047QUFDeUI7QUFDaEUsTUFBTUksaUNBQWlDRCwyREFBbUJBOztZQUNqRCxDQUFDSCxrREFBVUEsQ0FBQyxHQUFHOztJQUN0QkssWUFBWUMsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsQ0FBRTtRQUN0QyxLQUFLLENBQUNGLE1BQU1DLFVBQVVDO1FBQ3RCLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxhQUFhLEdBQUc7SUFDOUI7SUFDQUMsV0FBV0YsTUFBTSxFQUFFO1FBQ2pCLElBQUlBLFFBQVFDLGVBQWU7WUFDekIsSUFBSSxDQUFDRCxNQUFNLENBQUNDLGFBQWEsR0FBRztRQUM5QjtRQUNBLElBQUksQ0FBQ0QsTUFBTSxDQUFDRyxVQUFVLEdBQUc7UUFDekIsT0FBTyxLQUFLLENBQUNEO0lBQ2Y7QUFDRjtBQUNBLE1BQU1FLDBCQUEwQlgsb0RBQVlBOztZQUNuQyxDQUFDRixrREFBVUEsQ0FBQyxHQUFHOztJQUV0QmMsYUFBYTtRQUNYLE9BQU87SUFDVDs7O2FBSEFKLGdCQUFnQixJQUFJLENBQUNELE1BQU0sQ0FBQ0MsYUFBYTs7QUFJM0M7QUFDQSxNQUFNSyw2QkFBNkJYOztZQUMxQixDQUFDSixrREFBVUEsQ0FBQyxHQUFHOztJQUN0QkssWUFBWUMsSUFBSSxDQUFFO1FBQ2hCLEtBQUssQ0FBQ0EsTUFBTSxVQUFVO0lBQ3hCO0lBQ0FVLE1BQU1DLEtBQUssRUFBRTtRQUNYLE9BQU8sSUFBSUMsY0FDVEQsT0FDQSxJQUFJLENBQUNSLE1BQU07SUFFZjtBQUNGO0FBQ0EsTUFBTVMsc0JBQXNCTDs7WUFDbkIsQ0FBQ2Isa0RBQVVBLENBQUMsR0FBRzs7QUFDeEI7QUFDQSxNQUFNbUIsK0JBQStCZjs7WUFDNUIsQ0FBQ0osa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJLLFlBQVlDLElBQUksRUFBRWMsSUFBSSxDQUFFO1FBQ3RCLEtBQUssQ0FBQ2QsTUFBTSxRQUFRO1FBQ3BCLElBQUksQ0FBQ0csTUFBTSxDQUFDVyxJQUFJLEdBQUdBO0lBQ3JCO0lBQ0E7Ozs7R0FJQyxHQUNEQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNDLE9BQU8sQ0FBQ3JCLDRDQUFHLENBQUMsMERBQTBELENBQUM7SUFDckY7SUFDQWUsTUFBTUMsS0FBSyxFQUFFO1FBQ1gsT0FBTyxJQUFJTSxnQkFDVE4sT0FDQSxJQUFJLENBQUNSLE1BQU07SUFFZjtBQUNGO0FBQ0EsTUFBTWMsd0JBQXdCVjs7WUFDckIsQ0FBQ2Isa0RBQVVBLENBQUMsR0FBRzs7SUFFdEJ3QixtQkFBbUJDLEtBQUssRUFBRTtRQUN4QixJQUFJLElBQUksQ0FBQ2hCLE1BQU0sQ0FBQ1csSUFBSSxLQUFLLGFBQWE7WUFDcEMsT0FBTyxJQUFJTSxLQUFLRCxRQUFRO1FBQzFCO1FBQ0EsT0FBTyxJQUFJQyxLQUFLRDtJQUNsQjtJQUNBRSxpQkFBaUJGLEtBQUssRUFBRTtRQUN0QixNQUFNRyxPQUFPSCxNQUFNSSxPQUFPO1FBQzFCLElBQUksSUFBSSxDQUFDcEIsTUFBTSxDQUFDVyxJQUFJLEtBQUssYUFBYTtZQUNwQyxPQUFPVSxLQUFLQyxLQUFLLENBQUNILE9BQU87UUFDM0I7UUFDQSxPQUFPQTtJQUNUOzs7YUFiQVIsT0FBTyxJQUFJLENBQUNYLE1BQU0sQ0FBQ1csSUFBSTs7QUFjekI7QUFDQSxNQUFNWSw2QkFBNkI1Qjs7WUFDMUIsQ0FBQ0osa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJLLFlBQVlDLElBQUksRUFBRWMsSUFBSSxDQUFFO1FBQ3RCLEtBQUssQ0FBQ2QsTUFBTSxXQUFXO1FBQ3ZCLElBQUksQ0FBQ0csTUFBTSxDQUFDVyxJQUFJLEdBQUdBO0lBQ3JCO0lBQ0FKLE1BQU1DLEtBQUssRUFBRTtRQUNYLE9BQU8sSUFBSWdCLGNBQ1RoQixPQUNBLElBQUksQ0FBQ1IsTUFBTTtJQUVmO0FBQ0Y7QUFDQSxNQUFNd0Isc0JBQXNCcEI7O1lBQ25CLENBQUNiLGtEQUFVQSxDQUFDLEdBQUc7O0lBRXRCd0IsbUJBQW1CQyxLQUFLLEVBQUU7UUFDeEIsT0FBT1MsT0FBT1QsV0FBVztJQUMzQjtJQUNBRSxpQkFBaUJGLEtBQUssRUFBRTtRQUN0QixPQUFPQSxRQUFRLElBQUk7SUFDckI7OzthQU5BTCxPQUFPLElBQUksQ0FBQ1gsTUFBTSxDQUFDVyxJQUFJOztBQU96QjtBQUNBLFNBQVNlLFFBQVE3QixJQUFJLEVBQUVHLE1BQU07SUFDM0IsSUFBSUEsUUFBUVcsU0FBUyxlQUFlWCxRQUFRVyxTQUFTLGdCQUFnQjtRQUNuRSxPQUFPLElBQUlELHVCQUF1QmIsTUFBTUcsT0FBT1csSUFBSTtJQUNyRDtJQUNBLElBQUlYLFFBQVFXLFNBQVMsV0FBVztRQUM5QixPQUFPLElBQUlZLHFCQUFxQjFCLE1BQU1HLE9BQU9XLElBQUk7SUFDbkQ7SUFDQSxPQUFPLElBQUlMLHFCQUFxQlQ7QUFDbEM7QUFDQSxNQUFNOEIsTUFBTUQ7QUFZVixDQUNGLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2NvbHVtbnMvaW50ZWdlci5qcz8zMmVlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgeyBzcWwgfSBmcm9tIFwiLi4vLi4vc3FsL3NxbC5qc1wiO1xuaW1wb3J0IHsgU1FMaXRlQ29sdW1uLCBTUUxpdGVDb2x1bW5CdWlsZGVyIH0gZnJvbSBcIi4vY29tbW9uLmpzXCI7XG5jbGFzcyBTUUxpdGVCYXNlSW50ZWdlckJ1aWxkZXIgZXh0ZW5kcyBTUUxpdGVDb2x1bW5CdWlsZGVyIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlQmFzZUludGVnZXJCdWlsZGVyXCI7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIGRhdGFUeXBlLCBjb2x1bW5UeXBlKSB7XG4gICAgc3VwZXIobmFtZSwgZGF0YVR5cGUsIGNvbHVtblR5cGUpO1xuICAgIHRoaXMuY29uZmlnLmF1dG9JbmNyZW1lbnQgPSBmYWxzZTtcbiAgfVxuICBwcmltYXJ5S2V5KGNvbmZpZykge1xuICAgIGlmIChjb25maWc/LmF1dG9JbmNyZW1lbnQpIHtcbiAgICAgIHRoaXMuY29uZmlnLmF1dG9JbmNyZW1lbnQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpZy5oYXNEZWZhdWx0ID0gdHJ1ZTtcbiAgICByZXR1cm4gc3VwZXIucHJpbWFyeUtleSgpO1xuICB9XG59XG5jbGFzcyBTUUxpdGVCYXNlSW50ZWdlciBleHRlbmRzIFNRTGl0ZUNvbHVtbiB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZUJhc2VJbnRlZ2VyXCI7XG4gIGF1dG9JbmNyZW1lbnQgPSB0aGlzLmNvbmZpZy5hdXRvSW5jcmVtZW50O1xuICBnZXRTUUxUeXBlKCkge1xuICAgIHJldHVybiBcImludGVnZXJcIjtcbiAgfVxufVxuY2xhc3MgU1FMaXRlSW50ZWdlckJ1aWxkZXIgZXh0ZW5kcyBTUUxpdGVCYXNlSW50ZWdlckJ1aWxkZXIge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVJbnRlZ2VyQnVpbGRlclwiO1xuICBjb25zdHJ1Y3RvcihuYW1lKSB7XG4gICAgc3VwZXIobmFtZSwgXCJudW1iZXJcIiwgXCJTUUxpdGVJbnRlZ2VyXCIpO1xuICB9XG4gIGJ1aWxkKHRhYmxlKSB7XG4gICAgcmV0dXJuIG5ldyBTUUxpdGVJbnRlZ2VyKFxuICAgICAgdGFibGUsXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG4gIH1cbn1cbmNsYXNzIFNRTGl0ZUludGVnZXIgZXh0ZW5kcyBTUUxpdGVCYXNlSW50ZWdlciB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZUludGVnZXJcIjtcbn1cbmNsYXNzIFNRTGl0ZVRpbWVzdGFtcEJ1aWxkZXIgZXh0ZW5kcyBTUUxpdGVCYXNlSW50ZWdlckJ1aWxkZXIge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVUaW1lc3RhbXBCdWlsZGVyXCI7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIG1vZGUpIHtcbiAgICBzdXBlcihuYW1lLCBcImRhdGVcIiwgXCJTUUxpdGVUaW1lc3RhbXBcIik7XG4gICAgdGhpcy5jb25maWcubW9kZSA9IG1vZGU7XG4gIH1cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZGVmYXVsdCgpYCB3aXRoIHlvdXIgb3duIGV4cHJlc3Npb24gaW5zdGVhZC5cbiAgICpcbiAgICogQWRkcyBgREVGQVVMVCAoY2FzdCgoanVsaWFuZGF5KCdub3cnKSAtIDI0NDA1ODcuNSkqODY0MDAwMDAgYXMgaW50ZWdlcikpYCB0byB0aGUgY29sdW1uLCB3aGljaCBpcyB0aGUgY3VycmVudCBlcG9jaCB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgZGVmYXVsdE5vdygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0KHNxbGAoY2FzdCgoanVsaWFuZGF5KCdub3cnKSAtIDI0NDA1ODcuNSkqODY0MDAwMDAgYXMgaW50ZWdlcikpYCk7XG4gIH1cbiAgYnVpbGQodGFibGUpIHtcbiAgICByZXR1cm4gbmV3IFNRTGl0ZVRpbWVzdGFtcChcbiAgICAgIHRhYmxlLFxuICAgICAgdGhpcy5jb25maWdcbiAgICApO1xuICB9XG59XG5jbGFzcyBTUUxpdGVUaW1lc3RhbXAgZXh0ZW5kcyBTUUxpdGVCYXNlSW50ZWdlciB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVRpbWVzdGFtcFwiO1xuICBtb2RlID0gdGhpcy5jb25maWcubW9kZTtcbiAgbWFwRnJvbURyaXZlclZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT09IFwidGltZXN0YW1wXCIpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSAqIDFlMyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH1cbiAgbWFwVG9Ecml2ZXJWYWx1ZSh2YWx1ZSkge1xuICAgIGNvbnN0IHVuaXggPSB2YWx1ZS5nZXRUaW1lKCk7XG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT09IFwidGltZXN0YW1wXCIpIHtcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKHVuaXggLyAxZTMpO1xuICAgIH1cbiAgICByZXR1cm4gdW5peDtcbiAgfVxufVxuY2xhc3MgU1FMaXRlQm9vbGVhbkJ1aWxkZXIgZXh0ZW5kcyBTUUxpdGVCYXNlSW50ZWdlckJ1aWxkZXIge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVCb29sZWFuQnVpbGRlclwiO1xuICBjb25zdHJ1Y3RvcihuYW1lLCBtb2RlKSB7XG4gICAgc3VwZXIobmFtZSwgXCJib29sZWFuXCIsIFwiU1FMaXRlQm9vbGVhblwiKTtcbiAgICB0aGlzLmNvbmZpZy5tb2RlID0gbW9kZTtcbiAgfVxuICBidWlsZCh0YWJsZSkge1xuICAgIHJldHVybiBuZXcgU1FMaXRlQm9vbGVhbihcbiAgICAgIHRhYmxlLFxuICAgICAgdGhpcy5jb25maWdcbiAgICApO1xuICB9XG59XG5jbGFzcyBTUUxpdGVCb29sZWFuIGV4dGVuZHMgU1FMaXRlQmFzZUludGVnZXIge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVCb29sZWFuXCI7XG4gIG1vZGUgPSB0aGlzLmNvbmZpZy5tb2RlO1xuICBtYXBGcm9tRHJpdmVyVmFsdWUodmFsdWUpIHtcbiAgICByZXR1cm4gTnVtYmVyKHZhbHVlKSA9PT0gMTtcbiAgfVxuICBtYXBUb0RyaXZlclZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gMSA6IDA7XG4gIH1cbn1cbmZ1bmN0aW9uIGludGVnZXIobmFtZSwgY29uZmlnKSB7XG4gIGlmIChjb25maWc/Lm1vZGUgPT09IFwidGltZXN0YW1wXCIgfHwgY29uZmlnPy5tb2RlID09PSBcInRpbWVzdGFtcF9tc1wiKSB7XG4gICAgcmV0dXJuIG5ldyBTUUxpdGVUaW1lc3RhbXBCdWlsZGVyKG5hbWUsIGNvbmZpZy5tb2RlKTtcbiAgfVxuICBpZiAoY29uZmlnPy5tb2RlID09PSBcImJvb2xlYW5cIikge1xuICAgIHJldHVybiBuZXcgU1FMaXRlQm9vbGVhbkJ1aWxkZXIobmFtZSwgY29uZmlnLm1vZGUpO1xuICB9XG4gIHJldHVybiBuZXcgU1FMaXRlSW50ZWdlckJ1aWxkZXIobmFtZSk7XG59XG5jb25zdCBpbnQgPSBpbnRlZ2VyO1xuZXhwb3J0IHtcbiAgU1FMaXRlQmFzZUludGVnZXIsXG4gIFNRTGl0ZUJhc2VJbnRlZ2VyQnVpbGRlcixcbiAgU1FMaXRlQm9vbGVhbixcbiAgU1FMaXRlQm9vbGVhbkJ1aWxkZXIsXG4gIFNRTGl0ZUludGVnZXIsXG4gIFNRTGl0ZUludGVnZXJCdWlsZGVyLFxuICBTUUxpdGVUaW1lc3RhbXAsXG4gIFNRTGl0ZVRpbWVzdGFtcEJ1aWxkZXIsXG4gIGludCxcbiAgaW50ZWdlclxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVnZXIuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJzcWwiLCJTUUxpdGVDb2x1bW4iLCJTUUxpdGVDb2x1bW5CdWlsZGVyIiwiU1FMaXRlQmFzZUludGVnZXJCdWlsZGVyIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZGF0YVR5cGUiLCJjb2x1bW5UeXBlIiwiY29uZmlnIiwiYXV0b0luY3JlbWVudCIsInByaW1hcnlLZXkiLCJoYXNEZWZhdWx0IiwiU1FMaXRlQmFzZUludGVnZXIiLCJnZXRTUUxUeXBlIiwiU1FMaXRlSW50ZWdlckJ1aWxkZXIiLCJidWlsZCIsInRhYmxlIiwiU1FMaXRlSW50ZWdlciIsIlNRTGl0ZVRpbWVzdGFtcEJ1aWxkZXIiLCJtb2RlIiwiZGVmYXVsdE5vdyIsImRlZmF1bHQiLCJTUUxpdGVUaW1lc3RhbXAiLCJtYXBGcm9tRHJpdmVyVmFsdWUiLCJ2YWx1ZSIsIkRhdGUiLCJtYXBUb0RyaXZlclZhbHVlIiwidW5peCIsImdldFRpbWUiLCJNYXRoIiwiZmxvb3IiLCJTUUxpdGVCb29sZWFuQnVpbGRlciIsIlNRTGl0ZUJvb2xlYW4iLCJOdW1iZXIiLCJpbnRlZ2VyIiwiaW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/integer.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/text.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/columns/text.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteText: () => (/* binding */ SQLiteText),\n/* harmony export */ SQLiteTextBuilder: () => (/* binding */ SQLiteTextBuilder),\n/* harmony export */ SQLiteTextJson: () => (/* binding */ SQLiteTextJson),\n/* harmony export */ SQLiteTextJsonBuilder: () => (/* binding */ SQLiteTextJsonBuilder),\n/* harmony export */ text: () => (/* binding */ text)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/common.js\");\n\n\nclass SQLiteTextBuilder extends _common_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteColumnBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteTextBuilder\";\n }\n constructor(name, config){\n super(name, \"string\", \"SQLiteText\");\n this.config.enumValues = config.enum;\n this.config.length = config.length;\n }\n /** @internal */ build(table) {\n return new SQLiteText(table, this.config);\n }\n}\nclass SQLiteText extends _common_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteColumn {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteText\";\n }\n constructor(table, config){\n super(table, config);\n this.enumValues = this.config.enumValues;\n this.length = this.config.length;\n }\n getSQLType() {\n return `text${this.config.length ? `(${this.config.length})` : \"\"}`;\n }\n}\nclass SQLiteTextJsonBuilder extends _common_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteColumnBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteTextJsonBuilder\";\n }\n constructor(name){\n super(name, \"json\", \"SQLiteTextJson\");\n }\n /** @internal */ build(table) {\n return new SQLiteTextJson(table, this.config);\n }\n}\nclass SQLiteTextJson extends _common_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteColumn {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteTextJson\";\n }\n getSQLType() {\n return \"text\";\n }\n mapFromDriverValue(value) {\n return JSON.parse(value);\n }\n mapToDriverValue(value) {\n return JSON.stringify(value);\n }\n}\nfunction text(name, config = {}) {\n return config.mode === \"json\" ? new SQLiteTextJsonBuilder(name) : new SQLiteTextBuilder(name, config);\n}\n //# sourceMappingURL=text.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2NvbHVtbnMvdGV4dC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTZDO0FBQ21CO0FBQ2hFLE1BQU1HLDBCQUEwQkQsMkRBQW1CQTs7WUFDMUMsQ0FBQ0Ysa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJJLFlBQVlDLElBQUksRUFBRUMsTUFBTSxDQUFFO1FBQ3hCLEtBQUssQ0FBQ0QsTUFBTSxVQUFVO1FBQ3RCLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxVQUFVLEdBQUdELE9BQU9FLElBQUk7UUFDcEMsSUFBSSxDQUFDRixNQUFNLENBQUNHLE1BQU0sR0FBR0gsT0FBT0csTUFBTTtJQUNwQztJQUNBLGNBQWMsR0FDZEMsTUFBTUMsS0FBSyxFQUFFO1FBQ1gsT0FBTyxJQUFJQyxXQUFXRCxPQUFPLElBQUksQ0FBQ0wsTUFBTTtJQUMxQztBQUNGO0FBQ0EsTUFBTU0sbUJBQW1CWCxvREFBWUE7O1lBQzVCLENBQUNELGtEQUFVQSxDQUFDLEdBQUc7O0lBR3RCSSxZQUFZTyxLQUFLLEVBQUVMLE1BQU0sQ0FBRTtRQUN6QixLQUFLLENBQUNLLE9BQU9MO2FBSGZDLGFBQWEsSUFBSSxDQUFDRCxNQUFNLENBQUNDLFVBQVU7YUFDbkNFLFNBQVMsSUFBSSxDQUFDSCxNQUFNLENBQUNHLE1BQU07SUFHM0I7SUFDQUksYUFBYTtRQUNYLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDUCxNQUFNLENBQUNHLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNILE1BQU0sQ0FBQ0csTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNyRTtBQUNGO0FBQ0EsTUFBTUssOEJBQThCWiwyREFBbUJBOztZQUM5QyxDQUFDRixrREFBVUEsQ0FBQyxHQUFHOztJQUN0QkksWUFBWUMsSUFBSSxDQUFFO1FBQ2hCLEtBQUssQ0FBQ0EsTUFBTSxRQUFRO0lBQ3RCO0lBQ0EsY0FBYyxHQUNkSyxNQUFNQyxLQUFLLEVBQUU7UUFDWCxPQUFPLElBQUlJLGVBQ1RKLE9BQ0EsSUFBSSxDQUFDTCxNQUFNO0lBRWY7QUFDRjtBQUNBLE1BQU1TLHVCQUF1QmQsb0RBQVlBOztZQUNoQyxDQUFDRCxrREFBVUEsQ0FBQyxHQUFHOztJQUN0QmEsYUFBYTtRQUNYLE9BQU87SUFDVDtJQUNBRyxtQkFBbUJDLEtBQUssRUFBRTtRQUN4QixPQUFPQyxLQUFLQyxLQUFLLENBQUNGO0lBQ3BCO0lBQ0FHLGlCQUFpQkgsS0FBSyxFQUFFO1FBQ3RCLE9BQU9DLEtBQUtHLFNBQVMsQ0FBQ0o7SUFDeEI7QUFDRjtBQUNBLFNBQVNLLEtBQUtqQixJQUFJLEVBQUVDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLE9BQU9BLE9BQU9pQixJQUFJLEtBQUssU0FBUyxJQUFJVCxzQkFBc0JULFFBQVEsSUFBSUYsa0JBQWtCRSxNQUFNQztBQUNoRztBQU9FLENBQ0YsZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUvY29sdW1ucy90ZXh0LmpzPzNhZGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW50aXR5S2luZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IFNRTGl0ZUNvbHVtbiwgU1FMaXRlQ29sdW1uQnVpbGRlciB9IGZyb20gXCIuL2NvbW1vbi5qc1wiO1xuY2xhc3MgU1FMaXRlVGV4dEJ1aWxkZXIgZXh0ZW5kcyBTUUxpdGVDb2x1bW5CdWlsZGVyIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlVGV4dEJ1aWxkZXJcIjtcbiAgY29uc3RydWN0b3IobmFtZSwgY29uZmlnKSB7XG4gICAgc3VwZXIobmFtZSwgXCJzdHJpbmdcIiwgXCJTUUxpdGVUZXh0XCIpO1xuICAgIHRoaXMuY29uZmlnLmVudW1WYWx1ZXMgPSBjb25maWcuZW51bTtcbiAgICB0aGlzLmNvbmZpZy5sZW5ndGggPSBjb25maWcubGVuZ3RoO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgYnVpbGQodGFibGUpIHtcbiAgICByZXR1cm4gbmV3IFNRTGl0ZVRleHQodGFibGUsIHRoaXMuY29uZmlnKTtcbiAgfVxufVxuY2xhc3MgU1FMaXRlVGV4dCBleHRlbmRzIFNRTGl0ZUNvbHVtbiB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVRleHRcIjtcbiAgZW51bVZhbHVlcyA9IHRoaXMuY29uZmlnLmVudW1WYWx1ZXM7XG4gIGxlbmd0aCA9IHRoaXMuY29uZmlnLmxlbmd0aDtcbiAgY29uc3RydWN0b3IodGFibGUsIGNvbmZpZykge1xuICAgIHN1cGVyKHRhYmxlLCBjb25maWcpO1xuICB9XG4gIGdldFNRTFR5cGUoKSB7XG4gICAgcmV0dXJuIGB0ZXh0JHt0aGlzLmNvbmZpZy5sZW5ndGggPyBgKCR7dGhpcy5jb25maWcubGVuZ3RofSlgIDogXCJcIn1gO1xuICB9XG59XG5jbGFzcyBTUUxpdGVUZXh0SnNvbkJ1aWxkZXIgZXh0ZW5kcyBTUUxpdGVDb2x1bW5CdWlsZGVyIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlVGV4dEpzb25CdWlsZGVyXCI7XG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICBzdXBlcihuYW1lLCBcImpzb25cIiwgXCJTUUxpdGVUZXh0SnNvblwiKTtcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIGJ1aWxkKHRhYmxlKSB7XG4gICAgcmV0dXJuIG5ldyBTUUxpdGVUZXh0SnNvbihcbiAgICAgIHRhYmxlLFxuICAgICAgdGhpcy5jb25maWdcbiAgICApO1xuICB9XG59XG5jbGFzcyBTUUxpdGVUZXh0SnNvbiBleHRlbmRzIFNRTGl0ZUNvbHVtbiB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVRleHRKc29uXCI7XG4gIGdldFNRTFR5cGUoKSB7XG4gICAgcmV0dXJuIFwidGV4dFwiO1xuICB9XG4gIG1hcEZyb21Ecml2ZXJWYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgfVxuICBtYXBUb0RyaXZlclZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxufVxuZnVuY3Rpb24gdGV4dChuYW1lLCBjb25maWcgPSB7fSkge1xuICByZXR1cm4gY29uZmlnLm1vZGUgPT09IFwianNvblwiID8gbmV3IFNRTGl0ZVRleHRKc29uQnVpbGRlcihuYW1lKSA6IG5ldyBTUUxpdGVUZXh0QnVpbGRlcihuYW1lLCBjb25maWcpO1xufVxuZXhwb3J0IHtcbiAgU1FMaXRlVGV4dCxcbiAgU1FMaXRlVGV4dEJ1aWxkZXIsXG4gIFNRTGl0ZVRleHRKc29uLFxuICBTUUxpdGVUZXh0SnNvbkJ1aWxkZXIsXG4gIHRleHRcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10ZXh0LmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiU1FMaXRlQ29sdW1uIiwiU1FMaXRlQ29sdW1uQnVpbGRlciIsIlNRTGl0ZVRleHRCdWlsZGVyIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiY29uZmlnIiwiZW51bVZhbHVlcyIsImVudW0iLCJsZW5ndGgiLCJidWlsZCIsInRhYmxlIiwiU1FMaXRlVGV4dCIsImdldFNRTFR5cGUiLCJTUUxpdGVUZXh0SnNvbkJ1aWxkZXIiLCJTUUxpdGVUZXh0SnNvbiIsIm1hcEZyb21Ecml2ZXJWYWx1ZSIsInZhbHVlIiwiSlNPTiIsInBhcnNlIiwibWFwVG9Ecml2ZXJWYWx1ZSIsInN0cmluZ2lmeSIsInRleHQiLCJtb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/text.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/db.js":
-/*!********************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/db.js ***!
- \********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BaseSQLiteDatabase: () => (/* binding */ BaseSQLiteDatabase),\n/* harmony export */ withReplicas: () => (/* binding */ withReplicas)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _selection_proxy_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selection-proxy.js */ \"(rsc)/../../node_modules/drizzle-orm/selection-proxy.js\");\n/* harmony import */ var _query_builders_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query-builders/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js\");\n/* harmony import */ var _query_builders_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./query-builders/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/select.js\");\n/* harmony import */ var _query_builders_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./query-builders/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/update.js\");\n/* harmony import */ var _query_builders_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./query-builders/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/insert.js\");\n/* harmony import */ var _query_builders_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./query-builders/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/delete.js\");\n/* harmony import */ var _subquery_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../subquery.js */ \"(rsc)/../../node_modules/drizzle-orm/subquery.js\");\n/* harmony import */ var _query_builders_query_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query-builders/query.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/query.js\");\n/* harmony import */ var _query_builders_raw_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./query-builders/raw.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/raw.js\");\n\n\n\n\n\n\nclass BaseSQLiteDatabase {\n constructor(resultKind, dialect, session, schema){\n this.resultKind = resultKind;\n this.dialect = dialect;\n this.session = session;\n this._ = schema ? {\n schema: schema.schema,\n tableNamesMap: schema.tableNamesMap\n } : {\n schema: void 0,\n tableNamesMap: {}\n };\n this.query = {};\n const query = this.query;\n if (this._.schema) {\n for (const [tableName, columns] of Object.entries(this._.schema)){\n query[tableName] = new _query_builders_query_js__WEBPACK_IMPORTED_MODULE_0__.RelationalQueryBuilder(resultKind, schema.fullSchema, this._.schema, this._.tableNamesMap, schema.fullSchema[tableName], columns, dialect, session);\n }\n }\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"BaseSQLiteDatabase\";\n }\n /**\n * Creates a subquery that defines a temporary named result set as a CTE.\n *\n * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n *\n * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n *\n * @param alias The alias for the subquery.\n *\n * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n *\n * @example\n *\n * ```ts\n * // Create a subquery with alias 'sq' and use it in the select query\n * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n *\n * const result = await db.with(sq).select().from(sq);\n * ```\n *\n * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n *\n * ```ts\n * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n * const sq = db.$with('sq').as(db.select({\n * name: sql<string>`upper(${users.name})`.as('name'),\n * })\n * .from(users));\n *\n * const result = await db.with(sq).select({ name: sq.name }).from(sq);\n * ```\n */ $with(alias) {\n return {\n as (qb) {\n if (typeof qb === \"function\") {\n qb = qb(new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_2__.QueryBuilder());\n }\n return new Proxy(new _subquery_js__WEBPACK_IMPORTED_MODULE_3__.WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true), new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_4__.SelectionProxyHandler({\n alias,\n sqlAliasedBehavior: \"alias\",\n sqlBehavior: \"error\"\n }));\n }\n };\n }\n /**\n * Incorporates a previously defined CTE (using `$with`) into the main query.\n *\n * This method allows the main query to reference a temporary named result set.\n *\n * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n *\n * @param queries The CTEs to incorporate into the main query.\n *\n * @example\n *\n * ```ts\n * // Define a subquery 'sq' as a CTE using $with\n * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n *\n * // Incorporate the CTE 'sq' into the main query and select from it\n * const result = await db.with(sq).select().from(sq);\n * ```\n */ with(...queries) {\n const self = this;\n function select(fields) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_5__.SQLiteSelectBuilder({\n fields: fields ?? void 0,\n session: self.session,\n dialect: self.dialect,\n withList: queries\n });\n }\n function selectDistinct(fields) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_5__.SQLiteSelectBuilder({\n fields: fields ?? void 0,\n session: self.session,\n dialect: self.dialect,\n withList: queries,\n distinct: true\n });\n }\n function update(table) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_6__.SQLiteUpdateBuilder(table, self.session, self.dialect, queries);\n }\n function insert(into) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_7__.SQLiteInsertBuilder(into, self.session, self.dialect, queries);\n }\n function delete_(from) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_8__.SQLiteDeleteBase(from, self.session, self.dialect, queries);\n }\n return {\n select,\n selectDistinct,\n update,\n insert,\n delete: delete_\n };\n }\n select(fields) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_5__.SQLiteSelectBuilder({\n fields: fields ?? void 0,\n session: this.session,\n dialect: this.dialect\n });\n }\n selectDistinct(fields) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_5__.SQLiteSelectBuilder({\n fields: fields ?? void 0,\n session: this.session,\n dialect: this.dialect,\n distinct: true\n });\n }\n /**\n * Creates an update query.\n *\n * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n *\n * Use `.set()` method to specify which values to update.\n *\n * See docs: {@link https://orm.drizzle.team/docs/update}\n *\n * @param table The table to update.\n *\n * @example\n *\n * ```ts\n * // Update all rows in the 'cars' table\n * await db.update(cars).set({ color: 'red' });\n *\n * // Update rows with filters and conditions\n * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n *\n * // Update with returning clause\n * const updatedCar: Car[] = await db.update(cars)\n * .set({ color: 'red' })\n * .where(eq(cars.id, 1))\n * .returning();\n * ```\n */ update(table) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_6__.SQLiteUpdateBuilder(table, this.session, this.dialect);\n }\n /**\n * Creates an insert query.\n *\n * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n *\n * See docs: {@link https://orm.drizzle.team/docs/insert}\n *\n * @param table The table to insert into.\n *\n * @example\n *\n * ```ts\n * // Insert one row\n * await db.insert(cars).values({ brand: 'BMW' });\n *\n * // Insert multiple rows\n * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n *\n * // Insert with returning clause\n * const insertedCar: Car[] = await db.insert(cars)\n * .values({ brand: 'BMW' })\n * .returning();\n * ```\n */ insert(into) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_7__.SQLiteInsertBuilder(into, this.session, this.dialect);\n }\n /**\n * Creates a delete query.\n *\n * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n *\n * See docs: {@link https://orm.drizzle.team/docs/delete}\n *\n * @param table The table to delete from.\n *\n * @example\n *\n * ```ts\n * // Delete all rows in the 'cars' table\n * await db.delete(cars);\n *\n * // Delete rows with filters and conditions\n * await db.delete(cars).where(eq(cars.color, 'green'));\n *\n * // Delete with returning clause\n * const deletedCar: Car[] = await db.delete(cars)\n * .where(eq(cars.id, 1))\n * .returning();\n * ```\n */ delete(from) {\n return new _query_builders_index_js__WEBPACK_IMPORTED_MODULE_8__.SQLiteDeleteBase(from, this.session, this.dialect);\n }\n run(query) {\n const sql = query.getSQL();\n if (this.resultKind === \"async\") {\n return new _query_builders_raw_js__WEBPACK_IMPORTED_MODULE_9__.SQLiteRaw(async ()=>this.session.run(sql), ()=>sql, \"run\", this.dialect, this.session.extractRawRunValueFromBatchResult.bind(this.session));\n }\n return this.session.run(sql);\n }\n all(query) {\n const sql = query.getSQL();\n if (this.resultKind === \"async\") {\n return new _query_builders_raw_js__WEBPACK_IMPORTED_MODULE_9__.SQLiteRaw(async ()=>this.session.all(sql), ()=>sql, \"all\", this.dialect, this.session.extractRawAllValueFromBatchResult.bind(this.session));\n }\n return this.session.all(sql);\n }\n get(query) {\n const sql = query.getSQL();\n if (this.resultKind === \"async\") {\n return new _query_builders_raw_js__WEBPACK_IMPORTED_MODULE_9__.SQLiteRaw(async ()=>this.session.get(sql), ()=>sql, \"get\", this.dialect, this.session.extractRawGetValueFromBatchResult.bind(this.session));\n }\n return this.session.get(sql);\n }\n values(query) {\n const sql = query.getSQL();\n if (this.resultKind === \"async\") {\n return new _query_builders_raw_js__WEBPACK_IMPORTED_MODULE_9__.SQLiteRaw(async ()=>this.session.values(sql), ()=>sql, \"values\", this.dialect, this.session.extractRawValuesValueFromBatchResult.bind(this.session));\n }\n return this.session.values(sql);\n }\n transaction(transaction, config) {\n return this.session.transaction(transaction, config);\n }\n}\nconst withReplicas = (primary, replicas, getReplica = ()=>replicas[Math.floor(Math.random() * replicas.length)])=>{\n const select = (...args)=>getReplica(replicas).select(...args);\n const selectDistinct = (...args)=>getReplica(replicas).selectDistinct(...args);\n const $with = (...args)=>getReplica(replicas).with(...args);\n const update = (...args)=>primary.update(...args);\n const insert = (...args)=>primary.insert(...args);\n const $delete = (...args)=>primary.delete(...args);\n const run = (...args)=>primary.run(...args);\n const all = (...args)=>primary.all(...args);\n const get = (...args)=>primary.get(...args);\n const values = (...args)=>primary.values(...args);\n const transaction = (...args)=>primary.transaction(...args);\n return {\n ...primary,\n update,\n insert,\n delete: $delete,\n run,\n all,\n get,\n values,\n transaction,\n $primary: primary,\n select,\n selectDistinct,\n with: $with,\n get query () {\n return getReplica(replicas).query;\n }\n };\n};\n //# sourceMappingURL=db.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2RiLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUEwQztBQUNvQjtBQU8zQjtBQUNXO0FBQ3FCO0FBQ2Y7QUFDcEQsTUFBTVU7SUFDSkMsWUFBWUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxDQUFFO1FBQ2hELElBQUksQ0FBQ0gsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNFLENBQUMsR0FBR0QsU0FBUztZQUFFQSxRQUFRQSxPQUFPQSxNQUFNO1lBQUVFLGVBQWVGLE9BQU9FLGFBQWE7UUFBQyxJQUFJO1lBQUVGLFFBQVEsS0FBSztZQUFHRSxlQUFlLENBQUM7UUFBRTtRQUN2SCxJQUFJLENBQUNDLEtBQUssR0FBRyxDQUFDO1FBQ2QsTUFBTUEsUUFBUSxJQUFJLENBQUNBLEtBQUs7UUFDeEIsSUFBSSxJQUFJLENBQUNGLENBQUMsQ0FBQ0QsTUFBTSxFQUFFO1lBQ2pCLEtBQUssTUFBTSxDQUFDSSxXQUFXQyxRQUFRLElBQUlDLE9BQU9DLE9BQU8sQ0FBQyxJQUFJLENBQUNOLENBQUMsQ0FBQ0QsTUFBTSxFQUFHO2dCQUNoRUcsS0FBSyxDQUFDQyxVQUFVLEdBQUcsSUFBSVgsNEVBQXNCQSxDQUMzQ0ksWUFDQUcsT0FBT1EsVUFBVSxFQUNqQixJQUFJLENBQUNQLENBQUMsQ0FBQ0QsTUFBTSxFQUNiLElBQUksQ0FBQ0MsQ0FBQyxDQUFDQyxhQUFhLEVBQ3BCRixPQUFPUSxVQUFVLENBQUNKLFVBQVUsRUFDNUJDLFNBQ0FQLFNBQ0FDO1lBRUo7UUFDRjtJQUNGOztZQUNPLENBQUNkLGtEQUFVQSxDQUFDLEdBQUc7O0lBRXRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JDLEdBQ0R3QixNQUFNQyxLQUFLLEVBQUU7UUFD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cEIsTUFBTSxDQUFDLEdBQUdvQixPQUFTUCxRQUFRYixHQUFHLElBQUlvQjtJQUN4QyxNQUFNaEIsTUFBTSxDQUFDLEdBQUdnQixPQUFTUCxRQUFRVCxHQUFHLElBQUlnQjtJQUN4QyxNQUFNZCxNQUFNLENBQUMsR0FBR2MsT0FBU1AsUUFBUVAsR0FBRyxJQUFJYztJQUN4QyxNQUFNWixTQUFTLENBQUMsR0FBR1ksT0FBU1AsUUFBUUwsTUFBTSxJQUFJWTtJQUM5QyxNQUFNVixjQUFjLENBQUMsR0FBR1UsT0FBU1AsUUFBUUgsV0FBVyxJQUFJVTtJQUN4RCxPQUFPO1FBQ0wsR0FBR1AsT0FBTztRQUNWcEI7UUFDQUU7UUFDQUksUUFBUXNCO1FBQ1JyQjtRQUNBSTtRQUNBRTtRQUNBRTtRQUNBRTtRQUNBWSxVQUFVVDtRQUNWekI7UUFDQUc7UUFDQU4sTUFBTVQ7UUFDTixJQUFJTixTQUFRO1lBQ1YsT0FBTzZDLFdBQVdELFVBQVU1QyxLQUFLO1FBQ25DO0lBQ0Y7QUFDRjtBQUlFLENBQ0YsOEJBQThCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUvZGIuanM/NGU5YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4uL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgU2VsZWN0aW9uUHJveHlIYW5kbGVyIH0gZnJvbSBcIi4uL3NlbGVjdGlvbi1wcm94eS5qc1wiO1xuaW1wb3J0IHtcbiAgUXVlcnlCdWlsZGVyLFxuICBTUUxpdGVEZWxldGVCYXNlLFxuICBTUUxpdGVJbnNlcnRCdWlsZGVyLFxuICBTUUxpdGVTZWxlY3RCdWlsZGVyLFxuICBTUUxpdGVVcGRhdGVCdWlsZGVyXG59IGZyb20gXCIuL3F1ZXJ5LWJ1aWxkZXJzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBXaXRoU3VicXVlcnkgfSBmcm9tIFwiLi4vc3VicXVlcnkuanNcIjtcbmltcG9ydCB7IFJlbGF0aW9uYWxRdWVyeUJ1aWxkZXIgfSBmcm9tIFwiLi9xdWVyeS1idWlsZGVycy9xdWVyeS5qc1wiO1xuaW1wb3J0IHsgU1FMaXRlUmF3IH0gZnJvbSBcIi4vcXVlcnktYnVpbGRlcnMvcmF3LmpzXCI7XG5jbGFzcyBCYXNlU1FMaXRlRGF0YWJhc2Uge1xuICBjb25zdHJ1Y3RvcihyZXN1bHRLaW5kLCBkaWFsZWN0LCBzZXNzaW9uLCBzY2hlbWEpIHtcbiAgICB0aGlzLnJlc3VsdEtpbmQgPSByZXN1bHRLaW5kO1xuICAgIHRoaXMuZGlhbGVjdCA9IGRpYWxlY3Q7XG4gICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvbjtcbiAgICB0aGlzLl8gPSBzY2hlbWEgPyB7IHNjaGVtYTogc2NoZW1hLnNjaGVtYSwgdGFibGVOYW1lc01hcDogc2NoZW1hLnRhYmxlTmFtZXNNYXAgfSA6IHsgc2NoZW1hOiB2b2lkIDAsIHRhYmxlTmFtZXNNYXA6IHt9IH07XG4gICAgdGhpcy5xdWVyeSA9IHt9O1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyeTtcbiAgICBpZiAodGhpcy5fLnNjaGVtYSkge1xuICAgICAgZm9yIChjb25zdCBbdGFibGVOYW1lLCBjb2x1bW5zXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl8uc2NoZW1hKSkge1xuICAgICAgICBxdWVyeVt0YWJsZU5hbWVdID0gbmV3IFJlbGF0aW9uYWxRdWVyeUJ1aWxkZXIoXG4gICAgICAgICAgcmVzdWx0S2luZCxcbiAgICAgICAgICBzY2hlbWEuZnVsbFNjaGVtYSxcbiAgICAgICAgICB0aGlzLl8uc2NoZW1hLFxuICAgICAgICAgIHRoaXMuXy50YWJsZU5hbWVzTWFwLFxuICAgICAgICAgIHNjaGVtYS5mdWxsU2NoZW1hW3RhYmxlTmFtZV0sXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaWFsZWN0LFxuICAgICAgICAgIHNlc3Npb25cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiQmFzZVNRTGl0ZURhdGFiYXNlXCI7XG4gIHF1ZXJ5O1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHN1YnF1ZXJ5IHRoYXQgZGVmaW5lcyBhIHRlbXBvcmFyeSBuYW1lZCByZXN1bHQgc2V0IGFzIGEgQ1RFLlxuICAgKlxuICAgKiBJdCBpcyB1c2VmdWwgZm9yIGJyZWFraW5nIGRvd24gY29tcGxleCBxdWVyaWVzIGludG8gc2ltcGxlciBwYXJ0cyBhbmQgZm9yIHJldXNpbmcgdGhlIHJlc3VsdCBzZXQgaW4gc3Vic2VxdWVudCBwYXJ0cyBvZiB0aGUgcXVlcnkuXG4gICAqXG4gICAqIFNlZSBkb2NzOiB7QGxpbmsgaHR0cHM6Ly9vcm0uZHJpenpsZS50ZWFtL2RvY3Mvc2VsZWN0I3dpdGgtY2xhdXNlfVxuICAgKlxuICAgKiBAcGFyYW0gYWxpYXMgVGhlIGFsaWFzIGZvciB0aGUgc3VicXVlcnkuXG4gICAqXG4gICAqIEZhaWx1cmUgdG8gcHJvdmlkZSBhbiBhbGlhcyB3aWxsIHJlc3VsdCBpbiBhIERyaXp6bGVUeXBlRXJyb3IsIHByZXZlbnRpbmcgdGhlIHN1YnF1ZXJ5IGZyb20gYmVpbmcgcmVmZXJlbmNlZCBpbiBvdGhlciBxdWVyaWVzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBDcmVhdGUgYSBzdWJxdWVyeSB3aXRoIGFsaWFzICdzcScgYW5kIHVzZSBpdCBpbiB0aGUgc2VsZWN0IHF1ZXJ5XG4gICAqIGNvbnN0IHNxID0gZGIuJHdpdGgoJ3NxJykuYXMoZGIuc2VsZWN0KCkuZnJvbSh1c2Vycykud2hlcmUoZXEodXNlcnMuaWQsIDQyKSkpO1xuICAgKlxuICAgKiBjb25zdCByZXN1bHQgPSBhd2FpdCBkYi53aXRoKHNxKS5zZWxlY3QoKS5mcm9tKHNxKTtcbiAgICogYGBgXG4gICAqXG4gICAqIFRvIHNlbGVjdCBhcmJpdHJhcnkgU1FMIHZhbHVlcyBhcyBmaWVsZHMgaW4gYSBDVEUgYW5kIHJlZmVyZW5jZSB0aGVtIGluIG90aGVyIENURXMgb3IgaW4gdGhlIG1haW4gcXVlcnksIHlvdSBuZWVkIHRvIGFkZCBhbGlhc2VzIHRvIHRoZW06XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIFNlbGVjdCBhbiBhcmJpdHJhcnkgU1FMIHZhbHVlIGFzIGEgZmllbGQgaW4gYSBDVEUgYW5kIHJlZmVyZW5jZSBpdCBpbiB0aGUgbWFpbiBxdWVyeVxuICAgKiBjb25zdCBzcSA9IGRiLiR3aXRoKCdzcScpLmFzKGRiLnNlbGVjdCh7XG4gICAqICAgbmFtZTogc3FsPHN0cmluZz5gdXBwZXIoJHt1c2Vycy5uYW1lfSlgLmFzKCduYW1lJyksXG4gICAqIH0pXG4gICAqIC5mcm9tKHVzZXJzKSk7XG4gICAqXG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRiLndpdGgoc3EpLnNlbGVjdCh7IG5hbWU6IHNxLm5hbWUgfSkuZnJvbShzcSk7XG4gICAqIGBgYFxuICAgKi9cbiAgJHdpdGgoYWxpYXMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXMocWIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBxYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgcWIgPSBxYihuZXcgUXVlcnlCdWlsZGVyKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkoXG4gICAgICAgICAgbmV3IFdpdGhTdWJxdWVyeShxYi5nZXRTUUwoKSwgcWIuZ2V0U2VsZWN0ZWRGaWVsZHMoKSwgYWxpYXMsIHRydWUpLFxuICAgICAgICAgIG5ldyBTZWxlY3Rpb25Qcm94eUhhbmRsZXIoeyBhbGlhcywgc3FsQWxpYXNlZEJlaGF2aW9yOiBcImFsaWFzXCIsIHNxbEJlaGF2aW9yOiBcImVycm9yXCIgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBJbmNvcnBvcmF0ZXMgYSBwcmV2aW91c2x5IGRlZmluZWQgQ1RFICh1c2luZyBgJHdpdGhgKSBpbnRvIHRoZSBtYWluIHF1ZXJ5LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdGhlIG1haW4gcXVlcnkgdG8gcmVmZXJlbmNlIGEgdGVtcG9yYXJ5IG5hbWVkIHJlc3VsdCBzZXQuXG4gICAqXG4gICAqIFNlZSBkb2NzOiB7QGxpbmsgaHR0cHM6Ly9vcm0uZHJpenpsZS50ZWFtL2RvY3Mvc2VsZWN0I3dpdGgtY2xhdXNlfVxuICAgKlxuICAgKiBAcGFyYW0gcXVlcmllcyBUaGUgQ1RFcyB0byBpbmNvcnBvcmF0ZSBpbnRvIHRoZSBtYWluIHF1ZXJ5LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBEZWZpbmUgYSBzdWJxdWVyeSAnc3EnIGFzIGEgQ1RFIHVzaW5nICR3aXRoXG4gICAqIGNvbnN0IHNxID0gZGIuJHdpdGgoJ3NxJykuYXMoZGIuc2VsZWN0KCkuZnJvbSh1c2Vycykud2hlcmUoZXEodXNlcnMuaWQsIDQyKSkpO1xuICAgKlxuICAgKiAvLyBJbmNvcnBvcmF0ZSB0aGUgQ1RFICdzcScgaW50byB0aGUgbWFpbiBxdWVyeSBhbmQgc2VsZWN0IGZyb20gaXRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgZGIud2l0aChzcSkuc2VsZWN0KCkuZnJvbShzcSk7XG4gICAqIGBgYFxuICAgKi9cbiAgd2l0aCguLi5xdWVyaWVzKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgZnVuY3Rpb24gc2VsZWN0KGZpZWxkcykge1xuICAgICAgcmV0dXJuIG5ldyBTUUxpdGVTZWxlY3RCdWlsZGVyKHtcbiAgICAgICAgZmllbGRzOiBmaWVsZHMgPz8gdm9pZCAwLFxuICAgICAgICBzZXNzaW9uOiBzZWxmLnNlc3Npb24sXG4gICAgICAgIGRpYWxlY3Q6IHNlbGYuZGlhbGVjdCxcbiAgICAgICAgd2l0aExpc3Q6IHF1ZXJpZXNcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZWxlY3REaXN0aW5jdChmaWVsZHMpIHtcbiAgICAgIHJldHVybiBuZXcgU1FMaXRlU2VsZWN0QnVpbGRlcih7XG4gICAgICAgIGZpZWxkczogZmllbGRzID8/IHZvaWQgMCxcbiAgICAgICAgc2Vzc2lvbjogc2VsZi5zZXNzaW9uLFxuICAgICAgICBkaWFsZWN0OiBzZWxmLmRpYWxlY3QsXG4gICAgICAgIHdpdGhMaXN0OiBxdWVyaWVzLFxuICAgICAgICBkaXN0aW5jdDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZSh0YWJsZSkge1xuICAgICAgcmV0dXJuIG5ldyBTUUxpdGVVcGRhdGVCdWlsZGVyKHRhYmxlLCBzZWxmLnNlc3Npb24sIHNlbGYuZGlhbGVjdCwgcXVlcmllcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluc2VydChpbnRvKSB7XG4gICAgICByZXR1cm4gbmV3IFNRTGl0ZUluc2VydEJ1aWxkZXIoaW50bywgc2VsZi5zZXNzaW9uLCBzZWxmLmRpYWxlY3QsIHF1ZXJpZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWxldGVfKGZyb20pIHtcbiAgICAgIHJldHVybiBuZXcgU1FMaXRlRGVsZXRlQmFzZShmcm9tLCBzZWxmLnNlc3Npb24sIHNlbGYuZGlhbGVjdCwgcXVlcmllcyk7XG4gICAgfVxuICAgIHJldHVybiB7IHNlbGVjdCwgc2VsZWN0RGlzdGluY3QsIHVwZGF0ZSwgaW5zZXJ0LCBkZWxldGU6IGRlbGV0ZV8gfTtcbiAgfVxuICBzZWxlY3QoZmllbGRzKSB7XG4gICAgcmV0dXJuIG5ldyBTUUxpdGVTZWxlY3RCdWlsZGVyKHsgZmllbGRzOiBmaWVsZHMgPz8gdm9pZCAwLCBzZXNzaW9uOiB0aGlzLnNlc3Npb24sIGRpYWxlY3Q6IHRoaXMuZGlhbGVjdCB9KTtcbiAgfVxuICBzZWxlY3REaXN0aW5jdChmaWVsZHMpIHtcbiAgICByZXR1cm4gbmV3IFNRTGl0ZVNlbGVjdEJ1aWxkZXIoe1xuICAgICAgZmllbGRzOiBmaWVsZHMgPz8gdm9pZCAwLFxuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgZGlhbGVjdDogdGhpcy5kaWFsZWN0LFxuICAgICAgZGlzdGluY3Q6IHRydWVcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhbiB1cGRhdGUgcXVlcnkuXG4gICAqXG4gICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2l0aG91dCBgLndoZXJlKClgIGNsYXVzZSB3aWxsIHVwZGF0ZSBhbGwgcm93cyBpbiBhIHRhYmxlLiBUaGUgYC53aGVyZSgpYCBjbGF1c2Ugc3BlY2lmaWVzIHdoaWNoIHJvd3Mgc2hvdWxkIGJlIHVwZGF0ZWQuXG4gICAqXG4gICAqIFVzZSBgLnNldCgpYCBtZXRob2QgdG8gc3BlY2lmeSB3aGljaCB2YWx1ZXMgdG8gdXBkYXRlLlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL3VwZGF0ZX1cbiAgICpcbiAgICogQHBhcmFtIHRhYmxlIFRoZSB0YWJsZSB0byB1cGRhdGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIFVwZGF0ZSBhbGwgcm93cyBpbiB0aGUgJ2NhcnMnIHRhYmxlXG4gICAqIGF3YWl0IGRiLnVwZGF0ZShjYXJzKS5zZXQoeyBjb2xvcjogJ3JlZCcgfSk7XG4gICAqXG4gICAqIC8vIFVwZGF0ZSByb3dzIHdpdGggZmlsdGVycyBhbmQgY29uZGl0aW9uc1xuICAgKiBhd2FpdCBkYi51cGRhdGUoY2Fycykuc2V0KHsgY29sb3I6ICdyZWQnIH0pLndoZXJlKGVxKGNhcnMuYnJhbmQsICdCTVcnKSk7XG4gICAqXG4gICAqIC8vIFVwZGF0ZSB3aXRoIHJldHVybmluZyBjbGF1c2VcbiAgICogY29uc3QgdXBkYXRlZENhcjogQ2FyW10gPSBhd2FpdCBkYi51cGRhdGUoY2FycylcbiAgICogICAuc2V0KHsgY29sb3I6ICdyZWQnIH0pXG4gICAqICAgLndoZXJlKGVxKGNhcnMuaWQsIDEpKVxuICAgKiAgIC5yZXR1cm5pbmcoKTtcbiAgICogYGBgXG4gICAqL1xuICB1cGRhdGUodGFibGUpIHtcbiAgICByZXR1cm4gbmV3IFNRTGl0ZVVwZGF0ZUJ1aWxkZXIodGFibGUsIHRoaXMuc2Vzc2lvbiwgdGhpcy5kaWFsZWN0KTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnNlcnQgcXVlcnkuXG4gICAqXG4gICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBjcmVhdGUgbmV3IHJvd3MgaW4gYSB0YWJsZS4gVXNlIGAudmFsdWVzKClgIG1ldGhvZCB0byBzcGVjaWZ5IHdoaWNoIHZhbHVlcyB0byBpbnNlcnQuXG4gICAqXG4gICAqIFNlZSBkb2NzOiB7QGxpbmsgaHR0cHM6Ly9vcm0uZHJpenpsZS50ZWFtL2RvY3MvaW5zZXJ0fVxuICAgKlxuICAgKiBAcGFyYW0gdGFibGUgVGhlIHRhYmxlIHRvIGluc2VydCBpbnRvLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBJbnNlcnQgb25lIHJvd1xuICAgKiBhd2FpdCBkYi5pbnNlcnQoY2FycykudmFsdWVzKHsgYnJhbmQ6ICdCTVcnIH0pO1xuICAgKlxuICAgKiAvLyBJbnNlcnQgbXVsdGlwbGUgcm93c1xuICAgKiBhd2FpdCBkYi5pbnNlcnQoY2FycykudmFsdWVzKFt7IGJyYW5kOiAnQk1XJyB9LCB7IGJyYW5kOiAnUG9yc2NoZScgfV0pO1xuICAgKlxuICAgKiAvLyBJbnNlcnQgd2l0aCByZXR1cm5pbmcgY2xhdXNlXG4gICAqIGNvbnN0IGluc2VydGVkQ2FyOiBDYXJbXSA9IGF3YWl0IGRiLmluc2VydChjYXJzKVxuICAgKiAgIC52YWx1ZXMoeyBicmFuZDogJ0JNVycgfSlcbiAgICogICAucmV0dXJuaW5nKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgaW5zZXJ0KGludG8pIHtcbiAgICByZXR1cm4gbmV3IFNRTGl0ZUluc2VydEJ1aWxkZXIoaW50bywgdGhpcy5zZXNzaW9uLCB0aGlzLmRpYWxlY3QpO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGVsZXRlIHF1ZXJ5LlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpdGhvdXQgYC53aGVyZSgpYCBjbGF1c2Ugd2lsbCBkZWxldGUgYWxsIHJvd3MgaW4gYSB0YWJsZS4gVGhlIGAud2hlcmUoKWAgY2xhdXNlIHNwZWNpZmllcyB3aGljaCByb3dzIHNob3VsZCBiZSBkZWxldGVkLlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL2RlbGV0ZX1cbiAgICpcbiAgICogQHBhcmFtIHRhYmxlIFRoZSB0YWJsZSB0byBkZWxldGUgZnJvbS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICpcbiAgICogYGBgdHNcbiAgICogLy8gRGVsZXRlIGFsbCByb3dzIGluIHRoZSAnY2FycycgdGFibGVcbiAgICogYXdhaXQgZGIuZGVsZXRlKGNhcnMpO1xuICAgKlxuICAgKiAvLyBEZWxldGUgcm93cyB3aXRoIGZpbHRlcnMgYW5kIGNvbmRpdGlvbnNcbiAgICogYXdhaXQgZGIuZGVsZXRlKGNhcnMpLndoZXJlKGVxKGNhcnMuY29sb3IsICdncmVlbicpKTtcbiAgICpcbiAgICogLy8gRGVsZXRlIHdpdGggcmV0dXJuaW5nIGNsYXVzZVxuICAgKiBjb25zdCBkZWxldGVkQ2FyOiBDYXJbXSA9IGF3YWl0IGRiLmRlbGV0ZShjYXJzKVxuICAgKiAgIC53aGVyZShlcShjYXJzLmlkLCAxKSlcbiAgICogICAucmV0dXJuaW5nKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgZGVsZXRlKGZyb20pIHtcbiAgICByZXR1cm4gbmV3IFNRTGl0ZURlbGV0ZUJhc2UoZnJvbSwgdGhpcy5zZXNzaW9uLCB0aGlzLmRpYWxlY3QpO1xuICB9XG4gIHJ1bihxdWVyeSkge1xuICAgIGNvbnN0IHNxbCA9IHF1ZXJ5LmdldFNRTCgpO1xuICAgIGlmICh0aGlzLnJlc3VsdEtpbmQgPT09IFwiYXN5bmNcIikge1xuICAgICAgcmV0dXJuIG5ldyBTUUxpdGVSYXcoXG4gICAgICAgIGFzeW5jICgpID0+IHRoaXMuc2Vzc2lvbi5ydW4oc3FsKSxcbiAgICAgICAgKCkgPT4gc3FsLFxuICAgICAgICBcInJ1blwiLFxuICAgICAgICB0aGlzLmRpYWxlY3QsXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5leHRyYWN0UmF3UnVuVmFsdWVGcm9tQmF0Y2hSZXN1bHQuYmluZCh0aGlzLnNlc3Npb24pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uLnJ1bihzcWwpO1xuICB9XG4gIGFsbChxdWVyeSkge1xuICAgIGNvbnN0IHNxbCA9IHF1ZXJ5LmdldFNRTCgpO1xuICAgIGlmICh0aGlzLnJlc3VsdEtpbmQgPT09IFwiYXN5bmNcIikge1xuICAgICAgcmV0dXJuIG5ldyBTUUxpdGVSYXcoXG4gICAgICAgIGFzeW5jICgpID0+IHRoaXMuc2Vzc2lvbi5hbGwoc3FsKSxcbiAgICAgICAgKCkgPT4gc3FsLFxuICAgICAgICBcImFsbFwiLFxuICAgICAgICB0aGlzLmRpYWxlY3QsXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5leHRyYWN0UmF3QWxsVmFsdWVGcm9tQmF0Y2hSZXN1bHQuYmluZCh0aGlzLnNlc3Npb24pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmFsbChzcWwpO1xuICB9XG4gIGdldChxdWVyeSkge1xuICAgIGNvbnN0IHNxbCA9IHF1ZXJ5LmdldFNRTCgpO1xuICAgIGlmICh0aGlzLnJlc3VsdEtpbmQgPT09IFwiYXN5bmNcIikge1xuICAgICAgcmV0dXJuIG5ldyBTUUxpdGVSYXcoXG4gICAgICAgIGFzeW5jICgpID0+IHRoaXMuc2Vzc2lvbi5nZXQoc3FsKSxcbiAgICAgICAgKCkgPT4gc3FsLFxuICAgICAgICBcImdldFwiLFxuICAgICAgICB0aGlzLmRpYWxlY3QsXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5leHRyYWN0UmF3R2V0VmFsdWVGcm9tQmF0Y2hSZXN1bHQuYmluZCh0aGlzLnNlc3Npb24pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldChzcWwpO1xuICB9XG4gIHZhbHVlcyhxdWVyeSkge1xuICAgIGNvbnN0IHNxbCA9IHF1ZXJ5LmdldFNRTCgpO1xuICAgIGlmICh0aGlzLnJlc3VsdEtpbmQgPT09IFwiYXN5bmNcIikge1xuICAgICAgcmV0dXJuIG5ldyBTUUxpdGVSYXcoXG4gICAgICAgIGFzeW5jICgpID0+IHRoaXMuc2Vzc2lvbi52YWx1ZXMoc3FsKSxcbiAgICAgICAgKCkgPT4gc3FsLFxuICAgICAgICBcInZhbHVlc1wiLFxuICAgICAgICB0aGlzLmRpYWxlY3QsXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5leHRyYWN0UmF3VmFsdWVzVmFsdWVGcm9tQmF0Y2hSZXN1bHQuYmluZCh0aGlzLnNlc3Npb24pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uLnZhbHVlcyhzcWwpO1xuICB9XG4gIHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLCBjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uLnRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLCBjb25maWcpO1xuICB9XG59XG5jb25zdCB3aXRoUmVwbGljYXMgPSAocHJpbWFyeSwgcmVwbGljYXMsIGdldFJlcGxpY2EgPSAoKSA9PiByZXBsaWNhc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiByZXBsaWNhcy5sZW5ndGgpXSkgPT4ge1xuICBjb25zdCBzZWxlY3QgPSAoLi4uYXJncykgPT4gZ2V0UmVwbGljYShyZXBsaWNhcykuc2VsZWN0KC4uLmFyZ3MpO1xuICBjb25zdCBzZWxlY3REaXN0aW5jdCA9ICguLi5hcmdzKSA9PiBnZXRSZXBsaWNhKHJlcGxpY2FzKS5zZWxlY3REaXN0aW5jdCguLi5hcmdzKTtcbiAgY29uc3QgJHdpdGggPSAoLi4uYXJncykgPT4gZ2V0UmVwbGljYShyZXBsaWNhcykud2l0aCguLi5hcmdzKTtcbiAgY29uc3QgdXBkYXRlID0gKC4uLmFyZ3MpID0+IHByaW1hcnkudXBkYXRlKC4uLmFyZ3MpO1xuICBjb25zdCBpbnNlcnQgPSAoLi4uYXJncykgPT4gcHJpbWFyeS5pbnNlcnQoLi4uYXJncyk7XG4gIGNvbnN0ICRkZWxldGUgPSAoLi4uYXJncykgPT4gcHJpbWFyeS5kZWxldGUoLi4uYXJncyk7XG4gIGNvbnN0IHJ1biA9ICguLi5hcmdzKSA9PiBwcmltYXJ5LnJ1biguLi5hcmdzKTtcbiAgY29uc3QgYWxsID0gKC4uLmFyZ3MpID0+IHByaW1hcnkuYWxsKC4uLmFyZ3MpO1xuICBjb25zdCBnZXQgPSAoLi4uYXJncykgPT4gcHJpbWFyeS5nZXQoLi4uYXJncyk7XG4gIGNvbnN0IHZhbHVlcyA9ICguLi5hcmdzKSA9PiBwcmltYXJ5LnZhbHVlcyguLi5hcmdzKTtcbiAgY29uc3QgdHJhbnNhY3Rpb24gPSAoLi4uYXJncykgPT4gcHJpbWFyeS50cmFuc2FjdGlvbiguLi5hcmdzKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5wcmltYXJ5LFxuICAgIHVwZGF0ZSxcbiAgICBpbnNlcnQsXG4gICAgZGVsZXRlOiAkZGVsZXRlLFxuICAgIHJ1bixcbiAgICBhbGwsXG4gICAgZ2V0LFxuICAgIHZhbHVlcyxcbiAgICB0cmFuc2FjdGlvbixcbiAgICAkcHJpbWFyeTogcHJpbWFyeSxcbiAgICBzZWxlY3QsXG4gICAgc2VsZWN0RGlzdGluY3QsXG4gICAgd2l0aDogJHdpdGgsXG4gICAgZ2V0IHF1ZXJ5KCkge1xuICAgICAgcmV0dXJuIGdldFJlcGxpY2EocmVwbGljYXMpLnF1ZXJ5O1xuICAgIH1cbiAgfTtcbn07XG5leHBvcnQge1xuICBCYXNlU1FMaXRlRGF0YWJhc2UsXG4gIHdpdGhSZXBsaWNhc1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRiLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiU2VsZWN0aW9uUHJveHlIYW5kbGVyIiwiUXVlcnlCdWlsZGVyIiwiU1FMaXRlRGVsZXRlQmFzZSIsIlNRTGl0ZUluc2VydEJ1aWxkZXIiLCJTUUxpdGVTZWxlY3RCdWlsZGVyIiwiU1FMaXRlVXBkYXRlQnVpbGRlciIsIldpdGhTdWJxdWVyeSIsIlJlbGF0aW9uYWxRdWVyeUJ1aWxkZXIiLCJTUUxpdGVSYXciLCJCYXNlU1FMaXRlRGF0YWJhc2UiLCJjb25zdHJ1Y3RvciIsInJlc3VsdEtpbmQiLCJkaWFsZWN0Iiwic2Vzc2lvbiIsInNjaGVtYSIsIl8iLCJ0YWJsZU5hbWVzTWFwIiwicXVlcnkiLCJ0YWJsZU5hbWUiLCJjb2x1bW5zIiwiT2JqZWN0IiwiZW50cmllcyIsImZ1bGxTY2hlbWEiLCIkd2l0aCIsImFsaWFzIiwiYXMiLCJxYiIsIlByb3h5IiwiZ2V0U1FMIiwiZ2V0U2VsZWN0ZWRGaWVsZHMiLCJzcWxBbGlhc2VkQmVoYXZpb3IiLCJzcWxCZWhhdmlvciIsIndpdGgiLCJxdWVyaWVzIiwic2VsZiIsInNlbGVjdCIsImZpZWxkcyIsIndpdGhMaXN0Iiwic2VsZWN0RGlzdGluY3QiLCJkaXN0aW5jdCIsInVwZGF0ZSIsInRhYmxlIiwiaW5zZXJ0IiwiaW50byIsImRlbGV0ZV8iLCJmcm9tIiwiZGVsZXRlIiwicnVuIiwic3FsIiwiZXh0cmFjdFJhd1J1blZhbHVlRnJvbUJhdGNoUmVzdWx0IiwiYmluZCIsImFsbCIsImV4dHJhY3RSYXdBbGxWYWx1ZUZyb21CYXRjaFJlc3VsdCIsImdldCIsImV4dHJhY3RSYXdHZXRWYWx1ZUZyb21CYXRjaFJlc3VsdCIsInZhbHVlcyIsImV4dHJhY3RSYXdWYWx1ZXNWYWx1ZUZyb21CYXRjaFJlc3VsdCIsInRyYW5zYWN0aW9uIiwiY29uZmlnIiwid2l0aFJlcGxpY2FzIiwicHJpbWFyeSIsInJlcGxpY2FzIiwiZ2V0UmVwbGljYSIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImxlbmd0aCIsImFyZ3MiLCIkZGVsZXRlIiwiJHByaW1hcnkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/db.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/dialect.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/dialect.js ***!
- \*************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteAsyncDialect: () => (/* binding */ SQLiteAsyncDialect),\n/* harmony export */ SQLiteDialect: () => (/* binding */ SQLiteDialect),\n/* harmony export */ SQLiteSyncDialect: () => (/* binding */ SQLiteSyncDialect)\n/* harmony export */ });\n/* harmony import */ var _alias_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../alias.js */ \"(rsc)/../../node_modules/drizzle-orm/alias.js\");\n/* harmony import */ var _column_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../column.js */ \"(rsc)/../../node_modules/drizzle-orm/column.js\");\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../errors.js */ \"(rsc)/../../node_modules/drizzle-orm/errors.js\");\n/* harmony import */ var _relations_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../relations.js */ \"(rsc)/../../node_modules/drizzle-orm/relations.js\");\n/* harmony import */ var _sql_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../sql/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/expressions/conditions.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var _columns_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./columns/index.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/columns/common.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./table.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\");\n/* harmony import */ var _subquery_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../subquery.js */ \"(rsc)/../../node_modules/drizzle-orm/subquery.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils.js */ \"(rsc)/../../node_modules/drizzle-orm/utils.js\");\n/* harmony import */ var _view_common_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../view-common.js */ \"(rsc)/../../node_modules/drizzle-orm/view-common.js\");\n/* harmony import */ var _view_base_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./view-base.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/view-base.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass SQLiteDialect {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteDialect\";\n }\n escapeName(name) {\n return `\"${name}\"`;\n }\n escapeParam(_num) {\n return \"?\";\n }\n escapeString(str) {\n return `'${str.replace(/'/g, \"''\")}'`;\n }\n buildWithCTE(queries) {\n if (!queries?.length) return void 0;\n const withSqlChunks = [\n _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`with `\n ];\n for (const [i, w] of queries.entries()){\n withSqlChunks.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(w[_subquery_js__WEBPACK_IMPORTED_MODULE_2__.SubqueryConfig].alias)} as (${w[_subquery_js__WEBPACK_IMPORTED_MODULE_2__.SubqueryConfig].sql})`);\n if (i < queries.length - 1) {\n withSqlChunks.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`, `);\n }\n }\n withSqlChunks.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` `);\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(withSqlChunks);\n }\n buildDeleteQuery({ table, where, returning, withList }) {\n const withSql = this.buildWithCTE(withList);\n const returningSql = returning ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` returning ${this.buildSelection(returning, {\n isSingleTable: true\n })}` : void 0;\n const whereSql = where ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` where ${where}` : void 0;\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${withSql}delete from ${table}${whereSql}${returningSql}`;\n }\n buildUpdateSet(table, set) {\n const setEntries = Object.entries(set);\n const setSize = setEntries.length;\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(setEntries.flatMap(([colName, value], i)=>{\n const col = table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Columns][colName];\n const res = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(col.name)} = ${value}`;\n if (i < setSize - 1) {\n return [\n res,\n _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.raw(\", \")\n ];\n }\n return [\n res\n ];\n }));\n }\n buildUpdateQuery({ table, set, where, returning, withList }) {\n const withSql = this.buildWithCTE(withList);\n const setSql = this.buildUpdateSet(table, set);\n const returningSql = returning ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` returning ${this.buildSelection(returning, {\n isSingleTable: true\n })}` : void 0;\n const whereSql = where ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` where ${where}` : void 0;\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${withSql}update ${table} set ${setSql}${whereSql}${returningSql}`;\n }\n /**\n * Builds selection SQL with provided fields/expressions\n *\n * Examples:\n *\n * `select <selection> from`\n *\n * `insert ... returning <selection>`\n *\n * If `isSingleTable` is true, then columns won't be prefixed with table name\n */ buildSelection(fields, { isSingleTable = false } = {}) {\n const columnsLen = fields.length;\n const chunks = fields.flatMap(({ field }, i)=>{\n const chunk = [];\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL.Aliased) && field.isSelectionField) {\n chunk.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(field.fieldAlias));\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL.Aliased) || (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL)) {\n const query = (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL.Aliased) ? field.sql : field;\n if (isSingleTable) {\n chunk.push(new _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL(query.queryChunks.map((c)=>{\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(c, _column_js__WEBPACK_IMPORTED_MODULE_4__.Column)) {\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(c.name);\n }\n return c;\n })));\n } else {\n chunk.push(query);\n }\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL.Aliased)) {\n chunk.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` as ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(field.fieldAlias)}`);\n }\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _column_js__WEBPACK_IMPORTED_MODULE_4__.Column)) {\n const tableName = field.table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Name];\n const columnName = field.name;\n if (isSingleTable) {\n chunk.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(columnName));\n } else {\n chunk.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(tableName)}.${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(columnName)}`);\n }\n }\n if (i < columnsLen - 1) {\n chunk.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`, `);\n }\n return chunk;\n });\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(chunks);\n }\n buildSelectQuery({ withList, fields, fieldsFlat, where, having, table, joins, orderBy, groupBy, limit, offset, distinct, setOperators }) {\n const fieldsList = fieldsFlat ?? (0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.orderSelectedFields)(fields);\n for (const f of fieldsList){\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(f.field, _column_js__WEBPACK_IMPORTED_MODULE_4__.Column) && (0,_table_js__WEBPACK_IMPORTED_MODULE_3__.getTableName)(f.field.table) !== ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _subquery_js__WEBPACK_IMPORTED_MODULE_2__.Subquery) ? table[_subquery_js__WEBPACK_IMPORTED_MODULE_2__.SubqueryConfig].alias : (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _view_base_js__WEBPACK_IMPORTED_MODULE_6__.SQLiteViewBase) ? table[_view_common_js__WEBPACK_IMPORTED_MODULE_7__.ViewBaseConfig].name : (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL) ? void 0 : (0,_table_js__WEBPACK_IMPORTED_MODULE_3__.getTableName)(table)) && !((table2)=>joins?.some(({ alias })=>alias === (table2[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.IsAlias] ? (0,_table_js__WEBPACK_IMPORTED_MODULE_3__.getTableName)(table2) : table2[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.BaseName])))(f.field.table)) {\n const tableName = (0,_table_js__WEBPACK_IMPORTED_MODULE_3__.getTableName)(f.field.table);\n throw new Error(`Your \"${f.path.join(\"->\")}\" field references a column \"${tableName}\".\"${f.field.name}\", but the table \"${tableName}\" is not part of the query! Did you forget to join it?`);\n }\n }\n const isSingleTable = !joins || joins.length === 0;\n const withSql = this.buildWithCTE(withList);\n const distinctSql = distinct ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` distinct` : void 0;\n const selection = this.buildSelection(fieldsList, {\n isSingleTable\n });\n const tableSql = (()=>{\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _table_js__WEBPACK_IMPORTED_MODULE_3__.Table) && table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.OriginalName] !== table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Name]) {\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.OriginalName])} ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Name])}`;\n }\n return table;\n })();\n const joinsArray = [];\n if (joins) {\n for (const [index, joinMeta] of joins.entries()){\n if (index === 0) {\n joinsArray.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` `);\n }\n const table2 = joinMeta.table;\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table2, _table_js__WEBPACK_IMPORTED_MODULE_8__.SQLiteTable)) {\n const tableName = table2[_table_js__WEBPACK_IMPORTED_MODULE_8__.SQLiteTable.Symbol.Name];\n const tableSchema = table2[_table_js__WEBPACK_IMPORTED_MODULE_8__.SQLiteTable.Symbol.Schema];\n const origTableName = table2[_table_js__WEBPACK_IMPORTED_MODULE_8__.SQLiteTable.Symbol.OriginalName];\n const alias = tableName === origTableName ? void 0 : joinMeta.alias;\n joinsArray.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.raw(joinMeta.joinType)} join ${tableSchema ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(tableSchema)}.` : void 0}${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(origTableName)}${alias && _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(alias)}`} on ${joinMeta.on}`);\n } else {\n joinsArray.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.raw(joinMeta.joinType)} join ${table2} on ${joinMeta.on}`);\n }\n if (index < joins.length - 1) {\n joinsArray.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` `);\n }\n }\n }\n const joinsSql = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(joinsArray);\n const whereSql = where ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` where ${where}` : void 0;\n const havingSql = having ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` having ${having}` : void 0;\n const orderByList = [];\n if (orderBy) {\n for (const [index, orderByValue] of orderBy.entries()){\n orderByList.push(orderByValue);\n if (index < orderBy.length - 1) {\n orderByList.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`, `);\n }\n }\n }\n const groupByList = [];\n if (groupBy) {\n for (const [index, groupByValue] of groupBy.entries()){\n groupByList.push(groupByValue);\n if (index < groupBy.length - 1) {\n groupByList.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`, `);\n }\n }\n }\n const groupBySql = groupByList.length > 0 ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` group by ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(groupByList)}` : void 0;\n const orderBySql = orderByList.length > 0 ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` order by ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(orderByList)}` : void 0;\n const limitSql = limit ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` limit ${limit}` : void 0;\n const offsetSql = offset ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` offset ${offset}` : void 0;\n const finalQuery = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}`;\n if (setOperators.length > 0) {\n return this.buildSetOperations(finalQuery, setOperators);\n }\n return finalQuery;\n }\n buildSetOperations(leftSelect, setOperators) {\n const [setOperator, ...rest] = setOperators;\n if (!setOperator) {\n throw new Error(\"Cannot pass undefined values to any set operator\");\n }\n if (rest.length === 0) {\n return this.buildSetOperationQuery({\n leftSelect,\n setOperator\n });\n }\n return this.buildSetOperations(this.buildSetOperationQuery({\n leftSelect,\n setOperator\n }), rest);\n }\n buildSetOperationQuery({ leftSelect, setOperator: { type, isAll, rightSelect, limit, orderBy, offset } }) {\n const leftChunk = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${leftSelect.getSQL()} `;\n const rightChunk = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${rightSelect.getSQL()}`;\n let orderBySql;\n if (orderBy && orderBy.length > 0) {\n const orderByValues = [];\n for (const singleOrderBy of orderBy){\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(singleOrderBy, _columns_index_js__WEBPACK_IMPORTED_MODULE_9__.SQLiteColumn)) {\n orderByValues.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(singleOrderBy.name));\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(singleOrderBy, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL)) {\n for(let i = 0; i < singleOrderBy.queryChunks.length; i++){\n const chunk = singleOrderBy.queryChunks[i];\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(chunk, _columns_index_js__WEBPACK_IMPORTED_MODULE_9__.SQLiteColumn)) {\n singleOrderBy.queryChunks[i] = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(chunk.name);\n }\n }\n orderByValues.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${singleOrderBy}`);\n } else {\n orderByValues.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${singleOrderBy}`);\n }\n }\n orderBySql = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` order by ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(orderByValues, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`, `)}`;\n }\n const limitSql = limit ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` limit ${limit}` : void 0;\n const operatorChunk = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.raw(`${type} ${isAll ? \"all \" : \"\"}`);\n const offsetSql = offset ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` offset ${offset}` : void 0;\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;\n }\n buildInsertQuery({ table, values, onConflict, returning, withList }) {\n const valuesSqlList = [];\n const columns = table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Columns];\n const colEntries = Object.entries(columns);\n const insertOrder = colEntries.map(([, column])=>_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(column.name));\n for (const [valueIndex, value] of values.entries()){\n const valueList = [];\n for (const [fieldName, col] of colEntries){\n const colValue = value[fieldName];\n if (colValue === void 0 || (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(colValue, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.Param) && colValue.value === void 0) {\n let defaultValue;\n if (col.default !== null && col.default !== void 0) {\n defaultValue = (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(col.default, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL) ? col.default : _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.param(col.default, col);\n } else if (col.defaultFn !== void 0) {\n const defaultFnResult = col.defaultFn();\n defaultValue = (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(defaultFnResult, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL) ? defaultFnResult : _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.param(defaultFnResult, col);\n } else {\n defaultValue = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`null`;\n }\n valueList.push(defaultValue);\n } else {\n valueList.push(colValue);\n }\n }\n valuesSqlList.push(valueList);\n if (valueIndex < values.length - 1) {\n valuesSqlList.push(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`, `);\n }\n }\n const withSql = this.buildWithCTE(withList);\n const valuesSql = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(valuesSqlList);\n const returningSql = returning ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` returning ${this.buildSelection(returning, {\n isSingleTable: true\n })}` : void 0;\n const onConflictSql = onConflict ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql` on conflict ${onConflict}` : void 0;\n return _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`${withSql}insert into ${table} ${insertOrder} values ${valuesSql}${onConflictSql}${returningSql}`;\n }\n sqlToQuery(sql2) {\n return sql2.toQuery({\n escapeName: this.escapeName,\n escapeParam: this.escapeParam,\n escapeString: this.escapeString\n });\n }\n buildRelationalQuery({ fullSchema, schema, tableNamesMap, table, tableConfig, queryConfig: config, tableAlias, nestedQueryRelation, joinOn }) {\n let selection = [];\n let limit, offset, orderBy = [], where;\n const joins = [];\n if (config === true) {\n const selectionEntries = Object.entries(tableConfig.columns);\n selection = selectionEntries.map(([key, value])=>({\n dbKey: value.name,\n tsKey: key,\n field: (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTableColumn)(value, tableAlias),\n relationTableTsKey: void 0,\n isJson: false,\n selection: []\n }));\n } else {\n const aliasedColumns = Object.fromEntries(Object.entries(tableConfig.columns).map(([key, value])=>[\n key,\n (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTableColumn)(value, tableAlias)\n ]));\n if (config.where) {\n const whereSql = typeof config.where === \"function\" ? config.where(aliasedColumns, (0,_relations_js__WEBPACK_IMPORTED_MODULE_11__.getOperators)()) : config.where;\n where = whereSql && (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.mapColumnsInSQLToAlias)(whereSql, tableAlias);\n }\n const fieldsSelection = [];\n let selectedColumns = [];\n if (config.columns) {\n let isIncludeMode = false;\n for (const [field, value] of Object.entries(config.columns)){\n if (value === void 0) {\n continue;\n }\n if (field in tableConfig.columns) {\n if (!isIncludeMode && value === true) {\n isIncludeMode = true;\n }\n selectedColumns.push(field);\n }\n }\n if (selectedColumns.length > 0) {\n selectedColumns = isIncludeMode ? selectedColumns.filter((c)=>config.columns?.[c] === true) : Object.keys(tableConfig.columns).filter((key)=>!selectedColumns.includes(key));\n }\n } else {\n selectedColumns = Object.keys(tableConfig.columns);\n }\n for (const field of selectedColumns){\n const column = tableConfig.columns[field];\n fieldsSelection.push({\n tsKey: field,\n value: column\n });\n }\n let selectedRelations = [];\n if (config.with) {\n selectedRelations = Object.entries(config.with).filter((entry)=>!!entry[1]).map(([tsKey, queryConfig])=>({\n tsKey,\n queryConfig,\n relation: tableConfig.relations[tsKey]\n }));\n }\n let extras;\n if (config.extras) {\n extras = typeof config.extras === \"function\" ? config.extras(aliasedColumns, {\n sql: _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql\n }) : config.extras;\n for (const [tsKey, value] of Object.entries(extras)){\n fieldsSelection.push({\n tsKey,\n value: (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.mapColumnsInAliasedSQLToAlias)(value, tableAlias)\n });\n }\n }\n for (const { tsKey, value } of fieldsSelection){\n selection.push({\n dbKey: (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(value, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey].name,\n tsKey,\n field: (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(value, _column_js__WEBPACK_IMPORTED_MODULE_4__.Column) ? (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTableColumn)(value, tableAlias) : value,\n relationTableTsKey: void 0,\n isJson: false,\n selection: []\n });\n }\n let orderByOrig = typeof config.orderBy === \"function\" ? config.orderBy(aliasedColumns, (0,_relations_js__WEBPACK_IMPORTED_MODULE_11__.getOrderByOperators)()) : config.orderBy ?? [];\n if (!Array.isArray(orderByOrig)) {\n orderByOrig = [\n orderByOrig\n ];\n }\n orderBy = orderByOrig.map((orderByValue)=>{\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(orderByValue, _column_js__WEBPACK_IMPORTED_MODULE_4__.Column)) {\n return (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTableColumn)(orderByValue, tableAlias);\n }\n return (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.mapColumnsInSQLToAlias)(orderByValue, tableAlias);\n });\n limit = config.limit;\n offset = config.offset;\n for (const { tsKey: selectedRelationTsKey, queryConfig: selectedRelationConfigValue, relation } of selectedRelations){\n const normalizedRelation = (0,_relations_js__WEBPACK_IMPORTED_MODULE_11__.normalizeRelation)(schema, tableNamesMap, relation);\n const relationTableName = relation.referencedTable[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Name];\n const relationTableTsName = tableNamesMap[relationTableName];\n const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;\n const joinOn2 = (0,_sql_index_js__WEBPACK_IMPORTED_MODULE_12__.and)(...normalizedRelation.fields.map((field2, i)=>(0,_sql_index_js__WEBPACK_IMPORTED_MODULE_12__.eq)((0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTableColumn)(normalizedRelation.references[i], relationTableAlias), (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTableColumn)(field2, tableAlias))));\n const builtRelation = this.buildRelationalQuery({\n fullSchema,\n schema,\n tableNamesMap,\n table: fullSchema[relationTableTsName],\n tableConfig: schema[relationTableTsName],\n queryConfig: (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(relation, _relations_js__WEBPACK_IMPORTED_MODULE_11__.One) ? selectedRelationConfigValue === true ? {\n limit: 1\n } : {\n ...selectedRelationConfigValue,\n limit: 1\n } : selectedRelationConfigValue,\n tableAlias: relationTableAlias,\n joinOn: joinOn2,\n nestedQueryRelation: relation\n });\n const field = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`(${builtRelation.sql})`.as(selectedRelationTsKey);\n selection.push({\n dbKey: selectedRelationTsKey,\n tsKey: selectedRelationTsKey,\n field,\n relationTableTsKey: relationTableTsName,\n isJson: true,\n selection: builtRelation.selection\n });\n }\n }\n if (selection.length === 0) {\n throw new _errors_js__WEBPACK_IMPORTED_MODULE_13__.DrizzleError({\n message: `No fields selected for table \"${tableConfig.tsName}\" (\"${tableAlias}\"). You need to have at least one item in \"columns\", \"with\" or \"extras\". If you need to select all columns, omit the \"columns\" key or set it to undefined.`\n });\n }\n let result;\n where = (0,_sql_index_js__WEBPACK_IMPORTED_MODULE_12__.and)(joinOn, where);\n if (nestedQueryRelation) {\n let field = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`json_array(${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.join(selection.map(({ field: field2 })=>(0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field2, _columns_index_js__WEBPACK_IMPORTED_MODULE_9__.SQLiteColumn) ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(field2.name) : (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field2, _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.SQL.Aliased) ? field2.sql : field2), _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`, `)})`;\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(nestedQueryRelation, _relations_js__WEBPACK_IMPORTED_MODULE_11__.Many)) {\n field = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`coalesce(json_group_array(${field}), json_array())`;\n }\n const nestedSelection = [\n {\n dbKey: \"data\",\n tsKey: \"data\",\n field: field.as(\"data\"),\n isJson: true,\n relationTableTsKey: tableConfig.tsName,\n selection\n }\n ];\n const needsSubquery = limit !== void 0 || offset !== void 0 || orderBy.length > 0;\n if (needsSubquery) {\n result = this.buildSelectQuery({\n table: (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTable)(table, tableAlias),\n fields: {},\n fieldsFlat: [\n {\n path: [],\n field: _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.raw(\"*\")\n }\n ],\n where,\n limit,\n offset,\n orderBy,\n setOperators: []\n });\n where = void 0;\n limit = void 0;\n offset = void 0;\n orderBy = void 0;\n } else {\n result = (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTable)(table, tableAlias);\n }\n result = this.buildSelectQuery({\n table: (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(result, _table_js__WEBPACK_IMPORTED_MODULE_8__.SQLiteTable) ? result : new _subquery_js__WEBPACK_IMPORTED_MODULE_2__.Subquery(result, {}, tableAlias),\n fields: {},\n fieldsFlat: nestedSelection.map(({ field: field2 })=>({\n path: [],\n field: (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field2, _column_js__WEBPACK_IMPORTED_MODULE_4__.Column) ? (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTableColumn)(field2, tableAlias) : field2\n })),\n joins,\n where,\n limit,\n offset,\n orderBy,\n setOperators: []\n });\n } else {\n result = this.buildSelectQuery({\n table: (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTable)(table, tableAlias),\n fields: {},\n fieldsFlat: selection.map(({ field })=>({\n path: [],\n field: (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _column_js__WEBPACK_IMPORTED_MODULE_4__.Column) ? (0,_alias_js__WEBPACK_IMPORTED_MODULE_10__.aliasedTableColumn)(field, tableAlias) : field\n })),\n joins,\n where,\n limit,\n offset,\n orderBy,\n setOperators: []\n });\n }\n return {\n tableTsKey: tableConfig.tsName,\n sql: result,\n selection\n };\n }\n}\nclass SQLiteSyncDialect extends SQLiteDialect {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteSyncDialect\";\n }\n migrate(migrations, session, config) {\n const migrationsTable = config === void 0 ? \"__drizzle_migrations\" : typeof config === \"string\" ? \"__drizzle_migrations\" : config.migrationsTable ?? \"__drizzle_migrations\";\n const migrationTableCreate = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n session.run(migrationTableCreate);\n const dbMigrations = session.values(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`SELECT id, hash, created_at FROM ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`);\n const lastDbMigration = dbMigrations[0] ?? void 0;\n session.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`BEGIN`);\n try {\n for (const migration of migrations){\n if (!lastDbMigration || Number(lastDbMigration[2]) < migration.folderMillis) {\n for (const stmt of migration.sql){\n session.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.raw(stmt));\n }\n session.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`INSERT INTO ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(migrationsTable)} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`);\n }\n }\n session.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`COMMIT`);\n } catch (e) {\n session.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`ROLLBACK`);\n throw e;\n }\n }\n}\nclass SQLiteAsyncDialect extends SQLiteDialect {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteAsyncDialect\";\n }\n async migrate(migrations, session, config) {\n const migrationsTable = typeof config === \"string\" ? \"__drizzle_migrations\" : config.migrationsTable ?? \"__drizzle_migrations\";\n const migrationTableCreate = _sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n await session.run(migrationTableCreate);\n const dbMigrations = await session.values(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`SELECT id, hash, created_at FROM ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`);\n const lastDbMigration = dbMigrations[0] ?? void 0;\n await session.transaction(async (tx)=>{\n for (const migration of migrations){\n if (!lastDbMigration || Number(lastDbMigration[2]) < migration.folderMillis) {\n for (const stmt of migration.sql){\n await tx.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.raw(stmt));\n }\n await tx.run(_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql`INSERT INTO ${_sql_sql_js__WEBPACK_IMPORTED_MODULE_1__.sql.identifier(migrationsTable)} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`);\n }\n }\n });\n }\n}\n //# sourceMappingURL=dialect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2RpYWxlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc0g7QUFDaEY7QUFDUTtBQUNGO0FBT25CO0FBQ2lCO0FBQ007QUFDRTtBQUNUO0FBQ2lCO0FBQ1I7QUFDQTtBQUNDO0FBQ0g7QUFDaEQsTUFBTTJCOztZQUNHLENBQUN0QixrREFBVUEsQ0FBQyxHQUFHOztJQUN0QnVCLFdBQVdDLElBQUksRUFBRTtRQUNmLE9BQU8sQ0FBQyxDQUFDLEVBQUVBLEtBQUssQ0FBQyxDQUFDO0lBQ3BCO0lBQ0FDLFlBQVlDLElBQUksRUFBRTtRQUNoQixPQUFPO0lBQ1Q7SUFDQUMsYUFBYUMsR0FBRyxFQUFFO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLEVBQUVBLElBQUlDLE9BQU8sQ0FBQyxNQUFNLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDO0lBQ0FDLGFBQWFDLE9BQU8sRUFBRTtRQUNwQixJQUFJLENBQUNBLFNBQVNDLFFBQ1osT0FBTyxLQUFLO1FBQ2QsTUFBTUMsZ0JBQWdCO1lBQUNyQiw0Q0FBRyxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ2xDLEtBQUssTUFBTSxDQUFDc0IsR0FBR0MsRUFBRSxJQUFJSixRQUFRSyxPQUFPLEdBQUk7WUFDdENILGNBQWNJLElBQUksQ0FBQ3pCLDRDQUFHLENBQUMsRUFBRUEsNENBQUdBLENBQUMwQixVQUFVLENBQUNILENBQUMsQ0FBQ25CLHdEQUFjQSxDQUFDLENBQUN1QixLQUFLLEVBQUUsS0FBSyxFQUFFSixDQUFDLENBQUNuQix3REFBY0EsQ0FBQyxDQUFDSixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hHLElBQUlzQixJQUFJSCxRQUFRQyxNQUFNLEdBQUcsR0FBRztnQkFDMUJDLGNBQWNJLElBQUksQ0FBQ3pCLDRDQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCO1FBQ0Y7UUFDQXFCLGNBQWNJLElBQUksQ0FBQ3pCLDRDQUFHLENB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M00sNENBQUcsQ0FBQyxZQUFZLEVBQUVBLDRDQUFHQSxDQUFDMEIsVUFBVSxDQUFDK0ssaUJBQWlCLCtCQUErQixFQUFFSyxVQUFVSSxJQUFJLENBQUMsRUFBRSxFQUFFSixVQUFVRSxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUVuSTtZQUNGO1FBQ0Y7SUFDRjtBQUNGO0FBS0UsQ0FDRixtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9zcWxpdGUtY29yZS9kaWFsZWN0LmpzPzUwN2MiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWxpYXNlZFRhYmxlLCBhbGlhc2VkVGFibGVDb2x1bW4sIG1hcENvbHVtbnNJbkFsaWFzZWRTUUxUb0FsaWFzLCBtYXBDb2x1bW5zSW5TUUxUb0FsaWFzIH0gZnJvbSBcIi4uL2FsaWFzLmpzXCI7XG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tIFwiLi4vY29sdW1uLmpzXCI7XG5pbXBvcnQgeyBlbnRpdHlLaW5kLCBpcyB9IGZyb20gXCIuLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IERyaXp6bGVFcnJvciB9IGZyb20gXCIuLi9lcnJvcnMuanNcIjtcbmltcG9ydCB7XG4gIGdldE9wZXJhdG9ycyxcbiAgZ2V0T3JkZXJCeU9wZXJhdG9ycyxcbiAgTWFueSxcbiAgbm9ybWFsaXplUmVsYXRpb24sXG4gIE9uZVxufSBmcm9tIFwiLi4vcmVsYXRpb25zLmpzXCI7XG5pbXBvcnQgeyBhbmQsIGVxIH0gZnJvbSBcIi4uL3NxbC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgUGFyYW0sIFNRTCwgc3FsIH0gZnJvbSBcIi4uL3NxbC9zcWwuanNcIjtcbmltcG9ydCB7IFNRTGl0ZUNvbHVtbiB9IGZyb20gXCIuL2NvbHVtbnMvaW5kZXguanNcIjtcbmltcG9ydCB7IFNRTGl0ZVRhYmxlIH0gZnJvbSBcIi4vdGFibGUuanNcIjtcbmltcG9ydCB7IFN1YnF1ZXJ5LCBTdWJxdWVyeUNvbmZpZyB9IGZyb20gXCIuLi9zdWJxdWVyeS5qc1wiO1xuaW1wb3J0IHsgZ2V0VGFibGVOYW1lLCBUYWJsZSB9IGZyb20gXCIuLi90YWJsZS5qc1wiO1xuaW1wb3J0IHsgb3JkZXJTZWxlY3RlZEZpZWxkcyB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuaW1wb3J0IHsgVmlld0Jhc2VDb25maWcgfSBmcm9tIFwiLi4vdmlldy1jb21tb24uanNcIjtcbmltcG9ydCB7IFNRTGl0ZVZpZXdCYXNlIH0gZnJvbSBcIi4vdmlldy1iYXNlLmpzXCI7XG5jbGFzcyBTUUxpdGVEaWFsZWN0IHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlRGlhbGVjdFwiO1xuICBlc2NhcGVOYW1lKG5hbWUpIHtcbiAgICByZXR1cm4gYFwiJHtuYW1lfVwiYDtcbiAgfVxuICBlc2NhcGVQYXJhbShfbnVtKSB7XG4gICAgcmV0dXJuIFwiP1wiO1xuICB9XG4gIGVzY2FwZVN0cmluZyhzdHIpIHtcbiAgICByZXR1cm4gYCcke3N0ci5yZXBsYWNlKC8nL2csIFwiJydcIil9J2A7XG4gIH1cbiAgYnVpbGRXaXRoQ1RFKHF1ZXJpZXMpIHtcbiAgICBpZiAoIXF1ZXJpZXM/Lmxlbmd0aClcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgY29uc3Qgd2l0aFNxbENodW5rcyA9IFtzcWxgd2l0aCBgXTtcbiAgICBmb3IgKGNvbnN0IFtpLCB3XSBvZiBxdWVyaWVzLmVudHJpZXMoKSkge1xuICAgICAgd2l0aFNxbENodW5rcy5wdXNoKHNxbGAke3NxbC5pZGVudGlmaWVyKHdbU3VicXVlcnlDb25maWddLmFsaWFzKX0gYXMgKCR7d1tTdWJxdWVyeUNvbmZpZ10uc3FsfSlgKTtcbiAgICAgIGlmIChpIDwgcXVlcmllcy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHdpdGhTcWxDaHVua3MucHVzaChzcWxgLCBgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgd2l0aFNxbENodW5rcy5wdXNoKHNxbGAgYCk7XG4gICAgcmV0dXJuIHNxbC5qb2luKHdpdGhTcWxDaHVua3MpO1xuICB9XG4gIGJ1aWxkRGVsZXRlUXVlcnkoeyB0YWJsZSwgd2hlcmUsIHJldHVybmluZywgd2l0aExpc3QgfSkge1xuICAgIGNvbnN0IHdpdGhTcWwgPSB0aGlzLmJ1aWxkV2l0aENURSh3aXRoTGlzdCk7XG4gICAgY29uc3QgcmV0dXJuaW5nU3FsID0gcmV0dXJuaW5nID8gc3FsYCByZXR1cm5pbmcgJHt0aGlzLmJ1aWxkU2VsZWN0aW9uKHJldHVybmluZywgeyBpc1NpbmdsZVRhYmxlOiB0cnVlIH0pfWAgOiB2b2lkIDA7XG4gICAgY29uc3Qgd2hlcmVTcWwgPSB3aGVyZSA/IHNxbGAgd2hlcmUgJHt3aGVyZX1gIDogdm9pZCAwO1xuICAgIHJldHVybiBzcWxgJHt3aXRoU3FsfWRlbGV0ZSBmcm9tICR7dGFibGV9JHt3aGVyZVNxbH0ke3JldHVybmluZ1NxbH1gO1xuICB9XG4gIGJ1aWxkVXBkYXRlU2V0KHRhYmxlLCBzZXQpIHtcbiAgICBjb25zdCBzZXRFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoc2V0KTtcbiAgICBjb25zdCBzZXRTaXplID0gc2V0RW50cmllcy5sZW5ndGg7XG4gICAgcmV0dXJuIHNxbC5qb2luKFxuICAgICAgc2V0RW50cmllcy5mbGF0TWFwKChbY29sTmFtZSwgdmFsdWVdLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRhYmxlW1RhYmxlLlN5bWJvbC5Db2x1bW5zXVtjb2xOYW1lXTtcbiAgICAgICAgY29uc3QgcmVzID0gc3FsYCR7c3FsLmlkZW50aWZpZXIoY29sLm5hbWUpfSA9ICR7dmFsdWV9YDtcbiAgICAgICAgaWYgKGkgPCBzZXRTaXplIC0gMSkge1xuICAgICAgICAgIHJldHVybiBbcmVzLCBzcWwucmF3KFwiLCBcIildO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbcmVzXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICBidWlsZFVwZGF0ZVF1ZXJ5KHsgdGFibGUsIHNldCwgd2hlcmUsIHJldHVybmluZywgd2l0aExpc3QgfSkge1xuICAgIGNvbnN0IHdpdGhTcWwgPSB0aGlzLmJ1aWxkV2l0aENURSh3aXRoTGlzdCk7XG4gICAgY29uc3Qgc2V0U3FsID0gdGhpcy5idWlsZFVwZGF0ZVNldCh0YWJsZSwgc2V0KTtcbiAgICBjb25zdCByZXR1cm5pbmdTcWwgPSByZXR1cm5pbmcgPyBzcWxgIHJldHVybmluZyAke3RoaXMuYnVpbGRTZWxlY3Rpb24ocmV0dXJuaW5nLCB7IGlzU2luZ2xlVGFibGU6IHRydWUgfSl9YCA6IHZvaWQgMDtcbiAgICBjb25zdCB3aGVyZVNxbCA9IHdoZXJlID8gc3FsYCB3aGVyZSAke3doZXJlfWAgOiB2b2lkIDA7XG4gICAgcmV0dXJuIHNxbGAke3dpdGhTcWx9dXBkYXRlICR7dGFibGV9IHNldCAke3NldFNxbH0ke3doZXJlU3FsfSR7cmV0dXJuaW5nU3FsfWA7XG4gIH1cbiAgLyoqXG4gICAqIEJ1aWxkcyBzZWxlY3Rpb24gU1FMIHdpdGggcHJvdmlkZWQgZmllbGRzL2V4cHJlc3Npb25zXG4gICAqXG4gICAqIEV4YW1wbGVzOlxuICAgKlxuICAgKiBgc2VsZWN0IDxzZWxlY3Rpb24+IGZyb21gXG4gICAqXG4gICAqIGBpbnNlcnQgLi4uIHJldHVybmluZyA8c2VsZWN0aW9uPmBcbiAgICpcbiAgICogSWYgYGlzU2luZ2xlVGFibGVgIGlzIHRydWUsIHRoZW4gY29sdW1ucyB3b24ndCBiZSBwcmVmaXhlZCB3aXRoIHRhYmxlIG5hbWVcbiAgICovXG4gIGJ1aWxkU2VsZWN0aW9uKGZpZWxkcywgeyBpc1NpbmdsZVRhYmxlID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgY29uc3QgY29sdW1uc0xlbiA9IGZpZWxkcy5sZW5ndGg7XG4gICAgY29uc3QgY2h1bmtzID0gZmllbGRzLmZsYXRNYXAoKHsgZmllbGQgfSwgaSkgPT4ge1xuICAgICAgY29uc3QgY2h1bmsgPSBbXTtcbiAgICAgIGlmIChpcyhmaWVsZCwgU1FMLkFsaWFzZWQpICYmIGZpZWxkLmlzU2VsZWN0aW9uRmllbGQpIHtcbiAgICAgICAgY2h1bmsucHVzaChzcWwuaWRlbnRpZmllcihmaWVsZC5maWVsZEFsaWFzKSk7XG4gICAgICB9IGVsc2UgaWYgKGlzKGZpZWxkLCBTUUwuQWxpYXNlZCkgfHwgaXMoZmllbGQsIFNRTCkpIHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBpcyhmaWVsZCwgU1FMLkFsaWFzZWQpID8gZmllbGQuc3FsIDogZmllbGQ7XG4gICAgICAgIGlmIChpc1NpbmdsZVRhYmxlKSB7XG4gICAgICAgICAgY2h1bmsucHVzaChcbiAgICAgICAgICAgIG5ldyBTUUwoXG4gICAgICAgICAgICAgIHF1ZXJ5LnF1ZXJ5Q2h1bmtzLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpcyhjLCBDb2x1bW4pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gc3FsLmlkZW50aWZpZXIoYy5uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaHVuay5wdXNoKHF1ZXJ5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXMoZmllbGQsIFNRTC5BbGlhc2VkKSkge1xuICAgICAgICAgIGNodW5rLnB1c2goc3FsYCBhcyAke3NxbC5pZGVudGlmaWVyKGZpZWxkLmZpZWxkQWxpYXMpfWApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzKGZpZWxkLCBDb2x1bW4pKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IGZpZWxkLnRhYmxlW1RhYmxlLlN5bWJvbC5OYW1lXTtcbiAgICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGZpZWxkLm5hbWU7XG4gICAgICAgIGlmIChpc1NpbmdsZVRhYmxlKSB7XG4gICAgICAgICAgY2h1bmsucHVzaChzcWwuaWRlbnRpZmllcihjb2x1bW5OYW1lKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2h1bmsucHVzaChzcWxgJHtzcWwuaWRlbnRpZmllcih0YWJsZU5hbWUpfS4ke3NxbC5pZGVudGlmaWVyKGNvbHVtbk5hbWUpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaSA8IGNvbHVtbnNMZW4gLSAxKSB7XG4gICAgICAgIGNodW5rLnB1c2goc3FsYCwgYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2h1bms7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNxbC5qb2luKGNodW5rcyk7XG4gIH1cbiAgYnVpbGRTZWxlY3RRdWVyeSh7XG4gICAgd2l0aExpc3QsXG4gICAgZmllbGRzLFxuICAgIGZpZWxkc0ZsYXQsXG4gICAgd2hlcmUsXG4gICAgaGF2aW5nLFxuICAgIHRhYmxlLFxuICAgIGpvaW5zLFxuICAgIG9yZGVyQnksXG4gICAgZ3JvdXBCeSxcbiAgICBsaW1pdCxcbiAgICBvZmZzZXQsXG4gICAgZGlzdGluY3QsXG4gICAgc2V0T3BlcmF0b3JzXG4gIH0pIHtcbiAgICBjb25zdCBmaWVsZHNMaXN0ID0gZmllbGRzRmxhdCA/PyBvcmRlclNlbGVjdGVkRmllbGRzKGZpZWxkcyk7XG4gICAgZm9yIChjb25zdCBmIG9mIGZpZWxkc0xpc3QpIHtcbiAgICAgIGlmIChpcyhmLmZpZWxkLCBDb2x1bW4pICYmIGdldFRhYmxlTmFtZShmLmZpZWxkLnRhYmxlKSAhPT0gKGlzKHRhYmxlLCBTdWJxdWVyeSkgPyB0YWJsZVtTdWJxdWVyeUNvbmZpZ10uYWxpYXMgOiBpcyh0YWJsZSwgU1FMaXRlVmlld0Jhc2UpID8gdGFibGVbVmlld0Jhc2VDb25maWddLm5hbWUgOiBpcyh0YWJsZSwgU1FMKSA/IHZvaWQgMCA6IGdldFRhYmxlTmFtZSh0YWJsZSkpICYmICEoKHRhYmxlMikgPT4gam9pbnM/LnNvbWUoXG4gICAgICAgICh7IGFsaWFzIH0pID0+IGFsaWFzID09PSAodGFibGUyW1RhYmxlLlN5bWJvbC5Jc0FsaWFzXSA/IGdldFRhYmxlTmFtZSh0YWJsZTIpIDogdGFibGUyW1RhYmxlLlN5bWJvbC5CYXNlTmFtZV0pXG4gICAgICApKShmLmZpZWxkLnRhYmxlKSkge1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBnZXRUYWJsZU5hbWUoZi5maWVsZC50YWJsZSk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgWW91ciBcIiR7Zi5wYXRoLmpvaW4oXCItPlwiKX1cIiBmaWVsZCByZWZlcmVuY2VzIGEgY29sdW1uIFwiJHt0YWJsZU5hbWV9XCIuXCIke2YuZmllbGQubmFtZX1cIiwgYnV0IHRoZSB0YWJsZSBcIiR7dGFibGVOYW1lfVwiIGlzIG5vdCBwYXJ0IG9mIHRoZSBxdWVyeSEgRGlkIHlvdSBmb3JnZXQgdG8gam9pbiBpdD9gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGlzU2luZ2xlVGFibGUgPSAham9pbnMgfHwgam9pbnMubGVuZ3RoID09PSAwO1xuICAgIGNvbnN0IHdpdGhTcWwgPSB0aGlzLmJ1aWxkV2l0aENURSh3aXRoTGlzdCk7XG4gICAgY29uc3QgZGlzdGluY3RTcWwgPSBkaXN0aW5jdCA/IHNxbGAgZGlzdGluY3RgIDogdm9pZCAwO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuYnVpbGRTZWxlY3Rpb24oZmllbGRzTGlzdCwgeyBpc1NpbmdsZVRhYmxlIH0pO1xuICAgIGNvbnN0IHRhYmxlU3FsID0gKCgpID0+IHtcbiAgICAgIGlmIChpcyh0YWJsZSwgVGFibGUpICYmIHRhYmxlW1RhYmxlLlN5bWJvbC5PcmlnaW5hbE5hbWVdICE9PSB0YWJsZVtUYWJsZS5TeW1ib2wuTmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIHNxbGAke3NxbC5pZGVudGlmaWVyKHRhYmxlW1RhYmxlLlN5bWJvbC5PcmlnaW5hbE5hbWVdKX0gJHtzcWwuaWRlbnRpZmllcih0YWJsZVtUYWJsZS5TeW1ib2wuTmFtZV0pfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGFibGU7XG4gICAgfSkoKTtcbiAgICBjb25zdCBqb2luc0FycmF5ID0gW107XG4gICAgaWYgKGpvaW5zKSB7XG4gICAgICBmb3IgKGNvbnN0IFtpbmRleCwgam9pbk1ldGFdIG9mIGpvaW5zLmVudHJpZXMoKSkge1xuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICBqb2luc0FycmF5LnB1c2goc3FsYCBgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YWJsZTIgPSBqb2luTWV0YS50YWJsZTtcbiAgICAgICAgaWYgKGlzKHRhYmxlMiwgU1FMaXRlVGFibGUpKSB7XG4gICAgICAgICAgY29uc3QgdGFibGVOYW1lID0gdGFibGUyW1NRTGl0ZVRhYmxlLlN5bWJvbC5OYW1lXTtcbiAgICAgICAgICBjb25zdCB0YWJsZVNjaGVtYSA9IHRhYmxlMltTUUxpdGVUYWJsZS5TeW1ib2wuU2NoZW1hXTtcbiAgICAgICAgICBjb25zdCBvcmlnVGFibGVOYW1lID0gdGFibGUyW1NRTGl0ZVRhYmxlLlN5bWJvbC5PcmlnaW5hbE5hbWVdO1xuICAgICAgICAgIGNvbnN0IGFsaWFzID0gdGFibGVOYW1lID09PSBvcmlnVGFibGVOYW1lID8gdm9pZCAwIDogam9pbk1ldGEuYWxpYXM7XG4gICAgICAgICAgam9pbnNBcnJheS5wdXNoKFxuICAgICAgICAgICAgc3FsYCR7c3FsLnJhdyhqb2luTWV0YS5qb2luVHlwZSl9IGpvaW4gJHt0YWJsZVNjaGVtYSA/IHNxbGAke3NxbC5pZGVudGlmaWVyKHRhYmxlU2NoZW1hKX0uYCA6IHZvaWQgMH0ke3NxbC5pZGVudGlmaWVyKG9yaWdUYWJsZU5hbWUpfSR7YWxpYXMgJiYgc3FsYCAke3NxbC5pZGVudGlmaWVyKGFsaWFzKX1gfSBvbiAke2pvaW5NZXRhLm9ufWBcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGpvaW5zQXJyYXkucHVzaChcbiAgICAgICAgICAgIHNxbGAke3NxbC5yYXcoam9pbk1ldGEuam9pblR5cGUpfSBqb2luICR7dGFibGUyfSBvbiAke2pvaW5NZXRhLm9ufWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA8IGpvaW5zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICBqb2luc0FycmF5LnB1c2goc3FsYCBgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBqb2luc1NxbCA9IHNxbC5qb2luKGpvaW5zQXJyYXkpO1xuICAgIGNvbnN0IHdoZXJlU3FsID0gd2hlcmUgPyBzcWxgIHdoZXJlICR7d2hlcmV9YCA6IHZvaWQgMDtcbiAgICBjb25zdCBoYXZpbmdTcWwgPSBoYXZpbmcgPyBzcWxgIGhhdmluZyAke2hhdmluZ31gIDogdm9pZCAwO1xuICAgIGNvbnN0IG9yZGVyQnlMaXN0ID0gW107XG4gICAgaWYgKG9yZGVyQnkpIHtcbiAgICAgIGZvciAoY29uc3QgW2luZGV4LCBvcmRlckJ5VmFsdWVdIG9mIG9yZGVyQnkuZW50cmllcygpKSB7XG4gICAgICAgIG9yZGVyQnlMaXN0LnB1c2gob3JkZXJCeVZhbHVlKTtcbiAgICAgICAgaWYgKGluZGV4IDwgb3JkZXJCeS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgb3JkZXJCeUxpc3QucHVzaChzcWxgLCBgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBncm91cEJ5TGlzdCA9IFtdO1xuICAgIGlmIChncm91cEJ5KSB7XG4gICAgICBmb3IgKGNvbnN0IFtpbmRleCwgZ3JvdXBCeVZhbHVlXSBvZiBncm91cEJ5LmVudHJpZXMoKSkge1xuICAgICAgICBncm91cEJ5TGlzdC5wdXNoKGdyb3VwQnlWYWx1ZSk7XG4gICAgICAgIGlmIChpbmRleCA8IGdyb3VwQnkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIGdyb3VwQnlMaXN0LnB1c2goc3FsYCwgYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZ3JvdXBCeVNxbCA9IGdyb3VwQnlMaXN0Lmxlbmd0aCA+IDAgPyBzcWxgIGdyb3VwIGJ5ICR7c3FsLmpvaW4oZ3JvdXBCeUxpc3QpfWAgOiB2b2lkIDA7XG4gICAgY29uc3Qgb3JkZXJCeVNxbCA9IG9yZGVyQnlMaXN0Lmxlbmd0aCA+IDAgPyBzcWxgIG9yZGVyIGJ5ICR7c3FsLmpvaW4ob3JkZXJCeUxpc3QpfWAgOiB2b2lkIDA7XG4gICAgY29uc3QgbGltaXRTcWwgPSBsaW1pdCA/IHNxbGAgbGltaXQgJHtsaW1pdH1gIDogdm9pZCAwO1xuICAgIGNvbnN0IG9mZnNldFNxbCA9IG9mZnNldCA/IHNxbGAgb2Zmc2V0ICR7b2Zmc2V0fWAgOiB2b2lkIDA7XG4gICAgY29uc3QgZmluYWxRdWVyeSA9IHNxbGAke3dpdGhTcWx9c2VsZWN0JHtkaXN0aW5jdFNxbH0gJHtzZWxlY3Rpb259IGZyb20gJHt0YWJsZVNxbH0ke2pvaW5zU3FsfSR7d2hlcmVTcWx9JHtncm91cEJ5U3FsfSR7aGF2aW5nU3FsfSR7b3JkZXJCeVNxbH0ke2xpbWl0U3FsfSR7b2Zmc2V0U3FsfWA7XG4gICAgaWYgKHNldE9wZXJhdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZFNldE9wZXJhdGlvbnMoZmluYWxRdWVyeSwgc2V0T3BlcmF0b3JzKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbmFsUXVlcnk7XG4gIH1cbiAgYnVpbGRTZXRPcGVyYXRpb25zKGxlZnRTZWxlY3QsIHNldE9wZXJhdG9ycykge1xuICAgIGNvbnN0IFtzZXRPcGVyYXRvciwgLi4ucmVzdF0gPSBzZXRPcGVyYXRvcnM7XG4gICAgaWYgKCFzZXRPcGVyYXRvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHBhc3MgdW5kZWZpbmVkIHZhbHVlcyB0byBhbnkgc2V0IG9wZXJhdG9yXCIpO1xuICAgIH1cbiAgICBpZiAocmVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkU2V0T3BlcmF0aW9uUXVlcnkoeyBsZWZ0U2VsZWN0LCBzZXRPcGVyYXRvciB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRTZXRPcGVyYXRpb25zKFxuICAgICAgdGhpcy5idWlsZFNldE9wZXJhdGlvblF1ZXJ5KHsgbGVmdFNlbGVjdCwgc2V0T3BlcmF0b3IgfSksXG4gICAgICByZXN0XG4gICAgKTtcbiAgfVxuICBidWlsZFNldE9wZXJhdGlvblF1ZXJ5KHtcbiAgICBsZWZ0U2VsZWN0LFxuICAgIHNldE9wZXJhdG9yOiB7IHR5cGUsIGlzQWxsLCByaWdodFNlbGVjdCwgbGltaXQsIG9yZGVyQnksIG9mZnNldCB9XG4gIH0pIHtcbiAgICBjb25zdCBsZWZ0Q2h1bmsgPSBzcWxgJHtsZWZ0U2VsZWN0LmdldFNRTCgpfSBgO1xuICAgIGNvbnN0IHJpZ2h0Q2h1bmsgPSBzcWxgJHtyaWdodFNlbGVjdC5nZXRTUUwoKX1gO1xuICAgIGxldCBvcmRlckJ5U3FsO1xuICAgIGlmIChvcmRlckJ5ICYmIG9yZGVyQnkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgb3JkZXJCeVZhbHVlcyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBzaW5nbGVPcmRlckJ5IG9mIG9yZGVyQnkpIHtcbiAgICAgICAgaWYgKGlzKHNpbmdsZU9yZGVyQnksIFNRTGl0ZUNvbHVtbikpIHtcbiAgICAgICAgICBvcmRlckJ5VmFsdWVzLnB1c2goc3FsLmlkZW50aWZpZXIoc2luZ2xlT3JkZXJCeS5uYW1lKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXMoc2luZ2xlT3JkZXJCeSwgU1FMKSkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2luZ2xlT3JkZXJCeS5xdWVyeUNodW5rcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBzaW5nbGVPcmRlckJ5LnF1ZXJ5Q2h1bmtzW2ldO1xuICAgICAgICAgICAgaWYgKGlzKGNodW5rLCBTUUxpdGVDb2x1bW4pKSB7XG4gICAgICAgICAgICAgIHNpbmdsZU9yZGVyQnkucXVlcnlDaHVua3NbaV0gPSBzcWwuaWRlbnRpZmllcihjaHVuay5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgb3JkZXJCeVZhbHVlcy5wdXNoKHNxbGAke3NpbmdsZU9yZGVyQnl9YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3JkZXJCeVZhbHVlcy5wdXNoKHNxbGAke3NpbmdsZU9yZGVyQnl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9yZGVyQnlTcWwgPSBzcWxgIG9yZGVyIGJ5ICR7c3FsLmpvaW4ob3JkZXJCeVZhbHVlcywgc3FsYCwgYCl9YDtcbiAgICB9XG4gICAgY29uc3QgbGltaXRTcWwgPSBsaW1pdCA/IHNxbGAgbGltaXQgJHtsaW1pdH1gIDogdm9pZCAwO1xuICAgIGNvbnN0IG9wZXJhdG9yQ2h1bmsgPSBzcWwucmF3KGAke3R5cGV9ICR7aXNBbGwgPyBcImFsbCBcIiA6IFwiXCJ9YCk7XG4gICAgY29uc3Qgb2Zmc2V0U3FsID0gb2Zmc2V0ID8gc3FsYCBvZmZzZXQgJHtvZmZzZXR9YCA6IHZvaWQgMDtcbiAgICByZXR1cm4gc3FsYCR7bGVmdENodW5rfSR7b3BlcmF0b3JDaHVua30ke3JpZ2h0Q2h1bmt9JHtvcmRlckJ5U3FsfSR7bGltaXRTcWx9JHtvZmZzZXRTcWx9YDtcbiAgfVxuICBidWlsZEluc2VydFF1ZXJ5KHsgdGFibGUsIHZhbHVlcywgb25Db25mbGljdCwgcmV0dXJuaW5nLCB3aXRoTGlzdCB9KSB7XG4gICAgY29uc3QgdmFsdWVzU3FsTGlzdCA9IFtdO1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0YWJsZVtUYWJsZS5TeW1ib2wuQ29sdW1uc107XG4gICAgY29uc3QgY29sRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGNvbHVtbnMpO1xuICAgIGNvbnN0IGluc2VydE9yZGVyID0gY29sRW50cmllcy5tYXAoKFssIGNvbHVtbl0pID0+IHNxbC5pZGVudGlmaWVyKGNvbHVtbi5uYW1lKSk7XG4gICAgZm9yIChjb25zdCBbdmFsdWVJbmRleCwgdmFsdWVdIG9mIHZhbHVlcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlTGlzdCA9IFtdO1xuICAgICAgZm9yIChjb25zdCBbZmllbGROYW1lLCBjb2xdIG9mIGNvbEVudHJpZXMpIHtcbiAgICAgICAgY29uc3QgY29sVmFsdWUgPSB2YWx1ZVtmaWVsZE5hbWVdO1xuICAgICAgICBpZiAoY29sVmFsdWUgPT09IHZvaWQgMCB8fCBpcyhjb2xWYWx1ZSwgUGFyYW0pICYmIGNvbFZhbHVlLnZhbHVlID09PSB2b2lkIDApIHtcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlO1xuICAgICAgICAgIGlmIChjb2wuZGVmYXVsdCAhPT0gbnVsbCAmJiBjb2wuZGVmYXVsdCAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBpcyhjb2wuZGVmYXVsdCwgU1FMKSA/IGNvbC5kZWZhdWx0IDogc3FsLnBhcmFtKGNvbC5kZWZhdWx0LCBjb2wpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY29sLmRlZmF1bHRGbiAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0Rm5SZXN1bHQgPSBjb2wuZGVmYXVsdEZuKCk7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBpcyhkZWZhdWx0Rm5SZXN1bHQsIFNRTCkgPyBkZWZhdWx0Rm5SZXN1bHQgOiBzcWwucGFyYW0oZGVmYXVsdEZuUmVzdWx0LCBjb2wpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBzcWxgbnVsbGA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlTGlzdC5wdXNoKGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWVMaXN0LnB1c2goY29sVmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YWx1ZXNTcWxMaXN0LnB1c2godmFsdWVMaXN0KTtcbiAgICAgIGlmICh2YWx1ZUluZGV4IDwgdmFsdWVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgdmFsdWVzU3FsTGlzdC5wdXNoKHNxbGAsIGApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB3aXRoU3FsID0gdGhpcy5idWlsZFdpdGhDVEUod2l0aExpc3QpO1xuICAgIGNvbnN0IHZhbHVlc1NxbCA9IHNxbC5qb2luKHZhbHVlc1NxbExpc3QpO1xuICAgIGNvbnN0IHJldHVybmluZ1NxbCA9IHJldHVybmluZyA/IHNxbGAgcmV0dXJuaW5nICR7dGhpcy5idWlsZFNlbGVjdGlvbihyZXR1cm5pbmcsIHsgaXNTaW5nbGVUYWJsZTogdHJ1ZSB9KX1gIDogdm9pZCAwO1xuICAgIGNvbnN0IG9uQ29uZmxpY3RTcWwgPSBvbkNvbmZsaWN0ID8gc3FsYCBvbiBjb25mbGljdCAke29uQ29uZmxpY3R9YCA6IHZvaWQgMDtcbiAgICByZXR1cm4gc3FsYCR7d2l0aFNxbH1pbnNlcnQgaW50byAke3RhYmxlfSAke2luc2VydE9yZGVyfSB2YWx1ZXMgJHt2YWx1ZXNTcWx9JHtvbkNvbmZsaWN0U3FsfSR7cmV0dXJuaW5nU3FsfWA7XG4gIH1cbiAgc3FsVG9RdWVyeShzcWwyKSB7XG4gICAgcmV0dXJuIHNxbDIudG9RdWVyeSh7XG4gICAgICBlc2NhcGVOYW1lOiB0aGlzLmVzY2FwZU5hbWUsXG4gICAgICBlc2NhcGVQYXJhbTogdGhpcy5lc2NhcGVQYXJhbSxcbiAgICAgIGVzY2FwZVN0cmluZzogdGhpcy5lc2NhcGVTdHJpbmdcbiAgICB9KTtcbiAgfVxuICBidWlsZFJlbGF0aW9uYWxRdWVyeSh7XG4gICAgZnVsbFNjaGVtYSxcbiAgICBzY2hlbWEsXG4gICAgdGFibGVOYW1lc01hcCxcbiAgICB0YWJsZSxcbiAgICB0YWJsZUNvbmZpZyxcbiAgICBxdWVyeUNvbmZpZzogY29uZmlnLFxuICAgIHRhYmxlQWxpYXMsXG4gICAgbmVzdGVkUXVlcnlSZWxhdGlvbixcbiAgICBqb2luT25cbiAgfSkge1xuICAgIGxldCBzZWxlY3Rpb24gPSBbXTtcbiAgICBsZXQgbGltaXQsIG9mZnNldCwgb3JkZXJCeSA9IFtdLCB3aGVyZTtcbiAgICBjb25zdCBqb2lucyA9IFtdO1xuICAgIGlmIChjb25maWcgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbkVudHJpZXMgPSBPYmplY3QuZW50cmllcyh0YWJsZUNvbmZpZy5jb2x1bW5zKTtcbiAgICAgIHNlbGVjdGlvbiA9IHNlbGVjdGlvbkVudHJpZXMubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICAgIGRiS2V5OiB2YWx1ZS5uYW1lLFxuICAgICAgICB0c0tleToga2V5LFxuICAgICAgICBmaWVsZDogYWxpYXNlZFRhYmxlQ29sdW1uKHZhbHVlLCB0YWJsZUFsaWFzKSxcbiAgICAgICAgcmVsYXRpb25UYWJsZVRzS2V5OiB2b2lkIDAsXG4gICAgICAgIGlzSnNvbjogZmFsc2UsXG4gICAgICAgIHNlbGVjdGlvbjogW11cbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYWxpYXNlZENvbHVtbnMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRhYmxlQ29uZmlnLmNvbHVtbnMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBba2V5LCBhbGlhc2VkVGFibGVDb2x1bW4odmFsdWUsIHRhYmxlQWxpYXMpXSlcbiAgICAgICk7XG4gICAgICBpZiAoY29uZmlnLndoZXJlKSB7XG4gICAgICAgIGNvbnN0IHdoZXJlU3FsID0gdHlwZW9mIGNvbmZpZy53aGVyZSA9PT0gXCJmdW5jdGlvblwiID8gY29uZmlnLndoZXJlKGFsaWFzZWRDb2x1bW5zLCBnZXRPcGVyYXRvcnMoKSkgOiBjb25maWcud2hlcmU7XG4gICAgICAgIHdoZXJlID0gd2hlcmVTcWwgJiYgbWFwQ29sdW1uc0luU1FMVG9BbGlhcyh3aGVyZVNxbCwgdGFibGVBbGlhcyk7XG4gICAgICB9XG4gICAgICBjb25zdCBmaWVsZHNTZWxlY3Rpb24gPSBbXTtcbiAgICAgIGxldCBzZWxlY3RlZENvbHVtbnMgPSBbXTtcbiAgICAgIGlmIChjb25maWcuY29sdW1ucykge1xuICAgICAgICBsZXQgaXNJbmNsdWRlTW9kZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IFtmaWVsZCwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5jb2x1bW5zKSkge1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZpZWxkIGluIHRhYmxlQ29uZmlnLmNvbHVtbnMpIHtcbiAgICAgICAgICAgIGlmICghaXNJbmNsdWRlTW9kZSAmJiB2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICBpc0luY2x1ZGVNb2RlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlbGVjdGVkQ29sdW1ucy5wdXNoKGZpZWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkQ29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgc2VsZWN0ZWRDb2x1bW5zID0gaXNJbmNsdWRlTW9kZSA/IHNlbGVjdGVkQ29sdW1ucy5maWx0ZXIoKGMpID0+IGNvbmZpZy5jb2x1bW5zPy5bY10gPT09IHRydWUpIDogT2JqZWN0LmtleXModGFibGVDb25maWcuY29sdW1ucykuZmlsdGVyKChrZXkpID0+ICFzZWxlY3RlZENvbHVtbnMuaW5jbHVkZXMoa2V5KSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdGVkQ29sdW1ucyA9IE9iamVjdC5rZXlzKHRhYmxlQ29uZmlnLmNvbHVtbnMpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBzZWxlY3RlZENvbHVtbnMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gdGFibGVDb25maWcuY29sdW1uc1tmaWVsZF07XG4gICAgICAgIGZpZWxkc1NlbGVjdGlvbi5wdXNoKHsgdHNLZXk6IGZpZWxkLCB2YWx1ZTogY29sdW1uIH0pO1xuICAgICAgfVxuICAgICAgbGV0IHNlbGVjdGVkUmVsYXRpb25zID0gW107XG4gICAgICBpZiAoY29uZmlnLndpdGgpIHtcbiAgICAgICAgc2VsZWN0ZWRSZWxhdGlvbnMgPSBPYmplY3QuZW50cmllcyhjb25maWcud2l0aCkuZmlsdGVyKChlbnRyeSkgPT4gISFlbnRyeVsxXSkubWFwKChbdHNLZXksIHF1ZXJ5Q29uZmlnXSkgPT4gKHsgdHNLZXksIHF1ZXJ5Q29uZmlnLCByZWxhdGlvbjogdGFibGVDb25maWcucmVsYXRpb25zW3RzS2V5XSB9KSk7XG4gICAgICB9XG4gICAgICBsZXQgZXh0cmFzO1xuICAgICAgaWYgKGNvbmZpZy5leHRyYXMpIHtcbiAgICAgICAgZXh0cmFzID0gdHlwZW9mIGNvbmZpZy5leHRyYXMgPT09IFwiZnVuY3Rpb25cIiA/IGNvbmZpZy5leHRyYXMoYWxpYXNlZENvbHVtbnMsIHsgc3FsIH0pIDogY29uZmlnLmV4dHJhcztcbiAgICAgICAgZm9yIChjb25zdCBbdHNLZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhleHRyYXMpKSB7XG4gICAgICAgICAgZmllbGRzU2VsZWN0aW9uLnB1c2goe1xuICAgICAgICAgICAgdHNLZXksXG4gICAgICAgICAgICB2YWx1ZTogbWFwQ29sdW1uc0luQWxpYXNlZFNRTFRvQWxpYXModmFsdWUsIHRhYmxlQWxpYXMpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgeyB0c0tleSwgdmFsdWUgfSBvZiBmaWVsZHNTZWxlY3Rpb24pIHtcbiAgICAgICAgc2VsZWN0aW9uLnB1c2goe1xuICAgICAgICAgIGRiS2V5OiBpcyh2YWx1ZSwgU1FMLkFsaWFzZWQpID8gdmFsdWUuZmllbGRBbGlhcyA6IHRhYmxlQ29uZmlnLmNvbHVtbnNbdHNLZXldLm5hbWUsXG4gICAgICAgICAgdHNLZXksXG4gICAgICAgICAgZmllbGQ6IGlzKHZhbHVlLCBDb2x1bW4pID8gYWxpYXNlZFRhYmxlQ29sdW1uKHZhbHVlLCB0YWJsZUFsaWFzKSA6IHZhbHVlLFxuICAgICAgICAgIHJlbGF0aW9uVGFibGVUc0tleTogdm9pZCAwLFxuICAgICAgICAgIGlzSnNvbjogZmFsc2UsXG4gICAgICAgICAgc2VsZWN0aW9uOiBbXVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGxldCBvcmRlckJ5T3JpZyA9IHR5cGVvZiBjb25maWcub3JkZXJCeSA9PT0gXCJmdW5jdGlvblwiID8gY29uZmlnLm9yZGVyQnkoYWxpYXNlZENvbHVtbnMsIGdldE9yZGVyQnlPcGVyYXRvcnMoKSkgOiBjb25maWcub3JkZXJCeSA/PyBbXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShvcmRlckJ5T3JpZykpIHtcbiAgICAgICAgb3JkZXJCeU9yaWcgPSBbb3JkZXJCeU9yaWddO1xuICAgICAgfVxuICAgICAgb3JkZXJCeSA9IG9yZGVyQnlPcmlnLm1hcCgob3JkZXJCeVZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChpcyhvcmRlckJ5VmFsdWUsIENvbHVtbikpIHtcbiAgICAgICAgICByZXR1cm4gYWxpYXNlZFRhYmxlQ29sdW1uKG9yZGVyQnlWYWx1ZSwgdGFibGVBbGlhcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcENvbHVtbnNJblNRTFRvQWxpYXMob3JkZXJCeVZhbHVlLCB0YWJsZUFsaWFzKTtcbiAgICAgIH0pO1xuICAgICAgbGltaXQgPSBjb25maWcubGltaXQ7XG4gICAgICBvZmZzZXQgPSBjb25maWcub2Zmc2V0O1xuICAgICAgZm9yIChjb25zdCB7XG4gICAgICAgIHRzS2V5OiBzZWxlY3RlZFJlbGF0aW9uVHNLZXksXG4gICAgICAgIHF1ZXJ5Q29uZmlnOiBzZWxlY3RlZFJlbGF0aW9uQ29uZmlnVmFsdWUsXG4gICAgICAgIHJlbGF0aW9uXG4gICAgICB9IG9mIHNlbGVjdGVkUmVsYXRpb25zKSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSZWxhdGlvbiA9IG5vcm1hbGl6ZVJlbGF0aW9uKHNjaGVtYSwgdGFibGVOYW1lc01hcCwgcmVsYXRpb24pO1xuICAgICAgICBjb25zdCByZWxhdGlvblRhYmxlTmFtZSA9IHJlbGF0aW9uLnJlZmVyZW5jZWRUYWJsZVtUYWJsZS5TeW1ib2wuTmFtZV07XG4gICAgICAgIGNvbnN0IHJlbGF0aW9uVGFibGVUc05hbWUgPSB0YWJsZU5hbWVzTWFwW3JlbGF0aW9uVGFibGVOYW1lXTtcbiAgICAgICAgY29uc3QgcmVsYXRpb25UYWJsZUFsaWFzID0gYCR7dGFibGVBbGlhc31fJHtzZWxlY3RlZFJlbGF0aW9uVHNLZXl9YDtcbiAgICAgICAgY29uc3Qgam9pbk9uMiA9IGFuZChcbiAgICAgICAgICAuLi5ub3JtYWxpemVkUmVsYXRpb24uZmllbGRzLm1hcChcbiAgICAgICAgICAgIChmaWVsZDIsIGkpID0+IGVxKFxuICAgICAgICAgICAgICBhbGlhc2VkVGFibGVDb2x1bW4obm9ybWFsaXplZFJlbGF0aW9uLnJlZmVyZW5jZXNbaV0sIHJlbGF0aW9uVGFibGVBbGlhcyksXG4gICAgICAgICAgICAgIGFsaWFzZWRUYWJsZUNvbHVtbihmaWVsZDIsIHRhYmxlQWxpYXMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBidWlsdFJlbGF0aW9uID0gdGhpcy5idWlsZFJlbGF0aW9uYWxRdWVyeSh7XG4gICAgICAgICAgZnVsbFNjaGVtYSxcbiAgICAgICAgICBzY2hlbWEsXG4gICAgICAgICAgdGFibGVOYW1lc01hcCxcbiAgICAgICAgICB0YWJsZTogZnVsbFNjaGVtYVtyZWxhdGlvblRhYmxlVHNOYW1lXSxcbiAgICAgICAgICB0YWJsZUNvbmZpZzogc2NoZW1hW3JlbGF0aW9uVGFibGVUc05hbWVdLFxuICAgICAgICAgIHF1ZXJ5Q29uZmlnOiBpcyhyZWxhdGlvbiwgT25lKSA/IHNlbGVjdGVkUmVsYXRpb25Db25maWdWYWx1ZSA9PT0gdHJ1ZSA/IHsgbGltaXQ6IDEgfSA6IHsgLi4uc2VsZWN0ZWRSZWxhdGlvbkNvbmZpZ1ZhbHVlLCBsaW1pdDogMSB9IDogc2VsZWN0ZWRSZWxhdGlvbkNvbmZpZ1ZhbHVlLFxuICAgICAgICAgIHRhYmxlQWxpYXM6IHJlbGF0aW9uVGFibGVBbGlhcyxcbiAgICAgICAgICBqb2luT246IGpvaW5PbjIsXG4gICAgICAgICAgbmVzdGVkUXVlcnlSZWxhdGlvbjogcmVsYXRpb25cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gc3FsYCgke2J1aWx0UmVsYXRpb24uc3FsfSlgLmFzKHNlbGVjdGVkUmVsYXRpb25Uc0tleSk7XG4gICAgICAgIHNlbGVjdGlvbi5wdXNoKHtcbiAgICAgICAgICBkYktleTogc2VsZWN0ZWRSZWxhdGlvblRzS2V5LFxuICAgICAgICAgIHRzS2V5OiBzZWxlY3RlZFJlbGF0aW9uVHNLZXksXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcmVsYXRpb25UYWJsZVRzS2V5OiByZWxhdGlvblRhYmxlVHNOYW1lLFxuICAgICAgICAgIGlzSnNvbjogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3Rpb246IGJ1aWx0UmVsYXRpb24uc2VsZWN0aW9uXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IERyaXp6bGVFcnJvcih7XG4gICAgICAgIG1lc3NhZ2U6IGBObyBmaWVsZHMgc2VsZWN0ZWQgZm9yIHRhYmxlIFwiJHt0YWJsZUNvbmZpZy50c05hbWV9XCIgKFwiJHt0YWJsZUFsaWFzfVwiKS4gWW91IG5lZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgaXRlbSBpbiBcImNvbHVtbnNcIiwgXCJ3aXRoXCIgb3IgXCJleHRyYXNcIi4gSWYgeW91IG5lZWQgdG8gc2VsZWN0IGFsbCBjb2x1bW5zLCBvbWl0IHRoZSBcImNvbHVtbnNcIiBrZXkgb3Igc2V0IGl0IHRvIHVuZGVmaW5lZC5gXG4gICAgICB9KTtcbiAgICB9XG4gICAgbGV0IHJlc3VsdDtcbiAgICB3aGVyZSA9IGFuZChqb2luT24sIHdoZXJlKTtcbiAgICBpZiAobmVzdGVkUXVlcnlSZWxhdGlvbikge1xuICAgICAgbGV0IGZpZWxkID0gc3FsYGpzb25fYXJyYXkoJHtzcWwuam9pbihcbiAgICAgICAgc2VsZWN0aW9uLm1hcChcbiAgICAgICAgICAoeyBmaWVsZDogZmllbGQyIH0pID0+IGlzKGZpZWxkMiwgU1FMaXRlQ29sdW1uKSA/IHNxbC5pZGVudGlmaWVyKGZpZWxkMi5uYW1lKSA6IGlzKGZpZWxkMiwgU1FMLkFsaWFzZWQpID8gZmllbGQyLnNxbCA6IGZpZWxkMlxuICAgICAgICApLFxuICAgICAgICBzcWxgLCBgXG4gICAgICApfSlgO1xuICAgICAgaWYgKGlzKG5lc3RlZFF1ZXJ5UmVsYXRpb24sIE1hbnkpKSB7XG4gICAgICAgIGZpZWxkID0gc3FsYGNvYWxlc2NlKGpzb25fZ3JvdXBfYXJyYXkoJHtmaWVsZH0pLCBqc29uX2FycmF5KCkpYDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5lc3RlZFNlbGVjdGlvbiA9IFt7XG4gICAgICAgIGRiS2V5OiBcImRhdGFcIixcbiAgICAgICAgdHNLZXk6IFwiZGF0YVwiLFxuICAgICAgICBmaWVsZDogZmllbGQuYXMoXCJkYXRhXCIpLFxuICAgICAgICBpc0pzb246IHRydWUsXG4gICAgICAgIHJlbGF0aW9uVGFibGVUc0tleTogdGFibGVDb25maWcudHNOYW1lLFxuICAgICAgICBzZWxlY3Rpb25cbiAgICAgIH1dO1xuICAgICAgY29uc3QgbmVlZHNTdWJxdWVyeSA9IGxpbWl0ICE9PSB2b2lkIDAgfHwgb2Zmc2V0ICE9PSB2b2lkIDAgfHwgb3JkZXJCeS5sZW5ndGggPiAwO1xuICAgICAgaWYgKG5lZWRzU3VicXVlcnkpIHtcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5idWlsZFNlbGVjdFF1ZXJ5KHtcbiAgICAgICAgICB0YWJsZTogYWxpYXNlZFRhYmxlKHRhYmxlLCB0YWJsZUFsaWFzKSxcbiAgICAgICAgICBmaWVsZHM6IHt9LFxuICAgICAgICAgIGZpZWxkc0ZsYXQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGF0aDogW10sXG4gICAgICAgICAgICAgIGZpZWxkOiBzcWwucmF3KFwiKlwiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgd2hlcmUsXG4gICAgICAgICAgbGltaXQsXG4gICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgIG9yZGVyQnksXG4gICAgICAgICAgc2V0T3BlcmF0b3JzOiBbXVxuICAgICAgICB9KTtcbiAgICAgICAgd2hlcmUgPSB2b2lkIDA7XG4gICAgICAgIGxpbWl0ID0gdm9pZCAwO1xuICAgICAgICBvZmZzZXQgPSB2b2lkIDA7XG4gICAgICAgIG9yZGVyQnkgPSB2b2lkIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBhbGlhc2VkVGFibGUodGFibGUsIHRhYmxlQWxpYXMpO1xuICAgICAgfVxuICAgICAgcmVzdWx0ID0gdGhpcy5idWlsZFNlbGVjdFF1ZXJ5KHtcbiAgICAgICAgdGFibGU6IGlzKHJlc3VsdCwgU1FMaXRlVGFibGUpID8gcmVzdWx0IDogbmV3IFN1YnF1ZXJ5KHJlc3VsdCwge30sIHRhYmxlQWxpYXMpLFxuICAgICAgICBmaWVsZHM6IHt9LFxuICAgICAgICBmaWVsZHNGbGF0OiBuZXN0ZWRTZWxlY3Rpb24ubWFwKCh7IGZpZWxkOiBmaWVsZDIgfSkgPT4gKHtcbiAgICAgICAgICBwYXRoOiBbXSxcbiAgICAgICAgICBmaWVsZDogaXMoZmllbGQyLCBDb2x1bW4pID8gYWxpYXNlZFRhYmxlQ29sdW1uKGZpZWxkMiwgdGFibGVBbGlhcykgOiBmaWVsZDJcbiAgICAgICAgfSkpLFxuICAgICAgICBqb2lucyxcbiAgICAgICAgd2hlcmUsXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBvZmZzZXQsXG4gICAgICAgIG9yZGVyQnksXG4gICAgICAgIHNldE9wZXJhdG9yczogW11cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSB0aGlzLmJ1aWxkU2VsZWN0UXVlcnkoe1xuICAgICAgICB0YWJsZTogYWxpYXNlZFRhYmxlKHRhYmxlLCB0YWJsZUFsaWFzKSxcbiAgICAgICAgZmllbGRzOiB7fSxcbiAgICAgICAgZmllbGRzRmxhdDogc2VsZWN0aW9uLm1hcCgoeyBmaWVsZCB9KSA9PiAoe1xuICAgICAgICAgIHBhdGg6IFtdLFxuICAgICAgICAgIGZpZWxkOiBpcyhmaWVsZCwgQ29sdW1uKSA/IGFsaWFzZWRUYWJsZUNvbHVtbihmaWVsZCwgdGFibGVBbGlhcykgOiBmaWVsZFxuICAgICAgICB9KSksXG4gICAgICAgIGpvaW5zLFxuICAgICAgICB3aGVyZSxcbiAgICAgICAgbGltaXQsXG4gICAgICAgIG9mZnNldCxcbiAgICAgICAgb3JkZXJCeSxcbiAgICAgICAgc2V0T3BlcmF0b3JzOiBbXVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0YWJsZVRzS2V5OiB0YWJsZUNvbmZpZy50c05hbWUsXG4gICAgICBzcWw6IHJlc3VsdCxcbiAgICAgIHNlbGVjdGlvblxuICAgIH07XG4gIH1cbn1cbmNsYXNzIFNRTGl0ZVN5bmNEaWFsZWN0IGV4dGVuZHMgU1FMaXRlRGlhbGVjdCB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVN5bmNEaWFsZWN0XCI7XG4gIG1pZ3JhdGUobWlncmF0aW9ucywgc2Vzc2lvbiwgY29uZmlnKSB7XG4gICAgY29uc3QgbWlncmF0aW9uc1RhYmxlID0gY29uZmlnID09PSB2b2lkIDAgPyBcIl9fZHJpenpsZV9taWdyYXRpb25zXCIgOiB0eXBlb2YgY29uZmlnID09PSBcInN0cmluZ1wiID8gXCJfX2RyaXp6bGVfbWlncmF0aW9uc1wiIDogY29uZmlnLm1pZ3JhdGlvbnNUYWJsZSA/PyBcIl9fZHJpenpsZV9taWdyYXRpb25zXCI7XG4gICAgY29uc3QgbWlncmF0aW9uVGFibGVDcmVhdGUgPSBzcWxgXG5cdFx0XHRDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyAke3NxbC5pZGVudGlmaWVyKG1pZ3JhdGlvbnNUYWJsZSl9IChcblx0XHRcdFx0aWQgU0VSSUFMIFBSSU1BUlkgS0VZLFxuXHRcdFx0XHRoYXNoIHRleHQgTk9UIE5VTEwsXG5cdFx0XHRcdGNyZWF0ZWRfYXQgbnVtZXJpY1xuXHRcdFx0KVxuXHRcdGA7XG4gICAgc2Vzc2lvbi5ydW4obWlncmF0aW9uVGFibGVDcmVhdGUpO1xuICAgIGNvbnN0IGRiTWlncmF0aW9ucyA9IHNlc3Npb24udmFsdWVzKFxuICAgICAgc3FsYFNFTEVDVCBpZCwgaGFzaCwgY3JlYXRlZF9hdCBGUk9NICR7c3FsLmlkZW50aWZpZXIobWlncmF0aW9uc1RhYmxlKX0gT1JERVIgQlkgY3JlYXRlZF9hdCBERVNDIExJTUlUIDFgXG4gICAgKTtcbiAgICBjb25zdCBsYXN0RGJNaWdyYXRpb24gPSBkYk1pZ3JhdGlvbnNbMF0gPz8gdm9pZCAwO1xuICAgIHNlc3Npb24ucnVuKHNxbGBCRUdJTmApO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvbiBvZiBtaWdyYXRpb25zKSB7XG4gICAgICAgIGlmICghbGFzdERiTWlncmF0aW9uIHx8IE51bWJlcihsYXN0RGJNaWdyYXRpb25bMl0pIDwgbWlncmF0aW9uLmZvbGRlck1pbGxpcykge1xuICAgICAgICAgIGZvciAoY29uc3Qgc3RtdCBvZiBtaWdyYXRpb24uc3FsKSB7XG4gICAgICAgICAgICBzZXNzaW9uLnJ1bihzcWwucmF3KHN0bXQpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2Vzc2lvbi5ydW4oXG4gICAgICAgICAgICBzcWxgSU5TRVJUIElOVE8gJHtzcWwuaWRlbnRpZmllcihtaWdyYXRpb25zVGFibGUpfSAoXCJoYXNoXCIsIFwiY3JlYXRlZF9hdFwiKSBWQUxVRVMoJHttaWdyYXRpb24uaGFzaH0sICR7bWlncmF0aW9uLmZvbGRlck1pbGxpc30pYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNlc3Npb24ucnVuKHNxbGBDT01NSVRgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzZXNzaW9uLnJ1bihzcWxgUk9MTEJBQ0tgKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG5jbGFzcyBTUUxpdGVBc3luY0RpYWxlY3QgZXh0ZW5kcyBTUUxpdGVEaWFsZWN0IHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlQXN5bmNEaWFsZWN0XCI7XG4gIGFzeW5jIG1pZ3JhdGUobWlncmF0aW9ucywgc2Vzc2lvbiwgY29uZmlnKSB7XG4gICAgY29uc3QgbWlncmF0aW9uc1RhYmxlID0gdHlwZW9mIGNvbmZpZyA9PT0gXCJzdHJpbmdcIiA/IFwiX19kcml6emxlX21pZ3JhdGlvbnNcIiA6IGNvbmZpZy5taWdyYXRpb25zVGFibGUgPz8gXCJfX2RyaXp6bGVfbWlncmF0aW9uc1wiO1xuICAgIGNvbnN0IG1pZ3JhdGlvblRhYmxlQ3JlYXRlID0gc3FsYFxuXHRcdFx0Q1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgJHtzcWwuaWRlbnRpZmllcihtaWdyYXRpb25zVGFibGUpfSAoXG5cdFx0XHRcdGlkIFNFUklBTCBQUklNQVJZIEtFWSxcblx0XHRcdFx0aGFzaCB0ZXh0IE5PVCBOVUxMLFxuXHRcdFx0XHRjcmVhdGVkX2F0IG51bWVyaWNcblx0XHRcdClcblx0XHRgO1xuICAgIGF3YWl0IHNlc3Npb24ucnVuKG1pZ3JhdGlvblRhYmxlQ3JlYXRlKTtcbiAgICBjb25zdCBkYk1pZ3JhdGlvbnMgPSBhd2FpdCBzZXNzaW9uLnZhbHVlcyhcbiAgICAgIHNxbGBTRUxFQ1QgaWQsIGhhc2gsIGNyZWF0ZWRfYXQgRlJPTSAke3NxbC5pZGVudGlmaWVyKG1pZ3JhdGlvbnNUYWJsZSl9IE9SREVSIEJZIGNyZWF0ZWRfYXQgREVTQyBMSU1JVCAxYFxuICAgICk7XG4gICAgY29uc3QgbGFzdERiTWlncmF0aW9uID0gZGJNaWdyYXRpb25zWzBdID8/IHZvaWQgMDtcbiAgICBhd2FpdCBzZXNzaW9uLnRyYW5zYWN0aW9uKGFzeW5jICh0eCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBtaWdyYXRpb24gb2YgbWlncmF0aW9ucykge1xuICAgICAgICBpZiAoIWxhc3REYk1pZ3JhdGlvbiB8fCBOdW1iZXIobGFzdERiTWlncmF0aW9uWzJdKSA8IG1pZ3JhdGlvbi5mb2xkZXJNaWxsaXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN0bXQgb2YgbWlncmF0aW9uLnNxbCkge1xuICAgICAgICAgICAgYXdhaXQgdHgucnVuKHNxbC5yYXcoc3RtdCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhd2FpdCB0eC5ydW4oXG4gICAgICAgICAgICBzcWxgSU5TRVJUIElOVE8gJHtzcWwuaWRlbnRpZmllcihtaWdyYXRpb25zVGFibGUpfSAoXCJoYXNoXCIsIFwiY3JlYXRlZF9hdFwiKSBWQUxVRVMoJHttaWdyYXRpb24uaGFzaH0sICR7bWlncmF0aW9uLmZvbGRlck1pbGxpc30pYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuZXhwb3J0IHtcbiAgU1FMaXRlQXN5bmNEaWFsZWN0LFxuICBTUUxpdGVEaWFsZWN0LFxuICBTUUxpdGVTeW5jRGlhbGVjdFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRpYWxlY3QuanMubWFwIl0sIm5hbWVzIjpbImFsaWFzZWRUYWJsZSIsImFsaWFzZWRUYWJsZUNvbHVtbiIsIm1hcENvbHVtbnNJbkFsaWFzZWRTUUxUb0FsaWFzIiwibWFwQ29sdW1uc0luU1FMVG9BbGlhcyIsIkNvbHVtbiIsImVudGl0eUtpbmQiLCJpcyIsIkRyaXp6bGVFcnJvciIsImdldE9wZXJhdG9ycyIsImdldE9yZGVyQnlPcGVyYXRvcnMiLCJNYW55Iiwibm9ybWFsaXplUmVsYXRpb24iLCJPbmUiLCJhbmQiLCJlcSIsIlBhcmFtIiwiU1FMIiwic3FsIiwiU1FMaXRlQ29sdW1uIiwiU1FMaXRlVGFibGUiLCJTdWJxdWVyeSIsIlN1YnF1ZXJ5Q29uZmlnIiwiZ2V0VGFibGVOYW1lIiwiVGFibGUiLCJvcmRlclNlbGVjdGVkRmllbGRzIiwiVmlld0Jhc2VDb25maWciLCJTUUxpdGVWaWV3QmFzZSIsIlNRTGl0ZURpYWxlY3QiLCJlc2NhcGVOYW1lIiwibmFtZSIsImVzY2FwZVBhcmFtIiwiX251bSIsImVzY2FwZVN0cmluZyIsInN0ciIsInJlcGxhY2UiLCJidWlsZFdpdGhDVEUiLCJxdWVyaWVzIiwibGVuZ3RoIiwid2l0aFNxbENodW5rcyIsImkiLCJ3IiwiZW50cmllcyIsInB1c2giLCJpZGVudGlmaWVyIiwiYWxpYXMiLCJqb2luIiwiYnVpbGREZWxldGVRdWVyeSIsInRhYmxlIiwid2hlcmUiLCJyZXR1cm5pbmciLCJ3aXRoTGlzdCIsIndpdGhTcWwiLCJyZXR1cm5pbmdTcWwiLCJidWlsZFNlbGVjdGlvbiIsImlzU2luZ2xlVGFibGUiLCJ3aGVyZVNxbCIsImJ1aWxkVXBkYXRlU2V0Iiwic2V0Iiwic2V0RW50cmllcyIsIk9iamVjdCIsInNldFNpemUiLCJmbGF0TWFwIiwiY29sTmFtZSIsInZhbHVlIiwiY29sIiwiU3ltYm9sIiwiQ29sdW1ucyIsInJlcyIsInJhdyIsImJ1aWxkVXBkYXRlUXVlcnkiLCJzZXRTcWwiLCJmaWVsZHMiLCJjb2x1bW5zTGVuIiwiY2h1bmtzIiwiZmllbGQiLCJjaHVuayIsIkFsaWFzZWQiLCJpc1NlbGVjdGlvbkZpZWxkIiwiZmllbGRBbGlhcyIsInF1ZXJ5IiwicXVlcnlDaHVua3MiLCJtYXAiLCJjIiwidGFibGVOYW1lIiwiTmFtZSIsImNvbHVtbk5hbWUiLCJidWlsZFNlbGVjdFF1ZXJ5IiwiZmllbGRzRmxhdCIsImhhdmluZyIsImpvaW5zIiwib3JkZXJCeSIsImdyb3VwQnkiLCJsaW1pdCIsIm9mZnNldCIsImRpc3RpbmN0Iiwic2V0T3BlcmF0b3JzIiwiZmllbGRzTGlzdCIsImYiLCJ0YWJsZTIiLCJzb21lIiwiSXNBbGlhcyIsIkJhc2VOYW1lIiwiRXJyb3IiLCJwYXRoIiwiZGlzdGluY3RTcWwiLCJzZWxlY3Rpb24iLCJ0YWJsZVNxbCIsIk9yaWdpbmFsTmFtZSIsImpvaW5zQXJyYXkiLCJpbmRleCIsImpvaW5NZXRhIiwidGFibGVTY2hlbWEiLCJTY2hlbWEiLCJvcmlnVGFibGVOYW1lIiwiam9pblR5cGUiLCJvbiIsImpvaW5zU3FsIiwiaGF2aW5nU3FsIiwib3JkZXJCeUxpc3QiLCJvcmRlckJ5VmFsdWUiLCJncm91cEJ5TGlzdCIsImdyb3VwQnlWYWx1ZSIsImdyb3VwQnlTcWwiLCJvcmRlckJ5U3FsIiwibGltaXRTcWwiLCJvZmZzZXRTcWwiLCJmaW5hbFF1ZXJ5IiwiYnVpbGRTZXRPcGVyYXRpb25zIiwibGVmdFNlbGVjdCIsInNldE9wZXJhdG9yIiwicmVzdCIsImJ1aWxkU2V0T3BlcmF0aW9uUXVlcnkiLCJ0eXBlIiwiaXNBbGwiLCJyaWdodFNlbGVjdCIsImxlZnRDaHVuayIsImdldFNRTCIsInJpZ2h0Q2h1bmsiLCJvcmRlckJ5VmFsdWVzIiwic2luZ2xlT3JkZXJCeSIsIm9wZXJhdG9yQ2h1bmsiLCJidWlsZEluc2VydFF1ZXJ5IiwidmFsdWVzIiwib25Db25mbGljdCIsInZhbHVlc1NxbExpc3QiLCJjb2x1bW5zIiwiY29sRW50cmllcyIsImluc2VydE9yZGVyIiwiY29sdW1uIiwidmFsdWVJbmRleCIsInZhbHVlTGlzdCIsImZpZWxkTmFtZSIsImNvbFZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiZGVmYXVsdCIsInBhcmFtIiwiZGVmYXVsdEZuIiwiZGVmYXVsdEZuUmVzdWx0IiwidmFsdWVzU3FsIiwib25Db25mbGljdFNxbCIsInNxbFRvUXVlcnkiLCJzcWwyIiwidG9RdWVyeSIsImJ1aWxkUmVsYXRpb25hbFF1ZXJ5IiwiZnVsbFNjaGVtYSIsInNjaGVtYSIsInRhYmxlTmFtZXNNYXAiLCJ0YWJsZUNvbmZpZyIsInF1ZXJ5Q29uZmlnIiwiY29uZmlnIiwidGFibGVBbGlhcyIsIm5lc3RlZFF1ZXJ5UmVsYXRpb24iLCJqb2luT24iLCJzZWxlY3Rpb25FbnRyaWVzIiwia2V5IiwiZGJLZXkiLCJ0c0tleSIsInJlbGF0aW9uVGFibGVUc0tleSIsImlzSnNvbiIsImFsaWFzZWRDb2x1bW5zIiwiZnJvbUVudHJpZXMiLCJmaWVsZHNTZWxlY3Rpb24iLCJzZWxlY3RlZENvbHVtbnMiLCJpc0luY2x1ZGVNb2RlIiwiZmlsdGVyIiwia2V5cyIsImluY2x1ZGVzIiwic2VsZWN0ZWRSZWxhdGlvbnMiLCJ3aXRoIiwiZW50cnkiLCJyZWxhdGlvbiIsInJlbGF0aW9ucyIsImV4dHJhcyIsIm9yZGVyQnlPcmlnIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VsZWN0ZWRSZWxhdGlvblRzS2V5Iiwic2VsZWN0ZWRSZWxhdGlvbkNvbmZpZ1ZhbHVlIiwibm9ybWFsaXplZFJlbGF0aW9uIiwicmVsYXRpb25UYWJsZU5hbWUiLCJyZWZlcmVuY2VkVGFibGUiLCJyZWxhdGlvblRhYmxlVHNOYW1lIiwicmVsYXRpb25UYWJsZUFsaWFzIiwiam9pbk9uMiIsImZpZWxkMiIsInJlZmVyZW5jZXMiLCJidWlsdFJlbGF0aW9uIiwiYXMiLCJtZXNzYWdlIiwidHNOYW1lIiwicmVzdWx0IiwibmVzdGVkU2VsZWN0aW9uIiwibmVlZHNTdWJxdWVyeSIsInRhYmxlVHNLZXkiLCJTUUxpdGVTeW5jRGlhbGVjdCIsIm1pZ3JhdGUiLCJtaWdyYXRpb25zIiwic2Vzc2lvbiIsIm1pZ3JhdGlvbnNUYWJsZSIsIm1pZ3JhdGlvblRhYmxlQ3JlYXRlIiwicnVuIiwiZGJNaWdyYXRpb25zIiwibGFzdERiTWlncmF0aW9uIiwibWlncmF0aW9uIiwiTnVtYmVyIiwiZm9sZGVyTWlsbGlzIiwic3RtdCIsImhhc2giLCJlIiwiU1FMaXRlQXN5bmNEaWFsZWN0IiwidHJhbnNhY3Rpb24iLCJ0eCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/dialect.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/foreign-keys.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/foreign-keys.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ForeignKey: () => (/* binding */ ForeignKey),\n/* harmony export */ ForeignKeyBuilder: () => (/* binding */ ForeignKeyBuilder),\n/* harmony export */ foreignKey: () => (/* binding */ foreignKey)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\");\n\n\nclass ForeignKeyBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteForeignKeyBuilder\";\n }\n constructor(config, actions){\n this.reference = ()=>{\n const { name, columns, foreignColumns } = config();\n return {\n name,\n columns,\n foreignTable: foreignColumns[0].table,\n foreignColumns\n };\n };\n if (actions) {\n this._onUpdate = actions.onUpdate;\n this._onDelete = actions.onDelete;\n }\n }\n onUpdate(action) {\n this._onUpdate = action;\n return this;\n }\n onDelete(action) {\n this._onDelete = action;\n return this;\n }\n /** @internal */ build(table) {\n return new ForeignKey(table, this);\n }\n}\nclass ForeignKey {\n constructor(table, builder){\n this.table = table;\n this.reference = builder.reference;\n this.onUpdate = builder._onUpdate;\n this.onDelete = builder._onDelete;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteForeignKey\";\n }\n getName() {\n const { name, columns, foreignColumns } = this.reference();\n const columnNames = columns.map((column)=>column.name);\n const foreignColumnNames = foreignColumns.map((column)=>column.name);\n const chunks = [\n this.table[_table_js__WEBPACK_IMPORTED_MODULE_1__.SQLiteTable.Symbol.Name],\n ...columnNames,\n foreignColumns[0].table[_table_js__WEBPACK_IMPORTED_MODULE_1__.SQLiteTable.Symbol.Name],\n ...foreignColumnNames\n ];\n return name ?? `${chunks.join(\"_\")}_fk`;\n }\n}\nfunction foreignKey(config) {\n function mappedConfig() {\n if (typeof config === \"function\") {\n const { name, columns, foreignColumns } = config();\n return {\n name,\n columns,\n foreignColumns\n };\n }\n return config;\n }\n return new ForeignKeyBuilder(mappedConfig);\n}\n //# sourceMappingURL=foreign-keys.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2ZvcmVpZ24ta2V5cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUEwQztBQUNEO0FBQ3pDLE1BQU1FOztZQUNHLENBQUNGLGtEQUFVQSxDQUFDLEdBQUc7O0lBT3RCRyxZQUFZQyxNQUFNLEVBQUVDLE9BQU8sQ0FBRTtRQUMzQixJQUFJLENBQUNDLFNBQVMsR0FBRztZQUNmLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLGNBQWMsRUFBRSxHQUFHTDtZQUMxQyxPQUFPO2dCQUFFRztnQkFBTUM7Z0JBQVNFLGNBQWNELGNBQWMsQ0FBQyxFQUFFLENBQUNFLEtBQUs7Z0JBQUVGO1lBQWU7UUFDaEY7UUFDQSxJQUFJSixTQUFTO1lBQ1gsSUFBSSxDQUFDTyxTQUFTLEdBQUdQLFFBQVFRLFFBQVE7WUFDakMsSUFBSSxDQUFDQyxTQUFTLEdBQUdULFFBQVFVLFFBQVE7UUFDbkM7SUFDRjtJQUNBRixTQUFTRyxNQUFNLEVBQUU7UUFDZixJQUFJLENBQUNKLFNBQVMsR0FBR0k7UUFDakIsT0FBTyxJQUFJO0lBQ2I7SUFDQUQsU0FBU0MsTUFBTSxFQUFFO1FBQ2YsSUFBSSxDQUFDRixTQUFTLEdBQUdFO1FBQ2pCLE9BQU8sSUFBSTtJQUNiO0lBQ0EsY0FBYyxHQUNkQyxNQUFNTixLQUFLLEVBQUU7UUFDWCxPQUFPLElBQUlPLFdBQVdQLE9BQU8sSUFBSTtJQUNuQztBQUNGO0FBQ0EsTUFBTU87SUFDSmYsWUFBWVEsS0FBSyxFQUFFUSxPQUFPLENBQUU7UUFDMUIsSUFBSSxDQUFDUixLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDTCxTQUFTLEdBQUdhLFFBQVFiLFNBQVM7UUFDbEMsSUFBSSxDQUFDTyxRQUFRLEdBQUdNLFFBQVFQLFNBQVM7UUFDakMsSUFBSSxDQUFDRyxRQUFRLEdBQUdJLFFBQVFMLFNBQVM7SUFDbkM7O1lBQ08sQ0FBQ2Qsa0RBQVVBLENBQUMsR0FBRzs7SUFJdEJvQixVQUFVO1FBQ1IsTUFBTSxFQUFFYixJQUFJLEVBQUVDLE9BQU8sRUFBRUMsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDSCxTQUFTO1FBQ3hELE1BQU1lLGNBQWNiLFFBQVFjLEdBQUcsQ0FBQyxDQUFDQyxTQUFXQSxPQUFPaEIsSUFBSTtRQUN2RCxNQUFNaUIscUJBQXFCZixlQUFlYSxHQUFHLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT2hCLElBQUk7UUFDckUsTUFBTWtCLFNBQVM7WUFDYixJQUFJLENBQUNkLEtBQUssQ0FBQ1Ysa0RBQVdBLENBQUN5QixNQUFNLENBQUNDLElBQUksQ0FBQztlQUNoQ047WUFDSFosY0FBYyxDQUFDLEVBQUUsQ0FBQ0UsS0FBSyxDQUFDVixrREFBV0EsQ0FBQ3lCLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO2VBQzdDSDtTQUNKO1FBQ0QsT0FBT2pCLFFBQVEsQ0FBQyxFQUFFa0IsT0FBT0csSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO0lBQ3pDO0FBQ0Y7QUFDQSxTQUFTQyxXQUFXekIsTUFBTTtJQUN4QixTQUFTMEI7UUFDUCxJQUFJLE9BQU8xQixXQUFXLFlBQVk7WUFDaEMsTUFBTSxFQUFFRyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsY0FBYyxFQUFFLEdBQUdMO1lBQzFDLE9BQU87Z0JBQ0xHO2dCQUNBQztnQkFDQUM7WUFDRjtRQUNGO1FBQ0EsT0FBT0w7SUFDVDtJQUNBLE9BQU8sSUFBSUYsa0JBQWtCNEI7QUFDL0I7QUFLRSxDQUNGLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2ZvcmVpZ24ta2V5cy5qcz9lZTVhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgeyBTUUxpdGVUYWJsZSB9IGZyb20gXCIuL3RhYmxlLmpzXCI7XG5jbGFzcyBGb3JlaWduS2V5QnVpbGRlciB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZUZvcmVpZ25LZXlCdWlsZGVyXCI7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcmVmZXJlbmNlO1xuICAvKiogQGludGVybmFsICovXG4gIF9vblVwZGF0ZTtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfb25EZWxldGU7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZywgYWN0aW9ucykge1xuICAgIHRoaXMucmVmZXJlbmNlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lLCBjb2x1bW5zLCBmb3JlaWduQ29sdW1ucyB9ID0gY29uZmlnKCk7XG4gICAgICByZXR1cm4geyBuYW1lLCBjb2x1bW5zLCBmb3JlaWduVGFibGU6IGZvcmVpZ25Db2x1bW5zWzBdLnRhYmxlLCBmb3JlaWduQ29sdW1ucyB9O1xuICAgIH07XG4gICAgaWYgKGFjdGlvbnMpIHtcbiAgICAgIHRoaXMuX29uVXBkYXRlID0gYWN0aW9ucy5vblVwZGF0ZTtcbiAgICAgIHRoaXMuX29uRGVsZXRlID0gYWN0aW9ucy5vbkRlbGV0ZTtcbiAgICB9XG4gIH1cbiAgb25VcGRhdGUoYWN0aW9uKSB7XG4gICAgdGhpcy5fb25VcGRhdGUgPSBhY3Rpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgb25EZWxldGUoYWN0aW9uKSB7XG4gICAgdGhpcy5fb25EZWxldGUgPSBhY3Rpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBidWlsZCh0YWJsZSkge1xuICAgIHJldHVybiBuZXcgRm9yZWlnbktleSh0YWJsZSwgdGhpcyk7XG4gIH1cbn1cbmNsYXNzIEZvcmVpZ25LZXkge1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgYnVpbGRlcikge1xuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLnJlZmVyZW5jZSA9IGJ1aWxkZXIucmVmZXJlbmNlO1xuICAgIHRoaXMub25VcGRhdGUgPSBidWlsZGVyLl9vblVwZGF0ZTtcbiAgICB0aGlzLm9uRGVsZXRlID0gYnVpbGRlci5fb25EZWxldGU7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlRm9yZWlnbktleVwiO1xuICByZWZlcmVuY2U7XG4gIG9uVXBkYXRlO1xuICBvbkRlbGV0ZTtcbiAgZ2V0TmFtZSgpIHtcbiAgICBjb25zdCB7IG5hbWUsIGNvbHVtbnMsIGZvcmVpZ25Db2x1bW5zIH0gPSB0aGlzLnJlZmVyZW5jZSgpO1xuICAgIGNvbnN0IGNvbHVtbk5hbWVzID0gY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUpO1xuICAgIGNvbnN0IGZvcmVpZ25Db2x1bW5OYW1lcyA9IGZvcmVpZ25Db2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4ubmFtZSk7XG4gICAgY29uc3QgY2h1bmtzID0gW1xuICAgICAgdGhpcy50YWJsZVtTUUxpdGVUYWJsZS5TeW1ib2wuTmFtZV0sXG4gICAgICAuLi5jb2x1bW5OYW1lcyxcbiAgICAgIGZvcmVpZ25Db2x1bW5zWzBdLnRhYmxlW1NRTGl0ZVRhYmxlLlN5bWJvbC5OYW1lXSxcbiAgICAgIC4uLmZvcmVpZ25Db2x1bW5OYW1lc1xuICAgIF07XG4gICAgcmV0dXJuIG5hbWUgPz8gYCR7Y2h1bmtzLmpvaW4oXCJfXCIpfV9ma2A7XG4gIH1cbn1cbmZ1bmN0aW9uIGZvcmVpZ25LZXkoY29uZmlnKSB7XG4gIGZ1bmN0aW9uIG1hcHBlZENvbmZpZygpIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjb25zdCB7IG5hbWUsIGNvbHVtbnMsIGZvcmVpZ25Db2x1bW5zIH0gPSBjb25maWcoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIGZvcmVpZ25Db2x1bW5zXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG4gIHJldHVybiBuZXcgRm9yZWlnbktleUJ1aWxkZXIobWFwcGVkQ29uZmlnKTtcbn1cbmV4cG9ydCB7XG4gIEZvcmVpZ25LZXksXG4gIEZvcmVpZ25LZXlCdWlsZGVyLFxuICBmb3JlaWduS2V5XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9yZWlnbi1rZXlzLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiU1FMaXRlVGFibGUiLCJGb3JlaWduS2V5QnVpbGRlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwiYWN0aW9ucyIsInJlZmVyZW5jZSIsIm5hbWUiLCJjb2x1bW5zIiwiZm9yZWlnbkNvbHVtbnMiLCJmb3JlaWduVGFibGUiLCJ0YWJsZSIsIl9vblVwZGF0ZSIsIm9uVXBkYXRlIiwiX29uRGVsZXRlIiwib25EZWxldGUiLCJhY3Rpb24iLCJidWlsZCIsIkZvcmVpZ25LZXkiLCJidWlsZGVyIiwiZ2V0TmFtZSIsImNvbHVtbk5hbWVzIiwibWFwIiwiY29sdW1uIiwiZm9yZWlnbkNvbHVtbk5hbWVzIiwiY2h1bmtzIiwiU3ltYm9sIiwiTmFtZSIsImpvaW4iLCJmb3JlaWduS2V5IiwibWFwcGVkQ29uZmlnIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/foreign-keys.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/indexes.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/indexes.js ***!
- \*************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Index: () => (/* binding */ Index),\n/* harmony export */ IndexBuilder: () => (/* binding */ IndexBuilder),\n/* harmony export */ IndexBuilderOn: () => (/* binding */ IndexBuilderOn),\n/* harmony export */ index: () => (/* binding */ index),\n/* harmony export */ uniqueIndex: () => (/* binding */ uniqueIndex)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nclass IndexBuilderOn {\n constructor(name, unique){\n this.name = name;\n this.unique = unique;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteIndexBuilderOn\";\n }\n on(...columns) {\n return new IndexBuilder(this.name, columns, this.unique);\n }\n}\nclass IndexBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteIndexBuilder\";\n }\n constructor(name, columns, unique){\n this.config = {\n name,\n columns,\n unique,\n where: void 0\n };\n }\n /**\n * Condition for partial index.\n */ where(condition) {\n this.config.where = condition;\n return this;\n }\n /** @internal */ build(table) {\n return new Index(this.config, table);\n }\n}\nclass Index {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteIndex\";\n }\n constructor(config, table){\n this.config = {\n ...config,\n table\n };\n }\n}\nfunction index(name) {\n return new IndexBuilderOn(name, false);\n}\nfunction uniqueIndex(name) {\n return new IndexBuilderOn(name, true);\n}\n //# sourceMappingURL=indexes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL2luZGV4ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTBDO0FBQzFDLE1BQU1DO0lBQ0pDLFlBQVlDLElBQUksRUFBRUMsTUFBTSxDQUFFO1FBQ3hCLElBQUksQ0FBQ0QsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjs7WUFDTyxDQUFDSixrREFBVUEsQ0FBQyxHQUFHOztJQUN0QkssR0FBRyxHQUFHQyxPQUFPLEVBQUU7UUFDYixPQUFPLElBQUlDLGFBQWEsSUFBSSxDQUFDSixJQUFJLEVBQUVHLFNBQVMsSUFBSSxDQUFDRixNQUFNO0lBQ3pEO0FBQ0Y7QUFDQSxNQUFNRzs7WUFDRyxDQUFDUCxrREFBVUEsQ0FBQyxHQUFHOztJQUd0QkUsWUFBWUMsSUFBSSxFQUFFRyxPQUFPLEVBQUVGLE1BQU0sQ0FBRTtRQUNqQyxJQUFJLENBQUNJLE1BQU0sR0FBRztZQUNaTDtZQUNBRztZQUNBRjtZQUNBSyxPQUFPLEtBQUs7UUFDZDtJQUNGO0lBQ0E7O0dBRUMsR0FDREEsTUFBTUMsU0FBUyxFQUFFO1FBQ2YsSUFBSSxDQUFDRixNQUFNLENBQUNDLEtBQUssR0FBR0M7UUFDcEIsT0FBTyxJQUFJO0lBQ2I7SUFDQSxjQUFjLEdBQ2RDLE1BQU1DLEtBQUssRUFBRTtRQUNYLE9BQU8sSUFBSUMsTUFBTSxJQUFJLENBQUNMLE1BQU0sRUFBRUk7SUFDaEM7QUFDRjtBQUNBLE1BQU1DOztZQUNHLENBQUNiLGtEQUFVQSxDQUFDLEdBQUc7O0lBRXRCRSxZQUFZTSxNQUFNLEVBQUVJLEtBQUssQ0FBRTtRQUN6QixJQUFJLENBQUNKLE1BQU0sR0FBRztZQUFFLEdBQUdBLE1BQU07WUFBRUk7UUFBTTtJQUNuQztBQUNGO0FBQ0EsU0FBU0UsTUFBTVgsSUFBSTtJQUNqQixPQUFPLElBQUlGLGVBQWVFLE1BQU07QUFDbEM7QUFDQSxTQUFTWSxZQUFZWixJQUFJO0lBQ3ZCLE9BQU8sSUFBSUYsZUFBZUUsTUFBTTtBQUNsQztBQU9FLENBQ0YsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUvaW5kZXhlcy5qcz8xYTUzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi4vZW50aXR5LmpzXCI7XG5jbGFzcyBJbmRleEJ1aWxkZXJPbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIHVuaXF1ZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy51bmlxdWUgPSB1bmlxdWU7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlSW5kZXhCdWlsZGVyT25cIjtcbiAgb24oLi4uY29sdW1ucykge1xuICAgIHJldHVybiBuZXcgSW5kZXhCdWlsZGVyKHRoaXMubmFtZSwgY29sdW1ucywgdGhpcy51bmlxdWUpO1xuICB9XG59XG5jbGFzcyBJbmRleEJ1aWxkZXIge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVJbmRleEJ1aWxkZXJcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjb25maWc7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIGNvbHVtbnMsIHVuaXF1ZSkge1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgbmFtZSxcbiAgICAgIGNvbHVtbnMsXG4gICAgICB1bmlxdWUsXG4gICAgICB3aGVyZTogdm9pZCAwXG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogQ29uZGl0aW9uIGZvciBwYXJ0aWFsIGluZGV4LlxuICAgKi9cbiAgd2hlcmUoY29uZGl0aW9uKSB7XG4gICAgdGhpcy5jb25maWcud2hlcmUgPSBjb25kaXRpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBidWlsZCh0YWJsZSkge1xuICAgIHJldHVybiBuZXcgSW5kZXgodGhpcy5jb25maWcsIHRhYmxlKTtcbiAgfVxufVxuY2xhc3MgSW5kZXgge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVJbmRleFwiO1xuICBjb25maWc7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZywgdGFibGUpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4uY29uZmlnLCB0YWJsZSB9O1xuICB9XG59XG5mdW5jdGlvbiBpbmRleChuYW1lKSB7XG4gIHJldHVybiBuZXcgSW5kZXhCdWlsZGVyT24obmFtZSwgZmFsc2UpO1xufVxuZnVuY3Rpb24gdW5pcXVlSW5kZXgobmFtZSkge1xuICByZXR1cm4gbmV3IEluZGV4QnVpbGRlck9uKG5hbWUsIHRydWUpO1xufVxuZXhwb3J0IHtcbiAgSW5kZXgsXG4gIEluZGV4QnVpbGRlcixcbiAgSW5kZXhCdWlsZGVyT24sXG4gIGluZGV4LFxuICB1bmlxdWVJbmRleFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4ZXMuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJJbmRleEJ1aWxkZXJPbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsInVuaXF1ZSIsIm9uIiwiY29sdW1ucyIsIkluZGV4QnVpbGRlciIsImNvbmZpZyIsIndoZXJlIiwiY29uZGl0aW9uIiwiYnVpbGQiLCJ0YWJsZSIsIkluZGV4IiwiaW5kZXgiLCJ1bmlxdWVJbmRleCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/indexes.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/primary-keys.js":
-/*!******************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/primary-keys.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PrimaryKey: () => (/* binding */ PrimaryKey),\n/* harmony export */ PrimaryKeyBuilder: () => (/* binding */ PrimaryKeyBuilder),\n/* harmony export */ primaryKey: () => (/* binding */ primaryKey)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./table.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\");\n\n\nfunction primaryKey(...config) {\n if (config[0].columns) {\n return new PrimaryKeyBuilder(config[0].columns, config[0].name);\n }\n return new PrimaryKeyBuilder(config);\n}\nclass PrimaryKeyBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLitePrimaryKeyBuilder\";\n }\n constructor(columns, name){\n this.columns = columns;\n this.name = name;\n }\n /** @internal */ build(table) {\n return new PrimaryKey(table, this.columns, this.name);\n }\n}\nclass PrimaryKey {\n constructor(table, columns, name){\n this.table = table;\n this.columns = columns;\n this.name = name;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLitePrimaryKey\";\n }\n getName() {\n return this.name ?? `${this.table[_table_js__WEBPACK_IMPORTED_MODULE_1__.SQLiteTable.Symbol.Name]}_${this.columns.map((column)=>column.name).join(\"_\")}_pk`;\n }\n}\n //# sourceMappingURL=primary-keys.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3ByaW1hcnkta2V5cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUEwQztBQUNEO0FBQ3pDLFNBQVNFLFdBQVcsR0FBR0MsTUFBTTtJQUMzQixJQUFJQSxNQUFNLENBQUMsRUFBRSxDQUFDQyxPQUFPLEVBQUU7UUFDckIsT0FBTyxJQUFJQyxrQkFBa0JGLE1BQU0sQ0FBQyxFQUFFLENBQUNDLE9BQU8sRUFBRUQsTUFBTSxDQUFDLEVBQUUsQ0FBQ0csSUFBSTtJQUNoRTtJQUNBLE9BQU8sSUFBSUQsa0JBQWtCRjtBQUMvQjtBQUNBLE1BQU1FOztZQUNHLENBQUNMLGtEQUFVQSxDQUFDLEdBQUc7O0lBS3RCTyxZQUFZSCxPQUFPLEVBQUVFLElBQUksQ0FBRTtRQUN6QixJQUFJLENBQUNGLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNFLElBQUksR0FBR0E7SUFDZDtJQUNBLGNBQWMsR0FDZEUsTUFBTUMsS0FBSyxFQUFFO1FBQ1gsT0FBTyxJQUFJQyxXQUFXRCxPQUFPLElBQUksQ0FBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQ0UsSUFBSTtJQUN0RDtBQUNGO0FBQ0EsTUFBTUk7SUFDSkgsWUFBWUUsS0FBSyxFQUFFTCxPQUFPLEVBQUVFLElBQUksQ0FBRTtRQUNoQyxJQUFJLENBQUNHLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNMLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNFLElBQUksR0FBR0E7SUFDZDs7WUFDTyxDQUFDTixrREFBVUEsQ0FBQyxHQUFHOztJQUd0QlcsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDTCxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQ0csS0FBSyxDQUFDUixrREFBV0EsQ0FBQ1csTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDVCxPQUFPLENBQUNVLEdBQUcsQ0FBQyxDQUFDQyxTQUFXQSxPQUFPVCxJQUFJLEVBQUVVLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUN4SDtBQUNGO0FBS0UsQ0FDRix3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9zcWxpdGUtY29yZS9wcmltYXJ5LWtleXMuanM/N2NlMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4uL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgU1FMaXRlVGFibGUgfSBmcm9tIFwiLi90YWJsZS5qc1wiO1xuZnVuY3Rpb24gcHJpbWFyeUtleSguLi5jb25maWcpIHtcbiAgaWYgKGNvbmZpZ1swXS5jb2x1bW5zKSB7XG4gICAgcmV0dXJuIG5ldyBQcmltYXJ5S2V5QnVpbGRlcihjb25maWdbMF0uY29sdW1ucywgY29uZmlnWzBdLm5hbWUpO1xuICB9XG4gIHJldHVybiBuZXcgUHJpbWFyeUtleUJ1aWxkZXIoY29uZmlnKTtcbn1cbmNsYXNzIFByaW1hcnlLZXlCdWlsZGVyIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlUHJpbWFyeUtleUJ1aWxkZXJcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjb2x1bW5zO1xuICAvKiogQGludGVybmFsICovXG4gIG5hbWU7XG4gIGNvbnN0cnVjdG9yKGNvbHVtbnMsIG5hbWUpIHtcbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBidWlsZCh0YWJsZSkge1xuICAgIHJldHVybiBuZXcgUHJpbWFyeUtleSh0YWJsZSwgdGhpcy5jb2x1bW5zLCB0aGlzLm5hbWUpO1xuICB9XG59XG5jbGFzcyBQcmltYXJ5S2V5IHtcbiAgY29uc3RydWN0b3IodGFibGUsIGNvbHVtbnMsIG5hbWUpIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVByaW1hcnlLZXlcIjtcbiAgY29sdW1ucztcbiAgbmFtZTtcbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID8/IGAke3RoaXMudGFibGVbU1FMaXRlVGFibGUuU3ltYm9sLk5hbWVdfV8ke3RoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUpLmpvaW4oXCJfXCIpfV9wa2A7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIFByaW1hcnlLZXksXG4gIFByaW1hcnlLZXlCdWlsZGVyLFxuICBwcmltYXJ5S2V5XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJpbWFyeS1rZXlzLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiU1FMaXRlVGFibGUiLCJwcmltYXJ5S2V5IiwiY29uZmlnIiwiY29sdW1ucyIsIlByaW1hcnlLZXlCdWlsZGVyIiwibmFtZSIsImNvbnN0cnVjdG9yIiwiYnVpbGQiLCJ0YWJsZSIsIlByaW1hcnlLZXkiLCJnZXROYW1lIiwiU3ltYm9sIiwiTmFtZSIsIm1hcCIsImNvbHVtbiIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/primary-keys.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/delete.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/query-builders/delete.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteDeleteBase: () => (/* binding */ SQLiteDeleteBase)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _query_promise_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../query-promise.js */ \"(rsc)/../../node_modules/drizzle-orm/query-promise.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../table.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils.js */ \"(rsc)/../../node_modules/drizzle-orm/utils.js\");\n\n\n\n\nclass SQLiteDeleteBase extends _query_promise_js__WEBPACK_IMPORTED_MODULE_0__.QueryPromise {\n constructor(table, session, dialect, withList){\n super();\n this.run = (placeholderValues)=>{\n return this._prepare().run(placeholderValues);\n };\n this.all = (placeholderValues)=>{\n return this._prepare().all(placeholderValues);\n };\n this.get = (placeholderValues)=>{\n return this._prepare().get(placeholderValues);\n };\n this.values = (placeholderValues)=>{\n return this._prepare().values(placeholderValues);\n };\n this.table = table;\n this.session = session;\n this.dialect = dialect;\n this.config = {\n table,\n withList\n };\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteDelete\";\n }\n /**\n * Adds a `where` clause to the query.\n *\n * Calling this method will delete only those rows that fulfill a specified condition.\n *\n * See docs: {@link https://orm.drizzle.team/docs/delete}\n *\n * @param where the `where` clause.\n *\n * @example\n * You can use conditional operators and `sql function` to filter the rows to be deleted.\n *\n * ```ts\n * // Delete all cars with green color\n * db.delete(cars).where(eq(cars.color, 'green'));\n * // or\n * db.delete(cars).where(sql`${cars.color} = 'green'`)\n * ```\n *\n * You can logically combine conditional operators with `and()` and `or()` operators:\n *\n * ```ts\n * // Delete all BMW cars with a green color\n * db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n *\n * // Delete all cars with the green or blue color\n * db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n * ```\n */ where(where) {\n this.config.where = where;\n return this;\n }\n returning(fields = this.table[_table_js__WEBPACK_IMPORTED_MODULE_2__.SQLiteTable.Symbol.Columns]) {\n this.config.returning = (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.orderSelectedFields)(fields);\n return this;\n }\n /** @internal */ getSQL() {\n return this.dialect.buildDeleteQuery(this.config);\n }\n toSQL() {\n const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n return rest;\n }\n /** @internal */ _prepare(isOneTimeQuery = true) {\n return this.session[isOneTimeQuery ? \"prepareOneTimeQuery\" : \"prepareQuery\"](this.dialect.sqlToQuery(this.getSQL()), this.config.returning, this.config.returning ? \"all\" : \"run\");\n }\n prepare() {\n return this._prepare(false);\n }\n async execute(placeholderValues) {\n return this._prepare().execute(placeholderValues);\n }\n $dynamic() {\n return this;\n }\n}\n //# sourceMappingURL=delete.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL2RlbGV0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUE2QztBQUNTO0FBQ1o7QUFDVztBQUNyRCxNQUFNSSx5QkFBeUJILDJEQUFZQTtJQUN6Q0ksWUFBWUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxDQUFFO1FBQzdDLEtBQUs7YUFpRVBDLE1BQU0sQ0FBQ0M7WUFDTCxPQUFPLElBQUksQ0FBQ0MsUUFBUSxHQUFHRixHQUFHLENBQUNDO1FBQzdCO2FBQ0FFLE1BQU0sQ0FBQ0Y7WUFDTCxPQUFPLElBQUksQ0FBQ0MsUUFBUSxHQUFHQyxHQUFHLENBQUNGO1FBQzdCO2FBQ0FHLE1BQU0sQ0FBQ0g7WUFDTCxPQUFPLElBQUksQ0FBQ0MsUUFBUSxHQUFHRSxHQUFHLENBQUNIO1FBQzdCO2FBQ0FJLFNBQVMsQ0FBQ0o7WUFDUixPQUFPLElBQUksQ0FBQ0MsUUFBUSxHQUFHRyxNQUFNLENBQUNKO1FBQ2hDO1FBM0VFLElBQUksQ0FBQ0wsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ1EsTUFBTSxHQUFHO1lBQUVWO1lBQU9HO1FBQVM7SUFDbEM7O1lBQ08sQ0FBQ1Qsa0RBQVVBLENBQUMsR0FBRzs7SUFHdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QkMsR0FDRGlCLE1BQU1BLEtBQUssRUFBRTtRQUNYLElBQUksQ0FBQ0QsTUFBTSxDQUFDQyxLQUFLLEdBQUdBO1FBQ3BCLE9BQU8sSUFBSTtJQUNiO0lBQ0FDLFVBQVVDLFNBQVMsSUFBSSxDQUFDYixLQUFLLENBQUNKLGtEQUFXQSxDQUFDa0IsTUFBTSxDQUFDQyxPQUFPLENBQUMsRUFBRTtRQUN6RCxJQUFJLENBQUNMLE1BQU0sQ0FBQ0UsU0FBUyxHQUFHZiw4REFBbUJBLENBQUNnQjtRQUM1QyxPQUFPLElBQUk7SUFDYjtJQUNBLGNBQWMsR0FDZEcsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDZCxPQUFPLENBQUNlLGdCQUFnQixDQUFDLElBQUksQ0FBQ1AsTUFBTTtJQUNsRDtJQUNBUSxRQUFRO1FBQ04sTUFBTSxFQUFFQyxTQUFTQyxRQUFRLEVBQUUsR0FBR0MsTUFBTSxHQUFHLElBQUksQ0FBQ25CLE9BQU8sQ0FBQ29CLFVBQVUsQ0FBQyxJQUFJLENBQUNOLE1BQU07UUFDMUUsT0FBT0s7SUFDVDtJQUNBLGNBQWMsR0FDZGYsU0FBU2lCLGlCQUFpQixJQUFJLEVBQUU7UUFDOUIsT0FBTyxJQUFJLENBQUN0QixPQUFPLENBQUNzQixpQkFBaUIsd0JBQXdCLGVBQWUsQ0FDMUUsSUFBSSxDQUFDckIsT0FBTyxDQUFDb0IsVUFBVSxDQUFDLElBQUksQ0FBQ04sTUFBTSxLQUNuQyxJQUFJLENBQUNOLE1BQU0sQ0FBQ0UsU0FBUyxFQUNyQixJQUFJLENBQUNGLE1BQU0sQ0FBQ0UsU0FBUyxHQUFHLFFBQVE7SUFFcEM7SUFDQVksVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDbEIsUUFBUSxDQUFDO0lBQ3ZCO0lBYUEsTUFBTW1CLFFBQVFwQixpQkFBaUIsRUFBRTtRQUMvQixPQUFPLElBQUksQ0FBQ0MsUUFBUSxHQUFHbUIsT0FBTyxDQUFDcEI7SUFDakM7SUFDQXFCLFdBQVc7UUFDVCxPQUFPLElBQUk7SUFDYjtBQUNGO0FBR0UsQ0FDRixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9zcWxpdGUtY29yZS9xdWVyeS1idWlsZGVycy9kZWxldGUuanM/ODQ5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4uLy4uL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgUXVlcnlQcm9taXNlIH0gZnJvbSBcIi4uLy4uL3F1ZXJ5LXByb21pc2UuanNcIjtcbmltcG9ydCB7IFNRTGl0ZVRhYmxlIH0gZnJvbSBcIi4uL3RhYmxlLmpzXCI7XG5pbXBvcnQgeyBvcmRlclNlbGVjdGVkRmllbGRzIH0gZnJvbSBcIi4uLy4uL3V0aWxzLmpzXCI7XG5jbGFzcyBTUUxpdGVEZWxldGVCYXNlIGV4dGVuZHMgUXVlcnlQcm9taXNlIHtcbiAgY29uc3RydWN0b3IodGFibGUsIHNlc3Npb24sIGRpYWxlY3QsIHdpdGhMaXN0KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvbjtcbiAgICB0aGlzLmRpYWxlY3QgPSBkaWFsZWN0O1xuICAgIHRoaXMuY29uZmlnID0geyB0YWJsZSwgd2l0aExpc3QgfTtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVEZWxldGVcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjb25maWc7XG4gIC8qKlxuICAgKiBBZGRzIGEgYHdoZXJlYCBjbGF1c2UgdG8gdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgZGVsZXRlIG9ubHkgdGhvc2Ugcm93cyB0aGF0IGZ1bGZpbGwgYSBzcGVjaWZpZWQgY29uZGl0aW9uLlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL2RlbGV0ZX1cbiAgICpcbiAgICogQHBhcmFtIHdoZXJlIHRoZSBgd2hlcmVgIGNsYXVzZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogWW91IGNhbiB1c2UgY29uZGl0aW9uYWwgb3BlcmF0b3JzIGFuZCBgc3FsIGZ1bmN0aW9uYCB0byBmaWx0ZXIgdGhlIHJvd3MgdG8gYmUgZGVsZXRlZC5cbiAgICpcbiAgICogYGBgdHNcbiAgICogLy8gRGVsZXRlIGFsbCBjYXJzIHdpdGggZ3JlZW4gY29sb3JcbiAgICogZGIuZGVsZXRlKGNhcnMpLndoZXJlKGVxKGNhcnMuY29sb3IsICdncmVlbicpKTtcbiAgICogLy8gb3JcbiAgICogZGIuZGVsZXRlKGNhcnMpLndoZXJlKHNxbGAke2NhcnMuY29sb3J9ID0gJ2dyZWVuJ2ApXG4gICAqIGBgYFxuICAgKlxuICAgKiBZb3UgY2FuIGxvZ2ljYWxseSBjb21iaW5lIGNvbmRpdGlvbmFsIG9wZXJhdG9ycyB3aXRoIGBhbmQoKWAgYW5kIGBvcigpYCBvcGVyYXRvcnM6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIERlbGV0ZSBhbGwgQk1XIGNhcnMgd2l0aCBhIGdyZWVuIGNvbG9yXG4gICAqIGRiLmRlbGV0ZShjYXJzKS53aGVyZShhbmQoZXEoY2Fycy5jb2xvciwgJ2dyZWVuJyksIGVxKGNhcnMuYnJhbmQsICdCTVcnKSkpO1xuICAgKlxuICAgKiAvLyBEZWxldGUgYWxsIGNhcnMgd2l0aCB0aGUgZ3JlZW4gb3IgYmx1ZSBjb2xvclxuICAgKiBkYi5kZWxldGUoY2Fycykud2hlcmUob3IoZXEoY2Fycy5jb2xvciwgJ2dyZWVuJyksIGVxKGNhcnMuY29sb3IsICdibHVlJykpKTtcbiAgICogYGBgXG4gICAqL1xuICB3aGVyZSh3aGVyZSkge1xuICAgIHRoaXMuY29uZmlnLndoZXJlID0gd2hlcmU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcmV0dXJuaW5nKGZpZWxkcyA9IHRoaXMudGFibGVbU1FMaXRlVGFibGUuU3ltYm9sLkNvbHVtbnNdKSB7XG4gICAgdGhpcy5jb25maWcucmV0dXJuaW5nID0gb3JkZXJTZWxlY3RlZEZpZWxkcyhmaWVsZHMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0U1FMKCkge1xuICAgIHJldHVybiB0aGlzLmRpYWxlY3QuYnVpbGREZWxldGVRdWVyeSh0aGlzLmNvbmZpZyk7XG4gIH1cbiAgdG9TUUwoKSB7XG4gICAgY29uc3QgeyB0eXBpbmdzOiBfdHlwaW5ncywgLi4ucmVzdCB9ID0gdGhpcy5kaWFsZWN0LnNxbFRvUXVlcnkodGhpcy5nZXRTUUwoKSk7XG4gICAgcmV0dXJuIHJlc3Q7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfcHJlcGFyZShpc09uZVRpbWVRdWVyeSA9IHRydWUpIHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uW2lzT25lVGltZVF1ZXJ5ID8gXCJwcmVwYXJlT25lVGltZVF1ZXJ5XCIgOiBcInByZXBhcmVRdWVyeVwiXShcbiAgICAgIHRoaXMuZGlhbGVjdC5zcWxUb1F1ZXJ5KHRoaXMuZ2V0U1FMKCkpLFxuICAgICAgdGhpcy5jb25maWcucmV0dXJuaW5nLFxuICAgICAgdGhpcy5jb25maWcucmV0dXJuaW5nID8gXCJhbGxcIiA6IFwicnVuXCJcbiAgICApO1xuICB9XG4gIHByZXBhcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoZmFsc2UpO1xuICB9XG4gIHJ1biA9IChwbGFjZWhvbGRlclZhbHVlcykgPT4ge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlKCkucnVuKHBsYWNlaG9sZGVyVmFsdWVzKTtcbiAgfTtcbiAgYWxsID0gKHBsYWNlaG9sZGVyVmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoKS5hbGwocGxhY2Vob2xkZXJWYWx1ZXMpO1xuICB9O1xuICBnZXQgPSAocGxhY2Vob2xkZXJWYWx1ZXMpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZSgpLmdldChwbGFjZWhvbGRlclZhbHVlcyk7XG4gIH07XG4gIHZhbHVlcyA9IChwbGFjZWhvbGRlclZhbHVlcykgPT4ge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlKCkudmFsdWVzKHBsYWNlaG9sZGVyVmFsdWVzKTtcbiAgfTtcbiAgYXN5bmMgZXhlY3V0ZShwbGFjZWhvbGRlclZhbHVlcykge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlKCkuZXhlY3V0ZShwbGFjZWhvbGRlclZhbHVlcyk7XG4gIH1cbiAgJGR5bmFtaWMoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIFNRTGl0ZURlbGV0ZUJhc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWxldGUuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJRdWVyeVByb21pc2UiLCJTUUxpdGVUYWJsZSIsIm9yZGVyU2VsZWN0ZWRGaWVsZHMiLCJTUUxpdGVEZWxldGVCYXNlIiwiY29uc3RydWN0b3IiLCJ0YWJsZSIsInNlc3Npb24iLCJkaWFsZWN0Iiwid2l0aExpc3QiLCJydW4iLCJwbGFjZWhvbGRlclZhbHVlcyIsIl9wcmVwYXJlIiwiYWxsIiwiZ2V0IiwidmFsdWVzIiwiY29uZmlnIiwid2hlcmUiLCJyZXR1cm5pbmciLCJmaWVsZHMiLCJTeW1ib2wiLCJDb2x1bW5zIiwiZ2V0U1FMIiwiYnVpbGREZWxldGVRdWVyeSIsInRvU1FMIiwidHlwaW5ncyIsIl90eXBpbmdzIiwicmVzdCIsInNxbFRvUXVlcnkiLCJpc09uZVRpbWVRdWVyeSIsInByZXBhcmUiLCJleGVjdXRlIiwiJGR5bmFtaWMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/delete.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/insert.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/query-builders/insert.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteInsertBase: () => (/* binding */ SQLiteInsertBase),\n/* harmony export */ SQLiteInsertBuilder: () => (/* binding */ SQLiteInsertBuilder)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _query_promise_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../query-promise.js */ \"(rsc)/../../node_modules/drizzle-orm/query-promise.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../table.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils.js */ \"(rsc)/../../node_modules/drizzle-orm/utils.js\");\n\n\n\n\n\n\nclass SQLiteInsertBuilder {\n constructor(table, session, dialect, withList){\n this.table = table;\n this.session = session;\n this.dialect = dialect;\n this.withList = withList;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteInsertBuilder\";\n }\n values(values) {\n values = Array.isArray(values) ? values : [\n values\n ];\n if (values.length === 0) {\n throw new Error(\"values() must be called with at least one value\");\n }\n const mappedValues = values.map((entry)=>{\n const result = {};\n const cols = this.table[_table_js__WEBPACK_IMPORTED_MODULE_1__.Table.Symbol.Columns];\n for (const colKey of Object.keys(entry)){\n const colValue = entry[colKey];\n result[colKey] = (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(colValue, _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.SQL) ? colValue : new _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.Param(colValue, cols[colKey]);\n }\n return result;\n });\n return new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);\n }\n}\nclass SQLiteInsertBase extends _query_promise_js__WEBPACK_IMPORTED_MODULE_3__.QueryPromise {\n constructor(table, values, session, dialect, withList){\n super();\n this.run = (placeholderValues)=>{\n return this._prepare().run(placeholderValues);\n };\n this.all = (placeholderValues)=>{\n return this._prepare().all(placeholderValues);\n };\n this.get = (placeholderValues)=>{\n return this._prepare().get(placeholderValues);\n };\n this.values = (placeholderValues)=>{\n return this._prepare().values(placeholderValues);\n };\n this.session = session;\n this.dialect = dialect;\n this.config = {\n table,\n values,\n withList\n };\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteInsert\";\n }\n returning(fields = this.config.table[_table_js__WEBPACK_IMPORTED_MODULE_4__.SQLiteTable.Symbol.Columns]) {\n this.config.returning = (0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.orderSelectedFields)(fields);\n return this;\n }\n /**\n * Adds an `on conflict do nothing` clause to the query.\n *\n * Calling this method simply avoids inserting a row as its alternative action.\n *\n * See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n *\n * @param config The `target` and `where` clauses.\n *\n * @example\n * ```ts\n * // Insert one row and cancel the insert if there's a conflict\n * await db.insert(cars)\n * .values({ id: 1, brand: 'BMW' })\n * .onConflictDoNothing();\n *\n * // Explicitly specify conflict target\n * await db.insert(cars)\n * .values({ id: 1, brand: 'BMW' })\n * .onConflictDoNothing({ target: cars.id });\n * ```\n */ onConflictDoNothing(config = {}) {\n if (config.target === void 0) {\n this.config.onConflict = _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql`do nothing`;\n } else {\n const targetSql = Array.isArray(config.target) ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql`${config.target}` : _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql`${[\n config.target\n ]}`;\n const whereSql = config.where ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql` where ${config.where}` : _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql``;\n this.config.onConflict = _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql`${targetSql} do nothing${whereSql}`;\n }\n return this;\n }\n /**\n * Adds an `on conflict do update` clause to the query.\n *\n * Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n *\n * See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n *\n * @param config The `target`, `set` and `where` clauses.\n *\n * @example\n * ```ts\n * // Update the row if there's a conflict\n * await db.insert(cars)\n * .values({ id: 1, brand: 'BMW' })\n * .onConflictDoUpdate({\n * target: cars.id,\n * set: { brand: 'Porsche' }\n * });\n *\n * // Upsert with 'where' clause\n * await db.insert(cars)\n * .values({ id: 1, brand: 'BMW' })\n * .onConflictDoUpdate({\n * target: cars.id,\n * set: { brand: 'newBMW' },\n * where: sql`${cars.createdAt} > '2023-01-01'::date`,\n * });\n * ```\n */ onConflictDoUpdate(config) {\n const targetSql = Array.isArray(config.target) ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql`${config.target}` : _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql`${[\n config.target\n ]}`;\n const whereSql = config.where ? _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql` where ${config.where}` : _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql``;\n const setSql = this.dialect.buildUpdateSet(this.config.table, (0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.mapUpdateSet)(this.config.table, config.set));\n this.config.onConflict = _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.sql`${targetSql} do update set ${setSql}${whereSql}`;\n return this;\n }\n /** @internal */ getSQL() {\n return this.dialect.buildInsertQuery(this.config);\n }\n toSQL() {\n const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n return rest;\n }\n /** @internal */ _prepare(isOneTimeQuery = true) {\n return this.session[isOneTimeQuery ? \"prepareOneTimeQuery\" : \"prepareQuery\"](this.dialect.sqlToQuery(this.getSQL()), this.config.returning, this.config.returning ? \"all\" : \"run\");\n }\n prepare() {\n return this._prepare(false);\n }\n async execute() {\n return this.config.returning ? this.all() : this.run();\n }\n $dynamic() {\n return this;\n }\n}\n //# sourceMappingURL=insert.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL2luc2VydC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFpRDtBQUNLO0FBQ0g7QUFDVDtBQUNIO0FBQzRCO0FBQ25FLE1BQU1VO0lBQ0pDLFlBQVlDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsQ0FBRTtRQUM3QyxJQUFJLENBQUNILEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7O1lBQ08sQ0FBQ2Ysa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJnQixPQUFPQSxNQUFNLEVBQUU7UUFDYkEsU0FBU0MsTUFBTUMsT0FBTyxDQUFDRixVQUFVQSxTQUFTO1lBQUNBO1NBQU87UUFDbEQsSUFBSUEsT0FBT0csTUFBTSxLQUFLLEdBQUc7WUFDdkIsTUFBTSxJQUFJQyxNQUFNO1FBQ2xCO1FBQ0EsTUFBTUMsZUFBZUwsT0FBT00sR0FBRyxDQUFDLENBQUNDO1lBQy9CLE1BQU1DLFNBQVMsQ0FBQztZQUNoQixNQUFNQyxPQUFPLElBQUksQ0FBQ2IsS0FBSyxDQUFDTCw0Q0FBS0EsQ0FBQ21CLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDO1lBQzdDLEtBQUssTUFBTUMsVUFBVUMsT0FBT0MsSUFBSSxDQUFDUCxPQUFRO2dCQUN2QyxNQUFNUSxXQUFXUixLQUFLLENBQUNLLE9BQU87Z0JBQzlCSixNQUFNLENBQUNJLE9BQU8sR0FBRzNCLDhDQUFFQSxDQUFDOEIsVUFBVTNCLDRDQUFHQSxJQUFJMkIsV0FBVyxJQUFJNUIsOENBQUtBLENBQUM0QixVQUFVTixJQUFJLENBQUNHLE9BQU87WUFDbEY7WUFDQSxPQUFPSjtRQUNUO1FBQ0EsT0FBTyxJQUFJUSxpQkFBaUIsSUFBSSxDQUFDcEIsS0FBSyxFQUFFUyxjQUFjLElBQUksQ0FBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQ0MsUUFBUTtJQUNqRztBQUNGO0FBQ0EsTUFBTWlCLHlCQUF5QjlCLDJEQUFZQTtJQUN6Q1MsWUFBWUMsS0FBSyxFQUFFSSxNQUFNLEVBQUVILE9BQU8sRUFBRUMsT0FBTyxFQUFFQyxRQUFRLENBQUU7UUFDckQsS0FBSzthQW1HUGtCLE1BQU0sQ0FBQ0M7WUFDTCxPQUFPLElBQUksQ0FBQ0MsUUFBUSxHQUFHRixHQUFHLENBQUNDO1FBQzdCO2FBQ0FFLE1BQU0sQ0FBQ0Y7WUFDTCxPQUFPLElBQUksQ0FBQ0MsUUFBUSxHQUFHQyxHQUFHLENBQUNGO1FBQzdCO2FBQ0FHLE1BQU0sQ0FBQ0g7WUFDTCxPQUFPLElBQUksQ0FBQ0MsUUFBUSxHQUFHRSxHQUFHLENBQUNIO1FBQzdCO2FBQ0FsQixTQUFTLENBQUNrQjtZQUNSLE9BQU8sSUFBSSxDQUFDQyxRQUFRLEdBQUduQixNQUFNLENBQUNrQjtRQUNoQztRQTdHRSxJQUFJLENBQUNyQixPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDd0IsTUFBTSxHQUFHO1lBQUUxQjtZQUFPSTtZQUFRRDtRQUFTO0lBQzFDOztZQUNPLENBQUNmLGtEQUFVQSxDQUFDLEdBQUc7O0lBR3RCdUMsVUFBVUMsU0FBUyxJQUFJLENBQUNGLE1BQU0sQ0FBQzFCLEtBQUssQ0FBQ04sa0RBQVdBLENBQUNvQixNQUFNLENBQUNDLE9BQU8sQ0FBQyxFQUFFO1FBQ2hFLElBQUksQ0FBQ1csTUFBTSxDQUFDQyxTQUFTLEdBQUc5Qiw4REFBbUJBLENBQUMrQjtRQUM1QyxPQUFPLElBQUk7SUFDYjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkMsR0FDREMsb0JBQW9CSCxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQy9CLElBQUlBLE9BQU9JLE1BQU0sS0FBSyxLQUFLLEdBQUc7WUFDNUIsSUFBSSxDQUFDSixNQUFNLENBQUNLLFVBQVUsR0FBR3RDLDRDQUFHLENBQUMsVUFBVSxDQUFDO1FBQzFDLE9BQU87WUFDTCxNQUFNdUMsWUFBWTNCLE1BQU1DLE9BQU8sQ0FBQ29CLE9BQU9JLE1BQU0sSUFBSXJDLDRDQUFHLENBQUMsRUFBRWlDLE9BQU9JLE1BQU0sQ0FBQyxDQUFDLEdBQUdyQyw0Q0FBRyxDQUFDLEVBQUU7Z0JBQUNpQyxPQUFPSSxNQUFNO2FBQUMsQ0FBQyxDQUFDO1lBQ2hHLE1BQU1HLFdBQVdQLE9BQU9RLEtBQUssR0FBR3pDLDRDQUFHLENBQUMsT0FBTyxFQUFFaUMsT0FBT1EsS0FBSyxDQUFDLENBQUMsR0FBR3pDLDRDQUFHLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUNpQyxNQUFNLENBQUNLLFVBQVUsR0FBR3RDLDRDQUFHLENBQUMsRUFBRXVDLFVBQVUsV0FBVyxFQUFFQyxTQUFTLENBQUM7UUFDbEU7UUFDQSxPQUFPLElBQUk7SUFDYjtJQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJDLEdBQ0RFLG1CQUFtQlQsTUFBTSxFQUFFO1FBQ3pCLE1BQU1NLFlBQVkzQixNQUFNQyxPQUFPLENBQUNvQixPQUFPSSxNQUFNLElBQUlyQyw0Q0FBRyxDQUFDLEVBQUVpQyxPQUFPSSxNQUFNLENBQUMsQ0FBQyxHQUFHckMsNENBQUcsQ0FBQyxFQUFFO1lBQUNpQyxPQUFPSSxNQUFNO1NBQUMsQ0FBQyxDQUFDO1FBQ2hHLE1BQU1HLFdBQVdQLE9BQU9RLEtBQUssR0FBR3pDLDRDQUFHLENBQUMsT0FBTyxFQUFFaUMsT0FBT1EsS0FBSyxDQUFDLENBQUMsR0FBR3pDLDRDQUFHLENBQUMsQ0FBQztRQUNuRSxNQUFNMkMsU0FBUyxJQUFJLENBQUNsQyxPQUFPLENBQUNtQyxjQUFjLENBQUMsSUFBSSxDQUFDWCxNQUFNLENBQUMxQixLQUFLLEVBQUVKLHVEQUFZQSxDQUFDLElBQUksQ0FBQzhCLE1BQU0sQ0FBQzFCLEtBQUssRUFBRTBCLE9BQU9ZLEdBQUc7UUFDeEcsSUFBSSxDQUFDWixNQUFNLENBQUNLLFVBQVUsR0FBR3RDLDRDQUFHLENBQUMsRUFBRXVDLFVBQVUsZUFBZSxFQUFFSSxPQUFPLEVBQUVILFNBQVMsQ0FBQztRQUM3RSxPQUFPLElBQUk7SUFDYjtJQUNBLGNBQWMsR0FDZE0sU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDckMsT0FBTyxDQUFDc0MsZ0JBQWdCLENBQUMsSUFBSSxDQUFDZCxNQUFNO0lBQ2xEO0lBQ0FlLFFBQVE7UUFDTixNQUFNLEVBQUVDLFNBQVNDLFFBQVEsRUFBRSxHQUFHQyxNQUFNLEdBQUcsSUFBSSxDQUFDMUMsT0FBTyxDQUFDMkMsVUFBVSxDQUFDLElBQUksQ0FBQ04sTUFBTTtRQUMxRSxPQUFPSztJQUNUO0lBQ0EsY0FBYyxHQUNkckIsU0FBU3VCLGlCQUFpQixJQUFJLEVBQUU7UUFDOUIsT0FBTyxJQUFJLENBQUM3QyxPQUFPLENBQUM2QyxpQkFBaUIsd0JBQXdCLGVBQWUsQ0FDMUUsSUFBSSxDQUFDNUMsT0FBTyxDQUFDMkMsVUFBVSxDQUFDLElBQUksQ0FBQ04sTUFBTSxLQUNuQyxJQUFJLENBQUNiLE1BQU0sQ0FBQ0MsU0FBUyxFQUNyQixJQUFJLENBQUNELE1BQU0sQ0FBQ0MsU0FBUyxHQUFHLFFBQVE7SUFFcEM7SUFDQW9CLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ3hCLFFBQVEsQ0FBQztJQUN2QjtJQWFBLE1BQU15QixVQUFVO1FBQ2QsT0FBTyxJQUFJLENBQUN0QixNQUFNLENBQUNDLFNBQVMsR0FBRyxJQUFJLENBQUNILEdBQUcsS0FBSyxJQUFJLENBQUNILEdBQUc7SUFDdEQ7SUFDQTRCLFdBQVc7UUFDVCxPQUFPLElBQUk7SUFDYjtBQUNGO0FBSUUsQ0FDRixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9zcWxpdGUtY29yZS9xdWVyeS1idWlsZGVycy9pbnNlcnQuanM/NWQ2MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kLCBpcyB9IGZyb20gXCIuLi8uLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IFF1ZXJ5UHJvbWlzZSB9IGZyb20gXCIuLi8uLi9xdWVyeS1wcm9taXNlLmpzXCI7XG5pbXBvcnQgeyBQYXJhbSwgU1FMLCBzcWwgfSBmcm9tIFwiLi4vLi4vc3FsL3NxbC5qc1wiO1xuaW1wb3J0IHsgU1FMaXRlVGFibGUgfSBmcm9tIFwiLi4vdGFibGUuanNcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcIi4uLy4uL3RhYmxlLmpzXCI7XG5pbXBvcnQgeyBtYXBVcGRhdGVTZXQsIG9yZGVyU2VsZWN0ZWRGaWVsZHMgfSBmcm9tIFwiLi4vLi4vdXRpbHMuanNcIjtcbmNsYXNzIFNRTGl0ZUluc2VydEJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgc2Vzc2lvbiwgZGlhbGVjdCwgd2l0aExpc3QpIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvbjtcbiAgICB0aGlzLmRpYWxlY3QgPSBkaWFsZWN0O1xuICAgIHRoaXMud2l0aExpc3QgPSB3aXRoTGlzdDtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVJbnNlcnRCdWlsZGVyXCI7XG4gIHZhbHVlcyh2YWx1ZXMpIHtcbiAgICB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlcykgPyB2YWx1ZXMgOiBbdmFsdWVzXTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidmFsdWVzKCkgbXVzdCBiZSBjYWxsZWQgd2l0aCBhdCBsZWFzdCBvbmUgdmFsdWVcIik7XG4gICAgfVxuICAgIGNvbnN0IG1hcHBlZFZhbHVlcyA9IHZhbHVlcy5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICAgIGNvbnN0IGNvbHMgPSB0aGlzLnRhYmxlW1RhYmxlLlN5bWJvbC5Db2x1bW5zXTtcbiAgICAgIGZvciAoY29uc3QgY29sS2V5IG9mIE9iamVjdC5rZXlzKGVudHJ5KSkge1xuICAgICAgICBjb25zdCBjb2xWYWx1ZSA9IGVudHJ5W2NvbEtleV07XG4gICAgICAgIHJlc3VsdFtjb2xLZXldID0gaXMoY29sVmFsdWUsIFNRTCkgPyBjb2xWYWx1ZSA6IG5ldyBQYXJhbShjb2xWYWx1ZSwgY29sc1tjb2xLZXldKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBTUUxpdGVJbnNlcnRCYXNlKHRoaXMudGFibGUsIG1hcHBlZFZhbHVlcywgdGhpcy5zZXNzaW9uLCB0aGlzLmRpYWxlY3QsIHRoaXMud2l0aExpc3QpO1xuICB9XG59XG5jbGFzcyBTUUxpdGVJbnNlcnRCYXNlIGV4dGVuZHMgUXVlcnlQcm9taXNlIHtcbiAgY29uc3RydWN0b3IodGFibGUsIHZhbHVlcywgc2Vzc2lvbiwgZGlhbGVjdCwgd2l0aExpc3QpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb247XG4gICAgdGhpcy5kaWFsZWN0ID0gZGlhbGVjdDtcbiAgICB0aGlzLmNvbmZpZyA9IHsgdGFibGUsIHZhbHVlcywgd2l0aExpc3QgfTtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVJbnNlcnRcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjb25maWc7XG4gIHJldHVybmluZyhmaWVsZHMgPSB0aGlzLmNvbmZpZy50YWJsZVtTUUxpdGVUYWJsZS5TeW1ib2wuQ29sdW1uc10pIHtcbiAgICB0aGlzLmNvbmZpZy5yZXR1cm5pbmcgPSBvcmRlclNlbGVjdGVkRmllbGRzKGZpZWxkcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEFkZHMgYW4gYG9uIGNvbmZsaWN0IGRvIG5vdGhpbmdgIGNsYXVzZSB0byB0aGUgcXVlcnkuXG4gICAqXG4gICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgc2ltcGx5IGF2b2lkcyBpbnNlcnRpbmcgYSByb3cgYXMgaXRzIGFsdGVybmF0aXZlIGFjdGlvbi5cbiAgICpcbiAgICogU2VlIGRvY3M6IHtAbGluayBodHRwczovL29ybS5kcml6emxlLnRlYW0vZG9jcy9pbnNlcnQjb24tY29uZmxpY3QtZG8tbm90aGluZ31cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgYHRhcmdldGAgYW5kIGB3aGVyZWAgY2xhdXNlcy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogLy8gSW5zZXJ0IG9uZSByb3cgYW5kIGNhbmNlbCB0aGUgaW5zZXJ0IGlmIHRoZXJlJ3MgYSBjb25mbGljdFxuICAgKiBhd2FpdCBkYi5pbnNlcnQoY2FycylcbiAgICogICAudmFsdWVzKHsgaWQ6IDEsIGJyYW5kOiAnQk1XJyB9KVxuICAgKiAgIC5vbkNvbmZsaWN0RG9Ob3RoaW5nKCk7XG4gICAqXG4gICAqIC8vIEV4cGxpY2l0bHkgc3BlY2lmeSBjb25mbGljdCB0YXJnZXRcbiAgICogYXdhaXQgZGIuaW5zZXJ0KGNhcnMpXG4gICAqICAgLnZhbHVlcyh7IGlkOiAxLCBicmFuZDogJ0JNVycgfSlcbiAgICogICAub25Db25mbGljdERvTm90aGluZyh7IHRhcmdldDogY2Fycy5pZCB9KTtcbiAgICogYGBgXG4gICAqL1xuICBvbkNvbmZsaWN0RG9Ob3RoaW5nKGNvbmZpZyA9IHt9KSB7XG4gICAgaWYgKGNvbmZpZy50YXJnZXQgPT09IHZvaWQgMCkge1xuICAgICAgdGhpcy5jb25maWcub25Db25mbGljdCA9IHNxbGBkbyBub3RoaW5nYDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGFyZ2V0U3FsID0gQXJyYXkuaXNBcnJheShjb25maWcudGFyZ2V0KSA/IHNxbGAke2NvbmZpZy50YXJnZXR9YCA6IHNxbGAke1tjb25maWcudGFyZ2V0XX1gO1xuICAgICAgY29uc3Qgd2hlcmVTcWwgPSBjb25maWcud2hlcmUgPyBzcWxgIHdoZXJlICR7Y29uZmlnLndoZXJlfWAgOiBzcWxgYDtcbiAgICAgIHRoaXMuY29uZmlnLm9uQ29uZmxpY3QgPSBzcWxgJHt0YXJnZXRTcWx9IGRvIG5vdGhpbmcke3doZXJlU3FsfWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBBZGRzIGFuIGBvbiBjb25mbGljdCBkbyB1cGRhdGVgIGNsYXVzZSB0byB0aGUgcXVlcnkuXG4gICAqXG4gICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCB1cGRhdGUgdGhlIGV4aXN0aW5nIHJvdyB0aGF0IGNvbmZsaWN0cyB3aXRoIHRoZSByb3cgcHJvcG9zZWQgZm9yIGluc2VydGlvbiBhcyBpdHMgYWx0ZXJuYXRpdmUgYWN0aW9uLlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL2luc2VydCN1cHNlcnRzLWFuZC1jb25mbGljdHN9XG4gICAqXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGB0YXJnZXRgLCBgc2V0YCBhbmQgYHdoZXJlYCBjbGF1c2VzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiAvLyBVcGRhdGUgdGhlIHJvdyBpZiB0aGVyZSdzIGEgY29uZmxpY3RcbiAgICogYXdhaXQgZGIuaW5zZXJ0KGNhcnMpXG4gICAqICAgLnZhbHVlcyh7IGlkOiAxLCBicmFuZDogJ0JNVycgfSlcbiAgICogICAub25Db25mbGljdERvVXBkYXRlKHtcbiAgICogICAgIHRhcmdldDogY2Fycy5pZCxcbiAgICogICAgIHNldDogeyBicmFuZDogJ1BvcnNjaGUnIH1cbiAgICogICB9KTtcbiAgICpcbiAgICogLy8gVXBzZXJ0IHdpdGggJ3doZXJlJyBjbGF1c2VcbiAgICogYXdhaXQgZGIuaW5zZXJ0KGNhcnMpXG4gICAqICAgLnZhbHVlcyh7IGlkOiAxLCBicmFuZDogJ0JNVycgfSlcbiAgICogICAub25Db25mbGljdERvVXBkYXRlKHtcbiAgICogICAgIHRhcmdldDogY2Fycy5pZCxcbiAgICogICAgIHNldDogeyBicmFuZDogJ25ld0JNVycgfSxcbiAgICogICAgIHdoZXJlOiBzcWxgJHtjYXJzLmNyZWF0ZWRBdH0gPiAnMjAyMy0wMS0wMSc6OmRhdGVgLFxuICAgKiAgIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIG9uQ29uZmxpY3REb1VwZGF0ZShjb25maWcpIHtcbiAgICBjb25zdCB0YXJnZXRTcWwgPSBBcnJheS5pc0FycmF5KGNvbmZpZy50YXJnZXQpID8gc3FsYCR7Y29uZmlnLnRhcmdldH1gIDogc3FsYCR7W2NvbmZpZy50YXJnZXRdfWA7XG4gICAgY29uc3Qgd2hlcmVTcWwgPSBjb25maWcud2hlcmUgPyBzcWxgIHdoZXJlICR7Y29uZmlnLndoZXJlfWAgOiBzcWxgYDtcbiAgICBjb25zdCBzZXRTcWwgPSB0aGlzLmRpYWxlY3QuYnVpbGRVcGRhdGVTZXQodGhpcy5jb25maWcudGFibGUsIG1hcFVwZGF0ZVNldCh0aGlzLmNvbmZpZy50YWJsZSwgY29uZmlnLnNldCkpO1xuICAgIHRoaXMuY29uZmlnLm9uQ29uZmxpY3QgPSBzcWxgJHt0YXJnZXRTcWx9IGRvIHVwZGF0ZSBzZXQgJHtzZXRTcWx9JHt3aGVyZVNxbH1gO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0U1FMKCkge1xuICAgIHJldHVybiB0aGlzLmRpYWxlY3QuYnVpbGRJbnNlcnRRdWVyeSh0aGlzLmNvbmZpZyk7XG4gIH1cbiAgdG9TUUwoKSB7XG4gICAgY29uc3QgeyB0eXBpbmdzOiBfdHlwaW5ncywgLi4ucmVzdCB9ID0gdGhpcy5kaWFsZWN0LnNxbFRvUXVlcnkodGhpcy5nZXRTUUwoKSk7XG4gICAgcmV0dXJuIHJlc3Q7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfcHJlcGFyZShpc09uZVRpbWVRdWVyeSA9IHRydWUpIHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uW2lzT25lVGltZVF1ZXJ5ID8gXCJwcmVwYXJlT25lVGltZVF1ZXJ5XCIgOiBcInByZXBhcmVRdWVyeVwiXShcbiAgICAgIHRoaXMuZGlhbGVjdC5zcWxUb1F1ZXJ5KHRoaXMuZ2V0U1FMKCkpLFxuICAgICAgdGhpcy5jb25maWcucmV0dXJuaW5nLFxuICAgICAgdGhpcy5jb25maWcucmV0dXJuaW5nID8gXCJhbGxcIiA6IFwicnVuXCJcbiAgICApO1xuICB9XG4gIHByZXBhcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoZmFsc2UpO1xuICB9XG4gIHJ1biA9IChwbGFjZWhvbGRlclZhbHVlcykgPT4ge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlKCkucnVuKHBsYWNlaG9sZGVyVmFsdWVzKTtcbiAgfTtcbiAgYWxsID0gKHBsYWNlaG9sZGVyVmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoKS5hbGwocGxhY2Vob2xkZXJWYWx1ZXMpO1xuICB9O1xuICBnZXQgPSAocGxhY2Vob2xkZXJWYWx1ZXMpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZSgpLmdldChwbGFjZWhvbGRlclZhbHVlcyk7XG4gIH07XG4gIHZhbHVlcyA9IChwbGFjZWhvbGRlclZhbHVlcykgPT4ge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlKCkudmFsdWVzKHBsYWNlaG9sZGVyVmFsdWVzKTtcbiAgfTtcbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmV0dXJuaW5nID8gdGhpcy5hbGwoKSA6IHRoaXMucnVuKCk7XG4gIH1cbiAgJGR5bmFtaWMoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIFNRTGl0ZUluc2VydEJhc2UsXG4gIFNRTGl0ZUluc2VydEJ1aWxkZXJcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnNlcnQuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJpcyIsIlF1ZXJ5UHJvbWlzZSIsIlBhcmFtIiwiU1FMIiwic3FsIiwiU1FMaXRlVGFibGUiLCJUYWJsZSIsIm1hcFVwZGF0ZVNldCIsIm9yZGVyU2VsZWN0ZWRGaWVsZHMiLCJTUUxpdGVJbnNlcnRCdWlsZGVyIiwiY29uc3RydWN0b3IiLCJ0YWJsZSIsInNlc3Npb24iLCJkaWFsZWN0Iiwid2l0aExpc3QiLCJ2YWx1ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsIm1hcHBlZFZhbHVlcyIsIm1hcCIsImVudHJ5IiwicmVzdWx0IiwiY29scyIsIlN5bWJvbCIsIkNvbHVtbnMiLCJjb2xLZXkiLCJPYmplY3QiLCJrZXlzIiwiY29sVmFsdWUiLCJTUUxpdGVJbnNlcnRCYXNlIiwicnVuIiwicGxhY2Vob2xkZXJWYWx1ZXMiLCJfcHJlcGFyZSIsImFsbCIsImdldCIsImNvbmZpZyIsInJldHVybmluZyIsImZpZWxkcyIsIm9uQ29uZmxpY3REb05vdGhpbmciLCJ0YXJnZXQiLCJvbkNvbmZsaWN0IiwidGFyZ2V0U3FsIiwid2hlcmVTcWwiLCJ3aGVyZSIsIm9uQ29uZmxpY3REb1VwZGF0ZSIsInNldFNxbCIsImJ1aWxkVXBkYXRlU2V0Iiwic2V0IiwiZ2V0U1FMIiwiYnVpbGRJbnNlcnRRdWVyeSIsInRvU1FMIiwidHlwaW5ncyIsIl90eXBpbmdzIiwicmVzdCIsInNxbFRvUXVlcnkiLCJpc09uZVRpbWVRdWVyeSIsInByZXBhcmUiLCJleGVjdXRlIiwiJGR5bmFtaWMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/insert.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js":
-/*!**********************************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js ***!
- \**********************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ QueryBuilder: () => (/* binding */ QueryBuilder)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _dialect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dialect.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/dialect.js\");\n/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./select.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/select.js\");\n/* harmony import */ var _subquery_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../subquery.js */ \"(rsc)/../../node_modules/drizzle-orm/subquery.js\");\n/* harmony import */ var _selection_proxy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../selection-proxy.js */ \"(rsc)/../../node_modules/drizzle-orm/selection-proxy.js\");\n\n\n\n\n\nclass QueryBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteQueryBuilder\";\n }\n $with(alias) {\n const queryBuilder = this;\n return {\n as (qb) {\n if (typeof qb === \"function\") {\n qb = qb(queryBuilder);\n }\n return new Proxy(new _subquery_js__WEBPACK_IMPORTED_MODULE_1__.WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true), new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_2__.SelectionProxyHandler({\n alias,\n sqlAliasedBehavior: \"alias\",\n sqlBehavior: \"error\"\n }));\n }\n };\n }\n with(...queries) {\n const self = this;\n function select(fields) {\n return new _select_js__WEBPACK_IMPORTED_MODULE_3__.SQLiteSelectBuilder({\n fields: fields ?? void 0,\n session: void 0,\n dialect: self.getDialect(),\n withList: queries\n });\n }\n function selectDistinct(fields) {\n return new _select_js__WEBPACK_IMPORTED_MODULE_3__.SQLiteSelectBuilder({\n fields: fields ?? void 0,\n session: void 0,\n dialect: self.getDialect(),\n withList: queries,\n distinct: true\n });\n }\n return {\n select,\n selectDistinct\n };\n }\n select(fields) {\n return new _select_js__WEBPACK_IMPORTED_MODULE_3__.SQLiteSelectBuilder({\n fields: fields ?? void 0,\n session: void 0,\n dialect: this.getDialect()\n });\n }\n selectDistinct(fields) {\n return new _select_js__WEBPACK_IMPORTED_MODULE_3__.SQLiteSelectBuilder({\n fields: fields ?? void 0,\n session: void 0,\n dialect: this.getDialect(),\n distinct: true\n });\n }\n // Lazy load dialect to avoid circular dependency\n getDialect() {\n if (!this.dialect) {\n this.dialect = new _dialect_js__WEBPACK_IMPORTED_MODULE_4__.SQLiteSyncDialect();\n }\n return this.dialect;\n }\n}\n //# sourceMappingURL=query-builder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3F1ZXJ5LWJ1aWxkZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZDO0FBQ0s7QUFDQTtBQUNEO0FBQ2dCO0FBQ2pFLE1BQU1LOztZQUNHLENBQUNMLGtEQUFVQSxDQUFDLEdBQUc7O0lBRXRCTSxNQUFNQyxLQUFLLEVBQUU7UUFDWCxNQUFNQyxlQUFlLElBQUk7UUFDekIsT0FBTztZQUNMQyxJQUFHQyxFQUFFO2dCQUNILElBQUksT0FBT0EsT0FBTyxZQUFZO29CQUM1QkEsS0FBS0EsR0FBR0Y7Z0JBQ1Y7Z0JBQ0EsT0FBTyxJQUFJRyxNQUNULElBQUlSLHNEQUFZQSxDQUFDTyxHQUFHRSxNQUFNLElBQUlGLEdBQUdHLGlCQUFpQixJQUFJTixPQUFPLE9BQzdELElBQUlILHNFQUFxQkEsQ0FBQztvQkFBRUc7b0JBQU9PLG9CQUFvQjtvQkFBU0MsYUFBYTtnQkFBUTtZQUV6RjtRQUNGO0lBQ0Y7SUFDQUMsS0FBSyxHQUFHQyxPQUFPLEVBQUU7UUFDZixNQUFNQyxPQUFPLElBQUk7UUFDakIsU0FBU0MsT0FBT0MsTUFBTTtZQUNwQixPQUFPLElBQUlsQiwyREFBbUJBLENBQUM7Z0JBQzdCa0IsUUFBUUEsVUFBVSxLQUFLO2dCQUN2QkMsU0FBUyxLQUFLO2dCQUNkQyxTQUFTSixLQUFLSyxVQUFVO2dCQUN4QkMsVUFBVVA7WUFDWjtRQUNGO1FBQ0EsU0FBU1EsZUFBZUwsTUFBTTtZQUM1QixPQUFPLElBQUlsQiwyREFBbUJBLENBQUM7Z0JBQzdCa0IsUUFBUUEsVUFBVSxLQUFLO2dCQUN2QkMsU0FBUyxLQUFLO2dCQUNkQyxTQUFTSixLQUFLSyxVQUFVO2dCQUN4QkMsVUFBVVA7Z0JBQ1ZTLFVBQVU7WUFDWjtRQUNGO1FBQ0EsT0FBTztZQUFFUDtZQUFRTTtRQUFlO0lBQ2xDO0lBQ0FOLE9BQU9DLE1BQU0sRUFBRTtRQUNiLE9BQU8sSUFBSWxCLDJEQUFtQkEsQ0FBQztZQUFFa0IsUUFBUUEsVUFBVSxLQUFLO1lBQUdDLFNBQVMsS0FBSztZQUFHQyxTQUFTLElBQUksQ0FBQ0MsVUFBVTtRQUFHO0lBQ3pHO0lBQ0FFLGVBQWVMLE1BQU0sRUFBRTtRQUNyQixPQUFPLElBQUlsQiwyREFBbUJBLENBQUM7WUFDN0JrQixRQUFRQSxVQUFVLEtBQUs7WUFDdkJDLFNBQVMsS0FBSztZQUNkQyxTQUFTLElBQUksQ0FBQ0MsVUFBVTtZQUN4QkcsVUFBVTtRQUNaO0lBQ0Y7SUFDQSxpREFBaUQ7SUFDakRILGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDRCxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDQSxPQUFPLEdBQUcsSUFBSXJCLDBEQUFpQkE7UUFDdEM7UUFDQSxPQUFPLElBQUksQ0FBQ3FCLE9BQU87SUFDckI7QUFDRjtBQUdFLENBQ0YseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUvcXVlcnktYnVpbGRlcnMvcXVlcnktYnVpbGRlci5qcz81Yjk1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgeyBTUUxpdGVTeW5jRGlhbGVjdCB9IGZyb20gXCIuLi9kaWFsZWN0LmpzXCI7XG5pbXBvcnQgeyBTUUxpdGVTZWxlY3RCdWlsZGVyIH0gZnJvbSBcIi4vc2VsZWN0LmpzXCI7XG5pbXBvcnQgeyBXaXRoU3VicXVlcnkgfSBmcm9tIFwiLi4vLi4vc3VicXVlcnkuanNcIjtcbmltcG9ydCB7IFNlbGVjdGlvblByb3h5SGFuZGxlciB9IGZyb20gXCIuLi8uLi9zZWxlY3Rpb24tcHJveHkuanNcIjtcbmNsYXNzIFF1ZXJ5QnVpbGRlciB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVF1ZXJ5QnVpbGRlclwiO1xuICBkaWFsZWN0O1xuICAkd2l0aChhbGlhcykge1xuICAgIGNvbnN0IHF1ZXJ5QnVpbGRlciA9IHRoaXM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFzKHFiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcWIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIHFiID0gcWIocXVlcnlCdWlsZGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFByb3h5KFxuICAgICAgICAgIG5ldyBXaXRoU3VicXVlcnkocWIuZ2V0U1FMKCksIHFiLmdldFNlbGVjdGVkRmllbGRzKCksIGFsaWFzLCB0cnVlKSxcbiAgICAgICAgICBuZXcgU2VsZWN0aW9uUHJveHlIYW5kbGVyKHsgYWxpYXMsIHNxbEFsaWFzZWRCZWhhdmlvcjogXCJhbGlhc1wiLCBzcWxCZWhhdmlvcjogXCJlcnJvclwiIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICB3aXRoKC4uLnF1ZXJpZXMpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBmdW5jdGlvbiBzZWxlY3QoZmllbGRzKSB7XG4gICAgICByZXR1cm4gbmV3IFNRTGl0ZVNlbGVjdEJ1aWxkZXIoe1xuICAgICAgICBmaWVsZHM6IGZpZWxkcyA/PyB2b2lkIDAsXG4gICAgICAgIHNlc3Npb246IHZvaWQgMCxcbiAgICAgICAgZGlhbGVjdDogc2VsZi5nZXREaWFsZWN0KCksXG4gICAgICAgIHdpdGhMaXN0OiBxdWVyaWVzXG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2VsZWN0RGlzdGluY3QoZmllbGRzKSB7XG4gICAgICByZXR1cm4gbmV3IFNRTGl0ZVNlbGVjdEJ1aWxkZXIoe1xuICAgICAgICBmaWVsZHM6IGZpZWxkcyA/PyB2b2lkIDAsXG4gICAgICAgIHNlc3Npb246IHZvaWQgMCxcbiAgICAgICAgZGlhbGVjdDogc2VsZi5nZXREaWFsZWN0KCksXG4gICAgICAgIHdpdGhMaXN0OiBxdWVyaWVzLFxuICAgICAgICBkaXN0aW5jdDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7IHNlbGVjdCwgc2VsZWN0RGlzdGluY3QgfTtcbiAgfVxuICBzZWxlY3QoZmllbGRzKSB7XG4gICAgcmV0dXJuIG5ldyBTUUxpdGVTZWxlY3RCdWlsZGVyKHsgZmllbGRzOiBmaWVsZHMgPz8gdm9pZCAwLCBzZXNzaW9uOiB2b2lkIDAsIGRpYWxlY3Q6IHRoaXMuZ2V0RGlhbGVjdCgpIH0pO1xuICB9XG4gIHNlbGVjdERpc3RpbmN0KGZpZWxkcykge1xuICAgIHJldHVybiBuZXcgU1FMaXRlU2VsZWN0QnVpbGRlcih7XG4gICAgICBmaWVsZHM6IGZpZWxkcyA/PyB2b2lkIDAsXG4gICAgICBzZXNzaW9uOiB2b2lkIDAsXG4gICAgICBkaWFsZWN0OiB0aGlzLmdldERpYWxlY3QoKSxcbiAgICAgIGRpc3RpbmN0OiB0cnVlXG4gICAgfSk7XG4gIH1cbiAgLy8gTGF6eSBsb2FkIGRpYWxlY3QgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jeVxuICBnZXREaWFsZWN0KCkge1xuICAgIGlmICghdGhpcy5kaWFsZWN0KSB7XG4gICAgICB0aGlzLmRpYWxlY3QgPSBuZXcgU1FMaXRlU3luY0RpYWxlY3QoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGlhbGVjdDtcbiAgfVxufVxuZXhwb3J0IHtcbiAgUXVlcnlCdWlsZGVyXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cXVlcnktYnVpbGRlci5qcy5tYXAiXSwibmFtZXMiOlsiZW50aXR5S2luZCIsIlNRTGl0ZVN5bmNEaWFsZWN0IiwiU1FMaXRlU2VsZWN0QnVpbGRlciIsIldpdGhTdWJxdWVyeSIsIlNlbGVjdGlvblByb3h5SGFuZGxlciIsIlF1ZXJ5QnVpbGRlciIsIiR3aXRoIiwiYWxpYXMiLCJxdWVyeUJ1aWxkZXIiLCJhcyIsInFiIiwiUHJveHkiLCJnZXRTUUwiLCJnZXRTZWxlY3RlZEZpZWxkcyIsInNxbEFsaWFzZWRCZWhhdmlvciIsInNxbEJlaGF2aW9yIiwid2l0aCIsInF1ZXJpZXMiLCJzZWxmIiwic2VsZWN0IiwiZmllbGRzIiwic2Vzc2lvbiIsImRpYWxlY3QiLCJnZXREaWFsZWN0Iiwid2l0aExpc3QiLCJzZWxlY3REaXN0aW5jdCIsImRpc3RpbmN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/query.js":
-/*!**************************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/query-builders/query.js ***!
- \**************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RelationalQueryBuilder: () => (/* binding */ RelationalQueryBuilder),\n/* harmony export */ SQLiteRelationalQuery: () => (/* binding */ SQLiteRelationalQuery),\n/* harmony export */ SQLiteSyncRelationalQuery: () => (/* binding */ SQLiteSyncRelationalQuery)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _query_promise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../query-promise.js */ \"(rsc)/../../node_modules/drizzle-orm/query-promise.js\");\n/* harmony import */ var _relations_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../relations.js */ \"(rsc)/../../node_modules/drizzle-orm/relations.js\");\n\n\n\nclass RelationalQueryBuilder {\n constructor(mode, fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session){\n this.mode = mode;\n this.fullSchema = fullSchema;\n this.schema = schema;\n this.tableNamesMap = tableNamesMap;\n this.table = table;\n this.tableConfig = tableConfig;\n this.dialect = dialect;\n this.session = session;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteAsyncRelationalQueryBuilder\";\n }\n findMany(config) {\n return this.mode === \"sync\" ? new SQLiteSyncRelationalQuery(this.fullSchema, this.schema, this.tableNamesMap, this.table, this.tableConfig, this.dialect, this.session, config ? config : {}, \"many\") : new SQLiteRelationalQuery(this.fullSchema, this.schema, this.tableNamesMap, this.table, this.tableConfig, this.dialect, this.session, config ? config : {}, \"many\");\n }\n findFirst(config) {\n return this.mode === \"sync\" ? new SQLiteSyncRelationalQuery(this.fullSchema, this.schema, this.tableNamesMap, this.table, this.tableConfig, this.dialect, this.session, config ? {\n ...config,\n limit: 1\n } : {\n limit: 1\n }, \"first\") : new SQLiteRelationalQuery(this.fullSchema, this.schema, this.tableNamesMap, this.table, this.tableConfig, this.dialect, this.session, config ? {\n ...config,\n limit: 1\n } : {\n limit: 1\n }, \"first\");\n }\n}\nclass SQLiteRelationalQuery extends _query_promise_js__WEBPACK_IMPORTED_MODULE_1__.QueryPromise {\n constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session, config, mode){\n super();\n this.fullSchema = fullSchema;\n this.schema = schema;\n this.tableNamesMap = tableNamesMap;\n this.table = table;\n this.tableConfig = tableConfig;\n this.dialect = dialect;\n this.session = session;\n this.config = config;\n this.mode = mode;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteAsyncRelationalQuery\";\n }\n /** @internal */ getSQL() {\n return this.dialect.buildRelationalQuery({\n fullSchema: this.fullSchema,\n schema: this.schema,\n tableNamesMap: this.tableNamesMap,\n table: this.table,\n tableConfig: this.tableConfig,\n queryConfig: this.config,\n tableAlias: this.tableConfig.tsName\n }).sql;\n }\n /** @internal */ _prepare(isOneTimeQuery = false) {\n const { query, builtQuery } = this._toSQL();\n return this.session[isOneTimeQuery ? \"prepareOneTimeQuery\" : \"prepareQuery\"](builtQuery, void 0, this.mode === \"first\" ? \"get\" : \"all\", (rawRows, mapColumnValue)=>{\n const rows = rawRows.map((row)=>(0,_relations_js__WEBPACK_IMPORTED_MODULE_2__.mapRelationalRow)(this.schema, this.tableConfig, row, query.selection, mapColumnValue));\n if (this.mode === \"first\") {\n return rows[0];\n }\n return rows;\n });\n }\n prepare() {\n return this._prepare(false);\n }\n _toSQL() {\n const query = this.dialect.buildRelationalQuery({\n fullSchema: this.fullSchema,\n schema: this.schema,\n tableNamesMap: this.tableNamesMap,\n table: this.table,\n tableConfig: this.tableConfig,\n queryConfig: this.config,\n tableAlias: this.tableConfig.tsName\n });\n const builtQuery = this.dialect.sqlToQuery(query.sql);\n return {\n query,\n builtQuery\n };\n }\n toSQL() {\n return this._toSQL().builtQuery;\n }\n /** @internal */ executeRaw() {\n if (this.mode === \"first\") {\n return this._prepare(false).get();\n }\n return this._prepare(false).all();\n }\n async execute() {\n return this.executeRaw();\n }\n}\nclass SQLiteSyncRelationalQuery extends SQLiteRelationalQuery {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteSyncRelationalQuery\";\n }\n sync() {\n return this.executeRaw();\n }\n}\n //# sourceMappingURL=query.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3F1ZXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE2QztBQUNTO0FBRzFCO0FBQzVCLE1BQU1HO0lBQ0pDLFlBQVlDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQUVDLGFBQWEsRUFBRUMsS0FBSyxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsT0FBTyxDQUFFO1FBQ3pGLElBQUksQ0FBQ1AsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLGFBQWEsR0FBR0E7UUFDckIsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtJQUNqQjs7WUFDTyxDQUFDWixrREFBVUEsQ0FBQyxHQUFHOztJQUN0QmEsU0FBU0MsTUFBTSxFQUFFO1FBQ2YsT0FBTyxJQUFJLENBQUNULElBQUksS0FBSyxTQUFTLElBQUlVLDBCQUNoQyxJQUFJLENBQUNULFVBQVUsRUFDZixJQUFJLENBQUNDLE1BQU0sRUFDWCxJQUFJLENBQUNDLGFBQWEsRUFDbEIsSUFBSSxDQUFDQyxLQUFLLEVBQ1YsSUFBSSxDQUFDQyxXQUFXLEVBQ2hCLElBQUksQ0FBQ0MsT0FBTyxFQUNaLElBQUksQ0FBQ0MsT0FBTyxFQUNaRSxTQUFTQSxTQUFTLENBQUMsR0FDbkIsVUFDRSxJQUFJRSxzQkFDTixJQUFJLENBQUNWLFVBQVUsRUFDZixJQUFJLENBQUNDLE1BQU0sRUFDWCxJQUFJLENBQUNDLGFBQWEsRUFDbEIsSUFBSSxDQUFDQyxLQUFLLEVBQ1YsSUFBSSxDQUFDQyxXQUFXLEVBQ2hCLElBQUksQ0FBQ0MsT0FBTyxFQUNaLElBQUksQ0FBQ0Ms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QUFNRixRQUFRLElBQUksQ0FBQ2hCLE9BQU8sQ0FBQ1Msb0JBQW9CLENBQUM7WUFDOUNkLFlBQVksSUFBSSxDQUFDQSxVQUFVO1lBQzNCQyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtZQUNuQkMsZUFBZSxJQUFJLENBQUNBLGFBQWE7WUFDakNDLE9BQU8sSUFBSSxDQUFDQSxLQUFLO1lBQ2pCQyxhQUFhLElBQUksQ0FBQ0EsV0FBVztZQUM3QlcsYUFBYSxJQUFJLENBQUNQLE1BQU07WUFDeEJRLFlBQVksSUFBSSxDQUFDWixXQUFXLENBQUNhLE1BQU07UUFDckM7UUFDQSxNQUFNSyxhQUFhLElBQUksQ0FBQ2pCLE9BQU8sQ0FBQzBCLFVBQVUsQ0FBQ1YsTUFBTUgsR0FBRztRQUNwRCxPQUFPO1lBQUVHO1lBQU9DO1FBQVc7SUFDN0I7SUFDQVUsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDVCxNQUFNLEdBQUdELFVBQVU7SUFDakM7SUFDQSxjQUFjLEdBQ2RXLGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQ2xDLElBQUksS0FBSyxTQUFTO1lBQ3pCLE9BQU8sSUFBSSxDQUFDb0IsUUFBUSxDQUFDLE9BQU9lLEdBQUc7UUFDakM7UUFDQSxPQUFPLElBQUksQ0FBQ2YsUUFBUSxDQUFDLE9BQU9nQixHQUFHO0lBQ2pDO0lBQ0EsTUFBTUMsVUFBVTtRQUNkLE9BQU8sSUFBSSxDQUFDSCxVQUFVO0lBQ3hCO0FBQ0Y7QUFDQSxNQUFNeEIsa0NBQWtDQzs7WUFDL0IsQ0FBQ2hCLGtEQUFVQSxDQUFDLEdBQUc7O0lBQ3RCMkMsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDSixVQUFVO0lBQ3hCO0FBQ0Y7QUFLRSxDQUNGLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3F1ZXJ5LmpzPzI5NzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW50aXR5S2luZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IFF1ZXJ5UHJvbWlzZSB9IGZyb20gXCIuLi8uLi9xdWVyeS1wcm9taXNlLmpzXCI7XG5pbXBvcnQge1xuICBtYXBSZWxhdGlvbmFsUm93XG59IGZyb20gXCIuLi8uLi9yZWxhdGlvbnMuanNcIjtcbmNsYXNzIFJlbGF0aW9uYWxRdWVyeUJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihtb2RlLCBmdWxsU2NoZW1hLCBzY2hlbWEsIHRhYmxlTmFtZXNNYXAsIHRhYmxlLCB0YWJsZUNvbmZpZywgZGlhbGVjdCwgc2Vzc2lvbikge1xuICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgdGhpcy5mdWxsU2NoZW1hID0gZnVsbFNjaGVtYTtcbiAgICB0aGlzLnNjaGVtYSA9IHNjaGVtYTtcbiAgICB0aGlzLnRhYmxlTmFtZXNNYXAgPSB0YWJsZU5hbWVzTWFwO1xuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLnRhYmxlQ29uZmlnID0gdGFibGVDb25maWc7XG4gICAgdGhpcy5kaWFsZWN0ID0gZGlhbGVjdDtcbiAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uO1xuICB9XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZUFzeW5jUmVsYXRpb25hbFF1ZXJ5QnVpbGRlclwiO1xuICBmaW5kTWFueShjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSBcInN5bmNcIiA/IG5ldyBTUUxpdGVTeW5jUmVsYXRpb25hbFF1ZXJ5KFxuICAgICAgdGhpcy5mdWxsU2NoZW1hLFxuICAgICAgdGhpcy5zY2hlbWEsXG4gICAgICB0aGlzLnRhYmxlTmFtZXNNYXAsXG4gICAgICB0aGlzLnRhYmxlLFxuICAgICAgdGhpcy50YWJsZUNvbmZpZyxcbiAgICAgIHRoaXMuZGlhbGVjdCxcbiAgICAgIHRoaXMuc2Vzc2lvbixcbiAgICAgIGNvbmZpZyA/IGNvbmZpZyA6IHt9LFxuICAgICAgXCJtYW55XCJcbiAgICApIDogbmV3IFNRTGl0ZVJlbGF0aW9uYWxRdWVyeShcbiAgICAgIHRoaXMuZnVsbFNjaGVtYSxcbiAgICAgIHRoaXMuc2NoZW1hLFxuICAgICAgdGhpcy50YWJsZU5hbWVzTWFwLFxuICAgICAgdGhpcy50YWJsZSxcbiAgICAgIHRoaXMudGFibGVDb25maWcsXG4gICAgICB0aGlzLmRpYWxlY3QsXG4gICAgICB0aGlzLnNlc3Npb24sXG4gICAgICBjb25maWcgPyBjb25maWcgOiB7fSxcbiAgICAgIFwibWFueVwiXG4gICAgKTtcbiAgfVxuICBmaW5kRmlyc3QoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gXCJzeW5jXCIgPyBuZXcgU1FMaXRlU3luY1JlbGF0aW9uYWxRdWVyeShcbiAgICAgIHRoaXMuZnVsbFNjaGVtYSxcbiAgICAgIHRoaXMuc2NoZW1hLFxuICAgICAgdGhpcy50YWJsZU5hbWVzTWFwLFxuICAgICAgdGhpcy50YWJsZSxcbiAgICAgIHRoaXMudGFibGVDb25maWcsXG4gICAgICB0aGlzLmRpYWxlY3QsXG4gICAgICB0aGlzLnNlc3Npb24sXG4gICAgICBjb25maWcgPyB7IC4uLmNvbmZpZywgbGltaXQ6IDEgfSA6IHsgbGltaXQ6IDEgfSxcbiAgICAgIFwiZmlyc3RcIlxuICAgICkgOiBuZXcgU1FMaXRlUmVsYXRpb25hbFF1ZXJ5KFxuICAgICAgdGhpcy5mdWxsU2NoZW1hLFxuICAgICAgdGhpcy5zY2hlbWEsXG4gICAgICB0aGlzLnRhYmxlTmFtZXNNYXAsXG4gICAgICB0aGlzLnRhYmxlLFxuICAgICAgdGhpcy50YWJsZUNvbmZpZyxcbiAgICAgIHRoaXMuZGlhbGVjdCxcbiAgICAgIHRoaXMuc2Vzc2lvbixcbiAgICAgIGNvbmZpZyA/IHsgLi4uY29uZmlnLCBsaW1pdDogMSB9IDogeyBsaW1pdDogMSB9LFxuICAgICAgXCJmaXJzdFwiXG4gICAgKTtcbiAgfVxufVxuY2xhc3MgU1FMaXRlUmVsYXRpb25hbFF1ZXJ5IGV4dGVuZHMgUXVlcnlQcm9taXNlIHtcbiAgY29uc3RydWN0b3IoZnVsbFNjaGVtYSwgc2NoZW1hLCB0YWJsZU5hbWVzTWFwLCB0YWJsZSwgdGFibGVDb25maWcsIGRpYWxlY3QsIHNlc3Npb24sIGNvbmZpZywgbW9kZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5mdWxsU2NoZW1hID0gZnVsbFNjaGVtYTtcbiAgICB0aGlzLnNjaGVtYSA9IHNjaGVtYTtcbiAgICB0aGlzLnRhYmxlTmFtZXNNYXAgPSB0YWJsZU5hbWVzTWFwO1xuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLnRhYmxlQ29uZmlnID0gdGFibGVDb25maWc7XG4gICAgdGhpcy5kaWFsZWN0ID0gZGlhbGVjdDtcbiAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uO1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlQXN5bmNSZWxhdGlvbmFsUXVlcnlcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBtb2RlO1xuICAvKiogQGludGVybmFsICovXG4gIGdldFNRTCgpIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsZWN0LmJ1aWxkUmVsYXRpb25hbFF1ZXJ5KHtcbiAgICAgIGZ1bGxTY2hlbWE6IHRoaXMuZnVsbFNjaGVtYSxcbiAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXG4gICAgICB0YWJsZU5hbWVzTWFwOiB0aGlzLnRhYmxlTmFtZXNNYXAsXG4gICAgICB0YWJsZTogdGhpcy50YWJsZSxcbiAgICAgIHRhYmxlQ29uZmlnOiB0aGlzLnRhYmxlQ29uZmlnLFxuICAgICAgcXVlcnlDb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgdGFibGVBbGlhczogdGhpcy50YWJsZUNvbmZpZy50c05hbWVcbiAgICB9KS5zcWw7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfcHJlcGFyZShpc09uZVRpbWVRdWVyeSA9IGZhbHNlKSB7XG4gICAgY29uc3QgeyBxdWVyeSwgYnVpbHRRdWVyeSB9ID0gdGhpcy5fdG9TUUwoKTtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uW2lzT25lVGltZVF1ZXJ5ID8gXCJwcmVwYXJlT25lVGltZVF1ZXJ5XCIgOiBcInByZXBhcmVRdWVyeVwiXShcbiAgICAgIGJ1aWx0UXVlcnksXG4gICAgICB2b2lkIDAsXG4gICAgICB0aGlzLm1vZGUgPT09IFwiZmlyc3RcIiA/IFwiZ2V0XCIgOiBcImFsbFwiLFxuICAgICAgKHJhd1Jvd3MsIG1hcENvbHVtblZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSByYXdSb3dzLm1hcChcbiAgICAgICAgICAocm93KSA9PiBtYXBSZWxhdGlvbmFsUm93KHRoaXMuc2NoZW1hLCB0aGlzLnRhYmxlQ29uZmlnLCByb3csIHF1ZXJ5LnNlbGVjdGlvbiwgbWFwQ29sdW1uVmFsdWUpXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09IFwiZmlyc3RcIikge1xuICAgICAgICAgIHJldHVybiByb3dzWzBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dzO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgcHJlcGFyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZShmYWxzZSk7XG4gIH1cbiAgX3RvU1FMKCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LmJ1aWxkUmVsYXRpb25hbFF1ZXJ5KHtcbiAgICAgIGZ1bGxTY2hlbWE6IHRoaXMuZnVsbFNjaGVtYSxcbiAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXG4gICAgICB0YWJsZU5hbWVzTWFwOiB0aGlzLnRhYmxlTmFtZXNNYXAsXG4gICAgICB0YWJsZTogdGhpcy50YWJsZSxcbiAgICAgIHRhYmxlQ29uZmlnOiB0aGlzLnRhYmxlQ29uZmlnLFxuICAgICAgcXVlcnlDb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgdGFibGVBbGlhczogdGhpcy50YWJsZUNvbmZpZy50c05hbWVcbiAgICB9KTtcbiAgICBjb25zdCBidWlsdFF1ZXJ5ID0gdGhpcy5kaWFsZWN0LnNxbFRvUXVlcnkocXVlcnkuc3FsKTtcbiAgICByZXR1cm4geyBxdWVyeSwgYnVpbHRRdWVyeSB9O1xuICB9XG4gIHRvU1FMKCkge1xuICAgIHJldHVybiB0aGlzLl90b1NRTCgpLmJ1aWx0UXVlcnk7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBleGVjdXRlUmF3KCkge1xuICAgIGlmICh0aGlzLm1vZGUgPT09IFwiZmlyc3RcIikge1xuICAgICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoZmFsc2UpLmdldCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZShmYWxzZSkuYWxsKCk7XG4gIH1cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmF3KCk7XG4gIH1cbn1cbmNsYXNzIFNRTGl0ZVN5bmNSZWxhdGlvbmFsUXVlcnkgZXh0ZW5kcyBTUUxpdGVSZWxhdGlvbmFsUXVlcnkge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVTeW5jUmVsYXRpb25hbFF1ZXJ5XCI7XG4gIHN5bmMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJhdygpO1xuICB9XG59XG5leHBvcnQge1xuICBSZWxhdGlvbmFsUXVlcnlCdWlsZGVyLFxuICBTUUxpdGVSZWxhdGlvbmFsUXVlcnksXG4gIFNRTGl0ZVN5bmNSZWxhdGlvbmFsUXVlcnlcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1xdWVyeS5qcy5tYXAiXSwibmFtZXMiOlsiZW50aXR5S2luZCIsIlF1ZXJ5UHJvbWlzZSIsIm1hcFJlbGF0aW9uYWxSb3ciLCJSZWxhdGlvbmFsUXVlcnlCdWlsZGVyIiwiY29uc3RydWN0b3IiLCJtb2RlIiwiZnVsbFNjaGVtYSIsInNjaGVtYSIsInRhYmxlTmFtZXNNYXAiLCJ0YWJsZSIsInRhYmxlQ29uZmlnIiwiZGlhbGVjdCIsInNlc3Npb24iLCJmaW5kTWFueSIsImNvbmZpZyIsIlNRTGl0ZVN5bmNSZWxhdGlvbmFsUXVlcnkiLCJTUUxpdGVSZWxhdGlvbmFsUXVlcnkiLCJmaW5kRmlyc3QiLCJsaW1pdCIsImdldFNRTCIsImJ1aWxkUmVsYXRpb25hbFF1ZXJ5IiwicXVlcnlDb25maWciLCJ0YWJsZUFsaWFzIiwidHNOYW1lIiwic3FsIiwiX3ByZXBhcmUiLCJpc09uZVRpbWVRdWVyeSIsInF1ZXJ5IiwiYnVpbHRRdWVyeSIsIl90b1NRTCIsInJhd1Jvd3MiLCJtYXBDb2x1bW5WYWx1ZSIsInJvd3MiLCJtYXAiLCJyb3ciLCJzZWxlY3Rpb24iLCJwcmVwYXJlIiwic3FsVG9RdWVyeSIsInRvU1FMIiwiZXhlY3V0ZVJhdyIsImdldCIsImFsbCIsImV4ZWN1dGUiLCJzeW5jIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/query.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/raw.js":
-/*!************************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/query-builders/raw.js ***!
- \************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteRaw: () => (/* binding */ SQLiteRaw)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _query_promise_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../query-promise.js */ \"(rsc)/../../node_modules/drizzle-orm/query-promise.js\");\n\n\nclass SQLiteRaw extends _query_promise_js__WEBPACK_IMPORTED_MODULE_0__.QueryPromise {\n constructor(execute, getSQL, action, dialect, mapBatchResult){\n super();\n this.execute = execute;\n this.getSQL = getSQL;\n this.dialect = dialect;\n this.mapBatchResult = mapBatchResult;\n this.config = {\n action\n };\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteRaw\";\n }\n getQuery() {\n return {\n ...this.dialect.sqlToQuery(this.getSQL()),\n method: this.config.action\n };\n }\n mapResult(result, isFromBatch) {\n return isFromBatch ? this.mapBatchResult(result) : result;\n }\n _prepare() {\n return this;\n }\n}\n //# sourceMappingURL=raw.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3Jhdy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNkM7QUFDUztBQUN0RCxNQUFNRSxrQkFBa0JELDJEQUFZQTtJQUNsQ0UsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxjQUFjLENBQUU7UUFDNUQsS0FBSztRQUNMLElBQUksQ0FBQ0osT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0UsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsY0FBYyxHQUFHQTtRQUN0QixJQUFJLENBQUNDLE1BQU0sR0FBRztZQUFFSDtRQUFPO0lBQ3pCOztZQUNPLENBQUNOLGtEQUFVQSxDQUFDLEdBQUc7O0lBR3RCVSxXQUFXO1FBQ1QsT0FBTztZQUFFLEdBQUcsSUFBSSxDQUFDSCxPQUFPLENBQUNJLFVBQVUsQ0FBQyxJQUFJLENBQUNOLE1BQU0sR0FBRztZQUFFTyxRQUFRLElBQUksQ0FBQ0gsTUFBTSxDQUFDSCxNQUFNO1FBQUM7SUFDakY7SUFDQU8sVUFBVUMsTUFBTSxFQUFFQyxXQUFXLEVBQUU7UUFDN0IsT0FBT0EsY0FBYyxJQUFJLENBQUNQLGNBQWMsQ0FBQ00sVUFBVUE7SUFDckQ7SUFDQUUsV0FBVztRQUNULE9BQU8sSUFBSTtJQUNiO0FBQ0Y7QUFHRSxDQUNGLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3Jhdy5qcz82MDhmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgeyBRdWVyeVByb21pc2UgfSBmcm9tIFwiLi4vLi4vcXVlcnktcHJvbWlzZS5qc1wiO1xuY2xhc3MgU1FMaXRlUmF3IGV4dGVuZHMgUXVlcnlQcm9taXNlIHtcbiAgY29uc3RydWN0b3IoZXhlY3V0ZSwgZ2V0U1FMLCBhY3Rpb24sIGRpYWxlY3QsIG1hcEJhdGNoUmVzdWx0KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmV4ZWN1dGUgPSBleGVjdXRlO1xuICAgIHRoaXMuZ2V0U1FMID0gZ2V0U1FMO1xuICAgIHRoaXMuZGlhbGVjdCA9IGRpYWxlY3Q7XG4gICAgdGhpcy5tYXBCYXRjaFJlc3VsdCA9IG1hcEJhdGNoUmVzdWx0O1xuICAgIHRoaXMuY29uZmlnID0geyBhY3Rpb24gfTtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVSYXdcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjb25maWc7XG4gIGdldFF1ZXJ5KCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuZGlhbGVjdC5zcWxUb1F1ZXJ5KHRoaXMuZ2V0U1FMKCkpLCBtZXRob2Q6IHRoaXMuY29uZmlnLmFjdGlvbiB9O1xuICB9XG4gIG1hcFJlc3VsdChyZXN1bHQsIGlzRnJvbUJhdGNoKSB7XG4gICAgcmV0dXJuIGlzRnJvbUJhdGNoID8gdGhpcy5tYXBCYXRjaFJlc3VsdChyZXN1bHQpIDogcmVzdWx0O1xuICB9XG4gIF9wcmVwYXJlKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG5leHBvcnQge1xuICBTUUxpdGVSYXdcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yYXcuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJRdWVyeVByb21pc2UiLCJTUUxpdGVSYXciLCJjb25zdHJ1Y3RvciIsImV4ZWN1dGUiLCJnZXRTUUwiLCJhY3Rpb24iLCJkaWFsZWN0IiwibWFwQmF0Y2hSZXN1bHQiLCJjb25maWciLCJnZXRRdWVyeSIsInNxbFRvUXVlcnkiLCJtZXRob2QiLCJtYXBSZXN1bHQiLCJyZXN1bHQiLCJpc0Zyb21CYXRjaCIsIl9wcmVwYXJlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/raw.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/select.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/query-builders/select.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteSelectBase: () => (/* binding */ SQLiteSelectBase),\n/* harmony export */ SQLiteSelectBuilder: () => (/* binding */ SQLiteSelectBuilder),\n/* harmony export */ SQLiteSelectQueryBuilderBase: () => (/* binding */ SQLiteSelectQueryBuilderBase),\n/* harmony export */ except: () => (/* binding */ except),\n/* harmony export */ intersect: () => (/* binding */ intersect),\n/* harmony export */ union: () => (/* binding */ union),\n/* harmony export */ unionAll: () => (/* binding */ unionAll)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _query_builders_query_builder_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../query-builders/query-builder.js */ \"(rsc)/../../node_modules/drizzle-orm/query-builders/query-builder.js\");\n/* harmony import */ var _query_promise_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../query-promise.js */ \"(rsc)/../../node_modules/drizzle-orm/query-promise.js\");\n/* harmony import */ var _selection_proxy_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../selection-proxy.js */ \"(rsc)/../../node_modules/drizzle-orm/selection-proxy.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var _subquery_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../subquery.js */ \"(rsc)/../../node_modules/drizzle-orm/subquery.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils.js */ \"(rsc)/../../node_modules/drizzle-orm/utils.js\");\n/* harmony import */ var _view_common_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../view-common.js */ \"(rsc)/../../node_modules/drizzle-orm/view-common.js\");\n/* harmony import */ var _view_base_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../view-base.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/view-base.js\");\n\n\n\n\n\n\n\n\n\n\nclass SQLiteSelectBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteSelectBuilder\";\n }\n constructor(config){\n this.fields = config.fields;\n this.session = config.session;\n this.dialect = config.dialect;\n this.withList = config.withList;\n this.distinct = config.distinct;\n }\n from(source) {\n const isPartialSelect = !!this.fields;\n let fields;\n if (this.fields) {\n fields = this.fields;\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(source, _subquery_js__WEBPACK_IMPORTED_MODULE_1__.Subquery)) {\n fields = Object.fromEntries(Object.keys(source[_subquery_js__WEBPACK_IMPORTED_MODULE_1__.SubqueryConfig].selection).map((key)=>[\n key,\n source[key]\n ]));\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(source, _view_base_js__WEBPACK_IMPORTED_MODULE_2__.SQLiteViewBase)) {\n fields = source[_view_common_js__WEBPACK_IMPORTED_MODULE_3__.ViewBaseConfig].selectedFields;\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(source, _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__.SQL)) {\n fields = {};\n } else {\n fields = (0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.getTableColumns)(source);\n }\n return new SQLiteSelectBase({\n table: source,\n fields,\n isPartialSelect,\n session: this.session,\n dialect: this.dialect,\n withList: this.withList,\n distinct: this.distinct\n });\n }\n}\nclass SQLiteSelectQueryBuilderBase extends _query_builders_query_builder_js__WEBPACK_IMPORTED_MODULE_6__.TypedQueryBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteSelectQueryBuilder\";\n }\n constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }){\n super();\n /**\n * Executes a `left join` operation by adding another table to the current query.\n *\n * Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.\n *\n * See docs: {@link https://orm.drizzle.team/docs/joins#left-join}\n *\n * @param table the table to join.\n * @param on the `on` clause.\n *\n * @example\n *\n * ```ts\n * // Select all users and their pets\n * const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()\n * .from(users)\n * .leftJoin(pets, eq(users.id, pets.ownerId))\n *\n * // Select userId and petId\n * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({\n * userId: users.id,\n * petId: pets.id,\n * })\n * .from(users)\n * .leftJoin(pets, eq(users.id, pets.ownerId))\n * ```\n */ this.leftJoin = this.createJoin(\"left\");\n /**\n * Executes a `right join` operation by adding another table to the current query.\n *\n * Calling this method associates each row of the joined table with the corresponding row from the main table, if a match is found. If no matching row exists, it sets all columns of the main table to null.\n *\n * See docs: {@link https://orm.drizzle.team/docs/joins#right-join}\n *\n * @param table the table to join.\n * @param on the `on` clause.\n *\n * @example\n *\n * ```ts\n * // Select all users and their pets\n * const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()\n * .from(users)\n * .rightJoin(pets, eq(users.id, pets.ownerId))\n *\n * // Select userId and petId\n * const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({\n * userId: users.id,\n * petId: pets.id,\n * })\n * .from(users)\n * .rightJoin(pets, eq(users.id, pets.ownerId))\n * ```\n */ this.rightJoin = this.createJoin(\"right\");\n /**\n * Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.\n *\n * Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.\n *\n * See docs: {@link https://orm.drizzle.team/docs/joins#inner-join}\n *\n * @param table the table to join.\n * @param on the `on` clause.\n *\n * @example\n *\n * ```ts\n * // Select all users and their pets\n * const usersWithPets: { user: User; pets: Pet }[] = await db.select()\n * .from(users)\n * .innerJoin(pets, eq(users.id, pets.ownerId))\n *\n * // Select userId and petId\n * const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({\n * userId: users.id,\n * petId: pets.id,\n * })\n * .from(users)\n * .innerJoin(pets, eq(users.id, pets.ownerId))\n * ```\n */ this.innerJoin = this.createJoin(\"inner\");\n /**\n * Executes a `full join` operation by combining rows from two tables into a new table.\n *\n * Calling this method retrieves all rows from both main and joined tables, merging rows with matching values and filling in `null` for non-matching columns.\n *\n * See docs: {@link https://orm.drizzle.team/docs/joins#full-join}\n *\n * @param table the table to join.\n * @param on the `on` clause.\n *\n * @example\n *\n * ```ts\n * // Select all users and their pets\n * const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()\n * .from(users)\n * .fullJoin(pets, eq(users.id, pets.ownerId))\n *\n * // Select userId and petId\n * const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({\n * userId: users.id,\n * petId: pets.id,\n * })\n * .from(users)\n * .fullJoin(pets, eq(users.id, pets.ownerId))\n * ```\n */ this.fullJoin = this.createJoin(\"full\");\n /**\n * Adds `union` set operator to the query.\n *\n * Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n *\n * @example\n *\n * ```ts\n * // Select all unique names from customers and users tables\n * await db.select({ name: users.name })\n * .from(users)\n * .union(\n * db.select({ name: customers.name }).from(customers)\n * );\n * // or\n * import { union } from 'drizzle-orm/sqlite-core'\n *\n * await union(\n * db.select({ name: users.name }).from(users),\n * db.select({ name: customers.name }).from(customers)\n * );\n * ```\n */ this.union = this.createSetOperator(\"union\", false);\n /**\n * Adds `union all` set operator to the query.\n *\n * Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n *\n * @example\n *\n * ```ts\n * // Select all transaction ids from both online and in-store sales\n * await db.select({ transaction: onlineSales.transactionId })\n * .from(onlineSales)\n * .unionAll(\n * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n * );\n * // or\n * import { unionAll } from 'drizzle-orm/sqlite-core'\n *\n * await unionAll(\n * db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n * );\n * ```\n */ this.unionAll = this.createSetOperator(\"union\", true);\n /**\n * Adds `intersect` set operator to the query.\n *\n * Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n *\n * @example\n *\n * ```ts\n * // Select course names that are offered in both departments A and B\n * await db.select({ courseName: depA.courseName })\n * .from(depA)\n * .intersect(\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * // or\n * import { intersect } from 'drizzle-orm/sqlite-core'\n *\n * await intersect(\n * db.select({ courseName: depA.courseName }).from(depA),\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * ```\n */ this.intersect = this.createSetOperator(\"intersect\", false);\n /**\n * Adds `except` set operator to the query.\n *\n * Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n *\n * @example\n *\n * ```ts\n * // Select all courses offered in department A but not in department B\n * await db.select({ courseName: depA.courseName })\n * .from(depA)\n * .except(\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * // or\n * import { except } from 'drizzle-orm/sqlite-core'\n *\n * await except(\n * db.select({ courseName: depA.courseName }).from(depA),\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * ```\n */ this.except = this.createSetOperator(\"except\", false);\n this.config = {\n withList,\n table,\n fields: {\n ...fields\n },\n distinct,\n setOperators: []\n };\n this.isPartialSelect = isPartialSelect;\n this.session = session;\n this.dialect = dialect;\n this._ = {\n selectedFields: fields\n };\n this.tableName = (0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.getTableLikeName)(table);\n this.joinsNotNullableMap = typeof this.tableName === \"string\" ? {\n [this.tableName]: true\n } : {};\n }\n createJoin(joinType) {\n return (table, on)=>{\n const baseTableName = this.tableName;\n const tableName = (0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.getTableLikeName)(table);\n if (typeof tableName === \"string\" && this.config.joins?.some((join)=>join.alias === tableName)) {\n throw new Error(`Alias \"${tableName}\" is already used in this query`);\n }\n if (!this.isPartialSelect) {\n if (Object.keys(this.joinsNotNullableMap).length === 1 && typeof baseTableName === \"string\") {\n this.config.fields = {\n [baseTableName]: this.config.fields\n };\n }\n if (typeof tableName === \"string\" && !(0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__.SQL)) {\n const selection = (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _subquery_js__WEBPACK_IMPORTED_MODULE_1__.Subquery) ? table[_subquery_js__WEBPACK_IMPORTED_MODULE_1__.SubqueryConfig].selection : (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _sql_sql_js__WEBPACK_IMPORTED_MODULE_4__.View) ? table[_view_common_js__WEBPACK_IMPORTED_MODULE_3__.ViewBaseConfig].selectedFields : table[_table_js__WEBPACK_IMPORTED_MODULE_7__.Table.Symbol.Columns];\n this.config.fields[tableName] = selection;\n }\n }\n if (typeof on === \"function\") {\n on = on(new Proxy(this.config.fields, new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_8__.SelectionProxyHandler({\n sqlAliasedBehavior: \"sql\",\n sqlBehavior: \"sql\"\n })));\n }\n if (!this.config.joins) {\n this.config.joins = [];\n }\n this.config.joins.push({\n on,\n table,\n joinType,\n alias: tableName\n });\n if (typeof tableName === \"string\") {\n switch(joinType){\n case \"left\":\n {\n this.joinsNotNullableMap[tableName] = false;\n break;\n }\n case \"right\":\n {\n this.joinsNotNullableMap = Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([key])=>[\n key,\n false\n ]));\n this.joinsNotNullableMap[tableName] = true;\n break;\n }\n case \"inner\":\n {\n this.joinsNotNullableMap[tableName] = true;\n break;\n }\n case \"full\":\n {\n this.joinsNotNullableMap = Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([key])=>[\n key,\n false\n ]));\n this.joinsNotNullableMap[tableName] = false;\n break;\n }\n }\n }\n return this;\n };\n }\n createSetOperator(type, isAll) {\n return (rightSelection)=>{\n const rightSelect = typeof rightSelection === \"function\" ? rightSelection(getSQLiteSetOperators()) : rightSelection;\n if (!(0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.haveSameKeys)(this.getSelectedFields(), rightSelect.getSelectedFields())) {\n throw new Error(\"Set operator error (union / intersect / except): selected fields are not the same or are in a different order\");\n }\n this.config.setOperators.push({\n type,\n isAll,\n rightSelect\n });\n return this;\n };\n }\n /** @internal */ addSetOperators(setOperators) {\n this.config.setOperators.push(...setOperators);\n return this;\n }\n /**\n * Adds a `where` clause to the query.\n *\n * Calling this method will select only those rows that fulfill a specified condition.\n *\n * See docs: {@link https://orm.drizzle.team/docs/select#filtering}\n *\n * @param where the `where` clause.\n *\n * @example\n * You can use conditional operators and `sql function` to filter the rows to be selected.\n *\n * ```ts\n * // Select all cars with green color\n * await db.select().from(cars).where(eq(cars.color, 'green'));\n * // or\n * await db.select().from(cars).where(sql`${cars.color} = 'green'`)\n * ```\n *\n * You can logically combine conditional operators with `and()` and `or()` operators:\n *\n * ```ts\n * // Select all BMW cars with a green color\n * await db.select().from(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n *\n * // Select all cars with the green or blue color\n * await db.select().from(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n * ```\n */ where(where) {\n if (typeof where === \"function\") {\n where = where(new Proxy(this.config.fields, new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_8__.SelectionProxyHandler({\n sqlAliasedBehavior: \"sql\",\n sqlBehavior: \"sql\"\n })));\n }\n this.config.where = where;\n return this;\n }\n /**\n * Adds a `having` clause to the query.\n *\n * Calling this method will select only those rows that fulfill a specified condition. It is typically used with aggregate functions to filter the aggregated data based on a specified condition.\n *\n * See docs: {@link https://orm.drizzle.team/docs/select#aggregations}\n *\n * @param having the `having` clause.\n *\n * @example\n *\n * ```ts\n * // Select all brands with more than one car\n * await db.select({\n * \tbrand: cars.brand,\n * \tcount: sql<number>`cast(count(${cars.id}) as int)`,\n * })\n * .from(cars)\n * .groupBy(cars.brand)\n * .having(({ count }) => gt(count, 1));\n * ```\n */ having(having) {\n if (typeof having === \"function\") {\n having = having(new Proxy(this.config.fields, new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_8__.SelectionProxyHandler({\n sqlAliasedBehavior: \"sql\",\n sqlBehavior: \"sql\"\n })));\n }\n this.config.having = having;\n return this;\n }\n groupBy(...columns) {\n if (typeof columns[0] === \"function\") {\n const groupBy = columns[0](new Proxy(this.config.fields, new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_8__.SelectionProxyHandler({\n sqlAliasedBehavior: \"alias\",\n sqlBehavior: \"sql\"\n })));\n this.config.groupBy = Array.isArray(groupBy) ? groupBy : [\n groupBy\n ];\n } else {\n this.config.groupBy = columns;\n }\n return this;\n }\n orderBy(...columns) {\n if (typeof columns[0] === \"function\") {\n const orderBy = columns[0](new Proxy(this.config.fields, new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_8__.SelectionProxyHandler({\n sqlAliasedBehavior: \"alias\",\n sqlBehavior: \"sql\"\n })));\n const orderByArray = Array.isArray(orderBy) ? orderBy : [\n orderBy\n ];\n if (this.config.setOperators.length > 0) {\n this.config.setOperators.at(-1).orderBy = orderByArray;\n } else {\n this.config.orderBy = orderByArray;\n }\n } else {\n const orderByArray = columns;\n if (this.config.setOperators.length > 0) {\n this.config.setOperators.at(-1).orderBy = orderByArray;\n } else {\n this.config.orderBy = orderByArray;\n }\n }\n return this;\n }\n /**\n * Adds a `limit` clause to the query.\n *\n * Calling this method will set the maximum number of rows that will be returned by this query.\n *\n * See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n *\n * @param limit the `limit` clause.\n *\n * @example\n *\n * ```ts\n * // Get the first 10 people from this query.\n * await db.select().from(people).limit(10);\n * ```\n */ limit(limit) {\n if (this.config.setOperators.length > 0) {\n this.config.setOperators.at(-1).limit = limit;\n } else {\n this.config.limit = limit;\n }\n return this;\n }\n /**\n * Adds an `offset` clause to the query.\n *\n * Calling this method will skip a number of rows when returning results from this query.\n *\n * See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n *\n * @param offset the `offset` clause.\n *\n * @example\n *\n * ```ts\n * // Get the 10th-20th people from this query.\n * await db.select().from(people).offset(10).limit(10);\n * ```\n */ offset(offset) {\n if (this.config.setOperators.length > 0) {\n this.config.setOperators.at(-1).offset = offset;\n } else {\n this.config.offset = offset;\n }\n return this;\n }\n /** @internal */ getSQL() {\n return this.dialect.buildSelectQuery(this.config);\n }\n toSQL() {\n const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n return rest;\n }\n as(alias) {\n return new Proxy(new _subquery_js__WEBPACK_IMPORTED_MODULE_1__.Subquery(this.getSQL(), this.config.fields, alias), new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_8__.SelectionProxyHandler({\n alias,\n sqlAliasedBehavior: \"alias\",\n sqlBehavior: \"error\"\n }));\n }\n /** @internal */ getSelectedFields() {\n return new Proxy(this.config.fields, new _selection_proxy_js__WEBPACK_IMPORTED_MODULE_8__.SelectionProxyHandler({\n alias: this.tableName,\n sqlAliasedBehavior: \"alias\",\n sqlBehavior: \"error\"\n }));\n }\n $dynamic() {\n return this;\n }\n}\nclass SQLiteSelectBase extends SQLiteSelectQueryBuilderBase {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteSelect\";\n }\n /** @internal */ _prepare(isOneTimeQuery = true) {\n if (!this.session) {\n throw new Error(\"Cannot execute a query on a query builder. Please use a database instance instead.\");\n }\n const fieldsList = (0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.orderSelectedFields)(this.config.fields);\n const query = this.session[isOneTimeQuery ? \"prepareOneTimeQuery\" : \"prepareQuery\"](this.dialect.sqlToQuery(this.getSQL()), fieldsList, \"all\");\n query.joinsNotNullableMap = this.joinsNotNullableMap;\n return query;\n }\n prepare() {\n return this._prepare(false);\n }\n async execute() {\n return this.all();\n }\n constructor(...args){\n super(...args);\n this.run = (placeholderValues)=>{\n return this._prepare().run(placeholderValues);\n };\n this.all = (placeholderValues)=>{\n return this._prepare().all(placeholderValues);\n };\n this.get = (placeholderValues)=>{\n return this._prepare().get(placeholderValues);\n };\n this.values = (placeholderValues)=>{\n return this._prepare().values(placeholderValues);\n };\n }\n}\n(0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.applyMixins)(SQLiteSelectBase, [\n _query_promise_js__WEBPACK_IMPORTED_MODULE_9__.QueryPromise\n]);\nfunction createSetOperator(type, isAll) {\n return (leftSelect, rightSelect, ...restSelects)=>{\n const setOperators = [\n rightSelect,\n ...restSelects\n ].map((select)=>({\n type,\n isAll,\n rightSelect: select\n }));\n for (const setOperator of setOperators){\n if (!(0,_utils_js__WEBPACK_IMPORTED_MODULE_5__.haveSameKeys)(leftSelect.getSelectedFields(), setOperator.rightSelect.getSelectedFields())) {\n throw new Error(\"Set operator error (union / intersect / except): selected fields are not the same or are in a different order\");\n }\n }\n return leftSelect.addSetOperators(setOperators);\n };\n}\nconst getSQLiteSetOperators = ()=>({\n union,\n unionAll,\n intersect,\n except\n });\nconst union = createSetOperator(\"union\", false);\nconst unionAll = createSetOperator(\"union\", true);\nconst intersect = createSetOperator(\"intersect\", false);\nconst except = createSetOperator(\"except\", false);\n //# sourceMappingURL=select.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3NlbGVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFpRDtBQUN5QjtBQUNwQjtBQUNXO0FBQ3BCO0FBQ2dCO0FBQ3RCO0FBT2Y7QUFDOEI7QUFDTDtBQUNqRCxNQUFNaUI7O1lBQ0csQ0FBQ2pCLGtEQUFVQSxDQUFDLEdBQUc7O0lBTXRCa0IsWUFBWUMsTUFBTSxDQUFFO1FBQ2xCLElBQUksQ0FBQ0MsTUFBTSxHQUFHRCxPQUFPQyxNQUFNO1FBQzNCLElBQUksQ0FBQ0MsT0FBTyxHQUFHRixPQUFPRSxPQUFPO1FBQzdCLElBQUksQ0FBQ0MsT0FBTyxHQUFHSCxPQUFPRyxPQUFPO1FBQzdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHSixPQUFPSSxRQUFRO1FBQy9CLElBQUksQ0FBQ0MsUUFBUSxHQUFHTCxPQUFPSyxRQUFRO0lBQ2pDO0lBQ0FDLEtBQUtDLE1BQU0sRUFBRTtRQUNYLE1BQU1DLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDUCxNQUFNO1FBQ3JDLElBQUlBO1FBQ0osSUFBSSxJQUFJLENBQUNBLE1BQU0sRUFBRTtZQUNmQSxTQUFTLElBQUksQ0FBQ0EsTUFBTTtRQUN0QixPQUFPLElBQUluQiw4Q0FBRUEsQ0FBQ3lCLFFBQVFuQixrREFBUUEsR0FBRztZQUMvQmEsU0FBU1EsT0FBT0MsV0FBVyxDQUN6QkQsT0FBT0UsSUFBSSxDQUFDSixNQUFNLENBQUNsQix3REFBY0EsQ0FBQyxDQUFDdUIsU0FBUyxFQUFFQyxHQUFHLENBQUMsQ0FBQ0MsTUFBUTtvQkFBQ0E7b0JBQUtQLE1BQU0sQ0FBQ08sSUFBSTtpQkFBQztRQUVqRixPQUFPLElBQUloQyw4Q0FBRUEsQ0FBQ3lCLFFBQVFWLHlEQUFjQSxHQUFHO1lBQ3JDSSxTQUFTTSxNQUFNLENBQUNYLDJEQUFjQSxDQUFDLENBQUNtQixjQUFjO1FBQ2hELE9BQU8sSUFB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QUNoQywyREFBWUE7Q0FBQztBQUM1QyxTQUFTeUMsa0JBQWtCd0IsSUFBSSxFQUFFQyxLQUFLO0lBQ3BDLE9BQU8sQ0FBQ3FDLFlBQVluQyxhQUFhLEdBQUdvQztRQUNsQyxNQUFNM0QsZUFBZTtZQUFDdUI7ZUFBZ0JvQztTQUFZLENBQUMzRSxHQUFHLENBQUMsQ0FBQzRFLFNBQVk7Z0JBQ2xFeEM7Z0JBQ0FDO2dCQUNBRSxhQUFhcUM7WUFDZjtRQUNBLEtBQUssTUFBTUMsZUFBZTdELGFBQWM7WUFDdEMsSUFBSSxDQUFDbkMsdURBQVlBLENBQUM2RixXQUFXakMsaUJBQWlCLElBQUlvQyxZQUFZdEMsV0FBVyxDQUFDRSxpQkFBaUIsS0FBSztnQkFDOUYsTUFBTSxJQUFJZCxNQUNSO1lBRUo7UUFDRjtRQUNBLE9BQU8rQyxXQUFXaEMsZUFBZSxDQUFDMUI7SUFDcEM7QUFDRjtBQUNBLE1BQU13Qix3QkFBd0IsSUFBTztRQUNuQzdCO1FBQ0FFO1FBQ0FDO1FBQ0FDO0lBQ0Y7QUFDQSxNQUFNSixRQUFRQyxrQkFBa0IsU0FBUztBQUN6QyxNQUFNQyxXQUFXRCxrQkFBa0IsU0FBUztBQUM1QyxNQUFNRSxZQUFZRixrQkFBa0IsYUFBYTtBQUNqRCxNQUFNRyxTQUFTSCxrQkFBa0IsVUFBVTtBQVN6QyxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3NlbGVjdC5qcz84OWM5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQsIGlzIH0gZnJvbSBcIi4uLy4uL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgVHlwZWRRdWVyeUJ1aWxkZXIgfSBmcm9tIFwiLi4vLi4vcXVlcnktYnVpbGRlcnMvcXVlcnktYnVpbGRlci5qc1wiO1xuaW1wb3J0IHsgUXVlcnlQcm9taXNlIH0gZnJvbSBcIi4uLy4uL3F1ZXJ5LXByb21pc2UuanNcIjtcbmltcG9ydCB7IFNlbGVjdGlvblByb3h5SGFuZGxlciB9IGZyb20gXCIuLi8uLi9zZWxlY3Rpb24tcHJveHkuanNcIjtcbmltcG9ydCB7IFNRTCwgVmlldyB9IGZyb20gXCIuLi8uLi9zcWwvc3FsLmpzXCI7XG5pbXBvcnQgeyBTdWJxdWVyeSwgU3VicXVlcnlDb25maWcgfSBmcm9tIFwiLi4vLi4vc3VicXVlcnkuanNcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcIi4uLy4uL3RhYmxlLmpzXCI7XG5pbXBvcnQge1xuICBhcHBseU1peGlucyxcbiAgZ2V0VGFibGVDb2x1bW5zLFxuICBnZXRUYWJsZUxpa2VOYW1lLFxuICBoYXZlU2FtZUtleXMsXG4gIG9yZGVyU2VsZWN0ZWRGaWVsZHNcbn0gZnJvbSBcIi4uLy4uL3V0aWxzLmpzXCI7XG5pbXBvcnQgeyBWaWV3QmFzZUNvbmZpZyB9IGZyb20gXCIuLi8uLi92aWV3LWNvbW1vbi5qc1wiO1xuaW1wb3J0IHsgU1FMaXRlVmlld0Jhc2UgfSBmcm9tIFwiLi4vdmlldy1iYXNlLmpzXCI7XG5jbGFzcyBTUUxpdGVTZWxlY3RCdWlsZGVyIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlU2VsZWN0QnVpbGRlclwiO1xuICBmaWVsZHM7XG4gIHNlc3Npb247XG4gIGRpYWxlY3Q7XG4gIHdpdGhMaXN0O1xuICBkaXN0aW5jdDtcbiAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgdGhpcy5maWVsZHMgPSBjb25maWcuZmllbGRzO1xuICAgIHRoaXMuc2Vzc2lvbiA9IGNvbmZpZy5zZXNzaW9uO1xuICAgIHRoaXMuZGlhbGVjdCA9IGNvbmZpZy5kaWFsZWN0O1xuICAgIHRoaXMud2l0aExpc3QgPSBjb25maWcud2l0aExpc3Q7XG4gICAgdGhpcy5kaXN0aW5jdCA9IGNvbmZpZy5kaXN0aW5jdDtcbiAgfVxuICBmcm9tKHNvdXJjZSkge1xuICAgIGNvbnN0IGlzUGFydGlhbFNlbGVjdCA9ICEhdGhpcy5maWVsZHM7XG4gICAgbGV0IGZpZWxkcztcbiAgICBpZiAodGhpcy5maWVsZHMpIHtcbiAgICAgIGZpZWxkcyA9IHRoaXMuZmllbGRzO1xuICAgIH0gZWxzZSBpZiAoaXMoc291cmNlLCBTdWJxdWVyeSkpIHtcbiAgICAgIGZpZWxkcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmtleXMoc291cmNlW1N1YnF1ZXJ5Q29uZmlnXS5zZWxlY3Rpb24pLm1hcCgoa2V5KSA9PiBba2V5LCBzb3VyY2Vba2V5XV0pXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaXMoc291cmNlLCBTUUxpdGVWaWV3QmFzZSkpIHtcbiAgICAgIGZpZWxkcyA9IHNvdXJjZVtWaWV3QmFzZUNvbmZpZ10uc2VsZWN0ZWRGaWVsZHM7XG4gICAgfSBlbHNlIGlmIChpcyhzb3VyY2UsIFNRTCkpIHtcbiAgICAgIGZpZWxkcyA9IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWVsZHMgPSBnZXRUYWJsZUNvbHVtbnMoc291cmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBTUUxpdGVTZWxlY3RCYXNlKHtcbiAgICAgIHRhYmxlOiBzb3VyY2UsXG4gICAgICBmaWVsZHMsXG4gICAgICBpc1BhcnRpYWxTZWxlY3QsXG4gICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgICBkaWFsZWN0OiB0aGlzLmRpYWxlY3QsXG4gICAgICB3aXRoTGlzdDogdGhpcy53aXRoTGlzdCxcbiAgICAgIGRpc3RpbmN0OiB0aGlzLmRpc3RpbmN0XG4gICAgfSk7XG4gIH1cbn1cbmNsYXNzIFNRTGl0ZVNlbGVjdFF1ZXJ5QnVpbGRlckJhc2UgZXh0ZW5kcyBUeXBlZFF1ZXJ5QnVpbGRlciB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVNlbGVjdFF1ZXJ5QnVpbGRlclwiO1xuICBfO1xuICAvKiogQGludGVybmFsICovXG4gIGNvbmZpZztcbiAgam9pbnNOb3ROdWxsYWJsZU1hcDtcbiAgdGFibGVOYW1lO1xuICBpc1BhcnRpYWxTZWxlY3Q7XG4gIHNlc3Npb247XG4gIGRpYWxlY3Q7XG4gIGNvbnN0cnVjdG9yKHsgdGFibGUsIGZpZWxkcywgaXNQYXJ0aWFsU2VsZWN0LCBzZXNzaW9uLCBkaWFsZWN0LCB3aXRoTGlzdCwgZGlzdGluY3QgfSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICB3aXRoTGlzdCxcbiAgICAgIHRhYmxlLFxuICAgICAgZmllbGRzOiB7IC4uLmZpZWxkcyB9LFxuICAgICAgZGlzdGluY3QsXG4gICAgICBzZXRPcGVyYXRvcnM6IFtdXG4gICAgfTtcbiAgICB0aGlzLmlzUGFydGlhbFNlbGVjdCA9IGlzUGFydGlhbFNlbGVjdDtcbiAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uO1xuICAgIHRoaXMuZGlhbGVjdCA9IGRpYWxlY3Q7XG4gICAgdGhpcy5fID0ge1xuICAgICAgc2VsZWN0ZWRGaWVsZHM6IGZpZWxkc1xuICAgIH07XG4gICAgdGhpcy50YWJsZU5hbWUgPSBnZXRUYWJsZUxpa2VOYW1lKHRhYmxlKTtcbiAgICB0aGlzLmpvaW5zTm90TnVsbGFibGVNYXAgPSB0eXBlb2YgdGhpcy50YWJsZU5hbWUgPT09IFwic3RyaW5nXCIgPyB7IFt0aGlzLnRhYmxlTmFtZV06IHRydWUgfSA6IHt9O1xuICB9XG4gIGNyZWF0ZUpvaW4oam9pblR5cGUpIHtcbiAgICByZXR1cm4gKHRhYmxlLCBvbikgPT4ge1xuICAgICAgY29uc3QgYmFzZVRhYmxlTmFtZSA9IHRoaXMudGFibGVOYW1lO1xuICAgICAgY29uc3QgdGFibGVOYW1lID0gZ2V0VGFibGVMaWtlTmFtZSh0YWJsZSk7XG4gICAgICBpZiAodHlwZW9mIHRhYmxlTmFtZSA9PT0gXCJzdHJpbmdcIiAmJiB0aGlzLmNvbmZpZy5qb2lucz8uc29tZSgoam9pbikgPT4gam9pbi5hbGlhcyA9PT0gdGFibGVOYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFsaWFzIFwiJHt0YWJsZU5hbWV9XCIgaXMgYWxyZWFkeSB1c2VkIGluIHRoaXMgcXVlcnlgKTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc1BhcnRpYWxTZWxlY3QpIHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuam9pbnNOb3ROdWxsYWJsZU1hcCkubGVuZ3RoID09PSAxICYmIHR5cGVvZiBiYXNlVGFibGVOYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgdGhpcy5jb25maWcuZmllbGRzID0ge1xuICAgICAgICAgICAgW2Jhc2VUYWJsZU5hbWVdOiB0aGlzLmNvbmZpZy5maWVsZHNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGFibGVOYW1lID09PSBcInN0cmluZ1wiICYmICFpcyh0YWJsZSwgU1FMKSkge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGlzKHRhYmxlLCBTdWJxdWVyeSkgPyB0YWJsZVtTdWJxdWVyeUNvbmZpZ10uc2VsZWN0aW9uIDogaXModGFibGUsIFZpZXcpID8gdGFibGVbVmlld0Jhc2VDb25maWddLnNlbGVjdGVkRmllbGRzIDogdGFibGVbVGFibGUuU3ltYm9sLkNvbHVtbnNdO1xuICAgICAgICAgIHRoaXMuY29uZmlnLmZpZWxkc1t0YWJsZU5hbWVdID0gc2VsZWN0aW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgb24gPSBvbihcbiAgICAgICAgICBuZXcgUHJveHkoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5maWVsZHMsXG4gICAgICAgICAgICBuZXcgU2VsZWN0aW9uUHJveHlIYW5kbGVyKHsgc3FsQWxpYXNlZEJlaGF2aW9yOiBcInNxbFwiLCBzcWxCZWhhdmlvcjogXCJzcWxcIiB9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5jb25maWcuam9pbnMpIHtcbiAgICAgICAgdGhpcy5jb25maWcuam9pbnMgPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZmlnLmpvaW5zLnB1c2goeyBvbiwgdGFibGUsIGpvaW5UeXBlLCBhbGlhczogdGFibGVOYW1lIH0pO1xuICAgICAgaWYgKHR5cGVvZiB0YWJsZU5hbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgc3dpdGNoIChqb2luVHlwZSkge1xuICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6IHtcbiAgICAgICAgICAgIHRoaXMuam9pbnNOb3ROdWxsYWJsZU1hcFt0YWJsZU5hbWVdID0gZmFsc2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcInJpZ2h0XCI6IHtcbiAgICAgICAgICAgIHRoaXMuam9pbnNOb3ROdWxsYWJsZU1hcCA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5qb2luc05vdE51bGxhYmxlTWFwKS5tYXAoKFtrZXldKSA9PiBba2V5LCBmYWxzZV0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5qb2luc05vdE51bGxhYmxlTWFwW3RhYmxlTmFtZV0gPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJpbm5lclwiOiB7XG4gICAgICAgICAgICB0aGlzLmpvaW5zTm90TnVsbGFibGVNYXBbdGFibGVOYW1lXSA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcImZ1bGxcIjoge1xuICAgICAgICAgICAgdGhpcy5qb2luc05vdE51bGxhYmxlTWFwID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLmpvaW5zTm90TnVsbGFibGVNYXApLm1hcCgoW2tleV0pID0+IFtrZXksIGZhbHNlXSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmpvaW5zTm90TnVsbGFibGVNYXBbdGFibGVOYW1lXSA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIGBsZWZ0IGpvaW5gIG9wZXJhdGlvbiBieSBhZGRpbmcgYW5vdGhlciB0YWJsZSB0byB0aGUgY3VycmVudCBxdWVyeS5cbiAgICpcbiAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCBhc3NvY2lhdGVzIGVhY2ggcm93IG9mIHRoZSB0YWJsZSB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHJvdyBmcm9tIHRoZSBqb2luZWQgdGFibGUsIGlmIGEgbWF0Y2ggaXMgZm91bmQuIElmIG5vIG1hdGNoaW5nIHJvdyBleGlzdHMsIGl0IHNldHMgYWxsIGNvbHVtbnMgb2YgdGhlIGpvaW5lZCB0YWJsZSB0byBudWxsLlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL2pvaW5zI2xlZnQtam9pbn1cbiAgICpcbiAgICogQHBhcmFtIHRhYmxlIHRoZSB0YWJsZSB0byBqb2luLlxuICAgKiBAcGFyYW0gb24gdGhlIGBvbmAgY2xhdXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBTZWxlY3QgYWxsIHVzZXJzIGFuZCB0aGVpciBwZXRzXG4gICAqIGNvbnN0IHVzZXJzV2l0aFBldHM6IHsgdXNlcjogVXNlcjsgcGV0czogUGV0IHwgbnVsbCB9W10gPSBhd2FpdCBkYi5zZWxlY3QoKVxuICAgKiAgIC5mcm9tKHVzZXJzKVxuICAgKiAgIC5sZWZ0Sm9pbihwZXRzLCBlcSh1c2Vycy5pZCwgcGV0cy5vd25lcklkKSlcbiAgICpcbiAgICogLy8gU2VsZWN0IHVzZXJJZCBhbmQgcGV0SWRcbiAgICogY29uc3QgdXNlcnNJZHNBbmRQZXRJZHM6IHsgdXNlcklkOiBudW1iZXI7IHBldElkOiBudW1iZXIgfCBudWxsIH1bXSA9IGF3YWl0IGRiLnNlbGVjdCh7XG4gICAqICAgdXNlcklkOiB1c2Vycy5pZCxcbiAgICogICBwZXRJZDogcGV0cy5pZCxcbiAgICogfSlcbiAgICogICAuZnJvbSh1c2VycylcbiAgICogICAubGVmdEpvaW4ocGV0cywgZXEodXNlcnMuaWQsIHBldHMub3duZXJJZCkpXG4gICAqIGBgYFxuICAgKi9cbiAgbGVmdEpvaW4gPSB0aGlzLmNyZWF0ZUpvaW4oXCJsZWZ0XCIpO1xuICAvKipcbiAgICogRXhlY3V0ZXMgYSBgcmlnaHQgam9pbmAgb3BlcmF0aW9uIGJ5IGFkZGluZyBhbm90aGVyIHRhYmxlIHRvIHRoZSBjdXJyZW50IHF1ZXJ5LlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIGFzc29jaWF0ZXMgZWFjaCByb3cgb2YgdGhlIGpvaW5lZCB0YWJsZSB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHJvdyBmcm9tIHRoZSBtYWluIHRhYmxlLCBpZiBhIG1hdGNoIGlzIGZvdW5kLiBJZiBubyBtYXRjaGluZyByb3cgZXhpc3RzLCBpdCBzZXRzIGFsbCBjb2x1bW5zIG9mIHRoZSBtYWluIHRhYmxlIHRvIG51bGwuXG4gICAqXG4gICAqIFNlZSBkb2NzOiB7QGxpbmsgaHR0cHM6Ly9vcm0uZHJpenpsZS50ZWFtL2RvY3Mvam9pbnMjcmlnaHQtam9pbn1cbiAgICpcbiAgICogQHBhcmFtIHRhYmxlIHRoZSB0YWJsZSB0byBqb2luLlxuICAgKiBAcGFyYW0gb24gdGhlIGBvbmAgY2xhdXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBTZWxlY3QgYWxsIHVzZXJzIGFuZCB0aGVpciBwZXRzXG4gICAqIGNvbnN0IHVzZXJzV2l0aFBldHM6IHsgdXNlcjogVXNlciB8IG51bGw7IHBldHM6IFBldCB9W10gPSBhd2FpdCBkYi5zZWxlY3QoKVxuICAgKiAgIC5mcm9tKHVzZXJzKVxuICAgKiAgIC5yaWdodEpvaW4ocGV0cywgZXEodXNlcnMuaWQsIHBldHMub3duZXJJZCkpXG4gICAqXG4gICAqIC8vIFNlbGVjdCB1c2VySWQgYW5kIHBldElkXG4gICAqIGNvbnN0IHVzZXJzSWRzQW5kUGV0SWRzOiB7IHVzZXJJZDogbnVtYmVyIHwgbnVsbDsgcGV0SWQ6IG51bWJlciB9W10gPSBhd2FpdCBkYi5zZWxlY3Qoe1xuICAgKiAgIHVzZXJJZDogdXNlcnMuaWQsXG4gICAqICAgcGV0SWQ6IHBldHMuaWQsXG4gICAqIH0pXG4gICAqICAgLmZyb20odXNlcnMpXG4gICAqICAgLnJpZ2h0Sm9pbihwZXRzLCBlcSh1c2Vycy5pZCwgcGV0cy5vd25lcklkKSlcbiAgICogYGBgXG4gICAqL1xuICByaWdodEpvaW4gPSB0aGlzLmNyZWF0ZUpvaW4oXCJyaWdodFwiKTtcbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGFuIGBpbm5lciBqb2luYCBvcGVyYXRpb24sIGNyZWF0aW5nIGEgbmV3IHRhYmxlIGJ5IGNvbWJpbmluZyByb3dzIGZyb20gdHdvIHRhYmxlcyB0aGF0IGhhdmUgbWF0Y2hpbmcgdmFsdWVzLlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIHJldHJpZXZlcyByb3dzIHRoYXQgaGF2ZSBjb3JyZXNwb25kaW5nIGVudHJpZXMgaW4gYm90aCBqb2luZWQgdGFibGVzLiBSb3dzIHdpdGhvdXQgbWF0Y2hpbmcgZW50cmllcyBpbiBlaXRoZXIgdGFibGUgYXJlIGV4Y2x1ZGVkLCByZXN1bHRpbmcgaW4gYSB0YWJsZSB0aGF0IGluY2x1ZGVzIG9ubHkgbWF0Y2hpbmcgcGFpcnMuXG4gICAqXG4gICAqIFNlZSBkb2NzOiB7QGxpbmsgaHR0cHM6Ly9vcm0uZHJpenpsZS50ZWFtL2RvY3Mvam9pbnMjaW5uZXItam9pbn1cbiAgICpcbiAgICogQHBhcmFtIHRhYmxlIHRoZSB0YWJsZSB0byBqb2luLlxuICAgKiBAcGFyYW0gb24gdGhlIGBvbmAgY2xhdXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBTZWxlY3QgYWxsIHVzZXJzIGFuZCB0aGVpciBwZXRzXG4gICAqIGNvbnN0IHVzZXJzV2l0aFBldHM6IHsgdXNlcjogVXNlcjsgcGV0czogUGV0IH1bXSA9IGF3YWl0IGRiLnNlbGVjdCgpXG4gICAqICAgLmZyb20odXNlcnMpXG4gICAqICAgLmlubmVySm9pbihwZXRzLCBlcSh1c2Vycy5pZCwgcGV0cy5vd25lcklkKSlcbiAgICpcbiAgICogLy8gU2VsZWN0IHVzZXJJZCBhbmQgcGV0SWRcbiAgICogY29uc3QgdXNlcnNJZHNBbmRQZXRJZHM6IHsgdXNlcklkOiBudW1iZXI7IHBldElkOiBudW1iZXIgfVtdID0gYXdhaXQgZGIuc2VsZWN0KHtcbiAgICogICB1c2VySWQ6IHVzZXJzLmlkLFxuICAgKiAgIHBldElkOiBwZXRzLmlkLFxuICAgKiB9KVxuICAgKiAgIC5mcm9tKHVzZXJzKVxuICAgKiAgIC5pbm5lckpvaW4ocGV0cywgZXEodXNlcnMuaWQsIHBldHMub3duZXJJZCkpXG4gICAqIGBgYFxuICAgKi9cbiAgaW5uZXJKb2luID0gdGhpcy5jcmVhdGVKb2luKFwiaW5uZXJcIik7XG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIGBmdWxsIGpvaW5gIG9wZXJhdGlvbiBieSBjb21iaW5pbmcgcm93cyBmcm9tIHR3byB0YWJsZXMgaW50byBhIG5ldyB0YWJsZS5cbiAgICpcbiAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCByZXRyaWV2ZXMgYWxsIHJvd3MgZnJvbSBib3RoIG1haW4gYW5kIGpvaW5lZCB0YWJsZXMsIG1lcmdpbmcgcm93cyB3aXRoIG1hdGNoaW5nIHZhbHVlcyBhbmQgZmlsbGluZyBpbiBgbnVsbGAgZm9yIG5vbi1tYXRjaGluZyBjb2x1bW5zLlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL2pvaW5zI2Z1bGwtam9pbn1cbiAgICpcbiAgICogQHBhcmFtIHRhYmxlIHRoZSB0YWJsZSB0byBqb2luLlxuICAgKiBAcGFyYW0gb24gdGhlIGBvbmAgY2xhdXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBTZWxlY3QgYWxsIHVzZXJzIGFuZCB0aGVpciBwZXRzXG4gICAqIGNvbnN0IHVzZXJzV2l0aFBldHM6IHsgdXNlcjogVXNlciB8IG51bGw7IHBldHM6IFBldCB8IG51bGwgfVtdID0gYXdhaXQgZGIuc2VsZWN0KClcbiAgICogICAuZnJvbSh1c2VycylcbiAgICogICAuZnVsbEpvaW4ocGV0cywgZXEodXNlcnMuaWQsIHBldHMub3duZXJJZCkpXG4gICAqXG4gICAqIC8vIFNlbGVjdCB1c2VySWQgYW5kIHBldElkXG4gICAqIGNvbnN0IHVzZXJzSWRzQW5kUGV0SWRzOiB7IHVzZXJJZDogbnVtYmVyIHwgbnVsbDsgcGV0SWQ6IG51bWJlciB8IG51bGwgfVtdID0gYXdhaXQgZGIuc2VsZWN0KHtcbiAgICogICB1c2VySWQ6IHVzZXJzLmlkLFxuICAgKiAgIHBldElkOiBwZXRzLmlkLFxuICAgKiB9KVxuICAgKiAgIC5mcm9tKHVzZXJzKVxuICAgKiAgIC5mdWxsSm9pbihwZXRzLCBlcSh1c2Vycy5pZCwgcGV0cy5vd25lcklkKSlcbiAgICogYGBgXG4gICAqL1xuICBmdWxsSm9pbiA9IHRoaXMuY3JlYXRlSm9pbihcImZ1bGxcIik7XG4gIGNyZWF0ZVNldE9wZXJhdG9yKHR5cGUsIGlzQWxsKSB7XG4gICAgcmV0dXJuIChyaWdodFNlbGVjdGlvbikgPT4ge1xuICAgICAgY29uc3QgcmlnaHRTZWxlY3QgPSB0eXBlb2YgcmlnaHRTZWxlY3Rpb24gPT09IFwiZnVuY3Rpb25cIiA/IHJpZ2h0U2VsZWN0aW9uKGdldFNRTGl0ZVNldE9wZXJhdG9ycygpKSA6IHJpZ2h0U2VsZWN0aW9uO1xuICAgICAgaWYgKCFoYXZlU2FtZUtleXModGhpcy5nZXRTZWxlY3RlZEZpZWxkcygpLCByaWdodFNlbGVjdC5nZXRTZWxlY3RlZEZpZWxkcygpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJTZXQgb3BlcmF0b3IgZXJyb3IgKHVuaW9uIC8gaW50ZXJzZWN0IC8gZXhjZXB0KTogc2VsZWN0ZWQgZmllbGRzIGFyZSBub3QgdGhlIHNhbWUgb3IgYXJlIGluIGEgZGlmZmVyZW50IG9yZGVyXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZmlnLnNldE9wZXJhdG9ycy5wdXNoKHsgdHlwZSwgaXNBbGwsIHJpZ2h0U2VsZWN0IH0pO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogQWRkcyBgdW5pb25gIHNldCBvcGVyYXRvciB0byB0aGUgcXVlcnkuXG4gICAqXG4gICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBjb21iaW5lIHRoZSByZXN1bHQgc2V0cyBvZiB0aGUgYHNlbGVjdGAgc3RhdGVtZW50cyBhbmQgcmVtb3ZlIGFueSBkdXBsaWNhdGUgcm93cyB0aGF0IGFwcGVhciBhY3Jvc3MgdGhlbS5cbiAgICpcbiAgICogU2VlIGRvY3M6IHtAbGluayBodHRwczovL29ybS5kcml6emxlLnRlYW0vZG9jcy9zZXQtb3BlcmF0aW9ucyN1bmlvbn1cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICpcbiAgICogYGBgdHNcbiAgICogLy8gU2VsZWN0IGFsbCB1bmlxdWUgbmFtZXMgZnJvbSBjdXN0b21lcnMgYW5kIHVzZXJzIHRhYmxlc1xuICAgKiBhd2FpdCBkYi5zZWxlY3QoeyBuYW1lOiB1c2Vycy5uYW1lIH0pXG4gICAqICAgLmZyb20odXNlcnMpXG4gICAqICAgLnVuaW9uKFxuICAgKiAgICAgZGIuc2VsZWN0KHsgbmFtZTogY3VzdG9tZXJzLm5hbWUgfSkuZnJvbShjdXN0b21lcnMpXG4gICAqICAgKTtcbiAgICogLy8gb3JcbiAgICogaW1wb3J0IHsgdW5pb24gfSBmcm9tICdkcml6emxlLW9ybS9zcWxpdGUtY29yZSdcbiAgICpcbiAgICogYXdhaXQgdW5pb24oXG4gICAqICAgZGIuc2VsZWN0KHsgbmFtZTogdXNlcnMubmFtZSB9KS5mcm9tKHVzZXJzKSxcbiAgICogICBkYi5zZWxlY3QoeyBuYW1lOiBjdXN0b21lcnMubmFtZSB9KS5mcm9tKGN1c3RvbWVycylcbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICB1bmlvbiA9IHRoaXMuY3JlYXRlU2V0T3BlcmF0b3IoXCJ1bmlvblwiLCBmYWxzZSk7XG4gIC8qKlxuICAgKiBBZGRzIGB1bmlvbiBhbGxgIHNldCBvcGVyYXRvciB0byB0aGUgcXVlcnkuXG4gICAqXG4gICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBjb21iaW5lIHRoZSByZXN1bHQtc2V0IG9mIHRoZSBgc2VsZWN0YCBzdGF0ZW1lbnRzIGFuZCBrZWVwIGFsbCBkdXBsaWNhdGUgcm93cyB0aGF0IGFwcGVhciBhY3Jvc3MgdGhlbS5cbiAgICpcbiAgICogU2VlIGRvY3M6IHtAbGluayBodHRwczovL29ybS5kcml6emxlLnRlYW0vZG9jcy9zZXQtb3BlcmF0aW9ucyN1bmlvbi1hbGx9XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIFNlbGVjdCBhbGwgdHJhbnNhY3Rpb24gaWRzIGZyb20gYm90aCBvbmxpbmUgYW5kIGluLXN0b3JlIHNhbGVzXG4gICAqIGF3YWl0IGRiLnNlbGVjdCh7IHRyYW5zYWN0aW9uOiBvbmxpbmVTYWxlcy50cmFuc2FjdGlvbklkIH0pXG4gICAqICAgLmZyb20ob25saW5lU2FsZXMpXG4gICAqICAgLnVuaW9uQWxsKFxuICAgKiAgICAgZGIuc2VsZWN0KHsgdHJhbnNhY3Rpb246IGluU3RvcmVTYWxlcy50cmFuc2FjdGlvbklkIH0pLmZyb20oaW5TdG9yZVNhbGVzKVxuICAgKiAgICk7XG4gICAqIC8vIG9yXG4gICAqIGltcG9ydCB7IHVuaW9uQWxsIH0gZnJvbSAnZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUnXG4gICAqXG4gICAqIGF3YWl0IHVuaW9uQWxsKFxuICAgKiAgIGRiLnNlbGVjdCh7IHRyYW5zYWN0aW9uOiBvbmxpbmVTYWxlcy50cmFuc2FjdGlvbklkIH0pLmZyb20ob25saW5lU2FsZXMpLFxuICAgKiAgIGRiLnNlbGVjdCh7IHRyYW5zYWN0aW9uOiBpblN0b3JlU2FsZXMudHJhbnNhY3Rpb25JZCB9KS5mcm9tKGluU3RvcmVTYWxlcylcbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICB1bmlvbkFsbCA9IHRoaXMuY3JlYXRlU2V0T3BlcmF0b3IoXCJ1bmlvblwiLCB0cnVlKTtcbiAgLyoqXG4gICAqIEFkZHMgYGludGVyc2VjdGAgc2V0IG9wZXJhdG9yIHRvIHRoZSBxdWVyeS5cbiAgICpcbiAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCB3aWxsIHJldGFpbiBvbmx5IHRoZSByb3dzIHRoYXQgYXJlIHByZXNlbnQgaW4gYm90aCByZXN1bHQgc2V0cyBhbmQgZWxpbWluYXRlIGR1cGxpY2F0ZXMuXG4gICAqXG4gICAqIFNlZSBkb2NzOiB7QGxpbmsgaHR0cHM6Ly9vcm0uZHJpenpsZS50ZWFtL2RvY3Mvc2V0LW9wZXJhdGlvbnMjaW50ZXJzZWN0fVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBTZWxlY3QgY291cnNlIG5hbWVzIHRoYXQgYXJlIG9mZmVyZWQgaW4gYm90aCBkZXBhcnRtZW50cyBBIGFuZCBCXG4gICAqIGF3YWl0IGRiLnNlbGVjdCh7IGNvdXJzZU5hbWU6IGRlcEEuY291cnNlTmFtZSB9KVxuICAgKiAgIC5mcm9tKGRlcEEpXG4gICAqICAgLmludGVyc2VjdChcbiAgICogICAgIGRiLnNlbGVjdCh7IGNvdXJzZU5hbWU6IGRlcEIuY291cnNlTmFtZSB9KS5mcm9tKGRlcEIpXG4gICAqICAgKTtcbiAgICogLy8gb3JcbiAgICogaW1wb3J0IHsgaW50ZXJzZWN0IH0gZnJvbSAnZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUnXG4gICAqXG4gICAqIGF3YWl0IGludGVyc2VjdChcbiAgICogICBkYi5zZWxlY3QoeyBjb3Vyc2VOYW1lOiBkZXBBLmNvdXJzZU5hbWUgfSkuZnJvbShkZXBBKSxcbiAgICogICBkYi5zZWxlY3QoeyBjb3Vyc2VOYW1lOiBkZXBCLmNvdXJzZU5hbWUgfSkuZnJvbShkZXBCKVxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIGludGVyc2VjdCA9IHRoaXMuY3JlYXRlU2V0T3BlcmF0b3IoXCJpbnRlcnNlY3RcIiwgZmFsc2UpO1xuICAvKipcbiAgICogQWRkcyBgZXhjZXB0YCBzZXQgb3BlcmF0b3IgdG8gdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgcmV0cmlldmUgYWxsIHVuaXF1ZSByb3dzIGZyb20gdGhlIGxlZnQgcXVlcnksIGV4Y2VwdCBmb3IgdGhlIHJvd3MgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgcmVzdWx0IHNldCBvZiB0aGUgcmlnaHQgcXVlcnkuXG4gICAqXG4gICAqIFNlZSBkb2NzOiB7QGxpbmsgaHR0cHM6Ly9vcm0uZHJpenpsZS50ZWFtL2RvY3Mvc2V0LW9wZXJhdGlvbnMjZXhjZXB0fVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBTZWxlY3QgYWxsIGNvdXJzZXMgb2ZmZXJlZCBpbiBkZXBhcnRtZW50IEEgYnV0IG5vdCBpbiBkZXBhcnRtZW50IEJcbiAgICogYXdhaXQgZGIuc2VsZWN0KHsgY291cnNlTmFtZTogZGVwQS5jb3Vyc2VOYW1lIH0pXG4gICAqICAgLmZyb20oZGVwQSlcbiAgICogICAuZXhjZXB0KFxuICAgKiAgICAgZGIuc2VsZWN0KHsgY291cnNlTmFtZTogZGVwQi5jb3Vyc2VOYW1lIH0pLmZyb20oZGVwQilcbiAgICogICApO1xuICAgKiAvLyBvclxuICAgKiBpbXBvcnQgeyBleGNlcHQgfSBmcm9tICdkcml6emxlLW9ybS9zcWxpdGUtY29yZSdcbiAgICpcbiAgICogYXdhaXQgZXhjZXB0KFxuICAgKiAgIGRiLnNlbGVjdCh7IGNvdXJzZU5hbWU6IGRlcEEuY291cnNlTmFtZSB9KS5mcm9tKGRlcEEpLFxuICAgKiAgIGRiLnNlbGVjdCh7IGNvdXJzZU5hbWU6IGRlcEIuY291cnNlTmFtZSB9KS5mcm9tKGRlcEIpXG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgZXhjZXB0ID0gdGhpcy5jcmVhdGVTZXRPcGVyYXRvcihcImV4Y2VwdFwiLCBmYWxzZSk7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgYWRkU2V0T3BlcmF0b3JzKHNldE9wZXJhdG9ycykge1xuICAgIHRoaXMuY29uZmlnLnNldE9wZXJhdG9ycy5wdXNoKC4uLnNldE9wZXJhdG9ycyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEFkZHMgYSBgd2hlcmVgIGNsYXVzZSB0byB0aGUgcXVlcnkuXG4gICAqXG4gICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBzZWxlY3Qgb25seSB0aG9zZSByb3dzIHRoYXQgZnVsZmlsbCBhIHNwZWNpZmllZCBjb25kaXRpb24uXG4gICAqXG4gICAqIFNlZSBkb2NzOiB7QGxpbmsgaHR0cHM6Ly9vcm0uZHJpenpsZS50ZWFtL2RvY3Mvc2VsZWN0I2ZpbHRlcmluZ31cbiAgICpcbiAgICogQHBhcmFtIHdoZXJlIHRoZSBgd2hlcmVgIGNsYXVzZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogWW91IGNhbiB1c2UgY29uZGl0aW9uYWwgb3BlcmF0b3JzIGFuZCBgc3FsIGZ1bmN0aW9uYCB0byBmaWx0ZXIgdGhlIHJvd3MgdG8gYmUgc2VsZWN0ZWQuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIFNlbGVjdCBhbGwgY2FycyB3aXRoIGdyZWVuIGNvbG9yXG4gICAqIGF3YWl0IGRiLnNlbGVjdCgpLmZyb20oY2Fycykud2hlcmUoZXEoY2Fycy5jb2xvciwgJ2dyZWVuJykpO1xuICAgKiAvLyBvclxuICAgKiBhd2FpdCBkYi5zZWxlY3QoKS5mcm9tKGNhcnMpLndoZXJlKHNxbGAke2NhcnMuY29sb3J9ID0gJ2dyZWVuJ2ApXG4gICAqIGBgYFxuICAgKlxuICAgKiBZb3UgY2FuIGxvZ2ljYWxseSBjb21iaW5lIGNvbmRpdGlvbmFsIG9wZXJhdG9ycyB3aXRoIGBhbmQoKWAgYW5kIGBvcigpYCBvcGVyYXRvcnM6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIFNlbGVjdCBhbGwgQk1XIGNhcnMgd2l0aCBhIGdyZWVuIGNvbG9yXG4gICAqIGF3YWl0IGRiLnNlbGVjdCgpLmZyb20oY2Fycykud2hlcmUoYW5kKGVxKGNhcnMuY29sb3IsICdncmVlbicpLCBlcShjYXJzLmJyYW5kLCAnQk1XJykpKTtcbiAgICpcbiAgICogLy8gU2VsZWN0IGFsbCBjYXJzIHdpdGggdGhlIGdyZWVuIG9yIGJsdWUgY29sb3JcbiAgICogYXdhaXQgZGIuc2VsZWN0KCkuZnJvbShjYXJzKS53aGVyZShvcihlcShjYXJzLmNvbG9yLCAnZ3JlZW4nKSwgZXEoY2Fycy5jb2xvciwgJ2JsdWUnKSkpO1xuICAgKiBgYGBcbiAgICovXG4gIHdoZXJlKHdoZXJlKSB7XG4gICAgaWYgKHR5cGVvZiB3aGVyZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB3aGVyZSA9IHdoZXJlKFxuICAgICAgICBuZXcgUHJveHkoXG4gICAgICAgICAgdGhpcy5jb25maWcuZmllbGRzLFxuICAgICAgICAgIG5ldyBTZWxlY3Rpb25Qcm94eUhhbmRsZXIoeyBzcWxBbGlhc2VkQmVoYXZpb3I6IFwic3FsXCIsIHNxbEJlaGF2aW9yOiBcInNxbFwiIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY29uZmlnLndoZXJlID0gd2hlcmU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEFkZHMgYSBgaGF2aW5nYCBjbGF1c2UgdG8gdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgc2VsZWN0IG9ubHkgdGhvc2Ugcm93cyB0aGF0IGZ1bGZpbGwgYSBzcGVjaWZpZWQgY29uZGl0aW9uLiBJdCBpcyB0eXBpY2FsbHkgdXNlZCB3aXRoIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgdG8gZmlsdGVyIHRoZSBhZ2dyZWdhdGVkIGRhdGEgYmFzZWQgb24gYSBzcGVjaWZpZWQgY29uZGl0aW9uLlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL3NlbGVjdCNhZ2dyZWdhdGlvbnN9XG4gICAqXG4gICAqIEBwYXJhbSBoYXZpbmcgdGhlIGBoYXZpbmdgIGNsYXVzZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICpcbiAgICogYGBgdHNcbiAgICogLy8gU2VsZWN0IGFsbCBicmFuZHMgd2l0aCBtb3JlIHRoYW4gb25lIGNhclxuICAgKiBhd2FpdCBkYi5zZWxlY3Qoe1xuICAgKiBcdGJyYW5kOiBjYXJzLmJyYW5kLFxuICAgKiBcdGNvdW50OiBzcWw8bnVtYmVyPmBjYXN0KGNvdW50KCR7Y2Fycy5pZH0pIGFzIGludClgLFxuICAgKiB9KVxuICAgKiAgIC5mcm9tKGNhcnMpXG4gICAqICAgLmdyb3VwQnkoY2Fycy5icmFuZClcbiAgICogICAuaGF2aW5nKCh7IGNvdW50IH0pID0+IGd0KGNvdW50LCAxKSk7XG4gICAqIGBgYFxuICAgKi9cbiAgaGF2aW5nKGhhdmluZykge1xuICAgIGlmICh0eXBlb2YgaGF2aW5nID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGhhdmluZyA9IGhhdmluZyhcbiAgICAgICAgbmV3IFByb3h5KFxuICAgICAgICAgIHRoaXMuY29uZmlnLmZpZWxkcyxcbiAgICAgICAgICBuZXcgU2VsZWN0aW9uUHJveHlIYW5kbGVyKHsgc3FsQWxpYXNlZEJlaGF2aW9yOiBcInNxbFwiLCBzcWxCZWhhdmlvcjogXCJzcWxcIiB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpZy5oYXZpbmcgPSBoYXZpbmc7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZ3JvdXBCeSguLi5jb2x1bW5zKSB7XG4gICAgaWYgKHR5cGVvZiBjb2x1bW5zWzBdID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGNvbnN0IGdyb3VwQnkgPSBjb2x1bW5zWzBdKFxuICAgICAgICBuZXcgUHJveHkoXG4gICAgICAgICAgdGhpcy5jb25maWcuZmllbGRzLFxuICAgICAgICAgIG5ldyBTZWxlY3Rpb25Qcm94eUhhbmRsZXIoeyBzcWxBbGlhc2VkQmVoYXZpb3I6IFwiYWxpYXNcIiwgc3FsQmVoYXZpb3I6IFwic3FsXCIgfSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHRoaXMuY29uZmlnLmdyb3VwQnkgPSBBcnJheS5pc0FycmF5KGdyb3VwQnkpID8gZ3JvdXBCeSA6IFtncm91cEJ5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb25maWcuZ3JvdXBCeSA9IGNvbHVtbnM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG9yZGVyQnkoLi4uY29sdW1ucykge1xuICAgIGlmICh0eXBlb2YgY29sdW1uc1swXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjb25zdCBvcmRlckJ5ID0gY29sdW1uc1swXShcbiAgICAgICAgbmV3IFByb3h5KFxuICAgICAgICAgIHRoaXMuY29uZmlnLmZpZWxkcyxcbiAgICAgICAgICBuZXcgU2VsZWN0aW9uUHJveHlIYW5kbGVyKHsgc3FsQWxpYXNlZEJlaGF2aW9yOiBcImFsaWFzXCIsIHNxbEJlaGF2aW9yOiBcInNxbFwiIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICBjb25zdCBvcmRlckJ5QXJyYXkgPSBBcnJheS5pc0FycmF5KG9yZGVyQnkpID8gb3JkZXJCeSA6IFtvcmRlckJ5XTtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5zZXRPcGVyYXRvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNvbmZpZy5zZXRPcGVyYXRvcnMuYXQoLTEpLm9yZGVyQnkgPSBvcmRlckJ5QXJyYXk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbmZpZy5vcmRlckJ5ID0gb3JkZXJCeUFycmF5O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvcmRlckJ5QXJyYXkgPSBjb2x1bW5zO1xuICAgICAgaWYgKHRoaXMuY29uZmlnLnNldE9wZXJhdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnNldE9wZXJhdG9ycy5hdCgtMSkub3JkZXJCeSA9IG9yZGVyQnlBcnJheTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uZmlnLm9yZGVyQnkgPSBvcmRlckJ5QXJyYXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBBZGRzIGEgYGxpbWl0YCBjbGF1c2UgdG8gdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgc2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiByb3dzIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGlzIHF1ZXJ5LlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL3NlbGVjdCNsaW1pdC0tb2Zmc2V0fVxuICAgKlxuICAgKiBAcGFyYW0gbGltaXQgdGhlIGBsaW1pdGAgY2xhdXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBHZXQgdGhlIGZpcnN0IDEwIHBlb3BsZSBmcm9tIHRoaXMgcXVlcnkuXG4gICAqIGF3YWl0IGRiLnNlbGVjdCgpLmZyb20ocGVvcGxlKS5saW1pdCgxMCk7XG4gICAqIGBgYFxuICAgKi9cbiAgbGltaXQobGltaXQpIHtcbiAgICBpZiAodGhpcy5jb25maWcuc2V0T3BlcmF0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY29uZmlnLnNldE9wZXJhdG9ycy5hdCgtMSkubGltaXQgPSBsaW1pdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb25maWcubGltaXQgPSBsaW1pdDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEFkZHMgYW4gYG9mZnNldGAgY2xhdXNlIHRvIHRoZSBxdWVyeS5cbiAgICpcbiAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCB3aWxsIHNraXAgYSBudW1iZXIgb2Ygcm93cyB3aGVuIHJldHVybmluZyByZXN1bHRzIGZyb20gdGhpcyBxdWVyeS5cbiAgICpcbiAgICogU2VlIGRvY3M6IHtAbGluayBodHRwczovL29ybS5kcml6emxlLnRlYW0vZG9jcy9zZWxlY3QjbGltaXQtLW9mZnNldH1cbiAgICpcbiAgICogQHBhcmFtIG9mZnNldCB0aGUgYG9mZnNldGAgY2xhdXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBHZXQgdGhlIDEwdGgtMjB0aCBwZW9wbGUgZnJvbSB0aGlzIHF1ZXJ5LlxuICAgKiBhd2FpdCBkYi5zZWxlY3QoKS5mcm9tKHBlb3BsZSkub2Zmc2V0KDEwKS5saW1pdCgxMCk7XG4gICAqIGBgYFxuICAgKi9cbiAgb2Zmc2V0KG9mZnNldCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5zZXRPcGVyYXRvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb25maWcuc2V0T3BlcmF0b3JzLmF0KC0xKS5vZmZzZXQgPSBvZmZzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlnLm9mZnNldCA9IG9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRTUUwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbGVjdC5idWlsZFNlbGVjdFF1ZXJ5KHRoaXMuY29uZmlnKTtcbiAgfVxuICB0b1NRTCgpIHtcbiAgICBjb25zdCB7IHR5cGluZ3M6IF90eXBpbmdzLCAuLi5yZXN0IH0gPSB0aGlzLmRpYWxlY3Quc3FsVG9RdWVyeSh0aGlzLmdldFNRTCgpKTtcbiAgICByZXR1cm4gcmVzdDtcbiAgfVxuICBhcyhhbGlhcykge1xuICAgIHJldHVybiBuZXcgUHJveHkoXG4gICAgICBuZXcgU3VicXVlcnkodGhpcy5nZXRTUUwoKSwgdGhpcy5jb25maWcuZmllbGRzLCBhbGlhcyksXG4gICAgICBuZXcgU2VsZWN0aW9uUHJveHlIYW5kbGVyKHsgYWxpYXMsIHNxbEFsaWFzZWRCZWhhdmlvcjogXCJhbGlhc1wiLCBzcWxCZWhhdmlvcjogXCJlcnJvclwiIH0pXG4gICAgKTtcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIGdldFNlbGVjdGVkRmllbGRzKCkge1xuICAgIHJldHVybiBuZXcgUHJveHkoXG4gICAgICB0aGlzLmNvbmZpZy5maWVsZHMsXG4gICAgICBuZXcgU2VsZWN0aW9uUHJveHlIYW5kbGVyKHsgYWxpYXM6IHRoaXMudGFibGVOYW1lLCBzcWxBbGlhc2VkQmVoYXZpb3I6IFwiYWxpYXNcIiwgc3FsQmVoYXZpb3I6IFwiZXJyb3JcIiB9KVxuICAgICk7XG4gIH1cbiAgJGR5bmFtaWMoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbmNsYXNzIFNRTGl0ZVNlbGVjdEJhc2UgZXh0ZW5kcyBTUUxpdGVTZWxlY3RRdWVyeUJ1aWxkZXJCYXNlIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlU2VsZWN0XCI7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX3ByZXBhcmUoaXNPbmVUaW1lUXVlcnkgPSB0cnVlKSB7XG4gICAgaWYgKCF0aGlzLnNlc3Npb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBleGVjdXRlIGEgcXVlcnkgb24gYSBxdWVyeSBidWlsZGVyLiBQbGVhc2UgdXNlIGEgZGF0YWJhc2UgaW5zdGFuY2UgaW5zdGVhZC5cIik7XG4gICAgfVxuICAgIGNvbnN0IGZpZWxkc0xpc3QgPSBvcmRlclNlbGVjdGVkRmllbGRzKHRoaXMuY29uZmlnLmZpZWxkcyk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLnNlc3Npb25baXNPbmVUaW1lUXVlcnkgPyBcInByZXBhcmVPbmVUaW1lUXVlcnlcIiA6IFwicHJlcGFyZVF1ZXJ5XCJdKFxuICAgICAgdGhpcy5kaWFsZWN0LnNxbFRvUXVlcnkodGhpcy5nZXRTUUwoKSksXG4gICAgICBmaWVsZHNMaXN0LFxuICAgICAgXCJhbGxcIlxuICAgICk7XG4gICAgcXVlcnkuam9pbnNOb3ROdWxsYWJsZU1hcCA9IHRoaXMuam9pbnNOb3ROdWxsYWJsZU1hcDtcbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cbiAgcHJlcGFyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZShmYWxzZSk7XG4gIH1cbiAgcnVuID0gKHBsYWNlaG9sZGVyVmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoKS5ydW4ocGxhY2Vob2xkZXJWYWx1ZXMpO1xuICB9O1xuICBhbGwgPSAocGxhY2Vob2xkZXJWYWx1ZXMpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZSgpLmFsbChwbGFjZWhvbGRlclZhbHVlcyk7XG4gIH07XG4gIGdldCA9IChwbGFjZWhvbGRlclZhbHVlcykgPT4ge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlKCkuZ2V0KHBsYWNlaG9sZGVyVmFsdWVzKTtcbiAgfTtcbiAgdmFsdWVzID0gKHBsYWNlaG9sZGVyVmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoKS52YWx1ZXMocGxhY2Vob2xkZXJWYWx1ZXMpO1xuICB9O1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIHJldHVybiB0aGlzLmFsbCgpO1xuICB9XG59XG5hcHBseU1peGlucyhTUUxpdGVTZWxlY3RCYXNlLCBbUXVlcnlQcm9taXNlXSk7XG5mdW5jdGlvbiBjcmVhdGVTZXRPcGVyYXRvcih0eXBlLCBpc0FsbCkge1xuICByZXR1cm4gKGxlZnRTZWxlY3QsIHJpZ2h0U2VsZWN0LCAuLi5yZXN0U2VsZWN0cykgPT4ge1xuICAgIGNvbnN0IHNldE9wZXJhdG9ycyA9IFtyaWdodFNlbGVjdCwgLi4ucmVzdFNlbGVjdHNdLm1hcCgoc2VsZWN0KSA9PiAoe1xuICAgICAgdHlwZSxcbiAgICAgIGlzQWxsLFxuICAgICAgcmlnaHRTZWxlY3Q6IHNlbGVjdFxuICAgIH0pKTtcbiAgICBmb3IgKGNvbnN0IHNldE9wZXJhdG9yIG9mIHNldE9wZXJhdG9ycykge1xuICAgICAgaWYgKCFoYXZlU2FtZUtleXMobGVmdFNlbGVjdC5nZXRTZWxlY3RlZEZpZWxkcygpLCBzZXRPcGVyYXRvci5yaWdodFNlbGVjdC5nZXRTZWxlY3RlZEZpZWxkcygpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJTZXQgb3BlcmF0b3IgZXJyb3IgKHVuaW9uIC8gaW50ZXJzZWN0IC8gZXhjZXB0KTogc2VsZWN0ZWQgZmllbGRzIGFyZSBub3QgdGhlIHNhbWUgb3IgYXJlIGluIGEgZGlmZmVyZW50IG9yZGVyXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxlZnRTZWxlY3QuYWRkU2V0T3BlcmF0b3JzKHNldE9wZXJhdG9ycyk7XG4gIH07XG59XG5jb25zdCBnZXRTUUxpdGVTZXRPcGVyYXRvcnMgPSAoKSA9PiAoe1xuICB1bmlvbixcbiAgdW5pb25BbGwsXG4gIGludGVyc2VjdCxcbiAgZXhjZXB0XG59KTtcbmNvbnN0IHVuaW9uID0gY3JlYXRlU2V0T3BlcmF0b3IoXCJ1bmlvblwiLCBmYWxzZSk7XG5jb25zdCB1bmlvbkFsbCA9IGNyZWF0ZVNldE9wZXJhdG9yKFwidW5pb25cIiwgdHJ1ZSk7XG5jb25zdCBpbnRlcnNlY3QgPSBjcmVhdGVTZXRPcGVyYXRvcihcImludGVyc2VjdFwiLCBmYWxzZSk7XG5jb25zdCBleGNlcHQgPSBjcmVhdGVTZXRPcGVyYXRvcihcImV4Y2VwdFwiLCBmYWxzZSk7XG5leHBvcnQge1xuICBTUUxpdGVTZWxlY3RCYXNlLFxuICBTUUxpdGVTZWxlY3RCdWlsZGVyLFxuICBTUUxpdGVTZWxlY3RRdWVyeUJ1aWxkZXJCYXNlLFxuICBleGNlcHQsXG4gIGludGVyc2VjdCxcbiAgdW5pb24sXG4gIHVuaW9uQWxsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VsZWN0LmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiaXMiLCJUeXBlZFF1ZXJ5QnVpbGRlciIsIlF1ZXJ5UHJvbWlzZSIsIlNlbGVjdGlvblByb3h5SGFuZGxlciIsIlNRTCIsIlZpZXciLCJTdWJxdWVyeSIsIlN1YnF1ZXJ5Q29uZmlnIiwiVGFibGUiLCJhcHBseU1peGlucyIsImdldFRhYmxlQ29sdW1ucyIsImdldFRhYmxlTGlrZU5hbWUiLCJoYXZlU2FtZUtleXMiLCJvcmRlclNlbGVjdGVkRmllbGRzIiwiVmlld0Jhc2VDb25maWciLCJTUUxpdGVWaWV3QmFzZSIsIlNRTGl0ZVNlbGVjdEJ1aWxkZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsImZpZWxkcyIsInNlc3Npb24iLCJkaWFsZWN0Iiwid2l0aExpc3QiLCJkaXN0aW5jdCIsImZyb20iLCJzb3VyY2UiLCJpc1BhcnRpYWxTZWxlY3QiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsImtleXMiLCJzZWxlY3Rpb24iLCJtYXAiLCJrZXkiLCJzZWxlY3RlZEZpZWxkcyIsIlNRTGl0ZVNlbGVjdEJhc2UiLCJ0YWJsZSIsIlNRTGl0ZVNlbGVjdFF1ZXJ5QnVpbGRlckJhc2UiLCJsZWZ0Sm9pbiIsImNyZWF0ZUpvaW4iLCJyaWdodEpvaW4iLCJpbm5lckpvaW4iLCJmdWxsSm9pbiIsInVuaW9uIiwiY3JlYXRlU2V0T3BlcmF0b3IiLCJ1bmlvbkFsbCIsImludGVyc2VjdCIsImV4Y2VwdCIsInNldE9wZXJhdG9ycyIsIl8iLCJ0YWJsZU5hbWUiLCJqb2luc05vdE51bGxhYmxlTWFwIiwiam9pblR5cGUiLCJvbiIsImJhc2VUYWJsZU5hbWUiLCJqb2lucyIsInNvbWUiLCJqb2luIiwiYWxpYXMiLCJFcnJvciIsImxlbmd0aCIsIlN5bWJvbCIsIkNvbHVtbnMiLCJQcm94eSIsInNxbEFsaWFzZWRCZWhhdmlvciIsInNxbEJlaGF2aW9yIiwicHVzaCIsImVudHJpZXMiLCJ0eXBlIiwiaXNBbGwiLCJyaWdodFNlbGVjdGlvbiIsInJpZ2h0U2VsZWN0IiwiZ2V0U1FMaXRlU2V0T3BlcmF0b3JzIiwiZ2V0U2VsZWN0ZWRGaWVsZHMiLCJhZGRTZXRPcGVyYXRvcnMiLCJ3aGVyZSIsImhhdmluZyIsImdyb3VwQnkiLCJjb2x1bW5zIiwiQXJyYXkiLCJpc0FycmF5Iiwib3JkZXJCeSIsIm9yZGVyQnlBcnJheSIsImF0IiwibGltaXQiLCJvZmZzZXQiLCJnZXRTUUwiLCJidWlsZFNlbGVjdFF1ZXJ5IiwidG9TUUwiLCJ0eXBpbmdzIiwiX3R5cGluZ3MiLCJyZXN0Iiwic3FsVG9RdWVyeSIsImFzIiwiJGR5bmFtaWMiLCJfcHJlcGFyZSIsImlzT25lVGltZVF1ZXJ5IiwiZmllbGRzTGlzdCIsInF1ZXJ5IiwicHJlcGFyZSIsImV4ZWN1dGUiLCJhbGwiLCJydW4iLCJwbGFjZWhvbGRlclZhbHVlcyIsImdldCIsInZhbHVlcyIsImxlZnRTZWxlY3QiLCJyZXN0U2VsZWN0cyIsInNlbGVjdCIsInNldE9wZXJhdG9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/select.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/update.js":
-/*!***************************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/query-builders/update.js ***!
- \***************************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteUpdateBase: () => (/* binding */ SQLiteUpdateBase),\n/* harmony export */ SQLiteUpdateBuilder: () => (/* binding */ SQLiteUpdateBuilder)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _query_promise_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../query-promise.js */ \"(rsc)/../../node_modules/drizzle-orm/query-promise.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../table.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils.js */ \"(rsc)/../../node_modules/drizzle-orm/utils.js\");\n\n\n\n\nclass SQLiteUpdateBuilder {\n constructor(table, session, dialect, withList){\n this.table = table;\n this.session = session;\n this.dialect = dialect;\n this.withList = withList;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteUpdateBuilder\";\n }\n set(values) {\n return new SQLiteUpdateBase(this.table, (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.mapUpdateSet)(this.table, values), this.session, this.dialect, this.withList);\n }\n}\nclass SQLiteUpdateBase extends _query_promise_js__WEBPACK_IMPORTED_MODULE_2__.QueryPromise {\n constructor(table, set, session, dialect, withList){\n super();\n this.run = (placeholderValues)=>{\n return this._prepare().run(placeholderValues);\n };\n this.all = (placeholderValues)=>{\n return this._prepare().all(placeholderValues);\n };\n this.get = (placeholderValues)=>{\n return this._prepare().get(placeholderValues);\n };\n this.values = (placeholderValues)=>{\n return this._prepare().values(placeholderValues);\n };\n this.session = session;\n this.dialect = dialect;\n this.config = {\n set,\n table,\n withList\n };\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"SQLiteUpdate\";\n }\n /**\n * Adds a 'where' clause to the query.\n *\n * Calling this method will update only those rows that fulfill a specified condition.\n *\n * See docs: {@link https://orm.drizzle.team/docs/update}\n *\n * @param where the 'where' clause.\n *\n * @example\n * You can use conditional operators and `sql function` to filter the rows to be updated.\n *\n * ```ts\n * // Update all cars with green color\n * db.update(cars).set({ color: 'red' })\n * .where(eq(cars.color, 'green'));\n * // or\n * db.update(cars).set({ color: 'red' })\n * .where(sql`${cars.color} = 'green'`)\n * ```\n *\n * You can logically combine conditional operators with `and()` and `or()` operators:\n *\n * ```ts\n * // Update all BMW cars with a green color\n * db.update(cars).set({ color: 'red' })\n * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n *\n * // Update all cars with the green or blue color\n * db.update(cars).set({ color: 'red' })\n * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n * ```\n */ where(where) {\n this.config.where = where;\n return this;\n }\n returning(fields = this.config.table[_table_js__WEBPACK_IMPORTED_MODULE_3__.SQLiteTable.Symbol.Columns]) {\n this.config.returning = (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.orderSelectedFields)(fields);\n return this;\n }\n /** @internal */ getSQL() {\n return this.dialect.buildUpdateQuery(this.config);\n }\n toSQL() {\n const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n return rest;\n }\n /** @internal */ _prepare(isOneTimeQuery = true) {\n return this.session[isOneTimeQuery ? \"prepareOneTimeQuery\" : \"prepareQuery\"](this.dialect.sqlToQuery(this.getSQL()), this.config.returning, this.config.returning ? \"all\" : \"run\");\n }\n prepare() {\n return this._prepare(false);\n }\n async execute() {\n return this.config.returning ? this.all() : this.run();\n }\n $dynamic() {\n return this;\n }\n}\n //# sourceMappingURL=update.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3VwZGF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBNkM7QUFDUztBQUNaO0FBQ3lCO0FBQ25FLE1BQU1LO0lBQ0pDLFlBQVlDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsQ0FBRTtRQUM3QyxJQUFJLENBQUNILEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7O1lBQ08sQ0FBQ1Ysa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJXLElBQUlDLE1BQU0sRUFBRTtRQUNWLE9BQU8sSUFBSUMsaUJBQ1QsSUFBSSxDQUFDTixLQUFLLEVBQ1ZKLHVEQUFZQSxDQUFDLElBQUksQ0FBQ0ksS0FBSyxFQUFFSyxTQUN6QixJQUFJLENBQUNKLE9BQU8sRUFDWixJQUFJLENBQUNDLE9BQU8sRUFDWixJQUFJLENBQUNDLFFBQVE7SUFFakI7QUFDRjtBQUNBLE1BQU1HLHlCQUF5QlosMkRBQVlBO0lBQ3pDSyxZQUFZQyxLQUFLLEVBQUVJLEdBQUcsRUFBRUgsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsQ0FBRTtRQUNsRCxLQUFLO2FBb0VQSSxNQUFNLENBQUNDO1lBQ0wsT0FBTyxJQUFJLENBQUNDLFFBQVEsR0FBR0YsR0FBRyxDQUFDQztRQUM3QjthQUNBRSxNQUFNLENBQUNGO1lBQ0wsT0FBTyxJQUFJLENBQUNDLFFBQVEsR0FBR0MsR0FBRyxDQUFDRjtRQUM3QjthQUNBRyxNQUFNLENBQUNIO1lBQ0wsT0FBTyxJQUFJLENBQUNDLFFBQVEsR0FBR0UsR0FBRyxDQUFDSDtRQUM3QjthQUNBSCxTQUFTLENBQUNHO1lBQ1IsT0FBTyxJQUFJLENBQUNDLFFBQVEsR0FBR0osTUFBTSxDQUFDRztRQUNoQztRQTlFRSxJQUFJLENBQUNQLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNVLE1BQU0sR0FBRztZQUFFUjtZQUFLSjtZQUFPRztRQUFTO0lBQ3ZDOztZQUNPLENBQUNWLGtEQUFVQSxDQUFDLEdBQUc7O0lBR3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDQyxHQUNEb0IsTUFBTUEsS0FBSyxFQUFFO1FBQ1gsSUFBSSxDQUFDRCxNQUFNLENBQUNDLEtBQUssR0FBR0E7UUFDcEIsT0FBTyxJQUFJO0lBQ2I7SUFDQUMsVUFBVUMsU0FBUyxJQUFJLENBQUNILE1BQU0sQ0FBQ1osS0FBSyxDQUFDTCxrREFBV0EsQ0FBQ3FCLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLEVBQUU7UUFDaEUsSUFBSSxDQUFDTCxNQUFNLENBQUNFLFNBQVMsR0FBR2pCLDhEQUFtQkEsQ0FBQ2tCO1FBQzVDLE9BQU8sSUFBSTtJQUNiO0lBQ0EsY0FBYyxHQUNkRyxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUNoQixPQUFPLENBQUNpQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUNQLE1BQU07SUFDbEQ7SUFDQVEsUUFBUTtRQUNOLE1BQU0sRUFBRUMsU0FBU0MsUUFBUSxFQUFFLEdBQUdDLE1BQU0sR0FBRyxJQUFJLENBQUNyQixPQUFPLENBQUNzQixVQUFVLENBQUMsSUFBSSxDQUFDTixNQUFNO1FBQzFFLE9BQU9LO0lBQ1Q7SUFDQSxjQUFjLEdBQ2RkLFNBQVNnQixpQkFBaUIsSUFBSSxFQUFFO1FBQzlCLE9BQU8sSUFBSSxDQUFDeEIsT0FBTyxDQUFDd0IsaUJBQWlCLHdCQUF3QixlQUFlLENBQzFFLElBQUksQ0FBQ3ZCLE9BQU8sQ0FBQ3NCLFVBQVUsQ0FBQyxJQUFJLENBQUNOLE1BQU0sS0FDbkMsSUFBSSxDQUFDTixNQUFNLENBQUNFLFNBQVMsRUFDckIsSUFBSSxDQUFDRixNQUFNLENBQUNFLFNBQVMsR0FBRyxRQUFRO0lBRXBDO0lBQ0FZLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ2pCLFFBQVEsQ0FBQztJQUN2QjtJQWFBLE1BQU1rQixVQUFVO1FBQ2QsT0FBTyxJQUFJLENBQUNmLE1BQU0sQ0FBQ0UsU0FBUyxHQUFHLElBQUksQ0FBQ0osR0FBRyxLQUFLLElBQUksQ0FBQ0gsR0FBRztJQUN0RDtJQUNBcUIsV0FBVztRQUNULE9BQU8sSUFBSTtJQUNiO0FBQ0Y7QUFJRSxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3F1ZXJ5LWJ1aWxkZXJzL3VwZGF0ZS5qcz84ZjJkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgeyBRdWVyeVByb21pc2UgfSBmcm9tIFwiLi4vLi4vcXVlcnktcHJvbWlzZS5qc1wiO1xuaW1wb3J0IHsgU1FMaXRlVGFibGUgfSBmcm9tIFwiLi4vdGFibGUuanNcIjtcbmltcG9ydCB7IG1hcFVwZGF0ZVNldCwgb3JkZXJTZWxlY3RlZEZpZWxkcyB9IGZyb20gXCIuLi8uLi91dGlscy5qc1wiO1xuY2xhc3MgU1FMaXRlVXBkYXRlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKHRhYmxlLCBzZXNzaW9uLCBkaWFsZWN0LCB3aXRoTGlzdCkge1xuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uO1xuICAgIHRoaXMuZGlhbGVjdCA9IGRpYWxlY3Q7XG4gICAgdGhpcy53aXRoTGlzdCA9IHdpdGhMaXN0O1xuICB9XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVVwZGF0ZUJ1aWxkZXJcIjtcbiAgc2V0KHZhbHVlcykge1xuICAgIHJldHVybiBuZXcgU1FMaXRlVXBkYXRlQmFzZShcbiAgICAgIHRoaXMudGFibGUsXG4gICAgICBtYXBVcGRhdGVTZXQodGhpcy50YWJsZSwgdmFsdWVzKSxcbiAgICAgIHRoaXMuc2Vzc2lvbixcbiAgICAgIHRoaXMuZGlhbGVjdCxcbiAgICAgIHRoaXMud2l0aExpc3RcbiAgICApO1xuICB9XG59XG5jbGFzcyBTUUxpdGVVcGRhdGVCYXNlIGV4dGVuZHMgUXVlcnlQcm9taXNlIHtcbiAgY29uc3RydWN0b3IodGFibGUsIHNldCwgc2Vzc2lvbiwgZGlhbGVjdCwgd2l0aExpc3QpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb247XG4gICAgdGhpcy5kaWFsZWN0ID0gZGlhbGVjdDtcbiAgICB0aGlzLmNvbmZpZyA9IHsgc2V0LCB0YWJsZSwgd2l0aExpc3QgfTtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVVcGRhdGVcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjb25maWc7XG4gIC8qKlxuICAgKiBBZGRzIGEgJ3doZXJlJyBjbGF1c2UgdG8gdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgdXBkYXRlIG9ubHkgdGhvc2Ugcm93cyB0aGF0IGZ1bGZpbGwgYSBzcGVjaWZpZWQgY29uZGl0aW9uLlxuICAgKlxuICAgKiBTZWUgZG9jczoge0BsaW5rIGh0dHBzOi8vb3JtLmRyaXp6bGUudGVhbS9kb2NzL3VwZGF0ZX1cbiAgICpcbiAgICogQHBhcmFtIHdoZXJlIHRoZSAnd2hlcmUnIGNsYXVzZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogWW91IGNhbiB1c2UgY29uZGl0aW9uYWwgb3BlcmF0b3JzIGFuZCBgc3FsIGZ1bmN0aW9uYCB0byBmaWx0ZXIgdGhlIHJvd3MgdG8gYmUgdXBkYXRlZC5cbiAgICpcbiAgICogYGBgdHNcbiAgICogLy8gVXBkYXRlIGFsbCBjYXJzIHdpdGggZ3JlZW4gY29sb3JcbiAgICogZGIudXBkYXRlKGNhcnMpLnNldCh7IGNvbG9yOiAncmVkJyB9KVxuICAgKiAgIC53aGVyZShlcShjYXJzLmNvbG9yLCAnZ3JlZW4nKSk7XG4gICAqIC8vIG9yXG4gICAqIGRiLnVwZGF0ZShjYXJzKS5zZXQoeyBjb2xvcjogJ3JlZCcgfSlcbiAgICogICAud2hlcmUoc3FsYCR7Y2Fycy5jb2xvcn0gPSAnZ3JlZW4nYClcbiAgICogYGBgXG4gICAqXG4gICAqIFlvdSBjYW4gbG9naWNhbGx5IGNvbWJpbmUgY29uZGl0aW9uYWwgb3BlcmF0b3JzIHdpdGggYGFuZCgpYCBhbmQgYG9yKClgIG9wZXJhdG9yczpcbiAgICpcbiAgICogYGBgdHNcbiAgICogLy8gVXBkYXRlIGFsbCBCTVcgY2FycyB3aXRoIGEgZ3JlZW4gY29sb3JcbiAgICogZGIudXBkYXRlKGNhcnMpLnNldCh7IGNvbG9yOiAncmVkJyB9KVxuICAgKiAgIC53aGVyZShhbmQoZXEoY2Fycy5jb2xvciwgJ2dyZWVuJyksIGVxKGNhcnMuYnJhbmQsICdCTVcnKSkpO1xuICAgKlxuICAgKiAvLyBVcGRhdGUgYWxsIGNhcnMgd2l0aCB0aGUgZ3JlZW4gb3IgYmx1ZSBjb2xvclxuICAgKiBkYi51cGRhdGUoY2Fycykuc2V0KHsgY29sb3I6ICdyZWQnIH0pXG4gICAqICAgLndoZXJlKG9yKGVxKGNhcnMuY29sb3IsICdncmVlbicpLCBlcShjYXJzLmNvbG9yLCAnYmx1ZScpKSk7XG4gICAqIGBgYFxuICAgKi9cbiAgd2hlcmUod2hlcmUpIHtcbiAgICB0aGlzLmNvbmZpZy53aGVyZSA9IHdoZXJlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHJldHVybmluZyhmaWVsZHMgPSB0aGlzLmNvbmZpZy50YWJsZVtTUUxpdGVUYWJsZS5TeW1ib2wuQ29sdW1uc10pIHtcbiAgICB0aGlzLmNvbmZpZy5yZXR1cm5pbmcgPSBvcmRlclNlbGVjdGVkRmllbGRzKGZpZWxkcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRTUUwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbGVjdC5idWlsZFVwZGF0ZVF1ZXJ5KHRoaXMuY29uZmlnKTtcbiAgfVxuICB0b1NRTCgpIHtcbiAgICBjb25zdCB7IHR5cGluZ3M6IF90eXBpbmdzLCAuLi5yZXN0IH0gPSB0aGlzLmRpYWxlY3Quc3FsVG9RdWVyeSh0aGlzLmdldFNRTCgpKTtcbiAgICByZXR1cm4gcmVzdDtcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIF9wcmVwYXJlKGlzT25lVGltZVF1ZXJ5ID0gdHJ1ZSkge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb25baXNPbmVUaW1lUXVlcnkgPyBcInByZXBhcmVPbmVUaW1lUXVlcnlcIiA6IFwicHJlcGFyZVF1ZXJ5XCJdKFxuICAgICAgdGhpcy5kaWFsZWN0LnNxbFRvUXVlcnkodGhpcy5nZXRTUUwoKSksXG4gICAgICB0aGlzLmNvbmZpZy5yZXR1cm5pbmcsXG4gICAgICB0aGlzLmNvbmZpZy5yZXR1cm5pbmcgPyBcImFsbFwiIDogXCJydW5cIlxuICAgICk7XG4gIH1cbiAgcHJlcGFyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZShmYWxzZSk7XG4gIH1cbiAgcnVuID0gKHBsYWNlaG9sZGVyVmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoKS5ydW4ocGxhY2Vob2xkZXJWYWx1ZXMpO1xuICB9O1xuICBhbGwgPSAocGxhY2Vob2xkZXJWYWx1ZXMpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZSgpLmFsbChwbGFjZWhvbGRlclZhbHVlcyk7XG4gIH07XG4gIGdldCA9IChwbGFjZWhvbGRlclZhbHVlcykgPT4ge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlKCkuZ2V0KHBsYWNlaG9sZGVyVmFsdWVzKTtcbiAgfTtcbiAgdmFsdWVzID0gKHBsYWNlaG9sZGVyVmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmUoKS52YWx1ZXMocGxhY2Vob2xkZXJWYWx1ZXMpO1xuICB9O1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXR1cm5pbmcgPyB0aGlzLmFsbCgpIDogdGhpcy5ydW4oKTtcbiAgfVxuICAkZHluYW1pYygpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuZXhwb3J0IHtcbiAgU1FMaXRlVXBkYXRlQmFzZSxcbiAgU1FMaXRlVXBkYXRlQnVpbGRlclxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVwZGF0ZS5qcy5tYXAiXSwibmFtZXMiOlsiZW50aXR5S2luZCIsIlF1ZXJ5UHJvbWlzZSIsIlNRTGl0ZVRhYmxlIiwibWFwVXBkYXRlU2V0Iiwib3JkZXJTZWxlY3RlZEZpZWxkcyIsIlNRTGl0ZVVwZGF0ZUJ1aWxkZXIiLCJjb25zdHJ1Y3RvciIsInRhYmxlIiwic2Vzc2lvbiIsImRpYWxlY3QiLCJ3aXRoTGlzdCIsInNldCIsInZhbHVlcyIsIlNRTGl0ZVVwZGF0ZUJhc2UiLCJydW4iLCJwbGFjZWhvbGRlclZhbHVlcyIsIl9wcmVwYXJlIiwiYWxsIiwiZ2V0IiwiY29uZmlnIiwid2hlcmUiLCJyZXR1cm5pbmciLCJmaWVsZHMiLCJTeW1ib2wiLCJDb2x1bW5zIiwiZ2V0U1FMIiwiYnVpbGRVcGRhdGVRdWVyeSIsInRvU1FMIiwidHlwaW5ncyIsIl90eXBpbmdzIiwicmVzdCIsInNxbFRvUXVlcnkiLCJpc09uZVRpbWVRdWVyeSIsInByZXBhcmUiLCJleGVjdXRlIiwiJGR5bmFtaWMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/query-builders/update.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/session.js":
-/*!*************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/session.js ***!
- \*************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ExecuteResultSync: () => (/* binding */ ExecuteResultSync),\n/* harmony export */ SQLitePreparedQuery: () => (/* binding */ SQLitePreparedQuery),\n/* harmony export */ SQLiteSession: () => (/* binding */ SQLiteSession),\n/* harmony export */ SQLiteTransaction: () => (/* binding */ SQLiteTransaction)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../errors.js */ \"(rsc)/../../node_modules/drizzle-orm/errors.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index.js */ \"(rsc)/../../node_modules/drizzle-orm/query-promise.js\");\n/* harmony import */ var _db_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./db.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/db.js\");\n\n\n\n\nclass ExecuteResultSync extends _index_js__WEBPACK_IMPORTED_MODULE_0__.QueryPromise {\n constructor(resultCb){\n super();\n this.resultCb = resultCb;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"ExecuteResultSync\";\n }\n async execute() {\n return this.resultCb();\n }\n sync() {\n return this.resultCb();\n }\n}\nclass SQLitePreparedQuery {\n constructor(mode, executeMethod, query){\n this.mode = mode;\n this.executeMethod = executeMethod;\n this.query = query;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"PreparedQuery\";\n }\n getQuery() {\n return this.query;\n }\n mapRunResult(result, _isFromBatch) {\n return result;\n }\n mapAllResult(_result, _isFromBatch) {\n throw new Error(\"Not implemented\");\n }\n mapGetResult(_result, _isFromBatch) {\n throw new Error(\"Not implemented\");\n }\n execute(placeholderValues) {\n if (this.mode === \"async\") {\n return this[this.executeMethod](placeholderValues);\n }\n return new ExecuteResultSync(()=>this[this.executeMethod](placeholderValues));\n }\n mapResult(response, isFromBatch) {\n switch(this.executeMethod){\n case \"run\":\n {\n return this.mapRunResult(response, isFromBatch);\n }\n case \"all\":\n {\n return this.mapAllResult(response, isFromBatch);\n }\n case \"get\":\n {\n return this.mapGetResult(response, isFromBatch);\n }\n }\n }\n}\nclass SQLiteSession {\n constructor(dialect){\n this.dialect = dialect;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteSession\";\n }\n prepareOneTimeQuery(query, fields, executeMethod) {\n return this.prepareQuery(query, fields, executeMethod);\n }\n run(query) {\n const staticQuery = this.dialect.sqlToQuery(query);\n try {\n return this.prepareOneTimeQuery(staticQuery, void 0, \"run\").run();\n } catch (err) {\n throw new _errors_js__WEBPACK_IMPORTED_MODULE_2__.DrizzleError({\n cause: err,\n message: `Failed to run the query '${staticQuery.sql}'`\n });\n }\n }\n /** @internal */ extractRawRunValueFromBatchResult(result) {\n return result;\n }\n all(query) {\n return this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), void 0, \"run\").all();\n }\n /** @internal */ extractRawAllValueFromBatchResult(_result) {\n throw new Error(\"Not implemented\");\n }\n get(query) {\n return this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), void 0, \"run\").get();\n }\n /** @internal */ extractRawGetValueFromBatchResult(_result) {\n throw new Error(\"Not implemented\");\n }\n values(query) {\n return this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), void 0, \"run\").values();\n }\n /** @internal */ extractRawValuesValueFromBatchResult(_result) {\n throw new Error(\"Not implemented\");\n }\n}\nclass SQLiteTransaction extends _db_js__WEBPACK_IMPORTED_MODULE_3__.BaseSQLiteDatabase {\n constructor(resultType, dialect, session, schema, nestedIndex = 0){\n super(resultType, dialect, session, schema);\n this.schema = schema;\n this.nestedIndex = nestedIndex;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteTransaction\";\n }\n rollback() {\n throw new _errors_js__WEBPACK_IMPORTED_MODULE_2__.TransactionRollbackError();\n }\n}\n //# sourceMappingURL=session.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3Nlc3Npb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBMEM7QUFDNEI7QUFDM0I7QUFDRTtBQUM3QyxNQUFNSywwQkFBMEJGLG1EQUFZQTtJQUMxQ0csWUFBWUMsUUFBUSxDQUFFO1FBQ3BCLEtBQUs7UUFDTCxJQUFJLENBQUNBLFFBQVEsR0FBR0E7SUFDbEI7O1lBQ08sQ0FBQ1Asa0RBQVVBLENBQUMsR0FBRzs7SUFDdEIsTUFBTVEsVUFBVTtRQUNkLE9BQU8sSUFBSSxDQUFDRCxRQUFRO0lBQ3RCO0lBQ0FFLE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtBQUNGO0FBQ0EsTUFBTUc7SUFDSkosWUFBWUssSUFBSSxFQUFFQyxhQUFhLEVBQUVDLEtBQUssQ0FBRTtRQUN0QyxJQUFJLENBQUNGLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLGFBQWEsR0FBR0E7UUFDckIsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7O1lBQ08sQ0FBQ2Isa0RBQVVBLENBQUMsR0FBRzs7SUFHdEJjLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUNBRSxhQUFhQyxNQUFNLEVBQUVDLFlBQVksRUFBRTtRQUNqQyxPQUFPRDtJQUNUO0lBQ0FFLGFBQWFDLE9BQU8sRUFBRUYsWUFBWSxFQUFFO1FBQ2xDLE1BQU0sSUFBSUcsTUFBTTtJQUNsQjtJQUNBQyxhQUFhRixPQUFPLEVBQUVGLFlBQVksRUFBRTtRQUNsQyxNQUFNLElBQUlHLE1BQU07SUFDbEI7SUFDQVosUUFBUWMsaUJBQWlCLEVBQUU7UUFDekIsSUFBSSxJQUFJLENBQUNYLElBQUksS0FBSyxTQUFTO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQ0MsYUFBYSxDQUFDLENBQUNVO1FBQ2xDO1FBQ0EsT0FBTyxJQUFJakIsa0JBQWtCLElBQU0sSUFBSSxDQUFDLElBQUksQ0FBQ08sYUFBYSxDQUFDLENBQUNVO0lBQzlEO0lBQ0FDLFVBQVVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFO1FBQy9CLE9BQVEsSUFBSSxDQUFDYixhQUFhO1lBQ3hCLEtBQUs7Z0JBQU87b0JBQ1YsT0FBTyxJQUFJLENBQUNHLFlBQVksQ0FBQ1MsVUFBVUM7Z0JBQ3JDO1lBQ0EsS0FBSztnQkFBTztvQkFDVixPQUFPLElBQUksQ0FBQ1AsWUFBWSxDQUFDTSxVQUFVQztnQkFDckM7WUFDQSxLQUFLO2dCQUFPO29CQUNWLE9BQU8sSUFBSSxDQUFDSixZQUFZLENBQUNHLFVBQVVDO2dCQUNyQztRQUNGO0lBQ0Y7QUFDRjtBQUNBLE1BQU1DO0lBQ0pwQixZQUFZcUIsT0FBTyxDQUFFO1FBQ25CLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtJQUNqQjs7WUFDTyxDQUFDM0Isa0RBQVVBLENBQUMsR0FBRzs7SUFDdEI0QixvQkFBb0JmLEtBQUssRUFBRWdCLE1BQU0sRUFBRWpCLGFBQWEsRUFBRTtRQUNoRCxPQUFPLElBQUksQ0FBQ2tCLFlBQVksQ0FBQ2pCLE9BQU9nQixRQUFRakI7SUFDMUM7SUFDQW1CLElBQUlsQixLQUFLLEVBQUU7UUFDVCxNQUFNbUIsY0FBYyxJQUFJLENBQUNMLE9BQU8sQ0FBQ00sVUFBVSxDQUFDcEI7UUFDNUMsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDZSxtQkFBbUIsQ0FBQ0ksYUFBYSxLQUFLLEdBQUcsT0FBT0QsR0FBRztRQUNqRSxFQUFFLE9BQU9HLEtBQUs7WUFDWixNQUFNLElBQUlqQyxvREFBWUEsQ0FBQztnQkFBRWtDLE9BQU9EO2dCQUFLRSxTQUFTLENBQUMseUJBQXlCLEVBQUVKLFlBQVlLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFBQztRQUMvRjtJQUNGO0lBQ0EsY0FBYyxHQUNkQyxrQ0FBa0N0QixNQUFNLEVBQUU7UUFDeEMsT0FBT0E7SUFDVDtJQUNBdUIsSUFBSTFCLEtBQUssRUFBRTtRQUNULE9BQU8sSUFBSSxDQUFDZSxtQkFBbUIsQ0FBQyxJQUFJLENBQUNELE9BQU8sQ0FBQ00sVUFBVSxDQUFDcEIsUUFBUSxLQUFLLEdBQUcsT0FBTzBCLEdBQUc7SUFDcEY7SUFDQSxjQUFjLEdBQ2RDLGtDQUFrQ3JCLE9BQU8sRUFBRTtRQUN6QyxNQUFNLElBQUlDLE1BQU07SUFDbEI7SUFDQXFCLElBQUk1QixLQUFLLEVBQUU7UUFDVCxPQUFPLElBQUksQ0FBQ2UsbUJBQW1CLENBQUMsSUFBSSxDQUFDRCxPQUFPLENBQUNNLFVBQVUsQ0FBQ3BCLFFBQVEsS0FBSyxHQUFHLE9BQU80QixHQUFHO0lBQ3BGO0lBQ0EsY0FBYyxHQUNkQyxrQ0FBa0N2QixPQUFPLEVBQUU7UUFDekMsTUFBTSxJQUFJQyxNQUFNO0lBQ2xCO0lBQ0F1QixPQUFPOUIsS0FBSyxFQUFFO1FBQ1osT0FBTyxJQUFJLENBQUNlLG1CQUFtQixDQUFDLElBQUksQ0FBQ0QsT0FBTyxDQUFDTSxVQUFVLENBQUNwQixRQUFRLEtBQUssR0FBRyxPQUFPOEIsTUFBTTtJQUN2RjtJQUNBLGNBQWMsR0FDZEMscUNBQXFDekIsT0FBTyxFQUFFO1FBQzVDLE1BQU0sSUFBSUMsTUFBTTtJQUNsQjtBQUNGO0FBQ0EsTUFBTXlCLDBCQUEwQnpDLHNEQUFrQkE7SUFDaERFLFlBQVl3QyxVQUFVLEVBQUVuQixPQUFPLEVBQUVvQixPQUFPLEVBQUVDLE1BQU0sRUFBRUMsY0FBYyxDQUFDLENBQUU7UUFDakUsS0FBSyxDQUFDSCxZQUFZbkIsU0FBU29CLFNBQVNDO1FBQ3BDLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtJQUNyQjs7WUFDTyxDQUFDakQsa0RBQVVBLENBQUMsR0FBRzs7SUFDdEJrRCxXQUFXO1FBQ1QsTUFBTSxJQUFJaEQsZ0VBQXdCQTtJQUNwQztBQUNGO0FBTUUsQ0FDRixtQ0FBbUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9zcWxpdGUtY29yZS9zZXNzaW9uLmpzP2I3NjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW50aXR5S2luZCB9IGZyb20gXCIuLi9lbnRpdHkuanNcIjtcbmltcG9ydCB7IERyaXp6bGVFcnJvciwgVHJhbnNhY3Rpb25Sb2xsYmFja0Vycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy5qc1wiO1xuaW1wb3J0IHsgUXVlcnlQcm9taXNlIH0gZnJvbSBcIi4uL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBCYXNlU1FMaXRlRGF0YWJhc2UgfSBmcm9tIFwiLi9kYi5qc1wiO1xuY2xhc3MgRXhlY3V0ZVJlc3VsdFN5bmMgZXh0ZW5kcyBRdWVyeVByb21pc2Uge1xuICBjb25zdHJ1Y3RvcihyZXN1bHRDYikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZXN1bHRDYiA9IHJlc3VsdENiO1xuICB9XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIkV4ZWN1dGVSZXN1bHRTeW5jXCI7XG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Q2IoKTtcbiAgfVxuICBzeW5jKCkge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdENiKCk7XG4gIH1cbn1cbmNsYXNzIFNRTGl0ZVByZXBhcmVkUXVlcnkge1xuICBjb25zdHJ1Y3Rvcihtb2RlLCBleGVjdXRlTWV0aG9kLCBxdWVyeSkge1xuICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgdGhpcy5leGVjdXRlTWV0aG9kID0gZXhlY3V0ZU1ldGhvZDtcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnk7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiUHJlcGFyZWRRdWVyeVwiO1xuICAvKiogQGludGVybmFsICovXG4gIGpvaW5zTm90TnVsbGFibGVNYXA7XG4gIGdldFF1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5O1xuICB9XG4gIG1hcFJ1blJlc3VsdChyZXN1bHQsIF9pc0Zyb21CYXRjaCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgbWFwQWxsUmVzdWx0KF9yZXN1bHQsIF9pc0Zyb21CYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICBtYXBHZXRSZXN1bHQoX3Jlc3VsdCwgX2lzRnJvbUJhdGNoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIGV4ZWN1dGUocGxhY2Vob2xkZXJWYWx1ZXMpIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSBcImFzeW5jXCIpIHtcbiAgICAgIHJldHVybiB0aGlzW3RoaXMuZXhlY3V0ZU1ldGhvZF0ocGxhY2Vob2xkZXJWYWx1ZXMpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEV4ZWN1dGVSZXN1bHRTeW5jKCgpID0+IHRoaXNbdGhpcy5leGVjdXRlTWV0aG9kXShwbGFjZWhvbGRlclZhbHVlcykpO1xuICB9XG4gIG1hcFJlc3VsdChyZXNwb25zZSwgaXNGcm9tQmF0Y2gpIHtcbiAgICBzd2l0Y2ggKHRoaXMuZXhlY3V0ZU1ldGhvZCkge1xuICAgICAgY2FzZSBcInJ1blwiOiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcFJ1blJlc3VsdChyZXNwb25zZSwgaXNGcm9tQmF0Y2gpO1xuICAgICAgfVxuICAgICAgY2FzZSBcImFsbFwiOiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcEFsbFJlc3VsdChyZXNwb25zZSwgaXNGcm9tQmF0Y2gpO1xuICAgICAgfVxuICAgICAgY2FzZSBcImdldFwiOiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcEdldFJlc3VsdChyZXNwb25zZSwgaXNGcm9tQmF0Y2gpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuY2xhc3MgU1FMaXRlU2Vzc2lvbiB7XG4gIGNvbnN0cnVjdG9yKGRpYWxlY3QpIHtcbiAgICB0aGlzLmRpYWxlY3QgPSBkaWFsZWN0O1xuICB9XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVNlc3Npb25cIjtcbiAgcHJlcGFyZU9uZVRpbWVRdWVyeShxdWVyeSwgZmllbGRzLCBleGVjdXRlTWV0aG9kKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlcGFyZVF1ZXJ5KHF1ZXJ5LCBmaWVsZHMsIGV4ZWN1dGVNZXRob2QpO1xuICB9XG4gIHJ1bihxdWVyeSkge1xuICAgIGNvbnN0IHN0YXRpY1F1ZXJ5ID0gdGhpcy5kaWFsZWN0LnNxbFRvUXVlcnkocXVlcnkpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5wcmVwYXJlT25lVGltZVF1ZXJ5KHN0YXRpY1F1ZXJ5LCB2b2lkIDAsIFwicnVuXCIpLnJ1bigpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IERyaXp6bGVFcnJvcih7IGNhdXNlOiBlcnIsIG1lc3NhZ2U6IGBGYWlsZWQgdG8gcnVuIHRoZSBxdWVyeSAnJHtzdGF0aWNRdWVyeS5zcWx9J2AgfSk7XG4gICAgfVxuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZXh0cmFjdFJhd1J1blZhbHVlRnJvbUJhdGNoUmVzdWx0KHJlc3VsdCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgYWxsKHF1ZXJ5KSB7XG4gICAgcmV0dXJuIHRoaXMucHJlcGFyZU9uZVRpbWVRdWVyeSh0aGlzLmRpYWxlY3Quc3FsVG9RdWVyeShxdWVyeSksIHZvaWQgMCwgXCJydW5cIikuYWxsKCk7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBleHRyYWN0UmF3QWxsVmFsdWVGcm9tQmF0Y2hSZXN1bHQoX3Jlc3VsdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICBnZXQocXVlcnkpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlT25lVGltZVF1ZXJ5KHRoaXMuZGlhbGVjdC5zcWxUb1F1ZXJ5KHF1ZXJ5KSwgdm9pZCAwLCBcInJ1blwiKS5nZXQoKTtcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIGV4dHJhY3RSYXdHZXRWYWx1ZUZyb21CYXRjaFJlc3VsdChfcmVzdWx0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHZhbHVlcyhxdWVyeSkge1xuICAgIHJldHVybiB0aGlzLnByZXBhcmVPbmVUaW1lUXVlcnkodGhpcy5kaWFsZWN0LnNxbFRvUXVlcnkocXVlcnkpLCB2b2lkIDAsIFwicnVuXCIpLnZhbHVlcygpO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZXh0cmFjdFJhd1ZhbHVlc1ZhbHVlRnJvbUJhdGNoUmVzdWx0KF9yZXN1bHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbn1cbmNsYXNzIFNRTGl0ZVRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVNRTGl0ZURhdGFiYXNlIHtcbiAgY29uc3RydWN0b3IocmVzdWx0VHlwZSwgZGlhbGVjdCwgc2Vzc2lvbiwgc2NoZW1hLCBuZXN0ZWRJbmRleCA9IDApIHtcbiAgICBzdXBlcihyZXN1bHRUeXBlLCBkaWFsZWN0LCBzZXNzaW9uLCBzY2hlbWEpO1xuICAgIHRoaXMuc2NoZW1hID0gc2NoZW1hO1xuICAgIHRoaXMubmVzdGVkSW5kZXggPSBuZXN0ZWRJbmRleDtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVUcmFuc2FjdGlvblwiO1xuICByb2xsYmFjaygpIHtcbiAgICB0aHJvdyBuZXcgVHJhbnNhY3Rpb25Sb2xsYmFja0Vycm9yKCk7XG4gIH1cbn1cbmV4cG9ydCB7XG4gIEV4ZWN1dGVSZXN1bHRTeW5jLFxuICBTUUxpdGVQcmVwYXJlZFF1ZXJ5LFxuICBTUUxpdGVTZXNzaW9uLFxuICBTUUxpdGVUcmFuc2FjdGlvblxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlc3Npb24uanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJEcml6emxlRXJyb3IiLCJUcmFuc2FjdGlvblJvbGxiYWNrRXJyb3IiLCJRdWVyeVByb21pc2UiLCJCYXNlU1FMaXRlRGF0YWJhc2UiLCJFeGVjdXRlUmVzdWx0U3luYyIsImNvbnN0cnVjdG9yIiwicmVzdWx0Q2IiLCJleGVjdXRlIiwic3luYyIsIlNRTGl0ZVByZXBhcmVkUXVlcnkiLCJtb2RlIiwiZXhlY3V0ZU1ldGhvZCIsInF1ZXJ5IiwiZ2V0UXVlcnkiLCJtYXBSdW5SZXN1bHQiLCJyZXN1bHQiLCJfaXNGcm9tQmF0Y2giLCJtYXBBbGxSZXN1bHQiLCJfcmVzdWx0IiwiRXJyb3IiLCJtYXBHZXRSZXN1bHQiLCJwbGFjZWhvbGRlclZhbHVlcyIsIm1hcFJlc3VsdCIsInJlc3BvbnNlIiwiaXNGcm9tQmF0Y2giLCJTUUxpdGVTZXNzaW9uIiwiZGlhbGVjdCIsInByZXBhcmVPbmVUaW1lUXVlcnkiLCJmaWVsZHMiLCJwcmVwYXJlUXVlcnkiLCJydW4iLCJzdGF0aWNRdWVyeSIsInNxbFRvUXVlcnkiLCJlcnIiLCJjYXVzZSIsIm1lc3NhZ2UiLCJzcWwiLCJleHRyYWN0UmF3UnVuVmFsdWVGcm9tQmF0Y2hSZXN1bHQiLCJhbGwiLCJleHRyYWN0UmF3QWxsVmFsdWVGcm9tQmF0Y2hSZXN1bHQiLCJnZXQiLCJleHRyYWN0UmF3R2V0VmFsdWVGcm9tQmF0Y2hSZXN1bHQiLCJ2YWx1ZXMiLCJleHRyYWN0UmF3VmFsdWVzVmFsdWVGcm9tQmF0Y2hSZXN1bHQiLCJTUUxpdGVUcmFuc2FjdGlvbiIsInJlc3VsdFR5cGUiLCJzZXNzaW9uIiwic2NoZW1hIiwibmVzdGVkSW5kZXgiLCJyb2xsYmFjayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/session.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js":
-/*!***********************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/table.js ***!
- \***********************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InlineForeignKeys: () => (/* binding */ InlineForeignKeys),\n/* harmony export */ SQLiteTable: () => (/* binding */ SQLiteTable),\n/* harmony export */ sqliteTable: () => (/* binding */ sqliteTable),\n/* harmony export */ sqliteTableCreator: () => (/* binding */ sqliteTableCreator)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n\n\nconst InlineForeignKeys = Symbol.for(\"drizzle:SQLiteInlineForeignKeys\");\nlet prop, prop1;\nclass SQLiteTable extends _table_js__WEBPACK_IMPORTED_MODULE_0__.Table {\n static{\n prop = _table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Columns;\n prop1 = _table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.ExtraConfigBuilder;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteTable\";\n }\n static{\n /** @internal */ this.Symbol = Object.assign({}, _table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol, {\n InlineForeignKeys\n });\n }\n constructor(...args){\n super(...args);\n /** @internal */ this[InlineForeignKeys] = [];\n /** @internal */ this[prop1] = void 0;\n }\n}\nfunction sqliteTableBase(name, columns, extraConfig, schema, baseName = name) {\n const rawTable = new SQLiteTable(name, schema, baseName);\n const builtColumns = Object.fromEntries(Object.entries(columns).map(([name2, colBuilderBase])=>{\n const colBuilder = colBuilderBase;\n const column = colBuilder.build(rawTable);\n rawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n return [\n name2,\n column\n ];\n }));\n const table = Object.assign(rawTable, builtColumns);\n table[_table_js__WEBPACK_IMPORTED_MODULE_0__.Table.Symbol.Columns] = builtColumns;\n if (extraConfig) {\n table[SQLiteTable.Symbol.ExtraConfigBuilder] = extraConfig;\n }\n return table;\n}\nconst sqliteTable = (name, columns, extraConfig)=>{\n return sqliteTableBase(name, columns, extraConfig);\n};\nfunction sqliteTableCreator(customizeTableName) {\n return (name, columns, extraConfig)=>{\n return sqliteTableBase(customizeTableName(name), columns, extraConfig, void 0, name);\n };\n}\n //# sourceMappingURL=table.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3RhYmxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUEwQztBQUNOO0FBQ3BDLE1BQU1FLG9CQUFvQkMsT0FBT0MsR0FBRyxDQUFDOztBQUNyQyxNQUFNQyxvQkFBb0JKLDRDQUFLQTs7ZUFPNUJBLDRDQUFLQSxDQUFDRSxNQUFNLENBQUNHLE9BQU87Z0JBSXBCTCw0Q0FBS0EsQ0FBQ0UsTUFBTSxDQUFDSSxrQkFBa0I7OztZQVZ6QixDQUFDUCxrREFBVUEsQ0FBQyxHQUFHOzs7UUFDdEIsY0FBYyxRQUNQRyxTQUFTSyxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHUiw0Q0FBS0EsQ0FBQ0UsTUFBTSxFQUFFO1lBQzlDRDtRQUNGOzs7O1FBR0EsY0FBYyxPQUNkLENBQUNBLGtCQUFrQixHQUFHLEVBQUU7UUFDeEIsY0FBYyxPQUNkLE9BQWlDLEdBQUcsS0FBSzs7QUFDM0M7QUFDQSxTQUFTUSxnQkFBZ0JDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsV0FBV0osSUFBSTtJQUMxRSxNQUFNSyxXQUFXLElBQUlYLFlBQVlNLE1BQU1HLFFBQVFDO0lBQy9DLE1BQU1FLGVBQWVULE9BQU9VLFdBQVcsQ0FDckNWLE9BQU9XLE9BQU8sQ0FBQ1AsU0FBU1EsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsT0FBT0MsZUFBZTtRQUNsRCxNQUFNQyxhQUFhRDtRQUNuQixNQUFNRSxTQUFTRCxXQUFXRSxLQUFLLENBQUNUO1FBQ2hDQSxRQUFRLENBQUNkLGtCQUFrQixDQUFDd0IsSUFBSSxJQUFJSCxXQUFXSSxnQkFBZ0IsQ0FBQ0gsUUFBUVI7UUFDeEUsT0FBTztZQUFDSztZQUFPRztTQUFPO0lBQ3hCO0lBRUYsTUFBTUksUUFBUXBCLE9BQU9DLE1BQU0sQ0FBQ08sVUFBVUM7SUFDdENXLEtBQUssQ0FBQzNCLDRDQUFLQSxDQUFDRSxNQUFNLENBQUNHLE9BQU8sQ0FBQyxHQUFHVztJQUM5QixJQUFJSixhQUFhO1FBQ2ZlLEtBQUssQ0FBQ3ZCLFlBQVlGLE1BQU0sQ0FBQ0ksa0JBQWtCLENBQUMsR0FBR007SUFDakQ7SUFDQSxPQUFPZTtBQUNUO0FBQ0EsTUFBTUMsY0FBYyxDQUFDbEIsTUFBTUMsU0FBU0M7SUFDbEMsT0FBT0gsZ0JBQWdCQyxNQUFNQyxTQUFTQztBQUN4QztBQUNBLFNBQVNpQixtQkFBbUJDLGtCQUFrQjtJQUM1QyxPQUFPLENBQUNwQixNQUFNQyxTQUFTQztRQUNyQixPQUFPSCxnQkFBZ0JxQixtQkFBbUJwQixPQUFPQyxTQUFTQyxhQUFhLEtBQUssR0FBR0Y7SUFDakY7QUFDRjtBQU1FLENBQ0YsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUvdGFibGUuanM/NmQ0MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4uL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwiLi4vdGFibGUuanNcIjtcbmNvbnN0IElubGluZUZvcmVpZ25LZXlzID0gU3ltYm9sLmZvcihcImRyaXp6bGU6U1FMaXRlSW5saW5lRm9yZWlnbktleXNcIik7XG5jbGFzcyBTUUxpdGVUYWJsZSBleHRlbmRzIFRhYmxlIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlVGFibGVcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzdGF0aWMgU3ltYm9sID0gT2JqZWN0LmFzc2lnbih7fSwgVGFibGUuU3ltYm9sLCB7XG4gICAgSW5saW5lRm9yZWlnbktleXNcbiAgfSk7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgW1RhYmxlLlN5bWJvbC5Db2x1bW5zXTtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBbSW5saW5lRm9yZWlnbktleXNdID0gW107XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgW1RhYmxlLlN5bWJvbC5FeHRyYUNvbmZpZ0J1aWxkZXJdID0gdm9pZCAwO1xufVxuZnVuY3Rpb24gc3FsaXRlVGFibGVCYXNlKG5hbWUsIGNvbHVtbnMsIGV4dHJhQ29uZmlnLCBzY2hlbWEsIGJhc2VOYW1lID0gbmFtZSkge1xuICBjb25zdCByYXdUYWJsZSA9IG5ldyBTUUxpdGVUYWJsZShuYW1lLCBzY2hlbWEsIGJhc2VOYW1lKTtcbiAgY29uc3QgYnVpbHRDb2x1bW5zID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKGNvbHVtbnMpLm1hcCgoW25hbWUyLCBjb2xCdWlsZGVyQmFzZV0pID0+IHtcbiAgICAgIGNvbnN0IGNvbEJ1aWxkZXIgPSBjb2xCdWlsZGVyQmFzZTtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbEJ1aWxkZXIuYnVpbGQocmF3VGFibGUpO1xuICAgICAgcmF3VGFibGVbSW5saW5lRm9yZWlnbktleXNdLnB1c2goLi4uY29sQnVpbGRlci5idWlsZEZvcmVpZ25LZXlzKGNvbHVtbiwgcmF3VGFibGUpKTtcbiAgICAgIHJldHVybiBbbmFtZTIsIGNvbHVtbl07XG4gICAgfSlcbiAgKTtcbiAgY29uc3QgdGFibGUgPSBPYmplY3QuYXNzaWduKHJhd1RhYmxlLCBidWlsdENvbHVtbnMpO1xuICB0YWJsZVtUYWJsZS5TeW1ib2wuQ29sdW1uc10gPSBidWlsdENvbHVtbnM7XG4gIGlmIChleHRyYUNvbmZpZykge1xuICAgIHRhYmxlW1NRTGl0ZVRhYmxlLlN5bWJvbC5FeHRyYUNvbmZpZ0J1aWxkZXJdID0gZXh0cmFDb25maWc7XG4gIH1cbiAgcmV0dXJuIHRhYmxlO1xufVxuY29uc3Qgc3FsaXRlVGFibGUgPSAobmFtZSwgY29sdW1ucywgZXh0cmFDb25maWcpID0+IHtcbiAgcmV0dXJuIHNxbGl0ZVRhYmxlQmFzZShuYW1lLCBjb2x1bW5zLCBleHRyYUNvbmZpZyk7XG59O1xuZnVuY3Rpb24gc3FsaXRlVGFibGVDcmVhdG9yKGN1c3RvbWl6ZVRhYmxlTmFtZSkge1xuICByZXR1cm4gKG5hbWUsIGNvbHVtbnMsIGV4dHJhQ29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHNxbGl0ZVRhYmxlQmFzZShjdXN0b21pemVUYWJsZU5hbWUobmFtZSksIGNvbHVtbnMsIGV4dHJhQ29uZmlnLCB2b2lkIDAsIG5hbWUpO1xuICB9O1xufVxuZXhwb3J0IHtcbiAgSW5saW5lRm9yZWlnbktleXMsXG4gIFNRTGl0ZVRhYmxlLFxuICBzcWxpdGVUYWJsZSxcbiAgc3FsaXRlVGFibGVDcmVhdG9yXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGFibGUuanMubWFwIl0sIm5hbWVzIjpbImVudGl0eUtpbmQiLCJUYWJsZSIsIklubGluZUZvcmVpZ25LZXlzIiwiU3ltYm9sIiwiZm9yIiwiU1FMaXRlVGFibGUiLCJDb2x1bW5zIiwiRXh0cmFDb25maWdCdWlsZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwic3FsaXRlVGFibGVCYXNlIiwibmFtZSIsImNvbHVtbnMiLCJleHRyYUNvbmZpZyIsInNjaGVtYSIsImJhc2VOYW1lIiwicmF3VGFibGUiLCJidWlsdENvbHVtbnMiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJtYXAiLCJuYW1lMiIsImNvbEJ1aWxkZXJCYXNlIiwiY29sQnVpbGRlciIsImNvbHVtbiIsImJ1aWxkIiwicHVzaCIsImJ1aWxkRm9yZWlnbktleXMiLCJ0YWJsZSIsInNxbGl0ZVRhYmxlIiwic3FsaXRlVGFibGVDcmVhdG9yIiwiY3VzdG9taXplVGFibGVOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/unique-constraint.js":
-/*!***********************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/unique-constraint.js ***!
- \***********************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ UniqueConstraint: () => (/* binding */ UniqueConstraint),\n/* harmony export */ UniqueConstraintBuilder: () => (/* binding */ UniqueConstraintBuilder),\n/* harmony export */ UniqueOnConstraintBuilder: () => (/* binding */ UniqueOnConstraintBuilder),\n/* harmony export */ unique: () => (/* binding */ unique),\n/* harmony export */ uniqueKeyName: () => (/* binding */ uniqueKeyName)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./table.js */ \"(rsc)/../../node_modules/drizzle-orm/sqlite-core/table.js\");\n\n\nfunction uniqueKeyName(table, columns) {\n return `${table[_table_js__WEBPACK_IMPORTED_MODULE_0__.SQLiteTable.Symbol.Name]}_${columns.join(\"_\")}_unique`;\n}\nfunction unique(name) {\n return new UniqueOnConstraintBuilder(name);\n}\nclass UniqueConstraintBuilder {\n constructor(columns, name){\n this.name = name;\n this.columns = columns;\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteUniqueConstraintBuilder\";\n }\n /** @internal */ build(table) {\n return new UniqueConstraint(table, this.columns, this.name);\n }\n}\nclass UniqueOnConstraintBuilder {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteUniqueOnConstraintBuilder\";\n }\n constructor(name){\n this.name = name;\n }\n on(...columns) {\n return new UniqueConstraintBuilder(columns, this.name);\n }\n}\nclass UniqueConstraint {\n constructor(table, columns, name){\n this.table = table;\n this.columns = columns;\n this.name = name ?? uniqueKeyName(this.table, this.columns.map((column)=>column.name));\n }\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteUniqueConstraint\";\n }\n getName() {\n return this.name;\n }\n}\n //# sourceMappingURL=unique-constraint.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3VuaXF1ZS1jb25zdHJhaW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBMEM7QUFDRDtBQUN6QyxTQUFTRSxjQUFjQyxLQUFLLEVBQUVDLE9BQU87SUFDbkMsT0FBTyxDQUFDLEVBQUVELEtBQUssQ0FBQ0Ysa0RBQVdBLENBQUNJLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFRixRQUFRRyxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUM7QUFDeEU7QUFDQSxTQUFTQyxPQUFPQyxJQUFJO0lBQ2xCLE9BQU8sSUFBSUMsMEJBQTBCRDtBQUN2QztBQUNBLE1BQU1FO0lBQ0pDLFlBQVlSLE9BQU8sRUFBRUssSUFBSSxDQUFFO1FBQ3pCLElBQUksQ0FBQ0EsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0wsT0FBTyxHQUFHQTtJQUNqQjs7WUFDTyxDQUFDSixrREFBVUEsQ0FBQyxHQUFHOztJQUd0QixjQUFjLEdBQ2RhLE1BQU1WLEtBQUssRUFBRTtRQUNYLE9BQU8sSUFBSVcsaUJBQWlCWCxPQUFPLElBQUksQ0FBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQ0ssSUFBSTtJQUM1RDtBQUNGO0FBQ0EsTUFBTUM7O1lBQ0csQ0FBQ1Ysa0RBQVVBLENBQUMsR0FBRzs7SUFHdEJZLFlBQVlILElBQUksQ0FBRTtRQUNoQixJQUFJLENBQUNBLElBQUksR0FBR0E7SUFDZDtJQUNBTSxHQUFHLEdBQUdYLE9BQU8sRUFBRTtRQUNiLE9BQU8sSUFBSU8sd0JBQXdCUCxTQUFTLElBQUksQ0FBQ0ssSUFBSTtJQUN2RDtBQUNGO0FBQ0EsTUFBTUs7SUFDSkYsWUFBWVQsS0FBSyxFQUFFQyxPQUFPLEVBQUVLLElBQUksQ0FBRTtRQUNoQyxJQUFJLENBQUNOLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNLLElBQUksR0FBR0EsUUFBUVAsY0FBYyxJQUFJLENBQUNDLEtBQUssRUFBRSxJQUFJLENBQUNDLE9BQU8sQ0FBQ1ksR0FBRyxDQUFDLENBQUNDLFNBQVdBLE9BQU9SLElBQUk7SUFDeEY7O1lBQ08sQ0FBQ1Qsa0RBQVVBLENBQUMsR0FBRzs7SUFHdEJrQixVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNULElBQUk7SUFDbEI7QUFDRjtBQU9FLENBQ0YsNkNBQTZDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9ub2RlX21vZHVsZXMvZHJpenpsZS1vcm0vc3FsaXRlLWNvcmUvdW5pcXVlLWNvbnN0cmFpbnQuanM/YjQwZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnRpdHlLaW5kIH0gZnJvbSBcIi4uL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgU1FMaXRlVGFibGUgfSBmcm9tIFwiLi90YWJsZS5qc1wiO1xuZnVuY3Rpb24gdW5pcXVlS2V5TmFtZSh0YWJsZSwgY29sdW1ucykge1xuICByZXR1cm4gYCR7dGFibGVbU1FMaXRlVGFibGUuU3ltYm9sLk5hbWVdfV8ke2NvbHVtbnMuam9pbihcIl9cIil9X3VuaXF1ZWA7XG59XG5mdW5jdGlvbiB1bmlxdWUobmFtZSkge1xuICByZXR1cm4gbmV3IFVuaXF1ZU9uQ29uc3RyYWludEJ1aWxkZXIobmFtZSk7XG59XG5jbGFzcyBVbmlxdWVDb25zdHJhaW50QnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKGNvbHVtbnMsIG5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiU1FMaXRlVW5pcXVlQ29uc3RyYWludEJ1aWxkZXJcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjb2x1bW5zO1xuICAvKiogQGludGVybmFsICovXG4gIGJ1aWxkKHRhYmxlKSB7XG4gICAgcmV0dXJuIG5ldyBVbmlxdWVDb25zdHJhaW50KHRhYmxlLCB0aGlzLmNvbHVtbnMsIHRoaXMubmFtZSk7XG4gIH1cbn1cbmNsYXNzIFVuaXF1ZU9uQ29uc3RyYWludEJ1aWxkZXIge1xuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVVbmlxdWVPbkNvbnN0cmFpbnRCdWlsZGVyXCI7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbmFtZTtcbiAgY29uc3RydWN0b3IobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cbiAgb24oLi4uY29sdW1ucykge1xuICAgIHJldHVybiBuZXcgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXIoY29sdW1ucywgdGhpcy5uYW1lKTtcbiAgfVxufVxuY2xhc3MgVW5pcXVlQ29uc3RyYWludCB7XG4gIGNvbnN0cnVjdG9yKHRhYmxlLCBjb2x1bW5zLCBuYW1lKSB7XG4gICAgdGhpcy50YWJsZSA9IHRhYmxlO1xuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gICAgdGhpcy5uYW1lID0gbmFtZSA/PyB1bmlxdWVLZXlOYW1lKHRoaXMudGFibGUsIHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUpKTtcbiAgfVxuICBzdGF0aWMgW2VudGl0eUtpbmRdID0gXCJTUUxpdGVVbmlxdWVDb25zdHJhaW50XCI7XG4gIGNvbHVtbnM7XG4gIG5hbWU7XG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxufVxuZXhwb3J0IHtcbiAgVW5pcXVlQ29uc3RyYWludCxcbiAgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXIsXG4gIFVuaXF1ZU9uQ29uc3RyYWludEJ1aWxkZXIsXG4gIHVuaXF1ZSxcbiAgdW5pcXVlS2V5TmFtZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaXF1ZS1jb25zdHJhaW50LmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiU1FMaXRlVGFibGUiLCJ1bmlxdWVLZXlOYW1lIiwidGFibGUiLCJjb2x1bW5zIiwiU3ltYm9sIiwiTmFtZSIsImpvaW4iLCJ1bmlxdWUiLCJuYW1lIiwiVW5pcXVlT25Db25zdHJhaW50QnVpbGRlciIsIlVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyIiwiY29uc3RydWN0b3IiLCJidWlsZCIsIlVuaXF1ZUNvbnN0cmFpbnQiLCJvbiIsIm1hcCIsImNvbHVtbiIsImdldE5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/unique-constraint.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/sqlite-core/view-base.js":
-/*!***************************************************************!*\
- !*** ../../node_modules/drizzle-orm/sqlite-core/view-base.js ***!
- \***************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SQLiteViewBase: () => (/* binding */ SQLiteViewBase)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n\n\nclass SQLiteViewBase extends _sql_sql_js__WEBPACK_IMPORTED_MODULE_0__.View {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_1__.entityKind] = \"SQLiteViewBase\";\n }\n}\n //# sourceMappingURL=view-base.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3ZpZXctYmFzZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMEM7QUFDTDtBQUNyQyxNQUFNRSx1QkFBdUJELDZDQUFJQTs7WUFDeEIsQ0FBQ0Qsa0RBQVVBLENBQUMsR0FBRzs7QUFDeEI7QUFHRSxDQUNGLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3NxbGl0ZS1jb3JlL3ZpZXctYmFzZS5qcz9mMzViIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgeyBWaWV3IH0gZnJvbSBcIi4uL3NxbC9zcWwuanNcIjtcbmNsYXNzIFNRTGl0ZVZpZXdCYXNlIGV4dGVuZHMgVmlldyB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlNRTGl0ZVZpZXdCYXNlXCI7XG59XG5leHBvcnQge1xuICBTUUxpdGVWaWV3QmFzZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZpZXctYmFzZS5qcy5tYXAiXSwibmFtZXMiOlsiZW50aXR5S2luZCIsIlZpZXciLCJTUUxpdGVWaWV3QmFzZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/sqlite-core/view-base.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/subquery.js":
-/*!**************************************************!*\
- !*** ../../node_modules/drizzle-orm/subquery.js ***!
- \**************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Subquery: () => (/* binding */ Subquery),\n/* harmony export */ SubqueryConfig: () => (/* binding */ SubqueryConfig),\n/* harmony export */ WithSubquery: () => (/* binding */ WithSubquery)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nconst SubqueryConfig = Symbol.for(\"drizzle:SubqueryConfig\");\nclass Subquery {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"Subquery\";\n }\n constructor(sql, selection, alias, isWith = false){\n this[SubqueryConfig] = {\n sql,\n selection,\n alias,\n isWith\n };\n }\n}\nclass WithSubquery extends Subquery {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"WithSubquery\";\n }\n}\n //# sourceMappingURL=subquery.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3N1YnF1ZXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBeUM7QUFDekMsTUFBTUMsaUJBQWlCQyxPQUFPQyxHQUFHLENBQUM7QUFDbEMsTUFBTUM7O1lBQ0csQ0FBQ0osa0RBQVVBLENBQUMsR0FBRzs7SUFHdEJLLFlBQVlDLEdBQUcsRUFBRUMsU0FBUyxFQUFFQyxLQUFLLEVBQUVDLFNBQVMsS0FBSyxDQUFFO1FBQ2pELElBQUksQ0FBQ1IsZUFBZSxHQUFHO1lBQ3JCSztZQUNBQztZQUNBQztZQUNBQztRQUNGO0lBQ0Y7QUFJRjtBQUNBLE1BQU1DLHFCQUFxQk47O1lBQ2xCLENBQUNKLGtEQUFVQSxDQUFDLEdBQUc7O0FBQ3hCO0FBS0UsQ0FDRixvQ0FBb0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS9zdWJxdWVyeS5qcz8yMDlmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudGl0eUtpbmQgfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmNvbnN0IFN1YnF1ZXJ5Q29uZmlnID0gU3ltYm9sLmZvcihcImRyaXp6bGU6U3VicXVlcnlDb25maWdcIik7XG5jbGFzcyBTdWJxdWVyeSB7XG4gIHN0YXRpYyBbZW50aXR5S2luZF0gPSBcIlN1YnF1ZXJ5XCI7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgW1N1YnF1ZXJ5Q29uZmlnXTtcbiAgY29uc3RydWN0b3Ioc3FsLCBzZWxlY3Rpb24sIGFsaWFzLCBpc1dpdGggPSBmYWxzZSkge1xuICAgIHRoaXNbU3VicXVlcnlDb25maWddID0ge1xuICAgICAgc3FsLFxuICAgICAgc2VsZWN0aW9uLFxuICAgICAgYWxpYXMsXG4gICAgICBpc1dpdGhcbiAgICB9O1xuICB9XG4gIC8vIGdldFNRTCgpOiBTUUw8dW5rbm93bj4ge1xuICAvLyBcdHJldHVybiBuZXcgU1FMKFt0aGlzXSk7XG4gIC8vIH1cbn1cbmNsYXNzIFdpdGhTdWJxdWVyeSBleHRlbmRzIFN1YnF1ZXJ5IHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiV2l0aFN1YnF1ZXJ5XCI7XG59XG5leHBvcnQge1xuICBTdWJxdWVyeSxcbiAgU3VicXVlcnlDb25maWcsXG4gIFdpdGhTdWJxdWVyeVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN1YnF1ZXJ5LmpzLm1hcCJdLCJuYW1lcyI6WyJlbnRpdHlLaW5kIiwiU3VicXVlcnlDb25maWciLCJTeW1ib2wiLCJmb3IiLCJTdWJxdWVyeSIsImNvbnN0cnVjdG9yIiwic3FsIiwic2VsZWN0aW9uIiwiYWxpYXMiLCJpc1dpdGgiLCJXaXRoU3VicXVlcnkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/subquery.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/table.js":
-/*!***********************************************!*\
- !*** ../../node_modules/drizzle-orm/table.js ***!
- \***********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BaseName: () => (/* binding */ BaseName),\n/* harmony export */ Columns: () => (/* binding */ Columns),\n/* harmony export */ ExtraConfigBuilder: () => (/* binding */ ExtraConfigBuilder),\n/* harmony export */ IsAlias: () => (/* binding */ IsAlias),\n/* harmony export */ OriginalName: () => (/* binding */ OriginalName),\n/* harmony export */ Schema: () => (/* binding */ Schema),\n/* harmony export */ Table: () => (/* binding */ Table),\n/* harmony export */ TableName: () => (/* binding */ TableName),\n/* harmony export */ getTableName: () => (/* binding */ getTableName),\n/* harmony export */ isTable: () => (/* binding */ isTable)\n/* harmony export */ });\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n\nconst TableName = Symbol.for(\"drizzle:Name\");\nconst Schema = Symbol.for(\"drizzle:Schema\");\nconst Columns = Symbol.for(\"drizzle:Columns\");\nconst OriginalName = Symbol.for(\"drizzle:OriginalName\");\nconst BaseName = Symbol.for(\"drizzle:BaseName\");\nconst IsAlias = Symbol.for(\"drizzle:IsAlias\");\nconst ExtraConfigBuilder = Symbol.for(\"drizzle:ExtraConfigBuilder\");\nconst IsDrizzleTable = Symbol.for(\"drizzle:IsDrizzleTable\");\nclass Table {\n static{\n this[_entity_js__WEBPACK_IMPORTED_MODULE_0__.entityKind] = \"Table\";\n }\n static{\n /** @internal */ this.Symbol = {\n Name: TableName,\n Schema,\n OriginalName,\n Columns,\n BaseName,\n IsAlias,\n ExtraConfigBuilder\n };\n }\n constructor(name, schema, baseName){\n /** @internal */ this[IsAlias] = false;\n /** @internal */ this[ExtraConfigBuilder] = void 0;\n this[IsDrizzleTable] = true;\n this[TableName] = this[OriginalName] = name;\n this[Schema] = schema;\n this[BaseName] = baseName;\n }\n}\nfunction isTable(table) {\n return typeof table === \"object\" && table !== null && IsDrizzleTable in table;\n}\nfunction getTableName(table) {\n return table[TableName];\n}\n //# sourceMappingURL=table.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3RhYmxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQXlDO0FBQ3pDLE1BQU1DLFlBQVlDLE9BQU9DLEdBQUcsQ0FBQztBQUM3QixNQUFNQyxTQUFTRixPQUFPQyxHQUFHLENBQUM7QUFDMUIsTUFBTUUsVUFBVUgsT0FBT0MsR0FBRyxDQUFDO0FBQzNCLE1BQU1HLGVBQWVKLE9BQU9DLEdBQUcsQ0FBQztBQUNoQyxNQUFNSSxXQUFXTCxPQUFPQyxHQUFHLENBQUM7QUFDNUIsTUFBTUssVUFBVU4sT0FBT0MsR0FBRyxDQUFDO0FBQzNCLE1BQU1NLHFCQUFxQlAsT0FBT0MsR0FBRyxDQUFDO0FBQ3RDLE1BQU1PLGlCQUFpQlIsT0FBT0MsR0FBRyxDQUFDO0FBQ2xDLE1BQU1ROztZQUNHLENBQUNYLGtEQUFVQSxDQUFDLEdBQUc7OztRQUN0QixjQUFjLFFBQ1BFLFNBQVM7WUFDZFUsTUFBTVg7WUFDTkc7WUFDQUU7WUFDQUQ7WUFDQUU7WUFDQUM7WUFDQUM7UUFDRjs7SUF5QkFJLFlBQVlDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxRQUFRLENBQUU7UUFMcEMsY0FBYyxPQUNkLENBQUNSLFFBQVEsR0FBRztRQUNaLGNBQWMsT0FDZCxDQUFDQyxtQkFBbUIsR0FBRyxLQUFLO1lBQzVCLENBQUNDLGVBQWUsR0FBRztRQUVqQixJQUFJLENBQUNULFVBQVUsR0FBRyxJQUFJLENBQUNLLGFBQWEsR0FBR1E7UUFDdkMsSUFBSSxDQUFDVixPQUFPLEdBQUdXO1FBQ2YsSUFBSSxDQUFDUixTQUFTLEdBQUdTO0lBQ25CO0FBQ0Y7QUFDQSxTQUFTQyxRQUFRQyxLQUFLO0lBQ3BCLE9BQU8sT0FBT0EsVUFBVSxZQUFZQSxVQUFVLFFBQVFSLGtCQUFrQlE7QUFDMUU7QUFDQSxTQUFTQyxhQUFhRCxLQUFLO0lBQ3pCLE9BQU9BLEtBQUssQ0FBQ2pCLFVBQVU7QUFDekI7QUFZRSxDQUNGLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3RhYmxlLmpzPzVkOWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW50aXR5S2luZCB9IGZyb20gXCIuL2VudGl0eS5qc1wiO1xuY29uc3QgVGFibGVOYW1lID0gU3ltYm9sLmZvcihcImRyaXp6bGU6TmFtZVwiKTtcbmNvbnN0IFNjaGVtYSA9IFN5bWJvbC5mb3IoXCJkcml6emxlOlNjaGVtYVwiKTtcbmNvbnN0IENvbHVtbnMgPSBTeW1ib2wuZm9yKFwiZHJpenpsZTpDb2x1bW5zXCIpO1xuY29uc3QgT3JpZ2luYWxOYW1lID0gU3ltYm9sLmZvcihcImRyaXp6bGU6T3JpZ2luYWxOYW1lXCIpO1xuY29uc3QgQmFzZU5hbWUgPSBTeW1ib2wuZm9yKFwiZHJpenpsZTpCYXNlTmFtZVwiKTtcbmNvbnN0IElzQWxpYXMgPSBTeW1ib2wuZm9yKFwiZHJpenpsZTpJc0FsaWFzXCIpO1xuY29uc3QgRXh0cmFDb25maWdCdWlsZGVyID0gU3ltYm9sLmZvcihcImRyaXp6bGU6RXh0cmFDb25maWdCdWlsZGVyXCIpO1xuY29uc3QgSXNEcml6emxlVGFibGUgPSBTeW1ib2wuZm9yKFwiZHJpenpsZTpJc0RyaXp6bGVUYWJsZVwiKTtcbmNsYXNzIFRhYmxlIHtcbiAgc3RhdGljIFtlbnRpdHlLaW5kXSA9IFwiVGFibGVcIjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzdGF0aWMgU3ltYm9sID0ge1xuICAgIE5hbWU6IFRhYmxlTmFtZSxcbiAgICBTY2hlbWEsXG4gICAgT3JpZ2luYWxOYW1lLFxuICAgIENvbHVtbnMsXG4gICAgQmFzZU5hbWUsXG4gICAgSXNBbGlhcyxcbiAgICBFeHRyYUNvbmZpZ0J1aWxkZXJcbiAgfTtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDYW4gYmUgY2hhbmdlZCBpZiB0aGUgdGFibGUgaXMgYWxpYXNlZC5cbiAgICovXG4gIFtUYWJsZU5hbWVdO1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFVzZWQgdG8gc3RvcmUgdGhlIG9yaWdpbmFsIG5hbWUgb2YgdGhlIHRhYmxlLCBiZWZvcmUgYW55IGFsaWFzaW5nLlxuICAgKi9cbiAgW09yaWdpbmFsTmFtZV07XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgW1NjaGVtYV07XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgW0NvbHVtbnNdO1xuICAvKipcbiAgICogIEBpbnRlcm5hbFxuICAgKiBVc2VkIHRvIHN0b3JlIHRoZSB0YWJsZSBuYW1lIGJlZm9yZSB0aGUgdHJhbnNmb3JtYXRpb24gdmlhIHRoZSBgdGFibGVDcmVhdG9yYCBmdW5jdGlvbnMuXG4gICAqL1xuICBbQmFzZU5hbWVdO1xuICAvKiogQGludGVybmFsICovXG4gIFtJc0FsaWFzXSA9IGZhbHNlO1xuICAvKiogQGludGVybmFsICovXG4gIFtFeHRyYUNvbmZpZ0J1aWxkZXJdID0gdm9pZCAwO1xuICBbSXNEcml6emxlVGFibGVdID0gdHJ1ZTtcbiAgY29uc3RydWN0b3IobmFtZSwgc2NoZW1hLCBiYXNlTmFtZSkge1xuICAgIHRoaXNbVGFibGVOYW1lXSA9IHRoaXNbT3JpZ2luYWxOYW1lXSA9IG5hbWU7XG4gICAgdGhpc1tTY2hlbWFdID0gc2NoZW1hO1xuICAgIHRoaXNbQmFzZU5hbWVdID0gYmFzZU5hbWU7XG4gIH1cbn1cbmZ1bmN0aW9uIGlzVGFibGUodGFibGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0YWJsZSA9PT0gXCJvYmplY3RcIiAmJiB0YWJsZSAhPT0gbnVsbCAmJiBJc0RyaXp6bGVUYWJsZSBpbiB0YWJsZTtcbn1cbmZ1bmN0aW9uIGdldFRhYmxlTmFtZSh0YWJsZSkge1xuICByZXR1cm4gdGFibGVbVGFibGVOYW1lXTtcbn1cbmV4cG9ydCB7XG4gIEJhc2VOYW1lLFxuICBDb2x1bW5zLFxuICBFeHRyYUNvbmZpZ0J1aWxkZXIsXG4gIElzQWxpYXMsXG4gIE9yaWdpbmFsTmFtZSxcbiAgU2NoZW1hLFxuICBUYWJsZSxcbiAgVGFibGVOYW1lLFxuICBnZXRUYWJsZU5hbWUsXG4gIGlzVGFibGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10YWJsZS5qcy5tYXAiXSwibmFtZXMiOlsiZW50aXR5S2luZCIsIlRhYmxlTmFtZSIsIlN5bWJvbCIsImZvciIsIlNjaGVtYSIsIkNvbHVtbnMiLCJPcmlnaW5hbE5hbWUiLCJCYXNlTmFtZSIsIklzQWxpYXMiLCJFeHRyYUNvbmZpZ0J1aWxkZXIiLCJJc0RyaXp6bGVUYWJsZSIsIlRhYmxlIiwiTmFtZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInNjaGVtYSIsImJhc2VOYW1lIiwiaXNUYWJsZSIsInRhYmxlIiwiZ2V0VGFibGVOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/table.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/tracing-utils.js":
-/*!*******************************************************!*\
- !*** ../../node_modules/drizzle-orm/tracing-utils.js ***!
- \*******************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ iife: () => (/* binding */ iife)\n/* harmony export */ });\nfunction iife(fn, ...args) {\n return fn(...args);\n}\n //# sourceMappingURL=tracing-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3RyYWNpbmctdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLEtBQUtDLEVBQUUsRUFBRSxHQUFHQyxJQUFJO0lBQ3ZCLE9BQU9ELE1BQU1DO0FBQ2Y7QUFHRSxDQUNGLHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3RyYWNpbmctdXRpbHMuanM/OTJmOCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpaWZlKGZuLCAuLi5hcmdzKSB7XG4gIHJldHVybiBmbiguLi5hcmdzKTtcbn1cbmV4cG9ydCB7XG4gIGlpZmVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFjaW5nLXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJpaWZlIiwiZm4iLCJhcmdzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/tracing-utils.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/tracing.js":
-/*!*************************************************!*\
- !*** ../../node_modules/drizzle-orm/tracing.js ***!
- \*************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ tracer: () => (/* binding */ tracer)\n/* harmony export */ });\n/* harmony import */ var _tracing_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tracing-utils.js */ \"(rsc)/../../node_modules/drizzle-orm/tracing-utils.js\");\n/* harmony import */ var _version_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version.js */ \"(rsc)/../../node_modules/drizzle-orm/version.js\");\n\n\nlet otel;\nlet rawTracer;\nconst tracer = {\n startActiveSpan (name, fn) {\n if (!otel) {\n return fn();\n }\n if (!rawTracer) {\n rawTracer = otel.trace.getTracer(\"drizzle-orm\", _version_js__WEBPACK_IMPORTED_MODULE_0__.npmVersion);\n }\n return (0,_tracing_utils_js__WEBPACK_IMPORTED_MODULE_1__.iife)((otel2, rawTracer2)=>rawTracer2.startActiveSpan(name, (span)=>{\n try {\n return fn(span);\n } catch (e) {\n span.setStatus({\n code: otel2.SpanStatusCode.ERROR,\n message: e instanceof Error ? e.message : \"Unknown error\"\n });\n throw e;\n } finally{\n span.end();\n }\n }), otel, rawTracer);\n }\n};\n //# sourceMappingURL=tracing.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3RyYWNpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTBDO0FBQ0E7QUFDMUMsSUFBSUU7QUFDSixJQUFJQztBQUNKLE1BQU1DLFNBQVM7SUFDYkMsaUJBQWdCQyxJQUFJLEVBQUVDLEVBQUU7UUFDdEIsSUFBSSxDQUFDTCxNQUFNO1lBQ1QsT0FBT0s7UUFDVDtRQUNBLElBQUksQ0FBQ0osV0FBVztZQUNkQSxZQUFZRCxLQUFLTSxLQUFLLENBQUNDLFNBQVMsQ0FBQyxlQUFlUixtREFBVUE7UUFDNUQ7UUFDQSxPQUFPRCx1REFBSUEsQ0FDVCxDQUFDVSxPQUFPQyxhQUFlQSxXQUFXTixlQUFlLENBQy9DQyxNQUNBLENBQUNNO2dCQUNDLElBQUk7b0JBQ0YsT0FBT0wsR0FBR0s7Z0JBQ1osRUFBRSxPQUFPQyxHQUFHO29CQUNWRCxLQUFLRSxTQUFTLENBQUM7d0JBQ2JDLE1BQU1MLE1BQU1NLGNBQWMsQ0FBQ0MsS0FBSzt3QkFDaENDLFNBQVNMLGFBQWFNLFFBQVFOLEVBQUVLLE9BQU8sR0FBRztvQkFFNUM7b0JBQ0EsTUFBTUw7Z0JBQ1IsU0FBVTtvQkFDUkQsS0FBS1EsR0FBRztnQkFDVjtZQUNGLElBRUZsQixNQUNBQztJQUVKO0FBQ0Y7QUFHRSxDQUNGLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3RyYWNpbmcuanM/Zjc1OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpaWZlIH0gZnJvbSBcIi4vdHJhY2luZy11dGlscy5qc1wiO1xuaW1wb3J0IHsgbnBtVmVyc2lvbiB9IGZyb20gXCIuL3ZlcnNpb24uanNcIjtcbmxldCBvdGVsO1xubGV0IHJhd1RyYWNlcjtcbmNvbnN0IHRyYWNlciA9IHtcbiAgc3RhcnRBY3RpdmVTcGFuKG5hbWUsIGZuKSB7XG4gICAgaWYgKCFvdGVsKSB7XG4gICAgICByZXR1cm4gZm4oKTtcbiAgICB9XG4gICAgaWYgKCFyYXdUcmFjZXIpIHtcbiAgICAgIHJhd1RyYWNlciA9IG90ZWwudHJhY2UuZ2V0VHJhY2VyKFwiZHJpenpsZS1vcm1cIiwgbnBtVmVyc2lvbik7XG4gICAgfVxuICAgIHJldHVybiBpaWZlKFxuICAgICAgKG90ZWwyLCByYXdUcmFjZXIyKSA9PiByYXdUcmFjZXIyLnN0YXJ0QWN0aXZlU3BhbihcbiAgICAgICAgbmFtZSxcbiAgICAgICAgKHNwYW4pID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGZuKHNwYW4pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICAgICAgY29kZTogb3RlbDIuU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFwiVW5rbm93biBlcnJvclwiXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8taW5zdGFuY2VvZi9uby1pbnN0YW5jZW9mXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgb3RlbCxcbiAgICAgIHJhd1RyYWNlclxuICAgICk7XG4gIH1cbn07XG5leHBvcnQge1xuICB0cmFjZXJcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFjaW5nLmpzLm1hcCJdLCJuYW1lcyI6WyJpaWZlIiwibnBtVmVyc2lvbiIsIm90ZWwiLCJyYXdUcmFjZXIiLCJ0cmFjZXIiLCJzdGFydEFjdGl2ZVNwYW4iLCJuYW1lIiwiZm4iLCJ0cmFjZSIsImdldFRyYWNlciIsIm90ZWwyIiwicmF3VHJhY2VyMiIsInNwYW4iLCJlIiwic2V0U3RhdHVzIiwiY29kZSIsIlNwYW5TdGF0dXNDb2RlIiwiRVJST1IiLCJtZXNzYWdlIiwiRXJyb3IiLCJlbmQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/tracing.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/utils.js":
-/*!***********************************************!*\
- !*** ../../node_modules/drizzle-orm/utils.js ***!
- \***********************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyMixins: () => (/* binding */ applyMixins),\n/* harmony export */ getTableColumns: () => (/* binding */ getTableColumns),\n/* harmony export */ getTableLikeName: () => (/* binding */ getTableLikeName),\n/* harmony export */ haveSameKeys: () => (/* binding */ haveSameKeys),\n/* harmony export */ mapResultRow: () => (/* binding */ mapResultRow),\n/* harmony export */ mapUpdateSet: () => (/* binding */ mapUpdateSet),\n/* harmony export */ orderSelectedFields: () => (/* binding */ orderSelectedFields)\n/* harmony export */ });\n/* harmony import */ var _column_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./column.js */ \"(rsc)/../../node_modules/drizzle-orm/column.js\");\n/* harmony import */ var _entity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./entity.js */ \"(rsc)/../../node_modules/drizzle-orm/entity.js\");\n/* harmony import */ var _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sql/sql.js */ \"(rsc)/../../node_modules/drizzle-orm/sql/sql.js\");\n/* harmony import */ var _subquery_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./subquery.js */ \"(rsc)/../../node_modules/drizzle-orm/subquery.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./table.js */ \"(rsc)/../../node_modules/drizzle-orm/table.js\");\n/* harmony import */ var _view_common_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./view-common.js */ \"(rsc)/../../node_modules/drizzle-orm/view-common.js\");\n\n\n\n\n\n\nfunction mapResultRow(columns, row, joinsNotNullableMap) {\n const nullifyMap = {};\n const result = columns.reduce((result2, { path, field }, columnIndex)=>{\n let decoder;\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _column_js__WEBPACK_IMPORTED_MODULE_1__.Column)) {\n decoder = field;\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.SQL)) {\n decoder = field.decoder;\n } else {\n decoder = field.sql.decoder;\n }\n let node = result2;\n for (const [pathChunkIndex, pathChunk] of path.entries()){\n if (pathChunkIndex < path.length - 1) {\n if (!(pathChunk in node)) {\n node[pathChunk] = {};\n }\n node = node[pathChunk];\n } else {\n const rawValue = row[columnIndex];\n const value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n if (joinsNotNullableMap && (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _column_js__WEBPACK_IMPORTED_MODULE_1__.Column) && path.length === 2) {\n const objectName = path[0];\n if (!(objectName in nullifyMap)) {\n nullifyMap[objectName] = value === null ? (0,_table_js__WEBPACK_IMPORTED_MODULE_3__.getTableName)(field.table) : false;\n } else if (typeof nullifyMap[objectName] === \"string\" && nullifyMap[objectName] !== (0,_table_js__WEBPACK_IMPORTED_MODULE_3__.getTableName)(field.table)) {\n nullifyMap[objectName] = false;\n }\n }\n }\n }\n return result2;\n }, {});\n if (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n for (const [objectName, tableName] of Object.entries(nullifyMap)){\n if (typeof tableName === \"string\" && !joinsNotNullableMap[tableName]) {\n result[objectName] = null;\n }\n }\n }\n return result;\n}\nfunction orderSelectedFields(fields, pathPrefix) {\n return Object.entries(fields).reduce((result, [name, field])=>{\n if (typeof name !== \"string\") {\n return result;\n }\n const newPath = pathPrefix ? [\n ...pathPrefix,\n name\n ] : [\n name\n ];\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _column_js__WEBPACK_IMPORTED_MODULE_1__.Column) || (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.SQL) || (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.SQL.Aliased)) {\n result.push({\n path: newPath,\n field\n });\n } else if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(field, _table_js__WEBPACK_IMPORTED_MODULE_3__.Table)) {\n result.push(...orderSelectedFields(field[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Columns], newPath));\n } else {\n result.push(...orderSelectedFields(field, newPath));\n }\n return result;\n }, []);\n}\nfunction haveSameKeys(left, right) {\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n for (const [index, key] of leftKeys.entries()){\n if (key !== rightKeys[index]) {\n return false;\n }\n }\n return true;\n}\nfunction mapUpdateSet(table, values) {\n const entries = Object.entries(values).filter(([, value])=>value !== void 0).map(([key, value])=>{\n if ((0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(value, _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.SQL)) {\n return [\n key,\n value\n ];\n } else {\n return [\n key,\n new _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.Param(value, table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Columns][key])\n ];\n }\n });\n if (entries.length === 0) {\n throw new Error(\"No values to set\");\n }\n return Object.fromEntries(entries);\n}\nfunction applyMixins(baseClass, extendedClasses) {\n for (const extendedClass of extendedClasses){\n for (const name of Object.getOwnPropertyNames(extendedClass.prototype)){\n if (name === \"constructor\") continue;\n Object.defineProperty(baseClass.prototype, name, Object.getOwnPropertyDescriptor(extendedClass.prototype, name) || /* @__PURE__ */ Object.create(null));\n }\n }\n}\nfunction getTableColumns(table) {\n return table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Columns];\n}\nfunction getTableLikeName(table) {\n return (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _subquery_js__WEBPACK_IMPORTED_MODULE_4__.Subquery) ? table[_subquery_js__WEBPACK_IMPORTED_MODULE_4__.SubqueryConfig].alias : (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.View) ? table[_view_common_js__WEBPACK_IMPORTED_MODULE_5__.ViewBaseConfig].name : (0,_entity_js__WEBPACK_IMPORTED_MODULE_0__.is)(table, _sql_sql_js__WEBPACK_IMPORTED_MODULE_2__.SQL) ? void 0 : table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.IsAlias] ? table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.Name] : table[_table_js__WEBPACK_IMPORTED_MODULE_3__.Table.Symbol.BaseName];\n}\n //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBcUM7QUFDSjtBQUNlO0FBQ1M7QUFDUjtBQUNDO0FBQ2xELFNBQVNVLGFBQWFDLE9BQU8sRUFBRUMsR0FBRyxFQUFFQyxtQkFBbUI7SUFDckQsTUFBTUMsYUFBYSxDQUFDO0lBQ3BCLE1BQU1DLFNBQVNKLFFBQVFLLE1BQU0sQ0FDM0IsQ0FBQ0MsU0FBUyxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRSxFQUFFQztRQUN6QixJQUFJQztRQUNKLElBQUlwQiw4Q0FBRUEsQ0FBQ2tCLE9BQU9uQiw4Q0FBTUEsR0FBRztZQUNyQnFCLFVBQVVGO1FBQ1osT0FBTyxJQUFJbEIsOENBQUVBLENBQUNrQixPQUFPaEIsNENBQUdBLEdBQUc7WUFDekJrQixVQUFVRixNQUFNRSxPQUFPO1FBQ3pCLE9BQU87WUFDTEEsVUFBVUYsTUFBTUcsR0FBRyxDQUFDRCxPQUFPO1FBQzdCO1FBQ0EsSUFBSUUsT0FBT047UUFDWCxLQUFLLE1BQU0sQ0FBQ08sZ0JBQWdCQyxVQUFVLElBQUlQLEtBQUtRLE9BQU8sR0FBSTtZQUN4RCxJQUFJRixpQkFBaUJOLEtBQUtTLE1BQU0sR0FBRyxHQUFHO2dCQUNwQyxJQUFJLENBQUVGLENBQUFBLGFBQWFGLElBQUcsR0FBSTtvQkFDeEJBLElBQUksQ0FBQ0UsVUFBVSxHQUFHLENBQUM7Z0JBQ3JCO2dCQUNBRixPQUFPQSxJQUFJLENBQUNFLFVBQVU7WUFDeEIsT0FBTztnQkFDTCxNQUFNRyxXQUFXaEIsR0FBRyxDQUFDUSxZQUFZO2dCQUNqQyxNQUFNUyxRQUFRTixJQUFJLENBQUNFLFVBQVUsR0FBR0csYUFBYSxPQUFPLE9BQU9QLFFBQVFTLGtCQUFrQixDQUFDRjtnQkFDdEYsSUFBSWYsdUJBQXVCWiw4Q0FBRUEsQ0FBQ2tCLE9BQU9uQiw4Q0FBTUEsS0FBS2tCLEtBQUtTLE1BQU0sS0FBSyxHQUFHO29CQUNq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eEIsNENBQUtBLENBQUNtQyxNQUFNLENBQUM2QixRQUFRLENBQUM7QUFDM047QUFTRSxDQUNGLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3V0aWxzLmpzP2M2OGYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vY29sdW1uLmpzXCI7XG5pbXBvcnQgeyBpcyB9IGZyb20gXCIuL2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgUGFyYW0sIFNRTCwgVmlldyB9IGZyb20gXCIuL3NxbC9zcWwuanNcIjtcbmltcG9ydCB7IFN1YnF1ZXJ5LCBTdWJxdWVyeUNvbmZpZyB9IGZyb20gXCIuL3N1YnF1ZXJ5LmpzXCI7XG5pbXBvcnQgeyBnZXRUYWJsZU5hbWUsIFRhYmxlIH0gZnJvbSBcIi4vdGFibGUuanNcIjtcbmltcG9ydCB7IFZpZXdCYXNlQ29uZmlnIH0gZnJvbSBcIi4vdmlldy1jb21tb24uanNcIjtcbmZ1bmN0aW9uIG1hcFJlc3VsdFJvdyhjb2x1bW5zLCByb3csIGpvaW5zTm90TnVsbGFibGVNYXApIHtcbiAgY29uc3QgbnVsbGlmeU1hcCA9IHt9O1xuICBjb25zdCByZXN1bHQgPSBjb2x1bW5zLnJlZHVjZShcbiAgICAocmVzdWx0MiwgeyBwYXRoLCBmaWVsZCB9LCBjb2x1bW5JbmRleCkgPT4ge1xuICAgICAgbGV0IGRlY29kZXI7XG4gICAgICBpZiAoaXMoZmllbGQsIENvbHVtbikpIHtcbiAgICAgICAgZGVjb2RlciA9IGZpZWxkO1xuICAgICAgfSBlbHNlIGlmIChpcyhmaWVsZCwgU1FMKSkge1xuICAgICAgICBkZWNvZGVyID0gZmllbGQuZGVjb2RlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlY29kZXIgPSBmaWVsZC5zcWwuZGVjb2RlcjtcbiAgICAgIH1cbiAgICAgIGxldCBub2RlID0gcmVzdWx0MjtcbiAgICAgIGZvciAoY29uc3QgW3BhdGhDaHVua0luZGV4LCBwYXRoQ2h1bmtdIG9mIHBhdGguZW50cmllcygpKSB7XG4gICAgICAgIGlmIChwYXRoQ2h1bmtJbmRleCA8IHBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIGlmICghKHBhdGhDaHVuayBpbiBub2RlKSkge1xuICAgICAgICAgICAgbm9kZVtwYXRoQ2h1bmtdID0ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIG5vZGUgPSBub2RlW3BhdGhDaHVua107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcmF3VmFsdWUgPSByb3dbY29sdW1uSW5kZXhdO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gbm9kZVtwYXRoQ2h1bmtdID0gcmF3VmFsdWUgPT09IG51bGwgPyBudWxsIDogZGVjb2Rlci5tYXBGcm9tRHJpdmVyVmFsdWUocmF3VmFsdWUpO1xuICAgICAgICAgIGlmIChqb2luc05vdE51bGxhYmxlTWFwICYmIGlzKGZpZWxkLCBDb2x1bW4pICYmIHBhdGgubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICBjb25zdCBvYmplY3ROYW1lID0gcGF0aFswXTtcbiAgICAgICAgICAgIGlmICghKG9iamVjdE5hbWUgaW4gbnVsbGlmeU1hcCkpIHtcbiAgICAgICAgICAgICAgbnVsbGlmeU1hcFtvYmplY3ROYW1lXSA9IHZhbHVlID09PSBudWxsID8gZ2V0VGFibGVOYW1lKGZpZWxkLnRhYmxlKSA6IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbnVsbGlmeU1hcFtvYmplY3ROYW1lXSA9PT0gXCJzdHJpbmdcIiAmJiBudWxsaWZ5TWFwW29iamVjdE5hbWVdICE9PSBnZXRUYWJsZU5hbWUoZmllbGQudGFibGUpKSB7XG4gICAgICAgICAgICAgIG51bGxpZnlNYXBbb2JqZWN0TmFtZV0gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQyO1xuICAgIH0sXG4gICAge31cbiAgKTtcbiAgaWYgKGpvaW5zTm90TnVsbGFibGVNYXAgJiYgT2JqZWN0LmtleXMobnVsbGlmeU1hcCkubGVuZ3RoID4gMCkge1xuICAgIGZvciAoY29uc3QgW29iamVjdE5hbWUsIHRhYmxlTmFtZV0gb2YgT2JqZWN0LmVudHJpZXMobnVsbGlmeU1hcCkpIHtcbiAgICAgIGlmICh0eXBlb2YgdGFibGVOYW1lID09PSBcInN0cmluZ1wiICYmICFqb2luc05vdE51bGxhYmxlTWFwW3RhYmxlTmFtZV0pIHtcbiAgICAgICAgcmVzdWx0W29iamVjdE5hbWVdID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG9yZGVyU2VsZWN0ZWRGaWVsZHMoZmllbGRzLCBwYXRoUHJlZml4KSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhmaWVsZHMpLnJlZHVjZSgocmVzdWx0LCBbbmFtZSwgZmllbGRdKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCBuZXdQYXRoID0gcGF0aFByZWZpeCA/IFsuLi5wYXRoUHJlZml4LCBuYW1lXSA6IFtuYW1lXTtcbiAgICBpZiAoaXMoZmllbGQsIENvbHVtbikgfHwgaXMoZmllbGQsIFNRTCkgfHwgaXMoZmllbGQsIFNRTC5BbGlhc2VkKSkge1xuICAgICAgcmVzdWx0LnB1c2goeyBwYXRoOiBuZXdQYXRoLCBmaWVsZCB9KTtcbiAgICB9IGVsc2UgaWYgKGlzKGZpZWxkLCBUYWJsZSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLm9yZGVyU2VsZWN0ZWRGaWVsZHMoZmllbGRbVGFibGUuU3ltYm9sLkNvbHVtbnNdLCBuZXdQYXRoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLm9yZGVyU2VsZWN0ZWRGaWVsZHMoZmllbGQsIG5ld1BhdGgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gaGF2ZVNhbWVLZXlzKGxlZnQsIHJpZ2h0KSB7XG4gIGNvbnN0IGxlZnRLZXlzID0gT2JqZWN0LmtleXMobGVmdCk7XG4gIGNvbnN0IHJpZ2h0S2V5cyA9IE9iamVjdC5rZXlzKHJpZ2h0KTtcbiAgaWYgKGxlZnRLZXlzLmxlbmd0aCAhPT0gcmlnaHRLZXlzLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmb3IgKGNvbnN0IFtpbmRleCwga2V5XSBvZiBsZWZ0S2V5cy5lbnRyaWVzKCkpIHtcbiAgICBpZiAoa2V5ICE9PSByaWdodEtleXNbaW5kZXhdKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gbWFwVXBkYXRlU2V0KHRhYmxlLCB2YWx1ZXMpIHtcbiAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHZhbHVlcykuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB2b2lkIDApLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKGlzKHZhbHVlLCBTUUwpKSB7XG4gICAgICByZXR1cm4gW2tleSwgdmFsdWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW2tleSwgbmV3IFBhcmFtKHZhbHVlLCB0YWJsZVtUYWJsZS5TeW1ib2wuQ29sdW1uc11ba2V5XSldO1xuICAgIH1cbiAgfSk7XG4gIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHZhbHVlcyB0byBzZXRcIik7XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhlbnRyaWVzKTtcbn1cbmZ1bmN0aW9uIGFwcGx5TWl4aW5zKGJhc2VDbGFzcywgZXh0ZW5kZWRDbGFzc2VzKSB7XG4gIGZvciAoY29uc3QgZXh0ZW5kZWRDbGFzcyBvZiBleHRlbmRlZENsYXNzZXMpIHtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZXh0ZW5kZWRDbGFzcy5wcm90b3R5cGUpKSB7XG4gICAgICBpZiAobmFtZSA9PT0gXCJjb25zdHJ1Y3RvclwiKVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgYmFzZUNsYXNzLnByb3RvdHlwZSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleHRlbmRlZENsYXNzLnByb3RvdHlwZSwgbmFtZSkgfHwgLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbClcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBnZXRUYWJsZUNvbHVtbnModGFibGUpIHtcbiAgcmV0dXJuIHRhYmxlW1RhYmxlLlN5bWJvbC5Db2x1bW5zXTtcbn1cbmZ1bmN0aW9uIGdldFRhYmxlTGlrZU5hbWUodGFibGUpIHtcbiAgcmV0dXJuIGlzKHRhYmxlLCBTdWJxdWVyeSkgPyB0YWJsZVtTdWJxdWVyeUNvbmZpZ10uYWxpYXMgOiBpcyh0YWJsZSwgVmlldykgPyB0YWJsZVtWaWV3QmFzZUNvbmZpZ10ubmFtZSA6IGlzKHRhYmxlLCBTUUwpID8gdm9pZCAwIDogdGFibGVbVGFibGUuU3ltYm9sLklzQWxpYXNdID8gdGFibGVbVGFibGUuU3ltYm9sLk5hbWVdIDogdGFibGVbVGFibGUuU3ltYm9sLkJhc2VOYW1lXTtcbn1cbmV4cG9ydCB7XG4gIGFwcGx5TWl4aW5zLFxuICBnZXRUYWJsZUNvbHVtbnMsXG4gIGdldFRhYmxlTGlrZU5hbWUsXG4gIGhhdmVTYW1lS2V5cyxcbiAgbWFwUmVzdWx0Um93LFxuICBtYXBVcGRhdGVTZXQsXG4gIG9yZGVyU2VsZWN0ZWRGaWVsZHNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOlsiQ29sdW1uIiwiaXMiLCJQYXJhbSIsIlNRTCIsIlZpZXciLCJTdWJxdWVyeSIsIlN1YnF1ZXJ5Q29uZmlnIiwiZ2V0VGFibGVOYW1lIiwiVGFibGUiLCJWaWV3QmFzZUNvbmZpZyIsIm1hcFJlc3VsdFJvdyIsImNvbHVtbnMiLCJyb3ciLCJqb2luc05vdE51bGxhYmxlTWFwIiwibnVsbGlmeU1hcCIsInJlc3VsdCIsInJlZHVjZSIsInJlc3VsdDIiLCJwYXRoIiwiZmllbGQiLCJjb2x1bW5JbmRleCIsImRlY29kZXIiLCJzcWwiLCJub2RlIiwicGF0aENodW5rSW5kZXgiLCJwYXRoQ2h1bmsiLCJlbnRyaWVzIiwibGVuZ3RoIiwicmF3VmFsdWUiLCJ2YWx1ZSIsIm1hcEZyb21Ecml2ZXJWYWx1ZSIsIm9iamVjdE5hbWUiLCJ0YWJsZSIsIk9iamVjdCIsImtleXMiLCJ0YWJsZU5hbWUiLCJvcmRlclNlbGVjdGVkRmllbGRzIiwiZmllbGRzIiwicGF0aFByZWZpeCIsIm5hbWUiLCJuZXdQYXRoIiwiQWxpYXNlZCIsInB1c2giLCJTeW1ib2wiLCJDb2x1bW5zIiwiaGF2ZVNhbWVLZXlzIiwibGVmdCIsInJpZ2h0IiwibGVmdEtleXMiLCJyaWdodEtleXMiLCJpbmRleCIsImtleSIsIm1hcFVwZGF0ZVNldCIsInZhbHVlcyIsImZpbHRlciIsIm1hcCIsIkVycm9yIiwiZnJvbUVudHJpZXMiLCJhcHBseU1peGlucyIsImJhc2VDbGFzcyIsImV4dGVuZGVkQ2xhc3NlcyIsImV4dGVuZGVkQ2xhc3MiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvdG90eXBlIiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJjcmVhdGUiLCJnZXRUYWJsZUNvbHVtbnMiLCJnZXRUYWJsZUxpa2VOYW1lIiwiYWxpYXMiLCJJc0FsaWFzIiwiTmFtZSIsIkJhc2VOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/utils.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/version.js":
-/*!*************************************************!*\
- !*** ../../node_modules/drizzle-orm/version.js ***!
- \*************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ compatibilityVersion: () => (/* binding */ compatibilityVersion),\n/* harmony export */ npmVersion: () => (/* binding */ version)\n/* harmony export */ });\n// package.json\nvar version = \"0.29.5\";\n// src/version.ts\nvar compatibilityVersion = 6;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3ZlcnNpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxlQUFlO0FBQ2YsSUFBSUEsVUFBVTtBQUVkLGlCQUFpQjtBQUNqQixJQUFJQyx1QkFBdUI7QUFJekIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL25vZGVfbW9kdWxlcy9kcml6emxlLW9ybS92ZXJzaW9uLmpzP2VmNWMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZS5qc29uXG52YXIgdmVyc2lvbiA9IFwiMC4yOS41XCI7XG5cbi8vIHNyYy92ZXJzaW9uLnRzXG52YXIgY29tcGF0aWJpbGl0eVZlcnNpb24gPSA2O1xuZXhwb3J0IHtcbiAgY29tcGF0aWJpbGl0eVZlcnNpb24sXG4gIHZlcnNpb24gYXMgbnBtVmVyc2lvblxufTtcbiJdLCJuYW1lcyI6WyJ2ZXJzaW9uIiwiY29tcGF0aWJpbGl0eVZlcnNpb24iLCJucG1WZXJzaW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/version.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/drizzle-orm/view-common.js":
-/*!*****************************************************!*\
- !*** ../../node_modules/drizzle-orm/view-common.js ***!
- \*****************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ViewBaseConfig: () => (/* binding */ ViewBaseConfig)\n/* harmony export */ });\nconst ViewBaseConfig = Symbol.for(\"drizzle:ViewBaseConfig\");\n //# sourceMappingURL=view-common.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3ZpZXctY29tbW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxpQkFBaUJDLE9BQU9DLEdBQUcsQ0FBQztBQUdoQyxDQUNGLHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL2RyaXp6bGUtb3JtL3ZpZXctY29tbW9uLmpzPzhiYmYiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVmlld0Jhc2VDb25maWcgPSBTeW1ib2wuZm9yKFwiZHJpenpsZTpWaWV3QmFzZUNvbmZpZ1wiKTtcbmV4cG9ydCB7XG4gIFZpZXdCYXNlQ29uZmlnXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmlldy1jb21tb24uanMubWFwIl0sIm5hbWVzIjpbIlZpZXdCYXNlQ29uZmlnIiwiU3ltYm9sIiwiZm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/drizzle-orm/view-common.js\n");
-
-/***/ }),
-
-/***/ "(rsc)/../../node_modules/tailwind-merge/dist/bundle-mjs.mjs":
-/*!*************************************************************!*\
- !*** ../../node_modules/tailwind-merge/dist/bundle-mjs.mjs ***!
- \*************************************************************/
-/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createTailwindMerge: () => (/* binding */ createTailwindMerge),\n/* harmony export */ extendTailwindMerge: () => (/* binding */ extendTailwindMerge),\n/* harmony export */ fromTheme: () => (/* binding */ fromTheme),\n/* harmony export */ getDefaultConfig: () => (/* binding */ getDefaultConfig),\n/* harmony export */ mergeConfigs: () => (/* binding */ mergeConfigs),\n/* harmony export */ twJoin: () => (/* binding */ twJoin),\n/* harmony export */ twMerge: () => (/* binding */ twMerge),\n/* harmony export */ validators: () => (/* binding */ validators)\n/* harmony export */ });\nconst CLASS_PART_SEPARATOR = \"-\";\nfunction createClassUtils(config) {\n const classMap = createClassMap(config);\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config;\n function getClassGroupId(className) {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === \"\" && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n }\n function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [\n ...conflicts,\n ...conflictingClassGroupModifiers[classGroupId]\n ];\n }\n return conflicts;\n }\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n}\nfunction getGroupRecursive(classParts, classPartObject) {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({ validator })=>validator(classRest))?.classGroupId;\n}\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nfunction getGroupIdForArbitraryProperty(className) {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(\":\"));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return \"arbitrary..\" + property;\n }\n }\n}\n/**\n * Exported for testing only\n */ function createClassMap(config) {\n const { theme, prefix } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup])=>{\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n}\nfunction processClassesRecursively(classGroup, classPartObject, classGroupId, theme) {\n classGroup.forEach((classDefinition)=>{\n if (typeof classDefinition === \"string\") {\n const classPartObjectToEdit = classDefinition === \"\" ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === \"function\") {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup])=>{\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n}\nfunction getPart(classPartObject, path) {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach((pathPart)=>{\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n}\nfunction isThemeGetter(func) {\n return func.isThemeGetter;\n}\nfunction getPrefixedClassGroupEntries(classGroupEntries, prefix) {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup])=>{\n const prefixedClassGroup = classGroup.map((classDefinition)=>{\n if (typeof classDefinition === \"string\") {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === \"object\") {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value])=>[\n prefix + key,\n value\n ]));\n }\n return classDefinition;\n });\n return [\n classGroupId,\n prefixedClassGroup\n ];\n });\n}\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nfunction createLruCache(maxCacheSize) {\n if (maxCacheSize < 1) {\n return {\n get: ()=>undefined,\n set: ()=>{}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n function update(key, value) {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n }\n return {\n get (key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set (key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n}\nconst IMPORTANT_MODIFIER = \"!\";\nfunction createSplitModifiers(config) {\n const separator = config.separator;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // splitModifiers inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n return function splitModifiers(className) {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for(let index = 0; index < className.length; index++){\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === \"/\") {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === \"[\") {\n bracketDepth++;\n } else if (currentCharacter === \"]\") {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n}\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */ function sortModifiers(modifiers) {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach((modifier)=>{\n const isArbitraryVariant = modifier[0] === \"[\";\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n}\nfunction createConfigUtils(config) {\n return {\n cache: createLruCache(config.cacheSize),\n splitModifiers: createSplitModifiers(config),\n ...createClassUtils(config)\n };\n}\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nfunction mergeClassList(classList, configUtils) {\n const { splitModifiers, getClassGroupId, getConflictingClassGroupIds } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */ const classGroupsInConflict = new Set();\n return classList.trim().split(SPLIT_CLASSES_REGEX).map((originalClassName)=>{\n const { modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition } = splitModifiers(originalClassName);\n let classGroupId = getClassGroupId(maybePostfixModifierPosition ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n if (!classGroupId) {\n if (!maybePostfixModifierPosition) {\n return {\n isTailwindClass: false,\n originalClassName\n };\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n return {\n isTailwindClass: false,\n originalClassName\n };\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(\":\");\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n return {\n isTailwindClass: true,\n modifierId,\n classGroupId,\n originalClassName,\n hasPostfixModifier\n };\n }).reverse()// Last class in conflict wins, so we need to filter conflicting classes in reverse order.\n .filter((parsed)=>{\n if (!parsed.isTailwindClass) {\n return true;\n }\n const { modifierId, classGroupId, hasPostfixModifier } = parsed;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.has(classId)) {\n return false;\n }\n classGroupsInConflict.add(classId);\n getConflictingClassGroupIds(classGroupId, hasPostfixModifier).forEach((group)=>classGroupsInConflict.add(modifierId + group));\n return true;\n }).reverse().map((parsed)=>parsed.originalClassName).join(\" \");\n}\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <[email protected]> (lukeed.com)\n */ function twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = \"\";\n while(index < arguments.length){\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += \" \");\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction toValue(mix) {\n if (typeof mix === \"string\") {\n return mix;\n }\n let resolvedValue;\n let string = \"\";\n for(let k = 0; k < mix.length; k++){\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += \" \");\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent)=>createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nfunction fromTheme(key) {\n const themeGetter = (theme)=>theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n}\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/ new Set([\n \"px\",\n \"full\",\n \"screen\"\n]);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nfunction isLength(value) {\n return isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\n}\nfunction isArbitraryLength(value) {\n return getIsArbitraryValue(value, \"length\", isLengthOnly);\n}\nfunction isNumber(value) {\n return Boolean(value) && !Number.isNaN(Number(value));\n}\nfunction isArbitraryNumber(value) {\n return getIsArbitraryValue(value, \"number\", isNumber);\n}\nfunction isInteger(value) {\n return Boolean(value) && Number.isInteger(Number(value));\n}\nfunction isPercent(value) {\n return value.endsWith(\"%\") && isNumber(value.slice(0, -1));\n}\nfunction isArbitraryValue(value) {\n return arbitraryValueRegex.test(value);\n}\nfunction isTshirtSize(value) {\n return tshirtUnitRegex.test(value);\n}\nconst sizeLabels = /*#__PURE__*/ new Set([\n \"length\",\n \"size\",\n \"percentage\"\n]);\nfunction isArbitrarySize(value) {\n return getIsArbitraryValue(value, sizeLabels, isNever);\n}\nfunction isArbitraryPosition(value) {\n return getIsArbitraryValue(value, \"position\", isNever);\n}\nconst imageLabels = /*#__PURE__*/ new Set([\n \"image\",\n \"url\"\n]);\nfunction isArbitraryImage(value) {\n return getIsArbitraryValue(value, imageLabels, isImage);\n}\nfunction isArbitraryShadow(value) {\n return getIsArbitraryValue(value, \"\", isShadow);\n}\nfunction isAny() {\n return true;\n}\nfunction getIsArbitraryValue(value, label, testValue) {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === \"string\" ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n}\nfunction isLengthOnly(value) {\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n return lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\n}\nfunction isNever() {\n return false;\n}\nfunction isShadow(value) {\n return shadowRegex.test(value);\n}\nfunction isImage(value) {\n return imageRegex.test(value);\n}\nconst validators = /*#__PURE__*/ Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: \"Module\"\n});\nfunction getDefaultConfig() {\n const colors = fromTheme(\"colors\");\n const spacing = fromTheme(\"spacing\");\n const blur = fromTheme(\"blur\");\n const brightness = fromTheme(\"brightness\");\n const borderColor = fromTheme(\"borderColor\");\n const borderRadius = fromTheme(\"borderRadius\");\n const borderSpacing = fromTheme(\"borderSpacing\");\n const borderWidth = fromTheme(\"borderWidth\");\n const contrast = fromTheme(\"contrast\");\n const grayscale = fromTheme(\"grayscale\");\n const hueRotate = fromTheme(\"hueRotate\");\n const invert = fromTheme(\"invert\");\n const gap = fromTheme(\"gap\");\n const gradientColorStops = fromTheme(\"gradientColorStops\");\n const gradientColorStopPositions = fromTheme(\"gradientColorStopPositions\");\n const inset = fromTheme(\"inset\");\n const margin = fromTheme(\"margin\");\n const opacity = fromTheme(\"opacity\");\n const padding = fromTheme(\"padding\");\n const saturate = fromTheme(\"saturate\");\n const scale = fromTheme(\"scale\");\n const sepia = fromTheme(\"sepia\");\n const skew = fromTheme(\"skew\");\n const space = fromTheme(\"space\");\n const translate = fromTheme(\"translate\");\n const getOverscroll = ()=>[\n \"auto\",\n \"contain\",\n \"none\"\n ];\n const getOverflow = ()=>[\n \"auto\",\n \"hidden\",\n \"clip\",\n \"visible\",\n \"scroll\"\n ];\n const getSpacingWithAutoAndArbitrary = ()=>[\n \"auto\",\n isArbitraryValue,\n spacing\n ];\n const getSpacingWithArbitrary = ()=>[\n isArbitraryValue,\n spacing\n ];\n const getLengthWithEmptyAndArbitrary = ()=>[\n \"\",\n isLength,\n isArbitraryLength\n ];\n const getNumberWithAutoAndArbitrary = ()=>[\n \"auto\",\n isNumber,\n isArbitraryValue\n ];\n const getPositions = ()=>[\n \"bottom\",\n \"center\",\n \"left\",\n \"left-bottom\",\n \"left-top\",\n \"right\",\n \"right-bottom\",\n \"right-top\",\n \"top\"\n ];\n const getLineStyles = ()=>[\n \"solid\",\n \"dashed\",\n \"dotted\",\n \"double\",\n \"none\"\n ];\n const getBlendModes = ()=>[\n \"normal\",\n \"multiply\",\n \"screen\",\n \"overlay\",\n \"darken\",\n \"lighten\",\n \"color-dodge\",\n \"color-burn\",\n \"hard-light\",\n \"soft-light\",\n \"difference\",\n \"exclusion\",\n \"hue\",\n \"saturation\",\n \"color\",\n \"luminosity\",\n \"plus-lighter\"\n ];\n const getAlign = ()=>[\n \"start\",\n \"end\",\n \"center\",\n \"between\",\n \"around\",\n \"evenly\",\n \"stretch\"\n ];\n const getZeroAndEmpty = ()=>[\n \"\",\n \"0\",\n isArbitraryValue\n ];\n const getBreaks = ()=>[\n \"auto\",\n \"avoid\",\n \"all\",\n \"avoid-page\",\n \"page\",\n \"left\",\n \"right\",\n \"column\"\n ];\n const getNumber = ()=>[\n isNumber,\n isArbitraryNumber\n ];\n const getNumberAndArbitrary = ()=>[\n isNumber,\n isArbitraryValue\n ];\n return {\n cacheSize: 500,\n separator: \":\",\n theme: {\n colors: [\n isAny\n ],\n spacing: [\n isLength,\n isArbitraryLength\n ],\n blur: [\n \"none\",\n \"\",\n isTshirtSize,\n isArbitraryValue\n ],\n brightness: getNumber(),\n borderColor: [\n colors\n ],\n borderRadius: [\n \"none\",\n \"\",\n \"full\",\n isTshirtSize,\n isArbitraryValue\n ],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumber(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [\n colors\n ],\n gradientColorStopPositions: [\n isPercent,\n isArbitraryLength\n ],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumber(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumber(),\n scale: getNumber(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */ aspect: [\n {\n aspect: [\n \"auto\",\n \"square\",\n \"video\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */ container: [\n \"container\"\n ],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */ columns: [\n {\n columns: [\n isTshirtSize\n ]\n }\n ],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */ \"break-after\": [\n {\n \"break-after\": getBreaks()\n }\n ],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */ \"break-before\": [\n {\n \"break-before\": getBreaks()\n }\n ],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */ \"break-inside\": [\n {\n \"break-inside\": [\n \"auto\",\n \"avoid\",\n \"avoid-page\",\n \"avoid-column\"\n ]\n }\n ],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */ \"box-decoration\": [\n {\n \"box-decoration\": [\n \"slice\",\n \"clone\"\n ]\n }\n ],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */ box: [\n {\n box: [\n \"border\",\n \"content\"\n ]\n }\n ],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */ display: [\n \"block\",\n \"inline-block\",\n \"inline\",\n \"flex\",\n \"inline-flex\",\n \"table\",\n \"inline-table\",\n \"table-caption\",\n \"table-cell\",\n \"table-column\",\n \"table-column-group\",\n \"table-footer-group\",\n \"table-header-group\",\n \"table-row-group\",\n \"table-row\",\n \"flow-root\",\n \"grid\",\n \"inline-grid\",\n \"contents\",\n \"list-item\",\n \"hidden\"\n ],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */ float: [\n {\n float: [\n \"right\",\n \"left\",\n \"none\",\n \"start\",\n \"end\"\n ]\n }\n ],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */ clear: [\n {\n clear: [\n \"left\",\n \"right\",\n \"both\",\n \"none\",\n \"start\",\n \"end\"\n ]\n }\n ],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */ isolation: [\n \"isolate\",\n \"isolation-auto\"\n ],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */ \"object-fit\": [\n {\n object: [\n \"contain\",\n \"cover\",\n \"fill\",\n \"none\",\n \"scale-down\"\n ]\n }\n ],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */ \"object-position\": [\n {\n object: [\n ...getPositions(),\n isArbitraryValue\n ]\n }\n ],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */ overflow: [\n {\n overflow: getOverflow()\n }\n ],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */ \"overflow-x\": [\n {\n \"overflow-x\": getOverflow()\n }\n ],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */ \"overflow-y\": [\n {\n \"overflow-y\": getOverflow()\n }\n ],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */ overscroll: [\n {\n overscroll: getOverscroll()\n }\n ],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */ \"overscroll-x\": [\n {\n \"overscroll-x\": getOverscroll()\n }\n ],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */ \"overscroll-y\": [\n {\n \"overscroll-y\": getOverscroll()\n }\n ],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */ position: [\n \"static\",\n \"fixed\",\n \"absolute\",\n \"relative\",\n \"sticky\"\n ],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ inset: [\n {\n inset: [\n inset\n ]\n }\n ],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ \"inset-x\": [\n {\n \"inset-x\": [\n inset\n ]\n }\n ],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ \"inset-y\": [\n {\n \"inset-y\": [\n inset\n ]\n }\n ],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ start: [\n {\n start: [\n inset\n ]\n }\n ],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ end: [\n {\n end: [\n inset\n ]\n }\n ],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ top: [\n {\n top: [\n inset\n ]\n }\n ],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ right: [\n {\n right: [\n inset\n ]\n }\n ],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ bottom: [\n {\n bottom: [\n inset\n ]\n }\n ],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */ left: [\n {\n left: [\n inset\n ]\n }\n ],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */ visibility: [\n \"visible\",\n \"invisible\",\n \"collapse\"\n ],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */ z: [\n {\n z: [\n \"auto\",\n isInteger,\n isArbitraryValue\n ]\n }\n ],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */ basis: [\n {\n basis: getSpacingWithAutoAndArbitrary()\n }\n ],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */ \"flex-direction\": [\n {\n flex: [\n \"row\",\n \"row-reverse\",\n \"col\",\n \"col-reverse\"\n ]\n }\n ],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */ \"flex-wrap\": [\n {\n flex: [\n \"wrap\",\n \"wrap-reverse\",\n \"nowrap\"\n ]\n }\n ],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */ flex: [\n {\n flex: [\n \"1\",\n \"auto\",\n \"initial\",\n \"none\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */ grow: [\n {\n grow: getZeroAndEmpty()\n }\n ],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */ shrink: [\n {\n shrink: getZeroAndEmpty()\n }\n ],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */ order: [\n {\n order: [\n \"first\",\n \"last\",\n \"none\",\n isInteger,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */ \"grid-cols\": [\n {\n \"grid-cols\": [\n isAny\n ]\n }\n ],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */ \"col-start-end\": [\n {\n col: [\n \"auto\",\n {\n span: [\n \"full\",\n isInteger,\n isArbitraryValue\n ]\n },\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */ \"col-start\": [\n {\n \"col-start\": getNumberWithAutoAndArbitrary()\n }\n ],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */ \"col-end\": [\n {\n \"col-end\": getNumberWithAutoAndArbitrary()\n }\n ],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */ \"grid-rows\": [\n {\n \"grid-rows\": [\n isAny\n ]\n }\n ],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */ \"row-start-end\": [\n {\n row: [\n \"auto\",\n {\n span: [\n isInteger,\n isArbitraryValue\n ]\n },\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */ \"row-start\": [\n {\n \"row-start\": getNumberWithAutoAndArbitrary()\n }\n ],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */ \"row-end\": [\n {\n \"row-end\": getNumberWithAutoAndArbitrary()\n }\n ],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */ \"grid-flow\": [\n {\n \"grid-flow\": [\n \"row\",\n \"col\",\n \"dense\",\n \"row-dense\",\n \"col-dense\"\n ]\n }\n ],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */ \"auto-cols\": [\n {\n \"auto-cols\": [\n \"auto\",\n \"min\",\n \"max\",\n \"fr\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */ \"auto-rows\": [\n {\n \"auto-rows\": [\n \"auto\",\n \"min\",\n \"max\",\n \"fr\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */ gap: [\n {\n gap: [\n gap\n ]\n }\n ],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */ \"gap-x\": [\n {\n \"gap-x\": [\n gap\n ]\n }\n ],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */ \"gap-y\": [\n {\n \"gap-y\": [\n gap\n ]\n }\n ],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */ \"justify-content\": [\n {\n justify: [\n \"normal\",\n ...getAlign()\n ]\n }\n ],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */ \"justify-items\": [\n {\n \"justify-items\": [\n \"start\",\n \"end\",\n \"center\",\n \"stretch\"\n ]\n }\n ],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */ \"justify-self\": [\n {\n \"justify-self\": [\n \"auto\",\n \"start\",\n \"end\",\n \"center\",\n \"stretch\"\n ]\n }\n ],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */ \"align-content\": [\n {\n content: [\n \"normal\",\n ...getAlign(),\n \"baseline\"\n ]\n }\n ],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */ \"align-items\": [\n {\n items: [\n \"start\",\n \"end\",\n \"center\",\n \"baseline\",\n \"stretch\"\n ]\n }\n ],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */ \"align-self\": [\n {\n self: [\n \"auto\",\n \"start\",\n \"end\",\n \"center\",\n \"stretch\",\n \"baseline\"\n ]\n }\n ],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */ \"place-content\": [\n {\n \"place-content\": [\n ...getAlign(),\n \"baseline\"\n ]\n }\n ],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */ \"place-items\": [\n {\n \"place-items\": [\n \"start\",\n \"end\",\n \"center\",\n \"baseline\",\n \"stretch\"\n ]\n }\n ],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */ \"place-self\": [\n {\n \"place-self\": [\n \"auto\",\n \"start\",\n \"end\",\n \"center\",\n \"stretch\"\n ]\n }\n ],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */ p: [\n {\n p: [\n padding\n ]\n }\n ],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */ px: [\n {\n px: [\n padding\n ]\n }\n ],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */ py: [\n {\n py: [\n padding\n ]\n }\n ],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */ ps: [\n {\n ps: [\n padding\n ]\n }\n ],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */ pe: [\n {\n pe: [\n padding\n ]\n }\n ],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */ pt: [\n {\n pt: [\n padding\n ]\n }\n ],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */ pr: [\n {\n pr: [\n padding\n ]\n }\n ],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */ pb: [\n {\n pb: [\n padding\n ]\n }\n ],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */ pl: [\n {\n pl: [\n padding\n ]\n }\n ],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */ m: [\n {\n m: [\n margin\n ]\n }\n ],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */ mx: [\n {\n mx: [\n margin\n ]\n }\n ],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */ my: [\n {\n my: [\n margin\n ]\n }\n ],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */ ms: [\n {\n ms: [\n margin\n ]\n }\n ],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */ me: [\n {\n me: [\n margin\n ]\n }\n ],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */ mt: [\n {\n mt: [\n margin\n ]\n }\n ],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */ mr: [\n {\n mr: [\n margin\n ]\n }\n ],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */ mb: [\n {\n mb: [\n margin\n ]\n }\n ],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */ ml: [\n {\n ml: [\n margin\n ]\n }\n ],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */ \"space-x\": [\n {\n \"space-x\": [\n space\n ]\n }\n ],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */ \"space-x-reverse\": [\n \"space-x-reverse\"\n ],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */ \"space-y\": [\n {\n \"space-y\": [\n space\n ]\n }\n ],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */ \"space-y-reverse\": [\n \"space-y-reverse\"\n ],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */ w: [\n {\n w: [\n \"auto\",\n \"min\",\n \"max\",\n \"fit\",\n \"svw\",\n \"lvw\",\n \"dvw\",\n isArbitraryValue,\n spacing\n ]\n }\n ],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */ \"min-w\": [\n {\n \"min-w\": [\n isArbitraryValue,\n spacing,\n \"min\",\n \"max\",\n \"fit\"\n ]\n }\n ],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */ \"max-w\": [\n {\n \"max-w\": [\n isArbitraryValue,\n spacing,\n \"none\",\n \"full\",\n \"min\",\n \"max\",\n \"fit\",\n \"prose\",\n {\n screen: [\n isTshirtSize\n ]\n },\n isTshirtSize\n ]\n }\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */ h: [\n {\n h: [\n isArbitraryValue,\n spacing,\n \"auto\",\n \"min\",\n \"max\",\n \"fit\",\n \"svh\",\n \"lvh\",\n \"dvh\"\n ]\n }\n ],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */ \"min-h\": [\n {\n \"min-h\": [\n isArbitraryValue,\n spacing,\n \"min\",\n \"max\",\n \"fit\",\n \"svh\",\n \"lvh\",\n \"dvh\"\n ]\n }\n ],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */ \"max-h\": [\n {\n \"max-h\": [\n isArbitraryValue,\n spacing,\n \"min\",\n \"max\",\n \"fit\",\n \"svh\",\n \"lvh\",\n \"dvh\"\n ]\n }\n ],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */ size: [\n {\n size: [\n isArbitraryValue,\n spacing,\n \"auto\",\n \"min\",\n \"max\",\n \"fit\"\n ]\n }\n ],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */ \"font-size\": [\n {\n text: [\n \"base\",\n isTshirtSize,\n isArbitraryLength\n ]\n }\n ],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */ \"font-smoothing\": [\n \"antialiased\",\n \"subpixel-antialiased\"\n ],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */ \"font-style\": [\n \"italic\",\n \"not-italic\"\n ],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */ \"font-weight\": [\n {\n font: [\n \"thin\",\n \"extralight\",\n \"light\",\n \"normal\",\n \"medium\",\n \"semibold\",\n \"bold\",\n \"extrabold\",\n \"black\",\n isArbitraryNumber\n ]\n }\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */ \"font-family\": [\n {\n font: [\n isAny\n ]\n }\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-normal\": [\n \"normal-nums\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-ordinal\": [\n \"ordinal\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-slashed-zero\": [\n \"slashed-zero\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-figure\": [\n \"lining-nums\",\n \"oldstyle-nums\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-spacing\": [\n \"proportional-nums\",\n \"tabular-nums\"\n ],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */ \"fvn-fraction\": [\n \"diagonal-fractions\",\n \"stacked-fractons\"\n ],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */ tracking: [\n {\n tracking: [\n \"tighter\",\n \"tight\",\n \"normal\",\n \"wide\",\n \"wider\",\n \"widest\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */ \"line-clamp\": [\n {\n \"line-clamp\": [\n \"none\",\n isNumber,\n isArbitraryNumber\n ]\n }\n ],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */ leading: [\n {\n leading: [\n \"none\",\n \"tight\",\n \"snug\",\n \"normal\",\n \"relaxed\",\n \"loose\",\n isLength,\n isArbitraryValue\n ]\n }\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */ \"list-image\": [\n {\n \"list-image\": [\n \"none\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */ \"list-style-type\": [\n {\n list: [\n \"none\",\n \"disc\",\n \"decimal\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */ \"list-style-position\": [\n {\n list: [\n \"inside\",\n \"outside\"\n ]\n }\n ],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */ \"placeholder-color\": [\n {\n placeholder: [\n colors\n ]\n }\n ],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */ \"placeholder-opacity\": [\n {\n \"placeholder-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */ \"text-alignment\": [\n {\n text: [\n \"left\",\n \"center\",\n \"right\",\n \"justify\",\n \"start\",\n \"end\"\n ]\n }\n ],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */ \"text-color\": [\n {\n text: [\n colors\n ]\n }\n ],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */ \"text-opacity\": [\n {\n \"text-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */ \"text-decoration\": [\n \"underline\",\n \"overline\",\n \"line-through\",\n \"no-underline\"\n ],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */ \"text-decoration-style\": [\n {\n decoration: [\n ...getLineStyles(),\n \"wavy\"\n ]\n }\n ],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */ \"text-decoration-thickness\": [\n {\n decoration: [\n \"auto\",\n \"from-font\",\n isLength,\n isArbitraryLength\n ]\n }\n ],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */ \"underline-offset\": [\n {\n \"underline-offset\": [\n \"auto\",\n isLength,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */ \"text-decoration-color\": [\n {\n decoration: [\n colors\n ]\n }\n ],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */ \"text-transform\": [\n \"uppercase\",\n \"lowercase\",\n \"capitalize\",\n \"normal-case\"\n ],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */ \"text-overflow\": [\n \"truncate\",\n \"text-ellipsis\",\n \"text-clip\"\n ],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */ \"text-wrap\": [\n {\n text: [\n \"wrap\",\n \"nowrap\",\n \"balance\",\n \"pretty\"\n ]\n }\n ],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */ indent: [\n {\n indent: getSpacingWithArbitrary()\n }\n ],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */ \"vertical-align\": [\n {\n align: [\n \"baseline\",\n \"top\",\n \"middle\",\n \"bottom\",\n \"text-top\",\n \"text-bottom\",\n \"sub\",\n \"super\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */ whitespace: [\n {\n whitespace: [\n \"normal\",\n \"nowrap\",\n \"pre\",\n \"pre-line\",\n \"pre-wrap\",\n \"break-spaces\"\n ]\n }\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */ break: [\n {\n break: [\n \"normal\",\n \"words\",\n \"all\",\n \"keep\"\n ]\n }\n ],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */ hyphens: [\n {\n hyphens: [\n \"none\",\n \"manual\",\n \"auto\"\n ]\n }\n ],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */ content: [\n {\n content: [\n \"none\",\n isArbitraryValue\n ]\n }\n ],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */ \"bg-attachment\": [\n {\n bg: [\n \"fixed\",\n \"local\",\n \"scroll\"\n ]\n }\n ],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */ \"bg-clip\": [\n {\n \"bg-clip\": [\n \"border\",\n \"padding\",\n \"content\",\n \"text\"\n ]\n }\n ],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */ \"bg-opacity\": [\n {\n \"bg-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */ \"bg-origin\": [\n {\n \"bg-origin\": [\n \"border\",\n \"padding\",\n \"content\"\n ]\n }\n ],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */ \"bg-position\": [\n {\n bg: [\n ...getPositions(),\n isArbitraryPosition\n ]\n }\n ],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */ \"bg-repeat\": [\n {\n bg: [\n \"no-repeat\",\n {\n repeat: [\n \"\",\n \"x\",\n \"y\",\n \"round\",\n \"space\"\n ]\n }\n ]\n }\n ],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */ \"bg-size\": [\n {\n bg: [\n \"auto\",\n \"cover\",\n \"contain\",\n isArbitrarySize\n ]\n }\n ],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */ \"bg-image\": [\n {\n bg: [\n \"none\",\n {\n \"gradient-to\": [\n \"t\",\n \"tr\",\n \"r\",\n \"br\",\n \"b\",\n \"bl\",\n \"l\",\n \"tl\"\n ]\n },\n isArbitraryImage\n ]\n }\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */ \"bg-color\": [\n {\n bg: [\n colors\n ]\n }\n ],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-from-pos\": [\n {\n from: [\n gradientColorStopPositions\n ]\n }\n ],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-via-pos\": [\n {\n via: [\n gradientColorStopPositions\n ]\n }\n ],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-to-pos\": [\n {\n to: [\n gradientColorStopPositions\n ]\n }\n ],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-from\": [\n {\n from: [\n gradientColorStops\n ]\n }\n ],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-via\": [\n {\n via: [\n gradientColorStops\n ]\n }\n ],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */ \"gradient-to\": [\n {\n to: [\n gradientColorStops\n ]\n }\n ],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */ rounded: [\n {\n rounded: [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-s\": [\n {\n \"rounded-s\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-e\": [\n {\n \"rounded-e\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-t\": [\n {\n \"rounded-t\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-r\": [\n {\n \"rounded-r\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-b\": [\n {\n \"rounded-b\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-l\": [\n {\n \"rounded-l\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-ss\": [\n {\n \"rounded-ss\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-se\": [\n {\n \"rounded-se\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-ee\": [\n {\n \"rounded-ee\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-es\": [\n {\n \"rounded-es\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-tl\": [\n {\n \"rounded-tl\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-tr\": [\n {\n \"rounded-tr\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-br\": [\n {\n \"rounded-br\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */ \"rounded-bl\": [\n {\n \"rounded-bl\": [\n borderRadius\n ]\n }\n ],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w\": [\n {\n border: [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-x\": [\n {\n \"border-x\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-y\": [\n {\n \"border-y\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-s\": [\n {\n \"border-s\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-e\": [\n {\n \"border-e\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-t\": [\n {\n \"border-t\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-r\": [\n {\n \"border-r\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-b\": [\n {\n \"border-b\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */ \"border-w-l\": [\n {\n \"border-l\": [\n borderWidth\n ]\n }\n ],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */ \"border-opacity\": [\n {\n \"border-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */ \"border-style\": [\n {\n border: [\n ...getLineStyles(),\n \"hidden\"\n ]\n }\n ],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */ \"divide-x\": [\n {\n \"divide-x\": [\n borderWidth\n ]\n }\n ],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */ \"divide-x-reverse\": [\n \"divide-x-reverse\"\n ],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */ \"divide-y\": [\n {\n \"divide-y\": [\n borderWidth\n ]\n }\n ],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */ \"divide-y-reverse\": [\n \"divide-y-reverse\"\n ],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */ \"divide-opacity\": [\n {\n \"divide-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */ \"divide-style\": [\n {\n divide: getLineStyles()\n }\n ],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color\": [\n {\n border: [\n borderColor\n ]\n }\n ],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-x\": [\n {\n \"border-x\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-y\": [\n {\n \"border-y\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-t\": [\n {\n \"border-t\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-r\": [\n {\n \"border-r\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-b\": [\n {\n \"border-b\": [\n borderColor\n ]\n }\n ],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */ \"border-color-l\": [\n {\n \"border-l\": [\n borderColor\n ]\n }\n ],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */ \"divide-color\": [\n {\n divide: [\n borderColor\n ]\n }\n ],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */ \"outline-style\": [\n {\n outline: [\n \"\",\n ...getLineStyles()\n ]\n }\n ],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */ \"outline-offset\": [\n {\n \"outline-offset\": [\n isLength,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */ \"outline-w\": [\n {\n outline: [\n isLength,\n isArbitraryLength\n ]\n }\n ],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */ \"outline-color\": [\n {\n outline: [\n colors\n ]\n }\n ],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */ \"ring-w\": [\n {\n ring: getLengthWithEmptyAndArbitrary()\n }\n ],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */ \"ring-w-inset\": [\n \"ring-inset\"\n ],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */ \"ring-color\": [\n {\n ring: [\n colors\n ]\n }\n ],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */ \"ring-opacity\": [\n {\n \"ring-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */ \"ring-offset-w\": [\n {\n \"ring-offset\": [\n isLength,\n isArbitraryLength\n ]\n }\n ],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */ \"ring-offset-color\": [\n {\n \"ring-offset\": [\n colors\n ]\n }\n ],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */ shadow: [\n {\n shadow: [\n \"\",\n \"inner\",\n \"none\",\n isTshirtSize,\n isArbitraryShadow\n ]\n }\n ],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */ \"shadow-color\": [\n {\n shadow: [\n isAny\n ]\n }\n ],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */ opacity: [\n {\n opacity: [\n opacity\n ]\n }\n ],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */ \"mix-blend\": [\n {\n \"mix-blend\": getBlendModes()\n }\n ],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */ \"bg-blend\": [\n {\n \"bg-blend\": getBlendModes()\n }\n ],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */ filter: [\n {\n filter: [\n \"\",\n \"none\"\n ]\n }\n ],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */ blur: [\n {\n blur: [\n blur\n ]\n }\n ],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */ brightness: [\n {\n brightness: [\n brightness\n ]\n }\n ],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */ contrast: [\n {\n contrast: [\n contrast\n ]\n }\n ],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */ \"drop-shadow\": [\n {\n \"drop-shadow\": [\n \"\",\n \"none\",\n isTshirtSize,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */ grayscale: [\n {\n grayscale: [\n grayscale\n ]\n }\n ],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */ \"hue-rotate\": [\n {\n \"hue-rotate\": [\n hueRotate\n ]\n }\n ],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */ invert: [\n {\n invert: [\n invert\n ]\n }\n ],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */ saturate: [\n {\n saturate: [\n saturate\n ]\n }\n ],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */ sepia: [\n {\n sepia: [\n sepia\n ]\n }\n ],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */ \"backdrop-filter\": [\n {\n \"backdrop-filter\": [\n \"\",\n \"none\"\n ]\n }\n ],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */ \"backdrop-blur\": [\n {\n \"backdrop-blur\": [\n blur\n ]\n }\n ],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */ \"backdrop-brightness\": [\n {\n \"backdrop-brightness\": [\n brightness\n ]\n }\n ],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */ \"backdrop-contrast\": [\n {\n \"backdrop-contrast\": [\n contrast\n ]\n }\n ],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */ \"backdrop-grayscale\": [\n {\n \"backdrop-grayscale\": [\n grayscale\n ]\n }\n ],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */ \"backdrop-hue-rotate\": [\n {\n \"backdrop-hue-rotate\": [\n hueRotate\n ]\n }\n ],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */ \"backdrop-invert\": [\n {\n \"backdrop-invert\": [\n invert\n ]\n }\n ],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */ \"backdrop-opacity\": [\n {\n \"backdrop-opacity\": [\n opacity\n ]\n }\n ],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */ \"backdrop-saturate\": [\n {\n \"backdrop-saturate\": [\n saturate\n ]\n }\n ],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */ \"backdrop-sepia\": [\n {\n \"backdrop-sepia\": [\n sepia\n ]\n }\n ],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */ \"border-collapse\": [\n {\n border: [\n \"collapse\",\n \"separate\"\n ]\n }\n ],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */ \"border-spacing\": [\n {\n \"border-spacing\": [\n borderSpacing\n ]\n }\n ],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */ \"border-spacing-x\": [\n {\n \"border-spacing-x\": [\n borderSpacing\n ]\n }\n ],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */ \"border-spacing-y\": [\n {\n \"border-spacing-y\": [\n borderSpacing\n ]\n }\n ],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */ \"table-layout\": [\n {\n table: [\n \"auto\",\n \"fixed\"\n ]\n }\n ],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */ caption: [\n {\n caption: [\n \"top\",\n \"bottom\"\n ]\n }\n ],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */ transition: [\n {\n transition: [\n \"none\",\n \"all\",\n \"\",\n \"colors\",\n \"opacity\",\n \"shadow\",\n \"transform\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */ duration: [\n {\n duration: getNumberAndArbitrary()\n }\n ],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */ ease: [\n {\n ease: [\n \"linear\",\n \"in\",\n \"out\",\n \"in-out\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */ delay: [\n {\n delay: getNumberAndArbitrary()\n }\n ],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */ animate: [\n {\n animate: [\n \"none\",\n \"spin\",\n \"ping\",\n \"pulse\",\n \"bounce\",\n isArbitraryValue\n ]\n }\n ],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */ transform: [\n {\n transform: [\n \"\",\n \"gpu\",\n \"none\"\n ]\n }\n ],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */ scale: [\n {\n scale: [\n scale\n ]\n }\n ],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */ \"scale-x\": [\n {\n \"scale-x\": [\n scale\n ]\n }\n ],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */ \"scale-y\": [\n {\n \"scale-y\": [\n scale\n ]\n }\n ],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */ rotate: [\n {\n rotate: [\n isInteger,\n isArbitraryValue\n ]\n }\n ],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */ \"translate-x\": [\n {\n \"translate-x\": [\n translate\n ]\n }\n ],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */ \"translate-y\": [\n {\n \"translate-y\": [\n translate\n ]\n }\n ],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */ \"skew-x\": [\n {\n \"skew-x\": [\n skew\n ]\n }\n ],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */ \"skew-y\": [\n {\n \"skew-y\": [\n skew\n ]\n }\n ],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */ \"transform-origin\": [\n {\n origin: [\n \"center\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\",\n \"top-left\",\n isArbitraryValue\n ]\n }\n ],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */ accent: [\n {\n accent: [\n \"auto\",\n colors\n ]\n }\n ],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */ appearance: [\n {\n appearance: [\n \"none\",\n \"auto\"\n ]\n }\n ],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */ cursor: [\n {\n cursor: [\n \"auto\",\n \"default\",\n \"pointer\",\n \"wait\",\n \"text\",\n \"move\",\n \"help\",\n \"not-allowed\",\n \"none\",\n \"context-menu\",\n \"progress\",\n \"cell\",\n \"crosshair\",\n \"vertical-text\",\n \"alias\",\n \"copy\",\n \"no-drop\",\n \"grab\",\n \"grabbing\",\n \"all-scroll\",\n \"col-resize\",\n \"row-resize\",\n \"n-resize\",\n \"e-resize\",\n \"s-resize\",\n \"w-resize\",\n \"ne-resize\",\n \"nw-resize\",\n \"se-resize\",\n \"sw-resize\",\n \"ew-resize\",\n \"ns-resize\",\n \"nesw-resize\",\n \"nwse-resize\",\n \"zoom-in\",\n \"zoom-out\",\n isArbitraryValue\n ]\n }\n ],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */ \"caret-color\": [\n {\n caret: [\n colors\n ]\n }\n ],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */ \"pointer-events\": [\n {\n \"pointer-events\": [\n \"none\",\n \"auto\"\n ]\n }\n ],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */ resize: [\n {\n resize: [\n \"none\",\n \"y\",\n \"x\",\n \"\"\n ]\n }\n ],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */ \"scroll-behavior\": [\n {\n scroll: [\n \"auto\",\n \"smooth\"\n ]\n }\n ],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-m\": [\n {\n \"scroll-m\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-mx\": [\n {\n \"scroll-mx\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-my\": [\n {\n \"scroll-my\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-ms\": [\n {\n \"scroll-ms\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-me\": [\n {\n \"scroll-me\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-mt\": [\n {\n \"scroll-mt\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-mr\": [\n {\n \"scroll-mr\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-mb\": [\n {\n \"scroll-mb\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */ \"scroll-ml\": [\n {\n \"scroll-ml\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-p\": [\n {\n \"scroll-p\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-px\": [\n {\n \"scroll-px\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-py\": [\n {\n \"scroll-py\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-ps\": [\n {\n \"scroll-ps\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pe\": [\n {\n \"scroll-pe\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pt\": [\n {\n \"scroll-pt\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pr\": [\n {\n \"scroll-pr\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pb\": [\n {\n \"scroll-pb\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */ \"scroll-pl\": [\n {\n \"scroll-pl\": getSpacingWithArbitrary()\n }\n ],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */ \"snap-align\": [\n {\n snap: [\n \"start\",\n \"end\",\n \"center\",\n \"align-none\"\n ]\n }\n ],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */ \"snap-stop\": [\n {\n snap: [\n \"normal\",\n \"always\"\n ]\n }\n ],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */ \"snap-type\": [\n {\n snap: [\n \"none\",\n \"x\",\n \"y\",\n \"both\"\n ]\n }\n ],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */ \"snap-strictness\": [\n {\n snap: [\n \"mandatory\",\n \"proximity\"\n ]\n }\n ],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */ touch: [\n {\n touch: [\n \"auto\",\n \"none\",\n \"manipulation\"\n ]\n }\n ],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */ \"touch-x\": [\n {\n \"touch-pan\": [\n \"x\",\n \"left\",\n \"right\"\n ]\n }\n ],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */ \"touch-y\": [\n {\n \"touch-pan\": [\n \"y\",\n \"up\",\n \"down\"\n ]\n }\n ],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */ \"touch-pz\": [\n \"touch-pinch-zoom\"\n ],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */ select: [\n {\n select: [\n \"none\",\n \"text\",\n \"all\",\n \"auto\"\n ]\n }\n ],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */ \"will-change\": [\n {\n \"will-change\": [\n \"auto\",\n \"scroll\",\n \"contents\",\n \"transform\",\n isArbitraryValue\n ]\n }\n ],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */ fill: [\n {\n fill: [\n colors,\n \"none\"\n ]\n }\n ],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */ \"stroke-w\": [\n {\n stroke: [\n isLength,\n isArbitraryLength,\n isArbitraryNumber\n ]\n }\n ],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */ stroke: [\n {\n stroke: [\n colors,\n \"none\"\n ]\n }\n ],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */ sr: [\n \"sr-only\",\n \"not-sr-only\"\n ],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */ \"forced-color-adjust\": [\n {\n \"forced-color-adjust\": [\n \"auto\",\n \"none\"\n ]\n }\n ]\n },\n conflictingClassGroups: {\n overflow: [\n \"overflow-x\",\n \"overflow-y\"\n ],\n overscroll: [\n \"overscroll-x\",\n \"overscroll-y\"\n ],\n inset: [\n \"inset-x\",\n \"inset-y\",\n \"start\",\n \"end\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ],\n \"inset-x\": [\n \"right\",\n \"left\"\n ],\n \"inset-y\": [\n \"top\",\n \"bottom\"\n ],\n flex: [\n \"basis\",\n \"grow\",\n \"shrink\"\n ],\n gap: [\n \"gap-x\",\n \"gap-y\"\n ],\n p: [\n \"px\",\n \"py\",\n \"ps\",\n \"pe\",\n \"pt\",\n \"pr\",\n \"pb\",\n \"pl\"\n ],\n px: [\n \"pr\",\n \"pl\"\n ],\n py: [\n \"pt\",\n \"pb\"\n ],\n m: [\n \"mx\",\n \"my\",\n \"ms\",\n \"me\",\n \"mt\",\n \"mr\",\n \"mb\",\n \"ml\"\n ],\n mx: [\n \"mr\",\n \"ml\"\n ],\n my: [\n \"mt\",\n \"mb\"\n ],\n size: [\n \"w\",\n \"h\"\n ],\n \"font-size\": [\n \"leading\"\n ],\n \"fvn-normal\": [\n \"fvn-ordinal\",\n \"fvn-slashed-zero\",\n \"fvn-figure\",\n \"fvn-spacing\",\n \"fvn-fraction\"\n ],\n \"fvn-ordinal\": [\n \"fvn-normal\"\n ],\n \"fvn-slashed-zero\": [\n \"fvn-normal\"\n ],\n \"fvn-figure\": [\n \"fvn-normal\"\n ],\n \"fvn-spacing\": [\n \"fvn-normal\"\n ],\n \"fvn-fraction\": [\n \"fvn-normal\"\n ],\n \"line-clamp\": [\n \"display\",\n \"overflow\"\n ],\n rounded: [\n \"rounded-s\",\n \"rounded-e\",\n \"rounded-t\",\n \"rounded-r\",\n \"rounded-b\",\n \"rounded-l\",\n \"rounded-ss\",\n \"rounded-se\",\n \"rounded-ee\",\n \"rounded-es\",\n \"rounded-tl\",\n \"rounded-tr\",\n \"rounded-br\",\n \"rounded-bl\"\n ],\n \"rounded-s\": [\n \"rounded-ss\",\n \"rounded-es\"\n ],\n \"rounded-e\": [\n \"rounded-se\",\n \"rounded-ee\"\n ],\n \"rounded-t\": [\n \"rounded-tl\",\n \"rounded-tr\"\n ],\n \"rounded-r\": [\n \"rounded-tr\",\n \"rounded-br\"\n ],\n \"rounded-b\": [\n \"rounded-br\",\n \"rounded-bl\"\n ],\n \"rounded-l\": [\n \"rounded-tl\",\n \"rounded-bl\"\n ],\n \"border-spacing\": [\n \"border-spacing-x\",\n \"border-spacing-y\"\n ],\n \"border-w\": [\n \"border-w-s\",\n \"border-w-e\",\n \"border-w-t\",\n \"border-w-r\",\n \"border-w-b\",\n \"border-w-l\"\n ],\n \"border-w-x\": [\n \"border-w-r\",\n \"border-w-l\"\n ],\n \"border-w-y\": [\n \"border-w-t\",\n \"border-w-b\"\n ],\n \"border-color\": [\n \"border-color-t\",\n \"border-color-r\",\n \"border-color-b\",\n \"border-color-l\"\n ],\n \"border-color-x\": [\n \"border-color-r\",\n \"border-color-l\"\n ],\n \"border-color-y\": [\n \"border-color-t\",\n \"border-color-b\"\n ],\n \"scroll-m\": [\n \"scroll-mx\",\n \"scroll-my\",\n \"scroll-ms\",\n \"scroll-me\",\n \"scroll-mt\",\n \"scroll-mr\",\n \"scroll-mb\",\n \"scroll-ml\"\n ],\n \"scroll-mx\": [\n \"scroll-mr\",\n \"scroll-ml\"\n ],\n \"scroll-my\": [\n \"scroll-mt\",\n \"scroll-mb\"\n ],\n \"scroll-p\": [\n \"scroll-px\",\n \"scroll-py\",\n \"scroll-ps\",\n \"scroll-pe\",\n \"scroll-pt\",\n \"scroll-pr\",\n \"scroll-pb\",\n \"scroll-pl\"\n ],\n \"scroll-px\": [\n \"scroll-pr\",\n \"scroll-pl\"\n ],\n \"scroll-py\": [\n \"scroll-pt\",\n \"scroll-pb\"\n ],\n touch: [\n \"touch-x\",\n \"touch-y\",\n \"touch-pz\"\n ],\n \"touch-x\": [\n \"touch\"\n ],\n \"touch-y\": [\n \"touch\"\n ],\n \"touch-pz\": [\n \"touch\"\n ]\n },\n conflictingClassGroupModifiers: {\n \"font-size\": [\n \"leading\"\n ]\n }\n };\n}\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */ function mergeConfigs(baseConfig, { cacheSize, prefix, separator, extend = {}, override = {} }) {\n overrideProperty(baseConfig, \"cacheSize\", cacheSize);\n overrideProperty(baseConfig, \"prefix\", prefix);\n overrideProperty(baseConfig, \"separator\", separator);\n for(const configKey in override){\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for(const key in extend){\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n}\nfunction overrideProperty(baseObject, overrideKey, overrideValue) {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n}\nfunction overrideConfigProperties(baseObject, overrideObject) {\n if (overrideObject) {\n for(const key in overrideObject){\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n}\nfunction mergeConfigProperties(baseObject, mergeObject) {\n if (mergeObject) {\n for(const key in mergeObject){\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n}\nfunction extendTailwindMerge(configExtension, ...createConfig) {\n return typeof configExtension === \"function\" ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(()=>mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\n}\nconst twMerge = /*#__PURE__*/ createTailwindMerge(getDefaultConfig);\n //# sourceMappingURL=bundle-mjs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL3RhaWx3aW5kLW1lcmdlL2Rpc3QvYnVuZGxlLW1qcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxNQUFNQSx1QkFBdUI7QUFDN0IsU0FBU0MsaUJBQWlCQyxNQUFNO0lBQzlCLE1BQU1DLFdBQVdDLGVBQWVGO0lBQ2hDLE1BQU0sRUFDSkcsc0JBQXNCLEVBQ3RCQyw4QkFBOEIsRUFDL0IsR0FBR0o7SUFDSixTQUFTSyxnQkFBZ0JDLFNBQVM7UUFDaEMsTUFBTUMsYUFBYUQsVUFBVUUsS0FBSyxDQUFDVjtRQUNuQyxtS0FBbUs7UUFDbkssSUFBSVMsVUFBVSxDQUFDLEVBQUUsS0FBSyxNQUFNQSxXQUFXRSxNQUFNLEtBQUssR0FBRztZQUNuREYsV0FBV0csS0FBSztRQUNsQjtRQUNBLE9BQU9DLGtCQUFrQkosWUFBWU4sYUFBYVcsK0JBQStCTjtJQUNuRjtJQUNBLFNBQVNPLDRCQUE0QkMsWUFBWSxFQUFFQyxrQkFBa0I7UUFDbkUsTUFBTUMsWUFBWWIsc0JBQXNCLENBQUNXLGFBQWEsSUFBSSxFQUFFO1FBQzVELElBQUlDLHNCQUFzQlgsOEJBQThCLENBQUNVLGFBQWEsRUFBRTtZQUN0RSxPQUFPO21CQUFJRTttQkFBY1osOEJBQThCLENBQUNVLGFBQWE7YUFBQztRQUN4RTtRQUNBLE9BQU9FO0lBQ1Q7SUFDQSxPQUFPO1FBQ0xYO1FBQ0FRO0lBQ0Y7QUFDRjtBQUNBLFNBQVNGLGtCQUFrQkosVUFBVSxFQUFFVSxlQUFlO0lBQ3BELElBQUlWLFdBQVdFLE1BQU0sS0FBSyxHQUFHO1FBQzNCLE9BQU9RLGdCQUFnQkgsWUFBWTtJQUNyQztJQUNBLE1BQU1JLG1CQUFtQlgsVUFBVSxDQUFDLEVBQUU7SUFDdEMsTUFBTVksc0JBQXNCRixnQkFBZ0JHLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDSDtJQUN6RCxNQUFNSSw4QkFBOEJILHNCQUFzQlIsa0JBQWtCSixXQUFXZ0IsS0FBSyxDQUFDLElBQUlKLHVCQUF1Qks7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QUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxZQUFZO2dCQUFDO29CQUNYLFlBQVlBO2dCQUNkO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxhQUFhO2dCQUFDO29CQUNaLGFBQWFBO2dCQUNmO2FBQUU7WUFDRjs7O09BR0MsR0FDRCxjQUFjO2dCQUFDO29CQUNid0csTUFBTTt3QkFBQzt3QkFBUzt3QkFBTzt3QkFBVTtxQkFBYTtnQkFDaEQ7YUFBRTtZQUNGOzs7T0FHQyxHQUNELGFB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QUFTRSxvQkFBb0JDLGVBQWUsRUFBRSxHQUFHQyxZQUFZO0lBQzNELE9BQU8sT0FBT0Qsb0JBQW9CLGFBQWFqTixvQkFBb0JzRCxrQkFBa0IySixvQkFBb0JDLGdCQUFnQmxOLG9CQUFvQixJQUFNaU0sYUFBYTNJLG9CQUFvQjJKLHFCQUFxQkM7QUFDM007QUFDQSxNQUFNQyxVQUFVLFdBQVcsR0FBRW5OLG9CQUFvQnNEO0FBQzJFLENBQzVILHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vbm9kZV9tb2R1bGVzL3RhaWx3aW5kLW1lcmdlL2Rpc3QvYnVuZGxlLW1qcy5tanM/NzQxMyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBDTEFTU19QQVJUX1NFUEFSQVRPUiA9ICctJztcbmZ1bmN0aW9uIGNyZWF0ZUNsYXNzVXRpbHMoY29uZmlnKSB7XG4gIGNvbnN0IGNsYXNzTWFwID0gY3JlYXRlQ2xhc3NNYXAoY29uZmlnKTtcbiAgY29uc3Qge1xuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cHMsXG4gICAgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzXG4gIH0gPSBjb25maWc7XG4gIGZ1bmN0aW9uIGdldENsYXNzR3JvdXBJZChjbGFzc05hbWUpIHtcbiAgICBjb25zdCBjbGFzc1BhcnRzID0gY2xhc3NOYW1lLnNwbGl0KENMQVNTX1BBUlRfU0VQQVJBVE9SKTtcbiAgICAvLyBDbGFzc2VzIGxpa2UgYC1pbnNldC0xYCBwcm9kdWNlIGFuIGVtcHR5IHN0cmluZyBhcyBmaXJzdCBjbGFzc1BhcnQuIFdlIGFzc3VtZSB0aGF0IGNsYXNzZXMgZm9yIG5lZ2F0aXZlIHZhbHVlcyBhcmUgdXNlZCBjb3JyZWN0bHkgYW5kIHJlbW92ZSBpdCBmcm9tIGNsYXNzUGFydHMuXG4gICAgaWYgKGNsYXNzUGFydHNbMF0gPT09ICcnICYmIGNsYXNzUGFydHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICBjbGFzc1BhcnRzLnNoaWZ0KCk7XG4gICAgfVxuICAgIHJldHVybiBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLCBjbGFzc01hcCkgfHwgZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5KGNsYXNzTmFtZSk7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKSB7XG4gICAgY29uc3QgY29uZmxpY3RzID0gY29uZmxpY3RpbmdDbGFzc0dyb3Vwc1tjbGFzc0dyb3VwSWRdIHx8IFtdO1xuICAgIGlmIChoYXNQb3N0Zml4TW9kaWZpZXIgJiYgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzW2NsYXNzR3JvdXBJZF0pIHtcbiAgICAgIHJldHVybiBbLi4uY29uZmxpY3RzLCAuLi5jb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnNbY2xhc3NHcm91cElkXV07XG4gICAgfVxuICAgIHJldHVybiBjb25mbGljdHM7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnZXRDbGFzc0dyb3VwSWQsXG4gICAgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzXG4gIH07XG59XG5mdW5jdGlvbiBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLCBjbGFzc1BhcnRPYmplY3QpIHtcbiAgaWYgKGNsYXNzUGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNsYXNzUGFydE9iamVjdC5jbGFzc0dyb3VwSWQ7XG4gIH1cbiAgY29uc3QgY3VycmVudENsYXNzUGFydCA9IGNsYXNzUGFydHNbMF07XG4gIGNvbnN0IG5leHRDbGFzc1BhcnRPYmplY3QgPSBjbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuZ2V0KGN1cnJlbnRDbGFzc1BhcnQpO1xuICBjb25zdCBjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQgPSBuZXh0Q2xhc3NQYXJ0T2JqZWN0ID8gZ2V0R3JvdXBSZWN1cnNpdmUoY2xhc3NQYXJ0cy5zbGljZSgxKSwgbmV4dENsYXNzUGFydE9iamVjdCkgOiB1bmRlZmluZWQ7XG4gIGlmIChjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQpIHtcbiAgICByZXR1cm4gY2xhc3NHcm91cEZyb21OZXh0Q2xhc3NQYXJ0O1xuICB9XG4gIGlmIChjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IGNsYXNzUmVzdCA9IGNsYXNzUGFydHMuam9pbihDTEFTU19QQVJUX1NFUEFSQVRPUik7XG4gIHJldHVybiBjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5maW5kKCh7XG4gICAgdmFsaWRhdG9yXG4gIH0pID0+IHZhbGlkYXRvcihjbGFzc1Jlc3QpKT8uY2xhc3NHcm91cElkO1xufVxuY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlSZWdleCA9IC9eXFxbKC4rKVxcXSQvO1xuZnVuY3Rpb24gZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5KGNsYXNzTmFtZSkge1xuICBpZiAoYXJiaXRyYXJ5UHJvcGVydHlSZWdleC50ZXN0KGNsYXNzTmFtZSkpIHtcbiAgICBjb25zdCBhcmJpdHJhcnlQcm9wZXJ0eUNsYXNzTmFtZSA9IGFyYml0cmFyeVByb3BlcnR5UmVnZXguZXhlYyhjbGFzc05hbWUpWzFdO1xuICAgIGNvbnN0IHByb3BlcnR5ID0gYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWU/LnN1YnN0cmluZygwLCBhcmJpdHJhcnlQcm9wZXJ0eUNsYXNzTmFtZS5pbmRleE9mKCc6JykpO1xuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgLy8gSSB1c2UgdHdvIGRvdHMgaGVyZSBiZWNhdXNlIG9uZSBkb3QgaXMgdXNlZCBhcyBwcmVmaXggZm9yIGNsYXNzIGdyb3VwcyBpbiBwbHVnaW5zXG4gICAgICByZXR1cm4gJ2FyYml0cmFyeS4uJyArIHByb3BlcnR5O1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBFeHBvcnRlZCBmb3IgdGVzdGluZyBvbmx5XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNsYXNzTWFwKGNvbmZpZykge1xuICBjb25zdCB7XG4gICAgdGhlbWUsXG4gICAgcHJlZml4XG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IGNsYXNzTWFwID0ge1xuICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgdmFsaWRhdG9yczogW11cbiAgfTtcbiAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyA9IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMoT2JqZWN0LmVudHJpZXMoY29uZmlnLmNsYXNzR3JvdXBzKSwgcHJlZml4KTtcbiAgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcy5mb3JFYWNoKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgY2xhc3NNYXAsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsYXNzTWFwO1xufVxuZnVuY3Rpb24gcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0dyb3VwLCBjbGFzc1BhcnRPYmplY3QsIGNsYXNzR3JvdXBJZCwgdGhlbWUpIHtcbiAgY2xhc3NHcm91cC5mb3JFYWNoKGNsYXNzRGVmaW5pdGlvbiA9PiB7XG4gICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBjbGFzc1BhcnRPYmplY3RUb0VkaXQgPSBjbGFzc0RlZmluaXRpb24gPT09ICcnID8gY2xhc3NQYXJ0T2JqZWN0IDogZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIGNsYXNzRGVmaW5pdGlvbik7XG4gICAgICBjbGFzc1BhcnRPYmplY3RUb0VkaXQuY2xhc3NHcm91cElkID0gY2xhc3NHcm91cElkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKGlzVGhlbWVHZXR0ZXIoY2xhc3NEZWZpbml0aW9uKSkge1xuICAgICAgICBwcm9jZXNzQ2xhc3Nlc1JlY3Vyc2l2ZWx5KGNsYXNzRGVmaW5pdGlvbih0aGVtZSksIGNsYXNzUGFydE9iamVjdCwgY2xhc3NHcm91cElkLCB0aGVtZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLnB1c2goe1xuICAgICAgICB2YWxpZGF0b3I6IGNsYXNzRGVmaW5pdGlvbixcbiAgICAgICAgY2xhc3NHcm91cElkXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmVudHJpZXMoY2xhc3NEZWZpbml0aW9uKS5mb3JFYWNoKChba2V5LCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0dyb3VwLCBnZXRQYXJ0KGNsYXNzUGFydE9iamVjdCwga2V5KSwgY2xhc3NHcm91cElkLCB0aGVtZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuZnVuY3Rpb24gZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIHBhdGgpIHtcbiAgbGV0IGN1cnJlbnRDbGFzc1BhcnRPYmplY3QgPSBjbGFzc1BhcnRPYmplY3Q7XG4gIHBhdGguc3BsaXQoQ0xBU1NfUEFSVF9TRVBBUkFUT1IpLmZvckVhY2gocGF0aFBhcnQgPT4ge1xuICAgIGlmICghY3VycmVudENsYXNzUGFydE9iamVjdC5uZXh0UGFydC5oYXMocGF0aFBhcnQpKSB7XG4gICAgICBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LnNldChwYXRoUGFydCwge1xuICAgICAgICBuZXh0UGFydDogbmV3IE1hcCgpLFxuICAgICAgICB2YWxpZGF0b3JzOiBbXVxuICAgICAgfSk7XG4gICAgfVxuICAgIGN1cnJlbnRDbGFzc1BhcnRPYmplY3QgPSBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LmdldChwYXRoUGFydCk7XG4gIH0pO1xuICByZXR1cm4gY3VycmVudENsYXNzUGFydE9iamVjdDtcbn1cbmZ1bmN0aW9uIGlzVGhlbWVHZXR0ZXIoZnVuYykge1xuICByZXR1cm4gZnVuYy5pc1RoZW1lR2V0dGVyO1xufVxuZnVuY3Rpb24gZ2V0UHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyhjbGFzc0dyb3VwRW50cmllcywgcHJlZml4KSB7XG4gIGlmICghcHJlZml4KSB7XG4gICAgcmV0dXJuIGNsYXNzR3JvdXBFbnRyaWVzO1xuICB9XG4gIHJldHVybiBjbGFzc0dyb3VwRW50cmllcy5tYXAoKFtjbGFzc0dyb3VwSWQsIGNsYXNzR3JvdXBdKSA9PiB7XG4gICAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwID0gY2xhc3NHcm91cC5tYXAoY2xhc3NEZWZpbml0aW9uID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gcHJlZml4ICsgY2xhc3NEZWZpbml0aW9uO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoY2xhc3NEZWZpbml0aW9uKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW3ByZWZpeCArIGtleSwgdmFsdWVdKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xhc3NEZWZpbml0aW9uO1xuICAgIH0pO1xuICAgIHJldHVybiBbY2xhc3NHcm91cElkLCBwcmVmaXhlZENsYXNzR3JvdXBdO1xuICB9KTtcbn1cblxuLy8gTFJVIGNhY2hlIGluc3BpcmVkIGZyb20gaGFzaGxydSAoaHR0cHM6Ly9naXRodWIuY29tL2RvbWluaWN0YXJyL2hhc2hscnUvYmxvYi92MS4wLjQvaW5kZXguanMpIGJ1dCBvYmplY3QgcmVwbGFjZWQgd2l0aCBNYXAgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZVxuZnVuY3Rpb24gY3JlYXRlTHJ1Q2FjaGUobWF4Q2FjaGVTaXplKSB7XG4gIGlmIChtYXhDYWNoZVNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgc2V0OiAoKSA9PiB7fVxuICAgIH07XG4gIH1cbiAgbGV0IGNhY2hlU2l6ZSA9IDA7XG4gIGxldCBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgbGV0IHByZXZpb3VzQ2FjaGUgPSBuZXcgTWFwKCk7XG4gIGZ1bmN0aW9uIHVwZGF0ZShrZXksIHZhbHVlKSB7XG4gICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgIGNhY2hlU2l6ZSsrO1xuICAgIGlmIChjYWNoZVNpemUgPiBtYXhDYWNoZVNpemUpIHtcbiAgICAgIGNhY2hlU2l6ZSA9IDA7XG4gICAgICBwcmV2aW91c0NhY2hlID0gY2FjaGU7XG4gICAgICBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnZXQoa2V5KSB7XG4gICAgICBsZXQgdmFsdWUgPSBjYWNoZS5nZXQoa2V5KTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodmFsdWUgPSBwcmV2aW91c0NhY2hlLmdldChrZXkpKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHVwZGF0ZShrZXksIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChjYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICBjYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuY29uc3QgSU1QT1JUQU5UX01PRElGSUVSID0gJyEnO1xuZnVuY3Rpb24gY3JlYXRlU3BsaXRNb2RpZmllcnMoY29uZmlnKSB7XG4gIGNvbnN0IHNlcGFyYXRvciA9IGNvbmZpZy5zZXBhcmF0b3I7XG4gIGNvbnN0IGlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyID0gc2VwYXJhdG9yLmxlbmd0aCA9PT0gMTtcbiAgY29uc3QgZmlyc3RTZXBhcmF0b3JDaGFyYWN0ZXIgPSBzZXBhcmF0b3JbMF07XG4gIGNvbnN0IHNlcGFyYXRvckxlbmd0aCA9IHNlcGFyYXRvci5sZW5ndGg7XG4gIC8vIHNwbGl0TW9kaWZpZXJzIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi92My4yLjIvc3JjL3V0aWwvc3BsaXRBdFRvcExldmVsT25seS5qc1xuICByZXR1cm4gZnVuY3Rpb24gc3BsaXRNb2RpZmllcnMoY2xhc3NOYW1lKSB7XG4gICAgY29uc3QgbW9kaWZpZXJzID0gW107XG4gICAgbGV0IGJyYWNrZXREZXB0aCA9IDA7XG4gICAgbGV0IG1vZGlmaWVyU3RhcnQgPSAwO1xuICAgIGxldCBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbjtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2xhc3NOYW1lLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgbGV0IGN1cnJlbnRDaGFyYWN0ZXIgPSBjbGFzc05hbWVbaW5kZXhdO1xuICAgICAgaWYgKGJyYWNrZXREZXB0aCA9PT0gMCkge1xuICAgICAgICBpZiAoY3VycmVudENoYXJhY3RlciA9PT0gZmlyc3RTZXBhcmF0b3JDaGFyYWN0ZXIgJiYgKGlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyIHx8IGNsYXNzTmFtZS5zbGljZShpbmRleCwgaW5kZXggKyBzZXBhcmF0b3JMZW5ndGgpID09PSBzZXBhcmF0b3IpKSB7XG4gICAgICAgICAgbW9kaWZpZXJzLnB1c2goY2xhc3NOYW1lLnNsaWNlKG1vZGlmaWVyU3RhcnQsIGluZGV4KSk7XG4gICAgICAgICAgbW9kaWZpZXJTdGFydCA9IGluZGV4ICsgc2VwYXJhdG9yTGVuZ3RoO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnLycpIHtcbiAgICAgICAgICBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA9IGluZGV4O1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY3VycmVudENoYXJhY3RlciA9PT0gJ1snKSB7XG4gICAgICAgIGJyYWNrZXREZXB0aCsrO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnXScpIHtcbiAgICAgICAgYnJhY2tldERlcHRoLS07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIgPSBtb2RpZmllcnMubGVuZ3RoID09PSAwID8gY2xhc3NOYW1lIDogY2xhc3NOYW1lLnN1YnN0cmluZyhtb2RpZmllclN0YXJ0KTtcbiAgICBjb25zdCBoYXNJbXBvcnRhbnRNb2RpZmllciA9IGJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIuc3RhcnRzV2l0aChJTVBPUlRBTlRfTU9ESUZJRVIpO1xuICAgIGNvbnN0IGJhc2VDbGFzc05hbWUgPSBoYXNJbXBvcnRhbnRNb2RpZmllciA/IGJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIuc3Vic3RyaW5nKDEpIDogYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllcjtcbiAgICBjb25zdCBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uID0gcG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gJiYgcG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gPiBtb2RpZmllclN0YXJ0ID8gcG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gLSBtb2RpZmllclN0YXJ0IDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBtb2RpZmllcnMsXG4gICAgICBoYXNJbXBvcnRhbnRNb2RpZmllcixcbiAgICAgIGJhc2VDbGFzc05hbWUsXG4gICAgICBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uXG4gICAgfTtcbiAgfTtcbn1cbi8qKlxuICogU29ydHMgbW9kaWZpZXJzIGFjY29yZGluZyB0byBmb2xsb3dpbmcgc2NoZW1hOlxuICogLSBQcmVkZWZpbmVkIG1vZGlmaWVycyBhcmUgc29ydGVkIGFscGhhYmV0aWNhbGx5XG4gKiAtIFdoZW4gYW4gYXJiaXRyYXJ5IHZhcmlhbnQgYXBwZWFycywgaXQgbXVzdCBiZSBwcmVzZXJ2ZWQgd2hpY2ggbW9kaWZpZXJzIGFyZSBiZWZvcmUgYW5kIGFmdGVyIGl0XG4gKi9cbmZ1bmN0aW9uIHNvcnRNb2RpZmllcnMobW9kaWZpZXJzKSB7XG4gIGlmIChtb2RpZmllcnMubGVuZ3RoIDw9IDEpIHtcbiAgICByZXR1cm4gbW9kaWZpZXJzO1xuICB9XG4gIGNvbnN0IHNvcnRlZE1vZGlmaWVycyA9IFtdO1xuICBsZXQgdW5zb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgbW9kaWZpZXJzLmZvckVhY2gobW9kaWZpZXIgPT4ge1xuICAgIGNvbnN0IGlzQXJiaXRyYXJ5VmFyaWFudCA9IG1vZGlmaWVyWzBdID09PSAnWyc7XG4gICAgaWYgKGlzQXJiaXRyYXJ5VmFyaWFudCkge1xuICAgICAgc29ydGVkTW9kaWZpZXJzLnB1c2goLi4udW5zb3J0ZWRNb2RpZmllcnMuc29ydCgpLCBtb2RpZmllcik7XG4gICAgICB1bnNvcnRlZE1vZGlmaWVycyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB1bnNvcnRlZE1vZGlmaWVycy5wdXNoKG1vZGlmaWVyKTtcbiAgICB9XG4gIH0pO1xuICBzb3J0ZWRNb2RpZmllcnMucHVzaCguLi51bnNvcnRlZE1vZGlmaWVycy5zb3J0KCkpO1xuICByZXR1cm4gc29ydGVkTW9kaWZpZXJzO1xufVxuZnVuY3Rpb24gY3JlYXRlQ29uZmlnVXRpbHMoY29uZmlnKSB7XG4gIHJldHVybiB7XG4gICAgY2FjaGU6IGNyZWF0ZUxydUNhY2hlKGNvbmZpZy5jYWNoZVNpemUpLFxuICAgIHNwbGl0TW9kaWZpZXJzOiBjcmVhdGVTcGxpdE1vZGlmaWVycyhjb25maWcpLFxuICAgIC4uLmNyZWF0ZUNsYXNzVXRpbHMoY29uZmlnKVxuICB9O1xufVxuY29uc3QgU1BMSVRfQ0xBU1NFU19SRUdFWCA9IC9cXHMrLztcbmZ1bmN0aW9uIG1lcmdlQ2xhc3NMaXN0KGNsYXNzTGlzdCwgY29uZmlnVXRpbHMpIHtcbiAgY29uc3Qge1xuICAgIHNwbGl0TW9kaWZpZXJzLFxuICAgIGdldENsYXNzR3JvdXBJZCxcbiAgICBnZXRDb25mbGljdGluZ0NsYXNzR3JvdXBJZHNcbiAgfSA9IGNvbmZpZ1V0aWxzO1xuICAvKipcbiAgICogU2V0IG9mIGNsYXNzR3JvdXBJZHMgaW4gZm9sbG93aW5nIGZvcm1hdDpcbiAgICogYHtpbXBvcnRhbnRNb2RpZmllcn17dmFyaWFudE1vZGlmaWVyc317Y2xhc3NHcm91cElkfWBcbiAgICogQGV4YW1wbGUgJ2Zsb2F0J1xuICAgKiBAZXhhbXBsZSAnaG92ZXI6Zm9jdXM6YmctY29sb3InXG4gICAqIEBleGFtcGxlICdtZDohcHInXG4gICAqL1xuICBjb25zdCBjbGFzc0dyb3Vwc0luQ29uZmxpY3QgPSBuZXcgU2V0KCk7XG4gIHJldHVybiBjbGFzc0xpc3QudHJpbSgpLnNwbGl0KFNQTElUX0NMQVNTRVNfUkVHRVgpLm1hcChvcmlnaW5hbENsYXNzTmFtZSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgbW9kaWZpZXJzLFxuICAgICAgaGFzSW1wb3J0YW50TW9kaWZpZXIsXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxuICAgICAgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvblxuICAgIH0gPSBzcGxpdE1vZGlmaWVycyhvcmlnaW5hbENsYXNzTmFtZSk7XG4gICAgbGV0IGNsYXNzR3JvdXBJZCA9IGdldENsYXNzR3JvdXBJZChtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uID8gYmFzZUNsYXNzTmFtZS5zdWJzdHJpbmcoMCwgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbikgOiBiYXNlQ2xhc3NOYW1lKTtcbiAgICBsZXQgaGFzUG9zdGZpeE1vZGlmaWVyID0gQm9vbGVhbihtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uKTtcbiAgICBpZiAoIWNsYXNzR3JvdXBJZCkge1xuICAgICAgaWYgKCFtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaXNUYWlsd2luZENsYXNzOiBmYWxzZSxcbiAgICAgICAgICBvcmlnaW5hbENsYXNzTmFtZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY2xhc3NHcm91cElkID0gZ2V0Q2xhc3NHcm91cElkKGJhc2VDbGFzc05hbWUpO1xuICAgICAgaWYgKCFjbGFzc0dyb3VwSWQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpc1RhaWx3aW5kQ2xhc3M6IGZhbHNlLFxuICAgICAgICAgIG9yaWdpbmFsQ2xhc3NOYW1lXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBoYXNQb3N0Zml4TW9kaWZpZXIgPSBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdmFyaWFudE1vZGlmaWVyID0gc29ydE1vZGlmaWVycyhtb2RpZmllcnMpLmpvaW4oJzonKTtcbiAgICBjb25zdCBtb2RpZmllcklkID0gaGFzSW1wb3J0YW50TW9kaWZpZXIgPyB2YXJpYW50TW9kaWZpZXIgKyBJTVBPUlRBTlRfTU9ESUZJRVIgOiB2YXJpYW50TW9kaWZpZXI7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVGFpbHdpbmRDbGFzczogdHJ1ZSxcbiAgICAgIG1vZGlmaWVySWQsXG4gICAgICBjbGFzc0dyb3VwSWQsXG4gICAgICBvcmlnaW5hbENsYXNzTmFtZSxcbiAgICAgIGhhc1Bvc3RmaXhNb2RpZmllclxuICAgIH07XG4gIH0pLnJldmVyc2UoKVxuICAvLyBMYXN0IGNsYXNzIGluIGNvbmZsaWN0IHdpbnMsIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGNvbmZsaWN0aW5nIGNsYXNzZXMgaW4gcmV2ZXJzZSBvcmRlci5cbiAgLmZpbHRlcihwYXJzZWQgPT4ge1xuICAgIGlmICghcGFyc2VkLmlzVGFpbHdpbmRDbGFzcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIG1vZGlmaWVySWQsXG4gICAgICBjbGFzc0dyb3VwSWQsXG4gICAgICBoYXNQb3N0Zml4TW9kaWZpZXJcbiAgICB9ID0gcGFyc2VkO1xuICAgIGNvbnN0IGNsYXNzSWQgPSBtb2RpZmllcklkICsgY2xhc3NHcm91cElkO1xuICAgIGlmIChjbGFzc0dyb3Vwc0luQ29uZmxpY3QuaGFzKGNsYXNzSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNsYXNzR3JvdXBzSW5Db25mbGljdC5hZGQoY2xhc3NJZCk7XG4gICAgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKS5mb3JFYWNoKGdyb3VwID0+IGNsYXNzR3JvdXBzSW5Db25mbGljdC5hZGQobW9kaWZpZXJJZCArIGdyb3VwKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pLnJldmVyc2UoKS5tYXAocGFyc2VkID0+IHBhcnNlZC5vcmlnaW5hbENsYXNzTmFtZSkuam9pbignICcpO1xufVxuXG4vKipcbiAqIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL2Nsc3ggYW5kIG1vZGlmaWVkIHRvIHN1aXQgdGhlIG5lZWRzIG9mIHRhaWx3aW5kLW1lcmdlIGJldHRlci5cbiAqXG4gKiBTcGVjaWZpY2FsbHk6XG4gKiAtIFJ1bnRpbWUgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9zcmMvaW5kZXguanNcbiAqIC0gVHlwZVNjcmlwdCB0eXBlcyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9jbHN4LmQudHNcbiAqXG4gKiBPcmlnaW5hbCBjb2RlIGhhcyBNSVQgbGljZW5zZTogQ29weXJpZ2h0IChjKSBMdWtlIEVkd2FyZHMgPGx1a2UuZWR3YXJkczA1QGdtYWlsLmNvbT4gKGx1a2VlZC5jb20pXG4gKi9cbmZ1bmN0aW9uIHR3Sm9pbigpIHtcbiAgbGV0IGluZGV4ID0gMDtcbiAgbGV0IGFyZ3VtZW50O1xuICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgbGV0IHN0cmluZyA9ICcnO1xuICB3aGlsZSAoaW5kZXggPCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgaWYgKGFyZ3VtZW50ID0gYXJndW1lbnRzW2luZGV4KytdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUoYXJndW1lbnQpKSB7XG4gICAgICAgIHN0cmluZyAmJiAoc3RyaW5nICs9ICcgJyk7XG4gICAgICAgIHN0cmluZyArPSByZXNvbHZlZFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyaW5nO1xufVxuZnVuY3Rpb24gdG9WYWx1ZShtaXgpIHtcbiAgaWYgKHR5cGVvZiBtaXggPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG1peDtcbiAgfVxuICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgbGV0IHN0cmluZyA9ICcnO1xuICBmb3IgKGxldCBrID0gMDsgayA8IG1peC5sZW5ndGg7IGsrKykge1xuICAgIGlmIChtaXhba10pIHtcbiAgICAgIGlmIChyZXNvbHZlZFZhbHVlID0gdG9WYWx1ZShtaXhba10pKSB7XG4gICAgICAgIHN0cmluZyAmJiAoc3RyaW5nICs9ICcgJyk7XG4gICAgICAgIHN0cmluZyArPSByZXNvbHZlZFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyaW5nO1xufVxuZnVuY3Rpb24gY3JlYXRlVGFpbHdpbmRNZXJnZShjcmVhdGVDb25maWdGaXJzdCwgLi4uY3JlYXRlQ29uZmlnUmVzdCkge1xuICBsZXQgY29uZmlnVXRpbHM7XG4gIGxldCBjYWNoZUdldDtcbiAgbGV0IGNhY2hlU2V0O1xuICBsZXQgZnVuY3Rpb25Ub0NhbGwgPSBpbml0VGFpbHdpbmRNZXJnZTtcbiAgZnVuY3Rpb24gaW5pdFRhaWx3aW5kTWVyZ2UoY2xhc3NMaXN0KSB7XG4gICAgY29uc3QgY29uZmlnID0gY3JlYXRlQ29uZmlnUmVzdC5yZWR1Y2UoKHByZXZpb3VzQ29uZmlnLCBjcmVhdGVDb25maWdDdXJyZW50KSA9PiBjcmVhdGVDb25maWdDdXJyZW50KHByZXZpb3VzQ29uZmlnKSwgY3JlYXRlQ29uZmlnRmlyc3QoKSk7XG4gICAgY29uZmlnVXRpbHMgPSBjcmVhdGVDb25maWdVdGlscyhjb25maWcpO1xuICAgIGNhY2hlR2V0ID0gY29uZmlnVXRpbHMuY2FjaGUuZ2V0O1xuICAgIGNhY2hlU2V0ID0gY29uZmlnVXRpbHMuY2FjaGUuc2V0O1xuICAgIGZ1bmN0aW9uVG9DYWxsID0gdGFpbHdpbmRNZXJnZTtcbiAgICByZXR1cm4gdGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpO1xuICB9XG4gIGZ1bmN0aW9uIHRhaWx3aW5kTWVyZ2UoY2xhc3NMaXN0KSB7XG4gICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gY2FjaGVHZXQoY2xhc3NMaXN0KTtcbiAgICBpZiAoY2FjaGVkUmVzdWx0KSB7XG4gICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBtZXJnZUNsYXNzTGlzdChjbGFzc0xpc3QsIGNvbmZpZ1V0aWxzKTtcbiAgICBjYWNoZVNldChjbGFzc0xpc3QsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gY2FsbFRhaWx3aW5kTWVyZ2UoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uVG9DYWxsKHR3Sm9pbi5hcHBseShudWxsLCBhcmd1bWVudHMpKTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGZyb21UaGVtZShrZXkpIHtcbiAgY29uc3QgdGhlbWVHZXR0ZXIgPSB0aGVtZSA9PiB0aGVtZVtrZXldIHx8IFtdO1xuICB0aGVtZUdldHRlci5pc1RoZW1lR2V0dGVyID0gdHJ1ZTtcbiAgcmV0dXJuIHRoZW1lR2V0dGVyO1xufVxuY29uc3QgYXJiaXRyYXJ5VmFsdWVSZWdleCA9IC9eXFxbKD86KFthLXotXSspOik/KC4rKVxcXSQvaTtcbmNvbnN0IGZyYWN0aW9uUmVnZXggPSAvXlxcZCtcXC9cXGQrJC87XG5jb25zdCBzdHJpbmdMZW5ndGhzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydweCcsICdmdWxsJywgJ3NjcmVlbiddKTtcbmNvbnN0IHRzaGlydFVuaXRSZWdleCA9IC9eKFxcZCsoXFwuXFxkKyk/KT8oeHN8c218bWR8bGd8eGwpJC87XG5jb25zdCBsZW5ndGhVbml0UmVnZXggPSAvXFxkKyglfHB4fHI/ZW18W3NkbF0/dihbaHdpYl18bWlufG1heCl8cHR8cGN8aW58Y218bW18Y2FwfGNofGV4fHI/bGh8Y3Eod3xofGl8YnxtaW58bWF4KSl8XFxiKGNhbGN8bWlufG1heHxjbGFtcClcXCguK1xcKXxeMCQvO1xuY29uc3QgY29sb3JGdW5jdGlvblJlZ2V4ID0gL14ocmdiYT98aHNsYT98aHdifChvayk/KGxhYnxsY2gpKVxcKC4rXFwpJC87XG4vLyBTaGFkb3cgYWx3YXlzIGJlZ2lucyB3aXRoIHggYW5kIHkgb2Zmc2V0IHNlcGFyYXRlZCBieSB1bmRlcnNjb3JlIG9wdGlvbmFsbHkgcHJlcGVuZGVkIGJ5IGluc2V0XG5jb25zdCBzaGFkb3dSZWdleCA9IC9eKGluc2V0Xyk/LT8oKFxcZCspP1xcLj8oXFxkKylbYS16XSt8MClfLT8oKFxcZCspP1xcLj8oXFxkKylbYS16XSt8MCkvO1xuY29uc3QgaW1hZ2VSZWdleCA9IC9eKHVybHxpbWFnZXxpbWFnZS1zZXR8Y3Jvc3MtZmFkZXxlbGVtZW50fChyZXBlYXRpbmctKT8obGluZWFyfHJhZGlhbHxjb25pYyktZ3JhZGllbnQpXFwoLitcXCkkLztcbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiBpc051bWJlcih2YWx1ZSkgfHwgc3RyaW5nTGVuZ3Rocy5oYXModmFsdWUpIHx8IGZyYWN0aW9uUmVnZXgudGVzdCh2YWx1ZSk7XG59XG5mdW5jdGlvbiBpc0FyYml0cmFyeUxlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ2xlbmd0aCcsIGlzTGVuZ3RoT25seSk7XG59XG5mdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICByZXR1cm4gQm9vbGVhbih2YWx1ZSkgJiYgIU51bWJlci5pc05hTihOdW1iZXIodmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5TnVtYmVyKHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCAnbnVtYmVyJywgaXNOdW1iZXIpO1xufVxuZnVuY3Rpb24gaXNJbnRlZ2VyKHZhbHVlKSB7XG4gIHJldHVybiBCb29sZWFuKHZhbHVlKSAmJiBOdW1iZXIuaXNJbnRlZ2VyKE51bWJlcih2YWx1ZSkpO1xufVxuZnVuY3Rpb24gaXNQZXJjZW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5lbmRzV2l0aCgnJScpICYmIGlzTnVtYmVyKHZhbHVlLnNsaWNlKDAsIC0xKSk7XG59XG5mdW5jdGlvbiBpc0FyYml0cmFyeVZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiBhcmJpdHJhcnlWYWx1ZVJlZ2V4LnRlc3QodmFsdWUpO1xufVxuZnVuY3Rpb24gaXNUc2hpcnRTaXplKHZhbHVlKSB7XG4gIHJldHVybiB0c2hpcnRVbml0UmVnZXgudGVzdCh2YWx1ZSk7XG59XG5jb25zdCBzaXplTGFiZWxzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydsZW5ndGgnLCAnc2l6ZScsICdwZXJjZW50YWdlJ10pO1xuZnVuY3Rpb24gaXNBcmJpdHJhcnlTaXplKHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCBzaXplTGFiZWxzLCBpc05ldmVyKTtcbn1cbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5UG9zaXRpb24odmFsdWUpIHtcbiAgcmV0dXJuIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdwb3NpdGlvbicsIGlzTmV2ZXIpO1xufVxuY29uc3QgaW1hZ2VMYWJlbHMgPSAvKiNfX1BVUkVfXyovbmV3IFNldChbJ2ltYWdlJywgJ3VybCddKTtcbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5SW1hZ2UodmFsdWUpIHtcbiAgcmV0dXJuIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsIGltYWdlTGFiZWxzLCBpc0ltYWdlKTtcbn1cbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5U2hhZG93KHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCAnJywgaXNTaGFkb3cpO1xufVxuZnVuY3Rpb24gaXNBbnkoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgbGFiZWwsIHRlc3RWYWx1ZSkge1xuICBjb25zdCByZXN1bHQgPSBhcmJpdHJhcnlWYWx1ZVJlZ2V4LmV4ZWModmFsdWUpO1xuICBpZiAocmVzdWx0KSB7XG4gICAgaWYgKHJlc3VsdFsxXSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgPyByZXN1bHRbMV0gPT09IGxhYmVsIDogbGFiZWwuaGFzKHJlc3VsdFsxXSk7XG4gICAgfVxuICAgIHJldHVybiB0ZXN0VmFsdWUocmVzdWx0WzJdKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc0xlbmd0aE9ubHkodmFsdWUpIHtcbiAgLy8gYGNvbG9yRnVuY3Rpb25SZWdleGAgY2hlY2sgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgY29sb3IgZnVuY3Rpb25zIGNhbiBoYXZlIHBlcmNlbnRhZ2VzIGluIHRoZW0gd2hpY2ggd2hpY2ggd291bGQgYmUgaW5jb3JyZWN0bHkgY2xhc3NpZmllZCBhcyBsZW5ndGhzLlxuICAvLyBGb3IgZXhhbXBsZSwgYGhzbCgwIDAlIDAlKWAgd291bGQgYmUgY2xhc3NpZmllZCBhcyBhIGxlbmd0aCB3aXRob3V0IHRoaXMgY2hlY2suXG4gIC8vIEkgY291bGQgYWxzbyB1c2UgbG9va2JlaGluZCBhc3NlcnRpb24gaW4gYGxlbmd0aFVuaXRSZWdleGAgYnV0IHRoYXQgaXNuJ3Qgc3VwcG9ydGVkIHdpZGVseSBlbm91Z2guXG4gIHJldHVybiBsZW5ndGhVbml0UmVnZXgudGVzdCh2YWx1ZSkgJiYgIWNvbG9yRnVuY3Rpb25SZWdleC50ZXN0KHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGlzTmV2ZXIoKSB7XG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzU2hhZG93KHZhbHVlKSB7XG4gIHJldHVybiBzaGFkb3dSZWdleC50ZXN0KHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGlzSW1hZ2UodmFsdWUpIHtcbiAgcmV0dXJuIGltYWdlUmVnZXgudGVzdCh2YWx1ZSk7XG59XG5jb25zdCB2YWxpZGF0b3JzID0gLyojX19QVVJFX18qL09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgaXNBbnksXG4gIGlzQXJiaXRyYXJ5SW1hZ2UsXG4gIGlzQXJiaXRyYXJ5TGVuZ3RoLFxuICBpc0FyYml0cmFyeU51bWJlcixcbiAgaXNBcmJpdHJhcnlQb3NpdGlvbixcbiAgaXNBcmJpdHJhcnlTaGFkb3csXG4gIGlzQXJiaXRyYXJ5U2l6ZSxcbiAgaXNBcmJpdHJhcnlWYWx1ZSxcbiAgaXNJbnRlZ2VyLFxuICBpc0xlbmd0aCxcbiAgaXNOdW1iZXIsXG4gIGlzUGVyY2VudCxcbiAgaXNUc2hpcnRTaXplXG59LCBTeW1ib2wudG9TdHJpbmdUYWcsIHtcbiAgdmFsdWU6ICdNb2R1bGUnXG59KTtcbmZ1bmN0aW9uIGdldERlZmF1bHRDb25maWcoKSB7XG4gIGNvbnN0IGNvbG9ycyA9IGZyb21UaGVtZSgnY29sb3JzJyk7XG4gIGNvbnN0IHNwYWNpbmcgPSBmcm9tVGhlbWUoJ3NwYWNpbmcnKTtcbiAgY29uc3QgYmx1ciA9IGZyb21UaGVtZSgnYmx1cicpO1xuICBjb25zdCBicmlnaHRuZXNzID0gZnJvbVRoZW1lKCdicmlnaHRuZXNzJyk7XG4gIGNvbnN0IGJvcmRlckNvbG9yID0gZnJvbVRoZW1lKCdib3JkZXJDb2xvcicpO1xuICBjb25zdCBib3JkZXJSYWRpdXMgPSBmcm9tVGhlbWUoJ2JvcmRlclJhZGl1cycpO1xuICBjb25zdCBib3JkZXJTcGFjaW5nID0gZnJvbVRoZW1lKCdib3JkZXJTcGFjaW5nJyk7XG4gIGNvbnN0IGJvcmRlcldpZHRoID0gZnJvbVRoZW1lKCdib3JkZXJXaWR0aCcpO1xuICBjb25zdCBjb250cmFzdCA9IGZyb21UaGVtZSgnY29udHJhc3QnKTtcbiAgY29uc3QgZ3JheXNjYWxlID0gZnJvbVRoZW1lKCdncmF5c2NhbGUnKTtcbiAgY29uc3QgaHVlUm90YXRlID0gZnJvbVRoZW1lKCdodWVSb3RhdGUnKTtcbiAgY29uc3QgaW52ZXJ0ID0gZnJvbVRoZW1lKCdpbnZlcnQnKTtcbiAgY29uc3QgZ2FwID0gZnJvbVRoZW1lKCdnYXAnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BzID0gZnJvbVRoZW1lKCdncmFkaWVudENvbG9yU3RvcHMnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMgPSBmcm9tVGhlbWUoJ2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zJyk7XG4gIGNvbnN0IGluc2V0ID0gZnJvbVRoZW1lKCdpbnNldCcpO1xuICBjb25zdCBtYXJnaW4gPSBmcm9tVGhlbWUoJ21hcmdpbicpO1xuICBjb25zdCBvcGFjaXR5ID0gZnJvbVRoZW1lKCdvcGFjaXR5Jyk7XG4gIGNvbnN0IHBhZGRpbmcgPSBmcm9tVGhlbWUoJ3BhZGRpbmcnKTtcbiAgY29uc3Qgc2F0dXJhdGUgPSBmcm9tVGhlbWUoJ3NhdHVyYXRlJyk7XG4gIGNvbnN0IHNjYWxlID0gZnJvbVRoZW1lKCdzY2FsZScpO1xuICBjb25zdCBzZXBpYSA9IGZyb21UaGVtZSgnc2VwaWEnKTtcbiAgY29uc3Qgc2tldyA9IGZyb21UaGVtZSgnc2tldycpO1xuICBjb25zdCBzcGFjZSA9IGZyb21UaGVtZSgnc3BhY2UnKTtcbiAgY29uc3QgdHJhbnNsYXRlID0gZnJvbVRoZW1lKCd0cmFuc2xhdGUnKTtcbiAgY29uc3QgZ2V0T3ZlcnNjcm9sbCA9ICgpID0+IFsnYXV0bycsICdjb250YWluJywgJ25vbmUnXTtcbiAgY29uc3QgZ2V0T3ZlcmZsb3cgPSAoKSA9PiBbJ2F1dG8nLCAnaGlkZGVuJywgJ2NsaXAnLCAndmlzaWJsZScsICdzY3JvbGwnXTtcbiAgY29uc3QgZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ107XG4gIGNvbnN0IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5ID0gKCkgPT4gW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmddO1xuICBjb25zdCBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkgPSAoKSA9PiBbJycsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF07XG4gIGNvbnN0IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNOdW1iZXIsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICBjb25zdCBnZXRQb3NpdGlvbnMgPSAoKSA9PiBbJ2JvdHRvbScsICdjZW50ZXInLCAnbGVmdCcsICdsZWZ0LWJvdHRvbScsICdsZWZ0LXRvcCcsICdyaWdodCcsICdyaWdodC1ib3R0b20nLCAncmlnaHQtdG9wJywgJ3RvcCddO1xuICBjb25zdCBnZXRMaW5lU3R5bGVzID0gKCkgPT4gWydzb2xpZCcsICdkYXNoZWQnLCAnZG90dGVkJywgJ2RvdWJsZScsICdub25lJ107XG4gIGNvbnN0IGdldEJsZW5kTW9kZXMgPSAoKSA9PiBbJ25vcm1hbCcsICdtdWx0aXBseScsICdzY3JlZW4nLCAnb3ZlcmxheScsICdkYXJrZW4nLCAnbGlnaHRlbicsICdjb2xvci1kb2RnZScsICdjb2xvci1idXJuJywgJ2hhcmQtbGlnaHQnLCAnc29mdC1saWdodCcsICdkaWZmZXJlbmNlJywgJ2V4Y2x1c2lvbicsICdodWUnLCAnc2F0dXJhdGlvbicsICdjb2xvcicsICdsdW1pbm9zaXR5JywgJ3BsdXMtbGlnaHRlciddO1xuICBjb25zdCBnZXRBbGlnbiA9ICgpID0+IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdiZXR3ZWVuJywgJ2Fyb3VuZCcsICdldmVubHknLCAnc3RyZXRjaCddO1xuICBjb25zdCBnZXRaZXJvQW5kRW1wdHkgPSAoKSA9PiBbJycsICcwJywgaXNBcmJpdHJhcnlWYWx1ZV07XG4gIGNvbnN0IGdldEJyZWFrcyA9ICgpID0+IFsnYXV0bycsICdhdm9pZCcsICdhbGwnLCAnYXZvaWQtcGFnZScsICdwYWdlJywgJ2xlZnQnLCAncmlnaHQnLCAnY29sdW1uJ107XG4gIGNvbnN0IGdldE51bWJlciA9ICgpID0+IFtpc051bWJlciwgaXNBcmJpdHJhcnlOdW1iZXJdO1xuICBjb25zdCBnZXROdW1iZXJBbmRBcmJpdHJhcnkgPSAoKSA9PiBbaXNOdW1iZXIsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICByZXR1cm4ge1xuICAgIGNhY2hlU2l6ZTogNTAwLFxuICAgIHNlcGFyYXRvcjogJzonLFxuICAgIHRoZW1lOiB7XG4gICAgICBjb2xvcnM6IFtpc0FueV0sXG4gICAgICBzcGFjaW5nOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXSxcbiAgICAgIGJsdXI6IFsnbm9uZScsICcnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdLFxuICAgICAgYnJpZ2h0bmVzczogZ2V0TnVtYmVyKCksXG4gICAgICBib3JkZXJDb2xvcjogW2NvbG9yc10sXG4gICAgICBib3JkZXJSYWRpdXM6IFsnbm9uZScsICcnLCAnZnVsbCcsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlWYWx1ZV0sXG4gICAgICBib3JkZXJTcGFjaW5nOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgYm9yZGVyV2lkdGg6IGdldExlbmd0aFdpdGhFbXB0eUFuZEFyYml0cmFyeSgpLFxuICAgICAgY29udHJhc3Q6IGdldE51bWJlcigpLFxuICAgICAgZ3JheXNjYWxlOiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIGh1ZVJvdGF0ZTogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KCksXG4gICAgICBpbnZlcnQ6IGdldFplcm9BbmRFbXB0eSgpLFxuICAgICAgZ2FwOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgZ3JhZGllbnRDb2xvclN0b3BzOiBbY29sb3JzXSxcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zOiBbaXNQZXJjZW50LCBpc0FyYml0cmFyeUxlbmd0aF0sXG4gICAgICBpbnNldDogZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5KCksXG4gICAgICBtYXJnaW46IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSgpLFxuICAgICAgb3BhY2l0eTogZ2V0TnVtYmVyKCksXG4gICAgICBwYWRkaW5nOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpLFxuICAgICAgc2F0dXJhdGU6IGdldE51bWJlcigpLFxuICAgICAgc2NhbGU6IGdldE51bWJlcigpLFxuICAgICAgc2VwaWE6IGdldFplcm9BbmRFbXB0eSgpLFxuICAgICAgc2tldzogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KCksXG4gICAgICBzcGFjZTogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIHRyYW5zbGF0ZTogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgIH0sXG4gICAgY2xhc3NHcm91cHM6IHtcbiAgICAgIC8vIExheW91dFxuICAgICAgLyoqXG4gICAgICAgKiBBc3BlY3QgUmF0aW9cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hc3BlY3QtcmF0aW9cbiAgICAgICAqL1xuICAgICAgYXNwZWN0OiBbe1xuICAgICAgICBhc3BlY3Q6IFsnYXV0bycsICdzcXVhcmUnLCAndmlkZW8nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENvbnRhaW5lclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRhaW5lclxuICAgICAgICovXG4gICAgICBjb250YWluZXI6IFsnY29udGFpbmVyJ10sXG4gICAgICAvKipcbiAgICAgICAqIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb2x1bW5zXG4gICAgICAgKi9cbiAgICAgIGNvbHVtbnM6IFt7XG4gICAgICAgIGNvbHVtbnM6IFtpc1RzaGlydFNpemVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJlYWsgQWZ0ZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmVhay1hZnRlclxuICAgICAgICovXG4gICAgICAnYnJlYWstYWZ0ZXInOiBbe1xuICAgICAgICAnYnJlYWstYWZ0ZXInOiBnZXRCcmVha3MoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEJlZm9yZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyZWFrLWJlZm9yZVxuICAgICAgICovXG4gICAgICAnYnJlYWstYmVmb3JlJzogW3tcbiAgICAgICAgJ2JyZWFrLWJlZm9yZSc6IGdldEJyZWFrcygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJlYWsgSW5zaWRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJlYWstaW5zaWRlXG4gICAgICAgKi9cbiAgICAgICdicmVhay1pbnNpZGUnOiBbe1xuICAgICAgICAnYnJlYWstaW5zaWRlJzogWydhdXRvJywgJ2F2b2lkJywgJ2F2b2lkLXBhZ2UnLCAnYXZvaWQtY29sdW1uJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3ggRGVjb3JhdGlvbiBCcmVha1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1kZWNvcmF0aW9uLWJyZWFrXG4gICAgICAgKi9cbiAgICAgICdib3gtZGVjb3JhdGlvbic6IFt7XG4gICAgICAgICdib3gtZGVjb3JhdGlvbic6IFsnc2xpY2UnLCAnY2xvbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJveCBTaXppbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2l6aW5nXG4gICAgICAgKi9cbiAgICAgIGJveDogW3tcbiAgICAgICAgYm94OiBbJ2JvcmRlcicsICdjb250ZW50J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXNwbGF5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGlzcGxheVxuICAgICAgICovXG4gICAgICBkaXNwbGF5OiBbJ2Jsb2NrJywgJ2lubGluZS1ibG9jaycsICdpbmxpbmUnLCAnZmxleCcsICdpbmxpbmUtZmxleCcsICd0YWJsZScsICdpbmxpbmUtdGFibGUnLCAndGFibGUtY2FwdGlvbicsICd0YWJsZS1jZWxsJywgJ3RhYmxlLWNvbHVtbicsICd0YWJsZS1jb2x1bW4tZ3JvdXAnLCAndGFibGUtZm9vdGVyLWdyb3VwJywgJ3RhYmxlLWhlYWRlci1ncm91cCcsICd0YWJsZS1yb3ctZ3JvdXAnLCAndGFibGUtcm93JywgJ2Zsb3ctcm9vdCcsICdncmlkJywgJ2lubGluZS1ncmlkJywgJ2NvbnRlbnRzJywgJ2xpc3QtaXRlbScsICdoaWRkZW4nXSxcbiAgICAgIC8qKlxuICAgICAgICogRmxvYXRzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxvYXRcbiAgICAgICAqL1xuICAgICAgZmxvYXQ6IFt7XG4gICAgICAgIGZsb2F0OiBbJ3JpZ2h0JywgJ2xlZnQnLCAnbm9uZScsICdzdGFydCcsICdlbmQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENsZWFyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY2xlYXJcbiAgICAgICAqL1xuICAgICAgY2xlYXI6IFt7XG4gICAgICAgIGNsZWFyOiBbJ2xlZnQnLCAncmlnaHQnLCAnYm90aCcsICdub25lJywgJ3N0YXJ0JywgJ2VuZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSXNvbGF0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaXNvbGF0aW9uXG4gICAgICAgKi9cbiAgICAgIGlzb2xhdGlvbjogWydpc29sYXRlJywgJ2lzb2xhdGlvbi1hdXRvJ10sXG4gICAgICAvKipcbiAgICAgICAqIE9iamVjdCBGaXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vYmplY3QtZml0XG4gICAgICAgKi9cbiAgICAgICdvYmplY3QtZml0JzogW3tcbiAgICAgICAgb2JqZWN0OiBbJ2NvbnRhaW4nLCAnY292ZXInLCAnZmlsbCcsICdub25lJywgJ3NjYWxlLWRvd24nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9iamVjdCBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL29iamVjdC1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnb2JqZWN0LXBvc2l0aW9uJzogW3tcbiAgICAgICAgb2JqZWN0OiBbLi4uZ2V0UG9zaXRpb25zKCksIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdmVyZmxvd1xuICAgICAgICovXG4gICAgICBvdmVyZmxvdzogW3tcbiAgICAgICAgb3ZlcmZsb3c6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyZmxvdyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgJ292ZXJmbG93LXgnOiBbe1xuICAgICAgICAnb3ZlcmZsb3cteCc6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyZmxvdyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgJ292ZXJmbG93LXknOiBbe1xuICAgICAgICAnb3ZlcmZsb3cteSc6IGdldE92ZXJmbG93KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyc2Nyb2xsIEJlaGF2aW9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICBvdmVyc2Nyb2xsOiBbe1xuICAgICAgICBvdmVyc2Nyb2xsOiBnZXRPdmVyc2Nyb2xsKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdmVyc2Nyb2xsIEJlaGF2aW9yIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdmVyc2Nyb2xsLWJlaGF2aW9yXG4gICAgICAgKi9cbiAgICAgICdvdmVyc2Nyb2xsLXgnOiBbe1xuICAgICAgICAnb3ZlcnNjcm9sbC14JzogZ2V0T3ZlcnNjcm9sbCgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvciBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICAnb3ZlcnNjcm9sbC15JzogW3tcbiAgICAgICAgJ292ZXJzY3JvbGwteSc6IGdldE92ZXJzY3JvbGwoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgcG9zaXRpb246IFsnc3RhdGljJywgJ2ZpeGVkJywgJ2Fic29sdXRlJywgJ3JlbGF0aXZlJywgJ3N0aWNreSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3AgLyBSaWdodCAvIEJvdHRvbSAvIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgaW5zZXQ6IFt7XG4gICAgICAgIGluc2V0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmlnaHQgLyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgICdpbnNldC14JzogW3tcbiAgICAgICAgJ2luc2V0LXgnOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wIC8gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgICdpbnNldC15JzogW3tcbiAgICAgICAgJ2luc2V0LXknOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgc3RhcnQ6IFt7XG4gICAgICAgIHN0YXJ0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGVuZDogW3tcbiAgICAgICAgZW5kOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHRvcDogW3tcbiAgICAgICAgdG9wOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgcmlnaHQ6IFt7XG4gICAgICAgIHJpZ2h0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGJvdHRvbTogW3tcbiAgICAgICAgYm90dG9tOiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBsZWZ0OiBbe1xuICAgICAgICBsZWZ0OiBbaW5zZXRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVmlzaWJpbGl0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Zpc2liaWxpdHlcbiAgICAgICAqL1xuICAgICAgdmlzaWJpbGl0eTogWyd2aXNpYmxlJywgJ2ludmlzaWJsZScsICdjb2xsYXBzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBaLUluZGV4XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvei1pbmRleFxuICAgICAgICovXG4gICAgICB6OiBbe1xuICAgICAgICB6OiBbJ2F1dG8nLCBpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEZsZXhib3ggYW5kIEdyaWRcbiAgICAgIC8qKlxuICAgICAgICogRmxleCBCYXNpc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtYmFzaXNcbiAgICAgICAqL1xuICAgICAgYmFzaXM6IFt7XG4gICAgICAgIGJhc2lzOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggRGlyZWN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC1kaXJlY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogW3tcbiAgICAgICAgZmxleDogWydyb3cnLCAncm93LXJldmVyc2UnLCAnY29sJywgJ2NvbC1yZXZlcnNlJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IFdyYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LXdyYXBcbiAgICAgICAqL1xuICAgICAgJ2ZsZXgtd3JhcCc6IFt7XG4gICAgICAgIGZsZXg6IFsnd3JhcCcsICd3cmFwLXJldmVyc2UnLCAnbm93cmFwJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleFxuICAgICAgICovXG4gICAgICBmbGV4OiBbe1xuICAgICAgICBmbGV4OiBbJzEnLCAnYXV0bycsICdpbml0aWFsJywgJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggR3Jvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtZ3Jvd1xuICAgICAgICovXG4gICAgICBncm93OiBbe1xuICAgICAgICBncm93OiBnZXRaZXJvQW5kRW1wdHkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggU2hyaW5rXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC1zaHJpbmtcbiAgICAgICAqL1xuICAgICAgc2hyaW5rOiBbe1xuICAgICAgICBzaHJpbms6IGdldFplcm9BbmRFbXB0eSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3JkZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vcmRlclxuICAgICAgICovXG4gICAgICBvcmRlcjogW3tcbiAgICAgICAgb3JkZXI6IFsnZmlyc3QnLCAnbGFzdCcsICdub25lJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgVGVtcGxhdGUgQ29sdW1uc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtdGVtcGxhdGUtY29sdW1uc1xuICAgICAgICovXG4gICAgICAnZ3JpZC1jb2xzJzogW3tcbiAgICAgICAgJ2dyaWQtY29scyc6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIENvbHVtbiBTdGFydCAvIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtc3RhcnQtZW5kJzogW3tcbiAgICAgICAgY29sOiBbJ2F1dG8nLCB7XG4gICAgICAgICAgc3BhbjogWydmdWxsJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgICB9LCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQ29sdW1uIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1jb2x1bW5cbiAgICAgICAqL1xuICAgICAgJ2NvbC1zdGFydCc6IFt7XG4gICAgICAgICdjb2wtc3RhcnQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBDb2x1bW4gRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1jb2x1bW5cbiAgICAgICAqL1xuICAgICAgJ2NvbC1lbmQnOiBbe1xuICAgICAgICAnY29sLWVuZCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFRlbXBsYXRlIFJvd3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXRlbXBsYXRlLXJvd3NcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtcm93cyc6IFt7XG4gICAgICAgICdncmlkLXJvd3MnOiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgU3RhcnQgLyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LXN0YXJ0LWVuZCc6IFt7XG4gICAgICAgIHJvdzogWydhdXRvJywge1xuICAgICAgICAgIHNwYW46IFtpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICAgIH0sIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LXN0YXJ0JzogW3tcbiAgICAgICAgJ3Jvdy1zdGFydCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFJvdyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXJvd1xuICAgICAgICovXG4gICAgICAncm93LWVuZCc6IFt7XG4gICAgICAgICdyb3ctZW5kJzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQXV0byBGbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1hdXRvLWZsb3dcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtZmxvdyc6IFt7XG4gICAgICAgICdncmlkLWZsb3cnOiBbJ3JvdycsICdjb2wnLCAnZGVuc2UnLCAncm93LWRlbnNlJywgJ2NvbC1kZW5zZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBBdXRvIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWF1dG8tY29sdW1uc1xuICAgICAgICovXG4gICAgICAnYXV0by1jb2xzJzogW3tcbiAgICAgICAgJ2F1dG8tY29scyc6IFsnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIEF1dG8gUm93c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtYXV0by1yb3dzXG4gICAgICAgKi9cbiAgICAgICdhdXRvLXJvd3MnOiBbe1xuICAgICAgICAnYXV0by1yb3dzJzogWydhdXRvJywgJ21pbicsICdtYXgnLCAnZnInLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdhcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICBnYXA6IFt7XG4gICAgICAgIGdhcDogW2dhcF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXAgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICAnZ2FwLXgnOiBbe1xuICAgICAgICAnZ2FwLXgnOiBbZ2FwXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdhcCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ2FwXG4gICAgICAgKi9cbiAgICAgICdnYXAteSc6IFt7XG4gICAgICAgICdnYXAteSc6IFtnYXBdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvanVzdGlmeS1jb250ZW50XG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBbe1xuICAgICAgICBqdXN0aWZ5OiBbJ25vcm1hbCcsIC4uLmdldEFsaWduKCldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBJdGVtc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3RpZnktaXRlbXNcbiAgICAgICAqL1xuICAgICAgJ2p1c3RpZnktaXRlbXMnOiBbe1xuICAgICAgICAnanVzdGlmeS1pdGVtcyc6IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBKdXN0aWZ5IFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LXNlbGZcbiAgICAgICAqL1xuICAgICAgJ2p1c3RpZnktc2VsZic6IFt7XG4gICAgICAgICdqdXN0aWZ5LXNlbGYnOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbGlnbiBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYWxpZ24tY29udGVudFxuICAgICAgICovXG4gICAgICAnYWxpZ24tY29udGVudCc6IFt7XG4gICAgICAgIGNvbnRlbnQ6IFsnbm9ybWFsJywgLi4uZ2V0QWxpZ24oKSwgJ2Jhc2VsaW5lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbGlnbiBJdGVtc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLWl0ZW1zXG4gICAgICAgKi9cbiAgICAgICdhbGlnbi1pdGVtcyc6IFt7XG4gICAgICAgIGl0ZW1zOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnYmFzZWxpbmUnLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gU2VsZlxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLXNlbGZcbiAgICAgICAqL1xuICAgICAgJ2FsaWduLXNlbGYnOiBbe1xuICAgICAgICBzZWxmOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJywgJ2Jhc2VsaW5lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQbGFjZSBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2UtY29udGVudFxuICAgICAgICovXG4gICAgICAncGxhY2UtY29udGVudCc6IFt7XG4gICAgICAgICdwbGFjZS1jb250ZW50JzogWy4uLmdldEFsaWduKCksICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZS1pdGVtc1xuICAgICAgICovXG4gICAgICAncGxhY2UtaXRlbXMnOiBbe1xuICAgICAgICAncGxhY2UtaXRlbXMnOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnYmFzZWxpbmUnLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgU2VsZlxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlLXNlbGZcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLXNlbGYnOiBbe1xuICAgICAgICAncGxhY2Utc2VsZic6IFsnYXV0bycsICdzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvLyBTcGFjaW5nXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHA6IFt7XG4gICAgICAgIHA6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHg6IFt7XG4gICAgICAgIHB4OiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB5OiBbe1xuICAgICAgICBweTogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHM6IFt7XG4gICAgICAgIHBzOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGU6IFt7XG4gICAgICAgIHBlOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHQ6IFt7XG4gICAgICAgIHB0OiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwcjogW3tcbiAgICAgICAgcHI6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwYjogW3tcbiAgICAgICAgcGI6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGw6IFt7XG4gICAgICAgIHBsOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbTogW3tcbiAgICAgICAgbTogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBteDogW3tcbiAgICAgICAgbXg6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXk6IFt7XG4gICAgICAgIG15OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtczogW3tcbiAgICAgICAgbXM6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtZTogW3tcbiAgICAgICAgbWU6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtdDogW3tcbiAgICAgICAgbXQ6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG1yOiBbe1xuICAgICAgICBtcjogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG1iOiBbe1xuICAgICAgICBtYjogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtbDogW3tcbiAgICAgICAgbWw6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXgnOiBbe1xuICAgICAgICAnc3BhY2UteCc6IFtzcGFjZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFggUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS14LXJldmVyc2UnOiBbJ3NwYWNlLXgtcmV2ZXJzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zcGFjZVxuICAgICAgICovXG4gICAgICAnc3BhY2UteSc6IFt7XG4gICAgICAgICdzcGFjZS15JzogW3NwYWNlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNwYWNlIEJldHdlZW4gWSBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXktcmV2ZXJzZSc6IFsnc3BhY2UteS1yZXZlcnNlJ10sXG4gICAgICAvLyBTaXppbmdcbiAgICAgIC8qKlxuICAgICAgICogV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aWR0aFxuICAgICAgICovXG4gICAgICB3OiBbe1xuICAgICAgICB3OiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3Z3JywgJ2x2dycsICdkdncnLCBpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1pbi1XaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21pbi13aWR0aFxuICAgICAgICovXG4gICAgICAnbWluLXcnOiBbe1xuICAgICAgICAnbWluLXcnOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ21pbicsICdtYXgnLCAnZml0J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXgtV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXgtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ21heC13JzogW3tcbiAgICAgICAgJ21heC13JzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdub25lJywgJ2Z1bGwnLCAnbWluJywgJ21heCcsICdmaXQnLCAncHJvc2UnLCB7XG4gICAgICAgICAgc2NyZWVuOiBbaXNUc2hpcnRTaXplXVxuICAgICAgICB9LCBpc1RzaGlydFNpemVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSGVpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgIGg6IFt7XG4gICAgICAgIGg6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWluLUhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21pbi1oZWlnaHRcbiAgICAgICAqL1xuICAgICAgJ21pbi1oJzogW3tcbiAgICAgICAgJ21pbi1oJzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWF4LUhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21heC1oZWlnaHRcbiAgICAgICAqL1xuICAgICAgJ21heC1oJzogW3tcbiAgICAgICAgJ21heC1oJzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCcsICdzdmgnLCAnbHZoJywgJ2R2aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2l6ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NpemVcbiAgICAgICAqL1xuICAgICAgc2l6ZTogW3tcbiAgICAgICAgc2l6ZTogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdhdXRvJywgJ21pbicsICdtYXgnLCAnZml0J11cbiAgICAgIH1dLFxuICAgICAgLy8gVHlwb2dyYXBoeVxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXNpemVcbiAgICAgICAqL1xuICAgICAgJ2ZvbnQtc2l6ZSc6IFt7XG4gICAgICAgIHRleHQ6IFsnYmFzZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBTbW9vdGhpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXNtb290aGluZ1xuICAgICAgICovXG4gICAgICAnZm9udC1zbW9vdGhpbmcnOiBbJ2FudGlhbGlhc2VkJywgJ3N1YnBpeGVsLWFudGlhbGlhc2VkJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdmb250LXN0eWxlJzogWydpdGFsaWMnLCAnbm90LWl0YWxpYyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFdlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtd2VpZ2h0XG4gICAgICAgKi9cbiAgICAgICdmb250LXdlaWdodCc6IFt7XG4gICAgICAgIGZvbnQ6IFsndGhpbicsICdleHRyYWxpZ2h0JywgJ2xpZ2h0JywgJ25vcm1hbCcsICdtZWRpdW0nLCAnc2VtaWJvbGQnLCAnYm9sZCcsICdleHRyYWJvbGQnLCAnYmxhY2snLCBpc0FyYml0cmFyeU51bWJlcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IEZhbWlseVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtZmFtaWx5XG4gICAgICAgKi9cbiAgICAgICdmb250LWZhbWlseSc6IFt7XG4gICAgICAgIGZvbnQ6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tbm9ybWFsJzogWydub3JtYWwtbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tb3JkaW5hbCc6IFsnb3JkaW5hbCddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tc2xhc2hlZC16ZXJvJzogWydzbGFzaGVkLXplcm8nXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLWZpZ3VyZSc6IFsnbGluaW5nLW51bXMnLCAnb2xkc3R5bGUtbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tc3BhY2luZyc6IFsncHJvcG9ydGlvbmFsLW51bXMnLCAndGFidWxhci1udW1zJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgVmFyaWFudCBOdW1lcmljXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcbiAgICAgICAqL1xuICAgICAgJ2Z2bi1mcmFjdGlvbic6IFsnZGlhZ29uYWwtZnJhY3Rpb25zJywgJ3N0YWNrZWQtZnJhY3RvbnMnXSxcbiAgICAgIC8qKlxuICAgICAgICogTGV0dGVyIFNwYWNpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9sZXR0ZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICB0cmFja2luZzogW3tcbiAgICAgICAgdHJhY2tpbmc6IFsndGlnaHRlcicsICd0aWdodCcsICdub3JtYWwnLCAnd2lkZScsICd3aWRlcicsICd3aWRlc3QnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpbmUgQ2xhbXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saW5lLWNsYW1wXG4gICAgICAgKi9cbiAgICAgICdsaW5lLWNsYW1wJzogW3tcbiAgICAgICAgJ2xpbmUtY2xhbXAnOiBbJ25vbmUnLCBpc051bWJlciwgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGluZSBIZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saW5lLWhlaWdodFxuICAgICAgICovXG4gICAgICBsZWFkaW5nOiBbe1xuICAgICAgICBsZWFkaW5nOiBbJ25vbmUnLCAndGlnaHQnLCAnc251ZycsICdub3JtYWwnLCAncmVsYXhlZCcsICdsb29zZScsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpc3QgU3R5bGUgSW1hZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saXN0LXN0eWxlLWltYWdlXG4gICAgICAgKi9cbiAgICAgICdsaXN0LWltYWdlJzogW3tcbiAgICAgICAgJ2xpc3QtaW1hZ2UnOiBbJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpc3QgU3R5bGUgVHlwZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtdHlwZVxuICAgICAgICovXG4gICAgICAnbGlzdC1zdHlsZS10eXBlJzogW3tcbiAgICAgICAgbGlzdDogWydub25lJywgJ2Rpc2MnLCAnZGVjaW1hbCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ2xpc3Qtc3R5bGUtcG9zaXRpb24nOiBbe1xuICAgICAgICBsaXN0OiBbJ2luc2lkZScsICdvdXRzaWRlJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQbGFjZWhvbGRlciBDb2xvclxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlaG9sZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdwbGFjZWhvbGRlci1jb2xvcic6IFt7XG4gICAgICAgIHBsYWNlaG9sZGVyOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlaG9sZGVyIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZWhvbGRlci1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICdwbGFjZWhvbGRlci1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3BsYWNlaG9sZGVyLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IEFsaWdubWVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtYWxpZ25cbiAgICAgICAqL1xuICAgICAgJ3RleHQtYWxpZ25tZW50JzogW3tcbiAgICAgICAgdGV4dDogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCcsICdqdXN0aWZ5JywgJ3N0YXJ0JywgJ2VuZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3RleHQtY29sb3InOiBbe1xuICAgICAgICB0ZXh0OiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAndGV4dC1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3RleHQtb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvblxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uJzogWyd1bmRlcmxpbmUnLCAnb3ZlcmxpbmUnLCAnbGluZS10aHJvdWdoJywgJ25vLXVuZGVybGluZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ3RleHQtZGVjb3JhdGlvbi1zdHlsZSc6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFsuLi5nZXRMaW5lU3R5bGVzKCksICd3YXZ5J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gVGhpY2tuZXNzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzc1xuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyc6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFsnYXV0bycsICdmcm9tLWZvbnQnLCBpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBVbmRlcmxpbmUgT2Zmc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC11bmRlcmxpbmUtb2Zmc2V0XG4gICAgICAgKi9cbiAgICAgICd1bmRlcmxpbmUtb2Zmc2V0JzogW3tcbiAgICAgICAgJ3VuZGVybGluZS1vZmZzZXQnOiBbJ2F1dG8nLCBpc0xlbmd0aCwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb24gQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3RleHQtZGVjb3JhdGlvbi1jb2xvcic6IFt7XG4gICAgICAgIGRlY29yYXRpb246IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBUcmFuc2Zvcm1cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXRyYW5zZm9ybVxuICAgICAgICovXG4gICAgICAndGV4dC10cmFuc2Zvcm0nOiBbJ3VwcGVyY2FzZScsICdsb3dlcmNhc2UnLCAnY2FwaXRhbGl6ZScsICdub3JtYWwtY2FzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IE92ZXJmbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1vdmVyZmxvd1xuICAgICAgICovXG4gICAgICAndGV4dC1vdmVyZmxvdyc6IFsndHJ1bmNhdGUnLCAndGV4dC1lbGxpcHNpcycsICd0ZXh0LWNsaXAnXSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBXcmFwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC13cmFwXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LXdyYXAnOiBbe1xuICAgICAgICB0ZXh0OiBbJ3dyYXAnLCAnbm93cmFwJywgJ2JhbGFuY2UnLCAncHJldHR5J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IEluZGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtaW5kZW50XG4gICAgICAgKi9cbiAgICAgIGluZGVudDogW3tcbiAgICAgICAgaW5kZW50OiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVmVydGljYWwgQWxpZ25tZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdmVydGljYWwtYWxpZ25cbiAgICAgICAqL1xuICAgICAgJ3ZlcnRpY2FsLWFsaWduJzogW3tcbiAgICAgICAgYWxpZ246IFsnYmFzZWxpbmUnLCAndG9wJywgJ21pZGRsZScsICdib3R0b20nLCAndGV4dC10b3AnLCAndGV4dC1ib3R0b20nLCAnc3ViJywgJ3N1cGVyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBXaGl0ZXNwYWNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2hpdGVzcGFjZVxuICAgICAgICovXG4gICAgICB3aGl0ZXNwYWNlOiBbe1xuICAgICAgICB3aGl0ZXNwYWNlOiBbJ25vcm1hbCcsICdub3dyYXAnLCAncHJlJywgJ3ByZS1saW5lJywgJ3ByZS13cmFwJywgJ2JyZWFrLXNwYWNlcyddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogV29yZCBCcmVha1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3dvcmQtYnJlYWtcbiAgICAgICAqL1xuICAgICAgYnJlYWs6IFt7XG4gICAgICAgIGJyZWFrOiBbJ25vcm1hbCcsICd3b3JkcycsICdhbGwnLCAna2VlcCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSHlwaGVuc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2h5cGhlbnNcbiAgICAgICAqL1xuICAgICAgaHlwaGVuczogW3tcbiAgICAgICAgaHlwaGVuczogWydub25lJywgJ21hbnVhbCcsICdhdXRvJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250ZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudFxuICAgICAgICovXG4gICAgICBjb250ZW50OiBbe1xuICAgICAgICBjb250ZW50OiBbJ25vbmUnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBCYWNrZ3JvdW5kc1xuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEF0dGFjaG1lbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWF0dGFjaG1lbnRcbiAgICAgICAqL1xuICAgICAgJ2JnLWF0dGFjaG1lbnQnOiBbe1xuICAgICAgICBiZzogWydmaXhlZCcsICdsb2NhbCcsICdzY3JvbGwnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgQ2xpcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtY2xpcFxuICAgICAgICovXG4gICAgICAnYmctY2xpcCc6IFt7XG4gICAgICAgICdiZy1jbGlwJzogWydib3JkZXInLCAncGFkZGluZycsICdjb250ZW50JywgJ3RleHQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgT3BhY2l0eVxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYmctb3BhY2l0eSc6IFt7XG4gICAgICAgICdiZy1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBPcmlnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLW9yaWdpblxuICAgICAgICovXG4gICAgICAnYmctb3JpZ2luJzogW3tcbiAgICAgICAgJ2JnLW9yaWdpbic6IFsnYm9yZGVyJywgJ3BhZGRpbmcnLCAnY29udGVudCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ2JnLXBvc2l0aW9uJzogW3tcbiAgICAgICAgYmc6IFsuLi5nZXRQb3NpdGlvbnMoKSwgaXNBcmJpdHJhcnlQb3NpdGlvbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIFJlcGVhdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtcmVwZWF0XG4gICAgICAgKi9cbiAgICAgICdiZy1yZXBlYXQnOiBbe1xuICAgICAgICBiZzogWyduby1yZXBlYXQnLCB7XG4gICAgICAgICAgcmVwZWF0OiBbJycsICd4JywgJ3knLCAncm91bmQnLCAnc3BhY2UnXVxuICAgICAgICB9XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgU2l6ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtc2l6ZVxuICAgICAgICovXG4gICAgICAnYmctc2l6ZSc6IFt7XG4gICAgICAgIGJnOiBbJ2F1dG8nLCAnY292ZXInLCAnY29udGFpbicsIGlzQXJiaXRyYXJ5U2l6ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEltYWdlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1pbWFnZVxuICAgICAgICovXG4gICAgICAnYmctaW1hZ2UnOiBbe1xuICAgICAgICBiZzogWydub25lJywge1xuICAgICAgICAgICdncmFkaWVudC10byc6IFsndCcsICd0cicsICdyJywgJ2JyJywgJ2InLCAnYmwnLCAnbCcsICd0bCddXG4gICAgICAgIH0sIGlzQXJiaXRyYXJ5SW1hZ2VdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JnLWNvbG9yJzogW3tcbiAgICAgICAgYmc6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgRnJvbSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC1mcm9tLXBvcyc6IFt7XG4gICAgICAgIGZyb206IFtncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBWaWEgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdmlhLXBvcyc6IFt7XG4gICAgICAgIHZpYTogW2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFRvIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LXRvLXBvcyc6IFt7XG4gICAgICAgIHRvOiBbZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgRnJvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC1mcm9tJzogW3tcbiAgICAgICAgZnJvbTogW2dyYWRpZW50Q29sb3JTdG9wc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBWaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdmlhJzogW3tcbiAgICAgICAgdmlhOiBbZ3JhZGllbnRDb2xvclN0b3BzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFRvXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LXRvJzogW3tcbiAgICAgICAgdG86IFtncmFkaWVudENvbG9yU3RvcHNdXG4gICAgICB9XSxcbiAgICAgIC8vIEJvcmRlcnNcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgcm91bmRlZDogW3tcbiAgICAgICAgcm91bmRlZDogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1zJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtcyc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWUnOiBbe1xuICAgICAgICAncm91bmRlZC1lJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtdCc6IFt7XG4gICAgICAgICdyb3VuZGVkLXQnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXInOiBbe1xuICAgICAgICAncm91bmRlZC1yJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYic6IFt7XG4gICAgICAgICdyb3VuZGVkLWInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtbCc6IFt7XG4gICAgICAgICdyb3VuZGVkLWwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnQgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXNzJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtc3MnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnQgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1zZSc6IFt7XG4gICAgICAgICdyb3VuZGVkLXNlJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEVuZCBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWVlJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtZWUnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgRW5kIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1lcyc6IFt7XG4gICAgICAgICdyb3VuZGVkLWVzJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcCBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10bCc6IFt7XG4gICAgICAgICdyb3VuZGVkLXRsJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFRvcCBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtdHInOiBbe1xuICAgICAgICAncm91bmRlZC10cic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBCb3R0b20gUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWJyJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYnInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgQm90dG9tIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWJsJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYmwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcnOiBbe1xuICAgICAgICBib3JkZXI6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcteCc6IFt7XG4gICAgICAgICdib3JkZXIteCc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXcteSc6IFt7XG4gICAgICAgICdib3JkZXIteSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXMnOiBbe1xuICAgICAgICAnYm9yZGVyLXMnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctZSc6IFt7XG4gICAgICAgICdib3JkZXItZSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy10JzogW3tcbiAgICAgICAgJ2JvcmRlci10JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctcic6IFt7XG4gICAgICAgICdib3JkZXItcic6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1iJzogW3tcbiAgICAgICAgJ2JvcmRlci1iJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1sJzogW3tcbiAgICAgICAgJ2JvcmRlci1sJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2JvcmRlci1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItc3R5bGUnOiBbe1xuICAgICAgICBib3JkZXI6IFsuLi5nZXRMaW5lU3R5bGVzKCksICdoaWRkZW4nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteCc6IFt7XG4gICAgICAgICdkaXZpZGUteCc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWCBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteC1yZXZlcnNlJzogWydkaXZpZGUteC1yZXZlcnNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteSc6IFt7XG4gICAgICAgICdkaXZpZGUteSc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWSBSZXZlcnNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUteS1yZXZlcnNlJzogWydkaXZpZGUteS1yZXZlcnNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2RpdmlkZS1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUtc3R5bGUnOiBbe1xuICAgICAgICBkaXZpZGU6IGdldExpbmVTdHlsZXMoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yJzogW3tcbiAgICAgICAgYm9yZGVyOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci14JzogW3tcbiAgICAgICAgJ2JvcmRlci14JzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3IteSc6IFt7XG4gICAgICAgICdib3JkZXIteSc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItdCc6IFt7XG4gICAgICAgICdib3JkZXItdCc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci1yJzogW3tcbiAgICAgICAgJ2JvcmRlci1yJzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci1iJzogW3tcbiAgICAgICAgJ2JvcmRlci1iJzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItbCc6IFt7XG4gICAgICAgICdib3JkZXItbCc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1jb2xvcic6IFt7XG4gICAgICAgIGRpdmlkZTogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLXN0eWxlJzogW3tcbiAgICAgICAgb3V0bGluZTogWycnLCAuLi5nZXRMaW5lU3R5bGVzKCldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBPZmZzZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLW9mZnNldFxuICAgICAgICovXG4gICAgICAnb3V0bGluZS1vZmZzZXQnOiBbe1xuICAgICAgICAnb3V0bGluZS1vZmZzZXQnOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL291dGxpbmUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtdyc6IFt7XG4gICAgICAgIG91dGxpbmU6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3V0bGluZSBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL291dGxpbmUtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtY29sb3InOiBbe1xuICAgICAgICBvdXRsaW5lOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLXcnOiBbe1xuICAgICAgICByaW5nOiBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgV2lkdGggSW5zZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLXctaW5zZXQnOiBbJ3JpbmctaW5zZXQnXSxcbiAgICAgIC8qKlxuICAgICAgICogUmluZyBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3JpbmctY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3JpbmctY29sb3InOiBbe1xuICAgICAgICByaW5nOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb3BhY2l0eVxuICAgICAgICovXG4gICAgICAncmluZy1vcGFjaXR5JzogW3tcbiAgICAgICAgJ3Jpbmctb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT2Zmc2V0IFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy1vZmZzZXQtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb2Zmc2V0LXcnOiBbe1xuICAgICAgICAncmluZy1vZmZzZXQnOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgT2Zmc2V0IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy1vZmZzZXQtY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb2Zmc2V0LWNvbG9yJzogW3tcbiAgICAgICAgJ3Jpbmctb2Zmc2V0JzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLy8gRWZmZWN0c1xuICAgICAgLyoqXG4gICAgICAgKiBCb3ggU2hhZG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm94LXNoYWRvd1xuICAgICAgICovXG4gICAgICBzaGFkb3c6IFt7XG4gICAgICAgIHNoYWRvdzogWycnLCAnaW5uZXInLCAnbm9uZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlTaGFkb3ddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm94IFNoYWRvdyBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1zaGFkb3ctY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3NoYWRvdy1jb2xvcic6IFt7XG4gICAgICAgIHNoYWRvdzogW2lzQW55XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgIG9wYWNpdHk6IFt7XG4gICAgICAgIG9wYWNpdHk6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1peCBCbGVuZCBNb2RlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWl4LWJsZW5kLW1vZGVcbiAgICAgICAqL1xuICAgICAgJ21peC1ibGVuZCc6IFt7XG4gICAgICAgICdtaXgtYmxlbmQnOiBnZXRCbGVuZE1vZGVzKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIEJsZW5kIE1vZGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWJsZW5kLW1vZGVcbiAgICAgICAqL1xuICAgICAgJ2JnLWJsZW5kJzogW3tcbiAgICAgICAgJ2JnLWJsZW5kJzogZ2V0QmxlbmRNb2RlcygpXG4gICAgICB9XSxcbiAgICAgIC8vIEZpbHRlcnNcbiAgICAgIC8qKlxuICAgICAgICogRmlsdGVyXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmlsdGVyXG4gICAgICAgKi9cbiAgICAgIGZpbHRlcjogW3tcbiAgICAgICAgZmlsdGVyOiBbJycsICdub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCbHVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmx1clxuICAgICAgICovXG4gICAgICBibHVyOiBbe1xuICAgICAgICBibHVyOiBbYmx1cl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCcmlnaHRuZXNzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJpZ2h0bmVzc1xuICAgICAgICovXG4gICAgICBicmlnaHRuZXNzOiBbe1xuICAgICAgICBicmlnaHRuZXNzOiBbYnJpZ2h0bmVzc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250cmFzdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRyYXN0XG4gICAgICAgKi9cbiAgICAgIGNvbnRyYXN0OiBbe1xuICAgICAgICBjb250cmFzdDogW2NvbnRyYXN0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERyb3AgU2hhZG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZHJvcC1zaGFkb3dcbiAgICAgICAqL1xuICAgICAgJ2Ryb3Atc2hhZG93JzogW3tcbiAgICAgICAgJ2Ryb3Atc2hhZG93JzogWycnLCAnbm9uZScsIGlzVHNoaXJ0U2l6ZSwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmF5c2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmF5c2NhbGVcbiAgICAgICAqL1xuICAgICAgZ3JheXNjYWxlOiBbe1xuICAgICAgICBncmF5c2NhbGU6IFtncmF5c2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSHVlIFJvdGF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2h1ZS1yb3RhdGVcbiAgICAgICAqL1xuICAgICAgJ2h1ZS1yb3RhdGUnOiBbe1xuICAgICAgICAnaHVlLXJvdGF0ZSc6IFtodWVSb3RhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSW52ZXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaW52ZXJ0XG4gICAgICAgKi9cbiAgICAgIGludmVydDogW3tcbiAgICAgICAgaW52ZXJ0OiBbaW52ZXJ0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNhdHVyYXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2F0dXJhdGVcbiAgICAgICAqL1xuICAgICAgc2F0dXJhdGU6IFt7XG4gICAgICAgIHNhdHVyYXRlOiBbc2F0dXJhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2VwaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zZXBpYVxuICAgICAgICovXG4gICAgICBzZXBpYTogW3tcbiAgICAgICAgc2VwaWE6IFtzZXBpYV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBGaWx0ZXJcbiAgICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIFRhaWx3aW5kIENTUyB2My4wLjBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1maWx0ZXJcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWZpbHRlcic6IFt7XG4gICAgICAgICdiYWNrZHJvcC1maWx0ZXInOiBbJycsICdub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBCbHVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtYmx1clxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtYmx1cic6IFt7XG4gICAgICAgICdiYWNrZHJvcC1ibHVyJzogW2JsdXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgQnJpZ2h0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJyaWdodG5lc3NcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWJyaWdodG5lc3MnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtYnJpZ2h0bmVzcyc6IFticmlnaHRuZXNzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIENvbnRyYXN0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtY29udHJhc3RcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWNvbnRyYXN0JzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWNvbnRyYXN0JzogW2NvbnRyYXN0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEdyYXlzY2FsZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWdyYXlzY2FsZVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtZ3JheXNjYWxlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWdyYXlzY2FsZSc6IFtncmF5c2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgSHVlIFJvdGF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWh1ZS1yb3RhdGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWh1ZS1yb3RhdGUnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtaHVlLXJvdGF0ZSc6IFtodWVSb3RhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgSW52ZXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtaW52ZXJ0XG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1pbnZlcnQnOiBbe1xuICAgICAgICAnYmFja2Ryb3AtaW52ZXJ0JzogW2ludmVydF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atb3BhY2l0eSc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgU2F0dXJhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1zYXR1cmF0ZVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atc2F0dXJhdGUnOiBbe1xuICAgICAgICAnYmFja2Ryb3Atc2F0dXJhdGUnOiBbc2F0dXJhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgU2VwaWFcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1zZXBpYVxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3Atc2VwaWEnOiBbe1xuICAgICAgICAnYmFja2Ryb3Atc2VwaWEnOiBbc2VwaWFdXG4gICAgICB9XSxcbiAgICAgIC8vIFRhYmxlc1xuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sbGFwc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sbGFwc2VcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xsYXBzZSc6IFt7XG4gICAgICAgIGJvcmRlcjogWydjb2xsYXBzZScsICdzZXBhcmF0ZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFNwYWNpbmdcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbYm9yZGVyU3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3BhY2luZyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nLXgnOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcteCc6IFtib3JkZXJTcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBTcGFjaW5nIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3BhY2luZ1xuICAgICAgICovXG4gICAgICAnYm9yZGVyLXNwYWNpbmcteSc6IFt7XG4gICAgICAgICdib3JkZXItc3BhY2luZy15JzogW2JvcmRlclNwYWNpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGFibGUgTGF5b3V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGFibGUtbGF5b3V0XG4gICAgICAgKi9cbiAgICAgICd0YWJsZS1sYXlvdXQnOiBbe1xuICAgICAgICB0YWJsZTogWydhdXRvJywgJ2ZpeGVkJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDYXB0aW9uIFNpZGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jYXB0aW9uLXNpZGVcbiAgICAgICAqL1xuICAgICAgY2FwdGlvbjogW3tcbiAgICAgICAgY2FwdGlvbjogWyd0b3AnLCAnYm90dG9tJ11cbiAgICAgIH1dLFxuICAgICAgLy8gVHJhbnNpdGlvbnMgYW5kIEFuaW1hdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuaXNpdGlvbiBQcm9wZXJ0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tcHJvcGVydHlcbiAgICAgICAqL1xuICAgICAgdHJhbnNpdGlvbjogW3tcbiAgICAgICAgdHJhbnNpdGlvbjogWydub25lJywgJ2FsbCcsICcnLCAnY29sb3JzJywgJ29wYWNpdHknLCAnc2hhZG93JywgJ3RyYW5zZm9ybScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNpdGlvbiBEdXJhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tZHVyYXRpb25cbiAgICAgICAqL1xuICAgICAgZHVyYXRpb246IFt7XG4gICAgICAgIGR1cmF0aW9uOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gVGltaW5nIEZ1bmN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cbiAgICAgICAqL1xuICAgICAgZWFzZTogW3tcbiAgICAgICAgZWFzZTogWydsaW5lYXInLCAnaW4nLCAnb3V0JywgJ2luLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNpdGlvbiBEZWxheVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tZGVsYXlcbiAgICAgICAqL1xuICAgICAgZGVsYXk6IFt7XG4gICAgICAgIGRlbGF5OiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEFuaW1hdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FuaW1hdGlvblxuICAgICAgICovXG4gICAgICBhbmltYXRlOiBbe1xuICAgICAgICBhbmltYXRlOiBbJ25vbmUnLCAnc3BpbicsICdwaW5nJywgJ3B1bHNlJywgJ2JvdW5jZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIFRyYW5zZm9ybXNcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNmb3JtXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNmb3JtXG4gICAgICAgKi9cbiAgICAgIHRyYW5zZm9ybTogW3tcbiAgICAgICAgdHJhbnNmb3JtOiBbJycsICdncHUnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY2FsZVxuICAgICAgICovXG4gICAgICBzY2FsZTogW3tcbiAgICAgICAgc2NhbGU6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY2FsZSBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgJ3NjYWxlLXgnOiBbe1xuICAgICAgICAnc2NhbGUteCc6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY2FsZSBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgJ3NjYWxlLXknOiBbe1xuICAgICAgICAnc2NhbGUteSc6IFtzY2FsZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yb3RhdGVcbiAgICAgICAqL1xuICAgICAgcm90YXRlOiBbe1xuICAgICAgICByb3RhdGU6IFtpc0ludGVnZXIsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNsYXRlIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2xhdGVcbiAgICAgICAqL1xuICAgICAgJ3RyYW5zbGF0ZS14JzogW3tcbiAgICAgICAgJ3RyYW5zbGF0ZS14JzogW3RyYW5zbGF0ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuc2xhdGUgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zbGF0ZVxuICAgICAgICovXG4gICAgICAndHJhbnNsYXRlLXknOiBbe1xuICAgICAgICAndHJhbnNsYXRlLXknOiBbdHJhbnNsYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNrZXcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NrZXdcbiAgICAgICAqL1xuICAgICAgJ3NrZXcteCc6IFt7XG4gICAgICAgICdza2V3LXgnOiBbc2tld11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTa2V3IFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XG4gICAgICAgKi9cbiAgICAgICdza2V3LXknOiBbe1xuICAgICAgICAnc2tldy15JzogW3NrZXddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNmb3JtIE9yaWdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zZm9ybS1vcmlnaW5cbiAgICAgICAqL1xuICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiBbe1xuICAgICAgICBvcmlnaW46IFsnY2VudGVyJywgJ3RvcCcsICd0b3AtcmlnaHQnLCAncmlnaHQnLCAnYm90dG9tLXJpZ2h0JywgJ2JvdHRvbScsICdib3R0b20tbGVmdCcsICdsZWZ0JywgJ3RvcC1sZWZ0JywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLy8gSW50ZXJhY3Rpdml0eVxuICAgICAgLyoqXG4gICAgICAgKiBBY2NlbnQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hY2NlbnQtY29sb3JcbiAgICAgICAqL1xuICAgICAgYWNjZW50OiBbe1xuICAgICAgICBhY2NlbnQ6IFsnYXV0bycsIGNvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBcHBlYXJhbmNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYXBwZWFyYW5jZVxuICAgICAgICovXG4gICAgICBhcHBlYXJhbmNlOiBbe1xuICAgICAgICBhcHBlYXJhbmNlOiBbJ25vbmUnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ3Vyc29yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY3Vyc29yXG4gICAgICAgKi9cbiAgICAgIGN1cnNvcjogW3tcbiAgICAgICAgY3Vyc29yOiBbJ2F1dG8nLCAnZGVmYXVsdCcsICdwb2ludGVyJywgJ3dhaXQnLCAndGV4dCcsICdtb3ZlJywgJ2hlbHAnLCAnbm90LWFsbG93ZWQnLCAnbm9uZScsICdjb250ZXh0LW1lbnUnLCAncHJvZ3Jlc3MnLCAnY2VsbCcsICdjcm9zc2hhaXInLCAndmVydGljYWwtdGV4dCcsICdhbGlhcycsICdjb3B5JywgJ25vLWRyb3AnLCAnZ3JhYicsICdncmFiYmluZycsICdhbGwtc2Nyb2xsJywgJ2NvbC1yZXNpemUnLCAncm93LXJlc2l6ZScsICduLXJlc2l6ZScsICdlLXJlc2l6ZScsICdzLXJlc2l6ZScsICd3LXJlc2l6ZScsICduZS1yZXNpemUnLCAnbnctcmVzaXplJywgJ3NlLXJlc2l6ZScsICdzdy1yZXNpemUnLCAnZXctcmVzaXplJywgJ25zLXJlc2l6ZScsICduZXN3LXJlc2l6ZScsICdud3NlLXJlc2l6ZScsICd6b29tLWluJywgJ3pvb20tb3V0JywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDYXJldCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3QtaW4tdGltZS1tb2RlI2NhcmV0LWNvbG9yLXV0aWxpdGllc1xuICAgICAgICovXG4gICAgICAnY2FyZXQtY29sb3InOiBbe1xuICAgICAgICBjYXJldDogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQb2ludGVyIEV2ZW50c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BvaW50ZXItZXZlbnRzXG4gICAgICAgKi9cbiAgICAgICdwb2ludGVyLWV2ZW50cyc6IFt7XG4gICAgICAgICdwb2ludGVyLWV2ZW50cyc6IFsnbm9uZScsICdhdXRvJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSZXNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yZXNpemVcbiAgICAgICAqL1xuICAgICAgcmVzaXplOiBbe1xuICAgICAgICByZXNpemU6IFsnbm9uZScsICd5JywgJ3gnLCAnJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgQmVoYXZpb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1iZWhhdmlvcic6IFt7XG4gICAgICAgIHNjcm9sbDogWydhdXRvJywgJ3Ntb290aCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1teCc6IFt7XG4gICAgICAgICdzY3JvbGwtbXgnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW15JzogW3tcbiAgICAgICAgJ3Njcm9sbC1teSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1zJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tcyc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tZSc6IFt7XG4gICAgICAgICdzY3JvbGwtbWUnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXQnOiBbe1xuICAgICAgICAnc2Nyb2xsLW10JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXInOiBbe1xuICAgICAgICAnc2Nyb2xsLW1yJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1iJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tYic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbWwnOiBbe1xuICAgICAgICAnc2Nyb2xsLW1sJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXB4JzogW3tcbiAgICAgICAgJ3Njcm9sbC1weCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1weSc6IFt7XG4gICAgICAgICdzY3JvbGwtcHknOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBzJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wcyc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBlJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wZSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXB0JzogW3tcbiAgICAgICAgJ3Njcm9sbC1wdCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcHInOiBbe1xuICAgICAgICAnc2Nyb2xsLXByJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcGInOiBbe1xuICAgICAgICAnc2Nyb2xsLXBiJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBsJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wbCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBBbGlnblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1zbmFwLWFsaWduXG4gICAgICAgKi9cbiAgICAgICdzbmFwLWFsaWduJzogW3tcbiAgICAgICAgc25hcDogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2FsaWduLW5vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFN0b3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC1zdG9wXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXN0b3AnOiBbe1xuICAgICAgICBzbmFwOiBbJ25vcm1hbCcsICdhbHdheXMnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFR5cGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC10eXBlXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXR5cGUnOiBbe1xuICAgICAgICBzbmFwOiBbJ25vbmUnLCAneCcsICd5JywgJ2JvdGgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBTbmFwIFR5cGUgU3RyaWN0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1zbmFwLXR5cGVcbiAgICAgICAqL1xuICAgICAgJ3NuYXAtc3RyaWN0bmVzcyc6IFt7XG4gICAgICAgIHNuYXA6IFsnbWFuZGF0b3J5JywgJ3Byb3hpbWl0eSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIHRvdWNoOiBbe1xuICAgICAgICB0b3VjaDogWydhdXRvJywgJ25vbmUnLCAnbWFuaXB1bGF0aW9uJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3VjaCBBY3Rpb24gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICAndG91Y2gteCc6IFt7XG4gICAgICAgICd0b3VjaC1wYW4nOiBbJ3gnLCAnbGVmdCcsICdyaWdodCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3VjaC1hY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ3RvdWNoLXknOiBbe1xuICAgICAgICAndG91Y2gtcGFuJzogWyd5JywgJ3VwJywgJ2Rvd24nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvbiBQaW5jaCBab29tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgICd0b3VjaC1weic6IFsndG91Y2gtcGluY2gtem9vbSddLFxuICAgICAgLyoqXG4gICAgICAgKiBVc2VyIFNlbGVjdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VzZXItc2VsZWN0XG4gICAgICAgKi9cbiAgICAgIHNlbGVjdDogW3tcbiAgICAgICAgc2VsZWN0OiBbJ25vbmUnLCAndGV4dCcsICdhbGwnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogV2lsbCBDaGFuZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aWxsLWNoYW5nZVxuICAgICAgICovXG4gICAgICAnd2lsbC1jaGFuZ2UnOiBbe1xuICAgICAgICAnd2lsbC1jaGFuZ2UnOiBbJ2F1dG8nLCAnc2Nyb2xsJywgJ2NvbnRlbnRzJywgJ3RyYW5zZm9ybScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIFNWR1xuICAgICAgLyoqXG4gICAgICAgKiBGaWxsXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmlsbFxuICAgICAgICovXG4gICAgICBmaWxsOiBbe1xuICAgICAgICBmaWxsOiBbY29sb3JzLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3Ryb2tlIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3Ryb2tlLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdzdHJva2Utdyc6IFt7XG4gICAgICAgIHN0cm9rZTogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aCwgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3Ryb2tlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3Ryb2tlXG4gICAgICAgKi9cbiAgICAgIHN0cm9rZTogW3tcbiAgICAgICAgc3Ryb2tlOiBbY29sb3JzLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8vIEFjY2Vzc2liaWxpdHlcbiAgICAgIC8qKlxuICAgICAgICogU2NyZWVuIFJlYWRlcnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JlZW4tcmVhZGVyc1xuICAgICAgICovXG4gICAgICBzcjogWydzci1vbmx5JywgJ25vdC1zci1vbmx5J10sXG4gICAgICAvKipcbiAgICAgICAqIEZvcmNlZCBDb2xvciBBZGp1c3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb3JjZWQtY29sb3ItYWRqdXN0XG4gICAgICAgKi9cbiAgICAgICdmb3JjZWQtY29sb3ItYWRqdXN0JzogW3tcbiAgICAgICAgJ2ZvcmNlZC1jb2xvci1hZGp1c3QnOiBbJ2F1dG8nLCAnbm9uZSddXG4gICAgICB9XVxuICAgIH0sXG4gICAgY29uZmxpY3RpbmdDbGFzc0dyb3Vwczoge1xuICAgICAgb3ZlcmZsb3c6IFsnb3ZlcmZsb3cteCcsICdvdmVyZmxvdy15J10sXG4gICAgICBvdmVyc2Nyb2xsOiBbJ292ZXJzY3JvbGwteCcsICdvdmVyc2Nyb2xsLXknXSxcbiAgICAgIGluc2V0OiBbJ2luc2V0LXgnLCAnaW5zZXQteScsICdzdGFydCcsICdlbmQnLCAndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10sXG4gICAgICAnaW5zZXQteCc6IFsncmlnaHQnLCAnbGVmdCddLFxuICAgICAgJ2luc2V0LXknOiBbJ3RvcCcsICdib3R0b20nXSxcbiAgICAgIGZsZXg6IFsnYmFzaXMnLCAnZ3JvdycsICdzaHJpbmsnXSxcbiAgICAgIGdhcDogWydnYXAteCcsICdnYXAteSddLFxuICAgICAgcDogWydweCcsICdweScsICdwcycsICdwZScsICdwdCcsICdwcicsICdwYicsICdwbCddLFxuICAgICAgcHg6IFsncHInLCAncGwnXSxcbiAgICAgIHB5OiBbJ3B0JywgJ3BiJ10sXG4gICAgICBtOiBbJ214JywgJ215JywgJ21zJywgJ21lJywgJ210JywgJ21yJywgJ21iJywgJ21sJ10sXG4gICAgICBteDogWydtcicsICdtbCddLFxuICAgICAgbXk6IFsnbXQnLCAnbWInXSxcbiAgICAgIHNpemU6IFsndycsICdoJ10sXG4gICAgICAnZm9udC1zaXplJzogWydsZWFkaW5nJ10sXG4gICAgICAnZnZuLW5vcm1hbCc6IFsnZnZuLW9yZGluYWwnLCAnZnZuLXNsYXNoZWQtemVybycsICdmdm4tZmlndXJlJywgJ2Z2bi1zcGFjaW5nJywgJ2Z2bi1mcmFjdGlvbiddLFxuICAgICAgJ2Z2bi1vcmRpbmFsJzogWydmdm4tbm9ybWFsJ10sXG4gICAgICAnZnZuLXNsYXNoZWQtemVybyc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1maWd1cmUnOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tc3BhY2luZyc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1mcmFjdGlvbic6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2xpbmUtY2xhbXAnOiBbJ2Rpc3BsYXknLCAnb3ZlcmZsb3cnXSxcbiAgICAgIHJvdW5kZWQ6IFsncm91bmRlZC1zJywgJ3JvdW5kZWQtZScsICdyb3VuZGVkLXQnLCAncm91bmRlZC1yJywgJ3JvdW5kZWQtYicsICdyb3VuZGVkLWwnLCAncm91bmRlZC1zcycsICdyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnLCAncm91bmRlZC1lcycsICdyb3VuZGVkLXRsJywgJ3JvdW5kZWQtdHInLCAncm91bmRlZC1icicsICdyb3VuZGVkLWJsJ10sXG4gICAgICAncm91bmRlZC1zJzogWydyb3VuZGVkLXNzJywgJ3JvdW5kZWQtZXMnXSxcbiAgICAgICdyb3VuZGVkLWUnOiBbJ3JvdW5kZWQtc2UnLCAncm91bmRlZC1lZSddLFxuICAgICAgJ3JvdW5kZWQtdCc6IFsncm91bmRlZC10bCcsICdyb3VuZGVkLXRyJ10sXG4gICAgICAncm91bmRlZC1yJzogWydyb3VuZGVkLXRyJywgJ3JvdW5kZWQtYnInXSxcbiAgICAgICdyb3VuZGVkLWInOiBbJ3JvdW5kZWQtYnInLCAncm91bmRlZC1ibCddLFxuICAgICAgJ3JvdW5kZWQtbCc6IFsncm91bmRlZC10bCcsICdyb3VuZGVkLWJsJ10sXG4gICAgICAnYm9yZGVyLXNwYWNpbmcnOiBbJ2JvcmRlci1zcGFjaW5nLXgnLCAnYm9yZGVyLXNwYWNpbmcteSddLFxuICAgICAgJ2JvcmRlci13JzogWydib3JkZXItdy1zJywgJ2JvcmRlci13LWUnLCAnYm9yZGVyLXctdCcsICdib3JkZXItdy1yJywgJ2JvcmRlci13LWInLCAnYm9yZGVyLXctbCddLFxuICAgICAgJ2JvcmRlci13LXgnOiBbJ2JvcmRlci13LXInLCAnYm9yZGVyLXctbCddLFxuICAgICAgJ2JvcmRlci13LXknOiBbJ2JvcmRlci13LXQnLCAnYm9yZGVyLXctYiddLFxuICAgICAgJ2JvcmRlci1jb2xvcic6IFsnYm9yZGVyLWNvbG9yLXQnLCAnYm9yZGVyLWNvbG9yLXInLCAnYm9yZGVyLWNvbG9yLWInLCAnYm9yZGVyLWNvbG9yLWwnXSxcbiAgICAgICdib3JkZXItY29sb3IteCc6IFsnYm9yZGVyLWNvbG9yLXInLCAnYm9yZGVyLWNvbG9yLWwnXSxcbiAgICAgICdib3JkZXItY29sb3IteSc6IFsnYm9yZGVyLWNvbG9yLXQnLCAnYm9yZGVyLWNvbG9yLWInXSxcbiAgICAgICdzY3JvbGwtbSc6IFsnc2Nyb2xsLW14JywgJ3Njcm9sbC1teScsICdzY3JvbGwtbXMnLCAnc2Nyb2xsLW1lJywgJ3Njcm9sbC1tdCcsICdzY3JvbGwtbXInLCAnc2Nyb2xsLW1iJywgJ3Njcm9sbC1tbCddLFxuICAgICAgJ3Njcm9sbC1teCc6IFsnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tbCddLFxuICAgICAgJ3Njcm9sbC1teSc6IFsnc2Nyb2xsLW10JywgJ3Njcm9sbC1tYiddLFxuICAgICAgJ3Njcm9sbC1wJzogWydzY3JvbGwtcHgnLCAnc2Nyb2xsLXB5JywgJ3Njcm9sbC1wcycsICdzY3JvbGwtcGUnLCAnc2Nyb2xsLXB0JywgJ3Njcm9sbC1wcicsICdzY3JvbGwtcGInLCAnc2Nyb2xsLXBsJ10sXG4gICAgICAnc2Nyb2xsLXB4JzogWydzY3JvbGwtcHInLCAnc2Nyb2xsLXBsJ10sXG4gICAgICAnc2Nyb2xsLXB5JzogWydzY3JvbGwtcHQnLCAnc2Nyb2xsLXBiJ10sXG4gICAgICB0b3VjaDogWyd0b3VjaC14JywgJ3RvdWNoLXknLCAndG91Y2gtcHonXSxcbiAgICAgICd0b3VjaC14JzogWyd0b3VjaCddLFxuICAgICAgJ3RvdWNoLXknOiBbJ3RvdWNoJ10sXG4gICAgICAndG91Y2gtcHonOiBbJ3RvdWNoJ11cbiAgICB9LFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyczoge1xuICAgICAgJ2ZvbnQtc2l6ZSc6IFsnbGVhZGluZyddXG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSBiYXNlQ29uZmlnIENvbmZpZyB3aGVyZSBvdGhlciBjb25maWcgd2lsbCBiZSBtZXJnZWQgaW50by4gVGhpcyBvYmplY3Qgd2lsbCBiZSBtdXRhdGVkLlxuICogQHBhcmFtIGNvbmZpZ0V4dGVuc2lvbiBQYXJ0aWFsIGNvbmZpZyB0byBtZXJnZSBpbnRvIHRoZSBgYmFzZUNvbmZpZ2AuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlQ29uZmlncyhiYXNlQ29uZmlnLCB7XG4gIGNhY2hlU2l6ZSxcbiAgcHJlZml4LFxuICBzZXBhcmF0b3IsXG4gIGV4dGVuZCA9IHt9LFxuICBvdmVycmlkZSA9IHt9XG59KSB7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ2NhY2hlU2l6ZScsIGNhY2hlU2l6ZSk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3ByZWZpeCcsIHByZWZpeCk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gIGZvciAoY29uc3QgY29uZmlnS2V5IGluIG92ZXJyaWRlKSB7XG4gICAgb3ZlcnJpZGVDb25maWdQcm9wZXJ0aWVzKGJhc2VDb25maWdbY29uZmlnS2V5XSwgb3ZlcnJpZGVbY29uZmlnS2V5XSk7XG4gIH1cbiAgZm9yIChjb25zdCBrZXkgaW4gZXh0ZW5kKSB7XG4gICAgbWVyZ2VDb25maWdQcm9wZXJ0aWVzKGJhc2VDb25maWdba2V5XSwgZXh0ZW5kW2tleV0pO1xuICB9XG4gIHJldHVybiBiYXNlQ29uZmlnO1xufVxuZnVuY3Rpb24gb3ZlcnJpZGVQcm9wZXJ0eShiYXNlT2JqZWN0LCBvdmVycmlkZUtleSwgb3ZlcnJpZGVWYWx1ZSkge1xuICBpZiAob3ZlcnJpZGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYmFzZU9iamVjdFtvdmVycmlkZUtleV0gPSBvdmVycmlkZVZhbHVlO1xuICB9XG59XG5mdW5jdGlvbiBvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMoYmFzZU9iamVjdCwgb3ZlcnJpZGVPYmplY3QpIHtcbiAgaWYgKG92ZXJyaWRlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVPYmplY3QpIHtcbiAgICAgIG92ZXJyaWRlUHJvcGVydHkoYmFzZU9iamVjdCwga2V5LCBvdmVycmlkZU9iamVjdFtrZXldKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1lcmdlQ29uZmlnUHJvcGVydGllcyhiYXNlT2JqZWN0LCBtZXJnZU9iamVjdCkge1xuICBpZiAobWVyZ2VPYmplY3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBtZXJnZU9iamVjdCkge1xuICAgICAgY29uc3QgbWVyZ2VWYWx1ZSA9IG1lcmdlT2JqZWN0W2tleV07XG4gICAgICBpZiAobWVyZ2VWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJhc2VPYmplY3Rba2V5XSA9IChiYXNlT2JqZWN0W2tleV0gfHwgW10pLmNvbmNhdChtZXJnZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGV4dGVuZFRhaWx3aW5kTWVyZ2UoY29uZmlnRXh0ZW5zaW9uLCAuLi5jcmVhdGVDb25maWcpIHtcbiAgcmV0dXJuIHR5cGVvZiBjb25maWdFeHRlbnNpb24gPT09ICdmdW5jdGlvbicgPyBjcmVhdGVUYWlsd2luZE1lcmdlKGdldERlZmF1bHRDb25maWcsIGNvbmZpZ0V4dGVuc2lvbiwgLi4uY3JlYXRlQ29uZmlnKSA6IGNyZWF0ZVRhaWx3aW5kTWVyZ2UoKCkgPT4gbWVyZ2VDb25maWdzKGdldERlZmF1bHRDb25maWcoKSwgY29uZmlnRXh0ZW5zaW9uKSwgLi4uY3JlYXRlQ29uZmlnKTtcbn1cbmNvbnN0IHR3TWVyZ2UgPSAvKiNfX1BVUkVfXyovY3JlYXRlVGFpbHdpbmRNZXJnZShnZXREZWZhdWx0Q29uZmlnKTtcbmV4cG9ydCB7IGNyZWF0ZVRhaWx3aW5kTWVyZ2UsIGV4dGVuZFRhaWx3aW5kTWVyZ2UsIGZyb21UaGVtZSwgZ2V0RGVmYXVsdENvbmZpZywgbWVyZ2VDb25maWdzLCB0d0pvaW4sIHR3TWVyZ2UsIHZhbGlkYXRvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1bmRsZS1tanMubWpzLm1hcFxuIl0sIm5hbWVzIjpbIkNMQVNTX1BBUlRfU0VQQVJBVE9SIiwiY3JlYXRlQ2xhc3NVdGlscyIsImNvbmZpZyIsImNsYXNzTWFwIiwiY3JlYXRlQ2xhc3NNYXAiLCJjb25mbGljdGluZ0NsYXNzR3JvdXBzIiwiY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzIiwiZ2V0Q2xhc3NHcm91cElkIiwiY2xhc3NOYW1lIiwiY2xhc3NQYXJ0cyIsInNwbGl0IiwibGVuZ3RoIiwic2hpZnQiLCJnZXRHcm91cFJlY3Vyc2l2ZSIsImdldEdyb3VwSWRGb3JBcmJpdHJhcnlQcm9wZXJ0eSIsImdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkcyIsImNsYXNzR3JvdXBJZCIsImhhc1Bvc3RmaXhNb2RpZmllciIsImNvbmZsaWN0cyIsImNsYXNzUGFydE9iamVjdCIsImN1cnJlbnRDbGFzc1BhcnQiLCJuZXh0Q2xhc3NQYXJ0T2JqZWN0IiwibmV4dFBhcnQiLCJnZXQiLCJjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQiLCJzbGljZSIsInVuZGVmaW5lZCIsInZhbGlkYXRvcnMiLCJjbGFzc1Jlc3QiLCJqb2luIiwiZmluZCIsInZhbGlkYXRvciIsImFyYml0cmFyeVByb3BlcnR5UmVnZXgiLCJ0ZXN0IiwiYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUiLCJleGVjIiwicHJvcGVydHkiLCJzdWJzdHJpbmciLCJpbmRleE9mIiwidGhlbWUiLCJwcmVmaXgiLCJNYXAiLCJwcmVmaXhlZENsYXNzR3JvdXBFbnRyaWVzIiwiZ2V0UHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyIsIk9iamVjdCIsImVudHJpZXMiLCJjbGFzc0dyb3VwcyIsImZvckVhY2giLCJjbGFzc0dyb3VwIiwicHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseSIsImNsYXNzRGVmaW5pdGlvbiIsImNsYXNzUGFydE9iamVjdFRvRWRpdCIsImdldFBhcnQiLCJpc1RoZW1lR2V0dGVyIiwicHVzaCIsImtleSIsInBhdGgiLCJjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0IiwicGF0aFBhcnQiLCJoYXMiLCJzZXQiLCJmdW5jIiwiY2xhc3NHcm91cEVudHJpZXMiLCJtYXAiLCJwcmVmaXhlZENsYXNzR3JvdXAiLCJmcm9tRW50cmllcyIsInZhbHVlIiwiY3JlYXRlTHJ1Q2FjaGUiLCJtYXhDYWNoZVNpemUiLCJjYWNoZVNpemUiLCJjYWNoZSIsInByZXZpb3VzQ2FjaGUiLCJ1cGRhdGUiLCJJTVBPUlRBTlRfTU9ESUZJRVIiLCJjcmVhdGVTcGxpdE1vZGlmaWVycyIsInNlcGFyYXRvciIsImlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyIiwiZmlyc3RTZXBhcmF0b3JDaGFyYWN0ZXIiLCJzZXBhcmF0b3JMZW5ndGgiLCJzcGxpdE1vZGlmaWVycyIsIm1vZGlmaWVycyIsImJyYWNrZXREZXB0aCIsIm1vZGlmaWVyU3RhcnQiLCJwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiIsImluZGV4IiwiY3VycmVudENoYXJhY3RlciIsImJhc2VDbGFzc05hbWVXaXRoSW1wb3J0YW50TW9kaWZpZXIiLCJoYXNJbXBvcnRhbnRNb2RpZmllciIsInN0YXJ0c1dpdGgiLCJiYXNlQ2xhc3NOYW1lIiwibWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiIsInNvcnRNb2RpZmllcnMiLCJzb3J0ZWRNb2RpZmllcnMiLCJ1bnNvcnRlZE1vZGlmaWVycyIsIm1vZGlmaWVyIiwiaXNBcmJpdHJhcnlWYXJpYW50Iiwic29ydCIsImNyZWF0ZUNvbmZpZ1V0aWxzIiwiU1BMSVRfQ0xBU1NFU19SRUdFWCIsIm1lcmdlQ2xhc3NMaXN0IiwiY2xhc3NMaXN0IiwiY29uZmlnVXRpbHMiLCJjbGFzc0dyb3Vwc0luQ29uZmxpY3QiLCJTZXQiLCJ0cmltIiwib3JpZ2luYWxDbGFzc05hbWUiLCJCb29sZWFuIiwiaXNUYWlsd2luZENsYXNzIiwidmFyaWFudE1vZGlmaWVyIiwibW9kaWZpZXJJZCIsInJldmVyc2UiLCJmaWx0ZXIiLCJwYXJzZWQiLCJjbGFzc0lkIiwiYWRkIiwiZ3JvdXAiLCJ0d0pvaW4iLCJhcmd1bWVudCIsInJlc29sdmVkVmFsdWUiLCJzdHJpbmciLCJhcmd1bWVudHMiLCJ0b1ZhbHVlIiwibWl4IiwiayIsImNyZWF0ZVRhaWx3aW5kTWVyZ2UiLCJjcmVhdGVDb25maWdGaXJzdCIsImNyZWF0ZUNvbmZpZ1Jlc3QiLCJjYWNoZUdldCIsImNhY2hlU2V0IiwiZnVuY3Rpb25Ub0NhbGwiLCJpbml0VGFpbHdpbmRNZXJnZSIsInJlZHVjZSIsInByZXZpb3VzQ29uZmlnIiwiY3JlYXRlQ29uZmlnQ3VycmVudCIsInRhaWx3aW5kTWVyZ2UiLCJjYWNoZWRSZXN1bHQiLCJyZXN1bHQiLCJjYWxsVGFpbHdpbmRNZXJnZSIsImFwcGx5IiwiZnJvbVRoZW1lIiwidGhlbWVHZXR0ZXIiLCJhcmJpdHJhcnlWYWx1ZVJlZ2V4IiwiZnJhY3Rpb25SZWdleCIsInN0cmluZ0xlbmd0aHMiLCJ0c2hpcnRVbml0UmVnZXgiLCJsZW5ndGhVbml0UmVnZXgiLCJjb2xvckZ1bmN0aW9uUmVnZXgiLCJzaGFkb3dSZWdleCIsImltYWdlUmVnZXgiLCJpc0xlbmd0aCIsImlzTnVtYmVyIiwiaXNBcmJpdHJhcnlMZW5ndGgiLCJnZXRJc0FyYml0cmFyeVZhbHVlIiwiaXNMZW5ndGhPbmx5IiwiTnVtYmVyIiwiaXNOYU4iLCJpc0FyYml0cmFyeU51bWJlciIsImlzSW50ZWdlciIsImlzUGVyY2VudCIsImVuZHNXaXRoIiwiaXNBcmJpdHJhcnlWYWx1ZSIsImlzVHNoaXJ0U2l6ZSIsInNpemVMYWJlbHMiLCJpc0FyYml0cmFyeVNpemUiLCJpc05ldmVyIiwiaXNBcmJpdHJhcnlQb3NpdGlvbiIsImltYWdlTGFiZWxzIiwiaXNBcmJpdHJhcnlJbWFnZSIsImlzSW1hZ2UiLCJpc0FyYml0cmFyeVNoYWRvdyIsImlzU2hhZG93IiwiaXNBbnkiLCJsYWJlbCIsInRlc3RWYWx1ZSIsImRlZmluZVByb3BlcnR5IiwiX19wcm90b19fIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJnZXREZWZhdWx0Q29uZmlnIiwiY29sb3JzIiwic3BhY2luZyIsImJsdXIiLCJicmlnaHRuZXNzIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJTcGFjaW5nIiwiYm9yZGVyV2lkdGgiLCJjb250cmFzdCIsImdyYXlzY2FsZSIsImh1ZVJvdGF0ZSIsImludmVydCIsImdhcCIsImdyYWRpZW50Q29sb3JTdG9wcyIsImdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zIiwiaW5zZXQiLCJtYXJnaW4iLCJvcGFjaXR5IiwicGFkZGluZyIsInNhdHVyYXRlIiwic2NhbGUiLCJzZXBpYSIsInNrZXciLCJzcGFjZSIsInRyYW5zbGF0ZSIsImdldE92ZXJzY3JvbGwiLCJnZXRPdmVyZmxvdyIsImdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSIsImdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5IiwiZ2V0TGVuZ3RoV2l0aEVtcHR5QW5kQXJiaXRyYXJ5IiwiZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkiLCJnZXRQb3NpdGlvbnMiLCJnZXRMaW5lU3R5bGVzIiwiZ2V0QmxlbmRNb2RlcyIsImdldEFsaWduIiwiZ2V0WmVyb0FuZEVtcHR5IiwiZ2V0QnJlYWtzIiwiZ2V0TnVtYmVyIiwiZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5IiwiYXNwZWN0IiwiY29udGFpbmVyIiwiY29sdW1ucyIsImJveCIsImRpc3BsYXkiLCJmbG9hdCIsImNsZWFyIiwiaXNvbGF0aW9uIiwib2JqZWN0Iiwib3ZlcmZsb3ciLCJvdmVyc2Nyb2xsIiwicG9zaXRpb24iLCJzdGFydCIsImVuZCIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCIsInZpc2liaWxpdHkiLCJ6IiwiYmFzaXMiLCJmbGV4IiwiZ3JvdyIsInNocmluayIsIm9yZGVyIiwiY29sIiwic3BhbiIsInJvdyIsImp1c3RpZnkiLCJjb250ZW50IiwiaXRlbXMiLCJzZWxmIiwicCIsInB4IiwicHkiLCJwcyIsInBlIiwicHQiLCJwciIsInBiIiwicGwiLCJtIiwibXgiLCJteSIsIm1zIiwibWUiLCJtdCIsIm1yIiwibWIiLCJtbCIsInciLCJzY3JlZW4iLCJoIiwic2l6ZSIsInRleHQiLCJmb250IiwidHJhY2tpbmciLCJsZWFkaW5nIiwibGlzdCIsInBsYWNlaG9sZGVyIiwiZGVjb3JhdGlvbiIsImluZGVudCIsImFsaWduIiwid2hpdGVzcGFjZSIsImJyZWFrIiwiaHlwaGVucyIsImJnIiwicmVwZWF0IiwiZnJvbSIsInZpYSIsInRvIiwicm91bmRlZCIsImJvcmRlciIsImRpdmlkZSIsIm91dGxpbmUiLCJyaW5nIiwic2hhZG93IiwidGFibGUiLCJjYXB0aW9uIiwidHJhbnNpdGlvbiIsImR1cmF0aW9uIiwiZWFzZSIsImRlbGF5IiwiYW5pbWF0ZSIsInRyYW5zZm9ybSIsInJvdGF0ZSIsIm9yaWdpbiIsImFjY2VudCIsImFwcGVhcmFuY2UiLCJjdXJzb3IiLCJjYXJldCIsInJlc2l6ZSIsInNjcm9sbCIsInNuYXAiLCJ0b3VjaCIsInNlbGVjdCIsImZpbGwiLCJzdHJva2UiLCJzciIsIm1lcmdlQ29uZmlncyIsImJhc2VDb25maWciLCJleHRlbmQiLCJvdmVycmlkZSIsIm92ZXJyaWRlUHJvcGVydHkiLCJjb25maWdLZXkiLCJvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMiLCJtZXJnZUNvbmZpZ1Byb3BlcnRpZXMiLCJiYXNlT2JqZWN0Iiwib3ZlcnJpZGVLZXkiLCJvdmVycmlkZVZhbHVlIiwib3ZlcnJpZGVPYmplY3QiLCJtZXJnZU9iamVjdCIsIm1lcmdlVmFsdWUiLCJjb25jYXQiLCJleHRlbmRUYWlsd2luZE1lcmdlIiwiY29uZmlnRXh0ZW5zaW9uIiwiY3JlYXRlQ29uZmlnIiwidHdNZXJnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/tailwind-merge/dist/bundle-mjs.mjs\n");
-
-/***/ })
-
-},
-/******/ __webpack_require__ => { // webpackRuntimeModules
-/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-/******/ var __webpack_exports__ = (__webpack_exec__("(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/page\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIQ==\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!"));
-/******/ (_ENTRIES = typeof _ENTRIES === "undefined" ? {} : _ENTRIES)["middleware_app/page"] = __webpack_exports__;
-/******/ }
-]); \ No newline at end of file
diff --git a/apps/web/.next/server/app/page_client-reference-manifest.js b/apps/web/.next/server/app/page_client-reference-manifest.js
deleted file mode 100644
index 9ebab84d..00000000
--- a/apps/web/.next/server/app/page_client-reference-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{},"edgeSSRModuleMapping":{"(app-pages-browser)/../../node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/dev-root-not-found-boundary.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/MessagePoster.tsx":{"*":{"id":"(ssr)/./src/app/MessagePoster.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/QueryAI.tsx":{"*":{"id":"(ssr)/./src/components/QueryAI.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/../../node_modules/next/dist/client/image-component.js":{"*":{"id":"(ssr)/../../node_modules/next/dist/esm/client/image-component.js","name":"*","chunks":[],"async":false}}},"clientModules":{"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/dev-root-not-found-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/dev-root-not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/dev-root-not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":"(app-pages-browser)/../../node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx":{"id":"(app-pages-browser)/./src/app/MessagePoster.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx":{"id":"(app-pages-browser)/./src/components/QueryAI.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/image-component.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/image-component.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/image-component.js":{"id":"(app-pages-browser)/../../node_modules/next/dist/client/image-component.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false}},"entryCSSFiles":{"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found":[],"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout":["static/css/app/layout.css"],"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page":[]}} \ No newline at end of file
diff --git a/apps/web/.next/server/middleware-build-manifest.js b/apps/web/.next/server/middleware-build-manifest.js
deleted file mode 100644
index c7ad6213..00000000
--- a/apps/web/.next/server/middleware-build-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__BUILD_MANIFEST={"polyfillFiles":["static/chunks/polyfills.js"],"devFiles":[],"ampDevFiles":[],"lowPriorityFiles":["static/development/_buildManifest.js","static/development/_ssgManifest.js"],"rootMainFiles":["static/chunks/webpack.js","static/chunks/main-app.js"],"pages":{"/_app":[]},"ampFirstPages":[]} \ No newline at end of file
diff --git a/apps/web/.next/server/middleware-manifest.json b/apps/web/.next/server/middleware-manifest.json
deleted file mode 100644
index 8f631871..00000000
--- a/apps/web/.next/server/middleware-manifest.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "sortedMiddleware": [],
- "middleware": {},
- "functions": {
- "/not-found": {
- "files": [
- "server/server-reference-manifest.js",
- "server/app/not-found_client-reference-manifest.js",
- "server/middleware-build-manifest.js",
- "server/middleware-react-loadable-manifest.js",
- "server/next-font-manifest.js",
- "server/edge-runtime-webpack.js",
- "server/app/not-found.js"
- ],
- "name": "app/not-found",
- "page": "/not-found",
- "matchers": [
- {
- "regexp": "^/not\\-found$",
- "originalSource": "/not-found"
- }
- ],
- "wasm": [],
- "assets": []
- },
- "/page": {
- "files": [
- "server/server-reference-manifest.js",
- "server/app/page_client-reference-manifest.js",
- "server/middleware-build-manifest.js",
- "server/middleware-react-loadable-manifest.js",
- "server/next-font-manifest.js",
- "server/edge-runtime-webpack.js",
- "server/app/page.js"
- ],
- "name": "app/page",
- "page": "/page",
- "matchers": [
- {
- "regexp": "^/$",
- "originalSource": "/"
- }
- ],
- "wasm": [],
- "assets": []
- }
- },
- "version": 2
-} \ No newline at end of file
diff --git a/apps/web/.next/server/middleware-react-loadable-manifest.js b/apps/web/.next/server/middleware-react-loadable-manifest.js
deleted file mode 100644
index ca34f09f..00000000
--- a/apps/web/.next/server/middleware-react-loadable-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__REACT_LOADABLE_MANIFEST="{}" \ No newline at end of file
diff --git a/apps/web/.next/server/next-font-manifest.js b/apps/web/.next/server/next-font-manifest.js
deleted file mode 100644
index c6163c83..00000000
--- a/apps/web/.next/server/next-font-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__NEXT_FONT_MANIFEST="{\"pages\":{},\"app\":{\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout\":[\"static/media/c9a5bc6a7c948fb0-s.p.woff2\"]},\"appUsingSizeAdjust\":true,\"pagesUsingSizeAdjust\":false}" \ No newline at end of file
diff --git a/apps/web/.next/server/next-font-manifest.json b/apps/web/.next/server/next-font-manifest.json
deleted file mode 100644
index d007a4c9..00000000
--- a/apps/web/.next/server/next-font-manifest.json
+++ /dev/null
@@ -1 +0,0 @@
-{"pages":{},"app":{"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout":["static/media/c9a5bc6a7c948fb0-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false} \ No newline at end of file
diff --git a/apps/web/.next/server/pages-manifest.json b/apps/web/.next/server/pages-manifest.json
deleted file mode 100644
index 9e26dfee..00000000
--- a/apps/web/.next/server/pages-manifest.json
+++ /dev/null
@@ -1 +0,0 @@
-{} \ No newline at end of file
diff --git a/apps/web/.next/server/server-reference-manifest.js b/apps/web/.next/server/server-reference-manifest.js
deleted file mode 100644
index 5eebab83..00000000
--- a/apps/web/.next/server/server-reference-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"FHan239h+0dwLwucp8N9He43tiRE9RtvqnkWgcOzTjI=\"\n}" \ No newline at end of file
diff --git a/apps/web/.next/server/server-reference-manifest.json b/apps/web/.next/server/server-reference-manifest.json
deleted file mode 100644
index b3a23b6a..00000000
--- a/apps/web/.next/server/server-reference-manifest.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "node": {},
- "edge": {},
- "encryptionKey": "FHan239h+0dwLwucp8N9He43tiRE9RtvqnkWgcOzTjI="
-} \ No newline at end of file
diff --git a/apps/web/.next/static/media/05a31a2ca4975f99-s.woff2 b/apps/web/.next/static/media/05a31a2ca4975f99-s.woff2
deleted file mode 100644
index cbcdad70..00000000
--- a/apps/web/.next/static/media/05a31a2ca4975f99-s.woff2
+++ /dev/null
Binary files differ
diff --git a/apps/web/.next/static/media/513657b02c5c193f-s.woff2 b/apps/web/.next/static/media/513657b02c5c193f-s.woff2
deleted file mode 100644
index fd86d822..00000000
--- a/apps/web/.next/static/media/513657b02c5c193f-s.woff2
+++ /dev/null
Binary files differ
diff --git a/apps/web/.next/static/media/51ed15f9841b9f9d-s.woff2 b/apps/web/.next/static/media/51ed15f9841b9f9d-s.woff2
deleted file mode 100644
index 49132b59..00000000
--- a/apps/web/.next/static/media/51ed15f9841b9f9d-s.woff2
+++ /dev/null
Binary files differ
diff --git a/apps/web/.next/static/media/c9a5bc6a7c948fb0-s.p.woff2 b/apps/web/.next/static/media/c9a5bc6a7c948fb0-s.p.woff2
deleted file mode 100644
index 3edd2e53..00000000
--- a/apps/web/.next/static/media/c9a5bc6a7c948fb0-s.p.woff2
+++ /dev/null
Binary files differ
diff --git a/apps/web/.next/static/media/d6b16ce4a6175f26-s.woff2 b/apps/web/.next/static/media/d6b16ce4a6175f26-s.woff2
deleted file mode 100644
index 725ee6b6..00000000
--- a/apps/web/.next/static/media/d6b16ce4a6175f26-s.woff2
+++ /dev/null
Binary files differ
diff --git a/apps/web/.next/static/media/ec159349637c90ad-s.woff2 b/apps/web/.next/static/media/ec159349637c90ad-s.woff2
deleted file mode 100644
index 3c039fcc..00000000
--- a/apps/web/.next/static/media/ec159349637c90ad-s.woff2
+++ /dev/null
Binary files differ
diff --git a/apps/web/.next/static/media/fd4db3eb5472fc27-s.woff2 b/apps/web/.next/static/media/fd4db3eb5472fc27-s.woff2
deleted file mode 100644
index 7f60b426..00000000
--- a/apps/web/.next/static/media/fd4db3eb5472fc27-s.woff2
+++ /dev/null
Binary files differ
diff --git a/apps/web/.next/trace b/apps/web/.next/trace
deleted file mode 100644
index 4b074bf0..00000000
--- a/apps/web/.next/trace
+++ /dev/null
@@ -1,45 +0,0 @@
-[{"name":"hot-reloader","duration":31,"timestamp":4078077706484,"id":3,"tags":{"version":"14.1.0","isTurbopack":false},"startTime":1711860125481,"traceId":"a43e3bb0d33d2683"},{"name":"start","duration":0,"timestamp":4078077706974,"id":4,"parentId":3,"tags":{},"startTime":1711860125482,"traceId":"a43e3bb0d33d2683"},{"name":"get-version-info","duration":894493,"timestamp":4078077707581,"id":5,"parentId":4,"tags":{},"startTime":1711860125482,"traceId":"a43e3bb0d33d2683"},{"name":"clean","duration":5717,"timestamp":4078078602116,"id":6,"parentId":4,"tags":{},"startTime":1711860126377,"traceId":"a43e3bb0d33d2683"},{"name":"create-pages-mapping","duration":122,"timestamp":4078078609657,"id":8,"parentId":7,"tags":{},"startTime":1711860126384,"traceId":"a43e3bb0d33d2683"},{"name":"create-entrypoints","duration":96613,"timestamp":4078078609792,"id":9,"parentId":7,"tags":{},"startTime":1711860126385,"traceId":"a43e3bb0d33d2683"},{"name":"generate-webpack-config","duration":83208,"timestamp":4078078706442,"id":10,"parentId":7,"tags":{},"startTime":1711860126481,"traceId":"a43e3bb0d33d2683"},{"name":"get-webpack-config","duration":180104,"timestamp":4078078609561,"id":7,"parentId":4,"tags":{},"startTime":1711860126384,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":2715,"timestamp":4078078959377,"id":12,"parentId":11,"tags":{},"startTime":1711860126734,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":382,"timestamp":4078078963581,"id":14,"parentId":13,"tags":{},"startTime":1711860126738,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":9,"timestamp":4078078964017,"id":16,"parentId":13,"tags":{},"startTime":1711860126739,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":106,"timestamp":4078078964133,"id":17,"parentId":13,"tags":{},"startTime":1711860126739,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":60,"timestamp":4078078964265,"id":18,"parentId":13,"tags":{},"startTime":1711860126739,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":66,"timestamp":4078078964416,"id":19,"parentId":13,"tags":{},"startTime":1711860126739,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":553,"timestamp":4078078963997,"id":15,"parentId":13,"tags":{},"startTime":1711860126739,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":184,"timestamp":4078078970599,"id":20,"parentId":13,"tags":{},"startTime":1711860126745,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":240,"timestamp":4078078970852,"id":21,"parentId":13,"tags":{},"startTime":1711860126746,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":334,"timestamp":4078078971254,"id":22,"parentId":13,"tags":{},"startTime":1711860126746,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":68,"timestamp":4078078971587,"id":23,"parentId":13,"tags":{},"startTime":1711860126746,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":41,"timestamp":4078078971642,"id":24,"parentId":13,"tags":{},"startTime":1711860126746,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":119,"timestamp":4078078971687,"id":25,"parentId":13,"tags":{},"startTime":1711860126746,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-generateClientManifest","duration":518,"timestamp":4078079022733,"id":27,"parentId":11,"tags":{},"startTime":1711860126798,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-createassets","duration":782,"timestamp":4078079022480,"id":26,"parentId":11,"tags":{},"startTime":1711860126797,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":60485,"timestamp":4078078963420,"id":13,"parentId":11,"tags":{},"startTime":1711860126738,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":75565,"timestamp":4078078948565,"id":11,"parentId":3,"tags":{"name":"client"},"startTime":1711860126723,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":20165,"timestamp":4078079024344,"id":28,"parentId":3,"tags":{},"startTime":1711860126799,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":708,"timestamp":4078079049503,"id":30,"parentId":29,"tags":{},"startTime":1711860126824,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":16,"timestamp":4078079050481,"id":32,"parentId":31,"tags":{},"startTime":1711860126825,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":2,"timestamp":4078079050508,"id":34,"parentId":31,"tags":{},"startTime":1711860126825,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":428,"timestamp":4078079050541,"id":35,"parentId":31,"tags":{},"startTime":1711860126825,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":3,"timestamp":4078079050989,"id":36,"parentId":31,"tags":{},"startTime":1711860126826,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":3,"timestamp":4078079051022,"id":37,"parentId":31,"tags":{},"startTime":1711860126826,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":547,"timestamp":4078079050504,"id":33,"parentId":31,"tags":{},"startTime":1711860126825,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":5,"timestamp":4078079051111,"id":38,"parentId":31,"tags":{},"startTime":1711860126826,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":3,"timestamp":4078079051121,"id":39,"parentId":31,"tags":{},"startTime":1711860126826,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":28,"timestamp":4078079051141,"id":40,"parentId":31,"tags":{},"startTime":1711860126826,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":19,"timestamp":4078079051170,"id":41,"parentId":31,"tags":{},"startTime":1711860126826,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":7,"timestamp":4078079051186,"id":42,"parentId":31,"tags":{},"startTime":1711860126826,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":7,"timestamp":4078079051197,"id":43,"parentId":31,"tags":{},"startTime":1711860126826,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":2632,"timestamp":4078079050464,"id":31,"parentId":29,"tags":{},"startTime":1711860126825,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":4260,"timestamp":4078079048926,"id":29,"parentId":3,"tags":{"name":"server"},"startTime":1711860126824,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":1823,"timestamp":4078079053224,"id":44,"parentId":3,"tags":{},"startTime":1711860126828,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":80,"timestamp":4078079057705,"id":46,"parentId":45,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":11,"timestamp":4078079058059,"id":48,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":2,"timestamp":4078079058079,"id":50,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":4,"timestamp":4078079058108,"id":51,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":2,"timestamp":4078079058118,"id":52,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":2,"timestamp":4078079058129,"id":53,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":63,"timestamp":4078079058076,"id":49,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":4,"timestamp":4078079058187,"id":54,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":3,"timestamp":4078079058195,"id":55,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":31,"timestamp":4078079058214,"id":56,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":8,"timestamp":4078079058245,"id":57,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":4,"timestamp":4078079058251,"id":58,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":5,"timestamp":4078079058257,"id":59,"parentId":47,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":502,"timestamp":4078079058044,"id":47,"parentId":45,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":1710,"timestamp":4078079056860,"id":45,"parentId":3,"tags":{"name":"edge-server"},"startTime":1711860126832,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":1403,"timestamp":4078079058593,"id":60,"parentId":3,"tags":{},"startTime":1711860126833,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"make","duration":211,"timestamp":4078079286936,"id":65,"parentId":64,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":14,"timestamp":4078079287380,"id":67,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":2,"timestamp":4078079287405,"id":69,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":4,"timestamp":4078079287416,"id":70,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":3,"timestamp":4078079287427,"id":71,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":2,"timestamp":4078079287440,"id":72,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":55,"timestamp":4078079287402,"id":68,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":4,"timestamp":4078079287506,"id":73,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":3,"timestamp":4078079287515,"id":74,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":27,"timestamp":4078079287534,"id":75,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":8,"timestamp":4078079287561,"id":76,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":4,"timestamp":4078079287567,"id":77,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":6,"timestamp":4078079287574,"id":78,"parentId":66,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-generateClientManifest","duration":264,"timestamp":4078079287795,"id":80,"parentId":64,"tags":{},"startTime":1711860127063,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-createassets","duration":348,"timestamp":4078079287720,"id":79,"parentId":64,"tags":{},"startTime":1711860127063,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":822,"timestamp":4078079287363,"id":66,"parentId":64,"tags":{},"startTime":1711860127062,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":1758,"timestamp":4078079286446,"id":64,"parentId":61,"tags":{"name":"client"},"startTime":1711860127061,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":2505,"timestamp":4078079288223,"id":81,"parentId":61,"tags":{},"startTime":1711860127063,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-client","duration":8763,"timestamp":4078079283016,"id":61,"parentId":3,"tags":{"trigger":"manual"},"startTime":1711860127058,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":188,"timestamp":4078079292941,"id":83,"parentId":82,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":16,"timestamp":4078079293288,"id":85,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":2,"timestamp":4078079293313,"id":87,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":71,"timestamp":4078079293349,"id":88,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":2,"timestamp":4078079293428,"id":89,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":2,"timestamp":4078079293440,"id":90,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":144,"timestamp":4078079293310,"id":86,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":4,"timestamp":4078079293594,"id":91,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":3,"timestamp":4078079293603,"id":92,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":37,"timestamp":4078079293621,"id":93,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":9,"timestamp":4078079293658,"id":94,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":4,"timestamp":4078079293665,"id":95,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":6,"timestamp":4078079293671,"id":96,"parentId":84,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":565,"timestamp":4078079293272,"id":84,"parentId":82,"tags":{},"startTime":1711860127068,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":1390,"timestamp":4078079292468,"id":82,"parentId":62,"tags":{"name":"server"},"startTime":1711860127067,"traceId":"a43e3bb0d33d2683"},{"name":"setup-dev-bundler","duration":1916101,"timestamp":4078077441547,"id":2,"parentId":1,"tags":{},"startTime":1711860125216,"traceId":"a43e3bb0d33d2683"},{"name":"run-instrumentation-hook","duration":26,"timestamp":4078079375242,"id":98,"parentId":1,"tags":{},"startTime":1711860127150,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":84953,"timestamp":4078079293869,"id":97,"parentId":62,"tags":{},"startTime":1711860127069,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-server","duration":96094,"timestamp":4078079283117,"id":62,"parentId":3,"tags":{"trigger":"manual"},"startTime":1711860127058,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":137,"timestamp":4078079380447,"id":100,"parentId":99,"tags":{},"startTime":1711860127155,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":13,"timestamp":4078079380753,"id":102,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":2,"timestamp":4078079380776,"id":104,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":5,"timestamp":4078079380787,"id":105,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":3,"timestamp":4078079380799,"id":106,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":3,"timestamp":4078079380812,"id":107,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":53,"timestamp":4078079380772,"id":103,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":4,"timestamp":4078079380874,"id":108,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":3,"timestamp":4078079380883,"id":109,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":90,"timestamp":4078079380901,"id":110,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":9,"timestamp":4078079380991,"id":111,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":4,"timestamp":4078079380998,"id":112,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":7,"timestamp":4078079381004,"id":113,"parentId":101,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":462,"timestamp":4078079380737,"id":101,"parentId":99,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":1170,"timestamp":4078079380043,"id":99,"parentId":63,"tags":{"name":"edge-server"},"startTime":1711860127155,"traceId":"a43e3bb0d33d2683"},{"name":"start-dev-server","duration":2867967,"timestamp":4078076516393,"id":1,"tags":{"cpus":"10","platform":"darwin","memory.freeMem":"132726784","memory.totalMem":"17179869184","memory.heapSizeLimit":"8640266240","isTurbopack":false,"memory.rss":"244809728","memory.heapTotal":"135938048","memory.heapUsed":"112056392"},"startTime":1711860124291,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":24455,"timestamp":4078079381224,"id":114,"parentId":63,"tags":{},"startTime":1711860127156,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-edge-server","duration":123066,"timestamp":4078079283145,"id":63,"parentId":3,"tags":{"trigger":"manual"},"startTime":1711860127058,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/not-found\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGbm90LWZvdW5kJnBhZ2U9JTJGbm90LWZvdW5kJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRm5vdC1mb3VuZC50c3gmYXBwRGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWIlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWImaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0Qh\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!","duration":14173,"timestamp":4078079440777,"id":125,"parentId":124,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/not-found\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGbm90LWZvdW5kJnBhZ2U9JTJGbm90LWZvdW5kJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRm5vdC1mb3VuZC50c3gmYXBwRGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWIlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWImaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0Qh\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!","layer":"ssr"},"startTime":1711860127216,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":158235,"timestamp":4078079485543,"id":137,"parentId":136,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":158288,"timestamp":4078079485503,"id":136,"parentId":130,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":172544,"timestamp":4078079484860,"id":130,"parentId":125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/globals.js","layer":"ssr"},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":171956,"timestamp":4078079485500,"id":135,"parentId":134,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":172149,"timestamp":4078079485311,"id":134,"parentId":129,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":176183,"timestamp":4078079483774,"id":129,"parentId":125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/page-types.js","layer":"ssr"},"startTime":1711860127259,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":174452,"timestamp":4078079485584,"id":139,"parentId":138,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":174494,"timestamp":4078079485545,"id":138,"parentId":131,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":184681,"timestamp":4078079484979,"id":131,"parentId":125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/adapter.js","layer":"ssr"},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":192881,"timestamp":4078079476825,"id":128,"parentId":127,"tags":{},"startTime":1711860127252,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":193333,"timestamp":4078079476374,"id":127,"parentId":126,"tags":{},"startTime":1711860127251,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":184938,"timestamp":4078079485648,"id":143,"parentId":142,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":184971,"timestamp":4078079485617,"id":142,"parentId":133,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":190138,"timestamp":4078079485256,"id":133,"parentId":125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js","layer":"ssr"},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":192637,"timestamp":4078079485616,"id":141,"parentId":140,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":192676,"timestamp":4078079485585,"id":140,"parentId":132,"tags":{},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":204945,"timestamp":4078079485129,"id":132,"parentId":125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/app-render.js","layer":"ssr"},"startTime":1711860127260,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4583,"timestamp":4078079711770,"id":174,"parentId":173,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4627,"timestamp":4078079711734,"id":173,"parentId":145,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7310,"timestamp":4078079710706,"id":145,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/constants.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5802,"timestamp":4078079712296,"id":178,"parentId":177,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5998,"timestamp":4078079712101,"id":177,"parentId":147,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7334,"timestamp":4078079711069,"id":147,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/detached-promise.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6081,"timestamp":4078079712360,"id":180,"parentId":179,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6136,"timestamp":4078079712306,"id":179,"parentId":148,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11790,"timestamp":4078079711108,"id":148,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/next-url.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12426,"timestamp":4078079712408,"id":184,"parentId":183,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12446,"timestamp":4078079712393,"id":183,"parentId":150,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14194,"timestamp":4078079711227,"id":150,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/error.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13062,"timestamp":4078079712391,"id":182,"parentId":181,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13090,"timestamp":4078079712364,"id":181,"parentId":149,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15699,"timestamp":4078079711202,"id":149,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/utils.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14495,"timestamp":4078079712442,"id":188,"parentId":187,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14509,"timestamp":4078079712430,"id":187,"parentId":152,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16409,"timestamp":4078079711275,"id":152,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/flight-render-result.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15277,"timestamp":4078079712428,"id":186,"parentId":185,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15297,"timestamp":4078079712410,"id":185,"parentId":151,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16863,"timestamp":4078079711250,"id":151,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/create-server-components-renderer.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15667,"timestamp":4078079712465,"id":192,"parentId":191,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15678,"timestamp":4078079712455,"id":191,"parentId":154,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17050,"timestamp":4078079711308,"id":154,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/get-short-dynamic-param-type.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15925,"timestamp":4078079712454,"id":190,"parentId":189,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15937,"timestamp":4078079712444,"id":189,"parentId":153,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18239,"timestamp":4078079711292,"id":153,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/create-error-handler.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17061,"timestamp":4078079712487,"id":196,"parentId":195,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17073,"timestamp":4078079712477,"id":195,"parentId":156,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18514,"timestamp":4078079711341,"id":156,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/parse-and-validate-flight-router-state.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17394,"timestamp":4078079712476,"id":194,"parentId":193,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17405,"timestamp":4078079712466,"id":193,"parentId":155,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18899,"timestamp":4078079711325,"id":155,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/get-segment-param.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17729,"timestamp":4078079712509,"id":200,"parentId":199,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17740,"timestamp":4078079712499,"id":199,"parentId":158,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19137,"timestamp":4078079711374,"id":158,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/validate-url.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18796,"timestamp":4078079711732,"id":172,"parentId":171,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18917,"timestamp":4078079711612,"id":171,"parentId":144,"tags":{},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20476,"timestamp":4078079710527,"id":144,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/internal-utils.js","layer":"ssr"},"startTime":1711860127485,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19090,"timestamp":4078079711938,"id":176,"parentId":175,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19259,"timestamp":4078079711771,"id":175,"parentId":146,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21126,"timestamp":4078079710978,"id":146,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/render-result.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19630,"timestamp":4078079712498,"id":198,"parentId":197,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19642,"timestamp":4078079712488,"id":197,"parentId":157,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21180,"timestamp":4078079711359,"id":157,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/create-flight-router-state-from-loader-tree.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20025,"timestamp":4078079712529,"id":204,"parentId":203,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20036,"timestamp":4078079712520,"id":203,"parentId":160,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21460,"timestamp":4078079711406,"id":160,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/server-inserted-html.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20326,"timestamp":4078079712562,"id":210,"parentId":209,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20337,"timestamp":4078079712552,"id":209,"parentId":163,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22143,"timestamp":4078079711451,"id":163,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/make-get-server-inserted-html.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21071,"timestamp":4078079712540,"id":206,"parentId":205,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21082,"timestamp":4078079712530,"id":205,"parentId":161,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22854,"timestamp":4078079711420,"id":161,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/required-scripts.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21756,"timestamp":4078079712551,"id":208,"parentId":207,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21767,"timestamp":4078079712541,"id":207,"parentId":162,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23909,"timestamp":4078079711436,"id":162,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/walk-tree-with-flight-router-state.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":22788,"timestamp":4078079712572,"id":212,"parentId":211,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":22798,"timestamp":4078079712563,"id":211,"parentId":164,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24309,"timestamp":4078079711467,"id":164,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/get-script-nonce-from-header.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":23328,"timestamp":4078079712519,"id":202,"parentId":201,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":23338,"timestamp":4078079712510,"id":201,"parentId":159,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":28150,"timestamp":4078079711390,"id":159,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/action-handler.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":27075,"timestamp":4078079712583,"id":214,"parentId":213,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":27086,"timestamp":4078079712574,"id":213,"parentId":165,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":32263,"timestamp":4078079711482,"id":165,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/create-component-tree.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":37102,"timestamp":4078079712593,"id":216,"parentId":215,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":37115,"timestamp":4078079712584,"id":215,"parentId":166,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":38659,"timestamp":4078079711498,"id":166,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/get-asset-query-string.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":37558,"timestamp":4078079712614,"id":220,"parentId":219,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":37568,"timestamp":4078079712604,"id":219,"parentId":168,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":38928,"timestamp":4078079711528,"id":168,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/is-missing-postpone-error.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":38105,"timestamp":4078079712603,"id":218,"parentId":217,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":38116,"timestamp":4078079712594,"id":217,"parentId":167,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":39813,"timestamp":4078079711513,"id":167,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/action-encryption-utils.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":38722,"timestamp":4078079712624,"id":222,"parentId":221,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":38733,"timestamp":4078079712615,"id":221,"parentId":169,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":40359,"timestamp":4078079711543,"id":169,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/use-flight-response.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":35654,"timestamp":4078079716263,"id":233,"parentId":232,"tags":{},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":35665,"timestamp":4078079716253,"id":232,"parentId":227,"tags":{},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":36129,"timestamp":4078079716115,"id":227,"parentId":133,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/internal-edge-wait-until.js","layer":"ssr"},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":28735,"timestamp":4078079723527,"id":248,"parentId":247,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":28767,"timestamp":4078079723496,"id":247,"parentId":234,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":29696,"timestamp":4078079723122,"id":234,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/async-storage/static-generation-async-storage-wrapper.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":29303,"timestamp":4078079723540,"id":250,"parentId":249,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":29316,"timestamp":4078079723529,"id":249,"parentId":235,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30177,"timestamp":4078079723179,"id":235,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":29822,"timestamp":4078079723551,"id":252,"parentId":251,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":29833,"timestamp":4078079723541,"id":251,"parentId":236,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30461,"timestamp":4078079723206,"id":236,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30126,"timestamp":4078079723561,"id":254,"parentId":253,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30137,"timestamp":4078079723551,"id":253,"parentId":237,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30874,"timestamp":4078079723225,"id":237,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/request.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":41506,"timestamp":4078079712634,"id":224,"parentId":223,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":41517,"timestamp":4078079712625,"id":223,"parentId":170,"tags":{},"startTime":1711860127487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":43667,"timestamp":4078079711558,"id":170,"parentId":133,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web-server.js","layer":"ssr"},"startTime":1711860127486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":31676,"timestamp":4078079723571,"id":256,"parentId":255,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":31686,"timestamp":4078079723562,"id":255,"parentId":238,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":32632,"timestamp":4078079723243,"id":238,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/response.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":32329,"timestamp":4078079723580,"id":258,"parentId":257,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":32340,"timestamp":4078079723571,"id":257,"parentId":239,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":34027,"timestamp":4078079723264,"id":239,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/trace/tracer.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":41142,"timestamp":4078079716253,"id":231,"parentId":230,"tags":{},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":41157,"timestamp":4078079716240,"id":230,"parentId":226,"tags":{},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":44349,"timestamp":4078079716086,"id":226,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/patch-fetch.js","layer":"ssr"},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":44271,"timestamp":4078079716239,"id":229,"parentId":228,"tags":{},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":44304,"timestamp":4078079716208,"id":228,"parentId":225,"tags":{},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":47367,"timestamp":4078079716018,"id":225,"parentId":125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/incremental-cache/index.js","layer":"ssr"},"startTime":1711860127491,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":39830,"timestamp":4078079723590,"id":260,"parentId":259,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":39841,"timestamp":4078079723581,"id":259,"parentId":240,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":40933,"timestamp":4078079723281,"id":240,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/trace/constants.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":40636,"timestamp":4078079723609,"id":264,"parentId":263,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":40647,"timestamp":4078079723600,"id":263,"parentId":242,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":42117,"timestamp":4078079723317,"id":242,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/build/output/log.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":41853,"timestamp":4078079723619,"id":266,"parentId":265,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":41863,"timestamp":4078079723610,"id":265,"parentId":243,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":42734,"timestamp":4078079723332,"id":243,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/metadata.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":42462,"timestamp":4078079723628,"id":268,"parentId":267,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":42473,"timestamp":4078079723619,"id":267,"parentId":244,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":43249,"timestamp":4078079723348,"id":244,"parentId":133,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/base-http/web.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":43205,"timestamp":4078079723600,"id":262,"parentId":261,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":43216,"timestamp":4078079723591,"id":261,"parentId":241,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":45122,"timestamp":4078079723301,"id":241,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":44812,"timestamp":4078079723638,"id":270,"parentId":269,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":44823,"timestamp":4078079723629,"id":269,"parentId":245,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":46050,"timestamp":4078079723364,"id":245,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":45787,"timestamp":4078079723647,"id":272,"parentId":271,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":45797,"timestamp":4078079723639,"id":271,"parentId":246,"tags":{},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":46835,"timestamp":4078079723381,"id":246,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/static/static-renderer.js","layer":"ssr"},"startTime":1711860127498,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-buffer","duration":414,"timestamp":4078079789358,"id":302,"parentId":226,"tags":{"name":"buffer","layer":null},"startTime":1711860127564,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6579,"timestamp":4078079784823,"id":282,"parentId":281,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6618,"timestamp":4078079784791,"id":281,"parentId":273,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7679,"timestamp":4078079784086,"id":273,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router-headers.js","layer":"ssr"},"startTime":1711860127559,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6928,"timestamp":4078079784853,"id":288,"parentId":287,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6936,"timestamp":4078079784845,"id":287,"parentId":276,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7756,"timestamp":4078079784217,"id":276,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/request-async-storage.external.js","layer":"shared"},"startTime":1711860127559,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7122,"timestamp":4078079784869,"id":292,"parentId":291,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7130,"timestamp":4078079784862,"id":291,"parentId":278,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8364,"timestamp":4078079784253,"id":278,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/hooks-server-context.js","layer":"ssr"},"startTime":1711860127559,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7794,"timestamp":4078079784844,"id":286,"parentId":285,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7804,"timestamp":4078079784836,"id":285,"parentId":275,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8669,"timestamp":4078079784194,"id":275,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/not-found.js","layer":"ssr"},"startTime":1711860127559,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8044,"timestamp":4078079784835,"id":284,"parentId":283,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8054,"timestamp":4078079784825,"id":283,"parentId":274,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9129,"timestamp":4078079784167,"id":274,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/match-segments.js","layer":"ssr"},"startTime":1711860127559,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8870,"timestamp":4078079784861,"id":290,"parentId":289,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8880,"timestamp":4078079784854,"id":289,"parentId":277,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10185,"timestamp":4078079784235,"id":277,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/redirect.js","layer":"ssr"},"startTime":1711860127559,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10282,"timestamp":4078079784877,"id":294,"parentId":293,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10292,"timestamp":4078079784870,"id":293,"parentId":279,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11662,"timestamp":4078079784281,"id":279,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-bailout.js","layer":"ssr"},"startTime":1711860127559,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11074,"timestamp":4078079784884,"id":296,"parentId":295,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11082,"timestamp":4078079784878,"id":295,"parentId":280,"tags":{},"startTime":1711860127560,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11841,"timestamp":4078079784300,"id":280,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/dev-root-not-found-boundary.js","layer":"ssr"},"startTime":1711860127559,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11375,"timestamp":4078079790510,"id":331,"parentId":330,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11389,"timestamp":4078079790501,"id":330,"parentId":300,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12927,"timestamp":4078079789284,"id":300,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js","layer":"ssr"},"startTime":1711860127564,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11732,"timestamp":4078079790500,"id":329,"parentId":328,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11743,"timestamp":4078079790492,"id":328,"parentId":299,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13307,"timestamp":4078079789261,"id":299,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js","layer":"ssr"},"startTime":1711860127564,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12105,"timestamp":4078079790477,"id":325,"parentId":324,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12141,"timestamp":4078079790443,"id":324,"parentId":297,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13567,"timestamp":4078079789155,"id":297,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/head-manager-context.shared-runtime.js","layer":"ssr"},"startTime":1711860127564,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12217,"timestamp":4078079790518,"id":333,"parentId":332,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12226,"timestamp":4078079790511,"id":332,"parentId":301,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13596,"timestamp":4078079789310,"id":301,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js","layer":"ssr"},"startTime":1711860127564,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12427,"timestamp":4078079790491,"id":327,"parentId":326,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12440,"timestamp":4078079790479,"id":326,"parentId":298,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13902,"timestamp":4078079789233,"id":298,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js","layer":"ssr"},"startTime":1711860127564,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12613,"timestamp":4078079790535,"id":337,"parentId":336,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12623,"timestamp":4078079790527,"id":336,"parentId":304,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13555,"timestamp":4078079789818,"id":304,"parentId":148,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12860,"timestamp":4078079790527,"id":335,"parentId":334,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12868,"timestamp":4078079790520,"id":334,"parentId":303,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13756,"timestamp":4078079789789,"id":303,"parentId":148,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/get-hostname.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13024,"timestamp":4078079790543,"id":339,"parentId":338,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13033,"timestamp":4078079790536,"id":338,"parentId":305,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14137,"timestamp":4078079789839,"id":305,"parentId":148,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13433,"timestamp":4078079790559,"id":343,"parentId":342,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13442,"timestamp":4078079790552,"id":342,"parentId":307,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14457,"timestamp":4078079789876,"id":307,"parentId":153,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/format-server-error.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13804,"timestamp":4078079790551,"id":341,"parentId":340,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13812,"timestamp":4078079790544,"id":340,"parentId":306,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14952,"timestamp":4078079789858,"id":306,"parentId":146,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/pipe-readable.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":14331,"timestamp":4078079790622,"id":347,"parentId":346,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14386,"timestamp":4078079790568,"id":346,"parentId":309,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16196,"timestamp":4078079789917,"id":309,"parentId":165,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/client-reference.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15559,"timestamp":4078079790567,"id":345,"parentId":344,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15567,"timestamp":4078079790560,"id":344,"parentId":308,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16586,"timestamp":4078079789895,"id":308,"parentId":164,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/htmlescape.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15877,"timestamp":4078079790632,"id":349,"parentId":348,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15888,"timestamp":4078079790623,"id":348,"parentId":310,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17237,"timestamp":4078079789982,"id":310,"parentId":144,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/constants.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16583,"timestamp":4078079790648,"id":353,"parentId":352,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16592,"timestamp":4078079790640,"id":352,"parentId":312,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17335,"timestamp":4078079790019,"id":312,"parentId":163,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/redirect-status-code.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16708,"timestamp":4078079790656,"id":355,"parentId":354,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16717,"timestamp":4078079790648,"id":354,"parentId":313,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17714,"timestamp":4078079790037,"id":313,"parentId":160,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17149,"timestamp":4078079790640,"id":351,"parentId":350,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17158,"timestamp":4078079790633,"id":350,"parentId":311,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18216,"timestamp":4078079790002,"id":311,"parentId":156,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/types.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17558,"timestamp":4078079790680,"id":361,"parentId":360,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17568,"timestamp":4078079790673,"id":360,"parentId":316,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18399,"timestamp":4078079790088,"id":316,"parentId":162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/parse-loader-tree.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17840,"timestamp":4078079790664,"id":357,"parentId":356,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17849,"timestamp":4078079790657,"id":356,"parentId":314,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18737,"timestamp":4078079790055,"id":314,"parentId":162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/get-preloadable-fonts.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18115,"timestamp":4078079790688,"id":363,"parentId":362,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18123,"timestamp":4078079790681,"id":362,"parentId":317,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18831,"timestamp":4078079790103,"id":317,"parentId":162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/has-loading-component-in-tree.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18278,"timestamp":4078079790672,"id":359,"parentId":358,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18286,"timestamp":4078079790665,"id":358,"parentId":315,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19214,"timestamp":4078079790071,"id":315,"parentId":162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/get-css-inlined-link-tags.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18605,"timestamp":4078079790696,"id":365,"parentId":364,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18613,"timestamp":4078079790689,"id":364,"parentId":318,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19360,"timestamp":4078079790208,"id":318,"parentId":159,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/server-action-request-meta.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18880,"timestamp":4078079790704,"id":367,"parentId":366,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18888,"timestamp":4078079790697,"id":366,"parentId":319,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19719,"timestamp":4078079790226,"id":319,"parentId":159,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/csrf-protection.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19216,"timestamp":4078079790740,"id":375,"parentId":374,"tags":{},"startTime":1711860127566,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19224,"timestamp":4078079790733,"id":374,"parentId":323,"tags":{},"startTime":1711860127566,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19775,"timestamp":4078079790296,"id":323,"parentId":157,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/segment.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19491,"timestamp":4078079790713,"id":369,"parentId":368,"tags":{},"startTime":1711860127566,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19501,"timestamp":4078079790705,"id":368,"parentId":320,"tags":{},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20213,"timestamp":4078079790243,"id":320,"parentId":165,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/app-dir-module.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20332,"timestamp":4078079790722,"id":371,"parentId":370,"tags":{},"startTime":1711860127566,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20342,"timestamp":4078079790714,"id":370,"parentId":321,"tags":{},"startTime":1711860127566,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20898,"timestamp":4078079790261,"id":321,"parentId":165,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/interop-default.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20448,"timestamp":4078079790732,"id":373,"parentId":372,"tags":{},"startTime":1711860127566,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20458,"timestamp":4078079790723,"id":372,"parentId":322,"tags":{},"startTime":1711860127566,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21577,"timestamp":4078079790280,"id":322,"parentId":162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/get-layer-assets.js","layer":"ssr"},"startTime":1711860127565,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14885,"timestamp":4078079796983,"id":394,"parentId":393,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14895,"timestamp":4078079796975,"id":393,"parentId":378,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15618,"timestamp":4078079796360,"id":378,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/is-api-route.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15020,"timestamp":4078079796974,"id":392,"parentId":391,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15032,"timestamp":4078079796964,"id":391,"parentId":377,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15892,"timestamp":4078079796338,"id":377,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/request-meta.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15235,"timestamp":4078079797004,"id":398,"parentId":397,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15247,"timestamp":4078079796993,"id":397,"parentId":380,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15905,"timestamp":4078079796450,"id":380,"parentId":165,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/parallel-route-default.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19825,"timestamp":4078079797013,"id":400,"parentId":399,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19848,"timestamp":4078079797005,"id":399,"parentId":381,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21053,"timestamp":4078079796470,"id":381,"parentId":165,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/create-component-styles-and-scripts.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20529,"timestamp":4078079797021,"id":402,"parentId":401,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20538,"timestamp":4078079797014,"id":401,"parentId":382,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21271,"timestamp":4078079796488,"id":382,"parentId":169,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/stream-utils/encode-decode.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20823,"timestamp":4078079796992,"id":396,"parentId":395,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20832,"timestamp":4078079796984,"id":395,"parentId":379,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22964,"timestamp":4078079796427,"id":379,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/server-utils.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":22389,"timestamp":4078079797029,"id":404,"parentId":403,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":22398,"timestamp":4078079797022,"id":403,"parentId":383,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23248,"timestamp":4078079796539,"id":383,"parentId":235,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":22769,"timestamp":4078079797037,"id":406,"parentId":405,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":22777,"timestamp":4078079797030,"id":405,"parentId":384,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23658,"timestamp":4078079796594,"id":384,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/etag.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":23213,"timestamp":4078079797052,"id":410,"parentId":409,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":23222,"timestamp":4078079797045,"id":409,"parentId":386,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23903,"timestamp":4078079796640,"id":386,"parentId":235,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/cookies.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":23511,"timestamp":4078079797060,"id":412,"parentId":411,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":23520,"timestamp":4078079797053,"id":411,"parentId":387,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":25757,"timestamp":4078079796659,"id":387,"parentId":235,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25545,"timestamp":4078079797045,"id":408,"parentId":407,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25554,"timestamp":4078079797038,"id":407,"parentId":385,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26962,"timestamp":4078079796619,"id":385,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":26525,"timestamp":4078079797068,"id":414,"parentId":413,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":26534,"timestamp":4078079797061,"id":413,"parentId":388,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":27039,"timestamp":4078079796677,"id":388,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":28121,"timestamp":4078079796962,"id":390,"parentId":389,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":28149,"timestamp":4078079796937,"id":389,"parentId":376,"tags":{},"startTime":1711860127572,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":43618,"timestamp":4078079796285,"id":376,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/base-server.js","layer":"ssr"},"startTime":1711860127571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":26436,"timestamp":4078079813496,"id":423,"parentId":422,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":26467,"timestamp":4078079813466,"id":422,"parentId":415,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":27413,"timestamp":4078079812737,"id":415,"parentId":159,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/server-ipc/utils.js","layer":"ssr"},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":26640,"timestamp":4078079813526,"id":429,"parentId":428,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":26649,"timestamp":4078079813518,"id":428,"parentId":418,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":27618,"timestamp":4078079812835,"id":418,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js","layer":"ssr"},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":26960,"timestamp":4078079813509,"id":425,"parentId":424,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":26972,"timestamp":4078079813498,"id":424,"parentId":416,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":28037,"timestamp":4078079812793,"id":416,"parentId":153,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/dev/log-app-dir-error.js","layer":"ssr"},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":27326,"timestamp":4078079813518,"id":427,"parentId":426,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":27335,"timestamp":4078079813509,"id":426,"parentId":417,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":28200,"timestamp":4078079812816,"id":417,"parentId":148,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js","layer":"ssr"},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":27690,"timestamp":4078079813542,"id":433,"parentId":432,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":27698,"timestamp":4078079813535,"id":432,"parentId":420,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":29189,"timestamp":4078079812870,"id":420,"parentId":242,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/picocolors.js","layer":"ssr"},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":31279,"timestamp":4078079813550,"id":435,"parentId":434,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":31290,"timestamp":4078079813543,"id":434,"parentId":421,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":33708,"timestamp":4078079812887,"id":421,"parentId":225,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/incremental-cache/file-system-cache.js","layer":"ssr"},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":33106,"timestamp":4078079813534,"id":431,"parentId":430,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":33116,"timestamp":4078079813527,"id":430,"parentId":419,"tags":{},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":34960,"timestamp":4078079812853,"id":419,"parentId":225,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/incremental-cache/fetch-cache.js","layer":"ssr"},"startTime":1711860127588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3477,"timestamp":4078079855451,"id":442,"parentId":441,"tags":{},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3492,"timestamp":4078079855441,"id":441,"parentId":437,"tags":{},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4255,"timestamp":4078079854895,"id":437,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/api-utils/web.js","layer":"ssr"},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4164,"timestamp":4078079855439,"id":440,"parentId":439,"tags":{},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4199,"timestamp":4078079855407,"id":439,"parentId":436,"tags":{},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5364,"timestamp":4078079854832,"id":436,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/response-cache/web.js","layer":"ssr"},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2948,"timestamp":4078079858147,"id":472,"parentId":471,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2971,"timestamp":4078079858126,"id":471,"parentId":445,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4142,"timestamp":4078079857304,"id":445,"parentId":243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/default-metadata.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6196,"timestamp":4078079855460,"id":444,"parentId":443,"tags":{},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6220,"timestamp":4078079855452,"id":443,"parentId":438,"tags":{},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9909,"timestamp":4078079854921,"id":438,"parentId":243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/resolve-metadata.js","layer":"ssr"},"startTime":1711860127630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6695,"timestamp":4078079858157,"id":474,"parentId":473,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6705,"timestamp":4078079858148,"id":473,"parentId":446,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7750,"timestamp":4078079857341,"id":446,"parentId":244,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/base-http/index.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6938,"timestamp":4078079858166,"id":476,"parentId":475,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6947,"timestamp":4078079858158,"id":475,"parentId":447,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7919,"timestamp":4078079857362,"id":447,"parentId":241,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/scheduler.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7117,"timestamp":4078079858182,"id":480,"parentId":479,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7125,"timestamp":4078079858175,"id":479,"parentId":449,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8273,"timestamp":4078079857398,"id":449,"parentId":155,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/helpers/interception-routes.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7492,"timestamp":4078079858190,"id":482,"parentId":481,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7500,"timestamp":4078079858183,"id":481,"parentId":450,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8389,"timestamp":4078079857415,"id":450,"parentId":153,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/export/helpers/is-dynamic-usage-error.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7657,"timestamp":4078079858174,"id":478,"parentId":477,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7665,"timestamp":4078079858167,"id":477,"parentId":448,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8607,"timestamp":4078079857381,"id":448,"parentId":245,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7793,"timestamp":4078079858206,"id":486,"parentId":485,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7801,"timestamp":4078079858199,"id":485,"parentId":452,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8755,"timestamp":4078079857451,"id":452,"parentId":225,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/page-path/normalize-page-path.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9282,"timestamp":4078079858214,"id":488,"parentId":487,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9291,"timestamp":4078079858207,"id":487,"parentId":453,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10472,"timestamp":4078079857467,"id":453,"parentId":280,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/not-found-boundary.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9722,"timestamp":4078079858230,"id":490,"parentId":489,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9737,"timestamp":4078079858215,"id":489,"parentId":454,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10634,"timestamp":4078079857483,"id":454,"parentId":276,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/async-local-storage.js","layer":"shared"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9889,"timestamp":4078079858246,"id":494,"parentId":493,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9898,"timestamp":4078079858238,"id":493,"parentId":456,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10623,"timestamp":4078079857802,"id":456,"parentId":243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/generate/alternate.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10220,"timestamp":4078079858238,"id":492,"parentId":491,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10229,"timestamp":4078079858230,"id":491,"parentId":455,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13002,"timestamp":4078079857784,"id":455,"parentId":243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/generate/basic.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12543,"timestamp":4078079858261,"id":498,"parentId":497,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12551,"timestamp":4078079858254,"id":497,"parentId":458,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13264,"timestamp":4078079857834,"id":458,"parentId":243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/generate/icons.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12910,"timestamp":4078079858198,"id":484,"parentId":483,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12919,"timestamp":4078079858190,"id":483,"parentId":451,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14183,"timestamp":4078079857434,"id":451,"parentId":225,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/isomorphic/path.js","layer":"ssr"},"startTime":1711860127632,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13418,"timestamp":4078079858253,"id":496,"parentId":495,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13426,"timestamp":4078079858247,"id":495,"parentId":457,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14905,"timestamp":4078079857818,"id":457,"parentId":243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/generate/opengraph.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14457,"timestamp":4078079858276,"id":502,"parentId":501,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14465,"timestamp":4078079858269,"id":501,"parentId":460,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14953,"timestamp":4078079857871,"id":460,"parentId":279,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js","layer":"shared"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14573,"timestamp":4078079858269,"id":500,"parentId":499,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14580,"timestamp":4078079858262,"id":499,"parentId":459,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18490,"timestamp":4078079857850,"id":459,"parentId":243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/generate/meta.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18105,"timestamp":4078079858284,"id":504,"parentId":503,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18114,"timestamp":4078079858277,"id":503,"parentId":461,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18778,"timestamp":4078079857887,"id":461,"parentId":277,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/action-async-storage.external.js","layer":"shared"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18392,"timestamp":4078079858292,"id":506,"parentId":505,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18401,"timestamp":4078079858284,"id":505,"parentId":462,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19315,"timestamp":4078079857902,"id":462,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/build/webpack/alias/react-dom-server-edge.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18929,"timestamp":4078079858307,"id":510,"parentId":509,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18937,"timestamp":4078079858300,"id":509,"parentId":464,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19450,"timestamp":4078079857933,"id":464,"parentId":310,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/modern-browserslist-target.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19074,"timestamp":4078079858322,"id":514,"parentId":513,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19083,"timestamp":4078079858316,"id":513,"parentId":466,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20027,"timestamp":4078079857965,"id":466,"parentId":305,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19675,"timestamp":4078079858337,"id":518,"parentId":517,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19683,"timestamp":4078079858330,"id":517,"parentId":468,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20195,"timestamp":4078079857996,"id":468,"parentId":304,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19887,"timestamp":4078079858315,"id":512,"parentId":511,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19895,"timestamp":4078079858308,"id":511,"parentId":465,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20340,"timestamp":4078079857950,"id":465,"parentId":299,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20015,"timestamp":4078079858299,"id":508,"parentId":507,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20024,"timestamp":4078079858292,"id":507,"parentId":463,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20813,"timestamp":4078079857917,"id":463,"parentId":306,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21391,"timestamp":4078079858330,"id":516,"parentId":515,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21400,"timestamp":4078079858323,"id":515,"parentId":467,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21906,"timestamp":4078079857981,"id":467,"parentId":300,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21554,"timestamp":4078079858345,"id":520,"parentId":519,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21562,"timestamp":4078079858338,"id":519,"parentId":469,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22035,"timestamp":4078079858011,"id":469,"parentId":304,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21706,"timestamp":4078079858353,"id":522,"parentId":521,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21714,"timestamp":4078079858345,"id":521,"parentId":470,"tags":{},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22151,"timestamp":4078079858027,"id":470,"parentId":305,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js","layer":"ssr"},"startTime":1711860127633,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":22074,"timestamp":4078079860634,"id":545,"parentId":544,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":22084,"timestamp":4078079860627,"id":544,"parentId":526,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23089,"timestamp":4078079860333,"id":526,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/utils.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":22828,"timestamp":4078079860607,"id":539,"parentId":538,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":22850,"timestamp":4078079860586,"id":538,"parentId":523,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23313,"timestamp":4078079860255,"id":523,"parentId":305,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":22960,"timestamp":4078079860618,"id":541,"parentId":540,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":23097,"timestamp":4078079860608,"id":540,"parentId":524,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23513,"timestamp":4078079860294,"id":524,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/is-edge-runtime.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":23198,"timestamp":4078079860626,"id":543,"parentId":542,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":23207,"timestamp":4078079860619,"id":542,"parentId":525,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23827,"timestamp":4078079860315,"id":525,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/utils.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":23509,"timestamp":4078079860642,"id":547,"parentId":546,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":23518,"timestamp":4078079860635,"id":546,"parentId":527,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23903,"timestamp":4078079860350,"id":527,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/format-hostname.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":23611,"timestamp":4078079860650,"id":549,"parentId":548,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":23619,"timestamp":4078079860643,"id":548,"parentId":528,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24184,"timestamp":4078079860366,"id":528,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/runtime-config.external.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":23897,"timestamp":4078079860665,"id":553,"parentId":552,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":23905,"timestamp":4078079860658,"id":552,"parentId":530,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24357,"timestamp":4078079860398,"id":530,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/redirect-status.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":24109,"timestamp":4078079860657,"id":551,"parentId":550,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":24117,"timestamp":4078079860650,"id":550,"parentId":529,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24554,"timestamp":4078079860383,"id":529,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/is-error.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":24251,"timestamp":4078079860696,"id":561,"parentId":560,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":24259,"timestamp":4078079860689,"id":560,"parentId":534,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24581,"timestamp":4078079860462,"id":534,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/escape-path-delimiters.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":24374,"timestamp":4078079860680,"id":557,"parentId":556,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":24382,"timestamp":4078079860673,"id":556,"parentId":532,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24747,"timestamp":4078079860429,"id":532,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/page-path/denormalize-page-path.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":24512,"timestamp":4078079860672,"id":555,"parentId":554,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":24520,"timestamp":4078079860665,"id":554,"parentId":531,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":25040,"timestamp":4078079860413,"id":531,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":24772,"timestamp":4078079860688,"id":559,"parentId":558,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":24781,"timestamp":4078079860681,"id":558,"parentId":533,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":25119,"timestamp":4078079860444,"id":533,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/revalidate.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25027,"timestamp":4078079860704,"id":563,"parentId":562,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25035,"timestamp":4078079860697,"id":562,"parentId":535,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26607,"timestamp":4078079860478,"id":535,"parentId":379,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":26382,"timestamp":4078079860718,"id":567,"parentId":566,"tags":{},"startTime":1711860127636,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":26390,"timestamp":4078079860711,"id":566,"parentId":537,"tags":{},"startTime":1711860127636,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26812,"timestamp":4078079860508,"id":537,"parentId":379,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/path-match.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":26618,"timestamp":4078079860711,"id":565,"parentId":564,"tags":{},"startTime":1711860127636,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":26626,"timestamp":4078079860704,"id":564,"parentId":536,"tags":{},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":27051,"timestamp":4078079860493,"id":536,"parentId":385,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/escape-regexp.js","layer":"ssr"},"startTime":1711860127635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5615,"timestamp":4078079890623,"id":579,"parentId":578,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5639,"timestamp":4078079890613,"id":578,"parentId":569,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7646,"timestamp":4078079889398,"id":569,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/match-next-data-pathname.js","layer":"ssr"},"startTime":1711860127664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9357,"timestamp":4078079890611,"id":577,"parentId":576,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9402,"timestamp":4078079890579,"id":576,"parentId":568,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11574,"timestamp":4078079889342,"id":568,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/send-response.js","layer":"ssr"},"startTime":1711860127664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10469,"timestamp":4078079890641,"id":583,"parentId":582,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10487,"timestamp":4078079890634,"id":582,"parentId":571,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12187,"timestamp":4078079889441,"id":571,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js","layer":"ssr"},"startTime":1711860127664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10991,"timestamp":4078079890666,"id":589,"parentId":588,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11000,"timestamp":4078079890659,"id":588,"parentId":574,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12343,"timestamp":4078079889493,"id":574,"parentId":170,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/index.js","layer":"ssr"},"startTime":1711860127664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14489,"timestamp":4078079890650,"id":585,"parentId":584,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14502,"timestamp":4078079890642,"id":584,"parentId":572,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16017,"timestamp":4078079889459,"id":572,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/get-route-from-asset-path.js","layer":"ssr"},"startTime":1711860127664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15105,"timestamp":4078079890658,"id":587,"parentId":586,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15115,"timestamp":4078079890651,"id":586,"parentId":573,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17076,"timestamp":4078079889477,"id":573,"parentId":131,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/experimental/testmode/server-edge.js","layer":"ssr"},"startTime":1711860127664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14255,"timestamp":4078079893647,"id":604,"parentId":603,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14283,"timestamp":4078079893622,"id":603,"parentId":592,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14824,"timestamp":4078079893353,"id":592,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/jsx-runtime.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17517,"timestamp":4078079890675,"id":591,"parentId":590,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17526,"timestamp":4078079890667,"id":590,"parentId":575,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18818,"timestamp":4078079889509,"id":575,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/strip-flight-headers.js","layer":"ssr"},"startTime":1711860127664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17717,"timestamp":4078079890633,"id":581,"parentId":580,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17726,"timestamp":4078079890624,"id":580,"parentId":570,"tags":{},"startTime":1711860127665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19456,"timestamp":4078079889422,"id":570,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/helpers/i18n-provider.js","layer":"ssr"},"startTime":1711860127664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15234,"timestamp":4078079893661,"id":606,"parentId":605,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15246,"timestamp":4078079893650,"id":605,"parentId":593,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15785,"timestamp":4078079893410,"id":593,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matcher-providers/app-page-route-matcher-provider.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15533,"timestamp":4078079893679,"id":610,"parentId":609,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15542,"timestamp":4078079893671,"id":609,"parentId":595,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16113,"timestamp":4078079893455,"id":595,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matcher-providers/pages-api-route-matcher-provider.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15904,"timestamp":4078079893687,"id":612,"parentId":611,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15913,"timestamp":4078079893679,"id":611,"parentId":596,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16511,"timestamp":4078079893474,"id":596,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matcher-providers/pages-route-matcher-provider.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16330,"timestamp":4078079893670,"id":608,"parentId":607,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16340,"timestamp":4078079893662,"id":607,"parentId":594,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16795,"timestamp":4078079893435,"id":594,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matcher-providers/app-route-route-matcher-provider.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16547,"timestamp":4078079893695,"id":614,"parentId":613,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16556,"timestamp":4078079893688,"id":613,"parentId":597,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16875,"timestamp":4078079893492,"id":597,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/locale-route-normalizer.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16665,"timestamp":4078079893711,"id":618,"parentId":617,"tags":{},"startTime":1711860127669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16673,"timestamp":4078079893704,"id":617,"parentId":599,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16939,"timestamp":4078079893529,"id":599,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/request/rsc.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18907,"timestamp":4078079893703,"id":616,"parentId":615,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18917,"timestamp":4078079893696,"id":615,"parentId":598,"tags":{},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19880,"timestamp":4078079893509,"id":598,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matcher-managers/default-route-matcher-manager.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19683,"timestamp":4078079893719,"id":620,"parentId":619,"tags":{},"startTime":1711860127669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19692,"timestamp":4078079893711,"id":619,"parentId":600,"tags":{},"startTime":1711860127669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20003,"timestamp":4078079893545,"id":600,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/request/postponed.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19831,"timestamp":4078079893726,"id":622,"parentId":621,"tags":{},"startTime":1711860127669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19840,"timestamp":4078079893719,"id":621,"parentId":601,"tags":{},"startTime":1711860127669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20091,"timestamp":4078079893562,"id":601,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/request/prefetch-rsc.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20095,"timestamp":4078079893736,"id":624,"parentId":623,"tags":{},"startTime":1711860127669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20105,"timestamp":4078079893727,"id":623,"parentId":602,"tags":{},"startTime":1711860127669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20444,"timestamp":4078079893579,"id":602,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/request/next-data.js","layer":"ssr"},"startTime":1711860127668,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18055,"timestamp":4078079896068,"id":628,"parentId":627,"tags":{},"startTime":1711860127671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18125,"timestamp":4078079895999,"id":627,"parentId":625,"tags":{},"startTime":1711860127671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18568,"timestamp":4078079895717,"id":625,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-modules/checks.js","layer":"ssr"},"startTime":1711860127671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18198,"timestamp":4078079896098,"id":630,"parentId":629,"tags":{},"startTime":1711860127671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18225,"timestamp":4078079896072,"id":629,"parentId":626,"tags":{},"startTime":1711860127671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18554,"timestamp":4078079895905,"id":626,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-modules/helpers/response-handlers.js","layer":"ssr"},"startTime":1711860127671,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":3324,"timestamp":4078079916627,"id":647,"parentId":646,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3336,"timestamp":4078079916619,"id":646,"parentId":634,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3934,"timestamp":4078079916205,"id":634,"parentId":132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/index.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4171,"timestamp":4078079916609,"id":643,"parentId":642,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4183,"timestamp":4078079916599,"id":642,"parentId":632,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4864,"timestamp":4078079916139,"id":632,"parentId":438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/clone-metadata.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4398,"timestamp":4078079916619,"id":645,"parentId":644,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4408,"timestamp":4078079916610,"id":644,"parentId":633,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4974,"timestamp":4078079916174,"id":633,"parentId":438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/generate/utils.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4573,"timestamp":4078079916598,"id":641,"parentId":640,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4602,"timestamp":4078079916570,"id":640,"parentId":631,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5166,"timestamp":4078079916085,"id":631,"parentId":438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/interop-default.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4817,"timestamp":4078079916635,"id":649,"parentId":648,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4827,"timestamp":4078079916627,"id":648,"parentId":635,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5379,"timestamp":4078079916222,"id":635,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5497,"timestamp":4078079916650,"id":653,"parentId":652,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5552,"timestamp":4078079916643,"id":652,"parentId":637,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6659,"timestamp":4078079916255,"id":637,"parentId":453,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6796,"timestamp":4078079916657,"id":655,"parentId":654,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6805,"timestamp":4078079916651,"id":654,"parentId":638,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7335,"timestamp":4078079916272,"id":638,"parentId":455,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/constants.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7992,"timestamp":4078079916642,"id":651,"parentId":650,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8001,"timestamp":4078079916635,"id":650,"parentId":636,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9408,"timestamp":4078079916240,"id":636,"parentId":453,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/navigation.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8996,"timestamp":4078079916665,"id":657,"parentId":656,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9005,"timestamp":4078079916658,"id":656,"parentId":639,"tags":{},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9514,"timestamp":4078079916288,"id":639,"parentId":446,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js","layer":"ssr"},"startTime":1711860127691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6258,"timestamp":4078079919583,"id":669,"parentId":668,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6282,"timestamp":4078079919560,"id":668,"parentId":658,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6600,"timestamp":4078079919361,"id":658,"parentId":529,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/is-plain-object.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6373,"timestamp":4078079919602,"id":673,"parentId":672,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6382,"timestamp":4078079919594,"id":672,"parentId":660,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6754,"timestamp":4078079919431,"id":660,"parentId":527,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/is-ipv6.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6601,"timestamp":4078079919593,"id":671,"parentId":670,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6611,"timestamp":4078079919584,"id":670,"parentId":659,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6859,"timestamp":4078079919409,"id":659,"parentId":459,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/non-nullable.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6666,"timestamp":4078079919610,"id":675,"parentId":674,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6674,"timestamp":4078079919603,"id":674,"parentId":661,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6919,"timestamp":4078079919449,"id":661,"parentId":532,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6753,"timestamp":4078079919625,"id":679,"parentId":678,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6760,"timestamp":4078079919618,"id":678,"parentId":663,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7076,"timestamp":4078079919481,"id":663,"parentId":438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/resolvers/resolve-title.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8566,"timestamp":4078079919618,"id":677,"parentId":676,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8576,"timestamp":4078079919611,"id":676,"parentId":662,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9308,"timestamp":4078079919466,"id":662,"parentId":438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/resolvers/resolve-opengraph.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9149,"timestamp":4078079919640,"id":683,"parentId":682,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9157,"timestamp":4078079919633,"id":682,"parentId":665,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9526,"timestamp":4078079919511,"id":665,"parentId":438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/resolvers/resolve-icons.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9575,"timestamp":4078079919648,"id":685,"parentId":684,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9583,"timestamp":4078079919641,"id":684,"parentId":666,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9797,"timestamp":4078079919527,"id":666,"parentId":161,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-dom/server-rendering-stub.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9895,"timestamp":4078079919633,"id":681,"parentId":680,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9903,"timestamp":4078079919626,"id":680,"parentId":664,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13434,"timestamp":4078079919496,"id":664,"parentId":438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/resolvers/resolve-basics.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13296,"timestamp":4078079919655,"id":687,"parentId":686,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13304,"timestamp":4078079919649,"id":686,"parentId":667,"tags":{},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13560,"timestamp":4078079919543,"id":667,"parentId":453,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/utils/warn-once.js","layer":"ssr"},"startTime":1711860127694,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8261,"timestamp":4078079927316,"id":701,"parentId":700,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8277,"timestamp":4078079927308,"id":700,"parentId":691,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9264,"timestamp":4078079926756,"id":691,"parentId":571,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js","layer":"ssr"},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8762,"timestamp":4078079927297,"id":697,"parentId":696,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8775,"timestamp":4078079927285,"id":696,"parentId":689,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10096,"timestamp":4078079926715,"id":689,"parentId":574,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/sorted-routes.js","layer":"ssr"},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9522,"timestamp":4078079927308,"id":699,"parentId":698,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9533,"timestamp":4078079927298,"id":698,"parentId":690,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10277,"timestamp":4078079926736,"id":690,"parentId":574,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/is-dynamic.js","layer":"ssr"},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11145,"timestamp":4078079927284,"id":695,"parentId":694,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11175,"timestamp":4078079927257,"id":694,"parentId":688,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12140,"timestamp":4078079926667,"id":688,"parentId":571,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/querystring.js","layer":"ssr"},"startTime":1711860127701,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11485,"timestamp":4078079927334,"id":705,"parentId":704,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11494,"timestamp":4078079927326,"id":704,"parentId":693,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12130,"timestamp":4078079926791,"id":693,"parentId":169,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js","layer":"ssr"},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11623,"timestamp":4078079927325,"id":703,"parentId":702,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11632,"timestamp":4078079927318,"id":702,"parentId":692,"tags":{},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12798,"timestamp":4078079926773,"id":692,"parentId":376,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/api-utils/index.js","layer":"ssr"},"startTime":1711860127702,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6237,"timestamp":4078079934271,"id":719,"parentId":718,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6248,"timestamp":4078079934263,"id":718,"parentId":709,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7341,"timestamp":4078079933312,"id":709,"parentId":593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-kind.js","layer":"ssr"},"startTime":1711860127708,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6385,"timestamp":4078079934281,"id":721,"parentId":720,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6394,"timestamp":4078079934272,"id":720,"parentId":710,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7671,"timestamp":4078079933386,"id":710,"parentId":593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matcher-providers/manifest-route-matcher-provider.js","layer":"ssr"},"startTime":1711860127708,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6845,"timestamp":4078079934251,"id":715,"parentId":714,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6859,"timestamp":4078079934239,"id":714,"parentId":707,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8184,"timestamp":4078079933274,"id":707,"parentId":573,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/experimental/testmode/context.js","layer":"ssr"},"startTime":1711860127708,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7304,"timestamp":4078079934291,"id":723,"parentId":722,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7313,"timestamp":4078079934283,"id":722,"parentId":711,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8201,"timestamp":4078079933562,"id":711,"parentId":599,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/request/suffix.js","layer":"ssr"},"startTime":1711860127708,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10905,"timestamp":4078079934262,"id":717,"parentId":716,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10917,"timestamp":4078079934253,"id":716,"parentId":708,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11998,"timestamp":4078079933295,"id":708,"parentId":594,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/is-app-route-route.js","layer":"ssr"},"startTime":1711860127708,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11113,"timestamp":4078079934236,"id":713,"parentId":712,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11163,"timestamp":4078079934187,"id":712,"parentId":706,"tags":{},"startTime":1711860127709,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12846,"timestamp":4078079933230,"id":706,"parentId":573,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/experimental/testmode/fetch.js","layer":"ssr"},"startTime":1711860127708,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6789,"timestamp":4078079940081,"id":727,"parentId":726,"tags":{},"startTime":1711860127715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6816,"timestamp":4078079940056,"id":726,"parentId":724,"tags":{},"startTime":1711860127715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7300,"timestamp":4078079939698,"id":724,"parentId":593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/is-app-page-route.js","layer":"ssr"},"startTime":1711860127714,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-node:async_hooks","duration":46,"timestamp":4078079947499,"id":751,"parentId":707,"tags":{"name":"node:async_hooks","layer":null},"startTime":1711860127722,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1889,"timestamp":4078079946567,"id":740,"parentId":739,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1916,"timestamp":4078079946557,"id":739,"parentId":731,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2576,"timestamp":4078079946297,"id":731,"parentId":600,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/request/prefix.js","layer":"ssr"},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2333,"timestamp":4078079946576,"id":742,"parentId":741,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":2470,"timestamp":4078079946568,"id":741,"parentId":732,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2857,"timestamp":4078079946320,"id":732,"parentId":593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matchers/app-page-route-matcher.js","layer":"ssr"},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9200,"timestamp":4078079940092,"id":729,"parentId":728,"tags":{},"startTime":1711860127715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9211,"timestamp":4078079940083,"id":728,"parentId":725,"tags":{},"startTime":1711860127715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13748,"timestamp":4078079939743,"id":725,"parentId":592,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js","layer":"ssr"},"startTime":1711860127715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7446,"timestamp":4078079946600,"id":748,"parentId":747,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7455,"timestamp":4078079946593,"id":747,"parentId":735,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7787,"timestamp":4078079946378,"id":735,"parentId":594,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matchers/app-route-route-matcher.js","layer":"ssr"},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7593,"timestamp":4078079946584,"id":744,"parentId":743,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7601,"timestamp":4078079946577,"id":743,"parentId":733,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7934,"timestamp":4078079946343,"id":733,"parentId":595,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matchers/pages-api-route-matcher.js","layer":"ssr"},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7952,"timestamp":4078079946608,"id":750,"parentId":749,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7960,"timestamp":4078079946601,"id":749,"parentId":736,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8463,"timestamp":4078079946397,"id":736,"parentId":598,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matchers/locale-route-matcher.js","layer":"ssr"},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8581,"timestamp":4078079946592,"id":746,"parentId":745,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8590,"timestamp":4078079946585,"id":745,"parentId":734,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8935,"timestamp":4078079946361,"id":734,"parentId":596,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matchers/pages-route-matcher.js","layer":"ssr"},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8794,"timestamp":4078079947725,"id":756,"parentId":755,"tags":{},"startTime":1711860127723,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8828,"timestamp":4078079947698,"id":755,"parentId":752,"tags":{},"startTime":1711860127722,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9308,"timestamp":4078079947563,"id":752,"parentId":636,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js","layer":"ssr"},"startTime":1711860127722,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9143,"timestamp":4078079947745,"id":760,"parentId":759,"tags":{},"startTime":1711860127723,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9152,"timestamp":4078079947737,"id":759,"parentId":754,"tags":{},"startTime":1711860127723,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9424,"timestamp":4078079947667,"id":754,"parentId":636,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js","layer":"ssr"},"startTime":1711860127722,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9371,"timestamp":4078079947736,"id":758,"parentId":757,"tags":{},"startTime":1711860127723,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9383,"timestamp":4078079947726,"id":757,"parentId":753,"tags":{},"startTime":1711860127723,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9624,"timestamp":4078079947628,"id":753,"parentId":636,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js","layer":"ssr"},"startTime":1711860127722,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14260,"timestamp":4078079946555,"id":738,"parentId":737,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14290,"timestamp":4078079946530,"id":737,"parentId":730,"tags":{},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24158,"timestamp":4078079946240,"id":730,"parentId":634,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react.development.js","layer":"ssr"},"startTime":1711860127721,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11005,"timestamp":4078079972021,"id":766,"parentId":765,"tags":{},"startTime":1711860127747,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11083,"timestamp":4078079971949,"id":765,"parentId":761,"tags":{},"startTime":1711860127747,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13043,"timestamp":4078079970570,"id":761,"parentId":662,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/resolvers/resolve-url.js","layer":"ssr"},"startTime":1711860127745,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17085,"timestamp":4078079972052,"id":768,"parentId":767,"tags":{},"startTime":1711860127747,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17115,"timestamp":4078079972026,"id":767,"parentId":762,"tags":{},"startTime":1711860127747,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18951,"timestamp":4078079970651,"id":762,"parentId":153,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/string-hash/index.js","layer":"ssr"},"startTime":1711860127745,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14930,"timestamp":4078079974684,"id":778,"parentId":777,"tags":{},"startTime":1711860127749,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14942,"timestamp":4078079974674,"id":777,"parentId":774,"tags":{},"startTime":1711860127749,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15151,"timestamp":4078079974581,"id":774,"parentId":165,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-is/index.js","layer":"ssr"},"startTime":1711860127749,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15175,"timestamp":4078079974672,"id":776,"parentId":775,"tags":{},"startTime":1711860127749,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15201,"timestamp":4078079974647,"id":775,"parentId":773,"tags":{},"startTime":1711860127749,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16824,"timestamp":4078079974525,"id":773,"parentId":666,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js","layer":"ssr"},"startTime":1711860127749,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19307,"timestamp":4078079972076,"id":770,"parentId":769,"tags":{},"startTime":1711860127747,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19330,"timestamp":4078079972055,"id":769,"parentId":763,"tags":{},"startTime":1711860127747,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22494,"timestamp":4078079970679,"id":763,"parentId":379,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/native-url/index.js","layer":"ssr"},"startTime":1711860127745,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21103,"timestamp":4078079972131,"id":772,"parentId":771,"tags":{},"startTime":1711860127747,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21157,"timestamp":4078079972078,"id":771,"parentId":764,"tags":{},"startTime":1711860127747,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-cjs","duration":26917,"timestamp":4078079970700,"id":764,"parentId":156,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/superstruct/index.cjs","layer":"ssr"},"startTime":1711860127745,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18320,"timestamp":4078079982882,"id":784,"parentId":783,"tags":{},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18351,"timestamp":4078079982858,"id":783,"parentId":779,"tags":{},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":25903,"timestamp":4078079975730,"id":779,"parentId":710,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matcher-providers/helpers/cached-route-matcher-provider.js","layer":"ssr"},"startTime":1711860127751,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18833,"timestamp":4078079982913,"id":790,"parentId":789,"tags":{},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18842,"timestamp":4078079982906,"id":789,"parentId":782,"tags":{},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19269,"timestamp":4078079982808,"id":782,"parentId":732,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-matchers/route-matcher.js","layer":"ssr"},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19756,"timestamp":4078079982895,"id":786,"parentId":785,"tags":{},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19770,"timestamp":4078079982884,"id":785,"parentId":780,"tags":{},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":42213,"timestamp":4078079975884,"id":780,"parentId":693,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js","layer":"ssr"},"startTime":1711860127751,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":40842,"timestamp":4078080033406,"id":793,"parentId":792,"tags":{},"startTime":1711860127808,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":40887,"timestamp":4078080033369,"id":792,"parentId":791,"tags":{},"startTime":1711860127808,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":41443,"timestamp":4078080033176,"id":791,"parentId":636,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js","layer":"ssr"},"startTime":1711860127808,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":131491,"timestamp":4078079982905,"id":788,"parentId":787,"tags":{},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":131516,"timestamp":4078079982896,"id":787,"parentId":781,"tags":{},"startTime":1711860127758,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":305292,"timestamp":4078079976118,"id":781,"parentId":462,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.development.js","layer":"ssr"},"startTime":1711860127751,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12481,"timestamp":4078080282214,"id":796,"parentId":795,"tags":{},"startTime":1711860128057,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12532,"timestamp":4078080282172,"id":795,"parentId":794,"tags":{},"startTime":1711860128057,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":49404,"timestamp":4078080281880,"id":794,"parentId":239,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@opentelemetry/api/index.js","layer":"ssr"},"startTime":1711860128057,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":38401,"timestamp":4078080293803,"id":803,"parentId":802,"tags":{},"startTime":1711860128069,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":38417,"timestamp":4078080293792,"id":802,"parentId":798,"tags":{},"startTime":1711860128069,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":44712,"timestamp":4078080287832,"id":798,"parentId":593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/app/index.js","layer":"ssr"},"startTime":1711860128063,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":38773,"timestamp":4078080293789,"id":801,"parentId":800,"tags":{},"startTime":1711860128069,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":38815,"timestamp":4078080293749,"id":800,"parentId":797,"tags":{},"startTime":1711860128069,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":44977,"timestamp":4078080287764,"id":797,"parentId":595,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/pages/index.js","layer":"ssr"},"startTime":1711860128063,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":38960,"timestamp":4078080293813,"id":805,"parentId":804,"tags":{},"startTime":1711860128069,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":38970,"timestamp":4078080293804,"id":804,"parentId":799,"tags":{},"startTime":1711860128069,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":39694,"timestamp":4078080293660,"id":799,"parentId":774,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js","layer":"ssr"},"startTime":1711860128068,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5326,"timestamp":4078080334490,"id":811,"parentId":810,"tags":{},"startTime":1711860128109,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5358,"timestamp":4078080334470,"id":810,"parentId":809,"tags":{},"startTime":1711860128109,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7236,"timestamp":4078080334419,"id":809,"parentId":386,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","layer":"ssr"},"startTime":1711860128109,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6915,"timestamp":4078080336026,"id":827,"parentId":826,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6942,"timestamp":4078080336017,"id":826,"parentId":816,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8815,"timestamp":4078080335864,"id":816,"parentId":798,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/app/app-bundle-path-normalizer.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11343,"timestamp":4078080336016,"id":825,"parentId":824,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11370,"timestamp":4078080336004,"id":824,"parentId":815,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15329,"timestamp":4078080335837,"id":815,"parentId":451,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/path-browserify/index.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15607,"timestamp":4078080335720,"id":814,"parentId":813,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15630,"timestamp":4078080335702,"id":813,"parentId":812,"tags":{},"startTime":1711860128110,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18542,"timestamp":4078080335614,"id":812,"parentId":535,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/path-to-regexp/index.js","layer":"ssr"},"startTime":1711860128110,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18152,"timestamp":4078080336035,"id":829,"parentId":828,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18161,"timestamp":4078080336027,"id":828,"parentId":817,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18514,"timestamp":4078080335884,"id":817,"parentId":798,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/app/app-page-normalizer.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18369,"timestamp":4078080336043,"id":831,"parentId":830,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18378,"timestamp":4078080336035,"id":830,"parentId":818,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18681,"timestamp":4078080335902,"id":818,"parentId":798,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/app/app-pathname-normalizer.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18543,"timestamp":4078080336051,"id":833,"parentId":832,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18551,"timestamp":4078080336044,"id":832,"parentId":819,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18780,"timestamp":4078080335922,"id":819,"parentId":798,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/app/app-filename-normalizer.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18644,"timestamp":4078080336067,"id":837,"parentId":836,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18652,"timestamp":4078080336060,"id":836,"parentId":821,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18865,"timestamp":4078080335955,"id":821,"parentId":797,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-page-normalizer.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18771,"timestamp":4078080336060,"id":835,"parentId":834,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18779,"timestamp":4078080336052,"id":834,"parentId":820,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19065,"timestamp":4078080335939,"id":820,"parentId":797,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-bundle-path-normalizer.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":21642,"timestamp":4078080333748,"id":808,"parentId":807,"tags":{},"startTime":1711860128109,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21680,"timestamp":4078080333712,"id":807,"parentId":806,"tags":{},"startTime":1711860128109,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26436,"timestamp":4078080333482,"id":806,"parentId":421,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/lru-cache/index.js","layer":"ssr"},"startTime":1711860128108,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25632,"timestamp":4078080336075,"id":839,"parentId":838,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25644,"timestamp":4078080336068,"id":838,"parentId":822,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26027,"timestamp":4078080335971,"id":822,"parentId":797,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-filename-normalizer.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25932,"timestamp":4078080336083,"id":841,"parentId":840,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25940,"timestamp":4078080336075,"id":840,"parentId":823,"tags":{},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26165,"timestamp":4078080335987,"id":823,"parentId":797,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/built/pages/pages-pathname-normalizer.js","layer":"ssr"},"startTime":1711860128111,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx?__next_edge_ssr_entry__","duration":906902,"timestamp":4078079461173,"id":126,"parentId":125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fnot-found&page=%2Fnot-found&appPaths=&pagePath=private-next-app-dir%2Fnot-found.tsx&appDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx?__next_edge_ssr_entry__","layer":"rsc"},"startTime":1711860127236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2615,"timestamp":4078080366707,"id":845,"parentId":844,"tags":{},"startTime":1711860128141,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2689,"timestamp":4078080366636,"id":844,"parentId":842,"tags":{},"startTime":1711860128141,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3242,"timestamp":4078080366346,"id":842,"parentId":816,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/normalizers.js","layer":"ssr"},"startTime":1711860128141,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2226,"timestamp":4078080367766,"id":853,"parentId":852,"tags":{},"startTime":1711860128143,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2272,"timestamp":4078080367726,"id":852,"parentId":849,"tags":{},"startTime":1711860128143,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3088,"timestamp":4078080367579,"id":849,"parentId":817,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/absolute-filename-normalizer.js","layer":"ssr"},"startTime":1711860128142,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3034,"timestamp":4078080367723,"id":851,"parentId":850,"tags":{},"startTime":1711860128143,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3081,"timestamp":4078080367681,"id":850,"parentId":848,"tags":{},"startTime":1711860128142,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4644,"timestamp":4078080367493,"id":848,"parentId":639,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/cookie/index.js","layer":"ssr"},"startTime":1711860128142,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3872,"timestamp":4078080368796,"id":857,"parentId":856,"tags":{},"startTime":1711860128144,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3901,"timestamp":4078080368770,"id":856,"parentId":854,"tags":{},"startTime":1711860128144,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4608,"timestamp":4078080368207,"id":854,"parentId":818,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/wrap-normalizer-fn.js","layer":"ssr"},"startTime":1711860128143,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4019,"timestamp":4078080368808,"id":859,"parentId":858,"tags":{},"startTime":1711860128144,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4030,"timestamp":4078080368798,"id":858,"parentId":855,"tags":{},"startTime":1711860128144,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4673,"timestamp":4078080368265,"id":855,"parentId":818,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/underscore-normalizer.js","layer":"ssr"},"startTime":1711860128143,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13403,"timestamp":4078080366736,"id":847,"parentId":846,"tags":{},"startTime":1711860128142,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13432,"timestamp":4078080366711,"id":846,"parentId":843,"tags":{},"startTime":1711860128142,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13856,"timestamp":4078080366506,"id":843,"parentId":816,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/normalizers/prefixing-normalizer.js","layer":"ssr"},"startTime":1711860128141,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5919,"timestamp":4078080374470,"id":865,"parentId":864,"tags":{},"startTime":1711860128149,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5929,"timestamp":4078080374461,"id":864,"parentId":861,"tags":{},"startTime":1711860128149,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6156,"timestamp":4078080374412,"id":861,"parentId":849,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/page-path/absolute-path-to-page.js","layer":"ssr"},"startTime":1711860128149,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6128,"timestamp":4078080374459,"id":863,"parentId":862,"tags":{},"startTime":1711860128149,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6149,"timestamp":4078080374439,"id":862,"parentId":860,"tags":{},"startTime":1711860128149,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6763,"timestamp":4078080374367,"id":860,"parentId":763,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/querystring-es3/index.js","layer":"ssr"},"startTime":1711860128149,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1846,"timestamp":4078080379936,"id":880,"parentId":879,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1857,"timestamp":4078080379927,"id":879,"parentId":870,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2764,"timestamp":4078080379519,"id":870,"parentId":126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/entry-base.js","layer":"rsc"},"startTime":1711860128154,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2384,"timestamp":4078080379912,"id":876,"parentId":875,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2413,"timestamp":4078080379885,"id":875,"parentId":868,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4624,"timestamp":4078080377791,"id":868,"parentId":126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-kind.js","layer":"rsc"},"startTime":1711860128153,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2497,"timestamp":4078080379926,"id":878,"parentId":877,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2511,"timestamp":4078080379914,"id":877,"parentId":869,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3043,"timestamp":4078080379483,"id":869,"parentId":126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/parallel-route-default.js","layer":"rsc"},"startTime":1711860128154,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4796,"timestamp":4078080379951,"id":884,"parentId":883,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4805,"timestamp":4078080379944,"id":883,"parentId":872,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":5449,"timestamp":4078080379563,"id":872,"parentId":126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx","layer":"rsc"},"startTime":1711860128154,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5087,"timestamp":4078080379943,"id":882,"parentId":881,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5095,"timestamp":4078080379936,"id":881,"parentId":871,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5944,"timestamp":4078080379542,"id":871,"parentId":126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/error-boundary.js","layer":"rsc"},"startTime":1711860128154,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5621,"timestamp":4078080379966,"id":888,"parentId":887,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5630,"timestamp":4078080379959,"id":887,"parentId":874,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6018,"timestamp":4078080379865,"id":874,"parentId":126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-modules/app-page/module.compiled.js","layer":"ssr"},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7442,"timestamp":4078080379959,"id":886,"parentId":885,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7452,"timestamp":4078080379952,"id":885,"parentId":873,"tags":{},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":7806,"timestamp":4078080379846,"id":873,"parentId":126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout.tsx","layer":"rsc"},"startTime":1711860128155,"traceId":"a43e3bb0d33d2683"},{"name":"read-resource","duration":10358,"timestamp":4078080377466,"id":867,"parentId":866,"tags":{},"startTime":1711860128152,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-ico?__next_metadata__","duration":11927,"timestamp":4078080376952,"id":866,"parentId":126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=favicon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js!/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/favicon.ico?__next_metadata__","layer":"rsc"},"startTime":1711860128152,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1808,"timestamp":4078080392392,"id":898,"parentId":897,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1844,"timestamp":4078080392360,"id":897,"parentId":889,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2846,"timestamp":4078080391570,"id":889,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-async-storage.external.js","layer":"shared"},"startTime":1711860128166,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2034,"timestamp":4078080392403,"id":900,"parentId":899,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2045,"timestamp":4078080392394,"id":899,"parentId":890,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2806,"timestamp":4078080391877,"id":890,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/request-async-storage.external.js","layer":"shared"},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2281,"timestamp":4078080392412,"id":902,"parentId":901,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2290,"timestamp":4078080392404,"id":901,"parentId":891,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2885,"timestamp":4078080391899,"id":891,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/action-async-storage.external.js","layer":"shared"},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2363,"timestamp":4078080392430,"id":906,"parentId":905,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2372,"timestamp":4078080392423,"id":905,"parentId":893,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3102,"timestamp":4078080391938,"id":893,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/hooks-server-context.js","layer":"rsc"},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2749,"timestamp":4078080392422,"id":904,"parentId":903,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2759,"timestamp":4078080392413,"id":903,"parentId":892,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3618,"timestamp":4078080391916,"id":892,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-bailout.js","layer":"rsc"},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4926,"timestamp":4078080392456,"id":912,"parentId":911,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4937,"timestamp":4078080392448,"id":911,"parentId":896,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5620,"timestamp":4078080392002,"id":896,"parentId":869,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/not-found.js","layer":"rsc"},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5200,"timestamp":4078080392439,"id":908,"parentId":907,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5208,"timestamp":4078080392432,"id":907,"parentId":894,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5876,"timestamp":4078080391959,"id":894,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/not-found-boundary.js","layer":"rsc"},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3722,"timestamp":4078080394126,"id":918,"parentId":917,"tags":{},"startTime":1711860128169,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3733,"timestamp":4078080394116,"id":917,"parentId":914,"tags":{},"startTime":1711860128169,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3960,"timestamp":4078080394056,"id":914,"parentId":861,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/page-path/remove-page-path-tail.js","layer":"ssr"},"startTime":1711860128169,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4036,"timestamp":4078080394115,"id":916,"parentId":915,"tags":{},"startTime":1711860128169,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4066,"timestamp":4078080394086,"id":915,"parentId":913,"tags":{},"startTime":1711860128169,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4555,"timestamp":4078080393984,"id":913,"parentId":861,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js","layer":"ssr"},"startTime":1711860128169,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6450,"timestamp":4078080392447,"id":910,"parentId":909,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6458,"timestamp":4078080392440,"id":909,"parentId":895,"tags":{},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8919,"timestamp":4078080391983,"id":895,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/patch-fetch.js","layer":"rsc"},"startTime":1711860128167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1216,"timestamp":4078080401469,"id":929,"parentId":928,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1226,"timestamp":4078080401462,"id":928,"parentId":921,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1767,"timestamp":4078080401099,"id":921,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/render-from-template-context.js","layer":"rsc"},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1590,"timestamp":4078080401478,"id":931,"parentId":930,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1599,"timestamp":4078080401470,"id":930,"parentId":922,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2084,"timestamp":4078080401118,"id":922,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js","layer":"rsc"},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1906,"timestamp":4078080401461,"id":927,"parentId":926,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1916,"timestamp":4078080401452,"id":926,"parentId":920,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2504,"timestamp":4078080401076,"id":920,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/layout-router.js","layer":"rsc"},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2166,"timestamp":4078080401450,"id":925,"parentId":924,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2192,"timestamp":4078080401425,"id":924,"parentId":919,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2858,"timestamp":4078080401026,"id":919,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router.js","layer":"rsc"},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2682,"timestamp":4078080401486,"id":933,"parentId":932,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2690,"timestamp":4078080401478,"id":932,"parentId":923,"tags":{},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":3314,"timestamp":4078080401137,"id":923,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js","layer":"rsc"},"startTime":1711860128176,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1632,"timestamp":4078080403010,"id":937,"parentId":936,"tags":{},"startTime":1711860128178,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1650,"timestamp":4078080402994,"id":936,"parentId":934,"tags":{},"startTime":1711860128178,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1913,"timestamp":4078080402900,"id":934,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/rsc/preloads.js","layer":"rsc"},"startTime":1711860128178,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1803,"timestamp":4078080403020,"id":939,"parentId":938,"tags":{},"startTime":1711860128178,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1812,"timestamp":4078080403012,"id":938,"parentId":935,"tags":{},"startTime":1711860128178,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2062,"timestamp":4078080402931,"id":935,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/app-render/rsc/taint.js","layer":"rsc"},"startTime":1711860128178,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2165,"timestamp":4078080404077,"id":947,"parentId":946,"tags":{},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2180,"timestamp":4078080404069,"id":946,"parentId":941,"tags":{},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2923,"timestamp":4078080403944,"id":941,"parentId":895,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/build/output/log.js","layer":"rsc"},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3355,"timestamp":4078080404085,"id":949,"parentId":948,"tags":{},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3365,"timestamp":4078080404077,"id":948,"parentId":942,"tags":{},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4116,"timestamp":4078080403965,"id":942,"parentId":895,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/trace/constants.js","layer":"rsc"},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4052,"timestamp":4078080404068,"id":945,"parentId":944,"tags":{},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4068,"timestamp":4078080404053,"id":944,"parentId":940,"tags":{},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4896,"timestamp":4078080403918,"id":940,"parentId":895,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/constants.js","layer":"rsc"},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5221,"timestamp":4078080404092,"id":951,"parentId":950,"tags":{},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5230,"timestamp":4078080404085,"id":950,"parentId":943,"tags":{},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6228,"timestamp":4078080403981,"id":943,"parentId":895,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/lib/trace/tracer.js","layer":"rsc"},"startTime":1711860128179,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2799,"timestamp":4078080409049,"id":956,"parentId":955,"tags":{},"startTime":1711860128184,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2830,"timestamp":4078080409021,"id":955,"parentId":954,"tags":{},"startTime":1711860128184,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3080,"timestamp":4078080408897,"id":954,"parentId":934,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-dom/server-rendering-stub.js","layer":"rsc"},"startTime":1711860128184,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2591,"timestamp":4078080411007,"id":960,"parentId":959,"tags":{},"startTime":1711860128186,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2619,"timestamp":4078080410983,"id":959,"parentId":957,"tags":{},"startTime":1711860128186,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3342,"timestamp":4078080410482,"id":957,"parentId":913,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hash.js","layer":"ssr"},"startTime":1711860128185,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2859,"timestamp":4078080411019,"id":962,"parentId":961,"tags":{},"startTime":1711860128186,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2870,"timestamp":4078080411009,"id":961,"parentId":958,"tags":{},"startTime":1711860128186,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3897,"timestamp":4078080410529,"id":958,"parentId":913,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js","layer":"ssr"},"startTime":1711860128185,"traceId":"a43e3bb0d33d2683"},{"name":"read-resource","duration":9115,"timestamp":4078080406136,"id":953,"parentId":952,"tags":{},"startTime":1711860128181,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css","duration":10019,"timestamp":4078080405586,"id":952,"parentId":873,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css","layer":"rsc"},"startTime":1711860128180,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2233,"timestamp":4078080413421,"id":965,"parentId":964,"tags":{},"startTime":1711860128188,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2256,"timestamp":4078080413400,"id":964,"parentId":963,"tags":{},"startTime":1711860128188,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2822,"timestamp":4078080413317,"id":963,"parentId":941,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/picocolors.js","layer":"rsc"},"startTime":1711860128188,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":894,"timestamp":4078080416330,"id":977,"parentId":976,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":911,"timestamp":4078080416321,"id":976,"parentId":970,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1567,"timestamp":4078080416232,"id":970,"parentId":866,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/get-metadata-route.js","layer":"rsc"},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2446,"timestamp":4078080416341,"id":979,"parentId":978,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2458,"timestamp":4078080416331,"id":978,"parentId":971,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2941,"timestamp":4078080416252,"id":971,"parentId":874,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-modules/app-page/module.js","layer":"ssr"},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2856,"timestamp":4078080416349,"id":981,"parentId":980,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2865,"timestamp":4078080416341,"id":980,"parentId":972,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3035,"timestamp":4078080416270,"id":972,"parentId":870,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-server-dom-webpack/server.edge.js","layer":"rsc"},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3217,"timestamp":4078080416356,"id":983,"parentId":982,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3225,"timestamp":4078080416349,"id":982,"parentId":973,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3375,"timestamp":4078080416287,"id":973,"parentId":872,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/jsx-dev-runtime.js","layer":"rsc"},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3388,"timestamp":4078080416320,"id":975,"parentId":974,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3405,"timestamp":4078080416305,"id":974,"parentId":969,"tags":{},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4657,"timestamp":4078080416200,"id":969,"parentId":954,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.development.js","layer":"rsc"},"startTime":1711860128191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1157,"timestamp":4078080422104,"id":997,"parentId":996,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1170,"timestamp":4078080422096,"id":996,"parentId":986,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1559,"timestamp":4078080421947,"id":986,"parentId":970,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hash.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1451,"timestamp":4078080422095,"id":995,"parentId":994,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1462,"timestamp":4078080422086,"id":994,"parentId":985,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2107,"timestamp":4078080421923,"id":985,"parentId":970,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/lib/metadata/is-metadata-route.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1953,"timestamp":4078080422112,"id":999,"parentId":998,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1964,"timestamp":4078080422105,"id":998,"parentId":987,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2314,"timestamp":4078080421966,"id":987,"parentId":970,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/isomorphic/path.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10521,"timestamp":4078080415193,"id":968,"parentId":967,"tags":{},"startTime":1711860128190,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10552,"timestamp":4078080415175,"id":967,"parentId":966,"tags":{},"startTime":1711860128190,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14590,"timestamp":4078080414977,"id":966,"parentId":943,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@opentelemetry/api/index.js","layer":"rsc"},"startTime":1711860128190,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7468,"timestamp":4078080422120,"id":1001,"parentId":1000,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7476,"timestamp":4078080422112,"id":1000,"parentId":988,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7735,"timestamp":4078080421983,"id":988,"parentId":970,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/page-path/normalize-path-sep.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7599,"timestamp":4078080422136,"id":1005,"parentId":1004,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7607,"timestamp":4078080422129,"id":1004,"parentId":990,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7910,"timestamp":4078080422017,"id":990,"parentId":970,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7974,"timestamp":4078080422143,"id":1007,"parentId":1006,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7983,"timestamp":4078080422136,"id":1006,"parentId":991,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8224,"timestamp":4078080422033,"id":991,"parentId":871,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/build/webpack/loaders/next-flight-loader/module-proxy.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7731,"timestamp":4078080422536,"id":1010,"parentId":1009,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7745,"timestamp":4078080422524,"id":1009,"parentId":1008,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7864,"timestamp":4078080422486,"id":1008,"parentId":969,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/index.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8253,"timestamp":4078080422128,"id":1003,"parentId":1002,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8262,"timestamp":4078080422121,"id":1002,"parentId":989,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8983,"timestamp":4078080422000,"id":989,"parentId":970,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/route-regex.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8947,"timestamp":4078080422085,"id":993,"parentId":992,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8971,"timestamp":4078080422061,"id":992,"parentId":984,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10080,"timestamp":4078080421871,"id":984,"parentId":970,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/server-utils.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12461,"timestamp":4078080422635,"id":1014,"parentId":1013,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12473,"timestamp":4078080422625,"id":1013,"parentId":1011,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14819,"timestamp":4078080422586,"id":1011,"parentId":973,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":911,"timestamp":4078080437947,"id":1022,"parentId":1021,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":924,"timestamp":4078080437935,"id":1021,"parentId":1018,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1179,"timestamp":4078080437804,"id":1018,"parentId":971,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-modules/route-module.js","layer":"ssr"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17137,"timestamp":4078080422644,"id":1016,"parentId":1015,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17149,"timestamp":4078080422636,"id":1015,"parentId":1012,"tags":{},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":23704,"timestamp":4078080422607,"id":1012,"parentId":972,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js","layer":"rsc"},"startTime":1711860128197,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9698,"timestamp":4078080438589,"id":1040,"parentId":1039,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9709,"timestamp":4078080438582,"id":1039,"parentId":1025,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10079,"timestamp":4078080438393,"id":1025,"parentId":990,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/segment.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9906,"timestamp":4078080438581,"id":1038,"parentId":1037,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9915,"timestamp":4078080438573,"id":1037,"parentId":1024,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10260,"timestamp":4078080438372,"id":1024,"parentId":984,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10045,"timestamp":4078080438597,"id":1042,"parentId":1041,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10053,"timestamp":4078080438590,"id":1041,"parentId":1026,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10350,"timestamp":4078080438410,"id":1026,"parentId":989,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/escape-regexp.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10169,"timestamp":4078080438604,"id":1044,"parentId":1043,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10177,"timestamp":4078080438597,"id":1043,"parentId":1027,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10589,"timestamp":4078080438427,"id":1027,"parentId":984,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/path-match.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10419,"timestamp":4078080438611,"id":1046,"parentId":1045,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10427,"timestamp":4078080438605,"id":1045,"parentId":1028,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":10865,"timestamp":4078080438445,"id":1028,"parentId":984,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10694,"timestamp":4078080438626,"id":1050,"parentId":1049,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10702,"timestamp":4078080438619,"id":1049,"parentId":1030,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10965,"timestamp":4078080438476,"id":1030,"parentId":984,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10820,"timestamp":4078080438633,"id":1052,"parentId":1051,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10828,"timestamp":4078080438626,"id":1051,"parentId":1031,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11045,"timestamp":4078080438494,"id":1031,"parentId":990,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10957,"timestamp":4078080438618,"id":1048,"parentId":1047,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10965,"timestamp":4078080438612,"id":1047,"parentId":1029,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11919,"timestamp":4078080438461,"id":1029,"parentId":984,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12475,"timestamp":4078080437934,"id":1020,"parentId":1019,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12500,"timestamp":4078080437909,"id":1019,"parentId":1017,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13588,"timestamp":4078080437755,"id":1017,"parentId":987,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/path-browserify/index.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12721,"timestamp":4078080438640,"id":1054,"parentId":1053,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12728,"timestamp":4078080438633,"id":1053,"parentId":1032,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13138,"timestamp":4078080438509,"id":1032,"parentId":989,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/helpers/interception-routes.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13179,"timestamp":4078080438655,"id":1058,"parentId":1057,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13187,"timestamp":4078080438648,"id":1057,"parentId":1034,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13375,"timestamp":4078080438541,"id":1034,"parentId":935,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/react.shared-subset.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13294,"timestamp":4078080438647,"id":1056,"parentId":1055,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13302,"timestamp":4078080438641,"id":1055,"parentId":1033,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14359,"timestamp":4078080438524,"id":1033,"parentId":984,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/native-url/index.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16509,"timestamp":4078080438572,"id":1036,"parentId":1035,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16525,"timestamp":4078080438558,"id":1035,"parentId":1023,"tags":{},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21880,"timestamp":4078080438342,"id":1023,"parentId":1008,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react.development.js","layer":"rsc"},"startTime":1711860128213,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1049,"timestamp":4078080460516,"id":1061,"parentId":1060,"tags":{},"startTime":1711860128235,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1126,"timestamp":4078080460488,"id":1060,"parentId":1059,"tags":{},"startTime":1711860128235,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1588,"timestamp":4078080460365,"id":1059,"parentId":971,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","layer":"ssr"},"startTime":1711860128235,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1125,"timestamp":4078080460846,"id":1073,"parentId":1072,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1133,"timestamp":4078080460838,"id":1072,"parentId":1064,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1416,"timestamp":4078080460720,"id":1064,"parentId":1029,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js","layer":"rsc"},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1310,"timestamp":4078080460838,"id":1071,"parentId":1070,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1319,"timestamp":4078080460829,"id":1070,"parentId":1063,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1588,"timestamp":4078080460700,"id":1063,"parentId":1029,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router-headers.js","layer":"rsc"},"startTime":1711860128235,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3432,"timestamp":4078080460854,"id":1075,"parentId":1074,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3442,"timestamp":4078080460847,"id":1074,"parentId":1065,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3743,"timestamp":4078080460741,"id":1065,"parentId":1029,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/parse-url.js","layer":"rsc"},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3736,"timestamp":4078080460828,"id":1069,"parentId":1068,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3753,"timestamp":4078080460813,"id":1068,"parentId":1062,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4409,"timestamp":4078080460660,"id":1062,"parentId":1028,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/utils.js","layer":"rsc"},"startTime":1711860128235,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4225,"timestamp":4078080460861,"id":1077,"parentId":1076,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4233,"timestamp":4078080460854,"id":1076,"parentId":1066,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4726,"timestamp":4078080460768,"id":1066,"parentId":1033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/querystring-es3/index.js","layer":"rsc"},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5078,"timestamp":4078080460869,"id":1079,"parentId":1078,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5086,"timestamp":4078080460862,"id":1078,"parentId":1067,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6171,"timestamp":4078080460787,"id":1067,"parentId":1027,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/path-to-regexp/index.js","layer":"rsc"},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20536,"timestamp":4078080461104,"id":1082,"parentId":1081,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20560,"timestamp":4078080461085,"id":1081,"parentId":1080,"tags":{},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24679,"timestamp":4078080461048,"id":1080,"parentId":1034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react.shared-subset.development.js","layer":"rsc"},"startTime":1711860128236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5104,"timestamp":4078080480952,"id":1087,"parentId":1086,"tags":{},"startTime":1711860128256,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5135,"timestamp":4078080480923,"id":1086,"parentId":1083,"tags":{},"startTime":1711860128256,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19481,"timestamp":4078080467043,"id":1083,"parentId":1064,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/cookie/index.js","layer":"rsc"},"startTime":1711860128242,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":892,"timestamp":4078080485968,"id":1091,"parentId":1090,"tags":{},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":920,"timestamp":4078080485942,"id":1090,"parentId":1088,"tags":{},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1290,"timestamp":4078080485814,"id":1088,"parentId":1065,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/querystring.js","layer":"rsc"},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1146,"timestamp":4078080485980,"id":1093,"parentId":1092,"tags":{},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1157,"timestamp":4078080485970,"id":1092,"parentId":1089,"tags":{},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1420,"timestamp":4078080485873,"id":1089,"parentId":1065,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js","layer":"rsc"},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":781,"timestamp":4078080486707,"id":1101,"parentId":1100,"tags":{},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":799,"timestamp":4078080486691,"id":1100,"parentId":1094,"tags":{},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1020,"timestamp":4078080486568,"id":1094,"parentId":1059,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/amp-context.shared-runtime.js","layer":"ssr"},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1128,"timestamp":4078080486717,"id":1103,"parentId":1102,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1156,"timestamp":4078080486708,"id":1102,"parentId":1095,"tags":{},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1835,"timestamp":4078080486598,"id":1095,"parentId":1059,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/loadable-context.shared-runtime.js","layer":"ssr"},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2065,"timestamp":4078080486725,"id":1105,"parentId":1104,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2077,"timestamp":4078080486717,"id":1104,"parentId":1096,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2511,"timestamp":4078080486620,"id":1096,"parentId":1059,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/image-config-context.shared-runtime.js","layer":"ssr"},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"read-resource","duration":8300,"timestamp":4078080480867,"id":1085,"parentId":1084,"tags":{},"startTime":1711860128256,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":28666,"timestamp":4078080486740,"id":1109,"parentId":1108,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":28679,"timestamp":4078080486733,"id":1108,"parentId":1098,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":29099,"timestamp":4078080486655,"id":1098,"parentId":1059,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/html-context.shared-runtime.js","layer":"ssr"},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":29024,"timestamp":4078080486747,"id":1111,"parentId":1110,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":29032,"timestamp":4078080486741,"id":1110,"parentId":1099,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":29218,"timestamp":4078080486672,"id":1099,"parentId":1059,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router-context.shared-runtime.js","layer":"ssr"},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":29584,"timestamp":4078080486733,"id":1107,"parentId":1106,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":29593,"timestamp":4078080486725,"id":1106,"parentId":1097,"tags":{},"startTime":1711860128262,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30420,"timestamp":4078080486638,"id":1097,"parentId":1059,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/loadable.shared-runtime.js","layer":"ssr"},"startTime":1711860128261,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":788,"timestamp":4078080517620,"id":1116,"parentId":1115,"tags":{},"startTime":1711860128292,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":817,"timestamp":4078080517594,"id":1115,"parentId":1114,"tags":{},"startTime":1711860128292,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1042,"timestamp":4078080517544,"id":1114,"parentId":1096,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/image-config.js","layer":"ssr"},"startTime":1711860128292,"traceId":"a43e3bb0d33d2683"},{"name":"font-loader","duration":1390105,"timestamp":4078080512186,"id":1113,"parentId":1112,"tags":{},"startTime":1711860128287,"traceId":"a43e3bb0d33d2683"},{"name":"postcss","duration":2780,"timestamp":4078082050183,"id":1117,"parentId":1112,"tags":{},"startTime":1711860129825,"traceId":"a43e3bb0d33d2683"},{"name":"next-font-loader","duration":1563838,"timestamp":4078080489406,"id":1112,"parentId":1084,"tags":{},"startTime":1711860128264,"traceId":"a43e3bb0d33d2683"},{"name":"css-loader","duration":17498,"timestamp":4078082053064,"id":1118,"parentId":1084,"tags":{"astUsed":"true"},"startTime":1711860129828,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","duration":1603760,"timestamp":4078080467083,"id":1084,"parentId":873,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","layer":"rsc"},"startTime":1711860128242,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":2646995,"timestamp":4078079423989,"id":124,"parentId":123,"tags":{"request":"next-edge-ssr-loader?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/not-found\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGbm90LWZvdW5kJnBhZ2U9JTJGbm90LWZvdW5kJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRm5vdC1mb3VuZC50c3gmYXBwRGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWIlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWImaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0Qh\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!"},"startTime":1711860127199,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js?server=true!","duration":419,"timestamp":4078082075238,"id":1123,"parentId":122,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true!","layer":"ssr"},"startTime":1711860129850,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&server=true!","duration":93,"timestamp":4078082075668,"id":1124,"parentId":122,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&server=true!","layer":"ssr"},"startTime":1711860129850,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js&server=true!","duration":3046,"timestamp":4078082075768,"id":1125,"parentId":122,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=true!","layer":"ssr"},"startTime":1711860129851,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":626,"timestamp":4078082082121,"id":1138,"parentId":1137,"tags":{},"startTime":1711860129857,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":649,"timestamp":4078082082107,"id":1137,"parentId":1135,"tags":{},"startTime":1711860129857,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1064,"timestamp":4078082082062,"id":1135,"parentId":1125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/render-from-template-context.js","layer":"ssr"},"startTime":1711860129857,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1826,"timestamp":4078082081604,"id":1130,"parentId":1129,"tags":{},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1856,"timestamp":4078082081576,"id":1129,"parentId":1126,"tags":{},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2559,"timestamp":4078082081481,"id":1126,"parentId":1125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/error-boundary.js","layer":"ssr"},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1926,"timestamp":4078082082130,"id":1140,"parentId":1139,"tags":{},"startTime":1711860129857,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1936,"timestamp":4078082082121,"id":1139,"parentId":1136,"tags":{},"startTime":1711860129857,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2107,"timestamp":4078082082088,"id":1136,"parentId":1125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/static-generation-searchparams-bailout-provider.js","layer":"ssr"},"startTime":1711860129857,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3194,"timestamp":4078082081625,"id":1134,"parentId":1133,"tags":{},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3204,"timestamp":4078082081617,"id":1133,"parentId":1128,"tags":{},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4515,"timestamp":4078082081546,"id":1128,"parentId":1125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/layout-router.js","layer":"ssr"},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":4667,"timestamp":4078082081616,"id":1132,"parentId":1131,"tags":{},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4678,"timestamp":4078082081606,"id":1131,"parentId":1127,"tags":{},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7773,"timestamp":4078082081523,"id":1127,"parentId":1125,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router.js","layer":"ssr"},"startTime":1711860129856,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1109,"timestamp":4078082091946,"id":1143,"parentId":1142,"tags":{},"startTime":1711860129867,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1139,"timestamp":4078082091919,"id":1142,"parentId":1141,"tags":{},"startTime":1711860129867,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1384,"timestamp":4078082091843,"id":1141,"parentId":1136,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/searchparams-bailout-proxy.js","layer":"ssr"},"startTime":1711860129867,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1021,"timestamp":4078082093008,"id":1146,"parentId":1145,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1039,"timestamp":4078082092991,"id":1145,"parentId":1144,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1363,"timestamp":4078082092883,"id":1144,"parentId":1126,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/is-next-router-error.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1298,"timestamp":4078082093546,"id":1166,"parentId":1165,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1311,"timestamp":4078082093538,"id":1165,"parentId":1149,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1927,"timestamp":4078082093296,"id":1149,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/remove-base-path.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1700,"timestamp":4078082093537,"id":1164,"parentId":1163,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1711,"timestamp":4078082093528,"id":1163,"parentId":1148,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2088,"timestamp":4078082093275,"id":1148,"parentId":1128,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/infinite-promise.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1847,"timestamp":4078082093527,"id":1162,"parentId":1161,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1862,"timestamp":4078082093513,"id":1161,"parentId":1147,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2263,"timestamp":4078082093247,"id":1147,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/has-base-path.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1977,"timestamp":4078082093554,"id":1168,"parentId":1167,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1985,"timestamp":4078082093546,"id":1167,"parentId":1150,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2580,"timestamp":4078082093313,"id":1150,"parentId":1128,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/redirect-boundary.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2986,"timestamp":4078082093561,"id":1170,"parentId":1169,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2995,"timestamp":4078082093554,"id":1169,"parentId":1151,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3433,"timestamp":4078082093329,"id":1151,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/add-base-path.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3221,"timestamp":4078082093568,"id":1172,"parentId":1171,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3229,"timestamp":4078082093561,"id":1171,"parentId":1152,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3857,"timestamp":4078082093345,"id":1152,"parentId":1128,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3646,"timestamp":4078082093576,"id":1174,"parentId":1173,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3654,"timestamp":4078082093569,"id":1173,"parentId":1153,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4134,"timestamp":4078082093360,"id":1153,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/app-router-announcer.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3914,"timestamp":4078082093591,"id":1178,"parentId":1177,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3922,"timestamp":4078082093584,"id":1177,"parentId":1155,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4228,"timestamp":4078082093391,"id":1155,"parentId":1128,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4057,"timestamp":4078082093583,"id":1176,"parentId":1175,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4065,"timestamp":4078082093577,"id":1175,"parentId":1154,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4639,"timestamp":4078082093376,"id":1154,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/use-reducer-with-devtools.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4420,"timestamp":4078082093606,"id":1182,"parentId":1181,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4427,"timestamp":4078082093599,"id":1181,"parentId":1157,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4703,"timestamp":4078082093424,"id":1157,"parentId":1128,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/utils/handle-smooth-scroll.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4539,"timestamp":4078082093598,"id":1180,"parentId":1179,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4546,"timestamp":4078082093592,"id":1179,"parentId":1156,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4872,"timestamp":4078082093409,"id":1156,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4671,"timestamp":4078082093620,"id":1186,"parentId":1185,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4678,"timestamp":4078082093613,"id":1185,"parentId":1159,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4962,"timestamp":4078082093455,"id":1159,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/find-head-in-cache.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6462,"timestamp":4078082093613,"id":1184,"parentId":1183,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6472,"timestamp":4078082093606,"id":1183,"parentId":1158,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6816,"timestamp":4078082093441,"id":1158,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6654,"timestamp":4078082093627,"id":1188,"parentId":1187,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6662,"timestamp":4078082093621,"id":1187,"parentId":1160,"tags":{},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7070,"timestamp":4078082093471,"id":1160,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/create-initial-router-state.js","layer":"ssr"},"startTime":1711860129868,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4335,"timestamp":4078082096258,"id":1191,"parentId":1190,"tags":{},"startTime":1711860129871,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4357,"timestamp":4078082096236,"id":1190,"parentId":1189,"tags":{},"startTime":1711860129871,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5938,"timestamp":4078082095946,"id":1189,"parentId":1127,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/hot-reloader-client.js","layer":"ssr"},"startTime":1711860129871,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1132,"timestamp":4078082105974,"id":1196,"parentId":1195,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1160,"timestamp":4078082105948,"id":1195,"parentId":1192,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1469,"timestamp":4078082105827,"id":1192,"parentId":1152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/app-call-server.js","layer":"ssr"},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1572,"timestamp":4078082105995,"id":1200,"parentId":1199,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1581,"timestamp":4078082105986,"id":1199,"parentId":1194,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2052,"timestamp":4078082105906,"id":1194,"parentId":1154,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/router/action-queue.js","layer":"ssr"},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1986,"timestamp":4078082105986,"id":1198,"parentId":1197,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1997,"timestamp":4078082105976,"id":1197,"parentId":1193,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2318,"timestamp":4078082105882,"id":1193,"parentId":1151,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/normalize-trailing-slash.js","layer":"ssr"},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2878,"timestamp":4078082106204,"id":1205,"parentId":1204,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2892,"timestamp":4078082106193,"id":1204,"parentId":1201,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3293,"timestamp":4078082106131,"id":1201,"parentId":1160,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js","layer":"ssr"},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3217,"timestamp":4078082106220,"id":1209,"parentId":1208,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3225,"timestamp":4078082106213,"id":1208,"parentId":1203,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3378,"timestamp":4078082106175,"id":1203,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/dev/hot-reloader-types.js","layer":"ssr"},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3358,"timestamp":4078082106213,"id":1207,"parentId":1206,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3367,"timestamp":4078082106205,"id":1206,"parentId":1202,"tags":{},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3730,"timestamp":4078082106156,"id":1202,"parentId":1160,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/compute-changed-path.js","layer":"ssr"},"startTime":1711860129881,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2955,"timestamp":4078082106950,"id":1217,"parentId":1216,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2979,"timestamp":4078082106926,"id":1216,"parentId":1210,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3379,"timestamp":4078082106768,"id":1210,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/error-overlay-reducer.js","layer":"ssr"},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3189,"timestamp":4078082106970,"id":1221,"parentId":1220,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3198,"timestamp":4078082106962,"id":1220,"parentId":1212,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3528,"timestamp":4078082106845,"id":1212,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parseStack.js","layer":"ssr"},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4010,"timestamp":4078082106961,"id":1219,"parentId":1218,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4022,"timestamp":4078082106951,"id":1218,"parentId":1211,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4472,"timestamp":4078082106822,"id":1211,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/ReactDevOverlay.js","layer":"ssr"},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4442,"timestamp":4078082106978,"id":1223,"parentId":1222,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4451,"timestamp":4078082106970,"id":1222,"parentId":1213,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4833,"timestamp":4078082106864,"id":1213,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-error-handler.js","layer":"ssr"},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4730,"timestamp":4078082106986,"id":1225,"parentId":1224,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4738,"timestamp":4078082106978,"id":1224,"parentId":1214,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5228,"timestamp":4078082106888,"id":1214,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-websocket.js","layer":"ssr"},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5139,"timestamp":4078082106994,"id":1227,"parentId":1226,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5148,"timestamp":4078082106986,"id":1226,"parentId":1215,"tags":{},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5520,"timestamp":4078082106907,"id":1215,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js","layer":"ssr"},"startTime":1711860129882,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2214,"timestamp":4078082114717,"id":1230,"parentId":1229,"tags":{},"startTime":1711860129889,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2241,"timestamp":4078082114696,"id":1229,"parentId":1228,"tags":{},"startTime":1711860129889,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3299,"timestamp":4078082114655,"id":1228,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/dev/error-overlay/format-webpack-messages.js","layer":"ssr"},"startTime":1711860129889,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3707,"timestamp":4078082115062,"id":1233,"parentId":1232,"tags":{},"startTime":1711860129890,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3725,"timestamp":4078082115048,"id":1232,"parentId":1231,"tags":{},"startTime":1711860129890,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4049,"timestamp":4078082115019,"id":1231,"parentId":1194,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/router-reducer.js","layer":"ssr"},"startTime":1711860129890,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2767,"timestamp":4078082116318,"id":1237,"parentId":1236,"tags":{},"startTime":1711860129891,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2789,"timestamp":4078082116297,"id":1236,"parentId":1234,"tags":{},"startTime":1711860129891,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3032,"timestamp":4078082116230,"id":1234,"parentId":1213,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js","layer":"ssr"},"startTime":1711860129891,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2946,"timestamp":4078082116328,"id":1239,"parentId":1238,"tags":{},"startTime":1711860129891,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2956,"timestamp":4078082116319,"id":1238,"parentId":1235,"tags":{},"startTime":1711860129891,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":3306,"timestamp":4078082116274,"id":1235,"parentId":1214,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/get-socket-url.js","layer":"ssr"},"startTime":1711860129891,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2147,"timestamp":4078082118229,"id":1252,"parentId":1251,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2157,"timestamp":4078082118221,"id":1251,"parentId":1242,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2690,"timestamp":4078082118076,"id":1242,"parentId":1211,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RootLayoutError.js","layer":"ssr"},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3534,"timestamp":4078082118210,"id":1248,"parentId":1247,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3554,"timestamp":4078082118192,"id":1247,"parentId":1240,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3923,"timestamp":4078082118024,"id":1240,"parentId":1211,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/ShadowPortal.js","layer":"ssr"},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3745,"timestamp":4078082118221,"id":1250,"parentId":1249,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3755,"timestamp":4078082118212,"id":1249,"parentId":1241,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4158,"timestamp":4078082118056,"id":1241,"parentId":1211,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/BuildError.js","layer":"ssr"},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3984,"timestamp":4078082118246,"id":1256,"parentId":1255,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3992,"timestamp":4078082118238,"id":1255,"parentId":1244,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4472,"timestamp":4078082118112,"id":1244,"parentId":1211,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/ComponentStyles.js","layer":"ssr"},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4627,"timestamp":4078082118238,"id":1254,"parentId":1253,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4637,"timestamp":4078082118230,"id":1253,"parentId":1243,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7096,"timestamp":4078082118094,"id":1243,"parentId":1211,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/Errors.js","layer":"ssr"},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9953,"timestamp":4078082118261,"id":1260,"parentId":1259,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9963,"timestamp":4078082118254,"id":1259,"parentId":1246,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10359,"timestamp":4078082118145,"id":1246,"parentId":1211,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/CssReset.js","layer":"ssr"},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10430,"timestamp":4078082118253,"id":1258,"parentId":1257,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10439,"timestamp":4078082118246,"id":1257,"parentId":1245,"tags":{},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10709,"timestamp":4078082118128,"id":1245,"parentId":1211,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/styles/Base.js","layer":"ssr"},"startTime":1711860129893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1609,"timestamp":4078082131514,"id":1272,"parentId":1271,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1635,"timestamp":4078082131504,"id":1271,"parentId":1262,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3056,"timestamp":4078082131102,"id":1262,"parentId":1231,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/server-patch-reducer.js","layer":"ssr"},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3342,"timestamp":4078082131523,"id":1274,"parentId":1273,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3353,"timestamp":4078082131515,"id":1273,"parentId":1263,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4013,"timestamp":4078082131127,"id":1263,"parentId":1231,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/restore-reducer.js","layer":"ssr"},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3627,"timestamp":4078082131531,"id":1276,"parentId":1275,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3636,"timestamp":4078082131523,"id":1275,"parentId":1264,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4281,"timestamp":4078082131147,"id":1264,"parentId":1231,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/prefetch-reducer.js","layer":"ssr"},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3971,"timestamp":4078082131502,"id":1270,"parentId":1269,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4000,"timestamp":4078082131475,"id":1269,"parentId":1261,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5763,"timestamp":4078082131047,"id":1261,"parentId":1231,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/navigate-reducer.js","layer":"ssr"},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5303,"timestamp":4078082131540,"id":1278,"parentId":1277,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5312,"timestamp":4078082131532,"id":1277,"parentId":1265,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6006,"timestamp":4078082131165,"id":1265,"parentId":1231,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/refresh-reducer.js","layer":"ssr"},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6374,"timestamp":4078082131555,"id":1282,"parentId":1281,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6383,"timestamp":4078082131548,"id":1281,"parentId":1267,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7387,"timestamp":4078082131199,"id":1267,"parentId":1231,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/server-action-reducer.js","layer":"ssr"},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7036,"timestamp":4078082131563,"id":1284,"parentId":1283,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7044,"timestamp":4078082131556,"id":1283,"parentId":1268,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7507,"timestamp":4078082131217,"id":1268,"parentId":1242,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/noop-template.js","layer":"ssr"},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9211,"timestamp":4078082132225,"id":1290,"parentId":1289,"tags":{},"startTime":1711860129907,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9222,"timestamp":4078082132217,"id":1289,"parentId":1286,"tags":{},"startTime":1711860129907,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9484,"timestamp":4078082132172,"id":1286,"parentId":1243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/getErrorByType.js","layer":"ssr"},"startTime":1711860129907,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9460,"timestamp":4078082132216,"id":1288,"parentId":1287,"tags":{},"startTime":1711860129907,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9474,"timestamp":4078082132203,"id":1287,"parentId":1285,"tags":{},"startTime":1711860129907,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10064,"timestamp":4078082131918,"id":1285,"parentId":1243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js","layer":"ssr"},"startTime":1711860129907,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10452,"timestamp":4078082131548,"id":1280,"parentId":1279,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10460,"timestamp":4078082131540,"id":1279,"parentId":1266,"tags":{},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11207,"timestamp":4078082131183,"id":1266,"parentId":1231,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/fast-refresh-reducer.js","layer":"ssr"},"startTime":1711860129906,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1579,"timestamp":4078082144636,"id":1302,"parentId":1301,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1591,"timestamp":4078082144627,"id":1301,"parentId":1293,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2240,"timestamp":4078082144191,"id":1293,"parentId":1243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/icons/CloseIcon.js","layer":"ssr"},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1818,"timestamp":4078082144627,"id":1300,"parentId":1299,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1829,"timestamp":4078082144617,"id":1299,"parentId":1292,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2410,"timestamp":4078082144167,"id":1292,"parentId":1244,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/styles.js","layer":"ssr"},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1944,"timestamp":4078082144644,"id":1304,"parentId":1303,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1952,"timestamp":4078082144636,"id":1303,"parentId":1294,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2488,"timestamp":4078082144212,"id":1294,"parentId":1244,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js","layer":"ssr"},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2294,"timestamp":4078082144615,"id":1298,"parentId":1297,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2319,"timestamp":4078082144591,"id":1297,"parentId":1291,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2867,"timestamp":4078082144114,"id":1291,"parentId":1214,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/dev/noop-turbopack-hmr.js","layer":"ssr"},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4398,"timestamp":4078082144652,"id":1306,"parentId":1305,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4408,"timestamp":4078082144645,"id":1305,"parentId":1295,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4960,"timestamp":4078082144244,"id":1295,"parentId":1244,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js","layer":"ssr"},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4554,"timestamp":4078082144661,"id":1308,"parentId":1307,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4563,"timestamp":4078082144653,"id":1307,"parentId":1296,"tags":{},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5064,"timestamp":4078082144263,"id":1296,"parentId":1244,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/styles.js","layer":"ssr"},"startTime":1711860129919,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2903,"timestamp":4078082147991,"id":1319,"parentId":1318,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2915,"timestamp":4078082147983,"id":1318,"parentId":1311,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3402,"timestamp":4078082147750,"id":1311,"parentId":1262,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/is-navigating-to-new-root-layout.js","layer":"ssr"},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3196,"timestamp":4078082147983,"id":1317,"parentId":1316,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3206,"timestamp":4078082147974,"id":1316,"parentId":1310,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3707,"timestamp":4078082147730,"id":1310,"parentId":1262,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/apply-flight-data.js","layer":"ssr"},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3551,"timestamp":4078082147999,"id":1321,"parentId":1320,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3560,"timestamp":4078082147991,"id":1320,"parentId":1312,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4047,"timestamp":4078082147767,"id":1312,"parentId":1262,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/handle-mutable.js","layer":"ssr"},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4258,"timestamp":4078082148007,"id":1323,"parentId":1322,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4267,"timestamp":4078082147999,"id":1322,"parentId":1313,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4625,"timestamp":4078082147784,"id":1313,"parentId":1262,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/handle-segment-mismatch.js","layer":"ssr"},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4490,"timestamp":4078082147973,"id":1315,"parentId":1314,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4509,"timestamp":4078082147954,"id":1314,"parentId":1309,"tags":{},"startTime":1711860129923,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5082,"timestamp":4078082147698,"id":1309,"parentId":1262,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/apply-router-state-patch-to-tree.js","layer":"ssr"},"startTime":1711860129922,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3300,"timestamp":4078082150071,"id":1334,"parentId":1333,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3331,"timestamp":4078082150043,"id":1333,"parentId":1324,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3909,"timestamp":4078082149706,"id":1324,"parentId":1189,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/strip-ansi/index.js","layer":"ssr"},"startTime":1711860129924,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3529,"timestamp":4078082150099,"id":1340,"parentId":1339,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3538,"timestamp":4078082150092,"id":1339,"parentId":1327,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3959,"timestamp":4078082149847,"id":1327,"parentId":1261,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js","layer":"ssr"},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3741,"timestamp":4078082150082,"id":1336,"parentId":1335,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3752,"timestamp":4078082150073,"id":1335,"parentId":1325,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4405,"timestamp":4078082149778,"id":1325,"parentId":1264,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/promise-queue.js","layer":"ssr"},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4089,"timestamp":4078082150106,"id":1342,"parentId":1341,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4097,"timestamp":4078082150099,"id":1341,"parentId":1328,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4484,"timestamp":4078082149866,"id":1328,"parentId":1261,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/get-prefetch-cache-entry-status.js","layer":"ssr"},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4249,"timestamp":4078082150114,"id":1344,"parentId":1343,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4256,"timestamp":4078082150107,"id":1343,"parentId":1329,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4702,"timestamp":4078082149885,"id":1329,"parentId":1261,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-data-property.js","layer":"ssr"},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4476,"timestamp":4078082150121,"id":1346,"parentId":1345,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":4603,"timestamp":4078082150114,"id":1345,"parentId":1330,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4928,"timestamp":4078082149902,"id":1330,"parentId":1261,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/should-hard-navigate.js","layer":"ssr"},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4819,"timestamp":4078082150136,"id":1350,"parentId":1349,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4828,"timestamp":4078082150129,"id":1349,"parentId":1332,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5136,"timestamp":4078082149936,"id":1332,"parentId":1264,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/create-prefetch-cache-key.js","layer":"ssr"},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4952,"timestamp":4078082150128,"id":1348,"parentId":1347,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4960,"timestamp":4078082150121,"id":1347,"parentId":1331,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5257,"timestamp":4078082149920,"id":1331,"parentId":1264,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/prune-prefetch-cache.js","layer":"ssr"},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5341,"timestamp":4078082150091,"id":1338,"parentId":1337,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5350,"timestamp":4078082150083,"id":1337,"parentId":1326,"tags":{},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6816,"timestamp":4078082149824,"id":1326,"parentId":1263,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/ppr-navigations.js","layer":"ssr"},"startTime":1711860129925,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2721,"timestamp":4078082157390,"id":1359,"parentId":1358,"tags":{},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2733,"timestamp":4078082157380,"id":1358,"parentId":1353,"tags":{},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3516,"timestamp":4078082156800,"id":1353,"parentId":1242,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/index.js","layer":"ssr"},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2946,"timestamp":4078082157380,"id":1357,"parentId":1356,"tags":{},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2958,"timestamp":4078082157368,"id":1356,"parentId":1352,"tags":{},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3621,"timestamp":4078082156775,"id":1352,"parentId":1242,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/index.js","layer":"ssr"},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3055,"timestamp":4078082157366,"id":1355,"parentId":1354,"tags":{},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3082,"timestamp":4078082157339,"id":1354,"parentId":1351,"tags":{},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4195,"timestamp":4078082156730,"id":1351,"parentId":1286,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/stack-frame.js","layer":"ssr"},"startTime":1711860129932,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1944,"timestamp":4078082159452,"id":1362,"parentId":1361,"tags":{},"startTime":1711860129934,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1969,"timestamp":4078082159428,"id":1361,"parentId":1360,"tags":{},"startTime":1711860129934,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2112,"timestamp":4078082159370,"id":1360,"parentId":1243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js","layer":"ssr"},"startTime":1711860129934,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1194,"timestamp":4078082161073,"id":1365,"parentId":1364,"tags":{},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1215,"timestamp":4078082161056,"id":1364,"parentId":1363,"tags":{},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1466,"timestamp":4078082160966,"id":1363,"parentId":1242,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/index.js","layer":"ssr"},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1256,"timestamp":4078082161711,"id":1373,"parentId":1372,"tags":{},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1267,"timestamp":4078082161702,"id":1372,"parentId":1367,"tags":{},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1473,"timestamp":4078082161584,"id":1367,"parentId":1244,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/index.js","layer":"ssr"},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1388,"timestamp":4078082161701,"id":1371,"parentId":1370,"tags":{},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1404,"timestamp":4078082161686,"id":1370,"parentId":1366,"tags":{},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1610,"timestamp":4078082161554,"id":1366,"parentId":1241,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js","layer":"ssr"},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1519,"timestamp":4078082161728,"id":1377,"parentId":1376,"tags":{},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1527,"timestamp":4078082161720,"id":1376,"parentId":1369,"tags":{},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1864,"timestamp":4078082161619,"id":1369,"parentId":1243,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js","layer":"ssr"},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1952,"timestamp":4078082161720,"id":1375,"parentId":1374,"tags":{},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1962,"timestamp":4078082161712,"id":1374,"parentId":1368,"tags":{},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2521,"timestamp":4078082161602,"id":1368,"parentId":1244,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/index.js","layer":"ssr"},"startTime":1711860129936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3491,"timestamp":4078082162705,"id":1381,"parentId":1380,"tags":{},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3513,"timestamp":4078082162685,"id":1380,"parentId":1378,"tags":{},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3915,"timestamp":4078082162531,"id":1378,"parentId":1310,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/fill-cache-with-new-subtree-data.js","layer":"ssr"},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3806,"timestamp":4078082162716,"id":1383,"parentId":1382,"tags":{},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3816,"timestamp":4078082162707,"id":1382,"parentId":1379,"tags":{},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4528,"timestamp":4078082162577,"id":1379,"parentId":1212,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","layer":"ssr"},"startTime":1711860129937,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1809,"timestamp":4078082167482,"id":1386,"parentId":1385,"tags":{},"startTime":1711860129942,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1835,"timestamp":4078082167464,"id":1385,"parentId":1384,"tags":{},"startTime":1711860129942,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2496,"timestamp":4078082167305,"id":1384,"parentId":1353,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js","layer":"ssr"},"startTime":1711860129942,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1729,"timestamp":4078082168115,"id":1389,"parentId":1388,"tags":{},"startTime":1711860129943,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1745,"timestamp":4078082168100,"id":1388,"parentId":1387,"tags":{},"startTime":1711860129943,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1992,"timestamp":4078082168050,"id":1387,"parentId":1352,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js","layer":"ssr"},"startTime":1711860129943,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3128,"timestamp":4078082169027,"id":1398,"parentId":1397,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3138,"timestamp":4078082169018,"id":1397,"parentId":1391,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3548,"timestamp":4078082168897,"id":1391,"parentId":1363,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js","layer":"ssr"},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3421,"timestamp":4078082169035,"id":1400,"parentId":1399,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3430,"timestamp":4078082169028,"id":1399,"parentId":1392,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3642,"timestamp":4078082168916,"id":1392,"parentId":1363,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js","layer":"ssr"},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3566,"timestamp":4078082169017,"id":1396,"parentId":1395,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3580,"timestamp":4078082169004,"id":1395,"parentId":1390,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4087,"timestamp":4078082168872,"id":1390,"parentId":1360,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js","layer":"ssr"},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4108,"timestamp":4078082169050,"id":1404,"parentId":1403,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4116,"timestamp":4078082169043,"id":1403,"parentId":1394,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4303,"timestamp":4078082168951,"id":1394,"parentId":1363,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js","layer":"ssr"},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4219,"timestamp":4078082169043,"id":1402,"parentId":1401,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4227,"timestamp":4078082169036,"id":1401,"parentId":1393,"tags":{},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4413,"timestamp":4078082168934,"id":1393,"parentId":1363,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js","layer":"ssr"},"startTime":1711860129944,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2900,"timestamp":4078082170455,"id":1420,"parentId":1419,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2908,"timestamp":4078082170447,"id":1419,"parentId":1407,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3297,"timestamp":4078082170140,"id":1407,"parentId":1367,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/Toast.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3000,"timestamp":4078082170446,"id":1418,"parentId":1417,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3010,"timestamp":4078082170437,"id":1417,"parentId":1406,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3484,"timestamp":4078082170120,"id":1406,"parentId":1368,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/group-stack-frames-by-framework.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3149,"timestamp":4078082170463,"id":1422,"parentId":1421,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3157,"timestamp":4078082170455,"id":1421,"parentId":1408,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3548,"timestamp":4078082170162,"id":1408,"parentId":1366,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3285,"timestamp":4078082170436,"id":1416,"parentId":1415,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3303,"timestamp":4078082170419,"id":1415,"parentId":1405,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3737,"timestamp":4078082170087,"id":1405,"parentId":1363,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Dialog/styles.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3347,"timestamp":4078082170486,"id":1428,"parentId":1427,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3355,"timestamp":4078082170479,"id":1427,"parentId":1411,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3740,"timestamp":4078082170212,"id":1411,"parentId":1369,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/hot-linked-text/get-words-and-whitespaces.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3490,"timestamp":4078082170470,"id":1424,"parentId":1423,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3498,"timestamp":4078082170463,"id":1423,"parentId":1409,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3885,"timestamp":4078082170180,"id":1409,"parentId":1367,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Toast/styles.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3599,"timestamp":4078082170478,"id":1426,"parentId":1425,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3607,"timestamp":4078082170471,"id":1425,"parentId":1410,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4052,"timestamp":4078082170196,"id":1410,"parentId":1366,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8351,"timestamp":4078082170493,"id":1430,"parentId":1429,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8361,"timestamp":4078082170486,"id":1429,"parentId":1412,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8981,"timestamp":4078082170227,"id":1412,"parentId":1368,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8727,"timestamp":4078082170501,"id":1432,"parentId":1431,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8735,"timestamp":4078082170494,"id":1431,"parentId":1413,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9225,"timestamp":4078082170244,"id":1413,"parentId":1368,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/GroupedStackFrames.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8982,"timestamp":4078082170508,"id":1434,"parentId":1433,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8990,"timestamp":4078082170501,"id":1433,"parentId":1414,"tags":{},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9513,"timestamp":4078082170260,"id":1414,"parentId":1368,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/ComponentStackFrameRow.js","layer":"ssr"},"startTime":1711860129945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":935,"timestamp":4078082180497,"id":1437,"parentId":1436,"tags":{},"startTime":1711860129955,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":960,"timestamp":4078082180474,"id":1436,"parentId":1435,"tags":{},"startTime":1711860129955,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1546,"timestamp":4078082180060,"id":1435,"parentId":1378,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/invalidate-cache-by-router-state.js","layer":"ssr"},"startTime":1711860129955,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1206,"timestamp":4078082181324,"id":1442,"parentId":1441,"tags":{},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1226,"timestamp":4078082181307,"id":1441,"parentId":1438,"tags":{},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1561,"timestamp":4078082181236,"id":1438,"parentId":1384,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js","layer":"ssr"},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":1999,"timestamp":4078082181342,"id":1446,"parentId":1445,"tags":{},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2009,"timestamp":4078082181334,"id":1445,"parentId":1440,"tags":{},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2237,"timestamp":4078082181288,"id":1440,"parentId":1387,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js","layer":"ssr"},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1556,"timestamp":4078082182179,"id":1452,"parentId":1451,"tags":{},"startTime":1711860129957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1567,"timestamp":4078082182169,"id":1451,"parentId":1448,"tags":{},"startTime":1711860129957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1909,"timestamp":4078082182121,"id":1448,"parentId":1413,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/container/RuntimeError/FrameworkIcon.js","layer":"ssr"},"startTime":1711860129957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1874,"timestamp":4078082182168,"id":1450,"parentId":1449,"tags":{},"startTime":1711860129957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1893,"timestamp":4078082182150,"id":1449,"parentId":1447,"tags":{},"startTime":1711860129957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2123,"timestamp":4078082182088,"id":1447,"parentId":1412,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js","layer":"ssr"},"startTime":1711860129957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1385,"timestamp":4078082183162,"id":1455,"parentId":1454,"tags":{},"startTime":1711860129958,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1405,"timestamp":4078082183143,"id":1454,"parentId":1453,"tags":{},"startTime":1711860129958,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1735,"timestamp":4078082182967,"id":1453,"parentId":1391,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js","layer":"ssr"},"startTime":1711860129958,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":747,"timestamp":4078082184440,"id":1458,"parentId":1457,"tags":{},"startTime":1711860129959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":766,"timestamp":4078082184424,"id":1457,"parentId":1456,"tags":{},"startTime":1711860129959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1079,"timestamp":4078082184242,"id":1456,"parentId":1368,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/index.js","layer":"ssr"},"startTime":1711860129959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2010,"timestamp":4078082186413,"id":1461,"parentId":1460,"tags":{},"startTime":1711860129961,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2031,"timestamp":4078082186395,"id":1460,"parentId":1459,"tags":{},"startTime":1711860129961,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2544,"timestamp":4078082186359,"id":1459,"parentId":1456,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js","layer":"ssr"},"startTime":1711860129961,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2115,"timestamp":4078082188287,"id":1468,"parentId":1467,"tags":{},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2128,"timestamp":4078082188277,"id":1467,"parentId":1463,"tags":{},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2466,"timestamp":4078082188215,"id":1463,"parentId":1325,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js","layer":"ssr"},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2425,"timestamp":4078082188276,"id":1466,"parentId":1465,"tags":{},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2445,"timestamp":4078082188258,"id":1465,"parentId":1462,"tags":{},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2974,"timestamp":4078082187844,"id":1462,"parentId":1242,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js","layer":"ssr"},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2533,"timestamp":4078082188295,"id":1470,"parentId":1469,"tags":{},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2542,"timestamp":4078082188287,"id":1469,"parentId":1464,"tags":{},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2704,"timestamp":4078082188237,"id":1464,"parentId":1325,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js","layer":"ssr"},"startTime":1711860129963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12557,"timestamp":4078082181334,"id":1444,"parentId":1443,"tags":{},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12570,"timestamp":4078082181324,"id":1443,"parentId":1439,"tags":{},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18728,"timestamp":4078082181267,"id":1439,"parentId":1387,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js","layer":"ssr"},"startTime":1711860129956,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7482,"timestamp":4078082192834,"id":1473,"parentId":1472,"tags":{},"startTime":1711860129968,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7505,"timestamp":4078082192812,"id":1472,"parentId":1471,"tags":{},"startTime":1711860129968,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8700,"timestamp":4078082192765,"id":1471,"parentId":1384,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/anser/index.js","layer":"ssr"},"startTime":1711860129968,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1514,"timestamp":4078082203034,"id":1477,"parentId":1476,"tags":{},"startTime":1711860129978,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1542,"timestamp":4078082203009,"id":1476,"parentId":1474,"tags":{},"startTime":1711860129978,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1983,"timestamp":4078082202929,"id":1474,"parentId":1439,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/css.escape/css.escape.js","layer":"ssr"},"startTime":1711860129978,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6251,"timestamp":4078082203045,"id":1479,"parentId":1478,"tags":{},"startTime":1711860129978,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6266,"timestamp":4078082203035,"id":1478,"parentId":1475,"tags":{},"startTime":1711860129978,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11905,"timestamp":4078082202985,"id":1475,"parentId":1439,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/platform/platform.js","layer":"ssr"},"startTime":1711860129978,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":2792629,"timestamp":4078079422324,"id":123,"parentId":122,"tags":{},"startTime":1711860127197,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":4432,"timestamp":4078082230035,"id":1481,"parentId":1480,"tags":{},"startTime":1711860130005,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":4,"timestamp":4078082234497,"id":1483,"parentId":1480,"tags":{},"startTime":1711860130009,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":305,"timestamp":4078082234513,"id":1484,"parentId":1480,"tags":{},"startTime":1711860130009,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":4,"timestamp":4078082234834,"id":1485,"parentId":1480,"tags":{},"startTime":1711860130010,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":3,"timestamp":4078082234852,"id":1486,"parentId":1480,"tags":{},"startTime":1711860130010,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":1463,"timestamp":4078082234488,"id":1482,"parentId":1480,"tags":{},"startTime":1711860130009,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":8194,"timestamp":4078082238722,"id":1487,"parentId":1480,"tags":{},"startTime":1711860130014,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":27665,"timestamp":4078082246931,"id":1488,"parentId":1480,"tags":{},"startTime":1711860130022,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":15846,"timestamp":4078082278034,"id":1489,"parentId":1480,"tags":{},"startTime":1711860130053,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":654,"timestamp":4078082293879,"id":1490,"parentId":1480,"tags":{},"startTime":1711860130069,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":94,"timestamp":4078082294525,"id":1491,"parentId":1480,"tags":{},"startTime":1711860130069,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":148880,"timestamp":4078082294622,"id":1492,"parentId":1480,"tags":{},"startTime":1711860130069,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":216660,"timestamp":4078082228897,"id":1480,"parentId":122,"tags":{},"startTime":1711860130004,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":3026843,"timestamp":4078079420092,"id":122,"parentId":120,"tags":{"name":"edge-server"},"startTime":1711860127195,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":40955,"timestamp":4078082446975,"id":1493,"parentId":120,"tags":{},"startTime":1711860130222,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-edge-server","duration":3069002,"timestamp":4078079419389,"id":120,"parentId":3,"tags":{"trigger":"manual"},"startTime":1711860127194,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js?server=false!","duration":537,"timestamp":4078082498109,"id":1501,"parentId":1498,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=false!","layer":"app-pages-browser"},"startTime":1711860130273,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&server=false!","duration":700,"timestamp":4078082498675,"id":1502,"parentId":1499,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&server=false!","layer":"app-pages-browser"},"startTime":1711860130273,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js&server=false!","duration":2603,"timestamp":4078082499446,"id":1503,"parentId":1500,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=false!","layer":"app-pages-browser"},"startTime":1711860130274,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":9712,"timestamp":4078082492756,"id":1498,"parentId":1495,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1711860130268,"traceId":"a43e3bb0d33d2683"},{"name":"read-resource","duration":5,"timestamp":4078082513414,"id":1512,"parentId":1511,"tags":{},"startTime":1711860130288,"traceId":"a43e3bb0d33d2683"},{"name":"font-loader","duration":589,"timestamp":4078082513470,"id":1514,"parentId":1513,"tags":{},"startTime":1711860130288,"traceId":"a43e3bb0d33d2683"},{"name":"postcss","duration":504,"timestamp":4078082514094,"id":1515,"parentId":1513,"tags":{},"startTime":1711860130289,"traceId":"a43e3bb0d33d2683"},{"name":"next-font-loader","duration":1183,"timestamp":4078082513435,"id":1513,"parentId":1511,"tags":{},"startTime":1711860130288,"traceId":"a43e3bb0d33d2683"},{"name":"css-loader","duration":3215,"timestamp":4078082514609,"id":1516,"parentId":1511,"tags":{"astUsed":"true"},"startTime":1711860130289,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","duration":5055,"timestamp":4078082513211,"id":1511,"parentId":1508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/font/google/target.css.webpack[javascript/auto]!=!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[11].oneOf[2].use[1]!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[11].oneOf[2].use[2]!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","layer":null},"startTime":1711860130288,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7839,"timestamp":4078082511868,"id":1510,"parentId":1509,"tags":{},"startTime":1711860130287,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7889,"timestamp":4078082511820,"id":1509,"parentId":1507,"tags":{},"startTime":1711860130287,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10388,"timestamp":4078082509954,"id":1507,"parentId":1496,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js","layer":"app-pages-browser"},"startTime":1711860130285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13630,"timestamp":4078082507669,"id":1506,"parentId":1505,"tags":{},"startTime":1711860130282,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13689,"timestamp":4078082507613,"id":1505,"parentId":1504,"tags":{},"startTime":1711860130282,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16830,"timestamp":4078082506418,"id":1504,"parentId":1497,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/app-next-dev.js","layer":"app-pages-browser"},"startTime":1711860130281,"traceId":"a43e3bb0d33d2683"},{"name":"read-resource","duration":7,"timestamp":4078082530489,"id":1552,"parentId":1551,"tags":{},"startTime":1711860130305,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":107908,"timestamp":4078082519513,"id":1525,"parentId":1524,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":107947,"timestamp":4078082519481,"id":1524,"parentId":1517,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":109651,"timestamp":4078082519230,"id":1517,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/error-boundary.js","layer":"app-pages-browser"},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":109408,"timestamp":4078082519527,"id":1527,"parentId":1526,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":109421,"timestamp":4078082519516,"id":1526,"parentId":1518,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":110462,"timestamp":4078082519304,"id":1518,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/not-found-boundary.js","layer":"app-pages-browser"},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":110310,"timestamp":4078082519537,"id":1529,"parentId":1528,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":110320,"timestamp":4078082519528,"id":1528,"parentId":1519,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":114626,"timestamp":4078082519356,"id":1519,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/app-router.js","layer":"app-pages-browser"},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":114647,"timestamp":4078082519546,"id":1531,"parentId":1530,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":114665,"timestamp":4078082519538,"id":1530,"parentId":1520,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":116478,"timestamp":4078082519386,"id":1520,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/layout-router.js","layer":"app-pages-browser"},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":116556,"timestamp":4078082519573,"id":1537,"parentId":1536,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":116567,"timestamp":4078082519565,"id":1536,"parentId":1523,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":117065,"timestamp":4078082519449,"id":1523,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/render-from-template-context.js","layer":"app-pages-browser"},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":116976,"timestamp":4078082519555,"id":1533,"parentId":1532,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":116986,"timestamp":4078082519547,"id":1532,"parentId":1521,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":117467,"timestamp":4078082519409,"id":1521,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js","layer":"app-pages-browser"},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":117327,"timestamp":4078082519564,"id":1535,"parentId":1534,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":117337,"timestamp":4078082519556,"id":1534,"parentId":1522,"tags":{},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":117821,"timestamp":4078082519430,"id":1522,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/dev-root-not-found-boundary.js","layer":"app-pages-browser"},"startTime":1711860130294,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":109824,"timestamp":4078082527440,"id":1550,"parentId":1549,"tags":{},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":109833,"timestamp":4078082527431,"id":1549,"parentId":1542,"tags":{},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":110299,"timestamp":4078082527316,"id":1542,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":110201,"timestamp":4078082527430,"id":1548,"parentId":1547,"tags":{},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":110211,"timestamp":4078082527421,"id":1547,"parentId":1541,"tags":{},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":110641,"timestamp":4078082527292,"id":1541,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":110538,"timestamp":4078082527407,"id":1544,"parentId":1543,"tags":{},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":110737,"timestamp":4078082527370,"id":1543,"parentId":1539,"tags":{},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":111202,"timestamp":4078082527193,"id":1539,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","layer":"app-pages-browser"},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":110985,"timestamp":4078082527421,"id":1546,"parentId":1545,"tags":{},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":110998,"timestamp":4078082527409,"id":1545,"parentId":1540,"tags":{},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":111376,"timestamp":4078082527262,"id":1540,"parentId":1503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1711860130302,"traceId":"a43e3bb0d33d2683"},{"name":"postcss-process","duration":172607,"timestamp":4078082530719,"id":1554,"parentId":1553,"tags":{},"startTime":1711860130305,"traceId":"a43e3bb0d33d2683"},{"name":"postcss-loader","duration":173443,"timestamp":4078082530611,"id":1553,"parentId":1551,"tags":{},"startTime":1711860130305,"traceId":"a43e3bb0d33d2683"},{"name":"css-loader","duration":5819,"timestamp":4078082704088,"id":1572,"parentId":1551,"tags":{"astUsed":"true"},"startTime":1711860130479,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":65757,"timestamp":4078082645038,"id":1558,"parentId":1557,"tags":{},"startTime":1711860130420,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":65796,"timestamp":4078082645001,"id":1557,"parentId":1555,"tags":{},"startTime":1711860130420,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":66266,"timestamp":4078082644685,"id":1555,"parentId":1517,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/jsx-runtime.js","layer":"app-pages-browser"},"startTime":1711860130419,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":65915,"timestamp":4078082645052,"id":1560,"parentId":1559,"tags":{},"startTime":1711860130420,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":65928,"timestamp":4078082645040,"id":1559,"parentId":1556,"tags":{},"startTime":1711860130420,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":66109,"timestamp":4078082644933,"id":1556,"parentId":1517,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/index.js","layer":"app-pages-browser"},"startTime":1711860130420,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":65846,"timestamp":4078082646723,"id":1567,"parentId":1566,"tags":{},"startTime":1711860130422,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":65874,"timestamp":4078082646697,"id":1566,"parentId":1563,"tags":{},"startTime":1711860130421,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":66699,"timestamp":4078082646533,"id":1563,"parentId":1504,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/app-webpack.js","layer":"app-pages-browser"},"startTime":1711860130421,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":66519,"timestamp":4078082646736,"id":1569,"parentId":1568,"tags":{},"startTime":1711860130422,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":66531,"timestamp":4078082646725,"id":1568,"parentId":1564,"tags":{},"startTime":1711860130422,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":67081,"timestamp":4078082646589,"id":1564,"parentId":1504,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/app-bootstrap.js","layer":"app-pages-browser"},"startTime":1711860130421,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":67005,"timestamp":4078082646745,"id":1571,"parentId":1570,"tags":{},"startTime":1711860130422,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":67015,"timestamp":4078082646737,"id":1570,"parentId":1565,"tags":{},"startTime":1711860130422,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":68584,"timestamp":4078082646630,"id":1565,"parentId":1504,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/app-index.js","layer":"app-pages-browser"},"startTime":1711860130421,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6671,"timestamp":4078082711869,"id":1585,"parentId":1584,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6685,"timestamp":4078082711858,"id":1584,"parentId":1574,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7313,"timestamp":4078082711609,"id":1574,"parentId":1518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/not-found.js","layer":"app-pages-browser"},"startTime":1711860130486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7055,"timestamp":4078082711887,"id":1589,"parentId":1588,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7064,"timestamp":4078082711879,"id":1588,"parentId":1576,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7767,"timestamp":4078082711651,"id":1576,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/redirect-boundary.js","layer":"app-pages-browser"},"startTime":1711860130486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7567,"timestamp":4078082711878,"id":1587,"parentId":1586,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7577,"timestamp":4078082711869,"id":1586,"parentId":1575,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8371,"timestamp":4078082711633,"id":1575,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/use-reducer-with-devtools.js","layer":"app-pages-browser"},"startTime":1711860130486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8120,"timestamp":4078082711896,"id":1591,"parentId":1590,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8128,"timestamp":4078082711888,"id":1590,"parentId":1577,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10529,"timestamp":4078082711669,"id":1577,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/infinite-promise.js","layer":"app-pages-browser"},"startTime":1711860130486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10339,"timestamp":4078082711904,"id":1593,"parentId":1592,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10348,"timestamp":4078082711896,"id":1592,"parentId":1578,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11060,"timestamp":4078082711687,"id":1578,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/app-router-headers.js","layer":"app-pages-browser"},"startTime":1711860130486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10847,"timestamp":4078082711920,"id":1597,"parentId":1596,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10855,"timestamp":4078082711913,"id":1596,"parentId":1580,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11448,"timestamp":4078082711724,"id":1580,"parentId":1520,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/match-segments.js","layer":"app-pages-browser"},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11756,"timestamp":4078082711857,"id":1583,"parentId":1582,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11786,"timestamp":4078082711828,"id":1582,"parentId":1573,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12951,"timestamp":4078082711553,"id":1573,"parentId":1517,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/navigation.js","layer":"app-pages-browser"},"startTime":1711860130486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12607,"timestamp":4078082711912,"id":1595,"parentId":1594,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12616,"timestamp":4078082711904,"id":1594,"parentId":1579,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13113,"timestamp":4078082711704,"id":1579,"parentId":1517,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/is-next-router-error.js","layer":"app-pages-browser"},"startTime":1711860130486,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12978,"timestamp":4078082711928,"id":1599,"parentId":1598,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12987,"timestamp":4078082711921,"id":1598,"parentId":1581,"tags":{},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13658,"timestamp":4078082711741,"id":1581,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/app-router-announcer.js","layer":"app-pages-browser"},"startTime":1711860130487,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8243,"timestamp":4078082717177,"id":1608,"parentId":1607,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8255,"timestamp":4078082717166,"id":1607,"parentId":1601,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8814,"timestamp":4078082716953,"id":1601,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/add-base-path.js","layer":"app-pages-browser"},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8614,"timestamp":4078082717165,"id":1606,"parentId":1605,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8637,"timestamp":4078082717143,"id":1605,"parentId":1600,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9144,"timestamp":4078082716911,"id":1600,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/has-base-path.js","layer":"app-pages-browser"},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8882,"timestamp":4078082717186,"id":1610,"parentId":1609,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8891,"timestamp":4078082717177,"id":1609,"parentId":1602,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9556,"timestamp":4078082716975,"id":1602,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/remove-base-path.js","layer":"app-pages-browser"},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9357,"timestamp":4078082717194,"id":1612,"parentId":1611,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9366,"timestamp":4078082717186,"id":1611,"parentId":1603,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9870,"timestamp":4078082716995,"id":1603,"parentId":1521,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/searchparams-bailout-proxy.js","layer":"app-pages-browser"},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12318,"timestamp":4078082717205,"id":1614,"parentId":1613,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12332,"timestamp":4078082717195,"id":1613,"parentId":1604,"tags":{},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13000,"timestamp":4078082717014,"id":1604,"parentId":1507,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js","layer":"app-pages-browser"},"startTime":1711860130492,"traceId":"a43e3bb0d33d2683"},{"name":"read-resource","duration":83848,"timestamp":4078082646518,"id":1562,"parentId":1561,"tags":{},"startTime":1711860130421,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":84386,"timestamp":4078082646242,"id":1561,"parentId":1511,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js","layer":null},"startTime":1711860130421,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","duration":225267,"timestamp":4078082510070,"id":1508,"parentId":1502,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}","layer":"app-pages-browser"},"startTime":1711860130285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6825,"timestamp":4078082728710,"id":1631,"parentId":1630,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6838,"timestamp":4078082728699,"id":1630,"parentId":1617,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7408,"timestamp":4078082728428,"id":1617,"parentId":1518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/utils/warn-once.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7137,"timestamp":4078082728719,"id":1633,"parentId":1632,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7146,"timestamp":4078082728711,"id":1632,"parentId":1618,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7761,"timestamp":4078082728451,"id":1618,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7497,"timestamp":4078082728728,"id":1635,"parentId":1634,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7506,"timestamp":4078082728720,"id":1634,"parentId":1619,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7996,"timestamp":4078082728474,"id":1619,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7744,"timestamp":4078082728744,"id":1639,"parentId":1638,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7752,"timestamp":4078082728737,"id":1638,"parentId":1621,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8338,"timestamp":4078082728513,"id":1621,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8140,"timestamp":4078082728736,"id":1637,"parentId":1636,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8148,"timestamp":4078082728728,"id":1636,"parentId":1620,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8959,"timestamp":4078082728494,"id":1620,"parentId":1520,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11518,"timestamp":4078082728752,"id":1641,"parentId":1640,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11529,"timestamp":4078082728745,"id":1640,"parentId":1622,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12165,"timestamp":4078082728531,"id":1622,"parentId":1520,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12128,"timestamp":4078082728686,"id":1627,"parentId":1626,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12159,"timestamp":4078082728656,"id":1626,"parentId":1615,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17444,"timestamp":4078082728346,"id":1615,"parentId":1555,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17057,"timestamp":4078082728769,"id":1645,"parentId":1644,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17066,"timestamp":4078082728761,"id":1644,"parentId":1624,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17684,"timestamp":4078082728567,"id":1624,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18962,"timestamp":4078082728777,"id":1647,"parentId":1646,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18972,"timestamp":4078082728769,"id":1646,"parentId":1625,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19471,"timestamp":4078082728585,"id":1625,"parentId":1520,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19352,"timestamp":4078082728761,"id":1643,"parentId":1642,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19361,"timestamp":4078082728753,"id":1642,"parentId":1623,"tags":{},"startTime":1711860130504,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20975,"timestamp":4078082728549,"id":1623,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/hot-reloader-client.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21472,"timestamp":4078082728699,"id":1629,"parentId":1628,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21485,"timestamp":4078082728687,"id":1628,"parentId":1616,"tags":{},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":27289,"timestamp":4078082728405,"id":1616,"parentId":1556,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react.development.js","layer":"app-pages-browser"},"startTime":1711860130503,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":21553,"timestamp":4078082738375,"id":1653,"parentId":1652,"tags":{},"startTime":1711860130513,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21569,"timestamp":4078082738363,"id":1652,"parentId":1649,"tags":{},"startTime":1711860130513,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22109,"timestamp":4078082738254,"id":1649,"parentId":1520,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js","layer":"app-pages-browser"},"startTime":1711860130513,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":22024,"timestamp":4078082738361,"id":1651,"parentId":1650,"tags":{},"startTime":1711860130513,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":22054,"timestamp":4078082738333,"id":1650,"parentId":1648,"tags":{},"startTime":1711860130513,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22562,"timestamp":4078082738201,"id":1648,"parentId":1519,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router/utils/is-bot.js","layer":"app-pages-browser"},"startTime":1711860130513,"traceId":"a43e3bb0d33d2683"},{"name":"build-module","duration":174,"timestamp":4078082762147,"id":1654,"parentId":1508,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2663,"timestamp":4078082762630,"id":1665,"parentId":1664,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2677,"timestamp":4078082762620,"id":1664,"parentId":1657,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3243,"timestamp":4078082762480,"id":1657,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3106,"timestamp":4078082762639,"id":1667,"parentId":1666,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3116,"timestamp":4078082762630,"id":1666,"parentId":1658,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3606,"timestamp":4078082762504,"id":1658,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/on-recoverable-error.js","layer":"app-pages-browser"},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3612,"timestamp":4078082762604,"id":1661,"parentId":1660,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3646,"timestamp":4078082762571,"id":1660,"parentId":1655,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4003,"timestamp":4078082762332,"id":1655,"parentId":1563,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/deployment-id.js","layer":"app-pages-browser"},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3728,"timestamp":4078082762619,"id":1663,"parentId":1662,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3743,"timestamp":4078082762605,"id":1662,"parentId":1656,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4219,"timestamp":4078082762439,"id":1656,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/app-call-server.js","layer":"app-pages-browser"},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4440,"timestamp":4078082762648,"id":1669,"parentId":1668,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4450,"timestamp":4078082762640,"id":1668,"parentId":1659,"tags":{},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5034,"timestamp":4078082762525,"id":1659,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/app-link-gc.js","layer":"app-pages-browser"},"startTime":1711860130537,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3764,"timestamp":4078082765214,"id":1673,"parentId":1672,"tags":{},"startTime":1711860130540,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3792,"timestamp":4078082765188,"id":1672,"parentId":1670,"tags":{},"startTime":1711860130540,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4448,"timestamp":4078082765045,"id":1670,"parentId":1623,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/strip-ansi/index.js","layer":"app-pages-browser"},"startTime":1711860130540,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4953,"timestamp":4078082765229,"id":1675,"parentId":1674,"tags":{},"startTime":1711860130540,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4969,"timestamp":4078082765216,"id":1674,"parentId":1671,"tags":{},"startTime":1711860130540,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5642,"timestamp":4078082765097,"id":1671,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router/action-queue.js","layer":"app-pages-browser"},"startTime":1711860130540,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4945,"timestamp":4078082768524,"id":1693,"parentId":1692,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4958,"timestamp":4078082768516,"id":1692,"parentId":1678,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5591,"timestamp":4078082768206,"id":1678,"parentId":1573,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/segment.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5317,"timestamp":4078082768502,"id":1689,"parentId":1688,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5352,"timestamp":4078082768468,"id":1688,"parentId":1676,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6104,"timestamp":4078082768121,"id":1676,"parentId":1601,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/normalize-trailing-slash.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5724,"timestamp":4078082768515,"id":1691,"parentId":1690,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5736,"timestamp":4078082768503,"id":1690,"parentId":1677,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6338,"timestamp":4078082768178,"id":1677,"parentId":1573,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/client-hook-in-server-component-error.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5986,"timestamp":4078082768541,"id":1697,"parentId":1696,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5995,"timestamp":4078082768534,"id":1696,"parentId":1680,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6484,"timestamp":4078082768252,"id":1680,"parentId":1601,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6223,"timestamp":4078082768533,"id":1695,"parentId":1694,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6232,"timestamp":4078082768525,"id":1694,"parentId":1679,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7039,"timestamp":4078082768228,"id":1679,"parentId":1576,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/redirect.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6729,"timestamp":4078082768549,"id":1699,"parentId":1698,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6737,"timestamp":4078082768542,"id":1698,"parentId":1681,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7251,"timestamp":4078082768273,"id":1681,"parentId":1600,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6989,"timestamp":4078082768558,"id":1701,"parentId":1700,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6997,"timestamp":4078082768550,"id":1700,"parentId":1682,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7669,"timestamp":4078082768293,"id":1682,"parentId":1603,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/static-generation-bailout.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7410,"timestamp":4078082768587,"id":1707,"parentId":1706,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7419,"timestamp":4078082768579,"id":1706,"parentId":1685,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8124,"timestamp":4078082768355,"id":1685,"parentId":1621,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7936,"timestamp":4078082768566,"id":1703,"parentId":1702,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7945,"timestamp":4078082768558,"id":1702,"parentId":1683,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8752,"timestamp":4078082768312,"id":1683,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/ReactDevOverlay.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8697,"timestamp":4078082768578,"id":1705,"parentId":1704,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8709,"timestamp":4078082768567,"id":1704,"parentId":1684,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9352,"timestamp":4078082768331,"id":1684,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/error-overlay-reducer.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9146,"timestamp":4078082768603,"id":1711,"parentId":1710,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9154,"timestamp":4078082768596,"id":1710,"parentId":1687,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10688,"timestamp":4078082768395,"id":1687,"parentId":1620,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/hash.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10519,"timestamp":4078082768595,"id":1709,"parentId":1708,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10528,"timestamp":4078082768587,"id":1708,"parentId":1686,"tags":{},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11279,"timestamp":4078082768372,"id":1686,"parentId":1621,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js","layer":"app-pages-browser"},"startTime":1711860130543,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7927,"timestamp":4078082771743,"id":1724,"parentId":1723,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7958,"timestamp":4078082771714,"id":1723,"parentId":1714,"tags":{},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8870,"timestamp":4078082771048,"id":1714,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/polyfills/polyfill-module.js","layer":"app-pages-browser"},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8228,"timestamp":4078082771710,"id":1722,"parentId":1721,"tags":{},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8286,"timestamp":4078082771653,"id":1721,"parentId":1713,"tags":{},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9304,"timestamp":4078082771022,"id":1713,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js","layer":"app-pages-browser"},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8693,"timestamp":4078082771648,"id":1720,"parentId":1719,"tags":{},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8899,"timestamp":4078082771443,"id":1719,"parentId":1712,"tags":{},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9715,"timestamp":4078082770975,"id":1712,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js","layer":"app-pages-browser"},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8864,"timestamp":4078082771840,"id":1728,"parentId":1727,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8893,"timestamp":4078082771812,"id":1727,"parentId":1716,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9986,"timestamp":4078082771089,"id":1716,"parentId":1623,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js","layer":"app-pages-browser"},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12164,"timestamp":4078082771795,"id":1726,"parentId":1725,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12217,"timestamp":4078082771746,"id":1725,"parentId":1715,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13375,"timestamp":4078082771068,"id":1715,"parentId":1623,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js","layer":"app-pages-browser"},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12599,"timestamp":4078082771865,"id":1730,"parentId":1729,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12623,"timestamp":4078082771843,"id":1729,"parentId":1717,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13820,"timestamp":4078082771114,"id":1717,"parentId":1623,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-error-handler.js","layer":"app-pages-browser"},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13069,"timestamp":4078082771888,"id":1732,"parentId":1731,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13091,"timestamp":4078082771867,"id":1731,"parentId":1718,"tags":{},"startTime":1711860130547,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14252,"timestamp":4078082771188,"id":1718,"parentId":1623,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-websocket.js","layer":"app-pages-browser"},"startTime":1711860130546,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css","duration":258572,"timestamp":4078082528773,"id":1551,"parentId":1538,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css.webpack[javascript/auto]!=!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[11].oneOf[12].use[2]!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[11].oneOf[12].use[3]!/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css","layer":null},"startTime":1711860130304,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css","duration":265209,"timestamp":4078082524918,"id":1538,"parentId":1502,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css","layer":"app-pages-browser"},"startTime":1711860130300,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3001,"timestamp":4078082787997,"id":1741,"parentId":1740,"tags":{},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3012,"timestamp":4078082787988,"id":1740,"parentId":1735,"tags":{},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3251,"timestamp":4078082787906,"id":1735,"parentId":1623,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/server/dev/hot-reloader-types.js","layer":"app-pages-browser"},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3183,"timestamp":4078082787988,"id":1739,"parentId":1738,"tags":{},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3195,"timestamp":4078082787976,"id":1738,"parentId":1734,"tags":{},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3438,"timestamp":4078082787885,"id":1734,"parentId":1580,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/server/app-render/get-segment-param.js","layer":"app-pages-browser"},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3366,"timestamp":4078082787975,"id":1737,"parentId":1736,"tags":{},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3395,"timestamp":4078082787947,"id":1736,"parentId":1733,"tags":{},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3882,"timestamp":4078082787836,"id":1733,"parentId":1716,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","layer":"app-pages-browser"},"startTime":1711860130563,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1372,"timestamp":4078082793181,"id":1747,"parentId":1746,"tags":{},"startTime":1711860130568,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1387,"timestamp":4078082793169,"id":1746,"parentId":1743,"tags":{},"startTime":1711860130568,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1942,"timestamp":4078082793065,"id":1743,"parentId":1671,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/router-reducer.js","layer":"app-pages-browser"},"startTime":1711860130568,"traceId":"a43e3bb0d33d2683"},{"name":"build-module","duration":92,"timestamp":4078082795984,"id":1772,"parentId":1538,"tags":{},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3432,"timestamp":4078082793168,"id":1745,"parentId":1744,"tags":{},"startTime":1711860130568,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":3583,"timestamp":4078082793139,"id":1744,"parentId":1742,"tags":{},"startTime":1711860130568,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4604,"timestamp":4078082793012,"id":1742,"parentId":1623,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js","layer":"app-pages-browser"},"startTime":1711860130568,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3291,"timestamp":4078082794345,"id":1759,"parentId":1758,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3305,"timestamp":4078082794333,"id":1758,"parentId":1749,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3828,"timestamp":4078082794136,"id":1749,"parentId":1679,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/request-async-storage.external.js","layer":"shared"},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3642,"timestamp":4078082794332,"id":1757,"parentId":1756,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3664,"timestamp":4078082794311,"id":1756,"parentId":1748,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3979,"timestamp":4078082794085,"id":1748,"parentId":1507,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-refresh/runtime.js","layer":"app-pages-browser"},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3720,"timestamp":4078082794355,"id":1761,"parentId":1760,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3729,"timestamp":4078082794346,"id":1760,"parentId":1750,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4158,"timestamp":4078082794160,"id":1750,"parentId":1679,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/action-async-storage.external.js","layer":"shared"},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3965,"timestamp":4078082794364,"id":1763,"parentId":1762,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3974,"timestamp":4078082794355,"id":1762,"parentId":1751,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4403,"timestamp":4078082794182,"id":1751,"parentId":1679,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/redirect-status-code.js","layer":"app-pages-browser"},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4208,"timestamp":4078082794389,"id":1769,"parentId":1768,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4216,"timestamp":4078082794382,"id":1768,"parentId":1754,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4598,"timestamp":4078082794246,"id":1754,"parentId":1676,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router/utils/parse-path.js","layer":"app-pages-browser"},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4659,"timestamp":4078082794381,"id":1767,"parentId":1766,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4669,"timestamp":4078082794373,"id":1766,"parentId":1753,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5148,"timestamp":4078082794225,"id":1753,"parentId":1676,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","layer":"app-pages-browser"},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5111,"timestamp":4078082794372,"id":1765,"parentId":1764,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5120,"timestamp":4078082794364,"id":1764,"parentId":1752,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5802,"timestamp":4078082794202,"id":1752,"parentId":1682,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/hooks-server-context.js","layer":"app-pages-browser"},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5619,"timestamp":4078082794398,"id":1771,"parentId":1770,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5628,"timestamp":4078082794390,"id":1770,"parentId":1755,"tags":{},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8875,"timestamp":4078082794264,"id":1755,"parentId":1682,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/static-generation-async-storage.external.js","layer":"shared"},"startTime":1711860130569,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13995,"timestamp":4078082796268,"id":1781,"parentId":1780,"tags":{},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14008,"timestamp":4078082796259,"id":1780,"parentId":1775,"tags":{},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14240,"timestamp":4078082796147,"id":1775,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-server-dom-webpack/client.js","layer":"app-pages-browser"},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14142,"timestamp":4078082796258,"id":1779,"parentId":1778,"tags":{},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14155,"timestamp":4078082796245,"id":1778,"parentId":1774,"tags":{},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14419,"timestamp":4078082796125,"id":1774,"parentId":1565,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-dom/client.js","layer":"app-pages-browser"},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14313,"timestamp":4078082796244,"id":1777,"parentId":1776,"tags":{},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14336,"timestamp":4078082796222,"id":1776,"parentId":1773,"tags":{},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14820,"timestamp":4078082796083,"id":1773,"parentId":1658,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","layer":"app-pages-browser"},"startTime":1711860130571,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5187,"timestamp":4078082805976,"id":1790,"parentId":1789,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5221,"timestamp":4078082805943,"id":1789,"parentId":1782,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5821,"timestamp":4078082805679,"id":1782,"parentId":1683,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js","layer":"app-pages-browser"},"startTime":1711860130580,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5533,"timestamp":4078082805989,"id":1792,"parentId":1791,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5545,"timestamp":4078082805977,"id":1791,"parentId":1783,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6185,"timestamp":4078082805751,"id":1783,"parentId":1683,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js","layer":"app-pages-browser"},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5956,"timestamp":4078082805999,"id":1794,"parentId":1793,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5966,"timestamp":4078082805990,"id":1793,"parentId":1784,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6578,"timestamp":4078082805780,"id":1784,"parentId":1683,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RootLayoutError.js","layer":"app-pages-browser"},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6347,"timestamp":4078082806026,"id":1800,"parentId":1799,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6356,"timestamp":4078082806018,"id":1799,"parentId":1787,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6986,"timestamp":4078082805849,"id":1787,"parentId":1683,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js","layer":"app-pages-browser"},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6887,"timestamp":4078082806017,"id":1798,"parentId":1797,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6897,"timestamp":4078082806009,"id":1797,"parentId":1786,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7443,"timestamp":4078082805823,"id":1786,"parentId":1683,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js","layer":"app-pages-browser"},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7258,"timestamp":4078082806034,"id":1802,"parentId":1801,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7266,"timestamp":4078082806026,"id":1801,"parentId":1788,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7849,"timestamp":4078082805869,"id":1788,"parentId":1683,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js","layer":"app-pages-browser"},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15287,"timestamp":4078082806008,"id":1796,"parentId":1795,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15299,"timestamp":4078082806000,"id":1795,"parentId":1785,"tags":{},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16473,"timestamp":4078082805803,"id":1785,"parentId":1683,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js","layer":"app-pages-browser"},"startTime":1711860130581,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8071,"timestamp":4078082815101,"id":1805,"parentId":1804,"tags":{},"startTime":1711860130590,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8098,"timestamp":4078082815076,"id":1804,"parentId":1803,"tags":{},"startTime":1711860130590,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8442,"timestamp":4078082814899,"id":1803,"parentId":1520,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-dom/index.js","layer":"app-pages-browser"},"startTime":1711860130590,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4878,"timestamp":4078082826096,"id":1808,"parentId":1807,"tags":{},"startTime":1711860130601,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4907,"timestamp":4078082826070,"id":1807,"parentId":1806,"tags":{},"startTime":1711860130601,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5405,"timestamp":4078082825944,"id":1806,"parentId":1686,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/server/future/helpers/interception-routes.js","layer":"app-pages-browser"},"startTime":1711860130601,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4753,"timestamp":4078082828610,"id":1821,"parentId":1820,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4764,"timestamp":4078082828601,"id":1820,"parentId":1811,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6327,"timestamp":4078082828082,"id":1811,"parentId":1743,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js","layer":"app-pages-browser"},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5815,"timestamp":4078082828619,"id":1823,"parentId":1822,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5824,"timestamp":4078082828610,"id":1822,"parentId":1812,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7738,"timestamp":4078082828103,"id":1812,"parentId":1743,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js","layer":"app-pages-browser"},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7297,"timestamp":4078082828600,"id":1819,"parentId":1818,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7311,"timestamp":4078082828587,"id":1818,"parentId":1810,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9084,"timestamp":4078082828057,"id":1810,"parentId":1743,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js","layer":"app-pages-browser"},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8531,"timestamp":4078082828627,"id":1825,"parentId":1824,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8540,"timestamp":4078082828619,"id":1824,"parentId":1813,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9674,"timestamp":4078082828124,"id":1813,"parentId":1743,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js","layer":"app-pages-browser"},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9181,"timestamp":4078082828636,"id":1827,"parentId":1826,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9190,"timestamp":4078082828628,"id":1826,"parentId":1814,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9686,"timestamp":4078082828491,"id":1814,"parentId":1743,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js","layer":"app-pages-browser"},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9730,"timestamp":4078082828586,"id":1817,"parentId":1816,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9753,"timestamp":4078082828564,"id":1816,"parentId":1809,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11173,"timestamp":4078082828023,"id":1809,"parentId":1508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js","layer":"app-pages-browser"},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":351050,"timestamp":4078082492843,"id":1499,"parentId":1495,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&server=false!"},"startTime":1711860130268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17068,"timestamp":4078082828644,"id":1829,"parentId":1828,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17078,"timestamp":4078082828636,"id":1828,"parentId":1815,"tags":{},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17740,"timestamp":4078082828521,"id":1815,"parentId":1743,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/fast-refresh-reducer.js","layer":"app-pages-browser"},"startTime":1711860130603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13077,"timestamp":4078082833220,"id":1833,"parentId":1832,"tags":{},"startTime":1711860130608,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13102,"timestamp":4078082833196,"id":1832,"parentId":1830,"tags":{},"startTime":1711860130608,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14234,"timestamp":4078082832805,"id":1830,"parentId":1743,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js","layer":"app-pages-browser"},"startTime":1711860130608,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13816,"timestamp":4078082833237,"id":1835,"parentId":1834,"tags":{},"startTime":1711860130608,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13833,"timestamp":4078082833221,"id":1834,"parentId":1831,"tags":{},"startTime":1711860130608,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14488,"timestamp":4078082832847,"id":1831,"parentId":1749,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/async-local-storage.js","layer":"shared"},"startTime":1711860130608,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3752,"timestamp":4078082844012,"id":1844,"parentId":1843,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3777,"timestamp":4078082843988,"id":1843,"parentId":1836,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4479,"timestamp":4078082843465,"id":1836,"parentId":1783,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js","layer":"app-pages-browser"},"startTime":1711860130618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3925,"timestamp":4078082844034,"id":1848,"parentId":1847,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3935,"timestamp":4078082844025,"id":1847,"parentId":1838,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4435,"timestamp":4078082843748,"id":1838,"parentId":1518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@swc/helpers/esm/_interop_require_wildcard.js","layer":"app-pages-browser"},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4170,"timestamp":4078082844024,"id":1846,"parentId":1845,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4181,"timestamp":4078082844013,"id":1845,"parentId":1837,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4541,"timestamp":4078082843726,"id":1837,"parentId":1517,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@swc/helpers/esm/_interop_require_default.js","layer":"app-pages-browser"},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5804,"timestamp":4078082844051,"id":1852,"parentId":1851,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5813,"timestamp":4078082844043,"id":1851,"parentId":1840,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":6597,"timestamp":4078082843834,"id":1840,"parentId":1775,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-server-dom-webpack/client.browser.js","layer":"app-pages-browser"},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7112,"timestamp":4078082844069,"id":1856,"parentId":1855,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7125,"timestamp":4078082844059,"id":1855,"parentId":1842,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7764,"timestamp":4078082843867,"id":1842,"parentId":1783,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js","layer":"app-pages-browser"},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7652,"timestamp":4078082844042,"id":1850,"parentId":1849,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7661,"timestamp":4078082844034,"id":1849,"parentId":1839,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9118,"timestamp":4078082843813,"id":1839,"parentId":1748,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js","layer":"app-pages-browser"},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":360278,"timestamp":4078082492699,"id":1496,"parentId":1495,"tags":{"request":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1711860130267,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4343,"timestamp":4078082849376,"id":1860,"parentId":1859,"tags":{},"startTime":1711860130624,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4367,"timestamp":4078082849355,"id":1859,"parentId":1857,"tags":{},"startTime":1711860130624,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4885,"timestamp":4078082849240,"id":1857,"parentId":1785,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getErrorByType.js","layer":"app-pages-browser"},"startTime":1711860130624,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5115,"timestamp":4078082849388,"id":1862,"parentId":1861,"tags":{},"startTime":1711860130624,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5128,"timestamp":4078082849378,"id":1861,"parentId":1858,"tags":{},"startTime":1711860130624,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5660,"timestamp":4078082849278,"id":1858,"parentId":1785,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/nodeStackFrames.js","layer":"app-pages-browser"},"startTime":1711860130624,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2386,"timestamp":4078082853293,"id":1870,"parentId":1869,"tags":{},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2400,"timestamp":4078082853281,"id":1869,"parentId":1864,"tags":{},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2951,"timestamp":4078082853133,"id":1864,"parentId":1787,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js","layer":"app-pages-browser"},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2827,"timestamp":4078082853279,"id":1868,"parentId":1867,"tags":{},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2859,"timestamp":4078082853247,"id":1867,"parentId":1863,"tags":{},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3318,"timestamp":4078082853071,"id":1863,"parentId":1787,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js","layer":"app-pages-browser"},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4313,"timestamp":4078082853303,"id":1872,"parentId":1871,"tags":{},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4324,"timestamp":4078082853293,"id":1871,"parentId":1865,"tags":{},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4747,"timestamp":4078082853160,"id":1865,"parentId":1787,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js","layer":"app-pages-browser"},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4710,"timestamp":4078082853312,"id":1874,"parentId":1873,"tags":{},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4720,"timestamp":4078082853303,"id":1873,"parentId":1866,"tags":{},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5113,"timestamp":4078082853183,"id":1866,"parentId":1787,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js","layer":"app-pages-browser"},"startTime":1711860130628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6404,"timestamp":4078082855357,"id":1880,"parentId":1879,"tags":{},"startTime":1711860130630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6419,"timestamp":4078082855347,"id":1879,"parentId":1876,"tags":{},"startTime":1711860130630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6932,"timestamp":4078082855263,"id":1876,"parentId":1785,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js","layer":"app-pages-browser"},"startTime":1711860130630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6933,"timestamp":4078082855346,"id":1878,"parentId":1877,"tags":{},"startTime":1711860130630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6957,"timestamp":4078082855324,"id":1877,"parentId":1875,"tags":{},"startTime":1711860130630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7318,"timestamp":4078082855223,"id":1875,"parentId":1718,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/dev/noop-turbopack-hmr.js","layer":"app-pages-browser"},"startTime":1711860130630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2706,"timestamp":4078082860210,"id":1883,"parentId":1882,"tags":{},"startTime":1711860130635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2732,"timestamp":4078082860185,"id":1882,"parentId":1881,"tags":{},"startTime":1711860130635,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3177,"timestamp":4078082860046,"id":1881,"parentId":1806,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router/utils/app-paths.js","layer":"app-pages-browser"},"startTime":1711860130635,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1574,"timestamp":4078082863755,"id":1902,"parentId":1901,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1586,"timestamp":4078082863746,"id":1901,"parentId":1886,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2254,"timestamp":4078082863471,"id":1886,"parentId":1811,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2160,"timestamp":4078082863746,"id":1900,"parentId":1899,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2172,"timestamp":4078082863735,"id":1899,"parentId":1885,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3012,"timestamp":4078082863448,"id":1885,"parentId":1811,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2748,"timestamp":4078082863734,"id":1898,"parentId":1897,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2770,"timestamp":4078082863713,"id":1897,"parentId":1884,"tags":{},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3535,"timestamp":4078082863408,"id":1884,"parentId":1814,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/promise-queue.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4077,"timestamp":4078082863764,"id":1904,"parentId":1903,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4087,"timestamp":4078082863756,"id":1903,"parentId":1887,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5196,"timestamp":4078082863492,"id":1887,"parentId":1811,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/apply-flight-data.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4989,"timestamp":4078082863780,"id":1908,"parentId":1907,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5001,"timestamp":4078082863773,"id":1907,"parentId":1889,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6035,"timestamp":4078082863530,"id":1889,"parentId":1811,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5818,"timestamp":4078082863772,"id":1906,"parentId":1905,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5826,"timestamp":4078082863764,"id":1905,"parentId":1888,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6478,"timestamp":4078082863511,"id":1888,"parentId":1811,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/handle-mutable.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6217,"timestamp":4078082863789,"id":1910,"parentId":1909,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6226,"timestamp":4078082863781,"id":1909,"parentId":1890,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6798,"timestamp":4078082863549,"id":1890,"parentId":1810,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6553,"timestamp":4078082863806,"id":1914,"parentId":1913,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6562,"timestamp":4078082863798,"id":1913,"parentId":1892,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7028,"timestamp":4078082863585,"id":1892,"parentId":1810,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6831,"timestamp":4078082863797,"id":1912,"parentId":1911,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6840,"timestamp":4078082863789,"id":1911,"parentId":1891,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7374,"timestamp":4078082863567,"id":1891,"parentId":1810,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/fill-cache-with-data-property.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7695,"timestamp":4078082863814,"id":1916,"parentId":1915,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7704,"timestamp":4078082863806,"id":1915,"parentId":1893,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8228,"timestamp":4078082863603,"id":1893,"parentId":1810,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/get-prefetch-cache-entry-status.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8005,"timestamp":4078082863839,"id":1922,"parentId":1921,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8013,"timestamp":4078082863831,"id":1921,"parentId":1896,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8444,"timestamp":4078082863659,"id":1896,"parentId":1810,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/create-prefetch-cache-key.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8613,"timestamp":4078082863831,"id":1920,"parentId":1919,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8622,"timestamp":4078082863823,"id":1919,"parentId":1895,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9049,"timestamp":4078082863638,"id":1895,"parentId":1810,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/reducers/prune-prefetch-cache.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5504,"timestamp":4078082867248,"id":1928,"parentId":1927,"tags":{},"startTime":1711860130642,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5525,"timestamp":4078082867228,"id":1927,"parentId":1926,"tags":{},"startTime":1711860130642,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6177,"timestamp":4078082867176,"id":1926,"parentId":1857,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js","layer":"app-pages-browser"},"startTime":1711860130642,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9661,"timestamp":4078082863823,"id":1918,"parentId":1917,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9670,"timestamp":4078082863815,"id":1917,"parentId":1894,"tags":{},"startTime":1711860130639,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12967,"timestamp":4078082863621,"id":1894,"parentId":1810,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js","layer":"app-pages-browser"},"startTime":1711860130638,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1266,"timestamp":4078082877274,"id":1932,"parentId":1931,"tags":{},"startTime":1711860130652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1313,"timestamp":4078082877243,"id":1931,"parentId":1929,"tags":{},"startTime":1711860130652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1836,"timestamp":4078082877111,"id":1929,"parentId":1884,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js","layer":"app-pages-browser"},"startTime":1711860130652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2314,"timestamp":4078082877287,"id":1934,"parentId":1933,"tags":{},"startTime":1711860130652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2328,"timestamp":4078082877275,"id":1933,"parentId":1930,"tags":{},"startTime":1711860130652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2552,"timestamp":4078082877172,"id":1930,"parentId":1884,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js","layer":"app-pages-browser"},"startTime":1711860130652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14063,"timestamp":4078082865861,"id":1925,"parentId":1924,"tags":{},"startTime":1711860130641,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14090,"timestamp":4078082865836,"id":1924,"parentId":1923,"tags":{},"startTime":1711860130641,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17319,"timestamp":4078082865776,"id":1923,"parentId":1840,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js","layer":"app-pages-browser"},"startTime":1711860130641,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5193,"timestamp":4078082877920,"id":1940,"parentId":1939,"tags":{},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5204,"timestamp":4078082877909,"id":1939,"parentId":1936,"tags":{},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5526,"timestamp":4078082877854,"id":1936,"parentId":1783,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js","layer":"app-pages-browser"},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5840,"timestamp":4078082877909,"id":1938,"parentId":1937,"tags":{},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5860,"timestamp":4078082877889,"id":1937,"parentId":1935,"tags":{},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6171,"timestamp":4078082877818,"id":1935,"parentId":1783,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js","layer":"app-pages-browser"},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5666,"timestamp":4078082878336,"id":1943,"parentId":1942,"tags":{},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5691,"timestamp":4078082878312,"id":1942,"parentId":1941,"tags":{},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6202,"timestamp":4078082878044,"id":1941,"parentId":1785,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js","layer":"app-pages-browser"},"startTime":1711860130653,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1224,"timestamp":4078082884673,"id":1951,"parentId":1950,"tags":{},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1240,"timestamp":4078082884662,"id":1950,"parentId":1945,"tags":{},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1806,"timestamp":4078082884537,"id":1945,"parentId":1783,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js","layer":"app-pages-browser"},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1678,"timestamp":4078082884682,"id":1953,"parentId":1952,"tags":{},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1688,"timestamp":4078082884673,"id":1952,"parentId":1946,"tags":{},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2076,"timestamp":4078082884560,"id":1946,"parentId":1787,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js","layer":"app-pages-browser"},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":2182,"timestamp":4078082884661,"id":1949,"parentId":1948,"tags":{},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2204,"timestamp":4078082884640,"id":1948,"parentId":1944,"tags":{},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2636,"timestamp":4078082884494,"id":1944,"parentId":1783,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js","layer":"app-pages-browser"},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3312,"timestamp":4078082884691,"id":1955,"parentId":1954,"tags":{},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3322,"timestamp":4078082884683,"id":1954,"parentId":1947,"tags":{},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4086,"timestamp":4078082884580,"id":1947,"parentId":1787,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js","layer":"app-pages-browser"},"startTime":1711860130659,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4262,"timestamp":4078082887640,"id":1961,"parentId":1960,"tags":{},"startTime":1711860130662,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4277,"timestamp":4078082887627,"id":1960,"parentId":1957,"tags":{},"startTime":1711860130662,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4801,"timestamp":4078082887508,"id":1957,"parentId":1785,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js","layer":"app-pages-browser"},"startTime":1711860130662,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4701,"timestamp":4078082887626,"id":1959,"parentId":1958,"tags":{},"startTime":1711860130662,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4731,"timestamp":4078082887596,"id":1958,"parentId":1956,"tags":{},"startTime":1711860130662,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5277,"timestamp":4078082887441,"id":1956,"parentId":1887,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js","layer":"app-pages-browser"},"startTime":1711860130662,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2689,"timestamp":4078082890379,"id":1964,"parentId":1963,"tags":{},"startTime":1711860130665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2712,"timestamp":4078082890357,"id":1963,"parentId":1962,"tags":{},"startTime":1711860130665,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2997,"timestamp":4078082890265,"id":1962,"parentId":1881,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","layer":"app-pages-browser"},"startTime":1711860130665,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1110,"timestamp":4078082894989,"id":1969,"parentId":1968,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1136,"timestamp":4078082894965,"id":1968,"parentId":1965,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1648,"timestamp":4078082894851,"id":1965,"parentId":1936,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3220,"timestamp":4078082895010,"id":1973,"parentId":1972,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3233,"timestamp":4078082895002,"id":1972,"parentId":1967,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4172,"timestamp":4078082894922,"id":1967,"parentId":1941,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4130,"timestamp":4078082895001,"id":1971,"parentId":1970,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4142,"timestamp":4078082894990,"id":1970,"parentId":1966,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4812,"timestamp":4078082894898,"id":1966,"parentId":1935,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4065,"timestamp":4078082895659,"id":1981,"parentId":1980,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4082,"timestamp":4078082895643,"id":1980,"parentId":1974,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4525,"timestamp":4078082895493,"id":1974,"parentId":1945,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4352,"timestamp":4078082895679,"id":1985,"parentId":1984,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4361,"timestamp":4078082895670,"id":1984,"parentId":1976,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4758,"timestamp":4078082895545,"id":1976,"parentId":1946,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4654,"timestamp":4078082895670,"id":1983,"parentId":1982,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4664,"timestamp":4078082895660,"id":1982,"parentId":1975,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5148,"timestamp":4078082895520,"id":1975,"parentId":1945,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4991,"timestamp":4078082895688,"id":1987,"parentId":1986,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5000,"timestamp":4078082895680,"id":1986,"parentId":1977,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5368,"timestamp":4078082895565,"id":1977,"parentId":1944,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5239,"timestamp":4078082895705,"id":1991,"parentId":1990,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5248,"timestamp":4078082895697,"id":1990,"parentId":1979,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5578,"timestamp":4078082895602,"id":1979,"parentId":1946,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5247,"timestamp":4078082895948,"id":2000,"parentId":1999,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5258,"timestamp":4078082895938,"id":1999,"parentId":1992,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5644,"timestamp":4078082895801,"id":1992,"parentId":1944,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js","layer":"app-pages-browser"},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5767,"timestamp":4078082895697,"id":1989,"parentId":1988,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5776,"timestamp":4078082895689,"id":1988,"parentId":1978,"tags":{},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6248,"timestamp":4078082895584,"id":1978,"parentId":1944,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js","layer":"app-pages-browser"},"startTime":1711860130670,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13550,"timestamp":4078082895965,"id":2004,"parentId":2003,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13563,"timestamp":4078082895957,"id":2003,"parentId":1994,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14148,"timestamp":4078082895840,"id":1994,"parentId":1944,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js","layer":"app-pages-browser"},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14032,"timestamp":4078082895974,"id":2006,"parentId":2005,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14041,"timestamp":4078082895966,"id":2005,"parentId":1995,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14566,"timestamp":4078082895857,"id":1995,"parentId":1947,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/group-stack-frames-by-framework.js","layer":"app-pages-browser"},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14480,"timestamp":4078082895957,"id":2002,"parentId":2001,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14490,"timestamp":4078082895949,"id":2001,"parentId":1993,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14891,"timestamp":4078082895821,"id":1993,"parentId":1944,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js","layer":"app-pages-browser"},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14753,"timestamp":4078082895982,"id":2008,"parentId":2007,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14762,"timestamp":4078082895974,"id":2007,"parentId":1996,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15210,"timestamp":4078082895875,"id":1996,"parentId":1947,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js","layer":"app-pages-browser"},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15181,"timestamp":4078082895990,"id":2010,"parentId":2009,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15190,"timestamp":4078082895982,"id":2009,"parentId":1997,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15630,"timestamp":4078082895902,"id":1997,"parentId":1947,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/GroupedStackFrames.js","layer":"app-pages-browser"},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15554,"timestamp":4078082895998,"id":2012,"parentId":2011,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15563,"timestamp":4078082895991,"id":2011,"parentId":1998,"tags":{},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16053,"timestamp":4078082895919,"id":1998,"parentId":1947,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/ComponentStackFrameRow.js","layer":"app-pages-browser"},"startTime":1711860130671,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8091,"timestamp":4078082903945,"id":2016,"parentId":2015,"tags":{},"startTime":1711860130679,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8121,"timestamp":4078082903917,"id":2015,"parentId":2013,"tags":{},"startTime":1711860130679,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8731,"timestamp":4078082903579,"id":2013,"parentId":1956,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js","layer":"app-pages-browser"},"startTime":1711860130678,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8363,"timestamp":4078082903960,"id":2018,"parentId":2017,"tags":{},"startTime":1711860130679,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8376,"timestamp":4078082903947,"id":2017,"parentId":2014,"tags":{},"startTime":1711860130679,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8947,"timestamp":4078082903637,"id":2014,"parentId":1957,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/get-words-and-whitespaces.js","layer":"app-pages-browser"},"startTime":1711860130678,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1556,"timestamp":4078082916339,"id":2028,"parentId":2027,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1595,"timestamp":4078082916329,"id":2027,"parentId":2023,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2106,"timestamp":4078082916257,"id":2023,"parentId":1966,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js","layer":"app-pages-browser"},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2404,"timestamp":4078082916348,"id":2030,"parentId":2029,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2414,"timestamp":4078082916340,"id":2029,"parentId":2024,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2809,"timestamp":4078082916280,"id":2024,"parentId":1965,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js","layer":"app-pages-browser"},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3621,"timestamp":4078082915623,"id":2021,"parentId":2020,"tags":{},"startTime":1711860130690,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3654,"timestamp":4078082915591,"id":2020,"parentId":2019,"tags":{},"startTime":1711860130690,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4656,"timestamp":4078082915525,"id":2019,"parentId":1966,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/anser/index.js","layer":"app-pages-browser"},"startTime":1711860130690,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3660,"timestamp":4078082916665,"id":2036,"parentId":2035,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3689,"timestamp":4078082916636,"id":2035,"parentId":2034,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4263,"timestamp":4078082916576,"id":2034,"parentId":1997,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/FrameworkIcon.js","layer":"app-pages-browser"},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4439,"timestamp":4078082916529,"id":2033,"parentId":2032,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4452,"timestamp":4078082916517,"id":2032,"parentId":2031,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4825,"timestamp":4078082916490,"id":2031,"parentId":1996,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js","layer":"app-pages-browser"},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1324,"timestamp":4078082920273,"id":2039,"parentId":2038,"tags":{},"startTime":1711860130695,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1349,"timestamp":4078082920250,"id":2038,"parentId":2037,"tags":{},"startTime":1711860130695,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1696,"timestamp":4078082920203,"id":2037,"parentId":1978,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js","layer":"app-pages-browser"},"startTime":1711860130695,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1698,"timestamp":4078082922409,"id":2042,"parentId":2041,"tags":{},"startTime":1711860130697,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1787,"timestamp":4078082922332,"id":2041,"parentId":2040,"tags":{},"startTime":1711860130697,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3014,"timestamp":4078082921983,"id":2040,"parentId":1947,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js","layer":"app-pages-browser"},"startTime":1711860130697,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1662,"timestamp":4078082926107,"id":2045,"parentId":2044,"tags":{},"startTime":1711860130701,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1688,"timestamp":4078082926084,"id":2044,"parentId":2043,"tags":{},"startTime":1711860130701,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2328,"timestamp":4078082926041,"id":2043,"parentId":2040,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js","layer":"app-pages-browser"},"startTime":1711860130701,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16016,"timestamp":4078082916328,"id":2026,"parentId":2025,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16040,"timestamp":4078082916309,"id":2025,"parentId":2022,"tags":{},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":24088,"timestamp":4078082916222,"id":2022,"parentId":1965,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js","layer":"app-pages-browser"},"startTime":1711860130691,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3277,"timestamp":4078082941773,"id":2051,"parentId":2050,"tags":{},"startTime":1711860130717,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3306,"timestamp":4078082941762,"id":2050,"parentId":2047,"tags":{},"startTime":1711860130717,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4032,"timestamp":4078082941702,"id":2047,"parentId":2022,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/css.escape/css.escape.js","layer":"app-pages-browser"},"startTime":1711860130716,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7811,"timestamp":4078082941760,"id":2049,"parentId":2048,"tags":{},"startTime":1711860130717,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7848,"timestamp":4078082941728,"id":2048,"parentId":2046,"tags":{},"startTime":1711860130717,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":12819,"timestamp":4078082941636,"id":2046,"parentId":2022,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/platform/platform.js","layer":"app-pages-browser"},"startTime":1711860130716,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":169610,"timestamp":4078082844059,"id":1854,"parentId":1853,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":169630,"timestamp":4078082844051,"id":1853,"parentId":1841,"tags":{},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":299585,"timestamp":4078082843851,"id":1841,"parentId":1803,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js","layer":"app-pages-browser"},"startTime":1711860130619,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2577,"timestamp":4078083156053,"id":2054,"parentId":2053,"tags":{},"startTime":1711860130931,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2627,"timestamp":4078083156012,"id":2053,"parentId":2052,"tags":{},"startTime":1711860130931,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2963,"timestamp":4078083155929,"id":2052,"parentId":1841,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/scheduler/index.js","layer":"app-pages-browser"},"startTime":1711860130931,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6612,"timestamp":4078083161094,"id":2057,"parentId":2056,"tags":{},"startTime":1711860130936,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6650,"timestamp":4078083161062,"id":2056,"parentId":2055,"tags":{},"startTime":1711860130936,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8321,"timestamp":4078083161000,"id":2055,"parentId":2052,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js","layer":"app-pages-browser"},"startTime":1711860130936,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":676535,"timestamp":4078082492858,"id":1500,"parentId":1495,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=false!"},"startTime":1711860130268,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":676657,"timestamp":4078082492741,"id":1497,"parentId":1495,"tags":{"request":"./../../node_modules/next/dist/client/app-next-dev.js"},"startTime":1711860130268,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":679779,"timestamp":4078082489638,"id":1495,"parentId":1494,"tags":{},"startTime":1711860130264,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":2125,"timestamp":4078083172026,"id":2059,"parentId":2058,"tags":{},"startTime":1711860130947,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":3,"timestamp":4078083174169,"id":2061,"parentId":2058,"tags":{},"startTime":1711860130949,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":47,"timestamp":4078083174182,"id":2062,"parentId":2058,"tags":{},"startTime":1711860130949,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":3,"timestamp":4078083174240,"id":2063,"parentId":2058,"tags":{},"startTime":1711860130949,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":3,"timestamp":4078083174255,"id":2064,"parentId":2058,"tags":{},"startTime":1711860130949,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":617,"timestamp":4078083174162,"id":2060,"parentId":2058,"tags":{},"startTime":1711860130949,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":3239,"timestamp":4078083176184,"id":2065,"parentId":2058,"tags":{},"startTime":1711860130951,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":4123,"timestamp":4078083179448,"id":2066,"parentId":2058,"tags":{},"startTime":1711860130954,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":6522,"timestamp":4078083188545,"id":2067,"parentId":2058,"tags":{},"startTime":1711860130963,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":304,"timestamp":4078083195066,"id":2068,"parentId":2058,"tags":{},"startTime":1711860130970,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":396,"timestamp":4078083195353,"id":2069,"parentId":2058,"tags":{},"startTime":1711860130970,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":136839,"timestamp":4078083195765,"id":2070,"parentId":2058,"tags":{},"startTime":1711860130971,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-generateClientManifest","duration":58,"timestamp":4078083333339,"id":2072,"parentId":1494,"tags":{},"startTime":1711860131108,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-createassets","duration":261,"timestamp":4078083333139,"id":2071,"parentId":1494,"tags":{},"startTime":1711860131108,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":163485,"timestamp":4078083171473,"id":2058,"parentId":1494,"tags":{},"startTime":1711860130946,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":845655,"timestamp":4078082489331,"id":1494,"parentId":1122,"tags":{"name":"client"},"startTime":1711860130264,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":35443,"timestamp":4078083335001,"id":2073,"parentId":1122,"tags":{},"startTime":1711860131110,"traceId":"a43e3bb0d33d2683"},{"name":"compile-path","duration":3951667,"timestamp":4078079419408,"id":121,"tags":{"trigger":"/not-found","isTurbopack":false},"startTime":1711860127194,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-client","duration":1297871,"timestamp":4078082073500,"id":1122,"parentId":3,"tags":{"trigger":"manual"},"startTime":1711860129848,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"add-entry","duration":100077,"timestamp":4078083569868,"id":2079,"parentId":2076,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1711860131345,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":107450,"timestamp":4078083569781,"id":2077,"parentId":2076,"tags":{"request":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1711860131345,"traceId":"a43e3bb0d33d2683"},{"name":"handle-request","duration":4279160,"timestamp":4078079407808,"id":115,"tags":{"url":"/_next/static/chunks/webpack.js?v=1711835587973","isTurbopack":false},"startTime":1711860127183,"traceId":"a43e3bb0d33d2683"},{"name":"memory-usage","duration":0,"timestamp":4078083687015,"id":2085,"parentId":115,"tags":{"url":"/_next/static/chunks/webpack.js?v=1711835587973","memory.rss":"629915648","memory.heapUsed":"360614504","memory.heapTotal":"410681344"},"startTime":1711860131462,"traceId":"a43e3bb0d33d2683"},{"name":"handle-request","duration":4279147,"timestamp":4078079412247,"id":116,"tags":{"url":"/_next/static/css/app/layout.css?v=1711835587973","isTurbopack":false},"startTime":1711860127187,"traceId":"a43e3bb0d33d2683"},{"name":"memory-usage","duration":0,"timestamp":4078083691412,"id":2086,"parentId":116,"tags":{"url":"/_next/static/css/app/layout.css?v=1711835587973","memory.rss":"630423552","memory.heapUsed":"351609768","memory.heapTotal":"410681344"},"startTime":1711860131466,"traceId":"a43e3bb0d33d2683"},{"name":"handle-request","duration":4280972,"timestamp":4078079414128,"id":119,"tags":{"url":"/_next/static/chunks/app-pages-internals.js","isTurbopack":false},"startTime":1711860127189,"traceId":"a43e3bb0d33d2683"},{"name":"memory-usage","duration":0,"timestamp":4078083695125,"id":2087,"parentId":119,"tags":{"url":"/_next/static/chunks/app-pages-internals.js","memory.rss":"630554624","memory.heapUsed":"352361336","memory.heapTotal":"410681344"},"startTime":1711860131470,"traceId":"a43e3bb0d33d2683"},{"name":"handle-request","duration":4282358,"timestamp":4078079413590,"id":118,"tags":{"url":"/_next/static/chunks/app/page.js","isTurbopack":false},"startTime":1711860127188,"traceId":"a43e3bb0d33d2683"},{"name":"memory-usage","duration":0,"timestamp":4078083695964,"id":2088,"parentId":118,"tags":{"url":"/_next/static/chunks/app/page.js","memory.rss":"630554624","memory.heapUsed":"352422512","memory.heapTotal":"410681344"},"startTime":1711860131471,"traceId":"a43e3bb0d33d2683"},{"name":"handle-request","duration":4283337,"timestamp":4078079412960,"id":117,"tags":{"url":"/_next/static/chunks/main-app.js?v=1711835587973","isTurbopack":false},"startTime":1711860127188,"traceId":"a43e3bb0d33d2683"},{"name":"memory-usage","duration":0,"timestamp":4078083696307,"id":2089,"parentId":117,"tags":{"url":"/_next/static/chunks/main-app.js?v=1711835587973","memory.rss":"630554624","memory.heapUsed":"352482832","memory.heapTotal":"410681344"},"startTime":1711860131471,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":127790,"timestamp":4078083569956,"id":2081,"parentId":2076,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=false!"},"startTime":1711860131345,"traceId":"a43e3bb0d33d2683"},{"name":"read-resource","duration":19388,"timestamp":4078083678373,"id":2084,"parentId":2083,"tags":{},"startTime":1711860131453,"traceId":"a43e3bb0d33d2683"},{"name":"postcss-process","duration":39914,"timestamp":4078083697804,"id":2091,"parentId":2090,"tags":{},"startTime":1711860131473,"traceId":"a43e3bb0d33d2683"},{"name":"postcss-loader","duration":40835,"timestamp":4078083697783,"id":2090,"parentId":2083,"tags":{},"startTime":1711860131473,"traceId":"a43e3bb0d33d2683"},{"name":"css-loader","duration":24855,"timestamp":4078083738657,"id":2092,"parentId":2083,"tags":{"astUsed":"true"},"startTime":1711860131513,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css","duration":89402,"timestamp":4078083678298,"id":2083,"parentId":2082,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css.webpack[javascript/auto]!=!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[11].oneOf[12].use[2]!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[11].oneOf[12].use[3]!/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css","layer":null},"startTime":1711860131453,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":204498,"timestamp":4078083569858,"id":2078,"parentId":2076,"tags":{"request":"./../../node_modules/next/dist/client/app-next-dev.js"},"startTime":1711860131345,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css","duration":111881,"timestamp":4078083670337,"id":2082,"parentId":2075,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css","layer":"app-pages-browser"},"startTime":1711860131445,"traceId":"a43e3bb0d33d2683"},{"name":"build-module","duration":90,"timestamp":4078083786044,"id":2094,"parentId":2082,"tags":{},"startTime":1711860131561,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":217310,"timestamp":4078083569947,"id":2080,"parentId":2076,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&server=false!"},"startTime":1711860131345,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":218198,"timestamp":4078083569086,"id":2076,"parentId":2075,"tags":{},"startTime":1711860131344,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":1119,"timestamp":4078083788999,"id":2096,"parentId":2095,"tags":{},"startTime":1711860131564,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":5,"timestamp":4078083790136,"id":2098,"parentId":2095,"tags":{},"startTime":1711860131565,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":32,"timestamp":4078083790151,"id":2099,"parentId":2095,"tags":{},"startTime":1711860131565,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":4,"timestamp":4078083790196,"id":2100,"parentId":2095,"tags":{},"startTime":1711860131565,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":3,"timestamp":4078083790216,"id":2101,"parentId":2095,"tags":{},"startTime":1711860131565,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":401,"timestamp":4078083790129,"id":2097,"parentId":2095,"tags":{},"startTime":1711860131565,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":273,"timestamp":4078083791224,"id":2102,"parentId":2095,"tags":{},"startTime":1711860131566,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":686,"timestamp":4078083791505,"id":2103,"parentId":2095,"tags":{},"startTime":1711860131566,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":7556,"timestamp":4078083800450,"id":2104,"parentId":2095,"tags":{},"startTime":1711860131575,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":281,"timestamp":4078083808004,"id":2105,"parentId":2095,"tags":{},"startTime":1711860131583,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":273,"timestamp":4078083808264,"id":2106,"parentId":2095,"tags":{},"startTime":1711860131583,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":3456,"timestamp":4078083808548,"id":2107,"parentId":2095,"tags":{},"startTime":1711860131583,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-generateClientManifest","duration":193,"timestamp":4078083813477,"id":2109,"parentId":2075,"tags":{},"startTime":1711860131588,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-createassets","duration":287,"timestamp":4078083813405,"id":2108,"parentId":2075,"tags":{},"startTime":1711860131588,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":27406,"timestamp":4078083788409,"id":2095,"parentId":2075,"tags":{},"startTime":1711860131563,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":250078,"timestamp":4078083565927,"id":2075,"parentId":2074,"tags":{"name":"client"},"startTime":1711860131341,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":9193,"timestamp":4078083816051,"id":2110,"parentId":2074,"tags":{},"startTime":1711860131591,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-client","duration":263530,"timestamp":4078083562381,"id":2074,"parentId":3,"tags":{"trigger":"manual"},"startTime":1711860131337,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"handle-request","duration":340873,"timestamp":4078083770386,"id":2093,"tags":{"url":"/_next/image?url=%2Flogo.png&w=256&q=75","isTurbopack":false},"startTime":1711860131545,"traceId":"a43e3bb0d33d2683"},{"name":"memory-usage","duration":2,"timestamp":4078084111359,"id":2111,"parentId":2093,"tags":{"url":"/_next/image?url=%2Flogo.png&w=256&q=75","memory.rss":"618872832","memory.heapUsed":"372011712","memory.heapTotal":"411467776"},"startTime":1711860131886,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/page\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIQ==\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!","duration":3205,"timestamp":4078087102264,"id":2119,"parentId":2118,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/page\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIQ==\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!","layer":"ssr"},"startTime":1711860134877,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":27613,"timestamp":4078087077964,"id":2117,"parentId":2116,"tags":{"request":"next-edge-ssr-loader?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/not-found\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGbm90LWZvdW5kJnBhZ2U9JTJGbm90LWZvdW5kJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRm5vdC1mb3VuZC50c3gmYXBwRGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWIlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWImaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0Qh\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!"},"startTime":1711860134853,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6187,"timestamp":4078087108787,"id":2122,"parentId":2121,"tags":{},"startTime":1711860134884,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6319,"timestamp":4078087108665,"id":2121,"parentId":2120,"tags":{},"startTime":1711860134883,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx?__next_edge_ssr_entry__","duration":16569,"timestamp":4078087108599,"id":2120,"parentId":2119,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx?__next_edge_ssr_entry__","layer":"rsc"},"startTime":1711860134883,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2519,"timestamp":4078087129866,"id":2125,"parentId":2124,"tags":{},"startTime":1711860134905,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2565,"timestamp":4078087129830,"id":2124,"parentId":2123,"tags":{},"startTime":1711860134905,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":4442,"timestamp":4078087129749,"id":2123,"parentId":2120,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx","layer":"rsc"},"startTime":1711860134905,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3215,"timestamp":4078087151457,"id":2128,"parentId":2127,"tags":{},"startTime":1711860134926,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3260,"timestamp":4078087151418,"id":2127,"parentId":2126,"tags":{},"startTime":1711860134926,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":3749,"timestamp":4078087151331,"id":2126,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx","layer":"rsc"},"startTime":1711860134926,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4529,"timestamp":4078087155920,"id":2131,"parentId":2130,"tags":{},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4574,"timestamp":4078087155894,"id":2130,"parentId":2129,"tags":{},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":5253,"timestamp":4078087155828,"id":2129,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx","layer":"rsc"},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5158,"timestamp":4078087156279,"id":2134,"parentId":2133,"tags":{},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5179,"timestamp":4078087156262,"id":2133,"parentId":2132,"tags":{},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":5731,"timestamp":4078087156215,"id":2132,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx","layer":"rsc"},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5912,"timestamp":4078087156349,"id":2137,"parentId":2136,"tags":{},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5927,"timestamp":4078087156336,"id":2136,"parentId":2135,"tags":{},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-ts","duration":6534,"timestamp":4078087156310,"id":2135,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/server/db/schema.ts","layer":"rsc"},"startTime":1711860134931,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2996,"timestamp":4078087160011,"id":2140,"parentId":2139,"tags":{},"startTime":1711860134935,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3029,"timestamp":4078087159980,"id":2139,"parentId":2138,"tags":{},"startTime":1711860134935,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-ts","duration":3199,"timestamp":4078087159911,"id":2138,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/server/db/index.ts","layer":"rsc"},"startTime":1711860134935,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1140,"timestamp":4078087166209,"id":2145,"parentId":2144,"tags":{},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1184,"timestamp":4078087166173,"id":2144,"parentId":2141,"tags":{},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1518,"timestamp":4078087166041,"id":2141,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/api/navigation.js","layer":"rsc"},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1339,"timestamp":4078087166237,"id":2149,"parentId":2148,"tags":{},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1350,"timestamp":4078087166227,"id":2148,"parentId":2143,"tags":{},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1526,"timestamp":4078087166146,"id":2143,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/api/image.js","layer":"rsc"},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1456,"timestamp":4078087166225,"id":2147,"parentId":2146,"tags":{},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1469,"timestamp":4078087166212,"id":2146,"parentId":2142,"tags":{},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1625,"timestamp":4078087166114,"id":2142,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/api/headers.js","layer":"rsc"},"startTime":1711860134941,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":946,"timestamp":4078087170448,"id":2156,"parentId":2155,"tags":{},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":962,"timestamp":4078087170437,"id":2155,"parentId":2151,"tags":{},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1252,"timestamp":4078087170360,"id":2151,"parentId":2138,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/d1/index.js","layer":"rsc"},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1854,"timestamp":4078087170459,"id":2158,"parentId":2157,"tags":{},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1867,"timestamp":4078087170450,"id":2157,"parentId":2152,"tags":{},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2137,"timestamp":4078087170383,"id":2152,"parentId":2123,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/index.js","layer":"rsc"},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2102,"timestamp":4078087170435,"id":2154,"parentId":2153,"tags":{},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2131,"timestamp":4078087170407,"id":2153,"parentId":2150,"tags":{},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2700,"timestamp":4078087169967,"id":2150,"parentId":2135,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/index.js","layer":"rsc"},"startTime":1711860134945,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1583,"timestamp":4078087171094,"id":2161,"parentId":2160,"tags":{},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1601,"timestamp":4078087171077,"id":2160,"parentId":2159,"tags":{},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-ts","duration":1774,"timestamp":4078087171033,"id":2159,"parentId":2132,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/lib/utils.ts","layer":"rsc"},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3179,"timestamp":4078087171328,"id":2167,"parentId":2166,"tags":{},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3194,"timestamp":4078087171316,"id":2166,"parentId":2163,"tags":{},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3620,"timestamp":4078087171214,"id":2163,"parentId":2142,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/headers.js","layer":"rsc"},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2777,"timestamp":4078087172085,"id":2170,"parentId":2169,"tags":{},"startTime":1711860134947,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2802,"timestamp":4078087172060,"id":2169,"parentId":2168,"tags":{},"startTime":1711860134947,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3431,"timestamp":4078087171656,"id":2168,"parentId":2143,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/image-external.js","layer":"rsc"},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3806,"timestamp":4078087171312,"id":2165,"parentId":2164,"tags":{},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3836,"timestamp":4078087171283,"id":2164,"parentId":2162,"tags":{},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4860,"timestamp":4078087171189,"id":2162,"parentId":2141,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/navigation.js","layer":"rsc"},"startTime":1711860134946,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2678,"timestamp":4078087182248,"id":2194,"parentId":2193,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2693,"timestamp":4078087182239,"id":2193,"parentId":2174,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3830,"timestamp":4078087181889,"id":2174,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/column-builder.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3522,"timestamp":4078087182237,"id":2192,"parentId":2191,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3535,"timestamp":4078087182227,"id":2191,"parentId":2173,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4459,"timestamp":4078087181869,"id":2173,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/alias.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4137,"timestamp":4078087182225,"id":2190,"parentId":2189,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4150,"timestamp":4078087182214,"id":2189,"parentId":2172,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5456,"timestamp":4078087181844,"id":2172,"parentId":2151,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/d1/session.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5107,"timestamp":4078087182211,"id":2188,"parentId":2187,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5140,"timestamp":4078087182179,"id":2187,"parentId":2171,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5753,"timestamp":4078087181787,"id":2171,"parentId":2151,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/d1/driver.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7193,"timestamp":4078087182258,"id":2196,"parentId":2195,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7204,"timestamp":4078087182250,"id":2195,"parentId":2175,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7736,"timestamp":4078087181911,"id":2175,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/column.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7390,"timestamp":4078087182277,"id":2200,"parentId":2199,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7399,"timestamp":4078087182269,"id":2199,"parentId":2177,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7926,"timestamp":4078087181948,"id":2177,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/entity.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7602,"timestamp":4078087182287,"id":2202,"parentId":2201,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7612,"timestamp":4078087182278,"id":2201,"parentId":2178,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8675,"timestamp":4078087181966,"id":2178,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/logger.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8373,"timestamp":4078087182296,"id":2204,"parentId":2203,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8383,"timestamp":4078087182288,"id":2203,"parentId":2179,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8807,"timestamp":4078087181983,"id":2179,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/expressions.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8536,"timestamp":4078087182268,"id":2198,"parentId":2197,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8545,"timestamp":4078087182260,"id":2197,"parentId":2176,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9046,"timestamp":4078087181930,"id":2176,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/errors.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8665,"timestamp":4078087182324,"id":2210,"parentId":2209,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8674,"timestamp":4078087182316,"id":2209,"parentId":2182,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9139,"timestamp":4078087182033,"id":2182,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/subquery.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8913,"timestamp":4078087182306,"id":2206,"parentId":2205,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8922,"timestamp":4078087182298,"id":2205,"parentId":2180,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12493,"timestamp":4078087182000,"id":2180,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/relations.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12227,"timestamp":4078087182343,"id":2214,"parentId":2213,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12239,"timestamp":4078087182336,"id":2213,"parentId":2184,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12788,"timestamp":4078087182067,"id":2184,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/operations.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12585,"timestamp":4078087182315,"id":2208,"parentId":2207,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12596,"timestamp":4078087182307,"id":2207,"parentId":2181,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13463,"timestamp":4078087182017,"id":2181,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/query-promise.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13518,"timestamp":4078087182361,"id":2218,"parentId":2217,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13530,"timestamp":4078087182354,"id":2217,"parentId":2186,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14005,"timestamp":4078087182099,"id":2186,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/view-common.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11842,"timestamp":4078087184288,"id":2233,"parentId":2232,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11868,"timestamp":4078087184265,"id":2232,"parentId":2219,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12454,"timestamp":4078087183897,"id":2219,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/alias.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14051,"timestamp":4078087182352,"id":2216,"parentId":2215,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":14422,"timestamp":4078087182345,"id":2215,"parentId":2185,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16769,"timestamp":4078087182084,"id":2185,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/utils.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16113,"timestamp":4078087184538,"id":2237,"parentId":2236,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16161,"timestamp":4078087184495,"id":2236,"parentId":2221,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17020,"timestamp":4078087183963,"id":2221,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/indexes.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18674,"timestamp":4078087182334,"id":2212,"parentId":2211,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18683,"timestamp":4078087182326,"id":2211,"parentId":2183,"tags":{},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19195,"timestamp":4078087182050,"id":2183,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/table.js","layer":"rsc"},"startTime":1711860134957,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16733,"timestamp":4078087184551,"id":2239,"parentId":2238,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16745,"timestamp":4078087184541,"id":2238,"parentId":2222,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18073,"timestamp":4078087183983,"id":2222,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/db.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17500,"timestamp":4078087184571,"id":2243,"parentId":2242,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17510,"timestamp":4078087184563,"id":2242,"parentId":2224,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18276,"timestamp":4078087184018,"id":2224,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/primary-keys.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17751,"timestamp":4078087184561,"id":2241,"parentId":2240,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17761,"timestamp":4078087184552,"id":2240,"parentId":2223,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18594,"timestamp":4078087184001,"id":2223,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/foreign-keys.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18026,"timestamp":4078087184591,"id":2247,"parentId":2246,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18035,"timestamp":4078087184583,"id":2246,"parentId":2226,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18987,"timestamp":4078087184053,"id":2226,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/session.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18455,"timestamp":4078087184601,"id":2249,"parentId":2248,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18464,"timestamp":4078087184593,"id":2248,"parentId":2227,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19413,"timestamp":4078087184070,"id":2227,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/unique-constraint.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18912,"timestamp":4078087184611,"id":2251,"parentId":2250,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18922,"timestamp":4078087184603,"id":2250,"parentId":2228,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19727,"timestamp":4078087184087,"id":2228,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/checks.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19254,"timestamp":4078087184581,"id":2245,"parentId":2244,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19264,"timestamp":4078087184573,"id":2244,"parentId":2225,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20250,"timestamp":4078087184035,"id":2225,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/table.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19663,"timestamp":4078087184640,"id":2257,"parentId":2256,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19672,"timestamp":4078087184632,"id":2256,"parentId":2231,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20282,"timestamp":4078087184141,"id":2231,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/subquery.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16012,"timestamp":4078087188423,"id":2271,"parentId":2270,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16040,"timestamp":4078087188396,"id":2270,"parentId":2258,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16894,"timestamp":4078087187656,"id":2258,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/columns/index.js","layer":"rsc"},"startTime":1711860134962,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19946,"timestamp":4078087184620,"id":2253,"parentId":2252,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19956,"timestamp":4078087184612,"id":2252,"parentId":2229,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20753,"timestamp":4078087184107,"id":2229,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/utils.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20251,"timestamp":4078087184630,"id":2255,"parentId":2254,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20261,"timestamp":4078087184622,"id":2254,"parentId":2230,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21104,"timestamp":4078087184125,"id":2230,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/view.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16820,"timestamp":4078087188438,"id":2273,"parentId":2272,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16833,"timestamp":4078087188426,"id":2272,"parentId":2259,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17637,"timestamp":4078087187710,"id":2259,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/index.js","layer":"rsc"},"startTime":1711860134962,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16906,"timestamp":4078087188449,"id":2275,"parentId":2274,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16916,"timestamp":4078087188440,"id":2274,"parentId":2260,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17684,"timestamp":4078087187734,"id":2260,"parentId":2152,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sql/index.js","layer":"rsc"},"startTime":1711860134962,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16950,"timestamp":4078087188479,"id":2281,"parentId":2280,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16959,"timestamp":4078087188471,"id":2280,"parentId":2263,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18153,"timestamp":4078087187792,"id":2263,"parentId":2163,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/draft-mode.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21559,"timestamp":4078087184492,"id":2235,"parentId":2234,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21708,"timestamp":4078087184345,"id":2234,"parentId":2220,"tags":{},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":29341,"timestamp":4078087183938,"id":2220,"parentId":2150,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/dialect.js","layer":"rsc"},"startTime":1711860134959,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":24816,"timestamp":4078087188489,"id":2283,"parentId":2282,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":24826,"timestamp":4078087188481,"id":2282,"parentId":2264,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":25772,"timestamp":4078087187809,"id":2264,"parentId":2162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/hooks-client-context.shared-runtime.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25151,"timestamp":4078087188459,"id":2277,"parentId":2276,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25162,"timestamp":4078087188450,"id":2276,"parentId":2261,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26024,"timestamp":4078087187754,"id":2261,"parentId":2168,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/image-component.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25290,"timestamp":4078087188499,"id":2285,"parentId":2284,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25299,"timestamp":4078087188491,"id":2284,"parentId":2265,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26100,"timestamp":4078087187827,"id":2265,"parentId":2162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/app-router-context.shared-runtime.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25429,"timestamp":4078087188509,"id":2287,"parentId":2286,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25438,"timestamp":4078087188501,"id":2286,"parentId":2266,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26201,"timestamp":4078087187843,"id":2266,"parentId":2162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/client-hook-in-server-component-error.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25640,"timestamp":4078087188469,"id":2279,"parentId":2278,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25649,"timestamp":4078087188461,"id":2278,"parentId":2262,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":27563,"timestamp":4078087187773,"id":2262,"parentId":2168,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/get-img-props.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":26985,"timestamp":4078087188528,"id":2291,"parentId":2290,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":26995,"timestamp":4078087188520,"id":2290,"parentId":2268,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":27994,"timestamp":4078087187878,"id":2268,"parentId":2162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/redirect.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":27366,"timestamp":4078087188519,"id":2289,"parentId":2288,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":27376,"timestamp":4078087188510,"id":2288,"parentId":2267,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":28159,"timestamp":4078087187861,"id":2267,"parentId":2162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/bailout-to-client-rendering.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":27509,"timestamp":4078087188538,"id":2293,"parentId":2292,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":27518,"timestamp":4078087188530,"id":2292,"parentId":2269,"tags":{},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":28688,"timestamp":4078087187895,"id":2269,"parentId":2162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/server-inserted-html.shared-runtime.js","layer":"rsc"},"startTime":1711860134963,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1168,"timestamp":4078087225765,"id":2319,"parentId":2318,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1185,"timestamp":4078087225754,"id":2318,"parentId":2298,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1749,"timestamp":4078087225392,"id":2298,"parentId":2229,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/view-common.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1378,"timestamp":4078087225775,"id":2321,"parentId":2320,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1388,"timestamp":4078087225766,"id":2320,"parentId":2299,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1882,"timestamp":4078087225414,"id":2299,"parentId":2230,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/view-base.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4425,"timestamp":4078087225752,"id":2317,"parentId":2316,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4447,"timestamp":4078087225733,"id":2316,"parentId":2297,"tags":{},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4979,"timestamp":4078087225357,"id":2297,"parentId":2162,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/router-reducer/reducers/get-segment-value.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4548,"timestamp":4078087225805,"id":2327,"parentId":2326,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4558,"timestamp":4078087225797,"id":2326,"parentId":2302,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5071,"timestamp":4078087225470,"id":2302,"parentId":2222,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4771,"timestamp":4078087225795,"id":2325,"parentId":2324,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4780,"timestamp":4078087225787,"id":2324,"parentId":2301,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5554,"timestamp":4078087225452,"id":2301,"parentId":2222,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/query.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5246,"timestamp":4078087225786,"id":2323,"parentId":2322,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5256,"timestamp":4078087225777,"id":2322,"parentId":2300,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5879,"timestamp":4078087225435,"id":2300,"parentId":2222,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/selection-proxy.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6392,"timestamp":4078087224965,"id":2296,"parentId":2295,"tags":{},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6430,"timestamp":4078087224929,"id":2295,"parentId":2294,"tags":{},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7598,"timestamp":4078087224752,"id":2294,"parentId":2173,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sql/sql.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6555,"timestamp":4078087225815,"id":2329,"parentId":2328,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6565,"timestamp":4078087225807,"id":2328,"parentId":2303,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7102,"timestamp":4078087225487,"id":2303,"parentId":2230,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":6900,"timestamp":4078087225834,"id":2333,"parentId":2332,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6910,"timestamp":4078087225826,"id":2332,"parentId":2305,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7498,"timestamp":4078087225520,"id":2305,"parentId":2258,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/columns/blob.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7211,"timestamp":4078087225824,"id":2331,"parentId":2330,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7220,"timestamp":4078087225816,"id":2330,"parentId":2304,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7702,"timestamp":4078087225504,"id":2304,"parentId":2258,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/columns/custom.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7364,"timestamp":4078087225852,"id":2337,"parentId":2336,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7374,"timestamp":4078087225845,"id":2336,"parentId":2307,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7774,"timestamp":4078087225553,"id":2307,"parentId":2258,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/columns/numeric.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7487,"timestamp":4078087225871,"id":2341,"parentId":2340,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7496,"timestamp":4078087225863,"id":2340,"parentId":2309,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7988,"timestamp":4078087225585,"id":2309,"parentId":2259,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7746,"timestamp":4078087225843,"id":2335,"parentId":2334,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7754,"timestamp":4078087225835,"id":2334,"parentId":2306,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8238,"timestamp":4078087225536,"id":2306,"parentId":2258,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/columns/common.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7925,"timestamp":4078087225862,"id":2339,"parentId":2338,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7934,"timestamp":4078087225854,"id":2338,"parentId":2308,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8407,"timestamp":4078087225569,"id":2308,"parentId":2258,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/columns/text.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8105,"timestamp":4078087225880,"id":2343,"parentId":2342,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8114,"timestamp":4078087225872,"id":2342,"parentId":2310,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8487,"timestamp":4078087225601,"id":2310,"parentId":2258,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/columns/real.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10765,"timestamp":4078087225910,"id":2349,"parentId":2348,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10775,"timestamp":4078087225902,"id":2348,"parentId":2313,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11589,"timestamp":4078087225649,"id":2313,"parentId":2258,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/columns/integer.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11370,"timestamp":4078087225900,"id":2347,"parentId":2346,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11380,"timestamp":4078087225892,"id":2346,"parentId":2312,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12201,"timestamp":4078087225633,"id":2312,"parentId":2259,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12179,"timestamp":4078087225919,"id":2351,"parentId":2350,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12189,"timestamp":4078087225911,"id":2350,"parentId":2314,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12507,"timestamp":4078087225666,"id":2314,"parentId":2259,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/select.types.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11365,"timestamp":4078087226821,"id":2359,"parentId":2358,"tags":{},"startTime":1711860135002,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11383,"timestamp":4078087226805,"id":2358,"parentId":2354,"tags":{},"startTime":1711860135002,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11681,"timestamp":4078087226684,"id":2354,"parentId":2180,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/pg-core/primary-keys.js","layer":"rsc"},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12455,"timestamp":4078087225928,"id":2353,"parentId":2352,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12464,"timestamp":4078087225920,"id":2352,"parentId":2315,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12969,"timestamp":4078087225683,"id":2315,"parentId":2259,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/update.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11833,"timestamp":4078087226832,"id":2361,"parentId":2360,"tags":{},"startTime":1711860135002,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11844,"timestamp":4078087226823,"id":2360,"parentId":2355,"tags":{},"startTime":1711860135002,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12088,"timestamp":4078087226711,"id":2355,"parentId":2262,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/image-blur-svg.js","layer":"rsc"},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8773,"timestamp":4078087230034,"id":2372,"parentId":2371,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8798,"timestamp":4078087230010,"id":2371,"parentId":2366,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9184,"timestamp":4078087229694,"id":2366,"parentId":2179,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sql/expressions/index.js","layer":"rsc"},"startTime":1711860135004,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12038,"timestamp":4078087226852,"id":2365,"parentId":2364,"tags":{},"startTime":1711860135002,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12047,"timestamp":4078087226844,"id":2364,"parentId":2357,"tags":{},"startTime":1711860135002,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12233,"timestamp":4078087226746,"id":2357,"parentId":2262,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/image-config.js","layer":"rsc"},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12145,"timestamp":4078087226842,"id":2363,"parentId":2362,"tags":{},"startTime":1711860135002,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12154,"timestamp":4078087226834,"id":2362,"parentId":2356,"tags":{},"startTime":1711860135002,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12333,"timestamp":4078087226729,"id":2356,"parentId":2268,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/components/redirect-status-code.js","layer":"rsc"},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9021,"timestamp":4078087230048,"id":2374,"parentId":2373,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9033,"timestamp":4078087230037,"id":2373,"parentId":2367,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9366,"timestamp":4078087229754,"id":2367,"parentId":2163,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/cookies.js","layer":"rsc"},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9047,"timestamp":4078087230080,"id":2380,"parentId":2379,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9057,"timestamp":4078087230072,"id":2379,"parentId":2370,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9356,"timestamp":4078087229821,"id":2370,"parentId":2260,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sql/functions/index.js","layer":"rsc"},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13336,"timestamp":4078087225891,"id":2345,"parentId":2344,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13345,"timestamp":4078087225883,"id":2344,"parentId":2311,"tags":{},"startTime":1711860135001,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15393,"timestamp":4078087225617,"id":2311,"parentId":2259,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sqlite-core/query-builders/select.js","layer":"rsc"},"startTime":1711860135000,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11141,"timestamp":4078087230059,"id":2376,"parentId":2375,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11164,"timestamp":4078087230050,"id":2375,"parentId":2368,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12417,"timestamp":4078087229778,"id":2368,"parentId":2163,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js","layer":"rsc"},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12187,"timestamp":4078087230070,"id":2378,"parentId":2377,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12198,"timestamp":4078087230061,"id":2377,"parentId":2369,"tags":{},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12985,"timestamp":4078087229804,"id":2369,"parentId":2163,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js","layer":"rsc"},"startTime":1711860135005,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1192,"timestamp":4078087247017,"id":2386,"parentId":2385,"tags":{},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1211,"timestamp":4078087247004,"id":2385,"parentId":2382,"tags":{},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1546,"timestamp":4078087246923,"id":2382,"parentId":2267,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js","layer":"rsc"},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1176,"timestamp":4078087247867,"id":2397,"parentId":2396,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1193,"timestamp":4078087247858,"id":2396,"parentId":2391,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1513,"timestamp":4078087247762,"id":2391,"parentId":2366,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sql/expressions/select.js","layer":"rsc"},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2295,"timestamp":4078087247002,"id":2384,"parentId":2383,"tags":{},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2329,"timestamp":4078087246969,"id":2383,"parentId":2381,"tags":{},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2659,"timestamp":4078087246851,"id":2381,"parentId":2262,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/utils/warn-once.js","layer":"rsc"},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1941,"timestamp":4078087247856,"id":2395,"parentId":2394,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1957,"timestamp":4078087247841,"id":2394,"parentId":2390,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2731,"timestamp":4078087247735,"id":2390,"parentId":2366,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sql/expressions/conditions.js","layer":"rsc"},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3085,"timestamp":4078087247475,"id":2389,"parentId":2388,"tags":{},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3103,"timestamp":4078087247459,"id":2388,"parentId":2387,"tags":{},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3363,"timestamp":4078087247407,"id":2387,"parentId":2294,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/tracing.js","layer":"rsc"},"startTime":1711860135022,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3492,"timestamp":4078087247888,"id":2401,"parentId":2400,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3503,"timestamp":4078087247880,"id":2400,"parentId":2393,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3795,"timestamp":4078087247803,"id":2393,"parentId":2370,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/sql/functions/aggregate.js","layer":"rsc"},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3739,"timestamp":4078087247877,"id":2399,"parentId":2398,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3749,"timestamp":4078087247869,"id":2398,"parentId":2392,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4191,"timestamp":4078087247783,"id":2392,"parentId":2354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/pg-core/table.js","layer":"rsc"},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3842,"timestamp":4078087248150,"id":2405,"parentId":2404,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3856,"timestamp":4078087248138,"id":2404,"parentId":2402,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4242,"timestamp":4078087248051,"id":2402,"parentId":2168,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/image-loader.js","layer":"rsc"},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4197,"timestamp":4078087248161,"id":2407,"parentId":2406,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4208,"timestamp":4078087248152,"id":2406,"parentId":2403,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4395,"timestamp":4078087248083,"id":2403,"parentId":2368,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js","layer":"rsc"},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3960,"timestamp":4078087248527,"id":2410,"parentId":2409,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3974,"timestamp":4078087248514,"id":2409,"parentId":2408,"tags":{},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4909,"timestamp":4078087248488,"id":2408,"parentId":2311,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/query-builders/query-builder.js","layer":"rsc"},"startTime":1711860135023,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":727,"timestamp":4078087255440,"id":2416,"parentId":2415,"tags":{},"startTime":1711860135030,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":755,"timestamp":4078087255418,"id":2415,"parentId":2412,"tags":{},"startTime":1711860135030,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1015,"timestamp":4078087255330,"id":2412,"parentId":2387,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/version.js","layer":"rsc"},"startTime":1711860135030,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1025,"timestamp":4078087255386,"id":2414,"parentId":2413,"tags":{},"startTime":1711860135030,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1055,"timestamp":4078087255357,"id":2413,"parentId":2411,"tags":{},"startTime":1711860135030,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1237,"timestamp":4078087255270,"id":2411,"parentId":2387,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/drizzle-orm/tracing-utils.js","layer":"rsc"},"startTime":1711860135030,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":867,"timestamp":4078087257410,"id":2420,"parentId":2419,"tags":{},"startTime":1711860135032,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":895,"timestamp":4078087257385,"id":2419,"parentId":2417,"tags":{},"startTime":1711860135032,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-mjs","duration":1365,"timestamp":4078087257307,"id":2417,"parentId":2159,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/clsx/dist/clsx.mjs","layer":"rsc"},"startTime":1711860135032,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3095,"timestamp":4078087258755,"id":2425,"parentId":2424,"tags":{},"startTime":1711860135034,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3121,"timestamp":4078087258732,"id":2424,"parentId":2423,"tags":{},"startTime":1711860135033,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4419,"timestamp":4078087258688,"id":2423,"parentId":2367,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","layer":"rsc"},"startTime":1711860135033,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8720,"timestamp":4078087257424,"id":2422,"parentId":2421,"tags":{},"startTime":1711860135032,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8739,"timestamp":4078087257412,"id":2421,"parentId":2418,"tags":{},"startTime":1711860135032,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":12263,"timestamp":4078087257357,"id":2418,"parentId":2159,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/tailwind-merge/dist/bundle-mjs.mjs","layer":"rsc"},"startTime":1711860135032,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":191655,"timestamp":4078087078019,"id":2118,"parentId":2116,"tags":{"request":"next-edge-ssr-loader?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/page\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIQ==\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!"},"startTime":1711860134853,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css&server=true!","duration":135,"timestamp":4078087274938,"id":2434,"parentId":2115,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&server=true!","layer":"ssr"},"startTime":1711860135050,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js&server=true!","duration":1449,"timestamp":4078087275084,"id":2435,"parentId":2115,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2FMessagePoster.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fcomponents%2FQueryAI.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fclient%2Fimage-component.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fesm%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=true!","layer":"ssr"},"startTime":1711860135050,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1155,"timestamp":4078087282004,"id":2444,"parentId":2443,"tags":{},"startTime":1711860135057,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1222,"timestamp":4078087281973,"id":2443,"parentId":2442,"tags":{},"startTime":1711860135057,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":1713,"timestamp":4078087281829,"id":2442,"parentId":2435,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx","layer":"ssr"},"startTime":1711860135057,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2941,"timestamp":4078087281657,"id":2439,"parentId":2438,"tags":{},"startTime":1711860135056,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2996,"timestamp":4078087281606,"id":2438,"parentId":2436,"tags":{},"startTime":1711860135056,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":4091,"timestamp":4078087281425,"id":2436,"parentId":2435,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx","layer":"ssr"},"startTime":1711860135056,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3896,"timestamp":4078087281676,"id":2441,"parentId":2440,"tags":{},"startTime":1711860135056,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3912,"timestamp":4078087281661,"id":2440,"parentId":2437,"tags":{},"startTime":1711860135056,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5078,"timestamp":4078087281490,"id":2437,"parentId":2435,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/client/image-component.js","layer":"ssr"},"startTime":1711860135056,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1491,"timestamp":4078087288594,"id":2447,"parentId":2446,"tags":{},"startTime":1711860135063,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1531,"timestamp":4078087288568,"id":2446,"parentId":2445,"tags":{},"startTime":1711860135063,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1897,"timestamp":4078087288509,"id":2445,"parentId":2442,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/jsx-dev-runtime.js","layer":"ssr"},"startTime":1711860135063,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1978,"timestamp":4078087288846,"id":2453,"parentId":2452,"tags":{},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1990,"timestamp":4078087288835,"id":2452,"parentId":2449,"tags":{},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2341,"timestamp":4078087288797,"id":2449,"parentId":2437,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/image-loader.js","layer":"ssr"},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1806,"timestamp":4078087289484,"id":2456,"parentId":2455,"tags":{},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1828,"timestamp":4078087289464,"id":2455,"parentId":2454,"tags":{},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2420,"timestamp":4078087289426,"id":2454,"parentId":2437,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/head.js","layer":"ssr"},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1798,"timestamp":4078087290669,"id":2464,"parentId":2463,"tags":{},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1811,"timestamp":4078087290658,"id":2463,"parentId":2458,"tags":{},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":2112,"timestamp":4078087290542,"id":2458,"parentId":2436,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/label.tsx","layer":"ssr"},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2010,"timestamp":4078087290656,"id":2462,"parentId":2461,"tags":{},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2031,"timestamp":4078087290636,"id":2461,"parentId":2457,"tags":{},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":2373,"timestamp":4078087290508,"id":2457,"parentId":2436,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx","layer":"ssr"},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2357,"timestamp":4078087290680,"id":2466,"parentId":2465,"tags":{},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2368,"timestamp":4078087290671,"id":2465,"parentId":2459,"tags":{},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":2625,"timestamp":4078087290565,"id":2459,"parentId":2436,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/input.tsx","layer":"ssr"},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4446,"timestamp":4078087288833,"id":2451,"parentId":2450,"tags":{},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4464,"timestamp":4078087288818,"id":2450,"parentId":2448,"tags":{},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5750,"timestamp":4078087288770,"id":2448,"parentId":2437,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/get-img-props.js","layer":"ssr"},"startTime":1711860135064,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5349,"timestamp":4078087290690,"id":2468,"parentId":2467,"tags":{},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5360,"timestamp":4078087290682,"id":2467,"parentId":2460,"tags":{},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":5780,"timestamp":4078087290585,"id":2460,"parentId":2436,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/button.tsx","layer":"ssr"},"startTime":1711860135065,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2276,"timestamp":4078087297365,"id":2475,"parentId":2474,"tags":{},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2296,"timestamp":4078087297351,"id":2474,"parentId":2470,"tags":{},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2712,"timestamp":4078087297263,"id":2470,"parentId":2448,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/image-blur-svg.js","layer":"ssr"},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2659,"timestamp":4078087297376,"id":2477,"parentId":2476,"tags":{},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2672,"timestamp":4078087297367,"id":2476,"parentId":2471,"tags":{},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-ts","duration":2896,"timestamp":4078087297284,"id":2471,"parentId":2458,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/lib/utils.ts","layer":"ssr"},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3015,"timestamp":4078087297335,"id":2473,"parentId":2472,"tags":{},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3038,"timestamp":4078087297313,"id":2472,"parentId":2469,"tags":{},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":3472,"timestamp":4078087297223,"id":2469,"parentId":2457,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx","layer":"ssr"},"startTime":1711860135072,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2873,"timestamp":4078087297831,"id":2483,"parentId":2482,"tags":{},"startTime":1711860135073,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2884,"timestamp":4078087297821,"id":2482,"parentId":2479,"tags":{},"startTime":1711860135073,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3031,"timestamp":4078087297773,"id":2479,"parentId":2454,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/amp-mode.js","layer":"ssr"},"startTime":1711860135073,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3000,"timestamp":4078087297819,"id":2481,"parentId":2480,"tags":{},"startTime":1711860135073,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3021,"timestamp":4078087297799,"id":2480,"parentId":2478,"tags":{},"startTime":1711860135073,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3351,"timestamp":4078087297749,"id":2478,"parentId":2454,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/esm/shared/lib/side-effect.js","layer":"ssr"},"startTime":1711860135073,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1215,"timestamp":4078087302506,"id":2490,"parentId":2489,"tags":{},"startTime":1711860135077,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1250,"timestamp":4078087302476,"id":2489,"parentId":2487,"tags":{},"startTime":1711860135077,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":1791,"timestamp":4078087302328,"id":2487,"parentId":2471,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/clsx/dist/clsx.mjs","layer":"ssr"},"startTime":1711860135077,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6441,"timestamp":4078087299572,"id":2486,"parentId":2485,"tags":{},"startTime":1711860135074,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6486,"timestamp":4078087299531,"id":2485,"parentId":2484,"tags":{},"startTime":1711860135074,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9563,"timestamp":4078087299428,"id":2484,"parentId":2445,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js","layer":"ssr"},"startTime":1711860135074,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8518,"timestamp":4078087302522,"id":2492,"parentId":2491,"tags":{},"startTime":1711860135077,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8538,"timestamp":4078087302509,"id":2491,"parentId":2488,"tags":{},"startTime":1711860135077,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":13120,"timestamp":4078087302400,"id":2488,"parentId":2471,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/tailwind-merge/dist/bundle-mjs.mjs","layer":"ssr"},"startTime":1711860135077,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6292,"timestamp":4078087309642,"id":2495,"parentId":2494,"tags":{},"startTime":1711860135084,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6456,"timestamp":4078087309617,"id":2494,"parentId":2493,"tags":{},"startTime":1711860135084,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6905,"timestamp":4078087309570,"id":2493,"parentId":2457,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-gfm/index.js","layer":"ssr"},"startTime":1711860135084,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6526,"timestamp":4078087309996,"id":2498,"parentId":2497,"tags":{},"startTime":1711860135085,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6546,"timestamp":4078087309980,"id":2497,"parentId":2496,"tags":{},"startTime":1711860135085,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6802,"timestamp":4078087309943,"id":2496,"parentId":2457,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/react-markdown/index.js","layer":"ssr"},"startTime":1711860135085,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6632,"timestamp":4078087310155,"id":2501,"parentId":2500,"tags":{},"startTime":1711860135085,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6648,"timestamp":4078087310142,"id":2500,"parentId":2499,"tags":{},"startTime":1711860135085,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":7912,"timestamp":4078087310119,"id":2499,"parentId":2458,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/class-variance-authority/dist/index.mjs","layer":"ssr"},"startTime":1711860135085,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1468,"timestamp":4078087319374,"id":2507,"parentId":2506,"tags":{},"startTime":1711860135094,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1484,"timestamp":4078087319362,"id":2506,"parentId":2503,"tags":{},"startTime":1711860135094,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":1857,"timestamp":4078087319292,"id":2503,"parentId":2458,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@radix-ui/react-label/dist/index.mjs","layer":"ssr"},"startTime":1711860135094,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2529,"timestamp":4078087319360,"id":2505,"parentId":2504,"tags":{},"startTime":1711860135094,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2558,"timestamp":4078087319333,"id":2504,"parentId":2502,"tags":{},"startTime":1711860135094,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":3179,"timestamp":4078087319154,"id":2502,"parentId":2460,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@radix-ui/react-slot/dist/index.mjs","layer":"ssr"},"startTime":1711860135094,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1741,"timestamp":4078087320621,"id":2513,"parentId":2512,"tags":{},"startTime":1711860135095,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1758,"timestamp":4078087320606,"id":2512,"parentId":2511,"tags":{},"startTime":1711860135095,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1938,"timestamp":4078087320574,"id":2511,"parentId":2493,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-gfm/lib/index.js","layer":"ssr"},"startTime":1711860135095,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3951,"timestamp":4078087320512,"id":2510,"parentId":2509,"tags":{},"startTime":1711860135095,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3988,"timestamp":4078087320480,"id":2509,"parentId":2508,"tags":{},"startTime":1711860135095,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4781,"timestamp":4078087320416,"id":2508,"parentId":2496,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/react-markdown/lib/index.js","layer":"ssr"},"startTime":1711860135095,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1196,"timestamp":4078087330376,"id":2516,"parentId":2515,"tags":{},"startTime":1711860135105,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1226,"timestamp":4078087330350,"id":2515,"parentId":2514,"tags":{},"startTime":1711860135105,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":1552,"timestamp":4078087330294,"id":2514,"parentId":2499,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","layer":"ssr"},"startTime":1711860135105,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":884,"timestamp":4078087331408,"id":2520,"parentId":2519,"tags":{},"startTime":1711860135106,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":911,"timestamp":4078087331383,"id":2519,"parentId":2517,"tags":{},"startTime":1711860135106,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1094,"timestamp":4078087331293,"id":2517,"parentId":2511,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm/index.js","layer":"ssr"},"startTime":1711860135106,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":978,"timestamp":4078087331422,"id":2522,"parentId":2521,"tags":{},"startTime":1711860135106,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":990,"timestamp":4078087331411,"id":2521,"parentId":2518,"tags":{},"startTime":1711860135106,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1240,"timestamp":4078087331325,"id":2518,"parentId":2511,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm/index.js","layer":"ssr"},"startTime":1711860135106,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":934,"timestamp":4078087332078,"id":2537,"parentId":2536,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":944,"timestamp":4078087332069,"id":2536,"parentId":2525,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1170,"timestamp":4078087331911,"id":2525,"parentId":2508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unified/index.js","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1033,"timestamp":4078087332056,"id":2533,"parentId":2532,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":1221,"timestamp":4078087332041,"id":2532,"parentId":2523,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1452,"timestamp":4078087331866,"id":2523,"parentId":2508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-parse/index.js","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1258,"timestamp":4078087332067,"id":2535,"parentId":2534,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1268,"timestamp":4078087332058,"id":2534,"parentId":2524,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1488,"timestamp":4078087331892,"id":2524,"parentId":2508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit/index.js","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1298,"timestamp":4078087332087,"id":2539,"parentId":2538,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1308,"timestamp":4078087332079,"id":2538,"parentId":2526,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1515,"timestamp":4078087331929,"id":2526,"parentId":2508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-rehype/index.js","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1571,"timestamp":4078087332108,"id":2543,"parentId":2542,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1581,"timestamp":4078087332100,"id":2542,"parentId":2528,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1774,"timestamp":4078087331962,"id":2528,"parentId":2508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/index.js","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1652,"timestamp":4078087332098,"id":2541,"parentId":2540,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1662,"timestamp":4078087332089,"id":2540,"parentId":2527,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1868,"timestamp":4078087331945,"id":2527,"parentId":2508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/html-url-attributes/index.js","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1700,"timestamp":4078087332127,"id":2547,"parentId":2546,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1709,"timestamp":4078087332119,"id":2546,"parentId":2530,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1884,"timestamp":4078087331996,"id":2530,"parentId":2508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/hast-util-to-jsx-runtime/index.js","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1976,"timestamp":4078087332117,"id":2545,"parentId":2544,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1985,"timestamp":4078087332109,"id":2544,"parentId":2529,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2656,"timestamp":4078087331978,"id":2529,"parentId":2508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/devlop/lib/development.js","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3167,"timestamp":4078087332137,"id":2549,"parentId":2548,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3177,"timestamp":4078087332128,"id":2548,"parentId":2531,"tags":{},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":4205,"timestamp":4078087332012,"id":2531,"parentId":2502,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3439,"timestamp":4078087332830,"id":2552,"parentId":2551,"tags":{},"startTime":1711860135108,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3456,"timestamp":4078087332814,"id":2551,"parentId":2550,"tags":{},"startTime":1711860135108,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":4055,"timestamp":4078087332616,"id":2550,"parentId":2503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@radix-ui/react-primitive/dist/index.mjs","layer":"ssr"},"startTime":1711860135107,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1308,"timestamp":4078087337238,"id":2555,"parentId":2554,"tags":{},"startTime":1711860135112,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1339,"timestamp":4078087337210,"id":2554,"parentId":2553,"tags":{},"startTime":1711860135112,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1679,"timestamp":4078087337044,"id":2553,"parentId":2503,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@babel/runtime/helpers/esm/extends.js","layer":"ssr"},"startTime":1711860135112,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":884,"timestamp":4078087340034,"id":2570,"parentId":2569,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":902,"timestamp":4078087340021,"id":2569,"parentId":2565,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1342,"timestamp":4078087339936,"id":2565,"parentId":2526,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-rehype/lib/index.js","layer":"ssr"},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1742,"timestamp":4078087339690,"id":2560,"parentId":2559,"tags":{},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1766,"timestamp":4078087339668,"id":2559,"parentId":2556,"tags":{},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2419,"timestamp":4078087339565,"id":2556,"parentId":2517,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm/lib/index.js","layer":"ssr"},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2871,"timestamp":4078087339703,"id":2562,"parentId":2561,"tags":{},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2885,"timestamp":4078087339692,"id":2561,"parentId":2557,"tags":{},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3330,"timestamp":4078087339606,"id":2557,"parentId":2524,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit/lib/index.js","layer":"ssr"},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2913,"timestamp":4078087340045,"id":2572,"parentId":2571,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2923,"timestamp":4078087340035,"id":2571,"parentId":2566,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3132,"timestamp":4078087339959,"id":2566,"parentId":2523,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-parse/lib/index.js","layer":"ssr"},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3498,"timestamp":4078087340054,"id":2574,"parentId":2573,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3509,"timestamp":4078087340046,"id":2573,"parentId":2567,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4466,"timestamp":4078087339978,"id":2567,"parentId":2528,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/index.js","layer":"ssr"},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4315,"timestamp":4078087340320,"id":2579,"parentId":2578,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4331,"timestamp":4078087340306,"id":2578,"parentId":2577,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4482,"timestamp":4078087340282,"id":2577,"parentId":2527,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/html-url-attributes/lib/index.js","layer":"ssr"},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7118,"timestamp":4078087339714,"id":2564,"parentId":2563,"tags":{},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7131,"timestamp":4078087339705,"id":2563,"parentId":2558,"tags":{},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8580,"timestamp":4078087339629,"id":2558,"parentId":2525,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unified/lib/index.js","layer":"ssr"},"startTime":1711860135114,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8656,"timestamp":4078087340064,"id":2576,"parentId":2575,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8667,"timestamp":4078087340056,"id":2575,"parentId":2568,"tags":{},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10176,"timestamp":4078087339995,"id":2568,"parentId":2530,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/hast-util-to-jsx-runtime/lib/index.js","layer":"ssr"},"startTime":1711860135115,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1370,"timestamp":4078087352258,"id":2586,"parentId":2585,"tags":{},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1386,"timestamp":4078087352247,"id":2585,"parentId":2581,"tags":{},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1625,"timestamp":4078087352157,"id":2581,"parentId":2567,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/minproc.browser.js","layer":"ssr"},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2206,"timestamp":4078087352269,"id":2588,"parentId":2587,"tags":{},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2220,"timestamp":4078087352260,"id":2587,"parentId":2582,"tags":{},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2647,"timestamp":4078087352183,"id":2582,"parentId":2567,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/minurl.browser.js","layer":"ssr"},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2812,"timestamp":4078087352423,"id":2591,"parentId":2590,"tags":{},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2828,"timestamp":4078087352410,"id":2590,"parentId":2589,"tags":{},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3010,"timestamp":4078087352386,"id":2589,"parentId":2558,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unified/lib/callable-instance.js","layer":"ssr"},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3486,"timestamp":4078087352244,"id":2584,"parentId":2583,"tags":{},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3519,"timestamp":4078087352216,"id":2583,"parentId":2580,"tags":{},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4416,"timestamp":4078087352099,"id":2580,"parentId":2567,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/minpath.browser.js","layer":"ssr"},"startTime":1711860135127,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3272,"timestamp":4078087357886,"id":2594,"parentId":2593,"tags":{},"startTime":1711860135133,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3299,"timestamp":4078087357863,"id":2593,"parentId":2592,"tags":{},"startTime":1711860135133,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3748,"timestamp":4078087357814,"id":2592,"parentId":2582,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/minurl.shared.js","layer":"ssr"},"startTime":1711860135133,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2320,"timestamp":4078087359528,"id":2604,"parentId":2603,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2362,"timestamp":4078087359495,"id":2603,"parentId":2595,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3281,"timestamp":4078087358943,"id":2595,"parentId":2526,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/index.js","layer":"ssr"},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2713,"timestamp":4078087359546,"id":2606,"parentId":2605,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2738,"timestamp":4078087359531,"id":2605,"parentId":2596,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3484,"timestamp":4078087358977,"id":2596,"parentId":2518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-tagfilter/index.js","layer":"ssr"},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2914,"timestamp":4078087359569,"id":2610,"parentId":2609,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2926,"timestamp":4078087359560,"id":2609,"parentId":2598,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3613,"timestamp":4078087359021,"id":2598,"parentId":2518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js","layer":"ssr"},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3112,"timestamp":4078087359558,"id":2608,"parentId":2607,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3126,"timestamp":4078087359548,"id":2607,"parentId":2597,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4279,"timestamp":4078087358999,"id":2597,"parentId":2518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-combine-extensions/index.js","layer":"ssr"},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3694,"timestamp":4078087359601,"id":2616,"parentId":2615,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3703,"timestamp":4078087359593,"id":2615,"parentId":2601,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4012,"timestamp":4078087359386,"id":2601,"parentId":2518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-footnote/dev/index.js","layer":"ssr"},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4349,"timestamp":4078087359580,"id":2612,"parentId":2611,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4360,"timestamp":4078087359571,"id":2611,"parentId":2599,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5009,"timestamp":4078087359039,"id":2599,"parentId":2518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-strikethrough/dev/index.js","layer":"ssr"},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4468,"timestamp":4078087359591,"id":2614,"parentId":2613,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4478,"timestamp":4078087359582,"id":2613,"parentId":2600,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5072,"timestamp":4078087359057,"id":2600,"parentId":2518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/index.js","layer":"ssr"},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7192,"timestamp":4078087359611,"id":2618,"parentId":2617,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7203,"timestamp":4078087359603,"id":2617,"parentId":2602,"tags":{},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7547,"timestamp":4078087359457,"id":2602,"parentId":2518,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-task-list-item/dev/index.js","layer":"ssr"},"startTime":1711860135134,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2462,"timestamp":4078087369880,"id":2621,"parentId":2620,"tags":{},"startTime":1711860135145,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2496,"timestamp":4078087369850,"id":2620,"parentId":2619,"tags":{},"startTime":1711860135145,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":2989,"timestamp":4078087369791,"id":2619,"parentId":2529,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/dequal/dist/index.mjs","layer":"ssr"},"startTime":1711860135145,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2065,"timestamp":4078087373386,"id":2647,"parentId":2646,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2078,"timestamp":4078087373377,"id":2646,"parentId":2624,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2605,"timestamp":4078087372990,"id":2624,"parentId":2556,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-task-list-item/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2243,"timestamp":4078087373362,"id":2643,"parentId":2642,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2267,"timestamp":4078087373339,"id":2642,"parentId":2622,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2752,"timestamp":4078087372923,"id":2622,"parentId":2568,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile-message/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":2453,"timestamp":4078087373375,"id":2645,"parentId":2644,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2466,"timestamp":4078087373364,"id":2644,"parentId":2623,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2927,"timestamp":4078087372965,"id":2623,"parentId":2556,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-autolink-literal/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2503,"timestamp":4078087373396,"id":2649,"parentId":2648,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2513,"timestamp":4078087373387,"id":2648,"parentId":2625,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2945,"timestamp":4078087373010,"id":2625,"parentId":2556,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-strikethrough/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2546,"timestamp":4078087373416,"id":2653,"parentId":2652,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2555,"timestamp":4078087373407,"id":2652,"parentId":2627,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2957,"timestamp":4078087373056,"id":2627,"parentId":2556,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-table/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2613,"timestamp":4078087373406,"id":2651,"parentId":2650,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2622,"timestamp":4078087373398,"id":2650,"parentId":2626,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3039,"timestamp":4078087373029,"id":2626,"parentId":2556,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-footnote/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3099,"timestamp":4078087373436,"id":2657,"parentId":2656,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3109,"timestamp":4078087373428,"id":2656,"parentId":2629,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3647,"timestamp":4078087373090,"id":2629,"parentId":2598,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3322,"timestamp":4078087373446,"id":2659,"parentId":2658,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3331,"timestamp":4078087373438,"id":2658,"parentId":2630,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3845,"timestamp":4078087373107,"id":2630,"parentId":2595,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4701,"timestamp":4078087373455,"id":2661,"parentId":2660,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4716,"timestamp":4078087373447,"id":2660,"parentId":2631,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6187,"timestamp":4078087373123,"id":2631,"parentId":2595,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/footer.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5961,"timestamp":4078087373465,"id":2663,"parentId":2662,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5974,"timestamp":4078087373457,"id":2662,"parentId":2632,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6674,"timestamp":4078087373140,"id":2632,"parentId":2595,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7608,"timestamp":4078087373474,"id":2665,"parentId":2664,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7620,"timestamp":4078087373466,"id":2664,"parentId":2633,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8575,"timestamp":4078087373156,"id":2633,"parentId":2601,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-footnote/dev/lib/html.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8337,"timestamp":4078087373484,"id":2667,"parentId":2666,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8347,"timestamp":4078087373476,"id":2666,"parentId":2634,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9533,"timestamp":4078087373172,"id":2634,"parentId":2601,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9398,"timestamp":4078087373426,"id":2655,"parentId":2654,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9409,"timestamp":4078087373417,"id":2654,"parentId":2628,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10979,"timestamp":4078087373073,"id":2628,"parentId":2598,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10575,"timestamp":4078087373493,"id":2669,"parentId":2668,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10584,"timestamp":4078087373485,"id":2668,"parentId":2635,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10998,"timestamp":4078087373189,"id":2635,"parentId":2599,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10710,"timestamp":4078087373502,"id":2671,"parentId":2670,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10719,"timestamp":4078087373494,"id":2670,"parentId":2636,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11451,"timestamp":4078087373205,"id":2636,"parentId":2599,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11164,"timestamp":4078087373512,"id":2673,"parentId":2672,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11173,"timestamp":4078087373504,"id":2672,"parentId":2637,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11635,"timestamp":4078087373221,"id":2637,"parentId":2596,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-tagfilter/lib/index.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11327,"timestamp":4078087373540,"id":2679,"parentId":2678,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11337,"timestamp":4078087373532,"id":2678,"parentId":2640,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11681,"timestamp":4078087373268,"id":2640,"parentId":2602,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11701,"timestamp":4078087373521,"id":2675,"parentId":2674,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11710,"timestamp":4078087373513,"id":2674,"parentId":2638,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14173,"timestamp":4078087373237,"id":2638,"parentId":2600,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/lib/html.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13134,"timestamp":4078087375165,"id":2690,"parentId":2689,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13161,"timestamp":4078087375141,"id":2689,"parentId":2682,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13873,"timestamp":4078087374593,"id":2682,"parentId":2568,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/space-separated-tokens/index.js","layer":"ssr"},"startTime":1711860135149,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13299,"timestamp":4078087375179,"id":2692,"parentId":2691,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13311,"timestamp":4078087375167,"id":2691,"parentId":2683,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13783,"timestamp":4078087374773,"id":2683,"parentId":2568,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/hast-util-whitespace/index.js","layer":"ssr"},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15040,"timestamp":4078087373549,"id":2681,"parentId":2680,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15049,"timestamp":4078087373541,"id":2680,"parentId":2641,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15594,"timestamp":4078087373283,"id":2641,"parentId":2602,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13689,"timestamp":4078087375201,"id":2696,"parentId":2695,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13699,"timestamp":4078087375192,"id":2695,"parentId":2685,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14123,"timestamp":4078087374905,"id":2685,"parentId":2568,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/index.js","layer":"ssr"},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13845,"timestamp":4078087375191,"id":2694,"parentId":2693,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13856,"timestamp":4078087375181,"id":2693,"parentId":2684,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14245,"timestamp":4078087374848,"id":2684,"parentId":2568,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/estree-util-is-identifier-name/index.js","layer":"ssr"},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13888,"timestamp":4078087375212,"id":2698,"parentId":2697,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13898,"timestamp":4078087375203,"id":2697,"parentId":2686,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14197,"timestamp":4078087374955,"id":2686,"parentId":2568,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-position/index.js","layer":"ssr"},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14026,"timestamp":4078087375232,"id":2702,"parentId":2701,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14036,"timestamp":4078087375224,"id":2701,"parentId":2688,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14249,"timestamp":4078087375067,"id":2688,"parentId":2557,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit-parents/index.js","layer":"ssr"},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16158,"timestamp":4078087373530,"id":2677,"parentId":2676,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16167,"timestamp":4078087373522,"id":2676,"parentId":2639,"tags":{},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18170,"timestamp":4078087373252,"id":2639,"parentId":2600,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js","layer":"ssr"},"startTime":1711860135148,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16224,"timestamp":4078087375222,"id":2700,"parentId":2699,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16234,"timestamp":4078087375213,"id":2699,"parentId":2687,"tags":{},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16631,"timestamp":4078087375005,"id":2687,"parentId":2568,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/comma-separated-tokens/index.js","layer":"ssr"},"startTime":1711860135150,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14019,"timestamp":4078087377627,"id":2705,"parentId":2704,"tags":{},"startTime":1711860135152,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14125,"timestamp":4078087377522,"id":2704,"parentId":2703,"tags":{},"startTime":1711860135152,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":14812,"timestamp":4078087376986,"id":2703,"parentId":2568,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/style-to-object/esm/index.mjs","layer":"ssr"},"startTime":1711860135152,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3107,"timestamp":4078087392872,"id":2708,"parentId":2707,"tags":{},"startTime":1711860135168,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3144,"timestamp":4078087392839,"id":2707,"parentId":2706,"tags":{},"startTime":1711860135168,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4065,"timestamp":4078087392046,"id":2706,"parentId":2566,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-from-markdown/dev/index.js","layer":"ssr"},"startTime":1711860135167,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1805,"timestamp":4078087397847,"id":2740,"parentId":2739,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1818,"timestamp":4078087397839,"id":2739,"parentId":2712,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2459,"timestamp":4078087397366,"id":2712,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/delete.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2342,"timestamp":4078087397826,"id":2736,"parentId":2735,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2356,"timestamp":4078087397813,"id":2735,"parentId":2710,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2958,"timestamp":4078087397317,"id":2710,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2451,"timestamp":4078087397837,"id":2738,"parentId":2737,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2462,"timestamp":4078087397827,"id":2737,"parentId":2711,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3027,"timestamp":4078087397345,"id":2711,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/break.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2524,"timestamp":4078087397858,"id":2742,"parentId":2741,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2533,"timestamp":4078087397850,"id":2741,"parentId":2713,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3068,"timestamp":4078087397385,"id":2713,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2884,"timestamp":4078087397811,"id":2734,"parentId":2733,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2921,"timestamp":4078087397778,"id":2733,"parentId":2709,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4454,"timestamp":4078087397261,"id":2709,"parentId":2630,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/state.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8689,"timestamp":4078087397888,"id":2748,"parentId":2747,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8703,"timestamp":4078087397879,"id":2747,"parentId":2716,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9339,"timestamp":4078087397437,"id":2716,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/heading.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8889,"timestamp":4078087397907,"id":2752,"parentId":2751,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8898,"timestamp":4078087397899,"id":2751,"parentId":2718,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":9655,"timestamp":4078087397470,"id":2718,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/image.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9251,"timestamp":4078087397898,"id":2750,"parentId":2749,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9261,"timestamp":4078087397889,"id":2749,"parentId":2717,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9854,"timestamp":4078087397454,"id":2717,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9445,"timestamp":4078087397877,"id":2746,"parentId":2745,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9454,"timestamp":4078087397869,"id":2745,"parentId":2715,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10037,"timestamp":4078087397420,"id":2715,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/code.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9604,"timestamp":4078087397868,"id":2744,"parentId":2743,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9613,"timestamp":4078087397860,"id":2743,"parentId":2714,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10239,"timestamp":4078087397402,"id":2714,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9735,"timestamp":4078087397916,"id":2754,"parentId":2753,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9744,"timestamp":4078087397908,"id":2753,"parentId":2719,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10246,"timestamp":4078087397486,"id":2719,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/html.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9807,"timestamp":4078087397935,"id":2758,"parentId":2757,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9816,"timestamp":4078087397927,"id":2757,"parentId":2721,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10328,"timestamp":4078087397519,"id":2721,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9915,"timestamp":4078087397945,"id":2760,"parentId":2759,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9924,"timestamp":4078087397937,"id":2759,"parentId":2722,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10454,"timestamp":4078087397535,"id":2722,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/list.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10074,"timestamp":4078087397926,"id":2756,"parentId":2755,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10083,"timestamp":4078087397918,"id":2755,"parentId":2720,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10636,"timestamp":4078087397502,"id":2720,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10193,"timestamp":4078087397954,"id":2762,"parentId":2761,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10203,"timestamp":4078087397946,"id":2761,"parentId":2723,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10682,"timestamp":4078087397555,"id":2723,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/link.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10273,"timestamp":4078087397973,"id":2766,"parentId":2765,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10283,"timestamp":4078087397965,"id":2765,"parentId":2725,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10823,"timestamp":4078087397588,"id":2725,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/strong.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10442,"timestamp":4078087397991,"id":2770,"parentId":2769,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10451,"timestamp":4078087397984,"id":2769,"parentId":2727,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10960,"timestamp":4078087397621,"id":2727,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/root.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10614,"timestamp":4078087397982,"id":2768,"parentId":2767,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10623,"timestamp":4078087397974,"id":2767,"parentId":2726,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11166,"timestamp":4078087397606,"id":2726,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/table.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10786,"timestamp":4078087398001,"id":2772,"parentId":2771,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10795,"timestamp":4078087397993,"id":2771,"parentId":2728,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11311,"timestamp":4078087397637,"id":2728,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11003,"timestamp":4078087397964,"id":2764,"parentId":2763,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11012,"timestamp":4078087397956,"id":2763,"parentId":2724,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11623,"timestamp":4078087397572,"id":2724,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11176,"timestamp":4078087398029,"id":2778,"parentId":2777,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11185,"timestamp":4078087398022,"id":2777,"parentId":2731,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11598,"timestamp":4078087397685,"id":2731,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11272,"timestamp":4078087398020,"id":2776,"parentId":2775,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11281,"timestamp":4078087398012,"id":2775,"parentId":2730,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11701,"timestamp":4078087397669,"id":2730,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/text.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11420,"timestamp":4078087398011,"id":2774,"parentId":2773,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11429,"timestamp":4078087398003,"id":2773,"parentId":2729,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11846,"timestamp":4078087397654,"id":2729,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12381,"timestamp":4078087398040,"id":2780,"parentId":2779,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12394,"timestamp":4078087398031,"id":2779,"parentId":2732,"tags":{},"startTime":1711860135173,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12856,"timestamp":4078087397701,"id":2732,"parentId":2632,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","layer":"ssr"},"startTime":1711860135172,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10879,"timestamp":4078087400004,"id":2797,"parentId":2796,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10890,"timestamp":4078087399995,"id":2796,"parentId":2788,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11389,"timestamp":4078087399867,"id":2788,"parentId":2624,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-task-list-item/lib/index.js","layer":"ssr"},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11715,"timestamp":4078087399580,"id":2786,"parentId":2785,"tags":{},"startTime":1711860135174,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11729,"timestamp":4078087399567,"id":2785,"parentId":2782,"tags":{},"startTime":1711860135174,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12103,"timestamp":4078087399475,"id":2782,"parentId":2639,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js","layer":"ssr"},"startTime":1711860135174,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12038,"timestamp":4078087399565,"id":2784,"parentId":2783,"tags":{},"startTime":1711860135174,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12063,"timestamp":4078087399541,"id":2783,"parentId":2781,"tags":{},"startTime":1711860135174,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12535,"timestamp":4078087399413,"id":2781,"parentId":2558,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unified/node_modules/extend/index.js","layer":"ssr"},"startTime":1711860135174,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11969,"timestamp":4078087399993,"id":2795,"parentId":2794,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11984,"timestamp":4078087399980,"id":2794,"parentId":2787,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12268,"timestamp":4078087399837,"id":2787,"parentId":2639,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/lib/infer.js","layer":"ssr"},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12776,"timestamp":4078087400014,"id":2799,"parentId":2798,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12786,"timestamp":4078087400006,"id":2798,"parentId":2789,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13277,"timestamp":4078087399889,"id":2789,"parentId":2622,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile-message/lib/index.js","layer":"ssr"},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13183,"timestamp":4078087400034,"id":2803,"parentId":2802,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13193,"timestamp":4078087400026,"id":2802,"parentId":2791,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13781,"timestamp":4078087399925,"id":2791,"parentId":2627,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-table/lib/index.js","layer":"ssr"},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13791,"timestamp":4078087400024,"id":2801,"parentId":2800,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13801,"timestamp":4078087400016,"id":2800,"parentId":2790,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14381,"timestamp":4078087399907,"id":2790,"parentId":2623,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-autolink-literal/lib/index.js","layer":"ssr"},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14261,"timestamp":4078087400043,"id":2805,"parentId":2804,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14271,"timestamp":4078087400035,"id":2804,"parentId":2792,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14517,"timestamp":4078087399942,"id":2792,"parentId":2625,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-strikethrough/lib/index.js","layer":"ssr"},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14426,"timestamp":4078087400053,"id":2807,"parentId":2806,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14435,"timestamp":4078087400045,"id":2806,"parentId":2793,"tags":{},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14875,"timestamp":4078087399959,"id":2793,"parentId":2626,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-footnote/lib/index.js","layer":"ssr"},"startTime":1711860135175,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1275,"timestamp":4078087416587,"id":2823,"parentId":2822,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1306,"timestamp":4078087416558,"id":2822,"parentId":2808,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3658,"timestamp":4078087415847,"id":2808,"parentId":2684,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/estree-util-is-identifier-name/lib/index.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3600,"timestamp":4078087416622,"id":2829,"parentId":2828,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3614,"timestamp":4078087416613,"id":2828,"parentId":2811,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4406,"timestamp":4078087416121,"id":2811,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/xlink.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3944,"timestamp":4078087416612,"id":2827,"parentId":2826,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3955,"timestamp":4078087416602,"id":2826,"parentId":2810,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4875,"timestamp":4078087415935,"id":2810,"parentId":2703,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/style-to-object/cjs/index.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4191,"timestamp":4078087416632,"id":2831,"parentId":2830,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4201,"timestamp":4078087416624,"id":2830,"parentId":2812,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4784,"timestamp":4078087416158,"id":2812,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/xmlns.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4418,"timestamp":4078087416601,"id":2825,"parentId":2824,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4433,"timestamp":4078087416589,"id":2824,"parentId":2809,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5667,"timestamp":4078087415911,"id":2809,"parentId":2688,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit-parents/lib/index.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4960,"timestamp":4078087416643,"id":2833,"parentId":2832,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4970,"timestamp":4078087416635,"id":2832,"parentId":2813,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5684,"timestamp":4078087416179,"id":2813,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/aria.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5201,"timestamp":4078087416682,"id":2841,"parentId":2840,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5211,"timestamp":4078087416674,"id":2840,"parentId":2817,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5733,"timestamp":4078087416250,"id":2817,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/hast-to-react.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5327,"timestamp":4078087416672,"id":2839,"parentId":2838,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":5487,"timestamp":4078087416664,"id":2838,"parentId":2816,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6185,"timestamp":4078087416233,"id":2816,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/find.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5836,"timestamp":4078087416653,"id":2835,"parentId":2834,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5846,"timestamp":4078087416645,"id":2834,"parentId":2814,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6792,"timestamp":4078087416198,"id":2814,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/html.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6308,"timestamp":4078087416692,"id":2843,"parentId":2842,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6317,"timestamp":4078087416684,"id":2842,"parentId":2818,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6828,"timestamp":4078087416267,"id":2818,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/xml.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9537,"timestamp":4078087416702,"id":2845,"parentId":2844,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9549,"timestamp":4078087416693,"id":2844,"parentId":2819,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10078,"timestamp":4078087416285,"id":2819,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/normalize.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10202,"timestamp":4078087416720,"id":2849,"parentId":2848,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10212,"timestamp":4078087416713,"id":2848,"parentId":2821,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10846,"timestamp":4078087416324,"id":2821,"parentId":2686,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-position/lib/index.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10518,"timestamp":4078087416711,"id":2847,"parentId":2846,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10527,"timestamp":4078087416703,"id":2846,"parentId":2820,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11064,"timestamp":4078087416302,"id":2820,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/merge.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10781,"timestamp":4078087416662,"id":2837,"parentId":2836,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10790,"timestamp":4078087416654,"id":2836,"parentId":2815,"tags":{},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11975,"timestamp":4078087416216,"id":2815,"parentId":2685,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/svg.js","layer":"ssr"},"startTime":1711860135191,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8097,"timestamp":4078087420103,"id":2859,"parentId":2858,"tags":{},"startTime":1711860135195,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8110,"timestamp":4078087420091,"id":2858,"parentId":2854,"tags":{},"startTime":1711860135195,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8302,"timestamp":4078087419965,"id":2854,"parentId":2558,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/bail/index.js","layer":"ssr"},"startTime":1711860135195,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8246,"timestamp":4078087420114,"id":2861,"parentId":2860,"tags":{},"startTime":1711860135195,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8257,"timestamp":4078087420104,"id":2860,"parentId":2855,"tags":{},"startTime":1711860135195,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8415,"timestamp":4078087420020,"id":2855,"parentId":2558,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/trough/index.js","layer":"ssr"},"startTime":1711860135195,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8356,"timestamp":4078087420088,"id":2857,"parentId":2856,"tags":{},"startTime":1711860135195,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8389,"timestamp":4078087420056,"id":2856,"parentId":2853,"tags":{},"startTime":1711860135195,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8896,"timestamp":4078087419648,"id":2853,"parentId":2558,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/is-plain-obj/index.js","layer":"ssr"},"startTime":1711860135194,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10731,"timestamp":4078087417823,"id":2852,"parentId":2851,"tags":{},"startTime":1711860135193,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10747,"timestamp":4078087417808,"id":2851,"parentId":2850,"tags":{},"startTime":1711860135193,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10941,"timestamp":4078087417757,"id":2850,"parentId":2683,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/hast-util-whitespace/lib/index.js","layer":"ssr"},"startTime":1711860135193,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1616,"timestamp":4078087430974,"id":2865,"parentId":2864,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1663,"timestamp":4078087430949,"id":2864,"parentId":2862,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2135,"timestamp":4078087430778,"id":2862,"parentId":2717,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/revert.js","layer":"ssr"},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1315,"timestamp":4078087431629,"id":2877,"parentId":2876,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1326,"timestamp":4078087431620,"id":2876,"parentId":2869,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1551,"timestamp":4078087431505,"id":2869,"parentId":2812,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/case-insensitive-transform.js","layer":"ssr"},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1621,"timestamp":4078087431618,"id":2875,"parentId":2874,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1636,"timestamp":4078087431604,"id":2874,"parentId":2868,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1966,"timestamp":4078087431478,"id":2868,"parentId":2811,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/create.js","layer":"ssr"},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1807,"timestamp":4078087431650,"id":2881,"parentId":2880,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1817,"timestamp":4078087431642,"id":2880,"parentId":2871,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2056,"timestamp":4078087431542,"id":2871,"parentId":2813,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/types.js","layer":"ssr"},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1966,"timestamp":4078087431640,"id":2879,"parentId":2878,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1976,"timestamp":4078087431631,"id":2878,"parentId":2870,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2139,"timestamp":4078087431524,"id":2870,"parentId":2809,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit-parents/lib/color.js","layer":"ssr"},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2573,"timestamp":4078087431660,"id":2883,"parentId":2882,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2583,"timestamp":4078087431652,"id":2882,"parentId":2872,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2853,"timestamp":4078087431560,"id":2872,"parentId":2816,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/defined-info.js","layer":"ssr"},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2755,"timestamp":4078087431670,"id":2885,"parentId":2884,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2764,"timestamp":4078087431661,"id":2884,"parentId":2873,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2945,"timestamp":4078087431577,"id":2873,"parentId":2816,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/info.js","layer":"ssr"},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2637,"timestamp":4078087432155,"id":2888,"parentId":2887,"tags":{},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2651,"timestamp":4078087432143,"id":2887,"parentId":2886,"tags":{},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2751,"timestamp":4078087432113,"id":2886,"parentId":2815,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/case-sensitive-transform.js","layer":"ssr"},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2611,"timestamp":4078087432311,"id":2891,"parentId":2890,"tags":{},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2623,"timestamp":4078087432300,"id":2890,"parentId":2889,"tags":{},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2732,"timestamp":4078087432273,"id":2889,"parentId":2820,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/schema.js","layer":"ssr"},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2857,"timestamp":4078087432384,"id":2894,"parentId":2893,"tags":{},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2872,"timestamp":4078087432375,"id":2893,"parentId":2892,"tags":{},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3154,"timestamp":4078087432354,"id":2892,"parentId":2636,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-chunked/dev/index.js","layer":"ssr"},"startTime":1711860135207,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5513,"timestamp":4078087430988,"id":2867,"parentId":2866,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5527,"timestamp":4078087430977,"id":2866,"parentId":2863,"tags":{},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7898,"timestamp":4078087430830,"id":2863,"parentId":2706,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-from-markdown/dev/lib/index.js","layer":"ssr"},"startTime":1711860135206,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5952,"timestamp":4078087435163,"id":2897,"parentId":2896,"tags":{},"startTime":1711860135210,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5973,"timestamp":4078087435145,"id":2896,"parentId":2895,"tags":{},"startTime":1711860135210,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6356,"timestamp":4078087435093,"id":2895,"parentId":2855,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/trough/lib/index.js","layer":"ssr"},"startTime":1711860135210,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1999,"timestamp":4078087443570,"id":2900,"parentId":2899,"tags":{},"startTime":1711860135218,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2026,"timestamp":4078087443547,"id":2899,"parentId":2898,"tags":{},"startTime":1711860135218,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2357,"timestamp":4078087443497,"id":2898,"parentId":2636,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-resolve-all/index.js","layer":"ssr"},"startTime":1711860135218,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":957,"timestamp":4078087446775,"id":2910,"parentId":2909,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":969,"timestamp":4078087446765,"id":2909,"parentId":2903,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1183,"timestamp":4078087446672,"id":2903,"parentId":2636,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/default.js","layer":"ssr"},"startTime":1711860135221,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1522,"timestamp":4078087446786,"id":2912,"parentId":2911,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1535,"timestamp":4078087446777,"id":2911,"parentId":2904,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1847,"timestamp":4078087446693,"id":2904,"parentId":2636,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-classify-character/dev/index.js","layer":"ssr"},"startTime":1711860135221,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1822,"timestamp":4078087446749,"id":2906,"parentId":2905,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1854,"timestamp":4078087446718,"id":2905,"parentId":2901,"tags":{},"startTime":1711860135221,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2346,"timestamp":4078087446580,"id":2901,"parentId":2631,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-sanitize-uri/dev/index.js","layer":"ssr"},"startTime":1711860135221,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2303,"timestamp":4078087447624,"id":2915,"parentId":2914,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2326,"timestamp":4078087447603,"id":2914,"parentId":2913,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2554,"timestamp":4078087447541,"id":2913,"parentId":2633,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-normalize-identifier/dev/index.js","layer":"ssr"},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2088,"timestamp":4078087448028,"id":2918,"parentId":2917,"tags":{},"startTime":1711860135223,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2106,"timestamp":4078087448011,"id":2917,"parentId":2916,"tags":{},"startTime":1711860135223,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2382,"timestamp":4078087447897,"id":2916,"parentId":2634,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-space/dev/index.js","layer":"ssr"},"startTime":1711860135223,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3809,"timestamp":4078087446764,"id":2908,"parentId":2907,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3826,"timestamp":4078087446752,"id":2907,"parentId":2902,"tags":{},"startTime":1711860135222,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4583,"timestamp":4078087446644,"id":2902,"parentId":2634,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-character/dev/index.js","layer":"ssr"},"startTime":1711860135221,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2671,"timestamp":4078087449485,"id":2921,"parentId":2920,"tags":{},"startTime":1711860135224,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2698,"timestamp":4078087449460,"id":2920,"parentId":2919,"tags":{},"startTime":1711860135224,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3071,"timestamp":4078087449295,"id":2919,"parentId":2634,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/index.js","layer":"ssr"},"startTime":1711860135224,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2749,"timestamp":4078087451697,"id":2927,"parentId":2926,"tags":{},"startTime":1711860135226,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2763,"timestamp":4078087451685,"id":2926,"parentId":2923,"tags":{},"startTime":1711860135226,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3153,"timestamp":4078087451496,"id":2923,"parentId":2631,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@ungap/structured-clone/esm/index.js","layer":"ssr"},"startTime":1711860135226,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3110,"timestamp":4078087451683,"id":2925,"parentId":2924,"tags":{},"startTime":1711860135226,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3135,"timestamp":4078087451660,"id":2924,"parentId":2922,"tags":{},"startTime":1711860135226,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3560,"timestamp":4078087451453,"id":2922,"parentId":2730,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/trim-lines/index.js","layer":"ssr"},"startTime":1711860135226,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1839,"timestamp":4078087453568,"id":2938,"parentId":2937,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1863,"timestamp":4078087453545,"id":2937,"parentId":2928,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2551,"timestamp":4078087452937,"id":2928,"parentId":2788,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/index.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":2037,"timestamp":4078087453582,"id":2940,"parentId":2939,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2049,"timestamp":4078087453571,"id":2939,"parentId":2929,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2697,"timestamp":4078087452979,"id":2929,"parentId":2863,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-stringify-position/index.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2092,"timestamp":4078087453592,"id":2942,"parentId":2941,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2102,"timestamp":4078087453583,"id":2941,"parentId":2930,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2784,"timestamp":4078087453003,"id":2930,"parentId":2790,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/ccount/index.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2420,"timestamp":4078087453612,"id":2946,"parentId":2945,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2430,"timestamp":4078087453604,"id":2945,"parentId":2932,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3054,"timestamp":4078087453041,"id":2932,"parentId":2790,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-find-and-replace/index.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2521,"timestamp":4078087453623,"id":2948,"parentId":2947,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2531,"timestamp":4078087453614,"id":2947,"parentId":2933,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3288,"timestamp":4078087453061,"id":2933,"parentId":2903,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/codes.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2856,"timestamp":4078087453603,"id":2944,"parentId":2943,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2866,"timestamp":4078087453594,"id":2943,"parentId":2931,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3974,"timestamp":4078087453023,"id":2931,"parentId":2791,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/markdown-table/index.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3406,"timestamp":4078087453632,"id":2950,"parentId":2949,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3415,"timestamp":4078087453624,"id":2949,"parentId":2934,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4274,"timestamp":4078087453077,"id":2934,"parentId":2903,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/types.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6208,"timestamp":4078087453652,"id":2954,"parentId":2953,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6220,"timestamp":4078087453643,"id":2953,"parentId":2936,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6917,"timestamp":4078087453111,"id":2936,"parentId":2903,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/constants.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6741,"timestamp":4078087453642,"id":2952,"parentId":2951,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6751,"timestamp":4078087453634,"id":2951,"parentId":2935,"tags":{},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7461,"timestamp":4078087453094,"id":2935,"parentId":2903,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/values.js","layer":"ssr"},"startTime":1711860135228,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4806,"timestamp":4078087455929,"id":2957,"parentId":2956,"tags":{},"startTime":1711860135231,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4838,"timestamp":4078087455898,"id":2956,"parentId":2955,"tags":{},"startTime":1711860135231,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5531,"timestamp":4078087455812,"id":2955,"parentId":2810,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/inline-style-parser/index.js","layer":"ssr"},"startTime":1711860135231,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1830,"timestamp":4078087461471,"id":2960,"parentId":2959,"tags":{},"startTime":1711860135236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1858,"timestamp":4078087461445,"id":2959,"parentId":2958,"tags":{},"startTime":1711860135236,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2001,"timestamp":4078087461390,"id":2958,"parentId":2809,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-is/index.js","layer":"ssr"},"startTime":1711860135236,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2847,"timestamp":4078087461837,"id":2964,"parentId":2963,"tags":{},"startTime":1711860135237,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2866,"timestamp":4078087461820,"id":2963,"parentId":2961,"tags":{},"startTime":1711860135237,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3243,"timestamp":4078087461767,"id":2961,"parentId":2923,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@ungap/structured-clone/esm/deserialize.js","layer":"ssr"},"startTime":1711860135237,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3216,"timestamp":4078087461849,"id":2966,"parentId":2965,"tags":{},"startTime":1711860135237,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3228,"timestamp":4078087461839,"id":2965,"parentId":2962,"tags":{},"startTime":1711860135237,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3728,"timestamp":4078087461798,"id":2962,"parentId":2923,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@ungap/structured-clone/esm/serialize.js","layer":"ssr"},"startTime":1711860135237,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1876,"timestamp":4078087464032,"id":2994,"parentId":2993,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1886,"timestamp":4078087464023,"id":2993,"parentId":2969,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2497,"timestamp":4078087463568,"id":2969,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/blank-line.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2202,"timestamp":4078087464042,"id":2996,"parentId":2995,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2212,"timestamp":4078087464034,"id":2995,"parentId":2970,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3104,"timestamp":4078087463586,"id":2970,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/block-quote.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2813,"timestamp":4078087464021,"id":2992,"parentId":2991,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2825,"timestamp":4078087464011,"id":2991,"parentId":2968,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3779,"timestamp":4078087463548,"id":2968,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/autolink.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3502,"timestamp":4078087464008,"id":2990,"parentId":2989,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3523,"timestamp":4078087463990,"id":2989,"parentId":2967,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4624,"timestamp":4078087463517,"id":2967,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/attention.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4106,"timestamp":4078087464052,"id":2998,"parentId":2997,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4116,"timestamp":4078087464044,"id":2997,"parentId":2971,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4700,"timestamp":4078087463602,"id":2971,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/character-escape.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5916,"timestamp":4078087464072,"id":3002,"parentId":3001,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5931,"timestamp":4078087464064,"id":3001,"parentId":2973,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7251,"timestamp":4078087463679,"id":2973,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6898,"timestamp":4078087464063,"id":3000,"parentId":2999,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6908,"timestamp":4078087464054,"id":2999,"parentId":2972,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7673,"timestamp":4078087463620,"id":2972,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/character-reference.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7242,"timestamp":4078087464092,"id":3006,"parentId":3005,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7251,"timestamp":4078087464084,"id":3005,"parentId":2975,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8049,"timestamp":4078087463716,"id":2975,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/code-text.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7957,"timestamp":4078087464101,"id":3008,"parentId":3007,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7967,"timestamp":4078087464093,"id":3007,"parentId":2976,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8637,"timestamp":4078087463732,"id":2976,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/code-indented.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8318,"timestamp":4078087464112,"id":3010,"parentId":3009,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8328,"timestamp":4078087464103,"id":3009,"parentId":2977,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9034,"timestamp":4078087463748,"id":2977,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/definition.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8650,"timestamp":4078087464145,"id":3012,"parentId":3011,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8661,"timestamp":4078087464135,"id":3011,"parentId":2978,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9149,"timestamp":4078087463763,"id":2978,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8859,"timestamp":4078087464082,"id":3004,"parentId":3003,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8869,"timestamp":4078087464074,"id":3003,"parentId":2974,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9563,"timestamp":4078087463701,"id":2974,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/content.js","layer":"ssr"},"startTime":1711860135238,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9138,"timestamp":4078087464155,"id":3014,"parentId":3013,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9148,"timestamp":4078087464146,"id":3013,"parentId":2979,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9867,"timestamp":4078087463779,"id":2979,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10344,"timestamp":4078087464174,"id":3018,"parentId":3017,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10354,"timestamp":4078087464166,"id":3017,"parentId":2981,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11564,"timestamp":4078087463809,"id":2981,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/html-text.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11168,"timestamp":4078087464229,"id":3022,"parentId":3021,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11191,"timestamp":4078087464208,"id":3021,"parentId":2983,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11724,"timestamp":4078087463840,"id":2983,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11460,"timestamp":4078087464183,"id":3020,"parentId":3019,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11469,"timestamp":4078087464175,"id":3019,"parentId":2982,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15242,"timestamp":4078087463825,"id":2982,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/label-end.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14853,"timestamp":4078087464240,"id":3024,"parentId":3023,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14864,"timestamp":4078087464231,"id":3023,"parentId":2984,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15446,"timestamp":4078087463855,"id":2984,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15063,"timestamp":4078087464250,"id":3026,"parentId":3025,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15073,"timestamp":4078087464242,"id":3025,"parentId":2985,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15560,"timestamp":4078087463870,"id":2985,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/line-ending.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16014,"timestamp":4078087464164,"id":3016,"parentId":3015,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16025,"timestamp":4078087464156,"id":3015,"parentId":2980,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17514,"timestamp":4078087463794,"id":2980,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/html-flow.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17280,"timestamp":4078087464280,"id":3032,"parentId":3031,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17291,"timestamp":4078087464272,"id":3031,"parentId":2988,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17840,"timestamp":4078087463919,"id":2988,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17540,"timestamp":4078087464270,"id":3030,"parentId":3029,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17579,"timestamp":4078087464262,"id":3029,"parentId":2987,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18746,"timestamp":4078087463904,"id":2987,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16924,"timestamp":4078087465767,"id":3040,"parentId":3039,"tags":{},"startTime":1711860135241,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16936,"timestamp":4078087465757,"id":3039,"parentId":3034,"tags":{},"startTime":1711860135241,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":17523,"timestamp":4078087465599,"id":3034,"parentId":2928,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/index.js","layer":"ssr"},"startTime":1711860135240,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18922,"timestamp":4078087464260,"id":3028,"parentId":3027,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18932,"timestamp":4078087464252,"id":3027,"parentId":2986,"tags":{},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20365,"timestamp":4078087463888,"id":2986,"parentId":2919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/list.js","layer":"ssr"},"startTime":1711860135239,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18548,"timestamp":4078087465777,"id":3042,"parentId":3041,"tags":{},"startTime":1711860135241,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18558,"timestamp":4078087465768,"id":3041,"parentId":3035,"tags":{},"startTime":1711860135241,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18861,"timestamp":4078087465618,"id":3035,"parentId":2929,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-stringify-position/lib/index.js","layer":"ssr"},"startTime":1711860135240,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18757,"timestamp":4078087465755,"id":3038,"parentId":3037,"tags":{},"startTime":1711860135241,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18775,"timestamp":4078087465739,"id":3037,"parentId":3033,"tags":{},"startTime":1711860135240,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19335,"timestamp":4078087465570,"id":3033,"parentId":2928,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/index.js","layer":"ssr"},"startTime":1711860135240,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19213,"timestamp":4078087465787,"id":3044,"parentId":3043,"tags":{},"startTime":1711860135241,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19225,"timestamp":4078087465778,"id":3043,"parentId":3036,"tags":{},"startTime":1711860135241,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19804,"timestamp":4078087465681,"id":3036,"parentId":2932,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-find-and-replace/lib/index.js","layer":"ssr"},"startTime":1711860135240,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2289,"timestamp":4078087494044,"id":3064,"parentId":3063,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2303,"timestamp":4078087494034,"id":3063,"parentId":3047,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3321,"timestamp":4078087493214,"id":3047,"parentId":2961,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@ungap/structured-clone/esm/types.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2529,"timestamp":4078087494017,"id":3060,"parentId":3059,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2565,"timestamp":4078087493983,"id":3059,"parentId":3045,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3542,"timestamp":4078087493088,"id":3045,"parentId":2863,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-string/index.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2612,"timestamp":4078087494032,"id":3062,"parentId":3061,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2624,"timestamp":4078087494020,"id":3061,"parentId":3046,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3576,"timestamp":4078087493188,"id":3046,"parentId":2863,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/decode-named-character-reference/index.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2722,"timestamp":4078087494054,"id":3066,"parentId":3065,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2731,"timestamp":4078087494045,"id":3065,"parentId":3048,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3635,"timestamp":4078087493235,"id":3048,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3010,"timestamp":4078087494064,"id":3068,"parentId":3067,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3019,"timestamp":4078087494055,"id":3067,"parentId":3049,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3982,"timestamp":4078087493253,"id":3049,"parentId":2863,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3180,"timestamp":4078087494074,"id":3070,"parentId":3069,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3188,"timestamp":4078087494066,"id":3069,"parentId":3050,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4134,"timestamp":4078087493270,"id":3050,"parentId":2863,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/index.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3328,"timestamp":4078087494093,"id":3074,"parentId":3073,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3337,"timestamp":4078087494085,"id":3073,"parentId":3052,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4315,"timestamp":4078087493304,"id":3052,"parentId":2863,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-decode-string/dev/index.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3877,"timestamp":4078087494102,"id":3076,"parentId":3075,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3886,"timestamp":4078087494094,"id":3075,"parentId":3053,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4777,"timestamp":4078087493329,"id":3053,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/break.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4387,"timestamp":4078087494083,"id":3072,"parentId":3071,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4397,"timestamp":4078087494075,"id":3071,"parentId":3051,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5591,"timestamp":4078087493288,"id":3051,"parentId":2958,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-is/lib/index.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4790,"timestamp":4078087494121,"id":3080,"parentId":3079,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4800,"timestamp":4078087494113,"id":3079,"parentId":3055,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5670,"timestamp":4078087493362,"id":3055,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4940,"timestamp":4078087494131,"id":3082,"parentId":3081,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4950,"timestamp":4078087494123,"id":3081,"parentId":3056,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5953,"timestamp":4078087493380,"id":3056,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/definition.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5251,"timestamp":4078087494112,"id":3078,"parentId":3077,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5261,"timestamp":4078087494104,"id":3077,"parentId":3054,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6227,"timestamp":4078087493345,"id":3054,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/code.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6028,"timestamp":4078087494150,"id":3086,"parentId":3085,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6037,"timestamp":4078087494142,"id":3085,"parentId":3058,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6837,"timestamp":4078087493425,"id":3058,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/html.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4135,"timestamp":4078087496145,"id":3098,"parentId":3097,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4146,"timestamp":4078087496134,"id":3097,"parentId":3088,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4483,"timestamp":4078087495980,"id":3088,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","layer":"ssr"},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4445,"timestamp":4078087496132,"id":3096,"parentId":3095,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4466,"timestamp":4078087496112,"id":3095,"parentId":3087,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4862,"timestamp":4078087495945,"id":3087,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/image.js","layer":"ssr"},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6688,"timestamp":4078087494140,"id":3084,"parentId":3083,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6697,"timestamp":4078087494132,"id":3083,"parentId":3057,"tags":{},"startTime":1711860135269,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7706,"timestamp":4078087493398,"id":3057,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/heading.js","layer":"ssr"},"startTime":1711860135268,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4969,"timestamp":4078087496155,"id":3100,"parentId":3099,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4979,"timestamp":4078087496146,"id":3099,"parentId":3089,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5314,"timestamp":4078087496001,"id":3089,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","layer":"ssr"},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5281,"timestamp":4078087496165,"id":3102,"parentId":3101,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5290,"timestamp":4078087496157,"id":3101,"parentId":3090,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5684,"timestamp":4078087496019,"id":3090,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/link.js","layer":"ssr"},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5543,"timestamp":4078087496185,"id":3106,"parentId":3105,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5552,"timestamp":4078087496176,"id":3105,"parentId":3092,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6229,"timestamp":4078087496052,"id":3092,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/list.js","layer":"ssr"},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6566,"timestamp":4078087496204,"id":3110,"parentId":3109,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6576,"timestamp":4078087496196,"id":3109,"parentId":3094,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6969,"timestamp":4078087496084,"id":3094,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/list-item.js","layer":"ssr"},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7687,"timestamp":4078087496194,"id":3108,"parentId":3107,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7697,"timestamp":4078087496186,"id":3107,"parentId":3093,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7962,"timestamp":4078087496067,"id":3093,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","layer":"ssr"},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7058,"timestamp":4078087496987,"id":3113,"parentId":3112,"tags":{},"startTime":1711860135272,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7075,"timestamp":4078087496971,"id":3112,"parentId":3111,"tags":{},"startTime":1711860135272,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7258,"timestamp":4078087496904,"id":3111,"parentId":2901,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-encode/index.js","layer":"ssr"},"startTime":1711860135272,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8035,"timestamp":4078087496175,"id":3104,"parentId":3103,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8045,"timestamp":4078087496167,"id":3103,"parentId":3091,"tags":{},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8376,"timestamp":4078087496036,"id":3091,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","layer":"ssr"},"startTime":1711860135271,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3893,"timestamp":4078087500533,"id":3116,"parentId":3115,"tags":{},"startTime":1711860135275,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3915,"timestamp":4078087500512,"id":3115,"parentId":3114,"tags":{},"startTime":1711860135275,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4058,"timestamp":4078087500474,"id":3114,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/root.js","layer":"ssr"},"startTime":1711860135275,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1371,"timestamp":4078087505739,"id":3124,"parentId":3123,"tags":{},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1395,"timestamp":4078087505716,"id":3123,"parentId":3117,"tags":{},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1733,"timestamp":4078087505573,"id":3117,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/configure.js","layer":"ssr"},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1550,"timestamp":4078087505773,"id":3130,"parentId":3129,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1559,"timestamp":4078087505765,"id":3129,"parentId":3120,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1793,"timestamp":4078087505661,"id":3120,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/strong.js","layer":"ssr"},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1712,"timestamp":4078087505753,"id":3126,"parentId":3125,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1724,"timestamp":4078087505741,"id":3125,"parentId":3118,"tags":{},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1973,"timestamp":4078087505619,"id":3118,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/join.js","layer":"ssr"},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1941,"timestamp":4078087505782,"id":3132,"parentId":3131,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1950,"timestamp":4078087505774,"id":3131,"parentId":3121,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2111,"timestamp":4078087505678,"id":3121,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/text.js","layer":"ssr"},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6227,"timestamp":4078087505763,"id":3128,"parentId":3127,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6243,"timestamp":4078087505754,"id":3127,"parentId":3119,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7108,"timestamp":4078087505641,"id":3119,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/unsafe.js","layer":"ssr"},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6980,"timestamp":4078087505792,"id":3134,"parentId":3133,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":7197,"timestamp":4078087505784,"id":3133,"parentId":3122,"tags":{},"startTime":1711860135281,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7730,"timestamp":4078087505695,"id":3122,"parentId":3034,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","layer":"ssr"},"startTime":1711860135280,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3469,"timestamp":4078087510100,"id":3156,"parentId":3155,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3482,"timestamp":4078087510088,"id":3155,"parentId":3136,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4670,"timestamp":4078087509504,"id":3136,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4144,"timestamp":4078087510112,"id":3158,"parentId":3157,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4157,"timestamp":4078087510102,"id":3157,"parentId":3137,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5216,"timestamp":4078087509530,"id":3137,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5176,"timestamp":4078087510133,"id":3162,"parentId":3161,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5186,"timestamp":4078087510125,"id":3161,"parentId":3139,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5867,"timestamp":4078087509605,"id":3139,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5368,"timestamp":4078087510123,"id":3160,"parentId":3159,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5378,"timestamp":4078087510113,"id":3159,"parentId":3138,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6113,"timestamp":4078087509550,"id":3138,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/container-flow.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5593,"timestamp":4078087510085,"id":3154,"parentId":3153,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5621,"timestamp":4078087510058,"id":3153,"parentId":3135,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6344,"timestamp":4078087509436,"id":3135,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/association.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5636,"timestamp":4078087510154,"id":3166,"parentId":3165,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5646,"timestamp":4078087510146,"id":3165,"parentId":3141,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6196,"timestamp":4078087509689,"id":3141,"parentId":3053,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5753,"timestamp":4078087510143,"id":3164,"parentId":3163,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5762,"timestamp":4078087510135,"id":3163,"parentId":3140,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6428,"timestamp":4078087509644,"id":3140,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/track.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5905,"timestamp":4078087510175,"id":3170,"parentId":3169,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5914,"timestamp":4078087510166,"id":3169,"parentId":3143,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6424,"timestamp":4078087509735,"id":3143,"parentId":3055,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6002,"timestamp":4078087510165,"id":3168,"parentId":3167,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6011,"timestamp":4078087510156,"id":3167,"parentId":3142,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6516,"timestamp":4078087509713,"id":3142,"parentId":3056,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-quote.js","layer":"ssr"},"startTime":1711860135284,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6029,"timestamp":4078087510208,"id":3176,"parentId":3175,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6039,"timestamp":4078087510199,"id":3175,"parentId":3146,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6510,"timestamp":4078087509792,"id":3146,"parentId":3054,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-fence.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6116,"timestamp":4078087510198,"id":3174,"parentId":3173,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6128,"timestamp":4078087510187,"id":3173,"parentId":3145,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6647,"timestamp":4078087509770,"id":3145,"parentId":3054,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6264,"timestamp":4078087510185,"id":3172,"parentId":3171,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6273,"timestamp":4078087510177,"id":3171,"parentId":3144,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7089,"timestamp":4078087509752,"id":3144,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/safe.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6632,"timestamp":4078087510218,"id":3178,"parentId":3177,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6642,"timestamp":4078087510210,"id":3177,"parentId":3147,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7165,"timestamp":4078087509809,"id":3147,"parentId":3057,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6759,"timestamp":4078087510228,"id":3180,"parentId":3179,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6768,"timestamp":4078087510220,"id":3179,"parentId":3148,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7289,"timestamp":4078087509826,"id":3148,"parentId":3090,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6884,"timestamp":4078087510238,"id":3182,"parentId":3181,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6893,"timestamp":4078087510230,"id":3181,"parentId":3149,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7350,"timestamp":4078087509842,"id":3149,"parentId":3092,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7089,"timestamp":4078087510258,"id":3186,"parentId":3185,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7098,"timestamp":4078087510250,"id":3185,"parentId":3151,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7571,"timestamp":4078087509874,"id":3151,"parentId":3092,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7205,"timestamp":4078087510248,"id":3184,"parentId":3183,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7214,"timestamp":4078087510240,"id":3183,"parentId":3150,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7685,"timestamp":4078087509858,"id":3150,"parentId":3092,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7283,"timestamp":4078087510268,"id":3188,"parentId":3187,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7291,"timestamp":4078087510260,"id":3187,"parentId":3152,"tags":{},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7721,"timestamp":4078087509890,"id":3152,"parentId":3092,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-rule.js","layer":"ssr"},"startTime":1711860135285,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3043,"timestamp":4078087515058,"id":3196,"parentId":3195,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3063,"timestamp":4078087515040,"id":3195,"parentId":3189,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3391,"timestamp":4078087514791,"id":3189,"parentId":3094,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","layer":"ssr"},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3089,"timestamp":4078087515103,"id":3204,"parentId":3203,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3100,"timestamp":4078087515092,"id":3203,"parentId":3193,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3364,"timestamp":4078087514899,"id":3193,"parentId":3050,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/postprocess.js","layer":"ssr"},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3183,"timestamp":4078087515091,"id":3202,"parentId":3201,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3193,"timestamp":4078087515082,"id":3201,"parentId":3192,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3522,"timestamp":4078087514881,"id":3192,"parentId":3050,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/parse.js","layer":"ssr"},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3366,"timestamp":4078087515071,"id":3198,"parentId":3197,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3377,"timestamp":4078087515060,"id":3197,"parentId":3190,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3773,"timestamp":4078087514839,"id":3190,"parentId":3045,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-string/lib/index.js","layer":"ssr"},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3516,"timestamp":4078087515113,"id":3206,"parentId":3205,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3526,"timestamp":4078087515104,"id":3205,"parentId":3194,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4117,"timestamp":4078087514917,"id":3194,"parentId":3050,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/preprocess.js","layer":"ssr"},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1381,"timestamp":4078087520499,"id":3209,"parentId":3208,"tags":{},"startTime":1711860135295,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1407,"timestamp":4078087520476,"id":3208,"parentId":3207,"tags":{},"startTime":1711860135295,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1596,"timestamp":4078087520425,"id":3207,"parentId":3120,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-strong.js","layer":"ssr"},"startTime":1711860135295,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1205,"timestamp":4078087520835,"id":3212,"parentId":3211,"tags":{},"startTime":1711860135296,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1222,"timestamp":4078087520819,"id":3211,"parentId":3210,"tags":{},"startTime":1711860135296,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1862,"timestamp":4078087520792,"id":3210,"parentId":3122,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","layer":"ssr"},"startTime":1711860135296,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8002,"timestamp":4078087515081,"id":3200,"parentId":3199,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8013,"timestamp":4078087515072,"id":3199,"parentId":3191,"tags":{},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9706,"timestamp":4078087514861,"id":3191,"parentId":3050,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/compile.js","layer":"ssr"},"startTime":1711860135290,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3206,"timestamp":4078087522839,"id":3218,"parentId":3217,"tags":{},"startTime":1711860135298,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3220,"timestamp":4078087522827,"id":3217,"parentId":3214,"tags":{},"startTime":1711860135298,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3644,"timestamp":4078087522760,"id":3214,"parentId":3192,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/constructs.js","layer":"ssr"},"startTime":1711860135298,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6584,"timestamp":4078087522823,"id":3216,"parentId":3215,"tags":{},"startTime":1711860135298,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6618,"timestamp":4078087522790,"id":3215,"parentId":3213,"tags":{},"startTime":1711860135298,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7755,"timestamp":4078087522691,"id":3213,"parentId":3192,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/create-tokenizer.js","layer":"ssr"},"startTime":1711860135297,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2394,"timestamp":4078087528680,"id":3228,"parentId":3227,"tags":{},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2407,"timestamp":4078087528668,"id":3227,"parentId":3221,"tags":{},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2825,"timestamp":4078087528453,"id":3221,"parentId":3192,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/initialize/flow.js","layer":"ssr"},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2682,"timestamp":4078087528613,"id":3224,"parentId":3223,"tags":{},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2709,"timestamp":4078087528588,"id":3223,"parentId":3219,"tags":{},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3110,"timestamp":4078087528377,"id":3219,"parentId":3192,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/initialize/content.js","layer":"ssr"},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2836,"timestamp":4078087528690,"id":3230,"parentId":3229,"tags":{},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2846,"timestamp":4078087528681,"id":3229,"parentId":3222,"tags":{},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3471,"timestamp":4078087528471,"id":3222,"parentId":3192,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/initialize/text.js","layer":"ssr"},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3384,"timestamp":4078087528627,"id":3226,"parentId":3225,"tags":{},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3396,"timestamp":4078087528616,"id":3225,"parentId":3220,"tags":{},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4180,"timestamp":4078087528431,"id":3220,"parentId":3192,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/initialize/document.js","layer":"ssr"},"startTime":1711860135303,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":964,"timestamp":4078087533613,"id":3238,"parentId":3237,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":987,"timestamp":4078087533593,"id":3237,"parentId":3231,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1559,"timestamp":4078087533280,"id":3231,"parentId":2980,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-html-tag-name/index.js","layer":"ssr"},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":1400,"timestamp":4078087533635,"id":3242,"parentId":3241,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1410,"timestamp":4078087533626,"id":3241,"parentId":3233,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2105,"timestamp":4078087533335,"id":3233,"parentId":2977,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-label/dev/index.js","layer":"ssr"},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1835,"timestamp":4078087533647,"id":3244,"parentId":3243,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1846,"timestamp":4078087533637,"id":3243,"parentId":3234,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2661,"timestamp":4078087533352,"id":3234,"parentId":2977,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-destination/dev/index.js","layer":"ssr"},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4254,"timestamp":4078087533657,"id":3246,"parentId":3245,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4266,"timestamp":4078087533649,"id":3245,"parentId":3235,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4781,"timestamp":4078087533368,"id":3235,"parentId":2977,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-whitespace/dev/index.js","layer":"ssr"},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4574,"timestamp":4078087533625,"id":3240,"parentId":3239,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4585,"timestamp":4078087533615,"id":3239,"parentId":3232,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5414,"timestamp":4078087533316,"id":3232,"parentId":2974,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-subtokenize/dev/index.js","layer":"ssr"},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4279,"timestamp":4078087534476,"id":3252,"parentId":3251,"tags":{},"startTime":1711860135309,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4318,"timestamp":4078087534438,"id":3251,"parentId":3249,"tags":{},"startTime":1711860135309,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4558,"timestamp":4078087534322,"id":3249,"parentId":3054,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/longest-streak/index.js","layer":"ssr"},"startTime":1711860135309,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4415,"timestamp":4078087534491,"id":3254,"parentId":3253,"tags":{},"startTime":1711860135309,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4428,"timestamp":4078087534479,"id":3253,"parentId":3250,"tags":{},"startTime":1711860135309,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4672,"timestamp":4078087534406,"id":3250,"parentId":3033,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/zwitch/index.js","layer":"ssr"},"startTime":1711860135309,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5440,"timestamp":4078087533666,"id":3248,"parentId":3247,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5449,"timestamp":4078087533659,"id":3247,"parentId":3236,"tags":{},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6000,"timestamp":4078087533383,"id":3236,"parentId":2977,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-title/dev/index.js","layer":"ssr"},"startTime":1711860135308,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2732,"timestamp":4078087540845,"id":3260,"parentId":3259,"tags":{},"startTime":1711860135316,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2756,"timestamp":4078087540823,"id":3259,"parentId":3258,"tags":{},"startTime":1711860135316,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2996,"timestamp":4078087540778,"id":3258,"parentId":3114,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-phrasing/index.js","layer":"ssr"},"startTime":1711860135316,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":807,"timestamp":4078087544749,"id":3263,"parentId":3262,"tags":{},"startTime":1711860135319,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":832,"timestamp":4078087544726,"id":3262,"parentId":3261,"tags":{},"startTime":1711860135319,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1084,"timestamp":4078087544679,"id":3261,"parentId":3036,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","layer":"ssr"},"startTime":1711860135319,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6943,"timestamp":4078087539803,"id":3257,"parentId":3256,"tags":{},"startTime":1711860135315,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6972,"timestamp":4078087539776,"id":3256,"parentId":3255,"tags":{},"startTime":1711860135315,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9046,"timestamp":4078087539563,"id":3255,"parentId":3046,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/character-entities/index.js","layer":"ssr"},"startTime":1711860135314,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3190,"timestamp":4078087545518,"id":3266,"parentId":3265,"tags":{},"startTime":1711860135320,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3208,"timestamp":4078087545501,"id":3265,"parentId":3264,"tags":{},"startTime":1711860135320,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3369,"timestamp":4078087545469,"id":3264,"parentId":3258,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-phrasing/lib/index.js","layer":"ssr"},"startTime":1711860135320,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1812,"timestamp":4078087549758,"id":3269,"parentId":3268,"tags":{},"startTime":1711860135325,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1861,"timestamp":4078087549711,"id":3268,"parentId":3267,"tags":{},"startTime":1711860135324,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2692,"timestamp":4078087549658,"id":3267,"parentId":3213,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/debug/src/browser.js","layer":"ssr"},"startTime":1711860135324,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1662,"timestamp":4078087553001,"id":3272,"parentId":3271,"tags":{},"startTime":1711860135328,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1689,"timestamp":4078087552976,"id":3271,"parentId":3270,"tags":{},"startTime":1711860135328,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2374,"timestamp":4078087552925,"id":3270,"parentId":3267,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/debug/src/common.js","layer":"ssr"},"startTime":1711860135328,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1537,"timestamp":4078087557159,"id":3275,"parentId":3274,"tags":{},"startTime":1711860135332,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1563,"timestamp":4078087557135,"id":3274,"parentId":3273,"tags":{},"startTime":1711860135332,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2086,"timestamp":4078087557085,"id":3273,"parentId":3270,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/ms/index.js","layer":"ssr"},"startTime":1711860135332,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":482491,"timestamp":4078087076745,"id":2116,"parentId":2115,"tags":{},"startTime":1711860134851,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":5647,"timestamp":4078087583352,"id":3277,"parentId":3276,"tags":{},"startTime":1711860135358,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":12,"timestamp":4078087589054,"id":3279,"parentId":3276,"tags":{},"startTime":1711860135364,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":142,"timestamp":4078087589124,"id":3280,"parentId":3276,"tags":{},"startTime":1711860135364,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":8,"timestamp":4078087589286,"id":3281,"parentId":3276,"tags":{},"startTime":1711860135364,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":4,"timestamp":4078087589310,"id":3282,"parentId":3276,"tags":{},"startTime":1711860135364,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":2123,"timestamp":4078087589036,"id":3278,"parentId":3276,"tags":{},"startTime":1711860135364,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":7589,"timestamp":4078087594152,"id":3283,"parentId":3276,"tags":{},"startTime":1711860135369,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":22412,"timestamp":4078087601820,"id":3284,"parentId":3276,"tags":{},"startTime":1711860135377,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":8664,"timestamp":4078087626392,"id":3285,"parentId":3276,"tags":{},"startTime":1711860135401,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":98,"timestamp":4078087635055,"id":3286,"parentId":3276,"tags":{},"startTime":1711860135410,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":131,"timestamp":4078087635143,"id":3287,"parentId":3276,"tags":{},"startTime":1711860135410,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":88029,"timestamp":4078087635277,"id":3288,"parentId":3276,"tags":{},"startTime":1711860135410,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":151289,"timestamp":4078087577417,"id":3276,"parentId":2115,"tags":{},"startTime":1711860135352,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":655172,"timestamp":4078087076304,"id":2115,"parentId":2113,"tags":{"name":"edge-server"},"startTime":1711860134851,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":40339,"timestamp":4078087731520,"id":3289,"parentId":2113,"tags":{},"startTime":1711860135506,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-edge-server","duration":699189,"timestamp":4078087074248,"id":2113,"parentId":3,"tags":{"trigger":"manual"},"startTime":1711860134849,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":2573,"timestamp":4078087780396,"id":3294,"parentId":3291,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1711860135555,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":8751,"timestamp":4078087780349,"id":3292,"parentId":3291,"tags":{"request":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1711860135555,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css&server=false!","duration":1950,"timestamp":4078087806721,"id":3298,"parentId":3295,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&server=false!","layer":"app-pages-browser"},"startTime":1711860135581,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js&server=false!","duration":2785,"timestamp":4078087808699,"id":3299,"parentId":3297,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2FMessagePoster.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fcomponents%2FQueryAI.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fimage-component.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=false!","layer":"app-pages-browser"},"startTime":1711860135583,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":31120,"timestamp":4078087780402,"id":3296,"parentId":3291,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=false!"},"startTime":1711860135555,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":31910,"timestamp":4078087780390,"id":3293,"parentId":3291,"tags":{"request":"./../../node_modules/next/dist/client/app-next-dev.js"},"startTime":1711860135555,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":33661,"timestamp":4078087780399,"id":3295,"parentId":3291,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&server=false!"},"startTime":1711860135555,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8980,"timestamp":4078087813867,"id":3302,"parentId":3301,"tags":{},"startTime":1711860135589,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9076,"timestamp":4078087813824,"id":3301,"parentId":3300,"tags":{},"startTime":1711860135589,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":10311,"timestamp":4078087813397,"id":3300,"parentId":3299,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx","layer":"app-pages-browser"},"startTime":1711860135588,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9746,"timestamp":4078087814026,"id":3305,"parentId":3304,"tags":{},"startTime":1711860135589,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9766,"timestamp":4078087814007,"id":3304,"parentId":3303,"tags":{},"startTime":1711860135589,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":10501,"timestamp":4078087813968,"id":3303,"parentId":3299,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/QueryAI.tsx","layer":"app-pages-browser"},"startTime":1711860135589,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4652,"timestamp":4078087828359,"id":3314,"parentId":3313,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4672,"timestamp":4078087828343,"id":3313,"parentId":3307,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":5374,"timestamp":4078087828188,"id":3307,"parentId":3303,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/SearchResults.tsx","layer":"app-pages-browser"},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7390,"timestamp":4078087828340,"id":3312,"parentId":3311,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7441,"timestamp":4078087828293,"id":3311,"parentId":3306,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7842,"timestamp":4078087828109,"id":3306,"parentId":3300,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/jsx-dev-runtime.js","layer":"app-pages-browser"},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7586,"timestamp":4078087828383,"id":3318,"parentId":3317,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7596,"timestamp":4078087828374,"id":3317,"parentId":3309,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":8150,"timestamp":4078087828243,"id":3309,"parentId":3303,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/input.tsx","layer":"app-pages-browser"},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8035,"timestamp":4078087828372,"id":3316,"parentId":3315,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8047,"timestamp":4078087828361,"id":3315,"parentId":3308,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":8482,"timestamp":4078087828220,"id":3308,"parentId":3303,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/label.tsx","layer":"app-pages-browser"},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8328,"timestamp":4078087828393,"id":3320,"parentId":3319,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8337,"timestamp":4078087828385,"id":3319,"parentId":3310,"tags":{},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":8758,"timestamp":4078087828265,"id":3310,"parentId":3303,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/button.tsx","layer":"app-pages-browser"},"startTime":1711860135603,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10951,"timestamp":4078087829122,"id":3323,"parentId":3322,"tags":{},"startTime":1711860135604,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10998,"timestamp":4078087829077,"id":3322,"parentId":3321,"tags":{},"startTime":1711860135604,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12240,"timestamp":4078087829011,"id":3321,"parentId":3299,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/client/image-component.js","layer":"app-pages-browser"},"startTime":1711860135604,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":850,"timestamp":4078087842491,"id":3332,"parentId":3331,"tags":{},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":860,"timestamp":4078087842483,"id":3331,"parentId":3326,"tags":{},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-ts","duration":1252,"timestamp":4078087842385,"id":3326,"parentId":3309,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/lib/utils.ts","layer":"app-pages-browser"},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1079,"timestamp":4078087843024,"id":3337,"parentId":3336,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1095,"timestamp":4078087843009,"id":3336,"parentId":3333,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1298,"timestamp":4078087842933,"id":3333,"parentId":3307,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/react-markdown/index.js","layer":"app-pages-browser"},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1787,"timestamp":4078087842480,"id":3330,"parentId":3329,"tags":{},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1799,"timestamp":4078087842469,"id":3329,"parentId":3325,"tags":{},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":2327,"timestamp":4078087842357,"id":3325,"parentId":3307,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/components/ui/card.tsx","layer":"app-pages-browser"},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3071,"timestamp":4078087843036,"id":3339,"parentId":3338,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3082,"timestamp":4078087843026,"id":3338,"parentId":3334,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":3397,"timestamp":4078087842959,"id":3334,"parentId":3307,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-gfm/index.js","layer":"app-pages-browser"},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3424,"timestamp":4078087843046,"id":3341,"parentId":3340,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3434,"timestamp":4078087843037,"id":3340,"parentId":3335,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":3878,"timestamp":4078087842978,"id":3335,"parentId":3308,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/class-variance-authority/dist/index.mjs","layer":"app-pages-browser"},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3577,"timestamp":4078087843291,"id":3345,"parentId":3344,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3589,"timestamp":4078087843280,"id":3344,"parentId":3342,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":3788,"timestamp":4078087843242,"id":3342,"parentId":3308,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@radix-ui/react-label/dist/index.mjs","layer":"app-pages-browser"},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3758,"timestamp":4078087843302,"id":3347,"parentId":3346,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3768,"timestamp":4078087843293,"id":3346,"parentId":3343,"tags":{},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":4350,"timestamp":4078087843262,"id":3343,"parentId":3310,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@radix-ui/react-slot/dist/index.mjs","layer":"app-pages-browser"},"startTime":1711860135618,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8241,"timestamp":4078087842467,"id":3328,"parentId":3327,"tags":{},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8283,"timestamp":4078087842427,"id":3327,"parentId":3324,"tags":{},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11019,"timestamp":4078087842300,"id":3324,"parentId":3306,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js","layer":"app-pages-browser"},"startTime":1711860135617,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4465,"timestamp":4078087848872,"id":3351,"parentId":3350,"tags":{},"startTime":1711860135624,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4497,"timestamp":4078087848841,"id":3350,"parentId":3348,"tags":{},"startTime":1711860135624,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":4881,"timestamp":4078087848685,"id":3348,"parentId":3326,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/clsx/dist/clsx.mjs","layer":"app-pages-browser"},"startTime":1711860135623,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1456,"timestamp":4078087854302,"id":3359,"parentId":3358,"tags":{},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1473,"timestamp":4078087854286,"id":3358,"parentId":3357,"tags":{},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1704,"timestamp":4078087854240,"id":3357,"parentId":3334,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-gfm/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2971,"timestamp":4078087853794,"id":3356,"parentId":3355,"tags":{},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3005,"timestamp":4078087853769,"id":3355,"parentId":3354,"tags":{},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5363,"timestamp":4078087853710,"id":3354,"parentId":3333,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/react-markdown/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135628,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12294,"timestamp":4078087848887,"id":3353,"parentId":3352,"tags":{},"startTime":1711860135624,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12309,"timestamp":4078087848875,"id":3352,"parentId":3349,"tags":{},"startTime":1711860135624,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":15812,"timestamp":4078087848744,"id":3349,"parentId":3326,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/tailwind-merge/dist/bundle-mjs.mjs","layer":"app-pages-browser"},"startTime":1711860135623,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9758,"timestamp":4078087854825,"id":3370,"parentId":3369,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9769,"timestamp":4078087854815,"id":3369,"parentId":3362,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10190,"timestamp":4078087854715,"id":3362,"parentId":3321,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/image-config.js","layer":"app-pages-browser"},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10183,"timestamp":4078087854814,"id":3368,"parentId":3367,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10194,"timestamp":4078087854804,"id":3367,"parentId":3361,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14285,"timestamp":4078087854694,"id":3361,"parentId":3321,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/get-img-props.js","layer":"app-pages-browser"},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14311,"timestamp":4078087854802,"id":3366,"parentId":3365,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14328,"timestamp":4078087854786,"id":3365,"parentId":3360,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15379,"timestamp":4078087854666,"id":3360,"parentId":3321,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/head.js","layer":"app-pages-browser"},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15228,"timestamp":4078087854835,"id":3372,"parentId":3371,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15237,"timestamp":4078087854826,"id":3371,"parentId":3363,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15597,"timestamp":4078087854734,"id":3363,"parentId":3321,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1711860135629,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15498,"timestamp":4078087854844,"id":3374,"parentId":3373,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15507,"timestamp":4078087854836,"id":3373,"parentId":3364,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15787,"timestamp":4078087854753,"id":3364,"parentId":3321,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/router-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14866,"timestamp":4078087855682,"id":3382,"parentId":3381,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14880,"timestamp":4078087855669,"id":3381,"parentId":3378,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":15434,"timestamp":4078087855286,"id":3378,"parentId":3335,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","layer":"app-pages-browser"},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15540,"timestamp":4078087855189,"id":3377,"parentId":3376,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15554,"timestamp":4078087855176,"id":3376,"parentId":3375,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15699,"timestamp":4078087855141,"id":3375,"parentId":3342,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@babel/runtime/helpers/esm/extends.js","layer":"app-pages-browser"},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15150,"timestamp":4078087855703,"id":3386,"parentId":3385,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15159,"timestamp":4078087855694,"id":3385,"parentId":3380,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":15361,"timestamp":4078087855648,"id":3380,"parentId":3343,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","layer":"app-pages-browser"},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15346,"timestamp":4078087855693,"id":3384,"parentId":3383,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15356,"timestamp":4078087855684,"id":3383,"parentId":3379,"tags":{},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":15789,"timestamp":4078087855475,"id":3379,"parentId":3342,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@radix-ui/react-primitive/dist/index.mjs","layer":"app-pages-browser"},"startTime":1711860135630,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2194,"timestamp":4078087872313,"id":3390,"parentId":3389,"tags":{},"startTime":1711860135647,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2226,"timestamp":4078087872283,"id":3389,"parentId":3387,"tags":{},"startTime":1711860135647,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2473,"timestamp":4078087872130,"id":3387,"parentId":3357,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm/index.js","layer":"app-pages-browser"},"startTime":1711860135647,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2288,"timestamp":4078087872327,"id":3392,"parentId":3391,"tags":{},"startTime":1711860135647,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2300,"timestamp":4078087872316,"id":3391,"parentId":3388,"tags":{},"startTime":1711860135647,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2585,"timestamp":4078087872190,"id":3388,"parentId":3357,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm/index.js","layer":"app-pages-browser"},"startTime":1711860135647,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1565,"timestamp":4078087877480,"id":3409,"parentId":3408,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1576,"timestamp":4078087877472,"id":3408,"parentId":3396,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1972,"timestamp":4078087877198,"id":3396,"parentId":3354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-parse/index.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1715,"timestamp":4078087877470,"id":3407,"parentId":3406,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1725,"timestamp":4078087877461,"id":3406,"parentId":3395,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2087,"timestamp":4078087877178,"id":3395,"parentId":3354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/html-url-attributes/index.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1781,"timestamp":4078087877492,"id":3411,"parentId":3410,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1791,"timestamp":4078087877482,"id":3410,"parentId":3397,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2207,"timestamp":4078087877237,"id":3397,"parentId":3354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-rehype/index.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2027,"timestamp":4078087877445,"id":3403,"parentId":3402,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2061,"timestamp":4078087877412,"id":3402,"parentId":3393,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2609,"timestamp":4078087877064,"id":3393,"parentId":3387,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3875,"timestamp":4078087877459,"id":3405,"parentId":3404,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3889,"timestamp":4078087877448,"id":3404,"parentId":3394,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4310,"timestamp":4078087877149,"id":3394,"parentId":3354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/hast-util-to-jsx-runtime/index.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3972,"timestamp":4078087877501,"id":3413,"parentId":3412,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3980,"timestamp":4078087877493,"id":3412,"parentId":3398,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4240,"timestamp":4078087877301,"id":3398,"parentId":3354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unified/index.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4028,"timestamp":4078087877520,"id":3417,"parentId":3416,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4037,"timestamp":4078087877512,"id":3416,"parentId":3400,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4256,"timestamp":4078087877342,"id":3400,"parentId":3354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/index.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4096,"timestamp":4078087877510,"id":3415,"parentId":3414,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4104,"timestamp":4078087877502,"id":3414,"parentId":3399,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4339,"timestamp":4078087877323,"id":3399,"parentId":3354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit/index.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4231,"timestamp":4078087877529,"id":3419,"parentId":3418,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4240,"timestamp":4078087877521,"id":3418,"parentId":3401,"tags":{},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4965,"timestamp":4078087877358,"id":3401,"parentId":3354,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/devlop/lib/development.js","layer":"app-pages-browser"},"startTime":1711860135652,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2082,"timestamp":4078087880256,"id":3429,"parentId":3428,"tags":{},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2092,"timestamp":4078087880247,"id":3428,"parentId":3422,"tags":{},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2541,"timestamp":4078087880070,"id":3422,"parentId":3360,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/amp-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2356,"timestamp":4078087880266,"id":3431,"parentId":3430,"tags":{},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2364,"timestamp":4078087880258,"id":3430,"parentId":3423,"tags":{},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2728,"timestamp":4078087880092,"id":3423,"parentId":3360,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/amp-mode.js","layer":"app-pages-browser"},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2589,"timestamp":4078087880246,"id":3427,"parentId":3426,"tags":{},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2601,"timestamp":4078087880235,"id":3426,"parentId":3421,"tags":{},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3119,"timestamp":4078087880044,"id":3421,"parentId":3360,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/side-effect.js","layer":"app-pages-browser"},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2942,"timestamp":4078087880233,"id":3425,"parentId":3424,"tags":{},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2967,"timestamp":4078087880209,"id":3424,"parentId":3420,"tags":{},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3414,"timestamp":4078087879997,"id":3420,"parentId":3361,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/image-blur-svg.js","layer":"app-pages-browser"},"startTime":1711860135655,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":937,"timestamp":4078087885344,"id":3443,"parentId":3442,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":950,"timestamp":4078087885334,"id":3442,"parentId":3433,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1361,"timestamp":4078087885041,"id":3433,"parentId":3388,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-tagfilter/index.js","layer":"app-pages-browser"},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1851,"timestamp":4078087885355,"id":3445,"parentId":3444,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":2113,"timestamp":4078087885346,"id":3444,"parentId":3434,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2719,"timestamp":4078087885106,"id":3434,"parentId":3388,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2466,"timestamp":4078087885375,"id":3449,"parentId":3448,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2476,"timestamp":4078087885367,"id":3448,"parentId":3436,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2779,"timestamp":4078087885173,"id":3436,"parentId":3388,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-strikethrough/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2594,"timestamp":4078087885365,"id":3447,"parentId":3446,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2604,"timestamp":4078087885357,"id":3446,"parentId":3435,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2871,"timestamp":4078087885153,"id":3435,"parentId":3388,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-footnote/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2645,"timestamp":4078087885385,"id":3451,"parentId":3450,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2654,"timestamp":4078087885377,"id":3450,"parentId":3437,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2893,"timestamp":4078087885191,"id":3437,"parentId":3388,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2813,"timestamp":4078087885395,"id":3453,"parentId":3452,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2822,"timestamp":4078087885387,"id":3452,"parentId":3438,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3060,"timestamp":4078087885207,"id":3438,"parentId":3388,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-task-list-item/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2953,"timestamp":4078087885331,"id":3441,"parentId":3440,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2978,"timestamp":4078087885307,"id":3440,"parentId":3432,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3566,"timestamp":4078087885002,"id":3432,"parentId":3388,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-combine-extensions/index.js","layer":"app-pages-browser"},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4298,"timestamp":4078087886605,"id":3462,"parentId":3461,"tags":{},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4312,"timestamp":4078087886593,"id":3461,"parentId":3457,"tags":{},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4558,"timestamp":4078087886495,"id":3457,"parentId":3395,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/html-url-attributes/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5667,"timestamp":4078087885406,"id":3455,"parentId":3454,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5678,"timestamp":4078087885396,"id":3454,"parentId":3439,"tags":{},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6339,"timestamp":4078087885224,"id":3439,"parentId":3321,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/image-loader.js","layer":"app-pages-browser"},"startTime":1711860135660,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4978,"timestamp":4078087886615,"id":3464,"parentId":3463,"tags":{},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4988,"timestamp":4078087886606,"id":3463,"parentId":3458,"tags":{},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5505,"timestamp":4078087886518,"id":3458,"parentId":3397,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-rehype/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5673,"timestamp":4078087886591,"id":3460,"parentId":3459,"tags":{},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5693,"timestamp":4078087886571,"id":3459,"parentId":3456,"tags":{},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6186,"timestamp":4078087886466,"id":3456,"parentId":3396,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/remark-parse/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135661,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3544,"timestamp":4078087889296,"id":3476,"parentId":3475,"tags":{},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3556,"timestamp":4078087889287,"id":3475,"parentId":3468,"tags":{},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4407,"timestamp":4078087889033,"id":3468,"parentId":3399,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7354,"timestamp":4078087889285,"id":3474,"parentId":3473,"tags":{},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7367,"timestamp":4078087889275,"id":3473,"parentId":3467,"tags":{},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12881,"timestamp":4078087889015,"id":3467,"parentId":3400,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12825,"timestamp":4078087889272,"id":3472,"parentId":3471,"tags":{},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12850,"timestamp":4078087889250,"id":3471,"parentId":3466,"tags":{},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14646,"timestamp":4078087888993,"id":3466,"parentId":3398,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unified/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14558,"timestamp":4078087889234,"id":3470,"parentId":3469,"tags":{},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14590,"timestamp":4078087889203,"id":3469,"parentId":3465,"tags":{},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16275,"timestamp":4078087888956,"id":3465,"parentId":3394,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/hast-util-to-jsx-runtime/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135664,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10962,"timestamp":4078087894661,"id":3492,"parentId":3491,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10972,"timestamp":4078087894652,"id":3491,"parentId":3480,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11311,"timestamp":4078087894403,"id":3480,"parentId":3393,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-footnote/index.js","layer":"app-pages-browser"},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11073,"timestamp":4078087894651,"id":3490,"parentId":3489,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11083,"timestamp":4078087894641,"id":3489,"parentId":3479,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11399,"timestamp":4078087894383,"id":3479,"parentId":3393,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-autolink-literal/index.js","layer":"app-pages-browser"},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11150,"timestamp":4078087894640,"id":3488,"parentId":3487,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11163,"timestamp":4078087894628,"id":3487,"parentId":3478,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11500,"timestamp":4078087894363,"id":3478,"parentId":3397,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/index.js","layer":"app-pages-browser"},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11256,"timestamp":4078087894625,"id":3486,"parentId":3485,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11283,"timestamp":4078087894599,"id":3485,"parentId":3477,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11737,"timestamp":4078087894320,"id":3477,"parentId":3433,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-tagfilter/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11376,"timestamp":4078087894690,"id":3498,"parentId":3497,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11385,"timestamp":4078087894681,"id":3497,"parentId":3483,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11669,"timestamp":4078087894453,"id":3483,"parentId":3393,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-task-list-item/index.js","layer":"app-pages-browser"},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11448,"timestamp":4078087894680,"id":3496,"parentId":3495,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11457,"timestamp":4078087894672,"id":3495,"parentId":3482,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11740,"timestamp":4078087894437,"id":3482,"parentId":3393,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-table/index.js","layer":"app-pages-browser"},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11577,"timestamp":4078087894670,"id":3494,"parentId":3493,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11586,"timestamp":4078087894662,"id":3493,"parentId":3481,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11880,"timestamp":4078087894419,"id":3481,"parentId":3393,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-strikethrough/index.js","layer":"app-pages-browser"},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21382,"timestamp":4078087894699,"id":3500,"parentId":3499,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21392,"timestamp":4078087894691,"id":3499,"parentId":3484,"tags":{},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":22090,"timestamp":4078087894469,"id":3484,"parentId":3401,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/dequal/dist/index.mjs","layer":"app-pages-browser"},"startTime":1711860135669,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8697,"timestamp":4078087907908,"id":3516,"parentId":3515,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8708,"timestamp":4078087907898,"id":3515,"parentId":3503,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9223,"timestamp":4078087907521,"id":3503,"parentId":3436,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-strikethrough/dev/lib/html.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8861,"timestamp":4078087907896,"id":3514,"parentId":3513,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8876,"timestamp":4078087907881,"id":3513,"parentId":3502,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9527,"timestamp":4078087907494,"id":3502,"parentId":3434,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/html.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9128,"timestamp":4078087907919,"id":3518,"parentId":3517,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9138,"timestamp":4078087907910,"id":3517,"parentId":3504,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9928,"timestamp":4078087907544,"id":3504,"parentId":3436,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9724,"timestamp":4078087907876,"id":3512,"parentId":3511,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9775,"timestamp":4078087907826,"id":3511,"parentId":3501,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11928,"timestamp":4078087907420,"id":3501,"parentId":3434,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11436,"timestamp":4078087907950,"id":3524,"parentId":3523,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11445,"timestamp":4078087907942,"id":3523,"parentId":3507,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12175,"timestamp":4078087907603,"id":3507,"parentId":3437,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/lib/html.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11818,"timestamp":4078087907970,"id":3528,"parentId":3527,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11828,"timestamp":4078087907962,"id":3527,"parentId":3509,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12236,"timestamp":4078087907638,"id":3509,"parentId":3438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-task-list-item/dev/lib/html.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12030,"timestamp":4078087907929,"id":3520,"parentId":3519,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12039,"timestamp":4078087907921,"id":3519,"parentId":3505,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13232,"timestamp":4078087907564,"id":3505,"parentId":3435,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12914,"timestamp":4078087907940,"id":3522,"parentId":3521,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12924,"timestamp":4078087907931,"id":3521,"parentId":3506,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13802,"timestamp":4078087907583,"id":3506,"parentId":3435,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-footnote/dev/lib/html.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13438,"timestamp":4078087907980,"id":3530,"parentId":3529,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13447,"timestamp":4078087907972,"id":3529,"parentId":3510,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14049,"timestamp":4078087907655,"id":3510,"parentId":3438,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13861,"timestamp":4078087907960,"id":3526,"parentId":3525,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13871,"timestamp":4078087907952,"id":3525,"parentId":3508,"tags":{},"startTime":1711860135683,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15450,"timestamp":4078087907619,"id":3508,"parentId":3437,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js","layer":"app-pages-browser"},"startTime":1711860135682,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1309,"timestamp":4078087929781,"id":3551,"parentId":3550,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1321,"timestamp":4078087929773,"id":3550,"parentId":3533,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1961,"timestamp":4078087929469,"id":3533,"parentId":3478,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4448,"timestamp":4078087929792,"id":3553,"parentId":3552,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4462,"timestamp":4078087929783,"id":3552,"parentId":3534,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5356,"timestamp":4078087929488,"id":3534,"parentId":3478,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/footer.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":5271,"timestamp":4078087929771,"id":3549,"parentId":3548,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5284,"timestamp":4078087929759,"id":3548,"parentId":3532,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6217,"timestamp":4078087929444,"id":3532,"parentId":3479,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-autolink-literal/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5863,"timestamp":4078087929819,"id":3559,"parentId":3558,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5872,"timestamp":4078087929811,"id":3558,"parentId":3537,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6389,"timestamp":4078087929540,"id":3537,"parentId":3481,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-strikethrough/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6180,"timestamp":4078087929801,"id":3555,"parentId":3554,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6190,"timestamp":4078087929793,"id":3554,"parentId":3535,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6814,"timestamp":4078087929505,"id":3535,"parentId":3483,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-task-list-item/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6584,"timestamp":4078087929757,"id":3547,"parentId":3546,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6619,"timestamp":4078087929723,"id":3546,"parentId":3531,"tags":{},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7263,"timestamp":4078087929374,"id":3531,"parentId":3480,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-footnote/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6795,"timestamp":4078087929852,"id":3565,"parentId":3564,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6803,"timestamp":4078087929844,"id":3564,"parentId":3540,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7127,"timestamp":4078087929594,"id":3540,"parentId":3467,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/minproc.browser.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6961,"timestamp":4078087929810,"id":3557,"parentId":3556,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6969,"timestamp":4078087929802,"id":3556,"parentId":3536,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7685,"timestamp":4078087929522,"id":3536,"parentId":3482,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-gfm-table/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7391,"timestamp":4078087929832,"id":3561,"parentId":3560,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7403,"timestamp":4078087929820,"id":3560,"parentId":3538,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7787,"timestamp":4078087929562,"id":3538,"parentId":3466,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unified/lib/callable-instance.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7567,"timestamp":4078087929842,"id":3563,"parentId":3562,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7577,"timestamp":4078087929833,"id":3562,"parentId":3539,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8484,"timestamp":4078087929579,"id":3539,"parentId":3467,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/minpath.browser.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8225,"timestamp":4078087929861,"id":3567,"parentId":3566,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8234,"timestamp":4078087929853,"id":3566,"parentId":3541,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8786,"timestamp":4078087929609,"id":3541,"parentId":3467,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/minurl.browser.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8542,"timestamp":4078087929871,"id":3569,"parentId":3568,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8551,"timestamp":4078087929862,"id":3568,"parentId":3542,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8997,"timestamp":4078087929624,"id":3542,"parentId":3478,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8741,"timestamp":4078087929888,"id":3573,"parentId":3572,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8749,"timestamp":4078087929881,"id":3572,"parentId":3544,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9038,"timestamp":4078087929657,"id":3544,"parentId":3468,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit-parents/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8835,"timestamp":4078087929879,"id":3571,"parentId":3570,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8843,"timestamp":4078087929872,"id":3570,"parentId":3543,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9254,"timestamp":4078087929642,"id":3543,"parentId":3432,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-chunked/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16865,"timestamp":4078087929897,"id":3575,"parentId":3574,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16875,"timestamp":4078087929889,"id":3574,"parentId":3545,"tags":{},"startTime":1711860135705,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17217,"timestamp":4078087929671,"id":3545,"parentId":3456,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-from-markdown/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135704,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14634,"timestamp":4078087932292,"id":3580,"parentId":3579,"tags":{},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14663,"timestamp":4078087932263,"id":3579,"parentId":3576,"tags":{},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15186,"timestamp":4078087932060,"id":3576,"parentId":3508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js","layer":"app-pages-browser"},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14970,"timestamp":4078087932307,"id":3582,"parentId":3581,"tags":{},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14984,"timestamp":4078087932294,"id":3581,"parentId":3577,"tags":{},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15338,"timestamp":4078087932108,"id":3577,"parentId":3508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-extension-gfm-table/dev/lib/infer.js","layer":"app-pages-browser"},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15140,"timestamp":4078087932321,"id":3584,"parentId":3583,"tags":{},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15152,"timestamp":4078087932309,"id":3583,"parentId":3578,"tags":{},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15765,"timestamp":4078087932130,"id":3578,"parentId":3439,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/shared/lib/match-remote-pattern.js","layer":"app-pages-browser"},"startTime":1711860135707,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7503,"timestamp":4078087940405,"id":3601,"parentId":3600,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7513,"timestamp":4078087940396,"id":3600,"parentId":3587,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7959,"timestamp":4078087940028,"id":3587,"parentId":3465,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/hast-util-whitespace/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7599,"timestamp":4078087940395,"id":3599,"parentId":3598,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7611,"timestamp":4078087940384,"id":3598,"parentId":3586,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8046,"timestamp":4078087940006,"id":3586,"parentId":3465,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/estree-util-is-identifier-name/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7642,"timestamp":4078087940415,"id":3603,"parentId":3602,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7651,"timestamp":4078087940407,"id":3602,"parentId":3588,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8061,"timestamp":4078087940045,"id":3588,"parentId":3465,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-position/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7686,"timestamp":4078087940425,"id":3605,"parentId":3604,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7695,"timestamp":4078087940417,"id":3604,"parentId":3589,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-mjs","duration":8142,"timestamp":4078087940062,"id":3589,"parentId":3465,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/style-to-object/esm/index.mjs","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7767,"timestamp":4078087940443,"id":3609,"parentId":3608,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7775,"timestamp":4078087940436,"id":3608,"parentId":3591,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8166,"timestamp":4078087940095,"id":3591,"parentId":3466,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/trough/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7885,"timestamp":4078087940381,"id":3597,"parentId":3596,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7911,"timestamp":4078087940355,"id":3596,"parentId":3585,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8347,"timestamp":4078087939960,"id":3585,"parentId":3467,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile-message/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7879,"timestamp":4078087940434,"id":3607,"parentId":3606,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7887,"timestamp":4078087940426,"id":3606,"parentId":3590,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8316,"timestamp":4078087940079,"id":3590,"parentId":3466,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/is-plain-obj/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7942,"timestamp":4078087940461,"id":3613,"parentId":3612,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7950,"timestamp":4078087940454,"id":3612,"parentId":3593,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8416,"timestamp":4078087940126,"id":3593,"parentId":3465,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8065,"timestamp":4078087940483,"id":3617,"parentId":3616,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8074,"timestamp":4078087940474,"id":3616,"parentId":3595,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8441,"timestamp":4078087940155,"id":3595,"parentId":3466,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/bail/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8155,"timestamp":4078087940452,"id":3611,"parentId":3610,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8163,"timestamp":4078087940445,"id":3610,"parentId":3592,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8631,"timestamp":4078087940111,"id":3592,"parentId":3465,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/comma-separated-tokens/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8276,"timestamp":4078087940473,"id":3615,"parentId":3614,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8286,"timestamp":4078087940463,"id":3614,"parentId":3594,"tags":{},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8684,"timestamp":4078087940141,"id":3594,"parentId":3465,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/space-separated-tokens/index.js","layer":"app-pages-browser"},"startTime":1711860135715,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1863,"timestamp":4078087949859,"id":3628,"parentId":3627,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1873,"timestamp":4078087949850,"id":3627,"parentId":3620,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2281,"timestamp":4078087949567,"id":3620,"parentId":3504,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-resolve-all/index.js","layer":"app-pages-browser"},"startTime":1711860135724,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1993,"timestamp":4078087949869,"id":3630,"parentId":3629,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2002,"timestamp":4078087949860,"id":3629,"parentId":3621,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2577,"timestamp":4078087949584,"id":3621,"parentId":3504,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-classify-character/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135724,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2293,"timestamp":4078087949878,"id":3632,"parentId":3631,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2301,"timestamp":4078087949870,"id":3631,"parentId":3622,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2663,"timestamp":4078087949601,"id":3622,"parentId":3504,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/default.js","layer":"app-pages-browser"},"startTime":1711860135724,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2474,"timestamp":4078087949849,"id":3626,"parentId":3625,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2485,"timestamp":4078087949838,"id":3625,"parentId":3619,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3209,"timestamp":4078087949547,"id":3619,"parentId":3466,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unified/node_modules/extend/index.js","layer":"app-pages-browser"},"startTime":1711860135724,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2990,"timestamp":4078087949835,"id":3624,"parentId":3623,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3021,"timestamp":4078087949805,"id":3623,"parentId":3618,"tags":{},"startTime":1711860135725,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3939,"timestamp":4078087949502,"id":3618,"parentId":3533,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/state.js","layer":"app-pages-browser"},"startTime":1711860135724,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1695,"timestamp":4078087954719,"id":3668,"parentId":3667,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1706,"timestamp":4078087954710,"id":3667,"parentId":3635,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2587,"timestamp":4078087953962,"id":3635,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1832,"timestamp":4078087954729,"id":3670,"parentId":3669,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1841,"timestamp":4078087954720,"id":3669,"parentId":3636,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":3264,"timestamp":4078087953980,"id":3636,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/break.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2552,"timestamp":4078087954708,"id":3666,"parentId":3665,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2565,"timestamp":4078087954696,"id":3665,"parentId":3634,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3424,"timestamp":4078087953941,"id":3634,"parentId":3541,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile/lib/minurl.shared.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3664,"timestamp":4078087954692,"id":3664,"parentId":3663,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3697,"timestamp":4078087954660,"id":3663,"parentId":3633,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5430,"timestamp":4078087953899,"id":3633,"parentId":3544,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit-parents/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4605,"timestamp":4078087954739,"id":3672,"parentId":3671,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4615,"timestamp":4078087954730,"id":3671,"parentId":3637,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5757,"timestamp":4078087953997,"id":3637,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/code.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5016,"timestamp":4078087954748,"id":3674,"parentId":3673,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5025,"timestamp":4078087954740,"id":3673,"parentId":3638,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5828,"timestamp":4078087954014,"id":3638,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/delete.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5094,"timestamp":4078087954758,"id":3676,"parentId":3675,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5102,"timestamp":4078087954750,"id":3675,"parentId":3639,"tags":{},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5889,"timestamp":4078087954029,"id":3639,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5141,"timestamp":4078087954786,"id":3682,"parentId":3681,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5149,"timestamp":4078087954778,"id":3681,"parentId":3642,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5965,"timestamp":4078087954076,"id":3642,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/html.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5246,"timestamp":4078087954804,"id":3686,"parentId":3685,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5254,"timestamp":4078087954797,"id":3685,"parentId":3644,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6047,"timestamp":4078087954107,"id":3644,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/image.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5400,"timestamp":4078087954767,"id":3678,"parentId":3677,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5409,"timestamp":4078087954759,"id":3677,"parentId":3640,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6265,"timestamp":4078087954045,"id":3640,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5541,"timestamp":4078087954777,"id":3680,"parentId":3679,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5550,"timestamp":4078087954768,"id":3679,"parentId":3641,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7149,"timestamp":4078087954060,"id":3641,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/heading.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6400,"timestamp":4078087954818,"id":3688,"parentId":3687,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6413,"timestamp":4078087954806,"id":3687,"parentId":3645,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7125,"timestamp":4078087954183,"id":3645,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7573,"timestamp":4078087954827,"id":3690,"parentId":3689,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7582,"timestamp":4078087954819,"id":3689,"parentId":3646,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8355,"timestamp":4078087954200,"id":3646,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7745,"timestamp":4078087954857,"id":3694,"parentId":3693,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7765,"timestamp":4078087954838,"id":3693,"parentId":3648,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8652,"timestamp":4078087954232,"id":3648,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8100,"timestamp":4078087954795,"id":3684,"parentId":3683,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8108,"timestamp":4078087954788,"id":3683,"parentId":3643,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8981,"timestamp":4078087954091,"id":3643,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8219,"timestamp":4078087954867,"id":3696,"parentId":3695,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8229,"timestamp":4078087954859,"id":3695,"parentId":3649,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8980,"timestamp":4078087954247,"id":3649,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/list.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8350,"timestamp":4078087954886,"id":3700,"parentId":3699,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8359,"timestamp":4078087954878,"id":3699,"parentId":3651,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9027,"timestamp":4078087954278,"id":3651,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/root.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8436,"timestamp":4078087954876,"id":3698,"parentId":3697,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8444,"timestamp":4078087954869,"id":3697,"parentId":3650,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9113,"timestamp":4078087954262,"id":3650,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8547,"timestamp":4078087954836,"id":3692,"parentId":3691,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8555,"timestamp":4078087954829,"id":3691,"parentId":3647,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9266,"timestamp":4078087954216,"id":3647,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/link.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8595,"timestamp":4078087954895,"id":3702,"parentId":3701,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8604,"timestamp":4078087954888,"id":3701,"parentId":3652,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9259,"timestamp":4078087954292,"id":3652,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/strong.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8626,"timestamp":4078087954932,"id":3710,"parentId":3709,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8635,"timestamp":4078087954924,"id":3709,"parentId":3656,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9271,"timestamp":4078087954351,"id":3656,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/text.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8706,"timestamp":4078087954923,"id":3708,"parentId":3707,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8715,"timestamp":4078087954915,"id":3707,"parentId":3655,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9353,"timestamp":4078087954336,"id":3655,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8796,"timestamp":4078087954905,"id":3704,"parentId":3703,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8805,"timestamp":4078087954897,"id":3703,"parentId":3653,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9509,"timestamp":4078087954306,"id":3653,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/table.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8914,"timestamp":4078087954914,"id":3706,"parentId":3705,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8922,"timestamp":4078087954906,"id":3705,"parentId":3654,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9636,"timestamp":4078087954321,"id":3654,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9015,"timestamp":4078087954963,"id":3716,"parentId":3715,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9026,"timestamp":4078087954953,"id":3715,"parentId":3659,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10705,"timestamp":4078087954438,"id":3659,"parentId":3501,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-character/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10175,"timestamp":4078087954984,"id":3720,"parentId":3719,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10184,"timestamp":4078087954976,"id":3719,"parentId":3661,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10891,"timestamp":4078087954470,"id":3661,"parentId":3505,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10857,"timestamp":4078087954952,"id":3714,"parentId":3713,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10867,"timestamp":4078087954942,"id":3713,"parentId":3658,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11934,"timestamp":4078087954420,"id":3658,"parentId":3502,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-sanitize-uri/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11459,"timestamp":4078087954974,"id":3718,"parentId":3717,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11470,"timestamp":4078087954965,"id":3717,"parentId":3660,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15817,"timestamp":4078087954454,"id":3660,"parentId":3508,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-space/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15361,"timestamp":4078087954941,"id":3712,"parentId":3711,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15369,"timestamp":4078087954933,"id":3711,"parentId":3657,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16291,"timestamp":4078087954393,"id":3657,"parentId":3542,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15713,"timestamp":4078087954993,"id":3722,"parentId":3721,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15722,"timestamp":4078087954985,"id":3721,"parentId":3662,"tags":{},"startTime":1711860135730,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16443,"timestamp":4078087954486,"id":3662,"parentId":3505,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-normalize-identifier/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135729,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17610,"timestamp":4078087957802,"id":3746,"parentId":3745,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17634,"timestamp":4078087957780,"id":3745,"parentId":3723,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18173,"timestamp":4078087957397,"id":3723,"parentId":3587,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/hast-util-whitespace/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17758,"timestamp":4078087957826,"id":3750,"parentId":3749,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17768,"timestamp":4078087957817,"id":3749,"parentId":3725,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18311,"timestamp":4078087957447,"id":3725,"parentId":3588,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-position/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17955,"timestamp":4078087957816,"id":3748,"parentId":3747,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17967,"timestamp":4078087957804,"id":3747,"parentId":3724,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18471,"timestamp":4078087957428,"id":3724,"parentId":3586,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/estree-util-is-identifier-name/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18054,"timestamp":4078087957855,"id":3756,"parentId":3755,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18063,"timestamp":4078087957847,"id":3755,"parentId":3728,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18514,"timestamp":4078087957494,"id":3728,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/xlink.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18153,"timestamp":4078087957864,"id":3758,"parentId":3757,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18162,"timestamp":4078087957856,"id":3757,"parentId":3729,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18580,"timestamp":4078087957509,"id":3729,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/xml.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18287,"timestamp":4078087957845,"id":3754,"parentId":3753,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":18412,"timestamp":4078087957837,"id":3753,"parentId":3727,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19121,"timestamp":4078087957479,"id":3727,"parentId":3585,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/vfile-message/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18796,"timestamp":4078087957836,"id":3752,"parentId":3751,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18805,"timestamp":4078087957827,"id":3751,"parentId":3726,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19486,"timestamp":4078087957463,"id":3726,"parentId":3591,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/trough/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19087,"timestamp":4078087957873,"id":3760,"parentId":3759,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19095,"timestamp":4078087957865,"id":3759,"parentId":3730,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19644,"timestamp":4078087957523,"id":3730,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/xmlns.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19302,"timestamp":4078087957882,"id":3762,"parentId":3761,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19311,"timestamp":4078087957874,"id":3761,"parentId":3731,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19805,"timestamp":4078087957538,"id":3731,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/aria.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19446,"timestamp":4078087957910,"id":3768,"parentId":3767,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19455,"timestamp":4078087957903,"id":3767,"parentId":3734,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19955,"timestamp":4078087957581,"id":3734,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/find.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19629,"timestamp":4078087957919,"id":3770,"parentId":3769,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19638,"timestamp":4078087957912,"id":3769,"parentId":3735,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20024,"timestamp":4078087957596,"id":3735,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/hast-to-react.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19792,"timestamp":4078087957892,"id":3764,"parentId":3763,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19801,"timestamp":4078087957884,"id":3763,"parentId":3732,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20482,"timestamp":4078087957552,"id":3732,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/html.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20107,"timestamp":4078087957938,"id":3774,"parentId":3773,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20116,"timestamp":4078087957930,"id":3773,"parentId":3737,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20608,"timestamp":4078087957626,"id":3737,"parentId":3589,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/style-to-object/cjs/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20401,"timestamp":4078087957901,"id":3766,"parentId":3765,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20410,"timestamp":4078087957893,"id":3765,"parentId":3733,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21290,"timestamp":4078087957567,"id":3733,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/svg.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20900,"timestamp":4078087957965,"id":3780,"parentId":3779,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20909,"timestamp":4078087957957,"id":3779,"parentId":3740,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21253,"timestamp":4078087957672,"id":3740,"parentId":3532,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-find-and-replace/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21002,"timestamp":4078087957929,"id":3772,"parentId":3771,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21011,"timestamp":4078087957921,"id":3771,"parentId":3736,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21368,"timestamp":4078087957611,"id":3736,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/normalize.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21056,"timestamp":4078087957947,"id":3776,"parentId":3775,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21065,"timestamp":4078087957939,"id":3775,"parentId":3738,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21442,"timestamp":4078087957641,"id":3738,"parentId":3593,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/merge.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21115,"timestamp":4078087957975,"id":3782,"parentId":3781,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21123,"timestamp":4078087957967,"id":3781,"parentId":3741,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21454,"timestamp":4078087957687,"id":3741,"parentId":3535,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21165,"timestamp":4078087957984,"id":3784,"parentId":3783,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21173,"timestamp":4078087957976,"id":3783,"parentId":3742,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21555,"timestamp":4078087957702,"id":3742,"parentId":3534,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@ungap/structured-clone/esm/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21272,"timestamp":4078087957992,"id":3786,"parentId":3785,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21280,"timestamp":4078087957985,"id":3785,"parentId":3743,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":21623,"timestamp":4078087957717,"id":3743,"parentId":3532,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/ccount/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17725,"timestamp":4078087961634,"id":3796,"parentId":3795,"tags":{},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17737,"timestamp":4078087961624,"id":3795,"parentId":3790,"tags":{},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17933,"timestamp":4078087961518,"id":3790,"parentId":3622,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/constants.js","layer":"app-pages-browser"},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":21501,"timestamp":4078087958002,"id":3788,"parentId":3787,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":21509,"timestamp":4078087957994,"id":3787,"parentId":3744,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22228,"timestamp":4078087957732,"id":3744,"parentId":3536,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/markdown-table/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18318,"timestamp":4078087961678,"id":3798,"parentId":3797,"tags":{},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18362,"timestamp":4078087961636,"id":3797,"parentId":3791,"tags":{},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18720,"timestamp":4078087961537,"id":3791,"parentId":3622,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/types.js","layer":"app-pages-browser"},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18599,"timestamp":4078087961744,"id":3800,"parentId":3799,"tags":{},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18664,"timestamp":4078087961680,"id":3799,"parentId":3792,"tags":{},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18909,"timestamp":4078087961554,"id":3792,"parentId":3622,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/values.js","layer":"app-pages-browser"},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18877,"timestamp":4078087961622,"id":3794,"parentId":3793,"tags":{},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18898,"timestamp":4078087961602,"id":3793,"parentId":3789,"tags":{},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19174,"timestamp":4078087961483,"id":3789,"parentId":3622,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-symbol/lib/codes.js","layer":"app-pages-browser"},"startTime":1711860135736,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":22886,"timestamp":4078087957956,"id":3778,"parentId":3777,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":22894,"timestamp":4078087957948,"id":3777,"parentId":3739,"tags":{},"startTime":1711860135733,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":25291,"timestamp":4078087957657,"id":3739,"parentId":3545,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-from-markdown/dev/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135732,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2926,"timestamp":4078087985642,"id":3803,"parentId":3802,"tags":{},"startTime":1711860135760,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2965,"timestamp":4078087985606,"id":3802,"parentId":3801,"tags":{},"startTime":1711860135760,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3397,"timestamp":4078087985300,"id":3801,"parentId":3633,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-visit-parents/lib/color.js","layer":"app-pages-browser"},"startTime":1711860135760,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1848,"timestamp":4078087989424,"id":3829,"parentId":3828,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1881,"timestamp":4078087989392,"id":3828,"parentId":3804,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2653,"timestamp":4078087988828,"id":3804,"parentId":3646,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-hast/lib/revert.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2111,"timestamp":4078087989459,"id":3835,"parentId":3834,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2120,"timestamp":4078087989450,"id":3834,"parentId":3807,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2809,"timestamp":4078087988924,"id":3807,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/blank-line.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2306,"timestamp":4078087989449,"id":3833,"parentId":3832,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2316,"timestamp":4078087989440,"id":3832,"parentId":3806,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3206,"timestamp":4078087988905,"id":3806,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/autolink.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3800,"timestamp":4078087989438,"id":3831,"parentId":3830,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3813,"timestamp":4078087989427,"id":3830,"parentId":3805,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5402,"timestamp":4078087988872,"id":3805,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/attention.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4834,"timestamp":4078087989469,"id":3837,"parentId":3836,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4844,"timestamp":4078087989460,"id":3836,"parentId":3808,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5636,"timestamp":4078087988940,"id":3808,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/block-quote.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5111,"timestamp":4078087989479,"id":3839,"parentId":3838,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5120,"timestamp":4078087989471,"id":3838,"parentId":3809,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5771,"timestamp":4078087988958,"id":3809,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/character-escape.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5250,"timestamp":4078087989507,"id":3845,"parentId":3844,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5259,"timestamp":4078087989499,"id":3844,"parentId":3812,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6196,"timestamp":4078087989005,"id":3812,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/code-indented.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6694,"timestamp":4078087989498,"id":3843,"parentId":3842,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6703,"timestamp":4078087989490,"id":3842,"parentId":3811,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7784,"timestamp":4078087988989,"id":3811,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7282,"timestamp":4078087989525,"id":3849,"parentId":3848,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7290,"timestamp":4078087989518,"id":3848,"parentId":3814,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8054,"timestamp":4078087989037,"id":3814,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/content.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7611,"timestamp":4078087989516,"id":3847,"parentId":3846,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7620,"timestamp":4078087989508,"id":3846,"parentId":3813,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8493,"timestamp":4078087989021,"id":3813,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/code-text.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7983,"timestamp":4078087989544,"id":3853,"parentId":3852,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7992,"timestamp":4078087989536,"id":3852,"parentId":3816,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8569,"timestamp":4078087989066,"id":3816,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12595,"timestamp":4078087989553,"id":3855,"parentId":3854,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12606,"timestamp":4078087989545,"id":3854,"parentId":3817,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13550,"timestamp":4078087989083,"id":3817,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":13275,"timestamp":4078087989535,"id":3851,"parentId":3850,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13283,"timestamp":4078087989527,"id":3850,"parentId":3815,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14119,"timestamp":4078087989052,"id":3815,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/definition.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13714,"timestamp":4078087989562,"id":3857,"parentId":3856,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13723,"timestamp":4078087989554,"id":3856,"parentId":3818,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15330,"timestamp":4078087989098,"id":3818,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/html-flow.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14923,"timestamp":4078087989571,"id":3859,"parentId":3858,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14932,"timestamp":4078087989564,"id":3858,"parentId":3819,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":16171,"timestamp":4078087989114,"id":3819,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/html-text.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":15786,"timestamp":4078087989580,"id":3861,"parentId":3860,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":15795,"timestamp":4078087989573,"id":3860,"parentId":3820,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17017,"timestamp":4078087989129,"id":3820,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/label-end.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16678,"timestamp":4078087989488,"id":3841,"parentId":3840,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16687,"timestamp":4078087989480,"id":3840,"parentId":3810,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17472,"timestamp":4078087988974,"id":3810,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/character-reference.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16874,"timestamp":4078087989590,"id":3863,"parentId":3862,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16883,"timestamp":4078087989582,"id":3862,"parentId":3821,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17527,"timestamp":4078087989144,"id":3821,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17101,"timestamp":4078087989608,"id":3867,"parentId":3866,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17114,"timestamp":4078087989600,"id":3866,"parentId":3823,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":17844,"timestamp":4078087989174,"id":3823,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/line-ending.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17441,"timestamp":4078087989599,"id":3865,"parentId":3864,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17450,"timestamp":4078087989591,"id":3864,"parentId":3822,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18261,"timestamp":4078087989159,"id":3822,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17813,"timestamp":4078087989636,"id":3873,"parentId":3872,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17822,"timestamp":4078087989629,"id":3872,"parentId":3826,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18528,"timestamp":4078087989225,"id":3826,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18193,"timestamp":4078087989646,"id":3875,"parentId":3874,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":18202,"timestamp":4078087989638,"id":3874,"parentId":3827,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18845,"timestamp":4078087989239,"id":3827,"parentId":3656,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/trim-lines/index.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":17680,"timestamp":4078087990454,"id":3891,"parentId":3890,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":17694,"timestamp":4078087990441,"id":3890,"parentId":3876,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":18365,"timestamp":4078087990214,"id":3876,"parentId":3740,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-find-and-replace/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":18991,"timestamp":4078087989627,"id":3871,"parentId":3870,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19000,"timestamp":4078087989620,"id":3870,"parentId":3825,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19790,"timestamp":4078087989204,"id":3825,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19429,"timestamp":4078087989618,"id":3869,"parentId":3868,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19438,"timestamp":4078087989609,"id":3868,"parentId":3824,"tags":{},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":20533,"timestamp":4078087989188,"id":3824,"parentId":3661,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-core-commonmark/dev/lib/list.js","layer":"app-pages-browser"},"startTime":1711860135764,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":19266,"timestamp":4078087990474,"id":3895,"parentId":3894,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":19276,"timestamp":4078087990466,"id":3894,"parentId":3878,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":19646,"timestamp":4078087990255,"id":3878,"parentId":3741,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/index.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30142,"timestamp":4078087990501,"id":3901,"parentId":3900,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30153,"timestamp":4078087990493,"id":3900,"parentId":3881,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30572,"timestamp":4078087990301,"id":3881,"parentId":3728,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/create.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30445,"timestamp":4078087990464,"id":3893,"parentId":3892,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30454,"timestamp":4078087990456,"id":3892,"parentId":3877,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":31000,"timestamp":4078087990238,"id":3877,"parentId":3741,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30773,"timestamp":4078087990483,"id":3897,"parentId":3896,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30782,"timestamp":4078087990475,"id":3896,"parentId":3879,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":31232,"timestamp":4078087990271,"id":3879,"parentId":3742,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@ungap/structured-clone/esm/deserialize.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":31032,"timestamp":4078087990492,"id":3899,"parentId":3898,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":31041,"timestamp":4078087990484,"id":3898,"parentId":3880,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":31794,"timestamp":4078087990286,"id":3880,"parentId":3742,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@ungap/structured-clone/esm/serialize.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":31578,"timestamp":4078087990510,"id":3903,"parentId":3902,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":31587,"timestamp":4078087990502,"id":3902,"parentId":3882,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":31845,"timestamp":4078087990317,"id":3882,"parentId":3730,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/case-insensitive-transform.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":31652,"timestamp":4078087990519,"id":3905,"parentId":3904,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":31660,"timestamp":4078087990511,"id":3904,"parentId":3883,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":31988,"timestamp":4078087990331,"id":3883,"parentId":3731,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/types.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":31803,"timestamp":4078087990528,"id":3907,"parentId":3906,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":31811,"timestamp":4078087990520,"id":3906,"parentId":3884,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":32119,"timestamp":4078087990346,"id":3884,"parentId":3734,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/defined-info.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":31918,"timestamp":4078087990555,"id":3913,"parentId":3912,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":31927,"timestamp":4078087990547,"id":3912,"parentId":3887,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":32159,"timestamp":4078087990389,"id":3887,"parentId":3738,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/schema.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":32019,"timestamp":4078087990537,"id":3909,"parentId":3908,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":32028,"timestamp":4078087990529,"id":3908,"parentId":3885,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":32270,"timestamp":4078087990360,"id":3885,"parentId":3734,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/info.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":32091,"timestamp":4078087990546,"id":3911,"parentId":3910,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":32100,"timestamp":4078087990538,"id":3910,"parentId":3886,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":32319,"timestamp":4078087990374,"id":3886,"parentId":3733,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/property-information/lib/util/case-sensitive-transform.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":32131,"timestamp":4078087990572,"id":3917,"parentId":3916,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":32140,"timestamp":4078087990565,"id":3916,"parentId":3889,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":32372,"timestamp":4078087990420,"id":3889,"parentId":3658,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-encode/index.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30269,"timestamp":4078087992530,"id":3926,"parentId":3925,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30288,"timestamp":4078087992512,"id":3925,"parentId":3918,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30505,"timestamp":4078087992355,"id":3918,"parentId":3727,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-stringify-position/index.js","layer":"app-pages-browser"},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":32303,"timestamp":4078087990564,"id":3915,"parentId":3914,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":32311,"timestamp":4078087990556,"id":3914,"parentId":3888,"tags":{},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":32510,"timestamp":4078087990405,"id":3888,"parentId":3633,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-is/index.js","layer":"app-pages-browser"},"startTime":1711860135765,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30379,"timestamp":4078087992541,"id":3928,"parentId":3927,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30390,"timestamp":4078087992532,"id":3927,"parentId":3919,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30576,"timestamp":4078087992389,"id":3919,"parentId":3739,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-string/index.js","layer":"app-pages-browser"},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30428,"timestamp":4078087992551,"id":3930,"parentId":3929,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30438,"timestamp":4078087992543,"id":3929,"parentId":3920,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30699,"timestamp":4078087992405,"id":3920,"parentId":3739,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30553,"timestamp":4078087992561,"id":3932,"parentId":3931,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30563,"timestamp":4078087992553,"id":3931,"parentId":3921,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30825,"timestamp":4078087992421,"id":3921,"parentId":3739,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30689,"timestamp":4078087992588,"id":3938,"parentId":3937,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30699,"timestamp":4078087992580,"id":3937,"parentId":3924,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":30903,"timestamp":4078087992466,"id":3924,"parentId":3739,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/decode-named-character-reference/index.dom.js","layer":"app-pages-browser"},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30816,"timestamp":4078087992570,"id":3934,"parentId":3933,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30825,"timestamp":4078087992562,"id":3933,"parentId":3922,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":31099,"timestamp":4078087992436,"id":3922,"parentId":3739,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-decode-string/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":30981,"timestamp":4078087992579,"id":3936,"parentId":3935,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":30990,"timestamp":4078087992571,"id":3935,"parentId":3923,"tags":{},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":31558,"timestamp":4078087992450,"id":3923,"parentId":3737,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/inline-style-parser/index.js","layer":"app-pages-browser"},"startTime":1711860135767,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1605,"timestamp":4078088030466,"id":3962,"parentId":3961,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1619,"timestamp":4078088030454,"id":3961,"parentId":3940,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"build-module-js","duration":2384,"timestamp":4078088030005,"id":3940,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/break.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1923,"timestamp":4078088030487,"id":3966,"parentId":3965,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1932,"timestamp":4078088030478,"id":3965,"parentId":3942,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2564,"timestamp":4078088030046,"id":3942,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/definition.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4628,"timestamp":4078088030477,"id":3964,"parentId":3963,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4639,"timestamp":4078088030468,"id":3963,"parentId":3941,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5328,"timestamp":4078088030027,"id":3941,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/code.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4917,"timestamp":4078088030451,"id":3960,"parentId":3959,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4950,"timestamp":4078088030418,"id":3959,"parentId":3939,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5516,"timestamp":4078088029945,"id":3939,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4977,"timestamp":4078088030507,"id":3970,"parentId":3969,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4986,"timestamp":4078088030499,"id":3969,"parentId":3944,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5595,"timestamp":4078088030082,"id":3944,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/heading.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5169,"timestamp":4078088030516,"id":3972,"parentId":3971,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5178,"timestamp":4078088030508,"id":3971,"parentId":3945,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5651,"timestamp":4078088030098,"id":3945,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/html.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5229,"timestamp":4078088030537,"id":3976,"parentId":3975,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5238,"timestamp":4078088030529,"id":3975,"parentId":3947,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5772,"timestamp":4078088030128,"id":3947,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5417,"timestamp":4078088030497,"id":3968,"parentId":3967,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5426,"timestamp":4078088030489,"id":3967,"parentId":3943,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5952,"timestamp":4078088030065,"id":3943,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5488,"timestamp":4078088030546,"id":3978,"parentId":3977,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5497,"timestamp":4078088030538,"id":3977,"parentId":3948,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6064,"timestamp":4078088030143,"id":3948,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5697,"timestamp":4078088030527,"id":3974,"parentId":3973,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5706,"timestamp":4078088030519,"id":3973,"parentId":3946,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6283,"timestamp":4078088030113,"id":3946,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/image.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":5847,"timestamp":4078088030564,"id":3982,"parentId":3981,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":5855,"timestamp":4078088030557,"id":3981,"parentId":3950,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6360,"timestamp":4078088030175,"id":3950,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":6001,"timestamp":4078088030555,"id":3980,"parentId":3979,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":6009,"timestamp":4078088030548,"id":3979,"parentId":3949,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":6606,"timestamp":4078088030160,"id":3949,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/link.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7133,"timestamp":4078088030600,"id":3990,"parentId":3989,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7142,"timestamp":4078088030593,"id":3989,"parentId":3954,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7607,"timestamp":4078088030233,"id":3954,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/root.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7290,"timestamp":4078088030573,"id":3984,"parentId":3983,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7299,"timestamp":4078088030566,"id":3983,"parentId":3951,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7922,"timestamp":4078088030191,"id":3951,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/list.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7531,"timestamp":4078088030591,"id":3988,"parentId":3987,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7540,"timestamp":4078088030584,"id":3987,"parentId":3953,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7974,"timestamp":4078088030219,"id":3953,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7624,"timestamp":4078088030582,"id":3986,"parentId":3985,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7632,"timestamp":4078088030575,"id":3985,"parentId":3952,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8163,"timestamp":4078088030205,"id":3952,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/list-item.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7774,"timestamp":4078088030609,"id":3992,"parentId":3991,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7783,"timestamp":4078088030601,"id":3991,"parentId":3955,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8236,"timestamp":4078088030248,"id":3955,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/strong.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7909,"timestamp":4078088030618,"id":3994,"parentId":3993,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7917,"timestamp":4078088030610,"id":3993,"parentId":3956,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8320,"timestamp":4078088030263,"id":3956,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/text.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7964,"timestamp":4078088030627,"id":3996,"parentId":3995,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7973,"timestamp":4078088030619,"id":3995,"parentId":3957,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8388,"timestamp":4078088030277,"id":3957,"parentId":3878,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7152,"timestamp":4078088031523,"id":4024,"parentId":4023,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7167,"timestamp":4078088031509,"id":4023,"parentId":3999,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":7655,"timestamp":4078088031130,"id":3999,"parentId":3918,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-stringify-position/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7293,"timestamp":4078088031534,"id":4026,"parentId":4025,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7303,"timestamp":4078088031525,"id":4025,"parentId":4000,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8022,"timestamp":4078088031153,"id":4000,"parentId":3888,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/unist-util-is/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":7652,"timestamp":4078088031543,"id":4028,"parentId":4027,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":7661,"timestamp":4078088031535,"id":4027,"parentId":4001,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8183,"timestamp":4078088031169,"id":4001,"parentId":3919,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-string/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8756,"timestamp":4078088030636,"id":3998,"parentId":3997,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8764,"timestamp":4078088030628,"id":3997,"parentId":3958,"tags":{},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9554,"timestamp":4078088030292,"id":3958,"parentId":3814,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-subtokenize/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135805,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8293,"timestamp":4078088031564,"id":4032,"parentId":4031,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8302,"timestamp":4078088031556,"id":4031,"parentId":4003,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8765,"timestamp":4078088031206,"id":4003,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/join.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8398,"timestamp":4078088031581,"id":4036,"parentId":4035,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8407,"timestamp":4078088031574,"id":4035,"parentId":4005,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":8838,"timestamp":4078088031235,"id":4005,"parentId":3879,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/@ungap/structured-clone/esm/types.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8530,"timestamp":4078088031554,"id":4030,"parentId":4029,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8541,"timestamp":4078088031544,"id":4029,"parentId":4002,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":9030,"timestamp":4078088031189,"id":4002,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/configure.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10828,"timestamp":4078088031592,"id":4038,"parentId":4037,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10839,"timestamp":4078088031584,"id":4037,"parentId":4006,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11295,"timestamp":4078088031249,"id":4006,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/association.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10953,"timestamp":4078088031602,"id":4040,"parentId":4039,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10962,"timestamp":4078088031594,"id":4039,"parentId":4007,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11426,"timestamp":4078088031267,"id":4007,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11087,"timestamp":4078088031620,"id":4044,"parentId":4043,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11097,"timestamp":4078088031612,"id":4043,"parentId":4009,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11572,"timestamp":4078088031295,"id":4009,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/container-flow.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11277,"timestamp":4078088031611,"id":4042,"parentId":4041,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11286,"timestamp":4078088031603,"id":4041,"parentId":4008,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11871,"timestamp":4078088031281,"id":4008,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11597,"timestamp":4078088031573,"id":4034,"parentId":4033,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11605,"timestamp":4078088031565,"id":4033,"parentId":4004,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12153,"timestamp":4078088031220,"id":4004,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/unsafe.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11753,"timestamp":4078088031629,"id":4046,"parentId":4045,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11762,"timestamp":4078088031622,"id":4045,"parentId":4010,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12172,"timestamp":4078088031309,"id":4010,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":11844,"timestamp":4078088031647,"id":4050,"parentId":4049,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":11853,"timestamp":4078088031640,"id":4049,"parentId":4012,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12274,"timestamp":4078088031336,"id":4012,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/track.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12003,"timestamp":4078088031638,"id":4048,"parentId":4047,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12012,"timestamp":4078088031630,"id":4047,"parentId":4011,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12662,"timestamp":4078088031322,"id":4011,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/safe.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12331,"timestamp":4078088031665,"id":4054,"parentId":4053,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-loader","duration":12469,"timestamp":4078088031658,"id":4053,"parentId":4014,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12887,"timestamp":4078088031364,"id":4014,"parentId":3920,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/parse.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12584,"timestamp":4078088031674,"id":4056,"parentId":4055,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12592,"timestamp":4078088031667,"id":4055,"parentId":4015,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12940,"timestamp":4078088031379,"id":4015,"parentId":3920,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/postprocess.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12652,"timestamp":4078088031683,"id":4058,"parentId":4057,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12660,"timestamp":4078088031676,"id":4057,"parentId":4016,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13216,"timestamp":4078088031393,"id":4016,"parentId":3920,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/preprocess.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12922,"timestamp":4078088031702,"id":4062,"parentId":4061,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12931,"timestamp":4078088031694,"id":4061,"parentId":4018,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13303,"timestamp":4078088031420,"id":4018,"parentId":3818,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-util-html-tag-name/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13040,"timestamp":4078088031693,"id":4060,"parentId":4059,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13048,"timestamp":4078088031685,"id":4059,"parentId":4017,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":13876,"timestamp":4078088031406,"id":4017,"parentId":3876,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":13641,"timestamp":4078088031710,"id":4064,"parentId":4063,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":13651,"timestamp":4078088031703,"id":4063,"parentId":4019,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14390,"timestamp":4078088031437,"id":4019,"parentId":3815,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-destination/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14146,"timestamp":4078088031720,"id":4066,"parentId":4065,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14155,"timestamp":4078088031712,"id":4065,"parentId":4020,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14727,"timestamp":4078088031451,"id":4020,"parentId":3815,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-label/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14520,"timestamp":4078088031738,"id":4070,"parentId":4069,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14528,"timestamp":4078088031730,"id":4069,"parentId":4022,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":14928,"timestamp":4078088031478,"id":4022,"parentId":3815,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-whitespace/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":14763,"timestamp":4078088031729,"id":4068,"parentId":4067,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":14772,"timestamp":4078088031721,"id":4067,"parentId":4021,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15403,"timestamp":4078088031464,"id":4021,"parentId":3815,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark-factory-title/dev/index.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":12070,"timestamp":4078088034825,"id":4073,"parentId":4072,"tags":{},"startTime":1711860135810,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":12096,"timestamp":4078088034800,"id":4072,"parentId":4071,"tags":{},"startTime":1711860135810,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":12359,"timestamp":4078088034731,"id":4071,"parentId":3877,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/zwitch/index.js","layer":"app-pages-browser"},"startTime":1711860135809,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10774,"timestamp":4078088041003,"id":4077,"parentId":4076,"tags":{},"startTime":1711860135816,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10802,"timestamp":4078088040976,"id":4076,"parentId":4074,"tags":{},"startTime":1711860135816,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11162,"timestamp":4078088040771,"id":4074,"parentId":3940,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","layer":"app-pages-browser"},"startTime":1711860135816,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10928,"timestamp":4078088041017,"id":4079,"parentId":4078,"tags":{},"startTime":1711860135816,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10941,"timestamp":4078088041005,"id":4078,"parentId":4075,"tags":{},"startTime":1711860135816,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11214,"timestamp":4078088040826,"id":4075,"parentId":3942,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-quote.js","layer":"app-pages-browser"},"startTime":1711860135816,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":20533,"timestamp":4078088031656,"id":4052,"parentId":4051,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":20542,"timestamp":4078088031649,"id":4051,"parentId":4013,"tags":{},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":22106,"timestamp":4078088031350,"id":4013,"parentId":3920,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/compile.js","layer":"app-pages-browser"},"startTime":1711860135806,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4134,"timestamp":4078088049388,"id":4086,"parentId":4085,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4160,"timestamp":4078088049363,"id":4085,"parentId":4080,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4552,"timestamp":4078088049080,"id":4080,"parentId":3941,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","layer":"app-pages-browser"},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4239,"timestamp":4078088049402,"id":4088,"parentId":4087,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4251,"timestamp":4078088049391,"id":4087,"parentId":4081,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4585,"timestamp":4078088049126,"id":4081,"parentId":3941,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-fence.js","layer":"app-pages-browser"},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4294,"timestamp":4078088049424,"id":4092,"parentId":4091,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4304,"timestamp":4078088049415,"id":4091,"parentId":4083,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4605,"timestamp":4078088049181,"id":4083,"parentId":3943,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","layer":"app-pages-browser"},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4380,"timestamp":4078088049414,"id":4090,"parentId":4089,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4392,"timestamp":4078088049403,"id":4089,"parentId":4082,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4762,"timestamp":4078088049148,"id":4082,"parentId":3944,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","layer":"app-pages-browser"},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4488,"timestamp":4078088049434,"id":4094,"parentId":4093,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4497,"timestamp":4078088049426,"id":4093,"parentId":4084,"tags":{},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4846,"timestamp":4078088049199,"id":4084,"parentId":3949,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","layer":"app-pages-browser"},"startTime":1711860135824,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1446,"timestamp":4078088054709,"id":4105,"parentId":4104,"tags":{},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1467,"timestamp":4078088054688,"id":4104,"parentId":4095,"tags":{},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1800,"timestamp":4078088054452,"id":4095,"parentId":3951,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2634,"timestamp":4078088054733,"id":4109,"parentId":4108,"tags":{},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2645,"timestamp":4078088054723,"id":4108,"parentId":4097,"tags":{},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2948,"timestamp":4078088054509,"id":4097,"parentId":3951,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2706,"timestamp":4078088054762,"id":4111,"parentId":4110,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2734,"timestamp":4078088054734,"id":4110,"parentId":4098,"tags":{},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3014,"timestamp":4078088054526,"id":4098,"parentId":3951,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-rule.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2827,"timestamp":4078088054721,"id":4107,"parentId":4106,"tags":{},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2838,"timestamp":4078088054711,"id":4106,"parentId":4096,"tags":{},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3158,"timestamp":4078088054488,"id":4096,"parentId":3951,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2869,"timestamp":4078088054785,"id":4115,"parentId":4114,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2878,"timestamp":4078088054777,"id":4114,"parentId":4100,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3159,"timestamp":4078088054559,"id":4100,"parentId":3955,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-strong.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2950,"timestamp":4078088054775,"id":4113,"parentId":4112,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2962,"timestamp":4078088054764,"id":4112,"parentId":4099,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3244,"timestamp":4078088054542,"id":4099,"parentId":3952,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3183,"timestamp":4078088054795,"id":4117,"parentId":4116,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3192,"timestamp":4078088054786,"id":4116,"parentId":4101,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3475,"timestamp":4078088054574,"id":4101,"parentId":3957,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3244,"timestamp":4078088054814,"id":4121,"parentId":4120,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3253,"timestamp":4078088054805,"id":4120,"parentId":4103,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3516,"timestamp":4078088054604,"id":4103,"parentId":3954,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-phrasing/index.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4184,"timestamp":4078088054804,"id":4119,"parentId":4118,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4194,"timestamp":4078088054796,"id":4118,"parentId":4102,"tags":{},"startTime":1711860135830,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4557,"timestamp":4078088054589,"id":4102,"parentId":3941,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/longest-streak/index.js","layer":"app-pages-browser"},"startTime":1711860135829,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2693,"timestamp":4078088056502,"id":4131,"parentId":4130,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2703,"timestamp":4078088056493,"id":4130,"parentId":4123,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3113,"timestamp":4078088056392,"id":4123,"parentId":4014,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/constructs.js","layer":"app-pages-browser"},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3534,"timestamp":4078088056513,"id":4133,"parentId":4132,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3545,"timestamp":4078088056504,"id":4132,"parentId":4124,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3890,"timestamp":4078088056410,"id":4124,"parentId":4014,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/initialize/content.js","layer":"app-pages-browser"},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3783,"timestamp":4078088056531,"id":4137,"parentId":4136,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3792,"timestamp":4078088056523,"id":4136,"parentId":4126,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4392,"timestamp":4078088056441,"id":4126,"parentId":4014,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/initialize/flow.js","layer":"app-pages-browser"},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4960,"timestamp":4078088059784,"id":4142,"parentId":4141,"tags":{},"startTime":1711860135835,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4984,"timestamp":4078088059764,"id":4141,"parentId":4140,"tags":{},"startTime":1711860135835,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5252,"timestamp":4078088059716,"id":4140,"parentId":4103,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/mdast-util-phrasing/lib/index.js","layer":"app-pages-browser"},"startTime":1711860135834,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":8611,"timestamp":4078088056491,"id":4129,"parentId":4128,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":8630,"timestamp":4078088056474,"id":4128,"parentId":4122,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10016,"timestamp":4078088056364,"id":4122,"parentId":4014,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/create-tokenizer.js","layer":"app-pages-browser"},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":9939,"timestamp":4078088056522,"id":4135,"parentId":4134,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":9948,"timestamp":4078088056514,"id":4134,"parentId":4125,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":10693,"timestamp":4078088056426,"id":4125,"parentId":4014,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/initialize/document.js","layer":"app-pages-browser"},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10621,"timestamp":4078088056540,"id":4139,"parentId":4138,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10630,"timestamp":4078088056532,"id":4138,"parentId":4127,"tags":{},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":11129,"timestamp":4078088056456,"id":4127,"parentId":4014,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/micromark/dev/lib/initialize/text.js","layer":"app-pages-browser"},"startTime":1711860135831,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"next-swc-transform","duration":2872,"timestamp":4078088070619,"id":4145,"parentId":4144,"tags":{},"startTime":1711860135845,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2905,"timestamp":4078088070589,"id":4144,"parentId":4143,"tags":{},"startTime":1711860135845,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":5251,"timestamp":4078088070533,"id":4143,"parentId":4122,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/debug/src/browser.js","layer":"app-pages-browser"},"startTime":1711860135845,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2948,"timestamp":4078088077282,"id":4151,"parentId":4150,"tags":{},"startTime":1711860135852,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2981,"timestamp":4078088077253,"id":4150,"parentId":4149,"tags":{},"startTime":1711860135852,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3875,"timestamp":4078088077170,"id":4149,"parentId":4143,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/debug/src/common.js","layer":"app-pages-browser"},"startTime":1711860135852,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2598,"timestamp":4078088082492,"id":4154,"parentId":4153,"tags":{},"startTime":1711860135857,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2709,"timestamp":4078088082384,"id":4153,"parentId":4152,"tags":{},"startTime":1711860135857,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3463,"timestamp":4078088082133,"id":4152,"parentId":4149,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/ms/index.js","layer":"app-pages-browser"},"startTime":1711860135857,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1262,"timestamp":4078088087279,"id":4157,"parentId":4156,"tags":{},"startTime":1711860135862,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1330,"timestamp":4078088087214,"id":4156,"parentId":4155,"tags":{},"startTime":1711860135862,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":1709,"timestamp":4078088087053,"id":4155,"parentId":4143,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/polyfills/process.js","layer":"app-pages-browser"},"startTime":1711860135862,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1957,"timestamp":4078088091068,"id":4160,"parentId":4159,"tags":{},"startTime":1711860135866,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1992,"timestamp":4078088091041,"id":4159,"parentId":4158,"tags":{},"startTime":1711860135866,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2825,"timestamp":4078088090978,"id":4158,"parentId":4155,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/process/browser.js","layer":"app-pages-browser"},"startTime":1711860135866,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":25922,"timestamp":4078088071268,"id":4148,"parentId":4147,"tags":{},"startTime":1711860135846,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":25962,"timestamp":4078088071235,"id":4147,"parentId":4146,"tags":{},"startTime":1711860135846,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":40002,"timestamp":4078088071156,"id":4146,"parentId":3578,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/micromatch/index.js","layer":"app-pages-browser"},"startTime":1711860135846,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":3614,"timestamp":4078088118693,"id":4163,"parentId":4162,"tags":{},"startTime":1711860135893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":3669,"timestamp":4078088118641,"id":4162,"parentId":4161,"tags":{},"startTime":1711860135893,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":4854,"timestamp":4078088118551,"id":4161,"parentId":4146,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/path-browserify/index.js","layer":"app-pages-browser"},"startTime":1711860135893,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":16046,"timestamp":4078088119076,"id":4166,"parentId":4165,"tags":{},"startTime":1711860135894,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":16081,"timestamp":4078088119049,"id":4165,"parentId":4164,"tags":{},"startTime":1711860135894,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":26316,"timestamp":4078088118994,"id":4164,"parentId":4146,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/util/util.js","layer":"app-pages-browser"},"startTime":1711860135894,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":10035,"timestamp":4078088149373,"id":4169,"parentId":4168,"tags":{},"startTime":1711860135924,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":10197,"timestamp":4078088149216,"id":4168,"parentId":4167,"tags":{},"startTime":1711860135924,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":15530,"timestamp":4078088149133,"id":4167,"parentId":4164,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/buffer/index.js","layer":"app-pages-browser"},"startTime":1711860135924,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1891,"timestamp":4078088168661,"id":4173,"parentId":4172,"tags":{},"startTime":1711860135943,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1947,"timestamp":4078088168610,"id":4172,"parentId":4170,"tags":{},"startTime":1711860135943,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":2649,"timestamp":4078088168514,"id":4170,"parentId":4167,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/base64-js/index.js","layer":"app-pages-browser"},"startTime":1711860135943,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2535,"timestamp":4078088168676,"id":4175,"parentId":4174,"tags":{},"startTime":1711860135943,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2548,"timestamp":4078088168664,"id":4174,"parentId":4171,"tags":{},"startTime":1711860135943,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-js","duration":3010,"timestamp":4078088168582,"id":4171,"parentId":4167,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/node_modules/ieee754/index.js","layer":"app-pages-browser"},"startTime":1711860135943,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":391216,"timestamp":4078087780405,"id":3297,"parentId":3291,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2FMessagePoster.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fcomponents%2FQueryAI.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fimage-component.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=false!"},"startTime":1711860135555,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":395005,"timestamp":4078087776634,"id":3291,"parentId":3290,"tags":{},"startTime":1711860135551,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":4502,"timestamp":4078088181761,"id":4177,"parentId":4176,"tags":{},"startTime":1711860135957,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":4,"timestamp":4078088186285,"id":4179,"parentId":4176,"tags":{},"startTime":1711860135961,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":45,"timestamp":4078088186300,"id":4180,"parentId":4176,"tags":{},"startTime":1711860135961,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":5,"timestamp":4078088186358,"id":4181,"parentId":4176,"tags":{},"startTime":1711860135961,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":3,"timestamp":4078088186373,"id":4182,"parentId":4176,"tags":{},"startTime":1711860135961,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":1608,"timestamp":4078088186277,"id":4178,"parentId":4176,"tags":{},"startTime":1711860135961,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":5383,"timestamp":4078088191207,"id":4183,"parentId":4176,"tags":{},"startTime":1711860135966,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":50153,"timestamp":4078088196608,"id":4184,"parentId":4176,"tags":{},"startTime":1711860135971,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":9496,"timestamp":4078088249001,"id":4185,"parentId":4176,"tags":{},"startTime":1711860136024,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":223,"timestamp":4078088258495,"id":4186,"parentId":4176,"tags":{},"startTime":1711860136033,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":109,"timestamp":4078088258710,"id":4187,"parentId":4176,"tags":{},"startTime":1711860136033,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":230942,"timestamp":4078088258822,"id":4188,"parentId":4176,"tags":{},"startTime":1711860136034,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-generateClientManifest","duration":66,"timestamp":4078088492311,"id":4190,"parentId":3290,"tags":{},"startTime":1711860136267,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-createassets","duration":145,"timestamp":4078088492236,"id":4189,"parentId":3290,"tags":{},"startTime":1711860136267,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":316615,"timestamp":4078088178911,"id":4176,"parentId":3290,"tags":{},"startTime":1711860135954,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":719643,"timestamp":4078087775915,"id":3290,"parentId":2433,"tags":{"name":"client"},"startTime":1711860135551,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":22810,"timestamp":4078088495582,"id":4191,"parentId":2433,"tags":{},"startTime":1711860136270,"traceId":"a43e3bb0d33d2683"},{"name":"compile-path","duration":1444670,"timestamp":4078087074271,"id":2114,"tags":{"trigger":"/","isTurbopack":false},"startTime":1711860134849,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-client","duration":1246162,"timestamp":4078087273182,"id":2433,"parentId":3,"tags":{"trigger":"manual"},"startTime":1711860135048,"traceId":"a43e3bb0d33d2683"}]
-[{"name":"handle-request","duration":2001451,"timestamp":4078087070938,"id":2112,"tags":{"url":"/","isTurbopack":false},"startTime":1711860134846,"traceId":"a43e3bb0d33d2683"},{"name":"memory-usage","duration":0,"timestamp":4078089072452,"id":4192,"parentId":2112,"tags":{"url":"/","memory.rss":"623853568","memory.heapUsed":"475008208","memory.heapTotal":"509001728"},"startTime":1711860136847,"traceId":"a43e3bb0d33d2683"},{"name":"handle-request","duration":5754,"timestamp":4078089104296,"id":4193,"tags":{"url":"/_next/image?url=%2Flogo.png&w=256&q=75","isTurbopack":false},"startTime":1711860136879,"traceId":"a43e3bb0d33d2683"},{"name":"memory-usage","duration":0,"timestamp":4078089110077,"id":4194,"parentId":4193,"tags":{"url":"/_next/image?url=%2Flogo.png&w=256&q=75","memory.rss":"621969408","memory.heapUsed":"475444096","memory.heapTotal":"509263872"},"startTime":1711860136885,"traceId":"a43e3bb0d33d2683"},{"name":"client-success","duration":0,"timestamp":4078089521125,"id":4195,"parentId":3,"tags":{},"startTime":1711860137296,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":4818,"timestamp":4078102287754,"id":4204,"parentId":4203,"tags":{},"startTime":1711860150062,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":4955,"timestamp":4078102287640,"id":4203,"parentId":4202,"tags":{},"startTime":1711860150062,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":7291,"timestamp":4078102287242,"id":4202,"parentId":4198,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx","layer":"rsc"},"startTime":1711860150062,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":25154,"timestamp":4078102274779,"id":4200,"parentId":4199,"tags":{"request":"next-edge-ssr-loader?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/not-found.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/not-found\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGbm90LWZvdW5kJnBhZ2U9JTJGbm90LWZvdW5kJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRm5vdC1mb3VuZC50c3gmYXBwRGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWIlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGZGhyYXZ5YXNoYWglMkZEb2N1bWVudHMlMkZjb2RlJTJGYW55Y29udGV4dCUyRmFwcHMlMkZ3ZWImaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0Qh\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!"},"startTime":1711860150049,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":25295,"timestamp":4078102274903,"id":4201,"parentId":4199,"tags":{"request":"next-edge-ssr-loader?{\"absolute500Path\":\"\",\"absoluteAppPath\":\"next/dist/pages/_app\",\"absoluteDocumentPath\":\"next/dist/pages/_document\",\"absoluteErrorPath\":\"next/dist/pages/_error\",\"absolutePagePath\":\"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx\",\"buildId\":\"development\",\"dev\":true,\"isServerComponent\":true,\"page\":\"/page\",\"stringifiedConfig\":\"eyJlbnYiOnt9LCJ3ZWJwYWNrIjpudWxsLCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5tanMiLCJ1c2VGaWxlU3lzdGVtUHVibGljUm91dGVzIjp0cnVlLCJnZW5lcmF0ZUV0YWdzIjp0cnVlLCJwYWdlRXh0ZW5zaW9ucyI6WyJ0c3giLCJ0cyIsImpzeCIsImpzIl0sInBvd2VyZWRCeUhlYWRlciI6dHJ1ZSwiY29tcHJlc3MiOnRydWUsImFuYWx5dGljc0lkIjoiIiwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJpbmxpbmUiLCJyZW1vdGVQYXR0ZXJucyI6W10sInVub3B0aW1pemVkIjpmYWxzZX0sImRldkluZGljYXRvcnMiOnsiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJvcHRpbWl6ZUZvbnRzIjp0cnVlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJodHRwQWdlbnRPcHRpb25zIjp7ImtlZXBBbGl2ZSI6dHJ1ZX0sIm91dHB1dEZpbGVUcmFjaW5nIjp0cnVlLCJzdGF0aWNQYWdlR2VuZXJhdGlvblRpbWVvdXQiOjYwLCJzd2NNaW5pZnkiOnRydWUsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjksIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIiLCJzd2NUcmFjZVByb2ZpbGluZyI6ZmFsc2UsImZvcmNlU3djVHJhbnNmb3JtcyI6ZmFsc2UsImxhcmdlUGFnZURhdGFCeXRlcyI6MTI4MDAwLCJhZGp1c3RGb250RmFsbGJhY2tzIjpmYWxzZSwiYWRqdXN0Rm9udEZhbGxiYWNrc1dpdGhTaXplQWRqdXN0IjpmYWxzZSwidHlwZWRSb3V0ZXMiOmZhbHNlLCJpbnN0cnVtZW50YXRpb25Ib29rIjpmYWxzZSwiYnVuZGxlUGFnZXNFeHRlcm5hbHMiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsIm1pc3NpbmdTdXNwZW5zZVdpdGhDU1JCYWlsb3V0Ijp0cnVlLCJvcHRpbWl6ZVBhY2thZ2VJbXBvcnRzIjpbImx1Y2lkZS1yZWFjdCIsImRhdGUtZm5zIiwibG9kYXNoLWVzIiwicmFtZGEiLCJhbnRkIiwicmVhY3QtYm9vdHN0cmFwIiwiYWhvb2tzIiwiQGFudC1kZXNpZ24vaWNvbnMiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9Vc2Vycy9kaHJhdnlhc2hhaC9Eb2N1bWVudHMvY29kZS9hbnljb250ZXh0L2FwcHMvd2ViL25leHQuY29uZmlnLm1qcyIsImNvbmZpZ0ZpbGVOYW1lIjoibmV4dC5jb25maWcubWpzIn0=\",\"pagesType\":\"app\",\"appDirLoader\":\"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGcGFnZSZwYWdlPSUyRnBhZ2UmYXBwUGF0aHM9JTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRnBhZ2UudHN4JmFwcERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmRocmF2eWFzaGFoJTJGRG9jdW1lbnRzJTJGY29kZSUyRmFueWNvbnRleHQlMkZhcHBzJTJGd2ViJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEIQ==\",\"sriEnabled\":false,\"middlewareConfig\":\"e30=\"}!"},"startTime":1711860150050,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":1780,"timestamp":4078102304380,"id":4214,"parentId":4213,"tags":{},"startTime":1711860150079,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":1849,"timestamp":4078102304314,"id":4213,"parentId":4212,"tags":{},"startTime":1711860150079,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":2496,"timestamp":4078102304168,"id":4212,"parentId":4198,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx","layer":"ssr"},"startTime":1711860150079,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":63889,"timestamp":4078102266715,"id":4199,"parentId":4198,"tags":{},"startTime":1711860150041,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":2200,"timestamp":4078102348386,"id":4216,"parentId":4215,"tags":{},"startTime":1711860150123,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":3,"timestamp":4078102350606,"id":4218,"parentId":4215,"tags":{},"startTime":1711860150125,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":122,"timestamp":4078102350619,"id":4219,"parentId":4215,"tags":{},"startTime":1711860150125,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":7,"timestamp":4078102350758,"id":4220,"parentId":4215,"tags":{},"startTime":1711860150125,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":9,"timestamp":4078102350777,"id":4221,"parentId":4215,"tags":{},"startTime":1711860150125,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":2647,"timestamp":4078102350597,"id":4217,"parentId":4215,"tags":{},"startTime":1711860150125,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":1122,"timestamp":4078102355133,"id":4222,"parentId":4215,"tags":{},"startTime":1711860150130,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":7620,"timestamp":4078102356263,"id":4223,"parentId":4215,"tags":{},"startTime":1711860150131,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":5575,"timestamp":4078102366438,"id":4224,"parentId":4215,"tags":{},"startTime":1711860150141,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":79,"timestamp":4078102372013,"id":4225,"parentId":4215,"tags":{},"startTime":1711860150147,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":106,"timestamp":4078102372087,"id":4226,"parentId":4215,"tags":{},"startTime":1711860150147,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":8424,"timestamp":4078102372195,"id":4227,"parentId":4215,"tags":{},"startTime":1711860150147,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":44495,"timestamp":4078102340317,"id":4215,"parentId":4198,"tags":{},"startTime":1711860150115,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":121714,"timestamp":4078102265676,"id":4198,"parentId":4196,"tags":{"name":"edge-server"},"startTime":1711860150040,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":16146,"timestamp":4078102387411,"id":4228,"parentId":4196,"tags":{},"startTime":1711860150162,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-edge-server","duration":212679,"timestamp":4078102191288,"id":4196,"parentId":3,"tags":{"trigger":"src/app/MessagePoster.tsx"},"startTime":1711860149966,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":3994,"timestamp":4078102409005,"id":4233,"parentId":4230,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1711860150184,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":6359,"timestamp":4078102408973,"id":4231,"parentId":4230,"tags":{"request":"/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1711860150184,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-transform","duration":2499,"timestamp":4078102413896,"id":4240,"parentId":4239,"tags":{},"startTime":1711860150189,"traceId":"a43e3bb0d33d2683"},{"name":"next-swc-loader","duration":2537,"timestamp":4078102413860,"id":4239,"parentId":4238,"tags":{},"startTime":1711860150189,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-tsx","duration":3335,"timestamp":4078102413765,"id":4238,"parentId":4229,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/MessagePoster.tsx","layer":"app-pages-browser"},"startTime":1711860150188,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":11555,"timestamp":4078102409013,"id":4235,"parentId":4230,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fdev-root-not-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Floadable-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=false!"},"startTime":1711860150184,"traceId":"a43e3bb0d33d2683"},{"name":"read-resource","duration":2581,"timestamp":4078102418187,"id":4242,"parentId":4241,"tags":{},"startTime":1711860150193,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":18984,"timestamp":4078102409001,"id":4232,"parentId":4230,"tags":{"request":"./../../node_modules/next/dist/client/app-next-dev.js"},"startTime":1711860150184,"traceId":"a43e3bb0d33d2683"},{"name":"postcss-process","duration":34289,"timestamp":4078102420823,"id":4244,"parentId":4243,"tags":{},"startTime":1711860150195,"traceId":"a43e3bb0d33d2683"},{"name":"postcss-loader","duration":34875,"timestamp":4078102420784,"id":4243,"parentId":4241,"tags":{},"startTime":1711860150195,"traceId":"a43e3bb0d33d2683"},{"name":"css-loader","duration":9209,"timestamp":4078102455688,"id":4245,"parentId":4241,"tags":{"astUsed":"true"},"startTime":1711860150230,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css","duration":47562,"timestamp":4078102418106,"id":4241,"parentId":4237,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css.webpack[javascript/auto]!=!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[11].oneOf[12].use[2]!/Users/dhravyashah/Documents/code/anycontext/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[11].oneOf[12].use[3]!/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css","layer":null},"startTime":1711860150193,"traceId":"a43e3bb0d33d2683"},{"name":"build-module-css","duration":55971,"timestamp":4078102413273,"id":4237,"parentId":4229,"tags":{"name":"/Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/globals.css","layer":"app-pages-browser"},"startTime":1711860150188,"traceId":"a43e3bb0d33d2683"},{"name":"build-module","duration":18,"timestamp":4078102470022,"id":4246,"parentId":4237,"tags":{},"startTime":1711860150245,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":61148,"timestamp":4078102409010,"id":4234,"parentId":4230,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2Fglobals.css&server=false!"},"startTime":1711860150184,"traceId":"a43e3bb0d33d2683"},{"name":"add-entry","duration":61313,"timestamp":4078102409015,"id":4236,"parentId":4230,"tags":{"request":"next-flight-client-entry-loader?modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fapp%2FMessagePoster.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fapps%2Fweb%2Fsrc%2Fcomponents%2FQueryAI.tsx&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fimage-component.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fapp-router-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fhooks-client-context.shared-runtime.js&modules=%2FUsers%2Fdhravyashah%2FDocuments%2Fcode%2Fanycontext%2Fnode_modules%2Fnext%2Fdist%2Fshared%2Flib%2Fserver-inserted-html.shared-runtime.js&server=false!"},"startTime":1711860150184,"traceId":"a43e3bb0d33d2683"},{"name":"make","duration":63825,"timestamp":4078102406526,"id":4230,"parentId":4229,"tags":{},"startTime":1711860150181,"traceId":"a43e3bb0d33d2683"},{"name":"chunk-graph","duration":746,"timestamp":4078102475596,"id":4248,"parentId":4247,"tags":{},"startTime":1711860150250,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-modules","duration":2,"timestamp":4078102476353,"id":4250,"parentId":4247,"tags":{},"startTime":1711860150251,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunks","duration":38,"timestamp":4078102476362,"id":4251,"parentId":4247,"tags":{},"startTime":1711860150251,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-tree","duration":4,"timestamp":4078102476409,"id":4252,"parentId":4247,"tags":{},"startTime":1711860150251,"traceId":"a43e3bb0d33d2683"},{"name":"optimize-chunk-modules","duration":3,"timestamp":4078102476425,"id":4253,"parentId":4247,"tags":{},"startTime":1711860150251,"traceId":"a43e3bb0d33d2683"},{"name":"optimize","duration":901,"timestamp":4078102476349,"id":4249,"parentId":4247,"tags":{},"startTime":1711860150251,"traceId":"a43e3bb0d33d2683"},{"name":"module-hash","duration":429,"timestamp":4078102478823,"id":4254,"parentId":4247,"tags":{},"startTime":1711860150253,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation","duration":1307,"timestamp":4078102479258,"id":4255,"parentId":4247,"tags":{},"startTime":1711860150254,"traceId":"a43e3bb0d33d2683"},{"name":"hash","duration":7015,"timestamp":4078102481555,"id":4256,"parentId":4247,"tags":{},"startTime":1711860150256,"traceId":"a43e3bb0d33d2683"},{"name":"code-generation-jobs","duration":93,"timestamp":4078102488570,"id":4257,"parentId":4247,"tags":{},"startTime":1711860150263,"traceId":"a43e3bb0d33d2683"},{"name":"module-assets","duration":111,"timestamp":4078102488657,"id":4258,"parentId":4247,"tags":{},"startTime":1711860150263,"traceId":"a43e3bb0d33d2683"},{"name":"create-chunk-assets","duration":2246,"timestamp":4078102488771,"id":4259,"parentId":4247,"tags":{},"startTime":1711860150263,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-generateClientManifest","duration":34,"timestamp":4078102491628,"id":4261,"parentId":4229,"tags":{},"startTime":1711860150266,"traceId":"a43e3bb0d33d2683"},{"name":"NextJsBuildManifest-createassets","duration":174,"timestamp":4078102491583,"id":4260,"parentId":4229,"tags":{},"startTime":1711860150266,"traceId":"a43e3bb0d33d2683"},{"name":"seal","duration":20041,"timestamp":4078102472747,"id":4247,"parentId":4229,"tags":{},"startTime":1711860150247,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-compilation","duration":86578,"timestamp":4078102406234,"id":4229,"parentId":4197,"tags":{"name":"client"},"startTime":1711860150181,"traceId":"a43e3bb0d33d2683"},{"name":"emit","duration":6960,"timestamp":4078102492823,"id":4262,"parentId":4197,"tags":{},"startTime":1711860150267,"traceId":"a43e3bb0d33d2683"},{"name":"webpack-invalidated-client","duration":309557,"timestamp":4078102191885,"id":4197,"parentId":3,"tags":{"trigger":"src/app/MessagePoster.tsx"},"startTime":1711860149967,"traceId":"a43e3bb0d33d2683"}]
diff --git a/apps/web/.next/types/app/layout.ts b/apps/web/.next/types/app/layout.ts
deleted file mode 100644
index e1e3123f..00000000
--- a/apps/web/.next/types/app/layout.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-// File: /Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/layout.tsx
-import * as entry from '../../../src/app/layout.js'
-import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
-
-type TEntry = typeof import('../../../src/app/layout.js')
-
-// Check that the entry is a valid entry
-checkFields<Diff<{
- default: Function
- config?: {}
- generateStaticParams?: Function
- revalidate?: RevalidateRange<TEntry> | false
- dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
- dynamicParams?: boolean
- fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
- preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
- runtime?: 'nodejs' | 'experimental-edge' | 'edge'
- maxDuration?: number
-
- metadata?: any
- generateMetadata?: Function
- viewport?: any
- generateViewport?: Function
-
-}, TEntry, ''>>()
-
-// Check the prop type of the entry function
-checkFields<Diff<LayoutProps, FirstArg<TEntry['default']>, 'default'>>()
-
-// Check the arguments and return type of the generateMetadata function
-if ('generateMetadata' in entry) {
- checkFields<Diff<LayoutProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
- checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
-}
-
-// Check the arguments and return type of the generateViewport function
-if ('generateViewport' in entry) {
- checkFields<Diff<LayoutProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
- checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
-}
-
-// Check the arguments and return type of the generateStaticParams function
-if ('generateStaticParams' in entry) {
- checkFields<Diff<{ params: PageParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
- checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
-}
-
-type PageParams = any
-export interface PageProps {
- params?: any
- searchParams?: any
-}
-export interface LayoutProps {
- children?: React.ReactNode
-
- params?: any
-}
-
-// =============
-// Utility types
-type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
-
-// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
-type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
-type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
-
-type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
-type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
-type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
-
-
-
-function checkFields<_ extends { [k in keyof any]: never }>() {}
-
-// https://github.com/sindresorhus/type-fest
-type Numeric = number | bigint
-type Zero = 0 | 0n
-type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
-type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
diff --git a/apps/web/.next/types/app/page.ts b/apps/web/.next/types/app/page.ts
deleted file mode 100644
index 5e39ea57..00000000
--- a/apps/web/.next/types/app/page.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-// File: /Users/dhravyashah/Documents/code/anycontext/apps/web/src/app/page.tsx
-import * as entry from '../../../src/app/page.js'
-import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
-
-type TEntry = typeof import('../../../src/app/page.js')
-
-// Check that the entry is a valid entry
-checkFields<Diff<{
- default: Function
- config?: {}
- generateStaticParams?: Function
- revalidate?: RevalidateRange<TEntry> | false
- dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
- dynamicParams?: boolean
- fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
- preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
- runtime?: 'nodejs' | 'experimental-edge' | 'edge'
- maxDuration?: number
-
- metadata?: any
- generateMetadata?: Function
- viewport?: any
- generateViewport?: Function
-
-}, TEntry, ''>>()
-
-// Check the prop type of the entry function
-checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
-
-// Check the arguments and return type of the generateMetadata function
-if ('generateMetadata' in entry) {
- checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
- checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
-}
-
-// Check the arguments and return type of the generateViewport function
-if ('generateViewport' in entry) {
- checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
- checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
-}
-
-// Check the arguments and return type of the generateStaticParams function
-if ('generateStaticParams' in entry) {
- checkFields<Diff<{ params: PageParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
- checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
-}
-
-type PageParams = any
-export interface PageProps {
- params?: any
- searchParams?: any
-}
-export interface LayoutProps {
- children?: React.ReactNode
-
- params?: any
-}
-
-// =============
-// Utility types
-type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
-
-// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
-type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
-type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
-
-type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
-type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
-type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
-
-
-
-function checkFields<_ extends { [k in keyof any]: never }>() {}
-
-// https://github.com/sindresorhus/type-fest
-type Numeric = number | bigint
-type Zero = 0 | 0n
-type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
-type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
diff --git a/apps/web/.next/types/package.json b/apps/web/.next/types/package.json
deleted file mode 100644
index 1632c2c4..00000000
--- a/apps/web/.next/types/package.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type": "module"} \ No newline at end of file
diff --git a/package.json b/package.json
index b5b096ec..68c2b456 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
"packageManager": "[email protected]",
"scripts": {
"build": "dotenv -- turbo run build",
- "dev": "dotenv -- turbo run dev",
+ "dev": "dotenv -- turbo run dev --filter=!cf-ai-backend",
"lint": "dotenv -- turbo run lint",
"start": "dotenv -- turbo run start"
},
@@ -26,6 +26,7 @@
"drizzle-kit": "beta",
"eslint": "^8.54.0",
"eslint-config-next": "^14.0.4",
+ "if-env": "^1.0.4",
"postcss": "^8.4.35",
"prettier": "^3.1.0",
"prettier-plugin-tailwindcss": "^0.5.7",
@@ -58,4 +59,4 @@
"remark-gfm": "^4.0.0",
"tailwindcss-animate": "^1.0.7"
}
-}
+} \ No newline at end of file
diff --git a/turbo.json b/turbo.json
index 035043b3..c6d7360d 100644
--- a/turbo.json
+++ b/turbo.json
@@ -15,7 +15,7 @@
]
},
"db:push": {},
- "db:studio" :{},
+ "db:studio": {},
"test": {
"dependsOn": [
"build"